From 77b920ffaae94f412b9085137fe591430693801d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 27 Mar 2009 16:00:10 -0400 Subject: [PATCH 001/471] initial commit. includes test code that toggles pin 26 and a perl script that loads the code over UART1. --- COPYING | 280 +++++++++++++++++++++++++++++ CREDITS | 373 +++++++++++++++++++++++++++++++++++++++ Makefile | 111 ++++++++++++ boot.lds | 52 ++++++ config.mk | 88 +++++++++ include/embedded_types.h | 143 +++++++++++++++ mc1322x-load.pl | 77 ++++++++ src/blink.c | 26 +++ 8 files changed, 1150 insertions(+) create mode 100644 COPYING create mode 100644 CREDITS create mode 100644 Makefile create mode 100644 boot.lds create mode 100644 config.mk create mode 100644 include/embedded_types.h create mode 100755 mc1322x-load.pl create mode 100644 src/blink.c diff --git a/COPYING b/COPYING new file mode 100644 index 000000000..5a965fbc5 --- /dev/null +++ b/COPYING @@ -0,0 +1,280 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/CREDITS b/CREDITS new file mode 100644 index 000000000..be08703b9 --- /dev/null +++ b/CREDITS @@ -0,0 +1,373 @@ +Dittos + +But now it's a blink led program for an mc1322x + +Mariano Alvira mar@devl.org + +#### + +This program started out as U-boot. I stripped most of it out +and added a few pieces to create a bootloader less than 12K for +the AT91RM9200 allowing boot from serial data flash. + + Darrell Harmon mail@dlharmon.com + +The following is the credits file included with u-boot. Much of that +code is used here. + + +# +# Parts of the development effort for this project have been +# sponsored by SIEMENS AG, Austria. Thanks to SIEMENS for +# supporting an Open Source project! +# +# +# This is at least a partial credits-file of individual people that +# have contributed to the U-Boot project. It is sorted by name and +# formatted to allow easy grepping and beautification by scripts. +# The fields are: name (N), email (E), web-address (W), PGP key ID +# and fingerprint (P), description (D), and snail-mail address (S). +# Thanks, +# +# Wolfgang Denk +#---------- + +N: Dr. Bruno Achauer +E: bruno@exet-ag.de +D: Support for NetBSD (both as host and target system) + +N: Guillaume Alexandre +E: guillaume.alexandre@gespac.ch +D: Add PCIPPC6 configuration + +N: Swen Anderson +E: sand@peppercon.de +D: ERIC Support + +N: Pantelis Antoniou +E: panto@intracom.gr +D: NETVIA & NETPHONE board support, ARTOS support. + +N: Pierre Aubert +E: +D: Support for RPXClassic board + +N: Yuli Barcohen +E: yuli@arabellasw.com +D: Unified support for Motorola MPC826xADS/MPC8272ADS/PQ2FADS boards. +D: Support for Zephyr Engineering ZPC.1900 board. +W: http://www.arabellasw.com + +N: Jerry van Baren +E: +D: BedBug port to 603e core (MPC82xx). Code for enhanced memory test. + +N: Pavel Bartusek +E: +D: Reiserfs support +W: http://www.elinos.com + +N: Andre Beaudin +E: +D: PCMCIA, Ethernet, TFTP + +N: Jon Benediktsson +E: jonb@marel.is +D: Support for Marel V37 board + +N: Raphael Bossek +E: raphael.bossek@solutions4linux.de +D: 8xxrom-0.3.0 + +N: Rick Bronson +E: rick@efn.org +D: Atmel AT91RM9200DK and NAND support + +N: David Brown +E: DBrown03@harris.com +D: Extensions to 8xxrom-0.3.0 + +N: Oliver Brown +E: obrown@adventnetworks.com +D: Port to the gw8260 board + +N: Jonathan De Bruyne +E: jonathan.debruyne@siemens.atea.be +D: Port to Siemens IAD210 board + +N: Ken Chou +E: kchou@ieee.org +D: Support for A3000 SBC board + +N: Conn Clark +E: clark@esteem.com +D: ESTEEM192E support + +N: Magnus Damm +E: damm@opensource.se +D: 8xxrom + +N: George G. Davis +E: gdavis@mvista.com +D: Board ports for ADS GraphicsClient+ and Intel Assabet + +N: Arun Dharankar +E: ADharankar@ATTBI.Com +D: threads / scheduler example code + +N: Kári Davíđsson +E: kd@flaga.is +D: FLAGA DM Support + +N: Wolfgang Denk +E: wd@denx.de +D: U-Boot initial version, continuing maintenance, ARMBoot merge +W: http://www.denx.de + +N: Dan A. Dickey +E: ddickey@charter.net +D: FADS Support + +N: James F. Dougherty +E: jfd@GigabitNetworks.COM +D: Port to the MOUSSE board + +N: Dave Ellis +E: DGE@sixnetio.com +D: EEPROM Speedup, SXNI855T port + +N: Thomas Elste +E: info@elste.org +D: Port for the ModNET50 Board, NET+50 CPU Port +W: http://www.imms.de + +N: Daniel Engström +E: daniel@omicron.se +D: x86 port, Support for sc520_cdp board + +N: Dr. Wolfgang Grandegger +E: wg@denx.de +D: Support for Interphase 4539 T1/E1/J1 PMC, PN62, CCM, SCM boards +W: www.denx.de + +N: Peter Figuli +E: peposh@etc.sk +D: Support for WEP EP250 (PXA) board + +N: Thomas Frieden +E: ThomasF@hyperion-entertainment.com +D: Support for AmigaOne + +N: Frank Gottschling +E: fgottschling@eltec.de +D: Support for ELTEC MHPC/BAB7xx/ELPPC boards, cfb-console, i8042, SMI LynxEM +W: www.eltec.de + +N: Marius Groeger +E: mgroeger@sysgo.de +D: MBX Support, board specific function interface, EST SBC8260 support; initial support for StrongARM (LART), ARM720TDMI (implementa A7) +W: www.elinos.com + +N: Kirk Haderlie +E: khaderlie@vividimage.com +D: Added TFTP to 8xxrom (-> 0.3.1) + +N: Chris Hallinan +E: clh@net1plus.com +D: DHCP Support + +N: Anne-Sophie Harnois +E: Anne-Sophie.Harnois@nextream.fr +D: Port to Walnut405 board + +N: Andreas Heppel +E: aheppel@sysgo.de +D: CPU Support for MPC 75x; board support for Eltec BAB750 [obsolete!] + +N: August Hoeraendl +E: august.hoerandl@gmx.at +D: Support for the logodl board (PXA2xx) + +N: Josh Huber +E: huber@alum.wpi.edu +D: Port to the Galileo Evaluation Board, and the MPC74xx cpu series. +W: http://www.mclx.com/ + +H: Stuart Hughes +E: stuarth@lineo.com +D: Port to MPC8260ADS board + +H: Rich Ireland +E: r.ireland@computer.org +D: FPGA device configuration driver + +N: Gary Jennejohn +E: garyj@jennejohn.org, gj@denx.de +D: Support for Samsung ARM920T S3C2400X, ARM920T "TRAB" +W: www.denx.de + +N: Murray Jensen +E: Murray.Jensen@cmst.csiro.au +D: Initial 8260 support; GDB support +D: Port to Cogent+Hymod boards; Hymod Board Database +W: http://www.msa.cmst.csiro.au/ourstaff/MurrayJensen/mjj.html + +N: Yoo. Jonghoon +E: yooth@ipone.co.kr +D: Added port to the RPXlite board + +N: Brad Kemp +E: Brad.Kemp@seranoa.com +D: Port to Windriver ppmc8260 board + +N: Sangmoon Kim +E: dogoil@etinsys.com +D: Support for debris board + +N: Thomas Koeller +E: tkoeller@gmx.net +D: Port to Motorola Sandpoint 3 (MPC8240) + +N: Raghu Krishnaprasad +E: Raghu.Krishnaprasad@fci.com +D: Support for Adder-II MPC852T evaluation board +W: http://www.forcecomputers.com + +N: Bernhard Kuhn +E: bkuhn@metrowerks.com +D Support for Coldfire CPU; Support for Motorola M5272C3 and M5282EVB boards + +N: Thomas Lange +E: thomas@corelatus.se +D: Support for GTH and dbau1x00 boards; lots of PCMCIA fixes + +N: The LEOX team +E: team@leox.org +D: Support for LEOX boards, DS164x RTC +W: http://www.leox.org + +N: Stephan Linz +E: linz@li-pro.net +D: Support for Nios Stratix Development Kit (DK-1S10) +D: Support for SSV ADNP/ESC1 (Nios Cyclone) +W: http://www.li-pro.net + +N: Raymond Lo +E: lo@routefree.com +D: Support for DOS partitions + +N: Dan Malek +E: dan@netx4.com +D: FADSROM, the grandfather of all of this + +N: Reinhard Meyer +E: r.meyer@emk-elektronik.de +D: Port to EMK TOP860 Module + +N: Jay Monkman +E: jtm@smoothsmoothie.com +D: EST SBC8260 support + +N: Frank Morauf +E: frank.morauf@salzbrenner.com +D: Support for Embedded Planet RPX Super Board + +N: David Müller +E: d.mueller@elsoft.ch +D: Support for Samsung ARM920T SMDK2410 eval board + +N: Scott McNutt +E: smcnutt@psyent.com +D: Support for Altera Nios-32 CPU, for Nios Cyclone Development Kit (DK-1C20) + +N: Rolf Offermanns +E: rof@sysgo.de +D: Initial support for SSV-DNP1110, SMC91111 driver +W: www.elinos.com + +N: Tolunay Orkun +E: torkun@nextio.com +D: Support for Cogent CSB272 board + +N: Keith Outwater +E: keith_outwater@mvis.com +D: Support for generic/custom MPC860T boards (GEN860T, GEN860T_SC) + +N: Frank Panno +E: fpanno@delphintech.com +D: Support for Embedded Planet EP8260 Board + +N: Denis Peter +E: d.peter@mpl.ch +D: Support for 4xx SCSI, floppy, CDROM, CT69000 video, ... +D: Support for PIP405 board +D: Support for MIP405 board + +N: Bill Pitts +E: wlp@mindspring.com +D: BedBug embedded debugger code + +N: Stefan Roese +E: stefan.roese@esd-electronics.com +D: IBM PPC401/403/405GP Support; Windows environment support + +N: Erwin Rol +E: erwin@muffin.org +D: boot support for RTEMS + +N: Neil Russell +E: caret@c-side.com +D: Author of LiMon-1.4.2, which contributed some ideas + +N: Travis B. Sawyer +E: travis.sawyer@sandburst.com +D: Support for IBM PPC440GX, XES XPedite1000 440GX PrPMC board. IBM 440gx Ref Platform (Ocotea) + +N: Paolo Scaffardi +E: arsenio@tin.it +D: FADS823 configuration, MPC823 video support, I2C, wireless keyboard, lots more + +N: Robert Schwebel +E: r.schwebel@pengutronix.de +D: Support for csb226, logodl and innokom boards (PXA2xx) + +N: Rob Taylor +E: robt@flyingpig.com +D: Port to MBX860T and Sandpoint8240 + +N: Erik Theisen +E: etheisen@mindspring.com +D: MBX8xx and many other patches + +N: Jim Thompson +E: jim@musenki.com +D: Support for MUSENKI board + +N: Rune Torgersen +E: +D: Support for Motorola MPC8266ADS board + +N: David Updegraff +E: dave@cray.com +D: Port to Cray L1 board; DHCP vendor extensions + +N: Martin Winistoerfer +E: martinwinistoerfer@gmx.ch +D: Port to MPC555/556 microcontrollers and support for cmi board + +N: Christian Vejlbo +E: christian.vejlbo@tellabs.com +D: FADS860T ethernet support + +N: John Zhan +E: zhanz@sinovee.com +D: Support for SinoVee Microsystems SC8xx SBC + +N: Alex Zuepke +E: azu@sysgo.de +D: Overall improvements on StrongARM, ARM720TDMI; Support for Tuxscreen; initial PCMCIA support for ARM +W: www.elinos.com + +N: Xianghua Xiao +E: x.xiao@motorola.com +D: Support for Motorola 85xx(PowerQUICC III) chip, MPC8540ADS and MPC8560ADS boards. diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..17f9a1d7b --- /dev/null +++ b/Makefile @@ -0,0 +1,111 @@ +# +# (C) Copyright 2000-2004 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +# Deal with colliding definitions from tcsh etc. +VENDOR= + +######################################################################### + +TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) +export TOPDIR +ARCH = arm +CPU = arm7tdmi-s +export ARCH CPU VENDOR + +#CROSS_COMPILE = arm-unknown-linux-gnu- +#CROSS_COMPILE = arm-softfloat-linux-gnu- +#export CROSS_COMPILE + +# load other configuration +include $(TOPDIR)/config.mk + +######################################################################### +# blink objects....order is important (i.e. start must be first) + +AOBJS = +COBJS = src/blink.o + +# Add GCC lib +PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc + +######################################################################### + +ALL = blink.dis blink.srec blink.bin System.map + +all: $(ALL) + +blink.srec: blink + $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ + +blink.ihex: blink + $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ + +blink.bin: blink + $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ + +blink.dis: blink + $(OBJDUMP) -DS $< > $@ + +blink: $(AOBJS) $(COBJS) $(LDSCRIPT) + $(LD) $(LDFLAGS) $(AOBJS) $(COBJS) \ + --start-group $(PLATFORM_LIBS) --end-group \ + -Map blink.map -o blink + +System.map: blink + @$(NM) $< | \ + grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ + sort > System.map + + +######################################################################### + +.depend: Makefile $(AOBJS:.o=.S) $(COBJS:.o=.c) + $(CC) -M $(CFLAGS) $(AOBJS:.o=.S) $(COBJS:.o=.c) > $@ + +sinclude .depend + +######################################################################### + +clean: + find . -type f \ + \( -name 'core' -o -name '*.bak' -o -name '*~' \ + -o -name '*.o' -o -name '*.a' \) -print \ + | xargs rm -f + +clobber: clean + find . -type f \ + \( -name .depend -o -name '*.srec' -o -name '*.bin' \) \ + -print \ + | xargs rm -f + rm -f $(OBJS) *.bak tags TAGS + rm -fr *.*~ + rm -f blink blink.map $(ALL) + +mrproper \ +distclean: clobber + +backup: + F=`basename $(TOPDIR)` ; cd .. ; \ + tar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F + +######################################################################### diff --git a/boot.lds b/boot.lds new file mode 100644 index 000000000..a3e3cfc5c --- /dev/null +++ b/boot.lds @@ -0,0 +1,52 @@ +/* + * (C) Copyright 2002 + * Gary Jennejohn, DENX Software Engineering, + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/ +OUTPUT_ARCH(arm) +ENTRY(_start) +SECTIONS +{ + . = 0x00400000; + + . = ALIGN(4); + .text : + { + src/blink.o (.text) + *(.text) + } + + . = ALIGN(4); + .rodata : { *(.rodata) } + + . = ALIGN(4); + .data : { *(.data) } + + . = ALIGN(4); + .got : { *(.got) } + + . = ALIGN(4); + __bss_start = .; + .bss : { *(.bss) } + _end = .; +} diff --git a/config.mk b/config.mk new file mode 100644 index 000000000..5ed41231c --- /dev/null +++ b/config.mk @@ -0,0 +1,88 @@ +# +# (C) Copyright 2000 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +######################################################################### + +# clean the slate ... +PLATFORM_LDFLAGS = +PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -msoft-float +PLATFORM_CPPFLAGS = -march=armv4 -mtune=arm7tdmi -DCONFIG_ARM -D__ARM__ +TEXT_BASE = 0x00400000 + +######################################################################### + +# +# Include the make variables (CC, etc...) +# +AS = $(CROSS_COMPILE)as +LD = $(CROSS_COMPILE)ld +CC = $(CROSS_COMPILE)gcc +CPP = $(CC) -E +AR = $(CROSS_COMPILE)ar +NM = $(CROSS_COMPILE)nm +STRIP = $(CROSS_COMPILE)strip +OBJCOPY = $(CROSS_COMPILE)objcopy +OBJDUMP = $(CROSS_COMPILE)objdump +RANLIB = $(CROSS_COMPILE)RANLIB + +RELFLAGS= $(PLATFORM_RELFLAGS) +DBGFLAGS= -g -DDEBUG +OPTFLAGS= -Os #-fomit-frame-pointer +LDSCRIPT := boot.lds +OBJCFLAGS += --gap-fill=0xff + +gccincdir := $(shell $(CC) -print-file-name=include) + +CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ + -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ + -I$(TOPDIR)/include \ + -fno-builtin -ffreestanding -nostdinc -isystem \ + $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) + +ifdef BUILD_TAG +CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes \ + -DBUILD_TAG='"$(BUILD_TAG)"' +else +CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes +endif + +AFLAGS_DEBUG := -Wa,-gstabs +AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) + +LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) + +######################################################################### + +export CROSS_COMPILE AS LD CC CPP AR NM STRIP OBJCOPY OBJDUMP MAKE +export TEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS CPPFLAGS CFLAGS AFLAGS + +######################################################################### + +%.s: %.S + $(CPP) $(AFLAGS) -o $@ $(CURDIR)/$< +%.o: %.S + $(CC) $(AFLAGS) -c -o $@ $(CURDIR)/$< +%.o: %.c + $(CC) $(CFLAGS) -c -o $@ $< + +######################################################################### diff --git a/include/embedded_types.h b/include/embedded_types.h new file mode 100644 index 000000000..8d061d860 --- /dev/null +++ b/include/embedded_types.h @@ -0,0 +1,143 @@ +/************************************************************************************ +* This file holds type definitions that maps the standard c-types into types +* with guaranteed sizes. The types are target/platform specific and must be edited +* for each new target/platform. +* +* The header file also provides definitions for TRUE, FALSE and NULL. +* +* (c) Copyright 2006, Freescale Semiconductor, Inc. All rights reserved. +* +* +* No part of this document must be reproduced in any form - including copied, +* transcribed, printed or by any electronic means - without specific written +* permission from Freescale Semiconductor. +*************************************************************************************/ + +#ifndef _EMBEDDEDTYPES_H_ +#define _EMBEDDEDTYPES_H_ +/************************************************************************************ +* +* TYPE DEFINITIONS +* +************************************************************************************/ + +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed long int32_t; +typedef unsigned long uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; + +typedef signed char intn8_t; +typedef unsigned char uintn8_t; +typedef signed short intn16_t; +typedef unsigned short uintn16_t; +typedef signed long intn32_t; +typedef unsigned long uintn32_t; +typedef signed long long intn64_t; +typedef unsigned long long uintn64_t; + +/* boolean types */ +typedef uint8_t bool_t; +typedef uintn8_t booln_t; +/* used for indexing into an array in the most efficient manner for the platform */ +typedef uint8_t index_t; + +#define BIT0 0x00000001UL +#define BIT1 0x00000002UL +#define BIT2 0x00000004UL +#define BIT3 0x00000008UL +#define BIT4 0x00000010UL +#define BIT5 0x00000020UL +#define BIT6 0x00000040UL +#define BIT7 0x00000080UL +#define BIT8 0x00000100UL +#define BIT9 0x00000200UL +#define BIT10 0x00000400UL +#define BIT11 0x00000800UL +#define BIT12 0x00001000UL +#define BIT13 0x00002000UL +#define BIT14 0x00004000UL +#define BIT15 0x00008000UL +#define BIT16 0x00010000UL +#define BIT17 0x00020000UL +#define BIT18 0x00040000UL +#define BIT19 0x00080000UL +#define BIT20 0x00100000UL +#define BIT21 0x00200000UL +#define BIT22 0x00400000UL +#define BIT23 0x00800000UL +#define BIT24 0x01000000UL +#define BIT25 0x02000000UL +#define BIT26 0x04000000UL +#define BIT27 0x08000000UL +#define BIT28 0x10000000UL +#define BIT29 0x20000000UL +#define BIT30 0x40000000UL +#define BIT31 0x80000000UL + + +#define TRUE 1 +#define FALSE 0 + +#ifndef NULL +#define NULL (( void * )( 0 )) +#endif + +/* indicate endian-ness of this MCU */ +#define gBigEndian_c FALSE + +typedef uint32_t zbClock32_t; +typedef uint32_t zbClock24_t; +typedef uint16_t zbClock16_t; + +/* common macros to reduce code size in S08 */ +#if (gBigEndian_c) + +#define IsEqual2Bytes(aVal1, aVal2) (*((uint16_t *)(aVal1)) == *((uint16_t *)(aVal2))) +#define Copy2Bytes(aVal1, aVal2) (*((uint16_t *)(aVal1)) = *((uint16_t *)(aVal2))) +#define Set2Bytes(aVal1, iVal2) (*((uint16_t *)(aVal1)) = (iVal2)) +#define IsEqual2BytesInt(aVal1, iVal2) (*((uint16_t *)(aVal1)) == (iVal2)) +#define TwoBytesToUint16(aVal) ( *((uint16_t *)(aVal)) ) +#define FourBytesToUint32(aVal) ( *((uint32_t *)(aVal)) ) +#define TwoBytes2Byte(aVal) ( (uint8_t)( *( ( uint16_t * )(aVal) ) ) ) +#define Cmp2BytesToZero(aVal) (!( TwoBytesToUint16(aVal) )) +#define Inc4Bytes(aVal1, iVal2) ( *((uint32_t *)(aVal1)) += (iVal2)) + +#else + +#define Copy2Bytes(aVal1, aVal2) (FLib_MemCpy((void *)aVal1,(void *) aVal2, 2)) +void Set2Bytes(void *ptr, uint16_t val); +bool_t IsEqual2BytesInt(void *ptr, uint16_t val); +//#define Set2Bytes(aVal1, iVal2) (*((uint16_t *)(aVal1)) = (iVal2)) +//#define IsEqual2BytesInt(aVal1, iVal2) (*((uint16_t *)(aVal1)) == (iVal2)) +#define TwoBytesToUint16(aVal) ( ((uint16_t)(*((uint8_t *)(aVal))))|(((uint16_t)(*(((uint8_t *)(aVal))+1)))<<8) ) +#define FourBytesToUint32(aVal) ( ((uint32_t)TwoBytesToUint16(aVal))|(((uint32_t)TwoBytesToUint16(((uint8_t*)aVal)+2))<<16) ) +#define TwoBytes2Byte(aVal) ( (uint8_t)( *( ( uint8_t * )(aVal) ) ) ) +#define Cmp2BytesToZero(aVal) (!( TwoBytesToUint16(aVal) )) +void Inc4Bytes(uint8_t* aVal1, uint32_t Val2); +#define IsEqual2Bytes(aVal1, aVal2) (TwoBytesToUint16(aVal1) == TwoBytesToUint16(aVal2)) + +#endif /* #if (gBigEndian_c) */ + + +/* allow for routines/variables to be static or not at compile-time. */ +#define STATIC + +/* add assert codes if needed. Calls assert function. */ +typedef uint8_t assertCode_t; + +void BeeAppAssert(assertCode_t code); + + + +#define gAssertCode_NoTasks_c 0x01 /* not enough tasks. Increase gTsMaxTasks_c */ +#define gAssertCode_NoTimers_c 0x02 /* not enough timers. Increase gTmrApplicationTimers_c */ +#define gAssertCode_PageTooBig_c 0x04 /* An NVM page is to big to be stored. */ + + +#define gMaxIndex_c 0xfe + +#endif /* _EMBEDDEDTYPES_H_ */ diff --git a/mc1322x-load.pl b/mc1322x-load.pl new file mode 100755 index 000000000..ba6e02ad9 --- /dev/null +++ b/mc1322x-load.pl @@ -0,0 +1,77 @@ +#!/usr/bin/perl -w + +use Device::SerialPort 0.05; +use Term::ReadKey; +use Getopt::Long; + +use strict; + +my $filename = ''; +my $term = '/dev/ttyUSB0'; +my $baud = '115200'; +my $verbose; + +GetOptions ('file=s' => \$filename, + 'terminal' => \$term, + 'verbose' => \$verbose, + 'baud=s' => \$baud); + +$| = 1; + +if($filename eq '') { + print "Example usage: mc1322x-load.pl -f foo.bin -t /dev/ttyS0 -b 9600\n"; + print " -f required: binary file to load\n"; + print " -t default: /dev/ttyUSB0\n"; + print " -b default: 115200\n"; + exit; +} + +my $ob = Device::SerialPort->new ($term) or die "Can't start $term\n"; + # next test will die at runtime unless $ob + +$baud = 115200 if (!defined($baud)); + +$ob->baudrate($baud); +$ob->parity('none'); +$ob->databits(8); +$ob->stopbits(1); +$ob->handshake("rts"); + +my $c; + +$ob->write(pack('C','0')); + +my $ret = ''; +until($ret eq 'CONNECT') { + $c = $ob->input; + $ret .= $c; +} +print $ret . "\n"; + + +if (defined $filename) { + + my $size = -s $filename; + + print ("Size: $size bytes\n"); + $ob->write(pack('V',$size)); + + open(FILE, $filename) or die($!); + print "Sending $filename\n"; + + my $i = 1; + while(read(FILE, $c, 1)) { + print unpack('H',$c) . unpack('h',$c) if $verbose; + print "\n" if ($verbose && ($i%4==0)); + $i++; + $ob->write($c); + } +} + +print "done.\n"; + +$ob -> close or die "Close failed: $!\n"; +ReadMode 0; +undef $ob; # closes port AND frees memory in perl +exit; + diff --git a/src/blink.c b/src/blink.c new file mode 100644 index 000000000..794d82652 --- /dev/null +++ b/src/blink.c @@ -0,0 +1,26 @@ +#define MBAR_GPIO 0x80000000 +#define GPIO_PAD_DIR0 0x80000000 +#define GPIO_DATA0 0x80000008 +#define UART1_DATA 0x80005008 +#define DELAY 400000 + +#include "embedded_types.h" + +void main(void) { + + *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; + + volatile uint32_t i; + + while(1) { + + *(volatile uint32_t *)GPIO_DATA0 = 0x00000100; + + for(i=0; i Date: Sun, 29 Mar 2009 09:28:29 -0400 Subject: [PATCH 002/471] new makefile should let me have multiple targets --- Makefile | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 17f9a1d7b..64aabf564 100644 --- a/Makefile +++ b/Makefile @@ -43,38 +43,43 @@ include $(TOPDIR)/config.mk # blink objects....order is important (i.e. start must be first) AOBJS = -COBJS = src/blink.o +COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) +TARGETS = blink.o # Add GCC lib PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc ######################################################################### -ALL = blink.dis blink.srec blink.bin System.map +#ALL = blink.srec blink.bin blink.dis blink.System.map +ALL = $(TARGETS:.o=.srec) $(TARGETS:.o=.bin) $(TARGETS:.o=.dis) + +.PRECIOUS: $(COBJS) all: $(ALL) -blink.srec: blink +%.srec: %.obj $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ -blink.ihex: blink +%.ihex: %.obj $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ -blink.bin: blink +%.bin: %.obj $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ -blink.dis: blink +%.dis: %.obj $(OBJDUMP) -DS $< > $@ -blink: $(AOBJS) $(COBJS) $(LDSCRIPT) +%.obj: $(AOBJS) $(COBJS) $(LDSCRIPT) $(LD) $(LDFLAGS) $(AOBJS) $(COBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ - -Map blink.map -o blink + -Map $*.map -o $@ -System.map: blink + +%.System.map: %.obj @$(NM) $< | \ grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ - sort > System.map + sort > $*.System.map ######################################################################### @@ -89,17 +94,17 @@ sinclude .depend clean: find . -type f \ \( -name 'core' -o -name '*.bak' -o -name '*~' \ - -o -name '*.o' -o -name '*.a' \) -print \ + -o -name '*.o' -o -name '*.a' \) -print \ | xargs rm -f clobber: clean find . -type f \ - \( -name .depend -o -name '*.srec' -o -name '*.bin' \) \ + \( -name .depend -o -name '*.srec' -o -name '*.bin' -o -name '*.dis' -o -name '*.map' \) \ -print \ | xargs rm -f rm -f $(OBJS) *.bak tags TAGS rm -fr *.*~ - rm -f blink blink.map $(ALL) + rm -f $(ALL) mrproper \ distclean: clobber From 3d105584960b8eac3fd46e8d0679be747e0ef93e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 29 Mar 2009 09:35:10 -0400 Subject: [PATCH 003/471] changed name over to test-blink.c removed hardcoded source name from the linker script --- Makefile | 2 +- boot.lds | 1 - src/{blink.c => test-blink.c} | 0 3 files changed, 1 insertion(+), 2 deletions(-) rename src/{blink.c => test-blink.c} (100%) diff --git a/Makefile b/Makefile index 64aabf564..c0be548b6 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ include $(TOPDIR)/config.mk AOBJS = COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) -TARGETS = blink.o +TARGETS = test-blink.o # Add GCC lib PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc diff --git a/boot.lds b/boot.lds index a3e3cfc5c..b800cb3c9 100644 --- a/boot.lds +++ b/boot.lds @@ -32,7 +32,6 @@ SECTIONS . = ALIGN(4); .text : { - src/blink.o (.text) *(.text) } diff --git a/src/blink.c b/src/test-blink.c similarity index 100% rename from src/blink.c rename to src/test-blink.c From 583e00d2d967f07b251ed3e8503c0648114518b6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 29 Mar 2009 09:42:20 -0400 Subject: [PATCH 004/471] checkpoint... working on multiple test objects. --- Makefile | 6 +++--- {src => tests}/test-blink.c | 0 tests/test-blink2.c | 26 ++++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) rename {src => tests}/test-blink.c (100%) create mode 100644 tests/test-blink2.c diff --git a/Makefile b/Makefile index c0be548b6..f735dbdde 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ include $(TOPDIR)/config.mk AOBJS = COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) -TARGETS = test-blink.o +TARGETS = $(patsubst %.c,%.o,$(wildcard tests/*.c)) # Add GCC lib PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc @@ -52,9 +52,9 @@ PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-l ######################################################################### #ALL = blink.srec blink.bin blink.dis blink.System.map -ALL = $(TARGETS:.o=.srec) $(TARGETS:.o=.bin) $(TARGETS:.o=.dis) +ALL = $(TARGETS:.c=.srec) $(TARGETS:.c=.bin) $(TARGETS:.c=.dis) -.PRECIOUS: $(COBJS) +.PRECIOUS: $(COBJS) $(TARGETS) all: $(ALL) diff --git a/src/test-blink.c b/tests/test-blink.c similarity index 100% rename from src/test-blink.c rename to tests/test-blink.c diff --git a/tests/test-blink2.c b/tests/test-blink2.c new file mode 100644 index 000000000..794d82652 --- /dev/null +++ b/tests/test-blink2.c @@ -0,0 +1,26 @@ +#define MBAR_GPIO 0x80000000 +#define GPIO_PAD_DIR0 0x80000000 +#define GPIO_DATA0 0x80000008 +#define UART1_DATA 0x80005008 +#define DELAY 400000 + +#include "embedded_types.h" + +void main(void) { + + *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; + + volatile uint32_t i; + + while(1) { + + *(volatile uint32_t *)GPIO_DATA0 = 0x00000100; + + for(i=0; i Date: Mon, 30 Mar 2009 10:01:14 -0400 Subject: [PATCH 005/471] multiple tests work now. added blink code for all the leds. --- Makefile | 14 ++++++++------ tests/{test-blink2.c => blink-blue.c} | 4 ++-- tests/blink-green.c | 26 ++++++++++++++++++++++++++ tests/{test-blink.c => blink-red.c} | 0 tests/blink-white.c | 26 ++++++++++++++++++++++++++ 5 files changed, 62 insertions(+), 8 deletions(-) rename tests/{test-blink2.c => blink-blue.c} (79%) create mode 100644 tests/blink-green.c rename tests/{test-blink.c => blink-red.c} (100%) create mode 100644 tests/blink-white.c diff --git a/Makefile b/Makefile index f735dbdde..c451cf962 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,9 @@ include $(TOPDIR)/config.mk AOBJS = COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) -TARGETS = $(patsubst %.c,%.o,$(wildcard tests/*.c)) +TESTS = $(wildcard tests/*.c) +TARGETS = $(patsubst %.c,%.o,$(TESTS)) + # Add GCC lib PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc @@ -52,9 +54,9 @@ PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-l ######################################################################### #ALL = blink.srec blink.bin blink.dis blink.System.map -ALL = $(TARGETS:.c=.srec) $(TARGETS:.c=.bin) $(TARGETS:.c=.dis) +ALL = $(TARGETS) $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) -.PRECIOUS: $(COBJS) $(TARGETS) +.PRECIOUS: $(COBJS) $(TARGETS) $(TESTS:.c=.obj) all: $(ALL) @@ -70,10 +72,10 @@ all: $(ALL) %.dis: %.obj $(OBJDUMP) -DS $< > $@ -%.obj: $(AOBJS) $(COBJS) $(LDSCRIPT) +%.obj: $(AOBJS) $(COBJS) $(TARGETS) $(LDSCRIPT) $(LD) $(LDFLAGS) $(AOBJS) $(COBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ - -Map $*.map -o $@ + -Map $*.map $*.o -o $@ %.System.map: %.obj @@ -99,7 +101,7 @@ clean: clobber: clean find . -type f \ - \( -name .depend -o -name '*.srec' -o -name '*.bin' -o -name '*.dis' -o -name '*.map' \) \ + \( -name .depend -o -name '*.srec' -o -name '*.bin' -o -name '*.dis' -o -name '*.map' -o -name '*.obj' \) \ -print \ | xargs rm -f rm -f $(OBJS) *.bak tags TAGS diff --git a/tests/test-blink2.c b/tests/blink-blue.c similarity index 79% rename from tests/test-blink2.c rename to tests/blink-blue.c index 794d82652..095fd9cd7 100644 --- a/tests/test-blink2.c +++ b/tests/blink-blue.c @@ -8,13 +8,13 @@ void main(void) { - *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; + *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000400; volatile uint32_t i; while(1) { - *(volatile uint32_t *)GPIO_DATA0 = 0x00000100; + *(volatile uint32_t *)GPIO_DATA0 = 0x00000400; for(i=0; i Date: Mon, 30 Mar 2009 14:07:42 -0400 Subject: [PATCH 006/471] this works, but there are unexplained things like why it can't print the whole message, why I can't enable RX, and why the baud number is what it is. --- tests/uart1-loopback.c | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/uart1-loopback.c diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c new file mode 100644 index 000000000..260f19fba --- /dev/null +++ b/tests/uart1-loopback.c @@ -0,0 +1,57 @@ +#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ +#define GPIO_FUNC_SEL1 0x8000001c /* GPIO 16 - 31; 2 bit blocks*/ + +#define BASE_UART1 0x80005000 +#define UART1_CON 0x80005000 +#define UART1_STAT 0x80005004 +#define UART1_DATA 0x80005008 +#define UR1CON 0x8000500c +#define UT1CON 0x80005010 +#define UART1_CTS 0x80005014 +#define UART1_BR 0x80005018 + +#include "embedded_types.h" + +#define DELAY 1000 + +void main(void) { + + volatile uint32_t i; + + *(volatile uint32_t *)GPIO_FUNC_SEL0 = (0x01 << (14*2)); /* set GPIO14 to UART (UART1 TX)*/ +// *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) || (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + + *(volatile uint32_t *)UART1_BR = 0x004C03E8; /* Baud rate: (INC<<16 || MOD) */ /* is 115200 @ 24 MHz --- unexplained */ + + *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ + + + while(1) { + for(i=0; i 0) { */ +/* /\* Receive buffer isn't empty *\/ */ +/* /\* read a byte and write it to the transmit buffer *\/ */ +/* } */ +/* }; */ +} From 952b9b5b7ef9440e032381111653cc5e1c93d763 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 30 Mar 2009 14:09:29 -0400 Subject: [PATCH 007/471] comment noting what I set mod and inc to. --- tests/uart1-loopback.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index 260f19fba..f98fa6dc2 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -21,8 +21,10 @@ void main(void) { *(volatile uint32_t *)GPIO_FUNC_SEL0 = (0x01 << (14*2)); /* set GPIO14 to UART (UART1 TX)*/ // *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) || (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + /* INC = 76; MOD = 1000 */ *(volatile uint32_t *)UART1_BR = 0x004C03E8; /* Baud rate: (INC<<16 || MOD) */ /* is 115200 @ 24 MHz --- unexplained */ + *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ From ffcae0d070b407e900051692f19d565eaee00c85 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 30 Mar 2009 15:48:11 -0400 Subject: [PATCH 008/471] looks like the bootload needs a character delay to work reliably --- harcoded 1ms delay. --- mc1322x-load.pl | 1 + tests/uart1-loopback.c | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index ba6e02ad9..5a04ac3de 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -64,6 +64,7 @@ if (defined $filename) { print unpack('H',$c) . unpack('h',$c) if $verbose; print "\n" if ($verbose && ($i%4==0)); $i++; + select undef, undef, undef, 0.001; $ob->write($c); } } diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index f98fa6dc2..9a90b1dbc 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -12,26 +12,31 @@ #include "embedded_types.h" -#define DELAY 1000 +#define DELAY 100000 void main(void) { - - volatile uint32_t i; - *(volatile uint32_t *)GPIO_FUNC_SEL0 = (0x01 << (14*2)); /* set GPIO14 to UART (UART1 TX)*/ -// *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) || (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + /* Restore UART regs. to default */ + /* in case there is still bootloader state leftover */ + + *(volatile uint32_t *)UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ /* INC = 76; MOD = 1000 */ *(volatile uint32_t *)UART1_BR = 0x004C03E8; /* Baud rate: (INC<<16 || MOD) */ /* is 115200 @ 24 MHz --- unexplained */ - + /* see Section 11.5.1.2 Alternate Modes */ + /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ + /* From the datasheet: "The peripheral function will control operation of the pad IF */ + /* THE PERIPHERAL IS ENABLED. */ *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ + *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + uint32_t i; while(1) { for(i=0; i Date: Mon, 30 Mar 2009 15:52:15 -0400 Subject: [PATCH 009/471] working test loopback. Baudrate value is still unexplained. --- tests/uart1-loopback.c | 36 ++++++++---------------------------- 1 file changed, 8 insertions(+), 28 deletions(-) diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index 9a90b1dbc..8a693fd49 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -1,5 +1,4 @@ #define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ -#define GPIO_FUNC_SEL1 0x8000001c /* GPIO 16 - 31; 2 bit blocks*/ #define BASE_UART1 0x80005000 #define UART1_CON 0x80005000 @@ -12,10 +11,7 @@ #include "embedded_types.h" -#define DELAY 100000 - void main(void) { - /* Restore UART regs. to default */ /* in case there is still bootloader state leftover */ @@ -31,29 +27,13 @@ void main(void) { *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ - uint32_t i; - + uint8_t c; while(1) { - for(i=0; i 0) { */ -/* /\* Receive buffer isn't empty *\/ */ -/* /\* read a byte and write it to the transmit buffer *\/ */ -/* } */ -/* }; */ + if(*(volatile uint32_t*)UR1CON > 0) { + /* Receive buffer isn't empty */ + /* read a byte and write it to the transmit buffer */ + c = *(volatile uint32_t *)UART1_DATA; + *(volatile uint32_t *)UART1_DATA = c; + } + }; } From 5fc1a9f2247677032ceaeb6786a68e497fb0216b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 30 Mar 2009 16:11:08 -0400 Subject: [PATCH 010/471] baudrate mystery was my bad code. --- tests/uart1-loopback.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index 8a693fd49..54e0f7f68 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -17,8 +17,10 @@ void main(void) { *(volatile uint32_t *)UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ - /* INC = 76; MOD = 1000 */ - *(volatile uint32_t *)UART1_BR = 0x004C03E8; /* Baud rate: (INC<<16 || MOD) */ /* is 115200 @ 24 MHz --- unexplained */ + /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ + #define INC 767 + #define MOD 9999 + *(volatile uint32_t *)UART1_BR = INC<<16 | MOD; /* see Section 11.5.1.2 Alternate Modes */ /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ From 8221cc260ef7707efbeea862c5a599371fa1cd9e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 1 Apr 2009 17:57:02 -0400 Subject: [PATCH 011/471] starting a rftest rx test. This will put it in the continuous receive mode and send the bytes received to the uart. --- tests/rftest-rx.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 tests/rftest-rx.c diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c new file mode 100644 index 000000000..eeb0b3d9c --- /dev/null +++ b/tests/rftest-rx.c @@ -0,0 +1,49 @@ +#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ + +#define BASE_UART1 0x80005000 +#define UART1_CON 0x80005000 +#define UART1_STAT 0x80005004 +#define UART1_DATA 0x80005008 +#define UR1CON 0x8000500c +#define UT1CON 0x80005010 +#define UART1_CTS 0x80005014 +#define UART1_BR 0x80005018 + +#define MACA_RESET 0x80004004 +#define MACA_CONTROL 0x8000400c +#define MACA_STATUS 0x80004010 +#define MACA_DMARX 0x80004080 +#define MACA_DMATX 0x80004084 +#define MACA_GETRXLVL 0x80004098 +#define MACA_PREAMBLE 0x8000411c + +#include "embedded_types.h" + +void main(void) { + /* Restore UART regs. to default */ + /* in case there is still bootloader state leftover */ + + *(volatile uint32_t *)UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + + /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ + #define INC 767 + #define MOD 9999 + *(volatile uint32_t *)UART1_BR = INC<<16 | MOD; + + /* see Section 11.5.1.2 Alternate Modes */ + /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ + /* From the datasheet: "The peripheral function will control operation of the pad IF */ + /* THE PERIPHERAL IS ENABLED. */ + *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ + *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + + uint8_t c; + while(1) { + if(*(volatile uint32_t*)UR1CON > 0) { + /* Receive buffer isn't empty */ + /* read a byte and write it to the transmit buffer */ + c = *(volatile uint32_t *)UART1_DATA; + *(volatile uint32_t *)UART1_DATA = c; + } + }; +} From 4db3756dacea353606242172ca68180af9bb9b2d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 2 Apr 2009 14:54:02 -0400 Subject: [PATCH 012/471] checkpoint --- boot.lds | 1 + tests/blink-red.c | 3 +- tests/rftest-rx.c | 96 ++++++++++++++++++++++++++++++++++----- tests/rftest-tx.c | 100 +++++++++++++++++++++++++++++++++++++++++ tests/uart1-loopback.c | 9 ++-- 5 files changed, 192 insertions(+), 17 deletions(-) create mode 100644 tests/rftest-tx.c diff --git a/boot.lds b/boot.lds index b800cb3c9..c9f49a561 100644 --- a/boot.lds +++ b/boot.lds @@ -32,6 +32,7 @@ SECTIONS . = ALIGN(4); .text : { + *(startup) *(.text) } diff --git a/tests/blink-red.c b/tests/blink-red.c index 794d82652..0780033e0 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -6,8 +6,7 @@ #include "embedded_types.h" -void main(void) { - +__attribute__ ((section ("startup"))) void main(void) { *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; volatile uint32_t i; diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index eeb0b3d9c..2e46f944a 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -9,7 +9,9 @@ #define UART1_CTS 0x80005014 #define UART1_BR 0x80005018 +#define MACA_BASE 0x80004000 #define MACA_RESET 0x80004004 +#define MACA_RANDOM 0x80004008 #define MACA_CONTROL 0x8000400c #define MACA_STATUS 0x80004010 #define MACA_DMARX 0x80004080 @@ -19,31 +21,103 @@ #include "embedded_types.h" +#define reg(x) (*(volatile uint32_t *)(x)) + +#define DELAY 400000 +#define DATA 0x00401000; + +void putc(uint8_t c); +void puts(uint8_t *s); +void put_hex(uint8_t x); +void put_hex16(uint16_t x); +void put_hex32(uint32_t x); + +const uint8_t hex[16]={'0','1','2','3','4','5','6','7', + '8','9','a','b','c','d','e','f'}; + +__attribute__ ((section ("startup"))) void main(void) { + uint8_t c; + volatile uint32_t i; + volatile uint32_t *data; + /* Restore UART regs. to default */ /* in case there is still bootloader state leftover */ - *(volatile uint32_t *)UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ #define INC 767 #define MOD 9999 - *(volatile uint32_t *)UART1_BR = INC<<16 | MOD; + reg(UART1_BR) = INC<<16 | MOD; /* see Section 11.5.1.2 Alternate Modes */ /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ /* From the datasheet: "The peripheral function will control operation of the pad IF */ /* THE PERIPHERAL IS ENABLED. */ - *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ - *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ + reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ - uint8_t c; - while(1) { - if(*(volatile uint32_t*)UR1CON > 0) { - /* Receive buffer isn't empty */ - /* read a byte and write it to the transmit buffer */ - c = *(volatile uint32_t *)UART1_DATA; - *(volatile uint32_t *)UART1_DATA = c; + reg(MACA_RESET) = 0x3; /* reset, turn on the clock */ + reg(MACA_RESET) = 0x2; /* unreset, turn on the clock */ + reg(MACA_CONTROL) = 0x00000224; /* continuous receive test mode */ + reg(MACA_DMARX) = DATA; /* put data somewhere */ + data = DATA; + + + data[0] = 0xdeadbeef; + + puts("\033[H\033[2J"); + while(1) { + puts("\033[Hrftest-rx --- "); + puts(" maca_getrxlvl: 0x"); + put_hex(reg(MACA_GETRXLVL)); + puts(" data[0]: 0x"); + put_hex32(data[0]); + puts(" status: 0x"); + put_hex32(reg(MACA_STATUS)); + puts(" random: 0x"); + put_hex32(reg(MACA_RANDOM)); + puts("\n\r"); + for (i = 0; i < 96; i ++) { + put_hex32(reg(MACA_BASE+(4*i))); + if ((i & 7) == 7) + puts("\n\r"); + else + putc(' '); } + for(i=0; i> 4]); + putc(hex[x & 15]); +} + +void put_hex16(uint16_t x) +{ + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} + +void put_hex32(uint32_t x) +{ + put_hex((x >> 24) & 0xFF); + put_hex((x >> 16) & 0xFF); + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c new file mode 100644 index 000000000..ca95d0628 --- /dev/null +++ b/tests/rftest-tx.c @@ -0,0 +1,100 @@ +#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ + +#define BASE_UART1 0x80005000 +#define UART1_CON 0x80005000 +#define UART1_STAT 0x80005004 +#define UART1_DATA 0x80005008 +#define UR1CON 0x8000500c +#define UT1CON 0x80005010 +#define UART1_CTS 0x80005014 +#define UART1_BR 0x80005018 + +#define MACA_RESET 0x80004004 +#define MACA_CONTROL 0x8000400c +#define MACA_STATUS 0x80004010 +#define MACA_DMARX 0x80004080 +#define MACA_DMATX 0x80004084 +#define MACA_GETRXLVL 0x80004098 +#define MACA_PREAMBLE 0x8000411c + +#include "embedded_types.h" + +#define reg(x) (*(volatile uint32_t *)x) + +#define DELAY 400000 +#define DATA 0x00401000; + +void putc(uint8_t c); +void puts(uint8_t *s); +void put_hex(uint8_t x); +void put_hex16(uint16_t x); +void put_hex32(uint32_t x); + +const uint8_t hex[16]={'0','1','2','3','4','5','6','7', + '8','9','a','b','c','d','e','f'}; + +__attribute__ ((section ("startup"))) +void main(void) { + uint8_t c; + volatile uint32_t i; + volatile uint32_t *data; + + /* Restore UART regs. to default */ + /* in case there is still bootloader state leftover */ + + reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + + /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ + #define INC 767 + #define MOD 9999 + reg(UART1_BR) = INC<<16 | MOD; + + /* see Section 11.5.1.2 Alternate Modes */ + /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ + /* From the datasheet: "The peripheral function will control operation of the pad IF */ + /* THE PERIPHERAL IS ENABLED. */ + reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ + reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + + reg(MACA_RESET) = 0x3; /* reset, turn on the clock */ + reg(MACA_RESET) = 0x2; /* unreset, turn on the clock */ + reg(MACA_CONTROL) = 0x00000223; /* continuous transmit test mode */ + reg(MACA_PREAMBLE) = 0xface0fff; + + while(1) { + puts("rftest-tx --- "); + for(i=0; i> 4]); + putc(hex[x & 15]); +} + +void put_hex16(uint16_t x) +{ + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} + +void put_hex32(uint32_t x) +{ + put_hex((x >> 24) & 0xFF); + put_hex((x >> 16) & 0xFF); + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index 54e0f7f68..fd6eafdb9 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -31,11 +31,12 @@ void main(void) { uint8_t c; while(1) { - if(*(volatile uint32_t*)UR1CON > 0) { + *(volatile uint32_t *)UART1_DATA = (uint8_t)'U'; +// if(*(volatile uint32_t*)UR1CON > 0) { /* Receive buffer isn't empty */ /* read a byte and write it to the transmit buffer */ - c = *(volatile uint32_t *)UART1_DATA; - *(volatile uint32_t *)UART1_DATA = c; - } +// c = *(volatile uint32_t *)UART1_DATA; +// *(volatile uint32_t *)UART1_DATA = c; +// } }; } From ef276e336cf8e3dc2092260c8a24f498b6a1bc6d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 2 Apr 2009 18:05:13 -0400 Subject: [PATCH 013/471] lots of code. Still doesn't work though. Thanks Jim! --- Makefile | 2 +- tests/rftest-rx.c | 67 +++++++++++++++++++++++++++++++++-------------- tests/rftest-tx.c | 55 +++++++++++++++++++++++++++++--------- 3 files changed, 92 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index c451cf962..dba449c52 100644 --- a/Makefile +++ b/Makefile @@ -58,7 +58,7 @@ ALL = $(TARGETS) $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) .PRECIOUS: $(COBJS) $(TARGETS) $(TESTS:.c=.obj) -all: $(ALL) +all: $(COBJS) $(ALL) %.srec: %.obj $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 2e46f944a..9c3c4bc30 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -9,16 +9,7 @@ #define UART1_CTS 0x80005014 #define UART1_BR 0x80005018 -#define MACA_BASE 0x80004000 -#define MACA_RESET 0x80004004 -#define MACA_RANDOM 0x80004008 -#define MACA_CONTROL 0x8000400c -#define MACA_STATUS 0x80004010 -#define MACA_DMARX 0x80004080 -#define MACA_DMATX 0x80004084 -#define MACA_GETRXLVL 0x80004098 -#define MACA_PREAMBLE 0x8000411c - +#include "maca.h" #include "embedded_types.h" #define reg(x) (*(volatile uint32_t *)(x)) @@ -39,6 +30,7 @@ __attribute__ ((section ("startup"))) void main(void) { uint8_t c; volatile uint32_t i; + uint32_t tmp; volatile uint32_t *data; /* Restore UART regs. to default */ @@ -58,18 +50,27 @@ void main(void) { reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + reg(MACA_RESET) = 0x3; /* reset, turn on the clock */ + for(i=0; i Date: Sat, 4 Apr 2009 15:27:08 -0400 Subject: [PATCH 014/471] maybe the modem syn. needs to be set right. reenabled the uart1-loopback code --- doesn't seem to be working --- strange. --- tests/rftest-rx.c | 1 + tests/rftest-tx.c | 6 ++++-- tests/uart1-loopback.c | 10 +++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 9c3c4bc30..26d11408c 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -50,6 +50,7 @@ void main(void) { reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + reg(80009000) = 0x00050100; reg(MACA_RESET) = 0x3; /* reset, turn on the clock */ for(i=0; i 0) { +// *(volatile uint32_t *)UART1_DATA = (uint8_t)'U'; + if(*(volatile uint32_t*)UR1CON > 0) { /* Receive buffer isn't empty */ /* read a byte and write it to the transmit buffer */ -// c = *(volatile uint32_t *)UART1_DATA; -// *(volatile uint32_t *)UART1_DATA = c; -// } + c = *(volatile uint32_t *)UART1_DATA; + *(volatile uint32_t *)UART1_DATA = c; + } }; } From fe7dabd1f2a6707dc22def9a94dcaa23407dfe18 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 4 Apr 2009 15:52:09 -0400 Subject: [PATCH 015/471] updated other tests with startup section --- tests/blink-blue.c | 1 + tests/blink-green.c | 1 + tests/blink-white.c | 1 + tests/uart1-loopback.c | 1 + 4 files changed, 4 insertions(+) diff --git a/tests/blink-blue.c b/tests/blink-blue.c index 095fd9cd7..dda1750bf 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -6,6 +6,7 @@ #include "embedded_types.h" +__attribute__ ((section ("startup"))) void main(void) { *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000400; diff --git a/tests/blink-green.c b/tests/blink-green.c index ededc94e7..2a7aa7add 100644 --- a/tests/blink-green.c +++ b/tests/blink-green.c @@ -6,6 +6,7 @@ #include "embedded_types.h" +__attribute__ ((section ("startup"))) void main(void) { *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000200; diff --git a/tests/blink-white.c b/tests/blink-white.c index 0376d3f7d..87a7f6720 100644 --- a/tests/blink-white.c +++ b/tests/blink-white.c @@ -6,6 +6,7 @@ #include "embedded_types.h" +__attribute__ ((section ("startup"))) void main(void) { *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000700; diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index f0bc4b17b..ce516d7ad 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -11,6 +11,7 @@ #include "embedded_types.h" +__attribute__ ((section ("startup"))) void main(void) { /* Restore UART regs. to default */ /* in case there is still bootloader state leftover */ From c99929db6c3fee3d153ec90686efcde175191cf5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 4 Apr 2009 15:55:12 -0400 Subject: [PATCH 016/471] make system is not really right... --- TODO | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 TODO diff --git a/TODO b/TODO new file mode 100644 index 000000000..7f048cf39 --- /dev/null +++ b/TODO @@ -0,0 +1,3 @@ +all of the objects in src (src/*.o) get linked into the final objects + even if they are not used. This should be fixed. + From 7c55a5387643a004ca0f4034663ab52f58c0bba1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 7 Apr 2009 09:33:04 -0400 Subject: [PATCH 017/471] added maca files that got missed. --- include/maca.h | 409 +++++++++++++++++++++++++++++++++++++++++++++++++ src/maca.c | 27 ++++ 2 files changed, 436 insertions(+) create mode 100644 include/maca.h create mode 100644 src/maca.c diff --git a/include/maca.h b/include/maca.h new file mode 100644 index 000000000..db2ccf097 --- /dev/null +++ b/include/maca.h @@ -0,0 +1,409 @@ +#ifndef _MACA_H_ +#define _MACA_H_ + +#include "embedded_types.h" + +#define MACA_BASE 0x80004000 +#define MACA_RESET 0x80004004 +#define MACA_RANDOM 0x80004008 +#define MACA_CONTROL 0x8000400c +#define MACA_STATUS 0x80004010 +#define MACA_DMARX 0x80004080 +#define MACA_DMATX 0x80004084 +#define MACA_GETRXLVL 0x80004098 +#define MACA_PREAMBLE 0x8000411c + +#define gMACA_Clock_DIV_c 95 + +void init_phy(void); + +//rom_base_adr equ 0x00000000 ; rom base address +//ram_base_adr equ 0x00400000 ; ram base address +//ram0_base_adr equ 0x00400000 ; ram0 base address (2K words = 8K +//bytes) +//ram1_base_adr equ 0x00402000 ; ram1 base address (6K words = 24K +//bytes) +//ram2_base_adr equ 0x00408000 ; ram2 base address (8K words = 32K +//bytes) +//ram3_base_adr equ 0x00410000 ; ram3 base address (8K words +enum { + cc_success = 0, + cc_timeout = 1, + cc_channel_busy = 2, + cc_crc_fail = 3, + cc_aborted = 4, + cc_no_ack = 5, + cc_no_data = 6, + cc_late_start = 7, + cc_ext_timeout = 8, + cc_ext_pnd_timeout = 9, + cc_nc1 = 10, + cc_nc2 = 11, + cc_nc3 = 12, + cc_cc_external_abort= 13, + cc_not_completed = 14, + cc_bus_error = 15 +}; +//control codes for mode bits + +enum { + control_mode_no_cca = 0, + control_mode_non_slotted = (1<<3), + control_mode_slotted = (1<<4) +}; +//control codes for sequence bits +enum { + control_seq_nop = 0, + control_seq_abort = 1, + control_seq_wait = 2, + control_seq_tx = 3, + control_seq_rx = 4, + control_seq_txpoll = 5, + control_seq_cca = 6, + control_seq_ed = 7 +}; + +#define maca_status_cc_mask (0x0F) + +#define maca_reset_rst (1<<0) +#define maca_reset_cln_on (1<<1) + +#define maca_frmpnd_data_pending (1<<0) +#define maca_frmpnd_no_data_pending (0x00) + +#define maca_txlen_max_rxlen (127<<16) + +#define max_rx_ackwnd_slotted_mode (0xFFF<<16) +#define max_rx_ackwnd_normal_mode (0xFFF) + + +#define control_pre_count (7<<16) /* preamble reapeat counter */ +#define control_rst_slot (1<<15) /* reset slot counter */ +#define control_role (1<<13) /* set if PAN coordinator */ +#define control_nofc (1<<12) /* set to disable FCS */ +#define control_prm (1<<11) /* set for promiscuous mode */ +#define control_relative (1<<10) /* 1 for relative, 0 for absolute */ +#define control_asap (1<<9) /* 1 start now, 0 timer start */ +#define control_bcn (1<<8) /* 1 beacon only, 0 for a */ +#define control_auto (1<<7) /* 1 continuous rx, rx only once */ +#define control_lfsr (1<<6) /* 1 use polynomial for Turbolink */ + +#define maca_irq_strt (1<<15) /* + STRT + Bit 15 + Action Started Interrupt—An auto-sequence is started, either + immediately or by timer trigger. + 1 = Clear interrupt source + 0 = Leave source untouched + */ +#define maca_irq_sync (1<<14) /* + SYNC + Bit 14 + Sync Detected Interrupt—The modem has detected the beginning + of a new packet + 1 = Clear interrupt source + 0 = Leave source untouched + */ +#define maca_irq_cm (1<<13) /* + CM + Bit 13 + Complete Clock Interrupt—The complete clock has generated a + trigger. + 1 = Clear interrupt source + 0 = Leave source untouched + */ +#define maca_irq_crc (1<<12) /* + CRC + Bit 12 + Checksum Failed Interrupt—The checksum failed for the received + packet. + 1 = Clear interrupt source + 0 = Leave source untouched + */ +#define maca_irq_flt (1<<11) /* + FLT + Bit 11 + Filter Failed Interrupt—The receive header filter failed. 1 = Clear interrupt source + 0 = Leave source untouched + SFT + Bit 10 + Soft Complete Clock Interrupt—The soft complete clock has + generated a trigger. + 1 = Clear interrupt source + 0 = Leave source untouched + */ +#define maca_irq_sftclk (1<<10) + +#define maca_irq_lvl (1<<9) /* + LVL + Bit 9 + FIFO Level interrupt—The receive FIFO level is reached or + exceeded. + 1 = Clear interrupt source + 0 = Leave source untouched + Bit 8-5 Reserved bits—Read as zero and written with zero for future + compatibility. N/A + */ +#define maca_irq_rst (1<<4) /* + RST + Bit 4 + Reset Interrupt—A non maskable reset interrupt detected (TBD!!!) 1 = Clear interrupt source + 0 = Leave source untouched + WU + Bit 3 + Wake-up Interrupt—Low power mode has been exited (TBD in + connection with CCM module). + 1 = Clear interrupt source + 0 = Leave source untouched + */ +#define maca_irq_wu (1<<3) + +#define maca_irq_di (1<<2) /* + DI + Bit 2 + Data Indication Interrupt—During receive, a packet has been + successfully received. + 1 = Clear interrupt source + 0 = Leave source untouched + */ +#define maca_irq_poll (1<<1) /* + POLL + Bit 1 + Poll Indication Interrupt—Issued when data request received (and + before ACK transmitted). MCU may then set MACA_FRMPND and + prepare fast response. TBD: Shall this be skipped if + MACA_FRMPND is clear? + 1 = Clear interrupt source + 0 = Leave source untouched + */ +#define maca_irq_acpl (1<<0) /* + ACPL + Action Complete Interrupt—Marks the completion of a complete + auto-sequence. + 1 = Clear interrupt source + 0 = Leave source untouched + */ + + +#define maca_start_clk (1<<0)/* + TMREN & TMRDIS enable/disable start clock + */ + +#define maca_cpl_clk (1<<1)/* + TMREN & TMRDIS enable/disable complete clock + */ + +#define maca_soft_clk (1<<2)/* + TMREN & TMRDIS enable/disable soft complete clock + */ + +#define maca_abort_start_clk (1<<3)/* + TMRDIS abort start clock + */ + +#define maca_abort_cpl_clk (1<<4)/* + TMRDIS abort complete clock + */ + +#define maca_abort_soft_clk (1<<5)/* + TMRDIS abort soft complete clock + */ + + +#define maca_version (*((volatile uint32_t *)(0x80004000))) +#define maca_reset (*((volatile uint32_t *)(0x80004004))) +#define maca_random (*((volatile uint32_t *)(0x80004008))) +#define maca_control (*((volatile uint32_t *)(0x8000400c))) +#define maca_status (*((volatile uint32_t *)(0x80004010))) +#define maca_frmpnd (*((volatile uint32_t *)(0x80004014))) + +#define maca_edvalue (*((volatile uint32_t *)(0x8000401c))) +#define maca_tmren (*((volatile uint32_t *)(0x80004040))) +#define maca_tmrdis (*((volatile uint32_t *)(0x80004044))) +#define maca_clk (*((volatile uint32_t *)(0x80004048))) +#define maca_startclk (*((volatile uint32_t *)(0x8000404c))) +#define maca_cplclk (*((volatile uint32_t *)(0x80004050))) +#define maca_sftclk (*((volatile uint32_t *)(0x80004054))) +#define maca_clkoffset (*((volatile uint32_t *)(0x80004058))) +#define maca_relclk (*((volatile uint32_t *)(0x8000405c))) +#define maca_cpltim (*((volatile uint32_t *)(0x80004060))) +#define maca_slotoffset (*((volatile uint32_t *)(0x80004064))) +#define maca_timestamp (*((volatile uint32_t *)(0x80004068))) +#define maca_dmarx (*((volatile uint32_t *)(0x80004080))) +#define maca_dmatx (*((volatile uint32_t *)(0x80004084))) +#define maca_dmatxpoll (*((volatile uint32_t *)(0x80004088))) +#define maca_txlen (*((volatile uint32_t *)(0x8000408c))) +#define maca_txseqnr (*((volatile uint32_t *)(0x80004090))) +#define maca_setrxlvl (*((volatile uint32_t *)(0x80004094))) +#define maca_getrxlvl (*((volatile uint32_t *)(0x80004098))) +#define maca_irq (*((volatile uint32_t *)(0x800040c0))) +#define maca_clrirq (*((volatile uint32_t *)(0x800040c4))) +#define maca_setirq (*((volatile uint32_t *)(0x800040c8))) +#define maca_maskirq (*((volatile uint32_t *)(0x800040cc))) +#define maca_panid (*((volatile uint32_t *)(0x80004100))) +#define maca_addr16 (*((volatile uint32_t *)(0x80004104))) +#define maca_maca64hi (*((volatile uint32_t *)(0x80004108))) +#define maca_maca64lo (*((volatile uint32_t *)(0x8000410c))) +#define maca_fltrej (*((volatile uint32_t *)(0x80004110))) +#define maca_divider (*((volatile uint32_t *)(0x80004114))) +#define maca_warmup (*((volatile uint32_t *)(0x80004118))) +#define maca_preamble (*((volatile uint32_t *)(0x8000411c))) +#define maca_whiteseed (*((volatile uint32_t *)(0x80004120))) +#define maca_framesync (*((volatile uint32_t *)(0x80004124))) +#define maca_framesync2 (*((volatile uint32_t *)(0x80004128))) +#define maca_txackdelay (*((volatile uint32_t *)(0x80004140))) +#define maca_rxackdelay (*((volatile uint32_t *)(0x80004144))) +#define maca_eofdelay (*((volatile uint32_t *)(0x80004148))) +#define maca_ccadelay (*((volatile uint32_t *)(0x8000414c))) +#define maca_rxend (*((volatile uint32_t *)(0x80004150))) +#define maca_txccadelay (*((volatile uint32_t *)(0x80004154))) +#define maca_key3 (*((volatile uint32_t *)(0x80004158))) +#define maca_key2 (*((volatile uint32_t *)(0x80004158))) +#define maca_key1 (*((volatile uint32_t *)(0x80004158))) +#define maca_key0 (*((volatile uint32_t *)(0x80004158))) + + +typedef union maca_version_reg_tag +{ + struct + { + uint32_t MINOR:8; + uint32_t RESERVED1:8; + uint32_t MAJOR:8; + uint32_t RESERVED2:8; + } Bits; + uint32_t Reg; +} maca_version_reg_t; + +#define maca_version_reg_st ((maca_version_reg_t)(maca_version)) + + +typedef union maca_reset_reg_tag +{ + struct + { + uint32_t RESERVED:30; + uint32_t CLK_ON:1; + uint32_t RST:1; + } Bits; + uint32_t Reg; +} maca_reset_reg_t; + +#define maca_reset_reg_st ((maca_reset_reg_t)(maca_reset)) + + +typedef union maca_ctrl_reg_tag +{ + struct + { + uint32_t RESERVED:11; + uint32_t ISM:1; + uint32_t PRE_COUNT:4; + uint32_t RSTO:1; + uint32_t RSV:1; + uint32_t ROLE:1; + uint32_t NOFC:1; + uint32_t PRM:1; + uint32_t rel:1; + uint32_t ASAP:1; + uint32_t BCN:1; + uint32_t AUTO:1; + uint32_t LFSR:1; + uint32_t TM:1; + uint32_t MODE:2; + uint32_t SEQUENCE:3; + } Bits; + uint32_t Reg; +} maca_ctrl_reg_t; + +#define maca_control_ism (1<<20) +#define maca_control_zigbee (~maca_control_ism) + +#define maca_ctrl_reg_st ((maca_ctrl_reg_t *)(&maca_reset)) +#define _set_maca_test_mode(x) (maca_ctrl_reg_st->Bits.TM = x) +#define _set_maca_sequence(x) (maca_ctrl_reg_st->Bits.SEQUENCE = x) +#define _set_maca_asap(x) (maca_ctrl_reg_st->Bits.ASAP = x) + + +#define MACA_CTRL_ZIGBEE_MODE (0) +#define MACA_CTRL_ISM_MODE (1) +#define MACA_CTRL_PRM_NORMAL_MODE (0) +#define MACA_CTRL_PRM_PROMISCUOUS_MODE (1) +#define MACA_CTRL_BCN_ALL (0) +#define MACA_CTRL_BCN_BEACON (1) +#define MACA_CTRL_TM_NORMAL (0) +#define MACA_CTRL_TM_TEST (1) +#define MACA_CTRL_MODE_NO_CCA (0) +#define MACA_CTRL_MODE_NON_SLOTTED (1) +#define MACA_CTRL_MODE_SLOTTED (2) + + +typedef union maca_status_reg_tag +{ + struct + { + uint32_t RESERVED:16; + uint32_t TO:1; + uint32_t CRC:1; + uint32_t BUSY:1; + uint32_t OVR:1; + uint32_t zigbee:1; + uint32_t :7; + uint32_t COMPLETE_CODE:4; + } Bits; + uint32_t Reg; +} maca_status_reg_t; + + +typedef enum maca_freq_chann_tag +{ + SMAC_CHANN_11 = 0, + SMAC_CHANN_12, + SMAC_CHANN_13, + SMAC_CHANN_14, + SMAC_CHANN_15, + SMAC_CHANN_16, + SMAC_CHANN_17, + SMAC_CHANN_18, + SMAC_CHANN_19, + SMAC_CHANN_20, + SMAC_CHANN_21, + SMAC_CHANN_22, + SMAC_CHANN_23, + SMAC_CHANN_24, + SMAC_CHANN_25, + SMAC_CHANN_26, + MAX_SMAC_CHANNELS +} maca_freq_chann_t; + + +typedef union maca_maskirq_reg_tag +{ + struct + { + uint32_t RESERVED1:16; + uint32_t STRT:1; + uint32_t SYNC:1; + uint32_t CM:1; + uint32_t CRC:1; + uint32_t FLT:1; + uint32_t SFT:1; + uint32_t LVL:1; + uint32_t RESERVED0:4; + uint32_t NOT_USED1:1; + uint32_t NOT_USED0:1; + uint32_t DI:1; + uint32_t POLL:1; + uint32_t ACPL:1; + } Bits; + uint32_t Reg; +} maca_maskirq_reg_t; + +#define SMAC_MACA_CNTL_INIT_STATE ( control_prm | control_nofc | control_mode_non_slotted ) + +#define MACA_WRITE(reg, src) (reg = src) +#define MACA_READ(reg) reg + + +#endif // _MACA_H_ + diff --git a/src/maca.c b/src/maca.c new file mode 100644 index 000000000..5a3b421a4 --- /dev/null +++ b/src/maca.c @@ -0,0 +1,27 @@ +#include "maca.h" + + +void init_phy(void) +{ + volatile uint32_t cnt; + + maca_reset = maca_reset_rst; + + for(cnt=0; cnt < 100; cnt++); + + maca_reset = maca_reset_cln_on; + maca_control = control_seq_nop; +#define DELAY 400000 + for(cnt=0; cnt < DELAY; cnt++); + + maca_tmren = maca_start_clk | maca_cpl_clk; + maca_divider = gMACA_Clock_DIV_c; + maca_warmup = 0x00180012; + maca_eofdelay = 0x00000004; + maca_ccadelay = 0x001a0022; + maca_txccadelay = 0x00000025; + maca_framesync = 0x000000A7; + maca_clk = 0x00000008; + maca_maskirq = 0; //(maca_irq_cm | maca_irq_acpl | maca_irq_rst | maca_irq_di | maca_irq_crc | maca_irq_flt ); + maca_slotoffset = 0x00350000; +} From bd459e187fdce49a70938047ee2507da58ddfd02 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 7 Apr 2009 18:19:00 -0400 Subject: [PATCH 018/471] found some magic data. best guess so far. --- include/maca.h | 126 +++++++++++++++++++++++++++- src/maca.c | 77 ++++++++++++++++- tests/rftest-rx.c | 204 +++++++++++++++++++++++++++++++++++++--------- 3 files changed, 367 insertions(+), 40 deletions(-) diff --git a/include/maca.h b/include/maca.h index db2ccf097..be0d4221b 100644 --- a/include/maca.h +++ b/include/maca.h @@ -14,8 +14,6 @@ #define MACA_PREAMBLE 0x8000411c #define gMACA_Clock_DIV_c 95 - -void init_phy(void); //rom_base_adr equ 0x00000000 ; rom base address //ram_base_adr equ 0x00400000 ; ram base address @@ -404,6 +402,130 @@ typedef union maca_maskirq_reg_tag #define MACA_WRITE(reg, src) (reg = src) #define MACA_READ(reg) reg +void reset_maca(void); +void init_phy(void); +void ResumeMACASync(void); + +/* Magic data + +better format + +00402e10 : + 402e10: 80004118 .word 0x80004118 + 402e14: 00180012 .word 0x00180012 + 402e18: 80009204 .word 0x80009204 + 402e1c: 00000605 .word 0x00000605 + 402e20: 80009208 .word 0x80009208 + 402e24: 00000504 .word 0x00000504 + 402e28: 8000920c .word 0x8000920c + 402e2c: 00001111 .word 0x00001111 + 402e30: 80009210 .word 0x80009210 + 402e34: 0fc40000 .word 0x0fc40000 + 402e38: 80009300 .word 0x80009300 + 402e3c: 20046000 .word 0x20046000 + 402e40: 80009304 .word 0x80009304 + 402e44: 4005580c .word 0x4005580c + 402e48: 80009308 .word 0x80009308 + 402e4c: 40075801 .word 0x40075801 + 402e50: 8000930c .word 0x8000930c + 402e54: 4005d801 .word 0x4005d801 + 402e58: 80009310 .word 0x80009310 + 402e5c: 5a45d800 .word 0x5a45d800 + 402e60: 80009314 .word 0x80009314 + 402e64: 4a45d800 .word 0x4a45d800 + 402e68: 80009318 .word 0x80009318 + 402e6c: 40044000 .word 0x40044000 + 402e70: 80009380 .word 0x80009380 + 402e74: 00106000 .word 0x00106000 + 402e78: 80009384 .word 0x80009384 + 402e7c: 00083806 .word 0x00083806 + 402e80: 80009388 .word 0x80009388 + 402e84: 00093807 .word 0x00093807 + 402e88: 8000938c .word 0x8000938c + 402e8c: 0009b804 .word 0x0009b804 + 402e90: 80009390 .word 0x80009390 + 402e94: 000db800 .word 0x000db800 + 402e98: 80009394 .word 0x80009394 + 402e9c: 00093802 .word 0x00093802 + 402ea0: 8000a008 .word 0x8000a008 + 402ea4: 00000015 .word 0x00000015 + 402ea8: 8000a018 .word 0x8000a018 + 402eac: 00000002 .word 0x00000002 + 402eb0: 8000a01c .word 0x8000a01c + 402eb4: 0000000f .word 0x0000000f + 402eb8: 80009424 .word 0x80009424 + 402ebc: 0000aaa0 .word 0x0000aaa0 + 402ec0: 80009434 .word 0x80009434 + 402ec4: 01002020 .word 0x01002020 + 402ec8: 80009438 .word 0x80009438 + 402ecc: 016800fe .word 0x016800fe + 402ed0: 8000943c .word 0x8000943c + 402ed4: 8e578248 .word 0x8e578248 + 402ed8: 80009440 .word 0x80009440 + 402edc: 000000dd .word 0x000000dd + 402ee0: 80009444 .word 0x80009444 + 402ee4: 00000946 .word 0x00000946 + 402ee8: 80009448 .word 0x80009448 + 402eec: 0000035a .word 0x0000035a + 402ef0: 8000944c .word 0x8000944c + 402ef4: 00100010 .word 0x00100010 + 402ef8: 80009450 .word 0x80009450 + 402efc: 00000515 .word 0x00000515 + 402f00: 80009460 .word 0x80009460 + 402f04: 00397feb .word 0x00397feb + 402f08: 80009464 .word 0x80009464 + 402f0c: 00180358 .word 0x00180358 + 402f10: 8000947c .word 0x8000947c + 402f14: 00000455 .word 0x00000455 + 402f18: 800094e0 .word 0x800094e0 + 402f1c: 00000001 .word 0x00000001 + 402f20: 800094e4 .word 0x800094e4 + 402f24: 00020003 .word 0x00020003 + 402f28: 800094e8 .word 0x800094e8 + 402f2c: 00040014 .word 0x00040014 + 402f30: 800094ec .word 0x800094ec + 402f34: 00240034 .word 0x00240034 + 402f38: 800094f0 .word 0x800094f0 + 402f3c: 00440144 .word 0x00440144 + 402f40: 800094f4 .word 0x800094f4 + 402f44: 02440344 .word 0x02440344 + 402f48: 800094f8 .word 0x800094f8 + 402f4c: 04440544 .word 0x04440544 + 402f50: 80009470 .word 0x80009470 + 402f54: 0ee7fc00 .word 0x0ee7fc00 + 402f58: 8000981c .word 0x8000981c + 402f5c: 00000082 .word 0x00000082 + 402f60: 80009828 .word 0x80009828 + 402f64: 0000002a .word 0x0000002a + +appears to be addr addr data data addr addr data data + +e.g. 0x80004118 gets 00180012 (MACA_WARMUP) + +00402e10 : + 402e10: 4118 8000 0012 0018 9204 8000 0605 0000 .A.............. + 402e20: 9208 8000 0504 0000 920c 8000 1111 0000 ................ + 402e30: 9210 8000 0000 0fc4 9300 8000 6000 2004 .............`. + 402e40: 9304 8000 580c 4005 9308 8000 5801 4007 .....X.@.....X.@ + 402e50: 930c 8000 d801 4005 9310 8000 d800 5a45 .......@......EZ + 402e60: 9314 8000 d800 4a45 9318 8000 4000 4004 ......EJ.....@.@ + 402e70: 9380 8000 6000 0010 9384 8000 3806 0008 .....`.......8.. + 402e80: 9388 8000 3807 0009 938c 8000 b804 0009 .....8.......... + 402e90: 9390 8000 b800 000d 9394 8000 3802 0009 .............8.. + 402ea0: a008 8000 0015 0000 a018 8000 0002 0000 ................ + 402eb0: a01c 8000 000f 0000 9424 8000 aaa0 0000 ........$....... + 402ec0: 9434 8000 2020 0100 9438 8000 00fe 0168 4... ..8.....h. + 402ed0: 943c 8000 8248 8e57 9440 8000 00dd 0000 <...H.W.@....... + 402ee0: 9444 8000 0946 0000 9448 8000 035a 0000 D...F...H...Z... + 402ef0: 944c 8000 0010 0010 9450 8000 0515 0000 L.......P....... + 402f00: 9460 8000 7feb 0039 9464 8000 0358 0018 `.....9.d...X... + 402f10: 947c 8000 0455 0000 94e0 8000 0001 0000 |...U........... + 402f20: 94e4 8000 0003 0002 94e8 8000 0014 0004 ................ + 402f30: 94ec 8000 0034 0024 94f0 8000 0144 0044 ....4.$.....D.D. + 402f40: 94f4 8000 0344 0244 94f8 8000 0544 0444 ....D.D.....D.D. + 402f50: 9470 8000 fc00 0ee7 981c 8000 0082 0000 p............... + 402f60: 9828 8000 002a 0000 (...*... +*/ #endif // _MACA_H_ diff --git a/src/maca.c b/src/maca.c index 5a3b421a4..9b3221075 100644 --- a/src/maca.c +++ b/src/maca.c @@ -22,6 +22,81 @@ void init_phy(void) maca_txccadelay = 0x00000025; maca_framesync = 0x000000A7; maca_clk = 0x00000008; - maca_maskirq = 0; //(maca_irq_cm | maca_irq_acpl | maca_irq_rst | maca_irq_di | maca_irq_crc | maca_irq_flt ); +// maca_maskirq = 0; //(maca_irq_cm | maca_irq_acpl | maca_irq_rst | maca_irq_di | maca_irq_crc | maca_irq_flt ); + maca_maskirq = maca_irq_rst; maca_slotoffset = 0x00350000; } + +void reset_maca(void) +{ + uint32_t tmp; + MACA_WRITE(maca_control, control_seq_nop); + do + { + tmp = MACA_READ(maca_status); + } + while ((tmp & maca_status_cc_mask) == cc_not_completed); + + /* Clear all interrupts. */ + MACA_WRITE(maca_clrirq, 0xFFFF); +} + + +/* + * Do the ABORT-Wait-NOP-Wait sequence in order to prevent MACA malfunctioning. + * This seqeunce is synchronous and no interrupts should be triggered when it is done. + */ +void ResumeMACASync(void) +{ + uint32_t clk, TsmRxSteps, LastWarmupStep, LastWarmupData, LastWarmdownStep, LastWarmdownData; +// bool_t tmpIsrStatus; + volatile uint32_t i; + +// ITC_DisableInterrupt(gMacaInt_c); +// AppInterrupts_ProtectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented + + /* Manual TSM modem shutdown */ + + /* read TSM_RX_STEPS */ + TsmRxSteps = (*((volatile uint32_t *)(0x80009204))); + + /* isolate the RX_WU_STEPS */ + /* shift left to align with 32-bit addressing */ + LastWarmupStep = (TsmRxSteps & 0x1f) << 2; + /* Read "current" TSM step and save this value for later */ + LastWarmupData = (*((volatile uint32_t *)(0x80009300 + LastWarmupStep))); + + /* isolate the RX_WD_STEPS */ + /* right-shift bits down to bit 0 position */ + /* left-shift to align with 32-bit addressing */ + LastWarmdownStep = ((TsmRxSteps & 0x1f00) >> 8) << 2; + /* write "last warmdown data" to current TSM step to shutdown rx */ + LastWarmdownData = (*((volatile uint32_t *)(0x80009300 + LastWarmdownStep))); + (*((volatile uint32_t *)(0x80009300 + LastWarmupStep))) = LastWarmdownData; + + /* Abort */ + MACA_WRITE(maca_control, 1); + + /* Wait ~8us */ + for (clk = maca_clk, i = 0; maca_clk - clk < 3 && i < 300; i++) + ; + + /* NOP */ + MACA_WRITE(maca_control, 0); + + /* Wait ~8us */ + for (clk = maca_clk, i = 0; maca_clk - clk < 3 && i < 300; i++) + ; + + + /* restore original "last warmup step" data to TSM (VERY IMPORTANT!!!) */ + (*((volatile uint32_t *)(0x80009300 + LastWarmupStep))) = LastWarmupData; + + + + /* Clear all MACA interrupts - we should have gotten the ABORT IRQ */ + MACA_WRITE(maca_clrirq, 0xFFFF); + +// AppInterrupts_UnprotectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented +// ITC_EnableInterrupt(gMacaInt_c); +} diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 26d11408c..82a229371 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -17,6 +17,8 @@ #define DELAY 400000 #define DATA 0x00401000; +#define NL "\033[K\r\n" + void putc(uint8_t c); void puts(uint8_t *s); void put_hex(uint8_t x); @@ -26,12 +28,57 @@ void put_hex32(uint32_t x); const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; +void magic(void) { +#define X 0x80009a000 +#define Y 0x80009a008 +#define VAL 0x0000f7df + volatile uint32_t x,y; + x = reg(X); /* get X */ + x &= 0xfffeffff; /* clear bit 16 */ + reg(X) = x; /* put it back */ + y = reg(Y); /* get Y */ + y |= VAL; /* or with the VAL */ + x = reg(X); /* get X again */ + x |= 16; /* or with 16 */ + reg(X) = x; /* put X back */ + reg(Y) = y; /* put Y back */ +} + +uint32_t ackBox[10]; + +#define command_xcvr_rx() \ + do { \ + maca_txlen = (uint32_t)1<<16; \ + maca_dmatx = (uint32_t)&ackBox; \ + maca_dmarx = DATA; \ + maca_tmren = (maca_cpl_clk | maca_soft_clk); \ + maca_control = (control_prm | control_asap | control_seq_rx); \ + }while(FALSE) + + +void dump_regs(uint32_t base, uint32_t len) { + volatile uint32_t i; + + puts("base +0 +4 +8 +c +10 +14 +18 +1c \n\r"); + for (i = 0; i < len; i ++) { + if ((i & 7) == 0) { + put_hex16(4 * i); + } + puts(" "); + put_hex32(reg(base+(4*i))); + if ((i & 7) == 7) + puts(NL); + } + puts(NL); +} + __attribute__ ((section ("startup"))) void main(void) { uint8_t c; volatile uint32_t i; uint32_t tmp; volatile uint32_t *data; + uint16_t status; /* Restore UART regs. to default */ /* in case there is still bootloader state leftover */ @@ -50,27 +97,53 @@ void main(void) { reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ - reg(80009000) = 0x00050100; + /* turn on the voltage regulators for the radio */ + /* you clod! */ + for(i=0; i> 8) << 2; + /* write "last warmdown data" to current TSM step to shutdown rx */ + LastWarmdownData = (*((volatile uint32_t *)(0x80009300 + LastWarmdownStep))); + + puts("LastWarmdownData: "); + put_hex32(LastWarmdownData); + puts(NL); + + + status = reg(MACA_STATUS) & 0x0000ffff; + switch(status) + { + case(cc_aborted): + { + puts("aborted\n\r"); + ResumeMACASync(); + break; + + } + case(cc_not_completed): + { + puts("not completed\n\r"); + ResumeMACASync(); + break; + + } + case(cc_success): + { + puts("success\n\r"); + break; + + } + default: + { + puts("status: "); + put_hex16(status); + } + } + +/* reg(MACA_CONTROL) = 0x00031a04; /\* receive *\/ */ +/* while (((tmp = reg(MACA_STATUS)) & 15) == 14) */ +/* puts("."); */ +/* puts("complete status is "); put_hex32(tmp); puts(NL); */ +/* puts("1 status is "); put_hex32(reg(MACA_STATUS)); puts(NL); */ +/* puts("2 status is "); put_hex32(reg(MACA_STATUS)); puts(NL); */ +/* puts("3 status is "); put_hex32(reg(MACA_STATUS)); puts(NL); */ + +/* puts(NL); */ +/* for(i=0; i Date: Tue, 7 Apr 2009 18:52:12 -0400 Subject: [PATCH 019/471] fill with the magic data... going to try this in place of their radio init and see if that gets there board working. --- include/maca.h | 3 ++- src/maca.c | 12 ++++++++++++ tests/rftest-rx.c | 10 ++++++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/include/maca.h b/include/maca.h index be0d4221b..01945e674 100644 --- a/include/maca.h +++ b/include/maca.h @@ -405,6 +405,8 @@ typedef union maca_maskirq_reg_tag void reset_maca(void); void init_phy(void); void ResumeMACASync(void); +void radio_init(void); + /* Magic data @@ -528,4 +530,3 @@ e.g. 0x80004118 gets 00180012 (MACA_WARMUP) */ #endif // _MACA_H_ - diff --git a/src/maca.c b/src/maca.c index 9b3221075..c72f3ae63 100644 --- a/src/maca.c +++ b/src/maca.c @@ -1,5 +1,10 @@ #include "maca.h" +/* best format */ +#define MAX_DATA 43 +const uint32_t addr[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x8000920c,0x80009210,0x80009300,0x80009304,0x80009308,0x8000930c,0x80009310,0x80009314,0x80009318,0x80009380,0x80009384,0x80009388,0x8000938c,0x80009390,0x80009394,0x8000a008,0x8000a018,0x8000a01c,0x80009424,0x80009434,0x80009438,0x8000943c,0x80009440,0x80009444,0x80009448,0x8000944c,0x80009450,0x80009460,0x80009464,0x8000947c,0x800094e0,0x800094e4,0x800094e8,0x800094ec,0x800094f0,0x800094f4,0x800094f8,0x80009470,0x8000981c,0x80009828 }; + +const uint32_t data[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a }; void init_phy(void) { @@ -42,6 +47,13 @@ void reset_maca(void) } +void radio_init(void) { + uint32_t i; + for(i=0; i Date: Wed, 8 Apr 2009 07:12:15 -0400 Subject: [PATCH 020/471] next debugging steps --- TODO | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index 7f048cf39..53791b68f 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,9 @@ -all of the objects in src (src/*.o) get linked into the final objects - even if they are not used. This should be fixed. +- write routine that compares registers before and after radioinit and + prints differences +- get the simulator in IAR working (or qemu) and check out what is + going on there. + +- all of the objects in src (src/*.o) get linked into the final objects + even if they are not used. This should be fixed. + From 9408a2db9df59c6e5b3b7a8eef11a201512d9c6a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 8 Apr 2009 15:50:00 -0400 Subject: [PATCH 021/471] addes a disassembly of something that works. --- src/maca.c | 34 + ws.dis | 44864 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44898 insertions(+) create mode 100644 ws.dis diff --git a/src/maca.c b/src/maca.c index c72f3ae63..51f608cfb 100644 --- a/src/maca.c +++ b/src/maca.c @@ -46,6 +46,40 @@ void reset_maca(void) MACA_WRITE(maca_clrirq, 0xFFFF); } +/* + 004030c4 : + 4030c4: 4806 ldr r0, [pc, #24] (4030e0 ) // r0 gets base 0x80009a00 + 4030c6: 6881 ldr r1, [r0, #8] // r1 gets *(0x80009a08) + 4030c8: 4806 ldr r0, [pc, #24] (4030e4 ) // r0 gets 0x0000f7df + 4030ca: 4308 orrs r0, r1 // or them, r0 has it + 4030cc: 4904 ldr r1, [pc, #16] (4030e0 ) // r1 gets base 0x80009a00 + 4030ce: 6088 str r0, [r1, #8] // put r0 into 0x80009a08 + 4030d0: 0008 lsls r0, r1, #0 // r0 gets r1, r0 is the base now + 4030d2: 4905 ldr r1, [pc, #20] (4030e8 ) // r1 gets 0x00ffffff + 4030d4: 60c1 str r1, [r0, #12] // put 0x00ffffff into base+12 + 4030d6: 0b09 lsrs r1, r1, #12 // r1 = 0x00ffffff >> 12 + 4030d8: 6101 str r1, [r0, #16] // put r1 base+16 + 4030da: 2110 movs r1, #16 // r1 gets 16 + 4030dc: 6001 str r1, [r0, #0] // put r1 in the base + 4030de: 4770 bx lr // return + 4030e0: 80009a00 .word 0x80009a00 + 4030e4: 0000f7df .word 0x0000f7df + 4030e8: 00ffffff .word 0x00ffffff +*/ + +#define FLYBACK_BASE 0x80009a000 +void flyback_init(void) { + uint32_t val8, or; + + val8 = *(volatile uint32_t *)(FLYBACK_BASE+8); + or = val8 | 0x0000f7df; + *(volatile uint32_t *)(FLYBACK_BASE+8) = or; + *(volatile uint32_t *)(FLYBACK_BASE+12) = 0x00ffffff; + *(volatile uint32_t *)(FLYBACK_BASE+16) = (((uint32_t)0x00ffffff)>>12); + *(volatile uint32_t *)(FLYBACK_BASE) = 16; + /* good luck and godspeed */ +} + void radio_init(void) { uint32_t i; diff --git a/ws.dis b/ws.dis new file mode 100644 index 000000000..59b5513f2 --- /dev/null +++ b/ws.dis @@ -0,0 +1,44864 @@ + +Weather Station Controller.out: file format elf32-littlearm + + +Disassembly of section P1: + +00400000 <_start_vector_>: + 400000: ea000d37 b 4034e4 <__start_> + 400004: ea000d58 b 40356c <__UndefInstructionHndlr_> + 400008: ea000d5f b 40358c <__SupervisorHndlr_> + 40000c: ea000d66 b 4035ac <__PrefetchAbtHndlr_> + 400010: ea000d6d b 4035cc <__DataAbtHndlr_> + 400014: ea000d53 b 403568 <__reserved_> + 400018: eaf041fc b 10810 + 40001c: eaf041ff b 10820 + +Disassembly of section P4: + +00400020 : + 400020: 4770 bx lr + +Disassembly of section P5: + +00400060 : + 400060: 4770 bx lr + +Disassembly of section P6: + +004000a0 : + 4000a0: 4770 bx lr + +Disassembly of section P7: + +004000e0 : + 4000e0: 4770 bx lr + +Disassembly of section P2: + +00400900 : + 400900: b408 push {r3} + 400902: 4b02 ldr r3, [pc, #8] (40090c ) + 400904: 469c mov ip, r3 + 400906: bc08 pop {r3} + 400908: 4760 bx ip + 40090a: 46c0 nop (mov r8, r8) + 40090c: 0000fae8 .word 0x0000fae8 + +00400910 : + 400910: b408 push {r3} + 400912: 4b02 ldr r3, [pc, #8] (40091c ) + 400914: 469c mov ip, r3 + 400916: bc08 pop {r3} + 400918: 4760 bx ip + 40091a: 46c0 nop (mov r8, r8) + 40091c: 00010798 .word 0x00010798 + +00400920 : + 400920: b408 push {r3} + 400922: 4b02 ldr r3, [pc, #8] (40092c ) + 400924: 469c mov ip, r3 + 400926: bc08 pop {r3} + 400928: 4760 bx ip + 40092a: 46c0 nop (mov r8, r8) + 40092c: 000107c8 .word 0x000107c8 + +00400930 : + 400930: b408 push {r3} + 400932: 4b02 ldr r3, [pc, #8] (40093c ) + 400934: 469c mov ip, r3 + 400936: bc08 pop {r3} + 400938: 4760 bx ip + 40093a: 46c0 nop (mov r8, r8) + 40093c: 000107e0 .word 0x000107e0 + +00400940 : + 400940: b408 push {r3} + 400942: 4b02 ldr r3, [pc, #8] (40094c ) + 400944: 469c mov ip, r3 + 400946: bc08 pop {r3} + 400948: 4760 bx ip + 40094a: 46c0 nop (mov r8, r8) + 40094c: 00010780 .word 0x00010780 + +00400950 : + 400950: b408 push {r3} + 400952: 4b02 ldr r3, [pc, #8] (40095c ) + 400954: 469c mov ip, r3 + 400956: bc08 pop {r3} + 400958: 4760 bx ip + 40095a: 46c0 nop (mov r8, r8) + 40095c: 0000faf8 .word 0x0000faf8 + +00400960 : + 400960: b580 push {r7, lr} + 400962: 4907 ldr r1, [pc, #28] (400980 ) + 400964: 466a mov r2, sp + 400966: 1103 asrs r3, r0, #4 + 400968: 5ccb ldrb r3, [r1, r3] + 40096a: 7013 strb r3, [r2, #0] + 40096c: 0700 lsls r0, r0, #28 + 40096e: 0f00 lsrs r0, r0, #28 + 400970: 5c08 ldrb r0, [r1, r0] + 400972: 7050 strb r0, [r2, #1] + 400974: 2000 movs r0, #0 + 400976: 7090 strb r0, [r2, #2] + 400978: 4668 mov r0, sp + 40097a: f002 fd81 bl 403480 + 40097e: e265 b.n 400e4c + +00400980 : + 400980: 00403f14 .word 0x00403f14 + +00400984 : + 400984: b510 push {r4, lr} + 400986: 0004 lsls r4, r0, #0 + 400988: 0a00 lsrs r0, r0, #8 + 40098a: e00d b.n 4009a8 + +0040098c : + 40098c: b510 push {r4, lr} + 40098e: 0004 lsls r4, r0, #0 + 400990: 0e00 lsrs r0, r0, #24 + 400992: f7ff ffe5 bl 400960 + 400996: 0c20 lsrs r0, r4, #16 + 400998: 0600 lsls r0, r0, #24 + 40099a: 0e00 lsrs r0, r0, #24 + 40099c: f7ff ffe0 bl 400960 + 4009a0: 0a20 lsrs r0, r4, #8 + 4009a2: 0600 lsls r0, r0, #24 + 4009a4: 0e00 lsrs r0, r0, #24 + 4009a6: 46c0 nop (mov r8, r8) + +004009a8 : + 4009a8: f7ff ffda bl 400960 + 4009ac: 0620 lsls r0, r4, #24 + 4009ae: 0e00 lsrs r0, r0, #24 + 4009b0: f7ff ffd6 bl 400960 + 4009b4: 9801 ldr r0, [sp, #4] + 4009b6: bc10 pop {r4} + 4009b8: b001 add sp, #4 + 4009ba: 4700 bx r0 + +004009bc : + 4009bc: b5f2 push {r1, r4, r5, r6, r7, lr} + 4009be: b082 sub sp, #8 + 4009c0: 0007 lsls r7, r0, #0 + 4009c2: 4816 ldr r0, [pc, #88] (400a1c ) + 4009c4: f002 fd5c bl 403480 + 4009c8: 2000 movs r0, #0 + 4009ca: 9000 str r0, [sp, #0] + 4009cc: 2407 movs r4, #7 + 4009ce: a514 add r5, pc, #80 (adr r5, 400a20 ) + 4009d0: a614 add r6, pc, #80 (adr r6, 400a24 ) + 4009d2: e019 b.n 400a08 + +004009d4 : + 4009d4: 9800 ldr r0, [sp, #0] + 4009d6: 4220 tst r0, r4 + 4009d8: d104 bne.n 4009e4 + 4009da: 9800 ldr r0, [sp, #0] + 4009dc: 0480 lsls r0, r0, #18 + 4009de: 0c00 lsrs r0, r0, #16 + 4009e0: f7ff ffd0 bl 400984 + +004009e4 : + 4009e4: 0028 lsls r0, r5, #0 + 4009e6: f002 fd4b bl 403480 + 4009ea: 9800 ldr r0, [sp, #0] + 4009ec: 0080 lsls r0, r0, #2 + 4009ee: 5838 ldr r0, [r7, r0] + 4009f0: f7ff ffcc bl 40098c + 4009f4: 9800 ldr r0, [sp, #0] + 4009f6: 4020 ands r0, r4 + 4009f8: 2807 cmp r0, #7 + 4009fa: d102 bne.n 400a02 + 4009fc: 0030 lsls r0, r6, #0 + 4009fe: f002 fd3f bl 403480 + +00400a02 : + 400a02: 9800 ldr r0, [sp, #0] + 400a04: 1c40 adds r0, r0, #1 + 400a06: 9000 str r0, [sp, #0] + +00400a08 : + 400a08: 9800 ldr r0, [sp, #0] + 400a0a: 9902 ldr r1, [sp, #8] + 400a0c: 4288 cmp r0, r1 + 400a0e: d3e1 bcc.n 4009d4 + 400a10: a004 add r0, pc, #16 (adr r0, 400a24 ) + 400a12: f002 fd35 bl 403480 + 400a16: f000 fc2b bl 401270 + 400a1a: 46c0 nop (mov r8, r8) + +00400a1c : + 400a1c: 00403c54 .word 0x00403c54 + 400a20: 00000020 .word 0x00000020 + 400a24: 00000d0a .word 0x00000d0a + +00400a28
: + 400a28: b500 push {lr} + 400a2a: b099 sub sp, #100 + 400a2c: 4809 ldr r0, [pc, #36] (400a54 ) + 400a2e: a913 add r1, sp, #76 + 400a30: 6141 str r1, [r0, #20] + 400a32: 2100 movs r1, #0 + 400a34: 61c1 str r1, [r0, #28] + 400a36: aa02 add r2, sp, #8 + 400a38: 6042 str r2, [r0, #4] + 400a3a: 4a05 ldr r2, [pc, #20] (400a50 ) + 400a3c: 60c2 str r2, [r0, #12] + 400a3e: 4883 ldr r0, [pc, #524] (400c4c ) + 400a40: 466a mov r2, sp + 400a42: 6042 str r2, [r0, #4] + 400a44: 60c1 str r1, [r0, #12] + 400a46: f000 f807 bl 400a58 + +00400a4a : + 400a4a: f000 f915 bl 400c78 + 400a4e: e7fc b.n 400a4a + +00400a50 : + 400a50: 00400c51 .word 0x00400c51 + +00400a54 : + 400a54: 00405280 .word 0x00405280 + +00400a58 : + 400a58: b5f8 push {r3, r4, r5, r6, r7, lr} + 400a5a: 2000 movs r0, #0 + 400a5c: 4c7b ldr r4, [pc, #492] (400c4c ) + 400a5e: 7460 strb r0, [r4, #17] + 400a60: 8260 strh r0, [r4, #18] + 400a62: 2107 movs r1, #7 + 400a64: 7521 strb r1, [r4, #20] + 400a66: 7560 strb r0, [r4, #21] + 400a68: 2101 movs r1, #1 + 400a6a: 75a1 strb r1, [r4, #22] + 400a6c: 7660 strb r0, [r4, #25] + 400a6e: 200f movs r0, #15 + 400a70: 76a0 strb r0, [r4, #26] + 400a72: f40f fa13 bl fe9c + 400a76: 4968 ldr r1, [pc, #416] (400c18 ) + 400a78: 2007 movs r0, #7 + 400a7a: f40f fa53 bl ff24 + 400a7e: 2100 movs r1, #0 + 400a80: 2007 movs r0, #7 + 400a82: f40f fa31 bl fee8 + 400a86: 2007 movs r0, #7 + 400a88: f40f fa9c bl ffc4 + 400a8c: 4963 ldr r1, [pc, #396] (400c1c ) + 400a8e: 2003 movs r0, #3 + 400a90: f40f fa48 bl ff24 + 400a94: 2100 movs r1, #0 + 400a96: 2003 movs r0, #3 + 400a98: f40f fa26 bl fee8 + 400a9c: 2003 movs r0, #3 + 400a9e: f40f fa91 bl ffc4 + 400aa2: 495f ldr r1, [pc, #380] (400c20 ) + 400aa4: 2005 movs r0, #5 + 400aa6: f40f fa3d bl ff24 + 400aaa: 2100 movs r1, #0 + 400aac: 2005 movs r0, #5 + 400aae: f40f fa1b bl fee8 + 400ab2: 2005 movs r0, #5 + 400ab4: f40f fa86 bl ffc4 + 400ab8: 495a ldr r1, [pc, #360] (400c24 ) + 400aba: 2002 movs r0, #2 + 400abc: f403 fa04 bl 3ec8 + 400ac0: 4959 ldr r1, [pc, #356] (400c28 ) + 400ac2: 2003 movs r0, #3 + 400ac4: f403 fa00 bl 3ec8 + 400ac8: 4958 ldr r1, [pc, #352] (400c2c ) + 400aca: 2004 movs r0, #4 + 400acc: f403 f9fc bl 3ec8 + 400ad0: 4957 ldr r1, [pc, #348] (400c30 ) + 400ad2: 2005 movs r0, #5 + 400ad4: f403 f9f8 bl 3ec8 + 400ad8: f7ff ff22 bl 400920 + 400adc: f7ff ff28 bl 400930 + 400ae0: 0020 lsls r0, r4, #0 + 400ae2: 3030 adds r0, #48 + 400ae4: f002 fc52 bl 40338c + 400ae8: 4d52 ldr r5, [pc, #328] (400c34 ) + 400aea: 0028 lsls r0, r5, #0 + 400aec: f002 fcc8 bl 403480 + 400af0: 0028 lsls r0, r5, #0 + 400af2: 3018 adds r0, #24 + 400af4: f002 fcc4 bl 403480 + 400af8: 2160 movs r1, #96 + 400afa: 484f ldr r0, [pc, #316] (400c38 ) + 400afc: f7ff ff5e bl 4009bc + 400b00: 0028 lsls r0, r5, #0 + 400b02: 3024 adds r0, #36 + 400b04: f002 fcbc bl 403480 + 400b08: 2160 movs r1, #96 + 400b0a: 484c ldr r0, [pc, #304] (400c3c ) + 400b0c: f7ff ff56 bl 4009bc + 400b10: 0028 lsls r0, r5, #0 + 400b12: 3038 adds r0, #56 + 400b14: f002 fcb4 bl 403480 + 400b18: 2160 movs r1, #96 + 400b1a: 4849 ldr r0, [pc, #292] (400c40 ) + 400b1c: f7ff ff4e bl 4009bc + 400b20: 0028 lsls r0, r5, #0 + 400b22: 304c adds r0, #76 + 400b24: f002 fcac bl 403480 + 400b28: 4f46 ldr r7, [pc, #280] (400c44 ) + 400b2a: 2160 movs r1, #96 + 400b2c: 0038 lsls r0, r7, #0 + 400b2e: f7ff ff45 bl 4009bc + 400b32: 0028 lsls r0, r5, #0 + 400b34: 3054 adds r0, #84 + 400b36: f002 fca3 bl 403480 + 400b3a: 4e43 ldr r6, [pc, #268] (400c48 ) + 400b3c: 21c0 movs r1, #192 + 400b3e: 0030 lsls r0, r6, #0 + 400b40: f7ff ff3c bl 4009bc + 400b44: f003 f994 bl 403e70 + 400b48: f002 fec2 bl 4038d0 + 400b4c: f003 f8aa bl 403ca4 + 400b50: 0020 lsls r0, r4, #0 + 400b52: 3030 adds r0, #48 + 400b54: f002 fc1a bl 40338c + 400b58: 0028 lsls r0, r5, #0 + 400b5a: 306c adds r0, #108 + 400b5c: f002 fc90 bl 403480 + 400b60: 0028 lsls r0, r5, #0 + 400b62: 3018 adds r0, #24 + 400b64: f002 fc8c bl 403480 + 400b68: 2160 movs r1, #96 + 400b6a: 4833 ldr r0, [pc, #204] (400c38 ) + 400b6c: f7ff ff26 bl 4009bc + 400b70: 0028 lsls r0, r5, #0 + 400b72: 3024 adds r0, #36 + 400b74: f002 fc84 bl 403480 + 400b78: 2160 movs r1, #96 + 400b7a: 4830 ldr r0, [pc, #192] (400c3c ) + 400b7c: f7ff ff1e bl 4009bc + 400b80: 0028 lsls r0, r5, #0 + 400b82: 3038 adds r0, #56 + 400b84: f002 fc7c bl 403480 + 400b88: 2160 movs r1, #96 + 400b8a: 482d ldr r0, [pc, #180] (400c40 ) + 400b8c: f7ff ff16 bl 4009bc + 400b90: 0028 lsls r0, r5, #0 + 400b92: 304c adds r0, #76 + 400b94: f002 fc74 bl 403480 + 400b98: 2160 movs r1, #96 + 400b9a: 0038 lsls r0, r7, #0 + 400b9c: f7ff ff0e bl 4009bc + 400ba0: 3554 adds r5, #84 + 400ba2: 0028 lsls r0, r5, #0 + 400ba4: f002 fc6c bl 403480 + 400ba8: 21c0 movs r1, #192 + 400baa: 0030 lsls r0, r6, #0 + 400bac: f7ff ff06 bl 4009bc + 400bb0: 2000 movs r0, #0 + 400bb2: f7ff fead bl 400910 + 400bb6: 2000 movs r0, #0 + 400bb8: f7ff fec2 bl 400940 + 400bbc: f002 fd24 bl 403608 + 400bc0: f003 f896 bl 403cf0 + 400bc4: f000 fe0c bl 4017e0 + 400bc8: f000 fecc bl 401964 + 400bcc: 220f movs r2, #15 + 400bce: 2100 movs r1, #0 + 400bd0: 20f0 movs r0, #240 + 400bd2: f002 fed9 bl 403988 + 400bd6: 7ea0 ldrb r0, [r4, #26] + 400bd8: f002 ff59 bl 403a8e + 400bdc: 7d60 ldrb r0, [r4, #21] + 400bde: f002 ff27 bl 403a30 + 400be2: f000 fe37 bl 401854 + 400be6: 7da0 ldrb r0, [r4, #22] + 400be8: f001 fa5c bl 4020a4 + 400bec: f000 ffb3 bl 401b56 + 400bf0: 2110 movs r1, #16 + 400bf2: 2015 movs r0, #21 + 400bf4: f000 fa4a bl 40108c + 400bf8: 20fa movs r0, #250 + 400bfa: 0080 lsls r0, r0, #2 + 400bfc: f003 f8c2 bl 403d84 + 400c00: 2110 movs r1, #16 + 400c02: 2015 movs r0, #21 + 400c04: f000 fb3c bl 401280 + 400c08: f000 ffa5 bl 401b56 + 400c0c: 7d20 ldrb r0, [r4, #20] + 400c0e: f000 fc11 bl 401434 + 400c12: b001 add sp, #4 + 400c14: e32e b.n 401274 + 400c16: 46c0 nop (mov r8, r8) + +00400c18 : + 400c18: 00402c45 .word 0x00402c45 + 400c1c: 00003f35 .word 0x00003f35 + 400c20: 0000ab41 .word 0x0000ab41 + 400c24: 00400e25 .word 0x00400e25 + 400c28: 00400e39 .word 0x00400e39 + 400c2c: 00400e6d .word 0x00400e6d + 400c30: 00400e59 .word 0x00400e59 + 400c34: 00403b28 .word 0x00403b28 + 400c38: 80004000 .word 0x80004000 + 400c3c: 80009000 .word 0x80009000 + 400c40: 800091c0 .word 0x800091c0 + 400c44: 80003000 .word 0x80003000 + 400c48: 80009200 .word 0x80009200 + +00400c4c : + 400c4c: 00405244 .word 0x00405244 + +00400c50 : + 400c50: 4807 ldr r0, [pc, #28] (400c70 ) + 400c52: 6801 ldr r1, [r0, #0] + 400c54: 2210 movs r2, #16 + 400c56: 400a ands r2, r1 + 400c58: 0911 lsrs r1, r2, #4 + 400c5a: 2901 cmp r1, #1 + 400c5c: d106 bne.n 400c6c + 400c5e: 6801 ldr r1, [r0, #0] + 400c60: 2210 movs r2, #16 + 400c62: 4391 bics r1, r2 + 400c64: 6001 str r1, [r0, #0] + 400c66: 4803 ldr r0, [pc, #12] (400c74 ) + 400c68: 2101 movs r1, #1 + 400c6a: 7001 strb r1, [r0, #0] + +00400c6c : + 400c6c: 4770 bx lr + 400c6e: 46c0 nop (mov r8, r8) + +00400c70 : + 400c70: 004053b8 .word 0x004053b8 + 400c74: 00405254 .word 0x00405254 + +00400c78 : + 400c78: b570 push {r4, r5, r6, lr} + 400c7a: b084 sub sp, #16 + 400c7c: f001 fbd4 bl 402428 + 400c80: 4c64 ldr r4, [pc, #400] (400e14 ) + 400c82: 7c20 ldrb r0, [r4, #16] + 400c84: 2801 cmp r0, #1 + 400c86: d103 bne.n 400c90 + 400c88: 2000 movs r0, #0 + 400c8a: 7420 strb r0, [r4, #16] + 400c8c: f000 f9a6 bl 400fdc + +00400c90 : + 400c90: 4861 ldr r0, [pc, #388] (400e18 ) + 400c92: 7800 ldrb r0, [r0, #0] + 400c94: 2800 cmp r0, #0 + 400c96: d110 bne.n 400cba + 400c98: 4860 ldr r0, [pc, #384] (400e1c ) + 400c9a: 8801 ldrh r1, [r0, #0] + 400c9c: 2900 cmp r1, #0 + 400c9e: d00c beq.n 400cba + 400ca0: 2100 movs r1, #0 + 400ca2: 8001 strh r1, [r0, #0] + 400ca4: 4668 mov r0, sp + 400ca6: f000 fe47 bl 401938 + 400caa: 4668 mov r0, sp + 400cac: 7801 ldrb r1, [r0, #0] + 400cae: 29fd cmp r1, #253 + 400cb0: d103 bne.n 400cba + 400cb2: 7881 ldrb r1, [r0, #2] + 400cb4: 7840 ldrb r0, [r0, #1] + 400cb6: f000 fddd bl 401874 + +00400cba : + 400cba: 2502 movs r5, #2 + 400cbc: 7c60 ldrb r0, [r4, #17] + 400cbe: 4228 tst r0, r5 + 400cc0: d00e beq.n 400ce0 + 400cc2: 21fd movs r1, #253 + 400cc4: 4001 ands r1, r0 + 400cc6: 7461 strb r1, [r4, #17] + 400cc8: 7ce1 ldrb r1, [r4, #19] + 400cca: 1e48 subs r0, r1, #1 + 400ccc: 4180 sbcs r0, r0 + 400cce: 0fc0 lsrs r0, r0, #31 + 400cd0: 74e0 strb r0, [r4, #19] + 400cd2: f000 fd9b bl 40180c + 400cd6: f000 ff3e bl 401b56 + 400cda: 7d20 ldrb r0, [r4, #20] + 400cdc: f000 fbaa bl 401434 + +00400ce0 : + 400ce0: 7c60 ldrb r0, [r4, #17] + 400ce2: 07c0 lsls r0, r0, #31 + 400ce4: d512 bpl.n 400d0c + 400ce6: 7c60 ldrb r0, [r4, #17] + 400ce8: 21fe movs r1, #254 + 400cea: 4001 ands r1, r0 + 400cec: 7461 strb r1, [r4, #17] + 400cee: 7d60 ldrb r0, [r4, #21] + 400cf0: 280f cmp r0, #15 + 400cf2: d101 bne.n 400cf8 + 400cf4: 2000 movs r0, #0 + 400cf6: e000 b.n 400cfa + +00400cf8 : + 400cf8: 1c40 adds r0, r0, #1 + +00400cfa : + 400cfa: 7560 strb r0, [r4, #21] + 400cfc: 7d60 ldrb r0, [r4, #21] + 400cfe: f002 fe97 bl 403a30 + 400d02: f000 ff28 bl 401b56 + 400d06: 7d20 ldrb r0, [r4, #20] + 400d08: f000 fb94 bl 401434 + +00400d0c : + 400d0c: 2604 movs r6, #4 + 400d0e: 7c60 ldrb r0, [r4, #17] + 400d10: 4230 tst r0, r6 + 400d12: d00e beq.n 400d32 + 400d14: 21fb movs r1, #251 + 400d16: 4001 ands r1, r0 + 400d18: 7461 strb r1, [r4, #17] + 400d1a: 7d20 ldrb r0, [r4, #20] + 400d1c: 280d cmp r0, #13 + 400d1e: d101 bne.n 400d24 + 400d20: 2005 movs r0, #5 + 400d22: e000 b.n 400d26 + +00400d24 : + 400d24: 1c80 adds r0, r0, #2 + +00400d26 : + 400d26: 7520 strb r0, [r4, #20] + 400d28: f000 ff15 bl 401b56 + 400d2c: 7d20 ldrb r0, [r4, #20] + 400d2e: f000 fb81 bl 401434 + +00400d32 : + 400d32: 7c60 ldrb r0, [r4, #17] + 400d34: 0700 lsls r0, r0, #28 + 400d36: d50d bpl.n 400d54 + 400d38: 7c60 ldrb r0, [r4, #17] + 400d3a: 21f7 movs r1, #247 + 400d3c: 4001 ands r1, r0 + 400d3e: 7461 strb r1, [r4, #17] + 400d40: 7da0 ldrb r0, [r4, #22] + 400d42: 2801 cmp r0, #1 + 400d44: d101 bne.n 400d4a + 400d46: 2000 movs r0, #0 + 400d48: e000 b.n 400d4c + +00400d4a : + 400d4a: 2001 movs r0, #1 + +00400d4c : + 400d4c: 75a0 strb r0, [r4, #22] + 400d4e: 7da0 ldrb r0, [r4, #22] + 400d50: f001 f9a8 bl 4020a4 + +00400d54 : + 400d54: 7ee0 ldrb r0, [r4, #27] + 400d56: 2800 cmp r0, #0 + 400d58: d006 beq.n 400d68 + 400d5a: 2802 cmp r0, #2 + 400d5c: d035 beq.n 400dca + 400d5e: d305 bcc.n 400d6c + 400d60: 2804 cmp r0, #4 + 400d62: d046 beq.n 400df2 + 400d64: d31e bcc.n 400da4 + 400d66: e018 b.n 400d9a + +00400d68 : + 400d68: 2001 movs r0, #1 + 400d6a: e015 b.n 400d98 + +00400d6c : + 400d6c: 482c ldr r0, [pc, #176] (400e20 ) + 400d6e: 2107 movs r1, #7 + 400d70: 7802 ldrb r2, [r0, #0] + 400d72: 400a ands r2, r1 + 400d74: 2328 movs r3, #40 + 400d76: 4313 orrs r3, r2 + 400d78: 7003 strb r3, [r0, #0] + 400d7a: 7820 ldrb r0, [r4, #0] + 400d7c: 4001 ands r1, r0 + 400d7e: 2020 movs r0, #32 + 400d80: 4308 orrs r0, r1 + 400d82: 7020 strb r0, [r4, #0] + 400d84: 6860 ldr r0, [r4, #4] + 400d86: 2141 movs r1, #65 + 400d88: 7081 strb r1, [r0, #2] + 400d8a: 6860 ldr r0, [r4, #4] + 400d8c: 2143 movs r1, #67 + 400d8e: 70c1 strb r1, [r0, #3] + 400d90: 6860 ldr r0, [r4, #4] + 400d92: 214b movs r1, #75 + 400d94: 7101 strb r1, [r0, #4] + 400d96: 2003 movs r0, #3 + +00400d98 : + 400d98: 76e0 strb r0, [r4, #27] + +00400d9a : + 400d9a: b004 add sp, #16 + 400d9c: 9803 ldr r0, [sp, #12] + 400d9e: bc70 pop {r4, r5, r6} + 400da0: b001 add sp, #4 + 400da2: 4700 bx r0 + +00400da4 : + 400da4: 481e ldr r0, [pc, #120] (400e20 ) + 400da6: 7801 ldrb r1, [r0, #0] + 400da8: 08c9 lsrs r1, r1, #3 + 400daa: 2905 cmp r1, #5 + 400dac: d005 beq.n 400dba + 400dae: 2906 cmp r1, #6 + 400db0: d003 beq.n 400dba + 400db2: 2908 cmp r1, #8 + 400db4: d001 beq.n 400dba + 400db6: 2904 cmp r1, #4 + 400db8: d1ef bne.n 400d9a + +00400dba : + 400dba: 2143 movs r1, #67 + 400dbc: 7201 strb r1, [r0, #8] + 400dbe: 21f0 movs r1, #240 + 400dc0: 0209 lsls r1, r1, #8 + 400dc2: f002 fe47 bl 403a54 + 400dc6: 76e5 strb r5, [r4, #27] + 400dc8: e7e7 b.n 400d9a + +00400dca : + 400dca: 4815 ldr r0, [pc, #84] (400e20 ) + 400dcc: 7801 ldrb r1, [r0, #0] + 400dce: 08c9 lsrs r1, r1, #3 + 400dd0: 2905 cmp r1, #5 + 400dd2: d005 beq.n 400de0 + 400dd4: 2906 cmp r1, #6 + 400dd6: d003 beq.n 400de0 + 400dd8: 2908 cmp r1, #8 + 400dda: d001 beq.n 400de0 + 400ddc: 2904 cmp r1, #4 + 400dde: d101 bne.n 400de4 + +00400de0 : + 400de0: 2003 movs r0, #3 + 400de2: 76e0 strb r0, [r4, #27] + +00400de4 : + 400de4: 7ca0 ldrb r0, [r4, #18] + 400de6: 2801 cmp r0, #1 + 400de8: d1d7 bne.n 400d9a + 400dea: 2000 movs r0, #0 + 400dec: 74a0 strb r0, [r4, #18] + 400dee: 76e6 strb r6, [r4, #27] + 400df0: e7d3 b.n 400d9a + +00400df2 : + 400df2: 7820 ldrb r0, [r4, #0] + 400df4: 08c0 lsrs r0, r0, #3 + 400df6: 2804 cmp r0, #4 + 400df8: d005 beq.n 400e06 + 400dfa: 2805 cmp r0, #5 + 400dfc: d003 beq.n 400e06 + 400dfe: 2807 cmp r0, #7 + 400e00: d001 beq.n 400e06 + 400e02: 2803 cmp r0, #3 + 400e04: d104 bne.n 400e10 + +00400e06 : + 400e06: 2005 movs r0, #5 + 400e08: 7220 strb r0, [r4, #8] + 400e0a: 0020 lsls r0, r4, #0 + 400e0c: f002 fe06 bl 403a1c + +00400e10 : + 400e10: 76e5 strb r5, [r4, #27] + +00400e12 : + 400e12: e7c2 b.n 400d9a + +00400e14 : + 400e14: 00405244 .word 0x00405244 + 400e18: 004052a4 .word 0x004052a4 + 400e1c: 004052a6 .word 0x004052a6 + 400e20: 00405280 .word 0x00405280 + +00400e24 : + 400e24: b580 push {r7, lr} + 400e26: 2064 movs r0, #100 + 400e28: f002 ffac bl 403d84 + 400e2c: 4801 ldr r0, [pc, #4] (400e34 ) + 400e2e: 7c41 ldrb r1, [r0, #17] + 400e30: 2202 movs r2, #2 + 400e32: e009 b.n 400e48 + +00400e34 : + 400e34: 00405244 .word 0x00405244 + +00400e38 : + 400e38: b580 push {r7, lr} + 400e3a: 2064 movs r0, #100 + 400e3c: f002 ffa2 bl 403d84 + 400e40: 4804 ldr r0, [pc, #16] (400e54 ) + 400e42: 7c41 ldrb r1, [r0, #17] + 400e44: 2204 movs r2, #4 + 400e46: 46c0 nop (mov r8, r8) + +00400e48 : + 400e48: 430a orrs r2, r1 + 400e4a: 7442 strb r2, [r0, #17] + +00400e4c : + 400e4c: 9801 ldr r0, [sp, #4] + 400e4e: b002 add sp, #8 + 400e50: 4700 bx r0 + ... + +00400e54 : + 400e54: 00405244 .word 0x00405244 + +00400e58 : + 400e58: b580 push {r7, lr} + 400e5a: 2064 movs r0, #100 + 400e5c: f002 ff92 bl 403d84 + 400e60: 4801 ldr r0, [pc, #4] (400e68 ) + 400e62: 7c41 ldrb r1, [r0, #17] + 400e64: 2201 movs r2, #1 + 400e66: e7ef b.n 400e48 + +00400e68 : + 400e68: 00405244 .word 0x00405244 + +00400e6c : + 400e6c: b580 push {r7, lr} + 400e6e: 2064 movs r0, #100 + 400e70: f002 ff88 bl 403d84 + 400e74: 4801 ldr r0, [pc, #4] (400e7c ) + 400e76: 7c41 ldrb r1, [r0, #17] + 400e78: 2208 movs r2, #8 + 400e7a: e7e5 b.n 400e48 + +00400e7c : + 400e7c: 00405244 .word 0x00405244 + +00400e80 : + 400e80: b5f8 push {r3, r4, r5, r6, r7, lr} + 400e82: 1f49 subs r1, r1, #5 + 400e84: d009 beq.n 400e9a + 400e86: 1e89 subs r1, r1, #2 + 400e88: d00e beq.n 400ea8 + 400e8a: 1e89 subs r1, r1, #2 + 400e8c: d030 beq.n 400ef0 + 400e8e: 1e89 subs r1, r1, #2 + 400e90: d050 beq.n 400f34 + 400e92: 1e89 subs r1, r1, #2 + 400e94: d100 bne.n 400e98 + 400e96: e083 b.n 400fa0 + 400e98: e08f b.n 400fba + +00400e9a : + 400e9a: 21b4 movs r1, #180 + 400e9c: 0049 lsls r1, r1, #1 + 400e9e: 1a09 subs r1, r1, r0 + 400ea0: 4a49 ldr r2, [pc, #292] (400fc8 ) + 400ea2: 8011 strh r1, [r2, #0] + 400ea4: 0002 lsls r2, r0, #0 + 400ea6: e088 b.n 400fba + +00400ea8 : + 400ea8: 0007 lsls r7, r0, #0 + 400eaa: 2164 movs r1, #100 + 400eac: f7ff fd28 bl 400900 + 400eb0: 0204 lsls r4, r0, #8 + 400eb2: 0038 lsls r0, r7, #0 + 400eb4: 2164 movs r1, #100 + 400eb6: f7ff fd23 bl 400900 + 400eba: 4321 orrs r1, r4 + 400ebc: 000e lsls r6, r1, #0 + 400ebe: 4c43 ldr r4, [pc, #268] (400fcc ) + 400ec0: 8466 strh r6, [r4, #34] + 400ec2: 4843 ldr r0, [pc, #268] (400fd0 ) + 400ec4: 4347 muls r7, r0 + 400ec6: 0038 lsls r0, r7, #0 + 400ec8: 21fa movs r1, #250 + 400eca: 0089 lsls r1, r1, #2 + 400ecc: f7ff fd18 bl 400900 + 400ed0: 0007 lsls r7, r0, #0 + 400ed2: 2164 movs r1, #100 + 400ed4: f7ff fd3c bl 400950 + 400ed8: 0200 lsls r0, r0, #8 + 400eda: b501 push {r0, lr} + 400edc: 0038 lsls r0, r7, #0 + 400ede: 2164 movs r1, #100 + 400ee0: f7ff fd36 bl 400950 + 400ee4: 9800 ldr r0, [sp, #0] + 400ee6: b002 add sp, #8 + 400ee8: 4301 orrs r1, r0 + 400eea: 8521 strh r1, [r4, #40] + +00400eec : + 400eec: 0032 lsls r2, r6, #0 + 400eee: e064 b.n 400fba + +00400ef0 : + 400ef0: 0007 lsls r7, r0, #0 + 400ef2: 2164 movs r1, #100 + 400ef4: f7ff fd04 bl 400900 + 400ef8: 0204 lsls r4, r0, #8 + 400efa: 0038 lsls r0, r7, #0 + 400efc: 2164 movs r1, #100 + 400efe: f7ff fcff bl 400900 + 400f02: 4321 orrs r1, r4 + 400f04: 000e lsls r6, r1, #0 + 400f06: 4c31 ldr r4, [pc, #196] (400fcc ) + 400f08: 8426 strh r6, [r4, #32] + 400f0a: 2091 movs r0, #145 + 400f0c: 4347 muls r7, r0 + 400f0e: 0038 lsls r0, r7, #0 + 400f10: 4930 ldr r1, [pc, #192] (400fd4 ) + 400f12: f7ff fcf5 bl 400900 + 400f16: 0007 lsls r7, r0, #0 + 400f18: 2164 movs r1, #100 + 400f1a: f7ff fd19 bl 400950 + 400f1e: 0200 lsls r0, r0, #8 + 400f20: b501 push {r0, lr} + 400f22: 0038 lsls r0, r7, #0 + 400f24: 2164 movs r1, #100 + 400f26: f7ff fd13 bl 400950 + 400f2a: 9800 ldr r0, [sp, #0] + 400f2c: b002 add sp, #8 + 400f2e: 4301 orrs r1, r0 + 400f30: 84e1 strh r1, [r4, #38] + 400f32: e7db b.n 400eec + +00400f34 : + 400f34: 4928 ldr r1, [pc, #160] (400fd8 ) + 400f36: 4288 cmp r0, r1 + 400f38: d303 bcc.n 400f42 + 400f3a: 0401 lsls r1, r0, #16 + 400f3c: 1a08 subs r0, r1, r0 + 400f3e: 2101 movs r1, #1 + 400f40: e000 b.n 400f44 + +00400f42 : + 400f42: 2100 movs r1, #0 + +00400f44 : + 400f44: 4c21 ldr r4, [pc, #132] (400fcc ) + 400f46: 75e1 strb r1, [r4, #23] + 400f48: 0400 lsls r0, r0, #16 + 400f4a: 0c00 lsrs r0, r0, #16 + 400f4c: 0007 lsls r7, r0, #0 + 400f4e: 2164 movs r1, #100 + 400f50: f7ff fcd6 bl 400900 + 400f54: 0206 lsls r6, r0, #8 + 400f56: 0038 lsls r0, r7, #0 + 400f58: 2164 movs r1, #100 + 400f5a: f7ff fcd1 bl 400900 + 400f5e: 4331 orrs r1, r6 + 400f60: 000e lsls r6, r1, #0 + 400f62: 83e6 strh r6, [r4, #30] + 400f64: 00f8 lsls r0, r7, #3 + 400f66: 19c0 adds r0, r0, r7 + 400f68: 0040 lsls r0, r0, #1 + 400f6a: 210a movs r1, #10 + 400f6c: f7ff fcc8 bl 400900 + 400f70: 21c8 movs r1, #200 + 400f72: 0109 lsls r1, r1, #4 + 400f74: 1847 adds r7, r0, r1 + 400f76: 0038 lsls r0, r7, #0 + 400f78: 2164 movs r1, #100 + 400f7a: f7ff fce9 bl 400950 + 400f7e: 0200 lsls r0, r0, #8 + 400f80: b501 push {r0, lr} + 400f82: 0038 lsls r0, r7, #0 + 400f84: 2164 movs r1, #100 + 400f86: f7ff fce3 bl 400950 + 400f8a: 9800 ldr r0, [sp, #0] + 400f8c: b002 add sp, #8 + 400f8e: 4301 orrs r1, r0 + 400f90: 84a1 strh r1, [r4, #36] + 400f92: 7de0 ldrb r0, [r4, #23] + 400f94: 2800 cmp r0, #0 + 400f96: d0a9 beq.n 400eec + 400f98: 2280 movs r2, #128 + 400f9a: 0212 lsls r2, r2, #8 + 400f9c: 4332 orrs r2, r6 + 400f9e: e00c b.n 400fba + +00400fa0 : + 400fa0: 0007 lsls r7, r0, #0 + 400fa2: 2164 movs r1, #100 + 400fa4: f7ff fcac bl 400900 + 400fa8: 0204 lsls r4, r0, #8 + 400faa: 0038 lsls r0, r7, #0 + 400fac: 2164 movs r1, #100 + 400fae: f7ff fca7 bl 400900 + 400fb2: 4321 orrs r1, r4 + 400fb4: 4c05 ldr r4, [pc, #20] (400fcc ) + 400fb6: 8561 strh r1, [r4, #42] + 400fb8: 000a lsls r2, r1, #0 + +00400fba : + 400fba: 0410 lsls r0, r2, #16 + 400fbc: 0c00 lsrs r0, r0, #16 + 400fbe: b001 add sp, #4 + 400fc0: 9904 ldr r1, [sp, #16] + 400fc2: bcf0 pop {r4, r5, r6, r7} + 400fc4: b001 add sp, #4 + 400fc6: 4708 bx r1 + +00400fc8 : + 400fc8: 00405270 .word 0x00405270 + 400fcc: 00405244 .word 0x00405244 + 400fd0: 0000026d .word 0x0000026d + 400fd4: 00002710 .word 0x00002710 + 400fd8: 00003909 .word 0x00003909 + +00400fdc : + 400fdc: b5f0 push {r4, r5, r6, r7, lr} + 400fde: b085 sub sp, #20 + 400fe0: 4f24 ldr r7, [pc, #144] (401074 ) + 400fe2: 6878 ldr r0, [r7, #4] + 400fe4: 78c0 ldrb r0, [r0, #3] + 400fe6: 2801 cmp r0, #1 + 400fe8: d142 bne.n 401070 + 400fea: 4923 ldr r1, [pc, #140] (401078 ) + 400fec: 7008 strb r0, [r1, #0] + 400fee: 6879 ldr r1, [r7, #4] + 400ff0: 7909 ldrb r1, [r1, #4] + 400ff2: 4a22 ldr r2, [pc, #136] (40107c ) + 400ff4: 6812 ldr r2, [r2, #0] + 400ff6: 7151 strb r1, [r2, #5] + 400ff8: 466e mov r6, sp + 400ffa: 21fe movs r1, #254 + 400ffc: 7031 strb r1, [r6, #0] + 400ffe: 7070 strb r0, [r6, #1] + 401000: 6878 ldr r0, [r7, #4] + 401002: 7900 ldrb r0, [r0, #4] + 401004: 70b0 strb r0, [r6, #2] + 401006: 6878 ldr r0, [r7, #4] + 401008: 7940 ldrb r0, [r0, #5] + 40100a: 70f0 strb r0, [r6, #3] + 40100c: 6878 ldr r0, [r7, #4] + 40100e: 7980 ldrb r0, [r0, #6] + 401010: 7130 strb r0, [r6, #4] + 401012: 2405 movs r4, #5 + 401014: 466d mov r5, sp + 401016: 1d6d adds r5, r5, #5 + +00401018 : + 401018: 6878 ldr r0, [r7, #4] + 40101a: 1900 adds r0, r0, r4 + 40101c: 0621 lsls r1, r4, #24 + 40101e: 0e09 lsrs r1, r1, #24 + 401020: 7882 ldrb r2, [r0, #2] + 401022: 0212 lsls r2, r2, #8 + 401024: 78c0 ldrb r0, [r0, #3] + 401026: 4310 orrs r0, r2 + 401028: f7ff ff2a bl 400e80 + 40102c: 0a01 lsrs r1, r0, #8 + 40102e: 7029 strb r1, [r5, #0] + 401030: 7068 strb r0, [r5, #1] + 401032: 1ca4 adds r4, r4, #2 + 401034: 1cad adds r5, r5, #2 + 401036: 0620 lsls r0, r4, #24 + 401038: 0e00 lsrs r0, r0, #24 + 40103a: 280e cmp r0, #14 + 40103c: d3ec bcc.n 401018 + 40103e: 6878 ldr r0, [r7, #4] + 401040: 7c40 ldrb r0, [r0, #17] + 401042: 73f0 strb r0, [r6, #15] + 401044: 20ff movs r0, #255 + 401046: 7430 strb r0, [r6, #16] + 401048: 480d ldr r0, [pc, #52] (401080 ) + 40104a: 7800 ldrb r0, [r0, #0] + 40104c: 2801 cmp r0, #1 + 40104e: d10b bne.n 401068 + 401050: 78f0 ldrb r0, [r6, #3] + 401052: 490c ldr r1, [pc, #48] (401084 ) + 401054: 7809 ldrb r1, [r1, #0] + 401056: 4281 cmp r1, r0 + 401058: d006 beq.n 401068 + 40105a: 490a ldr r1, [pc, #40] (401084 ) + 40105c: 7008 strb r0, [r1, #0] + 40105e: 2211 movs r2, #17 + 401060: 4669 mov r1, sp + 401062: 2000 movs r0, #0 + 401064: f402 f808 bl 3078 + +00401068 : + 401068: 4807 ldr r0, [pc, #28] (401088 ) + 40106a: 7800 ldrb r0, [r0, #0] + 40106c: f000 f9e2 bl 401434 + +00401070 : + 401070: b005 add sp, #20 + 401072: e0ff b.n 401274 + +00401074 : + 401074: 00405280 .word 0x00405280 + 401078: 00405256 .word 0x00405256 + 40107c: 00405248 .word 0x00405248 + 401080: 0040525d .word 0x0040525d + 401084: 00405260 .word 0x00405260 + 401088: 00405258 .word 0x00405258 + +0040108c : + 40108c: b5f0 push {r4, r5, r6, r7, lr} + 40108e: b083 sub sp, #12 + 401090: 0005 lsls r5, r0, #0 + 401092: 000c lsls r4, r1, #0 + 401094: 4668 mov r0, sp + 401096: 4979 ldr r1, [pc, #484] (40127c ) + 401098: c94c ldmia r1!, {r2, r3, r6} + 40109a: c04c stmia r0!, {r2, r3, r6} + 40109c: 2600 movs r6, #0 + +0040109e : + 40109e: 2201 movs r2, #1 + 4010a0: 0621 lsls r1, r4, #24 + 4010a2: 0e09 lsrs r1, r1, #24 + 4010a4: 0628 lsls r0, r5, #24 + 4010a6: 0e00 lsrs r0, r0, #24 + 4010a8: f001 f807 bl 4020ba + 4010ac: 1c67 adds r7, r4, #1 + 4010ae: 2201 movs r2, #1 + 4010b0: 0639 lsls r1, r7, #24 + 4010b2: 0e09 lsrs r1, r1, #24 + 4010b4: 0628 lsls r0, r5, #24 + 4010b6: 0e00 lsrs r0, r0, #24 + 4010b8: f000 ffff bl 4020ba + 4010bc: 2201 movs r2, #1 + 4010be: 0639 lsls r1, r7, #24 + 4010c0: 0e09 lsrs r1, r1, #24 + 4010c2: 1c68 adds r0, r5, #1 + 4010c4: 0600 lsls r0, r0, #24 + 4010c6: 0e00 lsrs r0, r0, #24 + 4010c8: f000 fff7 bl 4020ba + 4010cc: 2201 movs r2, #1 + 4010ce: 0639 lsls r1, r7, #24 + 4010d0: 0e09 lsrs r1, r1, #24 + 4010d2: 1e68 subs r0, r5, #1 + 4010d4: 0600 lsls r0, r0, #24 + 4010d6: 0e00 lsrs r0, r0, #24 + 4010d8: f000 ffef bl 4020ba + 4010dc: 1ca7 adds r7, r4, #2 + 4010de: 2201 movs r2, #1 + 4010e0: 0639 lsls r1, r7, #24 + 4010e2: 0e09 lsrs r1, r1, #24 + 4010e4: 1ea8 subs r0, r5, #2 + 4010e6: 0600 lsls r0, r0, #24 + 4010e8: 0e00 lsrs r0, r0, #24 + 4010ea: f000 ffe6 bl 4020ba + 4010ee: 2201 movs r2, #1 + 4010f0: 0639 lsls r1, r7, #24 + 4010f2: 0e09 lsrs r1, r1, #24 + 4010f4: 1e68 subs r0, r5, #1 + 4010f6: 0600 lsls r0, r0, #24 + 4010f8: 0e00 lsrs r0, r0, #24 + 4010fa: f000 ffde bl 4020ba + 4010fe: 2201 movs r2, #1 + 401100: 0639 lsls r1, r7, #24 + 401102: 0e09 lsrs r1, r1, #24 + 401104: 0628 lsls r0, r5, #24 + 401106: 0e00 lsrs r0, r0, #24 + 401108: f000 ffd7 bl 4020ba + 40110c: 2201 movs r2, #1 + 40110e: 0639 lsls r1, r7, #24 + 401110: 0e09 lsrs r1, r1, #24 + 401112: 1c68 adds r0, r5, #1 + 401114: 0600 lsls r0, r0, #24 + 401116: 0e00 lsrs r0, r0, #24 + 401118: f000 ffcf bl 4020ba + 40111c: 2201 movs r2, #1 + 40111e: 0639 lsls r1, r7, #24 + 401120: 0e09 lsrs r1, r1, #24 + 401122: 1ca8 adds r0, r5, #2 + 401124: 0600 lsls r0, r0, #24 + 401126: 0e00 lsrs r0, r0, #24 + 401128: f000 ffc7 bl 4020ba + 40112c: 2201 movs r2, #1 + 40112e: 1ce1 adds r1, r4, #3 + 401130: 0609 lsls r1, r1, #24 + 401132: 0e09 lsrs r1, r1, #24 + 401134: 1ee8 subs r0, r5, #3 + 401136: 0600 lsls r0, r0, #24 + 401138: 0e00 lsrs r0, r0, #24 + 40113a: f000 ffbe bl 4020ba + 40113e: 2201 movs r2, #1 + 401140: 1ce1 adds r1, r4, #3 + 401142: 0609 lsls r1, r1, #24 + 401144: 0e09 lsrs r1, r1, #24 + 401146: 1ea8 subs r0, r5, #2 + 401148: 0600 lsls r0, r0, #24 + 40114a: 0e00 lsrs r0, r0, #24 + 40114c: f000 ffb5 bl 4020ba + 401150: 2201 movs r2, #1 + 401152: 1ce1 adds r1, r4, #3 + 401154: 0609 lsls r1, r1, #24 + 401156: 0e09 lsrs r1, r1, #24 + 401158: 1e68 subs r0, r5, #1 + 40115a: 0600 lsls r0, r0, #24 + 40115c: 0e00 lsrs r0, r0, #24 + 40115e: f000 ffac bl 4020ba + 401162: 2201 movs r2, #1 + 401164: 1ce1 adds r1, r4, #3 + 401166: 0609 lsls r1, r1, #24 + 401168: 0e09 lsrs r1, r1, #24 + 40116a: 0628 lsls r0, r5, #24 + 40116c: 0e00 lsrs r0, r0, #24 + 40116e: f000 ffa4 bl 4020ba + 401172: 2201 movs r2, #1 + 401174: 1ce1 adds r1, r4, #3 + 401176: 0609 lsls r1, r1, #24 + 401178: 0e09 lsrs r1, r1, #24 + 40117a: 1c68 adds r0, r5, #1 + 40117c: 0600 lsls r0, r0, #24 + 40117e: 0e00 lsrs r0, r0, #24 + 401180: f000 ff9b bl 4020ba + 401184: 1d27 adds r7, r4, #4 + 401186: 2201 movs r2, #1 + 401188: 0639 lsls r1, r7, #24 + 40118a: 0e09 lsrs r1, r1, #24 + 40118c: 1f28 subs r0, r5, #4 + 40118e: 0600 lsls r0, r0, #24 + 401190: 0e00 lsrs r0, r0, #24 + 401192: f000 ff92 bl 4020ba + 401196: 2201 movs r2, #1 + 401198: 0639 lsls r1, r7, #24 + 40119a: 0e09 lsrs r1, r1, #24 + 40119c: 1ee8 subs r0, r5, #3 + 40119e: 0600 lsls r0, r0, #24 + 4011a0: 0e00 lsrs r0, r0, #24 + 4011a2: f000 ff8a bl 4020ba + 4011a6: 2201 movs r2, #1 + 4011a8: 0639 lsls r1, r7, #24 + 4011aa: 0e09 lsrs r1, r1, #24 + 4011ac: 1ea8 subs r0, r5, #2 + 4011ae: 0600 lsls r0, r0, #24 + 4011b0: 0e00 lsrs r0, r0, #24 + 4011b2: f000 ff82 bl 4020ba + 4011b6: 2201 movs r2, #1 + 4011b8: 0639 lsls r1, r7, #24 + 4011ba: 0e09 lsrs r1, r1, #24 + 4011bc: 1e68 subs r0, r5, #1 + 4011be: 0600 lsls r0, r0, #24 + 4011c0: 0e00 lsrs r0, r0, #24 + 4011c2: f000 ff7a bl 4020ba + 4011c6: 2201 movs r2, #1 + 4011c8: 0639 lsls r1, r7, #24 + 4011ca: 0e09 lsrs r1, r1, #24 + 4011cc: 0628 lsls r0, r5, #24 + 4011ce: 0e00 lsrs r0, r0, #24 + 4011d0: f000 ff73 bl 4020ba + 4011d4: 1d67 adds r7, r4, #5 + 4011d6: 2201 movs r2, #1 + 4011d8: 0639 lsls r1, r7, #24 + 4011da: 0e09 lsrs r1, r1, #24 + 4011dc: 1ee8 subs r0, r5, #3 + 4011de: 0600 lsls r0, r0, #24 + 4011e0: 0e00 lsrs r0, r0, #24 + 4011e2: f000 ff6a bl 4020ba + 4011e6: 2201 movs r2, #1 + 4011e8: 0639 lsls r1, r7, #24 + 4011ea: 0e09 lsrs r1, r1, #24 + 4011ec: 1ea8 subs r0, r5, #2 + 4011ee: 0600 lsls r0, r0, #24 + 4011f0: 0e00 lsrs r0, r0, #24 + 4011f2: f000 ff62 bl 4020ba + 4011f6: 2201 movs r2, #1 + 4011f8: 0639 lsls r1, r7, #24 + 4011fa: 0e09 lsrs r1, r1, #24 + 4011fc: 1e68 subs r0, r5, #1 + 4011fe: 0600 lsls r0, r0, #24 + 401200: 0e00 lsrs r0, r0, #24 + 401202: f000 ff5a bl 4020ba + 401206: 1da7 adds r7, r4, #6 + 401208: 2201 movs r2, #1 + 40120a: 0639 lsls r1, r7, #24 + 40120c: 0e09 lsrs r1, r1, #24 + 40120e: 1ea8 subs r0, r5, #2 + 401210: 0600 lsls r0, r0, #24 + 401212: 0e00 lsrs r0, r0, #24 + 401214: f000 ff51 bl 4020ba + 401218: 0630 lsls r0, r6, #24 + 40121a: 0e00 lsrs r0, r0, #24 + 40121c: 2802 cmp r0, #2 + 40121e: d003 beq.n 401228 + 401220: 2804 cmp r0, #4 + 401222: d004 beq.n 40122e + 401224: 2806 cmp r0, #6 + 401226: d105 bne.n 401234 + +00401228 : + 401228: 003c lsls r4, r7, #0 + 40122a: 1fad subs r5, r5, #6 + 40122c: e004 b.n 401238 + +0040122e : + 40122e: 1ce4 adds r4, r4, #3 + 401230: 3d09 subs r5, #9 + 401232: e001 b.n 401238 + +00401234 : + 401234: 1ce4 adds r4, r4, #3 + 401236: 1d2d adds r5, r5, #4 + +00401238 : + 401238: 1c76 adds r6, r6, #1 + 40123a: 0630 lsls r0, r6, #24 + 40123c: 0e00 lsrs r0, r0, #24 + 40123e: 2808 cmp r0, #8 + 401240: d200 bcs.n 401244 + 401242: e72c b.n 40109e + 401244: 2001 movs r0, #1 + 401246: f000 ff1d bl 402084 + 40124a: 3c14 subs r4, #20 + 40124c: 0027 lsls r7, r4, #0 + 40124e: 350f adds r5, #15 + 401250: 466e mov r6, sp + 401252: 2409 movs r4, #9 + +00401254 : + 401254: 063a lsls r2, r7, #24 + 401256: 0e12 lsrs r2, r2, #24 + 401258: 0629 lsls r1, r5, #24 + 40125a: 0e09 lsrs r1, r1, #24 + 40125c: 7830 ldrb r0, [r6, #0] + 40125e: f000 ffc1 bl 4021e4 + 401262: 1dad adds r5, r5, #6 + 401264: 1c76 adds r6, r6, #1 + 401266: 1e64 subs r4, r4, #1 + 401268: d1f4 bne.n 401254 + 40126a: 2000 movs r0, #0 + 40126c: f000 ff0a bl 402084 + +00401270 : + 401270: b003 add sp, #12 + 401272: 46c0 nop (mov r8, r8) + +00401274 : + 401274: 9804 ldr r0, [sp, #16] + 401276: bcf0 pop {r4, r5, r6, r7} + 401278: b001 add sp, #4 + 40127a: 4700 bx r0 + +0040127c : + 40127c: 00403f24 .word 0x00403f24 + +00401280 : + 401280: b5f8 push {r3, r4, r5, r6, r7, lr} + 401282: 0005 lsls r5, r0, #0 + 401284: 000c lsls r4, r1, #0 + 401286: 2600 movs r6, #0 + +00401288 : + 401288: 2200 movs r2, #0 + 40128a: 0621 lsls r1, r4, #24 + 40128c: 0e09 lsrs r1, r1, #24 + 40128e: 0628 lsls r0, r5, #24 + 401290: 0e00 lsrs r0, r0, #24 + 401292: f000 ff12 bl 4020ba + 401296: 1c67 adds r7, r4, #1 + 401298: 2200 movs r2, #0 + 40129a: 0639 lsls r1, r7, #24 + 40129c: 0e09 lsrs r1, r1, #24 + 40129e: 0628 lsls r0, r5, #24 + 4012a0: 0e00 lsrs r0, r0, #24 + 4012a2: f000 ff0a bl 4020ba + 4012a6: 2200 movs r2, #0 + 4012a8: 0639 lsls r1, r7, #24 + 4012aa: 0e09 lsrs r1, r1, #24 + 4012ac: 1c68 adds r0, r5, #1 + 4012ae: 0600 lsls r0, r0, #24 + 4012b0: 0e00 lsrs r0, r0, #24 + 4012b2: f000 ff02 bl 4020ba + 4012b6: 2200 movs r2, #0 + 4012b8: 0639 lsls r1, r7, #24 + 4012ba: 0e09 lsrs r1, r1, #24 + 4012bc: 1e68 subs r0, r5, #1 + 4012be: 0600 lsls r0, r0, #24 + 4012c0: 0e00 lsrs r0, r0, #24 + 4012c2: f000 fefa bl 4020ba + 4012c6: 1ca7 adds r7, r4, #2 + 4012c8: 2200 movs r2, #0 + 4012ca: 0639 lsls r1, r7, #24 + 4012cc: 0e09 lsrs r1, r1, #24 + 4012ce: 1ea8 subs r0, r5, #2 + 4012d0: 0600 lsls r0, r0, #24 + 4012d2: 0e00 lsrs r0, r0, #24 + 4012d4: f000 fef1 bl 4020ba + 4012d8: 2200 movs r2, #0 + 4012da: 0639 lsls r1, r7, #24 + 4012dc: 0e09 lsrs r1, r1, #24 + 4012de: 1e68 subs r0, r5, #1 + 4012e0: 0600 lsls r0, r0, #24 + 4012e2: 0e00 lsrs r0, r0, #24 + 4012e4: f000 fee9 bl 4020ba + 4012e8: 2200 movs r2, #0 + 4012ea: 0639 lsls r1, r7, #24 + 4012ec: 0e09 lsrs r1, r1, #24 + 4012ee: 0628 lsls r0, r5, #24 + 4012f0: 0e00 lsrs r0, r0, #24 + 4012f2: f000 fee2 bl 4020ba + 4012f6: 2200 movs r2, #0 + 4012f8: 0639 lsls r1, r7, #24 + 4012fa: 0e09 lsrs r1, r1, #24 + 4012fc: 1c68 adds r0, r5, #1 + 4012fe: 0600 lsls r0, r0, #24 + 401300: 0e00 lsrs r0, r0, #24 + 401302: f000 feda bl 4020ba + 401306: 2200 movs r2, #0 + 401308: 0639 lsls r1, r7, #24 + 40130a: 0e09 lsrs r1, r1, #24 + 40130c: 1ca8 adds r0, r5, #2 + 40130e: 0600 lsls r0, r0, #24 + 401310: 0e00 lsrs r0, r0, #24 + 401312: f000 fed2 bl 4020ba + 401316: 2200 movs r2, #0 + 401318: 1ce1 adds r1, r4, #3 + 40131a: 0609 lsls r1, r1, #24 + 40131c: 0e09 lsrs r1, r1, #24 + 40131e: 1ee8 subs r0, r5, #3 + 401320: 0600 lsls r0, r0, #24 + 401322: 0e00 lsrs r0, r0, #24 + 401324: f000 fec9 bl 4020ba + 401328: 2200 movs r2, #0 + 40132a: 1ce1 adds r1, r4, #3 + 40132c: 0609 lsls r1, r1, #24 + 40132e: 0e09 lsrs r1, r1, #24 + 401330: 1ea8 subs r0, r5, #2 + 401332: 0600 lsls r0, r0, #24 + 401334: 0e00 lsrs r0, r0, #24 + 401336: f000 fec0 bl 4020ba + 40133a: 2200 movs r2, #0 + 40133c: 1ce1 adds r1, r4, #3 + 40133e: 0609 lsls r1, r1, #24 + 401340: 0e09 lsrs r1, r1, #24 + 401342: 1e68 subs r0, r5, #1 + 401344: 0600 lsls r0, r0, #24 + 401346: 0e00 lsrs r0, r0, #24 + 401348: f000 feb7 bl 4020ba + 40134c: 2200 movs r2, #0 + 40134e: 1ce1 adds r1, r4, #3 + 401350: 0609 lsls r1, r1, #24 + 401352: 0e09 lsrs r1, r1, #24 + 401354: 0628 lsls r0, r5, #24 + 401356: 0e00 lsrs r0, r0, #24 + 401358: f000 feaf bl 4020ba + 40135c: 2200 movs r2, #0 + 40135e: 1ce1 adds r1, r4, #3 + 401360: 0609 lsls r1, r1, #24 + 401362: 0e09 lsrs r1, r1, #24 + 401364: 1c68 adds r0, r5, #1 + 401366: 0600 lsls r0, r0, #24 + 401368: 0e00 lsrs r0, r0, #24 + 40136a: f000 fea6 bl 4020ba + 40136e: 1d27 adds r7, r4, #4 + 401370: 2200 movs r2, #0 + 401372: 0639 lsls r1, r7, #24 + 401374: 0e09 lsrs r1, r1, #24 + 401376: 1f28 subs r0, r5, #4 + 401378: 0600 lsls r0, r0, #24 + 40137a: 0e00 lsrs r0, r0, #24 + 40137c: f000 fe9d bl 4020ba + 401380: 2200 movs r2, #0 + 401382: 0639 lsls r1, r7, #24 + 401384: 0e09 lsrs r1, r1, #24 + 401386: 1ee8 subs r0, r5, #3 + 401388: 0600 lsls r0, r0, #24 + 40138a: 0e00 lsrs r0, r0, #24 + 40138c: f000 fe95 bl 4020ba + 401390: 2200 movs r2, #0 + 401392: 0639 lsls r1, r7, #24 + 401394: 0e09 lsrs r1, r1, #24 + 401396: 1ea8 subs r0, r5, #2 + 401398: 0600 lsls r0, r0, #24 + 40139a: 0e00 lsrs r0, r0, #24 + 40139c: f000 fe8d bl 4020ba + 4013a0: 2200 movs r2, #0 + 4013a2: 0639 lsls r1, r7, #24 + 4013a4: 0e09 lsrs r1, r1, #24 + 4013a6: 1e68 subs r0, r5, #1 + 4013a8: 0600 lsls r0, r0, #24 + 4013aa: 0e00 lsrs r0, r0, #24 + 4013ac: f000 fe85 bl 4020ba + 4013b0: 2200 movs r2, #0 + 4013b2: 0639 lsls r1, r7, #24 + 4013b4: 0e09 lsrs r1, r1, #24 + 4013b6: 0628 lsls r0, r5, #24 + 4013b8: 0e00 lsrs r0, r0, #24 + 4013ba: f000 fe7e bl 4020ba + 4013be: 1d67 adds r7, r4, #5 + 4013c0: 2200 movs r2, #0 + 4013c2: 0639 lsls r1, r7, #24 + 4013c4: 0e09 lsrs r1, r1, #24 + 4013c6: 1ee8 subs r0, r5, #3 + 4013c8: 0600 lsls r0, r0, #24 + 4013ca: 0e00 lsrs r0, r0, #24 + 4013cc: f000 fe75 bl 4020ba + 4013d0: 2200 movs r2, #0 + 4013d2: 0639 lsls r1, r7, #24 + 4013d4: 0e09 lsrs r1, r1, #24 + 4013d6: 1ea8 subs r0, r5, #2 + 4013d8: 0600 lsls r0, r0, #24 + 4013da: 0e00 lsrs r0, r0, #24 + 4013dc: f000 fe6d bl 4020ba + 4013e0: 2200 movs r2, #0 + 4013e2: 0639 lsls r1, r7, #24 + 4013e4: 0e09 lsrs r1, r1, #24 + 4013e6: 1e68 subs r0, r5, #1 + 4013e8: 0600 lsls r0, r0, #24 + 4013ea: 0e00 lsrs r0, r0, #24 + 4013ec: f000 fe65 bl 4020ba + 4013f0: 1da7 adds r7, r4, #6 + 4013f2: 2200 movs r2, #0 + 4013f4: 0639 lsls r1, r7, #24 + 4013f6: 0e09 lsrs r1, r1, #24 + 4013f8: 1ea8 subs r0, r5, #2 + 4013fa: 0600 lsls r0, r0, #24 + 4013fc: 0e00 lsrs r0, r0, #24 + 4013fe: f000 fe5c bl 4020ba + 401402: 0630 lsls r0, r6, #24 + 401404: 0e00 lsrs r0, r0, #24 + 401406: 2802 cmp r0, #2 + 401408: d003 beq.n 401412 + 40140a: 2804 cmp r0, #4 + 40140c: d004 beq.n 401418 + 40140e: 2806 cmp r0, #6 + 401410: d105 bne.n 40141e + +00401412 : + 401412: 003c lsls r4, r7, #0 + 401414: 1fad subs r5, r5, #6 + 401416: e004 b.n 401422 + +00401418 : + 401418: 1ce4 adds r4, r4, #3 + 40141a: 3d09 subs r5, #9 + 40141c: e001 b.n 401422 + +0040141e : + 40141e: 1ce4 adds r4, r4, #3 + 401420: 1d2d adds r5, r5, #4 + +00401422 : + 401422: 1c76 adds r6, r6, #1 + 401424: 0630 lsls r0, r6, #24 + 401426: 0e00 lsrs r0, r0, #24 + 401428: 2808 cmp r0, #8 + 40142a: d200 bcs.n 40142e + 40142c: e72c b.n 401288 + 40142e: b001 add sp, #4 + 401430: e720 b.n 401274 + ... + +00401434 : + 401434: b5f8 push {r3, r4, r5, r6, r7, lr} + 401436: 0007 lsls r7, r0, #0 + 401438: 4d98 ldr r5, [pc, #608] (40169c ) + 40143a: 0029 lsls r1, r5, #0 + 40143c: 2000 movs r0, #0 + 40143e: f000 fbb9 bl 401bb4 + 401442: 2400 movs r4, #0 + +00401444 : + 401444: 2201 movs r2, #1 + 401446: 210a movs r1, #10 + 401448: 0620 lsls r0, r4, #24 + 40144a: 0e00 lsrs r0, r0, #24 + 40144c: f000 fe35 bl 4020ba + 401450: 2201 movs r2, #1 + 401452: 210b movs r1, #11 + 401454: 0620 lsls r0, r4, #24 + 401456: 0e00 lsrs r0, r0, #24 + 401458: f000 fe2f bl 4020ba + 40145c: 1c64 adds r4, r4, #1 + 40145e: 0620 lsls r0, r4, #24 + 401460: 0e00 lsrs r0, r0, #24 + 401462: 2864 cmp r0, #100 + 401464: d3ee bcc.n 401444 + 401466: 4e8e ldr r6, [pc, #568] (4016a0 ) + 401468: 2301 movs r3, #1 + 40146a: 2207 movs r2, #7 + 40146c: 7d71 ldrb r1, [r6, #21] + 40146e: 310b adds r1, #11 + 401470: 0409 lsls r1, r1, #16 + 401472: 0c09 lsrs r1, r1, #16 + 401474: a08b add r0, pc, #556 (adr r0, 4016a4 ) + 401476: f000 fbd5 bl 401c24 + 40147a: 1f7f subs r7, r7, #5 + 40147c: d00a beq.n 401494 + 40147e: 1ebf subs r7, r7, #2 + 401480: d011 beq.n 4014a6 + 401482: 1ebf subs r7, r7, #2 + 401484: d05e beq.n 401544 + 401486: 1ebf subs r7, r7, #2 + 401488: d100 bne.n 40148c + 40148a: e0a2 b.n 4015d2 + 40148c: 1ebf subs r7, r7, #2 + 40148e: d100 bne.n 401492 + 401490: e0f3 b.n 40167a + 401492: e055 b.n 401540 + +00401494 : + 401494: 3514 adds r5, #20 + 401496: 0029 lsls r1, r5, #0 + 401498: 2002 movs r0, #2 + 40149a: f000 fb8b bl 401bb4 + 40149e: 2004 movs r0, #4 + 4014a0: f000 f904 bl 4016ac + 4014a4: e04c b.n 401540 + +004014a6 : + 4014a6: 0029 lsls r1, r5, #0 + 4014a8: 3128 adds r1, #40 + 4014aa: 2002 movs r0, #2 + 4014ac: f000 fb82 bl 401bb4 + 4014b0: 7cf0 ldrb r0, [r6, #19] + 4014b2: 2801 cmp r0, #1 + 4014b4: d10c bne.n 4014d0 + 4014b6: 8d31 ldrh r1, [r6, #40] + 4014b8: 0a08 lsrs r0, r1, #8 + 4014ba: 2864 cmp r0, #100 + 4014bc: d204 bcs.n 4014c8 + 4014be: 2301 movs r3, #1 + 4014c0: 2204 movs r2, #4 + 4014c2: 353c adds r5, #60 + 4014c4: 0028 lsls r0, r5, #0 + 4014c6: e00f b.n 4014e8 + +004014c8 : + 4014c8: 2301 movs r3, #1 + 4014ca: 2204 movs r2, #4 + 4014cc: a076 add r0, pc, #472 (adr r0, 4016a8 ) + 4014ce: e00b b.n 4014e8 + +004014d0 : + 4014d0: 8c71 ldrh r1, [r6, #34] + 4014d2: 0a08 lsrs r0, r1, #8 + 4014d4: 2864 cmp r0, #100 + 4014d6: d204 bcs.n 4014e2 + 4014d8: 2301 movs r3, #1 + 4014da: 2204 movs r2, #4 + 4014dc: 353c adds r5, #60 + 4014de: 0028 lsls r0, r5, #0 + 4014e0: e002 b.n 4014e8 + +004014e2 : + 4014e2: 2301 movs r3, #1 + 4014e4: 2204 movs r2, #4 + 4014e6: a070 add r0, pc, #448 (adr r0, 4016a8 ) + +004014e8 : + 4014e8: f000 fc68 bl 401dbc + 4014ec: 7cf0 ldrb r0, [r6, #19] + 4014ee: 2801 cmp r0, #1 + 4014f0: d112 bne.n 401518 + 4014f2: 2220 movs r2, #32 + 4014f4: 2139 movs r1, #57 + 4014f6: 204d movs r0, #77 + 4014f8: f000 fe74 bl 4021e4 + 4014fc: 2220 movs r2, #32 + 4014fe: 213f movs r1, #63 + 401500: 202f movs r0, #47 + 401502: f000 fe6f bl 4021e4 + 401506: 2220 movs r2, #32 + 401508: 2145 movs r1, #69 + 40150a: 2068 movs r0, #104 + 40150c: f000 fe6a bl 4021e4 + 401510: 2220 movs r2, #32 + 401512: 214b movs r1, #75 + 401514: 2020 movs r0, #32 + 401516: e011 b.n 40153c + +00401518 : + 401518: 2220 movs r2, #32 + 40151a: 2139 movs r1, #57 + 40151c: 204b movs r0, #75 + 40151e: f000 fe61 bl 4021e4 + 401522: 2220 movs r2, #32 + 401524: 213f movs r1, #63 + 401526: 206d movs r0, #109 + 401528: f000 fe5c bl 4021e4 + 40152c: 2220 movs r2, #32 + 40152e: 2145 movs r1, #69 + 401530: 202f movs r0, #47 + 401532: f000 fe57 bl 4021e4 + 401536: 2220 movs r2, #32 + 401538: 214b movs r1, #75 + 40153a: 2068 movs r0, #104 + +0040153c : + 40153c: f000 fe52 bl 4021e4 + +00401540 : + 401540: b001 add sp, #4 + 401542: e697 b.n 401274 + +00401544 : + 401544: 0029 lsls r1, r5, #0 + 401546: 3144 adds r1, #68 + 401548: 2002 movs r0, #2 + 40154a: f000 fb33 bl 401bb4 + 40154e: 7cf0 ldrb r0, [r6, #19] + 401550: 2801 cmp r0, #1 + 401552: d10c bne.n 40156e + 401554: 8cf1 ldrh r1, [r6, #38] + 401556: 0a08 lsrs r0, r1, #8 + 401558: 2864 cmp r0, #100 + 40155a: d204 bcs.n 401566 + 40155c: 2301 movs r3, #1 + 40155e: 2204 movs r2, #4 + 401560: 353c adds r5, #60 + 401562: 0028 lsls r0, r5, #0 + 401564: e00f b.n 401586 + +00401566 : + 401566: 2301 movs r3, #1 + 401568: 2204 movs r2, #4 + 40156a: a04f add r0, pc, #316 (adr r0, 4016a8 ) + 40156c: e00b b.n 401586 + +0040156e : + 40156e: 8c31 ldrh r1, [r6, #32] + 401570: 0a08 lsrs r0, r1, #8 + 401572: 2864 cmp r0, #100 + 401574: d204 bcs.n 401580 + 401576: 2301 movs r3, #1 + 401578: 2204 movs r2, #4 + 40157a: 353c adds r5, #60 + 40157c: 0028 lsls r0, r5, #0 + 40157e: e002 b.n 401586 + +00401580 : + 401580: 2301 movs r3, #1 + 401582: 2204 movs r2, #4 + 401584: a048 add r0, pc, #288 (adr r0, 4016a8 ) + +00401586 : + 401586: f000 fc19 bl 401dbc + 40158a: 7cf0 ldrb r0, [r6, #19] + 40158c: 2801 cmp r0, #1 + 40158e: d10d bne.n 4015ac + 401590: 2220 movs r2, #32 + 401592: 2138 movs r1, #56 + 401594: 2050 movs r0, #80 + 401596: f000 fe25 bl 4021e4 + 40159a: 2220 movs r2, #32 + 40159c: 213e movs r1, #62 + 40159e: 2053 movs r0, #83 + 4015a0: f000 fe20 bl 4021e4 + 4015a4: 2220 movs r2, #32 + 4015a6: 2144 movs r1, #68 + 4015a8: 2049 movs r0, #73 + 4015aa: e7c7 b.n 40153c + +004015ac : + 4015ac: 2220 movs r2, #32 + 4015ae: 2138 movs r1, #56 + 4015b0: 206d movs r0, #109 + 4015b2: f000 fe17 bl 4021e4 + 4015b6: 2220 movs r2, #32 + 4015b8: 213e movs r1, #62 + 4015ba: 2062 movs r0, #98 + 4015bc: f000 fe12 bl 4021e4 + 4015c0: 2220 movs r2, #32 + 4015c2: 2144 movs r1, #68 + 4015c4: 2061 movs r0, #97 + 4015c6: f000 fe0d bl 4021e4 + 4015ca: 2220 movs r2, #32 + 4015cc: 214a movs r1, #74 + 4015ce: 2072 movs r0, #114 + 4015d0: e7b4 b.n 40153c + +004015d2 : + 4015d2: 0029 lsls r1, r5, #0 + 4015d4: 3154 adds r1, #84 + 4015d6: 2002 movs r0, #2 + 4015d8: f000 faec bl 401bb4 + 4015dc: 7cf0 ldrb r0, [r6, #19] + 4015de: 2801 cmp r0, #1 + 4015e0: d10c bne.n 4015fc + 4015e2: 8cb1 ldrh r1, [r6, #36] + 4015e4: 0a08 lsrs r0, r1, #8 + 4015e6: 2864 cmp r0, #100 + 4015e8: d204 bcs.n 4015f4 + 4015ea: 2301 movs r3, #1 + 4015ec: 2204 movs r2, #4 + 4015ee: 353c adds r5, #60 + 4015f0: 0028 lsls r0, r5, #0 + 4015f2: e00f b.n 401614 + +004015f4 : + 4015f4: 2301 movs r3, #1 + 4015f6: 2204 movs r2, #4 + 4015f8: a02b add r0, pc, #172 (adr r0, 4016a8 ) + 4015fa: e00b b.n 401614 + +004015fc : + 4015fc: 8bf1 ldrh r1, [r6, #30] + 4015fe: 0a08 lsrs r0, r1, #8 + 401600: 2864 cmp r0, #100 + 401602: d204 bcs.n 40160e + 401604: 2301 movs r3, #1 + 401606: 2204 movs r2, #4 + 401608: 353c adds r5, #60 + 40160a: 0028 lsls r0, r5, #0 + 40160c: e002 b.n 401614 + +0040160e : + 40160e: 2301 movs r3, #1 + 401610: 2204 movs r2, #4 + 401612: a025 add r0, pc, #148 (adr r0, 4016a8 ) + +00401614 : + 401614: f000 fbd2 bl 401dbc + 401618: 7df0 ldrb r0, [r6, #23] + 40161a: 2800 cmp r0, #0 + 40161c: d004 beq.n 401628 + 40161e: 2220 movs r2, #32 + 401620: 210f movs r1, #15 + 401622: 202d movs r0, #45 + 401624: f000 fdde bl 4021e4 + +00401628 : + 401628: 2420 movs r4, #32 + +0040162a : + 40162a: 2201 movs r2, #1 + 40162c: 0621 lsls r1, r4, #24 + 40162e: 0e09 lsrs r1, r1, #24 + 401630: 203a movs r0, #58 + 401632: f000 fd42 bl 4020ba + 401636: 0620 lsls r0, r4, #24 + 401638: 0e00 lsrs r0, r0, #24 + 40163a: 2821 cmp r0, #33 + 40163c: d101 bne.n 401642 + 40163e: 2200 movs r2, #0 + 401640: e000 b.n 401644 + +00401642 : + 401642: 2201 movs r2, #1 + +00401644 : + 401644: 0621 lsls r1, r4, #24 + 401646: 0e09 lsrs r1, r1, #24 + 401648: 203b movs r0, #59 + 40164a: f000 fd36 bl 4020ba + 40164e: 2201 movs r2, #1 + 401650: 0621 lsls r1, r4, #24 + 401652: 0e09 lsrs r1, r1, #24 + 401654: 203c movs r0, #60 + 401656: f000 fd30 bl 4020ba + 40165a: 1c64 adds r4, r4, #1 + 40165c: 0620 lsls r0, r4, #24 + 40165e: 0e00 lsrs r0, r0, #24 + 401660: 2823 cmp r0, #35 + 401662: d3e2 bcc.n 40162a + 401664: 7cf0 ldrb r0, [r6, #19] + 401666: 2801 cmp r0, #1 + 401668: d103 bne.n 401672 + 40166a: 2220 movs r2, #32 + 40166c: 2140 movs r1, #64 + 40166e: 2046 movs r0, #70 + 401670: e764 b.n 40153c + +00401672 : + 401672: 2220 movs r2, #32 + 401674: 2140 movs r1, #64 + 401676: 2043 movs r0, #67 + 401678: e760 b.n 40153c + +0040167a : + 40167a: 0029 lsls r1, r5, #0 + 40167c: 3168 adds r1, #104 + 40167e: 2002 movs r0, #2 + 401680: f000 fa98 bl 401bb4 + 401684: 2301 movs r3, #1 + 401686: 2204 movs r2, #4 + 401688: 8d71 ldrh r1, [r6, #42] + 40168a: 357c adds r5, #124 + 40168c: 0028 lsls r0, r5, #0 + 40168e: f000 fb95 bl 401dbc + 401692: 2220 movs r2, #32 + 401694: 213f movs r1, #63 + 401696: 2056 movs r0, #86 + 401698: e750 b.n 40153c + 40169a: 46c0 nop (mov r8, r8) + +0040169c : + 40169c: 00403aa4 .word 0x00403aa4 + 4016a0: 00405244 .word 0x00405244 + 4016a4: 003a4843 .word 0x003a4843 + 4016a8: 00202020 .word 0x00202020 + +004016ac : + 4016ac: b5f8 push {r3, r4, r5, r6, r7, lr} + 4016ae: 0004 lsls r4, r0, #0 + 4016b0: f000 fe32 bl 402318 + 4016b4: 4d42 ldr r5, [pc, #264] (4017c0 ) + 4016b6: 8da9 ldrh r1, [r5, #44] + 4016b8: 2917 cmp r1, #23 + 4016ba: d303 bcc.n 4016c4 + 4016bc: 20a9 movs r0, #169 + 4016be: 0040 lsls r0, r0, #1 + 4016c0: 4281 cmp r1, r0 + 4016c2: d30a bcc.n 4016da + +004016c4 : + 4016c4: 483f ldr r0, [pc, #252] (4017c4 ) + 4016c6: 2964 cmp r1, #100 + 4016c8: d302 bcc.n 4016d0 + 4016ca: 2301 movs r3, #1 + 4016cc: 0022 lsls r2, r4, #0 + 4016ce: e002 b.n 4016d6 + +004016d0 : + 4016d0: 2301 movs r3, #1 + 4016d2: 0022 lsls r2, r4, #0 + 4016d4: 3008 adds r0, #8 + +004016d6 : + 4016d6: f000 faa5 bl 401c24 + +004016da : + 4016da: 8da9 ldrh r1, [r5, #44] + 4016dc: 2944 cmp r1, #68 + 4016de: d206 bcs.n 4016ee + 4016e0: 2917 cmp r1, #23 + 4016e2: d34b bcc.n 40177c + 4016e4: 2301 movs r3, #1 + 4016e6: 0022 lsls r2, r4, #0 + 4016e8: 4837 ldr r0, [pc, #220] (4017c8 ) + 4016ea: f000 fa9b bl 401c24 + +004016ee : + 4016ee: 8da9 ldrh r1, [r5, #44] + 4016f0: 2971 cmp r1, #113 + 4016f2: d20d bcs.n 401710 + 4016f4: 2944 cmp r1, #68 + 4016f6: d341 bcc.n 40177c + 4016f8: 4832 ldr r0, [pc, #200] (4017c4 ) + 4016fa: 2964 cmp r1, #100 + 4016fc: d303 bcc.n 401706 + 4016fe: 2301 movs r3, #1 + 401700: 0022 lsls r2, r4, #0 + 401702: 3020 adds r0, #32 + 401704: e002 b.n 40170c + +00401706 : + 401706: 2301 movs r3, #1 + 401708: 0022 lsls r2, r4, #0 + 40170a: 3028 adds r0, #40 + +0040170c : + 40170c: f000 fa8a bl 401c24 + +00401710 : + 401710: 8da9 ldrh r1, [r5, #44] + 401712: 299e cmp r1, #158 + 401714: d206 bcs.n 401724 + 401716: 2971 cmp r1, #113 + 401718: d330 bcc.n 40177c + 40171a: 2301 movs r3, #1 + 40171c: 0022 lsls r2, r4, #0 + 40171e: 482b ldr r0, [pc, #172] (4017cc ) + 401720: f000 fa80 bl 401c24 + +00401724 : + 401724: 8da9 ldrh r1, [r5, #44] + 401726: 29cb cmp r1, #203 + 401728: d206 bcs.n 401738 + 40172a: 299e cmp r1, #158 + 40172c: d326 bcc.n 40177c + 40172e: 2301 movs r3, #1 + 401730: 0022 lsls r2, r4, #0 + 401732: 4827 ldr r0, [pc, #156] (4017d0 ) + 401734: f000 fa76 bl 401c24 + +00401738 : + 401738: 8da9 ldrh r1, [r5, #44] + 40173a: 29f8 cmp r1, #248 + 40173c: d206 bcs.n 40174c + 40173e: 29cb cmp r1, #203 + 401740: d31c bcc.n 40177c + 401742: 2301 movs r3, #1 + 401744: 0022 lsls r2, r4, #0 + 401746: 4823 ldr r0, [pc, #140] (4017d4 ) + 401748: f000 fa6c bl 401c24 + +0040174c : + 40174c: 8da9 ldrh r1, [r5, #44] + 40174e: 26ff movs r6, #255 + 401750: 3626 adds r6, #38 + 401752: 42b1 cmp r1, r6 + 401754: d206 bcs.n 401764 + 401756: 29f8 cmp r1, #248 + 401758: d310 bcc.n 40177c + 40175a: 2301 movs r3, #1 + 40175c: 0022 lsls r2, r4, #0 + 40175e: 481e ldr r0, [pc, #120] (4017d8 ) + 401760: f000 fa60 bl 401c24 + +00401764 : + 401764: 8da9 ldrh r1, [r5, #44] + 401766: 20a9 movs r0, #169 + 401768: 0040 lsls r0, r0, #1 + 40176a: 4281 cmp r1, r0 + 40176c: d206 bcs.n 40177c + 40176e: 42b1 cmp r1, r6 + 401770: d304 bcc.n 40177c + 401772: 2301 movs r3, #1 + 401774: 0022 lsls r2, r4, #0 + 401776: 4819 ldr r0, [pc, #100] (4017dc ) + 401778: f000 fa54 bl 401c24 + +0040177c : + 40177c: 00e7 lsls r7, r4, #3 + 40177e: 063f lsls r7, r7, #24 + 401780: 0e3f lsrs r7, r7, #24 + 401782: 003c lsls r4, r7, #0 + 401784: 1c7e adds r6, r7, #1 + 401786: 1cff adds r7, r7, #3 + 401788: e00c b.n 4017a4 + +0040178a : + 40178a: 2201 movs r2, #1 + +0040178c : + 40178c: 0021 lsls r1, r4, #0 + 40178e: 203e movs r0, #62 + 401790: f000 fc93 bl 4020ba + 401794: 2201 movs r2, #1 + 401796: 0021 lsls r1, r4, #0 + 401798: 203f movs r0, #63 + 40179a: f000 fc8e bl 4020ba + 40179e: 1c64 adds r4, r4, #1 + 4017a0: 0624 lsls r4, r4, #24 + 4017a2: 0e24 lsrs r4, r4, #24 + +004017a4 : + 4017a4: 42bc cmp r4, r7 + 4017a6: da08 bge.n 4017ba + 4017a8: 2201 movs r2, #1 + 4017aa: 0021 lsls r1, r4, #0 + 4017ac: 203d movs r0, #61 + 4017ae: f000 fc84 bl 4020ba + 4017b2: 42b4 cmp r4, r6 + 4017b4: d1e9 bne.n 40178a + 4017b6: 2200 movs r2, #0 + 4017b8: e7e8 b.n 40178c + +004017ba : + 4017ba: b001 add sp, #4 + 4017bc: e55a b.n 401274 + 4017be: 46c0 nop (mov r8, r8) + +004017c0 : + 4017c0: 00405244 .word 0x00405244 + 4017c4: 00403ba8 .word 0x00403ba8 + 4017c8: 00403bbc .word 0x00403bbc + 4017cc: 00403bdc .word 0x00403bdc + 4017d0: 00403be4 .word 0x00403be4 + 4017d4: 00403bec .word 0x00403bec + 4017d8: 00403bf4 .word 0x00403bf4 + 4017dc: 00403bfc .word 0x00403bfc + +004017e0 : + 4017e0: b500 push {lr} + 4017e2: b083 sub sp, #12 + 4017e4: 4668 mov r0, sp + 4017e6: 2102 movs r1, #2 + 4017e8: 7001 strb r1, [r0, #0] + 4017ea: 2101 movs r1, #1 + 4017ec: 7101 strb r1, [r0, #4] + 4017ee: f402 fa01 bl 3bf4 + 4017f2: 200a movs r0, #10 + 4017f4: f002 fac6 bl 403d84 + 4017f8: 4903 ldr r1, [pc, #12] (401808 ) + 4017fa: 2000 movs r0, #0 + 4017fc: f405 fa5c bl 6cb8 + 401800: 9803 ldr r0, [sp, #12] + 401802: b004 add sp, #16 + 401804: 4700 bx r0 + 401806: 46c0 nop (mov r8, r8) + +00401808 : + 401808: 0040525c .word 0x0040525c + +0040180c : + 40180c: b538 push {r3, r4, r5, lr} + 40180e: 4d10 ldr r5, [pc, #64] (401850 ) + 401810: 2480 movs r4, #128 + 401812: 0264 lsls r4, r4, #9 + 401814: 0022 lsls r2, r4, #0 + 401816: 7e29 ldrb r1, [r5, #24] + 401818: 2000 movs r0, #0 + 40181a: f405 faf3 bl 6e04 + 40181e: 2301 movs r3, #1 + 401820: 0022 lsls r2, r4, #0 + 401822: 7e29 ldrb r1, [r5, #24] + 401824: 2000 movs r0, #0 + 401826: f405 fbf9 bl 701c + 40182a: 2800 cmp r0, #0 + 40182c: d109 bne.n 401842 + 40182e: 2001 movs r0, #1 + 401830: b501 push {r0, lr} + 401832: 0023 lsls r3, r4, #0 + 401834: 002a lsls r2, r5, #0 + 401836: 3213 adds r2, #19 + 401838: 7e29 ldrb r1, [r5, #24] + 40183a: 2000 movs r0, #0 + 40183c: f405 fb42 bl 6ec4 + 401840: b002 add sp, #8 + +00401842 : + 401842: 46c0 nop (mov r8, r8) + +00401844 : + 401844: b001 add sp, #4 + 401846: 9802 ldr r0, [sp, #8] + 401848: bc30 pop {r4, r5} + 40184a: b001 add sp, #4 + 40184c: 4700 bx r0 + ... + +00401850 : + 401850: 00405244 .word 0x00405244 + +00401854 : + 401854: b580 push {r7, lr} + 401856: 4806 ldr r0, [pc, #24] (401870 ) + 401858: 2101 movs r1, #1 + 40185a: b502 push {r1, lr} + 40185c: 040b lsls r3, r1, #16 + 40185e: 0002 lsls r2, r0, #0 + 401860: 3213 adds r2, #19 + 401862: 7e01 ldrb r1, [r0, #24] + 401864: 2000 movs r0, #0 + 401866: f405 fa7f bl 6d68 + 40186a: b002 add sp, #8 + 40186c: f7ff faee bl 400e4c + +00401870 : + 401870: 00405244 .word 0x00405244 + +00401874 : + 401874: b538 push {r3, r4, r5, lr} + 401876: 2801 cmp r0, #1 + 401878: d106 bne.n 401888 + 40187a: 466c mov r4, sp + 40187c: 20fd movs r0, #253 + 40187e: 7020 strb r0, [r4, #0] + 401880: 2001 movs r0, #1 + 401882: 7060 strb r0, [r4, #1] + 401884: 2059 movs r0, #89 + 401886: e03f b.n 401908 + +00401888 : + 401888: 2802 cmp r0, #2 + 40188a: d118 bne.n 4018be + 40188c: 466c mov r4, sp + 40188e: 20fd movs r0, #253 + 401890: 7020 strb r0, [r4, #0] + 401892: 2002 movs r0, #2 + 401894: 7060 strb r0, [r4, #1] + 401896: 20ff movs r0, #255 + 401898: 70e0 strb r0, [r4, #3] + 40189a: 2910 cmp r1, #16 + 40189c: d302 bcc.n 4018a4 + +0040189e : + 40189e: 204e movs r0, #78 + 4018a0: 70a0 strb r0, [r4, #2] + 4018a2: e034 b.n 40190e + +004018a4 : + 4018a4: 4d20 ldr r5, [pc, #128] (401928 ) + 4018a6: 7569 strb r1, [r5, #21] + 4018a8: 0008 lsls r0, r1, #0 + 4018aa: f002 f8c1 bl 403a30 + 4018ae: 2059 movs r0, #89 + 4018b0: 70a0 strb r0, [r4, #2] + 4018b2: f000 f950 bl 401b56 + 4018b6: 7d28 ldrb r0, [r5, #20] + 4018b8: f7ff fdbc bl 401434 + 4018bc: e027 b.n 40190e + +004018be : + 4018be: 2803 cmp r0, #3 + 4018c0: d110 bne.n 4018e4 + 4018c2: 466c mov r4, sp + 4018c4: 20fd movs r0, #253 + 4018c6: 7020 strb r0, [r4, #0] + 4018c8: 2003 movs r0, #3 + 4018ca: 7060 strb r0, [r4, #1] + 4018cc: 20ff movs r0, #255 + 4018ce: 70e0 strb r0, [r4, #3] + 4018d0: 2913 cmp r1, #19 + 4018d2: d2e4 bcs.n 40189e + 4018d4: 4d14 ldr r5, [pc, #80] (401928 ) + 4018d6: 76a9 strb r1, [r5, #26] + 4018d8: 0008 lsls r0, r1, #0 + 4018da: f002 f8d8 bl 403a8e + 4018de: 2059 movs r0, #89 + 4018e0: 70a0 strb r0, [r4, #2] + 4018e2: e014 b.n 40190e + +004018e4 : + 4018e4: 2804 cmp r0, #4 + 4018e6: d106 bne.n 4018f6 + 4018e8: 466c mov r4, sp + 4018ea: 20fd movs r0, #253 + 4018ec: 7020 strb r0, [r4, #0] + 4018ee: 2004 movs r0, #4 + 4018f0: 7060 strb r0, [r4, #1] + 4018f2: 480e ldr r0, [pc, #56] (40192c ) + 4018f4: e007 b.n 401906 + +004018f6 : + 4018f6: 2805 cmp r0, #5 + 4018f8: d10f bne.n 40191a + 4018fa: 466c mov r4, sp + 4018fc: 20fd movs r0, #253 + 4018fe: 7020 strb r0, [r4, #0] + 401900: 2005 movs r0, #5 + 401902: 7060 strb r0, [r4, #1] + 401904: 480a ldr r0, [pc, #40] (401930 ) + +00401906 : + 401906: 7800 ldrb r0, [r0, #0] + +00401908 : + 401908: 70a0 strb r0, [r4, #2] + 40190a: 20ff movs r0, #255 + 40190c: 70e0 strb r0, [r4, #3] + +0040190e : + 40190e: 2204 movs r2, #4 + 401910: 4669 mov r1, sp + 401912: 2000 movs r0, #0 + 401914: f401 fbb0 bl 3078 + +00401918 : + 401918: e794 b.n 401844 + +0040191a : + 40191a: 2807 cmp r0, #7 + 40191c: d1fc bne.n 401918 + 40191e: 4805 ldr r0, [pc, #20] (401934 ) + 401920: 2101 movs r1, #1 + 401922: 7001 strb r1, [r0, #0] + 401924: e7f8 b.n 401918 + 401926: 46c0 nop (mov r8, r8) + +00401928 : + 401928: 00405244 .word 0x00405244 + 40192c: 00405259 .word 0x00405259 + 401930: 0040525e .word 0x0040525e + 401934: 0040525d .word 0x0040525d + +00401938 : + 401938: b538 push {r3, r4, r5, lr} + 40193a: 0004 lsls r4, r0, #0 + 40193c: 2500 movs r5, #0 + 40193e: e002 b.n 401946 + +00401940 : + 401940: 1c6d adds r5, r5, #1 + 401942: 062d lsls r5, r5, #24 + 401944: 0e2d lsrs r5, r5, #24 + +00401946 : + 401946: 1961 adds r1, r4, r5 + 401948: 2000 movs r0, #0 + 40194a: f401 fcd7 bl 32fc + 40194e: 2800 cmp r0, #0 + 401950: d001 beq.n 401956 + 401952: 2d0d cmp r5, #13 + 401954: d3f4 bcc.n 401940 + +00401956 : + 401956: 0028 lsls r0, r5, #0 + 401958: b001 add sp, #4 + 40195a: 9902 ldr r1, [sp, #8] + 40195c: bc30 pop {r4, r5} + 40195e: b001 add sp, #4 + 401960: 4708 bx r1 + ... + +00401964 : + 401964: b538 push {r3, r4, r5, lr} + 401966: 2100 movs r1, #0 + 401968: 2009 movs r0, #9 + 40196a: f406 feff bl 876c + 40196e: 2100 movs r1, #0 + 401970: 2014 movs r0, #20 + 401972: f406 fefb bl 876c + 401976: 2100 movs r1, #0 + 401978: 2008 movs r0, #8 + 40197a: f406 fef7 bl 876c + 40197e: 2100 movs r1, #0 + 401980: 2015 movs r0, #21 + 401982: f406 fef3 bl 876c + 401986: 2100 movs r1, #0 + 401988: 202d movs r0, #45 + 40198a: f406 feef bl 876c + 40198e: 2100 movs r1, #0 + 401990: 2013 movs r0, #19 + 401992: f406 feeb bl 876c + 401996: 2100 movs r1, #0 + 401998: 2009 movs r0, #9 + 40199a: f406 fd71 bl 8480 + 40199e: 2100 movs r1, #0 + 4019a0: 2014 movs r0, #20 + 4019a2: f406 fd6d bl 8480 + 4019a6: 2100 movs r1, #0 + 4019a8: 2008 movs r0, #8 + 4019aa: f406 fd69 bl 8480 + 4019ae: 2101 movs r1, #1 + 4019b0: 2015 movs r0, #21 + 4019b2: f406 fd65 bl 8480 + 4019b6: 2101 movs r1, #1 + 4019b8: 202d movs r0, #45 + 4019ba: f406 fd61 bl 8480 + 4019be: 2101 movs r1, #1 + 4019c0: 2013 movs r0, #19 + 4019c2: f406 fd5d bl 8480 + 4019c6: 2101 movs r1, #1 + 4019c8: 2014 movs r0, #20 + 4019ca: f406 fdd3 bl 8574 + 4019ce: 2101 movs r1, #1 + 4019d0: 2015 movs r0, #21 + 4019d2: f406 fdcf bl 8574 + 4019d6: 2101 movs r1, #1 + 4019d8: 2008 movs r0, #8 + 4019da: f406 fdcb bl 8574 + 4019de: 2101 movs r1, #1 + 4019e0: 2009 movs r0, #9 + 4019e2: f406 fdc7 bl 8574 + 4019e6: 2101 movs r1, #1 + 4019e8: 200a movs r0, #10 + 4019ea: f406 fdc3 bl 8574 + 4019ee: 2101 movs r1, #1 + 4019f0: 202d movs r0, #45 + 4019f2: f406 fdbf bl 8574 + 4019f6: 2101 movs r1, #1 + 4019f8: 2013 movs r0, #19 + 4019fa: f406 fdbb bl 8574 + 4019fe: 2101 movs r1, #1 + 401a00: 2014 movs r0, #20 + 401a02: f406 fcd1 bl 83a8 + 401a06: 2101 movs r1, #1 + 401a08: 2015 movs r0, #21 + 401a0a: f406 fccd bl 83a8 + 401a0e: 2101 movs r1, #1 + 401a10: 2008 movs r0, #8 + 401a12: f406 fcc9 bl 83a8 + 401a16: 2101 movs r1, #1 + 401a18: 2009 movs r0, #9 + 401a1a: f406 fcc5 bl 83a8 + 401a1e: 2101 movs r1, #1 + 401a20: 200a movs r0, #10 + 401a22: f406 fcc1 bl 83a8 + 401a26: 2101 movs r1, #1 + 401a28: 202d movs r0, #45 + 401a2a: f406 fcbd bl 83a8 + 401a2e: 2101 movs r1, #1 + 401a30: 2013 movs r0, #19 + 401a32: f406 fcb9 bl 83a8 + 401a36: 22f0 movs r2, #240 + 401a38: 2100 movs r1, #0 + 401a3a: 2000 movs r0, #0 + 401a3c: f406 fe52 bl 86e4 + 401a40: 220f movs r2, #15 + 401a42: 2100 movs r1, #0 + 401a44: 2001 movs r0, #1 + 401a46: f406 fe4d bl 86e4 + 401a4a: 23f0 movs r3, #240 + 401a4c: 22f0 movs r2, #240 + 401a4e: 2103 movs r1, #3 + 401a50: 2000 movs r0, #0 + 401a52: f406 fc41 bl 82d8 + 401a56: 230f movs r3, #15 + 401a58: 220f movs r2, #15 + 401a5a: 2103 movs r1, #3 + 401a5c: 2001 movs r0, #1 + 401a5e: f406 fc3b bl 82d8 + 401a62: 23f0 movs r3, #240 + 401a64: 22f0 movs r2, #240 + 401a66: 2104 movs r1, #4 + 401a68: 2000 movs r0, #0 + 401a6a: f406 fc35 bl 82d8 + 401a6e: 230f movs r3, #15 + 401a70: 220f movs r2, #15 + 401a72: 2104 movs r1, #4 + 401a74: 2001 movs r0, #1 + 401a76: f406 fc2f bl 82d8 + 401a7a: 23f0 movs r3, #240 + 401a7c: 22f0 movs r2, #240 + 401a7e: 2106 movs r1, #6 + 401a80: 2000 movs r0, #0 + 401a82: f406 fc29 bl 82d8 + 401a86: 230f movs r3, #15 + 401a88: 220f movs r2, #15 + 401a8a: 2106 movs r1, #6 + 401a8c: 2001 movs r0, #1 + 401a8e: f406 fc23 bl 82d8 + 401a92: 25f0 movs r5, #240 + 401a94: 43ed mvns r5, r5 + 401a96: 23f0 movs r3, #240 + 401a98: 002a lsls r2, r5, #0 + 401a9a: 2102 movs r1, #2 + 401a9c: 2000 movs r0, #0 + 401a9e: f406 fc1b bl 82d8 + 401aa2: 240f movs r4, #15 + 401aa4: 43e4 mvns r4, r4 + 401aa6: 230f movs r3, #15 + 401aa8: 0022 lsls r2, r4, #0 + 401aaa: 2102 movs r1, #2 + 401aac: 2001 movs r0, #1 + 401aae: f406 fc13 bl 82d8 + 401ab2: 22f0 movs r2, #240 + 401ab4: 0029 lsls r1, r5, #0 + 401ab6: 2000 movs r0, #0 + 401ab8: f406 fc60 bl 837c + 401abc: 220f movs r2, #15 + 401abe: 0021 lsls r1, r4, #0 + 401ac0: 2001 movs r0, #1 + 401ac2: f406 fc5b bl 837c + 401ac6: 2100 movs r1, #0 + 401ac8: 202d movs r0, #45 + 401aca: f406 fcd9 bl 8480 + 401ace: 2100 movs r1, #0 + 401ad0: 2013 movs r0, #19 + 401ad2: f406 fcd5 bl 8480 + 401ad6: 200a movs r0, #10 + 401ad8: f002 f966 bl 403da8 + 401adc: 2101 movs r1, #1 + 401ade: 202d movs r0, #45 + 401ae0: f406 fcce bl 8480 + 401ae4: 2101 movs r1, #1 + 401ae6: 2013 movs r0, #19 + 401ae8: f406 fcca bl 8480 + 401aec: 2001 movs r0, #1 + 401aee: f002 f949 bl 403d84 + 401af2: 20e2 movs r0, #226 + 401af4: f000 fa5a bl 401fac + 401af8: 200a movs r0, #10 + 401afa: f002 f955 bl 403da8 + 401afe: 20a2 movs r0, #162 + 401b00: f000 fa54 bl 401fac + 401b04: 20a1 movs r0, #161 + 401b06: f000 fa51 bl 401fac + 401b0a: 20c0 movs r0, #192 + 401b0c: f000 fa4e bl 401fac + 401b10: 2024 movs r0, #36 + 401b12: f000 fa4b bl 401fac + 401b16: 2081 movs r0, #129 + 401b18: f000 fa48 bl 401fac + 401b1c: 2030 movs r0, #48 + 401b1e: f000 fa45 bl 401fac + 401b22: 202f movs r0, #47 + 401b24: f000 fa42 bl 401fac + 401b28: 200a movs r0, #10 + 401b2a: f002 f93d bl 403da8 + 401b2e: 20af movs r0, #175 + 401b30: f000 fa3c bl 401fac + 401b34: 200a movs r0, #10 + 401b36: f002 f937 bl 403da8 + 401b3a: 200f movs r0, #15 + 401b3c: f000 fab2 bl 4020a4 + 401b40: 2000 movs r0, #0 + 401b42: f000 fa9f bl 402084 + 401b46: 481a ldr r0, [pc, #104] (401bb0 ) + 401b48: 2100 movs r1, #0 + 401b4a: 7001 strb r1, [r0, #0] + 401b4c: b001 add sp, #4 + 401b4e: 9802 ldr r0, [sp, #8] + 401b50: bc30 pop {r4, r5} + 401b52: b001 add sp, #4 + 401b54: 4700 bx r0 + +00401b56 : + 401b56: b570 push {r4, r5, r6, lr} + 401b58: 2600 movs r6, #0 + 401b5a: 4c15 ldr r4, [pc, #84] (401bb0 ) + 401b5c: 7066 strb r6, [r4, #1] + 401b5e: 4d30 ldr r5, [pc, #192] (401c20 ) + 401b60: 78e8 ldrb r0, [r5, #3] + 401b62: 7821 ldrb r1, [r4, #0] + 401b64: 2901 cmp r1, #1 + 401b66: d103 bne.n 401b70 + 401b68: 7929 ldrb r1, [r5, #4] + 401b6a: 4001 ands r1, r0 + 401b6c: d000 beq.n 401b70 + 401b6e: 4388 bics r0, r1 + +00401b70 : + 401b70: 70a0 strb r0, [r4, #2] + 401b72: e002 b.n 401b7a + +00401b74 : + 401b74: 1c76 adds r6, r6, #1 + 401b76: 0636 lsls r6, r6, #24 + 401b78: 0e36 lsrs r6, r6, #24 + +00401b7a : + 401b7a: 78a0 ldrb r0, [r4, #2] + 401b7c: 4130 asrs r0, r6 + 401b7e: 07c0 lsls r0, r0, #31 + 401b80: d401 bmi.n 401b86 + 401b82: 2e08 cmp r6, #8 + 401b84: d3f6 bcc.n 401b74 + +00401b86 : + 401b86: 0030 lsls r0, r6, #0 + 401b88: 2808 cmp r0, #8 + 401b8a: d00c beq.n 401ba6 + 401b8c: f000 fbc4 bl 402318 + 401b90: 2801 cmp r0, #1 + 401b92: d1f2 bne.n 401b7a + 401b94: 2101 movs r1, #1 + 401b96: 40b1 lsls r1, r6 + 401b98: 43c8 mvns r0, r1 + 401b9a: 78e9 ldrb r1, [r5, #3] + 401b9c: 4001 ands r1, r0 + 401b9e: 70e9 strb r1, [r5, #3] + 401ba0: 78a1 ldrb r1, [r4, #2] + 401ba2: 4008 ands r0, r1 + 401ba4: e7e4 b.n 401b70 + +00401ba6 : + 401ba6: 9803 ldr r0, [sp, #12] + 401ba8: bc70 pop {r4, r5, r6} + 401baa: b001 add sp, #4 + 401bac: 4700 bx r0 + ... + +00401bb0 : + 401bb0: 004052a8 .word 0x004052a8 + +00401bb4 : + 401bb4: b5f8 push {r3, r4, r5, r6, r7, lr} + 401bb6: 000d lsls r5, r1, #0 + 401bb8: 0041 lsls r1, r0, #1 + 401bba: 1808 adds r0, r1, r0 + 401bbc: 4917 ldr r1, [pc, #92] (401c1c ) + 401bbe: 1808 adds r0, r1, r0 + 401bc0: 4e17 ldr r6, [pc, #92] (401c20 ) + 401bc2: 7901 ldrb r1, [r0, #4] + 401bc4: 7031 strb r1, [r6, #0] + 401bc6: 7940 ldrb r0, [r0, #5] + 401bc8: 7070 strb r0, [r6, #1] + 401bca: 0028 lsls r0, r5, #0 + 401bcc: 2400 movs r4, #0 + 401bce: 2100 movs r1, #0 + 401bd0: 2700 movs r7, #0 + 401bd2: e006 b.n 401be2 + +00401bd4 : + 401bd4: 1c49 adds r1, r1, #1 + 401bd6: 0609 lsls r1, r1, #24 + 401bd8: 1609 asrs r1, r1, #24 + 401bda: 1c7f adds r7, r7, #1 + 401bdc: 063f lsls r7, r7, #24 + 401bde: 163f asrs r7, r7, #24 + 401be0: 1c40 adds r0, r0, #1 + +00401be2 : + 401be2: 7802 ldrb r2, [r0, #0] + 401be4: 2a00 cmp r2, #0 + 401be6: d001 beq.n 401bec + 401be8: 2915 cmp r1, #21 + 401bea: dbf3 blt.n 401bd4 + +00401bec : + 401bec: 2f16 cmp r7, #22 + 401bee: db00 blt.n 401bf2 + 401bf0: 2715 movs r7, #21 + +00401bf2 : + 401bf2: 063f lsls r7, r7, #24 + 401bf4: 0e3f lsrs r7, r7, #24 + 401bf6: e009 b.n 401c0c + +00401bf8 : + 401bf8: 7872 ldrb r2, [r6, #1] + 401bfa: 7831 ldrb r1, [r6, #0] + 401bfc: 7828 ldrb r0, [r5, #0] + 401bfe: f000 faf1 bl 4021e4 + 401c02: 7830 ldrb r0, [r6, #0] + 401c04: 1d80 adds r0, r0, #6 + 401c06: 7030 strb r0, [r6, #0] + 401c08: 1c6d adds r5, r5, #1 + 401c0a: 1c64 adds r4, r4, #1 + +00401c0c : + 401c0c: 0620 lsls r0, r4, #24 + 401c0e: 0e00 lsrs r0, r0, #24 + 401c10: 42b8 cmp r0, r7 + 401c12: d201 bcs.n 401c18 + 401c14: 2815 cmp r0, #21 + 401c16: d3ef bcc.n 401bf8 + +00401c18 : + 401c18: b001 add sp, #4 + 401c1a: e349 b.n 4022b0 + +00401c1c : + 401c1c: 00405484 .word 0x00405484 + +00401c20 : + 401c20: 004052b0 .word 0x004052b0 + +00401c24 : + 401c24: b5f5 push {r0, r2, r4, r5, r6, r7, lr} + 401c26: b08d sub sp, #52 + 401c28: 000c lsls r4, r1, #0 + 401c2a: 4d61 ldr r5, [pc, #388] (401db0 ) + 401c2c: 4668 mov r0, sp + 401c2e: 2105 movs r1, #5 + 401c30: 7001 strb r1, [r0, #0] + 401c32: 2600 movs r6, #0 + 401c34: 2700 movs r7, #0 + 401c36: 485f ldr r0, [pc, #380] (401db4 ) + 401c38: 7006 strb r6, [r0, #0] + 401c3a: 2b01 cmp r3, #1 + 401c3c: d16c bne.n 401d18 + 401c3e: 2c64 cmp r4, #100 + 401c40: d204 bcs.n 401c4c + 401c42: 4668 mov r0, sp + 401c44: 2102 movs r1, #2 + 401c46: 7001 strb r1, [r0, #0] + 401c48: 250a movs r5, #10 + 401c4a: e00f b.n 401c6c + +00401c4c : + 401c4c: 20fa movs r0, #250 + 401c4e: 0080 lsls r0, r0, #2 + 401c50: 4284 cmp r4, r0 + 401c52: d204 bcs.n 401c5e + 401c54: 4668 mov r0, sp + 401c56: 2103 movs r1, #3 + 401c58: 7001 strb r1, [r0, #0] + 401c5a: 2564 movs r5, #100 + 401c5c: e006 b.n 401c6c + +00401c5e : + 401c5e: 1e69 subs r1, r5, #1 + 401c60: 428c cmp r4, r1 + 401c62: d203 bcs.n 401c6c + 401c64: 4669 mov r1, sp + 401c66: 2204 movs r2, #4 + 401c68: 700a strb r2, [r1, #0] + 401c6a: 0005 lsls r5, r0, #0 + +00401c6c : + 401c6c: 1c78 adds r0, r7, #1 + 401c6e: 0600 lsls r0, r0, #24 + 401c70: 0e00 lsrs r0, r0, #24 + 401c72: 9001 str r0, [sp, #4] + 401c74: 063f lsls r7, r7, #24 + 401c76: 0e3f lsrs r7, r7, #24 + 401c78: 0424 lsls r4, r4, #16 + 401c7a: 0c24 lsrs r4, r4, #16 + 401c7c: 0020 lsls r0, r4, #0 + 401c7e: 042d lsls r5, r5, #16 + 401c80: 142d asrs r5, r5, #16 + 401c82: 0029 lsls r1, r5, #0 + 401c84: f7fe fe3c bl 400900 + 401c88: 2800 cmp r0, #0 + 401c8a: d009 beq.n 401ca0 + 401c8c: a902 add r1, sp, #8 + 401c8e: 3030 adds r0, #48 + 401c90: 55c8 strb r0, [r1, r7] + 401c92: 9f01 ldr r7, [sp, #4] + 401c94: 0020 lsls r0, r4, #0 + 401c96: 0029 lsls r1, r5, #0 + 401c98: f7fe fe32 bl 400900 + 401c9c: 000c lsls r4, r1, #0 + 401c9e: e003 b.n 401ca8 + +00401ca0 : + 401ca0: a802 add r0, sp, #8 + 401ca2: 2130 movs r1, #48 + 401ca4: 55c1 strb r1, [r0, r7] + 401ca6: 9f01 ldr r7, [sp, #4] + +00401ca8 : + 401ca8: 0028 lsls r0, r5, #0 + 401caa: 210a movs r1, #10 + 401cac: f7fe fe28 bl 400900 + 401cb0: 0005 lsls r5, r0, #0 + 401cb2: 1c76 adds r6, r6, #1 + 401cb4: 0636 lsls r6, r6, #24 + 401cb6: 0e36 lsrs r6, r6, #24 + 401cb8: 4669 mov r1, sp + 401cba: 7809 ldrb r1, [r1, #0] + 401cbc: 428e cmp r6, r1 + 401cbe: d3d5 bcc.n 401c6c + 401cc0: 063f lsls r7, r7, #24 + 401cc2: 0e3f lsrs r7, r7, #24 + 401cc4: a802 add r0, sp, #8 + 401cc6: 2100 movs r1, #0 + 401cc8: 55c1 strb r1, [r0, r7] + 401cca: 2700 movs r7, #0 + 401ccc: a804 add r0, sp, #16 + 401cce: e006 b.n 401cde + +00401cd0 : + 401cd0: 55c1 strb r1, [r0, r7] + 401cd2: 1c7f adds r7, r7, #1 + 401cd4: 063f lsls r7, r7, #24 + 401cd6: 0e3f lsrs r7, r7, #24 + 401cd8: 990d ldr r1, [sp, #52] + 401cda: 1c49 adds r1, r1, #1 + 401cdc: 910d str r1, [sp, #52] + +00401cde : + 401cde: 990d ldr r1, [sp, #52] + 401ce0: 7809 ldrb r1, [r1, #0] + 401ce2: 2900 cmp r1, #0 + 401ce4: d001 beq.n 401cea + 401ce6: 2f15 cmp r7, #21 + 401ce8: d3f2 bcc.n 401cd0 + +00401cea : + 401cea: 2600 movs r6, #0 + 401cec: e006 b.n 401cfc + +00401cee : + 401cee: 55c1 strb r1, [r0, r7] + 401cf0: 1c76 adds r6, r6, #1 + 401cf2: 0636 lsls r6, r6, #24 + 401cf4: 0e36 lsrs r6, r6, #24 + 401cf6: 1c7f adds r7, r7, #1 + 401cf8: 063f lsls r7, r7, #24 + 401cfa: 0e3f lsrs r7, r7, #24 + +00401cfc : + 401cfc: aa02 add r2, sp, #8 + 401cfe: 5d91 ldrb r1, [r2, r6] + 401d00: 2900 cmp r1, #0 + 401d02: d001 beq.n 401d08 + 401d04: 2f15 cmp r7, #21 + 401d06: d3f2 bcc.n 401cee + +00401d08 : + 401d08: 2100 movs r1, #0 + 401d0a: 55c1 strb r1, [r0, r7] + 401d0c: a904 add r1, sp, #16 + 401d0e: a80e add r0, sp, #56 + 401d10: 7800 ldrb r0, [r0, #0] + 401d12: f7ff ff4f bl 401bb4 + 401d16: e048 b.n 401daa + +00401d18 : + 401d18: 4927 ldr r1, [pc, #156] (401db8 ) + 401d1a: 2b00 cmp r3, #0 + 401d1c: a80b add r0, sp, #44 + 401d1e: d13f bne.n 401da0 + +00401d20 : + 401d20: 1122 asrs r2, r4, #4 + 401d22: 0112 lsls r2, r2, #4 + 401d24: 1aa2 subs r2, r4, r2 + 401d26: 188a adds r2, r1, r2 + 401d28: 7d12 ldrb r2, [r2, #20] + 401d2a: 5582 strb r2, [r0, r6] + 401d2c: 0324 lsls r4, r4, #12 + 401d2e: 1c76 adds r6, r6, #1 + 401d30: 0636 lsls r6, r6, #24 + 401d32: 0e36 lsrs r6, r6, #24 + 401d34: 0c24 lsrs r4, r4, #16 + 401d36: 2c10 cmp r4, #16 + 401d38: d2f2 bcs.n 401d20 + 401d3a: 1909 adds r1, r1, r4 + 401d3c: 7d09 ldrb r1, [r1, #20] + 401d3e: 5581 strb r1, [r0, r6] + 401d40: a909 add r1, sp, #36 + 401d42: e006 b.n 401d52 + +00401d44 : + 401d44: 5d83 ldrb r3, [r0, r6] + 401d46: 55cb strb r3, [r1, r7] + 401d48: 1e76 subs r6, r6, #1 + 401d4a: 0636 lsls r6, r6, #24 + 401d4c: 0e36 lsrs r6, r6, #24 + 401d4e: 0617 lsls r7, r2, #24 + 401d50: 0e3f lsrs r7, r7, #24 + +00401d52 : + 401d52: 1c7a adds r2, r7, #1 + 401d54: 0033 lsls r3, r6, #0 + 401d56: d1f5 bne.n 401d44 + 401d58: 7800 ldrb r0, [r0, #0] + 401d5a: 55c8 strb r0, [r1, r7] + 401d5c: 0612 lsls r2, r2, #24 + 401d5e: 0e12 lsrs r2, r2, #24 + 401d60: 2000 movs r0, #0 + 401d62: 5488 strb r0, [r1, r2] + 401d64: 2700 movs r7, #0 + 401d66: a804 add r0, sp, #16 + 401d68: e006 b.n 401d78 + +00401d6a : + 401d6a: 55c2 strb r2, [r0, r7] + 401d6c: 1c7f adds r7, r7, #1 + 401d6e: 063f lsls r7, r7, #24 + 401d70: 0e3f lsrs r7, r7, #24 + 401d72: 9a0d ldr r2, [sp, #52] + 401d74: 1c52 adds r2, r2, #1 + 401d76: 920d str r2, [sp, #52] + +00401d78 : + 401d78: 9a0d ldr r2, [sp, #52] + 401d7a: 7812 ldrb r2, [r2, #0] + 401d7c: 2a00 cmp r2, #0 + 401d7e: d001 beq.n 401d84 + 401d80: 2f15 cmp r7, #21 + 401d82: d3f2 bcc.n 401d6a + +00401d84 : + 401d84: 2600 movs r6, #0 + +00401d86 : + 401d86: 5d8a ldrb r2, [r1, r6] + 401d88: 2a00 cmp r2, #0 + 401d8a: d0bd beq.n 401d08 + 401d8c: 2f15 cmp r7, #21 + 401d8e: d2bb bcs.n 401d08 + 401d90: 55c2 strb r2, [r0, r7] + 401d92: 1c76 adds r6, r6, #1 + 401d94: 0636 lsls r6, r6, #24 + 401d96: 0e36 lsrs r6, r6, #24 + 401d98: 1c7f adds r7, r7, #1 + 401d9a: 063f lsls r7, r7, #24 + 401d9c: 0e3f lsrs r7, r7, #24 + 401d9e: e7f2 b.n 401d86 + +00401da0 : + 401da0: 3128 adds r1, #40 + 401da2: a80e add r0, sp, #56 + 401da4: 7800 ldrb r0, [r0, #0] + 401da6: f7ff ff05 bl 401bb4 + +00401daa : + 401daa: b00f add sp, #60 + 401dac: e280 b.n 4022b0 + 401dae: 46c0 nop (mov r8, r8) + +00401db0 : + 401db0: 00002710 .word 0x00002710 + 401db4: 004052a9 .word 0x004052a9 + +00401db8 : + 401db8: 00403e04 .word 0x00403e04 + +00401dbc : + 401dbc: b5ff push {r0, r1, r2, r3, r4, r5, r6, r7, lr} + 401dbe: b091 sub sp, #68 + 401dc0: 4e76 ldr r6, [pc, #472] (401f9c ) + 401dc2: 4668 mov r0, sp + 401dc4: 2105 movs r1, #5 + 401dc6: 7201 strb r1, [r0, #8] + 401dc8: 2400 movs r4, #0 + 401dca: 2500 movs r5, #0 + 401dcc: a807 add r0, sp, #28 + 401dce: 2114 movs r1, #20 + 401dd0: f002 f8ae bl 403f30 + 401dd4: 4872 ldr r0, [pc, #456] (401fa0 ) + 401dd6: 7004 strb r4, [r0, #0] + 401dd8: a814 add r0, sp, #80 + 401dda: 7800 ldrb r0, [r0, #0] + 401ddc: 2801 cmp r0, #1 + 401dde: d000 beq.n 401de2 + 401de0: e07e b.n 401ee0 + 401de2: a812 add r0, sp, #72 + 401de4: 8800 ldrh r0, [r0, #0] + 401de6: 0a00 lsrs r0, r0, #8 + 401de8: 9000 str r0, [sp, #0] + 401dea: 9401 str r4, [sp, #4] + +00401dec : + 401dec: 9800 ldr r0, [sp, #0] + 401dee: 0600 lsls r0, r0, #24 + 401df0: 0e00 lsrs r0, r0, #24 + 401df2: 2864 cmp r0, #100 + 401df4: d204 bcs.n 401e00 + 401df6: 4668 mov r0, sp + 401df8: 2102 movs r1, #2 + 401dfa: 7201 strb r1, [r0, #8] + 401dfc: 260a movs r6, #10 + 401dfe: e00c b.n 401e1a + +00401e00 : + 401e00: 9800 ldr r0, [sp, #0] + 401e02: 0600 lsls r0, r0, #24 + 401e04: 0e00 lsrs r0, r0, #24 + 401e06: 28ff cmp r0, #255 + 401e08: 4668 mov r0, sp + 401e0a: d003 beq.n 401e14 + 401e0c: 2103 movs r1, #3 + 401e0e: 7201 strb r1, [r0, #8] + 401e10: 2664 movs r6, #100 + 401e12: e002 b.n 401e1a + +00401e14 : + 401e14: 7a00 ldrb r0, [r0, #8] + 401e16: 2800 cmp r0, #0 + 401e18: d028 beq.n 401e6c + +00401e1a : + 401e1a: 4668 mov r0, sp + 401e1c: 7a07 ldrb r7, [r0, #8] + +00401e1e : + 401e1e: 1c68 adds r0, r5, #1 + 401e20: 0600 lsls r0, r0, #24 + 401e22: 0e00 lsrs r0, r0, #24 + 401e24: 9004 str r0, [sp, #16] + 401e26: 9800 ldr r0, [sp, #0] + 401e28: 0600 lsls r0, r0, #24 + 401e2a: 0e00 lsrs r0, r0, #24 + 401e2c: 9003 str r0, [sp, #12] + 401e2e: 0031 lsls r1, r6, #0 + 401e30: f7fe fd66 bl 400900 + 401e34: 062d lsls r5, r5, #24 + 401e36: 0e2d lsrs r5, r5, #24 + 401e38: 2800 cmp r0, #0 + 401e3a: d00b beq.n 401e54 + 401e3c: a905 add r1, sp, #20 + 401e3e: 3030 adds r0, #48 + 401e40: 5548 strb r0, [r1, r5] + 401e42: 9d04 ldr r5, [sp, #16] + 401e44: 9803 ldr r0, [sp, #12] + 401e46: 0031 lsls r1, r6, #0 + 401e48: f7fe fd5a bl 400900 + 401e4c: 0609 lsls r1, r1, #24 + 401e4e: 0e09 lsrs r1, r1, #24 + 401e50: 9100 str r1, [sp, #0] + 401e52: e003 b.n 401e5c + +00401e54 : + 401e54: a805 add r0, sp, #20 + 401e56: 2130 movs r1, #48 + 401e58: 5541 strb r1, [r0, r5] + 401e5a: 9d04 ldr r5, [sp, #16] + +00401e5c : + 401e5c: 0030 lsls r0, r6, #0 + 401e5e: 210a movs r1, #10 + 401e60: f7fe fd4e bl 400900 + 401e64: 0406 lsls r6, r0, #16 + 401e66: 1436 asrs r6, r6, #16 + 401e68: 1e7f subs r7, r7, #1 + 401e6a: d1d8 bne.n 401e1e + +00401e6c : + 401e6c: 9801 ldr r0, [sp, #4] + 401e6e: 0600 lsls r0, r0, #24 + 401e70: d107 bne.n 401e82 + 401e72: 0628 lsls r0, r5, #24 + 401e74: 0e00 lsrs r0, r0, #24 + 401e76: a905 add r1, sp, #20 + 401e78: 222e movs r2, #46 + 401e7a: 540a strb r2, [r1, r0] + 401e7c: 1c6d adds r5, r5, #1 + 401e7e: 062d lsls r5, r5, #24 + 401e80: 0e2d lsrs r5, r5, #24 + +00401e82 : + 401e82: a812 add r0, sp, #72 + 401e84: 8800 ldrh r0, [r0, #0] + 401e86: 0600 lsls r0, r0, #24 + 401e88: 0e00 lsrs r0, r0, #24 + 401e8a: 9000 str r0, [sp, #0] + 401e8c: 9801 ldr r0, [sp, #4] + 401e8e: 1c40 adds r0, r0, #1 + 401e90: 9001 str r0, [sp, #4] + 401e92: 0600 lsls r0, r0, #24 + 401e94: 0e00 lsrs r0, r0, #24 + 401e96: 2802 cmp r0, #2 + 401e98: d3a8 bcc.n 401dec + 401e9a: 062d lsls r5, r5, #24 + 401e9c: 0e2d lsrs r5, r5, #24 + 401e9e: a805 add r0, sp, #20 + 401ea0: 5544 strb r4, [r0, r5] + 401ea2: 2500 movs r5, #0 + 401ea4: a907 add r1, sp, #28 + 401ea6: e006 b.n 401eb6 + +00401ea8 : + 401ea8: 5548 strb r0, [r1, r5] + 401eaa: 1c6d adds r5, r5, #1 + 401eac: 062d lsls r5, r5, #24 + 401eae: 0e2d lsrs r5, r5, #24 + 401eb0: 9811 ldr r0, [sp, #68] + 401eb2: 1c40 adds r0, r0, #1 + 401eb4: 9011 str r0, [sp, #68] + +00401eb6 : + 401eb6: 9811 ldr r0, [sp, #68] + 401eb8: 7800 ldrb r0, [r0, #0] + 401eba: 2800 cmp r0, #0 + 401ebc: d009 beq.n 401ed2 + 401ebe: 2d15 cmp r5, #21 + 401ec0: d3f2 bcc.n 401ea8 + 401ec2: e006 b.n 401ed2 + +00401ec4 : + 401ec4: 5548 strb r0, [r1, r5] + 401ec6: 1c64 adds r4, r4, #1 + 401ec8: 0624 lsls r4, r4, #24 + 401eca: 0e24 lsrs r4, r4, #24 + 401ecc: 1c6d adds r5, r5, #1 + 401ece: 062d lsls r5, r5, #24 + 401ed0: 0e2d lsrs r5, r5, #24 + +00401ed2 : + 401ed2: aa05 add r2, sp, #20 + 401ed4: 5d10 ldrb r0, [r2, r4] + 401ed6: 2800 cmp r0, #0 + 401ed8: d053 beq.n 401f82 + 401eda: 2d15 cmp r5, #21 + 401edc: d3f2 bcc.n 401ec4 + 401ede: e050 b.n 401f82 + +00401ee0 : + 401ee0: a814 add r0, sp, #80 + 401ee2: 7800 ldrb r0, [r0, #0] + 401ee4: 2800 cmp r0, #0 + 401ee6: a90e add r1, sp, #56 + 401ee8: d151 bne.n 401f8e + +00401eea : + 401eea: a812 add r0, sp, #72 + 401eec: 8800 ldrh r0, [r0, #0] + 401eee: 1102 asrs r2, r0, #4 + 401ef0: 0112 lsls r2, r2, #4 + 401ef2: 1a80 subs r0, r0, r2 + 401ef4: 4a2b ldr r2, [pc, #172] (401fa4 ) + 401ef6: 1810 adds r0, r2, r0 + 401ef8: 7d00 ldrb r0, [r0, #20] + 401efa: 5508 strb r0, [r1, r4] + 401efc: a812 add r0, sp, #72 + 401efe: aa12 add r2, sp, #72 + 401f00: 8812 ldrh r2, [r2, #0] + 401f02: 0912 lsrs r2, r2, #4 + 401f04: 8002 strh r2, [r0, #0] + 401f06: 1c64 adds r4, r4, #1 + 401f08: 0624 lsls r4, r4, #24 + 401f0a: 0e24 lsrs r4, r4, #24 + 401f0c: 2a10 cmp r2, #16 + 401f0e: d2ec bcs.n 401eea + 401f10: 0010 lsls r0, r2, #0 + 401f12: 4a24 ldr r2, [pc, #144] (401fa4 ) + 401f14: 1810 adds r0, r2, r0 + 401f16: 7d00 ldrb r0, [r0, #20] + 401f18: 5508 strb r0, [r1, r4] + 401f1a: a80c add r0, sp, #48 + 401f1c: e006 b.n 401f2c + +00401f1e : + 401f1e: 5d0b ldrb r3, [r1, r4] + 401f20: 5543 strb r3, [r0, r5] + 401f22: 1e64 subs r4, r4, #1 + 401f24: 0624 lsls r4, r4, #24 + 401f26: 0e24 lsrs r4, r4, #24 + 401f28: 0615 lsls r5, r2, #24 + 401f2a: 0e2d lsrs r5, r5, #24 + +00401f2c : + 401f2c: 1c6a adds r2, r5, #1 + 401f2e: 0023 lsls r3, r4, #0 + 401f30: d1f5 bne.n 401f1e + 401f32: 7809 ldrb r1, [r1, #0] + 401f34: 5541 strb r1, [r0, r5] + 401f36: 0612 lsls r2, r2, #24 + 401f38: 0e12 lsrs r2, r2, #24 + 401f3a: 2100 movs r1, #0 + 401f3c: 5481 strb r1, [r0, r2] + 401f3e: 2500 movs r5, #0 + 401f40: a907 add r1, sp, #28 + 401f42: e006 b.n 401f52 + +00401f44 : + 401f44: 554a strb r2, [r1, r5] + 401f46: 1c6d adds r5, r5, #1 + 401f48: 062d lsls r5, r5, #24 + 401f4a: 0e2d lsrs r5, r5, #24 + 401f4c: 9a11 ldr r2, [sp, #68] + 401f4e: 1c52 adds r2, r2, #1 + 401f50: 9211 str r2, [sp, #68] + +00401f52 : + 401f52: 9a11 ldr r2, [sp, #68] + 401f54: 7812 ldrb r2, [r2, #0] + 401f56: 2a00 cmp r2, #0 + 401f58: d001 beq.n 401f5e + 401f5a: 2d15 cmp r5, #21 + 401f5c: d3f2 bcc.n 401f44 + +00401f5e : + 401f5e: 2400 movs r4, #0 + 401f60: e006 b.n 401f70 + +00401f62 : + 401f62: 554a strb r2, [r1, r5] + 401f64: 1c64 adds r4, r4, #1 + 401f66: 0624 lsls r4, r4, #24 + 401f68: 0e24 lsrs r4, r4, #24 + 401f6a: 1c6d adds r5, r5, #1 + 401f6c: 062d lsls r5, r5, #24 + 401f6e: 0e2d lsrs r5, r5, #24 + +00401f70 : + 401f70: 5d02 ldrb r2, [r0, r4] + 401f72: 2a00 cmp r2, #0 + 401f74: d001 beq.n 401f7a + 401f76: 2d15 cmp r5, #21 + 401f78: d3f3 bcc.n 401f62 + +00401f7a : + 401f7a: a807 add r0, sp, #28 + 401f7c: 2100 movs r1, #0 + 401f7e: 5541 strb r1, [r0, r5] + 401f80: a907 add r1, sp, #28 + +00401f82 : + 401f82: a813 add r0, sp, #76 + 401f84: 7800 ldrb r0, [r0, #0] + 401f86: f7ff fe15 bl 401bb4 + +00401f8a : + 401f8a: b015 add sp, #84 + 401f8c: e190 b.n 4022b0 + +00401f8e : + 401f8e: 4906 ldr r1, [pc, #24] (401fa8 ) + 401f90: a813 add r0, sp, #76 + 401f92: 7800 ldrb r0, [r0, #0] + 401f94: f7ff fe0e bl 401bb4 + 401f98: e7f7 b.n 401f8a + 401f9a: 46c0 nop (mov r8, r8) + +00401f9c : + 401f9c: 00002710 .word 0x00002710 + 401fa0: 004052a9 .word 0x004052a9 + 401fa4: 00403e04 .word 0x00403e04 + 401fa8: 00403e2c .word 0x00403e2c + +00401fac : + 401fac: b510 push {r4, lr} + 401fae: 0004 lsls r4, r0, #0 + 401fb0: 4811 ldr r0, [pc, #68] (401ff8 ) + 401fb2: 2100 movs r1, #0 + 401fb4: 7001 strb r1, [r0, #0] + 401fb6: 2101 movs r1, #1 + 401fb8: 2015 movs r0, #21 + 401fba: f406 fa61 bl 8480 + 401fbe: 22f0 movs r2, #240 + 401fc0: 21f0 movs r1, #240 + 401fc2: 2000 movs r0, #0 + 401fc4: f406 f9da bl 837c + 401fc8: 220f movs r2, #15 + 401fca: 210f movs r1, #15 + 401fcc: 2001 movs r0, #1 + 401fce: f406 f9d5 bl 837c + 401fd2: 2101 movs r1, #1 + 401fd4: 2014 movs r0, #20 + 401fd6: f406 fa53 bl 8480 + 401fda: 2101 movs r1, #1 + 401fdc: 2009 movs r0, #9 + 401fde: f406 fa4f bl 8480 + 401fe2: 22f0 movs r2, #240 + 401fe4: 0121 lsls r1, r4, #4 + 401fe6: 2000 movs r0, #0 + 401fe8: f406 fa24 bl 8434 + 401fec: 220f movs r2, #15 + 401fee: 0921 lsrs r1, r4, #4 + 401ff0: 2001 movs r0, #1 + 401ff2: f406 fa1f bl 8434 + 401ff6: e025 b.n 402044 + +00401ff8 : + 401ff8: 004052a9 .word 0x004052a9 + +00401ffc : + 401ffc: b510 push {r4, lr} + 401ffe: 0004 lsls r4, r0, #0 + 402000: 481f ldr r0, [pc, #124] (402080 ) + 402002: 2100 movs r1, #0 + 402004: 7001 strb r1, [r0, #0] + 402006: 2015 movs r0, #21 + 402008: f406 fa3a bl 8480 + 40200c: 2101 movs r1, #1 + 40200e: 2014 movs r0, #20 + 402010: f406 fa36 bl 8480 + 402014: 22f0 movs r2, #240 + 402016: 21f0 movs r1, #240 + 402018: 2000 movs r0, #0 + 40201a: f406 f9af bl 837c + 40201e: 220f movs r2, #15 + 402020: 210f movs r1, #15 + 402022: 2001 movs r0, #1 + 402024: f406 f9aa bl 837c + 402028: 22f0 movs r2, #240 + 40202a: 0121 lsls r1, r4, #4 + 40202c: 2000 movs r0, #0 + 40202e: f406 fa01 bl 8434 + 402032: 220f movs r2, #15 + 402034: 0921 lsrs r1, r4, #4 + 402036: 2001 movs r0, #1 + 402038: f406 f9fc bl 8434 + 40203c: 2101 movs r1, #1 + 40203e: 2009 movs r0, #9 + 402040: f406 fa1e bl 8480 + +00402044 : + 402044: 2001 movs r0, #1 + 402046: f001 feaf bl 403da8 + 40204a: 2100 movs r1, #0 + 40204c: 2009 movs r0, #9 + 40204e: f406 fa17 bl 8480 + 402052: 2100 movs r1, #0 + 402054: 2014 movs r0, #20 + 402056: f406 fa13 bl 8480 + 40205a: 22f0 movs r2, #240 + 40205c: 21f0 movs r1, #240 + 40205e: 43c9 mvns r1, r1 + 402060: 2000 movs r0, #0 + 402062: f406 f98b bl 837c + 402066: 220f movs r2, #15 + 402068: 210f movs r1, #15 + 40206a: 43c9 mvns r1, r1 + 40206c: 2001 movs r0, #1 + 40206e: f406 f985 bl 837c + 402072: 2001 movs r0, #1 + 402074: f001 fe98 bl 403da8 + 402078: 9801 ldr r0, [sp, #4] + 40207a: bc10 pop {r4} + 40207c: b001 add sp, #4 + 40207e: 4700 bx r0 + +00402080 : + 402080: 004052a9 .word 0x004052a9 + +00402084 : + 402084: 4905 ldr r1, [pc, #20] (40209c ) + 402086: 2200 movs r2, #0 + 402088: 700a strb r2, [r1, #0] + 40208a: 2802 cmp r0, #2 + 40208c: d203 bcs.n 402096 + 40208e: 4904 ldr r1, [pc, #16] (4020a0 ) + 402090: 7008 strb r0, [r1, #0] + 402092: 2001 movs r0, #1 + 402094: 4770 bx lr + +00402096 : + 402096: 2000 movs r0, #0 + 402098: 4770 bx lr + 40209a: 46c0 nop (mov r8, r8) + +0040209c : + 40209c: 004052a9 .word 0x004052a9 + 4020a0: 004052bd .word 0x004052bd + +004020a4 : + 4020a4: b580 push {r7, lr} + 4020a6: 1e41 subs r1, r0, #1 + 4020a8: 4189 sbcs r1, r1 + 4020aa: 43c9 mvns r1, r1 + 4020ac: 0fc9 lsrs r1, r1, #31 + 4020ae: 200a movs r0, #10 + 4020b0: f406 f9e6 bl 8480 + 4020b4: 9801 ldr r0, [sp, #4] + 4020b6: b002 add sp, #8 + 4020b8: 4700 bx r0 + +004020ba : + 4020ba: b5f0 push {r4, r5, r6, r7, lr} + 4020bc: b083 sub sp, #12 + 4020be: 0005 lsls r5, r0, #0 + 4020c0: 0017 lsls r7, r2, #0 + 4020c2: 2d80 cmp r5, #128 + 4020c4: d300 bcc.n 4020c8 + 4020c6: e08b b.n 4021e0 + 4020c8: 2940 cmp r1, #64 + 4020ca: d300 bcc.n 4020ce + 4020cc: e088 b.n 4021e0 + 4020ce: 08c8 lsrs r0, r1, #3 + 4020d0: 0006 lsls r6, r0, #0 + 4020d2: 00c0 lsls r0, r0, #3 + 4020d4: 1a0c subs r4, r1, r0 + 4020d6: 2040 movs r0, #64 + 4020d8: f7ff ff68 bl 401fac + 4020dc: 4668 mov r0, sp + 4020de: 3e50 subs r6, #80 + 4020e0: 7046 strb r6, [r0, #1] + 4020e2: 7840 ldrb r0, [r0, #1] + 4020e4: f7ff ff62 bl 401fac + 4020e8: 4668 mov r0, sp + 4020ea: 0929 lsrs r1, r5, #4 + 4020ec: 2210 movs r2, #16 + 4020ee: 430a orrs r2, r1 + 4020f0: 7002 strb r2, [r0, #0] + 4020f2: 0010 lsls r0, r2, #0 + 4020f4: f7ff ff5a bl 401fac + 4020f8: 072e lsls r6, r5, #28 + 4020fa: 0f36 lsrs r6, r6, #28 + 4020fc: 0030 lsls r0, r6, #0 + 4020fe: f7ff ff55 bl 401fac + 402102: 2100 movs r1, #0 + 402104: 2015 movs r0, #21 + 402106: f406 f9bb bl 8480 + 40210a: 2101 movs r1, #1 + 40210c: 2014 movs r0, #20 + 40210e: f406 f9b7 bl 8480 + 402112: 2001 movs r0, #1 + 402114: f001 fe48 bl 403da8 + 402118: 2101 movs r1, #1 + 40211a: 2008 movs r0, #8 + 40211c: f406 f9b0 bl 8480 + 402120: 2001 movs r0, #1 + 402122: f001 fe41 bl 403da8 + 402126: a902 add r1, sp, #8 + 402128: 2000 movs r0, #0 + 40212a: f406 f999 bl 8460 + 40212e: a902 add r1, sp, #8 + 402130: 2001 movs r0, #1 + 402132: f406 f995 bl 8460 + 402136: 2100 movs r1, #0 + 402138: 2008 movs r0, #8 + 40213a: f406 f9a1 bl 8480 + 40213e: 2100 movs r1, #0 + 402140: 2014 movs r0, #20 + 402142: f406 f99d bl 8480 + 402146: 2001 movs r0, #1 + 402148: f001 fe2e bl 403da8 + 40214c: 2100 movs r1, #0 + 40214e: 2015 movs r0, #21 + 402150: f406 f996 bl 8480 + 402154: 2101 movs r1, #1 + 402156: 2014 movs r0, #20 + 402158: f406 f992 bl 8480 + 40215c: 2001 movs r0, #1 + 40215e: f001 fe23 bl 403da8 + 402162: 2101 movs r1, #1 + 402164: 2008 movs r0, #8 + 402166: f406 f98b bl 8480 + 40216a: 2001 movs r0, #1 + 40216c: f001 fe1c bl 403da8 + 402170: a901 add r1, sp, #4 + 402172: 2000 movs r0, #0 + 402174: f406 f974 bl 8460 + 402178: 9801 ldr r0, [sp, #4] + 40217a: 21f0 movs r1, #240 + 40217c: 4001 ands r1, r0 + 40217e: 090d lsrs r5, r1, #4 + 402180: a901 add r1, sp, #4 + 402182: 2001 movs r0, #1 + 402184: f406 f96c bl 8460 + 402188: 2100 movs r1, #0 + 40218a: 2008 movs r0, #8 + 40218c: f406 f978 bl 8480 + 402190: 2100 movs r1, #0 + 402192: 2014 movs r0, #20 + 402194: f406 f974 bl 8480 + 402198: 2001 movs r0, #1 + 40219a: f001 fe05 bl 403da8 + 40219e: 9801 ldr r0, [sp, #4] + 4021a0: 0100 lsls r0, r0, #4 + 4021a2: 4328 orrs r0, r5 + 4021a4: 0605 lsls r5, r0, #24 + 4021a6: 0e2d lsrs r5, r5, #24 + 4021a8: 2040 movs r0, #64 + 4021aa: f7ff feff bl 401fac + 4021ae: 4668 mov r0, sp + 4021b0: 7840 ldrb r0, [r0, #1] + 4021b2: f7ff fefb bl 401fac + 4021b6: 4668 mov r0, sp + 4021b8: 7800 ldrb r0, [r0, #0] + 4021ba: f7ff fef7 bl 401fac + 4021be: 0030 lsls r0, r6, #0 + 4021c0: f7ff fef4 bl 401fac + 4021c4: 2001 movs r0, #1 + 4021c6: 40a0 lsls r0, r4 + 4021c8: 2f01 cmp r7, #1 + 4021ca: d105 bne.n 4021d8 + 4021cc: 4328 orrs r0, r5 + 4021ce: 0600 lsls r0, r0, #24 + 4021d0: 0e00 lsrs r0, r0, #24 + 4021d2: f7ff ff13 bl 401ffc + 4021d6: e003 b.n 4021e0 + +004021d8 : + 4021d8: 4385 bics r5, r0 + 4021da: 0028 lsls r0, r5, #0 + 4021dc: f7ff ff0e bl 401ffc + +004021e0 : + 4021e0: e064 b.n 4022ac + ... + +004021e4 : + 4021e4: b5f2 push {r1, r4, r5, r6, r7, lr} + 4021e6: b082 sub sp, #8 + 4021e8: 0014 lsls r4, r2, #0 + 4021ea: 4669 mov r1, sp + 4021ec: 7a09 ldrb r1, [r1, #8] + 4021ee: 2980 cmp r1, #128 + 4021f0: d301 bcc.n 4021f6 + 4021f2: 2c40 cmp r4, #64 + 4021f4: d25a bcs.n 4022ac + +004021f6 : + 4021f6: 3820 subs r0, #32 + 4021f8: 0400 lsls r0, r0, #16 + 4021fa: 4934 ldr r1, [pc, #208] (4022cc ) + 4021fc: 7809 ldrb r1, [r1, #0] + 4021fe: 004a lsls r2, r1, #1 + 402200: 1851 adds r1, r2, r1 + 402202: 0089 lsls r1, r1, #2 + 402204: 4a2c ldr r2, [pc, #176] (4022b8 ) + 402206: 1851 adds r1, r2, r1 + 402208: 7a0d ldrb r5, [r1, #8] + 40220a: 0bc7 lsrs r7, r0, #15 + 40220c: 4668 mov r0, sp + 40220e: 7a00 ldrb r0, [r0, #8] + 402210: 0900 lsrs r0, r0, #4 + 402212: 2110 movs r1, #16 + 402214: 4301 orrs r1, r0 + 402216: 4668 mov r0, sp + 402218: 7001 strb r1, [r0, #0] + 40221a: e024 b.n 402266 + +0040221c : + 40221c: 19a9 adds r1, r5, r6 + 40221e: 6802 ldr r2, [r0, #0] + 402220: 5bd2 ldrh r2, [r2, r7] + 402222: 435a muls r2, r3 + 402224: 1889 adds r1, r1, r2 + 402226: 6840 ldr r0, [r0, #4] + 402228: 5c40 ldrb r0, [r0, r1] + 40222a: f7ff fee7 bl 401ffc + 40222e: 4827 ldr r0, [pc, #156] (4022cc ) + 402230: 7800 ldrb r0, [r0, #0] + 402232: 0041 lsls r1, r0, #1 + 402234: 1808 adds r0, r1, r0 + 402236: 0080 lsls r0, r0, #2 + 402238: 4920 ldr r1, [pc, #128] (4022bc ) + 40223a: 1808 adds r0, r1, r0 + 40223c: 7a00 ldrb r0, [r0, #8] + 40223e: 1836 adds r6, r6, r0 + 402240: 0636 lsls r6, r6, #24 + 402242: 0e36 lsrs r6, r6, #24 + +00402244 : + 402244: 4821 ldr r0, [pc, #132] (4022cc ) + 402246: 7800 ldrb r0, [r0, #0] + 402248: 0041 lsls r1, r0, #1 + 40224a: 1808 adds r0, r1, r0 + 40224c: 0080 lsls r0, r0, #2 + 40224e: 491c ldr r1, [pc, #112] (4022c0 ) + 402250: 1808 adds r0, r1, r0 + 402252: 6801 ldr r1, [r0, #0] + 402254: 19ca adds r2, r1, r7 + 402256: 8853 ldrh r3, [r2, #2] + 402258: 8812 ldrh r2, [r2, #0] + 40225a: 1a9a subs r2, r3, r2 + 40225c: 7a03 ldrb r3, [r0, #8] + 40225e: 435a muls r2, r3 + 402260: 4296 cmp r6, r2 + 402262: dbdb blt.n 40221c + 402264: 3408 adds r4, #8 + +00402266 : + 402266: 0028 lsls r0, r5, #0 + 402268: d020 beq.n 4022ac + 40226a: 1e6d subs r5, r5, #1 + 40226c: 062d lsls r5, r5, #24 + 40226e: 0e2d lsrs r5, r5, #24 + 402270: 2040 movs r0, #64 + 402272: f7ff fe9b bl 401fac + 402276: 0626 lsls r6, r4, #24 + 402278: 0ef6 lsrs r6, r6, #27 + 40227a: 0030 lsls r0, r6, #0 + 40227c: 3850 subs r0, #80 + 40227e: 0600 lsls r0, r0, #24 + 402280: 0e00 lsrs r0, r0, #24 + 402282: f7ff fe93 bl 401fac + 402286: 4668 mov r0, sp + 402288: 7800 ldrb r0, [r0, #0] + 40228a: f7ff fe8f bl 401fac + 40228e: 4668 mov r0, sp + 402290: 7a00 ldrb r0, [r0, #8] + 402292: 0700 lsls r0, r0, #28 + 402294: 0f00 lsrs r0, r0, #28 + 402296: f7ff fe89 bl 401fac + 40229a: 480a ldr r0, [pc, #40] (4022c4 ) + 40229c: 7800 ldrb r0, [r0, #0] + 40229e: 2101 movs r1, #1 + 4022a0: 40b1 lsls r1, r6 + 4022a2: 4301 orrs r1, r0 + 4022a4: 4808 ldr r0, [pc, #32] (4022c8 ) + 4022a6: 7001 strb r1, [r0, #0] + 4022a8: 2600 movs r6, #0 + 4022aa: e7cb b.n 402244 + +004022ac : + 4022ac: b003 add sp, #12 + 4022ae: 46c0 nop (mov r8, r8) + +004022b0 : + 4022b0: 9804 ldr r0, [sp, #16] + 4022b2: bcf0 pop {r4, r5, r6, r7} + 4022b4: b001 add sp, #4 + 4022b6: 4700 bx r0 + +004022b8 : + 4022b8: 00403eec .word 0x00403eec + 4022bc: 00403eec .word 0x00403eec + 4022c0: 00403eec .word 0x00403eec + 4022c4: 004052b3 .word 0x004052b3 + 4022c8: 004052b3 .word 0x004052b3 + +004022cc : + 4022cc: 004052bd .word 0x004052bd + +004022d0 : + 4022d0: b570 push {r4, r5, r6, lr} + 4022d2: 0004 lsls r4, r0, #0 + 4022d4: 000d lsls r5, r1, #0 + 4022d6: 0016 lsls r6, r2, #0 + 4022d8: 2040 movs r0, #64 + 4022da: f7ff fe67 bl 401fac + 4022de: 08f0 lsrs r0, r6, #3 + 4022e0: 3850 subs r0, #80 + 4022e2: 0600 lsls r0, r0, #24 + 4022e4: 0e00 lsrs r0, r0, #24 + 4022e6: f7ff fe61 bl 401fac + 4022ea: 0921 lsrs r1, r4, #4 + 4022ec: 2010 movs r0, #16 + 4022ee: 4308 orrs r0, r1 + 4022f0: f7ff fe5c bl 401fac + 4022f4: 0720 lsls r0, r4, #28 + 4022f6: 0f00 lsrs r0, r0, #28 + 4022f8: f7ff fe58 bl 401fac + 4022fc: e005 b.n 40230a + +004022fe : + 4022fe: 2000 movs r0, #0 + 402300: f7ff fe7c bl 401ffc + 402304: 1c64 adds r4, r4, #1 + 402306: 0624 lsls r4, r4, #24 + 402308: 0e24 lsrs r4, r4, #24 + +0040230a : + 40230a: 42ac cmp r4, r5 + 40230c: d3f7 bcc.n 4022fe + 40230e: 9803 ldr r0, [sp, #12] + 402310: bc70 pop {r4, r5, r6} + 402312: b001 add sp, #4 + 402314: 4700 bx r0 + ... + +00402318 : + 402318: b510 push {r4, lr} + 40231a: 2808 cmp r0, #8 + 40231c: d228 bcs.n 402370 + 40231e: 4c15 ldr r4, [pc, #84] (402374 ) + 402320: 7f21 ldrb r1, [r4, #28] + 402322: 2900 cmp r1, #0 + 402324: d009 beq.n 40233a + 402326: 0041 lsls r1, r0, #1 + 402328: 1809 adds r1, r1, r0 + 40232a: 1861 adds r1, r4, r1 + 40232c: 790a ldrb r2, [r1, #4] + 40232e: 7022 strb r2, [r4, #0] + 402330: 2280 movs r2, #128 + 402332: 7062 strb r2, [r4, #1] + 402334: 7949 ldrb r1, [r1, #5] + 402336: 70a1 strb r1, [r4, #2] + 402338: 70e0 strb r0, [r4, #3] + +0040233a : + 40233a: 78a2 ldrb r2, [r4, #2] + 40233c: 7861 ldrb r1, [r4, #1] + 40233e: 7820 ldrb r0, [r4, #0] + 402340: 1a0b subs r3, r1, r0 + 402342: 2b20 cmp r3, #32 + 402344: db0c blt.n 402360 + 402346: 2100 movs r1, #0 + 402348: 7721 strb r1, [r4, #28] + 40234a: 0001 lsls r1, r0, #0 + 40234c: 3120 adds r1, #32 + 40234e: 0609 lsls r1, r1, #24 + 402350: 0e09 lsrs r1, r1, #24 + 402352: f7ff ffbd bl 4022d0 + 402356: 7820 ldrb r0, [r4, #0] + 402358: 3020 adds r0, #32 + 40235a: 7020 strb r0, [r4, #0] + 40235c: 2000 movs r0, #0 + 40235e: e003 b.n 402368 + +00402360 : + 402360: f7ff ffb6 bl 4022d0 + 402364: 2001 movs r0, #1 + 402366: 7720 strb r0, [r4, #28] + +00402368 : + 402368: 9901 ldr r1, [sp, #4] + 40236a: bc10 pop {r4} + 40236c: b001 add sp, #4 + 40236e: 4708 bx r1 + +00402370 : + 402370: 20ff movs r0, #255 + 402372: e7f9 b.n 402368 + +00402374 : + 402374: 00405484 .word 0x00405484 + +00402378 : + 402378: b580 push {r7, lr} + 40237a: 488d ldr r0, [pc, #564] (4025b0 ) + 40237c: 7841 ldrb r1, [r0, #1] + 40237e: 0089 lsls r1, r1, #2 + 402380: 1840 adds r0, r0, r1 + 402382: 6ac0 ldr r0, [r0, #44] + 402384: 2800 cmp r0, #0 + 402386: d005 beq.n 402394 + 402388: 68c1 ldr r1, [r0, #12] + 40238a: 2900 cmp r1, #0 + 40238c: d002 beq.n 402394 + 40238e: 0008 lsls r0, r1, #0 + 402390: f001 fdd5 bl 403f3e <__iar_via_R0> + +00402394 : + 402394: 9801 ldr r0, [sp, #4] + 402396: b002 add sp, #8 + 402398: 4700 bx r0 + +0040239a : + 40239a: b430 push {r4, r5} + 40239c: 4a84 ldr r2, [pc, #528] (4025b0 ) + 40239e: 7893 ldrb r3, [r2, #2] + 4023a0: 009c lsls r4, r3, #2 + 4023a2: 1914 adds r4, r2, r4 + 4023a4: 6ae5 ldr r5, [r4, #44] + 4023a6: 2d00 cmp r5, #0 + 4023a8: d002 beq.n 4023b0 + 4023aa: 2002 movs r0, #2 + 4023ac: bc30 pop {r4, r5} + 4023ae: 4770 bx lr + +004023b0 : + 4023b0: 7805 ldrb r5, [r0, #0] + 4023b2: 076d lsls r5, r5, #29 + 4023b4: 0f6d lsrs r5, r5, #29 + 4023b6: 7005 strb r5, [r0, #0] + 4023b8: 62e0 str r0, [r4, #44] + 4023ba: 63e1 str r1, [r4, #60] + 4023bc: 2b03 cmp r3, #3 + 4023be: d101 bne.n 4023c4 + 4023c0: 2300 movs r3, #0 + 4023c2: e000 b.n 4023c6 + +004023c4 : + 4023c4: 1c5b adds r3, r3, #1 + +004023c6 : + 4023c6: 7093 strb r3, [r2, #2] + 4023c8: 2000 movs r0, #0 + 4023ca: bc30 pop {r4, r5} + 4023cc: 4770 bx lr + +004023ce : + 4023ce: 4878 ldr r0, [pc, #480] (4025b0 ) + 4023d0: 7841 ldrb r1, [r0, #1] + 4023d2: 008a lsls r2, r1, #2 + 4023d4: 1882 adds r2, r0, r2 + 4023d6: 6ad3 ldr r3, [r2, #44] + 4023d8: 2b00 cmp r3, #0 + 4023da: d008 beq.n 4023ee + 4023dc: 2300 movs r3, #0 + 4023de: 62d3 str r3, [r2, #44] + 4023e0: 63d3 str r3, [r2, #60] + 4023e2: 2903 cmp r1, #3 + 4023e4: d101 bne.n 4023ea + 4023e6: 2100 movs r1, #0 + 4023e8: e000 b.n 4023ec + +004023ea : + 4023ea: 1c49 adds r1, r1, #1 + +004023ec : + 4023ec: 7041 strb r1, [r0, #1] + +004023ee : + 4023ee: 2000 movs r0, #0 + 4023f0: 4770 bx lr + ... + +004023f4 : + 4023f4: 2000 movs r0, #0 + 4023f6: 496e ldr r1, [pc, #440] (4025b0 ) + 4023f8: 62c8 str r0, [r1, #44] + 4023fa: 63c8 str r0, [r1, #60] + 4023fc: 6308 str r0, [r1, #48] + 4023fe: 6408 str r0, [r1, #64] + 402400: 6348 str r0, [r1, #52] + 402402: 6448 str r0, [r1, #68] + 402404: 6388 str r0, [r1, #56] + 402406: 6488 str r0, [r1, #72] + 402408: 7048 strb r0, [r1, #1] + 40240a: 7088 strb r0, [r1, #2] + 40240c: 6508 str r0, [r1, #80] + 40240e: 70c8 strb r0, [r1, #3] + 402410: 000a lsls r2, r1, #0 + 402412: 325c adds r2, #92 + 402414: 60ca str r2, [r1, #12] + 402416: 6148 str r0, [r1, #20] + 402418: 201a movs r0, #26 + 40241a: 7208 strb r0, [r1, #8] + 40241c: 4801 ldr r0, [pc, #4] (402424 ) + 40241e: 8508 strh r0, [r1, #40] + 402420: 2000 movs r0, #0 + 402422: 4770 bx lr + +00402424 : + 402424: 0000ffff .word 0x0000ffff + +00402428 : + 402428: b510 push {r4, lr} + 40242a: 4c61 ldr r4, [pc, #388] (4025b0 ) + 40242c: 7860 ldrb r0, [r4, #1] + 40242e: 0080 lsls r0, r0, #2 + 402430: 1820 adds r0, r4, r0 + 402432: 6ac0 ldr r0, [r0, #44] + 402434: 2800 cmp r0, #0 + 402436: d00b beq.n 402450 + 402438: 2107 movs r1, #7 + 40243a: 7802 ldrb r2, [r0, #0] + 40243c: 400a ands r2, r1 + 40243e: 2a04 cmp r2, #4 + 402440: d206 bcs.n 402450 + 402442: 7800 ldrb r0, [r0, #0] + 402444: 4001 ands r1, r0 + 402446: 0088 lsls r0, r1, #2 + 402448: 4904 ldr r1, [pc, #16] (40245c ) + 40244a: 5808 ldr r0, [r1, r0] + 40244c: f001 fd77 bl 403f3e <__iar_via_R0> + +00402450 : + 402450: 78e0 ldrb r0, [r4, #3] + 402452: 2801 cmp r0, #1 + 402454: d101 bne.n 40245a + 402456: f000 fb49 bl 402aec + +0040245a : + 40245a: e335 b.n 402ac8 + +0040245c : + 40245c: 00403f04 .word 0x00403f04 + +00402460 : + 402460: b538 push {r3, r4, r5, lr} + 402462: 4c53 ldr r4, [pc, #332] (4025b0 ) + 402464: 7860 ldrb r0, [r4, #1] + 402466: 0080 lsls r0, r0, #2 + 402468: 1820 adds r0, r4, r0 + 40246a: 6ac0 ldr r0, [r0, #44] + 40246c: 7801 ldrb r1, [r0, #0] + 40246e: 08c9 lsrs r1, r1, #3 + 402470: d006 beq.n 402480 + 402472: 1e49 subs r1, r1, #1 + 402474: d01a beq.n 4024ac + 402476: 1e49 subs r1, r1, #1 + 402478: d029 beq.n 4024ce + 40247a: 1f09 subs r1, r1, #4 + 40247c: d05f beq.n 40253e + 40247e: e064 b.n 40254a + +00402480 : + 402480: 2100 movs r1, #0 + 402482: 6521 str r1, [r4, #80] + 402484: 7021 strb r1, [r4, #0] + 402486: 7a01 ldrb r1, [r0, #8] + 402488: 1d09 adds r1, r1, #4 + 40248a: 4a4a ldr r2, [pc, #296] (4025b4 ) + 40248c: 6011 str r1, [r2, #0] + 40248e: 494a ldr r1, [pc, #296] (4025b8 ) + 402490: 6842 ldr r2, [r0, #4] + 402492: 678a str r2, [r1, #120] + 402494: 0022 lsls r2, r4, #0 + 402496: 3260 adds r2, #96 + 402498: 674a str r2, [r1, #116] + 40249a: 4a44 ldr r2, [pc, #272] (4025ac ) + 40249c: 600a str r2, [r1, #0] + 40249e: 7801 ldrb r1, [r0, #0] + 4024a0: 0749 lsls r1, r1, #29 + 4024a2: 0f49 lsrs r1, r1, #29 + 4024a4: 2208 movs r2, #8 + +004024a6 : + 4024a6: 430a orrs r2, r1 + 4024a8: 7002 strb r2, [r0, #0] + 4024aa: e050 b.n 40254e + +004024ac : + 4024ac: 6d21 ldr r1, [r4, #80] + 4024ae: 07ca lsls r2, r1, #31 + 4024b0: d404 bmi.n 4024bc + 4024b2: 2220 movs r2, #32 + 4024b4: 400a ands r2, r1 + 4024b6: 0951 lsrs r1, r2, #5 + 4024b8: 2901 cmp r1, #1 + 4024ba: d148 bne.n 40254e + +004024bc : + 4024bc: 6d21 ldr r1, [r4, #80] + 4024be: 2201 movs r2, #1 + 4024c0: 4391 bics r1, r2 + 4024c2: 6521 str r1, [r4, #80] + 4024c4: 7801 ldrb r1, [r0, #0] + 4024c6: 0749 lsls r1, r1, #29 + 4024c8: 0f49 lsrs r1, r1, #29 + 4024ca: 2210 movs r2, #16 + 4024cc: e7eb b.n 4024a6 + +004024ce : + 4024ce: 2120 movs r1, #32 + 4024d0: 6d22 ldr r2, [r4, #80] + 4024d2: 400a ands r2, r1 + 4024d4: 0952 lsrs r2, r2, #5 + 4024d6: 2a01 cmp r2, #1 + 4024d8: d139 bne.n 40254e + 4024da: 6d22 ldr r2, [r4, #80] + 4024dc: 438a bics r2, r1 + 4024de: 6522 str r2, [r4, #80] + 4024e0: 2207 movs r2, #7 + 4024e2: 6d23 ldr r3, [r4, #80] + 4024e4: 2540 movs r5, #64 + 4024e6: 401d ands r5, r3 + 4024e8: 09ab lsrs r3, r5, #6 + 4024ea: 2b01 cmp r3, #1 + 4024ec: d108 bne.n 402500 + 4024ee: 6d23 ldr r3, [r4, #80] + 4024f0: 2540 movs r5, #64 + 4024f2: 43ab bics r3, r5 + 4024f4: 6523 str r3, [r4, #80] + 4024f6: 7803 ldrb r3, [r0, #0] + 4024f8: 401a ands r2, r3 + 4024fa: 4311 orrs r1, r2 + 4024fc: 7001 strb r1, [r0, #0] + 4024fe: e024 b.n 40254a + +00402500 : + 402500: 7821 ldrb r1, [r4, #0] + 402502: 2900 cmp r1, #0 + 402504: d015 beq.n 402532 + 402506: 1e49 subs r1, r1, #1 + 402508: 7021 strb r1, [r4, #0] + 40250a: 2100 movs r1, #0 + 40250c: 6521 str r1, [r4, #80] + 40250e: 7a01 ldrb r1, [r0, #8] + 402510: 1d09 adds r1, r1, #4 + 402512: 4b28 ldr r3, [pc, #160] (4025b4 ) + 402514: 6019 str r1, [r3, #0] + 402516: 4928 ldr r1, [pc, #160] (4025b8 ) + 402518: 6843 ldr r3, [r0, #4] + 40251a: 678b str r3, [r1, #120] + 40251c: 0023 lsls r3, r4, #0 + 40251e: 3360 adds r3, #96 + 402520: 674b str r3, [r1, #116] + 402522: 4b22 ldr r3, [pc, #136] (4025ac ) + 402524: 600b str r3, [r1, #0] + 402526: 7801 ldrb r1, [r0, #0] + 402528: 400a ands r2, r1 + 40252a: 2108 movs r1, #8 + 40252c: 4311 orrs r1, r2 + 40252e: 7001 strb r1, [r0, #0] + 402530: e00d b.n 40254e + +00402532 : + 402532: 7801 ldrb r1, [r0, #0] + 402534: 400a ands r2, r1 + 402536: 2128 movs r1, #40 + 402538: 4311 orrs r1, r2 + 40253a: 7001 strb r1, [r0, #0] + 40253c: e005 b.n 40254a + +0040253e : + 40253e: 7801 ldrb r1, [r0, #0] + 402540: 0749 lsls r1, r1, #29 + 402542: 0f49 lsrs r1, r1, #29 + 402544: 2238 movs r2, #56 + 402546: 430a orrs r2, r1 + 402548: 7002 strb r2, [r0, #0] + +0040254a : + 40254a: f7ff ff40 bl 4023ce + +0040254e : + 40254e: 6d20 ldr r0, [r4, #80] + 402550: 2180 movs r1, #128 + 402552: 0089 lsls r1, r1, #2 + 402554: 4001 ands r1, r0 + 402556: 0a49 lsrs r1, r1, #9 + 402558: 2901 cmp r1, #1 + 40255a: d010 beq.n 40257e + 40255c: 2180 movs r1, #128 + 40255e: 02c9 lsls r1, r1, #11 + 402560: 4001 ands r1, r0 + 402562: 0c89 lsrs r1, r1, #18 + 402564: 2901 cmp r1, #1 + 402566: d00a beq.n 40257e + 402568: 2108 movs r1, #8 + 40256a: 4001 ands r1, r0 + 40256c: 08c9 lsrs r1, r1, #3 + 40256e: 2901 cmp r1, #1 + 402570: d005 beq.n 40257e + 402572: 2180 movs r1, #128 + 402574: 0349 lsls r1, r1, #13 + 402576: 4001 ands r1, r0 + 402578: 0d08 lsrs r0, r1, #20 + 40257a: 2801 cmp r0, #1 + 40257c: d10f bne.n 40259e + +0040257e : + 40257e: 6d20 ldr r0, [r4, #80] + 402580: 490e ldr r1, [pc, #56] (4025bc ) + 402582: 4001 ands r1, r0 + 402584: 6521 str r1, [r4, #80] + 402586: 7860 ldrb r0, [r4, #1] + 402588: 0080 lsls r0, r0, #2 + 40258a: 1820 adds r0, r4, r0 + 40258c: 6ac0 ldr r0, [r0, #44] + 40258e: 7801 ldrb r1, [r0, #0] + 402590: 0749 lsls r1, r1, #29 + 402592: 0f49 lsrs r1, r1, #29 + 402594: 2228 movs r2, #40 + 402596: 430a orrs r2, r1 + 402598: 7002 strb r2, [r0, #0] + 40259a: f7ff ff18 bl 4023ce + +0040259e : + 40259e: 2000 movs r0, #0 + 4025a0: b001 add sp, #4 + 4025a2: 9902 ldr r1, [sp, #8] + 4025a4: bc30 pop {r4, r5} + 4025a6: b001 add sp, #4 + 4025a8: 4708 bx r1 + 4025aa: 46c0 nop (mov r8, r8) + +004025ac : + 4025ac: 00000a03 .word 0x00000a03 + +004025b0 : + 4025b0: 00405368 .word 0x00405368 + +004025b4 : + 4025b4: 8000408c .word 0x8000408c + +004025b8 : + 4025b8: 8000400c .word 0x8000400c + +004025bc : + 4025bc: ffebfdf7 .word 0xffebfdf7 + +004025c0 : + 4025c0: b570 push {r4, r5, r6, lr} + 4025c2: 4c79 ldr r4, [pc, #484] (4027a8 ) + 4025c4: 7860 ldrb r0, [r4, #1] + 4025c6: 0080 lsls r0, r0, #2 + 4025c8: 1821 adds r1, r4, r0 + 4025ca: 6ac8 ldr r0, [r1, #44] + 4025cc: 7802 ldrb r2, [r0, #0] + 4025ce: 08d2 lsrs r2, r2, #3 + 4025d0: 2a07 cmp r2, #7 + 4025d2: d900 bls.n 4025d6 + 4025d4: e0b8 b.n 402748 + 4025d6: a302 add r3, pc, #8 (adr r3, 4025e0 ) + 4025d8: 5c9b ldrb r3, [r3, r2] + 4025da: 005b lsls r3, r3, #1 + 4025dc: 449f add pc, r3 + 4025de: 46c0 nop (mov r8, r8) + +004025e0 : + 4025e0: b63d2b04 .word 0xb63d2b04 + 4025e4: aeb4b4b4 .word 0xaeb4b4b4 + +004025e8 : + 4025e8: 2200 movs r2, #0 + 4025ea: 6522 str r2, [r4, #80] + 4025ec: 7022 strb r2, [r4, #0] + 4025ee: 6bc9 ldr r1, [r1, #60] + 4025f0: 64e1 str r1, [r4, #76] + 4025f2: 7a03 ldrb r3, [r0, #8] + 4025f4: 041b lsls r3, r3, #16 + 4025f6: 4d6d ldr r5, [pc, #436] (4027ac ) + 4025f8: 602b str r3, [r5, #0] + 4025fa: 4b6d ldr r3, [pc, #436] (4027b0 ) + 4025fc: 0025 lsls r5, r4, #0 + 4025fe: 3560 adds r5, #96 + 402600: 679d str r5, [r3, #120] + 402602: 6845 ldr r5, [r0, #4] + 402604: 675d str r5, [r3, #116] + 402606: 2900 cmp r1, #0 + 402608: d00a beq.n 402620 + 40260a: 6bda ldr r2, [r3, #60] + 40260c: 1851 adds r1, r2, r1 + 40260e: 6459 str r1, [r3, #68] + 402610: 6bd9 ldr r1, [r3, #60] + 402612: 22ff movs r2, #255 + 402614: 0052 lsls r2, r2, #1 + 402616: 1889 adds r1, r1, r2 + 402618: 6499 str r1, [r3, #72] + 40261a: 0019 lsls r1, r3, #0 + 40261c: 2206 movs r2, #6 + 40261e: e000 b.n 402622 + +00402620 : + 402620: 0019 lsls r1, r3, #0 + +00402622 : + 402622: 634a str r2, [r1, #52] + 402624: 4a63 ldr r2, [pc, #396] (4027b4 ) + 402626: 600a str r2, [r1, #0] + 402628: 7801 ldrb r1, [r0, #0] + 40262a: 0749 lsls r1, r1, #29 + 40262c: 0f49 lsrs r1, r1, #29 + 40262e: 2208 movs r2, #8 + +00402630 : + 402630: 430a orrs r2, r1 + 402632: 7002 strb r2, [r0, #0] + 402634: e08a b.n 40274c + +00402636 : + 402636: 6d21 ldr r1, [r4, #80] + 402638: 07ca lsls r2, r1, #31 + 40263a: d405 bmi.n 402648 + 40263c: 2220 movs r2, #32 + 40263e: 400a ands r2, r1 + 402640: 0951 lsrs r1, r2, #5 + 402642: 2901 cmp r1, #1 + 402644: d000 beq.n 402648 + 402646: e081 b.n 40274c + +00402648 : + 402648: 6d21 ldr r1, [r4, #80] + 40264a: 2201 movs r2, #1 + 40264c: 4391 bics r1, r2 + 40264e: 6521 str r1, [r4, #80] + 402650: 7801 ldrb r1, [r0, #0] + 402652: 0749 lsls r1, r1, #29 + 402654: 0f49 lsrs r1, r1, #29 + 402656: 2210 movs r2, #16 + 402658: e7ea b.n 402630 + +0040265a : + 40265a: 2220 movs r2, #32 + 40265c: 6d23 ldr r3, [r4, #80] + 40265e: 4013 ands r3, r2 + 402660: 095b lsrs r3, r3, #5 + 402662: 2b01 cmp r3, #1 + 402664: d172 bne.n 40274c + 402666: 6d23 ldr r3, [r4, #80] + 402668: 4393 bics r3, r2 + 40266a: 6523 str r3, [r4, #80] + 40266c: 2540 movs r5, #64 + 40266e: 401d ands r5, r3 + 402670: 09ad lsrs r5, r5, #6 + 402672: 2d01 cmp r5, #1 + 402674: d10f bne.n 402696 + 402676: 001a lsls r2, r3, #0 + 402678: 2340 movs r3, #64 + 40267a: 439a bics r2, r3 + 40267c: 6522 str r2, [r4, #80] + 40267e: 6842 ldr r2, [r0, #4] + 402680: 7812 ldrb r2, [r2, #0] + 402682: 1f12 subs r2, r2, #4 + 402684: 7202 strb r2, [r0, #8] + 402686: 6ac8 ldr r0, [r1, #44] + 402688: 7801 ldrb r1, [r0, #0] + 40268a: 0749 lsls r1, r1, #29 + 40268c: 0f49 lsrs r1, r1, #29 + 40268e: 2228 movs r2, #40 + 402690: 430a orrs r2, r1 + 402692: 7002 strb r2, [r0, #0] + 402694: e058 b.n 402748 + +00402696 : + 402696: 2504 movs r5, #4 + 402698: 401d ands r5, r3 + 40269a: 08ad lsrs r5, r5, #2 + 40269c: 2d01 cmp r5, #1 + 40269e: d02e beq.n 4026fe + 4026a0: 0255 lsls r5, r2, #9 + 4026a2: 401d ands r5, r3 + 4026a4: 0bad lsrs r5, r5, #14 + 4026a6: 2d01 cmp r5, #1 + 4026a8: d029 beq.n 4026fe + 4026aa: 0295 lsls r5, r2, #10 + 4026ac: 401d ands r5, r3 + 4026ae: 0beb lsrs r3, r5, #15 + 4026b0: 2b01 cmp r3, #1 + 4026b2: d024 beq.n 4026fe + 4026b4: 7822 ldrb r2, [r4, #0] + 4026b6: 2a00 cmp r2, #0 + 4026b8: d038 beq.n 40272c + 4026ba: 1e53 subs r3, r2, #1 + 4026bc: 7023 strb r3, [r4, #0] + 4026be: 2200 movs r2, #0 + 4026c0: 6522 str r2, [r4, #80] + 4026c2: 7202 strb r2, [r0, #8] + 4026c4: 6ac8 ldr r0, [r1, #44] + 4026c6: 7a05 ldrb r5, [r0, #8] + 4026c8: 042d lsls r5, r5, #16 + 4026ca: 4e38 ldr r6, [pc, #224] (4027ac ) + 4026cc: 6035 str r5, [r6, #0] + 4026ce: 4d38 ldr r5, [pc, #224] (4027b0 ) + 4026d0: 0026 lsls r6, r4, #0 + 4026d2: 3660 adds r6, #96 + 4026d4: 67ae str r6, [r5, #120] + 4026d6: 6846 ldr r6, [r0, #4] + 4026d8: 676e str r6, [r5, #116] + 4026da: 6ce5 ldr r5, [r4, #76] + 4026dc: 2d00 cmp r5, #0 + 4026de: d018 beq.n 402712 + 4026e0: 4a33 ldr r2, [pc, #204] (4027b0 ) + 4026e2: 6bd2 ldr r2, [r2, #60] + 4026e4: 1952 adds r2, r2, r5 + 4026e6: 4d32 ldr r5, [pc, #200] (4027b0 ) + 4026e8: 646a str r2, [r5, #68] + 4026ea: 6bea ldr r2, [r5, #60] + 4026ec: 25ff movs r5, #255 + 4026ee: 006d lsls r5, r5, #1 + 4026f0: 1952 adds r2, r2, r5 + 4026f2: 4d2f ldr r5, [pc, #188] (4027b0 ) + 4026f4: 64aa str r2, [r5, #72] + 4026f6: 002a lsls r2, r5, #0 + 4026f8: 2506 movs r5, #6 + 4026fa: 6355 str r5, [r2, #52] + 4026fc: e00b b.n 402716 + +004026fe : + 4026fe: 6d21 ldr r1, [r4, #80] + 402700: 4b2d ldr r3, [pc, #180] (4027b8 ) + 402702: 400b ands r3, r1 + 402704: 6523 str r3, [r4, #80] + 402706: 7801 ldrb r1, [r0, #0] + 402708: 0749 lsls r1, r1, #29 + 40270a: 0f49 lsrs r1, r1, #29 + 40270c: 430a orrs r2, r1 + 40270e: 7002 strb r2, [r0, #0] + 402710: e01a b.n 402748 + +00402712 : + 402712: 4d27 ldr r5, [pc, #156] (4027b0 ) + 402714: 636a str r2, [r5, #52] + +00402716 : + 402716: 4a26 ldr r2, [pc, #152] (4027b0 ) + 402718: 4d26 ldr r5, [pc, #152] (4027b4 ) + 40271a: 6015 str r5, [r2, #0] + 40271c: 7802 ldrb r2, [r0, #0] + 40271e: 0752 lsls r2, r2, #29 + 402720: 0f52 lsrs r2, r2, #29 + 402722: 2508 movs r5, #8 + 402724: 4315 orrs r5, r2 + 402726: 7005 strb r5, [r0, #0] + 402728: 061b lsls r3, r3, #24 + 40272a: d10f bne.n 40274c + +0040272c : + 40272c: 6ac8 ldr r0, [r1, #44] + 40272e: 7801 ldrb r1, [r0, #0] + 402730: 0749 lsls r1, r1, #29 + 402732: 0f49 lsrs r1, r1, #29 + 402734: 2230 movs r2, #48 + 402736: 430a orrs r2, r1 + 402738: 7002 strb r2, [r0, #0] + 40273a: e005 b.n 402748 + +0040273c : + 40273c: 7801 ldrb r1, [r0, #0] + 40273e: 0749 lsls r1, r1, #29 + 402740: 0f49 lsrs r1, r1, #29 + 402742: 2240 movs r2, #64 + 402744: 430a orrs r2, r1 + 402746: 7002 strb r2, [r0, #0] + +00402748 : + 402748: f7ff fe41 bl 4023ce + +0040274c : + 40274c: 6d20 ldr r0, [r4, #80] + 40274e: 2180 movs r1, #128 + 402750: 0089 lsls r1, r1, #2 + 402752: 4001 ands r1, r0 + 402754: 0a49 lsrs r1, r1, #9 + 402756: 2901 cmp r1, #1 + 402758: d010 beq.n 40277c + 40275a: 2180 movs r1, #128 + 40275c: 02c9 lsls r1, r1, #11 + 40275e: 4001 ands r1, r0 + 402760: 0c89 lsrs r1, r1, #18 + 402762: 2901 cmp r1, #1 + 402764: d00a beq.n 40277c + 402766: 2108 movs r1, #8 + 402768: 4001 ands r1, r0 + 40276a: 08c9 lsrs r1, r1, #3 + 40276c: 2901 cmp r1, #1 + 40276e: d005 beq.n 40277c + 402770: 2180 movs r1, #128 + 402772: 0349 lsls r1, r1, #13 + 402774: 4001 ands r1, r0 + 402776: 0d08 lsrs r0, r1, #20 + 402778: 2801 cmp r0, #1 + 40277a: d10f bne.n 40279c + +0040277c : + 40277c: 6d20 ldr r0, [r4, #80] + 40277e: 490f ldr r1, [pc, #60] (4027bc ) + 402780: 4001 ands r1, r0 + 402782: 6521 str r1, [r4, #80] + 402784: 7860 ldrb r0, [r4, #1] + 402786: 0080 lsls r0, r0, #2 + 402788: 1820 adds r0, r4, r0 + 40278a: 6ac0 ldr r0, [r0, #44] + 40278c: 7801 ldrb r1, [r0, #0] + 40278e: 0749 lsls r1, r1, #29 + 402790: 0f49 lsrs r1, r1, #29 + 402792: 2230 movs r2, #48 + 402794: 430a orrs r2, r1 + 402796: 7002 strb r2, [r0, #0] + 402798: f7ff fe19 bl 4023ce + +0040279c : + 40279c: 2000 movs r0, #0 + 40279e: 9903 ldr r1, [sp, #12] + 4027a0: bc70 pop {r4, r5, r6} + 4027a2: b001 add sp, #4 + 4027a4: 4708 bx r1 + 4027a6: 46c0 nop (mov r8, r8) + +004027a8 : + 4027a8: 00405368 .word 0x00405368 + 4027ac: 8000408c .word 0x8000408c + 4027b0: 8000400c .word 0x8000400c + 4027b4: 00000a04 .word 0x00000a04 + 4027b8: ffff3ffb .word 0xffff3ffb + 4027bc: ffebfdf7 .word 0xffebfdf7 + +004027c0 : + 4027c0: b5f8 push {r3, r4, r5, r6, r7, lr} + 4027c2: 4c68 ldr r4, [pc, #416] (402964 ) + 4027c4: 7860 ldrb r0, [r4, #1] + 4027c6: 0080 lsls r0, r0, #2 + 4027c8: 1821 adds r1, r4, r0 + 4027ca: 6ac8 ldr r0, [r1, #44] + 4027cc: 7802 ldrb r2, [r0, #0] + 4027ce: 08d2 lsrs r2, r2, #3 + 4027d0: d005 beq.n 4027de + 4027d2: 1e52 subs r2, r2, #1 + 4027d4: d032 beq.n 40283c + 4027d6: 1ed2 subs r2, r2, #3 + 4027d8: d100 bne.n 4027dc + 4027da: e08c b.n 4028f6 + 4027dc: e091 b.n 402902 + +004027de : + 4027de: 2100 movs r1, #0 + 4027e0: 6521 str r1, [r4, #80] + 4027e2: 7021 strb r1, [r4, #0] + 4027e4: 2607 movs r6, #7 + 4027e6: 7a01 ldrb r1, [r0, #8] + 4027e8: 2910 cmp r1, #16 + 4027ea: d221 bcs.n 402830 + 4027ec: 4669 mov r1, sp + 4027ee: 7a00 ldrb r0, [r0, #8] + 4027f0: 7008 strb r0, [r1, #0] + 4027f2: 4d5d ldr r5, [pc, #372] (402968 ) + 4027f4: 0029 lsls r1, r5, #0 + 4027f6: 3110 adds r1, #16 + 4027f8: 0028 lsls r0, r5, #0 + 4027fa: f000 fc97 bl 40312c + 4027fe: 0007 lsls r7, r0, #0 + 402800: 4668 mov r0, sp + 402802: 7800 ldrb r0, [r0, #0] + 402804: 0081 lsls r1, r0, #2 + 402806: 1869 adds r1, r5, r1 + 402808: 690a ldr r2, [r1, #16] + 40280a: 5c29 ldrb r1, [r5, r0] + 40280c: 4668 mov r0, sp + 40280e: 7800 ldrb r0, [r0, #0] + 402810: f000 fc6c bl 4030ec + 402814: 4855 ldr r0, [pc, #340] (40296c ) + 402816: 4956 ldr r1, [pc, #344] (402970 ) + 402818: 6001 str r1, [r0, #0] + 40281a: 65a7 str r7, [r4, #88] + 40281c: 7860 ldrb r0, [r4, #1] + 40281e: 0080 lsls r0, r0, #2 + 402820: 1820 adds r0, r4, r0 + 402822: 6ac0 ldr r0, [r0, #44] + 402824: 7801 ldrb r1, [r0, #0] + 402826: 400e ands r6, r1 + 402828: 2108 movs r1, #8 + 40282a: 4331 orrs r1, r6 + 40282c: 7001 strb r1, [r0, #0] + 40282e: e06a b.n 402906 + +00402830 : + 402830: 7801 ldrb r1, [r0, #0] + 402832: 400e ands r6, r1 + 402834: 2118 movs r1, #24 + 402836: 4331 orrs r1, r6 + 402838: 7001 strb r1, [r0, #0] + 40283a: e062 b.n 402902 + +0040283c : + 40283c: 6d22 ldr r2, [r4, #80] + 40283e: 2320 movs r3, #32 + 402840: 4013 ands r3, r2 + 402842: 095a lsrs r2, r3, #5 + 402844: 2a01 cmp r2, #1 + 402846: d15e bne.n 402906 + 402848: 6d22 ldr r2, [r4, #80] + 40284a: 2320 movs r3, #32 + 40284c: 439a bics r2, r3 + 40284e: 6522 str r2, [r4, #80] + 402850: 2340 movs r3, #64 + 402852: 4013 ands r3, r2 + 402854: 099a lsrs r2, r3, #6 + 402856: 2a01 cmp r2, #1 + 402858: d124 bne.n 4028a4 + 40285a: 6d22 ldr r2, [r4, #80] + 40285c: 2340 movs r3, #64 + 40285e: 439a bics r2, r3 + 402860: 6522 str r2, [r4, #80] + 402862: 7802 ldrb r2, [r0, #0] + 402864: 0752 lsls r2, r2, #29 + 402866: 0f52 lsrs r2, r2, #29 + 402868: 2310 movs r3, #16 + 40286a: 4313 orrs r3, r2 + 40286c: 7003 strb r3, [r0, #0] + 40286e: 4841 ldr r0, [pc, #260] (402974 ) + 402870: 6800 ldr r0, [r0, #0] + 402872: 22ff movs r2, #255 + 402874: 4010 ands r0, r2 + 402876: 280f cmp r0, #15 + 402878: d201 bcs.n 40287e + 40287a: 2200 movs r2, #0 + 40287c: e004 b.n 402888 + +0040287e : + 40287e: 2865 cmp r0, #101 + 402880: d202 bcs.n 402888 + 402882: 0042 lsls r2, r0, #1 + 402884: 1812 adds r2, r2, r0 + 402886: 3a2d subs r2, #45 + +00402888 : + 402888: 6ac8 ldr r0, [r1, #44] + 40288a: 6840 ldr r0, [r0, #4] + 40288c: 7082 strb r2, [r0, #2] + 40288e: 6da0 ldr r0, [r4, #88] + 402890: 4d35 ldr r5, [pc, #212] (402968 ) + 402892: 0081 lsls r1, r0, #2 + 402894: 1869 adds r1, r5, r1 + 402896: 690a ldr r2, [r1, #16] + 402898: 5c29 ldrb r1, [r5, r0] + 40289a: 0600 lsls r0, r0, #24 + 40289c: 0e00 lsrs r0, r0, #24 + 40289e: f000 fc25 bl 4030ec + 4028a2: e02e b.n 402902 + +004028a4 : + 4028a4: 7821 ldrb r1, [r4, #0] + 4028a6: 4d30 ldr r5, [pc, #192] (402968 ) + 4028a8: 2900 cmp r1, #0 + 4028aa: d014 beq.n 4028d6 + 4028ac: 1e49 subs r1, r1, #1 + 4028ae: 7021 strb r1, [r4, #0] + 4028b0: 2100 movs r1, #0 + 4028b2: 6521 str r1, [r4, #80] + 4028b4: 7a06 ldrb r6, [r0, #8] + 4028b6: 0029 lsls r1, r5, #0 + 4028b8: 3110 adds r1, #16 + 4028ba: 0028 lsls r0, r5, #0 + 4028bc: f000 fc36 bl 40312c + 4028c0: 00b0 lsls r0, r6, #2 + 4028c2: 1828 adds r0, r5, r0 + 4028c4: 6902 ldr r2, [r0, #16] + 4028c6: 5da9 ldrb r1, [r5, r6] + 4028c8: 0030 lsls r0, r6, #0 + 4028ca: f000 fc0f bl 4030ec + 4028ce: 4827 ldr r0, [pc, #156] (40296c ) + 4028d0: 4927 ldr r1, [pc, #156] (402970 ) + 4028d2: 6001 str r1, [r0, #0] + 4028d4: e017 b.n 402906 + +004028d6 : + 4028d6: 7801 ldrb r1, [r0, #0] + 4028d8: 0749 lsls r1, r1, #29 + 4028da: 0f49 lsrs r1, r1, #29 + 4028dc: 2218 movs r2, #24 + 4028de: 430a orrs r2, r1 + 4028e0: 7002 strb r2, [r0, #0] + 4028e2: 6da0 ldr r0, [r4, #88] + 4028e4: 0081 lsls r1, r0, #2 + 4028e6: 1869 adds r1, r5, r1 + 4028e8: 690a ldr r2, [r1, #16] + 4028ea: 5c29 ldrb r1, [r5, r0] + 4028ec: 0600 lsls r0, r0, #24 + 4028ee: 0e00 lsrs r0, r0, #24 + 4028f0: f000 fbfc bl 4030ec + 4028f4: e005 b.n 402902 + +004028f6 : + 4028f6: 7801 ldrb r1, [r0, #0] + 4028f8: 0749 lsls r1, r1, #29 + 4028fa: 0f49 lsrs r1, r1, #29 + 4028fc: 2228 movs r2, #40 + 4028fe: 430a orrs r2, r1 + 402900: 7002 strb r2, [r0, #0] + +00402902 : + 402902: f7ff fd64 bl 4023ce + +00402906 : + 402906: 6d20 ldr r0, [r4, #80] + 402908: 2180 movs r1, #128 + 40290a: 0089 lsls r1, r1, #2 + 40290c: 4001 ands r1, r0 + 40290e: 0a49 lsrs r1, r1, #9 + 402910: 2901 cmp r1, #1 + 402912: d010 beq.n 402936 + 402914: 2180 movs r1, #128 + 402916: 02c9 lsls r1, r1, #11 + 402918: 4001 ands r1, r0 + 40291a: 0c89 lsrs r1, r1, #18 + 40291c: 2901 cmp r1, #1 + 40291e: d00a beq.n 402936 + 402920: 2108 movs r1, #8 + 402922: 4001 ands r1, r0 + 402924: 08c9 lsrs r1, r1, #3 + 402926: 2901 cmp r1, #1 + 402928: d005 beq.n 402936 + 40292a: 2180 movs r1, #128 + 40292c: 0349 lsls r1, r1, #13 + 40292e: 4001 ands r1, r0 + 402930: 0d08 lsrs r0, r1, #20 + 402932: 2801 cmp r0, #1 + 402934: d10f bne.n 402956 + +00402936 : + 402936: 6d20 ldr r0, [r4, #80] + 402938: 490f ldr r1, [pc, #60] (402978 ) + 40293a: 4001 ands r1, r0 + 40293c: 6521 str r1, [r4, #80] + 40293e: 7860 ldrb r0, [r4, #1] + 402940: 0080 lsls r0, r0, #2 + 402942: 1820 adds r0, r4, r0 + 402944: 6ac0 ldr r0, [r0, #44] + 402946: 7801 ldrb r1, [r0, #0] + 402948: 0749 lsls r1, r1, #29 + 40294a: 0f49 lsrs r1, r1, #29 + 40294c: 2218 movs r2, #24 + 40294e: 430a orrs r2, r1 + 402950: 7002 strb r2, [r0, #0] + 402952: f7ff fd3c bl 4023ce + +00402956 : + 402956: 2000 movs r0, #0 + 402958: b001 add sp, #4 + 40295a: 9904 ldr r1, [sp, #16] + 40295c: bcf0 pop {r4, r5, r6, r7} + 40295e: b001 add sp, #4 + 402960: 4708 bx r1 + 402962: 46c0 nop (mov r8, r8) + +00402964 : + 402964: 00405368 .word 0x00405368 + 402968: 00403c04 .word 0x00403c04 + 40296c: 8000400c .word 0x8000400c + 402970: 00000a07 .word 0x00000a07 + 402974: 80009488 .word 0x80009488 + 402978: ffebfdf7 .word 0xffebfdf7 + +0040297c : + 40297c: b510 push {r4, lr} + 40297e: 4c58 ldr r4, [pc, #352] (402ae0 ) + 402980: 7860 ldrb r0, [r4, #1] + 402982: 0080 lsls r0, r0, #2 + 402984: 1820 adds r0, r4, r0 + 402986: 6ac0 ldr r0, [r0, #44] + 402988: 7801 ldrb r1, [r0, #0] + 40298a: 08c9 lsrs r1, r1, #3 + 40298c: d004 beq.n 402998 + 40298e: 1e49 subs r1, r1, #1 + 402990: d01c beq.n 4029cc + 402992: 1ec9 subs r1, r1, #3 + 402994: d067 beq.n 402a66 + 402996: e06c b.n 402a72 + +00402998 : + 402998: 2100 movs r1, #0 + 40299a: 6521 str r1, [r4, #80] + 40299c: 7021 strb r1, [r4, #0] + 40299e: 4951 ldr r1, [pc, #324] (402ae4 ) + 4029a0: 6bc9 ldr r1, [r1, #60] + 4029a2: 6842 ldr r2, [r0, #4] + 4029a4: 7892 ldrb r2, [r2, #2] + 4029a6: 1889 adds r1, r1, r2 + 4029a8: 4a4e ldr r2, [pc, #312] (402ae4 ) + 4029aa: 6451 str r1, [r2, #68] + 4029ac: 6bd1 ldr r1, [r2, #60] + 4029ae: 6842 ldr r2, [r0, #4] + 4029b0: 7892 ldrb r2, [r2, #2] + 4029b2: 1889 adds r1, r1, r2 + 4029b4: 4a4b ldr r2, [pc, #300] (402ae4 ) + 4029b6: 6491 str r1, [r2, #72] + 4029b8: 0011 lsls r1, r2, #0 + 4029ba: 4a46 ldr r2, [pc, #280] (402ad4 ) + 4029bc: 600a str r2, [r1, #0] + 4029be: 7801 ldrb r1, [r0, #0] + 4029c0: 0749 lsls r1, r1, #29 + 4029c2: 0f49 lsrs r1, r1, #29 + 4029c4: 2208 movs r2, #8 + 4029c6: 430a orrs r2, r1 + 4029c8: 7002 strb r2, [r0, #0] + 4029ca: e054 b.n 402a76 + +004029cc : + 4029cc: 6d21 ldr r1, [r4, #80] + 4029ce: 2220 movs r2, #32 + 4029d0: 400a ands r2, r1 + 4029d2: 0951 lsrs r1, r2, #5 + 4029d4: 2901 cmp r1, #1 + 4029d6: d14e bne.n 402a76 + 4029d8: 6d21 ldr r1, [r4, #80] + 4029da: 2220 movs r2, #32 + 4029dc: 4391 bics r1, r2 + 4029de: 6521 str r1, [r4, #80] + 4029e0: 2240 movs r2, #64 + 4029e2: 400a ands r2, r1 + 4029e4: 0992 lsrs r2, r2, #6 + 4029e6: 2a01 cmp r2, #1 + 4029e8: d01f beq.n 402a2a + 4029ea: 2280 movs r2, #128 + 4029ec: 400a ands r2, r1 + 4029ee: 09d2 lsrs r2, r2, #7 + 4029f0: 2a01 cmp r2, #1 + 4029f2: d01a beq.n 402a2a + 4029f4: 2204 movs r2, #4 + 4029f6: 400a ands r2, r1 + 4029f8: 0892 lsrs r2, r2, #2 + 4029fa: 2a01 cmp r2, #1 + 4029fc: d015 beq.n 402a2a + 4029fe: 2280 movs r2, #128 + 402a00: 01d2 lsls r2, r2, #7 + 402a02: 400a ands r2, r1 + 402a04: 0b92 lsrs r2, r2, #14 + 402a06: 2a01 cmp r2, #1 + 402a08: d00f beq.n 402a2a + 402a0a: 2280 movs r2, #128 + 402a0c: 0212 lsls r2, r2, #8 + 402a0e: 400a ands r2, r1 + 402a10: 0bd1 lsrs r1, r2, #15 + 402a12: 2901 cmp r1, #1 + 402a14: d009 beq.n 402a2a + 402a16: 7821 ldrb r1, [r4, #0] + 402a18: 2900 cmp r1, #0 + 402a1a: d111 bne.n 402a40 + 402a1c: 7801 ldrb r1, [r0, #0] + 402a1e: 0749 lsls r1, r1, #29 + 402a20: 0f49 lsrs r1, r1, #29 + 402a22: 2218 movs r2, #24 + 402a24: 430a orrs r2, r1 + 402a26: 7002 strb r2, [r0, #0] + 402a28: e023 b.n 402a72 + +00402a2a : + 402a2a: 6d21 ldr r1, [r4, #80] + 402a2c: 4a2a ldr r2, [pc, #168] (402ad8 ) + 402a2e: 400a ands r2, r1 + 402a30: 6522 str r2, [r4, #80] + 402a32: 7801 ldrb r1, [r0, #0] + 402a34: 0749 lsls r1, r1, #29 + 402a36: 0f49 lsrs r1, r1, #29 + 402a38: 2210 movs r2, #16 + 402a3a: 430a orrs r2, r1 + 402a3c: 7002 strb r2, [r0, #0] + 402a3e: e018 b.n 402a72 + +00402a40 : + 402a40: 1e49 subs r1, r1, #1 + 402a42: 7021 strb r1, [r4, #0] + 402a44: 2100 movs r1, #0 + 402a46: 6521 str r1, [r4, #80] + 402a48: 4926 ldr r1, [pc, #152] (402ae4 ) + 402a4a: 6bc9 ldr r1, [r1, #60] + 402a4c: 6842 ldr r2, [r0, #4] + 402a4e: 7892 ldrb r2, [r2, #2] + 402a50: 1889 adds r1, r1, r2 + 402a52: 4a24 ldr r2, [pc, #144] (402ae4 ) + 402a54: 6451 str r1, [r2, #68] + 402a56: 6bd1 ldr r1, [r2, #60] + 402a58: 6840 ldr r0, [r0, #4] + 402a5a: 7880 ldrb r0, [r0, #2] + 402a5c: 1808 adds r0, r1, r0 + 402a5e: 6490 str r0, [r2, #72] + 402a60: 491e ldr r1, [pc, #120] (402adc ) + 402a62: 6011 str r1, [r2, #0] + 402a64: e007 b.n 402a76 + +00402a66 : + 402a66: 7801 ldrb r1, [r0, #0] + 402a68: 0749 lsls r1, r1, #29 + 402a6a: 0f49 lsrs r1, r1, #29 + 402a6c: 2228 movs r2, #40 + 402a6e: 430a orrs r2, r1 + 402a70: 7002 strb r2, [r0, #0] + +00402a72 : + 402a72: f7ff fcac bl 4023ce + +00402a76 : + 402a76: 6d20 ldr r0, [r4, #80] + 402a78: 2180 movs r1, #128 + 402a7a: 0089 lsls r1, r1, #2 + 402a7c: 4001 ands r1, r0 + 402a7e: 0a49 lsrs r1, r1, #9 + 402a80: 2901 cmp r1, #1 + 402a82: d010 beq.n 402aa6 + 402a84: 2180 movs r1, #128 + 402a86: 02c9 lsls r1, r1, #11 + 402a88: 4001 ands r1, r0 + 402a8a: 0c89 lsrs r1, r1, #18 + 402a8c: 2901 cmp r1, #1 + 402a8e: d00a beq.n 402aa6 + 402a90: 2108 movs r1, #8 + 402a92: 4001 ands r1, r0 + 402a94: 08c9 lsrs r1, r1, #3 + 402a96: 2901 cmp r1, #1 + 402a98: d005 beq.n 402aa6 + 402a9a: 2180 movs r1, #128 + 402a9c: 0349 lsls r1, r1, #13 + 402a9e: 4001 ands r1, r0 + 402aa0: 0d08 lsrs r0, r1, #20 + 402aa2: 2801 cmp r0, #1 + 402aa4: d10f bne.n 402ac6 + +00402aa6 : + 402aa6: 6d20 ldr r0, [r4, #80] + 402aa8: 490f ldr r1, [pc, #60] (402ae8 ) + 402aaa: 4001 ands r1, r0 + 402aac: 6521 str r1, [r4, #80] + 402aae: 7860 ldrb r0, [r4, #1] + 402ab0: 0080 lsls r0, r0, #2 + 402ab2: 1820 adds r0, r4, r0 + 402ab4: 6ac0 ldr r0, [r0, #44] + 402ab6: 7801 ldrb r1, [r0, #0] + 402ab8: 0749 lsls r1, r1, #29 + 402aba: 0f49 lsrs r1, r1, #29 + 402abc: 2218 movs r2, #24 + 402abe: 430a orrs r2, r1 + 402ac0: 7002 strb r2, [r0, #0] + 402ac2: f7ff fc84 bl 4023ce + +00402ac6 : + 402ac6: 46c0 nop (mov r8, r8) + +00402ac8 : + 402ac8: 2000 movs r0, #0 + 402aca: 9901 ldr r1, [sp, #4] + 402acc: bc10 pop {r4} + 402ace: b001 add sp, #4 + 402ad0: 4708 bx r1 + 402ad2: 46c0 nop (mov r8, r8) + +00402ad4 : + 402ad4: 00000a02 .word 0x00000a02 + 402ad8: ffff3f3b .word 0xffff3f3b + 402adc: 00000a02 .word 0x00000a02 + +00402ae0 : + 402ae0: 00405368 .word 0x00405368 + +00402ae4 : + 402ae4: 8000400c .word 0x8000400c + +00402ae8 : + 402ae8: ffebfdf7 .word 0xffebfdf7 + +00402aec : + 402aec: b570 push {r4, r5, r6, lr} + 402aee: 4c24 ldr r4, [pc, #144] (402b80 ) + 402af0: 7a20 ldrb r0, [r4, #8] + 402af2: 08c0 lsrs r0, r0, #3 + 402af4: 2802 cmp r0, #2 + 402af6: d135 bne.n 402b64 + 402af8: 68e0 ldr r0, [r4, #12] + 402afa: 7880 ldrb r0, [r0, #2] + 402afc: 79a5 ldrb r5, [r4, #6] + 402afe: 1961 adds r1, r4, r5 + 402b00: 7608 strb r0, [r1, #24] + 402b02: 7921 ldrb r1, [r4, #4] + 402b04: 4281 cmp r1, r0 + 402b06: d201 bcs.n 402b0c + 402b08: 7120 strb r0, [r4, #4] + 402b0a: 7165 strb r5, [r4, #5] + +00402b0c : + 402b0c: 2800 cmp r0, #0 + 402b0e: d102 bne.n 402b16 + 402b10: 79e0 ldrb r0, [r4, #7] + 402b12: 2801 cmp r0, #1 + 402b14: d110 bne.n 402b38 + +00402b16 : + 402b16: 0028 lsls r0, r5, #0 + 402b18: f000 f834 bl 402b84 + 402b1c: 71a0 strb r0, [r4, #6] + 402b1e: 2600 movs r6, #0 + 402b20: 71e6 strb r6, [r4, #7] + 402b22: 42a8 cmp r0, r5 + 402b24: d20a bcs.n 402b3c + 402b26: 70e6 strb r6, [r4, #3] + 402b28: 7960 ldrb r0, [r4, #5] + 402b2a: 6d61 ldr r1, [r4, #84] + 402b2c: f001 fa08 bl 403f40 <__iar_via_R1> + 402b30: 7126 strb r6, [r4, #4] + 402b32: 200f movs r0, #15 + 402b34: 7160 strb r0, [r4, #5] + 402b36: e001 b.n 402b3c + +00402b38 : + 402b38: 2001 movs r0, #1 + 402b3a: 71e0 strb r0, [r4, #7] + +00402b3c : + 402b3c: 2000 movs r0, #0 + 402b3e: 0021 lsls r1, r4, #0 + 402b40: 312c adds r1, #44 + +00402b42 : + 402b42: 680a ldr r2, [r1, #0] + 402b44: 0023 lsls r3, r4, #0 + 402b46: 3308 adds r3, #8 + 402b48: 429a cmp r2, r3 + 402b4a: d014 beq.n 402b76 + 402b4c: 1c40 adds r0, r0, #1 + 402b4e: 1d09 adds r1, r1, #4 + 402b50: 0602 lsls r2, r0, #24 + 402b52: 0e12 lsrs r2, r2, #24 + 402b54: 2a04 cmp r2, #4 + 402b56: d3f4 bcc.n 402b42 + 402b58: 79a1 ldrb r1, [r4, #6] + 402b5a: 3408 adds r4, #8 + 402b5c: 0020 lsls r0, r4, #0 + 402b5e: f000 ff81 bl 403a64 + 402b62: e008 b.n 402b76 + +00402b64 : + 402b64: 2805 cmp r0, #5 + 402b66: d001 beq.n 402b6c + 402b68: 2803 cmp r0, #3 + 402b6a: d104 bne.n 402b76 + +00402b6c : + 402b6c: 79a1 ldrb r1, [r4, #6] + 402b6e: 3408 adds r4, #8 + 402b70: 0020 lsls r0, r4, #0 + 402b72: f000 ff77 bl 403a64 + +00402b76 : + 402b76: 9803 ldr r0, [sp, #12] + 402b78: bc70 pop {r4, r5, r6} + 402b7a: b001 add sp, #4 + 402b7c: 4700 bx r0 + 402b7e: 46c0 nop (mov r8, r8) + +00402b80 : + 402b80: 00405368 .word 0x00405368 + +00402b84 : + 402b84: b418 push {r3, r4} + 402b86: 2200 movs r2, #0 + 402b88: 4b09 ldr r3, [pc, #36] (402bb0 ) + 402b8a: 881b ldrh r3, [r3, #0] + +00402b8c : + 402b8c: 280f cmp r0, #15 + 402b8e: d203 bcs.n 402b98 + 402b90: 1c40 adds r0, r0, #1 + 402b92: 0600 lsls r0, r0, #24 + 402b94: 0e00 lsrs r0, r0, #24 + 402b96: e000 b.n 402b9a + +00402b98 : + 402b98: 2000 movs r0, #0 + +00402b9a : + 402b9a: 2401 movs r4, #1 + 402b9c: 4084 lsls r4, r0 + 402b9e: 4223 tst r3, r4 + 402ba0: d104 bne.n 402bac + 402ba2: 1c52 adds r2, r2, #1 + 402ba4: 0614 lsls r4, r2, #24 + 402ba6: 0e24 lsrs r4, r4, #24 + 402ba8: 2c10 cmp r4, #16 + 402baa: d3ef bcc.n 402b8c + +00402bac : + 402bac: bc12 pop {r1, r4} + 402bae: 4770 bx lr + +00402bb0 : + 402bb0: 00405390 .word 0x00405390 + +00402bb4 : + 402bb4: b570 push {r4, r5, r6, lr} + 402bb6: b082 sub sp, #8 + 402bb8: 2007 movs r0, #7 + 402bba: f40d fa11 bl ffe0 + 402bbe: 481d ldr r0, [pc, #116] (402c34 ) + 402bc0: 6802 ldr r2, [r0, #0] + 402bc2: 06d0 lsls r0, r2, #27 + 402bc4: 0e40 lsrs r0, r0, #25 + 402bc6: 4b1c ldr r3, [pc, #112] (402c38 ) + 402bc8: 18c0 adds r0, r0, r3 + 402bca: 6801 ldr r1, [r0, #0] + 402bcc: 24f8 movs r4, #248 + 402bce: 0164 lsls r4, r4, #5 + 402bd0: 4014 ands r4, r2 + 402bd2: 0a22 lsrs r2, r4, #8 + 402bd4: 0092 lsls r2, r2, #2 + 402bd6: 58d2 ldr r2, [r2, r3] + 402bd8: 6002 str r2, [r0, #0] + 402bda: 4a7b ldr r2, [pc, #492] (402dc8 ) + 402bdc: 2301 movs r3, #1 + 402bde: 6013 str r3, [r2, #0] + 402be0: 6bd4 ldr r4, [r2, #60] + 402be2: 2300 movs r3, #0 + 402be4: 9300 str r3, [sp, #0] + 402be6: 2596 movs r5, #150 + 402be8: 006d lsls r5, r5, #1 + 402bea: e002 b.n 402bf2 + +00402bec : + 402bec: 9e00 ldr r6, [sp, #0] + 402bee: 1c76 adds r6, r6, #1 + 402bf0: 9600 str r6, [sp, #0] + +00402bf2 : + 402bf2: 6bd6 ldr r6, [r2, #60] + 402bf4: 1b36 subs r6, r6, r4 + 402bf6: 2e03 cmp r6, #3 + 402bf8: d202 bcs.n 402c00 + 402bfa: 9e00 ldr r6, [sp, #0] + 402bfc: 42ae cmp r6, r5 + 402bfe: d3f5 bcc.n 402bec + +00402c00 : + 402c00: 6013 str r3, [r2, #0] + 402c02: 6bd2 ldr r2, [r2, #60] + 402c04: e001 b.n 402c0a + +00402c06 : + 402c06: 9b00 ldr r3, [sp, #0] + 402c08: 1c5b adds r3, r3, #1 + +00402c0a : + 402c0a: 9300 str r3, [sp, #0] + 402c0c: 4b6e ldr r3, [pc, #440] (402dc8 ) + 402c0e: 6bdb ldr r3, [r3, #60] + 402c10: 1a9b subs r3, r3, r2 + 402c12: 2b03 cmp r3, #3 + 402c14: d202 bcs.n 402c1c + 402c16: 9b00 ldr r3, [sp, #0] + 402c18: 42ab cmp r3, r5 + 402c1a: d3f4 bcc.n 402c06 + +00402c1c : + 402c1c: 6001 str r1, [r0, #0] + 402c1e: 4807 ldr r0, [pc, #28] (402c3c ) + 402c20: 4907 ldr r1, [pc, #28] (402c40 ) + 402c22: 6001 str r1, [r0, #0] + 402c24: 2007 movs r0, #7 + 402c26: f40d f9cd bl ffc4 + 402c2a: b002 add sp, #8 + 402c2c: 9803 ldr r0, [sp, #12] + 402c2e: bc70 pop {r4, r5, r6} + 402c30: b001 add sp, #4 + 402c32: 4700 bx r0 + +00402c34 : + 402c34: 80009204 .word 0x80009204 + 402c38: 80009300 .word 0x80009300 + 402c3c: 800040c4 .word 0x800040c4 + 402c40: 0000ffff .word 0x0000ffff + +00402c44 : + 402c44: b5f8 push {r3, r4, r5, r6, r7, lr} + 402c46: 485b ldr r0, [pc, #364] (402db4 ) + 402c48: 6804 ldr r4, [r0, #0] + 402c4a: 6044 str r4, [r0, #4] + 402c4c: 4f5a ldr r7, [pc, #360] (402db8 ) + 402c4e: 7838 ldrb r0, [r7, #0] + 402c50: 1c40 adds r0, r0, #1 + 402c52: 7038 strb r0, [r7, #0] + 402c54: 2580 movs r5, #128 + 402c56: 022d lsls r5, r5, #8 + 402c58: 422c tst r4, r5 + 402c5a: d005 beq.n 402c68 + 402c5c: 4e57 ldr r6, [pc, #348] (402dbc ) + 402c5e: 6830 ldr r0, [r6, #0] + 402c60: 2101 movs r1, #1 + +00402c62 : + 402c62: 4301 orrs r1, r0 + 402c64: 6031 str r1, [r6, #0] + 402c66: e09c b.n 402da2 + +00402c68 : + 402c68: 07e0 lsls r0, r4, #31 + 402c6a: d552 bpl.n 402d12 + 402c6c: 4e53 ldr r6, [pc, #332] (402dbc ) + 402c6e: 6830 ldr r0, [r6, #0] + 402c70: 2120 movs r1, #32 + 402c72: 4301 orrs r1, r0 + 402c74: 6031 str r1, [r6, #0] + 402c76: f7ff fb7f bl 402378 + 402c7a: 4853 ldr r0, [pc, #332] (402dc8 ) + 402c7c: 6840 ldr r0, [r0, #4] + 402c7e: 0700 lsls r0, r0, #28 + 402c80: 0f00 lsrs r0, r0, #28 + 402c82: 280f cmp r0, #15 + 402c84: d900 bls.n 402c88 + 402c86: e08c b.n 402da2 + 402c88: a101 add r1, pc, #4 (adr r1, 402c90 ) + 402c8a: 5c09 ldrb r1, [r1, r0] + 402c8c: 0049 lsls r1, r1, #1 + 402c8e: 448f add pc, r1 + +00402c90 : + 402c90: 18130e07 .word 0x18130e07 + 402c94: 8888861b .word 0x8888861b + 402c98: 88882520 .word 0x88882520 + 402c9c: 3d383588 .word 0x3d383588 + +00402ca0 : + 402ca0: 6830 ldr r0, [r6, #0] + 402ca2: 2140 movs r1, #64 + 402ca4: 4301 orrs r1, r0 + 402ca6: 6031 str r1, [r6, #0] + 402ca8: 2001 movs r0, #1 + 402caa: 7078 strb r0, [r7, #1] + 402cac: e079 b.n 402da2 + +00402cae : + 402cae: f7ff ff81 bl 402bb4 + 402cb2: 6830 ldr r0, [r6, #0] + 402cb4: 2180 movs r1, #128 + 402cb6: e7d4 b.n 402c62 + +00402cb8 : + 402cb8: 6830 ldr r0, [r6, #0] + 402cba: 09e9 lsrs r1, r5, #7 + +00402cbc : + 402cbc: 4301 orrs r1, r0 + 402cbe: 6031 str r1, [r6, #0] + 402cc0: e06f b.n 402da2 + +00402cc2 : + 402cc2: 6830 ldr r0, [r6, #0] + 402cc4: 09a9 lsrs r1, r5, #6 + 402cc6: e7cc b.n 402c62 + +00402cc8 : + 402cc8: 6830 ldr r0, [r6, #0] + 402cca: 0969 lsrs r1, r5, #5 + 402ccc: 4301 orrs r1, r0 + 402cce: 6031 str r1, [r6, #0] + 402cd0: e065 b.n 402d9e + +00402cd2 : + 402cd2: f7ff ff6f bl 402bb4 + 402cd6: 6830 ldr r0, [r6, #0] + 402cd8: 0869 lsrs r1, r5, #1 + 402cda: e7c2 b.n 402c62 + +00402cdc : + 402cdc: f7ff ff6a bl 402bb4 + 402ce0: 20c0 movs r0, #192 + 402ce2: 0140 lsls r0, r0, #5 + 402ce4: 4204 tst r4, r0 + 402ce6: d005 beq.n 402cf4 + 402ce8: f7ff ff64 bl 402bb4 + 402cec: 6830 ldr r0, [r6, #0] + 402cee: 2180 movs r1, #128 + 402cf0: 4301 orrs r1, r0 + 402cf2: 6031 str r1, [r6, #0] + +00402cf4 : + 402cf4: 6830 ldr r0, [r6, #0] + 402cf6: 4305 orrs r5, r0 + 402cf8: 6035 str r5, [r6, #0] + 402cfa: e052 b.n 402da2 + +00402cfc : + 402cfc: 6830 ldr r0, [r6, #0] + 402cfe: 00a9 lsls r1, r5, #2 + 402d00: e7af b.n 402c62 + +00402d02 : + 402d02: f7ff ff57 bl 402bb4 + 402d06: 6830 ldr r0, [r6, #0] + 402d08: 00e9 lsls r1, r5, #3 + 402d0a: e7d7 b.n 402cbc + +00402d0c : + 402d0c: 6830 ldr r0, [r6, #0] + 402d0e: 0129 lsls r1, r5, #4 + 402d10: e7a7 b.n 402c62 + +00402d12 : + 402d12: 482b ldr r0, [pc, #172] (402dc0 ) + 402d14: 4020 ands r0, r4 + 402d16: 08e9 lsrs r1, r5, #3 + 402d18: 4288 cmp r0, r1 + 402d1a: d105 bne.n 402d28 + 402d1c: 4e27 ldr r6, [pc, #156] (402dbc ) + 402d1e: 6830 ldr r0, [r6, #0] + 402d20: 2108 movs r1, #8 + 402d22: 4301 orrs r1, r0 + 402d24: 6031 str r1, [r6, #0] + 402d26: e03a b.n 402d9e + +00402d28 : + 402d28: 2004 movs r0, #4 + 402d2a: 4204 tst r4, r0 + 402d2c: d01c beq.n 402d68 + 402d2e: 4826 ldr r0, [pc, #152] (402dc8 ) + 402d30: 4924 ldr r1, [pc, #144] (402dc4 ) + 402d32: 6001 str r1, [r0, #0] + 402d34: f000 fdc8 bl 4038c8 + 402d38: 2800 cmp r0, #0 + 402d3a: d109 bne.n 402d50 + 402d3c: 4822 ldr r0, [pc, #136] (402dc8 ) + 402d3e: 6f40 ldr r0, [r0, #116] + 402d40: 7840 ldrb r0, [r0, #1] + 402d42: 287e cmp r0, #126 + 402d44: d10c bne.n 402d60 + 402d46: 4820 ldr r0, [pc, #128] (402dc8 ) + 402d48: 6f40 ldr r0, [r0, #116] + 402d4a: 7880 ldrb r0, [r0, #2] + 402d4c: 28ff cmp r0, #255 + 402d4e: d107 bne.n 402d60 + +00402d50 : + 402d50: 4e1a ldr r6, [pc, #104] (402dbc ) + 402d52: 6830 ldr r0, [r6, #0] + 402d54: 2170 movs r1, #112 + 402d56: 4301 orrs r1, r0 + 402d58: 6031 str r1, [r6, #0] + 402d5a: f7ff fb0d bl 402378 + 402d5e: e020 b.n 402da2 + +00402d60 : + 402d60: 4e16 ldr r6, [pc, #88] (402dbc ) + 402d62: 6830 ldr r0, [r6, #0] + 402d64: 00e9 lsls r1, r5, #3 + 402d66: e77c b.n 402c62 + +00402d68 : + 402d68: 0521 lsls r1, r4, #20 + 402d6a: d505 bpl.n 402d78 + 402d6c: f7ff ff22 bl 402bb4 + 402d70: 4e12 ldr r6, [pc, #72] (402dbc ) + 402d72: 6830 ldr r0, [r6, #0] + 402d74: 0169 lsls r1, r5, #5 + 402d76: e7a1 b.n 402cbc + +00402d78 : + 402d78: 0301 lsls r1, r0, #12 + 402d7a: 420c tst r4, r1 + 402d7c: d003 beq.n 402d86 + 402d7e: 4e0f ldr r6, [pc, #60] (402dbc ) + 402d80: 6830 ldr r0, [r6, #0] + 402d82: 2102 movs r1, #2 + 402d84: e76d b.n 402c62 + +00402d86 : + 402d86: 2190 movs r1, #144 + 402d88: 0189 lsls r1, r1, #6 + 402d8a: 420c tst r4, r1 + 402d8c: d004 beq.n 402d98 + 402d8e: 4e0b ldr r6, [pc, #44] (402dbc ) + 402d90: 6831 ldr r1, [r6, #0] + 402d92: 4308 orrs r0, r1 + 402d94: 6030 str r0, [r6, #0] + 402d96: e004 b.n 402da2 + +00402d98 : + 402d98: 01c0 lsls r0, r0, #7 + 402d9a: 4204 tst r4, r0 + 402d9c: d001 beq.n 402da2 + +00402d9e : + 402d9e: f7ff ff09 bl 402bb4 + +00402da2 : + 402da2: 7838 ldrb r0, [r7, #0] + 402da4: 1e40 subs r0, r0, #1 + 402da6: 7038 strb r0, [r7, #0] + 402da8: b001 add sp, #4 + 402daa: 9804 ldr r0, [sp, #16] + 402dac: bcf0 pop {r4, r5, r6, r7} + 402dae: b001 add sp, #4 + 402db0: 4700 bx r0 + 402db2: 46c0 nop (mov r8, r8) + +00402db4 : + 402db4: 800040c0 .word 0x800040c0 + 402db8: 004052ab .word 0x004052ab + 402dbc: 004053b8 .word 0x004053b8 + 402dc0: 00001001 .word 0x00001001 + 402dc4: 00000201 .word 0x00000201 + +00402dc8 : + 402dc8: 8000400c .word 0x8000400c + +00402dcc : + 402dcc: 80003000 .word 0x80003000 + 402dd0: 00000019 .word 0x00000019 + 402dd4: 80003048 .word 0x80003048 + 402dd8: 00000ffb .word 0x00000ffb + +00402ddc : + 402ddc: 80003000 .word 0x80003000 + 402de0: 00000018 .word 0x00000018 + 402de4: 80003048 .word 0x80003048 + 402de8: 00000f04 .word 0x00000f04 + 402dec: 00000000 .word 0x00000000 + 402df0: 000161a8 .word 0x000161a8 + 402df4: 80003048 .word 0x80003048 + 402df8: 00000ffc .word 0x00000ffc + +00402dfc : + 402dfc: 80009000 .word 0x80009000 + 402e00: 80050100 .word 0x80050100 + +00402e04 : + 402e04: 80009400 .word 0x80009400 + 402e08: 00020017 .word 0x00020017 + 402e0c: 80009a04 .word 0x80009a04 + 402e10: 8185a0a4 .word 0x8185a0a4 + 402e14: 80009a00 .word 0x80009a00 + 402e18: 8c900025 .word 0x8c900025 + 402e1c: 00000000 .word 0x00000000 + 402e20: 00011194 .word 0x00011194 + 402e24: 80009a00 .word 0x80009a00 + 402e28: 8c900021 .word 0x8c900021 + 402e2c: 80009a00 .word 0x80009a00 + 402e30: 8c900027 .word 0x8c900027 + 402e34: 00000000 .word 0x00000000 + 402e38: 00011194 .word 0x00011194 + 402e3c: 80009a00 .word 0x80009a00 + 402e40: 8c90002b .word 0x8c90002b + 402e44: 80009a00 .word 0x80009a00 + 402e48: 8c90002f .word 0x8c90002f + 402e4c: 00000000 .word 0x00000000 + 402e50: 00011194 .word 0x00011194 + 402e54: 80009a00 .word 0x80009a00 + 402e58: 8c900000 .word 0x8c900000 + +00402e5c : + 402e5c: 80009000 .word 0x80009000 + 402e60: 80050300 .word 0x80050300 + +00402e64 : + 402e64: 80004118 .word 0x80004118 + 402e68: 00180012 .word 0x00180012 + 402e6c: 80009204 .word 0x80009204 + 402e70: 00000605 .word 0x00000605 + 402e74: 80009208 .word 0x80009208 + 402e78: 00000504 .word 0x00000504 + 402e7c: 8000920c .word 0x8000920c + 402e80: 00001111 .word 0x00001111 + 402e84: 80009210 .word 0x80009210 + 402e88: 0fc40000 .word 0x0fc40000 + 402e8c: 80009300 .word 0x80009300 + 402e90: 20046000 .word 0x20046000 + 402e94: 80009304 .word 0x80009304 + 402e98: 4005580c .word 0x4005580c + 402e9c: 80009308 .word 0x80009308 + 402ea0: 40075801 .word 0x40075801 + 402ea4: 8000930c .word 0x8000930c + 402ea8: 4005d801 .word 0x4005d801 + 402eac: 80009310 .word 0x80009310 + 402eb0: 5a45d800 .word 0x5a45d800 + 402eb4: 80009314 .word 0x80009314 + 402eb8: 4a45d800 .word 0x4a45d800 + 402ebc: 80009318 .word 0x80009318 + 402ec0: 40044000 .word 0x40044000 + 402ec4: 80009380 .word 0x80009380 + 402ec8: 00106000 .word 0x00106000 + 402ecc: 80009384 .word 0x80009384 + 402ed0: 00083806 .word 0x00083806 + 402ed4: 80009388 .word 0x80009388 + 402ed8: 00093807 .word 0x00093807 + 402edc: 8000938c .word 0x8000938c + 402ee0: 0009b804 .word 0x0009b804 + 402ee4: 80009390 .word 0x80009390 + 402ee8: 000db800 .word 0x000db800 + 402eec: 80009394 .word 0x80009394 + 402ef0: 00093802 .word 0x00093802 + 402ef4: 8000a008 .word 0x8000a008 + 402ef8: 00000015 .word 0x00000015 + 402efc: 8000a018 .word 0x8000a018 + 402f00: 00000002 .word 0x00000002 + 402f04: 8000a01c .word 0x8000a01c + 402f08: 0000000f .word 0x0000000f + 402f0c: 80009424 .word 0x80009424 + 402f10: 0000aaa0 .word 0x0000aaa0 + 402f14: 80009434 .word 0x80009434 + 402f18: 01002020 .word 0x01002020 + 402f1c: 80009438 .word 0x80009438 + 402f20: 016800fe .word 0x016800fe + 402f24: 8000943c .word 0x8000943c + 402f28: 8e578248 .word 0x8e578248 + 402f2c: 80009440 .word 0x80009440 + 402f30: 000000dd .word 0x000000dd + 402f34: 80009444 .word 0x80009444 + 402f38: 00000946 .word 0x00000946 + 402f3c: 80009448 .word 0x80009448 + 402f40: 0000035a .word 0x0000035a + 402f44: 8000944c .word 0x8000944c + 402f48: 00100010 .word 0x00100010 + 402f4c: 80009450 .word 0x80009450 + 402f50: 00000515 .word 0x00000515 + 402f54: 80009460 .word 0x80009460 + 402f58: 00397feb .word 0x00397feb + 402f5c: 80009464 .word 0x80009464 + 402f60: 00180358 .word 0x00180358 + 402f64: 8000947c .word 0x8000947c + 402f68: 00000455 .word 0x00000455 + 402f6c: 800094e0 .word 0x800094e0 + 402f70: 00000001 .word 0x00000001 + 402f74: 800094e4 .word 0x800094e4 + 402f78: 00020003 .word 0x00020003 + 402f7c: 800094e8 .word 0x800094e8 + 402f80: 00040014 .word 0x00040014 + 402f84: 800094ec .word 0x800094ec + 402f88: 00240034 .word 0x00240034 + 402f8c: 800094f0 .word 0x800094f0 + 402f90: 00440144 .word 0x00440144 + 402f94: 800094f4 .word 0x800094f4 + 402f98: 02440344 .word 0x02440344 + 402f9c: 800094f8 .word 0x800094f8 + 402fa0: 04440544 .word 0x04440544 + 402fa4: 80009470 .word 0x80009470 + 402fa8: 0ee7fc00 .word 0x0ee7fc00 + 402fac: 8000981c .word 0x8000981c + 402fb0: 00000082 .word 0x00000082 + 402fb4: 80009828 .word 0x80009828 + 402fb8: 0000002a .word 0x0000002a + +00402fbc : + 402fbc: b5f8 push {r3, r4, r5, r6, r7, lr} + 402fbe: 0006 lsls r6, r0, #0 + 402fc0: 000c lsls r4, r1, #0 + 402fc2: 0015 lsls r5, r2, #0 + 402fc4: 4f39 ldr r7, [pc, #228] (4030ac ) // set r7 to *(4030ac: .word 0x004053f0) 004053f0 : + 402fc6: 21fa movs r1, #250 + 402fc8: 0089 lsls r1, r1, #2 + 402fca: f7fd fcc1 bl 400950 + 402fce: 65b8 str r0, [r7, #88] // gRadioTOCCal2_N[88] + 402fd0: 4837 ldr r0, [pc, #220] (4030b0 ) // r0 gets 4030b0: 016e3600 .word 0x016e3600 = 240000000 + 402fd2: 4286 cmp r6, r0 + 402fd4: d001 beq.n 402fda // test for 24MHZ + 402fd6: 617c str r4, [r7, #20] // gRadioTOCCal2_N[20] + 402fd8: 61fd str r5, [r7, #28] // gRadioTOCCal2_N[28] + 402fda: 4c36 ldr r4, [pc, #216] (4030b4 ) //endif 4030b4: .word 0x00402dcc buck_enable + 402fdc: 4d70 ldr r5, [pc, #448] (4031a0 ) // 0x0040544c ram_init_val + 402fde: 7928 ldrb r0, [r5, #4] // maybe this is a return + 402fe0: 2801 cmp r0, #1 // check if its true ? + 402fe2: d106 bne.n 402ff2 // and skip stuff (to 2ff2) assume skip we have 24MHz + 402fe4: 4834 ldr r0, [pc, #208] (4030b8 ) // 4030b8: .word 0x00000f7b + 402fe6: 6378 str r0, [r7, #52] // what's r7? put f7b into gRadioTOCCal2_None24Mhz_c[52] + 402fe8: 3858 subs r0, #88 + 402fea: 6368 str r0, [r5, #52] // what's r5? maybe ram_init_val[52] + 402fec: 2110 movs r1, #16 + 402fee: 0020 lsls r0, r4, #0 + 402ff0: e009 b.n 403006 + 402ff2: 7968 ldrb r0, [r5, #5] // what's r5? looks like ram_init_val[5] + 402ff4: 2801 cmp r0, #1 // another test. + 402ff6: d108 bne.n 40300a // maybe skip to there + 402ff8: 4830 ldr r0, [pc, #192] (4030bc ) // 4030bc: 00000f7c .word 0x00000f7c + 402ffa: 6378 str r0, [r7, #52] // put f7c into gRadioTOCCal2_None24Mhz_c[52] + 402ffc: 3878 subs r0, #120 + 402ffe: 6368 str r0, [r5, #52] // subtract 120 and put it into ram_init_val[52] + 403000: 2120 movs r1, #32 + 403002: 0020 lsls r0, r4, #0 + 403004: 3010 adds r0, #16 + 403006: f000 f96d bl 4032e4 // call InitFromMemory with setup vals? 32 bytes of buck_enable+16? + 40300a: 2128 movs r1, #40 // chould have come from a skip + 40300c: 0038 lsls r0, r7, #0 + 40300e: 3030 adds r0, #48 + 403010: f000 f968 bl 4032e4 // 40 bytes of gRadioTOCCal2_None24Mhz+48? + 403014: 4826 ldr r0, [pc, #152] (4030b0 ) // 4030b0: 016e3600 .word 0x016e3600 + 403016: 4286 cmp r6, r0 + 403018: d103 bne.n 403022 // another test for 24MHz + 40301a: 2108 movs r1, #8 + 40301c: 0020 lsls r0, r4, #0 + 40301e: 3030 adds r0, #48 + 403020: e001 b.n 403026 // goto endif + 403022: 2130 movs r1, #48 // else, guissing else is for not 24MHz since r7 is involved + 403024: 0038 lsls r0, r7, #0 + 403026: f000 f95d bl 4032e4 // endif, do InitFromMemory, 8 bytes from + 40302a: 2158 movs r1, #88 + 40302c: 0020 lsls r0, r4, #0 + 40302e: 3038 adds r0, #56 + 403030: f000 f958 bl 4032e4 // do another + 403034: 481e ldr r0, [pc, #120] (4030b0 ) + 403036: 4286 cmp r6, r0 // check for 24MHZ + 403038: d004 beq.n 403044 + 40303a: 2108 movs r1, #8 + 40303c: 0020 lsls r0, r4, #0 + 40303e: 3090 adds r0, #144 + 403040: f000 f950 bl 4032e4 // goto endif + 403044: 2120 movs r1, #32 // else + 403046: 0028 lsls r0, r5, #0 + 403048: 3018 adds r0, #24 + 40304a: f000 f94b bl 4032e4 // endif + 40304e: 21ac movs r1, #172 + 403050: 0049 lsls r1, r1, #1 + 403052: 0020 lsls r0, r4, #0 + 403054: 3098 adds r0, #152 + 403056: f000 f945 bl 4032e4 // another + 40305a: 20f8 movs r0, #248 // r0 gets 0xf8 + 40305c: 0240 lsls r0, r0, #9 // r0 is now 0x1F000 + 40305e: f000 f8db bl 403218 // from flash --- this might be the regreplacment since that's in codespace... + 403062: f000 f82f bl 4030c4 // looks like this happens... + 403066: 7928 ldrb r0, [r5, #4] + 403068: 2801 cmp r0, #1 + 40306a: d101 bne.n 403070 + 40306c: 2110 movs r1, #16 + 40306e: e004 b.n 40307a + 403070: 7968 ldrb r0, [r5, #5] + 403072: 2801 cmp r0, #1 + 403074: d104 bne.n 403080 + 403076: 2120 movs r1, #32 + 403078: 3410 adds r4, #16 + 40307a: 0020 lsls r0, r4, #0 + 40307c: f000 f932 bl 4032e4 + 403080: 480f ldr r0, [pc, #60] (4030c0 ) + 403082: f000 f881 bl 403188 + 403086: 2400 movs r4, #0 + 403088: 78e9 ldrb r1, [r5, #3] + 40308a: 0620 lsls r0, r4, #24 + 40308c: 0e00 lsrs r0, r0, #24 + 40308e: f000 f86d bl 40316c + 403092: 1929 adds r1, r5, r4 + 403094: 7208 strb r0, [r1, #8] + 403096: 1c64 adds r4, r4, #1 + 403098: 0620 lsls r0, r4, #24 + 40309a: 0e00 lsrs r0, r0, #24 + 40309c: 2810 cmp r0, #16 + 40309e: d3f3 bcc.n 403088 + 4030a0: b001 add sp, #4 + 4030a2: 9804 ldr r0, [sp, #16] + 4030a4: bcf0 pop {r4, r5, r6, r7} + 4030a6: b001 add sp, #4 + 4030a8: 4700 bx r0 + 4030aa: 46c0 nop (mov r8, r8) + 4030ac: 004053f0 .word 0x004053f0 + 4030b0: 016e3600 .word 0x016e3600 + 4030b4: 00402dcc .word 0x00402dcc + 4030b8: 00000f7b .word 0x00000f7b + 4030bc: 00000f7c .word 0x00000f7c + 4030c0: 004052a0 .word 0x004052a0 + +004030c4 : + 4030c4: 4806 ldr r0, [pc, #24] (4030e0 ) // r0 gets base 0x80009a00 + 4030c6: 6881 ldr r1, [r0, #8] // r1 gets *(0x80009a08) + 4030c8: 4806 ldr r0, [pc, #24] (4030e4 ) // r0 gets 0x0000f7df + 4030ca: 4308 orrs r0, r1 // or them, r0 has it + 4030cc: 4904 ldr r1, [pc, #16] (4030e0 ) // r1 gets base 0x80009a00 + 4030ce: 6088 str r0, [r1, #8] // put r0 into 0x80009a08 + 4030d0: 0008 lsls r0, r1, #0 // r0 gets r1, r0 is the base now + 4030d2: 4905 ldr r1, [pc, #20] (4030e8 ) // r1 gets 0x00ffffff + 4030d4: 60c1 str r1, [r0, #12] // r1 gets base+12 + 4030d6: 0b09 lsrs r1, r1, #12 // r1 << 12 + 4030d8: 6101 str r1, [r0, #16] // put r1 base+16 + 4030da: 2110 movs r1, #16 // r1 gets 16 + 4030dc: 6001 str r1, [r0, #0] // put r1 in the base + 4030de: 4770 bx lr // return + 4030e0: 80009a00 .word 0x80009a00 + 4030e4: 0000f7df .word 0x0000f7df + 4030e8: 00ffffff .word 0x00ffffff + +004030ec : + 4030ec: b430 push {r4, r5} + 4030ee: 4b1d ldr r3, [pc, #116] (403164 ) + 4030f0: 681c ldr r4, [r3, #0] + 4030f2: 4d1d ldr r5, [pc, #116] (403168 ) + 4030f4: 4025 ands r5, r4 + 4030f6: 601d str r5, [r3, #0] + 4030f8: 60d9 str r1, [r3, #12] + 4030fa: 611a str r2, [r3, #16] + 4030fc: 6b19 ldr r1, [r3, #48] + 4030fe: 2202 movs r2, #2 + 403100: 430a orrs r2, r1 + 403102: 631a str r2, [r3, #48] + 403104: 6b19 ldr r1, [r3, #48] + 403106: 2204 movs r2, #4 + 403108: 430a orrs r2, r1 + 40310a: 631a str r2, [r3, #48] + 40310c: 0011 lsls r1, r2, #0 + 40310e: 4a06 ldr r2, [pc, #24] (403128 ) + 403110: 400a ands r2, r1 + 403112: 4923 ldr r1, [pc, #140] (4031a0 ) + 403114: 1808 adds r0, r1, r0 + 403116: 7a00 ldrb r0, [r0, #8] + 403118: 0200 lsls r0, r0, #8 + 40311a: 21f8 movs r1, #248 + 40311c: 0149 lsls r1, r1, #5 + 40311e: 4001 ands r1, r0 + 403120: 4311 orrs r1, r2 + 403122: 6319 str r1, [r3, #48] + 403124: bc30 pop {r4, r5} + 403126: 4770 bx lr + 403128: ffffe0ff .word 0xffffe0ff + +0040312c : + 40312c: b430 push {r4, r5} + 40312e: 0002 lsls r2, r0, #0 + 403130: 20ff movs r0, #255 + 403132: 2300 movs r3, #0 + 403134: 5cd4 ldrb r4, [r2, r3] + 403136: 4d0a ldr r5, [pc, #40] (403160 ) + 403138: 682d ldr r5, [r5, #0] + 40313a: 42ac cmp r4, r5 + 40313c: d107 bne.n 40314e + 40313e: 009c lsls r4, r3, #2 + 403140: 590c ldr r4, [r1, r4] + 403142: 4d07 ldr r5, [pc, #28] (403160 ) + 403144: 686d ldr r5, [r5, #4] + 403146: 42ac cmp r4, r5 + 403148: d101 bne.n 40314e + 40314a: 0018 lsls r0, r3, #0 + 40314c: e004 b.n 403158 + 40314e: 1c5b adds r3, r3, #1 + 403150: 061c lsls r4, r3, #24 + 403152: 0e24 lsrs r4, r4, #24 + 403154: 2c10 cmp r4, #16 + 403156: d3ed bcc.n 403134 + 403158: 0600 lsls r0, r0, #24 + 40315a: 0e00 lsrs r0, r0, #24 + 40315c: bc30 pop {r4, r5} + 40315e: 4770 bx lr + 403160: 8000980c .word 0x8000980c + 403164: 80009800 .word 0x80009800 + 403168: bfffffff .word 0xbfffffff + +0040316c : + 40316c: 4a04 ldr r2, [pc, #16] (403180 ) + 40316e: 4350 muls r0, r2 + 403170: 0589 lsls r1, r1, #22 + 403172: 1840 adds r0, r0, r1 + 403174: 4903 ldr r1, [pc, #12] (403184 ) + 403176: 1840 adds r0, r0, r1 + 403178: 1640 asrs r0, r0, #25 + 40317a: 0600 lsls r0, r0, #24 + 40317c: 0e00 lsrs r0, r0, #24 + 40317e: 4770 bx lr + 403180: 00dfbe77 .word 0x00dfbe77 + 403184: 023126e9 .word 0x023126e9 + +00403188 : + 403188: 4905 ldr r1, [pc, #20] (4031a0 ) + 40318a: 7802 ldrb r2, [r0, #0] + 40318c: 700a strb r2, [r1, #0] + 40318e: 7842 ldrb r2, [r0, #1] + 403190: 704a strb r2, [r1, #1] + 403192: 7882 ldrb r2, [r0, #2] + 403194: 708a strb r2, [r1, #2] + 403196: 1cc0 adds r0, r0, #3 + 403198: 7800 ldrb r0, [r0, #0] + 40319a: 70c8 strb r0, [r1, #3] + 40319c: 4770 bx lr + 40319e: 0000 lsls r0, r0, #0 + 4031a0: 0040544c .word 0x0040544c + +004031a4 : + 4031a4: 6801 ldr r1, [r0, #0] // r1 gets where r0 points + 4031a6: 1d00 adds r0, r0, #4 // increment pointer by 4 bytes + 4031a8: 4a17 ldr r2, [pc, #92] (403208 ) //r2 gets 403208: 00140001 .word 0x00140001 + 4031aa: 4291 cmp r1, r2 // compare r1 with r2 + 4031ac: d303 bcc.n 4031b6 //branch to 1: if lower + 4031ae: 6800 ldr r0, [r0, #0] // get where r0+4 points + 4031b0: 6008 str r0, [r1, #0] // store that where r1 points (load an addr/data pair like 80009000 aabbccddeeff) + 4031b2: 2002 movs r0, #2 // r0 gets 2 + 4031b4: 4770 bx lr // return + 4031b6: 2910 cmp r1, #16 // 1: compare r1 and 16 + 4031b8: d215 bcs.n 4031e6 // branch to 2: if high or equal + 4031ba: 2900 cmp r1, #0 // check if zero (r1 is address?) + 4031bc: d106 bne.n 4031cc // branch to 3: to if != 0 + 4031be: 6800 ldr r0, [r0, #0] + 4031c0: 0880 lsrs r0, r0, #2 + 4031c2: 0001 lsls r1, r0, #0 + 4031c4: 1e48 subs r0, r1, #1 + 4031c6: 2900 cmp r1, #0 + 4031c8: d1fb bne.n 4031c2 + 4031ca: e7f2 b.n 4031b2 + 4031cc: 2901 cmp r1, #1 // 3: + 4031ce: d118 bne.n 403202 + 4031d0: 6802 ldr r2, [r0, #0] + 4031d2: 6841 ldr r1, [r0, #4] + 4031d4: 3008 adds r0, #8 + 4031d6: 680b ldr r3, [r1, #0] + 4031d8: 4393 bics r3, r2 + 4031da: 6800 ldr r0, [r0, #0] + 4031dc: 4002 ands r2, r0 + 4031de: 431a orrs r2, r3 + 4031e0: 600a str r2, [r1, #0] + 4031e2: 2004 movs r0, #4 + 4031e4: 4770 bx lr + 4031e6: 4a09 ldr r2, [pc, #36] (40320c ) //2: + 4031e8: 4291 cmp r1, r2 + 4031ea: d20a bcs.n 403202 + 4031ec: 4a08 ldr r2, [pc, #32] (403210 ) + 4031ee: 4291 cmp r1, r2 + 4031f0: d007 beq.n 403202 + 4031f2: 0909 lsrs r1, r1, #4 + 4031f4: 1e49 subs r1, r1, #1 + 4031f6: 0609 lsls r1, r1, #24 + 4031f8: 0e09 lsrs r1, r1, #24 + 4031fa: 4a06 ldr r2, [pc, #24] (403214 ) + 4031fc: 6800 ldr r0, [r0, #0] + 4031fe: 5450 strb r0, [r2, r1] + 403200: e7d7 b.n 4031b2 + 403202: 2000 movs r0, #0 + 403204: 4770 bx lr + 403206: 46c0 nop (mov r8, r8) + 403208: 00140001 .word 0x00140001 + 40320c: 0000fff1 .word 0x0000fff1 + 403210: 00000e0f .word 0x00000e0f + 403214: 004052a0 .word 0x004052a0 + +00403218 : + 403218: b570 push {r4, r5, r6, lr} + 40321a: b08a sub sp, #40 + 40321c: 0006 lsls r6, r0, #0 + 40321e: a804 add r0, sp, #16 + 403220: 2102 movs r1, #2 + 403222: 7001 strb r1, [r0, #0] + 403224: 2101 movs r1, #1 + 403226: 7101 strb r1, [r0, #4] + 403228: f400 fce4 bl 3bf4 + 40322c: 482b ldr r0, [pc, #172] (4032dc ) + 40322e: 6800 ldr r0, [r0, #0] + 403230: 2107 movs r1, #7 + 403232: f7fd fb8d bl 400950 + 403236: 9001 str r0, [sp, #4] + 403238: 9801 ldr r0, [sp, #4] + 40323a: 1e41 subs r1, r0, #1 + 40323c: 9101 str r1, [sp, #4] + 40323e: 2800 cmp r0, #0 + 403240: d1fa bne.n 403238 + 403242: 4669 mov r1, sp + 403244: f403 fd38 bl 6cb8 + 403248: 2800 cmp r0, #0 + 40324a: d103 bne.n 403254 + 40324c: 4668 mov r0, sp + 40324e: 7800 ldrb r0, [r0, #0] + 403250: 2800 cmp r0, #0 + 403252: d101 bne.n 403258 + 403254: 2000 movs r0, #0 + 403256: e03e b.n 4032d6 + 403258: 2000 movs r0, #0 + 40325a: f403 ff13 bl 7084 + 40325e: 2008 movs r0, #8 + 403260: b501 push {r0, lr} + 403262: 0033 lsls r3, r6, #0 + 403264: aa04 add r2, sp, #16 + 403266: a802 add r0, sp, #8 + 403268: 7801 ldrb r1, [r0, #0] + 40326a: 2000 movs r0, #0 + 40326c: f403 fd7c bl 6d68 + 403270: b002 add sp, #8 + 403272: 2800 cmp r0, #0 + 403274: d109 bne.n 40328a + 403276: 9802 ldr r0, [sp, #8] + 403278: 4919 ldr r1, [pc, #100] (4032e0 ) + 40327a: 4288 cmp r0, r1 + 40327c: d105 bne.n 40328a + 40327e: a802 add r0, sp, #8 + 403280: 88c1 ldrh r1, [r0, #6] + 403282: 22ff movs r2, #255 + 403284: 1c92 adds r2, r2, #2 + 403286: 4291 cmp r1, r2 + 403288: d303 bcc.n 403292 + 40328a: 2001 movs r0, #1 + 40328c: f403 fefa bl 7084 + 403290: e7e0 b.n 403254 + 403292: 2408 movs r4, #8 + 403294: 8885 ldrh r5, [r0, #4] + 403296: 1f2d subs r5, r5, #4 + 403298: e006 b.n 4032a8 + 40329a: a806 add r0, sp, #24 + 40329c: f7ff ff82 bl 4031a4 + 4032a0: 2800 cmp r0, #0 + 4032a2: d00f beq.n 4032c4 + 4032a4: 0080 lsls r0, r0, #2 + 4032a6: 1824 adds r4, r4, r0 + 4032a8: 42ac cmp r4, r5 + 4032aa: d210 bcs.n 4032ce + 4032ac: 2010 movs r0, #16 + 4032ae: b501 push {r0, lr} + 4032b0: 1933 adds r3, r6, r4 + 4032b2: aa08 add r2, sp, #32 + 4032b4: a802 add r0, sp, #8 + 4032b6: 7801 ldrb r1, [r0, #0] + 4032b8: 2000 movs r0, #0 + 4032ba: f403 fd55 bl 6d68 + 4032be: b002 add sp, #8 + 4032c0: 2800 cmp r0, #0 + 4032c2: d0ea beq.n 40329a + 4032c4: 2001 movs r0, #1 + 4032c6: f403 fedd bl 7084 + 4032ca: 0020 lsls r0, r4, #0 + 4032cc: e003 b.n 4032d6 + 4032ce: 2001 movs r0, #1 + 4032d0: f403 fed8 bl 7084 + 4032d4: 1d20 adds r0, r4, #4 + 4032d6: b00a add sp, #40 + 4032d8: e01c b.n 403314 + 4032da: 46c0 nop (mov r8, r8) + 4032dc: 00405448 .word 0x00405448 + 4032e0: 00000abc .word 0x00000abc + +004032e4 : + 4032e4: b570 push {r4, r5, r6, lr} + 4032e6: 0005 lsls r5, r0, #0 // r5 is first arg + 4032e8: 000c lsls r4, r1, #0 // r4 is second arg + 4032ea: 2600 movs r6, #0 // r6 gets 0 + 4032ec: 2d00 cmp r5, #0 // if r5 is zero + 4032ee: d001 beq.n 4032f4 // then branch to 1 + 4032f0: 0760 lsls r0, r4, #29 // else r4<<29 what does this do to z? + 4032f2: d002 beq.n 4032fa // branch to 2: if z is set + 4032f4: 2000 movs r0, #0 // 1: r0 get 0 + 4032f6: e00c b.n 403312 // goto end: + 4032f8: 1836 adds r6, r6, r0 // loop: r6 = r6 + r0 + 4032fa: 08a0 lsrs r0, r4, #2 // 2: r0 = r4 >> 2 + 4032fc: 4286 cmp r6, r0 // compare r6 and r0 + 4032fe: d207 bcs.n 403310 // branch to 3: if higher or same + 403300: 00b0 lsls r0, r6, #2 // r0 = r6 << 2 + 403302: 1828 adds r0, r5, r0 // r0 = r5 + r0 + 403304: f7ff ff4e bl 4031a4 // call InitExecturEntry (maybe this does the copy?) + 403308: 2800 cmp r0, #0 // compare r0 to 0 + 40330a: d1f5 bne.n 4032f8 // if not 0 branch to loop: + 40330c: 0030 lsls r0, r6, #0 // r0 = r6 + 40330e: e000 b.n 403312 // goto end: + 403310: 00b0 lsls r0, r6, #2 // 3: r0 = r6 << 2 + 403312: 46c0 nop (mov r8, r8) // end: + 403314: 9903 ldr r1, [sp, #12] + 403316: bc70 pop {r4, r5, r6} + 403318: b001 add sp, #4 + 40331a: 4708 bx r1 + +0040331c : + 40331c: b408 push {r3} + 40331e: 4b02 ldr r3, [pc, #8] (403328 ) + 403320: 469c mov ip, r3 + 403322: bc08 pop {r3} + 403324: 4760 bx ip + 403326: 46c0 nop (mov r8, r8) + 403328: 00002c4d .word 0x00002c4d + +0040332c : + 40332c: b408 push {r3} + 40332e: 4b02 ldr r3, [pc, #8] (403338 ) + 403330: 469c mov ip, r3 + 403332: bc08 pop {r3} + 403334: 4760 bx ip + 403336: 46c0 nop (mov r8, r8) + 403338: 00002ccd .word 0x00002ccd + +0040333c : + 40333c: b408 push {r3} + 40333e: 4b02 ldr r3, [pc, #8] (403348 ) + 403340: 469c mov ip, r3 + 403342: bc08 pop {r3} + 403344: 4760 bx ip + 403346: 46c0 nop (mov r8, r8) + 403348: 00002f21 .word 0x00002f21 + +0040334c : + 40334c: b408 push {r3} + 40334e: 4b02 ldr r3, [pc, #8] (403358 ) + 403350: 469c mov ip, r3 + 403352: bc08 pop {r3} + 403354: 4760 bx ip + 403356: 46c0 nop (mov r8, r8) + 403358: 00002e59 .word 0x00002e59 + +0040335c : + 40335c: b408 push {r3} + 40335e: 4b02 ldr r3, [pc, #8] (403368 ) + 403360: 469c mov ip, r3 + 403362: bc08 pop {r3} + 403364: 4760 bx ip + 403366: 46c0 nop (mov r8, r8) + 403368: 00002f71 .word 0x00002f71 + +0040336c : + 40336c: b408 push {r3} + 40336e: 4b02 ldr r3, [pc, #8] (403378 ) + 403370: 469c mov ip, r3 + 403372: bc08 pop {r3} + 403374: 4760 bx ip + 403376: 46c0 nop (mov r8, r8) + 403378: 00002fb9 .word 0x00002fb9 + +0040337c : + 40337c: b408 push {r3} + 40337e: 4b02 ldr r3, [pc, #8] (403388 ) + 403380: 469c mov ip, r3 + 403382: bc08 pop {r3} + 403384: 4760 bx ip + 403386: 46c0 nop (mov r8, r8) + 403388: 00003079 .word 0x00003079 + +0040338c : + 40338c: b510 push {r4, lr} + 40338e: b084 sub sp, #16 + 403390: 0004 lsls r4, r0, #0 + 403392: f000 f841 bl 403418 + 403396: 2000 movs r0, #0 + 403398: a902 add r1, sp, #8 + 40339a: 8088 strh r0, [r1, #4] + 40339c: 2296 movs r2, #150 + 40339e: 0212 lsls r2, r2, #8 + 4033a0: 9202 str r2, [sp, #8] + 4033a2: 80c8 strh r0, [r1, #6] + 4033a4: 4918 ldr r1, [pc, #96] (403408 ) + 4033a6: 2001 movs r0, #1 + 4033a8: f40c fdbc bl ff24 + 4033ac: 2100 movs r1, #0 + 4033ae: 2001 movs r0, #1 + 4033b0: f40c fd9a bl fee8 + 4033b4: 2001 movs r0, #1 + 4033b6: f40c fe05 bl ffc4 + 4033ba: 4914 ldr r1, [pc, #80] (40340c ) + 4033bc: 2000 movs r0, #0 + 4033be: f7ff ffad bl 40331c + 4033c2: a902 add r1, sp, #8 + 4033c4: 2000 movs r0, #0 + 4033c6: f7ff ffb1 bl 40332c + 4033ca: 2105 movs r1, #5 + 4033cc: 2000 movs r0, #0 + 4033ce: f7ff ffb5 bl 40333c + 4033d2: 2105 movs r1, #5 + 4033d4: 2000 movs r0, #0 + 4033d6: f7ff ffb9 bl 40334c + 4033da: 480d ldr r0, [pc, #52] (403410 ) + 4033dc: 9001 str r0, [sp, #4] + 4033de: 480d ldr r0, [pc, #52] (403414 ) + 4033e0: 9000 str r0, [sp, #0] + 4033e2: 4669 mov r1, sp + 4033e4: 2000 movs r0, #0 + 4033e6: f7ff ffb9 bl 40335c + 4033ea: 2000 movs r0, #0 + 4033ec: f7fd fa90 bl 400910 + 4033f0: 2301 movs r3, #1 + 4033f2: 2204 movs r2, #4 + 4033f4: 0021 lsls r1, r4, #0 + 4033f6: 2000 movs r0, #0 + 4033f8: f7ff ffb8 bl 40336c + 4033fc: b004 add sp, #16 + 4033fe: 9801 ldr r0, [sp, #4] + 403400: bc10 pop {r4} + 403402: b001 add sp, #4 + 403404: 4700 bx r0 + 403406: 46c0 nop (mov r8, r8) + +00403408 : + 403408: 00003275 .word 0x00003275 + 40340c: 00005dc0 .word 0x00005dc0 + 403410: 0040346f .word 0x0040346f + 403414: 0040346d .word 0x0040346d + +00403418 : + 403418: 20a0 movs r0, #160 + 40341a: 0280 lsls r0, r0, #10 + 40341c: 4912 ldr r1, [pc, #72] (403468 ) + 40341e: 6a09 ldr r1, [r1, #32] + 403420: 4301 orrs r1, r0 + 403422: 4a11 ldr r2, [pc, #68] (403468 ) + 403424: 6211 str r1, [r2, #32] + 403426: 0011 lsls r1, r2, #0 + 403428: 680a ldr r2, [r1, #0] + 40342a: 4302 orrs r2, r0 + 40342c: 600a str r2, [r1, #0] + 40342e: 6989 ldr r1, [r1, #24] + 403430: 4a0c ldr r2, [pc, #48] (403464 ) + 403432: 400a ands r2, r1 + 403434: 490c ldr r1, [pc, #48] (403468 ) + 403436: 618a str r2, [r1, #24] + 403438: 6508 str r0, [r1, #80] + 40343a: 0008 lsls r0, r1, #0 + 40343c: 21a0 movs r1, #160 + 40343e: 0249 lsls r1, r1, #9 + 403440: 6481 str r1, [r0, #72] + 403442: 6880 ldr r0, [r0, #8] + 403444: 0100 lsls r0, r0, #4 + 403446: 0900 lsrs r0, r0, #4 + 403448: 4907 ldr r1, [pc, #28] (403468 ) + 40344a: 22a0 movs r2, #160 + 40344c: 05d2 lsls r2, r2, #23 + 40344e: 4302 orrs r2, r0 + 403450: 608a str r2, [r1, #8] + 403452: 68c8 ldr r0, [r1, #12] + 403454: 210f movs r1, #15 + 403456: 4388 bics r0, r1 + 403458: 4903 ldr r1, [pc, #12] (403468 ) + 40345a: 2205 movs r2, #5 + 40345c: 4302 orrs r2, r0 + 40345e: 60ca str r2, [r1, #12] + 403460: 4770 bx lr + 403462: 46c0 nop (mov r8, r8) + +00403464 : + 403464: fffd7fff .word 0xfffd7fff + +00403468 : + 403468: 80000010 .word 0x80000010 + +0040346c : + 40346c: e000 b.n 403470 + +0040346e : + 40346e: 4770 bx lr + +00403470 : + 403470: 4915 ldr r1, [pc, #84] (4034c8 ) + 403472: 2201 movs r2, #1 + 403474: 704a strb r2, [r1, #1] + 403476: 8842 ldrh r2, [r0, #2] + 403478: 804a strh r2, [r1, #2] + 40347a: 7800 ldrb r0, [r0, #0] + 40347c: 7008 strb r0, [r1, #0] + 40347e: 4770 bx lr + +00403480 : + 403480: b579 push {r0, r3, r4, r5, r6, lr} + 403482: b082 sub sp, #8 + 403484: 2500 movs r5, #0 + 403486: 2696 movs r6, #150 + 403488: 0076 lsls r6, r6, #1 + +0040348a : + 40348a: 9902 ldr r1, [sp, #8] + 40348c: 1948 adds r0, r1, r5 + 40348e: 7801 ldrb r1, [r0, #0] + 403490: 2900 cmp r1, #0 + 403492: d013 beq.n 4034bc + 403494: 4669 mov r1, sp + 403496: 7800 ldrb r0, [r0, #0] + 403498: 7008 strb r0, [r1, #0] + 40349a: 1c6d adds r5, r5, #1 + 40349c: 062d lsls r5, r5, #24 + 40349e: 0e2d lsrs r5, r5, #24 + 4034a0: 2400 movs r4, #0 + +004034a2 : + 4034a2: 2201 movs r2, #1 + 4034a4: 4669 mov r1, sp + 4034a6: 2000 movs r0, #0 + 4034a8: f7ff ff68 bl 40337c + 4034ac: 2800 cmp r0, #0 + 4034ae: d0ec beq.n 40348a + 4034b0: 42b4 cmp r4, r6 + 4034b2: d2ea bcs.n 40348a + 4034b4: 1c64 adds r4, r4, #1 + 4034b6: 0424 lsls r4, r4, #16 + 4034b8: 0c24 lsrs r4, r4, #16 + 4034ba: e7f2 b.n 4034a2 + +004034bc : + 4034bc: b004 add sp, #16 + 4034be: 9803 ldr r0, [sp, #12] + 4034c0: bc70 pop {r4, r5, r6} + 4034c2: b001 add sp, #4 + 4034c4: 4700 bx r0 + ... + +004034c8 : + 4034c8: 004052a4 .word 0x004052a4 + +004034cc : + 4034cc: e59fc000 ldr ip, [pc, #0] ; 4034d4 + 4034d0: e12fff1c bx ip + 4034d4: 00403f3d .word 0x00403f3d + +004034d8 : + 4034d8: e59fc000 ldr ip, [pc, #0] ; 4034e0 + 4034dc: e12fff1c bx ip + 4034e0: 00400a29 .word 0x00400a29 + +004034e4 <__start_>: + 4034e4: e59f1100 ldr r1, [pc, #256] ; 4035ec <_?0> + 4034e8: e3a000d3 mov r0, #211 ; 0xd3 + 4034ec: e121f000 msr CPSR_c, r0 + 4034f0: e2811f40 add r1, r1, #256 ; 0x100 + 4034f4: e1a0d001 mov sp, r1 + 4034f8: e3a000d2 mov r0, #210 ; 0xd2 + 4034fc: e121f000 msr CPSR_c, r0 + 403500: e2811e40 add r1, r1, #1024 ; 0x400 + 403504: e1a0d001 mov sp, r1 + 403508: e3a000d1 mov r0, #209 ; 0xd1 + 40350c: e121f000 msr CPSR_c, r0 + 403510: e2811e40 add r1, r1, #1024 ; 0x400 + 403514: e1a0d001 mov sp, r1 + 403518: e3a000db mov r0, #219 ; 0xdb + 40351c: e121f000 msr CPSR_c, r0 + 403520: e2811f40 add r1, r1, #256 ; 0x100 + 403524: e1a0d001 mov sp, r1 + 403528: e3a000d7 mov r0, #215 ; 0xd7 + 40352c: e121f000 msr CPSR_c, r0 + 403530: e2811f40 add r1, r1, #256 ; 0x100 + 403534: e1a0d001 mov sp, r1 + 403538: e3a000df mov r0, #223 ; 0xdf + 40353c: e121f000 msr CPSR_c, r0 + 403540: e2811e80 add r1, r1, #2048 ; 0x800 + 403544: e1a0d001 mov sp, r1 + 403548: eb00023b bl 403e3c <__iar_data_init2> + 40354c: e59f009c ldr r0, [pc, #156] ; 4035f0 <_?1> + 403550: e59f309c ldr r3, [pc, #156] ; 4035f4 <_?2> + 403554: e1500003 cmp r0, r3 + 403558: 0a000000 beq 403560 <__call_main> + 40355c: ebf034db bl 108d0 <__rom_data_init> + +00403560 <__call_main>: + 403560: ebffffd9 bl 4034cc + 403564: eaffffdb b 4034d8 + +00403568 <__reserved_>: + 403568: e1b0f00e movs pc, lr + +0040356c <__UndefInstructionHndlr_>: + 40356c: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 403570: e59f0080 ldr r0, [pc, #128] ; 4035f8 <_?3> + 403574: e5900000 ldr r0, [r0] + 403578: e3500000 cmp r0, #0 ; 0x0 + 40357c: 11a0e00f movne lr, pc + 403580: 112fff10 bxne r0 + 403584: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 403588: e1b0f00e movs pc, lr + +0040358c <__SupervisorHndlr_>: + 40358c: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 403590: e59f0064 ldr r0, [pc, #100] ; 4035fc <_?4> + 403594: e5900000 ldr r0, [r0] + 403598: e3500000 cmp r0, #0 ; 0x0 + 40359c: 11a0e00f movne lr, pc + 4035a0: 112fff10 bxne r0 + 4035a4: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 4035a8: e1b0f00e movs pc, lr + +004035ac <__PrefetchAbtHndlr_>: + 4035ac: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 4035b0: e59f0048 ldr r0, [pc, #72] ; 403600 <_?5> + 4035b4: e5900000 ldr r0, [r0] + 4035b8: e3500000 cmp r0, #0 ; 0x0 + 4035bc: 11a0e00f movne lr, pc + 4035c0: 112fff10 bxne r0 + 4035c4: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 4035c8: e25ef004 subs pc, lr, #4 ; 0x4 + +004035cc <__DataAbtHndlr_>: + 4035cc: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 4035d0: e59f002c ldr r0, [pc, #44] ; 403604 <_?6> + 4035d4: e5900000 ldr r0, [r0] + 4035d8: e3500000 cmp r0, #0 ; 0x0 + 4035dc: 11a0e00f movne lr, pc + 4035e0: 112fff10 bxne r0 + 4035e4: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 4035e8: e25ef004 subs pc, lr, #4 ; 0x4 + +004035ec <_?0>: + 4035ec: 00403f44 .word 0x00403f44 + +004035f0 <_?1>: + 4035f0: 00011788 .word 0x00011788 + +004035f4 <_?2>: + 4035f4: 000117a8 .word 0x000117a8 + +004035f8 <_?3>: + 4035f8: 0040014c .word 0x0040014c + +004035fc <_?4>: + 4035fc: 00400150 .word 0x00400150 + +00403600 <_?5>: + 403600: 00400154 .word 0x00400154 + +00403604 <_?6>: + 403604: 00400158 .word 0x00400158 + +00403608 : + 403608: b580 push {r7, lr} + 40360a: 200f movs r0, #15 + 40360c: f000 f80a bl 403624 + 403610: 200f movs r0, #15 + 403612: f000 f855 bl 4036c0 + 403616: 2100 movs r1, #0 + 403618: 2019 movs r0, #25 + 40361a: f404 ff31 bl 8480 + 40361e: 9801 ldr r0, [sp, #4] + 403620: b002 add sp, #8 + 403622: 4700 bx r0 + +00403624 : + 403624: b510 push {r4, lr} + 403626: 0004 lsls r4, r0, #0 + 403628: 07e0 lsls r0, r4, #31 + 40362a: d50f bpl.n 40364c + 40362c: 2100 movs r1, #0 + 40362e: 2017 movs r0, #23 + 403630: f405 f89c bl 876c + 403634: 2101 movs r1, #1 + 403636: 2017 movs r0, #23 + 403638: f404 ff9c bl 8574 + 40363c: 2101 movs r1, #1 + 40363e: 2017 movs r0, #23 + 403640: f404 feb2 bl 83a8 + 403644: 2101 movs r1, #1 + 403646: 2017 movs r0, #23 + 403648: f404 ff1a bl 8480 + +0040364c : + 40364c: 07a0 lsls r0, r4, #30 + 40364e: d50f bpl.n 403670 + 403650: 2100 movs r1, #0 + 403652: 2018 movs r0, #24 + 403654: f405 f88a bl 876c + 403658: 2101 movs r1, #1 + 40365a: 2018 movs r0, #24 + 40365c: f404 ff8a bl 8574 + 403660: 2101 movs r1, #1 + 403662: 2018 movs r0, #24 + 403664: f404 fea0 bl 83a8 + 403668: 2101 movs r1, #1 + 40366a: 2018 movs r0, #24 + 40366c: f404 ff08 bl 8480 + +00403670 : + 403670: 0760 lsls r0, r4, #29 + 403672: d50f bpl.n 403694 + 403674: 2100 movs r1, #0 + 403676: 2019 movs r0, #25 + 403678: f405 f878 bl 876c + 40367c: 2101 movs r1, #1 + 40367e: 2019 movs r0, #25 + 403680: f404 ff78 bl 8574 + 403684: 2101 movs r1, #1 + 403686: 2019 movs r0, #25 + 403688: f404 fe8e bl 83a8 + 40368c: 2101 movs r1, #1 + 40368e: 2019 movs r0, #25 + 403690: f404 fef6 bl 8480 + +00403694 : + 403694: 0720 lsls r0, r4, #28 + 403696: d50f bpl.n 4036b8 + 403698: 2100 movs r1, #0 + 40369a: 202c movs r0, #44 + 40369c: f405 f866 bl 876c + 4036a0: 2101 movs r1, #1 + 4036a2: 202c movs r0, #44 + 4036a4: f404 ff66 bl 8574 + 4036a8: 2101 movs r1, #1 + 4036aa: 202c movs r0, #44 + 4036ac: f404 fe7c bl 83a8 + 4036b0: 2101 movs r1, #1 + 4036b2: 202c movs r0, #44 + 4036b4: f404 fee4 bl 8480 + +004036b8 : + 4036b8: 9801 ldr r0, [sp, #4] + 4036ba: bc10 pop {r4} + 4036bc: b001 add sp, #4 + 4036be: 4700 bx r0 + +004036c0 : + 4036c0: b510 push {r4, lr} + 4036c2: 0004 lsls r4, r0, #0 + 4036c4: 07e0 lsls r0, r4, #31 + 4036c6: d503 bpl.n 4036d0 + 4036c8: 2100 movs r1, #0 + 4036ca: 2017 movs r0, #23 + 4036cc: f404 fed8 bl 8480 + +004036d0 : + 4036d0: 07a0 lsls r0, r4, #30 + 4036d2: d503 bpl.n 4036dc + 4036d4: 2100 movs r1, #0 + 4036d6: 2018 movs r0, #24 + 4036d8: f404 fed2 bl 8480 + +004036dc : + 4036dc: 0760 lsls r0, r4, #29 + 4036de: d503 bpl.n 4036e8 + 4036e0: 2100 movs r1, #0 + 4036e2: 2019 movs r0, #25 + 4036e4: f404 fecc bl 8480 + +004036e8 : + 4036e8: 0720 lsls r0, r4, #28 + 4036ea: d503 bpl.n 4036f4 + 4036ec: 2100 movs r1, #0 + 4036ee: 202c movs r0, #44 + 4036f0: f404 fec6 bl 8480 + +004036f4 : + 4036f4: 9801 ldr r0, [sp, #4] + 4036f6: bc10 pop {r4} + 4036f8: b001 add sp, #4 + 4036fa: 4700 bx r0 + +004036fc <__iar_packbits_init2>: + 4036fc: e92d43f8 push {r3, r4, r5, r6, r7, r8, r9, lr} + 403700: e5902000 ldr r2, [r0] + 403704: e2801008 add r1, r0, #8 ; 0x8 + 403708: e5900004 ldr r0, [r0, #4] + 40370c: e0812182 add r2, r1, r2, lsl #3 + 403710: e0820180 add r0, r2, r0, lsl #3 + 403714: e3a06000 mov r6, #0 ; 0x0 + 403718: e3a07000 mov r7, #0 ; 0x0 + 40371c: e3a04000 mov r4, #0 ; 0x0 + 403720: e3a05001 mov r5, #1 ; 0x1 + 403724: ea00000a b 403754 <__iar_packbits_init2+0x58> + 403728: e4d68001 ldrb r8, [r6], #1 + 40372c: e15e0009 cmp lr, r9 + 403730: 0a000005 beq 40374c <__iar_packbits_init2+0x50> + 403734: e2844001 add r4, r4, #1 ; 0x1 + 403738: e1a04804 lsl r4, r4, #16 + 40373c: e4ce8001 strb r8, [lr], #1 + 403740: e1b04844 asrs r4, r4, #16 + 403744: 4afffff8 bmi 40372c <__iar_packbits_init2+0x30> + 403748: e3a05001 mov r5, #1 ; 0x1 + 40374c: e15e0009 cmp lr, r9 + 403750: 1a00000a bne 403780 <__iar_packbits_init2+0x84> + 403754: e1520000 cmp r2, r0 + 403758: 1a000001 bne 403764 <__iar_packbits_init2+0x68> + 40375c: e8bd43f2 pop {r1, r4, r5, r6, r7, r8, r9, lr} + 403760: e12fff1e bx lr + 403764: e492e004 ldr lr, [r2], #4 + 403768: e4928004 ldr r8, [r2], #4 + 40376c: e088900e add r9, r8, lr + 403770: eafffff5 b 40374c <__iar_packbits_init2+0x50> + 403774: e4916004 ldr r6, [r1], #4 + 403778: e4917004 ldr r7, [r1], #4 + 40377c: e0877006 add r7, r7, r6 + 403780: e1560007 cmp r6, r7 + 403784: 0afffffa beq 403774 <__iar_packbits_init2+0x78> + 403788: e3550000 cmp r5, #0 ; 0x0 + 40378c: 0a000007 beq 4037b0 <__iar_packbits_init2+0xb4> + 403790: e0d640d1 ldrsb r4, [r6], #1 + 403794: e3a05000 mov r5, #0 ; 0x0 + 403798: ea000002 b 4037a8 <__iar_packbits_init2+0xac> + 40379c: e4916004 ldr r6, [r1], #4 + 4037a0: e4917004 ldr r7, [r1], #4 + 4037a4: e0877006 add r7, r7, r6 + 4037a8: e1560007 cmp r6, r7 + 4037ac: 0afffffa beq 40379c <__iar_packbits_init2+0xa0> + 4037b0: e3540000 cmp r4, #0 ; 0x0 + 4037b4: 4affffdb bmi 403728 <__iar_packbits_init2+0x2c> + 4037b8: e3540000 cmp r4, #0 ; 0x0 + 4037bc: 4affffe1 bmi 403748 <__iar_packbits_init2+0x4c> + 4037c0: e15e0009 cmp lr, r9 + 4037c4: 11560007 cmpne r6, r7 + 4037c8: 0affffdf beq 40374c <__iar_packbits_init2+0x50> + 4037cc: e4d68001 ldrb r8, [r6], #1 + 4037d0: e2444001 sub r4, r4, #1 ; 0x1 + 4037d4: e1a04804 lsl r4, r4, #16 + 4037d8: e4ce8001 strb r8, [lr], #1 + 4037dc: e1a04844 asr r4, r4, #16 + 4037e0: eafffff4 b 4037b8 <__iar_packbits_init2+0xbc> + +004037e4 : + 4037e4: 0000080f .word 0x0000080f + 4037e8: 0000080f .word 0x0000080f + 4037ec: 0000080f .word 0x0000080f + 4037f0: 0000080f .word 0x0000080f + 4037f4: 0000081f .word 0x0000081f + 4037f8: 0000081f .word 0x0000081f + 4037fc: 0000081f .word 0x0000081f + 403800: 0000080f .word 0x0000080f + 403804: 0000080f .word 0x0000080f + 403808: 0000080f .word 0x0000080f + 40380c: 0000001f .word 0x0000001f + 403810: 0000000f .word 0x0000000f + 403814: 0000000f .word 0x0000000f + 403818: 00000816 .word 0x00000816 + 40381c: 0000001b .word 0x0000001b + 403820: 0000000b .word 0x0000000b + 403824: 00000802 .word 0x00000802 + 403828: 00000817 .word 0x00000817 + 40382c: 00000003 .word 0x00000003 + +00403830 : + 403830: 000022c0 .word 0x000022c0 + 403834: 000022c0 .word 0x000022c0 + 403838: 000022c0 .word 0x000022c0 + 40383c: 00002280 .word 0x00002280 + 403840: 00002303 .word 0x00002303 + 403844: 000023c0 .word 0x000023c0 + 403848: 00002880 .word 0x00002880 + 40384c: 000029f0 .word 0x000029f0 + 403850: 000029f0 .word 0x000029f0 + 403854: 000029f0 .word 0x000029f0 + 403858: 000029c0 .word 0x000029c0 + 40385c: 00002bf0 .word 0x00002bf0 + 403860: 000029f0 .word 0x000029f0 + 403864: 000028a0 .word 0x000028a0 + 403868: 00002800 .word 0x00002800 + 40386c: 00002ac0 .word 0x00002ac0 + 403870: 00002880 .word 0x00002880 + 403874: 00002a00 .word 0x00002a00 + 403878: 00002b00 .word 0x00002b00 + +0040387c : + 40387c: 000123a0 .word 0x000123a0 + 403880: 000163a0 .word 0x000163a0 + 403884: 0001a3a0 .word 0x0001a3a0 + 403888: 0001e3a0 .word 0x0001e3a0 + 40388c: 000223a0 .word 0x000223a0 + 403890: 000263a0 .word 0x000263a0 + 403894: 0002a3a0 .word 0x0002a3a0 + 403898: 0002e3a0 .word 0x0002e3a0 + 40389c: 000323a0 .word 0x000323a0 + 4038a0: 000363a0 .word 0x000363a0 + 4038a4: 0003a3a0 .word 0x0003a3a0 + 4038a8: 0003a3a0 .word 0x0003a3a0 + 4038ac: 0003e3a0 .word 0x0003e3a0 + 4038b0: 000423a0 .word 0x000423a0 + 4038b4: 000523a0 .word 0x000523a0 + 4038b8: 000423a0 .word 0x000423a0 + 4038bc: 0004e3a0 .word 0x0004e3a0 + 4038c0: 0004e3a0 .word 0x0004e3a0 + 4038c4: 0004e3a0 .word 0x0004e3a0 + +004038c8 : + 4038c8: 482a ldr r0, [pc, #168] (403974 ) + 4038ca: 7800 ldrb r0, [r0, #0] + 4038cc: 4770 bx lr + ... + +004038d0 : + 4038d0: b570 push {r4, r5, r6, lr} + 4038d2: b082 sub sp, #8 + 4038d4: 2500 movs r5, #0 + 4038d6: 2601 movs r6, #1 + 4038d8: 4c26 ldr r4, [pc, #152] (403974 ) + 4038da: 7860 ldrb r0, [r4, #1] + 4038dc: 2800 cmp r0, #0 + 4038de: d109 bne.n 4038f4 + 4038e0: 7066 strb r6, [r4, #1] + 4038e2: 22a8 movs r2, #168 + 4038e4: 0592 lsls r2, r2, #22 + 4038e6: 2118 movs r1, #24 + 4038e8: 481b ldr r0, [pc, #108] (403958 ) + 4038ea: f7ff fb67 bl 402fbc + 4038ee: 7025 strb r5, [r4, #0] + 4038f0: f7fe fd80 bl 4023f4 + +004038f4 : + 4038f4: 4819 ldr r0, [pc, #100] (40395c ) + 4038f6: 6006 str r6, [r0, #0] + 4038f8: 4669 mov r1, sp + 4038fa: 700d strb r5, [r1, #0] + 4038fc: 466a mov r2, sp + 4038fe: e003 b.n 403908 + +00403900 : + 403900: 4669 mov r1, sp + 403902: 7809 ldrb r1, [r1, #0] + 403904: 1c49 adds r1, r1, #1 + 403906: 7011 strb r1, [r2, #0] + +00403908 : + 403908: 4669 mov r1, sp + 40390a: 7809 ldrb r1, [r1, #0] + 40390c: 2964 cmp r1, #100 + 40390e: d3f7 bcc.n 403900 + 403910: 2102 movs r1, #2 + 403912: 6001 str r1, [r0, #0] + 403914: 6085 str r5, [r0, #8] + 403916: 2103 movs r1, #3 + 403918: 63c1 str r1, [r0, #60] + 40391a: 4811 ldr r0, [pc, #68] (403960 ) + 40391c: 215f movs r1, #95 + 40391e: 6481 str r1, [r0, #72] + 403920: 4910 ldr r1, [pc, #64] (403964 ) + 403922: 64c1 str r1, [r0, #76] + 403924: 2104 movs r1, #4 + 403926: 67c1 str r1, [r0, #124] + 403928: 480f ldr r0, [pc, #60] (403968 ) + 40392a: 4910 ldr r1, [pc, #64] (40396c ) + 40392c: 6001 str r1, [r0, #0] + 40392e: 2125 movs r1, #37 + 403930: 6081 str r1, [r0, #8] + 403932: 480b ldr r0, [pc, #44] (403960 ) + 403934: 21a7 movs r1, #167 + 403936: 6581 str r1, [r0, #88] + 403938: 4808 ldr r0, [pc, #32] (40395c ) + 40393a: 2108 movs r1, #8 + 40393c: 6441 str r1, [r0, #68] + 40393e: 4808 ldr r0, [pc, #32] (403960 ) + 403940: 490b ldr r1, [pc, #44] (403970 ) + 403942: 6001 str r1, [r0, #0] + 403944: 4805 ldr r0, [pc, #20] (40395c ) + 403946: 21d4 movs r1, #212 + 403948: 0389 lsls r1, r1, #14 + 40394a: 6601 str r1, [r0, #96] + 40394c: 2000 movs r0, #0 + 40394e: b002 add sp, #8 + 403950: 9903 ldr r1, [sp, #12] + 403952: bc70 pop {r4, r5, r6} + 403954: b001 add sp, #4 + 403956: 4708 bx r1 + +00403958 : + 403958: 016e3600 .word 0x016e3600 + 40395c: 80004004 .word 0x80004004 + 403960: 800040cc .word 0x800040cc + 403964: 00180012 .word 0x00180012 + 403968: 8000414c .word 0x8000414c + 40396c: 001a0022 .word 0x001a0022 + 403970: 00003815 .word 0x00003815 + +00403974 : + 403974: 004052ad .word 0x004052ad + +00403978 : + 403978: b408 push {r3} + 40397a: 4b02 ldr r3, [pc, #8] (403984 ) + 40397c: 469c mov ip, r3 + 40397e: bc08 pop {r3} + 403980: 4760 bx ip + 403982: 46c0 nop (mov r8, r8) + 403984: 000036d9 .word 0x000036d9 + +00403988 : + 403988: b5f0 push {r4, r5, r6, r7, lr} + 40398a: b083 sub sp, #12 + 40398c: 000f lsls r7, r1, #0 + 40398e: 0014 lsls r4, r2, #0 + 403990: 25f3 movs r5, #243 + 403992: 4005 ands r5, r0 + 403994: 2603 movs r6, #3 + 403996: 2003 movs r0, #3 + 403998: 07e9 lsls r1, r5, #31 + 40399a: d509 bpl.n 4039b0 + 40399c: 4668 mov r0, sp + 40399e: 2101 movs r1, #1 + 4039a0: 7001 strb r1, [r0, #0] + 4039a2: 9801 ldr r0, [sp, #4] + 4039a4: 4330 orrs r0, r6 + 4039a6: 9001 str r0, [sp, #4] + 4039a8: 4668 mov r0, sp + 4039aa: f7ff ffe5 bl 403978 + 4039ae: 2000 movs r0, #0 + +004039b0 : + 4039b0: 2102 movs r1, #2 + 4039b2: 420d tst r5, r1 + 4039b4: d008 beq.n 4039c8 + 4039b6: 4668 mov r0, sp + 4039b8: 7001 strb r1, [r0, #0] + 4039ba: 9801 ldr r0, [sp, #4] + 4039bc: 4306 orrs r6, r0 + 4039be: 9601 str r6, [sp, #4] + 4039c0: 4668 mov r0, sp + 4039c2: f7ff ffd9 bl 403978 + 4039c6: 2000 movs r0, #0 + +004039c8 : + 4039c8: 21f0 movs r1, #240 + 4039ca: 420d tst r5, r1 + 4039cc: d01c beq.n 403a08 + 4039ce: 0028 lsls r0, r5, #0 + 4039d0: 25f0 movs r5, #240 + 4039d2: 4005 ands r5, r0 + 4039d4: 2600 movs r6, #0 + 4039d6: 4668 mov r0, sp + 4039d8: 7006 strb r6, [r0, #0] + 4039da: 0928 lsrs r0, r5, #4 + 4039dc: 9a01 ldr r2, [sp, #4] + 4039de: 230f movs r3, #15 + 4039e0: 439a bics r2, r3 + 4039e2: 4302 orrs r2, r0 + 4039e4: 4b0b ldr r3, [pc, #44] (403a14 ) + 4039e6: 4013 ands r3, r2 + 4039e8: 0300 lsls r0, r0, #12 + 4039ea: 4318 orrs r0, r3 + 4039ec: 4a0a ldr r2, [pc, #40] (403a18 ) + 4039ee: 4002 ands r2, r0 + 4039f0: 0238 lsls r0, r7, #8 + 4039f2: 010b lsls r3, r1, #4 + 4039f4: 4003 ands r3, r0 + 4039f6: 4313 orrs r3, r2 + 4039f8: 0120 lsls r0, r4, #4 + 4039fa: 4001 ands r1, r0 + 4039fc: 4319 orrs r1, r3 + 4039fe: 9101 str r1, [sp, #4] + 403a00: 4668 mov r0, sp + 403a02: f7ff ffb9 bl 403978 + 403a06: 2000 movs r0, #0 + +00403a08 : + 403a08: b003 add sp, #12 + 403a0a: 9904 ldr r1, [sp, #16] + 403a0c: bcf0 pop {r4, r5, r6, r7} + 403a0e: b001 add sp, #4 + 403a10: 4708 bx r1 + 403a12: 46c0 nop (mov r8, r8) + +00403a14 : + 403a14: ffff0fff .word 0xffff0fff + 403a18: fffff00f .word 0xfffff00f + +00403a1c : + 403a1c: b580 push {r7, lr} + 403a1e: 2100 movs r1, #0 + 403a20: 7001 strb r1, [r0, #0] + 403a22: 6841 ldr r1, [r0, #4] + 403a24: 227e movs r2, #126 + 403a26: 700a strb r2, [r1, #0] + 403a28: 6841 ldr r1, [r0, #4] + 403a2a: 22ff movs r2, #255 + 403a2c: 704a strb r2, [r1, #1] + 403a2e: e027 b.n 403a80 + +00403a30 : + 403a30: b580 push {r7, lr} + 403a32: 2810 cmp r0, #16 + 403a34: d301 bcc.n 403a3a + 403a36: 2001 movs r0, #1 + 403a38: e026 b.n 403a88 + +00403a3a : + 403a3a: 0081 lsls r1, r0, #2 + 403a3c: 4a03 ldr r2, [pc, #12] (403a4c ) + 403a3e: 5852 ldr r2, [r2, r1] + 403a40: 4903 ldr r1, [pc, #12] (403a50 ) + 403a42: 5c09 ldrb r1, [r1, r0] + 403a44: f7ff fb52 bl 4030ec + 403a48: 2000 movs r0, #0 + 403a4a: e01d b.n 403a88 + +00403a4c : + 403a4c: 00403c14 .word 0x00403c14 + +00403a50 : + 403a50: 00403c04 .word 0x00403c04 + +00403a54 : + 403a54: b580 push {r7, lr} + 403a56: 7802 ldrb r2, [r0, #0] + 403a58: 23f8 movs r3, #248 + 403a5a: 4013 ands r3, r2 + 403a5c: 2201 movs r2, #1 + 403a5e: 431a orrs r2, r3 + 403a60: 7002 strb r2, [r0, #0] + 403a62: e00f b.n 403a84 + +00403a64 : + 403a64: b580 push {r7, lr} + 403a66: 6842 ldr r2, [r0, #4] + 403a68: 2a00 cmp r2, #0 + 403a6a: d101 bne.n 403a70 + 403a6c: 2001 movs r0, #1 + 403a6e: e00b b.n 403a88 + +00403a70 : + 403a70: 7802 ldrb r2, [r0, #0] + 403a72: 23f8 movs r3, #248 + 403a74: 4013 ands r3, r2 + 403a76: 2202 movs r2, #2 + 403a78: 431a orrs r2, r3 + 403a7a: 7002 strb r2, [r0, #0] + 403a7c: 7201 strb r1, [r0, #8] + 403a7e: 46c0 nop (mov r8, r8) + +00403a80 : + 403a80: 2100 movs r1, #0 + 403a82: 46c0 nop (mov r8, r8) + +00403a84 : + 403a84: f7fe fc89 bl 40239a + +00403a88 : + 403a88: 9901 ldr r1, [sp, #4] + 403a8a: b002 add sp, #8 + 403a8c: 4708 bx r1 + +00403a8e : + 403a8e: b580 push {r7, lr} + 403a90: 2813 cmp r0, #19 + 403a92: d301 bcc.n 403a98 + 403a94: 2001 movs r0, #1 + 403a96: e7f7 b.n 403a88 + +00403a98 : + 403a98: 2100 movs r1, #0 + 403a9a: f000 f995 bl 403dc8 + 403a9e: 2000 movs r0, #0 + 403aa0: e7f2 b.n 403a88 + ... + +00403aa4 >: + 403aa4: 41455720 .word 0x41455720 + 403aa8: 52454854 .word 0x52454854 + 403aac: 41545320 .word 0x41545320 + 403ab0: 4e4f4954 .word 0x4e4f4954 + 403ab4: 00000000 .word 0x00000000 + +00403ab8 >: + 403ab8: 6e695720 .word 0x6e695720 + 403abc: 69442064 .word 0x69442064 + 403ac0: 74636572 .word 0x74636572 + 403ac4: 206e6f69 .word 0x206e6f69 + 403ac8: 00000000 .word 0x00000000 + +00403acc >: + 403acc: 20202020 .word 0x20202020 + 403ad0: 646e6957 .word 0x646e6957 + 403ad4: 65705320 .word 0x65705320 + 403ad8: 20206465 .word 0x20206465 + 403adc: 00002020 .word 0x00002020 + +00403ae0 >: + 403ae0: 20202020 .word 0x20202020 + 403ae4: 00000000 .word 0x00000000 + +00403ae8 >: + 403ae8: 20202020 .word 0x20202020 + 403aec: 73657250 .word 0x73657250 + 403af0: 65727573 .word 0x65727573 + 403af4: 00202020 .word 0x00202020 + +00403af8 >: + 403af8: 54202020 .word 0x54202020 + 403afc: 65706d65 .word 0x65706d65 + 403b00: 75746172 .word 0x75746172 + 403b04: 20206572 .word 0x20206572 + 403b08: 00002020 .word 0x00002020 + +00403b0c >: + 403b0c: 74614220 .word 0x74614220 + 403b10: 79726574 .word 0x79726574 + 403b14: 6c6f5620 .word 0x6c6f5620 + 403b18: 65676174 .word 0x65676174 + 403b1c: 00000000 .word 0x00000000 + +00403b20 >: + 403b20: 20202020 .word 0x20202020 + 403b24: 00000020 .word 0x00000020 + +00403b28 >: + 403b28: 6f666542 .word 0x6f666542 + 403b2c: 72206572 .word 0x72206572 + 403b30: 6f696461 .word 0x6f696461 + 403b34: 74657320 .word 0x74657320 + 403b38: 0d0a7075 .word 0x0d0a7075 + 403b3c: 00000000 .word 0x00000000 + +00403b40 >: + 403b40: 6163616d .word 0x6163616d + 403b44: 7361625f .word 0x7361625f + 403b48: 000d0a65 .word 0x000d0a65 + +00403b4c >: + 403b4c: 65646f6d .word 0x65646f6d + 403b50: 7277206d .word 0x7277206d + 403b54: 20657469 .word 0x20657469 + 403b58: 65736162 .word 0x65736162 + 403b5c: 00000d0a .word 0x00000d0a + +00403b60 >: + 403b60: 65646f6d .word 0x65646f6d + 403b64: 6572206d .word 0x6572206d + 403b68: 62206461 .word 0x62206461 + 403b6c: 0a657361 .word 0x0a657361 + 403b70: 0000000d .word 0x0000000d + +00403b74 >: + 403b74: 0a4d5243 .word 0x0a4d5243 + 403b78: 0000000d .word 0x0000000d + +00403b7c >: + 403b7c: 65736572 .word 0x65736572 + 403b80: 64657672 .word 0x64657672 + 403b84: 646f6d20 .word 0x646f6d20 + 403b88: 625f6d65 .word 0x625f6d65 + 403b8c: 0a657361 .word 0x0a657361 + 403b90: 0000000d .word 0x0000000d + +00403b94 >: + 403b94: 65746641 .word 0x65746641 + 403b98: 61722072 .word 0x61722072 + 403b9c: 206f6964 .word 0x206f6964 + 403ba0: 75746573 .word 0x75746573 + 403ba4: 000d0a70 .word 0x000d0a70 + +00403ba8 >: + 403ba8: 20202020 .word 0x20202020 + 403bac: 00204e20 .word 0x00204e20 + +00403bb0 >: + 403bb0: 20202020 .word 0x20202020 + 403bb4: 20204e20 .word 0x20204e20 + 403bb8: 00000000 .word 0x00000000 + +00403bbc >: + 403bbc: 20202020 .word 0x20202020 + 403bc0: 2020454e .word 0x2020454e + 403bc4: 00000000 .word 0x00000000 + +00403bc8 >: + 403bc8: 20202020 .word 0x20202020 + 403bcc: 00204520 .word 0x00204520 + +00403bd0 >: + 403bd0: 20202020 .word 0x20202020 + 403bd4: 20204520 .word 0x20204520 + 403bd8: 00000000 .word 0x00000000 + +00403bdc >: + 403bdc: 20202020 .word 0x20202020 + 403be0: 00204553 .word 0x00204553 + +00403be4 >: + 403be4: 20202020 .word 0x20202020 + 403be8: 00205320 .word 0x00205320 + +00403bec >: + 403bec: 20202020 .word 0x20202020 + 403bf0: 00205753 .word 0x00205753 + +00403bf4 >: + 403bf4: 20202020 .word 0x20202020 + 403bf8: 00205720 .word 0x00205720 + +00403bfc >: + 403bfc: 20202020 .word 0x20202020 + 403c00: 0020574e .word 0x0020574e + +00403c04 : + 403c04: 2f2f2f2f .word 0x2f2f2f2f + 403c08: 2f2f2f2f .word 0x2f2f2f2f + 403c0c: 3030302f .word 0x3030302f + 403c10: 30303030 .word 0x30303030 + +00403c14 : + 403c14: 00355555 .word 0x00355555 + 403c18: 006aaaaa .word 0x006aaaaa + 403c1c: 00a00000 .word 0x00a00000 + 403c20: 00d55555 .word 0x00d55555 + 403c24: 010aaaaa .word 0x010aaaaa + 403c28: 01400000 .word 0x01400000 + 403c2c: 01755555 .word 0x01755555 + 403c30: 01aaaaaa .word 0x01aaaaaa + 403c34: 01e00000 .word 0x01e00000 + 403c38: 00155555 .word 0x00155555 + 403c3c: 004aaaaa .word 0x004aaaaa + 403c40: 00800000 .word 0x00800000 + 403c44: 00b55555 .word 0x00b55555 + 403c48: 00eaaaaa .word 0x00eaaaaa + 403c4c: 01200000 .word 0x01200000 + 403c50: 01555555 .word 0x01555555 + +00403c54 >: + 403c54: 65736162 .word 0x65736162 + 403c58: 20302b20 .word 0x20302b20 + 403c5c: 20202020 .word 0x20202020 + 403c60: 342b2020 .word 0x342b2020 + 403c64: 20202020 .word 0x20202020 + 403c68: 2b202020 .word 0x2b202020 + 403c6c: 20202038 .word 0x20202038 + 403c70: 20202020 .word 0x20202020 + 403c74: 2020632b .word 0x2020632b + 403c78: 20202020 .word 0x20202020 + 403c7c: 30312b20 .word 0x30312b20 + 403c80: 20202020 .word 0x20202020 + 403c84: 312b2020 .word 0x312b2020 + 403c88: 20202034 .word 0x20202034 + 403c8c: 2b202020 .word 0x2b202020 + 403c90: 20203831 .word 0x20203831 + 403c94: 20202020 .word 0x20202020 + 403c98: 2063312b .word 0x2063312b + 403c9c: 20202020 .word 0x20202020 + 403ca0: 000d0a20 .word 0x000d0a20 + +00403ca4 : + 403ca4: 21f0 movs r1, #240 + 403ca6: 0489 lsls r1, r1, #18 + 403ca8: 2080 movs r0, #128 + 403caa: 0600 lsls r0, r0, #24 + 403cac: 6081 str r1, [r0, #8] + 403cae: 2000 movs r0, #0 + 403cb0: 2280 movs r2, #128 + 403cb2: 0612 lsls r2, r2, #24 + 403cb4: 60d0 str r0, [r2, #12] + 403cb6: 6011 str r1, [r2, #0] + 403cb8: 6050 str r0, [r2, #4] + 403cba: 2100 movs r1, #0 + 403cbc: 43c9 mvns r1, r1 + 403cbe: 6111 str r1, [r2, #16] + 403cc0: 6151 str r1, [r2, #20] + 403cc2: 0011 lsls r1, r2, #0 + 403cc4: 6188 str r0, [r1, #24] + 403cc6: 61c8 str r0, [r1, #28] + 403cc8: 6208 str r0, [r1, #32] + 403cca: 6248 str r0, [r1, #36] + 403ccc: 6288 str r0, [r1, #40] + 403cce: 62c8 str r0, [r1, #44] + 403cd0: 22c0 movs r2, #192 + 403cd2: 0192 lsls r2, r2, #6 + 403cd4: 630a str r2, [r1, #48] + 403cd6: 4a05 ldr r2, [pc, #20] (403cec ) + 403cd8: 634a str r2, [r1, #52] + 403cda: 6388 str r0, [r1, #56] + 403cdc: 63c8 str r0, [r1, #60] + 403cde: 0008 lsls r0, r1, #0 + 403ce0: 21c0 movs r1, #192 + 403ce2: 0609 lsls r1, r1, #24 + 403ce4: 6401 str r1, [r0, #64] + 403ce6: 21df movs r1, #223 + 403ce8: 6441 str r1, [r0, #68] + 403cea: 4770 bx lr + +00403cec : + 403cec: 8001c000 .word 0x8001c000 + +00403cf0 : + 403cf0: b538 push {r3, r4, r5, lr} + 403cf2: 24f1 movs r4, #241 + 403cf4: 05a4 lsls r4, r4, #22 + 403cf6: 0022 lsls r2, r4, #0 + 403cf8: 2100 movs r1, #0 + 403cfa: 2000 movs r0, #0 + 403cfc: f404 fb3e bl 837c + 403d00: 2500 movs r5, #0 + 403d02: 43ed mvns r5, r5 + 403d04: 0023 lsls r3, r4, #0 + 403d06: 002a lsls r2, r5, #0 + 403d08: 2103 movs r1, #3 + 403d0a: 2000 movs r0, #0 + 403d0c: f404 fae4 bl 82d8 + 403d10: 0023 lsls r3, r4, #0 + 403d12: 002a lsls r2, r5, #0 + 403d14: 2104 movs r1, #4 + 403d16: 2000 movs r0, #0 + 403d18: f404 fade bl 82d8 + 403d1c: 0023 lsls r3, r4, #0 + 403d1e: 2200 movs r2, #0 + 403d20: 2102 movs r1, #2 + 403d22: 2000 movs r0, #0 + 403d24: f404 fad8 bl 82d8 + 403d28: 0022 lsls r2, r4, #0 + 403d2a: 2100 movs r1, #0 + 403d2c: 2000 movs r0, #0 + 403d2e: f404 fcd9 bl 86e4 + 403d32: b001 add sp, #4 + 403d34: 9802 ldr r0, [sp, #8] + 403d36: bc30 pop {r4, r5} + 403d38: b001 add sp, #4 + 403d3a: 4700 bx r0 + +00403d3c <__aeabi_memset4>: + 403d3c: e1b02c02 lsls r2, r2, #24 + 403d40: e1822422 orr r2, r2, r2, lsr #8 + 403d44: e1822822 orr r2, r2, r2, lsr #16 + +00403d48 <__iar_Memset4_word>: + 403d48: e92d4004 push {r2, lr} + 403d4c: e1a03002 mov r3, r2 + 403d50: e1a0e002 mov lr, r2 + 403d54: e1a0c002 mov ip, r2 + 403d58: e2511010 subs r1, r1, #16 ; 0x10 + 403d5c: 28a0500c stmiacs r0!, {r2, r3, ip, lr} + 403d60: 8afffffc bhi 403d58 <__iar_Memset4_word+0x10> + 403d64: e1b0ce81 lsls ip, r1, #29 + 403d68: 28a0000c stmiacs r0!, {r2, r3} + 403d6c: 44802004 strmi r2, [r0], #4 + 403d70: e1b01f81 lsls r1, r1, #31 + 403d74: 20c020b2 strhcs r2, [r0], #2 + 403d78: 44c02001 strbmi r2, [r0], #1 + 403d7c: e8bd4004 pop {r2, lr} + 403d80: e12fff1e bx lr + +00403d84 : + 403d84: b082 sub sp, #8 + 403d86: 2800 cmp r0, #0 + 403d88: d009 beq.n 403d9e + 403d8a: 4906 ldr r1, [pc, #24] (403da4 ) + +00403d8c : + 403d8c: 1e40 subs r0, r0, #1 + 403d8e: 9100 str r1, [sp, #0] + +00403d90 : + 403d90: 9a00 ldr r2, [sp, #0] + 403d92: 1e53 subs r3, r2, #1 + 403d94: 9300 str r3, [sp, #0] + 403d96: 2a00 cmp r2, #0 + 403d98: d1fa bne.n 403d90 + 403d9a: 2800 cmp r0, #0 + 403d9c: d1f6 bne.n 403d8c + +00403d9e : + 403d9e: b002 add sp, #8 + 403da0: 4770 bx lr + 403da2: 46c0 nop (mov r8, r8) + +00403da4 : + 403da4: 00000d64 .word 0x00000d64 + +00403da8 : + 403da8: b082 sub sp, #8 + 403daa: 2800 cmp r0, #0 + 403dac: d009 beq.n 403dc2 + 403dae: 2103 movs r1, #3 + +00403db0 : + 403db0: 1e40 subs r0, r0, #1 + 403db2: 9100 str r1, [sp, #0] + +00403db4 : + 403db4: 9a00 ldr r2, [sp, #0] + 403db6: 1e53 subs r3, r2, #1 + 403db8: 9300 str r3, [sp, #0] + 403dba: 2a00 cmp r2, #0 + 403dbc: d1fa bne.n 403db4 + 403dbe: 2800 cmp r0, #0 + 403dc0: d1f6 bne.n 403db0 + +00403dc2 : + 403dc2: b002 add sp, #8 + 403dc4: 4770 bx lr + ... + +00403dc8 : + 403dc8: b418 push {r3, r4} + 403dca: 0080 lsls r0, r0, #2 + 403dcc: 4a0a ldr r2, [pc, #40] (403df8 ) + 403dce: 5813 ldr r3, [r2, r0] + 403dd0: 4c0a ldr r4, [pc, #40] (403dfc ) + 403dd2: 6023 str r3, [r4, #0] + 403dd4: 1810 adds r0, r2, r0 + 403dd6: 304c adds r0, #76 + 403dd8: 6802 ldr r2, [r0, #0] + 403dda: 2901 cmp r1, #1 + 403ddc: d103 bne.n 403de6 + 403dde: 0021 lsls r1, r4, #0 + 403de0: 4b07 ldr r3, [pc, #28] (403e00 ) + 403de2: 4013 ands r3, r2 + 403de4: e002 b.n 403dec + 403de6: 0021 lsls r1, r4, #0 + 403de8: 0c8b lsrs r3, r1, #18 + 403dea: 4313 orrs r3, r2 + 403dec: 60cb str r3, [r1, #12] + 403dee: 6cc0 ldr r0, [r0, #76] + 403df0: 6408 str r0, [r1, #64] + 403df2: bc11 pop {r0, r4} + 403df4: 4770 bx lr + 403df6: 46c0 nop (mov r8, r8) + 403df8: 004037e4 .word 0x004037e4 + 403dfc: 8000a014 .word 0x8000a014 + 403e00: ffffdfff .word 0xffffdfff + +00403e04 >: + ... + +00403e18 : + 403e18: 33323130 .word 0x33323130 + 403e1c: 37363534 .word 0x37363534 + 403e20: 42413938 .word 0x42413938 + 403e24: 46454443 .word 0x46454443 + 403e28: 00000000 .word 0x00000000 + +00403e2c >: + 403e2c: 6d726f46 .word 0x6d726f46 + 403e30: 75207461 .word 0x75207461 + 403e34: 6f6e6b6e .word 0x6f6e6b6e + 403e38: 00000077 .word 0x00000077 + +00403e3c <__iar_data_init2>: + 403e3c: e59f0024 ldr r0, [pc, #36] ; 403e68 <__iar_data_init2+0x2c> + 403e40: e92d4010 push {r4, lr} + 403e44: e59f4020 ldr r4, [pc, #32] ; 403e6c <__iar_data_init2+0x30> + 403e48: ea000002 b 403e58 <__iar_data_init2+0x1c> + 403e4c: e4901004 ldr r1, [r0], #4 + 403e50: e1a0e00f mov lr, pc + 403e54: e12fff11 bx r1 + 403e58: e1500004 cmp r0, r4 + 403e5c: 1afffffa bne 403e4c <__iar_data_init2+0x10> + 403e60: e8bd4010 pop {r4, lr} + 403e64: e12fff1e bx lr + 403e68: 00403ec0 .word 0x00403ec0 + 403e6c: 00403eec .word 0x00403eec + +00403e70 : + 403e70: 4806 ldr r0, [pc, #24] (403e8c ) + 403e72: 2100 movs r1, #0 + 403e74: 6001 str r1, [r0, #0] + 403e76: 200f movs r0, #15 + +00403e78 : + 403e78: 4904 ldr r1, [pc, #16] (403e8c ) + 403e7a: 6849 ldr r1, [r1, #4] + 403e7c: 4001 ands r1, r0 + 403e7e: 290e cmp r1, #14 + 403e80: d0fa beq.n 403e78 + 403e82: 4803 ldr r0, [pc, #12] (403e90 ) + 403e84: 4903 ldr r1, [pc, #12] (403e94 ) + 403e86: 6001 str r1, [r0, #0] + 403e88: 4770 bx lr + 403e8a: 46c0 nop (mov r8, r8) + +00403e8c : + 403e8c: 8000400c .word 0x8000400c + 403e90: 800040c4 .word 0x800040c4 + 403e94: 0000ffff .word 0x0000ffff + +00403e98 <__iar_zero_init2>: + 403e98: e3a01000 mov r1, #0 ; 0x0 + 403e9c: ea000003 b 403eb0 <__iar_zero_init2+0x18> + 403ea0: e4902004 ldr r2, [r0], #4 + 403ea4: e2533004 subs r3, r3, #4 ; 0x4 + 403ea8: e4821004 str r1, [r2], #4 + 403eac: 1afffffc bne 403ea4 <__iar_zero_init2+0xc> + 403eb0: e4903004 ldr r3, [r0], #4 + 403eb4: e3530000 cmp r3, #0 ; 0x0 + 403eb8: 1afffff8 bne 403ea0 <__iar_zero_init2+0x8> + 403ebc: e12fff1e bx lr + +00403ec0 : + 403ec0: 00403e98 .word 0x00403e98 + 403ec4: 0000006c .word 0x0000006c + 403ec8: 00405244 .word 0x00405244 + 403ecc: 00000000 .word 0x00000000 + 403ed0: 004036fc .word 0x004036fc + 403ed4: 00000001 .word 0x00000001 + 403ed8: 00000001 .word 0x00000001 + 403edc: 004054a1 .word 0x004054a1 + 403ee0: 00000096 .word 0x00000096 + 403ee4: 004052b0 .word 0x004052b0 + 403ee8: 000001f1 .word 0x000001f1 + +00403eec : + 403eec: 000113ac .word 0x000113ac + 403ef0: 00011028 .word 0x00011028 + 403ef4: 00000001 .word 0x00000001 + 403ef8: 0001146c .word 0x0001146c + 403efc: 00010b74 .word 0x00010b74 + 403f00: 00000002 .word 0x00000002 + +00403f04 : + 403f04: 00402461 .word 0x00402461 + 403f08: 004025c1 .word 0x004025c1 + 403f0c: 004027c1 .word 0x004027c1 + 403f10: 0040297d .word 0x0040297d + +00403f14 : + 403f14: 33323130 .word 0x33323130 + 403f18: 37363534 .word 0x37363534 + 403f1c: 62613938 .word 0x62613938 + 403f20: 66656463 .word 0x66656463 + +00403f24 : + 403f24: 65657266 .word 0x65657266 + 403f28: 6c616373 .word 0x6c616373 + 403f2c: 00000065 .word 0x00000065 + +00403f30 : + 403f30: 4778 bx pc + 403f32: 46c0 nop (mov r8, r8) + +00403f34 <__aeabi_memclr4>: + 403f34: e3b02000 movs r2, #0 ; 0x0 + 403f38: eaffff82 b 403d48 <__iar_Memset4_word> + +00403f3c : + 403f3c: 4770 bx lr + +00403f3e <__iar_via_R0>: + 403f3e: 4700 bx r0 + +00403f40 <__iar_via_R1>: + 403f40: 4708 bx r1 + +Disassembly of section P3: + +00403f44 : + ... + +Disassembly of section P3 zi: + +00405244 : + ... + +00405254 : + ... + +00405255 : + ... + +00405256 : + ... + +00405257 : + ... + +00405258 : + ... + +00405259 : + ... + +0040525a : + ... + +0040525b : + ... + +0040525c : + ... + +0040525d : + ... + +0040525e : + ... + +0040525f : + ... + +00405260 : + ... + +00405262 : + ... + +00405264 : + ... + +00405266 : + ... + +00405268 : + ... + +0040526a : + ... + +0040526c : + ... + +0040526e : + ... + +00405270 : + 405270: 00000000 .word 0x00000000 + +00405274 : + ... + +00405280 : + ... + +00405290 : + ... + +004052a0 : + 4052a0: 00000000 .word 0x00000000 + +004052a4 : + ... + +004052a5 : + ... + +004052a6 : + ... + +004052a8 : + ... + +004052a9 : + ... + +004052aa : + ... + +004052ab : + ... + +004052ac : + ... + +004052ad : + ... + +004052ae : + ... + +Disassembly of section P3 s0: + +004052b0 : + ... + +00405368 : + ... + +00405369 : + ... + +0040536a : + ... + +0040536b : + ... + +0040536c : + ... + +0040536d : + ... + +0040536e : + ... + +0040536f : + ... + +00405370 : + ... + +00405380 : + ... + +00405390 : + 405390: 00000000 .word 0x00000000 + +00405394 : + ... + +004053a4 : + ... + +004053b4 : + 4053b4: 00000000 .word 0x00000000 + +004053b8 : + 4053b8: 00000000 .word 0x00000000 + +004053bc : + 4053bc: 00000000 .word 0x00000000 + +004053c0 : + 4053c0: 00000000 .word 0x00000000 + +004053c4 : + 4053c4: 00000000 .word 0x00000000 + +004053c8 : + ... + +004053f0 : + ... + +00405420 : + ... + +00405448 : + 405448: 00000000 .word 0x00000000 + +0040544c : + 40544c: 00000000 .word 0x00000000 + +00405450 : + ... + +00405451 : + 405451: 00 .byte 0x00 + ... + +00405454 : + ... + +00405464 : + ... + +00405484 : + 405484: 00000000 .word 0x00000000 + +00405488 : + ... + +004054a0 : + ... + +Disassembly of section P2 b0: + +004054a1 : + 4054a1: fd .byte 0xfd + 4054a2: 0000 .short 0x0000 + 4054a4: c60081ff .word 0xc60081ff + 4054a8: b90f0000 .word 0xb90f0000 + 4054ac: c51e0000 .word 0xc51e0000 + 4054b0: 00901200 .word 0x00901200 + 4054b4: 05030080 .word 0x05030080 + 4054b8: 00900480 .word 0x00900480 + 4054bc: 00010180 .word 0x00010180 + 4054c0: 00900800 .word 0x00900800 + 4054c4: 0300fc80 .word 0x0300fc80 + 4054c8: 8000900c .word 0x8000900c + 4054cc: 200400fc .word 0x200400fc + 4054d0: 0c800090 .word 0x0c800090 + 4054d4: 901500fc .word 0x901500fc + 4054d8: 03008000 .word 0x03008000 + 4054dc: 3048c005 .word 0x3048c005 + 4054e0: 0f788000 .word 0x0f788000 + 4054e4: 304c0000 .word 0x304c0000 + 4054e8: 77078000 .word 0x77078000 + 4054ec: 1000fb60 .word 0x1000fb60 + 4054f0: 000161a8 .word 0x000161a8 + 4054f4: 8000a050 .word 0x8000a050 + 4054f8: 0000047b .word 0x0000047b + 4054fc: 8000a054 .word 0x8000a054 + 405500: 0300e07b .word 0x0300e07b + 405504: 17800094 .word 0x17800094 + 405508: 500300fd .word 0x500300fd + 40550c: fc8000a0 .word 0xfc8000a0 + 405510: a0540300 .word 0xa0540300 + 405514: 00fc8000 .word 0x00fc8000 + 405518: 00304805 .word 0x00304805 + 40551c: f60f0080 .word 0xf60f0080 + 405520: 01081400 .word 0x01081400 + 405524: 00021000 .word 0x00021000 + 405528: 20000318 .word 0x20000318 + 40552c: 05280004 .word 0x05280004 + 405530: 00063000 .word 0x00063000 + 405534: Address 0x0000000000405534 is out of bounds. + + +Disassembly of section .debug_abbrev: + +00000000 <.debug_abbrev>: + 0: 03000506 movweq r0, #1286 ; 0x506 + 4: 3b0f3a08 blcc 3ce82c + 8: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + c: 00060216 andeq r0, r6, r6, lsl r2 + 10: 01110100 tsteq r1, r0, lsl #2 + 14: 08250803 stmdaeq r5!, {r0, r1, fp} + 18: 06100b13 undefined + 1c: 00000643 andeq r0, r0, r3, asr #12 + 20: 03011102 movweq r1, #4354 ; 0x1102 + 24: 13082508 movwne r2, #34056 ; 0x8508 + 28: 1201110b andne r1, r1, #-1073741822 ; 0xc0000002 + 2c: e6061001 str r1, [r6], -r1 + 30: 4ee7064e cdpmi 6, 14, cr0, cr7, cr14, {2} + 34: 08000016 stmdaeq r0, {r1, r2, r4} + 38: 08030016 stmdaeq r3, {r1, r2, r4} + 3c: 0f3a1649 svceq 0x003a1649 + 40: 0f390f3b svceq 0x00390f3b + 44: 24030000 strcs r0, [r3] + 48: 0b080300 bleq 200c50 + 4c: 000b3e0f andeq r3, fp, pc, lsl #28 + 50: 012e0500 teqeq lr, r0, lsl #10 + 54: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 58: 0f3b0f3a svceq 0x003b0f3a + 5c: 0b3f0f39 bleq fc3d48 + 60: 01110640 tsteq r1, r0, asr #12 + 64: 00000112 andeq r0, r0, r2, lsl r1 + 68: 03003407 movweq r3, #1031 ; 0x407 + 6c: 3b0f3a08 blcc 3ce894 + 70: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 74: 00060216 andeq r0, r6, r6, lsl r2 + 78: 00350400 eorseq r0, r5, r0, lsl #8 + 7c: 00001649 andeq r1, r0, r9, asr #12 + 80: 00000000 andeq r0, r0, r0 + 84: 01010117 tsteq r1, r7, lsl r1 + 88: 00164913 andseq r4, r6, r3, lsl r9 + 8c: 01041600 tsteq r4, r0, lsl #12 + 90: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 94: 00000f0b andeq r0, r0, fp, lsl #30 + 98: 01010414 tsteq r1, r4, lsl r4 + 9c: 000f0b13 andeq r0, pc, r3, lsl fp + a0: 00051100 andeq r1, r5, r0, lsl #2 + a4: 0f3a0803 svceq 0x003a0803 + a8: 0f390f3b svceq 0x00390f3b + ac: 00001649 andeq r1, r0, r9, asr #12 + b0: 0300050b movweq r0, #1291 ; 0x50b + b4: 3b0f3a08 blcc 3ce8dc + b8: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + bc: 00060216 andeq r0, r6, r6, lsl r2 + c0: 00050d00 andeq r0, r5, r0, lsl #26 + c4: 06021631 undefined + c8: 0b0a0000 bleq 2800d0 + cc: 11130101 tstne r3, r1, lsl #2 + d0: 00011201 andeq r1, r1, r1, lsl #4 + d4: 000d1a00 andeq r1, sp, r0, lsl #20 + d8: 0b321649 bleq c85a04 + dc: 09380803 ldmdbeq r8!, {r0, r1, fp} + e0: 0f040000 svceq 0x00040000 + e4: 00164900 andseq r4, r6, r0, lsl #18 + e8: 01110100 tsteq r1, r0, lsl #2 + ec: 08250803 stmdaeq r5!, {r0, r1, fp} + f0: 06100b13 undefined + f4: 00000643 andeq r0, r0, r3, asr #12 + f8: 03011107 movweq r1, #4359 ; 0x1107 + fc: 13082508 movwne r2, #34056 ; 0x8508 + 100: 1201110b andne r1, r1, #-1073741822 ; 0xc0000002 + 104: e6061001 str r1, [r6], -r1 + 108: 4ee7064e cdpmi 6, 14, cr0, cr7, cr14, {2} + 10c: 1b000016 blne 16c <__ABT_stack_size+0x6c> + 110: 13010113 movwne r0, #4371 ; 0x1113 + 114: 0f0b0803 svceq 0x000b0803 + 118: 13190000 tstne r9, #0 ; 0x0 + 11c: 0b130101 bleq 4c0528 + 120: 1c00000f stcne 0, cr0, [r0], {15} + 124: 08030016 stmdaeq r3, {r1, r2, r4} + 128: 0f3a1649 svceq 0x003a1649 + 12c: 0f390f3b svceq 0x00390f3b + 130: 1d0c0000 stcne 0, cr0, [ip] + 134: 31130101 tstcc r3, r1, lsl #2 + 138: 12011116 andne r1, r1, #-2147483643 ; 0x80000005 + 13c: 18000001 stmdane r0, {r0} + 140: 0f2f0021 svceq 0x002f0021 + 144: 24020000 strcs r0, [r2] + 148: 0b080300 bleq 200d50 + 14c: 000b3e0f andeq r3, fp, pc, lsl #28 + 150: 00260300 eoreq r0, r6, r0, lsl #6 + 154: 00001649 andeq r1, r0, r9, asr #12 + 158: 03002815 movweq r2, #2069 ; 0x815 + 15c: 000f1c08 andeq r1, pc, r8, lsl #24 + 160: 012e1300 teqeq lr, r0, lsl #6 + 164: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 168: 0f3b0f3a svceq 0x003b0f3a + 16c: 0b3f0f39 bleq fc3e58 + 170: 00000b20 andeq r0, r0, r0, lsr #22 + 174: 01012e08 tsteq r1, r8, lsl #28 + 178: 3a080313 bcc 200dcc + 17c: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 180: 400b3f0f andmi r3, fp, pc, lsl #30 + 184: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 188: 10000001 andne r0, r0, r1 + 18c: 1301012e movwne r0, #4398 ; 0x112e + 190: 0f3a0803 svceq 0x003a0803 + 194: 0f390f3b svceq 0x00390f3b + 198: 16490b3f undefined + 19c: 00000b20 andeq r0, r0, r0, lsr #22 + 1a0: 01012e0f tsteq r1, pc, lsl #28 + 1a4: 3a080313 bcc 200df8 + 1a8: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 1ac: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} + 1b0: 11064016 tstne r6, r6, lsl r0 + 1b4: 00011201 andeq r1, r1, r1, lsl #4 + 1b8: 00341200 eorseq r1, r4, r0, lsl #4 + 1bc: 0f3a0803 svceq 0x003a0803 + 1c0: 0f390f3b svceq 0x00390f3b + 1c4: 00001649 andeq r1, r0, r9, asr #12 + 1c8: 03003409 movweq r3, #1033 ; 0x409 + 1cc: 3b0f3a08 blcc 3ce9f4 + 1d0: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 1d4: 00060216 andeq r0, r6, r6, lsl r2 + 1d8: 00340500 eorseq r0, r4, r0, lsl #10 + 1dc: 16490803 strbne r0, [r9], -r3, lsl #16 + 1e0: 0f3b0f3a svceq 0x003b0f3a + 1e4: 0b3f0f39 bleq fc3ed0 + 1e8: 00000902 andeq r0, r0, r2, lsl #18 + 1ec: 3100340e tstcc r0, lr, lsl #8 + 1f0: 00060216 andeq r0, r6, r6, lsl r2 + 1f4: 00350600 eorseq r0, r5, r0, lsl #12 + 1f8: 00001649 andeq r1, r0, r9, asr #12 + 1fc: 00000000 andeq r0, r0, r0 + 200: 01010409 tsteq r1, r9, lsl #8 + 204: 0b080313 bleq 200e58 + 208: 0700000f streq r0, [r0, -pc] + 20c: 13010104 movwne r0, #4356 ; 0x1104 + 210: 00000f0b andeq r0, r0, fp, lsl #30 + 214: 03000506 movweq r0, #1286 ; 0x506 + 218: 3b0f3a08 blcc 3cea40 + 21c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 220: 00060216 andeq r0, r6, r6, lsl r2 + 224: 000d0d00 andeq r0, sp, r0, lsl #26 + 228: 0b321649 bleq c85b54 + 22c: 09380803 ldmdbeq r8!, {r0, r1, fp} + 230: 0d0c0000 stceq 0, cr0, [ip] + 234: 32164900 andscc r4, r6, #0 ; 0x0 + 238: 3808030b stmdacc r8, {r0, r1, r3, r8, r9} + 23c: 0d0f0b09 vstreq d0, [pc, #-36] ; 220 <__ABT_stack_size+0x120> + 240: 000f0c0f andeq r0, pc, pc, lsl #24 + 244: 000f0400 andeq r0, pc, r0, lsl #8 + 248: 00001649 andeq r1, r0, r9, asr #12 + 24c: 03011101 movweq r1, #4353 ; 0x1101 + 250: 13082508 movwne r2, #34056 ; 0x8508 + 254: 4306100b movwmi r1, #24587 ; 0x600b + 258: 02000006 andeq r0, r0, #6 ; 0x6 + 25c: 08030111 stmdaeq r3, {r0, r4, r8} + 260: 0b130825 bleq 4c22fc + 264: 01120111 tsteq r2, r1, lsl r1 + 268: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + 26c: 164ee706 strbne lr, [lr], -r6, lsl #14 + 270: 130b0000 movwne r0, #45056 ; 0xb000 + 274: 0b130101 bleq 4c0680 + 278: 0a00000f beq 2bc <__ABT_stack_size+0x1bc> + 27c: 13010115 movwne r0, #4373 ; 0x1115 + 280: 160f0000 strne r0, [pc], -r0 + 284: 49080300 stmdbmi r8, {r8, r9} + 288: 3b0f3a16 blcc 3ceae8 + 28c: 000f390f andeq r3, pc, pc, lsl #18 + 290: 01170e00 tsteq r7, r0, lsl #28 + 294: 0f0b1301 svceq 0x000b1301 + 298: 24030000 strcs r0, [r3] + 29c: 0b080300 bleq 200ea4 + 2a0: 000b3e0f andeq r3, fp, pc, lsl #28 + 2a4: 00280800 eoreq r0, r8, r0, lsl #16 + 2a8: 0f1c0803 svceq 0x001c0803 + 2ac: 2e050000 cdpcs 0, 0, cr0, cr5, cr0, {0} + 2b0: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 2b4: 3b0f3a08 blcc 3ceadc + 2b8: 3f0f390f svccc 0x000f390f + 2bc: 4016490b andsmi r4, r6, fp, lsl #18 + 2c0: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 2c4: 00000001 andeq r0, r0, r1 + 2c8: 03011101 movweq r1, #4353 ; 0x1101 + 2cc: 11082508 tstne r8, r8, lsl #10 + 2d0: 10011201 andne r1, r1, r1, lsl #4 + 2d4: 00000006 andeq r0, r0, r6 + 2d8: 03011101 movweq r1, #4353 ; 0x1101 + 2dc: 13082508 movwne r2, #34056 ; 0x8508 + 2e0: 4306100b movwmi r1, #24587 ; 0x600b + 2e4: 02000006 andeq r0, r0, #6 ; 0x6 + 2e8: 08030111 stmdaeq r3, {r0, r4, r8} + 2ec: 0b130825 bleq 4c2388 + 2f0: 01120111 tsteq r2, r1, lsl r1 + 2f4: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + 2f8: 164ee706 strbne lr, [lr], -r6, lsl #14 + 2fc: 2e030000 cdpcs 0, 0, cr0, cr3, cr0, {0} + 300: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 304: 3b0f3a08 blcc 3ceb2c + 308: 3f0f390f svccc 0x000f390f + 30c: 1106400b tstne r6, fp + 310: 00011201 andeq r1, r1, r1, lsl #4 + 314: 00000000 andeq r0, r0, r0 + 318: 0101040a tsteq r1, sl, lsl #8 + 31c: 000f0b13 andeq r0, pc, r3, lsl fp + 320: 00050600 andeq r0, r5, r0, lsl #12 + 324: 0f3a0803 svceq 0x003a0803 + 328: 0f390f3b svceq 0x00390f3b + 32c: 06021649 streq r1, [r2], -r9, asr #12 + 330: 11010000 tstne r1, r0 + 334: 25080301 strcs r0, [r8, #-769] + 338: 100b1308 andne r1, fp, r8, lsl #6 + 33c: 00064306 andeq r4, r6, r6, lsl #6 + 340: 01110200 tsteq r1, r0, lsl #4 + 344: 08250803 stmdaeq r5!, {r0, r1, fp} + 348: 01110b13 tsteq r1, r3, lsl fp + 34c: 06100112 undefined + 350: e7064ee6 str r4, [r6, -r6, ror #29] + 354: 0000164e andeq r1, r0, lr, asr #12 + 358: 0300160c movweq r1, #1548 ; 0x60c + 35c: 3a164908 bcc 592784 + 360: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 364: 0500000f streq r0, [r0, #-15] + 368: 1301011d movwne r0, #4381 ; 0x111d + 36c: 01111631 tsteq r1, r1, lsr r6 + 370: 00000112 andeq r0, r0, r2, lsl r1 + 374: 03002403 movweq r2, #1027 ; 0x403 + 378: 3e0f0b08 fmacdcc d0, d15, d8 + 37c: 0b00000b bleq 3b0 <__ABT_stack_size+0x2b0> + 380: 08030028 stmdaeq r3, {r3, r5} + 384: 00000f1c andeq r0, r0, ip, lsl pc + 388: 01012e09 tsteq r1, r9, lsl #28 + 38c: 3a080313 bcc 200fe0 + 390: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 394: 200b3f0f andcs r3, fp, pc, lsl #30 + 398: 0400000b streq r0, [r0], #-11 + 39c: 1301012e movwne r0, #4398 ; 0x112e + 3a0: 0f3a0803 svceq 0x003a0803 + 3a4: 0f390f3b svceq 0x00390f3b + 3a8: 06400b3f undefined + 3ac: 01120111 tsteq r2, r1, lsl r1 + 3b0: 2e070000 cdpcs 0, 0, cr0, cr7, cr0, {0} + 3b4: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 3b8: 3b0f3a08 blcc 3cebe0 + 3bc: 3f0f390f svccc 0x000f390f + 3c0: 4016490b andsmi r4, r6, fp, lsl #18 + 3c4: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 3c8: 08000001 stmdaeq r0, {r0} + 3cc: 08030034 stmdaeq r3, {r2, r4, r5} + 3d0: 0f3b0f3a svceq 0x003b0f3a + 3d4: 16490f39 undefined + 3d8: 00000602 andeq r0, r0, r2, lsl #12 + 3dc: 00000000 andeq r0, r0, r0 + 3e0: 01010b08 tsteq r1, r8, lsl #22 + 3e4: 12011113 andne r1, r1, #-1073741820 ; 0xc0000004 + 3e8: 01000001 tsteq r0, r1 + 3ec: 08030111 stmdaeq r3, {r0, r4, r8} + 3f0: 0b130825 bleq 4c248c + 3f4: 06430610 undefined + 3f8: 11040000 tstne r4, r0 + 3fc: 25080301 strcs r0, [r8, #-769] + 400: 110b1308 tstne fp, r8, lsl #6 + 404: 10011201 andne r1, r1, r1, lsl #4 + 408: 064ee606 strbeq lr, [lr], -r6, lsl #12 + 40c: 00164ee7 andseq r4, r6, r7, ror #29 + 410: 00160900 andseq r0, r6, r0, lsl #18 + 414: 16490803 strbne r0, [r9], -r3, lsl #16 + 418: 0f3b0f3a svceq 0x003b0f3a + 41c: 00000f39 andeq r0, r0, r9, lsr pc + 420: 03002402 movweq r2, #1026 ; 0x402 + 424: 3e0f0b08 fmacdcc d0, d15, d8 + 428: 0600000b streq r0, [r0], -fp + 42c: 1301012e movwne r0, #4398 ; 0x112e + 430: 0f3a0803 svceq 0x003a0803 + 434: 0f390f3b svceq 0x00390f3b + 438: 06400b3f undefined + 43c: 01120111 tsteq r2, r1, lsl r1 + 440: 34070000 strcc r0, [r7] + 444: 3a080300 bcc 20104c + 448: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 44c: 0216490f andseq r4, r6, #245760 ; 0x3c000 + 450: 03000006 movweq r0, #6 ; 0x6 + 454: 08030034 stmdaeq r3, {r2, r4, r5} + 458: 0f3a1649 svceq 0x003a1649 + 45c: 0f390f3b svceq 0x00390f3b + 460: 09020b3f stmdbeq r2, {r0, r1, r2, r3, r4, r5, r8, r9, fp} + 464: 35050000 strcc r0, [r5] + 468: 00164900 andseq r4, r6, r0, lsl #18 + 46c: 00000000 andeq r0, r0, r0 + 470: 03011101 movweq r1, #4353 ; 0x1101 + 474: 13082508 movwne r2, #34056 ; 0x8508 + 478: 4306100b movwmi r1, #24587 ; 0x600b + 47c: 02000006 andeq r0, r0, #6 ; 0x6 + 480: 08030111 stmdaeq r3, {r0, r4, r8} + 484: 0b130825 bleq 4c2520 + 488: 01120111 tsteq r2, r1, lsl r1 + 48c: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + 490: 164ee706 strbne lr, [lr], -r6, lsl #14 + 494: 16090000 strne r0, [r9], -r0 + 498: 49080300 stmdbmi r8, {r8, r9} + 49c: 3b0f3a16 blcc 3cecfc + 4a0: 000f390f andeq r3, pc, pc, lsl #18 + 4a4: 011d0600 tsteq sp, r0, lsl #12 + 4a8: 16311301 ldrtne r1, [r1], -r1, lsl #6 + 4ac: 01120111 tsteq r2, r1, lsl r1 + 4b0: 24030000 strcs r0, [r3] + 4b4: 0b080300 bleq 2010bc + 4b8: 000b3e0f andeq r3, fp, pc, lsl #28 + 4bc: 012e0800 teqeq lr, r0, lsl #16 + 4c0: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 4c4: 0f3b0f3a svceq 0x003b0f3a + 4c8: 0b3f0f39 bleq fc41b4 + 4cc: 00000b20 andeq r0, r0, r0, lsr #22 + 4d0: 01012e05 tsteq r1, r5, lsl #28 + 4d4: 3a080313 bcc 201128 + 4d8: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 4dc: 400b3f0f andmi r3, fp, pc, lsl #30 + 4e0: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 4e4: 07000001 streq r0, [r0, -r1] + 4e8: 08030034 stmdaeq r3, {r2, r4, r5} + 4ec: 0f3b0f3a svceq 0x003b0f3a + 4f0: 16490f39 undefined + 4f4: 00000602 andeq r0, r0, r2, lsl #12 + 4f8: 49003504 stmdbmi r0, {r2, r8, sl, ip, sp} + 4fc: 00000016 andeq r0, r0, r6, lsl r0 + 500: 01010116 tsteq r1, r6, lsl r1 + 504: 00164913 andseq r4, r6, r3, lsl r9 + 508: 01041200 tsteq r4, r0, lsl #4 + 50c: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 510: 00000f0b andeq r0, r0, fp, lsl #30 + 514: 03000510 movweq r0, #1296 ; 0x510 + 518: 3b0f3a08 blcc 3ced40 + 51c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 520: 08000016 stmdaeq r0, {r1, r2, r4} + 524: 08030005 stmdaeq r3, {r0, r2} + 528: 0f3b0f3a svceq 0x003b0f3a + 52c: 16490f39 undefined + 530: 00000602 andeq r0, r0, r2, lsl #12 + 534: 3100050d tstcc r0, sp, lsl #10 + 538: 00060216 andeq r0, r6, r6, lsl r2 + 53c: 00051500 andeq r1, r5, r0, lsl #10 + 540: 00001649 andeq r1, r0, r9, asr #12 + 544: 01010b09 tsteq r1, r9, lsl #22 + 548: 12011113 andne r1, r1, #-1073741820 ; 0xc0000004 + 54c: 1b000001 blne 558 <__FIQ_stack_size+0x158> + 550: 1649000d strbne r0, [r9], -sp + 554: 08030b32 stmdaeq r3, {r1, r4, r5, r8, r9, fp} + 558: 00000938 andeq r0, r0, r8, lsr r9 + 55c: 49000d19 stmdbmi r0, {r0, r3, r4, r8, sl, fp} + 560: 030b3216 movweq r3, #45590 ; 0xb216 + 564: 0b093808 bleq 24e58c + 568: 0c0f0d0f stceq 13, cr0, [pc], {15} + 56c: 0300000f movweq r0, #15 ; 0xf + 570: 1649000f strbne r0, [r9], -pc + 574: 11010000 tstne r1, r0 + 578: 25080301 strcs r0, [r8, #-769] + 57c: 100b1308 andne r1, fp, r8, lsl #6 + 580: 00064306 andeq r4, r6, r6, lsl #6 + 584: 01110600 tsteq r1, r0, lsl #12 + 588: 08250803 stmdaeq r5!, {r0, r1, fp} + 58c: 01110b13 tsteq r1, r3, lsl fp + 590: 06100112 undefined + 594: e7064ee6 str r4, [r6, -r6, ror #29] + 598: 0000164e andeq r1, r0, lr, asr #12 + 59c: 0101131a tsteq r1, sl, lsl r3 + 5a0: 0b080313 bleq 2011f4 + 5a4: 1800000f stmdane r0, {r0, r1, r2, r3} + 5a8: 13010113 movwne r0, #4371 ; 0x1113 + 5ac: 00000f0b andeq r0, r0, fp, lsl #30 + 5b0: 01011514 tsteq r1, r4, lsl r5 + 5b4: 1d000013 stcne 0, cr0, [r0, #-76] + 5b8: 08030016 stmdaeq r3, {r1, r2, r4} + 5bc: 0f3a1649 svceq 0x003a1649 + 5c0: 0f390f3b svceq 0x00390f3b + 5c4: 171c0000 ldrne r0, [ip, -r0] + 5c8: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 5cc: 000f0b08 andeq r0, pc, r8, lsl #22 + 5d0: 011d0c00 tsteq sp, r0, lsl #24 + 5d4: 16311301 ldrtne r1, [r1], -r1, lsl #6 + 5d8: 01120111 tsteq r2, r1, lsl r1 + 5dc: 21170000 tstcs r7, r0 + 5e0: 000f2f00 andeq r2, pc, r0, lsl #30 + 5e4: 00240200 eoreq r0, r4, r0, lsl #4 + 5e8: 0f0b0803 svceq 0x000b0803 + 5ec: 00000b3e andeq r0, r0, lr, lsr fp + 5f0: 49002605 stmdbmi r0, {r0, r2, r9, sl, sp} + 5f4: 13000016 movwne r0, #22 ; 0x16 + 5f8: 08030028 stmdaeq r3, {r3, r5} + 5fc: 00000f1c andeq r0, r0, ip, lsl pc + 600: 01012e0a tsteq r1, sl, lsl #28 + 604: 3a080313 bcc 201258 + 608: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 60c: 400b3f0f andmi r3, fp, pc, lsl #30 + 610: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 614: 0f000001 svceq 0x00000001 + 618: 1301012e movwne r0, #4398 ; 0x112e + 61c: 0f3a0803 svceq 0x003a0803 + 620: 0f390f3b svceq 0x00390f3b + 624: 16490b3f undefined + 628: 00000b20 andeq r0, r0, r0, lsr #22 + 62c: 01012e07 tsteq r1, r7, lsl #28 + 630: 3a080313 bcc 201284 + 634: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 638: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} + 63c: 11064016 tstne r6, r6, lsl r0 + 640: 00011201 andeq r1, r1, r1, lsl #4 + 644: 00341100 eorseq r1, r4, r0, lsl #2 + 648: 0f3a0803 svceq 0x003a0803 + 64c: 0f390f3b svceq 0x00390f3b + 650: 00001649 andeq r1, r0, r9, asr #12 + 654: 0300340b movweq r3, #1035 ; 0x40b + 658: 3b0f3a08 blcc 3cee80 + 65c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 660: 00060216 andeq r0, r6, r6, lsl r2 + 664: 00340400 eorseq r0, r4, r0, lsl #8 + 668: 16490803 strbne r0, [r9], -r3, lsl #16 + 66c: 0f3b0f3a svceq 0x003b0f3a + 670: 0b3f0f39 bleq fc435c + 674: 00000902 andeq r0, r0, r2, lsl #18 + 678: 3100340e tstcc r0, lr, lsl #8 + 67c: 00060216 andeq r0, r6, r6, lsl r2 + 680: 00000000 andeq r0, r0, r0 + 684: 01010116 tsteq r1, r6, lsl r1 + 688: 00164913 andseq r4, r6, r3, lsl r9 + 68c: 01041400 tsteq r4, r0, lsl #8 + 690: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 694: 00000f0b andeq r0, r0, fp, lsl #30 + 698: 03000511 movweq r0, #1297 ; 0x511 + 69c: 3b0f3a08 blcc 3ceec4 + 6a0: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 6a4: 0a000016 beq 704 <__FIQ_stack_size+0x304> + 6a8: 08030005 stmdaeq r3, {r0, r2} + 6ac: 0f3b0f3a svceq 0x003b0f3a + 6b0: 16490f39 undefined + 6b4: 00000602 andeq r0, r0, r2, lsl #12 + 6b8: 3100050e tstcc r0, lr, lsl #10 + 6bc: 00060216 andeq r0, r6, r6, lsl r2 + 6c0: 010b0c00 tsteq fp, r0, lsl #24 + 6c4: 01111301 tsteq r1, r1, lsl #6 + 6c8: 00000112 andeq r0, r0, r2, lsl r1 + 6cc: 49000d19 stmdbmi r0, {r0, r3, r4, r8, sl, fp} + 6d0: 030b3216 movweq r3, #45590 ; 0xb216 + 6d4: 00093808 andeq r3, r9, r8, lsl #16 + 6d8: 000f0500 andeq r0, pc, r0, lsl #10 + 6dc: 00001649 andeq r1, r0, r9, asr #12 + 6e0: 03011101 movweq r1, #4353 ; 0x1101 + 6e4: 13082508 movwne r2, #34056 ; 0x8508 + 6e8: 4306100b movwmi r1, #24587 ; 0x600b + 6ec: 06000006 streq r0, [r0], -r6 + 6f0: 08030111 stmdaeq r3, {r0, r4, r8} + 6f4: 0b130825 bleq 4c2790 + 6f8: 01120111 tsteq r2, r1, lsl r1 + 6fc: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + 700: 164ee706 strbne lr, [lr], -r6, lsl #14 + 704: 13180000 tstne r8, #0 ; 0x0 + 708: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 70c: 000f0b08 andeq r0, pc, r8, lsl #22 + 710: 00161a00 andseq r1, r6, r0, lsl #20 + 714: 16490803 strbne r0, [r9], -r3, lsl #16 + 718: 0f3b0f3a svceq 0x003b0f3a + 71c: 00000f39 andeq r0, r0, r9, lsr pc + 720: 01011d0d tsteq r1, sp, lsl #26 + 724: 11163113 tstne r6, r3, lsl r1 + 728: 00011201 andeq r1, r1, r1, lsl #4 + 72c: 00211700 eoreq r1, r1, r0, lsl #14 + 730: 00000f2f andeq r0, r0, pc, lsr #30 + 734: 03002402 movweq r2, #1026 ; 0x402 + 738: 3e0f0b08 fmacdcc d0, d15, d8 + 73c: 0300000b movweq r0, #11 ; 0xb + 740: 16490026 strbne r0, [r9], -r6, lsr #32 + 744: 28150000 ldmdacs r5, {} + 748: 1c080300 stcne 3, cr0, [r8], {0} + 74c: 1200000f andne r0, r0, #15 ; 0xf + 750: 1301012e movwne r0, #4398 ; 0x112e + 754: 0f3a0803 svceq 0x003a0803 + 758: 0f390f3b svceq 0x00390f3b + 75c: 0b200b3f bleq 803460 + 760: 2e080000 cdpcs 0, 0, cr0, cr8, cr0, {0} + 764: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 768: 3b0f3a08 blcc 3cef90 + 76c: 3f0f390f svccc 0x000f390f + 770: 1106400b tstne r6, fp + 774: 00011201 andeq r1, r1, r1, lsl #4 + 778: 012e1000 teqeq lr, r0 + 77c: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 780: 0f3b0f3a svceq 0x003b0f3a + 784: 0b3f0f39 bleq fc4470 + 788: 0b201649 bleq 8060b4 + 78c: 2e090000 cdpcs 0, 0, cr0, cr9, cr0, {0} + 790: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 794: 3b0f3a08 blcc 3cefbc + 798: 3f0f390f svccc 0x000f390f + 79c: 4016490b andsmi r4, r6, fp, lsl #18 + 7a0: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 7a4: 13000001 movwne r0, #1 ; 0x1 + 7a8: 08030034 stmdaeq r3, {r2, r4, r5} + 7ac: 0f3b0f3a svceq 0x003b0f3a + 7b0: 16490f39 undefined + 7b4: 340b0000 strcc r0, [fp] + 7b8: 3a080300 bcc 2013c0 + 7bc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 7c0: 0216490f andseq r4, r6, #245760 ; 0x3c000 + 7c4: 04000006 streq r0, [r0], #-6 + 7c8: 08030034 stmdaeq r3, {r2, r4, r5} + 7cc: 0f3a1649 svceq 0x003a1649 + 7d0: 0f390f3b svceq 0x00390f3b + 7d4: 09020b3f stmdbeq r2, {r0, r1, r2, r3, r4, r5, r8, r9, fp} + 7d8: 340f0000 strcc r0, [pc], #0 ; 7e0 <__FIQ_stack_size+0x3e0> + 7dc: 02163100 andseq r3, r6, #0 ; 0x0 + 7e0: 07000006 streq r0, [r0, -r6] + 7e4: 16490035 undefined + 7e8: 00000000 andeq r0, r0, r0 + 7ec: 01010408 tsteq r1, r8, lsl #8 + 7f0: 0b080313 bleq 201444 + 7f4: 0a00000f beq 838 <__USR_stack_size+0x38> + 7f8: 13010104 movwne r0, #4356 ; 0x1104 + 7fc: 00000f0b andeq r0, r0, fp, lsl #30 + 800: 03000505 movweq r0, #1285 ; 0x505 + 804: 3b0f3a08 blcc 3cf02c + 808: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 80c: 00060216 andeq r0, r6, r6, lsl r2 + 810: 010b0700 tsteq fp, r0, lsl #14 + 814: 01111301 tsteq r1, r1, lsl #6 + 818: 00000112 andeq r0, r0, r2, lsl r1 + 81c: 49000d0d stmdbmi r0, {r0, r2, r3, r8, sl, fp} + 820: 030b3216 movweq r3, #45590 ; 0xb216 + 824: 00093808 andeq r3, r9, r8, lsl #16 + 828: 000d0c00 andeq r0, sp, r0, lsl #24 + 82c: 0b321649 bleq c86158 + 830: 09380803 ldmdbeq r8!, {r0, r1, fp} + 834: 0f0d0f0b svceq 0x000d0f0b + 838: 00000f0c andeq r0, r0, ip, lsl #30 + 83c: 03011101 movweq r1, #4353 ; 0x1101 + 840: 13082508 movwne r2, #34056 ; 0x8508 + 844: 4306100b movwmi r1, #24587 ; 0x600b + 848: 02000006 andeq r0, r0, #6 ; 0x6 + 84c: 08030111 stmdaeq r3, {r0, r4, r8} + 850: 0b130825 bleq 4c28ec + 854: 01120111 tsteq r2, r1, lsl r1 + 858: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + 85c: 164ee706 strbne lr, [lr], -r6, lsl #14 + 860: 130b0000 movwne r0, #45056 ; 0xb000 + 864: 0b130101 bleq 4c0c70 + 868: 0f00000f svceq 0x0000000f + 86c: 08030016 stmdaeq r3, {r1, r2, r4} + 870: 0f3a1649 svceq 0x003a1649 + 874: 0f390f3b svceq 0x00390f3b + 878: 170e0000 strne r0, [lr, -r0] + 87c: 0b130101 bleq 4c0c88 + 880: 0300000f movweq r0, #15 ; 0xf + 884: 08030024 stmdaeq r3, {r2, r5} + 888: 0b3e0f0b bleq f844bc + 88c: 28090000 stmdacs r9, {} + 890: 1c080300 stcne 3, cr0, [r8], {0} + 894: 0400000f streq r0, [r0], #-15 + 898: 1301012e movwne r0, #4398 ; 0x112e + 89c: 0f3a0803 svceq 0x003a0803 + 8a0: 0f390f3b svceq 0x00390f3b + 8a4: 16490b3f undefined + 8a8: 01110640 tsteq r1, r0, asr #12 + 8ac: 00000112 andeq r0, r0, r2, lsl r1 + 8b0: 03003406 movweq r3, #1030 ; 0x406 + 8b4: 3b0f3a08 blcc 3cf0dc + 8b8: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 8bc: 00060216 andeq r0, r6, r6, lsl r2 + 8c0: 00000000 andeq r0, r0, r0 + 8c4: 01010116 tsteq r1, r6, lsl r1 + 8c8: 00164913 andseq r4, r6, r3, lsl r9 + 8cc: 01041200 tsteq r4, r0, lsl #4 + 8d0: 0f0b1301 svceq 0x000b1301 + 8d4: 05110000 ldreq r0, [r1] + 8d8: 3a080300 bcc 2014e0 + 8dc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 8e0: 0016490f andseq r4, r6, pc, lsl #18 + 8e4: 00050900 andeq r0, r5, r0, lsl #18 + 8e8: 0f3a0803 svceq 0x003a0803 + 8ec: 0f390f3b svceq 0x00390f3b + 8f0: 06021649 streq r1, [r2], -r9, asr #12 + 8f4: 050b0000 streq r0, [fp] + 8f8: 3a080300 bcc 201500 + 8fc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 900: 0216490f andseq r4, r6, #245760 ; 0x3c000 + 904: 0f000009 svceq 0x00000009 + 908: 16310005 ldrtne r0, [r1], -r5 + 90c: 00000602 andeq r0, r0, r2, lsl #12 + 910: 49000515 stmdbmi r0, {r0, r2, r4, r8, sl} + 914: 0c000016 stceq 0, cr0, [r0], {22} + 918: 1301010b movwne r0, #4363 ; 0x110b + 91c: 01120111 tsteq r2, r1, lsl r1 + 920: 0d190000 ldceq 0, cr0, [r9] + 924: 32164900 andscc r4, r6, #0 ; 0x0 + 928: 3808030b stmdacc r8, {r0, r1, r3, r8, r9} + 92c: 1a000009 bne 958 <__USR_stack_size+0x158> + 930: 1649000d strbne r0, [r9], -sp + 934: 08030b32 stmdaeq r3, {r1, r4, r5, r8, r9, fp} + 938: 0f0b0938 svceq 0x000b0938 + 93c: 0f0c0f0d svceq 0x000c0f0d + 940: 0f060000 svceq 0x00060000 + 944: 00164900 andseq r4, r6, r0, lsl #18 + 948: 01110100 tsteq r1, r0, lsl #2 + 94c: 08250803 stmdaeq r5!, {r0, r1, fp} + 950: 06100b13 undefined + 954: 00000643 andeq r0, r0, r3, asr #12 + 958: 03011105 movweq r1, #4357 ; 0x1105 + 95c: 13082508 movwne r2, #34056 ; 0x8508 + 960: 1201110b andne r1, r1, #-1073741822 ; 0xc0000002 + 964: e6061001 str r1, [r6], -r1 + 968: 4ee7064e cdpmi 6, 14, cr0, cr7, cr14, {2} + 96c: 18000016 stmdane r0, {r1, r2, r4} + 970: 13010113 movwne r0, #4371 ; 0x1113 + 974: 00000f0b andeq r0, r0, fp, lsl #30 + 978: 01011514 tsteq r1, r4, lsl r5 + 97c: 1b000013 blne 9d0 <__USR_stack_size+0x1d0> + 980: 08030016 stmdaeq r3, {r1, r2, r4} + 984: 0f3a1649 svceq 0x003a1649 + 988: 0f390f3b svceq 0x00390f3b + 98c: 1d0e0000 stcne 0, cr0, [lr] + 990: 31130101 tstcc r3, r1, lsl #2 + 994: 12011116 andne r1, r1, #-2147483643 ; 0x80000005 + 998: 17000001 strne r0, [r0, -r1] + 99c: 0f2f0021 svceq 0x002f0021 + 9a0: 24020000 strcs r0, [r2] + 9a4: 0b080300 bleq 2015ac + 9a8: 000b3e0f andeq r3, fp, pc, lsl #28 + 9ac: 00260700 eoreq r0, r6, r0, lsl #14 + 9b0: 00001649 andeq r1, r0, r9, asr #12 + 9b4: 03002813 movweq r2, #2067 ; 0x813 + 9b8: 000f1c08 andeq r1, pc, r8, lsl #24 + 9bc: 012e0800 teqeq lr, r0, lsl #16 + 9c0: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 9c4: 0f3b0f3a svceq 0x003b0f3a + 9c8: 0b3f0f39 bleq fc46b4 + 9cc: 01110640 tsteq r1, r0, asr #12 + 9d0: 00000112 andeq r0, r0, r2, lsl r1 + 9d4: 01012e10 tsteq r1, r0, lsl lr + 9d8: 3a080313 bcc 20162c + 9dc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 9e0: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} + 9e4: 000b2016 andeq r2, fp, r6, lsl r0 + 9e8: 012e0d00 teqeq lr, r0, lsl #26 + 9ec: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 9f0: 0f3b0f3a svceq 0x003b0f3a + 9f4: 0b3f0f39 bleq fc46e0 + 9f8: 06401649 strbeq r1, [r0], -r9, asr #12 + 9fc: 01120111 tsteq r2, r1, lsl r1 + a00: 340a0000 strcc r0, [sl] + a04: 3a080300 bcc 20160c + a08: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + a0c: 0216490f andseq r4, r6, #245760 ; 0x3c000 + a10: 03000006 movweq r0, #6 ; 0x6 + a14: 08030034 stmdaeq r3, {r2, r4, r5} + a18: 0f3a1649 svceq 0x003a1649 + a1c: 0f390f3b svceq 0x00390f3b + a20: 09020b3f stmdbeq r2, {r0, r1, r2, r3, r4, r5, r8, r9, fp} + a24: 35040000 strcc r0, [r4] + a28: 00164900 andseq r4, r6, r0, lsl #18 + a2c: 00000000 andeq r0, r0, r0 + a30: 0101010c tsteq r1, ip, lsl #2 + a34: 00164913 andseq r4, r6, r3, lsl r9 + a38: 01040800 tsteq r4, r0, lsl #16 + a3c: 08031301 stmdaeq r3, {r0, r8, r9, ip} + a40: 00000f0b andeq r0, r0, fp, lsl #30 + a44: 03000506 movweq r0, #1286 ; 0x506 + a48: 3b0f3a08 blcc 3cf270 + a4c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + a50: 00060216 andeq r0, r6, r6, lsl r2 + a54: 00050b00 andeq r0, r5, r0, lsl #22 + a58: 00001649 andeq r1, r0, r9, asr #12 + a5c: 01010b07 tsteq r1, r7, lsl #22 + a60: 12011113 andne r1, r1, #-1073741820 ; 0xc0000004 + a64: 0f000001 svceq 0x00000001 + a68: 1649000d strbne r0, [r9], -sp + a6c: 08030b32 stmdaeq r3, {r1, r4, r5, r8, r9, fp} + a70: 00000938 andeq r0, r0, r8, lsr r9 + a74: 49000d10 stmdbmi r0, {r4, r8, sl, fp} + a78: 030b3216 movweq r3, #45590 ; 0xb216 + a7c: 0b093808 bleq 24eaa4 + a80: 0c0f0d0f stceq 13, cr0, [pc], {15} + a84: 0400000f streq r0, [r0], #-15 + a88: 1649000f strbne r0, [r9], -pc + a8c: 11010000 tstne r1, r0 + a90: 25080301 strcs r0, [r8, #-769] + a94: 100b1308 andne r1, fp, r8, lsl #6 + a98: 00064306 andeq r4, r6, r6, lsl #6 + a9c: 01110200 tsteq r1, r0, lsl #4 + aa0: 08250803 stmdaeq r5!, {r0, r1, fp} + aa4: 01110b13 tsteq r1, r3, lsl fp + aa8: 06100112 undefined + aac: e7064ee6 str r4, [r6, -r6, ror #29] + ab0: 0000164e andeq r1, r0, lr, asr #12 + ab4: 0101130e tsteq r1, lr, lsl #6 + ab8: 0b080313 bleq 20170c + abc: 0a00000f beq b00 <__USR_stack_size+0x300> + ac0: 13010115 movwne r0, #4373 ; 0x1115 + ac4: 16110000 ldrne r0, [r1], -r0 + ac8: 49080300 stmdbmi r8, {r8, r9} + acc: 3b0f3a16 blcc 3cf32c + ad0: 000f390f andeq r3, pc, pc, lsl #18 + ad4: 00210d00 eoreq r0, r1, r0, lsl #26 + ad8: 00000f2f andeq r0, r0, pc, lsr #30 + adc: 03002403 movweq r2, #1027 ; 0x403 + ae0: 3e0f0b08 fmacdcc d0, d15, d8 + ae4: 0900000b stmdbeq r0, {r0, r1, r3} + ae8: 08030028 stmdaeq r3, {r3, r5} + aec: 00000f1c andeq r0, r0, ip, lsl pc + af0: 01012e05 tsteq r1, r5, lsl #28 + af4: 3a080313 bcc 201748 + af8: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + afc: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} + b00: 11064016 tstne r6, r6, lsl r0 + b04: 00011201 andeq r1, r1, r1, lsl #4 + b08: 00000000 andeq r0, r0, r0 + b0c: 03011101 movweq r1, #4353 ; 0x1101 + b10: 13082508 movwne r2, #34056 ; 0x8508 + b14: 4306100b movwmi r1, #24587 ; 0x600b + b18: 02000006 andeq r0, r0, #6 ; 0x6 + b1c: 08030111 stmdaeq r3, {r0, r4, r8} + b20: 0b130825 bleq 4c2bbc + b24: 01120111 tsteq r2, r1, lsl r1 + b28: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + b2c: 164ee706 strbne lr, [lr], -r6, lsl #14 + b30: 16060000 strne r0, [r6], -r0 + b34: 49080300 stmdbmi r8, {r8, r9} + b38: 3b0f3a16 blcc 3cf398 + b3c: 000f390f andeq r3, pc, pc, lsl #18 + b40: 00240300 eoreq r0, r4, r0, lsl #6 + b44: 0f0b0803 svceq 0x000b0803 + b48: 00000b3e andeq r0, r0, lr, lsr fp + b4c: 01012e04 tsteq r1, r4, lsl #28 + b50: 3a080313 bcc 2017a4 + b54: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + b58: 400b3f0f andmi r3, fp, pc, lsl #30 + b5c: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + b60: 05000001 streq r0, [r0, #-1] + b64: 08030034 stmdaeq r3, {r2, r4, r5} + b68: 0f3b0f3a svceq 0x003b0f3a + b6c: 16490f39 undefined + b70: 00000602 andeq r0, r0, r2, lsl #12 + b74: 00000000 andeq r0, r0, r0 + b78: 01010111 tsteq r1, r1, lsl r1 + b7c: 00164913 andseq r4, r6, r3, lsl r9 + b80: 01040f00 tsteq r4, r0, lsl #30 + b84: 08031301 stmdaeq r3, {r0, r8, r9, ip} + b88: 00000f0b andeq r0, r0, fp, lsl #30 + b8c: 0101040d tsteq r1, sp, lsl #8 + b90: 000f0b13 andeq r0, pc, r3, lsl fp + b94: 00050900 andeq r0, r5, r0, lsl #18 + b98: 0f3a0803 svceq 0x003a0803 + b9c: 0f390f3b svceq 0x00390f3b + ba0: 06021649 streq r1, [r2], -r9, asr #12 + ba4: 0b0b0000 bleq 2c0bac + ba8: 11130101 tstne r3, r1, lsl #2 + bac: 00011201 andeq r1, r1, r1, lsl #4 + bb0: 000d1500 andeq r1, sp, r0, lsl #10 + bb4: 0b321649 bleq c864e0 + bb8: 09380803 ldmdbeq r8!, {r0, r1, fp} + bbc: 0d140000 ldceq 0, cr0, [r4] + bc0: 32164900 andscc r4, r6, #0 ; 0x0 + bc4: 3808030b stmdacc r8, {r0, r1, r3, r8, r9} + bc8: 0d0f0b09 vstreq d0, [pc, #-36] ; bac <__USR_stack_size+0x3ac> + bcc: 000f0c0f andeq r0, pc, pc, lsl #24 + bd0: 000f0300 andeq r0, pc, r0, lsl #6 + bd4: 00001649 andeq r1, r0, r9, asr #12 + bd8: 03011101 movweq r1, #4353 ; 0x1101 + bdc: 13082508 movwne r2, #34056 ; 0x8508 + be0: 4306100b movwmi r1, #24587 ; 0x600b + be4: 06000006 streq r0, [r0], -r6 + be8: 08030111 stmdaeq r3, {r0, r4, r8} + bec: 0b130825 bleq 4c2c88 + bf0: 01120111 tsteq r2, r1, lsl r1 + bf4: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + bf8: 164ee706 strbne lr, [lr], -r6, lsl #14 + bfc: 13160000 tstne r6, #0 ; 0x0 + c00: 03130101 tsteq r3, #1073741824 ; 0x40000000 + c04: 000f0b08 andeq r0, pc, r8, lsl #22 + c08: 01131300 tsteq r3, r0, lsl #6 + c0c: 0f0b1301 svceq 0x000b1301 + c10: 15100000 ldrne r0, [r0] + c14: 00130101 andseq r0, r3, r1, lsl #2 + c18: 00161800 andseq r1, r6, r0, lsl #16 + c1c: 16490803 strbne r0, [r9], -r3, lsl #16 + c20: 0f3b0f3a svceq 0x003b0f3a + c24: 00000f39 andeq r0, r0, r9, lsr pc + c28: 01011717 tsteq r1, r7, lsl r7 + c2c: 000f0b13 andeq r0, pc, r3, lsl fp + c30: 00211200 eoreq r1, r1, r0, lsl #4 + c34: 00000f2f andeq r0, r0, pc, lsr #30 + c38: 03002402 movweq r2, #1026 ; 0x402 + c3c: 3e0f0b08 fmacdcc d0, d15, d8 + c40: 0500000b streq r0, [r0, #-11] + c44: 16490026 strbne r0, [r9], -r6, lsr #32 + c48: 280e0000 stmdacs lr, {} + c4c: 1c080300 stcne 3, cr0, [r8], {0} + c50: 0800000f stmdaeq r0, {r0, r1, r2, r3} + c54: 1301012e movwne r0, #4398 ; 0x112e + c58: 0f3a0803 svceq 0x003a0803 + c5c: 0f390f3b svceq 0x00390f3b + c60: 06400b3f undefined + c64: 01120111 tsteq r2, r1, lsl r1 + c68: 2e0c0000 cdpcs 0, 0, cr0, cr12, cr0, {0} + c6c: 03130101 tsteq r3, #1073741824 ; 0x40000000 + c70: 3b0f3a08 blcc 3cf498 + c74: 3f0f390f svccc 0x000f390f + c78: 4016490b andsmi r4, r6, fp, lsl #18 + c7c: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + c80: 0a000001 beq c8c <__USR_stack_size+0x48c> + c84: 08030034 stmdaeq r3, {r2, r4, r5} + c88: 0f3b0f3a svceq 0x003b0f3a + c8c: 16490f39 undefined + c90: 00000602 andeq r0, r0, r2, lsl #12 + c94: 03003404 movweq r3, #1028 ; 0x404 + c98: 3a164908 bcc 5930c0 + c9c: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + ca0: 020b3f0f andeq r3, fp, #60 ; 0x3c + ca4: 07000009 streq r0, [r0, -r9] + ca8: 16490035 undefined + cac: 00000000 andeq r0, r0, r0 + +Disassembly of section .debug_frame: + +00000000 <.debug_frame>: + 0: 00000028 andeq r0, r0, r8, lsr #32 + 4: ffffffff undefined instruction 0xffffffff + 8: 7c020003 stcvc 0, cr0, [r2], {3} + c: 000d0c0e andeq r0, sp, lr, lsl #24 + 10: 01070007 tsteq r7, r7 + 14: 03070207 movweq r0, #29191 ; 0x7207 + 18: 05080408 streq r0, [r8, #-1032] + 1c: 07080608 streq r0, [r8, -r8, lsl #12] + 20: 09080808 stmdbeq r8, {r3, fp} + 24: 0b080a08 bleq 20284c + 28: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 2c: 00000014 andeq r0, r0, r4, lsl r0 + 30: 00000000 andeq r0, r0, r0 + 34: 00403d84 subeq r3, r0, r4, lsl #27 + 38: 00000024 andeq r0, r0, r4, lsr #32 + 3c: 4d080e41 stcmi 14, cr0, [r8, #-260] + 40: 0000000e andeq r0, r0, lr + 44: 00000028 andeq r0, r0, r8, lsr #32 + 48: ffffffff undefined instruction 0xffffffff + 4c: 7c020003 stcvc 0, cr0, [r2], {3} + 50: 000d0c0e andeq r0, sp, lr, lsl #24 + 54: 01070007 tsteq r7, r7 + 58: 03070207 movweq r0, #29191 ; 0x7207 + 5c: 05080408 streq r0, [r8, #-1032] + 60: 07080608 streq r0, [r8, -r8, lsl #12] + 64: 09080808 stmdbeq r8, {r3, fp} + 68: 0b080a08 bleq 202890 + 6c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 70: 00000014 andeq r0, r0, r4, lsl r0 + 74: 00000044 andeq r0, r0, r4, asr #32 + 78: 00403da8 subeq r3, r0, r8, lsr #27 + 7c: 0000001e andeq r0, r0, lr, lsl r0 + 80: 4d080e41 stcmi 14, cr0, [r8, #-260] + 84: 0000000e andeq r0, r0, lr + 88: 00000028 andeq r0, r0, r8, lsr #32 + 8c: ffffffff undefined instruction 0xffffffff + 90: 7c020003 stcvc 0, cr0, [r2], {3} + 94: 000d0c0e andeq r0, sp, lr, lsl #24 + 98: 01070007 tsteq r7, r7 + 9c: 03070207 movweq r0, #29191 ; 0x7207 + a0: 05080408 streq r0, [r8, #-1032] + a4: 07080608 streq r0, [r8, -r8, lsl #12] + a8: 09080808 stmdbeq r8, {r3, fp} + ac: 0b080a08 bleq 2028d4 + b0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + b4: 00000028 andeq r0, r0, r8, lsr #32 + b8: 00000088 andeq r0, r0, r8, lsl #1 + bc: 00401964 subeq r1, r0, r4, ror #18 + c0: 000001f2 strdeq r0, [r0], -r2 + c4: 84100e41 ldrhi r0, [r0], #-3649 + c8: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + cc: 0ef40201 cdpeq 2, 15, cr0, cr4, cr1, {0} + d0: 0e09410c adfeqe f4, f1, #4.0 + d4: 040e4100 streq r4, [lr], #-256 + d8: 0e41c5c4 cdpeq 5, 4, cr12, cr1, cr4, {6} + dc: 00000000 andeq r0, r0, r0 + e0: 00000028 andeq r0, r0, r8, lsr #32 + e4: ffffffff undefined instruction 0xffffffff + e8: 7c020003 stcvc 0, cr0, [r2], {3} + ec: 000d0c0e andeq r0, sp, lr, lsl #24 + f0: 01070007 tsteq r7, r7 + f4: 03070207 movweq r0, #29191 ; 0x7207 + f8: 05080408 streq r0, [r8, #-1032] + fc: 07080608 streq r0, [r8, -r8, lsl #12] + 100: 09080808 stmdbeq r8, {r3, fp} + 104: 0b080a08 bleq 20292c + 108: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 10c: 00000024 andeq r0, r0, r4, lsr #32 + 110: 000000e0 andeq r0, r0, r0, ror #1 + 114: 00401b56 subeq r1, r0, r6, asr fp + 118: 00000058 andeq r0, r0, r8, asr r0 + 11c: 84100e41 ldrhi r0, [r0], #-3649 + 120: 86038504 strhi r8, [r3], -r4, lsl #10 + 124: 68018e02 stmdavs r1, {r1, r9, sl, fp, pc} + 128: 41000e09 tstmi r0, r9, lsl #28 + 12c: c5c4040e strbgt r0, [r4, #1038] + 130: 000e41c6 andeq r4, lr, r6, asr #3 + 134: 00000028 andeq r0, r0, r8, lsr #32 + 138: ffffffff undefined instruction 0xffffffff + 13c: 7c020003 stcvc 0, cr0, [r2], {3} + 140: 000d0c0e andeq r0, sp, lr, lsl #24 + 144: 01070007 tsteq r7, r7 + 148: 03070207 movweq r0, #29191 ; 0x7207 + 14c: 05080408 streq r0, [r8, #-1032] + 150: 07080608 streq r0, [r8, -r8, lsl #12] + 154: 09080808 stmdbeq r8, {r3, fp} + 158: 0b080a08 bleq 202980 + 15c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 160: 0000001c andeq r0, r0, ip, lsl r0 + 164: 00000134 andeq r0, r0, r4, lsr r1 + 168: 00401bb4 strheq r1, [r0], #-180 + 16c: 00000068 andeq r0, r0, r8, rrx + 170: 84180e41 ldrhi r0, [r8], #-3649 + 174: 86048505 strhi r8, [r4], -r5, lsl #10 + 178: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 17c: 140e7201 strne r7, [lr], #-513 + 180: 00000028 andeq r0, r0, r8, lsr #32 + 184: ffffffff undefined instruction 0xffffffff + 188: 7c020003 stcvc 0, cr0, [r2], {3} + 18c: 000d0c0e andeq r0, sp, lr, lsl #24 + 190: 01070007 tsteq r7, r7 + 194: 03070207 movweq r0, #29191 ; 0x7207 + 198: 05080408 streq r0, [r8, #-1032] + 19c: 07080608 streq r0, [r8, -r8, lsl #12] + 1a0: 09080808 stmdbeq r8, {r3, fp} + 1a4: 0b080a08 bleq 2029cc + 1a8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1ac: 00000020 andeq r0, r0, r0, lsr #32 + 1b0: 00000180 andeq r0, r0, r0, lsl #3 + 1b4: 00401c24 subeq r1, r0, r4, lsr #24 + 1b8: 00000194 muleq r0, r4, r1 + 1bc: 841c0e41 ldrhi r0, [ip], #-3649 + 1c0: 86048505 strhi r8, [r4], -r5, lsl #10 + 1c4: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1c8: 500e4101 andpl r4, lr, r1, lsl #2 + 1cc: 140ec202 strne ip, [lr], #-514 + 1d0: 00000028 andeq r0, r0, r8, lsr #32 + 1d4: ffffffff undefined instruction 0xffffffff + 1d8: 7c020003 stcvc 0, cr0, [r2], {3} + 1dc: 000d0c0e andeq r0, sp, lr, lsl #24 + 1e0: 01070007 tsteq r7, r7 + 1e4: 03070207 movweq r0, #29191 ; 0x7207 + 1e8: 05080408 streq r0, [r8, #-1032] + 1ec: 07080608 streq r0, [r8, -r8, lsl #12] + 1f0: 09080808 stmdbeq r8, {r3, fp} + 1f4: 0b080a08 bleq 202a1c + 1f8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1fc: 00000024 andeq r0, r0, r4, lsr #32 + 200: 000001d0 ldrdeq r0, [r0], -r0 + 204: 00401dbc strheq r1, [r0], #-220 + 208: 000001f0 strdeq r0, [r0], -r0 + 20c: 84240e41 strthi r0, [r4], #-3649 + 210: 86048505 strhi r8, [r4], -r5, lsl #10 + 214: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 218: 680e4101 stmdavs lr, {r0, r8, lr} + 21c: 140ee602 strne lr, [lr], #-1538 + 220: 00680e41 rsbeq r0, r8, r1, asr #28 + 224: 00000028 andeq r0, r0, r8, lsr #32 + 228: ffffffff undefined instruction 0xffffffff + 22c: 7c020003 stcvc 0, cr0, [r2], {3} + 230: 000d0c0e andeq r0, sp, lr, lsl #24 + 234: 01070007 tsteq r7, r7 + 238: 03070207 movweq r0, #29191 ; 0x7207 + 23c: 05080408 streq r0, [r8, #-1032] + 240: 07080608 streq r0, [r8, -r8, lsl #12] + 244: 09080808 stmdbeq r8, {r3, fp} + 248: 0b080a08 bleq 202a70 + 24c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 250: 00000014 andeq r0, r0, r4, lsl r0 + 254: 00000224 andeq r0, r0, r4, lsr #4 + 258: 00401fac subeq r1, r0, ip, lsr #31 + 25c: 00000050 andeq r0, r0, r0, asr r0 + 260: 84080e41 strhi r0, [r8], #-3649 + 264: 00018e02 andeq r8, r1, r2, lsl #28 + 268: 00000028 andeq r0, r0, r8, lsr #32 + 26c: ffffffff undefined instruction 0xffffffff + 270: 7c020003 stcvc 0, cr0, [r2], {3} + 274: 000d0c0e andeq r0, sp, lr, lsl #24 + 278: 01070007 tsteq r7, r7 + 27c: 03070207 movweq r0, #29191 ; 0x7207 + 280: 05080408 streq r0, [r8, #-1032] + 284: 07080608 streq r0, [r8, -r8, lsl #12] + 288: 09080808 stmdbeq r8, {r3, fp} + 28c: 0b080a08 bleq 202ab4 + 290: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 294: 00000014 andeq r0, r0, r4, lsl r0 + 298: 00000268 andeq r0, r0, r8, ror #4 + 29c: 00401ffc strdeq r1, [r0], #-252 + 2a0: 00000048 andeq r0, r0, r8, asr #32 + 2a4: 84080e41 strhi r0, [r8], #-3649 + 2a8: 00018e02 andeq r8, r1, r2, lsl #28 + 2ac: 00000028 andeq r0, r0, r8, lsr #32 + 2b0: ffffffff undefined instruction 0xffffffff + 2b4: 7c020003 stcvc 0, cr0, [r2], {3} + 2b8: 000d0c0e andeq r0, sp, lr, lsl #24 + 2bc: 01070007 tsteq r7, r7 + 2c0: 03070207 movweq r0, #29191 ; 0x7207 + 2c4: 05080408 streq r0, [r8, #-1032] + 2c8: 07080608 streq r0, [r8, -r8, lsl #12] + 2cc: 09080808 stmdbeq r8, {r3, fp} + 2d0: 0b080a08 bleq 202af8 + 2d4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 2d8: 00000020 andeq r0, r0, r0, lsr #32 + 2dc: 000002ac andeq r0, r0, ip, lsr #5 + 2e0: 00402044 subeq r2, r0, r4, asr #32 + 2e4: 0000003c andeq r0, r0, ip, lsr r0 + 2e8: 0284080e addeq r0, r4, #917504 ; 0xe0000 + 2ec: 095b018e ldmdbeq fp, {r1, r2, r3, r7, r8}^ + 2f0: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} + 2f4: 0e41c404 cdpeq 4, 4, cr12, cr1, cr4, {0} + 2f8: 00000000 andeq r0, r0, r0 + 2fc: 00000028 andeq r0, r0, r8, lsr #32 + 300: ffffffff undefined instruction 0xffffffff + 304: 7c020003 stcvc 0, cr0, [r2], {3} + 308: 000d0c0e andeq r0, sp, lr, lsl #24 + 30c: 01070007 tsteq r7, r7 + 310: 03070207 movweq r0, #29191 ; 0x7207 + 314: 05080408 streq r0, [r8, #-1032] + 318: 07080608 streq r0, [r8, -r8, lsl #12] + 31c: 09080808 stmdbeq r8, {r3, fp} + 320: 0b080a08 bleq 202b48 + 324: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 328: 0000000c andeq r0, r0, ip + 32c: 000002fc strdeq r0, [r0], -ip + 330: 00402084 subeq r2, r0, r4, lsl #1 + 334: 00000020 andeq r0, r0, r0, lsr #32 + 338: 00000028 andeq r0, r0, r8, lsr #32 + 33c: ffffffff undefined instruction 0xffffffff + 340: 7c020003 stcvc 0, cr0, [r2], {3} + 344: 000d0c0e andeq r0, sp, lr, lsl #24 + 348: 01070007 tsteq r7, r7 + 34c: 03070207 movweq r0, #29191 ; 0x7207 + 350: 05080408 streq r0, [r8, #-1032] + 354: 07080608 streq r0, [r8, -r8, lsl #12] + 358: 09080808 stmdbeq r8, {r3, fp} + 35c: 0b080a08 bleq 202b84 + 360: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 364: 00000018 andeq r0, r0, r8, lsl r0 + 368: 00000338 andeq r0, r0, r8, lsr r3 + 36c: 004020a4 subeq r2, r0, r4, lsr #1 + 370: 00000016 andeq r0, r0, r6, lsl r0 + 374: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 378: 0e094801 cdpeq 8, 0, cr4, cr9, cr1, {0} + 37c: 000e4100 andeq r4, lr, r0, lsl #2 + 380: 00000028 andeq r0, r0, r8, lsr #32 + 384: ffffffff undefined instruction 0xffffffff + 388: 7c020003 stcvc 0, cr0, [r2], {3} + 38c: 000d0c0e andeq r0, sp, lr, lsl #24 + 390: 01070007 tsteq r7, r7 + 394: 03070207 movweq r0, #29191 ; 0x7207 + 398: 05080408 streq r0, [r8, #-1032] + 39c: 07080608 streq r0, [r8, -r8, lsl #12] + 3a0: 09080808 stmdbeq r8, {r3, fp} + 3a4: 0b080a08 bleq 202bcc + 3a8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 3ac: 0000001c andeq r0, r0, ip, lsl r0 + 3b0: 00000380 andeq r0, r0, r0, lsl #7 + 3b4: 004020ba strheq r2, [r0], #-10 + 3b8: 00000128 andeq r0, r0, r8, lsr #2 + 3bc: 84140e41 ldrhi r0, [r4], #-3649 + 3c0: 86048505 strhi r8, [r4], -r5, lsl #10 + 3c4: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 3c8: 200e4101 andcs r4, lr, r1, lsl #2 + 3cc: 00000028 andeq r0, r0, r8, lsr #32 + 3d0: ffffffff undefined instruction 0xffffffff + 3d4: 7c020003 stcvc 0, cr0, [r2], {3} + 3d8: 000d0c0e andeq r0, sp, lr, lsl #24 + 3dc: 01070007 tsteq r7, r7 + 3e0: 03070207 movweq r0, #29191 ; 0x7207 + 3e4: 05080408 streq r0, [r8, #-1032] + 3e8: 07080608 streq r0, [r8, -r8, lsl #12] + 3ec: 09080808 stmdbeq r8, {r3, fp} + 3f0: 0b080a08 bleq 202c18 + 3f4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 3f8: 0000001c andeq r0, r0, ip, lsl r0 + 3fc: 000003cc andeq r0, r0, ip, asr #7 + 400: 004021e4 subeq r2, r0, r4, ror #3 + 404: 000000c8 andeq r0, r0, r8, asr #1 + 408: 84180e41 ldrhi r0, [r8], #-3649 + 40c: 86048505 strhi r8, [r4], -r5, lsl #10 + 410: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 414: 200e4101 andcs r4, lr, r1, lsl #2 + 418: 00000028 andeq r0, r0, r8, lsr #32 + 41c: ffffffff undefined instruction 0xffffffff + 420: 7c020003 stcvc 0, cr0, [r2], {3} + 424: 000d0c0e andeq r0, sp, lr, lsl #24 + 428: 01070007 tsteq r7, r7 + 42c: 03070207 movweq r0, #29191 ; 0x7207 + 430: 05080408 streq r0, [r8, #-1032] + 434: 07080608 streq r0, [r8, -r8, lsl #12] + 438: 09080808 stmdbeq r8, {r3, fp} + 43c: 0b080a08 bleq 202c64 + 440: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 444: 0000001c andeq r0, r0, ip, lsl r0 + 448: 00000418 andeq r0, r0, r8, lsl r4 + 44c: 004022ac subeq r2, r0, ip, lsr #5 + 450: 00000004 andeq r0, r0, r4 + 454: 0584200e streq r2, [r4, #14] + 458: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 + 45c: 018e0287 orreq r0, lr, r7, lsl #5 + 460: 00140e41 andseq r0, r4, r1, asr #28 + 464: 00000028 andeq r0, r0, r8, lsr #32 + 468: ffffffff undefined instruction 0xffffffff + 46c: 7c020003 stcvc 0, cr0, [r2], {3} + 470: 000d0c0e andeq r0, sp, lr, lsl #24 + 474: 01070007 tsteq r7, r7 + 478: 03070207 movweq r0, #29191 ; 0x7207 + 47c: 05080408 streq r0, [r8, #-1032] + 480: 07080608 streq r0, [r8, -r8, lsl #12] + 484: 09080808 stmdbeq r8, {r3, fp} + 488: 0b080a08 bleq 202cb0 + 48c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 490: 00000028 andeq r0, r0, r8, lsr #32 + 494: 00000464 andeq r0, r0, r4, ror #8 + 498: 004022b0 strheq r2, [r0], #-32 + 49c: 0000001c andeq r0, r0, ip, lsl r0 + 4a0: 0584140e streq r1, [r4, #1038] + 4a4: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 + 4a8: 018e0287 orreq r0, lr, r7, lsl #5 + 4ac: 000e0941 andeq r0, lr, r1, asr #18 + 4b0: c4040e41 strgt r0, [r4], #-3649 + 4b4: 41c7c6c5 bicmi ip, r7, r5, asr #13 + 4b8: 0000000e andeq r0, r0, lr + 4bc: 00000028 andeq r0, r0, r8, lsr #32 + 4c0: ffffffff undefined instruction 0xffffffff + 4c4: 7c020003 stcvc 0, cr0, [r2], {3} + 4c8: 000d0c0e andeq r0, sp, lr, lsl #24 + 4cc: 01070007 tsteq r7, r7 + 4d0: 03070207 movweq r0, #29191 ; 0x7207 + 4d4: 05080408 streq r0, [r8, #-1032] + 4d8: 07080608 streq r0, [r8, -r8, lsl #12] + 4dc: 09080808 stmdbeq r8, {r3, fp} + 4e0: 0b080a08 bleq 202d08 + 4e4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 4e8: 00000024 andeq r0, r0, r4, lsr #32 + 4ec: 000004bc strheq r0, [r0], -ip + 4f0: 004022d0 ldrdeq r2, [r0], #-32 + 4f4: 00000046 andeq r0, r0, r6, asr #32 + 4f8: 84100e41 ldrhi r0, [r0], #-3649 + 4fc: 86038504 strhi r8, [r3], -r4, lsl #10 + 500: 5f018e02 svcpl 0x00018e02 + 504: 41000e09 tstmi r0, r9, lsl #28 + 508: c5c4040e strbgt r0, [r4, #1038] + 50c: 000e41c6 andeq r4, lr, r6, asr #3 + 510: 00000028 andeq r0, r0, r8, lsr #32 + 514: ffffffff undefined instruction 0xffffffff + 518: 7c020003 stcvc 0, cr0, [r2], {3} + 51c: 000d0c0e andeq r0, sp, lr, lsl #24 + 520: 01070007 tsteq r7, r7 + 524: 03070207 movweq r0, #29191 ; 0x7207 + 528: 05080408 streq r0, [r8, #-1032] + 52c: 07080608 streq r0, [r8, -r8, lsl #12] + 530: 09080808 stmdbeq r8, {r3, fp} + 534: 0b080a08 bleq 202d5c + 538: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 53c: 00000028 andeq r0, r0, r8, lsr #32 + 540: 00000510 andeq r0, r0, r0, lsl r5 + 544: 00402318 subeq r2, r0, r8, lsl r3 + 548: 00000060 andeq r0, r0, r0, rrx + 54c: 84080e41 strhi r0, [r8], #-3649 + 550: 68018e02 stmdavs r1, {r1, r9, sl, fp, pc} + 554: 41010e09 tstmi r1, r9, lsl #28 + 558: 41c4040e bicmi r0, r4, lr, lsl #8 + 55c: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} + 560: 8e028408 cdphi 4, 0, cr8, cr2, cr8, {0} + 564: 00000001 andeq r0, r0, r1 + 568: 00000028 andeq r0, r0, r8, lsr #32 + 56c: ffffffff undefined instruction 0xffffffff + 570: 7c020003 stcvc 0, cr0, [r2], {3} + 574: 000d0c0e andeq r0, sp, lr, lsl #24 + 578: 01070007 tsteq r7, r7 + 57c: 03070207 movweq r0, #29191 ; 0x7207 + 580: 05080408 streq r0, [r8, #-1032] + 584: 07080608 streq r0, [r8, -r8, lsl #12] + 588: 09080808 stmdbeq r8, {r3, fp} + 58c: 0b080a08 bleq 202db4 + 590: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 594: 00000024 andeq r0, r0, r4, lsr #32 + 598: 00000568 andeq r0, r0, r8, ror #10 + 59c: 00403cf0 strdeq r3, [r0], #-192 + 5a0: 0000004c andeq r0, r0, ip, asr #32 + 5a4: 84100e41 ldrhi r0, [r0], #-3649 + 5a8: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + 5ac: 0c0e6101 stfeqs f6, [lr], {1} + 5b0: 000e0941 andeq r0, lr, r1, asr #18 + 5b4: c4040e41 strgt r0, [r4], #-3649 + 5b8: 000e41c5 andeq r4, lr, r5, asr #3 + 5bc: 00000028 andeq r0, r0, r8, lsr #32 + 5c0: ffffffff undefined instruction 0xffffffff + 5c4: 7c020003 stcvc 0, cr0, [r2], {3} + 5c8: 000d0c0e andeq r0, sp, lr, lsl #24 + 5cc: 01070007 tsteq r7, r7 + 5d0: 03070207 movweq r0, #29191 ; 0x7207 + 5d4: 05080408 streq r0, [r8, #-1032] + 5d8: 07080608 streq r0, [r8, -r8, lsl #12] + 5dc: 09080808 stmdbeq r8, {r3, fp} + 5e0: 0b080a08 bleq 202e08 + 5e4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 5e8: 00000018 andeq r0, r0, r8, lsl r0 + 5ec: 000005bc strheq r0, [r0], -ip + 5f0: 00403608 subeq r3, r0, r8, lsl #12 + 5f4: 0000001c andeq r0, r0, ip, lsl r0 + 5f8: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 5fc: 0e094b01 fmacdeq d4, d9, d1 + 600: 000e4100 andeq r4, lr, r0, lsl #2 + 604: 00000028 andeq r0, r0, r8, lsr #32 + 608: ffffffff undefined instruction 0xffffffff + 60c: 7c020003 stcvc 0, cr0, [r2], {3} + 610: 000d0c0e andeq r0, sp, lr, lsl #24 + 614: 01070007 tsteq r7, r7 + 618: 03070207 movweq r0, #29191 ; 0x7207 + 61c: 05080408 streq r0, [r8, #-1032] + 620: 07080608 streq r0, [r8, -r8, lsl #12] + 624: 09080808 stmdbeq r8, {r3, fp} + 628: 0b080a08 bleq 202e50 + 62c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 630: 00000020 andeq r0, r0, r0, lsr #32 + 634: 00000604 andeq r0, r0, r4, lsl #12 + 638: 00403624 subeq r3, r0, r4, lsr #12 + 63c: 0000009c muleq r0, ip, r0 + 640: 84080e41 strhi r0, [r8], #-3649 + 644: 02018e02 andeq r8, r1, #32 ; 0x20 + 648: 000e094a andeq r0, lr, sl, asr #18 + 64c: c4040e41 strgt r0, [r4], #-3649 + 650: 00000e41 andeq r0, r0, r1, asr #28 + 654: 00000028 andeq r0, r0, r8, lsr #32 + 658: ffffffff undefined instruction 0xffffffff + 65c: 7c020003 stcvc 0, cr0, [r2], {3} + 660: 000d0c0e andeq r0, sp, lr, lsl #24 + 664: 01070007 tsteq r7, r7 + 668: 03070207 movweq r0, #29191 ; 0x7207 + 66c: 05080408 streq r0, [r8, #-1032] + 670: 07080608 streq r0, [r8, -r8, lsl #12] + 674: 09080808 stmdbeq r8, {r3, fp} + 678: 0b080a08 bleq 202ea0 + 67c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 680: 00000020 andeq r0, r0, r0, lsr #32 + 684: 00000654 andeq r0, r0, r4, asr r6 + 688: 004036c0 subeq r3, r0, r0, asr #13 + 68c: 0000003c andeq r0, r0, ip, lsr r0 + 690: 84080e41 strhi r0, [r8], #-3649 + 694: 5a018e02 bpl 63ea4 + 698: 41000e09 tstmi r0, r9, lsl #28 + 69c: 41c4040e bicmi r0, r4, lr, lsl #8 + 6a0: 0000000e andeq r0, r0, lr + 6a4: 00000028 andeq r0, r0, r8, lsr #32 + 6a8: ffffffff undefined instruction 0xffffffff + 6ac: 7c020003 stcvc 0, cr0, [r2], {3} + 6b0: 000d0c0e andeq r0, sp, lr, lsl #24 + 6b4: 01070007 tsteq r7, r7 + 6b8: 03070207 movweq r0, #29191 ; 0x7207 + 6bc: 05080408 streq r0, [r8, #-1032] + 6c0: 07080608 streq r0, [r8, -r8, lsl #12] + 6c4: 09080808 stmdbeq r8, {r3, fp} + 6c8: 0b080a08 bleq 202ef0 + 6cc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 6d0: 0000002c andeq r0, r0, ip, lsr #32 + 6d4: 000006a4 andeq r0, r0, r4, lsr #13 + 6d8: 00402bb4 strheq r2, [r0], #-180 + 6dc: 00000090 muleq r0, r0, r0 + 6e0: 84100e41 ldrhi r0, [r0], #-3649 + 6e4: 86038504 strhi r8, [r3], -r4, lsl #10 + 6e8: 41018e02 tstmi r1, r2, lsl #28 + 6ec: 0e7a180e cdpeq 8, 7, cr1, cr10, cr14, {0} + 6f0: 0e094110 flteqe f1, r4 + 6f4: 040e4100 streq r4, [lr], #-256 + 6f8: 41c6c5c4 bicmi ip, r6, r4, asr #11 + 6fc: 0000000e andeq r0, r0, lr + 700: 00000028 andeq r0, r0, r8, lsr #32 + 704: ffffffff undefined instruction 0xffffffff + 708: 7c020003 stcvc 0, cr0, [r2], {3} + 70c: 000d0c0e andeq r0, sp, lr, lsl #24 + 710: 01070007 tsteq r7, r7 + 714: 03070207 movweq r0, #29191 ; 0x7207 + 718: 05080408 streq r0, [r8, #-1032] + 71c: 07080608 streq r0, [r8, -r8, lsl #12] + 720: 09080808 stmdbeq r8, {r3, fp} + 724: 0b080a08 bleq 202f4c + 728: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 72c: 0000002c andeq r0, r0, ip, lsr #32 + 730: 00000700 andeq r0, r0, r0, lsl #14 + 734: 00402c44 subeq r2, r0, r4, asr #24 + 738: 00000184 andeq r0, r0, r4, lsl #3 + 73c: 84180e41 ldrhi r0, [r8], #-3649 + 740: 86048505 strhi r8, [r4], -r5, lsl #10 + 744: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 748: 0eb20201 cdpeq 2, 11, cr0, cr2, cr1, {0} + 74c: 0e094114 mcreq 1, 0, r4, cr9, cr4, {0} + 750: 040e4100 streq r4, [lr], #-256 + 754: c7c6c5c4 strbgt ip, [r6, r4, asr #11] + 758: 00000e41 andeq r0, r0, r1, asr #28 + 75c: 00000028 andeq r0, r0, r8, lsr #32 + 760: ffffffff undefined instruction 0xffffffff + 764: 7c020003 stcvc 0, cr0, [r2], {3} + 768: 000d0c0e andeq r0, sp, lr, lsl #24 + 76c: 01070007 tsteq r7, r7 + 770: 03070207 movweq r0, #29191 ; 0x7207 + 774: 05080408 streq r0, [r8, #-1032] + 778: 07080608 streq r0, [r8, -r8, lsl #12] + 77c: 09080808 stmdbeq r8, {r3, fp} + 780: 0b080a08 bleq 202fa8 + 784: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 788: 0000000c andeq r0, r0, ip + 78c: 0000075c andeq r0, r0, ip, asr r7 + 790: 00403ca4 subeq r3, r0, r4, lsr #25 + 794: 0000004c andeq r0, r0, ip, asr #32 + 798: 00000028 andeq r0, r0, r8, lsr #32 + 79c: ffffffff undefined instruction 0xffffffff + 7a0: 7c020003 stcvc 0, cr0, [r2], {3} + 7a4: 000d0c0e andeq r0, sp, lr, lsl #24 + 7a8: 01070007 tsteq r7, r7 + 7ac: 03070207 movweq r0, #29191 ; 0x7207 + 7b0: 05080408 streq r0, [r8, #-1032] + 7b4: 07080608 streq r0, [r8, -r8, lsl #12] + 7b8: 09080808 stmdbeq r8, {r3, fp} + 7bc: 0b080a08 bleq 202fe4 + 7c0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 7c4: 00000018 andeq r0, r0, r8, lsl r0 + 7c8: 00000798 muleq r0, r8, r7 + 7cc: 00402378 subeq r2, r0, r8, ror r3 + 7d0: 00000022 andeq r0, r0, r2, lsr #32 + 7d4: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 7d8: 0e094e01 cdpeq 14, 0, cr4, cr9, cr1, {0} + 7dc: 000e4100 andeq r4, lr, r0, lsl #2 + 7e0: 00000028 andeq r0, r0, r8, lsr #32 + 7e4: ffffffff undefined instruction 0xffffffff + 7e8: 7c020003 stcvc 0, cr0, [r2], {3} + 7ec: 000d0c0e andeq r0, sp, lr, lsl #24 + 7f0: 01070007 tsteq r7, r7 + 7f4: 03070207 movweq r0, #29191 ; 0x7207 + 7f8: 05080408 streq r0, [r8, #-1032] + 7fc: 07080608 streq r0, [r8, -r8, lsl #12] + 800: 09080808 stmdbeq r8, {r3, fp} + 804: 0b080a08 bleq 20302c + 808: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 80c: 00000024 andeq r0, r0, r4, lsr #32 + 810: 000007e0 andeq r0, r0, r0, ror #15 + 814: 0040239a umaaleq r2, r0, sl, r3 + 818: 00000034 andeq r0, r0, r4, lsr r0 + 81c: 84080e41 strhi r0, [r8], #-3649 + 820: 49018502 stmdbmi r1, {r1, r8, sl, pc} + 824: c5c4000e strbgt r0, [r4, #14] + 828: 84080e41 strhi r0, [r8], #-3649 + 82c: 4e018502 cfsh32mi mvfx8, mvfx1, #2 + 830: c5c4000e strbgt r0, [r4, #14] + 834: 00000028 andeq r0, r0, r8, lsr #32 + 838: ffffffff undefined instruction 0xffffffff + 83c: 7c020003 stcvc 0, cr0, [r2], {3} + 840: 000d0c0e andeq r0, sp, lr, lsl #24 + 844: 01070007 tsteq r7, r7 + 848: 03070207 movweq r0, #29191 ; 0x7207 + 84c: 05080408 streq r0, [r8, #-1032] + 850: 07080608 streq r0, [r8, -r8, lsl #12] + 854: 09080808 stmdbeq r8, {r3, fp} + 858: 0b080a08 bleq 203080 + 85c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 860: 0000000c andeq r0, r0, ip + 864: 00000834 andeq r0, r0, r4, lsr r8 + 868: 004023ce subeq r2, r0, lr, asr #7 + 86c: 00000024 andeq r0, r0, r4, lsr #32 + 870: 00000028 andeq r0, r0, r8, lsr #32 + 874: ffffffff undefined instruction 0xffffffff + 878: 7c020003 stcvc 0, cr0, [r2], {3} + 87c: 000d0c0e andeq r0, sp, lr, lsl #24 + 880: 01070007 tsteq r7, r7 + 884: 03070207 movweq r0, #29191 ; 0x7207 + 888: 05080408 streq r0, [r8, #-1032] + 88c: 07080608 streq r0, [r8, -r8, lsl #12] + 890: 09080808 stmdbeq r8, {r3, fp} + 894: 0b080a08 bleq 2030bc + 898: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 89c: 0000000c andeq r0, r0, ip + 8a0: 00000870 andeq r0, r0, r0, ror r8 + 8a4: 004023f4 strdeq r2, [r0], #-52 + 8a8: 00000034 andeq r0, r0, r4, lsr r0 + 8ac: 00000028 andeq r0, r0, r8, lsr #32 + 8b0: ffffffff undefined instruction 0xffffffff + 8b4: 7c020003 stcvc 0, cr0, [r2], {3} + 8b8: 000d0c0e andeq r0, sp, lr, lsl #24 + 8bc: 01070007 tsteq r7, r7 + 8c0: 03070207 movweq r0, #29191 ; 0x7207 + 8c4: 05080408 streq r0, [r8, #-1032] + 8c8: 07080608 streq r0, [r8, -r8, lsl #12] + 8cc: 09080808 stmdbeq r8, {r3, fp} + 8d0: 0b080a08 bleq 2030f8 + 8d4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 8d8: 00000014 andeq r0, r0, r4, lsl r0 + 8dc: 000008ac andeq r0, r0, ip, lsr #17 + 8e0: 00402428 subeq r2, r0, r8, lsr #8 + 8e4: 00000038 andeq r0, r0, r8, lsr r0 + 8e8: 84080e41 strhi r0, [r8], #-3649 + 8ec: 00018e02 andeq r8, r1, r2, lsl #28 + 8f0: 00000028 andeq r0, r0, r8, lsr #32 + 8f4: ffffffff undefined instruction 0xffffffff + 8f8: 7c020003 stcvc 0, cr0, [r2], {3} + 8fc: 000d0c0e andeq r0, sp, lr, lsl #24 + 900: 01070007 tsteq r7, r7 + 904: 03070207 movweq r0, #29191 ; 0x7207 + 908: 05080408 streq r0, [r8, #-1032] + 90c: 07080608 streq r0, [r8, -r8, lsl #12] + 910: 09080808 stmdbeq r8, {r3, fp} + 914: 0b080a08 bleq 20313c + 918: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 91c: 00000028 andeq r0, r0, r8, lsr #32 + 920: 000008f0 strdeq r0, [r0], -r0 + 924: 00402460 subeq r2, r0, r0, ror #8 + 928: 00000150 andeq r0, r0, r0, asr r1 + 92c: 84100e41 ldrhi r0, [r0], #-3649 + 930: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + 934: 0ea00201 cdpeq 2, 10, cr0, cr0, cr1, {0} + 938: 0e09410c adfeqe f4, f1, #4.0 + 93c: 040e4101 streq r4, [lr], #-257 + 940: 0e41c5c4 cdpeq 5, 4, cr12, cr1, cr4, {6} + 944: 00000000 andeq r0, r0, r0 + 948: 00000028 andeq r0, r0, r8, lsr #32 + 94c: ffffffff undefined instruction 0xffffffff + 950: 7c020003 stcvc 0, cr0, [r2], {3} + 954: 000d0c0e andeq r0, sp, lr, lsl #24 + 958: 01070007 tsteq r7, r7 + 95c: 03070207 movweq r0, #29191 ; 0x7207 + 960: 05080408 streq r0, [r8, #-1032] + 964: 07080608 streq r0, [r8, -r8, lsl #12] + 968: 09080808 stmdbeq r8, {r3, fp} + 96c: 0b080a08 bleq 203194 + 970: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 974: 00000028 andeq r0, r0, r8, lsr #32 + 978: 00000948 andeq r0, r0, r8, asr #18 + 97c: 004025c0 subeq r2, r0, r0, asr #11 + 980: 00000200 andeq r0, r0, r0, lsl #4 + 984: 84100e41 ldrhi r0, [r0], #-3649 + 988: 86038504 strhi r8, [r3], -r4, lsl #10 + 98c: 02018e02 andeq r8, r1, #32 ; 0x20 + 990: 010e09ef smlatteq lr, pc, r9, r0 + 994: c4040e41 strgt r0, [r4], #-3649 + 998: 0e41c6c5 cdpeq 6, 4, cr12, cr1, cr5, {6} + 99c: 00000000 andeq r0, r0, r0 + 9a0: 00000028 andeq r0, r0, r8, lsr #32 + 9a4: ffffffff undefined instruction 0xffffffff + 9a8: 7c020003 stcvc 0, cr0, [r2], {3} + 9ac: 000d0c0e andeq r0, sp, lr, lsl #24 + 9b0: 01070007 tsteq r7, r7 + 9b4: 03070207 movweq r0, #29191 ; 0x7207 + 9b8: 05080408 streq r0, [r8, #-1032] + 9bc: 07080608 streq r0, [r8, -r8, lsl #12] + 9c0: 09080808 stmdbeq r8, {r3, fp} + 9c4: 0b080a08 bleq 2031ec + 9c8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 9cc: 0000002c andeq r0, r0, ip, lsr #32 + 9d0: 000009a0 andeq r0, r0, r0, lsr #19 + 9d4: 004027c0 subeq r2, r0, r0, asr #15 + 9d8: 000001bc strheq r0, [r0], -ip + 9dc: 84180e41 ldrhi r0, [r8], #-3649 + 9e0: 86048505 strhi r8, [r4], -r5, lsl #10 + 9e4: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 9e8: 0ecc0201 cdpeq 2, 12, cr0, cr12, cr1, {0} + 9ec: 0e094114 mcreq 1, 0, r4, cr9, cr4, {0} + 9f0: 040e4101 streq r4, [lr], #-257 + 9f4: c7c6c5c4 strbgt ip, [r6, r4, asr #11] + 9f8: 00000e41 andeq r0, r0, r1, asr #28 + 9fc: 00000028 andeq r0, r0, r8, lsr #32 + a00: ffffffff undefined instruction 0xffffffff + a04: 7c020003 stcvc 0, cr0, [r2], {3} + a08: 000d0c0e andeq r0, sp, lr, lsl #24 + a0c: 01070007 tsteq r7, r7 + a10: 03070207 movweq r0, #29191 ; 0x7207 + a14: 05080408 streq r0, [r8, #-1032] + a18: 07080608 streq r0, [r8, -r8, lsl #12] + a1c: 09080808 stmdbeq r8, {r3, fp} + a20: 0b080a08 bleq 203248 + a24: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + a28: 00000014 andeq r0, r0, r4, lsl r0 + a2c: 000009fc strdeq r0, [r0], -ip + a30: 0040297c subeq r2, r0, ip, ror r9 + a34: 0000014c andeq r0, r0, ip, asr #2 + a38: 84080e41 strhi r0, [r8], #-3649 + a3c: 00018e02 andeq r8, r1, r2, lsl #28 + a40: 00000028 andeq r0, r0, r8, lsr #32 + a44: ffffffff undefined instruction 0xffffffff + a48: 7c020003 stcvc 0, cr0, [r2], {3} + a4c: 000d0c0e andeq r0, sp, lr, lsl #24 + a50: 01070007 tsteq r7, r7 + a54: 03070207 movweq r0, #29191 ; 0x7207 + a58: 05080408 streq r0, [r8, #-1032] + a5c: 07080608 streq r0, [r8, -r8, lsl #12] + a60: 09080808 stmdbeq r8, {r3, fp} + a64: 0b080a08 bleq 20328c + a68: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + a6c: 00000020 andeq r0, r0, r0, lsr #32 + a70: 00000a40 andeq r0, r0, r0, asr #20 + a74: 00402ac8 subeq r2, r0, r8, asr #21 + a78: 00000018 andeq r0, r0, r8, lsl r0 + a7c: 0284080e addeq r0, r4, #917504 ; 0xe0000 + a80: 0942018e stmdbeq r2, {r1, r2, r3, r7, r8}^ + a84: 0e41010e dvfeqs f0, f1, #0.5 + a88: 0e41c404 cdpeq 4, 4, cr12, cr1, cr4, {0} + a8c: 00000000 andeq r0, r0, r0 + a90: 00000028 andeq r0, r0, r8, lsr #32 + a94: ffffffff undefined instruction 0xffffffff + a98: 7c020003 stcvc 0, cr0, [r2], {3} + a9c: 000d0c0e andeq r0, sp, lr, lsl #24 + aa0: 01070007 tsteq r7, r7 + aa4: 03070207 movweq r0, #29191 ; 0x7207 + aa8: 05080408 streq r0, [r8, #-1032] + aac: 07080608 streq r0, [r8, -r8, lsl #12] + ab0: 09080808 stmdbeq r8, {r3, fp} + ab4: 0b080a08 bleq 2032dc + ab8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + abc: 00000028 andeq r0, r0, r8, lsr #32 + ac0: 00000a90 muleq r0, r0, sl + ac4: 00402aec subeq r2, r0, ip, ror #21 + ac8: 00000098 muleq r0, r8, r0 + acc: 84100e41 ldrhi r0, [r0], #-3649 + ad0: 86038504 strhi r8, [r3], -r4, lsl #10 + ad4: 02018e02 andeq r8, r1, #32 ; 0x20 + ad8: 000e0945 andeq r0, lr, r5, asr #18 + adc: c4040e41 strgt r0, [r4], #-3649 + ae0: 0e41c6c5 cdpeq 6, 4, cr12, cr1, cr5, {6} + ae4: 00000000 andeq r0, r0, r0 + ae8: 00000028 andeq r0, r0, r8, lsr #32 + aec: ffffffff undefined instruction 0xffffffff + af0: 7c020003 stcvc 0, cr0, [r2], {3} + af4: 000d0c0e andeq r0, sp, lr, lsl #24 + af8: 01070007 tsteq r7, r7 + afc: 03070207 movweq r0, #29191 ; 0x7207 + b00: 05080408 streq r0, [r8, #-1032] + b04: 07080608 streq r0, [r8, -r8, lsl #12] + b08: 09080808 stmdbeq r8, {r3, fp} + b0c: 0b080a08 bleq 203334 + b10: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + b14: 00000018 andeq r0, r0, r8, lsl r0 + b18: 00000ae8 andeq r0, r0, r8, ror #21 + b1c: 00402b84 subeq r2, r0, r4, lsl #23 + b20: 00000030 andeq r0, r0, r0, lsr r0 + b24: 84080e41 strhi r0, [r8], #-3649 + b28: 040e5401 streq r5, [lr], #-1025 + b2c: 000000c4 andeq r0, r0, r4, asr #1 + b30: 00000028 andeq r0, r0, r8, lsr #32 + b34: ffffffff undefined instruction 0xffffffff + b38: 7c020003 stcvc 0, cr0, [r2], {3} + b3c: 000d0c0e andeq r0, sp, lr, lsl #24 + b40: 01070007 tsteq r7, r7 + b44: 03070207 movweq r0, #29191 ; 0x7207 + b48: 05080408 streq r0, [r8, #-1032] + b4c: 07080608 streq r0, [r8, -r8, lsl #12] + b50: 09080808 stmdbeq r8, {r3, fp} + b54: 0b080a08 bleq 20337c + b58: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + b5c: 0000000c andeq r0, r0, ip + b60: 00000b30 andeq r0, r0, r0, lsr fp + b64: 00403f3e subeq r3, r0, lr, lsr pc + b68: 00000002 andeq r0, r0, r2 + b6c: 00000028 andeq r0, r0, r8, lsr #32 + b70: ffffffff undefined instruction 0xffffffff + b74: 7c020003 stcvc 0, cr0, [r2], {3} + b78: 000d0c0e andeq r0, sp, lr, lsl #24 + b7c: 01070007 tsteq r7, r7 + b80: 03070207 movweq r0, #29191 ; 0x7207 + b84: 05080408 streq r0, [r8, #-1032] + b88: 07080608 streq r0, [r8, -r8, lsl #12] + b8c: 09080808 stmdbeq r8, {r3, fp} + b90: 0b080a08 bleq 2033b8 + b94: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + b98: 0000000c andeq r0, r0, ip + b9c: 00000b6c andeq r0, r0, ip, ror #22 + ba0: 00403f40 subeq r3, r0, r0, asr #30 + ba4: 00000002 andeq r0, r0, r2 + ba8: 00000028 andeq r0, r0, r8, lsr #32 + bac: ffffffff undefined instruction 0xffffffff + bb0: 7c020003 stcvc 0, cr0, [r2], {3} + bb4: 000d0c0e andeq r0, sp, lr, lsl #24 + bb8: 01070007 tsteq r7, r7 + bbc: 03070207 movweq r0, #29191 ; 0x7207 + bc0: 05080408 streq r0, [r8, #-1032] + bc4: 07080608 streq r0, [r8, -r8, lsl #12] + bc8: 09080808 stmdbeq r8, {r3, fp} + bcc: 0b080a08 bleq 2033f4 + bd0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + bd4: 0000000c andeq r0, r0, ip + bd8: 00000ba8 andeq r0, r0, r8, lsr #23 + bdc: 004038c8 subeq r3, r0, r8, asr #17 + be0: 00000006 andeq r0, r0, r6 + be4: 00000028 andeq r0, r0, r8, lsr #32 + be8: ffffffff undefined instruction 0xffffffff + bec: 7c020003 stcvc 0, cr0, [r2], {3} + bf0: 000d0c0e andeq r0, sp, lr, lsl #24 + bf4: 01070007 tsteq r7, r7 + bf8: 03070207 movweq r0, #29191 ; 0x7207 + bfc: 05080408 streq r0, [r8, #-1032] + c00: 07080608 streq r0, [r8, -r8, lsl #12] + c04: 09080808 stmdbeq r8, {r3, fp} + c08: 0b080a08 bleq 203430 + c0c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + c10: 0000002c andeq r0, r0, ip, lsr #32 + c14: 00000be4 andeq r0, r0, r4, ror #23 + c18: 004038d0 ldrdeq r3, [r0], #-128 + c1c: 000000a4 andeq r0, r0, r4, lsr #1 + c20: 84100e41 ldrhi r0, [r0], #-3649 + c24: 86038504 strhi r8, [r3], -r4, lsl #10 + c28: 41018e02 tstmi r1, r2, lsl #28 + c2c: 0e7e180e cdpeq 8, 7, cr1, cr14, cr14, {0} + c30: 0e094110 flteqe f1, r4 + c34: 040e4101 streq r4, [lr], #-257 + c38: 41c6c5c4 bicmi ip, r6, r4, asr #11 + c3c: 0000000e andeq r0, r0, lr + c40: 00000028 andeq r0, r0, r8, lsr #32 + c44: ffffffff undefined instruction 0xffffffff + c48: 7c020003 stcvc 0, cr0, [r2], {3} + c4c: 000d0c0e andeq r0, sp, lr, lsl #24 + c50: 01070007 tsteq r7, r7 + c54: 03070207 movweq r0, #29191 ; 0x7207 + c58: 05080408 streq r0, [r8, #-1032] + c5c: 07080608 streq r0, [r8, -r8, lsl #12] + c60: 09080808 stmdbeq r8, {r3, fp} + c64: 0b080a08 bleq 20348c + c68: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + c6c: 00000030 andeq r0, r0, r0, lsr r0 + c70: 00000c40 andeq r0, r0, r0, asr #24 + c74: 00403988 subeq r3, r0, r8, lsl #19 + c78: 00000094 muleq r0, r4, r0 + c7c: 84140e41 ldrhi r0, [r4], #-3649 + c80: 86048505 strhi r8, [r4], -r5, lsl #10 + c84: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + c88: 200e4101 andcs r4, lr, r1, lsl #2 + c8c: 41140e7f tstmi r4, pc, ror lr + c90: 41010e09 tstmi r1, r9, lsl #28 + c94: c5c4040e strbgt r0, [r4, #1038] + c98: 0e41c7c6 cdpeq 7, 4, cr12, cr1, cr6, {6} + c9c: 00000000 andeq r0, r0, r0 + ca0: 00000028 andeq r0, r0, r8, lsr #32 + ca4: ffffffff undefined instruction 0xffffffff + ca8: 7c020003 stcvc 0, cr0, [r2], {3} + cac: 000d0c0e andeq r0, sp, lr, lsl #24 + cb0: 01070007 tsteq r7, r7 + cb4: 03070207 movweq r0, #29191 ; 0x7207 + cb8: 05080408 streq r0, [r8, #-1032] + cbc: 07080608 streq r0, [r8, -r8, lsl #12] + cc0: 09080808 stmdbeq r8, {r3, fp} + cc4: 0b080a08 bleq 2034ec + cc8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + ccc: 00000024 andeq r0, r0, r4, lsr #32 + cd0: 00000ca0 andeq r0, r0, r0, lsr #25 + cd4: 0040338c subeq r3, r0, ip, lsl #7 + cd8: 0000008c andeq r0, r0, ip, lsl #1 + cdc: 84080e41 strhi r0, [r8], #-3649 + ce0: 41018e02 tstmi r1, r2, lsl #28 + ce4: 0e77180e cdpeq 8, 7, cr1, cr7, cr14, {0} + ce8: 0e094108 adfeqe f4, f1, #0.0 + cec: 040e4100 streq r4, [lr], #-256 + cf0: 000e41c4 andeq r4, lr, r4, asr #3 + cf4: 00000028 andeq r0, r0, r8, lsr #32 + cf8: ffffffff undefined instruction 0xffffffff + cfc: 7c020003 stcvc 0, cr0, [r2], {3} + d00: 000d0c0e andeq r0, sp, lr, lsl #24 + d04: 01070007 tsteq r7, r7 + d08: 03070207 movweq r0, #29191 ; 0x7207 + d0c: 05080408 streq r0, [r8, #-1032] + d10: 07080608 streq r0, [r8, -r8, lsl #12] + d14: 09080808 stmdbeq r8, {r3, fp} + d18: 0b080a08 bleq 203540 + d1c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + d20: 0000000c andeq r0, r0, ip + d24: 00000cf4 strdeq r0, [r0], -r4 + d28: 00403418 subeq r3, r0, r8, lsl r4 + d2c: 00000050 andeq r0, r0, r0, asr r0 + d30: 00000028 andeq r0, r0, r8, lsr #32 + d34: ffffffff undefined instruction 0xffffffff + d38: 7c020003 stcvc 0, cr0, [r2], {3} + d3c: 000d0c0e andeq r0, sp, lr, lsl #24 + d40: 01070007 tsteq r7, r7 + d44: 03070207 movweq r0, #29191 ; 0x7207 + d48: 05080408 streq r0, [r8, #-1032] + d4c: 07080608 streq r0, [r8, -r8, lsl #12] + d50: 09080808 stmdbeq r8, {r3, fp} + d54: 0b080a08 bleq 20357c + d58: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + d5c: 0000000c andeq r0, r0, ip + d60: 00000d30 andeq r0, r0, r0, lsr sp + d64: 0040346c subeq r3, r0, ip, ror #8 + d68: 00000002 andeq r0, r0, r2 + d6c: 00000028 andeq r0, r0, r8, lsr #32 + d70: ffffffff undefined instruction 0xffffffff + d74: 7c020003 stcvc 0, cr0, [r2], {3} + d78: 000d0c0e andeq r0, sp, lr, lsl #24 + d7c: 01070007 tsteq r7, r7 + d80: 03070207 movweq r0, #29191 ; 0x7207 + d84: 05080408 streq r0, [r8, #-1032] + d88: 07080608 streq r0, [r8, -r8, lsl #12] + d8c: 09080808 stmdbeq r8, {r3, fp} + d90: 0b080a08 bleq 2035b8 + d94: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + d98: 0000000c andeq r0, r0, ip + d9c: 00000d6c andeq r0, r0, ip, ror #26 + da0: 0040346e subeq r3, r0, lr, ror #8 + da4: 00000002 andeq r0, r0, r2 + da8: 00000028 andeq r0, r0, r8, lsr #32 + dac: ffffffff undefined instruction 0xffffffff + db0: 7c020003 stcvc 0, cr0, [r2], {3} + db4: 000d0c0e andeq r0, sp, lr, lsl #24 + db8: 01070007 tsteq r7, r7 + dbc: 03070207 movweq r0, #29191 ; 0x7207 + dc0: 05080408 streq r0, [r8, #-1032] + dc4: 07080608 streq r0, [r8, -r8, lsl #12] + dc8: 09080808 stmdbeq r8, {r3, fp} + dcc: 0b080a08 bleq 2035f4 + dd0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + dd4: 0000000c andeq r0, r0, ip + dd8: 00000da8 andeq r0, r0, r8, lsr #27 + ddc: 00403470 subeq r3, r0, r0, ror r4 + de0: 00000010 andeq r0, r0, r0, lsl r0 + de4: 00000028 andeq r0, r0, r8, lsr #32 + de8: ffffffff undefined instruction 0xffffffff + dec: 7c020003 stcvc 0, cr0, [r2], {3} + df0: 000d0c0e andeq r0, sp, lr, lsl #24 + df4: 01070007 tsteq r7, r7 + df8: 03070207 movweq r0, #29191 ; 0x7207 + dfc: 05080408 streq r0, [r8, #-1032] + e00: 07080608 streq r0, [r8, -r8, lsl #12] + e04: 09080808 stmdbeq r8, {r3, fp} + e08: 0b080a08 bleq 203630 + e0c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + e10: 0000002c andeq r0, r0, ip, lsr #32 + e14: 00000de4 andeq r0, r0, r4, ror #27 + e18: 00403480 subeq r3, r0, r0, lsl #9 + e1c: 00000046 andeq r0, r0, r6, asr #32 + e20: 84180e41 ldrhi r0, [r8], #-3649 + e24: 86038504 strhi r8, [r3], -r4, lsl #10 + e28: 41018e02 tstmi r1, r2, lsl #28 + e2c: 0e5d200e cdpeq 0, 5, cr2, cr13, cr14, {0} + e30: 0e094110 flteqe f1, r4 + e34: 040e4100 streq r4, [lr], #-256 + e38: 41c6c5c4 bicmi ip, r6, r4, asr #11 + e3c: 0000000e andeq r0, r0, lr + e40: 00000028 andeq r0, r0, r8, lsr #32 + e44: ffffffff undefined instruction 0xffffffff + e48: 7c020003 stcvc 0, cr0, [r2], {3} + e4c: 000d0c0e andeq r0, sp, lr, lsl #24 + e50: 01070007 tsteq r7, r7 + e54: 03070207 movweq r0, #29191 ; 0x7207 + e58: 05080408 streq r0, [r8, #-1032] + e5c: 07080608 streq r0, [r8, -r8, lsl #12] + e60: 09080808 stmdbeq r8, {r3, fp} + e64: 0b080a08 bleq 20368c + e68: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + e6c: 00000014 andeq r0, r0, r4, lsl r0 + e70: 00000e40 andeq r0, r0, r0, asr #28 + e74: 00403a1c subeq r3, r0, ip, lsl sl + e78: 00000014 andeq r0, r0, r4, lsl r0 + e7c: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + e80: 00000001 andeq r0, r0, r1 + e84: 00000028 andeq r0, r0, r8, lsr #32 + e88: ffffffff undefined instruction 0xffffffff + e8c: 7c020003 stcvc 0, cr0, [r2], {3} + e90: 000d0c0e andeq r0, sp, lr, lsl #24 + e94: 01070007 tsteq r7, r7 + e98: 03070207 movweq r0, #29191 ; 0x7207 + e9c: 05080408 streq r0, [r8, #-1032] + ea0: 07080608 streq r0, [r8, -r8, lsl #12] + ea4: 09080808 stmdbeq r8, {r3, fp} + ea8: 0b080a08 bleq 2036d0 + eac: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + eb0: 00000014 andeq r0, r0, r4, lsl r0 + eb4: 00000e84 andeq r0, r0, r4, lsl #29 + eb8: 00403a30 subeq r3, r0, r0, lsr sl + ebc: 0000001c andeq r0, r0, ip, lsl r0 + ec0: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + ec4: 00000001 andeq r0, r0, r1 + ec8: 00000028 andeq r0, r0, r8, lsr #32 + ecc: ffffffff undefined instruction 0xffffffff + ed0: 7c020003 stcvc 0, cr0, [r2], {3} + ed4: 000d0c0e andeq r0, sp, lr, lsl #24 + ed8: 01070007 tsteq r7, r7 + edc: 03070207 movweq r0, #29191 ; 0x7207 + ee0: 05080408 streq r0, [r8, #-1032] + ee4: 07080608 streq r0, [r8, -r8, lsl #12] + ee8: 09080808 stmdbeq r8, {r3, fp} + eec: 0b080a08 bleq 203714 + ef0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + ef4: 00000014 andeq r0, r0, r4, lsl r0 + ef8: 00000ec8 andeq r0, r0, r8, asr #29 + efc: 00403a54 subeq r3, r0, r4, asr sl + f00: 00000010 andeq r0, r0, r0, lsl r0 + f04: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + f08: 00000001 andeq r0, r0, r1 + f0c: 00000028 andeq r0, r0, r8, lsr #32 + f10: ffffffff undefined instruction 0xffffffff + f14: 7c020003 stcvc 0, cr0, [r2], {3} + f18: 000d0c0e andeq r0, sp, lr, lsl #24 + f1c: 01070007 tsteq r7, r7 + f20: 03070207 movweq r0, #29191 ; 0x7207 + f24: 05080408 streq r0, [r8, #-1032] + f28: 07080608 streq r0, [r8, -r8, lsl #12] + f2c: 09080808 stmdbeq r8, {r3, fp} + f30: 0b080a08 bleq 203758 + f34: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + f38: 00000014 andeq r0, r0, r4, lsl r0 + f3c: 00000f0c andeq r0, r0, ip, lsl #30 + f40: 00403a64 subeq r3, r0, r4, ror #20 + f44: 0000001c andeq r0, r0, ip, lsl r0 + f48: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + f4c: 00000001 andeq r0, r0, r1 + f50: 00000028 andeq r0, r0, r8, lsr #32 + f54: ffffffff undefined instruction 0xffffffff + f58: 7c020003 stcvc 0, cr0, [r2], {3} + f5c: 000d0c0e andeq r0, sp, lr, lsl #24 + f60: 01070007 tsteq r7, r7 + f64: 03070207 movweq r0, #29191 ; 0x7207 + f68: 05080408 streq r0, [r8, #-1032] + f6c: 07080608 streq r0, [r8, -r8, lsl #12] + f70: 09080808 stmdbeq r8, {r3, fp} + f74: 0b080a08 bleq 20379c + f78: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + f7c: 00000010 andeq r0, r0, r0, lsl r0 + f80: 00000f50 andeq r0, r0, r0, asr pc + f84: 00403a80 subeq r3, r0, r0, lsl #21 + f88: 00000004 andeq r0, r0, r4 + f8c: 018e080e orreq r0, lr, lr, lsl #16 + f90: 00000028 andeq r0, r0, r8, lsr #32 + f94: ffffffff undefined instruction 0xffffffff + f98: 7c020003 stcvc 0, cr0, [r2], {3} + f9c: 000d0c0e andeq r0, sp, lr, lsl #24 + fa0: 01070007 tsteq r7, r7 + fa4: 03070207 movweq r0, #29191 ; 0x7207 + fa8: 05080408 streq r0, [r8, #-1032] + fac: 07080608 streq r0, [r8, -r8, lsl #12] + fb0: 09080808 stmdbeq r8, {r3, fp} + fb4: 0b080a08 bleq 2037dc + fb8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + fbc: 00000010 andeq r0, r0, r0, lsl r0 + fc0: 00000f90 muleq r0, r0, pc + fc4: 00403a84 subeq r3, r0, r4, lsl #21 + fc8: 00000004 andeq r0, r0, r4 + fcc: 018e080e orreq r0, lr, lr, lsl #16 + fd0: 00000028 andeq r0, r0, r8, lsr #32 + fd4: ffffffff undefined instruction 0xffffffff + fd8: 7c020003 stcvc 0, cr0, [r2], {3} + fdc: 000d0c0e andeq r0, sp, lr, lsl #24 + fe0: 01070007 tsteq r7, r7 + fe4: 03070207 movweq r0, #29191 ; 0x7207 + fe8: 05080408 streq r0, [r8, #-1032] + fec: 07080608 streq r0, [r8, -r8, lsl #12] + ff0: 09080808 stmdbeq r8, {r3, fp} + ff4: 0b080a08 bleq 20381c + ff8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + ffc: 00000018 andeq r0, r0, r8, lsl r0 + 1000: 00000fd0 ldrdeq r0, [r0], -r0 + 1004: 00403a88 subeq r3, r0, r8, lsl #21 + 1008: 00000006 andeq r0, r0, r6 + 100c: 018e080e orreq r0, lr, lr, lsl #16 + 1010: 010e0941 tsteq lr, r1, asr #18 + 1014: 00000e41 andeq r0, r0, r1, asr #28 + 1018: 00000028 andeq r0, r0, r8, lsr #32 + 101c: ffffffff undefined instruction 0xffffffff + 1020: 7c020003 stcvc 0, cr0, [r2], {3} + 1024: 000d0c0e andeq r0, sp, lr, lsl #24 + 1028: 01070007 tsteq r7, r7 + 102c: 03070207 movweq r0, #29191 ; 0x7207 + 1030: 05080408 streq r0, [r8, #-1032] + 1034: 07080608 streq r0, [r8, -r8, lsl #12] + 1038: 09080808 stmdbeq r8, {r3, fp} + 103c: 0b080a08 bleq 203864 + 1040: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1044: 00000014 andeq r0, r0, r4, lsl r0 + 1048: 00001018 andeq r1, r0, r8, lsl r0 + 104c: 00403a8e subeq r3, r0, lr, lsl #21 + 1050: 00000014 andeq r0, r0, r4, lsl r0 + 1054: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 1058: 00000001 andeq r0, r0, r1 + 105c: 00000028 andeq r0, r0, r8, lsr #32 + 1060: ffffffff undefined instruction 0xffffffff + 1064: 7c020003 stcvc 0, cr0, [r2], {3} + 1068: 000d0c0e andeq r0, sp, lr, lsl #24 + 106c: 01070007 tsteq r7, r7 + 1070: 03070207 movweq r0, #29191 ; 0x7207 + 1074: 05080408 streq r0, [r8, #-1032] + 1078: 07080608 streq r0, [r8, -r8, lsl #12] + 107c: 09080808 stmdbeq r8, {r3, fp} + 1080: 0b080a08 bleq 2038a8 + 1084: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1088: 0000000c andeq r0, r0, ip + 108c: 0000105c andeq r1, r0, ip, asr r0 + 1090: 00403e70 subeq r3, r0, r0, ror lr + 1094: 00000028 andeq r0, r0, r8, lsr #32 + 1098: 00000028 andeq r0, r0, r8, lsr #32 + 109c: ffffffff undefined instruction 0xffffffff + 10a0: 7c020003 stcvc 0, cr0, [r2], {3} + 10a4: 000d0c0e andeq r0, sp, lr, lsl #24 + 10a8: 01070007 tsteq r7, r7 + 10ac: 03070207 movweq r0, #29191 ; 0x7207 + 10b0: 05080408 streq r0, [r8, #-1032] + 10b4: 07080608 streq r0, [r8, -r8, lsl #12] + 10b8: 09080808 stmdbeq r8, {r3, fp} + 10bc: 0b080a08 bleq 2038e4 + 10c0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 10c4: 00000014 andeq r0, r0, r4, lsl r0 + 10c8: 00001098 muleq r0, r8, r0 + 10cc: 00400960 subeq r0, r0, r0, ror #18 + 10d0: 00000024 andeq r0, r0, r4, lsr #32 + 10d4: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 10d8: 00000001 andeq r0, r0, r1 + 10dc: 00000028 andeq r0, r0, r8, lsr #32 + 10e0: ffffffff undefined instruction 0xffffffff + 10e4: 7c020003 stcvc 0, cr0, [r2], {3} + 10e8: 000d0c0e andeq r0, sp, lr, lsl #24 + 10ec: 01070007 tsteq r7, r7 + 10f0: 03070207 movweq r0, #29191 ; 0x7207 + 10f4: 05080408 streq r0, [r8, #-1032] + 10f8: 07080608 streq r0, [r8, -r8, lsl #12] + 10fc: 09080808 stmdbeq r8, {r3, fp} + 1100: 0b080a08 bleq 203928 + 1104: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1108: 00000014 andeq r0, r0, r4, lsl r0 + 110c: 000010dc ldrdeq r1, [r0], -ip + 1110: 00400984 subeq r0, r0, r4, lsl #19 + 1114: 00000008 andeq r0, r0, r8 + 1118: 84080e41 strhi r0, [r8], #-3649 + 111c: 00018e02 andeq r8, r1, r2, lsl #28 + 1120: 00000028 andeq r0, r0, r8, lsr #32 + 1124: ffffffff undefined instruction 0xffffffff + 1128: 7c020003 stcvc 0, cr0, [r2], {3} + 112c: 000d0c0e andeq r0, sp, lr, lsl #24 + 1130: 01070007 tsteq r7, r7 + 1134: 03070207 movweq r0, #29191 ; 0x7207 + 1138: 05080408 streq r0, [r8, #-1032] + 113c: 07080608 streq r0, [r8, -r8, lsl #12] + 1140: 09080808 stmdbeq r8, {r3, fp} + 1144: 0b080a08 bleq 20396c + 1148: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 114c: 00000014 andeq r0, r0, r4, lsl r0 + 1150: 00001120 andeq r1, r0, r0, lsr #2 + 1154: 0040098c subeq r0, r0, ip, lsl #19 + 1158: 0000001c andeq r0, r0, ip, lsl r0 + 115c: 84080e41 strhi r0, [r8], #-3649 + 1160: 00018e02 andeq r8, r1, r2, lsl #28 + 1164: 00000028 andeq r0, r0, r8, lsr #32 + 1168: ffffffff undefined instruction 0xffffffff + 116c: 7c020003 stcvc 0, cr0, [r2], {3} + 1170: 000d0c0e andeq r0, sp, lr, lsl #24 + 1174: 01070007 tsteq r7, r7 + 1178: 03070207 movweq r0, #29191 ; 0x7207 + 117c: 05080408 streq r0, [r8, #-1032] + 1180: 07080608 streq r0, [r8, -r8, lsl #12] + 1184: 09080808 stmdbeq r8, {r3, fp} + 1188: 0b080a08 bleq 2039b0 + 118c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1190: 00000020 andeq r0, r0, r0, lsr #32 + 1194: 00001164 andeq r1, r0, r4, ror #2 + 1198: 004009a8 subeq r0, r0, r8, lsr #19 + 119c: 00000014 andeq r0, r0, r4, lsl r0 + 11a0: 0284080e addeq r0, r4, #917504 ; 0xe0000 + 11a4: 0947018e stmdbeq r7, {r1, r2, r3, r7, r8}^ + 11a8: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} + 11ac: 0e41c404 cdpeq 4, 4, cr12, cr1, cr4, {0} + 11b0: 00000000 andeq r0, r0, r0 + 11b4: 00000028 andeq r0, r0, r8, lsr #32 + 11b8: ffffffff undefined instruction 0xffffffff + 11bc: 7c020003 stcvc 0, cr0, [r2], {3} + 11c0: 000d0c0e andeq r0, sp, lr, lsl #24 + 11c4: 01070007 tsteq r7, r7 + 11c8: 03070207 movweq r0, #29191 ; 0x7207 + 11cc: 05080408 streq r0, [r8, #-1032] + 11d0: 07080608 streq r0, [r8, -r8, lsl #12] + 11d4: 09080808 stmdbeq r8, {r3, fp} + 11d8: 0b080a08 bleq 203a00 + 11dc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 11e0: 0000001c andeq r0, r0, ip, lsl r0 + 11e4: 000011b4 strheq r1, [r0], -r4 + 11e8: 004009bc strheq r0, [r0], #-156 + 11ec: 0000006c andeq r0, r0, ip, rrx + 11f0: 84180e41 ldrhi r0, [r8], #-3649 + 11f4: 86048505 strhi r8, [r4], -r5, lsl #10 + 11f8: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 11fc: 200e4101 andcs r4, lr, r1, lsl #2 + 1200: 00000028 andeq r0, r0, r8, lsr #32 + 1204: ffffffff undefined instruction 0xffffffff + 1208: 7c020003 stcvc 0, cr0, [r2], {3} + 120c: 000d0c0e andeq r0, sp, lr, lsl #24 + 1210: 01070007 tsteq r7, r7 + 1214: 03070207 movweq r0, #29191 ; 0x7207 + 1218: 05080408 streq r0, [r8, #-1032] + 121c: 07080608 streq r0, [r8, -r8, lsl #12] + 1220: 09080808 stmdbeq r8, {r3, fp} + 1224: 0b080a08 bleq 203a4c + 1228: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 122c: 00000014 andeq r0, r0, r4, lsl r0 + 1230: 00001200 andeq r1, r0, r0, lsl #4 + 1234: 00400a28 subeq r0, r0, r8, lsr #20 + 1238: 0000002c andeq r0, r0, ip, lsr #32 + 123c: 8e040e41 cdphi 14, 0, cr0, cr4, cr1, {2} + 1240: 680e4101 stmdavs lr, {r0, r8, lr} + 1244: 00000028 andeq r0, r0, r8, lsr #32 + 1248: ffffffff undefined instruction 0xffffffff + 124c: 7c020003 stcvc 0, cr0, [r2], {3} + 1250: 000d0c0e andeq r0, sp, lr, lsl #24 + 1254: 01070007 tsteq r7, r7 + 1258: 03070207 movweq r0, #29191 ; 0x7207 + 125c: 05080408 streq r0, [r8, #-1032] + 1260: 07080608 streq r0, [r8, -r8, lsl #12] + 1264: 09080808 stmdbeq r8, {r3, fp} + 1268: 0b080a08 bleq 203a90 + 126c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1270: 00000020 andeq r0, r0, r0, lsr #32 + 1274: 00001244 andeq r1, r0, r4, asr #4 + 1278: 00400a58 subeq r0, r0, r8, asr sl + 127c: 000001f4 strdeq r0, [r0], -r4 + 1280: 84180e41 ldrhi r0, [r8], #-3649 + 1284: 86048505 strhi r8, [r4], -r5, lsl #10 + 1288: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 128c: 0edd0201 cdpeq 2, 13, cr0, cr13, cr1, {0} + 1290: 00000014 andeq r0, r0, r4, lsl r0 + 1294: 00000028 andeq r0, r0, r8, lsr #32 + 1298: ffffffff undefined instruction 0xffffffff + 129c: 7c020003 stcvc 0, cr0, [r2], {3} + 12a0: 000d0c0e andeq r0, sp, lr, lsl #24 + 12a4: 01070007 tsteq r7, r7 + 12a8: 03070207 movweq r0, #29191 ; 0x7207 + 12ac: 05080408 streq r0, [r8, #-1032] + 12b0: 07080608 streq r0, [r8, -r8, lsl #12] + 12b4: 09080808 stmdbeq r8, {r3, fp} + 12b8: 0b080a08 bleq 203ae0 + 12bc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 12c0: 0000000c andeq r0, r0, ip + 12c4: 00001294 muleq r0, r4, r2 + 12c8: 00400c50 subeq r0, r0, r0, asr ip + 12cc: 00000028 andeq r0, r0, r8, lsr #32 + 12d0: 00000028 andeq r0, r0, r8, lsr #32 + 12d4: ffffffff undefined instruction 0xffffffff + 12d8: 7c020003 stcvc 0, cr0, [r2], {3} + 12dc: 000d0c0e andeq r0, sp, lr, lsl #24 + 12e0: 01070007 tsteq r7, r7 + 12e4: 03070207 movweq r0, #29191 ; 0x7207 + 12e8: 05080408 streq r0, [r8, #-1032] + 12ec: 07080608 streq r0, [r8, -r8, lsl #12] + 12f0: 09080808 stmdbeq r8, {r3, fp} + 12f4: 0b080a08 bleq 203b1c + 12f8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 12fc: 00000038 andeq r0, r0, r8, lsr r0 + 1300: 000012d0 ldrdeq r1, [r0], -r0 + 1304: 00400c78 subeq r0, r0, r8, ror ip + 1308: 000001ac andeq r0, r0, ip, lsr #3 + 130c: 84100e41 ldrhi r0, [r0], #-3649 + 1310: 86038504 strhi r8, [r3], -r4, lsl #10 + 1314: 41018e02 tstmi r1, r2, lsl #28 + 1318: 9002200e andls r2, r2, lr + 131c: 0941100e stmdbeq r1, {r1, r2, r3, ip}^ + 1320: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} + 1324: c6c5c404 strbgt ip, [r5], r4, lsl #8 + 1328: 41000e41 tstmi r0, r1, asr #28 + 132c: 0484200e streq r2, [r4], #14 + 1330: 02860385 addeq r0, r6, #335544322 ; 0x14000002 + 1334: 0000018e andeq r0, r0, lr, lsl #3 + 1338: 00000028 andeq r0, r0, r8, lsr #32 + 133c: ffffffff undefined instruction 0xffffffff + 1340: 7c020003 stcvc 0, cr0, [r2], {3} + 1344: 000d0c0e andeq r0, sp, lr, lsl #24 + 1348: 01070007 tsteq r7, r7 + 134c: 03070207 movweq r0, #29191 ; 0x7207 + 1350: 05080408 streq r0, [r8, #-1032] + 1354: 07080608 streq r0, [r8, -r8, lsl #12] + 1358: 09080808 stmdbeq r8, {r3, fp} + 135c: 0b080a08 bleq 203b84 + 1360: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1364: 00000014 andeq r0, r0, r4, lsl r0 + 1368: 00001338 andeq r1, r0, r8, lsr r3 + 136c: 00400e24 subeq r0, r0, r4, lsr #28 + 1370: 00000014 andeq r0, r0, r4, lsl r0 + 1374: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 1378: 00000001 andeq r0, r0, r1 + 137c: 00000028 andeq r0, r0, r8, lsr #32 + 1380: ffffffff undefined instruction 0xffffffff + 1384: 7c020003 stcvc 0, cr0, [r2], {3} + 1388: 000d0c0e andeq r0, sp, lr, lsl #24 + 138c: 01070007 tsteq r7, r7 + 1390: 03070207 movweq r0, #29191 ; 0x7207 + 1394: 05080408 streq r0, [r8, #-1032] + 1398: 07080608 streq r0, [r8, -r8, lsl #12] + 139c: 09080808 stmdbeq r8, {r3, fp} + 13a0: 0b080a08 bleq 203bc8 + 13a4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 13a8: 00000014 andeq r0, r0, r4, lsl r0 + 13ac: 0000137c andeq r1, r0, ip, ror r3 + 13b0: 00400e38 subeq r0, r0, r8, lsr lr + 13b4: 00000010 andeq r0, r0, r0, lsl r0 + 13b8: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 13bc: 00000001 andeq r0, r0, r1 + 13c0: 00000028 andeq r0, r0, r8, lsr #32 + 13c4: ffffffff undefined instruction 0xffffffff + 13c8: 7c020003 stcvc 0, cr0, [r2], {3} + 13cc: 000d0c0e andeq r0, sp, lr, lsl #24 + 13d0: 01070007 tsteq r7, r7 + 13d4: 03070207 movweq r0, #29191 ; 0x7207 + 13d8: 05080408 streq r0, [r8, #-1032] + 13dc: 07080608 streq r0, [r8, -r8, lsl #12] + 13e0: 09080808 stmdbeq r8, {r3, fp} + 13e4: 0b080a08 bleq 203c0c + 13e8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 13ec: 00000010 andeq r0, r0, r0, lsl r0 + 13f0: 000013c0 andeq r1, r0, r0, asr #7 + 13f4: 00400e48 subeq r0, r0, r8, asr #28 + 13f8: 00000004 andeq r0, r0, r4 + 13fc: 018e080e orreq r0, lr, lr, lsl #16 + 1400: 00000028 andeq r0, r0, r8, lsr #32 + 1404: ffffffff undefined instruction 0xffffffff + 1408: 7c020003 stcvc 0, cr0, [r2], {3} + 140c: 000d0c0e andeq r0, sp, lr, lsl #24 + 1410: 01070007 tsteq r7, r7 + 1414: 03070207 movweq r0, #29191 ; 0x7207 + 1418: 05080408 streq r0, [r8, #-1032] + 141c: 07080608 streq r0, [r8, -r8, lsl #12] + 1420: 09080808 stmdbeq r8, {r3, fp} + 1424: 0b080a08 bleq 203c4c + 1428: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 142c: 00000018 andeq r0, r0, r8, lsl r0 + 1430: 00001400 andeq r1, r0, r0, lsl #8 + 1434: 00400e4c subeq r0, r0, ip, asr #28 + 1438: 00000006 andeq r0, r0, r6 + 143c: 018e080e orreq r0, lr, lr, lsl #16 + 1440: 000e0941 andeq r0, lr, r1, asr #18 + 1444: 00000e41 andeq r0, r0, r1, asr #28 + 1448: 00000028 andeq r0, r0, r8, lsr #32 + 144c: ffffffff undefined instruction 0xffffffff + 1450: 7c020003 stcvc 0, cr0, [r2], {3} + 1454: 000d0c0e andeq r0, sp, lr, lsl #24 + 1458: 01070007 tsteq r7, r7 + 145c: 03070207 movweq r0, #29191 ; 0x7207 + 1460: 05080408 streq r0, [r8, #-1032] + 1464: 07080608 streq r0, [r8, -r8, lsl #12] + 1468: 09080808 stmdbeq r8, {r3, fp} + 146c: 0b080a08 bleq 203c94 + 1470: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1474: 00000014 andeq r0, r0, r4, lsl r0 + 1478: 00001448 andeq r1, r0, r8, asr #8 + 147c: 00400e58 subeq r0, r0, r8, asr lr + 1480: 00000014 andeq r0, r0, r4, lsl r0 + 1484: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 1488: 00000001 andeq r0, r0, r1 + 148c: 00000028 andeq r0, r0, r8, lsr #32 + 1490: ffffffff undefined instruction 0xffffffff + 1494: 7c020003 stcvc 0, cr0, [r2], {3} + 1498: 000d0c0e andeq r0, sp, lr, lsl #24 + 149c: 01070007 tsteq r7, r7 + 14a0: 03070207 movweq r0, #29191 ; 0x7207 + 14a4: 05080408 streq r0, [r8, #-1032] + 14a8: 07080608 streq r0, [r8, -r8, lsl #12] + 14ac: 09080808 stmdbeq r8, {r3, fp} + 14b0: 0b080a08 bleq 203cd8 + 14b4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 14b8: 00000014 andeq r0, r0, r4, lsl r0 + 14bc: 0000148c andeq r1, r0, ip, lsl #9 + 14c0: 00400e6c subeq r0, r0, ip, ror #28 + 14c4: 00000014 andeq r0, r0, r4, lsl r0 + 14c8: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 14cc: 00000001 andeq r0, r0, r1 + 14d0: 00000028 andeq r0, r0, r8, lsr #32 + 14d4: ffffffff undefined instruction 0xffffffff + 14d8: 7c020003 stcvc 0, cr0, [r2], {3} + 14dc: 000d0c0e andeq r0, sp, lr, lsl #24 + 14e0: 01070007 tsteq r7, r7 + 14e4: 03070207 movweq r0, #29191 ; 0x7207 + 14e8: 05080408 streq r0, [r8, #-1032] + 14ec: 07080608 streq r0, [r8, -r8, lsl #12] + 14f0: 09080808 stmdbeq r8, {r3, fp} + 14f4: 0b080a08 bleq 203d1c + 14f8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 14fc: 0000003c andeq r0, r0, ip, lsr r0 + 1500: 000014d0 ldrdeq r1, [r0], -r0 + 1504: 00400e80 subeq r0, r0, r0, lsl #29 + 1508: 0000015c andeq r0, r0, ip, asr r1 + 150c: 84180e41 ldrhi r0, [r8], #-3649 + 1510: 86048505 strhi r8, [r4], -r5, lsl #10 + 1514: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1518: 200e6d01 andcs r6, lr, r1, lsl #26 + 151c: 5d180e46 ldcpl 14, cr0, [r8, #-280] + 1520: 0e46200e cdpeq 0, 4, cr2, cr6, cr14, {0} + 1524: 200e6a18 andcs r6, lr, r8, lsl sl + 1528: 59180e46 ldmdbpl r8, {r1, r2, r6, r9, sl, fp} + 152c: 0941140e stmdbeq r1, {r1, r2, r3, sl, ip}^ + 1530: 0e41010e dvfeqs f0, f1, #0.5 + 1534: c6c5c404 strbgt ip, [r5], r4, lsl #8 + 1538: 000e41c7 andeq r4, lr, r7, asr #3 + 153c: 00000028 andeq r0, r0, r8, lsr #32 + 1540: ffffffff undefined instruction 0xffffffff + 1544: 7c020003 stcvc 0, cr0, [r2], {3} + 1548: 000d0c0e andeq r0, sp, lr, lsl #24 + 154c: 01070007 tsteq r7, r7 + 1550: 03070207 movweq r0, #29191 ; 0x7207 + 1554: 05080408 streq r0, [r8, #-1032] + 1558: 07080608 streq r0, [r8, -r8, lsl #12] + 155c: 09080808 stmdbeq r8, {r3, fp} + 1560: 0b080a08 bleq 203d88 + 1564: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1568: 00000020 andeq r0, r0, r0, lsr #32 + 156c: 0000153c andeq r1, r0, ip, lsr r5 + 1570: 00400fdc ldrdeq r0, [r0], #-252 + 1574: 000000b0 strheq r0, [r0], -r0 + 1578: 84140e41 ldrhi r0, [r4], #-3649 + 157c: 86048505 strhi r8, [r4], -r5, lsl #10 + 1580: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1584: 280e4101 stmdacs lr, {r0, r8, lr} + 1588: 140e4902 strne r4, [lr], #-2306 + 158c: 00000028 andeq r0, r0, r8, lsr #32 + 1590: ffffffff undefined instruction 0xffffffff + 1594: 7c020003 stcvc 0, cr0, [r2], {3} + 1598: 000d0c0e andeq r0, sp, lr, lsl #24 + 159c: 01070007 tsteq r7, r7 + 15a0: 03070207 movweq r0, #29191 ; 0x7207 + 15a4: 05080408 streq r0, [r8, #-1032] + 15a8: 07080608 streq r0, [r8, -r8, lsl #12] + 15ac: 09080808 stmdbeq r8, {r3, fp} + 15b0: 0b080a08 bleq 203dd8 + 15b4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 15b8: 0000001c andeq r0, r0, ip, lsl r0 + 15bc: 0000158c andeq r1, r0, ip, lsl #11 + 15c0: 0040108c subeq r1, r0, ip, lsl #1 + 15c4: 000001e4 andeq r0, r0, r4, ror #3 + 15c8: 84140e41 ldrhi r0, [r4], #-3649 + 15cc: 86048505 strhi r8, [r4], -r5, lsl #10 + 15d0: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 15d4: 200e4101 andcs r4, lr, r1, lsl #2 + 15d8: 00000028 andeq r0, r0, r8, lsr #32 + 15dc: ffffffff undefined instruction 0xffffffff + 15e0: 7c020003 stcvc 0, cr0, [r2], {3} + 15e4: 000d0c0e andeq r0, sp, lr, lsl #24 + 15e8: 01070007 tsteq r7, r7 + 15ec: 03070207 movweq r0, #29191 ; 0x7207 + 15f0: 05080408 streq r0, [r8, #-1032] + 15f4: 07080608 streq r0, [r8, -r8, lsl #12] + 15f8: 09080808 stmdbeq r8, {r3, fp} + 15fc: 0b080a08 bleq 203e24 + 1600: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1604: 0000001c andeq r0, r0, ip, lsl r0 + 1608: 000015d8 ldrdeq r1, [r0], -r8 + 160c: 00401270 subeq r1, r0, r0, ror r2 + 1610: 00000004 andeq r0, r0, r4 + 1614: 0584200e streq r2, [r4, #14] + 1618: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 + 161c: 018e0287 orreq r0, lr, r7, lsl #5 + 1620: 00140e41 andseq r0, r4, r1, asr #28 + 1624: 00000028 andeq r0, r0, r8, lsr #32 + 1628: ffffffff undefined instruction 0xffffffff + 162c: 7c020003 stcvc 0, cr0, [r2], {3} + 1630: 000d0c0e andeq r0, sp, lr, lsl #24 + 1634: 01070007 tsteq r7, r7 + 1638: 03070207 movweq r0, #29191 ; 0x7207 + 163c: 05080408 streq r0, [r8, #-1032] + 1640: 07080608 streq r0, [r8, -r8, lsl #12] + 1644: 09080808 stmdbeq r8, {r3, fp} + 1648: 0b080a08 bleq 203e70 + 164c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1650: 00000028 andeq r0, r0, r8, lsr #32 + 1654: 00001624 andeq r1, r0, r4, lsr #12 + 1658: 00401274 subeq r1, r0, r4, ror r2 + 165c: 0000000c andeq r0, r0, ip + 1660: 0584140e streq r1, [r4, #1038] + 1664: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 + 1668: 018e0287 orreq r0, lr, r7, lsl #5 + 166c: 000e0941 andeq r0, lr, r1, asr #18 + 1670: c4040e41 strgt r0, [r4], #-3649 + 1674: 41c7c6c5 bicmi ip, r7, r5, asr #13 + 1678: 0000000e andeq r0, r0, lr + 167c: 00000028 andeq r0, r0, r8, lsr #32 + 1680: ffffffff undefined instruction 0xffffffff + 1684: 7c020003 stcvc 0, cr0, [r2], {3} + 1688: 000d0c0e andeq r0, sp, lr, lsl #24 + 168c: 01070007 tsteq r7, r7 + 1690: 03070207 movweq r0, #29191 ; 0x7207 + 1694: 05080408 streq r0, [r8, #-1032] + 1698: 07080608 streq r0, [r8, -r8, lsl #12] + 169c: 09080808 stmdbeq r8, {r3, fp} + 16a0: 0b080a08 bleq 203ec8 + 16a4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 16a8: 00000020 andeq r0, r0, r0, lsr #32 + 16ac: 0000167c andeq r1, r0, ip, ror r6 + 16b0: 00401280 subeq r1, r0, r0, lsl #5 + 16b4: 000001b2 strheq r0, [r0], -r2 + 16b8: 84180e41 ldrhi r0, [r8], #-3649 + 16bc: 86048505 strhi r8, [r4], -r5, lsl #10 + 16c0: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 16c4: 0ed70201 cdpeq 2, 13, cr0, cr7, cr1, {0} + 16c8: 00000014 andeq r0, r0, r4, lsl r0 + 16cc: 00000028 andeq r0, r0, r8, lsr #32 + 16d0: ffffffff undefined instruction 0xffffffff + 16d4: 7c020003 stcvc 0, cr0, [r2], {3} + 16d8: 000d0c0e andeq r0, sp, lr, lsl #24 + 16dc: 01070007 tsteq r7, r7 + 16e0: 03070207 movweq r0, #29191 ; 0x7207 + 16e4: 05080408 streq r0, [r8, #-1032] + 16e8: 07080608 streq r0, [r8, -r8, lsl #12] + 16ec: 09080808 stmdbeq r8, {r3, fp} + 16f0: 0b080a08 bleq 203f18 + 16f4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 16f8: 00000020 andeq r0, r0, r0, lsr #32 + 16fc: 000016cc andeq r1, r0, ip, asr #13 + 1700: 00401434 subeq r1, r0, r4, lsr r4 + 1704: 00000278 andeq r0, r0, r8, ror r2 + 1708: 84180e41 ldrhi r0, [r8], #-3649 + 170c: 86048505 strhi r8, [r4], -r5, lsl #10 + 1710: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1714: 0e860201 cdpeq 2, 8, cr0, cr6, cr1, {0} + 1718: 180e4114 stmdane lr, {r2, r4, r8, lr} + 171c: 00000028 andeq r0, r0, r8, lsr #32 + 1720: ffffffff undefined instruction 0xffffffff + 1724: 7c020003 stcvc 0, cr0, [r2], {3} + 1728: 000d0c0e andeq r0, sp, lr, lsl #24 + 172c: 01070007 tsteq r7, r7 + 1730: 03070207 movweq r0, #29191 ; 0x7207 + 1734: 05080408 streq r0, [r8, #-1032] + 1738: 07080608 streq r0, [r8, -r8, lsl #12] + 173c: 09080808 stmdbeq r8, {r3, fp} + 1740: 0b080a08 bleq 203f68 + 1744: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1748: 00000020 andeq r0, r0, r0, lsr #32 + 174c: 0000171c andeq r1, r0, ip, lsl r7 + 1750: 004016ac subeq r1, r0, ip, lsr #13 + 1754: 00000134 andeq r0, r0, r4, lsr r1 + 1758: 84180e41 ldrhi r0, [r8], #-3649 + 175c: 86048505 strhi r8, [r4], -r5, lsl #10 + 1760: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1764: 0e870201 cdpeq 2, 8, cr0, cr7, cr1, {0} + 1768: 00000014 andeq r0, r0, r4, lsl r0 + 176c: 00000028 andeq r0, r0, r8, lsr #32 + 1770: ffffffff undefined instruction 0xffffffff + 1774: 7c020003 stcvc 0, cr0, [r2], {3} + 1778: 000d0c0e andeq r0, sp, lr, lsl #24 + 177c: 01070007 tsteq r7, r7 + 1780: 03070207 movweq r0, #29191 ; 0x7207 + 1784: 05080408 streq r0, [r8, #-1032] + 1788: 07080608 streq r0, [r8, -r8, lsl #12] + 178c: 09080808 stmdbeq r8, {r3, fp} + 1790: 0b080a08 bleq 203fb8 + 1794: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1798: 0000001c andeq r0, r0, ip, lsl r0 + 179c: 0000176c andeq r1, r0, ip, ror #14 + 17a0: 004017e0 subeq r1, r0, r0, ror #15 + 17a4: 0000002c andeq r0, r0, ip, lsr #32 + 17a8: 8e040e41 cdphi 14, 0, cr0, cr4, cr1, {2} + 17ac: 100e4101 andne r4, lr, r1, lsl #2 + 17b0: 000e094f andeq r0, lr, pc, asr #18 + 17b4: 00000e41 andeq r0, r0, r1, asr #28 + 17b8: 00000028 andeq r0, r0, r8, lsr #32 + 17bc: ffffffff undefined instruction 0xffffffff + 17c0: 7c020003 stcvc 0, cr0, [r2], {3} + 17c4: 000d0c0e andeq r0, sp, lr, lsl #24 + 17c8: 01070007 tsteq r7, r7 + 17cc: 03070207 movweq r0, #29191 ; 0x7207 + 17d0: 05080408 streq r0, [r8, #-1032] + 17d4: 07080608 streq r0, [r8, -r8, lsl #12] + 17d8: 09080808 stmdbeq r8, {r3, fp} + 17dc: 0b080a08 bleq 204004 + 17e0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 17e4: 0000001c andeq r0, r0, ip, lsl r0 + 17e8: 000017b8 strheq r1, [r0], -r8 + 17ec: 0040180c subeq r1, r0, ip, lsl #16 + 17f0: 00000038 andeq r0, r0, r8, lsr r0 + 17f4: 84100e41 ldrhi r0, [r0], #-3649 + 17f8: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + 17fc: 180e5201 stmdane lr, {r0, r9, ip, lr} + 1800: 00100e48 andseq r0, r0, r8, asr #28 + 1804: 00000028 andeq r0, r0, r8, lsr #32 + 1808: ffffffff undefined instruction 0xffffffff + 180c: 7c020003 stcvc 0, cr0, [r2], {3} + 1810: 000d0c0e andeq r0, sp, lr, lsl #24 + 1814: 01070007 tsteq r7, r7 + 1818: 03070207 movweq r0, #29191 ; 0x7207 + 181c: 05080408 streq r0, [r8, #-1032] + 1820: 07080608 streq r0, [r8, -r8, lsl #12] + 1824: 09080808 stmdbeq r8, {r3, fp} + 1828: 0b080a08 bleq 204050 + 182c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1830: 00000024 andeq r0, r0, r4, lsr #32 + 1834: 00001804 andeq r1, r0, r4, lsl #16 + 1838: 00401844 subeq r1, r0, r4, asr #16 + 183c: 0000000a andeq r0, r0, sl + 1840: 0384100e orreq r1, r4, #14 ; 0xe + 1844: 018e0285 orreq r0, lr, r5, lsl #5 + 1848: 410c0e41 tstmi ip, r1, asr #28 + 184c: 41000e09 tstmi r0, r9, lsl #28 + 1850: c5c4040e strbgt r0, [r4, #1038] + 1854: 00000e41 andeq r0, r0, r1, asr #28 + 1858: 00000028 andeq r0, r0, r8, lsr #32 + 185c: ffffffff undefined instruction 0xffffffff + 1860: 7c020003 stcvc 0, cr0, [r2], {3} + 1864: 000d0c0e andeq r0, sp, lr, lsl #24 + 1868: 01070007 tsteq r7, r7 + 186c: 03070207 movweq r0, #29191 ; 0x7207 + 1870: 05080408 streq r0, [r8, #-1032] + 1874: 07080608 streq r0, [r8, -r8, lsl #12] + 1878: 09080808 stmdbeq r8, {r3, fp} + 187c: 0b080a08 bleq 2040a4 + 1880: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1884: 00000018 andeq r0, r0, r8, lsl r0 + 1888: 00001858 andeq r1, r0, r8, asr r8 + 188c: 00401854 subeq r1, r0, r4, asr r8 + 1890: 00000020 andeq r0, r0, r0, lsr #32 + 1894: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 1898: 100e4301 andne r4, lr, r1, lsl #6 + 189c: 00080e48 andeq r0, r8, r8, asr #28 + 18a0: 00000028 andeq r0, r0, r8, lsr #32 + 18a4: ffffffff undefined instruction 0xffffffff + 18a8: 7c020003 stcvc 0, cr0, [r2], {3} + 18ac: 000d0c0e andeq r0, sp, lr, lsl #24 + 18b0: 01070007 tsteq r7, r7 + 18b4: 03070207 movweq r0, #29191 ; 0x7207 + 18b8: 05080408 streq r0, [r8, #-1032] + 18bc: 07080608 streq r0, [r8, -r8, lsl #12] + 18c0: 09080808 stmdbeq r8, {r3, fp} + 18c4: 0b080a08 bleq 2040ec + 18c8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 18cc: 00000018 andeq r0, r0, r8, lsl r0 + 18d0: 000018a0 andeq r1, r0, r0, lsr #17 + 18d4: 00401874 subeq r1, r0, r4, ror r8 + 18d8: 000000c4 andeq r0, r0, r4, asr #1 + 18dc: 84100e41 ldrhi r0, [r0], #-3649 + 18e0: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + 18e4: 00000001 andeq r0, r0, r1 + 18e8: 00000028 andeq r0, r0, r8, lsr #32 + 18ec: ffffffff undefined instruction 0xffffffff + 18f0: 7c020003 stcvc 0, cr0, [r2], {3} + 18f4: 000d0c0e andeq r0, sp, lr, lsl #24 + 18f8: 01070007 tsteq r7, r7 + 18fc: 03070207 movweq r0, #29191 ; 0x7207 + 1900: 05080408 streq r0, [r8, #-1032] + 1904: 07080608 streq r0, [r8, -r8, lsl #12] + 1908: 09080808 stmdbeq r8, {r3, fp} + 190c: 0b080a08 bleq 204134 + 1910: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1914: 00000024 andeq r0, r0, r4, lsr #32 + 1918: 000018e8 andeq r1, r0, r8, ror #17 + 191c: 00401938 subeq r1, r0, r8, lsr r9 + 1920: 0000002a andeq r0, r0, sl, lsr #32 + 1924: 84100e41 ldrhi r0, [r0], #-3649 + 1928: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + 192c: 0c0e5001 stceq 0, cr5, [lr], {1} + 1930: 010e0941 tsteq lr, r1, asr #18 + 1934: c4040e41 strgt r0, [r4], #-3649 + 1938: 000e41c5 andeq r4, lr, r5, asr #3 + 193c: 00000028 andeq r0, r0, r8, lsr #32 + 1940: ffffffff undefined instruction 0xffffffff + 1944: 7c020003 stcvc 0, cr0, [r2], {3} + 1948: 000d0c0e andeq r0, sp, lr, lsl #24 + 194c: 01070007 tsteq r7, r7 + 1950: 03070207 movweq r0, #29191 ; 0x7207 + 1954: 05080408 streq r0, [r8, #-1032] + 1958: 07080608 streq r0, [r8, -r8, lsl #12] + 195c: 09080808 stmdbeq r8, {r3, fp} + 1960: 0b080a08 bleq 204188 + 1964: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1968: 0000002c andeq r0, r0, ip, lsr #32 + 196c: 0000193c andeq r1, r0, ip, lsr r9 + 1970: 00402fbc strheq r2, [r0], #-252 + 1974: 00000108 andeq r0, r0, r8, lsl #2 + 1978: 84180e41 ldrhi r0, [r8], #-3649 + 197c: 86048505 strhi r8, [r4], -r5, lsl #10 + 1980: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1984: 0e720201 cdpeq 2, 7, cr0, cr2, cr1, {0} + 1988: 0e094114 mcreq 1, 0, r4, cr9, cr4, {0} + 198c: 040e4100 streq r4, [lr], #-256 + 1990: c7c6c5c4 strbgt ip, [r6, r4, asr #11] + 1994: 00000e41 andeq r0, r0, r1, asr #28 + 1998: 00000028 andeq r0, r0, r8, lsr #32 + 199c: ffffffff undefined instruction 0xffffffff + 19a0: 7c020003 stcvc 0, cr0, [r2], {3} + 19a4: 000d0c0e andeq r0, sp, lr, lsl #24 + 19a8: 01070007 tsteq r7, r7 + 19ac: 03070207 movweq r0, #29191 ; 0x7207 + 19b0: 05080408 streq r0, [r8, #-1032] + 19b4: 07080608 streq r0, [r8, -r8, lsl #12] + 19b8: 09080808 stmdbeq r8, {r3, fp} + 19bc: 0b080a08 bleq 2041e4 + 19c0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 19c4: 0000000c andeq r0, r0, ip + 19c8: 00001998 muleq r0, r8, r9 + 19cc: 004030c4 subeq r3, r0, r4, asr #1 + 19d0: 00000028 andeq r0, r0, r8, lsr #32 + 19d4: 00000028 andeq r0, r0, r8, lsr #32 + 19d8: ffffffff undefined instruction 0xffffffff + 19dc: 7c020003 stcvc 0, cr0, [r2], {3} + 19e0: 000d0c0e andeq r0, sp, lr, lsl #24 + 19e4: 01070007 tsteq r7, r7 + 19e8: 03070207 movweq r0, #29191 ; 0x7207 + 19ec: 05080408 streq r0, [r8, #-1032] + 19f0: 07080608 streq r0, [r8, -r8, lsl #12] + 19f4: 09080808 stmdbeq r8, {r3, fp} + 19f8: 0b080a08 bleq 204220 + 19fc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1a00: 00000018 andeq r0, r0, r8, lsl r0 + 1a04: 000019d4 ldrdeq r1, [r0], -r4 + 1a08: 004030ec subeq r3, r0, ip, ror #1 + 1a0c: 00000040 andeq r0, r0, r0, asr #32 + 1a10: 84080e41 strhi r0, [r8], #-3649 + 1a14: 5c018502 cfstr32pl mvfx8, [r1], {2} + 1a18: c5c4000e strbgt r0, [r4, #14] + 1a1c: 00000028 andeq r0, r0, r8, lsr #32 + 1a20: ffffffff undefined instruction 0xffffffff + 1a24: 7c020003 stcvc 0, cr0, [r2], {3} + 1a28: 000d0c0e andeq r0, sp, lr, lsl #24 + 1a2c: 01070007 tsteq r7, r7 + 1a30: 03070207 movweq r0, #29191 ; 0x7207 + 1a34: 05080408 streq r0, [r8, #-1032] + 1a38: 07080608 streq r0, [r8, -r8, lsl #12] + 1a3c: 09080808 stmdbeq r8, {r3, fp} + 1a40: 0b080a08 bleq 204268 + 1a44: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1a48: 00000018 andeq r0, r0, r8, lsl r0 + 1a4c: 00001a1c andeq r1, r0, ip, lsl sl + 1a50: 0040312c subeq r3, r0, ip, lsr #2 + 1a54: 00000038 andeq r0, r0, r8, lsr r0 + 1a58: 84080e41 strhi r0, [r8], #-3649 + 1a5c: 58018502 stmdapl r1, {r1, r8, sl, pc} + 1a60: c5c4000e strbgt r0, [r4, #14] + 1a64: 00000028 andeq r0, r0, r8, lsr #32 + 1a68: ffffffff undefined instruction 0xffffffff + 1a6c: 7c020003 stcvc 0, cr0, [r2], {3} + 1a70: 000d0c0e andeq r0, sp, lr, lsl #24 + 1a74: 01070007 tsteq r7, r7 + 1a78: 03070207 movweq r0, #29191 ; 0x7207 + 1a7c: 05080408 streq r0, [r8, #-1032] + 1a80: 07080608 streq r0, [r8, -r8, lsl #12] + 1a84: 09080808 stmdbeq r8, {r3, fp} + 1a88: 0b080a08 bleq 2042b0 + 1a8c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1a90: 0000000c andeq r0, r0, ip + 1a94: 00001a64 andeq r1, r0, r4, ror #20 + 1a98: 0040316c subeq r3, r0, ip, ror #2 + 1a9c: 0000001c andeq r0, r0, ip, lsl r0 + 1aa0: 00000028 andeq r0, r0, r8, lsr #32 + 1aa4: ffffffff undefined instruction 0xffffffff + 1aa8: 7c020003 stcvc 0, cr0, [r2], {3} + 1aac: 000d0c0e andeq r0, sp, lr, lsl #24 + 1ab0: 01070007 tsteq r7, r7 + 1ab4: 03070207 movweq r0, #29191 ; 0x7207 + 1ab8: 05080408 streq r0, [r8, #-1032] + 1abc: 07080608 streq r0, [r8, -r8, lsl #12] + 1ac0: 09080808 stmdbeq r8, {r3, fp} + 1ac4: 0b080a08 bleq 2042ec + 1ac8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1acc: 0000000c andeq r0, r0, ip + 1ad0: 00001aa0 andeq r1, r0, r0, lsr #21 + 1ad4: 00403188 subeq r3, r0, r8, lsl #3 + 1ad8: 00000016 andeq r0, r0, r6, lsl r0 + 1adc: 00000028 andeq r0, r0, r8, lsr #32 + 1ae0: ffffffff undefined instruction 0xffffffff + 1ae4: 7c020003 stcvc 0, cr0, [r2], {3} + 1ae8: 000d0c0e andeq r0, sp, lr, lsl #24 + 1aec: 01070007 tsteq r7, r7 + 1af0: 03070207 movweq r0, #29191 ; 0x7207 + 1af4: 05080408 streq r0, [r8, #-1032] + 1af8: 07080608 streq r0, [r8, -r8, lsl #12] + 1afc: 09080808 stmdbeq r8, {r3, fp} + 1b00: 0b080a08 bleq 204328 + 1b04: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1b08: 00000018 andeq r0, r0, r8, lsl r0 + 1b0c: 00001adc ldrdeq r1, [r0], -ip + 1b10: 00403dc8 subeq r3, r0, r8, asr #27 + 1b14: 0000003c andeq r0, r0, ip, lsr r0 + 1b18: 84080e41 strhi r0, [r8], #-3649 + 1b1c: 040e5501 streq r5, [lr], #-1281 + 1b20: 000000c4 andeq r0, r0, r4, asr #1 + 1b24: 00000028 andeq r0, r0, r8, lsr #32 + 1b28: ffffffff undefined instruction 0xffffffff + 1b2c: 7c020003 stcvc 0, cr0, [r2], {3} + 1b30: 000d0c0e andeq r0, sp, lr, lsl #24 + 1b34: 01070007 tsteq r7, r7 + 1b38: 03070207 movweq r0, #29191 ; 0x7207 + 1b3c: 05080408 streq r0, [r8, #-1032] + 1b40: 07080608 streq r0, [r8, -r8, lsl #12] + 1b44: 09080808 stmdbeq r8, {r3, fp} + 1b48: 0b080a08 bleq 204370 + 1b4c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1b50: 0000000c andeq r0, r0, ip + 1b54: 00001b24 andeq r1, r0, r4, lsr #22 + 1b58: 004031a4 subeq r3, r0, r4, lsr #3 + 1b5c: 00000074 andeq r0, r0, r4, ror r0 + 1b60: 00000028 andeq r0, r0, r8, lsr #32 + 1b64: ffffffff undefined instruction 0xffffffff + 1b68: 7c020003 stcvc 0, cr0, [r2], {3} + 1b6c: 000d0c0e andeq r0, sp, lr, lsl #24 + 1b70: 01070007 tsteq r7, r7 + 1b74: 03070207 movweq r0, #29191 ; 0x7207 + 1b78: 05080408 streq r0, [r8, #-1032] + 1b7c: 07080608 streq r0, [r8, -r8, lsl #12] + 1b80: 09080808 stmdbeq r8, {r3, fp} + 1b84: 0b080a08 bleq 2043ac + 1b88: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1b8c: 0000002c andeq r0, r0, ip, lsr #32 + 1b90: 00001b60 andeq r1, r0, r0, ror #22 + 1b94: 00403218 subeq r3, r0, r8, lsl r2 + 1b98: 000000cc andeq r0, r0, ip, asr #1 + 1b9c: 84100e41 ldrhi r0, [r0], #-3649 + 1ba0: 86038504 strhi r8, [r3], -r4, lsl #10 + 1ba4: 41018e02 tstmi r1, r2, lsl #28 + 1ba8: 0e63380e cdpeq 8, 6, cr3, cr3, cr14, {0} + 1bac: 380e4840 stmdacc lr, {r6, fp, lr} + 1bb0: 48400e5f stmdami r0, {r0, r1, r2, r3, r4, r6, r9, sl, fp}^ + 1bb4: 0e4c380e cdpeq 8, 4, cr3, cr12, cr14, {0} + 1bb8: 00000010 andeq r0, r0, r0, lsl r0 + 1bbc: 00000028 andeq r0, r0, r8, lsr #32 + 1bc0: ffffffff undefined instruction 0xffffffff + 1bc4: 7c020003 stcvc 0, cr0, [r2], {3} + 1bc8: 000d0c0e andeq r0, sp, lr, lsl #24 + 1bcc: 01070007 tsteq r7, r7 + 1bd0: 03070207 movweq r0, #29191 ; 0x7207 + 1bd4: 05080408 streq r0, [r8, #-1032] + 1bd8: 07080608 streq r0, [r8, -r8, lsl #12] + 1bdc: 09080808 stmdbeq r8, {r3, fp} + 1be0: 0b080a08 bleq 204408 + 1be4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1be8: 00000018 andeq r0, r0, r8, lsl r0 + 1bec: 00001bbc strheq r1, [r0], -ip + 1bf0: 004032e4 subeq r3, r0, r4, ror #5 + 1bf4: 00000030 andeq r0, r0, r0, lsr r0 + 1bf8: 84100e41 ldrhi r0, [r0], #-3649 + 1bfc: 86038504 strhi r8, [r3], -r4, lsl #10 + 1c00: 00018e02 andeq r8, r1, r2, lsl #28 + 1c04: 00000028 andeq r0, r0, r8, lsr #32 + 1c08: ffffffff undefined instruction 0xffffffff + 1c0c: 7c020003 stcvc 0, cr0, [r2], {3} + 1c10: 000d0c0e andeq r0, sp, lr, lsl #24 + 1c14: 01070007 tsteq r7, r7 + 1c18: 03070207 movweq r0, #29191 ; 0x7207 + 1c1c: 05080408 streq r0, [r8, #-1032] + 1c20: 07080608 streq r0, [r8, -r8, lsl #12] + 1c24: 09080808 stmdbeq r8, {r3, fp} + 1c28: 0b080a08 bleq 204450 + 1c2c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1c30: 00000024 andeq r0, r0, r4, lsr #32 + 1c34: 00001c04 andeq r1, r0, r4, lsl #24 + 1c38: 00403314 subeq r3, r0, r4, lsl r3 + 1c3c: 00000008 andeq r0, r0, r8 + 1c40: 0484100e streq r1, [r4], #14 + 1c44: 02860385 addeq r0, r6, #335544322 ; 0x14000002 + 1c48: 0941018e stmdbeq r1, {r1, r2, r3, r7, r8}^ + 1c4c: 0e41010e dvfeqs f0, f1, #0.5 + 1c50: c6c5c404 strbgt ip, [r5], r4, lsl #8 + 1c54: 00000e41 andeq r0, r0, r1, asr #28 + 1c58: 00000028 andeq r0, r0, r8, lsr #32 + 1c5c: ffffffff undefined instruction 0xffffffff + 1c60: 7c040003 stcvc 0, cr0, [r4], {3} + 1c64: 000d0c0e andeq r0, sp, lr, lsl #24 + 1c68: 01080008 tsteq r8, r8 + 1c6c: 03080208 movweq r0, #33288 ; 0x8208 + 1c70: 05080408 streq r0, [r8, #-1032] + 1c74: 07080608 streq r0, [r8, -r8, lsl #12] + 1c78: 09080808 stmdbeq r8, {r3, fp} + 1c7c: 0b080a08 bleq 2044a4 + 1c80: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1c84: 00000014 andeq r0, r0, r4, lsl r0 + 1c88: 00001c58 andeq r1, r0, r8, asr ip + 1c8c: 00403f34 subeq r3, r0, r4, lsr pc + 1c90: 00000008 andeq r0, r0, r8 + 1c94: 01070007 tsteq r7, r7 + 1c98: 03070207 movweq r0, #29191 ; 0x7207 + 1c9c: 00000028 andeq r0, r0, r8, lsr #32 + 1ca0: ffffffff undefined instruction 0xffffffff + 1ca4: 7c040003 stcvc 0, cr0, [r4], {3} + 1ca8: 000d0c0e andeq r0, sp, lr, lsl #24 + 1cac: 01070007 tsteq r7, r7 + 1cb0: 03070207 movweq r0, #29191 ; 0x7207 + 1cb4: 05080408 streq r0, [r8, #-1032] + 1cb8: 07080608 streq r0, [r8, -r8, lsl #12] + 1cbc: 09080808 stmdbeq r8, {r3, fp} + 1cc0: 0b080a08 bleq 2044e8 + 1cc4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1cc8: 00000018 andeq r0, r0, r8, lsl r0 + 1ccc: 00001c9c muleq r0, ip, ip + 1cd0: 00403e3c subeq r3, r0, ip, lsr lr + 1cd4: 00000034 andeq r0, r0, r4, lsr r0 + 1cd8: 84080e42 strhi r0, [r8], #-3650 + 1cdc: 48018e02 stmdami r1, {r1, r9, sl, fp, pc} + 1ce0: cec4000e cdpgt 0, 12, cr0, cr4, cr14, {0} + 1ce4: 00000028 andeq r0, r0, r8, lsr #32 + 1ce8: ffffffff undefined instruction 0xffffffff + 1cec: 7c040003 stcvc 0, cr0, [r4], {3} + 1cf0: 000d0c0e andeq r0, sp, lr, lsl #24 + 1cf4: 01080008 tsteq r8, r8 + 1cf8: 03080208 movweq r0, #33288 ; 0x8208 + 1cfc: 05080408 streq r0, [r8, #-1032] + 1d00: 07080608 streq r0, [r8, -r8, lsl #12] + 1d04: 09080808 stmdbeq r8, {r3, fp} + 1d08: 0b080a08 bleq 204530 + 1d0c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1d10: 00000014 andeq r0, r0, r4, lsl r0 + 1d14: 00001ce4 andeq r1, r0, r4, ror #25 + 1d18: 00403d3c subeq r3, r0, ip, lsr sp + 1d1c: 00000048 andeq r0, r0, r8, asr #32 + 1d20: 01070007 tsteq r7, r7 + 1d24: 03070207 movweq r0, #29191 ; 0x7207 + 1d28: 00000028 andeq r0, r0, r8, lsr #32 + 1d2c: ffffffff undefined instruction 0xffffffff + 1d30: 7c040003 stcvc 0, cr0, [r4], {3} + 1d34: 000d0c0e andeq r0, sp, lr, lsl #24 + 1d38: 01070007 tsteq r7, r7 + 1d3c: 03070207 movweq r0, #29191 ; 0x7207 + 1d40: 05080408 streq r0, [r8, #-1032] + 1d44: 07080608 streq r0, [r8, -r8, lsl #12] + 1d48: 09080808 stmdbeq r8, {r3, fp} + 1d4c: 0b080a08 bleq 204574 + 1d50: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1d54: 0000000c andeq r0, r0, ip + 1d58: 00001d28 andeq r1, r0, r8, lsr #26 + 1d5c: 00403e98 umaaleq r3, r0, r8, lr + 1d60: 00000028 andeq r0, r0, r8, lsr #32 + 1d64: 00000028 andeq r0, r0, r8, lsr #32 + 1d68: ffffffff undefined instruction 0xffffffff + 1d6c: 7c040003 stcvc 0, cr0, [r4], {3} + 1d70: 000d0c0e andeq r0, sp, lr, lsl #24 + 1d74: 01070007 tsteq r7, r7 + 1d78: 03070207 movweq r0, #29191 ; 0x7207 + 1d7c: 05080408 streq r0, [r8, #-1032] + 1d80: 07080608 streq r0, [r8, -r8, lsl #12] + 1d84: 09080808 stmdbeq r8, {r3, fp} + 1d88: 0b080a08 bleq 2045b0 + 1d8c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1d90: 00000038 andeq r0, r0, r8, lsr r0 + 1d94: 00001d64 andeq r1, r0, r4, ror #26 + 1d98: 004036fc strdeq r3, [r0], #-108 + 1d9c: 000000e8 andeq r0, r0, r8, ror #1 + 1da0: 84200e41 strthi r0, [r0], #-3649 + 1da4: 86068507 strhi r8, [r6], -r7, lsl #10 + 1da8: 88048705 stmdahi r4, {r0, r2, r8, r9, sl, pc} + 1dac: 8e028903 cdphi 9, 0, cr8, cr2, cr3, {0} + 1db0: 040e5801 streq r5, [lr], #-2049 + 1db4: c7c6c5c4 strbgt ip, [r6, r4, asr #11] + 1db8: 41cec9c8 bicmi ip, lr, r8, asr #19 + 1dbc: 0784200e streq r2, [r4, lr] + 1dc0: 05860685 streq r0, [r6, #1669] + 1dc4: 03880487 orreq r0, r8, #-2030043136 ; 0x87000000 + 1dc8: 018e0289 orreq r0, lr, r9, lsl #5 + +Disassembly of section .debug_info: + +00000000 <.debug_info>: + 0: 000000e8 andeq r0, r0, r8, ror #1 + 4: 00000003 andeq r0, r0, r3 + 8: 01040000 tsteq r4, r0 + c: 445c3a43 ldrbmi r3, [ip], #-2627 + 10: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 14: 73746e65 cmnvc r4, #1616 ; 0x650 + 18: 646e6120 strbtvs r6, [lr], #-288 + 1c: 74655320 strbtvc r5, [r5], #-800 + 20: 676e6974 undefined + 24: 616d5c73 smcvs 54723 + 28: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 30: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 34: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 38: 775c7374 undefined + 3c: 6f632d73 svcvs 0x00632d73 + 40: 6f72746e svcvs 0x0072746e + 44: 65575c6c ldrbvs r5, [r7, #-3180] + 48: 65687461 strbvs r7, [r8, #-1121]! + 4c: 74532072 ldrbvc r2, [r3], #-114 + 50: 6f697461 svcvs 0x00697461 + 54: 6f43206e svcvs 0x0043206e + 58: 6f72746e svcvs 0x0072746e + 5c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 60: 414d535c cmpmi sp, ip, asr r3 + 64: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 68: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 6c: 6f535c73 svcvs 0x00535c73 + 70: 65637275 strbvs r7, [r3, #-629]! + 74: 6c65445c cfstrdvs mvd4, [r5], #-368 + 78: 632e7961 teqvs lr, #1589248 ; 0x184000 + 7c: 52414900 subpl r4, r1, #0 ; 0x0 + 80: 534e4120 movtpl r4, #57632 ; 0xe120 + 84: 2f432049 svccs 0x00432049 + 88: 202b2b43 eorcs r2, fp, r3, asr #22 + 8c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 90: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 94: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 98: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a0: 572f3539 undefined + a4: 4b203233 blmi 80c978 + a8: 534b4349 movtpl r4, #45897 ; 0xb349 + ac: 54524154 ldrbpl r4, [r2], #-340 + b0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b4: 4d524120 ldfmie f4, [r2, #-128] + b8: 00000100 andeq r0, r0, r0, lsl #2 + bc: 00000000 andeq r0, r0, r0 + c0: 75030000 strvc r0, [r3] + c4: 6769736e strbvs r7, [r9, -lr, ror #6]! + c8: 2064656e rsbcs r6, r4, lr, ror #10 + cc: 676e6f6c strbvs r6, [lr, -ip, ror #30]! + d0: 04070400 streq r0, [r7], #-1024 + d4: 0000d913 andeq sp, r0, r3, lsl r9 + d8: 69750800 ldmdbvs r5!, {fp}^ + dc: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 + e0: 1500745f strne r7, [r0, #-1119] + e4: 1e0101c2 adfnedm f0, f1, f2 + e8: 00000019 andeq r0, r0, r9, lsl r0 + ec: 0000010c andeq r0, r0, ip, lsl #2 + f0: 00000003 andeq r0, r0, r3 + f4: 02040000 andeq r0, r4, #0 ; 0x0 + f8: 445c3a43 ldrbmi r3, [ip], #-2627 + fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 100: 73746e65 cmnvc r4, #1616 ; 0x650 + 104: 646e6120 strbtvs r6, [lr], #-288 + 108: 74655320 strbtvc r5, [r5], #-800 + 10c: 676e6974 undefined + 110: 616d5c73 smcvs 54723 + 114: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 118: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 11c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 120: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 124: 775c7374 undefined + 128: 6f632d73 svcvs 0x00632d73 + 12c: 6f72746e svcvs 0x0072746e + 130: 65575c6c ldrbvs r5, [r7, #-3180] + 134: 65687461 strbvs r7, [r8, #-1121]! + 138: 74532072 ldrbvc r2, [r3], #-114 + 13c: 6f697461 svcvs 0x00697461 + 140: 6f43206e svcvs 0x0043206e + 144: 6f72746e svcvs 0x0072746e + 148: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 14c: 414d535c cmpmi sp, ip, asr r3 + 150: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 154: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 158: 6f535c73 svcvs 0x00535c73 + 15c: 65637275 strbvs r7, [r3, #-629]! + 160: 6c65445c cfstrdvs mvd4, [r5], #-368 + 164: 632e7961 teqvs lr, #1589248 ; 0x184000 + 168: 52414900 subpl r4, r1, #0 ; 0x0 + 16c: 534e4120 movtpl r4, #57632 ; 0xe120 + 170: 2f432049 svccs 0x00432049 + 174: 202b2b43 eorcs r2, fp, r3, asr #22 + 178: 706d6f43 rsbvc r6, sp, r3, asr #30 + 17c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 180: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 184: 322e3033 eorcc r3, lr, #51 ; 0x33 + 188: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 18c: 572f3539 undefined + 190: 4b203233 blmi 80ca64 + 194: 534b4349 movtpl r4, #45897 ; 0xb349 + 198: 54524154 ldrbpl r4, [r2], #-340 + 19c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1a0: 4d524120 ldfmie f4, [r2, #-128] + 1a4: 3d840100 stfccs f0, [r4] + 1a8: 3da80040 stccc 0, cr0, [r8, #256]! + 1ac: 02180040 andseq r0, r8, #64 ; 0x40 + 1b0: 00000000 andeq r0, r0, r0 + 1b4: 0b100000 bleq 4001bc + 1b8: 05000000 streq r0, [r0] + 1bc: 0000010c andeq r0, r0, ip, lsl #2 + 1c0: 616c6544 cmnvs ip, r4, asr #10 + 1c4: 00734d79 rsbseq r4, r3, r9, ror sp + 1c8: 01061401 tsteq r6, r1, lsl #8 + 1cc: 00000000 andeq r0, r0, r0 + 1d0: 00403d84 subeq r3, r0, r4, lsl #27 + 1d4: 00403da8 subeq r3, r0, r8, lsr #27 + 1d8: 00736d06 rsbseq r6, r3, r6, lsl #26 + 1dc: 10171401 andsne r1, r7, r1, lsl #8 + 1e0: 000000d9 ldrdeq r0, [r0], -r9 + 1e4: 0000002c andeq r0, r0, ip, lsr #32 + 1e8: 01006907 tsteq r0, r7, lsl #18 + 1ec: d3101516 tstle r0, #92274688 ; 0x5800000 + 1f0: 49000000 stmdbmi r0, {} + ... + 1fc: 0000010c andeq r0, r0, ip, lsl #2 + 200: 00000003 andeq r0, r0, r3 + 204: 02040000 andeq r0, r4, #0 ; 0x0 + 208: 445c3a43 ldrbmi r3, [ip], #-2627 + 20c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 210: 73746e65 cmnvc r4, #1616 ; 0x650 + 214: 646e6120 strbtvs r6, [lr], #-288 + 218: 74655320 strbtvc r5, [r5], #-800 + 21c: 676e6974 undefined + 220: 616d5c73 smcvs 54723 + 224: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 228: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 22c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 230: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 234: 775c7374 undefined + 238: 6f632d73 svcvs 0x00632d73 + 23c: 6f72746e svcvs 0x0072746e + 240: 65575c6c ldrbvs r5, [r7, #-3180] + 244: 65687461 strbvs r7, [r8, #-1121]! + 248: 74532072 ldrbvc r2, [r3], #-114 + 24c: 6f697461 svcvs 0x00697461 + 250: 6f43206e svcvs 0x0043206e + 254: 6f72746e svcvs 0x0072746e + 258: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 25c: 414d535c cmpmi sp, ip, asr r3 + 260: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 264: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 268: 6f535c73 svcvs 0x00535c73 + 26c: 65637275 strbvs r7, [r3, #-629]! + 270: 6c65445c cfstrdvs mvd4, [r5], #-368 + 274: 632e7961 teqvs lr, #1589248 ; 0x184000 + 278: 52414900 subpl r4, r1, #0 ; 0x0 + 27c: 534e4120 movtpl r4, #57632 ; 0xe120 + 280: 2f432049 svccs 0x00432049 + 284: 202b2b43 eorcs r2, fp, r3, asr #22 + 288: 706d6f43 rsbvc r6, sp, r3, asr #30 + 28c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 290: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 294: 322e3033 eorcc r3, lr, #51 ; 0x33 + 298: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 29c: 572f3539 undefined + 2a0: 4b203233 blmi 80cb74 + 2a4: 534b4349 movtpl r4, #45897 ; 0xb349 + 2a8: 54524154 ldrbpl r4, [r2], #-340 + 2ac: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2b0: 4d524120 ldfmie f4, [r2, #-128] + 2b4: 3da80100 stfccs f0, [r8] + 2b8: 3dc60040 stclcc 0, cr0, [r6, #256] + 2bc: 02cc0040 sbceq r0, ip, #64 ; 0x40 + 2c0: 00660000 rsbeq r0, r6, r0 + 2c4: 0b100000 bleq 4002cc + 2c8: 05000000 streq r0, [r0] + 2cc: 0000010c andeq r0, r0, ip, lsl #2 + 2d0: 616c6544 cmnvs ip, r4, asr #10 + 2d4: 00735579 rsbseq r5, r3, r9, ror r5 + 2d8: 01062001 tsteq r6, r1 + 2dc: 00000067 andeq r0, r0, r7, rrx + 2e0: 00403da8 subeq r3, r0, r8, lsr #27 + 2e4: 00403dc6 subeq r3, r0, r6, asr #27 + 2e8: 00737506 rsbseq r7, r3, r6, lsl #10 + 2ec: 10172001 andsne r2, r7, r1 + 2f0: 000000d9 ldrdeq r0, [r0], -r9 + 2f4: 00000093 muleq r0, r3, r0 + 2f8: 01006907 tsteq r0, r7, lsl #18 + 2fc: d3101522 tstle r0, #142606336 ; 0x8800000 + 300: b0000000 andlt r0, r0, r0 + ... + 30c: 00000574 andeq r0, r0, r4, ror r5 + 310: 00840003 addeq r0, r4, r3 + 314: 01040000 tsteq r4, r0 + 318: 445c3a43 ldrbmi r3, [ip], #-2627 + 31c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 320: 73746e65 cmnvc r4, #1616 ; 0x650 + 324: 646e6120 strbtvs r6, [lr], #-288 + 328: 74655320 strbtvc r5, [r5], #-800 + 32c: 676e6974 undefined + 330: 616d5c73 smcvs 54723 + 334: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 338: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 33c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 340: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 344: 775c7374 undefined + 348: 6f632d73 svcvs 0x00632d73 + 34c: 6f72746e svcvs 0x0072746e + 350: 65575c6c ldrbvs r5, [r7, #-3180] + 354: 65687461 strbvs r7, [r8, #-1121]! + 358: 74532072 ldrbvc r2, [r3], #-114 + 35c: 6f697461 svcvs 0x00697461 + 360: 6f43206e svcvs 0x0043206e + 364: 6f72746e svcvs 0x0072746e + 368: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 36c: 7070415c rsbsvc r4, r0, ip, asr r1 + 370: 6163696c cmnvs r3, ip, ror #18 + 374: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 378: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 37c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 380: 445c7365 ldrbmi r7, [ip], #-869 + 384: 6c707369 ldclvs 3, cr7, [r0], #-420 + 388: 632e7961 teqvs lr, #1589248 ; 0x184000 + 38c: 52414900 subpl r4, r1, #0 ; 0x0 + 390: 534e4120 movtpl r4, #57632 ; 0xe120 + 394: 2f432049 svccs 0x00432049 + 398: 202b2b43 eorcs r2, fp, r3, asr #22 + 39c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 3a0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 3a4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 3a8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 3ac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 3b0: 572f3539 undefined + 3b4: 4b203233 blmi 80cc88 + 3b8: 534b4349 movtpl r4, #45897 ; 0xb349 + 3bc: 54524154 ldrbpl r4, [r2], #-340 + 3c0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 3c4: 4d524120 ldfmie f4, [r2, #-128] + 3c8: 03800100 orreq r0, r0, #0 ; 0x0 + 3cc: 00140000 andseq r0, r4, r0 + 3d0: 75020000 strvc r0, [r2] + 3d4: 6769736e strbvs r7, [r9, -lr, ror #6]! + 3d8: 2064656e rsbcs r6, r4, lr, ror #10 + 3dc: 726f6873 rsbvc r6, pc, #7536640 ; 0x730000 + 3e0: 07020074 smlsdxeq r2, r4, r0, r0 + 3e4: 05131303 ldreq r1, [r3, #-771] + 3e8: 15040000 strne r0, [r4] + 3ec: 750201d8 strvc r0, [r2, #-472] + 3f0: 6769736e strbvs r7, [r9, -lr, ror #6]! + 3f4: 2064656e rsbcs r6, r4, lr, ror #10 + 3f8: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 + 3fc: 03080100 movweq r0, #33024 ; 0x8100 + 400: 0004e713 andeq lr, r4, r3, lsl r7 + 404: f3150400 vshl.u16 d0, d0, d5 + 408: 42130301 andsmi r0, r3, #67108864 ; 0x4000000 + 40c: 03000002 movweq r0, #2 ; 0x2 + 410: 00028313 andeq r8, r2, r3, lsl r3 + 414: c7130600 ldrgt r0, [r3, -r0, lsl #12] + 418: 02000004 andeq r0, r0, #4 ; 0x4 + 41c: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} + 420: 63206465 teqvs r0, #1694498816 ; 0x65000000 + 424: 00726168 rsbseq r6, r2, r8, ror #2 + 428: 13040601 movwne r0, #17921 ; 0x4601 + 42c: 000004e7 andeq r0, r0, r7, ror #9 + 430: 67697302 strbvs r7, [r9, -r2, lsl #6]! + 434: 2064656e rsbcs r6, r4, lr, ror #10 + 438: 726f6873 rsbvc r6, pc, #7536640 ; 0x730000 + 43c: 05020074 streq r0, [r2, #-116] + 440: 736e7502 cmnvc lr, #8388608 ; 0x800000 + 444: 656e6769 strbvs r6, [lr, #-1897]! + 448: 6f6c2064 svcvs 0x006c2064 + 44c: 0400676e streq r6, [r0], #-1902 + 450: 018c1407 orreq r1, ip, r7, lsl #8 + 454: 15010000 strne r0, [r1] + 458: 69704767 ldmdbvs r0!, {r0, r1, r2, r5, r6, r8, r9, sl, lr}^ + 45c: 6e69506f cdpvs 0, 6, cr5, cr9, cr15, {3} + 460: 74617453 strbtvc r7, [r1], #-1107 + 464: 776f4c65 strbvc r4, [pc, -r5, ror #24]! + 468: 0000635f andeq r6, r0, pc, asr r3 + 46c: 70476715 subvc r6, r7, r5, lsl r7 + 470: 69506f69 ldmdbvs r0, {r0, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 474: 6174536e cmnvs r4, lr, ror #6 + 478: 69486574 stmdbvs r8, {r2, r4, r5, r6, r8, sl, sp, lr}^ + 47c: 635f6867 cmpvs pc, #6750208 ; 0x670000 + 480: 67150100 ldrvs r0, [r5, -r0, lsl #2] + 484: 6f697047 svcvs 0x00697047 + 488: 536e6950 cmnpl lr, #1310720 ; 0x140000 + 48c: 65746174 ldrbvs r6, [r4, #-372]! + 490: 5f78614d svcpl 0x0078614d + 494: 00020063 andeq r0, r2, r3, rrx + 498: 0001b914 andeq fp, r1, r4, lsl r9 + 49c: 67150100 ldrvs r0, [r5, -r0, lsl #2] + 4a0: 5f44434c svcpl 0x0044434c + 4a4: 46786548 ldrbtmi r6, [r8], -r8, asr #10 + 4a8: 616d726f cmnvs sp, pc, ror #4 + 4ac: 00635f74 rsbeq r5, r3, r4, ror pc + 4b0: 4c671500 cfstr64mi mvdx1, [r7] + 4b4: 445f4443 ldrbmi r4, [pc], #1091 ; 4bc <__FIQ_stack_size+0xbc> + 4b8: 6f466365 svcvs 0x00466365 + 4bc: 74616d72 strbtvc r6, [r1], #-3442 + 4c0: 0100635f tsteq r0, pc, asr r3 + 4c4: 020a1600 andeq r1, sl, #0 ; 0x0 + 4c8: 636c0000 cmnvs ip, #0 ; 0x0 + 4cc: 6e6f4664 cdpvs 6, 6, cr4, cr15, cr4, {3} + 4d0: 70795474 rsbsvc r5, r9, r4, ror r4 + 4d4: 61745f65 cmnvs r4, r5, ror #30 + 4d8: 15010067 strne r0, [r1, #-103] + 4dc: 44434c67 strbmi r4, [r3], #-3175 + 4e0: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 + 4e4: 466c616d strbtmi r6, [ip], -sp, ror #2 + 4e8: 5f746e6f svcpl 0x00746e6f + 4ec: 15000063 strne r0, [r0, #-99] + 4f0: 44434c67 strbmi r4, [r3], #-3175 + 4f4: 7265565f rsbvc r5, r5, #99614720 ; 0x5f00000 + 4f8: 616e6164 cmnvs lr, r4, ror #2 + 4fc: 746e6f46 strbtvc r6, [lr], #-3910 + 500: 0100635f tsteq r0, pc, asr r3 + 504: 434c6715 movtmi r6, #50965 ; 0xc715 + 508: 614d5f44 cmpvs sp, r4, asr #30 + 50c: 6e6f4678 mcrvs 6, 3, r4, cr15, cr8, {3} + 510: 00635f74 rsbeq r5, r3, r4, ror pc + 514: 42160002 andsmi r0, r6, #2 ; 0x2 + 518: 6c000002 stcvs 0, cr0, [r0], {2} + 51c: 72456463 subvc r6, r5, #1660944384 ; 0x63000000 + 520: 5f726f72 svcpl 0x00726f72 + 524: 00676174 rsbeq r6, r7, r4, ror r1 + 528: 4c671501 cfstr64mi mvdx1, [r7], #-4 + 52c: 4e5f4443 cdpmi 4, 5, cr4, cr15, cr3, {2} + 530: 7272456f rsbsvc r4, r2, #465567744 ; 0x1bc00000 + 534: 635f726f cmpvs pc, #-268435450 ; 0xf0000006 + 538: 67150000 ldrvs r0, [r5, -r0] + 53c: 5f44434c svcpl 0x0044434c + 540: 75657551 strbvc r7, [r5, #-1361]! + 544: 6c754665 ldclvs 6, cr4, [r5], #-404 + 548: 00635f6c rsbeq r5, r3, ip, ror #30 + 54c: 4f170001 svcmi 0x00170001 + 550: 13000002 movwne r0, #2 ; 0x2 + 554: 000002a8 andeq r0, r0, r8, lsr #5 + 558: 17000118 smladne r0, r8, r1, r0 + 55c: 0000025c andeq r0, r0, ip, asr r2 + 560: 0004e713 andeq lr, r4, r3, lsl r7 + 564: 00051800 andeq r1, r5, r0, lsl #16 + 568: 00026917 andeq r6, r2, r7, lsl r9 + 56c: 029b1300 addseq r1, fp, #0 ; 0x0 + 570: 07180000 ldreq r0, [r8, -r0] + 574: 02761700 rsbseq r1, r6, #0 ; 0x0 + 578: e7130000 ldr r0, [r3, -r0] + 57c: 18000004 stmdane r0, {r2} + 580: 83170007 tsthi r7, #7 ; 0x7 + 584: 13000002 movwne r0, #2 ; 0x2 + 588: 0000054a andeq r0, r0, sl, asr #10 + 58c: 17000718 smladne r0, r8, r7, r0 + 590: 0000028e andeq r0, r0, lr, lsl #5 + 594: 1801e215 stmdane r1, {r0, r2, r4, r9, sp, lr, pc} + 598: 9b170010 blls 5c05e0 + 59c: 13000002 movwne r0, #2 ; 0x2 + 5a0: 000004e7 andeq r0, r0, r7, ror #9 + 5a4: 17001018 smladne r0, r8, r0, r1 + 5a8: 000002a8 andeq r0, r0, r8, lsr #5 + 5ac: 0004e713 andeq lr, r4, r3, lsl r7 + 5b0: 00141800 andseq r1, r4, r0, lsl #16 + 5b4: 0002f319 andeq pc, r2, r9, lsl r3 + 5b8: 151a0c00 ldrne r0, [sl, #-3072] + 5bc: 700101de ldrdvc r0, [r1], -lr + 5c0: 746e6f46 strbtvc r6, [lr], #-3910 + 5c4: 65646e49 strbvs r6, [r4, #-3657]! + 5c8: 62615478 rsbvs r5, r1, #2013265920 ; 0x78000000 + 5cc: 0200656c andeq r6, r0, #452984832 ; 0x1b000000 + 5d0: 151a0023 ldrne r0, [sl, #-35] + 5d4: 700101f9 strdvc r0, [r1], -r9 + 5d8: 746e6f46 strbtvc r6, [lr], #-3910 + 5dc: 72616843 rsbvc r6, r1, #4390912 ; 0x430000 + 5e0: 6c626154 stfvse f6, [r2], #-336 + 5e4: 23020065 movwcs r0, #8293 ; 0x2065 + 5e8: e7131a04 ldr r1, [r3, -r4, lsl #20] + 5ec: 01000004 tsteq r0, r4 + 5f0: 746e6f66 strbtvc r6, [lr], #-3942 + 5f4: 67696548 strbvs r6, [r9, -r8, asr #10]! + 5f8: 02007468 andeq r7, r0, #1744830464 ; 0x68000000 + 5fc: 1b000823 blne 2690 <__USR_stack_size+0x1e90> + 600: 000003e8 andeq r0, r0, r8, ror #7 + 604: 70736964 rsbsvc r6, r3, r4, ror #18 + 608: 5079616c rsbspl r6, r9, ip, ror #2 + 60c: 6d617261 sfmvs f7, 2, [r1, #-388]! + 610: 61745f73 cmnvs r4, r3, ror pc + 614: 01b70067 undefined instruction 0x01b70067 + 618: 04e7131a strbteq r1, [r7], #794 + 61c: 63010000 movwvs r0, #4096 ; 0x1000 + 620: 65727275 ldrbvs r7, [r2, #-629]! + 624: 4358746e cmpmi r8, #1845493760 ; 0x6e000000 + 628: 64726f6f ldrbtvs r6, [r2], #-3951 + 62c: 00230200 eoreq r0, r3, r0, lsl #4 + 630: 04e7131a strbteq r1, [r7], #794 + 634: 63010000 movwvs r0, #4096 ; 0x1000 + 638: 65727275 ldrbvs r7, [r2, #-629]! + 63c: 4359746e cmpmi r9, #1845493760 ; 0x6e000000 + 640: 64726f6f ldrbtvs r6, [r2], #-3951 + 644: 01230200 teqeq r3, r0, lsl #4 + 648: 04e7131a strbteq r1, [r7], #794 + 64c: 63010000 movwvs r0, #4096 ; 0x1000 + 650: 65727275 ldrbvs r7, [r2, #-629]! + 654: 694c746e stmdbvs ip, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ + 658: 0200656e andeq r6, r0, #461373440 ; 0x1b800000 + 65c: 131a0223 tstne sl, #805306370 ; 0x30000002 + 660: 000004e7 andeq r0, r0, r7, ror #9 + 664: 69727701 ldmdbvs r2!, {r0, r8, r9, sl, ip, sp, lr}^ + 668: 6e657474 mcrvs 4, 3, r7, cr5, cr4, {3} + 66c: 656e694c strbvs r6, [lr, #-2380]! + 670: 23020073 movwcs r0, #8307 ; 0x2073 + 674: e7131a03 ldr r1, [r3, -r3, lsl #20] + 678: 01000004 tsteq r0, r4 + 67c: 656e696c strbvs r6, [lr, #-2412]! + 680: 576f5473 undefined + 684: 65746972 ldrbvs r6, [r4, #-2418]! + 688: 04230200 strteq r0, [r3], #-512 + 68c: 04e9151a strbteq r1, [r9], #1306 + 690: 6e696c01 cdpvs 12, 6, cr6, cr9, cr1, {0} + 694: 69577365 ldmdbvs r7, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 698: 57687464 strbpl r7, [r8, -r4, ror #8]! + 69c: 74746972 ldrbtvc r6, [r4], #-2418 + 6a0: 02006e65 andeq r6, r0, #1616 ; 0x650 + 6a4: 131a0523 tstne sl, #146800640 ; 0x8c00000 + 6a8: 000004e7 andeq r0, r0, r7, ror #9 + 6ac: 72756301 rsbsvc r6, r5, #67108864 ; 0x4000000 + 6b0: 746e6572 strbtvc r6, [lr], #-1394 + 6b4: 746e6f46 strbtvc r6, [lr], #-3910 + 6b8: 65707954 ldrbvs r7, [r0, #-2388]! + 6bc: 0d230200 sfmeq f0, 4, [r3] + 6c0: 04e7131a strbteq r1, [r7], #794 + 6c4: 63010000 movwvs r0, #4096 ; 0x1000 + 6c8: 65727275 ldrbvs r7, [r2, #-629]! + 6cc: 7453746e ldrbvc r7, [r3], #-1134 + 6d0: 676e6972 undefined + 6d4: 65646e49 strbvs r6, [r4, #-3657]! + 6d8: 23020078 movwcs r0, #8312 ; 0x2078 + 6dc: dc151a0e ldcle 10, cr1, [r5], {14} + 6e0: 75630104 strbvc r0, [r3, #-260]! + 6e4: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 6e8: 72745374 rsbsvc r5, r4, #-805306367 ; 0xd0000001 + 6ec: 00676e69 rsbeq r6, r7, r9, ror #28 + 6f0: 000f2302 andeq r2, pc, r2, lsl #6 + 6f4: 00042f1b andeq r2, r4, fp, lsl pc + 6f8: 6e696c00 cdpvs 12, 6, cr6, cr9, cr0, {0} + 6fc: 72615065 rsbvc r5, r1, #101 ; 0x65 + 700: 5f736d61 svcpl 0x00736d61 + 704: 00676174 rsbeq r6, r7, r4, ror r1 + 708: e7131a03 ldr r1, [r3, -r3, lsl #20] + 70c: 01000004 tsteq r0, r4 + 710: 6f6f4378 svcvs 0x006f4378 + 714: 02006472 andeq r6, r0, #1912602624 ; 0x72000000 + 718: 131a0023 tstne sl, #35 ; 0x23 + 71c: 000004e7 andeq r0, r0, r7, ror #9 + 720: 6f437901 svcvs 0x00437901 + 724: 0064726f rsbeq r7, r4, pc, ror #4 + 728: 1a012302 bne 49338 + 72c: 0004e713 andeq lr, r4, r3, lsl r7 + 730: 61700100 cmnvs r0, r0, lsl #2 + 734: 02006567 andeq r6, r0, #432013312 ; 0x19c00000 + 738: 1b000223 blne fcc <__USR_stack_size+0x7cc> + 73c: 0000048f andeq r0, r0, pc, lsl #9 + 740: 65676170 strbvs r6, [r7, #-368]! + 744: 61726150 cmnvs r2, r0, asr r1 + 748: 745f736d ldrbvc r7, [pc], #877 ; 750 <__FIQ_stack_size+0x350> + 74c: 04006761 streq r6, [r0], #-1889 + 750: 04e7131a strbteq r1, [r7], #794 + 754: 78010000 stmdavc r1, {} + 758: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 + 75c: 6f6f4374 svcvs 0x006f4374 + 760: 02006472 andeq r6, r0, #1912602624 ; 0x72000000 + 764: 131a0023 tstne sl, #35 ; 0x23 + 768: 000004e7 andeq r0, r0, r7, ror #9 + 76c: 6e457801 cdpvs 8, 4, cr7, cr5, cr1, {0} + 770: 6f6f4364 svcvs 0x006f4364 + 774: 02006472 andeq r6, r0, #1912602624 ; 0x72000000 + 778: 131a0123 tstne sl, #-1073741816 ; 0xc0000008 + 77c: 000004e7 andeq r0, r0, r7, ror #9 + 780: 6f437901 svcvs 0x00437901 + 784: 0064726f rsbeq r7, r4, pc, ror #4 + 788: 1a022302 bne 89398 + 78c: 0004e713 andeq lr, r4, r3, lsl r7 + 790: 696c0100 stmdbvs ip!, {r8}^ + 794: 0200656e andeq r6, r0, #461373440 ; 0x1b800000 + 798: 1c000323 stcne 3, cr0, [r0], {35} + 79c: 6f697047 svcvs 0x00697047 + 7a0: 536e6950 cmnpl lr, #1310720 ; 0x140000 + 7a4: 65746174 ldrbvs r6, [r4, #-372]! + 7a8: 1500745f strne r7, [r0, #-1119] + 7ac: 390602c5 stmdbcc r6, {r0, r2, r6, r7, r9} + 7b0: 434c1c03 movtmi r1, #52227 ; 0xcc03 + 7b4: 00745f44 rsbseq r5, r4, r4, asr #30 + 7b8: 02038c15 andeq r8, r3, #5376 ; 0x1500 + 7bc: 6c1c0271 lfmvs f0, 4, [ip], {113} + 7c0: 6f466463 svcvs 0x00466463 + 7c4: 7954746e ldmdbvc r4, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ + 7c8: 745f6570 ldrbvc r6, [pc], #1392 ; 7d0 <__FIQ_stack_size+0x3d0> + 7cc: 03b91500 undefined instruction 0x03b91500 + 7d0: 1c027802 stcne 8, cr7, [r2], {2} + 7d4: 4564636c strbmi r6, [r4, #-876]! + 7d8: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 7dc: 1500745f strne r7, [r0, #-1119] + 7e0: 7e02048a cdpvc 4, 0, cr0, cr2, cr10, {4} + 7e4: 6e691c02 cdpvs 12, 6, cr1, cr9, cr2, {0} + 7e8: 745f3874 ldrbvc r3, [pc], #2164 ; 7f0 <__FIQ_stack_size+0x3f0> + 7ec: 028f1500 addeq r1, pc, #0 ; 0x0 + 7f0: 1c191904 ldcne 9, cr1, [r9], {4} + 7f4: 746e6975 strbtvc r6, [lr], #-2421 + 7f8: 00745f38 rsbseq r5, r4, r8, lsr pc + 7fc: 0401e215 streq lr, [r1], #-533 + 800: 621c191a andsvs r1, ip, #425984 ; 0x68000 + 804: 5f6c6f6f svcpl 0x006c6f6f + 808: e7150074 undefined + 80c: 132c0409 teqne ip, #150994944 ; 0x9000000 + 810: 746e691c strbtvc r6, [lr], #-2332 + 814: 745f3631 ldrbvc r3, [pc], #1585 ; 81c <__USR_stack_size+0x1c> + 818: 02a41500 adceq r1, r4, #0 ; 0x0 + 81c: 1c191b04 ldcne 11, cr1, [r9], {4} + 820: 746e6975 strbtvc r6, [lr], #-2421 + 824: 745f3631 ldrbvc r3, [pc], #1585 ; 82c <__USR_stack_size+0x2c> + 828: 01c61500 biceq r1, r6, r0, lsl #10 + 82c: 1c191c04 ldcne 12, cr1, [r9], {4} + 830: 746e6975 strbtvc r6, [lr], #-2421 + 834: 745f3233 ldrbvc r3, [pc], #563 ; 83c <__USR_stack_size+0x3c> + 838: 02b41500 adcseq r1, r4, #0 ; 0x0 + 83c: 1c191e04 ldcne 14, cr1, [r9], {4} + 840: 70736964 rsbsvc r6, r3, r4, ror #18 + 844: 5079616c rsbspl r6, r9, ip, ror #2 + 848: 6d617261 sfmvs f7, 2, [r1, #-388]! + 84c: 00745f73 rsbseq r5, r4, r3, ror pc + 850: 0105f315 tstpeq r5, r5, lsl r3 + 854: 6c1c027e lfmvs f0, 4, [ip], {126} + 858: 50656e69 rsbpl r6, r5, r9, ror #28 + 85c: 6d617261 sfmvs f7, 2, [r1, #-388]! + 860: 00745f73 rsbseq r5, r4, r3, ror pc + 864: 0107e815 tsteq r7, r5, lsl r8 + 868: 1c020184 stfnes f0, [r2], {132} + 86c: 65676170 strbvs r6, [r7, #-368]! + 870: 61726150 cmnvs r2, r0, asr r1 + 874: 745f736d ldrbvc r7, [pc], #877 ; 87c <__USR_stack_size+0x7c> + 878: 08af1500 stmiaeq pc!, {r8, sl, ip} + 87c: 02018b01 andeq r8, r1, #1024 ; 0x400 + 880: 00000000 andeq r0, r0, r0 + 884: 000000e0 andeq r0, r0, r0, ror #1 + 888: 00840003 addeq r0, r4, r3 + 88c: 01040000 tsteq r4, r0 + 890: 445c3a43 ldrbmi r3, [ip], #-2627 + 894: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 898: 73746e65 cmnvc r4, #1616 ; 0x650 + 89c: 646e6120 strbtvs r6, [lr], #-288 + 8a0: 74655320 strbtvc r5, [r5], #-800 + 8a4: 676e6974 undefined + 8a8: 616d5c73 smcvs 54723 + 8ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8bc: 775c7374 undefined + 8c0: 6f632d73 svcvs 0x00632d73 + 8c4: 6f72746e svcvs 0x0072746e + 8c8: 65575c6c ldrbvs r5, [r7, #-3180] + 8cc: 65687461 strbvs r7, [r8, #-1121]! + 8d0: 74532072 ldrbvc r2, [r3], #-114 + 8d4: 6f697461 svcvs 0x00697461 + 8d8: 6f43206e svcvs 0x0043206e + 8dc: 6f72746e svcvs 0x0072746e + 8e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8e4: 7070415c rsbsvc r4, r0, ip, asr r1 + 8e8: 6163696c cmnvs r3, ip, ror #18 + 8ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 8f0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 8f4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 8f8: 445c7365 ldrbmi r7, [ip], #-869 + 8fc: 6c707369 ldclvs 3, cr7, [r0], #-420 + 900: 632e7961 teqvs lr, #1589248 ; 0x184000 + 904: 52414900 subpl r4, r1, #0 ; 0x0 + 908: 534e4120 movtpl r4, #57632 ; 0xe120 + 90c: 2f432049 svccs 0x00432049 + 910: 202b2b43 eorcs r2, fp, r3, asr #22 + 914: 706d6f43 rsbvc r6, sp, r3, asr #30 + 918: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 91c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 920: 322e3033 eorcc r3, lr, #51 ; 0x33 + 924: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 928: 572f3539 undefined + 92c: 4b203233 blmi 80d200 + 930: 534b4349 movtpl r4, #45897 ; 0xb349 + 934: 54524154 ldrbpl r4, [r2], #-340 + 938: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 93c: 4d524120 ldfmie f4, [r2, #-128] + 940: 03800100 orreq r0, r0, #0 ; 0x0 + 944: 00140000 andseq r0, r4, r0 + 948: 61050000 tstvs r5, r0 + 94c: 4644434c strbmi r4, [r4], -ip, asr #6 + 950: 00746e6f rsbseq r6, r4, pc, ror #28 + 954: 00040910 andeq r0, r4, r0, lsl r9 + 958: 01e80100 mvneq r0, r0, lsl #2 + 95c: 0305010e movweq r0, #20750 ; 0x510e + 960: 00403eec subeq r3, r0, ip, ror #29 + 964: 00000000 andeq r0, r0, r0 + 968: 000000e0 andeq r0, r0, r0, ror #1 + 96c: 00840003 addeq r0, r4, r3 + 970: 01040000 tsteq r4, r0 + 974: 445c3a43 ldrbmi r3, [ip], #-2627 + 978: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 97c: 73746e65 cmnvc r4, #1616 ; 0x650 + 980: 646e6120 strbtvs r6, [lr], #-288 + 984: 74655320 strbtvc r5, [r5], #-800 + 988: 676e6974 undefined + 98c: 616d5c73 smcvs 54723 + 990: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 994: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 998: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 99c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9a0: 775c7374 undefined + 9a4: 6f632d73 svcvs 0x00632d73 + 9a8: 6f72746e svcvs 0x0072746e + 9ac: 65575c6c ldrbvs r5, [r7, #-3180] + 9b0: 65687461 strbvs r7, [r8, #-1121]! + 9b4: 74532072 ldrbvc r2, [r3], #-114 + 9b8: 6f697461 svcvs 0x00697461 + 9bc: 6f43206e svcvs 0x0043206e + 9c0: 6f72746e svcvs 0x0072746e + 9c4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9c8: 7070415c rsbsvc r4, r0, ip, asr r1 + 9cc: 6163696c cmnvs r3, ip, ror #18 + 9d0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9d4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 9d8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 9dc: 445c7365 ldrbmi r7, [ip], #-869 + 9e0: 6c707369 ldclvs 3, cr7, [r0], #-420 + 9e4: 632e7961 teqvs lr, #1589248 ; 0x184000 + 9e8: 52414900 subpl r4, r1, #0 ; 0x0 + 9ec: 534e4120 movtpl r4, #57632 ; 0xe120 + 9f0: 2f432049 svccs 0x00432049 + 9f4: 202b2b43 eorcs r2, fp, r3, asr #22 + 9f8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9fc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a00: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a04: 322e3033 eorcc r3, lr, #51 ; 0x33 + a08: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a0c: 572f3539 undefined + a10: 4b203233 blmi 80d2e4 + a14: 534b4349 movtpl r4, #45897 ; 0xb349 + a18: 54524154 ldrbpl r4, [r2], #-340 + a1c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a20: 4d524120 ldfmie f4, [r2, #-128] + a24: 03800100 orreq r0, r0, #0 ; 0x0 + a28: 00140000 andseq r0, r4, r0 + a2c: 67050000 strvs r0, [r5, -r0] + a30: 78654861 stmdavc r5!, {r0, r5, r6, fp, lr}^ + a34: 756c6156 strbvc r6, [ip, #-342]! + a38: 0f100065 svceq 0x00100065 + a3c: 01000004 tsteq r0, r4 + a40: 010f01e6 smlatteq pc, r6, r1, r0 + a44: 3e180305 cdpcc 3, 1, cr0, cr8, cr5, {0} + a48: 00000040 andeq r0, r0, r0, asr #32 + a4c: 000000e4 andeq r0, r0, r4, ror #1 + a50: 00840003 addeq r0, r4, r3 + a54: 01040000 tsteq r4, r0 + a58: 445c3a43 ldrbmi r3, [ip], #-2627 + a5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a60: 73746e65 cmnvc r4, #1616 ; 0x650 + a64: 646e6120 strbtvs r6, [lr], #-288 + a68: 74655320 strbtvc r5, [r5], #-800 + a6c: 676e6974 undefined + a70: 616d5c73 smcvs 54723 + a74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a84: 775c7374 undefined + a88: 6f632d73 svcvs 0x00632d73 + a8c: 6f72746e svcvs 0x0072746e + a90: 65575c6c ldrbvs r5, [r7, #-3180] + a94: 65687461 strbvs r7, [r8, #-1121]! + a98: 74532072 ldrbvc r2, [r3], #-114 + a9c: 6f697461 svcvs 0x00697461 + aa0: 6f43206e svcvs 0x0043206e + aa4: 6f72746e svcvs 0x0072746e + aa8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + aac: 7070415c rsbsvc r4, r0, ip, asr r1 + ab0: 6163696c cmnvs r3, ip, ror #18 + ab4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + ab8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + abc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + ac0: 445c7365 ldrbmi r7, [ip], #-869 + ac4: 6c707369 ldclvs 3, cr7, [r0], #-420 + ac8: 632e7961 teqvs lr, #1589248 ; 0x184000 + acc: 52414900 subpl r4, r1, #0 ; 0x0 + ad0: 534e4120 movtpl r4, #57632 ; 0xe120 + ad4: 2f432049 svccs 0x00432049 + ad8: 202b2b43 eorcs r2, fp, r3, asr #22 + adc: 706d6f43 rsbvc r6, sp, r3, asr #30 + ae0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + ae4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + ae8: 322e3033 eorcc r3, lr, #51 ; 0x33 + aec: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + af0: 572f3539 undefined + af4: 4b203233 blmi 80d3c8 + af8: 534b4349 movtpl r4, #45897 ; 0xb349 + afc: 54524154 ldrbpl r4, [r2], #-340 + b00: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b04: 4d524120 ldfmie f4, [r2, #-128] + b08: 03800100 orreq r0, r0, #0 ; 0x0 + b0c: 00140000 andseq r0, r4, r0 + b10: 6d050000 stcvs 0, cr0, [r5] + b14: 70736944 rsbsvc r6, r3, r4, asr #18 + b18: 5079616c rsbspl r6, r9, ip, ror #2 + b1c: 6d617261 sfmvs f7, 2, [r1, #-388]! + b20: 3f100073 svccc 0x00100073 + b24: 01000008 tsteq r0, r8 + b28: 001801b9 ldrheq r0, [r8], -r9 + b2c: 52b00305 adcspl r0, r0, #335544320 ; 0x14000000 + b30: 00000040 andeq r0, r0, r0, asr #32 + b34: 00000108 andeq r0, r0, r8, lsl #2 + b38: 00840003 addeq r0, r4, r3 + b3c: 01040000 tsteq r4, r0 + b40: 445c3a43 ldrbmi r3, [ip], #-2627 + b44: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b48: 73746e65 cmnvc r4, #1616 ; 0x650 + b4c: 646e6120 strbtvs r6, [lr], #-288 + b50: 74655320 strbtvc r5, [r5], #-800 + b54: 676e6974 undefined + b58: 616d5c73 smcvs 54723 + b5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b6c: 775c7374 undefined + b70: 6f632d73 svcvs 0x00632d73 + b74: 6f72746e svcvs 0x0072746e + b78: 65575c6c ldrbvs r5, [r7, #-3180] + b7c: 65687461 strbvs r7, [r8, #-1121]! + b80: 74532072 ldrbvc r2, [r3], #-114 + b84: 6f697461 svcvs 0x00697461 + b88: 6f43206e svcvs 0x0043206e + b8c: 6f72746e svcvs 0x0072746e + b90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b94: 7070415c rsbsvc r4, r0, ip, asr r1 + b98: 6163696c cmnvs r3, ip, ror #18 + b9c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + ba0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + ba4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + ba8: 445c7365 ldrbmi r7, [ip], #-869 + bac: 6c707369 ldclvs 3, cr7, [r0], #-420 + bb0: 632e7961 teqvs lr, #1589248 ; 0x184000 + bb4: 52414900 subpl r4, r1, #0 ; 0x0 + bb8: 534e4120 movtpl r4, #57632 ; 0xe120 + bbc: 2f432049 svccs 0x00432049 + bc0: 202b2b43 eorcs r2, fp, r3, asr #22 + bc4: 706d6f43 rsbvc r6, sp, r3, asr #30 + bc8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + bcc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + bd0: 322e3033 eorcc r3, lr, #51 ; 0x33 + bd4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + bd8: 572f3539 undefined + bdc: 4b203233 blmi 80d4b0 + be0: 534b4349 movtpl r4, #45897 ; 0xb349 + be4: 54524154 ldrbpl r4, [r2], #-340 + be8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + bec: 4d524120 ldfmie f4, [r2, #-128] + bf0: 03800100 orreq r0, r0, #0 ; 0x0 + bf4: 00140000 andseq r0, r4, r0 + bf8: 6d050000 stcvs 0, cr0, [r5] + bfc: 6f727245 svcvs 0x00727245 + c00: 646e4972 strbtvs r4, [lr], #-2418 + c04: 74616369 strbtvc r6, [r1], #-873 + c08: 1000726f andne r7, r0, pc, ror #4 + c0c: 00000415 andeq r0, r0, r5, lsl r4 + c10: 1c01de01 stcne 14, cr13, [r1], {1} + c14: a9030500 stmdbge r3, {r8, sl} + c18: 05004052 streq r4, [r0, #-82] + c1c: 4c73496d ldclmi 9, cr4, [r3], #-436 + c20: 6e496463 cdpvs 4, 4, cr6, cr9, cr3, {3} + c24: 61697469 cmnvs r9, r9, ror #8 + c28: 657a696c ldrbvs r6, [sl, #-2412]! + c2c: 02100064 andseq r0, r0, #100 ; 0x64 + c30: 01000008 tsteq r0, r8 + c34: 000f01db ldrdeq r0, [pc], -fp + c38: 52a80305 adcpl r0, r8, #335544320 ; 0x14000000 + c3c: 00000040 andeq r0, r0, r0, asr #32 + c40: 000000e0 andeq r0, r0, r0, ror #1 + c44: 00840003 addeq r0, r4, r3 + c48: 01040000 tsteq r4, r0 + c4c: 445c3a43 ldrbmi r3, [ip], #-2627 + c50: 6d75636f ldclvs 3, cr6, [r5, #-444]! + c54: 73746e65 cmnvc r4, #1616 ; 0x650 + c58: 646e6120 strbtvs r6, [lr], #-288 + c5c: 74655320 strbtvc r5, [r5], #-800 + c60: 676e6974 undefined + c64: 616d5c73 smcvs 54723 + c68: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + c6c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + c70: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + c74: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + c78: 775c7374 undefined + c7c: 6f632d73 svcvs 0x00632d73 + c80: 6f72746e svcvs 0x0072746e + c84: 65575c6c ldrbvs r5, [r7, #-3180] + c88: 65687461 strbvs r7, [r8, #-1121]! + c8c: 74532072 ldrbvc r2, [r3], #-114 + c90: 6f697461 svcvs 0x00697461 + c94: 6f43206e svcvs 0x0043206e + c98: 6f72746e svcvs 0x0072746e + c9c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ca0: 7070415c rsbsvc r4, r0, ip, asr r1 + ca4: 6163696c cmnvs r3, ip, ror #18 + ca8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + cac: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + cb0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + cb4: 445c7365 ldrbmi r7, [ip], #-869 + cb8: 6c707369 ldclvs 3, cr7, [r0], #-420 + cbc: 632e7961 teqvs lr, #1589248 ; 0x184000 + cc0: 52414900 subpl r4, r1, #0 ; 0x0 + cc4: 534e4120 movtpl r4, #57632 ; 0xe120 + cc8: 2f432049 svccs 0x00432049 + ccc: 202b2b43 eorcs r2, fp, r3, asr #22 + cd0: 706d6f43 rsbvc r6, sp, r3, asr #30 + cd4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + cd8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + cdc: 322e3033 eorcc r3, lr, #51 ; 0x33 + ce0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ce4: 572f3539 undefined + ce8: 4b203233 blmi 80d5bc + cec: 534b4349 movtpl r4, #45897 ; 0xb349 + cf0: 54524154 ldrbpl r4, [r2], #-340 + cf4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + cf8: 4d524120 ldfmie f4, [r2, #-128] + cfc: 03800100 orreq r0, r0, #0 ; 0x0 + d00: 00140000 andseq r0, r4, r0 + d04: 6d050000 stcvs 0, cr0, [r5] + d08: 656e694c strbvs r6, [lr, #-2380]! + d0c: 61726150 cmnvs r2, r0, asr r1 + d10: 1000736d andne r7, r0, sp, ror #6 + d14: 00000582 andeq r0, r0, r2, lsl #11 + d18: 1501ce01 strne ip, [r1, #-3585] + d1c: 88030500 stmdahi r3, {r8, sl} + d20: 00004054 andeq r4, r0, r4, asr r0 + d24: 000000f0 strdeq r0, [r0], -r0 + d28: 00840003 addeq r0, r4, r3 + d2c: 07040000 streq r0, [r4, -r0] + d30: 445c3a43 ldrbmi r3, [ip], #-2627 + d34: 6d75636f ldclvs 3, cr6, [r5, #-444]! + d38: 73746e65 cmnvc r4, #1616 ; 0x650 + d3c: 646e6120 strbtvs r6, [lr], #-288 + d40: 74655320 strbtvc r5, [r5], #-800 + d44: 676e6974 undefined + d48: 616d5c73 smcvs 54723 + d4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + d50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + d54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + d58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + d5c: 775c7374 undefined + d60: 6f632d73 svcvs 0x00632d73 + d64: 6f72746e svcvs 0x0072746e + d68: 65575c6c ldrbvs r5, [r7, #-3180] + d6c: 65687461 strbvs r7, [r8, #-1121]! + d70: 74532072 ldrbvc r2, [r3], #-114 + d74: 6f697461 svcvs 0x00697461 + d78: 6f43206e svcvs 0x0043206e + d7c: 6f72746e svcvs 0x0072746e + d80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + d84: 7070415c rsbsvc r4, r0, ip, asr r1 + d88: 6163696c cmnvs r3, ip, ror #18 + d8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + d90: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + d94: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + d98: 445c7365 ldrbmi r7, [ip], #-869 + d9c: 6c707369 ldclvs 3, cr7, [r0], #-420 + da0: 632e7961 teqvs lr, #1589248 ; 0x184000 + da4: 52414900 subpl r4, r1, #0 ; 0x0 + da8: 534e4120 movtpl r4, #57632 ; 0xe120 + dac: 2f432049 svccs 0x00432049 + db0: 202b2b43 eorcs r2, fp, r3, asr #22 + db4: 706d6f43 rsbvc r6, sp, r3, asr #30 + db8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + dbc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + dc0: 322e3033 eorcc r3, lr, #51 ; 0x33 + dc4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + dc8: 572f3539 undefined + dcc: 4b203233 blmi 80d6a0 + dd0: 534b4349 movtpl r4, #45897 ; 0xb349 + dd4: 54524154 ldrbpl r4, [r2], #-340 + dd8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + ddc: 4d524120 ldfmie f4, [r2, #-128] + de0: 19640100 stmdbne r4!, {r8}^ + de4: 1b560040 blne 1580eec + de8: 05ec0040 strbeq r0, [ip, #64]! + dec: 00cc0000 sbceq r0, ip, r0 + df0: 17100000 ldrne r0, [r0, -r0] + df4: 08000003 stmdaeq r0, {r0, r1} + df8: 000000f3 strdeq r0, [r0], -r3 + dfc: 5f44434c svcpl 0x0044434c + e00: 74696e49 strbtvc r6, [r9], #-3657 + e04: 02800100 addeq r0, r0, #0 ; 0x0 + e08: 00ce0106 sbceq r0, lr, r6, lsl #2 + e0c: 19640000 stmdbne r4!, {}^ + e10: 1b560040 blne 1580f18 + e14: 00000040 andeq r0, r0, r0, asr #32 + e18: 00000174 andeq r0, r0, r4, ror r1 + e1c: 00840003 addeq r0, r4, r3 + e20: 07040000 streq r0, [r4, -r0] + e24: 445c3a43 ldrbmi r3, [ip], #-2627 + e28: 6d75636f ldclvs 3, cr6, [r5, #-444]! + e2c: 73746e65 cmnvc r4, #1616 ; 0x650 + e30: 646e6120 strbtvs r6, [lr], #-288 + e34: 74655320 strbtvc r5, [r5], #-800 + e38: 676e6974 undefined + e3c: 616d5c73 smcvs 54723 + e40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + e44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + e48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + e4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + e50: 775c7374 undefined + e54: 6f632d73 svcvs 0x00632d73 + e58: 6f72746e svcvs 0x0072746e + e5c: 65575c6c ldrbvs r5, [r7, #-3180] + e60: 65687461 strbvs r7, [r8, #-1121]! + e64: 74532072 ldrbvc r2, [r3], #-114 + e68: 6f697461 svcvs 0x00697461 + e6c: 6f43206e svcvs 0x0043206e + e70: 6f72746e svcvs 0x0072746e + e74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + e78: 7070415c rsbsvc r4, r0, ip, asr r1 + e7c: 6163696c cmnvs r3, ip, ror #18 + e80: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + e84: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + e88: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + e8c: 445c7365 ldrbmi r7, [ip], #-869 + e90: 6c707369 ldclvs 3, cr7, [r0], #-420 + e94: 632e7961 teqvs lr, #1589248 ; 0x184000 + e98: 52414900 subpl r4, r1, #0 ; 0x0 + e9c: 534e4120 movtpl r4, #57632 ; 0xe120 + ea0: 2f432049 svccs 0x00432049 + ea4: 202b2b43 eorcs r2, fp, r3, asr #22 + ea8: 706d6f43 rsbvc r6, sp, r3, asr #30 + eac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + eb0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + eb4: 322e3033 eorcc r3, lr, #51 ; 0x33 + eb8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ebc: 572f3539 undefined + ec0: 4b203233 blmi 80d794 + ec4: 534b4349 movtpl r4, #45897 ; 0xb349 + ec8: 54524154 ldrbpl r4, [r2], #-340 + ecc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + ed0: 4d524120 ldfmie f4, [r2, #-128] + ed4: 1b560100 blne 15812dc + ed8: 1bae0040 blne feb80fe0 + edc: 06e00040 strbteq r0, [r0], r0, asr #32 + ee0: 03c60000 biceq r0, r6, #0 ; 0x0 + ee4: 17100000 ldrne r0, [r0, -r0] + ee8: 08000003 stmdaeq r0, {r0, r1} + eec: 00000175 andeq r0, r0, r5, ror r1 + ef0: 5f44434c svcpl 0x0044434c + ef4: 61656c43 cmnvs r5, r3, asr #24 + ef8: 73694472 cmnvc r9, #1912602624 ; 0x72000000 + efc: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + f00: 03c10100 biceq r0, r1, #0 ; 0x0 + f04: 01120106 tsteq r2, r6, lsl #2 + f08: 1b560000 blne 1580f10 + f0c: 1bae0040 blne feb81014 + f10: 6c050040 stcvs 0, cr0, [r5], {64} + f14: 73656e69 cmnvc r5, #1680 ; 0x690 + f18: 6c436f54 mcrrvs 15, 5, r6, r3, cr4 + f1c: 00726165 rsbseq r6, r2, r5, ror #2 + f20: 0007f310 andeq pc, r7, r0, lsl r3 + f24: 03c40100 biceq r0, r4, #0 ; 0x0 + f28: 03050012 movweq r0, #20498 ; 0x5012 + f2c: 004052aa subeq r5, r0, sl, lsr #5 + f30: 6e696c09 cdpvs 12, 6, cr6, cr9, cr9, {0} + f34: c5010065 strgt r0, [r1, #-101] + f38: f3100b03 vqrdmulh.s16 d0, d0, d3 + f3c: 4a000007 bmi f60 <__USR_stack_size+0x760> + f40: 09000001 stmdbeq r0, {r0} + f44: 656c6564 strbvs r6, [ip, #-1380]! + f48: 72576574 subsvc r6, r7, #486539264 ; 0x1d000000 + f4c: 4c657469 cfstrdmi mvd7, [r5], #-420 + f50: 73656e69 cmnvc r5, #1680 ; 0x690 + f54: 03c50100 biceq r0, r5, #0 ; 0x0 + f58: 07f31011 undefined + f5c: 01670000 cmneq r7, r0 + f60: 580a0000 stmdapl sl, {} + f64: 68000001 stmdavs r0, {r0} + f68: 7200401b andvc r4, r0, #27 ; 0x1b + f6c: 0000401b andeq r4, r0, fp, lsl r0 + f70: 0001740a andeq r7, r1, sl, lsl #8 + f74: 401b7400 andsmi r7, fp, r0, lsl #8 + f78: 401ba600 andsmi sl, fp, r0, lsl #12 + f7c: 01730a00 cmneq r3, r0, lsl #20 + f80: 1b8c0000 blne fe300f88 + f84: 1ba60040 blne fe98108c + f88: 00000040 andeq r0, r0, r0, asr #32 + f8c: 00000000 andeq r0, r0, r0 + f90: 0000018c andeq r0, r0, ip, lsl #3 + f94: 00840003 addeq r0, r4, r3 + f98: 07040000 streq r0, [r4, -r0] + f9c: 445c3a43 ldrbmi r3, [ip], #-2627 + fa0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + fa4: 73746e65 cmnvc r4, #1616 ; 0x650 + fa8: 646e6120 strbtvs r6, [lr], #-288 + fac: 74655320 strbtvc r5, [r5], #-800 + fb0: 676e6974 undefined + fb4: 616d5c73 smcvs 54723 + fb8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + fbc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + fc0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + fc4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + fc8: 775c7374 undefined + fcc: 6f632d73 svcvs 0x00632d73 + fd0: 6f72746e svcvs 0x0072746e + fd4: 65575c6c ldrbvs r5, [r7, #-3180] + fd8: 65687461 strbvs r7, [r8, #-1121]! + fdc: 74532072 ldrbvc r2, [r3], #-114 + fe0: 6f697461 svcvs 0x00697461 + fe4: 6f43206e svcvs 0x0043206e + fe8: 6f72746e svcvs 0x0072746e + fec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ff0: 7070415c rsbsvc r4, r0, ip, asr r1 + ff4: 6163696c cmnvs r3, ip, ror #18 + ff8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + ffc: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1000: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1004: 445c7365 ldrbmi r7, [ip], #-869 + 1008: 6c707369 ldclvs 3, cr7, [r0], #-420 + 100c: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1010: 52414900 subpl r4, r1, #0 ; 0x0 + 1014: 534e4120 movtpl r4, #57632 ; 0xe120 + 1018: 2f432049 svccs 0x00432049 + 101c: 202b2b43 eorcs r2, fp, r3, asr #22 + 1020: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1024: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1028: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 102c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1030: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1034: 572f3539 undefined + 1038: 4b203233 blmi 80d90c + 103c: 534b4349 movtpl r4, #45897 ; 0xb349 + 1040: 54524154 ldrbpl r4, [r2], #-340 + 1044: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1048: 4d524120 ldfmie f4, [r2, #-128] + 104c: 1bb40100 blne fed01454 + 1050: 1c1c0040 ldcne 0, cr0, [ip], {64} + 1054: 07b80040 ldreq r0, [r8, r0, asr #32]! + 1058: 046d0000 strbteq r0, [sp] + 105c: 17100000 ldrne r0, [r0, -r0] + 1060: 08000003 stmdaeq r0, {r0, r1} + 1064: 0000018c andeq r0, r0, ip, lsl #3 + 1068: 5f44434c svcpl 0x0044434c + 106c: 74697257 strbtvc r7, [r9], #-599 + 1070: 72745365 rsbsvc r5, r4, #-1811939327 ; 0x94000001 + 1074: 5f676e69 svcpl 0x00676e69 + 1078: 6d726f4e ldclvs 15, cr6, [r2, #-312]! + 107c: 6f466c61 svcvs 0x00466c61 + 1080: 0100746e tsteq r0, lr, ror #8 + 1084: 010603fc strdeq r0, [r6, -ip] + 1088: 00000184 andeq r0, r0, r4, lsl #3 + 108c: 00401bb4 strheq r1, [r0], #-180 + 1090: 00401c1c subeq r1, r0, ip, lsl ip + 1094: 6e696c0b cdpvs 12, 6, cr6, cr9, cr11, {0} + 1098: fc010065 stc2 0, cr0, [r1], {101} + 109c: f3102903 vmls.i16 d2, d0, d3 + 10a0: b0000007 andlt r0, r0, r7 + 10a4: 0b000001 bleq 10b0 <__USR_stack_size+0x8b0> + 10a8: 72747370 rsbsvc r7, r4, #-1073741823 ; 0xc0000001 + 10ac: 03fc0100 mvnseq r0, #0 ; 0x0 + 10b0: 042a1038 strteq r1, [sl], #-56 + 10b4: 01cd0000 biceq r0, sp, r0 + 10b8: 6c090000 stcvs 0, cr0, [r9], {0} + 10bc: 01006e65 tsteq r0, r5, ror #28 + 10c0: 100a03fe strdne r0, [sl], -lr + 10c4: 000007f3 strdeq r0, [r0], -r3 + 10c8: 000001ea andeq r0, r0, sl, ror #3 + 10cc: 00016d0c andeq r6, r1, ip, lsl #26 + 10d0: 24f61000 ldrbtcs r1, [r6] + 10d4: 1bcc0000 blne ff3010dc + 10d8: 1bf20040 blne ffc811e0 + 10dc: 100d0040 andne r0, sp, r0, asr #32 + 10e0: 00002510 andeq r2, r0, r0, lsl r5 + 10e4: 00000207 andeq r0, r0, r7, lsl #4 + 10e8: 2522100e strcs r1, [r2, #-14]! + 10ec: 02240000 eoreq r0, r4, #0 ; 0x0 + 10f0: 100e0000 andne r0, lr, r0 + 10f4: 00002532 andeq r2, r0, r2, lsr r5 + 10f8: 00000241 andeq r0, r0, r1, asr #4 + 10fc: 018b0a00 orreq r0, fp, r0, lsl #20 + 1100: 1bf60000 blne ffd81108 + 1104: 1c180040 ldcne 0, cr0, [r8], {64} + 1108: 69090040 stmdbvs r9, {r6} + 110c: 04830100 streq r0, [r3], #256 + 1110: 07f3100e ldrbeq r1, [r3, lr]! + 1114: 025e0000 subseq r0, lr, #0 ; 0x0 + ... + 1120: 0000022c andeq r0, r0, ip, lsr #4 + 1124: 00840003 addeq r0, r4, r3 + 1128: 07040000 streq r0, [r4, -r0] + 112c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1130: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1134: 73746e65 cmnvc r4, #1616 ; 0x650 + 1138: 646e6120 strbtvs r6, [lr], #-288 + 113c: 74655320 strbtvc r5, [r5], #-800 + 1140: 676e6974 undefined + 1144: 616d5c73 smcvs 54723 + 1148: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 114c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1150: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1154: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1158: 775c7374 undefined + 115c: 6f632d73 svcvs 0x00632d73 + 1160: 6f72746e svcvs 0x0072746e + 1164: 65575c6c ldrbvs r5, [r7, #-3180] + 1168: 65687461 strbvs r7, [r8, #-1121]! + 116c: 74532072 ldrbvc r2, [r3], #-114 + 1170: 6f697461 svcvs 0x00697461 + 1174: 6f43206e svcvs 0x0043206e + 1178: 6f72746e svcvs 0x0072746e + 117c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1180: 7070415c rsbsvc r4, r0, ip, asr r1 + 1184: 6163696c cmnvs r3, ip, ror #18 + 1188: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 118c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1190: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1194: 445c7365 ldrbmi r7, [ip], #-869 + 1198: 6c707369 ldclvs 3, cr7, [r0], #-420 + 119c: 632e7961 teqvs lr, #1589248 ; 0x184000 + 11a0: 52414900 subpl r4, r1, #0 ; 0x0 + 11a4: 534e4120 movtpl r4, #57632 ; 0xe120 + 11a8: 2f432049 svccs 0x00432049 + 11ac: 202b2b43 eorcs r2, fp, r3, asr #22 + 11b0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 11b4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 11b8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 11bc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 11c0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 11c4: 572f3539 undefined + 11c8: 4b203233 blmi 80da9c + 11cc: 534b4349 movtpl r4, #45897 ; 0xb349 + 11d0: 54524154 ldrbpl r4, [r2], #-340 + 11d4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 11d8: 4d524120 ldfmie f4, [r2, #-128] + 11dc: 1c240100 stfnes f0, [r4] + 11e0: 1db80040 ldcne 0, cr0, [r8, #256]! + 11e4: 08a00040 stmiaeq r0!, {r6} + 11e8: 05590000 ldrbeq r0, [r9] + 11ec: 17100000 ldrne r0, [r0, -r0] + 11f0: 08000003 stmdaeq r0, {r0, r1} + 11f4: 0000022e andeq r0, r0, lr, lsr #4 + 11f8: 5f44434c svcpl 0x0044434c + 11fc: 74697257 strbtvc r7, [r9], #-599 + 1200: 72745365 rsbsvc r5, r4, #-1811939327 ; 0x94000001 + 1204: 56676e69 strbtpl r6, [r7], -r9, ror #28 + 1208: 65756c61 ldrbvs r6, [r5, #-3169]! + 120c: 04970100 ldreq r0, [r7], #256 + 1210: 02710106 rsbseq r0, r1, #-2147483647 ; 0x80000001 + 1214: 1c240000 stcne 0, cr0, [r4] + 1218: 1db80040 ldcne 0, cr0, [r8, #256]! + 121c: 700b0040 andvc r0, fp, r0, asr #32 + 1220: 00727473 rsbseq r7, r2, r3, ror r4 + 1224: 0c049901 stceq 9, cr9, [r4], {1} + 1228: 00042a10 andeq r2, r4, r0, lsl sl + 122c: 0002aa00 andeq sl, r2, r0, lsl #20 + 1230: 61760b00 cmnvs r6, r0, lsl #22 + 1234: 0065756c rsbeq r7, r5, ip, ror #10 + 1238: 0c049a01 stceq 10, cr9, [r4], {1} + 123c: 00081f10 andeq r1, r8, r0, lsl pc + 1240: 0002de00 andeq sp, r2, r0, lsl #28 + 1244: 696c0b00 stmdbvs ip!, {r8, r9, fp}^ + 1248: 0100656e tsteq r0, lr, ror #10 + 124c: 100b049b mulne fp, fp, r4 + 1250: 000007f3 strdeq r0, [r0], -r3 + 1254: 00000325 andeq r0, r0, r5, lsr #6 + 1258: 6d756e0b ldclvs 14, cr6, [r5, #-44]! + 125c: 46726562 ldrbtmi r6, [r2], -r2, ror #10 + 1260: 616d726f cmnvs sp, pc, ror #4 + 1264: 9c010074 stcls 0, cr0, [r1], {116} + 1268: b1100904 tstlt r0, r4, lsl #18 + 126c: 59000007 stmdbpl r0, {r0, r1, r2} + 1270: 09000003 stmdbeq r0, {r0, r1} + 1274: 44766964 ldrbtmi r6, [r6], #-2404 + 1278: 01006365 tsteq r0, r5, ror #6 + 127c: 100b04a0 andne r0, fp, r0, lsr #9 + 1280: 00000810 andeq r0, r0, r0, lsl r8 + 1284: 0000038b andeq r0, r0, fp, lsl #7 + 1288: 76696409 strbtvc r6, [r9], -r9, lsl #8 + 128c: 00786548 rsbseq r6, r8, r8, asr #10 + 1290: 1904a001 stmdbne r4, {r0, sp, pc} + 1294: 00081010 andeq r1, r8, r0, lsl r0 + 1298: 0003e700 andeq lr, r3, r0, lsl #14 + 129c: 6f6c0900 svcvs 0x006c0900 + 12a0: 0100706f tsteq r0, pc, rrx + 12a4: 100b04a1 andne r0, fp, r1, lsr #9 + 12a8: 000007f3 strdeq r0, [r0], -r3 + 12ac: 000003ef andeq r0, r0, pc, ror #7 + 12b0: 01006909 tsteq r0, r9, lsl #18 + 12b4: 101304a1 andsne r0, r3, r1, lsr #9 + 12b8: 000007f3 strdeq r0, [r0], -r3 + 12bc: 00000453 andeq r0, r0, r3, asr r4 + 12c0: 756f6309 strbvc r6, [pc, #-777]! ; fbf <__USR_stack_size+0x7bf> + 12c4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 12c8: 04a10100 strteq r0, [r1], #256 + 12cc: 07f31017 undefined + 12d0: 04af0000 strteq r0, [pc], #0 ; 12d8 <__USR_stack_size+0xad8> + 12d4: 61090000 tstvs r9, r0 + 12d8: a1010048 tstge r1, r8, asr #32 + 12dc: 5b102204 blpl 409af4 + 12e0: 4a000005 bmi 12fc <__USR_stack_size+0xafc> + 12e4: 09000005 stmdbeq r0, {r0, r2} + 12e8: 78654861 stmdavc r5!, {r0, r5, r6, fp, lr}^ + 12ec: 04a10100 strteq r0, [r1], #256 + 12f0: 055b1029 ldrbeq r1, [fp, #-41] + 12f4: 05680000 strbeq r0, [r8]! + 12f8: 61090000 tstvs r9, r0 + 12fc: 00636544 rsbeq r6, r3, r4, asr #10 + 1300: 0b04a201 bleq 129b0c + 1304: 00055b10 andeq r5, r5, r0, lsl fp + 1308: 00058600 andeq r8, r5, r0, lsl #12 + 130c: 53610900 cmnpl r1, #0 ; 0x0 + 1310: 6e697274 mcrvs 2, 3, r7, cr9, cr4, {3} + 1314: a2010067 andge r0, r1, #103 ; 0x67 + 1318: 9a101404 bls 406330 + 131c: a5000005 strge r0, [r0, #-5] + 1320: 0a000005 beq 133c <__USR_stack_size+0xb3c> + 1324: 0000021f andeq r0, r0, pc, lsl r2 + 1328: 00401c3e subeq r1, r0, lr, lsr ip + 132c: 00401d18 subeq r1, r0, r8, lsl sp + 1330: 00021e0a andeq r1, r2, sl, lsl #28 + 1334: 401c6c00 andsmi r6, ip, r0, lsl #24 + 1338: 401cb200 andsmi fp, ip, r0, lsl #4 + 133c: 0a000000 beq 1344 <__USR_stack_size+0xb44> + 1340: 0000022d andeq r0, r0, sp, lsr #4 + 1344: 00401d20 subeq r1, r0, r0, lsr #26 + 1348: 00401da0 subeq r1, r0, r0, lsr #27 + 134c: 00000000 andeq r0, r0, r0 + 1350: 0000026c andeq r0, r0, ip, ror #4 + 1354: 00840003 addeq r0, r4, r3 + 1358: 07040000 streq r0, [r4, -r0] + 135c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1360: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1364: 73746e65 cmnvc r4, #1616 ; 0x650 + 1368: 646e6120 strbtvs r6, [lr], #-288 + 136c: 74655320 strbtvc r5, [r5], #-800 + 1370: 676e6974 undefined + 1374: 616d5c73 smcvs 54723 + 1378: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 137c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1380: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1384: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1388: 775c7374 undefined + 138c: 6f632d73 svcvs 0x00632d73 + 1390: 6f72746e svcvs 0x0072746e + 1394: 65575c6c ldrbvs r5, [r7, #-3180] + 1398: 65687461 strbvs r7, [r8, #-1121]! + 139c: 74532072 ldrbvc r2, [r3], #-114 + 13a0: 6f697461 svcvs 0x00697461 + 13a4: 6f43206e svcvs 0x0043206e + 13a8: 6f72746e svcvs 0x0072746e + 13ac: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 13b0: 7070415c rsbsvc r4, r0, ip, asr r1 + 13b4: 6163696c cmnvs r3, ip, ror #18 + 13b8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 13bc: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 13c0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 13c4: 445c7365 ldrbmi r7, [ip], #-869 + 13c8: 6c707369 ldclvs 3, cr7, [r0], #-420 + 13cc: 632e7961 teqvs lr, #1589248 ; 0x184000 + 13d0: 52414900 subpl r4, r1, #0 ; 0x0 + 13d4: 534e4120 movtpl r4, #57632 ; 0xe120 + 13d8: 2f432049 svccs 0x00432049 + 13dc: 202b2b43 eorcs r2, fp, r3, asr #22 + 13e0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 13e4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 13e8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 13ec: 322e3033 eorcc r3, lr, #51 ; 0x33 + 13f0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 13f4: 572f3539 undefined + 13f8: 4b203233 blmi 80dccc + 13fc: 534b4349 movtpl r4, #45897 ; 0xb349 + 1400: 54524154 ldrbpl r4, [r2], #-340 + 1404: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1408: 4d524120 ldfmie f4, [r2, #-128] + 140c: 1dbc0100 ldfnes f0, [ip] + 1410: 1fac0040 svcne 0x00ac0040 + 1414: 09d00040 ldmibeq r0, {r6}^ + 1418: 06ac0000 strteq r0, [ip], r0 + 141c: 17100000 ldrne r0, [r0, -r0] + 1420: 08000003 stmdaeq r0, {r0, r1} + 1424: 0000026d andeq r0, r0, sp, ror #4 + 1428: 5f44434c svcpl 0x0044434c + 142c: 74697257 strbtvc r7, [r9], #-599 + 1430: 72745365 rsbsvc r5, r4, #-1811939327 ; 0x94000001 + 1434: 44676e69 strbtmi r6, [r7], #-3689 + 1438: 61566365 cmpvs r6, r5, ror #6 + 143c: 0065756c rsbeq r7, r5, ip, ror #10 + 1440: 0604ed01 streq lr, [r4], -r1, lsl #26 + 1444: 0005c301 andeq ip, r5, r1, lsl #6 + 1448: 401dbc00 andsmi fp, sp, r0, lsl #24 + 144c: 401fac00 andsmi sl, pc, r0, lsl #24 + 1450: 73700b00 cmnvc r0, #0 ; 0x0 + 1454: 01007274 tsteq r0, r4, ror r2 + 1458: 100c04ef andne r0, ip, pc, ror #9 + 145c: 0000042a andeq r0, r0, sl, lsr #8 + 1460: 00000609 andeq r0, r0, r9, lsl #12 + 1464: 6c61760b stclvs 6, cr7, [r1], #-44 + 1468: 01006575 tsteq r0, r5, ror r5 + 146c: 100c04f0 strdne r0, [ip], -r0 + 1470: 0000081f andeq r0, r0, pc, lsl r8 + 1474: 0000063d andeq r0, r0, sp, lsr r6 + 1478: 6e696c0b cdpvs 12, 6, cr6, cr9, cr11, {0} + 147c: f1010065 setend le + 1480: f3100b04 vqrdmulh.s16 d0, d0, d4 + 1484: 71000007 tstvc r0, r7 + 1488: 0b000006 bleq 14a8 <__USR_stack_size+0xca8> + 148c: 626d756e rsbvs r7, sp, #461373440 ; 0x1b800000 + 1490: 6f467265 svcvs 0x00467265 + 1494: 74616d72 strbtvc r6, [r1], #-3442 + 1498: 04f20100 ldrbteq r0, [r2], #256 + 149c: 07b11009 ldreq r1, [r1, r9]! + 14a0: 06a50000 strteq r0, [r5], r0 + 14a4: 64090000 strvs r0, [r9] + 14a8: 65447669 strbvs r7, [r4, #-1641] + 14ac: f6010063 undefined instruction 0xf6010063 + 14b0: 10100b04 andsne r0, r0, r4, lsl #22 + 14b4: d9000008 stmdble r0, {r3} + 14b8: 09000006 stmdbeq r0, {r1, r2} + 14bc: 48766964 ldmdami r6!, {r2, r5, r6, r8, fp, sp, lr}^ + 14c0: 01007865 tsteq r0, r5, ror #16 + 14c4: 101904f6 ldrshne r0, [r9], -r6 + 14c8: 00000810 andeq r0, r0, r0, lsl r8 + 14cc: 00000720 andeq r0, r0, r0, lsr #14 + 14d0: 6f6f6c09 svcvs 0x006f6c09 + 14d4: f7010070 undefined instruction 0xf7010070 + 14d8: f3100b04 vqrdmulh.s16 d0, d0, d4 + 14dc: 28000007 stmdacs r0, {r0, r1, r2} + 14e0: 09000007 stmdbeq r0, {r0, r1, r2} + 14e4: f7010069 undefined instruction 0xf7010069 + 14e8: f3101304 vcgt.u16 d1, d0, d4 + 14ec: 75000007 strvc r0, [r0, #-7] + 14f0: 09000007 stmdbeq r0, {r0, r1, r2} + 14f4: 6e756f63 cdpvs 15, 7, cr6, cr5, cr3, {3} + 14f8: 00726574 rsbseq r6, r2, r4, ror r5 + 14fc: 1704f701 strne pc, [r4, -r1, lsl #14] + 1500: 0007f310 andeq pc, r7, r0, lsl r3 + 1504: 0007bc00 andeq fp, r7, r0, lsl #24 + 1508: 48610900 stmdami r1!, {r8, fp}^ + 150c: 04f70100 ldrbteq r0, [r7], #256 + 1510: 055b1022 ldrbeq r1, [fp, #-34] + 1514: 08570000 ldmdaeq r7, {}^ + 1518: 61090000 tstvs r9, r0 + 151c: 00786548 rsbseq r6, r8, r8, asr #10 + 1520: 2904f701 stmdbcs r4, {r0, r8, r9, sl, ip, sp, lr, pc} + 1524: 00055b10 andeq r5, r5, r0, lsl fp + 1528: 00087500 andeq r7, r8, r0, lsl #10 + 152c: 44610900 strbtmi r0, [r1], #-2304 + 1530: 01006365 tsteq r0, r5, ror #6 + 1534: 100b04f8 strdne r0, [fp], -r8 + 1538: 0000055b andeq r0, r0, fp, asr r5 + 153c: 00000893 muleq r0, r3, r8 + 1540: 74536109 ldrbvc r6, [r3], #-265 + 1544: 676e6972 undefined + 1548: 04f80100 ldrbteq r0, [r8], #256 + 154c: 059a1014 ldreq r1, [sl, #20] + 1550: 08b20000 ldmeq r2!, {} + 1554: 75090000 strvc r0, [r9] + 1558: 6d655438 cfstrdvs mvd5, [r5, #-224]! + 155c: 6c615670 stclvs 6, cr5, [r1], #-448 + 1560: 04f90100 ldrbteq r0, [r9], #256 + 1564: 07f3100b ldrbeq r1, [r3, fp]! + 1568: 08d10000 ldmeq r1, {}^ + 156c: 75090000 strvc r0, [r9] + 1570: 756f4338 strbvc r4, [pc, #-824]! ; 1240 <__USR_stack_size+0xa40> + 1574: 0100746e tsteq r0, lr, ror #8 + 1578: 100b04fa strdne r0, [fp], -sl + 157c: 000007f3 strdeq r0, [r0], -r3 + 1580: 0000091e andeq r0, r0, lr, lsl r9 + 1584: 00025e0a andeq r5, r2, sl, lsl #28 + 1588: 401de200 andsmi lr, sp, r0, lsl #4 + 158c: 401ee000 andsmi lr, lr, r0 + 1590: 025d0a00 subseq r0, sp, #0 ; 0x0 + 1594: 1dec0000 stclne 0, cr0, [ip] + 1598: 1e8c0040 cdpne 0, 8, cr0, cr12, cr0, {2} + 159c: 5c0a0040 stcpl 0, cr0, [sl], {64} + 15a0: 1e000002 cdpne 0, 0, cr0, cr0, cr2, {0} + 15a4: 6800401e stmdavs r0, {r1, r2, r3, r4, lr} + 15a8: 0000401e andeq r4, r0, lr, lsl r0 + 15ac: 6c0a0000 stcvs 0, cr0, [sl], {0} + 15b0: ea000002 b 15c0 <__USR_stack_size+0xdc0> + 15b4: 8c00401e stchi 0, cr4, [r0], {30} + 15b8: 0000401f andeq r4, r0, pc, lsl r0 + 15bc: 00000000 andeq r0, r0, r0 + 15c0: 00000140 andeq r0, r0, r0, asr #2 + 15c4: 00840003 addeq r0, r4, r3 + 15c8: 07040000 streq r0, [r4, -r0] + 15cc: 445c3a43 ldrbmi r3, [ip], #-2627 + 15d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 15d4: 73746e65 cmnvc r4, #1616 ; 0x650 + 15d8: 646e6120 strbtvs r6, [lr], #-288 + 15dc: 74655320 strbtvc r5, [r5], #-800 + 15e0: 676e6974 undefined + 15e4: 616d5c73 smcvs 54723 + 15e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 15ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 15f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 15f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 15f8: 775c7374 undefined + 15fc: 6f632d73 svcvs 0x00632d73 + 1600: 6f72746e svcvs 0x0072746e + 1604: 65575c6c ldrbvs r5, [r7, #-3180] + 1608: 65687461 strbvs r7, [r8, #-1121]! + 160c: 74532072 ldrbvc r2, [r3], #-114 + 1610: 6f697461 svcvs 0x00697461 + 1614: 6f43206e svcvs 0x0043206e + 1618: 6f72746e svcvs 0x0072746e + 161c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1620: 7070415c rsbsvc r4, r0, ip, asr r1 + 1624: 6163696c cmnvs r3, ip, ror #18 + 1628: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 162c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1630: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1634: 445c7365 ldrbmi r7, [ip], #-869 + 1638: 6c707369 ldclvs 3, cr7, [r0], #-420 + 163c: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1640: 52414900 subpl r4, r1, #0 ; 0x0 + 1644: 534e4120 movtpl r4, #57632 ; 0xe120 + 1648: 2f432049 svccs 0x00432049 + 164c: 202b2b43 eorcs r2, fp, r3, asr #22 + 1650: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1654: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1658: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 165c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1660: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1664: 572f3539 undefined + 1668: 4b203233 blmi 80df3c + 166c: 534b4349 movtpl r4, #45897 ; 0xb349 + 1670: 54524154 ldrbpl r4, [r2], #-340 + 1674: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1678: 4d524120 ldfmie f4, [r2, #-128] + 167c: 1fac0100 svcne 0x00ac0100 + 1680: 1ffc0040 svcne 0x00fc0040 + 1684: 0b1c0040 bleq 70178c + 1688: 08220000 stmdaeq r2!, {} + 168c: 17100000 ldrne r0, [r0, -r0] + 1690: 08000003 stmdaeq r0, {r0, r1} + 1694: 00000141 andeq r0, r0, r1, asr #2 + 1698: 5f44434c svcpl 0x0044434c + 169c: 74697257 strbtvc r7, [r9], #-599 + 16a0: 6d6f4365 stclvs 3, cr4, [pc, #-404]! + 16a4: 646e616d strbtvs r6, [lr], #-365 + 16a8: 069c0100 ldreq r0, [ip], r0, lsl #2 + 16ac: 093d0106 ldmdbeq sp!, {r1, r2, r8} + 16b0: 1fac0000 svcne 0x00ac0000 + 16b4: 1ffc0040 svcne 0x00fc0040 + 16b8: 630b0040 movwvs r0, #45120 ; 0xb040 + 16bc: 616d6d6f cmnvs sp, pc, ror #26 + 16c0: 0100646e tsteq r0, lr, ror #8 + 16c4: 101f069c mulsne pc, ip, r6 + 16c8: 000007f3 strdeq r0, [r0], -r3 + 16cc: 0000095d andeq r0, r0, sp, asr r9 + 16d0: 0001230c andeq r2, r1, ip, lsl #6 + 16d4: 260e1000 strcs r1, [lr], -r0 + 16d8: 1fbe0000 svcne 0x00be0000 + 16dc: 1fd20040 svcne 0x00d20040 + 16e0: 0c000040 stceq 0, cr0, [r0], {64} + 16e4: 00000140 andeq r0, r0, r0, asr #2 + 16e8: 0026ee10 eoreq lr, r6, r0, lsl lr + 16ec: 401fe200 andsmi lr, pc, r0, lsl #4 + 16f0: 401ff600 andsmi pc, pc, r0, lsl #12 + 16f4: 02100d00 andseq r0, r0, #0 ; 0x0 + 16f8: 7a000027 bvc 179c <__USR_stack_size+0xf9c> + 16fc: 00000009 andeq r0, r0, r9 + 1700: 00000000 andeq r0, r0, r0 + 1704: 00000138 andeq r0, r0, r8, lsr r1 + 1708: 00840003 addeq r0, r4, r3 + 170c: 07040000 streq r0, [r4, -r0] + 1710: 445c3a43 ldrbmi r3, [ip], #-2627 + 1714: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1718: 73746e65 cmnvc r4, #1616 ; 0x650 + 171c: 646e6120 strbtvs r6, [lr], #-288 + 1720: 74655320 strbtvc r5, [r5], #-800 + 1724: 676e6974 undefined + 1728: 616d5c73 smcvs 54723 + 172c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1730: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1734: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1738: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 173c: 775c7374 undefined + 1740: 6f632d73 svcvs 0x00632d73 + 1744: 6f72746e svcvs 0x0072746e + 1748: 65575c6c ldrbvs r5, [r7, #-3180] + 174c: 65687461 strbvs r7, [r8, #-1121]! + 1750: 74532072 ldrbvc r2, [r3], #-114 + 1754: 6f697461 svcvs 0x00697461 + 1758: 6f43206e svcvs 0x0043206e + 175c: 6f72746e svcvs 0x0072746e + 1760: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1764: 7070415c rsbsvc r4, r0, ip, asr r1 + 1768: 6163696c cmnvs r3, ip, ror #18 + 176c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1770: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1774: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1778: 445c7365 ldrbmi r7, [ip], #-869 + 177c: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1780: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1784: 52414900 subpl r4, r1, #0 ; 0x0 + 1788: 534e4120 movtpl r4, #57632 ; 0xe120 + 178c: 2f432049 svccs 0x00432049 + 1790: 202b2b43 eorcs r2, fp, r3, asr #22 + 1794: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1798: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 179c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 17a0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 17a4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 17a8: 572f3539 undefined + 17ac: 4b203233 blmi 80e080 + 17b0: 534b4349 movtpl r4, #45897 ; 0xb349 + 17b4: 54524154 ldrbpl r4, [r2], #-340 + 17b8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 17bc: 4d524120 ldfmie f4, [r2, #-128] + 17c0: 1ffc0100 svcne 0x00fc0100 + 17c4: 20440040 subcs r0, r4, r0, asr #32 + 17c8: 0c040040 stceq 0, cr0, [r4], {64} + 17cc: 094e0000 stmdbeq lr, {}^ + 17d0: 17100000 ldrne r0, [r0, -r0] + 17d4: 08000003 stmdaeq r0, {r0, r1} + 17d8: 0000013b andeq r0, r0, fp, lsr r1 + 17dc: 5f44434c svcpl 0x0044434c + 17e0: 74697257 strbtvc r7, [r9], #-599 + 17e4: 74614465 strbtvc r4, [r1], #-1125 + 17e8: b8010061 stmdalt r1, {r0, r5, r6} + 17ec: 82010606 andhi r0, r1, #6291456 ; 0x600000 + 17f0: fc000009 stc2 0, cr0, [r0], {9} + 17f4: 4400401f strmi r4, [r0], #-31 + 17f8: 0b004020 bleq 11880 + 17fc: 61746164 cmnvs r4, r4, ror #2 + 1800: 06b80100 ldrteq r0, [r8], r0, lsl #2 + 1804: 07f3101c undefined + 1808: 09a20000 stmibeq r2!, {} + 180c: 1d0c0000 stcne 0, cr0, [ip] + 1810: 10000001 andne r0, r0, r1 + 1814: 0000260e andeq r2, r0, lr, lsl #12 + 1818: 00402014 subeq r2, r0, r4, lsl r0 + 181c: 00402028 subeq r2, r0, r8, lsr #32 + 1820: 013a0c00 teqeq sl, r0, lsl #24 + 1824: ee100000 wxor wr0, wr0, wr0 + 1828: 28000026 stmdacs r0, {r1, r2, r5} + 182c: 3c004020 stccc 0, cr4, [r0], {32} + 1830: 0d004020 stceq 0, cr4, [r0, #-128] + 1834: 00270210 eoreq r0, r7, r0, lsl r2 + 1838: 0009bf00 andeq fp, r9, r0, lsl #30 + 183c: 00000000 andeq r0, r0, r0 + 1840: 000000d0 ldrdeq r0, [r0], -r0 + 1844: 00840003 addeq r0, r4, r3 + 1848: 07040000 streq r0, [r4, -r0] + 184c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1850: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1854: 73746e65 cmnvc r4, #1616 ; 0x650 + 1858: 646e6120 strbtvs r6, [lr], #-288 + 185c: 74655320 strbtvc r5, [r5], #-800 + 1860: 676e6974 undefined + 1864: 616d5c73 smcvs 54723 + 1868: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 186c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1870: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1874: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1878: 775c7374 undefined + 187c: 6f632d73 svcvs 0x00632d73 + 1880: 6f72746e svcvs 0x0072746e + 1884: 65575c6c ldrbvs r5, [r7, #-3180] + 1888: 65687461 strbvs r7, [r8, #-1121]! + 188c: 74532072 ldrbvc r2, [r3], #-114 + 1890: 6f697461 svcvs 0x00697461 + 1894: 6f43206e svcvs 0x0043206e + 1898: 6f72746e svcvs 0x0072746e + 189c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 18a0: 7070415c rsbsvc r4, r0, ip, asr r1 + 18a4: 6163696c cmnvs r3, ip, ror #18 + 18a8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 18ac: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 18b0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 18b4: 445c7365 ldrbmi r7, [ip], #-869 + 18b8: 6c707369 ldclvs 3, cr7, [r0], #-420 + 18bc: 632e7961 teqvs lr, #1589248 ; 0x184000 + 18c0: 52414900 subpl r4, r1, #0 ; 0x0 + 18c4: 534e4120 movtpl r4, #57632 ; 0xe120 + 18c8: 2f432049 svccs 0x00432049 + 18cc: 202b2b43 eorcs r2, fp, r3, asr #22 + 18d0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 18d4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 18d8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 18dc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 18e0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 18e4: 572f3539 undefined + 18e8: 4b203233 blmi 80e1bc + 18ec: 534b4349 movtpl r4, #45897 ; 0xb349 + 18f0: 54524154 ldrbpl r4, [r2], #-340 + 18f4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 18f8: 4d524120 ldfmie f4, [r2, #-128] + 18fc: 20440100 subcs r0, r4, r0, lsl #2 + 1900: 20800040 addcs r0, r0, r0, asr #32 + 1904: 0ce80040 stcleq 0, cr0, [r8], #256 + 1908: 0a700000 beq 1c01910 + 190c: 17100000 ldrne r0, [r0, -r0] + 1910: 00000003 andeq r0, r0, r3 + 1914: 0000010c andeq r0, r0, ip, lsl #2 + 1918: 00840003 addeq r0, r4, r3 + 191c: 07040000 streq r0, [r4, -r0] + 1920: 445c3a43 ldrbmi r3, [ip], #-2627 + 1924: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1928: 73746e65 cmnvc r4, #1616 ; 0x650 + 192c: 646e6120 strbtvs r6, [lr], #-288 + 1930: 74655320 strbtvc r5, [r5], #-800 + 1934: 676e6974 undefined + 1938: 616d5c73 smcvs 54723 + 193c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1940: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1944: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1948: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 194c: 775c7374 undefined + 1950: 6f632d73 svcvs 0x00632d73 + 1954: 6f72746e svcvs 0x0072746e + 1958: 65575c6c ldrbvs r5, [r7, #-3180] + 195c: 65687461 strbvs r7, [r8, #-1121]! + 1960: 74532072 ldrbvc r2, [r3], #-114 + 1964: 6f697461 svcvs 0x00697461 + 1968: 6f43206e svcvs 0x0043206e + 196c: 6f72746e svcvs 0x0072746e + 1970: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1974: 7070415c rsbsvc r4, r0, ip, asr r1 + 1978: 6163696c cmnvs r3, ip, ror #18 + 197c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1980: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1984: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1988: 445c7365 ldrbmi r7, [ip], #-869 + 198c: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1990: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1994: 52414900 subpl r4, r1, #0 ; 0x0 + 1998: 534e4120 movtpl r4, #57632 ; 0xe120 + 199c: 2f432049 svccs 0x00432049 + 19a0: 202b2b43 eorcs r2, fp, r3, asr #22 + 19a4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 19a8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 19ac: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 19b0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 19b4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 19b8: 572f3539 undefined + 19bc: 4b203233 blmi 80e290 + 19c0: 534b4349 movtpl r4, #45897 ; 0xb349 + 19c4: 54524154 ldrbpl r4, [r2], #-340 + 19c8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 19cc: 4d524120 ldfmie f4, [r2, #-128] + 19d0: 20840100 addcs r0, r4, r0, lsl #2 + 19d4: 20a40040 adccs r0, r4, r0, asr #32 + 19d8: 0dd00040 ldcleq 0, cr0, [r0, #256] + 19dc: 0bc70000 bleq ff1c19e4 + 19e0: 17100000 ldrne r0, [r0, -r0] + 19e4: 0f000003 svceq 0x00000003 + 19e8: 0000010e andeq r0, r0, lr, lsl #2 + 19ec: 5f44434c svcpl 0x0044434c + 19f0: 46746553 undefined + 19f4: 00746e6f rsbseq r6, r4, pc, ror #28 + 19f8: 0806d701 stmdaeq r6, {r0, r8, r9, sl, ip, lr, pc} + 19fc: 08021001 stmdaeq r2, {r0, ip} + 1a00: 09c70000 stmibeq r7, {}^ + 1a04: 20840000 addcs r0, r4, r0 + 1a08: 20a40040 adccs r0, r4, r0, asr #32 + 1a0c: 660b0040 strvs r0, [fp], -r0, asr #32 + 1a10: 00746e6f rsbseq r6, r4, pc, ror #28 + 1a14: 2206d701 andcs sp, r6, #262144 ; 0x40000 + 1a18: 0007be10 andeq fp, r7, r0, lsl lr + 1a1c: 0009db00 andeq sp, r9, r0, lsl #22 + 1a20: 00000000 andeq r0, r0, r0 + 1a24: 00000134 andeq r0, r0, r4, lsr r1 + 1a28: 00840003 addeq r0, r4, r3 + 1a2c: 07040000 streq r0, [r4, -r0] + 1a30: 445c3a43 ldrbmi r3, [ip], #-2627 + 1a34: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1a38: 73746e65 cmnvc r4, #1616 ; 0x650 + 1a3c: 646e6120 strbtvs r6, [lr], #-288 + 1a40: 74655320 strbtvc r5, [r5], #-800 + 1a44: 676e6974 undefined + 1a48: 616d5c73 smcvs 54723 + 1a4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1a50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1a54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1a58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1a5c: 775c7374 undefined + 1a60: 6f632d73 svcvs 0x00632d73 + 1a64: 6f72746e svcvs 0x0072746e + 1a68: 65575c6c ldrbvs r5, [r7, #-3180] + 1a6c: 65687461 strbvs r7, [r8, #-1121]! + 1a70: 74532072 ldrbvc r2, [r3], #-114 + 1a74: 6f697461 svcvs 0x00697461 + 1a78: 6f43206e svcvs 0x0043206e + 1a7c: 6f72746e svcvs 0x0072746e + 1a80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1a84: 7070415c rsbsvc r4, r0, ip, asr r1 + 1a88: 6163696c cmnvs r3, ip, ror #18 + 1a8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1a90: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1a94: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1a98: 445c7365 ldrbmi r7, [ip], #-869 + 1a9c: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1aa0: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1aa4: 52414900 subpl r4, r1, #0 ; 0x0 + 1aa8: 534e4120 movtpl r4, #57632 ; 0xe120 + 1aac: 2f432049 svccs 0x00432049 + 1ab0: 202b2b43 eorcs r2, fp, r3, asr #22 + 1ab4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1ab8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1abc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 1ac0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1ac4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1ac8: 572f3539 undefined + 1acc: 4b203233 blmi 80e3a0 + 1ad0: 534b4349 movtpl r4, #45897 ; 0xb349 + 1ad4: 54524154 ldrbpl r4, [r2], #-340 + 1ad8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1adc: 4d524120 ldfmie f4, [r2, #-128] + 1ae0: 20a40100 adccs r0, r4, r0, lsl #2 + 1ae4: 20ba0040 adcscs r0, sl, r0, asr #32 + 1ae8: 0e840040 cdpeq 0, 8, cr0, cr4, cr0, {2} + 1aec: 0c280000 stceq 0, cr0, [r8] + 1af0: 17100000 ldrne r0, [r0, -r0] + 1af4: 08000003 stmdaeq r0, {r0, r1} + 1af8: 00000136 andeq r0, r0, r6, lsr r1 + 1afc: 5f44434c svcpl 0x0044434c + 1b00: 42746553 rsbsmi r6, r4, #348127232 ; 0x14c00000 + 1b04: 6c6b6361 stclvs 3, cr6, [fp], #-388 + 1b08: 74686769 strbtvc r6, [r8], #-1897 + 1b0c: 078e0100 streq r0, [lr, r0, lsl #2] + 1b10: 09f80106 ldmibeq r8!, {r1, r2, r8}^ + 1b14: 20a40000 adccs r0, r4, r0 + 1b18: 20ba0040 adcscs r0, sl, r0, asr #32 + 1b1c: 620b0040 andvs r0, fp, #64 ; 0x40 + 1b20: 68676972 stmdavs r7!, {r1, r4, r5, r6, r8, fp, sp, lr}^ + 1b24: 73656e74 cmnvc r5, #1856 ; 0x740 + 1b28: 6c615673 stclvs 6, cr5, [r1], #-460 + 1b2c: 01006575 tsteq r0, r5, ror r5 + 1b30: 101f078e andsne r0, pc, lr, lsl #15 + 1b34: 000007f3 strdeq r0, [r0], -r3 + 1b38: 00000a24 andeq r0, r0, r4, lsr #20 + 1b3c: 63616209 cmnvs r1, #-1879048192 ; 0x90000000 + 1b40: 67694c6b strbvs r4, [r9, -fp, ror #24]! + 1b44: 74537468 ldrbvc r7, [r3], #-1128 + 1b48: 00657461 rsbeq r7, r5, r1, ror #8 + 1b4c: 14079001 strne r9, [r7], #-1 + 1b50: 00079b10 andeq r9, r7, r0, lsl fp + 1b54: 000a4100 andeq r4, sl, r0, lsl #2 + 1b58: 00000000 andeq r0, r0, r0 + 1b5c: 000001ec andeq r0, r0, ip, ror #3 + 1b60: 00840003 addeq r0, r4, r3 + 1b64: 07040000 streq r0, [r4, -r0] + 1b68: 445c3a43 ldrbmi r3, [ip], #-2627 + 1b6c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1b70: 73746e65 cmnvc r4, #1616 ; 0x650 + 1b74: 646e6120 strbtvs r6, [lr], #-288 + 1b78: 74655320 strbtvc r5, [r5], #-800 + 1b7c: 676e6974 undefined + 1b80: 616d5c73 smcvs 54723 + 1b84: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1b88: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1b8c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1b90: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1b94: 775c7374 undefined + 1b98: 6f632d73 svcvs 0x00632d73 + 1b9c: 6f72746e svcvs 0x0072746e + 1ba0: 65575c6c ldrbvs r5, [r7, #-3180] + 1ba4: 65687461 strbvs r7, [r8, #-1121]! + 1ba8: 74532072 ldrbvc r2, [r3], #-114 + 1bac: 6f697461 svcvs 0x00697461 + 1bb0: 6f43206e svcvs 0x0043206e + 1bb4: 6f72746e svcvs 0x0072746e + 1bb8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1bbc: 7070415c rsbsvc r4, r0, ip, asr r1 + 1bc0: 6163696c cmnvs r3, ip, ror #18 + 1bc4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1bc8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1bcc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1bd0: 445c7365 ldrbmi r7, [ip], #-869 + 1bd4: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1bd8: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1bdc: 52414900 subpl r4, r1, #0 ; 0x0 + 1be0: 534e4120 movtpl r4, #57632 ; 0xe120 + 1be4: 2f432049 svccs 0x00432049 + 1be8: 202b2b43 eorcs r2, fp, r3, asr #22 + 1bec: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1bf0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1bf4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 1bf8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1bfc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1c00: 572f3539 undefined + 1c04: 4b203233 blmi 80e4d8 + 1c08: 534b4349 movtpl r4, #45897 ; 0xb349 + 1c0c: 54524154 ldrbpl r4, [r2], #-340 + 1c10: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1c14: 4d524120 ldfmie f4, [r2, #-128] + 1c18: 20ba0100 adcscs r0, sl, r0, lsl #2 + 1c1c: 21e20040 mvncs r0, r0, asr #32 + 1c20: 0f380040 svceq 0x00380040 + 1c24: 0c900000 ldceq 0, cr0, [r0], {0} + 1c28: 17100000 ldrne r0, [r0, -r0] + 1c2c: 08000003 stmdaeq r0, {r0, r1} + 1c30: 000001ee andeq r0, r0, lr, ror #3 + 1c34: 5f44434c svcpl 0x0044434c + 1c38: 74697257 strbtvc r7, [r9], #-599 + 1c3c: 78695065 stmdavc r9!, {r0, r2, r5, r6, ip, lr}^ + 1c40: 01006c65 tsteq r0, r5, ror #24 + 1c44: 010607a0 smlatbeq r6, r0, r7, r0 + 1c48: 00000a5e andeq r0, r0, lr, asr sl + 1c4c: 004020ba strheq r2, [r0], #-10 + 1c50: 004021e2 subeq r2, r0, r2, ror #3 + 1c54: 7453780b ldrbvc r7, [r3], #-2059 + 1c58: 43747261 cmnmi r4, #268435462 ; 0x10000006 + 1c5c: 64726f6f ldrbtvs r6, [r2], #-3951 + 1c60: 07a00100 streq r0, [r0, r0, lsl #2]! + 1c64: 07f3101d undefined + 1c68: 0a8a0000 beq fe281c70 + 1c6c: 790b0000 stmdbvc fp, {} + 1c70: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 + 1c74: 6f6f4374 svcvs 0x006f4374 + 1c78: 01006472 tsteq r0, r2, ror r4 + 1c7c: 103207a0 eorsne r0, r2, r0, lsr #15 + 1c80: 000007f3 strdeq r0, [r0], -r3 + 1c84: 00000aa7 andeq r0, r0, r7, lsr #21 + 1c88: 646f6d0b strbtvs r6, [pc], #3339 ; 1c90 <__USR_stack_size+0x1490> + 1c8c: a0010065 andge r0, r1, r5, rrx + 1c90: 02104607 andseq r4, r0, #7340032 ; 0x700000 + 1c94: c4000008 strgt r0, [r0], #-8 + 1c98: 0900000a stmdbeq r0, {r1, r3} + 1c9c: 65676170 strbvs r6, [r7, #-368]! + 1ca0: 07a20100 streq r0, [r2, r0, lsl #2]! + 1ca4: 07f3100b ldrbeq r1, [r3, fp]! + 1ca8: 0ae10000 beq ff841cb0 + 1cac: 72090000 andvc r0, r9, #0 ; 0x0 + 1cb0: 00646165 rsbeq r6, r4, r5, ror #2 + 1cb4: 0b07a301 bleq 1ea8c0 + 1cb8: 0007f310 andeq pc, r7, r0, lsl r3 + 1cbc: 000afe00 andeq pc, sl, r0, lsl #28 + 1cc0: 01a90c00 undefined instruction 0x01a90c00 + 1cc4: da100000 ble 401ccc + 1cc8: 02000027 andeq r0, r0, #39 ; 0x27 + 1ccc: 4c004021 stcmi 0, cr4, [r0], {33} + 1cd0: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} + 1cd4: 0027f310 eoreq pc, r7, r0, lsl r3 + 1cd8: 000b3000 andeq r3, fp, r0 + 1cdc: 01a80c00 undefined instruction 0x01a80c00 + 1ce0: d2100000 andsle r0, r0, #0 ; 0x0 + 1ce4: 26000028 strcs r0, [r0], -r8, lsr #32 + 1ce8: 36004021 strcc r4, [r0], -r1, lsr #32 + 1cec: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} + 1cf0: 0028ea10 eoreq lr, r8, r0, lsl sl + 1cf4: 000b3800 andeq r3, fp, r0, lsl #16 + 1cf8: 00100e00 andseq r0, r0, r0, lsl #28 + 1cfc: 40000029 andmi r0, r0, r9, lsr #32 + 1d00: 0000000b andeq r0, r0, fp + 1d04: 01ed0c00 mvneq r0, r0, lsl #24 + 1d08: da100000 ble 401d10 + 1d0c: 4c000027 stcmi 0, cr0, [r0], {39} + 1d10: 9e004021 cdpls 0, 0, cr4, cr0, cr1, {1} + 1d14: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} + 1d18: 0027f310 eoreq pc, r7, r0, lsl r3 + 1d1c: 000b5400 andeq r5, fp, r0, lsl #8 + 1d20: 01ec0c00 mvneq r0, r0, lsl #24 + 1d24: d2100000 andsle r0, r0, #0 ; 0x0 + 1d28: 70000028 andvc r0, r0, r8, lsr #32 + 1d2c: 88004021 stmdahi r0, {r0, r5, lr} + 1d30: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} + 1d34: 0028ea10 eoreq lr, r8, r0, lsl sl + 1d38: 000b5c00 andeq r5, fp, r0, lsl #24 + 1d3c: 00100e00 andseq r0, r0, r0, lsl #28 + 1d40: 6f000029 svcvs 0x00000029 + 1d44: 0000000b andeq r0, r0, fp + 1d48: 00000000 andeq r0, r0, r0 + 1d4c: 000001bc strheq r0, [r0], -ip + 1d50: 00840003 addeq r0, r4, r3 + 1d54: 07040000 streq r0, [r4, -r0] + 1d58: 445c3a43 ldrbmi r3, [ip], #-2627 + 1d5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1d60: 73746e65 cmnvc r4, #1616 ; 0x650 + 1d64: 646e6120 strbtvs r6, [lr], #-288 + 1d68: 74655320 strbtvc r5, [r5], #-800 + 1d6c: 676e6974 undefined + 1d70: 616d5c73 smcvs 54723 + 1d74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1d78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1d7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1d80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1d84: 775c7374 undefined + 1d88: 6f632d73 svcvs 0x00632d73 + 1d8c: 6f72746e svcvs 0x0072746e + 1d90: 65575c6c ldrbvs r5, [r7, #-3180] + 1d94: 65687461 strbvs r7, [r8, #-1121]! + 1d98: 74532072 ldrbvc r2, [r3], #-114 + 1d9c: 6f697461 svcvs 0x00697461 + 1da0: 6f43206e svcvs 0x0043206e + 1da4: 6f72746e svcvs 0x0072746e + 1da8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1dac: 7070415c rsbsvc r4, r0, ip, asr r1 + 1db0: 6163696c cmnvs r3, ip, ror #18 + 1db4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1db8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1dbc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1dc0: 445c7365 ldrbmi r7, [ip], #-869 + 1dc4: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1dc8: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1dcc: 52414900 subpl r4, r1, #0 ; 0x0 + 1dd0: 534e4120 movtpl r4, #57632 ; 0xe120 + 1dd4: 2f432049 svccs 0x00432049 + 1dd8: 202b2b43 eorcs r2, fp, r3, asr #22 + 1ddc: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1de0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1de4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 1de8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1dec: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1df0: 572f3539 undefined + 1df4: 4b203233 blmi 80e6c8 + 1df8: 534b4349 movtpl r4, #45897 ; 0xb349 + 1dfc: 54524154 ldrbpl r4, [r2], #-340 + 1e00: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1e04: 4d524120 ldfmie f4, [r2, #-128] + 1e08: 21e40100 mvncs r0, r0, lsl #2 + 1e0c: 22ac0040 adccs r0, ip, #64 ; 0x40 + 1e10: 10600040 rsbne r0, r0, r0, asr #32 + 1e14: 0f3d0000 svceq 0x003d0000 + 1e18: 17100000 ldrne r0, [r0, -r0] + 1e1c: 08000003 stmdaeq r0, {r0, r1} + 1e20: 000001bf strheq r0, [r0], -pc + 1e24: 5f44434c svcpl 0x0044434c + 1e28: 74697257 strbtvc r7, [r9], #-599 + 1e2c: 61684365 cmnvs r8, r5, ror #6 + 1e30: 74636172 strbtvc r6, [r3], #-370 + 1e34: 01007265 tsteq r0, r5, ror #4 + 1e38: 010607d0 ldrdeq r0, [r6, -r0] + 1e3c: 00000b83 andeq r0, r0, r3, lsl #23 + 1e40: 004021e4 subeq r2, r0, r4, ror #3 + 1e44: 004022ac subeq r2, r0, ip, lsr #5 + 1e48: 6d79730b ldclvs 3, cr7, [r9, #-44]! + 1e4c: 006c6f62 rsbeq r6, ip, r2, ror #30 + 1e50: 2107d001 tstcs r7, r1 + 1e54: 0007f310 andeq pc, r7, r0, lsl r3 + 1e58: 000baf00 andeq sl, fp, r0, lsl #30 + 1e5c: 43780b00 cmnmi r8, #0 ; 0x0 + 1e60: 64726f6f ldrbtvs r6, [r2], #-3951 + 1e64: 07d00100 ldrbeq r0, [r0, r0, lsl #2] + 1e68: 07f31031 undefined + 1e6c: 0bcc0000 bleq ff301e74 + 1e70: 790b0000 stmdbvc fp, {} + 1e74: 726f6f43 rsbvc r6, pc, #268 ; 0x10c + 1e78: d0010064 andle r0, r1, r4, rrx + 1e7c: f3104107 vrhadd.u16 d4, d0, d7 + 1e80: e0000007 and r0, r0, r7 + 1e84: 0900000b stmdbeq r0, {r0, r1, r3} + 1e88: 61727261 cmnvs r2, r1, ror #4 + 1e8c: 636f4c79 cmnvs pc, #30976 ; 0x7900 + 1e90: 6f697461 svcvs 0x00697461 + 1e94: d201006e andle r0, r1, #110 ; 0x6e + 1e98: 1f100c07 svcne 0x00100c07 + 1e9c: f3000008 vhadd.u8 d0, d0, d8 + 1ea0: 0900000b stmdbeq r0, {r0, r1, r3} + 1ea4: d3010069 movwle r0, #4201 ; 0x1069 + 1ea8: f3100b07 vqrdmulh.s16 d0, d0, d7 + 1eac: 05000007 streq r0, [r0, #-7] + 1eb0: 0900000c stmdbeq r0, {r2, r3} + 1eb4: 4c78616d ldfmie f6, [r8], #-436 + 1eb8: 74676e65 strbtvc r6, [r7], #-3685 + 1ebc: d3010068 movwle r0, #4200 ; 0x1068 + 1ec0: f3100e07 vcge.f d0, d0, d7 + 1ec4: 22000007 andcs r0, r0, #7 ; 0x7 + 1ec8: 0a00000c beq 1f00 <__USR_stack_size+0x1700> + 1ecc: 000001be strheq r0, [r0], -lr + 1ed0: 0040221c subeq r2, r0, ip, lsl r2 + 1ed4: 004022ac subeq r2, r0, ip, lsr #5 + 1ed8: 0001bd0c andeq fp, r1, ip, lsl #26 + 1edc: 29da1000 ldmibcs sl, {ip}^ + 1ee0: 22700000 rsbscs r0, r0, #0 ; 0x0 + 1ee4: 229a0040 addscs r0, sl, #64 ; 0x40 + 1ee8: 100d0040 andne r0, sp, r0, asr #32 + 1eec: 000029f6 strdeq r2, [r0], -r6 + 1ef0: 00000c35 andeq r0, r0, r5, lsr ip + 1ef4: 2a0c100d bcs 305f30 + 1ef8: 0c3d0000 ldceq 0, cr0, [sp] + 1efc: 100e0000 andne r0, lr, r0 + 1f00: 00002a22 andeq r2, r0, r2, lsr #20 + 1f04: 00000c45 andeq r0, r0, r5, asr #24 + 1f08: 00000000 andeq r0, r0, r0 + 1f0c: 000000d0 ldrdeq r0, [r0], -r0 + 1f10: 00840003 addeq r0, r4, r3 + 1f14: 07040000 streq r0, [r4, -r0] + 1f18: 445c3a43 ldrbmi r3, [ip], #-2627 + 1f1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1f20: 73746e65 cmnvc r4, #1616 ; 0x650 + 1f24: 646e6120 strbtvs r6, [lr], #-288 + 1f28: 74655320 strbtvc r5, [r5], #-800 + 1f2c: 676e6974 undefined + 1f30: 616d5c73 smcvs 54723 + 1f34: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1f38: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1f3c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1f40: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1f44: 775c7374 undefined + 1f48: 6f632d73 svcvs 0x00632d73 + 1f4c: 6f72746e svcvs 0x0072746e + 1f50: 65575c6c ldrbvs r5, [r7, #-3180] + 1f54: 65687461 strbvs r7, [r8, #-1121]! + 1f58: 74532072 ldrbvc r2, [r3], #-114 + 1f5c: 6f697461 svcvs 0x00697461 + 1f60: 6f43206e svcvs 0x0043206e + 1f64: 6f72746e svcvs 0x0072746e + 1f68: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1f6c: 7070415c rsbsvc r4, r0, ip, asr r1 + 1f70: 6163696c cmnvs r3, ip, ror #18 + 1f74: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1f78: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1f7c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1f80: 445c7365 ldrbmi r7, [ip], #-869 + 1f84: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1f88: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1f8c: 52414900 subpl r4, r1, #0 ; 0x0 + 1f90: 534e4120 movtpl r4, #57632 ; 0xe120 + 1f94: 2f432049 svccs 0x00432049 + 1f98: 202b2b43 eorcs r2, fp, r3, asr #22 + 1f9c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1fa0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1fa4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 1fa8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1fac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1fb0: 572f3539 undefined + 1fb4: 4b203233 blmi 80e888 + 1fb8: 534b4349 movtpl r4, #45897 ; 0xb349 + 1fbc: 54524154 ldrbpl r4, [r2], #-340 + 1fc0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1fc4: 4d524120 ldfmie f4, [r2, #-128] + 1fc8: 22ac0100 adccs r0, ip, #0 ; 0x0 + 1fcc: 22b00040 adcscs r0, r0, #64 ; 0x40 + 1fd0: 11500040 cmpne r0, r0, asr #32 + 1fd4: 105f0000 subsne r0, pc, r0 + 1fd8: 17100000 ldrne r0, [r0, -r0] + 1fdc: 00000003 andeq r0, r0, r3 + 1fe0: 00000180 andeq r0, r0, r0, lsl #3 + 1fe4: 00840003 addeq r0, r4, r3 + 1fe8: 07040000 streq r0, [r4, -r0] + 1fec: 445c3a43 ldrbmi r3, [ip], #-2627 + 1ff0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1ff4: 73746e65 cmnvc r4, #1616 ; 0x650 + 1ff8: 646e6120 strbtvs r6, [lr], #-288 + 1ffc: 74655320 strbtvc r5, [r5], #-800 + 2000: 676e6974 undefined + 2004: 616d5c73 smcvs 54723 + 2008: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 200c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2010: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2014: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2018: 775c7374 undefined + 201c: 6f632d73 svcvs 0x00632d73 + 2020: 6f72746e svcvs 0x0072746e + 2024: 65575c6c ldrbvs r5, [r7, #-3180] + 2028: 65687461 strbvs r7, [r8, #-1121]! + 202c: 74532072 ldrbvc r2, [r3], #-114 + 2030: 6f697461 svcvs 0x00697461 + 2034: 6f43206e svcvs 0x0043206e + 2038: 6f72746e svcvs 0x0072746e + 203c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2040: 7070415c rsbsvc r4, r0, ip, asr r1 + 2044: 6163696c cmnvs r3, ip, ror #18 + 2048: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 204c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2050: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2054: 445c7365 ldrbmi r7, [ip], #-869 + 2058: 6c707369 ldclvs 3, cr7, [r0], #-420 + 205c: 632e7961 teqvs lr, #1589248 ; 0x184000 + 2060: 52414900 subpl r4, r1, #0 ; 0x0 + 2064: 534e4120 movtpl r4, #57632 ; 0xe120 + 2068: 2f432049 svccs 0x00432049 + 206c: 202b2b43 eorcs r2, fp, r3, asr #22 + 2070: 706d6f43 rsbvc r6, sp, r3, asr #30 + 2074: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 2078: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 207c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 2080: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 2084: 572f3539 undefined + 2088: 4b203233 blmi 80e95c + 208c: 534b4349 movtpl r4, #45897 ; 0xb349 + 2090: 54524154 ldrbpl r4, [r2], #-340 + 2094: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2098: 4d524120 ldfmie f4, [r2, #-128] + 209c: 22d00100 sbcscs r0, r0, #0 ; 0x0 + 20a0: 23160040 tstcs r6, #64 ; 0x40 + 20a4: 11780040 cmnne r8, r0, asr #32 + 20a8: 11140000 tstne r4, r0 + 20ac: 17100000 ldrne r0, [r0, -r0] + 20b0: 08000003 stmdaeq r0, {r0, r1} + 20b4: 00000180 andeq r0, r0, r0, lsl #3 + 20b8: 5f44434c svcpl 0x0044434c + 20bc: 61656c43 cmnvs r5, r3, asr #24 + 20c0: 67615072 undefined + 20c4: 84010065 strhi r0, [r1], #-101 + 20c8: 4d010608 stcmi 6, cr0, [r1, #-32] + 20cc: d000000c andle r0, r0, ip + 20d0: 16004022 strne r4, [r0], -r2, lsr #32 + 20d4: 0b004023 bleq 12168 + 20d8: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 20dc: 6f435874 svcvs 0x00435874 + 20e0: 0064726f rsbeq r7, r4, pc, ror #4 + 20e4: 1c088401 cfstrsne mvf8, [r8], {1} + 20e8: 0007f310 andeq pc, r7, r0, lsl r3 + 20ec: 000c8500 andeq r8, ip, r0, lsl #10 + 20f0: 6e650b00 fmuldvs d16, d5, d0 + 20f4: 6f435864 svcvs 0x00435864 + 20f8: 0064726f rsbeq r7, r4, pc, ror #4 + 20fc: 31088401 tstcc r8, r1, lsl #8 + 2100: 0007f310 andeq pc, r7, r0, lsl r3 + 2104: 000ca200 andeq sl, ip, r0, lsl #4 + 2108: 43790b00 cmnmi r9, #0 ; 0x0 + 210c: 64726f6f ldrbtvs r6, [r2], #-3951 + 2110: 08840100 stmeq r4, {r8} + 2114: 07f31044 ldrbeq r1, [r3, r4, asr #32]! + 2118: 0cbf0000 ldceq 0, cr0, [pc] + 211c: 69090000 stmdbvs r9, {} + 2120: 08860100 stmeq r6, {r8} + 2124: 07f3100b ldrbeq r1, [r3, fp]! + 2128: 0cdc0000 ldcleq 0, cr0, [ip], {0} + 212c: 7f0c0000 svcvc 0x000c0000 + 2130: 10000001 andne r0, r0, r1 + 2134: 000029da ldrdeq r2, [r0], -sl + 2138: 004022d8 ldrdeq r2, [r0], #-40 + 213c: 004022fc strdeq r2, [r0], #-44 + 2140: 29f6100d ldmibcs r6!, {r0, r2, r3, ip}^ + 2144: 0cf90000 ldcleq 0, cr0, [r9] + 2148: 100d0000 andne r0, sp, r0 + 214c: 00002a0c andeq r2, r0, ip, lsl #20 + 2150: 00000d01 andeq r0, r0, r1, lsl #26 + 2154: 2a22100e bcs 886194 + 2158: 0d090000 stceq 0, cr0, [r9] + ... + 2164: 00000158 andeq r0, r0, r8, asr r1 + 2168: 00840003 addeq r0, r4, r3 + 216c: 07040000 streq r0, [r4, -r0] + 2170: 445c3a43 ldrbmi r3, [ip], #-2627 + 2174: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2178: 73746e65 cmnvc r4, #1616 ; 0x650 + 217c: 646e6120 strbtvs r6, [lr], #-288 + 2180: 74655320 strbtvc r5, [r5], #-800 + 2184: 676e6974 undefined + 2188: 616d5c73 smcvs 54723 + 218c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2190: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2194: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2198: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 219c: 775c7374 undefined + 21a0: 6f632d73 svcvs 0x00632d73 + 21a4: 6f72746e svcvs 0x0072746e + 21a8: 65575c6c ldrbvs r5, [r7, #-3180] + 21ac: 65687461 strbvs r7, [r8, #-1121]! + 21b0: 74532072 ldrbvc r2, [r3], #-114 + 21b4: 6f697461 svcvs 0x00697461 + 21b8: 6f43206e svcvs 0x0043206e + 21bc: 6f72746e svcvs 0x0072746e + 21c0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 21c4: 7070415c rsbsvc r4, r0, ip, asr r1 + 21c8: 6163696c cmnvs r3, ip, ror #18 + 21cc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 21d0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 21d4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 21d8: 445c7365 ldrbmi r7, [ip], #-869 + 21dc: 6c707369 ldclvs 3, cr7, [r0], #-420 + 21e0: 632e7961 teqvs lr, #1589248 ; 0x184000 + 21e4: 52414900 subpl r4, r1, #0 ; 0x0 + 21e8: 534e4120 movtpl r4, #57632 ; 0xe120 + 21ec: 2f432049 svccs 0x00432049 + 21f0: 202b2b43 eorcs r2, fp, r3, asr #22 + 21f4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 21f8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 21fc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 2200: 322e3033 eorcc r3, lr, #51 ; 0x33 + 2204: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 2208: 572f3539 undefined + 220c: 4b203233 blmi 80eae0 + 2210: 534b4349 movtpl r4, #45897 ; 0xb349 + 2214: 54524154 ldrbpl r4, [r2], #-340 + 2218: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 221c: 4d524120 ldfmie f4, [r2, #-128] + 2220: 23180100 tstcs r8, #0 ; 0x0 + 2224: 23780040 cmncs r8, #64 ; 0x40 + 2228: 12500040 subsne r0, r0, #64 ; 0x40 + 222c: 11ef0000 mvnne r0, r0 + 2230: 17100000 ldrne r0, [r0, -r0] + 2234: 0f000003 svceq 0x00000003 + 2238: 0000015b andeq r0, r0, fp, asr r1 + 223c: 5f44434c svcpl 0x0044434c + 2240: 61656c43 cmnvs r5, r3, asr #24 + 2244: 6e694c72 mcrvs 12, 3, r4, cr9, cr2, {3} + 2248: 9e010065 cdpls 0, 0, cr0, cr1, cr5, {3} + 224c: 10010908 andne r0, r1, r8, lsl #18 + 2250: 000007f3 strdeq r0, [r0], -r3 + 2254: 00000d11 andeq r0, r0, r1, lsl sp + 2258: 00402318 subeq r2, r0, r8, lsl r3 + 225c: 00402378 subeq r2, r0, r8, ror r3 + 2260: 6e696c0b cdpvs 12, 6, cr6, cr9, cr11, {0} + 2264: 9e010065 cdpls 0, 0, cr0, cr1, cr5, {3} + 2268: f3101f08 vpmax.f d1, d0, d8 + 226c: 55000007 strpl r0, [r0, #-7] + 2270: 0500000d streq r0, [r0, #-13] + 2274: 65676170 strbvs r6, [r7, #-368]! + 2278: 65446f54 strbvs r6, [r4, #-3924] + 227c: 6574656c ldrbvs r6, [r4, #-1388]! + 2280: 086b1000 stmdaeq fp!, {ip}^ + 2284: a0010000 andge r0, r1, r0 + 2288: 05001708 streq r1, [r0, #-1800] + 228c: 40548403 subsmi r8, r4, r3, lsl #8 + 2290: 73690500 cmnvc r9, #0 ; 0x0 + 2294: 65676150 strbvs r6, [r7, #-336]! + 2298: 656c6544 strbvs r6, [ip, #-1348]! + 229c: 00646574 rsbeq r6, r4, r4, ror r5 + 22a0: 00080210 andeq r0, r8, r0, lsl r2 + 22a4: 08a10100 stmiaeq r1!, {r8} + 22a8: 03050011 movweq r0, #20497 ; 0x5011 + 22ac: 004054a0 subeq r5, r0, r0, lsr #9 + 22b0: 00015a0a andeq r5, r1, sl, lsl #20 + 22b4: 40231e00 eormi r1, r3, r0, lsl #28 + 22b8: 40237000 eormi r7, r3, r0 + 22bc: 00000000 andeq r0, r0, r0 + 22c0: 0000016c andeq r0, r0, ip, ror #2 + 22c4: 00840003 addeq r0, r4, r3 + 22c8: 07040000 streq r0, [r4, -r0] + 22cc: 445c3a43 ldrbmi r3, [ip], #-2627 + 22d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 22d4: 73746e65 cmnvc r4, #1616 ; 0x650 + 22d8: 646e6120 strbtvs r6, [lr], #-288 + 22dc: 74655320 strbtvc r5, [r5], #-800 + 22e0: 676e6974 undefined + 22e4: 616d5c73 smcvs 54723 + 22e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 22ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 22f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 22f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 22f8: 775c7374 undefined + 22fc: 6f632d73 svcvs 0x00632d73 + 2300: 6f72746e svcvs 0x0072746e + 2304: 65575c6c ldrbvs r5, [r7, #-3180] + 2308: 65687461 strbvs r7, [r8, #-1121]! + 230c: 74532072 ldrbvc r2, [r3], #-114 + 2310: 6f697461 svcvs 0x00697461 + 2314: 6f43206e svcvs 0x0043206e + 2318: 6f72746e svcvs 0x0072746e + 231c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2320: 7070415c rsbsvc r4, r0, ip, asr r1 + 2324: 6163696c cmnvs r3, ip, ror #18 + 2328: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 232c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2330: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2334: 445c7365 ldrbmi r7, [ip], #-869 + 2338: 6c707369 ldclvs 3, cr7, [r0], #-420 + 233c: 632e7961 teqvs lr, #1589248 ; 0x184000 + 2340: 52414900 subpl r4, r1, #0 ; 0x0 + 2344: 534e4120 movtpl r4, #57632 ; 0xe120 + 2348: 2f432049 svccs 0x00432049 + 234c: 202b2b43 eorcs r2, fp, r3, asr #22 + 2350: 706d6f43 rsbvc r6, sp, r3, asr #30 + 2354: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 2358: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 235c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 2360: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 2364: 572f3539 undefined + 2368: 4b203233 blmi 80ec3c + 236c: 534b4349 movtpl r4, #45897 ; 0xb349 + 2370: 54524154 ldrbpl r4, [r2], #-340 + 2374: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2378: 4d524120 ldfmie f4, [r2, #-128] + 237c: 00000100 andeq r0, r0, r0, lsl #2 + 2380: 00600000 rsbeq r0, r0, r0 + 2384: 13180000 tstne r8, #0 ; 0x0 + 2388: 129a0000 addsne r0, sl, #0 ; 0x0 + 238c: 17100000 ldrne r0, [r0, -r0] + 2390: 08000003 stmdaeq r0, {r0, r1} + 2394: 0000016c andeq r0, r0, ip, ror #2 + 2398: 5f44434c svcpl 0x0044434c + 239c: 77617244 strbvc r7, [r1, -r4, asr #4]! + 23a0: 6e6f6349 cdpvs 3, 6, cr6, cr15, cr9, {2} + 23a4: 0abf0100 beq fefc27ac + 23a8: 0d720106 ldfeqe f0, [r2, #-24]! + 23ac: 00000000 andeq r0, r0, r0 + 23b0: 00600000 rsbeq r0, r0, r0 + 23b4: 750b0000 strvc r0, [fp] + 23b8: 6f435838 svcvs 0x00435838 + 23bc: 0064726f rsbeq r7, r4, pc, ror #4 + 23c0: 1b0abf01 blne 2b1fcc + 23c4: 0007f310 andeq pc, r7, r0, lsl r3 + 23c8: 000d9e00 andeq r9, sp, r0, lsl #28 + 23cc: 38750b00 ldmdacc r5!, {r8, r9, fp}^ + 23d0: 67615059 undefined + 23d4: bf010065 svclt 0x00010065 + 23d8: f3102d0a vpadd.f d2, d0, d10 + 23dc: b2000007 andlt r0, r0, #7 ; 0x7 + 23e0: 0b00000d bleq 241c <__USR_stack_size+0x1c1c> + 23e4: 49387570 ldmdbmi r8!, {r4, r5, r6, r8, sl, ip, sp, lr} + 23e8: 006e6f63 rsbeq r6, lr, r3, ror #30 + 23ec: 400abf01 andmi fp, sl, r1, lsl #30 + 23f0: 00042a10 andeq r2, r4, r0, lsl sl + 23f4: 000dc500 andeq ip, sp, r0, lsl #10 + 23f8: 38750900 ldmdacc r5!, {r8, fp}^ + 23fc: c1010069 tstgt r1, r9, rrx + 2400: f3100b0a vqrdmulh.s16 d0, d0, d10 + 2404: d8000007 stmdale r0, {r0, r1, r2} + 2408: 0900000d stmdbeq r0, {r0, r2, r3} + 240c: 006a3875 rsbeq r3, sl, r5, ror r8 + 2410: 0b0ac201 bleq 2b2c1c + 2414: 0007f310 andeq pc, r7, r0, lsl r3 + 2418: 000de000 andeq lr, sp, r0 + 241c: 016b0a00 cmneq fp, r0, lsl #20 + 2420: 00240000 eoreq r0, r4, r0 + 2424: 005a0000 subseq r0, sl, r0 + ... + 2430: 00000114 andeq r0, r0, r4, lsl r1 + 2434: 00840003 addeq r0, r4, r3 + 2438: 01040000 tsteq r4, r0 + 243c: 445c3a43 ldrbmi r3, [ip], #-2627 + 2440: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2444: 73746e65 cmnvc r4, #1616 ; 0x650 + 2448: 646e6120 strbtvs r6, [lr], #-288 + 244c: 74655320 strbtvc r5, [r5], #-800 + 2450: 676e6974 undefined + 2454: 616d5c73 smcvs 54723 + 2458: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 245c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2460: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2464: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2468: 775c7374 undefined + 246c: 6f632d73 svcvs 0x00632d73 + 2470: 6f72746e svcvs 0x0072746e + 2474: 65575c6c ldrbvs r5, [r7, #-3180] + 2478: 65687461 strbvs r7, [r8, #-1121]! + 247c: 74532072 ldrbvc r2, [r3], #-114 + 2480: 6f697461 svcvs 0x00697461 + 2484: 6f43206e svcvs 0x0043206e + 2488: 6f72746e svcvs 0x0072746e + 248c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2490: 7070415c rsbsvc r4, r0, ip, asr r1 + 2494: 6163696c cmnvs r3, ip, ror #18 + 2498: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 249c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 24a0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 24a4: 445c7365 ldrbmi r7, [ip], #-869 + 24a8: 6c707369 ldclvs 3, cr7, [r0], #-420 + 24ac: 632e7961 teqvs lr, #1589248 ; 0x184000 + 24b0: 52414900 subpl r4, r1, #0 ; 0x0 + 24b4: 534e4120 movtpl r4, #57632 ; 0xe120 + 24b8: 2f432049 svccs 0x00432049 + 24bc: 202b2b43 eorcs r2, fp, r3, asr #22 + 24c0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 24c4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 24c8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 24cc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 24d0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 24d4: 572f3539 undefined + 24d8: 4b203233 blmi 80edac + 24dc: 534b4349 movtpl r4, #45897 ; 0xb349 + 24e0: 54524154 ldrbpl r4, [r2], #-340 + 24e4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 24e8: 4d524120 ldfmie f4, [r2, #-128] + 24ec: 03800100 orreq r0, r0, #0 ; 0x0 + 24f0: 00140000 andseq r0, r4, r0 + 24f4: 14100000 ldrne r0, [r0] + 24f8: 47000001 strmi r0, [r0, -r1] + 24fc: 74537465 ldrbvc r7, [r3], #-1125 + 2500: 6e656c72 mcrvs 12, 3, r6, cr5, cr2, {3} + 2504: 0a9f0100 beq fe7c290c + 2508: f3100010 vqadd.u16 d0, d0, d0 + 250c: 00000007 andeq r0, r0, r7 + 2510: 74537011 ldrbvc r7, [r3], #-17 + 2514: 676e6972 undefined + 2518: 0aa10100 beq fe842920 + 251c: 04051012 streq r1, [r5], #-18 + 2520: 63120000 tstvs r2, #0 ; 0x0 + 2524: 746e756f strbtvc r7, [lr], #-1391 + 2528: 0aa40100 beq fe902930 + 252c: 07e5100a strbeq r1, [r5, sl]! + 2530: 6c120000 ldcvs 0, cr0, [r2], {0} + 2534: 74676e65 strbtvc r6, [r7], #-3685 + 2538: a4010068 strge r0, [r1], #-104 + 253c: e510130a ldr r1, [r0, #-778] + 2540: 00000007 andeq r0, r0, r7 + 2544: 00000000 andeq r0, r0, r0 + 2548: 000000dc ldrdeq r0, [r0], -ip + 254c: 00840003 addeq r0, r4, r3 + 2550: 01040000 tsteq r4, r0 + 2554: 445c3a43 ldrbmi r3, [ip], #-2627 + 2558: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 255c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2560: 646e6120 strbtvs r6, [lr], #-288 + 2564: 74655320 strbtvc r5, [r5], #-800 + 2568: 676e6974 undefined + 256c: 616d5c73 smcvs 54723 + 2570: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2574: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2578: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 257c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2580: 775c7374 undefined + 2584: 6f632d73 svcvs 0x00632d73 + 2588: 6f72746e svcvs 0x0072746e + 258c: 65575c6c ldrbvs r5, [r7, #-3180] + 2590: 65687461 strbvs r7, [r8, #-1121]! + 2594: 74532072 ldrbvc r2, [r3], #-114 + 2598: 6f697461 svcvs 0x00697461 + 259c: 6f43206e svcvs 0x0043206e + 25a0: 6f72746e svcvs 0x0072746e + 25a4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 25a8: 7070415c rsbsvc r4, r0, ip, asr r1 + 25ac: 6163696c cmnvs r3, ip, ror #18 + 25b0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 25b4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 25b8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 25bc: 445c7365 ldrbmi r7, [ip], #-869 + 25c0: 6c707369 ldclvs 3, cr7, [r0], #-420 + 25c4: 632e7961 teqvs lr, #1589248 ; 0x184000 + 25c8: 52414900 subpl r4, r1, #0 ; 0x0 + 25cc: 534e4120 movtpl r4, #57632 ; 0xe120 + 25d0: 2f432049 svccs 0x00432049 + 25d4: 202b2b43 eorcs r2, fp, r3, asr #22 + 25d8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 25dc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 25e0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 25e4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 25e8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 25ec: 572f3539 undefined + 25f0: 4b203233 blmi 80eec4 + 25f4: 534b4349 movtpl r4, #45897 ; 0xb349 + 25f8: 54524154 ldrbpl r4, [r2], #-340 + 25fc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2600: 4d524120 ldfmie f4, [r2, #-128] + 2604: 03800100 orreq r0, r0, #0 ; 0x0 + 2608: 00140000 andseq r0, r4, r0 + 260c: dc130000 ldcle 0, cr0, [r3], {0} + 2610: 53000000 movwpl r0, #0 ; 0x0 + 2614: 754f7465 strbvc r7, [pc, #-1125] ; 21b7 <__USR_stack_size+0x19b7> + 2618: 74757074 ldrbtvc r7, [r5], #-116 + 261c: 099e0100 ldmibeq lr, {r8} + 2620: 0000000d andeq r0, r0, sp + 2624: 00000000 andeq r0, r0, r0 + 2628: 000000e8 andeq r0, r0, r8, ror #1 + 262c: 00840003 addeq r0, r4, r3 + 2630: 01040000 tsteq r4, r0 + 2634: 445c3a43 ldrbmi r3, [ip], #-2627 + 2638: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 263c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2640: 646e6120 strbtvs r6, [lr], #-288 + 2644: 74655320 strbtvc r5, [r5], #-800 + 2648: 676e6974 undefined + 264c: 616d5c73 smcvs 54723 + 2650: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2654: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2658: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 265c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2660: 775c7374 undefined + 2664: 6f632d73 svcvs 0x00632d73 + 2668: 6f72746e svcvs 0x0072746e + 266c: 65575c6c ldrbvs r5, [r7, #-3180] + 2670: 65687461 strbvs r7, [r8, #-1121]! + 2674: 74532072 ldrbvc r2, [r3], #-114 + 2678: 6f697461 svcvs 0x00697461 + 267c: 6f43206e svcvs 0x0043206e + 2680: 6f72746e svcvs 0x0072746e + 2684: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2688: 7070415c rsbsvc r4, r0, ip, asr r1 + 268c: 6163696c cmnvs r3, ip, ror #18 + 2690: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2694: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2698: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 269c: 445c7365 ldrbmi r7, [ip], #-869 + 26a0: 6c707369 ldclvs 3, cr7, [r0], #-420 + 26a4: 632e7961 teqvs lr, #1589248 ; 0x184000 + 26a8: 52414900 subpl r4, r1, #0 ; 0x0 + 26ac: 534e4120 movtpl r4, #57632 ; 0xe120 + 26b0: 2f432049 svccs 0x00432049 + 26b4: 202b2b43 eorcs r2, fp, r3, asr #22 + 26b8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 26bc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 26c0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 26c4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 26c8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 26cc: 572f3539 undefined + 26d0: 4b203233 blmi 80efa4 + 26d4: 534b4349 movtpl r4, #45897 ; 0xb349 + 26d8: 54524154 ldrbpl r4, [r2], #-340 + 26dc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 26e0: 4d524120 ldfmie f4, [r2, #-128] + 26e4: 03800100 orreq r0, r0, #0 ; 0x0 + 26e8: 00140000 andseq r0, r4, r0 + 26ec: ea130000 b 4c26f4 + 26f0: 53000000 movwpl r0, #0 ; 0x0 + 26f4: 44646e65 strbtmi r6, [r4], #-3685 + 26f8: 00617461 rsbeq r7, r1, r1, ror #8 + 26fc: 0d08e101 stfeqd f6, [r8, #-4] + 2700: 64110000 ldrvs r0, [r1] + 2704: 00617461 rsbeq r7, r1, r1, ror #8 + 2708: 1e08e101 mvfnee f6, f1 + 270c: 0007f310 andeq pc, r7, r0, lsl r3 + 2710: 00000000 andeq r0, r0, r0 + 2714: 000000f4 strdeq r0, [r0], -r4 + 2718: 00840003 addeq r0, r4, r3 + 271c: 01040000 tsteq r4, r0 + 2720: 445c3a43 ldrbmi r3, [ip], #-2627 + 2724: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2728: 73746e65 cmnvc r4, #1616 ; 0x650 + 272c: 646e6120 strbtvs r6, [lr], #-288 + 2730: 74655320 strbtvc r5, [r5], #-800 + 2734: 676e6974 undefined + 2738: 616d5c73 smcvs 54723 + 273c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2740: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2744: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2748: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 274c: 775c7374 undefined + 2750: 6f632d73 svcvs 0x00632d73 + 2754: 6f72746e svcvs 0x0072746e + 2758: 65575c6c ldrbvs r5, [r7, #-3180] + 275c: 65687461 strbvs r7, [r8, #-1121]! + 2760: 74532072 ldrbvc r2, [r3], #-114 + 2764: 6f697461 svcvs 0x00697461 + 2768: 6f43206e svcvs 0x0043206e + 276c: 6f72746e svcvs 0x0072746e + 2770: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2774: 7070415c rsbsvc r4, r0, ip, asr r1 + 2778: 6163696c cmnvs r3, ip, ror #18 + 277c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2780: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2784: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2788: 445c7365 ldrbmi r7, [ip], #-869 + 278c: 6c707369 ldclvs 3, cr7, [r0], #-420 + 2790: 632e7961 teqvs lr, #1589248 ; 0x184000 + 2794: 52414900 subpl r4, r1, #0 ; 0x0 + 2798: 534e4120 movtpl r4, #57632 ; 0xe120 + 279c: 2f432049 svccs 0x00432049 + 27a0: 202b2b43 eorcs r2, fp, r3, asr #22 + 27a4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 27a8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 27ac: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 27b0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 27b4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 27b8: 572f3539 undefined + 27bc: 4b203233 blmi 80f090 + 27c0: 534b4349 movtpl r4, #45897 ; 0xb349 + 27c4: 54524154 ldrbpl r4, [r2], #-340 + 27c8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 27cc: 4d524120 ldfmie f4, [r2, #-128] + 27d0: 03800100 orreq r0, r0, #0 ; 0x0 + 27d4: 00140000 andseq r0, r4, r0 + 27d8: f6100000 undefined instruction 0xf6100000 + 27dc: 52000000 andpl r0, r0, #0 ; 0x0 + 27e0: 44646165 strbtmi r6, [r4], #-357 + 27e4: 00617461 rsbeq r7, r1, r1, ror #8 + 27e8: 1009d601 andne sp, r9, r1, lsl #12 + 27ec: 07f31000 ldrbeq r1, [r3, r0]! + 27f0: 12000000 andne r0, r0, #0 ; 0x0 + 27f4: 75746552 ldrbvc r6, [r4, #-1362]! + 27f8: 61566e72 cmpvs r6, r2, ror lr + 27fc: 0065756c rsbeq r7, r5, ip, ror #10 + 2800: 0b09d801 bleq 27880c + 2804: 0007f310 andeq pc, r7, r0, lsl r3 + 2808: 00000000 andeq r0, r0, r0 + 280c: 00000104 andeq r0, r0, r4, lsl #2 + 2810: 00840003 addeq r0, r4, r3 + 2814: 01040000 tsteq r4, r0 + 2818: 445c3a43 ldrbmi r3, [ip], #-2627 + 281c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2820: 73746e65 cmnvc r4, #1616 ; 0x650 + 2824: 646e6120 strbtvs r6, [lr], #-288 + 2828: 74655320 strbtvc r5, [r5], #-800 + 282c: 676e6974 undefined + 2830: 616d5c73 smcvs 54723 + 2834: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2838: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 283c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2840: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2844: 775c7374 undefined + 2848: 6f632d73 svcvs 0x00632d73 + 284c: 6f72746e svcvs 0x0072746e + 2850: 65575c6c ldrbvs r5, [r7, #-3180] + 2854: 65687461 strbvs r7, [r8, #-1121]! + 2858: 74532072 ldrbvc r2, [r3], #-114 + 285c: 6f697461 svcvs 0x00697461 + 2860: 6f43206e svcvs 0x0043206e + 2864: 6f72746e svcvs 0x0072746e + 2868: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 286c: 7070415c rsbsvc r4, r0, ip, asr r1 + 2870: 6163696c cmnvs r3, ip, ror #18 + 2874: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2878: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 287c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2880: 445c7365 ldrbmi r7, [ip], #-869 + 2884: 6c707369 ldclvs 3, cr7, [r0], #-420 + 2888: 632e7961 teqvs lr, #1589248 ; 0x184000 + 288c: 52414900 subpl r4, r1, #0 ; 0x0 + 2890: 534e4120 movtpl r4, #57632 ; 0xe120 + 2894: 2f432049 svccs 0x00432049 + 2898: 202b2b43 eorcs r2, fp, r3, asr #22 + 289c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 28a0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 28a4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 28a8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 28ac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 28b0: 572f3539 undefined + 28b4: 4b203233 blmi 80f188 + 28b8: 534b4349 movtpl r4, #45897 ; 0xb349 + 28bc: 54524154 ldrbpl r4, [r2], #-340 + 28c0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 28c4: 4d524120 ldfmie f4, [r2, #-128] + 28c8: 03800100 orreq r0, r0, #0 ; 0x0 + 28cc: 00140000 andseq r0, r4, r0 + 28d0: 04100000 ldreq r0, [r0] + 28d4: 47000001 strmi r0, [r0, -r1] + 28d8: 61447465 cmpvs r4, r5, ror #8 + 28dc: 01006174 tsteq r0, r4, ror r1 + 28e0: 001009f1 ldrsheq r0, [r0], -r1 + 28e4: 0007f310 andeq pc, r7, r0, lsl r3 + 28e8: 52120000 andspl r0, r2, #0 ; 0x0 + 28ec: 72757465 rsbsvc r7, r5, #1694498816 ; 0x65000000 + 28f0: 6c61566e stclvs 6, cr5, [r1], #-440 + 28f4: 01006575 tsteq r0, r5, ror r5 + 28f8: 101409f3 ldrshne r0, [r4], -r3 + 28fc: 000007f3 strdeq r0, [r0], -r3 + 2900: 6d657412 cfstrdvs mvd7, [r5, #-72]! + 2904: 89010070 stmdbhi r1, {r4, r5, r6} + 2908: 2f100e0a svccs 0x00100e0a + 290c: 00000008 andeq r0, r0, r8 + 2910: 00000000 andeq r0, r0, r0 + 2914: 0000011c andeq r0, r0, ip, lsl r1 + 2918: 00840003 addeq r0, r4, r3 + 291c: 01040000 tsteq r4, r0 + 2920: 445c3a43 ldrbmi r3, [ip], #-2627 + 2924: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2928: 73746e65 cmnvc r4, #1616 ; 0x650 + 292c: 646e6120 strbtvs r6, [lr], #-288 + 2930: 74655320 strbtvc r5, [r5], #-800 + 2934: 676e6974 undefined + 2938: 616d5c73 smcvs 54723 + 293c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2940: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2944: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2948: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 294c: 775c7374 undefined + 2950: 6f632d73 svcvs 0x00632d73 + 2954: 6f72746e svcvs 0x0072746e + 2958: 65575c6c ldrbvs r5, [r7, #-3180] + 295c: 65687461 strbvs r7, [r8, #-1121]! + 2960: 74532072 ldrbvc r2, [r3], #-114 + 2964: 6f697461 svcvs 0x00697461 + 2968: 6f43206e svcvs 0x0043206e + 296c: 6f72746e svcvs 0x0072746e + 2970: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2974: 7070415c rsbsvc r4, r0, ip, asr r1 + 2978: 6163696c cmnvs r3, ip, ror #18 + 297c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2980: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2984: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2988: 445c7365 ldrbmi r7, [ip], #-869 + 298c: 6c707369 ldclvs 3, cr7, [r0], #-420 + 2990: 632e7961 teqvs lr, #1589248 ; 0x184000 + 2994: 52414900 subpl r4, r1, #0 ; 0x0 + 2998: 534e4120 movtpl r4, #57632 ; 0xe120 + 299c: 2f432049 svccs 0x00432049 + 29a0: 202b2b43 eorcs r2, fp, r3, asr #22 + 29a4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 29a8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 29ac: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 29b0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 29b4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 29b8: 572f3539 undefined + 29bc: 4b203233 blmi 80f290 + 29c0: 534b4349 movtpl r4, #45897 ; 0xb349 + 29c4: 54524154 ldrbpl r4, [r2], #-340 + 29c8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 29cc: 4d524120 ldfmie f4, [r2, #-128] + 29d0: 03800100 orreq r0, r0, #0 ; 0x0 + 29d4: 00140000 andseq r0, r4, r0 + 29d8: 1e130000 wxorne wr0, wr3, wr0 + 29dc: 49000001 stmdbmi r0, {r0} + 29e0: 4474696e ldrbtmi r6, [r4], #-2414 + 29e4: 6c707369 ldclvs 3, cr7, [r0], #-420 + 29e8: 72577961 subsvc r7, r7, #1589248 ; 0x184000 + 29ec: 00657469 rsbeq r7, r5, r9, ror #8 + 29f0: 0d09be01 stceq 14, cr11, [r9, #-4] + 29f4: 78110000 ldmdavc r1, {} + 29f8: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 + 29fc: 6f6f4374 svcvs 0x006f4374 + 2a00: 01006472 tsteq r0, r2, ror r4 + 2a04: 102609be strhne r0, [r6], -lr + 2a08: 000007f3 strdeq r0, [r0], -r3 + 2a0c: 74537911 ldrbvc r7, [r3], #-2321 + 2a10: 43747261 cmnmi r4, #268435462 ; 0x10000006 + 2a14: 64726f6f ldrbtvs r6, [r2], #-3951 + 2a18: 09be0100 ldmibeq lr!, {r8} + 2a1c: 07f3103b undefined + 2a20: 70120000 andsvc r0, r2, r0 + 2a24: 00656761 rsbeq r6, r5, r1, ror #14 + 2a28: 0b09c101 bleq 272e34 + 2a2c: 0007f310 andeq pc, r7, r0, lsl r3 + 2a30: 00000000 andeq r0, r0, r0 + 2a34: 0000019c muleq r0, ip, r1 + 2a38: 02000003 andeq r0, r0, #3 ; 0x3 + 2a3c: 01040000 tsteq r4, r0 + 2a40: 445c3a43 ldrbmi r3, [ip], #-2627 + 2a44: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2a48: 73746e65 cmnvc r4, #1616 ; 0x650 + 2a4c: 646e6120 strbtvs r6, [lr], #-288 + 2a50: 74655320 strbtvc r5, [r5], #-800 + 2a54: 676e6974 undefined + 2a58: 616d5c73 smcvs 54723 + 2a5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2a60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2a64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2a68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2a6c: 775c7374 undefined + 2a70: 6f632d73 svcvs 0x00632d73 + 2a74: 6f72746e svcvs 0x0072746e + 2a78: 65575c6c ldrbvs r5, [r7, #-3180] + 2a7c: 65687461 strbvs r7, [r8, #-1121]! + 2a80: 74532072 ldrbvc r2, [r3], #-114 + 2a84: 6f697461 svcvs 0x00697461 + 2a88: 6f43206e svcvs 0x0043206e + 2a8c: 6f72746e svcvs 0x0072746e + 2a90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2a94: 414d535c cmpmi sp, ip, asr r3 + 2a98: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} + 2a9c: 66726574 undefined + 2aa0: 5c656361 stclpl 3, cr6, [r5], #-388 + 2aa4: 626f6c47 rsbvs r6, pc, #18176 ; 0x4700 + 2aa8: 65446c61 strbvs r6, [r4, #-3169] + 2aac: 682e7366 stmdavs lr!, {r1, r2, r5, r6, r8, r9, ip, sp, lr} + 2ab0: 52414900 subpl r4, r1, #0 ; 0x0 + 2ab4: 534e4120 movtpl r4, #57632 ; 0xe120 + 2ab8: 2f432049 svccs 0x00432049 + 2abc: 202b2b43 eorcs r2, fp, r3, asr #22 + 2ac0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 2ac4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 2ac8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 2acc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 2ad0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 2ad4: 572f3539 undefined + 2ad8: 4b203233 blmi 80f3ac + 2adc: 534b4349 movtpl r4, #45897 ; 0xb349 + 2ae0: 54524154 ldrbpl r4, [r2], #-340 + 2ae4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2ae8: 4d524120 ldfmie f4, [r2, #-128] + 2aec: 13e40100 mvnne r0, #0 ; 0x0 + 2af0: 003c0000 eorseq r0, ip, r0 + 2af4: 9c090000 stcls 0, cr0, [r9], {0} + 2af8: 46000001 strmi r0, [r0], -r1 + 2afc: 52636e75 rsbpl r6, r3, #1872 ; 0x750 + 2b00: 72757465 rsbsvc r7, r5, #1694498816 ; 0x65000000 + 2b04: 61745f6e cmnvs r4, lr, ror #30 + 2b08: 08010067 stmdaeq r1, {r0, r1, r2, r5, r6} + 2b0c: 63755367 cmnvs r5, #-1677721599 ; 0x9c000001 + 2b10: 73736563 cmnvc r3, #415236096 ; 0x18c00000 + 2b14: 0000635f andeq r6, r0, pc, asr r3 + 2b18: 61466708 cmpvs r6, r8, lsl #14 + 2b1c: 754f6c69 strbvc r6, [pc, #-3177] ; 1ebb <__USR_stack_size+0x16bb> + 2b20: 52664f74 rsbpl r4, r6, #464 ; 0x1d0 + 2b24: 65676e61 strbvs r6, [r7, #-3681]! + 2b28: 0100635f tsteq r0, pc, asr r3 + 2b2c: 61466708 cmpvs r6, r8, lsl #14 + 2b30: 6f4e6c69 svcvs 0x004e6c69 + 2b34: 6f736552 svcvs 0x00736552 + 2b38: 65637275 strbvs r7, [r3, #-629]! + 2b3c: 61764173 cmnvs r6, r3, ror r1 + 2b40: 62616c69 rsbvs r6, r1, #26880 ; 0x6900 + 2b44: 635f656c cmpvs pc, #452984832 ; 0x1b000000 + 2b48: 67080200 strvs r0, [r8, -r0, lsl #4] + 2b4c: 6c696146 stfvse f6, [r9], #-280 + 2b50: 61566f4e cmpvs r6, lr, asr #30 + 2b54: 4364696c cmnmi r4, #1769472 ; 0x1b0000 + 2b58: 69646e6f stmdbvs r4!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 2b5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2b60: 0300635f movweq r6, #863 ; 0x35f + 2b64: 61466708 cmpvs r6, r8, lsl #14 + 2b68: 75426c69 strbvc r6, [r2, #-3177] + 2b6c: 635f7973 cmpvs pc, #1884160 ; 0x1cc000 + 2b70: 67080400 strvs r0, [r8, -r0, lsl #8] + 2b74: 6c696146 stfvse f6, [r9], #-280 + 2b78: 72726f43 rsbsvc r6, r2, #268 ; 0x10c + 2b7c: 65747075 ldrbvs r7, [r4, #-117]! + 2b80: 08050064 stmdaeq r5, {r2, r5, r6} + 2b84: 69614667 stmdbvs r1!, {r0, r1, r2, r5, r6, r9, sl, lr}^ + 2b88: 7365546c cmnvc r5, #1811939328 ; 0x6c000000 + 2b8c: 00635f74 rsbeq r5, r3, r4, ror pc + 2b90: 41670806 cmnmi r7, r6, lsl #16 + 2b94: 65687475 strbvs r7, [r8, #-1141]! + 2b98: 6369746e cmnvs r9, #1845493760 ; 0x6e000000 + 2b9c: 6f697461 svcvs 0x00697461 + 2ba0: 6961466e stmdbvs r1!, {r1, r2, r3, r5, r6, r9, sl, lr}^ + 2ba4: 5f64656c svcpl 0x0064656c + 2ba8: 08070063 stmdaeq r7, {r0, r1, r5, r6} + 2bac: 74754167 ldrbtvc r4, [r5], #-359 + 2bb0: 746e6568 strbtvc r6, [lr], #-1384 + 2bb4: 74616369 strbtvc r6, [r1], #-873 + 2bb8: 506e6f69 rsbpl r6, lr, r9, ror #30 + 2bbc: 65737361 ldrbvs r7, [r3, #-865]! + 2bc0: 00635f64 rsbeq r5, r3, r4, ror #30 + 2bc4: 46670808 strbtmi r0, [r7], -r8, lsl #16 + 2bc8: 5f6c6961 svcpl 0x006c6961 + 2bcc: 00090063 andeq r0, r9, r3, rrx + 2bd0: 00000000 andeq r0, r0, r0 + 2bd4: 00000048 andeq r0, r0, r8, asr #32 + 2bd8: 02c80003 sbceq r0, r8, #3 ; 0x3 + 2bdc: 01040000 tsteq r4, r0 + 2be0: 74696e49 strbtvc r6, [r9], #-3657 + 2be4: 5241492d subpl r4, r1, #737280 ; 0xb4000 + 2be8: 52414900 subpl r4, r1, #0 ; 0x0 + 2bec: 73734120 cmnvc r3, #8 ; 0x8 + 2bf0: 6c626d65 stclvs 13, cr6, [r2], #-404 + 2bf4: 56207265 strtpl r7, [r0], -r5, ror #4 + 2bf8: 30332e35 eorscc r2, r3, r5, lsr lr + 2bfc: 352e322e strcc r3, [lr, #-558]! + 2c00: 35393231 ldrcc r3, [r9, #-561]! + 2c04: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 2c08: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2c0c: 4d524120 ldfmie f4, [r2, #-128] + 2c10: 40000000 andmi r0, r0, r0 + 2c14: 40002000 andmi r2, r0, r0 + 2c18: 00162400 andseq r2, r6, r0, lsl #8 + 2c1c: 00000000 andeq r0, r0, r0 + 2c20: 00000048 andeq r0, r0, r8, asr #32 + 2c24: 02c80003 sbceq r0, r8, #3 ; 0x3 + 2c28: 01040000 tsteq r4, r0 + 2c2c: 74696e49 strbtvc r6, [r9], #-3657 + 2c30: 5241492d subpl r4, r1, #737280 ; 0xb4000 + 2c34: 52414900 subpl r4, r1, #0 ; 0x0 + 2c38: 73734120 cmnvc r3, #8 ; 0x8 + 2c3c: 6c626d65 stclvs 13, cr6, [r2], #-404 + 2c40: 56207265 strtpl r7, [r0], -r5, ror #4 + 2c44: 30332e35 eorscc r2, r3, r5, lsr lr + 2c48: 352e322e strcc r3, [lr, #-558]! + 2c4c: 35393231 ldrcc r3, [r9, #-561]! + 2c50: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 2c54: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2c58: 4d524120 ldfmie f4, [r2, #-128] + 2c5c: 4034e400 eorsmi lr, r4, r0, lsl #8 + 2c60: 40360800 eorsmi r0, r6, r0, lsl #16 + 2c64: 0016d800 andseq sp, r6, r0, lsl #16 + 2c68: 00000000 andeq r0, r0, r0 + 2c6c: 000000c4 andeq r0, r0, r4, asr #1 + 2c70: 02d80003 sbcseq r0, r8, #3 ; 0x3 + 2c74: 01040000 tsteq r4, r0 + 2c78: 445c3a43 ldrbmi r3, [ip], #-2627 + 2c7c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2c80: 73746e65 cmnvc r4, #1616 ; 0x650 + 2c84: 646e6120 strbtvs r6, [lr], #-288 + 2c88: 74655320 strbtvc r5, [r5], #-800 + 2c8c: 676e6974 undefined + 2c90: 616d5c73 smcvs 54723 + 2c94: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2c98: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2c9c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2ca0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2ca4: 775c7374 undefined + 2ca8: 6f632d73 svcvs 0x00632d73 + 2cac: 6f72746e svcvs 0x0072746e + 2cb0: 65575c6c ldrbvs r5, [r7, #-3180] + 2cb4: 65687461 strbvs r7, [r8, #-1121]! + 2cb8: 74532072 ldrbvc r2, [r3], #-114 + 2cbc: 6f697461 svcvs 0x00697461 + 2cc0: 6f43206e svcvs 0x0043206e + 2cc4: 6f72746e svcvs 0x0072746e + 2cc8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2ccc: 7070415c rsbsvc r4, r0, ip, asr r1 + 2cd0: 6163696c cmnvs r3, ip, ror #18 + 2cd4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2cd8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2cdc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2ce0: 4b5c7365 blmi 171fa7c + 2ce4: 6f627965 svcvs 0x00627965 + 2ce8: 2e647261 cdpcs 2, 6, cr7, cr4, cr1, {3} + 2cec: 41490063 cmpmi r9, r3, rrx + 2cf0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 2cf4: 43204953 teqmi r0, #1359872 ; 0x14c000 + 2cf8: 2b2b432f blcs ad39bc + 2cfc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 2d00: 656c6970 strbvs r6, [ip, #-2416]! + 2d04: 35562072 ldrbcc r2, [r6, #-114] + 2d08: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 2d0c: 31332e32 teqcc r3, r2, lsr lr + 2d10: 2f353932 svccs 0x00353932 + 2d14: 20323357 eorscs r3, r2, r7, asr r3 + 2d18: 4b43494b blmi 10d524c + 2d1c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 2d20: 6f662054 svcvs 0x00662054 + 2d24: 52412072 subpl r2, r1, #114 ; 0x72 + 2d28: c801004d stmdagt r1, {r0, r2, r3, r6} + 2d2c: 60000017 andvs r0, r0, r7, lsl r0 + 2d30: 00000000 andeq r0, r0, r0 + 2d34: 000000f4 strdeq r0, [r0], -r4 + 2d38: 02d80003 sbcseq r0, r8, #3 ; 0x3 + 2d3c: 02040000 andeq r0, r4, #0 ; 0x0 + 2d40: 445c3a43 ldrbmi r3, [ip], #-2627 + 2d44: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2d48: 73746e65 cmnvc r4, #1616 ; 0x650 + 2d4c: 646e6120 strbtvs r6, [lr], #-288 + 2d50: 74655320 strbtvc r5, [r5], #-800 + 2d54: 676e6974 undefined + 2d58: 616d5c73 smcvs 54723 + 2d5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2d60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2d64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2d68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2d6c: 775c7374 undefined + 2d70: 6f632d73 svcvs 0x00632d73 + 2d74: 6f72746e svcvs 0x0072746e + 2d78: 65575c6c ldrbvs r5, [r7, #-3180] + 2d7c: 65687461 strbvs r7, [r8, #-1121]! + 2d80: 74532072 ldrbvc r2, [r3], #-114 + 2d84: 6f697461 svcvs 0x00697461 + 2d88: 6f43206e svcvs 0x0043206e + 2d8c: 6f72746e svcvs 0x0072746e + 2d90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2d94: 7070415c rsbsvc r4, r0, ip, asr r1 + 2d98: 6163696c cmnvs r3, ip, ror #18 + 2d9c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2da0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2da4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2da8: 4b5c7365 blmi 171fb44 + 2dac: 6f627965 svcvs 0x00627965 + 2db0: 2e647261 cdpcs 2, 6, cr7, cr4, cr1, {3} + 2db4: 41490063 cmpmi r9, r3, rrx + 2db8: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 2dbc: 43204953 teqmi r0, #1359872 ; 0x14c000 + 2dc0: 2b2b432f blcs ad3a84 + 2dc4: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 2dc8: 656c6970 strbvs r6, [ip, #-2416]! + 2dcc: 35562072 ldrbcc r2, [r6, #-114] + 2dd0: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 2dd4: 31332e32 teqcc r3, r2, lsr lr + 2dd8: 2f353932 svccs 0x00353932 + 2ddc: 20323357 eorscs r3, r2, r7, asr r3 + 2de0: 4b43494b blmi 10d5314 + 2de4: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 2de8: 6f662054 svcvs 0x00662054 + 2dec: 52412072 subpl r2, r1, #114 ; 0x72 + 2df0: f001004d undefined instruction 0xf001004d + 2df4: 3c00403c stccc 0, cr4, [r0], {60} + 2df8: b400403d strlt r4, [r0], #-61 + 2dfc: 64000019 strvs r0, [r0], #-25 + 2e00: 10000013 andne r0, r0, r3, lsl r0 + 2e04: 00002c77 andeq r2, r0, r7, ror ip + 2e08: 0000f503 andeq pc, r0, r3, lsl #10 + 2e0c: 47624b00 strbmi r4, [r2, -r0, lsl #22]! + 2e10: 496f6970 stmdbmi pc!, {r4, r5, r6, r8, fp, sp, lr}^ + 2e14: 0074696e rsbseq r6, r4, lr, ror #18 + 2e18: 01063d01 tsteq r6, r1, lsl #26 + 2e1c: 00000de8 andeq r0, r0, r8, ror #27 + 2e20: 00403cf0 strdeq r3, [r0], #-192 + 2e24: 00403d3c subeq r3, r0, ip, lsr sp + 2e28: 00000000 andeq r0, r0, r0 + 2e2c: 0000017c andeq r0, r0, ip, ror r1 + 2e30: 03180003 tsteq r8, #3 ; 0x3 + 2e34: 01040000 tsteq r4, r0 + 2e38: 445c3a43 ldrbmi r3, [ip], #-2627 + 2e3c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2e40: 73746e65 cmnvc r4, #1616 ; 0x650 + 2e44: 646e6120 strbtvs r6, [lr], #-288 + 2e48: 74655320 strbtvc r5, [r5], #-800 + 2e4c: 676e6974 undefined + 2e50: 616d5c73 smcvs 54723 + 2e54: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2e58: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2e5c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2e60: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2e64: 775c7374 undefined + 2e68: 6f632d73 svcvs 0x00632d73 + 2e6c: 6f72746e svcvs 0x0072746e + 2e70: 65575c6c ldrbvs r5, [r7, #-3180] + 2e74: 65687461 strbvs r7, [r8, #-1121]! + 2e78: 74532072 ldrbvc r2, [r3], #-114 + 2e7c: 6f697461 svcvs 0x00697461 + 2e80: 6f43206e svcvs 0x0043206e + 2e84: 6f72746e svcvs 0x0072746e + 2e88: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2e8c: 7070415c rsbsvc r4, r0, ip, asr r1 + 2e90: 6163696c cmnvs r3, ip, ror #18 + 2e94: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2e98: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2e9c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2ea0: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 + 2ea4: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 2ea8: 41490063 cmpmi r9, r3, rrx + 2eac: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 2eb0: 43204953 teqmi r0, #1359872 ; 0x14c000 + 2eb4: 2b2b432f blcs ad3b78 + 2eb8: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 2ebc: 656c6970 strbvs r6, [ip, #-2416]! + 2ec0: 35562072 ldrbcc r2, [r6, #-114] + 2ec4: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 2ec8: 31332e32 teqcc r3, r2, lsr lr + 2ecc: 2f353932 svccs 0x00353932 + 2ed0: 20323357 eorscs r3, r2, r7, asr r3 + 2ed4: 4b43494b blmi 10d5408 + 2ed8: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 2edc: 6f662054 svcvs 0x00662054 + 2ee0: 52412072 subpl r2, r1, #114 ; 0x72 + 2ee4: 6801004d stmdavs r1, {r0, r2, r3, r6} + 2ee8: 8400001a strhi r0, [r0], #-26 + 2eec: 03000000 movweq r0, #0 ; 0x0 + 2ef0: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 2ef4: 64656e67 strbtvs r6, [r5], #-3687 + 2ef8: 61686320 cmnvs r8, r0, lsr #6 + 2efc: 08010072 stmdaeq r1, {r1, r4, r5, r6} + 2f00: 67697303 strbvs r7, [r9, -r3, lsl #6]! + 2f04: 2064656e rsbcs r6, r4, lr, ror #10 + 2f08: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 + 2f0c: 0a060100 beq 183314 + 2f10: 0000012a andeq r0, r0, sl, lsr #2 + 2f14: 47670b01 strbmi r0, [r7, -r1, lsl #22]! + 2f18: 506f6970 rsbpl r6, pc, r0, ror r9 + 2f1c: 74536e69 ldrbvc r6, [r3], #-3689 + 2f20: 4c657461 cfstrdmi mvd7, [r5], #-388 + 2f24: 635f776f cmpvs pc, #29097984 ; 0x1bc0000 + 2f28: 670b0000 strvs r0, [fp, -r0] + 2f2c: 6f697047 svcvs 0x00697047 + 2f30: 536e6950 cmnpl lr, #1310720 ; 0x140000 + 2f34: 65746174 ldrbvs r6, [r4, #-372]! + 2f38: 68676948 stmdavs r7!, {r3, r6, r8, fp, sp, lr}^ + 2f3c: 0100635f tsteq r0, pc, asr r3 + 2f40: 7047670b subvc r6, r7, fp, lsl #14 + 2f44: 69506f69 ldmdbvs r0, {r0, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 2f48: 6174536e cmnvs r4, lr, ror #6 + 2f4c: 614d6574 cmpvs sp, r4, ror r5 + 2f50: 00635f78 rsbeq r5, r3, r8, ror pc + 2f54: 470c0002 strmi r0, [ip, -r2] + 2f58: 506f6970 rsbpl r6, pc, r0, ror r9 + 2f5c: 74536e69 ldrbvc r6, [r3], #-3689 + 2f60: 5f657461 svcpl 0x00657461 + 2f64: e3150074 tst r5, #116 ; 0x74 + 2f68: 03390501 teqeq r9, #4194304 ; 0x400000 + 2f6c: 746e690c strbtvc r6, [lr], #-2316 + 2f70: 00745f38 rsbseq r5, r4, r8, lsr pc + 2f74: 0301d415 movweq sp, #5141 ; 0x1415 + 2f78: 750c1919 strvc r1, [ip, #-2329] + 2f7c: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ + 2f80: 1500745f strne r7, [r0, #-1119] + 2f84: 1a0301c3 bne c3698 + 2f88: 454c0c19 strbmi r0, [ip, #-3097] + 2f8c: 00745f44 rsbseq r5, r4, r4, asr #30 + 2f90: 0202ce15 andeq ip, r2, #336 ; 0x150 + 2f94: 4c0c113a stfmis f1, [ip], {58} + 2f98: 74536465 ldrbvc r6, [r3], #-1125 + 2f9c: 5f657461 svcpl 0x00657461 + 2fa0: ce150074 mrcgt 0, 0, r0, cr5, cr4, {3} + 2fa4: 11470202 cmpne r7, r2, lsl #4 + 2fa8: 00000000 andeq r0, r0, r0 + 2fac: 00000100 andeq r0, r0, r0, lsl #2 + 2fb0: 03180003 tsteq r8, #3 ; 0x3 + 2fb4: 02040000 andeq r0, r4, #0 ; 0x0 + 2fb8: 445c3a43 ldrbmi r3, [ip], #-2627 + 2fbc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2fc0: 73746e65 cmnvc r4, #1616 ; 0x650 + 2fc4: 646e6120 strbtvs r6, [lr], #-288 + 2fc8: 74655320 strbtvc r5, [r5], #-800 + 2fcc: 676e6974 undefined + 2fd0: 616d5c73 smcvs 54723 + 2fd4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2fd8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2fdc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2fe0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2fe4: 775c7374 undefined + 2fe8: 6f632d73 svcvs 0x00632d73 + 2fec: 6f72746e svcvs 0x0072746e + 2ff0: 65575c6c ldrbvs r5, [r7, #-3180] + 2ff4: 65687461 strbvs r7, [r8, #-1121]! + 2ff8: 74532072 ldrbvc r2, [r3], #-114 + 2ffc: 6f697461 svcvs 0x00697461 + 3000: 6f43206e svcvs 0x0043206e + 3004: 6f72746e svcvs 0x0072746e + 3008: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 300c: 7070415c rsbsvc r4, r0, ip, asr r1 + 3010: 6163696c cmnvs r3, ip, ror #18 + 3014: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3018: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 301c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 3020: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 + 3024: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 3028: 41490063 cmpmi r9, r3, rrx + 302c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3030: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3034: 2b2b432f blcs ad3cf8 + 3038: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 303c: 656c6970 strbvs r6, [ip, #-2416]! + 3040: 35562072 ldrbcc r2, [r6, #-114] + 3044: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3048: 31332e32 teqcc r3, r2, lsr lr + 304c: 2f353932 svccs 0x00353932 + 3050: 20323357 eorscs r3, r2, r7, asr r3 + 3054: 4b43494b blmi 10d5588 + 3058: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 305c: 6f662054 svcvs 0x00662054 + 3060: 52412072 subpl r2, r1, #114 ; 0x72 + 3064: 0801004d stmdaeq r1, {r0, r2, r3, r6} + 3068: 24004036 strcs r4, [r0], #-54 + 306c: 4c004036 stcmi 0, cr4, [r0], {54} + 3070: fd00001d stc2 0, cr0, [r0, #-116] + 3074: 10000013 andne r0, r0, r3, lsl r0 + 3078: 00002e37 andeq r2, r0, r7, lsr lr + 307c: 00010204 andeq r0, r1, r4, lsl #4 + 3080: 44454c00 strbmi r4, [r5], #-3072 + 3084: 696e495f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, lr}^ + 3088: 3c010074 stccc 0, cr0, [r1], {116} + 308c: 0e2c0106 sufeqe f0, f4, f6 + 3090: 36080000 strcc r0, [r8], -r0 + 3094: 36240040 strtcc r0, [r4], -r0, asr #32 + 3098: 01050040 tsteq r5, r0, asr #32 + 309c: 10000001 andne r0, r0, r1 + 30a0: 00003383 andeq r3, r0, r3, lsl #7 + 30a4: 00403610 subeq r3, r0, r0, lsl r6 + 30a8: 00403616 subeq r3, r0, r6, lsl r6 + 30ac: 00000000 andeq r0, r0, r0 + 30b0: 00000100 andeq r0, r0, r0, lsl #2 + 30b4: 03180003 tsteq r8, #3 ; 0x3 + 30b8: 02040000 andeq r0, r4, #0 ; 0x0 + 30bc: 445c3a43 ldrbmi r3, [ip], #-2627 + 30c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 30c4: 73746e65 cmnvc r4, #1616 ; 0x650 + 30c8: 646e6120 strbtvs r6, [lr], #-288 + 30cc: 74655320 strbtvc r5, [r5], #-800 + 30d0: 676e6974 undefined + 30d4: 616d5c73 smcvs 54723 + 30d8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 30dc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 30e0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 30e4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 30e8: 775c7374 undefined + 30ec: 6f632d73 svcvs 0x00632d73 + 30f0: 6f72746e svcvs 0x0072746e + 30f4: 65575c6c ldrbvs r5, [r7, #-3180] + 30f8: 65687461 strbvs r7, [r8, #-1121]! + 30fc: 74532072 ldrbvc r2, [r3], #-114 + 3100: 6f697461 svcvs 0x00697461 + 3104: 6f43206e svcvs 0x0043206e + 3108: 6f72746e svcvs 0x0072746e + 310c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3110: 7070415c rsbsvc r4, r0, ip, asr r1 + 3114: 6163696c cmnvs r3, ip, ror #18 + 3118: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 311c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 3120: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 3124: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 + 3128: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 312c: 41490063 cmpmi r9, r3, rrx + 3130: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3134: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3138: 2b2b432f blcs ad3dfc + 313c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3140: 656c6970 strbvs r6, [ip, #-2416]! + 3144: 35562072 ldrbcc r2, [r6, #-114] + 3148: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 314c: 31332e32 teqcc r3, r2, lsr lr + 3150: 2f353932 svccs 0x00353932 + 3154: 20323357 eorscs r3, r2, r7, asr r3 + 3158: 4b43494b blmi 10d568c + 315c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3160: 6f662054 svcvs 0x00662054 + 3164: 52412072 subpl r2, r1, #114 ; 0x72 + 3168: 2401004d strcs r0, [r1], #-77 + 316c: c0004036 andgt r4, r0, r6, lsr r0 + 3170: 10004036 andne r4, r0, r6, lsr r0 + 3174: a900001e stmdbge r0, {r1, r2, r3, r4} + 3178: 10000014 andne r0, r0, r4, lsl r0 + 317c: 00002e37 andeq r2, r0, r7, lsr lr + 3180: 00010204 andeq r0, r1, r4, lsl #4 + 3184: 74655300 strbtvc r5, [r5], #-768 + 3188: 6e69505f mcrvs 0, 3, r5, cr9, cr15, {2} + 318c: 49010073 stmdbmi r1, {r0, r1, r4, r5, r6} + 3190: 0e580106 rdfeqe f0, f0, f6 + 3194: 36240000 strtcc r0, [r4], -r0 + 3198: 36c00040 strbcc r0, [r0], r0, asr #32 + 319c: 4c060040 stcmi 0, cr0, [r6], {64} + 31a0: 724e4445 subvc r4, lr, #1157627904 ; 0x45000000 + 31a4: 16490100 strbne r0, [r9], -r0, lsl #2 + 31a8: 002f8910 eoreq r8, pc, r0, lsl r9 + 31ac: 000e9000 andeq r9, lr, r0 + 31b0: 00000000 andeq r0, r0, r0 + 31b4: 00000108 andeq r0, r0, r8, lsl #2 + 31b8: 03180003 tsteq r8, #3 ; 0x3 + 31bc: 02040000 andeq r0, r4, #0 ; 0x0 + 31c0: 445c3a43 ldrbmi r3, [ip], #-2627 + 31c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 31c8: 73746e65 cmnvc r4, #1616 ; 0x650 + 31cc: 646e6120 strbtvs r6, [lr], #-288 + 31d0: 74655320 strbtvc r5, [r5], #-800 + 31d4: 676e6974 undefined + 31d8: 616d5c73 smcvs 54723 + 31dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 31e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 31e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 31e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 31ec: 775c7374 undefined + 31f0: 6f632d73 svcvs 0x00632d73 + 31f4: 6f72746e svcvs 0x0072746e + 31f8: 65575c6c ldrbvs r5, [r7, #-3180] + 31fc: 65687461 strbvs r7, [r8, #-1121]! + 3200: 74532072 ldrbvc r2, [r3], #-114 + 3204: 6f697461 svcvs 0x00697461 + 3208: 6f43206e svcvs 0x0043206e + 320c: 6f72746e svcvs 0x0072746e + 3210: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3214: 7070415c rsbsvc r4, r0, ip, asr r1 + 3218: 6163696c cmnvs r3, ip, ror #18 + 321c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3220: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 3224: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 3228: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 + 322c: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 3230: 41490063 cmpmi r9, r3, rrx + 3234: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3238: 43204953 teqmi r0, #1359872 ; 0x14c000 + 323c: 2b2b432f blcs ad3f00 + 3240: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3244: 656c6970 strbvs r6, [ip, #-2416]! + 3248: 35562072 ldrbcc r2, [r6, #-114] + 324c: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3250: 31332e32 teqcc r3, r2, lsr lr + 3254: 2f353932 svccs 0x00353932 + 3258: 20323357 eorscs r3, r2, r7, asr r3 + 325c: 4b43494b blmi 10d5790 + 3260: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3264: 6f662054 svcvs 0x00662054 + 3268: 52412072 subpl r2, r1, #114 ; 0x72 + 326c: c001004d andgt r0, r1, sp, asr #32 + 3270: fc004036 stc2 0, cr4, [r0], {54} + 3274: e0004036 and r4, r0, r6, lsr r0 + 3278: ce00001e mcrgt 0, 0, r0, cr0, cr14, {0} + 327c: 10000015 andne r0, r0, r5, lsl r0 + 3280: 00002e37 andeq r2, r0, r7, lsr lr + 3284: 00010a04 andeq r0, r1, r4, lsl #20 + 3288: 44454c00 strbmi r4, [r5], #-3072 + 328c: 7275545f rsbsvc r5, r5, #1593835520 ; 0x5f000000 + 3290: 66664f6e strbtvs r4, [r6], -lr, ror #30 + 3294: 0064654c rsbeq r6, r4, ip, asr #10 + 3298: 0601b301 streq fp, [r1], -r1, lsl #6 + 329c: 000ead01 andeq sl, lr, r1, lsl #26 + 32a0: 4036c000 eorsmi ip, r6, r0 + 32a4: 4036fc00 eorsmi pc, r6, r0, lsl #24 + 32a8: 454c0600 strbmi r0, [ip, #-1536] + 32ac: 00724e44 rsbseq r4, r2, r4, asr #28 + 32b0: 1b01b301 blne 6febc + 32b4: 002f8910 eoreq r8, pc, r0, lsl r9 + 32b8: 000ee500 andeq lr, lr, r0, lsl #10 + 32bc: 00000000 andeq r0, r0, r0 + 32c0: 000000e0 andeq r0, r0, r0, ror #1 + 32c4: 03180003 tsteq r8, #3 ; 0x3 + 32c8: 01040000 tsteq r4, r0 + 32cc: 445c3a43 ldrbmi r3, [ip], #-2627 + 32d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 32d4: 73746e65 cmnvc r4, #1616 ; 0x650 + 32d8: 646e6120 strbtvs r6, [lr], #-288 + 32dc: 74655320 strbtvc r5, [r5], #-800 + 32e0: 676e6974 undefined + 32e4: 616d5c73 smcvs 54723 + 32e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 32ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 32f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 32f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 32f8: 775c7374 undefined + 32fc: 6f632d73 svcvs 0x00632d73 + 3300: 6f72746e svcvs 0x0072746e + 3304: 65575c6c ldrbvs r5, [r7, #-3180] + 3308: 65687461 strbvs r7, [r8, #-1121]! + 330c: 74532072 ldrbvc r2, [r3], #-114 + 3310: 6f697461 svcvs 0x00697461 + 3314: 6f43206e svcvs 0x0043206e + 3318: 6f72746e svcvs 0x0072746e + 331c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3320: 7070415c rsbsvc r4, r0, ip, asr r1 + 3324: 6163696c cmnvs r3, ip, ror #18 + 3328: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 332c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 3330: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 3334: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 + 3338: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 333c: 41490063 cmpmi r9, r3, rrx + 3340: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3344: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3348: 2b2b432f blcs ad400c + 334c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3350: 656c6970 strbvs r6, [ip, #-2416]! + 3354: 35562072 ldrbcc r2, [r6, #-114] + 3358: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 335c: 31332e32 teqcc r3, r2, lsr lr + 3360: 2f353932 svccs 0x00353932 + 3364: 20323357 eorscs r3, r2, r7, asr r3 + 3368: 4b43494b blmi 10d589c + 336c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3370: 6f662054 svcvs 0x00662054 + 3374: 52412072 subpl r2, r1, #114 ; 0x72 + 3378: 6801004d stmdavs r1, {r0, r2, r3, r6} + 337c: 8400001a strhi r0, [r0], #-26 + 3380: 09000000 stmdbeq r0, {} + 3384: 000000e2 andeq r0, r0, r2, ror #1 + 3388: 5f44454c svcpl 0x0044454c + 338c: 6e727554 mrcvs 5, 3, r7, cr2, cr4, {2} + 3390: 4166664f cmnmi r6, pc, asr #12 + 3394: 654c6c6c strbvs r6, [ip, #-3180] + 3398: 01007364 tsteq r0, r4, ror #6 + 339c: 010601d5 ldrdeq r0, [r6, -r5] + 33a0: 00000000 andeq r0, r0, r0 + 33a4: 0000011c andeq r0, r0, ip, lsl r1 + 33a8: 03e00003 mvneq r0, #3 ; 0x3 + 33ac: 01040000 tsteq r4, r0 + 33b0: 445c3a43 ldrbmi r3, [ip], #-2627 + 33b4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 33b8: 73746e65 cmnvc r4, #1616 ; 0x650 + 33bc: 646e6120 strbtvs r6, [lr], #-288 + 33c0: 74655320 strbtvc r5, [r5], #-800 + 33c4: 676e6974 undefined + 33c8: 616d5c73 smcvs 54723 + 33cc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 33d0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 33d4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 33d8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 33dc: 775c7374 undefined + 33e0: 6f632d73 svcvs 0x00632d73 + 33e4: 6f72746e svcvs 0x0072746e + 33e8: 65575c6c ldrbvs r5, [r7, #-3180] + 33ec: 65687461 strbvs r7, [r8, #-1121]! + 33f0: 74532072 ldrbvc r2, [r3], #-114 + 33f4: 6f697461 svcvs 0x00697461 + 33f8: 6f43206e svcvs 0x0043206e + 33fc: 6f72746e svcvs 0x0072746e + 3400: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3404: 414d535c cmpmi sp, ip, asr r3 + 3408: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 340c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3410: 6f535c73 svcvs 0x00535c73 + 3414: 65637275 strbvs r7, [r3, #-629]! + 3418: 63614d5c cmnvs r1, #5888 ; 0x1700 + 341c: 746e4961 strbtvc r4, [lr], #-2401 + 3420: 75727265 ldrbvc r7, [r2, #-613]! + 3424: 632e7470 teqvs lr, #1879048192 ; 0x70000000 + 3428: 52414900 subpl r4, r1, #0 ; 0x0 + 342c: 534e4120 movtpl r4, #57632 ; 0xe120 + 3430: 2f432049 svccs 0x00432049 + 3434: 202b2b43 eorcs r2, fp, r3, asr #22 + 3438: 706d6f43 rsbvc r6, sp, r3, asr #30 + 343c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 3440: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 3444: 322e3033 eorcc r3, lr, #51 ; 0x33 + 3448: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 344c: 572f3539 undefined + 3450: 4b203233 blmi 80fd24 + 3454: 534b4349 movtpl r4, #45897 ; 0xb349 + 3458: 54524154 ldrbpl r4, [r2], #-340 + 345c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 3460: 4d524120 ldfmie f4, [r2, #-128] + 3464: 1fa40100 svcne 0x00a40100 + 3468: 00ac0000 adceq r0, ip, r0 + 346c: 75020000 strvc r0, [r2] + 3470: 6769736e strbvs r7, [r9, -lr, ror #6]! + 3474: 2064656e rsbcs r6, r4, lr, ror #10 + 3478: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 + 347c: 02080100 andeq r0, r8, #0 ; 0x0 + 3480: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 3484: 64656e67 strbtvs r6, [r5], #-3687 + 3488: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} + 348c: 07040067 streq r0, [r4, -r7, rrx] + 3490: 010f1305 tsteq pc, r5, lsl #6 + 3494: 75090000 strvc r0, [r9] + 3498: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ + 349c: 1500745f strne r7, [r0, #-1119] + 34a0: 1a0101ca bne 43bd0 + 34a4: 6f620919 svcvs 0x00620919 + 34a8: 745f6c6f ldrbvc r6, [pc], #3183 ; 34b0 + 34ac: 01f21500 mvnseq r1, r0, lsl #10 + 34b0: 09132c01 ldmdbeq r3, {r0, sl, fp, sp} + 34b4: 746e6975 strbtvc r6, [lr], #-2421 + 34b8: 745f3233 ldrbvc r3, [pc], #563 ; 34c0 + 34bc: 01db1500 bicseq r1, fp, r0, lsl #10 + 34c0: 00191e01 andseq r1, r9, r1, lsl #28 + 34c4: 00000104 andeq r0, r0, r4, lsl #2 + 34c8: 03e00003 mvneq r0, #3 ; 0x3 + 34cc: 01040000 tsteq r4, r0 + 34d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 34d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 34d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 34dc: 646e6120 strbtvs r6, [lr], #-288 + 34e0: 74655320 strbtvc r5, [r5], #-800 + 34e4: 676e6974 undefined + 34e8: 616d5c73 smcvs 54723 + 34ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 34f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 34f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 34f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 34fc: 775c7374 undefined + 3500: 6f632d73 svcvs 0x00632d73 + 3504: 6f72746e svcvs 0x0072746e + 3508: 65575c6c ldrbvs r5, [r7, #-3180] + 350c: 65687461 strbvs r7, [r8, #-1121]! + 3510: 74532072 ldrbvc r2, [r3], #-114 + 3514: 6f697461 svcvs 0x00697461 + 3518: 6f43206e svcvs 0x0043206e + 351c: 6f72746e svcvs 0x0072746e + 3520: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3524: 414d535c cmpmi sp, ip, asr r3 + 3528: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 352c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3530: 6f535c73 svcvs 0x00535c73 + 3534: 65637275 strbvs r7, [r3, #-629]! + 3538: 63614d5c cmnvs r1, #5888 ; 0x1700 + 353c: 746e4961 strbtvc r4, [lr], #-2401 + 3540: 75727265 ldrbvc r7, [r2, #-613]! + 3544: 632e7470 teqvs lr, #1879048192 ; 0x70000000 + 3548: 52414900 subpl r4, r1, #0 ; 0x0 + 354c: 534e4120 movtpl r4, #57632 ; 0xe120 + 3550: 2f432049 svccs 0x00432049 + 3554: 202b2b43 eorcs r2, fp, r3, asr #22 + 3558: 706d6f43 rsbvc r6, sp, r3, asr #30 + 355c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 3560: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 3564: 322e3033 eorcc r3, lr, #51 ; 0x33 + 3568: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 356c: 572f3539 undefined + 3570: 4b203233 blmi 80fe44 + 3574: 534b4349 movtpl r4, #45897 ; 0xb349 + 3578: 54524154 ldrbpl r4, [r2], #-340 + 357c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 3580: 4d524120 ldfmie f4, [r2, #-128] + 3584: 1fa40100 svcne 0x00a40100 + 3588: 00ac0000 adceq r0, ip, r0 + 358c: 66030000 strvs r0, [r3], -r0 + 3590: 0067616c rsbeq r6, r7, ip, ror #2 + 3594: 0034a510 eorseq sl, r4, r0, lsl r5 + 3598: 08520a00 ldmdaeq r2, {r9, fp}^ + 359c: ac030501 cfstr32ge mvfx0, [r3], {1} + 35a0: 03004052 movweq r4, #82 ; 0x52 + 35a4: 63614d6d cmnvs r1, #6976 ; 0x1b40 + 35a8: 72734961 rsbsvc r4, r3, #1589248 ; 0x184000 + 35ac: 72746e45 rsbsvc r6, r4, #1104 ; 0x450 + 35b0: 756f4379 strbvc r4, [pc, #-889]! ; 323f + 35b4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 35b8: 34961000 ldrcc r1, [r6] + 35bc: 4a0a0000 bmi 2835c4 + 35c0: 03050010 movweq r0, #20496 ; 0x5010 + 35c4: 004052ab subeq r5, r0, fp, lsr #5 + 35c8: 00000000 andeq r0, r0, r0 + 35cc: 000001a8 andeq r0, r0, r8, lsr #3 + 35d0: 03e00003 mvneq r0, #3 ; 0x3 + 35d4: 04040000 streq r0, [r4] + 35d8: 445c3a43 ldrbmi r3, [ip], #-2627 + 35dc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 35e0: 73746e65 cmnvc r4, #1616 ; 0x650 + 35e4: 646e6120 strbtvs r6, [lr], #-288 + 35e8: 74655320 strbtvc r5, [r5], #-800 + 35ec: 676e6974 undefined + 35f0: 616d5c73 smcvs 54723 + 35f4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 35f8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 35fc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3600: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3604: 775c7374 undefined + 3608: 6f632d73 svcvs 0x00632d73 + 360c: 6f72746e svcvs 0x0072746e + 3610: 65575c6c ldrbvs r5, [r7, #-3180] + 3614: 65687461 strbvs r7, [r8, #-1121]! + 3618: 74532072 ldrbvc r2, [r3], #-114 + 361c: 6f697461 svcvs 0x00697461 + 3620: 6f43206e svcvs 0x0043206e + 3624: 6f72746e svcvs 0x0072746e + 3628: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 362c: 414d535c cmpmi sp, ip, asr r3 + 3630: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 3634: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3638: 6f535c73 svcvs 0x00535c73 + 363c: 65637275 strbvs r7, [r3, #-629]! + 3640: 63614d5c cmnvs r1, #5888 ; 0x1700 + 3644: 746e4961 strbtvc r4, [lr], #-2401 + 3648: 75727265 ldrbvc r7, [r2, #-613]! + 364c: 632e7470 teqvs lr, #1879048192 ; 0x70000000 + 3650: 52414900 subpl r4, r1, #0 ; 0x0 + 3654: 534e4120 movtpl r4, #57632 ; 0xe120 + 3658: 2f432049 svccs 0x00432049 + 365c: 202b2b43 eorcs r2, fp, r3, asr #22 + 3660: 706d6f43 rsbvc r6, sp, r3, asr #30 + 3664: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 3668: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 366c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 3670: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 3674: 572f3539 undefined + 3678: 4b203233 blmi 80ff4c + 367c: 534b4349 movtpl r4, #45897 ; 0xb349 + 3680: 54524154 ldrbpl r4, [r2], #-340 + 3684: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 3688: 4d524120 ldfmie f4, [r2, #-128] + 368c: 2bb40100 blcs fed03a94 + 3690: 2c440040 mcrrcs 0, 4, r0, r4, cr0 + 3694: 23d40040 bicscs r0, r4, #64 ; 0x40 + 3698: 165b0000 ldrbne r0, [fp], -r0 + 369c: af100000 svcge 0x00100000 + 36a0: 06000033 undefined + 36a4: 000001a8 andeq r0, r0, r8, lsr #3 + 36a8: 75736552 ldrbvc r6, [r3, #-1362]! + 36ac: 414d656d cmpmi sp, sp, ror #10 + 36b0: 79534143 ldmdbvc r3, {r0, r1, r6, r8, lr}^ + 36b4: 0100636e tsteq r0, lr, ror #6 + 36b8: 02010661 andeq r0, r1, #101711872 ; 0x6100000 + 36bc: b400000f strlt r0, [r0], #-15 + 36c0: 4400402b strmi r4, [r0], #-43 + 36c4: 0700402c streq r4, [r0, -ip, lsr #32] + 36c8: 006b6c63 rsbeq r6, fp, r3, ror #24 + 36cc: 100c6301 andne r6, ip, r1, lsl #6 + 36d0: 000034b3 strheq r3, [r0], -r3 + 36d4: 00000f52 andeq r0, r0, r2, asr pc + 36d8: 6d735407 cfldrdvs mvd5, [r3, #-28]! + 36dc: 74537852 ldrbvc r7, [r3], #-2130 + 36e0: 00737065 rsbseq r7, r3, r5, rrx + 36e4: 10116301 andsne r6, r1, r1, lsl #6 + 36e8: 000034b3 strheq r3, [r0], -r3 + 36ec: 00000f84 andeq r0, r0, r4, lsl #31 + 36f0: 73614c07 cmnvc r1, #1792 ; 0x700 + 36f4: 72615774 rsbvc r5, r1, #30408704 ; 0x1d00000 + 36f8: 5370756d cmnpl r0, #457179136 ; 0x1b400000 + 36fc: 00706574 rsbseq r6, r0, r4, ror r5 + 3700: 101d6301 andsne r6, sp, r1, lsl #6 + 3704: 000034b3 strheq r3, [r0], -r3 + 3708: 00000fa1 andeq r0, r0, r1, lsr #31 + 370c: 73614c07 cmnvc r1, #1792 ; 0x700 + 3710: 72615774 rsbvc r5, r1, #30408704 ; 0x1d00000 + 3714: 4470756d ldrbtmi r7, [r0], #-1389 + 3718: 00617461 rsbeq r7, r1, r1, ror #8 + 371c: 102d6301 eorne r6, sp, r1, lsl #6 + 3720: 000034b3 strheq r3, [r0], -r3 + 3724: 00000fbe strheq r0, [r0], -lr + 3728: 73614c07 cmnvc r1, #1792 ; 0x700 + 372c: 72615774 rsbvc r5, r1, #30408704 ; 0x1d00000 + 3730: 776f646d strbvc r6, [pc, -sp, ror #8]! + 3734: 6574536e ldrbvs r5, [r4, #-878]! + 3738: 63010070 movwvs r0, #4208 ; 0x1070 + 373c: 34b3103d ldrtcc r1, [r3], #61 + 3740: 0fdb0000 svceq 0x00db0000 + 3744: 4c070000 stcmi 0, cr0, [r7], {0} + 3748: 57747361 ldrbpl r7, [r4, -r1, ror #6]! + 374c: 646d7261 strbtvs r7, [sp], #-609 + 3750: 446e776f strbtmi r7, [lr], #-1903 + 3754: 00617461 rsbeq r7, r1, r1, ror #8 + 3758: 104f6301 subne r6, pc, r1, lsl #6 + 375c: 000034b3 strheq r3, [r0], -r3 + 3760: 00000fe3 andeq r0, r0, r3, ror #31 + 3764: 01006907 tsteq r0, r7, lsl #18 + 3768: 90101565 andsls r1, r0, r5, ror #10 + 376c: 00000034 andeq r0, r0, r4, lsr r0 + 3770: 00000010 andeq r0, r0, r0, lsl r0 + 3774: 00000000 andeq r0, r0, r0 + 3778: 00000158 andeq r0, r0, r8, asr r1 + 377c: 03e00003 mvneq r0, #3 ; 0x3 + 3780: 04040000 streq r0, [r4] + 3784: 445c3a43 ldrbmi r3, [ip], #-2627 + 3788: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 378c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3790: 646e6120 strbtvs r6, [lr], #-288 + 3794: 74655320 strbtvc r5, [r5], #-800 + 3798: 676e6974 undefined + 379c: 616d5c73 smcvs 54723 + 37a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 37a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 37a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 37ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 37b0: 775c7374 undefined + 37b4: 6f632d73 svcvs 0x00632d73 + 37b8: 6f72746e svcvs 0x0072746e + 37bc: 65575c6c ldrbvs r5, [r7, #-3180] + 37c0: 65687461 strbvs r7, [r8, #-1121]! + 37c4: 74532072 ldrbvc r2, [r3], #-114 + 37c8: 6f697461 svcvs 0x00697461 + 37cc: 6f43206e svcvs 0x0043206e + 37d0: 6f72746e svcvs 0x0072746e + 37d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 37d8: 414d535c cmpmi sp, ip, asr r3 + 37dc: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 37e0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 37e4: 6f535c73 svcvs 0x00535c73 + 37e8: 65637275 strbvs r7, [r3, #-629]! + 37ec: 63614d5c cmnvs r1, #5888 ; 0x1700 + 37f0: 746e4961 strbtvc r4, [lr], #-2401 + 37f4: 75727265 ldrbvc r7, [r2, #-613]! + 37f8: 632e7470 teqvs lr, #1879048192 ; 0x70000000 + 37fc: 52414900 subpl r4, r1, #0 ; 0x0 + 3800: 534e4120 movtpl r4, #57632 ; 0xe120 + 3804: 2f432049 svccs 0x00432049 + 3808: 202b2b43 eorcs r2, fp, r3, asr #22 + 380c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 3810: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 3814: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 3818: 322e3033 eorcc r3, lr, #51 ; 0x33 + 381c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 3820: 572f3539 undefined + 3824: 4b203233 blmi 8100f8 + 3828: 534b4349 movtpl r4, #45897 ; 0xb349 + 382c: 54524154 ldrbpl r4, [r2], #-340 + 3830: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 3834: 4d524120 ldfmie f4, [r2, #-128] + 3838: 2c440100 stfcse f0, [r4], {0} + 383c: 2dc80040 stclcs 0, cr0, [r8, #256] + 3840: 24b00040 ldrtcs r0, [r0], #64 + 3844: 171b0000 ldrne r0, [fp, -r0] + 3848: af100000 svcge 0x00100000 + 384c: 06000033 undefined + 3850: 00000158 andeq r0, r0, r8, asr r1 + 3854: 4143414d cmpmi r3, sp, asr #2 + 3858: 746e495f strbtvc r4, [lr], #-2399 + 385c: 75727265 ldrbvc r7, [r2, #-613]! + 3860: 01007470 tsteq r0, r0, ror r4 + 3864: 010601a5 smlatbeq r6, r5, r1, r0 + 3868: 00001034 andeq r1, r0, r4, lsr r0 + 386c: 00402c44 subeq r2, r0, r4, asr #24 + 3870: 00402dc8 subeq r2, r0, r8, asr #27 + 3874: 71726907 cmnvc r2, r7, lsl #18 + 3878: 00637253 rsbeq r7, r3, r3, asr r2 + 387c: 0c01a701 stceq 7, cr10, [r1], {1} + 3880: 0034b310 eorseq fp, r4, r0, lsl r3 + 3884: 00107800 andseq r7, r0, r0, lsl #16 + 3888: 013b0800 teqeq fp, r0, lsl #16 + 388c: 2c6c0000 stclcs 0, cr0, [ip] + 3890: 2d120040 ldccs 0, cr0, [r2, #-256] + 3894: 3a080040 bcc 20399c + 3898: a0000001 andge r0, r0, r1 + 389c: 1200402c andne r4, r0, #44 ; 0x2c + 38a0: 0800402d stmdaeq r0, {r0, r2, r3, r5, lr} + 38a4: 00000139 andeq r0, r0, r9, lsr r1 + 38a8: 00402cdc ldrdeq r2, [r0], #-204 + 38ac: 00402cfc strdeq r2, [r0], #-204 + 38b0: 08000000 stmdaeq r0, {} + 38b4: 00000157 andeq r0, r0, r7, asr r1 + 38b8: 00402d2e subeq r2, r0, lr, lsr #26 + 38bc: 00402d68 subeq r2, r0, r8, ror #26 + 38c0: 00015608 andeq r5, r1, r8, lsl #12 + 38c4: 402d3c00 eormi r3, sp, r0, lsl #24 + 38c8: 402d6800 eormi r6, sp, r0, lsl #16 + ... + 38d4: 000000f0 strdeq r0, [r0], -r0 + 38d8: 04700003 ldrbteq r0, [r0], #-3 + 38dc: 01040000 tsteq r4, r0 + 38e0: 445c3a43 ldrbmi r3, [ip], #-2627 + 38e4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 38e8: 73746e65 cmnvc r4, #1616 ; 0x650 + 38ec: 646e6120 strbtvs r6, [lr], #-288 + 38f0: 74655320 strbtvc r5, [r5], #-800 + 38f4: 676e6974 undefined + 38f8: 616d5c73 smcvs 54723 + 38fc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3900: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3904: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3908: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 390c: 775c7374 undefined + 3910: 6f632d73 svcvs 0x00632d73 + 3914: 6f72746e svcvs 0x0072746e + 3918: 65575c6c ldrbvs r5, [r7, #-3180] + 391c: 65687461 strbvs r7, [r8, #-1121]! + 3920: 74532072 ldrbvc r2, [r3], #-114 + 3924: 6f697461 svcvs 0x00697461 + 3928: 6f43206e svcvs 0x0043206e + 392c: 6f72746e svcvs 0x0072746e + 3930: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3934: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3938: 756f535c strbvc r5, [pc, #-860]! ; 35e4 + 393c: 5c656372 stclpl 3, cr6, [r5], #-456 + 3940: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 3944: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 3948: 505c7379 subspl r7, ip, r9, ror r3 + 394c: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 3950: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 3954: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 3958: 41490063 cmpmi r9, r3, rrx + 395c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3960: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3964: 2b2b432f blcs ad4628 + 3968: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 396c: 656c6970 strbvs r6, [ip, #-2416]! + 3970: 35562072 ldrbcc r2, [r6, #-114] + 3974: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3978: 31332e32 teqcc r3, r2, lsr lr + 397c: 2f353932 svccs 0x00353932 + 3980: 20323357 eorscs r3, r2, r7, asr r3 + 3984: 4b43494b blmi 10d5eb8 + 3988: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 398c: 6f662054 svcvs 0x00662054 + 3990: 52412072 subpl r2, r1, #114 ; 0x72 + 3994: dc01004d stcle 0, cr0, [r1], {77} + 3998: e4000025 str r0, [r0], #-37 + 399c: 03000000 movweq r0, #0 ; 0x0 + 39a0: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 39a4: 64656e67 strbtvs r6, [r5], #-3687 + 39a8: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} + 39ac: 07040067 streq r0, [r4, -r7, rrx] + 39b0: 00e21304 rsceq r1, r2, r4, lsl #6 + 39b4: 75090000 strvc r0, [r9] + 39b8: 33746e69 cmncc r4, #1680 ; 0x690 + 39bc: 00745f32 rsbseq r5, r4, r2, lsr pc + 39c0: 0101cb15 tsteq r1, r5, lsl fp + 39c4: 0000191e andeq r1, r0, lr, lsl r9 + 39c8: 00000110 andeq r0, r0, r0, lsl r1 + 39cc: 04700003 ldrbteq r0, [r0], #-3 + 39d0: 02040000 andeq r0, r4, #0 ; 0x0 + 39d4: 445c3a43 ldrbmi r3, [ip], #-2627 + 39d8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 39dc: 73746e65 cmnvc r4, #1616 ; 0x650 + 39e0: 646e6120 strbtvs r6, [lr], #-288 + 39e4: 74655320 strbtvc r5, [r5], #-800 + 39e8: 676e6974 undefined + 39ec: 616d5c73 smcvs 54723 + 39f0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 39f4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 39f8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 39fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3a00: 775c7374 undefined + 3a04: 6f632d73 svcvs 0x00632d73 + 3a08: 6f72746e svcvs 0x0072746e + 3a0c: 65575c6c ldrbvs r5, [r7, #-3180] + 3a10: 65687461 strbvs r7, [r8, #-1121]! + 3a14: 74532072 ldrbvc r2, [r3], #-114 + 3a18: 6f697461 svcvs 0x00697461 + 3a1c: 6f43206e svcvs 0x0043206e + 3a20: 6f72746e svcvs 0x0072746e + 3a24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3a28: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3a2c: 756f535c strbvc r5, [pc, #-860]! ; 36d8 + 3a30: 5c656372 stclpl 3, cr6, [r5], #-456 + 3a34: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 3a38: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 3a3c: 505c7379 subspl r7, ip, r9, ror r3 + 3a40: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 3a44: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 3a48: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 3a4c: 41490063 cmpmi r9, r3, rrx + 3a50: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3a54: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3a58: 2b2b432f blcs ad471c + 3a5c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3a60: 656c6970 strbvs r6, [ip, #-2416]! + 3a64: 35562072 ldrbcc r2, [r6, #-114] + 3a68: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3a6c: 31332e32 teqcc r3, r2, lsr lr + 3a70: 2f353932 svccs 0x00353932 + 3a74: 20323357 eorscs r3, r2, r7, asr r3 + 3a78: 4b43494b blmi 10d5fac + 3a7c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3a80: 6f662054 svcvs 0x00662054 + 3a84: 52412072 subpl r2, r1, #114 ; 0x72 + 3a88: a401004d strge r0, [r1], #-77 + 3a8c: f000403c undefined instruction 0xf000403c + 3a90: ec00403c stc 0, cr4, [r0], {60} + 3a94: db000027 blle 3b38 + 3a98: 10000018 andne r0, r0, r8, lsl r0 + 3a9c: 000038df ldrdeq r3, [r0], -pc + 3aa0: 00011205 andeq r1, r1, r5, lsl #4 + 3aa4: 616c5000 cmnvs ip, r0 + 3aa8: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 + 3aac: 726f506d rsbvc r5, pc, #109 ; 0x6d + 3ab0: 696e4974 stmdbvs lr!, {r2, r4, r5, r6, r8, fp, lr}^ + 3ab4: 1e010074 mcrne 0, 0, r0, cr1, cr4, {3} + 3ab8: 113d0106 teqne sp, r6, lsl #2 + 3abc: 3ca40000 stccc 0, cr0, [r4] + 3ac0: 3cf00040 ldclcc 0, cr0, [r0], #256 + 3ac4: 11060040 tstne r6, r0, asr #32 + 3ac8: 10000001 andne r0, r0, r1 + 3acc: 00003ba7 andeq r3, r0, r7, lsr #23 + 3ad0: 00403ca4 subeq r3, r0, r4, lsr #25 + 3ad4: 00403cea subeq r3, r0, sl, ror #25 + 3ad8: 00000000 andeq r0, r0, r0 + 3adc: 000000e4 andeq r0, r0, r4, ror #1 + 3ae0: 04700003 ldrbteq r0, [r0], #-3 + 3ae4: 01040000 tsteq r4, r0 + 3ae8: 445c3a43 ldrbmi r3, [ip], #-2627 + 3aec: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3af0: 73746e65 cmnvc r4, #1616 ; 0x650 + 3af4: 646e6120 strbtvs r6, [lr], #-288 + 3af8: 74655320 strbtvc r5, [r5], #-800 + 3afc: 676e6974 undefined + 3b00: 616d5c73 smcvs 54723 + 3b04: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3b08: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3b0c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3b10: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3b14: 775c7374 undefined + 3b18: 6f632d73 svcvs 0x00632d73 + 3b1c: 6f72746e svcvs 0x0072746e + 3b20: 65575c6c ldrbvs r5, [r7, #-3180] + 3b24: 65687461 strbvs r7, [r8, #-1121]! + 3b28: 74532072 ldrbvc r2, [r3], #-114 + 3b2c: 6f697461 svcvs 0x00697461 + 3b30: 6f43206e svcvs 0x0043206e + 3b34: 6f72746e svcvs 0x0072746e + 3b38: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3b3c: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3b40: 756f535c strbvc r5, [pc, #-860]! ; 37ec + 3b44: 5c656372 stclpl 3, cr6, [r5], #-456 + 3b48: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 3b4c: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 3b50: 505c7379 subspl r7, ip, r9, ror r3 + 3b54: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 3b58: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 3b5c: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 3b60: 41490063 cmpmi r9, r3, rrx + 3b64: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3b68: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3b6c: 2b2b432f blcs ad4830 + 3b70: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3b74: 656c6970 strbvs r6, [ip, #-2416]! + 3b78: 35562072 ldrbcc r2, [r6, #-114] + 3b7c: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3b80: 31332e32 teqcc r3, r2, lsr lr + 3b84: 2f353932 svccs 0x00353932 + 3b88: 20323357 eorscs r3, r2, r7, asr r3 + 3b8c: 4b43494b blmi 10d60c0 + 3b90: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3b94: 6f662054 svcvs 0x00662054 + 3b98: 52412072 subpl r2, r1, #114 ; 0x72 + 3b9c: dc01004d stcle 0, cr0, [r1], {77} + 3ba0: e4000025 str r0, [r0], #-37 + 3ba4: 08000000 stmdaeq r0, {} + 3ba8: 000000e7 andeq r0, r0, r7, ror #1 + 3bac: 74616c50 strbtvc r6, [r1], #-3152 + 3bb0: 6d726f66 ldclvs 15, cr6, [r2, #-408]! + 3bb4: 74696e49 strbtvc r6, [r9], #-3657 + 3bb8: 6f697047 svcvs 0x00697047 + 3bbc: 0d450900 stcleq 9, cr0, [r5] + 3bc0: 00000000 andeq r0, r0, r0 + 3bc4: 00000af4 strdeq r0, [r0], -r4 + 3bc8: 05000003 streq r0, [r0, #-3] + 3bcc: 01040000 tsteq r4, r0 + 3bd0: 445c3a43 ldrbmi r3, [ip], #-2627 + 3bd4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3bd8: 73746e65 cmnvc r4, #1616 ; 0x650 + 3bdc: 646e6120 strbtvs r6, [lr], #-288 + 3be0: 74655320 strbtvc r5, [r5], #-800 + 3be4: 676e6974 undefined + 3be8: 616d5c73 smcvs 54723 + 3bec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3bf0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3bf4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3bf8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3bfc: 775c7374 undefined + 3c00: 6f632d73 svcvs 0x00632d73 + 3c04: 6f72746e svcvs 0x0072746e + 3c08: 65575c6c ldrbvs r5, [r7, #-3180] + 3c0c: 65687461 strbvs r7, [r8, #-1121]! + 3c10: 74532072 ldrbvc r2, [r3], #-114 + 3c14: 6f697461 svcvs 0x00697461 + 3c18: 6f43206e svcvs 0x0043206e + 3c1c: 6f72746e svcvs 0x0072746e + 3c20: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3c24: 414d535c cmpmi sp, ip, asr r3 + 3c28: 6f535c43 svcvs 0x00535c43 + 3c2c: 65637275 strbvs r7, [r3, #-629]! + 3c30: 6461525c strbtvs r5, [r1], #-604 + 3c34: 614d6f69 cmpvs sp, r9, ror #30 + 3c38: 6567616e strbvs r6, [r7, #-366]! + 3c3c: 746e656d strbtvc r6, [lr], #-1389 + 3c40: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 3c44: 41205241 teqmi r0, r1, asr #4 + 3c48: 2049534e subcs r5, r9, lr, asr #6 + 3c4c: 2b432f43 blcs 10cf960 + 3c50: 6f43202b svcvs 0x0043202b + 3c54: 6c69706d stclvs 0, cr7, [r9], #-436 + 3c58: 56207265 strtpl r7, [r0], -r5, ror #4 + 3c5c: 30332e35 eorscc r2, r3, r5, lsr lr + 3c60: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 3c64: 35393231 ldrcc r3, [r9, #-561]! + 3c68: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 3c6c: 43494b20 movtmi r4, #39712 ; 0x9b20 + 3c70: 4154534b cmpmi r4, fp, asr #6 + 3c74: 66205452 undefined + 3c78: 4120726f teqmi r0, pc, ror #4 + 3c7c: 01004d52 tsteq r0, r2, asr sp + 3c80: 000028c4 andeq r2, r0, r4, asr #17 + 3c84: 0000010c andeq r0, r0, ip, lsl #2 + 3c88: 736e7502 cmnvc lr, #8388608 ; 0x800000 + 3c8c: 656e6769 strbvs r6, [lr, #-1897]! + 3c90: 68632064 stmdavs r3!, {r2, r5, r6, sp}^ + 3c94: 01007261 tsteq r0, r1, ror #4 + 3c98: 8e130308 cdphi 3, 1, cr0, cr3, cr8, {0} + 3c9c: 0200000a andeq r0, r0, #10 ; 0xa + 3ca0: 64696f76 strbtvs r6, [r9], #-3958 + 3ca4: 03050000 movweq r0, #20480 ; 0x5000 + 3ca8: 0003c813 andeq ip, r3, r3, lsl r8 + 3cac: 6e750200 cdpvs 2, 7, cr0, cr5, cr0, {0} + 3cb0: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} + 3cb4: 6c206465 cfstrsvs mvf6, [r0], #-404 + 3cb8: 00676e6f rsbeq r6, r7, pc, ror #28 + 3cbc: 13050704 movwne r0, #22276 ; 0x5704 + 3cc0: 0000040a andeq r0, r0, sl, lsl #8 + 3cc4: 043a1305 ldrteq r1, [sl], #-773 + 3cc8: 13050000 movwne r0, #20480 ; 0x5000 + 3ccc: 0000042f andeq r0, r0, pc, lsr #8 + 3cd0: 03f41305 mvnseq r1, #335544320 ; 0x14000000 + 3cd4: 13030000 movwne r0, #12288 ; 0x3000 + 3cd8: 00000891 muleq r0, r1, r8 + 3cdc: 736e7502 cmnvc lr, #8388608 ; 0x800000 + 3ce0: 656e6769 strbvs r6, [lr, #-1897]! + 3ce4: 68732064 ldmdavs r3!, {r2, r5, r6, sp}^ + 3ce8: 0074726f rsbseq r7, r4, pc, ror #4 + 3cec: 13030702 movwne r0, #14082 ; 0x3702 + 3cf0: 000003ce andeq r0, r0, lr, asr #7 + 3cf4: 00022312 andeq r2, r2, r2, lsl r3 + 3cf8: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! + 3cfc: 5f78745f svcpl 0x0078745f + 3d00: 74617473 strbtvc r7, [r1], #-1139 + 3d04: 61745f65 cmnvs r4, r5, ror #30 + 3d08: 13010067 movwne r0, #4199 ; 0x1067 + 3d0c: 5f47534d svcpl 0x0047534d + 3d10: 525f5854 subspl r5, pc, #5505024 ; 0x540000 + 3d14: 00545351 subseq r5, r4, r1, asr r3 + 3d18: 534d1300 movtpl r1, #54016 ; 0xd300 + 3d1c: 58545f47 ldmdapl r4, {r0, r1, r2, r6, r8, r9, sl, fp, ip, lr}^ + 3d20: 5341505f movtpl r5, #4191 ; 0x105f + 3d24: 5f444553 svcpl 0x00444553 + 3d28: 445f4f54 ldrbmi r4, [pc], #3924 ; 3d30 + 3d2c: 43495645 movtmi r5, #38469 ; 0x9645 + 3d30: 13010045 movwne r0, #4165 ; 0x1045 + 3d34: 5f47534d svcpl 0x0047534d + 3d38: 415f5854 cmpmi pc, r4, asr r8 + 3d3c: 4f495443 svcmi 0x00495443 + 3d40: 54535f4e ldrbpl r5, [r3], #-3918 + 3d44: 45545241 ldrbmi r5, [r4, #-577] + 3d48: 13020044 movwne r0, #8260 ; 0x2044 + 3d4c: 5f47534d svcpl 0x0047534d + 3d50: 415f5854 cmpmi pc, r4, asr r8 + 3d54: 4f495443 svcmi 0x00495443 + 3d58: 4f435f4e svcmi 0x00435f4e + 3d5c: 454c504d strbmi r5, [ip, #-77] + 3d60: 435f4554 cmpmi pc, #352321536 ; 0x15000000 + 3d64: 4e4e4148 dvfmiem f4, f6, #0.0 + 3d68: 5355425f cmppl r5, #-268435451 ; 0xf0000005 + 3d6c: 13030059 movwne r0, #12377 ; 0x3059 + 3d70: 5f47534d svcpl 0x0047534d + 3d74: 415f5854 cmpmi pc, r4, asr r8 + 3d78: 4f495443 svcmi 0x00495443 + 3d7c: 4f435f4e svcmi 0x00435f4e + 3d80: 454c504d strbmi r5, [ip, #-77] + 3d84: 535f4554 cmppl pc, #352321536 ; 0x15000000 + 3d88: 45434355 strbmi r4, [r3, #-853] + 3d8c: 04005353 streq r5, [r0], #-851 + 3d90: 47534d13 smmlami r3, r3, sp, r4 + 3d94: 5f58545f svcpl 0x0058545f + 3d98: 49544341 ldmdbmi r4, {r0, r6, r8, r9, lr}^ + 3d9c: 435f4e4f cmpmi pc, #1264 ; 0x4f0 + 3da0: 4c504d4f mrrcmi 13, 4, r4, r0, cr15 + 3da4: 5f455445 svcpl 0x00455445 + 3da8: 4c494146 stfmie f4, [r9], {70} + 3dac: 4d130500 cfldr32mi mvfx0, [r3] + 3db0: 545f4753 ldrbpl r4, [pc], #1875 ; 3db8 + 3db4: 51525f58 cmppl r2, r8, asr pc + 3db8: 415f5453 cmpmi pc, r3, asr r4 + 3dbc: 54524f42 ldrbpl r4, [r2], #-3906 + 3dc0: 4d130600 ldcmi 6, cr0, [r3] + 3dc4: 545f4753 ldrbpl r4, [pc], #1875 ; 3dcc + 3dc8: 42415f58 submi r5, r1, #352 ; 0x160 + 3dcc: 4554524f ldrbmi r5, [r4, #-591] + 3dd0: 13070044 movwne r0, #28740 ; 0x7044 + 3dd4: 5f58414d svcpl 0x0058414d + 3dd8: 5f47534d svcpl 0x0047534d + 3ddc: 535f5854 cmppl pc, #5505024 ; 0x540000 + 3de0: 45544154 ldrbmi r4, [r4, #-340] + 3de4: 12000800 andne r0, r0, #0 ; 0x0 + 3de8: 000002da ldrdeq r0, [r0], -sl + 3dec: 5f67736d svcpl 0x0067736d + 3df0: 735f6465 cmpvc pc, #1694498816 ; 0x65000000 + 3df4: 65746174 ldrbvs r6, [r4, #-372]! + 3df8: 6761745f undefined + 3dfc: 4d130100 ldfmis f0, [r3] + 3e00: 455f4753 ldrbmi r4, [pc, #-1875] ; 36b5 + 3e04: 51525f44 cmppl r2, r4, asr #30 + 3e08: 00005453 andeq r5, r0, r3, asr r4 + 3e0c: 47534d13 smmlami r3, r3, sp, r4 + 3e10: 5f44455f svcpl 0x0044455f + 3e14: 53534150 cmppl r3, #20 ; 0x14 + 3e18: 545f4445 ldrbpl r4, [pc], #1093 ; 3e20 + 3e1c: 45445f4f strbmi r5, [r4, #-3919] + 3e20: 45434956 strbmi r4, [r3, #-2390] + 3e24: 4d130100 ldfmis f0, [r3] + 3e28: 455f4753 ldrbmi r4, [pc, #-1875] ; 36dd + 3e2c: 43415f44 movtmi r5, #8004 ; 0x1f44 + 3e30: 4e4f4954 mcrmi 9, 2, r4, cr15, cr4, {2} + 3e34: 4d4f435f stclmi 3, cr4, [pc, #-380] + 3e38: 54454c50 strbpl r4, [r5], #-3152 + 3e3c: 55535f45 ldrbpl r5, [r3, #-3909] + 3e40: 53454343 movtpl r4, #21315 ; 0x5343 + 3e44: 13020053 movwne r0, #8275 ; 0x2053 + 3e48: 5f47534d svcpl 0x0047534d + 3e4c: 415f4445 cmpmi pc, r5, asr #8 + 3e50: 4f495443 svcmi 0x00495443 + 3e54: 4f435f4e svcmi 0x00435f4e + 3e58: 454c504d strbmi r5, [ip, #-77] + 3e5c: 465f4554 undefined + 3e60: 004c4941 subeq r4, ip, r1, asr #18 + 3e64: 534d1303 movtpl r1, #54019 ; 0xd303 + 3e68: 44455f47 strbmi r5, [r5], #-3911 + 3e6c: 5351525f cmppl r1, #-268435451 ; 0xf0000005 + 3e70: 42415f54 submi r5, r1, #336 ; 0x150 + 3e74: 0054524f subseq r5, r4, pc, asr #4 + 3e78: 534d1304 movtpl r1, #54020 ; 0xd304 + 3e7c: 44455f47 strbmi r5, [r5], #-3911 + 3e80: 4f42415f svcmi 0x0042415f + 3e84: 44455452 strbmi r5, [r5], #-1106 + 3e88: 4d130500 cfldr32mi mvfx0, [r3] + 3e8c: 4d5f5841 ldclmi 8, cr5, [pc, #-260] + 3e90: 455f4753 ldrbmi r4, [pc, #-1875] ; 3745 + 3e94: 54535f44 ldrbpl r5, [r3], #-3908 + 3e98: 00455441 subeq r5, r5, r1, asr #8 + 3e9c: 91120006 tstls r2, r6 + 3ea0: 6d000003 stcvs 0, cr0, [r0, #-12] + 3ea4: 745f6773 ldrbvc r6, [pc], #1907 ; 3eac + 3ea8: 74735f6f ldrbtvc r5, [r3], #-3951 + 3eac: 5f657461 svcpl 0x00657461 + 3eb0: 00676174 rsbeq r6, r7, r4, ror r1 + 3eb4: 534d1301 movtpl r1, #54017 ; 0xd301 + 3eb8: 4f545f47 svcmi 0x00545f47 + 3ebc: 5351525f cmppl r1, #-268435451 ; 0xf0000005 + 3ec0: 13000054 movwne r0, #84 ; 0x54 + 3ec4: 5f47534d svcpl 0x0047534d + 3ec8: 505f4f54 subspl r4, pc, r4, asr pc + 3ecc: 45535341 ldrbmi r5, [r3, #-833] + 3ed0: 4f545f44 svcmi 0x00545f44 + 3ed4: 5645445f undefined + 3ed8: 00454349 subeq r4, r5, r9, asr #6 + 3edc: 534d1301 movtpl r1, #54017 ; 0xd301 + 3ee0: 4f545f47 svcmi 0x00545f47 + 3ee4: 5443415f strbpl r4, [r3], #-351 + 3ee8: 5f4e4f49 svcpl 0x004e4f49 + 3eec: 504d4f43 subpl r4, sp, r3, asr #30 + 3ef0: 4554454c ldrbmi r4, [r4, #-1356] + 3ef4: 4355535f cmpmi r5, #2080374785 ; 0x7c000001 + 3ef8: 53534543 cmppl r3, #281018368 ; 0x10c00000 + 3efc: 4d130200 lfmmi f0, 4, [r3] + 3f00: 545f4753 ldrbpl r4, [pc], #1875 ; 3f08 + 3f04: 43415f4f movtmi r5, #8015 ; 0x1f4f + 3f08: 4e4f4954 mcrmi 9, 2, r4, cr15, cr4, {2} + 3f0c: 4d4f435f stclmi 3, cr4, [pc, #-380] + 3f10: 54454c50 strbpl r4, [r5], #-3152 + 3f14: 41465f45 cmpmi r6, r5, asr #30 + 3f18: 03004c49 movweq r4, #3145 ; 0xc49 + 3f1c: 47534d13 smmlami r3, r3, sp, r4 + 3f20: 5f4f545f svcpl 0x004f545f + 3f24: 54535152 ldrbpl r5, [r3], #-338 + 3f28: 4f42415f svcmi 0x0042415f + 3f2c: 04005452 streq r5, [r0], #-1106 + 3f30: 47534d13 smmlami r3, r3, sp, r4 + 3f34: 5f4f545f svcpl 0x004f545f + 3f38: 524f4241 subpl r4, pc, #268435460 ; 0x10000004 + 3f3c: 00444554 subeq r4, r4, r4, asr r5 + 3f40: 414d1305 cmpmi sp, r5, lsl #6 + 3f44: 534d5f58 movtpl r5, #57176 ; 0xdf58 + 3f48: 4f545f47 svcmi 0x00545f47 + 3f4c: 4154535f cmpmi r4, pc, asr r3 + 3f50: 06004554 undefined + 3f54: 03c81200 biceq r1, r8, #0 ; 0x0 + 3f58: 736d0000 cmnvc sp, #0 ; 0x0 + 3f5c: 79745f67 ldmdbvc r4!, {r0, r1, r2, r5, r6, r8, r9, sl, fp, ip, lr}^ + 3f60: 745f6570 ldrbvc r6, [pc], #1392 ; 3f68 + 3f64: 01006761 tsteq r0, r1, ror #14 + 3f68: 00585413 subseq r5, r8, r3, lsl r4 + 3f6c: 58521300 ldmdapl r2, {r8, r9, ip}^ + 3f70: 45130100 ldrmi r0, [r3, #-256] + 3f74: 13020044 movwne r0, #8260 ; 0x2044 + 3f78: 03004f54 movweq r4, #3924 ; 0xf54 + 3f7c: 58414d13 stmdapl r1, {r0, r1, r4, r8, sl, fp, lr}^ + 3f80: 47534d5f undefined + 3f84: 5059545f subspl r5, r9, pc, asr r4 + 3f88: 00040045 andeq r0, r4, r5, asr #32 + 3f8c: 0003ce14 andeq ip, r3, r4, lsl lr + 3f90: da140000 ble 503f98 + 3f94: 15000003 strne r0, [r0, #-3] + 3f98: 000a2813 andeq r2, sl, r3, lsl r8 + 3f9c: e7160000 ldr r0, [r6, -r0] + 3fa0: 13000003 movwne r0, #3 ; 0x3 + 3fa4: 00000a28 andeq r0, r0, r8, lsr #20 + 3fa8: 16000017 undefined + 3fac: 000003f4 strdeq r0, [r0], -r4 + 3fb0: 000a2813 andeq r2, sl, r3, lsl r8 + 3fb4: 00011700 andeq r1, r1, r0, lsl #14 + 3fb8: 0003ff16 andeq pc, r3, r6, lsl pc + 3fbc: 01c41500 biceq r1, r4, r0, lsl #10 + 3fc0: 16000317 undefined + 3fc4: 0000040a andeq r0, r0, sl, lsl #8 + 3fc8: 17029215 smladne r2, r5, r2, r9 + 3fcc: 15160003 ldrne r0, [r6, #-3] + 3fd0: 15000004 strne r0, [r0, #-4] + 3fd4: 031701e3 tsteq r7, #-1073741768 ; 0xc0000038 + 3fd8: 04221600 strteq r1, [r2], #-1536 + 3fdc: 55130000 ldrpl r0, [r3] + 3fe0: 1700000a strne r0, [r0, -sl] + 3fe4: 2f160003 svccs 0x00160003 + 3fe8: 13000004 movwne r0, #4 ; 0x4 + 3fec: 00000a55 andeq r0, r0, r5, asr sl + 3ff0: 16000917 undefined + 3ff4: 0000043a andeq r0, r0, sl, lsr r4 + 3ff8: 1701c415 smladne r1, r5, r4, ip + 3ffc: 4516000f ldrmi r0, [r6, #-15] + 4000: 15000004 strne r0, [r0, #-4] + 4004: 0f1701e9 svceq 0x001701e9 + 4008: 04521600 ldrbeq r1, [r2], #-1536 + 400c: 28130000 ldmdacs r3, {} + 4010: 1700000a strne r0, [r0, -sl] + 4014: 1a18000f bne 604058 + 4018: 04000008 streq r0, [r0], #-8 + 401c: 0a551319 beq 1548c88 + 4020: 61010000 tstvs r1, r0 + 4024: 6f697463 svcvs 0x00697463 + 4028: 74735f6e ldrbtvc r5, [r3], #-3950 + 402c: 65747261 ldrbvs r7, [r4, #-609]! + 4030: 6c665f64 stclvs 15, cr5, [r6], #-400 + 4034: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4038: 01040023 tsteq r4, r3, lsr #32 + 403c: 5513191f ldrpl r1, [r3, #-2335] + 4040: 0100000a tsteq r0, sl + 4044: 636e7973 cmnvs lr, #1884160 ; 0x1cc000 + 4048: 7465645f strbtvc r6, [r5], #-1119 + 404c: 65746365 ldrbvs r6, [r4, #-869]! + 4050: 6c665f64 stclvs 15, cr5, [r6], #-400 + 4054: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4058: 01040023 tsteq r4, r3, lsr #32 + 405c: 5513191e ldrpl r1, [r3, #-2334] + 4060: 0100000a tsteq r0, sl + 4064: 656d6974 strbvs r6, [sp, #-2420]! + 4068: 5f74756f svcpl 0x0074756f + 406c: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 4070: 00230200 eoreq r0, r3, r0, lsl #4 + 4074: 191d0104 ldmdbne sp, {r2, r8} + 4078: 000a5513 andeq r5, sl, r3, lsl r5 + 407c: 68630100 stmdavs r3!, {r8}^ + 4080: 736b6365 cmnvc fp, #-1811939327 ; 0x94000001 + 4084: 665f6d75 undefined + 4088: 656c6961 strbvs r6, [ip, #-2401]! + 408c: 6c665f64 stclvs 15, cr5, [r6], #-400 + 4090: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4094: 01040023 tsteq r4, r3, lsr #32 + 4098: 5513191c ldrpl r1, [r3, #-2332] + 409c: 0100000a tsteq r0, sl + 40a0: 61746164 cmnvs r4, r4, ror #2 + 40a4: 646e695f strbtvs r6, [lr], #-2399 + 40a8: 74616369 strbtvc r6, [r1], #-873 + 40ac: 5f6e6f69 svcpl 0x006e6f69 + 40b0: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 40b4: 00230200 eoreq r0, r3, r0, lsl #4 + 40b8: 191b0104 ldmdbne fp, {r2, r8} + 40bc: 000a5513 andeq r5, sl, r3, lsl r5 + 40c0: 63610100 cmnvs r1, #0 ; 0x0 + 40c4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 40c8: 6d6f635f stclvs 3, cr6, [pc, #-380]! + 40cc: 74656c70 strbtvc r6, [r5], #-3184 + 40d0: 6c665f65 stclvs 15, cr5, [r6], #-404 + 40d4: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 40d8: 01040023 tsteq r4, r3, lsr #32 + 40dc: 5513191a ldrpl r1, [r3, #-2330] + 40e0: 0100000a tsteq r0, sl + 40e4: 735f6361 cmpvc pc, #-2080374783 ; 0x84000001 + 40e8: 65636375 strbvs r6, [r3, #-885]! + 40ec: 665f7373 undefined + 40f0: 0067616c rsbeq r6, r7, ip, ror #2 + 40f4: 04002302 streq r2, [r0], #-770 + 40f8: 13191901 tstne r9, #16384 ; 0x4000 + 40fc: 00000a55 andeq r0, r0, r5, asr sl + 4100: 5f636101 svcpl 0x00636101 + 4104: 656d6974 strbvs r6, [sp, #-2420]! + 4108: 5f74756f svcpl 0x0074756f + 410c: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 4110: 00230200 eoreq r0, r3, r0, lsl #4 + 4114: 19180104 ldmdbne r8, {r2, r8} + 4118: 000a5513 andeq r5, sl, r3, lsl r5 + 411c: 63610100 cmnvs r1, #0 ; 0x0 + 4120: 6168635f cmnvs r8, pc, asr r3 + 4124: 6c656e6e stclvs 14, cr6, [r5], #-440 + 4128: 7375625f cmnvc r5, #-268435451 ; 0xf0000005 + 412c: 6c665f79 stclvs 15, cr5, [r6], #-484 + 4130: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4134: 01040023 tsteq r4, r3, lsr #32 + 4138: 55131917 ldrpl r1, [r3, #-2327] + 413c: 0100000a tsteq r0, sl + 4140: 635f6361 cmpvs pc, #-2080374783 ; 0x84000001 + 4144: 665f6372 undefined + 4148: 656c6961 strbvs r6, [ip, #-2401]! + 414c: 6c665f64 stclvs 15, cr5, [r6], #-400 + 4150: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4154: 01040023 tsteq r4, r3, lsr #32 + 4158: 55131916 ldrpl r1, [r3, #-2326] + 415c: 0100000a tsteq r0, sl + 4160: 615f6361 cmpvs pc, r1, ror #6 + 4164: 74726f62 ldrbtvc r6, [r2], #-3938 + 4168: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 416c: 0067616c rsbeq r6, r7, ip, ror #2 + 4170: 04002302 streq r2, [r0], #-770 + 4174: 13191501 tstne r9, #4194304 ; 0x400000 + 4178: 00000a55 andeq r0, r0, r5, asr sl + 417c: 5f636101 svcpl 0x00636101 + 4180: 615f6f6e cmpvs pc, lr, ror #30 + 4184: 665f6b63 ldrbvs r6, [pc], -r3, ror #22 + 4188: 0067616c rsbeq r6, r7, ip, ror #2 + 418c: 04002302 streq r2, [r0], #-770 + 4190: 13191401 tstne r9, #16777216 ; 0x1000000 + 4194: 00000a55 andeq r0, r0, r5, asr sl + 4198: 5f636101 svcpl 0x00636101 + 419c: 645f6f6e ldrbvs r6, [pc], #3950 ; 41a4 + 41a0: 5f617461 svcpl 0x00617461 + 41a4: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 41a8: 00230200 eoreq r0, r3, r0, lsl #4 + 41ac: 19130104 ldmdbne r3, {r2, r8} + 41b0: 000a5513 andeq r5, sl, r3, lsl r5 + 41b4: 63610100 cmnvs r1, #0 ; 0x0 + 41b8: 74616c5f strbtvc r6, [r1], #-3167 + 41bc: 74735f65 ldrbtvc r5, [r3], #-3941 + 41c0: 5f747261 svcpl 0x00747261 + 41c4: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 41c8: 00230200 eoreq r0, r3, r0, lsl #4 + 41cc: 19120104 ldmdbne r2, {r2, r8} + 41d0: 000a5513 andeq r5, sl, r3, lsl r5 + 41d4: 63610100 cmnvs r1, #0 ; 0x0 + 41d8: 7478655f ldrbtvc r6, [r8], #-1375 + 41dc: 6d69745f cfstrdvs mvd7, [r9, #-380]! + 41e0: 74756f65 ldrbtvc r6, [r5], #-3941 + 41e4: 616c665f cmnvs ip, pc, asr r6 + 41e8: 23020067 movwcs r0, #8295 ; 0x2067 + 41ec: 11010400 tstne r1, r0, lsl #8 + 41f0: 0a551319 beq 1548e5c + 41f4: 61010000 tstvs r1, r0 + 41f8: 78655f63 stmdavc r5!, {r0, r1, r5, r6, r8, r9, sl, fp, ip, lr}^ + 41fc: 6e705f74 mrcvs 15, 3, r5, cr0, cr4, {3} + 4200: 69745f64 ldmdbvs r4!, {r2, r5, r6, r8, r9, sl, fp, ip, lr}^ + 4204: 756f656d strbvc r6, [pc, #-1389]! ; 3c9f + 4208: 6c665f74 stclvs 15, cr5, [r6], #-464 + 420c: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4210: 01040023 tsteq r4, r3, lsr #32 + 4214: 55131910 ldrpl r1, [r3, #-2320] + 4218: 0100000a tsteq r0, sl + 421c: 705f6361 subsvc r6, pc, r1, ror #6 + 4220: 755f6c6c ldrbvc r6, [pc, #-3180] ; 35bc + 4224: 636f6c6e cmnvs pc, #28160 ; 0x6e00 + 4228: 6c665f6b stclvs 15, cr5, [r6], #-428 + 422c: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4230: 01040023 tsteq r4, r3, lsr #32 + 4234: 5513190f ldrpl r1, [r3, #-2319] + 4238: 0100000a tsteq r0, sl + 423c: 655f6361 ldrbvs r6, [pc, #-865] ; 3ee3 + 4240: 72657478 rsbvc r7, r5, #2013265920 ; 0x78000000 + 4244: 5f6c616e svcpl 0x006c616e + 4248: 726f6261 rsbvc r6, pc, #268435462 ; 0x10000006 + 424c: 6c665f74 stclvs 15, cr5, [r6], #-464 + 4250: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4254: 01040023 tsteq r4, r3, lsr #32 + 4258: 5513190e ldrpl r1, [r3, #-2318] + 425c: 0100000a tsteq r0, sl + 4260: 6e5f6361 cdpvs 3, 5, cr6, cr15, cr1, {3} + 4264: 635f746f cmpvs pc, #1862270976 ; 0x6f000000 + 4268: 6c706d6f ldclvs 13, cr6, [r0], #-444 + 426c: 64657465 strbtvs r7, [r5], #-1125 + 4270: 616c665f cmnvs ip, pc, asr r6 + 4274: 23020067 movwcs r0, #8295 ; 0x2067 + 4278: 0d010400 cfstrseq mvf0, [r1] + 427c: 0a551319 beq 1548ee8 + 4280: 61010000 tstvs r1, r0 + 4284: 6d645f63 stclvs 15, cr5, [r4, #-396]! + 4288: 75625f61 strbvc r5, [r2, #-3937]! + 428c: 72655f73 rsbvc r5, r5, #460 ; 0x1cc + 4290: 5f726f72 svcpl 0x00726f72 + 4294: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 4298: 00230200 eoreq r0, r3, r0, lsl #4 + 429c: 190c0104 stmdbne ip, {r2, r8} + 42a0: 000a5513 andeq r5, sl, r3, lsl r5 + 42a4: 69660100 stmdbvs r6!, {r8}^ + 42a8: 7265746c rsbvc r7, r5, #1811939328 ; 0x6c000000 + 42ac: 6961665f stmdbvs r1!, {r0, r1, r2, r3, r4, r6, r9, sl, sp, lr}^ + 42b0: 5f64656c svcpl 0x0064656c + 42b4: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 42b8: 00230200 eoreq r0, r3, r0, lsl #4 + 42bc: 190b0104 stmdbne fp, {r2, r8} + 42c0: 000a5513 andeq r5, sl, r3, lsl r5 + 42c4: 6f6e0100 svcvs 0x006e0100 + 42c8: 73755f74 cmnvc r5, #464 ; 0x1d0 + 42cc: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 42d0: 02003130 andeq r3, r0, #12 ; 0xc + 42d4: 01040023 tsteq r4, r3, lsr #32 + 42d8: 5513190a ldrpl r1, [r3, #-2314] + 42dc: 0100000a tsteq r0, sl + 42e0: 5f746f6e svcpl 0x00746f6e + 42e4: 64657375 strbtvs r7, [r5], #-885 + 42e8: 3230665f eorscc r6, r0, #99614720 ; 0x5f00000 + 42ec: 00230200 eoreq r0, r3, r0, lsl #4 + 42f0: 19090104 stmdbne r9, {r2, r8} + 42f4: 000a5513 andeq r5, sl, r3, lsl r5 + 42f8: 6f6e0100 svcvs 0x006e0100 + 42fc: 73755f74 cmnvc r5, #464 ; 0x1d0 + 4300: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 4304: 02003330 andeq r3, r0, #-1073741824 ; 0xc0000000 + 4308: 01040023 tsteq r4, r3, lsr #32 + 430c: 55131908 ldrpl r1, [r3, #-2312] + 4310: 0100000a tsteq r0, sl + 4314: 5f746f6e svcpl 0x00746f6e + 4318: 64657375 strbtvs r7, [r5], #-885 + 431c: 3430665f ldrtcc r6, [r0], #-1631 + 4320: 00230200 eoreq r0, r3, r0, lsl #4 + 4324: 19070104 stmdbne r7, {r2, r8} + 4328: 000a5513 andeq r5, sl, r3, lsl r5 + 432c: 6f6e0100 svcvs 0x006e0100 + 4330: 73755f74 cmnvc r5, #464 ; 0x1d0 + 4334: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 4338: 02003530 andeq r3, r0, #201326592 ; 0xc000000 + 433c: 01040023 tsteq r4, r3, lsr #32 + 4340: 55131906 ldrpl r1, [r3, #-2310] + 4344: 0100000a tsteq r0, sl + 4348: 5f746f6e svcpl 0x00746f6e + 434c: 64657375 strbtvs r7, [r5], #-885 + 4350: 3630665f undefined + 4354: 00230200 eoreq r0, r3, r0, lsl #4 + 4358: 19050104 stmdbne r5, {r2, r8} + 435c: 000a5513 andeq r5, sl, r3, lsl r5 + 4360: 6f6e0100 svcvs 0x006e0100 + 4364: 73755f74 cmnvc r5, #464 ; 0x1d0 + 4368: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 436c: 02003730 andeq r3, r0, #12582912 ; 0xc00000 + 4370: 01040023 tsteq r4, r3, lsr #32 + 4374: 55131904 ldrpl r1, [r3, #-2308] + 4378: 0100000a tsteq r0, sl + 437c: 5f746f6e svcpl 0x00746f6e + 4380: 64657375 strbtvs r7, [r5], #-885 + 4384: 3830665f ldmdacc r0!, {r0, r1, r2, r3, r4, r6, r9, sl, sp, lr} + 4388: 00230200 eoreq r0, r3, r0, lsl #4 + 438c: 19030104 stmdbne r3, {r2, r8} + 4390: 000a5513 andeq r5, sl, r3, lsl r5 + 4394: 6f6e0100 svcvs 0x006e0100 + 4398: 73755f74 cmnvc r5, #464 ; 0x1d0 + 439c: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 43a0: 02003930 andeq r3, r0, #786432 ; 0xc0000 + 43a4: 01040023 tsteq r4, r3, lsr #32 + 43a8: 55131902 ldrpl r1, [r3, #-2306] + 43ac: 0100000a tsteq r0, sl + 43b0: 5f746f6e svcpl 0x00746f6e + 43b4: 64657375 strbtvs r7, [r5], #-885 + 43b8: 3031665f eorscc r6, r1, pc, asr r6 + 43bc: 00230200 eoreq r0, r3, r0, lsl #4 + 43c0: 19010104 stmdbne r1, {r2, r8} + 43c4: 000a5513 andeq r5, sl, r3, lsl r5 + 43c8: 6f6e0100 svcvs 0x006e0100 + 43cc: 73755f74 cmnvc r5, #464 ; 0x1d0 + 43d0: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 43d4: 02003131 andeq r3, r0, #1073741836 ; 0x4000000c + 43d8: 01040023 tsteq r4, r3, lsr #32 + 43dc: 4e1a0000 wxormi wr0, wr10, wr0 + 43e0: 73000008 movwvc r0, #8 ; 0x8 + 43e4: 5f63616d svcpl 0x0063616d + 43e8: 5f756470 svcpl 0x00756470 + 43ec: 00676174 rsbeq r6, r7, r4, ror r1 + 43f0: e7151b03 ldr r1, [r5, -r3, lsl #22] + 43f4: 65720107 ldrbvs r0, [r2, #-263]! + 43f8: 76726573 undefined + 43fc: 02006465 andeq r6, r0, #1694498816 ; 0x65000000 + 4400: 151b0023 ldrne r0, [fp, #-35] + 4404: 750107da strvc r0, [r1, #-2010] + 4408: 74614438 strbtvc r4, [r1], #-1080 + 440c: 23020061 movwcs r0, #8289 ; 0x2061 + 4410: 911a0002 tstls sl, r2 + 4414: 6d000008 stcvs 0, cr0, [r0, #-32] + 4418: 735f6773 cmpvc pc, #30146560 ; 0x1cc0000 + 441c: 75746174 ldrbvc r6, [r4, #-372]! + 4420: 61745f73 cmnvs r4, r3, ror pc + 4424: 19010067 stmdbne r1, {r0, r1, r2, r5, r6} + 4428: 000a1513 andeq r1, sl, r3, lsl r5 + 442c: 736d0100 cmnvc sp, #0 ; 0x0 + 4430: 79745f67 ldmdbvc r4!, {r0, r1, r2, r5, r6, r8, r9, sl, fp, ip, lr}^ + 4434: 02006570 andeq r6, r0, #469762048 ; 0x1c000000 + 4438: 03010023 movweq r0, #4131 ; 0x1023 + 443c: 28131905 ldmdacs r3, {r0, r2, r8, fp, ip} + 4440: 0100000a tsteq r0, sl + 4444: 5f67736d svcpl 0x0067736d + 4448: 74617473 strbtvc r7, [r1], #-1139 + 444c: 23020065 movwcs r0, #8293 ; 0x2065 + 4450: 00050100 andeq r0, r5, r0, lsl #2 + 4454: 08f81a00 ldmeq r8!, {r9, fp, ip}^ + 4458: 656d0000 strbvs r0, [sp]! + 445c: 67617373 undefined + 4460: 61745f65 cmnvs r4, r5, ror #30 + 4464: 1b100067 blne 404608 + 4468: 000aa113 andeq sl, sl, r3, lsl r1 + 446c: 38750100 ldmdacc r5!, {r8}^ + 4470: 74617453 strbtvc r7, [r1], #-1107 + 4474: 02007375 andeq r7, r0, #-738197503 ; 0xd4000001 + 4478: 151b0023 ldrne r0, [fp, #-35] + 447c: 700101d5 ldrdvc r0, [r1], -r5 + 4480: 75423875 strbvc r3, [r2, #-2165] + 4484: 72656666 rsbvc r6, r5, #106954752 ; 0x6600000 + 4488: 04230200 strteq r0, [r3], #-512 + 448c: 0a28131b beq a09100 + 4490: 75010000 strvc r0, [r1] + 4494: 66754238 undefined + 4498: 657a6953 ldrbvs r6, [sl, #-2387]! + 449c: 08230200 stmdaeq r3!, {r9} + 44a0: 0a65131b beq 1949114 + 44a4: 63010000 movwvs r0, #4096 ; 0x1000 + 44a8: 74614462 strbtvc r4, [r1], #-1122 + 44ac: 646e4961 strbtvs r4, [lr], #-2401 + 44b0: 74616369 strbtvc r6, [r1], #-873 + 44b4: 006e6f69 rsbeq r6, lr, r9, ror #30 + 44b8: 000c2302 andeq r2, ip, r2, lsl #6 + 44bc: 0009291c andeq r2, r9, ip, lsl r9 + 44c0: 6e766500 cdpvs 5, 7, cr6, cr6, cr0, {0} + 44c4: 6c665f74 stclvs 15, cr5, [r6], #-464 + 44c8: 5f736761 svcpl 0x00736761 + 44cc: 00676174 rsbeq r6, r7, r4, ror r1 + 44d0: d2151b04 andsle r1, r5, #4096 ; 0x1000 + 44d4: 69420108 stmdbvs r2, {r3, r8}^ + 44d8: 02007374 andeq r7, r0, #-805306367 ; 0xd0000001 + 44dc: 131b0023 tstne fp, #35 ; 0x23 + 44e0: 00000a55 andeq r0, r0, r5, asr sl + 44e4: 67655201 strbvs r5, [r5, -r1, lsl #4]! + 44e8: 00230200 eoreq r0, r3, r0, lsl #4 + 44ec: 098a1c00 stmibeq sl, {sl, fp, ip} + 44f0: 6e610000 cdpvs 0, 6, cr0, cr1, cr0, {0} + 44f4: 736d5f79 cmnvc sp, #484 ; 0x1e4 + 44f8: 735f6773 cmpvc pc, #30146560 ; 0x1cc0000 + 44fc: 65746174 ldrbvs r6, [r4, #-372]! + 4500: 6761745f undefined + 4504: 131b0100 tstne fp, #0 ; 0x0 + 4508: 000009b7 strheq r0, [r0], -r7 + 450c: 00787401 rsbseq r7, r8, r1, lsl #8 + 4510: 1b002302 blne d120 + 4514: 0009ce13 andeq ip, r9, r3, lsl lr + 4518: 78720100 ldmdavc r2!, {r8}^ + 451c: 00230200 eoreq r0, r3, r0, lsl #4 + 4520: 09e7131b stmibeq r7!, {r0, r1, r3, r4, r8, r9, ip}^ + 4524: 65010000 strvs r0, [r1] + 4528: 23020064 movwcs r0, #8292 ; 0x2064 + 452c: fe131b00 cdp2 11, 1, cr1, cr3, cr0, {0} + 4530: 01000009 tsteq r0, r9 + 4534: 02006f74 andeq r6, r0, #464 ; 0x1d0 + 4538: 131b0023 tstne fp, #35 ; 0x23 + 453c: 00000a28 andeq r0, r0, r8, lsr #20 + 4540: 796e6101 stmdbvc lr!, {r0, r8, sp, lr}^ + 4544: 7079745f rsbsvc r7, r9, pc, asr r4 + 4548: 23020065 movwcs r0, #8293 ; 0x2065 + 454c: 461d0000 ldrmi r0, [sp], -r0 + 4550: 52636e75 rsbpl r6, r3, #1872 ; 0x750 + 4554: 72757465 rsbsvc r7, r5, #1694498816 ; 0x65000000 + 4558: 00745f6e rsbseq r5, r4, lr, ror #30 + 455c: 002af610 eoreq pc, sl, r0, lsl r6 + 4560: 03500800 cmpeq r0, #0 ; 0x0 + 4564: 6168631d cmnvs r8, sp, lsl r3 + 4568: 6c656e6e stclvs 14, cr6, [r5], #-440 + 456c: 6d756e5f ldclvs 14, cr6, [r5, #-380]! + 4570: 1000745f andne r7, r0, pc, asr r4 + 4574: 00005bde ldrdeq r5, [r0], -lr + 4578: 1d036508 cfstr32ne mvfx6, [r3, #-32] + 457c: 5f67736d svcpl 0x0067736d + 4580: 735f7874 cmpvc pc, #7602176 ; 0x740000 + 4584: 65746174 ldrbvs r6, [r4, #-372]! + 4588: 1500745f strne r7, [r0, #-1119] + 458c: ac0902b0 sfmge f0, 4, [r9], {176} + 4590: 6d1d0201 lfmvs f0, 4, [sp, #-4] + 4594: 725f6773 subsvc r6, pc, #30146560 ; 0x1cc0000 + 4598: 74735f78 ldrbtvc r5, [r3], #-3960 + 459c: 5f657461 svcpl 0x00657461 + 45a0: d7100074 undefined + 45a4: 0900004b stmdbeq r0, {r0, r1, r3, r6} + 45a8: 1d0201ba stfnes f0, [r2, #-744] + 45ac: 5f67736d svcpl 0x0067736d + 45b0: 735f6465 cmpvc pc, #1694498816 ; 0x65000000 + 45b4: 65746174 ldrbvs r6, [r4, #-372]! + 45b8: 1500745f strne r7, [r0, #-1119] + 45bc: c50904a3 strgt r0, [r9, #-1187] + 45c0: 6d1d0201 lfmvs f0, 4, [sp, #-4] + 45c4: 745f6773 ldrbvc r6, [pc], #1907 ; 45cc + 45c8: 74735f6f ldrbtvc r5, [r3], #-3951 + 45cc: 5f657461 svcpl 0x00657461 + 45d0: da150074 ble 5447a8 + 45d4: 01d00905 bicseq r0, r0, r5, lsl #18 + 45d8: 736d1d02 cmnvc sp, #128 ; 0x80 + 45dc: 79745f67 ldmdbvc r4!, {r0, r1, r2, r5, r6, r8, r9, sl, fp, ip, lr}^ + 45e0: 745f6570 ldrbvc r6, [pc], #1392 ; 45e8 + 45e4: 07911500 ldreq r1, [r1, r0, lsl #10] + 45e8: 0301d909 movweq sp, #6409 ; 0x1909 + 45ec: 6e69751d mcrvs 5, 3, r7, cr9, cr13, {0} + 45f0: 745f3874 ldrbvc r3, [pc], #2164 ; 45f8 + 45f4: 01c41500 biceq r1, r4, r0, lsl #10 + 45f8: 1d191a01 fldsne s2, [r9, #-4] + 45fc: 6c6f6f62 stclvs 15, cr6, [pc], #-392 + 4600: 1500745f strne r7, [r0, #-1119] + 4604: 2c0114a8 cfstrscs mvf1, [r1], {168} + 4608: 69751d13 ldmdbvs r5!, {r0, r1, r4, r8, sl, fp, ip}^ + 460c: 3631746e ldrtcc r7, [r1], -lr, ror #8 + 4610: 1500745f strne r7, [r0, #-1119] + 4614: 1c010298 sfmne f0, 4, [r1], {152} + 4618: 69751d19 ldmdbvs r5!, {r0, r3, r4, r8, sl, fp, ip}^ + 461c: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 + 4620: 1500745f strne r7, [r0, #-1119] + 4624: 1e0101e9 adfnedz f0, f1, #1.0 + 4628: 61631d19 cmnvs r3, r9, lsl sp + 462c: 61626c6c cmnvs r2, ip, ror #24 + 4630: 745f6b63 ldrbvc r6, [pc], #2915 ; 4638 + 4634: 01e31500 mvneq r1, r0, lsl #10 + 4638: 1d0f1608 stcne 6, cr1, [pc, #-32] + 463c: 61635376 smcvs 13622 + 4640: 6c61436e stclvs 3, cr4, [r1], #-440 + 4644: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 4648: 00745f6b rsbseq r5, r4, fp, ror #30 + 464c: 0802aa15 stmdaeq r2, {r0, r2, r4, r9, fp, sp, pc} + 4650: 731d0f17 tstvc sp, #92 ; 0x5c + 4654: 5f63616d svcpl 0x0063616d + 4658: 5f756470 svcpl 0x00756470 + 465c: 9a150074 bls 544834 + 4660: 01960910 orrseq r0, r6, r0, lsl r9 + 4664: 736d1d03 cmnvc sp, #192 ; 0xc0 + 4668: 74735f67 ldrbtvc r5, [r3], #-3943 + 466c: 73757461 cmnvc r5, #1627389952 ; 0x61000000 + 4670: 1500745f strne r7, [r0, #-1119] + 4674: df0910ce svcle 0x000910ce + 4678: 6d1d0301 ldcvs 3, cr0, [sp, #-4] + 467c: 61737365 cmnvs r3, r5, ror #6 + 4680: 745f6567 ldrbvc r6, [pc], #1383 ; 4688 + 4684: 11911500 orrsne r1, r1, r0, lsl #10 + 4688: 03028309 movweq r8, #8969 ; 0x2309 + 468c: 6e76651d mrcvs 5, 3, r6, cr6, cr13, {0} + 4690: 6c665f74 stclvs 15, cr5, [r6], #-464 + 4694: 5f736761 svcpl 0x00736761 + 4698: f8150074 undefined instruction 0xf8150074 + 469c: 01910911 orrseq r0, r1, r1, lsl r9 + 46a0: 6e611d02 cdpvs 13, 6, cr1, cr1, cr2, {0} + 46a4: 736d5f79 cmnvc sp, #484 ; 0x1e4 + 46a8: 735f6773 cmpvc pc, #30146560 ; 0x1cc0000 + 46ac: 65746174 ldrbvs r6, [r4, #-372]! + 46b0: 1500745f strne r7, [r0, #-1119] + 46b4: e80912a9 stmda r9, {r0, r3, r5, r7, r9, ip} + 46b8: 00000201 andeq r0, r0, r1, lsl #4 + 46bc: 00000264 andeq r0, r0, r4, ror #4 + 46c0: 05000003 streq r0, [r0, #-3] + 46c4: 01040000 tsteq r4, r0 + 46c8: 445c3a43 ldrbmi r3, [ip], #-2627 + 46cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 46d0: 73746e65 cmnvc r4, #1616 ; 0x650 + 46d4: 646e6120 strbtvs r6, [lr], #-288 + 46d8: 74655320 strbtvc r5, [r5], #-800 + 46dc: 676e6974 undefined + 46e0: 616d5c73 smcvs 54723 + 46e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 46e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 46ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 46f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 46f4: 775c7374 undefined + 46f8: 6f632d73 svcvs 0x00632d73 + 46fc: 6f72746e svcvs 0x0072746e + 4700: 65575c6c ldrbvs r5, [r7, #-3180] + 4704: 65687461 strbvs r7, [r8, #-1121]! + 4708: 74532072 ldrbvc r2, [r3], #-114 + 470c: 6f697461 svcvs 0x00697461 + 4710: 6f43206e svcvs 0x0043206e + 4714: 6f72746e svcvs 0x0072746e + 4718: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 471c: 414d535c cmpmi sp, ip, asr r3 + 4720: 6f535c43 svcvs 0x00535c43 + 4724: 65637275 strbvs r7, [r3, #-629]! + 4728: 6461525c strbtvs r5, [r1], #-604 + 472c: 614d6f69 cmpvs sp, r9, ror #30 + 4730: 6567616e strbvs r6, [r7, #-366]! + 4734: 746e656d strbtvc r6, [lr], #-1389 + 4738: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 473c: 41205241 teqmi r0, r1, asr #4 + 4740: 2049534e subcs r5, r9, lr, asr #6 + 4744: 2b432f43 blcs 10d0458 + 4748: 6f43202b svcvs 0x0043202b + 474c: 6c69706d stclvs 0, cr7, [r9], #-436 + 4750: 56207265 strtpl r7, [r0], -r5, ror #4 + 4754: 30332e35 eorscc r2, r3, r5, lsr lr + 4758: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 475c: 35393231 ldrcc r3, [r9, #-561]! + 4760: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4764: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4768: 4154534b cmpmi r4, fp, asr #6 + 476c: 66205452 undefined + 4770: 4120726f teqmi r0, pc, ror #4 + 4774: 01004d52 tsteq r0, r2, asr sp + 4778: 000028c4 andeq r2, r0, r4, asr #17 + 477c: 0000010c andeq r0, r0, ip, lsl #2 + 4780: 61635304 cmnvs r3, r4, lsl #6 + 4784: 736d5f6e cmnvc sp, #440 ; 0x1b8 + 4788: 7a100067 bvc 40492c + 478c: 0b000046 bleq 48ac + 4790: 05010b6c streq r0, [r1, #-2924] + 4794: 40537003 subsmi r7, r3, r3 + 4798: 63610400 cmnvs r1, #0 ; 0x0 + 479c: 786f426b stmdavc pc!, {r0, r1, r3, r5, r6, r9, lr}^ + 47a0: 3fe61000 svccc 0x00e61000 + 47a4: 6a0b0000 bvs 2c47ac + 47a8: 0305010a movweq r0, #20746 ; 0x510a + 47ac: 004053c8 subeq r5, r0, r8, asr #7 + 47b0: 63536204 cmpvs r3, #1073741824 ; 0x40000000 + 47b4: 65526e61 ldrbvs r6, [r2, #-3681] + 47b8: 616c4671 smcvs 50273 + 47bc: fb100067 blx 404962 + 47c0: 0b000045 bleq 48dc + 47c4: 05010871 streq r0, [r1, #-2161] + 47c8: 40536b03 subsmi r6, r3, r3, lsl #22 + 47cc: 75630400 strbvc r0, [r3, #-1024]! + 47d0: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 47d4: 736d5f74 cmnvc sp, #464 ; 0x1d0 + 47d8: ec100067 ldc 0, cr0, [r0], {103} + 47dc: 0b000045 bleq 48f8 + 47e0: 05001045 streq r1, [r0, #-69] + 47e4: 40536903 subsmi r6, r3, r3, lsl #18 + 47e8: 61640400 cmnvs r4, r0, lsl #8 + 47ec: 63536174 cmpvs r3, #29 ; 0x1d + 47f0: 10006e61 andne r6, r0, r1, ror #28 + 47f4: 00003f9e muleq r0, lr, pc + 47f8: 0109700b tsteq r9, fp + 47fc: 53c40305 bicpl r0, r4, #335544320 ; 0x14000000 + 4800: 67040040 strvs r0, [r4, -r0, asr #32] + 4804: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 4808: 6e76456f cdpvs 5, 7, cr4, cr6, cr15, {3} + 480c: 616c4674 smcvs 50276 + 4810: 10007367 andne r7, r0, r7, ror #6 + 4814: 0000468c andeq r4, r0, ip, lsl #13 + 4818: 010e660b tsteq lr, fp, lsl #12 + 481c: 53b80305 undefined instruction 0x53b80305 + 4820: 6d040040 stcvs 0, cr0, [r4, #-256] + 4824: 636c7043 cmnvs ip, #67 ; 0x43 + 4828: 6f5f6b6c svcvs 0x005f6b6c + 482c: 65736666 ldrbvs r6, [r3, #-1638]! + 4830: 19100074 ldmdbne r0, {r2, r4, r5, r6} + 4834: 0b000046 bleq 4954 + 4838: 0500114b streq r1, [r0, #-331] + 483c: 4053b403 subsmi fp, r3, r3, lsl #8 + 4840: 526d0400 rsbpl r0, sp, #0 ; 0x0 + 4844: 69727465 ldmdbvs r2!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4848: 745f7365 ldrbvc r7, [pc], #869 ; 4850 + 484c: 656d6d69 strbvs r6, [sp, #-3433]! + 4850: ec100072 ldc 0, cr0, [r0], {114} + 4854: 0b000045 bleq 4970 + 4858: 05001042 streq r1, [r0, #-66] + 485c: 40536803 subsmi r6, r3, r3, lsl #16 + 4860: 616d0400 cmnvs sp, r0, lsl #8 + 4864: 7373654d cmnvc r3, #322961408 ; 0x13400000 + 4868: 54656761 strbtpl r6, [r5], #-1889 + 486c: d910004f ldmdble r0, {r0, r1, r2, r3, r6} + 4870: 0b00003f bleq 4974 + 4874: 05001148 streq r1, [r0, #-328] + 4878: 4053a403 subsmi sl, r3, r3, lsl #8 + 487c: 616d0400 cmnvs sp, r0, lsl #8 + 4880: 7373654d cmnvc r3, #322961408 ; 0x13400000 + 4884: 5f656761 svcpl 0x00656761 + 4888: 75657551 strbvc r7, [r5, #-1361]! + 488c: 3fc31000 svccc 0x00c31000 + 4890: 470b0000 strmi r0, [fp, -r0] + 4894: 03050013 movweq r0, #20499 ; 0x5013 + 4898: 00405394 umaaleq r5, r0, r4, r3 + 489c: 78656e04 stmdavc r5!, {r2, r9, sl, fp, sp, lr}^ + 48a0: 736d5f74 cmnvc sp, #464 ; 0x1d0 + 48a4: 6f745f67 svcvs 0x00745f67 + 48a8: 6f74735f svcvs 0x0074735f + 48ac: 10006572 andne r6, r0, r2, ror r5 + 48b0: 000045ec andeq r4, r0, ip, ror #11 + 48b4: 0010460b andseq r4, r0, fp, lsl #12 + 48b8: 536a0305 cmnpl sl, #335544320 ; 0x14000000 + 48bc: 75040040 strvc r0, [r4, #-64] + 48c0: 68433631 stmdavs r3, {r0, r4, r5, r9, sl, ip, sp}^ + 48c4: 546e6e61 strbtpl r6, [lr], #-3681 + 48c8: 6163536f cmnvs r3, pc, ror #6 + 48cc: 0910006e ldmdbeq r0, {r1, r2, r3, r5, r6} + 48d0: 0b000046 bleq 49f0 + 48d4: 05010a6e streq r0, [r1, #-2670] + 48d8: 40539003 subsmi r9, r3, r3 + 48dc: 38750400 ldmdacc r5!, {sl}^ + 48e0: 6e616353 mcrvs 3, 3, r6, cr1, cr3, {2} + 48e4: 506c6156 rsbpl r6, ip, r6, asr r1 + 48e8: 68437265 stmdavs r3, {r0, r2, r5, r6, r9, ip, sp, lr}^ + 48ec: 006e6e61 rsbeq r6, lr, r1, ror #28 + 48f0: 00400910 subeq r0, r0, r0, lsl r9 + 48f4: 096f0b00 stmdbeq pc!, {r8, r9, fp}^ + 48f8: 80030501 andhi r0, r3, r1, lsl #10 + 48fc: 04004053 streq r4, [r0], #-83 + 4900: 61635376 smcvs 13622 + 4904: 7165526e cmnvc r5, lr, ror #4 + 4908: 6c6c6143 stfvse f6, [ip], #-268 + 490c: 6b636142 blvs 18dce1c + 4910: 463b1000 ldrtmi r1, [fp], -r0 + 4914: 6d0b0000 stcvs 0, cr0, [fp] + 4918: 03050111 movweq r0, #20753 ; 0x5111 + 491c: 004053bc strheq r5, [r0], #-60 + 4920: 00000000 andeq r0, r0, r0 + 4924: 000000e0 andeq r0, r0, r0, ror #1 + 4928: 05000003 streq r0, [r0, #-3] + 492c: 01040000 tsteq r4, r0 + 4930: 445c3a43 ldrbmi r3, [ip], #-2627 + 4934: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4938: 73746e65 cmnvc r4, #1616 ; 0x650 + 493c: 646e6120 strbtvs r6, [lr], #-288 + 4940: 74655320 strbtvc r5, [r5], #-800 + 4944: 676e6974 undefined + 4948: 616d5c73 smcvs 54723 + 494c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4950: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4954: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4958: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 495c: 775c7374 undefined + 4960: 6f632d73 svcvs 0x00632d73 + 4964: 6f72746e svcvs 0x0072746e + 4968: 65575c6c ldrbvs r5, [r7, #-3180] + 496c: 65687461 strbvs r7, [r8, #-1121]! + 4970: 74532072 ldrbvc r2, [r3], #-114 + 4974: 6f697461 svcvs 0x00697461 + 4978: 6f43206e svcvs 0x0043206e + 497c: 6f72746e svcvs 0x0072746e + 4980: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4984: 414d535c cmpmi sp, ip, asr r3 + 4988: 6f535c43 svcvs 0x00535c43 + 498c: 65637275 strbvs r7, [r3, #-629]! + 4990: 6461525c strbtvs r5, [r1], #-604 + 4994: 614d6f69 cmpvs sp, r9, ror #30 + 4998: 6567616e strbvs r6, [r7, #-366]! + 499c: 746e656d strbtvc r6, [lr], #-1389 + 49a0: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 49a4: 41205241 teqmi r0, r1, asr #4 + 49a8: 2049534e subcs r5, r9, lr, asr #6 + 49ac: 2b432f43 blcs 10d06c0 + 49b0: 6f43202b svcvs 0x0043202b + 49b4: 6c69706d stclvs 0, cr7, [r9], #-436 + 49b8: 56207265 strtpl r7, [r0], -r5, ror #4 + 49bc: 30332e35 eorscc r2, r3, r5, lsr lr + 49c0: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 49c4: 35393231 ldrcc r3, [r9, #-561]! + 49c8: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 49cc: 43494b20 movtmi r4, #39712 ; 0x9b20 + 49d0: 4154534b cmpmi r4, fp, asr #6 + 49d4: 66205452 undefined + 49d8: 4120726f teqmi r0, pc, ror #4 + 49dc: 01004d52 tsteq r0, r2, asr sp + 49e0: 000028c4 andeq r2, r0, r4, asr #17 + 49e4: 0000010c andeq r0, r0, ip, lsl #2 + 49e8: 50626304 rsbpl r6, r2, r4, lsl #6 + 49ec: 65636f72 strbvs r6, [r3, #-3954]! + 49f0: 734d7373 movtvc r7, #54131 ; 0xd373 + 49f4: 00635f67 rsbeq r5, r3, r7, ror #30 + 49f8: 003cbe10 eorseq fp, ip, r0, lsl lr + 49fc: 19540b00 ldmdbne r4, {r8, r9, fp}^ + 4a00: 04030500 streq r0, [r3], #-1280 + 4a04: 0000403f andeq r4, r0, pc, lsr r0 + 4a08: 00000104 andeq r0, r0, r4, lsl #2 + 4a0c: 05000003 streq r0, [r0, #-3] + 4a10: 01040000 tsteq r4, r0 + 4a14: 445c3a43 ldrbmi r3, [ip], #-2627 + 4a18: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4a1c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4a20: 646e6120 strbtvs r6, [lr], #-288 + 4a24: 74655320 strbtvc r5, [r5], #-800 + 4a28: 676e6974 undefined + 4a2c: 616d5c73 smcvs 54723 + 4a30: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4a34: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4a38: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4a3c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4a40: 775c7374 undefined + 4a44: 6f632d73 svcvs 0x00632d73 + 4a48: 6f72746e svcvs 0x0072746e + 4a4c: 65575c6c ldrbvs r5, [r7, #-3180] + 4a50: 65687461 strbvs r7, [r8, #-1121]! + 4a54: 74532072 ldrbvc r2, [r3], #-114 + 4a58: 6f697461 svcvs 0x00697461 + 4a5c: 6f43206e svcvs 0x0043206e + 4a60: 6f72746e svcvs 0x0072746e + 4a64: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4a68: 414d535c cmpmi sp, ip, asr r3 + 4a6c: 6f535c43 svcvs 0x00535c43 + 4a70: 65637275 strbvs r7, [r3, #-629]! + 4a74: 6461525c strbtvs r5, [r1], #-604 + 4a78: 614d6f69 cmpvs sp, r9, ror #30 + 4a7c: 6567616e strbvs r6, [r7, #-366]! + 4a80: 746e656d strbtvc r6, [lr], #-1389 + 4a84: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 4a88: 41205241 teqmi r0, r1, asr #4 + 4a8c: 2049534e subcs r5, r9, lr, asr #6 + 4a90: 2b432f43 blcs 10d07a4 + 4a94: 6f43202b svcvs 0x0043202b + 4a98: 6c69706d stclvs 0, cr7, [r9], #-436 + 4a9c: 56207265 strtpl r7, [r0], -r5, ror #4 + 4aa0: 30332e35 eorscc r2, r3, r5, lsr lr + 4aa4: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 4aa8: 35393231 ldrcc r3, [r9, #-561]! + 4aac: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4ab0: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4ab4: 4154534b cmpmi r4, fp, asr #6 + 4ab8: 66205452 undefined + 4abc: 4120726f teqmi r0, pc, ror #4 + 4ac0: 01004d52 tsteq r0, r2, asr sp + 4ac4: 000028c4 andeq r2, r0, r4, asr #17 + 4ac8: 0000010c andeq r0, r0, ip, lsl #2 + 4acc: 52616704 rsbpl r6, r1, #1048576 ; 0x100000 + 4ad0: 6e795346 cdpvs 3, 7, cr5, cr9, cr6, {2} + 4ad4: 444f4356 strbmi r4, [pc], #854 ; 4adc + 4ad8: 5f467669 svcpl 0x00467669 + 4adc: c4100063 ldrgt r0, [r0], #-99 + 4ae0: 0b00003c bleq 4bd8 + 4ae4: 05011030 streq r1, [r1, #-48] + 4ae8: 403c1403 eorsmi r1, ip, r3, lsl #8 + 4aec: 61670400 cmnvs r7, r0, lsl #8 + 4af0: 79534652 ldmdbvc r3, {r1, r4, r6, r9, sl, lr}^ + 4af4: 4f43566e svcmi 0x0043566e + 4af8: 49766944 ldmdbmi r6!, {r2, r6, r8, fp, sp, lr}^ + 4afc: 1000635f andne r6, r0, pc, asr r3 + 4b00: 00003cca andeq r3, r0, sl, asr #25 + 4b04: 010f2f0b tsteq pc, fp, lsl #30 + 4b08: 3c040305 stccc 3, cr0, [r4], {5} + 4b0c: 00000040 andeq r0, r0, r0, asr #32 + 4b10: 000001c0 andeq r0, r0, r0, asr #3 + 4b14: 05000003 streq r0, [r0, #-3] + 4b18: 01040000 tsteq r4, r0 + 4b1c: 445c3a43 ldrbmi r3, [ip], #-2627 + 4b20: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4b24: 73746e65 cmnvc r4, #1616 ; 0x650 + 4b28: 646e6120 strbtvs r6, [lr], #-288 + 4b2c: 74655320 strbtvc r5, [r5], #-800 + 4b30: 676e6974 undefined + 4b34: 616d5c73 smcvs 54723 + 4b38: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4b3c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4b40: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4b44: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4b48: 775c7374 undefined + 4b4c: 6f632d73 svcvs 0x00632d73 + 4b50: 6f72746e svcvs 0x0072746e + 4b54: 65575c6c ldrbvs r5, [r7, #-3180] + 4b58: 65687461 strbvs r7, [r8, #-1121]! + 4b5c: 74532072 ldrbvc r2, [r3], #-114 + 4b60: 6f697461 svcvs 0x00697461 + 4b64: 6f43206e svcvs 0x0043206e + 4b68: 6f72746e svcvs 0x0072746e + 4b6c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4b70: 414d535c cmpmi sp, ip, asr r3 + 4b74: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} + 4b78: 66726574 undefined + 4b7c: 5c656361 stclpl 3, cr6, [r5], #-388 + 4b80: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 4b84: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 4b88: 6d656761 stclvs 7, cr6, [r5, #-388]! + 4b8c: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 4b90: 41490068 cmpmi r9, r8, rrx + 4b94: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 4b98: 43204953 teqmi r0, #1359872 ; 0x14c000 + 4b9c: 2b2b432f blcs ad5860 + 4ba0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 4ba4: 656c6970 strbvs r6, [ip, #-2416]! + 4ba8: 35562072 ldrbcc r2, [r6, #-114] + 4bac: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 4bb0: 31332e32 teqcc r3, r2, lsr lr + 4bb4: 2f353932 svccs 0x00353932 + 4bb8: 20323357 eorscs r3, r2, r7, asr r3 + 4bbc: 4b43494b blmi 10d70f0 + 4bc0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 4bc4: 6f662054 svcvs 0x00662054 + 4bc8: 52412072 subpl r2, r1, #114 ; 0x72 + 4bcc: c401004d strgt r0, [r1], #-77 + 4bd0: 0c000028 stceq 0, cr0, [r0], {40} + 4bd4: 12000001 andne r0, r0, #1 ; 0x1 + 4bd8: 000001c0 andeq r0, r0, r0, asr #3 + 4bdc: 5f67736d svcpl 0x0067736d + 4be0: 735f7872 cmpvc pc, #7471104 ; 0x720000 + 4be4: 65746174 ldrbvs r6, [r4, #-372]! + 4be8: 6761745f undefined + 4bec: 4d130100 ldfmis f0, [r3] + 4bf0: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 + 4bf4: 51525f58 cmppl r2, r8, asr pc + 4bf8: 00005453 andeq r5, r0, r3, asr r4 + 4bfc: 47534d13 smmlami r3, r3, sp, r4 + 4c00: 5f58525f svcpl 0x0058525f + 4c04: 53534150 cmppl r3, #20 ; 0x14 + 4c08: 545f4445 ldrbpl r4, [pc], #1093 ; 4c10 + 4c0c: 45445f4f strbmi r5, [r4, #-3919] + 4c10: 45434956 strbmi r4, [r3, #-2390] + 4c14: 4d130100 ldfmis f0, [r3] + 4c18: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 + 4c1c: 43415f58 movtmi r5, #8024 ; 0x1f58 + 4c20: 4e4f4954 mcrmi 9, 2, r4, cr15, cr4, {2} + 4c24: 4154535f cmpmi r4, pc, asr r3 + 4c28: 44455452 strbmi r5, [r5], #-1106 + 4c2c: 4d130200 lfmmi f0, 4, [r3] + 4c30: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 + 4c34: 59535f58 ldmdbpl r3, {r3, r4, r6, r8, r9, sl, fp, ip, lr}^ + 4c38: 465f434e ldrbmi r4, [pc], -lr, asr #6 + 4c3c: 444e554f strbmi r5, [lr], #-1359 + 4c40: 4d130300 ldcmi 3, cr0, [r3] + 4c44: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 + 4c48: 49545f58 ldmdbmi r4, {r3, r4, r6, r8, r9, sl, fp, ip, lr}^ + 4c4c: 554f454d strbpl r4, [pc, #-1357] ; 4707 + 4c50: 41465f54 cmpmi r6, r4, asr pc + 4c54: 04004c49 streq r4, [r0], #-3145 + 4c58: 47534d13 smmlami r3, r3, sp, r4 + 4c5c: 5f58525f svcpl 0x0058525f + 4c60: 49544341 ldmdbmi r4, {r0, r6, r8, r9, lr}^ + 4c64: 435f4e4f cmpmi pc, #1264 ; 0x4f0 + 4c68: 4c504d4f mrrcmi 13, 4, r4, r0, cr15 + 4c6c: 5f455445 svcpl 0x00455445 + 4c70: 43435553 movtmi r5, #13651 ; 0x3553 + 4c74: 00535345 subseq r5, r3, r5, asr #6 + 4c78: 534d1305 movtpl r1, #54021 ; 0xd305 + 4c7c: 58525f47 ldmdapl r2, {r0, r1, r2, r6, r8, r9, sl, fp, ip, lr}^ + 4c80: 5443415f strbpl r4, [r3], #-351 + 4c84: 5f4e4f49 svcpl 0x004e4f49 + 4c88: 504d4f43 subpl r4, sp, r3, asr #30 + 4c8c: 4554454c ldrbmi r4, [r4, #-1356] + 4c90: 4941465f stmdbmi r1, {r0, r1, r2, r3, r4, r6, r9, sl, lr}^ + 4c94: 1306004c movwne r0, #24652 ; 0x604c + 4c98: 5f47534d svcpl 0x0047534d + 4c9c: 525f5852 subspl r5, pc, #5373952 ; 0x520000 + 4ca0: 5f545351 svcpl 0x00545351 + 4ca4: 524f4241 subpl r4, pc, #268435460 ; 0x10000004 + 4ca8: 13070054 movwne r0, #28756 ; 0x7054 + 4cac: 5f47534d svcpl 0x0047534d + 4cb0: 415f5852 cmpmi pc, r2, asr r8 + 4cb4: 54524f42 ldrbpl r4, [r2], #-3906 + 4cb8: 08004445 stmdaeq r0, {r0, r2, r6, sl, lr} + 4cbc: 58414d13 stmdapl r1, {r0, r1, r4, r8, sl, fp, lr}^ + 4cc0: 47534d5f undefined + 4cc4: 5f58525f svcpl 0x0058525f + 4cc8: 54415453 strbpl r5, [r1], #-1107 + 4ccc: 00090045 andeq r0, r9, r5, asr #32 + 4cd0: 00000000 andeq r0, r0, r0 + 4cd4: 00000114 andeq r0, r0, r4, lsl r1 + 4cd8: 05000003 streq r0, [r0, #-3] + 4cdc: 06040000 streq r0, [r4], -r0 + 4ce0: 445c3a43 ldrbmi r3, [ip], #-2627 + 4ce4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4ce8: 73746e65 cmnvc r4, #1616 ; 0x650 + 4cec: 646e6120 strbtvs r6, [lr], #-288 + 4cf0: 74655320 strbtvc r5, [r5], #-800 + 4cf4: 676e6974 undefined + 4cf8: 616d5c73 smcvs 54723 + 4cfc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4d00: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4d04: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4d08: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4d0c: 775c7374 undefined + 4d10: 6f632d73 svcvs 0x00632d73 + 4d14: 6f72746e svcvs 0x0072746e + 4d18: 65575c6c ldrbvs r5, [r7, #-3180] + 4d1c: 65687461 strbvs r7, [r8, #-1121]! + 4d20: 74532072 ldrbvc r2, [r3], #-114 + 4d24: 6f697461 svcvs 0x00697461 + 4d28: 6f43206e svcvs 0x0043206e + 4d2c: 6f72746e svcvs 0x0072746e + 4d30: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4d34: 414d535c cmpmi sp, ip, asr r3 + 4d38: 6f535c43 svcvs 0x00535c43 + 4d3c: 65637275 strbvs r7, [r3, #-629]! + 4d40: 6461525c strbtvs r5, [r1], #-604 + 4d44: 614d6f69 cmpvs sp, r9, ror #30 + 4d48: 6567616e strbvs r6, [r7, #-366]! + 4d4c: 746e656d strbtvc r6, [lr], #-1389 + 4d50: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 4d54: 41205241 teqmi r0, r1, asr #4 + 4d58: 2049534e subcs r5, r9, lr, asr #6 + 4d5c: 2b432f43 blcs 10d0a70 + 4d60: 6f43202b svcvs 0x0043202b + 4d64: 6c69706d stclvs 0, cr7, [r9], #-436 + 4d68: 56207265 strtpl r7, [r0], -r5, ror #4 + 4d6c: 30332e35 eorscc r2, r3, r5, lsr lr + 4d70: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 4d74: 35393231 ldrcc r3, [r9, #-561]! + 4d78: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4d7c: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4d80: 4154534b cmpmi r4, fp, asr #6 + 4d84: 66205452 undefined + 4d88: 4120726f teqmi r0, pc, ror #4 + 4d8c: 01004d52 tsteq r0, r2, asr sp + 4d90: 00402378 subeq r2, r0, r8, ror r3 + 4d94: 0040239a umaaleq r2, r0, sl, r3 + 4d98: 00002d48 andeq r2, r0, r8, asr #26 + 4d9c: 00001988 andeq r1, r0, r8, lsl #19 + 4da0: 003bcf10 eorseq ip, fp, r0, lsl pc + 4da4: 01170a00 tsteq r7, r0, lsl #20 + 4da8: 78650000 stmdavc r5!, {}^ + 4dac: 74756365 ldrbtvc r6, [r5], #-869 + 4db0: 75635f65 strbvc r5, [r3, #-3941]! + 4db4: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 4db8: 656d5f74 strbvs r5, [sp, #-3956]! + 4dbc: 67617373 undefined + 4dc0: 61635f65 cmnvs r3, r5, ror #30 + 4dc4: 61626c6c cmnvs r2, ip, ror #24 + 4dc8: 01006b63 tsteq r0, r3, ror #22 + 4dcc: 010601be strheq r0, [r6, -lr] + 4dd0: 00001151 andeq r1, r0, r1, asr r1 + 4dd4: 00402378 subeq r2, r0, r8, ror r3 + 4dd8: 0040239a umaaleq r2, r0, sl, r3 + 4ddc: 00011609 andeq r1, r1, r9, lsl #12 + 4de0: 40238800 eormi r8, r3, r0, lsl #16 + 4de4: 40239400 eormi r9, r3, r0, lsl #8 + 4de8: 00000000 andeq r0, r0, r0 + 4dec: 00000128 andeq r0, r0, r8, lsr #2 + 4df0: 05000003 streq r0, [r0, #-3] + 4df4: 06040000 streq r0, [r4], -r0 + 4df8: 445c3a43 ldrbmi r3, [ip], #-2627 + 4dfc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4e00: 73746e65 cmnvc r4, #1616 ; 0x650 + 4e04: 646e6120 strbtvs r6, [lr], #-288 + 4e08: 74655320 strbtvc r5, [r5], #-800 + 4e0c: 676e6974 undefined + 4e10: 616d5c73 smcvs 54723 + 4e14: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4e18: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4e1c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4e20: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4e24: 775c7374 undefined + 4e28: 6f632d73 svcvs 0x00632d73 + 4e2c: 6f72746e svcvs 0x0072746e + 4e30: 65575c6c ldrbvs r5, [r7, #-3180] + 4e34: 65687461 strbvs r7, [r8, #-1121]! + 4e38: 74532072 ldrbvc r2, [r3], #-114 + 4e3c: 6f697461 svcvs 0x00697461 + 4e40: 6f43206e svcvs 0x0043206e + 4e44: 6f72746e svcvs 0x0072746e + 4e48: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4e4c: 414d535c cmpmi sp, ip, asr r3 + 4e50: 6f535c43 svcvs 0x00535c43 + 4e54: 65637275 strbvs r7, [r3, #-629]! + 4e58: 6461525c strbtvs r5, [r1], #-604 + 4e5c: 614d6f69 cmpvs sp, r9, ror #30 + 4e60: 6567616e strbvs r6, [r7, #-366]! + 4e64: 746e656d strbtvc r6, [lr], #-1389 + 4e68: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 4e6c: 41205241 teqmi r0, r1, asr #4 + 4e70: 2049534e subcs r5, r9, lr, asr #6 + 4e74: 2b432f43 blcs 10d0b88 + 4e78: 6f43202b svcvs 0x0043202b + 4e7c: 6c69706d stclvs 0, cr7, [r9], #-436 + 4e80: 56207265 strtpl r7, [r0], -r5, ror #4 + 4e84: 30332e35 eorscc r2, r3, r5, lsr lr + 4e88: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 4e8c: 35393231 ldrcc r3, [r9, #-561]! + 4e90: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4e94: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4e98: 4154534b cmpmi r4, fp, asr #6 + 4e9c: 66205452 undefined + 4ea0: 4120726f teqmi r0, pc, ror #4 + 4ea4: 01004d52 tsteq r0, r2, asr sp + 4ea8: 0040239a umaaleq r2, r0, sl, r3 + 4eac: 004023ce subeq r2, r0, lr, asr #7 + 4eb0: 00002e00 andeq r2, r0, r0, lsl #28 + 4eb4: 000019f6 strdeq r1, [r0], -r6 + 4eb8: 003bcf10 eorseq ip, fp, r0, lsl pc + 4ebc: 01280700 teqeq r8, r0, lsl #14 + 4ec0: 61680000 cmnvs r8, r0 + 4ec4: 656c646e strbvs r6, [ip, #-1134]! + 4ec8: 77656e5f undefined + 4ecc: 73656d5f cmnvc r5, #6080 ; 0x17c0 + 4ed0: 65676173 strbvs r6, [r7, #-371]! + 4ed4: 01de0100 bicseq r0, lr, r0, lsl #2 + 4ed8: 4e10010e mufmis f0, f0, #0.5 + 4edc: 7d000045 stcvc 0, cr0, [r0, #-276] + 4ee0: 9a000011 bls 4f2c + 4ee4: ce004023 cdpgt 0, 0, cr4, cr0, cr3, {1} + 4ee8: 08004023 stmdaeq r0, {r0, r1, r5, lr} + 4eec: 0067736d rsbeq r7, r7, sp, ror #6 + 4ef0: 2e01de01 cdpcs 14, 0, cr13, cr1, cr1, {0} + 4ef4: 003cd610 eorseq sp, ip, r0, lsl r6 + 4ef8: 0011c100 andseq ip, r1, r0, lsl #2 + 4efc: 69740800 ldmdbvs r4!, {fp}^ + 4f00: 756f656d strbvc r6, [pc, #-1389]! ; 499b + 4f04: de010074 mcrle 0, 0, r0, cr1, cr4, {3} + 4f08: 19103c01 ldmdbne r0, {r0, sl, fp, ip, sp} + 4f0c: f3000046 vhadd.u8 q0, q0, q3 + 4f10: 00000011 andeq r0, r0, r1, lsl r0 + 4f14: 00000000 andeq r0, r0, r0 + 4f18: 00000104 andeq r0, r0, r4, lsl #2 + 4f1c: 05000003 streq r0, [r0, #-3] + 4f20: 06040000 streq r0, [r4], -r0 + 4f24: 445c3a43 ldrbmi r3, [ip], #-2627 + 4f28: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4f2c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4f30: 646e6120 strbtvs r6, [lr], #-288 + 4f34: 74655320 strbtvc r5, [r5], #-800 + 4f38: 676e6974 undefined + 4f3c: 616d5c73 smcvs 54723 + 4f40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4f44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4f48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4f4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4f50: 775c7374 undefined + 4f54: 6f632d73 svcvs 0x00632d73 + 4f58: 6f72746e svcvs 0x0072746e + 4f5c: 65575c6c ldrbvs r5, [r7, #-3180] + 4f60: 65687461 strbvs r7, [r8, #-1121]! + 4f64: 74532072 ldrbvc r2, [r3], #-114 + 4f68: 6f697461 svcvs 0x00697461 + 4f6c: 6f43206e svcvs 0x0043206e + 4f70: 6f72746e svcvs 0x0072746e + 4f74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4f78: 414d535c cmpmi sp, ip, asr r3 + 4f7c: 6f535c43 svcvs 0x00535c43 + 4f80: 65637275 strbvs r7, [r3, #-629]! + 4f84: 6461525c strbtvs r5, [r1], #-604 + 4f88: 614d6f69 cmpvs sp, r9, ror #30 + 4f8c: 6567616e strbvs r6, [r7, #-366]! + 4f90: 746e656d strbtvc r6, [lr], #-1389 + 4f94: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 4f98: 41205241 teqmi r0, r1, asr #4 + 4f9c: 2049534e subcs r5, r9, lr, asr #6 + 4fa0: 2b432f43 blcs 10d0cb4 + 4fa4: 6f43202b svcvs 0x0043202b + 4fa8: 6c69706d stclvs 0, cr7, [r9], #-436 + 4fac: 56207265 strtpl r7, [r0], -r5, ror #4 + 4fb0: 30332e35 eorscc r2, r3, r5, lsr lr + 4fb4: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 4fb8: 35393231 ldrcc r3, [r9, #-561]! + 4fbc: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4fc0: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4fc4: 4154534b cmpmi r4, fp, asr #6 + 4fc8: 66205452 undefined + 4fcc: 4120726f teqmi r0, pc, ror #4 + 4fd0: 01004d52 tsteq r0, r2, asr sp + 4fd4: 004023ce subeq r2, r0, lr, asr #7 + 4fd8: 004023f2 strdeq r2, [r0], #-50 + 4fdc: 00002eb8 strheq r2, [r0], -r8 + 4fe0: 00001a5b andeq r1, r0, fp, asr sl + 4fe4: 003bcf10 eorseq ip, fp, r0, lsl pc + 4fe8: 01050700 tsteq r5, r0, lsl #14 + 4fec: 65720000 ldrbvs r0, [r2]! + 4ff0: 7361656c cmnvc r1, #452984832 ; 0x1b000000 + 4ff4: 75635f65 strbvc r5, [r3, #-3941]! + 4ff8: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 4ffc: 656d5f74 strbvs r5, [sp, #-3956]! + 5000: 67617373 undefined + 5004: f2010065 vhadd.s8 q0, , + 5008: 10010e01 andne r0, r1, r1, lsl #28 + 500c: 0000454e andeq r4, r0, lr, asr #10 + 5010: 00001225 andeq r1, r0, r5, lsr #4 + 5014: 004023ce subeq r2, r0, lr, asr #7 + 5018: 004023f2 strdeq r2, [r0], #-50 + 501c: 00000000 andeq r0, r0, r0 + 5020: 00000118 andeq r0, r0, r8, lsl r1 + 5024: 05000003 streq r0, [r0, #-3] + 5028: 06040000 streq r0, [r4], -r0 + 502c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5030: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5034: 73746e65 cmnvc r4, #1616 ; 0x650 + 5038: 646e6120 strbtvs r6, [lr], #-288 + 503c: 74655320 strbtvc r5, [r5], #-800 + 5040: 676e6974 undefined + 5044: 616d5c73 smcvs 54723 + 5048: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 504c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5050: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5054: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5058: 775c7374 undefined + 505c: 6f632d73 svcvs 0x00632d73 + 5060: 6f72746e svcvs 0x0072746e + 5064: 65575c6c ldrbvs r5, [r7, #-3180] + 5068: 65687461 strbvs r7, [r8, #-1121]! + 506c: 74532072 ldrbvc r2, [r3], #-114 + 5070: 6f697461 svcvs 0x00697461 + 5074: 6f43206e svcvs 0x0043206e + 5078: 6f72746e svcvs 0x0072746e + 507c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5080: 414d535c cmpmi sp, ip, asr r3 + 5084: 6f535c43 svcvs 0x00535c43 + 5088: 65637275 strbvs r7, [r3, #-629]! + 508c: 6461525c strbtvs r5, [r1], #-604 + 5090: 614d6f69 cmpvs sp, r9, ror #30 + 5094: 6567616e strbvs r6, [r7, #-366]! + 5098: 746e656d strbtvc r6, [lr], #-1389 + 509c: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 50a0: 41205241 teqmi r0, r1, asr #4 + 50a4: 2049534e subcs r5, r9, lr, asr #6 + 50a8: 2b432f43 blcs 10d0dbc + 50ac: 6f43202b svcvs 0x0043202b + 50b0: 6c69706d stclvs 0, cr7, [r9], #-436 + 50b4: 56207265 strtpl r7, [r0], -r5, ror #4 + 50b8: 30332e35 eorscc r2, r3, r5, lsr lr + 50bc: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 50c0: 35393231 ldrcc r3, [r9, #-561]! + 50c4: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 50c8: 43494b20 movtmi r4, #39712 ; 0x9b20 + 50cc: 4154534b cmpmi r4, fp, asr #6 + 50d0: 66205452 undefined + 50d4: 4120726f teqmi r0, pc, ror #4 + 50d8: 01004d52 tsteq r0, r2, asr sp + 50dc: 004023f4 strdeq r2, [r0], #-52 + 50e0: 00402428 subeq r2, r0, r8, lsr #8 + 50e4: 00002f70 andeq r2, r0, r0, ror pc + 50e8: 00001ab7 strheq r1, [r0], -r7 + 50ec: 003bcf10 eorseq ip, fp, r0, lsl pc + 50f0: 01190700 tsteq r9, r0, lsl #14 + 50f4: 61720000 cmnvs r2, r0 + 50f8: 5f6f6964 svcpl 0x006f6964 + 50fc: 616e616d cmnvs lr, sp, ror #2 + 5100: 5f726567 svcpl 0x00726567 + 5104: 74696e69 strbtvc r6, [r9], #-3689 + 5108: 02850100 addeq r0, r5, #0 ; 0x0 + 510c: 4e10010e mufmis f0, f0, #0.5 + 5110: 39000045 stmdbcc r0, {r0, r2, r6} + 5114: f4000012 vst4.8 {d0-d3}, [r0, :64], r2 + 5118: 28004023 stmdacs r0, {r0, r1, r5, lr} + 511c: 0b004024 bleq 151b4 + 5120: 75657571 strbvc r7, [r5, #-1393]! + 5124: 756f635f strbvc r6, [pc, #-863]! ; 4dcd + 5128: 0100746e tsteq r0, lr, ror #8 + 512c: 100b0286 andne r0, fp, r6, lsl #5 + 5130: 000045ec andeq r4, r0, ip, ror #11 + 5134: 0000124d andeq r1, r0, sp, asr #4 + 5138: 00000000 andeq r0, r0, r0 + 513c: 0000010c andeq r0, r0, ip, lsl #2 + 5140: 05000003 streq r0, [r0, #-3] + 5144: 06040000 streq r0, [r4], -r0 + 5148: 445c3a43 ldrbmi r3, [ip], #-2627 + 514c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5150: 73746e65 cmnvc r4, #1616 ; 0x650 + 5154: 646e6120 strbtvs r6, [lr], #-288 + 5158: 74655320 strbtvc r5, [r5], #-800 + 515c: 676e6974 undefined + 5160: 616d5c73 smcvs 54723 + 5164: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5168: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 516c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5170: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5174: 775c7374 undefined + 5178: 6f632d73 svcvs 0x00632d73 + 517c: 6f72746e svcvs 0x0072746e + 5180: 65575c6c ldrbvs r5, [r7, #-3180] + 5184: 65687461 strbvs r7, [r8, #-1121]! + 5188: 74532072 ldrbvc r2, [r3], #-114 + 518c: 6f697461 svcvs 0x00697461 + 5190: 6f43206e svcvs 0x0043206e + 5194: 6f72746e svcvs 0x0072746e + 5198: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 519c: 414d535c cmpmi sp, ip, asr r3 + 51a0: 6f535c43 svcvs 0x00535c43 + 51a4: 65637275 strbvs r7, [r3, #-629]! + 51a8: 6461525c strbtvs r5, [r1], #-604 + 51ac: 614d6f69 cmpvs sp, r9, ror #30 + 51b0: 6567616e strbvs r6, [r7, #-366]! + 51b4: 746e656d strbtvc r6, [lr], #-1389 + 51b8: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 51bc: 41205241 teqmi r0, r1, asr #4 + 51c0: 2049534e subcs r5, r9, lr, asr #6 + 51c4: 2b432f43 blcs 10d0ed8 + 51c8: 6f43202b svcvs 0x0043202b + 51cc: 6c69706d stclvs 0, cr7, [r9], #-436 + 51d0: 56207265 strtpl r7, [r0], -r5, ror #4 + 51d4: 30332e35 eorscc r2, r3, r5, lsr lr + 51d8: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 51dc: 35393231 ldrcc r3, [r9, #-561]! + 51e0: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 51e4: 43494b20 movtmi r4, #39712 ; 0x9b20 + 51e8: 4154534b cmpmi r4, fp, asr #6 + 51ec: 66205452 undefined + 51f0: 4120726f teqmi r0, pc, ror #4 + 51f4: 01004d52 tsteq r0, r2, asr sp + 51f8: 00402428 subeq r2, r0, r8, lsr #8 + 51fc: 00402460 subeq r2, r0, r0, ror #8 + 5200: 00003050 andeq r3, r0, r0, asr r0 + 5204: 00001b65 andeq r1, r0, r5, ror #22 + 5208: 003bcf10 eorseq ip, fp, r0, lsl pc + 520c: 010d0700 tsteq sp, r0, lsl #14 + 5210: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 5214: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 5218: 61725f73 cmnvs r2, r3, ror pc + 521c: 5f6f6964 svcpl 0x006f6964 + 5220: 0067736d rsbeq r7, r7, sp, ror #6 + 5224: 0e029c01 cdpeq 12, 0, cr9, cr2, cr1, {0} + 5228: 454e1001 strbmi r1, [lr, #-1] + 522c: 12550000 subsne r0, r5, #0 ; 0x0 + 5230: 24280000 strtcs r0, [r8] + 5234: 24600040 strbtcs r0, [r0], #-64 + 5238: 0c090040 stceq 0, cr0, [r9], {64} + 523c: 38000001 stmdacc r0, {r0} + 5240: 50004024 andpl r4, r0, r4, lsr #32 + 5244: 00004024 andeq r4, r0, r4, lsr #32 + 5248: 00000000 andeq r0, r0, r0 + 524c: 0000019c muleq r0, ip, r1 + 5250: 05000003 streq r0, [r0, #-3] + 5254: 06040000 streq r0, [r4], -r0 + 5258: 445c3a43 ldrbmi r3, [ip], #-2627 + 525c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5260: 73746e65 cmnvc r4, #1616 ; 0x650 + 5264: 646e6120 strbtvs r6, [lr], #-288 + 5268: 74655320 strbtvc r5, [r5], #-800 + 526c: 676e6974 undefined + 5270: 616d5c73 smcvs 54723 + 5274: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5278: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 527c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5280: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5284: 775c7374 undefined + 5288: 6f632d73 svcvs 0x00632d73 + 528c: 6f72746e svcvs 0x0072746e + 5290: 65575c6c ldrbvs r5, [r7, #-3180] + 5294: 65687461 strbvs r7, [r8, #-1121]! + 5298: 74532072 ldrbvc r2, [r3], #-114 + 529c: 6f697461 svcvs 0x00697461 + 52a0: 6f43206e svcvs 0x0043206e + 52a4: 6f72746e svcvs 0x0072746e + 52a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 52ac: 414d535c cmpmi sp, ip, asr r3 + 52b0: 6f535c43 svcvs 0x00535c43 + 52b4: 65637275 strbvs r7, [r3, #-629]! + 52b8: 6461525c strbtvs r5, [r1], #-604 + 52bc: 614d6f69 cmpvs sp, r9, ror #30 + 52c0: 6567616e strbvs r6, [r7, #-366]! + 52c4: 746e656d strbtvc r6, [lr], #-1389 + 52c8: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 52cc: 41205241 teqmi r0, r1, asr #4 + 52d0: 2049534e subcs r5, r9, lr, asr #6 + 52d4: 2b432f43 blcs 10d0fe8 + 52d8: 6f43202b svcvs 0x0043202b + 52dc: 6c69706d stclvs 0, cr7, [r9], #-436 + 52e0: 56207265 strtpl r7, [r0], -r5, ror #4 + 52e4: 30332e35 eorscc r2, r3, r5, lsr lr + 52e8: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 52ec: 35393231 ldrcc r3, [r9, #-561]! + 52f0: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 52f4: 43494b20 movtmi r4, #39712 ; 0x9b20 + 52f8: 4154534b cmpmi r4, fp, asr #6 + 52fc: 66205452 undefined + 5300: 4120726f teqmi r0, pc, ror #4 + 5304: 01004d52 tsteq r0, r2, asr sp + 5308: 00402460 subeq r2, r0, r0, ror #8 + 530c: 004025b0 strheq r2, [r0], #-80 + 5310: 0000310c andeq r3, r0, ip, lsl #2 + 5314: 00001bf7 strdeq r1, [r0], -r7 + 5318: 003bcf10 eorseq ip, fp, r0, lsl pc + 531c: 019c0700 orrseq r0, ip, r0, lsl #14 + 5320: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 5324: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 5328: 78745f73 ldmdavc r4!, {r0, r1, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 532c: 67736d5f undefined + 5330: 02bf0100 adcseq r0, pc, #0 ; 0x0 + 5334: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} + 5338: 75000045 strvc r0, [r0, #-69] + 533c: 60000012 andvs r0, r0, r2, lsl r0 + 5340: b0004024 andlt r4, r0, r4, lsr #32 + 5344: 0b004025 bleq 153e0 + 5348: 74617473 strbtvc r7, [r1], #-1139 + 534c: c0010065 andgt r0, r1, r5, rrx + 5350: 7b101202 blvc 409b60 + 5354: b9000045 stmdblt r0, {r0, r2, r6} + 5358: 09000012 stmdbeq r0, {r1, r4} + 535c: 0000018d andeq r0, r0, sp, lsl #3 + 5360: 00402480 subeq r2, r0, r0, lsl #9 + 5364: 0040254e subeq r2, r0, lr, asr #10 + 5368: 00012a09 andeq r2, r1, r9, lsl #20 + 536c: 40248000 eormi r8, r4, r0 + 5370: 4024ac00 eormi sl, r4, r0, lsl #24 + 5374: 46090000 strmi r0, [r9], -r0 + 5378: ac000001 stcge 0, cr0, [r0], {1} + 537c: ce004024 cdpgt 0, 0, cr4, cr0, cr4, {1} + 5380: 09004024 stmdbeq r0, {r2, r5, lr} + 5384: 00000145 andeq r0, r0, r5, asr #2 + 5388: 004024bc strheq r2, [r0], #-76 + 538c: 004024ce subeq r2, r0, lr, asr #9 + 5390: 8c090000 stchi 0, cr0, [r9], {0} + 5394: ce000001 cdpgt 0, 0, cr0, cr0, cr1, {0} + 5398: 3e004024 cdpcc 0, 0, cr4, cr0, cr4, {1} + 539c: 09004025 stmdbeq r0, {r0, r2, r5, lr} + 53a0: 0000018b andeq r0, r0, fp, lsl #3 + 53a4: 004024da ldrdeq r2, [r0], #-74 + 53a8: 0040253e subeq r2, r0, lr, lsr r5 + 53ac: 00016e09 andeq r6, r1, r9, lsl #28 + 53b0: 4024ee00 eormi lr, r4, r0, lsl #28 + 53b4: 40250000 eormi r0, r5, r0 + 53b8: 8a090000 bhi 2453c0 + 53bc: 00000001 andeq r0, r0, r1 + 53c0: 3e004025 cdpcc 0, 0, cr4, cr0, cr5, {1} + 53c4: 09004025 stmdbeq r0, {r0, r2, r5, lr} + 53c8: 00000189 andeq r0, r0, r9, lsl #3 + 53cc: 00402506 subeq r2, r0, r6, lsl #10 + 53d0: 00402532 subeq r2, r0, r2, lsr r5 + 53d4: 00000000 andeq r0, r0, r0 + 53d8: 019b0900 orrseq r0, fp, r0, lsl #18 + 53dc: 257e0000 ldrbcs r0, [lr]! + 53e0: 259e0040 ldrcs r0, [lr, #64] + 53e4: 00000040 andeq r0, r0, r0, asr #32 + 53e8: 00000000 andeq r0, r0, r0 + 53ec: 000001d4 ldrdeq r0, [r0], -r4 + 53f0: 05000003 streq r0, [r0, #-3] + 53f4: 06040000 streq r0, [r4], -r0 + 53f8: 445c3a43 ldrbmi r3, [ip], #-2627 + 53fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5400: 73746e65 cmnvc r4, #1616 ; 0x650 + 5404: 646e6120 strbtvs r6, [lr], #-288 + 5408: 74655320 strbtvc r5, [r5], #-800 + 540c: 676e6974 undefined + 5410: 616d5c73 smcvs 54723 + 5414: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5418: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 541c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5420: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5424: 775c7374 undefined + 5428: 6f632d73 svcvs 0x00632d73 + 542c: 6f72746e svcvs 0x0072746e + 5430: 65575c6c ldrbvs r5, [r7, #-3180] + 5434: 65687461 strbvs r7, [r8, #-1121]! + 5438: 74532072 ldrbvc r2, [r3], #-114 + 543c: 6f697461 svcvs 0x00697461 + 5440: 6f43206e svcvs 0x0043206e + 5444: 6f72746e svcvs 0x0072746e + 5448: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 544c: 414d535c cmpmi sp, ip, asr r3 + 5450: 6f535c43 svcvs 0x00535c43 + 5454: 65637275 strbvs r7, [r3, #-629]! + 5458: 6461525c strbtvs r5, [r1], #-604 + 545c: 614d6f69 cmpvs sp, r9, ror #30 + 5460: 6567616e strbvs r6, [r7, #-366]! + 5464: 746e656d strbtvc r6, [lr], #-1389 + 5468: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 546c: 41205241 teqmi r0, r1, asr #4 + 5470: 2049534e subcs r5, r9, lr, asr #6 + 5474: 2b432f43 blcs 10d1188 + 5478: 6f43202b svcvs 0x0043202b + 547c: 6c69706d stclvs 0, cr7, [r9], #-436 + 5480: 56207265 strtpl r7, [r0], -r5, ror #4 + 5484: 30332e35 eorscc r2, r3, r5, lsr lr + 5488: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 548c: 35393231 ldrcc r3, [r9, #-561]! + 5490: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5494: 43494b20 movtmi r4, #39712 ; 0x9b20 + 5498: 4154534b cmpmi r4, fp, asr #6 + 549c: 66205452 undefined + 54a0: 4120726f teqmi r0, pc, ror #4 + 54a4: 01004d52 tsteq r0, r2, asr sp + 54a8: 004025c0 subeq r2, r0, r0, asr #11 + 54ac: 004027c0 subeq r2, r0, r0, asr #15 + 54b0: 00003204 andeq r3, r0, r4, lsl #4 + 54b4: 00001d06 andeq r1, r0, r6, lsl #26 + 54b8: 003bcf10 eorseq ip, fp, r0, lsl pc + 54bc: 01d40700 bicseq r0, r4, r0, lsl #14 + 54c0: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 54c4: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 54c8: 78725f73 ldmdavc r2!, {r0, r1, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 54cc: 67736d5f undefined + 54d0: 03930100 orrseq r0, r3, #0 ; 0x0 + 54d4: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} + 54d8: c1000045 tstgt r0, r5, asr #32 + 54dc: c0000012 andgt r0, r0, r2, lsl r0 + 54e0: c0004025 andgt r4, r0, r5, lsr #32 + 54e4: 0b004027 bleq 15588 + 54e8: 74617473 strbtvc r7, [r1], #-1139 + 54ec: 94010065 strls r0, [r1], #-101 + 54f0: 92101203 andsls r1, r0, #805306368 ; 0x30000000 + 54f4: f9000045 undefined instruction 0xf9000045 + 54f8: 09000012 stmdbeq r0, {r1, r4} + 54fc: 000001c5 andeq r0, r0, r5, asr #3 + 5500: 004025e8 subeq r2, r0, r8, ror #11 + 5504: 0040274c subeq r2, r0, ip, asr #14 + 5508: 00013809 andeq r3, r1, r9, lsl #16 + 550c: 4025e800 eormi lr, r5, r0, lsl #16 + 5510: 40263600 eormi r3, r6, r0, lsl #12 + 5514: 01370900 teqeq r7, r0, lsl #18 + 5518: 25f20000 ldrbcs r0, [r2]! + 551c: 26280040 strtcs r0, [r8], -r0, asr #32 + 5520: 00000040 andeq r0, r0, r0, asr #32 + 5524: 00015409 andeq r5, r1, r9, lsl #8 + 5528: 40263600 eormi r3, r6, r0, lsl #12 + 552c: 40265a00 eormi r5, r6, r0, lsl #20 + 5530: 01530900 cmpeq r3, r0, lsl #18 + 5534: 26480000 strbcs r0, [r8], -r0 + 5538: 265a0040 ldrbcs r0, [sl], -r0, asr #32 + 553c: 00000040 andeq r0, r0, r0, asr #32 + 5540: 0001c409 andeq ip, r1, r9, lsl #8 + 5544: 40265a00 eormi r5, r6, r0, lsl #20 + 5548: 40273c00 eormi r3, r7, r0, lsl #24 + 554c: 01c30900 biceq r0, r3, r0, lsl #18 + 5550: 26660000 strbtcs r0, [r6], -r0 + 5554: 273c0040 ldrcs r0, [ip, -r0, asr #32]! + 5558: 7c090040 stcvc 0, cr0, [r9], {64} + 555c: 76000001 strvc r0, [r0], -r1 + 5560: 96004026 strls r4, [r0], -r6, lsr #32 + 5564: 00004026 andeq r4, r0, r6, lsr #32 + 5568: 0001c209 andeq ip, r1, r9, lsl #4 + 556c: 40269600 eormi r9, r6, r0, lsl #12 + 5570: 40273c00 eormi r3, r7, r0, lsl #24 + 5574: 01b30900 undefined instruction 0x01b30900 + 5578: 26b40000 ldrtcs r0, [r4], r0 + 557c: 273c0040 ldrcs r0, [ip, -r0, asr #32]! + 5580: b2090040 andlt r0, r9, #64 ; 0x40 + 5584: ba000001 blt 5590 + 5588: 28004026 stmdacs r0, {r1, r2, r5, lr} + 558c: 09004027 stmdbeq r0, {r0, r1, r2, r5, lr} + 5590: 000001b1 strheq r0, [r0], -r1 + 5594: 004026c4 subeq r2, r0, r4, asr #13 + 5598: 0040271c subeq r2, r0, ip, lsl r7 + 559c: 09000000 stmdbeq r0, {} + 55a0: 000001c1 andeq r0, r0, r1, asr #3 + 55a4: 004026fe strdeq r2, [r0], #-110 + 55a8: 00402712 subeq r2, r0, r2, lsl r7 + 55ac: 00000000 andeq r0, r0, r0 + 55b0: 01d30900 bicseq r0, r3, r0, lsl #18 + 55b4: 277c0000 ldrbcs r0, [ip, -r0]! + 55b8: 279c0040 ldrcs r0, [ip, r0, asr #32] + 55bc: 00000040 andeq r0, r0, r0, asr #32 + 55c0: 00000000 andeq r0, r0, r0 + 55c4: 0000022c andeq r0, r0, ip, lsr #4 + 55c8: 05000003 streq r0, [r0, #-3] + 55cc: 06040000 streq r0, [r4], -r0 + 55d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 55d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 55d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 55dc: 646e6120 strbtvs r6, [lr], #-288 + 55e0: 74655320 strbtvc r5, [r5], #-800 + 55e4: 676e6974 undefined + 55e8: 616d5c73 smcvs 54723 + 55ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 55f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 55f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 55f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 55fc: 775c7374 undefined + 5600: 6f632d73 svcvs 0x00632d73 + 5604: 6f72746e svcvs 0x0072746e + 5608: 65575c6c ldrbvs r5, [r7, #-3180] + 560c: 65687461 strbvs r7, [r8, #-1121]! + 5610: 74532072 ldrbvc r2, [r3], #-114 + 5614: 6f697461 svcvs 0x00697461 + 5618: 6f43206e svcvs 0x0043206e + 561c: 6f72746e svcvs 0x0072746e + 5620: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5624: 414d535c cmpmi sp, ip, asr r3 + 5628: 6f535c43 svcvs 0x00535c43 + 562c: 65637275 strbvs r7, [r3, #-629]! + 5630: 6461525c strbtvs r5, [r1], #-604 + 5634: 614d6f69 cmpvs sp, r9, ror #30 + 5638: 6567616e strbvs r6, [r7, #-366]! + 563c: 746e656d strbtvc r6, [lr], #-1389 + 5640: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 5644: 41205241 teqmi r0, r1, asr #4 + 5648: 2049534e subcs r5, r9, lr, asr #6 + 564c: 2b432f43 blcs 10d1360 + 5650: 6f43202b svcvs 0x0043202b + 5654: 6c69706d stclvs 0, cr7, [r9], #-436 + 5658: 56207265 strtpl r7, [r0], -r5, ror #4 + 565c: 30332e35 eorscc r2, r3, r5, lsr lr + 5660: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 5664: 35393231 ldrcc r3, [r9, #-561]! + 5668: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 566c: 43494b20 movtmi r4, #39712 ; 0x9b20 + 5670: 4154534b cmpmi r4, fp, asr #6 + 5674: 66205452 undefined + 5678: 4120726f teqmi r0, pc, ror #4 + 567c: 01004d52 tsteq r0, r2, asr sp + 5680: 004027c0 subeq r2, r0, r0, asr #15 + 5684: 0040297c subeq r2, r0, ip, ror r9 + 5688: 0000331c andeq r3, r0, ip, lsl r3 + 568c: 00001e67 andeq r1, r0, r7, ror #28 + 5690: 003bcf10 eorseq ip, fp, r0, lsl pc + 5694: 022d0700 eoreq r0, sp, #0 ; 0x0 + 5698: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 569c: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 56a0: 64655f73 strbtvs r5, [r5], #-3955 + 56a4: 67736d5f undefined + 56a8: 04800100 streq r0, [r0], #256 + 56ac: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} + 56b0: 01000045 tsteq r0, r5, asr #32 + 56b4: c0000013 andgt r0, r0, r3, lsl r0 + 56b8: 7c004027 stcvc 0, cr4, [r0], {39} + 56bc: 04004029 streq r4, [r0], #-41 + 56c0: 76657270 undefined + 56c4: 6168635f cmnvs r8, pc, asr r3 + 56c8: 10006e6e andne r6, r0, lr, ror #28 + 56cc: 00004619 andeq r4, r0, r9, lsl r6 + 56d0: 13048101 movwne r8, #16641 ; 0x4101 + 56d4: c0030500 andgt r0, r3, r0, lsl #10 + 56d8: 0b004053 bleq 1582c + 56dc: 74617473 strbtvc r7, [r1], #-1139 + 56e0: 82010065 andhi r0, r1, #101 ; 0x65 + 56e4: ab101204 blge 409efc + 56e8: 45000045 strmi r0, [r0, #-69] + 56ec: 09000013 stmdbeq r0, {r0, r1, r4} + 56f0: 0000021e andeq r0, r0, lr, lsl r2 + 56f4: 004027de ldrdeq r2, [r0], #-126 + 56f8: 00402906 subeq r2, r0, r6, lsl #18 + 56fc: 00017b09 andeq r7, r1, r9, lsl #22 + 5700: 4027de00 eormi sp, r7, r0, lsl #28 + 5704: 40283c00 eormi r3, r8, r0, lsl #24 + 5708: 017a0900 cmneq sl, r0, lsl #18 + 570c: 27ec0000 strbcs r0, [ip, r0]! + 5710: 28300040 ldmdacs r0!, {r6} + 5714: 790c0040 stmdbvc ip, {r6} + 5718: 10000001 andne r0, r0, r1 + 571c: 00005f1c andeq r5, r0, ip, lsl pc + 5720: 004027f2 strdeq r2, [r0], #-114 + 5724: 0040281a subeq r2, r0, sl, lsl r8 + 5728: 5f3b100d svcpl 0x003b100d + 572c: 134d0000 movtne r0, #53248 ; 0xd000 + 5730: 100e0000 andne r0, lr, r0 + 5734: 00005f4a andeq r5, r0, sl, asr #30 + 5738: 0000136b andeq r1, r0, fp, ror #6 + 573c: 09000000 stmdbeq r0, {} + 5740: 0000021d andeq r0, r0, sp, lsl r2 + 5744: 0040283c subeq r2, r0, ip, lsr r8 + 5748: 004028f6 strdeq r2, [r0], #-134 + 574c: 00021c09 andeq r1, r2, r9, lsl #24 + 5750: 40284800 eormi r4, r8, r0, lsl #16 + 5754: 4028f600 eormi pc, r8, r0, lsl #12 + 5758: 01ca0900 biceq r0, sl, r0, lsl #18 + 575c: 285a0000 ldmdacs sl, {}^ + 5760: 28a40040 stmiacs r4!, {r6} + 5764: c90c0040 stmdbgt ip, {r6} + 5768: 10000001 andne r0, r0, r1 + 576c: 00006024 andeq r6, r0, r4, lsr #32 + 5770: 00402872 subeq r2, r0, r2, ror r8 + 5774: 00402888 subeq r2, r0, r8, lsl #17 + 5778: 6047100d subvs r1, r7, sp + 577c: 137e0000 cmnne lr, #0 ; 0x0 + 5780: 100e0000 andne r0, lr, r0 + 5784: 00006062 andeq r6, r0, r2, rrx + 5788: 0000139b muleq r0, fp, r3 + 578c: 1b090000 blne 245794 + 5790: a4000002 strge r0, [r0], #-2 + 5794: f6004028 undefined instruction 0xf6004028 + 5798: 09004028 stmdbeq r0, {r3, r5, lr} + 579c: 0000020c andeq r0, r0, ip, lsl #4 + 57a0: 004028ac subeq r2, r0, ip, lsr #17 + 57a4: 004028d4 ldrdeq r2, [r0], #-132 + 57a8: 00020b0c andeq r0, r2, ip, lsl #22 + 57ac: 5f1c1000 svcpl 0x001c1000 + 57b0: 28b60000 ldmcs r6!, {} + 57b4: 28d40040 ldmcs r4, {r6}^ + 57b8: 100d0040 andne r0, sp, r0, asr #32 + 57bc: 00005f3b andeq r5, r0, fp, lsr pc + 57c0: 000013d8 ldrdeq r1, [r0], -r8 + 57c4: 5f4a100e svcpl 0x004a100e + 57c8: 13f50000 mvnsne r0, #0 ; 0x0 + 57cc: 00000000 andeq r0, r0, r0 + 57d0: 00021a09 andeq r1, r2, r9, lsl #20 + 57d4: 4028d600 eormi sp, r8, r0, lsl #12 + 57d8: 4028f600 eormi pc, r8, r0, lsl #12 + 57dc: 00000000 andeq r0, r0, r0 + 57e0: 2c090000 stccs 0, cr0, [r9], {0} + 57e4: 36000002 strcc r0, [r0], -r2 + 57e8: 56004029 strpl r4, [r0], -r9, lsr #32 + 57ec: 00004029 andeq r4, r0, r9, lsr #32 + 57f0: 00000000 andeq r0, r0, r0 + 57f4: 00000180 andeq r0, r0, r0, lsl #3 + 57f8: 05000003 streq r0, [r0, #-3] + 57fc: 06040000 streq r0, [r4], -r0 + 5800: 445c3a43 ldrbmi r3, [ip], #-2627 + 5804: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5808: 73746e65 cmnvc r4, #1616 ; 0x650 + 580c: 646e6120 strbtvs r6, [lr], #-288 + 5810: 74655320 strbtvc r5, [r5], #-800 + 5814: 676e6974 undefined + 5818: 616d5c73 smcvs 54723 + 581c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5820: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5824: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5828: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 582c: 775c7374 undefined + 5830: 6f632d73 svcvs 0x00632d73 + 5834: 6f72746e svcvs 0x0072746e + 5838: 65575c6c ldrbvs r5, [r7, #-3180] + 583c: 65687461 strbvs r7, [r8, #-1121]! + 5840: 74532072 ldrbvc r2, [r3], #-114 + 5844: 6f697461 svcvs 0x00697461 + 5848: 6f43206e svcvs 0x0043206e + 584c: 6f72746e svcvs 0x0072746e + 5850: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5854: 414d535c cmpmi sp, ip, asr r3 + 5858: 6f535c43 svcvs 0x00535c43 + 585c: 65637275 strbvs r7, [r3, #-629]! + 5860: 6461525c strbtvs r5, [r1], #-604 + 5864: 614d6f69 cmpvs sp, r9, ror #30 + 5868: 6567616e strbvs r6, [r7, #-366]! + 586c: 746e656d strbtvc r6, [lr], #-1389 + 5870: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 5874: 41205241 teqmi r0, r1, asr #4 + 5878: 2049534e subcs r5, r9, lr, asr #6 + 587c: 2b432f43 blcs 10d1590 + 5880: 6f43202b svcvs 0x0043202b + 5884: 6c69706d stclvs 0, cr7, [r9], #-436 + 5888: 56207265 strtpl r7, [r0], -r5, ror #4 + 588c: 30332e35 eorscc r2, r3, r5, lsr lr + 5890: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 5894: 35393231 ldrcc r3, [r9, #-561]! + 5898: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 589c: 43494b20 movtmi r4, #39712 ; 0x9b20 + 58a0: 4154534b cmpmi r4, fp, asr #6 + 58a4: 66205452 undefined + 58a8: 4120726f teqmi r0, pc, ror #4 + 58ac: 01004d52 tsteq r0, r2, asr sp + 58b0: 0040297c subeq r2, r0, ip, ror r9 + 58b4: 00402ac8 subeq r2, r0, r8, asr #21 + 58b8: 00003470 andeq r3, r0, r0, ror r4 + 58bc: 00002066 andeq r2, r0, r6, rrx + 58c0: 003bcf10 eorseq ip, fp, r0, lsl pc + 58c4: 01800700 orreq r0, r0, r0, lsl #14 + 58c8: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 58cc: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 58d0: 6f745f73 svcvs 0x00745f73 + 58d4: 67736d5f undefined + 58d8: 04d60100 ldrbeq r0, [r6], #256 + 58dc: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} + 58e0: fd000045 stc2 0, cr0, [r0, #-276] + 58e4: 7c000013 stcvc 0, cr0, [r0], {19} + 58e8: c8004029 stmdagt r0, {r0, r3, r5, lr} + 58ec: 0b00402a bleq 1599c + 58f0: 74617473 strbtvc r7, [r1], #-1139 + 58f4: d7010065 strle r0, [r1, -r5, rrx] + 58f8: c2101204 andsgt r1, r0, #1073741824 ; 0x40000000 + 58fc: 1d000045 stcne 0, cr0, [r0, #-276] + 5900: 09000014 stmdbeq r0, {r2, r4} + 5904: 00000171 andeq r0, r0, r1, ror r1 + 5908: 00402998 umaaleq r2, r0, r8, r9 + 590c: 00402a76 subeq r2, r0, r6, ror sl + 5910: 00012a09 andeq r2, r1, r9, lsl #20 + 5914: 40299800 eormi r9, r9, r0, lsl #16 + 5918: 4029cc00 eormi ip, r9, r0, lsl #24 + 591c: 70090000 andvc r0, r9, r0 + 5920: cc000001 stcgt 0, cr0, [r0], {1} + 5924: 66004029 strvs r4, [r0], -r9, lsr #32 + 5928: 0900402a stmdbeq r0, {r1, r3, r5, lr} + 592c: 0000016f andeq r0, r0, pc, ror #2 + 5930: 004029d8 ldrdeq r2, [r0], #-152 + 5934: 00402a66 subeq r2, r0, r6, ror #20 + 5938: 00016009 andeq r6, r1, r9 + 593c: 402a1600 eormi r1, sl, r0, lsl #12 + 5940: 402a6600 eormi r6, sl, r0, lsl #12 + 5944: 015f0900 cmpeq pc, r0, lsl #18 + 5948: 2a400000 bcs 1005950 + 594c: 2a660040 bcs 1985a54 + 5950: 00000040 andeq r0, r0, r0, asr #32 + 5954: 00016e09 andeq r6, r1, r9, lsl #28 + 5958: 402a2a00 eormi r2, sl, r0, lsl #20 + 595c: 402a4000 eormi r4, sl, r0 + 5960: 00000000 andeq r0, r0, r0 + 5964: 017f0900 cmneq pc, r0, lsl #18 + 5968: 2aa60000 bcs fe985970 + 596c: 2ac80040 bcs ff205a74 + 5970: 00000040 andeq r0, r0, r0, asr #32 + 5974: 00000000 andeq r0, r0, r0 + 5978: 000001a0 andeq r0, r0, r0, lsr #3 + 597c: 05000003 streq r0, [r0, #-3] + 5980: 06040000 streq r0, [r4], -r0 + 5984: 445c3a43 ldrbmi r3, [ip], #-2627 + 5988: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 598c: 73746e65 cmnvc r4, #1616 ; 0x650 + 5990: 646e6120 strbtvs r6, [lr], #-288 + 5994: 74655320 strbtvc r5, [r5], #-800 + 5998: 676e6974 undefined + 599c: 616d5c73 smcvs 54723 + 59a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 59a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 59a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 59ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 59b0: 775c7374 undefined + 59b4: 6f632d73 svcvs 0x00632d73 + 59b8: 6f72746e svcvs 0x0072746e + 59bc: 65575c6c ldrbvs r5, [r7, #-3180] + 59c0: 65687461 strbvs r7, [r8, #-1121]! + 59c4: 74532072 ldrbvc r2, [r3], #-114 + 59c8: 6f697461 svcvs 0x00697461 + 59cc: 6f43206e svcvs 0x0043206e + 59d0: 6f72746e svcvs 0x0072746e + 59d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 59d8: 414d535c cmpmi sp, ip, asr r3 + 59dc: 6f535c43 svcvs 0x00535c43 + 59e0: 65637275 strbvs r7, [r3, #-629]! + 59e4: 6461525c strbtvs r5, [r1], #-604 + 59e8: 614d6f69 cmpvs sp, r9, ror #30 + 59ec: 6567616e strbvs r6, [r7, #-366]! + 59f0: 746e656d strbtvc r6, [lr], #-1389 + 59f4: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 59f8: 41205241 teqmi r0, r1, asr #4 + 59fc: 2049534e subcs r5, r9, lr, asr #6 + 5a00: 2b432f43 blcs 10d1714 + 5a04: 6f43202b svcvs 0x0043202b + 5a08: 6c69706d stclvs 0, cr7, [r9], #-436 + 5a0c: 56207265 strtpl r7, [r0], -r5, ror #4 + 5a10: 30332e35 eorscc r2, r3, r5, lsr lr + 5a14: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 5a18: 35393231 ldrcc r3, [r9, #-561]! + 5a1c: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5a20: 43494b20 movtmi r4, #39712 ; 0x9b20 + 5a24: 4154534b cmpmi r4, fp, asr #6 + 5a28: 66205452 undefined + 5a2c: 4120726f teqmi r0, pc, ror #4 + 5a30: 01004d52 tsteq r0, r2, asr sp + 5a34: 00402aec subeq r2, r0, ip, ror #21 + 5a38: 00402b84 subeq r2, r0, r4, lsl #23 + 5a3c: 0000356c andeq r3, r0, ip, ror #10 + 5a40: 00002180 andeq r2, r0, r0, lsl #3 + 5a44: 003bcf10 eorseq ip, fp, r0, lsl pc + 5a48: 01a00a00 lsleq r0, r0, #20 + 5a4c: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 5a50: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 5a54: 63735f73 cmnvs r3, #460 ; 0x1cc + 5a58: 725f6e61 subsvc r6, pc, #1552 ; 0x610 + 5a5c: 01007165 tsteq r0, r5, ror #2 + 5a60: 010605c1 smlabteq r6, r1, r5, r0 + 5a64: 00001425 andeq r1, r0, r5, lsr #8 + 5a68: 00402aec subeq r2, r0, ip, ror #21 + 5a6c: 00402b84 subeq r2, r0, r4, lsl #23 + 5a70: 42387504 eorsmi r7, r8, #16777216 ; 0x1000000 + 5a74: 56747365 ldrbtpl r7, [r4], -r5, ror #6 + 5a78: 10006c61 andne r6, r0, r1, ror #24 + 5a7c: 000045ec andeq r4, r0, ip, ror #11 + 5a80: 1205c401 andne ip, r5, #16777216 ; 0x1000000 + 5a84: 6c030500 cfstr32vs mvfx0, [r3], {0} + 5a88: 04004053 streq r4, [r0], #-83 + 5a8c: 74736562 ldrbtvc r6, [r3], #-1378 + 5a90: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5a94: 6410006e ldrvs r0, [r0], #-110 + 5a98: 01000045 tsteq r0, r5, asr #32 + 5a9c: 001805c5 andseq r0, r8, r5, asr #11 + 5aa0: 536d0305 cmnpl sp, #335544320 ; 0x14000000 + 5aa4: 45040040 strmi r0, [r4, #-64] + 5aa8: 32684364 rsbcc r4, r8, #-1879048191 ; 0x90000001 + 5aac: 6c617645 stclvs 6, cr7, [r1], #-276 + 5ab0: 65746175 ldrbvs r6, [r4, #-373]! + 5ab4: 45641000 strbmi r1, [r4]! + 5ab8: c6010000 strgt r0, [r1], -r0 + 5abc: 05001805 streq r1, [r0, #-2053] + 5ac0: 40536e03 subsmi r6, r3, r3, lsl #28 + 5ac4: 73690400 cmnvc r9, #0 ; 0x0 + 5ac8: 6f636553 svcvs 0x00636553 + 5acc: 6150646e cmpvs r0, lr, ror #8 + 5ad0: 10007373 andne r7, r0, r3, ror r3 + 5ad4: 000045fb strdeq r4, [r0], -fp + 5ad8: 1105c701 tstne r5, r1, lsl #14 + 5adc: 6f030500 svcvs 0x00030500 + 5ae0: 0b004053 bleq 15c34 + 5ae4: 76657270 undefined + 5ae8: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5aec: c301006e movwgt r0, #4206 ; 0x106e + 5af0: 64101105 ldrvs r1, [r0], #-261 + 5af4: 5d000045 stcpl 0, cr0, [r0, #-276] + 5af8: 09000014 stmdbeq r0, {r2, r4} + 5afc: 0000019f muleq r0, pc, r1 + 5b00: 00402af8 strdeq r2, [r0], #-168 + 5b04: 00402b64 subeq r2, r0, r4, ror #22 + 5b08: 00019e09 andeq r9, r1, r9, lsl #28 + 5b0c: 402b1600 eormi r1, fp, r0, lsl #12 + 5b10: 402b3800 eormi r3, fp, r0, lsl #16 + ... + 5b1c: 000001dc ldrdeq r0, [r0], -ip + 5b20: 05000003 streq r0, [r0, #-3] + 5b24: 01040000 tsteq r4, r0 + 5b28: 445c3a43 ldrbmi r3, [ip], #-2627 + 5b2c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5b30: 73746e65 cmnvc r4, #1616 ; 0x650 + 5b34: 646e6120 strbtvs r6, [lr], #-288 + 5b38: 74655320 strbtvc r5, [r5], #-800 + 5b3c: 676e6974 undefined + 5b40: 616d5c73 smcvs 54723 + 5b44: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5b48: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5b4c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5b50: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5b54: 775c7374 undefined + 5b58: 6f632d73 svcvs 0x00632d73 + 5b5c: 6f72746e svcvs 0x0072746e + 5b60: 65575c6c ldrbvs r5, [r7, #-3180] + 5b64: 65687461 strbvs r7, [r8, #-1121]! + 5b68: 74532072 ldrbvc r2, [r3], #-114 + 5b6c: 6f697461 svcvs 0x00697461 + 5b70: 6f43206e svcvs 0x0043206e + 5b74: 6f72746e svcvs 0x0072746e + 5b78: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5b7c: 414d535c cmpmi sp, ip, asr r3 + 5b80: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} + 5b84: 66726574 undefined + 5b88: 5c656361 stclpl 3, cr6, [r5], #-388 + 5b8c: 626f6c47 rsbvs r6, pc, #18176 ; 0x4700 + 5b90: 65446c61 strbvs r6, [r4, #-3169] + 5b94: 682e7366 stmdavs lr!, {r1, r2, r5, r6, r8, r9, ip, sp, lr} + 5b98: 52414900 subpl r4, r1, #0 ; 0x0 + 5b9c: 534e4120 movtpl r4, #57632 ; 0xe120 + 5ba0: 2f432049 svccs 0x00432049 + 5ba4: 202b2b43 eorcs r2, fp, r3, asr #22 + 5ba8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 5bac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 5bb0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 5bb4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 5bb8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 5bbc: 572f3539 undefined + 5bc0: 4b203233 blmi 812494 + 5bc4: 534b4349 movtpl r4, #45897 ; 0xb349 + 5bc8: 54524154 ldrbpl r4, [r2], #-340 + 5bcc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 5bd0: 4d524120 ldfmie f4, [r2, #-128] + 5bd4: 28c40100 stmiacs r4, {r8}^ + 5bd8: 010c0000 tsteq ip, r0 + 5bdc: dc120000 ldcle 0, cr0, [r2], {0} + 5be0: 63000001 movwvs r0, #1 ; 0x1 + 5be4: 6e6e6168 powvsez f6, f6, #0.0 + 5be8: 6e5f6c65 cdpvs 12, 5, cr6, cr15, cr5, {3} + 5bec: 745f6d75 ldrbvc r6, [pc], #3445 ; 5bf4 + 5bf0: 01006761 tsteq r0, r1, ror #14 + 5bf4: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ + 5bf8: 656e6e61 strbvs r6, [lr, #-3681]! + 5bfc: 5f31316c svcpl 0x0031316c + 5c00: 13000063 movwne r0, #99 ; 0x63 + 5c04: 61684367 cmnvs r8, r7, ror #6 + 5c08: 6c656e6e stclvs 14, cr6, [r5], #-440 + 5c0c: 635f3231 cmpvs pc, #268435459 ; 0x10000003 + 5c10: 67130100 ldrvs r0, [r3, -r0, lsl #2] + 5c14: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5c18: 316c656e cmncc ip, lr, ror #10 + 5c1c: 00635f33 rsbeq r5, r3, r3, lsr pc + 5c20: 43671302 cmnmi r7, #134217728 ; 0x8000000 + 5c24: 6e6e6168 powvsez f6, f6, #0.0 + 5c28: 34316c65 ldrtcc r6, [r1], #-3173 + 5c2c: 0300635f movweq r6, #863 ; 0x35f + 5c30: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ + 5c34: 656e6e61 strbvs r6, [lr, #-3681]! + 5c38: 5f35316c svcpl 0x0035316c + 5c3c: 13040063 movwne r0, #16483 ; 0x4063 + 5c40: 61684367 cmnvs r8, r7, ror #6 + 5c44: 6c656e6e stclvs 14, cr6, [r5], #-440 + 5c48: 635f3631 cmpvs pc, #51380224 ; 0x3100000 + 5c4c: 67130500 ldrvs r0, [r3, -r0, lsl #10] + 5c50: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5c54: 316c656e cmncc ip, lr, ror #10 + 5c58: 00635f37 rsbeq r5, r3, r7, lsr pc + 5c5c: 43671306 cmnmi r7, #402653184 ; 0x18000000 + 5c60: 6e6e6168 powvsez f6, f6, #0.0 + 5c64: 38316c65 ldmdacc r1!, {r0, r2, r5, r6, sl, fp, sp, lr} + 5c68: 0700635f smlsdeq r0, pc, r3, r6 + 5c6c: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ + 5c70: 656e6e61 strbvs r6, [lr, #-3681]! + 5c74: 5f39316c svcpl 0x0039316c + 5c78: 13080063 movwne r0, #32867 ; 0x8063 + 5c7c: 61684367 cmnvs r8, r7, ror #6 + 5c80: 6c656e6e stclvs 14, cr6, [r5], #-440 + 5c84: 635f3032 cmpvs pc, #50 ; 0x32 + 5c88: 67130900 ldrvs r0, [r3, -r0, lsl #18] + 5c8c: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5c90: 326c656e rsbcc r6, ip, #461373440 ; 0x1b800000 + 5c94: 00635f31 rsbeq r5, r3, r1, lsr pc + 5c98: 4367130a cmnmi r7, #671088640 ; 0x28000000 + 5c9c: 6e6e6168 powvsez f6, f6, #0.0 + 5ca0: 32326c65 eorscc r6, r2, #25856 ; 0x6500 + 5ca4: 0b00635f bleq 1ea28 + 5ca8: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ + 5cac: 656e6e61 strbvs r6, [lr, #-3681]! + 5cb0: 5f33326c svcpl 0x0033326c + 5cb4: 130c0063 movwne r0, #49251 ; 0xc063 + 5cb8: 61684367 cmnvs r8, r7, ror #6 + 5cbc: 6c656e6e stclvs 14, cr6, [r5], #-440 + 5cc0: 635f3432 cmpvs pc, #838860800 ; 0x32000000 + 5cc4: 67130d00 ldrvs r0, [r3, -r0, lsl #26] + 5cc8: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5ccc: 326c656e rsbcc r6, ip, #461373440 ; 0x1b800000 + 5cd0: 00635f35 rsbeq r5, r3, r5, lsr pc + 5cd4: 4367130e cmnmi r7, #939524096 ; 0x38000000 + 5cd8: 6e6e6168 powvsez f6, f6, #0.0 + 5cdc: 36326c65 ldrtcc r6, [r2], -r5, ror #24 + 5ce0: 0f00635f svceq 0x0000635f + 5ce4: 6f546713 svcvs 0x00546713 + 5ce8: 436c6174 cmnmi ip, #29 ; 0x1d + 5cec: 6e6e6168 powvsez f6, f6, #0.0 + 5cf0: 5f736c65 svcpl 0x00736c65 + 5cf4: 00100063 andseq r0, r0, r3, rrx + 5cf8: 00000000 andeq r0, r0, r0 + 5cfc: 00000158 andeq r0, r0, r8, asr r1 + 5d00: 05000003 streq r0, [r0, #-3] + 5d04: 06040000 streq r0, [r4], -r0 + 5d08: 445c3a43 ldrbmi r3, [ip], #-2627 + 5d0c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5d10: 73746e65 cmnvc r4, #1616 ; 0x650 + 5d14: 646e6120 strbtvs r6, [lr], #-288 + 5d18: 74655320 strbtvc r5, [r5], #-800 + 5d1c: 676e6974 undefined + 5d20: 616d5c73 smcvs 54723 + 5d24: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5d28: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5d2c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5d30: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5d34: 775c7374 undefined + 5d38: 6f632d73 svcvs 0x00632d73 + 5d3c: 6f72746e svcvs 0x0072746e + 5d40: 65575c6c ldrbvs r5, [r7, #-3180] + 5d44: 65687461 strbvs r7, [r8, #-1121]! + 5d48: 74532072 ldrbvc r2, [r3], #-114 + 5d4c: 6f697461 svcvs 0x00697461 + 5d50: 6f43206e svcvs 0x0043206e + 5d54: 6f72746e svcvs 0x0072746e + 5d58: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5d5c: 414d535c cmpmi sp, ip, asr r3 + 5d60: 6f535c43 svcvs 0x00535c43 + 5d64: 65637275 strbvs r7, [r3, #-629]! + 5d68: 6461525c strbtvs r5, [r1], #-604 + 5d6c: 614d6f69 cmpvs sp, r9, ror #30 + 5d70: 6567616e strbvs r6, [r7, #-366]! + 5d74: 746e656d strbtvc r6, [lr], #-1389 + 5d78: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 5d7c: 41205241 teqmi r0, r1, asr #4 + 5d80: 2049534e subcs r5, r9, lr, asr #6 + 5d84: 2b432f43 blcs 10d1a98 + 5d88: 6f43202b svcvs 0x0043202b + 5d8c: 6c69706d stclvs 0, cr7, [r9], #-436 + 5d90: 56207265 strtpl r7, [r0], -r5, ror #4 + 5d94: 30332e35 eorscc r2, r3, r5, lsr lr + 5d98: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 5d9c: 35393231 ldrcc r3, [r9, #-561]! + 5da0: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5da4: 43494b20 movtmi r4, #39712 ; 0x9b20 + 5da8: 4154534b cmpmi r4, fp, asr #6 + 5dac: 66205452 undefined + 5db0: 4120726f teqmi r0, pc, ror #4 + 5db4: 01004d52 tsteq r0, r2, asr sp + 5db8: 00402b84 subeq r2, r0, r4, lsl #23 + 5dbc: 00402bb4 strheq r2, [r0], #-180 + 5dc0: 00003644 andeq r3, r0, r4, asr #12 + 5dc4: 00002255 andeq r2, r0, r5, asr r2 + 5dc8: 003bcf10 eorseq ip, fp, r0, lsl pc + 5dcc: 01580700 cmpeq r8, r0, lsl #14 + 5dd0: 65670000 strbvs r0, [r7]! + 5dd4: 656e5f74 strbvs r5, [lr, #-3956]! + 5dd8: 635f7478 cmpvs pc, #2013265920 ; 0x78000000 + 5ddc: 6e6e6168 powvsez f6, f6, #0.0 + 5de0: 5f6f745f svcpl 0x006f745f + 5de4: 6e616373 mcrvs 3, 3, r6, cr1, cr3, {3} + 5de8: 05f60100 ldrbeq r0, [r6, #256]! + 5dec: 6410010f ldrvs r0, [r0], #-271 + 5df0: 7a000045 bvc 5f0c + 5df4: 84000014 strhi r0, [r0], #-20 + 5df8: b400402b strlt r4, [r0], #-43 + 5dfc: 0800402b stmdaeq r0, {r0, r1, r3, r5, lr} + 5e00: 72727563 rsbsvc r7, r2, #415236096 ; 0x18c00000 + 5e04: 43746e65 cmnmi r4, #1616 ; 0x650 + 5e08: f6010068 undefined instruction 0xf6010068 + 5e0c: 64103405 ldrvs r3, [r0], #-1029 + 5e10: a6000045 strge r0, [r0], -r5, asr #32 + 5e14: 0b000014 bleq 5e6c + 5e18: 7478656e ldrbtvc r6, [r8], #-1390 + 5e1c: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5e20: f801006e undefined instruction 0xf801006e + 5e24: 64101105 ldrvs r1, [r0], #-261 + 5e28: c3000045 movwgt r0, #69 ; 0x45 + 5e2c: 0b000014 bleq 5e84 + 5e30: 656d6974 strbvs r6, [sp, #-2420]! + 5e34: 0074754f rsbseq r7, r4, pc, asr #10 + 5e38: 0b05f901 bleq 184244 + 5e3c: 0045ec10 subeq lr, r5, r0, lsl ip + 5e40: 0014eb00 andseq lr, r4, r0, lsl #22 + 5e44: 01570900 cmpeq r7, r0, lsl #18 + 5e48: 2b8c0000 blcs fe305e50 + 5e4c: 2ba40040 blcs fe905f54 + 5e50: 00000040 andeq r0, r0, r0, asr #32 + 5e54: 00000000 andeq r0, r0, r0 + 5e58: 00000104 andeq r0, r0, r4, lsl #2 + 5e5c: 05000003 streq r0, [r0, #-3] + 5e60: 01040000 tsteq r4, r0 + 5e64: 445c3a43 ldrbmi r3, [ip], #-2627 + 5e68: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5e6c: 73746e65 cmnvc r4, #1616 ; 0x650 + 5e70: 646e6120 strbtvs r6, [lr], #-288 + 5e74: 74655320 strbtvc r5, [r5], #-800 + 5e78: 676e6974 undefined + 5e7c: 616d5c73 smcvs 54723 + 5e80: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5e84: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5e88: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5e8c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5e90: 775c7374 undefined + 5e94: 6f632d73 svcvs 0x00632d73 + 5e98: 6f72746e svcvs 0x0072746e + 5e9c: 65575c6c ldrbvs r5, [r7, #-3180] + 5ea0: 65687461 strbvs r7, [r8, #-1121]! + 5ea4: 74532072 ldrbvc r2, [r3], #-114 + 5ea8: 6f697461 svcvs 0x00697461 + 5eac: 6f43206e svcvs 0x0043206e + 5eb0: 6f72746e svcvs 0x0072746e + 5eb4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5eb8: 414d535c cmpmi sp, ip, asr r3 + 5ebc: 6f535c43 svcvs 0x00535c43 + 5ec0: 65637275 strbvs r7, [r3, #-629]! + 5ec4: 6461525c strbtvs r5, [r1], #-604 + 5ec8: 614d6f69 cmpvs sp, r9, ror #30 + 5ecc: 6567616e strbvs r6, [r7, #-366]! + 5ed0: 746e656d strbtvc r6, [lr], #-1389 + 5ed4: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 5ed8: 41205241 teqmi r0, r1, asr #4 + 5edc: 2049534e subcs r5, r9, lr, asr #6 + 5ee0: 2b432f43 blcs 10d1bf4 + 5ee4: 6f43202b svcvs 0x0043202b + 5ee8: 6c69706d stclvs 0, cr7, [r9], #-436 + 5eec: 56207265 strtpl r7, [r0], -r5, ror #4 + 5ef0: 30332e35 eorscc r2, r3, r5, lsr lr + 5ef4: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 5ef8: 35393231 ldrcc r3, [r9, #-561]! + 5efc: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5f00: 43494b20 movtmi r4, #39712 ; 0x9b20 + 5f04: 4154534b cmpmi r4, fp, asr #6 + 5f08: 66205452 undefined + 5f0c: 4120726f teqmi r0, pc, ror #4 + 5f10: 01004d52 tsteq r0, r2, asr sp + 5f14: 000028c4 andeq r2, r0, r4, asr #17 + 5f18: 0000010c andeq r0, r0, ip, lsl #2 + 5f1c: 0001070f andeq r0, r1, pc, lsl #14 + 5f20: 6d6f6300 stclvs 3, cr6, [pc] + 5f24: 646e616d strbtvs r6, [lr], #-365 + 5f28: 7663785f undefined + 5f2c: 64655f72 strbtvs r5, [r5], #-3954 + 5f30: 113e0c00 teqne lr, r0, lsl #24 + 5f34: 46191001 ldrmi r1, [r9], -r1 + 5f38: 10020000 andne r0, r2, r0 + 5f3c: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + 5f40: 3e0c006e cdpcc 0, 0, cr0, cr12, cr14, {3} + 5f44: 45ec102a strbmi r1, [ip, #42]! + 5f48: 74110000 ldrvc r0, [r1] + 5f4c: 6843706d stmdavs r3, {r0, r2, r3, r5, r6, ip, sp, lr}^ + 5f50: 656e6e61 strbvs r6, [lr, #-3681]! + 5f54: 400c006c andmi r0, ip, ip, rrx + 5f58: 46191014 undefined + 5f5c: 00000000 andeq r0, r0, r0 + 5f60: 00000114 andeq r0, r0, r4, lsl r1 + 5f64: 05000003 streq r0, [r0, #-3] + 5f68: 01040000 tsteq r4, r0 + 5f6c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5f70: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5f74: 73746e65 cmnvc r4, #1616 ; 0x650 + 5f78: 646e6120 strbtvs r6, [lr], #-288 + 5f7c: 74655320 strbtvc r5, [r5], #-800 + 5f80: 676e6974 undefined + 5f84: 616d5c73 smcvs 54723 + 5f88: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5f8c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5f90: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5f94: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5f98: 775c7374 undefined + 5f9c: 6f632d73 svcvs 0x00632d73 + 5fa0: 6f72746e svcvs 0x0072746e + 5fa4: 65575c6c ldrbvs r5, [r7, #-3180] + 5fa8: 65687461 strbvs r7, [r8, #-1121]! + 5fac: 74532072 ldrbvc r2, [r3], #-114 + 5fb0: 6f697461 svcvs 0x00697461 + 5fb4: 6f43206e svcvs 0x0043206e + 5fb8: 6f72746e svcvs 0x0072746e + 5fbc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5fc0: 414d535c cmpmi sp, ip, asr r3 + 5fc4: 6f535c43 svcvs 0x00535c43 + 5fc8: 65637275 strbvs r7, [r3, #-629]! + 5fcc: 6461525c strbtvs r5, [r1], #-604 + 5fd0: 614d6f69 cmpvs sp, r9, ror #30 + 5fd4: 6567616e strbvs r6, [r7, #-366]! + 5fd8: 746e656d strbtvc r6, [lr], #-1389 + 5fdc: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 5fe0: 41205241 teqmi r0, r1, asr #4 + 5fe4: 2049534e subcs r5, r9, lr, asr #6 + 5fe8: 2b432f43 blcs 10d1cfc + 5fec: 6f43202b svcvs 0x0043202b + 5ff0: 6c69706d stclvs 0, cr7, [r9], #-436 + 5ff4: 56207265 strtpl r7, [r0], -r5, ror #4 + 5ff8: 30332e35 eorscc r2, r3, r5, lsr lr + 5ffc: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 6000: 35393231 ldrcc r3, [r9, #-561]! + 6004: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 6008: 43494b20 movtmi r4, #39712 ; 0x9b20 + 600c: 4154534b cmpmi r4, fp, asr #6 + 6010: 66205452 undefined + 6014: 4120726f teqmi r0, pc, ror #4 + 6018: 01004d52 tsteq r0, r2, asr sp + 601c: 000028c4 andeq r2, r0, r4, asr #17 + 6020: 0000010c andeq r0, r0, ip, lsl #2 + 6024: 0001160f andeq r1, r1, pc, lsl #12 + 6028: 6c616300 stclvs 3, cr6, [r1] + 602c: 616c7563 cmnvs ip, r3, ror #10 + 6030: 655f6574 ldrbvs r6, [pc, #-1396] ; 5ac4 + 6034: 61765f64 cmnvs r6, r4, ror #30 + 6038: 0065756c rsbeq r7, r5, ip, ror #10 + 603c: 0905a50b stmdbeq r5, {r0, r1, r3, r8, sl, sp, pc} + 6040: 45ec1000 strbmi r1, [ip]! + 6044: 10000000 andne r0, r0, r0 + 6048: 67615f78 undefined + 604c: 63635f63 cmnvs r3, #396 ; 0x18c + 6050: 64655f61 strbtvs r5, [r5], #-3937 + 6054: 74756f5f ldrbtvc r6, [r5], #-3935 + 6058: 05a50b00 streq r0, [r5, #2816]! + 605c: 46191025 ldrmi r1, [r9], -r5, lsr #32 + 6060: 75110000 ldrvc r0, [r1] + 6064: 64453233 strbvs r3, [r5], #-563 + 6068: 006c6156 rsbeq r6, ip, r6, asr r1 + 606c: 0c05a70b stceq 7, cr10, [r5], {11} + 6070: 00461910 subeq r1, r6, r0, lsl r9 + 6074: 00000000 andeq r0, r0, r0 + 6078: 00000348 andeq r0, r0, r8, asr #6 + 607c: 06840003 streq r0, [r4], r3 + 6080: 01040000 tsteq r4, r0 + 6084: 445c3a43 ldrbmi r3, [ip], #-2627 + 6088: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 608c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6090: 646e6120 strbtvs r6, [lr], #-288 + 6094: 74655320 strbtvc r5, [r5], #-800 + 6098: 676e6974 undefined + 609c: 616d5c73 smcvs 54723 + 60a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 60a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 60a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 60ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 60b0: 775c7374 undefined + 60b4: 6f632d73 svcvs 0x00632d73 + 60b8: 6f72746e svcvs 0x0072746e + 60bc: 65575c6c ldrbvs r5, [r7, #-3180] + 60c0: 65687461 strbvs r7, [r8, #-1121]! + 60c4: 74532072 ldrbvc r2, [r3], #-114 + 60c8: 6f697461 svcvs 0x00697461 + 60cc: 6f43206e svcvs 0x0043206e + 60d0: 6f72746e svcvs 0x0072746e + 60d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 60d8: 414d535c cmpmi sp, ip, asr r3 + 60dc: 6f535c43 svcvs 0x00535c43 + 60e0: 65637275 strbvs r7, [r3, #-629]! + 60e4: 6172545c cmnvs r2, ip, asr r4 + 60e8: 6563736e strbvs r7, [r3, #-878]! + 60ec: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 60f0: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 60f4: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 60f8: 746e6d67 strbtvc r6, [lr], #-3431 + 60fc: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 6100: 41205241 teqmi r0, r1, asr #4 + 6104: 2049534e subcs r5, r9, lr, asr #6 + 6108: 2b432f43 blcs 10d1e1c + 610c: 6f43202b svcvs 0x0043202b + 6110: 6c69706d stclvs 0, cr7, [r9], #-436 + 6114: 56207265 strtpl r7, [r0], -r5, ror #4 + 6118: 30332e35 eorscc r2, r3, r5, lsr lr + 611c: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 6120: 35393231 ldrcc r3, [r9, #-561]! + 6124: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 6128: 43494b20 movtmi r4, #39712 ; 0x9b20 + 612c: 4154534b cmpmi r4, fp, asr #6 + 6130: 66205452 undefined + 6134: 4120726f teqmi r0, pc, ror #4 + 6138: 01004d52 tsteq r0, r2, asr sp + 613c: 00003704 andeq r3, r0, r4, lsl #14 + 6140: 00000140 andeq r0, r0, r0, asr #2 + 6144: 736e7502 cmnvc lr, #8388608 ; 0x800000 + 6148: 656e6769 strbvs r6, [lr, #-1897]! + 614c: 6f6c2064 svcvs 0x006c2064 + 6150: 0400676e streq r6, [r0], #-1902 + 6154: 8a130307 bhi 4c6d78 + 6158: 02000002 andeq r0, r0, #2 ; 0x2 + 615c: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 6160: 64656e67 strbtvs r6, [r5], #-3687 + 6164: 61686320 cmnvs r8, r0, lsr #6 + 6168: 08010072 stmdaeq r1, {r1, r4, r5, r6} + 616c: 03391303 teqeq r9, #201326592 ; 0xc000000 + 6170: 13050000 movwne r0, #20480 ; 0x5000 + 6174: 00000339 andeq r0, r0, r9, lsr r3 + 6178: 027d1303 rsbseq r1, sp, #201326592 ; 0xc000000 + 617c: 13070000 movwne r0, #28672 ; 0x7000 + 6180: 0000031c andeq r0, r0, ip, lsl r3 + 6184: 00020f14 andeq r0, r2, r4, lsl pc + 6188: 73655400 cmnvc r5, #0 ; 0x0 + 618c: 6f4d5f74 svcvs 0x004d5f74 + 6190: 745f6564 ldrbvc r6, [pc], #1380 ; 6198 + 6194: 01006761 tsteq r0, r1, ror #14 + 6198: 414d5315 cmpmi sp, r5, lsl r3 + 619c: 45545f43 ldrbmi r5, [r4, #-3907] + 61a0: 4d5f5453 cfldrdmi mvd5, [pc, #-332] + 61a4: 5f45444f svcpl 0x0045444f + 61a8: 454c4449 strbmi r4, [ip, #-1097] + 61ac: 53150000 tstpl r5, #0 ; 0x0 + 61b0: 5f43414d svcpl 0x0043414d + 61b4: 54534554 ldrbpl r4, [r3], #-1364 + 61b8: 444f4d5f strbmi r4, [pc], #3423 ; 61c0 + 61bc: 55505f45 ldrbpl r5, [r0, #-3909] + 61c0: 5f45534c svcpl 0x0045534c + 61c4: 53425250 movtpl r5, #8784 ; 0x2250 + 61c8: 58545f39 ldmdapl r4, {r0, r3, r4, r5, r8, r9, sl, fp, ip, lr}^ + 61cc: 0058525f subseq r5, r8, pc, asr r2 + 61d0: 4d531501 cfldr64mi mvdx1, [r3, #-4] + 61d4: 545f4341 ldrbpl r4, [pc], #833 ; 61dc + 61d8: 5f545345 svcpl 0x00545345 + 61dc: 45444f4d strbmi r4, [r4, #-3917] + 61e0: 5245505f subpl r5, r5, #95 ; 0x5f + 61e4: 5f58545f svcpl 0x0058545f + 61e8: 02005852 andeq r5, r0, #5373952 ; 0x520000 + 61ec: 414d5315 cmpmi sp, r5, lsl r3 + 61f0: 45545f43 ldrbmi r5, [r4, #-3907] + 61f4: 4d5f5453 cfldrdmi mvd5, [pc, #-332] + 61f8: 5f45444f svcpl 0x0045444f + 61fc: 474e4152 smlsldmi r4, lr, r2, r1 + 6200: 58545f45 ldmdapl r4, {r0, r2, r6, r8, r9, sl, fp, ip, lr}^ + 6204: 0058525f subseq r5, r8, pc, asr r2 + 6208: 4d531503 cfldr64mi mvdx1, [r3, #-12] + 620c: 545f4341 ldrbpl r4, [pc], #833 ; 6214 + 6210: 5f545345 svcpl 0x00545345 + 6214: 45444f4d strbmi r4, [r4, #-3917] + 6218: 4e4f435f mcrmi 3, 2, r4, cr15, cr15, {2} + 621c: 554e4954 strbpl r4, [lr, #-2388] + 6220: 5f53554f svcpl 0x0053554f + 6224: 4d5f5854 ldclmi 8, cr5, [pc, #-336] + 6228: 0400444f streq r4, [r0], #-1103 + 622c: 414d5315 cmpmi sp, r5, lsl r3 + 6230: 45545f43 ldrbmi r5, [r4, #-3907] + 6234: 4d5f5453 cfldrdmi mvd5, [pc, #-332] + 6238: 5f45444f svcpl 0x0045444f + 623c: 544e4f43 strbpl r4, [lr], #-3907 + 6240: 4f554e49 svcmi 0x00554e49 + 6244: 545f5355 ldrbpl r5, [pc], #853 ; 624c + 6248: 4f4e5f58 svcmi 0x004e5f58 + 624c: 00444f4d subeq r4, r4, sp, asr #30 + 6250: 4d531505 cfldr64mi mvdx1, [r3, #-20] + 6254: 545f4341 ldrbpl r4, [pc], #833 ; 625c + 6258: 5f545345 svcpl 0x00545345 + 625c: 45444f4d strbmi r4, [r4, #-3917] + 6260: 4e4f435f mcrmi 3, 2, r4, cr15, cr15, {2} + 6264: 554e4954 strbpl r4, [lr, #-2388] + 6268: 5f53554f svcpl 0x0053554f + 626c: 06005852 undefined + 6270: 414d5315 cmpmi sp, r5, lsl r3 + 6274: 414d5f43 cmpmi sp, r3, asr #30 + 6278: 45545f58 ldrbmi r5, [r4, #-3928] + 627c: 4d5f5453 cfldrdmi mvd5, [pc, #-332] + 6280: 5345444f movtpl r4, #21583 ; 0x544f + 6284: 14000700 strne r0, [r0], #-1792 + 6288: 0000027d andeq r0, r0, sp, ror r2 + 628c: 73726556 cmnvc r2, #360710144 ; 0x15800000 + 6290: 656e6f69 strbvs r6, [lr, #-3945]! + 6294: 6e455f64 cdpvs 15, 4, cr5, cr5, cr4, {3} + 6298: 79746974 ldmdbvc r4!, {r2, r4, r5, r6, r8, fp, sp, lr}^ + 629c: 6761745f undefined + 62a0: 48150100 ldmdami r5, {r8} + 62a4: 414d5f57 cmpmi sp, r7, asr pc + 62a8: 565f4143 ldrbpl r4, [pc], -r3, asr #2 + 62ac: 49535245 ldmdbmi r3, {r0, r2, r6, r9, ip, lr}^ + 62b0: 00004e4f andeq r4, r0, pc, asr #28 + 62b4: 5f575315 svcpl 0x00575315 + 62b8: 43414d53 movtmi r4, #7507 ; 0x1d53 + 62bc: 5245565f subpl r5, r5, #99614720 ; 0x5f00000 + 62c0: 4e4f4953 mcrmi 9, 2, r4, cr15, cr3, {2} + 62c4: 53150100 tstpl r5, #0 ; 0x0 + 62c8: 4f425f57 svcmi 0x00425f57 + 62cc: 5453544f ldrbpl r5, [r3], #-1103 + 62d0: 5f504152 svcpl 0x00504152 + 62d4: 53524556 cmppl r2, #360710144 ; 0x15800000 + 62d8: 004e4f49 subeq r4, lr, r9, asr #30 + 62dc: 414d1502 cmpmi sp, r2, lsl #10 + 62e0: 45565f58 ldrbmi r5, [r6, #-3928] + 62e4: 4f495352 svcmi 0x00495352 + 62e8: 5f44454e svcpl 0x0044454e + 62ec: 49544e45 ldmdbmi r4, {r0, r2, r6, r9, sl, fp, lr}^ + 62f0: 03005954 movweq r5, #2388 ; 0x954 + 62f4: 028a1600 addeq r1, sl, #0 ; 0x0 + 62f8: 95130000 ldrls r0, [r3] + 62fc: 17000002 strne r0, [r0, -r2] + 6300: 95160002 ldrls r0, [r6, #-2] + 6304: 15000002 strne r0, [r0, #-2] + 6308: 2a1701cc bcs 5c6a40 + 630c: 02d91800 sbcseq r1, r9, #0 ; 0x0 + 6310: 65760000 ldrbvs r0, [r6]! + 6314: 6f697372 svcvs 0x00697372 + 6318: 6e615f6e cdpvs 15, 6, cr5, cr1, cr14, {3} + 631c: 69735f64 ldmdbvs r3!, {r2, r5, r6, r8, r9, sl, fp, ip, lr}^ + 6320: 745f657a ldrbvc r6, [pc], #1402 ; 6328 + 6324: 08006761 stmdaeq r0, {r0, r5, r6, r8, r9, sl, sp, lr} + 6328: 01fa1519 mvnseq r1, r9, lsl r5 + 632c: 72657601 rsbvc r7, r5, #1048576 ; 0x100000 + 6330: 6e6f6973 mcrvs 9, 3, r6, cr15, cr3, {3} + 6334: 6464615f strbtvs r6, [r4], #-351 + 6338: 00230200 eoreq r0, r3, r0, lsl #4 + 633c: 031c1319 tsteq ip, #1677721600 ; 0x64000000 + 6340: 77010000 strvc r0, [r1, -r0] + 6344: 5f64726f svcpl 0x0064726f + 6348: 657a6973 ldrbvs r6, [sl, #-2419]! + 634c: 04230200 strteq r0, [r3], #-512 + 6350: 75461a00 strbvc r1, [r6, #-2560] + 6354: 6552636e ldrbvs r6, [r2, #-878] + 6358: 6e727574 mrcvs 5, 3, r7, cr2, cr4, {3} + 635c: 1000745f andne r7, r0, pc, asr r4 + 6360: 00002af6 strdeq r2, [r0], -r6 + 6364: 1a03500c bne da39c + 6368: 74736554 ldrbtvc r6, [r3], #-1364 + 636c: 646f4d5f strbtvs r4, [pc], #3423 ; 6374 + 6370: 00745f65 rsbseq r5, r4, r5, ror #30 + 6374: 0e028c15 mcreq 12, 0, r8, cr2, cr5, {0} + 6378: 561a032e ldrpl r0, [sl], -lr, lsr #6 + 637c: 69737265 ldmdbvs r3!, {r0, r2, r5, r6, r9, ip, sp, lr}^ + 6380: 64656e6f strbtvs r6, [r5], #-3695 + 6384: 746e455f strbtvc r4, [lr], #-1375 + 6388: 5f797469 svcpl 0x00797469 + 638c: 8f150074 svchi 0x00150074 + 6390: 02400e04 subeq r0, r0, #64 ; 0x40 + 6394: 6e69751a mcrvs 5, 3, r7, cr9, cr10, {0} + 6398: 745f3874 ldrbvc r3, [pc], #2164 ; 63a0 + 639c: 01e31500 mvneq r1, r0, lsl #10 + 63a0: 1a191a01 bne 64cbac + 63a4: 6c6f6f62 stclvs 15, cr6, [pc], #-392 + 63a8: 1500745f strne r7, [r0, #-1119] + 63ac: 2c01069c stccs 6, cr0, [r1], {156} + 63b0: 69751a13 ldmdbvs r5!, {r0, r1, r4, r9, fp, ip}^ + 63b4: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 + 63b8: 1500745f strne r7, [r0, #-1119] + 63bc: 1e0101cc adfnedm f0, f1, #4.0 + 63c0: 00000019 andeq r0, r0, r9, lsl r0 + 63c4: 000000ec andeq r0, r0, ip, ror #1 + 63c8: 06840003 streq r0, [r4], r3 + 63cc: 01040000 tsteq r4, r0 + 63d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 63d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 63d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 63dc: 646e6120 strbtvs r6, [lr], #-288 + 63e0: 74655320 strbtvc r5, [r5], #-800 + 63e4: 676e6974 undefined + 63e8: 616d5c73 smcvs 54723 + 63ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 63f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 63f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 63f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 63fc: 775c7374 undefined + 6400: 6f632d73 svcvs 0x00632d73 + 6404: 6f72746e svcvs 0x0072746e + 6408: 65575c6c ldrbvs r5, [r7, #-3180] + 640c: 65687461 strbvs r7, [r8, #-1121]! + 6410: 74532072 ldrbvc r2, [r3], #-114 + 6414: 6f697461 svcvs 0x00697461 + 6418: 6f43206e svcvs 0x0043206e + 641c: 6f72746e svcvs 0x0072746e + 6420: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6424: 414d535c cmpmi sp, ip, asr r3 + 6428: 6f535c43 svcvs 0x00535c43 + 642c: 65637275 strbvs r7, [r3, #-629]! + 6430: 6172545c cmnvs r2, ip, asr r4 + 6434: 6563736e strbvs r7, [r3, #-878]! + 6438: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 643c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 6440: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 6444: 746e6d67 strbtvc r6, [lr], #-3431 + 6448: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 644c: 41205241 teqmi r0, r1, asr #4 + 6450: 2049534e subcs r5, r9, lr, asr #6 + 6454: 2b432f43 blcs 10d2168 + 6458: 6f43202b svcvs 0x0043202b + 645c: 6c69706d stclvs 0, cr7, [r9], #-436 + 6460: 56207265 strtpl r7, [r0], -r5, ror #4 + 6464: 30332e35 eorscc r2, r3, r5, lsr lr + 6468: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 646c: 35393231 ldrcc r3, [r9, #-561]! + 6470: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 6474: 43494b20 movtmi r4, #39712 ; 0x9b20 + 6478: 4154534b cmpmi r4, fp, asr #6 + 647c: 66205452 undefined + 6480: 4120726f teqmi r0, pc, ror #4 + 6484: 01004d52 tsteq r0, r2, asr sp + 6488: 00003704 andeq r3, r0, r4, lsl #14 + 648c: 00000140 andeq r0, r0, r0, asr #2 + 6490: 73496d04 movtvc r6, #40196 ; 0x9d04 + 6494: 6d6f7250 sfmvs f7, 2, [pc, #-320]! + 6498: 6f637369 svcvs 0x00637369 + 649c: 6f4d7375 svcvs 0x004d7375 + 64a0: 10006564 andne r6, r0, r4, ror #10 + 64a4: 000063a3 andeq r6, r0, r3, lsr #7 + 64a8: 000f7a0f andeq r7, pc, pc, lsl #20 + 64ac: 52ad0305 adcpl r0, sp, #335544320 ; 0x14000000 + 64b0: 00000040 andeq r0, r0, r0, asr #32 + 64b4: 0000010c andeq r0, r0, ip, lsl #2 + 64b8: 06840003 streq r0, [r4], r3 + 64bc: 06040000 streq r0, [r4], -r0 + 64c0: 445c3a43 ldrbmi r3, [ip], #-2627 + 64c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 64c8: 73746e65 cmnvc r4, #1616 ; 0x650 + 64cc: 646e6120 strbtvs r6, [lr], #-288 + 64d0: 74655320 strbtvc r5, [r5], #-800 + 64d4: 676e6974 undefined + 64d8: 616d5c73 smcvs 54723 + 64dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 64e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 64e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 64e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 64ec: 775c7374 undefined + 64f0: 6f632d73 svcvs 0x00632d73 + 64f4: 6f72746e svcvs 0x0072746e + 64f8: 65575c6c ldrbvs r5, [r7, #-3180] + 64fc: 65687461 strbvs r7, [r8, #-1121]! + 6500: 74532072 ldrbvc r2, [r3], #-114 + 6504: 6f697461 svcvs 0x00697461 + 6508: 6f43206e svcvs 0x0043206e + 650c: 6f72746e svcvs 0x0072746e + 6510: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6514: 414d535c cmpmi sp, ip, asr r3 + 6518: 6f535c43 svcvs 0x00535c43 + 651c: 65637275 strbvs r7, [r3, #-629]! + 6520: 6172545c cmnvs r2, ip, asr r4 + 6524: 6563736e strbvs r7, [r3, #-878]! + 6528: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 652c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 6530: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 6534: 746e6d67 strbtvc r6, [lr], #-3431 + 6538: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 653c: 41205241 teqmi r0, r1, asr #4 + 6540: 2049534e subcs r5, r9, lr, asr #6 + 6544: 2b432f43 blcs 10d2258 + 6548: 6f43202b svcvs 0x0043202b + 654c: 6c69706d stclvs 0, cr7, [r9], #-436 + 6550: 56207265 strtpl r7, [r0], -r5, ror #4 + 6554: 30332e35 eorscc r2, r3, r5, lsr lr + 6558: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 655c: 35393231 ldrcc r3, [r9, #-561]! + 6560: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 6564: 43494b20 movtmi r4, #39712 ; 0x9b20 + 6568: 4154534b cmpmi r4, fp, asr #6 + 656c: 66205452 undefined + 6570: 4120726f teqmi r0, pc, ror #4 + 6574: 01004d52 tsteq r0, r2, asr sp + 6578: 004038c8 subeq r3, r0, r8, asr #17 + 657c: 004038ce subeq r3, r0, lr, asr #17 + 6580: 00003c28 andeq r3, r0, r8, lsr #24 + 6584: 000022c6 andeq r2, r0, r6, asr #5 + 6588: 00608310 rsbeq r8, r0, r0, lsl r3 + 658c: 010c0900 tsteq ip, r0, lsl #18 + 6590: 4c4d0000 marmi acc0, r0, sp + 6594: 6547454d strbvs r4, [r7, #-1357] + 6598: 6f725074 svcvs 0x00725074 + 659c: 6373696d cmnvs r3, #1785856 ; 0x1b4000 + 65a0: 73756f75 cmnvc r5, #468 ; 0x1d4 + 65a4: 65646f4d strbvs r6, [r4, #-3917]! + 65a8: 029f0100 addseq r0, pc, #0 ; 0x0 + 65ac: a3100108 tstge r0, #2 ; 0x2 + 65b0: 08000063 stmdaeq r0, {r0, r1, r5, r6} + 65b4: c8000015 stmdagt r0, {r0, r2, r4} + 65b8: ce004038 mcrgt 0, 0, r4, cr0, cr8, {1} + 65bc: 00004038 andeq r4, r0, r8, lsr r0 + 65c0: 00000000 andeq r0, r0, r0 + 65c4: 00000174 andeq r0, r0, r4, ror r1 + 65c8: 06840003 streq r0, [r4], r3 + 65cc: 06040000 streq r0, [r4], -r0 + 65d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 65d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 65d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 65dc: 646e6120 strbtvs r6, [lr], #-288 + 65e0: 74655320 strbtvc r5, [r5], #-800 + 65e4: 676e6974 undefined + 65e8: 616d5c73 smcvs 54723 + 65ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 65f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 65f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 65f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 65fc: 775c7374 undefined + 6600: 6f632d73 svcvs 0x00632d73 + 6604: 6f72746e svcvs 0x0072746e + 6608: 65575c6c ldrbvs r5, [r7, #-3180] + 660c: 65687461 strbvs r7, [r8, #-1121]! + 6610: 74532072 ldrbvc r2, [r3], #-114 + 6614: 6f697461 svcvs 0x00697461 + 6618: 6f43206e svcvs 0x0043206e + 661c: 6f72746e svcvs 0x0072746e + 6620: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6624: 414d535c cmpmi sp, ip, asr r3 + 6628: 6f535c43 svcvs 0x00535c43 + 662c: 65637275 strbvs r7, [r3, #-629]! + 6630: 6172545c cmnvs r2, ip, asr r4 + 6634: 6563736e strbvs r7, [r3, #-878]! + 6638: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 663c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 6640: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 6644: 746e6d67 strbtvc r6, [lr], #-3431 + 6648: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 664c: 41205241 teqmi r0, r1, asr #4 + 6650: 2049534e subcs r5, r9, lr, asr #6 + 6654: 2b432f43 blcs 10d2368 + 6658: 6f43202b svcvs 0x0043202b + 665c: 6c69706d stclvs 0, cr7, [r9], #-436 + 6660: 56207265 strtpl r7, [r0], -r5, ror #4 + 6664: 30332e35 eorscc r2, r3, r5, lsr lr + 6668: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 666c: 35393231 ldrcc r3, [r9, #-561]! + 6670: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 6674: 43494b20 movtmi r4, #39712 ; 0x9b20 + 6678: 4154534b cmpmi r4, fp, asr #6 + 667c: 66205452 undefined + 6680: 4120726f teqmi r0, pc, ror #4 + 6684: 01004d52 tsteq r0, r2, asr sp + 6688: 004038d0 ldrdeq r3, [r0], #-128 + 668c: 00403974 subeq r3, r0, r4, ror r9 + 6690: 00003cdc ldrdeq r3, [r0], -ip + 6694: 00002318 andeq r2, r0, r8, lsl r3 + 6698: 00608310 rsbeq r8, r0, r0, lsl r3 + 669c: 01770900 cmneq r7, r0, lsl #18 + 66a0: 4c4d0000 marmi acc0, r0, sp + 66a4: 6152454d cmpvs r2, sp, asr #10 + 66a8: 496f6964 stmdbmi pc!, {r2, r5, r6, r8, fp, sp, lr}^ + 66ac: 0074696e rsbseq r6, r4, lr, ror #18 + 66b0: 0e02be01 cdpeq 14, 0, cr11, cr2, cr1, {0} + 66b4: 63511001 cmpvs r1, #1 ; 0x1 + 66b8: 151c0000 ldrne r0, [ip] + 66bc: 38d00000 ldmcc r0, {}^ + 66c0: 39740040 ldmdbcc r4!, {r6}^ + 66c4: 69040040 stmdbvs r4, {r6} + 66c8: 63941000 orrsvs r1, r4, #0 ; 0x0 + 66cc: c0010000 andgt r0, r1, r0 + 66d0: 05001202 streq r1, [r0, #-514] + 66d4: 4052ae03 subsmi sl, r2, r3, lsl #28 + 66d8: 33750b00 cmncc r5, #0 ; 0x0 + 66dc: 6f6f4c32 svcvs 0x006f4c32 + 66e0: 76694470 undefined + 66e4: 02c10100 sbceq r0, r1, #0 ; 0x0 + 66e8: 63b1100c undefined instruction 0x63b1100c + 66ec: 156c0000 strbne r0, [ip]! + 66f0: 590c0000 stmdbpl ip, {} + 66f4: e0000001 and r0, r0, r1 + 66f8: f4004038 vst4.8 {d4-d7}, [r0, :256], r8 + 66fc: 0d004038 stceq 0, cr4, [r0, #-224] + 6700: 00000158 andeq r0, r0, r8, asr r1 + 6704: 00680810 rsbeq r0, r8, r0, lsl r8 + 6708: 4038ee00 eorsmi lr, r8, r0, lsl #28 + 670c: 4038f000 eorsmi pc, r8, r0 + 6710: 2f100e00 svccs 0x00100e00 + 6714: 74000068 strvc r0, [r0], #-104 + 6718: 00000015 andeq r0, r0, r5, lsl r0 + 671c: 01760d00 cmneq r6, r0, lsl #26 + 6720: 18100000 ldmdane r0, {} + 6724: f4000069 vst4.16 {d0-d3}, [r0, :128], r9 + 6728: 4c004038 stcmi 0, cr4, [r0], {56} + 672c: 0f004039 svceq 0x00004039 + 6730: 00693110 rsbeq r3, r9, r0, lsl r1 + 6734: 00157c00 andseq r7, r5, r0, lsl #24 + 6738: 00000000 andeq r0, r0, r0 + 673c: 0000010c andeq r0, r0, ip, lsl #2 + 6740: 06840003 streq r0, [r4], r3 + 6744: 01040000 tsteq r4, r0 + 6748: 445c3a43 ldrbmi r3, [ip], #-2627 + 674c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6750: 73746e65 cmnvc r4, #1616 ; 0x650 + 6754: 646e6120 strbtvs r6, [lr], #-288 + 6758: 74655320 strbtvc r5, [r5], #-800 + 675c: 676e6974 undefined + 6760: 616d5c73 smcvs 54723 + 6764: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6768: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 676c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6770: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6774: 775c7374 undefined + 6778: 6f632d73 svcvs 0x00632d73 + 677c: 6f72746e svcvs 0x0072746e + 6780: 65575c6c ldrbvs r5, [r7, #-3180] + 6784: 65687461 strbvs r7, [r8, #-1121]! + 6788: 74532072 ldrbvc r2, [r3], #-114 + 678c: 6f697461 svcvs 0x00697461 + 6790: 6f43206e svcvs 0x0043206e + 6794: 6f72746e svcvs 0x0072746e + 6798: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 679c: 414d535c cmpmi sp, ip, asr r3 + 67a0: 6f535c43 svcvs 0x00535c43 + 67a4: 65637275 strbvs r7, [r3, #-629]! + 67a8: 6172545c cmnvs r2, ip, asr r4 + 67ac: 6563736e strbvs r7, [r3, #-878]! + 67b0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 67b4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 67b8: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 67bc: 746e6d67 strbtvc r6, [lr], #-3431 + 67c0: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 67c4: 41205241 teqmi r0, r1, asr #4 + 67c8: 2049534e subcs r5, r9, lr, asr #6 + 67cc: 2b432f43 blcs 10d24e0 + 67d0: 6f43202b svcvs 0x0043202b + 67d4: 6c69706d stclvs 0, cr7, [r9], #-436 + 67d8: 56207265 strtpl r7, [r0], -r5, ror #4 + 67dc: 30332e35 eorscc r2, r3, r5, lsr lr + 67e0: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 67e4: 35393231 ldrcc r3, [r9, #-561]! + 67e8: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 67ec: 43494b20 movtmi r4, #39712 ; 0x9b20 + 67f0: 4154534b cmpmi r4, fp, asr #6 + 67f4: 66205452 undefined + 67f8: 4120726f teqmi r0, pc, ror #4 + 67fc: 01004d52 tsteq r0, r2, asr sp + 6800: 00003704 andeq r3, r0, r4, lsl #14 + 6804: 00000140 andeq r0, r0, r0, asr #2 + 6808: 00010f10 andeq r0, r1, r0, lsl pc + 680c: 4d4c4d00 stclmi 13, cr4, [ip] + 6810: 74655345 strbtvc r5, [r5], #-837 + 6814: 6d6f7250 sfmvs f7, 2, [pc, #-320]! + 6818: 75637369 strbvc r7, [r3, #-873]! + 681c: 4d73756f cfldr64mi mvdx7, [r3, #-444]! + 6820: 0065646f rsbeq r6, r5, pc, ror #8 + 6824: 0e02930f cdpeq 3, 0, cr9, cr2, cr15, {0} + 6828: 63511001 cmpvs r1, #1 ; 0x1 + 682c: 11000000 tstne r0, r0 + 6830: 72507369 subsvc r7, r0, #-1543503871 ; 0xa4000001 + 6834: 73696d6f cmnvc r9, #7104 ; 0x1bc0 + 6838: 73756f63 cmnvc r5, #396 ; 0x18c + 683c: 65646f4d strbvs r6, [r4, #-3917]! + 6840: 02930f00 addseq r0, r3, #0 ; 0x0 + 6844: 63a3102c undefined instruction 0x63a3102c + 6848: 00000000 andeq r0, r0, r0 + 684c: 000000f4 strdeq r0, [r0], -r4 + 6850: 06840003 streq r0, [r4], r3 + 6854: 01040000 tsteq r4, r0 + 6858: 445c3a43 ldrbmi r3, [ip], #-2627 + 685c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6860: 73746e65 cmnvc r4, #1616 ; 0x650 + 6864: 646e6120 strbtvs r6, [lr], #-288 + 6868: 74655320 strbtvc r5, [r5], #-800 + 686c: 676e6974 undefined + 6870: 616d5c73 smcvs 54723 + 6874: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6878: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 687c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6880: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6884: 775c7374 undefined + 6888: 6f632d73 svcvs 0x00632d73 + 688c: 6f72746e svcvs 0x0072746e + 6890: 65575c6c ldrbvs r5, [r7, #-3180] + 6894: 65687461 strbvs r7, [r8, #-1121]! + 6898: 74532072 ldrbvc r2, [r3], #-114 + 689c: 6f697461 svcvs 0x00697461 + 68a0: 6f43206e svcvs 0x0043206e + 68a4: 6f72746e svcvs 0x0072746e + 68a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 68ac: 414d535c cmpmi sp, ip, asr r3 + 68b0: 6f535c43 svcvs 0x00535c43 + 68b4: 65637275 strbvs r7, [r3, #-629]! + 68b8: 6172545c cmnvs r2, ip, asr r4 + 68bc: 6563736e strbvs r7, [r3, #-878]! + 68c0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 68c4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 68c8: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 68cc: 746e6d67 strbtvc r6, [lr], #-3431 + 68d0: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 68d4: 41205241 teqmi r0, r1, asr #4 + 68d8: 2049534e subcs r5, r9, lr, asr #6 + 68dc: 2b432f43 blcs 10d25f0 + 68e0: 6f43202b svcvs 0x0043202b + 68e4: 6c69706d stclvs 0, cr7, [r9], #-436 + 68e8: 56207265 strtpl r7, [r0], -r5, ror #4 + 68ec: 30332e35 eorscc r2, r3, r5, lsr lr + 68f0: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 68f4: 35393231 ldrcc r3, [r9, #-561]! + 68f8: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 68fc: 43494b20 movtmi r4, #39712 ; 0x9b20 + 6900: 4154534b cmpmi r4, fp, asr #6 + 6904: 66205452 undefined + 6908: 4120726f teqmi r0, pc, ror #4 + 690c: 01004d52 tsteq r0, r2, asr sp + 6910: 00003704 andeq r3, r0, r4, lsl #14 + 6914: 00000140 andeq r0, r0, r0, asr #2 + 6918: 0000f412 andeq pc, r0, r2, lsl r4 + 691c: 696e4900 stmdbvs lr!, {r8, fp, lr}^ + 6920: 6c616974 stclvs 9, cr6, [r1], #-464 + 6924: 50657a69 rsbpl r7, r5, r9, ror #20 + 6928: 0f007968 svceq 0x00007968 + 692c: 000d02e7 andeq r0, sp, r7, ror #5 + 6930: 6e631300 cdpvs 3, 6, cr1, cr3, cr0, {0} + 6934: e90f0074 stmdb pc, {r2, r4, r5, r6} + 6938: 7e101402 cfmulsvc mvf1, mvf0, mvf2 + 693c: 00000061 andeq r0, r0, r1, rrx + 6940: 00000000 andeq r0, r0, r0 + 6944: 00000514 andeq r0, r0, r4, lsl r5 + 6948: 07ec0003 strbeq r0, [ip, r3]! + 694c: 01040000 tsteq r4, r0 + 6950: 445c3a43 ldrbmi r3, [ip], #-2627 + 6954: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6958: 73746e65 cmnvc r4, #1616 ; 0x650 + 695c: 646e6120 strbtvs r6, [lr], #-288 + 6960: 74655320 strbtvc r5, [r5], #-800 + 6964: 676e6974 undefined + 6968: 616d5c73 smcvs 54723 + 696c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6970: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6974: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6978: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 697c: 775c7374 undefined + 6980: 6f632d73 svcvs 0x00632d73 + 6984: 6f72746e svcvs 0x0072746e + 6988: 65575c6c ldrbvs r5, [r7, #-3180] + 698c: 65687461 strbvs r7, [r8, #-1121]! + 6990: 74532072 ldrbvc r2, [r3], #-114 + 6994: 6f697461 svcvs 0x00697461 + 6998: 6f43206e svcvs 0x0043206e + 699c: 6f72746e svcvs 0x0072746e + 69a0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 69a4: 414d535c cmpmi sp, ip, asr r3 + 69a8: 6f535c43 svcvs 0x00535c43 + 69ac: 65637275 strbvs r7, [r3, #-629]! + 69b0: 6172545c cmnvs r2, ip, asr r4 + 69b4: 6563736e strbvs r7, [r3, #-878]! + 69b8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 69bc: 65776f50 ldrbvs r6, [r7, #-3920]! + 69c0: 676e4d72 undefined + 69c4: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 69c8: 41490063 cmpmi r9, r3, rrx + 69cc: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 69d0: 43204953 teqmi r0, #1359872 ; 0x14c000 + 69d4: 2b2b432f blcs ad7698 + 69d8: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 69dc: 656c6970 strbvs r6, [ip, #-2416]! + 69e0: 35562072 ldrbcc r2, [r6, #-114] + 69e4: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 69e8: 31332e32 teqcc r3, r2, lsr lr + 69ec: 2f353932 svccs 0x00353932 + 69f0: 20323357 eorscs r3, r2, r7, asr r3 + 69f4: 4b43494b blmi 10d8f28 + 69f8: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 69fc: 6f662054 svcvs 0x00662054 + 6a00: 52412072 subpl r2, r1, #114 ; 0x72 + 6a04: d401004d strle r0, [r1], #-77 + 6a08: 8000003d andhi r0, r0, sp, lsr r0 + 6a0c: 03000001 movweq r0, #1 ; 0x1 + 6a10: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 6a14: 64656e67 strbtvs r6, [r5], #-3687 + 6a18: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} + 6a1c: 07040067 streq r0, [r4, -r7, rrx] + 6a20: 736e7503 cmnvc lr, #12582912 ; 0xc00000 + 6a24: 656e6769 strbvs r6, [lr, #-1897]! + 6a28: 68632064 stmdavs r3!, {r2, r5, r6, sp}^ + 6a2c: 01007261 tsteq r0, r1, ror #4 + 6a30: 01170a08 tsteq r7, r8, lsl #20 + 6a34: 09010000 stmdbeq r1, {} + 6a38: 74784567 ldrbtvc r4, [r8], #-1383 + 6a3c: 635f7557 cmpvs pc, #364904448 ; 0x15c00000 + 6a40: 67090000 strvs r0, [r9, -r0] + 6a44: 656d6954 strbvs r6, [sp, #-2388]! + 6a48: 5f755772 svcpl 0x00755772 + 6a4c: 09010063 stmdbeq r1, {r0, r1, r5, r6} + 6a50: 63745267 cmnvs r4, #1879048198 ; 0x70000006 + 6a54: 635f7557 cmpvs pc, #364904448 ; 0x15c00000 + 6a58: 08000200 stmdaeq r0, {r9} + 6a5c: 00000160 andeq r0, r0, r0, ror #2 + 6a60: 636f6c63 cmnvs pc, #25344 ; 0x6300 + 6a64: 6f635f6b svcvs 0x00635f6b + 6a68: 6769666e strbvs r6, [r9, -lr, ror #12]! + 6a6c: 6761745f undefined + 6a70: 67090100 strvs r0, [r9, -r0, lsl #2] + 6a74: 656d6954 strbvs r6, [sp, #-2388]! + 6a78: 6b615772 blvs 185c848 + 6a7c: 5f707565 svcpl 0x00707565 + 6a80: 09000063 stmdbeq r0, {r0, r1, r5, r6} + 6a84: 43545267 cmpmi r4, #1879048198 ; 0x70000006 + 6a88: 656b6157 strbvs r6, [fp, #-343]! + 6a8c: 635f7075 cmpvs pc, #117 ; 0x75 + 6a90: 67090100 strvs r0, [r9, -r0, lsl #2] + 6a94: 4e78614d rpwmiem f6, f0, #5.0 + 6a98: 6c436d75 mcrrvs 13, 7, r6, r3, cr5 + 6a9c: 5f6b636f svcpl 0x006b636f + 6aa0: 00020063 andeq r0, r2, r3, rrx + 6aa4: 0002db0b andeq sp, r2, fp, lsl #22 + 6aa8: 130c0400 movwne r0, #50176 ; 0xc400 + 6aac: 000004a9 andeq r0, r0, r9, lsr #9 + 6ab0: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6ab4: 45755734 ldrbmi r5, [r5, #-1844]! + 6ab8: 2302006e movwcs r0, #8302 ; 0x206e + 6abc: 1f010400 svcne 0x00010400 + 6ac0: 04a9130c strteq r1, [r9], #780 + 6ac4: 6b010000 blvs 46acc + 6ac8: 57356962 ldrpl r6, [r5, -r2, ror #18]! + 6acc: 006e4575 rsbeq r4, lr, r5, ror r5 + 6ad0: 04002302 streq r2, [r0], #-770 + 6ad4: 130c1e01 movwne r1, #52737 ; 0xce01 + 6ad8: 000004a9 andeq r0, r0, r9, lsr #9 + 6adc: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6ae0: 45755736 ldrbmi r5, [r5, #-1846]! + 6ae4: 2302006e movwcs r0, #8302 ; 0x206e + 6ae8: 1d010400 cfstrsne mvf0, [r1] + 6aec: 04a9130c strteq r1, [r9], #780 + 6af0: 6b010000 blvs 46af8 + 6af4: 57376962 ldrpl r6, [r7, -r2, ror #18]! + 6af8: 006e4575 rsbeq r4, lr, r5, ror r5 + 6afc: 04002302 streq r2, [r0], #-770 + 6b00: 130c1c01 movwne r1, #52225 ; 0xcc01 + 6b04: 000004a9 andeq r0, r0, r9, lsr #9 + 6b08: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6b0c: 45755734 ldrbmi r5, [r5, #-1844]! + 6b10: 746e6576 strbtvc r6, [lr], #-1398 + 6b14: 00230200 eoreq r0, r3, r0, lsl #4 + 6b18: 0c1b0104 ldfeqs f0, [fp], {4} + 6b1c: 0004a913 andeq sl, r4, r3, lsl r9 + 6b20: 626b0100 rsbvs r0, fp, #0 ; 0x0 + 6b24: 75573569 ldrbvc r3, [r7, #-1385] + 6b28: 6e657645 cdpvs 6, 6, cr7, cr5, cr5, {2} + 6b2c: 23020074 movwcs r0, #8308 ; 0x2074 + 6b30: 1a010400 bne 47b38 + 6b34: 04a9130c strteq r1, [r9], #780 + 6b38: 6b010000 blvs 46b40 + 6b3c: 57366962 ldrpl r6, [r6, -r2, ror #18]! + 6b40: 65764575 ldrbvs r4, [r6, #-1397]! + 6b44: 0200746e andeq r7, r0, #1845493760 ; 0x6e000000 + 6b48: 01040023 tsteq r4, r3, lsr #32 + 6b4c: a9130c19 ldmdbge r3, {r0, r3, r4, sl, fp} + 6b50: 01000004 tsteq r0, r4 + 6b54: 3769626b strbcc r6, [r9, -fp, ror #4]! + 6b58: 76457557 undefined + 6b5c: 00746e65 rsbseq r6, r4, r5, ror #28 + 6b60: 04002302 streq r2, [r0], #-770 + 6b64: 130c1801 movwne r1, #51201 ; 0xc801 + 6b68: 000004a9 andeq r0, r0, r9, lsr #9 + 6b6c: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6b70: 50755734 rsbspl r5, r5, r4, lsr r7 + 6b74: 02006c6f andeq r6, r0, #28416 ; 0x6f00 + 6b78: 01040023 tsteq r4, r3, lsr #32 + 6b7c: a9130c17 ldmdbge r3, {r0, r1, r2, r4, sl, fp} + 6b80: 01000004 tsteq r0, r4 + 6b84: 3569626b strbcc r6, [r9, #-619]! + 6b88: 6f507557 svcvs 0x00507557 + 6b8c: 2302006c movwcs r0, #8300 ; 0x206c + 6b90: 16010400 strne r0, [r1], -r0, lsl #8 + 6b94: 04a9130c strteq r1, [r9], #780 + 6b98: 6b010000 blvs 46ba0 + 6b9c: 57366962 ldrpl r6, [r6, -r2, ror #18]! + 6ba0: 6c6f5075 stclvs 0, cr5, [pc], #-468 + 6ba4: 00230200 eoreq r0, r3, r0, lsl #4 + 6ba8: 0c150104 ldfeqs f0, [r5], {4} + 6bac: 0004a913 andeq sl, r4, r3, lsl r9 + 6bb0: 626b0100 rsbvs r0, fp, #0 ; 0x0 + 6bb4: 75573769 ldrbvc r3, [r7, #-1897] + 6bb8: 006c6f50 rsbeq r6, ip, r0, asr pc + 6bbc: 04002302 streq r2, [r0], #-770 + 6bc0: 130c1401 movwne r1, #50177 ; 0xc401 + 6bc4: 000004a9 andeq r0, r0, r9, lsr #9 + 6bc8: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6bcc: 746e4934 strbtvc r4, [lr], #-2356 + 6bd0: 02006e45 andeq r6, r0, #1104 ; 0x450 + 6bd4: 01040023 tsteq r4, r3, lsr #32 + 6bd8: a9130c13 ldmdbge r3, {r0, r1, r4, sl, fp} + 6bdc: 01000004 tsteq r0, r4 + 6be0: 3569626b strbcc r6, [r9, #-619]! + 6be4: 45746e49 ldrbmi r6, [r4, #-3657]! + 6be8: 2302006e movwcs r0, #8302 ; 0x206e + 6bec: 12010400 andne r0, r1, #0 ; 0x0 + 6bf0: 04a9130c strteq r1, [r9], #780 + 6bf4: 6b010000 blvs 46bfc + 6bf8: 49366962 ldmdbmi r6!, {r1, r5, r6, r8, fp, sp, lr} + 6bfc: 6e45746e cdpvs 4, 4, cr7, cr5, cr14, {3} + 6c00: 00230200 eoreq r0, r3, r0, lsl #4 + 6c04: 0c110104 ldfeqs f0, [r1], {4} + 6c08: 0004a913 andeq sl, r4, r3, lsl r9 + 6c0c: 626b0100 rsbvs r0, fp, #0 ; 0x0 + 6c10: 6e493769 cdpvs 7, 4, cr3, cr9, cr9, {3} + 6c14: 006e4574 rsbeq r4, lr, r4, ror r5 + 6c18: 04002302 streq r2, [r0], #-770 + 6c1c: 0b001001 bleq ac28 + 6c20: 0000033b andeq r0, r0, fp, lsr r3 + 6c24: a9130c04 ldmdbge r3, {r2, sl, fp} + 6c28: 01000004 tsteq r0, r4 + 6c2c: 5769626b strbpl r6, [r9, -fp, ror #4]! + 6c30: 006e4575 rsbeq r4, lr, r5, ror r5 + 6c34: 04002302 streq r2, [r0], #-770 + 6c38: 130c1c04 movwne r1, #52228 ; 0xcc04 + 6c3c: 000004a9 andeq r0, r0, r9, lsr #9 + 6c40: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6c44: 76457557 undefined + 6c48: 00746e65 rsbseq r6, r4, r5, ror #28 + 6c4c: 04002302 streq r2, [r0], #-770 + 6c50: 130c1804 movwne r1, #51204 ; 0xc804 + 6c54: 000004a9 andeq r0, r0, r9, lsr #9 + 6c58: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6c5c: 6f507557 svcvs 0x00507557 + 6c60: 2302006c movwcs r0, #8300 ; 0x206c + 6c64: 14040400 strne r0, [r4], #-1024 + 6c68: 04a9130c strteq r1, [r9], #780 + 6c6c: 6b010000 blvs 46c74 + 6c70: 6e496962 cdpvs 9, 4, cr6, cr9, cr2, {3} + 6c74: 006e4574 rsbeq r4, lr, r4, ror r5 + 6c78: 04002302 streq r2, [r0], #-770 + 6c7c: 0b001004 bleq ac94 + 6c80: 00000385 andeq r0, r0, r5, lsl #7 + 6c84: a9130c08 ldmdbge r3, {r3, sl, fp} + 6c88: 01000004 tsteq r0, r4 + 6c8c: 656d6974 strbvs r6, [sp, #-2420]! + 6c90: 45755772 ldrbmi r5, [r5, #-1906]! + 6c94: 2302006e movwcs r0, #8302 ; 0x206e + 6c98: 1f010400 svcne 0x00010400 + 6c9c: 04a9130c strteq r1, [r9], #780 + 6ca0: 74010000 strvc r0, [r1] + 6ca4: 72656d69 rsbvc r6, r5, #6720 ; 0x1a40 + 6ca8: 6e497557 mcrvs 5, 2, r7, cr9, cr7, {2} + 6cac: 006e4574 rsbeq r4, lr, r4, ror r5 + 6cb0: 04002302 streq r2, [r0], #-770 + 6cb4: 130d1e01 movwne r1, #56833 ; 0xde01 + 6cb8: 000004a9 andeq r0, r0, r9, lsr #9 + 6cbc: 6d697401 cfstrdvs mvd7, [r9, #-4]! + 6cc0: 74754f65 ldrbtvc r4, [r5], #-3941 + 6cc4: 04230200 strteq r0, [r3], #-512 + 6cc8: 03cb0b00 biceq r0, fp, #0 ; 0x0 + 6ccc: 0c080000 stceq 0, cr0, [r8], {0} + 6cd0: 0004a913 andeq sl, r4, r3, lsl r9 + 6cd4: 74720100 ldrbtvc r0, [r2], #-256 + 6cd8: 45755763 ldrbmi r5, [r5, #-1891]! + 6cdc: 2302006e movwcs r0, #8302 ; 0x206e + 6ce0: 1f010400 svcne 0x00010400 + 6ce4: 04a9130c strteq r1, [r9], #780 + 6ce8: 72010000 andvc r0, r1, #0 ; 0x0 + 6cec: 75576374 ldrbvc r6, [r7, #-884] + 6cf0: 45746e49 ldrbmi r6, [r4, #-3657]! + 6cf4: 2302006e movwcs r0, #8302 ; 0x206e + 6cf8: 1e010400 cfcpysne mvf0, mvf1 + 6cfc: 04a9130d strteq r1, [r9], #781 + 6d00: 74010000 strvc r0, [r1] + 6d04: 4f656d69 svcmi 0x00656d69 + 6d08: 02007475 andeq r7, r0, #1962934272 ; 0x75000000 + 6d0c: 0b000423 bleq 7da0 + 6d10: 000003f4 strdeq r0, [r0], -r4 + 6d14: 6e130d0c cdpvs 13, 1, cr0, cr3, cr12, {0} + 6d18: 01000004 tsteq r0, r4 + 6d1c: 6f537577 svcvs 0x00537577 + 6d20: 65637275 strbvs r7, [r3, #-629]! + 6d24: 00230200 eoreq r0, r3, r0, lsl #4 + 6d28: 0425130d strteq r1, [r5], #-781 + 6d2c: 63010000 movwvs r0, #4096 ; 0x1000 + 6d30: 006c7274 rsbeq r7, ip, r4, ror r2 + 6d34: 00042302 andeq r2, r4, r2, lsl #6 + 6d38: 0004250e andeq r2, r4, lr, lsl #10 + 6d3c: 130d0400 movwne r0, #54272 ; 0xd400 + 6d40: 000004a9 andeq r0, r0, r9, lsr #9 + 6d44: 726f7701 rsbvc r7, pc, #262144 ; 0x40000 + 6d48: 23020064 movwcs r0, #8292 ; 0x2064 + 6d4c: e0150d00 ands r0, r5, r0, lsl #26 + 6d50: 69620102 stmdbvs r2!, {r1, r8}^ + 6d54: 23020074 movwcs r0, #8308 ; 0x2074 + 6d58: db150d00 blle 54a160 + 6d5c: 696e0105 stmdbvs lr!, {r0, r2, r8}^ + 6d60: 656c6262 strbvs r6, [ip, #-610]! + 6d64: 00230200 eoreq r0, r3, r0, lsl #4 + 6d68: 04580e00 ldrbeq r0, [r8], #-3584 + 6d6c: 0d080000 stceq 0, cr0, [r8] + 6d70: 0004fd13 andeq pc, r4, r3, lsl sp + 6d74: 78650100 stmdavc r5!, {r8}^ + 6d78: 23020074 movwcs r0, #8308 ; 0x2074 + 6d7c: b9130d00 ldmdblt r3, {r8, sl, fp} + 6d80: 01000004 tsteq r0, r4 + 6d84: 656d6974 strbvs r6, [sp, #-2420]! + 6d88: 23020072 movwcs r0, #8306 ; 0x2072 + 6d8c: d2130d00 andsle r0, r3, #0 ; 0x0 + 6d90: 01000004 tsteq r0, r4 + 6d94: 00637472 rsbeq r7, r3, r2, ror r4 + 6d98: 00002302 andeq r2, r0, r2, lsl #6 + 6d9c: 6e75460f cdpvs 6, 7, cr4, cr5, cr15, {0} + 6da0: 74655263 strbtvc r5, [r5], #-611 + 6da4: 5f6e7275 svcpl 0x006e7275 + 6da8: f6100074 undefined instruction 0xf6100074 + 6dac: 0800002a stmdaeq r0, {r1, r3, r5} + 6db0: 630f0350 movwvs r0, #62288 ; 0xf350 + 6db4: 75576d72 ldrbvc r6, [r7, #-3442] + 6db8: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 6dbc: 745f6563 ldrbvc r6, [pc], #1379 ; 6dc4 + 6dc0: 01ed1500 mvneq r1, r0, lsl #10 + 6dc4: 0302e904 movweq lr, #10500 ; 0x2904 + 6dc8: 6f6c630f svcvs 0x006c630f + 6dcc: 635f6b63 cmpvs pc, #101376 ; 0x18c00 + 6dd0: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 6dd4: 00745f67 rsbseq r5, r4, r7, ror #30 + 6dd8: 09029715 stmdbeq r2, {r0, r2, r4, r8, r9, sl, ip, pc} + 6ddc: 750f0338 strvc r0, [pc, #-824] ; 6aac + 6de0: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ + 6de4: 1500745f strne r7, [r0, #-1119] + 6de8: 1a0101dc bne 47560 + 6dec: 69750f19 ldmdbvs r5!, {r0, r3, r4, r8, r9, sl, fp}^ + 6df0: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 + 6df4: 1500745f strne r7, [r0, #-1119] + 6df8: 1e0101cb adfnedm f0, f1, #3.0 + 6dfc: 72630f19 rsbvc r0, r3, #100 ; 0x64 + 6e00: 6d69546d cfstrdvs mvd5, [r9, #-436]! + 6e04: 75577265 ldrbvc r7, [r7, #-613] + 6e08: 6c727443 cfldrdvs mvd7, [r2], #-268 + 6e0c: 1500745f strne r7, [r0, #-1119] + 6e10: b40406bb strlt r0, [r4], #-1723 + 6e14: 630f0203 movwvs r0, #61955 ; 0xf203 + 6e18: 74526d72 ldrbvc r6, [r2], #-3442 + 6e1c: 43755763 cmnmi r5, #25952256 ; 0x18c0000 + 6e20: 5f6c7274 svcpl 0x006c7274 + 6e24: 85150074 ldrhi r0, [r5, #-116] + 6e28: 03bf0407 undefined instruction 0x03bf0407 + 6e2c: 72630f02 rsbvc r0, r3, #8 ; 0x8 + 6e30: 4375576d cmnmi r5, #28573696 ; 0x1b40000 + 6e34: 5f6c7274 svcpl 0x006c7274 + 6e38: cb150074 blgt 547010 + 6e3c: 03cd0407 biceq r0, sp, #117440512 ; 0x7000000 + 6e40: 72630f02 rsbvc r0, r3, #8 ; 0x8 + 6e44: 7478456d ldrbtvc r4, [r8], #-1389 + 6e48: 74437557 strbvc r7, [r3], #-1367 + 6e4c: 745f6c72 ldrbvc r6, [pc], #3186 ; 6e54 + 6e50: 07f41500 ldrbeq r1, [r4, r0, lsl #10]! + 6e54: 02039404 andeq r9, r3, #67108864 ; 0x4000000 + 6e58: 00000000 andeq r0, r0, r0 + 6e5c: 00000170 andeq r0, r0, r0, ror r1 + 6e60: 07ec0003 strbeq r0, [ip, r3]! + 6e64: 02040000 andeq r0, r4, #0 ; 0x0 + 6e68: 445c3a43 ldrbmi r3, [ip], #-2627 + 6e6c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6e70: 73746e65 cmnvc r4, #1616 ; 0x650 + 6e74: 646e6120 strbtvs r6, [lr], #-288 + 6e78: 74655320 strbtvc r5, [r5], #-800 + 6e7c: 676e6974 undefined + 6e80: 616d5c73 smcvs 54723 + 6e84: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6e88: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6e8c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6e90: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6e94: 775c7374 undefined + 6e98: 6f632d73 svcvs 0x00632d73 + 6e9c: 6f72746e svcvs 0x0072746e + 6ea0: 65575c6c ldrbvs r5, [r7, #-3180] + 6ea4: 65687461 strbvs r7, [r8, #-1121]! + 6ea8: 74532072 ldrbvc r2, [r3], #-114 + 6eac: 6f697461 svcvs 0x00697461 + 6eb0: 6f43206e svcvs 0x0043206e + 6eb4: 6f72746e svcvs 0x0072746e + 6eb8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6ebc: 414d535c cmpmi sp, ip, asr r3 + 6ec0: 6f535c43 svcvs 0x00535c43 + 6ec4: 65637275 strbvs r7, [r3, #-629]! + 6ec8: 6172545c cmnvs r2, ip, asr r4 + 6ecc: 6563736e strbvs r7, [r3, #-878]! + 6ed0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 6ed4: 65776f50 ldrbvs r6, [r7, #-3920]! + 6ed8: 676e4d72 undefined + 6edc: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 6ee0: 41490063 cmpmi r9, r3, rrx + 6ee4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 6ee8: 43204953 teqmi r0, #1359872 ; 0x14c000 + 6eec: 2b2b432f blcs ad7bb0 + 6ef0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 6ef4: 656c6970 strbvs r6, [ip, #-2416]! + 6ef8: 35562072 ldrbcc r2, [r6, #-114] + 6efc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 6f00: 31332e32 teqcc r3, r2, lsr lr + 6f04: 2f353932 svccs 0x00353932 + 6f08: 20323357 eorscs r3, r2, r7, asr r3 + 6f0c: 4b43494b blmi 10d9440 + 6f10: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 6f14: 6f662054 svcvs 0x00662054 + 6f18: 52412072 subpl r2, r1, #114 ; 0x72 + 6f1c: 8801004d stmdahi r1, {r0, r2, r3, r6} + 6f20: 1c004039 stcne 0, cr4, [r0], {57} + 6f24: cc00403a stcgt 0, cr4, [r0], {58} + 6f28: 33000040 movwcc r0, #64 ; 0x40 + 6f2c: 10000024 andne r0, r0, r4, lsr #32 + 6f30: 0000694f andeq r6, r0, pc, asr #18 + 6f34: 00017304 andeq r7, r1, r4, lsl #6 + 6f38: 4d4c4d00 stclmi 13, cr4, [ip] + 6f3c: 74655345 strbtvc r5, [r5], #-837 + 6f40: 656b6157 strbvs r6, [fp, #-343]! + 6f44: 6f537075 svcvs 0x00537075 + 6f48: 65637275 strbvs r7, [r3, #-629]! + 6f4c: 0e670100 poweqs f0, f7, f0 + 6f50: 6d9c1001 ldcvs 0, cr1, [ip, #4] + 6f54: 159a0000 ldrne r0, [sl] + 6f58: 39880000 stmibcc r8, {} + 6f5c: 3a1c0040 bcc 707064 + 6f60: 75050040 strvc r0, [r5, #-64] + 6f64: 646f4d38 strbtvs r4, [pc], #3384 ; 6f6c + 6f68: 67010065 strvs r0, [r1, -r5, rrx] + 6f6c: 6dde102a ldclvs 0, cr1, [lr, #168] + 6f70: 15ea0000 strbne r0, [sl]! + 6f74: 75050000 strvc r0, [r5] + 6f78: 49424b38 stmdbmi r2, {r3, r4, r5, r8, r9, fp, lr}^ + 6f7c: 006c6f50 rsbeq r6, ip, r0, asr pc + 6f80: 103a6701 eorsne r6, sl, r1, lsl #14 + 6f84: 00006dde ldrdeq r6, [r0], -lr + 6f88: 00001612 andeq r1, r0, r2, lsl r6 + 6f8c: 4b387505 blmi e243a8 + 6f90: 64454942 strbvs r4, [r5], #-2370 + 6f94: 01006567 tsteq r0, r7, ror #10 + 6f98: de104b67 fnmscdle d4, d0, d23 + 6f9c: 2f00006d svccs 0x0000006d + 6fa0: 06000016 undefined + 6fa4: 52706d74 rsbspl r6, r0, #7424 ; 0x1d00 + 6fa8: 72756574 rsbsvc r6, r5, #486539264 ; 0x1d000000 + 6fac: 6901006e stmdbvs r1, {r1, r2, r3, r5, r6} + 6fb0: 6d9c1010 ldcvs 0, cr1, [ip, #64] + 6fb4: 164c0000 strbne r0, [ip], -r0 + 6fb8: 57060000 strpl r0, [r6, -r0] + 6fbc: 72744375 rsbsvc r4, r4, #-738197503 ; 0xd4000001 + 6fc0: 6a01006c bvs 47178 + 6fc4: 6e2d100f cdpvs 0, 2, cr1, cr13, cr15, {0} + 6fc8: 169e0000 ldrne r0, [lr], r0 + 6fcc: 00000000 andeq r0, r0, r0 + 6fd0: 000005e8 andeq r0, r0, r8, ror #11 + 6fd4: 08c40003 stmiaeq r4, {r0, r1}^ + 6fd8: 01040000 tsteq r4, r0 + 6fdc: 445c3a43 ldrbmi r3, [ip], #-2627 + 6fe0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6fe4: 73746e65 cmnvc r4, #1616 ; 0x650 + 6fe8: 646e6120 strbtvs r6, [lr], #-288 + 6fec: 74655320 strbtvc r5, [r5], #-800 + 6ff0: 676e6974 undefined + 6ff4: 616d5c73 smcvs 54723 + 6ff8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6ffc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7000: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7004: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7008: 775c7374 undefined + 700c: 6f632d73 svcvs 0x00632d73 + 7010: 6f72746e svcvs 0x0072746e + 7014: 65575c6c ldrbvs r5, [r7, #-3180] + 7018: 65687461 strbvs r7, [r8, #-1121]! + 701c: 74532072 ldrbvc r2, [r3], #-114 + 7020: 6f697461 svcvs 0x00697461 + 7024: 6f43206e svcvs 0x0043206e + 7028: 6f72746e svcvs 0x0072746e + 702c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7030: 7070415c rsbsvc r4, r0, ip, asr r1 + 7034: 6163696c cmnvs r3, ip, ror #18 + 7038: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 703c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7040: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7044: 555c7365 ldrbpl r7, [ip, #-869] + 7048: 55747261 ldrbpl r7, [r4, #-609]! + 704c: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 7050: 41490063 cmpmi r9, r3, rrx + 7054: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 7058: 43204953 teqmi r0, #1359872 ; 0x14c000 + 705c: 2b2b432f blcs ad7d20 + 7060: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7064: 656c6970 strbvs r6, [ip, #-2416]! + 7068: 35562072 ldrbcc r2, [r6, #-114] + 706c: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 7070: 31332e32 teqcc r3, r2, lsr lr + 7074: 2f353932 svccs 0x00353932 + 7078: 20323357 eorscs r3, r2, r7, asr r3 + 707c: 4b43494b blmi 10d95b0 + 7080: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7084: 6f662054 svcvs 0x00662054 + 7088: 52412072 subpl r2, r1, #114 ; 0x72 + 708c: a801004d stmdage r1, {r0, r2, r3, r6} + 7090: ac000041 stcge 0, cr0, [r0], {65} + 7094: 02000001 andeq r0, r0, #1 ; 0x1 + 7098: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 709c: 64656e67 strbtvs r6, [r5], #-3687 + 70a0: 6f687320 svcvs 0x00687320 + 70a4: 02007472 andeq r7, r0, #1912602624 ; 0x72000000 + 70a8: 6e750207 cdpvs 2, 7, cr0, cr5, cr7, {0} + 70ac: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} + 70b0: 63206465 teqvs r0, #1694498816 ; 0x65000000 + 70b4: 00726168 rsbseq r6, r2, r8, ror #2 + 70b8: 13040801 movwne r0, #18433 ; 0x4801 + 70bc: 0000051e andeq r0, r0, lr, lsl r5 + 70c0: 051e1306 ldreq r1, [lr, #-774] + 70c4: 75020000 strvc r0, [r2] + 70c8: 6769736e strbvs r7, [r9, -lr, ror #6]! + 70cc: 2064656e rsbcs r6, r4, lr, ror #10 + 70d0: 676e6f6c strbvs r6, [lr, -ip, ror #30]! + 70d4: 06070400 streq r0, [r7], -r0, lsl #8 + 70d8: 00058c13 andeq r8, r5, r3, lsl ip + 70dc: 6f760200 svcvs 0x00760200 + 70e0: 00006469 andeq r6, r0, r9, ror #8 + 70e4: 98130605 ldmdals r3, {r0, r2, r9, sl} + 70e8: 06000002 streq r0, [r0], -r2 + 70ec: 0005ab13 andeq sl, r5, r3, lsl fp + 70f0: a2130600 andsge r0, r3, #0 ; 0x0 + 70f4: 07000002 streq r0, [r0, -r2] + 70f8: 00051e13 andeq r1, r5, r3, lsl lr + 70fc: a7150600 ldrge r0, [r5, -r0, lsl #12] + 7100: 68630202 stmdavs r3!, {r1, r9}^ + 7104: 01007261 tsteq r0, r1, ror #4 + 7108: 01a81208 undefined instruction 0x01a81208 + 710c: 13010000 movwne r0, #4096 ; 0x1000 + 7110: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 7114: 61655274 smcvs 21796 + 7118: 61745364 cmnvs r4, r4, ror #6 + 711c: 43737574 cmnmi r3, #486539264 ; 0x1d000000 + 7120: 6c706d6f ldclvs 13, cr6, [r0], #-444 + 7124: 5f657465 svcpl 0x00657465 + 7128: 13000063 movwne r0, #99 ; 0x63 + 712c: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 7130: 61655274 smcvs 21796 + 7134: 61745364 cmnvs r4, r4, ror #6 + 7138: 43737574 cmnmi r3, #486539264 ; 0x1d000000 + 713c: 65636e61 strbvs r6, [r3, #-3681]! + 7140: 5f64656c svcpl 0x0064656c + 7144: 13010063 movwne r0, #4195 ; 0x1063 + 7148: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 714c: 61655274 smcvs 21796 + 7150: 61745364 cmnvs r4, r4, ror #6 + 7154: 45737574 ldrbmi r7, [r3, #-1396]! + 7158: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 715c: 0200635f andeq r6, r0, #2080374785 ; 0x7c000001 + 7160: 61556713 cmpvs r5, r3, lsl r7 + 7164: 65527472 ldrbvs r7, [r2, #-1138] + 7168: 74536461 ldrbvc r6, [r3], #-1121 + 716c: 73757461 cmnvc r5, #1627389952 ; 0x61000000 + 7170: 5f78614d svcpl 0x0078614d + 7174: 00030063 andeq r0, r3, r3, rrx + 7178: 00020112 andeq r0, r2, r2, lsl r1 + 717c: 67130100 ldrvs r0, [r3, -r0, lsl #2] + 7180: 74726155 ldrbtvc r6, [r2], #-341 + 7184: 74697257 strbtvc r7, [r9], #-599 + 7188: 61745365 cmnvs r4, r5, ror #6 + 718c: 43737574 cmnmi r3, #486539264 ; 0x1d000000 + 7190: 6c706d6f ldclvs 13, cr6, [r0], #-444 + 7194: 5f657465 svcpl 0x00657465 + 7198: 13000063 movwne r0, #99 ; 0x63 + 719c: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 71a0: 69725774 ldmdbvs r2!, {r2, r4, r5, r6, r8, r9, sl, ip, lr}^ + 71a4: 74536574 ldrbvc r6, [r3], #-1396 + 71a8: 73757461 cmnvc r5, #1627389952 ; 0x61000000 + 71ac: 636e6143 cmnvs lr, #-1073741808 ; 0xc0000010 + 71b0: 64656c65 strbtvs r6, [r5], #-3173 + 71b4: 0100635f tsteq r0, pc, asr r3 + 71b8: 61556713 cmpvs r5, r3, lsl r7 + 71bc: 72577472 subsvc r7, r7, #1912602624 ; 0x72000000 + 71c0: 53657469 cmnpl r5, #1761607680 ; 0x69000000 + 71c4: 75746174 ldrbvc r6, [r4, #-372]! + 71c8: 78614d73 stmdavc r1!, {r0, r1, r4, r5, r6, r8, sl, fp, lr}^ + 71cc: 0200635f andeq r6, r0, #2080374785 ; 0x7c000001 + 71d0: 02561200 subseq r1, r6, #0 ; 0x0 + 71d4: 13010000 movwne r0, #4096 ; 0x1000 + 71d8: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 71dc: 72615074 rsbvc r5, r1, #116 ; 0x74 + 71e0: 4e797469 cdpmi 4, 7, cr7, cr9, cr9, {3} + 71e4: 5f656e6f svcpl 0x00656e6f + 71e8: 13000063 movwne r0, #99 ; 0x63 + 71ec: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 71f0: 72615074 rsbvc r5, r1, #116 ; 0x74 + 71f4: 45797469 ldrbmi r7, [r9, #-1129]! + 71f8: 5f6e6576 svcpl 0x006e6576 + 71fc: 13010063 movwne r0, #4195 ; 0x1063 + 7200: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 7204: 72615074 rsbvc r5, r1, #116 ; 0x74 + 7208: 4f797469 svcmi 0x00797469 + 720c: 635f6464 cmpvs pc, #1677721600 ; 0x64000000 + 7210: 67130200 ldrvs r0, [r3, -r0, lsl #4] + 7214: 74726155 ldrbtvc r6, [r2], #-341 + 7218: 69726150 ldmdbvs r2!, {r4, r6, r8, sp, lr}^ + 721c: 614d7974 cmpvs sp, r4, ror r9 + 7220: 00635f78 rsbeq r5, r3, r8, ror pc + 7224: 98120003 ldmdals r2, {r0, r1} + 7228: 01000002 tsteq r0, r2 + 722c: 61556713 cmpvs r5, r3, lsl r7 + 7230: 74537472 ldrbvc r7, [r3], #-1138 + 7234: 6942706f stmdbvs r2, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ + 7238: 5f317374 svcpl 0x00317374 + 723c: 13000063 movwne r0, #99 ; 0x63 + 7240: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 7244: 6f745374 svcvs 0x00745374 + 7248: 74694270 strbtvc r4, [r9], #-624 + 724c: 635f3273 cmpvs pc, #805306375 ; 0x30000007 + 7250: 67130100 ldrvs r0, [r3, -r0, lsl #2] + 7254: 74726155 ldrbtvc r6, [r2], #-341 + 7258: 706f7453 rsbvc r7, pc, r3, asr r4 + 725c: 73746942 cmnvc r4, #1081344 ; 0x108000 + 7260: 5f78614d svcpl 0x0078614d + 7264: 00020063 andeq r0, r2, r3, rrx + 7268: 0002a214 andeq sl, r2, r4, lsl r2 + 726c: 87151500 ldrhi r1, [r5, -r0, lsl #10] + 7270: ac140002 ldcge 0, cr0, [r4], {2} + 7274: 15000002 strne r0, [r0, #-2] + 7278: 00029b15 andeq r9, r2, r5, lsl fp + 727c: 0002b916 andeq fp, r2, r6, lsl r9 + 7280: 051e1300 ldreq r1, [lr, #-768] + 7284: 00170000 andseq r0, r7, r0 + 7288: 02c61600 sbceq r1, r6, #0 ; 0x0 + 728c: 1e130000 wxorne wr0, wr3, wr0 + 7290: 17000005 strne r0, [r0, -r5] + 7294: d3160002 tstle r6, #2 ; 0x2 + 7298: 13000002 movwne r0, #2 ; 0x2 + 729c: 0000051e andeq r0, r0, lr, lsl r5 + 72a0: 18000517 stmdane r0, {r0, r1, r2, r4, r8, sl} + 72a4: 0000035a andeq r0, r0, sl, asr r3 + 72a8: 4b131908 blmi 4cd6d0 + 72ac: 01000005 tsteq r0, r5 + 72b0: 74726155 ldrbtvc r6, [r2], #-341 + 72b4: 64756142 ldrbtvs r6, [r5], #-322 + 72b8: 65746172 ldrbvs r6, [r4, #-370]! + 72bc: 00230200 eoreq r0, r3, r0, lsl #4 + 72c0: 04f01319 ldrbteq r1, [r0], #793 + 72c4: 55010000 strpl r0, [r1] + 72c8: 50747261 rsbspl r7, r4, r1, ror #4 + 72cc: 74697261 strbtvc r7, [r9], #-609 + 72d0: 23020079 movwcs r0, #8313 ; 0x2079 + 72d4: 08131904 ldmdaeq r3, {r2, r8, fp, ip} + 72d8: 01000005 tsteq r0, r5 + 72dc: 74726155 ldrbtvc r6, [r2], #-341 + 72e0: 706f7453 rsbvc r7, pc, r3, asr r4 + 72e4: 73746942 cmnvc r4, #1081344 ; 0x108000 + 72e8: 05230200 streq r0, [r3, #-512]! + 72ec: 052d1319 streq r1, [sp, #-793]! + 72f0: 55010000 strpl r0, [r1] + 72f4: 46747261 ldrbtmi r7, [r4], -r1, ror #4 + 72f8: 43776f6c cmnmi r7, #432 ; 0x1b0 + 72fc: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 7300: 6e456c6f cdpvs 12, 4, cr6, cr5, cr15, {3} + 7304: 656c6261 strbvs r6, [ip, #-609]! + 7308: 23020064 movwcs r0, #8292 ; 0x2064 + 730c: 2d131906 ldccs 9, cr1, [r3, #-24] + 7310: 01000005 tsteq r0, r5 + 7314: 74726155 ldrbtvc r6, [r2], #-341 + 7318: 41535452 cmpmi r3, r2, asr r4 + 731c: 76697463 strbtvc r7, [r9], -r3, ror #8 + 7320: 67694865 strbvs r4, [r9, -r5, ror #16]! + 7324: 23020068 movwcs r0, #8296 ; 0x2068 + 7328: f1180007 undefined instruction 0xf1180007 + 732c: 04000003 streq r0, [r0], #-3 + 7330: 054b131a strbeq r1, [fp, #-794] + 7334: 55010000 strpl r0, [r1] + 7338: 52747261 rsbspl r7, r4, #268435462 ; 0x10000006 + 733c: 4f646165 svcmi 0x00646165 + 7340: 72726576 rsbsvc r6, r2, #494927872 ; 0x1d800000 + 7344: 72456e75 subvc r6, r5, #1872 ; 0x750 + 7348: 00726f72 rsbseq r6, r2, r2, ror pc + 734c: 04002302 streq r2, [r0], #-770 + 7350: 131a1f01 tstne sl, #4 ; 0x4 + 7354: 0000054b andeq r0, r0, fp, asr #10 + 7358: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 + 735c: 72615074 rsbvc r5, r1, #116 ; 0x74 + 7360: 45797469 ldrbmi r7, [r9, #-1129]! + 7364: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 7368: 00230200 eoreq r0, r3, r0, lsl #4 + 736c: 1a1e0104 bne 787784 + 7370: 00054b13 andeq r4, r5, r3, lsl fp + 7374: 61550100 cmpvs r5, r0, lsl #2 + 7378: 72467472 subvc r7, r6, #1912602624 ; 0x72000000 + 737c: 45656d61 strbmi r6, [r5, #-3425]! + 7380: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 7384: 00230200 eoreq r0, r3, r0, lsl #4 + 7388: 1a1d0104 bne 7477a0 + 738c: 00054b13 andeq r4, r5, r3, lsl fp + 7390: 61550100 cmpvs r5, r0, lsl #2 + 7394: 74537472 ldrbvc r7, [r3], #-1138 + 7398: 42747261 rsbsmi r7, r4, #268435462 ; 0x10000006 + 739c: 72457469 subvc r7, r5, #1761607680 ; 0x69000000 + 73a0: 00726f72 rsbseq r6, r2, r2, ror pc + 73a4: 04002302 streq r2, [r0], #-770 + 73a8: 131a1c01 tstne sl, #256 ; 0x100 + 73ac: 0000054b andeq r0, r0, fp, asr #10 + 73b0: 73655201 cmnvc r5, #268435456 ; 0x10000000 + 73b4: 65767265 ldrbvs r7, [r6, #-613]! + 73b8: 23020064 movwcs r0, #8292 ; 0x2064 + 73bc: 18040400 stmdane r4, {sl} + 73c0: 04471800 strbeq r1, [r7], #-2048 + 73c4: 19080000 stmdbne r8, {} + 73c8: 0004bf13 andeq fp, r4, r3, lsl pc + 73cc: 61550100 cmpvs r5, r0, lsl #2 + 73d0: 74537472 ldrbvc r7, [r3], #-1138 + 73d4: 73757461 cmnvc r5, #1627389952 ; 0x61000000 + 73d8: 00230200 eoreq r0, r3, r0, lsl #4 + 73dc: 053b1319 ldreq r1, [fp, #-793]! + 73e0: 55010000 strpl r0, [r1] + 73e4: 4e747261 cdpmi 2, 7, cr7, cr4, cr1, {3} + 73e8: 65626d75 strbvs r6, [r2, #-3445]! + 73ec: 74794272 ldrbtvc r4, [r9], #-626 + 73f0: 65527365 ldrbvs r7, [r2, #-869] + 73f4: 76696563 strbtvc r6, [r9], -r3, ror #10 + 73f8: 02006465 andeq r6, r0, #1694498816 ; 0x65000000 + 73fc: 13190223 tstne r9, #805306370 ; 0x30000002 + 7400: 0000056f andeq r0, r0, pc, ror #10 + 7404: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 + 7408: 61655274 smcvs 21796 + 740c: 72724564 rsbsvc r4, r2, #419430400 ; 0x19000000 + 7410: 0200726f andeq r7, r0, #-268435450 ; 0xf0000006 + 7414: 18000423 stmdane r0, {r0, r1, r5, sl} + 7418: 00000481 andeq r0, r0, r1, lsl #9 + 741c: d7131904 ldrle r1, [r3, -r4, lsl #18] + 7420: 01000004 tsteq r0, r4 + 7424: 74726155 ldrbtvc r6, [r2], #-341 + 7428: 74617453 strbtvc r7, [r1], #-1107 + 742c: 02007375 andeq r7, r0, #-738197503 ; 0xd4000001 + 7430: 13190023 tstne r9, #35 ; 0x23 + 7434: 0000053b andeq r0, r0, fp, lsr r5 + 7438: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 + 743c: 6d754e74 ldclvs 14, cr4, [r5, #-464]! + 7440: 42726562 rsbsmi r6, r2, #411041792 ; 0x18800000 + 7444: 73657479 cmnvc r5, #2030043136 ; 0x79000000 + 7448: 746e6553 strbtvc r6, [lr], #-1363 + 744c: 02230200 eoreq r0, r3, #0 ; 0x0 + 7450: 04bf1800 ldrteq r1, [pc], #2048 ; 7458 + 7454: 19080000 stmdbne r8, {} + 7458: 01029515 tsteq r2, r5, lsl r5 + 745c: 61556670 cmpvs r5, r0, ror r6 + 7460: 65527472 ldrbvs r7, [r2, #-1138] + 7464: 61436461 cmpvs r3, r1, ror #8 + 7468: 61626c6c cmnvs r2, ip, ror #24 + 746c: 02006b63 andeq r6, r0, #101376 ; 0x18c00 + 7470: 15190023 ldrne r0, [r9, #-35] + 7474: 700102a1 andvc r0, r1, r1, lsr #5 + 7478: 72615566 rsbvc r5, r1, #427819008 ; 0x19800000 + 747c: 69725774 ldmdbvs r2!, {r2, r4, r5, r6, r8, r9, sl, ip, lr}^ + 7480: 61436574 cmpvs r3, r4, ror r5 + 7484: 61626c6c cmnvs r2, ip, ror #24 + 7488: 02006b63 andeq r6, r0, #101376 ; 0x18c00 + 748c: 1b000423 blne 8520 + 7490: 74726155 ldrbtvc r6, [r2], #-341 + 7494: 64616552 strbtvs r6, [r1], #-1362 + 7498: 74617453 strbtvc r7, [r1], #-1107 + 749c: 745f7375 ldrbvc r7, [pc], #885 ; 74a4 + 74a0: 02b91500 adcseq r1, r9, #0 ; 0x0 + 74a4: 1b035c09 blne de4d0 + 74a8: 74726155 ldrbtvc r6, [r2], #-341 + 74ac: 74697257 strbtvc r7, [r9], #-599 + 74b0: 61745365 cmnvs r4, r5, ror #6 + 74b4: 5f737574 svcpl 0x00737574 + 74b8: a8150074 ldmdage r5, {r2, r4, r5, r6} + 74bc: 03630903 cmneq r3, #49152 ; 0xc000 + 74c0: 7261551b rsbvc r5, r1, #113246208 ; 0x6c00000 + 74c4: 72615074 rsbvc r5, r1, #116 ; 0x74 + 74c8: 4d797469 cfldrdmi mvd7, [r9, #-420]! + 74cc: 5f65646f svcpl 0x0065646f + 74d0: 81150074 tsthi r5, r4, ror r0 + 74d4: 036b0904 cmneq fp, #65536 ; 0x10000 + 74d8: 7261551b rsbvc r5, r1, #113246208 ; 0x6c00000 + 74dc: 6f745374 svcvs 0x00745374 + 74e0: 74694270 strbtvc r4, [r9], #-624 + 74e4: 00745f73 rsbseq r5, r4, r3, ror pc + 74e8: 0904d615 stmdbeq r4, {r0, r2, r4, r9, sl, ip, lr, pc} + 74ec: 751b0372 ldrvc r0, [fp, #-882] + 74f0: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ + 74f4: 1500745f strne r7, [r0, #-1119] + 74f8: 1a0301d9 bne c7c64 + 74fc: 6f621b19 svcvs 0x00621b19 + 7500: 745f6c6f ldrbvc r6, [pc], #3183 ; 7508 + 7504: 0a9e1500 beq fe78c90c + 7508: 1b132c03 blne 4d251c + 750c: 746e6975 strbtvc r6, [lr], #-2421 + 7510: 745f3631 ldrbvc r3, [pc], #1585 ; 7518 + 7514: 01c71500 biceq r1, r7, r0, lsl #10 + 7518: 1b191c03 blne 64e52c + 751c: 746e6975 strbtvc r6, [lr], #-2421 + 7520: 745f3233 ldrbvc r3, [pc], #563 ; 7528 + 7524: 01f61500 mvnseq r1, r0, lsl #10 + 7528: 1b191e03 blne 64ed3c + 752c: 74726155 ldrbtvc r6, [r2], #-341 + 7530: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 7534: 745f6769 ldrbvc r6, [pc], #1897 ; 753c + 7538: 05d31500 ldrbeq r1, [r3, #1280] + 753c: 1b037b09 blne e6168 + 7540: 74726155 ldrbtvc r6, [r2], #-341 + 7544: 64616552 strbtvs r6, [r1], #-1362 + 7548: 6f727245 svcvs 0x00727245 + 754c: 616c4672 smcvs 50274 + 7550: 745f7367 ldrbvc r7, [pc], #871 ; 7558 + 7554: 06da1500 ldrbeq r1, [sl], r0, lsl #10 + 7558: 03018409 movweq r8, #5129 ; 0x1409 + 755c: 7261551b rsbvc r5, r1, #113246208 ; 0x6c00000 + 7560: 61655274 smcvs 21796 + 7564: 6c614364 stclvs 3, cr4, [r1], #-400 + 7568: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 756c: 6772416b ldrbvs r4, [r2, -fp, ror #2]! + 7570: 00745f73 rsbseq r5, r4, r3, ror pc + 7574: 0907f115 stmdbeq r7, {r0, r2, r4, r8, ip, sp, lr, pc} + 7578: 1b03018c blne c7bb0 + 757c: 74726155 ldrbtvc r6, [r2], #-341 + 7580: 74697257 strbtvc r7, [r9], #-599 + 7584: 6c614365 stclvs 3, cr4, [r1], #-404 + 7588: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 758c: 6772416b ldrbvs r4, [r2, -fp, ror #2]! + 7590: 00745f73 rsbseq r5, r4, r3, ror pc + 7594: 0908c715 stmdbeq r8, {r0, r2, r4, r8, r9, sl, lr, pc} + 7598: 1b030192 blne c7be8 + 759c: 74726155 ldrbtvc r6, [r2], #-341 + 75a0: 6c6c6143 stfvse f6, [ip], #-268 + 75a4: 6b636162 blvs 18dfb34 + 75a8: 636e7546 cmnvs lr, #293601280 ; 0x11800000 + 75ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 75b0: 00745f73 rsbseq r5, r4, r3, ror pc + 75b4: 09098115 stmdbeq r9, {r0, r2, r4, r8, pc} + 75b8: 00030198 muleq r3, r8, r1 + 75bc: 00000124 andeq r0, r0, r4, lsr #2 + 75c0: 08c40003 stmiaeq r4, {r0, r1}^ + 75c4: 01040000 tsteq r4, r0 + 75c8: 445c3a43 ldrbmi r3, [ip], #-2627 + 75cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 75d0: 73746e65 cmnvc r4, #1616 ; 0x650 + 75d4: 646e6120 strbtvs r6, [lr], #-288 + 75d8: 74655320 strbtvc r5, [r5], #-800 + 75dc: 676e6974 undefined + 75e0: 616d5c73 smcvs 54723 + 75e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 75e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 75ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 75f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 75f4: 775c7374 undefined + 75f8: 6f632d73 svcvs 0x00632d73 + 75fc: 6f72746e svcvs 0x0072746e + 7600: 65575c6c ldrbvs r5, [r7, #-3180] + 7604: 65687461 strbvs r7, [r8, #-1121]! + 7608: 74532072 ldrbvc r2, [r3], #-114 + 760c: 6f697461 svcvs 0x00697461 + 7610: 6f43206e svcvs 0x0043206e + 7614: 6f72746e svcvs 0x0072746e + 7618: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 761c: 7070415c rsbsvc r4, r0, ip, asr r1 + 7620: 6163696c cmnvs r3, ip, ror #18 + 7624: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7628: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 762c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7630: 555c7365 ldrbpl r7, [ip, #-869] + 7634: 55747261 ldrbpl r7, [r4, #-609]! + 7638: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 763c: 41490063 cmpmi r9, r3, rrx + 7640: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 7644: 43204953 teqmi r0, #1359872 ; 0x14c000 + 7648: 2b2b432f blcs ad830c + 764c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7650: 656c6970 strbvs r6, [ip, #-2416]! + 7654: 35562072 ldrbcc r2, [r6, #-114] + 7658: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 765c: 31332e32 teqcc r3, r2, lsr lr + 7660: 2f353932 svccs 0x00353932 + 7664: 20323357 eorscs r3, r2, r7, asr r3 + 7668: 4b43494b blmi 10d9b9c + 766c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7670: 6f662054 svcvs 0x00662054 + 7674: 52412072 subpl r2, r1, #114 ; 0x72 + 7678: a801004d stmdage r1, {r0, r2, r3, r6} + 767c: ac000041 stcge 0, cr0, [r0], {65} + 7680: 03000001 movweq r0, #1 ; 0x1 + 7684: 36317567 ldrtcc r7, [r1], -r7, ror #10 + 7688: 4e494353 mcrmi 3, 2, r4, cr9, cr3, {2} + 768c: 664f6d75 undefined + 7690: 65747942 ldrbvs r7, [r4, #-2370]! + 7694: 0b100073 bleq 407868 + 7698: 01000075 tsteq r0, r5, ror r0 + 769c: 05010a3b streq r0, [r1, #-2619] + 76a0: 4052a603 subsmi sl, r2, r3, lsl #12 + 76a4: 75670300 strbvc r0, [r7, #-768]! + 76a8: 49435338 stmdbmi r3, {r3, r4, r5, r8, r9, ip, lr}^ + 76ac: 61746144 cmnvs r4, r4, asr #2 + 76b0: 67616c46 strbvs r6, [r1, -r6, asr #24]! + 76b4: 70ba1000 adcsvc r1, sl, r0 + 76b8: 3a010000 bcc 476c0 + 76bc: 03050112 movweq r0, #20754 ; 0x5112 + 76c0: 004052a5 subeq r5, r0, r5, lsr #5 + 76c4: 38756703 ldmdacc r5!, {r0, r1, r8, r9, sl, sp, lr}^ + 76c8: 53494353 movtpl r4, #37715 ; 0x9353 + 76cc: 75746174 ldrbvc r6, [r4, #-372]! + 76d0: 8f100073 svchi 0x00100073 + 76d4: 01000074 tsteq r0, r4, ror r0 + 76d8: 05011239 streq r1, [r1, #-569] + 76dc: 4052a403 subsmi sl, r2, r3, lsl #8 + 76e0: 00000000 andeq r0, r0, r0 + 76e4: 00000138 andeq r0, r0, r8, lsr r1 + 76e8: 08c40003 stmiaeq r4, {r0, r1}^ + 76ec: 05040000 streq r0, [r4] + 76f0: 445c3a43 ldrbmi r3, [ip], #-2627 + 76f4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 76f8: 73746e65 cmnvc r4, #1616 ; 0x650 + 76fc: 646e6120 strbtvs r6, [lr], #-288 + 7700: 74655320 strbtvc r5, [r5], #-800 + 7704: 676e6974 undefined + 7708: 616d5c73 smcvs 54723 + 770c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7710: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7714: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7718: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 771c: 775c7374 undefined + 7720: 6f632d73 svcvs 0x00632d73 + 7724: 6f72746e svcvs 0x0072746e + 7728: 65575c6c ldrbvs r5, [r7, #-3180] + 772c: 65687461 strbvs r7, [r8, #-1121]! + 7730: 74532072 ldrbvc r2, [r3], #-114 + 7734: 6f697461 svcvs 0x00697461 + 7738: 6f43206e svcvs 0x0043206e + 773c: 6f72746e svcvs 0x0072746e + 7740: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7744: 7070415c rsbsvc r4, r0, ip, asr r1 + 7748: 6163696c cmnvs r3, ip, ror #18 + 774c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7750: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7754: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7758: 555c7365 ldrbpl r7, [ip, #-869] + 775c: 55747261 ldrbpl r7, [r4, #-609]! + 7760: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 7764: 41490063 cmpmi r9, r3, rrx + 7768: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 776c: 43204953 teqmi r0, #1359872 ; 0x14c000 + 7770: 2b2b432f blcs ad8434 + 7774: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7778: 656c6970 strbvs r6, [ip, #-2416]! + 777c: 35562072 ldrbcc r2, [r6, #-114] + 7780: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 7784: 31332e32 teqcc r3, r2, lsr lr + 7788: 2f353932 svccs 0x00353932 + 778c: 20323357 eorscs r3, r2, r7, asr r3 + 7790: 4b43494b blmi 10d9cc4 + 7794: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7798: 6f662054 svcvs 0x00662054 + 779c: 52412072 subpl r2, r1, #114 ; 0x72 + 77a0: 8c01004d stchi 0, cr0, [r1], {77} + 77a4: 18004033 stmdane r0, {r0, r1, r4, r5, lr} + 77a8: 4c004034 stcmi 0, cr4, [r0], {52} + 77ac: df000045 svcle 0x00000045 + 77b0: 10000024 andne r0, r0, r4, lsr #32 + 77b4: 00006fdb ldrdeq r6, [r0], -fp + 77b8: 00013b08 andeq r3, r1, r8, lsl #22 + 77bc: 72615500 rsbvc r5, r1, #0 ; 0x0 + 77c0: 6e495f74 mcrvs 15, 2, r5, cr9, cr4, {3} + 77c4: 01007469 tsteq r0, r9, ror #8 + 77c8: bc010648 stclt 6, cr0, [r1], {72} + 77cc: 8c000016 stchi 0, cr0, [r0], {22} + 77d0: 18004033 stmdane r0, {r0, r1, r4, r5, lr} + 77d4: 09004034 stmdbeq r0, {r2, r4, r5, lr} + 77d8: 5241556d subpl r5, r1, #457179136 ; 0x1b400000 + 77dc: 42785254 rsbsmi r5, r8, #1073741829 ; 0x40000005 + 77e0: 65666675 strbvs r6, [r6, #-1653]! + 77e4: 48010072 stmdami r1, {r1, r4, r5, r6} + 77e8: 70c01019 sbcvc r1, r0, r9, lsl r0 + 77ec: 170c0000 strne r0, [ip, -r0] + 77f0: 700a0000 andvc r0, sl, r0 + 77f4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 77f8: 01006769 tsteq r0, r9, ror #14 + 77fc: 2b10104a blcs 40b92c + 7800: 29000075 stmdbcs r0, {r0, r2, r4, r5, r6} + 7804: 0a000017 beq 7868 + 7808: 6c614370 stclvs 3, cr4, [r1], #-448 + 780c: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 7810: 4b01006b blmi 479c4 + 7814: 759b101b ldrvc r1, [fp, #27] + 7818: 173d0000 ldrne r0, [sp, -r0]! + 781c: 00000000 andeq r0, r0, r0 + 7820: 0000010c andeq r0, r0, ip, lsl #2 + 7824: 08c40003 stmiaeq r4, {r0, r1}^ + 7828: 05040000 streq r0, [r4] + 782c: 445c3a43 ldrbmi r3, [ip], #-2627 + 7830: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7834: 73746e65 cmnvc r4, #1616 ; 0x650 + 7838: 646e6120 strbtvs r6, [lr], #-288 + 783c: 74655320 strbtvc r5, [r5], #-800 + 7840: 676e6974 undefined + 7844: 616d5c73 smcvs 54723 + 7848: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 784c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7850: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7854: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7858: 775c7374 undefined + 785c: 6f632d73 svcvs 0x00632d73 + 7860: 6f72746e svcvs 0x0072746e + 7864: 65575c6c ldrbvs r5, [r7, #-3180] + 7868: 65687461 strbvs r7, [r8, #-1121]! + 786c: 74532072 ldrbvc r2, [r3], #-114 + 7870: 6f697461 svcvs 0x00697461 + 7874: 6f43206e svcvs 0x0043206e + 7878: 6f72746e svcvs 0x0072746e + 787c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7880: 7070415c rsbsvc r4, r0, ip, asr r1 + 7884: 6163696c cmnvs r3, ip, ror #18 + 7888: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 788c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7890: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7894: 555c7365 ldrbpl r7, [ip, #-869] + 7898: 55747261 ldrbpl r7, [r4, #-609]! + 789c: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 78a0: 41490063 cmpmi r9, r3, rrx + 78a4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 78a8: 43204953 teqmi r0, #1359872 ; 0x14c000 + 78ac: 2b2b432f blcs ad8570 + 78b0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 78b4: 656c6970 strbvs r6, [ip, #-2416]! + 78b8: 35562072 ldrbcc r2, [r6, #-114] + 78bc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 78c0: 31332e32 teqcc r3, r2, lsr lr + 78c4: 2f353932 svccs 0x00353932 + 78c8: 20323357 eorscs r3, r2, r7, asr r3 + 78cc: 4b43494b blmi 10d9e00 + 78d0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 78d4: 6f662054 svcvs 0x00662054 + 78d8: 52412072 subpl r2, r1, #114 ; 0x72 + 78dc: 1801004d stmdane r1, {r0, r2, r3, r6} + 78e0: 68004034 stmdavs r0, {r2, r4, r5, lr} + 78e4: 14004034 strne r4, [r0], #-52 + 78e8: f5000046 undefined instruction 0xf5000046 + 78ec: 10000025 andne r0, r0, r5, lsr #32 + 78f0: 00006fdb ldrdeq r6, [r0], -fp + 78f4: 00010e08 andeq r0, r1, r8, lsl #28 + 78f8: 69704700 ldmdbvs r0!, {r8, r9, sl, lr}^ + 78fc: 7261556f rsbvc r5, r1, #465567744 ; 0x1bc00000 + 7900: 6e493174 mcrvs 1, 2, r3, cr9, cr4, {3} + 7904: 01007469 tsteq r0, r9, ror #8 + 7908: 010601a1 smlatbeq r6, r1, r1, r0 + 790c: 00001751 andeq r1, r0, r1, asr r7 + 7910: 00403418 subeq r3, r0, r8, lsl r4 + 7914: 00403468 subeq r3, r0, r8, ror #8 + 7918: 706d740a rsbvc r7, sp, sl, lsl #8 + 791c: 00676552 rsbeq r6, r7, r2, asr r5 + 7920: 1501a301 strne sl, [r1, #-769] + 7924: 00751b10 rsbseq r1, r5, r0, lsl fp + 7928: 00176500 andseq r6, r7, r0, lsl #10 + 792c: 00000000 andeq r0, r0, r0 + 7930: 00000108 andeq r0, r0, r8, lsl #2 + 7934: 08c40003 stmiaeq r4, {r0, r1}^ + 7938: 05040000 streq r0, [r4] + 793c: 445c3a43 ldrbmi r3, [ip], #-2627 + 7940: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7944: 73746e65 cmnvc r4, #1616 ; 0x650 + 7948: 646e6120 strbtvs r6, [lr], #-288 + 794c: 74655320 strbtvc r5, [r5], #-800 + 7950: 676e6974 undefined + 7954: 616d5c73 smcvs 54723 + 7958: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 795c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7960: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7964: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7968: 775c7374 undefined + 796c: 6f632d73 svcvs 0x00632d73 + 7970: 6f72746e svcvs 0x0072746e + 7974: 65575c6c ldrbvs r5, [r7, #-3180] + 7978: 65687461 strbvs r7, [r8, #-1121]! + 797c: 74532072 ldrbvc r2, [r3], #-114 + 7980: 6f697461 svcvs 0x00697461 + 7984: 6f43206e svcvs 0x0043206e + 7988: 6f72746e svcvs 0x0072746e + 798c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7990: 7070415c rsbsvc r4, r0, ip, asr r1 + 7994: 6163696c cmnvs r3, ip, ror #18 + 7998: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 799c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 79a0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 79a4: 555c7365 ldrbpl r7, [ip, #-869] + 79a8: 55747261 ldrbpl r7, [r4, #-609]! + 79ac: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 79b0: 41490063 cmpmi r9, r3, rrx + 79b4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 79b8: 43204953 teqmi r0, #1359872 ; 0x14c000 + 79bc: 2b2b432f blcs ad8680 + 79c0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 79c4: 656c6970 strbvs r6, [ip, #-2416]! + 79c8: 35562072 ldrbcc r2, [r6, #-114] + 79cc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 79d0: 31332e32 teqcc r3, r2, lsr lr + 79d4: 2f353932 svccs 0x00353932 + 79d8: 20323357 eorscs r3, r2, r7, asr r3 + 79dc: 4b43494b blmi 10d9f10 + 79e0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 79e4: 6f662054 svcvs 0x00662054 + 79e8: 52412072 subpl r2, r1, #114 ; 0x72 + 79ec: 6c01004d stcvs 0, cr0, [r1], {77} + 79f0: 6e004034 mcrvs 0, 0, r4, cr0, cr4, {1} + 79f4: d0004034 andle r4, r0, r4, lsr r0 + 79f8: 5e000046 cdppl 0, 0, cr0, cr0, cr6, {2} + 79fc: 10000026 andne r0, r0, r6, lsr #32 + 7a00: 00006fdb ldrdeq r6, [r0], -fp + 7a04: 00010b08 andeq r0, r1, r8, lsl #22 + 7a08: 72615500 rsbvc r5, r1, #0 ; 0x0 + 7a0c: 65764574 ldrbvs r4, [r6, #-1396]! + 7a10: 6552746e ldrbvs r7, [r2, #-1134] + 7a14: 00316461 eorseq r6, r1, r1, ror #8 + 7a18: 0601cb01 streq ip, [r1], -r1, lsl #22 + 7a1c: 00179701 andseq r9, r7, r1, lsl #14 + 7a20: 40346c00 eorsmi r6, r4, r0, lsl #24 + 7a24: 40346e00 eorsmi r6, r4, r0, lsl #28 + 7a28: 72610b00 rsbvc r0, r1, #0 ; 0x0 + 7a2c: 01007367 tsteq r0, r7, ror #6 + 7a30: 102d01cb eorne r0, sp, fp, asr #3 + 7a34: 000070d7 ldrdeq r7, [r0], -r7 + 7a38: 00005001 andeq r5, r0, r1 + 7a3c: 0000010c andeq r0, r0, ip, lsl #2 + 7a40: 08c40003 stmiaeq r4, {r0, r1}^ + 7a44: 05040000 streq r0, [r4] + 7a48: 445c3a43 ldrbmi r3, [ip], #-2627 + 7a4c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7a50: 73746e65 cmnvc r4, #1616 ; 0x650 + 7a54: 646e6120 strbtvs r6, [lr], #-288 + 7a58: 74655320 strbtvc r5, [r5], #-800 + 7a5c: 676e6974 undefined + 7a60: 616d5c73 smcvs 54723 + 7a64: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7a68: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7a6c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7a70: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7a74: 775c7374 undefined + 7a78: 6f632d73 svcvs 0x00632d73 + 7a7c: 6f72746e svcvs 0x0072746e + 7a80: 65575c6c ldrbvs r5, [r7, #-3180] + 7a84: 65687461 strbvs r7, [r8, #-1121]! + 7a88: 74532072 ldrbvc r2, [r3], #-114 + 7a8c: 6f697461 svcvs 0x00697461 + 7a90: 6f43206e svcvs 0x0043206e + 7a94: 6f72746e svcvs 0x0072746e + 7a98: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7a9c: 7070415c rsbsvc r4, r0, ip, asr r1 + 7aa0: 6163696c cmnvs r3, ip, ror #18 + 7aa4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7aa8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7aac: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7ab0: 555c7365 ldrbpl r7, [ip, #-869] + 7ab4: 55747261 ldrbpl r7, [r4, #-609]! + 7ab8: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 7abc: 41490063 cmpmi r9, r3, rrx + 7ac0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 7ac4: 43204953 teqmi r0, #1359872 ; 0x14c000 + 7ac8: 2b2b432f blcs ad878c + 7acc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7ad0: 656c6970 strbvs r6, [ip, #-2416]! + 7ad4: 35562072 ldrbcc r2, [r6, #-114] + 7ad8: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 7adc: 31332e32 teqcc r3, r2, lsr lr + 7ae0: 2f353932 svccs 0x00353932 + 7ae4: 20323357 eorscs r3, r2, r7, asr r3 + 7ae8: 4b43494b blmi 10da01c + 7aec: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7af0: 6f662054 svcvs 0x00662054 + 7af4: 52412072 subpl r2, r1, #114 ; 0x72 + 7af8: 6e01004d cdpvs 0, 0, cr0, cr1, cr13, {2} + 7afc: 70004034 andvc r4, r0, r4, lsr r0 + 7b00: 80004034 andhi r4, r0, r4, lsr r0 + 7b04: c1000047 tstgt r0, r7, asr #32 + 7b08: 10000026 andne r0, r0, r6, lsr #32 + 7b0c: 00006fdb ldrdeq r6, [r0], -fp + 7b10: 00010e08 andeq r0, r1, r8, lsl #28 + 7b14: 72615500 rsbvc r5, r1, #0 ; 0x0 + 7b18: 65764574 ldrbvs r4, [r6, #-1396]! + 7b1c: 7257746e subsvc r7, r7, #1845493760 ; 0x6e000000 + 7b20: 31657469 cmncc r5, r9, ror #8 + 7b24: 01d70100 bicseq r0, r7, r0, lsl #2 + 7b28: 17ab0106 strne r0, [fp, r6, lsl #2]! + 7b2c: 346e0000 strbtcc r0, [lr] + 7b30: 34700040 ldrbtcc r0, [r0], #-64 + 7b34: 61090040 tstvs r9, r0, asr #32 + 7b38: 00736772 rsbseq r6, r3, r2, ror r7 + 7b3c: 2f01d701 svccs 0x0001d701 + 7b40: 0070eb10 rsbseq lr, r0, r0, lsl fp + 7b44: 0017bf00 andseq fp, r7, r0, lsl #30 + 7b48: 00000000 andeq r0, r0, r0 + 7b4c: 000000d4 ldrdeq r0, [r0], -r4 + 7b50: 08c40003 stmiaeq r4, {r0, r1}^ + 7b54: 05040000 streq r0, [r4] + 7b58: 445c3a43 ldrbmi r3, [ip], #-2627 + 7b5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7b60: 73746e65 cmnvc r4, #1616 ; 0x650 + 7b64: 646e6120 strbtvs r6, [lr], #-288 + 7b68: 74655320 strbtvc r5, [r5], #-800 + 7b6c: 676e6974 undefined + 7b70: 616d5c73 smcvs 54723 + 7b74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7b78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7b7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7b80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7b84: 775c7374 undefined + 7b88: 6f632d73 svcvs 0x00632d73 + 7b8c: 6f72746e svcvs 0x0072746e + 7b90: 65575c6c ldrbvs r5, [r7, #-3180] + 7b94: 65687461 strbvs r7, [r8, #-1121]! + 7b98: 74532072 ldrbvc r2, [r3], #-114 + 7b9c: 6f697461 svcvs 0x00697461 + 7ba0: 6f43206e svcvs 0x0043206e + 7ba4: 6f72746e svcvs 0x0072746e + 7ba8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7bac: 7070415c rsbsvc r4, r0, ip, asr r1 + 7bb0: 6163696c cmnvs r3, ip, ror #18 + 7bb4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7bb8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7bbc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7bc0: 555c7365 ldrbpl r7, [ip, #-869] + 7bc4: 55747261 ldrbpl r7, [r4, #-609]! + 7bc8: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 7bcc: 41490063 cmpmi r9, r3, rrx + 7bd0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 7bd4: 43204953 teqmi r0, #1359872 ; 0x14c000 + 7bd8: 2b2b432f blcs ad889c + 7bdc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7be0: 656c6970 strbvs r6, [ip, #-2416]! + 7be4: 35562072 ldrbcc r2, [r6, #-114] + 7be8: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 7bec: 31332e32 teqcc r3, r2, lsr lr + 7bf0: 2f353932 svccs 0x00353932 + 7bf4: 20323357 eorscs r3, r2, r7, asr r3 + 7bf8: 4b43494b blmi 10da12c + 7bfc: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7c00: 6f662054 svcvs 0x00662054 + 7c04: 52412072 subpl r2, r1, #114 ; 0x72 + 7c08: 7001004d andvc r0, r1, sp, asr #32 + 7c0c: 80004034 andhi r4, r0, r4, lsr r0 + 7c10: 2c004034 stccs 0, cr4, [r0], {52} + 7c14: 11000048 tstne r0, r8, asr #32 + 7c18: 10000027 andne r0, r0, r7, lsr #32 + 7c1c: 00006fdb ldrdeq r6, [r0], -fp + 7c20: 00000000 andeq r0, r0, r0 + 7c24: 00000160 andeq r0, r0, r0, ror #2 + 7c28: 08c40003 stmiaeq r4, {r0, r1}^ + 7c2c: 05040000 streq r0, [r4] + 7c30: 445c3a43 ldrbmi r3, [ip], #-2627 + 7c34: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7c38: 73746e65 cmnvc r4, #1616 ; 0x650 + 7c3c: 646e6120 strbtvs r6, [lr], #-288 + 7c40: 74655320 strbtvc r5, [r5], #-800 + 7c44: 676e6974 undefined + 7c48: 616d5c73 smcvs 54723 + 7c4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7c50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7c54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7c58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7c5c: 775c7374 undefined + 7c60: 6f632d73 svcvs 0x00632d73 + 7c64: 6f72746e svcvs 0x0072746e + 7c68: 65575c6c ldrbvs r5, [r7, #-3180] + 7c6c: 65687461 strbvs r7, [r8, #-1121]! + 7c70: 74532072 ldrbvc r2, [r3], #-114 + 7c74: 6f697461 svcvs 0x00697461 + 7c78: 6f43206e svcvs 0x0043206e + 7c7c: 6f72746e svcvs 0x0072746e + 7c80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7c84: 7070415c rsbsvc r4, r0, ip, asr r1 + 7c88: 6163696c cmnvs r3, ip, ror #18 + 7c8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7c90: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7c94: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7c98: 555c7365 ldrbpl r7, [ip, #-869] + 7c9c: 55747261 ldrbpl r7, [r4, #-609]! + 7ca0: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 7ca4: 41490063 cmpmi r9, r3, rrx + 7ca8: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 7cac: 43204953 teqmi r0, #1359872 ; 0x14c000 + 7cb0: 2b2b432f blcs ad8974 + 7cb4: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7cb8: 656c6970 strbvs r6, [ip, #-2416]! + 7cbc: 35562072 ldrbcc r2, [r6, #-114] + 7cc0: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 7cc4: 31332e32 teqcc r3, r2, lsr lr + 7cc8: 2f353932 svccs 0x00353932 + 7ccc: 20323357 eorscs r3, r2, r7, asr r3 + 7cd0: 4b43494b blmi 10da204 + 7cd4: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7cd8: 6f662054 svcvs 0x00662054 + 7cdc: 52412072 subpl r2, r1, #114 ; 0x72 + 7ce0: 8001004d andhi r0, r1, sp, asr #32 + 7ce4: c6004034 undefined + 7ce8: e8004034 stmda r0, {r2, r4, r5, lr} + 7cec: 94000048 strls r0, [r0], #-72 + 7cf0: 10000027 andne r0, r0, r7, lsr #32 + 7cf4: 00006fdb ldrdeq r6, [r0], -fp + 7cf8: 00016108 andeq r6, r1, r8, lsl #2 + 7cfc: 72615500 rsbvc r5, r1, #0 ; 0x0 + 7d00: 72505f74 subsvc r5, r0, #464 ; 0x1d0 + 7d04: 00746e69 rsbseq r6, r4, r9, ror #28 + 7d08: 06028b01 streq r8, [r2], -r1, lsl #22 + 7d0c: 0017c701 andseq ip, r7, r1, lsl #14 + 7d10: 40348000 eorsmi r8, r4, r0 + 7d14: 4034c600 eorsmi ip, r4, r0, lsl #12 + 7d18: 53700900 cmnpl r0, #0 ; 0x0 + 7d1c: 6e697274 mcrvs 2, 3, r7, cr9, cr4, {3} + 7d20: 8b010067 blhi 47ec4 + 7d24: c0101a02 andsgt r1, r0, r2, lsl #20 + 7d28: 17000070 smlsdxne r0, r0, r0, r0 + 7d2c: 0a000018 beq 7d94 + 7d30: 74697257 strbtvc r7, [r9], #-599 + 7d34: 66754265 ldrbtvs r4, [r5], -r5, ror #4 + 7d38: 00726566 rsbseq r6, r2, r6, ror #10 + 7d3c: 0b028d01 bleq ab148 + 7d40: 00727c10 rsbseq r7, r2, r0, lsl ip + 7d44: 00183500 andseq r3, r8, r0, lsl #10 + 7d48: 656c0a00 strbvs r0, [ip, #-2560]! + 7d4c: 6874676e ldmdavs r4!, {r1, r2, r3, r5, r6, r8, r9, sl, sp, lr}^ + 7d50: 028e0100 addeq r0, lr, #0 ; 0x0 + 7d54: 74ee100b strbtvc r1, [lr], #11 + 7d58: 18530000 ldmdane r3, {}^ + 7d5c: 750a0000 strvc r0, [sl] + 7d60: 6d695438 cfstrdvs mvd5, [r9, #-224]! + 7d64: 74756f65 ldrbtvc r6, [r5], #-3941 + 7d68: 028f0100 addeq r0, pc, #0 ; 0x0 + 7d6c: 750b100c strvc r1, [fp, #-12] + 7d70: 18700000 ldmdane r0!, {}^ + 7d74: 600c0000 andvs r0, ip, r0 + 7d78: 94000001 strls r0, [r0], #-1 + 7d7c: bc004034 stclt 0, cr4, [r0], {52} + 7d80: 00004034 andeq r4, r0, r4, lsr r0 + 7d84: 00000000 andeq r0, r0, r0 + 7d88: 00000320 andeq r0, r0, r0, lsr #6 + 7d8c: 0a300003 beq c07da0 + 7d90: 01040000 tsteq r4, r0 + 7d94: 445c3a43 ldrbmi r3, [ip], #-2627 + 7d98: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7d9c: 73746e65 cmnvc r4, #1616 ; 0x650 + 7da0: 646e6120 strbtvs r6, [lr], #-288 + 7da4: 74655320 strbtvc r5, [r5], #-800 + 7da8: 676e6974 undefined + 7dac: 616d5c73 smcvs 54723 + 7db0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7db4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7db8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7dbc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7dc0: 775c7374 undefined + 7dc4: 6f632d73 svcvs 0x00632d73 + 7dc8: 6f72746e svcvs 0x0072746e + 7dcc: 65575c6c ldrbvs r5, [r7, #-3180] + 7dd0: 65687461 strbvs r7, [r8, #-1121]! + 7dd4: 74532072 ldrbvc r2, [r3], #-114 + 7dd8: 6f697461 svcvs 0x00697461 + 7ddc: 6f43206e svcvs 0x0043206e + 7de0: 6f72746e svcvs 0x0072746e + 7de4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7de8: 414d535c cmpmi sp, ip, asr r3 + 7dec: 6f535c43 svcvs 0x00535c43 + 7df0: 65637275 strbvs r7, [r3, #-629]! + 7df4: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 7df8: 73656c65 cmnvc r5, #25856 ; 0x6500 + 7dfc: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 7e00: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 7e04: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 7e08: 52414900 subpl r4, r1, #0 ; 0x0 + 7e0c: 534e4120 movtpl r4, #57632 ; 0xe120 + 7e10: 2f432049 svccs 0x00432049 + 7e14: 202b2b43 eorcs r2, fp, r3, asr #22 + 7e18: 706d6f43 rsbvc r6, sp, r3, asr #30 + 7e1c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 7e20: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 7e24: 322e3033 eorcc r3, lr, #51 ; 0x33 + 7e28: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 7e2c: 572f3539 undefined + 7e30: 4b203233 blmi 814704 + 7e34: 534b4349 movtpl r4, #45897 ; 0xb349 + 7e38: 54524154 ldrbpl r4, [r2], #-340 + 7e3c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 7e40: 4d524120 ldfmie f4, [r2, #-128] + 7e44: 49a80100 stmibmi r8!, {r8} + 7e48: 01e40000 mvneq r0, r0 + 7e4c: 75030000 strvc r0, [r3] + 7e50: 6769736e strbvs r7, [r9, -lr, ror #6]! + 7e54: 2064656e rsbcs r6, r4, lr, ror #10 + 7e58: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 + 7e5c: 04080100 streq r0, [r8], #-256 + 7e60: 0002f913 andeq pc, r2, r3, lsl r9 + 7e64: 6f760300 svcvs 0x00760300 + 7e68: 00006469 andeq r6, r0, r9, ror #8 + 7e6c: 57130405 ldrpl r0, [r3, -r5, lsl #8] + 7e70: 04000001 streq r0, [r0], #-1 + 7e74: 0001fa13 andeq pc, r1, r3, lsl sl + 7e78: 6e750300 cdpvs 3, 7, cr0, cr5, cr0, {0} + 7e7c: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} + 7e80: 6c206465 cfstrsvs mvf6, [r0], #-404 + 7e84: 00676e6f rsbeq r6, r7, pc, ror #28 + 7e88: 13040704 movwne r0, #18180 ; 0x4704 + 7e8c: 000002a1 andeq r0, r0, r1, lsr #5 + 7e90: 736e7503 cmnvc lr, #12582912 ; 0xc00000 + 7e94: 656e6769 strbvs r6, [lr, #-1897]! + 7e98: 68732064 ldmdavs r3!, {r2, r5, r6, sp}^ + 7e9c: 0074726f rsbseq r7, r4, pc, ror #4 + 7ea0: 13040702 movwne r0, #18178 ; 0x4702 + 7ea4: 0000015d andeq r0, r0, sp, asr r1 + 7ea8: 00015708 andeq r5, r1, r8, lsl #14 + 7eac: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! + 7eb0: 7079745f rsbsvc r7, r9, pc, asr r4 + 7eb4: 61745f65 cmnvs r4, r5, ror #30 + 7eb8: 09010067 stmdbeq r1, {r0, r1, r2, r5, r6} + 7ebc: 00005854 andeq r5, r0, r4, asr r8 + 7ec0: 00585209 subseq r5, r8, r9, lsl #4 + 7ec4: 44450901 strbmi r0, [r5], #-2305 + 7ec8: 54090200 strpl r0, [r9], #-512 + 7ecc: 0903004f stmdbeq r3, {r0, r1, r2, r3, r6} + 7ed0: 5f58414d svcpl 0x0058414d + 7ed4: 5f47534d svcpl 0x0047534d + 7ed8: 45505954 ldrbmi r5, [r0, #-2388] + 7edc: 0a000400 beq 8ee4 + 7ee0: 0000015d andeq r0, r0, sp, asr r1 + 7ee4: 01690a00 cmneq r9, r0, lsl #20 + 7ee8: 130b0000 movwne r0, #45056 ; 0xb000 + 7eec: 000002a1 andeq r0, r0, r1, lsr #5 + 7ef0: 01760c00 cmneq r6, r0, lsl #24 + 7ef4: a1130000 tstge r3, r0 + 7ef8: 0d000002 stceq 0, cr0, [r0, #-8] + 7efc: 830c0000 movwhi r0, #49152 ; 0xc000 + 7f00: 13000001 movwne r0, #1 ; 0x1 + 7f04: 000002a1 andeq r0, r0, r1, lsr #5 + 7f08: 0e00010d adfeqs f0, f0, #5.0 + 7f0c: 000001b7 strheq r0, [r0], -r7 + 7f10: 63616d73 cmnvs r1, #7360 ; 0x1cc0 + 7f14: 7564705f strbvc r7, [r4, #-95]! + 7f18: 6761745f undefined + 7f1c: 150f0300 strne r0, [pc, #-768] ; 7c24 + 7f20: 720102f6 andvc r0, r1, #1610612751 ; 0x6000000f + 7f24: 72657365 rsbvc r7, r5, #-1811939327 ; 0x94000001 + 7f28: 00646576 rsbeq r6, r4, r6, ror r5 + 7f2c: 0f002302 svceq 0x00002302 + 7f30: 0102e915 tsteq r2, r5, lsl r9 + 7f34: 61443875 cmpvs r4, r5, ror r8 + 7f38: 02006174 andeq r6, r0, #29 ; 0x1d + 7f3c: 0e000223 cdpeq 2, 0, cr0, cr0, cr3, {1} + 7f40: 000001fa strdeq r0, [r0], -sl + 7f44: 5f67736d svcpl 0x0067736d + 7f48: 74617473 strbtvc r7, [r1], #-1139 + 7f4c: 745f7375 ldrbvc r7, [pc], #885 ; 7f54 + 7f50: 01006761 tsteq r0, r1, ror #14 + 7f54: 028e1310 addeq r1, lr, #1073741824 ; 0x40000000 + 7f58: 6d010000 stcvs 0, cr0, [r1] + 7f5c: 745f6773 ldrbvc r6, [pc], #1907 ; 7f64 + 7f60: 00657079 rsbeq r7, r5, r9, ror r0 + 7f64: 01002302 tsteq r0, r2, lsl #6 + 7f68: 13100503 tstne r0, #12582912 ; 0xc00000 + 7f6c: 000002a1 andeq r0, r0, r1, lsr #5 + 7f70: 67736d01 ldrbvs r6, [r3, -r1, lsl #26]! + 7f74: 6174735f cmnvs r4, pc, asr r3 + 7f78: 02006574 andeq r6, r0, #486539264 ; 0x1d000000 + 7f7c: 05010023 streq r0, [r1, #-35] + 7f80: 610e0000 tstvs lr, r0 + 7f84: 6d000002 stcvs 0, cr0, [r0, #-8] + 7f88: 61737365 cmnvs r3, r5, ror #6 + 7f8c: 745f6567 ldrbvc r6, [pc], #1383 ; 7f94 + 7f90: 10006761 andne r6, r0, r1, ror #14 + 7f94: 030c130f movweq r1, #49935 ; 0xc30f + 7f98: 75010000 strvc r0, [r1] + 7f9c: 61745338 cmnvs r4, r8, lsr r3 + 7fa0: 00737574 rsbseq r7, r3, r4, ror r5 + 7fa4: 0f002302 svceq 0x00002302 + 7fa8: 0101d715 tsteq r1, r5, lsl r7 + 7fac: 42387570 eorsmi r7, r8, #469762048 ; 0x1c000000 + 7fb0: 65666675 strbvs r6, [r6, #-1653]! + 7fb4: 23020072 movwcs r0, #8306 ; 0x2072 + 7fb8: a1130f04 tstge r3, r4, lsl #30 + 7fbc: 01000002 tsteq r0, r2 + 7fc0: 75423875 strbvc r3, [r2, #-2165] + 7fc4: 7a695366 bvc 1a5cd64 + 7fc8: 23020065 movwcs r0, #8293 ; 0x2065 + 7fcc: d0130f08 andsle r0, r3, r8, lsl #30 + 7fd0: 01000002 tsteq r0, r2 + 7fd4: 61446263 cmpvs r4, r3, ror #4 + 7fd8: 6e496174 mcrvs 1, 2, r6, cr9, cr4, {3} + 7fdc: 61636964 cmnvs r3, r4, ror #18 + 7fe0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7fe4: 0c230200 sfmeq f0, 4, [r3] + 7fe8: 75461100 strbvc r1, [r6, #-256] + 7fec: 6552636e ldrbvs r6, [r2, #-878] + 7ff0: 6e727574 mrcvs 5, 3, r7, cr2, cr4, {3} + 7ff4: 1000745f andne r7, r0, pc, asr r4 + 7ff8: 00002af6 strdeq r2, [r0], -r6 + 7ffc: 1103500b tstne r3, fp + 8000: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + 8004: 5f6c656e svcpl 0x006c656e + 8008: 5f6d756e svcpl 0x006d756e + 800c: de100074 mrcle 0, 0, r0, cr0, cr4, {3} + 8010: 0b00005b bleq 8184 + 8014: 6d110365 ldcvs 3, cr0, [r1, #-404] + 8018: 745f6773 ldrbvc r6, [pc], #1907 ; 8020 + 801c: 5f657079 svcpl 0x00657079 + 8020: a0150074 andsge r0, r5, r4, ror r0 + 8024: 01d90c02 bicseq r0, r9, r2, lsl #24 + 8028: 69751103 ldmdbvs r5!, {r0, r1, r8, ip}^ + 802c: 5f38746e svcpl 0x0038746e + 8030: c6150074 undefined + 8034: 191a0101 ldmdbne sl, {r0, r8} + 8038: 6e697511 mcrvs 5, 3, r7, cr9, cr1, {0} + 803c: 5f363174 svcpl 0x00363174 + 8040: 88150074 ldmdahi r5, {r2, r4, r5, r6} + 8044: 191c0102 ldmdbne ip, {r1, r8} + 8048: 6e697511 mcrvs 5, 3, r7, cr9, cr1, {0} + 804c: 5f323374 svcpl 0x00323374 + 8050: f1150074 undefined instruction 0xf1150074 + 8054: 191e0101 ldmdbne lr, {r0, r8} + 8058: 6c616311 stclvs 3, cr6, [r1], #-68 + 805c: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 8060: 00745f6b rsbseq r5, r4, fp, ror #30 + 8064: 0b01e515 bleq 814c0 + 8068: 76110f16 sadd16vc r0, r1, r6 + 806c: 6e616353 mcrvs 3, 3, r6, cr1, cr3, {2} + 8070: 6c6c6143 stfvse f6, [ip], #-268 + 8074: 6b636162 blvs 18e0604 + 8078: 1500745f strne r7, [r0, #-1119] + 807c: 170b029a undefined + 8080: 6d73110f ldfvse f1, [r3, #-60]! + 8084: 705f6361 subsvc r6, pc, r1, ror #6 + 8088: 745f7564 ldrbvc r7, [pc], #1380 ; 8090 + 808c: 03831500 orreq r1, r3, #0 ; 0x0 + 8090: 0301960c movweq r9, #5644 ; 0x160c + 8094: 67736d11 undefined + 8098: 6174735f cmnvs r4, pc, asr r3 + 809c: 5f737574 svcpl 0x00737574 + 80a0: b7150074 undefined + 80a4: 01df0c03 bicseq r0, pc, r3, lsl #24 + 80a8: 00000003 andeq r0, r0, r3 + 80ac: 0000010c andeq r0, r0, ip, lsl #2 + 80b0: 0a300003 beq c080c4 + 80b4: 02040000 andeq r0, r4, #0 ; 0x0 + 80b8: 445c3a43 ldrbmi r3, [ip], #-2627 + 80bc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 80c0: 73746e65 cmnvc r4, #1616 ; 0x650 + 80c4: 646e6120 strbtvs r6, [lr], #-288 + 80c8: 74655320 strbtvc r5, [r5], #-800 + 80cc: 676e6974 undefined + 80d0: 616d5c73 smcvs 54723 + 80d4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 80d8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 80dc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 80e0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 80e4: 775c7374 undefined + 80e8: 6f632d73 svcvs 0x00632d73 + 80ec: 6f72746e svcvs 0x0072746e + 80f0: 65575c6c ldrbvs r5, [r7, #-3180] + 80f4: 65687461 strbvs r7, [r8, #-1121]! + 80f8: 74532072 ldrbvc r2, [r3], #-114 + 80fc: 6f697461 svcvs 0x00697461 + 8100: 6f43206e svcvs 0x0043206e + 8104: 6f72746e svcvs 0x0072746e + 8108: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 810c: 414d535c cmpmi sp, ip, asr r3 + 8110: 6f535c43 svcvs 0x00535c43 + 8114: 65637275 strbvs r7, [r3, #-629]! + 8118: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 811c: 73656c65 cmnvc r5, #25856 ; 0x6500 + 8120: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8124: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 8128: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 812c: 52414900 subpl r4, r1, #0 ; 0x0 + 8130: 534e4120 movtpl r4, #57632 ; 0xe120 + 8134: 2f432049 svccs 0x00432049 + 8138: 202b2b43 eorcs r2, fp, r3, asr #22 + 813c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 8140: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 8144: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 8148: 322e3033 eorcc r3, lr, #51 ; 0x33 + 814c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 8150: 572f3539 undefined + 8154: 4b203233 blmi 814a28 + 8158: 534b4349 movtpl r4, #45897 ; 0xb349 + 815c: 54524154 ldrbpl r4, [r2], #-340 + 8160: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 8164: 4d524120 ldfmie f4, [r2, #-128] + 8168: 3a1c0100 bcc 708570 + 816c: 3a300040 bcc c08274 + 8170: 4e880040 cdpmi 0, 8, cr0, cr8, cr0, {2} + 8174: 28110000 ldmdacs r1, {} + 8178: 93100000 tstls r0, #0 ; 0x0 + 817c: 0500007d streq r0, [r0, #-125] + 8180: 0000010f andeq r0, r0, pc, lsl #2 + 8184: 5350434d cmppl r0, #872415233 ; 0x34000001 + 8188: 61746144 cmnvs r4, r4, asr #2 + 818c: 75716552 ldrbvc r6, [r1, #-1362]! + 8190: 00747365 rsbseq r7, r4, r5, ror #6 + 8194: 010e3b01 tsteq lr, r1, lsl #22 + 8198: 007fe910 rsbseq lr, pc, r0, lsl r9 + 819c: 00188d00 andseq r8, r8, r0, lsl #26 + 81a0: 403a1c00 eorsmi r1, sl, r0, lsl #24 + 81a4: 403a3000 eorsmi r3, sl, r0 + 81a8: 736d0600 cmnvc sp, #0 ; 0x0 + 81ac: 3b010067 blcc 48350 + 81b0: 7e73102a cdpvc 0, 7, cr1, cr3, cr10, {1} + 81b4: 18ad0000 stmiane sp!, {} + 81b8: 00000000 andeq r0, r0, r0 + 81bc: 00000128 andeq r0, r0, r8, lsr #2 + 81c0: 0a300003 beq c081d4 + 81c4: 02040000 andeq r0, r4, #0 ; 0x0 + 81c8: 445c3a43 ldrbmi r3, [ip], #-2627 + 81cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 81d0: 73746e65 cmnvc r4, #1616 ; 0x650 + 81d4: 646e6120 strbtvs r6, [lr], #-288 + 81d8: 74655320 strbtvc r5, [r5], #-800 + 81dc: 676e6974 undefined + 81e0: 616d5c73 smcvs 54723 + 81e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 81e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 81ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 81f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 81f4: 775c7374 undefined + 81f8: 6f632d73 svcvs 0x00632d73 + 81fc: 6f72746e svcvs 0x0072746e + 8200: 65575c6c ldrbvs r5, [r7, #-3180] + 8204: 65687461 strbvs r7, [r8, #-1121]! + 8208: 74532072 ldrbvc r2, [r3], #-114 + 820c: 6f697461 svcvs 0x00697461 + 8210: 6f43206e svcvs 0x0043206e + 8214: 6f72746e svcvs 0x0072746e + 8218: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 821c: 414d535c cmpmi sp, ip, asr r3 + 8220: 6f535c43 svcvs 0x00535c43 + 8224: 65637275 strbvs r7, [r3, #-629]! + 8228: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 822c: 73656c65 cmnvc r5, #25856 ; 0x6500 + 8230: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8234: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 8238: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 823c: 52414900 subpl r4, r1, #0 ; 0x0 + 8240: 534e4120 movtpl r4, #57632 ; 0xe120 + 8244: 2f432049 svccs 0x00432049 + 8248: 202b2b43 eorcs r2, fp, r3, asr #22 + 824c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 8250: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 8254: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 8258: 322e3033 eorcc r3, lr, #51 ; 0x33 + 825c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 8260: 572f3539 undefined + 8264: 4b203233 blmi 814b38 + 8268: 534b4349 movtpl r4, #45897 ; 0xb349 + 826c: 54524154 ldrbpl r4, [r2], #-340 + 8270: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 8274: 4d524120 ldfmie f4, [r2, #-128] + 8278: 3a300100 bcc c08680 + 827c: 3a4c0040 bcc 1308384 + 8280: 4f3c0040 svcmi 0x003c0040 + 8284: 287e0000 ldmdacs lr!, {}^ + 8288: 93100000 tstls r0, #0 ; 0x0 + 828c: 0500007d streq r0, [r0, #-125] + 8290: 00000129 andeq r0, r0, r9, lsr #2 + 8294: 454d4c4d strbmi r4, [sp, #-3149] + 8298: 43746553 cmnmi r4, #348127232 ; 0x14c00000 + 829c: 6e6e6168 powvsez f6, f6, #0.0 + 82a0: 65526c65 ldrbvs r6, [r2, #-3173] + 82a4: 73657571 cmnvc r5, #473956352 ; 0x1c400000 + 82a8: 49010074 stmdbmi r1, {r2, r4, r5, r6} + 82ac: e910010e ldmdb r0, {r1, r2, r3, r8} + 82b0: c000007f andgt r0, r0, pc, ror r0 + 82b4: 30000018 andcc r0, r0, r8, lsl r0 + 82b8: 4c00403a stcmi 0, cr4, [r0], {58} + 82bc: 0600403a undefined + 82c0: 68633875 stmdavs r3!, {r0, r2, r4, r5, r6, fp, ip, sp}^ + 82c4: 656e6e61 strbvs r6, [lr, #-3681]! + 82c8: 4901006c stmdbmi r1, {r2, r3, r5, r6} + 82cc: 7fff1033 svcvc 0x00ff1033 + 82d0: 18e00000 stmiane r0!, {}^ + 82d4: 28070000 stmdacs r7, {} + 82d8: 3a000001 bcc 82e4 + 82dc: 4800403a stmdami r0, {r1, r3, r4, r5, lr} + 82e0: 0000403a andeq r4, r0, sl, lsr r0 + 82e4: 00000000 andeq r0, r0, r0 + 82e8: 00000104 andeq r0, r0, r4, lsl #2 + 82ec: 0a300003 beq c08300 + 82f0: 02040000 andeq r0, r4, #0 ; 0x0 + 82f4: 445c3a43 ldrbmi r3, [ip], #-2627 + 82f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 82fc: 73746e65 cmnvc r4, #1616 ; 0x650 + 8300: 646e6120 strbtvs r6, [lr], #-288 + 8304: 74655320 strbtvc r5, [r5], #-800 + 8308: 676e6974 undefined + 830c: 616d5c73 smcvs 54723 + 8310: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8314: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8318: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 831c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8320: 775c7374 undefined + 8324: 6f632d73 svcvs 0x00632d73 + 8328: 6f72746e svcvs 0x0072746e + 832c: 65575c6c ldrbvs r5, [r7, #-3180] + 8330: 65687461 strbvs r7, [r8, #-1121]! + 8334: 74532072 ldrbvc r2, [r3], #-114 + 8338: 6f697461 svcvs 0x00697461 + 833c: 6f43206e svcvs 0x0043206e + 8340: 6f72746e svcvs 0x0072746e + 8344: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8348: 414d535c cmpmi sp, ip, asr r3 + 834c: 6f535c43 svcvs 0x00535c43 + 8350: 65637275 strbvs r7, [r3, #-629]! + 8354: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 8358: 73656c65 cmnvc r5, #25856 ; 0x6500 + 835c: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8360: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 8364: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 8368: 52414900 subpl r4, r1, #0 ; 0x0 + 836c: 534e4120 movtpl r4, #57632 ; 0xe120 + 8370: 2f432049 svccs 0x00432049 + 8374: 202b2b43 eorcs r2, fp, r3, asr #22 + 8378: 706d6f43 rsbvc r6, sp, r3, asr #30 + 837c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 8380: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 8384: 322e3033 eorcc r3, lr, #51 ; 0x33 + 8388: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 838c: 572f3539 undefined + 8390: 4b203233 blmi 814c64 + 8394: 534b4349 movtpl r4, #45897 ; 0xb349 + 8398: 54524154 ldrbpl r4, [r2], #-340 + 839c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 83a0: 4d524120 ldfmie f4, [r2, #-128] + 83a4: 00000100 andeq r0, r0, r0, lsl #2 + 83a8: 000c0000 andeq r0, ip, r0 + 83ac: 4ff40000 svcmi 0x00f40000 + 83b0: 29060000 stmdbcs r6, {} + 83b4: 93100000 tstls r0, #0 ; 0x0 + 83b8: 0500007d streq r0, [r0, #-125] + 83bc: 00000104 andeq r0, r0, r4, lsl #2 + 83c0: 454d4c4d strbmi r4, [sp, #-3149] + 83c4: 43746547 cmnmi r4, #297795584 ; 0x11c00000 + 83c8: 6e6e6168 powvsez f6, f6, #0.0 + 83cc: 65526c65 ldrbvs r6, [r2, #-3173] + 83d0: 73657571 cmnvc r5, #473956352 ; 0x1c400000 + 83d4: 5e010074 mcrpl 0, 0, r0, cr1, cr4, {3} + 83d8: 29100109 ldmdbcs r0, {r0, r3, r8} + 83dc: 12000080 andne r0, r0, #128 ; 0x80 + 83e0: 00000019 andeq r0, r0, r9, lsl r0 + 83e4: 0c000000 stceq 0, cr0, [r0], {0} + ... + 83f0: 00000128 andeq r0, r0, r8, lsr #2 + 83f4: 0a300003 beq c08408 + 83f8: 02040000 andeq r0, r4, #0 ; 0x0 + 83fc: 445c3a43 ldrbmi r3, [ip], #-2627 + 8400: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8404: 73746e65 cmnvc r4, #1616 ; 0x650 + 8408: 646e6120 strbtvs r6, [lr], #-288 + 840c: 74655320 strbtvc r5, [r5], #-800 + 8410: 676e6974 undefined + 8414: 616d5c73 smcvs 54723 + 8418: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 841c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8420: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8424: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8428: 775c7374 undefined + 842c: 6f632d73 svcvs 0x00632d73 + 8430: 6f72746e svcvs 0x0072746e + 8434: 65575c6c ldrbvs r5, [r7, #-3180] + 8438: 65687461 strbvs r7, [r8, #-1121]! + 843c: 74532072 ldrbvc r2, [r3], #-114 + 8440: 6f697461 svcvs 0x00697461 + 8444: 6f43206e svcvs 0x0043206e + 8448: 6f72746e svcvs 0x0072746e + 844c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8450: 414d535c cmpmi sp, ip, asr r3 + 8454: 6f535c43 svcvs 0x00535c43 + 8458: 65637275 strbvs r7, [r3, #-629]! + 845c: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 8460: 73656c65 cmnvc r5, #25856 ; 0x6500 + 8464: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8468: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 846c: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 8470: 52414900 subpl r4, r1, #0 ; 0x0 + 8474: 534e4120 movtpl r4, #57632 ; 0xe120 + 8478: 2f432049 svccs 0x00432049 + 847c: 202b2b43 eorcs r2, fp, r3, asr #22 + 8480: 706d6f43 rsbvc r6, sp, r3, asr #30 + 8484: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 8488: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 848c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 8490: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 8494: 572f3539 undefined + 8498: 4b203233 blmi 814d6c + 849c: 534b4349 movtpl r4, #45897 ; 0xb349 + 84a0: 54524154 ldrbpl r4, [r2], #-340 + 84a4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 84a8: 4d524120 ldfmie f4, [r2, #-128] + 84ac: 3a540100 bcc 15088b4 + 84b0: 3a640040 bcc 19085b8 + 84b4: 50a40040 adcpl r0, r4, r0, asr #32 + 84b8: 29760000 ldmdbcs r6!, {}^ + 84bc: 93100000 tstls r0, #0 ; 0x0 + 84c0: 0500007d streq r0, [r0, #-125] + 84c4: 00000128 andeq r0, r0, r8, lsr #2 + 84c8: 454d4c4d strbmi r4, [sp, #-3149] + 84cc: 6e455852 mcrvs 8, 2, r5, cr5, cr2, {2} + 84d0: 656c6261 strbvs r6, [ip, #-609]! + 84d4: 75716552 ldrbvc r6, [r1, #-1362]! + 84d8: 00747365 rsbseq r7, r4, r5, ror #6 + 84dc: 010e6a01 tsteq lr, r1, lsl #20 + 84e0: 007fe910 rsbseq lr, pc, r0, lsl r9 + 84e4: 00193200 andseq r3, r9, r0, lsl #4 + 84e8: 403a5400 eorsmi r5, sl, r0, lsl #8 + 84ec: 403a6400 eorsmi r6, sl, r0, lsl #8 + 84f0: 736d0600 cmnvc sp, #0 ; 0x0 + 84f4: 6a010067 bvs 48698 + 84f8: 7e73102e cdpvc 0, 7, cr1, cr3, cr14, {1} + 84fc: 19520000 ldmdbne r2, {}^ + 8500: 74060000 strvc r0, [r6] + 8504: 6f656d69 svcvs 0x00656d69 + 8508: 01007475 tsteq r0, r5, ror r4 + 850c: 48103c6a ldmdami r0, {r1, r3, r5, r6, sl, fp, ip, sp} + 8510: 65000080 strvs r0, [r0, #-128] + 8514: 00000019 andeq r0, r0, r9, lsl r0 + 8518: 00000000 andeq r0, r0, r0 + 851c: 00000114 andeq r0, r0, r4, lsl r1 + 8520: 0a300003 beq c08534 + 8524: 02040000 andeq r0, r4, #0 ; 0x0 + 8528: 445c3a43 ldrbmi r3, [ip], #-2627 + 852c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8530: 73746e65 cmnvc r4, #1616 ; 0x650 + 8534: 646e6120 strbtvs r6, [lr], #-288 + 8538: 74655320 strbtvc r5, [r5], #-800 + 853c: 676e6974 undefined + 8540: 616d5c73 smcvs 54723 + 8544: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8548: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 854c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8550: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8554: 775c7374 undefined + 8558: 6f632d73 svcvs 0x00632d73 + 855c: 6f72746e svcvs 0x0072746e + 8560: 65575c6c ldrbvs r5, [r7, #-3180] + 8564: 65687461 strbvs r7, [r8, #-1121]! + 8568: 74532072 ldrbvc r2, [r3], #-114 + 856c: 6f697461 svcvs 0x00697461 + 8570: 6f43206e svcvs 0x0043206e + 8574: 6f72746e svcvs 0x0072746e + 8578: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 857c: 414d535c cmpmi sp, ip, asr r3 + 8580: 6f535c43 svcvs 0x00535c43 + 8584: 65637275 strbvs r7, [r3, #-629]! + 8588: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 858c: 73656c65 cmnvc r5, #25856 ; 0x6500 + 8590: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8594: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 8598: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 859c: 52414900 subpl r4, r1, #0 ; 0x0 + 85a0: 534e4120 movtpl r4, #57632 ; 0xe120 + 85a4: 2f432049 svccs 0x00432049 + 85a8: 202b2b43 eorcs r2, fp, r3, asr #22 + 85ac: 706d6f43 rsbvc r6, sp, r3, asr #30 + 85b0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 85b4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 85b8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 85bc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 85c0: 572f3539 undefined + 85c4: 4b203233 blmi 814e98 + 85c8: 534b4349 movtpl r4, #45897 ; 0xb349 + 85cc: 54524154 ldrbpl r4, [r2], #-340 + 85d0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 85d4: 4d524120 ldfmie f4, [r2, #-128] + 85d8: 00000100 andeq r0, r0, r0, lsl #2 + 85dc: 00160000 andseq r0, r6, r0 + 85e0: 51540000 cmppl r4, r0 + 85e4: 29db0000 ldmibcs fp, {}^ + 85e8: 93100000 tstls r0, #0 ; 0x0 + 85ec: 0500007d streq r0, [r0, #-125] + 85f0: 00000114 andeq r0, r0, r4, lsl r1 + 85f4: 454d4c4d strbmi r4, [sp, #-3149] + 85f8: 69445852 stmdbvs r4, {r1, r4, r6, fp, ip, lr}^ + 85fc: 6c626173 stfvse f6, [r2], #-460 + 8600: 71655265 cmnvc r5, r5, ror #4 + 8604: 74736575 ldrbtvc r6, [r3], #-1397 + 8608: 0e770100 rpweqs f0, f7, f0 + 860c: 7fe91001 svcvc 0x00e91001 + 8610: 19780000 ldmdbne r8!, {}^ + 8614: 00000000 andeq r0, r0, r0 + 8618: 00160000 andseq r0, r6, r0 + 861c: 6d060000 stcvs 0, cr0, [r6] + 8620: 01006773 tsteq r0, r3, ror r7 + 8624: 73102f77 tstvc r0, #476 ; 0x1dc + 8628: 9800007e stmdals r0, {r1, r2, r3, r4, r5, r6} + 862c: 00000019 andeq r0, r0, r9, lsl r0 + 8630: 00000000 andeq r0, r0, r0 + 8634: 00000128 andeq r0, r0, r8, lsr #2 + 8638: 0a300003 beq c0864c + 863c: 02040000 andeq r0, r4, #0 ; 0x0 + 8640: 445c3a43 ldrbmi r3, [ip], #-2627 + 8644: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8648: 73746e65 cmnvc r4, #1616 ; 0x650 + 864c: 646e6120 strbtvs r6, [lr], #-288 + 8650: 74655320 strbtvc r5, [r5], #-800 + 8654: 676e6974 undefined + 8658: 616d5c73 smcvs 54723 + 865c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8660: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8664: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8668: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 866c: 775c7374 undefined + 8670: 6f632d73 svcvs 0x00632d73 + 8674: 6f72746e svcvs 0x0072746e + 8678: 65575c6c ldrbvs r5, [r7, #-3180] + 867c: 65687461 strbvs r7, [r8, #-1121]! + 8680: 74532072 ldrbvc r2, [r3], #-114 + 8684: 6f697461 svcvs 0x00697461 + 8688: 6f43206e svcvs 0x0043206e + 868c: 6f72746e svcvs 0x0072746e + 8690: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8694: 414d535c cmpmi sp, ip, asr r3 + 8698: 6f535c43 svcvs 0x00535c43 + 869c: 65637275 strbvs r7, [r3, #-629]! + 86a0: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 86a4: 73656c65 cmnvc r5, #25856 ; 0x6500 + 86a8: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 86ac: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 86b0: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 86b4: 52414900 subpl r4, r1, #0 ; 0x0 + 86b8: 534e4120 movtpl r4, #57632 ; 0xe120 + 86bc: 2f432049 svccs 0x00432049 + 86c0: 202b2b43 eorcs r2, fp, r3, asr #22 + 86c4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 86c8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 86cc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 86d0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 86d4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 86d8: 572f3539 undefined + 86dc: 4b203233 blmi 814fb0 + 86e0: 534b4349 movtpl r4, #45897 ; 0xb349 + 86e4: 54524154 ldrbpl r4, [r2], #-340 + 86e8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 86ec: 4d524120 ldfmie f4, [r2, #-128] + 86f0: 3a640100 bcc 1908af8 + 86f4: 3a800040 bcc fe0087fc + 86f8: 52080040 andpl r0, r8, #64 ; 0x40 + 86fc: 2a5d0000 bcs 1748704 + 8700: 93100000 tstls r0, #0 ; 0x0 + 8704: 0500007d streq r0, [r0, #-125] + 8708: 0000012a andeq r0, r0, sl, lsr #2 + 870c: 454d4c4d strbmi r4, [sp, #-3149] + 8710: 72656e45 rsbvc r6, r5, #1104 ; 0x450 + 8714: 65447967 strbvs r7, [r4, #-2407] + 8718: 74636574 strbtvc r6, [r3], #-1396 + 871c: 01880100 orreq r0, r8, r0, lsl #2 + 8720: e910010e ldmdb r0, {r1, r2, r3, r8} + 8724: ca00007f bgt 8928 + 8728: 64000019 strvs r0, [r0], #-25 + 872c: 8000403a andhi r4, r0, sl, lsr r0 + 8730: 0600403a undefined + 8734: 0067736d rsbeq r7, r7, sp, ror #6 + 8738: 2c018801 stccs 8, cr8, [r1], {1} + 873c: 007e7310 rsbseq r7, lr, r0, lsl r3 + 8740: 0019ea00 andseq lr, r9, r0, lsl #20 + 8744: 38750600 ldmdacc r5!, {r9, sl}^ + 8748: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + 874c: 006c656e rsbeq r6, ip, lr, ror #10 + 8750: 3f018801 svccc 0x00018801 + 8754: 007fff10 rsbseq pc, pc, r0, lsl pc + 8758: 001a1200 andseq r1, sl, r0, lsl #4 + 875c: 00000000 andeq r0, r0, r0 + 8760: 000000d0 ldrdeq r0, [r0], -r0 + 8764: 0a300003 beq c08778 + 8768: 02040000 andeq r0, r4, #0 ; 0x0 + 876c: 445c3a43 ldrbmi r3, [ip], #-2627 + 8770: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8774: 73746e65 cmnvc r4, #1616 ; 0x650 + 8778: 646e6120 strbtvs r6, [lr], #-288 + 877c: 74655320 strbtvc r5, [r5], #-800 + 8780: 676e6974 undefined + 8784: 616d5c73 smcvs 54723 + 8788: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 878c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8790: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8794: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8798: 775c7374 undefined + 879c: 6f632d73 svcvs 0x00632d73 + 87a0: 6f72746e svcvs 0x0072746e + 87a4: 65575c6c ldrbvs r5, [r7, #-3180] + 87a8: 65687461 strbvs r7, [r8, #-1121]! + 87ac: 74532072 ldrbvc r2, [r3], #-114 + 87b0: 6f697461 svcvs 0x00697461 + 87b4: 6f43206e svcvs 0x0043206e + 87b8: 6f72746e svcvs 0x0072746e + 87bc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 87c0: 414d535c cmpmi sp, ip, asr r3 + 87c4: 6f535c43 svcvs 0x00535c43 + 87c8: 65637275 strbvs r7, [r3, #-629]! + 87cc: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 87d0: 73656c65 cmnvc r5, #25856 ; 0x6500 + 87d4: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 87d8: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 87dc: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 87e0: 52414900 subpl r4, r1, #0 ; 0x0 + 87e4: 534e4120 movtpl r4, #57632 ; 0xe120 + 87e8: 2f432049 svccs 0x00432049 + 87ec: 202b2b43 eorcs r2, fp, r3, asr #22 + 87f0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 87f4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 87f8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 87fc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 8800: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 8804: 572f3539 undefined + 8808: 4b203233 blmi 8150dc + 880c: 534b4349 movtpl r4, #45897 ; 0xb349 + 8810: 54524154 ldrbpl r4, [r2], #-340 + 8814: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 8818: 4d524120 ldfmie f4, [r2, #-128] + 881c: 3a800100 bcc fe008c24 + 8820: 3a840040 bcc fe108928 + 8824: 52bc0040 adcspl r0, ip, #64 ; 0x40 + 8828: 2ada0000 bcs ff688830 + 882c: 93100000 tstls r0, #0 ; 0x0 + 8830: 0000007d andeq r0, r0, sp, ror r0 + 8834: 000000d0 ldrdeq r0, [r0], -r0 + 8838: 0a300003 beq c0884c + 883c: 02040000 andeq r0, r4, #0 ; 0x0 + 8840: 445c3a43 ldrbmi r3, [ip], #-2627 + 8844: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8848: 73746e65 cmnvc r4, #1616 ; 0x650 + 884c: 646e6120 strbtvs r6, [lr], #-288 + 8850: 74655320 strbtvc r5, [r5], #-800 + 8854: 676e6974 undefined + 8858: 616d5c73 smcvs 54723 + 885c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8860: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8864: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8868: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 886c: 775c7374 undefined + 8870: 6f632d73 svcvs 0x00632d73 + 8874: 6f72746e svcvs 0x0072746e + 8878: 65575c6c ldrbvs r5, [r7, #-3180] + 887c: 65687461 strbvs r7, [r8, #-1121]! + 8880: 74532072 ldrbvc r2, [r3], #-114 + 8884: 6f697461 svcvs 0x00697461 + 8888: 6f43206e svcvs 0x0043206e + 888c: 6f72746e svcvs 0x0072746e + 8890: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8894: 414d535c cmpmi sp, ip, asr r3 + 8898: 6f535c43 svcvs 0x00535c43 + 889c: 65637275 strbvs r7, [r3, #-629]! + 88a0: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 88a4: 73656c65 cmnvc r5, #25856 ; 0x6500 + 88a8: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 88ac: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 88b0: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 88b4: 52414900 subpl r4, r1, #0 ; 0x0 + 88b8: 534e4120 movtpl r4, #57632 ; 0xe120 + 88bc: 2f432049 svccs 0x00432049 + 88c0: 202b2b43 eorcs r2, fp, r3, asr #22 + 88c4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 88c8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 88cc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 88d0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 88d4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 88d8: 572f3539 undefined + 88dc: 4b203233 blmi 8151b0 + 88e0: 534b4349 movtpl r4, #45897 ; 0xb349 + 88e4: 54524154 ldrbpl r4, [r2], #-340 + 88e8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 88ec: 4d524120 ldfmie f4, [r2, #-128] + 88f0: 3a840100 bcc fe108cf8 + 88f4: 3a880040 bcc fe2089fc + 88f8: 52e40040 rscpl r0, r4, #64 ; 0x40 + 88fc: 2b7b0000 blcs 1ec8904 + 8900: 93100000 tstls r0, #0 ; 0x0 + 8904: 0000007d andeq r0, r0, sp, ror r0 + 8908: 00000118 andeq r0, r0, r8, lsl r1 + 890c: 0a300003 beq c08920 + 8910: 02040000 andeq r0, r4, #0 ; 0x0 + 8914: 445c3a43 ldrbmi r3, [ip], #-2627 + 8918: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 891c: 73746e65 cmnvc r4, #1616 ; 0x650 + 8920: 646e6120 strbtvs r6, [lr], #-288 + 8924: 74655320 strbtvc r5, [r5], #-800 + 8928: 676e6974 undefined + 892c: 616d5c73 smcvs 54723 + 8930: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8934: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8938: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 893c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8940: 775c7374 undefined + 8944: 6f632d73 svcvs 0x00632d73 + 8948: 6f72746e svcvs 0x0072746e + 894c: 65575c6c ldrbvs r5, [r7, #-3180] + 8950: 65687461 strbvs r7, [r8, #-1121]! + 8954: 74532072 ldrbvc r2, [r3], #-114 + 8958: 6f697461 svcvs 0x00697461 + 895c: 6f43206e svcvs 0x0043206e + 8960: 6f72746e svcvs 0x0072746e + 8964: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8968: 414d535c cmpmi sp, ip, asr r3 + 896c: 6f535c43 svcvs 0x00535c43 + 8970: 65637275 strbvs r7, [r3, #-629]! + 8974: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 8978: 73656c65 cmnvc r5, #25856 ; 0x6500 + 897c: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8980: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 8984: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 8988: 52414900 subpl r4, r1, #0 ; 0x0 + 898c: 534e4120 movtpl r4, #57632 ; 0xe120 + 8990: 2f432049 svccs 0x00432049 + 8994: 202b2b43 eorcs r2, fp, r3, asr #22 + 8998: 706d6f43 rsbvc r6, sp, r3, asr #30 + 899c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 89a0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 89a4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 89a8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 89ac: 572f3539 undefined + 89b0: 4b203233 blmi 815284 + 89b4: 534b4349 movtpl r4, #45897 ; 0xb349 + 89b8: 54524154 ldrbpl r4, [r2], #-340 + 89bc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 89c0: 4d524120 ldfmie f4, [r2, #-128] + 89c4: 3a8e0100 bcc fe388dcc + 89c8: 3aa20040 bcc fe888ad0 + 89cc: 530c0040 movwpl r0, #49216 ; 0xc040 + 89d0: 2c950000 ldccs 0, cr0, [r5], {0} + 89d4: 93100000 tstls r0, #0 ; 0x0 + 89d8: 0500007d streq r0, [r0, #-125] + 89dc: 00000118 andeq r0, r0, r8, lsl r1 + 89e0: 454d4c4d strbmi r4, [sp, #-3149] + 89e4: 754f4150 strbvc r4, [pc, #-336] ; 889c + 89e8: 74757074 ldrbtvc r7, [r5], #-116 + 89ec: 756a6441 strbvc r6, [sl, #-1089]! + 89f0: 01007473 tsteq r0, r3, ror r4 + 89f4: 010e01b1 strheq r0, [lr, -r1] + 89f8: 007fe910 rsbseq lr, pc, r0, lsl r9 + 89fc: 001a3a00 andseq r3, sl, r0, lsl #20 + 8a00: 403a8e00 eorsmi r8, sl, r0, lsl #28 + 8a04: 403aa200 eorsmi sl, sl, r0, lsl #4 + 8a08: 38750600 ldmdacc r5!, {r9, sl}^ + 8a0c: 65776f50 ldrbvs r6, [r7, #-3920]! + 8a10: b1010072 tstlt r1, r2, ror r0 + 8a14: 29102a01 ldmdbcs r0, {r0, r9, fp, sp} + 8a18: 5a000080 bpl 8c20 + 8a1c: 0000001a andeq r0, r0, sl, lsl r0 + 8a20: 00000000 andeq r0, r0, r0 + 8a24: 000000e0 andeq r0, r0, r0, ror #1 + 8a28: 0b0c0003 bleq 308a3c + 8a2c: 01040000 tsteq r4, r0 + 8a30: 445c3a43 ldrbmi r3, [ip], #-2627 + 8a34: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8a38: 73746e65 cmnvc r4, #1616 ; 0x650 + 8a3c: 646e6120 strbtvs r6, [lr], #-288 + 8a40: 74655320 strbtvc r5, [r5], #-800 + 8a44: 676e6974 undefined + 8a48: 616d5c73 smcvs 54723 + 8a4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8a50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8a54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8a58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8a5c: 775c7374 undefined + 8a60: 6f632d73 svcvs 0x00632d73 + 8a64: 6f72746e svcvs 0x0072746e + 8a68: 65575c6c ldrbvs r5, [r7, #-3180] + 8a6c: 65687461 strbvs r7, [r8, #-1121]! + 8a70: 74532072 ldrbvc r2, [r3], #-114 + 8a74: 6f697461 svcvs 0x00697461 + 8a78: 6f43206e svcvs 0x0043206e + 8a7c: 6f72746e svcvs 0x0072746e + 8a80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8a84: 414d535c cmpmi sp, ip, asr r3 + 8a88: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 8a8c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 8a90: 6f535c73 svcvs 0x00535c73 + 8a94: 65637275 strbvs r7, [r3, #-629]! + 8a98: 63616d5c cmnvs r1, #5888 ; 0x1700 + 8a9c: 00632e61 rsbeq r2, r3, r1, ror #28 + 8aa0: 20524149 subscs r4, r2, r9, asr #2 + 8aa4: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 8aa8: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 8aac: 43202b2b teqmi r0, #44032 ; 0xac00 + 8ab0: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 8ab4: 2072656c rsbscs r6, r2, ip, ror #10 + 8ab8: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 8abc: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 8ac0: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 8ac4: 33572f35 cmpcc r7, #212 ; 0xd4 + 8ac8: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 8acc: 54534b43 ldrbpl r4, [r3], #-2883 + 8ad0: 20545241 subscs r5, r4, r1, asr #4 + 8ad4: 20726f66 rsbscs r6, r2, r6, ror #30 + 8ad8: 004d5241 subeq r5, sp, r1, asr #4 + 8adc: 0053c001 subseq ip, r3, r1 + 8ae0: 00022800 andeq r2, r2, r0, lsl #16 + 8ae4: 6e750300 cdpvs 3, 7, cr0, cr5, cr0, {0} + 8ae8: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} + 8aec: 6c206465 cfstrsvs mvf6, [r0], #-404 + 8af0: 00676e6f rsbeq r6, r7, pc, ror #28 + 8af4: 75060704 strvc r0, [r6, #-1796] + 8af8: 33746e69 cmncc r4, #1680 ; 0x690 + 8afc: 00745f32 rsbseq r5, r4, r2, lsr pc + 8b00: 0101c115 tsteq r1, r5, lsl r1 + 8b04: 0000191e andeq r1, r0, lr, lsl r9 + 8b08: 000000fc strdeq r0, [r0], -ip + 8b0c: 0b0c0003 bleq 308b20 + 8b10: 02040000 andeq r0, r4, #0 ; 0x0 + 8b14: 445c3a43 ldrbmi r3, [ip], #-2627 + 8b18: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8b1c: 73746e65 cmnvc r4, #1616 ; 0x650 + 8b20: 646e6120 strbtvs r6, [lr], #-288 + 8b24: 74655320 strbtvc r5, [r5], #-800 + 8b28: 676e6974 undefined + 8b2c: 616d5c73 smcvs 54723 + 8b30: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8b34: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8b38: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8b3c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8b40: 775c7374 undefined + 8b44: 6f632d73 svcvs 0x00632d73 + 8b48: 6f72746e svcvs 0x0072746e + 8b4c: 65575c6c ldrbvs r5, [r7, #-3180] + 8b50: 65687461 strbvs r7, [r8, #-1121]! + 8b54: 74532072 ldrbvc r2, [r3], #-114 + 8b58: 6f697461 svcvs 0x00697461 + 8b5c: 6f43206e svcvs 0x0043206e + 8b60: 6f72746e svcvs 0x0072746e + 8b64: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8b68: 414d535c cmpmi sp, ip, asr r3 + 8b6c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 8b70: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 8b74: 6f535c73 svcvs 0x00535c73 + 8b78: 65637275 strbvs r7, [r3, #-629]! + 8b7c: 63616d5c cmnvs r1, #5888 ; 0x1700 + 8b80: 00632e61 rsbeq r2, r3, r1, ror #28 + 8b84: 20524149 subscs r4, r2, r9, asr #2 + 8b88: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 8b8c: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 8b90: 43202b2b teqmi r0, #44032 ; 0xac00 + 8b94: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 8b98: 2072656c rsbscs r6, r2, ip, ror #10 + 8b9c: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 8ba0: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 8ba4: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 8ba8: 33572f35 cmpcc r7, #212 ; 0xd4 + 8bac: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 8bb0: 54534b43 ldrbpl r4, [r3], #-2883 + 8bb4: 20545241 subscs r5, r4, r1, asr #4 + 8bb8: 20726f66 rsbscs r6, r2, r6, ror #30 + 8bbc: 004d5241 subeq r5, sp, r1, asr #4 + 8bc0: 403e7001 eorsmi r7, lr, r1 + 8bc4: 403e9800 eorsmi r9, lr, r0, lsl #16 + 8bc8: 00555000 subseq r5, r5, r0 + 8bcc: 002d1b00 eoreq r1, sp, r0, lsl #22 + 8bd0: 8a2f1000 bhi bccbd8 + 8bd4: ff040000 undefined instruction 0xff040000 + 8bd8: 52000000 andpl r0, r0, #0 ; 0x0 + 8bdc: 74657365 strbtvc r7, [r5], #-869 + 8be0: 6163614d cmnvs r3, sp, asr #2 + 8be4: 06360100 ldrteq r0, [r6], -r0, lsl #2 + 8be8: 001a8c01 andseq r8, sl, r1, lsl #24 + 8bec: 403e7000 eorsmi r7, lr, r0 + 8bf0: 403e9800 eorsmi r9, lr, r0, lsl #16 + 8bf4: 6d740500 cfldr64vs mvdx0, [r4] + 8bf8: 38010070 stmdacc r1, {r4, r5, r6} + 8bfc: 8af6100c bhi ffd8cc34 + 8c00: 1aa00000 bne fe808c08 + 8c04: 00000000 andeq r0, r0, r0 + 8c08: 00000748 andeq r0, r0, r8, asr #14 + 8c0c: 0b780003 bleq 1e08c20 + 8c10: 01040000 tsteq r4, r0 + 8c14: 445c3a43 ldrbmi r3, [ip], #-2627 + 8c18: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8c1c: 73746e65 cmnvc r4, #1616 ; 0x650 + 8c20: 646e6120 strbtvs r6, [lr], #-288 + 8c24: 74655320 strbtvc r5, [r5], #-800 + 8c28: 676e6974 undefined + 8c2c: 616d5c73 smcvs 54723 + 8c30: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8c34: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8c38: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8c3c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8c40: 775c7374 undefined + 8c44: 6f632d73 svcvs 0x00632d73 + 8c48: 6f72746e svcvs 0x0072746e + 8c4c: 65575c6c ldrbvs r5, [r7, #-3180] + 8c50: 65687461 strbvs r7, [r8, #-1121]! + 8c54: 74532072 ldrbvc r2, [r3], #-114 + 8c58: 6f697461 svcvs 0x00697461 + 8c5c: 6f43206e svcvs 0x0043206e + 8c60: 6f72746e svcvs 0x0072746e + 8c64: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8c68: 7070415c rsbsvc r4, r0, ip, asr r1 + 8c6c: 6163696c cmnvs r3, ip, ror #18 + 8c70: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 8c74: 756f535c strbvc r5, [pc, #-860]! ; 8920 + 8c78: 5c656372 stclpl 3, cr6, [r5], #-456 + 8c7c: 74616577 strbtvc r6, [r1], #-1399 + 8c80: 5f726568 svcpl 0x00726568 + 8c84: 74617473 strbtvc r7, [r1], #-1139 + 8c88: 5f6e6f69 svcpl 0x006e6f69 + 8c8c: 746e6f63 strbtvc r6, [lr], #-3939 + 8c90: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 8c94: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 8c98: 52414900 subpl r4, r1, #0 ; 0x0 + 8c9c: 534e4120 movtpl r4, #57632 ; 0xe120 + 8ca0: 2f432049 svccs 0x00432049 + 8ca4: 202b2b43 eorcs r2, fp, r3, asr #22 + 8ca8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 8cac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 8cb0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 8cb4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 8cb8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 8cbc: 572f3539 undefined + 8cc0: 4b203233 blmi 815594 + 8cc4: 534b4349 movtpl r4, #45897 ; 0xb349 + 8cc8: 54524154 ldrbpl r4, [r2], #-340 + 8ccc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 8cd0: 4d524120 ldfmie f4, [r2, #-128] + 8cd4: 56040100 strpl r0, [r4], -r0, lsl #2 + 8cd8: 02380000 eorseq r0, r8, #0 ; 0x0 + 8cdc: 75020000 strvc r0, [r2] + 8ce0: 6769736e strbvs r7, [r9, -lr, ror #6]! + 8ce4: 2064656e rsbcs r6, r4, lr, ror #10 + 8ce8: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 + 8cec: 03080100 movweq r0, #33024 ; 0x8100 + 8cf0: 00071013 andeq r1, r7, r3, lsl r0 + 8cf4: 6f760200 svcvs 0x00760200 + 8cf8: 00006469 andeq r6, r0, r9, ror #8 + 8cfc: 5b130305 blpl 4c9918 + 8d00: 02000003 andeq r0, r0, #3 ; 0x3 + 8d04: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 8d08: 64656e67 strbtvs r6, [r5], #-3687 + 8d0c: 6f687320 svcvs 0x00687320 + 8d10: 02007472 andeq r7, r0, #1912602624 ; 0x72000000 + 8d14: bc130507 cfldr32lt mvfx0, [r3], {7} + 8d18: 02000003 andeq r0, r0, #3 ; 0x3 + 8d1c: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 8d20: 64656e67 strbtvs r6, [r5], #-3687 + 8d24: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} + 8d28: 07040067 streq r0, [r4, -r7, rrx] + 8d2c: 06a81307 strteq r1, [r8], r7, lsl #6 + 8d30: 13030000 movwne r0, #12288 ; 0x3000 + 8d34: 0000067b andeq r0, r0, fp, ror r6 + 8d38: 00016c0d andeq r6, r1, sp, lsl #24 + 8d3c: 670e0100 strvs r0, [lr, -r0, lsl #2] + 8d40: 6b637542 blvs 18e6250 + 8d44: 67655256 undefined + 8d48: 0000635f andeq r6, r0, pc, asr r3 + 8d4c: 5031670e eorspl r6, r1, lr, lsl #14 + 8d50: 65525635 ldrbvs r5, [r2, #-1589] + 8d54: 00635f67 rsbeq r5, r3, r7, ror #30 + 8d58: 31670e01 cmncc r7, r1, lsl #28 + 8d5c: 52563850 subspl r3, r6, #5242880 ; 0x500000 + 8d60: 635f6765 cmpvs pc, #26476544 ; 0x1940000 + 8d64: 670e0200 strvs r0, [lr, -r0, lsl #4] + 8d68: 5678614d ldrbtpl r6, [r8], -sp, asr #2 + 8d6c: 5f676552 svcpl 0x00676552 + 8d70: 00030063 andeq r0, r3, r3, rrx + 8d74: 0001a30f andeq sl, r1, pc, lsl #6 + 8d78: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! + 8d7c: 7079745f rsbsvc r7, r9, pc, asr r4 + 8d80: 61745f65 cmnvs r4, r5, ror #30 + 8d84: 0e010067 cdpeq 0, 0, cr0, cr1, cr7, {3} + 8d88: 00005854 andeq r5, r0, r4, asr r8 + 8d8c: 0058520e subseq r5, r8, lr, lsl #4 + 8d90: 44450e01 strbmi r0, [r5], #-3585 + 8d94: 540e0200 strpl r0, [lr], #-512 + 8d98: 0e03004f cdpeq 0, 0, cr0, cr3, cr15, {2} + 8d9c: 5f58414d svcpl 0x0058414d + 8da0: 5f47534d svcpl 0x0047534d + 8da4: 45505954 ldrbmi r5, [r0, #-2388] + 8da8: 0d000400 cfstrseq mvf0, [r0] + 8dac: 00000200 andeq r0, r0, r0, lsl #4 + 8db0: 4e670e01 cdpmi 14, 6, cr0, cr7, cr1, {0} + 8db4: 79546d76 ldmdbvc r4, {r1, r2, r4, r5, r6, r8, sl, fp, sp, lr}^ + 8db8: 4e5f6570 mrcmi 5, 2, r6, cr15, cr0, {3} + 8dbc: 6d764e6f ldclvs 14, cr4, [r6, #-444]! + 8dc0: 0000635f andeq r6, r0, pc, asr r3 + 8dc4: 764e670e strbvc r6, [lr], -lr, lsl #14 + 8dc8: 7079546d rsbsvc r5, r9, sp, ror #8 + 8dcc: 53535f65 cmppl r3, #404 ; 0x194 + 8dd0: 00635f54 rsbeq r5, r3, r4, asr pc + 8dd4: 4e670e01 cdpmi 14, 6, cr0, cr7, cr1, {0} + 8dd8: 79546d76 ldmdbvc r4, {r1, r2, r4, r5, r6, r8, sl, fp, sp, lr}^ + 8ddc: 535f6570 cmppl pc, #469762048 ; 0x1c000000 + 8de0: 00635f54 rsbeq r5, r3, r4, asr pc + 8de4: 4e670e02 cdpmi 14, 6, cr0, cr7, cr2, {0} + 8de8: 79546d76 ldmdbvc r4, {r1, r2, r4, r5, r6, r8, sl, fp, sp, lr}^ + 8dec: 415f6570 cmpmi pc, r0, ror r5 + 8df0: 635f4d54 cmpvs pc, #5376 ; 0x1500 + 8df4: 670e0300 strvs r0, [lr, -r0, lsl #6] + 8df8: 546d764e strbtpl r7, [sp], #-1614 + 8dfc: 5f657079 svcpl 0x00657079 + 8e00: 5f78614d svcpl 0x0078614d + 8e04: 00040063 andeq r0, r4, r3, rrx + 8e08: 0002b20f andeq fp, r2, pc, lsl #4 + 8e0c: 61657700 cmnvs r5, r0, lsl #14 + 8e10: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 8e14: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 8e18: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 8e1c: 5f72656c svcpl 0x0072656c + 8e20: 74617473 strbtvc r7, [r1], #-1139 + 8e24: 745f7365 ldrbvc r7, [pc], #869 ; 8e2c + 8e28: 01006761 tsteq r0, r1, ror #14 + 8e2c: 4c44490e mcrrmi 9, 0, r4, r4, cr14 + 8e30: 4f435f45 svcmi 0x00435f45 + 8e34: 4f52544e svcmi 0x0052544e + 8e38: 52454c4c subpl r4, r5, #19456 ; 0x4c00 + 8e3c: 0054535f subseq r5, r4, pc, asr r3 + 8e40: 4e490e00 cdpmi 14, 4, cr0, cr9, cr0, {0} + 8e44: 435f5449 cmpmi pc, #1224736768 ; 0x49000000 + 8e48: 52544e4f subspl r4, r4, #1264 ; 0x4f0 + 8e4c: 454c4c4f strbmi r4, [ip, #-3151] + 8e50: 54535f52 ldrbpl r5, [r3], #-3922 + 8e54: 570e0100 strpl r0, [lr, -r0, lsl #2] + 8e58: 49544941 ldmdbmi r4, {r0, r6, r8, fp, lr}^ + 8e5c: 435f474e cmpmi pc, #20447232 ; 0x1380000 + 8e60: 52544e4f subspl r4, r4, #1264 ; 0x4f0 + 8e64: 454c4c4f strbmi r4, [ip, #-3151] + 8e68: 54535f52 ldrbpl r5, [r3], #-3922 + 8e6c: 4c0e0200 sfmmi f0, 4, [lr], {0} + 8e70: 45545349 ldrbmi r5, [r4, #-841] + 8e74: 4f435f4e svcmi 0x00435f4e + 8e78: 4f52544e svcmi 0x0052544e + 8e7c: 52454c4c subpl r4, r5, #19456 ; 0x4c00 + 8e80: 0054535f subseq r5, r4, pc, asr r3 + 8e84: 52540e03 subspl r0, r4, #48 ; 0x30 + 8e88: 4d534e41 ldclmi 14, cr4, [r3, #-260] + 8e8c: 415f5449 cmpmi pc, r9, asr #8 + 8e90: 435f4b43 cmpmi pc, #68608 ; 0x10c00 + 8e94: 52544e4f subspl r4, r4, #1264 ; 0x4f0 + 8e98: 454c4c4f strbmi r4, [ip, #-3151] + 8e9c: 54535f52 ldrbpl r5, [r3], #-3922 + 8ea0: 460e0400 strmi r0, [lr], -r0, lsl #8 + 8ea4: 53494e49 movtpl r4, #40521 ; 0x9e49 + 8ea8: 4f435f48 svcmi 0x00435f48 + 8eac: 4f52544e svcmi 0x0052544e + 8eb0: 52454c4c subpl r4, r5, #19456 ; 0x4c00 + 8eb4: 0054535f subseq r5, r4, pc, asr r3 + 8eb8: 150f0005 strne r0, [pc, #-5] ; 8ebb + 8ebc: 73000003 movwvc r0, #3 ; 0x3 + 8ec0: 6f736e65 svcvs 0x00736e65 + 8ec4: 656d5f72 strbvs r5, [sp, #-3954]! + 8ec8: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 + 8ecc: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} + 8ed0: 61745f74 cmnvs r4, r4, ror pc + 8ed4: 0e010067 cdpeq 0, 0, cr0, cr1, cr7, {3} + 8ed8: 444e4957 strbmi r4, [lr], #-2391 + 8edc: 5249445f subpl r4, r9, #1593835520 ; 0x5f000000 + 8ee0: 570e0500 strpl r0, [lr, -r0, lsl #10] + 8ee4: 5f444e49 svcpl 0x00444e49 + 8ee8: 45455053 strbmi r5, [r5, #-83] + 8eec: 0e070044 cdpeq 0, 0, cr0, cr7, cr4, {2} + 8ef0: 53455250 movtpl r5, #21072 ; 0x5250 + 8ef4: 45525553 ldrbmi r5, [r2, #-1363] + 8ef8: 540e0900 strpl r0, [lr], #-2304 + 8efc: 45504d45 ldrbmi r4, [r0, #-3397] + 8f00: 55544152 ldrbpl r4, [r4, #-338] + 8f04: 0b004552 bleq 1a454 + 8f08: 4142560e cmpmi r2, lr, lsl #12 + 8f0c: 0e0d0054 mcreq 0, 0, r0, cr13, cr4, {2} + 8f10: 5f58414d svcpl 0x0058414d + 8f14: 534e4553 movtpl r4, #58707 ; 0xe553 + 8f18: 0e00524f cdpeq 2, 0, cr5, cr0, cr15, {2} + 8f1c: 035b0f00 cmpeq fp, #0 ; 0x0 + 8f20: 656d0000 strbvs r0, [sp]! + 8f24: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 + 8f28: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} + 8f2c: 79735f74 ldmdbvc r3!, {r2, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 8f30: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 8f34: 6761745f undefined + 8f38: 490e0100 stmdbmi lr, {r8} + 8f3c: 5245544e subpl r5, r5, #1308622848 ; 0x4e000000 + 8f40: 4954414e ldmdbmi r4, {r1, r2, r3, r6, r8, lr}^ + 8f44: 4c414e4f mcrrmi 14, 4, r4, r1, cr15 + 8f48: 5359535f cmppl r9, #2080374785 ; 0x7c000001 + 8f4c: 004d4554 subeq r4, sp, r4, asr r5 + 8f50: 4e450e00 cdpmi 14, 4, cr0, cr5, cr0, {0} + 8f54: 53494c47 movtpl r4, #40007 ; 0x9c47 + 8f58: 59535f48 ldmdbpl r3, {r3, r6, r8, r9, sl, fp, ip, lr}^ + 8f5c: 4d455453 cfstrdmi mvd5, [r5, #-332] + 8f60: 10000100 andne r0, r0, r0, lsl #2 + 8f64: 00000361 andeq r0, r0, r1, ror #6 + 8f68: 036e1100 cmneq lr, #0 ; 0x0 + 8f6c: 7b130000 blvc 4c8f74 + 8f70: 12000006 andne r0, r0, #6 ; 0x6 + 8f74: 7b110000 blvc 448f7c + 8f78: 13000003 movwne r0, #3 ; 0x3 + 8f7c: 0000067b andeq r0, r0, fp, ror r6 + 8f80: 11000112 tstne r0, r2, lsl r1 + 8f84: 00000388 andeq r0, r0, r8, lsl #7 + 8f88: 00067b13 andeq r7, r6, r3, lsl fp + 8f8c: 00021200 andeq r1, r2, r0, lsl #4 + 8f90: 00039511 andeq r9, r3, r1, lsl r5 + 8f94: 067b1300 ldrbteq r1, [fp], -r0, lsl #6 + 8f98: 03120000 tsteq r2, #0 ; 0x0 + 8f9c: 03a21100 undefined instruction 0x03a21100 + 8fa0: 7b130000 blvc 4c8fa8 + 8fa4: 12000006 andne r0, r0, #6 ; 0x6 + 8fa8: af110007 svcge 0x00110007 + 8fac: 13000003 movwne r0, #3 ; 0x3 + 8fb0: 0000067b andeq r0, r0, fp, ror r6 + 8fb4: 11000812 tstne r0, r2, lsl r8 + 8fb8: 000003bc strheq r0, [r0], -ip + 8fbc: 00067b13 andeq r7, r6, r3, lsl fp + 8fc0: 000b1200 andeq r1, fp, r0, lsl #4 + 8fc4: 0003c711 andeq ip, r3, r1, lsl r7 + 8fc8: 01d61500 bicseq r1, r6, r0, lsl #10 + 8fcc: 11000f12 tstne r0, r2, lsl pc + 8fd0: 000003d4 ldrdeq r0, [r0], -r4 + 8fd4: 00067b13 andeq r7, r6, r3, lsl fp + 8fd8: 00101200 andseq r1, r0, r0, lsl #4 + 8fdc: 0003e111 andeq lr, r3, r1, lsl r1 + 8fe0: 067b1300 ldrbteq r1, [fp], -r0, lsl #6 + 8fe4: 12120000 andsne r0, r2, #0 ; 0x0 + 8fe8: 03ee1100 mvneq r1, #0 ; 0x0 + 8fec: 7b130000 blvc 4c8ff4 + 8ff0: 12000006 andne r0, r0, #6 ; 0x6 + 8ff4: 56130042 ldrpl r0, [r3], -r2, asr #32 + 8ff8: 04000004 streq r0, [r0], #-4 + 8ffc: 06a81314 ssateq r1, #9, r4, lsl #6 + 9000: 62010000 andvs r0, r1, #0 ; 0x0 + 9004: 456b6375 strbmi r6, [fp, #-885]! + 9008: 2302006e movwcs r0, #8302 ; 0x206e + 900c: 1f010400 svcne 0x00010400 + 9010: 06a81314 ssateq r1, #9, r4, lsl #6 + 9014: 62010000 andvs r0, r1, #0 ; 0x0 + 9018: 536b6375 cmnpl fp, #-738197503 ; 0xd4000001 + 901c: 52636e79 rsbpl r6, r3, #1936 ; 0x790 + 9020: 6e456365 cdpvs 3, 4, cr6, cr5, cr5, {3} + 9024: 00230200 eoreq r0, r3, r0, lsl #4 + 9028: 141e0104 ldrne r0, [lr], #-260 + 902c: 0006a813 andeq sl, r6, r3, lsl r8 + 9030: 75620100 strbvc r0, [r2, #-256]! + 9034: 79426b63 stmdbvc r2, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ + 9038: 73736170 cmnvc r3, #28 ; 0x1c + 903c: 02006e45 andeq r6, r0, #1104 ; 0x450 + 9040: 01040023 tsteq r4, r3, lsr #32 + 9044: a813141d ldmdage r3, {r0, r2, r3, r4, sl, ip} + 9048: 01000006 tsteq r0, r6 + 904c: 6b637562 blvs 18e65dc + 9050: 446b6c43 strbtmi r6, [fp], #-3139 + 9054: 02007669 andeq r7, r0, #110100480 ; 0x6900000 + 9058: 04040023 streq r0, [r4], #-35 + 905c: 8f130019 svchi 0x00130019 + 9060: 04000004 streq r0, [r0], #-4 + 9064: 06a81314 ssateq r1, #9, r4, lsl #6 + 9068: 76010000 strvc r0, [r1], -r0 + 906c: 31676552 cmncc r7, r2, asr r5 + 9070: 45563550 ldrbmi r3, [r6, #-1360] + 9074: 2302006e movwcs r0, #8302 ; 0x206e + 9078: 1e020400 cfcpysne mvf0, mvf2 + 907c: 06a81314 ssateq r1, #9, r4, lsl #6 + 9080: 76010000 strvc r0, [r1], -r0 + 9084: 31676552 cmncc r7, r2, asr r5 + 9088: 49563550 ldmdbmi r6, {r4, r6, r8, sl, ip, sp}^ + 908c: 006c6553 rsbeq r6, ip, r3, asr r5 + 9090: 04002302 streq r2, [r0], #-770 + 9094: 13001c02 movwne r1, #3074 ; 0xc02 + 9098: 000004b4 strheq r0, [r0], -r4 + 909c: d8131508 ldmdale r3, {r3, r8, sl, ip} + 90a0: 01000005 tsteq r0, r5 + 90a4: 67655276 undefined + 90a8: 00230200 eoreq r0, r3, r0, lsl #4 + 90ac: 05921315 ldreq r1, [r2, #789] + 90b0: 63010000 movwvs r0, #4096 ; 0x1000 + 90b4: 006c746e rsbeq r7, ip, lr, ror #8 + 90b8: 00042302 andeq r2, r4, r2, lsl #6 + 90bc: 0004e816 andeq lr, r4, r6, lsl r8 + 90c0: 616d7300 cmnvs sp, r0, lsl #6 + 90c4: 64705f63 ldrbtvs r5, [r0], #-3939 + 90c8: 61745f75 cmnvs r4, r5, ror pc + 90cc: 15030067 strne r0, [r3, #-103] + 90d0: 0106ee15 tsteq r6, r5, lsl lr + 90d4: 65736572 ldrbvs r6, [r3, #-1394]! + 90d8: 64657672 strbtvs r7, [r5], #-1650 + 90dc: 00230200 eoreq r0, r3, r0, lsl #4 + 90e0: 06e11515 usateq r1, #1, r5, lsl #10 + 90e4: 44387501 ldrtmi r7, [r8], #-1281 + 90e8: 00617461 rsbeq r7, r1, r1, ror #8 + 90ec: 00022302 andeq r2, r2, r2, lsl #6 + 90f0: 00052b16 andeq r2, r5, r6, lsl fp + 90f4: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! + 90f8: 6174735f cmnvs r4, pc, asr r3 + 90fc: 5f737574 svcpl 0x00737574 + 9100: 00676174 rsbeq r6, r7, r4, ror r1 + 9104: ea131401 b 4ce110 + 9108: 01000005 tsteq r0, r5 + 910c: 5f67736d svcpl 0x0067736d + 9110: 65707974 ldrbvs r7, [r0, #-2420]! + 9114: 00230200 eoreq r0, r3, r0, lsl #4 + 9118: 14050301 strne r0, [r5], #-769 + 911c: 00067b13 andeq r7, r6, r3, lsl fp + 9120: 736d0100 cmnvc sp, #0 ; 0x0 + 9124: 74735f67 ldrbtvc r5, [r3], #-3943 + 9128: 00657461 rsbeq r7, r5, r1, ror #8 + 912c: 01002302 tsteq r0, r2, lsl #6 + 9130: 16000005 strne r0, [r0], -r5 + 9134: 00000592 muleq r0, r2, r5 + 9138: 7373656d cmnvc r3, #457179136 ; 0x1b400000 + 913c: 5f656761 svcpl 0x00656761 + 9140: 00676174 rsbeq r6, r7, r4, ror r1 + 9144: 23131510 tstcs r3, #67108864 ; 0x4000000 + 9148: 01000007 tsteq r0, r7 + 914c: 74533875 ldrbvc r3, [r3], #-2165 + 9150: 73757461 cmnvc r5, #1627389952 ; 0x61000000 + 9154: 00230200 eoreq r0, r3, r0, lsl #4 + 9158: 01e71515 mvneq r1, r5, lsl r5 + 915c: 38757001 ldmdacc r5!, {r0, ip, sp, lr}^ + 9160: 66667542 strbtvs r7, [r6], -r2, asr #10 + 9164: 02007265 andeq r7, r0, #1342177286 ; 0x50000006 + 9168: 13150423 tstne r5, #587202560 ; 0x23000000 + 916c: 0000067b andeq r0, r0, fp, ror r6 + 9170: 42387501 eorsmi r7, r8, #4194304 ; 0x400000 + 9174: 69536675 ldmdbvs r3, {r0, r2, r4, r5, r6, r9, sl, sp, lr}^ + 9178: 0200657a andeq r6, r0, #511705088 ; 0x1e800000 + 917c: 13150823 tstne r5, #2293760 ; 0x230000 + 9180: 000006b8 strheq r0, [r0], -r8 + 9184: 44626301 strbtmi r6, [r2], #-769 + 9188: 49617461 stmdbmi r1!, {r0, r5, r6, sl, ip, sp, lr}^ + 918c: 6369646e cmnvs r9, #1845493760 ; 0x6e000000 + 9190: 6f697461 svcvs 0x00697461 + 9194: 2302006e movwcs r0, #8302 ; 0x206e + 9198: d817000c ldmdale r7, {r2, r3} + 919c: 04000005 streq r0, [r0], #-5 + 91a0: 06ca1315 undefined + 91a4: 62010000 andvs r0, r1, #0 ; 0x0 + 91a8: 436b6375 cmnmi fp, #-738197503 ; 0xd4000001 + 91ac: 006c746e rsbeq r7, ip, lr, ror #8 + 91b0: 15002302 strne r2, [r0, #-770] + 91b4: 0006e013 andeq lr, r6, r3, lsl r0 + 91b8: 52760100 rsbspl r0, r6, #0 ; 0x0 + 91bc: 50316765 eorspl r6, r1, r5, ror #14 + 91c0: 6e435635 mcrvs 6, 2, r5, cr3, cr5, {1} + 91c4: 02006c74 andeq r6, r0, #29696 ; 0x7400 + 91c8: 13150023 tstne r5, #35 ; 0x23 + 91cc: 0000068a andeq r0, r0, sl, lsl #13 + 91d0: 65527601 ldrbvs r7, [r2, #-1537] + 91d4: 38503167 ldmdacc r0, {r0, r1, r2, r5, r6, r8, ip, sp}^ + 91d8: 006e4556 rsbeq r4, lr, r6, asr r5 + 91dc: 00002302 andeq r2, r0, r2, lsl #6 + 91e0: 6d726318 ldclvs 3, cr6, [r2, #-96]! + 91e4: 67655256 undefined + 91e8: 1500745f strne r7, [r0, #-1119] + 91ec: d21002b0 andsle r0, r0, #11 ; 0xb + 91f0: 6d180201 lfmvs f0, 4, [r8, #-4] + 91f4: 745f6773 ldrbvc r6, [pc], #1907 ; 91fc + 91f8: 5f657079 svcpl 0x00657079 + 91fc: ec150074 ldc 0, cr0, [r5], {116} + 9200: 01d92402 bicseq r2, r9, r2, lsl #8 + 9204: 766e1803 strbtvc r1, [lr], -r3, lsl #16 + 9208: 7079546d rsbsvc r5, r9, sp, ror #8 + 920c: 00745f65 rsbseq r5, r4, r5, ror #30 + 9210: 1703a315 smladne r3, r5, r3, sl + 9214: 6e18032d cdpvs 3, 1, cr0, cr8, cr13, {1} + 9218: 72456d76 subvc r6, r5, #7552 ; 0x1d80 + 921c: 00745f72 rsbseq r5, r4, r2, ror pc + 9220: 00b76110 adcseq r6, r7, r0, lsl r1 + 9224: 033b1700 teqeq fp, #0 ; 0x0 + 9228: 61657718 cmnvs r5, r8, lsl r7 + 922c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 9230: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 9234: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 9238: 5f72656c svcpl 0x0072656c + 923c: 74617473 strbtvc r7, [r1], #-1139 + 9240: 745f7365 ldrbvc r7, [pc], #869 ; 9248 + 9244: 04801500 streq r1, [r0], #1280 + 9248: 18023903 stmdane r2, {r0, r1, r8, fp, ip, sp} + 924c: 736e6573 cmnvc lr, #482344960 ; 0x1cc00000 + 9250: 6d5f726f lfmvs f7, 2, [pc, #-444] + 9254: 75736165 ldrbvc r6, [r3, #-357]! + 9258: 656d6572 strbvs r6, [sp, #-1394]! + 925c: 745f746e ldrbvc r7, [pc], #1134 ; 9264 + 9260: 05b21500 ldreq r1, [r2, #1280]! + 9264: 18024303 stmdane r2, {r0, r1, r8, r9, lr} + 9268: 7361656d cmnvc r1, #457179136 ; 0x1b400000 + 926c: 6d657275 sfmvs f7, 2, [r5, #-468]! + 9270: 5f746e65 svcpl 0x00746e65 + 9274: 74737973 ldrbtvc r7, [r3], #-2419 + 9278: 745f6d65 ldrbvc r6, [pc], #3429 ; 9280 + 927c: 06951500 ldreq r1, [r5], r0, lsl #10 + 9280: 18024903 stmdane r2, {r0, r1, r8, fp, lr} + 9284: 746e6975 strbtvc r6, [lr], #-2421 + 9288: 00745f38 rsbseq r5, r4, r8, lsr pc + 928c: 0a01d615 beq 7eae8 + 9290: 6218191a andsvs r1, r8, #425984 ; 0x68000 + 9294: 5f6c6f6f svcpl 0x006c6f6f + 9298: fb150074 blx 549472 + 929c: 132c0a0c teqne ip, #49152 ; 0xc000 + 92a0: 6e697518 mcrvs 5, 3, r7, cr9, cr8, {0} + 92a4: 5f363174 svcpl 0x00363174 + 92a8: fb150074 blx 549482 + 92ac: 191c0a01 ldmdbne ip, {r0, r9, fp} + 92b0: 6e697518 mcrvs 5, 3, r7, cr9, cr8, {0} + 92b4: 5f323374 svcpl 0x00323374 + 92b8: 93150074 tstls r5, #116 ; 0x74 + 92bc: 191e0a02 ldmdbne lr, {r1, r9, fp} + 92c0: 6c616318 stclvs 3, cr6, [r1], #-96 + 92c4: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 92c8: 00745f6b rsbseq r5, r4, fp, ror #30 + 92cc: 2201f515 andcs pc, r1, #88080384 ; 0x5400000 + 92d0: 63180f16 tstvs r8, #88 ; 0x58 + 92d4: 75426d72 strbvc r6, [r2, #-3442] + 92d8: 6e436b63 fnmacdvs d22, d3, d19 + 92dc: 745f6c74 ldrbvc r6, [pc], #3188 ; 92e4 + 92e0: 07ee1500 strbeq r1, [lr, r0, lsl #10]! + 92e4: 0201e710 andeq lr, r1, #4194304 ; 0x400000 + 92e8: 6d726318 ldclvs 3, cr6, [r2, #-96]! + 92ec: 67655256 undefined + 92f0: 56355031 undefined + 92f4: 6c746e43 ldclvs 14, cr6, [r4], #-268 + 92f8: 1500745f strne r7, [r0, #-1119] + 92fc: ed1008d6 ldc 8, cr0, [r0, #-856] + 9300: 63180201 tstvs r8, #268435456 ; 0x10000000 + 9304: 52566d72 subspl r6, r6, #7296 ; 0x1c80 + 9308: 6e436765 cdpvs 7, 4, cr6, cr3, cr5, {3} + 930c: 745f6c74 ldrbvc r6, [pc], #3188 ; 9314 + 9310: 098f1500 stmibeq pc, {r8, sl, ip} + 9314: 0201f810 andeq pc, r1, #1048576 ; 0x100000 + 9318: 616d7318 cmnvs sp, r8, lsl r3 + 931c: 64705f63 ldrbtvs r5, [r0], #-3939 + 9320: 00745f75 rsbseq r5, r4, r5, ror pc + 9324: 2409b415 strcs fp, [r9], #-1045 + 9328: 18030196 stmdane r3, {r1, r2, r4, r7, r8} + 932c: 5f67736d svcpl 0x0067736d + 9330: 74617473 strbtvc r7, [r1], #-1139 + 9334: 745f7375 ldrbvc r7, [pc], #885 ; 933c + 9338: 09e81500 stmibeq r8!, {r8, sl, ip}^ + 933c: 0301df24 movweq sp, #7972 ; 0x1f24 + 9340: 73656d18 cmnvc r5, #1536 ; 0x600 + 9344: 65676173 strbvs r6, [r7, #-371]! + 9348: 1500745f strne r7, [r0, #-1119] + 934c: 83240aab teqhi r4, #700416 ; 0xab000 + 9350: 00000302 andeq r0, r0, r2, lsl #6 + 9354: 000003c8 andeq r0, r0, r8, asr #7 + 9358: 0b780003 bleq 1e0936c + 935c: 01040000 tsteq r4, r0 + 9360: 445c3a43 ldrbmi r3, [ip], #-2627 + 9364: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9368: 73746e65 cmnvc r4, #1616 ; 0x650 + 936c: 646e6120 strbtvs r6, [lr], #-288 + 9370: 74655320 strbtvc r5, [r5], #-800 + 9374: 676e6974 undefined + 9378: 616d5c73 smcvs 54723 + 937c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9380: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9384: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9388: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 938c: 775c7374 undefined + 9390: 6f632d73 svcvs 0x00632d73 + 9394: 6f72746e svcvs 0x0072746e + 9398: 65575c6c ldrbvs r5, [r7, #-3180] + 939c: 65687461 strbvs r7, [r8, #-1121]! + 93a0: 74532072 ldrbvc r2, [r3], #-114 + 93a4: 6f697461 svcvs 0x00697461 + 93a8: 6f43206e svcvs 0x0043206e + 93ac: 6f72746e svcvs 0x0072746e + 93b0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 93b4: 7070415c rsbsvc r4, r0, ip, asr r1 + 93b8: 6163696c cmnvs r3, ip, ror #18 + 93bc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 93c0: 756f535c strbvc r5, [pc, #-860]! ; 906c + 93c4: 5c656372 stclpl 3, cr6, [r5], #-456 + 93c8: 74616577 strbtvc r6, [r1], #-1399 + 93cc: 5f726568 svcpl 0x00726568 + 93d0: 74617473 strbtvc r7, [r1], #-1139 + 93d4: 5f6e6f69 svcpl 0x006e6f69 + 93d8: 746e6f63 strbtvc r6, [lr], #-3939 + 93dc: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 93e0: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 93e4: 52414900 subpl r4, r1, #0 ; 0x0 + 93e8: 534e4120 movtpl r4, #57632 ; 0xe120 + 93ec: 2f432049 svccs 0x00432049 + 93f0: 202b2b43 eorcs r2, fp, r3, asr #22 + 93f4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 93f8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 93fc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9400: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9404: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9408: 572f3539 undefined + 940c: 4b203233 blmi 815ce0 + 9410: 534b4349 movtpl r4, #45897 ; 0xb349 + 9414: 54524154 ldrbpl r4, [r2], #-340 + 9418: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 941c: 4d524120 ldfmie f4, [r2, #-128] + 9420: 56040100 strpl r0, [r4], -r0, lsl #2 + 9424: 02380000 eorseq r0, r8, #0 ; 0x0 + 9428: 41040000 tstmi r4, r0 + 942c: 6d5f4b43 vldrvs d20, [pc, #-268] ; 9328 + 9430: 10006773 andne r6, r0, r3, ror r7 + 9434: 00009340 andeq r9, r0, r0, asr #6 + 9438: 0b019c03 bleq 7044c + 943c: 44030501 strmi r0, [r3], #-1281 + 9440: 04004052 streq r4, [r0], #-82 + 9444: 546d764e strbtpl r7, [sp], #-1614 + 9448: 00657079 rsbeq r7, r5, r9, ror r0 + 944c: 00920510 addseq r0, r2, r0, lsl r5 + 9450: 01b20300 undefined instruction 0x01b20300 + 9454: 0305010b movweq r0, #20747 ; 0x510b + 9458: 0040525c subeq r5, r0, ip, asr r2 + 945c: 75436704 strbvc r6, [r3, #-1796] + 9460: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 9464: 6e655374 mcrvs 3, 3, r5, cr5, cr4, {3} + 9468: 00726f73 rsbseq r6, r2, r3, ror pc + 946c: 00924b10 addseq r4, r2, r0, lsl fp + 9470: 01a60300 undefined instruction 0x01a60300 + 9474: 03050116 movweq r0, #20758 ; 0x5116 + 9478: 00405258 subeq r5, r0, r8, asr r2 + 947c: 44626704 strbtmi r6, [r2], #-1796 + 9480: 49617461 stmdbmi r1!, {r0, r5, r6, sl, ip, sp, lr}^ + 9484: 6369646e cmnvs r9, #1845493760 ; 0x6e000000 + 9488: 6f697461 svcvs 0x00697461 + 948c: 616c466e cmnvs ip, lr, ror #12 + 9490: 92100067 andsls r0, r0, #103 ; 0x67 + 9494: 03000092 movweq r0, #146 ; 0x92 + 9498: 010801a0 smlatbeq r8, r0, r1, r0 + 949c: 52540305 subspl r0, r4, #335544320 ; 0x14000000 + 94a0: 67040040 strvs r0, [r4, -r0, asr #32] + 94a4: 43363175 teqmi r6, #1073741853 ; 0x4000001d + 94a8: 65727275 ldrbvs r7, [r2, #-629]! + 94ac: 7250746e subsvc r7, r0, #1845493760 ; 0x6e000000 + 94b0: 75737365 ldrbvc r7, [r3, #-869]! + 94b4: 6e456572 mcrvs 5, 2, r6, cr5, cr2, {3} + 94b8: a0100067 andsge r0, r0, r7, rrx + 94bc: 03000092 movweq r0, #146 ; 0x92 + 94c0: 010a01ab smlatbeq sl, fp, r1, r0 + 94c4: 526a0305 rsbpl r0, sl, #335544320 ; 0x14000000 + 94c8: 67040040 strvs r0, [r4, -r0, asr #32] + 94cc: 43363175 teqmi r6, #1073741853 ; 0x4000001d + 94d0: 65727275 ldrbvs r7, [r2, #-629]! + 94d4: 7250746e subsvc r7, r0, #1845493760 ; 0x6e000000 + 94d8: 75737365 ldrbvc r7, [r3, #-869]! + 94dc: 6e496572 mcrvs 5, 2, r6, cr9, cr2, {3} + 94e0: a0100074 andsge r0, r0, r4, ror r0 + 94e4: 03000092 movweq r0, #146 ; 0x92 + 94e8: 010a01a8 smlatbeq sl, r8, r1, r0 + 94ec: 52640305 rsbpl r0, r4, #335544320 ; 0x14000000 + 94f0: 67040040 strvs r0, [r4, -r0, asr #32] + 94f4: 43363175 teqmi r6, #1073741853 ; 0x4000001d + 94f8: 65727275 ldrbvs r7, [r2, #-629]! + 94fc: 6554746e ldrbvs r7, [r4, #-1134] + 9500: 7265706d rsbvc r7, r5, #109 ; 0x6d + 9504: 72757461 rsbsvc r7, r5, #1627389952 ; 0x61000000 + 9508: 676e4565 strbvs r4, [lr, -r5, ror #10]! + 950c: 92a01000 adcls r1, r0, #0 ; 0x0 + 9510: aa030000 bge c9518 + 9514: 05010a01 streq r0, [r1, #-2561] + 9518: 40526803 subsmi r6, r2, r3, lsl #16 + 951c: 75670400 strbvc r0, [r7, #-1024]! + 9520: 75433631 strbvc r3, [r3, #-1585] + 9524: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 9528: 6d655474 cfstrdvs mvd5, [r5, #-464]! + 952c: 61726570 cmnvs r2, r0, ror r5 + 9530: 65727574 ldrbvs r7, [r2, #-1396]! + 9534: 00746e49 rsbseq r6, r4, r9, asr #28 + 9538: 0092a010 addseq sl, r2, r0, lsl r0 + 953c: 01a70300 undefined instruction 0x01a70300 + 9540: 0305010a movweq r0, #20746 ; 0x510a + 9544: 00405262 subeq r5, r0, r2, ror #4 + 9548: 31756704 cmncc r5, r4, lsl #14 + 954c: 72754336 rsbsvc r4, r5, #-671088640 ; 0xd8000000 + 9550: 746e6572 strbtvc r6, [lr], #-1394 + 9554: 74614256 strbtvc r4, [r1], #-598 + 9558: 92a01000 adcls r1, r0, #0 ; 0x0 + 955c: ad030000 stcge 0, cr0, [r3] + 9560: 05010a01 streq r0, [r1, #-2561] + 9564: 40526e03 subsmi r6, r2, r3, lsl #28 + 9568: 75670400 strbvc r0, [r7, #-1024]! + 956c: 75433631 strbvc r3, [r3, #-1585] + 9570: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 9574: 6e695774 mcrvs 7, 3, r5, cr9, cr4, {3} + 9578: 72694464 rsbvc r4, r9, #1677721600 ; 0x64000000 + 957c: 92a01000 adcls r1, r0, #0 ; 0x0 + 9580: ae030000 cdpge 0, 0, cr0, cr3, cr0, {0} + 9584: 05010a01 streq r0, [r1, #-2561] + 9588: 40527003 subsmi r7, r2, r3 + 958c: 75670400 strbvc r0, [r7, #-1024]! + 9590: 75433631 strbvc r3, [r3, #-1585] + 9594: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 9598: 6e695774 mcrvs 7, 3, r5, cr9, cr4, {3} + 959c: 65705364 ldrbvs r5, [r0, #-868]! + 95a0: 6e456465 cdpvs 4, 4, cr6, cr5, cr5, {3} + 95a4: a0100067 andsge r0, r0, r7, rrx + 95a8: 03000092 movweq r0, #146 ; 0x92 + 95ac: 010a01ac smlatbeq sl, ip, r1, r0 + 95b0: 526c0305 rsbpl r0, ip, #335544320 ; 0x14000000 + 95b4: 67040040 strvs r0, [r4, -r0, asr #32] + 95b8: 43363175 teqmi r6, #1073741853 ; 0x4000001d + 95bc: 65727275 ldrbvs r7, [r2, #-629]! + 95c0: 6957746e ldmdbvs r7, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ + 95c4: 7053646e subsvc r6, r3, lr, ror #8 + 95c8: 49646565 stmdbmi r4!, {r0, r2, r5, r6, r8, sl, sp, lr}^ + 95cc: 1000746e andne r7, r0, lr, ror #8 + 95d0: 000092a0 andeq r9, r0, r0, lsr #5 + 95d4: 0a01a903 beq 739e8 + 95d8: 66030501 strvs r0, [r3], -r1, lsl #10 + 95dc: 04004052 streq r4, [r0], #-82 + 95e0: 43387567 teqmi r8, #432013312 ; 0x19c00000 + 95e4: 65727275 ldrbvs r7, [r2, #-629]! + 95e8: 6142746e cmpvs r2, lr, ror #8 + 95ec: 694c6b63 stmdbvs ip, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ + 95f0: 00746867 rsbseq r6, r4, r7, ror #16 + 95f4: 00928310 addseq r8, r2, r0, lsl r3 + 95f8: 01b00300 lslseq r0, r0, #6 + 95fc: 03050109 movweq r0, #20745 ; 0x5109 + 9600: 0040525a subeq r5, r0, sl, asr r2 + 9604: 38756704 ldmdacc r5!, {r2, r8, r9, sl, sp, lr}^ + 9608: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 + 960c: 43746e65 cmnmi r4, #1616 ; 0x650 + 9610: 6e6e6168 powvsez f6, f6, #0.0 + 9614: 10006c65 andne r6, r0, r5, ror #24 + 9618: 00009283 andeq r9, r0, r3, lsl #5 + 961c: 0901af03 stmdbeq r1, {r0, r1, r8, r9, sl, fp, sp, pc} + 9620: 59030501 stmdbpl r3, {r0, r8, sl} + 9624: 04004052 streq r4, [r0], #-82 + 9628: 43387567 teqmi r8, #432013312 ; 0x19c00000 + 962c: 65727275 ldrbvs r7, [r2, #-629]! + 9630: 654d746e strbvs r7, [sp, #-1134] + 9634: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 + 9638: 73795365 cmnvc r9, #-1811939327 ; 0x94000001 + 963c: 006d6574 rsbeq r6, sp, r4, ror r5 + 9640: 00926710 addseq r6, r2, r0, lsl r7 + 9644: 01a50300 undefined instruction 0x01a50300 + 9648: 03050116 movweq r0, #20758 ; 0x5116 + 964c: 00405257 subeq r5, r0, r7, asr r2 + 9650: 38756704 ldmdacc r5!, {r2, r8, r9, sl, sp, lr}^ + 9654: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 + 9658: 50746e65 rsbspl r6, r4, r5, ror #28 + 965c: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 + 9660: 6576654c ldrbvs r6, [r6, #-1356]! + 9664: 8310006c tsthi r0, #108 ; 0x6c + 9668: 03000092 movweq r0, #146 ; 0x92 + 966c: 010901b4 strheq r0, [r9, -r4] + 9670: 525e0305 subspl r0, lr, #335544320 ; 0x14000000 + 9674: 67040040 strvs r0, [r4, -r0, asr #32] + 9678: 43503875 cmpmi r0, #7667712 ; 0x750000 + 967c: 65746e49 ldrbvs r6, [r4, #-3657]! + 9680: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 9684: 61655265 cmnvs r5, r5, ror #4 + 9688: 10007964 andne r7, r0, r4, ror #18 + 968c: 00009283 andeq r9, r0, r3, lsl #5 + 9690: 0901b303 stmdbeq r1, {r0, r1, r8, r9, ip, sp, pc} + 9694: 5d030501 cfstr32pl mvfx0, [r3, #-4] + 9698: 04004052 streq r4, [r0], #-82 + 969c: 54387567 ldrtpl r7, [r8], #-1383 + 96a0: 53706d65 cmnpl r0, #6464 ; 0x1940 + 96a4: 006e6769 rsbeq r6, lr, r9, ror #14 + 96a8: 00928310 addseq r8, r2, r0, lsl r3 + 96ac: 01b10300 undefined instruction 0x01b10300 + 96b0: 03050109 movweq r0, #20745 ; 0x5109 + 96b4: 0040525b subeq r5, r0, fp, asr r2 + 96b8: 38756704 ldmdacc r5!, {r2, r8, r9, sl, sp, lr}^ + 96bc: 696c6156 stmdbvs ip!, {r1, r2, r4, r6, r8, sp, lr}^ + 96c0: 74654e64 strbtvc r4, [r5], #-3684 + 96c4: 6b636150 blvs 18e1c0c + 96c8: 10007465 andne r7, r0, r5, ror #8 + 96cc: 00009283 andeq r9, r0, r3, lsl #5 + 96d0: 0901a403 stmdbeq r1, {r0, r1, sl, sp, pc} + 96d4: 56030501 strpl r0, [r3], -r1, lsl #10 + 96d8: 04004052 streq r4, [r0], #-82 + 96dc: 57387567 ldrpl r7, [r8, -r7, ror #10]! + 96e0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 96e4: 76457265 strbvc r7, [r5], -r5, ror #4 + 96e8: 73746e65 cmnvc r4, #1616 ; 0x650 + 96ec: 92831000 addls r1, r3, #0 ; 0x0 + 96f0: a3030000 movwge r0, #12288 ; 0x3000 + 96f4: 05010901 streq r0, [r1, #-2305] + 96f8: 40525503 subsmi r5, r2, r3, lsl #10 + 96fc: 38750400 ldmdacc r5!, {sl}^ + 9700: 54524155 ldrbpl r4, [r2], #-341 + 9704: 75427852 strbvc r7, [r2, #-2130] + 9708: 72656666 rsbvc r6, r5, #106954752 ; 0x6600000 + 970c: 8fb71000 svchi 0x00b71000 + 9710: a1030000 tstge r3, r0 + 9714: 05010901 streq r0, [r1, #-2305] + 9718: 40527403 subsmi r7, r2, r3, lsl #8 + 971c: 00000000 andeq r0, r0, r0 + 9720: 00000104 andeq r0, r0, r4, lsl #2 + 9724: 0b780003 bleq 1e09738 + 9728: 01040000 tsteq r4, r0 + 972c: 445c3a43 ldrbmi r3, [ip], #-2627 + 9730: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9734: 73746e65 cmnvc r4, #1616 ; 0x650 + 9738: 646e6120 strbtvs r6, [lr], #-288 + 973c: 74655320 strbtvc r5, [r5], #-800 + 9740: 676e6974 undefined + 9744: 616d5c73 smcvs 54723 + 9748: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 974c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9750: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9754: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9758: 775c7374 undefined + 975c: 6f632d73 svcvs 0x00632d73 + 9760: 6f72746e svcvs 0x0072746e + 9764: 65575c6c ldrbvs r5, [r7, #-3180] + 9768: 65687461 strbvs r7, [r8, #-1121]! + 976c: 74532072 ldrbvc r2, [r3], #-114 + 9770: 6f697461 svcvs 0x00697461 + 9774: 6f43206e svcvs 0x0043206e + 9778: 6f72746e svcvs 0x0072746e + 977c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9780: 7070415c rsbsvc r4, r0, ip, asr r1 + 9784: 6163696c cmnvs r3, ip, ror #18 + 9788: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 978c: 756f535c strbvc r5, [pc, #-860]! ; 9438 + 9790: 5c656372 stclpl 3, cr6, [r5], #-456 + 9794: 74616577 strbtvc r6, [r1], #-1399 + 9798: 5f726568 svcpl 0x00726568 + 979c: 74617473 strbtvc r7, [r1], #-1139 + 97a0: 5f6e6f69 svcpl 0x006e6f69 + 97a4: 746e6f63 strbtvc r6, [lr], #-3939 + 97a8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 97ac: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 97b0: 52414900 subpl r4, r1, #0 ; 0x0 + 97b4: 534e4120 movtpl r4, #57632 ; 0xe120 + 97b8: 2f432049 svccs 0x00432049 + 97bc: 202b2b43 eorcs r2, fp, r3, asr #22 + 97c0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 97c4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 97c8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 97cc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 97d0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 97d4: 572f3539 undefined + 97d8: 4b203233 blmi 8160ac + 97dc: 534b4349 movtpl r4, #45897 ; 0xb349 + 97e0: 54524154 ldrbpl r4, [r2], #-340 + 97e4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 97e8: 4d524120 ldfmie f4, [r2, #-128] + 97ec: 56040100 strpl r0, [r4], -r0, lsl #2 + 97f0: 02380000 eorseq r0, r8, #0 ; 0x0 + 97f4: 52040000 andpl r0, r4, #0 ; 0x0 + 97f8: 736d5f58 cmnvc sp, #352 ; 0x160 + 97fc: 40100067 andsmi r0, r0, r7, rrx + 9800: 03000093 movweq r0, #147 ; 0x93 + 9804: 010b019e strbeq r0, [fp, -lr] + 9808: 52800305 addpl r0, r0, #335544320 ; 0x14000000 + 980c: 54040040 strpl r0, [r4], #-64 + 9810: 736d5f58 cmnvc sp, #352 ; 0x160 + 9814: 40100067 andsmi r0, r0, r7, rrx + 9818: 03000093 movweq r0, #147 ; 0x93 + 981c: 010b019d strbeq r0, [fp, -sp] + 9820: 52900305 addspl r0, r0, #335544320 ; 0x14000000 + 9824: 00000040 andeq r0, r0, r0, asr #32 + 9828: 000000e8 andeq r0, r0, r8, ror #1 + 982c: 0b780003 bleq 1e09840 + 9830: 01040000 tsteq r4, r0 + 9834: 445c3a43 ldrbmi r3, [ip], #-2627 + 9838: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 983c: 73746e65 cmnvc r4, #1616 ; 0x650 + 9840: 646e6120 strbtvs r6, [lr], #-288 + 9844: 74655320 strbtvc r5, [r5], #-800 + 9848: 676e6974 undefined + 984c: 616d5c73 smcvs 54723 + 9850: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9854: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9858: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 985c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9860: 775c7374 undefined + 9864: 6f632d73 svcvs 0x00632d73 + 9868: 6f72746e svcvs 0x0072746e + 986c: 65575c6c ldrbvs r5, [r7, #-3180] + 9870: 65687461 strbvs r7, [r8, #-1121]! + 9874: 74532072 ldrbvc r2, [r3], #-114 + 9878: 6f697461 svcvs 0x00697461 + 987c: 6f43206e svcvs 0x0043206e + 9880: 6f72746e svcvs 0x0072746e + 9884: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9888: 7070415c rsbsvc r4, r0, ip, asr r1 + 988c: 6163696c cmnvs r3, ip, ror #18 + 9890: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9894: 756f535c strbvc r5, [pc, #-860]! ; 9540 + 9898: 5c656372 stclpl 3, cr6, [r5], #-456 + 989c: 74616577 strbtvc r6, [r1], #-1399 + 98a0: 5f726568 svcpl 0x00726568 + 98a4: 74617473 strbtvc r7, [r1], #-1139 + 98a8: 5f6e6f69 svcpl 0x006e6f69 + 98ac: 746e6f63 strbtvc r6, [lr], #-3939 + 98b0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 98b4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 98b8: 52414900 subpl r4, r1, #0 ; 0x0 + 98bc: 534e4120 movtpl r4, #57632 ; 0xe120 + 98c0: 2f432049 svccs 0x00432049 + 98c4: 202b2b43 eorcs r2, fp, r3, asr #22 + 98c8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 98cc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 98d0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 98d4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 98d8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 98dc: 572f3539 undefined + 98e0: 4b203233 blmi 8161b4 + 98e4: 534b4349 movtpl r4, #45897 ; 0xb349 + 98e8: 54524154 ldrbpl r4, [r2], #-340 + 98ec: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 98f0: 4d524120 ldfmie f4, [r2, #-128] + 98f4: 56040100 strpl r0, [r4], -r0, lsl #2 + 98f8: 02380000 eorseq r0, r8, #0 ; 0x0 + 98fc: 68040000 stmdavs r4, {} + 9900: 10007865 andne r7, r0, r5, ror #16 + 9904: 00008d15 andeq r8, r0, r5, lsl sp + 9908: 0f01d203 svceq 0x0001d203 + 990c: 14030501 strne r0, [r3], #-1281 + 9910: 0000403f andeq r4, r0, pc, lsr r0 + 9914: 00000120 andeq r0, r0, r0, lsr #2 + 9918: 0b780003 bleq 1e0992c + 991c: 06040000 streq r0, [r4], -r0 + 9920: 445c3a43 ldrbmi r3, [ip], #-2627 + 9924: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9928: 73746e65 cmnvc r4, #1616 ; 0x650 + 992c: 646e6120 strbtvs r6, [lr], #-288 + 9930: 74655320 strbtvc r5, [r5], #-800 + 9934: 676e6974 undefined + 9938: 616d5c73 smcvs 54723 + 993c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9940: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9944: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9948: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 994c: 775c7374 undefined + 9950: 6f632d73 svcvs 0x00632d73 + 9954: 6f72746e svcvs 0x0072746e + 9958: 65575c6c ldrbvs r5, [r7, #-3180] + 995c: 65687461 strbvs r7, [r8, #-1121]! + 9960: 74532072 ldrbvc r2, [r3], #-114 + 9964: 6f697461 svcvs 0x00697461 + 9968: 6f43206e svcvs 0x0043206e + 996c: 6f72746e svcvs 0x0072746e + 9970: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9974: 7070415c rsbsvc r4, r0, ip, asr r1 + 9978: 6163696c cmnvs r3, ip, ror #18 + 997c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9980: 756f535c strbvc r5, [pc, #-860]! ; 962c + 9984: 5c656372 stclpl 3, cr6, [r5], #-456 + 9988: 74616577 strbtvc r6, [r1], #-1399 + 998c: 5f726568 svcpl 0x00726568 + 9990: 74617473 strbtvc r7, [r1], #-1139 + 9994: 5f6e6f69 svcpl 0x006e6f69 + 9998: 746e6f63 strbtvc r6, [lr], #-3939 + 999c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 99a0: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 99a4: 52414900 subpl r4, r1, #0 ; 0x0 + 99a8: 534e4120 movtpl r4, #57632 ; 0xe120 + 99ac: 2f432049 svccs 0x00432049 + 99b0: 202b2b43 eorcs r2, fp, r3, asr #22 + 99b4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 99b8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 99bc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 99c0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 99c4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 99c8: 572f3539 undefined + 99cc: 4b203233 blmi 8162a0 + 99d0: 534b4349 movtpl r4, #45897 ; 0xb349 + 99d4: 54524154 ldrbpl r4, [r2], #-340 + 99d8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 99dc: 4d524120 ldfmie f4, [r2, #-128] + 99e0: 09600100 stmdbeq r0!, {r8}^ + 99e4: 09840040 stmibeq r4, {r6} + 99e8: 5ed80040 cdppl 0, 13, cr0, cr8, cr0, {2} + 99ec: 2d7d0000 ldclcs 0, cr0, [sp] + 99f0: 13100000 tstne r0, #0 ; 0x0 + 99f4: 0800008c stmdaeq r0, {r2, r3, r7} + 99f8: 00000122 andeq r0, r0, r2, lsr #2 + 99fc: 5f747570 svcpl 0x00747570 + 9a00: 00786568 rsbseq r6, r8, r8, ror #10 + 9a04: 0601d501 streq sp, [r1], -r1, lsl #10 + 9a08: 001abd01 andseq fp, sl, r1, lsl #26 + 9a0c: 40096000 andmi r6, r9, r0 + 9a10: 40098400 andmi r8, r9, r0, lsl #8 + 9a14: 00780900 rsbseq r0, r8, r0, lsl #18 + 9a18: 1601d501 strne sp, [r1], -r1, lsl #10 + 9a1c: 00928310 addseq r8, r2, r0, lsl r3 + 9a20: 001add00 andseq sp, sl, r0, lsl #26 + 9a24: 00730a00 rsbseq r0, r3, r0, lsl #20 + 9a28: 0b01d701 bleq 7f634 + 9a2c: 008f8310 addeq r8, pc, r0, lsl r3 + 9a30: 001afa00 andseq pc, sl, r0, lsl #20 + 9a34: 00000000 andeq r0, r0, r0 + 9a38: 00000114 andeq r0, r0, r4, lsl r1 + 9a3c: 0b780003 bleq 1e09a50 + 9a40: 06040000 streq r0, [r4], -r0 + 9a44: 445c3a43 ldrbmi r3, [ip], #-2627 + 9a48: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9a4c: 73746e65 cmnvc r4, #1616 ; 0x650 + 9a50: 646e6120 strbtvs r6, [lr], #-288 + 9a54: 74655320 strbtvc r5, [r5], #-800 + 9a58: 676e6974 undefined + 9a5c: 616d5c73 smcvs 54723 + 9a60: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9a64: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9a68: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9a6c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9a70: 775c7374 undefined + 9a74: 6f632d73 svcvs 0x00632d73 + 9a78: 6f72746e svcvs 0x0072746e + 9a7c: 65575c6c ldrbvs r5, [r7, #-3180] + 9a80: 65687461 strbvs r7, [r8, #-1121]! + 9a84: 74532072 ldrbvc r2, [r3], #-114 + 9a88: 6f697461 svcvs 0x00697461 + 9a8c: 6f43206e svcvs 0x0043206e + 9a90: 6f72746e svcvs 0x0072746e + 9a94: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9a98: 7070415c rsbsvc r4, r0, ip, asr r1 + 9a9c: 6163696c cmnvs r3, ip, ror #18 + 9aa0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9aa4: 756f535c strbvc r5, [pc, #-860]! ; 9750 + 9aa8: 5c656372 stclpl 3, cr6, [r5], #-456 + 9aac: 74616577 strbtvc r6, [r1], #-1399 + 9ab0: 5f726568 svcpl 0x00726568 + 9ab4: 74617473 strbtvc r7, [r1], #-1139 + 9ab8: 5f6e6f69 svcpl 0x006e6f69 + 9abc: 746e6f63 strbtvc r6, [lr], #-3939 + 9ac0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 9ac4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 9ac8: 52414900 subpl r4, r1, #0 ; 0x0 + 9acc: 534e4120 movtpl r4, #57632 ; 0xe120 + 9ad0: 2f432049 svccs 0x00432049 + 9ad4: 202b2b43 eorcs r2, fp, r3, asr #22 + 9ad8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9adc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 9ae0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9ae4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9ae8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9aec: 572f3539 undefined + 9af0: 4b203233 blmi 8163c4 + 9af4: 534b4349 movtpl r4, #45897 ; 0xb349 + 9af8: 54524154 ldrbpl r4, [r2], #-340 + 9afc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 9b00: 4d524120 ldfmie f4, [r2, #-128] + 9b04: 09840100 stmibeq r4, {r8} + 9b08: 098c0040 stmibeq ip, {r6} + 9b0c: 5f9c0040 svcpl 0x009c0040 + 9b10: 2df60000 ldclcs 0, cr0, [r6] + 9b14: 13100000 tstne r0, #0 ; 0x0 + 9b18: 0800008c stmdaeq r0, {r2, r3, r7} + 9b1c: 00000114 andeq r0, r0, r4, lsl r1 + 9b20: 5f747570 svcpl 0x00747570 + 9b24: 31786568 cmncc r8, r8, ror #10 + 9b28: e0010036 and r0, r1, r6, lsr r0 + 9b2c: 0e010601 cfmadd32eq mvax0, mvfx0, mvfx1, mvfx1 + 9b30: 8400001b strhi r0, [r0], #-27 + 9b34: 8c004009 stchi 0, cr4, [r0], {9} + 9b38: 09004009 stmdbeq r0, {r0, r3, lr} + 9b3c: e0010078 and r0, r1, r8, ror r0 + 9b40: a0101901 andsge r1, r0, r1, lsl #18 + 9b44: 2e000092 mcrcs 0, 0, r0, cr0, cr2, {4} + 9b48: 0000001b andeq r0, r0, fp, lsl r0 + 9b4c: 00000000 andeq r0, r0, r0 + 9b50: 00000114 andeq r0, r0, r4, lsl r1 + 9b54: 0b780003 bleq 1e09b68 + 9b58: 06040000 streq r0, [r4], -r0 + 9b5c: 445c3a43 ldrbmi r3, [ip], #-2627 + 9b60: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9b64: 73746e65 cmnvc r4, #1616 ; 0x650 + 9b68: 646e6120 strbtvs r6, [lr], #-288 + 9b6c: 74655320 strbtvc r5, [r5], #-800 + 9b70: 676e6974 undefined + 9b74: 616d5c73 smcvs 54723 + 9b78: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9b7c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9b80: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9b84: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9b88: 775c7374 undefined + 9b8c: 6f632d73 svcvs 0x00632d73 + 9b90: 6f72746e svcvs 0x0072746e + 9b94: 65575c6c ldrbvs r5, [r7, #-3180] + 9b98: 65687461 strbvs r7, [r8, #-1121]! + 9b9c: 74532072 ldrbvc r2, [r3], #-114 + 9ba0: 6f697461 svcvs 0x00697461 + 9ba4: 6f43206e svcvs 0x0043206e + 9ba8: 6f72746e svcvs 0x0072746e + 9bac: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9bb0: 7070415c rsbsvc r4, r0, ip, asr r1 + 9bb4: 6163696c cmnvs r3, ip, ror #18 + 9bb8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9bbc: 756f535c strbvc r5, [pc, #-860]! ; 9868 + 9bc0: 5c656372 stclpl 3, cr6, [r5], #-456 + 9bc4: 74616577 strbtvc r6, [r1], #-1399 + 9bc8: 5f726568 svcpl 0x00726568 + 9bcc: 74617473 strbtvc r7, [r1], #-1139 + 9bd0: 5f6e6f69 svcpl 0x006e6f69 + 9bd4: 746e6f63 strbtvc r6, [lr], #-3939 + 9bd8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 9bdc: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 9be0: 52414900 subpl r4, r1, #0 ; 0x0 + 9be4: 534e4120 movtpl r4, #57632 ; 0xe120 + 9be8: 2f432049 svccs 0x00432049 + 9bec: 202b2b43 eorcs r2, fp, r3, asr #22 + 9bf0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9bf4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 9bf8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9bfc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9c00: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9c04: 572f3539 undefined + 9c08: 4b203233 blmi 8164dc + 9c0c: 534b4349 movtpl r4, #45897 ; 0xb349 + 9c10: 54524154 ldrbpl r4, [r2], #-340 + 9c14: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 9c18: 4d524120 ldfmie f4, [r2, #-128] + 9c1c: 098c0100 stmibeq ip, {r8} + 9c20: 09a80040 stmibeq r8!, {r6} + 9c24: 605c0040 subsvs r0, ip, r0, asr #32 + 9c28: 2e5a0000 cdpcs 0, 5, cr0, cr10, cr0, {0} + 9c2c: 13100000 tstne r0, #0 ; 0x0 + 9c30: 0800008c stmdaeq r0, {r2, r3, r7} + 9c34: 00000114 andeq r0, r0, r4, lsl r1 + 9c38: 5f747570 svcpl 0x00747570 + 9c3c: 33786568 cmncc r8, #436207616 ; 0x1a000000 + 9c40: e6010032 undefined + 9c44: 41010601 tstmi r1, r1, lsl #12 + 9c48: 8c00001b stchi 0, cr0, [r0], {27} + 9c4c: a8004009 stmdage r0, {r0, r3, lr} + 9c50: 09004009 stmdbeq r0, {r0, r3, lr} + 9c54: e6010078 undefined + 9c58: b0101901 andslt r1, r0, r1, lsl #18 + 9c5c: 61000092 swpvs r0, r2, [r0] + 9c60: 0000001b andeq r0, r0, fp, lsl r0 + 9c64: 00000000 andeq r0, r0, r0 + 9c68: 000000e0 andeq r0, r0, r0, ror #1 + 9c6c: 0b780003 bleq 1e09c80 + 9c70: 06040000 streq r0, [r4], -r0 + 9c74: 445c3a43 ldrbmi r3, [ip], #-2627 + 9c78: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9c7c: 73746e65 cmnvc r4, #1616 ; 0x650 + 9c80: 646e6120 strbtvs r6, [lr], #-288 + 9c84: 74655320 strbtvc r5, [r5], #-800 + 9c88: 676e6974 undefined + 9c8c: 616d5c73 smcvs 54723 + 9c90: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9c94: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9c98: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9c9c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9ca0: 775c7374 undefined + 9ca4: 6f632d73 svcvs 0x00632d73 + 9ca8: 6f72746e svcvs 0x0072746e + 9cac: 65575c6c ldrbvs r5, [r7, #-3180] + 9cb0: 65687461 strbvs r7, [r8, #-1121]! + 9cb4: 74532072 ldrbvc r2, [r3], #-114 + 9cb8: 6f697461 svcvs 0x00697461 + 9cbc: 6f43206e svcvs 0x0043206e + 9cc0: 6f72746e svcvs 0x0072746e + 9cc4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9cc8: 7070415c rsbsvc r4, r0, ip, asr r1 + 9ccc: 6163696c cmnvs r3, ip, ror #18 + 9cd0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9cd4: 756f535c strbvc r5, [pc, #-860]! ; 9980 + 9cd8: 5c656372 stclpl 3, cr6, [r5], #-456 + 9cdc: 74616577 strbtvc r6, [r1], #-1399 + 9ce0: 5f726568 svcpl 0x00726568 + 9ce4: 74617473 strbtvc r7, [r1], #-1139 + 9ce8: 5f6e6f69 svcpl 0x006e6f69 + 9cec: 746e6f63 strbtvc r6, [lr], #-3939 + 9cf0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 9cf4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 9cf8: 52414900 subpl r4, r1, #0 ; 0x0 + 9cfc: 534e4120 movtpl r4, #57632 ; 0xe120 + 9d00: 2f432049 svccs 0x00432049 + 9d04: 202b2b43 eorcs r2, fp, r3, asr #22 + 9d08: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9d0c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 9d10: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9d14: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9d18: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9d1c: 572f3539 undefined + 9d20: 4b203233 blmi 8165f4 + 9d24: 534b4349 movtpl r4, #45897 ; 0xb349 + 9d28: 54524154 ldrbpl r4, [r2], #-340 + 9d2c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 9d30: 4d524120 ldfmie f4, [r2, #-128] + 9d34: 09a80100 stmibeq r8!, {r8} + 9d38: 09bc0040 ldmibeq ip!, {r6} + 9d3c: 611c0040 tstvs ip, r0, asr #32 + 9d40: 2ed70000 cdpcs 0, 13, cr0, cr7, cr0, {0} + 9d44: 13100000 tstne r0, #0 ; 0x0 + 9d48: 0000008c andeq r0, r0, ip, lsl #1 + 9d4c: 00000144 andeq r0, r0, r4, asr #2 + 9d50: 0b780003 bleq 1e09d64 + 9d54: 06040000 streq r0, [r4], -r0 + 9d58: 445c3a43 ldrbmi r3, [ip], #-2627 + 9d5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9d60: 73746e65 cmnvc r4, #1616 ; 0x650 + 9d64: 646e6120 strbtvs r6, [lr], #-288 + 9d68: 74655320 strbtvc r5, [r5], #-800 + 9d6c: 676e6974 undefined + 9d70: 616d5c73 smcvs 54723 + 9d74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9d78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9d7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9d80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9d84: 775c7374 undefined + 9d88: 6f632d73 svcvs 0x00632d73 + 9d8c: 6f72746e svcvs 0x0072746e + 9d90: 65575c6c ldrbvs r5, [r7, #-3180] + 9d94: 65687461 strbvs r7, [r8, #-1121]! + 9d98: 74532072 ldrbvc r2, [r3], #-114 + 9d9c: 6f697461 svcvs 0x00697461 + 9da0: 6f43206e svcvs 0x0043206e + 9da4: 6f72746e svcvs 0x0072746e + 9da8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9dac: 7070415c rsbsvc r4, r0, ip, asr r1 + 9db0: 6163696c cmnvs r3, ip, ror #18 + 9db4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9db8: 756f535c strbvc r5, [pc, #-860]! ; 9a64 + 9dbc: 5c656372 stclpl 3, cr6, [r5], #-456 + 9dc0: 74616577 strbtvc r6, [r1], #-1399 + 9dc4: 5f726568 svcpl 0x00726568 + 9dc8: 74617473 strbtvc r7, [r1], #-1139 + 9dcc: 5f6e6f69 svcpl 0x006e6f69 + 9dd0: 746e6f63 strbtvc r6, [lr], #-3939 + 9dd4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 9dd8: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 9ddc: 52414900 subpl r4, r1, #0 ; 0x0 + 9de0: 534e4120 movtpl r4, #57632 ; 0xe120 + 9de4: 2f432049 svccs 0x00432049 + 9de8: 202b2b43 eorcs r2, fp, r3, asr #22 + 9dec: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9df0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 9df4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9df8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9dfc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9e00: 572f3539 undefined + 9e04: 4b203233 blmi 8166d8 + 9e08: 534b4349 movtpl r4, #45897 ; 0xb349 + 9e0c: 54524154 ldrbpl r4, [r2], #-340 + 9e10: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 9e14: 4d524120 ldfmie f4, [r2, #-128] + 9e18: 09bc0100 ldmibeq ip!, {r8} + 9e1c: 0a280040 beq a09f24 + 9e20: 61e40040 mvnvs r0, r0, asr #32 + 9e24: 2f7d0000 svccs 0x007d0000 + 9e28: 13100000 tstne r0, #0 ; 0x0 + 9e2c: 0800008c stmdaeq r0, {r2, r3, r7} + 9e30: 00000147 andeq r0, r0, r7, asr #2 + 9e34: 706d7564 rsbvc r7, sp, r4, ror #10 + 9e38: 6765725f undefined + 9e3c: ef010073 svc 0x00010073 + 9e40: 74010701 strvc r0, [r1], #-1793 + 9e44: bc00001b stclt 0, cr0, [r0], {27} + 9e48: 28004009 stmdacs r0, {r0, r3, lr} + 9e4c: 0900400a stmdbeq r0, {r1, r3, lr} + 9e50: 65736162 ldrbvs r6, [r3, #-354]! + 9e54: 01ef0100 mvneq r0, r0, lsl #2 + 9e58: 92b0101a adcsls r1, r0, #26 ; 0x1a + 9e5c: 1ba00000 blne fe809e64 + 9e60: 6c090000 stcvs 0, cr0, [r9], {0} + 9e64: 01006e65 tsteq r0, r5, ror #28 + 9e68: 102901ef eorne r0, r9, pc, ror #3 + 9e6c: 000092b0 strheq r9, [r0], -r0 + 9e70: 00001bbd strheq r1, [r0], -sp + 9e74: 0100690a tsteq r0, sl, lsl #18 + 9e78: 101801f0 ldrshne r0, [r8], -r0 + 9e7c: 00008d2c andeq r8, r0, ip, lsr #26 + 9e80: 00001bdb ldrdeq r1, [r0], -fp + 9e84: 0001460b andeq r4, r1, fp, lsl #12 + 9e88: 4009d400 andmi sp, r9, r0, lsl #8 + 9e8c: 400a0200 andmi r0, sl, r0, lsl #4 + 9e90: 00000000 andeq r0, r0, r0 + 9e94: 0000013c andeq r0, r0, ip, lsr r1 + 9e98: 0b780003 bleq 1e09eac + 9e9c: 06040000 streq r0, [r4], -r0 + 9ea0: 445c3a43 ldrbmi r3, [ip], #-2627 + 9ea4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9ea8: 73746e65 cmnvc r4, #1616 ; 0x650 + 9eac: 646e6120 strbtvs r6, [lr], #-288 + 9eb0: 74655320 strbtvc r5, [r5], #-800 + 9eb4: 676e6974 undefined + 9eb8: 616d5c73 smcvs 54723 + 9ebc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9ec0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9ec4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9ec8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9ecc: 775c7374 undefined + 9ed0: 6f632d73 svcvs 0x00632d73 + 9ed4: 6f72746e svcvs 0x0072746e + 9ed8: 65575c6c ldrbvs r5, [r7, #-3180] + 9edc: 65687461 strbvs r7, [r8, #-1121]! + 9ee0: 74532072 ldrbvc r2, [r3], #-114 + 9ee4: 6f697461 svcvs 0x00697461 + 9ee8: 6f43206e svcvs 0x0043206e + 9eec: 6f72746e svcvs 0x0072746e + 9ef0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9ef4: 7070415c rsbsvc r4, r0, ip, asr r1 + 9ef8: 6163696c cmnvs r3, ip, ror #18 + 9efc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9f00: 756f535c strbvc r5, [pc, #-860]! ; 9bac + 9f04: 5c656372 stclpl 3, cr6, [r5], #-456 + 9f08: 74616577 strbtvc r6, [r1], #-1399 + 9f0c: 5f726568 svcpl 0x00726568 + 9f10: 74617473 strbtvc r7, [r1], #-1139 + 9f14: 5f6e6f69 svcpl 0x006e6f69 + 9f18: 746e6f63 strbtvc r6, [lr], #-3939 + 9f1c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 9f20: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 9f24: 52414900 subpl r4, r1, #0 ; 0x0 + 9f28: 534e4120 movtpl r4, #57632 ; 0xe120 + 9f2c: 2f432049 svccs 0x00432049 + 9f30: 202b2b43 eorcs r2, fp, r3, asr #22 + 9f34: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9f38: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 9f3c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9f40: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9f44: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9f48: 572f3539 undefined + 9f4c: 4b203233 blmi 816820 + 9f50: 534b4349 movtpl r4, #45897 ; 0xb349 + 9f54: 54524154 ldrbpl r4, [r2], #-340 + 9f58: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 9f5c: 4d524120 ldfmie f4, [r2, #-128] + 9f60: 0a280100 beq a0a368 + 9f64: 0a540040 beq 150a06c + 9f68: 62c40040 sbcvs r0, r4, #64 ; 0x40 + 9f6c: 30530000 subscc r0, r3, r0 + 9f70: 13100000 tstne r0, #0 ; 0x0 + 9f74: 0800008c stmdaeq r0, {r2, r3, r7} + 9f78: 0000013f andeq r0, r0, pc, lsr r1 + 9f7c: 6e69614d powvsem f6, f1, #5.0 + 9f80: 028b0100 addeq r0, fp, #0 ; 0x0 + 9f84: 1bf90106 blne ffe4a3a4 + 9f88: 0a280000 beq a09f90 + 9f8c: 0a540040 beq 150a094 + 9f90: 640a0040 strvs r0, [sl], #-64 + 9f94: 54617461 strbtpl r7, [r1], #-1121 + 9f98: 8e010058 mcrhi 0, 0, r0, cr1, cr8, {2} + 9f9c: dc100b02 ldcle 11, cr0, [r0], {2} + 9fa0: 2600008f strcs r0, [r0], -pc, lsl #1 + 9fa4: 0a00001c beq a01c + 9fa8: 61746164 cmnvs r4, r4, ror #2 + 9fac: 01005852 tsteq r0, r2, asr r8 + 9fb0: 100b028f andne r0, fp, pc, lsl #5 + 9fb4: 00008fe9 andeq r8, r0, r9, ror #31 + 9fb8: 00001c3a andeq r1, r0, sl, lsr ip + 9fbc: 7461640a strbtvc r6, [r1], #-1034 + 9fc0: 4b434161 blmi 10da54c + 9fc4: 02900100 addseq r0, r0, #0 ; 0x0 + 9fc8: 8f9d100b svchi 0x009d100b + 9fcc: 1c4f0000 marne acc0, r0, pc + 9fd0: 00000000 andeq r0, r0, r0 + 9fd4: 00000110 andeq r0, r0, r0, lsl r1 + 9fd8: 0b780003 bleq 1e09fec + 9fdc: 06040000 streq r0, [r4], -r0 + 9fe0: 445c3a43 ldrbmi r3, [ip], #-2627 + 9fe4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9fe8: 73746e65 cmnvc r4, #1616 ; 0x650 + 9fec: 646e6120 strbtvs r6, [lr], #-288 + 9ff0: 74655320 strbtvc r5, [r5], #-800 + 9ff4: 676e6974 undefined + 9ff8: 616d5c73 smcvs 54723 + 9ffc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a000: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a004: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a008: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a00c: 775c7374 undefined + a010: 6f632d73 svcvs 0x00632d73 + a014: 6f72746e svcvs 0x0072746e + a018: 65575c6c ldrbvs r5, [r7, #-3180] + a01c: 65687461 strbvs r7, [r8, #-1121]! + a020: 74532072 ldrbvc r2, [r3], #-114 + a024: 6f697461 svcvs 0x00697461 + a028: 6f43206e svcvs 0x0043206e + a02c: 6f72746e svcvs 0x0072746e + a030: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a034: 7070415c rsbsvc r4, r0, ip, asr r1 + a038: 6163696c cmnvs r3, ip, ror #18 + a03c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a040: 756f535c strbvc r5, [pc, #-860]! ; 9cec + a044: 5c656372 stclpl 3, cr6, [r5], #-456 + a048: 74616577 strbtvc r6, [r1], #-1399 + a04c: 5f726568 svcpl 0x00726568 + a050: 74617473 strbtvc r7, [r1], #-1139 + a054: 5f6e6f69 svcpl 0x006e6f69 + a058: 746e6f63 strbtvc r6, [lr], #-3939 + a05c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a060: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a064: 52414900 subpl r4, r1, #0 ; 0x0 + a068: 534e4120 movtpl r4, #57632 ; 0xe120 + a06c: 2f432049 svccs 0x00432049 + a070: 202b2b43 eorcs r2, fp, r3, asr #22 + a074: 706d6f43 rsbvc r6, sp, r3, asr #30 + a078: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a07c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a080: 322e3033 eorcc r3, lr, #51 ; 0x33 + a084: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a088: 572f3539 undefined + a08c: 4b203233 blmi 816960 + a090: 534b4349 movtpl r4, #45897 ; 0xb349 + a094: 54524154 ldrbpl r4, [r2], #-340 + a098: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a09c: 4d524120 ldfmie f4, [r2, #-128] + a0a0: 0a580100 beq 160a4a8 + a0a4: 0c4c0040 mcrreq 0, 4, r0, ip, cr0 + a0a8: 63900040 orrsvs r0, r0, #64 ; 0x40 + a0ac: 30d60000 sbcscc r0, r6, r0 + a0b0: 13100000 tstne r0, #0 ; 0x0 + a0b4: 0800008c stmdaeq r0, {r2, r3, r7} + a0b8: 00000113 andeq r0, r0, r3, lsl r1 + a0bc: 74616577 strbtvc r6, [r1], #-1399 + a0c0: 5f726568 svcpl 0x00726568 + a0c4: 74617473 strbtvc r7, [r1], #-1139 + a0c8: 5f6e6f69 svcpl 0x006e6f69 + a0cc: 5f707061 svcpl 0x00707061 + a0d0: 74696e69 strbtvc r6, [r9], #-3689 + a0d4: 02ab0100 adceq r0, fp, #0 ; 0x0 + a0d8: 1c640106 stfnee f0, [r4], #-24 + a0dc: 0a580000 beq 160a0e4 + a0e0: 0c4c0040 mcrreq 0, 4, r0, ip, cr0 + a0e4: 00000040 andeq r0, r0, r0, asr #32 + a0e8: 00000110 andeq r0, r0, r0, lsl r1 + a0ec: 0b780003 bleq 1e0a100 + a0f0: 06040000 streq r0, [r4], -r0 + a0f4: 445c3a43 ldrbmi r3, [ip], #-2627 + a0f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a0fc: 73746e65 cmnvc r4, #1616 ; 0x650 + a100: 646e6120 strbtvs r6, [lr], #-288 + a104: 74655320 strbtvc r5, [r5], #-800 + a108: 676e6974 undefined + a10c: 616d5c73 smcvs 54723 + a110: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a114: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a118: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a11c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a120: 775c7374 undefined + a124: 6f632d73 svcvs 0x00632d73 + a128: 6f72746e svcvs 0x0072746e + a12c: 65575c6c ldrbvs r5, [r7, #-3180] + a130: 65687461 strbvs r7, [r8, #-1121]! + a134: 74532072 ldrbvc r2, [r3], #-114 + a138: 6f697461 svcvs 0x00697461 + a13c: 6f43206e svcvs 0x0043206e + a140: 6f72746e svcvs 0x0072746e + a144: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a148: 7070415c rsbsvc r4, r0, ip, asr r1 + a14c: 6163696c cmnvs r3, ip, ror #18 + a150: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a154: 756f535c strbvc r5, [pc, #-860]! ; 9e00 + a158: 5c656372 stclpl 3, cr6, [r5], #-456 + a15c: 74616577 strbtvc r6, [r1], #-1399 + a160: 5f726568 svcpl 0x00726568 + a164: 74617473 strbtvc r7, [r1], #-1139 + a168: 5f6e6f69 svcpl 0x006e6f69 + a16c: 746e6f63 strbtvc r6, [lr], #-3939 + a170: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a174: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a178: 52414900 subpl r4, r1, #0 ; 0x0 + a17c: 534e4120 movtpl r4, #57632 ; 0xe120 + a180: 2f432049 svccs 0x00432049 + a184: 202b2b43 eorcs r2, fp, r3, asr #22 + a188: 706d6f43 rsbvc r6, sp, r3, asr #30 + a18c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a190: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a194: 322e3033 eorcc r3, lr, #51 ; 0x33 + a198: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a19c: 572f3539 undefined + a1a0: 4b203233 blmi 816a74 + a1a4: 534b4349 movtpl r4, #45897 ; 0xb349 + a1a8: 54524154 ldrbpl r4, [r2], #-340 + a1ac: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a1b0: 4d524120 ldfmie f4, [r2, #-128] + a1b4: 0c500100 ldfeqe f0, [r0], {0} + a1b8: 0c780040 ldcleq 0, cr0, [r8], #-256 + a1bc: 64ac0040 strtvs r0, [ip], #64 + a1c0: 344a0000 strbcc r0, [sl] + a1c4: 13100000 tstne r0, #0 ; 0x0 + a1c8: 0800008c stmdaeq r0, {r2, r3, r7} + a1cc: 00000110 andeq r0, r0, r0, lsl r1 + a1d0: 74616577 strbtvc r6, [r1], #-1399 + a1d4: 5f726568 svcpl 0x00726568 + a1d8: 74617473 strbtvc r7, [r1], #-1139 + a1dc: 5f6e6f69 svcpl 0x006e6f69 + a1e0: 635f7872 cmpvs pc, #7471104 ; 0x720000 + a1e4: 96010062 strls r0, [r1], -r2, rrx + a1e8: 90010603 andls r0, r1, r3, lsl #12 + a1ec: 5000001c andpl r0, r0, ip, lsl r0 + a1f0: 7800400c stmdavc r0, {r2, r3, lr} + a1f4: 0000400c andeq r4, r0, ip + a1f8: 00000000 andeq r0, r0, r0 + a1fc: 000001d4 ldrdeq r0, [r0], -r4 + a200: 0b780003 bleq 1e0a214 + a204: 06040000 streq r0, [r4], -r0 + a208: 445c3a43 ldrbmi r3, [ip], #-2627 + a20c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a210: 73746e65 cmnvc r4, #1616 ; 0x650 + a214: 646e6120 strbtvs r6, [lr], #-288 + a218: 74655320 strbtvc r5, [r5], #-800 + a21c: 676e6974 undefined + a220: 616d5c73 smcvs 54723 + a224: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a228: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a22c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a230: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a234: 775c7374 undefined + a238: 6f632d73 svcvs 0x00632d73 + a23c: 6f72746e svcvs 0x0072746e + a240: 65575c6c ldrbvs r5, [r7, #-3180] + a244: 65687461 strbvs r7, [r8, #-1121]! + a248: 74532072 ldrbvc r2, [r3], #-114 + a24c: 6f697461 svcvs 0x00697461 + a250: 6f43206e svcvs 0x0043206e + a254: 6f72746e svcvs 0x0072746e + a258: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a25c: 7070415c rsbsvc r4, r0, ip, asr r1 + a260: 6163696c cmnvs r3, ip, ror #18 + a264: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a268: 756f535c strbvc r5, [pc, #-860]! ; 9f14 + a26c: 5c656372 stclpl 3, cr6, [r5], #-456 + a270: 74616577 strbtvc r6, [r1], #-1399 + a274: 5f726568 svcpl 0x00726568 + a278: 74617473 strbtvc r7, [r1], #-1139 + a27c: 5f6e6f69 svcpl 0x006e6f69 + a280: 746e6f63 strbtvc r6, [lr], #-3939 + a284: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a288: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a28c: 52414900 subpl r4, r1, #0 ; 0x0 + a290: 534e4120 movtpl r4, #57632 ; 0xe120 + a294: 2f432049 svccs 0x00432049 + a298: 202b2b43 eorcs r2, fp, r3, asr #22 + a29c: 706d6f43 rsbvc r6, sp, r3, asr #30 + a2a0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a2a4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a2a8: 322e3033 eorcc r3, lr, #51 ; 0x33 + a2ac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a2b0: 572f3539 undefined + a2b4: 4b203233 blmi 816b88 + a2b8: 534b4349 movtpl r4, #45897 ; 0xb349 + a2bc: 54524154 ldrbpl r4, [r2], #-340 + a2c0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a2c4: 4d524120 ldfmie f4, [r2, #-128] + a2c8: 0c780100 ldfeqe f0, [r8] + a2cc: 0e240040 cdpeq 0, 2, cr0, cr4, cr0, {2} + a2d0: 65740040 ldrbvs r0, [r4, #-64]! + a2d4: 34ab0000 strtcc r0, [fp] + a2d8: 13100000 tstne r0, #0 ; 0x0 + a2dc: 0800008c stmdaeq r0, {r2, r3, r7} + a2e0: 000001d6 ldrdeq r0, [r0], -r6 + a2e4: 74616577 strbtvc r6, [r1], #-1399 + a2e8: 5f726568 svcpl 0x00726568 + a2ec: 746e6f63 strbtvc r6, [lr], #-3939 + a2f0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a2f4: 705f7265 subsvc r7, pc, r5, ror #4 + a2f8: 65636f72 strbvs r6, [r3, #-3954]! + a2fc: 01007373 tsteq r0, r3, ror r3 + a300: 010603a8 smlatbeq r6, r8, r3, r0 + a304: 00001ca4 andeq r1, r0, r4, lsr #25 + a308: 00400c78 subeq r0, r0, r8, ror ip + a30c: 00400e24 subeq r0, r0, r4, lsr #28 + a310: 41387504 teqmi r8, r4, lsl #10 + a314: 74537070 ldrbvc r7, [r3], #-112 + a318: 00657461 rsbeq r7, r5, r1, ror #8 + a31c: 00922810 addseq r2, r2, r0, lsl r8 + a320: 03aa0100 undefined instruction 0x03aa0100 + a324: 03050026 movweq r0, #20518 ; 0x5026 + a328: 0040525f subeq r5, r0, pc, asr r2 + a32c: 5438750a ldrtpl r7, [r8], #-1290 + a330: 44706d65 ldrbtmi r6, [r0], #-3429 + a334: 00617461 rsbeq r7, r1, r1, ror #8 + a338: 0b03ab01 bleq f4f44 + a33c: 008fb710 addeq fp, pc, r0, lsl r7 + a340: 001d0000 andseq r0, sp, r0 + a344: 01d50b00 bicseq r0, r5, r0, lsl #22 + a348: 0c900000 ldceq 0, cr0, [r0], {0} + a34c: 0e120040 cdpeq 0, 1, cr0, cr2, cr0, {2} + a350: 720b0040 andvc r0, fp, #64 ; 0x40 + a354: 98000001 stmdals r0, {r0} + a358: ba00400c blt 1a390 + a35c: 0b00400c bleq 1a394 + a360: 00000171 andeq r0, r0, r1, ror r1 + a364: 00400ca0 subeq r0, r0, r0, lsr #25 + a368: 00400cba strheq r0, [r0], #-202 + a36c: 800b0000 andhi r0, fp, r0 + a370: e6000001 str r0, [r0], -r1 + a374: 0c00400c stceq 0, cr4, [r0], {12} + a378: 0000400d andeq r4, r0, sp + a37c: 00018e0b andeq r8, r1, fp, lsl #28 + a380: 400d1400 andmi r1, sp, r0, lsl #8 + a384: 400d3200 andmi r3, sp, r0, lsl #4 + a388: 9c0b0000 stcls 0, cr0, [fp], {0} + a38c: 38000001 stmdacc r0, {r0} + a390: 5400400d strpl r4, [r0], #-13 + a394: 0000400d andeq r4, r0, sp + a398: 0001d40b andeq sp, r1, fp, lsl #8 + a39c: 400d6800 andmi r6, sp, r0, lsl #16 + a3a0: 400e1200 andmi r1, lr, r0, lsl #4 + a3a4: 01b70b00 undefined instruction 0x01b70b00 + a3a8: 0da40000 stceq 0, cr0, [r4] + a3ac: 0dca0040 stcleq 0, cr0, [sl, #256] + a3b0: 0b000040 bleq a4b8 + a3b4: 000001c5 andeq r0, r0, r5, asr #3 + a3b8: 00400dca subeq r0, r0, sl, asr #27 + a3bc: 00400df2 strdeq r0, [r0], #-210 + a3c0: 01d30b00 bicseq r0, r3, r0, lsl #22 + a3c4: 0df20000 ldcleq 0, cr0, [r2] + a3c8: 0e120040 cdpeq 0, 1, cr0, cr2, cr0, {2} + a3cc: 00000040 andeq r0, r0, r0, asr #32 + a3d0: 00000000 andeq r0, r0, r0 + a3d4: 00000118 andeq r0, r0, r8, lsl r1 + a3d8: 0b780003 bleq 1e0a3ec + a3dc: 06040000 streq r0, [r4], -r0 + a3e0: 445c3a43 ldrbmi r3, [ip], #-2627 + a3e4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a3e8: 73746e65 cmnvc r4, #1616 ; 0x650 + a3ec: 646e6120 strbtvs r6, [lr], #-288 + a3f0: 74655320 strbtvc r5, [r5], #-800 + a3f4: 676e6974 undefined + a3f8: 616d5c73 smcvs 54723 + a3fc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a400: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a404: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a408: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a40c: 775c7374 undefined + a410: 6f632d73 svcvs 0x00632d73 + a414: 6f72746e svcvs 0x0072746e + a418: 65575c6c ldrbvs r5, [r7, #-3180] + a41c: 65687461 strbvs r7, [r8, #-1121]! + a420: 74532072 ldrbvc r2, [r3], #-114 + a424: 6f697461 svcvs 0x00697461 + a428: 6f43206e svcvs 0x0043206e + a42c: 6f72746e svcvs 0x0072746e + a430: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a434: 7070415c rsbsvc r4, r0, ip, asr r1 + a438: 6163696c cmnvs r3, ip, ror #18 + a43c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a440: 756f535c strbvc r5, [pc, #-860]! ; a0ec + a444: 5c656372 stclpl 3, cr6, [r5], #-456 + a448: 74616577 strbtvc r6, [r1], #-1399 + a44c: 5f726568 svcpl 0x00726568 + a450: 74617473 strbtvc r7, [r1], #-1139 + a454: 5f6e6f69 svcpl 0x006e6f69 + a458: 746e6f63 strbtvc r6, [lr], #-3939 + a45c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a460: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a464: 52414900 subpl r4, r1, #0 ; 0x0 + a468: 534e4120 movtpl r4, #57632 ; 0xe120 + a46c: 2f432049 svccs 0x00432049 + a470: 202b2b43 eorcs r2, fp, r3, asr #22 + a474: 706d6f43 rsbvc r6, sp, r3, asr #30 + a478: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a47c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a480: 322e3033 eorcc r3, lr, #51 ; 0x33 + a484: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a488: 572f3539 undefined + a48c: 4b203233 blmi 816d60 + a490: 534b4349 movtpl r4, #45897 ; 0xb349 + a494: 54524154 ldrbpl r4, [r2], #-340 + a498: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a49c: 4d524120 ldfmie f4, [r2, #-128] + a4a0: 0e240100 sufeqs f0, f4, f0 + a4a4: 0e380040 cdpeq 0, 3, cr0, cr8, cr0, {2} + a4a8: 66b80040 ldrtvs r0, [r8], r0, asr #32 + a4ac: 368b0000 strcc r0, [fp], r0 + a4b0: 13100000 tstne r0, #0 ; 0x0 + a4b4: 0800008c stmdaeq r0, {r2, r3, r7} + a4b8: 00000118 andeq r0, r0, r8, lsl r1 + a4bc: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + a4c0: 6d5f6567 cfldr64vs mvdx6, [pc, #-412] + a4c4: 75736165 ldrbvc r6, [r3, #-357]! + a4c8: 656d6572 strbvs r6, [sp, #-1394]! + a4cc: 735f746e cmpvc pc, #1845493760 ; 0x6e000000 + a4d0: 65747379 ldrbvs r7, [r4, #-889]! + a4d4: 73695f6d cmnvc r9, #436 ; 0x1b4 + a4d8: da010072 ble 4a6a8 + a4dc: 4a010604 bmi 4bcf4 + a4e0: 2400001d strcs r0, [r0], #-29 + a4e4: 3800400e stmdacc r0, {r1, r2, r3, lr} + a4e8: 0000400e andeq r4, r0, lr + a4ec: 00000000 andeq r0, r0, r0 + a4f0: 0000010c andeq r0, r0, ip, lsl #2 + a4f4: 0b780003 bleq 1e0a508 + a4f8: 06040000 streq r0, [r4], -r0 + a4fc: 445c3a43 ldrbmi r3, [ip], #-2627 + a500: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a504: 73746e65 cmnvc r4, #1616 ; 0x650 + a508: 646e6120 strbtvs r6, [lr], #-288 + a50c: 74655320 strbtvc r5, [r5], #-800 + a510: 676e6974 undefined + a514: 616d5c73 smcvs 54723 + a518: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a51c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a520: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a524: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a528: 775c7374 undefined + a52c: 6f632d73 svcvs 0x00632d73 + a530: 6f72746e svcvs 0x0072746e + a534: 65575c6c ldrbvs r5, [r7, #-3180] + a538: 65687461 strbvs r7, [r8, #-1121]! + a53c: 74532072 ldrbvc r2, [r3], #-114 + a540: 6f697461 svcvs 0x00697461 + a544: 6f43206e svcvs 0x0043206e + a548: 6f72746e svcvs 0x0072746e + a54c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a550: 7070415c rsbsvc r4, r0, ip, asr r1 + a554: 6163696c cmnvs r3, ip, ror #18 + a558: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a55c: 756f535c strbvc r5, [pc, #-860]! ; a208 + a560: 5c656372 stclpl 3, cr6, [r5], #-456 + a564: 74616577 strbtvc r6, [r1], #-1399 + a568: 5f726568 svcpl 0x00726568 + a56c: 74617473 strbtvc r7, [r1], #-1139 + a570: 5f6e6f69 svcpl 0x006e6f69 + a574: 746e6f63 strbtvc r6, [lr], #-3939 + a578: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a57c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a580: 52414900 subpl r4, r1, #0 ; 0x0 + a584: 534e4120 movtpl r4, #57632 ; 0xe120 + a588: 2f432049 svccs 0x00432049 + a58c: 202b2b43 eorcs r2, fp, r3, asr #22 + a590: 706d6f43 rsbvc r6, sp, r3, asr #30 + a594: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a598: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a59c: 322e3033 eorcc r3, lr, #51 ; 0x33 + a5a0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a5a4: 572f3539 undefined + a5a8: 4b203233 blmi 816e7c + a5ac: 534b4349 movtpl r4, #45897 ; 0xb349 + a5b0: 54524154 ldrbpl r4, [r2], #-340 + a5b4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a5b8: 4d524120 ldfmie f4, [r2, #-128] + a5bc: 0e380100 rsfeqe f0, f0, f0 + a5c0: 0e480040 cdpeq 0, 4, cr0, cr8, cr0, {2} + a5c4: 67780040 ldrbvs r0, [r8, -r0, asr #32]! + a5c8: 37000000 strcc r0, [r0, -r0] + a5cc: 13100000 tstne r0, #0 ; 0x0 + a5d0: 0800008c stmdaeq r0, {r2, r3, r7} + a5d4: 0000010d andeq r0, r0, sp, lsl #2 + a5d8: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + a5dc: 645f6567 ldrbvs r6, [pc], #1383 ; a5e4 + a5e0: 6c707369 ldclvs 3, cr7, [r0], #-420 + a5e4: 695f7961 ldmdbvs pc, {r0, r5, r6, r8, fp, ip, sp, lr}^ + a5e8: 01007273 tsteq r0, r3, ror r2 + a5ec: 010604e6 smlatteq r6, r6, r4, r0 + a5f0: 00001d6a andeq r1, r0, sl, ror #26 + a5f4: 00400e38 subeq r0, r0, r8, lsr lr + a5f8: 00400e48 subeq r0, r0, r8, asr #28 + a5fc: 00000000 andeq r0, r0, r0 + a600: 000000e0 andeq r0, r0, r0, ror #1 + a604: 0b780003 bleq 1e0a618 + a608: 06040000 streq r0, [r4], -r0 + a60c: 445c3a43 ldrbmi r3, [ip], #-2627 + a610: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a614: 73746e65 cmnvc r4, #1616 ; 0x650 + a618: 646e6120 strbtvs r6, [lr], #-288 + a61c: 74655320 strbtvc r5, [r5], #-800 + a620: 676e6974 undefined + a624: 616d5c73 smcvs 54723 + a628: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a62c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a630: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a634: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a638: 775c7374 undefined + a63c: 6f632d73 svcvs 0x00632d73 + a640: 6f72746e svcvs 0x0072746e + a644: 65575c6c ldrbvs r5, [r7, #-3180] + a648: 65687461 strbvs r7, [r8, #-1121]! + a64c: 74532072 ldrbvc r2, [r3], #-114 + a650: 6f697461 svcvs 0x00697461 + a654: 6f43206e svcvs 0x0043206e + a658: 6f72746e svcvs 0x0072746e + a65c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a660: 7070415c rsbsvc r4, r0, ip, asr r1 + a664: 6163696c cmnvs r3, ip, ror #18 + a668: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a66c: 756f535c strbvc r5, [pc, #-860]! ; a318 + a670: 5c656372 stclpl 3, cr6, [r5], #-456 + a674: 74616577 strbtvc r6, [r1], #-1399 + a678: 5f726568 svcpl 0x00726568 + a67c: 74617473 strbtvc r7, [r1], #-1139 + a680: 5f6e6f69 svcpl 0x006e6f69 + a684: 746e6f63 strbtvc r6, [lr], #-3939 + a688: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a68c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a690: 52414900 subpl r4, r1, #0 ; 0x0 + a694: 534e4120 movtpl r4, #57632 ; 0xe120 + a698: 2f432049 svccs 0x00432049 + a69c: 202b2b43 eorcs r2, fp, r3, asr #22 + a6a0: 706d6f43 rsbvc r6, sp, r3, asr #30 + a6a4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a6a8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a6ac: 322e3033 eorcc r3, lr, #51 ; 0x33 + a6b0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a6b4: 572f3539 undefined + a6b8: 4b203233 blmi 816f8c + a6bc: 534b4349 movtpl r4, #45897 ; 0xb349 + a6c0: 54524154 ldrbpl r4, [r2], #-340 + a6c4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a6c8: 4d524120 ldfmie f4, [r2, #-128] + a6cc: 0e480100 dvfeqe f0, f0, f0 + a6d0: 0e4c0040 cdpeq 0, 4, cr0, cr12, cr0, {2} + a6d4: 68380040 ldmdavs r8!, {r6} + a6d8: 37750000 ldrbcc r0, [r5, -r0]! + a6dc: 13100000 tstne r0, #0 ; 0x0 + a6e0: 0000008c andeq r0, r0, ip, lsl #1 + a6e4: 0000010c andeq r0, r0, ip, lsl #2 + a6e8: 0b780003 bleq 1e0a6fc + a6ec: 06040000 streq r0, [r4], -r0 + a6f0: 445c3a43 ldrbmi r3, [ip], #-2627 + a6f4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a6f8: 73746e65 cmnvc r4, #1616 ; 0x650 + a6fc: 646e6120 strbtvs r6, [lr], #-288 + a700: 74655320 strbtvc r5, [r5], #-800 + a704: 676e6974 undefined + a708: 616d5c73 smcvs 54723 + a70c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a710: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a714: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a718: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a71c: 775c7374 undefined + a720: 6f632d73 svcvs 0x00632d73 + a724: 6f72746e svcvs 0x0072746e + a728: 65575c6c ldrbvs r5, [r7, #-3180] + a72c: 65687461 strbvs r7, [r8, #-1121]! + a730: 74532072 ldrbvc r2, [r3], #-114 + a734: 6f697461 svcvs 0x00697461 + a738: 6f43206e svcvs 0x0043206e + a73c: 6f72746e svcvs 0x0072746e + a740: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a744: 7070415c rsbsvc r4, r0, ip, asr r1 + a748: 6163696c cmnvs r3, ip, ror #18 + a74c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a750: 756f535c strbvc r5, [pc, #-860]! ; a3fc + a754: 5c656372 stclpl 3, cr6, [r5], #-456 + a758: 74616577 strbtvc r6, [r1], #-1399 + a75c: 5f726568 svcpl 0x00726568 + a760: 74617473 strbtvc r7, [r1], #-1139 + a764: 5f6e6f69 svcpl 0x006e6f69 + a768: 746e6f63 strbtvc r6, [lr], #-3939 + a76c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a770: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a774: 52414900 subpl r4, r1, #0 ; 0x0 + a778: 534e4120 movtpl r4, #57632 ; 0xe120 + a77c: 2f432049 svccs 0x00432049 + a780: 202b2b43 eorcs r2, fp, r3, asr #22 + a784: 706d6f43 rsbvc r6, sp, r3, asr #30 + a788: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a78c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a790: 322e3033 eorcc r3, lr, #51 ; 0x33 + a794: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a798: 572f3539 undefined + a79c: 4b203233 blmi 817070 + a7a0: 534b4349 movtpl r4, #45897 ; 0xb349 + a7a4: 54524154 ldrbpl r4, [r2], #-340 + a7a8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a7ac: 4d524120 ldfmie f4, [r2, #-128] + a7b0: 0e580100 rdfeqe f0, f0, f0 + a7b4: 0e6c0040 cdpeq 0, 6, cr0, cr12, cr0, {2} + a7b8: 68fc0040 ldmvs ip!, {r6}^ + a7bc: 38660000 stmdacc r6!, {}^ + a7c0: 13100000 tstne r0, #0 ; 0x0 + a7c4: 0800008c stmdaeq r0, {r2, r3, r7} + a7c8: 0000010d andeq r0, r0, sp, lsl #2 + a7cc: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + a7d0: 635f6567 cmpvs pc, #432013312 ; 0x19c00000 + a7d4: 6e6e6168 powvsez f6, f6, #0.0 + a7d8: 695f6c65 ldmdbvs pc, {r0, r2, r5, r6, sl, fp, sp, lr}^ + a7dc: 01007273 tsteq r0, r3, ror r2 + a7e0: 010604f2 strdeq r0, [r6, -r2] + a7e4: 00001d8a andeq r1, r0, sl, lsl #27 + a7e8: 00400e58 subeq r0, r0, r8, asr lr + a7ec: 00400e6c subeq r0, r0, ip, ror #28 + a7f0: 00000000 andeq r0, r0, r0 + a7f4: 00000110 andeq r0, r0, r0, lsl r1 + a7f8: 0b780003 bleq 1e0a80c + a7fc: 06040000 streq r0, [r4], -r0 + a800: 445c3a43 ldrbmi r3, [ip], #-2627 + a804: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a808: 73746e65 cmnvc r4, #1616 ; 0x650 + a80c: 646e6120 strbtvs r6, [lr], #-288 + a810: 74655320 strbtvc r5, [r5], #-800 + a814: 676e6974 undefined + a818: 616d5c73 smcvs 54723 + a81c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a820: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a824: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a828: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a82c: 775c7374 undefined + a830: 6f632d73 svcvs 0x00632d73 + a834: 6f72746e svcvs 0x0072746e + a838: 65575c6c ldrbvs r5, [r7, #-3180] + a83c: 65687461 strbvs r7, [r8, #-1121]! + a840: 74532072 ldrbvc r2, [r3], #-114 + a844: 6f697461 svcvs 0x00697461 + a848: 6f43206e svcvs 0x0043206e + a84c: 6f72746e svcvs 0x0072746e + a850: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a854: 7070415c rsbsvc r4, r0, ip, asr r1 + a858: 6163696c cmnvs r3, ip, ror #18 + a85c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a860: 756f535c strbvc r5, [pc, #-860]! ; a50c + a864: 5c656372 stclpl 3, cr6, [r5], #-456 + a868: 74616577 strbtvc r6, [r1], #-1399 + a86c: 5f726568 svcpl 0x00726568 + a870: 74617473 strbtvc r7, [r1], #-1139 + a874: 5f6e6f69 svcpl 0x006e6f69 + a878: 746e6f63 strbtvc r6, [lr], #-3939 + a87c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a880: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a884: 52414900 subpl r4, r1, #0 ; 0x0 + a888: 534e4120 movtpl r4, #57632 ; 0xe120 + a88c: 2f432049 svccs 0x00432049 + a890: 202b2b43 eorcs r2, fp, r3, asr #22 + a894: 706d6f43 rsbvc r6, sp, r3, asr #30 + a898: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a89c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a8a0: 322e3033 eorcc r3, lr, #51 ; 0x33 + a8a4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a8a8: 572f3539 undefined + a8ac: 4b203233 blmi 817180 + a8b0: 534b4349 movtpl r4, #45897 ; 0xb349 + a8b4: 54524154 ldrbpl r4, [r2], #-340 + a8b8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a8bc: 4d524120 ldfmie f4, [r2, #-128] + a8c0: 0e6c0100 poweqe f0, f4, f0 + a8c4: 0e800040 cdpeq 0, 8, cr0, cr0, cr0, {2} + a8c8: 69bc0040 ldmibvs ip!, {r6} + a8cc: 38db0000 ldmcc fp, {}^ + a8d0: 13100000 tstne r0, #0 ; 0x0 + a8d4: 0800008c stmdaeq r0, {r2, r3, r7} + a8d8: 00000110 andeq r0, r0, r0, lsl r1 + a8dc: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + a8e0: 625f6567 subsvs r6, pc, #432013312 ; 0x19c00000 + a8e4: 5f6b6361 svcpl 0x006b6361 + a8e8: 6867696c stmdavs r7!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + a8ec: 73695f74 cmnvc r9, #464 ; 0x1d0 + a8f0: fe010072 mcr2 0, 0, r0, cr1, cr2, {3} + a8f4: aa010604 bge 4c10c + a8f8: 6c00001d stcvs 0, cr0, [r0], {29} + a8fc: 8000400e andhi r4, r0, lr + a900: 0000400e andeq r4, r0, lr + a904: 00000000 andeq r0, r0, r0 + a908: 000001c0 andeq r0, r0, r0, asr #3 + a90c: 0b780003 bleq 1e0a920 + a910: 06040000 streq r0, [r4], -r0 + a914: 445c3a43 ldrbmi r3, [ip], #-2627 + a918: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a91c: 73746e65 cmnvc r4, #1616 ; 0x650 + a920: 646e6120 strbtvs r6, [lr], #-288 + a924: 74655320 strbtvc r5, [r5], #-800 + a928: 676e6974 undefined + a92c: 616d5c73 smcvs 54723 + a930: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a934: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a938: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a93c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a940: 775c7374 undefined + a944: 6f632d73 svcvs 0x00632d73 + a948: 6f72746e svcvs 0x0072746e + a94c: 65575c6c ldrbvs r5, [r7, #-3180] + a950: 65687461 strbvs r7, [r8, #-1121]! + a954: 74532072 ldrbvc r2, [r3], #-114 + a958: 6f697461 svcvs 0x00697461 + a95c: 6f43206e svcvs 0x0043206e + a960: 6f72746e svcvs 0x0072746e + a964: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a968: 7070415c rsbsvc r4, r0, ip, asr r1 + a96c: 6163696c cmnvs r3, ip, ror #18 + a970: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a974: 756f535c strbvc r5, [pc, #-860]! ; a620 + a978: 5c656372 stclpl 3, cr6, [r5], #-456 + a97c: 74616577 strbtvc r6, [r1], #-1399 + a980: 5f726568 svcpl 0x00726568 + a984: 74617473 strbtvc r7, [r1], #-1139 + a988: 5f6e6f69 svcpl 0x006e6f69 + a98c: 746e6f63 strbtvc r6, [lr], #-3939 + a990: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a994: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a998: 52414900 subpl r4, r1, #0 ; 0x0 + a99c: 534e4120 movtpl r4, #57632 ; 0xe120 + a9a0: 2f432049 svccs 0x00432049 + a9a4: 202b2b43 eorcs r2, fp, r3, asr #22 + a9a8: 706d6f43 rsbvc r6, sp, r3, asr #30 + a9ac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a9b0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a9b4: 322e3033 eorcc r3, lr, #51 ; 0x33 + a9b8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a9bc: 572f3539 undefined + a9c0: 4b203233 blmi 817294 + a9c4: 534b4349 movtpl r4, #45897 ; 0xb349 + a9c8: 54524154 ldrbpl r4, [r2], #-340 + a9cc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a9d0: 4d524120 ldfmie f4, [r2, #-128] + a9d4: 0e800100 rmfeqs f0, f0, f0 + a9d8: 0fdc0040 svceq 0x00dc0040 + a9dc: 6a7c0040 bvs 1f0aae4 + a9e0: 39500000 ldmdbcc r0, {}^ + a9e4: 13100000 tstne r0, #0 ; 0x0 + a9e8: 0c00008c stceq 0, cr0, [r0], {140} + a9ec: 000001c1 andeq r0, r0, r1, asr #3 + a9f0: 756a6461 strbvc r6, [sl, #-1121]! + a9f4: 735f7473 cmpvc pc, #1929379840 ; 0x73000000 + a9f8: 6f736e65 svcvs 0x00736e65 + a9fc: 6f745f72 svcvs 0x00745f72 + aa00: 7275635f rsbsvc r6, r5, #2080374785 ; 0x7c000001 + aa04: 746e6572 strbtvc r6, [lr], #-1394 + aa08: 61656d5f cmnvs r5, pc, asr sp + aa0c: 65727573 ldrbvs r7, [r2, #-1395]! + aa10: 7379735f cmnvc r9, #2080374785 ; 0x7c000001 + aa14: 006d6574 rsbeq r6, sp, r4, ror r5 + aa18: 0a058b01 beq 16d624 + aa1c: 92a01001 adcls r1, r0, #1 ; 0x1 + aa20: 1dca0000 stclne 0, cr0, [sl] + aa24: 0e800000 cdpeq 0, 8, cr0, cr0, cr0, {0} + aa28: 0fdc0040 svceq 0x00dc0040 + aa2c: 75090040 strvc r0, [r9, #-64] + aa30: 65533631 ldrbvs r3, [r3, #-1585] + aa34: 726f736e rsbvc r7, pc, #-1207959551 ; 0xb8000001 + aa38: 756c6156 strbvc r6, [ip, #-342]! + aa3c: 8b010065 blhi 4abd8 + aa40: a0103b05 andsge r3, r0, r5, lsl #22 + aa44: 56000092 undefined + aa48: 0900001e stmdbeq r0, {r1, r2, r3, r4} + aa4c: 736e6553 cmnvc lr, #348127232 ; 0x14c00000 + aa50: 654d726f strbvs r7, [sp, #-623] + aa54: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 + aa58: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} + aa5c: 8b010074 blhi 4ac34 + aa60: 4b106005 blmi 422a7c + aa64: b2000092 andlt r0, r0, #146 ; 0x92 + aa68: 0a00001e beq aae8 + aa6c: 54323375 ldrtpl r3, [r2], #-885 + aa70: 6553706d ldrbvs r7, [r3, #-109] + aa74: 726f736e rsbvc r7, pc, #-1207959551 ; 0xb8000001 + aa78: 006c6156 rsbeq r6, ip, r6, asr r1 + aa7c: 0c058d01 stceq 13, cr8, [r5], {1} + aa80: 0092b010 addseq fp, r2, r0, lsl r0 + aa84: 001ecf00 andseq ip, lr, r0, lsl #30 + aa88: 31750a00 cmncc r5, r0, lsl #20 + aa8c: 6a644136 bvs 191af6c + aa90: 65747375 ldrbvs r7, [r4, #-885]! + aa94: 6e655364 cdpvs 3, 6, cr5, cr5, cr4, {3} + aa98: 56726f73 uhsub16pl r6, r2, r3 + aa9c: 01006c61 tsteq r0, r1, ror #24 + aaa0: 100c058e andne r0, ip, lr, lsl #11 + aaa4: 000092a0 andeq r9, r0, r0, lsr #5 + aaa8: 00001f16 andeq r1, r0, r6, lsl pc + aaac: 0001c00b andeq ip, r1, fp + aab0: 400e9a00 andmi r9, lr, r0, lsl #20 + aab4: 400fba00 andmi fp, pc, r0, lsl #20 + aab8: 01bf0b00 undefined instruction 0x01bf0b00 + aabc: 0f340000 svceq 0x00340000 + aac0: 0fa00040 svceq 0x00a00040 + aac4: 00000040 andeq r0, r0, r0, asr #32 + aac8: 00000000 andeq r0, r0, r0 + aacc: 000001b0 strheq r0, [r0], -r0 + aad0: 0b780003 bleq 1e0aae4 + aad4: 06040000 streq r0, [r4], -r0 + aad8: 445c3a43 ldrbmi r3, [ip], #-2627 + aadc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + aae0: 73746e65 cmnvc r4, #1616 ; 0x650 + aae4: 646e6120 strbtvs r6, [lr], #-288 + aae8: 74655320 strbtvc r5, [r5], #-800 + aaec: 676e6974 undefined + aaf0: 616d5c73 smcvs 54723 + aaf4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + aaf8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + aafc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + ab00: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + ab04: 775c7374 undefined + ab08: 6f632d73 svcvs 0x00632d73 + ab0c: 6f72746e svcvs 0x0072746e + ab10: 65575c6c ldrbvs r5, [r7, #-3180] + ab14: 65687461 strbvs r7, [r8, #-1121]! + ab18: 74532072 ldrbvc r2, [r3], #-114 + ab1c: 6f697461 svcvs 0x00697461 + ab20: 6f43206e svcvs 0x0043206e + ab24: 6f72746e svcvs 0x0072746e + ab28: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ab2c: 7070415c rsbsvc r4, r0, ip, asr r1 + ab30: 6163696c cmnvs r3, ip, ror #18 + ab34: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + ab38: 756f535c strbvc r5, [pc, #-860]! ; a7e4 + ab3c: 5c656372 stclpl 3, cr6, [r5], #-456 + ab40: 74616577 strbtvc r6, [r1], #-1399 + ab44: 5f726568 svcpl 0x00726568 + ab48: 74617473 strbtvc r7, [r1], #-1139 + ab4c: 5f6e6f69 svcpl 0x006e6f69 + ab50: 746e6f63 strbtvc r6, [lr], #-3939 + ab54: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + ab58: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + ab5c: 52414900 subpl r4, r1, #0 ; 0x0 + ab60: 534e4120 movtpl r4, #57632 ; 0xe120 + ab64: 2f432049 svccs 0x00432049 + ab68: 202b2b43 eorcs r2, fp, r3, asr #22 + ab6c: 706d6f43 rsbvc r6, sp, r3, asr #30 + ab70: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + ab74: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + ab78: 322e3033 eorcc r3, lr, #51 ; 0x33 + ab7c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ab80: 572f3539 undefined + ab84: 4b203233 blmi 817458 + ab88: 534b4349 movtpl r4, #45897 ; 0xb349 + ab8c: 54524154 ldrbpl r4, [r2], #-340 + ab90: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + ab94: 4d524120 ldfmie f4, [r2, #-128] + ab98: 0fdc0100 svceq 0x00dc0100 + ab9c: 108c0040 addne r0, ip, r0, asr #32 + aba0: 6b740040 blvs 1d0aca8 + aba4: 3a120000 bcc 48abac + aba8: 13100000 tstne r0, #0 ; 0x0 + abac: 0800008c stmdaeq r0, {r2, r3, r7} + abb0: 000001b2 strheq r0, [r0], -r2 + abb4: 636f7270 cmnvs pc, #7 ; 0x7 + abb8: 5f737365 svcpl 0x00737365 + abbc: 6f636e69 svcvs 0x00636e69 + abc0: 676e696d strbvs r6, [lr, -sp, ror #18]! + abc4: 67736d5f undefined + abc8: 05dd0100 ldrbeq r0, [sp, #256] + abcc: 1f3e0106 svcne 0x003e0106 + abd0: 0fdc0000 svceq 0x00dc0000 + abd4: 108c0040 addne r0, ip, r0, asr #32 + abd8: 75040040 strvc r0, [r4, #-64] + abdc: 65725038 ldrbvs r5, [r2, #-56]! + abe0: 71655376 smcvc 21814 + abe4: 626d754e rsbvs r7, sp, #327155712 ; 0x13800000 + abe8: 10007265 andne r7, r0, r5, ror #4 + abec: 00009283 andeq r9, r0, r3, lsl #5 + abf0: 1205e201 andne lr, r5, #268435456 ; 0x10000000 + abf4: 60030500 andvs r0, r3, r0, lsl #10 + abf8: 0a004052 beq 1ad48 + abfc: 65533875 ldrbvs r3, [r3, #-2165] + ac00: 6c616972 stclvs 9, cr6, [r1], #-456 + ac04: 6d617246 sfmvs f7, 2, [r1, #-280]! + ac08: df010065 svcle 0x00010065 + ac0c: cf100b05 svcgt 0x00100b05 + ac10: 7600008f strvc r0, [r0], -pc, lsl #1 + ac14: 0a00001f beq ac98 + ac18: 43363175 teqmi r6, #1073741853 ; 0x4000001d + ac1c: 65727275 ldrbvs r7, [r2, #-629]! + ac20: 6553746e ldrbvs r7, [r3, #-1134] + ac24: 726f736e rsbvc r7, pc, #-1207959551 ; 0xb8000001 + ac28: 756c6156 strbvc r6, [ip, #-342]! + ac2c: e0010065 and r0, r1, r5, rrx + ac30: a0100c05 andsge r0, r0, r5, lsl #24 + ac34: 94000092 strls r0, [r0], #-146 + ac38: 0a00001f beq acbc + ac3c: 6f433875 svcvs 0x00433875 + ac40: 65746e75 ldrbvs r6, [r4, #-3701]! + ac44: e1010072 tst r1, r2, ror r0 + ac48: 83100b05 tsthi r0, #5120 ; 0x1400 + ac4c: b1000092 swplt r0, r2, [r0] + ac50: 0b00001f bleq acd4 + ac54: 000001b1 strheq r0, [r0], -r1 + ac58: 00400fe0 subeq r0, r0, r0, ror #31 + ac5c: 00401070 subeq r1, r0, r0, ror r0 + ac60: 0001b00b andeq fp, r1, fp + ac64: 400fea00 andmi lr, pc, r0, lsl #20 + ac68: 40107000 andsmi r7, r0, r0 + ac6c: 01af0b00 undefined instruction 0x01af0b00 + ac70: 10500000 subsne r0, r0, r0 + ac74: 10680040 rsbne r0, r8, r0, asr #32 + ac78: 00000040 andeq r0, r0, r0, asr #32 + ac7c: 00000000 andeq r0, r0, r0 + ac80: 000001a8 andeq r0, r0, r8, lsr #3 + ac84: 0b780003 bleq 1e0ac98 + ac88: 06040000 streq r0, [r4], -r0 + ac8c: 445c3a43 ldrbmi r3, [ip], #-2627 + ac90: 6d75636f ldclvs 3, cr6, [r5, #-444]! + ac94: 73746e65 cmnvc r4, #1616 ; 0x650 + ac98: 646e6120 strbtvs r6, [lr], #-288 + ac9c: 74655320 strbtvc r5, [r5], #-800 + aca0: 676e6974 undefined + aca4: 616d5c73 smcvs 54723 + aca8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + acac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + acb0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + acb4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + acb8: 775c7374 undefined + acbc: 6f632d73 svcvs 0x00632d73 + acc0: 6f72746e svcvs 0x0072746e + acc4: 65575c6c ldrbvs r5, [r7, #-3180] + acc8: 65687461 strbvs r7, [r8, #-1121]! + accc: 74532072 ldrbvc r2, [r3], #-114 + acd0: 6f697461 svcvs 0x00697461 + acd4: 6f43206e svcvs 0x0043206e + acd8: 6f72746e svcvs 0x0072746e + acdc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ace0: 7070415c rsbsvc r4, r0, ip, asr r1 + ace4: 6163696c cmnvs r3, ip, ror #18 + ace8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + acec: 756f535c strbvc r5, [pc, #-860]! ; a998 + acf0: 5c656372 stclpl 3, cr6, [r5], #-456 + acf4: 74616577 strbtvc r6, [r1], #-1399 + acf8: 5f726568 svcpl 0x00726568 + acfc: 74617473 strbtvc r7, [r1], #-1139 + ad00: 5f6e6f69 svcpl 0x006e6f69 + ad04: 746e6f63 strbtvc r6, [lr], #-3939 + ad08: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + ad0c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + ad10: 52414900 subpl r4, r1, #0 ; 0x0 + ad14: 534e4120 movtpl r4, #57632 ; 0xe120 + ad18: 2f432049 svccs 0x00432049 + ad1c: 202b2b43 eorcs r2, fp, r3, asr #22 + ad20: 706d6f43 rsbvc r6, sp, r3, asr #30 + ad24: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + ad28: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + ad2c: 322e3033 eorcc r3, lr, #51 ; 0x33 + ad30: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ad34: 572f3539 undefined + ad38: 4b203233 blmi 81760c + ad3c: 534b4349 movtpl r4, #45897 ; 0xb349 + ad40: 54524154 ldrbpl r4, [r2], #-340 + ad44: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + ad48: 4d524120 ldfmie f4, [r2, #-128] + ad4c: 108c0100 addne r0, ip, r0, lsl #2 + ad50: 12700040 rsbsne r0, r0, #64 ; 0x40 + ad54: 6c5c0040 mrrcvs 0, 4, r0, ip, cr0 + ad58: 3af00000 bcc ffc0ad60 + ad5c: 13100000 tstne r0, #0 ; 0x0 + ad60: 0800008c stmdaeq r0, {r2, r3, r7} + ad64: 000001aa andeq r0, r0, sl, lsr #3 + ad68: 70736944 rsbsvc r6, r3, r4, asr #18 + ad6c: 4679616c ldrbtmi r6, [r9], -ip, ror #2 + ad70: 73656572 cmnvc r5, #478150656 ; 0x1c800000 + ad74: 656c6163 strbvs r6, [ip, #-355]! + ad78: 6f676f4c svcvs 0x00676f4c + ad7c: 06990100 ldreq r0, [r9], r0, lsl #2 + ad80: 1fce0106 svcne 0x00ce0106 + ad84: 108c0000 addne r0, ip, r0 + ad88: 12700040 rsbsne r0, r0, #64 ; 0x40 + ad8c: 78090040 stmdavc r9, {r6} + ad90: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 + ad94: 6f6f4374 svcvs 0x006f4374 + ad98: 01006472 tsteq r0, r2, ror r4 + ad9c: 10230699 mlane r3, r9, r6, r0 + ada0: 00009283 andeq r9, r0, r3, lsl #5 + ada4: 00001ffa strdeq r1, [r0], -sl + ada8: 74537909 ldrbvc r7, [r3], #-2313 + adac: 43747261 cmnmi r4, #268435462 ; 0x10000006 + adb0: 64726f6f ldrbtvs r6, [r2], #-3951 + adb4: 06990100 ldreq r0, [r9], r0, lsl #2 + adb8: 92831038 addls r1, r3, #56 ; 0x38 + adbc: 20170000 andscs r0, r7, r0 + adc0: 750a0000 strvc r0, [sl] + adc4: 756f4338 strbvc r4, [pc, #-824]! ; aa94 + adc8: 0100746e tsteq r0, lr, ror #8 + adcc: 100b069b mulne fp, fp, r6 + add0: 00009283 andeq r9, r0, r3, lsl #5 + add4: 00002054 andeq r2, r0, r4, asr r0 + add8: 5338750a teqpl r8, #41943040 ; 0x2800000 + addc: 6e697274 mcrvs 2, 3, r7, cr9, cr4, {3} + ade0: 9c010067 stcls 0, cr0, [r1], {103} + ade4: aa100b06 bge 40da04 + ade8: 5c00008f stcpl 0, cr0, [r0], {143} + adec: 0b000020 bleq ae74 + adf0: 000001a9 andeq r0, r0, r9, lsr #3 + adf4: 0040109c umaaleq r1, r0, ip, r0 + adf8: 00401244 subeq r1, r0, r4, asr #4 + adfc: 0100690a tsteq r0, sl, lsl #18 + ae00: 100f069e mulne pc, lr, r6 + ae04: 00009283 andeq r9, r0, r3, lsl #5 + ae08: 00002070 andeq r2, r0, r0, ror r0 + ae0c: 0001a80b andeq sl, r1, fp, lsl #16 + ae10: 40109e00 andsmi r9, r0, r0, lsl #28 + ae14: 40123800 andsmi r3, r2, r0, lsl #16 + ae18: 01a70b00 undefined instruction 0x01a70b00 + ae1c: 12280000 eorne r0, r8, #0 ; 0x0 + ae20: 12340040 eorsne r0, r4, #64 ; 0x40 + ae24: 00000040 andeq r0, r0, r0, asr #32 + ae28: 00000000 andeq r0, r0, r0 + ae2c: 000000e0 andeq r0, r0, r0, ror #1 + ae30: 0b780003 bleq 1e0ae44 + ae34: 06040000 streq r0, [r4], -r0 + ae38: 445c3a43 ldrbmi r3, [ip], #-2627 + ae3c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + ae40: 73746e65 cmnvc r4, #1616 ; 0x650 + ae44: 646e6120 strbtvs r6, [lr], #-288 + ae48: 74655320 strbtvc r5, [r5], #-800 + ae4c: 676e6974 undefined + ae50: 616d5c73 smcvs 54723 + ae54: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + ae58: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + ae5c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + ae60: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + ae64: 775c7374 undefined + ae68: 6f632d73 svcvs 0x00632d73 + ae6c: 6f72746e svcvs 0x0072746e + ae70: 65575c6c ldrbvs r5, [r7, #-3180] + ae74: 65687461 strbvs r7, [r8, #-1121]! + ae78: 74532072 ldrbvc r2, [r3], #-114 + ae7c: 6f697461 svcvs 0x00697461 + ae80: 6f43206e svcvs 0x0043206e + ae84: 6f72746e svcvs 0x0072746e + ae88: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ae8c: 7070415c rsbsvc r4, r0, ip, asr r1 + ae90: 6163696c cmnvs r3, ip, ror #18 + ae94: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + ae98: 756f535c strbvc r5, [pc, #-860]! ; ab44 + ae9c: 5c656372 stclpl 3, cr6, [r5], #-456 + aea0: 74616577 strbtvc r6, [r1], #-1399 + aea4: 5f726568 svcpl 0x00726568 + aea8: 74617473 strbtvc r7, [r1], #-1139 + aeac: 5f6e6f69 svcpl 0x006e6f69 + aeb0: 746e6f63 strbtvc r6, [lr], #-3939 + aeb4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + aeb8: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + aebc: 52414900 subpl r4, r1, #0 ; 0x0 + aec0: 534e4120 movtpl r4, #57632 ; 0xe120 + aec4: 2f432049 svccs 0x00432049 + aec8: 202b2b43 eorcs r2, fp, r3, asr #22 + aecc: 706d6f43 rsbvc r6, sp, r3, asr #30 + aed0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + aed4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + aed8: 322e3033 eorcc r3, lr, #51 ; 0x33 + aedc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + aee0: 572f3539 undefined + aee4: 4b203233 blmi 8177b8 + aee8: 534b4349 movtpl r4, #45897 ; 0xb349 + aeec: 54524154 ldrbpl r4, [r2], #-340 + aef0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + aef4: 4d524120 ldfmie f4, [r2, #-128] + aef8: 12700100 rsbsne r0, r0, #0 ; 0x0 + aefc: 12740040 rsbsne r0, r4, #64 ; 0x40 + af00: 6d700040 ldclvs 0, cr0, [r0, #-256]! + af04: 3cc60000 stclcc 0, cr0, [r6], {0} + af08: 13100000 tstne r0, #0 ; 0x0 + af0c: 0000008c andeq r0, r0, ip, lsl #1 + af10: 00000178 andeq r0, r0, r8, ror r1 + af14: 0b780003 bleq 1e0af28 + af18: 06040000 streq r0, [r4], -r0 + af1c: 445c3a43 ldrbmi r3, [ip], #-2627 + af20: 6d75636f ldclvs 3, cr6, [r5, #-444]! + af24: 73746e65 cmnvc r4, #1616 ; 0x650 + af28: 646e6120 strbtvs r6, [lr], #-288 + af2c: 74655320 strbtvc r5, [r5], #-800 + af30: 676e6974 undefined + af34: 616d5c73 smcvs 54723 + af38: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + af3c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + af40: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + af44: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + af48: 775c7374 undefined + af4c: 6f632d73 svcvs 0x00632d73 + af50: 6f72746e svcvs 0x0072746e + af54: 65575c6c ldrbvs r5, [r7, #-3180] + af58: 65687461 strbvs r7, [r8, #-1121]! + af5c: 74532072 ldrbvc r2, [r3], #-114 + af60: 6f697461 svcvs 0x00697461 + af64: 6f43206e svcvs 0x0043206e + af68: 6f72746e svcvs 0x0072746e + af6c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + af70: 7070415c rsbsvc r4, r0, ip, asr r1 + af74: 6163696c cmnvs r3, ip, ror #18 + af78: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + af7c: 756f535c strbvc r5, [pc, #-860]! ; ac28 + af80: 5c656372 stclpl 3, cr6, [r5], #-456 + af84: 74616577 strbtvc r6, [r1], #-1399 + af88: 5f726568 svcpl 0x00726568 + af8c: 74617473 strbtvc r7, [r1], #-1139 + af90: 5f6e6f69 svcpl 0x006e6f69 + af94: 746e6f63 strbtvc r6, [lr], #-3939 + af98: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + af9c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + afa0: 52414900 subpl r4, r1, #0 ; 0x0 + afa4: 534e4120 movtpl r4, #57632 ; 0xe120 + afa8: 2f432049 svccs 0x00432049 + afac: 202b2b43 eorcs r2, fp, r3, asr #22 + afb0: 706d6f43 rsbvc r6, sp, r3, asr #30 + afb4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + afb8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + afbc: 322e3033 eorcc r3, lr, #51 ; 0x33 + afc0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + afc4: 572f3539 undefined + afc8: 4b203233 blmi 81789c + afcc: 534b4349 movtpl r4, #45897 ; 0xb349 + afd0: 54524154 ldrbpl r4, [r2], #-340 + afd4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + afd8: 4d524120 ldfmie f4, [r2, #-128] + afdc: 12800100 addne r0, r0, #0 ; 0x0 + afe0: 14320040 ldrtne r0, [r2], #-64 + afe4: 6d980040 ldcvs 0, cr0, [r8, #256] + afe8: 3d4d0000 stclcc 0, cr0, [sp] + afec: 13100000 tstne r0, #0 ; 0x0 + aff0: 0800008c stmdaeq r0, {r2, r3, r7} + aff4: 0000017b andeq r0, r0, fp, ror r1 + aff8: 61656c43 cmnvs r5, r3, asr #24 + affc: 65724672 ldrbvs r4, [r2, #-1650]! + b000: 61637365 cmnvs r3, r5, ror #6 + b004: 6f4c656c svcvs 0x004c656c + b008: 01006f67 tsteq r0, r7, ror #30 + b00c: 010606e3 smlatteq r6, r3, r6, r0 + b010: 00002083 andeq r2, r0, r3, lsl #1 + b014: 00401280 subeq r1, r0, r0, lsl #5 + b018: 00401432 subeq r1, r0, r2, lsr r4 + b01c: 74537809 ldrbvc r7, [r3], #-2057 + b020: 43747261 cmnmi r4, #268435462 ; 0x10000006 + b024: 64726f6f ldrbtvs r6, [r2], #-3951 + b028: 06e30100 strbteq r0, [r3], r0, lsl #2 + b02c: 92831021 addls r1, r3, #33 ; 0x21 + b030: 20af0000 adccs r0, pc, r0 + b034: 79090000 stmdbvc r9, {} + b038: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 + b03c: 6f6f4374 svcvs 0x006f4374 + b040: 01006472 tsteq r0, r2, ror r4 + b044: 103606e3 eorsne r0, r6, r3, ror #13 + b048: 00009283 andeq r9, r0, r3, lsl #5 + b04c: 000020cc andeq r2, r0, ip, asr #1 + b050: 00017a0b andeq r7, r1, fp, lsl #20 + b054: 40128600 andsmi r8, r2, r0, lsl #12 + b058: 40142e00 andsmi r2, r4, r0, lsl #28 + b05c: 00690a00 rsbeq r0, r9, r0, lsl #20 + b060: 0f06e501 svceq 0x0006e501 + b064: 00928310 addseq r8, r2, r0, lsl r3 + b068: 0020fe00 eoreq pc, r0, r0, lsl #28 + b06c: 01790b00 cmneq r9, r0, lsl #22 + b070: 12880000 addne r0, r8, #0 ; 0x0 + b074: 14220040 strtne r0, [r2], #-64 + b078: 780b0040 stmdavc fp, {r6} + b07c: 12000001 andne r0, r0, #1 ; 0x1 + b080: 1e004014 mcrne 0, 0, r4, cr0, cr4, {0} + b084: 00004014 andeq r4, r0, r4, lsl r0 + b088: 00000000 andeq r0, r0, r0 + b08c: 00000234 andeq r0, r0, r4, lsr r2 + b090: 0b780003 bleq 1e0b0a4 + b094: 06040000 streq r0, [r4], -r0 + b098: 445c3a43 ldrbmi r3, [ip], #-2627 + b09c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b0a0: 73746e65 cmnvc r4, #1616 ; 0x650 + b0a4: 646e6120 strbtvs r6, [lr], #-288 + b0a8: 74655320 strbtvc r5, [r5], #-800 + b0ac: 676e6974 undefined + b0b0: 616d5c73 smcvs 54723 + b0b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b0b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b0bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b0c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b0c4: 775c7374 undefined + b0c8: 6f632d73 svcvs 0x00632d73 + b0cc: 6f72746e svcvs 0x0072746e + b0d0: 65575c6c ldrbvs r5, [r7, #-3180] + b0d4: 65687461 strbvs r7, [r8, #-1121]! + b0d8: 74532072 ldrbvc r2, [r3], #-114 + b0dc: 6f697461 svcvs 0x00697461 + b0e0: 6f43206e svcvs 0x0043206e + b0e4: 6f72746e svcvs 0x0072746e + b0e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b0ec: 7070415c rsbsvc r4, r0, ip, asr r1 + b0f0: 6163696c cmnvs r3, ip, ror #18 + b0f4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b0f8: 756f535c strbvc r5, [pc, #-860]! ; ada4 + b0fc: 5c656372 stclpl 3, cr6, [r5], #-456 + b100: 74616577 strbtvc r6, [r1], #-1399 + b104: 5f726568 svcpl 0x00726568 + b108: 74617473 strbtvc r7, [r1], #-1139 + b10c: 5f6e6f69 svcpl 0x006e6f69 + b110: 746e6f63 strbtvc r6, [lr], #-3939 + b114: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b118: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + b11c: 52414900 subpl r4, r1, #0 ; 0x0 + b120: 534e4120 movtpl r4, #57632 ; 0xe120 + b124: 2f432049 svccs 0x00432049 + b128: 202b2b43 eorcs r2, fp, r3, asr #22 + b12c: 706d6f43 rsbvc r6, sp, r3, asr #30 + b130: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + b134: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + b138: 322e3033 eorcc r3, lr, #51 ; 0x33 + b13c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + b140: 572f3539 undefined + b144: 4b203233 blmi 817a18 + b148: 534b4349 movtpl r4, #45897 ; 0xb349 + b14c: 54524154 ldrbpl r4, [r2], #-340 + b150: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b154: 4d524120 ldfmie f4, [r2, #-128] + b158: 14340100 ldrtne r0, [r4], #-256 + b15c: 16ac0040 strtne r0, [ip], r0, asr #32 + b160: 6e900040 cdpvs 0, 9, cr0, cr0, cr0, {2} + b164: 3ed70000 cdpcc 0, 13, cr0, cr7, cr0, {0} + b168: 13100000 tstne r0, #0 ; 0x0 + b16c: 0800008c stmdaeq r0, {r2, r3, r7} + b170: 00000237 andeq r0, r0, r7, lsr r2 + b174: 70736944 rsbsvc r6, r3, r4, asr #18 + b178: 5379616c cmnpl r9, #27 ; 0x1b + b17c: 6f736e65 svcvs 0x00736e65 + b180: 6c615672 stclvs 6, cr5, [r1], #-456 + b184: 01006575 tsteq r0, r5, ror r5 + b188: 0106079d strbeq r0, [r6, -sp] + b18c: 00002111 andeq r2, r0, r1, lsl r1 + b190: 00401434 subeq r1, r0, r4, lsr r4 + b194: 004016ac subeq r1, r0, ip, lsr #13 + b198: 53387509 teqpl r8, #37748736 ; 0x2400000 + b19c: 6f736e65 svcvs 0x00736e65 + b1a0: 9d010072 stcls 0, cr0, [r1, #-456] + b1a4: 4b102e07 blmi 4169c8 + b1a8: 49000092 stmdbmi r0, {r1, r4, r7} + b1ac: 0a000021 beq b238 + b1b0: 6f6f4378 svcvs 0x006f4378 + b1b4: 01006472 tsteq r0, r2, ror r4 + b1b8: 100b079f mulne fp, pc, r7 + b1bc: 00009283 andeq r9, r0, r3, lsl #5 + b1c0: 00002166 andeq r2, r0, r6, ror #2 + b1c4: 6f43790a svcvs 0x0043790a + b1c8: 0064726f rsbeq r7, r4, pc, ror #4 + b1cc: 13079f01 movwne r9, #32513 ; 0x7f01 + b1d0: 00928310 addseq r8, r2, r0, lsl r3 + b1d4: 00216e00 eoreq r6, r1, r0, lsl #28 + b1d8: 696c0a00 stmdbvs ip!, {r9, fp}^ + b1dc: 0100656e tsteq r0, lr, ror #10 + b1e0: 100b07a0 andne r0, fp, r0, lsr #15 + b1e4: 00009283 andeq r9, r0, r3, lsl #5 + b1e8: 00002176 andeq r2, r0, r6, ror r1 + b1ec: 00017e0b andeq r7, r1, fp, lsl #28 + b1f0: 40144200 andsmi r4, r4, r0, lsl #4 + b1f4: 40146600 andsmi r6, r4, r0, lsl #12 + b1f8: 00690a00 rsbeq r0, r9, r0, lsl #20 + b1fc: 0f07a401 svceq 0x0007a401 + b200: 00928310 addseq r8, r2, r0, lsl r3 + b204: 00217e00 eoreq r7, r1, r0, lsl #28 + b208: 360b0000 strcc r0, [fp], -r0 + b20c: 94000002 strls r0, [r0], #-2 + b210: ac004014 stcge 0, cr4, [r0], {20} + b214: 0b004016 bleq 1b274 + b218: 000001b5 strheq r0, [r0], -r5 + b21c: 004014a6 subeq r1, r0, r6, lsr #9 + b220: 00401542 subeq r1, r0, r2, asr #10 + b224: 0001a60b andeq sl, r1, fp, lsl #12 + b228: 4014b600 andsmi fp, r4, r0, lsl #12 + b22c: 4014d000 andsmi sp, r4, r0 + b230: b40b0000 strlt r0, [fp] + b234: d0000001 andle r0, r0, r1 + b238: ec004014 stc 0, cr4, [r0], {20} + b23c: 00004014 andeq r4, r0, r4, lsl r0 + b240: 01df0b00 bicseq r0, pc, r0, lsl #22 + b244: 15440000 strbne r0, [r4] + b248: 15d20040 ldrbne r0, [r2, #64] + b24c: d00b0040 andle r0, fp, r0, asr #32 + b250: 54000001 strpl r0, [r0], #-1 + b254: 6e004015 mcrvs 0, 0, r4, cr0, cr5, {0} + b258: 00004015 andeq r4, r0, r5, lsl r0 + b25c: 0001de0b andeq sp, r1, fp, lsl #28 + b260: 40156e00 andsmi r6, r5, r0, lsl #28 + b264: 40158a00 andsmi r8, r5, r0, lsl #20 + b268: 0b000000 bleq b270 + b26c: 00000235 andeq r0, r0, r5, lsr r2 + b270: 004015d2 ldrdeq r1, [r0], #-82 + b274: 0040167a subeq r1, r0, sl, ror r6 + b278: 0001fa0b andeq pc, r1, fp, lsl #20 + b27c: 4015e200 andsmi lr, r5, r0, lsl #4 + b280: 4015fc00 andsmi pc, r5, r0, lsl #24 + b284: 080b0000 stmdaeq fp, {} + b288: fc000002 stc2 0, cr0, [r0], {2} + b28c: 18004015 stmdane r0, {r0, r2, r4, lr} + b290: 00004016 andeq r4, r0, r6, lsl r0 + b294: 0002340b andeq r3, r2, fp, lsl #8 + b298: 40162800 andsmi r2, r6, r0, lsl #16 + b29c: 40166400 andsmi r6, r6, r0, lsl #8 + b2a0: 00690a00 rsbeq r0, r9, r0, lsl #20 + b2a4: 1308ad01 movwne sl, #36097 ; 0x8d01 + b2a8: 00928310 addseq r8, r2, r0, lsl r3 + b2ac: 00219100 eoreq r9, r1, r0, lsl #2 + b2b0: 02330b00 eorseq r0, r3, #0 ; 0x0 + b2b4: 162a0000 strtne r0, [sl], -r0 + b2b8: 165a0040 ldrbne r0, [sl], -r0, asr #32 + b2bc: 00000040 andeq r0, r0, r0, asr #32 + b2c0: 00000000 andeq r0, r0, r0 + b2c4: 00000190 muleq r0, r0, r1 + b2c8: 0b780003 bleq 1e0b2dc + b2cc: 06040000 streq r0, [r4], -r0 + b2d0: 445c3a43 ldrbmi r3, [ip], #-2627 + b2d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b2d8: 73746e65 cmnvc r4, #1616 ; 0x650 + b2dc: 646e6120 strbtvs r6, [lr], #-288 + b2e0: 74655320 strbtvc r5, [r5], #-800 + b2e4: 676e6974 undefined + b2e8: 616d5c73 smcvs 54723 + b2ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b2f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b2f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b2f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b2fc: 775c7374 undefined + b300: 6f632d73 svcvs 0x00632d73 + b304: 6f72746e svcvs 0x0072746e + b308: 65575c6c ldrbvs r5, [r7, #-3180] + b30c: 65687461 strbvs r7, [r8, #-1121]! + b310: 74532072 ldrbvc r2, [r3], #-114 + b314: 6f697461 svcvs 0x00697461 + b318: 6f43206e svcvs 0x0043206e + b31c: 6f72746e svcvs 0x0072746e + b320: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b324: 7070415c rsbsvc r4, r0, ip, asr r1 + b328: 6163696c cmnvs r3, ip, ror #18 + b32c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b330: 756f535c strbvc r5, [pc, #-860]! ; afdc + b334: 5c656372 stclpl 3, cr6, [r5], #-456 + b338: 74616577 strbtvc r6, [r1], #-1399 + b33c: 5f726568 svcpl 0x00726568 + b340: 74617473 strbtvc r7, [r1], #-1139 + b344: 5f6e6f69 svcpl 0x006e6f69 + b348: 746e6f63 strbtvc r6, [lr], #-3939 + b34c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b350: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + b354: 52414900 subpl r4, r1, #0 ; 0x0 + b358: 534e4120 movtpl r4, #57632 ; 0xe120 + b35c: 2f432049 svccs 0x00432049 + b360: 202b2b43 eorcs r2, fp, r3, asr #22 + b364: 706d6f43 rsbvc r6, sp, r3, asr #30 + b368: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + b36c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + b370: 322e3033 eorcc r3, lr, #51 ; 0x33 + b374: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + b378: 572f3539 undefined + b37c: 4b203233 blmi 817c50 + b380: 534b4349 movtpl r4, #45897 ; 0xb349 + b384: 54524154 ldrbpl r4, [r2], #-340 + b388: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b38c: 4d524120 ldfmie f4, [r2, #-128] + b390: 16ac0100 strtne r0, [ip], r0, lsl #2 + b394: 17e00040 strbne r0, [r0, r0, asr #32]! + b398: 70000040 andvc r0, r0, r0, asr #32 + b39c: 41ba0000 undefined instruction 0x41ba0000 + b3a0: 13100000 tstne r0, #0 ; 0x0 + b3a4: 0800008c stmdaeq r0, {r2, r3, r7} + b3a8: 00000190 muleq r0, r0, r1 + b3ac: 70736944 rsbsvc r6, r3, r4, asr #18 + b3b0: 5779616c ldrbpl r6, [r9, -ip, ror #2]! + b3b4: 44646e69 strbtmi r6, [r4], #-3689 + b3b8: 01007269 tsteq r0, r9, ror #4 + b3bc: 010608df ldrdeq r0, [r6, -pc] + b3c0: 000021a4 andeq r2, r0, r4, lsr #3 + b3c4: 004016ac subeq r1, r0, ip, lsr #13 + b3c8: 004017e0 subeq r1, r0, r0, ror #15 + b3cc: 6c387509 cfldr32vs mvfx7, [r8], #-36 + b3d0: 00656e69 rsbeq r6, r5, r9, ror #28 + b3d4: 1d08df01 stcne 15, cr13, [r8, #-4] + b3d8: 00928310 addseq r8, r2, r0, lsl r3 + b3dc: 0021d000 eoreq sp, r1, r0 + b3e0: 43790a00 cmnmi r9, #0 ; 0x0 + b3e4: 64726f6f ldrbtvs r6, [r2], #-3951 + b3e8: 08e10100 stmiaeq r1!, {r8}^ + b3ec: 9283100b addls r1, r3, #11 ; 0xb + b3f0: 21ed0000 mvncs r0, r0 + b3f4: 780a0000 stmdavc sl, {} + b3f8: 726f6f43 rsbvc r6, pc, #268 ; 0x10c + b3fc: e2010064 and r0, r1, #100 ; 0x64 + b400: 83100b08 tsthi r0, #8192 ; 0x2000 + b404: 0a000092 beq b654 + b408: 0b000022 bleq b498 + b40c: 00000155 andeq r0, r0, r5, asr r1 + b410: 004016c4 subeq r1, r0, r4, asr #13 + b414: 004016da ldrdeq r1, [r0], #-106 + b418: 01630b00 cmneq r3, r0, lsl #22 + b41c: 16f80000 ldrbtne r0, [r8], r0 + b420: 17100040 ldrne r0, [r0, -r0, asr #32] + b424: 0b000040 bleq b52c + b428: 0000018f andeq r0, r0, pc, lsl #3 + b42c: 00401782 subeq r1, r0, r2, lsl #15 + b430: 004017ba strheq r1, [r0], #-122 + b434: 0100690a tsteq r0, sl, lsl #18 + b438: 100f0995 mulne pc, r5, r9 + b43c: 00009283 andeq r9, r0, r3, lsl #5 + b440: 00002212 andeq r2, r0, r2, lsl r2 + b444: 00018e0b andeq r8, r1, fp, lsl #28 + b448: 40178a00 andsmi r8, r7, r0, lsl #20 + b44c: 4017ba00 andsmi fp, r7, r0, lsl #20 + ... + b458: 00000118 andeq r0, r0, r8, lsl r1 + b45c: 0b780003 bleq 1e0b470 + b460: 06040000 streq r0, [r4], -r0 + b464: 445c3a43 ldrbmi r3, [ip], #-2627 + b468: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b46c: 73746e65 cmnvc r4, #1616 ; 0x650 + b470: 646e6120 strbtvs r6, [lr], #-288 + b474: 74655320 strbtvc r5, [r5], #-800 + b478: 676e6974 undefined + b47c: 616d5c73 smcvs 54723 + b480: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b484: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b488: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b48c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b490: 775c7374 undefined + b494: 6f632d73 svcvs 0x00632d73 + b498: 6f72746e svcvs 0x0072746e + b49c: 65575c6c ldrbvs r5, [r7, #-3180] + b4a0: 65687461 strbvs r7, [r8, #-1121]! + b4a4: 74532072 ldrbvc r2, [r3], #-114 + b4a8: 6f697461 svcvs 0x00697461 + b4ac: 6f43206e svcvs 0x0043206e + b4b0: 6f72746e svcvs 0x0072746e + b4b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b4b8: 7070415c rsbsvc r4, r0, ip, asr r1 + b4bc: 6163696c cmnvs r3, ip, ror #18 + b4c0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b4c4: 756f535c strbvc r5, [pc, #-860]! ; b170 + b4c8: 5c656372 stclpl 3, cr6, [r5], #-456 + b4cc: 74616577 strbtvc r6, [r1], #-1399 + b4d0: 5f726568 svcpl 0x00726568 + b4d4: 74617473 strbtvc r7, [r1], #-1139 + b4d8: 5f6e6f69 svcpl 0x006e6f69 + b4dc: 746e6f63 strbtvc r6, [lr], #-3939 + b4e0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b4e4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + b4e8: 52414900 subpl r4, r1, #0 ; 0x0 + b4ec: 534e4120 movtpl r4, #57632 ; 0xe120 + b4f0: 2f432049 svccs 0x00432049 + b4f4: 202b2b43 eorcs r2, fp, r3, asr #22 + b4f8: 706d6f43 rsbvc r6, sp, r3, asr #30 + b4fc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + b500: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + b504: 322e3033 eorcc r3, lr, #51 ; 0x33 + b508: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + b50c: 572f3539 undefined + b510: 4b203233 blmi 817de4 + b514: 534b4349 movtpl r4, #45897 ; 0xb349 + b518: 54524154 ldrbpl r4, [r2], #-340 + b51c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b520: 4d524120 ldfmie f4, [r2, #-128] + b524: 17e00100 strbne r0, [r0, r0, lsl #2]! + b528: 180c0040 stmdane ip, {r6} + b52c: 711c0040 tstvc ip, r0, asr #32 + b530: 431f0000 tstmi pc, #0 ; 0x0 + b534: 13100000 tstne r0, #0 ; 0x0 + b538: 0800008c stmdaeq r0, {r2, r3, r7} + b53c: 0000011a andeq r0, r0, sl, lsl r1 + b540: 534d564e movtpl r5, #54862 ; 0xd64e + b544: 70757465 rsbsvc r7, r5, r5, ror #8 + b548: 09ab0100 stmibeq fp!, {r8} + b54c: 22250106 eorcs r0, r5, #-2147483647 ; 0x80000001 + b550: 17e00000 strbne r0, [r0, r0]! + b554: 180c0040 stmdane ip, {r6} + b558: 560a0040 strpl r0, [sl], -r0, asr #32 + b55c: 43676552 cmnmi r7, #343932928 ; 0x14800000 + b560: 006c746e rsbeq r7, ip, lr, ror #8 + b564: 1109ad01 tstne r9, r1, lsl #26 + b568: 00930210 addseq r0, r3, r0, lsl r2 + b56c: 00225d00 eoreq r5, r2, r0, lsl #26 + b570: 00000000 andeq r0, r0, r0 + b574: 0000012c andeq r0, r0, ip, lsr #2 + b578: 0b780003 bleq 1e0b58c + b57c: 06040000 streq r0, [r4], -r0 + b580: 445c3a43 ldrbmi r3, [ip], #-2627 + b584: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b588: 73746e65 cmnvc r4, #1616 ; 0x650 + b58c: 646e6120 strbtvs r6, [lr], #-288 + b590: 74655320 strbtvc r5, [r5], #-800 + b594: 676e6974 undefined + b598: 616d5c73 smcvs 54723 + b59c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b5a0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b5a4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b5a8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b5ac: 775c7374 undefined + b5b0: 6f632d73 svcvs 0x00632d73 + b5b4: 6f72746e svcvs 0x0072746e + b5b8: 65575c6c ldrbvs r5, [r7, #-3180] + b5bc: 65687461 strbvs r7, [r8, #-1121]! + b5c0: 74532072 ldrbvc r2, [r3], #-114 + b5c4: 6f697461 svcvs 0x00697461 + b5c8: 6f43206e svcvs 0x0043206e + b5cc: 6f72746e svcvs 0x0072746e + b5d0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b5d4: 7070415c rsbsvc r4, r0, ip, asr r1 + b5d8: 6163696c cmnvs r3, ip, ror #18 + b5dc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b5e0: 756f535c strbvc r5, [pc, #-860]! ; b28c + b5e4: 5c656372 stclpl 3, cr6, [r5], #-456 + b5e8: 74616577 strbtvc r6, [r1], #-1399 + b5ec: 5f726568 svcpl 0x00726568 + b5f0: 74617473 strbtvc r7, [r1], #-1139 + b5f4: 5f6e6f69 svcpl 0x006e6f69 + b5f8: 746e6f63 strbtvc r6, [lr], #-3939 + b5fc: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b600: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + b604: 52414900 subpl r4, r1, #0 ; 0x0 + b608: 534e4120 movtpl r4, #57632 ; 0xe120 + b60c: 2f432049 svccs 0x00432049 + b610: 202b2b43 eorcs r2, fp, r3, asr #22 + b614: 706d6f43 rsbvc r6, sp, r3, asr #30 + b618: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + b61c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + b620: 322e3033 eorcc r3, lr, #51 ; 0x33 + b624: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + b628: 572f3539 undefined + b62c: 4b203233 blmi 817f00 + b630: 534b4349 movtpl r4, #45897 ; 0xb349 + b634: 54524154 ldrbpl r4, [r2], #-340 + b638: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b63c: 4d524120 ldfmie f4, [r2, #-128] + b640: 180c0100 stmdane ip, {r8} + b644: 18440040 stmdane r4, {r6}^ + b648: 71e00040 mvnvc r0, r0, asr #32 + b64c: 43a70000 undefined instruction 0x43a70000 + b650: 13100000 tstne r0, #0 ; 0x0 + b654: 0800008c stmdaeq r0, {r2, r3, r7} + b658: 0000012e andeq r0, r0, lr, lsr #2 + b65c: 64616f4c strbtvs r6, [r1], #-3916 + b660: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 + b664: 4d746e65 ldclmi 14, cr6, [r4, #-404]! + b668: 75736165 ldrbvc r6, [r3, #-357]! + b66c: 656d6572 strbvs r6, [sp, #-1394]! + b670: 7953746e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ + b674: 6d657473 cfstrdvs mvd7, [r5, #-460]! + b678: 09bc0100 ldmibeq ip!, {r8} + b67c: 22710106 rsbscs r0, r1, #-2147483647 ; 0x80000001 + b680: 180c0000 stmdane ip, {} + b684: 18440040 stmdane r4, {r6}^ + b688: 6e0a0040 cdpvs 0, 0, cr0, cr10, cr0, {2} + b68c: 72456d76 subvc r6, r5, #7552 ; 0x1d80 + b690: 00726f72 rsbseq r6, r2, r2, ror pc + b694: 0d09be01 stceq 14, cr11, [r9, #-4] + b698: 00921610 addseq r1, r2, r0, lsl r6 + b69c: 0022a900 eoreq sl, r2, r0, lsl #18 + b6a0: 00000000 andeq r0, r0, r0 + b6a4: 000001bc strheq r0, [r0], -ip + b6a8: 0b780003 bleq 1e0b6bc + b6ac: 01040000 tsteq r4, r0 + b6b0: 445c3a43 ldrbmi r3, [ip], #-2627 + b6b4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b6b8: 73746e65 cmnvc r4, #1616 ; 0x650 + b6bc: 646e6120 strbtvs r6, [lr], #-288 + b6c0: 74655320 strbtvc r5, [r5], #-800 + b6c4: 676e6974 undefined + b6c8: 616d5c73 smcvs 54723 + b6cc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b6d0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b6d4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b6d8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b6dc: 775c7374 undefined + b6e0: 6f632d73 svcvs 0x00632d73 + b6e4: 6f72746e svcvs 0x0072746e + b6e8: 65575c6c ldrbvs r5, [r7, #-3180] + b6ec: 65687461 strbvs r7, [r8, #-1121]! + b6f0: 74532072 ldrbvc r2, [r3], #-114 + b6f4: 6f697461 svcvs 0x00697461 + b6f8: 6f43206e svcvs 0x0043206e + b6fc: 6f72746e svcvs 0x0072746e + b700: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b704: 4d4c505c stclmi 0, cr5, [ip, #-368] + b708: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + b70c: 65746e49 ldrbvs r6, [r4, #-3657]! + b710: 63616672 cmnvs r1, #119537664 ; 0x7200000 + b714: 564e5c65 strbpl r5, [lr], -r5, ror #24 + b718: 00682e4d rsbeq r2, r8, sp, asr #28 + b71c: 20524149 subscs r4, r2, r9, asr #2 + b720: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + b724: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + b728: 43202b2b teqmi r0, #44032 ; 0xac00 + b72c: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + b730: 2072656c rsbscs r6, r2, ip, ror #10 + b734: 332e3556 teqcc lr, #360710144 ; 0x15800000 + b738: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + b73c: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + b740: 33572f35 cmpcc r7, #212 ; 0xd4 + b744: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + b748: 54534b43 ldrbpl r4, [r3], #-2883 + b74c: 20545241 subscs r5, r4, r1, asr #4 + b750: 20726f66 rsbscs r6, r2, r6, ror #30 + b754: 004d5241 subeq r5, sp, r1, asr #4 + b758: 00560401 subseq r0, r6, r1, lsl #8 + b75c: 00023800 andeq r3, r2, r0, lsl #16 + b760: 01bf0d00 undefined instruction 0x01bf0d00 + b764: 0e010000 cdpeq 0, 0, cr0, cr1, cr0, {0} + b768: 6d764e67 ldclvs 14, cr4, [r6, #-412]! + b76c: 4e727245 cdpmi 2, 7, cr7, cr2, cr5, {2} + b770: 7272456f rsbsvc r4, r2, #465567744 ; 0x1bc00000 + b774: 635f726f cmpvs pc, #-268435450 ; 0xf0000006 + b778: 670e0000 strvs r0, [lr, -r0] + b77c: 456d764e strbmi r7, [sp, #-1614]! + b780: 6e497272 mcrvs 2, 2, r7, cr9, cr2, {3} + b784: 696c6176 stmdbvs ip!, {r1, r2, r4, r5, r6, r8, sp, lr}^ + b788: 746e4964 strbtvc r4, [lr], #-2404 + b78c: 61667265 cmnvs r6, r5, ror #4 + b790: 635f6563 cmpvs pc, #415236096 ; 0x18c00000 + b794: 670e0100 strvs r0, [lr, -r0, lsl #2] + b798: 456d764e strbmi r7, [sp, #-1614]! + b79c: 6e497272 mcrvs 2, 2, r7, cr9, cr2, {3} + b7a0: 696c6176 stmdbvs ip!, {r1, r2, r4, r5, r6, r8, sp, lr}^ + b7a4: 6d764e64 ldclvs 14, cr4, [r6, #-400]! + b7a8: 65707954 ldrbvs r7, [r0, #-2388]! + b7ac: 0200635f andeq r6, r0, #2080374785 ; 0x7c000001 + b7b0: 764e670e strbvc r6, [lr], -lr, lsl #14 + b7b4: 7272456d rsbsvc r4, r2, #457179136 ; 0x1b400000 + b7b8: 61766e49 cmnvs r6, r9, asr #28 + b7bc: 5064696c rsbpl r6, r4, ip, ror #18 + b7c0: 746e696f strbtvc r6, [lr], #-2415 + b7c4: 635f7265 cmpvs pc, #1342177286 ; 0x50000006 + b7c8: 670e0300 strvs r0, [lr, -r0, lsl #6] + b7cc: 456d764e strbmi r7, [sp, #-1614]! + b7d0: 72577272 subsvc r7, r7, #536870919 ; 0x20000007 + b7d4: 50657469 rsbpl r7, r5, r9, ror #8 + b7d8: 65746f72 ldrbvs r6, [r4, #-3954]! + b7dc: 635f7463 cmpvs pc, #1660944384 ; 0x63000000 + b7e0: 670e0400 strvs r0, [lr, -r0, lsl #8] + b7e4: 456d764e strbmi r7, [sp, #-1614]! + b7e8: 65567272 ldrbvs r7, [r6, #-626] + b7ec: 79666972 stmdbvc r6!, {r1, r4, r5, r6, r8, fp, sp, lr}^ + b7f0: 6f727245 svcvs 0x00727245 + b7f4: 00635f72 rsbeq r5, r3, r2, ror pc + b7f8: 4e670e05 cdpmi 14, 6, cr0, cr7, cr5, {0} + b7fc: 72456d76 subvc r6, r5, #7552 ; 0x1d80 + b800: 64644172 strbtvs r4, [r4], #-370 + b804: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + b808: 63617053 cmnvs r1, #83 ; 0x53 + b80c: 65764f65 ldrbvs r4, [r6, #-3941]! + b810: 6f6c6672 svcvs 0x006c6672 + b814: 00635f77 rsbeq r5, r3, r7, ror pc + b818: 4e670e06 cdpmi 14, 6, cr0, cr7, cr6, {0} + b81c: 72456d76 subvc r6, r5, #7552 ; 0x1d80 + b820: 616c4272 smcvs 50210 + b824: 68436b6e stmdavs r3, {r1, r2, r3, r5, r6, r8, r9, fp, sp, lr}^ + b828: 456b6365 strbmi r6, [fp, #-869]! + b82c: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + b830: 0700635f smlsdeq r0, pc, r3, r6 + b834: 764e670e strbvc r6, [lr], -lr, lsl #14 + b838: 7272456d rsbsvc r4, r2, #457179136 ; 0x1b400000 + b83c: 74736552 ldrbtvc r6, [r3], #-1362 + b840: 74636972 strbtvc r6, [r3], #-2418 + b844: 72416465 subvc r6, r1, #1694498816 ; 0x65000000 + b848: 635f6165 cmpvs pc, #1073741849 ; 0x40000019 + b84c: 670e0800 strvs r0, [lr, -r0, lsl #16] + b850: 456d764e strbmi r7, [sp, #-1614]! + b854: 614d7272 cmpvs sp, r2, ror r2 + b858: 72724578 rsbsvc r4, r2, #503316480 ; 0x1e000000 + b85c: 635f726f cmpvs pc, #-268435450 ; 0xf0000006 + b860: 00000900 andeq r0, r0, r0, lsl #18 + b864: 00000114 andeq r0, r0, r4, lsl r1 + b868: 0b780003 bleq 1e0b87c + b86c: 06040000 streq r0, [r4], -r0 + b870: 445c3a43 ldrbmi r3, [ip], #-2627 + b874: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b878: 73746e65 cmnvc r4, #1616 ; 0x650 + b87c: 646e6120 strbtvs r6, [lr], #-288 + b880: 74655320 strbtvc r5, [r5], #-800 + b884: 676e6974 undefined + b888: 616d5c73 smcvs 54723 + b88c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b890: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b894: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b898: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b89c: 775c7374 undefined + b8a0: 6f632d73 svcvs 0x00632d73 + b8a4: 6f72746e svcvs 0x0072746e + b8a8: 65575c6c ldrbvs r5, [r7, #-3180] + b8ac: 65687461 strbvs r7, [r8, #-1121]! + b8b0: 74532072 ldrbvc r2, [r3], #-114 + b8b4: 6f697461 svcvs 0x00697461 + b8b8: 6f43206e svcvs 0x0043206e + b8bc: 6f72746e svcvs 0x0072746e + b8c0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b8c4: 7070415c rsbsvc r4, r0, ip, asr r1 + b8c8: 6163696c cmnvs r3, ip, ror #18 + b8cc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b8d0: 756f535c strbvc r5, [pc, #-860]! ; b57c + b8d4: 5c656372 stclpl 3, cr6, [r5], #-456 + b8d8: 74616577 strbtvc r6, [r1], #-1399 + b8dc: 5f726568 svcpl 0x00726568 + b8e0: 74617473 strbtvc r7, [r1], #-1139 + b8e4: 5f6e6f69 svcpl 0x006e6f69 + b8e8: 746e6f63 strbtvc r6, [lr], #-3939 + b8ec: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b8f0: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + b8f4: 52414900 subpl r4, r1, #0 ; 0x0 + b8f8: 534e4120 movtpl r4, #57632 ; 0xe120 + b8fc: 2f432049 svccs 0x00432049 + b900: 202b2b43 eorcs r2, fp, r3, asr #22 + b904: 706d6f43 rsbvc r6, sp, r3, asr #30 + b908: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + b90c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + b910: 322e3033 eorcc r3, lr, #51 ; 0x33 + b914: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + b918: 572f3539 undefined + b91c: 4b203233 blmi 8181f0 + b920: 534b4349 movtpl r4, #45897 ; 0xb349 + b924: 54524154 ldrbpl r4, [r2], #-340 + b928: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b92c: 4d524120 ldfmie f4, [r2, #-128] + b930: 18540100 ldmdane r4, {r8}^ + b934: 18740040 ldmdane r4!, {r6}^ + b938: 72a40040 adcvc r0, r4, #64 ; 0x40 + b93c: 444f0000 strbmi r0, [pc], #0 ; b944 + b940: 13100000 tstne r0, #0 ; 0x0 + b944: 0800008c stmdaeq r0, {r2, r3, r7} + b948: 00000117 andeq r0, r0, r7, lsl r1 + b94c: 64616552 strbtvs r6, [r1], #-1362 + b950: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 + b954: 4d746e65 ldclmi 14, cr6, [r4, #-404]! + b958: 75736165 ldrbvc r6, [r3, #-357]! + b95c: 656d6572 strbvs r6, [sp, #-1394]! + b960: 7953746e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ + b964: 6d657473 cfstrdvs mvd7, [r5, #-460]! + b968: 09ce0100 stmibeq lr, {r8}^ + b96c: 22b10106 adcscs r0, r1, #-2147483647 ; 0x80000001 + b970: 18540000 ldmdane r4, {}^ + b974: 18740040 ldmdane r4!, {r6}^ + b978: 00000040 andeq r0, r0, r0, asr #32 + b97c: 00000174 andeq r0, r0, r4, ror r1 + b980: 0b780003 bleq 1e0b994 + b984: 06040000 streq r0, [r4], -r0 + b988: 445c3a43 ldrbmi r3, [ip], #-2627 + b98c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b990: 73746e65 cmnvc r4, #1616 ; 0x650 + b994: 646e6120 strbtvs r6, [lr], #-288 + b998: 74655320 strbtvc r5, [r5], #-800 + b99c: 676e6974 undefined + b9a0: 616d5c73 smcvs 54723 + b9a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b9a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b9ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b9b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b9b4: 775c7374 undefined + b9b8: 6f632d73 svcvs 0x00632d73 + b9bc: 6f72746e svcvs 0x0072746e + b9c0: 65575c6c ldrbvs r5, [r7, #-3180] + b9c4: 65687461 strbvs r7, [r8, #-1121]! + b9c8: 74532072 ldrbvc r2, [r3], #-114 + b9cc: 6f697461 svcvs 0x00697461 + b9d0: 6f43206e svcvs 0x0043206e + b9d4: 6f72746e svcvs 0x0072746e + b9d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b9dc: 7070415c rsbsvc r4, r0, ip, asr r1 + b9e0: 6163696c cmnvs r3, ip, ror #18 + b9e4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b9e8: 756f535c strbvc r5, [pc, #-860]! ; b694 + b9ec: 5c656372 stclpl 3, cr6, [r5], #-456 + b9f0: 74616577 strbtvc r6, [r1], #-1399 + b9f4: 5f726568 svcpl 0x00726568 + b9f8: 74617473 strbtvc r7, [r1], #-1139 + b9fc: 5f6e6f69 svcpl 0x006e6f69 + ba00: 746e6f63 strbtvc r6, [lr], #-3939 + ba04: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + ba08: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + ba0c: 52414900 subpl r4, r1, #0 ; 0x0 + ba10: 534e4120 movtpl r4, #57632 ; 0xe120 + ba14: 2f432049 svccs 0x00432049 + ba18: 202b2b43 eorcs r2, fp, r3, asr #22 + ba1c: 706d6f43 rsbvc r6, sp, r3, asr #30 + ba20: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + ba24: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + ba28: 322e3033 eorcc r3, lr, #51 ; 0x33 + ba2c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ba30: 572f3539 undefined + ba34: 4b203233 blmi 818308 + ba38: 534b4349 movtpl r4, #45897 ; 0xb349 + ba3c: 54524154 ldrbpl r4, [r2], #-340 + ba40: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + ba44: 4d524120 ldfmie f4, [r2, #-128] + ba48: 18740100 ldmdane r4!, {r8}^ + ba4c: 19380040 ldmdbne r8!, {r6} + ba50: 73640040 cmnvc r4, #64 ; 0x40 + ba54: 44c60000 strbmi r0, [r6] + ba58: 13100000 tstne r0, #0 ; 0x0 + ba5c: 0800008c stmdaeq r0, {r2, r3, r7} + ba60: 00000176 andeq r0, r0, r6, ror r1 + ba64: 63657865 cmnvs r5, #6619136 ; 0x650000 + ba68: 5f657475 svcpl 0x00657475 + ba6c: 74726175 ldrbtvc r6, [r2], #-373 + ba70: 6d6f635f stclvs 3, cr6, [pc, #-380]! + ba74: 646e616d strbtvs r6, [lr], #-365 + ba78: 09d30100 ldmibeq r3, {r8}^ + ba7c: 22e90106 rsccs r0, r9, #-2147483647 ; 0x80000001 + ba80: 18740000 ldmdane r4!, {}^ + ba84: 19380040 ldmdbne r8!, {r6} + ba88: 75090040 strvc r0, [r9, #-64] + ba8c: 6d6f4338 stclvs 3, cr4, [pc, #-224]! + ba90: 646e616d strbtvs r6, [lr], #-365 + ba94: 09d30100 ldmibeq r3, {r8}^ + ba98: 92831023 addls r1, r3, #35 ; 0x23 + ba9c: 23090000 movwcs r0, #36864 ; 0x9000 + baa0: 75090000 strvc r0, [r9] + baa4: 6c615638 stclvs 6, cr5, [r1], #-224 + baa8: 01006575 tsteq r0, r5, ror r5 + baac: 103609d3 ldrsbtne r0, [r6], -r3 + bab0: 00009283 andeq r9, r0, r3, lsl #5 + bab4: 0000238f andeq r2, r0, pc, lsl #7 + bab8: 4338750a teqmi r8, #41943040 ; 0x2800000 + babc: 616d6d6f cmnvs sp, pc, ror #26 + bac0: 7246646e subvc r6, r6, #1845493760 ; 0x6e000000 + bac4: 00656d61 rsbeq r6, r5, r1, ror #26 + bac8: 0b09d501 bleq 280ed4 + bacc: 008f9010 addeq r9, pc, r0, lsl r0 + bad0: 00240000 eoreq r0, r4, r0 + bad4: 01670b00 cmneq r7, r0, lsl #22 + bad8: 188c0000 stmne ip, {} + badc: 18be0040 ldmne lr!, {r6} + bae0: 0b000040 bleq bbe8 + bae4: 00000175 andeq r0, r0, r5, ror r1 + bae8: 004018c2 subeq r1, r0, r2, asr #17 + baec: 004018e4 subeq r1, r0, r4, ror #17 + baf0: 00000000 andeq r0, r0, r0 + baf4: 0000013c andeq r0, r0, ip, lsr r1 + baf8: 0b780003 bleq 1e0bb0c + bafc: 06040000 streq r0, [r4], -r0 + bb00: 445c3a43 ldrbmi r3, [ip], #-2627 + bb04: 6d75636f ldclvs 3, cr6, [r5, #-444]! + bb08: 73746e65 cmnvc r4, #1616 ; 0x650 + bb0c: 646e6120 strbtvs r6, [lr], #-288 + bb10: 74655320 strbtvc r5, [r5], #-800 + bb14: 676e6974 undefined + bb18: 616d5c73 smcvs 54723 + bb1c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + bb20: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + bb24: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + bb28: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + bb2c: 775c7374 undefined + bb30: 6f632d73 svcvs 0x00632d73 + bb34: 6f72746e svcvs 0x0072746e + bb38: 65575c6c ldrbvs r5, [r7, #-3180] + bb3c: 65687461 strbvs r7, [r8, #-1121]! + bb40: 74532072 ldrbvc r2, [r3], #-114 + bb44: 6f697461 svcvs 0x00697461 + bb48: 6f43206e svcvs 0x0043206e + bb4c: 6f72746e svcvs 0x0072746e + bb50: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + bb54: 7070415c rsbsvc r4, r0, ip, asr r1 + bb58: 6163696c cmnvs r3, ip, ror #18 + bb5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + bb60: 756f535c strbvc r5, [pc, #-860]! ; b80c + bb64: 5c656372 stclpl 3, cr6, [r5], #-456 + bb68: 74616577 strbtvc r6, [r1], #-1399 + bb6c: 5f726568 svcpl 0x00726568 + bb70: 74617473 strbtvc r7, [r1], #-1139 + bb74: 5f6e6f69 svcpl 0x006e6f69 + bb78: 746e6f63 strbtvc r6, [lr], #-3939 + bb7c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + bb80: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + bb84: 52414900 subpl r4, r1, #0 ; 0x0 + bb88: 534e4120 movtpl r4, #57632 ; 0xe120 + bb8c: 2f432049 svccs 0x00432049 + bb90: 202b2b43 eorcs r2, fp, r3, asr #22 + bb94: 706d6f43 rsbvc r6, sp, r3, asr #30 + bb98: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + bb9c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + bba0: 322e3033 eorcc r3, lr, #51 ; 0x33 + bba4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + bba8: 572f3539 undefined + bbac: 4b203233 blmi 818480 + bbb0: 534b4349 movtpl r4, #45897 ; 0xb349 + bbb4: 54524154 ldrbpl r4, [r2], #-340 + bbb8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + bbbc: 4d524120 ldfmie f4, [r2, #-128] + bbc0: 19380100 ldmdbne r8!, {r8} + bbc4: 19620040 stmdbne r2!, {r6}^ + bbc8: 746c0040 strbtvc r0, [ip], #-64 + bbcc: 45ee0000 strbmi r0, [lr]! + bbd0: 13100000 tstne r0, #0 ; 0x0 + bbd4: 0c00008c stceq 0, cr0, [r0], {140} + bbd8: 0000013e andeq r0, r0, lr, lsr r1 + bbdc: 5f797063 svcpl 0x00797063 + bbe0: 74726175 ldrbtvc r6, [r2], #-373 + bbe4: 5f6f745f svcpl 0x006f745f + bbe8: 61746164 cmnvs r4, r4, ror #2 + bbec: 6675625f undefined + bbf0: a8010066 stmdage r1, {r1, r2, r5, r6} + bbf4: 1001090a andne r0, r1, sl, lsl #18 + bbf8: 00009283 andeq r9, r0, r3, lsl #5 + bbfc: 0000241e andeq r2, r0, lr, lsl r4 + bc00: 00401938 subeq r1, r0, r8, lsr r9 + bc04: 00401962 subeq r1, r0, r2, ror #18 + bc08: 38757009 ldmdacc r5!, {r0, r3, ip, sp, lr}^ + bc0c: 61746144 cmnvs r4, r4, asr #2 + bc10: 00667542 rsbeq r7, r6, r2, asr #10 + bc14: 2a0aa801 bcs 2b5c20 + bc18: 008d3210 addeq r3, sp, r0, lsl r2 + bc1c: 00246200 eoreq r6, r4, r0, lsl #4 + bc20: 00690a00 rsbeq r0, r9, r0, lsl #20 + bc24: 0b0aaa01 bleq 2b6430 + bc28: 00928310 addseq r8, r2, r0, lsl r3 + bc2c: 00247f00 eoreq r7, r4, r0, lsl #30 + bc30: 00000000 andeq r0, r0, r0 + +Disassembly of section .debug_line: + +00000000 <.debug_line>: + 0: 00000213 andeq r0, r0, r3, lsl r2 + 4: 020d0002 andeq r0, sp, #2 ; 0x2 + 8: 01010000 tsteq r1, r0 + c: 000a0500 andeq r0, sl, r0, lsl #10 + 10: 01010101 tsteq r1, r1, lsl #2 + 14: 00000000 andeq r0, r0, r0 + 18: 445c3a43 ldrbmi r3, [ip], #-2627 + 1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 20: 73746e65 cmnvc r4, #1616 ; 0x650 + 24: 646e6120 strbtvs r6, [lr], #-288 + 28: 74655320 strbtvc r5, [r5], #-800 + 2c: 676e6974 undefined + 30: 616d5c73 smcvs 54723 + 34: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 38: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 40: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 44: 775c7374 undefined + 48: 6f632d73 svcvs 0x00632d73 + 4c: 6f72746e svcvs 0x0072746e + 50: 65575c6c ldrbvs r5, [r7, #-3180] + 54: 65687461 strbvs r7, [r8, #-1121]! + 58: 74532072 ldrbvc r2, [r3], #-114 + 5c: 6f697461 svcvs 0x00697461 + 60: 6f43206e svcvs 0x0043206e + 64: 6f72746e svcvs 0x0072746e + 68: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6c: 4d4c505c stclmi 0, cr5, [ip, #-368] + 70: 746e495c strbtvc r4, [lr], #-2396 + 74: 61667265 cmnvs r6, r5, ror #4 + 78: 005c6563 subseq r6, ip, r3, ror #10 + 7c: 445c3a43 ldrbmi r3, [ip], #-2627 + 80: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 84: 73746e65 cmnvc r4, #1616 ; 0x650 + 88: 646e6120 strbtvs r6, [lr], #-288 + 8c: 74655320 strbtvc r5, [r5], #-800 + 90: 676e6974 undefined + 94: 616d5c73 smcvs 54723 + 98: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a8: 775c7374 undefined + ac: 6f632d73 svcvs 0x00632d73 + b0: 6f72746e svcvs 0x0072746e + b4: 65575c6c ldrbvs r5, [r7, #-3180] + b8: 65687461 strbvs r7, [r8, #-1121]! + bc: 74532072 ldrbvc r2, [r3], #-114 + c0: 6f697461 svcvs 0x00697461 + c4: 6f43206e svcvs 0x0043206e + c8: 6f72746e svcvs 0x0072746e + cc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + d0: 414d535c cmpmi sp, ip, asr r3 + d4: 72445c43 subvc r5, r4, #17152 ; 0x4300 + d8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + dc: 6f435c73 svcvs 0x00435c73 + e0: 6769666e strbvs r6, [r9, -lr, ror #12]! + e4: 5c657275 sfmpl f7, 2, [r5], #-468 + e8: 5c3a4300 ldcpl 3, cr4, [sl] + ec: 75636f44 strbvc r6, [r3, #-3908]! + f0: 746e656d strbtvc r6, [lr], #-1389 + f4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + f8: 65532064 ldrbvs r2, [r3, #-100] + fc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 100: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 104: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 108: 4d5c6172 ldfmie f6, [ip, #-456] + 10c: 6f442079 svcvs 0x00442079 + 110: 656d7563 strbvs r7, [sp, #-1379]! + 114: 5c73746e cfldrdpl mvd7, [r3], #-440 + 118: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 11c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 120: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 124: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 128: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 12c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 130: 43206e6f teqmi r0, #1776 ; 0x6f0 + 134: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 138: 656c6c6f strbvs r6, [ip, #-3183]! + 13c: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 140: 445c4341 ldrbmi r4, [ip], #-833 + 144: 65766972 ldrbvs r6, [r6, #-2418]! + 148: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 14c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 150: 65636166 strbvs r6, [r3, #-358]! + 154: 3a43005c bcc 10c02cc + 158: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 15c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 160: 61207374 teqvs r0, r4, ror r3 + 164: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 168: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 16c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 170: 766c616d strbtvc r6, [ip], -sp, ror #2 + 174: 5c617269 sfmpl f7, 2, [r1], #-420 + 178: 4420794d strtmi r7, [r0], #-2381 + 17c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 180: 73746e65 cmnvc r4, #1616 ; 0x650 + 184: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 188: 746e6f63 strbtvc r6, [lr], #-3939 + 18c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 190: 74616557 strbtvc r6, [r1], #-1367 + 194: 20726568 rsbscs r6, r2, r8, ror #10 + 198: 74617453 strbtvc r7, [r1], #-1107 + 19c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 1a0: 746e6f43 strbtvc r6, [lr], #-3907 + 1a4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 1a8: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 1ac: 5c43414d stfple f4, [r3], {77} + 1b0: 76697244 strbtvc r7, [r9], -r4, asr #4 + 1b4: 5c737265 lfmpl f7, 2, [r3], #-404 + 1b8: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 1bc: 005c6563 subseq r6, ip, r3, ror #10 + 1c0: 626d4500 rsbvs r4, sp, #0 ; 0x0 + 1c4: 65646465 strbvs r6, [r4, #-1125]! + 1c8: 70795464 rsbsvc r5, r9, r4, ror #8 + 1cc: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 1d0: 9d9e0100 ldflss f0, [lr] + 1d4: 7704c0d7 undefined + 1d8: 72616f62 rsbvc r6, r1, #392 ; 0x188 + 1dc: 6f635f64 svcvs 0x00635f64 + 1e0: 6769666e strbvs r6, [r9, -lr, ror #12]! + 1e4: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 1e8: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 1ec: 72463d04 subvc r3, r6, #256 ; 0x100 + 1f0: 65447165 strbvs r7, [r4, #-357] + 1f4: 74655370 strbtvc r5, [r5], #-880 + 1f8: 676e6974 undefined + 1fc: 00682e73 rsbeq r2, r8, r3, ror lr + 200: edfbf703 ldcl 7, cr15, [fp, #12]! + 204: 443704ce ldrtmi r0, [r7], #-1230 + 208: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + 20c: 0400632e streq r6, [r0], #-814 + 210: c5d0bea8 ldrbgt fp, [r0, #3752] + 214: 00002a04 andeq r2, r0, r4, lsl #20 + 218: 000000ae andeq r0, r0, lr, lsr #1 + 21c: 00890002 addeq r0, r9, r2 + 220: 01020000 tsteq r2, r0 + 224: 000a0500 andeq r0, sl, r0, lsl #10 + 228: 01010101 tsteq r1, r1, lsl #2 + 22c: 00000000 andeq r0, r0, r0 + 230: 445c3a43 ldrbmi r3, [ip], #-2627 + 234: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 238: 73746e65 cmnvc r4, #1616 ; 0x650 + 23c: 646e6120 strbtvs r6, [lr], #-288 + 240: 74655320 strbtvc r5, [r5], #-800 + 244: 676e6974 undefined + 248: 616d5c73 smcvs 54723 + 24c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 250: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 254: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 258: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 25c: 775c7374 undefined + 260: 6f632d73 svcvs 0x00632d73 + 264: 6f72746e svcvs 0x0072746e + 268: 65575c6c ldrbvs r5, [r7, #-3180] + 26c: 65687461 strbvs r7, [r8, #-1121]! + 270: 74532072 ldrbvc r2, [r3], #-114 + 274: 6f697461 svcvs 0x00697461 + 278: 6f43206e svcvs 0x0043206e + 27c: 6f72746e svcvs 0x0072746e + 280: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 284: 414d535c cmpmi sp, ip, asr r3 + 288: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 28c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 290: 6f535c73 svcvs 0x00535c73 + 294: 65637275 strbvs r7, [r3, #-629]! + 298: 4400005c strmi r0, [r0], #-92 + 29c: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + 2a0: 0100632e tsteq r0, lr, lsr #6 + 2a4: c5d0bea8 ldrbgt fp, [r0, #3752] + 2a8: 00002a04 andeq r2, r0, r4, lsl #20 + 2ac: 3d840205 sfmcc f0, 4, [r4, #20] + 2b0: 01050040 tsteq r5, r0, asr #32 + 2b4: 050e1003 streq r1, [lr, #-3] + 2b8: 05102705 ldreq r2, [r0, #-1797] + 2bc: 237d0303 cmncs sp, #201326592 ; 0xc000000 + 2c0: 01030105 tsteq r3, r5, lsl #2 + 2c4: 00050218 andeq r0, r5, r8, lsl r2 + 2c8: 00000101 andeq r0, r0, r1, lsl #2 + 2cc: 000000ae andeq r0, r0, lr, lsr #1 + 2d0: 00890002 addeq r0, r9, r2 + 2d4: 01020000 tsteq r2, r0 + 2d8: 000a0500 andeq r0, sl, r0, lsl #10 + 2dc: 01010101 tsteq r1, r1, lsl #2 + 2e0: 00000000 andeq r0, r0, r0 + 2e4: 445c3a43 ldrbmi r3, [ip], #-2627 + 2e8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2ec: 73746e65 cmnvc r4, #1616 ; 0x650 + 2f0: 646e6120 strbtvs r6, [lr], #-288 + 2f4: 74655320 strbtvc r5, [r5], #-800 + 2f8: 676e6974 undefined + 2fc: 616d5c73 smcvs 54723 + 300: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 304: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 308: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 30c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 310: 775c7374 undefined + 314: 6f632d73 svcvs 0x00632d73 + 318: 6f72746e svcvs 0x0072746e + 31c: 65575c6c ldrbvs r5, [r7, #-3180] + 320: 65687461 strbvs r7, [r8, #-1121]! + 324: 74532072 ldrbvc r2, [r3], #-114 + 328: 6f697461 svcvs 0x00697461 + 32c: 6f43206e svcvs 0x0043206e + 330: 6f72746e svcvs 0x0072746e + 334: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 338: 414d535c cmpmi sp, ip, asr r3 + 33c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 340: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 344: 6f535c73 svcvs 0x00535c73 + 348: 65637275 strbvs r7, [r3, #-629]! + 34c: 4400005c strmi r0, [r0], #-92 + 350: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + 354: 0100632e tsteq r0, lr, lsr #6 + 358: c5d0bea8 ldrbgt fp, [r0, #3752] + 35c: 00002a04 andeq r2, r0, r4, lsl #20 + 360: 3da80205 sfmcc f0, 4, [r8, #20]! + 364: 01050040 tsteq r5, r0, asr #32 + 368: 050e1c03 streq r1, [lr, #-3075] + 36c: 05102705 ldreq r2, [r0, #-1797] + 370: 237d0303 cmncs sp, #201326592 ; 0xc000000 + 374: 01030105 tsteq r3, r5, lsl #2 + 378: 00020218 andeq r0, r2, r8, lsl r2 + 37c: 00000101 andeq r0, r0, r1, lsl #2 + 380: 00000268 andeq r0, r0, r8, ror #4 + 384: 02620002 rsbeq r0, r2, #2 ; 0x2 + 388: 01010000 tsteq r1, r0 + 38c: 000a0500 andeq r0, sl, r0, lsl #10 + 390: 01010101 tsteq r1, r1, lsl #2 + 394: 00000000 andeq r0, r0, r0 + 398: 445c3a43 ldrbmi r3, [ip], #-2627 + 39c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3a0: 73746e65 cmnvc r4, #1616 ; 0x650 + 3a4: 646e6120 strbtvs r6, [lr], #-288 + 3a8: 74655320 strbtvc r5, [r5], #-800 + 3ac: 676e6974 undefined + 3b0: 616d5c73 smcvs 54723 + 3b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3c4: 775c7374 undefined + 3c8: 6f632d73 svcvs 0x00632d73 + 3cc: 6f72746e svcvs 0x0072746e + 3d0: 65575c6c ldrbvs r5, [r7, #-3180] + 3d4: 65687461 strbvs r7, [r8, #-1121]! + 3d8: 74532072 ldrbvc r2, [r3], #-114 + 3dc: 6f697461 svcvs 0x00697461 + 3e0: 6f43206e svcvs 0x0043206e + 3e4: 6f72746e svcvs 0x0072746e + 3e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3ec: 7070415c rsbsvc r4, r0, ip, asr r1 + 3f0: 6163696c cmnvs r3, ip, ror #18 + 3f4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3f8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 3fc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 400: 005c7365 subseq r7, ip, r5, ror #6 + 404: 445c3a43 ldrbmi r3, [ip], #-2627 + 408: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 40c: 73746e65 cmnvc r4, #1616 ; 0x650 + 410: 646e6120 strbtvs r6, [lr], #-288 + 414: 74655320 strbtvc r5, [r5], #-800 + 418: 676e6974 undefined + 41c: 616d5c73 smcvs 54723 + 420: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 424: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 428: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 42c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 430: 775c7374 undefined + 434: 6f632d73 svcvs 0x00632d73 + 438: 6f72746e svcvs 0x0072746e + 43c: 65575c6c ldrbvs r5, [r7, #-3180] + 440: 65687461 strbvs r7, [r8, #-1121]! + 444: 74532072 ldrbvc r2, [r3], #-114 + 448: 6f697461 svcvs 0x00697461 + 44c: 6f43206e svcvs 0x0043206e + 450: 6f72746e svcvs 0x0072746e + 454: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 458: 4d4c505c stclmi 0, cr5, [ip, #-368] + 45c: 746e495c strbtvc r4, [lr], #-2396 + 460: 61667265 cmnvs r6, r5, ror #4 + 464: 005c6563 subseq r6, ip, r3, ror #10 + 468: 445c3a43 ldrbmi r3, [ip], #-2627 + 46c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 470: 73746e65 cmnvc r4, #1616 ; 0x650 + 474: 646e6120 strbtvs r6, [lr], #-288 + 478: 74655320 strbtvc r5, [r5], #-800 + 47c: 676e6974 undefined + 480: 616d5c73 smcvs 54723 + 484: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 488: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 48c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 490: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 494: 775c7374 undefined + 498: 6f632d73 svcvs 0x00632d73 + 49c: 6f72746e svcvs 0x0072746e + 4a0: 65575c6c ldrbvs r5, [r7, #-3180] + 4a4: 65687461 strbvs r7, [r8, #-1121]! + 4a8: 74532072 ldrbvc r2, [r3], #-114 + 4ac: 6f697461 svcvs 0x00697461 + 4b0: 6f43206e svcvs 0x0043206e + 4b4: 6f72746e svcvs 0x0072746e + 4b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4bc: 4d4c505c stclmi 0, cr5, [ip, #-368] + 4c0: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 4c4: 65746e49 ldrbvs r6, [r4, #-3657]! + 4c8: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 4cc: 43005c65 movwmi r5, #3173 ; 0xc65 + 4d0: 6f445c3a svcvs 0x00445c3a + 4d4: 656d7563 strbvs r7, [sp, #-1379]! + 4d8: 2073746e rsbscs r7, r3, lr, ror #8 + 4dc: 20646e61 rsbcs r6, r4, r1, ror #28 + 4e0: 74746553 ldrbtvc r6, [r4], #-1363 + 4e4: 73676e69 cmnvc r7, #1680 ; 0x690 + 4e8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 4ec: 61726976 cmnvs r2, r6, ror r9 + 4f0: 20794d5c rsbscs r4, r9, ip, asr sp + 4f4: 75636f44 strbvc r6, [r3, #-3908]! + 4f8: 746e656d strbtvc r6, [lr], #-1389 + 4fc: 73775c73 cmnvc r7, #29440 ; 0x7300 + 500: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 504: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 508: 6165575c cmnvs r5, ip, asr r7 + 50c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 510: 61745320 cmnvs r4, r0, lsr #6 + 514: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 518: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 51c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 520: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 524: 43414d53 movtmi r4, #7507 ; 0x1d53 + 528: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 52c: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 530: 746e495c strbtvc r4, [lr], #-2396 + 534: 61667265 cmnvs r6, r5, ror #4 + 538: 005c6563 subseq r6, ip, r3, ror #10 + 53c: 73694400 cmnvc r9, #0 ; 0x0 + 540: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 544: 0100632e tsteq r0, lr, lsr #6 + 548: c5d0bea8 ldrbgt fp, [r0, #3752] + 54c: 440ad804 strmi sp, [sl], #-2052 + 550: 6c707369 ldclvs 3, cr7, [r0], #-420 + 554: 682e7961 stmdavs lr!, {r0, r5, r6, r8, fp, ip, sp, lr} + 558: bea80100 fdvlte f0, f0, f0 + 55c: bd04c5d0 cfstr32lt mvfx12, [r4, #-832] + 560: 44434c02 strbmi r4, [r3], #-3074 + 564: 6e6f465f mcrvs 6, 3, r4, cr15, cr15, {2} + 568: 00682e74 rsbeq r2, r8, r4, ror lr + 56c: d0bea801 adcsle sl, lr, r1, lsl #16 + 570: 453504c5 ldrmi r0, [r5, #-1221]! + 574: 6465626d strbtvs r6, [r5], #-621 + 578: 54646564 strbtpl r6, [r4], #-1380 + 57c: 73657079 cmnvc r5, #121 ; 0x79 + 580: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 584: c0d79d9e smullsgt r9, r7, lr, sp + 588: 52437704 subpl r7, r3, #1048576 ; 0x100000 + 58c: 65525f4d ldrbvs r5, [r2, #-3917] + 590: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 594: 8ff80300 svchi 0x00f80300 + 598: 8104c0d7 ldrdhi ip, [r4, -r7] + 59c: 49504702 ldmdbmi r0, {r1, r8, r9, sl, lr}^ + 5a0: 6e495f4f cdpvs 15, 4, cr5, cr9, cr15, {2} + 5a4: 66726574 undefined + 5a8: 2e656361 cdpcs 3, 6, cr6, cr5, cr1, {3} + 5ac: f8030068 undefined instruction 0xf8030068 + 5b0: 04c0d78f strbeq sp, [r0], #1935 + 5b4: 6c50069e mrrcvs 6, 9, r0, r0, cr14 + 5b8: 6f667461 svcvs 0x00667461 + 5bc: 682e6d72 stmdavs lr!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} + 5c0: 94f20300 ldrbtls r0, [r2], #768 + 5c4: be04c0d7 mcrlt 0, 0, ip, cr4, cr7, {6} + 5c8: 69735303 ldmdbvs r3!, {r0, r1, r8, r9, ip, lr}^ + 5cc: 6765525f undefined + 5d0: 00682e73 rsbeq r2, r8, r3, ror lr + 5d4: 9196cc03 orrsls ip, r6, r3, lsl #24 + 5d8: 01c504ba strheq r0, [r5, #74] + 5dc: 616c6544 cmnvs ip, r4, asr #10 + 5e0: 00682e79 rsbeq r2, r8, r9, ror lr + 5e4: d0bea804 adcsle sl, lr, r4, lsl #16 + 5e8: 001904c5 andseq r0, r9, r5, asr #9 + 5ec: 000000ee andeq r0, r0, lr, ror #1 + 5f0: 008e0002 addeq r0, lr, r2 + 5f4: 01020000 tsteq r2, r0 + 5f8: 000a0500 andeq r0, sl, r0, lsl #10 + 5fc: 01010101 tsteq r1, r1, lsl #2 + 600: 00000000 andeq r0, r0, r0 + 604: 445c3a43 ldrbmi r3, [ip], #-2627 + 608: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 60c: 73746e65 cmnvc r4, #1616 ; 0x650 + 610: 646e6120 strbtvs r6, [lr], #-288 + 614: 74655320 strbtvc r5, [r5], #-800 + 618: 676e6974 undefined + 61c: 616d5c73 smcvs 54723 + 620: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 624: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 628: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 62c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 630: 775c7374 undefined + 634: 6f632d73 svcvs 0x00632d73 + 638: 6f72746e svcvs 0x0072746e + 63c: 65575c6c ldrbvs r5, [r7, #-3180] + 640: 65687461 strbvs r7, [r8, #-1121]! + 644: 74532072 ldrbvc r2, [r3], #-114 + 648: 6f697461 svcvs 0x00697461 + 64c: 6f43206e svcvs 0x0043206e + 650: 6f72746e svcvs 0x0072746e + 654: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 658: 7070415c rsbsvc r4, r0, ip, asr r1 + 65c: 6163696c cmnvs r3, ip, ror #18 + 660: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 664: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 668: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 66c: 005c7365 subseq r7, ip, r5, ror #6 + 670: 73694400 cmnvc r9, #0 ; 0x0 + 674: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 678: 0100632e tsteq r0, lr, lsr #6 + 67c: c5d0bea8 ldrbgt fp, [r0, #3752] + 680: 000ad804 andeq sp, sl, r4, lsl #16 + 684: 64020500 strvs r0, [r2], #-1280 + 688: 05004019 streq r4, [r0, #-25] + 68c: 01fc0301 mvnseq r0, r1, lsl #6 + 690: 1105050e tstne r5, lr, lsl #10 + 694: 1f1f1f1f svcne 0x001f1f1f + 698: 1f1f201f svcne 0x001f201f + 69c: 211f1f1f tstcs pc, pc, lsl pc + 6a0: 1f1f1f1f svcne 0x001f1f1f + 6a4: 1f201f1f svcne 0x00201f1f + 6a8: 1f1f1f1f svcne 0x001f1f1f + 6ac: 2237031f eorscs r0, r7, #2080374784 ; 0x7c000000 + 6b0: 2a292524 bcs a49b48 + 6b4: 2a292a29 bcs a4af60 + 6b8: 05243433 streq r3, [r4, #-1075]! + 6bc: 1f1f2703 svcne 0x001f2703 + 6c0: 051f1f1a ldreq r1, [pc, #-3866] ; fffff7ae + 6c4: 1d170305 ldcne 3, cr0, [r7, #-20] + 6c8: 1c1d1c1a ldcne 12, cr1, [sp], {26} + 6cc: 1d1b1d1c ldcne 13, cr1, [fp, #-112] + 6d0: 1c1a1b1a ldcne 11, cr1, [sl], {26} + 6d4: 01051b1c tsteq r5, ip, lsl fp + 6d8: 0005021a andeq r0, r5, sl, lsl r2 + 6dc: 00000101 andeq r0, r0, r1, lsl #2 + 6e0: 000000d1 ldrdeq r0, [r0], -r1 + 6e4: 008e0002 addeq r0, lr, r2 + 6e8: 01020000 tsteq r2, r0 + 6ec: 000a0500 andeq r0, sl, r0, lsl #10 + 6f0: 01010101 tsteq r1, r1, lsl #2 + 6f4: 00000000 andeq r0, r0, r0 + 6f8: 445c3a43 ldrbmi r3, [ip], #-2627 + 6fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 700: 73746e65 cmnvc r4, #1616 ; 0x650 + 704: 646e6120 strbtvs r6, [lr], #-288 + 708: 74655320 strbtvc r5, [r5], #-800 + 70c: 676e6974 undefined + 710: 616d5c73 smcvs 54723 + 714: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 718: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 71c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 720: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 724: 775c7374 undefined + 728: 6f632d73 svcvs 0x00632d73 + 72c: 6f72746e svcvs 0x0072746e + 730: 65575c6c ldrbvs r5, [r7, #-3180] + 734: 65687461 strbvs r7, [r8, #-1121]! + 738: 74532072 ldrbvc r2, [r3], #-114 + 73c: 6f697461 svcvs 0x00697461 + 740: 6f43206e svcvs 0x0043206e + 744: 6f72746e svcvs 0x0072746e + 748: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 74c: 7070415c rsbsvc r4, r0, ip, asr r1 + 750: 6163696c cmnvs r3, ip, ror #18 + 754: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 758: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 75c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 760: 005c7365 subseq r7, ip, r5, ror #6 + 764: 73694400 cmnvc r9, #0 ; 0x0 + 768: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 76c: 0100632e tsteq r0, lr, lsr #6 + 770: c5d0bea8 ldrbgt fp, [r0, #3752] + 774: 000ad804 andeq sp, sl, r4, lsl #16 + 778: 56020500 strpl r0, [r2], -r0, lsl #10 + 77c: 0500401b streq r4, [r0, #-27] + 780: 03bd0301 undefined instruction 0x03bd0301 + 784: 1211050e andsne r0, r1, #58720256 ; 0x3800000 + 788: 1d0d0305 stcne 3, cr0, [sp, #-20] + 78c: 1c050515 cfstr32ne mvfx0, [r5], {21} + 790: 12070515 andne r0, r7, #88080384 ; 0x5400000 + 794: 05170405 ldreq r0, [r7, #-1029] + 798: 13030307 movwne r0, #13063 ; 0x3307 + 79c: 7e030505 cfsh32vc mvfx0, mvfx3, #5 + 7a0: 2c010319 stccs 3, cr0, [r1], {25} + 7a4: 051c0705 ldreq r0, [ip, #-1797] + 7a8: 05292109 streq r2, [r9, #-265]! + 7ac: 1d010301 stcne 3, cr0, [r1, #-4] + 7b0: 01000702 tsteq r0, r2, lsl #14 + 7b4: 00000001 andeq r0, r0, r1 + 7b8: 000000e4 andeq r0, r0, r4, ror #1 + 7bc: 008e0002 addeq r0, lr, r2 + 7c0: 01020000 tsteq r2, r0 + 7c4: 000a0500 andeq r0, sl, r0, lsl #10 + 7c8: 01010101 tsteq r1, r1, lsl #2 + 7cc: 00000000 andeq r0, r0, r0 + 7d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 7d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 7dc: 646e6120 strbtvs r6, [lr], #-288 + 7e0: 74655320 strbtvc r5, [r5], #-800 + 7e4: 676e6974 undefined + 7e8: 616d5c73 smcvs 54723 + 7ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7fc: 775c7374 undefined + 800: 6f632d73 svcvs 0x00632d73 + 804: 6f72746e svcvs 0x0072746e + 808: 65575c6c ldrbvs r5, [r7, #-3180] + 80c: 65687461 strbvs r7, [r8, #-1121]! + 810: 74532072 ldrbvc r2, [r3], #-114 + 814: 6f697461 svcvs 0x00697461 + 818: 6f43206e svcvs 0x0043206e + 81c: 6f72746e svcvs 0x0072746e + 820: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 824: 7070415c rsbsvc r4, r0, ip, asr r1 + 828: 6163696c cmnvs r3, ip, ror #18 + 82c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 830: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 834: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 838: 005c7365 subseq r7, ip, r5, ror #6 + 83c: 73694400 cmnvc r9, #0 ; 0x0 + 840: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 844: 0100632e tsteq r0, lr, lsr #6 + 848: c5d0bea8 ldrbgt fp, [r0, #3752] + 84c: 000ad804 andeq sp, sl, r4, lsl #16 + 850: b4020500 strlt r0, [r2], #-1280 + 854: 0500401b streq r4, [r0, #-27] + 858: 03f7033d mvnseq r0, #-201326592 ; 0xf4000000 + 85c: 1702050e strne r0, [r2, -lr, lsl #10] + 860: 0105152e tsteq r5, lr, lsr #10 + 864: 13069e03 movwne r9, #28163 ; 0x6e03 + 868: 050b0a05 streq r0, [fp, #-2565] + 86c: 05051413 streq r1, [r5, #-1043] + 870: 051a1a17 ldreq r1, [sl, #-2583] + 874: 0f7d0303 svceq 0x007d0303 + 878: 05270303 streq r0, [r7, #-771]! + 87c: 03051505 movweq r1, #21765 ; 0x5505 + 880: 030e0512 movweq r0, #58642 ; 0xe512 + 884: 051479d2 ldreq r7, [r4, #-2514] + 888: 05241104 streq r1, [r4, #-260]! + 88c: 39051a03 stmdbcc r5, {r0, r1, r9, fp, ip} + 890: 050f7c03 streq r7, [pc, #-3075] ; fffffc95 + 894: 01050f13 tsteq r5, r3, lsl pc + 898: 022c0203 eoreq r0, ip, #805306368 ; 0x30000000 + 89c: 01010006 tsteq r1, r6 + 8a0: 0000012b andeq r0, r0, fp, lsr #2 + 8a4: 008e0002 addeq r0, lr, r2 + 8a8: 01020000 tsteq r2, r0 + 8ac: 000a0500 andeq r0, sl, r0, lsl #10 + 8b0: 01010101 tsteq r1, r1, lsl #2 + 8b4: 00000000 andeq r0, r0, r0 + 8b8: 445c3a43 ldrbmi r3, [ip], #-2627 + 8bc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8c0: 73746e65 cmnvc r4, #1616 ; 0x650 + 8c4: 646e6120 strbtvs r6, [lr], #-288 + 8c8: 74655320 strbtvc r5, [r5], #-800 + 8cc: 676e6974 undefined + 8d0: 616d5c73 smcvs 54723 + 8d4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8d8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8dc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8e0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8e4: 775c7374 undefined + 8e8: 6f632d73 svcvs 0x00632d73 + 8ec: 6f72746e svcvs 0x0072746e + 8f0: 65575c6c ldrbvs r5, [r7, #-3180] + 8f4: 65687461 strbvs r7, [r8, #-1121]! + 8f8: 74532072 ldrbvc r2, [r3], #-114 + 8fc: 6f697461 svcvs 0x00697461 + 900: 6f43206e svcvs 0x0043206e + 904: 6f72746e svcvs 0x0072746e + 908: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 90c: 7070415c rsbsvc r4, r0, ip, asr r1 + 910: 6163696c cmnvs r3, ip, ror #18 + 914: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 918: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 91c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 920: 005c7365 subseq r7, ip, r5, ror #6 + 924: 73694400 cmnvc r9, #0 ; 0x0 + 928: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 92c: 0100632e tsteq r0, lr, lsr #6 + 930: c5d0bea8 ldrbgt fp, [r0, #3752] + 934: 000ad804 andeq sp, sl, r4, lsl #16 + 938: 24020500 strcs r0, [r2], #-1280 + 93c: 0500401c streq r4, [r0, #-28] + 940: 04990301 ldreq r0, [r9], #769 + 944: 1b0b050e blne 2c1d84 + 948: 050f1905 streq r1, [pc, #-2309] ; 4b + 94c: 13050b0b movwne r0, #23307 ; 0x5b0b + 950: 0a17051e beq 5c1dd0 + 954: 05130305 ldreq r0, [r3, #-773] + 958: 05051602 streq r1, [r5, #-1538] + 95c: 15070515 strne r0, [r7, #-1301] + 960: 160a051a undefined + 964: 1a1f0705 bne 7c2580 + 968: 05160a05 ldreq r0, [r6, #-2565] + 96c: 131a1a07 tstne sl, #28672 ; 0x7000 + 970: 1f5b0905 svcne 0x005b0905 + 974: 2007052b andcs r0, r7, fp, lsr #10 + 978: 78031605 stmdavc r3, {r0, r2, r9, sl, ip} + 97c: 190e0523 stmdbne lr, {r0, r1, r5, r8, sl} + 980: 06030505 streq r0, [r3], -r5, lsl #10 + 984: 07052422 streq r2, [r5, -r2, lsr #8] + 988: 05051f1b streq r1, [r5, #-3867] + 98c: 2c197e03 ldccs 14, cr7, [r9], {3} + 990: 05160705 ldreq r0, [r6, #-1797] + 994: 2d7f0305 ldclcs 3, cr0, [pc, #-20]! + 998: 0805152b stmdaeq r5, {r0, r1, r3, r5, r8, sl, ip} + 99c: 2007052a andcs r0, r7, sl, lsr #10 + 9a0: 0a051029 beq 144a4c + 9a4: 1a05051b bne 141e18 + 9a8: 1607051a undefined + 9ac: 7f030505 svcvc 0x00030505 + 9b0: 20151d2d andscs r1, r5, sp, lsr #26 + 9b4: 1f1b0705 svcne 0x001b0705 + 9b8: 7e030505 cfsh32vc mvfx0, mvfx3, #5 + 9bc: 05102c19 ldreq r2, [r0, #-3097] + 9c0: 05052407 streq r2, [r5, #-1031] + 9c4: 05360203 ldreq r0, [r6, #-515]! + 9c8: 09022501 stmdbeq r2, {r0, r8, sl, sp} + 9cc: 00010100 andeq r0, r1, r0, lsl #2 + 9d0: 00000148 andeq r0, r0, r8, asr #2 + 9d4: 008e0002 addeq r0, lr, r2 + 9d8: 01020000 tsteq r2, r0 + 9dc: 000a0500 andeq r0, sl, r0, lsl #10 + 9e0: 01010101 tsteq r1, r1, lsl #2 + 9e4: 00000000 andeq r0, r0, r0 + 9e8: 445c3a43 ldrbmi r3, [ip], #-2627 + 9ec: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9f0: 73746e65 cmnvc r4, #1616 ; 0x650 + 9f4: 646e6120 strbtvs r6, [lr], #-288 + 9f8: 74655320 strbtvc r5, [r5], #-800 + 9fc: 676e6974 undefined + a00: 616d5c73 smcvs 54723 + a04: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a08: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a0c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a10: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a14: 775c7374 undefined + a18: 6f632d73 svcvs 0x00632d73 + a1c: 6f72746e svcvs 0x0072746e + a20: 65575c6c ldrbvs r5, [r7, #-3180] + a24: 65687461 strbvs r7, [r8, #-1121]! + a28: 74532072 ldrbvc r2, [r3], #-114 + a2c: 6f697461 svcvs 0x00697461 + a30: 6f43206e svcvs 0x0043206e + a34: 6f72746e svcvs 0x0072746e + a38: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a3c: 7070415c rsbsvc r4, r0, ip, asr r1 + a40: 6163696c cmnvs r3, ip, ror #18 + a44: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a48: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + a4c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + a50: 005c7365 subseq r7, ip, r5, ror #6 + a54: 73694400 cmnvc r9, #0 ; 0x0 + a58: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + a5c: 0100632e tsteq r0, lr, lsr #6 + a60: c5d0bea8 ldrbgt fp, [r0, #3752] + a64: 000ad804 andeq sp, sl, r4, lsl #16 + a68: bc020500 cfstr32lt mvfx0, [r2], {0} + a6c: 0500401d streq r4, [r0, #-29] + a70: 04ef0301 strbteq r0, [pc], #769 ; a78 <__USR_stack_size+0x278> + a74: 160b050e strne r0, [fp], -lr, lsl #10 + a78: 050f1905 streq r1, [pc, #-2309] ; 17b <__ABT_stack_size+0x7b> + a7c: 13050b0b movwne r0, #23307 ; 0x5b0b + a80: 0a17051e beq 5c1f00 + a84: 05241405 streq r1, [r4, #-1029]! + a88: 0e020303 cdpeq 3, 0, cr0, cr2, cr3, {0} + a8c: 05160205 ldreq r0, [r6, #-517] + a90: 05202405 streq r2, [r0, #-1029]! + a94: 09051107 stmdbeq r5, {r0, r1, r2, r8, ip} + a98: 0c051a25 stceq 10, cr1, [r5], {37} + a9c: 29090516 stmdbcs r9, {r1, r2, r4, r8, sl} + aa0: 16070515 undefined + aa4: 05240905 streq r0, [r4, #-2309]! + aa8: 351f570b ldrcc r5, [pc, #-1803] ; 3a5 <__ABT_stack_size+0x2a5> + aac: 05200905 streq r0, [r0, #-2309]! + ab0: 28770318 ldmdacs r7!, {r3, r4, r8, r9}^ + ab4: 050f1005 streq r1, [pc, #-5] ; ab7 <__USR_stack_size+0x2b7> + ab8: 13070307 movwne r0, #29447 ; 0x7307 + abc: 051b0905 ldreq r0, [fp, #-2309] + ac0: 25053407 strcs r3, [r5, #-1031] + ac4: 05236603 streq r6, [r3, #-1539]! + ac8: 05051917 streq r1, [r5, #-2327] + acc: 0b361903 bleq d86ee0 + ad0: 1f1d0705 svcne 0x001d0705 + ad4: 7d030505 cfstr32vc mvfx0, [r3, #-20] + ad8: 2c010319 stccs 3, cr0, [r1], {25} + adc: 05120705 ldreq r0, [r2, #-1797] + ae0: 2d7f0305 ldclcs 3, cr0, [pc, #-20]! + ae4: 1208052b andne r0, r8, #180355072 ; 0xac00000 + ae8: 38250705 stmdacc r5!, {r0, r2, r8, r9, sl} + aec: 1b0a0524 blne 281f84 + af0: 24150505 ldrcs r0, [r5], #-1285 + af4: 05160705 ldreq r0, [r6, #-1797] + af8: 2d7f0305 ldclcs 3, cr0, [pc, #-20]! + afc: 0520151d streq r1, [r0, #-1309]! + b00: 051f1b07 ldreq r1, [pc, #-2823] ; 1 + b04: 197e0305 ldmdbne lr!, {r0, r2, r8, r9}^ + b08: 1607052c strne r0, [r7], -ip, lsr #10 + b0c: 7f030505 svcvc 0x00030505 + b10: 301a262d andscc r2, sl, sp, lsr #12 + b14: 02250105 eoreq r0, r5, #1073741825 ; 0x40000001 + b18: 0101000a tsteq r1, sl + b1c: 000000e2 andeq r0, r0, r2, ror #1 + b20: 008e0002 addeq r0, lr, r2 + b24: 01020000 tsteq r2, r0 + b28: 000a0500 andeq r0, sl, r0, lsl #10 + b2c: 01010101 tsteq r1, r1, lsl #2 + b30: 00000000 andeq r0, r0, r0 + b34: 445c3a43 ldrbmi r3, [ip], #-2627 + b38: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b3c: 73746e65 cmnvc r4, #1616 ; 0x650 + b40: 646e6120 strbtvs r6, [lr], #-288 + b44: 74655320 strbtvc r5, [r5], #-800 + b48: 676e6974 undefined + b4c: 616d5c73 smcvs 54723 + b50: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b54: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b58: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b5c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b60: 775c7374 undefined + b64: 6f632d73 svcvs 0x00632d73 + b68: 6f72746e svcvs 0x0072746e + b6c: 65575c6c ldrbvs r5, [r7, #-3180] + b70: 65687461 strbvs r7, [r8, #-1121]! + b74: 74532072 ldrbvc r2, [r3], #-114 + b78: 6f697461 svcvs 0x00697461 + b7c: 6f43206e svcvs 0x0043206e + b80: 6f72746e svcvs 0x0072746e + b84: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b88: 7070415c rsbsvc r4, r0, ip, asr r1 + b8c: 6163696c cmnvs r3, ip, ror #18 + b90: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b94: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + b98: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + b9c: 005c7365 subseq r7, ip, r5, ror #6 + ba0: 73694400 cmnvc r9, #0 ; 0x0 + ba4: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + ba8: 0100632e tsteq r0, lr, lsr #6 + bac: c5d0bea8 ldrbgt fp, [r0, #3752] + bb0: 000ad804 andeq sp, sl, r4, lsl #16 + bb4: ac020500 cfstr32ge mvfx0, [r2], {0} + bb8: 0500401f streq r4, [r0, #-31] + bbc: 06980301 ldreq r0, [r8], r1, lsl #6 + bc0: 1603050e strne r0, [r3], -lr, lsl #10 + bc4: 01051f1b tsteq r5, fp, lsl pc + bc8: 0e02f903 cdpeq 9, 0, cr15, cr2, cr3, {0} + bcc: 09030505 stmdbeq r3, {r0, r2, r8, sl} + bd0: 0305240e movweq r2, #21518 ; 0x540e + bd4: 237cf603 cmnpcs ip, #3145728 ; 0x300000 + bd8: 8a030105 bhi c0ff4 + bdc: 03050e03 movweq r0, #24067 ; 0x5e03 + be0: 1e7cf303 cdpne 3, 7, cr15, cr12, cr3, {0} + be4: 0301051f movweq r0, #5407 ; 0x151f + be8: 050e02b9 streq r0, [lr, #-697] + bec: 0e080305 cdpeq 3, 0, cr0, cr8, cr5, {0} + bf0: 03030524 movweq r0, #13604 ; 0x3524 + bf4: 05237db7 streq r7, [r3, #-3511]! + bf8: 02c80301 sbceq r0, r8, #67108864 ; 0x4000000 + bfc: 0003020e andeq r0, r3, lr, lsl #4 + c00: 00000101 andeq r0, r0, r1, lsl #2 + c04: 000000de ldrdeq r0, [r0], -lr + c08: 008e0002 addeq r0, lr, r2 + c0c: 01020000 tsteq r2, r0 + c10: 000a0500 andeq r0, sl, r0, lsl #10 + c14: 01010101 tsteq r1, r1, lsl #2 + c18: 00000000 andeq r0, r0, r0 + c1c: 445c3a43 ldrbmi r3, [ip], #-2627 + c20: 6d75636f ldclvs 3, cr6, [r5, #-444]! + c24: 73746e65 cmnvc r4, #1616 ; 0x650 + c28: 646e6120 strbtvs r6, [lr], #-288 + c2c: 74655320 strbtvc r5, [r5], #-800 + c30: 676e6974 undefined + c34: 616d5c73 smcvs 54723 + c38: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + c3c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + c40: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + c44: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + c48: 775c7374 undefined + c4c: 6f632d73 svcvs 0x00632d73 + c50: 6f72746e svcvs 0x0072746e + c54: 65575c6c ldrbvs r5, [r7, #-3180] + c58: 65687461 strbvs r7, [r8, #-1121]! + c5c: 74532072 ldrbvc r2, [r3], #-114 + c60: 6f697461 svcvs 0x00697461 + c64: 6f43206e svcvs 0x0043206e + c68: 6f72746e svcvs 0x0072746e + c6c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + c70: 7070415c rsbsvc r4, r0, ip, asr r1 + c74: 6163696c cmnvs r3, ip, ror #18 + c78: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + c7c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + c80: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + c84: 005c7365 subseq r7, ip, r5, ror #6 + c88: 73694400 cmnvc r9, #0 ; 0x0 + c8c: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + c90: 0100632e tsteq r0, lr, lsr #6 + c94: c5d0bea8 ldrbgt fp, [r0, #3752] + c98: 000ad804 andeq sp, sl, r4, lsl #16 + c9c: fc020500 stc2 5, cr0, [r2], {0} + ca0: 0500401f streq r4, [r0, #-31] + ca4: 06b40301 ldrteq r0, [r4], r1, lsl #6 + ca8: 1603050e strne r0, [r3], -lr, lsl #10 + cac: 051f1a1b ldreq r1, [pc, #-2587] ; 299 <__ABT_stack_size+0x199> + cb0: 02dc0301 sbcseq r0, ip, #67108864 ; 0x4000000 + cb4: 0305050e movweq r0, #21774 ; 0x550e + cb8: 05240e09 streq r0, [r4, #-3593]! + cbc: 7d930303 ldcvc 3, cr0, [r3, #12] + cc0: 03010523 movweq r0, #5411 ; 0x1523 + cc4: 030e02ed movweq r0, #58093 ; 0xe2ed + cc8: 050a7fb1 streq r7, [sl, #-4017] + ccc: 0e080305 cdpeq 3, 0, cr0, cr8, cr5, {0} + cd0: 03030524 movweq r0, #13604 ; 0x3524 + cd4: 05237dd2 streq r7, [r3, #-3538]! + cd8: 02ad0301 adceq r0, sp, #67108864 ; 0x4000000 + cdc: 0303050e movweq r0, #13582 ; 0x350e + ce0: 001e7dd0 ldrsbeq r7, [lr], -r0 + ce4: 00000101 andeq r0, r0, r1, lsl #2 + ce8: 000000e3 andeq r0, r0, r3, ror #1 + cec: 008e0002 addeq r0, lr, r2 + cf0: 01020000 tsteq r2, r0 + cf4: 000a0500 andeq r0, sl, r0, lsl #10 + cf8: 01010101 tsteq r1, r1, lsl #2 + cfc: 00000000 andeq r0, r0, r0 + d00: 445c3a43 ldrbmi r3, [ip], #-2627 + d04: 6d75636f ldclvs 3, cr6, [r5, #-444]! + d08: 73746e65 cmnvc r4, #1616 ; 0x650 + d0c: 646e6120 strbtvs r6, [lr], #-288 + d10: 74655320 strbtvc r5, [r5], #-800 + d14: 676e6974 undefined + d18: 616d5c73 smcvs 54723 + d1c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + d20: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + d24: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + d28: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + d2c: 775c7374 undefined + d30: 6f632d73 svcvs 0x00632d73 + d34: 6f72746e svcvs 0x0072746e + d38: 65575c6c ldrbvs r5, [r7, #-3180] + d3c: 65687461 strbvs r7, [r8, #-1121]! + d40: 74532072 ldrbvc r2, [r3], #-114 + d44: 6f697461 svcvs 0x00697461 + d48: 6f43206e svcvs 0x0043206e + d4c: 6f72746e svcvs 0x0072746e + d50: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + d54: 7070415c rsbsvc r4, r0, ip, asr r1 + d58: 6163696c cmnvs r3, ip, ror #18 + d5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + d60: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + d64: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + d68: 005c7365 subseq r7, ip, r5, ror #6 + d6c: 73694400 cmnvc r9, #0 ; 0x0 + d70: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + d74: 0100632e tsteq r0, lr, lsr #6 + d78: c5d0bea8 ldrbgt fp, [r0, #3752] + d7c: 000ad804 andeq sp, sl, r4, lsl #16 + d80: 44020500 strmi r0, [r2], #-1280 + d84: 05004020 streq r4, [r0, #-32] + d88: 06be0303 ldrteq r0, [lr], r3, lsl #6 + d8c: 0a64031d beq 1901a08 + d90: 03221903 teqeq r2, #49152 ; 0xc000 + d94: 19030a64 stmdbne r3, {r2, r5, r6, r9, fp} + d98: 0a640322 beq 1901a28 + d9c: d3030105 movwle r0, #12549 ; 0x3105 + da0: 05050e02 streq r0, [r5, #-3586] + da4: 050e0803 streq r0, [lr, #-2051] + da8: 0a740301 beq 1d019b4 + dac: 08030505 stmdaeq r3, {r0, r2, r8, sl} + db0: 050a290e streq r2, [sl, #-2318] + db4: 7db90303 ldcvc 3, cr0, [r9, #12]! + db8: 0a640328 beq 1901a60 + dbc: e3030105 movw r0, #12549 ; 0x3105 + dc0: 030a0e02 movweq r0, #44546 ; 0xae02 + dc4: 03197db7 tsteq r9, #11712 ; 0x2dc0 + dc8: 06020a63 streq r0, [r2], -r3, ror #20 + dcc: 00010100 andeq r0, r1, r0, lsl #2 + dd0: 000000af andeq r0, r0, pc, lsr #1 + dd4: 008e0002 addeq r0, lr, r2 + dd8: 01020000 tsteq r2, r0 + ddc: 000a0500 andeq r0, sl, r0, lsl #10 + de0: 01010101 tsteq r1, r1, lsl #2 + de4: 00000000 andeq r0, r0, r0 + de8: 445c3a43 ldrbmi r3, [ip], #-2627 + dec: 6d75636f ldclvs 3, cr6, [r5, #-444]! + df0: 73746e65 cmnvc r4, #1616 ; 0x650 + df4: 646e6120 strbtvs r6, [lr], #-288 + df8: 74655320 strbtvc r5, [r5], #-800 + dfc: 676e6974 undefined + e00: 616d5c73 smcvs 54723 + e04: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + e08: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + e0c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + e10: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + e14: 775c7374 undefined + e18: 6f632d73 svcvs 0x00632d73 + e1c: 6f72746e svcvs 0x0072746e + e20: 65575c6c ldrbvs r5, [r7, #-3180] + e24: 65687461 strbvs r7, [r8, #-1121]! + e28: 74532072 ldrbvc r2, [r3], #-114 + e2c: 6f697461 svcvs 0x00697461 + e30: 6f43206e svcvs 0x0043206e + e34: 6f72746e svcvs 0x0072746e + e38: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + e3c: 7070415c rsbsvc r4, r0, ip, asr r1 + e40: 6163696c cmnvs r3, ip, ror #18 + e44: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + e48: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + e4c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + e50: 005c7365 subseq r7, ip, r5, ror #6 + e54: 73694400 cmnvc r9, #0 ; 0x0 + e58: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + e5c: 0100632e tsteq r0, lr, lsr #6 + e60: c5d0bea8 ldrbgt fp, [r0, #3752] + e64: 000ad804 andeq sp, sl, r4, lsl #16 + e68: 84020500 strhi r0, [r2], #-1280 + e6c: 05004020 streq r4, [r0, #-32] + e70: 06d30301 ldrbeq r0, [r3], r1, lsl #6 + e74: 0c03050e cfstr32eq mvfx0, [r3], {14} + e78: 1605051b undefined + e7c: 07021815 smladeq r2, r5, r8, r1 + e80: 00010100 andeq r0, r1, r0, lsl #2 + e84: 000000ad andeq r0, r0, sp, lsr #1 + e88: 008e0002 addeq r0, lr, r2 + e8c: 01020000 tsteq r2, r0 + e90: 000a0500 andeq r0, sl, r0, lsl #10 + e94: 01010101 tsteq r1, r1, lsl #2 + e98: 00000000 andeq r0, r0, r0 + e9c: 445c3a43 ldrbmi r3, [ip], #-2627 + ea0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + ea4: 73746e65 cmnvc r4, #1616 ; 0x650 + ea8: 646e6120 strbtvs r6, [lr], #-288 + eac: 74655320 strbtvc r5, [r5], #-800 + eb0: 676e6974 undefined + eb4: 616d5c73 smcvs 54723 + eb8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + ebc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + ec0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + ec4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + ec8: 775c7374 undefined + ecc: 6f632d73 svcvs 0x00632d73 + ed0: 6f72746e svcvs 0x0072746e + ed4: 65575c6c ldrbvs r5, [r7, #-3180] + ed8: 65687461 strbvs r7, [r8, #-1121]! + edc: 74532072 ldrbvc r2, [r3], #-114 + ee0: 6f697461 svcvs 0x00697461 + ee4: 6f43206e svcvs 0x0043206e + ee8: 6f72746e svcvs 0x0072746e + eec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ef0: 7070415c rsbsvc r4, r0, ip, asr r1 + ef4: 6163696c cmnvs r3, ip, ror #18 + ef8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + efc: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + f00: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + f04: 005c7365 subseq r7, ip, r5, ror #6 + f08: 73694400 cmnvc r9, #0 ; 0x0 + f0c: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + f10: 0100632e tsteq r0, lr, lsr #6 + f14: c5d0bea8 ldrbgt fp, [r0, #3752] + f18: 000ad804 andeq sp, sl, r4, lsl #16 + f1c: a4020500 strge r0, [r2], #-1280 + f20: 05004020 streq r4, [r0, #-32] + f24: 078a0301 streq r0, [sl, r1, lsl #6] + f28: 1105050e tstne r5, lr, lsl #10 + f2c: 1a01051f bne 423b0 + f30: 01000302 tsteq r0, r2, lsl #6 + f34: 00000001 andeq r0, r0, r1 + f38: 00000122 andeq r0, r0, r2, lsr #2 + f3c: 008e0002 addeq r0, lr, r2 + f40: 01020000 tsteq r2, r0 + f44: 000a0500 andeq r0, sl, r0, lsl #10 + f48: 01010101 tsteq r1, r1, lsl #2 + f4c: 00000000 andeq r0, r0, r0 + f50: 445c3a43 ldrbmi r3, [ip], #-2627 + f54: 6d75636f ldclvs 3, cr6, [r5, #-444]! + f58: 73746e65 cmnvc r4, #1616 ; 0x650 + f5c: 646e6120 strbtvs r6, [lr], #-288 + f60: 74655320 strbtvc r5, [r5], #-800 + f64: 676e6974 undefined + f68: 616d5c73 smcvs 54723 + f6c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + f70: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + f74: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + f78: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + f7c: 775c7374 undefined + f80: 6f632d73 svcvs 0x00632d73 + f84: 6f72746e svcvs 0x0072746e + f88: 65575c6c ldrbvs r5, [r7, #-3180] + f8c: 65687461 strbvs r7, [r8, #-1121]! + f90: 74532072 ldrbvc r2, [r3], #-114 + f94: 6f697461 svcvs 0x00697461 + f98: 6f43206e svcvs 0x0043206e + f9c: 6f72746e svcvs 0x0072746e + fa0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + fa4: 7070415c rsbsvc r4, r0, ip, asr r1 + fa8: 6163696c cmnvs r3, ip, ror #18 + fac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + fb0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + fb4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + fb8: 005c7365 subseq r7, ip, r5, ror #6 + fbc: 73694400 cmnvc r9, #0 ; 0x0 + fc0: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + fc4: 0100632e tsteq r0, lr, lsr #6 + fc8: c5d0bea8 ldrbgt fp, [r0, #3752] + fcc: 000ad804 andeq sp, sl, r4, lsl #16 + fd0: ba020500 blt 823d8 + fd4: 05004020 streq r4, [r0, #-32] + fd8: 079c0301 ldreq r0, [ip, r1, lsl #6] + fdc: 2203050e andcs r0, r3, #58720256 ; 0x3800000 + fe0: 152c0103 strne r0, [ip, #-259]! + fe4: 42291a16 eormi r1, r9, #90112 ; 0x16000 + fe8: 03010516 movweq r0, #5398 ; 0x1516 + fec: 050e02a1 streq r0, [lr, #-673] + ff0: 1f1f0c03 svcne 0x001f0c03 + ff4: 051a1f1a ldreq r1, [sl, #-3866] + ff8: 0e100301 cdpeq 3, 1, cr0, cr0, cr1, {0} + ffc: 050b1405 streq r1, [fp, #-1029] + 1000: 0e130305 cdpeq 3, 1, cr0, cr3, cr5, {0} + 1004: 03050b1f movweq r0, #23327 ; 0x5b1f + 1008: 051e5303 ldreq r5, [lr, #-771] + 100c: 0e2a0305 cdpeq 3, 2, cr0, cr10, cr5, {0} + 1010: 0303050e movweq r0, #13582 ; 0x350e + 1014: 031f1e4f tsteq pc, #1264 ; 0x4f0 + 1018: 03197dd2 tsteq r9, #13440 ; 0x3480 + 101c: 050e02ab streq r0, [lr, #-683] + 1020: 0a750301 beq 1d41c2c + 1024: 1f0c0305 svcne 0x000c0305 + 1028: 1a1f1a1f bne 7c78ac + 102c: 10030105 andne r0, r3, r5, lsl #2 + 1030: 0b14050e bleq 502470 + 1034: 13030505 movwne r0, #13573 ; 0x3505 + 1038: 051f1f0e ldreq r1, [pc, #-3854] ; 132 <__ABT_stack_size+0x32> + 103c: 1e530303 cdpne 3, 5, cr0, cr3, cr3, {0} + 1040: 2a030505 bcs c245c + 1044: 03050e0e movweq r0, #24078 ; 0x5e0e + 1048: 1f1e4f03 svcne 0x001e4f03 + 104c: 7dd3031a ldclvc 3, cr0, [r3, #104] + 1050: 1f1f1a23 svcne 0x001f1a23 + 1054: 0c05052f cfstr32eq mvfx0, [r5], {47} + 1058: 0006022c andeq r0, r6, ip, lsr #4 + 105c: 00000101 andeq r0, r0, r1, lsl #2 + 1060: 000000ea andeq r0, r0, sl, ror #1 + 1064: 008e0002 addeq r0, lr, r2 + 1068: 01020000 tsteq r2, r0 + 106c: 000a0500 andeq r0, sl, r0, lsl #10 + 1070: 01010101 tsteq r1, r1, lsl #2 + 1074: 00000000 andeq r0, r0, r0 + 1078: 445c3a43 ldrbmi r3, [ip], #-2627 + 107c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1080: 73746e65 cmnvc r4, #1616 ; 0x650 + 1084: 646e6120 strbtvs r6, [lr], #-288 + 1088: 74655320 strbtvc r5, [r5], #-800 + 108c: 676e6974 undefined + 1090: 616d5c73 smcvs 54723 + 1094: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1098: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 109c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 10a0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 10a4: 775c7374 undefined + 10a8: 6f632d73 svcvs 0x00632d73 + 10ac: 6f72746e svcvs 0x0072746e + 10b0: 65575c6c ldrbvs r5, [r7, #-3180] + 10b4: 65687461 strbvs r7, [r8, #-1121]! + 10b8: 74532072 ldrbvc r2, [r3], #-114 + 10bc: 6f697461 svcvs 0x00697461 + 10c0: 6f43206e svcvs 0x0043206e + 10c4: 6f72746e svcvs 0x0072746e + 10c8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 10cc: 7070415c rsbsvc r4, r0, ip, asr r1 + 10d0: 6163696c cmnvs r3, ip, ror #18 + 10d4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 10d8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 10dc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 10e0: 005c7365 subseq r7, ip, r5, ror #6 + 10e4: 73694400 cmnvc r9, #0 ; 0x0 + 10e8: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 10ec: 0100632e tsteq r0, lr, lsr #6 + 10f0: c5d0bea8 ldrbgt fp, [r0, #3752] + 10f4: 000ad804 andeq sp, sl, r4, lsl #16 + 10f8: e4020500 str r0, [r2], #-1280 + 10fc: 05004021 streq r4, [r0, #-33] + 1100: 07cc0301 strbeq r0, [ip, r1, lsl #6] + 1104: 1a0c050e bne 302544 + 1108: 030e0305 movweq r0, #58117 ; 0xe305 + 110c: 056a2c01 strbeq r2, [sl, #-3073]! + 1110: 0e120307 cdpeq 3, 1, cr0, cr2, cr7, {0} + 1114: 7a030905 bvc c3530 + 1118: 417d0337 cmnmi sp, r7, lsr r3 + 111c: 07030505 streq r0, [r3, -r5, lsl #10] + 1120: 0303055e movweq r0, #13662 ; 0x355e + 1124: 05050f6e streq r0, [r5, #-3950] + 1128: 01051a16 tsteq r5, r6, lsl sl + 112c: 0e01d603 cfmadd32eq mvax0, mvfx13, mvfx1, mvfx3 + 1130: 0c0e0305 stceq 3, cr0, [lr], {5} + 1134: 051f331a ldreq r3, [pc, #-794] ; e22 <__USR_stack_size+0x622> + 1138: 7e9f0305 cdpvc 3, 9, cr0, cr15, cr5, {0} + 113c: 03010528 movweq r0, #5416 ; 0x1528 + 1140: 050e01de streq r0, [lr, #-478] + 1144: 7e9f0305 cdpvc 3, 9, cr0, cr15, cr5, {0} + 1148: 0002022d andeq r0, r2, sp, lsr #4 + 114c: 00000101 andeq r0, r0, r1, lsl #2 + 1150: 00000022 andeq r0, r0, r2, lsr #32 + 1154: 00100002 andseq r0, r0, r2 + 1158: 01020000 tsteq r2, r0 + 115c: 000a0500 andeq r0, sl, r0, lsl #10 + 1160: 01010101 tsteq r1, r1, lsl #2 + 1164: 00000000 andeq r0, r0, r0 + 1168: 05000000 streq r0, [r0] + 116c: 4022ac02 eormi sl, r2, r2, lsl #24 + 1170: 00120200 andseq r0, r2, r0, lsl #4 + 1174: 00000101 andeq r0, r0, r1, lsl #2 + 1178: 000000d1 ldrdeq r0, [r0], -r1 + 117c: 008e0002 addeq r0, lr, r2 + 1180: 01020000 tsteq r2, r0 + 1184: 000a0500 andeq r0, sl, r0, lsl #10 + 1188: 01010101 tsteq r1, r1, lsl #2 + 118c: 00000000 andeq r0, r0, r0 + 1190: 445c3a43 ldrbmi r3, [ip], #-2627 + 1194: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1198: 73746e65 cmnvc r4, #1616 ; 0x650 + 119c: 646e6120 strbtvs r6, [lr], #-288 + 11a0: 74655320 strbtvc r5, [r5], #-800 + 11a4: 676e6974 undefined + 11a8: 616d5c73 smcvs 54723 + 11ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 11b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 11b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 11b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 11bc: 775c7374 undefined + 11c0: 6f632d73 svcvs 0x00632d73 + 11c4: 6f72746e svcvs 0x0072746e + 11c8: 65575c6c ldrbvs r5, [r7, #-3180] + 11cc: 65687461 strbvs r7, [r8, #-1121]! + 11d0: 74532072 ldrbvc r2, [r3], #-114 + 11d4: 6f697461 svcvs 0x00697461 + 11d8: 6f43206e svcvs 0x0043206e + 11dc: 6f72746e svcvs 0x0072746e + 11e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 11e4: 7070415c rsbsvc r4, r0, ip, asr r1 + 11e8: 6163696c cmnvs r3, ip, ror #18 + 11ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 11f0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 11f4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 11f8: 005c7365 subseq r7, ip, r5, ror #6 + 11fc: 73694400 cmnvc r9, #0 ; 0x0 + 1200: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 1204: 0100632e tsteq r0, lr, lsr #6 + 1208: c5d0bea8 ldrbgt fp, [r0, #3752] + 120c: 000ad804 andeq sp, sl, r4, lsl #16 + 1210: d0020500 andle r0, r2, r0, lsl #10 + 1214: 05004022 streq r4, [r0, #-34] + 1218: 08800301 stmeq r0, {r0, r8, r9} + 121c: 2103050e tstcs r3, lr, lsl #10 + 1220: b3030105 movwlt r0, #12549 ; 0x3105 + 1224: 03050e01 movweq r0, #24065 ; 0x5e01 + 1228: 291a0c0e ldmdbcs sl, {r1, r2, r3, sl, fp} + 122c: 7ec10324 cdpvc 3, 12, cr0, cr1, cr4, {1} + 1230: 0301051e movweq r0, #5406 ; 0x151e + 1234: 050e01bc streq r0, [lr, #-444] + 1238: 7ec20305 cdpvc 3, 12, cr0, cr2, cr5, {0} + 123c: 0327050f teqeq r7, #62914560 ; 0x3c00000 + 1240: 1805197e stmdane r5, {r1, r2, r3, r4, r5, r6, r8, fp, ip} + 1244: 18010519 stmdane r1, {r0, r3, r4, r8, sl} + 1248: 01000502 tsteq r0, r2, lsl #10 + 124c: 00000001 andeq r0, r0, r1 + 1250: 000000c3 andeq r0, r0, r3, asr #1 + 1254: 008e0002 addeq r0, lr, r2 + 1258: 01020000 tsteq r2, r0 + 125c: 000a0500 andeq r0, sl, r0, lsl #10 + 1260: 01010101 tsteq r1, r1, lsl #2 + 1264: 00000000 andeq r0, r0, r0 + 1268: 445c3a43 ldrbmi r3, [ip], #-2627 + 126c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1270: 73746e65 cmnvc r4, #1616 ; 0x650 + 1274: 646e6120 strbtvs r6, [lr], #-288 + 1278: 74655320 strbtvc r5, [r5], #-800 + 127c: 676e6974 undefined + 1280: 616d5c73 smcvs 54723 + 1284: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1288: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 128c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1290: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1294: 775c7374 undefined + 1298: 6f632d73 svcvs 0x00632d73 + 129c: 6f72746e svcvs 0x0072746e + 12a0: 65575c6c ldrbvs r5, [r7, #-3180] + 12a4: 65687461 strbvs r7, [r8, #-1121]! + 12a8: 74532072 ldrbvc r2, [r3], #-114 + 12ac: 6f697461 svcvs 0x00697461 + 12b0: 6f43206e svcvs 0x0043206e + 12b4: 6f72746e svcvs 0x0072746e + 12b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 12bc: 7070415c rsbsvc r4, r0, ip, asr r1 + 12c0: 6163696c cmnvs r3, ip, ror #18 + 12c4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 12c8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 12cc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 12d0: 005c7365 subseq r7, ip, r5, ror #6 + 12d4: 73694400 cmnvc r9, #0 ; 0x0 + 12d8: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 12dc: 0100632e tsteq r0, lr, lsr #6 + 12e0: c5d0bea8 ldrbgt fp, [r0, #3752] + 12e4: 000ad804 andeq sp, sl, r4, lsl #16 + 12e8: 18020500 stmdane r2, {r8, sl} + 12ec: 05004023 streq r4, [r0, #-35] + 12f0: 089a0301 ldmeq sl, {r0, r8, r9} + 12f4: 1303050e movwne r0, #13582 ; 0x350e + 12f8: 05170505 ldreq r0, [r7, #-1285] + 12fc: 15242007 strne r2, [r4, #-7]! + 1300: 13050515 movwne r0, #21781 ; 0x5515 + 1304: 152b0705 strne r0, [fp, #-1797]! + 1308: 17181a2c ldrne r1, [r8, -ip, lsr #20] + 130c: 03050515 movweq r0, #21781 ; 0x5515 + 1310: 04022201 streq r2, [r2], #-513 + 1314: 00010100 andeq r0, r1, r0, lsl #2 + 1318: 000000c7 andeq r0, r0, r7, asr #1 + 131c: 008e0002 addeq r0, lr, r2 + 1320: 01020000 tsteq r2, r0 + 1324: 000a0500 andeq r0, sl, r0, lsl #10 + 1328: 01010101 tsteq r1, r1, lsl #2 + 132c: 00000000 andeq r0, r0, r0 + 1330: 445c3a43 ldrbmi r3, [ip], #-2627 + 1334: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1338: 73746e65 cmnvc r4, #1616 ; 0x650 + 133c: 646e6120 strbtvs r6, [lr], #-288 + 1340: 74655320 strbtvc r5, [r5], #-800 + 1344: 676e6974 undefined + 1348: 616d5c73 smcvs 54723 + 134c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1350: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1354: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1358: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 135c: 775c7374 undefined + 1360: 6f632d73 svcvs 0x00632d73 + 1364: 6f72746e svcvs 0x0072746e + 1368: 65575c6c ldrbvs r5, [r7, #-3180] + 136c: 65687461 strbvs r7, [r8, #-1121]! + 1370: 74532072 ldrbvc r2, [r3], #-114 + 1374: 6f697461 svcvs 0x00697461 + 1378: 6f43206e svcvs 0x0043206e + 137c: 6f72746e svcvs 0x0072746e + 1380: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1384: 7070415c rsbsvc r4, r0, ip, asr r1 + 1388: 6163696c cmnvs r3, ip, ror #18 + 138c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1390: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1394: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1398: 005c7365 subseq r7, ip, r5, ror #6 + 139c: 73694400 cmnvc r9, #0 ; 0x0 + 13a0: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 13a4: 0100632e tsteq r0, lr, lsr #6 + 13a8: c5d0bea8 ldrbgt fp, [r0, #3752] + 13ac: 000ad804 andeq sp, sl, r4, lsl #16 + 13b0: 00020500 andeq r0, r2, r0, lsl #10 + 13b4: 05000000 streq r0, [r0] + 13b8: 0abb0301 beq feec1fc4 + 13bc: 2203050e andcs r0, r3, #58720256 ; 0x3800000 + 13c0: 052c0103 streq r0, [ip, #-259]! + 13c4: 2e1a3405 cfmulscs mvf3, mvf10, mvf5 + 13c8: 0705291f smladeq r5, pc, r9, r2 + 13cc: 1c051a11 stcne 10, cr1, [r5], {17} + 13d0: 050f7d03 streq r7, [pc, #-3331] ; 6d5 <__FIQ_stack_size+0x2d5> + 13d4: 19050f12 stmdbne r5, {r1, r4, r8, r9, sl, fp} + 13d8: 050f7a03 streq r7, [pc, #-2563] ; 9dd <__USR_stack_size+0x1dd> + 13dc: 02020f10 andeq r0, r2, #64 ; 0x40 + 13e0: 00010100 andeq r0, r1, r0, lsl #2 + 13e4: 0000023b andeq r0, r0, fp, lsr r2 + 13e8: 02350002 eorseq r0, r5, #2 ; 0x2 + 13ec: 01010000 tsteq r1, r0 + 13f0: 000a0500 andeq r0, sl, r0, lsl #10 + 13f4: 01010101 tsteq r1, r1, lsl #2 + 13f8: 00000000 andeq r0, r0, r0 + 13fc: 445c3a43 ldrbmi r3, [ip], #-2627 + 1400: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1404: 73746e65 cmnvc r4, #1616 ; 0x650 + 1408: 646e6120 strbtvs r6, [lr], #-288 + 140c: 74655320 strbtvc r5, [r5], #-800 + 1410: 676e6974 undefined + 1414: 616d5c73 smcvs 54723 + 1418: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 141c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1420: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1424: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1428: 775c7374 undefined + 142c: 6f632d73 svcvs 0x00632d73 + 1430: 6f72746e svcvs 0x0072746e + 1434: 65575c6c ldrbvs r5, [r7, #-3180] + 1438: 65687461 strbvs r7, [r8, #-1121]! + 143c: 74532072 ldrbvc r2, [r3], #-114 + 1440: 6f697461 svcvs 0x00697461 + 1444: 6f43206e svcvs 0x0043206e + 1448: 6f72746e svcvs 0x0072746e + 144c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1450: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1454: 746e495c strbtvc r4, [lr], #-2396 + 1458: 61667265 cmnvs r6, r5, ror #4 + 145c: 005c6563 subseq r6, ip, r3, ror #10 + 1460: 445c3a43 ldrbmi r3, [ip], #-2627 + 1464: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1468: 73746e65 cmnvc r4, #1616 ; 0x650 + 146c: 646e6120 strbtvs r6, [lr], #-288 + 1470: 74655320 strbtvc r5, [r5], #-800 + 1474: 676e6974 undefined + 1478: 616d5c73 smcvs 54723 + 147c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1480: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1484: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1488: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 148c: 775c7374 undefined + 1490: 6f632d73 svcvs 0x00632d73 + 1494: 6f72746e svcvs 0x0072746e + 1498: 65575c6c ldrbvs r5, [r7, #-3180] + 149c: 65687461 strbvs r7, [r8, #-1121]! + 14a0: 74532072 ldrbvc r2, [r3], #-114 + 14a4: 6f697461 svcvs 0x00697461 + 14a8: 6f43206e svcvs 0x0043206e + 14ac: 6f72746e svcvs 0x0072746e + 14b0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 14b4: 4d4c505c stclmi 0, cr5, [ip, #-368] + 14b8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 14bc: 65746e49 ldrbvs r6, [r4, #-3657]! + 14c0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 14c4: 43005c65 movwmi r5, #3173 ; 0xc65 + 14c8: 6f445c3a svcvs 0x00445c3a + 14cc: 656d7563 strbvs r7, [sp, #-1379]! + 14d0: 2073746e rsbscs r7, r3, lr, ror #8 + 14d4: 20646e61 rsbcs r6, r4, r1, ror #28 + 14d8: 74746553 ldrbtvc r6, [r4], #-1363 + 14dc: 73676e69 cmnvc r7, #1680 ; 0x690 + 14e0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 14e4: 61726976 cmnvs r2, r6, ror r9 + 14e8: 20794d5c rsbscs r4, r9, ip, asr sp + 14ec: 75636f44 strbvc r6, [r3, #-3908]! + 14f0: 746e656d strbtvc r6, [lr], #-1389 + 14f4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 14f8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 14fc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1500: 6165575c cmnvs r5, ip, asr r7 + 1504: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1508: 61745320 cmnvs r4, r0, lsr #6 + 150c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1510: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1514: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1518: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 151c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 1520: 746e495c strbtvc r4, [lr], #-2396 + 1524: 61667265 cmnvs r6, r5, ror #4 + 1528: 005c6563 subseq r6, ip, r3, ror #10 + 152c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1530: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1534: 73746e65 cmnvc r4, #1616 ; 0x650 + 1538: 646e6120 strbtvs r6, [lr], #-288 + 153c: 74655320 strbtvc r5, [r5], #-800 + 1540: 676e6974 undefined + 1544: 616d5c73 smcvs 54723 + 1548: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 154c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1550: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1554: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1558: 775c7374 undefined + 155c: 6f632d73 svcvs 0x00632d73 + 1560: 6f72746e svcvs 0x0072746e + 1564: 65575c6c ldrbvs r5, [r7, #-3180] + 1568: 65687461 strbvs r7, [r8, #-1121]! + 156c: 74532072 ldrbvc r2, [r3], #-114 + 1570: 6f697461 svcvs 0x00697461 + 1574: 6f43206e svcvs 0x0043206e + 1578: 6f72746e svcvs 0x0072746e + 157c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1580: 414d535c cmpmi sp, ip, asr r3 + 1584: 6f535c43 svcvs 0x00535c43 + 1588: 65637275 strbvs r7, [r3, #-629]! + 158c: 4500005c strmi r0, [r0, #-92] + 1590: 6465626d strbtvs r6, [r5], #-621 + 1594: 54646564 strbtpl r6, [r4], #-1380 + 1598: 73657079 cmnvc r5, #121 ; 0x79 + 159c: 0100682e tsteq r0, lr, lsr #16 + 15a0: c0d79d9e smullsgt r9, r7, lr, sp + 15a4: 52437704 subpl r7, r3, #1048576 ; 0x100000 + 15a8: 65525f4d ldrbvs r5, [r2, #-3917] + 15ac: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 15b0: 8ff80200 svchi 0x00f80200 + 15b4: 8104c0d7 ldrdhi ip, [r4, -r7] + 15b8: 6d724302 ldclvs 3, cr4, [r2, #-8]! + 15bc: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 15c0: c0d794f2 ldrshgt r9, [r7], #66 + 15c4: 5005cb04 andpl ip, r5, r4, lsl #22 + 15c8: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 15cc: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} + 15d0: f2020068 vhadd.s8 q0, q1, q12 + 15d4: 04c0d794 strbeq sp, [r0], #1940 + 15d8: 735303be cmpvc r3, #-134217726 ; 0xf8000002 + 15dc: 65525f69 ldrbvs r5, [r2, #-3945] + 15e0: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 15e4: 96cc0200 strbls r0, [ip], r0, lsl #4 + 15e8: c504ba91 strgt fp, [r4, #-2705] + 15ec: 6f6c4701 svcvs 0x006c4701 + 15f0: 446c6162 strbtmi r6, [ip], #-354 + 15f4: 2e736665 cdpcs 6, 7, cr6, cr3, cr5, {3} + 15f8: ba030068 blt c17a0 + 15fc: 04c5eea2 strbeq lr, [r5], #3746 + 1600: 4c480191 stfmie f0, [r8], {145} + 1604: 2e767244 cdpcs 2, 7, cr7, cr6, cr4, {2} + 1608: 88030068 stmdahi r3, {r3, r5, r6} + 160c: 04c1eef5 strbeq lr, [r1], #3829 + 1610: 4c48019a stfmie f0, [r8], {154} + 1614: 2e767244 cdpcs 2, 7, cr7, cr6, cr4, {2} + 1618: 80040063 andhi r0, r4, r3, rrx + 161c: 04c0d683 strbeq sp, [r0], #1667 + 1620: 000001a2 andeq r0, r0, r2, lsr #3 + 1624: 000000af andeq r0, r0, pc, lsr #1 + 1628: 008e0002 addeq r0, lr, r2 + 162c: 01010000 tsteq r1, r0 + 1630: 000a0500 andeq r0, sl, r0, lsl #10 + 1634: 01010101 tsteq r1, r1, lsl #2 + 1638: 00000000 andeq r0, r0, r0 + 163c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1640: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1644: 73746e65 cmnvc r4, #1616 ; 0x650 + 1648: 646e6120 strbtvs r6, [lr], #-288 + 164c: 74655320 strbtvc r5, [r5], #-800 + 1650: 676e6974 undefined + 1654: 616d5c73 smcvs 54723 + 1658: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 165c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1660: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1664: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1668: 775c7374 undefined + 166c: 6f632d73 svcvs 0x00632d73 + 1670: 6f72746e svcvs 0x0072746e + 1674: 65575c6c ldrbvs r5, [r7, #-3180] + 1678: 65687461 strbvs r7, [r8, #-1121]! + 167c: 74532072 ldrbvc r2, [r3], #-114 + 1680: 6f697461 svcvs 0x00697461 + 1684: 6f43206e svcvs 0x0043206e + 1688: 6f72746e svcvs 0x0072746e + 168c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1690: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1694: 756f535c strbvc r5, [pc, #-860]! ; 1340 <__USR_stack_size+0xb40> + 1698: 5c656372 stclpl 3, cr6, [r5], #-456 + 169c: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 16a0: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 16a4: 005c7379 subseq r7, ip, r9, ror r3 + 16a8: 696e4900 stmdbvs lr!, {r8, fp, lr}^ + 16ac: 41492d74 cmpmi r9, r4, ror sp + 16b0: 00532e52 subseq r2, r3, r2, asr lr + 16b4: f2cff901 vqdmlal.s , d15, d1 + 16b8: 000004ce andeq r0, r0, lr, asr #9 + 16bc: 00020500 andeq r0, r2, r0, lsl #10 + 16c0: 03004000 movweq r4, #0 ; 0x0 + 16c4: 030e00c2 movweq r0, #57538 ; 0xe0c2 + 16c8: 1f1f2204 svcne 0x001f2204 + 16cc: 0103201f tsteq r3, pc, lsl r0 + 16d0: 04021f22 streq r1, [r2], #-3874 + 16d4: 00010100 andeq r0, r1, r0, lsl #2 + 16d8: 000000eb andeq r0, r0, fp, ror #1 + 16dc: 008e0002 addeq r0, lr, r2 + 16e0: 01010000 tsteq r1, r0 + 16e4: 000a0500 andeq r0, sl, r0, lsl #10 + 16e8: 01010101 tsteq r1, r1, lsl #2 + 16ec: 00000000 andeq r0, r0, r0 + 16f0: 445c3a43 ldrbmi r3, [ip], #-2627 + 16f4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 16f8: 73746e65 cmnvc r4, #1616 ; 0x650 + 16fc: 646e6120 strbtvs r6, [lr], #-288 + 1700: 74655320 strbtvc r5, [r5], #-800 + 1704: 676e6974 undefined + 1708: 616d5c73 smcvs 54723 + 170c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1710: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1714: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1718: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 171c: 775c7374 undefined + 1720: 6f632d73 svcvs 0x00632d73 + 1724: 6f72746e svcvs 0x0072746e + 1728: 65575c6c ldrbvs r5, [r7, #-3180] + 172c: 65687461 strbvs r7, [r8, #-1121]! + 1730: 74532072 ldrbvc r2, [r3], #-114 + 1734: 6f697461 svcvs 0x00697461 + 1738: 6f43206e svcvs 0x0043206e + 173c: 6f72746e svcvs 0x0072746e + 1740: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1744: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1748: 756f535c strbvc r5, [pc, #-860]! ; 13f4 <__USR_stack_size+0xbf4> + 174c: 5c656372 stclpl 3, cr6, [r5], #-456 + 1750: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 1754: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 1758: 005c7379 subseq r7, ip, r9, ror r3 + 175c: 696e4900 stmdbvs lr!, {r8, fp, lr}^ + 1760: 41492d74 cmpmi r9, r4, ror sp + 1764: 00532e52 subseq r2, r3, r2, asr lr + 1768: f2cff901 vqdmlal.s , d15, d1 + 176c: 000004ce andeq r0, r0, lr, asr #9 + 1770: e4020500 str r0, [r2], #-1280 + 1774: 03004034 movweq r4, #52 ; 0x34 + 1778: 1f0e00db svcne 0x000e00db + 177c: 201f1f1f andscs r1, pc, pc, lsl pc + 1780: 201f1f1f andscs r1, pc, pc, lsl pc + 1784: 201f1f1f andscs r1, pc, pc, lsl pc + 1788: 201f1f1f andscs r1, pc, pc, lsl pc + 178c: 201f1f1f andscs r1, pc, pc, lsl pc + 1790: 031f1f1f tsteq pc, #124 ; 0x7c + 1794: 01032202 tsteq r3, r2, lsl #4 + 1798: 211f1f22 tstcs pc, r2, lsr #30 + 179c: 211f221f tstcs pc, pc, lsl r2 + 17a0: 1f220103 svcne 0x00220103 + 17a4: 1f1f1f1f svcne 0x001f1f1f + 17a8: 1f211f1f svcne 0x00211f1f + 17ac: 1f1f1f1f svcne 0x001f1f1f + 17b0: 1f211f1f svcne 0x00211f1f + 17b4: 1f1f1f1f svcne 0x001f1f1f + 17b8: 1f211f1f svcne 0x00211f1f + 17bc: 1f1f1f1f svcne 0x001f1f1f + 17c0: 20021f1f andcs r1, r2, pc, lsl pc + 17c4: 00010100 andeq r0, r1, r0, lsl #2 + 17c8: 000001e8 andeq r0, r0, r8, ror #3 + 17cc: 01e20002 mvneq r0, r2 + 17d0: 01010000 tsteq r1, r0 + 17d4: 000a0500 andeq r0, sl, r0, lsl #10 + 17d8: 01010101 tsteq r1, r1, lsl #2 + 17dc: 00000000 andeq r0, r0, r0 + 17e0: 445c3a43 ldrbmi r3, [ip], #-2627 + 17e4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 17e8: 73746e65 cmnvc r4, #1616 ; 0x650 + 17ec: 646e6120 strbtvs r6, [lr], #-288 + 17f0: 74655320 strbtvc r5, [r5], #-800 + 17f4: 676e6974 undefined + 17f8: 616d5c73 smcvs 54723 + 17fc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1800: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1804: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1808: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 180c: 775c7374 undefined + 1810: 6f632d73 svcvs 0x00632d73 + 1814: 6f72746e svcvs 0x0072746e + 1818: 65575c6c ldrbvs r5, [r7, #-3180] + 181c: 65687461 strbvs r7, [r8, #-1121]! + 1820: 74532072 ldrbvc r2, [r3], #-114 + 1824: 6f697461 svcvs 0x00697461 + 1828: 6f43206e svcvs 0x0043206e + 182c: 6f72746e svcvs 0x0072746e + 1830: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1834: 7070415c rsbsvc r4, r0, ip, asr r1 + 1838: 6163696c cmnvs r3, ip, ror #18 + 183c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1840: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1844: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1848: 005c7365 subseq r7, ip, r5, ror #6 + 184c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1850: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1854: 73746e65 cmnvc r4, #1616 ; 0x650 + 1858: 646e6120 strbtvs r6, [lr], #-288 + 185c: 74655320 strbtvc r5, [r5], #-800 + 1860: 676e6974 undefined + 1864: 616d5c73 smcvs 54723 + 1868: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 186c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1870: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1874: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1878: 775c7374 undefined + 187c: 6f632d73 svcvs 0x00632d73 + 1880: 6f72746e svcvs 0x0072746e + 1884: 65575c6c ldrbvs r5, [r7, #-3180] + 1888: 65687461 strbvs r7, [r8, #-1121]! + 188c: 74532072 ldrbvc r2, [r3], #-114 + 1890: 6f697461 svcvs 0x00697461 + 1894: 6f43206e svcvs 0x0043206e + 1898: 6f72746e svcvs 0x0072746e + 189c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 18a0: 4d4c505c stclmi 0, cr5, [ip, #-368] + 18a4: 746e495c strbtvc r4, [lr], #-2396 + 18a8: 61667265 cmnvs r6, r5, ror #4 + 18ac: 005c6563 subseq r6, ip, r3, ror #10 + 18b0: 445c3a43 ldrbmi r3, [ip], #-2627 + 18b4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 18b8: 73746e65 cmnvc r4, #1616 ; 0x650 + 18bc: 646e6120 strbtvs r6, [lr], #-288 + 18c0: 74655320 strbtvc r5, [r5], #-800 + 18c4: 676e6974 undefined + 18c8: 616d5c73 smcvs 54723 + 18cc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 18d0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 18d4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 18d8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 18dc: 775c7374 undefined + 18e0: 6f632d73 svcvs 0x00632d73 + 18e4: 6f72746e svcvs 0x0072746e + 18e8: 65575c6c ldrbvs r5, [r7, #-3180] + 18ec: 65687461 strbvs r7, [r8, #-1121]! + 18f0: 74532072 ldrbvc r2, [r3], #-114 + 18f4: 6f697461 svcvs 0x00697461 + 18f8: 6f43206e svcvs 0x0043206e + 18fc: 6f72746e svcvs 0x0072746e + 1900: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1904: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1908: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 190c: 65746e49 ldrbvs r6, [r4, #-3657]! + 1910: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 1914: 00005c65 andeq r5, r0, r5, ror #24 + 1918: 6279654b rsbsvs r6, r9, #314572800 ; 0x12c00000 + 191c: 6472616f ldrbtvs r6, [r2], #-367 + 1920: 0100632e tsteq r0, lr, lsr #6 + 1924: c5d0bea8 ldrbgt fp, [r0, #3752] + 1928: 654b5a04 strbvs r5, [fp, #-2564] + 192c: 616f6279 smcvs 63017 + 1930: 682e6472 stmdavs lr!, {r1, r4, r5, r6, sl, sp, lr} + 1934: fbf70100 blx ffdc1d3e + 1938: 7e04ceed cdpvc 14, 0, cr12, cr4, cr13, {7} + 193c: 65626d45 strbvs r6, [r2, #-3397]! + 1940: 64656464 strbtvs r6, [r5], #-1124 + 1944: 65707954 ldrbvs r7, [r0, #-2388]! + 1948: 00682e73 rsbeq r2, r8, r3, ror lr + 194c: d79d9e02 ldrle r9, [sp, r2, lsl #28] + 1950: 437704c0 cmnmi r7, #-1073741824 ; 0xc0000000 + 1954: 525f4d52 subspl r4, pc, #5248 ; 0x1480 + 1958: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} + 195c: f8030068 undefined instruction 0xf8030068 + 1960: 04c0d78f strbeq sp, [r0], #1935 + 1964: 72430281 subvc r0, r3, #268435464 ; 0x10000008 + 1968: 00682e6d rsbeq r2, r8, sp, ror #28 + 196c: d794f203 ldrle pc, [r4, r3, lsl #4] + 1970: 05cb04c0 strbeq r0, [fp, #1216] + 1974: 4f495047 svcmi 0x00495047 + 1978: 746e495f strbtvc r4, [lr], #-2399 + 197c: 61667265 cmnvs r6, r5, ror #4 + 1980: 682e6563 stmdavs lr!, {r0, r1, r5, r6, r8, sl, sp, lr} + 1984: 8ff80300 svchi 0x00f80300 + 1988: 9e04c0d7 mcrls 0, 0, ip, cr4, cr7, {6} + 198c: 616c5006 cmnvs ip, r6 + 1990: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 + 1994: 00682e6d rsbeq r2, r8, sp, ror #28 + 1998: d794f203 ldrle pc, [r4, r3, lsl #4] + 199c: 03be04c0 undefined instruction 0x03be04c0 + 19a0: 5f697353 svcpl 0x00697353 + 19a4: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 19a8: 0300682e movweq r6, #2094 ; 0x82e + 19ac: ba9196cc blt fe4674e4 + 19b0: 0001c504 andeq ip, r1, r4, lsl #10 + 19b4: 000000af andeq r0, r0, pc, lsr #1 + 19b8: 008e0002 addeq r0, lr, r2 + 19bc: 01020000 tsteq r2, r0 + 19c0: 000a0500 andeq r0, sl, r0, lsl #10 + 19c4: 01010101 tsteq r1, r1, lsl #2 + 19c8: 00000000 andeq r0, r0, r0 + 19cc: 445c3a43 ldrbmi r3, [ip], #-2627 + 19d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 19d4: 73746e65 cmnvc r4, #1616 ; 0x650 + 19d8: 646e6120 strbtvs r6, [lr], #-288 + 19dc: 74655320 strbtvc r5, [r5], #-800 + 19e0: 676e6974 undefined + 19e4: 616d5c73 smcvs 54723 + 19e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 19ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 19f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 19f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 19f8: 775c7374 undefined + 19fc: 6f632d73 svcvs 0x00632d73 + 1a00: 6f72746e svcvs 0x0072746e + 1a04: 65575c6c ldrbvs r5, [r7, #-3180] + 1a08: 65687461 strbvs r7, [r8, #-1121]! + 1a0c: 74532072 ldrbvc r2, [r3], #-114 + 1a10: 6f697461 svcvs 0x00697461 + 1a14: 6f43206e svcvs 0x0043206e + 1a18: 6f72746e svcvs 0x0072746e + 1a1c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1a20: 7070415c rsbsvc r4, r0, ip, asr r1 + 1a24: 6163696c cmnvs r3, ip, ror #18 + 1a28: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1a2c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1a30: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1a34: 005c7365 subseq r7, ip, r5, ror #6 + 1a38: 79654b00 stmdbvc r5!, {r8, r9, fp, lr}^ + 1a3c: 72616f62 rsbvc r6, r1, #392 ; 0x188 + 1a40: 00632e64 rsbeq r2, r3, r4, ror #28 + 1a44: d0bea801 adcsle sl, lr, r1, lsl #16 + 1a48: 005a04c5 subseq r0, sl, r5, asr #9 + 1a4c: f0020500 undefined instruction 0xf0020500 + 1a50: 0500403c streq r4, [r0, #-60] + 1a54: 0e390301 cdpeq 3, 3, cr0, cr9, cr1, {0} + 1a58: 2f110305 svccs 0x00110305 + 1a5c: 052a2a33 streq r2, [sl, #-2611]! + 1a60: 05022501 streq r2, [r2, #-1281] + 1a64: 00010100 andeq r0, r1, r0, lsl #2 + 1a68: 000002dd ldrdeq r0, [r0], -sp + 1a6c: 02d70002 sbcseq r0, r7, #2 ; 0x2 + 1a70: 01010000 tsteq r1, r0 + 1a74: 000a0500 andeq r0, sl, r0, lsl #10 + 1a78: 01010101 tsteq r1, r1, lsl #2 + 1a7c: 00000000 andeq r0, r0, r0 + 1a80: 445c3a43 ldrbmi r3, [ip], #-2627 + 1a84: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1a88: 73746e65 cmnvc r4, #1616 ; 0x650 + 1a8c: 646e6120 strbtvs r6, [lr], #-288 + 1a90: 74655320 strbtvc r5, [r5], #-800 + 1a94: 676e6974 undefined + 1a98: 616d5c73 smcvs 54723 + 1a9c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1aa0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1aa4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1aa8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1aac: 775c7374 undefined + 1ab0: 6f632d73 svcvs 0x00632d73 + 1ab4: 6f72746e svcvs 0x0072746e + 1ab8: 65575c6c ldrbvs r5, [r7, #-3180] + 1abc: 65687461 strbvs r7, [r8, #-1121]! + 1ac0: 74532072 ldrbvc r2, [r3], #-114 + 1ac4: 6f697461 svcvs 0x00697461 + 1ac8: 6f43206e svcvs 0x0043206e + 1acc: 6f72746e svcvs 0x0072746e + 1ad0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1ad4: 7070415c rsbsvc r4, r0, ip, asr r1 + 1ad8: 6163696c cmnvs r3, ip, ror #18 + 1adc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1ae0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1ae4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1ae8: 005c7365 subseq r7, ip, r5, ror #6 + 1aec: 445c3a43 ldrbmi r3, [ip], #-2627 + 1af0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1af4: 73746e65 cmnvc r4, #1616 ; 0x650 + 1af8: 646e6120 strbtvs r6, [lr], #-288 + 1afc: 74655320 strbtvc r5, [r5], #-800 + 1b00: 676e6974 undefined + 1b04: 616d5c73 smcvs 54723 + 1b08: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1b0c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1b10: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1b14: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1b18: 775c7374 undefined + 1b1c: 6f632d73 svcvs 0x00632d73 + 1b20: 6f72746e svcvs 0x0072746e + 1b24: 65575c6c ldrbvs r5, [r7, #-3180] + 1b28: 65687461 strbvs r7, [r8, #-1121]! + 1b2c: 74532072 ldrbvc r2, [r3], #-114 + 1b30: 6f697461 svcvs 0x00697461 + 1b34: 6f43206e svcvs 0x0043206e + 1b38: 6f72746e svcvs 0x0072746e + 1b3c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1b40: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1b44: 746e495c strbtvc r4, [lr], #-2396 + 1b48: 61667265 cmnvs r6, r5, ror #4 + 1b4c: 005c6563 subseq r6, ip, r3, ror #10 + 1b50: 445c3a43 ldrbmi r3, [ip], #-2627 + 1b54: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1b58: 73746e65 cmnvc r4, #1616 ; 0x650 + 1b5c: 646e6120 strbtvs r6, [lr], #-288 + 1b60: 74655320 strbtvc r5, [r5], #-800 + 1b64: 676e6974 undefined + 1b68: 616d5c73 smcvs 54723 + 1b6c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1b70: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1b74: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1b78: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1b7c: 775c7374 undefined + 1b80: 6f632d73 svcvs 0x00632d73 + 1b84: 6f72746e svcvs 0x0072746e + 1b88: 65575c6c ldrbvs r5, [r7, #-3180] + 1b8c: 65687461 strbvs r7, [r8, #-1121]! + 1b90: 74532072 ldrbvc r2, [r3], #-114 + 1b94: 6f697461 svcvs 0x00697461 + 1b98: 6f43206e svcvs 0x0043206e + 1b9c: 6f72746e svcvs 0x0072746e + 1ba0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1ba4: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1ba8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 1bac: 65746e49 ldrbvs r6, [r4, #-3657]! + 1bb0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 1bb4: 43005c65 movwmi r5, #3173 ; 0xc65 + 1bb8: 6f445c3a svcvs 0x00445c3a + 1bbc: 656d7563 strbvs r7, [sp, #-1379]! + 1bc0: 2073746e rsbscs r7, r3, lr, ror #8 + 1bc4: 20646e61 rsbcs r6, r4, r1, ror #28 + 1bc8: 74746553 ldrbtvc r6, [r4], #-1363 + 1bcc: 73676e69 cmnvc r7, #1680 ; 0x690 + 1bd0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1bd4: 61726976 cmnvs r2, r6, ror r9 + 1bd8: 20794d5c rsbscs r4, r9, ip, asr sp + 1bdc: 75636f44 strbvc r6, [r3, #-3908]! + 1be0: 746e656d strbtvc r6, [lr], #-1389 + 1be4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1be8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1bec: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1bf0: 6165575c cmnvs r5, ip, asr r7 + 1bf4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1bf8: 61745320 cmnvs r4, r0, lsr #6 + 1bfc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1c00: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1c04: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1c08: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1c0c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 1c10: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 1c14: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 1c18: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} + 1c1c: 75676966 strbvc r6, [r7, #-2406]! + 1c20: 005c6572 subseq r6, ip, r2, ror r5 + 1c24: 445c3a43 ldrbmi r3, [ip], #-2627 + 1c28: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1c2c: 73746e65 cmnvc r4, #1616 ; 0x650 + 1c30: 646e6120 strbtvs r6, [lr], #-288 + 1c34: 74655320 strbtvc r5, [r5], #-800 + 1c38: 676e6974 undefined + 1c3c: 616d5c73 smcvs 54723 + 1c40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1c44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1c48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1c4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1c50: 775c7374 undefined + 1c54: 6f632d73 svcvs 0x00632d73 + 1c58: 6f72746e svcvs 0x0072746e + 1c5c: 65575c6c ldrbvs r5, [r7, #-3180] + 1c60: 65687461 strbvs r7, [r8, #-1121]! + 1c64: 74532072 ldrbvc r2, [r3], #-114 + 1c68: 6f697461 svcvs 0x00697461 + 1c6c: 6f43206e svcvs 0x0043206e + 1c70: 6f72746e svcvs 0x0072746e + 1c74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1c78: 414d535c cmpmi sp, ip, asr r3 + 1c7c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 1c80: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 1c84: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 1c88: 66726574 undefined + 1c8c: 5c656361 stclpl 3, cr6, [r5], #-388 + 1c90: 654c0000 strbvs r0, [ip] + 1c94: 632e7364 teqvs lr, #-1879048191 ; 0x90000001 + 1c98: f7920100 undefined instruction 0xf7920100 + 1c9c: 9104c7b8 strhls ip, [r4, -r8] + 1ca0: 64654c02 strbtvs r4, [r5], #-3074 + 1ca4: 00682e73 rsbeq r2, r8, r3, ror lr + 1ca8: edfbf701 ldcl 7, cr15, [fp, #4]! + 1cac: 02c404ce sbceq r0, r4, #-838860800 ; 0xce000000 + 1cb0: 65626d45 strbvs r6, [r2, #-3397]! + 1cb4: 64656464 strbtvs r6, [r5], #-1124 + 1cb8: 65707954 ldrbvs r7, [r0, #-2388]! + 1cbc: 00682e73 rsbeq r2, r8, r3, ror lr + 1cc0: d79d9e02 ldrle r9, [sp, r2, lsl #28] + 1cc4: 437704c0 cmnmi r7, #-1073741824 ; 0xc0000000 + 1cc8: 525f4d52 subspl r4, pc, #5248 ; 0x1480 + 1ccc: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} + 1cd0: f8030068 undefined instruction 0xf8030068 + 1cd4: 04c0d78f strbeq sp, [r0], #1935 + 1cd8: 50470281 subpl r0, r7, r1, lsl #5 + 1cdc: 495f4f49 ldmdbmi pc, {r0, r3, r6, r8, r9, sl, fp, lr}^ + 1ce0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 1ce4: 65636166 strbvs r6, [r3, #-358]! + 1ce8: 0300682e movweq r6, #2094 ; 0x82e + 1cec: c0d78ff8 ldrshgt r8, [r7], #248 + 1cf0: 50069e04 andpl r9, r6, r4, lsl #28 + 1cf4: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 1cf8: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} + 1cfc: f2030068 vhadd.s8 q0, , q12 + 1d00: 04c0d794 strbeq sp, [r0], #1940 + 1d04: 735303be cmpvc r3, #-134217726 ; 0xf8000002 + 1d08: 65525f69 ldrbvs r5, [r2, #-3945] + 1d0c: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 1d10: 96cc0300 strbls r0, [ip], r0, lsl #6 + 1d14: c504ba91 strgt fp, [r4, #-2705] + 1d18: 616f6201 cmnvs pc, r1, lsl #4 + 1d1c: 635f6472 cmpvs pc, #1912602624 ; 0x72000000 + 1d20: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 1d24: 00682e67 rsbeq r2, r8, r7, ror #28 + 1d28: edfbf704 ldcl 7, cr15, [fp, #16]! + 1d2c: 463d04ce ldrtmi r0, [sp], -lr, asr #9 + 1d30: 44716572 ldrbtmi r6, [r1], #-1394 + 1d34: 65537065 ldrbvs r7, [r3, #-101] + 1d38: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 1d3c: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 1d40: fbf70500 blx ffdc314a + 1d44: 3704ceed strcc ip, [r4, -sp, ror #29] + 1d48: 00000000 andeq r0, r0, r0 + 1d4c: 000000bd strheq r0, [r0], -sp + 1d50: 008b0002 addeq r0, fp, r2 + 1d54: 01020000 tsteq r2, r0 + 1d58: 000a0500 andeq r0, sl, r0, lsl #10 + 1d5c: 01010101 tsteq r1, r1, lsl #2 + 1d60: 00000000 andeq r0, r0, r0 + 1d64: 445c3a43 ldrbmi r3, [ip], #-2627 + 1d68: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1d6c: 73746e65 cmnvc r4, #1616 ; 0x650 + 1d70: 646e6120 strbtvs r6, [lr], #-288 + 1d74: 74655320 strbtvc r5, [r5], #-800 + 1d78: 676e6974 undefined + 1d7c: 616d5c73 smcvs 54723 + 1d80: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1d84: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1d88: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1d8c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1d90: 775c7374 undefined + 1d94: 6f632d73 svcvs 0x00632d73 + 1d98: 6f72746e svcvs 0x0072746e + 1d9c: 65575c6c ldrbvs r5, [r7, #-3180] + 1da0: 65687461 strbvs r7, [r8, #-1121]! + 1da4: 74532072 ldrbvc r2, [r3], #-114 + 1da8: 6f697461 svcvs 0x00697461 + 1dac: 6f43206e svcvs 0x0043206e + 1db0: 6f72746e svcvs 0x0072746e + 1db4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1db8: 7070415c rsbsvc r4, r0, ip, asr r1 + 1dbc: 6163696c cmnvs r3, ip, ror #18 + 1dc0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1dc4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1dc8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1dcc: 005c7365 subseq r7, ip, r5, ror #6 + 1dd0: 64654c00 strbtvs r4, [r5], #-3072 + 1dd4: 00632e73 rsbeq r2, r3, r3, ror lr + 1dd8: b8f79201 ldmlt r7!, {r0, r9, ip, pc}^ + 1ddc: 029104c7 addseq r0, r1, #-956301312 ; 0xc7000000 + 1de0: 02050000 andeq r0, r5, #0 ; 0x0 + 1de4: 00403608 subeq r3, r0, r8, lsl #12 + 1de8: 38030105 stmdacc r3, {r0, r2, r8} + 1dec: 1003050e andne r0, r3, lr, lsl #10 + 1df0: 0301051a movweq r0, #5402 ; 0x151a + 1df4: 050e0193 streq r0, [lr, #-403] + 1df8: e9030b03 stmdb r3, {r0, r1, r8, r9, fp} + 1dfc: 0105197e tsteq r5, lr, ror r9 + 1e00: 0e019403 cdpeq 4, 0, cr9, cr1, cr3, {0} + 1e04: 1e7ee903 cdpne 9, 7, cr14, cr14, cr3, {0} + 1e08: 01000302 tsteq r0, r2, lsl #6 + 1e0c: 00000001 andeq r0, r0, r1 + 1e10: 000000ca andeq r0, r0, sl, asr #1 + 1e14: 008b0002 addeq r0, fp, r2 + 1e18: 01020000 tsteq r2, r0 + 1e1c: 000a0500 andeq r0, sl, r0, lsl #10 + 1e20: 01010101 tsteq r1, r1, lsl #2 + 1e24: 00000000 andeq r0, r0, r0 + 1e28: 445c3a43 ldrbmi r3, [ip], #-2627 + 1e2c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1e30: 73746e65 cmnvc r4, #1616 ; 0x650 + 1e34: 646e6120 strbtvs r6, [lr], #-288 + 1e38: 74655320 strbtvc r5, [r5], #-800 + 1e3c: 676e6974 undefined + 1e40: 616d5c73 smcvs 54723 + 1e44: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1e48: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1e4c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1e50: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1e54: 775c7374 undefined + 1e58: 6f632d73 svcvs 0x00632d73 + 1e5c: 6f72746e svcvs 0x0072746e + 1e60: 65575c6c ldrbvs r5, [r7, #-3180] + 1e64: 65687461 strbvs r7, [r8, #-1121]! + 1e68: 74532072 ldrbvc r2, [r3], #-114 + 1e6c: 6f697461 svcvs 0x00697461 + 1e70: 6f43206e svcvs 0x0043206e + 1e74: 6f72746e svcvs 0x0072746e + 1e78: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1e7c: 7070415c rsbsvc r4, r0, ip, asr r1 + 1e80: 6163696c cmnvs r3, ip, ror #18 + 1e84: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1e88: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1e8c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1e90: 005c7365 subseq r7, ip, r5, ror #6 + 1e94: 64654c00 strbtvs r4, [r5], #-3072 + 1e98: 00632e73 rsbeq r2, r3, r3, ror lr + 1e9c: b8f79201 ldmlt r7!, {r0, r9, ip, pc}^ + 1ea0: 029104c7 addseq r0, r1, #-956301312 ; 0xc7000000 + 1ea4: 02050000 andeq r0, r5, #0 ; 0x0 + 1ea8: 00403624 subeq r3, r0, r4, lsr #12 + 1eac: c5030105 strgt r0, [r3, #-261] + 1eb0: 03050e00 movweq r0, #24064 ; 0x5e00 + 1eb4: 15050515 strne r0, [r5, #-1301] + 1eb8: 03051f1f movweq r1, #24351 ; 0x5f1f + 1ebc: 0505201f streq r2, [r5, #-31] + 1ec0: 1f1f1f15 svcne 0x001f1f15 + 1ec4: 05200305 streq r0, [r0, #-773]! + 1ec8: 1f1f1505 svcne 0x001f1505 + 1ecc: 2003051f andcs r0, r3, pc, lsl r5 + 1ed0: 1f150505 svcne 0x00150505 + 1ed4: 01051f1f tsteq r5, pc, lsl pc + 1ed8: 00040220 andeq r0, r4, r0, lsr #4 + 1edc: 00000101 andeq r0, r0, r1, lsl #2 + 1ee0: 000000be strheq r0, [r0], -lr + 1ee4: 008b0002 addeq r0, fp, r2 + 1ee8: 01020000 tsteq r2, r0 + 1eec: 000a0500 andeq r0, sl, r0, lsl #10 + 1ef0: 01010101 tsteq r1, r1, lsl #2 + 1ef4: 00000000 andeq r0, r0, r0 + 1ef8: 445c3a43 ldrbmi r3, [ip], #-2627 + 1efc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1f00: 73746e65 cmnvc r4, #1616 ; 0x650 + 1f04: 646e6120 strbtvs r6, [lr], #-288 + 1f08: 74655320 strbtvc r5, [r5], #-800 + 1f0c: 676e6974 undefined + 1f10: 616d5c73 smcvs 54723 + 1f14: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1f18: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1f1c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1f20: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1f24: 775c7374 undefined + 1f28: 6f632d73 svcvs 0x00632d73 + 1f2c: 6f72746e svcvs 0x0072746e + 1f30: 65575c6c ldrbvs r5, [r7, #-3180] + 1f34: 65687461 strbvs r7, [r8, #-1121]! + 1f38: 74532072 ldrbvc r2, [r3], #-114 + 1f3c: 6f697461 svcvs 0x00697461 + 1f40: 6f43206e svcvs 0x0043206e + 1f44: 6f72746e svcvs 0x0072746e + 1f48: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1f4c: 7070415c rsbsvc r4, r0, ip, asr r1 + 1f50: 6163696c cmnvs r3, ip, ror #18 + 1f54: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1f58: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1f5c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1f60: 005c7365 subseq r7, ip, r5, ror #6 + 1f64: 64654c00 strbtvs r4, [r5], #-3072 + 1f68: 00632e73 rsbeq r2, r3, r3, ror lr + 1f6c: b8f79201 ldmlt r7!, {r0, r9, ip, pc}^ + 1f70: 029104c7 addseq r0, r1, #-956301312 ; 0xc7000000 + 1f74: 02050000 andeq r0, r5, #0 ; 0x0 + 1f78: 004036c0 subeq r3, r0, r0, asr #13 + 1f7c: af030105 svcge 0x00030105 + 1f80: 03050e01 movweq r0, #24065 ; 0x5e01 + 1f84: 15050515 strne r0, [r5, #-1301] + 1f88: 051f0305 ldreq r0, [pc, #-773] ; 1c8b <__USR_stack_size+0x148b> + 1f8c: 03051505 movweq r1, #21765 ; 0x5505 + 1f90: 1505051f strne r0, [r5, #-1311] + 1f94: 051f0305 ldreq r0, [pc, #-773] ; 1c97 <__USR_stack_size+0x1497> + 1f98: 01051505 tsteq r5, r5, lsl #10 + 1f9c: 0004021f andeq r0, r4, pc, lsl r2 + 1fa0: 00000101 andeq r0, r0, r1, lsl #2 + 1fa4: 00000429 andeq r0, r0, r9, lsr #8 + 1fa8: 04230002 strteq r0, [r3], #-2 + 1fac: 01010000 tsteq r1, r0 + 1fb0: 000a0500 andeq r0, sl, r0, lsl #10 + 1fb4: 01010101 tsteq r1, r1, lsl #2 + 1fb8: 00000000 andeq r0, r0, r0 + 1fbc: 445c3a43 ldrbmi r3, [ip], #-2627 + 1fc0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1fc4: 73746e65 cmnvc r4, #1616 ; 0x650 + 1fc8: 646e6120 strbtvs r6, [lr], #-288 + 1fcc: 74655320 strbtvc r5, [r5], #-800 + 1fd0: 676e6974 undefined + 1fd4: 616d5c73 smcvs 54723 + 1fd8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1fdc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1fe0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1fe4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1fe8: 775c7374 undefined + 1fec: 6f632d73 svcvs 0x00632d73 + 1ff0: 6f72746e svcvs 0x0072746e + 1ff4: 65575c6c ldrbvs r5, [r7, #-3180] + 1ff8: 65687461 strbvs r7, [r8, #-1121]! + 1ffc: 74532072 ldrbvc r2, [r3], #-114 + 2000: 6f697461 svcvs 0x00697461 + 2004: 6f43206e svcvs 0x0043206e + 2008: 6f72746e svcvs 0x0072746e + 200c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2010: 4d4c505c stclmi 0, cr5, [ip, #-368] + 2014: 746e495c strbtvc r4, [lr], #-2396 + 2018: 61667265 cmnvs r6, r5, ror #4 + 201c: 005c6563 subseq r6, ip, r3, ror #10 + 2020: 445c3a43 ldrbmi r3, [ip], #-2627 + 2024: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2028: 73746e65 cmnvc r4, #1616 ; 0x650 + 202c: 646e6120 strbtvs r6, [lr], #-288 + 2030: 74655320 strbtvc r5, [r5], #-800 + 2034: 676e6974 undefined + 2038: 616d5c73 smcvs 54723 + 203c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2040: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2044: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2048: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 204c: 775c7374 undefined + 2050: 6f632d73 svcvs 0x00632d73 + 2054: 6f72746e svcvs 0x0072746e + 2058: 65575c6c ldrbvs r5, [r7, #-3180] + 205c: 65687461 strbvs r7, [r8, #-1121]! + 2060: 74532072 ldrbvc r2, [r3], #-114 + 2064: 6f697461 svcvs 0x00697461 + 2068: 6f43206e svcvs 0x0043206e + 206c: 6f72746e svcvs 0x0072746e + 2070: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2074: 4d4c505c stclmi 0, cr5, [ip, #-368] + 2078: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 207c: 65746e49 ldrbvs r6, [r4, #-3657]! + 2080: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 2084: 43005c65 movwmi r5, #3173 ; 0xc65 + 2088: 6f445c3a svcvs 0x00445c3a + 208c: 656d7563 strbvs r7, [sp, #-1379]! + 2090: 2073746e rsbscs r7, r3, lr, ror #8 + 2094: 20646e61 rsbcs r6, r4, r1, ror #28 + 2098: 74746553 ldrbtvc r6, [r4], #-1363 + 209c: 73676e69 cmnvc r7, #1680 ; 0x690 + 20a0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 20a4: 61726976 cmnvs r2, r6, ror r9 + 20a8: 20794d5c rsbscs r4, r9, ip, asr sp + 20ac: 75636f44 strbvc r6, [r3, #-3908]! + 20b0: 746e656d strbtvc r6, [lr], #-1389 + 20b4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 20b8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 20bc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 20c0: 6165575c cmnvs r5, ip, asr r7 + 20c4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 20c8: 61745320 cmnvs r4, r0, lsr #6 + 20cc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 20d0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 20d4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 20d8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 20dc: 43414d53 movtmi r4, #7507 ; 0x1d53 + 20e0: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 20e4: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 20e8: 746e495c strbtvc r4, [lr], #-2396 + 20ec: 61667265 cmnvs r6, r5, ror #4 + 20f0: 005c6563 subseq r6, ip, r3, ror #10 + 20f4: 445c3a43 ldrbmi r3, [ip], #-2627 + 20f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 20fc: 73746e65 cmnvc r4, #1616 ; 0x650 + 2100: 646e6120 strbtvs r6, [lr], #-288 + 2104: 74655320 strbtvc r5, [r5], #-800 + 2108: 676e6974 undefined + 210c: 616d5c73 smcvs 54723 + 2110: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2114: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2118: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 211c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2120: 775c7374 undefined + 2124: 6f632d73 svcvs 0x00632d73 + 2128: 6f72746e svcvs 0x0072746e + 212c: 65575c6c ldrbvs r5, [r7, #-3180] + 2130: 65687461 strbvs r7, [r8, #-1121]! + 2134: 74532072 ldrbvc r2, [r3], #-114 + 2138: 6f697461 svcvs 0x00697461 + 213c: 6f43206e svcvs 0x0043206e + 2140: 6f72746e svcvs 0x0072746e + 2144: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2148: 414d535c cmpmi sp, ip, asr r3 + 214c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 2150: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 2154: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 2158: 66726574 undefined + 215c: 5c656361 stclpl 3, cr6, [r5], #-388 + 2160: 72646867 rsbvc r6, r4, #6750208 ; 0x670000 + 2164: 3a43005c bcc 10c22dc + 2168: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 216c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2170: 61207374 teqvs r0, r4, ror r3 + 2174: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 2178: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 217c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 2180: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2184: 5c617269 sfmpl f7, 2, [r1], #-420 + 2188: 4420794d strtmi r7, [r0], #-2381 + 218c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2190: 73746e65 cmnvc r4, #1616 ; 0x650 + 2194: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2198: 746e6f63 strbtvc r6, [lr], #-3939 + 219c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 21a0: 74616557 strbtvc r6, [r1], #-1367 + 21a4: 20726568 rsbscs r6, r2, r8, ror #10 + 21a8: 74617453 strbtvc r7, [r1], #-1107 + 21ac: 206e6f69 rsbcs r6, lr, r9, ror #30 + 21b0: 746e6f43 strbtvc r6, [lr], #-3907 + 21b4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 21b8: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 21bc: 5c43414d stfple f4, [r3], {77} + 21c0: 76697244 strbtvc r7, [r9], -r4, asr #4 + 21c4: 5c737265 lfmpl f7, 2, [r3], #-404 + 21c8: 4962694c stmdbmi r2!, {r2, r3, r6, r8, fp, sp, lr}^ + 21cc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 21d0: 65636166 strbvs r6, [r3, #-358]! + 21d4: 3a43005c bcc 10c234c + 21d8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 21dc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 21e0: 61207374 teqvs r0, r4, ror r3 + 21e4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 21e8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 21ec: 5c73676e ldclpl 7, cr6, [r3], #-440 + 21f0: 766c616d strbtvc r6, [ip], -sp, ror #2 + 21f4: 5c617269 sfmpl f7, 2, [r1], #-420 + 21f8: 4420794d strtmi r7, [r0], #-2381 + 21fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2200: 73746e65 cmnvc r4, #1616 ; 0x650 + 2204: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2208: 746e6f63 strbtvc r6, [lr], #-3939 + 220c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 2210: 74616557 strbtvc r6, [r1], #-1367 + 2214: 20726568 rsbscs r6, r2, r8, ror #10 + 2218: 74617453 strbtvc r7, [r1], #-1107 + 221c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 2220: 746e6f43 strbtvc r6, [lr], #-3907 + 2224: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2228: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 222c: 5c43414d stfple f4, [r3], {77} + 2230: 76697244 strbtvc r7, [r9], -r4, asr #4 + 2234: 5c737265 lfmpl f7, 2, [r3], #-404 + 2238: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 223c: 005c6563 subseq r6, ip, r3, ror #10 + 2240: 445c3a43 ldrbmi r3, [ip], #-2627 + 2244: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2248: 73746e65 cmnvc r4, #1616 ; 0x650 + 224c: 646e6120 strbtvs r6, [lr], #-288 + 2250: 74655320 strbtvc r5, [r5], #-800 + 2254: 676e6974 undefined + 2258: 616d5c73 smcvs 54723 + 225c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2260: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2264: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2268: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 226c: 775c7374 undefined + 2270: 6f632d73 svcvs 0x00632d73 + 2274: 6f72746e svcvs 0x0072746e + 2278: 65575c6c ldrbvs r5, [r7, #-3180] + 227c: 65687461 strbvs r7, [r8, #-1121]! + 2280: 74532072 ldrbvc r2, [r3], #-114 + 2284: 6f697461 svcvs 0x00697461 + 2288: 6f43206e svcvs 0x0043206e + 228c: 6f72746e svcvs 0x0072746e + 2290: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2294: 414d535c cmpmi sp, ip, asr r3 + 2298: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} + 229c: 66726574 undefined + 22a0: 5c656361 stclpl 3, cr6, [r5], #-388 + 22a4: 6d450000 stclvs 0, cr0, [r5] + 22a8: 64646562 strbtvs r6, [r4], #-1378 + 22ac: 79546465 ldmdbvc r4, {r0, r2, r5, r6, sl, sp, lr}^ + 22b0: 2e736570 mrccs 5, 3, r6, cr3, cr0, {3} + 22b4: 9e010068 cdpls 0, 0, cr0, cr1, cr8, {3} + 22b8: 04c0d79d strbeq sp, [r0], #1949 + 22bc: 4d524377 ldclmi 3, cr4, [r2, #-476] + 22c0: 6765525f undefined + 22c4: 00682e73 rsbeq r2, r8, r3, ror lr + 22c8: d78ff802 strle pc, [pc, r2, lsl #16] + 22cc: 028104c0 addeq r0, r1, #-1073741824 ; 0xc0000000 + 22d0: 5f435449 svcpl 0x00435449 + 22d4: 65746e49 ldrbvs r6, [r4, #-3657]! + 22d8: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 22dc: 00682e65 rsbeq r2, r8, r5, ror #28 + 22e0: d78ff802 strle pc, [pc, r2, lsl #16] + 22e4: 02c404c0 sbceq r0, r4, #-1073741824 ; 0xc0000000 + 22e8: 5f697353 svcpl 0x00697353 + 22ec: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 22f0: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 22f4: ba9196cc blt fe467e2c + 22f8: 7001c504 andvc ip, r1, r4, lsl #10 + 22fc: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 2300: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} + 2304: f2020068 vhadd.s8 q0, q1, q12 + 2308: 04c0d794 strbeq sp, [r0], #1940 + 230c: 724603be subvc r0, r6, #-134217726 ; 0xf8000002 + 2310: 65447165 strbvs r7, [r4, #-357] + 2314: 74655370 strbtvc r5, [r5], #-880 + 2318: 676e6974 undefined + 231c: 00682e73 rsbeq r2, r8, r3, ror lr + 2320: edfbf703 ldcl 7, cr15, [fp, #12]! + 2324: 4d3704ce cfldrsmi mvf0, [r7, #-824]! + 2328: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ + 232c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2330: 74707572 ldrbtvc r7, [r0], #-1394 + 2334: 0300682e movweq r6, #2094 ; 0x82e + 2338: c5d0bea8 ldrbgt fp, [r0, #3752] + 233c: 616d5d04 cmnvs sp, r4, lsl #26 + 2340: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} + 2344: adc20400 cfstrdge mvd0, [r2] + 2348: 8c04c49d cfstrshi mvf12, [r4], {157} + 234c: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} + 2350: 73656874 cmnvc r5, #7602176 ; 0x740000 + 2354: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 + 2358: 636e695f cmnvs lr, #1556480 ; 0x17c000 + 235c: 0500682e streq r6, [r0, #-2094] + 2360: cc8199fa stcgt 9, cr9, [r1], {250} + 2364: 4d01a004 stcmi 0, cr10, [r1, #-16] + 2368: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ + 236c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2370: 74707572 ldrbtvc r7, [r0], #-1394 + 2374: 0600632e streq r6, [r0], -lr, lsr #6 + 2378: cbe6d898 blgt ff9b85e0 + 237c: 4702e204 strmi lr, [r2, -r4, lsl #4] + 2380: 61626f6c cmnvs r2, ip, ror #30 + 2384: 6665446c strbtvs r4, [r5], -ip, ror #8 + 2388: 00682e73 rsbeq r2, r8, r3, ror lr + 238c: eea2ba07 cdp 10, 10, cr11, cr2, cr7, {0} + 2390: 019104c5 orrseq r0, r1, r5, asr #9 + 2394: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 2398: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 239c: 6d656761 stclvs 7, cr6, [r5, #-388]! + 23a0: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 23a4: a6070068 strge r0, [r7], -r8, rrx + 23a8: 04cbe6d8 strbeq lr, [fp], #1752 + 23ac: 725403d1 subsvc r0, r4, #1140850691 ; 0x44000003 + 23b0: 63736e61 cmnvs r3, #1552 ; 0x610 + 23b4: 65766965 ldrbvs r6, [r6, #-2405]! + 23b8: 6e6f4372 mcrvs 3, 3, r4, cr15, cr2, {3} + 23bc: 4d676966 stclmi 9, cr6, [r7, #-408]! + 23c0: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 23c4: 00682e74 rsbeq r2, r8, r4, ror lr + 23c8: eea0a207 cdp 2, 10, cr10, cr0, cr7, {0} + 23cc: 01e604c5 mvneq r0, r5, asr #9 + 23d0: 00000000 andeq r0, r0, r0 + 23d4: 000000d7 ldrdeq r0, [r0], -r7 + 23d8: 00920002 addseq r0, r2, r2 + 23dc: 01020000 tsteq r2, r0 + 23e0: 000a0500 andeq r0, sl, r0, lsl #10 + 23e4: 01010101 tsteq r1, r1, lsl #2 + 23e8: 00000000 andeq r0, r0, r0 + 23ec: 445c3a43 ldrbmi r3, [ip], #-2627 + 23f0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 23f4: 73746e65 cmnvc r4, #1616 ; 0x650 + 23f8: 646e6120 strbtvs r6, [lr], #-288 + 23fc: 74655320 strbtvc r5, [r5], #-800 + 2400: 676e6974 undefined + 2404: 616d5c73 smcvs 54723 + 2408: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 240c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2410: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2414: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2418: 775c7374 undefined + 241c: 6f632d73 svcvs 0x00632d73 + 2420: 6f72746e svcvs 0x0072746e + 2424: 65575c6c ldrbvs r5, [r7, #-3180] + 2428: 65687461 strbvs r7, [r8, #-1121]! + 242c: 74532072 ldrbvc r2, [r3], #-114 + 2430: 6f697461 svcvs 0x00697461 + 2434: 6f43206e svcvs 0x0043206e + 2438: 6f72746e svcvs 0x0072746e + 243c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2440: 414d535c cmpmi sp, ip, asr r3 + 2444: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 2448: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 244c: 6f535c73 svcvs 0x00535c73 + 2450: 65637275 strbvs r7, [r3, #-629]! + 2454: 4d00005c stcmi 0, cr0, [r0, #-368] + 2458: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ + 245c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2460: 74707572 ldrbtvc r7, [r0], #-1394 + 2464: 0100632e tsteq r0, lr, lsr #6 + 2468: cbe6d898 blgt ff9b86d0 + 246c: 0002e204 andeq lr, r2, r4, lsl #4 + 2470: b4020500 strlt r0, [r2], #-1280 + 2474: 0500402b streq r4, [r0, #-43] + 2478: 00dd0301 sbcseq r0, sp, r1, lsl #6 + 247c: 0303050e movweq r0, #13582 ; 0x350e + 2480: 02031801 andeq r1, r3, #65536 ; 0x10000 + 2484: 0316181d tsteq r6, #1900544 ; 0x1d0000 + 2488: 290c1d01 stmdbcs ip, {r0, r8, sl, fp, ip} + 248c: 3e051c12 mcrcc 12, 0, r1, cr5, cr2, {0} + 2490: 191f0528 ldmdbne pc, {r3, r5, r8, sl} + 2494: 12310305 eorsne r0, r1, #335544320 ; 0x14000000 + 2498: 05143e05 ldreq r3, [r4, #-3589] + 249c: 0305191f movweq r1, #22815 ; 0x591f + 24a0: 03360103 teqeq r6, #-1073741824 ; 0xc0000000 + 24a4: 051c1301 ldreq r1, [ip, #-769] + 24a8: 0d021a01 fstseq s2, [r2, #-4] + 24ac: 00010100 andeq r0, r1, r0, lsl #2 + 24b0: 00000127 andeq r0, r0, r7, lsr #2 + 24b4: 00920002 addseq r0, r2, r2 + 24b8: 01020000 tsteq r2, r0 + 24bc: 000a0500 andeq r0, sl, r0, lsl #10 + 24c0: 01010101 tsteq r1, r1, lsl #2 + 24c4: 00000000 andeq r0, r0, r0 + 24c8: 445c3a43 ldrbmi r3, [ip], #-2627 + 24cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 24d0: 73746e65 cmnvc r4, #1616 ; 0x650 + 24d4: 646e6120 strbtvs r6, [lr], #-288 + 24d8: 74655320 strbtvc r5, [r5], #-800 + 24dc: 676e6974 undefined + 24e0: 616d5c73 smcvs 54723 + 24e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 24e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 24ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 24f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 24f4: 775c7374 undefined + 24f8: 6f632d73 svcvs 0x00632d73 + 24fc: 6f72746e svcvs 0x0072746e + 2500: 65575c6c ldrbvs r5, [r7, #-3180] + 2504: 65687461 strbvs r7, [r8, #-1121]! + 2508: 74532072 ldrbvc r2, [r3], #-114 + 250c: 6f697461 svcvs 0x00697461 + 2510: 6f43206e svcvs 0x0043206e + 2514: 6f72746e svcvs 0x0072746e + 2518: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 251c: 414d535c cmpmi sp, ip, asr r3 + 2520: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 2524: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 2528: 6f535c73 svcvs 0x00535c73 + 252c: 65637275 strbvs r7, [r3, #-629]! + 2530: 4d00005c stcmi 0, cr0, [r0, #-368] + 2534: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ + 2538: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 253c: 74707572 ldrbtvc r7, [r0], #-1394 + 2540: 0100632e tsteq r0, lr, lsr #6 + 2544: cbe6d898 blgt ff9b87ac + 2548: 0002e204 andeq lr, r2, r4, lsl #4 + 254c: 44020500 strmi r0, [r2], #-1280 + 2550: 0500402c streq r4, [r0, #-44] + 2554: 01a10301 undefined instruction 0x01a10301 + 2558: 1103050e tstne r3, lr, lsl #10 + 255c: 05201015 streq r1, [r0, #-21]! + 2560: 08052005 stmdaeq r5, {r0, r2, sp} + 2564: 1505052c strne r0, [r5, #-1324] + 2568: 0b051524 bleq 147a00 + 256c: 0203216c andeq r2, r3, #27 ; 0x1b + 2570: 0103151d tsteq r3, sp, lsl r5 + 2574: 2701031d smladcs r1, sp, r3, r0 + 2578: 1f1d0103 svcne 0x001d0103 + 257c: 15131303 ldrne r1, [r3, #-771] + 2580: 151d0203 ldrne r0, [sp, #-515] + 2584: 15200d05 strne r0, [r0, #-3333]! + 2588: 03200b05 teqeq r0, #5120 ; 0x1400 + 258c: 0303220d movweq r2, #12813 ; 0x320d + 2590: 0103151d tsteq r3, sp, lsl r5 + 2594: 0308051d movweq r0, #34077 ; 0x851d + 2598: 05051d06 streq r1, [r5, #-3334] + 259c: 08052525 stmdaeq r5, {r0, r2, r5, r8, sl, sp} + 25a0: 1a050512 bne 1439f0 + 25a4: 2007051a andcs r0, r7, sl, lsl r5 + 25a8: 02030905 andeq r0, r3, #81920 ; 0x14000 + 25ac: 240b0b40 strcs r0, [fp], #-2880 + 25b0: 0308051c movweq r0, #34076 ; 0x851c + 25b4: 05052206 streq r2, [r5, #-518] + 25b8: 08051517 stmdaeq r5, {r0, r1, r2, r4, r8, sl, ip} + 25bc: 1a050521 bne 143a48 + 25c0: 05200805 streq r0, [r0, #-2053]! + 25c4: 08051f05 stmdaeq r5, {r0, r2, r8, r9, sl, fp, ip} + 25c8: 1a050525 bne 143a64 + 25cc: 0c160305 ldceq 3, cr0, [r6], {5} + 25d0: 050e0203 streq r0, [lr, #-515] + 25d4: 12021a01 andne r1, r2, #4096 ; 0x1000 + 25d8: 00010100 andeq r0, r1, r0, lsl #2 + 25dc: 00000209 andeq r0, r0, r9, lsl #4 + 25e0: 02030002 andeq r0, r3, #2 ; 0x2 + 25e4: 01010000 tsteq r1, r0 + 25e8: 000a0500 andeq r0, sl, r0, lsl #10 + 25ec: 01010101 tsteq r1, r1, lsl #2 + 25f0: 00000000 andeq r0, r0, r0 + 25f4: 445c3a43 ldrbmi r3, [ip], #-2627 + 25f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 25fc: 73746e65 cmnvc r4, #1616 ; 0x650 + 2600: 646e6120 strbtvs r6, [lr], #-288 + 2604: 74655320 strbtvc r5, [r5], #-800 + 2608: 676e6974 undefined + 260c: 616d5c73 smcvs 54723 + 2610: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2614: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2618: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 261c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2620: 775c7374 undefined + 2624: 6f632d73 svcvs 0x00632d73 + 2628: 6f72746e svcvs 0x0072746e + 262c: 65575c6c ldrbvs r5, [r7, #-3180] + 2630: 65687461 strbvs r7, [r8, #-1121]! + 2634: 74532072 ldrbvc r2, [r3], #-114 + 2638: 6f697461 svcvs 0x00697461 + 263c: 6f43206e svcvs 0x0043206e + 2640: 6f72746e svcvs 0x0072746e + 2644: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2648: 4d4c505c stclmi 0, cr5, [ip, #-368] + 264c: 746e495c strbtvc r4, [lr], #-2396 + 2650: 61667265 cmnvs r6, r5, ror #4 + 2654: 005c6563 subseq r6, ip, r3, ror #10 + 2658: 445c3a43 ldrbmi r3, [ip], #-2627 + 265c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2660: 73746e65 cmnvc r4, #1616 ; 0x650 + 2664: 646e6120 strbtvs r6, [lr], #-288 + 2668: 74655320 strbtvc r5, [r5], #-800 + 266c: 676e6974 undefined + 2670: 616d5c73 smcvs 54723 + 2674: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2678: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 267c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2680: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2684: 775c7374 undefined + 2688: 6f632d73 svcvs 0x00632d73 + 268c: 6f72746e svcvs 0x0072746e + 2690: 65575c6c ldrbvs r5, [r7, #-3180] + 2694: 65687461 strbvs r7, [r8, #-1121]! + 2698: 74532072 ldrbvc r2, [r3], #-114 + 269c: 6f697461 svcvs 0x00697461 + 26a0: 6f43206e svcvs 0x0043206e + 26a4: 6f72746e svcvs 0x0072746e + 26a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 26ac: 4d4c505c stclmi 0, cr5, [ip, #-368] + 26b0: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 26b4: 65746e49 ldrbvs r6, [r4, #-3657]! + 26b8: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 26bc: 43005c65 movwmi r5, #3173 ; 0xc65 + 26c0: 6f445c3a svcvs 0x00445c3a + 26c4: 656d7563 strbvs r7, [sp, #-1379]! + 26c8: 2073746e rsbscs r7, r3, lr, ror #8 + 26cc: 20646e61 rsbcs r6, r4, r1, ror #28 + 26d0: 74746553 ldrbtvc r6, [r4], #-1363 + 26d4: 73676e69 cmnvc r7, #1680 ; 0x690 + 26d8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 26dc: 61726976 cmnvs r2, r6, ror r9 + 26e0: 20794d5c rsbscs r4, r9, ip, asr sp + 26e4: 75636f44 strbvc r6, [r3, #-3908]! + 26e8: 746e656d strbtvc r6, [lr], #-1389 + 26ec: 73775c73 cmnvc r7, #29440 ; 0x7300 + 26f0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 26f4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 26f8: 6165575c cmnvs r5, ip, asr r7 + 26fc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2700: 61745320 cmnvs r4, r0, lsr #6 + 2704: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2708: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 270c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2710: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2714: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 2718: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 271c: 435c6563 cmpmi ip, #415236096 ; 0x18c00000 + 2720: 6f6d6d6f svcvs 0x006d6d6f + 2724: 79535c6e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, fp, ip, lr}^ + 2728: 00005c73 andeq r5, r0, r3, ror ip + 272c: 65626d45 strbvs r6, [r2, #-3397]! + 2730: 64656464 strbtvs r6, [r5], #-1124 + 2734: 65707954 ldrbvs r7, [r0, #-2388]! + 2738: 00682e73 rsbeq r2, r8, r3, ror lr + 273c: d79d9e01 ldrle r9, [sp, r1, lsl #28] + 2740: 507704c0 rsbspl r0, r7, r0, asr #9 + 2744: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 2748: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 274c: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 2750: a6010068 strge r0, [r1], -r8, rrx + 2754: 04c5d0be strbeq sp, [r5], #190 + 2758: 726f502e rsbvc r5, pc, #46 ; 0x2e + 275c: 6e6f4374 mcrvs 3, 3, r4, cr15, cr4, {3} + 2760: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} + 2764: f7010068 undefined instruction 0xf7010068 + 2768: 04ceedfb strbeq lr, [lr], #3579 + 276c: 5f465243 svcpl 0x00465243 + 2770: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 2774: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} + 2778: fbf70100 blx ffdc2b82 + 277c: 3204ceed andcc ip, r4, #3792 ; 0xed0 + 2780: 5f4d5243 svcpl 0x004d5243 + 2784: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 2788: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 278c: c0d78ff8 ldrshgt r8, [r7], #248 + 2790: 47028104 strmi r8, [r2, -r4, lsl #2] + 2794: 5f4f4950 svcpl 0x004f4950 + 2798: 65746e49 ldrbvs r6, [r4, #-3657]! + 279c: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 27a0: 00682e65 rsbeq r2, r8, r5, ror #28 + 27a4: d78ff802 strle pc, [pc, r2, lsl #16] + 27a8: 069e04c0 ldreq r0, [lr], r0, asr #9 + 27ac: 74616c50 strbtvc r6, [r1], #-3152 + 27b0: 6d726f66 ldclvs 15, cr6, [r2, #-408]! + 27b4: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 27b8: c0d794f2 ldrshgt r9, [r7], #66 + 27bc: 5303be04 movwpl fp, #15876 ; 0x3e04 + 27c0: 525f6973 subspl r6, pc, #1884160 ; 0x1cc000 + 27c4: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} + 27c8: cc020068 stcgt 0, cr0, [r2], {104} + 27cc: 04ba9196 ldrteq r9, [sl], #406 + 27d0: 6c5001c5 ldfvse f0, [r0], {197} + 27d4: 6f667461 svcvs 0x00667461 + 27d8: 6e496d72 mcrvs 13, 2, r6, cr9, cr2, {3} + 27dc: 632e7469 teqvs lr, #1761607680 ; 0x69000000 + 27e0: 8ad40300 bhi ff5033e8 + 27e4: 6004c789 andvs ip, r4, r9, lsl #15 + 27e8: 00000000 andeq r0, r0, r0 + 27ec: 000000d4 ldrdeq r0, [r0], -r4 + 27f0: 00920002 addseq r0, r2, r2 + 27f4: 01020000 tsteq r2, r0 + 27f8: 000a0500 andeq r0, sl, r0, lsl #10 + 27fc: 01010101 tsteq r1, r1, lsl #2 + 2800: 00000000 andeq r0, r0, r0 + 2804: 445c3a43 ldrbmi r3, [ip], #-2627 + 2808: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 280c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2810: 646e6120 strbtvs r6, [lr], #-288 + 2814: 74655320 strbtvc r5, [r5], #-800 + 2818: 676e6974 undefined + 281c: 616d5c73 smcvs 54723 + 2820: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2824: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2828: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 282c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2830: 775c7374 undefined + 2834: 6f632d73 svcvs 0x00632d73 + 2838: 6f72746e svcvs 0x0072746e + 283c: 65575c6c ldrbvs r5, [r7, #-3180] + 2840: 65687461 strbvs r7, [r8, #-1121]! + 2844: 74532072 ldrbvc r2, [r3], #-114 + 2848: 6f697461 svcvs 0x00697461 + 284c: 6f43206e svcvs 0x0043206e + 2850: 6f72746e svcvs 0x0072746e + 2854: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2858: 4d4c505c stclmi 0, cr5, [ip, #-368] + 285c: 756f535c strbvc r5, [pc, #-860]! ; 2508 <__USR_stack_size+0x1d08> + 2860: 5c656372 stclpl 3, cr6, [r5], #-456 + 2864: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 2868: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 286c: 005c7379 subseq r7, ip, r9, ror r3 + 2870: 616c5000 cmnvs ip, r0 + 2874: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 + 2878: 696e496d stmdbvs lr!, {r0, r2, r3, r5, r6, r8, fp, lr}^ + 287c: 00632e74 rsbeq r2, r3, r4, ror lr + 2880: 898ad401 stmibhi sl, {r0, sl, ip, lr, pc} + 2884: 006004c7 rsbeq r0, r0, r7, asr #9 + 2888: a4020500 strge r0, [r2], #-1280 + 288c: 0500403c streq r4, [r0, #-60] + 2890: 0e1a0301 cdpeq 3, 1, cr0, cr10, cr1, {0} + 2894: 050b0305 streq r0, [fp, #-773] + 2898: 0e220301 cdpeq 3, 2, cr0, cr2, cr1, {0} + 289c: 240b0305 strcs r0, [fp], #-773 + 28a0: 1a111020 bne 446928 + 28a4: 10101510 andsne r1, r0, r0, lsl r5 + 28a8: 1a101010 bne 4068f0 + 28ac: 1f101015 svcne 0x00101015 + 28b0: 47030105 strmi r0, [r3, -r5, lsl #2] + 28b4: 03030514 movweq r0, #13588 ; 0x3514 + 28b8: 01050e36 tsteq r5, r6, lsr lr + 28bc: 020e0103 andeq r0, lr, #-1073741824 ; 0xc0000000 + 28c0: 01010003 tsteq r1, r3 + 28c4: 00000480 andeq r0, r0, r0, lsl #9 + 28c8: 047a0002 ldrbteq r0, [sl], #-2 + 28cc: 01010000 tsteq r1, r0 + 28d0: 000a0500 andeq r0, sl, r0, lsl #10 + 28d4: 01010101 tsteq r1, r1, lsl #2 + 28d8: 00000000 andeq r0, r0, r0 + 28dc: 445c3a43 ldrbmi r3, [ip], #-2627 + 28e0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 28e4: 73746e65 cmnvc r4, #1616 ; 0x650 + 28e8: 646e6120 strbtvs r6, [lr], #-288 + 28ec: 74655320 strbtvc r5, [r5], #-800 + 28f0: 676e6974 undefined + 28f4: 616d5c73 smcvs 54723 + 28f8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 28fc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2900: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2904: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2908: 775c7374 undefined + 290c: 6f632d73 svcvs 0x00632d73 + 2910: 6f72746e svcvs 0x0072746e + 2914: 65575c6c ldrbvs r5, [r7, #-3180] + 2918: 65687461 strbvs r7, [r8, #-1121]! + 291c: 74532072 ldrbvc r2, [r3], #-114 + 2920: 6f697461 svcvs 0x00697461 + 2924: 6f43206e svcvs 0x0043206e + 2928: 6f72746e svcvs 0x0072746e + 292c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2930: 4d4c505c stclmi 0, cr5, [ip, #-368] + 2934: 746e495c strbtvc r4, [lr], #-2396 + 2938: 61667265 cmnvs r6, r5, ror #4 + 293c: 005c6563 subseq r6, ip, r3, ror #10 + 2940: 445c3a43 ldrbmi r3, [ip], #-2627 + 2944: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2948: 73746e65 cmnvc r4, #1616 ; 0x650 + 294c: 646e6120 strbtvs r6, [lr], #-288 + 2950: 74655320 strbtvc r5, [r5], #-800 + 2954: 676e6974 undefined + 2958: 616d5c73 smcvs 54723 + 295c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2960: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2964: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2968: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 296c: 775c7374 undefined + 2970: 6f632d73 svcvs 0x00632d73 + 2974: 6f72746e svcvs 0x0072746e + 2978: 65575c6c ldrbvs r5, [r7, #-3180] + 297c: 65687461 strbvs r7, [r8, #-1121]! + 2980: 74532072 ldrbvc r2, [r3], #-114 + 2984: 6f697461 svcvs 0x00697461 + 2988: 6f43206e svcvs 0x0043206e + 298c: 6f72746e svcvs 0x0072746e + 2990: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2994: 414d535c cmpmi sp, ip, asr r3 + 2998: 6f435c43 svcvs 0x00435c43 + 299c: 6769666e strbvs r6, [r9, -lr, ror #12]! + 29a0: 5c657275 sfmpl f7, 2, [r5], #-468 + 29a4: 5c3a4300 ldcpl 3, cr4, [sl] + 29a8: 75636f44 strbvc r6, [r3, #-3908]! + 29ac: 746e656d strbtvc r6, [lr], #-1389 + 29b0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 29b4: 65532064 ldrbvs r2, [r3, #-100] + 29b8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 29bc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 29c0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 29c4: 4d5c6172 ldfmie f6, [ip, #-456] + 29c8: 6f442079 svcvs 0x00442079 + 29cc: 656d7563 strbvs r7, [sp, #-1379]! + 29d0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 29d4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 29d8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 29dc: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 29e0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 29e4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 29e8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 29ec: 43206e6f teqmi r0, #1776 ; 0x6f0 + 29f0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 29f4: 656c6c6f strbvs r6, [ip, #-3183]! + 29f8: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 29fc: 445c4341 ldrbmi r4, [ip], #-833 + 2a00: 65766972 ldrbvs r6, [r6, #-2418]! + 2a04: 435c7372 cmpmi ip, #-939524095 ; 0xc8000001 + 2a08: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 2a0c: 65727567 ldrbvs r7, [r2, #-1383]! + 2a10: 3a43005c bcc 10c2b88 + 2a14: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 2a18: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2a1c: 61207374 teqvs r0, r4, ror r3 + 2a20: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 2a24: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 2a28: 5c73676e ldclpl 7, cr6, [r3], #-440 + 2a2c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2a30: 5c617269 sfmpl f7, 2, [r1], #-420 + 2a34: 4420794d strtmi r7, [r0], #-2381 + 2a38: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2a3c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2a40: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2a44: 746e6f63 strbtvc r6, [lr], #-3939 + 2a48: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 2a4c: 74616557 strbtvc r6, [r1], #-1367 + 2a50: 20726568 rsbscs r6, r2, r8, ror #10 + 2a54: 74617453 strbtvc r7, [r1], #-1107 + 2a58: 206e6f69 rsbcs r6, lr, r9, ror #30 + 2a5c: 746e6f43 strbtvc r6, [lr], #-3907 + 2a60: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2a64: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 2a68: 5c43414d stfple f4, [r3], {77} + 2a6c: 76697244 strbtvc r7, [r9], -r4, asr #4 + 2a70: 5c737265 lfmpl f7, 2, [r3], #-404 + 2a74: 65746e49 ldrbvs r6, [r4, #-3657]! + 2a78: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 2a7c: 43005c65 movwmi r5, #3173 ; 0xc65 + 2a80: 6f445c3a svcvs 0x00445c3a + 2a84: 656d7563 strbvs r7, [sp, #-1379]! + 2a88: 2073746e rsbscs r7, r3, lr, ror #8 + 2a8c: 20646e61 rsbcs r6, r4, r1, ror #28 + 2a90: 74746553 ldrbtvc r6, [r4], #-1363 + 2a94: 73676e69 cmnvc r7, #1680 ; 0x690 + 2a98: 6c616d5c stclvs 13, cr6, [r1], #-368 + 2a9c: 61726976 cmnvs r2, r6, ror r9 + 2aa0: 20794d5c rsbscs r4, r9, ip, asr sp + 2aa4: 75636f44 strbvc r6, [r3, #-3908]! + 2aa8: 746e656d strbtvc r6, [lr], #-1389 + 2aac: 73775c73 cmnvc r7, #29440 ; 0x7300 + 2ab0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 2ab4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2ab8: 6165575c cmnvs r5, ip, asr r7 + 2abc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2ac0: 61745320 cmnvs r4, r0, lsr #6 + 2ac4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2ac8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2acc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2ad0: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2ad4: 43414d53 movtmi r4, #7507 ; 0x1d53 + 2ad8: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 2adc: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 2ae0: 746e495c strbtvc r4, [lr], #-2396 + 2ae4: 61667265 cmnvs r6, r5, ror #4 + 2ae8: 675c6563 ldrbvs r6, [ip, -r3, ror #10] + 2aec: 5c726468 cfldrdpl mvd6, [r2], #-416 + 2af0: 5c3a4300 ldcpl 3, cr4, [sl] + 2af4: 75636f44 strbvc r6, [r3, #-3908]! + 2af8: 746e656d strbtvc r6, [lr], #-1389 + 2afc: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2b00: 65532064 ldrbvs r2, [r3, #-100] + 2b04: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2b08: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2b0c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2b10: 4d5c6172 ldfmie f6, [ip, #-456] + 2b14: 6f442079 svcvs 0x00442079 + 2b18: 656d7563 strbvs r7, [sp, #-1379]! + 2b1c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2b20: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2b24: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2b28: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2b2c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2b30: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2b34: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2b38: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2b3c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2b40: 656c6c6f strbvs r6, [ip, #-3183]! + 2b44: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 2b48: 445c4341 ldrbmi r4, [ip], #-833 + 2b4c: 65766972 ldrbvs r6, [r6, #-2418]! + 2b50: 4c5c7372 mrrcmi 3, 7, r7, ip, cr2 + 2b54: 6e496269 cdpvs 2, 4, cr6, cr9, cr9, {3} + 2b58: 66726574 undefined + 2b5c: 5c656361 stclpl 3, cr6, [r5], #-388 + 2b60: 5c3a4300 ldcpl 3, cr4, [sl] + 2b64: 75636f44 strbvc r6, [r3, #-3908]! + 2b68: 746e656d strbtvc r6, [lr], #-1389 + 2b6c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2b70: 65532064 ldrbvs r2, [r3, #-100] + 2b74: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2b78: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2b7c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2b80: 4d5c6172 ldfmie f6, [ip, #-456] + 2b84: 6f442079 svcvs 0x00442079 + 2b88: 656d7563 strbvs r7, [sp, #-1379]! + 2b8c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2b90: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2b94: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2b98: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2b9c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2ba0: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2ba4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2ba8: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2bac: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2bb0: 656c6c6f strbvs r6, [ip, #-3183]! + 2bb4: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 2bb8: 495c4341 ldmdbmi ip, {r0, r6, r8, r9, lr}^ + 2bbc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2bc0: 65636166 strbvs r6, [r3, #-358]! + 2bc4: 3a43005c bcc 10c2d3c + 2bc8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 2bcc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2bd0: 61207374 teqvs r0, r4, ror r3 + 2bd4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 2bd8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 2bdc: 5c73676e ldclpl 7, cr6, [r3], #-440 + 2be0: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2be4: 5c617269 sfmpl f7, 2, [r1], #-420 + 2be8: 4420794d strtmi r7, [r0], #-2381 + 2bec: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2bf0: 73746e65 cmnvc r4, #1616 ; 0x650 + 2bf4: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2bf8: 746e6f63 strbtvc r6, [lr], #-3939 + 2bfc: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 2c00: 74616557 strbtvc r6, [r1], #-1367 + 2c04: 20726568 rsbscs r6, r2, r8, ror #10 + 2c08: 74617453 strbtvc r7, [r1], #-1107 + 2c0c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 2c10: 746e6f43 strbtvc r6, [lr], #-3907 + 2c14: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2c18: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 2c1c: 5c43414d stfple f4, [r3], {77} + 2c20: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 2c24: 005c6563 subseq r6, ip, r3, ror #10 + 2c28: 626d4500 rsbvs r4, sp, #0 ; 0x0 + 2c2c: 65646465 strbvs r6, [r4, #-1125]! + 2c30: 70795464 rsbsvc r5, r9, r4, ror #8 + 2c34: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 2c38: 9d9e0100 ldflss f0, [lr] + 2c3c: 7704c0d7 undefined + 2c40: 6974706f ldmdbvs r4!, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ + 2c44: 5f736e6f svcpl 0x00736e6f + 2c48: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 2c4c: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} + 2c50: 8e8e0200 cdphi 2, 8, cr0, cr14, cr0, {0} + 2c54: 1f04c1d5 svcne 0x0004c1d5 + 2c58: 72616f62 rsbvc r6, r1, #392 ; 0x188 + 2c5c: 6f635f64 svcvs 0x00635f64 + 2c60: 6769666e strbvs r6, [r9, -lr, ror #12]! + 2c64: 0300682e movweq r6, #2094 ; 0x82e + 2c68: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 2c6c: 65443d04 strbvs r3, [r4, #-3332] + 2c70: 2e79616c rpwcsez f6, f1, #4.0 + 2c74: a8040068 stmdage r4, {r3, r5, r6} + 2c78: 04c5d0be strbeq sp, [r5], #190 + 2c7c: 65724619 ldrbvs r4, [r2, #-1561]! + 2c80: 70654471 rsbvc r4, r5, r1, ror r4 + 2c84: 74746553 ldrbtvc r6, [r4], #-1363 + 2c88: 73676e69 cmnvc r7, #1680 ; 0x690 + 2c8c: 0400682e streq r6, [r0], #-2094 + 2c90: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 2c94: 616d3704 cmnvs sp, r4, lsl #14 + 2c98: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} + 2c9c: adc20500 cfstr64ge mvdx0, [r2] + 2ca0: 8c04c49d cfstrshi mvf12, [r4], {157} + 2ca4: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} + 2ca8: 73656874 cmnvc r5, #7602176 ; 0x740000 + 2cac: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 + 2cb0: 636e695f cmnvs lr, #1556480 ; 0x17c000 + 2cb4: 0600682e streq r6, [r0], -lr, lsr #16 + 2cb8: cc8199fa stcgt 9, cr9, [r1], {250} + 2cbc: 4701a004 strmi sl, [r1, -r4] + 2cc0: 61626f6c cmnvs r2, ip, ror #30 + 2cc4: 6665446c strbtvs r4, [r5], -ip, ror #8 + 2cc8: 00682e73 rsbeq r2, r8, r3, ror lr + 2ccc: eea2ba07 cdp 10, 10, cr11, cr2, cr7, {0} + 2cd0: 019104c5 orrseq r0, r1, r5, asr #9 + 2cd4: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 2cd8: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 2cdc: 6d656761 stclvs 7, cr6, [r5, #-388]! + 2ce0: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 2ce4: a6070068 strge r0, [r7], -r8, rrx + 2ce8: 04cbe6d8 strbeq lr, [fp], #1752 + 2cec: 725403d1 subsvc r0, r4, #1140850691 ; 0x44000003 + 2cf0: 63736e61 cmnvs r3, #1552 ; 0x610 + 2cf4: 65766965 ldrbvs r6, [r6, #-2405]! + 2cf8: 6e6f4372 mcrvs 3, 3, r4, cr15, cr2, {3} + 2cfc: 4d676966 stclmi 9, cr6, [r7, #-408]! + 2d00: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 2d04: 00682e74 rsbeq r2, r8, r4, ror lr + 2d08: eea0a207 cdp 2, 10, cr10, cr0, cr7, {0} + 2d0c: 01e604c5 mvneq r0, r5, asr #9 + 2d10: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 2d14: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 2d18: 6d656761 stclvs 7, cr6, [r5, #-388]! + 2d1c: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 2d20: a6080063 strge r0, [r8], -r3, rrx + 2d24: 04cbe6d8 strbeq lr, [fp], #1752 + 2d28: 61520694 ldrbvs r0, [r2, #-100] + 2d2c: 4d6f6964 stclmi 9, cr6, [pc, #-400]! + 2d30: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 2d34: 61725774 cmnvs r2, r4, ror r7 + 2d38: 72657070 rsbvc r7, r5, #112 ; 0x70 + 2d3c: 0800682e stmdaeq r0, {r1, r2, r3, r5, fp, sp, lr} + 2d40: cbe6d8a6 blgt ff9b8fe0 + 2d44: 0001e604 andeq lr, r1, r4, lsl #12 + 2d48: 000000b2 strheq r0, [r0], -r2 + 2d4c: 008c0002 addeq r0, ip, r2 + 2d50: 01020000 tsteq r2, r0 + 2d54: 000a0500 andeq r0, sl, r0, lsl #10 + 2d58: 01010101 tsteq r1, r1, lsl #2 + 2d5c: 00000000 andeq r0, r0, r0 + 2d60: 445c3a43 ldrbmi r3, [ip], #-2627 + 2d64: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2d68: 73746e65 cmnvc r4, #1616 ; 0x650 + 2d6c: 646e6120 strbtvs r6, [lr], #-288 + 2d70: 74655320 strbtvc r5, [r5], #-800 + 2d74: 676e6974 undefined + 2d78: 616d5c73 smcvs 54723 + 2d7c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2d80: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2d84: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2d88: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2d8c: 775c7374 undefined + 2d90: 6f632d73 svcvs 0x00632d73 + 2d94: 6f72746e svcvs 0x0072746e + 2d98: 65575c6c ldrbvs r5, [r7, #-3180] + 2d9c: 65687461 strbvs r7, [r8, #-1121]! + 2da0: 74532072 ldrbvc r2, [r3], #-114 + 2da4: 6f697461 svcvs 0x00697461 + 2da8: 6f43206e svcvs 0x0043206e + 2dac: 6f72746e svcvs 0x0072746e + 2db0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2db4: 414d535c cmpmi sp, ip, asr r3 + 2db8: 6f535c43 svcvs 0x00535c43 + 2dbc: 65637275 strbvs r7, [r3, #-629]! + 2dc0: 5200005c andpl r0, r0, #92 ; 0x5c + 2dc4: 6f696461 svcvs 0x00696461 + 2dc8: 616e614d cmnvs lr, sp, asr #2 + 2dcc: 656d6567 strbvs r6, [sp, #-1383]! + 2dd0: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 2dd4: d8a60100 stmiale r6!, {r8} + 2dd8: 9404cbe6 strls ip, [r4], #-3046 + 2ddc: 05000006 streq r0, [r0, #-6] + 2de0: 40237802 eormi r7, r3, r2, lsl #16 + 2de4: 032d0500 teqeq sp, #0 ; 0x0 + 2de8: 050e01b9 streq r0, [lr, #-441] + 2dec: 05051003 streq r1, [r5, #-3] + 2df0: 1a07052e bne 1c42b0 + 2df4: 05030105 streq r0, [r3, #-261] + 2df8: 0003021d andeq r0, r3, sp, lsl r2 + 2dfc: 00000101 andeq r0, r0, r1, lsl #2 + 2e00: 000000b1 strheq r0, [r0], -r1 + 2e04: 008c0002 addeq r0, ip, r2 + 2e08: 01020000 tsteq r2, r0 + 2e0c: 000a0500 andeq r0, sl, r0, lsl #10 + 2e10: 01010101 tsteq r1, r1, lsl #2 + 2e14: 00000000 andeq r0, r0, r0 + 2e18: 445c3a43 ldrbmi r3, [ip], #-2627 + 2e1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2e20: 73746e65 cmnvc r4, #1616 ; 0x650 + 2e24: 646e6120 strbtvs r6, [lr], #-288 + 2e28: 74655320 strbtvc r5, [r5], #-800 + 2e2c: 676e6974 undefined + 2e30: 616d5c73 smcvs 54723 + 2e34: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2e38: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2e3c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2e40: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2e44: 775c7374 undefined + 2e48: 6f632d73 svcvs 0x00632d73 + 2e4c: 6f72746e svcvs 0x0072746e + 2e50: 65575c6c ldrbvs r5, [r7, #-3180] + 2e54: 65687461 strbvs r7, [r8, #-1121]! + 2e58: 74532072 ldrbvc r2, [r3], #-114 + 2e5c: 6f697461 svcvs 0x00697461 + 2e60: 6f43206e svcvs 0x0043206e + 2e64: 6f72746e svcvs 0x0072746e + 2e68: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2e6c: 414d535c cmpmi sp, ip, asr r3 + 2e70: 6f535c43 svcvs 0x00535c43 + 2e74: 65637275 strbvs r7, [r3, #-629]! + 2e78: 5200005c andpl r0, r0, #92 ; 0x5c + 2e7c: 6f696461 svcvs 0x00696461 + 2e80: 616e614d cmnvs lr, sp, asr #2 + 2e84: 656d6567 strbvs r6, [sp, #-1383]! + 2e88: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 2e8c: d8a60100 stmiale r6!, {r8} + 2e90: 9404cbe6 strls ip, [r4], #-3046 + 2e94: 05000006 streq r0, [r0, #-6] + 2e98: 40239a02 eormi r9, r3, r2, lsl #20 + 2e9c: 03440500 movteq r0, #17664 ; 0x4500 + 2ea0: 050e01d9 streq r0, [lr, #-473] + 2ea4: 05051003 streq r1, [r5, #-3] + 2ea8: 101f1c2e andsne r1, pc, lr, lsr #24 + 2eac: 2a030510 bcs c42f4 + 2eb0: 01000302 tsteq r0, r2, lsl #6 + 2eb4: 00000001 andeq r0, r0, r1 + 2eb8: 000000b1 strheq r0, [r0], -r1 + 2ebc: 008c0002 addeq r0, ip, r2 + 2ec0: 01020000 tsteq r2, r0 + 2ec4: 000a0500 andeq r0, sl, r0, lsl #10 + 2ec8: 01010101 tsteq r1, r1, lsl #2 + 2ecc: 00000000 andeq r0, r0, r0 + 2ed0: 445c3a43 ldrbmi r3, [ip], #-2627 + 2ed4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2ed8: 73746e65 cmnvc r4, #1616 ; 0x650 + 2edc: 646e6120 strbtvs r6, [lr], #-288 + 2ee0: 74655320 strbtvc r5, [r5], #-800 + 2ee4: 676e6974 undefined + 2ee8: 616d5c73 smcvs 54723 + 2eec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2ef0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2ef4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2ef8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2efc: 775c7374 undefined + 2f00: 6f632d73 svcvs 0x00632d73 + 2f04: 6f72746e svcvs 0x0072746e + 2f08: 65575c6c ldrbvs r5, [r7, #-3180] + 2f0c: 65687461 strbvs r7, [r8, #-1121]! + 2f10: 74532072 ldrbvc r2, [r3], #-114 + 2f14: 6f697461 svcvs 0x00697461 + 2f18: 6f43206e svcvs 0x0043206e + 2f1c: 6f72746e svcvs 0x0072746e + 2f20: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2f24: 414d535c cmpmi sp, ip, asr r3 + 2f28: 6f535c43 svcvs 0x00535c43 + 2f2c: 65637275 strbvs r7, [r3, #-629]! + 2f30: 5200005c andpl r0, r0, #92 ; 0x5c + 2f34: 6f696461 svcvs 0x00696461 + 2f38: 616e614d cmnvs lr, sp, asr #2 + 2f3c: 656d6567 strbvs r6, [sp, #-1383]! + 2f40: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 2f44: d8a60100 stmiale r6!, {r8} + 2f48: 9404cbe6 strls ip, [r4], #-3046 + 2f4c: 05000006 streq r0, [r0, #-6] + 2f50: 4023ce02 eormi ip, r3, r2, lsl #28 + 2f54: 032c0500 teqeq ip, #0 ; 0x0 + 2f58: 050e01ed streq r0, [lr, #-493] + 2f5c: 05050b03 streq r0, [r5, #-2819] + 2f60: 0510152e ldreq r1, [r0, #-1326] + 2f64: 2c010303 stccs 3, cr0, [r1], {3} + 2f68: 01000202 tsteq r0, r2, lsl #4 + 2f6c: 00000001 andeq r0, r0, r1 + 2f70: 000000dc ldrdeq r0, [r0], -ip + 2f74: 008c0002 addeq r0, ip, r2 + 2f78: 01020000 tsteq r2, r0 + 2f7c: 000a0500 andeq r0, sl, r0, lsl #10 + 2f80: 01010101 tsteq r1, r1, lsl #2 + 2f84: 00000000 andeq r0, r0, r0 + 2f88: 445c3a43 ldrbmi r3, [ip], #-2627 + 2f8c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2f90: 73746e65 cmnvc r4, #1616 ; 0x650 + 2f94: 646e6120 strbtvs r6, [lr], #-288 + 2f98: 74655320 strbtvc r5, [r5], #-800 + 2f9c: 676e6974 undefined + 2fa0: 616d5c73 smcvs 54723 + 2fa4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2fa8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2fac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2fb0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2fb4: 775c7374 undefined + 2fb8: 6f632d73 svcvs 0x00632d73 + 2fbc: 6f72746e svcvs 0x0072746e + 2fc0: 65575c6c ldrbvs r5, [r7, #-3180] + 2fc4: 65687461 strbvs r7, [r8, #-1121]! + 2fc8: 74532072 ldrbvc r2, [r3], #-114 + 2fcc: 6f697461 svcvs 0x00697461 + 2fd0: 6f43206e svcvs 0x0043206e + 2fd4: 6f72746e svcvs 0x0072746e + 2fd8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2fdc: 414d535c cmpmi sp, ip, asr r3 + 2fe0: 6f535c43 svcvs 0x00535c43 + 2fe4: 65637275 strbvs r7, [r3, #-629]! + 2fe8: 5200005c andpl r0, r0, #92 ; 0x5c + 2fec: 6f696461 svcvs 0x00696461 + 2ff0: 616e614d cmnvs lr, sp, asr #2 + 2ff4: 656d6567 strbvs r6, [sp, #-1383]! + 2ff8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 2ffc: d8a60100 stmiale r6!, {r8} + 3000: 9404cbe6 strls ip, [r4], #-3046 + 3004: 05000006 streq r0, [r0, #-6] + 3008: 4023f402 eormi pc, r3, r2, lsl #8 + 300c: 03270500 teqeq r7, #0 ; 0x0 + 3010: 050e0280 streq r0, [lr, #-640] + 3014: 15050c03 strne r0, [r5, #-3075] + 3018: 0b05050a bleq 144448 + 301c: 032d051a teqeq sp, #109051904 ; 0x6800000 + 3020: 05050f7e streq r0, [r5, #-3966] + 3024: 2d05100b stccs 0, cr1, [r5, #-44] + 3028: 050f7e03 streq r7, [pc, #-3587] ; 222d <__USR_stack_size+0x1a2d> + 302c: 05100b05 ldreq r0, [r0, #-2821] + 3030: 0f7e032d svceq 0x007e032d + 3034: 100b0505 andne r0, fp, r5, lsl #10 + 3038: 7e032d05 cdpvc 13, 0, cr2, cr3, cr5, {0} + 303c: 0e03050f cfsh32eq mvfx0, mvfx3, #15 + 3040: 0b0f1010 bleq 3c7088 + 3044: 0b0f1910 bleq 3c948c + 3048: 0215150b andseq r1, r5, #46137344 ; 0x2c00000 + 304c: 01010004 tsteq r1, r4 + 3050: 000000b8 strheq r0, [r0], -r8 + 3054: 008c0002 addeq r0, ip, r2 + 3058: 01020000 tsteq r2, r0 + 305c: 000a0500 andeq r0, sl, r0, lsl #10 + 3060: 01010101 tsteq r1, r1, lsl #2 + 3064: 00000000 andeq r0, r0, r0 + 3068: 445c3a43 ldrbmi r3, [ip], #-2627 + 306c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3070: 73746e65 cmnvc r4, #1616 ; 0x650 + 3074: 646e6120 strbtvs r6, [lr], #-288 + 3078: 74655320 strbtvc r5, [r5], #-800 + 307c: 676e6974 undefined + 3080: 616d5c73 smcvs 54723 + 3084: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3088: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 308c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3090: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3094: 775c7374 undefined + 3098: 6f632d73 svcvs 0x00632d73 + 309c: 6f72746e svcvs 0x0072746e + 30a0: 65575c6c ldrbvs r5, [r7, #-3180] + 30a4: 65687461 strbvs r7, [r8, #-1121]! + 30a8: 74532072 ldrbvc r2, [r3], #-114 + 30ac: 6f697461 svcvs 0x00697461 + 30b0: 6f43206e svcvs 0x0043206e + 30b4: 6f72746e svcvs 0x0072746e + 30b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 30bc: 414d535c cmpmi sp, ip, asr r3 + 30c0: 6f535c43 svcvs 0x00535c43 + 30c4: 65637275 strbvs r7, [r3, #-629]! + 30c8: 5200005c andpl r0, r0, #92 ; 0x5c + 30cc: 6f696461 svcvs 0x00696461 + 30d0: 616e614d cmnvs lr, sp, asr #2 + 30d4: 656d6567 strbvs r6, [sp, #-1383]! + 30d8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 30dc: d8a60100 stmiale r6!, {r8} + 30e0: 9404cbe6 strls ip, [r4], #-3046 + 30e4: 05000006 streq r0, [r0, #-6] + 30e8: 40242802 eormi r2, r4, r2, lsl #16 + 30ec: 03260500 teqeq r6, #0 ; 0x0 + 30f0: 050e0297 streq r0, [lr, #-663] + 30f4: 05051103 streq r1, [r5, #-259] + 30f8: 2407052e strcs r0, [r7], #-1326 + 30fc: 06030305 streq r0, [r3], -r5, lsl #6 + 3100: 1b050531 blne 1445cc + 3104: 02170305 andseq r0, r7, #335544320 ; 0x14000000 + 3108: 01010003 tsteq r1, r3 + 310c: 000000f1 strdeq r0, [r0], -r1 + 3110: 008c0002 addeq r0, ip, r2 + 3114: 01020000 tsteq r2, r0 + 3118: 000a0500 andeq r0, sl, r0, lsl #10 + 311c: 01010101 tsteq r1, r1, lsl #2 + 3120: 00000000 andeq r0, r0, r0 + 3124: 445c3a43 ldrbmi r3, [ip], #-2627 + 3128: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 312c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3130: 646e6120 strbtvs r6, [lr], #-288 + 3134: 74655320 strbtvc r5, [r5], #-800 + 3138: 676e6974 undefined + 313c: 616d5c73 smcvs 54723 + 3140: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3144: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3148: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 314c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3150: 775c7374 undefined + 3154: 6f632d73 svcvs 0x00632d73 + 3158: 6f72746e svcvs 0x0072746e + 315c: 65575c6c ldrbvs r5, [r7, #-3180] + 3160: 65687461 strbvs r7, [r8, #-1121]! + 3164: 74532072 ldrbvc r2, [r3], #-114 + 3168: 6f697461 svcvs 0x00697461 + 316c: 6f43206e svcvs 0x0043206e + 3170: 6f72746e svcvs 0x0072746e + 3174: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3178: 414d535c cmpmi sp, ip, asr r3 + 317c: 6f535c43 svcvs 0x00535c43 + 3180: 65637275 strbvs r7, [r3, #-629]! + 3184: 5200005c andpl r0, r0, #92 ; 0x5c + 3188: 6f696461 svcvs 0x00696461 + 318c: 616e614d cmnvs lr, sp, asr #2 + 3190: 656d6567 strbvs r6, [sp, #-1383]! + 3194: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 3198: d8a60100 stmiale r6!, {r8} + 319c: 9404cbe6 strls ip, [r4], #-3046 + 31a0: 05000006 streq r0, [r0, #-6] + 31a4: 40246002 eormi r6, r4, r2 + 31a8: 032a0500 teqeq sl, #0 ; 0x0 + 31ac: 050e02ba streq r0, [lr, #-698] + 31b0: 050b1103 streq r1, [fp, #-259] + 31b4: 0b145909 bleq 5195e0 + 31b8: 19191e11 ldmdbne r9, {r0, r4, r9, sl, fp, ip} + 31bc: 01030b14 tsteq r3, r4, lsl fp + 31c0: 330b0531 movwcc r0, #46385 ; 0xb531 + 31c4: 09050b1e stmdbeq r5, {r1, r2, r3, r4, r8, r9, fp} + 31c8: 05270503 streq r0, [r7, #-1283]! + 31cc: 0b19290b bleq 64d600 + 31d0: 1e2e0d05 cdpne 13, 2, cr0, cr14, cr5, {0} + 31d4: 0512200b ldreq r2, [r2, #-11] + 31d8: 14151a0f ldrne r1, [r5], #-2575 + 31dc: 19191e0b ldmdbne r9, {r0, r1, r3, r9, sl, fp, ip} + 31e0: 252c0b14 strcs r0, [ip, #-2836]! + 31e4: 06030905 streq r0, [r3], -r5, lsl #18 + 31e8: 04032913 streq r2, [r3], #-2323 + 31ec: 1803050e stmdane r3, {r1, r2, r3, r8, sl} + 31f0: 0a840505 beq fe10460c + 31f4: 0b500a0a bleq 1405a24 + 31f8: 1603050b strne r0, [r3], -fp, lsl #10 + 31fc: 01001102 tsteq r0, r2, lsl #2 + 3200: 00000001 andeq r0, r0, r1 + 3204: 00000114 andeq r0, r0, r4, lsl r1 + 3208: 008c0002 addeq r0, ip, r2 + 320c: 01020000 tsteq r2, r0 + 3210: 000a0500 andeq r0, sl, r0, lsl #10 + 3214: 01010101 tsteq r1, r1, lsl #2 + 3218: 00000000 andeq r0, r0, r0 + 321c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3220: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3224: 73746e65 cmnvc r4, #1616 ; 0x650 + 3228: 646e6120 strbtvs r6, [lr], #-288 + 322c: 74655320 strbtvc r5, [r5], #-800 + 3230: 676e6974 undefined + 3234: 616d5c73 smcvs 54723 + 3238: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 323c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3240: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3244: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3248: 775c7374 undefined + 324c: 6f632d73 svcvs 0x00632d73 + 3250: 6f72746e svcvs 0x0072746e + 3254: 65575c6c ldrbvs r5, [r7, #-3180] + 3258: 65687461 strbvs r7, [r8, #-1121]! + 325c: 74532072 ldrbvc r2, [r3], #-114 + 3260: 6f697461 svcvs 0x00697461 + 3264: 6f43206e svcvs 0x0043206e + 3268: 6f72746e svcvs 0x0072746e + 326c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3270: 414d535c cmpmi sp, ip, asr r3 + 3274: 6f535c43 svcvs 0x00535c43 + 3278: 65637275 strbvs r7, [r3, #-629]! + 327c: 5200005c andpl r0, r0, #92 ; 0x5c + 3280: 6f696461 svcvs 0x00696461 + 3284: 616e614d cmnvs lr, sp, asr #2 + 3288: 656d6567 strbvs r6, [sp, #-1383]! + 328c: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 3290: d8a60100 stmiale r6!, {r8} + 3294: 9404cbe6 strls ip, [r4], #-3046 + 3298: 05000006 streq r0, [r0, #-6] + 329c: 4025c002 eormi ip, r5, r2 + 32a0: 032a0500 teqeq sl, #0 ; 0x0 + 32a4: 050e038e streq r0, [lr, #-910] + 32a8: 050b1103 streq r1, [fp, #-259] + 32ac: 0b146d09 bleq 51e6d8 + 32b0: 1e1e1511 mrcne 5, 0, r1, cr14, cr1, {0} + 32b4: 23191414 tstcs r9, #335544320 ; 0x14000000 + 32b8: 0b141419 bleq 508324 + 32bc: 05310103 ldreq r0, [r1, #-259]! + 32c0: 0b1e380b bleq 7912f4 + 32c4: 05030905 streq r0, [r3, #-2309] + 32c8: 290b0527 stmdbcs fp, {r0, r1, r2, r5, r8, sl} + 32cc: 0d050b19 vstreq d0, [r5, #-100] + 32d0: 1f0b1e24 svcne 0x000b1e24 + 32d4: 0f05132f svceq 0x0005132f + 32d8: 05590203 ldrbeq r0, [r9, #-515] + 32dc: 14151a11 ldrne r1, [r5], #-2577 + 32e0: 1e23100b cdpne 0, 2, cr1, cr3, cr11, {0} + 32e4: 28231914 stmdacs r3!, {r2, r4, r8, fp, ip} + 32e8: 0a1e7703 beq 7a0efc + 32ec: 240b1e0a strcs r1, [fp], #-3594 + 32f0: 14130303 ldrne r0, [r3], #-771 + 32f4: 0f050b19 svceq 0x00050b19 + 32f8: 1611052c ldrne r0, [r1], -ip, lsr #10 + 32fc: 03090530 movweq r0, #38192 ; 0x9530 + 3300: 0329130f teqeq r9, #1006632960 ; 0x3c000000 + 3304: 03050e05 movweq r0, #24069 ; 0x5e05 + 3308: 05180103 ldreq r0, [r8, #-259] + 330c: 0a0a8405 beq 2a4328 + 3310: 0b0b500a bleq 2d7340 + 3314: 02170305 andseq r0, r7, #335544320 ; 0x14000000 + 3318: 01010012 tsteq r1, r2, lsl r0 + 331c: 0000014f andeq r0, r0, pc, asr #2 + 3320: 00a90002 adceq r0, r9, r2 + 3324: 01020000 tsteq r2, r0 + 3328: 000a0500 andeq r0, sl, r0, lsl #10 + 332c: 01010101 tsteq r1, r1, lsl #2 + 3330: 00000000 andeq r0, r0, r0 + 3334: 445c3a43 ldrbmi r3, [ip], #-2627 + 3338: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 333c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3340: 646e6120 strbtvs r6, [lr], #-288 + 3344: 74655320 strbtvc r5, [r5], #-800 + 3348: 676e6974 undefined + 334c: 616d5c73 smcvs 54723 + 3350: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3354: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3358: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 335c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3360: 775c7374 undefined + 3364: 6f632d73 svcvs 0x00632d73 + 3368: 6f72746e svcvs 0x0072746e + 336c: 65575c6c ldrbvs r5, [r7, #-3180] + 3370: 65687461 strbvs r7, [r8, #-1121]! + 3374: 74532072 ldrbvc r2, [r3], #-114 + 3378: 6f697461 svcvs 0x00697461 + 337c: 6f43206e svcvs 0x0043206e + 3380: 6f72746e svcvs 0x0072746e + 3384: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3388: 414d535c cmpmi sp, ip, asr r3 + 338c: 6f535c43 svcvs 0x00535c43 + 3390: 65637275 strbvs r7, [r3, #-629]! + 3394: 5200005c andpl r0, r0, #92 ; 0x5c + 3398: 6f696461 svcvs 0x00696461 + 339c: 616e614d cmnvs lr, sp, asr #2 + 33a0: 656d6567 strbvs r6, [sp, #-1383]! + 33a4: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 33a8: d8a60100 stmiale r6!, {r8} + 33ac: 9404cbe6 strls ip, [r4], #-3046 + 33b0: 64615206 strbtvs r5, [r1], #-518 + 33b4: 6e4d6f69 cdpvs 15, 4, cr6, cr13, cr9, {3} + 33b8: 746e6d67 strbtvc r6, [lr], #-3431 + 33bc: 70617257 rsbvc r7, r1, r7, asr r2 + 33c0: 2e726570 mrccs 5, 3, r6, cr2, cr0, {3} + 33c4: a6010068 strge r0, [r1], -r8, rrx + 33c8: 04cbe6d8 strbeq lr, [fp], #1752 + 33cc: 000001e6 andeq r0, r0, r6, ror #3 + 33d0: 27c00205 strbcs r0, [r0, r5, lsl #4] + 33d4: 2a050040 bcs 1434dc + 33d8: 0e03fb03 fmacdeq d15, d3, d3 + 33dc: 0b120305 bleq 483ff8 + 33e0: 14540905 ldrbne r0, [r4], #-2309 + 33e4: 0b05120b bleq 147c18 + 33e8: 0502041f streq r0, [r2, #-1055] + 33ec: 7cb20303 ldcvc 3, cr0, [r2], #12 + 33f0: 0c0b0519 cfstr32eq mvfx0, [fp], {25} + 33f4: 1a0b3c2e bne 2d24b4 + 33f8: c6030104 strgt r0, [r3], -r4, lsl #2 + 33fc: 250d4503 strcs r4, [sp, #-1283] + 3400: 02030905 andeq r0, r3, #81920 ; 0x14000 + 3404: 290b0513 stmdbcs fp, {r0, r1, r4, r8, sl} + 3408: 0d050b1e vstreq d0, [r5, #-120] + 340c: 2a0b1e24 bcs 2caca4 + 3410: 83030105 movwhi r0, #12549 ; 0x3105 + 3414: 03051801 movweq r1, #22529 ; 0x5801 + 3418: 0505160d streq r1, [r5, #-1549] + 341c: 16080516 undefined + 3420: 0e160505 cfmul32eq mvfx0, mvfx6, mvfx5 + 3424: 051c0305 ldreq r0, [ip, #-773] + 3428: 7ee8030d cdpvc 3, 14, cr0, cr8, cr13, {0} + 342c: 120b3c19 andne r3, fp, #6400 ; 0x1900 + 3430: 151f0f05 ldrne r0, [pc, #-3845] ; 2533 <__USR_stack_size+0x1d33> + 3434: 02040b14 andeq r0, r4, #20480 ; 0x5000 + 3438: 98030305 stmdals r3, {r0, r2, r8, r9} + 343c: 0b050f7c bleq 147234 + 3440: 0b2d240c bleq b4c478 + 3444: 0501041a streq r0, [r1, #-1050] + 3448: 03e2030f mvneq r0, #1006632960 ; 0x3c000000 + 344c: 0b372a13 bleq dcdca0 + 3450: 07030905 streq r0, [r3, -r5, lsl #18] + 3454: 04032913 streq r2, [r3], #-2323 + 3458: 0303050e movweq r0, #13582 ; 0x350e + 345c: 05051801 streq r1, [r5, #-2049] + 3460: 0a0a0a84 beq 285e78 + 3464: 050b0b50 streq r0, [fp, #-2896] + 3468: 13021703 movwne r1, #9987 ; 0x2703 + 346c: 00010100 andeq r0, r1, r0, lsl #2 + 3470: 000000f6 strdeq r0, [r0], -r6 + 3474: 008c0002 addeq r0, ip, r2 + 3478: 01020000 tsteq r2, r0 + 347c: 000a0500 andeq r0, sl, r0, lsl #10 + 3480: 01010101 tsteq r1, r1, lsl #2 + 3484: 00000000 andeq r0, r0, r0 + 3488: 445c3a43 ldrbmi r3, [ip], #-2627 + 348c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3490: 73746e65 cmnvc r4, #1616 ; 0x650 + 3494: 646e6120 strbtvs r6, [lr], #-288 + 3498: 74655320 strbtvc r5, [r5], #-800 + 349c: 676e6974 undefined + 34a0: 616d5c73 smcvs 54723 + 34a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 34a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 34ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 34b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 34b4: 775c7374 undefined + 34b8: 6f632d73 svcvs 0x00632d73 + 34bc: 6f72746e svcvs 0x0072746e + 34c0: 65575c6c ldrbvs r5, [r7, #-3180] + 34c4: 65687461 strbvs r7, [r8, #-1121]! + 34c8: 74532072 ldrbvc r2, [r3], #-114 + 34cc: 6f697461 svcvs 0x00697461 + 34d0: 6f43206e svcvs 0x0043206e + 34d4: 6f72746e svcvs 0x0072746e + 34d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 34dc: 414d535c cmpmi sp, ip, asr r3 + 34e0: 6f535c43 svcvs 0x00535c43 + 34e4: 65637275 strbvs r7, [r3, #-629]! + 34e8: 5200005c andpl r0, r0, #92 ; 0x5c + 34ec: 6f696461 svcvs 0x00696461 + 34f0: 616e614d cmnvs lr, sp, asr #2 + 34f4: 656d6567 strbvs r6, [sp, #-1383]! + 34f8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 34fc: d8a60100 stmiale r6!, {r8} + 3500: 9404cbe6 strls ip, [r4], #-3046 + 3504: 05000006 streq r0, [r0, #-6] + 3508: 40297c02 eormi r7, r9, r2, lsl #24 + 350c: 032a0500 teqeq sl, #0 ; 0x0 + 3510: 050e04d1 streq r0, [lr, #-1233] + 3514: 050b1103 streq r1, [fp, #-259] + 3518: 0b144f09 bleq 517144 + 351c: 19282d11 stmdbne r8!, {r0, r4, r8, sl, fp, sp} + 3520: 3101030b tstcc r1, fp, lsl #6 + 3524: 1e290b05 fmuldne d0, d9, d5 + 3528: 030d050b movweq r0, #54539 ; 0xd50b + 352c: 0f059507 svceq 0x00059507 + 3530: 2a1d0203 bcs 743d44 + 3534: 70030d05 andvc r0, r3, r5, lsl #26 + 3538: 0a0b0a0f beq 2c5d7c + 353c: 1e0a0a0b fmacsne s0, s20, s22 + 3540: 0f052a0b svceq 0x00052a0b + 3544: 0b141513 bleq 508998 + 3548: 0514232d ldreq r2, [r4, #-813] + 354c: 130c0309 movwne r0, #49929 ; 0xc309 + 3550: 0e040329 cdpeq 3, 0, cr0, cr4, cr9, {1} + 3554: 01030305 tsteq r3, r5, lsl #6 + 3558: 84050518 strhi r0, [r5], #-1304 + 355c: 500a0a0a andpl r0, sl, sl, lsl #20 + 3560: 03050b0b movweq r0, #23307 ; 0x5b0b + 3564: 0012021d andseq r0, r2, sp, lsl r2 + 3568: 00000101 andeq r0, r0, r1, lsl #2 + 356c: 000000d4 ldrdeq r0, [r0], -r4 + 3570: 008c0002 addeq r0, ip, r2 + 3574: 01020000 tsteq r2, r0 + 3578: 000a0500 andeq r0, sl, r0, lsl #10 + 357c: 01010101 tsteq r1, r1, lsl #2 + 3580: 00000000 andeq r0, r0, r0 + 3584: 445c3a43 ldrbmi r3, [ip], #-2627 + 3588: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 358c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3590: 646e6120 strbtvs r6, [lr], #-288 + 3594: 74655320 strbtvc r5, [r5], #-800 + 3598: 676e6974 undefined + 359c: 616d5c73 smcvs 54723 + 35a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 35a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 35a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 35ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 35b0: 775c7374 undefined + 35b4: 6f632d73 svcvs 0x00632d73 + 35b8: 6f72746e svcvs 0x0072746e + 35bc: 65575c6c ldrbvs r5, [r7, #-3180] + 35c0: 65687461 strbvs r7, [r8, #-1121]! + 35c4: 74532072 ldrbvc r2, [r3], #-114 + 35c8: 6f697461 svcvs 0x00697461 + 35cc: 6f43206e svcvs 0x0043206e + 35d0: 6f72746e svcvs 0x0072746e + 35d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 35d8: 414d535c cmpmi sp, ip, asr r3 + 35dc: 6f535c43 svcvs 0x00535c43 + 35e0: 65637275 strbvs r7, [r3, #-629]! + 35e4: 5200005c andpl r0, r0, #92 ; 0x5c + 35e8: 6f696461 svcvs 0x00696461 + 35ec: 616e614d cmnvs lr, sp, asr #2 + 35f0: 656d6567 strbvs r6, [sp, #-1383]! + 35f4: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 35f8: d8a60100 stmiale r6!, {r8} + 35fc: 9404cbe6 strls ip, [r4], #-3046 + 3600: 05000006 streq r0, [r0, #-6] + 3604: 402aec02 eormi lr, sl, r2, lsl #24 + 3608: 03010500 movweq r0, #5376 ; 0x1500 + 360c: 050e05bd streq r0, [lr, #-1469] + 3610: 13030303 movwne r0, #13059 ; 0x3303 + 3614: 24250505 strtcs r0, [r5], #-1285 + 3618: 101b0705 andsne r0, fp, r5, lsl #14 + 361c: 05110505 ldreq r0, [r1, #-1285] + 3620: 1f0b2607 svcne 0x000b2607 + 3624: 16090515 undefined + 3628: 05101f10 ldreq r1, [r0, #-3856] + 362c: 1d010307 stcne 3, cr0, [r1, #-28] + 3630: 05160505 ldreq r0, [r6, #-1285] + 3634: 08055207 stmdaeq r5, {r0, r1, r2, r9, ip, lr} + 3638: 2105052b tstcs r5, fp, lsr #10 + 363c: 02250105 eoreq r0, r5, #1073741825 ; 0x40000001 + 3640: 01010007 tsteq r1, r7 + 3644: 000000bb strheq r0, [r0], -fp + 3648: 008c0002 addeq r0, ip, r2 + 364c: 01020000 tsteq r2, r0 + 3650: 000a0500 andeq r0, sl, r0, lsl #10 + 3654: 01010101 tsteq r1, r1, lsl #2 + 3658: 00000000 andeq r0, r0, r0 + 365c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3660: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3664: 73746e65 cmnvc r4, #1616 ; 0x650 + 3668: 646e6120 strbtvs r6, [lr], #-288 + 366c: 74655320 strbtvc r5, [r5], #-800 + 3670: 676e6974 undefined + 3674: 616d5c73 smcvs 54723 + 3678: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 367c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3680: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3684: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3688: 775c7374 undefined + 368c: 6f632d73 svcvs 0x00632d73 + 3690: 6f72746e svcvs 0x0072746e + 3694: 65575c6c ldrbvs r5, [r7, #-3180] + 3698: 65687461 strbvs r7, [r8, #-1121]! + 369c: 74532072 ldrbvc r2, [r3], #-114 + 36a0: 6f697461 svcvs 0x00697461 + 36a4: 6f43206e svcvs 0x0043206e + 36a8: 6f72746e svcvs 0x0072746e + 36ac: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 36b0: 414d535c cmpmi sp, ip, asr r3 + 36b4: 6f535c43 svcvs 0x00535c43 + 36b8: 65637275 strbvs r7, [r3, #-629]! + 36bc: 5200005c andpl r0, r0, #92 ; 0x5c + 36c0: 6f696461 svcvs 0x00696461 + 36c4: 616e614d cmnvs lr, sp, asr #2 + 36c8: 656d6567 strbvs r6, [sp, #-1383]! + 36cc: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 36d0: d8a60100 stmiale r6!, {r8} + 36d4: 9404cbe6 strls ip, [r4], #-3046 + 36d8: 05000006 streq r0, [r0, #-6] + 36dc: 402b8402 eormi r8, fp, r2, lsl #8 + 36e0: 03010500 movweq r0, #5376 ; 0x1500 + 36e4: 050e05f2 streq r0, [lr, #-1522] + 36e8: 050c1203 streq r1, [ip, #-515] + 36ec: 07051c05 streq r1, [r5, -r5, lsl #24] + 36f0: 05052216 streq r2, [r5, #-534] + 36f4: 03052011 movweq r2, #20497 ; 0x5011 + 36f8: 030f7403 movweq r7, #62467 ; 0xf403 + 36fc: 0402220a streq r2, [r2], #-522 + 3700: 00010100 andeq r0, r1, r0, lsl #2 + 3704: 0000051d andeq r0, r0, sp, lsl r5 + 3708: 05170002 ldreq r0, [r7, #-2] + 370c: 01010000 tsteq r1, r0 + 3710: 000a0500 andeq r0, sl, r0, lsl #10 + 3714: 01010101 tsteq r1, r1, lsl #2 + 3718: 00000000 andeq r0, r0, r0 + 371c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3720: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3724: 73746e65 cmnvc r4, #1616 ; 0x650 + 3728: 646e6120 strbtvs r6, [lr], #-288 + 372c: 74655320 strbtvc r5, [r5], #-800 + 3730: 676e6974 undefined + 3734: 616d5c73 smcvs 54723 + 3738: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 373c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3740: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3744: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3748: 775c7374 undefined + 374c: 6f632d73 svcvs 0x00632d73 + 3750: 6f72746e svcvs 0x0072746e + 3754: 65575c6c ldrbvs r5, [r7, #-3180] + 3758: 65687461 strbvs r7, [r8, #-1121]! + 375c: 74532072 ldrbvc r2, [r3], #-114 + 3760: 6f697461 svcvs 0x00697461 + 3764: 6f43206e svcvs 0x0043206e + 3768: 6f72746e svcvs 0x0072746e + 376c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3770: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3774: 746e495c strbtvc r4, [lr], #-2396 + 3778: 61667265 cmnvs r6, r5, ror #4 + 377c: 005c6563 subseq r6, ip, r3, ror #10 + 3780: 445c3a43 ldrbmi r3, [ip], #-2627 + 3784: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3788: 73746e65 cmnvc r4, #1616 ; 0x650 + 378c: 646e6120 strbtvs r6, [lr], #-288 + 3790: 74655320 strbtvc r5, [r5], #-800 + 3794: 676e6974 undefined + 3798: 616d5c73 smcvs 54723 + 379c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 37a0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 37a4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 37a8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 37ac: 775c7374 undefined + 37b0: 6f632d73 svcvs 0x00632d73 + 37b4: 6f72746e svcvs 0x0072746e + 37b8: 65575c6c ldrbvs r5, [r7, #-3180] + 37bc: 65687461 strbvs r7, [r8, #-1121]! + 37c0: 74532072 ldrbvc r2, [r3], #-114 + 37c4: 6f697461 svcvs 0x00697461 + 37c8: 6f43206e svcvs 0x0043206e + 37cc: 6f72746e svcvs 0x0072746e + 37d0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 37d4: 4d4c505c stclmi 0, cr5, [ip, #-368] + 37d8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 37dc: 65746e49 ldrbvs r6, [r4, #-3657]! + 37e0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 37e4: 43005c65 movwmi r5, #3173 ; 0xc65 + 37e8: 6f445c3a svcvs 0x00445c3a + 37ec: 656d7563 strbvs r7, [sp, #-1379]! + 37f0: 2073746e rsbscs r7, r3, lr, ror #8 + 37f4: 20646e61 rsbcs r6, r4, r1, ror #28 + 37f8: 74746553 ldrbtvc r6, [r4], #-1363 + 37fc: 73676e69 cmnvc r7, #1680 ; 0x690 + 3800: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3804: 61726976 cmnvs r2, r6, ror r9 + 3808: 20794d5c rsbscs r4, r9, ip, asr sp + 380c: 75636f44 strbvc r6, [r3, #-3908]! + 3810: 746e656d strbtvc r6, [lr], #-1389 + 3814: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3818: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 381c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3820: 6165575c cmnvs r5, ip, asr r7 + 3824: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3828: 61745320 cmnvs r4, r0, lsr #6 + 382c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3830: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 3834: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3838: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 383c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 3840: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} + 3844: 75676966 strbvc r6, [r7, #-2406]! + 3848: 005c6572 subseq r6, ip, r2, ror r5 + 384c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3850: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3854: 73746e65 cmnvc r4, #1616 ; 0x650 + 3858: 646e6120 strbtvs r6, [lr], #-288 + 385c: 74655320 strbtvc r5, [r5], #-800 + 3860: 676e6974 undefined + 3864: 616d5c73 smcvs 54723 + 3868: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 386c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3870: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3874: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3878: 775c7374 undefined + 387c: 6f632d73 svcvs 0x00632d73 + 3880: 6f72746e svcvs 0x0072746e + 3884: 65575c6c ldrbvs r5, [r7, #-3180] + 3888: 65687461 strbvs r7, [r8, #-1121]! + 388c: 74532072 ldrbvc r2, [r3], #-114 + 3890: 6f697461 svcvs 0x00697461 + 3894: 6f43206e svcvs 0x0043206e + 3898: 6f72746e svcvs 0x0072746e + 389c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 38a0: 414d535c cmpmi sp, ip, asr r3 + 38a4: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 38a8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 38ac: 6f435c73 svcvs 0x00435c73 + 38b0: 6769666e strbvs r6, [r9, -lr, ror #12]! + 38b4: 5c657275 sfmpl f7, 2, [r5], #-468 + 38b8: 5c3a4300 ldcpl 3, cr4, [sl] + 38bc: 75636f44 strbvc r6, [r3, #-3908]! + 38c0: 746e656d strbtvc r6, [lr], #-1389 + 38c4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 38c8: 65532064 ldrbvs r2, [r3, #-100] + 38cc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 38d0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 38d4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 38d8: 4d5c6172 ldfmie f6, [ip, #-456] + 38dc: 6f442079 svcvs 0x00442079 + 38e0: 656d7563 strbvs r7, [sp, #-1379]! + 38e4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 38e8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 38ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 38f0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 38f4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 38f8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 38fc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3900: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3904: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3908: 656c6c6f strbvs r6, [ip, #-3183]! + 390c: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 3910: 445c4341 ldrbmi r4, [ip], #-833 + 3914: 65766972 ldrbvs r6, [r6, #-2418]! + 3918: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 391c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 3920: 65636166 strbvs r6, [r3, #-358]! + 3924: 3a43005c bcc 10c3a9c + 3928: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 392c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3930: 61207374 teqvs r0, r4, ror r3 + 3934: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3938: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 393c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3940: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3944: 5c617269 sfmpl f7, 2, [r1], #-420 + 3948: 4420794d strtmi r7, [r0], #-2381 + 394c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3950: 73746e65 cmnvc r4, #1616 ; 0x650 + 3954: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3958: 746e6f63 strbtvc r6, [lr], #-3939 + 395c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3960: 74616557 strbtvc r6, [r1], #-1367 + 3964: 20726568 rsbscs r6, r2, r8, ror #10 + 3968: 74617453 strbtvc r7, [r1], #-1107 + 396c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3970: 746e6f43 strbtvc r6, [lr], #-3907 + 3974: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3978: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 397c: 5c43414d stfple f4, [r3], {77} + 3980: 76697244 strbtvc r7, [r9], -r4, asr #4 + 3984: 5c737265 lfmpl f7, 2, [r3], #-404 + 3988: 65746e49 ldrbvs r6, [r4, #-3657]! + 398c: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 3990: 68675c65 stmdavs r7!, {r0, r2, r5, r6, sl, fp, ip, lr}^ + 3994: 005c7264 subseq r7, ip, r4, ror #4 + 3998: 445c3a43 ldrbmi r3, [ip], #-2627 + 399c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 39a0: 73746e65 cmnvc r4, #1616 ; 0x650 + 39a4: 646e6120 strbtvs r6, [lr], #-288 + 39a8: 74655320 strbtvc r5, [r5], #-800 + 39ac: 676e6974 undefined + 39b0: 616d5c73 smcvs 54723 + 39b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 39b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 39bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 39c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 39c4: 775c7374 undefined + 39c8: 6f632d73 svcvs 0x00632d73 + 39cc: 6f72746e svcvs 0x0072746e + 39d0: 65575c6c ldrbvs r5, [r7, #-3180] + 39d4: 65687461 strbvs r7, [r8, #-1121]! + 39d8: 74532072 ldrbvc r2, [r3], #-114 + 39dc: 6f697461 svcvs 0x00697461 + 39e0: 6f43206e svcvs 0x0043206e + 39e4: 6f72746e svcvs 0x0072746e + 39e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 39ec: 414d535c cmpmi sp, ip, asr r3 + 39f0: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 39f4: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 39f8: 694c5c73 stmdbvs ip, {r0, r1, r4, r5, r6, sl, fp, ip, lr}^ + 39fc: 746e4962 strbtvc r4, [lr], #-2402 + 3a00: 61667265 cmnvs r6, r5, ror #4 + 3a04: 005c6563 subseq r6, ip, r3, ror #10 + 3a08: 445c3a43 ldrbmi r3, [ip], #-2627 + 3a0c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3a10: 73746e65 cmnvc r4, #1616 ; 0x650 + 3a14: 646e6120 strbtvs r6, [lr], #-288 + 3a18: 74655320 strbtvc r5, [r5], #-800 + 3a1c: 676e6974 undefined + 3a20: 616d5c73 smcvs 54723 + 3a24: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3a28: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3a2c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3a30: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3a34: 775c7374 undefined + 3a38: 6f632d73 svcvs 0x00632d73 + 3a3c: 6f72746e svcvs 0x0072746e + 3a40: 65575c6c ldrbvs r5, [r7, #-3180] + 3a44: 65687461 strbvs r7, [r8, #-1121]! + 3a48: 74532072 ldrbvc r2, [r3], #-114 + 3a4c: 6f697461 svcvs 0x00697461 + 3a50: 6f43206e svcvs 0x0043206e + 3a54: 6f72746e svcvs 0x0072746e + 3a58: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3a5c: 414d535c cmpmi sp, ip, asr r3 + 3a60: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} + 3a64: 66726574 undefined + 3a68: 5c656361 stclpl 3, cr6, [r5], #-388 + 3a6c: 5c3a4300 ldcpl 3, cr4, [sl] + 3a70: 75636f44 strbvc r6, [r3, #-3908]! + 3a74: 746e656d strbtvc r6, [lr], #-1389 + 3a78: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3a7c: 65532064 ldrbvs r2, [r3, #-100] + 3a80: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3a84: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3a88: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3a8c: 4d5c6172 ldfmie f6, [ip, #-456] + 3a90: 6f442079 svcvs 0x00442079 + 3a94: 656d7563 strbvs r7, [sp, #-1379]! + 3a98: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3a9c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 3aa0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3aa4: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3aa8: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3aac: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 3ab0: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3ab4: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3ab8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3abc: 656c6c6f strbvs r6, [ip, #-3183]! + 3ac0: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 3ac4: 535c4341 cmppl ip, #67108865 ; 0x4000001 + 3ac8: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 + 3acc: 00005c65 andeq r5, r0, r5, ror #24 + 3ad0: 65626d45 strbvs r6, [r2, #-3397]! + 3ad4: 64656464 strbtvs r6, [r5], #-1124 + 3ad8: 65707954 ldrbvs r7, [r0, #-2388]! + 3adc: 00682e73 rsbeq r2, r8, r3, ror lr + 3ae0: d79d9e01 ldrle r9, [sp, r1, lsl #28] + 3ae4: 437704c0 cmnmi r7, #-1073741824 ; 0xc0000000 + 3ae8: 525f4d52 subspl r4, pc, #5248 ; 0x1480 + 3aec: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} + 3af0: f8020068 undefined instruction 0xf8020068 + 3af4: 04c0d78f strbeq sp, [r0], #1935 + 3af8: 6c500281 lfmvs f0, 2, [r0], {129} + 3afc: 6f667461 svcvs 0x00667461 + 3b00: 682e6d72 stmdavs lr!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} + 3b04: 94f20200 ldrbtls r0, [r2], #512 + 3b08: be04c0d7 mcrlt 0, 0, ip, cr4, cr7, {6} + 3b0c: 69735303 ldmdbvs r3!, {r0, r1, r8, r9, ip, lr}^ + 3b10: 6765525f undefined + 3b14: 00682e73 rsbeq r2, r8, r3, ror lr + 3b18: 9196cc02 orrsls ip, r6, r2, lsl #24 + 3b1c: 01c504ba strheq r0, [r5, #74] + 3b20: 6974706f ldmdbvs r4!, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ + 3b24: 5f736e6f svcpl 0x00736e6f + 3b28: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 3b2c: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} + 3b30: 8e8e0300 cdphi 3, 8, cr0, cr14, cr0, {0} + 3b34: 1f04c1d5 svcne 0x0004c1d5 + 3b38: 72616f62 rsbvc r6, r1, #392 ; 0x188 + 3b3c: 6f635f64 svcvs 0x00635f64 + 3b40: 6769666e strbvs r6, [r9, -lr, ror #12]! + 3b44: 0400682e streq r6, [r0], #-2094 + 3b48: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 3b4c: 65443d04 strbvs r3, [r4, #-3332] + 3b50: 2e79616c rpwcsez f6, f1, #4.0 + 3b54: a8050068 stmdage r5, {r3, r5, r6} + 3b58: 04c5d0be strbeq sp, [r5], #190 + 3b5c: 65724619 ldrbvs r4, [r2, #-1561]! + 3b60: 70654471 rsbvc r4, r5, r1, ror r4 + 3b64: 74746553 ldrbtvc r6, [r4], #-1363 + 3b68: 73676e69 cmnvc r7, #1680 ; 0x690 + 3b6c: 0500682e streq r6, [r0, #-2094] + 3b70: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 3b74: 616d3704 cmnvs sp, r4, lsl #14 + 3b78: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} + 3b7c: adc20600 stclge 6, cr0, [r2] + 3b80: 8c04c49d cfstrshi mvf12, [r4], {157} + 3b84: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} + 3b88: 73656874 cmnvc r5, #7602176 ; 0x740000 + 3b8c: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 + 3b90: 636e695f cmnvs lr, #1556480 ; 0x17c000 + 3b94: 0700682e streq r6, [r0, -lr, lsr #16] + 3b98: cc8199fa stcgt 9, cr9, [r1], {250} + 3b9c: 7201a004 andvc sl, r1, #4 ; 0x4 + 3ba0: 695f6669 ldmdbvs pc, {r0, r3, r5, r6, r9, sl, sp, lr}^ + 3ba4: 682e636e stmdavs lr!, {r1, r2, r3, r5, r6, r8, r9, sp, lr} + 3ba8: ca820700 bgt fe0857b0 + 3bac: 9204c5ff andls ip, r4, #1069547520 ; 0x3fc00000 + 3bb0: 6f6c4701 svcvs 0x006c4701 + 3bb4: 446c6162 strbtmi r6, [ip], #-354 + 3bb8: 2e736665 cdpcs 6, 7, cr6, cr3, cr5, {3} + 3bbc: ba080068 blt 203d64 + 3bc0: 04c5eea2 strbeq lr, [r5], #3746 + 3bc4: 61520191 ldrbvs r0, [r2, #-17] + 3bc8: 4d6f6964 stclmi 9, cr6, [pc, #-400]! + 3bcc: 67616e61 strbvs r6, [r1, -r1, ror #28]! + 3bd0: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} + 3bd4: 00682e74 rsbeq r2, r8, r4, ror lr + 3bd8: e6d8a608 ldrb sl, [r8], r8, lsl #12 + 3bdc: 03d104cb bicseq r0, r1, #-889192448 ; 0xcb000000 + 3be0: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} + 3be4: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ + 3be8: 43726576 cmnmi r2, #494927872 ; 0x1d800000 + 3bec: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 3bf0: 676e4d67 strbvs r4, [lr, -r7, ror #26]! + 3bf4: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 3bf8: a2080068 andge r0, r8, #104 ; 0x68 + 3bfc: 04c5eea0 strbeq lr, [r5], #3744 + 3c00: 725401e6 subsvc r0, r4, #-2147483591 ; 0x80000039 + 3c04: 63736e61 cmnvs r3, #1552 ; 0x610 + 3c08: 65766965 ldrbvs r6, [r6, #-2405]! + 3c0c: 6e6f4372 mcrvs 3, 3, r4, cr15, cr2, {3} + 3c10: 4d676966 stclmi 9, cr6, [r7, #-408]! + 3c14: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 3c18: 00632e74 rsbeq r2, r3, r4, ror lr + 3c1c: efbae409 svc 0x00bae409 + 3c20: 038804ce orreq r0, r8, #-838860800 ; 0xce000000 + 3c24: 00000000 andeq r0, r0, r0 + 3c28: 000000af andeq r0, r0, pc, lsr #1 + 3c2c: 00940002 addseq r0, r4, r2 + 3c30: 01020000 tsteq r2, r0 + 3c34: 000a0500 andeq r0, sl, r0, lsl #10 + 3c38: 01010101 tsteq r1, r1, lsl #2 + 3c3c: 00000000 andeq r0, r0, r0 + 3c40: 445c3a43 ldrbmi r3, [ip], #-2627 + 3c44: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3c48: 73746e65 cmnvc r4, #1616 ; 0x650 + 3c4c: 646e6120 strbtvs r6, [lr], #-288 + 3c50: 74655320 strbtvc r5, [r5], #-800 + 3c54: 676e6974 undefined + 3c58: 616d5c73 smcvs 54723 + 3c5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3c60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3c64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3c68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3c6c: 775c7374 undefined + 3c70: 6f632d73 svcvs 0x00632d73 + 3c74: 6f72746e svcvs 0x0072746e + 3c78: 65575c6c ldrbvs r5, [r7, #-3180] + 3c7c: 65687461 strbvs r7, [r8, #-1121]! + 3c80: 74532072 ldrbvc r2, [r3], #-114 + 3c84: 6f697461 svcvs 0x00697461 + 3c88: 6f43206e svcvs 0x0043206e + 3c8c: 6f72746e svcvs 0x0072746e + 3c90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3c94: 414d535c cmpmi sp, ip, asr r3 + 3c98: 6f535c43 svcvs 0x00535c43 + 3c9c: 65637275 strbvs r7, [r3, #-629]! + 3ca0: 5400005c strpl r0, [r0], #-92 + 3ca4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 3ca8: 76696563 strbtvc r6, [r9], -r3, ror #10 + 3cac: 6f437265 svcvs 0x00437265 + 3cb0: 6769666e strbvs r6, [r9, -lr, ror #12]! + 3cb4: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 3cb8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 3cbc: bae40100 blt ff9040c4 + 3cc0: 8804ceef stmdahi r4, {r0, r1, r2, r3, r5, r6, r7, r9, sl, fp, lr, pc} + 3cc4: 05000003 streq r0, [r0, #-3] + 3cc8: 4038c802 eorsmi ip, r8, r2, lsl #16 + 3ccc: 03010500 movweq r0, #5376 ; 0x1500 + 3cd0: 050e029b streq r0, [lr, #-667] + 3cd4: 04020b03 streq r0, [r2], #-2819 + 3cd8: 00010100 andeq r0, r1, r0, lsl #2 + 3cdc: 000000f2 strdeq r0, [r0], -r2 + 3ce0: 00940002 addseq r0, r4, r2 + 3ce4: 01020000 tsteq r2, r0 + 3ce8: 000a0500 andeq r0, sl, r0, lsl #10 + 3cec: 01010101 tsteq r1, r1, lsl #2 + 3cf0: 00000000 andeq r0, r0, r0 + 3cf4: 445c3a43 ldrbmi r3, [ip], #-2627 + 3cf8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3cfc: 73746e65 cmnvc r4, #1616 ; 0x650 + 3d00: 646e6120 strbtvs r6, [lr], #-288 + 3d04: 74655320 strbtvc r5, [r5], #-800 + 3d08: 676e6974 undefined + 3d0c: 616d5c73 smcvs 54723 + 3d10: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3d14: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3d18: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3d1c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3d20: 775c7374 undefined + 3d24: 6f632d73 svcvs 0x00632d73 + 3d28: 6f72746e svcvs 0x0072746e + 3d2c: 65575c6c ldrbvs r5, [r7, #-3180] + 3d30: 65687461 strbvs r7, [r8, #-1121]! + 3d34: 74532072 ldrbvc r2, [r3], #-114 + 3d38: 6f697461 svcvs 0x00697461 + 3d3c: 6f43206e svcvs 0x0043206e + 3d40: 6f72746e svcvs 0x0072746e + 3d44: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3d48: 414d535c cmpmi sp, ip, asr r3 + 3d4c: 6f535c43 svcvs 0x00535c43 + 3d50: 65637275 strbvs r7, [r3, #-629]! + 3d54: 5400005c strpl r0, [r0], #-92 + 3d58: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 3d5c: 76696563 strbtvc r6, [r9], -r3, ror #10 + 3d60: 6f437265 svcvs 0x00437265 + 3d64: 6769666e strbvs r6, [r9, -lr, ror #12]! + 3d68: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 3d6c: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 3d70: bae40100 blt ff904178 + 3d74: 8804ceef stmdahi r4, {r0, r1, r2, r3, r5, r6, r7, r9, sl, fp, lr, pc} + 3d78: 05000003 streq r0, [r0, #-3] + 3d7c: 4038d002 eorsmi sp, r8, r2 + 3d80: 03010500 movweq r0, #5376 ; 0x1500 + 3d84: 050e02ba streq r0, [lr, #-698] + 3d88: 050c1803 streq r1, [ip, #-2051] + 3d8c: 2c102905 ldccs 9, cr2, [r0], {5} + 3d90: 49030105 stmdbmi r3, {r0, r2, r8} + 3d94: 0b03050a bleq c51c4 + 3d98: 33030505 movwcc r0, #13573 ; 0x3505 + 3d9c: 03030513 movweq r0, #13587 ; 0x3513 + 3da0: 35030a4a strcc r0, [r3, #-2634] + 3da4: 0e010318 mcreq 3, 0, r0, cr1, cr8, {0} + 3da8: 10030105 andne r0, r3, r5, lsl #2 + 3dac: 0d03050e cfstr32eq mvfx0, [r3, #-56] + 3db0: 1e190516 mrcne 5, 0, r0, cr9, cr6, {0} + 3db4: 051e0e05 ldreq r0, [lr, #-3589] + 3db8: 10152003 andsne r2, r5, r3 + 3dbc: 15151a15 ldrne r1, [r5, #-2581] + 3dc0: 1a1a151a bne 689230 + 3dc4: 1e5b031b mrcne 3, 2, r0, cr11, cr11, {0} + 3dc8: 24030105 strcs r0, [r3], #-261 + 3dcc: 0016020e andseq r0, r6, lr, lsl #4 + 3dd0: 00000101 andeq r0, r0, r1, lsl #2 + 3dd4: 000002f3 strdeq r0, [r0], -r3 + 3dd8: 02ed0002 rsceq r0, sp, #2 ; 0x2 + 3ddc: 01010000 tsteq r1, r0 + 3de0: 000a0500 andeq r0, sl, r0, lsl #10 + 3de4: 01010101 tsteq r1, r1, lsl #2 + 3de8: 00000000 andeq r0, r0, r0 + 3dec: 445c3a43 ldrbmi r3, [ip], #-2627 + 3df0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3df4: 73746e65 cmnvc r4, #1616 ; 0x650 + 3df8: 646e6120 strbtvs r6, [lr], #-288 + 3dfc: 74655320 strbtvc r5, [r5], #-800 + 3e00: 676e6974 undefined + 3e04: 616d5c73 smcvs 54723 + 3e08: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3e0c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3e10: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3e14: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3e18: 775c7374 undefined + 3e1c: 6f632d73 svcvs 0x00632d73 + 3e20: 6f72746e svcvs 0x0072746e + 3e24: 65575c6c ldrbvs r5, [r7, #-3180] + 3e28: 65687461 strbvs r7, [r8, #-1121]! + 3e2c: 74532072 ldrbvc r2, [r3], #-114 + 3e30: 6f697461 svcvs 0x00697461 + 3e34: 6f43206e svcvs 0x0043206e + 3e38: 6f72746e svcvs 0x0072746e + 3e3c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3e40: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3e44: 746e495c strbtvc r4, [lr], #-2396 + 3e48: 61667265 cmnvs r6, r5, ror #4 + 3e4c: 005c6563 subseq r6, ip, r3, ror #10 + 3e50: 445c3a43 ldrbmi r3, [ip], #-2627 + 3e54: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3e58: 73746e65 cmnvc r4, #1616 ; 0x650 + 3e5c: 646e6120 strbtvs r6, [lr], #-288 + 3e60: 74655320 strbtvc r5, [r5], #-800 + 3e64: 676e6974 undefined + 3e68: 616d5c73 smcvs 54723 + 3e6c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3e70: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3e74: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3e78: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3e7c: 775c7374 undefined + 3e80: 6f632d73 svcvs 0x00632d73 + 3e84: 6f72746e svcvs 0x0072746e + 3e88: 65575c6c ldrbvs r5, [r7, #-3180] + 3e8c: 65687461 strbvs r7, [r8, #-1121]! + 3e90: 74532072 ldrbvc r2, [r3], #-114 + 3e94: 6f697461 svcvs 0x00697461 + 3e98: 6f43206e svcvs 0x0043206e + 3e9c: 6f72746e svcvs 0x0072746e + 3ea0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3ea4: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3ea8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 3eac: 65746e49 ldrbvs r6, [r4, #-3657]! + 3eb0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 3eb4: 43005c65 movwmi r5, #3173 ; 0xc65 + 3eb8: 6f445c3a svcvs 0x00445c3a + 3ebc: 656d7563 strbvs r7, [sp, #-1379]! + 3ec0: 2073746e rsbscs r7, r3, lr, ror #8 + 3ec4: 20646e61 rsbcs r6, r4, r1, ror #28 + 3ec8: 74746553 ldrbtvc r6, [r4], #-1363 + 3ecc: 73676e69 cmnvc r7, #1680 ; 0x690 + 3ed0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3ed4: 61726976 cmnvs r2, r6, ror r9 + 3ed8: 20794d5c rsbscs r4, r9, ip, asr sp + 3edc: 75636f44 strbvc r6, [r3, #-3908]! + 3ee0: 746e656d strbtvc r6, [lr], #-1389 + 3ee4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3ee8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 3eec: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3ef0: 6165575c cmnvs r5, ip, asr r7 + 3ef4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3ef8: 61745320 cmnvs r4, r0, lsr #6 + 3efc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3f00: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 3f04: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3f08: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 3f0c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 3f10: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 3f14: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 3f18: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 3f1c: 65746e49 ldrbvs r6, [r4, #-3657]! + 3f20: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 3f24: 43005c65 movwmi r5, #3173 ; 0xc65 + 3f28: 6f445c3a svcvs 0x00445c3a + 3f2c: 656d7563 strbvs r7, [sp, #-1379]! + 3f30: 2073746e rsbscs r7, r3, lr, ror #8 + 3f34: 20646e61 rsbcs r6, r4, r1, ror #28 + 3f38: 74746553 ldrbtvc r6, [r4], #-1363 + 3f3c: 73676e69 cmnvc r7, #1680 ; 0x690 + 3f40: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3f44: 61726976 cmnvs r2, r6, ror r9 + 3f48: 20794d5c rsbscs r4, r9, ip, asr sp + 3f4c: 75636f44 strbvc r6, [r3, #-3908]! + 3f50: 746e656d strbtvc r6, [lr], #-1389 + 3f54: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3f58: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 3f5c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3f60: 6165575c cmnvs r5, ip, asr r7 + 3f64: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3f68: 61745320 cmnvs r4, r0, lsr #6 + 3f6c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3f70: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 3f74: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3f78: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 3f7c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 3f80: 746e495c strbtvc r4, [lr], #-2396 + 3f84: 61667265 cmnvs r6, r5, ror #4 + 3f88: 005c6563 subseq r6, ip, r3, ror #10 + 3f8c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3f90: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3f94: 73746e65 cmnvc r4, #1616 ; 0x650 + 3f98: 646e6120 strbtvs r6, [lr], #-288 + 3f9c: 74655320 strbtvc r5, [r5], #-800 + 3fa0: 676e6974 undefined + 3fa4: 616d5c73 smcvs 54723 + 3fa8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3fac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3fb0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3fb4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3fb8: 775c7374 undefined + 3fbc: 6f632d73 svcvs 0x00632d73 + 3fc0: 6f72746e svcvs 0x0072746e + 3fc4: 65575c6c ldrbvs r5, [r7, #-3180] + 3fc8: 65687461 strbvs r7, [r8, #-1121]! + 3fcc: 74532072 ldrbvc r2, [r3], #-114 + 3fd0: 6f697461 svcvs 0x00697461 + 3fd4: 6f43206e svcvs 0x0043206e + 3fd8: 6f72746e svcvs 0x0072746e + 3fdc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3fe0: 414d535c cmpmi sp, ip, asr r3 + 3fe4: 6f535c43 svcvs 0x00535c43 + 3fe8: 65637275 strbvs r7, [r3, #-629]! + 3fec: 4500005c strmi r0, [r0, #-92] + 3ff0: 6465626d strbtvs r6, [r5], #-621 + 3ff4: 54646564 strbtpl r6, [r4], #-1380 + 3ff8: 73657079 cmnvc r5, #121 ; 0x79 + 3ffc: 0100682e tsteq r0, lr, lsr #16 + 4000: c0d79d9e smullsgt r9, r7, lr, sp + 4004: 57507704 ldrbpl r7, [r0, -r4, lsl #14] + 4008: 6f435f52 svcvs 0x00435f52 + 400c: 6769666e strbvs r6, [r9, -lr, ror #12]! + 4010: 0100682e tsteq r0, lr, lsr #16 + 4014: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 4018: 52433104 subpl r3, r3, #1 ; 0x1 + 401c: 65525f4d ldrbvs r5, [r2, #-3917] + 4020: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 4024: 8ff80200 svchi 0x00f80200 + 4028: 8104c0d7 ldrdhi ip, [r4, -r7] + 402c: 6d724302 ldclvs 3, cr4, [r2, #-8]! + 4030: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 4034: c0d794f2 ldrshgt r9, [r7], #66 + 4038: 5005cb04 andpl ip, r5, r4, lsl #22 + 403c: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 4040: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} + 4044: f2020068 vhadd.s8 q0, q1, q12 + 4048: 04c0d794 strbeq sp, [r0], #1940 + 404c: 735303be cmpvc r3, #-134217726 ; 0xf8000002 + 4050: 65525f69 ldrbvs r5, [r2, #-3945] + 4054: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 4058: 96cc0200 strbls r0, [ip], r0, lsl #4 + 405c: c504ba91 strgt fp, [r4, #-2705] + 4060: 66697201 strbtvs r7, [r9], -r1, lsl #4 + 4064: 636e695f cmnvs lr, #1556480 ; 0x17c000 + 4068: 0300682e movweq r6, #2094 ; 0x82e + 406c: c5ffca82 ldrbgt ip, [pc, #2690]! ; 4af6 + 4070: 47019204 strmi r9, [r1, -r4, lsl #4] + 4074: 61626f6c cmnvs r2, ip, ror #30 + 4078: 6665446c strbtvs r4, [r5], -ip, ror #8 + 407c: 00682e73 rsbeq r2, r8, r3, ror lr + 4080: eea2ba04 cdp 10, 10, cr11, cr2, cr4, {0} + 4084: 019104c5 orrseq r0, r1, r5, asr #9 + 4088: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} + 408c: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ + 4090: 50726576 rsbspl r6, r2, r6, ror r5 + 4094: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 + 4098: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 409c: 682e746e stmdavs lr!, {r1, r2, r3, r5, r6, sl, ip, sp, lr} + 40a0: a9960400 ldmibge r6, {sl} + 40a4: ca04c5fa bgt 135894 + 40a8: 61725401 cmnvs r2, r1, lsl #8 + 40ac: 6563736e strbvs r7, [r3, #-878]! + 40b0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 40b4: 65776f50 ldrbvs r6, [r7, #-3920]! + 40b8: 676e4d72 undefined + 40bc: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 40c0: 96050063 strls r0, [r5], -r3, rrx + 40c4: 04c5faa9 strbeq pc, [r5], #2729 + 40c8: 000001ee andeq r0, r0, lr, ror #3 + 40cc: 000000d7 ldrdeq r0, [r0], -r7 + 40d0: 00930002 addseq r0, r3, r2 + 40d4: 01020000 tsteq r2, r0 + 40d8: 000a0500 andeq r0, sl, r0, lsl #10 + 40dc: 01010101 tsteq r1, r1, lsl #2 + 40e0: 00000000 andeq r0, r0, r0 + 40e4: 445c3a43 ldrbmi r3, [ip], #-2627 + 40e8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 40ec: 73746e65 cmnvc r4, #1616 ; 0x650 + 40f0: 646e6120 strbtvs r6, [lr], #-288 + 40f4: 74655320 strbtvc r5, [r5], #-800 + 40f8: 676e6974 undefined + 40fc: 616d5c73 smcvs 54723 + 4100: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4104: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4108: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 410c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4110: 775c7374 undefined + 4114: 6f632d73 svcvs 0x00632d73 + 4118: 6f72746e svcvs 0x0072746e + 411c: 65575c6c ldrbvs r5, [r7, #-3180] + 4120: 65687461 strbvs r7, [r8, #-1121]! + 4124: 74532072 ldrbvc r2, [r3], #-114 + 4128: 6f697461 svcvs 0x00697461 + 412c: 6f43206e svcvs 0x0043206e + 4130: 6f72746e svcvs 0x0072746e + 4134: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4138: 414d535c cmpmi sp, ip, asr r3 + 413c: 6f535c43 svcvs 0x00535c43 + 4140: 65637275 strbvs r7, [r3, #-629]! + 4144: 5400005c strpl r0, [r0], #-92 + 4148: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 414c: 76696563 strbtvc r6, [r9], -r3, ror #10 + 4150: 6f507265 svcvs 0x00507265 + 4154: 4d726577 cfldr64mi mvdx6, [r2, #-476]! + 4158: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 415c: 00632e74 rsbeq r2, r3, r4, ror lr + 4160: faa99601 blx fea6996c + 4164: 01ee04c5 mvneq r0, r5, asr #9 + 4168: 02050000 andeq r0, r5, #0 ; 0x0 + 416c: 00403988 subeq r3, r0, r8, lsl #19 + 4170: e3030105 movw r0, #12549 ; 0x3105 + 4174: 03050e00 movweq r0, #24064 ; 0x5e00 + 4178: 05161621 ldreq r1, [r6, #-1569] + 417c: 0b1a1608 bleq 6899a4 + 4180: 03051a1a movweq r1, #23066 ; 0x5a1a + 4184: 05130303 ldreq r0, [r3, #-771] + 4188: 0b151b06 bleq 54ada8 + 418c: 03051a1a movweq r1, #23066 ; 0x5a1a + 4190: 05130203 ldreq r0, [r3, #-515] + 4194: 791a1b06 ldmdbvc sl, {r1, r2, r8, r9, fp, ip} + 4198: 0b0b0b0b bleq 2c6dcc + 419c: 0303051a movweq r0, #13594 ; 0x351a + 41a0: 0a021302 beq 88db0 + 41a4: 00010100 andeq r0, r1, r0, lsl #2 + 41a8: 000003a0 andeq r0, r0, r0, lsr #7 + 41ac: 039a0002 orrseq r0, sl, #2 ; 0x2 + 41b0: 01010000 tsteq r1, r0 + 41b4: 000a0500 andeq r0, sl, r0, lsl #10 + 41b8: 01010101 tsteq r1, r1, lsl #2 + 41bc: 00000000 andeq r0, r0, r0 + 41c0: 445c3a43 ldrbmi r3, [ip], #-2627 + 41c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 41c8: 73746e65 cmnvc r4, #1616 ; 0x650 + 41cc: 646e6120 strbtvs r6, [lr], #-288 + 41d0: 74655320 strbtvc r5, [r5], #-800 + 41d4: 676e6974 undefined + 41d8: 616d5c73 smcvs 54723 + 41dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 41e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 41e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 41e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 41ec: 775c7374 undefined + 41f0: 6f632d73 svcvs 0x00632d73 + 41f4: 6f72746e svcvs 0x0072746e + 41f8: 65575c6c ldrbvs r5, [r7, #-3180] + 41fc: 65687461 strbvs r7, [r8, #-1121]! + 4200: 74532072 ldrbvc r2, [r3], #-114 + 4204: 6f697461 svcvs 0x00697461 + 4208: 6f43206e svcvs 0x0043206e + 420c: 6f72746e svcvs 0x0072746e + 4210: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4214: 7070415c rsbsvc r4, r0, ip, asr r1 + 4218: 6163696c cmnvs r3, ip, ror #18 + 421c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4220: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 4224: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 4228: 005c7365 subseq r7, ip, r5, ror #6 + 422c: 445c3a43 ldrbmi r3, [ip], #-2627 + 4230: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4234: 73746e65 cmnvc r4, #1616 ; 0x650 + 4238: 646e6120 strbtvs r6, [lr], #-288 + 423c: 74655320 strbtvc r5, [r5], #-800 + 4240: 676e6974 undefined + 4244: 616d5c73 smcvs 54723 + 4248: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 424c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4250: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4254: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4258: 775c7374 undefined + 425c: 6f632d73 svcvs 0x00632d73 + 4260: 6f72746e svcvs 0x0072746e + 4264: 65575c6c ldrbvs r5, [r7, #-3180] + 4268: 65687461 strbvs r7, [r8, #-1121]! + 426c: 74532072 ldrbvc r2, [r3], #-114 + 4270: 6f697461 svcvs 0x00697461 + 4274: 6f43206e svcvs 0x0043206e + 4278: 6f72746e svcvs 0x0072746e + 427c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4280: 4d4c505c stclmi 0, cr5, [ip, #-368] + 4284: 746e495c strbtvc r4, [lr], #-2396 + 4288: 61667265 cmnvs r6, r5, ror #4 + 428c: 005c6563 subseq r6, ip, r3, ror #10 + 4290: 445c3a43 ldrbmi r3, [ip], #-2627 + 4294: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4298: 73746e65 cmnvc r4, #1616 ; 0x650 + 429c: 646e6120 strbtvs r6, [lr], #-288 + 42a0: 74655320 strbtvc r5, [r5], #-800 + 42a4: 676e6974 undefined + 42a8: 616d5c73 smcvs 54723 + 42ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 42b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 42b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 42b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 42bc: 775c7374 undefined + 42c0: 6f632d73 svcvs 0x00632d73 + 42c4: 6f72746e svcvs 0x0072746e + 42c8: 65575c6c ldrbvs r5, [r7, #-3180] + 42cc: 65687461 strbvs r7, [r8, #-1121]! + 42d0: 74532072 ldrbvc r2, [r3], #-114 + 42d4: 6f697461 svcvs 0x00697461 + 42d8: 6f43206e svcvs 0x0043206e + 42dc: 6f72746e svcvs 0x0072746e + 42e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 42e4: 4d4c505c stclmi 0, cr5, [ip, #-368] + 42e8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 42ec: 65746e49 ldrbvs r6, [r4, #-3657]! + 42f0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 42f4: 43005c65 movwmi r5, #3173 ; 0xc65 + 42f8: 6f445c3a svcvs 0x00445c3a + 42fc: 656d7563 strbvs r7, [sp, #-1379]! + 4300: 2073746e rsbscs r7, r3, lr, ror #8 + 4304: 20646e61 rsbcs r6, r4, r1, ror #28 + 4308: 74746553 ldrbtvc r6, [r4], #-1363 + 430c: 73676e69 cmnvc r7, #1680 ; 0x690 + 4310: 6c616d5c stclvs 13, cr6, [r1], #-368 + 4314: 61726976 cmnvs r2, r6, ror r9 + 4318: 20794d5c rsbscs r4, r9, ip, asr sp + 431c: 75636f44 strbvc r6, [r3, #-3908]! + 4320: 746e656d strbtvc r6, [lr], #-1389 + 4324: 73775c73 cmnvc r7, #29440 ; 0x7300 + 4328: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 432c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 4330: 6165575c cmnvs r5, ip, asr r7 + 4334: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 4338: 61745320 cmnvs r4, r0, lsr #6 + 433c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4340: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 4344: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 4348: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 434c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 4350: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 4354: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 4358: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} + 435c: 75676966 strbvc r6, [r7, #-2406]! + 4360: 005c6572 subseq r6, ip, r2, ror r5 + 4364: 445c3a43 ldrbmi r3, [ip], #-2627 + 4368: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 436c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4370: 646e6120 strbtvs r6, [lr], #-288 + 4374: 74655320 strbtvc r5, [r5], #-800 + 4378: 676e6974 undefined + 437c: 616d5c73 smcvs 54723 + 4380: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4384: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4388: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 438c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4390: 775c7374 undefined + 4394: 6f632d73 svcvs 0x00632d73 + 4398: 6f72746e svcvs 0x0072746e + 439c: 65575c6c ldrbvs r5, [r7, #-3180] + 43a0: 65687461 strbvs r7, [r8, #-1121]! + 43a4: 74532072 ldrbvc r2, [r3], #-114 + 43a8: 6f697461 svcvs 0x00697461 + 43ac: 6f43206e svcvs 0x0043206e + 43b0: 6f72746e svcvs 0x0072746e + 43b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 43b8: 414d535c cmpmi sp, ip, asr r3 + 43bc: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 43c0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 43c4: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 43c8: 66726574 undefined + 43cc: 5c656361 stclpl 3, cr6, [r5], #-388 + 43d0: 5c3a4300 ldcpl 3, cr4, [sl] + 43d4: 75636f44 strbvc r6, [r3, #-3908]! + 43d8: 746e656d strbtvc r6, [lr], #-1389 + 43dc: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 43e0: 65532064 ldrbvs r2, [r3, #-100] + 43e4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 43e8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 43ec: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 43f0: 4d5c6172 ldfmie f6, [ip, #-456] + 43f4: 6f442079 svcvs 0x00442079 + 43f8: 656d7563 strbvs r7, [sp, #-1379]! + 43fc: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4400: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4404: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4408: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 440c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4410: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4414: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4418: 43206e6f teqmi r0, #1776 ; 0x6f0 + 441c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4420: 656c6c6f strbvs r6, [ip, #-3183]! + 4424: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 4428: 495c4341 ldmdbmi ip, {r0, r6, r8, r9, lr}^ + 442c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 4430: 65636166 strbvs r6, [r3, #-358]! + 4434: 5500005c strpl r0, [r0, #-92] + 4438: 55747261 ldrbpl r7, [r4, #-609]! + 443c: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 4440: a6010063 strge r0, [r1], -r3, rrx + 4444: 04c9def8 strbeq sp, [r9], #3832 + 4448: 615503cd cmpvs r5, sp, asr #7 + 444c: 74557472 ldrbvc r7, [r5], #-1138 + 4450: 682e6c69 stmdavs lr!, {r0, r3, r5, r6, sl, fp, sp, lr} + 4454: d7c00100 strble r0, [r0, r0, lsl #2] + 4458: b404c8e6 strlt ip, [r4], #-2278 + 445c: 626d4502 rsbvs r4, sp, #8388608 ; 0x800000 + 4460: 65646465 strbvs r6, [r4, #-1125]! + 4464: 70795464 rsbsvc r5, r9, r4, ror #8 + 4468: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 446c: 9d9e0200 lfmls f0, 4, [lr] + 4470: 7704c0d7 undefined + 4474: 54524155 ldrbpl r4, [r2], #-341 + 4478: 746e495f strbtvc r4, [lr], #-2399 + 447c: 61667265 cmnvs r6, r5, ror #4 + 4480: 682e6563 stmdavs lr!, {r0, r1, r5, r6, r8, sl, sp, lr} + 4484: a3d70200 bicsge r0, r7, #0 ; 0x0 + 4488: 7f04ceee svcvc 0x0004ceee + 448c: 5f4d5243 svcpl 0x004d5243 + 4490: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 4494: 0300682e movweq r6, #2094 ; 0x82e + 4498: c0d78ff8 ldrshgt r8, [r7], #248 + 449c: 49028104 stmdbmi r2, {r2, r8, pc} + 44a0: 495f4354 ldmdbmi pc, {r2, r4, r6, r8, r9, lr}^ + 44a4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 44a8: 65636166 strbvs r6, [r3, #-358]! + 44ac: 0300682e movweq r6, #2094 ; 0x82e + 44b0: c0d78ff8 ldrshgt r8, [r7], #248 + 44b4: 4902c404 stmdbmi r2, {r2, sl, lr, pc} + 44b8: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 44bc: 74707572 ldrbtvc r7, [r0], #-1394 + 44c0: 0300682e movweq r6, #2094 ; 0x82e + 44c4: c0d794f2 ldrshgt r9, [r7], #66 + 44c8: 73531d04 cmpvc r3, #256 ; 0x100 + 44cc: 65525f69 ldrbvs r5, [r2, #-3945] + 44d0: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 44d4: 96cc0300 strbls r0, [ip], r0, lsl #6 + 44d8: c504ba91 strgt fp, [r4, #-2705] + 44dc: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 + 44e0: 776f4c74 undefined + 44e4: 6576654c ldrbvs r6, [r6, #-1356]! + 44e8: 00682e6c rsbeq r2, r8, ip, ror #28 + 44ec: d794f203 ldrle pc, [r4, r3, lsl #4] + 44f0: 04fd04c0 ldrbteq r0, [sp], #1216 + 44f4: 74616c70 strbtvc r6, [r1], #-3184 + 44f8: 6d726f66 ldclvs 15, cr6, [r2, #-408]! + 44fc: 0300682e movweq r6, #2094 ; 0x82e + 4500: c0d794f2 ldrshgt r9, [r7], #66 + 4504: 6203be04 andvs fp, r3, #64 ; 0x40 + 4508: 6472616f ldrbtvs r6, [r2], #-367 + 450c: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 4510: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} + 4514: f7040068 undefined instruction 0xf7040068 + 4518: 04ceedfb strbeq lr, [lr], #3579 + 451c: 6572463d ldrbvs r4, [r2, #-1597]! + 4520: 70654471 rsbvc r4, r5, r1, ror r4 + 4524: 74746553 ldrbtvc r6, [r4], #-1363 + 4528: 73676e69 cmnvc r7, #1680 ; 0x690 + 452c: 0500682e streq r6, [r0, #-2094] + 4530: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 4534: 6c473704 mcrrvs 7, 0, r3, r7, cr4 + 4538: 6c61626f sfmvs f6, 2, [r1], #-444 + 453c: 73666544 cmnvc r6, #285212672 ; 0x11000000 + 4540: 0600682e streq r6, [r0], -lr, lsr #16 + 4544: c5eea2ba strbgt sl, [lr, #698]! + 4548: 00019104 andeq r9, r1, r4, lsl #2 + 454c: 000000c4 andeq r0, r0, r4, asr #1 + 4550: 008f0002 addeq r0, pc, r2 + 4554: 01020000 tsteq r2, r0 + 4558: 000a0500 andeq r0, sl, r0, lsl #10 + 455c: 01010101 tsteq r1, r1, lsl #2 + 4560: 00000000 andeq r0, r0, r0 + 4564: 445c3a43 ldrbmi r3, [ip], #-2627 + 4568: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 456c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4570: 646e6120 strbtvs r6, [lr], #-288 + 4574: 74655320 strbtvc r5, [r5], #-800 + 4578: 676e6974 undefined + 457c: 616d5c73 smcvs 54723 + 4580: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4584: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4588: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 458c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4590: 775c7374 undefined + 4594: 6f632d73 svcvs 0x00632d73 + 4598: 6f72746e svcvs 0x0072746e + 459c: 65575c6c ldrbvs r5, [r7, #-3180] + 45a0: 65687461 strbvs r7, [r8, #-1121]! + 45a4: 74532072 ldrbvc r2, [r3], #-114 + 45a8: 6f697461 svcvs 0x00697461 + 45ac: 6f43206e svcvs 0x0043206e + 45b0: 6f72746e svcvs 0x0072746e + 45b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 45b8: 7070415c rsbsvc r4, r0, ip, asr r1 + 45bc: 6163696c cmnvs r3, ip, ror #18 + 45c0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 45c4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 45c8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 45cc: 005c7365 subseq r7, ip, r5, ror #6 + 45d0: 72615500 rsbvc r5, r1, #0 ; 0x0 + 45d4: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 45d8: 00632e6c rsbeq r2, r3, ip, ror #28 + 45dc: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 45e0: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 45e4: 02050000 andeq r0, r5, #0 ; 0x0 + 45e8: 0040338c subeq r3, r0, ip, lsl #7 + 45ec: c4030105 strgt r0, [r3], #-261 + 45f0: 03050e00 movweq r0, #24064 ; 0x5e00 + 45f4: 171d0303 ldrne r0, [sp, -r3, lsl #6] + 45f8: 101a0b1a andsne r0, sl, sl, lsl fp + 45fc: 1c201f0e stcne 15, cr1, [r0], #-56 + 4600: 2203031f andcs r0, r3, #2080374784 ; 0x7c000000 + 4604: 1515211f ldrne r2, [r5, #-287] + 4608: 1b222303 blne 88d21c + 460c: 022a0105 eoreq r0, sl, #1073741825 ; 0x40000001 + 4610: 0101000e tsteq r1, lr + 4614: 000000b5 strheq r0, [r0], -r5 + 4618: 008f0002 addeq r0, pc, r2 + 461c: 01020000 tsteq r2, r0 + 4620: 000a0500 andeq r0, sl, r0, lsl #10 + 4624: 01010101 tsteq r1, r1, lsl #2 + 4628: 00000000 andeq r0, r0, r0 + 462c: 445c3a43 ldrbmi r3, [ip], #-2627 + 4630: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4634: 73746e65 cmnvc r4, #1616 ; 0x650 + 4638: 646e6120 strbtvs r6, [lr], #-288 + 463c: 74655320 strbtvc r5, [r5], #-800 + 4640: 676e6974 undefined + 4644: 616d5c73 smcvs 54723 + 4648: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 464c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4650: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4654: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4658: 775c7374 undefined + 465c: 6f632d73 svcvs 0x00632d73 + 4660: 6f72746e svcvs 0x0072746e + 4664: 65575c6c ldrbvs r5, [r7, #-3180] + 4668: 65687461 strbvs r7, [r8, #-1121]! + 466c: 74532072 ldrbvc r2, [r3], #-114 + 4670: 6f697461 svcvs 0x00697461 + 4674: 6f43206e svcvs 0x0043206e + 4678: 6f72746e svcvs 0x0072746e + 467c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4680: 7070415c rsbsvc r4, r0, ip, asr r1 + 4684: 6163696c cmnvs r3, ip, ror #18 + 4688: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 468c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 4690: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 4694: 005c7365 subseq r7, ip, r5, ror #6 + 4698: 72615500 rsbvc r5, r1, #0 ; 0x0 + 469c: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 46a0: 00632e6c rsbeq r2, r3, ip, ror #28 + 46a4: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 46a8: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 46ac: 02050000 andeq r0, r5, #0 ; 0x0 + 46b0: 00403418 subeq r3, r0, r8, lsl r4 + 46b4: 9d030105 stflss f0, [r3, #-20] + 46b8: 03050e01 movweq r0, #24065 ; 0x5e01 + 46bc: 241f2e0d ldrcs r2, [pc], #3597 ; 46c4 + 46c0: 241a2010 ldrcs r2, [sl], #-16 + 46c4: 1f01051a svcne 0x0001051a + 46c8: 01000402 tsteq r0, r2, lsl #8 + 46cc: 00000001 andeq r0, r0, r1 + 46d0: 000000aa andeq r0, r0, sl, lsr #1 + 46d4: 008f0002 addeq r0, pc, r2 + 46d8: 01020000 tsteq r2, r0 + 46dc: 000a0500 andeq r0, sl, r0, lsl #10 + 46e0: 01010101 tsteq r1, r1, lsl #2 + 46e4: 00000000 andeq r0, r0, r0 + 46e8: 445c3a43 ldrbmi r3, [ip], #-2627 + 46ec: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 46f0: 73746e65 cmnvc r4, #1616 ; 0x650 + 46f4: 646e6120 strbtvs r6, [lr], #-288 + 46f8: 74655320 strbtvc r5, [r5], #-800 + 46fc: 676e6974 undefined + 4700: 616d5c73 smcvs 54723 + 4704: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4708: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 470c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4710: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4714: 775c7374 undefined + 4718: 6f632d73 svcvs 0x00632d73 + 471c: 6f72746e svcvs 0x0072746e + 4720: 65575c6c ldrbvs r5, [r7, #-3180] + 4724: 65687461 strbvs r7, [r8, #-1121]! + 4728: 74532072 ldrbvc r2, [r3], #-114 + 472c: 6f697461 svcvs 0x00697461 + 4730: 6f43206e svcvs 0x0043206e + 4734: 6f72746e svcvs 0x0072746e + 4738: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 473c: 7070415c rsbsvc r4, r0, ip, asr r1 + 4740: 6163696c cmnvs r3, ip, ror #18 + 4744: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4748: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 474c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 4750: 005c7365 subseq r7, ip, r5, ror #6 + 4754: 72615500 rsbvc r5, r1, #0 ; 0x0 + 4758: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 475c: 00632e6c rsbeq r2, r3, ip, ror #28 + 4760: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 4764: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 4768: 02050000 andeq r0, r5, #0 ; 0x0 + 476c: 0040346c subeq r3, r0, ip, ror #8 + 4770: c7030105 strgt r0, [r3, -r5, lsl #2] + 4774: 03050e01 movweq r0, #24065 ; 0x5e01 + 4778: 0001020b andeq r0, r1, fp, lsl #4 + 477c: 00000101 andeq r0, r0, r1, lsl #2 + 4780: 000000a8 andeq r0, r0, r8, lsr #1 + 4784: 008f0002 addeq r0, pc, r2 + 4788: 01020000 tsteq r2, r0 + 478c: 000a0500 andeq r0, sl, r0, lsl #10 + 4790: 01010101 tsteq r1, r1, lsl #2 + 4794: 00000000 andeq r0, r0, r0 + 4798: 445c3a43 ldrbmi r3, [ip], #-2627 + 479c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 47a0: 73746e65 cmnvc r4, #1616 ; 0x650 + 47a4: 646e6120 strbtvs r6, [lr], #-288 + 47a8: 74655320 strbtvc r5, [r5], #-800 + 47ac: 676e6974 undefined + 47b0: 616d5c73 smcvs 54723 + 47b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 47b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 47bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 47c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 47c4: 775c7374 undefined + 47c8: 6f632d73 svcvs 0x00632d73 + 47cc: 6f72746e svcvs 0x0072746e + 47d0: 65575c6c ldrbvs r5, [r7, #-3180] + 47d4: 65687461 strbvs r7, [r8, #-1121]! + 47d8: 74532072 ldrbvc r2, [r3], #-114 + 47dc: 6f697461 svcvs 0x00697461 + 47e0: 6f43206e svcvs 0x0043206e + 47e4: 6f72746e svcvs 0x0072746e + 47e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 47ec: 7070415c rsbsvc r4, r0, ip, asr r1 + 47f0: 6163696c cmnvs r3, ip, ror #18 + 47f4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 47f8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 47fc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 4800: 005c7365 subseq r7, ip, r5, ror #6 + 4804: 72615500 rsbvc r5, r1, #0 ; 0x0 + 4808: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 480c: 00632e6c rsbeq r2, r3, ip, ror #28 + 4810: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 4814: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 4818: 02050000 andeq r0, r5, #0 ; 0x0 + 481c: 0040346e subeq r3, r0, lr, ror #8 + 4820: d3030105 movwle r0, #12549 ; 0x3105 + 4824: 020b0e01 andeq r0, fp, #16 ; 0x10 + 4828: 01010001 tsteq r1, r1 + 482c: 000000b8 strheq r0, [r0], -r8 + 4830: 008f0002 addeq r0, pc, r2 + 4834: 01020000 tsteq r2, r0 + 4838: 000a0500 andeq r0, sl, r0, lsl #10 + 483c: 01010101 tsteq r1, r1, lsl #2 + 4840: 00000000 andeq r0, r0, r0 + 4844: 445c3a43 ldrbmi r3, [ip], #-2627 + 4848: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 484c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4850: 646e6120 strbtvs r6, [lr], #-288 + 4854: 74655320 strbtvc r5, [r5], #-800 + 4858: 676e6974 undefined + 485c: 616d5c73 smcvs 54723 + 4860: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4864: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4868: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 486c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4870: 775c7374 undefined + 4874: 6f632d73 svcvs 0x00632d73 + 4878: 6f72746e svcvs 0x0072746e + 487c: 65575c6c ldrbvs r5, [r7, #-3180] + 4880: 65687461 strbvs r7, [r8, #-1121]! + 4884: 74532072 ldrbvc r2, [r3], #-114 + 4888: 6f697461 svcvs 0x00697461 + 488c: 6f43206e svcvs 0x0043206e + 4890: 6f72746e svcvs 0x0072746e + 4894: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4898: 7070415c rsbsvc r4, r0, ip, asr r1 + 489c: 6163696c cmnvs r3, ip, ror #18 + 48a0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 48a4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 48a8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 48ac: 005c7365 subseq r7, ip, r5, ror #6 + 48b0: 72615500 rsbvc r5, r1, #0 ; 0x0 + 48b4: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 48b8: 00632e6c rsbeq r2, r3, ip, ror #28 + 48bc: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 48c0: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 48c4: 02050000 andeq r0, r5, #0 ; 0x0 + 48c8: 00403470 subeq r3, r0, r0, ror r4 + 48cc: de030305 cdple 3, 0, cr0, cr3, cr5, {0} + 48d0: 6b031d01 blvs cbcdc + 48d4: 1812030a ldmdane r2, {r1, r3, r8, r9} + 48d8: 050a6b03 streq r6, [sl, #-2819] + 48dc: 18120301 ldmdane r2, {r0, r8, r9} + 48e0: 020a6b03 andeq r6, sl, #3072 ; 0xc00 + 48e4: 01010001 tsteq r1, r1 + 48e8: 000000b9 strheq r0, [r0], -r9 + 48ec: 008f0002 addeq r0, pc, r2 + 48f0: 01020000 tsteq r2, r0 + 48f4: 000a0500 andeq r0, sl, r0, lsl #10 + 48f8: 01010101 tsteq r1, r1, lsl #2 + 48fc: 00000000 andeq r0, r0, r0 + 4900: 445c3a43 ldrbmi r3, [ip], #-2627 + 4904: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4908: 73746e65 cmnvc r4, #1616 ; 0x650 + 490c: 646e6120 strbtvs r6, [lr], #-288 + 4910: 74655320 strbtvc r5, [r5], #-800 + 4914: 676e6974 undefined + 4918: 616d5c73 smcvs 54723 + 491c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4920: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4924: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4928: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 492c: 775c7374 undefined + 4930: 6f632d73 svcvs 0x00632d73 + 4934: 6f72746e svcvs 0x0072746e + 4938: 65575c6c ldrbvs r5, [r7, #-3180] + 493c: 65687461 strbvs r7, [r8, #-1121]! + 4940: 74532072 ldrbvc r2, [r3], #-114 + 4944: 6f697461 svcvs 0x00697461 + 4948: 6f43206e svcvs 0x0043206e + 494c: 6f72746e svcvs 0x0072746e + 4950: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4954: 7070415c rsbsvc r4, r0, ip, asr r1 + 4958: 6163696c cmnvs r3, ip, ror #18 + 495c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4960: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 4964: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 4968: 005c7365 subseq r7, ip, r5, ror #6 + 496c: 72615500 rsbvc r5, r1, #0 ; 0x0 + 4970: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 4974: 00632e6c rsbeq r2, r3, ip, ror #28 + 4978: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 497c: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 4980: 02050000 andeq r0, r5, #0 ; 0x0 + 4984: 00403480 subeq r3, r0, r0, lsl #9 + 4988: 87030105 strhi r0, [r3, -r5, lsl #2] + 498c: 0b050e02 bleq 14819c + 4990: 1b030516 blne c5df0 + 4994: 1a240505 bne 905db0 + 4998: 0705101a smladeq r5, sl, r0, r1 + 499c: 21010539 tstcs r1, r9, lsr r5 + 49a0: 01000502 tsteq r0, r2, lsl #10 + 49a4: 00000001 andeq r0, r0, r1 + 49a8: 000004db ldrdeq r0, [r0], -fp + 49ac: 04d50002 ldrbeq r0, [r5], #2 + 49b0: 01010000 tsteq r1, r0 + 49b4: 000a0500 andeq r0, sl, r0, lsl #10 + 49b8: 01010101 tsteq r1, r1, lsl #2 + 49bc: 00000000 andeq r0, r0, r0 + 49c0: 445c3a43 ldrbmi r3, [ip], #-2627 + 49c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 49c8: 73746e65 cmnvc r4, #1616 ; 0x650 + 49cc: 646e6120 strbtvs r6, [lr], #-288 + 49d0: 74655320 strbtvc r5, [r5], #-800 + 49d4: 676e6974 undefined + 49d8: 616d5c73 smcvs 54723 + 49dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 49e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 49e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 49e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 49ec: 775c7374 undefined + 49f0: 6f632d73 svcvs 0x00632d73 + 49f4: 6f72746e svcvs 0x0072746e + 49f8: 65575c6c ldrbvs r5, [r7, #-3180] + 49fc: 65687461 strbvs r7, [r8, #-1121]! + 4a00: 74532072 ldrbvc r2, [r3], #-114 + 4a04: 6f697461 svcvs 0x00697461 + 4a08: 6f43206e svcvs 0x0043206e + 4a0c: 6f72746e svcvs 0x0072746e + 4a10: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4a14: 4d4c505c stclmi 0, cr5, [ip, #-368] + 4a18: 746e495c strbtvc r4, [lr], #-2396 + 4a1c: 61667265 cmnvs r6, r5, ror #4 + 4a20: 005c6563 subseq r6, ip, r3, ror #10 + 4a24: 445c3a43 ldrbmi r3, [ip], #-2627 + 4a28: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4a2c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4a30: 646e6120 strbtvs r6, [lr], #-288 + 4a34: 74655320 strbtvc r5, [r5], #-800 + 4a38: 676e6974 undefined + 4a3c: 616d5c73 smcvs 54723 + 4a40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4a44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4a48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4a4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4a50: 775c7374 undefined + 4a54: 6f632d73 svcvs 0x00632d73 + 4a58: 6f72746e svcvs 0x0072746e + 4a5c: 65575c6c ldrbvs r5, [r7, #-3180] + 4a60: 65687461 strbvs r7, [r8, #-1121]! + 4a64: 74532072 ldrbvc r2, [r3], #-114 + 4a68: 6f697461 svcvs 0x00697461 + 4a6c: 6f43206e svcvs 0x0043206e + 4a70: 6f72746e svcvs 0x0072746e + 4a74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4a78: 414d535c cmpmi sp, ip, asr r3 + 4a7c: 6f435c43 svcvs 0x00435c43 + 4a80: 6769666e strbvs r6, [r9, -lr, ror #12]! + 4a84: 5c657275 sfmpl f7, 2, [r5], #-468 + 4a88: 5c3a4300 ldcpl 3, cr4, [sl] + 4a8c: 75636f44 strbvc r6, [r3, #-3908]! + 4a90: 746e656d strbtvc r6, [lr], #-1389 + 4a94: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4a98: 65532064 ldrbvs r2, [r3, #-100] + 4a9c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4aa0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4aa4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4aa8: 4d5c6172 ldfmie f6, [ip, #-456] + 4aac: 6f442079 svcvs 0x00442079 + 4ab0: 656d7563 strbvs r7, [sp, #-1379]! + 4ab4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4ab8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4abc: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4ac0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4ac4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4ac8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4acc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4ad0: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4ad4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4ad8: 656c6c6f strbvs r6, [ip, #-3183]! + 4adc: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 4ae0: 445c4341 ldrbmi r4, [ip], #-833 + 4ae4: 65766972 ldrbvs r6, [r6, #-2418]! + 4ae8: 435c7372 cmpmi ip, #-939524095 ; 0xc8000001 + 4aec: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 4af0: 65727567 ldrbvs r7, [r2, #-1383]! + 4af4: 3a43005c bcc 10c4c6c + 4af8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 4afc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4b00: 61207374 teqvs r0, r4, ror r3 + 4b04: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 4b08: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4b0c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 4b10: 766c616d strbtvc r6, [ip], -sp, ror #2 + 4b14: 5c617269 sfmpl f7, 2, [r1], #-420 + 4b18: 4420794d strtmi r7, [r0], #-2381 + 4b1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4b20: 73746e65 cmnvc r4, #1616 ; 0x650 + 4b24: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 4b28: 746e6f63 strbtvc r6, [lr], #-3939 + 4b2c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 4b30: 74616557 strbtvc r6, [r1], #-1367 + 4b34: 20726568 rsbscs r6, r2, r8, ror #10 + 4b38: 74617453 strbtvc r7, [r1], #-1107 + 4b3c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 4b40: 746e6f43 strbtvc r6, [lr], #-3907 + 4b44: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4b48: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 4b4c: 5c43414d stfple f4, [r3], {77} + 4b50: 76697244 strbtvc r7, [r9], -r4, asr #4 + 4b54: 5c737265 lfmpl f7, 2, [r3], #-404 + 4b58: 65746e49 ldrbvs r6, [r4, #-3657]! + 4b5c: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 4b60: 43005c65 movwmi r5, #3173 ; 0xc65 + 4b64: 6f445c3a svcvs 0x00445c3a + 4b68: 656d7563 strbvs r7, [sp, #-1379]! + 4b6c: 2073746e rsbscs r7, r3, lr, ror #8 + 4b70: 20646e61 rsbcs r6, r4, r1, ror #28 + 4b74: 74746553 ldrbtvc r6, [r4], #-1363 + 4b78: 73676e69 cmnvc r7, #1680 ; 0x690 + 4b7c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 4b80: 61726976 cmnvs r2, r6, ror r9 + 4b84: 20794d5c rsbscs r4, r9, ip, asr sp + 4b88: 75636f44 strbvc r6, [r3, #-3908]! + 4b8c: 746e656d strbtvc r6, [lr], #-1389 + 4b90: 73775c73 cmnvc r7, #29440 ; 0x7300 + 4b94: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 4b98: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 4b9c: 6165575c cmnvs r5, ip, asr r7 + 4ba0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 4ba4: 61745320 cmnvs r4, r0, lsr #6 + 4ba8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4bac: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 4bb0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 4bb4: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 4bb8: 43414d53 movtmi r4, #7507 ; 0x1d53 + 4bbc: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 4bc0: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 4bc4: 746e495c strbtvc r4, [lr], #-2396 + 4bc8: 61667265 cmnvs r6, r5, ror #4 + 4bcc: 675c6563 ldrbvs r6, [ip, -r3, ror #10] + 4bd0: 5c726468 cfldrdpl mvd6, [r2], #-416 + 4bd4: 5c3a4300 ldcpl 3, cr4, [sl] + 4bd8: 75636f44 strbvc r6, [r3, #-3908]! + 4bdc: 746e656d strbtvc r6, [lr], #-1389 + 4be0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4be4: 65532064 ldrbvs r2, [r3, #-100] + 4be8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4bec: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4bf0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4bf4: 4d5c6172 ldfmie f6, [ip, #-456] + 4bf8: 6f442079 svcvs 0x00442079 + 4bfc: 656d7563 strbvs r7, [sp, #-1379]! + 4c00: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4c04: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4c08: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c0c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4c10: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4c14: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4c18: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4c1c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4c20: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c24: 656c6c6f strbvs r6, [ip, #-3183]! + 4c28: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 4c2c: 445c4341 ldrbmi r4, [ip], #-833 + 4c30: 65766972 ldrbvs r6, [r6, #-2418]! + 4c34: 4c5c7372 mrrcmi 3, 7, r7, ip, cr2 + 4c38: 6e496269 cdpvs 2, 4, cr6, cr9, cr9, {3} + 4c3c: 66726574 undefined + 4c40: 5c656361 stclpl 3, cr6, [r5], #-388 + 4c44: 5c3a4300 ldcpl 3, cr4, [sl] + 4c48: 75636f44 strbvc r6, [r3, #-3908]! + 4c4c: 746e656d strbtvc r6, [lr], #-1389 + 4c50: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4c54: 65532064 ldrbvs r2, [r3, #-100] + 4c58: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4c5c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4c60: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4c64: 4d5c6172 ldfmie f6, [ip, #-456] + 4c68: 6f442079 svcvs 0x00442079 + 4c6c: 656d7563 strbvs r7, [sp, #-1379]! + 4c70: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4c74: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4c78: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c7c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4c80: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4c84: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4c88: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4c8c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4c90: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c94: 656c6c6f strbvs r6, [ip, #-3183]! + 4c98: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 4c9c: 495c4341 ldmdbmi ip, {r0, r6, r8, r9, lr}^ + 4ca0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 4ca4: 65636166 strbvs r6, [r3, #-358]! + 4ca8: 3a43005c bcc 10c4e20 + 4cac: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 4cb0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4cb4: 61207374 teqvs r0, r4, ror r3 + 4cb8: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 4cbc: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4cc0: 5c73676e ldclpl 7, cr6, [r3], #-440 + 4cc4: 766c616d strbtvc r6, [ip], -sp, ror #2 + 4cc8: 5c617269 sfmpl f7, 2, [r1], #-420 + 4ccc: 4420794d strtmi r7, [r0], #-2381 + 4cd0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4cd4: 73746e65 cmnvc r4, #1616 ; 0x650 + 4cd8: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 4cdc: 746e6f63 strbtvc r6, [lr], #-3939 + 4ce0: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 4ce4: 74616557 strbtvc r6, [r1], #-1367 + 4ce8: 20726568 rsbscs r6, r2, r8, ror #10 + 4cec: 74617453 strbtvc r7, [r1], #-1107 + 4cf0: 206e6f69 rsbcs r6, lr, r9, ror #30 + 4cf4: 746e6f43 strbtvc r6, [lr], #-3907 + 4cf8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4cfc: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 4d00: 5c43414d stfple f4, [r3], {77} + 4d04: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 4d08: 005c6563 subseq r6, ip, r3, ror #10 + 4d0c: 626d4500 rsbvs r4, sp, #0 ; 0x0 + 4d10: 65646465 strbvs r6, [r4, #-1125]! + 4d14: 70795464 rsbsvc r5, r9, r4, ror #8 + 4d18: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 4d1c: 9d9e0100 ldflss f0, [lr] + 4d20: 7704c0d7 undefined + 4d24: 435f4652 cmpmi pc, #85983232 ; 0x5200000 + 4d28: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 4d2c: 00682e67 rsbeq r2, r8, r7, ror #28 + 4d30: edfbf701 ldcl 7, cr15, [fp, #4]! + 4d34: 6f3204ce svcvs 0x003204ce + 4d38: 6f697470 svcvs 0x00697470 + 4d3c: 635f736e cmpvs pc, #-1207959551 ; 0xb8000001 + 4d40: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 4d44: 00682e67 rsbeq r2, r8, r7, ror #28 + 4d48: d58e8e02 strle r8, [lr, #3586] + 4d4c: 621f04c1 andsvs r0, pc, #-1056964608 ; 0xc1000000 + 4d50: 6472616f ldrbtvs r6, [r2], #-367 + 4d54: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 4d58: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} + 4d5c: f7030068 undefined instruction 0xf7030068 + 4d60: 04ceedfb strbeq lr, [lr], #3579 + 4d64: 6572463d ldrbvs r4, [r2, #-1597]! + 4d68: 70654471 rsbvc r4, r5, r1, ror r4 + 4d6c: 74746553 ldrbtvc r6, [r4], #-1363 + 4d70: 73676e69 cmnvc r7, #1680 ; 0x690 + 4d74: 0400682e streq r6, [r0], #-2094 + 4d78: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 4d7c: 616d3704 cmnvs sp, r4, lsl #14 + 4d80: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} + 4d84: adc20500 cfstr64ge mvdx0, [r2] + 4d88: 8c04c49d cfstrshi mvf12, [r4], {157} + 4d8c: 76637203 strbtvc r7, [r3], -r3, lsl #4 + 4d90: 6970735f ldmdbvs r0!, {r0, r1, r2, r3, r4, r6, r8, r9, ip, sp, lr}^ + 4d94: 6765725f undefined + 4d98: 00682e73 rsbeq r2, r8, r3, ror lr + 4d9c: f2c0e405 vaddhn.i16 d30, q0, + 4da0: 522404b8 eorpl r0, r4, #-1207959552 ; 0xb8000000 + 4da4: 505f6d6f subspl r6, pc, pc, ror #26 + 4da8: 682e7968 stmdavs lr!, {r3, r5, r6, r8, fp, ip, sp, lr} + 4dac: 89e20600 stmibhi r2!, {r9, sl}^ + 4db0: 3404c0dc strcc ip, [r4], #-220 + 4db4: 746e7953 strbtvc r7, [lr], #-2387 + 4db8: 69736568 ldmdbvs r3!, {r3, r5, r6, r8, sl, sp, lr}^ + 4dbc: 5f72657a svcpl 0x0072657a + 4dc0: 2e636e69 cdpcs 14, 6, cr6, cr3, cr9, {3} + 4dc4: fa060068 blx 184f6c + 4dc8: 04cc8199 strbeq r8, [ip], #409 + 4dcc: 697201a0 ldmdbvs r2!, {r5, r7, r8}^ + 4dd0: 6e695f66 cdpvs 15, 6, cr5, cr9, cr6, {3} + 4dd4: 00682e63 rsbeq r2, r8, r3, ror #28 + 4dd8: ffca8206 undefined instruction 0xffca8206 + 4ddc: 019204c5 orrseq r0, r2, r5, asr #9 + 4de0: 626f6c47 rsbvs r6, pc, #18176 ; 0x4700 + 4de4: 65446c61 strbvs r6, [r4, #-3169] + 4de8: 682e7366 stmdavs lr!, {r1, r2, r5, r6, r8, r9, ip, sp, lr} + 4dec: a2ba0700 adcsge r0, sl, #0 ; 0x0 + 4df0: 9104c5ee smlattls r4, lr, r5, ip + 4df4: 64615201 strbtvs r5, [r1], #-513 + 4df8: 614d6f69 cmpvs sp, r9, ror #30 + 4dfc: 6567616e strbvs r6, [r7, #-366]! + 4e00: 746e656d strbtvc r6, [lr], #-1389 + 4e04: 0700682e streq r6, [r0, -lr, lsr #16] + 4e08: cbe6d8a6 blgt ff9bb0a8 + 4e0c: 5403d104 strpl sp, [r3], #-260 + 4e10: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 4e14: 76696563 strbtvc r6, [r9], -r3, ror #10 + 4e18: 6f437265 svcvs 0x00437265 + 4e1c: 6769666e strbvs r6, [r9, -lr, ror #12]! + 4e20: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 4e24: 682e746e stmdavs lr!, {r1, r2, r3, r5, r6, sl, ip, sp, lr} + 4e28: a0a20700 adcge r0, r2, r0, lsl #14 + 4e2c: e604c5ee str ip, [r4], -lr, ror #11 + 4e30: 72695701 rsbvc r5, r9, #262144 ; 0x40000 + 4e34: 73656c65 cmnvc r5, #25856 ; 0x6500 + 4e38: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 4e3c: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 4e40: 682e746d stmdavs lr!, {r0, r2, r3, r5, r6, sl, ip, sp, lr} + 4e44: 98a60700 stmials r6!, {r8, r9, sl} + 4e48: 9704cbf7 undefined + 4e4c: 64615202 strbtvs r5, [r1], #-514 + 4e50: 6e4d6f69 cdpvs 15, 4, cr6, cr13, cr9, {3} + 4e54: 746e6d67 strbtvc r6, [lr], #-3431 + 4e58: 70617257 rsbvc r7, r1, r7, asr r2 + 4e5c: 2e726570 mrccs 5, 3, r6, cr2, cr0, {3} + 4e60: a6080068 strge r0, [r8], -r8, rrx + 4e64: 04cbe6d8 strbeq lr, [fp], #1752 + 4e68: 695701e6 ldmdbvs r7, {r1, r2, r5, r6, r7, r8}^ + 4e6c: 656c6572 strbvs r6, [ip, #-1394]! + 4e70: 694c7373 stmdbvs ip, {r0, r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 4e74: 6e4d6b6e fnmacdvs d22, d13, d30 + 4e78: 2e746d67 cdpcs 13, 7, cr6, cr4, cr7, {3} + 4e7c: a6080063 strge r0, [r8], -r3, rrx + 4e80: 04cbf798 strbeq pc, [fp], #1944 + 4e84: 000001d6 ldrdeq r0, [r0], -r6 + 4e88: 000000ad andeq r0, r0, sp, lsr #1 + 4e8c: 008e0002 addeq r0, lr, r2 + 4e90: 01020000 tsteq r2, r0 + 4e94: 000a0500 andeq r0, sl, r0, lsl #10 + 4e98: 01010101 tsteq r1, r1, lsl #2 + 4e9c: 00000000 andeq r0, r0, r0 + 4ea0: 445c3a43 ldrbmi r3, [ip], #-2627 + 4ea4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4ea8: 73746e65 cmnvc r4, #1616 ; 0x650 + 4eac: 646e6120 strbtvs r6, [lr], #-288 + 4eb0: 74655320 strbtvc r5, [r5], #-800 + 4eb4: 676e6974 undefined + 4eb8: 616d5c73 smcvs 54723 + 4ebc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4ec0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4ec4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4ec8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4ecc: 775c7374 undefined + 4ed0: 6f632d73 svcvs 0x00632d73 + 4ed4: 6f72746e svcvs 0x0072746e + 4ed8: 65575c6c ldrbvs r5, [r7, #-3180] + 4edc: 65687461 strbvs r7, [r8, #-1121]! + 4ee0: 74532072 ldrbvc r2, [r3], #-114 + 4ee4: 6f697461 svcvs 0x00697461 + 4ee8: 6f43206e svcvs 0x0043206e + 4eec: 6f72746e svcvs 0x0072746e + 4ef0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4ef4: 414d535c cmpmi sp, ip, asr r3 + 4ef8: 6f535c43 svcvs 0x00535c43 + 4efc: 65637275 strbvs r7, [r3, #-629]! + 4f00: 5700005c smlsdpl r0, ip, r0, r0 + 4f04: 6c657269 sfmvs f7, 2, [r5], #-420 + 4f08: 4c737365 ldclmi 3, cr7, [r3], #-404 + 4f0c: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 4f10: 746d676e strbtvc r6, [sp], #-1902 + 4f14: 0100632e tsteq r0, lr, lsr #6 + 4f18: cbf798a6 blgt ffdeb1b8 + 4f1c: 0001d604 andeq sp, r1, r4, lsl #12 + 4f20: 1c020500 cfstr32ne mvfx0, [r2], {0} + 4f24: 0500403a streq r4, [r0, #-58] + 4f28: 0e370301 cdpeq 3, 3, cr0, cr7, cr1, {0} + 4f2c: 0b100305 bleq 405b48 + 4f30: 0b191915 bleq 64b38c + 4f34: 01000102 tsteq r0, r2, lsl #2 + 4f38: 00000001 andeq r0, r0, r1 + 4f3c: 000000b1 strheq r0, [r0], -r1 + 4f40: 008e0002 addeq r0, lr, r2 + 4f44: 01020000 tsteq r2, r0 + 4f48: 000a0500 andeq r0, sl, r0, lsl #10 + 4f4c: 01010101 tsteq r1, r1, lsl #2 + 4f50: 00000000 andeq r0, r0, r0 + 4f54: 445c3a43 ldrbmi r3, [ip], #-2627 + 4f58: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4f5c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4f60: 646e6120 strbtvs r6, [lr], #-288 + 4f64: 74655320 strbtvc r5, [r5], #-800 + 4f68: 676e6974 undefined + 4f6c: 616d5c73 smcvs 54723 + 4f70: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4f74: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4f78: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4f7c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4f80: 775c7374 undefined + 4f84: 6f632d73 svcvs 0x00632d73 + 4f88: 6f72746e svcvs 0x0072746e + 4f8c: 65575c6c ldrbvs r5, [r7, #-3180] + 4f90: 65687461 strbvs r7, [r8, #-1121]! + 4f94: 74532072 ldrbvc r2, [r3], #-114 + 4f98: 6f697461 svcvs 0x00697461 + 4f9c: 6f43206e svcvs 0x0043206e + 4fa0: 6f72746e svcvs 0x0072746e + 4fa4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4fa8: 414d535c cmpmi sp, ip, asr r3 + 4fac: 6f535c43 svcvs 0x00535c43 + 4fb0: 65637275 strbvs r7, [r3, #-629]! + 4fb4: 5700005c smlsdpl r0, ip, r0, r0 + 4fb8: 6c657269 sfmvs f7, 2, [r5], #-420 + 4fbc: 4c737365 ldclmi 3, cr7, [r3], #-404 + 4fc0: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 4fc4: 746d676e strbtvc r6, [sp], #-1902 + 4fc8: 0100632e tsteq r0, lr, lsr #6 + 4fcc: cbf798a6 blgt ffdeb26c + 4fd0: 0001d604 andeq sp, r1, r4, lsl #12 + 4fd4: 30020500 andcc r0, r2, r0, lsl #10 + 4fd8: 0500403a streq r4, [r0, #-58] + 4fdc: 00c50301 sbceq r0, r5, r1, lsl #6 + 4fe0: 1303050e movwne r0, #13582 ; 0x350e + 4fe4: 17160505 ldrne r0, [r6, -r5, lsl #10] + 4fe8: 0c03052d cfstr32eq mvfx0, [r3], {45} + 4fec: 01000202 tsteq r0, r2, lsl #4 + 4ff0: 00000001 andeq r0, r0, r1 + 4ff4: 000000a9 andeq r0, r0, r9, lsr #1 + 4ff8: 008e0002 addeq r0, lr, r2 + 4ffc: 01020000 tsteq r2, r0 + 5000: 000a0500 andeq r0, sl, r0, lsl #10 + 5004: 01010101 tsteq r1, r1, lsl #2 + 5008: 00000000 andeq r0, r0, r0 + 500c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5010: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5014: 73746e65 cmnvc r4, #1616 ; 0x650 + 5018: 646e6120 strbtvs r6, [lr], #-288 + 501c: 74655320 strbtvc r5, [r5], #-800 + 5020: 676e6974 undefined + 5024: 616d5c73 smcvs 54723 + 5028: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 502c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5030: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5034: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5038: 775c7374 undefined + 503c: 6f632d73 svcvs 0x00632d73 + 5040: 6f72746e svcvs 0x0072746e + 5044: 65575c6c ldrbvs r5, [r7, #-3180] + 5048: 65687461 strbvs r7, [r8, #-1121]! + 504c: 74532072 ldrbvc r2, [r3], #-114 + 5050: 6f697461 svcvs 0x00697461 + 5054: 6f43206e svcvs 0x0043206e + 5058: 6f72746e svcvs 0x0072746e + 505c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5060: 414d535c cmpmi sp, ip, asr r3 + 5064: 6f535c43 svcvs 0x00535c43 + 5068: 65637275 strbvs r7, [r3, #-629]! + 506c: 5700005c smlsdpl r0, ip, r0, r0 + 5070: 6c657269 sfmvs f7, 2, [r5], #-420 + 5074: 4c737365 ldclmi 3, cr7, [r3], #-404 + 5078: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 507c: 746d676e strbtvc r6, [sp], #-1902 + 5080: 0100632e tsteq r0, lr, lsr #6 + 5084: cbf798a6 blgt ffdeb324 + 5088: 0001d604 andeq sp, r1, r4, lsl #12 + 508c: 00020500 andeq r0, r2, r0, lsl #10 + 5090: 05000000 streq r0, [r0] + 5094: 00da0301 sbcseq r0, sl, r1, lsl #6 + 5098: 1003050e andne r0, r3, lr, lsl #10 + 509c: 01000902 tsteq r0, r2, lsl #18 + 50a0: 00000001 andeq r0, r0, r1 + 50a4: 000000aa andeq r0, r0, sl, lsr #1 + 50a8: 008e0002 addeq r0, lr, r2 + 50ac: 01020000 tsteq r2, r0 + 50b0: 000a0500 andeq r0, sl, r0, lsl #10 + 50b4: 01010101 tsteq r1, r1, lsl #2 + 50b8: 00000000 andeq r0, r0, r0 + 50bc: 445c3a43 ldrbmi r3, [ip], #-2627 + 50c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 50c4: 73746e65 cmnvc r4, #1616 ; 0x650 + 50c8: 646e6120 strbtvs r6, [lr], #-288 + 50cc: 74655320 strbtvc r5, [r5], #-800 + 50d0: 676e6974 undefined + 50d4: 616d5c73 smcvs 54723 + 50d8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 50dc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 50e0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 50e4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 50e8: 775c7374 undefined + 50ec: 6f632d73 svcvs 0x00632d73 + 50f0: 6f72746e svcvs 0x0072746e + 50f4: 65575c6c ldrbvs r5, [r7, #-3180] + 50f8: 65687461 strbvs r7, [r8, #-1121]! + 50fc: 74532072 ldrbvc r2, [r3], #-114 + 5100: 6f697461 svcvs 0x00697461 + 5104: 6f43206e svcvs 0x0043206e + 5108: 6f72746e svcvs 0x0072746e + 510c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5110: 414d535c cmpmi sp, ip, asr r3 + 5114: 6f535c43 svcvs 0x00535c43 + 5118: 65637275 strbvs r7, [r3, #-629]! + 511c: 5700005c smlsdpl r0, ip, r0, r0 + 5120: 6c657269 sfmvs f7, 2, [r5], #-420 + 5124: 4c737365 ldclmi 3, cr7, [r3], #-404 + 5128: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 512c: 746d676e strbtvc r6, [sp], #-1902 + 5130: 0100632e tsteq r0, lr, lsr #6 + 5134: cbf798a6 blgt ffdeb3d4 + 5138: 0001d604 andeq sp, r1, r4, lsl #12 + 513c: 54020500 strpl r0, [r2], #-1280 + 5140: 0500403a streq r4, [r0, #-58] + 5144: 00e60301 rsceq r0, r6, r1, lsl #6 + 5148: 1003050e andne r0, r3, lr, lsl #10 + 514c: 00010229 andeq r0, r1, r9, lsr #4 + 5150: 00000101 andeq r0, r0, r1, lsl #2 + 5154: 000000ad andeq r0, r0, sp, lsr #1 + 5158: 008e0002 addeq r0, lr, r2 + 515c: 01020000 tsteq r2, r0 + 5160: 000a0500 andeq r0, sl, r0, lsl #10 + 5164: 01010101 tsteq r1, r1, lsl #2 + 5168: 00000000 andeq r0, r0, r0 + 516c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5170: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5174: 73746e65 cmnvc r4, #1616 ; 0x650 + 5178: 646e6120 strbtvs r6, [lr], #-288 + 517c: 74655320 strbtvc r5, [r5], #-800 + 5180: 676e6974 undefined + 5184: 616d5c73 smcvs 54723 + 5188: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 518c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5190: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5194: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5198: 775c7374 undefined + 519c: 6f632d73 svcvs 0x00632d73 + 51a0: 6f72746e svcvs 0x0072746e + 51a4: 65575c6c ldrbvs r5, [r7, #-3180] + 51a8: 65687461 strbvs r7, [r8, #-1121]! + 51ac: 74532072 ldrbvc r2, [r3], #-114 + 51b0: 6f697461 svcvs 0x00697461 + 51b4: 6f43206e svcvs 0x0043206e + 51b8: 6f72746e svcvs 0x0072746e + 51bc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 51c0: 414d535c cmpmi sp, ip, asr r3 + 51c4: 6f535c43 svcvs 0x00535c43 + 51c8: 65637275 strbvs r7, [r3, #-629]! + 51cc: 5700005c smlsdpl r0, ip, r0, r0 + 51d0: 6c657269 sfmvs f7, 2, [r5], #-420 + 51d4: 4c737365 ldclmi 3, cr7, [r3], #-404 + 51d8: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 51dc: 746d676e strbtvc r6, [sp], #-1902 + 51e0: 0100632e tsteq r0, lr, lsr #6 + 51e4: cbf798a6 blgt ffdeb484 + 51e8: 0001d604 andeq sp, r1, r4, lsl #12 + 51ec: 00020500 andeq r0, r2, r0, lsl #10 + 51f0: 05000000 streq r0, [r0] + 51f4: 00f30301 rscseq r0, r3, r1, lsl #6 + 51f8: 1003050e andne r0, r3, lr, lsl #10 + 51fc: 17240505 strne r0, [r4, -r5, lsl #10]! + 5200: 01000402 tsteq r0, r2, lsl #8 + 5204: 00000001 andeq r0, r0, r1 + 5208: 000000af andeq r0, r0, pc, lsr #1 + 520c: 008e0002 addeq r0, lr, r2 + 5210: 01020000 tsteq r2, r0 + 5214: 000a0500 andeq r0, sl, r0, lsl #10 + 5218: 01010101 tsteq r1, r1, lsl #2 + 521c: 00000000 andeq r0, r0, r0 + 5220: 445c3a43 ldrbmi r3, [ip], #-2627 + 5224: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5228: 73746e65 cmnvc r4, #1616 ; 0x650 + 522c: 646e6120 strbtvs r6, [lr], #-288 + 5230: 74655320 strbtvc r5, [r5], #-800 + 5234: 676e6974 undefined + 5238: 616d5c73 smcvs 54723 + 523c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5240: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5244: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5248: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 524c: 775c7374 undefined + 5250: 6f632d73 svcvs 0x00632d73 + 5254: 6f72746e svcvs 0x0072746e + 5258: 65575c6c ldrbvs r5, [r7, #-3180] + 525c: 65687461 strbvs r7, [r8, #-1121]! + 5260: 74532072 ldrbvc r2, [r3], #-114 + 5264: 6f697461 svcvs 0x00697461 + 5268: 6f43206e svcvs 0x0043206e + 526c: 6f72746e svcvs 0x0072746e + 5270: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5274: 414d535c cmpmi sp, ip, asr r3 + 5278: 6f535c43 svcvs 0x00535c43 + 527c: 65637275 strbvs r7, [r3, #-629]! + 5280: 5700005c smlsdpl r0, ip, r0, r0 + 5284: 6c657269 sfmvs f7, 2, [r5], #-420 + 5288: 4c737365 ldclmi 3, cr7, [r3], #-404 + 528c: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 5290: 746d676e strbtvc r6, [sp], #-1902 + 5294: 0100632e tsteq r0, lr, lsr #6 + 5298: cbf798a6 blgt ffdeb538 + 529c: 0001d604 andeq sp, r1, r4, lsl #12 + 52a0: 64020500 strvs r0, [r2], #-1280 + 52a4: 0500403a streq r4, [r0, #-58] + 52a8: 01840301 orreq r0, r4, r1, lsl #6 + 52ac: 1103050e tstne r3, lr, lsl #10 + 52b0: 051a0505 ldreq r0, [sl, #-1285] + 52b4: 15291706 strne r1, [r9, #-1798]! + 52b8: 00010100 andeq r0, r1, r0, lsl #2 + 52bc: 00000022 andeq r0, r0, r2, lsr #32 + 52c0: 00100002 andseq r0, r0, r2 + 52c4: 01020000 tsteq r2, r0 + 52c8: 000a0500 andeq r0, sl, r0, lsl #10 + 52cc: 01010101 tsteq r1, r1, lsl #2 + 52d0: 00000000 andeq r0, r0, r0 + 52d4: 05000000 streq r0, [r0] + 52d8: 403a8002 eorsmi r8, sl, r2 + 52dc: 00020200 andeq r0, r2, r0, lsl #4 + 52e0: 00000101 andeq r0, r0, r1, lsl #2 + 52e4: 00000022 andeq r0, r0, r2, lsr #32 + 52e8: 00100002 andseq r0, r0, r2 + 52ec: 01040000 tsteq r4, r0 + 52f0: 000a0500 andeq r0, sl, r0, lsl #10 + 52f4: 01010101 tsteq r1, r1, lsl #2 + 52f8: 00000000 andeq r0, r0, r0 + 52fc: 05000000 streq r0, [r0] + 5300: 403a8402 eorsmi r8, sl, r2, lsl #8 + 5304: 00020200 andeq r0, r2, r0, lsl #4 + 5308: 00000101 andeq r0, r0, r1, lsl #2 + 530c: 000000b0 strheq r0, [r0], -r0 + 5310: 008e0002 addeq r0, lr, r2 + 5314: 01020000 tsteq r2, r0 + 5318: 000a0500 andeq r0, sl, r0, lsl #10 + 531c: 01010101 tsteq r1, r1, lsl #2 + 5320: 00000000 andeq r0, r0, r0 + 5324: 445c3a43 ldrbmi r3, [ip], #-2627 + 5328: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 532c: 73746e65 cmnvc r4, #1616 ; 0x650 + 5330: 646e6120 strbtvs r6, [lr], #-288 + 5334: 74655320 strbtvc r5, [r5], #-800 + 5338: 676e6974 undefined + 533c: 616d5c73 smcvs 54723 + 5340: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5344: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5348: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 534c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5350: 775c7374 undefined + 5354: 6f632d73 svcvs 0x00632d73 + 5358: 6f72746e svcvs 0x0072746e + 535c: 65575c6c ldrbvs r5, [r7, #-3180] + 5360: 65687461 strbvs r7, [r8, #-1121]! + 5364: 74532072 ldrbvc r2, [r3], #-114 + 5368: 6f697461 svcvs 0x00697461 + 536c: 6f43206e svcvs 0x0043206e + 5370: 6f72746e svcvs 0x0072746e + 5374: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5378: 414d535c cmpmi sp, ip, asr r3 + 537c: 6f535c43 svcvs 0x00535c43 + 5380: 65637275 strbvs r7, [r3, #-629]! + 5384: 5700005c smlsdpl r0, ip, r0, r0 + 5388: 6c657269 sfmvs f7, 2, [r5], #-420 + 538c: 4c737365 ldclmi 3, cr7, [r3], #-404 + 5390: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 5394: 746d676e strbtvc r6, [sp], #-1902 + 5398: 0100632e tsteq r0, lr, lsr #6 + 539c: cbf798a6 blgt ffdeb63c + 53a0: 0001d604 andeq sp, r1, r4, lsl #12 + 53a4: 8e020500 cfsh32hi mvfx0, mvfx2, #0 + 53a8: 0500403a streq r4, [r0, #-58] + 53ac: 01ad0301 undefined instruction 0x01ad0301 + 53b0: 1103050e tstne r3, lr, lsl #10 + 53b4: 17150505 ldrne r0, [r5, -r5, lsl #10] + 53b8: 021b0305 andseq r0, fp, #335544320 ; 0x14000000 + 53bc: 01010003 tsteq r1, r3 + 53c0: 0000018a andeq r0, r0, sl, lsl #3 + 53c4: 01840002 orreq r0, r4, r2 + 53c8: 01010000 tsteq r1, r0 + 53cc: 000a0500 andeq r0, sl, r0, lsl #10 + 53d0: 01010101 tsteq r1, r1, lsl #2 + 53d4: 00000000 andeq r0, r0, r0 + 53d8: 445c3a43 ldrbmi r3, [ip], #-2627 + 53dc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 53e0: 73746e65 cmnvc r4, #1616 ; 0x650 + 53e4: 646e6120 strbtvs r6, [lr], #-288 + 53e8: 74655320 strbtvc r5, [r5], #-800 + 53ec: 676e6974 undefined + 53f0: 616d5c73 smcvs 54723 + 53f4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 53f8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 53fc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5400: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5404: 775c7374 undefined + 5408: 6f632d73 svcvs 0x00632d73 + 540c: 6f72746e svcvs 0x0072746e + 5410: 65575c6c ldrbvs r5, [r7, #-3180] + 5414: 65687461 strbvs r7, [r8, #-1121]! + 5418: 74532072 ldrbvc r2, [r3], #-114 + 541c: 6f697461 svcvs 0x00697461 + 5420: 6f43206e svcvs 0x0043206e + 5424: 6f72746e svcvs 0x0072746e + 5428: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 542c: 4d4c505c stclmi 0, cr5, [ip, #-368] + 5430: 746e495c strbtvc r4, [lr], #-2396 + 5434: 61667265 cmnvs r6, r5, ror #4 + 5438: 005c6563 subseq r6, ip, r3, ror #10 + 543c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5440: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5444: 73746e65 cmnvc r4, #1616 ; 0x650 + 5448: 646e6120 strbtvs r6, [lr], #-288 + 544c: 74655320 strbtvc r5, [r5], #-800 + 5450: 676e6974 undefined + 5454: 616d5c73 smcvs 54723 + 5458: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 545c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5460: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5464: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5468: 775c7374 undefined + 546c: 6f632d73 svcvs 0x00632d73 + 5470: 6f72746e svcvs 0x0072746e + 5474: 65575c6c ldrbvs r5, [r7, #-3180] + 5478: 65687461 strbvs r7, [r8, #-1121]! + 547c: 74532072 ldrbvc r2, [r3], #-114 + 5480: 6f697461 svcvs 0x00697461 + 5484: 6f43206e svcvs 0x0043206e + 5488: 6f72746e svcvs 0x0072746e + 548c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5490: 414d535c cmpmi sp, ip, asr r3 + 5494: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 5498: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 549c: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 54a0: 66726574 undefined + 54a4: 5c656361 stclpl 3, cr6, [r5], #-388 + 54a8: 72646867 rsbvc r6, r4, #6750208 ; 0x670000 + 54ac: 3a43005c bcc 10c5624 + 54b0: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 54b4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 54b8: 61207374 teqvs r0, r4, ror r3 + 54bc: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 54c0: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 54c4: 5c73676e ldclpl 7, cr6, [r3], #-440 + 54c8: 766c616d strbtvc r6, [ip], -sp, ror #2 + 54cc: 5c617269 sfmpl f7, 2, [r1], #-420 + 54d0: 4420794d strtmi r7, [r0], #-2381 + 54d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 54d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 54dc: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 54e0: 746e6f63 strbtvc r6, [lr], #-3939 + 54e4: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 54e8: 74616557 strbtvc r6, [r1], #-1367 + 54ec: 20726568 rsbscs r6, r2, r8, ror #10 + 54f0: 74617453 strbtvc r7, [r1], #-1107 + 54f4: 206e6f69 rsbcs r6, lr, r9, ror #30 + 54f8: 746e6f43 strbtvc r6, [lr], #-3907 + 54fc: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 5500: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 5504: 5c43414d stfple f4, [r3], {77} + 5508: 76697244 strbtvc r7, [r9], -r4, asr #4 + 550c: 5c737265 lfmpl f7, 2, [r3], #-404 + 5510: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 5514: 005c6563 subseq r6, ip, r3, ror #10 + 5518: 626d4500 rsbvs r4, sp, #0 ; 0x0 + 551c: 65646465 strbvs r6, [r4, #-1125]! + 5520: 70795464 rsbsvc r5, r9, r4, ror #8 + 5524: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 5528: 9d9e0100 ldflss f0, [lr] + 552c: 7704c0d7 undefined + 5530: 6163616d cmnvs r3, sp, ror #2 + 5534: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 5538: c49dadc2 ldrgt sl, [sp], #3522 + 553c: 6d038c04 stcvs 12, cr8, [r3, #-16] + 5540: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} + 5544: a8030063 stmdage r3, {r0, r1, r5, r6} + 5548: 04c5d0be strbeq sp, [r5], #190 + 554c: 00000043 andeq r0, r0, r3, asr #32 + 5550: 000000ae andeq r0, r0, lr, lsr #1 + 5554: 00880002 addeq r0, r8, r2 + 5558: 01020000 tsteq r2, r0 + 555c: 000a0500 andeq r0, sl, r0, lsl #10 + 5560: 01010101 tsteq r1, r1, lsl #2 + 5564: 00000000 andeq r0, r0, r0 + 5568: 445c3a43 ldrbmi r3, [ip], #-2627 + 556c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5570: 73746e65 cmnvc r4, #1616 ; 0x650 + 5574: 646e6120 strbtvs r6, [lr], #-288 + 5578: 74655320 strbtvc r5, [r5], #-800 + 557c: 676e6974 undefined + 5580: 616d5c73 smcvs 54723 + 5584: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5588: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 558c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5590: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5594: 775c7374 undefined + 5598: 6f632d73 svcvs 0x00632d73 + 559c: 6f72746e svcvs 0x0072746e + 55a0: 65575c6c ldrbvs r5, [r7, #-3180] + 55a4: 65687461 strbvs r7, [r8, #-1121]! + 55a8: 74532072 ldrbvc r2, [r3], #-114 + 55ac: 6f697461 svcvs 0x00697461 + 55b0: 6f43206e svcvs 0x0043206e + 55b4: 6f72746e svcvs 0x0072746e + 55b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 55bc: 414d535c cmpmi sp, ip, asr r3 + 55c0: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 55c4: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 55c8: 6f535c73 svcvs 0x00535c73 + 55cc: 65637275 strbvs r7, [r3, #-629]! + 55d0: 6d00005c stcvs 0, cr0, [r0, #-368] + 55d4: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} + 55d8: a8010063 stmdage r1, {r0, r1, r5, r6} + 55dc: 04c5d0be strbeq sp, [r5], #190 + 55e0: 05000043 streq r0, [r0, #-67] + 55e4: 403e7002 eorsmi r7, lr, r2 + 55e8: 03010500 movweq r0, #5376 ; 0x1500 + 55ec: 03050e32 movweq r0, #24114 ; 0x5e32 + 55f0: 2105050c tstcs r5, ip, lsl #10 + 55f4: 05160905 ldreq r0, [r6, #-2309] + 55f8: 01051c03 tsteq r5, r3, lsl #24 + 55fc: 0008021a andeq r0, r8, sl, lsl r2 + 5600: 00000101 andeq r0, r0, r1, lsl #2 + 5604: 000008cf andeq r0, r0, pc, asr #17 + 5608: 08c90002 stmiaeq r9, {r1}^ + 560c: 01010000 tsteq r1, r0 + 5610: 000a0500 andeq r0, sl, r0, lsl #10 + 5614: 01010101 tsteq r1, r1, lsl #2 + 5618: 00000000 andeq r0, r0, r0 + 561c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5620: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5624: 73746e65 cmnvc r4, #1616 ; 0x650 + 5628: 646e6120 strbtvs r6, [lr], #-288 + 562c: 74655320 strbtvc r5, [r5], #-800 + 5630: 676e6974 undefined + 5634: 616d5c73 smcvs 54723 + 5638: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 563c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5640: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5644: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5648: 775c7374 undefined + 564c: 6f632d73 svcvs 0x00632d73 + 5650: 6f72746e svcvs 0x0072746e + 5654: 65575c6c ldrbvs r5, [r7, #-3180] + 5658: 65687461 strbvs r7, [r8, #-1121]! + 565c: 74532072 ldrbvc r2, [r3], #-114 + 5660: 6f697461 svcvs 0x00697461 + 5664: 6f43206e svcvs 0x0043206e + 5668: 6f72746e svcvs 0x0072746e + 566c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5670: 7070415c rsbsvc r4, r0, ip, asr r1 + 5674: 6163696c cmnvs r3, ip, ror #18 + 5678: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 567c: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} + 5680: 75676966 strbvc r6, [r7, #-2406]! + 5684: 005c6572 subseq r6, ip, r2, ror r5 + 5688: 445c3a43 ldrbmi r3, [ip], #-2627 + 568c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5690: 73746e65 cmnvc r4, #1616 ; 0x650 + 5694: 646e6120 strbtvs r6, [lr], #-288 + 5698: 74655320 strbtvc r5, [r5], #-800 + 569c: 676e6974 undefined + 56a0: 616d5c73 smcvs 54723 + 56a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 56a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 56ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 56b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 56b4: 775c7374 undefined + 56b8: 6f632d73 svcvs 0x00632d73 + 56bc: 6f72746e svcvs 0x0072746e + 56c0: 65575c6c ldrbvs r5, [r7, #-3180] + 56c4: 65687461 strbvs r7, [r8, #-1121]! + 56c8: 74532072 ldrbvc r2, [r3], #-114 + 56cc: 6f697461 svcvs 0x00697461 + 56d0: 6f43206e svcvs 0x0043206e + 56d4: 6f72746e svcvs 0x0072746e + 56d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 56dc: 7070415c rsbsvc r4, r0, ip, asr r1 + 56e0: 6163696c cmnvs r3, ip, ror #18 + 56e4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 56e8: 61744f5c cmnvs r4, ip, asr pc + 56ec: 43005c70 movwmi r5, #3184 ; 0xc70 + 56f0: 6f445c3a svcvs 0x00445c3a + 56f4: 656d7563 strbvs r7, [sp, #-1379]! + 56f8: 2073746e rsbscs r7, r3, lr, ror #8 + 56fc: 20646e61 rsbcs r6, r4, r1, ror #28 + 5700: 74746553 ldrbtvc r6, [r4], #-1363 + 5704: 73676e69 cmnvc r7, #1680 ; 0x690 + 5708: 6c616d5c stclvs 13, cr6, [r1], #-368 + 570c: 61726976 cmnvs r2, r6, ror r9 + 5710: 20794d5c rsbscs r4, r9, ip, asr sp + 5714: 75636f44 strbvc r6, [r3, #-3908]! + 5718: 746e656d strbtvc r6, [lr], #-1389 + 571c: 73775c73 cmnvc r7, #29440 ; 0x7300 + 5720: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 5724: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5728: 6165575c cmnvs r5, ip, asr r7 + 572c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 5730: 61745320 cmnvs r4, r0, lsr #6 + 5734: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5738: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 573c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5740: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 5744: 6c707041 ldclvs 0, cr7, [r0], #-260 + 5748: 74616369 strbtvc r6, [r1], #-873 + 574c: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 5750: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 5754: 005c6563 subseq r6, ip, r3, ror #10 + 5758: 445c3a43 ldrbmi r3, [ip], #-2627 + 575c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5760: 73746e65 cmnvc r4, #1616 ; 0x650 + 5764: 646e6120 strbtvs r6, [lr], #-288 + 5768: 74655320 strbtvc r5, [r5], #-800 + 576c: 676e6974 undefined + 5770: 616d5c73 smcvs 54723 + 5774: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5778: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 577c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5780: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5784: 775c7374 undefined + 5788: 6f632d73 svcvs 0x00632d73 + 578c: 6f72746e svcvs 0x0072746e + 5790: 65575c6c ldrbvs r5, [r7, #-3180] + 5794: 65687461 strbvs r7, [r8, #-1121]! + 5798: 74532072 ldrbvc r2, [r3], #-114 + 579c: 6f697461 svcvs 0x00697461 + 57a0: 6f43206e svcvs 0x0043206e + 57a4: 6f72746e svcvs 0x0072746e + 57a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 57ac: 7070415c rsbsvc r4, r0, ip, asr r1 + 57b0: 6163696c cmnvs r3, ip, ror #18 + 57b4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 57b8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 57bc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 57c0: 005c7365 subseq r7, ip, r5, ror #6 + 57c4: 445c3a43 ldrbmi r3, [ip], #-2627 + 57c8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 57cc: 73746e65 cmnvc r4, #1616 ; 0x650 + 57d0: 646e6120 strbtvs r6, [lr], #-288 + 57d4: 74655320 strbtvc r5, [r5], #-800 + 57d8: 676e6974 undefined + 57dc: 616d5c73 smcvs 54723 + 57e0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 57e4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 57e8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 57ec: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 57f0: 775c7374 undefined + 57f4: 6f632d73 svcvs 0x00632d73 + 57f8: 6f72746e svcvs 0x0072746e + 57fc: 65575c6c ldrbvs r5, [r7, #-3180] + 5800: 65687461 strbvs r7, [r8, #-1121]! + 5804: 74532072 ldrbvc r2, [r3], #-114 + 5808: 6f697461 svcvs 0x00697461 + 580c: 6f43206e svcvs 0x0043206e + 5810: 6f72746e svcvs 0x0072746e + 5814: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5818: 4d4c505c stclmi 0, cr5, [ip, #-368] + 581c: 746e495c strbtvc r4, [lr], #-2396 + 5820: 61667265 cmnvs r6, r5, ror #4 + 5824: 005c6563 subseq r6, ip, r3, ror #10 + 5828: 445c3a43 ldrbmi r3, [ip], #-2627 + 582c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5830: 73746e65 cmnvc r4, #1616 ; 0x650 + 5834: 646e6120 strbtvs r6, [lr], #-288 + 5838: 74655320 strbtvc r5, [r5], #-800 + 583c: 676e6974 undefined + 5840: 616d5c73 smcvs 54723 + 5844: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5848: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 584c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5850: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5854: 775c7374 undefined + 5858: 6f632d73 svcvs 0x00632d73 + 585c: 6f72746e svcvs 0x0072746e + 5860: 65575c6c ldrbvs r5, [r7, #-3180] + 5864: 65687461 strbvs r7, [r8, #-1121]! + 5868: 74532072 ldrbvc r2, [r3], #-114 + 586c: 6f697461 svcvs 0x00697461 + 5870: 6f43206e svcvs 0x0043206e + 5874: 6f72746e svcvs 0x0072746e + 5878: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 587c: 4d4c505c stclmi 0, cr5, [ip, #-368] + 5880: 42494c5c submi r4, r9, #23552 ; 0x5c00 + 5884: 65746e49 ldrbvs r6, [r4, #-3657]! + 5888: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 588c: 43005c65 movwmi r5, #3173 ; 0xc65 + 5890: 6f445c3a svcvs 0x00445c3a + 5894: 656d7563 strbvs r7, [sp, #-1379]! + 5898: 2073746e rsbscs r7, r3, lr, ror #8 + 589c: 20646e61 rsbcs r6, r4, r1, ror #28 + 58a0: 74746553 ldrbtvc r6, [r4], #-1363 + 58a4: 73676e69 cmnvc r7, #1680 ; 0x690 + 58a8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 58ac: 61726976 cmnvs r2, r6, ror r9 + 58b0: 20794d5c rsbscs r4, r9, ip, asr sp + 58b4: 75636f44 strbvc r6, [r3, #-3908]! + 58b8: 746e656d strbtvc r6, [lr], #-1389 + 58bc: 73775c73 cmnvc r7, #29440 ; 0x7300 + 58c0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 58c4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 58c8: 6165575c cmnvs r5, ip, asr r7 + 58cc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 58d0: 61745320 cmnvs r4, r0, lsr #6 + 58d4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 58d8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 58dc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 58e0: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 58e4: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 58e8: 4962694c stmdbmi r2!, {r2, r3, r6, r8, fp, sp, lr}^ + 58ec: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 58f0: 65636166 strbvs r6, [r3, #-358]! + 58f4: 3a43005c bcc 10c5a6c + 58f8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 58fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5900: 61207374 teqvs r0, r4, ror r3 + 5904: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 5908: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 590c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 5910: 766c616d strbtvc r6, [ip], -sp, ror #2 + 5914: 5c617269 sfmpl f7, 2, [r1], #-420 + 5918: 4420794d strtmi r7, [r0], #-2381 + 591c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5920: 73746e65 cmnvc r4, #1616 ; 0x650 + 5924: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 5928: 746e6f63 strbtvc r6, [lr], #-3939 + 592c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 5930: 74616557 strbtvc r6, [r1], #-1367 + 5934: 20726568 rsbscs r6, r2, r8, ror #10 + 5938: 74617453 strbtvc r7, [r1], #-1107 + 593c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 5940: 746e6f43 strbtvc r6, [lr], #-3907 + 5944: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 5948: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 594c: 5c43414d stfple f4, [r3], {77} + 5950: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 5954: 72756769 rsbsvc r6, r5, #27525120 ; 0x1a40000 + 5958: 43005c65 movwmi r5, #3173 ; 0xc65 + 595c: 6f445c3a svcvs 0x00445c3a + 5960: 656d7563 strbvs r7, [sp, #-1379]! + 5964: 2073746e rsbscs r7, r3, lr, ror #8 + 5968: 20646e61 rsbcs r6, r4, r1, ror #28 + 596c: 74746553 ldrbtvc r6, [r4], #-1363 + 5970: 73676e69 cmnvc r7, #1680 ; 0x690 + 5974: 6c616d5c stclvs 13, cr6, [r1], #-368 + 5978: 61726976 cmnvs r2, r6, ror r9 + 597c: 20794d5c rsbscs r4, r9, ip, asr sp + 5980: 75636f44 strbvc r6, [r3, #-3908]! + 5984: 746e656d strbtvc r6, [lr], #-1389 + 5988: 73775c73 cmnvc r7, #29440 ; 0x7300 + 598c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 5990: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5994: 6165575c cmnvs r5, ip, asr r7 + 5998: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 599c: 61745320 cmnvs r4, r0, lsr #6 + 59a0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 59a4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 59a8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 59ac: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 59b0: 43414d53 movtmi r4, #7507 ; 0x1d53 + 59b4: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 59b8: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 59bc: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} + 59c0: 75676966 strbvc r6, [r7, #-2406]! + 59c4: 005c6572 subseq r6, ip, r2, ror r5 + 59c8: 445c3a43 ldrbmi r3, [ip], #-2627 + 59cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 59d0: 73746e65 cmnvc r4, #1616 ; 0x650 + 59d4: 646e6120 strbtvs r6, [lr], #-288 + 59d8: 74655320 strbtvc r5, [r5], #-800 + 59dc: 676e6974 undefined + 59e0: 616d5c73 smcvs 54723 + 59e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 59e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 59ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 59f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 59f4: 775c7374 undefined + 59f8: 6f632d73 svcvs 0x00632d73 + 59fc: 6f72746e svcvs 0x0072746e + 5a00: 65575c6c ldrbvs r5, [r7, #-3180] + 5a04: 65687461 strbvs r7, [r8, #-1121]! + 5a08: 74532072 ldrbvc r2, [r3], #-114 + 5a0c: 6f697461 svcvs 0x00697461 + 5a10: 6f43206e svcvs 0x0043206e + 5a14: 6f72746e svcvs 0x0072746e + 5a18: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5a1c: 414d535c cmpmi sp, ip, asr r3 + 5a20: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 5a24: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 5a28: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 5a2c: 66726574 undefined + 5a30: 5c656361 stclpl 3, cr6, [r5], #-388 + 5a34: 5c3a4300 ldcpl 3, cr4, [sl] + 5a38: 75636f44 strbvc r6, [r3, #-3908]! + 5a3c: 746e656d strbtvc r6, [lr], #-1389 + 5a40: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 5a44: 65532064 ldrbvs r2, [r3, #-100] + 5a48: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 5a4c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 5a50: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 5a54: 4d5c6172 ldfmie f6, [ip, #-456] + 5a58: 6f442079 svcvs 0x00442079 + 5a5c: 656d7563 strbvs r7, [sp, #-1379]! + 5a60: 5c73746e cfldrdpl mvd7, [r3], #-440 + 5a64: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 5a68: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 5a6c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 5a70: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 5a74: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 5a78: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 5a7c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 5a80: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 5a84: 656c6c6f strbvs r6, [ip, #-3183]! + 5a88: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 5a8c: 445c4341 ldrbmi r4, [ip], #-833 + 5a90: 65766972 ldrbvs r6, [r6, #-2418]! + 5a94: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 5a98: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 5a9c: 65636166 strbvs r6, [r3, #-358]! + 5aa0: 6468675c strbtvs r6, [r8], #-1884 + 5aa4: 43005c72 movwmi r5, #3186 ; 0xc72 + 5aa8: 6f445c3a svcvs 0x00445c3a + 5aac: 656d7563 strbvs r7, [sp, #-1379]! + 5ab0: 2073746e rsbscs r7, r3, lr, ror #8 + 5ab4: 20646e61 rsbcs r6, r4, r1, ror #28 + 5ab8: 74746553 ldrbtvc r6, [r4], #-1363 + 5abc: 73676e69 cmnvc r7, #1680 ; 0x690 + 5ac0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 5ac4: 61726976 cmnvs r2, r6, ror r9 + 5ac8: 20794d5c rsbscs r4, r9, ip, asr sp + 5acc: 75636f44 strbvc r6, [r3, #-3908]! + 5ad0: 746e656d strbtvc r6, [lr], #-1389 + 5ad4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 5ad8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 5adc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5ae0: 6165575c cmnvs r5, ip, asr r7 + 5ae4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 5ae8: 61745320 cmnvs r4, r0, lsr #6 + 5aec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5af0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 5af4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5af8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 5afc: 43414d53 movtmi r4, #7507 ; 0x1d53 + 5b00: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 5b04: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 5b08: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 5b0c: 65746e49 ldrbvs r6, [r4, #-3657]! + 5b10: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 5b14: 43005c65 movwmi r5, #3173 ; 0xc65 + 5b18: 6f445c3a svcvs 0x00445c3a + 5b1c: 656d7563 strbvs r7, [sp, #-1379]! + 5b20: 2073746e rsbscs r7, r3, lr, ror #8 + 5b24: 20646e61 rsbcs r6, r4, r1, ror #28 + 5b28: 74746553 ldrbtvc r6, [r4], #-1363 + 5b2c: 73676e69 cmnvc r7, #1680 ; 0x690 + 5b30: 6c616d5c stclvs 13, cr6, [r1], #-368 + 5b34: 61726976 cmnvs r2, r6, ror r9 + 5b38: 20794d5c rsbscs r4, r9, ip, asr sp + 5b3c: 75636f44 strbvc r6, [r3, #-3908]! + 5b40: 746e656d strbtvc r6, [lr], #-1389 + 5b44: 73775c73 cmnvc r7, #29440 ; 0x7300 + 5b48: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 5b4c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5b50: 6165575c cmnvs r5, ip, asr r7 + 5b54: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 5b58: 61745320 cmnvs r4, r0, lsr #6 + 5b5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5b60: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 5b64: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5b68: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 5b6c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 5b70: 746e495c strbtvc r4, [lr], #-2396 + 5b74: 61667265 cmnvs r6, r5, ror #4 + 5b78: 005c6563 subseq r6, ip, r3, ror #10 + 5b7c: 70706100 rsbsvc r6, r0, r0, lsl #2 + 5b80: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 5b84: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} + 5b88: c8010068 stmdagt r1, {r3, r5, r6} + 5b8c: 04c5d0be strbeq sp, [r5], #190 + 5b90: 61744f1c cmnvs r4, ip, lsl pc + 5b94: 00682e70 rsbeq r2, r8, r0, ror lr + 5b98: 88c29e02 stmiahi r2, {r1, r9, sl, fp, ip, pc}^ + 5b9c: 01a704c7 undefined instruction 0x01a704c7 + 5ba0: 74616577 strbtvc r6, [r1], #-1399 + 5ba4: 5f726568 svcpl 0x00726568 + 5ba8: 74617473 strbtvc r7, [r1], #-1139 + 5bac: 5f6e6f69 svcpl 0x006e6f69 + 5bb0: 746e6f63 strbtvc r6, [lr], #-3939 + 5bb4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 5bb8: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 5bbc: c9e20300 stmibgt r2!, {r8, r9}^ + 5bc0: be04cef2 mcrlt 14, 0, ip, cr4, cr2, {7} + 5bc4: 7369440a cmnvc r9, #167772160 ; 0xa000000 + 5bc8: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 5bcc: 0400682e streq r6, [r0], #-2094 + 5bd0: c5d0bea8 ldrbgt fp, [r0, #3752] + 5bd4: 4b02bd04 blmi b4fec + 5bd8: 6f627965 svcvs 0x00627965 + 5bdc: 2e647261 cdpcs 2, 6, cr7, cr4, cr1, {3} + 5be0: f7040068 undefined instruction 0xf7040068 + 5be4: 04ceedfb strbeq lr, [lr], #3579 + 5be8: 44434c7e strbmi r4, [r3], #-3198 + 5bec: 6e6f465f mcrvs 6, 3, r4, cr15, cr15, {2} + 5bf0: 00682e74 rsbeq r2, r8, r4, ror lr + 5bf4: d0bea804 adcsle sl, lr, r4, lsl #16 + 5bf8: 4c3504c5 cfldrsmi mvf0, [r5], #-788 + 5bfc: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 5c00: f7040068 undefined instruction 0xf7040068 + 5c04: 04ceedfb strbeq lr, [lr], #3579 + 5c08: 6f5302c4 svcvs 0x005302c4 + 5c0c: 2e646e75 mcrcs 14, 3, r6, cr4, cr5, {3} + 5c10: f7040068 undefined instruction 0xf7040068 + 5c14: 04ceedfb strbeq lr, [lr], #3579 + 5c18: 7261552f rsbvc r5, r1, #197132288 ; 0xbc00000 + 5c1c: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 5c20: 00682e6c rsbeq r2, r8, ip, ror #28 + 5c24: e6d7c004 ldrb ip, [r7], r4 + 5c28: 02b404c8 adcseq r0, r4, #-939524096 ; 0xc8000000 + 5c2c: 65626d45 strbvs r6, [r2, #-3397]! + 5c30: 64656464 strbtvs r6, [r5], #-1124 + 5c34: 65707954 ldrbvs r7, [r0, #-2388]! + 5c38: 00682e73 rsbeq r2, r8, r3, ror lr + 5c3c: d79d9e05 ldrle r9, [sp, r5, lsl #28] + 5c40: 507704c0 rsbspl r0, r7, r0, asr #9 + 5c44: 435f5257 cmpmi pc, #1879048197 ; 0x70000005 + 5c48: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 5c4c: 00682e67 rsbeq r2, r8, r7, ror #28 + 5c50: edfbf705 ldcl 7, cr15, [fp, #20]! + 5c54: 503104ce eorspl r0, r1, lr, asr #9 + 5c58: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 5c5c: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 5c60: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 5c64: a6050068 strge r0, [r5], -r8, rrx + 5c68: 04c5d0be strbeq sp, [r5], #190 + 5c6c: 5f46522e svcpl 0x0046522e + 5c70: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 5c74: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} + 5c78: fbf70500 blx ffdc7082 + 5c7c: 3204ceed andcc ip, r4, #3792 ; 0xed0 + 5c80: 54524155 ldrbpl r4, [r2], #-341 + 5c84: 746e495f strbtvc r4, [lr], #-2399 + 5c88: 61667265 cmnvs r6, r5, ror #4 + 5c8c: 682e6563 stmdavs lr!, {r0, r1, r5, r6, r8, sl, sp, lr} + 5c90: a3d70500 bicsge r0, r7, #0 ; 0x0 + 5c94: 7f04ceee svcvc 0x0004ceee + 5c98: 5f4d5243 svcpl 0x004d5243 + 5c9c: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 5ca0: 0600682e streq r6, [r0], -lr, lsr #16 + 5ca4: c0d78ff8 ldrshgt r8, [r7], #248 + 5ca8: 43028104 movwmi r8, #8452 ; 0x2104 + 5cac: 682e6d72 stmdavs lr!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} + 5cb0: 94f20600 ldrbtls r0, [r2], #1536 + 5cb4: cb04c0d7 blgt 136018 + 5cb8: 616c5005 cmnvs ip, r5 + 5cbc: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 + 5cc0: 00682e6d rsbeq r2, r8, sp, ror #28 + 5cc4: d794f206 ldrle pc, [r4, r6, lsl #4] + 5cc8: 03be04c0 undefined instruction 0x03be04c0 + 5ccc: 5f697353 svcpl 0x00697353 + 5cd0: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 5cd4: 0600682e streq r6, [r0], -lr, lsr #16 + 5cd8: ba9196cc blt fe46b810 + 5cdc: 4101c504 tstmi r1, r4, lsl #10 + 5ce0: 495f4344 ldmdbmi pc, {r2, r6, r8, r9, lr}^ + 5ce4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 5ce8: 65636166 strbvs r6, [r3, #-358]! + 5cec: 0700682e streq r6, [r0, -lr, lsr #16] + 5cf0: c0d68482 sbcsgt r8, r6, r2, lsl #9 + 5cf4: 4703a604 strmi sl, [r3, -r4, lsl #12] + 5cf8: 5f4f4950 svcpl 0x004f4950 + 5cfc: 65746e49 ldrbvs r6, [r4, #-3657]! + 5d00: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 5d04: 00682e65 rsbeq r2, r8, r5, ror #28 + 5d08: d78ff807 strle pc, [pc, r7, lsl #16] + 5d0c: 069e04c0 ldreq r0, [lr], r0, asr #9 + 5d10: 5f435449 svcpl 0x00435449 + 5d14: 65746e49 ldrbvs r6, [r4, #-3657]! + 5d18: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 5d1c: 00682e65 rsbeq r2, r8, r5, ror #28 + 5d20: d78ff807 strle pc, [pc, r7, lsl #16] + 5d24: 02c404c0 sbceq r0, r4, #-1073741824 ; 0xc0000000 + 5d28: 65746e49 ldrbvs r6, [r4, #-3657]! + 5d2c: 70757272 rsbsvc r7, r5, r2, ror r2 + 5d30: 00682e74 rsbeq r2, r8, r4, ror lr + 5d34: d794f207 ldrle pc, [r4, r7, lsl #4] + 5d38: 4e1d04c0 cfmv64ami mvdx0, mvax13 + 5d3c: 682e4d56 stmdavs lr!, {r1, r2, r4, r6, r8, sl, fp, lr} + 5d40: 94f20700 ldrbtls r0, [r2], #1792 + 5d44: e504c0d7 str ip, [r4, #-215] + 5d48: 6d695401 cfstrdvs mvd5, [r9, #-4]! + 5d4c: 682e7265 stmdavs lr!, {r0, r2, r5, r6, r9, ip, sp, lr} + 5d50: 94f20700 ldrbtls r0, [r2], #1792 + 5d54: a404c0d7 strge ip, [r4], #-215 + 5d58: 72615504 rsbvc r5, r1, #16777216 ; 0x1000000 + 5d5c: 776f4c74 undefined + 5d60: 6576654c ldrbvs r6, [r6, #-1356]! + 5d64: 00682e6c rsbeq r2, r8, ip, ror #28 + 5d68: d794f207 ldrle pc, [r4, r7, lsl #4] + 5d6c: 04fd04c0 ldrbteq r0, [sp], #1216 + 5d70: 6974706f ldmdbvs r4!, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ + 5d74: 5f736e6f svcpl 0x00736e6f + 5d78: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 5d7c: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} + 5d80: 8e8e0800 cdphi 8, 8, cr0, cr14, cr0, {0} + 5d84: 1f04c1d5 svcne 0x0004c1d5 + 5d88: 75636573 strbvc r6, [r3, #-1395]! + 5d8c: 79746972 ldmdbvc r4!, {r1, r4, r5, r6, r8, fp, sp, lr}^ + 5d90: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 5d94: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} + 5d98: f8080068 undefined instruction 0xf8080068 + 5d9c: 04ceedfb strbeq lr, [lr], #3579 + 5da0: 616f6224 cmnvs pc, r4, lsr #4 + 5da4: 635f6472 cmpvs pc, #1912602624 ; 0x72000000 + 5da8: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 5dac: 00682e67 rsbeq r2, r8, r7, ror #28 + 5db0: edfbf709 ldcl 7, cr15, [fp, #36]! + 5db4: 443d04ce ldrtmi r0, [sp], #-1230 + 5db8: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + 5dbc: 0a00682e beq 1fe7c + 5dc0: c5d0bea8 ldrbgt fp, [r0, #3752] + 5dc4: 72461904 subvc r1, r6, #65536 ; 0x10000 + 5dc8: 65447165 strbvs r7, [r4, #-357] + 5dcc: 74655370 strbtvc r5, [r5], #-880 + 5dd0: 676e6974 undefined + 5dd4: 00682e73 rsbeq r2, r8, r3, ror lr + 5dd8: edfbf70a ldcl 7, cr15, [fp, #40]! + 5ddc: 4d3704ce cfldrsmi mvf0, [r7, #-824]! + 5de0: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ + 5de4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 5de8: 74707572 ldrbtvc r7, [r0], #-1394 + 5dec: 0a00682e beq 1feac + 5df0: c5d0bea8 ldrbgt fp, [r0, #3752] + 5df4: 616d5d04 cmnvs sp, r4, lsl #26 + 5df8: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} + 5dfc: adc20b00 vstrge d16, [r2] + 5e00: 8c04c49d cfstrshi mvf12, [r4], {157} + 5e04: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} + 5e08: 73656874 cmnvc r5, #7602176 ; 0x740000 + 5e0c: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 + 5e10: 636e695f cmnvs lr, #1556480 ; 0x17c000 + 5e14: 0c00682e stceq 8, cr6, [r0], {46} + 5e18: cc8199fa stcgt 9, cr9, [r1], {250} + 5e1c: 4701a004 strmi sl, [r1, -r4] + 5e20: 61626f6c cmnvs r2, ip, ror #30 + 5e24: 6665446c strbtvs r4, [r5], -ip, ror #8 + 5e28: 00682e73 rsbeq r2, r8, r3, ror lr + 5e2c: eea2ba0d cdp 10, 10, cr11, cr2, cr13, {0} + 5e30: 019104c5 orrseq r0, r1, r5, asr #9 + 5e34: 72444c48 subvc r4, r4, #18432 ; 0x4800 + 5e38: 00682e76 rsbeq r2, r8, r6, ror lr + 5e3c: eef5880d cdp 8, 15, cr8, cr5, cr13, {0} + 5e40: 019a04c1 orrseq r0, sl, r1, asr #9 + 5e44: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 5e48: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 5e4c: 6d656761 stclvs 7, cr6, [r5, #-388]! + 5e50: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 5e54: a60d0068 strge r0, [sp], -r8, rrx + 5e58: 04cbe6d8 strbeq lr, [fp], #1752 + 5e5c: 655303d1 ldrbvs r0, [r3, #-977] + 5e60: 69727563 ldmdbvs r2!, {r0, r1, r5, r6, r8, sl, ip, sp, lr}^ + 5e64: 6e4d7974 mcrvs 9, 2, r7, cr13, cr4, {3} + 5e68: 746e6d67 strbtvc r6, [lr], #-3431 + 5e6c: 0d00682e stceq 8, cr6, [r0, #-184] + 5e70: c0d68380 sbcsgt r8, r6, r0, lsl #7 + 5e74: 5401df04 strpl sp, [r1], #-3844 + 5e78: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5e7c: 76696563 strbtvc r6, [r9], -r3, ror #10 + 5e80: 6f437265 svcvs 0x00437265 + 5e84: 6769666e strbvs r6, [r9, -lr, ror #12]! + 5e88: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 5e8c: 682e746e stmdavs lr!, {r1, r2, r3, r5, r6, sl, ip, sp, lr} + 5e90: a0a20d00 adcge r0, r2, r0, lsl #26 + 5e94: e604c5ee str ip, [r4], -lr, ror #11 + 5e98: 61725401 cmnvs r2, r1, lsl #8 + 5e9c: 6563736e strbvs r7, [r3, #-878]! + 5ea0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 5ea4: 65776f50 ldrbvs r6, [r7, #-3920]! + 5ea8: 676e4d72 undefined + 5eac: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 5eb0: 960d0068 strls r0, [sp], -r8, rrx + 5eb4: 04c5faa9 strbeq pc, [r5], #2729 + 5eb8: 695701ca ldmdbvs r7, {r1, r3, r6, r7, r8}^ + 5ebc: 656c6572 strbvs r6, [ip, #-1394]! + 5ec0: 694c7373 stmdbvs ip, {r0, r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 5ec4: 6e4d6b6e fnmacdvs d22, d13, d30 + 5ec8: 2e746d67 cdpcs 13, 7, cr6, cr4, cr7, {3} + 5ecc: a60d0068 strge r0, [sp], -r8, rrx + 5ed0: 04cbf798 strbeq pc, [fp], #1944 + 5ed4: 00000297 muleq r0, r7, r2 + 5ed8: 000000bf strheq r0, [r0], -pc + 5edc: 009e0002 addseq r0, lr, r2 + 5ee0: 01020000 tsteq r2, r0 + 5ee4: 000a0500 andeq r0, sl, r0, lsl #10 + 5ee8: 01010101 tsteq r1, r1, lsl #2 + 5eec: 00000000 andeq r0, r0, r0 + 5ef0: 445c3a43 ldrbmi r3, [ip], #-2627 + 5ef4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5ef8: 73746e65 cmnvc r4, #1616 ; 0x650 + 5efc: 646e6120 strbtvs r6, [lr], #-288 + 5f00: 74655320 strbtvc r5, [r5], #-800 + 5f04: 676e6974 undefined + 5f08: 616d5c73 smcvs 54723 + 5f0c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5f10: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5f14: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5f18: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5f1c: 775c7374 undefined + 5f20: 6f632d73 svcvs 0x00632d73 + 5f24: 6f72746e svcvs 0x0072746e + 5f28: 65575c6c ldrbvs r5, [r7, #-3180] + 5f2c: 65687461 strbvs r7, [r8, #-1121]! + 5f30: 74532072 ldrbvc r2, [r3], #-114 + 5f34: 6f697461 svcvs 0x00697461 + 5f38: 6f43206e svcvs 0x0043206e + 5f3c: 6f72746e svcvs 0x0072746e + 5f40: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5f44: 7070415c rsbsvc r4, r0, ip, asr r1 + 5f48: 6163696c cmnvs r3, ip, ror #18 + 5f4c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5f50: 756f535c strbvc r5, [pc, #-860]! ; 5bfc + 5f54: 5c656372 stclpl 3, cr6, [r5], #-456 + 5f58: 65770000 ldrbvs r0, [r7]! + 5f5c: 65687461 strbvs r7, [r8, #-1121]! + 5f60: 74735f72 ldrbtvc r5, [r3], #-3954 + 5f64: 6f697461 svcvs 0x00697461 + 5f68: 6f635f6e svcvs 0x00635f6e + 5f6c: 6f72746e svcvs 0x0072746e + 5f70: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5f74: 0100632e tsteq r0, lr, lsr #6 + 5f78: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 5f7c: 000abe04 andeq fp, sl, r4, lsl #28 + 5f80: 60020500 andvs r0, r2, r0, lsl #10 + 5f84: 05004009 streq r4, [r0, #-9] + 5f88: 01d10301 bicseq r0, r1, r1, lsl #6 + 5f8c: 1105050e tstne r5, lr, lsl #10 + 5f90: 05151f24 ldreq r1, [r5, #-3876] + 5f94: 03021c01 movweq r1, #11265 ; 0x2c01 + 5f98: 00010100 andeq r0, r1, r0, lsl #2 + 5f9c: 000000b9 strheq r0, [r0], -r9 + 5fa0: 009e0002 addseq r0, lr, r2 + 5fa4: 01020000 tsteq r2, r0 + 5fa8: 000a0500 andeq r0, sl, r0, lsl #10 + 5fac: 01010101 tsteq r1, r1, lsl #2 + 5fb0: 00000000 andeq r0, r0, r0 + 5fb4: 445c3a43 ldrbmi r3, [ip], #-2627 + 5fb8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5fbc: 73746e65 cmnvc r4, #1616 ; 0x650 + 5fc0: 646e6120 strbtvs r6, [lr], #-288 + 5fc4: 74655320 strbtvc r5, [r5], #-800 + 5fc8: 676e6974 undefined + 5fcc: 616d5c73 smcvs 54723 + 5fd0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5fd4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5fd8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5fdc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5fe0: 775c7374 undefined + 5fe4: 6f632d73 svcvs 0x00632d73 + 5fe8: 6f72746e svcvs 0x0072746e + 5fec: 65575c6c ldrbvs r5, [r7, #-3180] + 5ff0: 65687461 strbvs r7, [r8, #-1121]! + 5ff4: 74532072 ldrbvc r2, [r3], #-114 + 5ff8: 6f697461 svcvs 0x00697461 + 5ffc: 6f43206e svcvs 0x0043206e + 6000: 6f72746e svcvs 0x0072746e + 6004: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6008: 7070415c rsbsvc r4, r0, ip, asr r1 + 600c: 6163696c cmnvs r3, ip, ror #18 + 6010: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6014: 756f535c strbvc r5, [pc, #-860]! ; 5cc0 + 6018: 5c656372 stclpl 3, cr6, [r5], #-456 + 601c: 65770000 ldrbvs r0, [r7]! + 6020: 65687461 strbvs r7, [r8, #-1121]! + 6024: 74735f72 ldrbtvc r5, [r3], #-3954 + 6028: 6f697461 svcvs 0x00697461 + 602c: 6f635f6e svcvs 0x00635f6e + 6030: 6f72746e svcvs 0x0072746e + 6034: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6038: 0100632e tsteq r0, lr, lsr #6 + 603c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6040: 000abe04 andeq fp, sl, r4, lsl #28 + 6044: 84020500 strhi r0, [r2], #-1280 + 6048: 05004009 streq r4, [r0, #-9] + 604c: 01dc0301 bicseq r0, ip, r1, lsl #6 + 6050: 1509050e strne r0, [r9, #-1294] + 6054: 01000202 tsteq r0, r2, lsl #4 + 6058: 00000001 andeq r0, r0, r1 + 605c: 000000bb strheq r0, [r0], -fp + 6060: 009e0002 addseq r0, lr, r2 + 6064: 01020000 tsteq r2, r0 + 6068: 000a0500 andeq r0, sl, r0, lsl #10 + 606c: 01010101 tsteq r1, r1, lsl #2 + 6070: 00000000 andeq r0, r0, r0 + 6074: 445c3a43 ldrbmi r3, [ip], #-2627 + 6078: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 607c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6080: 646e6120 strbtvs r6, [lr], #-288 + 6084: 74655320 strbtvc r5, [r5], #-800 + 6088: 676e6974 undefined + 608c: 616d5c73 smcvs 54723 + 6090: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6094: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6098: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 609c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 60a0: 775c7374 undefined + 60a4: 6f632d73 svcvs 0x00632d73 + 60a8: 6f72746e svcvs 0x0072746e + 60ac: 65575c6c ldrbvs r5, [r7, #-3180] + 60b0: 65687461 strbvs r7, [r8, #-1121]! + 60b4: 74532072 ldrbvc r2, [r3], #-114 + 60b8: 6f697461 svcvs 0x00697461 + 60bc: 6f43206e svcvs 0x0043206e + 60c0: 6f72746e svcvs 0x0072746e + 60c4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 60c8: 7070415c rsbsvc r4, r0, ip, asr r1 + 60cc: 6163696c cmnvs r3, ip, ror #18 + 60d0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 60d4: 756f535c strbvc r5, [pc, #-860]! ; 5d80 + 60d8: 5c656372 stclpl 3, cr6, [r5], #-456 + 60dc: 65770000 ldrbvs r0, [r7]! + 60e0: 65687461 strbvs r7, [r8, #-1121]! + 60e4: 74735f72 ldrbtvc r5, [r3], #-3954 + 60e8: 6f697461 svcvs 0x00697461 + 60ec: 6f635f6e svcvs 0x00635f6e + 60f0: 6f72746e svcvs 0x0072746e + 60f4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 60f8: 0100632e tsteq r0, lr, lsr #6 + 60fc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6100: 000abe04 andeq fp, sl, r4, lsl #28 + 6104: 8c020500 cfstr32hi mvfx0, [r2], {0} + 6108: 05004009 streq r4, [r0, #-9] + 610c: 01e20301 mvneq r0, r1, lsl #6 + 6110: 1509050e strne r0, [r9, #-1294] + 6114: 0402241a streq r2, [r2], #-1050 + 6118: 00010100 andeq r0, r1, r0, lsl #2 + 611c: 000000c1 andeq r0, r0, r1, asr #1 + 6120: 009e0002 addseq r0, lr, r2 + 6124: 01020000 tsteq r2, r0 + 6128: 000a0500 andeq r0, sl, r0, lsl #10 + 612c: 01010101 tsteq r1, r1, lsl #2 + 6130: 00000000 andeq r0, r0, r0 + 6134: 445c3a43 ldrbmi r3, [ip], #-2627 + 6138: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 613c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6140: 646e6120 strbtvs r6, [lr], #-288 + 6144: 74655320 strbtvc r5, [r5], #-800 + 6148: 676e6974 undefined + 614c: 616d5c73 smcvs 54723 + 6150: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6154: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6158: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 615c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6160: 775c7374 undefined + 6164: 6f632d73 svcvs 0x00632d73 + 6168: 6f72746e svcvs 0x0072746e + 616c: 65575c6c ldrbvs r5, [r7, #-3180] + 6170: 65687461 strbvs r7, [r8, #-1121]! + 6174: 74532072 ldrbvc r2, [r3], #-114 + 6178: 6f697461 svcvs 0x00697461 + 617c: 6f43206e svcvs 0x0043206e + 6180: 6f72746e svcvs 0x0072746e + 6184: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6188: 7070415c rsbsvc r4, r0, ip, asr r1 + 618c: 6163696c cmnvs r3, ip, ror #18 + 6190: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6194: 756f535c strbvc r5, [pc, #-860]! ; 5e40 + 6198: 5c656372 stclpl 3, cr6, [r5], #-456 + 619c: 65770000 ldrbvs r0, [r7]! + 61a0: 65687461 strbvs r7, [r8, #-1121]! + 61a4: 74735f72 ldrbtvc r5, [r3], #-3954 + 61a8: 6f697461 svcvs 0x00697461 + 61ac: 6f635f6e svcvs 0x00635f6e + 61b0: 6f72746e svcvs 0x0072746e + 61b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 61b8: 0100632e tsteq r0, lr, lsr #6 + 61bc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 61c0: 000abe04 andeq fp, sl, r4, lsl #28 + 61c4: a8020500 stmdage r2, {r8, sl} + 61c8: 05004009 streq r4, [r0, #-9] + 61cc: 01e60309 mvneq r0, r9, lsl #6 + 61d0: 0a780318 beq 1e06e38 + 61d4: 05030105 streq r0, [r3, #-261] + 61d8: 0a780322 beq 1e06e68 + 61dc: 01000402 tsteq r0, r2, lsl #8 + 61e0: 00000001 andeq r0, r0, r1 + 61e4: 000000da ldrdeq r0, [r0], -sl + 61e8: 009e0002 addseq r0, lr, r2 + 61ec: 01020000 tsteq r2, r0 + 61f0: 000a0500 andeq r0, sl, r0, lsl #10 + 61f4: 01010101 tsteq r1, r1, lsl #2 + 61f8: 00000000 andeq r0, r0, r0 + 61fc: 445c3a43 ldrbmi r3, [ip], #-2627 + 6200: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6204: 73746e65 cmnvc r4, #1616 ; 0x650 + 6208: 646e6120 strbtvs r6, [lr], #-288 + 620c: 74655320 strbtvc r5, [r5], #-800 + 6210: 676e6974 undefined + 6214: 616d5c73 smcvs 54723 + 6218: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 621c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6220: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6224: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6228: 775c7374 undefined + 622c: 6f632d73 svcvs 0x00632d73 + 6230: 6f72746e svcvs 0x0072746e + 6234: 65575c6c ldrbvs r5, [r7, #-3180] + 6238: 65687461 strbvs r7, [r8, #-1121]! + 623c: 74532072 ldrbvc r2, [r3], #-114 + 6240: 6f697461 svcvs 0x00697461 + 6244: 6f43206e svcvs 0x0043206e + 6248: 6f72746e svcvs 0x0072746e + 624c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6250: 7070415c rsbsvc r4, r0, ip, asr r1 + 6254: 6163696c cmnvs r3, ip, ror #18 + 6258: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 625c: 756f535c strbvc r5, [pc, #-860]! ; 5f08 + 6260: 5c656372 stclpl 3, cr6, [r5], #-456 + 6264: 65770000 ldrbvs r0, [r7]! + 6268: 65687461 strbvs r7, [r8, #-1121]! + 626c: 74735f72 ldrbtvc r5, [r3], #-3954 + 6270: 6f697461 svcvs 0x00697461 + 6274: 6f635f6e svcvs 0x00635f6e + 6278: 6f72746e svcvs 0x0072746e + 627c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6280: 0100632e tsteq r0, lr, lsr #6 + 6284: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6288: 000abe04 andeq fp, sl, r4, lsl #28 + 628c: bc020500 cfstr32lt mvfx0, [r2], {0} + 6290: 05004009 streq r4, [r0, #-9] + 6294: 01ea032e mvneq r0, lr, lsr #6 + 6298: 1c1b050e cfldr32ne mvfx0, [fp], {14} + 629c: 051a1105 ldreq r1, [sl, #-261] + 62a0: 21052919 tstcs r5, r9, lsl r9 + 62a4: 2519051a ldrcs r0, [r9, #-1306] + 62a8: 2105241a tstcs r5, sl, lsl r4 + 62ac: 0326051f teqeq r6, #130023424 ; 0x7c00000 + 62b0: 1d051979 stcne 9, cr1, [r5, #-484] + 62b4: 03110519 tsteq r1, #104857600 ; 0x6400000 + 62b8: 03052205 movweq r2, #20997 ; 0x5205 + 62bc: 0009021a andeq r0, r9, sl, lsl r2 + 62c0: 00000101 andeq r0, r0, r1, lsl #2 + 62c4: 000000c7 andeq r0, r0, r7, asr #1 + 62c8: 009e0002 addseq r0, lr, r2 + 62cc: 01020000 tsteq r2, r0 + 62d0: 000a0500 andeq r0, sl, r0, lsl #10 + 62d4: 01010101 tsteq r1, r1, lsl #2 + 62d8: 00000000 andeq r0, r0, r0 + 62dc: 445c3a43 ldrbmi r3, [ip], #-2627 + 62e0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 62e4: 73746e65 cmnvc r4, #1616 ; 0x650 + 62e8: 646e6120 strbtvs r6, [lr], #-288 + 62ec: 74655320 strbtvc r5, [r5], #-800 + 62f0: 676e6974 undefined + 62f4: 616d5c73 smcvs 54723 + 62f8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 62fc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6300: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6304: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6308: 775c7374 undefined + 630c: 6f632d73 svcvs 0x00632d73 + 6310: 6f72746e svcvs 0x0072746e + 6314: 65575c6c ldrbvs r5, [r7, #-3180] + 6318: 65687461 strbvs r7, [r8, #-1121]! + 631c: 74532072 ldrbvc r2, [r3], #-114 + 6320: 6f697461 svcvs 0x00697461 + 6324: 6f43206e svcvs 0x0043206e + 6328: 6f72746e svcvs 0x0072746e + 632c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6330: 7070415c rsbsvc r4, r0, ip, asr r1 + 6334: 6163696c cmnvs r3, ip, ror #18 + 6338: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 633c: 756f535c strbvc r5, [pc, #-860]! ; 5fe8 + 6340: 5c656372 stclpl 3, cr6, [r5], #-456 + 6344: 65770000 ldrbvs r0, [r7]! + 6348: 65687461 strbvs r7, [r8, #-1121]! + 634c: 74735f72 ldrbtvc r5, [r3], #-3954 + 6350: 6f697461 svcvs 0x00697461 + 6354: 6f635f6e svcvs 0x00635f6e + 6358: 6f72746e svcvs 0x0072746e + 635c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6360: 0100632e tsteq r0, lr, lsr #6 + 6364: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6368: 000abe04 andeq fp, sl, r4, lsl #28 + 636c: 28020500 stmdacs r2, {r8, sl} + 6370: 0500400a streq r4, [r0, #-10] + 6374: 02870301 addeq r0, r7, #67108864 ; 0x4000000 + 6378: 0303050e movweq r0, #13582 ; 0x350e + 637c: 14191802 ldrne r1, [r9], #-2050 + 6380: 0b14140b bleq 50b3b4 + 6384: 050c0f19 streq r0, [ip, #-3865] + 6388: 07021804 streq r1, [r2, -r4, lsl #16] + 638c: 00010100 andeq r0, r1, r0, lsl #2 + 6390: 00000115 andeq r0, r0, r5, lsl r1 + 6394: 009e0002 addseq r0, lr, r2 + 6398: 01020000 tsteq r2, r0 + 639c: 000a0500 andeq r0, sl, r0, lsl #10 + 63a0: 01010101 tsteq r1, r1, lsl #2 + 63a4: 00000000 andeq r0, r0, r0 + 63a8: 445c3a43 ldrbmi r3, [ip], #-2627 + 63ac: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 63b0: 73746e65 cmnvc r4, #1616 ; 0x650 + 63b4: 646e6120 strbtvs r6, [lr], #-288 + 63b8: 74655320 strbtvc r5, [r5], #-800 + 63bc: 676e6974 undefined + 63c0: 616d5c73 smcvs 54723 + 63c4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 63c8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 63cc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 63d0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 63d4: 775c7374 undefined + 63d8: 6f632d73 svcvs 0x00632d73 + 63dc: 6f72746e svcvs 0x0072746e + 63e0: 65575c6c ldrbvs r5, [r7, #-3180] + 63e4: 65687461 strbvs r7, [r8, #-1121]! + 63e8: 74532072 ldrbvc r2, [r3], #-114 + 63ec: 6f697461 svcvs 0x00697461 + 63f0: 6f43206e svcvs 0x0043206e + 63f4: 6f72746e svcvs 0x0072746e + 63f8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 63fc: 7070415c rsbsvc r4, r0, ip, asr r1 + 6400: 6163696c cmnvs r3, ip, ror #18 + 6404: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6408: 756f535c strbvc r5, [pc, #-860]! ; 60b4 + 640c: 5c656372 stclpl 3, cr6, [r5], #-456 + 6410: 65770000 ldrbvs r0, [r7]! + 6414: 65687461 strbvs r7, [r8, #-1121]! + 6418: 74735f72 ldrbtvc r5, [r3], #-3954 + 641c: 6f697461 svcvs 0x00697461 + 6420: 6f635f6e svcvs 0x00635f6e + 6424: 6f72746e svcvs 0x0072746e + 6428: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 642c: 0100632e tsteq r0, lr, lsr #6 + 6430: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6434: 000abe04 andeq fp, sl, r4, lsl #28 + 6438: 58020500 stmdapl r2, {r8, sl} + 643c: 0500400a streq r4, [r0, #-10] + 6440: 02a70301 adceq r0, r7, #67108864 ; 0x4000000 + 6444: 1203050e andne r0, r3, #58720256 ; 0x3800000 + 6448: 140a0f19 strne r0, [sl], #-3865 + 644c: 150f140f strne r1, [pc, #-1039] ; 6045 + 6450: 1b1f1f16 blne 7ce0b0 + 6454: 1f1b1f1f svcne 0x001b1f1f + 6458: 1f1f1b1f svcne 0x001f1b1f + 645c: 1615201f undefined + 6460: 05292022 streq r2, [r9, #-34]! + 6464: 03051504 movweq r1, #21764 ; 0x5504 + 6468: 15291529 strne r1, [r9, #-1321]! + 646c: 2405051f strcs r0, [r5], #-1311 + 6470: 261f0305 ldrcs r0, [pc], -r5, lsl #6 + 6474: 02051515 andeq r1, r5, #88080384 ; 0x5400000 + 6478: 1f030516 svcne 0x00030516 + 647c: 04051f20 streq r1, [r5], #-3872 + 6480: 1f03051f svcne 0x0003051f + 6484: 1f1f1f1f svcne 0x001f1f1f + 6488: 051f0505 ldreq r0, [pc, #-1285] ; 5f8b + 648c: 1a211f03 bne 84e0a0 + 6490: 1617171b undefined + 6494: 27030317 smladcs r3, r7, r3, r0 + 6498: 1a171a1a bne 5ccd08 + 649c: 1f1f1f15 svcne 0x001f1f15 + 64a0: 1b010515 blne 478fc + 64a4: 01001f02 tsteq r0, r2, lsl #30 + 64a8: 00000001 andeq r0, r0, r1 + 64ac: 000000c2 andeq r0, r0, r2, asr #1 + 64b0: 009e0002 addseq r0, lr, r2 + 64b4: 01020000 tsteq r2, r0 + 64b8: 000a0500 andeq r0, sl, r0, lsl #10 + 64bc: 01010101 tsteq r1, r1, lsl #2 + 64c0: 00000000 andeq r0, r0, r0 + 64c4: 445c3a43 ldrbmi r3, [ip], #-2627 + 64c8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 64cc: 73746e65 cmnvc r4, #1616 ; 0x650 + 64d0: 646e6120 strbtvs r6, [lr], #-288 + 64d4: 74655320 strbtvc r5, [r5], #-800 + 64d8: 676e6974 undefined + 64dc: 616d5c73 smcvs 54723 + 64e0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 64e4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 64e8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 64ec: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 64f0: 775c7374 undefined + 64f4: 6f632d73 svcvs 0x00632d73 + 64f8: 6f72746e svcvs 0x0072746e + 64fc: 65575c6c ldrbvs r5, [r7, #-3180] + 6500: 65687461 strbvs r7, [r8, #-1121]! + 6504: 74532072 ldrbvc r2, [r3], #-114 + 6508: 6f697461 svcvs 0x00697461 + 650c: 6f43206e svcvs 0x0043206e + 6510: 6f72746e svcvs 0x0072746e + 6514: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6518: 7070415c rsbsvc r4, r0, ip, asr r1 + 651c: 6163696c cmnvs r3, ip, ror #18 + 6520: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6524: 756f535c strbvc r5, [pc, #-860]! ; 61d0 + 6528: 5c656372 stclpl 3, cr6, [r5], #-456 + 652c: 65770000 ldrbvs r0, [r7]! + 6530: 65687461 strbvs r7, [r8, #-1121]! + 6534: 74735f72 ldrbtvc r5, [r3], #-3954 + 6538: 6f697461 svcvs 0x00697461 + 653c: 6f635f6e svcvs 0x00635f6e + 6540: 6f72746e svcvs 0x0072746e + 6544: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6548: 0100632e tsteq r0, lr, lsr #6 + 654c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6550: 000abe04 andeq fp, sl, r4, lsl #28 + 6554: 50020500 andpl r0, r2, r0, lsl #10 + 6558: 0500400c streq r4, [r0, #-12] + 655c: 03920301 orrseq r0, r2, #67108864 ; 0x4000000 + 6560: 0b03050e bleq c79a0 + 6564: 1f2f0505 svcne 0x002f0505 + 6568: 02030105 andeq r0, r3, #1073741825 ; 0x40000001 + 656c: 0006021d andeq r0, r6, sp, lsl r2 + 6570: 00000101 andeq r0, r0, r1, lsl #2 + 6574: 0000013f andeq r0, r0, pc, lsr r1 + 6578: 009e0002 addseq r0, lr, r2 + 657c: 01020000 tsteq r2, r0 + 6580: 000a0500 andeq r0, sl, r0, lsl #10 + 6584: 01010101 tsteq r1, r1, lsl #2 + 6588: 00000000 andeq r0, r0, r0 + 658c: 445c3a43 ldrbmi r3, [ip], #-2627 + 6590: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6594: 73746e65 cmnvc r4, #1616 ; 0x650 + 6598: 646e6120 strbtvs r6, [lr], #-288 + 659c: 74655320 strbtvc r5, [r5], #-800 + 65a0: 676e6974 undefined + 65a4: 616d5c73 smcvs 54723 + 65a8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 65ac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 65b0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 65b4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 65b8: 775c7374 undefined + 65bc: 6f632d73 svcvs 0x00632d73 + 65c0: 6f72746e svcvs 0x0072746e + 65c4: 65575c6c ldrbvs r5, [r7, #-3180] + 65c8: 65687461 strbvs r7, [r8, #-1121]! + 65cc: 74532072 ldrbvc r2, [r3], #-114 + 65d0: 6f697461 svcvs 0x00697461 + 65d4: 6f43206e svcvs 0x0043206e + 65d8: 6f72746e svcvs 0x0072746e + 65dc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 65e0: 7070415c rsbsvc r4, r0, ip, asr r1 + 65e4: 6163696c cmnvs r3, ip, ror #18 + 65e8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 65ec: 756f535c strbvc r5, [pc, #-860]! ; 6298 + 65f0: 5c656372 stclpl 3, cr6, [r5], #-456 + 65f4: 65770000 ldrbvs r0, [r7]! + 65f8: 65687461 strbvs r7, [r8, #-1121]! + 65fc: 74735f72 ldrbtvc r5, [r3], #-3954 + 6600: 6f697461 svcvs 0x00697461 + 6604: 6f635f6e svcvs 0x00635f6e + 6608: 6f72746e svcvs 0x0072746e + 660c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6610: 0100632e tsteq r0, lr, lsr #6 + 6614: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6618: 000abe04 andeq fp, sl, r4, lsl #28 + 661c: 78020500 stmdavc r2, {r8, sl} + 6620: 0500400c streq r4, [r0, #-12] + 6624: 03a40301 undefined instruction 0x03a40301 + 6628: 1703050e strne r0, [r3, -lr, lsl #10] + 662c: 20050515 andcs r0, r5, r5, lsl r5 + 6630: 180a0315 stmdane sl, {r0, r2, r4, r8, r9} + 6634: 05200705 streq r0, [r0, #-1797]! + 6638: 1a152009 bne 54e664 + 663c: 05200b05 streq r0, [r0, #-2821]! + 6640: 22010305 andcs r0, r1, #335544320 ; 0x14000000 + 6644: 1a200705 bne 808260 + 6648: 16270403 strtne r0, [r7], -r3, lsl #8 + 664c: 1d050515 cfstr32ne mvfx0, [r5, #-84] + 6650: 1f1b0705 svcne 0x001b0705 + 6654: 181b0905 ldmdane fp, {r0, r2, r8, fp} + 6658: 1b160705 blne 588274 + 665c: 1d050515 cfstr32ne mvfx0, [r5, #-84] + 6660: 1a200705 bne 80827c + 6664: 181b0905 ldmdane fp, {r0, r2, r8, fp} + 6668: 15170705 ldrne r0, [r7, #-1797] + 666c: 051d0505 ldreq r0, [sp, #-1285] + 6670: 051f1b07 ldreq r1, [pc, #-2823] ; 5b71 + 6674: 05171b09 ldreq r1, [r7, #-2825] + 6678: 05051707 streq r1, [r5, #-1799] + 667c: 051d0103 ldreq r0, [sp, #-259] + 6680: 01034009 tsteq r3, r9 + 6684: 1a242e18 bne 911eec + 6688: 02031b1a andeq r1, r3, #26624 ; 0x6800 + 668c: 430b0531 movwmi r0, #46385 ; 0xb531 + 6690: 09051f15 stmdbeq r5, {r0, r2, r4, r8, r9, sl, fp, ip} + 6694: 05180303 ldreq r0, [r8, #-771] + 6698: 0905430b stmdbeq r5, {r0, r1, r3, r8, r9, lr} + 669c: 1b0b0516 blne 2c7afc + 66a0: 03090515 movweq r0, #38165 ; 0x9515 + 66a4: 0b051803 bleq 14c6b8 + 66a8: 0905153e stmdbeq r5, {r1, r2, r3, r4, r5, r8, sl, ip} + 66ac: 0301051b movweq r0, #5403 ; 0x151b + 66b0: 0902130b stmdbeq r2, {r0, r1, r3, r8, r9, ip} + 66b4: 00010100 andeq r0, r1, r0, lsl #2 + 66b8: 000000ba strheq r0, [r0], -sl + 66bc: 009e0002 addseq r0, lr, r2 + 66c0: 01020000 tsteq r2, r0 + 66c4: 000a0500 andeq r0, sl, r0, lsl #10 + 66c8: 01010101 tsteq r1, r1, lsl #2 + 66cc: 00000000 andeq r0, r0, r0 + 66d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 66d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 66d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 66dc: 646e6120 strbtvs r6, [lr], #-288 + 66e0: 74655320 strbtvc r5, [r5], #-800 + 66e4: 676e6974 undefined + 66e8: 616d5c73 smcvs 54723 + 66ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 66f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 66f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 66f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 66fc: 775c7374 undefined + 6700: 6f632d73 svcvs 0x00632d73 + 6704: 6f72746e svcvs 0x0072746e + 6708: 65575c6c ldrbvs r5, [r7, #-3180] + 670c: 65687461 strbvs r7, [r8, #-1121]! + 6710: 74532072 ldrbvc r2, [r3], #-114 + 6714: 6f697461 svcvs 0x00697461 + 6718: 6f43206e svcvs 0x0043206e + 671c: 6f72746e svcvs 0x0072746e + 6720: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6724: 7070415c rsbsvc r4, r0, ip, asr r1 + 6728: 6163696c cmnvs r3, ip, ror #18 + 672c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6730: 756f535c strbvc r5, [pc, #-860]! ; 63dc + 6734: 5c656372 stclpl 3, cr6, [r5], #-456 + 6738: 65770000 ldrbvs r0, [r7]! + 673c: 65687461 strbvs r7, [r8, #-1121]! + 6740: 74735f72 ldrbtvc r5, [r3], #-3954 + 6744: 6f697461 svcvs 0x00697461 + 6748: 6f635f6e svcvs 0x00635f6e + 674c: 6f72746e svcvs 0x0072746e + 6750: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6754: 0100632e tsteq r0, lr, lsr #6 + 6758: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 675c: 000abe04 andeq fp, sl, r4, lsl #28 + 6760: 24020500 strcs r0, [r2], #-1280 + 6764: 0500400e streq r4, [r0, #-14] + 6768: 04d60301 ldrbeq r0, [r6], #769 + 676c: 1003050e andne r0, r3, lr, lsl #10 + 6770: 0006021a andeq r0, r6, sl, lsl r2 + 6774: 00000101 andeq r0, r0, r1, lsl #2 + 6778: 000000ba strheq r0, [r0], -sl + 677c: 009e0002 addseq r0, lr, r2 + 6780: 01020000 tsteq r2, r0 + 6784: 000a0500 andeq r0, sl, r0, lsl #10 + 6788: 01010101 tsteq r1, r1, lsl #2 + 678c: 00000000 andeq r0, r0, r0 + 6790: 445c3a43 ldrbmi r3, [ip], #-2627 + 6794: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6798: 73746e65 cmnvc r4, #1616 ; 0x650 + 679c: 646e6120 strbtvs r6, [lr], #-288 + 67a0: 74655320 strbtvc r5, [r5], #-800 + 67a4: 676e6974 undefined + 67a8: 616d5c73 smcvs 54723 + 67ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 67b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 67b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 67b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 67bc: 775c7374 undefined + 67c0: 6f632d73 svcvs 0x00632d73 + 67c4: 6f72746e svcvs 0x0072746e + 67c8: 65575c6c ldrbvs r5, [r7, #-3180] + 67cc: 65687461 strbvs r7, [r8, #-1121]! + 67d0: 74532072 ldrbvc r2, [r3], #-114 + 67d4: 6f697461 svcvs 0x00697461 + 67d8: 6f43206e svcvs 0x0043206e + 67dc: 6f72746e svcvs 0x0072746e + 67e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 67e4: 7070415c rsbsvc r4, r0, ip, asr r1 + 67e8: 6163696c cmnvs r3, ip, ror #18 + 67ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 67f0: 756f535c strbvc r5, [pc, #-860]! ; 649c + 67f4: 5c656372 stclpl 3, cr6, [r5], #-456 + 67f8: 65770000 ldrbvs r0, [r7]! + 67fc: 65687461 strbvs r7, [r8, #-1121]! + 6800: 74735f72 ldrbtvc r5, [r3], #-3954 + 6804: 6f697461 svcvs 0x00697461 + 6808: 6f635f6e svcvs 0x00635f6e + 680c: 6f72746e svcvs 0x0072746e + 6810: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6814: 0100632e tsteq r0, lr, lsr #6 + 6818: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 681c: 000abe04 andeq fp, sl, r4, lsl #28 + 6820: 38020500 stmdacc r2, {r8, sl} + 6824: 0500400e streq r4, [r0, #-14] + 6828: 04e20301 strbteq r0, [r2], #769 + 682c: 1003050e andne r0, r3, lr, lsl #10 + 6830: 0004021a andeq r0, r4, sl, lsl r2 + 6834: 00000101 andeq r0, r0, r1, lsl #2 + 6838: 000000bf strheq r0, [r0], -pc + 683c: 009e0002 addseq r0, lr, r2 + 6840: 01020000 tsteq r2, r0 + 6844: 000a0500 andeq r0, sl, r0, lsl #10 + 6848: 01010101 tsteq r1, r1, lsl #2 + 684c: 00000000 andeq r0, r0, r0 + 6850: 445c3a43 ldrbmi r3, [ip], #-2627 + 6854: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6858: 73746e65 cmnvc r4, #1616 ; 0x650 + 685c: 646e6120 strbtvs r6, [lr], #-288 + 6860: 74655320 strbtvc r5, [r5], #-800 + 6864: 676e6974 undefined + 6868: 616d5c73 smcvs 54723 + 686c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6870: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6874: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6878: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 687c: 775c7374 undefined + 6880: 6f632d73 svcvs 0x00632d73 + 6884: 6f72746e svcvs 0x0072746e + 6888: 65575c6c ldrbvs r5, [r7, #-3180] + 688c: 65687461 strbvs r7, [r8, #-1121]! + 6890: 74532072 ldrbvc r2, [r3], #-114 + 6894: 6f697461 svcvs 0x00697461 + 6898: 6f43206e svcvs 0x0043206e + 689c: 6f72746e svcvs 0x0072746e + 68a0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 68a4: 7070415c rsbsvc r4, r0, ip, asr r1 + 68a8: 6163696c cmnvs r3, ip, ror #18 + 68ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 68b0: 756f535c strbvc r5, [pc, #-860]! ; 655c + 68b4: 5c656372 stclpl 3, cr6, [r5], #-456 + 68b8: 65770000 ldrbvs r0, [r7]! + 68bc: 65687461 strbvs r7, [r8, #-1121]! + 68c0: 74735f72 ldrbtvc r5, [r3], #-3954 + 68c4: 6f697461 svcvs 0x00697461 + 68c8: 6f635f6e svcvs 0x00635f6e + 68cc: 6f72746e svcvs 0x0072746e + 68d0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 68d4: 0100632e tsteq r0, lr, lsr #6 + 68d8: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 68dc: 000abe04 andeq fp, sl, r4, lsl #28 + 68e0: 48020500 stmdami r2, {r8, sl} + 68e4: 0500400e streq r4, [r0, #-14] + 68e8: 04fd0301 ldrbteq r0, [sp], #769 + 68ec: 0a740318 beq 1d07554 + 68f0: 030a7403 movweq r7, #41987 ; 0xa403 + 68f4: 06020a74 undefined + 68f8: 00010100 andeq r0, r1, r0, lsl #2 + 68fc: 000000ba strheq r0, [r0], -sl + 6900: 009e0002 addseq r0, lr, r2 + 6904: 01020000 tsteq r2, r0 + 6908: 000a0500 andeq r0, sl, r0, lsl #10 + 690c: 01010101 tsteq r1, r1, lsl #2 + 6910: 00000000 andeq r0, r0, r0 + 6914: 445c3a43 ldrbmi r3, [ip], #-2627 + 6918: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 691c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6920: 646e6120 strbtvs r6, [lr], #-288 + 6924: 74655320 strbtvc r5, [r5], #-800 + 6928: 676e6974 undefined + 692c: 616d5c73 smcvs 54723 + 6930: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6934: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6938: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 693c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6940: 775c7374 undefined + 6944: 6f632d73 svcvs 0x00632d73 + 6948: 6f72746e svcvs 0x0072746e + 694c: 65575c6c ldrbvs r5, [r7, #-3180] + 6950: 65687461 strbvs r7, [r8, #-1121]! + 6954: 74532072 ldrbvc r2, [r3], #-114 + 6958: 6f697461 svcvs 0x00697461 + 695c: 6f43206e svcvs 0x0043206e + 6960: 6f72746e svcvs 0x0072746e + 6964: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6968: 7070415c rsbsvc r4, r0, ip, asr r1 + 696c: 6163696c cmnvs r3, ip, ror #18 + 6970: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6974: 756f535c strbvc r5, [pc, #-860]! ; 6620 + 6978: 5c656372 stclpl 3, cr6, [r5], #-456 + 697c: 65770000 ldrbvs r0, [r7]! + 6980: 65687461 strbvs r7, [r8, #-1121]! + 6984: 74735f72 ldrbtvc r5, [r3], #-3954 + 6988: 6f697461 svcvs 0x00697461 + 698c: 6f635f6e svcvs 0x00635f6e + 6990: 6f72746e svcvs 0x0072746e + 6994: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6998: 0100632e tsteq r0, lr, lsr #6 + 699c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 69a0: 000abe04 andeq fp, sl, r4, lsl #28 + 69a4: 58020500 stmdapl r2, {r8, sl} + 69a8: 0500400e streq r4, [r0, #-14] + 69ac: 04ee0301 strbteq r0, [lr], #769 + 69b0: 1003050e andne r0, r3, lr, lsl #10 + 69b4: 0006021a andeq r0, r6, sl, lsl r2 + 69b8: 00000101 andeq r0, r0, r1, lsl #2 + 69bc: 000000ba strheq r0, [r0], -sl + 69c0: 009e0002 addseq r0, lr, r2 + 69c4: 01020000 tsteq r2, r0 + 69c8: 000a0500 andeq r0, sl, r0, lsl #10 + 69cc: 01010101 tsteq r1, r1, lsl #2 + 69d0: 00000000 andeq r0, r0, r0 + 69d4: 445c3a43 ldrbmi r3, [ip], #-2627 + 69d8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 69dc: 73746e65 cmnvc r4, #1616 ; 0x650 + 69e0: 646e6120 strbtvs r6, [lr], #-288 + 69e4: 74655320 strbtvc r5, [r5], #-800 + 69e8: 676e6974 undefined + 69ec: 616d5c73 smcvs 54723 + 69f0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 69f4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 69f8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 69fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6a00: 775c7374 undefined + 6a04: 6f632d73 svcvs 0x00632d73 + 6a08: 6f72746e svcvs 0x0072746e + 6a0c: 65575c6c ldrbvs r5, [r7, #-3180] + 6a10: 65687461 strbvs r7, [r8, #-1121]! + 6a14: 74532072 ldrbvc r2, [r3], #-114 + 6a18: 6f697461 svcvs 0x00697461 + 6a1c: 6f43206e svcvs 0x0043206e + 6a20: 6f72746e svcvs 0x0072746e + 6a24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6a28: 7070415c rsbsvc r4, r0, ip, asr r1 + 6a2c: 6163696c cmnvs r3, ip, ror #18 + 6a30: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6a34: 756f535c strbvc r5, [pc, #-860]! ; 66e0 + 6a38: 5c656372 stclpl 3, cr6, [r5], #-456 + 6a3c: 65770000 ldrbvs r0, [r7]! + 6a40: 65687461 strbvs r7, [r8, #-1121]! + 6a44: 74735f72 ldrbtvc r5, [r3], #-3954 + 6a48: 6f697461 svcvs 0x00697461 + 6a4c: 6f635f6e svcvs 0x00635f6e + 6a50: 6f72746e svcvs 0x0072746e + 6a54: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6a58: 0100632e tsteq r0, lr, lsr #6 + 6a5c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6a60: 000abe04 andeq fp, sl, r4, lsl #28 + 6a64: 6c020500 cfstr32vs mvfx0, [r2], {0} + 6a68: 0500400e streq r4, [r0, #-14] + 6a6c: 04fa0301 ldrbteq r0, [sl], #769 + 6a70: 1003050e andne r0, r3, lr, lsl #10 + 6a74: 0006021a andeq r0, r6, sl, lsl r2 + 6a78: 00000101 andeq r0, r0, r1, lsl #2 + 6a7c: 000000f1 strdeq r0, [r0], -r1 + 6a80: 009e0002 addseq r0, lr, r2 + 6a84: 01020000 tsteq r2, r0 + 6a88: 000a0500 andeq r0, sl, r0, lsl #10 + 6a8c: 01010101 tsteq r1, r1, lsl #2 + 6a90: 00000000 andeq r0, r0, r0 + 6a94: 445c3a43 ldrbmi r3, [ip], #-2627 + 6a98: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6a9c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6aa0: 646e6120 strbtvs r6, [lr], #-288 + 6aa4: 74655320 strbtvc r5, [r5], #-800 + 6aa8: 676e6974 undefined + 6aac: 616d5c73 smcvs 54723 + 6ab0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6ab4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6ab8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6abc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6ac0: 775c7374 undefined + 6ac4: 6f632d73 svcvs 0x00632d73 + 6ac8: 6f72746e svcvs 0x0072746e + 6acc: 65575c6c ldrbvs r5, [r7, #-3180] + 6ad0: 65687461 strbvs r7, [r8, #-1121]! + 6ad4: 74532072 ldrbvc r2, [r3], #-114 + 6ad8: 6f697461 svcvs 0x00697461 + 6adc: 6f43206e svcvs 0x0043206e + 6ae0: 6f72746e svcvs 0x0072746e + 6ae4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6ae8: 7070415c rsbsvc r4, r0, ip, asr r1 + 6aec: 6163696c cmnvs r3, ip, ror #18 + 6af0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6af4: 756f535c strbvc r5, [pc, #-860]! ; 67a0 + 6af8: 5c656372 stclpl 3, cr6, [r5], #-456 + 6afc: 65770000 ldrbvs r0, [r7]! + 6b00: 65687461 strbvs r7, [r8, #-1121]! + 6b04: 74735f72 ldrbtvc r5, [r3], #-3954 + 6b08: 6f697461 svcvs 0x00697461 + 6b0c: 6f635f6e svcvs 0x00635f6e + 6b10: 6f72746e svcvs 0x0072746e + 6b14: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6b18: 0100632e tsteq r0, lr, lsr #6 + 6b1c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6b20: 000abe04 andeq fp, sl, r4, lsl #28 + 6b24: 80020500 andhi r0, r2, r0, lsl #10 + 6b28: 0500400e streq r4, [r0, #-14] + 6b2c: 05870301 streq r0, [r7, #769] + 6b30: 1303050e movwne r0, #13582 ; 0x350e + 6b34: 24490705 strbcs r0, [r9], #-1797 + 6b38: 0b180103 bleq 606f4c + 6b3c: 4c0b334c stcmi 3, cr3, [fp], {76} + 6b40: 0b180203 bleq 607354 + 6b44: 4c0b2e4c stcmi 14, cr2, [fp], {76} + 6b48: 05130203 ldreq r0, [r3, #-515] + 6b4c: 05151b09 ldreq r1, [r5, #-2825] + 6b50: 0905180a stmdbeq r5, {r1, r3, fp, ip} + 6b54: 0b510b1c bleq 14497cc + 6b58: 08050b38 stmdaeq r5, {r3, r4, r5, r8, r9, fp} + 6b5c: 1b0a0551 blne 2880a8 + 6b60: 06030705 streq r0, [r3], -r5, lsl #14 + 6b64: 05470b22 strbeq r0, [r7, #-2850] + 6b68: 13020303 movwne r0, #8963 ; 0x2303 + 6b6c: 01001102 tsteq r0, r2, lsl #2 + 6b70: 00000001 andeq r0, r0, r1 + 6b74: 000000e4 andeq r0, r0, r4, ror #1 + 6b78: 009e0002 addseq r0, lr, r2 + 6b7c: 01020000 tsteq r2, r0 + 6b80: 000a0500 andeq r0, sl, r0, lsl #10 + 6b84: 01010101 tsteq r1, r1, lsl #2 + 6b88: 00000000 andeq r0, r0, r0 + 6b8c: 445c3a43 ldrbmi r3, [ip], #-2627 + 6b90: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6b94: 73746e65 cmnvc r4, #1616 ; 0x650 + 6b98: 646e6120 strbtvs r6, [lr], #-288 + 6b9c: 74655320 strbtvc r5, [r5], #-800 + 6ba0: 676e6974 undefined + 6ba4: 616d5c73 smcvs 54723 + 6ba8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6bac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6bb0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6bb4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6bb8: 775c7374 undefined + 6bbc: 6f632d73 svcvs 0x00632d73 + 6bc0: 6f72746e svcvs 0x0072746e + 6bc4: 65575c6c ldrbvs r5, [r7, #-3180] + 6bc8: 65687461 strbvs r7, [r8, #-1121]! + 6bcc: 74532072 ldrbvc r2, [r3], #-114 + 6bd0: 6f697461 svcvs 0x00697461 + 6bd4: 6f43206e svcvs 0x0043206e + 6bd8: 6f72746e svcvs 0x0072746e + 6bdc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6be0: 7070415c rsbsvc r4, r0, ip, asr r1 + 6be4: 6163696c cmnvs r3, ip, ror #18 + 6be8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6bec: 756f535c strbvc r5, [pc, #-860]! ; 6898 + 6bf0: 5c656372 stclpl 3, cr6, [r5], #-456 + 6bf4: 65770000 ldrbvs r0, [r7]! + 6bf8: 65687461 strbvs r7, [r8, #-1121]! + 6bfc: 74735f72 ldrbtvc r5, [r3], #-3954 + 6c00: 6f697461 svcvs 0x00697461 + 6c04: 6f635f6e svcvs 0x00635f6e + 6c08: 6f72746e svcvs 0x0072746e + 6c0c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6c10: 0100632e tsteq r0, lr, lsr #6 + 6c14: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6c18: 000abe04 andeq fp, sl, r4, lsl #28 + 6c1c: dc020500 cfstr32le mvfx0, [r2], {0} + 6c20: 0500400f streq r4, [r0, #-15] + 6c24: 05d90301 ldrbeq r0, [r9, #769] + 6c28: 0305050e movweq r0, #21774 ; 0x550e + 6c2c: 07051808 streq r1, [r5, -r8, lsl #16] + 6c30: 1a261524 bne 98c0c8 + 6c34: 1b1a1a10 blne 68d47c + 6c38: 0b1c0905 bleq 709054 + 6c3c: 10153e0b andsne r3, r5, fp, lsl #28 + 6c40: 78030705 stmdavc r3, {r0, r2, r8, r9, sl} + 6c44: 22070314 andcs r0, r7, #1342177280 ; 0x50000000 + 6c48: 0805161a stmdaeq r5, {r1, r3, r4, r9, sl, ip} + 6c4c: 250b0520 strcs r0, [fp, #-1312] + 6c50: 27070515 smladcs r7, r5, r5, r0 + 6c54: 02220105 eoreq r0, r2, #1073741825 ; 0x40000001 + 6c58: 0101000e tsteq r1, lr + 6c5c: 00000110 andeq r0, r0, r0, lsl r1 + 6c60: 009e0002 addseq r0, lr, r2 + 6c64: 01020000 tsteq r2, r0 + 6c68: 000a0500 andeq r0, sl, r0, lsl #10 + 6c6c: 01010101 tsteq r1, r1, lsl #2 + 6c70: 00000000 andeq r0, r0, r0 + 6c74: 445c3a43 ldrbmi r3, [ip], #-2627 + 6c78: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6c7c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6c80: 646e6120 strbtvs r6, [lr], #-288 + 6c84: 74655320 strbtvc r5, [r5], #-800 + 6c88: 676e6974 undefined + 6c8c: 616d5c73 smcvs 54723 + 6c90: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6c94: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6c98: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6c9c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6ca0: 775c7374 undefined + 6ca4: 6f632d73 svcvs 0x00632d73 + 6ca8: 6f72746e svcvs 0x0072746e + 6cac: 65575c6c ldrbvs r5, [r7, #-3180] + 6cb0: 65687461 strbvs r7, [r8, #-1121]! + 6cb4: 74532072 ldrbvc r2, [r3], #-114 + 6cb8: 6f697461 svcvs 0x00697461 + 6cbc: 6f43206e svcvs 0x0043206e + 6cc0: 6f72746e svcvs 0x0072746e + 6cc4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6cc8: 7070415c rsbsvc r4, r0, ip, asr r1 + 6ccc: 6163696c cmnvs r3, ip, ror #18 + 6cd0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6cd4: 756f535c strbvc r5, [pc, #-860]! ; 6980 + 6cd8: 5c656372 stclpl 3, cr6, [r5], #-456 + 6cdc: 65770000 ldrbvs r0, [r7]! + 6ce0: 65687461 strbvs r7, [r8, #-1121]! + 6ce4: 74735f72 ldrbtvc r5, [r3], #-3954 + 6ce8: 6f697461 svcvs 0x00697461 + 6cec: 6f635f6e svcvs 0x00635f6e + 6cf0: 6f72746e svcvs 0x0072746e + 6cf4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6cf8: 0100632e tsteq r0, lr, lsr #6 + 6cfc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6d00: 000abe04 andeq fp, sl, r4, lsl #28 + 6d04: 8c020500 cfstr32hi mvfx0, [r2], {0} + 6d08: 05004010 streq r4, [r0, #-16] + 6d0c: 06950301 ldreq r0, [r5], r1, lsl #6 + 6d10: 200b050e andcs r0, fp, lr, lsl #10 + 6d14: 05200f05 streq r0, [r0, #-3845]! + 6d18: 512e1105 teqpl lr, r5, lsl #2 + 6d1c: 33153833 tstcc r5, #3342336 ; 0x330000 + 6d20: 1556332e ldrbne r3, [r6, #-814] + 6d24: 38333838 ldmdacc r3!, {r3, r4, r5, fp, ip, sp} + 6d28: 33333338 teqcc r3, #-536870912 ; 0xe0000000 + 6d2c: 3333382e teqcc r3, #3014656 ; 0x2e0000 + 6d30: 053a0405 ldreq r0, [sl, #-1029]! + 6d34: 36050308 strcc r0, [r5], -r8, lsl #6 + 6d38: 147a0310 ldrbtne r0, [sl], #-784 + 6d3c: 03050510 movweq r0, #21776 ; 0x5510 + 6d40: 05101806 ldreq r1, [r0, #-2054] + 6d44: 0f55031b svceq 0x0055031b + 6d48: 050f1405 streq r1, [pc, #-1029] ; 694b + 6d4c: 272b0302 strcs r0, [fp, -r2, lsl #6]! + 6d50: 151a0305 ldrne r0, [sl, #-773] + 6d54: 16050511 undefined + 6d58: 0321052e teqeq r1, #192937984 ; 0xb800000 + 6d5c: 14050f7d strne r0, [r5], #-3965 + 6d60: 03020514 movweq r0, #9492 ; 0x2514 + 6d64: 03051302 movweq r1, #21250 ; 0x5302 + 6d68: 01050b1a tsteq r5, sl, lsl fp + 6d6c: 0101000b tsteq r1, fp + 6d70: 00000022 andeq r0, r0, r2, lsr #32 + 6d74: 00100002 andseq r0, r0, r2 + 6d78: 01020000 tsteq r2, r0 + 6d7c: 000a0500 andeq r0, sl, r0, lsl #10 + 6d80: 01010101 tsteq r1, r1, lsl #2 + 6d84: 00000000 andeq r0, r0, r0 + 6d88: 05000000 streq r0, [r0] + 6d8c: 40127002 andsmi r7, r2, r2 + 6d90: 00080200 andeq r0, r8, r0, lsl #4 + 6d94: 00000101 andeq r0, r0, r1, lsl #2 + 6d98: 000000f2 strdeq r0, [r0], -r2 + 6d9c: 009e0002 addseq r0, lr, r2 + 6da0: 01020000 tsteq r2, r0 + 6da4: 000a0500 andeq r0, sl, r0, lsl #10 + 6da8: 01010101 tsteq r1, r1, lsl #2 + 6dac: 00000000 andeq r0, r0, r0 + 6db0: 445c3a43 ldrbmi r3, [ip], #-2627 + 6db4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6db8: 73746e65 cmnvc r4, #1616 ; 0x650 + 6dbc: 646e6120 strbtvs r6, [lr], #-288 + 6dc0: 74655320 strbtvc r5, [r5], #-800 + 6dc4: 676e6974 undefined + 6dc8: 616d5c73 smcvs 54723 + 6dcc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6dd0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6dd4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6dd8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6ddc: 775c7374 undefined + 6de0: 6f632d73 svcvs 0x00632d73 + 6de4: 6f72746e svcvs 0x0072746e + 6de8: 65575c6c ldrbvs r5, [r7, #-3180] + 6dec: 65687461 strbvs r7, [r8, #-1121]! + 6df0: 74532072 ldrbvc r2, [r3], #-114 + 6df4: 6f697461 svcvs 0x00697461 + 6df8: 6f43206e svcvs 0x0043206e + 6dfc: 6f72746e svcvs 0x0072746e + 6e00: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6e04: 7070415c rsbsvc r4, r0, ip, asr r1 + 6e08: 6163696c cmnvs r3, ip, ror #18 + 6e0c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6e10: 756f535c strbvc r5, [pc, #-860]! ; 6abc + 6e14: 5c656372 stclpl 3, cr6, [r5], #-456 + 6e18: 65770000 ldrbvs r0, [r7]! + 6e1c: 65687461 strbvs r7, [r8, #-1121]! + 6e20: 74735f72 ldrbtvc r5, [r3], #-3954 + 6e24: 6f697461 svcvs 0x00697461 + 6e28: 6f635f6e svcvs 0x00635f6e + 6e2c: 6f72746e svcvs 0x0072746e + 6e30: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6e34: 0100632e tsteq r0, lr, lsr #6 + 6e38: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6e3c: 000abe04 andeq fp, sl, r4, lsl #28 + 6e40: 80020500 andhi r0, r2, r0, lsl #10 + 6e44: 05004012 streq r4, [r0, #-18] + 6e48: 06de0342 ldrbeq r0, [lr], r2, asr #6 + 6e4c: 1b0f050e blne 3c828c + 6e50: 2e110505 cfmul32cs mvfx0, mvfx1, mvfx5 + 6e54: 15383351 ldrne r3, [r8, #-849]! + 6e58: 56332e33 undefined + 6e5c: 33383815 teqcc r8, #1376256 ; 0x150000 + 6e60: 33333838 teqcc r3, #3670016 ; 0x380000 + 6e64: 33382e33 teqcc r8, #816 ; 0x330 + 6e68: 3a040533 bcc 10833c + 6e6c: 05030805 streq r0, [r3, #-2053] + 6e70: 7a031036 bvc caf50 + 6e74: 05051014 streq r1, [r5, #-20] + 6e78: 10180603 andsne r0, r8, r3, lsl #12 + 6e7c: 55031b05 strpl r1, [r3, #-2821] + 6e80: 0f14050f svceq 0x0014050f + 6e84: 2b030105 blcs c72a0 + 6e88: 00030227 andeq r0, r3, r7, lsr #4 + 6e8c: 00000101 andeq r0, r0, r1, lsl #2 + 6e90: 0000016a andeq r0, r0, sl, ror #2 + 6e94: 009e0002 addseq r0, lr, r2 + 6e98: 01020000 tsteq r2, r0 + 6e9c: 000a0500 andeq r0, sl, r0, lsl #10 + 6ea0: 01010101 tsteq r1, r1, lsl #2 + 6ea4: 00000000 andeq r0, r0, r0 + 6ea8: 445c3a43 ldrbmi r3, [ip], #-2627 + 6eac: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6eb0: 73746e65 cmnvc r4, #1616 ; 0x650 + 6eb4: 646e6120 strbtvs r6, [lr], #-288 + 6eb8: 74655320 strbtvc r5, [r5], #-800 + 6ebc: 676e6974 undefined + 6ec0: 616d5c73 smcvs 54723 + 6ec4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6ec8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6ecc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6ed0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6ed4: 775c7374 undefined + 6ed8: 6f632d73 svcvs 0x00632d73 + 6edc: 6f72746e svcvs 0x0072746e + 6ee0: 65575c6c ldrbvs r5, [r7, #-3180] + 6ee4: 65687461 strbvs r7, [r8, #-1121]! + 6ee8: 74532072 ldrbvc r2, [r3], #-114 + 6eec: 6f697461 svcvs 0x00697461 + 6ef0: 6f43206e svcvs 0x0043206e + 6ef4: 6f72746e svcvs 0x0072746e + 6ef8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6efc: 7070415c rsbsvc r4, r0, ip, asr r1 + 6f00: 6163696c cmnvs r3, ip, ror #18 + 6f04: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6f08: 756f535c strbvc r5, [pc, #-860]! ; 6bb4 + 6f0c: 5c656372 stclpl 3, cr6, [r5], #-456 + 6f10: 65770000 ldrbvs r0, [r7]! + 6f14: 65687461 strbvs r7, [r8, #-1121]! + 6f18: 74735f72 ldrbtvc r5, [r3], #-3954 + 6f1c: 6f697461 svcvs 0x00697461 + 6f20: 6f635f6e svcvs 0x00635f6e + 6f24: 6f72746e svcvs 0x0072746e + 6f28: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6f2c: 0100632e tsteq r0, lr, lsr #6 + 6f30: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6f34: 000abe04 andeq fp, sl, r4, lsl #28 + 6f38: 34020500 strcc r0, [r2], #-1280 + 6f3c: 05004014 streq r4, [r0, #-20] + 6f40: 07990301 ldreq r0, [r9, r1, lsl #6] + 6f44: 160b050e strne r0, [fp], -lr, lsl #10 + 6f48: 050c0305 streq r0, [ip, #-773] + 6f4c: 0505250f streq r2, [r5, #-1295] + 6f50: 1f052911 svcne 0x00052911 + 6f54: 05287d03 streq r7, [r8, #-3331]! + 6f58: 03050f16 movweq r0, #24342 ; 0x5f16 + 6f5c: 3d220203 sfmcc f0, 4, [r2, #-12]! + 6f60: 4e08050c cfsh32mi mvfx0, mvfx8, #12 + 6f64: 07050b24 streq r0, [r5, -r4, lsr #22] + 6f68: 24220103 strtcs r0, [r2], #-259 + 6f6c: 1b09050b blne 2483a0 + 6f70: 27200b05 strcs r0, [r0, -r5, lsl #22]! + 6f74: 01030905 tsteq r3, r5, lsl #18 + 6f78: 200b0522 andcs r0, fp, r2, lsr #10 + 6f7c: 26070527 strcs r0, [r7], -r7, lsr #10 + 6f80: 09050b0b stmdbeq r5, {r0, r1, r3, r8, r9, fp} + 6f84: 2424241b strtcs r2, [r4], #-1051 + 6f88: 24242422 strtcs r2, [r4], #-1058 + 6f8c: 03030705 movweq r0, #14085 ; 0x3705 + 6f90: 050b2431 streq r2, [fp, #-1073] + 6f94: 0b051b09 bleq 14dbc0 + 6f98: 09052720 stmdbeq r5, {r5, r8, r9, sl, sp} + 6f9c: 05220103 streq r0, [r2, #-259]! + 6fa0: 0526200b streq r2, [r6, #-11]! + 6fa4: 0b0b2707 bleq 2d0bc8 + 6fa8: 241b0905 ldrcs r0, [fp], #-2309 + 6fac: 24242224 strtcs r2, [r4], #-548 + 6fb0: 03070524 movweq r0, #29988 ; 0x7524 + 6fb4: 0b242203 bleq 90f7c8 + 6fb8: 051b0905 ldreq r0, [fp, #-2309] + 6fbc: 0527200c streq r2, [r7, #-12]! + 6fc0: 22010309 andcs r0, r1, #603979776 ; 0x24000000 + 6fc4: 27200b05 strcs r0, [r0, -r5, lsl #22]! + 6fc8: 0b260705 bleq 988be4 + 6fcc: 051b0905 ldreq r0, [fp, #-2309] + 6fd0: 09052513 stmdbeq r5, {r0, r1, r4, r8, sl, sp} + 6fd4: 052a0b11 streq r0, [sl, #-2833]! + 6fd8: 0517200b ldreq r2, [r7, #-11] + 6fdc: 34052a09 strcc r2, [r5], #-2569 + 6fe0: 05287403 streq r7, [r8, #-1027]! + 6fe4: 07050f21 streq r0, [r5, -r1, lsr #30] + 6fe8: 05220a03 streq r0, [r2, #-2563]! + 6fec: 05221b09 streq r1, [r2, #-2825]! + 6ff0: 22030307 andcs r0, r3, #469762048 ; 0x1c000000 + 6ff4: 0b2e0b24 bleq b89c8c + 6ff8: 000d020b andeq r0, sp, fp, lsl #4 + 6ffc: 00000101 andeq r0, r0, r1, lsl #2 + 7000: 00000116 andeq r0, r0, r6, lsl r1 + 7004: 009e0002 addseq r0, lr, r2 + 7008: 01020000 tsteq r2, r0 + 700c: 000a0500 andeq r0, sl, r0, lsl #10 + 7010: 01010101 tsteq r1, r1, lsl #2 + 7014: 00000000 andeq r0, r0, r0 + 7018: 445c3a43 ldrbmi r3, [ip], #-2627 + 701c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7020: 73746e65 cmnvc r4, #1616 ; 0x650 + 7024: 646e6120 strbtvs r6, [lr], #-288 + 7028: 74655320 strbtvc r5, [r5], #-800 + 702c: 676e6974 undefined + 7030: 616d5c73 smcvs 54723 + 7034: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7038: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 703c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7040: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7044: 775c7374 undefined + 7048: 6f632d73 svcvs 0x00632d73 + 704c: 6f72746e svcvs 0x0072746e + 7050: 65575c6c ldrbvs r5, [r7, #-3180] + 7054: 65687461 strbvs r7, [r8, #-1121]! + 7058: 74532072 ldrbvc r2, [r3], #-114 + 705c: 6f697461 svcvs 0x00697461 + 7060: 6f43206e svcvs 0x0043206e + 7064: 6f72746e svcvs 0x0072746e + 7068: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 706c: 7070415c rsbsvc r4, r0, ip, asr r1 + 7070: 6163696c cmnvs r3, ip, ror #18 + 7074: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7078: 756f535c strbvc r5, [pc, #-860]! ; 6d24 + 707c: 5c656372 stclpl 3, cr6, [r5], #-456 + 7080: 65770000 ldrbvs r0, [r7]! + 7084: 65687461 strbvs r7, [r8, #-1121]! + 7088: 74735f72 ldrbtvc r5, [r3], #-3954 + 708c: 6f697461 svcvs 0x00697461 + 7090: 6f635f6e svcvs 0x00635f6e + 7094: 6f72746e svcvs 0x0072746e + 7098: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 709c: 0100632e tsteq r0, lr, lsr #6 + 70a0: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 70a4: 000abe04 andeq fp, sl, r4, lsl #28 + 70a8: ac020500 cfstr32ge mvfx0, [r2], {0} + 70ac: 05004016 streq r4, [r0, #-22] + 70b0: 08db0301 ldmeq fp, {r0, r8, r9}^ + 70b4: 1803050e stmdane r3, {r1, r2, r3, r8, sl} + 70b8: 34050515 strcc r0, [r5], #-1301 + 70bc: 051b0605 ldreq r0, [fp, #-1541] + 70c0: 03051d07 movweq r1, #23815 ; 0x5d07 + 70c4: 25050526 strcs r0, [r5, #-1318] + 70c8: 05250305 streq r0, [r5, #-773]! + 70cc: 06052505 streq r2, [r5], -r5, lsl #10 + 70d0: 2207051b andcs r0, r7, #113246208 ; 0x6c00000 + 70d4: 05260305 streq r0, [r6, #-773]! + 70d8: 03052505 movweq r2, #21765 ; 0x5505 + 70dc: 25050525 strcs r0, [r5, #-1317] + 70e0: 05250305 streq r0, [r5, #-773]! + 70e4: 03052505 movweq r2, #21765 ; 0x5505 + 70e8: 2f050525 svccs 0x00050525 + 70ec: 05250305 streq r0, [r5, #-773]! + 70f0: 03052f05 movweq r2, #24325 ; 0x5f05 + 70f4: 1a0f0526 bne 3c8594 + 70f8: 07030705 streq r0, [r3, -r5, lsl #14] + 70fc: 25050522 strcs r0, [r5, #-1314] + 7100: 73033005 movwvc r3, #12293 ; 0x3005 + 7104: 191d0523 ldmdbne sp, {r0, r1, r5, r8, sl} + 7108: 0b160505 bleq 588524 + 710c: 16070525 strne r0, [r7], -r5, lsr #10 + 7110: 04030105 streq r0, [r3], #-261 + 7114: 00130218 andseq r0, r3, r8, lsl r2 + 7118: 00000101 andeq r0, r0, r1, lsl #2 + 711c: 000000c0 andeq r0, r0, r0, asr #1 + 7120: 009e0002 addseq r0, lr, r2 + 7124: 01020000 tsteq r2, r0 + 7128: 000a0500 andeq r0, sl, r0, lsl #10 + 712c: 01010101 tsteq r1, r1, lsl #2 + 7130: 00000000 andeq r0, r0, r0 + 7134: 445c3a43 ldrbmi r3, [ip], #-2627 + 7138: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 713c: 73746e65 cmnvc r4, #1616 ; 0x650 + 7140: 646e6120 strbtvs r6, [lr], #-288 + 7144: 74655320 strbtvc r5, [r5], #-800 + 7148: 676e6974 undefined + 714c: 616d5c73 smcvs 54723 + 7150: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7154: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7158: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 715c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7160: 775c7374 undefined + 7164: 6f632d73 svcvs 0x00632d73 + 7168: 6f72746e svcvs 0x0072746e + 716c: 65575c6c ldrbvs r5, [r7, #-3180] + 7170: 65687461 strbvs r7, [r8, #-1121]! + 7174: 74532072 ldrbvc r2, [r3], #-114 + 7178: 6f697461 svcvs 0x00697461 + 717c: 6f43206e svcvs 0x0043206e + 7180: 6f72746e svcvs 0x0072746e + 7184: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7188: 7070415c rsbsvc r4, r0, ip, asr r1 + 718c: 6163696c cmnvs r3, ip, ror #18 + 7190: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7194: 756f535c strbvc r5, [pc, #-860]! ; 6e40 + 7198: 5c656372 stclpl 3, cr6, [r5], #-456 + 719c: 65770000 ldrbvs r0, [r7]! + 71a0: 65687461 strbvs r7, [r8, #-1121]! + 71a4: 74735f72 ldrbtvc r5, [r3], #-3954 + 71a8: 6f697461 svcvs 0x00697461 + 71ac: 6f635f6e svcvs 0x00635f6e + 71b0: 6f72746e svcvs 0x0072746e + 71b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 71b8: 0100632e tsteq r0, lr, lsr #6 + 71bc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 71c0: 000abe04 andeq fp, sl, r4, lsl #28 + 71c4: e0020500 and r0, r2, r0, lsl #10 + 71c8: 05004017 streq r4, [r0, #-23] + 71cc: 09a70301 stmibeq r7!, {r0, r8, r9} + 71d0: 1603050e strne r0, [r3], -lr, lsl #10 + 71d4: 1a15151a bne 54c644 + 71d8: 02200105 eoreq r0, r0, #1073741825 ; 0x40000001 + 71dc: 01010006 tsteq r1, r6 + 71e0: 000000c0 andeq r0, r0, r0, asr #1 + 71e4: 009e0002 addseq r0, lr, r2 + 71e8: 01020000 tsteq r2, r0 + 71ec: 000a0500 andeq r0, sl, r0, lsl #10 + 71f0: 01010101 tsteq r1, r1, lsl #2 + 71f4: 00000000 andeq r0, r0, r0 + 71f8: 445c3a43 ldrbmi r3, [ip], #-2627 + 71fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7200: 73746e65 cmnvc r4, #1616 ; 0x650 + 7204: 646e6120 strbtvs r6, [lr], #-288 + 7208: 74655320 strbtvc r5, [r5], #-800 + 720c: 676e6974 undefined + 7210: 616d5c73 smcvs 54723 + 7214: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7218: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 721c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7220: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7224: 775c7374 undefined + 7228: 6f632d73 svcvs 0x00632d73 + 722c: 6f72746e svcvs 0x0072746e + 7230: 65575c6c ldrbvs r5, [r7, #-3180] + 7234: 65687461 strbvs r7, [r8, #-1121]! + 7238: 74532072 ldrbvc r2, [r3], #-114 + 723c: 6f697461 svcvs 0x00697461 + 7240: 6f43206e svcvs 0x0043206e + 7244: 6f72746e svcvs 0x0072746e + 7248: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 724c: 7070415c rsbsvc r4, r0, ip, asr r1 + 7250: 6163696c cmnvs r3, ip, ror #18 + 7254: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7258: 756f535c strbvc r5, [pc, #-860]! ; 6f04 + 725c: 5c656372 stclpl 3, cr6, [r5], #-456 + 7260: 65770000 ldrbvs r0, [r7]! + 7264: 65687461 strbvs r7, [r8, #-1121]! + 7268: 74735f72 ldrbtvc r5, [r3], #-3954 + 726c: 6f697461 svcvs 0x00697461 + 7270: 6f635f6e svcvs 0x00635f6e + 7274: 6f72746e svcvs 0x0072746e + 7278: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 727c: 0100632e tsteq r0, lr, lsr #6 + 7280: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 7284: 000abe04 andeq fp, sl, r4, lsl #28 + 7288: 0c020500 cfstr32eq mvfx0, [r2], {0} + 728c: 05004018 streq r4, [r0, #-24] + 7290: 09b80301 ldmibeq r8!, {r0, r8, r9} + 7294: 1203050e andne r0, r3, #58720256 ; 0x3800000 + 7298: 35050533 strcc r0, [r5, #-1331] + 729c: 02430105 subeq r0, r3, #1073741825 ; 0x40000001 + 72a0: 01010008 tsteq r1, r8 + 72a4: 000000bc strheq r0, [r0], -ip + 72a8: 009e0002 addseq r0, lr, r2 + 72ac: 01020000 tsteq r2, r0 + 72b0: 000a0500 andeq r0, sl, r0, lsl #10 + 72b4: 01010101 tsteq r1, r1, lsl #2 + 72b8: 00000000 andeq r0, r0, r0 + 72bc: 445c3a43 ldrbmi r3, [ip], #-2627 + 72c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 72c4: 73746e65 cmnvc r4, #1616 ; 0x650 + 72c8: 646e6120 strbtvs r6, [lr], #-288 + 72cc: 74655320 strbtvc r5, [r5], #-800 + 72d0: 676e6974 undefined + 72d4: 616d5c73 smcvs 54723 + 72d8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 72dc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 72e0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 72e4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 72e8: 775c7374 undefined + 72ec: 6f632d73 svcvs 0x00632d73 + 72f0: 6f72746e svcvs 0x0072746e + 72f4: 65575c6c ldrbvs r5, [r7, #-3180] + 72f8: 65687461 strbvs r7, [r8, #-1121]! + 72fc: 74532072 ldrbvc r2, [r3], #-114 + 7300: 6f697461 svcvs 0x00697461 + 7304: 6f43206e svcvs 0x0043206e + 7308: 6f72746e svcvs 0x0072746e + 730c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7310: 7070415c rsbsvc r4, r0, ip, asr r1 + 7314: 6163696c cmnvs r3, ip, ror #18 + 7318: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 731c: 756f535c strbvc r5, [pc, #-860]! ; 6fc8 + 7320: 5c656372 stclpl 3, cr6, [r5], #-456 + 7324: 65770000 ldrbvs r0, [r7]! + 7328: 65687461 strbvs r7, [r8, #-1121]! + 732c: 74735f72 ldrbtvc r5, [r3], #-3954 + 7330: 6f697461 svcvs 0x00697461 + 7334: 6f635f6e svcvs 0x00635f6e + 7338: 6f72746e svcvs 0x0072746e + 733c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7340: 0100632e tsteq r0, lr, lsr #6 + 7344: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 7348: 000abe04 andeq fp, sl, r4, lsl #28 + 734c: 54020500 strpl r0, [r2], #-1280 + 7350: 05004018 streq r4, [r0, #-24] + 7354: 09ca0301 stmibeq sl, {r0, r8, r9}^ + 7358: 1003050e andne r0, r3, lr, lsl #10 + 735c: 02420105 subeq r0, r2, #1073741825 ; 0x40000001 + 7360: 01010004 tsteq r1, r4 + 7364: 00000102 andeq r0, r0, r2, lsl #2 + 7368: 009e0002 addseq r0, lr, r2 + 736c: 01020000 tsteq r2, r0 + 7370: 000a0500 andeq r0, sl, r0, lsl #10 + 7374: 01010101 tsteq r1, r1, lsl #2 + 7378: 00000000 andeq r0, r0, r0 + 737c: 445c3a43 ldrbmi r3, [ip], #-2627 + 7380: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7384: 73746e65 cmnvc r4, #1616 ; 0x650 + 7388: 646e6120 strbtvs r6, [lr], #-288 + 738c: 74655320 strbtvc r5, [r5], #-800 + 7390: 676e6974 undefined + 7394: 616d5c73 smcvs 54723 + 7398: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 739c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 73a0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 73a4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 73a8: 775c7374 undefined + 73ac: 6f632d73 svcvs 0x00632d73 + 73b0: 6f72746e svcvs 0x0072746e + 73b4: 65575c6c ldrbvs r5, [r7, #-3180] + 73b8: 65687461 strbvs r7, [r8, #-1121]! + 73bc: 74532072 ldrbvc r2, [r3], #-114 + 73c0: 6f697461 svcvs 0x00697461 + 73c4: 6f43206e svcvs 0x0043206e + 73c8: 6f72746e svcvs 0x0072746e + 73cc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 73d0: 7070415c rsbsvc r4, r0, ip, asr r1 + 73d4: 6163696c cmnvs r3, ip, ror #18 + 73d8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 73dc: 756f535c strbvc r5, [pc, #-860]! ; 7088 + 73e0: 5c656372 stclpl 3, cr6, [r5], #-456 + 73e4: 65770000 ldrbvs r0, [r7]! + 73e8: 65687461 strbvs r7, [r8, #-1121]! + 73ec: 74735f72 ldrbtvc r5, [r3], #-3954 + 73f0: 6f697461 svcvs 0x00697461 + 73f4: 6f635f6e svcvs 0x00635f6e + 73f8: 6f72746e svcvs 0x0072746e + 73fc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7400: 0100632e tsteq r0, lr, lsr #6 + 7404: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 7408: 000abe04 andeq fp, sl, r4, lsl #28 + 740c: 74020500 strvc r0, [r2], #-1280 + 7410: 05004018 streq r4, [r0, #-24] + 7414: 09cf0301 stmibeq pc, {r0, r8, r9}^ + 7418: 1203050e andne r0, r3, #58720256 ; 0x3800000 + 741c: 1a160505 bne 588838 + 7420: 03030515 movweq r0, #13589 ; 0x3515 + 7424: 05051801 streq r1, [r5, #-2049] + 7428: 15151a16 ldrne r1, [r5, #-2582] + 742c: 1d160705 ldcne 7, cr0, [r6, #-20] + 7430: 15161a15 ldrne r1, [r6, #-2581] + 7434: 051c0505 ldreq r0, [ip, #-1285] + 7438: 05051203 streq r1, [r5, #-515] + 743c: 15151a16 ldrne r1, [r5, #-2582] + 7440: 0e160705 cdpeq 7, 1, cr0, cr6, cr5, {0} + 7444: 03051a15 movweq r1, #23061 ; 0x5a15 + 7448: 051d0203 ldreq r0, [sp, #-515] + 744c: 151a1605 ldrne r1, [sl, #-1541] + 7450: 01030305 tsteq r3, r5, lsl #6 + 7454: 16050518 undefined + 7458: 151a151a ldrne r1, [sl, #-1306] + 745c: 052c0305 streq r0, [ip, #-773]! + 7460: 01051605 tsteq r5, r5, lsl #12 + 7464: 000a021b andeq r0, sl, fp, lsl r2 + 7468: 00000101 andeq r0, r0, r1, lsl #2 + 746c: 000000c2 andeq r0, r0, r2, asr #1 + 7470: 009e0002 addseq r0, lr, r2 + 7474: 01020000 tsteq r2, r0 + 7478: 000a0500 andeq r0, sl, r0, lsl #10 + 747c: 01010101 tsteq r1, r1, lsl #2 + 7480: 00000000 andeq r0, r0, r0 + 7484: 445c3a43 ldrbmi r3, [ip], #-2627 + 7488: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 748c: 73746e65 cmnvc r4, #1616 ; 0x650 + 7490: 646e6120 strbtvs r6, [lr], #-288 + 7494: 74655320 strbtvc r5, [r5], #-800 + 7498: 676e6974 undefined + 749c: 616d5c73 smcvs 54723 + 74a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 74a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 74a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 74ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 74b0: 775c7374 undefined + 74b4: 6f632d73 svcvs 0x00632d73 + 74b8: 6f72746e svcvs 0x0072746e + 74bc: 65575c6c ldrbvs r5, [r7, #-3180] + 74c0: 65687461 strbvs r7, [r8, #-1121]! + 74c4: 74532072 ldrbvc r2, [r3], #-114 + 74c8: 6f697461 svcvs 0x00697461 + 74cc: 6f43206e svcvs 0x0043206e + 74d0: 6f72746e svcvs 0x0072746e + 74d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 74d8: 7070415c rsbsvc r4, r0, ip, asr r1 + 74dc: 6163696c cmnvs r3, ip, ror #18 + 74e0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 74e4: 756f535c strbvc r5, [pc, #-860]! ; 7190 + 74e8: 5c656372 stclpl 3, cr6, [r5], #-456 + 74ec: 65770000 ldrbvs r0, [r7]! + 74f0: 65687461 strbvs r7, [r8, #-1121]! + 74f4: 74735f72 ldrbtvc r5, [r3], #-3954 + 74f8: 6f697461 svcvs 0x00697461 + 74fc: 6f635f6e svcvs 0x00635f6e + 7500: 6f72746e svcvs 0x0072746e + 7504: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7508: 0100632e tsteq r0, lr, lsr #6 + 750c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 7510: 000abe04 andeq fp, sl, r4, lsl #28 + 7514: 38020500 stmdacc r2, {r8, sl} + 7518: 05004019 streq r4, [r0, #-25] + 751c: 0aa40301 beq fe908128 + 7520: 1603050e strne r0, [r3], -lr, lsl #10 + 7524: 05170505 ldreq r0, [r7, #-1285] + 7528: 197e0303 ldmdbne lr!, {r0, r1, r8, r9}^ + 752c: 00060236 andeq r0, r6, r6, lsr r2 + 7530: 00000101 andeq r0, r0, r1, lsl #2 + +Disassembly of section .debug_loc: + +00000000 <.debug_loc>: + 0: 00000000 andeq r0, r0, r0 + 4: 00000002 andeq r0, r0, r2 + 8: 007d0002 rsbseq r0, sp, r2 + c: 00000002 andeq r0, r0, r2 + 10: 0000001c andeq r0, r0, ip, lsl r0 + 14: 087d0002 ldmdaeq sp!, {r1}^ + 18: 0000001c andeq r0, r0, ip, lsl r0 + 1c: 00000024 andeq r0, r0, r4, lsr #32 + 20: 007d0002 rsbseq r0, sp, r2 + ... + 2c: 0000000a andeq r0, r0, sl + 30: 0000001a andeq r0, r0, sl, lsl r0 + 34: 1a500001 bne 1400040 + 38: 24000000 strcs r0, [r0] + ... + 48: 00000c00 andeq r0, r0, r0, lsl #24 + 4c: 00001600 andeq r1, r0, r0, lsl #12 + 50: 91000200 tstls r0, r0, lsl #4 + 54: 00001678 andeq r1, r0, r8, ror r6 + 58: 00002400 andeq r2, r0, r0, lsl #8 + ... + 68: 02000000 andeq r0, r0, #0 ; 0x0 + 6c: 02000000 andeq r0, r0, #0 ; 0x0 + 70: 02007d00 andeq r7, r0, #0 ; 0x0 + 74: 1c000000 stcne 0, cr0, [r0], {0} + 78: 02000000 andeq r0, r0, #0 ; 0x0 + 7c: 1c087d00 stcne 13, cr7, [r8], {0} + 80: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} + 84: 02000000 andeq r0, r0, #0 ; 0x0 + 88: 00007d00 andeq r7, r0, r0, lsl #26 + 8c: 00000000 andeq r0, r0, r0 + 90: 0a000000 beq 98 + 94: 1a000000 bne 9c + 98: 01000000 tsteq r0, r0 + 9c: 001a5000 andseq r5, sl, r0 + a0: 001e0000 andseq r0, lr, r0 + ... + b0: 0000000c andeq r0, r0, ip + b4: 00000016 andeq r0, r0, r6, lsl r0 + b8: 78910002 ldmvc r1, {r1} + bc: 00000016 andeq r0, r0, r6, lsl r0 + c0: 0000001e andeq r0, r0, lr, lsl r0 + ... + d0: 00020000 andeq r0, r2, r0 + d4: 00020000 andeq r0, r2, r0 + d8: 0002007d andeq r0, r2, sp, ror r0 + dc: 01ea0000 mvneq r0, r0 + e0: 00020000 andeq r0, r2, r0 + e4: 01ea107d mvneq r1, sp, ror r0 + e8: 01ec0000 mvneq r0, r0 + ec: 00020000 andeq r0, r2, r0 + f0: 01ec0c7d mvneq r0, sp, ror ip + f4: 01f00000 mvnseq r0, r0 + f8: 00020000 andeq r0, r2, r0 + fc: 01f0047d mvnseq r0, sp, ror r4 + 100: 01f20000 mvnseq r0, r0 + 104: 00020000 andeq r0, r2, r0 + 108: 0000007d andeq r0, r0, sp, ror r0 + ... + 114: 00020000 andeq r0, r2, r0 + 118: 00020000 andeq r0, r2, r0 + 11c: 0002007d andeq r0, r2, sp, ror r0 + 120: 00520000 subseq r0, r2, r0 + 124: 00020000 andeq r0, r2, r0 + 128: 0052107d subseq r1, r2, sp, ror r0 + 12c: 00560000 subseq r0, r6, r0 + 130: 00020000 andeq r0, r2, r0 + 134: 0056047d subseq r0, r6, sp, ror r4 + 138: 00580000 subseq r0, r8, r0 + 13c: 00020000 andeq r0, r2, r0 + 140: 0000007d andeq r0, r0, sp, ror r0 + 144: 00000000 andeq r0, r0, r0 + 148: 001e0000 andseq r0, lr, r0 + 14c: 00500000 subseq r0, r0, r0 + 150: 00010000 andeq r0, r1, r0 + 154: 00005056 andeq r5, r0, r6, asr r0 + 158: 00005800 andeq r5, r0, r0, lsl #16 + ... + 164: 16000000 strne r0, [r0], -r0 + 168: 1c000000 stcne 0, cr0, [r0], {0} + 16c: 01000000 tsteq r0, r0 + 170: 001c5100 andseq r5, ip, r0, lsl #2 + 174: 00580000 subseq r0, r8, r0 + ... + 188: 00000002 andeq r0, r0, r2 + 18c: 007d0002 rsbseq r0, sp, r2 + 190: 00000002 andeq r0, r0, r2 + 194: 00000066 andeq r0, r0, r6, rrx + 198: 187d0002 ldmdane sp!, {r1}^ + 19c: 00000066 andeq r0, r0, r6, rrx + 1a0: 00000068 andeq r0, r0, r8, rrx + 1a4: 147d0002 ldrbtne r0, [sp], #-2 + ... + 1b0: 00000004 andeq r0, r0, r4 + 1b4: 00000012 andeq r0, r0, r2, lsl r0 + 1b8: 12500001 subsne r0, r0, #1 ; 0x1 + 1bc: 68000000 stmdavs r0, {} + ... + 1cc: 00000400 andeq r0, r0, r0, lsl #8 + 1d0: 00006400 andeq r6, r0, r0, lsl #8 + 1d4: 55000100 strpl r0, [r0, #-256] + 1d8: 00000064 andeq r0, r0, r4, rrx + 1dc: 00000068 andeq r0, r0, r8, rrx + ... + 1e8: 00420000 subeq r0, r2, r0 + 1ec: 00640000 rsbeq r0, r4, r0 + 1f0: 00010000 andeq r0, r1, r0 + 1f4: 00006457 andeq r6, r0, r7, asr r4 + 1f8: 00006800 andeq r6, r0, r0, lsl #16 + ... + 204: 18000000 stmdane r0, {} + 208: 38000000 stmdacc r0, {} + 20c: 01000000 tsteq r0, r0 + 210: 00385000 eorseq r5, r8, r0 + 214: 003e0000 eorseq r0, lr, r0 + ... + 224: 0000001c andeq r0, r0, ip, lsl r0 + 228: 00000038 andeq r0, r0, r8, lsr r0 + 22c: 38510001 ldmdacc r1, {r0}^ + 230: 3e000000 cdpcc 0, 0, cr0, cr0, cr0, {0} + ... + 240: 00002000 andeq r2, r0, r0 + 244: 00003c00 andeq r3, r0, r0, lsl #24 + 248: 57000100 strpl r0, [r0, -r0, lsl #2] + 24c: 0000003c andeq r0, r0, ip, lsr r0 + 250: 0000003e andeq r0, r0, lr, lsr r0 + ... + 25c: 00440000 subeq r0, r4, r0 + 260: 00640000 rsbeq r0, r4, r0 + 264: 00010000 andeq r0, r1, r0 + 268: 00000054 andeq r0, r0, r4, asr r0 + ... + 274: 00000200 andeq r0, r0, r0, lsl #4 + 278: 7d000200 sfmvc f0, 4, [r0] + 27c: 00000200 andeq r0, r0, r0, lsl #4 + 280: 00000400 andeq r0, r0, r0, lsl #8 + 284: 7d000200 sfmvc f0, 4, [r0] + 288: 0000041c andeq r0, r0, ip, lsl r4 + 28c: 00018800 andeq r8, r1, r0, lsl #16 + 290: 7d000300 stcvc 3, cr0, [r0] + 294: 018800d0 ldrdeq r0, [r8, r0] + 298: 01940000 orrseq r0, r4, r0 + 29c: 00020000 andeq r0, r2, r0 + 2a0: 0000147d andeq r1, r0, sp, ror r4 + 2a4: 00000000 andeq r0, r0, r0 + 2a8: 00060000 andeq r0, r6, r0 + 2ac: 00c60000 sbceq r0, r6, r0 + 2b0: 00020000 andeq r0, r2, r0 + 2b4: 00c66491 smulleq r6, r6, r1, r4 + 2b8: 00f40000 rscseq r0, r4, r0 + 2bc: 00000000 andeq r0, r0, r0 + 2c0: 000000f4 strdeq r0, [r0], -r4 + 2c4: 00000160 andeq r0, r0, r0, ror #2 + 2c8: 64910002 ldrvs r0, [r1], #2 + 2cc: 00000160 andeq r0, r0, r0, ror #2 + 2d0: 00000194 muleq r0, r4, r1 + ... + 2dc: 00060000 andeq r0, r6, r0 + 2e0: 00680000 rsbeq r0, r8, r0 + 2e4: 00010000 andeq r0, r1, r0 + 2e8: 00006854 andeq r6, r0, r4, asr r8 + 2ec: 00007c00 andeq r7, r0, r0, lsl #24 + 2f0: 7c000000 stcvc 0, cr0, [r0], {0} + 2f4: 9c000000 stcls 0, cr0, [r0], {0} + 2f8: 01000000 tsteq r0, r0 + 2fc: 009c5400 addseq r5, ip, r0, lsl #8 + 300: 00f40000 rscseq r0, r4, r0 + 304: 00000000 andeq r0, r0, r0 + 308: 000000f4 strdeq r0, [r0], -r4 + 30c: 0000011c andeq r0, r0, ip, lsl r1 + 310: 1c540001 mrrcne 0, 0, r0, r4, cr1 + 314: 94000001 strls r0, [r0], #-1 + 318: 00000001 andeq r0, r0, r1 + ... + 324: 00000600 andeq r0, r0, r0, lsl #12 + 328: 0000ee00 andeq lr, r0, r0, lsl #28 + 32c: 91000200 tstls r0, r0, lsl #4 + 330: 0000ee68 andeq lr, r0, r8, ror #28 + 334: 0000f400 andeq pc, r0, r0, lsl #8 + 338: f4000000 vst4.8 {d0-d3}, [r0], r0 + 33c: 82000000 andhi r0, r0, #0 ; 0x0 + 340: 02000001 andeq r0, r0, #1 ; 0x1 + 344: 82689100 rsbhi r9, r8, #0 ; 0x0 + 348: 94000001 strls r0, [r0], #-1 + 34c: 00000001 andeq r0, r0, r1 + ... + 358: 00000600 andeq r0, r0, r0, lsl #12 + 35c: 00001a00 andeq r1, r0, r0, lsl #20 + 360: 53000100 movwpl r0, #256 ; 0x100 + 364: 0000001a andeq r0, r0, sl, lsl r0 + 368: 000000f4 strdeq r0, [r0], -r4 + 36c: 00f40000 rscseq r0, r4, r0 + 370: 00fc0000 rscseq r0, ip, r0 + 374: 00010000 andeq r0, r1, r0 + 378: 0000fc53 andeq pc, r0, r3, asr ip + 37c: 00019400 andeq r9, r1, r0, lsl #8 + ... + 388: 08000000 stmdaeq r0, {} + 38c: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} + 390: 01000000 tsteq r0, r0 + 394: 001e5500 andseq r5, lr, r0, lsl #10 + 398: 00280000 eoreq r0, r8, r0 + 39c: 00000000 andeq r0, r0, r0 + 3a0: 00000028 andeq r0, r0, r8, lsr #32 + 3a4: 00000030 andeq r0, r0, r0, lsr r0 + 3a8: 30550001 subscc r0, r5, r1 + 3ac: 3a000000 bcc 3b4 <__ABT_stack_size+0x2b4> + 3b0: 00000000 andeq r0, r0, r0 + 3b4: 00003a00 andeq r3, r0, r0, lsl #20 + 3b8: 00004000 andeq r4, r0, r0 + 3bc: 55000100 strpl r0, [r0, #-256] + 3c0: 00000040 andeq r0, r0, r0, asr #32 + 3c4: 00000048 andeq r0, r0, r8, asr #32 + 3c8: 00480000 subeq r0, r8, r0 + 3cc: 009c0000 addseq r0, ip, r0 + 3d0: 00010000 andeq r0, r1, r0 + 3d4: 00009c55 andeq r9, r0, r5, asr ip + 3d8: 00019400 andeq r9, r1, r0, lsl #8 + ... + 3ec: 10000000 andne r0, r0, r0 + 3f0: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} + 3f4: 03000000 movweq r0, #0 ; 0x0 + 3f8: 7fb09100 svcvc 0x00b09100 + 3fc: 0000001e andeq r0, r0, lr, lsl r0 + 400: 00000024 andeq r0, r0, r4, lsr #32 + 404: 00240000 eoreq r0, r4, r0 + 408: 00300000 eorseq r0, r0, r0 + 40c: 00030000 andeq r0, r3, r0 + 410: 307fb091 ldrbtcc fp, [pc, #-1] ; 417 <__FIQ_stack_size+0x17> + 414: 36000000 strcc r0, [r0], -r0 + 418: 00000000 andeq r0, r0, r0 + 41c: 00003600 andeq r3, r0, r0, lsl #12 + 420: 00004000 andeq r4, r0, r0 + 424: 91000300 tstls r0, r0, lsl #6 + 428: 00407fb0 strheq r7, [r0], #-240 + 42c: 00460000 subeq r0, r6, r0 + 430: 00000000 andeq r0, r0, r0 + 434: 00000046 andeq r0, r0, r6, asr #32 + 438: 0000009c muleq r0, ip, r0 + 43c: b0910003 addslt r0, r1, r3 + 440: 00009c7f andeq r9, r0, pc, ror ip + 444: 00019400 andeq r9, r1, r0, lsl #8 + ... + 450: 10000000 andne r0, r0, r0 + 454: 9c000000 stcls 0, cr0, [r0], {0} + 458: 01000000 tsteq r0, r0 + 45c: 009c5600 addseq r5, ip, r0, lsl #12 + 460: 00ca0000 sbceq r0, sl, r0 + 464: 00000000 andeq r0, r0, r0 + 468: 000000ca andeq r0, r0, sl, asr #1 + 46c: 000000e4 andeq r0, r0, r4, ror #1 + 470: e4560001 ldrb r0, [r6], #-1 + 474: f4000000 vst4.8 {d0-d3}, [r0], r0 + 478: 00000000 andeq r0, r0, r0 + 47c: 0000f400 andeq pc, r0, r0, lsl #8 + 480: 00013400 andeq r3, r1, r0, lsl #8 + 484: 56000100 strpl r0, [r0], -r0, lsl #2 + 488: 00000134 andeq r0, r0, r4, lsr r1 + 48c: 00000162 andeq r0, r0, r2, ror #2 + 490: 01620000 cmneq r2, r0 + 494: 017c0000 cmneq ip, r0 + 498: 00010000 andeq r0, r1, r0 + 49c: 00017c56 andeq r7, r1, r6, asr ip + 4a0: 00019400 andeq r9, r1, r0, lsl #8 + ... + 4ac: 12000000 andne r0, r0, #0 ; 0x0 + 4b0: 68000000 stmdavs r0, {} + 4b4: 01000000 tsteq r0, r0 + 4b8: 00685700 rsbeq r5, r8, r0, lsl #14 + 4bc: 00700000 rsbseq r0, r0, r0 + 4c0: 00000000 andeq r0, r0, r0 + 4c4: 00000070 andeq r0, r0, r0, ror r0 + 4c8: 0000007c andeq r0, r0, ip, ror r0 + 4cc: 7c570001 mrrcvc 0, 0, r0, r7, cr1 + 4d0: 84000000 strhi r0, [r0] + 4d4: 00000000 andeq r0, r0, r0 + 4d8: 00008400 andeq r8, r0, r0, lsl #8 + 4dc: 0000a600 andeq sl, r0, r0, lsl #12 + 4e0: 57000100 strpl r0, [r0, -r0, lsl #2] + 4e4: 000000a6 andeq r0, r0, r6, lsr #1 + 4e8: 000000ac andeq r0, r0, ip, lsr #1 + 4ec: 00ac0000 adceq r0, ip, r0 + 4f0: 00e80000 rsceq r0, r8, r0 + 4f4: 00010000 andeq r0, r1, r0 + 4f8: 0000e857 andeq lr, r0, r7, asr r8 + 4fc: 0000f400 andeq pc, r0, r0, lsl #8 + 500: f4000000 vst4.8 {d0-d3}, [r0], r0 + 504: 20000000 andcs r0, r0, r0 + 508: 01000001 tsteq r0, r1 + 50c: 01205700 teqeq r0, r0, lsl #14 + 510: 012e0000 teqeq lr, r0 + 514: 00000000 andeq r0, r0, r0 + 518: 0000012e andeq r0, r0, lr, lsr #2 + 51c: 00000134 andeq r0, r0, r4, lsr r1 + 520: 34570001 ldrbcc r0, [r7], #-1 + 524: 46000001 strmi r0, [r0], -r1 + 528: 00000001 andeq r0, r0, r1 + 52c: 00014600 andeq r4, r1, r0, lsl #12 + 530: 00017c00 andeq r7, r1, r0, lsl #24 + 534: 57000100 strpl r0, [r0, -r0, lsl #2] + 538: 0000017c andeq r0, r0, ip, ror r1 + 53c: 00000194 muleq r0, r4, r1 + ... + 548: 00060000 andeq r0, r6, r0 + 54c: 01860000 orreq r0, r6, r0 + 550: 00020000 andeq r0, r2, r0 + 554: 01865c91 strbeq r5, [r6, r1] + 558: 01940000 orrseq r0, r4, r0 + ... + 568: 00000006 andeq r0, r0, r6 + 56c: 00000186 andeq r0, r0, r6, lsl #3 + 570: 54910002 ldrpl r0, [r1], #2 + 574: 00000186 andeq r0, r0, r6, lsl #3 + 578: 00000194 muleq r0, r4, r1 + ... + 584: 00060000 andeq r0, r6, r0 + 588: 01860000 orreq r0, r6, r0 + 58c: 00030000 andeq r0, r3, r0 + 590: 867fb891 undefined + 594: 94000001 strls r0, [r0], #-1 + 598: 00000001 andeq r0, r0, r1 + ... + 5a4: 00000600 andeq r0, r0, r0, lsl #12 + 5a8: 00018600 andeq r8, r1, r0, lsl #12 + 5ac: 91000200 tstls r0, r0, lsl #4 + 5b0: 00018640 andeq r8, r1, r0, asr #12 + 5b4: 00019400 andeq r9, r1, r0, lsl #8 + ... + 5c4: 02000000 andeq r0, r0, #0 ; 0x0 + 5c8: 02000000 andeq r0, r0, #0 ; 0x0 + 5cc: 02007d00 andeq r7, r0, #0 ; 0x0 + 5d0: 04000000 streq r0, [r0] + 5d4: 02000000 andeq r0, r0, #0 ; 0x0 + 5d8: 04247d00 strteq r7, [r4], #-3328 + 5dc: d0000000 andle r0, r0, r0 + 5e0: 03000001 movweq r0, #1 ; 0x1 + 5e4: 00e87d00 rsceq r7, r8, r0, lsl #26 + 5e8: 000001d0 ldrdeq r0, [r0], -r0 + 5ec: 000001d2 ldrdeq r0, [r0], -r2 + 5f0: 147d0002 ldrbtne r0, [sp], #-2 + 5f4: 000001d2 ldrdeq r0, [r0], -r2 + 5f8: 000001f0 strdeq r0, [r0], -r0 + 5fc: e87d0003 ldmda sp!, {r0, r1}^ + ... + 608: 00000400 andeq r0, r0, r0, lsl #8 + 60c: 00010600 andeq r0, r1, r0, lsl #12 + 610: 91000200 tstls r0, r0, lsl #4 + 614: 0001065c andeq r0, r1, ip, asr r6 + 618: 00012400 andeq r2, r1, r0, lsl #8 + 61c: 24000000 strcs r0, [r0] + 620: a2000001 andge r0, r0, #1 ; 0x1 + 624: 02000001 andeq r0, r0, #1 ; 0x1 + 628: a25c9100 subsge r9, ip, #0 ; 0x0 + 62c: f0000001 undefined instruction 0xf0000001 + 630: 00000001 andeq r0, r0, r1 + ... + 63c: 00000400 andeq r0, r0, r0, lsl #8 + 640: 0000e600 andeq lr, r0, r0, lsl #12 + 644: 91000200 tstls r0, r0, lsl #4 + 648: 0000e660 andeq lr, r0, r0, ror #12 + 64c: 00012400 andeq r2, r1, r0, lsl #8 + 650: 24000000 strcs r0, [r0] + 654: 5e000001 cdppl 0, 0, cr0, cr0, cr1, {0} + 658: 02000001 andeq r0, r0, #1 ; 0x1 + 65c: 5e609100 lgnpls f1, f0 + 660: f0000001 undefined instruction 0xf0000001 + 664: 00000001 andeq r0, r0, r1 + ... + 670: 00000400 andeq r0, r0, r0, lsl #8 + 674: 0001ca00 andeq ip, r1, r0, lsl #20 + 678: 91000200 tstls r0, r0, lsl #4 + 67c: 0001ca64 andeq ip, r1, r4, ror #20 + 680: 0001d200 andeq sp, r1, r0, lsl #4 + 684: d2000000 andle r0, r0, #0 ; 0x0 + 688: d8000001 stmdale r0, {r0} + 68c: 02000001 andeq r0, r0, #1 ; 0x1 + 690: d8649100 stmdale r4!, {r8, ip, pc}^ + 694: f0000001 undefined instruction 0xf0000001 + 698: 00000001 andeq r0, r0, r1 + ... + 6a4: 00000400 andeq r0, r0, r0, lsl #8 + 6a8: 00002600 andeq r2, r0, r0, lsl #12 + 6ac: 91000200 tstls r0, r0, lsl #4 + 6b0: 00002668 andeq r2, r0, r8, ror #12 + 6b4: 00012400 andeq r2, r1, r0, lsl #8 + 6b8: 24000000 strcs r0, [r0] + 6bc: 2e000001 cdpcs 0, 0, cr0, cr0, cr1, {0} + 6c0: 02000001 andeq r0, r0, #1 ; 0x1 + 6c4: 2e689100 lgncse f1, f0 + 6c8: f0000001 undefined instruction 0xf0000001 + 6cc: 00000001 andeq r0, r0, r1 + ... + 6d8: 00000600 andeq r0, r0, r0, lsl #12 + 6dc: 00003a00 andeq r3, r0, r0, lsl #20 + 6e0: 56000100 strpl r0, [r0], -r0, lsl #2 + 6e4: 0000003a andeq r0, r0, sl, lsr r0 + 6e8: 00000044 andeq r0, r0, r4, asr #32 + 6ec: 00440000 subeq r0, r4, r0 + 6f0: 00500000 subseq r0, r0, r0 + 6f4: 00010000 andeq r0, r1, r0 + 6f8: 00005056 andeq r5, r0, r6, asr r0 + 6fc: 00005800 andeq r5, r0, r0, lsl #16 + 700: 58000000 stmdapl r0, {} + 704: e6000000 str r0, [r0], -r0 + 708: 01000000 tsteq r0, r0 + 70c: 00e65600 rsceq r5, r6, r0, lsl #12 + 710: 01f00000 mvnseq r0, r0 + ... + 728: 0000000e andeq r0, r0, lr + 72c: 0000003a andeq r0, r0, sl, lsr r0 + 730: a0910003 addsge r0, r1, r3 + 734: 00003a7f andeq r3, r0, pc, ror sl + 738: 00004000 andeq r4, r0, r0 + 73c: 40000000 andmi r0, r0, r0 + 740: 50000000 andpl r0, r0, r0 + 744: 03000000 movweq r0, #0 ; 0x0 + 748: 7fa09100 svcvc 0x00a09100 + 74c: 00000050 andeq r0, r0, r0, asr r0 + 750: 00000054 andeq r0, r0, r4, asr r0 + 754: 00540000 subseq r0, r4, r0 + 758: 00e60000 rsceq r0, r6, r0 + 75c: 00030000 andeq r0, r3, r0 + 760: e67fa091 undefined + 764: f0000000 undefined instruction 0xf0000000 + 768: 00000001 andeq r0, r0, r1 + ... + 774: 00000e00 andeq r0, r0, r0, lsl #28 + 778: 00012200 andeq r2, r1, r0, lsl #4 + 77c: 54000100 strpl r0, [r0], #-256 + 780: 00000122 andeq r0, r0, r2, lsr #2 + 784: 00000124 andeq r0, r0, r4, lsr #2 + 788: 01240000 teqeq r4, r0 + 78c: 01760000 cmneq r6, r0 + 790: 00010000 andeq r0, r1, r0 + 794: 00017654 andeq r7, r1, r4, asr r6 + 798: 0001a600 andeq sl, r1, r0, lsl #12 + 79c: a6000000 strge r0, [r0], -r0 + 7a0: be000001 cdplt 0, 0, cr0, cr0, cr1, {0} + 7a4: 01000001 tsteq r0, r1 + 7a8: 01be5400 undefined instruction 0x01be5400 + 7ac: 01f00000 mvnseq r0, r0 + ... + 7bc: 00000018 andeq r0, r0, r8, lsl r0 + 7c0: 00000080 andeq r0, r0, r0, lsl #1 + 7c4: 80550001 subshi r0, r5, r1 + 7c8: 88000000 stmdahi r0, {} + 7cc: 00000000 andeq r0, r0, r0 + 7d0: 00008800 andeq r8, r0, r0, lsl #16 + 7d4: 00009800 andeq r9, r0, r0, lsl #16 + 7d8: 55000100 strpl r0, [r0, #-256] + 7dc: 00000098 muleq r0, r8, r0 + 7e0: 000000a0 andeq r0, r0, r0, lsr #1 + 7e4: 00a00000 adceq r0, r0, r0 + 7e8: 00e60000 rsceq r0, r6, r0 + 7ec: 00010000 andeq r0, r1, r0 + 7f0: 0000e655 andeq lr, r0, r5, asr r6 + 7f4: 0000ec00 andeq lr, r0, r0, lsl #24 + 7f8: ec000000 stc 0, cr0, [r0], {0} + 7fc: 22000000 andcs r0, r0, #0 ; 0x0 + 800: 01000001 tsteq r0, r1 + 804: 01225500 teqeq r2, r0, lsl #10 + 808: 01240000 teqeq r4, r0 + 80c: 00000000 andeq r0, r0, r0 + 810: 00000124 andeq r0, r0, r4, lsr #2 + 814: 00000162 andeq r0, r0, r2, ror #2 + 818: 62550001 subsvs r0, r5, #1 ; 0x1 + 81c: 70000001 andvc r0, r0, r1 + 820: 00000001 andeq r0, r0, r1 + 824: 00017000 andeq r7, r1, r0 + 828: 00017600 andeq r7, r1, r0, lsl #12 + 82c: 55000100 strpl r0, [r0, #-256] + 830: 00000176 andeq r0, r0, r6, ror r1 + 834: 00000188 andeq r0, r0, r8, lsl #3 + 838: 01880000 orreq r0, r8, r0 + 83c: 01c40000 biceq r0, r4, r0 + 840: 00010000 andeq r0, r1, r0 + 844: 0001c455 andeq ip, r1, r5, asr r4 + 848: 0001f000 andeq pc, r1, r0 + ... + 854: 04000000 streq r0, [r0] + 858: dc000000 stcle 0, cr0, [r0], {0} + 85c: 02000001 andeq r0, r0, #1 ; 0x1 + 860: dc509100 ldflep f1, [r0], {0} + 864: f0000001 undefined instruction 0xf0000001 + 868: 00000001 andeq r0, r0, r1 + ... + 874: 00000400 andeq r0, r0, r0, lsl #8 + 878: 0001dc00 andeq sp, r1, r0, lsl #24 + 87c: 91000200 tstls r0, r0, lsl #4 + 880: 0001dc48 andeq sp, r1, r8, asr #24 + 884: 0001f000 andeq pc, r1, r0 + ... + 890: 04000000 streq r0, [r0] + 894: dc000000 stcle 0, cr0, [r0], {0} + 898: 03000001 movweq r0, #1 ; 0x1 + 89c: 7fac9100 svcvc 0x00ac9100 + 8a0: 000001dc ldrdeq r0, [r0], -ip + 8a4: 000001f0 strdeq r0, [r0], -r0 + ... + 8b0: 00180000 andseq r0, r8, r0 + 8b4: 01dc0000 bicseq r0, ip, r0 + 8b8: 00030000 andeq r0, r3, r0 + 8bc: dc7fb491 cfldrdle mvd11, [pc], #-580 + 8c0: f0000001 undefined instruction 0xf0000001 + 8c4: 00000001 andeq r0, r0, r1 + ... + 8d0: 00002e00 andeq r2, r0, r0, lsl #28 + 8d4: 00008000 andeq r8, r0, r0 + 8d8: 91000300 tstls r0, r0, lsl #6 + 8dc: 00807f98 umulleq r7, r0, r8, pc + 8e0: 00980000 addseq r0, r8, r0 + 8e4: 00000000 andeq r0, r0, r0 + 8e8: 00000098 muleq r0, r8, r0 + 8ec: 000000b0 strheq r0, [r0], -r0 + 8f0: 98910003 ldmls r1, {r0, r1} + 8f4: 0000b07f andeq fp, r0, pc, ror r0 + 8f8: 0000d000 andeq sp, r0, r0 + 8fc: d0000000 andle r0, r0, r0 + 900: e6000000 str r0, [r0], -r0 + 904: 03000000 movweq r0, #0 ; 0x0 + 908: 7f989100 svcvc 0x00989100 + 90c: 000000e6 andeq r0, r0, r6, ror #1 + 910: 000001f0 strdeq r0, [r0], -r0 + ... + 91c: 00300000 eorseq r0, r0, r0 + 920: 00e60000 rsceq r0, r6, r0 + 924: 00030000 andeq r0, r3, r0 + 928: e67f9c91 undefined + 92c: f0000000 undefined instruction 0xf0000000 + 930: 00000001 andeq r0, r0, r1 + ... + 940: 00000200 andeq r0, r0, r0, lsl #4 + 944: 7d000200 sfmvc f0, 4, [r0] + 948: 00000200 andeq r0, r0, r0, lsl #4 + 94c: 00005000 andeq r5, r0, r0 + 950: 7d000200 sfmvc f0, 4, [r0] + 954: 00000008 andeq r0, r0, r8 + 958: 00000000 andeq r0, r0, r0 + 95c: 00000400 andeq r0, r0, r0, lsl #8 + 960: 00004600 andeq r4, r0, r0, lsl #12 + 964: 54000100 strpl r0, [r0], #-256 + 968: 00000046 andeq r0, r0, r6, asr #32 + 96c: 00000050 andeq r0, r0, r0, asr r0 + ... + 984: 00020000 andeq r0, r2, r0 + 988: 00020000 andeq r0, r2, r0 + 98c: 0002007d andeq r0, r2, sp, ror r0 + 990: 00480000 subeq r0, r8, r0 + 994: 00020000 andeq r0, r2, r0 + 998: 0000087d andeq r0, r0, sp, ror r8 + 99c: 00000000 andeq r0, r0, r0 + 9a0: 00040000 andeq r0, r4, r0 + 9a4: 003c0000 eorseq r0, ip, r0 + 9a8: 00010000 andeq r0, r1, r0 + 9ac: 00003c54 andeq r3, r0, r4, asr ip + 9b0: 00004800 andeq r4, r0, r0, lsl #16 + ... + 9c8: 20000000 andcs r0, r0, r0 + 9cc: 02000000 andeq r0, r0, #0 ; 0x0 + 9d0: 00007d00 andeq r7, r0, r0, lsl #26 + ... + 9dc: 0e000000 cdpeq 0, 0, cr0, cr0, cr0, {0} + 9e0: 01000000 tsteq r0, r0 + 9e4: 000e5000 andeq r5, lr, r0 + 9e8: 00200000 eoreq r0, r0, r0 + ... + 9fc: 00000002 andeq r0, r0, r2 + a00: 007d0002 rsbseq r0, sp, r2 + a04: 00000002 andeq r0, r0, r2 + a08: 00000012 andeq r0, r0, r2, lsl r0 + a0c: 087d0002 ldmdaeq sp!, {r1}^ + a10: 00000012 andeq r0, r0, r2, lsl r0 + a14: 00000016 andeq r0, r0, r6, lsl r0 + a18: 007d0002 rsbseq r0, sp, r2 + ... + a24: 00000002 andeq r0, r0, r2 + a28: 0000000a andeq r0, r0, sl + a2c: 0a500001 beq 1400a38 + a30: 16000000 strne r0, [r0], -r0 + ... + a40: 00000a00 andeq r0, r0, r0, lsl #20 + a44: 00000c00 andeq r0, r0, r0, lsl #24 + a48: 51000100 tstpl r0, r0, lsl #2 + a4c: 0000000c andeq r0, r0, ip + a50: 00000016 andeq r0, r0, r6, lsl r0 + ... + a60: 00020000 andeq r0, r2, r0 + a64: 00020000 andeq r0, r2, r0 + a68: 0002007d andeq r0, r2, sp, ror r0 + a6c: 00040000 andeq r0, r4, r0 + a70: 00020000 andeq r0, r2, r0 + a74: 0004147d andeq r1, r4, sp, ror r4 + a78: 01280000 teqeq r8, r0 + a7c: 00020000 andeq r0, r2, r0 + a80: 0000207d andeq r2, r0, sp, ror r0 + a84: 00000000 andeq r0, r0, r0 + a88: 00080000 andeq r0, r8, r0 + a8c: 00440000 subeq r0, r4, r0 + a90: 00010000 andeq r0, r1, r0 + a94: 00004455 andeq r4, r0, r5, asr r4 + a98: 00012800 andeq r2, r1, r0, lsl #16 + ... + aa4: 08000000 stmdaeq r0, {} + aa8: 12000000 andne r0, r0, #0 ; 0x0 + aac: 01000001 tsteq r0, r1 + ab0: 01125400 tsteq r2, r0, lsl #8 + ab4: 01280000 teqeq r8, r0 + ... + ac4: 00000008 andeq r0, r0, r8 + ac8: 00000112 andeq r0, r0, r2, lsl r1 + acc: 12570001 subsne r0, r7, #1 ; 0x1 + ad0: 28000001 stmdacs r0, {r0} + ad4: 00000001 andeq r0, r0, r1 + ... + ae0: 00001800 andeq r1, r0, r0, lsl #16 + ae4: 00002a00 andeq r2, r0, r0, lsl #20 + ae8: 56000100 strpl r0, [r0], -r0, lsl #2 + aec: 0000002a andeq r0, r0, sl, lsr #32 + af0: 00000128 andeq r0, r0, r8, lsr #2 + ... + afc: 00ee0000 rsceq r0, lr, r0 + b00: 01180000 tsteq r8, r0 + b04: 00010000 andeq r0, r1, r0 + b08: 00011855 andeq r1, r1, r5, asr r8 + b0c: 00011e00 andeq r1, r1, r0, lsl #28 + b10: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} + b14: 22000001 andcs r0, r0, #1 ; 0x1 + b18: 01000001 tsteq r0, r1 + b1c: 01225500 teqeq r2, r0, lsl #10 + b20: 01280000 teqeq r8, r0 + ... + b40: 0000006c andeq r0, r0, ip, rrx + b44: 0000007c andeq r0, r0, ip, ror r0 + b48: 68910002 ldmvs r1, {r1} + ... + b5c: 000000c6 andeq r0, r0, r6, asr #1 + b60: 000000ce andeq r0, r0, lr, asr #1 + b64: 00550001 subseq r0, r5, r1 + b68: 00000000 andeq r0, r0, r0 + b6c: b6000000 strlt r0, [r0], -r0 + b70: ce000000 cdpgt 0, 0, cr0, cr0, cr0, {0} + b74: 02000000 andeq r0, r0, #0 ; 0x0 + b78: 00649100 rsbeq r9, r4, r0, lsl #2 + ... + b84: 02000000 andeq r0, r0, #0 ; 0x0 + b88: 02000000 andeq r0, r0, #0 ; 0x0 + b8c: 02007d00 andeq r7, r0, #0 ; 0x0 + b90: 04000000 streq r0, [r0] + b94: 02000000 andeq r0, r0, #0 ; 0x0 + b98: 04187d00 ldreq r7, [r8], #-3328 + b9c: c8000000 stmdagt r0, {} + ba0: 02000000 andeq r0, r0, #0 ; 0x0 + ba4: 00207d00 eoreq r7, r0, r0, lsl #26 + ba8: 00000000 andeq r0, r0, r0 + bac: 06000000 streq r0, [r0], -r0 + bb0: 38000000 stmdacc r0, {} + bb4: 01000000 tsteq r0, r0 + bb8: 00385000 eorseq r5, r8, r0 + bbc: 00c80000 sbceq r0, r8, r0 + ... + bcc: 00000006 andeq r0, r0, r6 + bd0: 000000c8 andeq r0, r0, r8, asr #1 + bd4: 68910002 ldmvs r1, {r1} + ... + be0: 00000006 andeq r0, r0, r6 + be4: 000000c8 andeq r0, r0, r8, asr #1 + be8: 00540001 subseq r0, r4, r1 + bec: 00000000 andeq r0, r0, r0 + bf0: 38000000 stmdacc r0, {} + bf4: c8000000 stmdagt r0, {} + ... + c04: 00003800 andeq r3, r0, r0, lsl #16 + c08: 00008000 andeq r8, r0, r0 + c0c: 56000100 strpl r0, [r0], -r0, lsl #2 + c10: 00000080 andeq r0, r0, r0, lsl #1 + c14: 000000c8 andeq r0, r0, r8, asr #1 + ... + c20: 00380000 eorseq r0, r8, r0 + c24: 00c80000 sbceq r0, r8, r0 + c28: 00010000 andeq r0, r1, r0 + c2c: 00000055 andeq r0, r0, r5, asr r0 + ... + c50: 00000200 andeq r0, r0, r0, lsl #4 + c54: 7d000200 sfmvc f0, 4, [r0] + c58: 00000200 andeq r0, r0, r0, lsl #4 + c5c: 00004000 andeq r4, r0, r0 + c60: 7d000200 sfmvc f0, 4, [r0] + c64: 00004010 andeq r4, r0, r0, lsl r0 + c68: 00004400 andeq r4, r0, r0, lsl #8 + c6c: 7d000200 sfmvc f0, 4, [r0] + c70: 00004404 andeq r4, r0, r4, lsl #8 + c74: 00004600 andeq r4, r0, r0, lsl #12 + c78: 7d000200 sfmvc f0, 4, [r0] + ... + c84: 00000800 andeq r0, r0, r0, lsl #16 + c88: 00002e00 andeq r2, r0, r0, lsl #28 + c8c: 54000100 strpl r0, [r0], #-256 + c90: 0000002e andeq r0, r0, lr, lsr #32 + c94: 00000046 andeq r0, r0, r6, asr #32 + ... + ca0: 00080000 andeq r0, r8, r0 + ca4: 003e0000 eorseq r0, lr, r0 + ca8: 00010000 andeq r0, r1, r0 + cac: 00003e55 andeq r3, r0, r5, asr lr + cb0: 00004600 andeq r4, r0, r0, lsl #12 + ... + cbc: 08000000 stmdaeq r0, {} + cc0: 16000000 strne r0, [r0], -r0 + cc4: 01000000 tsteq r0, r0 + cc8: 00165600 andseq r5, r6, r0, lsl #12 + ccc: 00460000 subeq r0, r6, r0 + ... + cdc: 0000002e andeq r0, r0, lr, lsr #32 + ce0: 0000003e andeq r0, r0, lr, lsr r0 + ce4: 3e540001 cdpcc 0, 5, cr0, cr4, cr1, {0} + ce8: 46000000 strmi r0, [r0], -r0 + ... + d14: 00000200 andeq r0, r0, r0, lsl #4 + d18: 7d000200 sfmvc f0, 4, [r0] + d1c: 00000200 andeq r0, r0, r0, lsl #4 + d20: 00005200 andeq r5, r0, r0, lsl #4 + d24: 7d000200 sfmvc f0, 4, [r0] + d28: 00005208 andeq r5, r0, r8, lsl #4 + d2c: 00005600 andeq r5, r0, r0, lsl #12 + d30: 7d000200 sfmvc f0, 4, [r0] + d34: 00005604 andeq r5, r0, r4, lsl #12 + d38: 00005800 andeq r5, r0, r0, lsl #16 + d3c: 7d000200 sfmvc f0, 4, [r0] + d40: 00005800 andeq r5, r0, r0, lsl #16 + d44: 00006000 andeq r6, r0, r0 + d48: 7d000200 sfmvc f0, 4, [r0] + d4c: 00000008 andeq r0, r0, r8 + d50: 00000000 andeq r0, r0, r0 + d54: 00000200 andeq r0, r0, r0, lsl #4 + d58: 00002200 andeq r2, r0, r0, lsl #4 + d5c: 50000100 andpl r0, r0, r0, lsl #2 + d60: 00000022 andeq r0, r0, r2, lsr #32 + d64: 00000060 andeq r0, r0, r0, rrx + ... + d74: 00020000 andeq r0, r2, r0 + d78: 00020000 andeq r0, r2, r0 + d7c: 0002007d andeq r0, r2, sp, ror r0 + d80: 00040000 andeq r0, r4, r0 + d84: 00020000 andeq r0, r2, r0 + d88: 0004187d andeq r1, r4, sp, ror r8 + d8c: 00600000 rsbeq r0, r0, r0 + d90: 00020000 andeq r0, r2, r0 + d94: 0000207d andeq r2, r0, sp, ror r0 + d98: 00000000 andeq r0, r0, r0 + d9c: 00080000 andeq r0, r8, r0 + da0: 00600000 rsbeq r0, r0, r0 + da4: 00020000 andeq r0, r2, r0 + da8: 00006891 muleq r0, r1, r8 + dac: 00000000 andeq r0, r0, r0 + db0: 00080000 andeq r0, r8, r0 + db4: 00600000 rsbeq r0, r0, r0 + db8: 00010000 andeq r0, r1, r0 + dbc: 00000057 andeq r0, r0, r7, asr r0 + dc0: 00000000 andeq r0, r0, r0 + dc4: 00000800 andeq r0, r0, r0, lsl #16 + dc8: 00006000 andeq r6, r0, r0 + dcc: 54000100 strpl r0, [r0], #-256 + ... + dec: 00000002 andeq r0, r0, r2 + df0: 007d0002 rsbseq r0, sp, r2 + df4: 00000002 andeq r0, r0, r2 + df8: 00000044 andeq r0, r0, r4, asr #32 + dfc: 107d0002 rsbsne r0, sp, r2 + e00: 00000044 andeq r0, r0, r4, asr #32 + e04: 00000046 andeq r0, r0, r6, asr #32 + e08: 0c7d0002 ldcleq 0, cr0, [sp], #-8 + e0c: 00000046 andeq r0, r0, r6, asr #32 + e10: 0000004a andeq r0, r0, sl, asr #32 + e14: 047d0002 ldrbteq r0, [sp], #-2 + e18: 0000004a andeq r0, r0, sl, asr #32 + e1c: 0000004c andeq r0, r0, ip, asr #32 + e20: 007d0002 rsbseq r0, sp, r2 + ... + e30: 00000002 andeq r0, r0, r2 + e34: 007d0002 rsbseq r0, sp, r2 + e38: 00000002 andeq r0, r0, r2 + e3c: 00000018 andeq r0, r0, r8, lsl r0 + e40: 087d0002 ldmdaeq sp!, {r1}^ + e44: 00000018 andeq r0, r0, r8, lsl r0 + e48: 0000001c andeq r0, r0, ip, lsl r0 + e4c: 007d0002 rsbseq r0, sp, r2 + ... + e5c: 00000002 andeq r0, r0, r2 + e60: 007d0002 rsbseq r0, sp, r2 + e64: 00000002 andeq r0, r0, r2 + e68: 00000096 muleq r0, r6, r0 + e6c: 087d0002 ldmdaeq sp!, {r1}^ + e70: 00000096 muleq r0, r6, r0 + e74: 0000009a muleq r0, sl, r0 + e78: 047d0002 ldrbteq r0, [sp], #-2 + e7c: 0000009a muleq r0, sl, r0 + e80: 0000009c muleq r0, ip, r0 + e84: 007d0002 rsbseq r0, sp, r2 + ... + e90: 00000004 andeq r0, r0, r4 + e94: 00000074 andeq r0, r0, r4, ror r0 + e98: 74540001 ldrbvc r0, [r4], #-1 + e9c: 9c000000 stcls 0, cr0, [r0], {0} + ... + eb0: 00000200 andeq r0, r0, r0, lsl #4 + eb4: 7d000200 sfmvc f0, 4, [r0] + eb8: 00000200 andeq r0, r0, r0, lsl #4 + ebc: 00003600 andeq r3, r0, r0, lsl #12 + ec0: 7d000200 sfmvc f0, 4, [r0] + ec4: 00003608 andeq r3, r0, r8, lsl #12 + ec8: 00003a00 andeq r3, r0, r0, lsl #20 + ecc: 7d000200 sfmvc f0, 4, [r0] + ed0: 00003a04 andeq r3, r0, r4, lsl #20 + ed4: 00003c00 andeq r3, r0, r0, lsl #24 + ed8: 7d000200 sfmvc f0, 4, [r0] + ... + ee4: 00000400 andeq r0, r0, r0, lsl #8 + ee8: 00002c00 andeq r2, r0, r0, lsl #24 + eec: 54000100 strpl r0, [r0], #-256 + ef0: 0000002c andeq r0, r0, ip, lsr #32 + ef4: 0000003c andeq r0, r0, ip, lsr r0 + ... + f04: 00020000 andeq r0, r2, r0 + f08: 00020000 andeq r0, r2, r0 + f0c: 0002007d andeq r0, r2, sp, ror r0 + f10: 00040000 andeq r0, r4, r0 + f14: 00020000 andeq r0, r2, r0 + f18: 0004107d andeq r1, r4, sp, ror r0 + f1c: 00780000 rsbseq r0, r8, r0 + f20: 00020000 andeq r0, r2, r0 + f24: 0078187d rsbseq r1, r8, sp, ror r8 + f28: 007a0000 rsbseq r0, sl, r0 + f2c: 00020000 andeq r0, r2, r0 + f30: 007a107d rsbseq r1, sl, sp, ror r0 + f34: 007e0000 rsbseq r0, lr, r0 + f38: 00020000 andeq r0, r2, r0 + f3c: 007e047d rsbseq r0, lr, sp, ror r4 + f40: 00900000 addseq r0, r0, r0 + f44: 00020000 andeq r0, r2, r0 + f48: 0000007d andeq r0, r0, sp, ror r0 + f4c: 00000000 andeq r0, r0, r0 + f50: 00380000 eorseq r0, r8, r0 + f54: 004c0000 subeq r0, ip, r0 + f58: 00010000 andeq r0, r1, r0 + f5c: 00004c54 andeq r4, r0, r4, asr ip + f60: 00005200 andeq r5, r0, r0, lsl #4 + f64: 52000000 andpl r0, r0, #0 ; 0x0 + f68: 68000000 stmdavs r0, {} + f6c: 01000000 tsteq r0, r0 + f70: 00685200 rsbeq r5, r8, r0, lsl #4 + f74: 00900000 addseq r0, r0, r0 + ... + f84: 0000000e andeq r0, r0, lr + f88: 00000024 andeq r0, r0, r4, lsr #32 + f8c: 24520001 ldrbcs r0, [r2], #-1 + f90: 90000000 andls r0, r0, r0 + ... + fa0: 00001200 andeq r1, r0, r0, lsl #4 + fa4: 00001800 andeq r1, r0, r0, lsl #16 + fa8: 50000100 andpl r0, r0, r0, lsl #2 + fac: 00000018 andeq r0, r0, r8, lsl r0 + fb0: 00000090 muleq r0, r0, r0 + ... + fbc: 00180000 andseq r0, r8, r0 + fc0: 006a0000 rsbeq r0, sl, r0 + fc4: 00010000 andeq r0, r1, r0 + fc8: 00006a51 andeq r6, r0, r1, asr sl + fcc: 00009000 andeq r9, r0, r0 + ... + fe0: 24000000 strcs r0, [r0] + fe4: 26000000 strcs r0, [r0], -r0 + fe8: 01000000 tsteq r0, r0 + fec: 00265200 eoreq r5, r6, r0, lsl #4 + ff0: 00900000 addseq r0, r0, r0 + ... + 1000: 00000038 andeq r0, r0, r8, lsr r0 + 1004: 0000004c andeq r0, r0, ip, asr #32 + 1008: 68910002 ldmvs r1, {r1} + 100c: 0000004c andeq r0, r0, ip, asr #32 + 1010: 00000052 andeq r0, r0, r2, asr r0 + 1014: 00520000 subseq r0, r2, r0 + 1018: 00680000 rsbeq r0, r8, r0 + 101c: 00020000 andeq r0, r2, r0 + 1020: 00686891 mlseq r8, r1, r8, r6 + 1024: 00900000 addseq r0, r0, r0 + ... + 1038: 00000002 andeq r0, r0, r2 + 103c: 007d0002 rsbseq r0, sp, r2 + 1040: 00000002 andeq r0, r0, r2 + 1044: 00000166 andeq r0, r0, r6, ror #2 + 1048: 187d0002 ldmdane sp!, {r1}^ + 104c: 00000166 andeq r0, r0, r6, ror #2 + 1050: 00000168 andeq r0, r0, r8, ror #2 + 1054: 147d0002 ldrbtne r0, [sp], #-2 + 1058: 00000168 andeq r0, r0, r8, ror #2 + 105c: 0000016c andeq r0, r0, ip, ror #2 + 1060: 047d0002 ldrbteq r0, [sp], #-2 + 1064: 0000016c andeq r0, r0, ip, ror #2 + 1068: 00000184 andeq r0, r0, r4, lsl #3 + 106c: 007d0002 rsbseq r0, sp, r2 + ... + 1078: 00000006 andeq r0, r0, r6 + 107c: 00000018 andeq r0, r0, r8, lsl r0 + 1080: 18540001 ldmdane r4, {r0}^ + 1084: 24000000 strcs r0, [r0] + 1088: 00000000 andeq r0, r0, r0 + 108c: 00002400 andeq r2, r0, r0, lsl #8 + 1090: 00005c00 andeq r5, r0, r0, lsl #24 + 1094: 54000100 strpl r0, [r0], #-256 + 1098: 0000005c andeq r0, r0, ip, asr r0 + 109c: 00000098 muleq r0, r8, r0 + 10a0: 00980000 addseq r0, r8, r0 + 10a4: 00a40000 adceq r0, r4, r0 + 10a8: 00010000 andeq r0, r1, r0 + 10ac: 0000a454 andeq sl, r0, r4, asr r4 + 10b0: 0000ce00 andeq ip, r0, r0, lsl #28 + 10b4: ce000000 cdpgt 0, 0, cr0, cr0, cr0, {0} + 10b8: d8000000 stmdale r0, {} + 10bc: 01000000 tsteq r0, r0 + 10c0: 00d85400 sbcseq r5, r8, r0, lsl #8 + 10c4: 00e40000 rsceq r0, r4, r0 + 10c8: 00000000 andeq r0, r0, r0 + 10cc: 000000e4 andeq r0, r0, r4, ror #1 + 10d0: 000000ea andeq r0, r0, sl, ror #1 + 10d4: ea540001 b 15010e0 + 10d8: 24000000 strcs r0, [r0] + 10dc: 00000001 andeq r0, r0, r1 + 10e0: 00012400 andeq r2, r1, r0, lsl #8 + 10e4: 00012800 andeq r2, r1, r0, lsl #16 + 10e8: 54000100 strpl r0, [r0], #-256 + 10ec: 00000128 andeq r0, r0, r8, lsr #2 + 10f0: 00000134 andeq r0, r0, r4, lsr r1 + 10f4: 01340000 teqeq r4, r0 + 10f8: 013a0000 teqeq sl, r0 + 10fc: 00010000 andeq r0, r1, r0 + 1100: 00013a54 andeq r3, r1, r4, asr sl + 1104: 00014200 andeq r4, r1, r0, lsl #4 + 1108: 42000000 andmi r0, r0, #0 ; 0x0 + 110c: 4a000001 bmi 1118 <__USR_stack_size+0x918> + 1110: 01000001 tsteq r0, r1 + 1114: 014a5400 cmpeq sl, r0, lsl #8 + 1118: 01540000 cmpeq r4, r0 + 111c: 00000000 andeq r0, r0, r0 + 1120: 00000154 andeq r0, r0, r4, asr r1 + 1124: 0000015a andeq r0, r0, sl, asr r1 + 1128: 5a540001 bpl 1501134 + 112c: 84000001 strhi r0, [r0], #-1 + 1130: 00000001 andeq r0, r0, r1 + ... + 1140: 00004c00 andeq r4, r0, r0, lsl #24 + 1144: 7d000200 sfmvc f0, 4, [r0] + ... + 1154: 00000200 andeq r0, r0, r0, lsl #4 + 1158: 7d000200 sfmvc f0, 4, [r0] + 115c: 00000200 andeq r0, r0, r0, lsl #4 + 1160: 00001e00 andeq r1, r0, r0, lsl #28 + 1164: 7d000200 sfmvc f0, 4, [r0] + 1168: 00001e08 andeq r1, r0, r8, lsl #28 + 116c: 00002200 andeq r2, r0, r0, lsl #4 + 1170: 7d000200 sfmvc f0, 4, [r0] + ... + 1180: 00000200 andeq r0, r0, r0, lsl #4 + 1184: 7d000200 sfmvc f0, 4, [r0] + 1188: 00000200 andeq r0, r0, r0, lsl #4 + 118c: 00001400 andeq r1, r0, r0, lsl #8 + 1190: 7d000200 sfmvc f0, 4, [r0] + 1194: 00001408 andeq r1, r0, r8, lsl #8 + 1198: 00001600 andeq r1, r0, r0, lsl #12 + 119c: 7d000200 sfmvc f0, 4, [r0] + 11a0: 00001600 andeq r1, r0, r0, lsl #12 + 11a4: 00003200 andeq r3, r0, r0, lsl #4 + 11a8: 7d000200 sfmvc f0, 4, [r0] + 11ac: 00003208 andeq r3, r0, r8, lsl #4 + 11b0: 00003400 andeq r3, r0, r0, lsl #8 + 11b4: 7d000200 sfmvc f0, 4, [r0] + ... + 11c0: 00000200 andeq r0, r0, r0, lsl #4 + 11c4: 00001000 andeq r1, r0, r0 + 11c8: 50000100 andpl r0, r0, r0, lsl #2 + 11cc: 00000010 andeq r0, r0, r0, lsl r0 + 11d0: 00000016 andeq r0, r0, r6, lsl r0 + 11d4: 00160000 andseq r0, r6, r0 + 11d8: 00200000 eoreq r0, r0, r0 + 11dc: 00010000 andeq r0, r1, r0 + 11e0: 00002050 andeq r2, r0, r0, asr r0 + 11e4: 00003400 andeq r3, r0, r0, lsl #8 + ... + 11f0: 02000000 andeq r0, r0, #0 ; 0x0 + 11f4: 10000000 andne r0, r0, r0 + 11f8: 01000000 tsteq r0, r0 + 11fc: 00105100 andseq r5, r0, r0, lsl #2 + 1200: 00160000 andseq r0, r6, r0 + 1204: 00000000 andeq r0, r0, r0 + 1208: 00000016 andeq r0, r0, r6, lsl r0 + 120c: 00000022 andeq r0, r0, r2, lsr #32 + 1210: 22510001 subscs r0, r1, #1 ; 0x1 + 1214: 34000000 strcc r0, [r0] + ... + 1228: 00002400 andeq r2, r0, r0, lsl #8 + 122c: 7d000200 sfmvc f0, 4, [r0] + ... + 123c: 00003400 andeq r3, r0, r0, lsl #8 + 1240: 7d000200 sfmvc f0, 4, [r0] + ... + 1258: 00000200 andeq r0, r0, r0, lsl #4 + 125c: 7d000200 sfmvc f0, 4, [r0] + 1260: 00000200 andeq r0, r0, r0, lsl #4 + 1264: 00003800 andeq r3, r0, r0, lsl #16 + 1268: 7d000200 sfmvc f0, 4, [r0] + 126c: 00000008 andeq r0, r0, r8 + ... + 1278: 00000200 andeq r0, r0, r0, lsl #4 + 127c: 7d000200 sfmvc f0, 4, [r0] + 1280: 00000200 andeq r0, r0, r0, lsl #4 + 1284: 00014200 andeq r4, r1, r0, lsl #4 + 1288: 7d000200 sfmvc f0, 4, [r0] + 128c: 00014210 andeq r4, r1, r0, lsl r2 + 1290: 00014400 andeq r4, r1, r0, lsl #8 + 1294: 7d000200 sfmvc f0, 4, [r0] + 1298: 0001440c andeq r4, r1, ip, lsl #8 + 129c: 00014800 andeq r4, r1, r0, lsl #16 + 12a0: 7d000200 sfmvc f0, 4, [r0] + 12a4: 00014804 andeq r4, r1, r4, lsl #16 + 12a8: 00015000 andeq r5, r1, r0 + 12ac: 7d000200 sfmvc f0, 4, [r0] + ... + 12c4: 00000200 andeq r0, r0, r0, lsl #4 + 12c8: 7d000200 sfmvc f0, 4, [r0] + 12cc: 00000200 andeq r0, r0, r0, lsl #4 + 12d0: 0001e000 andeq lr, r1, r0 + 12d4: 7d000200 sfmvc f0, 4, [r0] + 12d8: 0001e010 andeq lr, r1, r0, lsl r0 + 12dc: 0001e400 andeq lr, r1, r0, lsl #8 + 12e0: 7d000200 sfmvc f0, 4, [r0] + 12e4: 0001e404 andeq lr, r1, r4, lsl #8 + 12e8: 00020000 andeq r0, r2, r0 + 12ec: 7d000200 sfmvc f0, 4, [r0] + ... + 1304: 00000200 andeq r0, r0, r0, lsl #4 + 1308: 7d000200 sfmvc f0, 4, [r0] + 130c: 00000200 andeq r0, r0, r0, lsl #4 + 1310: 00019a00 andeq r9, r1, r0, lsl #20 + 1314: 7d000200 sfmvc f0, 4, [r0] + 1318: 00019a18 andeq r9, r1, r8, lsl sl + 131c: 00019c00 andeq r9, r1, r0, lsl #24 + 1320: 7d000200 sfmvc f0, 4, [r0] + 1324: 00019c14 andeq r9, r1, r4, lsl ip + 1328: 0001a000 andeq sl, r1, r0 + 132c: 7d000200 sfmvc f0, 4, [r0] + 1330: 0001a004 andeq sl, r1, r4 + 1334: 0001bc00 andeq fp, r1, r0, lsl #24 + 1338: 7d000200 sfmvc f0, 4, [r0] + ... + 134c: 00003200 andeq r3, r0, r0, lsl #4 + 1350: 00005000 andeq r5, r0, r0 + 1354: 91000200 tstls r0, r0, lsl #4 + 1358: 00005068 andeq r5, r0, r8, rrx + 135c: 00005a00 andeq r5, r0, r0, lsl #20 + ... + 1368: 40000000 andmi r0, r0, r0 + 136c: 5a000000 bpl 1374 <__USR_stack_size+0xb74> + 1370: 01000000 tsteq r0, r0 + 1374: 00005700 andeq r5, r0, r0, lsl #14 + 1378: 00000000 andeq r0, r0, r0 + 137c: 00b20000 adcseq r0, r2, r0 + 1380: 00b60000 adcseq r0, r6, r0 + 1384: 00010000 andeq r0, r1, r0 + 1388: 0000b650 andeq fp, r0, r0, asr r6 + 138c: 0000c800 andeq ip, r0, r0, lsl #16 + ... + 1398: b6000000 strlt r0, [r0], -r0 + 139c: ba000000 blt 13a4 <__USR_stack_size+0xba4> + 13a0: 01000000 tsteq r0, r0 + 13a4: 00ba5000 adcseq r5, sl, r0 + 13a8: 00be0000 adcseq r0, lr, r0 + 13ac: 00000000 andeq r0, r0, r0 + 13b0: 000000be strheq r0, [r0], -lr + 13b4: 000000c2 andeq r0, r0, r2, asr #1 + 13b8: c2500001 subsgt r0, r0, #1 ; 0x1 + 13bc: c2000000 andgt r0, r0, #0 ; 0x0 + 13c0: 00000000 andeq r0, r0, r0 + 13c4: 0000c200 andeq ip, r0, r0, lsl #4 + 13c8: 0000c800 andeq ip, r0, r0, lsl #16 + 13cc: 50000100 andpl r0, r0, r0, lsl #2 + ... + 13d8: 000000f6 strdeq r0, [r0], -r6 + 13dc: 0000010a andeq r0, r0, sl, lsl #2 + 13e0: 0a560001 beq 15813ec + 13e4: 14000001 strne r0, [r0], #-1 + 13e8: 00000001 andeq r0, r0, r1 + ... + 1400: 00000200 andeq r0, r0, r0, lsl #4 + 1404: 7d000200 sfmvc f0, 4, [r0] + 1408: 00000200 andeq r0, r0, r0, lsl #4 + 140c: 00014c00 andeq r4, r1, r0, lsl #24 + 1410: 7d000200 sfmvc f0, 4, [r0] + 1414: 00000008 andeq r0, r0, r8 + ... + 1428: 00000200 andeq r0, r0, r0, lsl #4 + 142c: 7d000200 sfmvc f0, 4, [r0] + 1430: 00000200 andeq r0, r0, r0, lsl #4 + 1434: 00008c00 andeq r8, r0, r0, lsl #24 + 1438: 7d000200 sfmvc f0, 4, [r0] + 143c: 00008c10 andeq r8, r0, r0, lsl ip + 1440: 00009000 andeq r9, r0, r0 + 1444: 7d000200 sfmvc f0, 4, [r0] + 1448: 00009004 andeq r9, r0, r4 + 144c: 00009800 andeq r9, r0, r0, lsl #16 + 1450: 7d000200 sfmvc f0, 4, [r0] + ... + 145c: 00002a00 andeq r2, r0, r0, lsl #20 + 1460: 00003a00 andeq r3, r0, r0, lsl #20 + 1464: 55000100 strpl r0, [r0, #-256] + 1468: 0000003a andeq r0, r0, sl, lsr r0 + 146c: 00000098 muleq r0, r8, r0 + ... + 147c: 00020000 andeq r0, r2, r0 + 1480: 00020000 andeq r0, r2, r0 + 1484: 0002007d andeq r0, r2, sp, ror r0 + 1488: 002a0000 eoreq r0, sl, r0 + 148c: 00020000 andeq r0, r2, r0 + 1490: 002a087d eoreq r0, sl, sp, ror r8 + 1494: 00300000 eorseq r0, r0, r0 + 1498: 00020000 andeq r0, r2, r0 + 149c: 0000047d andeq r0, r0, sp, ror r4 + 14a0: 00000000 andeq r0, r0, r0 + 14a4: 00020000 andeq r0, r2, r0 + 14a8: 00020000 andeq r0, r2, r0 + 14ac: 00010000 andeq r0, r1, r0 + 14b0: 00000250 andeq r0, r0, r0, asr r2 + 14b4: 00003000 andeq r3, r0, r0 + ... + 14c0: 02000000 andeq r0, r0, #0 ; 0x0 + 14c4: 14000000 strne r0, [r0] + 14c8: 01000000 tsteq r0, r0 + 14cc: 00145000 andseq r5, r4, r0 + 14d0: 00160000 andseq r0, r6, r0 + 14d4: 00000000 andeq r0, r0, r0 + 14d8: 00000016 andeq r0, r0, r6, lsl r0 + 14dc: 00000030 andeq r0, r0, r0, lsr r0 + 14e0: 00500001 subseq r0, r0, r1 + 14e4: 00000000 andeq r0, r0, r0 + 14e8: 08000000 stmdaeq r0, {} + 14ec: 28000000 stmdacs r0, {} + 14f0: 01000000 tsteq r0, r0 + 14f4: 00285200 eoreq r5, r8, r0, lsl #4 + 14f8: 00300000 eorseq r0, r0, r0 + ... + 150c: 00000006 andeq r0, r0, r6 + 1510: 007d0002 rsbseq r0, sp, r2 + ... + 1520: 00000002 andeq r0, r0, r2 + 1524: 007d0002 rsbseq r0, sp, r2 + 1528: 00000002 andeq r0, r0, r2 + 152c: 00000004 andeq r0, r0, r4 + 1530: 107d0002 rsbsne r0, sp, r2 + 1534: 00000004 andeq r0, r0, r4 + 1538: 00000080 andeq r0, r0, r0, lsl #1 + 153c: 187d0002 ldmdane sp!, {r1}^ + 1540: 00000080 andeq r0, r0, r0, lsl #1 + 1544: 00000082 andeq r0, r0, r2, lsl #1 + 1548: 107d0002 rsbsne r0, sp, r2 + 154c: 00000082 andeq r0, r0, r2, lsl #1 + 1550: 00000086 andeq r0, r0, r6, lsl #1 + 1554: 047d0002 ldrbteq r0, [sp], #-2 + 1558: 00000086 andeq r0, r0, r6, lsl #1 + 155c: 000000a4 andeq r0, r0, r4, lsr #1 + 1560: 007d0002 rsbseq r0, sp, r2 + ... + 157c: 00000030 andeq r0, r0, r0, lsr r0 + 1580: 00000040 andeq r0, r0, r0, asr #32 + 1584: 68910002 ldmvs r1, {r1} + 1588: 00000040 andeq r0, r0, r0, asr #32 + 158c: 0000007c andeq r0, r0, ip, ror r0 + ... + 159c: 00020000 andeq r0, r2, r0 + 15a0: 00020000 andeq r0, r2, r0 + 15a4: 0002007d andeq r0, r2, sp, ror r0 + 15a8: 00040000 andeq r0, r4, r0 + 15ac: 00020000 andeq r0, r2, r0 + 15b0: 0004147d andeq r1, r4, sp, ror r4 + 15b4: 00820000 addeq r0, r2, r0 + 15b8: 00020000 andeq r0, r2, r0 + 15bc: 0082207d addeq r2, r2, sp, ror r0 + 15c0: 00840000 addeq r0, r4, r0 + 15c4: 00020000 andeq r0, r2, r0 + 15c8: 0084147d addeq r1, r4, sp, ror r4 + 15cc: 00880000 addeq r0, r8, r0 + 15d0: 00020000 andeq r0, r2, r0 + 15d4: 0088047d addeq r0, r8, sp, ror r4 + 15d8: 00940000 addseq r0, r4, r0 + 15dc: 00020000 andeq r0, r2, r0 + 15e0: 0000007d andeq r0, r0, sp, ror r0 + 15e4: 00000000 andeq r0, r0, r0 + 15e8: 00080000 andeq r0, r8, r0 + 15ec: 000c0000 andeq r0, ip, r0 + 15f0: 00010000 andeq r0, r1, r0 + 15f4: 00000c50 andeq r0, r0, r0, asr ip + 15f8: 00007800 andeq r7, r0, r0, lsl #16 + 15fc: 55000100 strpl r0, [r0, #-256] + 1600: 00000078 andeq r0, r0, r8, ror r0 + 1604: 00000094 muleq r0, r4, r0 + ... + 1610: 00080000 andeq r0, r8, r0 + 1614: 00780000 rsbseq r0, r8, r0 + 1618: 00010000 andeq r0, r1, r0 + 161c: 00007857 andeq r7, r0, r7, asr r8 + 1620: 00009400 andeq r9, r0, r0, lsl #8 + ... + 162c: 08000000 stmdaeq r0, {} + 1630: 78000000 stmdavc r0, {} + 1634: 01000000 tsteq r0, r0 + 1638: 00785400 rsbseq r5, r8, r0, lsl #8 + 163c: 00940000 addseq r0, r4, r0 + ... + 164c: 00000010 andeq r0, r0, r0, lsl r0 + 1650: 00000014 andeq r0, r0, r4, lsl r0 + 1654: 14500001 ldrbne r0, [r0], #-1 + 1658: 28000000 stmdacs r0, {} + 165c: 00000000 andeq r0, r0, r0 + 1660: 00002800 andeq r2, r0, r0, lsl #16 + 1664: 00002e00 andeq r2, r0, r0, lsl #28 + 1668: 50000100 andpl r0, r0, r0, lsl #2 + 166c: 0000002e andeq r0, r0, lr, lsr #32 + 1670: 00000040 andeq r0, r0, r0, asr #32 + 1674: 00400000 subeq r0, r0, r0 + 1678: 00460000 subeq r0, r6, r0 + 167c: 00010000 andeq r0, r1, r0 + 1680: 00004650 andeq r4, r0, r0, asr r6 + 1684: 00008000 andeq r8, r0, r0 + 1688: 80000000 andhi r0, r0, r0 + 168c: 94000000 strls r0, [r0] + 1690: 01000000 tsteq r0, r0 + 1694: 00005000 andeq r5, r0, r0 + 1698: 00000000 andeq r0, r0, r0 + 169c: 00080000 andeq r0, r8, r0 + 16a0: 00800000 addeq r0, r0, r0 + 16a4: 00020000 andeq r0, r2, r0 + 16a8: 00806091 umulleq r6, r0, r1, r0 + 16ac: 00940000 addseq r0, r4, r0 + ... + 16c0: 00000002 andeq r0, r0, r2 + 16c4: 007d0002 rsbseq r0, sp, r2 + 16c8: 00000002 andeq r0, r0, r2 + 16cc: 00000004 andeq r0, r0, r4 + 16d0: 087d0002 ldmdaeq sp!, {r1}^ + 16d4: 00000004 andeq r0, r0, r4 + 16d8: 00000072 andeq r0, r0, r2, ror r0 + 16dc: 187d0002 ldmdane sp!, {r1}^ + 16e0: 00000072 andeq r0, r0, r2, ror r0 + 16e4: 00000074 andeq r0, r0, r4, ror r0 + 16e8: 087d0002 ldmdaeq sp!, {r1}^ + 16ec: 00000074 andeq r0, r0, r4, ror r0 + 16f0: 00000078 andeq r0, r0, r8, ror r0 + 16f4: 047d0002 ldrbteq r0, [sp], #-2 + 16f8: 00000078 andeq r0, r0, r8, ror r0 + 16fc: 0000008c andeq r0, r0, ip, lsl #1 + 1700: 007d0002 rsbseq r0, sp, r2 + ... + 170c: 00000006 andeq r0, r0, r6 + 1710: 0000006c andeq r0, r0, ip, rrx + 1714: 6c540001 mrrcvs 0, 0, r0, r4, cr1 + 1718: 8c000000 stchi 0, cr0, [r0], {0} + ... + 1728: 00000600 andeq r0, r0, r0, lsl #12 + 172c: 00008c00 andeq r8, r0, r0, lsl #24 + 1730: 91000200 tstls r0, r0, lsl #4 + 1734: 00000070 andeq r0, r0, r0, ror r0 + 1738: 00000000 andeq r0, r0, r0 + 173c: 00000600 andeq r0, r0, r0, lsl #12 + 1740: 00008c00 andeq r8, r0, r0, lsl #24 + 1744: 91000200 tstls r0, r0, lsl #4 + 1748: 00000068 andeq r0, r0, r8, rrx + ... + 1754: 00005000 andeq r5, r0, r0 + 1758: 7d000200 sfmvc f0, 4, [r0] + ... + 1764: 00003000 andeq r3, r0, r0 + 1768: 00003a00 andeq r3, r0, r0, lsl #20 + 176c: 50000100 andpl r0, r0, r0, lsl #2 + 1770: 0000003a andeq r0, r0, sl, lsr r0 + 1774: 00000040 andeq r0, r0, r0, asr #32 + 1778: 00400000 subeq r0, r0, r0 + 177c: 00480000 subeq r0, r8, r0 + 1780: 00010000 andeq r0, r1, r0 + 1784: 00004850 andeq r4, r0, r0, asr r8 + 1788: 00005000 andeq r5, r0, r0 + ... + 1798: 02000000 andeq r0, r0, #0 ; 0x0 + 179c: 02000000 andeq r0, r0, #0 ; 0x0 + 17a0: 00007d00 andeq r7, r0, r0, lsl #26 + ... + 17ac: 02000000 andeq r0, r0, #0 ; 0x0 + 17b0: 02000000 andeq r0, r0, #0 ; 0x0 + 17b4: 00007d00 andeq r7, r0, r0, lsl #26 + ... + 17c8: 02000000 andeq r0, r0, #0 ; 0x0 + 17cc: 02000000 andeq r0, r0, #0 ; 0x0 + 17d0: 02007d00 andeq r7, r0, #0 ; 0x0 + 17d4: 04000000 streq r0, [r0] + 17d8: 02000000 andeq r0, r0, #0 ; 0x0 + 17dc: 04187d00 ldreq r7, [r8], #-3328 + 17e0: 3e000000 cdpcc 0, 0, cr0, cr0, cr0, {0} + 17e4: 02000000 andeq r0, r0, #0 ; 0x0 + 17e8: 3e207d00 cdpcc 13, 2, cr7, cr0, cr0, {0} + 17ec: 40000000 andmi r0, r0, r0 + 17f0: 02000000 andeq r0, r0, #0 ; 0x0 + 17f4: 40107d00 andsmi r7, r0, r0, lsl #26 + 17f8: 44000000 strmi r0, [r0] + 17fc: 02000000 andeq r0, r0, #0 ; 0x0 + 1800: 44047d00 strmi r7, [r4], #-3328 + 1804: 46000000 strmi r0, [r0], -r0 + 1808: 02000000 andeq r0, r0, #0 ; 0x0 + 180c: 00007d00 andeq r7, r0, r0, lsl #26 + 1810: 00000000 andeq r0, r0, r0 + 1814: 04000000 streq r0, [r0] + 1818: 3c000000 stccc 0, cr0, [r0], {0} + 181c: 02000000 andeq r0, r0, #0 ; 0x0 + 1820: 3c689100 stfccp f1, [r8] + 1824: 46000000 strmi r0, [r0], -r0 + ... + 1834: 00000400 andeq r0, r0, r0, lsl #8 + 1838: 00003c00 andeq r3, r0, r0, lsl #24 + 183c: 91000200 tstls r0, r0, lsl #4 + 1840: 00003c60 andeq r3, r0, r0, ror #24 + 1844: 00004600 andeq r4, r0, r0, lsl #12 + ... + 1850: 0a000000 beq 1858 <__USR_stack_size+0x1058> + 1854: 3c000000 stccc 0, cr0, [r0], {0} + 1858: 01000000 tsteq r0, r0 + 185c: 003c5500 eorseq r5, ip, r0, lsl #10 + 1860: 00460000 subeq r0, r6, r0 + ... + 1870: 00000022 andeq r0, r0, r2, lsr #32 + 1874: 0000003c andeq r0, r0, ip, lsr r0 + 1878: 3c540001 mrrccc 0, 0, r0, r4, cr1 + 187c: 46000000 strmi r0, [r0], -r0 + ... + 1890: 00000200 andeq r0, r0, r0, lsl #4 + 1894: 7d000200 sfmvc f0, 4, [r0] + 1898: 00000200 andeq r0, r0, r0, lsl #4 + 189c: 00001400 andeq r1, r0, r0, lsl #8 + 18a0: 7d000200 sfmvc f0, 4, [r0] + 18a4: 00000008 andeq r0, r0, r8 + 18a8: 00000000 andeq r0, r0, r0 + 18ac: 00000200 andeq r0, r0, r0, lsl #4 + 18b0: 00001400 andeq r1, r0, r0, lsl #8 + 18b4: 50000100 andpl r0, r0, r0, lsl #2 + ... + 18c4: 00000002 andeq r0, r0, r2 + 18c8: 007d0002 rsbseq r0, sp, r2 + 18cc: 00000002 andeq r0, r0, r2 + 18d0: 0000001c andeq r0, r0, ip, lsl r0 + 18d4: 087d0002 ldmdaeq sp!, {r1}^ + ... + 18e0: 00000002 andeq r0, r0, r2 + 18e4: 00000006 andeq r0, r0, r6 + 18e8: 06500001 ldrbeq r0, [r0], -r1 + 18ec: 0a000000 beq 18f4 <__USR_stack_size+0x10f4> + 18f0: 00000000 andeq r0, r0, r0 + 18f4: 00000a00 andeq r0, r0, r0, lsl #20 + 18f8: 00001400 andeq r1, r0, r0, lsl #8 + 18fc: 50000100 andpl r0, r0, r0, lsl #2 + 1900: 00000014 andeq r0, r0, r4, lsl r0 + 1904: 0000001c andeq r0, r0, ip, lsl r0 + ... + 1914: 00020000 andeq r0, r2, r0 + 1918: 00020000 andeq r0, r2, r0 + 191c: 0002007d andeq r0, r2, sp, ror r0 + 1920: 000c0000 andeq r0, ip, r0 + 1924: 00020000 andeq r0, r2, r0 + 1928: 0000087d andeq r0, r0, sp, ror r8 + ... + 1934: 00020000 andeq r0, r2, r0 + 1938: 00020000 andeq r0, r2, r0 + 193c: 0002007d andeq r0, r2, sp, ror r0 + 1940: 00100000 andseq r0, r0, r0 + 1944: 00020000 andeq r0, r2, r0 + 1948: 0000087d andeq r0, r0, sp, ror r8 + 194c: 00000000 andeq r0, r0, r0 + 1950: 00020000 andeq r0, r2, r0 + 1954: 00100000 andseq r0, r0, r0 + 1958: 00010000 andeq r0, r1, r0 + 195c: 00000050 andeq r0, r0, r0, asr r0 + 1960: 00000000 andeq r0, r0, r0 + 1964: 00000200 andeq r0, r0, r0, lsl #4 + 1968: 00001000 andeq r1, r0, r0 + 196c: 51000100 tstpl r0, r0, lsl #2 + ... + 197c: 00000002 andeq r0, r0, r2 + 1980: 007d0002 rsbseq r0, sp, r2 + 1984: 00000002 andeq r0, r0, r2 + 1988: 00000016 andeq r0, r0, r6, lsl r0 + 198c: 087d0002 ldmdaeq sp!, {r1}^ + ... + 1998: 00000002 andeq r0, r0, r2 + 199c: 0000000c andeq r0, r0, ip + 19a0: 0c500001 mrrceq 0, 0, r0, r0, cr1 + 19a4: 10000000 andne r0, r0, r0 + 19a8: 00000000 andeq r0, r0, r0 + 19ac: 00001000 andeq r1, r0, r0 + 19b0: 00001000 andeq r1, r0, r0 + 19b4: 50000100 andpl r0, r0, r0, lsl #2 + 19b8: 00000010 andeq r0, r0, r0, lsl r0 + 19bc: 00000016 andeq r0, r0, r6, lsl r0 + ... + 19cc: 00020000 andeq r0, r2, r0 + 19d0: 00020000 andeq r0, r2, r0 + 19d4: 0002007d andeq r0, r2, sp, ror r0 + 19d8: 001c0000 andseq r0, ip, r0 + 19dc: 00020000 andeq r0, r2, r0 + 19e0: 0000087d andeq r0, r0, sp, ror r8 + 19e4: 00000000 andeq r0, r0, r0 + 19e8: 00020000 andeq r0, r2, r0 + 19ec: 00080000 andeq r0, r8, r0 + 19f0: 00010000 andeq r0, r1, r0 + 19f4: 00000850 andeq r0, r0, r0, asr r8 + 19f8: 00000c00 andeq r0, r0, r0, lsl #24 + 19fc: 0c000000 stceq 0, cr0, [r0], {0} + 1a00: 1c000000 stcne 0, cr0, [r0], {0} + 1a04: 01000000 tsteq r0, r0 + 1a08: 00005000 andeq r5, r0, r0 + 1a0c: 00000000 andeq r0, r0, r0 + 1a10: 00020000 andeq r0, r2, r0 + 1a14: 00080000 andeq r0, r8, r0 + 1a18: 00010000 andeq r0, r1, r0 + 1a1c: 00000851 andeq r0, r0, r1, asr r8 + 1a20: 00000c00 andeq r0, r0, r0, lsl #24 + 1a24: 0c000000 stceq 0, cr0, [r0], {0} + 1a28: 1c000000 stcne 0, cr0, [r0], {0} + 1a2c: 01000000 tsteq r0, r0 + 1a30: 00005100 andeq r5, r0, r0, lsl #2 + ... + 1a3c: 00020000 andeq r0, r2, r0 + 1a40: 00020000 andeq r0, r2, r0 + 1a44: 0002007d andeq r0, r2, sp, ror r0 + 1a48: 00140000 andseq r0, r4, r0 + 1a4c: 00020000 andeq r0, r2, r0 + 1a50: 0000087d andeq r0, r0, sp, ror r8 + 1a54: 00000000 andeq r0, r0, r0 + 1a58: 00020000 andeq r0, r2, r0 + 1a5c: 00060000 andeq r0, r6, r0 + 1a60: 00010000 andeq r0, r1, r0 + 1a64: 00000650 andeq r0, r0, r0, asr r6 + 1a68: 00000a00 andeq r0, r0, r0, lsl #20 + 1a6c: 0a000000 beq 1a74 <__USR_stack_size+0x1274> + 1a70: 0c000000 stceq 0, cr0, [r0], {0} + 1a74: 01000000 tsteq r0, r0 + 1a78: 000c5000 andeq r5, ip, r0 + 1a7c: 00140000 andseq r0, r4, r0 + ... + 1a90: 00000028 andeq r0, r0, r8, lsr #32 + 1a94: 007d0002 rsbseq r0, sp, r2 + ... + 1aa0: 0000000c andeq r0, r0, ip + 1aa4: 00000012 andeq r0, r0, r2, lsl r0 + 1aa8: 12510001 subsne r0, r1, #1 ; 0x1 + 1aac: 28000000 stmdacs r0, {} + ... + 1ac0: 00000200 andeq r0, r0, r0, lsl #4 + 1ac4: 7d000200 sfmvc f0, 4, [r0] + 1ac8: 00000200 andeq r0, r0, r0, lsl #4 + 1acc: 00002400 andeq r2, r0, r0, lsl #8 + 1ad0: 7d000200 sfmvc f0, 4, [r0] + 1ad4: 00000008 andeq r0, r0, r8 + 1ad8: 00000000 andeq r0, r0, r0 + 1adc: 00000200 andeq r0, r0, r0, lsl #4 + 1ae0: 00000c00 andeq r0, r0, r0, lsl #24 + 1ae4: 50000100 andpl r0, r0, r0, lsl #2 + 1ae8: 0000000c andeq r0, r0, ip + 1aec: 00000024 andeq r0, r0, r4, lsr #32 + ... + 1af8: 00020000 andeq r0, r2, r0 + 1afc: 00240000 eoreq r0, r4, r0 + 1b00: 00020000 andeq r0, r2, r0 + 1b04: 00007891 muleq r0, r1, r8 + ... + 1b10: 00020000 andeq r0, r2, r0 + 1b14: 00020000 andeq r0, r2, r0 + 1b18: 0002007d andeq r0, r2, sp, ror r0 + 1b1c: 00080000 andeq r0, r8, r0 + 1b20: 00020000 andeq r0, r2, r0 + 1b24: 0000087d andeq r0, r0, sp, ror r8 + 1b28: 00000000 andeq r0, r0, r0 + 1b2c: 00040000 andeq r0, r4, r0 + 1b30: 00080000 andeq r0, r8, r0 + 1b34: 00010000 andeq r0, r1, r0 + 1b38: 00000054 andeq r0, r0, r4, asr r0 + ... + 1b44: 00000200 andeq r0, r0, r0, lsl #4 + 1b48: 7d000200 sfmvc f0, 4, [r0] + 1b4c: 00000200 andeq r0, r0, r0, lsl #4 + 1b50: 00001c00 andeq r1, r0, r0, lsl #24 + 1b54: 7d000200 sfmvc f0, 4, [r0] + 1b58: 00000008 andeq r0, r0, r8 + 1b5c: 00000000 andeq r0, r0, r0 + 1b60: 00000400 andeq r0, r0, r0, lsl #8 + 1b64: 00001c00 andeq r1, r0, r0, lsl #24 + 1b68: 54000100 strpl r0, [r0], #-256 + ... + 1b78: 00000002 andeq r0, r0, r2 + 1b7c: 007d0002 rsbseq r0, sp, r2 + 1b80: 00000002 andeq r0, r0, r2 + 1b84: 00000004 andeq r0, r0, r4 + 1b88: 187d0002 ldmdane sp!, {r1}^ + 1b8c: 00000004 andeq r0, r0, r4 + 1b90: 0000006c andeq r0, r0, ip, rrx + 1b94: 207d0002 rsbscs r0, sp, r2 + ... + 1ba0: 00000006 andeq r0, r0, r6 + 1ba4: 00000054 andeq r0, r0, r4, asr r0 + 1ba8: 54570001 ldrbpl r0, [r7], #-1 + 1bac: 6c000000 stcvs 0, cr0, [r0], {0} + ... + 1bbc: 00000600 andeq r0, r0, r0, lsl #12 + 1bc0: 00005400 andeq r5, r0, r0, lsl #8 + 1bc4: 91000200 tstls r0, r0, lsl #4 + 1bc8: 00005468 andeq r5, r0, r8, ror #8 + 1bcc: 00006c00 andeq r6, r0, r0, lsl #24 + ... + 1bd8: 18000000 stmdane r0, {} + 1bdc: 54000000 strpl r0, [r0] + 1be0: 02000000 andeq r0, r0, #0 ; 0x0 + 1be4: 54609100 strbtpl r9, [r0], #-256 + 1be8: 6c000000 stcvs 0, cr0, [r0], {0} + ... + 1bfc: 00000200 andeq r0, r0, r0, lsl #4 + 1c00: 7d000200 sfmvc f0, 4, [r0] + 1c04: 00000200 andeq r0, r0, r0, lsl #4 + 1c08: 00000400 andeq r0, r0, r0, lsl #8 + 1c0c: 7d000200 sfmvc f0, 4, [r0] + 1c10: 00000404 andeq r0, r0, r4, lsl #8 + 1c14: 00002c00 andeq r2, r0, r0, lsl #24 + 1c18: 7d000300 stcvc 3, cr0, [r0] + 1c1c: 000000e8 andeq r0, r0, r8, ror #1 + 1c20: 00000000 andeq r0, r0, r0 + 1c24: 00040000 andeq r0, r4, r0 + 1c28: 002c0000 eoreq r0, ip, r0 + 1c2c: 00020000 andeq r0, r2, r0 + 1c30: 00006491 muleq r0, r1, r4 + 1c34: 00000000 andeq r0, r0, r0 + 1c38: 00040000 andeq r0, r4, r0 + 1c3c: 002c0000 eoreq r0, ip, r0 + 1c40: 00030000 andeq r0, r3, r0 + 1c44: 007fa091 ldrbteq sl, [pc, #-1] ; 1c4b <__USR_stack_size+0x144b> + 1c48: 00000000 andeq r0, r0, r0 + 1c4c: 04000000 streq r0, [r0] + 1c50: 2c000000 stccs 0, cr0, [r0], {0} + 1c54: 03000000 movweq r0, #0 ; 0x0 + 1c58: 7f989100 svcvc 0x00989100 + ... + 1c68: 00000002 andeq r0, r0, r2 + 1c6c: 007d0002 rsbseq r0, sp, r2 + 1c70: 00000002 andeq r0, r0, r2 + 1c74: 000001bc strheq r0, [r0], -ip + 1c78: 187d0002 ldmdane sp!, {r1}^ + 1c7c: 000001bc strheq r0, [r0], -ip + 1c80: 000001f4 strdeq r0, [r0], -r4 + 1c84: 147d0002 ldrbtne r0, [sp], #-2 + ... + 1c94: 00000028 andeq r0, r0, r8, lsr #32 + 1c98: 007d0002 rsbseq r0, sp, r2 + ... + 1ca8: 00000002 andeq r0, r0, r2 + 1cac: 007d0002 rsbseq r0, sp, r2 + 1cb0: 00000002 andeq r0, r0, r2 + 1cb4: 00000004 andeq r0, r0, r4 + 1cb8: 107d0002 rsbsne r0, sp, r2 + 1cbc: 00000004 andeq r0, r0, r4 + 1cc0: 00000124 andeq r0, r0, r4, lsr #2 + 1cc4: 207d0002 rsbscs r0, sp, r2 + 1cc8: 00000124 andeq r0, r0, r4, lsr #2 + 1ccc: 00000126 andeq r0, r0, r6, lsr #2 + 1cd0: 107d0002 rsbsne r0, sp, r2 + 1cd4: 00000126 andeq r0, r0, r6, lsr #2 + 1cd8: 0000012a andeq r0, r0, sl, lsr #2 + 1cdc: 047d0002 ldrbteq r0, [sp], #-2 + 1ce0: 0000012a andeq r0, r0, sl, lsr #2 + 1ce4: 0000012c andeq r0, r0, ip, lsr #2 + 1ce8: 007d0002 rsbseq r0, sp, r2 + 1cec: 0000012c andeq r0, r0, ip, lsr #2 + 1cf0: 000001ac andeq r0, r0, ip, lsr #3 + 1cf4: 207d0002 rsbscs r0, sp, r2 + ... + 1d00: 00000004 andeq r0, r0, r4 + 1d04: 000000f0 strdeq r0, [r0], -r0 + 1d08: 60910002 addsvs r0, r1, r2 + 1d0c: 000000f0 strdeq r0, [r0], -r0 + 1d10: 000000f4 strdeq r0, [r0], -r4 + 1d14: 00f40000 rscseq r0, r4, r0 + 1d18: 01520000 cmpeq r2, r0 + 1d1c: 00020000 andeq r0, r2, r0 + 1d20: 01526091 ldrbeq r6, [r2, #-1] + 1d24: 017a0000 cmneq sl, r0 + 1d28: 00000000 andeq r0, r0, r0 + 1d2c: 0000017a andeq r0, r0, sl, ror r1 + 1d30: 00000198 muleq r0, r8, r1 + 1d34: 60910002 addsvs r0, r1, r2 + 1d38: 00000198 muleq r0, r8, r1 + 1d3c: 000001ac andeq r0, r0, ip, lsr #3 + ... + 1d4c: 00020000 andeq r0, r2, r0 + 1d50: 00020000 andeq r0, r2, r0 + 1d54: 0002007d andeq r0, r2, sp, ror r0 + 1d58: 00140000 andseq r0, r4, r0 + 1d5c: 00020000 andeq r0, r2, r0 + 1d60: 0000087d andeq r0, r0, sp, ror r8 + ... + 1d6c: 00020000 andeq r0, r2, r0 + 1d70: 00020000 andeq r0, r2, r0 + 1d74: 0002007d andeq r0, r2, sp, ror r0 + 1d78: 00100000 andseq r0, r0, r0 + 1d7c: 00020000 andeq r0, r2, r0 + 1d80: 0000087d andeq r0, r0, sp, ror r8 + ... + 1d8c: 00020000 andeq r0, r2, r0 + 1d90: 00020000 andeq r0, r2, r0 + 1d94: 0002007d andeq r0, r2, sp, ror r0 + 1d98: 00140000 andseq r0, r4, r0 + 1d9c: 00020000 andeq r0, r2, r0 + 1da0: 0000087d andeq r0, r0, sp, ror r8 + ... + 1dac: 00020000 andeq r0, r2, r0 + 1db0: 00020000 andeq r0, r2, r0 + 1db4: 0002007d andeq r0, r2, sp, ror r0 + 1db8: 00140000 andseq r0, r4, r0 + 1dbc: 00020000 andeq r0, r2, r0 + 1dc0: 0000087d andeq r0, r0, sp, ror r8 + ... + 1dcc: 00020000 andeq r0, r2, r0 + 1dd0: 00020000 andeq r0, r2, r0 + 1dd4: 0002007d andeq r0, r2, sp, ror r0 + 1dd8: 005c0000 subseq r0, ip, r0 + 1ddc: 00020000 andeq r0, r2, r0 + 1de0: 005c187d subseq r1, ip, sp, ror r8 + 1de4: 00680000 rsbeq r0, r8, r0 + 1de8: 00020000 andeq r0, r2, r0 + 1dec: 0068207d rsbeq r2, r8, sp, ror r0 + 1df0: 00a20000 adceq r0, r2, r0 + 1df4: 00020000 andeq r0, r2, r0 + 1df8: 00a2187d adceq r1, r2, sp, ror r8 + 1dfc: 00ae0000 adceq r0, lr, r0 + 1e00: 00020000 andeq r0, r2, r0 + 1e04: 00ae207d adceq r2, lr, sp, ror r0 + 1e08: 01020000 tsteq r2, r0 + 1e0c: 00020000 andeq r0, r2, r0 + 1e10: 0102187d tsteq r2, sp, ror r8 + 1e14: 010e0000 tsteq lr, r0 + 1e18: 00020000 andeq r0, r2, r0 + 1e1c: 010e207d tsteq lr, sp, ror r0 + 1e20: 01400000 cmpeq r0, r0 + 1e24: 00020000 andeq r0, r2, r0 + 1e28: 0140187d cmpeq r0, sp, ror r8 + 1e2c: 01420000 cmpeq r2, r0 + 1e30: 00020000 andeq r0, r2, r0 + 1e34: 0142147d cmpeq r2, sp, ror r4 + 1e38: 01460000 cmpeq r6, r0 + 1e3c: 00020000 andeq r0, r2, r0 + 1e40: 0146047d cmpeq r6, sp, ror r4 + 1e44: 015c0000 cmpeq ip, r0 + 1e48: 00020000 andeq r0, r2, r0 + 1e4c: 0000007d andeq r0, r0, sp, ror r0 + 1e50: 00000000 andeq r0, r0, r0 + 1e54: 00020000 andeq r0, r2, r0 + 1e58: 00420000 subeq r0, r2, r0 + 1e5c: 00010000 andeq r0, r1, r0 + 1e60: 00004250 andeq r4, r0, r0, asr r2 + 1e64: 00007000 andeq r7, r0, r0 + 1e68: 70000000 andvc r0, r0, r0 + 1e6c: 8a000000 bhi 1e74 <__USR_stack_size+0x1674> + 1e70: 01000000 tsteq r0, r0 + 1e74: 008a5000 addeq r5, sl, r0 + 1e78: 00b40000 adcseq r0, r4, r0 + 1e7c: 00000000 andeq r0, r0, r0 + 1e80: 000000b4 strheq r0, [r0], -r4 + 1e84: 000000e4 andeq r0, r0, r4, ror #1 + 1e88: e4500001 ldrb r0, [r0], #-1 + 1e8c: 20000000 andcs r0, r0, r0 + 1e90: 00000001 andeq r0, r0, r1 + 1e94: 00012000 andeq r2, r1, r0 + 1e98: 00013800 andeq r3, r1, r0, lsl #16 + 1e9c: 50000100 andpl r0, r0, r0, lsl #2 + 1ea0: 00000138 andeq r0, r0, r8, lsr r1 + 1ea4: 0000015c andeq r0, r0, ip, asr r1 + ... + 1eb0: 00020000 andeq r0, r2, r0 + 1eb4: 001a0000 andseq r0, sl, r0 + 1eb8: 00010000 andeq r0, r1, r0 + 1ebc: 00001a51 andeq r1, r0, r1, asr sl + 1ec0: 00015c00 andeq r5, r1, r0, lsl #24 + ... + 1ecc: 52000000 andpl r0, r0, #0 ; 0x0 + 1ed0: 6c000000 stcvs 0, cr0, [r0], {0} + 1ed4: 01000000 tsteq r0, r0 + 1ed8: 006c5700 rsbeq r5, ip, r0, lsl #14 + 1edc: 00980000 addseq r0, r8, r0 + 1ee0: 00000000 andeq r0, r0, r0 + 1ee4: 00000098 muleq r0, r8, r0 + 1ee8: 000000b2 strheq r0, [r0], -r2 + 1eec: b2570001 subslt r0, r7, #1 ; 0x1 + 1ef0: f6000000 undefined instruction 0xf6000000 + 1ef4: 00000000 andeq r0, r0, r0 + 1ef8: 0000f600 andeq pc, r0, r0, lsl #12 + 1efc: 00011200 andeq r1, r1, r0, lsl #4 + 1f00: 57000100 strpl r0, [r0, -r0, lsl #2] + 1f04: 00000112 andeq r0, r0, r2, lsl r1 + 1f08: 0000015c andeq r0, r0, ip, asr r1 + ... + 1f14: 00020000 andeq r0, r2, r0 + 1f18: 001a0000 andseq r0, sl, r0 + 1f1c: 00010000 andeq r0, r1, r0 + 1f20: 00001a52 andeq r1, r0, r2, asr sl + 1f24: 00013a00 andeq r3, r1, r0, lsl #20 + 1f28: 3a000000 bcc 1f30 <__USR_stack_size+0x1730> + 1f2c: 5c000001 stcpl 0, cr0, [r0], {1} + 1f30: 01000001 tsteq r0, r1 + 1f34: 00005200 andeq r5, r0, r0, lsl #4 + ... + 1f40: 00020000 andeq r0, r2, r0 + 1f44: 00020000 andeq r0, r2, r0 + 1f48: 0002007d andeq r0, r2, sp, ror r0 + 1f4c: 00040000 andeq r0, r4, r0 + 1f50: 00020000 andeq r0, r2, r0 + 1f54: 0004147d andeq r1, r4, sp, ror r4 + 1f58: 00960000 addseq r0, r6, r0 + 1f5c: 00020000 andeq r0, r2, r0 + 1f60: 0096287d addseq r2, r6, sp, ror r8 + 1f64: 00b00000 adcseq r0, r0, r0 + 1f68: 00020000 andeq r0, r2, r0 + 1f6c: 0000147d andeq r1, r0, sp, ror r4 + 1f70: 00000000 andeq r0, r0, r0 + 1f74: 00040000 andeq r0, r4, r0 + 1f78: 00940000 addseq r0, r4, r0 + 1f7c: 00020000 andeq r0, r2, r0 + 1f80: 00945891 umullseq r5, r4, r1, r8 + 1f84: 00b00000 adcseq r0, r0, r0 + ... + 1f94: 00000050 andeq r0, r0, r0, asr r0 + 1f98: 00000056 andeq r0, r0, r6, asr r0 + 1f9c: 56500001 ldrbpl r0, [r0], -r1 + 1fa0: b0000000 andlt r0, r0, r0 + ... + 1fb0: 00003c00 andeq r3, r0, r0, lsl #24 + 1fb4: 00006200 andeq r6, r0, r0, lsl #4 + 1fb8: 54000100 strpl r0, [r0], #-256 + 1fbc: 00000062 andeq r0, r0, r2, rrx + 1fc0: 000000b0 strheq r0, [r0], -r0 + ... + 1fd0: 00020000 andeq r0, r2, r0 + 1fd4: 00020000 andeq r0, r2, r0 + 1fd8: 0002007d andeq r0, r2, sp, ror r0 + 1fdc: 00040000 andeq r0, r4, r0 + 1fe0: 00020000 andeq r0, r2, r0 + 1fe4: 0004147d andeq r1, r4, sp, ror r4 + 1fe8: 01e40000 mvneq r0, r0 + 1fec: 00020000 andeq r0, r2, r0 + 1ff0: 0000207d andeq r2, r0, sp, ror r0 + 1ff4: 00000000 andeq r0, r0, r0 + 1ff8: 00080000 andeq r0, r8, r0 + 1ffc: 01de0000 bicseq r0, lr, r0 + 2000: 00010000 andeq r0, r1, r0 + 2004: 0001de55 andeq sp, r1, r5, asr lr + 2008: 0001e400 andeq lr, r1, r0, lsl #8 + ... + 2014: 08000000 stmdaeq r0, {} + 2018: 9c000000 stcls 0, cr0, [r0], {0} + 201c: 01000001 tsteq r0, r1 + 2020: 019c5400 orrseq r5, ip, r0, lsl #8 + 2024: 019e0000 orrseq r0, lr, r0 + 2028: 00000000 andeq r0, r0, r0 + 202c: 0000019e muleq r0, lr, r1 + 2030: 000001c2 andeq r0, r0, r2, asr #3 + 2034: c2540001 subsgt r0, r4, #1 ; 0x1 + 2038: de000001 cdple 0, 0, cr0, cr0, cr1, {0} + 203c: 01000001 tsteq r0, r1 + 2040: 01de5700 bicseq r5, lr, r0, lsl #14 + 2044: 01e40000 mvneq r0, r0 + ... + 205c: 00000010 andeq r0, r0, r0, lsl r0 + 2060: 000001e4 andeq r0, r0, r4, ror #3 + 2064: 60910002 addsvs r0, r1, r2 + ... + 2070: 00000012 andeq r0, r0, r2, lsl r0 + 2074: 000001b8 strheq r0, [r0], -r8 + 2078: 00560001 subseq r0, r6, r1 + ... + 2084: 02000000 andeq r0, r0, #0 ; 0x0 + 2088: 02000000 andeq r0, r0, #0 ; 0x0 + 208c: 02007d00 andeq r7, r0, #0 ; 0x0 + 2090: b0000000 andlt r0, r0, r0 + 2094: 02000001 andeq r0, r0, #1 ; 0x1 + 2098: b0187d00 andslt r7, r8, r0, lsl #26 + 209c: b2000001 andlt r0, r0, #1 ; 0x1 + 20a0: 02000001 andeq r0, r0, #1 ; 0x1 + 20a4: 00147d00 andseq r7, r4, r0, lsl #26 + 20a8: 00000000 andeq r0, r0, r0 + 20ac: 06000000 streq r0, [r0], -r0 + 20b0: ae000000 cdpge 0, 0, cr0, cr0, cr0, {0} + 20b4: 01000001 tsteq r0, r1 + 20b8: 01ae5500 undefined instruction 0x01ae5500 + 20bc: 01b20000 undefined instruction 0x01b20000 + ... + 20cc: 00000006 andeq r0, r0, r6 + 20d0: 00000192 muleq r0, r2, r1 + 20d4: 92540001 subsls r0, r4, #1 ; 0x1 + 20d8: 94000001 strls r0, [r0], #-1 + 20dc: 00000001 andeq r0, r0, r1 + 20e0: 00019400 andeq r9, r1, r0, lsl #8 + 20e4: 0001ae00 andeq sl, r1, r0, lsl #28 + 20e8: 54000100 strpl r0, [r0], #-256 + 20ec: 000001ae andeq r0, r0, lr, lsr #3 + 20f0: 000001b2 strheq r0, [r0], -r2 + ... + 20fc: 00080000 andeq r0, r8, r0 + 2100: 01ae0000 undefined instruction 0x01ae0000 + 2104: 00010000 andeq r0, r1, r0 + 2108: 00000056 andeq r0, r0, r6, asr r0 + ... + 2114: 00000200 andeq r0, r0, r0, lsl #4 + 2118: 7d000200 sfmvc f0, 4, [r0] + 211c: 00000200 andeq r0, r0, r0, lsl #4 + 2120: 00010e00 andeq r0, r1, r0, lsl #28 + 2124: 7d000200 sfmvc f0, 4, [r0] + 2128: 00010e18 andeq r0, r1, r8, lsl lr + 212c: 00011000 andeq r1, r1, r0 + 2130: 7d000200 sfmvc f0, 4, [r0] + 2134: 00011014 andeq r1, r1, r4, lsl r0 + 2138: 00027800 andeq r7, r2, r0, lsl #16 + 213c: 7d000200 sfmvc f0, 4, [r0] + 2140: 00000018 andeq r0, r0, r8, lsl r0 + 2144: 00000000 andeq r0, r0, r0 + 2148: 00000400 andeq r0, r0, r0, lsl #8 + 214c: 00006000 andeq r6, r0, r0 + 2150: 57000100 strpl r0, [r0, -r0, lsl #2] + 2154: 00000060 andeq r0, r0, r0, rrx + 2158: 00000278 andeq r0, r0, r8, ror r2 + ... + 217c: 00100000 andseq r0, r0, r0 + 2180: 00320000 eorseq r0, r2, r0 + 2184: 00010000 andeq r0, r1, r0 + 2188: 00000054 andeq r0, r0, r4, asr r0 + 218c: 00000000 andeq r0, r0, r0 + 2190: 0001f600 andeq pc, r1, r0, lsl #12 + 2194: 00023000 andeq r3, r2, r0 + 2198: 54000100 strpl r0, [r0], #-256 + ... + 21a8: 00000002 andeq r0, r0, r2 + 21ac: 007d0002 rsbseq r0, sp, r2 + 21b0: 00000002 andeq r0, r0, r2 + 21b4: 00000110 andeq r0, r0, r0, lsl r1 + 21b8: 187d0002 ldmdane sp!, {r1}^ + 21bc: 00000110 andeq r0, r0, r0, lsl r1 + 21c0: 00000134 andeq r0, r0, r4, lsr r1 + 21c4: 147d0002 ldrbtne r0, [sp], #-2 + ... + 21d0: 00000004 andeq r0, r0, r4 + 21d4: 000000d6 ldrdeq r0, [r0], -r6 + 21d8: d6540001 ldrble r0, [r4], -r1 + 21dc: 34000000 strcc r0, [r0] + 21e0: 00000001 andeq r0, r0, r1 + ... + 21ec: 0000d600 andeq sp, r0, r0, lsl #12 + 21f0: 0000de00 andeq sp, r0, r0, lsl #28 + 21f4: 57000100 strpl r0, [r0, -r0, lsl #2] + 21f8: 000000de ldrdeq r0, [r0], -lr + 21fc: 00000134 andeq r0, r0, r4, lsr r1 + ... + 2210: 00de0000 sbcseq r0, lr, r0 + 2214: 010e0000 tsteq lr, r0 + 2218: 00010000 andeq r0, r1, r0 + 221c: 00000054 andeq r0, r0, r4, asr r0 + ... + 2228: 00000200 andeq r0, r0, r0, lsl #4 + 222c: 7d000200 sfmvc f0, 4, [r0] + 2230: 00000200 andeq r0, r0, r0, lsl #4 + 2234: 00000400 andeq r0, r0, r0, lsl #8 + 2238: 7d000200 sfmvc f0, 4, [r0] + 223c: 00000404 andeq r0, r0, r4, lsl #8 + 2240: 00002200 andeq r2, r0, r0, lsl #4 + 2244: 7d000200 sfmvc f0, 4, [r0] + 2248: 00002210 andeq r2, r0, r0, lsl r2 + 224c: 00002c00 andeq r2, r0, r0, lsl #24 + 2250: 7d000200 sfmvc f0, 4, [r0] + ... + 225c: 00000400 andeq r0, r0, r0, lsl #8 + 2260: 00002c00 andeq r2, r0, r0, lsl #24 + 2264: 91000200 tstls r0, r0, lsl #4 + 2268: 00000070 andeq r0, r0, r0, ror r0 + ... + 2274: 00000200 andeq r0, r0, r0, lsl #4 + 2278: 7d000200 sfmvc f0, 4, [r0] + 227c: 00000200 andeq r0, r0, r0, lsl #4 + 2280: 00002600 andeq r2, r0, r0, lsl #12 + 2284: 7d000200 sfmvc f0, 4, [r0] + 2288: 00002610 andeq r2, r0, r0, lsl r6 + 228c: 00003600 andeq r3, r0, r0, lsl #12 + 2290: 7d000200 sfmvc f0, 4, [r0] + 2294: 00003618 andeq r3, r0, r8, lsl r6 + 2298: 00003800 andeq r3, r0, r0, lsl #16 + 229c: 7d000200 sfmvc f0, 4, [r0] + 22a0: 00000010 andeq r0, r0, r0, lsl r0 + ... + 22b4: 00000200 andeq r0, r0, r0, lsl #4 + 22b8: 7d000200 sfmvc f0, 4, [r0] + 22bc: 00000200 andeq r0, r0, r0, lsl #4 + 22c0: 00000800 andeq r0, r0, r0, lsl #16 + 22c4: 7d000200 sfmvc f0, 4, [r0] + 22c8: 00000808 andeq r0, r0, r8, lsl #16 + 22cc: 00001800 andeq r1, r0, r0, lsl #16 + 22d0: 7d000200 sfmvc f0, 4, [r0] + 22d4: 00001810 andeq r1, r0, r0, lsl r8 + 22d8: 00002000 andeq r2, r0, r0 + 22dc: 7d000200 sfmvc f0, 4, [r0] + 22e0: 00000008 andeq r0, r0, r8 + ... + 22ec: 00000200 andeq r0, r0, r0, lsl #4 + 22f0: 7d000200 sfmvc f0, 4, [r0] + 22f4: 00000200 andeq r0, r0, r0, lsl #4 + 22f8: 0000c400 andeq ip, r0, r0, lsl #8 + 22fc: 7d000200 sfmvc f0, 4, [r0] + 2300: 00000010 andeq r0, r0, r0, lsl r0 + 2304: 00000000 andeq r0, r0, r0 + 2308: 00000200 andeq r0, r0, r0, lsl #4 + 230c: 00000600 andeq r0, r0, r0, lsl #12 + 2310: 50000100 andpl r0, r0, r0, lsl #2 + 2314: 00000006 andeq r0, r0, r6 + 2318: 00000014 andeq r0, r0, r4, lsl r0 + 231c: 00140000 andseq r0, r4, r0 + 2320: 00180000 andseq r0, r8, r0 + 2324: 00010000 andeq r0, r1, r0 + 2328: 00001850 andeq r1, r0, r0, asr r8 + 232c: 00004a00 andeq r4, r0, r0, lsl #20 + 2330: 4a000000 bmi 2338 <__USR_stack_size+0x1b38> + 2334: 4e000000 cdpmi 0, 0, cr0, cr0, cr0, {0} + 2338: 01000000 tsteq r0, r0 + 233c: 004e5000 subeq r5, lr, r0 + 2340: 00700000 rsbseq r0, r0, r0 + 2344: 00000000 andeq r0, r0, r0 + 2348: 00000070 andeq r0, r0, r0, ror r0 + 234c: 00000074 andeq r0, r0, r4, ror r0 + 2350: 74500001 ldrbvc r0, [r0], #-1 + 2354: 82000000 andhi r0, r0, #0 ; 0x0 + 2358: 00000000 andeq r0, r0, r0 + 235c: 00008200 andeq r8, r0, r0, lsl #4 + 2360: 00008600 andeq r8, r0, r0, lsl #12 + 2364: 50000100 andpl r0, r0, r0, lsl #2 + 2368: 00000086 andeq r0, r0, r6, lsl #1 + 236c: 000000a6 andeq r0, r0, r6, lsr #1 + 2370: 00a60000 adceq r0, r6, r0 + 2374: 00aa0000 adceq r0, sl, r0 + 2378: 00010000 andeq r0, r1, r0 + 237c: 0000aa50 andeq sl, r0, r0, asr sl + 2380: 0000c400 andeq ip, r0, r0, lsl #8 + ... + 238c: 02000000 andeq r0, r0, #0 ; 0x0 + 2390: 06000000 streq r0, [r0], -r0 + 2394: 01000000 tsteq r0, r0 + 2398: 00065100 andeq r5, r6, r0, lsl #2 + 239c: 00140000 andseq r0, r4, r0 + 23a0: 00000000 andeq r0, r0, r0 + 23a4: 00000014 andeq r0, r0, r4, lsl r0 + 23a8: 0000002a andeq r0, r0, sl, lsr #32 + 23ac: 2a510001 bcs 14423b8 + 23b0: 30000000 andcc r0, r0, r0 + 23b4: 00000000 andeq r0, r0, r0 + 23b8: 00003000 andeq r3, r0, r0 + 23bc: 00003400 andeq r3, r0, r0, lsl #8 + 23c0: 51000100 tstpl r0, r0, lsl #2 + 23c4: 00000034 andeq r0, r0, r4, lsr r0 + 23c8: 0000004a andeq r0, r0, sl, asr #32 + 23cc: 004a0000 subeq r0, sl, r0 + 23d0: 00600000 rsbeq r0, r0, r0 + 23d4: 00010000 andeq r0, r1, r0 + 23d8: 00006051 andeq r6, r0, r1, asr r0 + 23dc: 00006000 andeq r6, r0, r0 + 23e0: 60000000 andvs r0, r0, r0 + 23e4: 64000000 strvs r0, [r0] + 23e8: 01000000 tsteq r0, r0 + 23ec: 00645100 rsbeq r5, r4, r0, lsl #2 + 23f0: 00c40000 sbceq r0, r4, r0 + ... + 2400: 00000002 andeq r0, r0, r2 + 2404: 000000a6 andeq r0, r0, r6, lsr #1 + 2408: 70910002 addsvc r0, r1, r2 + 240c: 000000a6 andeq r0, r0, r6, lsr #1 + 2410: 000000c4 andeq r0, r0, r4, asr #1 + ... + 2420: 00020000 andeq r0, r2, r0 + 2424: 00020000 andeq r0, r2, r0 + 2428: 0002007d andeq r0, r2, sp, ror r0 + 242c: 00220000 eoreq r0, r2, r0 + 2430: 00020000 andeq r0, r2, r0 + 2434: 0022107d eoreq r1, r2, sp, ror r0 + 2438: 00240000 eoreq r0, r4, r0 + 243c: 00020000 andeq r0, r2, r0 + 2440: 00240c7d eoreq r0, r4, sp, ror ip + 2444: 00280000 eoreq r0, r8, r0 + 2448: 00020000 andeq r0, r2, r0 + 244c: 0028047d eoreq r0, r8, sp, ror r4 + 2450: 002a0000 eoreq r0, sl, r0 + 2454: 00020000 andeq r0, r2, r0 + 2458: 0000007d andeq r0, r0, sp, ror r0 + 245c: 00000000 andeq r0, r0, r0 + 2460: 00040000 andeq r0, r4, r0 + 2464: 001e0000 andseq r0, lr, r0 + 2468: 00010000 andeq r0, r1, r0 + 246c: 00001e54 andeq r1, r0, r4, asr lr + 2470: 00002a00 andeq r2, r0, r0, lsl #20 + ... + 247c: 08000000 stmdaeq r0, {} + 2480: 2a000000 bcs 2488 <__USR_stack_size+0x1c88> + 2484: 01000000 tsteq r0, r0 + 2488: 00005500 andeq r5, r0, r0, lsl #10 + 248c: 00000000 andeq r0, r0, r0 + ... + +Disassembly of section .debug_macinfo: + +00000000 <.debug_macinfo>: + 0: 03040003 movweq r0, #16387 ; 0x4003 + 4: 0304010d movweq r0, #16653 ; 0x410d + 8: 1103020e tstne r3, lr, lsl #4 + c: 04040403 streq r0, [r4], #-1027 + 10: 00000000 andeq r0, r0, r0 + 14: 03010003 movweq r0, #4099 ; 0x1003 + 18: 0304040d movweq r0, #17421 ; 0x440d + 1c: 1403060e strne r0, [r3], #-1550 + 20: 05190307 ldreq r0, [r9, #-775] + 24: 081a0304 ldmdaeq sl, {r2, r8, r9} + 28: 03040404 movweq r0, #17412 ; 0x4404 + 2c: 0304090f movweq r0, #18703 ; 0x490f + 30: 11030210 tstne r3, r0, lsl r2 + 34: 04040403 streq r0, [r4], #-1027 + 38: 00000000 andeq r0, r0, r0 + 3c: 03080003 movweq r0, #32771 ; 0x8003 + 40: 1703030e strne r0, [r3, -lr, lsl #6] + 44: 02190304 andseq r0, r9, #268435456 ; 0x10000000 + 48: 04011203 streq r1, [r1], #-515 + 4c: 051a0304 ldreq r0, [sl, #-772] + 50: 03040404 movweq r0, #17412 ; 0x4404 + 54: 1003070f andne r0, r3, pc, lsl #14 + 58: 04040406 streq r0, [r4], #-1030 + 5c: 00000000 andeq r0, r0, r0 + 60: 03010003 movweq r0, #4099 ; 0x1003 + 64: 0f030213 svceq 0x00030213 + 68: 07140306 ldreq r0, [r4, -r6, lsl #6] + 6c: 03041903 movweq r1, #18691 ; 0x4903 + 70: 04040312 streq r0, [r4], #-786 + 74: 04081a03 streq r1, [r8], #-2563 + 78: 10030404 andne r0, r3, r4, lsl #8 + 7c: 04040405 streq r0, [r4], #-1029 + 80: 00000000 andeq r0, r0, r0 + 84: 03010003 movweq r0, #4099 ; 0x1003 + 88: 15030213 strne r0, [r3, #-531] + 8c: 16030403 strne r0, [r3], -r3, lsl #8 + 90: 06140305 ldreq r0, [r4], -r5, lsl #6 + 94: 04041903 streq r1, [r4], #-2307 + 98: 04071a03 streq r1, [r7], #-2563 + 9c: 17030404 strne r0, [r3, -r4, lsl #8] + a0: 09110308 ldmdbeq r1, {r3, r8, r9} + a4: 04040404 streq r0, [r4], #-1028 + a8: 00000000 andeq r0, r0, r0 + ac: 030a0003 movweq r0, #40963 ; 0xa003 + b0: 0304010d movweq r0, #16653 ; 0x410d + b4: 1103030e tstne r3, lr, lsl #6 + b8: 02190305 andseq r0, r9, #335544320 ; 0x14000000 + bc: 041a0304 ldreq r0, [sl], #-772 + c0: 03040404 movweq r0, #17412 ; 0x4404 + c4: 03040810 movweq r0, #18448 ; 0x4810 + c8: 0e030c12 mcreq 12, 0, r0, cr3, cr2, {0} + cc: 0304040b movweq r0, #17419 ; 0x440b + d0: 11030d13 tstne r3, r3, lsl sp + d4: 060f0309 streq r0, [pc], -r9, lsl #6 + d8: 03040404 movweq r0, #17412 ; 0x4404 + dc: 04040714 streq r0, [r4], #-1812 + e0: 00000000 andeq r0, r0, r0 + e4: 03090003 movweq r0, #36867 ; 0x9003 + e8: 0304030c movweq r0, #17164 ; 0x430c + ec: 0304020d movweq r0, #16909 ; 0x420d + f0: 0304010e movweq r0, #16654 ; 0x410e + f4: 1403060f strne r0, [r3], #-1551 + f8: 05190307 ldreq r0, [r9, #-775] + fc: 081a0304 ldmdaeq sl, {r2, r8, r9} + 100: 03040404 movweq r0, #17412 ; 0x4404 + 104: 04040410 streq r0, [r4], #-1040 + 108: 00000000 andeq r0, r0, r0 + 10c: 030b0003 movweq r0, #45059 ; 0xb003 + 110: 0e03090e cdpeq 9, 0, cr0, cr3, cr14, {0} + 114: 010f0308 tsteq pc, r8, lsl #6 + 118: 03040404 movweq r0, #17412 ; 0x4404 + 11c: 0304040f movweq r0, #17423 ; 0x440f + 120: 11030c10 tstne r3, r0, lsl ip + 124: 12030406 andne r0, r3, #100663296 ; 0x6000000 + 128: 050f0307 streq r0, [pc, #-775] ; fffffe29 + 12c: 13030404 movwne r0, #13316 ; 0x3404 + 130: 1403040a strne r0, [r3], #-1034 + 134: 15030402 strne r0, [r3, #-1026] + 138: 04040403 streq r0, [r4], #-1027 + 13c: 00000000 andeq r0, r0, r0 + 140: 030f0003 movweq r0, #61443 ; 0xf003 + 144: 1903030e stmdbne r3, {r1, r2, r3, r8, r9} + 148: 01120302 tsteq r2, r2, lsl #6 + 14c: 1a030404 bne c1164 + 150: 03040404 movweq r0, #17412 ; 0x4404 + 154: 03040510 movweq r0, #17680 ; 0x4510 + 158: 11030611 tstne r3, r1, lsl r6 + 15c: 03040408 movweq r0, #17416 ; 0x4408 + 160: 03040712 movweq r0, #18194 ; 0x4712 + 164: 03040913 movweq r0, #18707 ; 0x4913 + 168: 03040b14 movweq r0, #19220 ; 0x4b14 + 16c: 0f030e15 svceq 0x00030e15 + 170: 1003040c andne r0, r3, ip, lsl #8 + 174: 1103040d tstne r3, sp, lsl #8 + 178: 0404040a streq r0, [r4], #-1034 + 17c: 00000000 andeq r0, r0, r0 + 180: 030a0003 movweq r0, #40963 ; 0xa003 + 184: 0f03090e svceq 0x0003090e + 188: 010f0308 tsteq pc, r8, lsl #6 + 18c: 10030404 andne r0, r3, r4, lsl #8 + 190: 05170304 ldreq r0, [r7, #-772] + 194: 04031903 streq r1, [r3], #-2307 + 198: 04061a03 streq r1, [r6], #-2563 + 19c: 11030404 tstne r3, r4, lsl #8 + 1a0: 03040402 movweq r0, #17410 ; 0x4402 + 1a4: 0404070f streq r0, [r4], #-1807 + 1a8: 00000000 andeq r0, r0, r0 + 1ac: 03010003 movweq r0, #4099 ; 0x1003 + 1b0: 0304030e movweq r0, #17166 ; 0x430e + 1b4: 0e03070f cdpeq 7, 0, cr0, cr3, cr15, {0} + 1b8: 0a110306 beq 440dd8 + 1bc: 04051903 streq r1, [r5], #-2307 + 1c0: 04081a03 streq r1, [r8], #-2563 + 1c4: 03040404 movweq r0, #17412 ; 0x4404 + 1c8: 03040d10 movweq r0, #19728 ; 0x4d10 + 1cc: 12030211 andne r0, r3, #268435457 ; 0x10000001 + 1d0: 13030409 movwne r0, #13321 ; 0x3409 + 1d4: 0c11030b ldceq 3, cr0, [r1], {11} + 1d8: 14030404 strne r0, [r3], #-1028 + 1dc: 04040404 streq r0, [r4], #-1028 + 1e0: 00000000 andeq r0, r0, r0 + 1e4: 03100003 tsteq r0, #3 ; 0x3 + 1e8: 0e030e0e cdpeq 14, 0, cr0, cr3, cr14, {0} + 1ec: 010f030b tsteq pc, fp, lsl #6 + 1f0: 0f030404 svceq 0x00030404 + 1f4: 0304040c movweq r0, #17420 ; 0x440c + 1f8: 11030f10 tstne r3, r0, lsl pc + 1fc: 12030406 andne r0, r3, #100663296 ; 0x6000000 + 200: 050f0309 streq r0, [pc, #-777] ; fffffeff + 204: 13030404 movwne r0, #13316 ; 0x3404 + 208: 1403040d strne r0, [r3], #-1037 + 20c: 15030403 strne r0, [r3, #-1027] + 210: 03040404 movweq r0, #17412 ; 0x4404 + 214: 03040711 movweq r0, #18193 ; 0x4711 + 218: 03040a12 movweq r0, #18962 ; 0x4a12 + 21c: 03040813 movweq r0, #18451 ; 0x4813 + 220: 04040214 streq r0, [r4], #-532 + 224: 00000000 andeq r0, r0, r0 + 228: 03030003 movweq r0, #12291 ; 0x3003 + 22c: 0503020e streq r0, [r3, #-526] + 230: 04040401 streq r0, [r4], #-1025 + 234: 00000000 andeq r0, r0, r0 + 238: 03030003 movweq r0, #12291 ; 0x3003 + 23c: 03041a0e movweq r1, #18958 ; 0x4a0e + 240: 03041b0f movweq r1, #19215 ; 0x4b0f + 244: 11031c10 tstne r3, r0, lsl ip + 248: 0304041e movweq r0, #17438 ; 0x441e + 24c: 12031d11 andne r1, r3, #1088 ; 0x440 + 250: 0304040a movweq r0, #17418 ; 0x440a + 254: 03042012 movweq r2, #16402 ; 0x4012 + 258: 03041f13 movweq r1, #20243 ; 0x4f13 + 25c: 03042214 movweq r2, #16916 ; 0x4214 + 260: 11032315 tstne r3, r5, lsl r3 + 264: 11170310 tstne r7, r0, lsl r3 + 268: 040f1903 streq r1, [pc], #2307 ; 270 <__ABT_stack_size+0x170> + 26c: 04121a03 ldreq r1, [r2], #-2563 + 270: 03040404 movweq r0, #17412 ; 0x4404 + 274: 03042516 movweq r2, #17686 ; 0x4516 + 278: 11032717 tstne r3, r7, lsl r7 + 27c: 0304040b movweq r0, #17419 ; 0x440b + 280: 10032618 andne r2, r3, r8, lsl r6 + 284: 11030424 tstne r3, r4, lsr #8 + 288: 03040421 movweq r0, #17441 ; 0x4421 + 28c: 03042819 movweq r2, #18457 ; 0x4819 + 290: 0304131a movweq r1, #17178 ; 0x431a + 294: 0304141c movweq r1, #17436 ; 0x441c + 298: 0e03161d mcreq 6, 0, r1, cr3, cr13, {0} + 29c: 03040415 movweq r0, #17429 ; 0x4415 + 2a0: 0304171f movweq r1, #18207 ; 0x471f + 2a4: 03041821 movweq r1, #18465 ; 0x4821 + 2a8: 03040d22 movweq r0, #19746 ; 0x4d22 + 2ac: 03040c23 movweq r0, #19491 ; 0x4c23 + 2b0: 12030924 andne r0, r3, #589824 ; 0x90000 + 2b4: 14030419 strne r0, [r3], #-1049 + 2b8: 0304040e movweq r0, #17422 ; 0x440e + 2bc: 03040525 movweq r0, #17701 ; 0x4525 + 2c0: 03040726 movweq r0, #18214 ; 0x4726 + 2c4: 11030427 tstne r3, r7, lsr #8 + 2c8: 03040406 movweq r0, #17414 ; 0x4406 + 2cc: 03040828 movweq r0, #18472 ; 0x4828 + 2d0: 24030229 strcs r0, [r3], #-553 + 2d4: 04040401 streq r0, [r4], #-1025 + 2d8: 00000000 andeq r0, r0, r0 + +Disassembly of section .iar.debug_line: + +00000000 <.iar.debug_line>: + 0: 00000062 andeq r0, r0, r2, rrx + 4: 3d840001 stccc 0, cr0, [r4, #4] + 8: 00010040 andeq r0, r1, r0, asr #32 + c: bb020000 bllt 80014 + 10: 00000001 andeq r0, r0, r1 + 14: 51000000 tstpl r0, r0 + 18: 19d50001 ldmibne r5, {r0}^ + 1c: 02010001 andeq r0, r1, #1 ; 0x1 + 20: 11780500 cmnne r8, r0, lsl #10 + 24: 000e296c andeq r2, lr, ip, ror #18 + 28: 01010100 tsteq r1, r0, lsl #2 + 2c: 01000101 tsteq r0, r1, lsl #2 + 30: 01010100 tsteq r1, r0, lsl #2 + 34: 022fd501 eoreq sp, pc, #4194304 ; 0x400000 + 38: 02021200 andeq r1, r2, #0 ; 0x0 + 3c: 0101ff00 tstpeq r1, r0, lsl #30 + 40: 040a0108 streq r0, [sl], #-264 + 44: 01040308 tsteq r4, r8, lsl #6 + 48: 1501fb03 strne pc, [r1, #-2819] + 4c: 0601032a streq r0, [r1], -sl, lsr #6 + 50: 0a995f0e beq fe657c90 + 54: 1b7f0600 blne 1fc185c + 58: 037e0ac6 cmneq lr, #811008 ; 0xc6000 + 5c: 097e587d ldmdbeq lr!, {r0, r2, r3, r4, r5, r6, fp, ip, lr}^ + 60: 01037b0a tsteq r3, sl, lsl #22 + 64: 0062042c rsbeq r0, r2, ip, lsr #8 + 68: 00010000 andeq r0, r1, r0 + 6c: 00403da8 subeq r3, r0, r8, lsr #27 + 70: 00000001 andeq r0, r0, r1 + 74: 0002cb02 andeq ip, r2, r2, lsl #22 + 78: 00000000 andeq r0, r0, r0 + 7c: 00015100 andeq r5, r1, r0, lsl #2 + 80: 000119d5 ldrdeq r1, [r1], -r5 + 84: 05000201 streq r0, [r0, #-513] + 88: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 8c: 0100000e tsteq r0, lr + 90: 01010101 tsteq r1, r1, lsl #2 + 94: 01000100 tsteq r0, r0, lsl #2 + 98: d5010101 strle r0, [r1, #-257] + 9c: 0f00022f svceq 0x0000022f + a0: 8b010202 blhi 408b0 + a4: 01080102 tsteq r8, r2, lsl #2 + a8: 0308040a movweq r0, #33802 ; 0x840a + ac: 87030104 strhi r0, [r3, -r4, lsl #2] + b0: 032a1502 teqeq sl, #8388608 ; 0x800000 + b4: 5f110601 svcpl 0x00110601 + b8: 06000a99 undefined + bc: 0ac61b7c beq ff186eb4 + c0: 587d037e ldmdapl sp!, {r1, r2, r3, r4, r5, r6, r8, r9}^ + c4: 7b0a097e blvc 2826c4 + c8: 042c0103 strteq r0, [ip], #-259 + cc: 000002f6 strdeq r0, [r0], -r6 + d0: 19640001 stmdbne r4!, {r0}^ + d4: 000d0040 andeq r0, sp, r0, asr #32 + d8: f7020000 undefined instruction 0xf7020000 + dc: 0100000d tsteq r0, sp + e0: 0000876d andeq r8, r0, sp, ror #14 + e4: 00848101 addeq r8, r4, r1, lsl #2 + e8: 85750100 ldrbhi r0, [r5, #-256]! + ec: a9010000 stmdbge r1, {} + f0: 01000083 smlabbeq r0, r3, r0, r0 + f4: 000086e5 andeq r8, r0, r5, ror #13 + f8: 0082d901 addeq sp, r2, r1, lsl #18 + fc: 837d0100 cmnhi sp, #0 ; 0x0 + 100: a9010000 stmdbge r1, {} + 104: 0100403d tsteq r0, sp, lsr r0 + 108: 00403d85 subeq r3, r0, r5, lsl #27 + 10c: 00169302 andseq r9, r6, r2, lsl #6 + 110: 1af70200 bne ffdc0918 + 114: e7020000 str r0, [r2, -r0] + 118: 00000019 andeq r0, r0, r9, lsl r0 + 11c: 51000000 tstpl r0, r0 + 120: 19d50001 ldmibne r5, {r0}^ + 124: 02010001 andeq r0, r1, #1 ; 0x1 + 128: 11780500 cmnne r8, r0, lsl #10 + 12c: 000e296c andeq r2, lr, ip, ror #18 + 130: 01010100 tsteq r1, r0, lsl #2 + 134: 01000101 tsteq r0, r1, lsl #2 + 138: 01010100 tsteq r1, r0, lsl #2 + 13c: 0586d501 streq sp, [r6, #1281] + 140: 01f90002 mvnseq r0, r2 + 144: a4000202 strge r0, [r0], #-514 + 148: 01b40113 undefined instruction 0x01b40113 + 14c: 04030801 streq r0, [r3], #-2049 + 150: 13a00301 movne r0, #67108864 ; 0x4000000 + 154: 1e062a15 mcrne 10, 0, r2, cr6, cr5, {0} + 158: 020d2429 andeq r2, sp, #687865856 ; 0x29000000 + 15c: 0c08b12f stfeqd f3, [r8], {47} + 160: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 164: b12f0408 teqlt pc, r8, lsl #8 + 168: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 16c: 04082215 streq r2, [r8], #-533 + 170: 0c08b12f stfeqd f3, [r8], {47} + 174: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 178: b12f0408 teqlt pc, r8, lsl #8 + 17c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 180: 0408cc15 streq ip, [r8], #-3093 + 184: 0c08b12f stfeqd f3, [r8], {47} + 188: 20170630 andscs r0, r7, r0, lsr r6 + 18c: b12f0408 teqlt pc, r8, lsl #8 + 190: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 194: 030d7d10 movweq r7, #56592 ; 0xdd10 + 198: 0c08b12f stfeqd f3, [r8], {47} + 19c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 1a0: b12f0408 teqlt pc, r8, lsl #8 + 1a4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1a8: 04082215 streq r2, [r8], #-533 + 1ac: 0c08b12f stfeqd f3, [r8], {47} + 1b0: cd140630 ldcgt 6, cr0, [r4, #-192] + 1b4: b12f0408 teqlt pc, r8, lsl #8 + 1b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1bc: 04087715 streq r7, [r8], #-1813 + 1c0: 0c08b12f stfeqd f3, [r8], {47} + 1c4: 20170630 andscs r0, r7, r0, lsr r6 + 1c8: b12f0408 teqlt pc, r8, lsl #8 + 1cc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1d0: 040d2019 streq r2, [sp], #-25 + 1d4: 0c08cf2f stceq 15, cr12, [r8], {47} + 1d8: 04150630 ldreq r0, [r5], #-1584 + 1dc: cf2f0408 svcgt 0x002f0408 + 1e0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1e4: 04080415 streq r0, [r8], #-1045 + 1e8: 0c08cf2f stceq 15, cr12, [r8], {47} + 1ec: 04150630 ldreq r0, [r5], #-1584 + 1f0: cf2f0408 svcgt 0x002f0408 + 1f4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1f8: 04080415 streq r0, [r8], #-1045 + 1fc: 0c08cf2f stceq 15, cr12, [r8], {47} + 200: 04150630 ldreq r0, [r5], #-1584 + 204: cf2f0408 svcgt 0x002f0408 + 208: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 20c: 04080217 streq r0, [r8], #-535 + 210: 0c08cf2f stceq 15, cr12, [r8], {47} + 214: 600f0630 andvs r0, pc, r0, lsr r6 + 218: cf2f050d svcgt 0x002f050d + 21c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 220: 04080415 streq r0, [r8], #-1045 + 224: 0c08cf2f stceq 15, cr12, [r8], {47} + 228: 04150630 ldreq r0, [r5], #-1584 + 22c: cf2f0408 svcgt 0x002f0408 + 230: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 234: 04080415 streq r0, [r8], #-1045 + 238: 0c08cf2f stceq 15, cr12, [r8], {47} + 23c: 04150630 ldreq r0, [r5], #-1584 + 240: cf2f0408 svcgt 0x002f0408 + 244: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 248: 04080415 streq r0, [r8], #-1045 + 24c: 0c08cf2f stceq 15, cr12, [r8], {47} + 250: 02170630 andseq r0, r7, #50331648 ; 0x3000000 + 254: cf2f0408 svcgt 0x002f0408 + 258: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 25c: 03063703 movweq r3, #26371 ; 0x6703 + 260: 060d561b undefined + 264: 0c084e3d stceq 14, cr4, [r8], {61} + 268: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 26c: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} + 270: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 274: 070d1d1b smladeq sp, fp, sp, r1 + 278: 0c08eb4a stceq 11, cr14, [r8], {74} + 27c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 280: eb4a0408 bl 12812a8 + 284: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 288: 04087815 streq r7, [r8], #-2069 + 28c: 0c08eb4a stceq 11, cr14, [r8], {74} + 290: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 294: eb4a0408 bl 12812bc + 298: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 29c: 04087815 streq r7, [r8], #-2069 + 2a0: 0c08eb4a stceq 11, cr14, [r8], {74} + 2a4: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 2a8: eb4a0408 bl 12812d0 + 2ac: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2b0: 04082216 streq r2, [r8], #-534 + 2b4: 0c082566 cfstr32eq mvfx2, [r8], {102} + 2b8: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 2bc: 25660408 strbcs r0, [r6, #-1032]! + 2c0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2c4: 2a0e7906 bcs 39e6e4 + 2c8: 4e3d080d cdpmi 8, 3, cr0, cr13, cr13, {0} + 2cc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2d0: 04082215 streq r2, [r8], #-533 + 2d4: 0c084e3d stceq 14, cr4, [r8], {61} + 2d8: 76060630 undefined + 2dc: 030d220e movweq r2, #53774 ; 0xd20e + 2e0: 0c08b12f stfeqd f3, [r8], {47} + 2e4: 20170630 andscs r0, r7, r0, lsr r6 + 2e8: b12f0408 teqlt pc, r8, lsl #8 + 2ec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2f0: 290e7106 stmdbcs lr, {r1, r2, r8, ip, sp, lr} + 2f4: 1422090d strtne r0, [r2], #-2317 + 2f8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2fc: 711b0a06 tstvc fp, r6, lsl #20 + 300: b12f030d teqlt pc, sp, lsl #6 + 304: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 308: 04082017 streq r2, [r8], #-23 + 30c: 0c08b12f stfeqd f3, [r8], {47} + 310: 71060630 tstvc r6, r0, lsr r6 + 314: 0a0d290e beq 34a754 + 318: 0c081422 cfstrseq mvf1, [r8], {34} + 31c: 17030630 smladxne r3, r0, r6, r0 + 320: 7e1b0906 cdpvc 9, 1, cr0, cr11, cr6, {0} + 324: 14220b0d strtne r0, [r2], #-2829 + 328: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 32c: 290e7c06 stmdbcs lr, {r1, r2, sl, fp, ip, sp, lr} + 330: 1422090d strtne r0, [r2], #-2317 + 334: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 338: 731b0706 tstvc fp, #1572864 ; 0x180000 + 33c: 14220b0d strtne r0, [r2], #-2829 + 340: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 344: 04087916 streq r7, [r8], #-2326 + 348: 0c081422 cfstrseq mvf1, [r8], {34} + 34c: cf140630 svcgt 0x00140630 + 350: 14220408 strtne r0, [r2], #-1032 + 354: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 358: 731b0e06 tstvc fp, #96 ; 0x60 + 35c: 14220408 strtne r0, [r2], #-1032 + 360: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 364: 0408d60e streq sp, [r8], #-1550 + 368: 0c081422 cfstrseq mvf1, [r8], {34} + 36c: 24140630 ldrcs r0, [r4], #-1584 + 370: 14220408 strtne r0, [r2], #-1032 + 374: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 378: 2c0e7806 stccs 8, cr7, [lr], {6} + 37c: 14220408 strtne r0, [r2], #-1032 + 380: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 384: 090d7b11 stmdbeq sp, {r0, r4, r8, r9, fp, ip, sp, lr} + 388: 0c081422 cfstrseq mvf1, [r8], {34} + 38c: 0a060630 beq 181c54 + 390: 0b0d721b bleq 35cc04 + 394: 0c081422 cfstrseq mvf1, [r8], {34} + 398: 78060630 stmdavc r6, {r4, r5, r9, sl} + 39c: 090d290e stmdbeq sp, {r1, r2, r3, r8, fp, sp} + 3a0: 0c081422 cfstrseq mvf1, [r8], {34} + 3a4: 10060630 andne r0, r6, r0, lsr r6 + 3a8: 0c0d731b stceq 3, cr7, [sp], {27} + 3ac: 0c081422 cfstrseq mvf1, [r8], {34} + 3b0: d2110630 andsle r0, r1, #50331648 ; 0x3000000 + 3b4: 32220d0d eorcc r0, r2, #832 ; 0x340 + 3b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3bc: 0a095e11 beq 257c08 + 3c0: 77067ecf strvc r7, [r6, -pc, asr #29] + 3c4: 00a3ec36 adceq lr, r3, r6, lsr ip + 3c8: 00010000 andeq r0, r1, r0 + 3cc: 00401b56 subeq r1, r0, r6, asr fp + 3d0: 00000002 andeq r0, r0, r2 + 3d4: 000eeb02 andeq lr, lr, r2, lsl #22 + 3d8: 22370200 eorscs r0, r7, #0 ; 0x0 + 3dc: 00000000 andeq r0, r0, r0 + 3e0: 01510000 cmpeq r1, r0 + 3e4: 0119d500 tsteq r9, r0, lsl #10 + 3e8: 00020100 andeq r0, r2, r0, lsl #2 + 3ec: 6c117805 ldcvs 8, cr7, [r1], {5} + 3f0: 00000e29 andeq r0, r0, r9, lsr #28 + 3f4: 01010101 tsteq r1, r1, lsl #2 + 3f8: 00010001 andeq r0, r1, r1 + 3fc: 01010101 tsteq r1, r1, lsl #2 + 400: 00026bd5 ldrdeq r6, [r2], -r5 + 404: 0102022c tsteq r2, ip, lsr #4 + 408: 2c0114e5 cfstrscs mvf1, [r1], {229} + 40c: 04030801 streq r0, [r3], #-2049 + 410: 14e10301 strbtne r0, [r1], #769 + 414: 08052a15 stmdaeq r5, {r0, r2, r4, r9, fp, sp} + 418: 39291306 stmdbcc r9!, {r1, r2, r8, r9, ip} + 41c: fe127a05 cdp2 10, 1, cr7, cr2, cr5, {0} + 420: 040af940 streq pc, [sl], #-2368 + 424: 0f06612b svceq 0x0006612b + 428: 020a5444 andeq r5, sl, #1140850688 ; 0x44000000 + 42c: 63296a06 teqvs r9, #24576 ; 0x6000 + 430: 0a097028 beq 25c4d8 + 434: 29760602 ldmdbcs r6!, {r1, r9, sl}^ + 438: 22030356 andcs r0, r3, #1476395009 ; 0x58000001 + 43c: 037f0ad1 cmneq pc, #856064 ; 0xd1000 + 440: 4421067e strtmi r0, [r1], #-1662 + 444: 03060a3d movweq r0, #27197 ; 0x6a3d + 448: 5f710601 svcpl 0x00710601 + 44c: 0dae3fda stceq 15, cr3, [lr, #872]! + 450: 14030502 strne r0, [r3], #-1282 + 454: 087c0a9f ldmdaeq ip!, {r0, r1, r2, r3, r4, r7, r9, fp}^ + 458: 0506300c streq r3, [r6, #-12] + 45c: 0931357f ldmdbeq r1!, {r0, r1, r2, r3, r4, r5, r6, r8, sl, ip, sp} + 460: 8061780a rsbhi r7, r1, sl, lsl #16 + 464: 036e0a09 cmneq lr, #36864 ; 0x9000 + 468: 36700601 ldrbtcc r0, [r0], -r1, lsl #12 + 46c: 0000e8db ldrdeq lr, [r0], -fp + 470: b4000200 strlt r0, [r0], #-512 + 474: 0300401b movweq r4, #27 ; 0x1b + 478: 02000000 andeq r0, r0, #0 ; 0x0 + 47c: 00001063 andeq r1, r0, r3, rrx + 480: 0024f602 eoreq pc, r4, r2, lsl #12 + 484: 1e1f0200 cdpne 2, 1, cr0, cr15, cr0, {0} + 488: 00000000 andeq r0, r0, r0 + 48c: 00010000 andeq r0, r1, r0 + 490: 22b00000 adcscs r0, r0, #0 ; 0x0 + 494: 01510040 cmpeq r1, r0, asr #32 + 498: 0119d500 tsteq r9, r0, lsl #10 + 49c: 00020100 andeq r0, r2, r0, lsl #2 + 4a0: 6c117805 ldcvs 8, cr7, [r1], {5} + 4a4: 00000e29 andeq r0, r0, r9, lsr #28 + 4a8: 01010101 tsteq r1, r1, lsl #2 + 4ac: 00010001 andeq r0, r1, r1 + 4b0: 01010101 tsteq r1, r1, lsl #2 + 4b4: 000260d5 ldrdeq r6, [r2], -r5 + 4b8: 02020234 andeq r0, r2, #1073741827 ; 0x40000003 + 4bc: 0d0115a0 cfstr32eq mvfx1, [r1, #-640] + 4c0: 03030801 movweq r0, #14337 ; 0x3801 + 4c4: 2906159c stmdbcs r6, {r2, r3, r4, r7, r8, sl, ip} + 4c8: ba2e791b blt b9e93c + 4cc: 72061874 andvc r1, r6, #7602176 ; 0x740000 + 4d0: 06086329 streq r6, [r8], -r9, lsr #6 + 4d4: 3222020c eorcc r0, r2, #-1073741824 ; 0xc0000000 + 4d8: 07070a09 streq r0, [r7, -r9, lsl #20] + 4dc: 7e05b749 cdpvc 7, 0, cr11, cr5, cr9, {2} + 4e0: e7283306 str r3, [r8, -r6, lsl #6]! + 4e4: 4e3d030d cdpmi 3, 3, cr0, cr13, cr13, {0} + 4e8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4ec: 290e6206 stmdbcs lr, {r1, r2, r9, sp, lr} + 4f0: fb367806 blx d9e512 + 4f4: 2e057c03 cdpcs 12, 0, cr7, cr5, cr3, {0} + 4f8: 35291f06 strcc r1, [r9, #-3846]! + 4fc: 62057a0a andvs r7, r5, #40960 ; 0xa000 + 500: 02039820 andeq r9, r3, #2097152 ; 0x200000 + 504: 5e067605 cfmadd32pl mvax0, mvfx7, mvfx6, mvfx5 + 508: 0009b25f andeq fp, r9, pc, asr r2 + 50c: 00010405 andeq r0, r1, r5, lsl #8 + 510: 0b081401 bleq 20551c + 514: 01516922 cmpeq r1, r2, lsr #18 + 518: 023ed518 eorseq sp, lr, #100663296 ; 0x6000000 + 51c: 03031300 movweq r1, #13056 ; 0x3300 + 520: 011bc302 tsteq fp, r2, lsl #6 + 524: 03081012 movweq r1, #32786 ; 0x8012 + 528: bf030404 svclt 0x00030404 + 52c: 032a151b teqeq sl, #113246208 ; 0x6c00000 + 530: 1a010501 bne 4193c + 534: 040a0948 streq r0, [sl], #-2376 + 538: 80330105 eorshi r0, r3, r5, lsl #2 + 53c: e62a7a05 strt r7, [sl], -r5, lsl #20 + 540: f93df93d undefined instruction 0xf93df93d + 544: 7d037d0a stcvc 13, cr7, [r3, #-40] + 548: 03291406 teqeq r9, #100663296 ; 0x6000000 + 54c: 0303020a movweq r0, #12810 ; 0x320a + 550: bd2e3d52 stclt 13, cr3, [lr, #-328]! + 554: 1d760a09 fldmdbsne r6!, {s1-s9} + 558: 00014fbc strheq r4, [r1], -ip + 55c: 24000200 strcs r0, [r0], #-512 + 560: 0200401c andeq r4, r0, #28 ; 0x1c + 564: 02000000 andeq r0, r0, #0 ; 0x0 + 568: 000011f3 strdeq r1, [r0], -r3 + 56c: 00106302 andseq r6, r0, r2, lsl #6 + 570: 00000000 andeq r0, r0, r0 + 574: 00000100 andeq r0, r0, r0, lsl #2 + 578: 4022b000 eormi fp, r2, r0 + 57c: 00015100 andeq r5, r1, r0, lsl #2 + 580: 000119d5 ldrdeq r1, [r1], -r5 + 584: 05000201 streq r0, [r0, #-513] + 588: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 58c: 0100000e tsteq r0, lr + 590: 01010101 tsteq r1, r1, lsl #2 + 594: 01000100 tsteq r0, r0, lsl #2 + 598: d5010101 strle r0, [r1, #-257] + 59c: 0002028e andeq r0, r2, lr, lsl #5 + 5a0: 020201ca andeq r0, r2, #-2147483598 ; 0x80000032 + 5a4: 0115bb03 tsteq r5, r3, lsl #22 + 5a8: 03080154 movweq r0, #33108 ; 0x8154 + 5ac: b7030704 strlt r0, [r3, -r4, lsl #14] + 5b0: 032a1515 teqeq sl, #88080384 ; 0x5400000 + 5b4: 06020505 streq r0, [r2], -r5, lsl #10 + 5b8: 05734402 ldrbeq r4, [r3, #-1026]! + 5bc: 05382606 ldreq r2, [r8, #-1542]! + 5c0: 4d000f7a stcmi 15, cr0, [r0, #-488] + 5c4: 05321811 ldreq r1, [r2, #-2065]! + 5c8: 0a442374 beq 11093a0 + 5cc: 0aad301d beq feb4c648 + 5d0: 2e1c2a03 fmscscs s4, s24, s6 + 5d4: 070a09bd undefined + 5d8: 030aa33e movweq sl, #41790 ; 0xa33e + 5dc: bb360206 bllt d80dfc + 5e0: 8e447b06 fmacdhi d23, d4, d6 + 5e4: 3e040a09 fmacscc s0, s8, s18 + 5e8: 06030af8 undefined + 5ec: 06bb3602 ldrteq r3, [fp], r2, lsl #12 + 5f0: 3ff1367a svccc 0x00f1367a + 5f4: 25030a4d strcs r0, [r3, #-2637] + 5f8: 094bf515 stmdbeq fp, {r0, r2, r4, r8, sl, ip, sp, lr, pc}^ + 5fc: 9c45020a sfmls f0, 2, [r5], {10} + 600: 3a497d66 bcc 125fba0 + 604: 07057803 streq r7, [r5, -r3, lsl #16] + 608: 7a0a0559 bvc 281b74 + 60c: 0603d23b undefined + 610: 1b4c7f05 blne 132022c + 614: 55030a09 strpl r0, [r3, #-2569] + 618: 455443e1 ldrbmi r4, [r4, #-993] + 61c: 037e0a47 cmneq lr, #290816 ; 0x47000 + 620: 4416067e ldrmi r0, [r6], #-1662 + 624: 020a093d andeq r0, sl, #999424 ; 0xf4000 + 628: da5f6506 ble 17d9a48 + 62c: b6360706 ldrtlt r0, [r6], -r6, lsl #14 + 630: 7f037f0a svcvc 0x00037f0a + 634: b17a0206 cmnlt sl, r6, lsl #4 + 638: d95f7506 ldmdble pc, {r1, r2, r8, sl, ip, sp, lr}^ + 63c: ab360206 blge d80e5c + 640: 4e3d020d cdpmi 2, 3, cr0, cr13, cr13, {0} + 644: 08170a09 ldmdaeq r7, {r0, r3, r9, fp} + 648: 0a06300c beq 18c680 + 64c: 49262112 stmdbmi r6!, {r1, r4, r8, sp} + 650: 1c7f62e9 lfmne f6, 2, [pc], #-932 + 654: 417d0ac5 cmnmi sp, r5, asr #21 + 658: 09893fb0 stmibeq r9, {r4, r5, r7, r8, r9, sl, fp, ip, sp} + 65c: fe38020a cdp2 2, 3, cr0, cr8, cr10, {0} + 660: 7f0a6235 svcvc 0x000a6235 + 664: 676f7f03 strbvs r7, [pc, -r3, lsl #30]! + 668: 082ff940 stmdaeq pc!, {r6, r8, fp, ip, sp, lr, pc} + 66c: 48030a09 stmdami r3, {r0, r3, r9, fp} + 670: 45544345 ldrbmi r4, [r4, #-837] + 674: 037e0a47 cmneq lr, #290816 ; 0x47000 + 678: 4416067e ldrmi r0, [r6], #-1662 + 67c: 5f65063d svcpl 0x0065063d + 680: 066c0ada undefined + 684: 090e291d stmdbeq lr, {r0, r2, r3, r4, r8, fp, sp} + 688: 7e067f0a cdpvc 15, 0, cr7, cr6, cr10, {0} + 68c: 02034452 andeq r4, r3, #1375731712 ; 0x52000000 + 690: 52880106 addpl r0, r8, #-2147483647 ; 0x80000001 + 694: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} + 698: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 69c: 160e5e06 strne r5, [lr], -r6, lsl #28 + 6a0: 04050009 streq r0, [r5], #-9 + 6a4: 15010001 strne r0, [r1, #-1] + 6a8: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} + 6ac: 00000172 andeq r0, r0, r2, ror r1 + 6b0: 1dbc0002 ldcne 0, cr0, [ip, #8]! + 6b4: 00020040 andeq r0, r2, r0, asr #32 + 6b8: 23020000 movwcs r0, #8192 ; 0x2000 + 6bc: 02000014 andeq r0, r0, #20 ; 0x14 + 6c0: 00001063 andeq r1, r0, r3, rrx + 6c4: 00000000 andeq r0, r0, r0 + 6c8: 00000001 andeq r0, r0, r1 + 6cc: 004022b0 strheq r2, [r0], #-32 + 6d0: d5000151 strle r0, [r0, #-337] + 6d4: 01000119 tsteq r0, r9, lsl r1 + 6d8: 78050002 stmdavc r5, {r1} + 6dc: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 6e0: 01010000 tsteq r1, r0 + 6e4: 00010101 andeq r0, r1, r1, lsl #2 + 6e8: 01010001 tsteq r1, r1 + 6ec: b1d50101 bicslt r0, r5, r1, lsl #2 + 6f0: f8000202 undefined instruction 0xf8000202 + 6f4: 04020201 streq r0, [r2], #-513 + 6f8: 62011691 andvs r1, r1, #152043520 ; 0x9100000 + 6fc: 04030801 streq r0, [r3], #-2049 + 700: 168d0307 strne r0, [sp], r7, lsl #6 + 704: 05032a15 streq r2, [r3, #-2581] + 708: 02060205 andeq r0, r6, #1342177280 ; 0x50000000 + 70c: 0605d636 undefined + 710: 7a053826 bvc 14e7b0 + 714: 114d000f cmpne sp, pc + 718: 785a3218 ldmdavc sl, {r3, r4, r9, ip, sp}^ + 71c: 77050203 strvc r0, [r5, -r3, lsl #4] + 720: 1f0afe13 svcne 0x000afe13 + 724: 4556ad30 ldrbmi sl, [r6, #-3376] + 728: 030a4548 movweq r4, #42312 ; 0xa548 + 72c: 41561e24 cmpmi r6, r4, lsr #28 + 730: 3e050a09 fmacscc s0, s10, s18 + 734: 06030aa3 streq r0, [r3], -r3, lsr #21 + 738: 06bb360a ldrteq r3, [fp], sl, lsl #12 + 73c: 09c85f73 stmibeq r8, {r0, r1, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 740: 5b31020a blpl c40f70 + 744: ab2d080a blge b42774 + 748: 8c5f030a mrrchi 3, 0, r0, pc, cr10 + 74c: 0a09afe7 beq 26c6f0 + 750: 7ff04602 svcvc 0x00f04602 + 754: 033a490f teqeq sl, #245760 ; 0x3c000 + 758: 66070577 undefined + 75c: 207a0aa2 rsbscs r0, sl, r2, lsr #21 + 760: 03020a98 movweq r0, #10904 ; 0x2a98 + 764: 217f0507 cmncs pc, r7, lsl #10 + 768: 7fac40f0 svcvc 0x00ac40f0 + 76c: 056603ae strbeq r0, [r6, #-942]! + 770: 5f020616 svcpl 0x00020616 + 774: 056e0aa9 strbeq r0, [lr, #-2729]! + 778: 037f397a cmneq pc, #1998848 ; 0x1e8000 + 77c: 7d760519 cfldr64vc mvdx0, [r6, #-100]! + 780: 030a09e9 movweq r0, #43497 ; 0xa9e9 + 784: 5643d011 undefined + 788: 7e0a4745 cdpvc 7, 0, cr4, cr10, cr5, {2} + 78c: 7d03030a stcvc 3, cr0, [r3, #-40] + 790: 3d441606 stclcc 6, cr1, [r4, #-24] + 794: 03020a09 movweq r0, #10761 ; 0x2a09 + 798: 5f650601 svcpl 0x00650601 + 79c: 290706da stmdbcs r7, {r1, r3, r4, r6, r7, r9, sl} + 7a0: 0a7f0a1a beq 1fc3010 + 7a4: 067f0316 undefined + 7a8: 09b17a02 ldmibeq r1!, {r1, r9, fp, ip, sp, lr} + 7ac: 8063150a rsbhi r1, r3, sl, lsl #10 + 7b0: d220170a eorle r1, r0, #2621440 ; 0x280000 + 7b4: 568b8657 pkhtbpl r8, fp, r7, asr #12 + 7b8: 7d0a3953 stcvc 9, cr3, [sl, #-332] + 7bc: ec31b041 ldc 0, cr11, [r1], #-260 + 7c0: 54020a09 strpl r0, [r2], #-2569 + 7c4: 0a623538 beq 188dcac + 7c8: 6f7f037f svcvs 0x007f037f + 7cc: 2ff94067 svccs 0x00f94067 + 7d0: 030a0908 movweq r0, #43272 ; 0xa908 + 7d4: 54434548 strbpl r4, [r3], #-1352 + 7d8: 7e0a4745 cdpvc 7, 0, cr4, cr10, cr5, {2} + 7dc: 16067e03 strne r7, [r6], -r3, lsl #28 + 7e0: 0a093d44 beq 24fcf8 + 7e4: 5f650602 svcpl 0x00650602 + 7e8: 360706da undefined + 7ec: 037f0ab6 cmneq pc, #745472 ; 0xb6000 + 7f0: 7a02067f bvc 821f4 + 7f4: 527506b1 rsbspl r0, r5, #185597952 ; 0xb100000 + 7f8: 4402063c strmi r0, [r2], #-1596 + 7fc: 3d020d48 stccc 13, cr0, [r2, #-288] + 800: 300c084e andcc r0, ip, lr, asr #16 + 804: 05000906 streq r0, [r0, #-2310] + 808: 01000104 tsteq r0, r4, lsl #2 + 80c: 220b0816 andcs r0, fp, #1441792 ; 0x160000 + 810: 08bf2469 ldmeq pc!, {r0, r3, r5, r6, sl, sp} + 814: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 818: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 81c: 60067c0a andvs r7, r6, sl, lsl #24 + 820: 0128160e teqeq r8, lr, lsl #12 + 824: 00020000 andeq r0, r2, r0 + 828: 00401fac subeq r1, r0, ip, lsr #31 + 82c: 00000006 andeq r0, r0, r6 + 830: 00169302 andseq r9, r6, r2, lsl #6 + 834: 84810100 strhi r0, [r1], #256 + 838: 0e020000 cdpeq 0, 0, cr0, cr2, cr0, {0} + 83c: 02000026 andeq r0, r0, #38 ; 0x26 + 840: 000026ee andeq r2, r0, lr, ror #13 + 844: 00837d01 addeq r7, r3, r1, lsl #26 + 848: 84350100 ldrthi r0, [r5], #-256 + 84c: 00000000 andeq r0, r0, r0 + 850: 00010000 andeq r0, r1, r0 + 854: 20440000 subcs r0, r4, r0 + 858: 01510040 cmpeq r1, r0, asr #32 + 85c: 0119d500 tsteq r9, r0, lsl #10 + 860: 00020100 andeq r0, r2, r0, lsl #2 + 864: 6c117805 ldcvs 8, cr7, [r1], {5} + 868: 00000e29 andeq r0, r0, r9, lsr #28 + 86c: 01010101 tsteq r1, r1, lsl #2 + 870: 00010001 andeq r0, r1, r1 + 874: 01010101 tsteq r1, r1, lsl #2 + 878: 000258d5 ldrdeq r5, [r2], -r5 + 87c: 06020228 streq r0, [r2], -r8, lsr #4 + 880: 0a0117c0 beq 46788 + 884: 0403080d streq r0, [r3], #-2061 + 888: 17bc0301 ldrne r0, [ip, r1, lsl #6]! + 88c: 0e062a15 mcreq 10, 0, r2, cr6, cr5, {0} + 890: f83fb736 undefined instruction 0xf83fb736 + 894: b12f020d teqlt pc, sp, lsl #4 + 898: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 89c: 290e7906 stmdbcs lr, {r1, r2, r8, fp, ip, sp, lr} + 8a0: 030c0608 movweq r0, #50696 ; 0xc608 + 8a4: 08067714 stmdaeq r6, {r2, r4, r8, r9, sl, ip, sp, lr} + 8a8: 020d93a3 andeq r9, sp, #-1946157054 ; 0x8c000002 + 8ac: 0c08b12f stfeqd f3, [r8], {47} + 8b0: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 8b4: b12f0408 teqlt pc, r8, lsl #8 + 8b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 8bc: 0608290e streq r2, [r8], -lr, lsl #18 + 8c0: 7714040c ldrvc r0, [r4, -ip, lsl #8] + 8c4: 0009f19a muleq r9, sl, r1 + 8c8: 00010405 andeq r0, r1, r5, lsl #8 + 8cc: 0b081001 bleq 2048d8 + 8d0: 0151cc14 cmpeq r1, r4, lsl ip + 8d4: 0233d512 eorseq sp, r3, #75497472 ; 0x4800000 + 8d8: 03040a00 movweq r0, #18944 ; 0x4a00 + 8dc: 011ac206 tsteq sl, r6, lsl #4 + 8e0: 03080113 movweq r0, #33043 ; 0x8113 + 8e4: be030104 adflts f0, f3, f4 + 8e8: 032a151a teqeq sl, #109051904 ; 0x6800000 + 8ec: 1b35060a blne d4211c + 8f0: 3d050d88 stccc 13, cr0, [r5, #-544] + 8f4: 300c084e andcc r0, ip, lr, asr #16 + 8f8: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 8fc: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 900: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 904: 4c06780a stcmi 8, cr7, [r6], {10} + 908: 0151180e cmpeq r1, lr, lsl #16 + 90c: 023fd536 eorseq sp, pc, #226492416 ; 0xd800000 + 910: 03050a00 movweq r0, #23040 ; 0x5a00 + 914: 011a8506 tsteq sl, r6, lsl #10 + 918: 03080111 movweq r0, #33041 ; 0x8111 + 91c: 81030104 tsthi r3, r4, lsl #2 + 920: 032a151a teqeq sl, #109051904 ; 0x6800000 + 924: 1b3d0609 blne f42150 + 928: 3d060d88 stccc 13, cr0, [r6, #-544] + 92c: 300c084e andcc r0, ip, lr, asr #16 + 930: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 934: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 938: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 93c: 4406780a strmi r7, [r6], #-2058 + 940: 0009170e andeq r1, r9, lr, lsl #14 + 944: 00010405 andeq r0, r1, r5, lsl #8 + 948: 0b081001 bleq 204954 + 94c: 011ecc14 tsteq lr, r4, lsl ip + 950: 00020000 andeq r0, r2, r0 + 954: 00401ffc strdeq r1, [r0], #-252 + 958: 00000006 andeq r0, r0, r6 + 95c: 0017d702 andseq sp, r7, r2, lsl #14 + 960: 84810100 strhi r0, [r1], #256 + 964: 0e020000 cdpeq 0, 0, cr0, cr2, cr0, {0} + 968: 02000026 andeq r0, r0, #38 ; 0x26 + 96c: 000026ee andeq r2, r0, lr, ror #13 + 970: 00837d01 addeq r7, r3, r1, lsl #26 + 974: 84350100 ldrthi r0, [r5], #-256 + 978: 00000000 andeq r0, r0, r0 + 97c: 00010000 andeq r0, r1, r0 + 980: 20440000 subcs r0, r4, r0 + 984: 01510040 cmpeq r1, r0, asr #32 + 988: 0119d500 tsteq r9, r0, lsl #10 + 98c: 00020100 andeq r0, r2, r0, lsl #2 + 990: 6c117805 ldcvs 8, cr7, [r1], {5} + 994: 00000e29 andeq r0, r0, r9, lsr #28 + 998: 01010101 tsteq r1, r1, lsl #2 + 99c: 00010001 andeq r0, r1, r1 + 9a0: 01010101 tsteq r1, r1, lsl #2 + 9a4: 00025ad5 ldrdeq r5, [r2], -r5 + 9a8: 07020224 streq r0, [r2, -r4, lsr #4] + 9ac: 0a0117dc beq 46924 + 9b0: 0403080d streq r0, [r3], #-2061 + 9b4: 17d80301 ldrbne r0, [r8, r1, lsl #6] + 9b8: 0e062a15 mcreq 10, 0, r2, cr6, cr5, {0} + 9bc: f93eb736 undefined instruction 0xf93eb736 + 9c0: 1422020d strtne r0, [r2], #-525 + 9c4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 9c8: 0408cc15 streq ip, [r8], #-3093 + 9cc: 0c08b12f stfeqd f3, [r8], {47} + 9d0: 7a060630 bvc 182298 + 9d4: 0608290e streq r2, [r8], -lr, lsl #18 + 9d8: 7714030c ldrvc r0, [r4, -ip, lsl #6] + 9dc: 0608439e undefined + 9e0: 7714040c ldrvc r0, [r4, -ip, lsl #8] + 9e4: 93a30506 undefined instruction 0x93a30506 + 9e8: b12f020d teqlt pc, sp, lsl #4 + 9ec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 9f0: 290e7906 stmdbcs lr, {r1, r2, r8, fp, ip, sp, lr} + 9f4: 04050009 streq r0, [r5], #-9 + 9f8: 11010001 tstne r1, r1 + 9fc: cc140b08 ldcgt 11, cr0, [r4], {8} + a00: d5180151 ldrle r0, [r8, #-337] + a04: 0a000233 beq 12d8 <__USR_stack_size+0xad8> + a08: c2070304 andgt r0, r7, #268435456 ; 0x10000000 + a0c: 0113011a tsteq r3, sl, lsl r1 + a10: 01040308 tsteq r4, r8, lsl #6 + a14: 151abe03 ldrne fp, [sl, #-3587] + a18: 060a032a streq r0, [sl], -sl, lsr #6 + a1c: 0d881b35 vstreq d1, [r8, #212] + a20: 084e3d05 stmdaeq lr, {r0, r2, r8, sl, fp, ip, sp}^ + a24: 1506300c strne r3, [r6, #-12] + a28: 3d040822 stccc 8, cr0, [r4, #-136] + a2c: 300c084e andcc r0, ip, lr, asr #16 + a30: 780a0906 stmdavc sl, {r1, r2, r8, fp} + a34: 180e4c06 stmdane lr, {r1, r2, sl, fp, lr} + a38: d52c0151 strle r0, [ip, #-337]! + a3c: 0a000233 beq 1310 <__USR_stack_size+0xb10> + a40: 85070305 strhi r0, [r7, #-773] + a44: 0111011a tsteq r1, sl, lsl r1 + a48: 01040308 tsteq r4, r8, lsl #6 + a4c: 151a8103 ldrne r8, [sl, #-259] + a50: 0609032a streq r0, [r9], -sl, lsr #6 + a54: 0d881b3d vstreq d1, [r8, #244] + a58: 084e3d06 stmdaeq lr, {r1, r2, r8, sl, fp, ip, sp}^ + a5c: 1506300c strne r3, [r6, #-12] + a60: 3d040822 stccc 8, cr0, [r4, #-136] + a64: 300c084e andcc r0, ip, lr, asr #16 + a68: 780a0906 stmdavc sl, {r1, r2, r8, fp} + a6c: 170e4406 strne r4, [lr, -r6, lsl #8] + a70: 00000153 andeq r0, r0, r3, asr r1 + a74: 20440001 subcs r0, r4, r1 + a78: 00060040 andeq r0, r6, r0, asr #32 + a7c: d7020000 strle r0, [r2, -r0] + a80: 01000017 tsteq r0, r7, lsl r0 + a84: 00403da9 subeq r3, r0, r9, lsr #27 + a88: 00848101 addeq r8, r4, r1, lsl #2 + a8c: 00000100 andeq r0, r0, r0, lsl #2 + a90: 93020000 movwls r0, #8192 ; 0x2000 + a94: 01000016 tsteq r0, r6, lsl r0 + a98: 0000837d andeq r8, r0, sp, ror r3 + a9c: 00000000 andeq r0, r0, r0 + aa0: d5000151 strle r0, [r0, #-337] + aa4: 01000119 tsteq r0, r9, lsl r1 + aa8: 78050002 stmdavc r5, {r1} + aac: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + ab0: 01010000 tsteq r1, r0 + ab4: 00010101 andeq r0, r1, r1, lsl #2 + ab8: 01010001 tsteq r1, r1 + abc: 49d50101 ldmibmi r5, {r0, r8}^ + ac0: 021e0002 andseq r0, lr, #2 ; 0x2 + ac4: 17e61100 strbne r1, [r6, r0, lsl #2]! + ac8: 08010603 stmdaeq r1, {r0, r1, r9, sl} + acc: 17e2030a strbne r0, [r2, sl, lsl #6]! + ad0: 020d3019 andeq r3, sp, #25 ; 0x19 + ad4: 0c081422 cfstrseq mvf1, [r8], {34} + ad8: 0b060630 bleq 1823a0 + adc: 030d711b movweq r7, #53531 ; 0xd11b + ae0: 0c08b12f stfeqd f3, [r8], {47} + ae4: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + ae8: b12f0408 teqlt pc, r8, lsl #8 + aec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + af0: 290e7506 stmdbcs lr, {r1, r2, r8, sl, ip, sp, lr} + af4: 040c0608 streq r0, [ip], #-1544 + af8: 28b97714 ldmcs r9!, {r2, r4, r8, r9, sl, ip, sp, lr} + afc: 1422020d strtne r0, [r2], #-525 + b00: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + b04: 11710a09 cmnne r1, r9, lsl #20 + b08: 0001511d andeq r5, r1, sp, lsl r1 + b0c: 000249d5 ldrdeq r4, [r2], -r5 + b10: 1000061e andne r0, r0, lr, lsl r6 + b14: 050317ca streq r1, [r3, #-1994] + b18: 030a0801 movweq r0, #43009 ; 0xa801 + b1c: 301917c6 andscc r1, r9, r6, asr #15 + b20: 1422020d strtne r0, [r2], #-525 + b24: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + b28: 711b0b06 tstvc fp, r6, lsl #22 + b2c: b12f030d teqlt pc, sp, lsl #6 + b30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + b34: 04082215 streq r2, [r8], #-533 + b38: 0c08b12f stfeqd f3, [r8], {47} + b3c: 75060630 strvc r0, [r6, #-1584] + b40: 0608290e streq r2, [r8], -lr, lsl #18 + b44: 7714040c ldrvc r0, [r4, -ip, lsl #8] + b48: 020d28b9 andeq r2, sp, #12124160 ; 0xb90000 + b4c: 0c081422 cfstrseq mvf1, [r8], {34} + b50: 0a090630 beq 242418 + b54: 511c1171 tstpl ip, r1, ror r1 + b58: 33d51601 bicscc r1, r5, #1048576 ; 0x100000 + b5c: 050c0002 streq r0, [ip, #-2] + b60: 1aa31001 bne fe8c4b6c + b64: 08011201 stmdaeq r1, {r0, r9, ip} + b68: 03010403 movweq r0, #5123 ; 0x1403 + b6c: 2a151a9f bcs 5475f0 + b70: 36060903 strcc r0, [r6], -r3, lsl #18 + b74: 060d881b undefined + b78: 0c08eb4a stceq 11, cr14, [r8], {74} + b7c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + b80: eb4a0408 bl 1281ba8 + b84: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + b88: 06780a09 ldrbteq r0, [r8], -r9, lsl #20 + b8c: 51180e4b tstpl r8, fp, asr #28 + b90: 33d51601 bicscc r1, r5, #1048576 ; 0x100000 + b94: 050c0002 streq r0, [ip, #-2] + b98: 1aa31101 bne fe8c4fa4 + b9c: 08011201 stmdaeq r1, {r0, r9, ip} + ba0: 03010403 movweq r0, #5123 ; 0x1403 + ba4: 2a151a9f bcs 547628 + ba8: 36060903 strcc r0, [r6], -r3, lsl #18 + bac: 060d881b undefined + bb0: 0c08eb4a stceq 11, cr14, [r8], {74} + bb4: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + bb8: eb4a0408 bl 1281be0 + bbc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + bc0: 06780a09 ldrbteq r0, [r8], -r9, lsl #20 + bc4: 5d180e4b ldcpl 14, cr0, [r8, #-300] + bc8: 01000000 tsteq r0, r0 + bcc: 40208400 eormi r8, r0, r0, lsl #8 + bd0: 00000100 andeq r0, r0, r0, lsl #2 + bd4: 19e70200 stmibne r7!, {r9}^ + bd8: 00000000 andeq r0, r0, r0 + bdc: 01510000 cmpeq r1, r0 + be0: 0119d500 tsteq r9, r0, lsl #10 + be4: 00020100 andeq r0, r2, r0, lsl #2 + be8: 6c117805 ldcvs 8, cr7, [r1], {5} + bec: 00000e29 andeq r0, r0, r9, lsr #28 + bf0: 01010101 tsteq r1, r1, lsl #2 + bf4: 00010001 andeq r0, r1, r1 + bf8: 01010101 tsteq r1, r1, lsl #2 + bfc: 00022ad5 ldrdeq r2, [r2], -r5 + c00: 08020210 stmdaeq r2, {r4, r9} + c04: 0c0117fb stceq 7, cr1, [r1], {251} + c08: 04030811 streq r0, [r3], #-2065 + c0c: 17f70301 ldrbne r0, [r7, r1, lsl #6]! + c10: 0e062a15 mcreq 10, 0, r2, cr6, cr5, {0} + c14: 030a7d1b movweq r7, #44315 ; 0xad1b + c18: 0d35fd3a ldceq 13, cr15, [r5, #-232]! + c1c: 067b0a09 ldrbteq r0, [fp], -r9, lsl #20 + c20: 0963297a stmdbeq r3!, {r1, r3, r4, r5, r6, r8, fp, sp}^ + c24: 5f307a0a svcpl 0x00307a0a + c28: 00000064 andeq r0, r0, r4, rrx + c2c: 20a40001 adccs r0, r4, r1 + c30: 00020040 andeq r0, r2, r0, asr #32 + c34: f7020000 undefined instruction 0xf7020000 + c38: 0100001a tsteq r0, sl, lsl r0 + c3c: 00008481 andeq r8, r0, r1, lsl #9 + c40: 00000000 andeq r0, r0, r0 + c44: d5000151 strle r0, [r0, #-337] + c48: 01000119 tsteq r0, r9, lsl r1 + c4c: 78050002 stmdavc r5, {r1} + c50: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + c54: 01010000 tsteq r1, r0 + c58: 00010101 andeq r0, r1, r1, lsl #2 + c5c: 01010001 tsteq r1, r1 + c60: 2cd50101 ldfcse f0, [r5], {1} + c64: 020b0002 andeq r0, fp, #2 ; 0x2 + c68: 18b20a02 ldmne r2!, {r1, r9, fp} + c6c: 08010501 stmdaeq r1, {r0, r8, sl} + c70: 03010403 movweq r0, #5123 ; 0x1403 + c74: 2a1518ae bcs 546f34 + c78: 2900c206 stmdbcs r0, {r1, r2, r9, lr, pc} + c7c: 446e0624 strbtmi r0, [lr], #-1572 + c80: 22020d9d andcs r0, r2, #10048 ; 0x2740 + c84: 300c0814 andcc r0, ip, r4, lsl r8 + c88: 7a0a0906 bvc 2830a8 + c8c: 150e6506 strne r6, [lr, #-1286] + c90: 000002a9 andeq r0, r0, r9, lsr #5 + c94: 20ba0002 adcscs r0, sl, r2 + c98: 00080040 andeq r0, r8, r0, asr #32 + c9c: 2f020000 svccs 0x00020000 + ca0: 0200001c andeq r0, r0, #28 ; 0x1c + ca4: 00001693 muleq r0, r3, r6 + ca8: 0027da02 eoreq sp, r7, r2, lsl #20 + cac: 17d70200 ldrbne r0, [r7, r0, lsl #4] + cb0: 81010000 tsthi r1, r0 + cb4: 01000084 smlabbeq r0, r4, r0, r0 + cb8: 00403da9 subeq r3, r0, r9, lsr #27 + cbc: 0028d202 eoreq sp, r8, r2, lsl #4 + cc0: 84610100 strbthi r0, [r1], #-256 + cc4: 00000000 andeq r0, r0, r0 + cc8: 00010000 andeq r0, r1, r0 + ccc: 22ac0000 adccs r0, ip, #0 ; 0x0 + cd0: 01510040 cmpeq r1, r0, asr #32 + cd4: 0119d500 tsteq r9, r0, lsl #10 + cd8: 00020100 andeq r0, r2, r0, lsl #2 + cdc: 6c117805 ldcvs 8, cr7, [r1], {5} + ce0: 00000e29 andeq r0, r0, r9, lsr #28 + ce4: 01010101 tsteq r1, r1, lsl #2 + ce8: 00010001 andeq r0, r1, r1 + cec: 01010101 tsteq r1, r1, lsl #2 + cf0: 0201bcd5 andeq fp, r1, #54528 ; 0xd500 + cf4: 02019400 andeq r9, r1, #0 ; 0x0 + cf8: 18c40b02 stmiane r4, {r1, r8, r9, fp}^ + cfc: 08302001 ldmdaeq r0!, {r0, sp} + d00: 03010403 movweq r0, #5123 ; 0x1403 + d04: 2a1518c0 bcs 54700c + d08: 0103260a tsteq r3, sl, lsl #12 + d0c: f2512e06 vceq.f d18, d1, d6 + d10: 6b060103 blvs 181124 + d14: b42dda5f strtlt sp, [sp], #-2655 + d18: ac361206 lfmge f1, 4, [r6], #-24 + d1c: 1422020d strtne r0, [r2], #-525 + d20: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + d24: 0408cc15 streq ip, [r8], #-3093 + d28: 0c08eb4a stceq 11, cr14, [r8], {74} + d2c: 0b060630 bleq 1825f4 + d30: 0408711b streq r7, [r8], #-283 + d34: 0c082566 cfstr32eq mvfx2, [r8], {102} + d38: 503c0630 eorspl r0, ip, r0, lsr r6 + d3c: 77140408 ldrvc r0, [r4, -r8, lsl #8] + d40: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + d44: 2a0e5506 bcs 396164 + d48: 030c0608 movweq r0, #50696 ; 0xc608 + d4c: 14029a14 strne r9, [r2], #-2580 + d50: 06086cfc undefined + d54: 12069a14 andne r9, r6, #81920 ; 0x14000 + d58: 1ff51e02 svcne 0x00f51e02 + d5c: 1422020d strtne r0, [r2], #-525 + d60: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + d64: 0408cc15 streq ip, [r8], #-3093 + d68: 0c08b12f stfeqd f3, [r8], {47} + d6c: 0b060630 bleq 182634 + d70: 0408711b streq r7, [r8], #-283 + d74: 0c08b12f stfeqd f3, [r8], {47} + d78: 79130630 ldmdbvc r3, {r4, r5, r9, sl} + d7c: 14220408 strtne r0, [r2], #-1032 + d80: 0c08050a cfstr32eq mvfx0, [r8], {10} + d84: 55060630 strpl r0, [r6, #-1584] + d88: 07069e44 streq r9, [r6, -r4, asr #28] + d8c: 040d7c1b streq r7, [sp], #-3099 + d90: 0a094e3d beq 25468c + d94: 300c0804 andcc r0, ip, r4, lsl #16 + d98: 08172306 ldmdaeq r7, {r1, r2, r8, r9, sp} + d9c: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + da0: 0906300c stmdbeq r6, {r2, r3, ip, sp} + da4: 01040500 tsteq r4, r0, lsl #10 + da8: 08170100 ldmdaeq r7, {r8} + dac: 51cc140b bicpl r1, ip, fp, lsl #8 + db0: 7fd54801 svcvc 0x00d54801 + db4: 04250002 strteq r0, [r5], #-2 + db8: 1afa0b03 bne ffe839cc + dbc: 08150c01 ldmdaeq r5, {r0, sl, fp} + dc0: 03010403 movweq r0, #5123 ; 0x1403 + dc4: 2a151af6 bcs 5479a4 + dc8: 7d1b1206 lfmvc f1, 4, [fp, #-24] + dcc: b12f050d teqlt pc, sp, lsl #10 + dd0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + dd4: 0408cc15 streq ip, [r8], #-3093 + dd8: 0c08b12f stfeqd f3, [r8], {47} + ddc: 79060630 stmdbvc r6, {r4, r5, r9, sl} + de0: 060d290e streq r2, [sp], -lr, lsl #18 + de4: 0c081422 cfstrseq mvf1, [r8], {34} + de8: 09060630 stmdbeq r6, {r4, r5, r9, sl} + dec: 050d711b streq r7, [sp, #-283] + df0: 0c08b12f stfeqd f3, [r8], {47} + df4: 79060630 stmdbvc r6, {r4, r5, r9, sl} + df8: 060d290e streq r2, [sp], -lr, lsl #18 + dfc: 0c081422 cfstrseq mvf1, [r8], {34} + e00: 73190630 tstvc r9, #50331648 ; 0x3000000 + e04: 070c0608 streq r0, [ip, -r8, lsl #12] + e08: 9f140605 svcls 0x00140605 + e0c: 87877a05 strhi r7, [r7, r5, lsl #20] + e10: b12f050d teqlt pc, sp, lsl #10 + e14: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + e18: 04082215 streq r2, [r8], #-533 + e1c: 0c08b12f stfeqd f3, [r8], {47} + e20: 77060630 smladxvc r6, r0, r6, r0 + e24: 060d290e streq r2, [sp], -lr, lsl #18 + e28: 0c081422 cfstrseq mvf1, [r8], {34} + e2c: 0a090630 beq 2426f4 + e30: 51ca1764 bicpl r1, sl, r4, ror #14 + e34: 3dd56c01 ldclcc 12, cr6, [r5, #4] + e38: 08080002 stmdaeq r8, {r1} + e3c: 1b950b03 blne fe543a50 + e40: 08172001 ldmdaeq r7, {r0, sp} + e44: 03010403 movweq r0, #5123 ; 0x1403 + e48: 2a151b91 bcs 547c94 + e4c: 0e060b05 fmacdeq d0, d6, d5 + e50: 13039a1b movwne r9, #14875 ; 0x3a1b + e54: 4f187905 svcmi 0x00187905 + e58: b12f080d teqlt pc, sp, lsl #16 + e5c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + e60: 2710c819 undefined + e64: b12f0408 teqlt pc, r8, lsl #8 + e68: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + e6c: 0a091d1a beq 2482dc + e70: 0e6e0675 mcreq 6, 3, r0, cr14, cr5, {3} + e74: 9201512c andls r5, r1, #11 ; 0xb + e78: 027fd501 rsbseq sp, pc, #4194304 ; 0x400000 + e7c: 03042900 movweq r2, #18688 ; 0x4900 + e80: 011afa0b tstpeq sl, fp, lsl #20 + e84: 0308150c movweq r1, #34060 ; 0x850c + e88: f6030104 undefined instruction 0xf6030104 + e8c: 062a151a undefined + e90: 0d7d1b12 vldmdbeq sp!, {d17-d25} + e94: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + e98: 1506300c strne r3, [r6, #-12] + e9c: 2f0408cc svccs 0x000408cc + ea0: 300c08b1 strhcc r0, [ip], -r1 + ea4: 0e790606 cdpeq 6, 7, cr0, cr9, cr6, {0} + ea8: 22060d29 andcs r0, r6, #2624 ; 0xa40 + eac: 300c0814 andcc r0, ip, r4, lsl r8 + eb0: 1b090606 blne 2426d0 + eb4: 2f050d71 svccs 0x00050d71 + eb8: 300c08b1 strhcc r0, [ip], -r1 + ebc: 0e790606 cdpeq 6, 7, cr0, cr9, cr6, {0} + ec0: 22060d29 andcs r0, r6, #2624 ; 0xa40 + ec4: 300c0814 andcc r0, ip, r4, lsl r8 + ec8: 08731906 ldmdaeq r3!, {r1, r2, r8, fp, ip}^ + ecc: 05070c06 streq r0, [r7, #-3078] + ed0: 059f1406 ldreq r1, [pc, #1030] ; 12de <__USR_stack_size+0xade> + ed4: 0dfbbd7a ldcleq 13, cr11, [fp, #488]! + ed8: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + edc: 1506300c strne r3, [r6, #-12] + ee0: 2f040822 svccs 0x00040822 + ee4: 300c08b1 strhcc r0, [ip], -r1 + ee8: 0e770606 cdpeq 6, 7, cr0, cr7, cr6, {0} + eec: 22060d29 andcs r0, r6, #2624 ; 0xa40 + ef0: 300c0814 andcc r0, ip, r4, lsl r8 + ef4: 640a0906 strvs r0, [sl], #-2310 + ef8: 0151ca17 cmpeq r1, r7, lsl sl + efc: 3dd501b6 ldfcce f0, [r5, #728] + f00: 080c0002 stmdaeq ip, {r1} + f04: 1b950b03 blne fe543b18 + f08: 08172001 ldmdaeq r7, {r0, sp} + f0c: 03010403 movweq r0, #5123 ; 0x1403 + f10: 2a151b91 bcs 547d5c + f14: 0e060b05 fmacdeq d0, d6, d5 + f18: 13039a1b movwne r9, #14875 ; 0x3a1b + f1c: 4f187905 svcmi 0x00187905 + f20: b12f080d teqlt pc, sp, lsl #16 + f24: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + f28: 9b46c819 blls 11b2f94 + f2c: b12f0408 teqlt pc, r8, lsl #8 + f30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + f34: 0a091d1a beq 2483a4 + f38: 0e6e0675 mcreq 6, 3, r0, cr14, cr5, {3} + f3c: 00011e2c andeq r1, r1, ip, lsr #28 + f40: e4000200 str r0, [r0], #-512 + f44: 04004021 streq r4, [r0], #-33 + f48: 02000000 andeq r0, r0, #0 ; 0x0 + f4c: 00001e1f andeq r1, r0, pc, lsl lr + f50: 0017d702 andseq sp, r7, r2, lsl #14 + f54: 29da0200 ldmibcs sl, {r9}^ + f58: 93020000 movwls r0, #8192 ; 0x2000 + f5c: 00000016 andeq r0, r0, r6, lsl r0 + f60: 01000000 tsteq r0, r0 + f64: ac000000 stcge 0, cr0, [r0], {0} + f68: 51004022 tstpl r0, r2, lsr #32 + f6c: 19d50001 ldmibne r5, {r0}^ + f70: 02010001 andeq r0, r1, #1 ; 0x1 + f74: 11780500 cmnne r8, r0, lsl #10 + f78: 000e296c andeq r2, lr, ip, ror #18 + f7c: 01010100 tsteq r1, r0, lsl #2 + f80: 01000101 tsteq r0, r1, lsl #2 + f84: 01010100 tsteq r1, r0, lsl #2 + f88: 0180d501 orreq sp, r0, r1, lsl #10 + f8c: 02640002 rsbeq r0, r4, #2 ; 0x2 + f90: 18f40c02 ldmne r4!, {r1, sl, fp}^ + f94: 08102401 ldmdaeq r0, {r0, sl, sp} + f98: 03010403 movweq r0, #5123 ; 0x1403 + f9c: 2a1518f0 bcs 547364 + fa0: 06060305 streq r0, [r6], -r5, lsl #6 + fa4: 0f0a7144 svceq 0x000a7144 + fa8: 11067f05 tstne r6, r5, lsl #30 + fac: 0a094c1b beq 254020 + fb0: 06010308 streq r0, [r1], -r8, lsl #6 + fb4: 06da5f7d undefined + fb8: ab360705 blge d82bd4 + fbc: 84061203 strhi r1, [r6], #-515 + fc0: 0d881b01 vstreq d1, [r8, #4] + fc4: 08c27302 stmiaeq r2, {r1, r8, r9, ip, sp, lr}^ + fc8: 0306300c movweq r3, #24588 ; 0x600c + fcc: 7efc067a mrcvc 6, 7, r0, cr12, cr10, {3} + fd0: 7b0a320e blvc 28d810 + fd4: 7d030204 sfmvc f0, 4, [r3, #-16] + fd8: 070335ab streq r3, [r3, -fp, lsr #11] + fdc: e8e76106 stmia r7!, {r1, r2, r8, sp, lr}^ + fe0: 6e03060a cfmadd32vs mvax0, mvfx0, mvfx3, mvfx10 + fe4: 142e5d24 strtne r5, [lr], #-3364 + fe8: 06084844 streq r4, [r8], -r4, asr #16 + fec: 7714030c ldrvc r0, [r4, -ip, lsl #6] + ff0: 09e75007 stmibeq r7!, {r0, r1, r2, ip, lr}^ + ff4: 6e06790a cdpvs 9, 0, cr7, cr6, cr10, {0} + ff8: 0a08746d beq 21e1b4 + ffc: a4327a03 ldrtge r7, [r2], #-2563 + 1000: 04050009 streq r0, [r5], #-9 + 1004: 18010001 stmdane r1, {r0} + 1008: cc140b08 ldcgt 11, cr0, [r4], {8} + 100c: 018c0151 orreq r0, ip, r1, asr r1 + 1010: 00024dd5 ldrdeq r4, [r2], -r5 + 1014: 0c030415 cfstrseq mvf0, [r3], {21} + 1018: 0b011ae2 bleq 47ba8 + 101c: 04030801 streq r0, [r3], #-2049 + 1020: 1ade0301 bne ff781c2c + 1024: 01032a15 tsteq r3, r5, lsl sl + 1028: 7e1b0506 cfmul32vc mvfx0, mvfx11, mvfx6 + 102c: 721b0b06 andsvc r0, fp, #6144 ; 0x1800 + 1030: 1422040d strtne r0, [r2], #-1037 + 1034: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1038: 0408cc15 streq ip, [r8], #-3093 + 103c: 0c082566 cfstr32eq mvfx2, [r8], {102} + 1040: 0b060630 bleq 182908 + 1044: 0408711b streq r7, [r8], #-283 + 1048: 0c08b12f stfeqd f3, [r8], {47} + 104c: 79130630 ldmdbvc r3, {r4, r5, r9, sl} + 1050: eb4a0408 bl 1282078 + 1054: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1058: 06710a09 ldrbteq r0, [r1], -r9, lsl #20 + 105c: b11f0e42 tstlt pc, r2, asr #28 + 1060: 02000000 andeq r0, r0, #0 ; 0x0 + 1064: 4022ac00 eormi sl, r2, r0, lsl #24 + 1068: 00000300 andeq r0, r0, r0, lsl #6 + 106c: 23930200 orrscs r0, r3, #0 ; 0x0 + 1070: 1f020000 svcne 0x00020000 + 1074: 0200001e andeq r0, r0, #30 ; 0x1e + 1078: 00001c2f andeq r1, r0, pc, lsr #24 + 107c: 00000000 andeq r0, r0, r0 + 1080: 00000001 andeq r0, r0, r1 + 1084: 004022b0 strheq r2, [r0], #-32 + 1088: d5000151 strle r0, [r0, #-337] + 108c: 01000119 tsteq r0, r9, lsl r1 + 1090: 78050002 stmdavc r5, {r1} + 1094: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 1098: 01010000 tsteq r1, r0 + 109c: 00010101 andeq r0, r1, r1, lsl #2 + 10a0: 01010001 tsteq r1, r1 + 10a4: 22d50101 sbcscs r0, r5, #1073741824 ; 0x40000000 + 10a8: 02020002 andeq r0, r2, #2 ; 0x2 + 10ac: 1bed1900 blne ffb474b4 + 10b0: 08170010 ldmdaeq r7, {r4} + 10b4: 1be9030a blne ffa41ce4 + 10b8: 03060805 movweq r0, #26629 ; 0x6805 + 10bc: 00099c1b andeq r9, r9, fp, lsl ip + 10c0: 00010405 andeq r0, r1, r5, lsl #8 + 10c4: 0b081c01 bleq 2080d0 + 10c8: 01510630 cmpeq r1, r0, lsr r6 + 10cc: 0220d500 eoreq sp, r0, #0 ; 0x0 + 10d0: 00030200 andeq r0, r3, r0, lsl #4 + 10d4: 03198618 tsteq r9, #25165824 ; 0x1800000 + 10d8: 0a081600 beq 2068e0 + 10dc: 06198203 ldreq r8, [r9], -r3, lsl #4 + 10e0: 09831b02 stmibeq r3, {r1, r8, r9, fp, ip} + 10e4: 01040500 tsteq r4, r0, lsl #10 + 10e8: 081b0100 ldmdaeq fp, {r8} + 10ec: 5106300b tstpl r6, fp + 10f0: 20d50001 sbcscs r0, r5, r1 + 10f4: 04020002 streq r0, [r2], #-2 + 10f8: 18e41700 stmiane r4!, {r8, r9, sl, ip}^ + 10fc: 08300005 ldmdaeq r0!, {r0, r2} + 1100: 18e0030a stmiane r0!, {r1, r3, r8, r9}^ + 1104: 8d1b1c06 ldchi 12, cr1, [fp, #-24] + 1108: 04050009 streq r0, [r5], #-9 + 110c: 1a010001 bne 41118 + 1110: 06300b08 ldrteq r0, [r0], -r8, lsl #22 + 1114: 000000d7 ldrdeq r0, [r0], -r7 + 1118: 22d00001 sbcscs r0, r0, #1 ; 0x1 + 111c: 00040040 andeq r0, r4, r0, asr #32 + 1120: b3020000 movwlt r0, #8192 ; 0x2000 + 1124: 02000020 andeq r0, r0, #32 ; 0x20 + 1128: 000029da ldrdeq r2, [r0], -sl + 112c: 0017d702 andseq sp, r7, r2, lsl #14 + 1130: 16930200 ldrne r0, [r3], r0, lsl #4 + 1134: 00000000 andeq r0, r0, r0 + 1138: 01510000 cmpeq r1, r0 + 113c: 0119d500 tsteq r9, r0, lsl #10 + 1140: 00020100 andeq r0, r2, r0, lsl #2 + 1144: 6c117805 ldcvs 8, cr7, [r1], {5} + 1148: 00000e29 andeq r0, r0, r9, lsr #28 + 114c: 01010101 tsteq r1, r1, lsl #2 + 1150: 00010001 andeq r0, r1, r1 + 1154: 01010101 tsteq r1, r1, lsl #2 + 1158: 000243d5 ldrdeq r4, [r2], -r5 + 115c: 0d020223 sfmeq f0, 4, [r2, #-140] + 1160: 090119a8 stmdbeq r1, {r3, r5, r7, r8, fp, ip} + 1164: 04030801 streq r0, [r3], #-2049 + 1168: 19a40301 stmibne r4!, {r0, r8, r9} + 116c: 13062a15 movwne r2, #27157 ; 0x6a15 + 1170: 0608f251 undefined + 1174: 7714020c ldrvc r0, [r4, -ip, lsl #4] + 1178: 07050a09 streq r0, [r5, -r9, lsl #20] + 117c: ca22c51c bgt 8b25f4 + 1180: 1422030d strtne r0, [r2], #-781 + 1184: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1188: 1a057e03 bne 16099c + 118c: 7c0a981b stcvc 8, cr9, [sl], {27} + 1190: d23b7905 eorsle r7, fp, #81920 ; 0x14000 + 1194: 05760a09 ldrbeq r0, [r6, #-2569]! + 1198: 29700671 ldmdbcs r0!, {r0, r4, r5, r6, r9, sl}^ + 119c: 0801513e stmdaeq r1, {r1, r2, r3, r4, r5, r8, ip, lr} + 11a0: 00024dd5 ldrdeq r4, [r2], -r5 + 11a4: 0d030312 stceq 3, cr0, [r3, #-72] + 11a8: 0b011ae2 bleq 47d38 + 11ac: 04030801 streq r0, [r3], #-2049 + 11b0: 1ade0301 bne ff781dbc + 11b4: 01032a15 tsteq r3, r5, lsl sl + 11b8: 7e1b0506 cfmul32vc mvfx0, mvfx11, mvfx6 + 11bc: 721b0b06 andsvc r0, fp, #6144 ; 0x1800 + 11c0: 1422040d strtne r0, [r2], #-1037 + 11c4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 11c8: 0408cc15 streq ip, [r8], #-3093 + 11cc: 0c08eb4a stceq 11, cr14, [r8], {74} + 11d0: 0b060630 bleq 182a98 + 11d4: 0408711b streq r7, [r8], #-283 + 11d8: 0c084e3d stceq 14, cr4, [r8], {61} + 11dc: 79130630 ldmdbvc r3, {r4, r5, r9, sl} + 11e0: b12f0408 teqlt pc, r8, lsl #8 + 11e4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 11e8: 06710a09 ldrbteq r0, [r1], -r9, lsl #20 + 11ec: a71f0e42 ldrge r0, [pc, -r2, asr #28] + 11f0: 01000000 tsteq r0, r0 + 11f4: 40231800 eormi r1, r3, r0, lsl #16 + 11f8: 00000200 andeq r0, r0, r0, lsl #4 + 11fc: 22370200 eorscs r0, r7, #0 ; 0x0 + 1200: b3020000 movwlt r0, #8192 ; 0x2000 + 1204: 00000020 andeq r0, r0, r0, lsr #32 + 1208: 51000000 tstpl r0, r0 + 120c: 19d50001 ldmibne r5, {r0}^ + 1210: 02010001 andeq r0, r1, #1 ; 0x1 + 1214: 11780500 cmnne r8, r0, lsl #10 + 1218: 000e296c andeq r2, lr, ip, ror #18 + 121c: 01010100 tsteq r1, r0, lsl #2 + 1220: 01000101 tsteq r0, r1, lsl #2 + 1224: 01010100 tsteq r1, r0, lsl #2 + 1228: 026fd501 rsbeq sp, pc, #4194304 ; 0x400000 + 122c: 02023000 andeq r3, r2, #0 ; 0x0 + 1230: 0119c20e tsteq r9, lr, lsl #4 + 1234: 03081027 movweq r1, #32807 ; 0x8027 + 1238: be030104 adflts f0, f3, f4 + 123c: 0a2a1519 beq a866a8 + 1240: 06010312 undefined + 1244: 0a1b290d beq 6cb680 + 1248: 06c22b05 strbeq r2, [r2], r5, lsl #22 + 124c: 56f05111 usatpl r5, #16, r1, lsl #2 + 1250: 29af3236 stmibcs pc!, {r1, r2, r4, r5, r9, ip, sp} + 1254: 06070a63 streq r0, [r7], -r3, ror #20 + 1258: 0607291a undefined + 125c: 04e35f67 strbteq r5, [r3], #3943 + 1260: 0db13002 ldceq 0, cr3, [r1, #8]! + 1264: 4a020402 bmi 82274 + 1268: 040c08eb streq r0, [ip], #-2283 + 126c: 06063002 streq r3, [r6], -r2 + 1270: 09741b14 ldmdbeq r4!, {r2, r4, r8, r9, fp, ip}^ + 1274: 5706720a strpl r7, [r6, -sl, lsl #4] + 1278: 02040037 andeq r0, r4, #55 ; 0x37 + 127c: ae360206 cdpge 2, 3, cr0, cr6, cr6, {0} + 1280: 02040408 andeq r0, r4, #134217728 ; 0x8000000 + 1284: 0c087714 stceq 7, cr7, [r8], {20} + 1288: 06300204 ldrteq r0, [r0], -r4, lsl #4 + 128c: 0a092514 beq 24a6e4 + 1290: 0963296d stmdbeq r3!, {r0, r2, r3, r5, r6, r8, fp, sp}^ + 1294: 01036c0a tsteq r3, sl, lsl #24 + 1298: 00c6904a sbceq r9, r6, sl, asr #32 + 129c: 00020000 andeq r0, r2, r0 + 12a0: 00000000 andeq r0, r0, r0 + 12a4: 00000003 andeq r0, r0, r3 + 12a8: 00239302 eoreq r9, r3, r2, lsl #6 + 12ac: 16930200 ldrne r0, [r3], r0, lsl #4 + 12b0: d7020000 strle r0, [r2, -r0] + 12b4: 00000017 andeq r0, r0, r7, lsl r0 + 12b8: 01000000 tsteq r0, r0 + 12bc: ac000000 stcge 0, cr0, [r0], {0} + 12c0: 51004022 tstpl r0, r2, lsr #32 + 12c4: 19d50001 ldmibne r5, {r0}^ + 12c8: 02010001 andeq r0, r1, #1 ; 0x1 + 12cc: 11780500 cmnne r8, r0, lsl #10 + 12d0: 000e296c andeq r2, lr, ip, ror #18 + 12d4: 01010100 tsteq r1, r0, lsl #2 + 12d8: 01000101 tsteq r0, r1, lsl #2 + 12dc: 01010100 tsteq r1, r0, lsl #2 + 12e0: 0180d501 orreq sp, r0, r1, lsl #10 + 12e4: 02300002 eorseq r0, r0, #2 ; 0x2 + 12e8: 1be30f02 blne ff8c4ef8 + 12ec: 08101301 ldmdaeq r0, {r0, r8, r9, ip} + 12f0: 03010403 movweq r0, #5123 ; 0x1403 + 12f4: 2a151bdf bcs 548278 + 12f8: 0103170a tsteq r3, sl, lsl #14 + 12fc: f2513206 vhsub.s16 d19, d1, d6 + 1300: 5b060103 blpl 181714 + 1304: 1906da5f stmdbne r6, {r0, r1, r2, r3, r4, r6, r9, fp, ip, lr, pc} + 1308: 020d6488 andeq r6, sp, #-2013265920 ; 0x88000000 + 130c: 0c081422 cfstrseq mvf1, [r8], {34} + 1310: 75170630 ldrvc r0, [r7, #-1584] + 1314: eb4a0408 bl 128233c + 1318: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 131c: 0e290306 cdpeq 3, 2, cr0, cr9, cr6, {0} + 1320: b12f0408 teqlt pc, r8, lsl #8 + 1324: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1328: 04087913 streq r7, [r8], #-2323 + 132c: 0c08eb4a stceq 11, cr14, [r8], {74} + 1330: 52060630 andpl r0, r6, #50331648 ; 0x3000000 + 1334: 1b27290e blne 9cb774 + 1338: 1422030d strtne r0, [r2], #-781 + 133c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1340: 7d037c10 stcvc 12, cr7, [r3, #-64] + 1344: 36280d05 strtcc r0, [r8], -r5, lsl #26 + 1348: 7e057b0a fmacdvc d7, d5, d10 + 134c: 7a03ee1f bvc fcbd0 + 1350: 6c0ae023 stcvs 0, cr14, [sl], {35} + 1354: ee1f7f05 cdp 15, 1, cr7, cr15, cr5, {0} + 1358: 04050009 streq r0, [r5], #-9 + 135c: 19010001 stmdbne r1, {r0} + 1360: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} + 1364: 00000095 muleq r0, r5, r0 + 1368: 3cf00001 ldclcc 0, cr0, [r0], #4 + 136c: 00040040 andeq r0, r4, r0, asr #32 + 1370: 08020000 stmdaeq r2, {} + 1374: 0100002e tsteq r0, lr, lsr #32 + 1378: 0000837d andeq r8, r0, sp, ror r3 + 137c: 0082d901 addeq sp, r2, r1, lsl #18 + 1380: 86e50100 strbthi r0, [r5], r0, lsl #2 + 1384: 00000000 andeq r0, r0, r0 + 1388: 01510000 cmpeq r1, r0 + 138c: 0119d500 tsteq r9, r0, lsl #10 + 1390: 00020100 andeq r0, r2, r0, lsl #2 + 1394: 6c117805 ldcvs 8, cr7, [r1], {5} + 1398: 00000e29 andeq r0, r0, r9, lsr #28 + 139c: 01010101 tsteq r1, r1, lsl #2 + 13a0: 00010001 andeq r0, r1, r1 + 13a4: 01010101 tsteq r1, r1, lsl #2 + 13a8: 000253d5 ldrdeq r5, [r2], -r5 + 13ac: 00020226 andeq r0, r2, r6, lsr #4 + 13b0: 0c01159f cfstr32eq mvfx1, [r1], {159} + 13b4: 04030801 streq r0, [r3], #-2049 + 13b8: 159b0301 ldrne r0, [fp, #769] + 13bc: 34062a15 strcc r2, [r6], #-2581 + 13c0: 020d1a29 andeq r1, sp, #167936 ; 0x29000 + 13c4: 0c08a658 stceq 6, cr10, [r8], {88} + 13c8: 04060630 streq r0, [r6], #-1584 + 13cc: 030d541b movweq r5, #54299 ; 0xd41b + 13d0: 0c084366 stceq 3, cr4, [r8], {102} + 13d4: 59150630 ldmdbpl r5, {r4, r5, r9, sl} + 13d8: 094b0408 stmdbeq fp, {r3, sl}^ + 13dc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 13e0: 04085916 streq r5, [r8], #-2326 + 13e4: 0c08094b stceq 9, cr0, [r8], {75} + 13e8: 78060630 stmdavc r6, {r4, r5, r9, sl} + 13ec: 040d0c0e streq r0, [sp], #-3086 + 13f0: 0c084e3d stceq 14, cr4, [r8], {61} + 13f4: 0a090630 beq 242cbc + 13f8: 0e4e066f cdpeq 6, 4, cr0, cr14, cr15, {3} + 13fc: 0000a820 andeq sl, r0, r0, lsr #16 + 1400: 08000100 stmdaeq r0, {r8} + 1404: 05004036 streq r4, [r0, #-54] + 1408: 02000000 andeq r0, r0, #0 ; 0x0 + 140c: 0000307c andeq r3, r0, ip, ror r0 + 1410: 00318002 eorseq r8, r1, r2 + 1414: 33830200 orrcc r0, r3, #0 ; 0x0 + 1418: 81010000 tsthi r1, r0 + 141c: 02000084 andeq r0, r0, #132 ; 0x84 + 1420: 00003284 andeq r3, r0, r4, lsl #5 + 1424: 00000000 andeq r0, r0, r0 + 1428: d5000151 strle r0, [r0, #-337] + 142c: 01000119 tsteq r0, r9, lsl r1 + 1430: 78050002 stmdavc r5, {r1} + 1434: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 1438: 01010000 tsteq r1, r0 + 143c: 00010101 andeq r0, r1, r1, lsl #2 + 1440: 01010001 tsteq r1, r1 + 1444: 35d50101 ldrbcc r0, [r5, #257] + 1448: 020e0002 andeq r0, lr, #2 ; 0x2 + 144c: 128d0002 addne r0, sp, #2 ; 0x2 + 1450: 08010501 stmdaeq r1, {r0, r8, sl} + 1454: 03010403 movweq r0, #5123 ; 0x1403 + 1458: 2a151289 bcs 545e84 + 145c: 020dc725 andeq ip, sp, #9699328 ; 0x940000 + 1460: 0c086922 stceq 9, cr6, [r8], {34} + 1464: 76160630 undefined + 1468: 030c0608 movweq r0, #50696 ; 0xc608 + 146c: a53c7714 ldrge r7, [ip, #-1812]! + 1470: b12f040d teqlt pc, sp, lsl #8 + 1474: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1478: 11760a09 cmnne r6, r9, lsl #20 + 147c: 08015171 stmdaeq r1, {r0, r4, r5, r6, r8, ip, lr} + 1480: 000227d5 ldrdeq r2, [r2], -r5 + 1484: 00030403 andeq r0, r3, r3, lsl #8 + 1488: 030113a6 movweq r1, #5030 ; 0x13a6 + 148c: 04030801 streq r0, [r3], #-2049 + 1490: 13a20301 undefined instruction 0x13a20301 + 1494: 05062a15 streq r2, [r6, #-2581] + 1498: 050d7c1b streq r7, [sp, #-3099] + 149c: 0c081422 cfstrseq mvf1, [r8], {34} + 14a0: 0a090630 beq 242d68 + 14a4: 0e7c067b mrceq 6, 3, r0, cr12, cr11, {3} + 14a8: 0001211f andeq r2, r1, pc, lsl r1 + 14ac: 24000100 strcs r0, [r0], #-256 + 14b0: 05004036 streq r4, [r0, #-54] + 14b4: 02000000 andeq r0, r0, #0 ; 0x0 + 14b8: 00003180 andeq r3, r0, r0, lsl #3 + 14bc: 00876d01 addeq r6, r7, r1, lsl #26 + 14c0: 85750100 ldrbhi r0, [r5, #-256]! + 14c4: a9010000 stmdbge r1, {} + 14c8: 01000083 smlabbeq r0, r3, r0, r0 + 14cc: 00008481 andeq r8, r0, r1, lsl #9 + 14d0: 00000000 andeq r0, r0, r0 + 14d4: d5000151 strle r0, [r0, #-337] + 14d8: 01000119 tsteq r0, r9, lsl r1 + 14dc: 78050002 stmdavc r5, {r1} + 14e0: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 14e4: 01010000 tsteq r1, r0 + 14e8: 00010101 andeq r0, r1, r1, lsl #2 + 14ec: 01010001 tsteq r1, r1 + 14f0: d9d50101 ldmible r5, {r0, r8}^ + 14f4: 4e000201 cdpmi 2, 0, cr0, cr0, cr1, {0} + 14f8: 9a010202 bls 41d08 + 14fc: 011a0112 tsteq sl, r2, lsl r1 + 1500: 01040308 tsteq r4, r8, lsl #6 + 1504: 15129603 ldrne r9, [r2, #-1539] + 1508: 360d0a2a strcc r0, [sp], -sl, lsr #20 + 150c: 360e060c strcc r0, [lr], -ip, lsl #12 + 1510: 2f020db5 svccs 0x00020db5 + 1514: 300c08b1 strhcc r0, [ip], -r1 + 1518: 0dcc1506 cfstr64eq mvdx1, [ip, #24] + 151c: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} + 1520: 1106300c tstne r6, ip + 1524: 2f040d7b svccs 0x00040d7b + 1528: 300c08b1 strhcc r0, [ip], -r1 + 152c: 0dc11606 stcleq 6, cr1, [r1, #24] + 1530: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + 1534: 0a06300c beq 18d56c + 1538: 0e77060d cdpeq 6, 7, cr0, cr7, cr13, {0} + 153c: 360e062a strcc r0, [lr], -sl, lsr #12 + 1540: 2f020db5 svccs 0x00020db5 + 1544: 300c08b1 strhcc r0, [ip], -r1 + 1548: 0dcc1506 cfstr64eq mvdx1, [ip, #24] + 154c: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} + 1550: 1106300c tstne r6, ip + 1554: 2f040d7b svccs 0x00040d7b + 1558: 300c08b1 strhcc r0, [ip], -r1 + 155c: 0d751706 ldcleq 7, cr1, [r5, #-24]! + 1560: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + 1564: 0a06300c beq 18d59c + 1568: 0e75060d cdpeq 6, 7, cr0, cr5, cr13, {0} + 156c: 360e0620 strcc r0, [lr], -r0, lsr #12 + 1570: 2f020db5 svccs 0x00020db5 + 1574: 300c08b1 strhcc r0, [ip], -r1 + 1578: 0dcc1506 cfstr64eq mvdx1, [ip, #24] + 157c: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} + 1580: 1106300c tstne r6, ip + 1584: 2f040d7b svccs 0x00040d7b + 1588: 300c08b1 strhcc r0, [ip], -r1 + 158c: 0d751706 ldcleq 7, cr1, [r5, #-24]! + 1590: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + 1594: 0a06300c beq 18d5cc + 1598: 0e75060d cdpeq 6, 7, cr0, cr5, cr13, {0} + 159c: 360e0620 strcc r0, [lr], -r0, lsr #12 + 15a0: 2f020db5 svccs 0x00020db5 + 15a4: 300c08b1 strhcc r0, [ip], -r1 + 15a8: 0dcc1506 cfstr64eq mvdx1, [ip, #24] + 15ac: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} + 15b0: 1106300c tstne r6, ip + 15b4: 2f040d7b svccs 0x00040d7b + 15b8: 300c08b1 strhcc r0, [ip], -r1 + 15bc: 0d751706 ldcleq 7, cr1, [r5, #-24]! + 15c0: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + 15c4: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 15c8: 63064a0a movwvs r4, #27146 ; 0x6a0a + 15cc: 0089160e addeq r1, r9, lr, lsl #12 + 15d0: 00010000 andeq r0, r1, r0 + 15d4: 004036c0 subeq r3, r0, r0, asr #13 + 15d8: 00000002 andeq r0, r0, r2 + 15dc: 00328402 eorseq r8, r2, r2, lsl #8 + 15e0: 84810100 strhi r0, [r1], #256 + 15e4: 00000000 andeq r0, r0, r0 + 15e8: 01510000 cmpeq r1, r0 + 15ec: 0119d500 tsteq r9, r0, lsl #10 + 15f0: 00020100 andeq r0, r2, r0, lsl #2 + 15f4: 6c117805 ldcvs 8, cr7, [r1], {5} + 15f8: 00000e29 andeq r0, r0, r9, lsr #28 + 15fc: 01010101 tsteq r1, r1, lsl #2 + 1600: 00010001 andeq r0, r1, r1 + 1604: 01010101 tsteq r1, r1, lsl #2 + 1608: 000251d5 ldrdeq r5, [r2], -r5 + 160c: 0402021e streq r0, [r2], #-542 + 1610: 0a011384 beq 46428 + 1614: 04030801 streq r0, [r3], #-2049 + 1618: 13800301 orrne r0, r0, #67108864 ; 0x4000000 + 161c: 040a2a15 streq r2, [sl], #-2581 + 1620: 682e0c36 stmdavs lr!, {r1, r2, r4, r5, sl, fp} + 1624: b12f020d teqlt pc, sp, lsl #4 + 1628: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 162c: c116040a tstgt r6, sl, lsl #8 + 1630: 0408682e streq r6, [r8], #-2094 + 1634: 0c08b12f stfeqd f3, [r8], {47} + 1638: 040a0630 streq r0, [sl], #-1584 + 163c: 682ec116 stmdavs lr!, {r1, r2, r4, r8, lr, pc} + 1640: b12f0408 teqlt pc, r8, lsl #8 + 1644: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1648: c116040a tstgt r6, sl, lsl #8 + 164c: 0408682e streq r6, [r8], #-2094 + 1650: 0c08b12f stfeqd f3, [r8], {47} + 1654: 0a090630 beq 242f1c + 1658: bcbd106e ldclt 0, cr1, [sp], #440 + 165c: 01000000 tsteq r0, r0 + 1660: 402bb400 eormi fp, fp, r0, lsl #8 + 1664: 00000300 andeq r0, r0, r0, lsl #6 + 1668: 36a30200 strtcc r0, [r3], r0, lsl #4 + 166c: e1010000 tst r1, r0 + 1670: 010000ff strdeq r0, [r0, -pc] + 1674: 0000ffc5 andeq pc, r0, r5, asr #31 + 1678: 00000000 andeq r0, r0, r0 + 167c: d5000151 strle r0, [r0, #-337] + 1680: 01000119 tsteq r0, r9, lsl r1 + 1684: 78050002 stmdavc r5, {r1} + 1688: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 168c: 01010000 tsteq r1, r0 + 1690: 00010101 andeq r0, r1, r1, lsl #2 + 1694: 01010001 tsteq r1, r1 + 1698: 7fd50101 svcvc 0x00d50101 + 169c: 02480002 subeq r0, r8, #2 ; 0x2 + 16a0: 17a80002 strne r0, [r8, r2]! + 16a4: 08013501 stmdaeq r1, {r0, r8, sl, ip, sp} + 16a8: 03010403 movweq r0, #5123 ; 0x1403 + 16ac: 2a1517a4 bcs 547544 + 16b0: 0e060203 cdpeq 2, 0, cr0, cr6, cr3, {0} + 16b4: 020db836 andeq fp, sp, #3538944 ; 0x360000 + 16b8: 0c081422 cfstrseq mvf1, [r8], {34} + 16bc: 02030630 andeq r0, r3, #50331648 ; 0x3000000 + 16c0: b82c741b stmdalt ip!, {r0, r1, r3, r4, sl, ip, sp, lr} + 16c4: ac360b06 ldcge 11, cr0, [r6], #-24 + 16c8: 03370103 teqeq r7, #-1073741824 ; 0xc0000000 + 16cc: 721b0406 andsvc r0, fp, #100663296 ; 0x6000000 + 16d0: 6506d165 strvs sp, [r6, #-357] + 16d4: 0a09c81b beq 273748 + 16d8: 05513d02 ldrbeq r3, [r1, #-3330] + 16dc: 6d100633 ldcvs 6, cr0, [r0, #-204] + 16e0: 057f0a46 ldrbeq r0, [pc, #-2630]! ; ca2 <__USR_stack_size+0x4a2> + 16e4: 05d23b69 ldrbeq r3, [r2, #2921] + 16e8: 6d76066c ldclvs 6, cr0, [r6, #-432]! + 16ec: 020a094f andeq r0, sl, #1294336 ; 0x13c000 + 16f0: 33051722 movwcc r1, #22306 ; 0x5722 + 16f4: d2361006 eorsle r1, r6, #6 ; 0x6 + 16f8: 69057f0a stmdbvs r5, {r1, r3, r8, r9, sl, fp, ip, sp, lr} + 16fc: 0103d23b tsteq r3, fp, lsr r2 + 1700: 8b866c05 blhi fe19c71c + 1704: 6b060103 blvs 181b18 + 1708: a63dc91b undefined + 170c: 1422030d strtne r0, [r2], #-781 + 1710: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1714: 06680a09 strbteq r0, [r8], -r9, lsl #20 + 1718: bc1f0e74 ldclt 14, cr0, [pc], {116} + 171c: 01000001 tsteq r0, r1 + 1720: 402c4400 eormi r4, ip, r0, lsl #8 + 1724: 00000400 andeq r0, r0, r0, lsl #8 + 1728: 384f0200 stmdacc pc, {r9}^ + 172c: 79010000 stmdbvc r1, {} + 1730: 02004023 andeq r4, r0, #35 ; 0x23 + 1734: 000036a3 andeq r3, r0, r3, lsr #13 + 1738: 4038c901 eorsmi ip, r8, r1, lsl #18 + 173c: 00000000 andeq r0, r0, r0 + 1740: 00015100 andeq r5, r1, r0, lsl #2 + 1744: 000119d5 ldrdeq r1, [r1], -r5 + 1748: 05000201 streq r0, [r0, #-513] + 174c: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 1750: 0100000e tsteq r0, lr + 1754: 01010101 tsteq r1, r1, lsl #2 + 1758: 01000100 tsteq r0, r0, lsl #2 + 175c: d5010101 strle r0, [r1, #-257] + 1760: 000202f9 strdeq r0, [r2], -r9 + 1764: 020201c2 andeq r0, r2, #-2147483600 ; 0x80000030 + 1768: 0117ec01 tsteq r7, r1, lsl #24 + 176c: 080101b3 stmdaeq r1, {r0, r1, r4, r5, r7, r8} + 1770: 03010403 movweq r0, #5123 ; 0x1403 + 1774: 2a1517e8 bcs 54771c + 1778: 0631c528 ldrteq ip, [r1], -r8, lsr #10 + 177c: 020a1423 andeq r1, sl, #587202560 ; 0x23000000 + 1780: 0a099151 beq 265ccc + 1784: f44d00c1 vst4. {d16-d19}, [sp], r1 + 1788: 3965230a stmdbcc r5!, {r1, r3, r8, r9, sp}^ + 178c: 3854a131 ldmdacc r4, {r0, r4, r5, r8, sp, pc}^ + 1790: 7714020d ldrvc r0, [r4, -sp, lsl #4] + 1794: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1798: 070a030a streq r0, [sl, -sl, lsl #6] + 179c: 090a080a stmdbeq sl, {r1, r3, fp} + 17a0: 0f0a0b0a svceq 0x000a0b0a + 17a4: 190a180a stmdbne sl, {r1, r3, fp, ip} + 17a8: 390a1d0a stmdbcc sl, {r1, r3, r8, sl, fp, ip} + 17ac: 23143b0a tstcs r4, #10240 ; 0x2800 + 17b0: 09213607 stmdbeq r1!, {r0, r1, r2, r9, sl, ip, sp} + 17b4: 7406390a strvc r3, [r6], #-2314 + 17b8: 02039f44 andeq r9, r3, #272 ; 0x110 + 17bc: 030d503f movweq r5, #53311 ; 0xd03f + 17c0: 0c087714 stceq 7, cr7, [r8], {20} + 17c4: 0a090630 beq 24308c + 17c8: 1b080635 blne 2030a4 + 17cc: 340a0971 strcc r0, [sl], #-2417 + 17d0: 503f0103 eorspl r0, pc, r3, lsl #2 + 17d4: 03330a09 teqeq r3, #36864 ; 0x9000 + 17d8: 03375801 teqeq r7, #65536 ; 0x10000 + 17dc: 09a83c01 stmibeq r8!, {r0, sl, fp, ip, sp} + 17e0: 79062f0a stmdbvc r6, {r1, r3, r8, r9, sl, fp, sp} + 17e4: 13039d44 movwne r9, #15684 ; 0x3d44 + 17e8: 04086d22 streq r6, [r8], #-3362 + 17ec: 0c087714 stceq 7, cr7, [r8], {20} + 17f0: 0a090630 beq 2430b8 + 17f4: 1b0c062d blne 3030b0 + 17f8: 06020371 undefined + 17fc: 08033775 stmdaeq r3, {r0, r2, r4, r5, r6, r8, r9, sl, ip, sp} + 1800: 08771404 ldmdaeq r7!, {r2, sl, ip}^ + 1804: 0a06300c beq 18d83c + 1808: 1b140605 blne 503024 + 180c: 446f0671 strbtmi r0, [pc], #1649 ; 1814 <__USR_stack_size+0x1014> + 1810: 140408a8 strne r0, [r4], #-2216 + 1814: 300c0877 andcc r0, ip, r7, ror r8 + 1818: 1b080606 blne 203038 + 181c: 240a0971 strcs r0, [sl], #-2417 + 1820: 0a09364d beq 24f15c + 1824: 4a0d0323 bmi 3424b8 + 1828: 060303ef streq r0, [r3], -pc, ror #7 + 182c: 08033772 stmdaeq r3, {r1, r4, r5, r6, r8, r9, sl, ip, sp} + 1830: 08771404 ldmdaeq r7!, {r2, sl, ip}^ + 1834: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 1838: 0e061f0a cdpeq 15, 0, cr1, cr6, cr10, {0} + 183c: 0a09711b beq 25dcb0 + 1840: 3d01031e stccc 3, cr0, [r1, #-120] + 1844: 03030aa7 movweq r0, #15015 ; 0x3aa7 + 1848: 440a0606 strmi r0, [sl], #-1542 + 184c: 526f063c rsbpl r0, pc, #62914560 ; 0x3c00000 + 1850: 190a092c stmdbne sl, {r2, r3, r5, r8, fp} + 1854: 3b527406 blcc 149e874 + 1858: 07060d0a streq r0, [r6, -sl, lsl #26] + 185c: 933f1f29 teqls pc, #164 ; 0xa4 + 1860: 040d5339 streq r5, [sp], #-825 + 1864: 9f140405 svcls 0x00140405 + 1868: 0c08020a sfmeq f0, 4, [r8], {10} + 186c: 070a0630 smladxeq sl, r0, r6, r0 + 1870: 7e050104 adfvcs f0, f5, f4 + 1874: 02038733 andeq r8, r3, #13369344 ; 0xcc0000 + 1878: cd14fa9e fldsgt s30, [r4, #-632] + 187c: e1552413 cmp r5, r3, lsl r4 + 1880: 7714020d ldrvc r0, [r4, -sp, lsl #4] + 1884: 080f0a09 stmdaeq pc, {r0, r3, r9, fp} + 1888: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 188c: bc270e0a stclt 14, cr0, [r7], #-40 + 1890: 0603050a streq r0, [r3], -sl, lsl #10 + 1894: 7a069847 bvc 1a79b8 + 1898: 030d5629 movweq r5, #54825 ; 0xd629 + 189c: 0c087714 stceq 7, cr7, [r8], {20} + 18a0: 0a090630 beq 243168 + 18a4: 1b0b0609 blne 2c30d0 + 18a8: 49020a71 stmdbmi r2, {r0, r4, r5, r6, r9, fp} + 18ac: 070a09a9 streq r0, [sl, -r9, lsr #19] + 18b0: 020a3e3f andeq r3, sl, #1008 ; 0x3f0 + 18b4: 0a095448 beq 2569dc + 18b8: 0a314c05 beq c548d4 + 18bc: 06445804 strbeq r5, [r4], -r4, lsl #16 + 18c0: 08f1367e ldmeq r1!, {r1, r2, r3, r4, r5, r6, r9, sl, ip, sp}^ + 18c4: 08771404 ldmdaeq r7!, {r2, sl, ip}^ + 18c8: 1906300c stmdbne r6, {r2, r3, ip, sp} + 18cc: 03221615 teqeq r2, #22020096 ; 0x1500000 + 18d0: 09d41002 ldmibeq r4, {r1, ip}^ + 18d4: 067fb60a ldrbteq fp, [pc], -sl, lsl #12 + 18d8: a9f6367c ldmibge r6!, {r2, r3, r4, r5, r6, r9, sl, ip, sp}^ + 18dc: 01000000 tsteq r0, r0 + 18e0: 403ca400 eorsmi sl, ip, r0, lsl #8 + 18e4: 00000200 andeq r0, r0, r0, lsl #4 + 18e8: 3aa00200 bcc fe8020f0 + 18ec: a7020000 strge r0, [r2, -r0] + 18f0: 0000003b andeq r0, r0, fp, lsr r0 + 18f4: 51000000 tstpl r0, r0 + 18f8: 19d50001 ldmibne r5, {r0}^ + 18fc: 02010001 andeq r0, r1, #1 ; 0x1 + 1900: 11780500 cmnne r8, r0, lsl #10 + 1904: 000e296c andeq r2, lr, ip, ror #18 + 1908: 01010100 tsteq r1, r0, lsl #2 + 190c: 01000101 tsteq r0, r1, lsl #2 + 1910: 01010100 tsteq r1, r0, lsl #2 + 1914: 0225d501 eoreq sp, r5, #4194304 ; 0x400000 + 1918: 02022600 andeq r2, r2, #0 ; 0x0 + 191c: 010fda00 tsteq pc, r0, lsl #20 + 1920: 03080103 movweq r0, #33027 ; 0x8103 + 1924: d6030104 strle r0, [r3], -r4, lsl #2 + 1928: 1b2a150f blne a86d6c + 192c: 087d0a7c ldmdaeq sp!, {r2, r3, r4, r5, r6, r9, fp}^ + 1930: 14020c06 strne r0, [r2], #-3078 + 1934: 7c0a0977 stcvc 9, cr0, [sl], {119} + 1938: e1f51202 mvns r1, r2, lsl #4 + 193c: d5000151 strle r0, [r0, #-337] + 1940: 23000247 movwcs r0, #583 ; 0x247 + 1944: 81000303 tsthi r0, r3, lsl #6 + 1948: 011b0110 tsteq fp, r0, lsl r1 + 194c: 01040308 tsteq r4, r8, lsl #6 + 1950: 150ffd03 strne pc, [pc, #-3331] ; c55 <__USR_stack_size+0x455> + 1954: 1b12062a blne 483204 + 1958: 4ade587c bmi ff797b50 + 195c: 226a22ed rsbcs r2, sl, #-805306354 ; 0xd000000e + 1960: 23a43dc0 undefined instruction 0x23a43dc0 + 1964: 220730be andcs r3, r7, #190 ; 0xbe + 1968: 266a226a strbtcs r2, [sl], -sl, ror #4 + 196c: 1d6a2266 sfmne f2, 2, [sl, #-408]! + 1970: 30a43dc4 adccc r3, r4, r4, asr #27 + 1974: 226a22b1 rsbcs r2, sl, #268435467 ; 0x1000000b + 1978: 0a414b6a beq 1054728 + 197c: 09b42d6c ldmibeq r4!, {r2, r3, r5, r6, r8, sl, fp, sp} + 1980: 01036b0a tsteq r3, sl, lsl #22 + 1984: 220e7106 andcs r7, lr, #-2147483647 ; 0x80000001 + 1988: 0000006a andeq r0, r0, sl, rrx + 198c: 23780001 cmncs r8, #1 ; 0x1 + 1990: 00010040 andeq r0, r1, r0, asr #32 + 1994: a5020000 strge r0, [r2] + 1998: 0100004d tsteq r0, sp, asr #32 + 199c: 8c000000 stchi 0, cr0, [r0], {0} + 19a0: 5100003f tstpl r0, pc, lsr r0 + 19a4: 19d50001 ldmibne r5, {r0}^ + 19a8: 02010001 andeq r0, r1, #1 ; 0x1 + 19ac: 11780500 cmnne r8, r0, lsl #10 + 19b0: 000e296c andeq r2, lr, ip, ror #18 + 19b4: 01010100 tsteq r1, r0, lsl #2 + 19b8: 01000101 tsteq r0, r1, lsl #2 + 19bc: 01010100 tsteq r1, r0, lsl #2 + 19c0: 0233d501 eorseq sp, r3, #4194304 ; 0x400000 + 19c4: 02021100 andeq r1, r2, #0 ; 0x0 + 19c8: 0110bb02 tsteq r0, r2, lsl #22 + 19cc: 0308010c movweq r0, #33036 ; 0x810c + 19d0: 0610b703 ldreq fp, [r0], -r3, lsl #14 + 19d4: 0a791b19 beq 1e48640 + 19d8: 0a202105 beq 809df4 + 19dc: 7a040604 bvc 1031f4 + 19e0: 08b13ac6 ldmeq r1!, {r1, r2, r6, r7, r9, fp, ip, sp} + 19e4: 22010b05 andcs r0, r1, #5120 ; 0x1400 + 19e8: 300c0814 andcc r0, ip, r4, lsl r8 + 19ec: 790a0906 stmdbvc sl, {r1, r2, r8, fp} + 19f0: 5e060503 cfsh32pl mvfx0, mvfx6, #3 + 19f4: 00610e0e rsbeq r0, r1, lr, lsl #28 + 19f8: 00010000 andeq r0, r1, r0 + 19fc: 0040239a umaaleq r2, r0, sl, r3 + 1a00: 00000001 andeq r0, r0, r1 + 1a04: 004ebd02 subeq fp, lr, r2, lsl #26 + 1a08: 00000000 andeq r0, r0, r0 + 1a0c: 00015100 andeq r5, r1, r0, lsl #2 + 1a10: 000119d5 ldrdeq r1, [r1], -r5 + 1a14: 05000201 streq r0, [r0, #-513] + 1a18: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 1a1c: 0100000e tsteq r0, lr + 1a20: 01010101 tsteq r1, r1, lsl #2 + 1a24: 01000100 tsteq r0, r0, lsl #2 + 1a28: d5010101 strle r0, [r1, #-257] + 1a2c: 1a00022e bne 22ec <__USR_stack_size+0x1aec> + 1a30: db040202 blle 102240 + 1a34: 140a0110 strne r0, [sl], #-272 + 1a38: d7030308 strle r0, [r3, -r8, lsl #6] + 1a3c: 1b300610 blne c03284 + 1a40: 06020a79 undefined + 1a44: 09d01b7f ldmibeq r0, {r0, r1, r2, r3, r4, r5, r6, r8, r9, fp, ip}^ + 1a48: 7a717d0a bvc 1c60e78 + 1a4c: 974af93f smlaldxls pc, sl, pc, r9 + 1a50: 12256a22 eorne r6, r5, #139264 ; 0x22000 + 1a54: 06780a09 ldrbteq r0, [r8], -r9, lsl #20 + 1a58: 58ce5f74 stmiapl lr, {r2, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 1a5c: 01000000 tsteq r0, r0 + 1a60: 4023ce00 eormi ip, r3, r0, lsl #28 + 1a64: 00000100 andeq r0, r0, r0, lsl #2 + 1a68: 4fe90200 svcmi 0x00e90200 + 1a6c: 00000000 andeq r0, r0, r0 + 1a70: 01510000 cmpeq r1, r0 + 1a74: 0119d500 tsteq r9, r0, lsl #10 + 1a78: 00020100 andeq r0, r2, r0, lsl #2 + 1a7c: 6c117805 ldcvs 8, cr7, [r1], {5} + 1a80: 00000e29 andeq r0, r0, r9, lsr #28 + 1a84: 01010101 tsteq r1, r1, lsl #2 + 1a88: 00010001 andeq r0, r1, r1 + 1a8c: 01010101 tsteq r1, r1, lsl #2 + 1a90: 000225d5 ldrdeq r2, [r2], -r5 + 1a94: 05020212 streq r0, [r2, #-530] + 1a98: 090110ef stmdbeq r1, {r0, r1, r2, r3, r5, r6, r7, ip} + 1a9c: 03030814 movweq r0, #14356 ; 0x3814 + 1aa0: 180610eb stmdane r6, {r0, r1, r3, r5, r6, r7, ip} + 1aa4: 040a791b streq r7, [sl], #-2331 + 1aa8: 7873d813 ldmdavc r3!, {r0, r1, r4, fp, ip, lr, pc}^ + 1aac: bd24092e stclt 9, cr0, [r4, #-184]! + 1ab0: 037a0a09 cmneq sl, #36864 ; 0x9000 + 1ab4: aad05f01 bge ff4196c0 + 1ab8: 01000000 tsteq r0, r0 + 1abc: 4023f400 eormi pc, r3, r0, lsl #8 + 1ac0: 00000100 andeq r0, r0, r0, lsl #2 + 1ac4: 50f10200 rscspl r0, r1, r0, lsl #4 + 1ac8: 00000000 andeq r0, r0, r0 + 1acc: 01510000 cmpeq r1, r0 + 1ad0: 0119d500 tsteq r9, r0, lsl #10 + 1ad4: 00020100 andeq r0, r2, r0, lsl #2 + 1ad8: 6c117805 ldcvs 8, cr7, [r1], {5} + 1adc: 00000e29 andeq r0, r0, r9, lsr #28 + 1ae0: 01010101 tsteq r1, r1, lsl #2 + 1ae4: 00010001 andeq r0, r1, r1 + 1ae8: 01010101 tsteq r1, r1, lsl #2 + 1aec: 000277d5 ldrdeq r7, [r2], -r5 + 1af0: 0602021a undefined + 1af4: 0e011182 adfeqd f1, f1, f2 + 1af8: 03030814 movweq r0, #14356 ; 0x3814 + 1afc: 130610fe movwne r1, #24830 ; 0x60fe + 1b00: 340e791b strcc r7, [lr], #-2331 + 1b04: 04060a05 streq r0, [r6], #-2565 + 1b08: 7805981b stmdavc r5, {r0, r1, r3, r4, fp, ip, pc} + 1b0c: a63bfc12 undefined + 1b10: 20057e03 andcs r7, r5, r3, lsl #28 + 1b14: 35290506 strcc r0, [r9, #-1286]! + 1b18: 560e6005 strpl r6, [lr], -r5 + 1b1c: 7e036c20 cdpvc 12, 0, cr6, cr3, cr0, {1} + 1b20: 05062005 streq r2, [r6, #-5] + 1b24: 60053529 andvs r3, r5, r9, lsr #10 + 1b28: 6c20560e stcvs 6, cr5, [r0], #-56 + 1b2c: 20057e03 andcs r7, r5, r3, lsl #28 + 1b30: 35290506 strcc r0, [r9, #-1286]! + 1b34: 560e6005 strpl r6, [lr], -r5 + 1b38: 7e036c20 cdpvc 12, 0, cr6, cr3, cr0, {1} + 1b3c: 05062005 streq r2, [r6, #-5] + 1b40: 5e053529 cfsh32pl mvfx3, mvfx5, #25 + 1b44: 040e6d06 streq r6, [lr], #-3334 + 1b48: 14236824 strtne r6, [r3], #-2084 + 1b4c: 7913be22 ldmdbvc r3, {r1, r5, r9, sl, fp, ip, sp, pc} + 1b50: a33d1027 teqge sp, #39 ; 0x27 + 1b54: 0206be22 andeq fp, r6, #544 ; 0x220 + 1b58: 7a06711b bvc 19dfcc + 1b5c: 5f2d290e svcpl 0x002d290e + 1b60: 2e650a09 fmulscs s1, s10, s18 + 1b64: 00008e09 andeq r8, r0, r9, lsl #28 + 1b68: 28000200 stmdacs r0, {r9} + 1b6c: 02004024 andeq r4, r0, #36 ; 0x24 + 1b70: 02000000 andeq r0, r0, #0 ; 0x0 + 1b74: 0000520d andeq r5, r0, sp, lsl #4 + 1b78: 005a4902 subseq r4, sl, r2, lsl #18 + 1b7c: 00000100 andeq r0, r0, r0, lsl #2 + 1b80: 003f8c00 eorseq r8, pc, r0, lsl #24 + 1b84: 00000100 andeq r0, r0, r0, lsl #2 + 1b88: 402ac800 eormi ip, sl, r0, lsl #16 + 1b8c: 00015100 andeq r5, r1, r0, lsl #2 + 1b90: 000119d5 ldrdeq r1, [r1], -r5 + 1b94: 05000201 streq r0, [r0, #-513] + 1b98: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 1b9c: 0100000e tsteq r0, lr + 1ba0: 01010101 tsteq r1, r1, lsl #2 + 1ba4: 01000100 tsteq r0, r0, lsl #2 + 1ba8: d5010101 strle r0, [r1, #-257] + 1bac: 1c00024a sfmne f0, 4, [r0], {74} + 1bb0: 99070202 stmdbls r7, {r1, r9} + 1bb4: 14130111 ldrne r0, [r3], #-273 + 1bb8: 95030308 strls r0, [r3, #-776] + 1bbc: 1b120611 blne 483408 + 1bc0: 23050a79 movwcs r0, #23161 ; 0x5a79 + 1bc4: 06040a74 undefined + 1bc8: 59c67a0a stmibpl r6, {r1, r3, r9, fp, ip, sp, lr}^ + 1bcc: 0b050892 bleq 143e1c + 1bd0: 08885801 stmeq r8, {r0, fp, ip, lr} + 1bd4: 0a06300c beq 18dc0c + 1bd8: 06060304 streq r0, [r6], -r4, lsl #6 + 1bdc: 3c180e66 ldccc 14, cr0, [r8], {102} + 1be0: 14020db0 strne r0, [r2], #-3504 + 1be4: 300c0877 andcc r0, ip, r7, ror r8 + 1be8: 091b1406 ldmdbeq fp, {r1, r2, sl, ip} + 1bec: 01040500 tsteq r4, r0, lsl #10 + 1bf0: 080e0100 stmdaeq lr, {r8} + 1bf4: 0bcc140b bleq ff306c28 + 1bf8: 01000001 tsteq r0, r1 + 1bfc: 40246000 eormi r6, r4, r0 + 1c00: 00000200 andeq r0, r0, r0, lsl #4 + 1c04: 531d0200 tstpl sp, #0 ; 0x0 + 1c08: e9020000 stmdb r2, {} + 1c0c: 0000004f andeq r0, r0, pc, asr #32 + 1c10: 51000000 tstpl r0, r0 + 1c14: 19d50001 ldmibne r5, {r0}^ + 1c18: 02010001 andeq r0, r1, #1 ; 0x1 + 1c1c: 11780500 cmnne r8, r0, lsl #10 + 1c20: 000e296c andeq r2, lr, ip, ror #18 + 1c24: 01010100 tsteq r1, r0, lsl #2 + 1c28: 01000101 tsteq r0, r1, lsl #2 + 1c2c: 01010100 tsteq r1, r0, lsl #2 + 1c30: 01d2d501 bicseq sp, r2, r1, lsl #10 + 1c34: 01a80002 undefined instruction 0x01a80002 + 1c38: bc080202 sfmlt f0, 4, [r8], {2} + 1c3c: 144b0111 strbne r0, [fp], #-273 + 1c40: b8030308 stmdalt r3, {r3, r8, r9} + 1c44: 1b160611 blne 583490 + 1c48: 29100679 ldmdbcs r0, {r0, r3, r4, r5, r6, r9, sl} + 1c4c: 0a0a0a19 beq 2844b8 + 1c50: 0a220a0e beq 884490 + 1c54: 0e550624 cdpeq 6, 5, cr0, cr5, cr4, {1} + 1c58: 30c6e629 sbccc lr, r6, r9, lsr #12 + 1c5c: 1d75175b ldclne 7, cr1, [r5, #-364]! + 1c60: 3d404b1b vstrcc d20, [r0, #-108] + 1c64: 30a33da3 adccc r3, r3, r3, lsr #27 + 1c68: 1e0a095b mcrne 9, 0, r0, cr10, cr11, {2} + 1c6c: 711b2606 tstvc fp, r6, lsl #12 + 1c70: 01031d0a tsteq r3, sl, lsl #26 + 1c74: 776d6406 strbvc r6, [sp, -r6, lsl #8]! + 1c78: 954b1482 strbls r1, [fp, #-1154] + 1c7c: 061a0a09 ldreq r0, [sl], -r9, lsl #20 + 1c80: 0a711b1a beq 1c488f0 + 1c84: 06050319 undefined + 1c88: 66335269 ldrtvs r5, [r3], -r9, ror #4 + 1c8c: 0af83dda beq ffe113fc + 1c90: 74cf1205 strbvc r1, [pc], #517 ; 1c98 <__USR_stack_size+0x1498> + 1c94: 04954b77 ldreq r4, [r5], #2935 + 1c98: 1b1b0601 blne 6c34a4 + 1c9c: 0f0a0971 svceq 0x000a0971 + 1ca0: 9e446406 cdpls 4, 4, cr6, cr4, cr6, {0} + 1ca4: c0230a0a eorgt r0, r3, sl, lsl #20 + 1ca8: 07305a3c undefined + 1cac: 25125b30 ldrcs r5, [r2, #-2864] + 1cb0: a33d404b teqge sp, #75 ; 0x4b + 1cb4: 5b30a33d blpl c2a9b0 + 1cb8: 04080a09 streq r0, [r8], #-2569 + 1cbc: 1b220601 blne 8834c8 + 1cc0: 66010471 undefined + 1cc4: 030a097e movweq r0, #43390 ; 0xa97e + 1cc8: 3b526606 blcc 149b4e8 + 1ccc: 0f060603 svceq 0x00060603 + 1cd0: 6b06f328 blvs 1be978 + 1cd4: 0403d75f streq sp, [r3], #-1887 + 1cd8: 020dd014 andeq sp, sp, #20 ; 0x14 + 1cdc: 0c087714 stceq 7, cr7, [r8], {20} + 1ce0: 0a0a0630 beq 2835a8 + 1ce4: 73075d14 movwvc r5, #32020 ; 0x7d14 + 1ce8: 14cc1479 strbne r1, [ip], #1145 + 1cec: d3cc14cc bicle r1, ip, #-872415232 ; 0xcc000000 + 1cf0: 1b2106b7 blne 8437d4 + 1cf4: 0e5e0671 mrceq 6, 2, r0, cr14, cr1, {3} + 1cf8: 14040829 strne r0, [r4], #-2089 + 1cfc: 300c0877 andcc r0, ip, r7, ror r8 + 1d00: 4c0a0906 stcmi 9, cr0, [sl], {6} + 1d04: 015dc711 cmpeq sp, r1, lsl r7 + 1d08: 00010000 andeq r0, r1, r0 + 1d0c: 004025c0 subeq r2, r0, r0, asr #11 + 1d10: 00000002 andeq r0, r0, r2 + 1d14: 0054bd02 subseq fp, r4, r2, lsl #26 + 1d18: 4fe90200 svcmi 0x00e90200 + 1d1c: 00000000 andeq r0, r0, r0 + 1d20: 01510000 cmpeq r1, r0 + 1d24: 0119d500 tsteq r9, r0, lsl #10 + 1d28: 00020100 andeq r0, r2, r0, lsl #2 + 1d2c: 6c117805 ldcvs 8, cr7, [r1], {5} + 1d30: 00000e29 andeq r0, r0, r9, lsr #28 + 1d34: 01010101 tsteq r1, r1, lsl #2 + 1d38: 00010001 andeq r0, r1, r1 + 1d3c: 01010101 tsteq r1, r1, lsl #2 + 1d40: 0202a4d5 andeq sl, r2, #-721420288 ; 0xd5000000 + 1d44: 02028000 andeq r8, r2, #0 ; 0x0 + 1d48: 12900902 addsne r0, r0, #32768 ; 0x8000 + 1d4c: 08146401 ldmdaeq r4, {r0, sl, sp, lr} + 1d50: 128c0303 addne r0, ip, #201326592 ; 0xc000000 + 1d54: 791b1606 ldmdbvc fp, {r1, r2, r9, sl, ip} + 1d58: 19291006 stmdbne r9!, {r1, r2, ip} + 1d5c: 140a100a strne r1, [sl], #-10 + 1d60: 390a370a stmdbcc sl, {r1, r3, r8, r9, sl, ip, sp} + 1d64: 55063c0a strpl r3, [r6, #-3082] + 1d68: 3507290e strcc r2, [r7, #-2318] + 1d6c: 175b30cd ldrbne r3, [fp, -sp, asr #1] + 1d70: 06672675 undefined + 1d74: 4b632978 blmi 18cc35c + 1d78: 0a404b40 beq 1014a80 + 1d7c: 30063004 andcc r3, r6, r4 + 1d80: 09a33d06 stmibeq r3!, {r1, r2, r8, sl, fp, ip, sp} + 1d84: dd58020a lfmle f0, 2, [r8, #-40] + 1d88: 0630a33d undefined + 1d8c: 0a095b30 beq 258a54 + 1d90: 1b26062d blne 98364c + 1d94: 032c0a71 teqeq ip, #462848 ; 0x71000 + 1d98: 6d640601 stclvs 6, cr0, [r4, #-4]! + 1d9c: 4bb18f77 blmi fec65b80 + 1da0: 290a0995 stmdbcs sl, {r0, r2, r4, r7, r8, fp} + 1da4: 711b1a06 tstvc fp, r6, lsl #20 + 1da8: 0503280a streq r2, [r3, #-2058] + 1dac: 33526906 cmpcc r2, #98304 ; 0x18000 + 1db0: f83dda66 undefined instruction 0xf83dda66 + 1db4: cf12060a svcgt 0x0012060a + 1db8: 954b3d59 strbls r3, [fp, #-3417] + 1dbc: 711b0f06 tstvc fp, r6, lsl #30 + 1dc0: 3d4f0104 stfcce f0, [pc, #-16] + 1dc4: 061d0a09 ldreq r0, [sp], -r9, lsl #20 + 1dc8: 0a756d64 beq 1d5d360 + 1dcc: 0ac4200d beq ff109e08 + 1dd0: e4020317 str r0, [r2], #-791 + 1dd4: 305a3cb4 ldrhcc r3, [sl], #-196 + 1dd8: 065b3007 ldrbeq r3, [fp], -r7 + 1ddc: 06711b05 ldrbteq r1, [r1], -r5, lsl #22 + 1de0: 58c61b73 stmiapl r6, {r0, r1, r4, r5, r6, r8, r9, fp, ip}^ + 1de4: 0a404bdd beq 1014d60 + 1de8: 3d06300a stccc 0, cr3, [r6, #-40] + 1dec: 09dd58a3 ldmibeq sp, {r0, r1, r5, r7, fp, ip, lr}^ + 1df0: 7a66080a bvc 1983e20 + 1df4: 3f4c7703 svccc 0x004c7703 + 1df8: cc14cc14 ldcgt 12, cr12, [r4], {20} + 1dfc: 1f06954b svcne 0x0006954b + 1e00: 0a09711b beq 25e274 + 1e04: 5266060a rsbpl r0, r6, #10485760 ; 0xa00000 + 1e08: 1f03033a svcne 0x0003033a + 1e0c: 3d063070 stccc 0, cr3, [r6, #-448] + 1e10: 060104f8 undefined + 1e14: 0a711b20 beq 1c48a9c + 1e18: 5f6a0608 svcpl 0x006a0608 + 1e1c: 060104d0 undefined + 1e20: 09b63616 ldmibeq r6!, {r1, r2, r4, r9, sl, ip, sp} + 1e24: 6806030a stmdavs r6, {r1, r3, r8, r9} + 1e28: 0f03766d svceq 0x0003766d + 1e2c: e9280d06 stmdb r8!, {r1, r2, r8, sl, fp} + 1e30: d75f6b06 ldrble r6, [pc, -r6, lsl #22] + 1e34: d0140503 andsle r0, r4, r3, lsl #10 + 1e38: 7714020d ldrvc r0, [r4, -sp, lsl #4] + 1e3c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1e40: 01030a0a tsteq r3, sl, lsl #20 + 1e44: 73075d14 movwvc r5, #32020 ; 0x7d14 + 1e48: 14cc1479 strbne r1, [ip], #1145 + 1e4c: d3cc14cc bicle r1, ip, #-872415232 ; 0xcc000000 + 1e50: 1b2106b7 blne 843934 + 1e54: 0e5e0671 mrceq 6, 2, r0, cr14, cr1, {3} + 1e58: 14040829 strne r0, [r4], #-2089 + 1e5c: 300c0877 andcc r0, ip, r7, ror r8 + 1e60: b70a0906 strlt r0, [sl, -r6, lsl #18] + 1e64: fbc8117f blx ff20646a + 1e68: 01000001 tsteq r0, r1 + 1e6c: 4027c000 eormi ip, r7, r0 + 1e70: 00000600 andeq r0, r0, r0, lsl #12 + 1e74: 56950200 ldrpl r0, [r5], r0, lsl #4 + 1e78: 1c020000 stcne 0, cr0, [r2], {0} + 1e7c: 0200005f andeq r0, r0, #95 ; 0x5f + 1e80: 00006024 andeq r6, r0, r4, lsr #32 + 1e84: 4030ed01 eorsmi lr, r0, r1, lsl #26 + 1e88: 4fe90200 svcmi 0x00e90200 + 1e8c: 2d010000 stccs 0, cr0, [r1] + 1e90: 00004031 andeq r4, r0, r1, lsr r0 + 1e94: 51000000 tstpl r0, r0 + 1e98: 19d50001 ldmibne r5, {r0}^ + 1e9c: 02010001 andeq r0, r1, #1 ; 0x1 + 1ea0: 11780500 cmnne r8, r0, lsl #10 + 1ea4: 000e296c andeq r2, lr, ip, ror #18 + 1ea8: 01010100 tsteq r1, r0, lsl #2 + 1eac: 01000101 tsteq r0, r1, lsl #2 + 1eb0: 01010100 tsteq r1, r0, lsl #2 + 1eb4: 01edd501 mvneq sp, r1, lsl #10 + 1eb8: 01de0002 bicseq r0, lr, r2 + 1ebc: fd0a0202 stc2 2, cr0, [sl, #-8] + 1ec0: 144d0112 strbne r0, [sp], #-274 + 1ec4: f9030308 undefined instruction 0xf9030308 + 1ec8: 1b160612 blne 583718 + 1ecc: 29100679 ldmdbcs r0, {r0, r3, r4, r5, r6, r9, sl} + 1ed0: 0a0a0a1a beq 284740 + 1ed4: 06260a24 strteq r0, [r6], -r4, lsr #20 + 1ed8: d9290e55 stmdble r9!, {r0, r2, r4, r6, r9, sl, fp} + 1edc: 175b3029 ldrbne r3, [fp, -r9, lsr #32] + 1ee0: 06030a75 undefined + 1ee4: 4a102917 bmi 40c348 + 1ee8: 230a094c movwcs r0, #43340 ; 0xa94c + 1eec: 020c0608 andeq r0, ip, #8388608 ; 0x800000 + 1ef0: 763d0505 ldrtvc r0, [sp], -r5, lsl #10 + 1ef4: d5077b05 strle r7, [r7, #-2821] + 1ef8: 14010439 strne r0, [r1], #-1081 + 1efc: 1d0a09cf stcne 9, cr0, [sl, #-828] + 1f00: 3b526206 blcc 149a720 + 1f04: 02031f0a andeq r1, r3, #40 ; 0x28 + 1f08: da660d23 ble 198539c + 1f0c: 0b0a954b bleq 2a7440 + 1f10: 3d59cf12 ldclcc 15, cr12, [r9, #-72] + 1f14: 0104954b tsteq r4, fp, asr #10 + 1f18: 711b1e06 tstvc fp, r6, lsl #28 + 1f1c: 0608cc6b streq ip, [r8], -fp, ror #24 + 1f20: 2e05030c cdpcs 3, 0, cr0, cr5, cr12, {0} + 1f24: 5205d92f andpl sp, r5, #770048 ; 0xbc000 + 1f28: 97cc5306 strbls r5, [ip, r6, lsl #6] + 1f2c: b481040d strlt r0, [r1], #1037 + 1f30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1f34: 0a092115 beq 24a390 + 1f38: 0a22150f beq 88737c + 1f3c: 49c02306 stmibmi r0, {r1, r2, r8, r9, sp}^ + 1f40: 300730f7 strdcc r3, [r7], -r7 + 1f44: 1b13065b blne 4c38b8 + 1f48: 0c0a0971 stceq 9, cr0, [sl], {113} + 1f4c: 020c0608 andeq r0, ip, #8388608 ; 0x800000 + 1f50: 01043222 tsteq r4, r2, lsr #4 + 1f54: 64067ef1 strvs r7, [r6], #-3825 + 1f58: 040dd85f streq sp, [sp], #-2143 + 1f5c: 0c081774 stceq 7, cr1, [r8], {116} + 1f60: 21150630 tstcs r5, r0, lsr r6 + 1f64: 15030a09 strne r0, [r3, #-2569] + 1f68: 06070322 streq r0, [r7], -r2, lsr #6 + 1f6c: 06f3280f ldrbteq r2, [r3], pc, lsl #16 + 1f70: 03d75f6b bicseq r5, r7, #428 ; 0x1ac + 1f74: 0dd01404 cfldrdeq mvd1, [r0, #16] + 1f78: 08771405 ldmdaeq r7!, {r0, r2, sl, ip}^ + 1f7c: 0a06300c beq 18dfb4 + 1f80: 1401030a strne r0, [r1], #-778 + 1f84: 7973075d ldmdbvc r3!, {r0, r2, r3, r4, r6, r8, r9, sl}^ + 1f88: cc14cc14 ldcgt 12, cr12, [r4], {20} + 1f8c: b7d3cc14 bfilt ip, r4, (invalid: 24:19) + 1f90: 711b2106 tstvc fp, r6, lsl #2 + 1f94: 290e5e06 stmdbcs lr, {r1, r2, r9, sl, fp, ip, lr} + 1f98: 77140408 ldrvc r0, [r4, -r8, lsl #8] + 1f9c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1fa0: 114a0a09 cmpne sl, r9, lsl #20 + 1fa4: 320151c8 andcc r5, r1, #50 ; 0x32 + 1fa8: 00023fd5 ldrdeq r3, [r2], -r5 + 1fac: 0a030314 beq c2c04 + 1fb0: 06010de5 streq r0, [r1], -r5, ror #27 + 1fb4: 0403081c streq r0, [r3], #-2076 + 1fb8: 0de10301 stcleq 3, cr0, [r1, #4]! + 1fbc: 0205d415 andeq sp, r5, #352321536 ; 0x15000000 + 1fc0: 9b1b3606 blls 6cf7e0 + 1fc4: 0505060d streq r0, [r5, #-1549] + 1fc8: 0c08134b stceq 3, cr1, [r8], {75} + 1fcc: 7b050630 blvc 143894 + 1fd0: 9e1b6506 cfmul32ls mvfx6, mvfx11, mvfx6 + 1fd4: b481040d strlt r0, [r1], #1037 + 1fd8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1fdc: 16062115 undefined + 1fe0: 0a09711b beq 25e454 + 1fe4: 37680676 undefined + 1fe8: b2015100 andlt r5, r1, #0 ; 0x0 + 1fec: 0232d501 eorseq sp, r2, #4194304 ; 0x400000 + 1ff0: 03040b00 movweq r0, #19200 ; 0x4b00 + 1ff4: 0114a20a tsteq r4, sl, lsl #4 + 1ff8: 03081d13 movweq r1, #36115 ; 0x8d13 + 1ffc: 9e030104 adflss f0, f3, f4 + 2000: 062a1514 undefined + 2004: 0a7e1b16 beq 1f88c64 + 2008: 297c0602 ldmdbcs ip!, {r1, r9, sl}^ + 200c: 040a0964 streq r0, [sl], #-2404 + 2010: 030a6730 movweq r6, #42800 ; 0xa730 + 2014: a52e6b31 strge r6, [lr, #-2865]! + 2018: 741b0506 ldrvc r0, [fp], #-1286 + 201c: 38780a09 ldmdacc r8!, {r0, r3, r9, fp}^ + 2020: f601514c undefined instruction 0xf601514c + 2024: 023fd501 eorseq sp, pc, #4194304 ; 0x400000 + 2028: 03030f00 movweq r0, #16128 ; 0x3f00 + 202c: 010de50a tsteq sp, sl, lsl #10 + 2030: 03081c06 movweq r1, #35846 ; 0x8c06 + 2034: e1030104 tst r3, r4, lsl #2 + 2038: 05d4150d ldrbeq r1, [r4, #1293] + 203c: 1b360602 blne d8384c + 2040: 05060d9b streq r0, [r6, #-3483] + 2044: 08763d05 ldmdaeq r6!, {r0, r2, r8, sl, fp, ip, sp}^ + 2048: 0506300c streq r3, [r6, #-12] + 204c: 0e65067b mcreq 6, 3, r0, cr5, cr11, {3} + 2050: 58040d01 stmdapl r4, {r0, r8, sl, fp} + 2054: 300c08dd ldrdcc r0, [ip], -sp + 2058: 06211506 strteq r1, [r1], -r6, lsl #10 + 205c: 09711b16 ldmdbeq r1!, {r1, r2, r4, r8, r9, fp, ip}^ + 2060: 6806760a stmdavs r6, {r1, r3, r9, sl, ip, sp, lr} + 2064: 01160037 tsteq r6, r7, lsr r0 + 2068: 00020000 andeq r0, r2, r0 + 206c: 0040297c subeq r2, r0, ip, ror r9 + 2070: 00000002 andeq r0, r0, r2 + 2074: 0058c502 subseq ip, r8, r2, lsl #10 + 2078: 4fe90200 svcmi 0x00e90200 + 207c: 00000000 andeq r0, r0, r0 + 2080: 00010000 andeq r0, r1, r0 + 2084: 2ac80000 bcs ff20208c + 2088: 01510040 cmpeq r1, r0, asr #32 + 208c: 0119d500 tsteq r9, r0, lsl #10 + 2090: 00020100 andeq r0, r2, r0, lsl #2 + 2094: 6c117805 ldcvs 8, cr7, [r1], {5} + 2098: 00000e29 andeq r0, r0, r9, lsr #28 + 209c: 01010101 tsteq r1, r1, lsl #2 + 20a0: 00010001 andeq r0, r1, r1 + 20a4: 01010101 tsteq r1, r1, lsl #2 + 20a8: 0201d5d5 andeq sp, r1, #893386752 ; 0x35400000 + 20ac: 0201a600 andeq sl, r1, #0 ; 0x0 + 20b0: 13d30b02 bicsne r0, r3, #2048 ; 0x800 + 20b4: 08144601 ldmdaeq r4, {r0, r9, sl, lr} + 20b8: 13cf0303 bicne r0, pc, #201326592 ; 0xc000000 + 20bc: 791b1606 ldmdbvc fp, {r1, r2, r9, sl, ip} + 20c0: 19291006 stmdbne r9!, {r1, r2, ip} + 20c4: 210a090a tstcs sl, sl, lsl #18 + 20c8: 5506230a strpl r2, [r6, #-778] + 20cc: 8ccb290e stclhi 9, cr2, [fp], {14} + 20d0: 75175b30 ldrvc r5, [r7, #-2864] + 20d4: 17741b1d undefined + 20d8: f83d7a66 undefined instruction 0xf83d7a66 + 20dc: 061e0a09 ldreq r0, [lr], -r9, lsl #20 + 20e0: 0a711b26 beq 1c48d80 + 20e4: 0601031d undefined + 20e8: 66776d66 ldrbtvs r6, [r7], -r6, ror #26 + 20ec: 0a954bda beq fe55505c + 20f0: 12020404 andne r0, r2, #67108864 ; 0x4000000 + 20f4: 030d0acf movweq r0, #56015 ; 0xdacf + 20f8: a49f0707 ldrge r0, [pc], #1799 ; 2100 <__USR_stack_size+0x1900> + 20fc: 02030104 andeq r0, r3, #1 ; 0x1 + 2100: 55441806 strbpl r1, [r4, #-2054] + 2104: 06140a09 ldreq r0, [r4], -r9, lsl #20 + 2108: 03d85f66 bicseq r5, r8, #408 ; 0x198 + 210c: 15b62070 ldrne r2, [r6, #112]! + 2110: 15781421 ldrbne r1, [r8, #-1057]! + 2114: 14791321 ldrbtne r1, [r9], #-801 + 2118: 4bcc14cc blmi ff307450 + 211c: 06010495 undefined + 2120: 09711b21 ldmdbeq r1!, {r0, r5, r8, r9, fp, ip}^ + 2124: 64060a0a strvs r0, [r6], #-2570 + 2128: 7722d85f undefined + 212c: 5b300730 blpl c03df4 + 2130: 17742512 undefined + 2134: 0a09dd58 beq 27969c + 2138: 035b3006 cmpeq fp, #6 ; 0x6 + 213c: 2817060c ldmdacs r7, {r2, r3, r9, sl} + 2140: 5f6b06f3 svcpl 0x006b06f3 + 2144: 140403d7 strne r0, [r4], #-983 + 2148: 14020dd0 strne r0, [r2], #-3536 + 214c: 300c0877 andcc r0, ip, r7, ror r8 + 2150: 030a0a06 movweq r0, #43526 ; 0xaa06 + 2154: 075d1401 ldrbeq r1, [sp, -r1, lsl #8] + 2158: cc147973 ldcgt 9, cr7, [r4], {115} + 215c: cc14cc14 ldcgt 12, cr12, [r4], {20} + 2160: 2106b7d3 ldrdcs fp, [r6, -r3] + 2164: 5e06711b mcrpl 1, 0, r7, cr6, cr11, {0} + 2168: 0408290e streq r2, [r8], #-2318 + 216c: 0c087714 stceq 7, cr7, [r8], {20} + 2170: 661f0630 undefined + 2174: 04050009 streq r0, [r5], #-9 + 2178: 0f010001 svceq 0x00010001 + 217c: cc140b08 ldcgt 11, cr0, [r4], {8} + 2180: 000000d1 ldrdeq r0, [r0], -r1 + 2184: 2aec0001 bcs ffb02190 + 2188: 00030040 andeq r0, r3, r0, asr #32 + 218c: 49020000 stmdbmi r2, {} + 2190: 0200005a andeq r0, r0, #90 ; 0x5a + 2194: 00005dcd andeq r5, r0, sp, asr #27 + 2198: 403a6501 eorsmi r6, sl, r1, lsl #10 + 219c: 00000100 andeq r0, r0, r0, lsl #2 + 21a0: 003f9200 eorseq r9, pc, r0, lsl #4 + 21a4: 00015100 andeq r5, r1, r0, lsl #2 + 21a8: 000119d5 ldrdeq r1, [r1], -r5 + 21ac: 05000201 streq r0, [r0, #-513] + 21b0: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 21b4: 0100000e tsteq r0, lr + 21b8: 01010101 tsteq r1, r1, lsl #2 + 21bc: 01000100 tsteq r0, r0, lsl #2 + 21c0: d5010101 strle r0, [r1, #-257] + 21c4: 0002018f andeq r0, r2, pc, lsl #3 + 21c8: 0c02024c sfmeq f0, 4, [r2], {76} + 21cc: 2c0114be cfstrscs mvf1, [r1], {190} + 21d0: 04030801 streq r0, [r3], #-2049 + 21d4: 14ba0301 ldrtne r0, [sl], #769 + 21d8: 170a2a15 smladne sl, r5, sl, r2 + 21dc: 2e060403 cdpcs 4, 0, cr0, cr6, cr3, {0} + 21e0: 93591b29 cmpls r9, #41984 ; 0xa400 + 21e4: 3953030a ldmdbcc r3, {r1, r3, r8, r9}^ + 21e8: 1b1c5a3d blne 718ae4 + 21ec: 01040d0a tsteq r4, sl, lsl #26 + 21f0: 3f590c22 svccc 0x00590c22 + 21f4: 711b0806 tstvc fp, r6, lsl #16 + 21f8: 0805020d stmdaeq r5, {r0, r2, r3, r9} + 21fc: 0c083c22 stceq 12, cr3, [r8], {34} + 2200: 78050630 stmdavc r5, {r4, r5, r9, sl} + 2204: 9e1b7406 cfmulsls mvf7, mvf11, mvf6 + 2208: af32080a svcge 0x0032080a + 220c: 6428142e strtvs r1, [r8], #-1070 + 2210: 010b0508 tsteq fp, r8, lsl #10 + 2214: 0c08b12f stfeqd f3, [r8], {47} + 2218: 7c060630 stcvc 6, cr0, [r6], {48} + 221c: 0a09290e beq 24c65c + 2220: 03122502 tsteq r2, #8388608 ; 0x800000 + 2224: 0a493c01 beq 1251230 + 2228: 36020608 strcc r0, [r2], -r8, lsl #12 + 222c: 0dc3d3a2 stcleq 3, cr13, [r3, #648] + 2230: 094e3d03 stmdbeq lr, {r0, r1, r8, sl, fp, ip, sp}^ + 2234: 0c08050a cfstr32eq mvfx0, [r8], {10} + 2238: 040a0630 streq r0, [sl], #-1584 + 223c: 05060104 streq r0, [r6, #-260] + 2240: 7a061529 bvc 1876ec + 2244: 04089044 streq r9, [r8], #-68 + 2248: 0c084e3d stceq 14, cr4, [r8], {61} + 224c: 0a090630 beq 243b14 + 2250: 0e670663 cdpeq 6, 6, cr0, cr7, cr3, {3} + 2254: 00006d16 andeq r6, r0, r6, lsl sp + 2258: 84000100 strhi r0, [r0], #-256 + 225c: 0100402b tsteq r0, fp, lsr #32 + 2260: 02000000 andeq r0, r0, #0 ; 0x0 + 2264: 00005dcd andeq r5, r0, sp, asr #27 + 2268: 00000000 andeq r0, r0, r0 + 226c: d5000151 strle r0, [r0, #-337] + 2270: 01000119 tsteq r0, r9, lsl r1 + 2274: 78050002 stmdavc r5, {r1} + 2278: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 227c: 01010000 tsteq r1, r0 + 2280: 00010101 andeq r0, r1, r1, lsl #2 + 2284: 01010001 tsteq r1, r1 + 2288: 3ad50101 bcc ff542694 + 228c: 02180002 andseq r0, r8, #2 ; 0x2 + 2290: 14f30d02 ldrbtne r0, [r3], #3330 + 2294: 08131501 ldmdaeq r3, {r0, r8, sl, ip} + 2298: 03010403 movweq r0, #5123 ; 0x1403 + 229c: 2a1514ef bcs 547660 + 22a0: 1b290306 blne a42ec0 + 22a4: 020a7c11 andeq r7, sl, #4352 ; 0x1100 + 22a8: 0a09ab42 beq 26cfb8 + 22ac: 4e6b2c02 cdpmi 12, 6, cr2, cr11, cr2, {0} + 22b0: 27030a96 undefined + 22b4: 44780607 ldrbtmi r0, [r8], #-1543 + 22b8: 037b0a9e cmneq fp, #647168 ; 0x9e000 + 22bc: 09af2774 stmibeq pc!, {r2, r4, r5, r6, r8, r9, sl, sp} + 22c0: 0a03760a beq dfaf0 + 22c4: 004e9d47 subeq r9, lr, r7, asr #26 + 22c8: 00010000 andeq r0, r1, r0 + 22cc: 004038c8 subeq r3, r0, r8, asr #17 + 22d0: 00000001 andeq r0, r0, r1 + 22d4: 00658d02 rsbeq r8, r5, r2, lsl #26 + 22d8: 00000000 andeq r0, r0, r0 + 22dc: 00015100 andeq r5, r1, r0, lsl #2 + 22e0: 000119d5 ldrdeq r1, [r1], -r5 + 22e4: 05000201 streq r0, [r0, #-513] + 22e8: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 22ec: 0100000e tsteq r0, lr + 22f0: 01010101 tsteq r1, r1, lsl #2 + 22f4: 01000100 tsteq r0, r0, lsl #2 + 22f8: d5010101 strle r0, [r1, #-257] + 22fc: 0300021b movweq r0, #539 ; 0x21b + 2300: cc060202 sfmgt f0, 4, [r6], {2} + 2304: 1b020117 blne 82768 + 2308: 01040308 tsteq r4, r8, lsl #6 + 230c: 1517c803 ldrne ip, [r7, #-2051] + 2310: 7e0a092a cdpvc 9, 0, cr0, cr10, cr10, {1} + 2314: 7c1b0606 ldcvc 6, cr0, [fp], {6} + 2318: 00000117 andeq r0, r0, r7, lsl r1 + 231c: 38d00001 ldmcc r0, {r0}^ + 2320: 00050040 andeq r0, r5, r0, asr #32 + 2324: 9d020000 stcls 0, cr0, [r2] + 2328: 01000066 tsteq r0, r6, rrx + 232c: 00402fbd strheq r2, [r0], #-253 + 2330: 00680802 rsbeq r0, r8, r2, lsl #16 + 2334: 23f50100 mvnscs r0, #0 ; 0x0 + 2338: 18020040 stmdane r2, {r6} + 233c: 00000069 andeq r0, r0, r9, rrx + 2340: 51000000 tstpl r0, r0 + 2344: 19d50001 ldmibne r5, {r0}^ + 2348: 02010001 andeq r0, r1, #1 ; 0x1 + 234c: 11780500 cmnne r8, r0, lsl #10 + 2350: 000e296c andeq r2, lr, ip, ror #18 + 2354: 01010100 tsteq r1, r0, lsl #2 + 2358: 01000101 tsteq r0, r1, lsl #2 + 235c: 01010100 tsteq r1, r0, lsl #2 + 2360: 0257d501 subseq sp, r7, #4194304 ; 0x400000 + 2364: 02025200 andeq r5, r2, #0 ; 0x0 + 2368: 0117eb08 tsteq r7, r8, lsl #22 + 236c: 03081418 movweq r1, #33816 ; 0x8418 + 2370: e7030104 str r0, [r3, -r4, lsl #2] + 2374: 032a1517 teqeq sl, #96468992 ; 0x5c00000 + 2378: 362c0601 strtcc r0, [ip], -r1, lsl #12 + 237c: 060a0ab8 undefined + 2380: 662a0e5e undefined + 2384: 29200630 stmdbcs r0!, {r4, r5, r9, sl} + 2388: 4a020d0e bmi 857c8 + 238c: 300c08eb andcc r0, ip, fp, ror #17 + 2390: 08291106 stmdaeq r9!, {r1, r2, r8, ip} + 2394: 14030c06 strne r0, [r3], #-3078 + 2398: 1b7c0677 blne 1f03d7c + 239c: 14040dc6 strne r0, [r4], #-3526 + 23a0: 300c0877 andcc r0, ip, r7, ror r8 + 23a4: 036d1706 cmneq sp, #1572864 ; 0x180000 + 23a8: 0a2a1001 beq a863b4 + 23ac: 0c060871 stceq 8, cr0, [r6], {113} + 23b0: 09771405 ldmdbeq r7!, {r0, r2, sl, ip}^ + 23b4: 1b02700a blne 9e3e4 + 23b8: 01513afd ldrsheq r3, [r1, #-173] + 23bc: 021dd51e andseq sp, sp, #125829120 ; 0x7800000 + 23c0: 03040100 movweq r0, #16640 ; 0x4100 + 23c4: 0117c008 tsteq r7, r8 + 23c8: 03081403 movweq r1, #33795 ; 0x8403 + 23cc: bc030104 stflts f0, [r3], {4} + 23d0: 062a1517 undefined + 23d4: 097c1b12 ldmdbeq ip!, {r1, r4, r8, r9, fp, ip}^ + 23d8: 1b1c7d0a blne 721808 + 23dc: d5240151 strle r0, [r4, #-337]! + 23e0: 2c000252 sfmcs f0, 4, [r0], {82} + 23e4: 94080306 strls r0, [r8], #-774 + 23e8: 01170118 tsteq r7, r8, lsl r1 + 23ec: 01040308 tsteq r4, r8, lsl #6 + 23f0: 15189003 ldrne r9, [r8, #-3] + 23f4: 1b14062a blne 503ca4 + 23f8: 020a097e andeq r0, sl, #2064384 ; 0x1f8000 + 23fc: 64297706 strtvs r7, [r9], #-1798 + 2400: 62510e05 subsvs r0, r1, #80 ; 0x50 + 2404: 7d057f0a stcvc 15, cr7, [r5, #-40] + 2408: 7d05c548 cfstr32vc mvfx12, [r5, #-288] + 240c: be510706 cdplt 7, 5, cr0, cr1, cr6, {0} + 2410: 10275d2f eorne r5, r7, pc, lsr #26 + 2414: 513b0b2c teqpl fp, ip, lsr #22 + 2418: 07300730 undefined + 241c: 0730a43d undefined + 2420: 0104a43d tsteq r4, sp, lsr r4 + 2424: 48441e06 stmdami r4, {r1, r2, r9, sl, fp, ip}^ + 2428: 01376206 teqeq r7, r6, lsl #4 + 242c: 066e0a09 strbteq r0, [lr], -r9, lsl #20 + 2430: a895446a ldmge r5, {r1, r3, r5, r6, sl, lr} + 2434: 01000000 tsteq r0, r0 + 2438: 40398800 eorsmi r8, r9, r0, lsl #16 + 243c: 00000200 andeq r0, r0, r0, lsl #4 + 2440: 6f340200 svcvs 0x00340200 + 2444: d9010000 stmdble r1, {} + 2448: 00000036 andeq r0, r0, r6, lsr r0 + 244c: 51000000 tstpl r0, r0 + 2450: 19d50001 ldmibne r5, {r0}^ + 2454: 02010001 andeq r0, r1, #1 ; 0x1 + 2458: 11780500 cmnne r8, r0, lsl #10 + 245c: 000e296c andeq r2, lr, ip, ror #18 + 2460: 01010100 tsteq r1, r0, lsl #2 + 2464: 01000101 tsteq r0, r1, lsl #2 + 2468: 01010100 tsteq r1, r0, lsl #2 + 246c: 0270d501 rsbseq sp, r0, #4194304 ; 0x400000 + 2470: 02024a00 andeq r4, r2, #0 ; 0x0 + 2474: 0112cb01 tsteq r2, r1, lsl #22 + 2478: 03081330 movweq r1, #33584 ; 0x8330 + 247c: c7030104 strgt r0, [r3, -r4, lsl #2] + 2480: 062a1512 undefined + 2484: 32f2510a rscscc r5, r2, #-2147483646 ; 0x80000002 + 2488: 30080a5b andcc r0, r8, fp, asr sl + 248c: 3bcd2eb2 blcc ff34df5c + 2490: 3b2116a6 blcc 847f30 + 2494: 22020d51 andcs r0, r2, #5184 ; 0x1440 + 2498: 300c0814 andcc r0, ip, r4, lsl r8 + 249c: 0a211606 beq 847cbc + 24a0: 24030308 strcs r0, [r3], #-776 + 24a4: 2eb63bfc vmovcs.u16 r3, d22[3] + 24a8: 3b211609 blcc 847cd4 + 24ac: 220408fb andcs r0, r4, #16449536 ; 0xfb0000 + 24b0: 300c0814 andcc r0, ip, r4, lsl r8 + 24b4: 0a211606 beq 847cd4 + 24b8: 2602030b strcs r0, [r2], -fp, lsl #6 + 24bc: 3fb83905 svccc 0x00b83905 + 24c0: dc5a074d mrrcle 7, 4, r0, sl, cr13 + 24c4: ca172215 bgt 5cad20 + 24c8: 7b067715 blvc 1a0124 + 24cc: 0408290e streq r2, [r8], #-2318 + 24d0: 0c081422 cfstrseq mvf1, [r8], {34} + 24d4: 21160630 tstcs r6, r0, lsr r6 + 24d8: 03610a09 cmneq r1, #36864 ; 0x9000 + 24dc: 12611f02 rsbne r1, r1, #8 ; 0x8 + 24e0: 01000001 tsteq r0, r1 + 24e4: 40338c00 eorsmi r8, r3, r0, lsl #24 + 24e8: 00000c00 andeq r0, r0, r0, lsl #24 + 24ec: 77b80200 ldrvc r0, [r8, r0, lsl #4]! + 24f0: f4020000 vst4.8 {d0-d3}, [r2], r0 + 24f4: 01000078 tsteq r0, r8, ror r0 + 24f8: 0000ff25 andeq pc, r0, r5, lsr #30 + 24fc: 00fee901 rscseq lr, lr, r1, lsl #18 + 2500: ffc50100 undefined instruction 0xffc50100 + 2504: 4d010000 stcmi 0, cr0, [r1] + 2508: 0100002c tsteq r0, ip, lsr #32 + 250c: 00002ccd andeq r2, r0, sp, asr #25 + 2510: 002f2101 eoreq r2, pc, r1, lsl #2 + 2514: 2e590100 rdfcse f0, f1, f0 + 2518: 71010000 tstvc r1, r0 + 251c: 0100002f tsteq r0, pc, lsr #32 + 2520: 00010798 muleq r1, r8, r7 + 2524: 002fb901 eoreq fp, pc, r1, lsl #18 + 2528: 00000000 andeq r0, r0, r0 + 252c: 00015100 andeq r5, r1, r0, lsl #2 + 2530: 000119d5 ldrdeq r1, [r1], -r5 + 2534: 05000201 streq r0, [r0, #-513] + 2538: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 253c: 0100000e tsteq r0, lr + 2540: 01010101 tsteq r1, r1, lsl #2 + 2544: 01000100 tsteq r0, r0, lsl #2 + 2548: d5010101 strle r0, [r1, #-257] + 254c: 000201a7 andeq r0, r2, r7, lsr #3 + 2550: 00020246 andeq r0, r2, r6, asr #4 + 2554: 520115d9 andpl r1, r1, #910163968 ; 0x36400000 + 2558: 04030801 streq r0, [r3], #-2049 + 255c: 15d50301 ldrbne r0, [r5, #769] + 2560: 04032a15 streq r2, [r3], #-2581 + 2564: 020d5643 andeq r5, sp, #70254592 ; 0x4300000 + 2568: 0c087714 stceq 7, cr7, [r8], {20} + 256c: 04060630 streq r0, [r6], #-1584 + 2570: f93d731b undefined instruction 0xf93d731b + 2574: 48447715 stmdami r4, {r0, r2, r4, r8, r9, sl, ip, sp, lr}^ + 2578: c61b7806 ldrgt r7, [fp], -r6, lsl #16 + 257c: 741b0406 ldrvc r0, [fp], #-1030 + 2580: b12f030d teqlt pc, sp, lsl #6 + 2584: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2588: 040dcf12 streq ip, [sp], #-3858 + 258c: 0c08b12f stfeqd f3, [r8], {47} + 2590: 290f0630 stmdbcs pc, {r4, r5, r9, sl} + 2594: 1422050d strtne r0, [r2], #-1293 + 2598: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 259c: 060d7915 undefined + 25a0: 0c08b12f stfeqd f3, [r8], {47} + 25a4: 78140630 ldmdavc r4, {r4, r5, r9, sl} + 25a8: b12f070d teqlt pc, sp, lsl #14 + 25ac: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 25b0: 78170303 ldmdavc r7, {r0, r1, r8, r9} + 25b4: b12f080d teqlt pc, sp, lsl #16 + 25b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 25bc: 090d2314 stmdbeq sp, {r2, r4, r8, r9, sp} + 25c0: 0c08b12f stfeqd f3, [r8], {47} + 25c4: 20190630 andscs r0, r9, r0, lsr r6 + 25c8: b22f5d2f eorlt r5, pc, #3008 ; 0xbc0 + 25cc: b12f0a0d teqlt pc, sp, lsl #20 + 25d0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 25d4: 77062303 strvc r2, [r6, -r3, lsl #6] + 25d8: 0b0d2c0e bleq 34d618 + 25dc: 0c081422 cfstrseq mvf1, [r8], {34} + 25e0: 29060630 stmdbcs r6, {r4, r5, r9, sl} + 25e4: 0c0d721b sfmeq f7, 4, [sp], {27} + 25e8: 0c08eb4a stceq 11, cr14, [r8], {74} + 25ec: 0a090630 beq 243eb4 + 25f0: 0e490656 mcreq 6, 2, r0, cr9, cr6, {2} + 25f4: 00006520 andeq r6, r0, r0, lsr #10 + 25f8: 18000100 stmdane r0, {r8} + 25fc: 01004034 tsteq r0, r4, lsr r0 + 2600: 02000000 andeq r0, r0, #0 ; 0x0 + 2604: 000078f4 strdeq r7, [r0], -r4 + 2608: 00000000 andeq r0, r0, r0 + 260c: d5000151 strle r0, [r0, #-337] + 2610: 01000119 tsteq r0, r9, lsl r1 + 2614: 78050002 stmdavc r5, {r1} + 2618: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 261c: 01010000 tsteq r1, r0 + 2620: 00010101 andeq r0, r1, r1, lsl #2 + 2624: 01010001 tsteq r1, r1 + 2628: 32d50101 sbcscc r0, r5, #1073741824 ; 0x40000000 + 262c: 02280002 eoreq r0, r8, #2 ; 0x2 + 2630: 16b20102 ldrtne r0, [r2], r2, lsl #2 + 2634: 08010e01 stmdaeq r1, {r0, r9, sl, fp} + 2638: 03010403 movweq r0, #5123 ; 0x1403 + 263c: 2a1516ae bcs 5480fc + 2640: 7e1b2606 cfmsub32vc mvax0, mvfx2, mvfx11, mvfx6 + 2644: e94d1874 stmdb sp, {r2, r4, r5, r6, fp, ip}^ + 2648: c021e056 eorgt lr, r1, r6, asr r0 + 264c: e6511306 ldrb r1, [r1], -r6, lsl #6 + 2650: 875aa53c smmlarhi sl, ip, r5, sl + 2654: 0a09a53c beq 26bb4c + 2658: 7fb40675 svcvc 0x00b40675 + 265c: 005f9344 subseq r9, pc, r4, asr #6 + 2660: 00020000 andeq r0, r2, r0 + 2664: 0040346c subeq r3, r0, ip, ror #8 + 2668: 00000001 andeq r0, r0, r1 + 266c: 007a0402 rsbseq r0, sl, r2, lsl #8 + 2670: 00000000 andeq r0, r0, r0 + 2674: 00000100 andeq r0, r0, r0, lsl #2 + 2678: 40347000 eorsmi r7, r4, r0 + 267c: 00015100 andeq r5, r1, r0, lsl #2 + 2680: 000119d5 ldrdeq r1, [r1], -r5 + 2684: 05000201 streq r0, [r0, #-513] + 2688: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 268c: 0100000e tsteq r0, lr + 2690: 01010101 tsteq r1, r1, lsl #2 + 2694: 01000100 tsteq r0, r0, lsl #2 + 2698: d5010101 strle r0, [r1, #-257] + 269c: 01000224 tsteq r0, r4, lsr #4 + 26a0: dc030202 sfmle f0, 4, [r3], {2} + 26a4: 18020116 stmdane r2, {r1, r2, r4, r8} + 26a8: 01040308 tsteq r4, r8, lsl #6 + 26ac: 1516d803 ldrne sp, [r6, #-2051] + 26b0: 1b03062a blne c3f60 + 26b4: 0500097c streq r0, [r0, #-2428] + 26b8: 01000104 tsteq r0, r4, lsl #2 + 26bc: 140b0811 strne r0, [fp], #-2065 + 26c0: 00004ccc andeq r4, r0, ip, asr #25 + 26c4: 6e000100 adfvss f0, f0, f0 + 26c8: 01004034 tsteq r0, r4, lsr r0 + 26cc: 02000000 andeq r0, r0, #0 ; 0x0 + 26d0: 00007b10 andeq r7, r0, r0, lsl fp + 26d4: 00000000 andeq r0, r0, r0 + 26d8: d5000151 strle r0, [r0, #-337] + 26dc: 01000119 tsteq r0, r9, lsl r1 + 26e0: 78050002 stmdavc r5, {r1} + 26e4: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 26e8: 01010000 tsteq r1, r0 + 26ec: 00010101 andeq r0, r1, r1, lsl #2 + 26f0: 01010001 tsteq r1, r1 + 26f4: 19d50101 ldmibne r5, {r0, r8}^ + 26f8: 02010002 andeq r0, r1, #2 ; 0x2 + 26fc: 16e80402 strbtne r0, [r8], r2, lsl #8 + 2700: 08010201 stmdaeq r1, {r0, r9} + 2704: 03010403 movweq r0, #5123 ; 0x1403 + 2708: 2a1516e4 bcs 5482a0 + 270c: 147e0a09 ldrbtne r0, [lr], #-2569 + 2710: 00007fce andeq r7, r0, lr, asr #31 + 2714: 70000100 andvc r0, r0, r0, lsl #2 + 2718: 02004034 andeq r4, r0, #52 ; 0x34 + 271c: 01000000 tsteq r0, r0 + 2720: 00403471 subeq r3, r0, r1, ror r4 + 2724: 007a0402 rsbseq r0, sl, r2, lsl #8 + 2728: 00000000 andeq r0, r0, r0 + 272c: 00015100 andeq r5, r1, r0, lsl #2 + 2730: 000119d5 ldrdeq r1, [r1], -r5 + 2734: 05000201 streq r0, [r0, #-513] + 2738: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 273c: 0100000e tsteq r0, lr + 2740: 01010101 tsteq r1, r1, lsl #2 + 2744: 01000100 tsteq r0, r0, lsl #2 + 2748: d5010101 strle r0, [r1, #-257] + 274c: 08000221 stmdaeq r0, {r0, r5, r9} + 2750: f3120002 vhadd.u16 d0, d2, d2 + 2754: 01030316 tsteq r3, r6, lsl r3 + 2758: ef030a08 svc 0x00030a08 + 275c: 1b040616 blne 103fbc + 2760: 44080683 strmi r0, [r8], #-1667 + 2764: 090d2a48 stmdbeq sp, {r3, r6, r9, fp, sp} + 2768: 73067c0a movwvc r7, #27658 ; 0x6c0a + 276c: 01515929 cmpeq r1, r9, lsr #18 + 2770: 0221d500 eoreq sp, r1, #0 ; 0x0 + 2774: 00030800 andeq r0, r3, r0, lsl #16 + 2778: 0316de11 tsteq r6, #272 ; 0x110 + 277c: 0a080103 beq 202b90 + 2780: 0616da03 ldreq sp, [r6], -r3, lsl #20 + 2784: 06831b04 streq r1, [r3], r4, lsl #22 + 2788: 2a484408 bcs 12137b0 + 278c: 7c0a090d stcvc 9, cr0, [sl], {13} + 2790: 59297306 stmdbpl r9!, {r1, r2, r8, r9, ip, sp, lr} + 2794: 00000079 andeq r0, r0, r9, ror r0 + 2798: 34800001 strcc r0, [r0], #1 + 279c: 00020040 andeq r0, r2, r0, asr #32 + 27a0: f8020000 undefined instruction 0xf8020000 + 27a4: 0100007c tsteq r0, ip, ror r0 + 27a8: 00003079 andeq r3, r0, r9, ror r0 + 27ac: 00000000 andeq r0, r0, r0 + 27b0: d5000151 strle r0, [r0, #-337] + 27b4: 01000119 tsteq r0, r9, lsl r1 + 27b8: 78050002 stmdavc r5, {r1} + 27bc: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 27c0: 01010000 tsteq r1, r0 + 27c4: 00010101 andeq r0, r1, r1, lsl #2 + 27c8: 01010001 tsteq r1, r1 + 27cc: 41d50101 bicsmi r0, r5, r1, lsl #2 + 27d0: 02230002 eoreq r0, r3, #2 ; 0x2 + 27d4: 179c0802 ldrne r0, [ip, r2, lsl #16] + 27d8: 08010e01 stmdaeq r1, {r0, r9, sl, fp} + 27dc: 03010403 movweq r0, #5123 ; 0x1403 + 27e0: 2a151798 bcs 548648 + 27e4: d5360205 ldrle r0, [r6, #-517]! + 27e8: 2441080a strbcs r0, [r1], #-2058 + 27ec: 7c06915a stfvcd f1, [r6], {90} + 27f0: 4d3f0037 ldcmi 0, cr0, [pc, #-220]! + 27f4: 2900cc06 stmdbcs r0, {r1, r2, sl, fp, lr, pc} + 27f8: 06020d0e streq r0, [r2], -lr, lsl #26 + 27fc: 0a22375d beq 890578 + 2800: 300c087a andcc r0, ip, sl, ror r8 + 2804: 7d0a0906 stcvc 9, cr0, [sl, #-24] + 2808: 85446c06 strbhi r6, [r4, #-3078] + 280c: 45750a09 ldrbmi r0, [r5, #-2569]! + 2810: 0000692b andeq r6, r0, fp, lsr #18 + 2814: 1c000200 sfmne f0, 4, [r0], {0} + 2818: 0100403a tsteq r0, sl, lsr r0 + 281c: 02000000 andeq r0, r0, #0 ; 0x0 + 2820: 0000817f andeq r8, r0, pc, ror r1 + 2824: 00000000 andeq r0, r0, r0 + 2828: 00000001 andeq r0, r0, r1 + 282c: 00403a80 subeq r3, r0, r0, lsl #21 + 2830: d5000151 strle r0, [r0, #-337] + 2834: 01000119 tsteq r0, r9, lsl r1 + 2838: 78050002 stmdavc r5, {r1} + 283c: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 2840: 01010000 tsteq r1, r0 + 2844: 00010101 andeq r0, r1, r1, lsl #2 + 2848: 01010001 tsteq r1, r1 + 284c: 2ed50101 cdpcs 1, 13, cr0, cr5, cr1, {0} + 2850: 020a0002 andeq r0, sl, #2 ; 0x2 + 2854: 13d20002 bicsne r0, r2, #2 ; 0x2 + 2858: 082a0501 stmdaeq sl!, {r0, r8, sl} + 285c: 03010403 movweq r0, #5123 ; 0x1403 + 2860: 2a1513ce bcs 5477a0 + 2864: 19290b06 stmdbne r9!, {r1, r2, r8, r9, fp} + 2868: b32ecc15 teqlt lr, #5376 ; 0x1500 + 286c: f83da33d undefined instruction 0xf83da33d + 2870: 00091f18 andeq r1, r9, r8, lsl pc + 2874: 00010405 andeq r0, r1, r5, lsl #8 + 2878: 0b080901 bleq 204c84 + 287c: 0084cc14 addeq ip, r4, r4, lsl ip + 2880: 00020000 andeq r0, r2, r0 + 2884: 00403a30 subeq r3, r0, r0, lsr sl + 2888: 00000002 andeq r0, r0, r2 + 288c: 00828f02 addeq r8, r2, r2, lsl #30 + 2890: 30ed0100 rsccc r0, sp, r0, lsl #2 + 2894: 00000040 andeq r0, r0, r0, asr #32 + 2898: 00010000 andeq r0, r1, r0 + 289c: 3a880000 bcc fe2028a4 + 28a0: 01510040 cmpeq r1, r0, asr #32 + 28a4: 0119d500 tsteq r9, r0, lsl #10 + 28a8: 00020100 andeq r0, r2, r0, lsl #2 + 28ac: 6c117805 ldcvs 8, cr7, [r1], {5} + 28b0: 00000e29 andeq r0, r0, r9, lsr #28 + 28b4: 01010101 tsteq r1, r1, lsl #2 + 28b8: 00010001 andeq r0, r1, r1 + 28bc: 01010101 tsteq r1, r1, lsl #2 + 28c0: 000244d5 ldrdeq r4, [r2], -r5 + 28c4: 0102020e tsteq r2, lr, lsl #4 + 28c8: 0c0113e0 stceq 3, cr1, [r1], {224} + 28cc: 04030814 streq r0, [r3], #-2068 + 28d0: 13dc0301 bicsne r0, ip, #67108864 ; 0x4000000 + 28d4: 030a2a15 movweq r2, #43541 ; 0xaa15 + 28d8: 09060103 stmdbeq r6, {r0, r1, r8} + 28dc: bd2f1b29 fstmdbxlt pc!, {d1-d20} + 28e0: 04050009 streq r0, [r5], #-9 + 28e4: 13010001 movwne r0, #4097 ; 0x1001 + 28e8: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} + 28ec: 020dc221 andeq ip, sp, #268435458 ; 0x10000002 + 28f0: 0c08dd58 stceq 13, cr13, [r8], {88} + 28f4: 21150630 tstcs r5, r0, lsr r6 + 28f8: 00091c12 andeq r1, r9, r2, lsl ip + 28fc: 00010405 andeq r0, r1, r5, lsl #8 + 2900: 0b081401 bleq 20790c + 2904: 006c6922 rsbeq r6, ip, r2, lsr #18 + 2908: 00020000 andeq r0, r2, r0 + 290c: 00000000 andeq r0, r0, r0 + 2910: 00000002 andeq r0, r0, r2 + 2914: 0083bb02 addeq fp, r3, r2, lsl #22 + 2918: 312d0100 teqcc sp, r0, lsl #2 + 291c: 00000040 andeq r0, r0, r0, asr #32 + 2920: 00010000 andeq r0, r1, r0 + 2924: 3a880000 bcc fe20292c + 2928: 01510040 cmpeq r1, r0, asr #32 + 292c: 0119d500 tsteq r9, r0, lsl #10 + 2930: 00020100 andeq r0, r2, r0, lsl #2 + 2934: 6c117805 ldcvs 8, cr7, [r1], {5} + 2938: 00000e29 andeq r0, r0, r9, lsr #28 + 293c: 01010101 tsteq r1, r1, lsl #2 + 2940: 00010001 andeq r0, r1, r1 + 2944: 01010101 tsteq r1, r1, lsl #2 + 2948: 00022cd5 ldrdeq r2, [r2], -r5 + 294c: 02020206 andeq r0, r2, #1610612736 ; 0x60000000 + 2950: 020113f5 andeq r1, r1, #-738197501 ; 0xd4000003 + 2954: 0403083f streq r0, [r3], #-2111 + 2958: 13f10301 mvnsne r0, #67108864 ; 0x4000000 + 295c: 2a062a15 bcs 18d1b8 + 2960: 020d1929 andeq r1, sp, #671744 ; 0xa4000 + 2964: 0c08d42f cfstrseq mvf13, [r8], {47} + 2968: 00090630 andeq r0, r9, r0, lsr r6 + 296c: 00010405 andeq r0, r1, r5, lsl #8 + 2970: 0b081501 bleq 207d7c + 2974: 0061cc14 rsbeq ip, r1, r4, lsl ip + 2978: 00020000 andeq r0, r2, r0 + 297c: 00403a54 subeq r3, r0, r4, asr sl + 2980: 00000001 andeq r0, r0, r1 + 2984: 0084c302 addeq ip, r4, r2, lsl #6 + 2988: 00000000 andeq r0, r0, r0 + 298c: 00000100 andeq r0, r0, r0, lsl #2 + 2990: 403a8400 eorsmi r8, sl, r0, lsl #8 + 2994: 00015100 andeq r5, r1, r0, lsl #2 + 2998: 000119d5 ldrdeq r1, [r1], -r5 + 299c: 05000201 streq r0, [r0, #-513] + 29a0: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 29a4: 0100000e tsteq r0, lr + 29a8: 01010101 tsteq r1, r1, lsl #2 + 29ac: 01000100 tsteq r0, r0, lsl #2 + 29b0: d5010101 strle r0, [r1, #-257] + 29b4: 08000226 stmdaeq r0, {r1, r2, r5, r9} + 29b8: 81030202 tsthi r3, r2, lsl #4 + 29bc: 2a030114 bcs c2e14 + 29c0: 01040308 tsteq r4, r8, lsl #6 + 29c4: 1513fd03 ldrne pc, [r3, #-3331] + 29c8: 2908062a stmdbcs r8, {r1, r3, r5, r9, sl} + 29cc: 09cc6a19 stmibeq ip, {r0, r3, r4, r9, fp, sp, lr}^ + 29d0: 01040500 tsteq r4, r0, lsl #10 + 29d4: 080b0100 stmdaeq fp, {r8} + 29d8: 7ecc140b cdpvc 4, 12, cr1, cr12, cr11, {0} + 29dc: 02000000 andeq r0, r0, #0 ; 0x0 + 29e0: 00000000 andeq r0, r0, r0 + 29e4: 00000200 andeq r0, r0, r0, lsl #4 + 29e8: 85ef0200 strbhi r0, [pc, #512]! ; 2bf0 <__USR_stack_size+0x23f0> + 29ec: 00010000 andeq r0, r1, r0 + 29f0: 00000000 andeq r0, r0, r0 + 29f4: 01000000 tsteq r0, r0 + 29f8: 88000000 stmdahi r0, {} + 29fc: 5100403a tstpl r0, sl, lsr r0 + 2a00: 19d50001 ldmibne r5, {r0}^ + 2a04: 02010001 andeq r0, r1, #1 ; 0x1 + 2a08: 11780500 cmnne r8, r0, lsl #10 + 2a0c: 000e296c andeq r2, lr, ip, ror #18 + 2a10: 01010100 tsteq r1, r0, lsl #2 + 2a14: 01000101 tsteq r0, r1, lsl #2 + 2a18: 01010100 tsteq r1, r0, lsl #2 + 2a1c: 023ed501 eorseq sp, lr, #4194304 ; 0x400000 + 2a20: 02020b00 andeq r0, r2, #0 ; 0x0 + 2a24: 01148e04 tsteq r4, r4, lsl #28 + 2a28: 03081e06 movweq r1, #36358 ; 0x8e06 + 2a2c: 8a030104 bhi c2e44 + 2a30: 0a2a1514 beq a87e88 + 2a34: 29090603 stmdbcs r9, {r0, r1, r9, sl} + 2a38: 09915a19 ldmibeq r1, {r0, r3, r4, r9, fp, ip, lr} + 2a3c: 01040500 tsteq r4, r0, lsl #10 + 2a40: 08160100 ldmdaeq r6, {r8} + 2a44: 2069220b rsbcs r2, r9, fp, lsl #4 + 2a48: 14020dc3 strne r0, [r2], #-3523 + 2a4c: 300c089a mulcc ip, sl, r8 + 2a50: 05000906 streq r0, [r0, #-2310] + 2a54: 01000104 tsteq r0, r4, lsl #2 + 2a58: 140b0817 strne r0, [fp], #-2071 + 2a5c: 000079cc andeq r7, r0, ip, asr #19 + 2a60: 64000200 strvs r0, [r0], #-512 + 2a64: 0100403a tsteq r0, sl, lsr r0 + 2a68: 02000000 andeq r0, r0, #0 ; 0x0 + 2a6c: 00008707 andeq r8, r0, r7, lsl #14 + 2a70: 00000000 andeq r0, r0, r0 + 2a74: 00000002 andeq r0, r0, r2 + 2a78: 00403a88 subeq r3, r0, r8, lsl #21 + 2a7c: 00403a80 subeq r3, r0, r0, lsl #21 + 2a80: d5000151 strle r0, [r0, #-337] + 2a84: 01000119 tsteq r0, r9, lsl r1 + 2a88: 78050002 stmdavc r5, {r1} + 2a8c: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 2a90: 01010000 tsteq r1, r0 + 2a94: 00010101 andeq r0, r1, r1, lsl #2 + 2a98: 01010001 tsteq r1, r1 + 2a9c: 3ad50101 bcc ff542ea8 + 2aa0: 020e0002 andeq r0, lr, #2 ; 0x2 + 2aa4: 149f0502 ldrne r0, [pc], #1282 ; 2aac <__USR_stack_size+0x22ac> + 2aa8: 082c0901 stmdaeq ip!, {r0, r8, fp} + 2aac: 03010403 movweq r0, #5123 ; 0x1403 + 2ab0: 2a15149b bcs 547d24 + 2ab4: 0806030a stmdaeq r6, {r1, r3, r8, r9} + 2ab8: ae3d1a29 faddsge s2, s26, s19 + 2abc: 04050009 streq r0, [r5], #-9 + 2ac0: 18010001 stmdane r1, {r0} + 2ac4: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} + 2ac8: cf676f24 svcgt 0x00676f24 + 2acc: 0009b031 andeq fp, r9, r1, lsr r0 + 2ad0: 01010405 tsteq r1, r5, lsl #8 + 2ad4: 0b080a01 bleq 2052e0 + 2ad8: 009dcc14 addseq ip, sp, r4, lsl ip + 2adc: 00020000 andeq r0, r2, r0 + 2ae0: 00403a80 subeq r3, r0, r0, lsl #21 + 2ae4: 00000002 andeq r0, r0, r2 + 2ae8: 00870702 addeq r0, r7, r2, lsl #14 + 2aec: 817f0200 cmnhi pc, r0, lsl #4 + 2af0: 00000000 andeq r0, r0, r0 + 2af4: 00010000 andeq r0, r1, r0 + 2af8: 3a840000 bcc fe102b00 + 2afc: 01510040 cmpeq r1, r0, asr #32 + 2b00: 0119d500 tsteq r9, r0, lsl #10 + 2b04: 00020100 andeq r0, r2, r0, lsl #2 + 2b08: 6c117805 ldcvs 8, cr7, [r1], {5} + 2b0c: 00000e29 andeq r0, r0, r9, lsr #28 + 2b10: 01010101 tsteq r1, r1, lsl #2 + 2b14: 00010001 andeq r0, r1, r1 + 2b18: 01010101 tsteq r1, r1, lsl #2 + 2b1c: 00022cd5 ldrdeq r2, [r2], -r5 + 2b20: 0a000202 beq 3330 + 2b24: 000614a8 andeq r1, r6, r8, lsr #9 + 2b28: 030a082c movweq r0, #43052 ; 0xa82c + 2b2c: 180614a4 stmdane r6, {r2, r5, r7, sl, ip} + 2b30: 0009921b andeq r9, r9, fp, lsl r2 + 2b34: 00010405 andeq r0, r1, r5, lsl #8 + 2b38: 0b080e01 bleq 206344 + 2b3c: 00096922 andeq r6, r9, r2, lsr #18 + 2b40: 00010405 andeq r0, r1, r5, lsl #8 + 2b44: 0b081c01 bleq 209b50 + 2b48: 01516922 cmpeq r1, r2, lsr #18 + 2b4c: 022cd500 eoreq sp, ip, #0 ; 0x0 + 2b50: 00030200 andeq r0, r3, r0, lsl #4 + 2b54: 0313d709 tsteq r3, #2359296 ; 0x240000 + 2b58: 0a082a00 beq 20d360 + 2b5c: 0613d303 ldreq sp, [r3], -r3, lsl #6 + 2b60: 09831b16 stmibeq r3, {r1, r2, r4, r8, r9, fp, ip} + 2b64: 01040500 tsteq r4, r0, lsl #10 + 2b68: 080d0100 stmdaeq sp, {r8} + 2b6c: 0969220b stmdbeq r9!, {r0, r1, r3, r9, sp}^ + 2b70: 01040500 tsteq r4, r0, lsl #10 + 2b74: 081b0100 ldmdaeq fp, {r8} + 2b78: 1669220b strbtne r2, [r9], -fp, lsl #4 + 2b7c: 02000001 andeq r0, r0, #1 ; 0x1 + 2b80: 403a8400 eorsmi r8, sl, r0, lsl #8 + 2b84: 00000400 andeq r0, r0, r0, lsl #8 + 2b88: 817f0200 cmnhi pc, r0, lsl #4 + 2b8c: 07020000 streq r0, [r2, -r0] + 2b90: 01000087 smlabbeq r0, r7, r0, r0 + 2b94: 0040239b umaaleq r2, r0, fp, r3 + 2b98: 0084c302 addeq ip, r4, r2, lsl #6 + 2b9c: 00000000 andeq r0, r0, r0 + 2ba0: 00000100 andeq r0, r0, r0, lsl #2 + 2ba4: 403a8800 eorsmi r8, sl, r0, lsl #16 + 2ba8: 00015100 andeq r5, r1, r0, lsl #2 + 2bac: 000119d5 ldrdeq r1, [r1], -r5 + 2bb0: 05000401 streq r0, [r0, #-1025] + 2bb4: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 2bb8: 0100000e tsteq r0, lr + 2bbc: 01010101 tsteq r1, r1, lsl #2 + 2bc0: 01000100 tsteq r0, r0, lsl #2 + 2bc4: d5010101 strle r0, [r1, #-257] + 2bc8: 01000220 tsteq r0, r0, lsr #4 + 2bcc: d71b0002 ldrle r0, [fp, -r2] + 2bd0: 2a000313 bcs 3824 + 2bd4: d3030a08 movwle r0, #14856 ; 0x3a08 + 2bd8: 1b160613 blne 58442c + 2bdc: 05000983 streq r0, [r0, #-2435] + 2be0: 01000104 tsteq r0, r4, lsl #2 + 2be4: 220b081d andcs r0, fp, #1900544 ; 0x1d0000 + 2be8: 00015169 andeq r5, r1, r9, ror #2 + 2bec: 000220d5 ldrdeq r2, [r2], -r5 + 2bf0: 1c000301 stcne 3, cr0, [r0], {1} + 2bf4: 000614a8 andeq r1, r6, r8, lsr #9 + 2bf8: 030a082c movweq r0, #43052 ; 0xa82c + 2bfc: 180614a4 stmdane r6, {r2, r5, r7, sl, ip} + 2c00: 0009921b andeq r9, r9, fp, lsl r2 + 2c04: 00010405 andeq r0, r1, r5, lsl #8 + 2c08: 0b081e01 bleq 20a414 + 2c0c: 01516922 cmpeq r1, r2, lsr #18 + 2c10: 0228d500 eoreq sp, r8, #0 ; 0x0 + 2c14: 00030100 andeq r0, r3, r0, lsl #2 + 2c18: 0614a80e ldreq sl, [r4], -lr, lsl #16 + 2c1c: 0a082c00 beq 20dc24 + 2c20: 0614a403 ldreq sl, [r4], -r3, lsl #8 + 2c24: 0d921b18 vldreq d1, [r2, #96] + 2c28: 089a1403 ldmeq sl, {r0, r1, sl, ip} + 2c2c: 0969220c stmdbeq r9!, {r2, r3, r9, sp}^ + 2c30: 01040500 tsteq r4, r0, lsl #10 + 2c34: 08120100 ldmdaeq r2, {r8} + 2c38: 51cc140b bicpl r1, ip, fp, lsl #8 + 2c3c: 28d50001 ldmcs r5, {r0}^ + 2c40: 02010002 andeq r0, r1, #2 ; 0x2 + 2c44: 13d70d00 bicsne r0, r7, #0 ; 0x0 + 2c48: 082a0003 stmdaeq sl!, {r0, r1} + 2c4c: 13d3030a bicsne r0, r3, #671088640 ; 0x28000000 + 2c50: 831b1606 tsthi fp, #6291456 ; 0x600000 + 2c54: 9a14030d bls 503890 + 2c58: 69220c08 stmdbvs r2!, {r3, sl, fp} + 2c5c: 04050009 streq r0, [r5], #-9 + 2c60: 11010001 tstne r1, r1 + 2c64: cc140b08 ldcgt 11, cr0, [r4], {8} + 2c68: d5000151 strle r0, [r0, #-337] + 2c6c: 01000228 tsteq r0, r8, lsr #4 + 2c70: 840b0005 strhi r0, [fp], #-5 + 2c74: 2a000314 bcs 38cc + 2c78: 80030a08 andhi r0, r3, r8, lsl #20 + 2c7c: 1b160614 blne 5844d4 + 2c80: 14030d83 strne r0, [r3], #-3459 + 2c84: 220c089a andcs r0, ip, #10092544 ; 0x9a0000 + 2c88: 05000969 streq r0, [r0, #-2409] + 2c8c: 01000104 tsteq r0, r4, lsl #2 + 2c90: 140b0810 strne r0, [fp], #-2064 + 2c94: 000082cc andeq r8, r0, ip, asr #5 + 2c98: 8e000200 cdphi 2, 0, cr0, cr0, cr0, {0} + 2c9c: 0200403a andeq r4, r0, #58 ; 0x3a + 2ca0: 02000000 andeq r0, r0, #0 ; 0x0 + 2ca4: 000089db ldrdeq r8, [r0], -fp + 2ca8: 403dc901 eorsmi ip, sp, r1, lsl #18 + 2cac: 00000000 andeq r0, r0, r0 + 2cb0: 00000100 andeq r0, r0, r0, lsl #2 + 2cb4: 403a8800 eorsmi r8, sl, r0, lsl #16 + 2cb8: 00015100 andeq r5, r1, r0, lsl #2 + 2cbc: 000119d5 ldrdeq r1, [r1], -r5 + 2cc0: 05000201 streq r0, [r0, #-513] + 2cc4: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 2cc8: 0100000e tsteq r0, lr + 2ccc: 01010101 tsteq r1, r1, lsl #2 + 2cd0: 01000100 tsteq r0, r0, lsl #2 + 2cd4: d5010101 strle r0, [r1, #-257] + 2cd8: 0a000242 beq 35e8 + 2cdc: c8070202 stmdagt r7, {r1, r9} + 2ce0: 14090114 strne r0, [r9], #-276 + 2ce4: 01040308 tsteq r4, r8, lsl #6 + 2ce8: 1514c403 ldrne ip, [r4, #-1027] + 2cec: 06030a2a streq r0, [r3], -sl, lsr #20 + 2cf0: 311a2905 tstcc sl, r5, lsl #18 + 2cf4: 05000910 streq r0, [r0, #-2320] + 2cf8: 01000104 tsteq r0, r4, lsl #2 + 2cfc: 220b0819 andcs r0, fp, #1638400 ; 0x190000 + 2d00: 0d112869 ldceq 8, cr2, [r1, #-420] + 2d04: 08142202 ldmdaeq r4, {r1, r9, sp} + 2d08: 0606300c streq r3, [r6], -ip + 2d0c: 09200e7b stmdbeq r0!, {r0, r1, r3, r4, r5, r6, r9, sl, fp} + 2d10: 01040500 tsteq r4, r0, lsl #10 + 2d14: 081a0100 ldmdaeq sl, {r8} + 2d18: 5e69220b cdppl 2, 6, cr2, cr9, cr11, {0} + 2d1c: 01000000 tsteq r0, r0 + 2d20: 403e7000 eorsmi r7, lr, r0 + 2d24: 00000100 andeq r0, r0, r0, lsl #2 + 2d28: 8bd60200 blhi ff583530 + 2d2c: 00000000 andeq r0, r0, r0 + 2d30: 01510000 cmpeq r1, r0 + 2d34: 0119d500 tsteq r9, r0, lsl #10 + 2d38: 00020100 andeq r0, r2, r0, lsl #2 + 2d3c: 6c117805 ldcvs 8, cr7, [r1], {5} + 2d40: 00000e29 andeq r0, r0, r9, lsr #28 + 2d44: 01010101 tsteq r1, r1, lsl #2 + 2d48: 00010001 andeq r0, r1, r1 + 2d4c: 01010101 tsteq r1, r1, lsl #2 + 2d50: 00022bd5 ldrdeq r2, [r2], -r5 + 2d54: 00020214 andeq r0, r2, r4, lsl r2 + 2d58: 0c0104b9 cfstrseq mvf0, [r1], {185} + 2d5c: 04030801 streq r0, [r3], #-2049 + 2d60: 04b50301 ldrteq r0, [r5], #769 + 2d64: 17062a15 smladne r6, r5, sl, r2 + 2d68: a6477d1b undefined + 2d6c: 05067f0a streq r7, [r6, #-3850] + 2d70: 7e06c036 mcrvc 0, 0, ip, cr6, cr6, {1} + 2d74: 0a09e436 beq 27be54 + 2d78: 3671067a undefined + 2d7c: 000075f6 strdeq r7, [r0], -r6 + 2d80: 60000200 andvs r0, r0, r0, lsl #4 + 2d84: 02004009 andeq r4, r0, #9 ; 0x9 + 2d88: 02000000 andeq r0, r0, #0 ; 0x0 + 2d8c: 000099f7 strdeq r9, [r0], -r7 + 2d90: 40348101 eorsmi r8, r4, r1, lsl #2 + 2d94: 00000000 andeq r0, r0, r0 + 2d98: 00000100 andeq r0, r0, r0, lsl #2 + 2d9c: 400e4c00 andmi r4, lr, r0, lsl #24 + 2da0: 00015100 andeq r5, r1, r0, lsl #2 + 2da4: 000119d5 ldrdeq r1, [r1], -r5 + 2da8: 05000201 streq r0, [r0, #-513] + 2dac: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 2db0: 0100000e tsteq r0, lr + 2db4: 01010101 tsteq r1, r1, lsl #2 + 2db8: 01000100 tsteq r0, r0, lsl #2 + 2dbc: d5010101 strle r0, [r1, #-257] + 2dc0: 12000235 andne r0, r0, #1342177283 ; 0x50000003 + 2dc4: ab000202 blge 35d4 + 2dc8: 01090147 tsteq r9, r7, asr #2 + 2dcc: 01040308 tsteq r4, r8, lsl #6 + 2dd0: 00c7a703 sbceq sl, r7, r3, lsl #14 + 2dd4: 02062a15 andeq r2, r6, #86016 ; 0x15000 + 2dd8: de582429 cdple 4, 5, cr2, cr8, cr9, {1} + 2ddc: b031ef47 eorslt lr, r1, r7, asr #30 + 2de0: 1422020d strtne r0, [r2], #-525 + 2de4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2de8: 00096b0f andeq r6, r9, pc, lsl #22 + 2dec: 00010405 andeq r0, r1, r5, lsl #8 + 2df0: 0b082401 bleq 20bdfc + 2df4: 0060cc14 rsbeq ip, r0, r4, lsl ip + 2df8: 00020000 andeq r0, r2, r0 + 2dfc: 00400984 subeq r0, r0, r4, lsl #19 + 2e00: 00000001 andeq r0, r0, r1 + 2e04: 009b1b02 addseq r1, fp, r2, lsl #22 + 2e08: 00000000 andeq r0, r0, r0 + 2e0c: 00000100 andeq r0, r0, r0, lsl #2 + 2e10: 4009a800 andmi sl, r9, r0, lsl #16 + 2e14: 00015100 andeq r5, r1, r0, lsl #2 + 2e18: 000119d5 ldrdeq r1, [r1], -r5 + 2e1c: 05000201 streq r0, [r0, #-513] + 2e20: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 2e24: 0100000e tsteq r0, lr + 2e28: 01010101 tsteq r1, r1, lsl #2 + 2e2c: 01000100 tsteq r0, r0, lsl #2 + 2e30: d5010101 strle r0, [r1, #-257] + 2e34: 04000225 streq r0, [r0], #-549 + 2e38: b6010202 strlt r0, [r1], -r2, lsl #4 + 2e3c: 21020147 tstcs r2, r7, asr #2 + 2e40: 01040308 tsteq r4, r8, lsl #6 + 2e44: 00c7b203 sbceq fp, r7, r3, lsl #4 + 2e48: 0c062a15 stceq 10, cr2, [r6], {21} + 2e4c: 0009d436 andeq sp, r9, r6, lsr r4 + 2e50: 00010405 andeq r0, r1, r5, lsl #8 + 2e54: 0b081701 bleq 208a60 + 2e58: 00796922 rsbseq r6, r9, r2, lsr #18 + 2e5c: 00020000 andeq r0, r2, r0 + 2e60: 0040098c subeq r0, r0, ip, lsl #19 + 2e64: 00000002 andeq r0, r0, r2 + 2e68: 009c3302 addseq r3, ip, r2, lsl #6 + 2e6c: 99f70200 ldmibls r7!, {r9}^ + 2e70: 00000000 andeq r0, r0, r0 + 2e74: 00010000 andeq r0, r1, r0 + 2e78: 09a80000 stmibeq r8!, {} + 2e7c: 01510040 cmpeq r1, r0, asr #32 + 2e80: 0119d500 tsteq r9, r0, lsl #10 + 2e84: 00020100 andeq r0, r2, r0, lsl #2 + 2e88: 6c117805 ldcvs 8, cr7, [r1], {5} + 2e8c: 00000e29 andeq r0, r0, r9, lsr #28 + 2e90: 01010101 tsteq r1, r1, lsl #2 + 2e94: 00010001 andeq r0, r1, r1 + 2e98: 01010101 tsteq r1, r1, lsl #2 + 2e9c: 000239d5 ldrdeq r3, [r2], -r5 + 2ea0: 0202020e andeq r0, r2, #-536870912 ; 0xe0000000 + 2ea4: 040147bc streq r4, [r1], #-1980 + 2ea8: 04030821 streq r0, [r3], #-2081 + 2eac: c7b80301 ldrgt r0, [r8, r1, lsl #6]! + 2eb0: 062a1500 strteq r1, [sl], -r0, lsl #10 + 2eb4: 0dd4360d ldcleq 6, cr3, [r4, #52] + 2eb8: 08142202 ldmdaeq r4, {r1, r9, sp} + 2ebc: 1506300c strne r3, [r6, #-12] + 2ec0: 3d040822 stccc 8, cr0, [r4, #-136] + 2ec4: 300c084e andcc r0, ip, lr, asr #16 + 2ec8: 09cd1406 stmibeq sp, {r1, r2, sl, ip}^ + 2ecc: 01040500 tsteq r4, r0, lsl #10 + 2ed0: 08180100 ldmdaeq r8, {r8} + 2ed4: a2404b0b subge r4, r0, #11264 ; 0x2c00 + 2ed8: 01000000 tsteq r0, r0 + 2edc: 4009a800 andmi sl, r9, r0, lsl #16 + 2ee0: 00000300 andeq r0, r0, r0, lsl #6 + 2ee4: 9c330200 lfmls f0, 4, [r3] + 2ee8: f7020000 undefined instruction 0xf7020000 + 2eec: 02000099 andeq r0, r0, #153 ; 0x99 + 2ef0: 00009b1b andeq r9, r0, fp, lsl fp + 2ef4: 00000000 andeq r0, r0, r0 + 2ef8: d5000151 strle r0, [r0, #-337] + 2efc: 01000119 tsteq r0, r9, lsl r1 + 2f00: 78050002 stmdavc r5, {r1} + 2f04: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 2f08: 01010000 tsteq r1, r0 + 2f0c: 00010101 andeq r0, r1, r1, lsl #2 + 2f10: 01010001 tsteq r1, r1 + 2f14: 30d50101 sbcscc r0, r5, r1, lsl #2 + 2f18: 020a0002 andeq r0, sl, #2 ; 0x2 + 2f1c: 47c01800 strbmi r1, [r0, r0, lsl #16] + 2f20: 08010209 stmdaeq r1, {r0, r3, r9} + 2f24: c7bc030a ldrgt r0, [ip, sl, lsl #6]! + 2f28: 06010500 streq r0, [r1], -r0, lsl #10 + 2f2c: 0d9c1b0d vldreq d1, [ip, #52] + 2f30: 08771402 ldmdaeq r7!, {r1, sl, ip}^ + 2f34: 1306300c movwne r3, #24588 ; 0x600c + 2f38: 2f040879 svccs 0x00040879 + 2f3c: 300c08b1 strhcc r0, [ip], -r1 + 2f40: 790a0906 stmdbvc sl, {r1, r2, r8, fp} + 2f44: 010e7a06 tsteq lr, r6, lsl #20 + 2f48: d5000151 strle r0, [r0, #-337] + 2f4c: 0a000230 beq 3814 + 2f50: b8170004 ldmdalt r7, {r2} + 2f54: 01020947 tsteq r2, r7, asr #18 + 2f58: b4030a08 strlt r0, [r3], #-2568 + 2f5c: 010500c7 smlabteq r5, r7, r0, r0 + 2f60: 9c1b0d06 ldcls 13, cr0, [fp], {6} + 2f64: 7714020d ldrvc r0, [r4, -sp, lsl #4] + 2f68: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2f6c: 04087913 streq r7, [r8], #-2323 + 2f70: 0c08b12f stfeqd f3, [r8], {47} + 2f74: 0a090630 beq 24483c + 2f78: 0e7a0679 mrceq 6, 3, r0, cr10, cr9, {3} + 2f7c: 0000d201 andeq sp, r0, r1, lsl #4 + 2f80: bc000200 sfmlt f0, 4, [r0], {0} + 2f84: 04004009 streq r4, [r0], #-9 + 2f88: 02000000 andeq r0, r0, #0 ; 0x0 + 2f8c: 00009e2f andeq r9, r0, pc, lsr #28 + 2f90: 40348101 eorsmi r8, r4, r1, lsl #2 + 2f94: 9b1b0200 blls 6c379c + 2f98: 33020000 movwcc r0, #8192 ; 0x2000 + 2f9c: 0000009c muleq r0, ip, r0 + 2fa0: 01000000 tsteq r0, r0 + 2fa4: 70000000 andvc r0, r0, r0 + 2fa8: 51004012 tstpl r0, r2, lsl r0 + 2fac: 19d50001 ldmibne r5, {r0}^ + 2fb0: 02010001 andeq r0, r1, #1 ; 0x1 + 2fb4: 11780500 cmnne r8, r0, lsl #10 + 2fb8: 000e296c andeq r2, lr, ip, ror #18 + 2fbc: 01010100 tsteq r1, r0, lsl #2 + 2fc0: 01000101 tsteq r0, r1, lsl #2 + 2fc4: 01010100 tsteq r1, r0, lsl #2 + 2fc8: 0187d501 orreq sp, r7, r1, lsl #10 + 2fcc: 02360002 eorseq r0, r6, #2 ; 0x2 + 2fd0: 47c50302 strbmi r0, [r5, r2, lsl #6] + 2fd4: 08030e02 stmdaeq r3, {r1, r9, sl, fp} + 2fd8: c7c10303 strbgt r0, [r1, r3, lsl #6] + 2fdc: 1b1a0600 blne 6847e4 + 2fe0: 0611057e undefined + 2fe4: 0d724438 cfldrdeq mvd4, [r2, #-224]! + 2fe8: 08142202 ldmdaeq r4, {r1, r9, sp} + 2fec: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 2ff0: 7e05100a cdpvc 0, 0, cr1, cr5, cr10, {0} + 2ff4: 0e7fb606 cdpeq 6, 7, cr11, cr15, cr6, {0} + 2ff8: 6b040a01 blvs 105804 + 2ffc: 0d744049 ldcleq 0, cr4, [r4, #-292]! + 3000: 084e3d03 stmdaeq lr, {r0, r1, r8, sl, fp, ip, sp}^ + 3004: 1106300c tstne r6, ip + 3008: 22020dfe andcs r0, r2, #16256 ; 0x3f80 + 300c: 300c0814 andcc r0, ip, r4, lsl r8 + 3010: 0dc91806 stcleq 8, cr1, [r9, #24] + 3014: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 3018: 0a06300c beq 18f050 + 301c: 4ed01104 cdpmi 1, 13, cr1, cr0, cr4, {0} + 3020: 22020dbb andcs r0, r2, #11968 ; 0x2ec0 + 3024: 300c0814 andcc r0, ip, r4, lsl r8 + 3028: 12790306 rsbsne r0, r9, #402653184 ; 0x18000000 + 302c: 05710a3d ldrbeq r0, [r1, #-2621]! + 3030: 037d3b7f cmneq sp, #130048 ; 0x1fc00 + 3034: 4a7c0505 bmi 1f04450 + 3038: 220408c7 andcs r0, r4, #13041664 ; 0xc70000 + 303c: 300c0814 andcc r0, ip, r4, lsl r8 + 3040: 067a0506 ldrbteq r0, [sl], -r6, lsl #10 + 3044: 09010e75 stmdbeq r1, {r0, r2, r4, r5, r6, r9, sl, fp} + 3048: 01040500 tsteq r4, r0, lsl #10 + 304c: 08250100 stmdaeq r5!, {r8} + 3050: 7fcc140b svcvc 0x00cc140b + 3054: 01000000 tsteq r0, r0 + 3058: 400a2800 andmi r2, sl, r0, lsl #16 + 305c: 00000300 andeq r0, r0, r0, lsl #6 + 3060: 9f770200 svcls 0x00770200 + 3064: b7020000 strlt r0, [r2, -r0] + 3068: 020000a0 andeq r0, r0, #160 ; 0xa0 + 306c: 0000a2df ldrdeq sl, [r0], -pc + 3070: 00000000 andeq r0, r0, r0 + 3074: d5000151 strle r0, [r0, #-337] + 3078: 01000119 tsteq r0, r9, lsl r1 + 307c: 78050002 stmdavc r5, {r1} + 3080: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 3084: 01010000 tsteq r1, r0 + 3088: 00010101 andeq r0, r1, r1, lsl #2 + 308c: 01010001 tsteq r1, r1 + 3090: 42d50101 sbcsmi r0, r5, #1073741824 ; 0x40000000 + 3094: 02160002 andseq r0, r6, #2 ; 0x2 + 3098: 47e10402 strbmi r0, [r1, r2, lsl #8]! + 309c: 08200f01 stmdaeq r0!, {r0, r8, r9, sl, fp} + 30a0: 03010403 movweq r0, #5123 ; 0x1403 + 30a4: 1500c7dd strne ip, [r0, #-2013] + 30a8: 0603032a streq r0, [r3], -sl, lsr #6 + 30ac: 3db8360c ldccc 6, cr3, [r8, #48]! + 30b0: 1a5b30a3 bne 16cf344 + 30b4: 3006301d andcc r3, r6, sp, lsl r0 + 30b8: 3d7d0f5b ldclcc 15, cr0, [sp, #-364]! + 30bc: 12be22a3 adcsne r2, lr, #805306378 ; 0x3000000a + 30c0: 14020d7b strne r0, [r2], #-3451 + 30c4: 300c0877 andcc r0, ip, r7, ror r8 + 30c8: 0d291606 stceq 6, cr1, [r9, #-24]! + 30cc: 09771403 ldmdbeq r7!, {r0, r1, sl, ip}^ + 30d0: 0c087e0a stceq 14, cr7, [r8], {10} + 30d4: 03700630 cmneq r0, #50331648 ; 0x3000000 + 30d8: 00020000 andeq r0, r2, r0 + 30dc: 00400a58 subeq r0, r0, r8, asr sl + 30e0: 0000001e andeq r0, r0, lr, lsl r0 + 30e4: 00a0b702 adceq fp, r0, r2, lsl #14 + 30e8: fe9d0100 cdp2 1, 9, cr0, cr13, cr0, {0} + 30ec: 25010000 strcs r0, [r1] + 30f0: 010000ff strdeq r0, [r0, -pc] + 30f4: 0000fee9 andeq pc, r0, r9, ror #29 + 30f8: 00ffc501 rscseq ip, pc, r1, lsl #10 + 30fc: 3ec90100 polcce f0, f1, f0 + 3100: c8010000 stmdagt r1, {} + 3104: 01000107 tsteq r0, r7, lsl #2 + 3108: 000107e0 andeq r0, r1, r0, ror #15 + 310c: 40338d01 eorsmi r8, r3, r1, lsl #26 + 3110: 34810100 strcc r0, [r1], #256 + 3114: 2f020040 svccs 0x00020040 + 3118: 0100009e swpeq r0, lr, [r0] + 311c: 00403e71 subeq r3, r0, r1, ror lr + 3120: 4038d101 eorsmi sp, r8, r1, lsl #2 + 3124: 3ca50100 stfccs f0, [r5] + 3128: 98010040 stmdals r1, {r6} + 312c: 01000107 tsteq r0, r7, lsl #2 + 3130: 00010780 andeq r0, r1, r0, lsl #15 + 3134: 40360901 eorsmi r0, r6, r1, lsl #18 + 3138: 3cf10100 ldfcce f0, [r1] + 313c: 3b020040 blcc 83244 + 3140: 010000b5 strheq r0, [r0, -r5] + 3144: 00401965 subeq r1, r0, r5, ror #18 + 3148: 40398901 eorsmi r8, r9, r1, lsl #18 + 314c: 3a8f0100 bcc fe3c3554 + 3150: 31010040 tstcc r1, r0, asr #32 + 3154: 0200403a andeq r4, r0, #58 ; 0x3a + 3158: 0000b947 andeq fp, r0, r7, asr #18 + 315c: 4020a501 eormi sl, r0, r1, lsl #10 + 3160: 1b570100 blne 15c3568 + 3164: 63020040 movwvs r0, #8256 ; 0x2040 + 3168: 010000ad smlatbeq r0, sp, r0, r0 + 316c: 00403d85 subeq r3, r0, r5, lsl #27 + 3170: 00aff302 adceq pc, pc, r2, lsl #6 + 3174: b16f0200 cmnlt pc, r0, lsl #4 + 3178: 00000000 andeq r0, r0, r0 + 317c: 00010000 andeq r0, r1, r0 + 3180: 12740000 rsbsne r0, r4, #0 ; 0x0 + 3184: 01510040 cmpeq r1, r0, asr #32 + 3188: 0119d500 tsteq r9, r0, lsl #10 + 318c: 00020100 andeq r0, r2, r0, lsl #2 + 3190: 6c117805 ldcvs 8, cr7, [r1], {5} + 3194: 00000e29 andeq r0, r0, r9, lsr #28 + 3198: 01010101 tsteq r1, r1, lsl #2 + 319c: 00010001 andeq r0, r1, r1 + 31a0: 01010101 tsteq r1, r1, lsl #2 + 31a4: 0205a3d5 andeq sl, r5, #1409286147 ; 0x54000003 + 31a8: 0201fa00 andeq pc, r1, #0 ; 0x0 + 31ac: 48810502 stmmi r1, {r1, r8, sl} + 31b0: 08016201 stmdaeq r1, {r0, r9, sp, lr} + 31b4: 03010403 movweq r0, #5123 ; 0x1403 + 31b8: 1500c7fd strne ip, [r0, #-2045] + 31bc: 290b062a stmdbcs fp, {r1, r3, r5, r9, sl} + 31c0: 22a33d1b adccs r3, r3, #1728 ; 0x6c0 + 31c4: 30cc1469 sbccc r1, ip, r9, ror #8 + 31c8: 30692206 rsbcc r2, r9, r6, lsl #4 + 31cc: 29692206 stmdbcs r9!, {r1, r2, r9, sp}^ + 31d0: 14020db8 strne r0, [r2], #-3512 + 31d4: 300c0877 andcc r0, ip, r7, ror r8 + 31d8: 1b210606 blne 8449f8 + 31dc: 2f030d72 svccs 0x00030d72 + 31e0: 300c08b1 strhcc r0, [ip], -r1 + 31e4: 0dd11006 ldcleq 0, cr1, [r1, #24] + 31e8: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 31ec: 0f06300c svceq 0x0006300c + 31f0: 22050d28 andcs r0, r5, #2560 ; 0xa00 + 31f4: 300c0814 andcc r0, ip, r4, lsl r8 + 31f8: 1b040606 blne 104a18 + 31fc: 2f030d72 svccs 0x00030d72 + 3200: 300c08b1 strhcc r0, [ip], -r1 + 3204: 0d241306 stceq 3, cr1, [r4, #-24]! + 3208: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 320c: 0f06300c svceq 0x0006300c + 3210: 22050d28 andcs r0, r5, #2560 ; 0xa00 + 3214: 300c0814 andcc r0, ip, r4, lsl r8 + 3218: 1b040606 blne 104a38 + 321c: 2f030d72 svccs 0x00030d72 + 3220: 300c08b1 strhcc r0, [ip], -r1 + 3224: 0d791306 ldcleq 3, cr1, [r9, #-24]! + 3228: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 322c: 0f06300c svceq 0x0006300c + 3230: 22050d28 andcs r0, r5, #2560 ; 0xa00 + 3234: 300c0814 andcc r0, ip, r4, lsl r8 + 3238: 1b0e0606 blne 384a58 + 323c: 2f060d72 svccs 0x00060d72 + 3240: 300c08b1 strhcc r0, [ip], -r1 + 3244: 087b1106 ldmdaeq fp!, {r1, r2, r8, ip}^ + 3248: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 324c: 1606300c strne r3, [r6], -ip + 3250: 2f040821 svccs 0x00040821 + 3254: 300c08b1 strhcc r0, [ip], -r1 + 3258: 08231406 stmdaeq r3!, {r1, r2, sl, ip} + 325c: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 3260: 0606300c streq r3, [r6], -ip + 3264: 0d2a0e70 stceq 14, cr0, [sl, #-448]! + 3268: 08771407 ldmdaeq r7!, {r0, r1, r2, sl, ip}^ + 326c: 1506300c strne r3, [r6, #-12] + 3270: 14080d22 strne r0, [r8], #-3362 + 3274: 300c0877 andcc r0, ip, r7, ror r8 + 3278: 0d751806 ldcleq 8, cr1, [r5, #-24]! + 327c: 08b12f09 ldmeq r1!, {r0, r3, r8, r9, sl, fp, sp} + 3280: 1806300c stmdane r6, {r2, r3, ip, sp} + 3284: 2f0a0dcc svccs 0x000a0dcc + 3288: 300c08b1 strhcc r0, [ip], -r1 + 328c: 08261206 stmdaeq r6!, {r1, r2, r9, ip} + 3290: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 3294: 2f06300c svccs 0x0006300c + 3298: 140b0d5d strne r0, [fp], #-3421 + 329c: 300c0877 andcc r0, ip, r7, ror r8 + 32a0: 0dce1806 stcleq 8, cr1, [lr, #24] + 32a4: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} + 32a8: 2d06300c stccs 0, cr3, [r6, #-48] + 32ac: 140b0d05 strne r0, [fp], #-3333 + 32b0: 300c0877 andcc r0, ip, r7, ror r8 + 32b4: 0dca1706 stcleq 7, cr1, [sl, #24] + 32b8: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} + 32bc: 2d06300c stccs 0, cr3, [r6, #-48] + 32c0: 140b0db4 strne r0, [fp], #-3508 + 32c4: 300c0877 andcc r0, ip, r7, ror r8 + 32c8: 0dce1306 stcleq 3, cr1, [lr, #24] + 32cc: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} + 32d0: 1606300c strne r3, [r6], -ip + 32d4: 3d0b0d76 stccc 13, cr0, [fp, #-472] + 32d8: 300c084e andcc r0, ip, lr, asr #16 + 32dc: 0dd21906 ldcleq 9, cr1, [r2, #24] + 32e0: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} + 32e4: 1006300c andne r3, r6, ip + 32e8: 3d0b0dc7 stccc 13, cr0, [fp, #-796] + 32ec: 300c084e andcc r0, ip, lr, asr #16 + 32f0: 0d291006 stceq 0, cr1, [r9, #-24]! + 32f4: 0877140c ldmdaeq r7!, {r2, r3, sl, ip}^ + 32f8: 1606300c strne r3, [r6], -ip + 32fc: 140d0d76 strne r0, [sp], #-3446 + 3300: 300c0877 andcc r0, ip, r7, ror r8 + 3304: 0d211606 stceq 6, cr1, [r1, #-24]! + 3308: 0877140e ldmdaeq r7!, {r1, r2, r3, sl, ip}^ + 330c: 1706300c strne r3, [r6, -ip] + 3310: 2f090d1c svccs 0x00090d1c + 3314: 300c08b1 strhcc r0, [ip], -r1 + 3318: 0dce1806 stcleq 8, cr1, [lr, #24] + 331c: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} + 3320: 1206300c andne r3, r6, #12 ; 0xc + 3324: 2f04087b svccs 0x0004087b + 3328: 300c08b1 strhcc r0, [ip], -r1 + 332c: 0d231406 cfstrseq mvf1, [r3, #-24]! + 3330: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} + 3334: 1806300c stmdane r6, {r2, r3, ip, sp} + 3338: 2f0a0dce svccs 0x000a0dce + 333c: 300c08b1 strhcc r0, [ip], -r1 + 3340: 0dcb1106 stfeqe f1, [fp, #24] + 3344: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} + 3348: 1706300c strne r3, [r6, -ip] + 334c: 2f0a0dca svccs 0x000a0dca + 3350: 300c08b1 strhcc r0, [ip], -r1 + 3354: 0d7a1206 lfmeq f1, 2, [sl, #-24]! + 3358: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} + 335c: 1306300c movwne r3, #24588 ; 0x600c + 3360: 2f0a0dce svccs 0x000a0dce + 3364: 300c08b1 strhcc r0, [ip], -r1 + 3368: 0d761606 ldcleq 6, cr1, [r6, #-24]! + 336c: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} + 3370: 1906300c stmdbne r6, {r2, r3, ip, sp} + 3374: 2f0a0dd2 svccs 0x000a0dd2 + 3378: 300c08b1 strhcc r0, [ip], -r1 + 337c: 0dc71006 stcleq 0, cr1, [r7, #24] + 3380: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} + 3384: 1106300c tstne r6, ip + 3388: 220f0d28 andcs r0, pc, #2560 ; 0xa00 + 338c: 300c0814 andcc r0, ip, r4, lsl r8 + 3390: 0d221506 cfstr32eq mvfx1, [r2, #-24]! + 3394: 08142210 ldmdaeq r4, {r4, r9, sp} + 3398: 1306300c movwne r3, #24588 ; 0x600c + 339c: 14110dcf ldrne r0, [r1], #-3535 + 33a0: 300c0877 andcc r0, ip, r7, ror r8 + 33a4: 0dce1506 cfstr64eq mvdx1, [lr, #24] + 33a8: 08771412 ldmdaeq r7!, {r1, r4, sl, ip}^ + 33ac: 1406300c strne r3, [r6], #-12 + 33b0: 14130d7a ldrne r0, [r3], #-3450 + 33b4: 300c0877 andcc r0, ip, r7, ror r8 + 33b8: 0d231506 cfstr32eq mvfx1, [r3, #-24]! + 33bc: 08771414 ldmdaeq r7!, {r2, r4, sl, ip}^ + 33c0: 0606300c streq r3, [r6], -ip + 33c4: 731b00c5 tstvc fp, #197 ; 0xc5 + 33c8: 4e3d150d cdpmi 5, 3, cr1, cr13, cr13, {0} + 33cc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 33d0: 61060303 tstvs r6, r3, lsl #6 + 33d4: 160d2c0e strne r2, [sp], -lr, lsl #24 + 33d8: 0c083222 sfmeq f3, 4, [r8], {34} + 33dc: 01180630 tsteq r8, r0, lsr r6 + 33e0: 1422170d strtne r1, [r2], #-1805 + 33e4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 33e8: 290e7c06 stmdbcs lr, {r1, r2, sl, fp, ip, sp, lr} + 33ec: 7714180d ldrvc r1, [r4, -sp, lsl #16] + 33f0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 33f4: 190d7717 stmdbne sp, {r0, r1, r2, r4, r8, r9, sl, ip, sp, lr} + 33f8: 0c081422 cfstrseq mvf1, [r8], {34} + 33fc: d30e0630 movwle r0, #58928 ; 0xe630 + 3400: 77141a0d ldrvc r1, [r4, -sp, lsl #20] + 3404: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3408: 1b0d7319 blne 360074 + 340c: 0c08b12f stfeqd f3, [r8], {47} + 3410: 280f0630 stmdacs pc, {r4, r5, r9, sl} + 3414: b12f1c0d teqlt pc, sp, lsl #24 + 3418: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 341c: 1d0d721a sfmne f7, 4, [sp, #-104] + 3420: 0c08b12f stfeqd f3, [r8], {47} + 3424: 7b110630 blvc 444cec + 3428: 77141a0d ldrvc r1, [r4, -sp, lsl #20] + 342c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3430: 1e0d721a mcrne 2, 0, r7, cr13, cr10, {0} + 3434: 0c081422 cfstrseq mvf1, [r8], {34} + 3438: 71060630 tstvc r6, r0, lsr r6 + 343c: 0009200e andeq r2, r9, lr + 3440: 00010405 andeq r0, r1, r5, lsl #8 + 3444: 0b082601 bleq 20cc50 + 3448: 005d6922 subseq r6, sp, r2, lsr #18 + 344c: 00010000 andeq r0, r1, r0 + 3450: 00400c50 subeq r0, r0, r0, asr ip + 3454: 00000001 andeq r0, r0, r1 + 3458: 00a1cb02 adceq ip, r1, r2, lsl #22 + 345c: 00000000 andeq r0, r0, r0 + 3460: 00015100 andeq r5, r1, r0, lsl #2 + 3464: 000119d5 ldrdeq r1, [r1], -r5 + 3468: 05000201 streq r0, [r0, #-513] + 346c: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 3470: 0100000e tsteq r0, lr + 3474: 01010101 tsteq r1, r1, lsl #2 + 3478: 01000100 tsteq r0, r0, lsl #2 + 347c: d5010101 strle r0, [r1, #-257] + 3480: 1400022a strne r0, [r0], #-554 + 3484: ec060202 sfm f0, 4, [r6], {2} + 3488: 010b0148 tsteq fp, r8, asr #2 + 348c: 01040308 tsteq r4, r8, lsl #6 + 3490: 00c8e803 sbceq lr, r8, r3, lsl #16 + 3494: 030a2a15 movweq r2, #43541 ; 0xaa15 + 3498: 7c1b2206 lfmvc f2, 4, [fp], {6} + 349c: 7e06ce73 mcrvc 14, 0, ip, cr6, cr3, {3} + 34a0: 0a099d44 beq 26a9b8 + 34a4: 0602037b undefined + 34a8: dcef3675 stclle 6, cr3, [pc], #468 + 34ac: 01000001 tsteq r0, r1 + 34b0: 400c7800 andmi r7, ip, r0, lsl #16 + 34b4: 00000c00 andeq r0, r0, r0, lsl #24 + 34b8: a2df0200 sbcsge r0, pc, #0 ; 0x0 + 34bc: 29010000 stmdbcs r1, {} + 34c0: 02004024 andeq r4, r0, #36 ; 0x24 + 34c4: 0000abaf andeq sl, r0, pc, lsr #23 + 34c8: 00bbd702 adcseq sp, fp, r2, lsl #14 + 34cc: ba5f0200 blt 17c3cd4 + 34d0: 57020000 strpl r0, [r2, -r0] + 34d4: 010000b6 strheq r0, [r0, -r6] + 34d8: 00401b57 subeq r1, r0, r7, asr fp + 34dc: 00b16f02 adcseq r6, r1, r2, lsl #30 + 34e0: 3a310100 bcc c438e8 + 34e4: a5010040 strge r0, [r1, #-64] + 34e8: 01004020 tsteq r0, r0, lsr #32 + 34ec: 00403a55 subeq r3, r0, r5, asr sl + 34f0: 403a1d01 eorsmi r1, sl, r1, lsl #26 + 34f4: 00000000 andeq r0, r0, r0 + 34f8: 00015100 andeq r5, r1, r0, lsl #2 + 34fc: 000119d5 ldrdeq r1, [r1], -r5 + 3500: 05000201 streq r0, [r0, #-513] + 3504: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 3508: 0100000e tsteq r0, lr + 350c: 01010101 tsteq r1, r1, lsl #2 + 3510: 01000100 tsteq r0, r0, lsl #2 + 3514: d5010101 strle r0, [r1, #-257] + 3518: 000202f1 strdeq r0, [r2], -r1 + 351c: 020201d6 andeq r0, r2, #-2147483595 ; 0x80000035 + 3520: 0148fe07 cmppeq r8, r7, lsl #28 + 3524: 080101aa stmdaeq r1, {r1, r3, r5, r7, r8} + 3528: 03010403 movweq r0, #5123 ; 0x1403 + 352c: 1500c8fa strne ip, [r0, #-2298] + 3530: 3607062a strcc r0, [r7], -sl, lsr #12 + 3534: 14020db8 strne r0, [r2], #-3512 + 3538: 300c0895 mulcc ip, r5, r8 + 353c: 17050a06 strne r0, [r5, -r6, lsl #20] + 3540: 2ef74a02 fconstscs s9, #114 + 3544: 14030d09 strne r0, [r3], #-3337 + 3548: 300c0877 andcc r0, ip, r7, ror r8 + 354c: 030a0a06 movweq r0, #43526 ; 0xaa06 + 3550: 1b03060a blne c4d80 + 3554: 45090a74 strmi r0, [r9, #-2676] + 3558: 34a24aa7 strtcc r4, [r2], #2727 + 355c: 22040d03 andcs r0, r4, #192 ; 0xc0 + 3560: 300c0814 andcc r0, ip, r4, lsl r8 + 3564: 17040a06 strne r0, [r4, -r6, lsl #20] + 3568: 0d484f20 stcleq 15, cr4, [r8, #-128] + 356c: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + 3570: 0a06300c beq 18f5a8 + 3574: 1401030c strne r0, [r1], #-780 + 3578: 3a9e4e08 bcc fe796da0 + 357c: 52040352 andpl r0, r4, #1207959553 ; 0x48000001 + 3580: 14060d3d strne r0, [r6], #-3389 + 3584: 300c0877 andcc r0, ip, r7, ror r8 + 3588: 0d271106 stfeqs f1, [r7, #-24]! + 358c: 08771407 ldmdaeq r7!, {r0, r1, r2, sl, ip}^ + 3590: 1a06300c bne 18f5c8 + 3594: 22080d72 andcs r0, r8, #7296 ; 0x1c80 + 3598: 300c0814 andcc r0, ip, r4, lsl r8 + 359c: 180e0a06 stmdane lr, {r1, r2, r9, fp} + 35a0: 0a01416d beq 53b5c + 35a4: 447f0602 ldrbtmi r0, [pc], #1538 ; 35ac + 35a8: 020a099d andeq r0, sl, #2572288 ; 0x274000 + 35ac: 0d2d053d cfstr32eq mvfx0, [sp, #-244]! + 35b0: a2360d06 eorsge r0, r6, #384 ; 0x180 + 35b4: 1422090d strtne r0, [r2], #-2317 + 35b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 35bc: 2a0e7006 bcs 39f5dc + 35c0: 7714070d ldrvc r0, [r4, -sp, lsl #14] + 35c4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 35c8: 080d721a stmdaeq sp, {r1, r3, r4, r9, ip, sp, lr} + 35cc: 0c081422 cfstrseq mvf1, [r8], {34} + 35d0: 0b0a0630 bleq 284e98 + 35d4: 9e4e6d18 mcrls 13, 2, r6, cr14, cr8, {0} + 35d8: 5438020a ldrtpl r0, [r8], #-522 + 35dc: 3a020a09 bcc 85e08 + 35e0: 2f0c2e08 svccs 0x000c2e08 + 35e4: 14070d00 strne r0, [r7], #-3328 + 35e8: 300c0877 andcc r0, ip, r7, ror r8 + 35ec: 0d721a06 fldmdbseq r2!, {s3-s8} + 35f0: 08142208 ldmdaeq r4, {r3, r9, sp} + 35f4: 0a06300c beq 18f62c + 35f8: 416c1908 cmnmi ip, r8, lsl #18 + 35fc: 44020a01 strmi r0, [r2], #-2561 + 3600: 020a099d andeq r0, sl, #2572288 ; 0x274000 + 3604: b42f053d strtlt r0, [pc], #1341 ; 360c + 3608: 0a0dfe30 beq 382ed0 + 360c: 0c081422 cfstrseq mvf1, [r8], {34} + 3610: 020a0630 andeq r0, sl, #50331648 ; 0x3000000 + 3614: 0e0a080a cdpeq 8, 0, cr0, cr10, cr10, {0} + 3618: bf0a130a svclt 0x000a130a + 361c: 0601037f undefined + 3620: 09220e7f stmdbeq r2!, {r0, r1, r2, r3, r4, r5, r6, r9, sl, fp} + 3624: a37fbe0a cmnge pc, #160 ; 0xa0 + 3628: 06010300 streq r0, [r1], -r0, lsl #6 + 362c: 74ae3607 strtvc r3, [lr], #1543 + 3630: 527b066d rsbspl r0, fp, #114294784 ; 0x6d00000 + 3634: 3da43d3a stccc 13, cr3, [r4, #232]! + 3638: b80a09a4 stmdalt sl, {r2, r5, r7, r8, fp} + 363c: 0a503d7f beq 1412c40 + 3640: 02037fb7 andeq r7, r3, #732 ; 0x2dc + 3644: 43a9c673 undefined instruction 0x43a9c673 + 3648: 0b0dad34 bleq 36eb20 + 364c: 0c08b12f stfeqd f3, [r8], {47} + 3650: 0a090630 beq 244f18 + 3654: 79137fb2 ldmdbvc r3, {r1, r4, r5, r7, r8, r9, sl, fp, ip, sp, lr} + 3658: 0303020a movweq r0, #12810 ; 0x320a + 365c: 96ab572e strtls r5, [fp], lr, lsr #14 + 3660: 2d7faf0a ldclcs 15, cr10, [pc, #-40]! + 3664: 095a3dab ldmdbeq sl, {r0, r1, r3, r5, r7, r8, sl, fp, ip, sp}^ + 3668: 347fad0a ldrbtcc sl, [pc], #3338 ; 3670 + 366c: 03050aad movweq r0, #23213 ; 0x5aad + 3670: 99582d03 ldmdbls r8, {r0, r1, r8, sl, fp, sp}^ + 3674: 0d5b31a8 ldfeqe f3, [fp, #-672] + 3678: 0814220c ldmdaeq r4, {r2, r3, r9, sp} + 367c: 1706300c strne r3, [r6, -ip] + 3680: a60a096c strge r0, [sl], -ip, ror #18 + 3684: 060b037f undefined + 3688: 71a11b6a undefined instruction 0x71a11b6a + 368c: 02000000 andeq r0, r0, #0 ; 0x0 + 3690: 400e2400 andmi r2, lr, r0, lsl #8 + 3694: 00000200 andeq r0, r0, r0, lsl #4 + 3698: a4b70200 ldrtge r0, [r7], #512 + 369c: 85010000 strhi r0, [r1] + 36a0: 0000403d andeq r4, r0, sp, lsr r0 + 36a4: 01000000 tsteq r0, r0 + 36a8: 48000000 stmdami r0, {} + 36ac: 5100400e tstpl r0, lr + 36b0: 19d50001 ldmibne r5, {r0}^ + 36b4: 02010001 andeq r0, r1, #1 ; 0x1 + 36b8: 11780500 cmnne r8, r0, lsl #10 + 36bc: 000e296c andeq r2, lr, ip, ror #18 + 36c0: 01010100 tsteq r1, r0, lsl #2 + 36c4: 01000101 tsteq r0, r1, lsl #2 + 36c8: 01010100 tsteq r1, r0, lsl #2 + 36cc: 0231d501 eorseq sp, r1, #4194304 ; 0x400000 + 36d0: 02020a00 andeq r0, r2, #0 ; 0x0 + 36d4: 014ab008 cmpeq sl, r8 + 36d8: 03083503 movweq r3, #34051 ; 0x8503 + 36dc: ac030104 stfges f0, [r3], {4} + 36e0: 2a1500ca bcs 543a10 + 36e4: 19290206 stmdbne r9!, {r1, r2, r9} + 36e8: 1422020d strtne r0, [r2], #-525 + 36ec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 36f0: 711b0b06 tstvc fp, r6, lsl #22 + 36f4: 04050009 streq r0, [r5], #-9 + 36f8: 19010001 stmdbne r1, {r0} + 36fc: a33d0b08 teqge sp, #8192 ; 0x2000 + 3700: 00000071 andeq r0, r0, r1, ror r0 + 3704: 0e380002 cdpeq 0, 3, cr0, cr8, cr2, {0} + 3708: 00020040 andeq r0, r2, r0, asr #32 + 370c: d3020000 movwle r0, #8192 ; 0x2000 + 3710: 010000a5 smlatbeq r0, r5, r0, r0 + 3714: 00403d85 subeq r3, r0, r5, lsl #27 + 3718: 00000000 andeq r0, r0, r0 + 371c: 00000001 andeq r0, r0, r1 + 3720: 00400e48 subeq r0, r0, r8, asr #28 + 3724: d5000151 strle r0, [r0, #-337] + 3728: 01000119 tsteq r0, r9, lsl r1 + 372c: 78050002 stmdavc r5, {r1} + 3730: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 3734: 01010000 tsteq r1, r0 + 3738: 00010101 andeq r0, r1, r1, lsl #2 + 373c: 01010001 tsteq r1, r1 + 3740: 31d50101 bicscc r0, r5, r1, lsl #2 + 3744: 02080002 andeq r0, r8, #2 ; 0x2 + 3748: 4abc0902 bmi fef05b58 + 374c: 082f0301 stmdaeq pc!, {r0, r8, r9} + 3750: 03010403 movweq r0, #5123 ; 0x1403 + 3754: 1500cab8 strne ip, [r0, #-2744] + 3758: 2902062a stmdbcs r2, {r1, r3, r5, r9, sl} + 375c: 22020d19 andcs r0, r2, #1600 ; 0x640 + 3760: 300c0814 andcc r0, ip, r4, lsl r8 + 3764: 1b050606 blne 144f84 + 3768: 05000971 streq r0, [r0, #-2417] + 376c: 01000104 tsteq r0, r4, lsl #2 + 3770: 4b0b081a blmi 2c57e0 + 3774: 0000ed40 andeq lr, r0, r0, asr #26 + 3778: 48000200 stmdami r0, {r9} + 377c: 0400400e streq r4, [r0], #-14 + 3780: 02000000 andeq r0, r0, #0 ; 0x0 + 3784: 0000a8d7 ldrdeq sl, [r0], -r7 + 3788: 00a7c702 adceq ip, r7, r2, lsl #14 + 378c: a5d30200 ldrbge r0, [r3, #512] + 3790: b7020000 strlt r0, [r2, -r0] + 3794: 000000a4 andeq r0, r0, r4, lsr #1 + 3798: 01000000 tsteq r0, r0 + 379c: 4c000000 stcmi 0, cr0, [r0], {0} + 37a0: 5100400e tstpl r0, lr + 37a4: 19d50001 ldmibne r5, {r0}^ + 37a8: 02010001 andeq r0, r1, #1 ; 0x1 + 37ac: 11780500 cmnne r8, r0, lsl #10 + 37b0: 000e296c andeq r2, lr, ip, ror #18 + 37b4: 01010100 tsteq r1, r0, lsl #2 + 37b8: 01000101 tsteq r0, r1, lsl #2 + 37bc: 01010100 tsteq r1, r0, lsl #2 + 37c0: 0225d501 eoreq sp, r5, #4194304 ; 0x400000 + 37c4: 00020200 andeq r0, r2, r0, lsl #4 + 37c8: 034ad71c movteq sp, #42780 ; 0xa71c + 37cc: 0a080101 beq 203bd8 + 37d0: 00cad303 sbceq sp, sl, r3, lsl #6 + 37d4: 831b1e06 tsthi fp, #96 ; 0x60 + 37d8: 59296306 stmdbpl r9!, {r1, r2, r8, r9, sp, lr} + 37dc: 04050009 streq r0, [r5], #-9 + 37e0: 21010001 tstcs r1, r1 + 37e4: cc140b08 ldcgt 11, cr0, [r4], {8} + 37e8: d5000151 strle r0, [r0, #-337] + 37ec: 02000225 andeq r0, r0, #1342177282 ; 0x50000002 + 37f0: cb1b0003 blgt 6c3804 + 37f4: 0101034a tsteq r1, sl, asr #6 + 37f8: c7030a08 strgt r0, [r3, -r8, lsl #20] + 37fc: 1b0600ca blne 183b2c + 3800: 6606831b undefined + 3804: 00095929 andeq r5, r9, r9, lsr #18 + 3808: 00010405 andeq r0, r1, r5, lsl #8 + 380c: 0b082001 bleq 20b818 + 3810: 0151cc14 cmpeq r1, r4, lsl ip + 3814: 0225d500 eoreq sp, r5, #0 ; 0x0 + 3818: 00040200 andeq r0, r4, r0, lsl #4 + 381c: 034abf1a movteq fp, #44826 ; 0xaf1a + 3820: 0a080101 beq 203c2c + 3824: 00cabb03 sbceq fp, sl, r3, lsl #22 + 3828: 831b1b06 tsthi fp, #6144 ; 0x1800 + 382c: 59296606 stmdbpl r9!, {r1, r2, r9, sl, sp, lr} + 3830: 04050009 streq r0, [r5], #-9 + 3834: 1f010001 svcne 0x00010001 + 3838: cc140b08 ldcgt 11, cr0, [r4], {8} + 383c: d5000151 strle r0, [r0, #-337] + 3840: 02000225 andeq r0, r0, #1342177282 ; 0x50000002 + 3844: b3190005 tstlt r9, #5 ; 0x5 + 3848: 0101034a tsteq r1, sl, asr #6 + 384c: af030a08 svcge 0x00030a08 + 3850: 210600ca smlabtcs r6, sl, r0, r0 + 3854: 6006831b andvs r8, r6, fp, lsl r3 + 3858: 00095929 andeq r5, r9, r9, lsr #18 + 385c: 00010405 andeq r0, r1, r5, lsl #8 + 3860: 0b081e01 bleq 20b06c + 3864: 0071cc14 rsbseq ip, r1, r4, lsl ip + 3868: 00020000 andeq r0, r2, r0 + 386c: 00400e58 subeq r0, r0, r8, asr lr + 3870: 00000002 andeq r0, r0, r2 + 3874: 00a7c702 adceq ip, r7, r2, lsl #14 + 3878: 3d850100 stfccs f0, [r5] + 387c: 00000040 andeq r0, r0, r0, asr #32 + 3880: 00010000 andeq r0, r1, r0 + 3884: 0e480000 cdpeq 0, 4, cr0, cr8, cr0, {0} + 3888: 01510040 cmpeq r1, r0, asr #32 + 388c: 0119d500 tsteq r9, r0, lsl #10 + 3890: 00020100 andeq r0, r2, r0, lsl #2 + 3894: 6c117805 ldcvs 8, cr7, [r1], {5} + 3898: 00000e29 andeq r0, r0, r9, lsr #28 + 389c: 01010101 tsteq r1, r1, lsl #2 + 38a0: 00010001 andeq r0, r1, r1 + 38a4: 01010101 tsteq r1, r1, lsl #2 + 38a8: 000231d5 ldrdeq r3, [r2], -r5 + 38ac: 0a02020a beq 840dc + 38b0: 03014ac8 movweq r4, #6856 ; 0x1ac8 + 38b4: 0403082f streq r0, [r3], #-2095 + 38b8: cac40301 bgt ff1044c4 + 38bc: 062a1500 strteq r1, [sl], -r0, lsl #10 + 38c0: 0d192902 ldceq 9, cr2, [r9, #-8] + 38c4: 08142202 ldmdaeq r4, {r1, r9, sp} + 38c8: 0606300c streq r3, [r6], -ip + 38cc: 09711b05 ldmdbeq r1!, {r0, r2, r8, r9, fp, ip}^ + 38d0: 01040500 tsteq r4, r0, lsl #10 + 38d4: 081b0100 ldmdaeq fp, {r8} + 38d8: 71a33d0b undefined instruction 0x71a33d0b + 38dc: 02000000 andeq r0, r0, #0 ; 0x0 + 38e0: 400e6c00 andmi r6, lr, r0, lsl #24 + 38e4: 00000200 andeq r0, r0, r0, lsl #4 + 38e8: a8d70200 ldmge r7, {r9}^ + 38ec: 85010000 strhi r0, [r1] + 38f0: 0000403d andeq r4, r0, sp, lsr r0 + 38f4: 01000000 tsteq r0, r0 + 38f8: 48000000 stmdami r0, {} + 38fc: 5100400e tstpl r0, lr + 3900: 19d50001 ldmibne r5, {r0}^ + 3904: 02010001 andeq r0, r1, #1 ; 0x1 + 3908: 11780500 cmnne r8, r0, lsl #10 + 390c: 000e296c andeq r2, lr, ip, ror #18 + 3910: 01010100 tsteq r1, r0, lsl #2 + 3914: 01000101 tsteq r0, r1, lsl #2 + 3918: 01010100 tsteq r1, r0, lsl #2 + 391c: 0231d501 eorseq sp, r1, #4194304 ; 0x400000 + 3920: 02020a00 andeq r0, r2, #0 ; 0x0 + 3924: 014ad40b cmpeq sl, fp, lsl #8 + 3928: 03083203 movweq r3, #33283 ; 0x8203 + 392c: d0030104 andle r0, r3, r4, lsl #2 + 3930: 2a1500ca bcs 543c60 + 3934: 19290206 stmdbne r9!, {r1, r2, r9} + 3938: 1422020d strtne r0, [r2], #-525 + 393c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3940: 711b0806 tstvc fp, r6, lsl #16 + 3944: 04050009 streq r0, [r5], #-9 + 3948: 1c010001 stcne 0, cr0, [r1], {1} + 394c: a33d0b08 teqge sp, #8192 ; 0x2000 + 3950: 000000be strheq r0, [r0], -lr + 3954: 0e800001 cdpeq 0, 8, cr0, cr0, cr1, {0} + 3958: 00010040 andeq r0, r1, r0, asr #32 + 395c: eb020000 bl 83964 + 3960: 000000a9 andeq r0, r0, r9, lsr #1 + 3964: 51000000 tstpl r0, r0 + 3968: 19d50001 ldmibne r5, {r0}^ + 396c: 02010001 andeq r0, r1, #1 ; 0x1 + 3970: 11780500 cmnne r8, r0, lsl #10 + 3974: 000e296c andeq r2, lr, ip, ror #18 + 3978: 01010100 tsteq r1, r0, lsl #2 + 397c: 01000101 tsteq r0, r1, lsl #2 + 3980: 01010100 tsteq r1, r0, lsl #2 + 3984: 018ad501 orreq sp, sl, r1, lsl #10 + 3988: 01ae0002 undefined instruction 0x01ae0002 + 398c: e10c0202 tst ip, r2, lsl #4 + 3990: 1e48014a dvfneem f0, f0, #2.0 + 3994: 01040308 tsteq r4, r8, lsl #6 + 3998: 00cadd03 sbceq sp, sl, r3, lsl #26 + 399c: 030a2a15 movweq r2, #43541 ; 0xaa15 + 39a0: 0f0a090a svceq 0x000a090a + 39a4: 1e0a1b0a fmacdne d1, d10, d10 + 39a8: 06060103 streq r0, [r6], -r3, lsl #2 + 39ac: 03061b29 movweq r1, #27433 ; 0x6b29 + 39b0: 0a09e3be beq 27c8b0 + 39b4: 03e0561c mvneq r5, #29360128 ; 0x1c00000 + 39b8: 12043601 andne r3, r4, #1048576 ; 0x100000 + 39bc: 841cc5cf ldrhi ip, [ip], #-1487 + 39c0: 09cf12b2 stmibeq pc, {r1, r4, r5, r7, r9, ip}^ + 39c4: 72c4160a sbcvc r1, r4, #10485760 ; 0xa00000 + 39c8: b2320203 eorslt r0, r2, #805306368 ; 0x30000000 + 39cc: 71c5cf12 bicvc ip, r5, r2, lsl pc + 39d0: cf12c076 svcgt 0x0012c076 + 39d4: c4100a09 ldrgt r0, [r0], #-2569 + 39d8: 03030a72 movweq r0, #14962 ; 0x3a72 + 39dc: 41c81c02 bicmi r1, r8, r2, lsl #24 + 39e0: 020a09ab andeq r0, sl, #2801664 ; 0x2ac000 + 39e4: b9306329 ldmdblt r0!, {r0, r3, r5, r8, r9, sp, lr} + 39e8: 45441106 strbmi r1, [r4, #-262] + 39ec: 10d1cf12 sbcsne ip, r1, r2, lsl pc + 39f0: a2942314 addsge r2, r4, #1342177280 ; 0x50000000 + 39f4: 050acf12 streq ip, [sl, #-3858] + 39f8: bacc6d06 blt ff31ee18 + 39fc: 06040a09 streq r0, [r4], -r9, lsl #20 + 3a00: 0353441e cmpeq r3, #503316480 ; 0x1e000000 + 3a04: 123b4506 eorsne r4, fp, #25165824 ; 0x1800000 + 3a08: 092ab7cf stmdbeq sl!, {r0, r1, r2, r3, r6, r7, r8, r9, sl, ip, sp, pc} + 3a0c: 0203600a andeq r6, r3, #10 ; 0xa + 3a10: 00da5e1d sbcseq r5, sl, sp, lsl lr + 3a14: 00020000 andeq r0, r2, r0 + 3a18: 00400fdc ldrdeq r0, [r0], #-252 + 3a1c: 00000004 andeq r0, r0, r4 + 3a20: 00abaf02 adceq sl, fp, r2, lsl #30 + 3a24: a9eb0200 stmibge fp!, {r9}^ + 3a28: 79010000 stmdbvc r1, {} + 3a2c: 02000030 andeq r0, r0, #48 ; 0x30 + 3a30: 0000b16f andeq fp, r0, pc, ror #2 + 3a34: 00000000 andeq r0, r0, r0 + 3a38: 00000001 andeq r0, r0, r1 + 3a3c: 00401274 subeq r1, r0, r4, ror r2 + 3a40: d5000151 strle r0, [r0, #-337] + 3a44: 01000119 tsteq r0, r9, lsl r1 + 3a48: 78050002 stmdavc r5, {r1} + 3a4c: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 3a50: 01010000 tsteq r1, r0 + 3a54: 00010101 andeq r0, r1, r1, lsl #2 + 3a58: 01010001 tsteq r1, r1 + 3a5c: 8fd50101 svchi 0x00d50101 + 3a60: 58000201 stmdapl r0, {r0, r9} + 3a64: b30d0202 movwlt r0, #53762 ; 0xd202 + 3a68: 0134014b teqeq r4, fp, asr #2 + 3a6c: 01040308 tsteq r4, r8, lsl #6 + 3a70: 00cbaf03 sbceq sl, fp, r3, lsl #30 + 3a74: 1d0a2a15 fstsne s4, [sl, #-84] + 3a78: 18060903 stmdane r6, {r0, r1, r8, fp} + 3a7c: 4254c236 subsmi ip, r4, #1610612739 ; 0x60000003 + 3a80: ab360e06 blge d872a0 + 3a84: 53393c52 teqpl r9, #20992 ; 0x5200 + 3a88: 0e290106 sufeqe f0, f1, f6 + 3a8c: a43da43d ldrtge sl, [sp], #-1085 + 3a90: 01377306 teqeq r7, r6, lsl #6 + 3a94: 54442506 strbpl r2, [r4], #-1286 + 3a98: 22067913 andcs r7, r6, #311296 ; 0x4c000 + 3a9c: 020d711b andeq r7, sp, #-1073741818 ; 0xc0000006 + 3aa0: 87811005 strhi r1, [r1, r5] + 3aa4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3aa8: 56067005 strpl r7, [r6], -r5 + 3aac: 082f020e stmdaeq pc!, {r1, r2, r3, r9} + 3ab0: c61b6e06 ldrgt r6, [fp], -r6, lsl #28 + 3ab4: 7803780a stmdavc r3, {r1, r3, fp, ip, sp, lr} + 3ab8: 07035031 smladxeq r3, r1, r0, r5 + 3abc: e8510806 ldmda r1, {r1, r2, fp}^ + 3ac0: 060a5438 undefined + 3ac4: 050a5e2f streq r5, [sl, #-3631] + 3ac8: 9958444e ldmdbls r8, {r1, r2, r3, r6, sl, lr}^ + 3acc: 030dac35 movweq sl, #56373 ; 0xdc35 + 3ad0: 0c084e3d stceq 14, cr4, [r8], {61} + 3ad4: 180e0630 stmdane lr, {r4, r5, r9, sl} + 3ad8: b12f040d teqlt pc, sp, lsl #8 + 3adc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3ae0: 0e0e6d06 cdpeq 13, 0, cr6, cr14, cr6, {0} + 3ae4: 04050009 streq r0, [r5], #-9 + 3ae8: 27010001 strcs r0, [r1, -r1] + 3aec: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} + 3af0: 000001d2 ldrdeq r0, [r0], -r2 + 3af4: 108c0002 addne r0, ip, r2 + 3af8: 00040040 andeq r0, r4, r0, asr #32 + 3afc: 63020000 movwvs r0, #8192 ; 0x2000 + 3b00: 010000ad smlatbeq r0, sp, r0, r0 + 3b04: 004020bb strheq r2, [r0], #-11 + 3b08: 40208501 eormi r8, r0, r1, lsl #10 + 3b0c: 21e50100 mvncs r0, r0, lsl #2 + 3b10: 00000040 andeq r0, r0, r0, asr #32 + 3b14: 00010000 andeq r0, r1, r0 + 3b18: 12700000 rsbsne r0, r0, #0 ; 0x0 + 3b1c: 01510040 cmpeq r1, r0, asr #32 + 3b20: 0119d500 tsteq r9, r0, lsl #10 + 3b24: 00020100 andeq r0, r2, r0, lsl #2 + 3b28: 6c117805 ldcvs 8, cr7, [r1], {5} + 3b2c: 00000e29 andeq r0, r0, r9, lsr #28 + 3b30: 01010101 tsteq r1, r1, lsl #2 + 3b34: 00010001 andeq r0, r1, r1 + 3b38: 01010101 tsteq r1, r1, lsl #2 + 3b3c: 020387d5 andeq r8, r3, #55836672 ; 0x3540000 + 3b40: 0201f200 andeq pc, r1, #0 ; 0x0 + 3b44: 4bef0e02 blmi ffbc7354 + 3b48: 08014101 stmdaeq r1, {r0, r8, lr} + 3b4c: 03010403 movweq r0, #5123 ; 0x1403 + 3b50: 1500cbeb strne ip, [r0, #-3051] + 3b54: 0602052a streq r0, [r2], -sl, lsr #10 + 3b58: 060f5229 streq r5, [pc], -r9, lsr #4 + 3b5c: 05b24468 ldreq r4, [r2, #1128]! + 3b60: 280a067e stmdacs sl, {r1, r2, r3, r4, r5, r6, r9, sl} + 3b64: 58020de7 stmdapl r2, {r0, r1, r2, r5, r6, r7, r8, sl, fp} + 3b68: 300c0888 andcc r0, ip, r8, lsl #17 + 3b6c: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ + 3b70: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3b74: 6806300c stmdavs r6, {r2, r3, ip, sp} + 3b78: 14040824 strne r0, [r4], #-2084 + 3b7c: 300c0877 andcc r0, ip, r7, ror r8 + 3b80: 08d06606 ldmeq r0, {r1, r2, r9, sl, sp, lr}^ + 3b84: 08771404 ldmdaeq r7!, {r2, sl, ip}^ + 3b88: 7406300c strvc r3, [r6], #-12 + 3b8c: 1404086d strne r0, [r4], #-2157 + 3b90: 300c0877 andcc r0, ip, r7, ror r8 + 3b94: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 3b98: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3b9c: 1306300c movwne r3, #24588 ; 0x600c + 3ba0: 580408ce stmdapl r4, {r1, r2, r3, r6, r7, fp} + 3ba4: 300c0888 andcc r0, ip, r8, lsl #17 + 3ba8: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ + 3bac: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3bb0: 1506300c strne r3, [r6, #-12] + 3bb4: 66040822 strvs r0, [r4], -r2, lsr #16 + 3bb8: 300c0825 andcc r0, ip, r5, lsr #16 + 3bbc: 086d7406 stmdaeq sp!, {r1, r2, sl, ip, sp, lr}^ + 3bc0: 08771404 ldmdaeq r7!, {r2, sl, ip}^ + 3bc4: 1506300c strne r3, [r6, #-12] + 3bc8: 73040822 movwvc r0, #18466 ; 0x4822 + 3bcc: 300c08c2 andcc r0, ip, r2, asr #17 + 3bd0: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 3bd4: 08c27304 stmiaeq r2, {r2, r8, r9, ip, sp, lr}^ + 3bd8: 1406300c strne r3, [r6], #-12 + 3bdc: 66040823 strvs r0, [r4], -r3, lsr #16 + 3be0: 300c0825 andcc r0, ip, r5, lsr #16 + 3be4: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ + 3be8: 08c27304 stmiaeq r2, {r2, r8, r9, ip, sp, lr}^ + 3bec: 1406300c strne r3, [r6], #-12 + 3bf0: 730408cd movwvc r0, #18637 ; 0x48cd + 3bf4: 300c08c2 andcc r0, ip, r2, asr #17 + 3bf8: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 3bfc: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3c00: 1506300c strne r3, [r6, #-12] + 3c04: 66040822 strvs r0, [r4], -r2, lsr #16 + 3c08: 300c0825 andcc r0, ip, r5, lsr #16 + 3c0c: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 3c10: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3c14: 1306300c movwne r3, #24588 ; 0x600c + 3c18: 580408ce stmdapl r4, {r1, r2, r3, r6, r7, fp} + 3c1c: 300c0888 andcc r0, ip, r8, lsl #17 + 3c20: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ + 3c24: 08c27304 stmiaeq r2, {r2, r8, r9, ip, sp, lr}^ + 3c28: 1506300c strne r3, [r6, #-12] + 3c2c: 66040822 strvs r0, [r4], -r2, lsr #16 + 3c30: 300c0825 andcc r0, ip, r5, lsr #16 + 3c34: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 3c38: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3c3c: 1506300c strne r3, [r6, #-12] + 3c40: 73040822 movwvc r0, #18466 ; 0x4822 + 3c44: 300c08c2 andcc r0, ip, r2, asr #17 + 3c48: 0a030a06 beq c6468 + 3c4c: 0e7e0605 cdpeq 6, 7, cr0, cr14, cr5, {0} + 3c50: 7e050326 cdpvc 3, 0, cr0, cr5, cr6, {1} + 3c54: 050a09cf streq r0, [sl, #-2511] + 3c58: 7a036a22 bvc de4e8 + 3c5c: 0a090630 beq 245524 + 3c60: 036a2203 cmneq sl, #805306368 ; 0x30000000 + 3c64: 22fc2e06 rscscs r2, ip, #96 ; 0x60 + 3c68: 0555036a ldrbeq r0, [r5, #-874] + 3c6c: 0a8e250e beq fe38d0ac + 3c70: 9d207fb3 stcls 15, cr7, [r0, #-716]! + 3c74: 76052b03 strvc r2, [r5], -r3, lsl #22 + 3c78: 030d5f5d movweq r5, #57181 ; 0xdf5d + 3c7c: 0c083222 sfmeq f3, 4, [r8], {34} + 3c80: ba0e0630 blt 385548 + 3c84: c1210730 teqgt r1, r0, lsr r7 + 3c88: b6361d06 ldrtlt r1, [r6], -r6, lsl #26 + 3c8c: 8858040d ldmdahi r8, {r0, r2, r3, sl}^ + 3c90: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3c94: 290e6706 stmdbcs lr, {r1, r2, r8, r9, sl, sp, lr} + 3c98: 14057d03 strne r7, [r5], #-3331 + 3c9c: 35290106 strcc r0, [r9, #-262]! + 3ca0: 7b057b0a blvc 1628d0 + 3ca4: 0203372c andeq r3, r3, #11534336 ; 0xb00000 + 3ca8: 98247605 stmdals r4!, {r0, r2, r9, sl, ip, sp, lr} + 3cac: 3222030d eorcc r0, r2, #872415232 ; 0x34000000 + 3cb0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3cb4: cd140f0f ldcgt 15, cr0, [r4, #-60] + 3cb8: 0009740e andeq r7, r9, lr, lsl #8 + 3cbc: 00010405 andeq r0, r1, r5, lsl #8 + 3cc0: 0b082801 bleq 20dccc + 3cc4: 0083cc14 addeq ip, r3, r4, lsl ip + 3cc8: 00020000 andeq r0, r2, r0 + 3ccc: 00401270 subeq r1, r0, r0, ror r2 + 3cd0: 00000002 andeq r0, r0, r2 + 3cd4: 00ad6302 adceq r6, sp, r2, lsl #6 + 3cd8: 9e2f0200 cdpls 2, 2, cr0, cr15, cr0, {0} + 3cdc: 00000000 andeq r0, r0, r0 + 3ce0: 00010000 andeq r0, r1, r0 + 3ce4: 12740000 rsbsne r0, r4, #0 ; 0x0 + 3ce8: 01510040 cmpeq r1, r0, asr #32 + 3cec: 0119d500 tsteq r9, r0, lsl #10 + 3cf0: 00020100 andeq r0, r2, r0, lsl #2 + 3cf4: 6c117805 ldcvs 8, cr7, [r1], {5} + 3cf8: 00000e29 andeq r0, r0, r9, lsr #28 + 3cfc: 01010101 tsteq r1, r1, lsl #2 + 3d00: 00010001 andeq r0, r1, r1 + 3d04: 01010101 tsteq r1, r1, lsl #2 + 3d08: 00021fd5 ldrdeq r1, [r2], -r5 + 3d0c: 28000202 stmdacs r0, {r1, r9} + 3d10: 00014cb0 strheq r4, [r1], -r0 + 3d14: 030a0801 movweq r0, #43009 ; 0xa801 + 3d18: 1500ccac strne ip, [r0, #-3244] + 3d1c: 0500092a streq r0, [r0, #-2346] + 3d20: 01000104 tsteq r0, r4, lsl #2 + 3d24: 300b0830 andcc r0, fp, r0, lsr r8 + 3d28: 00015106 andeq r5, r1, r6, lsl #2 + 3d2c: 00021fd5 ldrdeq r1, [r2], -r5 + 3d30: 25000302 strcs r0, [r0, #-770] + 3d34: 000347d3 ldrdeq r4, [r3], -r3 + 3d38: 030a0803 movweq r0, #43011 ; 0xa803 + 3d3c: 1500c7cf strne ip, [r0, #-1999] + 3d40: 050009de streq r0, [r0, #-2526] + 3d44: 01000104 tsteq r0, r4, lsl #2 + 3d48: 300b082f andcc r0, fp, pc, lsr #16 + 3d4c: 00018606 andeq r8, r1, r6, lsl #12 + 3d50: 80000200 andhi r0, r0, r0, lsl #4 + 3d54: 02004012 andeq r4, r0, #18 ; 0x12 + 3d58: 02000000 andeq r0, r0, #0 ; 0x0 + 3d5c: 0000aff3 strdeq sl, [r0], -r3 + 3d60: 4020bb01 eormi fp, r0, r1, lsl #22 + 3d64: 00000000 andeq r0, r0, r0 + 3d68: 00000100 andeq r0, r0, r0, lsl #2 + 3d6c: 40127400 andsmi r7, r2, r0, lsl #8 + 3d70: 00015100 andeq r5, r1, r0, lsl #2 + 3d74: 000119d5 ldrdeq r1, [r1], -r5 + 3d78: 05000201 streq r0, [r0, #-513] + 3d7c: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 3d80: 0100000e tsteq r0, lr + 3d84: 01010101 tsteq r1, r1, lsl #2 + 3d88: 01000100 tsteq r0, r0, lsl #2 + 3d8c: d5010101 strle r0, [r1, #-257] + 3d90: 000202c5 andeq r0, r2, r5, asr #5 + 3d94: 020201d9 andeq r0, r2, #1073741878 ; 0x40000036 + 3d98: 014cb90f cmpeq ip, pc, lsl #18 + 3d9c: 03080131 movweq r0, #33073 ; 0x8131 + 3da0: 00ccb503 sbceq fp, ip, r3, lsl #10 + 3da4: 791b2e06 ldmdbvc fp, {r1, r2, r9, sl, fp, sp} + 3da8: 64060605 strvs r0, [r6], #-1541 + 3dac: 7e052937 mcrvc 9, 0, r2, cr5, cr7, {1} + 3db0: e7280a06 str r0, [r8, -r6, lsl #20]! + 3db4: 8858020d ldmdahi r8, {r0, r2, r3, r9}^ + 3db8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3dbc: 04087616 streq r7, [r8], #-1558 + 3dc0: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3dc4: 24680630 strbtcs r0, [r8], #-1584 + 3dc8: 77140408 ldrvc r0, [r4, -r8, lsl #8] + 3dcc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3dd0: 0408d066 streq sp, [r8], #-102 + 3dd4: 0c087714 stceq 7, cr7, [r8], {20} + 3dd8: 6d740630 ldclvs 6, cr0, [r4, #-192]! + 3ddc: 77140408 ldrvc r0, [r4, -r8, lsl #8] + 3de0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3de4: 04082215 streq r2, [r8], #-533 + 3de8: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3dec: ce130630 mrcgt 6, 0, r0, cr3, cr0, {1} + 3df0: 88580408 ldmdahi r8, {r3, sl}^ + 3df4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3df8: 04087616 streq r7, [r8], #-1558 + 3dfc: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3e00: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3e04: 25660408 strbcs r0, [r6, #-1032]! + 3e08: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e0c: 04086d74 streq r6, [r8], #-3444 + 3e10: 0c087714 stceq 7, cr7, [r8], {20} + 3e14: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3e18: c2730408 rsbsgt r0, r3, #134217728 ; 0x8000000 + 3e1c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e20: 04082215 streq r2, [r8], #-533 + 3e24: 0c08c273 sfmeq f4, 1, [r8], {115} + 3e28: 23140630 tstcs r4, #50331648 ; 0x3000000 + 3e2c: 25660408 strbcs r0, [r6, #-1032]! + 3e30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e34: 04087616 streq r7, [r8], #-1558 + 3e38: 0c08c273 sfmeq f4, 1, [r8], {115} + 3e3c: cd140630 ldcgt 6, cr0, [r4, #-192] + 3e40: c2730408 rsbsgt r0, r3, #134217728 ; 0x8000000 + 3e44: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e48: 04082215 streq r2, [r8], #-533 + 3e4c: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3e50: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3e54: 25660408 strbcs r0, [r6, #-1032]! + 3e58: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e5c: 04082215 streq r2, [r8], #-533 + 3e60: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3e64: ce130630 mrcgt 6, 0, r0, cr3, cr0, {1} + 3e68: 88580408 ldmdahi r8, {r3, sl}^ + 3e6c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e70: 04087616 streq r7, [r8], #-1558 + 3e74: 0c08c273 sfmeq f4, 1, [r8], {115} + 3e78: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3e7c: 25660408 strbcs r0, [r6, #-1032]! + 3e80: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e84: 04082215 streq r2, [r8], #-533 + 3e88: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3e8c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3e90: c2730408 rsbsgt r0, r3, #134217728 ; 0x8000000 + 3e94: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e98: 050a030a streq r0, [sl, #-778] + 3e9c: 260e7e06 strcs r7, [lr], -r6, lsl #28 + 3ea0: cf7e0503 svcgt 0x007e0503 + 3ea4: 22050a09 andcs r0, r5, #36864 ; 0x9000 + 3ea8: 307a036a rsbscc r0, sl, sl, ror #6 + 3eac: 030a0906 movweq r0, #43270 ; 0xa906 + 3eb0: 06036a22 streq r6, [r3], -r2, lsr #20 + 3eb4: 6a22fc2e bvs 8c2f74 + 3eb8: 0e055503 cfsh32eq mvfx5, mvfx5, #3 + 3ebc: b30a8e25 movwlt r8, #44581 ; 0xae25 + 3ec0: 039d207f orrseq r2, sp, #127 ; 0x7f + 3ec4: 0675052b ldrbteq r0, [r5], -fp, lsr #10 + 3ec8: 0915527c ldmdbeq r5, {r2, r3, r4, r5, r6, r9, ip, lr} + 3ecc: 01040500 tsteq r4, r0, lsl #10 + 3ed0: 08290100 stmdaeq r9!, {r8} + 3ed4: df69220b svcle 0x0069220b + 3ed8: 02000002 andeq r0, r0, #2 ; 0x2 + 3edc: 40143400 andsmi r3, r4, r0, lsl #8 + 3ee0: 00000700 andeq r0, r0, r0, lsl #14 + 3ee4: b16f0200 cmnlt pc, r0, lsl #4 + 3ee8: b5010000 strlt r0, [r1] + 3eec: 0100401b tsteq r0, fp, lsl r0 + 3ef0: 004020bb strheq r2, [r0], #-11 + 3ef4: 401c2501 andsmi r2, ip, r1, lsl #10 + 3ef8: b3a70200 undefined instruction 0xb3a70200 + 3efc: bd010000 stclt 0, cr0, [r1] + 3f00: 0100401d tsteq r0, sp, lsl r0 + 3f04: 004021e5 subeq r2, r0, r5, ror #3 + 3f08: 00000000 andeq r0, r0, r0 + 3f0c: 00000001 andeq r0, r0, r1 + 3f10: 00401274 subeq r1, r0, r4, ror r2 + 3f14: d5000151 strle r0, [r0, #-337] + 3f18: 01000119 tsteq r0, r9, lsl r1 + 3f1c: 78050002 stmdavc r5, {r1} + 3f20: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 3f24: 01010000 tsteq r1, r0 + 3f28: 00010101 andeq r0, r1, r1, lsl #2 + 3f2c: 01010001 tsteq r1, r1 + 3f30: 85d50101 ldrbhi r0, [r5, #257] + 3f34: bc000205 sfmlt f0, 4, [r0], {5} + 3f38: 10020202 andne r0, r2, r2, lsl #4 + 3f3c: b0014cf3 strdlt r4, [r1], -r3 + 3f40: 03082d01 movweq r2, #36097 ; 0x8d01 + 3f44: ef030104 svc 0x00030104 + 3f48: 2a1500cc bcs 544280 + 3f4c: 2b360205 blcs d84768 + 3f50: 4a1b0f06 bmi 6c7b70 + 3f54: 4e3d020d cdpmi 2, 3, cr0, cr13, cr13, {0} + 3f58: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3f5c: 73060405 movwvc r0, #25605 ; 0x6405 + 3f60: 7e05520e cdpvc 2, 0, cr5, cr5, cr14, {0} + 3f64: 030d9624 movweq r9, #54820 ; 0xd624 + 3f68: 0c08eb4a stceq 11, cr14, [r8], {74} + 3f6c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3f70: eb4a0408 bl 1284f98 + 3f74: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3f78: 12057d03 andne r7, r5, #192 ; 0xc0 + 3f7c: 790a9c17 stmdbvc sl, {r0, r1, r2, r4, sl, fp, ip, pc} + 3f80: 98207f05 stmdals r0!, {r0, r2, r8, r9, sl, fp, ip, sp, lr} + 3f84: 75050203 strvc r0, [r5, #-515] + 3f88: c0511906 subsgt r1, r1, r6, lsl #18 + 3f8c: 5f81040d svcpl 0x0081040d + 3f90: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3f94: 290e5706 stmdbcs lr, {r1, r2, r8, r9, sl, ip, lr} + 3f98: 2e0a080a cdpcs 8, 0, cr0, cr10, cr10, {0} + 3f9c: d00a2f0a andle r2, sl, sl, lsl #30 + 3fa0: 00f40a00 rscseq r0, r4, r0, lsl #20 + 3fa4: 1506cc16 strne ip, [r6, #-3094] + 3fa8: 020d85cc andeq r8, sp, #855638016 ; 0x33000000 + 3fac: 0c084e3d stceq 14, cr4, [r8], {61} + 3fb0: 6c060630 stcvs 6, cr0, [r6], {48} + 3fb4: 1f18290e svcne 0x0018290e + 3fb8: 1422050d strtne r0, [r2], #-1293 + 3fbc: 08270a09 stmdaeq r7!, {r0, r3, r9, fp} + 3fc0: 0306300c movweq r3, #24588 ; 0x600c + 3fc4: 290d0601 stmdbcs sp, {r0, r9, sl} + 3fc8: 3d020d0c stccc 13, cr0, [r2, #-48] + 3fcc: 300c084e andcc r0, ip, lr, asr #16 + 3fd0: 0e690606 cdpeq 6, 6, cr0, cr9, cr6, {0} + 3fd4: 06040a29 streq r0, [r4], -r9, lsr #20 + 3fd8: 0a711b0f beq 1c4ac1c + 3fdc: 09b03c02 ldmibeq r0!, {r1, sl, fp, ip, sp} + 3fe0: 1406050a strne r0, [r6], #-1290 + 3fe4: 0a09f051 beq 280130 + 3fe8: 0a8c5804 beq fe31a000 + 3fec: 06010302 streq r0, [r1], -r2, lsl #6 + 3ff0: 0996446d ldmibeq r6, {r0, r2, r3, r5, r6, sl, lr} + 3ff4: 1406020a strne r0, [r6], #-522 + 3ff8: 8c58f051 mrrchi 0, 5, pc, r8, cr1 + 3ffc: 4e3d060d cfmsuba32mi mvax0, mvax0, mvfx13, mvfx13 + 4000: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4004: 170e5006 strne r5, [lr, -r6] + 4008: 0b0a7517 bleq 2a146c + 400c: 711b0506 tstvc fp, r6, lsl #10 + 4010: 070db03c smladxeq sp, ip, r0, fp + 4014: 0c084e3d stceq 14, cr4, [r8], {61} + 4018: 20170630 andscs r0, r7, r0, lsr r6 + 401c: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} + 4020: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4024: 04087715 streq r7, [r8], #-1813 + 4028: 0c084e3d stceq 14, cr4, [r8], {61} + 402c: 0a090630 beq 2458f4 + 4030: 4822150b stmdami r2!, {r0, r1, r3, r8, sl, ip} + 4034: 3d0408f1 stccc 8, cr0, [r4, #-964] + 4038: 300c084e andcc r0, ip, lr, asr #16 + 403c: 08201706 stmdaeq r0!, {r1, r2, r8, r9, sl, ip} + 4040: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 4044: 1506300c strne r3, [r6, #-12] + 4048: 3d040877 stccc 8, cr0, [r4, #-476] + 404c: 300c084e andcc r0, ip, lr, asr #16 + 4050: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 4054: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 4058: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 405c: 01040500 tsteq r4, r0, lsl #10 + 4060: 082a0100 stmdaeq sl!, {r8} + 4064: 0369220b cmneq r9, #-1342177280 ; 0xb0000000 + 4068: 0d622303 stcleq 3, cr2, [r2, #-12]! + 406c: 084e3d02 stmdaeq lr, {r1, r8, sl, fp, ip, sp}^ + 4070: 0606300c streq r3, [r6], -ip + 4074: 0a290e6c beq a47a2c + 4078: 1b0f0604 blne 3c5890 + 407c: 3c020a71 stccc 10, cr0, [r2], {113} + 4080: 050a095b streq r0, [sl, #-2395] + 4084: f0511406 undefined instruction 0xf0511406 + 4088: 58040a09 stmdapl r4, {r0, r3, r9, fp} + 408c: 03020a8c movweq r0, #10892 ; 0x2a8c + 4090: 446d0601 strbtmi r0, [sp], #-1537 + 4094: 020a0996 andeq r0, sl, #2457600 ; 0x258000 + 4098: f0511406 undefined instruction 0xf0511406 + 409c: 060d8b58 undefined + 40a0: 0c084e3d stceq 14, cr4, [r8], {61} + 40a4: 51060630 tstpl r6, r0, lsr r6 + 40a8: 7517180e ldrvc r1, [r7, #-2062] + 40ac: 0506080a streq r0, [r6, #-2058] + 40b0: 053d711b ldreq r7, [sp, #-283]! + 40b4: 4e3d070d cdpmi 7, 3, cr0, cr13, cr13, {0} + 40b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 40bc: 0408cb16 streq ip, [r8], #-2838 + 40c0: 0c084e3d stceq 14, cr4, [r8], {61} + 40c4: 0a090630 beq 24598c + 40c8: 49771567 ldmdbmi r7!, {r0, r1, r2, r5, r6, r8, sl, ip}^ + 40cc: 3d040846 stccc 8, cr0, [r4, #-280] + 40d0: 300c084e andcc r0, ip, lr, asr #16 + 40d4: 08cb1606 stmiaeq fp, {r1, r2, r9, sl, ip}^ + 40d8: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 40dc: 1506300c strne r3, [r6, #-12] + 40e0: 3d040877 stccc 8, cr0, [r4, #-476] + 40e4: 300c084e andcc r0, ip, lr, asr #16 + 40e8: 5d0a0906 stcpl 9, cr0, [sl, #-24] + 40ec: 03032215 movweq r2, #12821 ; 0x3215 + 40f0: 020de34c andeq lr, sp, #805306369 ; 0x30000001 + 40f4: 0c084e3d stceq 14, cr4, [r8], {61} + 40f8: 69060630 stmdbvs r6, {r4, r5, r9, sl} + 40fc: 040a290e streq r2, [sl], #-2318 + 4100: 711b0f06 tstvc fp, r6, lsl #30 + 4104: 5a3d020a bpl f44934 + 4108: 06050a09 streq r0, [r5], -r9, lsl #20 + 410c: 09f55115 ldmibeq r5!, {r0, r2, r4, r8, ip, lr}^ + 4110: 8c58040a cfldrdhi mvd0, [r8], {10} + 4114: 0103020a tsteq r3, sl, lsl #4 + 4118: 91446c06 cmpls r4, r6, lsl #24 + 411c: 06020a09 streq r0, [r2], -r9, lsl #20 + 4120: 58f05114 ldmpl r0!, {r2, r4, r8, ip, lr}^ + 4124: 3d060d8c stccc 13, cr0, [r6, #-560] + 4128: 300c084e andcc r0, ip, lr, asr #16 + 412c: 0e560606 cdpeq 6, 5, cr0, cr6, cr6, {0} + 4130: 13040a17 movwne r0, #18967 ; 0x4a17 + 4134: 44040624 strmi r0, [r4], #-1572 + 4138: 3d070d53 stccc 13, cr0, [r7, #-332] + 413c: 300c084e andcc r0, ip, lr, asr #16 + 4140: 10020506 andne r0, r2, r6, lsl #10 + 4144: 1e7e05a5 cdpne 5, 7, cr0, cr14, cr5, {5} + 4148: 0d721a9c fldmdbseq r2!, {s3-s158} + 414c: 08eb4a03 stmiaeq fp!, {r0, r1, r9, fp, lr}^ + 4150: 0a06300c beq 190188 + 4154: 091f1902 ldmdbeq pc, {r1, r8, fp, ip} + 4158: 4f48020a svcmi 0x0048020a + 415c: 04080930 streq r0, [r8], #-2352 + 4160: 0c08eb4a stceq 11, cr14, [r8], {74} + 4164: 70130630 andsvc r0, r3, r0, lsr r6 + 4168: eb4a0408 bl 1285190 + 416c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4170: 23057403 movwcs r7, #21507 ; 0x5403 + 4174: 981b0106 ldmdals fp, {r1, r2, r8} + 4178: 7505730a strvc r7, [r5, #-778] + 417c: 020a9820 andeq r9, sl, #2097152 ; 0x200000 + 4180: 6e050a03 fmacsvs s0, s10, s6 + 4184: 0a09714b beq 2606b8 + 4188: 033f7fba teqeq pc, #744 ; 0x2e8 + 418c: 7fb90a09 svcvc 0x00b90a09 + 4190: 0303ef4a movweq lr, #16202 ; 0x3f4a + 4194: 020d8e4c andeq r8, sp, #1216 ; 0x4c0 + 4198: 0c084e3d stceq 14, cr4, [r8], {61} + 419c: 6b060630 blvs 185a64 + 41a0: 2906290e stmdbcs r6, {r1, r2, r3, r8, fp, sp} + 41a4: 060d711b undefined + 41a8: 0c088858 stceq 8, cr8, [r8], {88} + 41ac: 5a060630 bpl 185a74 + 41b0: 7517290e ldrvc r2, [r7, #-2318] + 41b4: 7faf0a09 svcvc 0x00af0a09 + 41b8: 01611c1b cmneq r1, fp, lsl ip + 41bc: 00020000 andeq r0, r2, r0 + 41c0: 004016ac subeq r1, r0, ip, lsr #13 + 41c4: 00000004 andeq r0, r0, r4 + 41c8: 00b3a702 adcseq sl, r3, r2, lsl #14 + 41cc: 23190100 tstcs r9, #0 ; 0x0 + 41d0: 25010040 strcs r0, [r1, #-64] + 41d4: 0100401c tsteq r0, ip, lsl r0 + 41d8: 004020bb strheq r2, [r0], #-11 + 41dc: 00000000 andeq r0, r0, r0 + 41e0: 00000001 andeq r0, r0, r1 + 41e4: 00401274 subeq r1, r0, r4, ror r2 + 41e8: d5000151 strle r0, [r0, #-337] + 41ec: 01000119 tsteq r0, r9, lsl r1 + 41f0: 78050002 stmdavc r5, {r1} + 41f4: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 41f8: 01010000 tsteq r1, r0 + 41fc: 00010101 andeq r0, r1, r1, lsl #2 + 4200: 01010001 tsteq r1, r1 + 4204: 96d50101 ldrbls r0, [r5], r1, lsl #2 + 4208: 9a000202 bls 4a18 + 420c: 11020201 tstne r2, r1, lsl #4 + 4210: 45014eb5 strmi r4, [r1, #-3765] + 4214: 04030801 streq r0, [r3], #-2049 + 4218: ceb10301 cdpgt 3, 11, cr0, cr1, cr1, {0} + 421c: 032a1500 teqeq sl, #0 ; 0x0 + 4220: 36030601 strcc r0, [r3], -r1, lsl #12 + 4224: 14020db8 strne r0, [r2], #-3512 + 4228: 300c0877 andcc r0, ip, r7, ror r8 + 422c: 06060a06 streq r0, [r6], -r6, lsl #20 + 4230: 0a711b13 beq 1c4ae84 + 4234: 7b770602 blvc 1dc5a44 + 4238: 020a091c andeq r0, sl, #458752 ; 0x70000 + 423c: 4e441b06 fmacdmi d17, d4, d6 + 4240: 030d563e movweq r5, #54846 ; 0xd63e + 4244: 0c084e3d stceq 14, cr4, [r8], {61} + 4248: 040a0630 streq r0, [sl], #-1584 + 424c: 170e1e0a strne r1, [lr, -sl, lsl #28] + 4250: 0408385f streq r3, [r8], #-2143 + 4254: 0c084e3d stceq 14, cr4, [r8], {61} + 4258: 060a0630 undefined + 425c: 1f0f1a0a svcne 0x000f1a0a + 4260: 7706020a strvc r0, [r6, -sl, lsl #4] + 4264: 0a094552 beq 2557b4 + 4268: 441b0602 ldrmi r0, [fp], #-1538 + 426c: 08f34b4e ldmeq r3!, {r1, r2, r3, r6, r8, r9, fp, lr}^ + 4270: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 4274: 0a06300c beq 1902ac + 4278: 0e140a04 fmscseq s0, s8, s8 + 427c: 08395ec1 ldmdaeq r9!, {r0, r6, r7, r9, sl, fp, ip, lr} + 4280: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 4284: 0a06300c beq 1902bc + 4288: 0f100a04 svceq 0x00100a04 + 428c: 08395ec9 ldmdaeq r9!, {r0, r3, r6, r7, r9, sl, fp, ip, lr} + 4290: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 4294: 0a06300c beq 1902cc + 4298: 0f0c0a04 svceq 0x000c0a04 + 429c: 08395ec9 ldmdaeq r9!, {r0, r3, r6, r7, r9, sl, fp, ip, lr} + 42a0: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 42a4: 0a06300c beq 1902dc + 42a8: 0f080a04 svceq 0x00080a04 + 42ac: 087379c9 ldmdaeq r3!, {r0, r3, r6, r7, r8, fp, ip, sp, lr}^ + 42b0: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 42b4: 0a06300c beq 1902ec + 42b8: 79c90f04 stmibvc r9, {r2, r8, r9, sl, fp}^ + 42bc: 3d040873 stccc 8, cr0, [r4, #-460] + 42c0: 300c084e andcc r0, ip, lr, asr #16 + 42c4: 0e5e0606 cdpeq 6, 5, cr0, cr14, cr6, {0} + 42c8: 080a0921 stmdaeq sl, {r0, r5, r8, fp} + 42cc: cb3e0405 blgt f852e8 + 42d0: 194e0703 stmdbne lr, {r0, r1, r8, r9, sl}^ + 42d4: 4e3d040d cdpmi 4, 3, cr0, cr13, cr13, {0} + 42d8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 42dc: 04087013 streq r7, [r8], #-19 + 42e0: 0c084e3d stceq 14, cr4, [r8], {61} + 42e4: 73030630 movwvc r0, #13872 ; 0x3630 + 42e8: 01062305 tsteq r6, r5, lsl #6 + 42ec: 070a981b smladeq sl, fp, r8, r9 + 42f0: d23b7505 eorsle r7, fp, #20971520 ; 0x1400000 + 42f4: 76067005 strvc r7, [r6], -r5 + 42f8: 721a3c29 andsvc r3, sl, #10496 ; 0x2900 + 42fc: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} + 4300: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4304: 1f19740a svcne 0x0019740a + 4308: 2d740a09 fldmdbscs r4!, {s1-s9} + 430c: 06040315 undefined + 4310: 09482971 stmdbeq r8, {r0, r4, r5, r6, r8, fp, sp}^ + 4314: 01040500 tsteq r4, r0, lsl #10 + 4318: 082b0100 stmdaeq fp!, {r8} + 431c: 8469220b strbthi r2, [r9], #-523 + 4320: 01000000 tsteq r0, r0 + 4324: 4017e000 andsmi lr, r7, r0 + 4328: 00000400 andeq r0, r0, r0, lsl #8 + 432c: b53b0200 ldrlt r0, [fp, #-512]! + 4330: f5010000 undefined instruction 0xf5010000 + 4334: 0100003b tsteq r0, fp, lsr r0 + 4338: 00403d85 subeq r3, r0, r5, lsl #27 + 433c: 006cb901 rsbeq fp, ip, r1, lsl #18 + 4340: 00000000 andeq r0, r0, r0 + 4344: 00015100 andeq r5, r1, r0, lsl #2 + 4348: 000119d5 ldrdeq r1, [r1], -r5 + 434c: 05000201 streq r0, [r0, #-513] + 4350: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 4354: 0100000e tsteq r0, lr + 4358: 01010101 tsteq r1, r1, lsl #2 + 435c: 01000100 tsteq r0, r0, lsl #2 + 4360: d5010101 strle r0, [r1, #-257] + 4364: 16000242 strne r0, [r0], -r2, asr #4 + 4368: 81120202 tsthi r2, r2, lsl #4 + 436c: 0109014f tsteq r9, pc, asr #2 + 4370: 01040308 tsteq r4, r8, lsl #6 + 4374: 00cefd03 sbceq pc, lr, r3, lsl #26 + 4378: 08062a15 stmdaeq r6, {r0, r2, r4, r9, fp, sp} + 437c: 4d3fb736 ldcmi 7, cr11, [pc, #-216]! + 4380: 020d5f2d andeq r5, sp, #180 ; 0xb4 + 4384: 0c087714 stceq 7, cr7, [r8], {20} + 4388: 26110630 undefined + 438c: 1422030d strtne r0, [r2], #-781 + 4390: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4394: 711b0f06 tstvc fp, r6, lsl #30 + 4398: b12f040d teqlt pc, sp, lsl #8 + 439c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 43a0: 06730a09 ldrbteq r0, [r3], -r9, lsl #20 + 43a4: a4200e66 strtge r0, [r0], #-3686 + 43a8: 02000000 andeq r0, r0, #0 ; 0x0 + 43ac: 40180c00 andsmi r0, r8, r0, lsl #24 + 43b0: 00000400 andeq r0, r0, r0, lsl #8 + 43b4: b6570200 ldrblt r0, [r7], -r0, lsl #4 + 43b8: 05010000 streq r0, [r1] + 43bc: 0100006e tsteq r0, lr, rrx + 43c0: 0000701d andeq r7, r0, sp, lsl r0 + 43c4: 006ec501 rsbeq ip, lr, r1, lsl #10 + 43c8: 00000000 andeq r0, r0, r0 + 43cc: 00000100 andeq r0, r0, r0, lsl #2 + 43d0: 40184400 andsmi r4, r8, r0, lsl #8 + 43d4: 00015100 andeq r5, r1, r0, lsl #2 + 43d8: 000119d5 ldrdeq r1, [r1], -r5 + 43dc: 05000201 streq r0, [r0, #-513] + 43e0: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 43e4: 0100000e tsteq r0, lr + 43e8: 01010101 tsteq r1, r1, lsl #2 + 43ec: 01000100 tsteq r0, r0, lsl #2 + 43f0: d5010101 strle r0, [r1, #-257] + 43f4: 1c00025a sfmne f0, 4, [r0], {90} + 43f8: 92130202 andsls r0, r3, #536870912 ; 0x20000000 + 43fc: 010a014f tsteq sl, pc, asr #2 + 4400: 01040308 tsteq r4, r8, lsl #6 + 4404: 00cf8e03 sbceq r8, pc, r3, lsl #28 + 4408: 30062a15 andcc r2, r6, r5, lsl sl + 440c: 020d1b29 andeq r1, sp, #41984 ; 0xa400 + 4410: 4d660305 stclmi 3, cr0, [r6, #-20]! + 4414: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4418: 98030600 stmdals r3, {r9, sl} + 441c: 2200034f andcs r0, r0, #1006632961 ; 0x3c000001 + 4420: a2177d05 andsge r7, r7, #320 ; 0x140 + 4424: 0305030d movweq r0, #21261 ; 0x530d + 4428: 040a134b streq r1, [sl], #-843 + 442c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4430: 02067f05 andeq r7, r6, #20 ; 0x14 + 4434: 040d8536 streq r8, [sp], #-1334 + 4438: 0c08c273 sfmeq f4, 1, [r8], {115} + 443c: b4060630 strlt r0, [r6], #-1584 + 4440: 0950297f ldmdbeq r0, {r0, r1, r2, r3, r4, r5, r6, r8, fp, sp}^ + 4444: 01040500 tsteq r4, r0, lsl #10 + 4448: 082c0100 stmdaeq ip!, {r8} + 444c: 73cc140b bicvc r1, ip, #184549376 ; 0xb000000 + 4450: 02000000 andeq r0, r0, #0 ; 0x0 + 4454: 40185400 andsmi r5, r8, r0, lsl #8 + 4458: 00000200 andeq r0, r0, r0, lsl #4 + 445c: b9470200 stmdblt r7, {r9}^ + 4460: 69010000 stmdbvs r1, {} + 4464: 0000006d andeq r0, r0, sp, rrx + 4468: 01000000 tsteq r0, r0 + 446c: 4c000000 stcmi 0, cr0, [r0], {0} + 4470: 5100400e tstpl r0, lr + 4474: 19d50001 ldmibne r5, {r0}^ + 4478: 02010001 andeq r0, r1, #1 ; 0x1 + 447c: 11780500 cmnne r8, r0, lsl #10 + 4480: 000e296c andeq r2, lr, ip, ror #18 + 4484: 01010100 tsteq r1, r0, lsl #2 + 4488: 01000101 tsteq r0, r1, lsl #2 + 448c: 01010100 tsteq r1, r0, lsl #2 + 4490: 0233d501 eorseq sp, r3, #4194304 ; 0x400000 + 4494: 02021000 andeq r1, r2, #0 ; 0x0 + 4498: 014fa414 cmpeq pc, r4, lsl r4 + 449c: 03080103 movweq r0, #33027 ; 0x8103 + 44a0: a0030104 andge r0, r3, r4, lsl #2 + 44a4: 2a1500cf bcs 5447e8 + 44a8: 2900cb06 stmdbcs r0, {r1, r2, r8, r9, fp, lr, pc} + 44ac: 81020d19 tsthi r2, r9, lsl sp + 44b0: 300c085f andcc r0, ip, pc, asr r8 + 44b4: 7fb60606 svcvc 0x00b60606 + 44b8: 0009bc1b andeq fp, r9, fp, lsl ip + 44bc: 00010405 andeq r0, r1, r5, lsl #8 + 44c0: 0b082d01 bleq 20f8cc + 44c4: 0124cc14 teqeq r4, r4, lsl ip + 44c8: 00020000 andeq r0, r2, r0 + 44cc: 00401874 subeq r1, r0, r4, ror r8 + 44d0: 00000006 andeq r0, r0, r6 + 44d4: 00ba5f02 adcseq r5, sl, r2, lsl #30 + 44d8: 3a310100 bcc c448e0 + 44dc: 57010040 strpl r0, [r1, -r0, asr #32] + 44e0: 0200401b andeq r4, r0, #27 ; 0x1b + 44e4: 0000b16f andeq fp, r0, pc, ror #2 + 44e8: 403a8f01 eorsmi r8, sl, r1, lsl #30 + 44ec: 30790100 rsbscc r0, r9, r0, lsl #2 + 44f0: 00000000 andeq r0, r0, r0 + 44f4: 00010000 andeq r0, r1, r0 + 44f8: 18440000 stmdane r4, {}^ + 44fc: 01510040 cmpeq r1, r0, asr #32 + 4500: 0119d500 tsteq r9, r0, lsl #10 + 4504: 00020100 andeq r0, r2, r0, lsl #2 + 4508: 6c117805 ldcvs 8, cr7, [r1], {5} + 450c: 00000e29 andeq r0, r0, r9, lsr #28 + 4510: 01010101 tsteq r1, r1, lsl #2 + 4514: 00010001 andeq r0, r1, r1 + 4518: 01010101 tsteq r1, r1, lsl #2 + 451c: 0201cfd5 andeq ip, r1, #852 ; 0x354 + 4520: 02026200 andeq r6, r2, #0 ; 0x0 + 4524: 014fa915 cmpeq pc, r5, lsl r9 + 4528: 0308014d movweq r0, #33101 ; 0x814d + 452c: a5030104 strge r0, [r3, #-260] + 4530: 2a1500cf bcs 544874 + 4534: 0906040a stmdbeq r6, {r1, r3, sl} + 4538: b8341b29 ldmdalt r4!, {r0, r3, r5, r8, r9, fp, ip} + 453c: 0a09523a beq 258e2c + 4540: 0a092e26 beq 24fde0 + 4544: 30010312 andcc r0, r1, r2, lsl r3 + 4548: 3ab834aa bcc fee117f8 + 454c: 0a063152 beq 190a9c + 4550: 09b42d02 ldmibeq r4!, {r1, r8, sl, fp, sp} + 4554: 1230220a eorsne r2, r0, #-1610612736 ; 0xa0000000 + 4558: 0806fb3e stmdaeq r6, {r1, r2, r3, r4, r5, r8, r9, fp, ip, sp, lr, pc} + 455c: 020dab36 andeq sl, sp, #55296 ; 0xd800 + 4560: 0c081422 cfstrseq mvf1, [r8], {34} + 4564: 75060630 strvc r0, [r6, #-1584] + 4568: 5f2e290e svcpl 0x002e290e + 456c: 7714030d ldrvc r0, [r4, -sp, lsl #6] + 4570: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4574: 040d721a streq r7, [sp], #-538 + 4578: 0c081422 cfstrseq mvf1, [r8], {34} + 457c: 0a090630 beq 245e44 + 4580: 1b110616 blne 445de0 + 4584: 060b0a69 streq r0, [fp], -r9, ror #20 + 4588: 35be1b63 ldrcc r1, [lr, #2915]! + 458c: 31523a62 cmpcc r2, r2, ror #20 + 4590: 2c110a06 ldccs 10, cr0, [r1], {6} + 4594: 171131b5 undefined + 4598: 0d573523 cfldr64eq mvdx3, [r7, #-140] + 459c: 08322205 ldmdaeq r2!, {r0, r2, r9, sp} + 45a0: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 45a4: 7e060b0a fmacdvc d0, d6, d10 + 45a8: 040a0b0e streq r0, [sl], #-2830 + 45ac: e73e0203 ldr r0, [lr, -r3, lsl #4]! + 45b0: 523a6433 eorspl r6, sl, #855638016 ; 0x33000000 + 45b4: 32050a09 andcc r0, r5, #36864 ; 0x9000 + 45b8: 03090aaf movweq r0, #39599 ; 0x9aaf + 45bc: 34ae2c01 strtcc r2, [lr], #3073 + 45c0: 33523a0e cmpcc r2, #57344 ; 0xe000 + 45c4: 06fc3aae ldrbteq r3, [ip], lr, lsr #21 + 45c8: 0dab3614 stceq 6, cr3, [fp, #80]! + 45cc: 084e3d06 stmdaeq lr, {r1, r2, r8, sl, fp, ip, sp}^ + 45d0: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 45d4: 01040500 tsteq r4, r0, lsl #10 + 45d8: 082e0100 stmdaeq lr!, {r8} + 45dc: 0acc140b beq ff309610 + 45e0: 1b6d067f blne 1b45fe4 + 45e4: 09142ebf ldmdbeq r4, {r0, r1, r2, r3, r4, r5, r7, r9, sl, fp, sp} + 45e8: 76067d0a strvc r7, [r6], -sl, lsl #26 + 45ec: 006ded36 rsbeq lr, sp, r6, lsr sp + 45f0: 00010000 andeq r0, r1, r0 + 45f4: 00401938 subeq r1, r0, r8, lsr r9 + 45f8: 00000002 andeq r0, r0, r2 + 45fc: 00bbd702 adcseq sp, fp, r2, lsl #14 + 4600: 32fd0100 rscscc r0, sp, #0 ; 0x0 + 4604: 00000000 andeq r0, r0, r0 + 4608: 01510000 cmpeq r1, r0 + 460c: 0119d500 tsteq r9, r0, lsl #10 + 4610: 00020100 andeq r0, r2, r0, lsl #2 + 4614: 6c117805 ldcvs 8, cr7, [r1], {5} + 4618: 00000e29 andeq r0, r0, r9, lsr #28 + 461c: 01010101 tsteq r1, r1, lsl #2 + 4620: 00010001 andeq r0, r1, r1 + 4624: 01010101 tsteq r1, r1, lsl #2 + 4628: 000235d5 ldrdeq r3, [r2], -r5 + 462c: 16020215 undefined + 4630: 08014ffe stmdaeq r1, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} + 4634: 0403080b streq r0, [r3], #-2059 + 4638: cffa0301 svcgt 0x00fa0301 + 463c: 092a1500 stmdbeq sl!, {r8, sl, ip} + 4640: bc31020a lfmlt f0, 4, [r1], #-40 + 4644: 7e03bd30 mcrvc 13, 0, fp, cr3, cr0, {1} + 4648: 3d443106 stfcce f3, [r4, #-24] + 464c: 7f06020d svcvc 0x0006020d + 4650: 7d0a8029 stcvc 0, cr8, [sl, #-164] + 4654: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4658: 06790a09 ldrbteq r0, [r9], -r9, lsl #20 + 465c: Address 0x000000000000465c is out of bounds. + + +Disassembly of section .comment: + +00000000 <.comment>: + 0: 20524149 subscs r4, r2, r9, asr #2 + 4: 20464c45 subcs r4, r6, r5, asr #24 + 8: 6b6e694c blvs 1b9a540 + c: 56207265 strtpl r7, [r0], -r5, ror #4 + 10: 30332e35 eorscc r2, r3, r5, lsr lr + 14: 352e322e strcc r3, [lr, #-558]! + 18: 35393231 ldrcc r3, [r9, #-561]! + 1c: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 20: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 24: 4d524120 ldfmie f4, [r2, #-128] + 28: 3a432200 bcc 10c8830 + 2c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 30: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 34: 61207374 teqvs r0, r4, ror r3 + 38: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 40: 5c73676e ldclpl 7, cr6, [r3], #-440 + 44: 766c616d strbtvc r6, [ip], -sp, ror #2 + 48: 5c617269 sfmpl f7, 2, [r1], #-420 + 4c: 4420794d strtmi r7, [r0], #-2381 + 50: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 54: 73746e65 cmnvc r4, #1616 ; 0x650 + 58: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 5c: 746e6f63 strbtvc r6, [lr], #-3939 + 60: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 64: 74616557 strbtvc r6, [r1], #-1367 + 68: 20726568 rsbscs r6, r2, r8, ror #10 + 6c: 74617453 strbtvc r7, [r1], #-1107 + 70: 206e6f69 rsbcs r6, lr, r9, ror #30 + 74: 746e6f43 strbtvc r6, [lr], #-3907 + 78: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 7c: 445c7265 ldrbmi r7, [ip], #-613 + 80: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 84: 6a624f5c bvs 1893dfc + 88: 6c65445c cfstrdvs mvd4, [r5], #-368 + 8c: 6f2e7961 svcvs 0x002e7961 + 90: 43222022 teqmi r2, #34 ; 0x22 + 94: 6f445c3a svcvs 0x00445c3a + 98: 656d7563 strbvs r7, [sp, #-1379]! + 9c: 2073746e rsbscs r7, r3, lr, ror #8 + a0: 20646e61 rsbcs r6, r4, r1, ror #28 + a4: 74746553 ldrbtvc r6, [r4], #-1363 + a8: 73676e69 cmnvc r7, #1680 ; 0x690 + ac: 6c616d5c stclvs 13, cr6, [r1], #-368 + b0: 61726976 cmnvs r2, r6, ror r9 + b4: 20794d5c rsbscs r4, r9, ip, asr sp + b8: 75636f44 strbvc r6, [r3, #-3908]! + bc: 746e656d strbtvc r6, [lr], #-1389 + c0: 73775c73 cmnvc r7, #29440 ; 0x7300 + c4: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + c8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + cc: 6165575c cmnvs r5, ip, asr r7 + d0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + d4: 61745320 cmnvs r4, r0, lsr #6 + d8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + dc: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + e0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + e4: 5c72656c cfldr64pl mvdx6, [r2], #-432 + e8: 75626544 strbvc r6, [r2, #-1348]! + ec: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + f0: 69445c6a stmdbvs r4, {r1, r3, r5, r6, sl, fp, ip, lr}^ + f4: 616c7073 smcvs 50947 + f8: 226f2e79 rsbcs r2, pc, #1936 ; 0x790 + fc: 3a432220 bcc 10c8984 + 100: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 104: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 108: 61207374 teqvs r0, r4, ror r3 + 10c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 110: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 114: 5c73676e ldclpl 7, cr6, [r3], #-440 + 118: 766c616d strbtvc r6, [ip], -sp, ror #2 + 11c: 5c617269 sfmpl f7, 2, [r1], #-420 + 120: 4420794d strtmi r7, [r0], #-2381 + 124: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 128: 73746e65 cmnvc r4, #1616 ; 0x650 + 12c: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 130: 746e6f63 strbtvc r6, [lr], #-3939 + 134: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 138: 74616557 strbtvc r6, [r1], #-1367 + 13c: 20726568 rsbscs r6, r2, r8, ror #10 + 140: 74617453 strbtvc r7, [r1], #-1107 + 144: 206e6f69 rsbcs r6, lr, r9, ror #30 + 148: 746e6f43 strbtvc r6, [lr], #-3907 + 14c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 150: 445c7265 ldrbmi r7, [ip], #-613 + 154: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 158: 6a624f5c bvs 1893ed0 + 15c: 444c485c strbmi r4, [ip], #-2140 + 160: 6f2e7672 svcvs 0x002e7672 + 164: 43222022 teqmi r2, #34 ; 0x22 + 168: 6f445c3a svcvs 0x00445c3a + 16c: 656d7563 strbvs r7, [sp, #-1379]! + 170: 2073746e rsbscs r7, r3, lr, ror #8 + 174: 20646e61 rsbcs r6, r4, r1, ror #28 + 178: 74746553 ldrbtvc r6, [r4], #-1363 + 17c: 73676e69 cmnvc r7, #1680 ; 0x690 + 180: 6c616d5c stclvs 13, cr6, [r1], #-368 + 184: 61726976 cmnvs r2, r6, ror r9 + 188: 20794d5c rsbscs r4, r9, ip, asr sp + 18c: 75636f44 strbvc r6, [r3, #-3908]! + 190: 746e656d strbtvc r6, [lr], #-1389 + 194: 73775c73 cmnvc r7, #29440 ; 0x7300 + 198: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 19c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1a0: 6165575c cmnvs r5, ip, asr r7 + 1a4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1a8: 61745320 cmnvs r4, r0, lsr #6 + 1ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1b0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1b4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1b8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1bc: 75626544 strbvc r6, [r2, #-1348]! + 1c0: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 1c4: 6e495c6a cdpvs 12, 4, cr5, cr9, cr10, {3} + 1c8: 492d7469 pushmi {r0, r3, r5, r6, sl, ip, sp, lr} + 1cc: 6f2e5241 svcvs 0x002e5241 + 1d0: 43222022 teqmi r2, #34 ; 0x22 + 1d4: 6f445c3a svcvs 0x00445c3a + 1d8: 656d7563 strbvs r7, [sp, #-1379]! + 1dc: 2073746e rsbscs r7, r3, lr, ror #8 + 1e0: 20646e61 rsbcs r6, r4, r1, ror #28 + 1e4: 74746553 ldrbtvc r6, [r4], #-1363 + 1e8: 73676e69 cmnvc r7, #1680 ; 0x690 + 1ec: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1f0: 61726976 cmnvs r2, r6, ror r9 + 1f4: 20794d5c rsbscs r4, r9, ip, asr sp + 1f8: 75636f44 strbvc r6, [r3, #-3908]! + 1fc: 746e656d strbtvc r6, [lr], #-1389 + 200: 73775c73 cmnvc r7, #29440 ; 0x7300 + 204: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 208: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 20c: 6165575c cmnvs r5, ip, asr r7 + 210: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 214: 61745320 cmnvs r4, r0, lsr #6 + 218: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 21c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 220: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 224: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 228: 75626544 strbvc r6, [r2, #-1348]! + 22c: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 230: 654b5c6a strbvs r5, [fp, #-3178] + 234: 616f6279 smcvs 63017 + 238: 6f2e6472 svcvs 0x002e6472 + 23c: 43222022 teqmi r2, #34 ; 0x22 + 240: 6f445c3a svcvs 0x00445c3a + 244: 656d7563 strbvs r7, [sp, #-1379]! + 248: 2073746e rsbscs r7, r3, lr, ror #8 + 24c: 20646e61 rsbcs r6, r4, r1, ror #28 + 250: 74746553 ldrbtvc r6, [r4], #-1363 + 254: 73676e69 cmnvc r7, #1680 ; 0x690 + 258: 6c616d5c stclvs 13, cr6, [r1], #-368 + 25c: 61726976 cmnvs r2, r6, ror r9 + 260: 20794d5c rsbscs r4, r9, ip, asr sp + 264: 75636f44 strbvc r6, [r3, #-3908]! + 268: 746e656d strbtvc r6, [lr], #-1389 + 26c: 73775c73 cmnvc r7, #29440 ; 0x7300 + 270: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 274: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 278: 6165575c cmnvs r5, ip, asr r7 + 27c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 280: 61745320 cmnvs r4, r0, lsr #6 + 284: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 288: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 28c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 290: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 294: 75626544 strbvc r6, [r2, #-1348]! + 298: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 29c: 654c5c6a strbvs r5, [ip, #-3178] + 2a0: 6f2e7364 svcvs 0x002e7364 + 2a4: 43222022 teqmi r2, #34 ; 0x22 + 2a8: 6f445c3a svcvs 0x00445c3a + 2ac: 656d7563 strbvs r7, [sp, #-1379]! + 2b0: 2073746e rsbscs r7, r3, lr, ror #8 + 2b4: 20646e61 rsbcs r6, r4, r1, ror #28 + 2b8: 74746553 ldrbtvc r6, [r4], #-1363 + 2bc: 73676e69 cmnvc r7, #1680 ; 0x690 + 2c0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 2c4: 61726976 cmnvs r2, r6, ror r9 + 2c8: 20794d5c rsbscs r4, r9, ip, asr sp + 2cc: 75636f44 strbvc r6, [r3, #-3908]! + 2d0: 746e656d strbtvc r6, [lr], #-1389 + 2d4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 2d8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 2dc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2e0: 6165575c cmnvs r5, ip, asr r7 + 2e4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2e8: 61745320 cmnvs r4, r0, lsr #6 + 2ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2f0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2f4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2f8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2fc: 75626544 strbvc r6, [r2, #-1348]! + 300: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 304: 614d5c6a cmpvs sp, sl, ror #24 + 308: 6e496163 dvfvsez f6, f1, f3 + 30c: 72726574 rsbsvc r6, r2, #486539264 ; 0x1d000000 + 310: 2e747075 mrccs 0, 3, r7, cr4, cr5, {3} + 314: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 + 318: 445c3a43 ldrbmi r3, [ip], #-2627 + 31c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 320: 73746e65 cmnvc r4, #1616 ; 0x650 + 324: 646e6120 strbtvs r6, [lr], #-288 + 328: 74655320 strbtvc r5, [r5], #-800 + 32c: 676e6974 undefined + 330: 616d5c73 smcvs 54723 + 334: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 338: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 33c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 340: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 344: 775c7374 undefined + 348: 6f632d73 svcvs 0x00632d73 + 34c: 6f72746e svcvs 0x0072746e + 350: 65575c6c ldrbvs r5, [r7, #-3180] + 354: 65687461 strbvs r7, [r8, #-1121]! + 358: 74532072 ldrbvc r2, [r3], #-114 + 35c: 6f697461 svcvs 0x00697461 + 360: 6f43206e svcvs 0x0043206e + 364: 6f72746e svcvs 0x0072746e + 368: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 36c: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 370: 4f5c6775 svcmi 0x005c6775 + 374: 505c6a62 subspl r6, ip, r2, ror #20 + 378: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 37c: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 380: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 384: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 + 388: 445c3a43 ldrbmi r3, [ip], #-2627 + 38c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 390: 73746e65 cmnvc r4, #1616 ; 0x650 + 394: 646e6120 strbtvs r6, [lr], #-288 + 398: 74655320 strbtvc r5, [r5], #-800 + 39c: 676e6974 undefined + 3a0: 616d5c73 smcvs 54723 + 3a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3b4: 775c7374 undefined + 3b8: 6f632d73 svcvs 0x00632d73 + 3bc: 6f72746e svcvs 0x0072746e + 3c0: 65575c6c ldrbvs r5, [r7, #-3180] + 3c4: 65687461 strbvs r7, [r8, #-1121]! + 3c8: 74532072 ldrbvc r2, [r3], #-114 + 3cc: 6f697461 svcvs 0x00697461 + 3d0: 6f43206e svcvs 0x0043206e + 3d4: 6f72746e svcvs 0x0072746e + 3d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3dc: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 3e0: 4f5c6775 svcmi 0x005c6775 + 3e4: 525c6a62 subspl r6, ip, #401408 ; 0x62000 + 3e8: 6f696461 svcvs 0x00696461 + 3ec: 616e614d cmnvs lr, sp, asr #2 + 3f0: 656d6567 strbvs r6, [sp, #-1383]! + 3f4: 6f2e746e svcvs 0x002e746e + 3f8: 43222022 teqmi r2, #34 ; 0x22 + 3fc: 6f445c3a svcvs 0x00445c3a + 400: 656d7563 strbvs r7, [sp, #-1379]! + 404: 2073746e rsbscs r7, r3, lr, ror #8 + 408: 20646e61 rsbcs r6, r4, r1, ror #28 + 40c: 74746553 ldrbtvc r6, [r4], #-1363 + 410: 73676e69 cmnvc r7, #1680 ; 0x690 + 414: 6c616d5c stclvs 13, cr6, [r1], #-368 + 418: 61726976 cmnvs r2, r6, ror r9 + 41c: 20794d5c rsbscs r4, r9, ip, asr sp + 420: 75636f44 strbvc r6, [r3, #-3908]! + 424: 746e656d strbtvc r6, [lr], #-1389 + 428: 73775c73 cmnvc r7, #29440 ; 0x7300 + 42c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 430: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 434: 6165575c cmnvs r5, ip, asr r7 + 438: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 43c: 61745320 cmnvs r4, r0, lsr #6 + 440: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 444: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 448: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 44c: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 450: 75626544 strbvc r6, [r2, #-1348]! + 454: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 458: 65535c6a ldrbvs r5, [r3, #-3178] + 45c: 69727563 ldmdbvs r2!, {r0, r1, r5, r6, r8, sl, ip, sp, lr}^ + 460: 6e4d7974 mcrvs 9, 2, r7, cr13, cr4, {3} + 464: 746e6d67 strbtvc r6, [lr], #-3431 + 468: 20226f2e eorcs r6, r2, lr, lsr #30 + 46c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 470: 75636f44 strbvc r6, [r3, #-3908]! + 474: 746e656d strbtvc r6, [lr], #-1389 + 478: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 47c: 65532064 ldrbvs r2, [r3, #-100] + 480: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 484: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 488: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 48c: 4d5c6172 ldfmie f6, [ip, #-456] + 490: 6f442079 svcvs 0x00442079 + 494: 656d7563 strbvs r7, [sp, #-1379]! + 498: 5c73746e cfldrdpl mvd7, [r3], #-440 + 49c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4a0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4a4: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4a8: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4ac: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4b0: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4b4: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4b8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4bc: 656c6c6f strbvs r6, [ip, #-3183]! + 4c0: 65445c72 strbvs r5, [r4, #-3186] + 4c4: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4c8: 5c6a624f sfmpl f6, 2, [sl], #-316 + 4cc: 6e756f53 mrcvs 15, 3, r6, cr5, cr3, {2} + 4d0: 226f2e64 rsbcs r2, pc, #1600 ; 0x640 + 4d4: 3a432220 bcc 10c8d5c + 4d8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 4dc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4e0: 61207374 teqvs r0, r4, ror r3 + 4e4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 4e8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4ec: 5c73676e ldclpl 7, cr6, [r3], #-440 + 4f0: 766c616d strbtvc r6, [ip], -sp, ror #2 + 4f4: 5c617269 sfmpl f7, 2, [r1], #-420 + 4f8: 4420794d strtmi r7, [r0], #-2381 + 4fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 500: 73746e65 cmnvc r4, #1616 ; 0x650 + 504: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 508: 746e6f63 strbtvc r6, [lr], #-3939 + 50c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 510: 74616557 strbtvc r6, [r1], #-1367 + 514: 20726568 rsbscs r6, r2, r8, ror #10 + 518: 74617453 strbtvc r7, [r1], #-1107 + 51c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 520: 746e6f43 strbtvc r6, [lr], #-3907 + 524: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 528: 445c7265 ldrbmi r7, [ip], #-613 + 52c: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 530: 6a624f5c bvs 18942a8 + 534: 6172545c cmnvs r2, ip, asr r4 + 538: 6563736e strbvs r7, [r3, #-878]! + 53c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 540: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 544: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 548: 746e6d67 strbtvc r6, [lr], #-3431 + 54c: 20226f2e eorcs r6, r2, lr, lsr #30 + 550: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 554: 75636f44 strbvc r6, [r3, #-3908]! + 558: 746e656d strbtvc r6, [lr], #-1389 + 55c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 560: 65532064 ldrbvs r2, [r3, #-100] + 564: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 568: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 56c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 570: 4d5c6172 ldfmie f6, [ip, #-456] + 574: 6f442079 svcvs 0x00442079 + 578: 656d7563 strbvs r7, [sp, #-1379]! + 57c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 580: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 584: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 588: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 58c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 590: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 594: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 598: 43206e6f teqmi r0, #1776 ; 0x6f0 + 59c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 5a0: 656c6c6f strbvs r6, [ip, #-3183]! + 5a4: 65445c72 strbvs r5, [r4, #-3186] + 5a8: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 5ac: 5c6a624f sfmpl f6, 2, [sl], #-316 + 5b0: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} + 5b4: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ + 5b8: 50726576 rsbspl r6, r2, r6, ror r5 + 5bc: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 + 5c0: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 5c4: 6f2e746e svcvs 0x002e746e + 5c8: 43222022 teqmi r2, #34 ; 0x22 + 5cc: 6f445c3a svcvs 0x00445c3a + 5d0: 656d7563 strbvs r7, [sp, #-1379]! + 5d4: 2073746e rsbscs r7, r3, lr, ror #8 + 5d8: 20646e61 rsbcs r6, r4, r1, ror #28 + 5dc: 74746553 ldrbtvc r6, [r4], #-1363 + 5e0: 73676e69 cmnvc r7, #1680 ; 0x690 + 5e4: 6c616d5c stclvs 13, cr6, [r1], #-368 + 5e8: 61726976 cmnvs r2, r6, ror r9 + 5ec: 20794d5c rsbscs r4, r9, ip, asr sp + 5f0: 75636f44 strbvc r6, [r3, #-3908]! + 5f4: 746e656d strbtvc r6, [lr], #-1389 + 5f8: 73775c73 cmnvc r7, #29440 ; 0x7300 + 5fc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 600: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 604: 6165575c cmnvs r5, ip, asr r7 + 608: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 60c: 61745320 cmnvs r4, r0, lsr #6 + 610: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 614: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 618: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 61c: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 620: 75626544 strbvc r6, [r2, #-1348]! + 624: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 628: 61555c6a cmpvs r5, sl, ror #24 + 62c: 74557472 ldrbvc r7, [r5], #-1138 + 630: 6f2e6c69 svcvs 0x002e6c69 + 634: 43222022 teqmi r2, #34 ; 0x22 + 638: 6f445c3a svcvs 0x00445c3a + 63c: 656d7563 strbvs r7, [sp, #-1379]! + 640: 2073746e rsbscs r7, r3, lr, ror #8 + 644: 20646e61 rsbcs r6, r4, r1, ror #28 + 648: 74746553 ldrbtvc r6, [r4], #-1363 + 64c: 73676e69 cmnvc r7, #1680 ; 0x690 + 650: 6c616d5c stclvs 13, cr6, [r1], #-368 + 654: 61726976 cmnvs r2, r6, ror r9 + 658: 20794d5c rsbscs r4, r9, ip, asr sp + 65c: 75636f44 strbvc r6, [r3, #-3908]! + 660: 746e656d strbtvc r6, [lr], #-1389 + 664: 73775c73 cmnvc r7, #29440 ; 0x7300 + 668: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 66c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 670: 6165575c cmnvs r5, ip, asr r7 + 674: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 678: 61745320 cmnvs r4, r0, lsr #6 + 67c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 680: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 684: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 688: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 68c: 75626544 strbvc r6, [r2, #-1348]! + 690: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 694: 69575c6a ldmdbvs r7, {r1, r3, r5, r6, sl, fp, ip, lr}^ + 698: 656c6572 strbvs r6, [ip, #-1394]! + 69c: 694c7373 stmdbvs ip, {r0, r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 6a0: 6e4d6b6e fnmacdvs d22, d13, d30 + 6a4: 2e746d67 cdpcs 13, 7, cr6, cr4, cr7, {3} + 6a8: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 + 6ac: 445c3a43 ldrbmi r3, [ip], #-2627 + 6b0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6b4: 73746e65 cmnvc r4, #1616 ; 0x650 + 6b8: 646e6120 strbtvs r6, [lr], #-288 + 6bc: 74655320 strbtvc r5, [r5], #-800 + 6c0: 676e6974 undefined + 6c4: 616d5c73 smcvs 54723 + 6c8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6cc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6d0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6d4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6d8: 775c7374 undefined + 6dc: 6f632d73 svcvs 0x00632d73 + 6e0: 6f72746e svcvs 0x0072746e + 6e4: 65575c6c ldrbvs r5, [r7, #-3180] + 6e8: 65687461 strbvs r7, [r8, #-1121]! + 6ec: 74532072 ldrbvc r2, [r3], #-114 + 6f0: 6f697461 svcvs 0x00697461 + 6f4: 6f43206e svcvs 0x0043206e + 6f8: 6f72746e svcvs 0x0072746e + 6fc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 700: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 704: 4f5c6775 svcmi 0x005c6775 + 708: 6d5c6a62 fldsvs s13, [ip, #-392] + 70c: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} + 710: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 + 714: 445c3a43 ldrbmi r3, [ip], #-2627 + 718: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 71c: 73746e65 cmnvc r4, #1616 ; 0x650 + 720: 646e6120 strbtvs r6, [lr], #-288 + 724: 74655320 strbtvc r5, [r5], #-800 + 728: 676e6974 undefined + 72c: 616d5c73 smcvs 54723 + 730: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 734: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 738: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 73c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 740: 775c7374 undefined + 744: 6f632d73 svcvs 0x00632d73 + 748: 6f72746e svcvs 0x0072746e + 74c: 65575c6c ldrbvs r5, [r7, #-3180] + 750: 65687461 strbvs r7, [r8, #-1121]! + 754: 74532072 ldrbvc r2, [r3], #-114 + 758: 6f697461 svcvs 0x00697461 + 75c: 6f43206e svcvs 0x0043206e + 760: 6f72746e svcvs 0x0072746e + 764: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 768: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 76c: 4f5c6775 svcmi 0x005c6775 + 770: 775c6a62 ldrbvc r6, [ip, -r2, ror #20] + 774: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 778: 735f7265 cmpvc pc, #1342177286 ; 0x50000006 + 77c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 780: 635f6e6f cmpvs pc, #1776 ; 0x6f0 + 784: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 788: 656c6c6f strbvs r6, [ip, #-3183]! + 78c: 226f2e72 rsbcs r2, pc, #1824 ; 0x720 + 790: 3a432220 bcc 10c9018 + 794: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 798: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 79c: 61207374 teqvs r0, r4, ror r3 + 7a0: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 7a4: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 7a8: 5c73676e ldclpl 7, cr6, [r3], #-440 + 7ac: 766c616d strbtvc r6, [ip], -sp, ror #2 + 7b0: 5c617269 sfmpl f7, 2, [r1], #-420 + 7b4: 4420794d strtmi r7, [r0], #-2381 + 7b8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7bc: 73746e65 cmnvc r4, #1616 ; 0x650 + 7c0: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 7c4: 746e6f63 strbtvc r6, [lr], #-3939 + 7c8: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 7cc: 74616557 strbtvc r6, [r1], #-1367 + 7d0: 20726568 rsbscs r6, r2, r8, ror #10 + 7d4: 74617453 strbtvc r7, [r1], #-1107 + 7d8: 206e6f69 rsbcs r6, lr, r9, ror #30 + 7dc: 746e6f43 strbtvc r6, [lr], #-3907 + 7e0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 7e4: 505c7265 subspl r7, ip, r5, ror #4 + 7e8: 4c5c4d4c mrrcmi 13, 4, r4, ip, cr12 + 7ec: 4c5c6269 lfmmi f6, 2, [ip], {105} + 7f0: 612e434c teqvs lr, ip, asr #6 + 7f4: 43222022 teqmi r2, #34 ; 0x22 + 7f8: 6f445c3a svcvs 0x00445c3a + 7fc: 656d7563 strbvs r7, [sp, #-1379]! + 800: 2073746e rsbscs r7, r3, lr, ror #8 + 804: 20646e61 rsbcs r6, r4, r1, ror #28 + 808: 74746553 ldrbtvc r6, [r4], #-1363 + 80c: 73676e69 cmnvc r7, #1680 ; 0x690 + 810: 6c616d5c stclvs 13, cr6, [r1], #-368 + 814: 61726976 cmnvs r2, r6, ror r9 + 818: 20794d5c rsbscs r4, r9, ip, asr sp + 81c: 75636f44 strbvc r6, [r3, #-3908]! + 820: 746e656d strbtvc r6, [lr], #-1389 + 824: 73775c73 cmnvc r7, #29440 ; 0x7300 + 828: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 82c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 830: 6165575c cmnvs r5, ip, asr r7 + 834: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 838: 61745320 cmnvs r4, r0, lsr #6 + 83c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 840: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 844: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 848: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 84c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 850: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 854: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 858: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 85c: 31434d5c cmpcc r3, ip, asr sp + 860: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 864: 2022612e eorcs r6, r2, lr, lsr #2 + 868: 65722d2d ldrbvs r2, [r2, #-3373]! + 86c: 65726964 ldrbvs r6, [r2, #-2404]! + 870: 5f207463 svcpl 0x00207463 + 874: 6e697250 mcrvs 2, 3, r7, cr9, cr0, {2} + 878: 5f3d6674 svcpl 0x003d6674 + 87c: 6e697250 mcrvs 2, 3, r7, cr9, cr0, {2} + 880: 69546674 ldmdbvs r4, {r2, r4, r5, r6, r9, sl, sp, lr}^ + 884: 2d20796e stccs 9, cr7, [r0, #-440]! + 888: 6465722d strbtvs r7, [r5], #-557 + 88c: 63657269 cmnvs r5, #-1879048186 ; 0x90000006 + 890: 535f2074 cmppl pc, #116 ; 0x74 + 894: 666e6163 strbtvs r6, [lr], -r3, ror #2 + 898: 63535f3d cmpvs r3, #244 ; 0xf4 + 89c: 53666e61 cmnpl r6, #1552 ; 0x610 + 8a0: 6c6c616d stfvse f6, [ip], #-436 + 8a4: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 8a8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 8ac: 75636f44 strbvc r6, [r3, #-3908]! + 8b0: 746e656d strbtvc r6, [lr], #-1389 + 8b4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 8b8: 65532064 ldrbvs r2, [r3, #-100] + 8bc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 8c0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 8c4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 8c8: 4d5c6172 ldfmie f6, [ip, #-456] + 8cc: 6f442079 svcvs 0x00442079 + 8d0: 656d7563 strbvs r7, [sp, #-1379]! + 8d4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 8d8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 8dc: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 8e0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 8e4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 8e8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 8ec: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 8f0: 43206e6f teqmi r0, #1776 ; 0x6f0 + 8f4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 8f8: 656c6c6f strbvs r6, [ip, #-3183]! + 8fc: 65445c72 strbvs r5, [r4, #-3186] + 900: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 904: 5c657845 stclpl 8, cr7, [r5], #-276 + 908: 74616557 strbtvc r6, [r1], #-1367 + 90c: 20726568 rsbscs r6, r2, r8, ror #10 + 910: 74617453 strbtvc r7, [r1], #-1107 + 914: 206e6f69 rsbcs r6, lr, r9, ror #30 + 918: 746e6f43 strbtvc r6, [lr], #-3907 + 91c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 920: 6f2e7265 svcvs 0x002e7265 + 924: 20227475 eorcs r7, r2, r5, ror r4 + 928: 616d2d2d cmnvs sp, sp, lsr #26 + 92c: 43222070 teqmi r2, #112 ; 0x70 + 930: 6f445c3a svcvs 0x00445c3a + 934: 656d7563 strbvs r7, [sp, #-1379]! + 938: 2073746e rsbscs r7, r3, lr, ror #8 + 93c: 20646e61 rsbcs r6, r4, r1, ror #28 + 940: 74746553 ldrbtvc r6, [r4], #-1363 + 944: 73676e69 cmnvc r7, #1680 ; 0x690 + 948: 6c616d5c stclvs 13, cr6, [r1], #-368 + 94c: 61726976 cmnvs r2, r6, ror r9 + 950: 20794d5c rsbscs r4, r9, ip, asr sp + 954: 75636f44 strbvc r6, [r3, #-3908]! + 958: 746e656d strbtvc r6, [lr], #-1389 + 95c: 73775c73 cmnvc r7, #29440 ; 0x7300 + 960: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 964: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 968: 6165575c cmnvs r5, ip, asr r7 + 96c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 970: 61745320 cmnvs r4, r0, lsr #6 + 974: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 978: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 97c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 980: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 984: 75626544 strbvc r6, [r2, #-1348]! + 988: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ + 98c: 575c7473 undefined + 990: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 994: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 998: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 99c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 9a0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 9a4: 656c6c6f strbvs r6, [ip, #-3183]! + 9a8: 616d2e72 smcvs 53986 + 9ac: 2d202270 sfmcs f2, 4, [r0, #-448]! + 9b0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 9b4: 20676966 rsbcs r6, r7, r6, ror #18 + 9b8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 9bc: 75636f44 strbvc r6, [r3, #-3908]! + 9c0: 746e656d strbtvc r6, [lr], #-1389 + 9c4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 9c8: 65532064 ldrbvs r2, [r3, #-100] + 9cc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 9d0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 9d4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 9d8: 4d5c6172 ldfmie f6, [ip, #-456] + 9dc: 6f442079 svcvs 0x00442079 + 9e0: 656d7563 strbvs r7, [sp, #-1379]! + 9e4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 9e8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 9ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 9f0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 9f4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 9f8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 9fc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + a00: 43206e6f teqmi r0, #1776 ; 0x6f0 + a04: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + a08: 656c6c6f strbvs r6, [ip, #-3183]! + a0c: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 + a10: 63495c4d movtvs r5, #40013 ; 0x9c4d + a14: 434d5c66 movtmi r5, #56422 ; 0xdc66 + a18: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + a1c: 41522d78 cmpmi r2, r8, ror sp + a20: 4f522d4d svcmi 0x00522d4d + a24: 63692e4d cmnvs r9, #1232 ; 0x4d0 + a28: 2d202266 sfmcs f2, 4, [r0, #-408]! + a2c: 746e652d strbtvc r6, [lr], #-1325 + a30: 5f207972 svcpl 0x00207972 + a34: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + a38: 65765f74 ldrbvs r5, [r6, #-3956]! + a3c: 726f7463 rsbvc r7, pc, #1660944384 ; 0x63000000 + a40: 4900005f stmdbmi r0, {r0, r1, r2, r3, r4, r6} + a44: 7475706e ldrbtvc r7, [r5], #-110 + a48: 6d6f6320 stclvs 3, cr6, [pc, #-128]! + a4c: 746e656d strbtvc r6, [lr], #-1389 + a50: 00003a73 andeq r3, r0, r3, ror sl + a54: 445c3a43 ldrbmi r3, [ip], #-2627 + a58: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a5c: 73746e65 cmnvc r4, #1616 ; 0x650 + a60: 646e6120 strbtvs r6, [lr], #-288 + a64: 74655320 strbtvc r5, [r5], #-800 + a68: 676e6974 undefined + a6c: 616d5c73 smcvs 54723 + a70: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a74: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a78: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a7c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a80: 775c7374 undefined + a84: 6f632d73 svcvs 0x00632d73 + a88: 6f72746e svcvs 0x0072746e + a8c: 65575c6c ldrbvs r5, [r7, #-3180] + a90: 65687461 strbvs r7, [r8, #-1121]! + a94: 74532072 ldrbvc r2, [r3], #-114 + a98: 6f697461 svcvs 0x00697461 + a9c: 6f43206e svcvs 0x0043206e + aa0: 6f72746e svcvs 0x0072746e + aa4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + aa8: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + aac: 4f5c6775 svcmi 0x005c6775 + ab0: 445c6a62 ldrbmi r6, [ip], #-2658 + ab4: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + ab8: 003a6f2e eorseq r6, sl, lr, lsr #30 + abc: 52414900 subpl r4, r1, #0 ; 0x0 + ac0: 534e4120 movtpl r4, #57632 ; 0xe120 + ac4: 2f432049 svccs 0x00432049 + ac8: 202b2b43 eorcs r2, fp, r3, asr #22 + acc: 706d6f43 rsbvc r6, sp, r3, asr #30 + ad0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + ad4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + ad8: 322e3033 eorcc r3, lr, #51 ; 0x33 + adc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ae0: 572f3539 undefined + ae4: 4b203233 blmi 80d3b8 + ae8: 534b4349 movtpl r4, #45897 ; 0xb349 + aec: 54524154 ldrbpl r4, [r2], #-340 + af0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + af4: 4d524120 ldfmie f4, [r2, #-128] + af8: 3a432200 bcc 10c9300 + afc: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + b00: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b04: 61207374 teqvs r0, r4, ror r3 + b08: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + b0c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + b10: 5c73676e ldclpl 7, cr6, [r3], #-440 + b14: 766c616d strbtvc r6, [ip], -sp, ror #2 + b18: 5c617269 sfmpl f7, 2, [r1], #-420 + b1c: 4420794d strtmi r7, [r0], #-2381 + b20: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b24: 73746e65 cmnvc r4, #1616 ; 0x650 + b28: 2d73775c ldclcs 7, cr7, [r3, #-368]! + b2c: 746e6f63 strbtvc r6, [lr], #-3939 + b30: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + b34: 74616557 strbtvc r6, [r1], #-1367 + b38: 20726568 rsbscs r6, r2, r8, ror #10 + b3c: 74617453 strbtvc r7, [r1], #-1107 + b40: 206e6f69 rsbcs r6, lr, r9, ror #30 + b44: 746e6f43 strbtvc r6, [lr], #-3907 + b48: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b4c: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + b50: 5c43414d stfple f4, [r3], {77} + b54: 76697244 strbtvc r7, [r9], -r4, asr #4 + b58: 5c737265 lfmpl f7, 2, [r3], #-404 + b5c: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + b60: 445c6563 ldrbmi r6, [ip], #-1379 + b64: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + b68: 2022632e eorcs r6, r2, lr, lsr #6 + b6c: 4620442d strtmi r4, [r0], -sp, lsr #8 + b70: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + b74: 442d205a strtmi r2, [sp], #-90 + b78: 43455320 movtmi r5, #21280 ; 0x5320 + b7c: 54495255 strbpl r5, [r9], #-597 + b80: 4e455f59 mcrmi 15, 2, r5, cr5, cr9, {2} + b84: 454c4241 strbmi r4, [ip, #-577] + b88: 6c2d2044 stcvs 0, cr2, [sp], #-272 + b8c: 43222043 teqmi r2, #67 ; 0x43 + b90: 6f445c3a svcvs 0x00445c3a + b94: 656d7563 strbvs r7, [sp, #-1379]! + b98: 2073746e rsbscs r7, r3, lr, ror #8 + b9c: 20646e61 rsbcs r6, r4, r1, ror #28 + ba0: 74746553 ldrbtvc r6, [r4], #-1363 + ba4: 73676e69 cmnvc r7, #1680 ; 0x690 + ba8: 6c616d5c stclvs 13, cr6, [r1], #-368 + bac: 61726976 cmnvs r2, r6, ror r9 + bb0: 20794d5c rsbscs r4, r9, ip, asr sp + bb4: 75636f44 strbvc r6, [r3, #-3908]! + bb8: 746e656d strbtvc r6, [lr], #-1389 + bbc: 73775c73 cmnvc r7, #29440 ; 0x7300 + bc0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + bc4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + bc8: 6165575c cmnvs r5, ip, asr r7 + bcc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + bd0: 61745320 cmnvs r4, r0, lsr #6 + bd4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + bd8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + bdc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + be0: 5c72656c cfldr64pl mvdx6, [r2], #-432 + be4: 75626544 strbvc r6, [r2, #-1348]! + be8: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ + bec: 225c7473 subscs r7, ip, #1929379840 ; 0x73000000 + bf0: 642d2d20 strtvs r2, [sp], #-3360 + bf4: 5f676169 svcpl 0x00676169 + bf8: 70707573 rsbsvc r7, r0, r3, ror r5 + bfc: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + c00: 39655020 stmdbcc r5!, {r5, ip, lr}^ + c04: 502c3135 eorpl r3, ip, r5, lsr r1 + c08: 31313165 teqcc r1, r5, ror #2 + c0c: 3965502c stmdbcc r5!, {r2, r3, r5, ip, lr}^ + c10: 2d203034 stccs 0, cr3, [r0, #-208]! + c14: 4322206f teqmi r2, #111 ; 0x6f + c18: 6f445c3a svcvs 0x00445c3a + c1c: 656d7563 strbvs r7, [sp, #-1379]! + c20: 2073746e rsbscs r7, r3, lr, ror #8 + c24: 20646e61 rsbcs r6, r4, r1, ror #28 + c28: 74746553 ldrbtvc r6, [r4], #-1363 + c2c: 73676e69 cmnvc r7, #1680 ; 0x690 + c30: 6c616d5c stclvs 13, cr6, [r1], #-368 + c34: 61726976 cmnvs r2, r6, ror r9 + c38: 20794d5c rsbscs r4, r9, ip, asr sp + c3c: 75636f44 strbvc r6, [r3, #-3908]! + c40: 746e656d strbtvc r6, [lr], #-1389 + c44: 73775c73 cmnvc r7, #29440 ; 0x7300 + c48: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + c4c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + c50: 6165575c cmnvs r5, ip, asr r7 + c54: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + c58: 61745320 cmnvs r4, r0, lsr #6 + c5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + c60: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + c64: 6c6f7274 sfmvs f7, 2, [pc], #-464 + c68: 5c72656c cfldr64pl mvdx6, [r2], #-432 + c6c: 75626544 strbvc r6, [r2, #-1348]! + c70: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + c74: 20225c6a eorcs r5, r2, sl, ror #24 + c78: 65642d2d strbvs r2, [r4, #-3373]! + c7c: 20677562 rsbcs r7, r7, r2, ror #10 + c80: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} + c84: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} + c88: 74696c3d strbtvc r6, [r9], #-3133 + c8c: 20656c74 rsbcs r6, r5, r4, ror ip + c90: 70632d2d rsbvc r2, r3, sp, lsr #26 + c94: 52413d75 subpl r3, r1, #7488 ; 0x1d40 + c98: 4454374d ldrbmi r3, [r4], #-1869 + c9c: 532d494d teqpl sp, #1261568 ; 0x134000 + ca0: 20652d20 rsbcs r2, r5, r0, lsr #26 + ca4: 70662d2d rsbvc r2, r6, sp, lsr #26 + ca8: 6f4e3d75 svcvs 0x004e3d75 + cac: 2d20656e cfstr32cs mvfx6, [r0, #-440]! + cb0: 696c642d stmdbvs ip!, {r0, r2, r3, r5, sl, sp, lr}^ + cb4: 6f635f62 svcvs 0x00635f62 + cb8: 6769666e strbvs r6, [r9, -lr, ror #12]! + cbc: 3a432220 bcc 10c9544 + cc0: 6f72505c svcvs 0x0072505c + cc4: 6d617267 sfmvs f7, 2, [r1, #-412]! + cc8: 6c694620 stclvs 6, cr4, [r9], #-128 + ccc: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + cd0: 53205241 teqpl r0, #268435460 ; 0x10000004 + cd4: 65747379 ldrbvs r7, [r4, #-889]! + cd8: 455c736d ldrbmi r7, [ip, #-877] + cdc: 6465626d strbtvs r6, [r5], #-621 + ce0: 20646564 rsbcs r6, r4, r4, ror #10 + ce4: 6b726f57 blvs 1c9ca48 + ce8: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + cec: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + cf0: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + cf4: 74736b63 ldrbtvc r6, [r3], #-2915 + cf8: 5c747261 lfmpl f7, 2, [r4], #-388 + cfc: 5c6d7261 sfmpl f7, 2, [sp], #-388 + d00: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + d04: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + d08: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} + d0c: 5f676966 svcpl 0x00676966 + d10: 6d726f4e ldclvs 15, cr6, [r2, #-312]! + d14: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} + d18: 492d2022 pushmi {r1, r5, sp} + d1c: 3a432220 bcc 10c95a4 + d20: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + d24: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + d28: 61207374 teqvs r0, r4, ror r3 + d2c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + d30: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + d34: 5c73676e ldclpl 7, cr6, [r3], #-440 + d38: 766c616d strbtvc r6, [ip], -sp, ror #2 + d3c: 5c617269 sfmpl f7, 2, [r1], #-420 + d40: 4420794d strtmi r7, [r0], #-2381 + d44: 6d75636f ldclvs 3, cr6, [r5, #-444]! + d48: 73746e65 cmnvc r4, #1616 ; 0x650 + d4c: 2d73775c ldclcs 7, cr7, [r3, #-368]! + d50: 746e6f63 strbtvc r6, [lr], #-3939 + d54: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + d58: 74616557 strbtvc r6, [r1], #-1367 + d5c: 20726568 rsbscs r6, r2, r8, ror #10 + d60: 74617453 strbtvc r7, [r1], #-1107 + d64: 206e6f69 rsbcs r6, lr, r9, ror #30 + d68: 746e6f43 strbtvc r6, [lr], #-3907 + d6c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + d70: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + d74: 5c43414d stfple f4, [r3], {77} + d78: 76697244 strbtvc r7, [r9], -r4, asr #4 + d7c: 5c737265 lfmpl f7, 2, [r3], #-404 + d80: 65746e49 ldrbvs r6, [r4, #-3657]! + d84: 63616672 cmnvs r1, #119537664 ; 0x7200000 + d88: 20225c65 eorcs r5, r2, r5, ror #24 + d8c: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + d90: 445c3a43 ldrbmi r3, [ip], #-2627 + d94: 6d75636f ldclvs 3, cr6, [r5, #-444]! + d98: 73746e65 cmnvc r4, #1616 ; 0x650 + d9c: 646e6120 strbtvs r6, [lr], #-288 + da0: 74655320 strbtvc r5, [r5], #-800 + da4: 676e6974 undefined + da8: 616d5c73 smcvs 54723 + dac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + db0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + db4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + db8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + dbc: 775c7374 undefined + dc0: 6f632d73 svcvs 0x00632d73 + dc4: 6f72746e svcvs 0x0072746e + dc8: 65575c6c ldrbvs r5, [r7, #-3180] + dcc: 65687461 strbvs r7, [r8, #-1121]! + dd0: 74532072 ldrbvc r2, [r3], #-114 + dd4: 6f697461 svcvs 0x00697461 + dd8: 6f43206e svcvs 0x0043206e + ddc: 6f72746e svcvs 0x0072746e + de0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + de4: 4d4c505c stclmi 0, cr5, [ip, #-368] + de8: 746e495c strbtvc r4, [lr], #-2396 + dec: 61667265 cmnvs r6, r5, ror #4 + df0: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + df4: 20492d20 subcs r2, r9, r0, lsr #26 + df8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + dfc: 676f7250 undefined + e00: 206d6172 rsbcs r6, sp, r2, ror r1 + e04: 656c6946 strbvs r6, [ip, #-2374]! + e08: 41495c73 cmpmi r9, r3, ror ip + e0c: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + e10: 6d657473 cfstrdvs mvd7, [r5, #-460]! + e14: 6d455c73 stclvs 12, cr5, [r5, #-460] + e18: 64646562 strbtvs r6, [r4], #-1378 + e1c: 57206465 strpl r6, [r0, -r5, ror #8]! + e20: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + e24: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + e28: 342e3520 strtcc r3, [lr], #-1312 + e2c: 63694b20 cmnvs r9, #32768 ; 0x8000 + e30: 6174736b cmnvs r4, fp, ror #6 + e34: 615c7472 cmpvs ip, r2, ror r4 + e38: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + e3c: 225c434e subscs r4, ip, #939524097 ; 0x38000001 + e40: 692d2d20 pushvs {r5, r8, sl, fp, sp} + e44: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + e48: 6b726f77 blvs 1c9cc2c + e4c: 632d2d20 teqvs sp, #2048 ; 0x800 + e50: 6d5f7570 cfldr64vs mvdx7, [pc, #-448] + e54: 2065646f rsbcs r6, r5, pc, ror #8 + e58: 6d756874 ldclvs 8, cr6, [r5, #-464]! + e5c: 4f2d2062 svcmi 0x002d2062 + e60: 43000068 movwmi r0, #104 ; 0x68 + e64: 6f445c3a svcvs 0x00445c3a + e68: 656d7563 strbvs r7, [sp, #-1379]! + e6c: 2073746e rsbscs r7, r3, lr, ror #8 + e70: 20646e61 rsbcs r6, r4, r1, ror #28 + e74: 74746553 ldrbtvc r6, [r4], #-1363 + e78: 73676e69 cmnvc r7, #1680 ; 0x690 + e7c: 6c616d5c stclvs 13, cr6, [r1], #-368 + e80: 61726976 cmnvs r2, r6, ror r9 + e84: 20794d5c rsbscs r4, r9, ip, asr sp + e88: 75636f44 strbvc r6, [r3, #-3908]! + e8c: 746e656d strbtvc r6, [lr], #-1389 + e90: 73775c73 cmnvc r7, #29440 ; 0x7300 + e94: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + e98: 6c6f7274 sfmvs f7, 2, [pc], #-464 + e9c: 6165575c cmnvs r5, ip, asr r7 + ea0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + ea4: 61745320 cmnvs r4, r0, lsr #6 + ea8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + eac: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + eb0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + eb4: 5c72656c cfldr64pl mvdx6, [r2], #-432 + eb8: 75626544 strbvc r6, [r2, #-1348]! + ebc: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + ec0: 69445c6a stmdbvs r4, {r1, r3, r5, r6, sl, fp, ip, lr}^ + ec4: 616c7073 smcvs 50947 + ec8: 3a6f2e79 bcc 1bcc8b4 + ecc: 41490000 cmpmi r9, r0 + ed0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + ed4: 43204953 teqmi r0, #1359872 ; 0x14c000 + ed8: 2b2b432f blcs ad1b9c + edc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + ee0: 656c6970 strbvs r6, [ip, #-2416]! + ee4: 35562072 ldrbcc r2, [r6, #-114] + ee8: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + eec: 31332e32 teqcc r3, r2, lsr lr + ef0: 2f353932 svccs 0x00353932 + ef4: 20323357 eorscs r3, r2, r7, asr r3 + ef8: 4b43494b blmi 10d342c + efc: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + f00: 6f662054 svcvs 0x00662054 + f04: 52412072 subpl r2, r1, #114 ; 0x72 + f08: 4322004d teqmi r2, #77 ; 0x4d + f0c: 6f445c3a svcvs 0x00445c3a + f10: 656d7563 strbvs r7, [sp, #-1379]! + f14: 2073746e rsbscs r7, r3, lr, ror #8 + f18: 20646e61 rsbcs r6, r4, r1, ror #28 + f1c: 74746553 ldrbtvc r6, [r4], #-1363 + f20: 73676e69 cmnvc r7, #1680 ; 0x690 + f24: 6c616d5c stclvs 13, cr6, [r1], #-368 + f28: 61726976 cmnvs r2, r6, ror r9 + f2c: 20794d5c rsbscs r4, r9, ip, asr sp + f30: 75636f44 strbvc r6, [r3, #-3908]! + f34: 746e656d strbtvc r6, [lr], #-1389 + f38: 73775c73 cmnvc r7, #29440 ; 0x7300 + f3c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + f40: 6c6f7274 sfmvs f7, 2, [pc], #-464 + f44: 6165575c cmnvs r5, ip, asr r7 + f48: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + f4c: 61745320 cmnvs r4, r0, lsr #6 + f50: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + f54: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + f58: 6c6f7274 sfmvs f7, 2, [pc], #-464 + f5c: 5c72656c cfldr64pl mvdx6, [r2], #-432 + f60: 6c707041 ldclvs 0, cr7, [r0], #-260 + f64: 74616369 strbtvc r6, [r1], #-873 + f68: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + f6c: 6c697455 cfstrdvs mvd7, [r9], #-340 + f70: 65697469 strbvs r7, [r9, #-1129]! + f74: 69445c73 stmdbvs r4, {r0, r1, r4, r5, r6, sl, fp, ip, lr}^ + f78: 616c7073 smcvs 50947 + f7c: 22632e79 rsbcs r2, r3, #1936 ; 0x790 + f80: 20442d20 subcs r2, r4, r0, lsr #26 + f84: 4d343246 lfmmi f3, 4, [r4, #-280]! + f88: 2d205a48 fstmdbscs r0!, {s10-s81} + f8c: 45532044 ldrbmi r2, [r3, #-68] + f90: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ + f94: 455f5954 ldrbmi r5, [pc, #-2388] ; 648 <__FIQ_stack_size+0x248> + f98: 4c42414e stfmie f4, [r2], {78} + f9c: 2d204445 cfstrscs mvf4, [r0, #-276]! + fa0: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 + fa4: 445c3a43 ldrbmi r3, [ip], #-2627 + fa8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + fac: 73746e65 cmnvc r4, #1616 ; 0x650 + fb0: 646e6120 strbtvs r6, [lr], #-288 + fb4: 74655320 strbtvc r5, [r5], #-800 + fb8: 676e6974 undefined + fbc: 616d5c73 smcvs 54723 + fc0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + fc4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + fc8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + fcc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + fd0: 775c7374 undefined + fd4: 6f632d73 svcvs 0x00632d73 + fd8: 6f72746e svcvs 0x0072746e + fdc: 65575c6c ldrbvs r5, [r7, #-3180] + fe0: 65687461 strbvs r7, [r8, #-1121]! + fe4: 74532072 ldrbvc r2, [r3], #-114 + fe8: 6f697461 svcvs 0x00697461 + fec: 6f43206e svcvs 0x0043206e + ff0: 6f72746e svcvs 0x0072746e + ff4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ff8: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + ffc: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 + 1000: 5c747369 ldclpl 3, cr7, [r4], #-420 + 1004: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 1008: 67616964 strbvs r6, [r1, -r4, ror #18]! + 100c: 7075735f rsbsvc r7, r5, pc, asr r3 + 1010: 73657270 cmnvc r5, #7 ; 0x7 + 1014: 65502073 ldrbvs r2, [r0, #-115] + 1018: 2c313539 cfldr32cs mvfx3, [r1], #-228 + 101c: 31316550 teqcc r1, r0, asr r5 + 1020: 65502c31 ldrbvs r2, [r0, #-3121] + 1024: 20303439 eorscs r3, r0, r9, lsr r4 + 1028: 22206f2d eorcs r6, r0, #180 ; 0xb4 + 102c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1030: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1034: 73746e65 cmnvc r4, #1616 ; 0x650 + 1038: 646e6120 strbtvs r6, [lr], #-288 + 103c: 74655320 strbtvc r5, [r5], #-800 + 1040: 676e6974 undefined + 1044: 616d5c73 smcvs 54723 + 1048: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 104c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1050: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1054: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1058: 775c7374 undefined + 105c: 6f632d73 svcvs 0x00632d73 + 1060: 6f72746e svcvs 0x0072746e + 1064: 65575c6c ldrbvs r5, [r7, #-3180] + 1068: 65687461 strbvs r7, [r8, #-1121]! + 106c: 74532072 ldrbvc r2, [r3], #-114 + 1070: 6f697461 svcvs 0x00697461 + 1074: 6f43206e svcvs 0x0043206e + 1078: 6f72746e svcvs 0x0072746e + 107c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1080: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 1084: 4f5c6775 svcmi 0x005c6775 + 1088: 225c6a62 subscs r6, ip, #401408 ; 0x62000 + 108c: 642d2d20 strtvs r2, [sp], #-3360 + 1090: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 1094: 652d2d20 strvs r2, [sp, #-3360]! + 1098: 6169646e cmnvs r9, lr, ror #8 + 109c: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ + 10a0: 656c7474 strbvs r7, [ip, #-1140]! + 10a4: 632d2d20 teqvs sp, #2048 ; 0x800 + 10a8: 413d7570 teqmi sp, r0, ror r5 + 10ac: 54374d52 ldrtpl r4, [r7], #-3410 + 10b0: 2d494d44 stclcs 13, cr4, [r9, #-272] + 10b4: 652d2053 strvs r2, [sp, #-83]! + 10b8: 662d2d20 strtvs r2, [sp], -r0, lsr #26 + 10bc: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} + 10c0: 20656e6f rsbcs r6, r5, pc, ror #28 + 10c4: 6c642d2d stclvs 13, cr2, [r4], #-180 + 10c8: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 + 10cc: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 10d0: 43222067 teqmi r2, #103 ; 0x67 + 10d4: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 10d8: 6172676f cmnvs r2, pc, ror #14 + 10dc: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 10e0: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 10e4: 20524149 subscs r4, r2, r9, asr #2 + 10e8: 74737953 ldrbtvc r7, [r3], #-2387 + 10ec: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 10f0: 65626d45 strbvs r6, [r2, #-3397]! + 10f4: 64656464 strbtvs r6, [r5], #-1124 + 10f8: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 10fc: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 1100: 35206863 strcc r6, [r0, #-2147]! + 1104: 4b20342e blmi 80e1c4 + 1108: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 110c: 74726174 ldrbtvc r6, [r2], #-372 + 1110: 6d72615c ldfvse f6, [r2, #-368]! + 1114: 434e495c movtmi r4, #59740 ; 0xe95c + 1118: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ + 111c: 6f435f62 svcvs 0x00435f62 + 1120: 6769666e strbvs r6, [r9, -lr, ror #12]! + 1124: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 + 1128: 2e6c616d powcsez f6, f4, #5.0 + 112c: 2d202268 sfmcs f2, 4, [r0, #-416]! + 1130: 43222049 teqmi r2, #73 ; 0x49 + 1134: 6f445c3a svcvs 0x00445c3a + 1138: 656d7563 strbvs r7, [sp, #-1379]! + 113c: 2073746e rsbscs r7, r3, lr, ror #8 + 1140: 20646e61 rsbcs r6, r4, r1, ror #28 + 1144: 74746553 ldrbtvc r6, [r4], #-1363 + 1148: 73676e69 cmnvc r7, #1680 ; 0x690 + 114c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1150: 61726976 cmnvs r2, r6, ror r9 + 1154: 20794d5c rsbscs r4, r9, ip, asr sp + 1158: 75636f44 strbvc r6, [r3, #-3908]! + 115c: 746e656d strbtvc r6, [lr], #-1389 + 1160: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1164: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1168: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 116c: 6165575c cmnvs r5, ip, asr r7 + 1170: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1174: 61745320 cmnvs r4, r0, lsr #6 + 1178: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 117c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1180: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1184: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1188: 43414d53 movtmi r4, #7507 ; 0x1d53 + 118c: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 1190: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 1194: 746e495c strbtvc r4, [lr], #-2396 + 1198: 61667265 cmnvs r6, r5, ror #4 + 119c: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 11a0: 20492d20 subcs r2, r9, r0, lsr #26 + 11a4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 11a8: 75636f44 strbvc r6, [r3, #-3908]! + 11ac: 746e656d strbtvc r6, [lr], #-1389 + 11b0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 11b4: 65532064 ldrbvs r2, [r3, #-100] + 11b8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 11bc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 11c0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 11c4: 4d5c6172 ldfmie f6, [ip, #-456] + 11c8: 6f442079 svcvs 0x00442079 + 11cc: 656d7563 strbvs r7, [sp, #-1379]! + 11d0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 11d4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 11d8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 11dc: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 11e0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 11e4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 11e8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 11ec: 43206e6f teqmi r0, #1776 ; 0x6f0 + 11f0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 11f4: 656c6c6f strbvs r6, [ip, #-3183]! + 11f8: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 + 11fc: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} + 1200: 66726574 undefined + 1204: 5c656361 stclpl 3, cr6, [r5], #-388 + 1208: 492d2022 pushmi {r1, r5, sp} + 120c: 3a432220 bcc 10c9a94 + 1210: 6f72505c svcvs 0x0072505c + 1214: 6d617267 sfmvs f7, 2, [r1, #-412]! + 1218: 6c694620 stclvs 6, cr4, [r9], #-128 + 121c: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 1220: 53205241 teqpl r0, #268435460 ; 0x10000004 + 1224: 65747379 ldrbvs r7, [r4, #-889]! + 1228: 455c736d ldrbmi r7, [ip, #-877] + 122c: 6465626d strbtvs r6, [r5], #-621 + 1230: 20646564 rsbcs r6, r4, r4, ror #10 + 1234: 6b726f57 blvs 1c9cf98 + 1238: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 123c: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 1240: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 1244: 74736b63 ldrbtvc r6, [r3], #-2915 + 1248: 5c747261 lfmpl f7, 2, [r4], #-388 + 124c: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 1250: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 1254: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 1258: 65746e69 ldrbvs r6, [r4, #-3689]! + 125c: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 1260: 2d2d206b stccs 0, cr2, [sp, #-428]! + 1264: 5f757063 svcpl 0x00757063 + 1268: 65646f6d strbvs r6, [r4, #-3949]! + 126c: 75687420 strbvc r7, [r8, #-1056]! + 1270: 2d20626d sfmcs f6, 4, [r0, #-436]! + 1274: 0000684f andeq r6, r0, pc, asr #16 + 1278: 445c3a43 ldrbmi r3, [ip], #-2627 + 127c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1280: 73746e65 cmnvc r4, #1616 ; 0x650 + 1284: 646e6120 strbtvs r6, [lr], #-288 + 1288: 74655320 strbtvc r5, [r5], #-800 + 128c: 676e6974 undefined + 1290: 616d5c73 smcvs 54723 + 1294: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1298: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 129c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 12a0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 12a4: 775c7374 undefined + 12a8: 6f632d73 svcvs 0x00632d73 + 12ac: 6f72746e svcvs 0x0072746e + 12b0: 65575c6c ldrbvs r5, [r7, #-3180] + 12b4: 65687461 strbvs r7, [r8, #-1121]! + 12b8: 74532072 ldrbvc r2, [r3], #-114 + 12bc: 6f697461 svcvs 0x00697461 + 12c0: 6f43206e svcvs 0x0043206e + 12c4: 6f72746e svcvs 0x0072746e + 12c8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 12cc: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 12d0: 4f5c6775 svcmi 0x005c6775 + 12d4: 485c6a62 ldmdami ip, {r1, r5, r6, r9, fp, sp, lr}^ + 12d8: 7672444c ldrbtvc r4, [r2], -ip, asr #8 + 12dc: 003a6f2e eorseq r6, sl, lr, lsr #30 + 12e0: 52414900 subpl r4, r1, #0 ; 0x0 + 12e4: 534e4120 movtpl r4, #57632 ; 0xe120 + 12e8: 2f432049 svccs 0x00432049 + 12ec: 202b2b43 eorcs r2, fp, r3, asr #22 + 12f0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 12f4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 12f8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 12fc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1300: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1304: 572f3539 undefined + 1308: 4b203233 blmi 80dbdc + 130c: 534b4349 movtpl r4, #45897 ; 0xb349 + 1310: 54524154 ldrbpl r4, [r2], #-340 + 1314: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1318: 4d524120 ldfmie f4, [r2, #-128] + 131c: 3a432200 bcc 10c9b24 + 1320: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 1324: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1328: 61207374 teqvs r0, r4, ror r3 + 132c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 1330: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 1334: 5c73676e ldclpl 7, cr6, [r3], #-440 + 1338: 766c616d strbtvc r6, [ip], -sp, ror #2 + 133c: 5c617269 sfmpl f7, 2, [r1], #-420 + 1340: 4420794d strtmi r7, [r0], #-2381 + 1344: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1348: 73746e65 cmnvc r4, #1616 ; 0x650 + 134c: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 1350: 746e6f63 strbtvc r6, [lr], #-3939 + 1354: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 1358: 74616557 strbtvc r6, [r1], #-1367 + 135c: 20726568 rsbscs r6, r2, r8, ror #10 + 1360: 74617453 strbtvc r7, [r1], #-1107 + 1364: 206e6f69 rsbcs r6, lr, r9, ror #30 + 1368: 746e6f43 strbtvc r6, [lr], #-3907 + 136c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 1370: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 1374: 5c43414d stfple f4, [r3], {77} + 1378: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 137c: 485c6563 ldmdami ip, {r0, r1, r5, r6, r8, sl, sp, lr}^ + 1380: 7672444c ldrbtvc r4, [r2], -ip, asr #8 + 1384: 2022632e eorcs r6, r2, lr, lsr #6 + 1388: 4620442d strtmi r4, [r0], -sp, lsr #8 + 138c: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + 1390: 442d205a strtmi r2, [sp], #-90 + 1394: 43455320 movtmi r5, #21280 ; 0x5320 + 1398: 54495255 strbpl r5, [r9], #-597 + 139c: 4e455f59 mcrmi 15, 2, r5, cr5, cr9, {2} + 13a0: 454c4241 strbmi r4, [ip, #-577] + 13a4: 6c2d2044 stcvs 0, cr2, [sp], #-272 + 13a8: 43222043 teqmi r2, #67 ; 0x43 + 13ac: 6f445c3a svcvs 0x00445c3a + 13b0: 656d7563 strbvs r7, [sp, #-1379]! + 13b4: 2073746e rsbscs r7, r3, lr, ror #8 + 13b8: 20646e61 rsbcs r6, r4, r1, ror #28 + 13bc: 74746553 ldrbtvc r6, [r4], #-1363 + 13c0: 73676e69 cmnvc r7, #1680 ; 0x690 + 13c4: 6c616d5c stclvs 13, cr6, [r1], #-368 + 13c8: 61726976 cmnvs r2, r6, ror r9 + 13cc: 20794d5c rsbscs r4, r9, ip, asr sp + 13d0: 75636f44 strbvc r6, [r3, #-3908]! + 13d4: 746e656d strbtvc r6, [lr], #-1389 + 13d8: 73775c73 cmnvc r7, #29440 ; 0x7300 + 13dc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 13e0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 13e4: 6165575c cmnvs r5, ip, asr r7 + 13e8: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 13ec: 61745320 cmnvs r4, r0, lsr #6 + 13f0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 13f4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 13f8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 13fc: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1400: 75626544 strbvc r6, [r2, #-1348]! + 1404: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ + 1408: 225c7473 subscs r7, ip, #1929379840 ; 0x73000000 + 140c: 642d2d20 strtvs r2, [sp], #-3360 + 1410: 5f676169 svcpl 0x00676169 + 1414: 70707573 rsbsvc r7, r0, r3, ror r5 + 1418: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 141c: 39655020 stmdbcc r5!, {r5, ip, lr}^ + 1420: 502c3135 eorpl r3, ip, r5, lsr r1 + 1424: 31313165 teqcc r1, r5, ror #2 + 1428: 3965502c stmdbcc r5!, {r2, r3, r5, ip, lr}^ + 142c: 2d203034 stccs 0, cr3, [r0, #-208]! + 1430: 4322206f teqmi r2, #111 ; 0x6f + 1434: 6f445c3a svcvs 0x00445c3a + 1438: 656d7563 strbvs r7, [sp, #-1379]! + 143c: 2073746e rsbscs r7, r3, lr, ror #8 + 1440: 20646e61 rsbcs r6, r4, r1, ror #28 + 1444: 74746553 ldrbtvc r6, [r4], #-1363 + 1448: 73676e69 cmnvc r7, #1680 ; 0x690 + 144c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1450: 61726976 cmnvs r2, r6, ror r9 + 1454: 20794d5c rsbscs r4, r9, ip, asr sp + 1458: 75636f44 strbvc r6, [r3, #-3908]! + 145c: 746e656d strbtvc r6, [lr], #-1389 + 1460: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1464: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1468: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 146c: 6165575c cmnvs r5, ip, asr r7 + 1470: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1474: 61745320 cmnvs r4, r0, lsr #6 + 1478: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 147c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1480: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1484: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1488: 75626544 strbvc r6, [r2, #-1348]! + 148c: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 1490: 20225c6a eorcs r5, r2, sl, ror #24 + 1494: 65642d2d strbvs r2, [r4, #-3373]! + 1498: 20677562 rsbcs r7, r7, r2, ror #10 + 149c: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} + 14a0: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} + 14a4: 74696c3d strbtvc r6, [r9], #-3133 + 14a8: 20656c74 rsbcs r6, r5, r4, ror ip + 14ac: 70632d2d rsbvc r2, r3, sp, lsr #26 + 14b0: 52413d75 subpl r3, r1, #7488 ; 0x1d40 + 14b4: 4454374d ldrbmi r3, [r4], #-1869 + 14b8: 532d494d teqpl sp, #1261568 ; 0x134000 + 14bc: 20652d20 rsbcs r2, r5, r0, lsr #26 + 14c0: 70662d2d rsbvc r2, r6, sp, lsr #26 + 14c4: 6f4e3d75 svcvs 0x004e3d75 + 14c8: 2d20656e cfstr32cs mvfx6, [r0, #-440]! + 14cc: 696c642d stmdbvs ip!, {r0, r2, r3, r5, sl, sp, lr}^ + 14d0: 6f635f62 svcvs 0x00635f62 + 14d4: 6769666e strbvs r6, [r9, -lr, ror #12]! + 14d8: 3a432220 bcc 10c9d60 + 14dc: 6f72505c svcvs 0x0072505c + 14e0: 6d617267 sfmvs f7, 2, [r1, #-412]! + 14e4: 6c694620 stclvs 6, cr4, [r9], #-128 + 14e8: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 14ec: 53205241 teqpl r0, #268435460 ; 0x10000004 + 14f0: 65747379 ldrbvs r7, [r4, #-889]! + 14f4: 455c736d ldrbmi r7, [ip, #-877] + 14f8: 6465626d strbtvs r6, [r5], #-621 + 14fc: 20646564 rsbcs r6, r4, r4, ror #10 + 1500: 6b726f57 blvs 1c9d264 + 1504: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 1508: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 150c: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 1510: 74736b63 ldrbtvc r6, [r3], #-2915 + 1514: 5c747261 lfmpl f7, 2, [r4], #-388 + 1518: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 151c: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 1520: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 1524: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} + 1528: 5f676966 svcpl 0x00676966 + 152c: 6d726f4e ldclvs 15, cr6, [r2, #-312]! + 1530: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} + 1534: 492d2022 pushmi {r1, r5, sp} + 1538: 3a432220 bcc 10c9dc0 + 153c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 1540: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1544: 61207374 teqvs r0, r4, ror r3 + 1548: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 154c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 1550: 5c73676e ldclpl 7, cr6, [r3], #-440 + 1554: 766c616d strbtvc r6, [ip], -sp, ror #2 + 1558: 5c617269 sfmpl f7, 2, [r1], #-420 + 155c: 4420794d strtmi r7, [r0], #-2381 + 1560: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1564: 73746e65 cmnvc r4, #1616 ; 0x650 + 1568: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 156c: 746e6f63 strbtvc r6, [lr], #-3939 + 1570: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 1574: 74616557 strbtvc r6, [r1], #-1367 + 1578: 20726568 rsbscs r6, r2, r8, ror #10 + 157c: 74617453 strbtvc r7, [r1], #-1107 + 1580: 206e6f69 rsbcs r6, lr, r9, ror #30 + 1584: 746e6f43 strbtvc r6, [lr], #-3907 + 1588: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 158c: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 1590: 5c43414d stfple f4, [r3], {77} + 1594: 76697244 strbtvc r7, [r9], -r4, asr #4 + 1598: 5c737265 lfmpl f7, 2, [r3], #-404 + 159c: 65746e49 ldrbvs r6, [r4, #-3657]! + 15a0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 15a4: 20225c65 eorcs r5, r2, r5, ror #24 + 15a8: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 15ac: 445c3a43 ldrbmi r3, [ip], #-2627 + 15b0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 15b4: 73746e65 cmnvc r4, #1616 ; 0x650 + 15b8: 646e6120 strbtvs r6, [lr], #-288 + 15bc: 74655320 strbtvc r5, [r5], #-800 + 15c0: 676e6974 undefined + 15c4: 616d5c73 smcvs 54723 + 15c8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 15cc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 15d0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 15d4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 15d8: 775c7374 undefined + 15dc: 6f632d73 svcvs 0x00632d73 + 15e0: 6f72746e svcvs 0x0072746e + 15e4: 65575c6c ldrbvs r5, [r7, #-3180] + 15e8: 65687461 strbvs r7, [r8, #-1121]! + 15ec: 74532072 ldrbvc r2, [r3], #-114 + 15f0: 6f697461 svcvs 0x00697461 + 15f4: 6f43206e svcvs 0x0043206e + 15f8: 6f72746e svcvs 0x0072746e + 15fc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1600: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1604: 746e495c strbtvc r4, [lr], #-2396 + 1608: 61667265 cmnvs r6, r5, ror #4 + 160c: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 1610: 20492d20 subcs r2, r9, r0, lsr #26 + 1614: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 1618: 676f7250 undefined + 161c: 206d6172 rsbcs r6, sp, r2, ror r1 + 1620: 656c6946 strbvs r6, [ip, #-2374]! + 1624: 41495c73 cmpmi r9, r3, ror ip + 1628: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + 162c: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 1630: 6d455c73 stclvs 12, cr5, [r5, #-460] + 1634: 64646562 strbtvs r6, [r4], #-1378 + 1638: 57206465 strpl r6, [r0, -r5, ror #8]! + 163c: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + 1640: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 1644: 342e3520 strtcc r3, [lr], #-1312 + 1648: 63694b20 cmnvs r9, #32768 ; 0x8000 + 164c: 6174736b cmnvs r4, fp, ror #6 + 1650: 615c7472 cmpvs ip, r2, ror r4 + 1654: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 1658: 225c434e subscs r4, ip, #939524097 ; 0x38000001 + 165c: 692d2d20 pushvs {r5, r8, sl, fp, sp} + 1660: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 1664: 6b726f77 blvs 1c9d448 + 1668: 632d2d20 teqvs sp, #2048 ; 0x800 + 166c: 6d5f7570 cfldr64vs mvdx7, [pc, #-448] + 1670: 2065646f rsbcs r6, r5, pc, ror #8 + 1674: 6d756874 ldclvs 8, cr6, [r5, #-464]! + 1678: 4f2d2062 svcmi 0x002d2062 + 167c: 43000068 movwmi r0, #104 ; 0x68 + 1680: 6f445c3a svcvs 0x00445c3a + 1684: 656d7563 strbvs r7, [sp, #-1379]! + 1688: 2073746e rsbscs r7, r3, lr, ror #8 + 168c: 20646e61 rsbcs r6, r4, r1, ror #28 + 1690: 74746553 ldrbtvc r6, [r4], #-1363 + 1694: 73676e69 cmnvc r7, #1680 ; 0x690 + 1698: 6c616d5c stclvs 13, cr6, [r1], #-368 + 169c: 61726976 cmnvs r2, r6, ror r9 + 16a0: 20794d5c rsbscs r4, r9, ip, asr sp + 16a4: 75636f44 strbvc r6, [r3, #-3908]! + 16a8: 746e656d strbtvc r6, [lr], #-1389 + 16ac: 73775c73 cmnvc r7, #29440 ; 0x7300 + 16b0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 16b4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 16b8: 6165575c cmnvs r5, ip, asr r7 + 16bc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 16c0: 61745320 cmnvs r4, r0, lsr #6 + 16c4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 16c8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 16cc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 16d0: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 16d4: 75626544 strbvc r6, [r2, #-1348]! + 16d8: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 16dc: 6e495c6a cdpvs 12, 4, cr5, cr9, cr10, {3} + 16e0: 492d7469 pushmi {r0, r3, r5, r6, sl, ip, sp, lr} + 16e4: 6f2e5241 svcvs 0x002e5241 + 16e8: 4900003a stmdbmi r0, {r1, r3, r4, r5} + 16ec: 41205241 teqmi r0, r1, asr #4 + 16f0: 6d657373 stclvs 3, cr7, [r5, #-460]! + 16f4: 72656c62 rsbvc r6, r5, #25088 ; 0x6200 + 16f8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 16fc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1700: 3231352e eorscc r3, r1, #192937984 ; 0xb800000 + 1704: 572f3539 undefined + 1708: 66203233 undefined + 170c: 4120726f teqmi r0, pc, ror #4 + 1710: 43004d52 movwmi r4, #3410 ; 0xd52 + 1714: 6f445c3a svcvs 0x00445c3a + 1718: 656d7563 strbvs r7, [sp, #-1379]! + 171c: 2073746e rsbscs r7, r3, lr, ror #8 + 1720: 20646e61 rsbcs r6, r4, r1, ror #28 + 1724: 74746553 ldrbtvc r6, [r4], #-1363 + 1728: 73676e69 cmnvc r7, #1680 ; 0x690 + 172c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1730: 61726976 cmnvs r2, r6, ror r9 + 1734: 20794d5c rsbscs r4, r9, ip, asr sp + 1738: 75636f44 strbvc r6, [r3, #-3908]! + 173c: 746e656d strbtvc r6, [lr], #-1389 + 1740: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1744: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1748: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 174c: 6165575c cmnvs r5, ip, asr r7 + 1750: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1754: 61745320 cmnvs r4, r0, lsr #6 + 1758: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 175c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1760: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1764: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1768: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 176c: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 1770: 435c6563 cmpmi ip, #415236096 ; 0x18c00000 + 1774: 6f6d6d6f svcvs 0x006d6d6f + 1778: 79535c6e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, fp, ip, lr}^ + 177c: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 1780: 492d7469 pushmi {r0, r3, r5, r6, sl, ip, sp, lr} + 1784: 532e5241 teqpl lr, #268435460 ; 0x10000004 + 1788: 434f2d20 movtmi r2, #64800 ; 0xfd20 + 178c: 6f445c3a svcvs 0x00445c3a + 1790: 656d7563 strbvs r7, [sp, #-1379]! + 1794: 2073746e rsbscs r7, r3, lr, ror #8 + 1798: 20646e61 rsbcs r6, r4, r1, ror #28 + 179c: 74746553 ldrbtvc r6, [r4], #-1363 + 17a0: 73676e69 cmnvc r7, #1680 ; 0x690 + 17a4: 6c616d5c stclvs 13, cr6, [r1], #-368 + 17a8: 61726976 cmnvs r2, r6, ror r9 + 17ac: 20794d5c rsbscs r4, r9, ip, asr sp + 17b0: 75636f44 strbvc r6, [r3, #-3908]! + 17b4: 746e656d strbtvc r6, [lr], #-1389 + 17b8: 73775c73 cmnvc r7, #29440 ; 0x7300 + 17bc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 17c0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 17c4: 6165575c cmnvs r5, ip, asr r7 + 17c8: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 17cc: 61745320 cmnvs r4, r0, lsr #6 + 17d0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 17d4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 17d8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 17dc: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 17e0: 75626544 strbvc r6, [r2, #-1348]! + 17e4: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 17e8: 2d205c6a stccs 12, cr5, [r0, #-424]! + 17ec: 2d202b73 fstmdbxcs r0!, {d2-d58} + 17f0: 203e3c4d eorscs r3, lr, sp, asr #24 + 17f4: 202b772d eorcs r7, fp, sp, lsr #14 + 17f8: 2d20722d sfmcs f7, 4, [r0, #-180]! + 17fc: 45535544 ldrbmi r5, [r3, #-1348] + 1800: 544e495f strbpl r4, [lr], #-2399 + 1804: 55525245 ldrbpl r5, [r2, #-581] + 1808: 20535450 subscs r5, r3, r0, asr r4 + 180c: 5355442d cmppl r5, #754974720 ; 0x2d000000 + 1810: 58455f45 stmdapl r5, {r0, r2, r6, r8, r9, sl, fp, ip, lr}^ + 1814: 54504543 ldrbpl r4, [r0], #-1347 + 1818: 534e4f49 movtpl r4, #61257 ; 0xef49 + 181c: 434c2d20 movtmi r2, #52512 ; 0xcd20 + 1820: 6f445c3a svcvs 0x00445c3a + 1824: 656d7563 strbvs r7, [sp, #-1379]! + 1828: 2073746e rsbscs r7, r3, lr, ror #8 + 182c: 20646e61 rsbcs r6, r4, r1, ror #28 + 1830: 74746553 ldrbtvc r6, [r4], #-1363 + 1834: 73676e69 cmnvc r7, #1680 ; 0x690 + 1838: 6c616d5c stclvs 13, cr6, [r1], #-368 + 183c: 61726976 cmnvs r2, r6, ror r9 + 1840: 20794d5c rsbscs r4, r9, ip, asr sp + 1844: 75636f44 strbvc r6, [r3, #-3908]! + 1848: 746e656d strbtvc r6, [lr], #-1389 + 184c: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1850: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1854: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1858: 6165575c cmnvs r5, ip, asr r7 + 185c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1860: 61745320 cmnvs r4, r0, lsr #6 + 1864: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1868: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 186c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1870: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1874: 75626544 strbvc r6, [r2, #-1348]! + 1878: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ + 187c: 205c7473 subscs r7, ip, r3, ror r4 + 1880: 2038742d eorscs r7, r8, sp, lsr #8 + 1884: 70632d2d rsbvc r2, r3, sp, lsr #26 + 1888: 52412075 subpl r2, r1, #117 ; 0x75 + 188c: 4454374d ldrbmi r3, [r4], #-1869 + 1890: 532d494d teqpl sp, #1261568 ; 0x134000 + 1894: 662d2d20 strtvs r2, [sp], -r0, lsr #26 + 1898: 4e207570 mcrmi 5, 1, r7, cr0, cr0, {3} + 189c: 00656e6f rsbeq r6, r5, pc, ror #28 + 18a0: 5c3a4300 ldcpl 3, cr4, [sl] + 18a4: 75636f44 strbvc r6, [r3, #-3908]! + 18a8: 746e656d strbtvc r6, [lr], #-1389 + 18ac: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 18b0: 65532064 ldrbvs r2, [r3, #-100] + 18b4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 18b8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 18bc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 18c0: 4d5c6172 ldfmie f6, [ip, #-456] + 18c4: 6f442079 svcvs 0x00442079 + 18c8: 656d7563 strbvs r7, [sp, #-1379]! + 18cc: 5c73746e cfldrdpl mvd7, [r3], #-440 + 18d0: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 18d4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 18d8: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 18dc: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 18e0: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 18e4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 18e8: 43206e6f teqmi r0, #1776 ; 0x6f0 + 18ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 18f0: 656c6c6f strbvs r6, [ip, #-3183]! + 18f4: 65445c72 strbvs r5, [r4, #-3186] + 18f8: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 18fc: 5c6a624f sfmpl f6, 2, [sl], #-316 + 1900: 6279654b rsbsvs r6, r9, #314572800 ; 0x12c00000 + 1904: 6472616f ldrbtvs r6, [r2], #-367 + 1908: 003a6f2e eorseq r6, sl, lr, lsr #30 + 190c: 52414900 subpl r4, r1, #0 ; 0x0 + 1910: 534e4120 movtpl r4, #57632 ; 0xe120 + 1914: 2f432049 svccs 0x00432049 + 1918: 202b2b43 eorcs r2, fp, r3, asr #22 + 191c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1920: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1924: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 1928: 322e3033 eorcc r3, lr, #51 ; 0x33 + 192c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1930: 572f3539 undefined + 1934: 4b203233 blmi 80e208 + 1938: 534b4349 movtpl r4, #45897 ; 0xb349 + 193c: 54524154 ldrbpl r4, [r2], #-340 + 1940: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1944: 4d524120 ldfmie f4, [r2, #-128] + 1948: 3a432200 bcc 10ca150 + 194c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 1950: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1954: 61207374 teqvs r0, r4, ror r3 + 1958: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 195c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 1960: 5c73676e ldclpl 7, cr6, [r3], #-440 + 1964: 766c616d strbtvc r6, [ip], -sp, ror #2 + 1968: 5c617269 sfmpl f7, 2, [r1], #-420 + 196c: 4420794d strtmi r7, [r0], #-2381 + 1970: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1974: 73746e65 cmnvc r4, #1616 ; 0x650 + 1978: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 197c: 746e6f63 strbtvc r6, [lr], #-3939 + 1980: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 1984: 74616557 strbtvc r6, [r1], #-1367 + 1988: 20726568 rsbscs r6, r2, r8, ror #10 + 198c: 74617453 strbtvc r7, [r1], #-1107 + 1990: 206e6f69 rsbcs r6, lr, r9, ror #30 + 1994: 746e6f43 strbtvc r6, [lr], #-3907 + 1998: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 199c: 415c7265 cmpmi ip, r5, ror #4 + 19a0: 696c7070 stmdbvs ip!, {r4, r5, r6, ip, sp, lr}^ + 19a4: 69746163 ldmdbvs r4!, {r0, r1, r5, r6, r8, sp, lr}^ + 19a8: 555c6e6f ldrbpl r6, [ip, #-3695] + 19ac: 696c6974 stmdbvs ip!, {r2, r4, r5, r6, r8, fp, sp, lr}^ + 19b0: 73656974 cmnvc r5, #1900544 ; 0x1d0000 + 19b4: 79654b5c stmdbvc r5!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 19b8: 72616f62 rsbvc r6, r1, #392 ; 0x188 + 19bc: 22632e64 rsbcs r2, r3, #1600 ; 0x640 + 19c0: 20442d20 subcs r2, r4, r0, lsr #26 + 19c4: 4d343246 lfmmi f3, 4, [r4, #-280]! + 19c8: 2d205a48 fstmdbscs r0!, {s10-s81} + 19cc: 45532044 ldrbmi r2, [r3, #-68] + 19d0: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ + 19d4: 455f5954 ldrbmi r5, [pc, #-2388] ; 1088 <__USR_stack_size+0x888> + 19d8: 4c42414e stfmie f4, [r2], {78} + 19dc: 2d204445 cfstrscs mvf4, [r0, #-276]! + 19e0: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 + 19e4: 445c3a43 ldrbmi r3, [ip], #-2627 + 19e8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 19ec: 73746e65 cmnvc r4, #1616 ; 0x650 + 19f0: 646e6120 strbtvs r6, [lr], #-288 + 19f4: 74655320 strbtvc r5, [r5], #-800 + 19f8: 676e6974 undefined + 19fc: 616d5c73 smcvs 54723 + 1a00: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1a04: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1a08: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1a0c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1a10: 775c7374 undefined + 1a14: 6f632d73 svcvs 0x00632d73 + 1a18: 6f72746e svcvs 0x0072746e + 1a1c: 65575c6c ldrbvs r5, [r7, #-3180] + 1a20: 65687461 strbvs r7, [r8, #-1121]! + 1a24: 74532072 ldrbvc r2, [r3], #-114 + 1a28: 6f697461 svcvs 0x00697461 + 1a2c: 6f43206e svcvs 0x0043206e + 1a30: 6f72746e svcvs 0x0072746e + 1a34: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1a38: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 1a3c: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 + 1a40: 5c747369 ldclpl 3, cr7, [r4], #-420 + 1a44: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 1a48: 67616964 strbvs r6, [r1, -r4, ror #18]! + 1a4c: 7075735f rsbsvc r7, r5, pc, asr r3 + 1a50: 73657270 cmnvc r5, #7 ; 0x7 + 1a54: 65502073 ldrbvs r2, [r0, #-115] + 1a58: 2c313539 cfldr32cs mvfx3, [r1], #-228 + 1a5c: 31316550 teqcc r1, r0, asr r5 + 1a60: 65502c31 ldrbvs r2, [r0, #-3121] + 1a64: 20303439 eorscs r3, r0, r9, lsr r4 + 1a68: 22206f2d eorcs r6, r0, #180 ; 0xb4 + 1a6c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1a70: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1a74: 73746e65 cmnvc r4, #1616 ; 0x650 + 1a78: 646e6120 strbtvs r6, [lr], #-288 + 1a7c: 74655320 strbtvc r5, [r5], #-800 + 1a80: 676e6974 undefined + 1a84: 616d5c73 smcvs 54723 + 1a88: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1a8c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1a90: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1a94: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1a98: 775c7374 undefined + 1a9c: 6f632d73 svcvs 0x00632d73 + 1aa0: 6f72746e svcvs 0x0072746e + 1aa4: 65575c6c ldrbvs r5, [r7, #-3180] + 1aa8: 65687461 strbvs r7, [r8, #-1121]! + 1aac: 74532072 ldrbvc r2, [r3], #-114 + 1ab0: 6f697461 svcvs 0x00697461 + 1ab4: 6f43206e svcvs 0x0043206e + 1ab8: 6f72746e svcvs 0x0072746e + 1abc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1ac0: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 1ac4: 4f5c6775 svcmi 0x005c6775 + 1ac8: 225c6a62 subscs r6, ip, #401408 ; 0x62000 + 1acc: 642d2d20 strtvs r2, [sp], #-3360 + 1ad0: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 1ad4: 652d2d20 strvs r2, [sp, #-3360]! + 1ad8: 6169646e cmnvs r9, lr, ror #8 + 1adc: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ + 1ae0: 656c7474 strbvs r7, [ip, #-1140]! + 1ae4: 632d2d20 teqvs sp, #2048 ; 0x800 + 1ae8: 413d7570 teqmi sp, r0, ror r5 + 1aec: 54374d52 ldrtpl r4, [r7], #-3410 + 1af0: 2d494d44 stclcs 13, cr4, [r9, #-272] + 1af4: 652d2053 strvs r2, [sp, #-83]! + 1af8: 662d2d20 strtvs r2, [sp], -r0, lsr #26 + 1afc: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} + 1b00: 20656e6f rsbcs r6, r5, pc, ror #28 + 1b04: 6c642d2d stclvs 13, cr2, [r4], #-180 + 1b08: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 + 1b0c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 1b10: 43222067 teqmi r2, #103 ; 0x67 + 1b14: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 1b18: 6172676f cmnvs r2, pc, ror #14 + 1b1c: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 1b20: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 1b24: 20524149 subscs r4, r2, r9, asr #2 + 1b28: 74737953 ldrbtvc r7, [r3], #-2387 + 1b2c: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 1b30: 65626d45 strbvs r6, [r2, #-3397]! + 1b34: 64656464 strbtvs r6, [r5], #-1124 + 1b38: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 1b3c: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 1b40: 35206863 strcc r6, [r0, #-2147]! + 1b44: 4b20342e blmi 80ec04 + 1b48: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 1b4c: 74726174 ldrbtvc r6, [r2], #-372 + 1b50: 6d72615c ldfvse f6, [r2, #-368]! + 1b54: 434e495c movtmi r4, #59740 ; 0xe95c + 1b58: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ + 1b5c: 6f435f62 svcvs 0x00435f62 + 1b60: 6769666e strbvs r6, [r9, -lr, ror #12]! + 1b64: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 + 1b68: 2e6c616d powcsez f6, f4, #5.0 + 1b6c: 2d202268 sfmcs f2, 4, [r0, #-416]! + 1b70: 43222049 teqmi r2, #73 ; 0x49 + 1b74: 6f445c3a svcvs 0x00445c3a + 1b78: 656d7563 strbvs r7, [sp, #-1379]! + 1b7c: 2073746e rsbscs r7, r3, lr, ror #8 + 1b80: 20646e61 rsbcs r6, r4, r1, ror #28 + 1b84: 74746553 ldrbtvc r6, [r4], #-1363 + 1b88: 73676e69 cmnvc r7, #1680 ; 0x690 + 1b8c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1b90: 61726976 cmnvs r2, r6, ror r9 + 1b94: 20794d5c rsbscs r4, r9, ip, asr sp + 1b98: 75636f44 strbvc r6, [r3, #-3908]! + 1b9c: 746e656d strbtvc r6, [lr], #-1389 + 1ba0: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1ba4: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1ba8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1bac: 6165575c cmnvs r5, ip, asr r7 + 1bb0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1bb4: 61745320 cmnvs r4, r0, lsr #6 + 1bb8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1bbc: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1bc0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1bc4: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1bc8: 43414d53 movtmi r4, #7507 ; 0x1d53 + 1bcc: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 1bd0: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 1bd4: 746e495c strbtvc r4, [lr], #-2396 + 1bd8: 61667265 cmnvs r6, r5, ror #4 + 1bdc: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 1be0: 20492d20 subcs r2, r9, r0, lsr #26 + 1be4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 1be8: 75636f44 strbvc r6, [r3, #-3908]! + 1bec: 746e656d strbtvc r6, [lr], #-1389 + 1bf0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 1bf4: 65532064 ldrbvs r2, [r3, #-100] + 1bf8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 1bfc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 1c00: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 1c04: 4d5c6172 ldfmie f6, [ip, #-456] + 1c08: 6f442079 svcvs 0x00442079 + 1c0c: 656d7563 strbvs r7, [sp, #-1379]! + 1c10: 5c73746e cfldrdpl mvd7, [r3], #-440 + 1c14: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 1c18: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 1c1c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 1c20: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 1c24: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 1c28: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 1c2c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 1c30: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 1c34: 656c6c6f strbvs r6, [ip, #-3183]! + 1c38: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 + 1c3c: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} + 1c40: 66726574 undefined + 1c44: 5c656361 stclpl 3, cr6, [r5], #-388 + 1c48: 492d2022 pushmi {r1, r5, sp} + 1c4c: 3a432220 bcc 10ca4d4 + 1c50: 6f72505c svcvs 0x0072505c + 1c54: 6d617267 sfmvs f7, 2, [r1, #-412]! + 1c58: 6c694620 stclvs 6, cr4, [r9], #-128 + 1c5c: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 1c60: 53205241 teqpl r0, #268435460 ; 0x10000004 + 1c64: 65747379 ldrbvs r7, [r4, #-889]! + 1c68: 455c736d ldrbmi r7, [ip, #-877] + 1c6c: 6465626d strbtvs r6, [r5], #-621 + 1c70: 20646564 rsbcs r6, r4, r4, ror #10 + 1c74: 6b726f57 blvs 1c9d9d8 + 1c78: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 1c7c: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 1c80: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 1c84: 74736b63 ldrbtvc r6, [r3], #-2915 + 1c88: 5c747261 lfmpl f7, 2, [r4], #-388 + 1c8c: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 1c90: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 1c94: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 1c98: 65746e69 ldrbvs r6, [r4, #-3689]! + 1c9c: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 1ca0: 2d2d206b stccs 0, cr2, [sp, #-428]! + 1ca4: 5f757063 svcpl 0x00757063 + 1ca8: 65646f6d strbvs r6, [r4, #-3949]! + 1cac: 75687420 strbvc r7, [r8, #-1056]! + 1cb0: 2d20626d sfmcs f6, 4, [r0, #-436]! + 1cb4: 0000684f andeq r6, r0, pc, asr #16 + 1cb8: 445c3a43 ldrbmi r3, [ip], #-2627 + 1cbc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1cc0: 73746e65 cmnvc r4, #1616 ; 0x650 + 1cc4: 646e6120 strbtvs r6, [lr], #-288 + 1cc8: 74655320 strbtvc r5, [r5], #-800 + 1ccc: 676e6974 undefined + 1cd0: 616d5c73 smcvs 54723 + 1cd4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1cd8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1cdc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1ce0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1ce4: 775c7374 undefined + 1ce8: 6f632d73 svcvs 0x00632d73 + 1cec: 6f72746e svcvs 0x0072746e + 1cf0: 65575c6c ldrbvs r5, [r7, #-3180] + 1cf4: 65687461 strbvs r7, [r8, #-1121]! + 1cf8: 74532072 ldrbvc r2, [r3], #-114 + 1cfc: 6f697461 svcvs 0x00697461 + 1d00: 6f43206e svcvs 0x0043206e + 1d04: 6f72746e svcvs 0x0072746e + 1d08: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1d0c: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 1d10: 4f5c6775 svcmi 0x005c6775 + 1d14: 4c5c6a62 mrrcmi 10, 6, r6, ip, cr2 + 1d18: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 1d1c: 00003a6f andeq r3, r0, pc, ror #20 + 1d20: 20524149 subscs r4, r2, r9, asr #2 + 1d24: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 1d28: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 1d2c: 43202b2b teqmi r0, #44032 ; 0xac00 + 1d30: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 1d34: 2072656c rsbscs r6, r2, ip, ror #10 + 1d38: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 1d3c: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 1d40: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 1d44: 33572f35 cmpcc r7, #212 ; 0xd4 + 1d48: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 1d4c: 54534b43 ldrbpl r4, [r3], #-2883 + 1d50: 20545241 subscs r5, r4, r1, asr #4 + 1d54: 20726f66 rsbscs r6, r2, r6, ror #30 + 1d58: 004d5241 subeq r5, sp, r1, asr #4 + 1d5c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 1d60: 75636f44 strbvc r6, [r3, #-3908]! + 1d64: 746e656d strbtvc r6, [lr], #-1389 + 1d68: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 1d6c: 65532064 ldrbvs r2, [r3, #-100] + 1d70: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 1d74: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 1d78: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 1d7c: 4d5c6172 ldfmie f6, [ip, #-456] + 1d80: 6f442079 svcvs 0x00442079 + 1d84: 656d7563 strbvs r7, [sp, #-1379]! + 1d88: 5c73746e cfldrdpl mvd7, [r3], #-440 + 1d8c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 1d90: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 1d94: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 1d98: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 1d9c: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 1da0: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 1da4: 43206e6f teqmi r0, #1776 ; 0x6f0 + 1da8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 1dac: 656c6c6f strbvs r6, [ip, #-3183]! + 1db0: 70415c72 subvc r5, r1, r2, ror ip + 1db4: 63696c70 cmnvs r9, #28672 ; 0x7000 + 1db8: 6f697461 svcvs 0x00697461 + 1dbc: 74555c6e ldrbvc r5, [r5], #-3182 + 1dc0: 74696c69 strbtvc r6, [r9], #-3177 + 1dc4: 5c736569 cfldr64pl mvdx6, [r3], #-420 + 1dc8: 7364654c cmnvc r4, #318767104 ; 0x13000000 + 1dcc: 2022632e eorcs r6, r2, lr, lsr #6 + 1dd0: 4620442d strtmi r4, [r0], -sp, lsr #8 + 1dd4: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + 1dd8: 442d205a strtmi r2, [sp], #-90 + 1ddc: 43455320 movtmi r5, #21280 ; 0x5320 + 1de0: 54495255 strbpl r5, [r9], #-597 + 1de4: 4e455f59 mcrmi 15, 2, r5, cr5, cr9, {2} + 1de8: 454c4241 strbmi r4, [ip, #-577] + 1dec: 6c2d2044 stcvs 0, cr2, [sp], #-272 + 1df0: 43222043 teqmi r2, #67 ; 0x43 + 1df4: 6f445c3a svcvs 0x00445c3a + 1df8: 656d7563 strbvs r7, [sp, #-1379]! + 1dfc: 2073746e rsbscs r7, r3, lr, ror #8 + 1e00: 20646e61 rsbcs r6, r4, r1, ror #28 + 1e04: 74746553 ldrbtvc r6, [r4], #-1363 + 1e08: 73676e69 cmnvc r7, #1680 ; 0x690 + 1e0c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1e10: 61726976 cmnvs r2, r6, ror r9 + 1e14: 20794d5c rsbscs r4, r9, ip, asr sp + 1e18: 75636f44 strbvc r6, [r3, #-3908]! + 1e1c: 746e656d strbtvc r6, [lr], #-1389 + 1e20: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1e24: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1e28: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1e2c: 6165575c cmnvs r5, ip, asr r7 + 1e30: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1e34: 61745320 cmnvs r4, r0, lsr #6 + 1e38: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1e3c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1e40: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1e44: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1e48: 75626544 strbvc r6, [r2, #-1348]! + 1e4c: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ + 1e50: 225c7473 subscs r7, ip, #1929379840 ; 0x73000000 + 1e54: 642d2d20 strtvs r2, [sp], #-3360 + 1e58: 5f676169 svcpl 0x00676169 + 1e5c: 70707573 rsbsvc r7, r0, r3, ror r5 + 1e60: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 1e64: 39655020 stmdbcc r5!, {r5, ip, lr}^ + 1e68: 502c3135 eorpl r3, ip, r5, lsr r1 + 1e6c: 31313165 teqcc r1, r5, ror #2 + 1e70: 3965502c stmdbcc r5!, {r2, r3, r5, ip, lr}^ + 1e74: 2d203034 stccs 0, cr3, [r0, #-208]! + 1e78: 4322206f teqmi r2, #111 ; 0x6f + 1e7c: 6f445c3a svcvs 0x00445c3a + 1e80: 656d7563 strbvs r7, [sp, #-1379]! + 1e84: 2073746e rsbscs r7, r3, lr, ror #8 + 1e88: 20646e61 rsbcs r6, r4, r1, ror #28 + 1e8c: 74746553 ldrbtvc r6, [r4], #-1363 + 1e90: 73676e69 cmnvc r7, #1680 ; 0x690 + 1e94: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1e98: 61726976 cmnvs r2, r6, ror r9 + 1e9c: 20794d5c rsbscs r4, r9, ip, asr sp + 1ea0: 75636f44 strbvc r6, [r3, #-3908]! + 1ea4: 746e656d strbtvc r6, [lr], #-1389 + 1ea8: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1eac: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1eb0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1eb4: 6165575c cmnvs r5, ip, asr r7 + 1eb8: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1ebc: 61745320 cmnvs r4, r0, lsr #6 + 1ec0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1ec4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1ec8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1ecc: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1ed0: 75626544 strbvc r6, [r2, #-1348]! + 1ed4: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 1ed8: 20225c6a eorcs r5, r2, sl, ror #24 + 1edc: 65642d2d strbvs r2, [r4, #-3373]! + 1ee0: 20677562 rsbcs r7, r7, r2, ror #10 + 1ee4: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} + 1ee8: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} + 1eec: 74696c3d strbtvc r6, [r9], #-3133 + 1ef0: 20656c74 rsbcs r6, r5, r4, ror ip + 1ef4: 70632d2d rsbvc r2, r3, sp, lsr #26 + 1ef8: 52413d75 subpl r3, r1, #7488 ; 0x1d40 + 1efc: 4454374d ldrbmi r3, [r4], #-1869 + 1f00: 532d494d teqpl sp, #1261568 ; 0x134000 + 1f04: 20652d20 rsbcs r2, r5, r0, lsr #26 + 1f08: 70662d2d rsbvc r2, r6, sp, lsr #26 + 1f0c: 6f4e3d75 svcvs 0x004e3d75 + 1f10: 2d20656e cfstr32cs mvfx6, [r0, #-440]! + 1f14: 696c642d stmdbvs ip!, {r0, r2, r3, r5, sl, sp, lr}^ + 1f18: 6f635f62 svcvs 0x00635f62 + 1f1c: 6769666e strbvs r6, [r9, -lr, ror #12]! + 1f20: 3a432220 bcc 10ca7a8 + 1f24: 6f72505c svcvs 0x0072505c + 1f28: 6d617267 sfmvs f7, 2, [r1, #-412]! + 1f2c: 6c694620 stclvs 6, cr4, [r9], #-128 + 1f30: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 1f34: 53205241 teqpl r0, #268435460 ; 0x10000004 + 1f38: 65747379 ldrbvs r7, [r4, #-889]! + 1f3c: 455c736d ldrbmi r7, [ip, #-877] + 1f40: 6465626d strbtvs r6, [r5], #-621 + 1f44: 20646564 rsbcs r6, r4, r4, ror #10 + 1f48: 6b726f57 blvs 1c9dcac + 1f4c: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 1f50: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 1f54: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 1f58: 74736b63 ldrbtvc r6, [r3], #-2915 + 1f5c: 5c747261 lfmpl f7, 2, [r4], #-388 + 1f60: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 1f64: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 1f68: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 1f6c: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} + 1f70: 5f676966 svcpl 0x00676966 + 1f74: 6d726f4e ldclvs 15, cr6, [r2, #-312]! + 1f78: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} + 1f7c: 492d2022 pushmi {r1, r5, sp} + 1f80: 3a432220 bcc 10ca808 + 1f84: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 1f88: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1f8c: 61207374 teqvs r0, r4, ror r3 + 1f90: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 1f94: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 1f98: 5c73676e ldclpl 7, cr6, [r3], #-440 + 1f9c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 1fa0: 5c617269 sfmpl f7, 2, [r1], #-420 + 1fa4: 4420794d strtmi r7, [r0], #-2381 + 1fa8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1fac: 73746e65 cmnvc r4, #1616 ; 0x650 + 1fb0: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 1fb4: 746e6f63 strbtvc r6, [lr], #-3939 + 1fb8: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 1fbc: 74616557 strbtvc r6, [r1], #-1367 + 1fc0: 20726568 rsbscs r6, r2, r8, ror #10 + 1fc4: 74617453 strbtvc r7, [r1], #-1107 + 1fc8: 206e6f69 rsbcs r6, lr, r9, ror #30 + 1fcc: 746e6f43 strbtvc r6, [lr], #-3907 + 1fd0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 1fd4: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 1fd8: 5c43414d stfple f4, [r3], {77} + 1fdc: 76697244 strbtvc r7, [r9], -r4, asr #4 + 1fe0: 5c737265 lfmpl f7, 2, [r3], #-404 + 1fe4: 65746e49 ldrbvs r6, [r4, #-3657]! + 1fe8: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 1fec: 20225c65 eorcs r5, r2, r5, ror #24 + 1ff0: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 1ff4: 445c3a43 ldrbmi r3, [ip], #-2627 + 1ff8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1ffc: 73746e65 cmnvc r4, #1616 ; 0x650 + 2000: 646e6120 strbtvs r6, [lr], #-288 + 2004: 74655320 strbtvc r5, [r5], #-800 + 2008: 676e6974 undefined + 200c: 616d5c73 smcvs 54723 + 2010: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2014: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2018: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 201c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2020: 775c7374 undefined + 2024: 6f632d73 svcvs 0x00632d73 + 2028: 6f72746e svcvs 0x0072746e + 202c: 65575c6c ldrbvs r5, [r7, #-3180] + 2030: 65687461 strbvs r7, [r8, #-1121]! + 2034: 74532072 ldrbvc r2, [r3], #-114 + 2038: 6f697461 svcvs 0x00697461 + 203c: 6f43206e svcvs 0x0043206e + 2040: 6f72746e svcvs 0x0072746e + 2044: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2048: 4d4c505c stclmi 0, cr5, [ip, #-368] + 204c: 746e495c strbtvc r4, [lr], #-2396 + 2050: 61667265 cmnvs r6, r5, ror #4 + 2054: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 2058: 20492d20 subcs r2, r9, r0, lsr #26 + 205c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2060: 676f7250 undefined + 2064: 206d6172 rsbcs r6, sp, r2, ror r1 + 2068: 656c6946 strbvs r6, [ip, #-2374]! + 206c: 41495c73 cmpmi r9, r3, ror ip + 2070: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + 2074: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 2078: 6d455c73 stclvs 12, cr5, [r5, #-460] + 207c: 64646562 strbtvs r6, [r4], #-1378 + 2080: 57206465 strpl r6, [r0, -r5, ror #8]! + 2084: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + 2088: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 208c: 342e3520 strtcc r3, [lr], #-1312 + 2090: 63694b20 cmnvs r9, #32768 ; 0x8000 + 2094: 6174736b cmnvs r4, fp, ror #6 + 2098: 615c7472 cmpvs ip, r2, ror r4 + 209c: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 20a0: 225c434e subscs r4, ip, #939524097 ; 0x38000001 + 20a4: 692d2d20 pushvs {r5, r8, sl, fp, sp} + 20a8: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 20ac: 6b726f77 blvs 1c9de90 + 20b0: 632d2d20 teqvs sp, #2048 ; 0x800 + 20b4: 6d5f7570 cfldr64vs mvdx7, [pc, #-448] + 20b8: 2065646f rsbcs r6, r5, pc, ror #8 + 20bc: 6d756874 ldclvs 8, cr6, [r5, #-464]! + 20c0: 4f2d2062 svcmi 0x002d2062 + 20c4: 43000068 movwmi r0, #104 ; 0x68 + 20c8: 6f445c3a svcvs 0x00445c3a + 20cc: 656d7563 strbvs r7, [sp, #-1379]! + 20d0: 2073746e rsbscs r7, r3, lr, ror #8 + 20d4: 20646e61 rsbcs r6, r4, r1, ror #28 + 20d8: 74746553 ldrbtvc r6, [r4], #-1363 + 20dc: 73676e69 cmnvc r7, #1680 ; 0x690 + 20e0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 20e4: 61726976 cmnvs r2, r6, ror r9 + 20e8: 20794d5c rsbscs r4, r9, ip, asr sp + 20ec: 75636f44 strbvc r6, [r3, #-3908]! + 20f0: 746e656d strbtvc r6, [lr], #-1389 + 20f4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 20f8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 20fc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2100: 6165575c cmnvs r5, ip, asr r7 + 2104: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2108: 61745320 cmnvs r4, r0, lsr #6 + 210c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2110: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2114: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2118: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 211c: 75626544 strbvc r6, [r2, #-1348]! + 2120: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 2124: 614d5c6a cmpvs sp, sl, ror #24 + 2128: 6e496163 dvfvsez f6, f1, f3 + 212c: 72726574 rsbsvc r6, r2, #486539264 ; 0x1d000000 + 2130: 2e747075 mrccs 0, 3, r7, cr4, cr5, {3} + 2134: 00003a6f andeq r3, r0, pc, ror #20 + 2138: 20524149 subscs r4, r2, r9, asr #2 + 213c: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 2140: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 2144: 43202b2b teqmi r0, #44032 ; 0xac00 + 2148: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 214c: 2072656c rsbscs r6, r2, ip, ror #10 + 2150: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 2154: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 2158: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 215c: 33572f35 cmpcc r7, #212 ; 0xd4 + 2160: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 2164: 54534b43 ldrbpl r4, [r3], #-2883 + 2168: 20545241 subscs r5, r4, r1, asr #4 + 216c: 20726f66 rsbscs r6, r2, r6, ror #30 + 2170: 004d5241 subeq r5, sp, r1, asr #4 + 2174: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2178: 75636f44 strbvc r6, [r3, #-3908]! + 217c: 746e656d strbtvc r6, [lr], #-1389 + 2180: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2184: 65532064 ldrbvs r2, [r3, #-100] + 2188: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 218c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2190: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2194: 4d5c6172 ldfmie f6, [ip, #-456] + 2198: 6f442079 svcvs 0x00442079 + 219c: 656d7563 strbvs r7, [sp, #-1379]! + 21a0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 21a4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 21a8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 21ac: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 21b0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 21b4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 21b8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 21bc: 43206e6f teqmi r0, #1776 ; 0x6f0 + 21c0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 21c4: 656c6c6f strbvs r6, [ip, #-3183]! + 21c8: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 21cc: 445c4341 ldrbmi r4, [ip], #-833 + 21d0: 65766972 ldrbvs r6, [r6, #-2418]! + 21d4: 535c7372 cmppl ip, #-939524095 ; 0xc8000001 + 21d8: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 + 21dc: 614d5c65 cmpvs sp, r5, ror #24 + 21e0: 6e496163 dvfvsez f6, f1, f3 + 21e4: 72726574 rsbsvc r6, r2, #486539264 ; 0x1d000000 + 21e8: 2e747075 mrccs 0, 3, r7, cr4, cr5, {3} + 21ec: 2d202263 sfmcs f2, 4, [r0, #-396]! + 21f0: 32462044 subcc r2, r6, #68 ; 0x44 + 21f4: 5a484d34 bpl 12156cc + 21f8: 20442d20 subcs r2, r4, r0, lsr #26 + 21fc: 55434553 strbpl r4, [r3, #-1363] + 2200: 59544952 ldmdbpl r4, {r1, r4, r6, r8, fp, lr}^ + 2204: 414e455f cmpmi lr, pc, asr r5 + 2208: 44454c42 strbmi r4, [r5], #-3138 + 220c: 436c2d20 cmnmi ip, #2048 ; 0x800 + 2210: 3a432220 bcc 10caa98 + 2214: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 2218: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 221c: 61207374 teqvs r0, r4, ror r3 + 2220: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 2224: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 2228: 5c73676e ldclpl 7, cr6, [r3], #-440 + 222c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2230: 5c617269 sfmpl f7, 2, [r1], #-420 + 2234: 4420794d strtmi r7, [r0], #-2381 + 2238: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 223c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2240: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2244: 746e6f63 strbtvc r6, [lr], #-3939 + 2248: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 224c: 74616557 strbtvc r6, [r1], #-1367 + 2250: 20726568 rsbscs r6, r2, r8, ror #10 + 2254: 74617453 strbtvc r7, [r1], #-1107 + 2258: 206e6f69 rsbcs r6, lr, r9, ror #30 + 225c: 746e6f43 strbtvc r6, [lr], #-3907 + 2260: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2264: 445c7265 ldrbmi r7, [ip], #-613 + 2268: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 226c: 73694c5c cmnvc r9, #23552 ; 0x5c00 + 2270: 20225c74 eorcs r5, r2, r4, ror ip + 2274: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 2278: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 227c: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 2280: 20737365 rsbscs r7, r3, r5, ror #6 + 2284: 35396550 ldrcc r6, [r9, #-1360]! + 2288: 65502c31 ldrbvs r2, [r0, #-3121] + 228c: 2c313131 ldfcss f3, [r1], #-196 + 2290: 34396550 ldrtcc r6, [r9], #-1360 + 2294: 6f2d2030 svcvs 0x002d2030 + 2298: 3a432220 bcc 10cab20 + 229c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 22a0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 22a4: 61207374 teqvs r0, r4, ror r3 + 22a8: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 22ac: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 22b0: 5c73676e ldclpl 7, cr6, [r3], #-440 + 22b4: 766c616d strbtvc r6, [ip], -sp, ror #2 + 22b8: 5c617269 sfmpl f7, 2, [r1], #-420 + 22bc: 4420794d strtmi r7, [r0], #-2381 + 22c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 22c4: 73746e65 cmnvc r4, #1616 ; 0x650 + 22c8: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 22cc: 746e6f63 strbtvc r6, [lr], #-3939 + 22d0: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 22d4: 74616557 strbtvc r6, [r1], #-1367 + 22d8: 20726568 rsbscs r6, r2, r8, ror #10 + 22dc: 74617453 strbtvc r7, [r1], #-1107 + 22e0: 206e6f69 rsbcs r6, lr, r9, ror #30 + 22e4: 746e6f43 strbtvc r6, [lr], #-3907 + 22e8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 22ec: 445c7265 ldrbmi r7, [ip], #-613 + 22f0: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 22f4: 6a624f5c bvs 189606c + 22f8: 2d20225c sfmcs f2, 4, [r0, #-368]! + 22fc: 6265642d rsbvs r6, r5, #754974720 ; 0x2d000000 + 2300: 2d206775 stccs 7, cr6, [r0, #-468]! + 2304: 646e652d strbtvs r6, [lr], #-1325 + 2308: 3d6e6169 stfcce f6, [lr, #-420]! + 230c: 7474696c ldrbtvc r6, [r4], #-2412 + 2310: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 2314: 7570632d ldrbvc r6, [r0, #-813]! + 2318: 4d52413d ldfmie f4, [r2, #-244] + 231c: 4d445437 cfstrdmi mvd5, [r4, #-220] + 2320: 20532d49 subscs r2, r3, r9, asr #26 + 2324: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 2328: 7570662d ldrbvc r6, [r0, #-1581]! + 232c: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 2330: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 2334: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 2338: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 233c: 20676966 rsbcs r6, r7, r6, ror #18 + 2340: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2344: 676f7250 undefined + 2348: 206d6172 rsbcs r6, sp, r2, ror r1 + 234c: 656c6946 strbvs r6, [ip, #-2374]! + 2350: 41495c73 cmpmi r9, r3, ror ip + 2354: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + 2358: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 235c: 6d455c73 stclvs 12, cr5, [r5, #-460] + 2360: 64646562 strbtvs r6, [r4], #-1378 + 2364: 57206465 strpl r6, [r0, -r5, ror #8]! + 2368: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + 236c: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 2370: 342e3520 strtcc r3, [lr], #-1312 + 2374: 63694b20 cmnvs r9, #32768 ; 0x8000 + 2378: 6174736b cmnvs r4, fp, ror #6 + 237c: 615c7472 cmpvs ip, r2, ror r4 + 2380: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 2384: 445c434e ldrbmi r4, [ip], #-846 + 2388: 5f62694c svcpl 0x0062694c + 238c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 2390: 4e5f6769 cdpmi 7, 5, cr6, cr15, cr9, {3} + 2394: 616d726f cmnvs sp, pc, ror #4 + 2398: 22682e6c rsbcs r2, r8, #1728 ; 0x6c0 + 239c: 20492d20 subcs r2, r9, r0, lsr #26 + 23a0: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 23a4: 75636f44 strbvc r6, [r3, #-3908]! + 23a8: 746e656d strbtvc r6, [lr], #-1389 + 23ac: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 23b0: 65532064 ldrbvs r2, [r3, #-100] + 23b4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 23b8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 23bc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 23c0: 4d5c6172 ldfmie f6, [ip, #-456] + 23c4: 6f442079 svcvs 0x00442079 + 23c8: 656d7563 strbvs r7, [sp, #-1379]! + 23cc: 5c73746e cfldrdpl mvd7, [r3], #-440 + 23d0: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 23d4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 23d8: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 23dc: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 23e0: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 23e4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 23e8: 43206e6f teqmi r0, #1776 ; 0x6f0 + 23ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 23f0: 656c6c6f strbvs r6, [ip, #-3183]! + 23f4: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 23f8: 445c4341 ldrbmi r4, [ip], #-833 + 23fc: 65766972 ldrbvs r6, [r6, #-2418]! + 2400: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 2404: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2408: 65636166 strbvs r6, [r3, #-358]! + 240c: 2d20225c sfmcs f2, 4, [r0, #-368]! + 2410: 43222049 teqmi r2, #73 ; 0x49 + 2414: 6f445c3a svcvs 0x00445c3a + 2418: 656d7563 strbvs r7, [sp, #-1379]! + 241c: 2073746e rsbscs r7, r3, lr, ror #8 + 2420: 20646e61 rsbcs r6, r4, r1, ror #28 + 2424: 74746553 ldrbtvc r6, [r4], #-1363 + 2428: 73676e69 cmnvc r7, #1680 ; 0x690 + 242c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 2430: 61726976 cmnvs r2, r6, ror r9 + 2434: 20794d5c rsbscs r4, r9, ip, asr sp + 2438: 75636f44 strbvc r6, [r3, #-3908]! + 243c: 746e656d strbtvc r6, [lr], #-1389 + 2440: 73775c73 cmnvc r7, #29440 ; 0x7300 + 2444: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 2448: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 244c: 6165575c cmnvs r5, ip, asr r7 + 2450: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2454: 61745320 cmnvs r4, r0, lsr #6 + 2458: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 245c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2460: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2464: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2468: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 246c: 65746e49 ldrbvs r6, [r4, #-3657]! + 2470: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 2474: 20225c65 eorcs r5, r2, r5, ror #24 + 2478: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 247c: 505c3a43 subspl r3, ip, r3, asr #20 + 2480: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 2484: 46206d61 strtmi r6, [r0], -r1, ror #26 + 2488: 73656c69 cmnvc r5, #26880 ; 0x6900 + 248c: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 2490: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 2494: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 2498: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 249c: 65646465 strbvs r6, [r4, #-1125]! + 24a0: 6f572064 svcvs 0x00572064 + 24a4: 65626b72 strbvs r6, [r2, #-2930]! + 24a8: 2068636e rsbcs r6, r8, lr, ror #6 + 24ac: 20342e35 eorscs r2, r4, r5, lsr lr + 24b0: 6b63694b blvs 18dc9e4 + 24b4: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 24b8: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 24bc: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 24c0: 20225c43 eorcs r5, r2, r3, asr #24 + 24c4: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 24c8: 77726574 undefined + 24cc: 206b726f rsbcs r7, fp, pc, ror #4 + 24d0: 70632d2d rsbvc r2, r3, sp, lsr #26 + 24d4: 6f6d5f75 svcvs 0x006d5f75 + 24d8: 74206564 strtvc r6, [r0], #-1380 + 24dc: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 24e0: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 24e4: 3a430000 bcc 10c24ec + 24e8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 24ec: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 24f0: 61207374 teqvs r0, r4, ror r3 + 24f4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 24f8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 24fc: 5c73676e ldclpl 7, cr6, [r3], #-440 + 2500: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2504: 5c617269 sfmpl f7, 2, [r1], #-420 + 2508: 4420794d strtmi r7, [r0], #-2381 + 250c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2510: 73746e65 cmnvc r4, #1616 ; 0x650 + 2514: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2518: 746e6f63 strbtvc r6, [lr], #-3939 + 251c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 2520: 74616557 strbtvc r6, [r1], #-1367 + 2524: 20726568 rsbscs r6, r2, r8, ror #10 + 2528: 74617453 strbtvc r7, [r1], #-1107 + 252c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 2530: 746e6f43 strbtvc r6, [lr], #-3907 + 2534: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2538: 445c7265 ldrbmi r7, [ip], #-613 + 253c: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 2540: 6a624f5c bvs 18962b8 + 2544: 616c505c qdsubvs r5, ip, ip + 2548: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 + 254c: 696e496d stmdbvs lr!, {r0, r2, r3, r5, r6, r8, fp, lr}^ + 2550: 3a6f2e74 bcc 1bcdf28 + 2554: 41490000 cmpmi r9, r0 + 2558: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 255c: 43204953 teqmi r0, #1359872 ; 0x14c000 + 2560: 2b2b432f blcs ad3224 + 2564: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 2568: 656c6970 strbvs r6, [ip, #-2416]! + 256c: 35562072 ldrbcc r2, [r6, #-114] + 2570: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 2574: 31332e32 teqcc r3, r2, lsr lr + 2578: 2f353932 svccs 0x00353932 + 257c: 20323357 eorscs r3, r2, r7, asr r3 + 2580: 4b43494b blmi 10d4ab4 + 2584: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 2588: 6f662054 svcvs 0x00662054 + 258c: 52412072 subpl r2, r1, #114 ; 0x72 + 2590: 4322004d teqmi r2, #77 ; 0x4d + 2594: 6f445c3a svcvs 0x00445c3a + 2598: 656d7563 strbvs r7, [sp, #-1379]! + 259c: 2073746e rsbscs r7, r3, lr, ror #8 + 25a0: 20646e61 rsbcs r6, r4, r1, ror #28 + 25a4: 74746553 ldrbtvc r6, [r4], #-1363 + 25a8: 73676e69 cmnvc r7, #1680 ; 0x690 + 25ac: 6c616d5c stclvs 13, cr6, [r1], #-368 + 25b0: 61726976 cmnvs r2, r6, ror r9 + 25b4: 20794d5c rsbscs r4, r9, ip, asr sp + 25b8: 75636f44 strbvc r6, [r3, #-3908]! + 25bc: 746e656d strbtvc r6, [lr], #-1389 + 25c0: 73775c73 cmnvc r7, #29440 ; 0x7300 + 25c4: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 25c8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 25cc: 6165575c cmnvs r5, ip, asr r7 + 25d0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 25d4: 61745320 cmnvs r4, r0, lsr #6 + 25d8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 25dc: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 25e0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 25e4: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 25e8: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 25ec: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 25f0: 435c6563 cmpmi ip, #415236096 ; 0x18c00000 + 25f4: 6f6d6d6f svcvs 0x006d6d6f + 25f8: 79535c6e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, fp, ip, lr}^ + 25fc: 6c505c73 mrrcvs 12, 7, r5, r0, cr3 + 2600: 6f667461 svcvs 0x00667461 + 2604: 6e496d72 mcrvs 13, 2, r6, cr9, cr2, {3} + 2608: 632e7469 teqvs lr, #1761607680 ; 0x69000000 + 260c: 442d2022 strtmi r2, [sp], #-34 + 2610: 34324620 ldrtcc r4, [r2], #-1568 + 2614: 205a484d subscs r4, sl, sp, asr #16 + 2618: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 261c: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 2620: 5f595449 svcpl 0x00595449 + 2624: 42414e45 submi r4, r1, #1104 ; 0x450 + 2628: 2044454c subcs r4, r4, ip, asr #10 + 262c: 20436c2d subcs r6, r3, sp, lsr #24 + 2630: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2634: 75636f44 strbvc r6, [r3, #-3908]! + 2638: 746e656d strbtvc r6, [lr], #-1389 + 263c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2640: 65532064 ldrbvs r2, [r3, #-100] + 2644: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2648: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 264c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2650: 4d5c6172 ldfmie f6, [ip, #-456] + 2654: 6f442079 svcvs 0x00442079 + 2658: 656d7563 strbvs r7, [sp, #-1379]! + 265c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2660: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2664: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2668: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 266c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2670: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2674: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2678: 43206e6f teqmi r0, #1776 ; 0x6f0 + 267c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2680: 656c6c6f strbvs r6, [ip, #-3183]! + 2684: 65445c72 strbvs r5, [r4, #-3186] + 2688: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 268c: 7473694c ldrbtvc r6, [r3], #-2380 + 2690: 2d20225c sfmcs f2, 4, [r0, #-368]! + 2694: 6169642d cmnvs r9, sp, lsr #8 + 2698: 75735f67 ldrbvc r5, [r3, #-3943]! + 269c: 65727070 ldrbvs r7, [r2, #-112]! + 26a0: 50207373 eorpl r7, r0, r3, ror r3 + 26a4: 31353965 teqcc r5, r5, ror #18 + 26a8: 3165502c cmncc r5, ip, lsr #32 + 26ac: 502c3131 eorpl r3, ip, r1, lsr r1 + 26b0: 30343965 eorscc r3, r4, r5, ror #18 + 26b4: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 26b8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 26bc: 75636f44 strbvc r6, [r3, #-3908]! + 26c0: 746e656d strbtvc r6, [lr], #-1389 + 26c4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 26c8: 65532064 ldrbvs r2, [r3, #-100] + 26cc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 26d0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 26d4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 26d8: 4d5c6172 ldfmie f6, [ip, #-456] + 26dc: 6f442079 svcvs 0x00442079 + 26e0: 656d7563 strbvs r7, [sp, #-1379]! + 26e4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 26e8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 26ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 26f0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 26f4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 26f8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 26fc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2700: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2704: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2708: 656c6c6f strbvs r6, [ip, #-3183]! + 270c: 65445c72 strbvs r5, [r4, #-3186] + 2710: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 2714: 5c6a624f sfmpl f6, 2, [sl], #-316 + 2718: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 271c: 75626564 strbvc r6, [r2, #-1380]! + 2720: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 2724: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 2728: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 272c: 6c747469 cfldrdvs mvd7, [r4], #-420 + 2730: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 2734: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 2738: 374d5241 strbcc r5, [sp, -r1, asr #4] + 273c: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 2740: 2d20532d stccs 3, cr5, [r0, #-180]! + 2744: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 2748: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 274c: 656e6f4e strbvs r6, [lr, #-3918]! + 2750: 642d2d20 strtvs r2, [sp], #-3360 + 2754: 5f62696c svcpl 0x0062696c + 2758: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 275c: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 2760: 505c3a43 subspl r3, ip, r3, asr #20 + 2764: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 2768: 46206d61 strtmi r6, [r0], -r1, ror #26 + 276c: 73656c69 cmnvc r5, #26880 ; 0x6900 + 2770: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 2774: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 2778: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 277c: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 2780: 65646465 strbvs r6, [r4, #-1125]! + 2784: 6f572064 svcvs 0x00572064 + 2788: 65626b72 strbvs r6, [r2, #-2930]! + 278c: 2068636e rsbcs r6, r8, lr, ror #6 + 2790: 20342e35 eorscs r2, r4, r5, lsr lr + 2794: 6b63694b blvs 18dccc8 + 2798: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 279c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 27a0: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 27a4: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 27a8: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 27ac: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 27b0: 6f4e5f67 svcvs 0x004e5f67 + 27b4: 6c616d72 stclvs 13, cr6, [r1], #-456 + 27b8: 2022682e eorcs r6, r2, lr, lsr #16 + 27bc: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 27c0: 445c3a43 ldrbmi r3, [ip], #-2627 + 27c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 27c8: 73746e65 cmnvc r4, #1616 ; 0x650 + 27cc: 646e6120 strbtvs r6, [lr], #-288 + 27d0: 74655320 strbtvc r5, [r5], #-800 + 27d4: 676e6974 undefined + 27d8: 616d5c73 smcvs 54723 + 27dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 27e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 27e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 27e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 27ec: 775c7374 undefined + 27f0: 6f632d73 svcvs 0x00632d73 + 27f4: 6f72746e svcvs 0x0072746e + 27f8: 65575c6c ldrbvs r5, [r7, #-3180] + 27fc: 65687461 strbvs r7, [r8, #-1121]! + 2800: 74532072 ldrbvc r2, [r3], #-114 + 2804: 6f697461 svcvs 0x00697461 + 2808: 6f43206e svcvs 0x0043206e + 280c: 6f72746e svcvs 0x0072746e + 2810: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2814: 414d535c cmpmi sp, ip, asr r3 + 2818: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 281c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 2820: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 2824: 66726574 undefined + 2828: 5c656361 stclpl 3, cr6, [r5], #-388 + 282c: 492d2022 pushmi {r1, r5, sp} + 2830: 3a432220 bcc 10cb0b8 + 2834: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 2838: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 283c: 61207374 teqvs r0, r4, ror r3 + 2840: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 2844: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 2848: 5c73676e ldclpl 7, cr6, [r3], #-440 + 284c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2850: 5c617269 sfmpl f7, 2, [r1], #-420 + 2854: 4420794d strtmi r7, [r0], #-2381 + 2858: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 285c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2860: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2864: 746e6f63 strbtvc r6, [lr], #-3939 + 2868: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 286c: 74616557 strbtvc r6, [r1], #-1367 + 2870: 20726568 rsbscs r6, r2, r8, ror #10 + 2874: 74617453 strbtvc r7, [r1], #-1107 + 2878: 206e6f69 rsbcs r6, lr, r9, ror #30 + 287c: 746e6f43 strbtvc r6, [lr], #-3907 + 2880: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2884: 505c7265 subspl r7, ip, r5, ror #4 + 2888: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 288c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2890: 65636166 strbvs r6, [r3, #-358]! + 2894: 2d20225c sfmcs f2, 4, [r0, #-368]! + 2898: 43222049 teqmi r2, #73 ; 0x49 + 289c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 28a0: 6172676f cmnvs r2, pc, ror #14 + 28a4: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 28a8: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 28ac: 20524149 subscs r4, r2, r9, asr #2 + 28b0: 74737953 ldrbtvc r7, [r3], #-2387 + 28b4: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 28b8: 65626d45 strbvs r6, [r2, #-3397]! + 28bc: 64656464 strbtvs r6, [r5], #-1124 + 28c0: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 28c4: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 28c8: 35206863 strcc r6, [r0, #-2147]! + 28cc: 4b20342e blmi 80f98c + 28d0: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 28d4: 74726174 ldrbtvc r6, [r2], #-372 + 28d8: 6d72615c ldfvse f6, [r2, #-368]! + 28dc: 434e495c movtmi r4, #59740 ; 0xe95c + 28e0: 2d20225c sfmcs f2, 4, [r0, #-368]! + 28e4: 746e692d strbtvc r6, [lr], #-2349 + 28e8: 6f777265 svcvs 0x00777265 + 28ec: 2d206b72 vstmdbcs r0!, {d6-} + 28f0: 7570632d ldrbvc r6, [r0, #-813]! + 28f4: 646f6d5f strbtvs r6, [pc], #3423 ; 28fc <__USR_stack_size+0x20fc> + 28f8: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 28fc: 20626d75 rsbcs r6, r2, r5, ror sp + 2900: 00684f2d rsbeq r4, r8, sp, lsr #30 + 2904: 5c3a4300 ldcpl 3, cr4, [sl] + 2908: 75636f44 strbvc r6, [r3, #-3908]! + 290c: 746e656d strbtvc r6, [lr], #-1389 + 2910: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2914: 65532064 ldrbvs r2, [r3, #-100] + 2918: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 291c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2920: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2924: 4d5c6172 ldfmie f6, [ip, #-456] + 2928: 6f442079 svcvs 0x00442079 + 292c: 656d7563 strbvs r7, [sp, #-1379]! + 2930: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2934: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2938: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 293c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2940: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2944: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2948: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 294c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2950: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2954: 656c6c6f strbvs r6, [ip, #-3183]! + 2958: 65445c72 strbvs r5, [r4, #-3186] + 295c: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 2960: 5c6a624f sfmpl f6, 2, [sl], #-316 + 2964: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 2968: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 296c: 6d656761 stclvs 7, cr6, [r5, #-388]! + 2970: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 2974: 00003a6f andeq r3, r0, pc, ror #20 + 2978: 20524149 subscs r4, r2, r9, asr #2 + 297c: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 2980: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 2984: 43202b2b teqmi r0, #44032 ; 0xac00 + 2988: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 298c: 2072656c rsbscs r6, r2, ip, ror #10 + 2990: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 2994: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 2998: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 299c: 33572f35 cmpcc r7, #212 ; 0xd4 + 29a0: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 29a4: 54534b43 ldrbpl r4, [r3], #-2883 + 29a8: 20545241 subscs r5, r4, r1, asr #4 + 29ac: 20726f66 rsbscs r6, r2, r6, ror #30 + 29b0: 004d5241 subeq r5, sp, r1, asr #4 + 29b4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 29b8: 75636f44 strbvc r6, [r3, #-3908]! + 29bc: 746e656d strbtvc r6, [lr], #-1389 + 29c0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 29c4: 65532064 ldrbvs r2, [r3, #-100] + 29c8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 29cc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 29d0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 29d4: 4d5c6172 ldfmie f6, [ip, #-456] + 29d8: 6f442079 svcvs 0x00442079 + 29dc: 656d7563 strbvs r7, [sp, #-1379]! + 29e0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 29e4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 29e8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 29ec: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 29f0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 29f4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 29f8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 29fc: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2a00: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2a04: 656c6c6f strbvs r6, [ip, #-3183]! + 2a08: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 2a0c: 535c4341 cmppl ip, #67108865 ; 0x4000001 + 2a10: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 + 2a14: 61525c65 cmpvs r2, r5, ror #24 + 2a18: 4d6f6964 stclmi 9, cr6, [pc, #-400]! + 2a1c: 67616e61 strbvs r6, [r1, -r1, ror #28]! + 2a20: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} + 2a24: 22632e74 rsbcs r2, r3, #1856 ; 0x740 + 2a28: 20442d20 subcs r2, r4, r0, lsr #26 + 2a2c: 4d343246 lfmmi f3, 4, [r4, #-280]! + 2a30: 2d205a48 fstmdbscs r0!, {s10-s81} + 2a34: 45532044 ldrbmi r2, [r3, #-68] + 2a38: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ + 2a3c: 455f5954 ldrbmi r5, [pc, #-2388] ; 20f0 <__USR_stack_size+0x18f0> + 2a40: 4c42414e stfmie f4, [r2], {78} + 2a44: 2d204445 cfstrscs mvf4, [r0, #-276]! + 2a48: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 + 2a4c: 445c3a43 ldrbmi r3, [ip], #-2627 + 2a50: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2a54: 73746e65 cmnvc r4, #1616 ; 0x650 + 2a58: 646e6120 strbtvs r6, [lr], #-288 + 2a5c: 74655320 strbtvc r5, [r5], #-800 + 2a60: 676e6974 undefined + 2a64: 616d5c73 smcvs 54723 + 2a68: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2a6c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2a70: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2a74: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2a78: 775c7374 undefined + 2a7c: 6f632d73 svcvs 0x00632d73 + 2a80: 6f72746e svcvs 0x0072746e + 2a84: 65575c6c ldrbvs r5, [r7, #-3180] + 2a88: 65687461 strbvs r7, [r8, #-1121]! + 2a8c: 74532072 ldrbvc r2, [r3], #-114 + 2a90: 6f697461 svcvs 0x00697461 + 2a94: 6f43206e svcvs 0x0043206e + 2a98: 6f72746e svcvs 0x0072746e + 2a9c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2aa0: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 2aa4: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 + 2aa8: 5c747369 ldclpl 3, cr7, [r4], #-420 + 2aac: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 2ab0: 67616964 strbvs r6, [r1, -r4, ror #18]! + 2ab4: 7075735f rsbsvc r7, r5, pc, asr r3 + 2ab8: 73657270 cmnvc r5, #7 ; 0x7 + 2abc: 65502073 ldrbvs r2, [r0, #-115] + 2ac0: 2c313539 cfldr32cs mvfx3, [r1], #-228 + 2ac4: 31316550 teqcc r1, r0, asr r5 + 2ac8: 65502c31 ldrbvs r2, [r0, #-3121] + 2acc: 20303439 eorscs r3, r0, r9, lsr r4 + 2ad0: 22206f2d eorcs r6, r0, #180 ; 0xb4 + 2ad4: 445c3a43 ldrbmi r3, [ip], #-2627 + 2ad8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2adc: 73746e65 cmnvc r4, #1616 ; 0x650 + 2ae0: 646e6120 strbtvs r6, [lr], #-288 + 2ae4: 74655320 strbtvc r5, [r5], #-800 + 2ae8: 676e6974 undefined + 2aec: 616d5c73 smcvs 54723 + 2af0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2af4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2af8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2afc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2b00: 775c7374 undefined + 2b04: 6f632d73 svcvs 0x00632d73 + 2b08: 6f72746e svcvs 0x0072746e + 2b0c: 65575c6c ldrbvs r5, [r7, #-3180] + 2b10: 65687461 strbvs r7, [r8, #-1121]! + 2b14: 74532072 ldrbvc r2, [r3], #-114 + 2b18: 6f697461 svcvs 0x00697461 + 2b1c: 6f43206e svcvs 0x0043206e + 2b20: 6f72746e svcvs 0x0072746e + 2b24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2b28: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 2b2c: 4f5c6775 svcmi 0x005c6775 + 2b30: 225c6a62 subscs r6, ip, #401408 ; 0x62000 + 2b34: 642d2d20 strtvs r2, [sp], #-3360 + 2b38: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 2b3c: 652d2d20 strvs r2, [sp, #-3360]! + 2b40: 6169646e cmnvs r9, lr, ror #8 + 2b44: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ + 2b48: 656c7474 strbvs r7, [ip, #-1140]! + 2b4c: 632d2d20 teqvs sp, #2048 ; 0x800 + 2b50: 413d7570 teqmi sp, r0, ror r5 + 2b54: 54374d52 ldrtpl r4, [r7], #-3410 + 2b58: 2d494d44 stclcs 13, cr4, [r9, #-272] + 2b5c: 652d2053 strvs r2, [sp, #-83]! + 2b60: 662d2d20 strtvs r2, [sp], -r0, lsr #26 + 2b64: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} + 2b68: 20656e6f rsbcs r6, r5, pc, ror #28 + 2b6c: 6c642d2d stclvs 13, cr2, [r4], #-180 + 2b70: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 + 2b74: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 2b78: 43222067 teqmi r2, #103 ; 0x67 + 2b7c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 2b80: 6172676f cmnvs r2, pc, ror #14 + 2b84: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 2b88: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 2b8c: 20524149 subscs r4, r2, r9, asr #2 + 2b90: 74737953 ldrbtvc r7, [r3], #-2387 + 2b94: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 2b98: 65626d45 strbvs r6, [r2, #-3397]! + 2b9c: 64656464 strbtvs r6, [r5], #-1124 + 2ba0: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 2ba4: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 2ba8: 35206863 strcc r6, [r0, #-2147]! + 2bac: 4b20342e blmi 80fc6c + 2bb0: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 2bb4: 74726174 ldrbtvc r6, [r2], #-372 + 2bb8: 6d72615c ldfvse f6, [r2, #-368]! + 2bbc: 434e495c movtmi r4, #59740 ; 0xe95c + 2bc0: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ + 2bc4: 6f435f62 svcvs 0x00435f62 + 2bc8: 6769666e strbvs r6, [r9, -lr, ror #12]! + 2bcc: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 + 2bd0: 2e6c616d powcsez f6, f4, #5.0 + 2bd4: 2d202268 sfmcs f2, 4, [r0, #-416]! + 2bd8: 43222049 teqmi r2, #73 ; 0x49 + 2bdc: 6f445c3a svcvs 0x00445c3a + 2be0: 656d7563 strbvs r7, [sp, #-1379]! + 2be4: 2073746e rsbscs r7, r3, lr, ror #8 + 2be8: 20646e61 rsbcs r6, r4, r1, ror #28 + 2bec: 74746553 ldrbtvc r6, [r4], #-1363 + 2bf0: 73676e69 cmnvc r7, #1680 ; 0x690 + 2bf4: 6c616d5c stclvs 13, cr6, [r1], #-368 + 2bf8: 61726976 cmnvs r2, r6, ror r9 + 2bfc: 20794d5c rsbscs r4, r9, ip, asr sp + 2c00: 75636f44 strbvc r6, [r3, #-3908]! + 2c04: 746e656d strbtvc r6, [lr], #-1389 + 2c08: 73775c73 cmnvc r7, #29440 ; 0x7300 + 2c0c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 2c10: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2c14: 6165575c cmnvs r5, ip, asr r7 + 2c18: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2c1c: 61745320 cmnvs r4, r0, lsr #6 + 2c20: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2c24: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2c28: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2c2c: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2c30: 43414d53 movtmi r4, #7507 ; 0x1d53 + 2c34: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 2c38: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 2c3c: 746e495c strbtvc r4, [lr], #-2396 + 2c40: 61667265 cmnvs r6, r5, ror #4 + 2c44: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 2c48: 20492d20 subcs r2, r9, r0, lsr #26 + 2c4c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2c50: 75636f44 strbvc r6, [r3, #-3908]! + 2c54: 746e656d strbtvc r6, [lr], #-1389 + 2c58: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2c5c: 65532064 ldrbvs r2, [r3, #-100] + 2c60: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2c64: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2c68: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2c6c: 4d5c6172 ldfmie f6, [ip, #-456] + 2c70: 6f442079 svcvs 0x00442079 + 2c74: 656d7563 strbvs r7, [sp, #-1379]! + 2c78: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2c7c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2c80: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2c84: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2c88: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2c8c: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2c90: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2c94: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2c98: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2c9c: 656c6c6f strbvs r6, [ip, #-3183]! + 2ca0: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 + 2ca4: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} + 2ca8: 66726574 undefined + 2cac: 5c656361 stclpl 3, cr6, [r5], #-388 + 2cb0: 492d2022 pushmi {r1, r5, sp} + 2cb4: 3a432220 bcc 10cb53c + 2cb8: 6f72505c svcvs 0x0072505c + 2cbc: 6d617267 sfmvs f7, 2, [r1, #-412]! + 2cc0: 6c694620 stclvs 6, cr4, [r9], #-128 + 2cc4: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 2cc8: 53205241 teqpl r0, #268435460 ; 0x10000004 + 2ccc: 65747379 ldrbvs r7, [r4, #-889]! + 2cd0: 455c736d ldrbmi r7, [ip, #-877] + 2cd4: 6465626d strbtvs r6, [r5], #-621 + 2cd8: 20646564 rsbcs r6, r4, r4, ror #10 + 2cdc: 6b726f57 blvs 1c9ea40 + 2ce0: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 2ce4: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 2ce8: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 2cec: 74736b63 ldrbtvc r6, [r3], #-2915 + 2cf0: 5c747261 lfmpl f7, 2, [r4], #-388 + 2cf4: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 2cf8: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 2cfc: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 2d00: 65746e69 ldrbvs r6, [r4, #-3689]! + 2d04: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 2d08: 2d2d206b stccs 0, cr2, [sp, #-428]! + 2d0c: 5f757063 svcpl 0x00757063 + 2d10: 65646f6d strbvs r6, [r4, #-3949]! + 2d14: 75687420 strbvc r7, [r8, #-1056]! + 2d18: 2d20626d sfmcs f6, 4, [r0, #-436]! + 2d1c: 0000684f andeq r6, r0, pc, asr #16 + 2d20: 445c3a43 ldrbmi r3, [ip], #-2627 + 2d24: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2d28: 73746e65 cmnvc r4, #1616 ; 0x650 + 2d2c: 646e6120 strbtvs r6, [lr], #-288 + 2d30: 74655320 strbtvc r5, [r5], #-800 + 2d34: 676e6974 undefined + 2d38: 616d5c73 smcvs 54723 + 2d3c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2d40: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2d44: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2d48: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2d4c: 775c7374 undefined + 2d50: 6f632d73 svcvs 0x00632d73 + 2d54: 6f72746e svcvs 0x0072746e + 2d58: 65575c6c ldrbvs r5, [r7, #-3180] + 2d5c: 65687461 strbvs r7, [r8, #-1121]! + 2d60: 74532072 ldrbvc r2, [r3], #-114 + 2d64: 6f697461 svcvs 0x00697461 + 2d68: 6f43206e svcvs 0x0043206e + 2d6c: 6f72746e svcvs 0x0072746e + 2d70: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2d74: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 2d78: 4f5c6775 svcmi 0x005c6775 + 2d7c: 535c6a62 cmppl ip, #401408 ; 0x62000 + 2d80: 72756365 rsbsvc r6, r5, #-1811939327 ; 0x94000001 + 2d84: 4d797469 cfldrdmi mvd7, [r9, #-420]! + 2d88: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 2d8c: 3a6f2e74 bcc 1bce764 + 2d90: 41490000 cmpmi r9, r0 + 2d94: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 2d98: 43204953 teqmi r0, #1359872 ; 0x14c000 + 2d9c: 2b2b432f blcs ad3a60 + 2da0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 2da4: 656c6970 strbvs r6, [ip, #-2416]! + 2da8: 35562072 ldrbcc r2, [r6, #-114] + 2dac: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 2db0: 31332e32 teqcc r3, r2, lsr lr + 2db4: 2f353932 svccs 0x00353932 + 2db8: 20323357 eorscs r3, r2, r7, asr r3 + 2dbc: 4b43494b blmi 10d52f0 + 2dc0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 2dc4: 6f662054 svcvs 0x00662054 + 2dc8: 52412072 subpl r2, r1, #114 ; 0x72 + 2dcc: 4322004d teqmi r2, #77 ; 0x4d + 2dd0: 6f445c3a svcvs 0x00445c3a + 2dd4: 656d7563 strbvs r7, [sp, #-1379]! + 2dd8: 2073746e rsbscs r7, r3, lr, ror #8 + 2ddc: 20646e61 rsbcs r6, r4, r1, ror #28 + 2de0: 74746553 ldrbtvc r6, [r4], #-1363 + 2de4: 73676e69 cmnvc r7, #1680 ; 0x690 + 2de8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 2dec: 61726976 cmnvs r2, r6, ror r9 + 2df0: 20794d5c rsbscs r4, r9, ip, asr sp + 2df4: 75636f44 strbvc r6, [r3, #-3908]! + 2df8: 746e656d strbtvc r6, [lr], #-1389 + 2dfc: 73775c73 cmnvc r7, #29440 ; 0x7300 + 2e00: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 2e04: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2e08: 6165575c cmnvs r5, ip, asr r7 + 2e0c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2e10: 61745320 cmnvs r4, r0, lsr #6 + 2e14: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2e18: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2e1c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2e20: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2e24: 43414d53 movtmi r4, #7507 ; 0x1d53 + 2e28: 756f535c strbvc r5, [pc, #-860]! ; 2ad4 <__USR_stack_size+0x22d4> + 2e2c: 5c656372 stclpl 3, cr6, [r5], #-456 + 2e30: 75636553 strbvc r6, [r3, #-1363]! + 2e34: 79746972 ldmdbvc r4!, {r1, r4, r5, r6, r8, fp, sp, lr}^ + 2e38: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 2e3c: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 2e40: 442d2022 strtmi r2, [sp], #-34 + 2e44: 34324620 ldrtcc r4, [r2], #-1568 + 2e48: 205a484d subscs r4, sl, sp, asr #16 + 2e4c: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 2e50: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 2e54: 5f595449 svcpl 0x00595449 + 2e58: 42414e45 submi r4, r1, #1104 ; 0x450 + 2e5c: 2044454c subcs r4, r4, ip, asr #10 + 2e60: 20436c2d subcs r6, r3, sp, lsr #24 + 2e64: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2e68: 75636f44 strbvc r6, [r3, #-3908]! + 2e6c: 746e656d strbtvc r6, [lr], #-1389 + 2e70: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2e74: 65532064 ldrbvs r2, [r3, #-100] + 2e78: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2e7c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2e80: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2e84: 4d5c6172 ldfmie f6, [ip, #-456] + 2e88: 6f442079 svcvs 0x00442079 + 2e8c: 656d7563 strbvs r7, [sp, #-1379]! + 2e90: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2e94: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2e98: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2e9c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2ea0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2ea4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2ea8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2eac: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2eb0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2eb4: 656c6c6f strbvs r6, [ip, #-3183]! + 2eb8: 65445c72 strbvs r5, [r4, #-3186] + 2ebc: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 2ec0: 7473694c ldrbtvc r6, [r3], #-2380 + 2ec4: 2d20225c sfmcs f2, 4, [r0, #-368]! + 2ec8: 6169642d cmnvs r9, sp, lsr #8 + 2ecc: 75735f67 ldrbvc r5, [r3, #-3943]! + 2ed0: 65727070 ldrbvs r7, [r2, #-112]! + 2ed4: 50207373 eorpl r7, r0, r3, ror r3 + 2ed8: 31353965 teqcc r5, r5, ror #18 + 2edc: 3165502c cmncc r5, ip, lsr #32 + 2ee0: 502c3131 eorpl r3, ip, r1, lsr r1 + 2ee4: 30343965 eorscc r3, r4, r5, ror #18 + 2ee8: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 2eec: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2ef0: 75636f44 strbvc r6, [r3, #-3908]! + 2ef4: 746e656d strbtvc r6, [lr], #-1389 + 2ef8: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2efc: 65532064 ldrbvs r2, [r3, #-100] + 2f00: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2f04: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2f08: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2f0c: 4d5c6172 ldfmie f6, [ip, #-456] + 2f10: 6f442079 svcvs 0x00442079 + 2f14: 656d7563 strbvs r7, [sp, #-1379]! + 2f18: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2f1c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2f20: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2f24: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2f28: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2f2c: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2f30: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2f34: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2f38: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2f3c: 656c6c6f strbvs r6, [ip, #-3183]! + 2f40: 65445c72 strbvs r5, [r4, #-3186] + 2f44: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 2f48: 5c6a624f sfmpl f6, 2, [sl], #-316 + 2f4c: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 2f50: 75626564 strbvc r6, [r2, #-1380]! + 2f54: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 2f58: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 2f5c: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 2f60: 6c747469 cfldrdvs mvd7, [r4], #-420 + 2f64: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 2f68: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 2f6c: 374d5241 strbcc r5, [sp, -r1, asr #4] + 2f70: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 2f74: 2d20532d stccs 3, cr5, [r0, #-180]! + 2f78: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 2f7c: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 2f80: 656e6f4e strbvs r6, [lr, #-3918]! + 2f84: 642d2d20 strtvs r2, [sp], #-3360 + 2f88: 5f62696c svcpl 0x0062696c + 2f8c: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 2f90: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 2f94: 505c3a43 subspl r3, ip, r3, asr #20 + 2f98: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 2f9c: 46206d61 strtmi r6, [r0], -r1, ror #26 + 2fa0: 73656c69 cmnvc r5, #26880 ; 0x6900 + 2fa4: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 2fa8: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 2fac: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 2fb0: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 2fb4: 65646465 strbvs r6, [r4, #-1125]! + 2fb8: 6f572064 svcvs 0x00572064 + 2fbc: 65626b72 strbvs r6, [r2, #-2930]! + 2fc0: 2068636e rsbcs r6, r8, lr, ror #6 + 2fc4: 20342e35 eorscs r2, r4, r5, lsr lr + 2fc8: 6b63694b blvs 18dd4fc + 2fcc: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 2fd0: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 2fd4: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 2fd8: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 2fdc: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 2fe0: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 2fe4: 6f4e5f67 svcvs 0x004e5f67 + 2fe8: 6c616d72 stclvs 13, cr6, [r1], #-456 + 2fec: 2022682e eorcs r6, r2, lr, lsr #16 + 2ff0: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 2ff4: 445c3a43 ldrbmi r3, [ip], #-2627 + 2ff8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2ffc: 73746e65 cmnvc r4, #1616 ; 0x650 + 3000: 646e6120 strbtvs r6, [lr], #-288 + 3004: 74655320 strbtvc r5, [r5], #-800 + 3008: 676e6974 undefined + 300c: 616d5c73 smcvs 54723 + 3010: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3014: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3018: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 301c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3020: 775c7374 undefined + 3024: 6f632d73 svcvs 0x00632d73 + 3028: 6f72746e svcvs 0x0072746e + 302c: 65575c6c ldrbvs r5, [r7, #-3180] + 3030: 65687461 strbvs r7, [r8, #-1121]! + 3034: 74532072 ldrbvc r2, [r3], #-114 + 3038: 6f697461 svcvs 0x00697461 + 303c: 6f43206e svcvs 0x0043206e + 3040: 6f72746e svcvs 0x0072746e + 3044: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3048: 414d535c cmpmi sp, ip, asr r3 + 304c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 3050: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3054: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 3058: 66726574 undefined + 305c: 5c656361 stclpl 3, cr6, [r5], #-388 + 3060: 492d2022 pushmi {r1, r5, sp} + 3064: 3a432220 bcc 10cb8ec + 3068: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 306c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3070: 61207374 teqvs r0, r4, ror r3 + 3074: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3078: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 307c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3080: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3084: 5c617269 sfmpl f7, 2, [r1], #-420 + 3088: 4420794d strtmi r7, [r0], #-2381 + 308c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3090: 73746e65 cmnvc r4, #1616 ; 0x650 + 3094: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3098: 746e6f63 strbtvc r6, [lr], #-3939 + 309c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 30a0: 74616557 strbtvc r6, [r1], #-1367 + 30a4: 20726568 rsbscs r6, r2, r8, ror #10 + 30a8: 74617453 strbtvc r7, [r1], #-1107 + 30ac: 206e6f69 rsbcs r6, lr, r9, ror #30 + 30b0: 746e6f43 strbtvc r6, [lr], #-3907 + 30b4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 30b8: 505c7265 subspl r7, ip, r5, ror #4 + 30bc: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 30c0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 30c4: 65636166 strbvs r6, [r3, #-358]! + 30c8: 2d20225c sfmcs f2, 4, [r0, #-368]! + 30cc: 43222049 teqmi r2, #73 ; 0x49 + 30d0: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 30d4: 6172676f cmnvs r2, pc, ror #14 + 30d8: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 30dc: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 30e0: 20524149 subscs r4, r2, r9, asr #2 + 30e4: 74737953 ldrbtvc r7, [r3], #-2387 + 30e8: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 30ec: 65626d45 strbvs r6, [r2, #-3397]! + 30f0: 64656464 strbtvs r6, [r5], #-1124 + 30f4: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 30f8: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 30fc: 35206863 strcc r6, [r0, #-2147]! + 3100: 4b20342e blmi 8101c0 + 3104: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 3108: 74726174 ldrbtvc r6, [r2], #-372 + 310c: 6d72615c ldfvse f6, [r2, #-368]! + 3110: 434e495c movtmi r4, #59740 ; 0xe95c + 3114: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3118: 746e692d strbtvc r6, [lr], #-2349 + 311c: 6f777265 svcvs 0x00777265 + 3120: 2d206b72 vstmdbcs r0!, {d6-} + 3124: 7570632d ldrbvc r6, [r0, #-813]! + 3128: 646f6d5f strbtvs r6, [pc], #3423 ; 3130 + 312c: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 3130: 20626d75 rsbcs r6, r2, r5, ror sp + 3134: 00684f2d rsbeq r4, r8, sp, lsr #30 + 3138: 5c3a4300 ldcpl 3, cr4, [sl] + 313c: 75636f44 strbvc r6, [r3, #-3908]! + 3140: 746e656d strbtvc r6, [lr], #-1389 + 3144: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3148: 65532064 ldrbvs r2, [r3, #-100] + 314c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3150: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3154: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3158: 4d5c6172 ldfmie f6, [ip, #-456] + 315c: 6f442079 svcvs 0x00442079 + 3160: 656d7563 strbvs r7, [sp, #-1379]! + 3164: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3168: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 316c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3170: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3174: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3178: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 317c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3180: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3184: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3188: 656c6c6f strbvs r6, [ip, #-3183]! + 318c: 65445c72 strbvs r5, [r4, #-3186] + 3190: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 3194: 5c6a624f sfmpl f6, 2, [sl], #-316 + 3198: 6e756f53 mrcvs 15, 3, r6, cr5, cr3, {2} + 319c: 3a6f2e64 bcc 1bceb34 + 31a0: 41490000 cmpmi r9, r0 + 31a4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 31a8: 43204953 teqmi r0, #1359872 ; 0x14c000 + 31ac: 2b2b432f blcs ad3e70 + 31b0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 31b4: 656c6970 strbvs r6, [ip, #-2416]! + 31b8: 35562072 ldrbcc r2, [r6, #-114] + 31bc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 31c0: 31332e32 teqcc r3, r2, lsr lr + 31c4: 2f353932 svccs 0x00353932 + 31c8: 20323357 eorscs r3, r2, r7, asr r3 + 31cc: 4b43494b blmi 10d5700 + 31d0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 31d4: 6f662054 svcvs 0x00662054 + 31d8: 52412072 subpl r2, r1, #114 ; 0x72 + 31dc: 4322004d teqmi r2, #77 ; 0x4d + 31e0: 6f445c3a svcvs 0x00445c3a + 31e4: 656d7563 strbvs r7, [sp, #-1379]! + 31e8: 2073746e rsbscs r7, r3, lr, ror #8 + 31ec: 20646e61 rsbcs r6, r4, r1, ror #28 + 31f0: 74746553 ldrbtvc r6, [r4], #-1363 + 31f4: 73676e69 cmnvc r7, #1680 ; 0x690 + 31f8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 31fc: 61726976 cmnvs r2, r6, ror r9 + 3200: 20794d5c rsbscs r4, r9, ip, asr sp + 3204: 75636f44 strbvc r6, [r3, #-3908]! + 3208: 746e656d strbtvc r6, [lr], #-1389 + 320c: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3210: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 3214: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3218: 6165575c cmnvs r5, ip, asr r7 + 321c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3220: 61745320 cmnvs r4, r0, lsr #6 + 3224: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3228: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 322c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3230: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 3234: 6c707041 ldclvs 0, cr7, [r0], #-260 + 3238: 74616369 strbtvc r6, [r1], #-873 + 323c: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 3240: 6c697455 cfstrdvs mvd7, [r9], #-340 + 3244: 65697469 strbvs r7, [r9, #-1129]! + 3248: 6f535c73 svcvs 0x00535c73 + 324c: 2e646e75 mcrcs 14, 3, r6, cr4, cr5, {3} + 3250: 2d202263 sfmcs f2, 4, [r0, #-396]! + 3254: 32462044 subcc r2, r6, #68 ; 0x44 + 3258: 5a484d34 bpl 1216730 + 325c: 20442d20 subcs r2, r4, r0, lsr #26 + 3260: 55434553 strbpl r4, [r3, #-1363] + 3264: 59544952 ldmdbpl r4, {r1, r4, r6, r8, fp, lr}^ + 3268: 414e455f cmpmi lr, pc, asr r5 + 326c: 44454c42 strbmi r4, [r5], #-3138 + 3270: 436c2d20 cmnmi ip, #2048 ; 0x800 + 3274: 3a432220 bcc 10cbafc + 3278: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 327c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3280: 61207374 teqvs r0, r4, ror r3 + 3284: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3288: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 328c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3290: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3294: 5c617269 sfmpl f7, 2, [r1], #-420 + 3298: 4420794d strtmi r7, [r0], #-2381 + 329c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 32a0: 73746e65 cmnvc r4, #1616 ; 0x650 + 32a4: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 32a8: 746e6f63 strbtvc r6, [lr], #-3939 + 32ac: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 32b0: 74616557 strbtvc r6, [r1], #-1367 + 32b4: 20726568 rsbscs r6, r2, r8, ror #10 + 32b8: 74617453 strbtvc r7, [r1], #-1107 + 32bc: 206e6f69 rsbcs r6, lr, r9, ror #30 + 32c0: 746e6f43 strbtvc r6, [lr], #-3907 + 32c4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 32c8: 445c7265 ldrbmi r7, [ip], #-613 + 32cc: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 32d0: 73694c5c cmnvc r9, #23552 ; 0x5c00 + 32d4: 20225c74 eorcs r5, r2, r4, ror ip + 32d8: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 32dc: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 32e0: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 32e4: 20737365 rsbscs r7, r3, r5, ror #6 + 32e8: 35396550 ldrcc r6, [r9, #-1360]! + 32ec: 65502c31 ldrbvs r2, [r0, #-3121] + 32f0: 2c313131 ldfcss f3, [r1], #-196 + 32f4: 34396550 ldrtcc r6, [r9], #-1360 + 32f8: 6f2d2030 svcvs 0x002d2030 + 32fc: 3a432220 bcc 10cbb84 + 3300: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3304: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3308: 61207374 teqvs r0, r4, ror r3 + 330c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3310: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3314: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3318: 766c616d strbtvc r6, [ip], -sp, ror #2 + 331c: 5c617269 sfmpl f7, 2, [r1], #-420 + 3320: 4420794d strtmi r7, [r0], #-2381 + 3324: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3328: 73746e65 cmnvc r4, #1616 ; 0x650 + 332c: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3330: 746e6f63 strbtvc r6, [lr], #-3939 + 3334: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3338: 74616557 strbtvc r6, [r1], #-1367 + 333c: 20726568 rsbscs r6, r2, r8, ror #10 + 3340: 74617453 strbtvc r7, [r1], #-1107 + 3344: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3348: 746e6f43 strbtvc r6, [lr], #-3907 + 334c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3350: 445c7265 ldrbmi r7, [ip], #-613 + 3354: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 3358: 6a624f5c bvs 18970d0 + 335c: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3360: 6265642d rsbvs r6, r5, #754974720 ; 0x2d000000 + 3364: 2d206775 stccs 7, cr6, [r0, #-468]! + 3368: 646e652d strbtvs r6, [lr], #-1325 + 336c: 3d6e6169 stfcce f6, [lr, #-420]! + 3370: 7474696c ldrbtvc r6, [r4], #-2412 + 3374: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 3378: 7570632d ldrbvc r6, [r0, #-813]! + 337c: 4d52413d ldfmie f4, [r2, #-244] + 3380: 4d445437 cfstrdmi mvd5, [r4, #-220] + 3384: 20532d49 subscs r2, r3, r9, asr #26 + 3388: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 338c: 7570662d ldrbvc r6, [r0, #-1581]! + 3390: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 3394: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 3398: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 339c: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 33a0: 20676966 rsbcs r6, r7, r6, ror #18 + 33a4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 33a8: 676f7250 undefined + 33ac: 206d6172 rsbcs r6, sp, r2, ror r1 + 33b0: 656c6946 strbvs r6, [ip, #-2374]! + 33b4: 41495c73 cmpmi r9, r3, ror ip + 33b8: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + 33bc: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 33c0: 6d455c73 stclvs 12, cr5, [r5, #-460] + 33c4: 64646562 strbtvs r6, [r4], #-1378 + 33c8: 57206465 strpl r6, [r0, -r5, ror #8]! + 33cc: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + 33d0: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 33d4: 342e3520 strtcc r3, [lr], #-1312 + 33d8: 63694b20 cmnvs r9, #32768 ; 0x8000 + 33dc: 6174736b cmnvs r4, fp, ror #6 + 33e0: 615c7472 cmpvs ip, r2, ror r4 + 33e4: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 33e8: 445c434e ldrbmi r4, [ip], #-846 + 33ec: 5f62694c svcpl 0x0062694c + 33f0: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 33f4: 4e5f6769 cdpmi 7, 5, cr6, cr15, cr9, {3} + 33f8: 616d726f cmnvs sp, pc, ror #4 + 33fc: 22682e6c rsbcs r2, r8, #1728 ; 0x6c0 + 3400: 20492d20 subcs r2, r9, r0, lsr #26 + 3404: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 3408: 75636f44 strbvc r6, [r3, #-3908]! + 340c: 746e656d strbtvc r6, [lr], #-1389 + 3410: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3414: 65532064 ldrbvs r2, [r3, #-100] + 3418: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 341c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3420: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3424: 4d5c6172 ldfmie f6, [ip, #-456] + 3428: 6f442079 svcvs 0x00442079 + 342c: 656d7563 strbvs r7, [sp, #-1379]! + 3430: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3434: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 3438: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 343c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3440: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3444: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 3448: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 344c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3450: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3454: 656c6c6f strbvs r6, [ip, #-3183]! + 3458: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 345c: 445c4341 ldrbmi r4, [ip], #-833 + 3460: 65766972 ldrbvs r6, [r6, #-2418]! + 3464: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 3468: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 346c: 65636166 strbvs r6, [r3, #-358]! + 3470: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3474: 43222049 teqmi r2, #73 ; 0x49 + 3478: 6f445c3a svcvs 0x00445c3a + 347c: 656d7563 strbvs r7, [sp, #-1379]! + 3480: 2073746e rsbscs r7, r3, lr, ror #8 + 3484: 20646e61 rsbcs r6, r4, r1, ror #28 + 3488: 74746553 ldrbtvc r6, [r4], #-1363 + 348c: 73676e69 cmnvc r7, #1680 ; 0x690 + 3490: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3494: 61726976 cmnvs r2, r6, ror r9 + 3498: 20794d5c rsbscs r4, r9, ip, asr sp + 349c: 75636f44 strbvc r6, [r3, #-3908]! + 34a0: 746e656d strbtvc r6, [lr], #-1389 + 34a4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 34a8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 34ac: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 34b0: 6165575c cmnvs r5, ip, asr r7 + 34b4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 34b8: 61745320 cmnvs r4, r0, lsr #6 + 34bc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 34c0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 34c4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 34c8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 34cc: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 34d0: 65746e49 ldrbvs r6, [r4, #-3657]! + 34d4: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 34d8: 20225c65 eorcs r5, r2, r5, ror #24 + 34dc: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 34e0: 505c3a43 subspl r3, ip, r3, asr #20 + 34e4: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 34e8: 46206d61 strtmi r6, [r0], -r1, ror #26 + 34ec: 73656c69 cmnvc r5, #26880 ; 0x6900 + 34f0: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 34f4: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 34f8: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 34fc: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 3500: 65646465 strbvs r6, [r4, #-1125]! + 3504: 6f572064 svcvs 0x00572064 + 3508: 65626b72 strbvs r6, [r2, #-2930]! + 350c: 2068636e rsbcs r6, r8, lr, ror #6 + 3510: 20342e35 eorscs r2, r4, r5, lsr lr + 3514: 6b63694b blvs 18dda48 + 3518: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 351c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 3520: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 3524: 20225c43 eorcs r5, r2, r3, asr #24 + 3528: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 352c: 77726574 undefined + 3530: 206b726f rsbcs r7, fp, pc, ror #4 + 3534: 70632d2d rsbvc r2, r3, sp, lsr #26 + 3538: 6f6d5f75 svcvs 0x006d5f75 + 353c: 74206564 strtvc r6, [r0], #-1380 + 3540: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 3544: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 3548: 3a430000 bcc 10c3550 + 354c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3550: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3554: 61207374 teqvs r0, r4, ror r3 + 3558: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 355c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3560: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3564: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3568: 5c617269 sfmpl f7, 2, [r1], #-420 + 356c: 4420794d strtmi r7, [r0], #-2381 + 3570: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3574: 73746e65 cmnvc r4, #1616 ; 0x650 + 3578: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 357c: 746e6f63 strbtvc r6, [lr], #-3939 + 3580: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3584: 74616557 strbtvc r6, [r1], #-1367 + 3588: 20726568 rsbscs r6, r2, r8, ror #10 + 358c: 74617453 strbtvc r7, [r1], #-1107 + 3590: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3594: 746e6f43 strbtvc r6, [lr], #-3907 + 3598: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 359c: 445c7265 ldrbmi r7, [ip], #-613 + 35a0: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 35a4: 6a624f5c bvs 189731c + 35a8: 6172545c cmnvs r2, ip, asr r4 + 35ac: 6563736e strbvs r7, [r3, #-878]! + 35b0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 35b4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 35b8: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 35bc: 746e6d67 strbtvc r6, [lr], #-3431 + 35c0: 003a6f2e eorseq r6, sl, lr, lsr #30 + 35c4: 52414900 subpl r4, r1, #0 ; 0x0 + 35c8: 534e4120 movtpl r4, #57632 ; 0xe120 + 35cc: 2f432049 svccs 0x00432049 + 35d0: 202b2b43 eorcs r2, fp, r3, asr #22 + 35d4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 35d8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 35dc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 35e0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 35e4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 35e8: 572f3539 undefined + 35ec: 4b203233 blmi 80fec0 + 35f0: 534b4349 movtpl r4, #45897 ; 0xb349 + 35f4: 54524154 ldrbpl r4, [r2], #-340 + 35f8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 35fc: 4d524120 ldfmie f4, [r2, #-128] + 3600: 3a432200 bcc 10cbe08 + 3604: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3608: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 360c: 61207374 teqvs r0, r4, ror r3 + 3610: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3614: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3618: 5c73676e ldclpl 7, cr6, [r3], #-440 + 361c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3620: 5c617269 sfmpl f7, 2, [r1], #-420 + 3624: 4420794d strtmi r7, [r0], #-2381 + 3628: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 362c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3630: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3634: 746e6f63 strbtvc r6, [lr], #-3939 + 3638: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 363c: 74616557 strbtvc r6, [r1], #-1367 + 3640: 20726568 rsbscs r6, r2, r8, ror #10 + 3644: 74617453 strbtvc r7, [r1], #-1107 + 3648: 206e6f69 rsbcs r6, lr, r9, ror #30 + 364c: 746e6f43 strbtvc r6, [lr], #-3907 + 3650: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3654: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 3658: 5c43414d stfple f4, [r3], {77} + 365c: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 3660: 545c6563 ldrbpl r6, [ip], #-1379 + 3664: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 3668: 76696563 strbtvc r6, [r9], -r3, ror #10 + 366c: 6f437265 svcvs 0x00437265 + 3670: 6769666e strbvs r6, [r9, -lr, ror #12]! + 3674: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 3678: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 367c: 442d2022 strtmi r2, [sp], #-34 + 3680: 34324620 ldrtcc r4, [r2], #-1568 + 3684: 205a484d subscs r4, sl, sp, asr #16 + 3688: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 368c: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 3690: 5f595449 svcpl 0x00595449 + 3694: 42414e45 submi r4, r1, #1104 ; 0x450 + 3698: 2044454c subcs r4, r4, ip, asr #10 + 369c: 20436c2d subcs r6, r3, sp, lsr #24 + 36a0: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 36a4: 75636f44 strbvc r6, [r3, #-3908]! + 36a8: 746e656d strbtvc r6, [lr], #-1389 + 36ac: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 36b0: 65532064 ldrbvs r2, [r3, #-100] + 36b4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 36b8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 36bc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 36c0: 4d5c6172 ldfmie f6, [ip, #-456] + 36c4: 6f442079 svcvs 0x00442079 + 36c8: 656d7563 strbvs r7, [sp, #-1379]! + 36cc: 5c73746e cfldrdpl mvd7, [r3], #-440 + 36d0: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 36d4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 36d8: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 36dc: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 36e0: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 36e4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 36e8: 43206e6f teqmi r0, #1776 ; 0x6f0 + 36ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 36f0: 656c6c6f strbvs r6, [ip, #-3183]! + 36f4: 65445c72 strbvs r5, [r4, #-3186] + 36f8: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 36fc: 7473694c ldrbtvc r6, [r3], #-2380 + 3700: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3704: 6169642d cmnvs r9, sp, lsr #8 + 3708: 75735f67 ldrbvc r5, [r3, #-3943]! + 370c: 65727070 ldrbvs r7, [r2, #-112]! + 3710: 50207373 eorpl r7, r0, r3, ror r3 + 3714: 31353965 teqcc r5, r5, ror #18 + 3718: 3165502c cmncc r5, ip, lsr #32 + 371c: 502c3131 eorpl r3, ip, r1, lsr r1 + 3720: 30343965 eorscc r3, r4, r5, ror #18 + 3724: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 3728: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 372c: 75636f44 strbvc r6, [r3, #-3908]! + 3730: 746e656d strbtvc r6, [lr], #-1389 + 3734: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3738: 65532064 ldrbvs r2, [r3, #-100] + 373c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3740: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3744: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3748: 4d5c6172 ldfmie f6, [ip, #-456] + 374c: 6f442079 svcvs 0x00442079 + 3750: 656d7563 strbvs r7, [sp, #-1379]! + 3754: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3758: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 375c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3760: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3764: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3768: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 376c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3770: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3774: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3778: 656c6c6f strbvs r6, [ip, #-3183]! + 377c: 65445c72 strbvs r5, [r4, #-3186] + 3780: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 3784: 5c6a624f sfmpl f6, 2, [sl], #-316 + 3788: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 378c: 75626564 strbvc r6, [r2, #-1380]! + 3790: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 3794: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 3798: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 379c: 6c747469 cfldrdvs mvd7, [r4], #-420 + 37a0: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 37a4: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 37a8: 374d5241 strbcc r5, [sp, -r1, asr #4] + 37ac: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 37b0: 2d20532d stccs 3, cr5, [r0, #-180]! + 37b4: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 37b8: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 37bc: 656e6f4e strbvs r6, [lr, #-3918]! + 37c0: 642d2d20 strtvs r2, [sp], #-3360 + 37c4: 5f62696c svcpl 0x0062696c + 37c8: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 37cc: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 37d0: 505c3a43 subspl r3, ip, r3, asr #20 + 37d4: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 37d8: 46206d61 strtmi r6, [r0], -r1, ror #26 + 37dc: 73656c69 cmnvc r5, #26880 ; 0x6900 + 37e0: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 37e4: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 37e8: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 37ec: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 37f0: 65646465 strbvs r6, [r4, #-1125]! + 37f4: 6f572064 svcvs 0x00572064 + 37f8: 65626b72 strbvs r6, [r2, #-2930]! + 37fc: 2068636e rsbcs r6, r8, lr, ror #6 + 3800: 20342e35 eorscs r2, r4, r5, lsr lr + 3804: 6b63694b blvs 18ddd38 + 3808: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 380c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 3810: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 3814: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 3818: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 381c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 3820: 6f4e5f67 svcvs 0x004e5f67 + 3824: 6c616d72 stclvs 13, cr6, [r1], #-456 + 3828: 2022682e eorcs r6, r2, lr, lsr #16 + 382c: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 3830: 445c3a43 ldrbmi r3, [ip], #-2627 + 3834: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3838: 73746e65 cmnvc r4, #1616 ; 0x650 + 383c: 646e6120 strbtvs r6, [lr], #-288 + 3840: 74655320 strbtvc r5, [r5], #-800 + 3844: 676e6974 undefined + 3848: 616d5c73 smcvs 54723 + 384c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3850: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3854: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3858: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 385c: 775c7374 undefined + 3860: 6f632d73 svcvs 0x00632d73 + 3864: 6f72746e svcvs 0x0072746e + 3868: 65575c6c ldrbvs r5, [r7, #-3180] + 386c: 65687461 strbvs r7, [r8, #-1121]! + 3870: 74532072 ldrbvc r2, [r3], #-114 + 3874: 6f697461 svcvs 0x00697461 + 3878: 6f43206e svcvs 0x0043206e + 387c: 6f72746e svcvs 0x0072746e + 3880: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3884: 414d535c cmpmi sp, ip, asr r3 + 3888: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 388c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3890: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 3894: 66726574 undefined + 3898: 5c656361 stclpl 3, cr6, [r5], #-388 + 389c: 492d2022 pushmi {r1, r5, sp} + 38a0: 3a432220 bcc 10cc128 + 38a4: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 38a8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 38ac: 61207374 teqvs r0, r4, ror r3 + 38b0: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 38b4: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 38b8: 5c73676e ldclpl 7, cr6, [r3], #-440 + 38bc: 766c616d strbtvc r6, [ip], -sp, ror #2 + 38c0: 5c617269 sfmpl f7, 2, [r1], #-420 + 38c4: 4420794d strtmi r7, [r0], #-2381 + 38c8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 38cc: 73746e65 cmnvc r4, #1616 ; 0x650 + 38d0: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 38d4: 746e6f63 strbtvc r6, [lr], #-3939 + 38d8: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 38dc: 74616557 strbtvc r6, [r1], #-1367 + 38e0: 20726568 rsbscs r6, r2, r8, ror #10 + 38e4: 74617453 strbtvc r7, [r1], #-1107 + 38e8: 206e6f69 rsbcs r6, lr, r9, ror #30 + 38ec: 746e6f43 strbtvc r6, [lr], #-3907 + 38f0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 38f4: 505c7265 subspl r7, ip, r5, ror #4 + 38f8: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 38fc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 3900: 65636166 strbvs r6, [r3, #-358]! + 3904: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3908: 43222049 teqmi r2, #73 ; 0x49 + 390c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 3910: 6172676f cmnvs r2, pc, ror #14 + 3914: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 3918: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 391c: 20524149 subscs r4, r2, r9, asr #2 + 3920: 74737953 ldrbtvc r7, [r3], #-2387 + 3924: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 3928: 65626d45 strbvs r6, [r2, #-3397]! + 392c: 64656464 strbtvs r6, [r5], #-1124 + 3930: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 3934: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 3938: 35206863 strcc r6, [r0, #-2147]! + 393c: 4b20342e blmi 8109fc + 3940: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 3944: 74726174 ldrbtvc r6, [r2], #-372 + 3948: 6d72615c ldfvse f6, [r2, #-368]! + 394c: 434e495c movtmi r4, #59740 ; 0xe95c + 3950: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3954: 746e692d strbtvc r6, [lr], #-2349 + 3958: 6f777265 svcvs 0x00777265 + 395c: 2d206b72 vstmdbcs r0!, {d6-} + 3960: 7570632d ldrbvc r6, [r0, #-813]! + 3964: 646f6d5f strbtvs r6, [pc], #3423 ; 396c + 3968: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 396c: 20626d75 rsbcs r6, r2, r5, ror sp + 3970: 00684f2d rsbeq r4, r8, sp, lsr #30 + 3974: 5c3a4300 ldcpl 3, cr4, [sl] + 3978: 75636f44 strbvc r6, [r3, #-3908]! + 397c: 746e656d strbtvc r6, [lr], #-1389 + 3980: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3984: 65532064 ldrbvs r2, [r3, #-100] + 3988: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 398c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3990: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3994: 4d5c6172 ldfmie f6, [ip, #-456] + 3998: 6f442079 svcvs 0x00442079 + 399c: 656d7563 strbvs r7, [sp, #-1379]! + 39a0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 39a4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 39a8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 39ac: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 39b0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 39b4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 39b8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 39bc: 43206e6f teqmi r0, #1776 ; 0x6f0 + 39c0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 39c4: 656c6c6f strbvs r6, [ip, #-3183]! + 39c8: 65445c72 strbvs r5, [r4, #-3186] + 39cc: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 39d0: 5c6a624f sfmpl f6, 2, [sl], #-316 + 39d4: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} + 39d8: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ + 39dc: 50726576 rsbspl r6, r2, r6, ror r5 + 39e0: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 + 39e4: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 39e8: 6f2e746e svcvs 0x002e746e + 39ec: 4900003a stmdbmi r0, {r1, r3, r4, r5} + 39f0: 41205241 teqmi r0, r1, asr #4 + 39f4: 2049534e subcs r5, r9, lr, asr #6 + 39f8: 2b432f43 blcs 10cf70c + 39fc: 6f43202b svcvs 0x0043202b + 3a00: 6c69706d stclvs 0, cr7, [r9], #-436 + 3a04: 56207265 strtpl r7, [r0], -r5, ror #4 + 3a08: 30332e35 eorscc r2, r3, r5, lsr lr + 3a0c: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 3a10: 35393231 ldrcc r3, [r9, #-561]! + 3a14: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 3a18: 43494b20 movtmi r4, #39712 ; 0x9b20 + 3a1c: 4154534b cmpmi r4, fp, asr #6 + 3a20: 66205452 undefined + 3a24: 4120726f teqmi r0, pc, ror #4 + 3a28: 22004d52 andcs r4, r0, #5248 ; 0x1480 + 3a2c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3a30: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3a34: 73746e65 cmnvc r4, #1616 ; 0x650 + 3a38: 646e6120 strbtvs r6, [lr], #-288 + 3a3c: 74655320 strbtvc r5, [r5], #-800 + 3a40: 676e6974 undefined + 3a44: 616d5c73 smcvs 54723 + 3a48: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3a4c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3a50: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3a54: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3a58: 775c7374 undefined + 3a5c: 6f632d73 svcvs 0x00632d73 + 3a60: 6f72746e svcvs 0x0072746e + 3a64: 65575c6c ldrbvs r5, [r7, #-3180] + 3a68: 65687461 strbvs r7, [r8, #-1121]! + 3a6c: 74532072 ldrbvc r2, [r3], #-114 + 3a70: 6f697461 svcvs 0x00697461 + 3a74: 6f43206e svcvs 0x0043206e + 3a78: 6f72746e svcvs 0x0072746e + 3a7c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3a80: 414d535c cmpmi sp, ip, asr r3 + 3a84: 6f535c43 svcvs 0x00535c43 + 3a88: 65637275 strbvs r7, [r3, #-629]! + 3a8c: 6172545c cmnvs r2, ip, asr r4 + 3a90: 6563736e strbvs r7, [r3, #-878]! + 3a94: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3a98: 65776f50 ldrbvs r6, [r7, #-3920]! + 3a9c: 676e4d72 undefined + 3aa0: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 3aa4: 2d202263 sfmcs f2, 4, [r0, #-396]! + 3aa8: 32462044 subcc r2, r6, #68 ; 0x44 + 3aac: 5a484d34 bpl 1216f84 + 3ab0: 20442d20 subcs r2, r4, r0, lsr #26 + 3ab4: 55434553 strbpl r4, [r3, #-1363] + 3ab8: 59544952 ldmdbpl r4, {r1, r4, r6, r8, fp, lr}^ + 3abc: 414e455f cmpmi lr, pc, asr r5 + 3ac0: 44454c42 strbmi r4, [r5], #-3138 + 3ac4: 436c2d20 cmnmi ip, #2048 ; 0x800 + 3ac8: 3a432220 bcc 10cc350 + 3acc: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3ad0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3ad4: 61207374 teqvs r0, r4, ror r3 + 3ad8: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3adc: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3ae0: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3ae4: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3ae8: 5c617269 sfmpl f7, 2, [r1], #-420 + 3aec: 4420794d strtmi r7, [r0], #-2381 + 3af0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3af4: 73746e65 cmnvc r4, #1616 ; 0x650 + 3af8: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3afc: 746e6f63 strbtvc r6, [lr], #-3939 + 3b00: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3b04: 74616557 strbtvc r6, [r1], #-1367 + 3b08: 20726568 rsbscs r6, r2, r8, ror #10 + 3b0c: 74617453 strbtvc r7, [r1], #-1107 + 3b10: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3b14: 746e6f43 strbtvc r6, [lr], #-3907 + 3b18: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3b1c: 445c7265 ldrbmi r7, [ip], #-613 + 3b20: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 3b24: 73694c5c cmnvc r9, #23552 ; 0x5c00 + 3b28: 20225c74 eorcs r5, r2, r4, ror ip + 3b2c: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 3b30: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 3b34: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 3b38: 20737365 rsbscs r7, r3, r5, ror #6 + 3b3c: 35396550 ldrcc r6, [r9, #-1360]! + 3b40: 65502c31 ldrbvs r2, [r0, #-3121] + 3b44: 2c313131 ldfcss f3, [r1], #-196 + 3b48: 34396550 ldrtcc r6, [r9], #-1360 + 3b4c: 6f2d2030 svcvs 0x002d2030 + 3b50: 3a432220 bcc 10cc3d8 + 3b54: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3b58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3b5c: 61207374 teqvs r0, r4, ror r3 + 3b60: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3b64: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3b68: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3b6c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3b70: 5c617269 sfmpl f7, 2, [r1], #-420 + 3b74: 4420794d strtmi r7, [r0], #-2381 + 3b78: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3b7c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3b80: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3b84: 746e6f63 strbtvc r6, [lr], #-3939 + 3b88: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3b8c: 74616557 strbtvc r6, [r1], #-1367 + 3b90: 20726568 rsbscs r6, r2, r8, ror #10 + 3b94: 74617453 strbtvc r7, [r1], #-1107 + 3b98: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3b9c: 746e6f43 strbtvc r6, [lr], #-3907 + 3ba0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3ba4: 445c7265 ldrbmi r7, [ip], #-613 + 3ba8: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 3bac: 6a624f5c bvs 1897924 + 3bb0: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3bb4: 6265642d rsbvs r6, r5, #754974720 ; 0x2d000000 + 3bb8: 2d206775 stccs 7, cr6, [r0, #-468]! + 3bbc: 646e652d strbtvs r6, [lr], #-1325 + 3bc0: 3d6e6169 stfcce f6, [lr, #-420]! + 3bc4: 7474696c ldrbtvc r6, [r4], #-2412 + 3bc8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 3bcc: 7570632d ldrbvc r6, [r0, #-813]! + 3bd0: 4d52413d ldfmie f4, [r2, #-244] + 3bd4: 4d445437 cfstrdmi mvd5, [r4, #-220] + 3bd8: 20532d49 subscs r2, r3, r9, asr #26 + 3bdc: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 3be0: 7570662d ldrbvc r6, [r0, #-1581]! + 3be4: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 3be8: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 3bec: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 3bf0: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 3bf4: 20676966 rsbcs r6, r7, r6, ror #18 + 3bf8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 3bfc: 676f7250 undefined + 3c00: 206d6172 rsbcs r6, sp, r2, ror r1 + 3c04: 656c6946 strbvs r6, [ip, #-2374]! + 3c08: 41495c73 cmpmi r9, r3, ror ip + 3c0c: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + 3c10: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 3c14: 6d455c73 stclvs 12, cr5, [r5, #-460] + 3c18: 64646562 strbtvs r6, [r4], #-1378 + 3c1c: 57206465 strpl r6, [r0, -r5, ror #8]! + 3c20: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + 3c24: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 3c28: 342e3520 strtcc r3, [lr], #-1312 + 3c2c: 63694b20 cmnvs r9, #32768 ; 0x8000 + 3c30: 6174736b cmnvs r4, fp, ror #6 + 3c34: 615c7472 cmpvs ip, r2, ror r4 + 3c38: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 3c3c: 445c434e ldrbmi r4, [ip], #-846 + 3c40: 5f62694c svcpl 0x0062694c + 3c44: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 3c48: 4e5f6769 cdpmi 7, 5, cr6, cr15, cr9, {3} + 3c4c: 616d726f cmnvs sp, pc, ror #4 + 3c50: 22682e6c rsbcs r2, r8, #1728 ; 0x6c0 + 3c54: 20492d20 subcs r2, r9, r0, lsr #26 + 3c58: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 3c5c: 75636f44 strbvc r6, [r3, #-3908]! + 3c60: 746e656d strbtvc r6, [lr], #-1389 + 3c64: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3c68: 65532064 ldrbvs r2, [r3, #-100] + 3c6c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3c70: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3c74: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3c78: 4d5c6172 ldfmie f6, [ip, #-456] + 3c7c: 6f442079 svcvs 0x00442079 + 3c80: 656d7563 strbvs r7, [sp, #-1379]! + 3c84: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3c88: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 3c8c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3c90: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3c94: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3c98: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 3c9c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3ca0: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3ca4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3ca8: 656c6c6f strbvs r6, [ip, #-3183]! + 3cac: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 3cb0: 445c4341 ldrbmi r4, [ip], #-833 + 3cb4: 65766972 ldrbvs r6, [r6, #-2418]! + 3cb8: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 3cbc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 3cc0: 65636166 strbvs r6, [r3, #-358]! + 3cc4: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3cc8: 43222049 teqmi r2, #73 ; 0x49 + 3ccc: 6f445c3a svcvs 0x00445c3a + 3cd0: 656d7563 strbvs r7, [sp, #-1379]! + 3cd4: 2073746e rsbscs r7, r3, lr, ror #8 + 3cd8: 20646e61 rsbcs r6, r4, r1, ror #28 + 3cdc: 74746553 ldrbtvc r6, [r4], #-1363 + 3ce0: 73676e69 cmnvc r7, #1680 ; 0x690 + 3ce4: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3ce8: 61726976 cmnvs r2, r6, ror r9 + 3cec: 20794d5c rsbscs r4, r9, ip, asr sp + 3cf0: 75636f44 strbvc r6, [r3, #-3908]! + 3cf4: 746e656d strbtvc r6, [lr], #-1389 + 3cf8: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3cfc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 3d00: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3d04: 6165575c cmnvs r5, ip, asr r7 + 3d08: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3d0c: 61745320 cmnvs r4, r0, lsr #6 + 3d10: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3d14: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 3d18: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3d1c: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 3d20: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 3d24: 65746e49 ldrbvs r6, [r4, #-3657]! + 3d28: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 3d2c: 20225c65 eorcs r5, r2, r5, ror #24 + 3d30: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 3d34: 505c3a43 subspl r3, ip, r3, asr #20 + 3d38: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 3d3c: 46206d61 strtmi r6, [r0], -r1, ror #26 + 3d40: 73656c69 cmnvc r5, #26880 ; 0x6900 + 3d44: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 3d48: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 3d4c: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 3d50: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 3d54: 65646465 strbvs r6, [r4, #-1125]! + 3d58: 6f572064 svcvs 0x00572064 + 3d5c: 65626b72 strbvs r6, [r2, #-2930]! + 3d60: 2068636e rsbcs r6, r8, lr, ror #6 + 3d64: 20342e35 eorscs r2, r4, r5, lsr lr + 3d68: 6b63694b blvs 18de29c + 3d6c: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 3d70: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 3d74: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 3d78: 20225c43 eorcs r5, r2, r3, asr #24 + 3d7c: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 3d80: 77726574 undefined + 3d84: 206b726f rsbcs r7, fp, pc, ror #4 + 3d88: 70632d2d rsbvc r2, r3, sp, lsr #26 + 3d8c: 6f6d5f75 svcvs 0x006d5f75 + 3d90: 74206564 strtvc r6, [r0], #-1380 + 3d94: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 3d98: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 3d9c: 3a430000 bcc 10c3da4 + 3da0: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3da4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3da8: 61207374 teqvs r0, r4, ror r3 + 3dac: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3db0: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3db4: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3db8: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3dbc: 5c617269 sfmpl f7, 2, [r1], #-420 + 3dc0: 4420794d strtmi r7, [r0], #-2381 + 3dc4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3dc8: 73746e65 cmnvc r4, #1616 ; 0x650 + 3dcc: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3dd0: 746e6f63 strbtvc r6, [lr], #-3939 + 3dd4: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3dd8: 74616557 strbtvc r6, [r1], #-1367 + 3ddc: 20726568 rsbscs r6, r2, r8, ror #10 + 3de0: 74617453 strbtvc r7, [r1], #-1107 + 3de4: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3de8: 746e6f43 strbtvc r6, [lr], #-3907 + 3dec: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3df0: 445c7265 ldrbmi r7, [ip], #-613 + 3df4: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 3df8: 6a624f5c bvs 1897b70 + 3dfc: 7261555c rsbvc r5, r1, #385875968 ; 0x17000000 + 3e00: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 3e04: 3a6f2e6c bcc 1bcf7bc + 3e08: 41490000 cmpmi r9, r0 + 3e0c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3e10: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3e14: 2b2b432f blcs ad4ad8 + 3e18: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3e1c: 656c6970 strbvs r6, [ip, #-2416]! + 3e20: 35562072 ldrbcc r2, [r6, #-114] + 3e24: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3e28: 31332e32 teqcc r3, r2, lsr lr + 3e2c: 2f353932 svccs 0x00353932 + 3e30: 20323357 eorscs r3, r2, r7, asr r3 + 3e34: 4b43494b blmi 10d6368 + 3e38: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3e3c: 6f662054 svcvs 0x00662054 + 3e40: 52412072 subpl r2, r1, #114 ; 0x72 + 3e44: 4322004d teqmi r2, #77 ; 0x4d + 3e48: 6f445c3a svcvs 0x00445c3a + 3e4c: 656d7563 strbvs r7, [sp, #-1379]! + 3e50: 2073746e rsbscs r7, r3, lr, ror #8 + 3e54: 20646e61 rsbcs r6, r4, r1, ror #28 + 3e58: 74746553 ldrbtvc r6, [r4], #-1363 + 3e5c: 73676e69 cmnvc r7, #1680 ; 0x690 + 3e60: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3e64: 61726976 cmnvs r2, r6, ror r9 + 3e68: 20794d5c rsbscs r4, r9, ip, asr sp + 3e6c: 75636f44 strbvc r6, [r3, #-3908]! + 3e70: 746e656d strbtvc r6, [lr], #-1389 + 3e74: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3e78: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 3e7c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3e80: 6165575c cmnvs r5, ip, asr r7 + 3e84: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3e88: 61745320 cmnvs r4, r0, lsr #6 + 3e8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3e90: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 3e94: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3e98: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 3e9c: 6c707041 ldclvs 0, cr7, [r0], #-260 + 3ea0: 74616369 strbtvc r6, [r1], #-873 + 3ea4: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 3ea8: 6c697455 cfstrdvs mvd7, [r9], #-340 + 3eac: 65697469 strbvs r7, [r9, #-1129]! + 3eb0: 61555c73 cmpvs r5, r3, ror ip + 3eb4: 74557472 ldrbvc r7, [r5], #-1138 + 3eb8: 632e6c69 teqvs lr, #26880 ; 0x6900 + 3ebc: 442d2022 strtmi r2, [sp], #-34 + 3ec0: 34324620 ldrtcc r4, [r2], #-1568 + 3ec4: 205a484d subscs r4, sl, sp, asr #16 + 3ec8: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 3ecc: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 3ed0: 5f595449 svcpl 0x00595449 + 3ed4: 42414e45 submi r4, r1, #1104 ; 0x450 + 3ed8: 2044454c subcs r4, r4, ip, asr #10 + 3edc: 20436c2d subcs r6, r3, sp, lsr #24 + 3ee0: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 3ee4: 75636f44 strbvc r6, [r3, #-3908]! + 3ee8: 746e656d strbtvc r6, [lr], #-1389 + 3eec: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3ef0: 65532064 ldrbvs r2, [r3, #-100] + 3ef4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3ef8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3efc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3f00: 4d5c6172 ldfmie f6, [ip, #-456] + 3f04: 6f442079 svcvs 0x00442079 + 3f08: 656d7563 strbvs r7, [sp, #-1379]! + 3f0c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3f10: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 3f14: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3f18: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3f1c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3f20: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 3f24: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3f28: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3f2c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3f30: 656c6c6f strbvs r6, [ip, #-3183]! + 3f34: 65445c72 strbvs r5, [r4, #-3186] + 3f38: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 3f3c: 7473694c ldrbtvc r6, [r3], #-2380 + 3f40: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3f44: 6169642d cmnvs r9, sp, lsr #8 + 3f48: 75735f67 ldrbvc r5, [r3, #-3943]! + 3f4c: 65727070 ldrbvs r7, [r2, #-112]! + 3f50: 50207373 eorpl r7, r0, r3, ror r3 + 3f54: 31353965 teqcc r5, r5, ror #18 + 3f58: 3165502c cmncc r5, ip, lsr #32 + 3f5c: 502c3131 eorpl r3, ip, r1, lsr r1 + 3f60: 30343965 eorscc r3, r4, r5, ror #18 + 3f64: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 3f68: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 3f6c: 75636f44 strbvc r6, [r3, #-3908]! + 3f70: 746e656d strbtvc r6, [lr], #-1389 + 3f74: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3f78: 65532064 ldrbvs r2, [r3, #-100] + 3f7c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3f80: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3f84: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3f88: 4d5c6172 ldfmie f6, [ip, #-456] + 3f8c: 6f442079 svcvs 0x00442079 + 3f90: 656d7563 strbvs r7, [sp, #-1379]! + 3f94: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3f98: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 3f9c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3fa0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3fa4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3fa8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 3fac: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3fb0: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3fb4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3fb8: 656c6c6f strbvs r6, [ip, #-3183]! + 3fbc: 65445c72 strbvs r5, [r4, #-3186] + 3fc0: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 3fc4: 5c6a624f sfmpl f6, 2, [sl], #-316 + 3fc8: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 3fcc: 75626564 strbvc r6, [r2, #-1380]! + 3fd0: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 3fd4: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 3fd8: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 3fdc: 6c747469 cfldrdvs mvd7, [r4], #-420 + 3fe0: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 3fe4: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 3fe8: 374d5241 strbcc r5, [sp, -r1, asr #4] + 3fec: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 3ff0: 2d20532d stccs 3, cr5, [r0, #-180]! + 3ff4: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 3ff8: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 3ffc: 656e6f4e strbvs r6, [lr, #-3918]! + 4000: 642d2d20 strtvs r2, [sp], #-3360 + 4004: 5f62696c svcpl 0x0062696c + 4008: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 400c: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 4010: 505c3a43 subspl r3, ip, r3, asr #20 + 4014: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 4018: 46206d61 strtmi r6, [r0], -r1, ror #26 + 401c: 73656c69 cmnvc r5, #26880 ; 0x6900 + 4020: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 4024: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 4028: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 402c: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 4030: 65646465 strbvs r6, [r4, #-1125]! + 4034: 6f572064 svcvs 0x00572064 + 4038: 65626b72 strbvs r6, [r2, #-2930]! + 403c: 2068636e rsbcs r6, r8, lr, ror #6 + 4040: 20342e35 eorscs r2, r4, r5, lsr lr + 4044: 6b63694b blvs 18de578 + 4048: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 404c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 4050: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 4054: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 4058: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 405c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 4060: 6f4e5f67 svcvs 0x004e5f67 + 4064: 6c616d72 stclvs 13, cr6, [r1], #-456 + 4068: 2022682e eorcs r6, r2, lr, lsr #16 + 406c: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 4070: 445c3a43 ldrbmi r3, [ip], #-2627 + 4074: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4078: 73746e65 cmnvc r4, #1616 ; 0x650 + 407c: 646e6120 strbtvs r6, [lr], #-288 + 4080: 74655320 strbtvc r5, [r5], #-800 + 4084: 676e6974 undefined + 4088: 616d5c73 smcvs 54723 + 408c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4090: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4094: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4098: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 409c: 775c7374 undefined + 40a0: 6f632d73 svcvs 0x00632d73 + 40a4: 6f72746e svcvs 0x0072746e + 40a8: 65575c6c ldrbvs r5, [r7, #-3180] + 40ac: 65687461 strbvs r7, [r8, #-1121]! + 40b0: 74532072 ldrbvc r2, [r3], #-114 + 40b4: 6f697461 svcvs 0x00697461 + 40b8: 6f43206e svcvs 0x0043206e + 40bc: 6f72746e svcvs 0x0072746e + 40c0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 40c4: 414d535c cmpmi sp, ip, asr r3 + 40c8: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 40cc: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 40d0: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 40d4: 66726574 undefined + 40d8: 5c656361 stclpl 3, cr6, [r5], #-388 + 40dc: 492d2022 pushmi {r1, r5, sp} + 40e0: 3a432220 bcc 10cc968 + 40e4: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 40e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 40ec: 61207374 teqvs r0, r4, ror r3 + 40f0: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 40f4: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 40f8: 5c73676e ldclpl 7, cr6, [r3], #-440 + 40fc: 766c616d strbtvc r6, [ip], -sp, ror #2 + 4100: 5c617269 sfmpl f7, 2, [r1], #-420 + 4104: 4420794d strtmi r7, [r0], #-2381 + 4108: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 410c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4110: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 4114: 746e6f63 strbtvc r6, [lr], #-3939 + 4118: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 411c: 74616557 strbtvc r6, [r1], #-1367 + 4120: 20726568 rsbscs r6, r2, r8, ror #10 + 4124: 74617453 strbtvc r7, [r1], #-1107 + 4128: 206e6f69 rsbcs r6, lr, r9, ror #30 + 412c: 746e6f43 strbtvc r6, [lr], #-3907 + 4130: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4134: 505c7265 subspl r7, ip, r5, ror #4 + 4138: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 413c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 4140: 65636166 strbvs r6, [r3, #-358]! + 4144: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4148: 43222049 teqmi r2, #73 ; 0x49 + 414c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 4150: 6172676f cmnvs r2, pc, ror #14 + 4154: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 4158: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 415c: 20524149 subscs r4, r2, r9, asr #2 + 4160: 74737953 ldrbtvc r7, [r3], #-2387 + 4164: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 4168: 65626d45 strbvs r6, [r2, #-3397]! + 416c: 64656464 strbtvs r6, [r5], #-1124 + 4170: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 4174: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 4178: 35206863 strcc r6, [r0, #-2147]! + 417c: 4b20342e blmi 81123c + 4180: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 4184: 74726174 ldrbtvc r6, [r2], #-372 + 4188: 6d72615c ldfvse f6, [r2, #-368]! + 418c: 434e495c movtmi r4, #59740 ; 0xe95c + 4190: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4194: 746e692d strbtvc r6, [lr], #-2349 + 4198: 6f777265 svcvs 0x00777265 + 419c: 2d206b72 vstmdbcs r0!, {d6-} + 41a0: 7570632d ldrbvc r6, [r0, #-813]! + 41a4: 646f6d5f strbtvs r6, [pc], #3423 ; 41ac + 41a8: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 41ac: 20626d75 rsbcs r6, r2, r5, ror sp + 41b0: 00684f2d rsbeq r4, r8, sp, lsr #30 + 41b4: 5c3a4300 ldcpl 3, cr4, [sl] + 41b8: 75636f44 strbvc r6, [r3, #-3908]! + 41bc: 746e656d strbtvc r6, [lr], #-1389 + 41c0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 41c4: 65532064 ldrbvs r2, [r3, #-100] + 41c8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 41cc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 41d0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 41d4: 4d5c6172 ldfmie f6, [ip, #-456] + 41d8: 6f442079 svcvs 0x00442079 + 41dc: 656d7563 strbvs r7, [sp, #-1379]! + 41e0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 41e4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 41e8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 41ec: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 41f0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 41f4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 41f8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 41fc: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4200: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4204: 656c6c6f strbvs r6, [ip, #-3183]! + 4208: 65445c72 strbvs r5, [r4, #-3186] + 420c: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4210: 5c6a624f sfmpl f6, 2, [sl], #-316 + 4214: 65726957 ldrbvs r6, [r2, #-2391]! + 4218: 7373656c cmnvc r3, #452984832 ; 0x1b000000 + 421c: 6b6e694c blvs 1b9e754 + 4220: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 4224: 3a6f2e74 bcc 1bcfbfc + 4228: 41490000 cmpmi r9, r0 + 422c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 4230: 43204953 teqmi r0, #1359872 ; 0x14c000 + 4234: 2b2b432f blcs ad4ef8 + 4238: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 423c: 656c6970 strbvs r6, [ip, #-2416]! + 4240: 35562072 ldrbcc r2, [r6, #-114] + 4244: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 4248: 31332e32 teqcc r3, r2, lsr lr + 424c: 2f353932 svccs 0x00353932 + 4250: 20323357 eorscs r3, r2, r7, asr r3 + 4254: 4b43494b blmi 10d6788 + 4258: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 425c: 6f662054 svcvs 0x00662054 + 4260: 52412072 subpl r2, r1, #114 ; 0x72 + 4264: 4322004d teqmi r2, #77 ; 0x4d + 4268: 6f445c3a svcvs 0x00445c3a + 426c: 656d7563 strbvs r7, [sp, #-1379]! + 4270: 2073746e rsbscs r7, r3, lr, ror #8 + 4274: 20646e61 rsbcs r6, r4, r1, ror #28 + 4278: 74746553 ldrbtvc r6, [r4], #-1363 + 427c: 73676e69 cmnvc r7, #1680 ; 0x690 + 4280: 6c616d5c stclvs 13, cr6, [r1], #-368 + 4284: 61726976 cmnvs r2, r6, ror r9 + 4288: 20794d5c rsbscs r4, r9, ip, asr sp + 428c: 75636f44 strbvc r6, [r3, #-3908]! + 4290: 746e656d strbtvc r6, [lr], #-1389 + 4294: 73775c73 cmnvc r7, #29440 ; 0x7300 + 4298: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 429c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 42a0: 6165575c cmnvs r5, ip, asr r7 + 42a4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 42a8: 61745320 cmnvs r4, r0, lsr #6 + 42ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 42b0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 42b4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 42b8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 42bc: 43414d53 movtmi r4, #7507 ; 0x1d53 + 42c0: 756f535c strbvc r5, [pc, #-860]! ; 3f6c + 42c4: 5c656372 stclpl 3, cr6, [r5], #-456 + 42c8: 65726957 ldrbvs r6, [r2, #-2391]! + 42cc: 7373656c cmnvc r3, #452984832 ; 0x1b000000 + 42d0: 6b6e694c blvs 1b9e808 + 42d4: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 42d8: 22632e74 rsbcs r2, r3, #1856 ; 0x740 + 42dc: 20442d20 subcs r2, r4, r0, lsr #26 + 42e0: 4d343246 lfmmi f3, 4, [r4, #-280]! + 42e4: 2d205a48 fstmdbscs r0!, {s10-s81} + 42e8: 45532044 ldrbmi r2, [r3, #-68] + 42ec: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ + 42f0: 455f5954 ldrbmi r5, [pc, #-2388] ; 39a4 + 42f4: 4c42414e stfmie f4, [r2], {78} + 42f8: 2d204445 cfstrscs mvf4, [r0, #-276]! + 42fc: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 + 4300: 445c3a43 ldrbmi r3, [ip], #-2627 + 4304: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4308: 73746e65 cmnvc r4, #1616 ; 0x650 + 430c: 646e6120 strbtvs r6, [lr], #-288 + 4310: 74655320 strbtvc r5, [r5], #-800 + 4314: 676e6974 undefined + 4318: 616d5c73 smcvs 54723 + 431c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4320: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4324: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4328: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 432c: 775c7374 undefined + 4330: 6f632d73 svcvs 0x00632d73 + 4334: 6f72746e svcvs 0x0072746e + 4338: 65575c6c ldrbvs r5, [r7, #-3180] + 433c: 65687461 strbvs r7, [r8, #-1121]! + 4340: 74532072 ldrbvc r2, [r3], #-114 + 4344: 6f697461 svcvs 0x00697461 + 4348: 6f43206e svcvs 0x0043206e + 434c: 6f72746e svcvs 0x0072746e + 4350: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4354: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 4358: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 + 435c: 5c747369 ldclpl 3, cr7, [r4], #-420 + 4360: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 4364: 67616964 strbvs r6, [r1, -r4, ror #18]! + 4368: 7075735f rsbsvc r7, r5, pc, asr r3 + 436c: 73657270 cmnvc r5, #7 ; 0x7 + 4370: 65502073 ldrbvs r2, [r0, #-115] + 4374: 2c313539 cfldr32cs mvfx3, [r1], #-228 + 4378: 31316550 teqcc r1, r0, asr r5 + 437c: 65502c31 ldrbvs r2, [r0, #-3121] + 4380: 20303439 eorscs r3, r0, r9, lsr r4 + 4384: 22206f2d eorcs r6, r0, #180 ; 0xb4 + 4388: 445c3a43 ldrbmi r3, [ip], #-2627 + 438c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4390: 73746e65 cmnvc r4, #1616 ; 0x650 + 4394: 646e6120 strbtvs r6, [lr], #-288 + 4398: 74655320 strbtvc r5, [r5], #-800 + 439c: 676e6974 undefined + 43a0: 616d5c73 smcvs 54723 + 43a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 43a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 43ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 43b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 43b4: 775c7374 undefined + 43b8: 6f632d73 svcvs 0x00632d73 + 43bc: 6f72746e svcvs 0x0072746e + 43c0: 65575c6c ldrbvs r5, [r7, #-3180] + 43c4: 65687461 strbvs r7, [r8, #-1121]! + 43c8: 74532072 ldrbvc r2, [r3], #-114 + 43cc: 6f697461 svcvs 0x00697461 + 43d0: 6f43206e svcvs 0x0043206e + 43d4: 6f72746e svcvs 0x0072746e + 43d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 43dc: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 43e0: 4f5c6775 svcmi 0x005c6775 + 43e4: 225c6a62 subscs r6, ip, #401408 ; 0x62000 + 43e8: 642d2d20 strtvs r2, [sp], #-3360 + 43ec: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 43f0: 652d2d20 strvs r2, [sp, #-3360]! + 43f4: 6169646e cmnvs r9, lr, ror #8 + 43f8: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ + 43fc: 656c7474 strbvs r7, [ip, #-1140]! + 4400: 632d2d20 teqvs sp, #2048 ; 0x800 + 4404: 413d7570 teqmi sp, r0, ror r5 + 4408: 54374d52 ldrtpl r4, [r7], #-3410 + 440c: 2d494d44 stclcs 13, cr4, [r9, #-272] + 4410: 652d2053 strvs r2, [sp, #-83]! + 4414: 662d2d20 strtvs r2, [sp], -r0, lsr #26 + 4418: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} + 441c: 20656e6f rsbcs r6, r5, pc, ror #28 + 4420: 6c642d2d stclvs 13, cr2, [r4], #-180 + 4424: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 + 4428: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 442c: 43222067 teqmi r2, #103 ; 0x67 + 4430: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 4434: 6172676f cmnvs r2, pc, ror #14 + 4438: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 443c: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 4440: 20524149 subscs r4, r2, r9, asr #2 + 4444: 74737953 ldrbtvc r7, [r3], #-2387 + 4448: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 444c: 65626d45 strbvs r6, [r2, #-3397]! + 4450: 64656464 strbtvs r6, [r5], #-1124 + 4454: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 4458: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 445c: 35206863 strcc r6, [r0, #-2147]! + 4460: 4b20342e blmi 811520 + 4464: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 4468: 74726174 ldrbtvc r6, [r2], #-372 + 446c: 6d72615c ldfvse f6, [r2, #-368]! + 4470: 434e495c movtmi r4, #59740 ; 0xe95c + 4474: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ + 4478: 6f435f62 svcvs 0x00435f62 + 447c: 6769666e strbvs r6, [r9, -lr, ror #12]! + 4480: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 + 4484: 2e6c616d powcsez f6, f4, #5.0 + 4488: 2d202268 sfmcs f2, 4, [r0, #-416]! + 448c: 43222049 teqmi r2, #73 ; 0x49 + 4490: 6f445c3a svcvs 0x00445c3a + 4494: 656d7563 strbvs r7, [sp, #-1379]! + 4498: 2073746e rsbscs r7, r3, lr, ror #8 + 449c: 20646e61 rsbcs r6, r4, r1, ror #28 + 44a0: 74746553 ldrbtvc r6, [r4], #-1363 + 44a4: 73676e69 cmnvc r7, #1680 ; 0x690 + 44a8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 44ac: 61726976 cmnvs r2, r6, ror r9 + 44b0: 20794d5c rsbscs r4, r9, ip, asr sp + 44b4: 75636f44 strbvc r6, [r3, #-3908]! + 44b8: 746e656d strbtvc r6, [lr], #-1389 + 44bc: 73775c73 cmnvc r7, #29440 ; 0x7300 + 44c0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 44c4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 44c8: 6165575c cmnvs r5, ip, asr r7 + 44cc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 44d0: 61745320 cmnvs r4, r0, lsr #6 + 44d4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 44d8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 44dc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 44e0: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 44e4: 43414d53 movtmi r4, #7507 ; 0x1d53 + 44e8: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 44ec: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 44f0: 746e495c strbtvc r4, [lr], #-2396 + 44f4: 61667265 cmnvs r6, r5, ror #4 + 44f8: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 44fc: 20492d20 subcs r2, r9, r0, lsr #26 + 4500: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 4504: 75636f44 strbvc r6, [r3, #-3908]! + 4508: 746e656d strbtvc r6, [lr], #-1389 + 450c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4510: 65532064 ldrbvs r2, [r3, #-100] + 4514: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4518: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 451c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4520: 4d5c6172 ldfmie f6, [ip, #-456] + 4524: 6f442079 svcvs 0x00442079 + 4528: 656d7563 strbvs r7, [sp, #-1379]! + 452c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4530: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4534: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4538: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 453c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4540: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4544: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4548: 43206e6f teqmi r0, #1776 ; 0x6f0 + 454c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4550: 656c6c6f strbvs r6, [ip, #-3183]! + 4554: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 + 4558: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} + 455c: 66726574 undefined + 4560: 5c656361 stclpl 3, cr6, [r5], #-388 + 4564: 492d2022 pushmi {r1, r5, sp} + 4568: 3a432220 bcc 10ccdf0 + 456c: 6f72505c svcvs 0x0072505c + 4570: 6d617267 sfmvs f7, 2, [r1, #-412]! + 4574: 6c694620 stclvs 6, cr4, [r9], #-128 + 4578: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 457c: 53205241 teqpl r0, #268435460 ; 0x10000004 + 4580: 65747379 ldrbvs r7, [r4, #-889]! + 4584: 455c736d ldrbmi r7, [ip, #-877] + 4588: 6465626d strbtvs r6, [r5], #-621 + 458c: 20646564 rsbcs r6, r4, r4, ror #10 + 4590: 6b726f57 blvs 1ca02f4 + 4594: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 4598: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 459c: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 45a0: 74736b63 ldrbtvc r6, [r3], #-2915 + 45a4: 5c747261 lfmpl f7, 2, [r4], #-388 + 45a8: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 45ac: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 45b0: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 45b4: 65746e69 ldrbvs r6, [r4, #-3689]! + 45b8: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 45bc: 2d2d206b stccs 0, cr2, [sp, #-428]! + 45c0: 5f757063 svcpl 0x00757063 + 45c4: 65646f6d strbvs r6, [r4, #-3949]! + 45c8: 75687420 strbvc r7, [r8, #-1056]! + 45cc: 2d20626d sfmcs f6, 4, [r0, #-436]! + 45d0: 0000684f andeq r6, r0, pc, asr #16 + 45d4: 445c3a43 ldrbmi r3, [ip], #-2627 + 45d8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 45dc: 73746e65 cmnvc r4, #1616 ; 0x650 + 45e0: 646e6120 strbtvs r6, [lr], #-288 + 45e4: 74655320 strbtvc r5, [r5], #-800 + 45e8: 676e6974 undefined + 45ec: 616d5c73 smcvs 54723 + 45f0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 45f4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 45f8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 45fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4600: 775c7374 undefined + 4604: 6f632d73 svcvs 0x00632d73 + 4608: 6f72746e svcvs 0x0072746e + 460c: 65575c6c ldrbvs r5, [r7, #-3180] + 4610: 65687461 strbvs r7, [r8, #-1121]! + 4614: 74532072 ldrbvc r2, [r3], #-114 + 4618: 6f697461 svcvs 0x00697461 + 461c: 6f43206e svcvs 0x0043206e + 4620: 6f72746e svcvs 0x0072746e + 4624: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4628: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 462c: 4f5c6775 svcmi 0x005c6775 + 4630: 6d5c6a62 fldsvs s13, [ip, #-392] + 4634: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} + 4638: 00003a6f andeq r3, r0, pc, ror #20 + 463c: 20524149 subscs r4, r2, r9, asr #2 + 4640: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 4644: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 4648: 43202b2b teqmi r0, #44032 ; 0xac00 + 464c: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 4650: 2072656c rsbscs r6, r2, ip, ror #10 + 4654: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 4658: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 465c: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 4660: 33572f35 cmpcc r7, #212 ; 0xd4 + 4664: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 4668: 54534b43 ldrbpl r4, [r3], #-2883 + 466c: 20545241 subscs r5, r4, r1, asr #4 + 4670: 20726f66 rsbscs r6, r2, r6, ror #30 + 4674: 004d5241 subeq r5, sp, r1, asr #4 + 4678: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 467c: 75636f44 strbvc r6, [r3, #-3908]! + 4680: 746e656d strbtvc r6, [lr], #-1389 + 4684: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4688: 65532064 ldrbvs r2, [r3, #-100] + 468c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4690: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4694: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4698: 4d5c6172 ldfmie f6, [ip, #-456] + 469c: 6f442079 svcvs 0x00442079 + 46a0: 656d7563 strbvs r7, [sp, #-1379]! + 46a4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 46a8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 46ac: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 46b0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 46b4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 46b8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 46bc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 46c0: 43206e6f teqmi r0, #1776 ; 0x6f0 + 46c4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 46c8: 656c6c6f strbvs r6, [ip, #-3183]! + 46cc: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 46d0: 445c4341 ldrbmi r4, [ip], #-833 + 46d4: 65766972 ldrbvs r6, [r6, #-2418]! + 46d8: 535c7372 cmppl ip, #-939524095 ; 0xc8000001 + 46dc: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 + 46e0: 616d5c65 cmnvs sp, r5, ror #24 + 46e4: 632e6163 teqvs lr, #-1073741800 ; 0xc0000018 + 46e8: 442d2022 strtmi r2, [sp], #-34 + 46ec: 34324620 ldrtcc r4, [r2], #-1568 + 46f0: 205a484d subscs r4, sl, sp, asr #16 + 46f4: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 46f8: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 46fc: 5f595449 svcpl 0x00595449 + 4700: 42414e45 submi r4, r1, #1104 ; 0x450 + 4704: 2044454c subcs r4, r4, ip, asr #10 + 4708: 20436c2d subcs r6, r3, sp, lsr #24 + 470c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 4710: 75636f44 strbvc r6, [r3, #-3908]! + 4714: 746e656d strbtvc r6, [lr], #-1389 + 4718: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 471c: 65532064 ldrbvs r2, [r3, #-100] + 4720: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4724: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4728: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 472c: 4d5c6172 ldfmie f6, [ip, #-456] + 4730: 6f442079 svcvs 0x00442079 + 4734: 656d7563 strbvs r7, [sp, #-1379]! + 4738: 5c73746e cfldrdpl mvd7, [r3], #-440 + 473c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4740: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4744: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4748: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 474c: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4750: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4754: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4758: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 475c: 656c6c6f strbvs r6, [ip, #-3183]! + 4760: 65445c72 strbvs r5, [r4, #-3186] + 4764: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4768: 7473694c ldrbtvc r6, [r3], #-2380 + 476c: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4770: 6169642d cmnvs r9, sp, lsr #8 + 4774: 75735f67 ldrbvc r5, [r3, #-3943]! + 4778: 65727070 ldrbvs r7, [r2, #-112]! + 477c: 50207373 eorpl r7, r0, r3, ror r3 + 4780: 31353965 teqcc r5, r5, ror #18 + 4784: 3165502c cmncc r5, ip, lsr #32 + 4788: 502c3131 eorpl r3, ip, r1, lsr r1 + 478c: 30343965 eorscc r3, r4, r5, ror #18 + 4790: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 4794: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 4798: 75636f44 strbvc r6, [r3, #-3908]! + 479c: 746e656d strbtvc r6, [lr], #-1389 + 47a0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 47a4: 65532064 ldrbvs r2, [r3, #-100] + 47a8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 47ac: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 47b0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 47b4: 4d5c6172 ldfmie f6, [ip, #-456] + 47b8: 6f442079 svcvs 0x00442079 + 47bc: 656d7563 strbvs r7, [sp, #-1379]! + 47c0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 47c4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 47c8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 47cc: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 47d0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 47d4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 47d8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 47dc: 43206e6f teqmi r0, #1776 ; 0x6f0 + 47e0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 47e4: 656c6c6f strbvs r6, [ip, #-3183]! + 47e8: 65445c72 strbvs r5, [r4, #-3186] + 47ec: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 47f0: 5c6a624f sfmpl f6, 2, [sl], #-316 + 47f4: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 47f8: 75626564 strbvc r6, [r2, #-1380]! + 47fc: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 4800: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 4804: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 4808: 6c747469 cfldrdvs mvd7, [r4], #-420 + 480c: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 4810: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 4814: 374d5241 strbcc r5, [sp, -r1, asr #4] + 4818: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 481c: 2d20532d stccs 3, cr5, [r0, #-180]! + 4820: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 4824: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 4828: 656e6f4e strbvs r6, [lr, #-3918]! + 482c: 642d2d20 strtvs r2, [sp], #-3360 + 4830: 5f62696c svcpl 0x0062696c + 4834: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 4838: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 483c: 505c3a43 subspl r3, ip, r3, asr #20 + 4840: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 4844: 46206d61 strtmi r6, [r0], -r1, ror #26 + 4848: 73656c69 cmnvc r5, #26880 ; 0x6900 + 484c: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 4850: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 4854: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 4858: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 485c: 65646465 strbvs r6, [r4, #-1125]! + 4860: 6f572064 svcvs 0x00572064 + 4864: 65626b72 strbvs r6, [r2, #-2930]! + 4868: 2068636e rsbcs r6, r8, lr, ror #6 + 486c: 20342e35 eorscs r2, r4, r5, lsr lr + 4870: 6b63694b blvs 18deda4 + 4874: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 4878: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 487c: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 4880: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 4884: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 4888: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 488c: 6f4e5f67 svcvs 0x004e5f67 + 4890: 6c616d72 stclvs 13, cr6, [r1], #-456 + 4894: 2022682e eorcs r6, r2, lr, lsr #16 + 4898: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 489c: 445c3a43 ldrbmi r3, [ip], #-2627 + 48a0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 48a4: 73746e65 cmnvc r4, #1616 ; 0x650 + 48a8: 646e6120 strbtvs r6, [lr], #-288 + 48ac: 74655320 strbtvc r5, [r5], #-800 + 48b0: 676e6974 undefined + 48b4: 616d5c73 smcvs 54723 + 48b8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 48bc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 48c0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 48c4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 48c8: 775c7374 undefined + 48cc: 6f632d73 svcvs 0x00632d73 + 48d0: 6f72746e svcvs 0x0072746e + 48d4: 65575c6c ldrbvs r5, [r7, #-3180] + 48d8: 65687461 strbvs r7, [r8, #-1121]! + 48dc: 74532072 ldrbvc r2, [r3], #-114 + 48e0: 6f697461 svcvs 0x00697461 + 48e4: 6f43206e svcvs 0x0043206e + 48e8: 6f72746e svcvs 0x0072746e + 48ec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 48f0: 414d535c cmpmi sp, ip, asr r3 + 48f4: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 48f8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 48fc: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 4900: 66726574 undefined + 4904: 5c656361 stclpl 3, cr6, [r5], #-388 + 4908: 492d2022 pushmi {r1, r5, sp} + 490c: 3a432220 bcc 10cd194 + 4910: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 4914: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4918: 61207374 teqvs r0, r4, ror r3 + 491c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 4920: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4924: 5c73676e ldclpl 7, cr6, [r3], #-440 + 4928: 766c616d strbtvc r6, [ip], -sp, ror #2 + 492c: 5c617269 sfmpl f7, 2, [r1], #-420 + 4930: 4420794d strtmi r7, [r0], #-2381 + 4934: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4938: 73746e65 cmnvc r4, #1616 ; 0x650 + 493c: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 4940: 746e6f63 strbtvc r6, [lr], #-3939 + 4944: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 4948: 74616557 strbtvc r6, [r1], #-1367 + 494c: 20726568 rsbscs r6, r2, r8, ror #10 + 4950: 74617453 strbtvc r7, [r1], #-1107 + 4954: 206e6f69 rsbcs r6, lr, r9, ror #30 + 4958: 746e6f43 strbtvc r6, [lr], #-3907 + 495c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4960: 505c7265 subspl r7, ip, r5, ror #4 + 4964: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 4968: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 496c: 65636166 strbvs r6, [r3, #-358]! + 4970: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4974: 43222049 teqmi r2, #73 ; 0x49 + 4978: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 497c: 6172676f cmnvs r2, pc, ror #14 + 4980: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 4984: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 4988: 20524149 subscs r4, r2, r9, asr #2 + 498c: 74737953 ldrbtvc r7, [r3], #-2387 + 4990: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 4994: 65626d45 strbvs r6, [r2, #-3397]! + 4998: 64656464 strbtvs r6, [r5], #-1124 + 499c: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 49a0: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 49a4: 35206863 strcc r6, [r0, #-2147]! + 49a8: 4b20342e blmi 811a68 + 49ac: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 49b0: 74726174 ldrbtvc r6, [r2], #-372 + 49b4: 6d72615c ldfvse f6, [r2, #-368]! + 49b8: 434e495c movtmi r4, #59740 ; 0xe95c + 49bc: 2d20225c sfmcs f2, 4, [r0, #-368]! + 49c0: 746e692d strbtvc r6, [lr], #-2349 + 49c4: 6f777265 svcvs 0x00777265 + 49c8: 2d206b72 vstmdbcs r0!, {d6-} + 49cc: 7570632d ldrbvc r6, [r0, #-813]! + 49d0: 646f6d5f strbtvs r6, [pc], #3423 ; 49d8 + 49d4: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 49d8: 20626d75 rsbcs r6, r2, r5, ror sp + 49dc: 00684f2d rsbeq r4, r8, sp, lsr #30 + 49e0: 5c3a4300 ldcpl 3, cr4, [sl] + 49e4: 75636f44 strbvc r6, [r3, #-3908]! + 49e8: 746e656d strbtvc r6, [lr], #-1389 + 49ec: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 49f0: 65532064 ldrbvs r2, [r3, #-100] + 49f4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 49f8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 49fc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4a00: 4d5c6172 ldfmie f6, [ip, #-456] + 4a04: 6f442079 svcvs 0x00442079 + 4a08: 656d7563 strbvs r7, [sp, #-1379]! + 4a0c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4a10: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4a14: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4a18: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4a1c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4a20: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4a24: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4a28: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4a2c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4a30: 656c6c6f strbvs r6, [ip, #-3183]! + 4a34: 65445c72 strbvs r5, [r4, #-3186] + 4a38: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4a3c: 5c6a624f sfmpl f6, 2, [sl], #-316 + 4a40: 74616577 strbtvc r6, [r1], #-1399 + 4a44: 5f726568 svcpl 0x00726568 + 4a48: 74617473 strbtvc r7, [r1], #-1139 + 4a4c: 5f6e6f69 svcpl 0x006e6f69 + 4a50: 746e6f63 strbtvc r6, [lr], #-3939 + 4a54: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4a58: 6f2e7265 svcvs 0x002e7265 + 4a5c: 4900003a stmdbmi r0, {r1, r3, r4, r5} + 4a60: 41205241 teqmi r0, r1, asr #4 + 4a64: 2049534e subcs r5, r9, lr, asr #6 + 4a68: 2b432f43 blcs 10d077c + 4a6c: 6f43202b svcvs 0x0043202b + 4a70: 6c69706d stclvs 0, cr7, [r9], #-436 + 4a74: 56207265 strtpl r7, [r0], -r5, ror #4 + 4a78: 30332e35 eorscc r2, r3, r5, lsr lr + 4a7c: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 4a80: 35393231 ldrcc r3, [r9, #-561]! + 4a84: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4a88: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4a8c: 4154534b cmpmi r4, fp, asr #6 + 4a90: 66205452 undefined + 4a94: 4120726f teqmi r0, pc, ror #4 + 4a98: 22004d52 andcs r4, r0, #5248 ; 0x1480 + 4a9c: 445c3a43 ldrbmi r3, [ip], #-2627 + 4aa0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4aa4: 73746e65 cmnvc r4, #1616 ; 0x650 + 4aa8: 646e6120 strbtvs r6, [lr], #-288 + 4aac: 74655320 strbtvc r5, [r5], #-800 + 4ab0: 676e6974 undefined + 4ab4: 616d5c73 smcvs 54723 + 4ab8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4abc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4ac0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4ac4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4ac8: 775c7374 undefined + 4acc: 6f632d73 svcvs 0x00632d73 + 4ad0: 6f72746e svcvs 0x0072746e + 4ad4: 65575c6c ldrbvs r5, [r7, #-3180] + 4ad8: 65687461 strbvs r7, [r8, #-1121]! + 4adc: 74532072 ldrbvc r2, [r3], #-114 + 4ae0: 6f697461 svcvs 0x00697461 + 4ae4: 6f43206e svcvs 0x0043206e + 4ae8: 6f72746e svcvs 0x0072746e + 4aec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4af0: 7070415c rsbsvc r4, r0, ip, asr r1 + 4af4: 6163696c cmnvs r3, ip, ror #18 + 4af8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4afc: 756f535c strbvc r5, [pc, #-860]! ; 47a8 + 4b00: 5c656372 stclpl 3, cr6, [r5], #-456 + 4b04: 74616577 strbtvc r6, [r1], #-1399 + 4b08: 5f726568 svcpl 0x00726568 + 4b0c: 74617473 strbtvc r7, [r1], #-1139 + 4b10: 5f6e6f69 svcpl 0x006e6f69 + 4b14: 746e6f63 strbtvc r6, [lr], #-3939 + 4b18: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4b1c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 4b20: 442d2022 strtmi r2, [sp], #-34 + 4b24: 34324620 ldrtcc r4, [r2], #-1568 + 4b28: 205a484d subscs r4, sl, sp, asr #16 + 4b2c: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 4b30: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 4b34: 5f595449 svcpl 0x00595449 + 4b38: 42414e45 submi r4, r1, #1104 ; 0x450 + 4b3c: 2044454c subcs r4, r4, ip, asr #10 + 4b40: 20436c2d subcs r6, r3, sp, lsr #24 + 4b44: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 4b48: 75636f44 strbvc r6, [r3, #-3908]! + 4b4c: 746e656d strbtvc r6, [lr], #-1389 + 4b50: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4b54: 65532064 ldrbvs r2, [r3, #-100] + 4b58: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4b5c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4b60: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4b64: 4d5c6172 ldfmie f6, [ip, #-456] + 4b68: 6f442079 svcvs 0x00442079 + 4b6c: 656d7563 strbvs r7, [sp, #-1379]! + 4b70: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4b74: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4b78: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4b7c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4b80: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4b84: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4b88: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4b8c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4b90: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4b94: 656c6c6f strbvs r6, [ip, #-3183]! + 4b98: 65445c72 strbvs r5, [r4, #-3186] + 4b9c: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4ba0: 7473694c ldrbtvc r6, [r3], #-2380 + 4ba4: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4ba8: 6169642d cmnvs r9, sp, lsr #8 + 4bac: 75735f67 ldrbvc r5, [r3, #-3943]! + 4bb0: 65727070 ldrbvs r7, [r2, #-112]! + 4bb4: 50207373 eorpl r7, r0, r3, ror r3 + 4bb8: 31353965 teqcc r5, r5, ror #18 + 4bbc: 3165502c cmncc r5, ip, lsr #32 + 4bc0: 502c3131 eorpl r3, ip, r1, lsr r1 + 4bc4: 30343965 eorscc r3, r4, r5, ror #18 + 4bc8: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 4bcc: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 4bd0: 75636f44 strbvc r6, [r3, #-3908]! + 4bd4: 746e656d strbtvc r6, [lr], #-1389 + 4bd8: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4bdc: 65532064 ldrbvs r2, [r3, #-100] + 4be0: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4be4: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4be8: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4bec: 4d5c6172 ldfmie f6, [ip, #-456] + 4bf0: 6f442079 svcvs 0x00442079 + 4bf4: 656d7563 strbvs r7, [sp, #-1379]! + 4bf8: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4bfc: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4c00: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c04: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4c08: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4c0c: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4c10: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4c14: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4c18: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c1c: 656c6c6f strbvs r6, [ip, #-3183]! + 4c20: 65445c72 strbvs r5, [r4, #-3186] + 4c24: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4c28: 5c6a624f sfmpl f6, 2, [sl], #-316 + 4c2c: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 4c30: 75626564 strbvc r6, [r2, #-1380]! + 4c34: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 4c38: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 4c3c: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 4c40: 6c747469 cfldrdvs mvd7, [r4], #-420 + 4c44: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 4c48: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 4c4c: 374d5241 strbcc r5, [sp, -r1, asr #4] + 4c50: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 4c54: 2d20532d stccs 3, cr5, [r0, #-180]! + 4c58: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 4c5c: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 4c60: 656e6f4e strbvs r6, [lr, #-3918]! + 4c64: 642d2d20 strtvs r2, [sp], #-3360 + 4c68: 5f62696c svcpl 0x0062696c + 4c6c: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 4c70: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 4c74: 505c3a43 subspl r3, ip, r3, asr #20 + 4c78: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 4c7c: 46206d61 strtmi r6, [r0], -r1, ror #26 + 4c80: 73656c69 cmnvc r5, #26880 ; 0x6900 + 4c84: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 4c88: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 4c8c: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 4c90: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 4c94: 65646465 strbvs r6, [r4, #-1125]! + 4c98: 6f572064 svcvs 0x00572064 + 4c9c: 65626b72 strbvs r6, [r2, #-2930]! + 4ca0: 2068636e rsbcs r6, r8, lr, ror #6 + 4ca4: 20342e35 eorscs r2, r4, r5, lsr lr + 4ca8: 6b63694b blvs 18df1dc + 4cac: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 4cb0: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 4cb4: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 4cb8: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 4cbc: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 4cc0: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 4cc4: 6f4e5f67 svcvs 0x004e5f67 + 4cc8: 6c616d72 stclvs 13, cr6, [r1], #-456 + 4ccc: 2022682e eorcs r6, r2, lr, lsr #16 + 4cd0: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 4cd4: 445c3a43 ldrbmi r3, [ip], #-2627 + 4cd8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4cdc: 73746e65 cmnvc r4, #1616 ; 0x650 + 4ce0: 646e6120 strbtvs r6, [lr], #-288 + 4ce4: 74655320 strbtvc r5, [r5], #-800 + 4ce8: 676e6974 undefined + 4cec: 616d5c73 smcvs 54723 + 4cf0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4cf4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4cf8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4cfc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4d00: 775c7374 undefined + 4d04: 6f632d73 svcvs 0x00632d73 + 4d08: 6f72746e svcvs 0x0072746e + 4d0c: 65575c6c ldrbvs r5, [r7, #-3180] + 4d10: 65687461 strbvs r7, [r8, #-1121]! + 4d14: 74532072 ldrbvc r2, [r3], #-114 + 4d18: 6f697461 svcvs 0x00697461 + 4d1c: 6f43206e svcvs 0x0043206e + 4d20: 6f72746e svcvs 0x0072746e + 4d24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4d28: 414d535c cmpmi sp, ip, asr r3 + 4d2c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 4d30: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 4d34: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 4d38: 66726574 undefined + 4d3c: 5c656361 stclpl 3, cr6, [r5], #-388 + 4d40: 492d2022 pushmi {r1, r5, sp} + 4d44: 3a432220 bcc 10cd5cc + 4d48: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 4d4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4d50: 61207374 teqvs r0, r4, ror r3 + 4d54: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 4d58: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4d5c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 4d60: 766c616d strbtvc r6, [ip], -sp, ror #2 + 4d64: 5c617269 sfmpl f7, 2, [r1], #-420 + 4d68: 4420794d strtmi r7, [r0], #-2381 + 4d6c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4d70: 73746e65 cmnvc r4, #1616 ; 0x650 + 4d74: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 4d78: 746e6f63 strbtvc r6, [lr], #-3939 + 4d7c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 4d80: 74616557 strbtvc r6, [r1], #-1367 + 4d84: 20726568 rsbscs r6, r2, r8, ror #10 + 4d88: 74617453 strbtvc r7, [r1], #-1107 + 4d8c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 4d90: 746e6f43 strbtvc r6, [lr], #-3907 + 4d94: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4d98: 505c7265 subspl r7, ip, r5, ror #4 + 4d9c: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 4da0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 4da4: 65636166 strbvs r6, [r3, #-358]! + 4da8: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4dac: 43222049 teqmi r2, #73 ; 0x49 + 4db0: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 4db4: 6172676f cmnvs r2, pc, ror #14 + 4db8: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 4dbc: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 4dc0: 20524149 subscs r4, r2, r9, asr #2 + 4dc4: 74737953 ldrbtvc r7, [r3], #-2387 + 4dc8: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 4dcc: 65626d45 strbvs r6, [r2, #-3397]! + 4dd0: 64656464 strbtvs r6, [r5], #-1124 + 4dd4: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 4dd8: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 4ddc: 35206863 strcc r6, [r0, #-2147]! + 4de0: 4b20342e blmi 811ea0 + 4de4: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 4de8: 74726174 ldrbtvc r6, [r2], #-372 + 4dec: 6d72615c ldfvse f6, [r2, #-368]! + 4df0: 434e495c movtmi r4, #59740 ; 0xe95c + 4df4: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4df8: 746e692d strbtvc r6, [lr], #-2349 + 4dfc: 6f777265 svcvs 0x00777265 + 4e00: 2d206b72 vstmdbcs r0!, {d6-} + 4e04: 7570632d ldrbvc r6, [r0, #-813]! + 4e08: 646f6d5f strbtvs r6, [pc], #3423 ; 4e10 + 4e0c: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 4e10: 20626d75 rsbcs r6, r2, r5, ror sp + 4e14: 00684f2d rsbeq r4, r8, sp, lsr #30 + 4e18: 6d6f7200 sfmvs f7, 2, [pc] + 4e1c: 6d79732d ldclvs 3, cr7, [r9, #-180]! + 4e20: 736c6f62 cmnvc ip, #392 ; 0x188 + 4e24: 434c4c2d movtmi r4, #52269 ; 0xcc2d + 4e28: 4c286f2e stcmi 15, cr6, [r8], #-184 + 4e2c: 612e434c teqvs lr, ip, asr #6 + 4e30: 00003a29 andeq r3, r0, r9, lsr #20 + 4e34: 204d5241 subcs r5, sp, r1, asr #4 + 4e38: 6b6e694c blvs 1b9f370 + 4e3c: 202c7265 eorcs r7, ip, r5, ror #4 + 4e40: 31534441 cmpcc r3, r1, asr #8 + 4e44: 5b20312e blpl 811304 + 4e48: 6c697542 cfstr64vs mvdx7, [r9], #-264 + 4e4c: 30372064 eorscc r2, r7, r4, rrx + 4e50: 000a5d39 andeq r5, sl, r9, lsr sp + 4e54: 75706e49 ldrbvc r6, [r0, #-3657]! + 4e58: 6f432074 svcvs 0x00432074 + 4e5c: 6e656d6d cdpvs 13, 6, cr6, cr5, cr13, {3} + 4e60: 003a7374 eorseq r7, sl, r4, ror r3 + 4e64: 00000000 andeq r0, r0, r0 + 4e68: 5f707200 svcpl 0x00707200 + 4e6c: 74636576 strbtvc r6, [r3], #-1398 + 4e70: 495f726f ldmdbmi pc, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 4e74: 6f2e5241 svcvs 0x002e5241 + 4e78: 434c4c28 movtmi r4, #52264 ; 0xcc28 + 4e7c: 3a29612e bcc a5d33c + 4e80: 41490000 cmpmi r9, r0 + 4e84: 73412052 movtvc r2, #4178 ; 0x1052 + 4e88: 626d6573 rsbvs r6, sp, #482344960 ; 0x1cc00000 + 4e8c: 2072656c rsbscs r6, r2, ip, ror #10 + 4e90: 322e3556 eorcc r3, lr, #360710144 ; 0x15800000 + 4e94: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 4e98: 39383035 ldmdbcc r8!, {r0, r2, r4, r5, ip, sp} + 4e9c: 572f2032 undefined + 4ea0: 66203233 undefined + 4ea4: 4120726f teqmi r0, pc, ror #4 + 4ea8: 44004d52 strmi r4, [r0], #-3410 + 4eac: 43575c3a cmpmi r7, #14848 ; 0x3a00 + 4eb0: 72505f4f subsvc r5, r0, #316 ; 0x13c + 4eb4: 63656a6f cmnvs r5, #454656 ; 0x6f000 + 4eb8: 4b5c7374 blmi 1721c90 + 4ebc: 61626961 cmnvs r2, r1, ror #18 + 4ec0: 6c465c62 mcrrvs 12, 6, r5, r6, cr2 + 4ec4: 6469726f strbtvs r7, [r9], #-623 + 4ec8: 76652061 strbtvc r2, [r5], -r1, rrx + 4ecc: 61756c61 cmnvs r5, r1, ror #24 + 4ed0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4ed4: 646f435c strbtvs r4, [pc], #860 ; 4edc + 4ed8: 73616265 cmnvc r1, #1342177286 ; 0x50000006 + 4edc: 72705c65 rsbsvc r5, r0, #25856 ; 0x6500 + 4ee0: 63656a6f cmnvs r5, #454656 ; 0x6f000 + 4ee4: 4c4c2074 mcrrmi 0, 7, r2, ip, cr4 + 4ee8: 6f662043 svcvs 0x00662043 + 4eec: 4d532072 ldclmi 0, cr2, [r3, #-456] + 4ef0: 705c4341 subsvc r4, ip, r1, asr #6 + 4ef4: 656a6f72 strbvs r6, [sl, #-3954]! + 4ef8: 4c207463 cfstrsmi mvf7, [r0], #-396 + 4efc: 6620434c strtvs r4, [r0], -ip, asr #6 + 4f00: 5320726f teqpl r0, #-268435450 ; 0xf0000006 + 4f04: 5c43414d stfple f4, [r3], {77} + 4f08: 775f6276 undefined + 4f0c: 505f6f63 subspl r6, pc, r3, ror #30 + 4f10: 53534d4c cmppl r3, #4864 ; 0x1300 + 4f14: 72615f4d rsbvc r5, r1, #308 ; 0x134 + 4f18: 4c5c376d mrrcmi 7, 6, r3, ip, cr13 + 4f1c: 535c434c cmppl ip, #805306369 ; 0x30000001 + 4f20: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 + 4f24: 4f525c65 svcmi 0x00525c65 + 4f28: 61505f4d cmpvs r0, sp, asr #30 + 4f2c: 69686374 stmdbvs r8!, {r2, r4, r5, r6, r8, r9, sp, lr}^ + 4f30: 725c676e subsvc r6, ip, #28835840 ; 0x1b80000 + 4f34: 65765f70 ldrbvs r5, [r6, #-3952]! + 4f38: 726f7463 rsbvc r7, pc, #1660944384 ; 0x63000000 + 4f3c: 5241495f subpl r4, r1, #1556480 ; 0x17c000 + 4f40: 2d20532e stccs 3, cr5, [r0, #-184]! + 4f44: 5c3a444f cfldrspl mvf4, [sl], #-316 + 4f48: 5f4f4357 svcpl 0x004f4357 + 4f4c: 6a6f7250 bvs 1be1894 + 4f50: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 4f54: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 4f58: 5c626162 stfple f6, [r2], #-392 + 4f5c: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 4f60: 20616469 rsbcs r6, r1, r9, ror #8 + 4f64: 6c617665 stclvs 6, cr7, [r1], #-404 + 4f68: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 4f6c: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 4f70: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 4f74: 5c657361 stclpl 3, cr7, [r5], #-388 + 4f78: 6a6f7270 bvs 1be1940 + 4f7c: 20746365 rsbscs r6, r4, r5, ror #6 + 4f80: 20434c4c subcs r4, r3, ip, asr #24 + 4f84: 20726f66 rsbscs r6, r2, r6, ror #30 + 4f88: 43414d53 movtmi r4, #7507 ; 0x1d53 + 4f8c: 6f72705c svcvs 0x0072705c + 4f90: 7463656a strbtvc r6, [r3], #-1386 + 4f94: 434c4c20 movtmi r4, #52256 ; 0xcc20 + 4f98: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 4f9c: 414d5320 cmpmi sp, r0, lsr #6 + 4fa0: 62765c43 rsbsvs r5, r6, #17152 ; 0x4300 + 4fa4: 6f63775f svcvs 0x0063775f + 4fa8: 4d4c505f stclmi 0, cr5, [ip, #-380] + 4fac: 5f4d5353 svcpl 0x004d5353 + 4fb0: 376d7261 strbcc r7, [sp, -r1, ror #4]! + 4fb4: 6975425c ldmdbvs r5!, {r2, r3, r4, r6, r9, lr}^ + 4fb8: 6f5c646c svcvs 0x005c646c + 4fbc: 6f5c7475 svcvs 0x005c7475 + 4fc0: 535c6a62 cmppl ip, #401408 ; 0x62000 + 4fc4: 646e6174 strbtvs r6, [lr], #-372 + 4fc8: 6e6f6c61 cdpvs 12, 6, cr6, cr15, cr1, {3} + 4fcc: 4f522d65 svcmi 0x00522d65 + 4fd0: 312e324d teqcc lr, sp, asr #4 + 4fd4: 7361422d cmnvc r1, #-805306366 ; 0xd0000002 + 4fd8: 522d6465 eorpl r6, sp, #1694498816 ; 0x65000000 + 4fdc: 61656c65 cmnvs r5, r5, ror #24 + 4fe0: 205c6573 subscs r6, ip, r3, ror r5 + 4fe4: 202b732d eorcs r7, fp, sp, lsr #6 + 4fe8: 3e3c4d2d cdpcc 13, 3, cr4, cr12, cr13, {1} + 4fec: 2b772d20 blcs 1dd0474 + 4ff0: 444c2d20 strbmi r2, [ip], #-3360 + 4ff4: 43575c3a cmpmi r7, #14848 ; 0x3a00 + 4ff8: 72505f4f subsvc r5, r0, #316 ; 0x13c + 4ffc: 63656a6f cmnvs r5, #454656 ; 0x6f000 + 5000: 4b5c7374 blmi 1721dd8 + 5004: 61626961 cmnvs r2, r1, ror #18 + 5008: 6c465c62 mcrrvs 12, 6, r5, r6, cr2 + 500c: 6469726f strbtvs r7, [r9], #-623 + 5010: 76652061 strbtvc r2, [r5], -r1, rrx + 5014: 61756c61 cmnvs r5, r1, ror #24 + 5018: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 501c: 646f435c strbtvs r4, [pc], #860 ; 5024 + 5020: 73616265 cmnvc r1, #1342177286 ; 0x50000006 + 5024: 72705c65 rsbsvc r5, r0, #25856 ; 0x6500 + 5028: 63656a6f cmnvs r5, #454656 ; 0x6f000 + 502c: 4c4c2074 mcrrmi 0, 7, r2, ip, cr4 + 5030: 6f662043 svcvs 0x00662043 + 5034: 4d532072 ldclmi 0, cr2, [r3, #-456] + 5038: 705c4341 subsvc r4, ip, r1, asr #6 + 503c: 656a6f72 strbvs r6, [sl, #-3954]! + 5040: 4c207463 cfstrsmi mvf7, [r0], #-396 + 5044: 6620434c strtvs r4, [r0], -ip, asr #6 + 5048: 5320726f teqpl r0, #-268435450 ; 0xf0000006 + 504c: 5c43414d stfple f4, [r3], {77} + 5050: 775f6276 undefined + 5054: 505f6f63 subspl r6, pc, r3, ror #30 + 5058: 53534d4c cmppl r3, #4864 ; 0x1300 + 505c: 72615f4d rsbvc r5, r1, #308 ; 0x134 + 5060: 425c376d subsmi r3, ip, #28573696 ; 0x1b40000 + 5064: 646c6975 strbtvs r6, [ip], #-2421 + 5068: 74756f5c ldrbtvc r6, [r5], #-3932 + 506c: 74736c5c ldrbtvc r6, [r3], #-3164 + 5070: 6174535c cmnvs r4, ip, asr r3 + 5074: 6c61646e cfstrdvs mvd6, [r1], #-440 + 5078: 2d656e6f stclcs 14, cr6, [r5, #-444]! + 507c: 324d4f52 subcc r4, sp, #328 ; 0x148 + 5080: 422d312e eormi r3, sp, #-2147483637 ; 0x8000000b + 5084: 64657361 strbtvs r7, [r5], #-865 + 5088: 6c65522d sfmvs f5, 2, [r5], #-180 + 508c: 65736165 ldrbvs r6, [r3, #-357]! + 5090: 632d205c teqvs sp, #92 ; 0x5c + 5094: 204d4f41 subcs r4, sp, r1, asr #30 + 5098: 2d20692d stccs 9, cr6, [r0, #-180]! + 509c: 742d2042 strtvc r2, [sp], #-66 + 50a0: 2d2d2038 stccs 0, cr2, [sp, #-224]! + 50a4: 20757063 rsbscs r7, r5, r3, rrx + 50a8: 374d5241 strbcc r5, [sp, -r1, asr #4] + 50ac: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 50b0: 2d20532d stccs 3, cr5, [r0, #-180]! + 50b4: 7570662d ldrbvc r6, [r0, #-1581]! + 50b8: 6e6f4e20 cdpvs 14, 6, cr4, cr15, cr0, {1} + 50bc: 53000065 movwpl r0, #101 ; 0x65 + 50c0: 68746e79 ldmdavs r4!, {r0, r3, r4, r5, r6, r9, sl, fp, sp, lr}^ + 50c4: 7a697365 bvc 1a61e60 + 50c8: 6f2e7265 svcvs 0x002e7265 + 50cc: 31434d28 cmpcc r3, r8, lsr #26 + 50d0: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 50d4: 3a29612e bcc a5d594 + 50d8: 41490000 cmpmi r9, r0 + 50dc: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 50e0: 43204953 teqmi r0, #1359872 ; 0x14c000 + 50e4: 2b2b432f blcs ad5da8 + 50e8: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 50ec: 656c6970 strbvs r6, [ip, #-2416]! + 50f0: 35562072 ldrbcc r2, [r6, #-114] + 50f4: 2e30322e cdpcs 2, 3, cr3, cr0, cr14, {1} + 50f8: 30352e30 eorscc r2, r5, r0, lsr lr + 50fc: 2f323938 svccs 0x00323938 + 5100: 20323357 eorscs r3, r2, r7, asr r3 + 5104: 20726f66 rsbscs r6, r2, r6, ror #30 + 5108: 004d5241 subeq r5, sp, r1, asr #4 + 510c: 5c3a4422 cfldrspl mvf4, [sl], #-136 + 5110: 5f4f4357 svcpl 0x004f4357 + 5114: 6a6f7250 bvs 1be1a5c + 5118: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 511c: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 5120: 5c626162 stfple f6, [r2], #-392 + 5124: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 5128: 20616469 rsbcs r6, r1, r9, ror #8 + 512c: 6c617665 stclvs 6, cr7, [r1], #-404 + 5130: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 5134: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 5138: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 513c: 5c657361 stclpl 3, cr7, [r5], #-388 + 5140: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 5144: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5148: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 514c: 56435f79 undefined + 5150: 434d5c53 movtmi r5, #56403 ; 0xdc53 + 5154: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + 5158: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 515c: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 + 5160: 6f696461 svcvs 0x00696461 + 5164: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 5168: 6372735c cmnvs r2, #1879048193 ; 0x70000001 + 516c: 6461725c strbtvs r7, [r1], #-604 + 5170: 535c6f69 cmppl ip, #420 ; 0x1a4 + 5174: 68746e79 ldmdavs r4!, {r0, r3, r4, r5, r6, r9, sl, fp, sp, lr}^ + 5178: 7a697365 bvc 1a61f14 + 517c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 5180: 442d2022 strtmi r2, [sp], #-34 + 5184: 45444e20 strbmi r4, [r4, #-3616] + 5188: 20475542 subcs r5, r7, r2, asr #10 + 518c: 4620442d strtmi r4, [r0], -sp, lsr #8 + 5190: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + 5194: 6c2d205a stcvs 0, cr2, [sp], #-360 + 5198: 22204e63 eorcs r4, r0, #1584 ; 0x630 + 519c: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] + 51a0: 505f4f43 subspl r4, pc, r3, asr #30 + 51a4: 656a6f72 strbvs r6, [sl, #-3954]! + 51a8: 5c737463 cfldrdpl mvd7, [r3], #-396 + 51ac: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 + 51b0: 465c6261 ldrbmi r6, [ip], -r1, ror #4 + 51b4: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 51b8: 65206164 strvs r6, [r0, #-356]! + 51bc: 756c6176 strbvc r6, [ip, #-374]! + 51c0: 6f697461 svcvs 0x00697461 + 51c4: 6f435c6e svcvs 0x00435c6e + 51c8: 61626564 cmnvs r2, r4, ror #10 + 51cc: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 + 51d0: 6f696461 svcvs 0x00696461 + 51d4: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 51d8: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 51dc: 5356435f cmppl r6, #2080374785 ; 0x7c000001 + 51e0: 31434d5c cmpcc r3, ip, asr sp + 51e4: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 51e8: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 51ec: 61525c73 cmpvs r2, r3, ror ip + 51f0: 5f6f6964 svcpl 0x006f6964 + 51f4: 5c62694c stclpl 9, cr6, [r2], #-304 + 51f8: 656c6552 strbvs r6, [ip, #-1362]! + 51fc: 5c657361 stclpl 3, cr7, [r5], #-388 + 5200: 7473694c ldrbtvc r6, [r3], #-2380 + 5204: 2d20225c sfmcs f2, 4, [r0, #-368]! + 5208: 6169642d cmnvs r9, sp, lsr #8 + 520c: 75735f67 ldrbvc r5, [r3, #-3943]! + 5210: 65727070 ldrbvs r7, [r2, #-112]! + 5214: 50207373 eorpl r7, r0, r3, ror r3 + 5218: 38363065 ldmdacc r6!, {r0, r2, r5, r6, ip, sp} + 521c: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 5220: 5c3a4422 cfldrspl mvf4, [sl], #-136 + 5224: 5f4f4357 svcpl 0x004f4357 + 5228: 6a6f7250 bvs 1be1b70 + 522c: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 5230: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 5234: 5c626162 stfple f6, [r2], #-392 + 5238: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 523c: 20616469 rsbcs r6, r1, r9, ror #8 + 5240: 6c617665 stclvs 6, cr7, [r1], #-404 + 5244: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 5248: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 524c: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 5250: 5c657361 stclpl 3, cr7, [r5], #-388 + 5254: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 5258: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 525c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5260: 56435f79 undefined + 5264: 434d5c53 movtmi r5, #56403 ; 0xdc53 + 5268: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + 526c: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5270: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 + 5274: 6f696461 svcvs 0x00696461 + 5278: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 527c: 6c65525c sfmvs f5, 2, [r5], #-368 + 5280: 65736165 ldrbvs r6, [r3, #-357]! + 5284: 6a624f5c bvs 1898ffc + 5288: 2d20225c sfmcs f2, 4, [r0, #-368]! + 528c: 646e652d strbtvs r6, [lr], #-1325 + 5290: 3d6e6169 stfcce f6, [lr, #-420]! + 5294: 7474696c ldrbtvc r6, [r4], #-2412 + 5298: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 529c: 7570632d ldrbvc r6, [r0, #-813]! + 52a0: 4d52413d ldfmie f4, [r2, #-244] + 52a4: 4d445437 cfstrdmi mvd5, [r4, #-220] + 52a8: 20532d49 subscs r2, r3, r9, asr #26 + 52ac: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 52b0: 7570662d ldrbvc r6, [r0, #-1581]! + 52b4: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 52b8: 492d2065 pushmi {r0, r2, r5, r6, sp} + 52bc: 3a432220 bcc 10cdb44 + 52c0: 6f72505c svcvs 0x0072505c + 52c4: 6d617267 sfmvs f7, 2, [r1, #-412]! + 52c8: 6c694620 stclvs 6, cr4, [r9], #-128 + 52cc: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 52d0: 53205241 teqpl r0, #268435460 ; 0x10000004 + 52d4: 65747379 ldrbvs r7, [r4, #-889]! + 52d8: 455c736d ldrbmi r7, [ip, #-877] + 52dc: 6465626d strbtvs r6, [r5], #-621 + 52e0: 20646564 rsbcs r6, r4, r4, ror #10 + 52e4: 6b726f57 blvs 1ca1048 + 52e8: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 52ec: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 52f0: 52415c30 subpl r5, r1, #12288 ; 0x3000 + 52f4: 4e495c4d cdpmi 12, 4, cr5, cr9, cr13, {2} + 52f8: 20225c43 eorcs r5, r2, r3, asr #24 + 52fc: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 5300: 77726574 undefined + 5304: 206b726f rsbcs r7, fp, pc, ror #4 + 5308: 70632d2d rsbvc r2, r3, sp, lsr #26 + 530c: 6f6d5f75 svcvs 0x006d5f75 + 5310: 74206564 strtvc r6, [r0], #-1380 + 5314: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 5318: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 531c: 7200007a andvc r0, r0, #122 ; 0x7a + 5320: 6f2e6669 svcvs 0x002e6669 + 5324: 31434d28 cmpcc r3, r8, lsr #26 + 5328: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 532c: 3a29612e bcc a5d7ec + 5330: 41490000 cmpmi r9, r0 + 5334: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 5338: 43204953 teqmi r0, #1359872 ; 0x14c000 + 533c: 2b2b432f blcs ad6000 + 5340: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 5344: 656c6970 strbvs r6, [ip, #-2416]! + 5348: 35562072 ldrbcc r2, [r6, #-114] + 534c: 2e30322e cdpcs 2, 3, cr3, cr0, cr14, {1} + 5350: 30352e30 eorscc r2, r5, r0, lsr lr + 5354: 2f323938 svccs 0x00323938 + 5358: 20323357 eorscs r3, r2, r7, asr r3 + 535c: 20726f66 rsbscs r6, r2, r6, ror #30 + 5360: 004d5241 subeq r5, sp, r1, asr #4 + 5364: 5c3a4422 cfldrspl mvf4, [sl], #-136 + 5368: 5f4f4357 svcpl 0x004f4357 + 536c: 6a6f7250 bvs 1be1cb4 + 5370: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 5374: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 5378: 5c626162 stfple f6, [r2], #-392 + 537c: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 5380: 20616469 rsbcs r6, r1, r9, ror #8 + 5384: 6c617665 stclvs 6, cr7, [r1], #-404 + 5388: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 538c: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 5390: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 5394: 5c657361 stclpl 3, cr7, [r5], #-388 + 5398: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 539c: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 53a0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 53a4: 56435f79 undefined + 53a8: 434d5c53 movtmi r5, #56403 ; 0xdc53 + 53ac: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + 53b0: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 53b4: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 + 53b8: 6f696461 svcvs 0x00696461 + 53bc: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 53c0: 6372735c cmnvs r2, #1879048193 ; 0x70000001 + 53c4: 6461725c strbtvs r7, [r1], #-604 + 53c8: 725c6f69 subsvc r6, ip, #420 ; 0x1a4 + 53cc: 632e6669 teqvs lr, #110100480 ; 0x6900000 + 53d0: 442d2022 strtmi r2, [sp], #-34 + 53d4: 45444e20 strbmi r4, [r4, #-3616] + 53d8: 20475542 subcs r5, r7, r2, asr #10 + 53dc: 4620442d strtmi r4, [r0], -sp, lsr #8 + 53e0: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + 53e4: 6c2d205a stcvs 0, cr2, [sp], #-360 + 53e8: 22204e63 eorcs r4, r0, #1584 ; 0x630 + 53ec: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] + 53f0: 505f4f43 subspl r4, pc, r3, asr #30 + 53f4: 656a6f72 strbvs r6, [sl, #-3954]! + 53f8: 5c737463 cfldrdpl mvd7, [r3], #-396 + 53fc: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 + 5400: 465c6261 ldrbmi r6, [ip], -r1, ror #4 + 5404: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 5408: 65206164 strvs r6, [r0, #-356]! + 540c: 756c6176 strbvc r6, [ip, #-374]! + 5410: 6f697461 svcvs 0x00697461 + 5414: 6f435c6e svcvs 0x00435c6e + 5418: 61626564 cmnvs r2, r4, ror #10 + 541c: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 + 5420: 6f696461 svcvs 0x00696461 + 5424: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 5428: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 542c: 5356435f cmppl r6, #2080374785 ; 0x7c000001 + 5430: 31434d5c cmpcc r3, ip, asr sp + 5434: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 5438: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 543c: 61525c73 cmpvs r2, r3, ror ip + 5440: 5f6f6964 svcpl 0x006f6964 + 5444: 5c62694c stclpl 9, cr6, [r2], #-304 + 5448: 656c6552 strbvs r6, [ip, #-1362]! + 544c: 5c657361 stclpl 3, cr7, [r5], #-388 + 5450: 7473694c ldrbtvc r6, [r3], #-2380 + 5454: 2d20225c sfmcs f2, 4, [r0, #-368]! + 5458: 6169642d cmnvs r9, sp, lsr #8 + 545c: 75735f67 ldrbvc r5, [r3, #-3943]! + 5460: 65727070 ldrbvs r7, [r2, #-112]! + 5464: 50207373 eorpl r7, r0, r3, ror r3 + 5468: 38363065 ldmdacc r6!, {r0, r2, r5, r6, ip, sp} + 546c: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 5470: 5c3a4422 cfldrspl mvf4, [sl], #-136 + 5474: 5f4f4357 svcpl 0x004f4357 + 5478: 6a6f7250 bvs 1be1dc0 + 547c: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 5480: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 5484: 5c626162 stfple f6, [r2], #-392 + 5488: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 548c: 20616469 rsbcs r6, r1, r9, ror #8 + 5490: 6c617665 stclvs 6, cr7, [r1], #-404 + 5494: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 5498: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 549c: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 54a0: 5c657361 stclpl 3, cr7, [r5], #-388 + 54a4: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 54a8: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 54ac: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 54b0: 56435f79 undefined + 54b4: 434d5c53 movtmi r5, #56403 ; 0xdc53 + 54b8: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + 54bc: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 54c0: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 + 54c4: 6f696461 svcvs 0x00696461 + 54c8: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 54cc: 6c65525c sfmvs f5, 2, [r5], #-368 + 54d0: 65736165 ldrbvs r6, [r3, #-357]! + 54d4: 6a624f5c bvs 189924c + 54d8: 2d20225c sfmcs f2, 4, [r0, #-368]! + 54dc: 646e652d strbtvs r6, [lr], #-1325 + 54e0: 3d6e6169 stfcce f6, [lr, #-420]! + 54e4: 7474696c ldrbtvc r6, [r4], #-2412 + 54e8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 54ec: 7570632d ldrbvc r6, [r0, #-813]! + 54f0: 4d52413d ldfmie f4, [r2, #-244] + 54f4: 4d445437 cfstrdmi mvd5, [r4, #-220] + 54f8: 20532d49 subscs r2, r3, r9, asr #26 + 54fc: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 5500: 7570662d ldrbvc r6, [r0, #-1581]! + 5504: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 5508: 492d2065 pushmi {r0, r2, r5, r6, sp} + 550c: 3a432220 bcc 10cdd94 + 5510: 6f72505c svcvs 0x0072505c + 5514: 6d617267 sfmvs f7, 2, [r1, #-412]! + 5518: 6c694620 stclvs 6, cr4, [r9], #-128 + 551c: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 5520: 53205241 teqpl r0, #268435460 ; 0x10000004 + 5524: 65747379 ldrbvs r7, [r4, #-889]! + 5528: 455c736d ldrbmi r7, [ip, #-877] + 552c: 6465626d strbtvs r6, [r5], #-621 + 5530: 20646564 rsbcs r6, r4, r4, ror #10 + 5534: 6b726f57 blvs 1ca1298 + 5538: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 553c: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 5540: 52415c30 subpl r5, r1, #12288 ; 0x3000 + 5544: 4e495c4d cdpmi 12, 4, cr5, cr9, cr13, {2} + 5548: 20225c43 eorcs r5, r2, r3, asr #24 + 554c: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 5550: 77726574 undefined + 5554: 206b726f rsbcs r7, fp, pc, ror #4 + 5558: 70632d2d rsbvc r2, r3, sp, lsr #26 + 555c: 6f6d5f75 svcvs 0x006d5f75 + 5560: 74206564 strtvc r6, [r0], #-1380 + 5564: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 5568: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 556c: 4900007a stmdbmi r0, {r1, r3, r4, r5, r6} + 5570: 5f74696e svcpl 0x0074696e + 5574: 6c697455 cfstrdvs mvd7, [r9], #-340 + 5578: 286f2e73 stmdacs pc!, {r0, r1, r4, r5, r6, r9, sl, fp, sp}^ + 557c: 3331434d teqcc r1, #872415233 ; 0x34000001 + 5580: 2e783232 mrccs 2, 3, r3, cr8, cr2, {1} + 5584: 003a2961 eorseq r2, sl, r1, ror #18 + 5588: 52414900 subpl r4, r1, #0 ; 0x0 + 558c: 534e4120 movtpl r4, #57632 ; 0xe120 + 5590: 2f432049 svccs 0x00432049 + 5594: 202b2b43 eorcs r2, fp, r3, asr #22 + 5598: 706d6f43 rsbvc r6, sp, r3, asr #30 + 559c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 55a0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 55a4: 302e3032 eorcc r3, lr, r2, lsr r0 + 55a8: 3830352e ldmdacc r0!, {r1, r2, r3, r5, r8, sl, ip, sp} + 55ac: 572f3239 undefined + 55b0: 66203233 undefined + 55b4: 4120726f teqmi r0, pc, ror #4 + 55b8: 22004d52 andcs r4, r0, #5248 ; 0x1480 + 55bc: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] + 55c0: 505f4f43 subspl r4, pc, r3, asr #30 + 55c4: 656a6f72 strbvs r6, [sl, #-3954]! + 55c8: 5c737463 cfldrdpl mvd7, [r3], #-396 + 55cc: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 + 55d0: 465c6261 ldrbmi r6, [ip], -r1, ror #4 + 55d4: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 55d8: 65206164 strvs r6, [r0, #-356]! + 55dc: 756c6176 strbvc r6, [ip, #-374]! + 55e0: 6f697461 svcvs 0x00697461 + 55e4: 6f435c6e svcvs 0x00435c6e + 55e8: 61626564 cmnvs r2, r4, ror #10 + 55ec: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 + 55f0: 6f696461 svcvs 0x00696461 + 55f4: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 55f8: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 55fc: 5356435f cmppl r6, #2080374785 ; 0x7c000001 + 5600: 31434d5c cmpcc r3, ip, asr sp + 5604: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 5608: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 560c: 61525c73 cmpvs r2, r3, ror ip + 5610: 5f6f6964 svcpl 0x006f6964 + 5614: 5c62694c stclpl 9, cr6, [r2], #-304 + 5618: 5c637273 sfmpl f7, 2, [r3], #-460 + 561c: 74696e49 strbtvc r6, [r9], #-3657 + 5620: 6974555f ldmdbvs r4!, {r0, r1, r2, r3, r4, r6, r8, sl, ip, lr}^ + 5624: 632e736c teqvs lr, #-1342177279 ; 0xb0000001 + 5628: 442d2022 strtmi r2, [sp], #-34 + 562c: 45444e20 strbmi r4, [r4, #-3616] + 5630: 20475542 subcs r5, r7, r2, asr #10 + 5634: 4620442d strtmi r4, [r0], -sp, lsr #8 + 5638: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + 563c: 6c2d205a stcvs 0, cr2, [sp], #-360 + 5640: 22204e63 eorcs r4, r0, #1584 ; 0x630 + 5644: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] + 5648: 505f4f43 subspl r4, pc, r3, asr #30 + 564c: 656a6f72 strbvs r6, [sl, #-3954]! + 5650: 5c737463 cfldrdpl mvd7, [r3], #-396 + 5654: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 + 5658: 465c6261 ldrbmi r6, [ip], -r1, ror #4 + 565c: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 5660: 65206164 strvs r6, [r0, #-356]! + 5664: 756c6176 strbvc r6, [ip, #-374]! + 5668: 6f697461 svcvs 0x00697461 + 566c: 6f435c6e svcvs 0x00435c6e + 5670: 61626564 cmnvs r2, r4, ror #10 + 5674: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 + 5678: 6f696461 svcvs 0x00696461 + 567c: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 5680: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 5684: 5356435f cmppl r6, #2080374785 ; 0x7c000001 + 5688: 31434d5c cmpcc r3, ip, asr sp + 568c: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 5690: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 5694: 61525c73 cmpvs r2, r3, ror ip + 5698: 5f6f6964 svcpl 0x006f6964 + 569c: 5c62694c stclpl 9, cr6, [r2], #-304 + 56a0: 656c6552 strbvs r6, [ip, #-1362]! + 56a4: 5c657361 stclpl 3, cr7, [r5], #-388 + 56a8: 7473694c ldrbtvc r6, [r3], #-2380 + 56ac: 2d20225c sfmcs f2, 4, [r0, #-368]! + 56b0: 6169642d cmnvs r9, sp, lsr #8 + 56b4: 75735f67 ldrbvc r5, [r3, #-3943]! + 56b8: 65727070 ldrbvs r7, [r2, #-112]! + 56bc: 50207373 eorpl r7, r0, r3, ror r3 + 56c0: 38363065 ldmdacc r6!, {r0, r2, r5, r6, ip, sp} + 56c4: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 56c8: 5c3a4422 cfldrspl mvf4, [sl], #-136 + 56cc: 5f4f4357 svcpl 0x004f4357 + 56d0: 6a6f7250 bvs 1be2018 + 56d4: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 56d8: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 56dc: 5c626162 stfple f6, [r2], #-392 + 56e0: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 56e4: 20616469 rsbcs r6, r1, r9, ror #8 + 56e8: 6c617665 stclvs 6, cr7, [r1], #-404 + 56ec: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 56f0: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 56f4: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 56f8: 5c657361 stclpl 3, cr7, [r5], #-388 + 56fc: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 5700: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5704: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5708: 56435f79 undefined + 570c: 434d5c53 movtmi r5, #56403 ; 0xdc53 + 5710: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + 5714: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5718: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 + 571c: 6f696461 svcvs 0x00696461 + 5720: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 5724: 6c65525c sfmvs f5, 2, [r5], #-368 + 5728: 65736165 ldrbvs r6, [r3, #-357]! + 572c: 6a624f5c bvs 18994a4 + 5730: 2d20225c sfmcs f2, 4, [r0, #-368]! + 5734: 646e652d strbtvs r6, [lr], #-1325 + 5738: 3d6e6169 stfcce f6, [lr, #-420]! + 573c: 7474696c ldrbtvc r6, [r4], #-2412 + 5740: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 5744: 7570632d ldrbvc r6, [r0, #-813]! + 5748: 4d52413d ldfmie f4, [r2, #-244] + 574c: 4d445437 cfstrdmi mvd5, [r4, #-220] + 5750: 20532d49 subscs r2, r3, r9, asr #26 + 5754: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 5758: 7570662d ldrbvc r6, [r0, #-1581]! + 575c: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 5760: 492d2065 pushmi {r0, r2, r5, r6, sp} + 5764: 3a432220 bcc 10cdfec + 5768: 6f72505c svcvs 0x0072505c + 576c: 6d617267 sfmvs f7, 2, [r1, #-412]! + 5770: 6c694620 stclvs 6, cr4, [r9], #-128 + 5774: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 5778: 53205241 teqpl r0, #268435460 ; 0x10000004 + 577c: 65747379 ldrbvs r7, [r4, #-889]! + 5780: 455c736d ldrbmi r7, [ip, #-877] + 5784: 6465626d strbtvs r6, [r5], #-621 + 5788: 20646564 rsbcs r6, r4, r4, ror #10 + 578c: 6b726f57 blvs 1ca14f0 + 5790: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 5794: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 5798: 52415c30 subpl r5, r1, #12288 ; 0x3000 + 579c: 4e495c4d cdpmi 12, 4, cr5, cr9, cr13, {2} + 57a0: 20225c43 eorcs r5, r2, r3, asr #24 + 57a4: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 57a8: 77726574 undefined + 57ac: 206b726f rsbcs r7, fp, pc, ror #4 + 57b0: 70632d2d rsbvc r2, r3, sp, lsr #26 + 57b4: 6f6d5f75 svcvs 0x006d5f75 + 57b8: 74206564 strtvc r6, [r0], #-1380 + 57bc: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 57c0: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 57c4: 4100007a tstmi r0, sl, ror r0 + 57c8: 656d4942 strbvs r4, [sp, #-2370]! + 57cc: 726c636d rsbvc r6, ip, #-1275068415 ; 0xb4000001 + 57d0: 286f2e34 stmdacs pc!, {r2, r4, r5, r9, sl, fp, sp}^ + 57d4: 74347472 ldrtvc r7, [r4], #-1138 + 57d8: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} + 57dc: 003a2961 eorseq r2, sl, r1, ror #18 + 57e0: 52414900 subpl r4, r1, #0 ; 0x0 + 57e4: 73734120 cmnvc r3, #8 ; 0x8 + 57e8: 6c626d65 stclvs 13, cr6, [r2], #-404 + 57ec: 56207265 strtpl r7, [r0], -r5, ror #4 + 57f0: 30332e35 eorscc r2, r3, r5, lsr lr + 57f4: 352e302e strcc r3, [lr, #-46]! + 57f8: 34373131 ldrtcc r3, [r7], #-305 + 57fc: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5800: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 5804: 4d524120 ldfmie f4, [r2, #-128] + 5808: 46492d00 strbmi r2, [r9], -r0, lsl #26 + 580c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5810: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5814: 352f646c strcc r6, [pc, #-1132]! ; 53b0 + 5818: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 581c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5820: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5824: 6d72612f ldfvse f6, [r2, #-188]! + 5828: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 582c: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5830: 33352d62 teqcc r5, #6272 ; 0x1880 + 5834: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 5838: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 583c: 756f2f62 strbvc r2, [pc, #-3938]! ; 48e2 + 5840: 74757074 ldrbtvc r7, [r5], #-116 + 5844: 6d72612f ldfvse f6, [r2, #-188]! + 5848: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 584c: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 5850: 442f7365 strtmi r7, [pc], #869 ; 5858 + 5854: 3462694c strbtcc r6, [r2], #-2380 + 5858: 636e692f cmnvs lr, #770048 ; 0xbc000 + 585c: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 5860: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5864: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5868: 352f646c strcc r6, [pc, #-1132]! ; 5404 + 586c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 5870: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5874: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5878: 6d72612f ldfvse f6, [r2, #-188]! + 587c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 5880: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5884: 33352d62 teqcc r5, #6272 ; 0x1880 + 5888: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 588c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 5890: 756f2f62 strbvc r2, [pc, #-3938]! ; 4936 + 5894: 74757074 ldrbtvc r7, [r5], #-116 + 5898: 6d72612f ldfvse f6, [r2, #-188]! + 589c: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 58a0: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 58a4: 442f7365 strtmi r7, [pc], #869 ; 58ac + 58a8: 3462694c strbtcc r6, [r2], #-2380 + 58ac: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 58b0: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 58b4: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 58b8: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 58bc: 352f646c strcc r6, [pc, #-1132]! ; 5458 + 58c0: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 58c4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 58c8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 58cc: 6d72612f ldfvse f6, [r2, #-188]! + 58d0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 58d4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 58d8: 33352d62 teqcc r5, #6272 ; 0x1880 + 58dc: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 58e0: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 58e4: 756f2f62 strbvc r2, [pc, #-3938]! ; 498a + 58e8: 74757074 ldrbtvc r7, [r5], #-116 + 58ec: 6d72612f ldfvse f6, [r2, #-188]! + 58f0: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 58f4: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 58f8: 612f7365 teqvs pc, r5, ror #6 + 58fc: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 5900: 6e692f62 cdpvs 15, 6, cr2, cr9, cr2, {3} + 5904: 64756c63 ldrbtvs r6, [r5], #-3171 + 5908: 492d2065 pushmi {r0, r2, r5, r6, sp} + 590c: 612f3a46 teqvs pc, r6, asr #20 + 5910: 75626d72 strbvc r6, [r2, #-3442]! + 5914: 2f646c69 svccs 0x00646c69 + 5918: 74303335 ldrtvc r3, [r0], #-821 + 591c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5920: 6f697469 svcvs 0x00697469 + 5924: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 5928: 31315f6d teqcc r1, sp, ror #30 + 592c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 5930: 352d6269 strcc r6, [sp, #-617]! + 5934: 612f3033 teqvs pc, r3, lsr r0 + 5938: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 593c: 6f2f6269 svcvs 0x002f6269 + 5940: 75707475 ldrbvc r7, [r0, #-1141]! + 5944: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 5948: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 594c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5950: 2f736569 svccs 0x00736569 + 5954: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 5958: 732f6269 teqvc pc, #-1879048186 ; 0x90000006 + 595c: 2f326372 svccs 0x00326372 + 5960: 6c636e69 stclvs 14, cr6, [r3], #-420 + 5964: 20656475 rsbcs r6, r5, r5, ror r4 + 5968: 3a46492d bcc 1197e24 + 596c: 6d72612f ldfvse f6, [r2, #-188]! + 5970: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 5974: 33352f64 teqcc r5, #400 ; 0x190 + 5978: 61727430 cmnvs r2, r0, lsr r4 + 597c: 7469736e strbtvc r7, [r9], #-878 + 5980: 2f6e6f69 svccs 0x006e6f69 + 5984: 5f6d7261 svcpl 0x006d7261 + 5988: 35393131 ldrcc r3, [r9, #-305]! + 598c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 5990: 3033352d eorscc r3, r3, sp, lsr #10 + 5994: 6d72612f ldfvse f6, [r2, #-188]! + 5998: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 599c: 706d742f rsbvc r7, sp, pc, lsr #8 + 59a0: 6975622f ldmdbvs r5!, {r0, r1, r2, r3, r5, r9, sp, lr}^ + 59a4: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 59a8: 2d2d2062 stccs 0, cr2, [sp, #-392]! + 59ac: 20757063 rsbscs r7, r5, r3, rrx + 59b0: 394d5241 stmdbcc sp, {r0, r6, r9, ip, lr}^ + 59b4: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 59b8: 652d2d20 strvs r2, [sp, #-3360]! + 59bc: 6169646e cmnvs r9, lr, ror #8 + 59c0: 696c206e stmdbvs ip!, {r1, r2, r3, r5, r6, sp}^ + 59c4: 656c7474 strbvs r7, [ip, #-1140]! + 59c8: 5f442d20 svcpl 0x00442d20 + 59cc: 464c455f undefined + 59d0: 4955425f ldmdbmi r5, {r0, r1, r2, r3, r4, r6, r9, lr}^ + 59d4: 5f5f444c svcpl 0x005f444c + 59d8: 5f442d20 svcpl 0x00442d20 + 59dc: 4d52415f ldfmie f4, [r2, #-380] + 59e0: 42494c5f submi r4, r9, #24320 ; 0x5f00 + 59e4: 59524152 ldmdbpl r2, {r1, r4, r6, r8, lr}^ + 59e8: 2d205f5f stccs 15, cr5, [r0, #-380]! + 59ec: 43455f44 movtmi r5, #24388 ; 0x5f44 + 59f0: 53554c50 cmppl r5, #20480 ; 0x5000 + 59f4: 53554c50 cmppl r5, #20480 ; 0x5000 + 59f8: 20532d20 subscs r2, r3, r0, lsr #26 + 59fc: 2073772d rsbscs r7, r3, sp, lsr #14 + 5a00: 5f5f442d svcpl 0x005f442d + 5a04: 5f54504f svcpl 0x0054504f + 5a08: 4944454d stmdbmi r4, {r0, r2, r3, r6, r8, sl, lr}^ + 5a0c: 5f5f4d55 svcpl 0x005f4d55 + 5a10: 2f3a4620 svccs 0x003a4620 + 5a14: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 5a18: 646c6975 strbtvs r6, [ip], #-2421 + 5a1c: 3033352f eorscc r3, r3, pc, lsr #10 + 5a20: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 5a24: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 5a28: 612f6e6f teqvs pc, pc, ror #28 + 5a2c: 315f6d72 cmpcc pc, r2, ror sp + 5a30: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 5a34: 2d62696c stclcs 9, cr6, [r2, #-432]! + 5a38: 2f303335 svccs 0x00303335 + 5a3c: 2f6d7261 svccs 0x006d7261 + 5a40: 2f62696c svccs 0x0062696c + 5a44: 7074756f rsbsvc r7, r4, pc, ror #10 + 5a48: 612f7475 teqvs pc, r5, ror r4 + 5a4c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 5a50: 61726269 cmnvs r2, r9, ror #4 + 5a54: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 5a58: 6d72612f ldfvse f6, [r2, #-188]! + 5a5c: 5c62696c stclpl 9, cr6, [r2], #-432 + 5a60: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 5a64: 6d72612f ldfvse f6, [r2, #-188]! + 5a68: 6474732f ldrbtvs r7, [r4], #-815 + 5a6c: 42412f63 submi r2, r1, #396 ; 0x18c + 5a70: 6d656d49 stclvs 13, cr6, [r5, #-292]! + 5a74: 34726c63 ldrbtcc r6, [r2], #-3171 + 5a78: 2d20732e stccs 3, cr7, [r0, #-184]! + 5a7c: 3a46206f bcc 118dc40 + 5a80: 6d72615c ldfvse f6, [r2, #-368]! + 5a84: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 5a88: 33355c64 teqcc r5, #25600 ; 0x6400 + 5a8c: 61727430 cmnvs r2, r0, lsr r4 + 5a90: 7469736e strbtvc r7, [r9], #-878 + 5a94: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 5a98: 5f6d7261 svcpl 0x006d7261 + 5a9c: 35393131 ldrcc r3, [r9, #-305]! + 5aa0: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 5aa4: 3033352d eorscc r3, r3, sp, lsr #10 + 5aa8: 6d72615c ldfvse f6, [r2, #-368]! + 5aac: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 5ab0: 706d745c rsbvc r7, sp, ip, asr r4 + 5ab4: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 5ab8: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 5abc: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 5ac0: 74725c6a ldrbtvc r5, [r2], #-3178 + 5ac4: 615f7434 cmpvs pc, r4, lsr r4 + 5ac8: 42415c6c submi r5, r1, #27648 ; 0x6c00 + 5acc: 6d656d49 stclvs 13, cr6, [r5, #-292]! + 5ad0: 34726c63 ldrbtcc r6, [r2], #-3171 + 5ad4: 00006f2e andeq r6, r0, lr, lsr #30 + 5ad8: 6d494241 sfmvs f4, 2, [r9, #-260] + 5adc: 70636d65 rsbvc r6, r3, r5, ror #26 + 5ae0: 286f2e79 stmdacs pc!, {r0, r3, r4, r5, r6, r9, sl, fp, sp}^ + 5ae4: 74347472 ldrtvc r7, [r4], #-1138 + 5ae8: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} + 5aec: 003a2961 eorseq r2, sl, r1, ror #18 + 5af0: 52414900 subpl r4, r1, #0 ; 0x0 + 5af4: 73734120 cmnvc r3, #8 ; 0x8 + 5af8: 6c626d65 stclvs 13, cr6, [r2], #-404 + 5afc: 56207265 strtpl r7, [r0], -r5, ror #4 + 5b00: 30332e35 eorscc r2, r3, r5, lsr lr + 5b04: 352e302e strcc r3, [lr, #-46]! + 5b08: 34373131 ldrtcc r3, [r7], #-305 + 5b0c: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5b10: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 5b14: 4d524120 ldfmie f4, [r2, #-128] + 5b18: 46492d00 strbmi r2, [r9], -r0, lsl #26 + 5b1c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5b20: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5b24: 352f646c strcc r6, [pc, #-1132]! ; 56c0 + 5b28: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 5b2c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5b30: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5b34: 6d72612f ldfvse f6, [r2, #-188]! + 5b38: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 5b3c: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5b40: 33352d62 teqcc r5, #6272 ; 0x1880 + 5b44: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 5b48: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 5b4c: 756f2f62 strbvc r2, [pc, #-3938]! ; 4bf2 + 5b50: 74757074 ldrbtvc r7, [r5], #-116 + 5b54: 6d72612f ldfvse f6, [r2, #-188]! + 5b58: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 5b5c: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 5b60: 442f7365 strtmi r7, [pc], #869 ; 5b68 + 5b64: 3462694c strbtcc r6, [r2], #-2380 + 5b68: 636e692f cmnvs lr, #770048 ; 0xbc000 + 5b6c: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 5b70: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5b74: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5b78: 352f646c strcc r6, [pc, #-1132]! ; 5714 + 5b7c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 5b80: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5b84: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5b88: 6d72612f ldfvse f6, [r2, #-188]! + 5b8c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 5b90: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5b94: 33352d62 teqcc r5, #6272 ; 0x1880 + 5b98: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 5b9c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 5ba0: 756f2f62 strbvc r2, [pc, #-3938]! ; 4c46 + 5ba4: 74757074 ldrbtvc r7, [r5], #-116 + 5ba8: 6d72612f ldfvse f6, [r2, #-188]! + 5bac: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 5bb0: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 5bb4: 442f7365 strtmi r7, [pc], #869 ; 5bbc + 5bb8: 3462694c strbtcc r6, [r2], #-2380 + 5bbc: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 5bc0: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 5bc4: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5bc8: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5bcc: 352f646c strcc r6, [pc, #-1132]! ; 5768 + 5bd0: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 5bd4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5bd8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5bdc: 6d72612f ldfvse f6, [r2, #-188]! + 5be0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 5be4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5be8: 33352d62 teqcc r5, #6272 ; 0x1880 + 5bec: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 5bf0: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 5bf4: 756f2f62 strbvc r2, [pc, #-3938]! ; 4c9a + 5bf8: 74757074 ldrbtvc r7, [r5], #-116 + 5bfc: 6d72612f ldfvse f6, [r2, #-188]! + 5c00: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 5c04: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 5c08: 612f7365 teqvs pc, r5, ror #6 + 5c0c: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 5c10: 6e692f62 cdpvs 15, 6, cr2, cr9, cr2, {3} + 5c14: 64756c63 ldrbtvs r6, [r5], #-3171 + 5c18: 492d2065 pushmi {r0, r2, r5, r6, sp} + 5c1c: 612f3a46 teqvs pc, r6, asr #20 + 5c20: 75626d72 strbvc r6, [r2, #-3442]! + 5c24: 2f646c69 svccs 0x00646c69 + 5c28: 74303335 ldrtvc r3, [r0], #-821 + 5c2c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5c30: 6f697469 svcvs 0x00697469 + 5c34: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 5c38: 31315f6d teqcc r1, sp, ror #30 + 5c3c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 5c40: 352d6269 strcc r6, [sp, #-617]! + 5c44: 612f3033 teqvs pc, r3, lsr r0 + 5c48: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 5c4c: 6f2f6269 svcvs 0x002f6269 + 5c50: 75707475 ldrbvc r7, [r0, #-1141]! + 5c54: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 5c58: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5c5c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5c60: 2f736569 svccs 0x00736569 + 5c64: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 5c68: 732f6269 teqvc pc, #-1879048186 ; 0x90000006 + 5c6c: 2f326372 svccs 0x00326372 + 5c70: 6c636e69 stclvs 14, cr6, [r3], #-420 + 5c74: 20656475 rsbcs r6, r5, r5, ror r4 + 5c78: 3a46492d bcc 1198134 + 5c7c: 6d72612f ldfvse f6, [r2, #-188]! + 5c80: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 5c84: 33352f64 teqcc r5, #400 ; 0x190 + 5c88: 61727430 cmnvs r2, r0, lsr r4 + 5c8c: 7469736e strbtvc r7, [r9], #-878 + 5c90: 2f6e6f69 svccs 0x006e6f69 + 5c94: 5f6d7261 svcpl 0x006d7261 + 5c98: 35393131 ldrcc r3, [r9, #-305]! + 5c9c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 5ca0: 3033352d eorscc r3, r3, sp, lsr #10 + 5ca4: 6d72612f ldfvse f6, [r2, #-188]! + 5ca8: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 5cac: 706d742f rsbvc r7, sp, pc, lsr #8 + 5cb0: 6975622f ldmdbvs r5!, {r0, r1, r2, r3, r5, r9, sp, lr}^ + 5cb4: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 5cb8: 2d2d2062 stccs 0, cr2, [sp, #-392]! + 5cbc: 20757063 rsbscs r7, r5, r3, rrx + 5cc0: 394d5241 stmdbcc sp, {r0, r6, r9, ip, lr}^ + 5cc4: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 5cc8: 652d2d20 strvs r2, [sp, #-3360]! + 5ccc: 6169646e cmnvs r9, lr, ror #8 + 5cd0: 696c206e stmdbvs ip!, {r1, r2, r3, r5, r6, sp}^ + 5cd4: 656c7474 strbvs r7, [ip, #-1140]! + 5cd8: 5f442d20 svcpl 0x00442d20 + 5cdc: 464c455f undefined + 5ce0: 4955425f ldmdbmi r5, {r0, r1, r2, r3, r4, r6, r9, lr}^ + 5ce4: 5f5f444c svcpl 0x005f444c + 5ce8: 5f442d20 svcpl 0x00442d20 + 5cec: 4d52415f ldfmie f4, [r2, #-380] + 5cf0: 42494c5f submi r4, r9, #24320 ; 0x5f00 + 5cf4: 59524152 ldmdbpl r2, {r1, r4, r6, r8, lr}^ + 5cf8: 2d205f5f stccs 15, cr5, [r0, #-380]! + 5cfc: 43455f44 movtmi r5, #24388 ; 0x5f44 + 5d00: 53554c50 cmppl r5, #20480 ; 0x5000 + 5d04: 53554c50 cmppl r5, #20480 ; 0x5000 + 5d08: 20532d20 subscs r2, r3, r0, lsr #26 + 5d0c: 2073772d rsbscs r7, r3, sp, lsr #14 + 5d10: 5f5f442d svcpl 0x005f442d + 5d14: 5f54504f svcpl 0x0054504f + 5d18: 4944454d stmdbmi r4, {r0, r2, r3, r6, r8, sl, lr}^ + 5d1c: 5f5f4d55 svcpl 0x005f4d55 + 5d20: 2f3a4620 svccs 0x003a4620 + 5d24: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 5d28: 646c6975 strbtvs r6, [ip], #-2421 + 5d2c: 3033352f eorscc r3, r3, pc, lsr #10 + 5d30: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 5d34: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 5d38: 612f6e6f teqvs pc, pc, ror #28 + 5d3c: 315f6d72 cmpcc pc, r2, ror sp + 5d40: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 5d44: 2d62696c stclcs 9, cr6, [r2, #-432]! + 5d48: 2f303335 svccs 0x00303335 + 5d4c: 2f6d7261 svccs 0x006d7261 + 5d50: 2f62696c svccs 0x0062696c + 5d54: 7074756f rsbsvc r7, r4, pc, ror #10 + 5d58: 612f7475 teqvs pc, r5, ror r4 + 5d5c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 5d60: 61726269 cmnvs r2, r9, ror #4 + 5d64: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 5d68: 6d72612f ldfvse f6, [r2, #-188]! + 5d6c: 5c62696c stclpl 9, cr6, [r2], #-432 + 5d70: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 5d74: 6d72612f ldfvse f6, [r2, #-188]! + 5d78: 6474732f ldrbtvs r7, [r4], #-815 + 5d7c: 42412f63 submi r2, r1, #396 ; 0x18c + 5d80: 6d656d49 stclvs 13, cr6, [r5, #-292]! + 5d84: 2e797063 cdpcs 0, 7, cr7, cr9, cr3, {3} + 5d88: 6f2d2073 svcvs 0x002d2073 + 5d8c: 5c3a4620 ldcpl 6, cr4, [sl], #-128 + 5d90: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 5d94: 646c6975 strbtvs r6, [ip], #-2421 + 5d98: 3033355c eorscc r3, r3, ip, asr r5 + 5d9c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 5da0: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 5da4: 615c6e6f cmpvs ip, pc, ror #28 + 5da8: 315f6d72 cmpcc pc, r2, ror sp + 5dac: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 5db0: 2d62696c stclcs 9, cr6, [r2, #-432]! + 5db4: 5c303335 ldcpl 3, cr3, [r0], #-212 + 5db8: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 5dbc: 5c62696c stclpl 9, cr6, [r2], #-432 + 5dc0: 5c706d74 ldclpl 13, cr6, [r0], #-464 + 5dc4: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 5dc8: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 5dcc: 6a626f5c bvs 18a1b44 + 5dd0: 3474725c ldrbtcc r7, [r4], #-604 + 5dd4: 6c615f74 stclvs 15, cr5, [r1], #-464 + 5dd8: 4942415c stmdbmi r2, {r2, r3, r4, r6, r8, lr}^ + 5ddc: 636d656d cmnvs sp, #457179136 ; 0x1b400000 + 5de0: 6f2e7970 svcvs 0x002e7970 + 5de4: 61640000 cmnvs r4, r0 + 5de8: 695f6174 ldmdbvs pc, {r2, r4, r5, r6, r8, sp, lr}^ + 5dec: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 5df0: 72286f2e eorvc r6, r8, #184 ; 0xb8 + 5df4: 5f743474 svcpl 0x00743474 + 5df8: 612e6c61 teqvs lr, r1, ror #24 + 5dfc: 00003a29 andeq r3, r0, r9, lsr #20 + 5e00: 20524149 subscs r4, r2, r9, asr #2 + 5e04: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 5e08: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 5e0c: 43202b2b teqmi r0, #44032 ; 0xac00 + 5e10: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 5e14: 2072656c rsbscs r6, r2, ip, ror #10 + 5e18: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 5e1c: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 5e20: 37313135 undefined + 5e24: 33572f34 cmpcc r7, #208 ; 0xd0 + 5e28: 6f662032 svcvs 0x00662032 + 5e2c: 52412072 subpl r2, r1, #114 ; 0x72 + 5e30: 492d004d pushmi {r0, r2, r3, r6} + 5e34: 612f3a46 teqvs pc, r6, asr #20 + 5e38: 75626d72 strbvc r6, [r2, #-3442]! + 5e3c: 2f646c69 svccs 0x00646c69 + 5e40: 74303335 ldrtvc r3, [r0], #-821 + 5e44: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5e48: 6f697469 svcvs 0x00697469 + 5e4c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 5e50: 31315f6d teqcc r1, sp, ror #30 + 5e54: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 5e58: 352d6269 strcc r6, [sp, #-617]! + 5e5c: 612f3033 teqvs pc, r3, lsr r0 + 5e60: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 5e64: 6f2f6269 svcvs 0x002f6269 + 5e68: 75707475 ldrbvc r7, [r0, #-1141]! + 5e6c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 5e70: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5e74: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5e78: 2f736569 svccs 0x00736569 + 5e7c: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 5e80: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} + 5e84: 492d2063 pushmi {r0, r1, r5, r6, sp} + 5e88: 612f3a46 teqvs pc, r6, asr #20 + 5e8c: 75626d72 strbvc r6, [r2, #-3442]! + 5e90: 2f646c69 svccs 0x00646c69 + 5e94: 74303335 ldrtvc r3, [r0], #-821 + 5e98: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5e9c: 6f697469 svcvs 0x00697469 + 5ea0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 5ea4: 31315f6d teqcc r1, sp, ror #30 + 5ea8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 5eac: 352d6269 strcc r6, [sp, #-617]! + 5eb0: 612f3033 teqvs pc, r3, lsr r0 + 5eb4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 5eb8: 6f2f6269 svcvs 0x002f6269 + 5ebc: 75707475 ldrbvc r7, [r0, #-1141]! + 5ec0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 5ec4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5ec8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5ecc: 2f736569 svccs 0x00736569 + 5ed0: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 5ed4: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 + 5ed8: 492d2063 pushmi {r0, r1, r5, r6, sp} + 5edc: 612f3a46 teqvs pc, r6, asr #20 + 5ee0: 75626d72 strbvc r6, [r2, #-3442]! + 5ee4: 2f646c69 svccs 0x00646c69 + 5ee8: 74303335 ldrtvc r3, [r0], #-821 + 5eec: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5ef0: 6f697469 svcvs 0x00697469 + 5ef4: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 5ef8: 31315f6d teqcc r1, sp, ror #30 + 5efc: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 5f00: 352d6269 strcc r6, [sp, #-617]! + 5f04: 612f3033 teqvs pc, r3, lsr r0 + 5f08: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 5f0c: 6f2f6269 svcvs 0x002f6269 + 5f10: 75707475 ldrbvc r7, [r0, #-1141]! + 5f14: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 5f18: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5f1c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5f20: 2f736569 svccs 0x00736569 + 5f24: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 5f28: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} + 5f2c: 756c636e strbvc r6, [ip, #-878]! + 5f30: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 5f34: 2f3a4649 svccs 0x003a4649 + 5f38: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 5f3c: 646c6975 strbtvs r6, [ip], #-2421 + 5f40: 3033352f eorscc r3, r3, pc, lsr #10 + 5f44: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 5f48: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 5f4c: 612f6e6f teqvs pc, pc, ror #28 + 5f50: 315f6d72 cmpcc pc, r2, ror sp + 5f54: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 5f58: 2d62696c stclcs 9, cr6, [r2, #-432]! + 5f5c: 2f303335 svccs 0x00303335 + 5f60: 2f6d7261 svccs 0x006d7261 + 5f64: 2f62696c svccs 0x0062696c + 5f68: 7074756f rsbsvc r7, r4, pc, ror #10 + 5f6c: 612f7475 teqvs pc, r5, ror r4 + 5f70: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 5f74: 61726269 cmnvs r2, r9, ror #4 + 5f78: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 5f7c: 6d72612f ldfvse f6, [r2, #-188]! + 5f80: 2f62696c svccs 0x0062696c + 5f84: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 5f88: 636e692f cmnvs lr, #770048 ; 0xbc000 + 5f8c: 6564756c strbvs r7, [r4, #-1388]! + 5f90: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 5f94: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5f98: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5f9c: 352f646c strcc r6, [pc, #-1132]! ; 5b38 + 5fa0: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 5fa4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5fa8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5fac: 6d72612f ldfvse f6, [r2, #-188]! + 5fb0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 5fb4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5fb8: 33352d62 teqcc r5, #6272 ; 0x1880 + 5fbc: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 5fc0: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 5fc4: 6d742f62 ldclvs 15, cr2, [r4, #-392]! + 5fc8: 75622f70 strbvc r2, [r2, #-3952]! + 5fcc: 6c646c69 stclvs 12, cr6, [r4], #-420 + 5fd0: 2d206269 sfmcs f6, 4, [r0, #-420]! + 5fd4: 7570632d ldrbvc r6, [r0, #-813]! + 5fd8: 4d524120 ldfmie f4, [r2, #-128] + 5fdc: 4d445439 cfstrdmi mvd5, [r4, #-228] + 5fe0: 2d2d2049 stccs 0, cr2, [sp, #-292]! + 5fe4: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 5fe8: 6c206e61 stcvs 14, cr6, [r0], #-388 + 5fec: 6c747469 cfldrdvs mvd7, [r4], #-420 + 5ff0: 442d2065 strtmi r2, [sp], #-101 + 5ff4: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 + 5ff8: 55425f46 strbpl r5, [r2, #-3910] + 5ffc: 5f444c49 svcpl 0x00444c49 + 6000: 442d205f strtmi r2, [sp], #-95 + 6004: 52415f5f subpl r5, r1, #380 ; 0x17c + 6008: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ + 600c: 52415242 subpl r5, r1, #536870916 ; 0x20000004 + 6010: 205f5f59 subscs r5, pc, r9, asr pc + 6014: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 + 6018: 2d2d206d stccs 0, cr2, [sp, #-436]! + 601c: 65746e69 ldrbvs r6, [r4, #-3689]! + 6020: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 6024: 4f2d206b svcmi 0x002d206b + 6028: 2d2d2068 stccs 0, cr2, [sp, #-416]! + 602c: 656c6973 strbvs r6, [ip, #-2419]! + 6030: 2d20746e cfstrscs mvf7, [r0, #-440]! + 6034: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 + 6038: 676e696e strbvs r6, [lr, -lr, ror #18]! + 603c: 72615f73 rsbvc r5, r1, #460 ; 0x1cc + 6040: 72655f65 rsbvc r5, r5, #404 ; 0x194 + 6044: 73726f72 cmnvc r2, #456 ; 0x1c8 + 6048: 732d2d20 teqvc sp, #2048 ; 0x800 + 604c: 63697274 cmnvs r9, #1073741831 ; 0x40000007 + 6050: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} + 6054: 2d206973 stccs 9, cr6, [r0, #-460]! + 6058: 6c6e6f2d stclvs 15, cr6, [lr], #-180 + 605c: 74735f79 ldrbtvc r5, [r3], #-3961 + 6060: 74756f64 ldrbtvc r6, [r5], #-3940 + 6064: 642d2d20 strtvs r2, [sp], #-3360 + 6068: 5f676169 svcpl 0x00676169 + 606c: 70707573 rsbsvc r7, r0, r3, ror r5 + 6070: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 6074: 306f473d rsbcc r4, pc, sp, lsr r7 + 6078: 2d203530 cfstr32cs mvfx3, [r0, #-192]! + 607c: 6169642d cmnvs r9, sp, lsr #8 + 6080: 75735f67 ldrbvc r5, [r3, #-3943]! + 6084: 65727070 ldrbvs r7, [r2, #-112]! + 6088: 503d7373 eorspl r7, sp, r3, ror r3 + 608c: 30353465 eorscc r3, r5, r5, ror #8 + 6090: 642d2d20 strtvs r2, [sp], #-3360 + 6094: 5f676169 svcpl 0x00676169 + 6098: 6f727265 svcvs 0x00727265 + 609c: 65503d72 ldrbvs r3, [r0, #-3442] + 60a0: 20333931 eorscs r3, r3, r1, lsr r9 + 60a4: 612f3a46 teqvs pc, r6, asr #20 + 60a8: 75626d72 strbvc r6, [r2, #-3442]! + 60ac: 2f646c69 svccs 0x00646c69 + 60b0: 74303335 ldrtvc r3, [r0], #-821 + 60b4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 60b8: 6f697469 svcvs 0x00697469 + 60bc: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 60c0: 31315f6d teqcc r1, sp, ror #30 + 60c4: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 60c8: 352d6269 strcc r6, [sp, #-617]! + 60cc: 612f3033 teqvs pc, r3, lsr r0 + 60d0: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 60d4: 6f2f6269 svcvs 0x002f6269 + 60d8: 75707475 ldrbvc r7, [r0, #-1141]! + 60dc: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 60e0: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 60e4: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 60e8: 2f736569 svccs 0x00736569 + 60ec: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 60f0: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 + 60f4: 2f326372 svccs 0x00326372 + 60f8: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! + 60fc: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} + 6100: 2f74696e svccs 0x0074696e + 6104: 61746164 cmnvs r4, r4, ror #2 + 6108: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 610c: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 6110: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 6114: 615c3a46 cmpvs ip, r6, asr #20 + 6118: 75626d72 strbvc r6, [r2, #-3442]! + 611c: 5c646c69 stclpl 12, cr6, [r4], #-420 + 6120: 74303335 ldrtvc r3, [r0], #-821 + 6124: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6128: 6f697469 svcvs 0x00697469 + 612c: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 6130: 31315f6d teqcc r1, sp, ror #30 + 6134: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 6138: 352d6269 strcc r6, [sp, #-617]! + 613c: 615c3033 cmpvs ip, r3, lsr r0 + 6140: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 6144: 745c6269 ldrbvc r6, [ip], #-617 + 6148: 625c706d subsvs r7, ip, #109 ; 0x6d + 614c: 646c6975 strbtvs r6, [ip], #-2421 + 6150: 5c62696c stclpl 9, cr6, [r2], #-432 + 6154: 5c6a626f sfmpl f6, 2, [sl], #-444 + 6158: 74347472 ldrtvc r7, [r4], #-1138 + 615c: 5c6c615f stfple f6, [ip], #-380 + 6160: 61746164 cmnvs r4, r4, ror #2 + 6164: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 6168: 6f2e3274 svcvs 0x002e3274 + 616c: 642d2d20 strtvs r2, [sp], #-3360 + 6170: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} + 6174: 636e6564 cmnvs lr, #419430400 ; 0x19000000 + 6178: 3d736569 cfldr64cc mvdx6, [r3, #-420]! + 617c: 3a462069 bcc 118e328 + 6180: 6d72615c ldfvse f6, [r2, #-368]! + 6184: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6188: 33355c64 teqcc r5, #25600 ; 0x6400 + 618c: 61727430 cmnvs r2, r0, lsr r4 + 6190: 7469736e strbtvc r7, [r9], #-878 + 6194: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 6198: 5f6d7261 svcpl 0x006d7261 + 619c: 35393131 ldrcc r3, [r9, #-305]! + 61a0: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 61a4: 3033352d eorscc r3, r3, sp, lsr #10 + 61a8: 6d72615c ldfvse f6, [r2, #-368]! + 61ac: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 61b0: 706d745c rsbvc r7, sp, ip, asr r4 + 61b4: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 61b8: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 61bc: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 61c0: 74725c6a ldrbtvc r5, [r2], #-3178 + 61c4: 615f7434 cmpvs pc, r4, lsr r4 + 61c8: 61645c6c cmnvs r4, ip, ror #24 + 61cc: 695f6174 ldmdbvs pc, {r2, r4, r5, r6, r8, sp, lr}^ + 61d0: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 61d4: 0000642e andeq r6, r0, lr, lsr #8 + 61d8: 6d494241 sfmvs f4, 2, [r9, #-260] + 61dc: 65736d65 ldrbvs r6, [r3, #-3429]! + 61e0: 2e383474 mrccs 4, 1, r3, cr8, cr4, {3} + 61e4: 7472286f ldrbtvc r2, [r2], #-2159 + 61e8: 615f7434 cmpvs pc, r4, lsr r4 + 61ec: 29612e6c stmdbcs r1!, {r2, r3, r5, r6, r9, sl, fp, sp}^ + 61f0: 4900003a stmdbmi r0, {r1, r3, r4, r5} + 61f4: 41205241 teqmi r0, r1, asr #4 + 61f8: 6d657373 stclvs 3, cr7, [r5, #-460]! + 61fc: 72656c62 rsbvc r6, r5, #25088 ; 0x6200 + 6200: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 6204: 302e3033 eorcc r3, lr, r3, lsr r0 + 6208: 3131352e teqcc r1, lr, lsr #10 + 620c: 572f3437 undefined + 6210: 66203233 undefined + 6214: 4120726f teqmi r0, pc, ror #4 + 6218: 2d004d52 stccs 13, cr4, [r0, #-328] + 621c: 2f3a4649 svccs 0x003a4649 + 6220: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6224: 646c6975 strbtvs r6, [ip], #-2421 + 6228: 3033352f eorscc r3, r3, pc, lsr #10 + 622c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6230: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6234: 612f6e6f teqvs pc, pc, ror #28 + 6238: 315f6d72 cmpcc pc, r2, ror sp + 623c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6240: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6244: 2f303335 svccs 0x00303335 + 6248: 2f6d7261 svccs 0x006d7261 + 624c: 2f62696c svccs 0x0062696c + 6250: 7074756f rsbsvc r7, r4, pc, ror #10 + 6254: 612f7475 teqvs pc, r5, ror r4 + 6258: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 625c: 61726269 cmnvs r2, r9, ror #4 + 6260: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6264: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 6268: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} + 626c: 2d20636e stccs 3, cr6, [r0, #-440]! + 6270: 2f3a4649 svccs 0x003a4649 + 6274: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6278: 646c6975 strbtvs r6, [ip], #-2421 + 627c: 3033352f eorscc r3, r3, pc, lsr #10 + 6280: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6284: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6288: 612f6e6f teqvs pc, pc, ror #28 + 628c: 315f6d72 cmpcc pc, r2, ror sp + 6290: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6294: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6298: 2f303335 svccs 0x00303335 + 629c: 2f6d7261 svccs 0x006d7261 + 62a0: 2f62696c svccs 0x0062696c + 62a4: 7074756f rsbsvc r7, r4, pc, ror #10 + 62a8: 612f7475 teqvs pc, r5, ror r4 + 62ac: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 62b0: 61726269 cmnvs r2, r9, ror #4 + 62b4: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 62b8: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 62bc: 732f3462 teqvc pc, #1644167168 ; 0x62000000 + 62c0: 2d206372 stccs 3, cr6, [r0, #-456]! + 62c4: 2f3a4649 svccs 0x003a4649 + 62c8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 62cc: 646c6975 strbtvs r6, [ip], #-2421 + 62d0: 3033352f eorscc r3, r3, pc, lsr #10 + 62d4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 62d8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 62dc: 612f6e6f teqvs pc, pc, ror #28 + 62e0: 315f6d72 cmpcc pc, r2, ror sp + 62e4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 62e8: 2d62696c stclcs 9, cr6, [r2, #-432]! + 62ec: 2f303335 svccs 0x00303335 + 62f0: 2f6d7261 svccs 0x006d7261 + 62f4: 2f62696c svccs 0x0062696c + 62f8: 7074756f rsbsvc r7, r4, pc, ror #10 + 62fc: 612f7475 teqvs pc, r5, ror r4 + 6300: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6304: 61726269 cmnvs r2, r9, ror #4 + 6308: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 630c: 6d72612f ldfvse f6, [r2, #-188]! + 6310: 2f62696c svccs 0x0062696c + 6314: 6c636e69 stclvs 14, cr6, [r3], #-420 + 6318: 20656475 rsbcs r6, r5, r5, ror r4 + 631c: 3a46492d bcc 11987d8 + 6320: 6d72612f ldfvse f6, [r2, #-188]! + 6324: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6328: 33352f64 teqcc r5, #400 ; 0x190 + 632c: 61727430 cmnvs r2, r0, lsr r4 + 6330: 7469736e strbtvc r7, [r9], #-878 + 6334: 2f6e6f69 svccs 0x006e6f69 + 6338: 5f6d7261 svcpl 0x006d7261 + 633c: 35393131 ldrcc r3, [r9, #-305]! + 6340: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6344: 3033352d eorscc r3, r3, sp, lsr #10 + 6348: 6d72612f ldfvse f6, [r2, #-188]! + 634c: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 6350: 74756f2f ldrbtvc r6, [r5], #-3887 + 6354: 2f747570 svccs 0x00747570 + 6358: 5f6d7261 svcpl 0x006d7261 + 635c: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 6360: 65697261 strbvs r7, [r9, #-609]! + 6364: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 6368: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 636c: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 6370: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} + 6374: 64756c63 ldrbtvs r6, [r5], #-3171 + 6378: 492d2065 pushmi {r0, r2, r5, r6, sp} + 637c: 612f3a46 teqvs pc, r6, asr #20 + 6380: 75626d72 strbvc r6, [r2, #-3442]! + 6384: 2f646c69 svccs 0x00646c69 + 6388: 74303335 ldrtvc r3, [r0], #-821 + 638c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6390: 6f697469 svcvs 0x00697469 + 6394: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 6398: 31315f6d teqcc r1, sp, ror #30 + 639c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 63a0: 352d6269 strcc r6, [sp, #-617]! + 63a4: 612f3033 teqvs pc, r3, lsr r0 + 63a8: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 63ac: 742f6269 strtvc r6, [pc], #617 ; 63b4 + 63b0: 622f706d eorvs r7, pc, #109 ; 0x6d + 63b4: 646c6975 strbtvs r6, [ip], #-2421 + 63b8: 2062696c rsbcs r6, r2, ip, ror #18 + 63bc: 70632d2d rsbvc r2, r3, sp, lsr #26 + 63c0: 52412075 subpl r2, r1, #117 ; 0x75 + 63c4: 4454394d ldrbmi r3, [r4], #-2381 + 63c8: 2d20494d stccs 9, cr4, [r0, #-308]! + 63cc: 646e652d strbtvs r6, [lr], #-1325 + 63d0: 206e6169 rsbcs r6, lr, r9, ror #2 + 63d4: 7474696c ldrbtvc r6, [r4], #-2412 + 63d8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 63dc: 455f5f44 ldrbmi r5, [pc, #-3908] ; 54a0 + 63e0: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 + 63e4: 444c4955 strbmi r4, [ip], #-2389 + 63e8: 2d205f5f stccs 15, cr5, [r0, #-380]! + 63ec: 415f5f44 cmpmi pc, r4, asr #30 + 63f0: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 + 63f4: 41524249 cmpmi r2, r9, asr #4 + 63f8: 5f5f5952 svcpl 0x005f5952 + 63fc: 5f442d20 svcpl 0x00442d20 + 6400: 4c504345 mrrcmi 3, 4, r4, r0, cr5 + 6404: 4c505355 mrrcmi 3, 5, r5, r0, cr5 + 6408: 2d205355 stccs 3, cr5, [r0, #-340]! + 640c: 772d2053 undefined + 6410: 442d2073 strtmi r2, [sp], #-115 + 6414: 504f5f5f subpl r5, pc, pc, asr pc + 6418: 454d5f54 strbmi r5, [sp, #-3924] + 641c: 4d554944 ldclmi 9, cr4, [r5, #-272] + 6420: 46205f5f qsubaddxmi r5, r0, pc + 6424: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 6428: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 642c: 352f646c strcc r6, [pc, #-1132]! ; 5fc8 + 6430: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 6434: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 6438: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 643c: 6d72612f ldfvse f6, [r2, #-188]! + 6440: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 6444: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 6448: 33352d62 teqcc r5, #6272 ; 0x1880 + 644c: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 6450: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 6454: 756f2f62 strbvc r2, [pc, #-3938]! ; 54fa + 6458: 74757074 ldrbtvc r7, [r5], #-116 + 645c: 6d72612f ldfvse f6, [r2, #-188]! + 6460: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 6464: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 6468: 612f7365 teqvs pc, r5, ror #6 + 646c: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 6470: 72735c62 rsbsvc r5, r3, #25088 ; 0x6200 + 6474: 612f3263 teqvs pc, r3, ror #4 + 6478: 732f6d72 teqvc pc, #7296 ; 0x1c80 + 647c: 2f636474 svccs 0x00636474 + 6480: 6d494241 sfmvs f4, 2, [r9, #-260] + 6484: 65736d65 ldrbvs r6, [r3, #-3429]! + 6488: 2e383474 mrccs 4, 1, r3, cr8, cr4, {3} + 648c: 6f2d2073 svcvs 0x002d2073 + 6490: 5c3a4620 ldcpl 6, cr4, [sl], #-128 + 6494: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6498: 646c6975 strbtvs r6, [ip], #-2421 + 649c: 3033355c eorscc r3, r3, ip, asr r5 + 64a0: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 64a4: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 64a8: 615c6e6f cmpvs ip, pc, ror #28 + 64ac: 315f6d72 cmpcc pc, r2, ror sp + 64b0: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 64b4: 2d62696c stclcs 9, cr6, [r2, #-432]! + 64b8: 5c303335 ldcpl 3, cr3, [r0], #-212 + 64bc: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 64c0: 5c62696c stclpl 9, cr6, [r2], #-432 + 64c4: 5c706d74 ldclpl 13, cr6, [r0], #-464 + 64c8: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 64cc: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 64d0: 6a626f5c bvs 18a2248 + 64d4: 3474725c ldrbtcc r7, [r4], #-604 + 64d8: 6c615f74 stclvs 15, cr5, [r1], #-464 + 64dc: 4942415c stmdbmi r2, {r2, r3, r4, r6, r8, lr}^ + 64e0: 736d656d cmnvc sp, #457179136 ; 0x1b400000 + 64e4: 38347465 ldmdacc r4!, {r0, r2, r5, r6, sl, ip, sp, lr} + 64e8: 00006f2e andeq r6, r0, lr, lsr #30 + 64ec: 6f72657a svcvs 0x0072657a + 64f0: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 64f4: 6f2e3274 svcvs 0x002e3274 + 64f8: 34747228 ldrbtcc r7, [r4], #-552 + 64fc: 6c615f74 stclvs 15, cr5, [r1], #-464 + 6500: 3a29612e bcc a5e9c0 + 6504: 41490000 cmpmi r9, r0 + 6508: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 650c: 43204953 teqmi r0, #1359872 ; 0x14c000 + 6510: 2b2b432f blcs ad71d4 + 6514: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 6518: 656c6970 strbvs r6, [ip, #-2416]! + 651c: 35562072 ldrbcc r2, [r6, #-114] + 6520: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 6524: 31352e30 teqcc r5, r0, lsr lr + 6528: 2f343731 svccs 0x00343731 + 652c: 20323357 eorscs r3, r2, r7, asr r3 + 6530: 20726f66 rsbscs r6, r2, r6, ror #30 + 6534: 004d5241 subeq r5, sp, r1, asr #4 + 6538: 3a46492d bcc 11989f4 + 653c: 6d72612f ldfvse f6, [r2, #-188]! + 6540: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6544: 33352f64 teqcc r5, #400 ; 0x190 + 6548: 61727430 cmnvs r2, r0, lsr r4 + 654c: 7469736e strbtvc r7, [r9], #-878 + 6550: 2f6e6f69 svccs 0x006e6f69 + 6554: 5f6d7261 svcpl 0x006d7261 + 6558: 35393131 ldrcc r3, [r9, #-305]! + 655c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6560: 3033352d eorscc r3, r3, sp, lsr #10 + 6564: 6d72612f ldfvse f6, [r2, #-188]! + 6568: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 656c: 74756f2f ldrbtvc r6, [r5], #-3887 + 6570: 2f747570 svccs 0x00747570 + 6574: 5f6d7261 svcpl 0x006d7261 + 6578: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 657c: 65697261 strbvs r7, [r9, #-609]! + 6580: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 + 6584: 2f346269 svccs 0x00346269 + 6588: 20636e69 rsbcs r6, r3, r9, ror #28 + 658c: 3a46492d bcc 1198a48 + 6590: 6d72612f ldfvse f6, [r2, #-188]! + 6594: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6598: 33352f64 teqcc r5, #400 ; 0x190 + 659c: 61727430 cmnvs r2, r0, lsr r4 + 65a0: 7469736e strbtvc r7, [r9], #-878 + 65a4: 2f6e6f69 svccs 0x006e6f69 + 65a8: 5f6d7261 svcpl 0x006d7261 + 65ac: 35393131 ldrcc r3, [r9, #-305]! + 65b0: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 65b4: 3033352d eorscc r3, r3, sp, lsr #10 + 65b8: 6d72612f ldfvse f6, [r2, #-188]! + 65bc: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 65c0: 74756f2f ldrbtvc r6, [r5], #-3887 + 65c4: 2f747570 svccs 0x00747570 + 65c8: 5f6d7261 svcpl 0x006d7261 + 65cc: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 65d0: 65697261 strbvs r7, [r9, #-609]! + 65d4: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 + 65d8: 2f346269 svccs 0x00346269 + 65dc: 20637273 rsbcs r7, r3, r3, ror r2 + 65e0: 3a46492d bcc 1198a9c + 65e4: 6d72612f ldfvse f6, [r2, #-188]! + 65e8: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 65ec: 33352f64 teqcc r5, #400 ; 0x190 + 65f0: 61727430 cmnvs r2, r0, lsr r4 + 65f4: 7469736e strbtvc r7, [r9], #-878 + 65f8: 2f6e6f69 svccs 0x006e6f69 + 65fc: 5f6d7261 svcpl 0x006d7261 + 6600: 35393131 ldrcc r3, [r9, #-305]! + 6604: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6608: 3033352d eorscc r3, r3, sp, lsr #10 + 660c: 6d72612f ldfvse f6, [r2, #-188]! + 6610: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 6614: 74756f2f ldrbtvc r6, [r5], #-3887 + 6618: 2f747570 svccs 0x00747570 + 661c: 5f6d7261 svcpl 0x006d7261 + 6620: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 6624: 65697261 strbvs r7, [r9, #-609]! + 6628: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 662c: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 6630: 636e692f cmnvs lr, #770048 ; 0xbc000 + 6634: 6564756c strbvs r7, [r4, #-1388]! + 6638: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 663c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 6640: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 6644: 352f646c strcc r6, [pc, #-1132]! ; 61e0 + 6648: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 664c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 6650: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6654: 6d72612f ldfvse f6, [r2, #-188]! + 6658: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 665c: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 6660: 33352d62 teqcc r5, #6272 ; 0x1880 + 6664: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 6668: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 666c: 756f2f62 strbvc r2, [pc, #-3938]! ; 5712 + 6670: 74757074 ldrbtvc r7, [r5], #-116 + 6674: 6d72612f ldfvse f6, [r2, #-188]! + 6678: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 667c: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 6680: 612f7365 teqvs pc, r5, ror #6 + 6684: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 6688: 72732f62 rsbsvc r2, r3, #392 ; 0x188 + 668c: 692f3263 stmdbvs pc!, {r0, r1, r5, r6, r9, ip, sp} + 6690: 756c636e strbvc r6, [ip, #-878]! + 6694: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 6698: 2f3a4649 svccs 0x003a4649 + 669c: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 66a0: 646c6975 strbtvs r6, [ip], #-2421 + 66a4: 3033352f eorscc r3, r3, pc, lsr #10 + 66a8: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 66ac: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 66b0: 612f6e6f teqvs pc, pc, ror #28 + 66b4: 315f6d72 cmpcc pc, r2, ror sp + 66b8: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 66bc: 2d62696c stclcs 9, cr6, [r2, #-432]! + 66c0: 2f303335 svccs 0x00303335 + 66c4: 2f6d7261 svccs 0x006d7261 + 66c8: 2f62696c svccs 0x0062696c + 66cc: 2f706d74 svccs 0x00706d74 + 66d0: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 66d4: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 66d8: 632d2d20 teqvs sp, #2048 ; 0x800 + 66dc: 41207570 teqmi r0, r0, ror r5 + 66e0: 54394d52 ldrtpl r4, [r9], #-3410 + 66e4: 20494d44 subcs r4, r9, r4, asr #26 + 66e8: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} + 66ec: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} + 66f0: 74696c20 strbtvc r6, [r9], #-3104 + 66f4: 20656c74 rsbcs r6, r5, r4, ror ip + 66f8: 5f5f442d svcpl 0x005f442d + 66fc: 5f464c45 svcpl 0x00464c45 + 6700: 4c495542 cfstr64mi mvdx5, [r9], {66} + 6704: 205f5f44 subscs r5, pc, r4, asr #30 + 6708: 5f5f442d svcpl 0x005f442d + 670c: 5f4d5241 svcpl 0x004d5241 + 6710: 5242494c subpl r4, r2, #1245184 ; 0x130000 + 6714: 5f595241 svcpl 0x00595241 + 6718: 2d2d205f stccs 0, cr2, [sp, #-380]! + 671c: 206d7261 rsbcs r7, sp, r1, ror #4 + 6720: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 6724: 77726574 undefined + 6728: 206b726f rsbcs r7, fp, pc, ror #4 + 672c: 20684f2d rsbcs r4, r8, sp, lsr #30 + 6730: 69732d2d ldmdbvs r3!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 6734: 746e656c strbtvc r6, [lr], #-1388 + 6738: 772d2d20 strvc r2, [sp, -r0, lsr #26]! + 673c: 696e7261 stmdbvs lr!, {r0, r5, r6, r9, ip, sp, lr}^ + 6740: 5f73676e svcpl 0x0073676e + 6744: 5f657261 svcpl 0x00657261 + 6748: 6f727265 svcvs 0x00727265 + 674c: 2d207372 stccs 3, cr7, [r0, #-456]! + 6750: 7274732d rsbsvc r7, r4, #-1275068416 ; 0xb4000000 + 6754: 5f746369 svcpl 0x00746369 + 6758: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 675c: 6f2d2d20 svcvs 0x002d2d20 + 6760: 5f796c6e svcpl 0x00796c6e + 6764: 6f647473 svcvs 0x00647473 + 6768: 2d207475 cfstrscs mvf7, [r0, #-468]! + 676c: 6169642d cmnvs r9, sp, lsr #8 + 6770: 75735f67 ldrbvc r5, [r3, #-3943]! + 6774: 65727070 ldrbvs r7, [r2, #-112]! + 6778: 473d7373 undefined + 677c: 3530306f ldrcc r3, [r0, #-111]! + 6780: 642d2d20 strtvs r2, [sp], #-3360 + 6784: 5f676169 svcpl 0x00676169 + 6788: 70707573 rsbsvc r7, r0, r3, ror r5 + 678c: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 6790: 3465503d strbtcc r5, [r5], #-61 + 6794: 2d203035 stccs 0, cr3, [r0, #-212]! + 6798: 6169642d cmnvs r9, sp, lsr #8 + 679c: 72655f67 rsbvc r5, r5, #412 ; 0x19c + 67a0: 3d726f72 ldclcc 15, cr6, [r2, #-456]! + 67a4: 39316550 ldmdbcc r1!, {r4, r6, r8, sl, sp, lr} + 67a8: 3a462033 bcc 118e87c + 67ac: 6d72612f ldfvse f6, [r2, #-188]! + 67b0: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 67b4: 33352f64 teqcc r5, #400 ; 0x190 + 67b8: 61727430 cmnvs r2, r0, lsr r4 + 67bc: 7469736e strbtvc r7, [r9], #-878 + 67c0: 2f6e6f69 svccs 0x006e6f69 + 67c4: 5f6d7261 svcpl 0x006d7261 + 67c8: 35393131 ldrcc r3, [r9, #-305]! + 67cc: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 67d0: 3033352d eorscc r3, r3, sp, lsr #10 + 67d4: 6d72612f ldfvse f6, [r2, #-188]! + 67d8: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 67dc: 74756f2f ldrbtvc r6, [r5], #-3887 + 67e0: 2f747570 svccs 0x00747570 + 67e4: 5f6d7261 svcpl 0x006d7261 + 67e8: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 67ec: 65697261 strbvs r7, [r9, #-609]! + 67f0: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 67f4: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 67f8: 6372735c cmnvs r2, #1879048193 ; 0x70000001 + 67fc: 6f632f32 svcvs 0x00632f32 + 6800: 6e6f6d6d cdpvs 13, 6, cr6, cr15, cr13, {3} + 6804: 696e692f stmdbvs lr!, {r0, r1, r2, r3, r5, r8, fp, sp, lr}^ + 6808: 657a2f74 ldrbvs r2, [sl, #-3956]! + 680c: 695f6f72 ldmdbvs pc, {r1, r4, r5, r6, r8, r9, sl, fp, sp, lr}^ + 6810: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 6814: 2d20632e stccs 3, cr6, [r0, #-184]! + 6818: 3a46206f bcc 118e9dc + 681c: 6d72615c ldfvse f6, [r2, #-368]! + 6820: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6824: 33355c64 teqcc r5, #25600 ; 0x6400 + 6828: 61727430 cmnvs r2, r0, lsr r4 + 682c: 7469736e strbtvc r7, [r9], #-878 + 6830: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 6834: 5f6d7261 svcpl 0x006d7261 + 6838: 35393131 ldrcc r3, [r9, #-305]! + 683c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6840: 3033352d eorscc r3, r3, sp, lsr #10 + 6844: 6d72615c ldfvse f6, [r2, #-368]! + 6848: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 684c: 706d745c rsbvc r7, sp, ip, asr r4 + 6850: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 6854: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 6858: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 685c: 74725c6a ldrbtvc r5, [r2], #-3178 + 6860: 615f7434 cmpvs pc, r4, lsr r4 + 6864: 657a5c6c ldrbvs r5, [sl, #-3180]! + 6868: 695f6f72 ldmdbvs pc, {r1, r4, r5, r6, r8, r9, sl, fp, sp, lr}^ + 686c: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 6870: 2d206f2e stccs 15, cr6, [r0, #-184]! + 6874: 7065642d rsbvc r6, r5, sp, lsr #8 + 6878: 65646e65 strbvs r6, [r4, #-3685]! + 687c: 6569636e strbvs r6, [r9, #-878]! + 6880: 20693d73 rsbcs r3, r9, r3, ror sp + 6884: 615c3a46 cmpvs ip, r6, asr #20 + 6888: 75626d72 strbvc r6, [r2, #-3442]! + 688c: 5c646c69 stclpl 12, cr6, [r4], #-420 + 6890: 74303335 ldrtvc r3, [r0], #-821 + 6894: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6898: 6f697469 svcvs 0x00697469 + 689c: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 68a0: 31315f6d teqcc r1, sp, ror #30 + 68a4: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 68a8: 352d6269 strcc r6, [sp, #-617]! + 68ac: 615c3033 cmpvs ip, r3, lsr r0 + 68b0: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 68b4: 745c6269 ldrbvc r6, [ip], #-617 + 68b8: 625c706d subsvs r7, ip, #109 ; 0x6d + 68bc: 646c6975 strbtvs r6, [ip], #-2421 + 68c0: 5c62696c stclpl 9, cr6, [r2], #-432 + 68c4: 5c6a626f sfmpl f6, 2, [sl], #-444 + 68c8: 74347472 ldrtvc r7, [r4], #-1138 + 68cc: 5c6c615f stfple f6, [ip], #-380 + 68d0: 6f72657a svcvs 0x0072657a + 68d4: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 68d8: 642e3274 strtvs r3, [lr], #-628 + 68dc: 6f630000 svcvs 0x00630000 + 68e0: 695f7970 ldmdbvs pc, {r4, r5, r6, r8, fp, ip, sp, lr}^ + 68e4: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 68e8: 72286f2e eorvc r6, r8, #184 ; 0xb8 + 68ec: 5f743474 svcpl 0x00743474 + 68f0: 612e6c61 teqvs lr, r1, ror #24 + 68f4: 00003a29 andeq r3, r0, r9, lsr #20 + 68f8: 20524149 subscs r4, r2, r9, asr #2 + 68fc: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 6900: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 6904: 43202b2b teqmi r0, #44032 ; 0xac00 + 6908: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 690c: 2072656c rsbscs r6, r2, ip, ror #10 + 6910: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 6914: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 6918: 37313135 undefined + 691c: 33572f34 cmpcc r7, #208 ; 0xd0 + 6920: 6f662032 svcvs 0x00662032 + 6924: 52412072 subpl r2, r1, #114 ; 0x72 + 6928: 492d004d pushmi {r0, r2, r3, r6} + 692c: 612f3a46 teqvs pc, r6, asr #20 + 6930: 75626d72 strbvc r6, [r2, #-3442]! + 6934: 2f646c69 svccs 0x00646c69 + 6938: 74303335 ldrtvc r3, [r0], #-821 + 693c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6940: 6f697469 svcvs 0x00697469 + 6944: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 6948: 31315f6d teqcc r1, sp, ror #30 + 694c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 6950: 352d6269 strcc r6, [sp, #-617]! + 6954: 612f3033 teqvs pc, r3, lsr r0 + 6958: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 695c: 6f2f6269 svcvs 0x002f6269 + 6960: 75707475 ldrbvc r7, [r0, #-1141]! + 6964: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 6968: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 696c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 6970: 2f736569 svccs 0x00736569 + 6974: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 6978: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} + 697c: 492d2063 pushmi {r0, r1, r5, r6, sp} + 6980: 612f3a46 teqvs pc, r6, asr #20 + 6984: 75626d72 strbvc r6, [r2, #-3442]! + 6988: 2f646c69 svccs 0x00646c69 + 698c: 74303335 ldrtvc r3, [r0], #-821 + 6990: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6994: 6f697469 svcvs 0x00697469 + 6998: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 699c: 31315f6d teqcc r1, sp, ror #30 + 69a0: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 69a4: 352d6269 strcc r6, [sp, #-617]! + 69a8: 612f3033 teqvs pc, r3, lsr r0 + 69ac: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 69b0: 6f2f6269 svcvs 0x002f6269 + 69b4: 75707475 ldrbvc r7, [r0, #-1141]! + 69b8: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 69bc: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 69c0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 69c4: 2f736569 svccs 0x00736569 + 69c8: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 69cc: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 + 69d0: 492d2063 pushmi {r0, r1, r5, r6, sp} + 69d4: 612f3a46 teqvs pc, r6, asr #20 + 69d8: 75626d72 strbvc r6, [r2, #-3442]! + 69dc: 2f646c69 svccs 0x00646c69 + 69e0: 74303335 ldrtvc r3, [r0], #-821 + 69e4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 69e8: 6f697469 svcvs 0x00697469 + 69ec: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 69f0: 31315f6d teqcc r1, sp, ror #30 + 69f4: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 69f8: 352d6269 strcc r6, [sp, #-617]! + 69fc: 612f3033 teqvs pc, r3, lsr r0 + 6a00: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 6a04: 6f2f6269 svcvs 0x002f6269 + 6a08: 75707475 ldrbvc r7, [r0, #-1141]! + 6a0c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 6a10: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 6a14: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 6a18: 2f736569 svccs 0x00736569 + 6a1c: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 6a20: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} + 6a24: 756c636e strbvc r6, [ip, #-878]! + 6a28: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 6a2c: 2f3a4649 svccs 0x003a4649 + 6a30: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6a34: 646c6975 strbtvs r6, [ip], #-2421 + 6a38: 3033352f eorscc r3, r3, pc, lsr #10 + 6a3c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6a40: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6a44: 612f6e6f teqvs pc, pc, ror #28 + 6a48: 315f6d72 cmpcc pc, r2, ror sp + 6a4c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6a50: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6a54: 2f303335 svccs 0x00303335 + 6a58: 2f6d7261 svccs 0x006d7261 + 6a5c: 2f62696c svccs 0x0062696c + 6a60: 7074756f rsbsvc r7, r4, pc, ror #10 + 6a64: 612f7475 teqvs pc, r5, ror r4 + 6a68: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6a6c: 61726269 cmnvs r2, r9, ror #4 + 6a70: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6a74: 6d72612f ldfvse f6, [r2, #-188]! + 6a78: 2f62696c svccs 0x0062696c + 6a7c: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 6a80: 636e692f cmnvs lr, #770048 ; 0xbc000 + 6a84: 6564756c strbvs r7, [r4, #-1388]! + 6a88: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 6a8c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 6a90: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 6a94: 352f646c strcc r6, [pc, #-1132]! ; 6630 + 6a98: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 6a9c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 6aa0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6aa4: 6d72612f ldfvse f6, [r2, #-188]! + 6aa8: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 6aac: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 6ab0: 33352d62 teqcc r5, #6272 ; 0x1880 + 6ab4: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 6ab8: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 6abc: 6d742f62 ldclvs 15, cr2, [r4, #-392]! + 6ac0: 75622f70 strbvc r2, [r2, #-3952]! + 6ac4: 6c646c69 stclvs 12, cr6, [r4], #-420 + 6ac8: 2d206269 sfmcs f6, 4, [r0, #-420]! + 6acc: 7570632d ldrbvc r6, [r0, #-813]! + 6ad0: 4d524120 ldfmie f4, [r2, #-128] + 6ad4: 4d445439 cfstrdmi mvd5, [r4, #-228] + 6ad8: 2d2d2049 stccs 0, cr2, [sp, #-292]! + 6adc: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 6ae0: 6c206e61 stcvs 14, cr6, [r0], #-388 + 6ae4: 6c747469 cfldrdvs mvd7, [r4], #-420 + 6ae8: 442d2065 strtmi r2, [sp], #-101 + 6aec: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 + 6af0: 55425f46 strbpl r5, [r2, #-3910] + 6af4: 5f444c49 svcpl 0x00444c49 + 6af8: 442d205f strtmi r2, [sp], #-95 + 6afc: 52415f5f subpl r5, r1, #380 ; 0x17c + 6b00: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ + 6b04: 52415242 subpl r5, r1, #536870916 ; 0x20000004 + 6b08: 205f5f59 subscs r5, pc, r9, asr pc + 6b0c: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 + 6b10: 2d2d206d stccs 0, cr2, [sp, #-436]! + 6b14: 65746e69 ldrbvs r6, [r4, #-3689]! + 6b18: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 6b1c: 4f2d206b svcmi 0x002d206b + 6b20: 2d2d2068 stccs 0, cr2, [sp, #-416]! + 6b24: 656c6973 strbvs r6, [ip, #-2419]! + 6b28: 2d20746e cfstrscs mvf7, [r0, #-440]! + 6b2c: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 + 6b30: 676e696e strbvs r6, [lr, -lr, ror #18]! + 6b34: 72615f73 rsbvc r5, r1, #460 ; 0x1cc + 6b38: 72655f65 rsbvc r5, r5, #404 ; 0x194 + 6b3c: 73726f72 cmnvc r2, #456 ; 0x1c8 + 6b40: 732d2d20 teqvc sp, #2048 ; 0x800 + 6b44: 63697274 cmnvs r9, #1073741831 ; 0x40000007 + 6b48: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} + 6b4c: 2d206973 stccs 9, cr6, [r0, #-460]! + 6b50: 6c6e6f2d stclvs 15, cr6, [lr], #-180 + 6b54: 74735f79 ldrbtvc r5, [r3], #-3961 + 6b58: 74756f64 ldrbtvc r6, [r5], #-3940 + 6b5c: 642d2d20 strtvs r2, [sp], #-3360 + 6b60: 5f676169 svcpl 0x00676169 + 6b64: 70707573 rsbsvc r7, r0, r3, ror r5 + 6b68: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 6b6c: 306f473d rsbcc r4, pc, sp, lsr r7 + 6b70: 2d203530 cfstr32cs mvfx3, [r0, #-192]! + 6b74: 6169642d cmnvs r9, sp, lsr #8 + 6b78: 75735f67 ldrbvc r5, [r3, #-3943]! + 6b7c: 65727070 ldrbvs r7, [r2, #-112]! + 6b80: 503d7373 eorspl r7, sp, r3, ror r3 + 6b84: 30353465 eorscc r3, r5, r5, ror #8 + 6b88: 642d2d20 strtvs r2, [sp], #-3360 + 6b8c: 5f676169 svcpl 0x00676169 + 6b90: 6f727265 svcvs 0x00727265 + 6b94: 65503d72 ldrbvs r3, [r0, #-3442] + 6b98: 20333931 eorscs r3, r3, r1, lsr r9 + 6b9c: 612f3a46 teqvs pc, r6, asr #20 + 6ba0: 75626d72 strbvc r6, [r2, #-3442]! + 6ba4: 2f646c69 svccs 0x00646c69 + 6ba8: 74303335 ldrtvc r3, [r0], #-821 + 6bac: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6bb0: 6f697469 svcvs 0x00697469 + 6bb4: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 6bb8: 31315f6d teqcc r1, sp, ror #30 + 6bbc: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 6bc0: 352d6269 strcc r6, [sp, #-617]! + 6bc4: 612f3033 teqvs pc, r3, lsr r0 + 6bc8: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 6bcc: 6f2f6269 svcvs 0x002f6269 + 6bd0: 75707475 ldrbvc r7, [r0, #-1141]! + 6bd4: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 6bd8: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 6bdc: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 6be0: 2f736569 svccs 0x00736569 + 6be4: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 6be8: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 + 6bec: 2f326372 svccs 0x00326372 + 6bf0: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! + 6bf4: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} + 6bf8: 2f74696e svccs 0x0074696e + 6bfc: 79706f63 ldmdbvc r0!, {r0, r1, r5, r6, r8, r9, sl, fp, sp, lr}^ + 6c00: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 6c04: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 6c08: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 6c0c: 615c3a46 cmpvs ip, r6, asr #20 + 6c10: 75626d72 strbvc r6, [r2, #-3442]! + 6c14: 5c646c69 stclpl 12, cr6, [r4], #-420 + 6c18: 74303335 ldrtvc r3, [r0], #-821 + 6c1c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6c20: 6f697469 svcvs 0x00697469 + 6c24: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 6c28: 31315f6d teqcc r1, sp, ror #30 + 6c2c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 6c30: 352d6269 strcc r6, [sp, #-617]! + 6c34: 615c3033 cmpvs ip, r3, lsr r0 + 6c38: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 6c3c: 745c6269 ldrbvc r6, [ip], #-617 + 6c40: 625c706d subsvs r7, ip, #109 ; 0x6d + 6c44: 646c6975 strbtvs r6, [ip], #-2421 + 6c48: 5c62696c stclpl 9, cr6, [r2], #-432 + 6c4c: 5c6a626f sfmpl f6, 2, [sl], #-444 + 6c50: 74347472 ldrtvc r7, [r4], #-1138 + 6c54: 5c6c615f stfple f6, [ip], #-380 + 6c58: 79706f63 ldmdbvc r0!, {r0, r1, r5, r6, r8, r9, sl, fp, sp, lr}^ + 6c5c: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 6c60: 6f2e3274 svcvs 0x002e3274 + 6c64: 642d2d20 strtvs r2, [sp], #-3360 + 6c68: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} + 6c6c: 636e6564 cmnvs lr, #419430400 ; 0x19000000 + 6c70: 3d736569 cfldr64cc mvdx6, [r3, #-420]! + 6c74: 3a462069 bcc 118ee20 + 6c78: 6d72615c ldfvse f6, [r2, #-368]! + 6c7c: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6c80: 33355c64 teqcc r5, #25600 ; 0x6400 + 6c84: 61727430 cmnvs r2, r0, lsr r4 + 6c88: 7469736e strbtvc r7, [r9], #-878 + 6c8c: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 6c90: 5f6d7261 svcpl 0x006d7261 + 6c94: 35393131 ldrcc r3, [r9, #-305]! + 6c98: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6c9c: 3033352d eorscc r3, r3, sp, lsr #10 + 6ca0: 6d72615c ldfvse f6, [r2, #-368]! + 6ca4: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 6ca8: 706d745c rsbvc r7, sp, ip, asr r4 + 6cac: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 6cb0: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 6cb4: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 6cb8: 74725c6a ldrbtvc r5, [r2], #-3178 + 6cbc: 615f7434 cmpvs pc, r4, lsr r4 + 6cc0: 6f635c6c svcvs 0x00635c6c + 6cc4: 695f7970 ldmdbvs pc, {r4, r5, r6, r8, fp, ip, sp, lr}^ + 6cc8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 6ccc: 0000642e andeq r6, r0, lr, lsr #8 + 6cd0: 5f656c72 svcpl 0x00656c72 + 6cd4: 74696e69 strbtvc r6, [r9], #-3689 + 6cd8: 286f2e32 stmdacs pc!, {r1, r4, r5, r9, sl, fp, sp}^ + 6cdc: 74347472 ldrtvc r7, [r4], #-1138 + 6ce0: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} + 6ce4: 003a2961 eorseq r2, sl, r1, ror #18 + 6ce8: 52414900 subpl r4, r1, #0 ; 0x0 + 6cec: 534e4120 movtpl r4, #57632 ; 0xe120 + 6cf0: 2f432049 svccs 0x00432049 + 6cf4: 202b2b43 eorcs r2, fp, r3, asr #22 + 6cf8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 6cfc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 6d00: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 6d04: 302e3033 eorcc r3, lr, r3, lsr r0 + 6d08: 3131352e teqcc r1, lr, lsr #10 + 6d0c: 572f3437 undefined + 6d10: 66203233 undefined + 6d14: 4120726f teqmi r0, pc, ror #4 + 6d18: 2d004d52 stccs 13, cr4, [r0, #-328] + 6d1c: 2f3a4649 svccs 0x003a4649 + 6d20: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6d24: 646c6975 strbtvs r6, [ip], #-2421 + 6d28: 3033352f eorscc r3, r3, pc, lsr #10 + 6d2c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6d30: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6d34: 612f6e6f teqvs pc, pc, ror #28 + 6d38: 315f6d72 cmpcc pc, r2, ror sp + 6d3c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6d40: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6d44: 2f303335 svccs 0x00303335 + 6d48: 2f6d7261 svccs 0x006d7261 + 6d4c: 2f62696c svccs 0x0062696c + 6d50: 7074756f rsbsvc r7, r4, pc, ror #10 + 6d54: 612f7475 teqvs pc, r5, ror r4 + 6d58: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6d5c: 61726269 cmnvs r2, r9, ror #4 + 6d60: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6d64: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 6d68: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} + 6d6c: 2d20636e stccs 3, cr6, [r0, #-440]! + 6d70: 2f3a4649 svccs 0x003a4649 + 6d74: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6d78: 646c6975 strbtvs r6, [ip], #-2421 + 6d7c: 3033352f eorscc r3, r3, pc, lsr #10 + 6d80: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6d84: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6d88: 612f6e6f teqvs pc, pc, ror #28 + 6d8c: 315f6d72 cmpcc pc, r2, ror sp + 6d90: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6d94: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6d98: 2f303335 svccs 0x00303335 + 6d9c: 2f6d7261 svccs 0x006d7261 + 6da0: 2f62696c svccs 0x0062696c + 6da4: 7074756f rsbsvc r7, r4, pc, ror #10 + 6da8: 612f7475 teqvs pc, r5, ror r4 + 6dac: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6db0: 61726269 cmnvs r2, r9, ror #4 + 6db4: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6db8: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 6dbc: 732f3462 teqvc pc, #1644167168 ; 0x62000000 + 6dc0: 2d206372 stccs 3, cr6, [r0, #-456]! + 6dc4: 2f3a4649 svccs 0x003a4649 + 6dc8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6dcc: 646c6975 strbtvs r6, [ip], #-2421 + 6dd0: 3033352f eorscc r3, r3, pc, lsr #10 + 6dd4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6dd8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6ddc: 612f6e6f teqvs pc, pc, ror #28 + 6de0: 315f6d72 cmpcc pc, r2, ror sp + 6de4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6de8: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6dec: 2f303335 svccs 0x00303335 + 6df0: 2f6d7261 svccs 0x006d7261 + 6df4: 2f62696c svccs 0x0062696c + 6df8: 7074756f rsbsvc r7, r4, pc, ror #10 + 6dfc: 612f7475 teqvs pc, r5, ror r4 + 6e00: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6e04: 61726269 cmnvs r2, r9, ror #4 + 6e08: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6e0c: 6d72612f ldfvse f6, [r2, #-188]! + 6e10: 2f62696c svccs 0x0062696c + 6e14: 6c636e69 stclvs 14, cr6, [r3], #-420 + 6e18: 20656475 rsbcs r6, r5, r5, ror r4 + 6e1c: 3a46492d bcc 11992d8 + 6e20: 6d72612f ldfvse f6, [r2, #-188]! + 6e24: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6e28: 33352f64 teqcc r5, #400 ; 0x190 + 6e2c: 61727430 cmnvs r2, r0, lsr r4 + 6e30: 7469736e strbtvc r7, [r9], #-878 + 6e34: 2f6e6f69 svccs 0x006e6f69 + 6e38: 5f6d7261 svcpl 0x006d7261 + 6e3c: 35393131 ldrcc r3, [r9, #-305]! + 6e40: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6e44: 3033352d eorscc r3, r3, sp, lsr #10 + 6e48: 6d72612f ldfvse f6, [r2, #-188]! + 6e4c: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 6e50: 74756f2f ldrbtvc r6, [r5], #-3887 + 6e54: 2f747570 svccs 0x00747570 + 6e58: 5f6d7261 svcpl 0x006d7261 + 6e5c: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 6e60: 65697261 strbvs r7, [r9, #-609]! + 6e64: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 6e68: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 6e6c: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 6e70: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} + 6e74: 64756c63 ldrbtvs r6, [r5], #-3171 + 6e78: 492d2065 pushmi {r0, r2, r5, r6, sp} + 6e7c: 612f3a46 teqvs pc, r6, asr #20 + 6e80: 75626d72 strbvc r6, [r2, #-3442]! + 6e84: 2f646c69 svccs 0x00646c69 + 6e88: 74303335 ldrtvc r3, [r0], #-821 + 6e8c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6e90: 6f697469 svcvs 0x00697469 + 6e94: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 6e98: 31315f6d teqcc r1, sp, ror #30 + 6e9c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 6ea0: 352d6269 strcc r6, [sp, #-617]! + 6ea4: 612f3033 teqvs pc, r3, lsr r0 + 6ea8: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 6eac: 742f6269 strtvc r6, [pc], #617 ; 6eb4 + 6eb0: 622f706d eorvs r7, pc, #109 ; 0x6d + 6eb4: 646c6975 strbtvs r6, [ip], #-2421 + 6eb8: 2062696c rsbcs r6, r2, ip, ror #18 + 6ebc: 70632d2d rsbvc r2, r3, sp, lsr #26 + 6ec0: 52412075 subpl r2, r1, #117 ; 0x75 + 6ec4: 4454394d ldrbmi r3, [r4], #-2381 + 6ec8: 2d20494d stccs 9, cr4, [r0, #-308]! + 6ecc: 646e652d strbtvs r6, [lr], #-1325 + 6ed0: 206e6169 rsbcs r6, lr, r9, ror #2 + 6ed4: 7474696c ldrbtvc r6, [r4], #-2412 + 6ed8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 6edc: 455f5f44 ldrbmi r5, [pc, #-3908] ; 5fa0 + 6ee0: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 + 6ee4: 444c4955 strbmi r4, [ip], #-2389 + 6ee8: 2d205f5f stccs 15, cr5, [r0, #-380]! + 6eec: 415f5f44 cmpmi pc, r4, asr #30 + 6ef0: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 + 6ef4: 41524249 cmpmi r2, r9, asr #4 + 6ef8: 5f5f5952 svcpl 0x005f5952 + 6efc: 612d2d20 teqvs sp, r0, lsr #26 + 6f00: 2d206d72 stccs 13, cr6, [r0, #-456]! + 6f04: 746e692d strbtvc r6, [lr], #-2349 + 6f08: 6f777265 svcvs 0x00777265 + 6f0c: 2d206b72 vstmdbcs r0!, {d6-} + 6f10: 2d20684f stccs 8, cr6, [r0, #-316]! + 6f14: 6c69732d stclvs 3, cr7, [r9], #-180 + 6f18: 20746e65 rsbscs r6, r4, r5, ror #28 + 6f1c: 61772d2d cmnvs r7, sp, lsr #26 + 6f20: 6e696e72 mcrvs 14, 3, r6, cr9, cr2, {3} + 6f24: 615f7367 cmpvs pc, r7, ror #6 + 6f28: 655f6572 ldrbvs r6, [pc, #-1394] ; 69be + 6f2c: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 6f30: 2d2d2073 stccs 0, cr2, [sp, #-460]! + 6f34: 69727473 ldmdbvs r2!, {r0, r1, r4, r5, r6, sl, ip, sp, lr}^ + 6f38: 615f7463 cmpvs pc, r3, ror #8 + 6f3c: 2069736e rsbcs r7, r9, lr, ror #6 + 6f40: 6e6f2d2d cdpvs 13, 6, cr2, cr15, cr13, {1} + 6f44: 735f796c cmpvc pc, #1769472 ; 0x1b0000 + 6f48: 756f6474 strbvc r6, [pc, #-1140]! ; 6adc + 6f4c: 2d2d2074 stccs 0, cr2, [sp, #-464]! + 6f50: 67616964 strbvs r6, [r1, -r4, ror #18]! + 6f54: 7075735f rsbsvc r7, r5, pc, asr r3 + 6f58: 73657270 cmnvc r5, #7 ; 0x7 + 6f5c: 6f473d73 svcvs 0x00473d73 + 6f60: 20353030 eorscs r3, r5, r0, lsr r0 + 6f64: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 6f68: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 6f6c: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 6f70: 3d737365 ldclcc 3, cr7, [r3, #-404]! + 6f74: 35346550 ldrcc r6, [r4, #-1360]! + 6f78: 2d2d2030 stccs 0, cr2, [sp, #-192]! + 6f7c: 67616964 strbvs r6, [r1, -r4, ror #18]! + 6f80: 7272655f rsbsvc r6, r2, #398458880 ; 0x17c00000 + 6f84: 503d726f eorspl r7, sp, pc, ror #4 + 6f88: 33393165 teqcc r9, #1073741849 ; 0x40000019 + 6f8c: 2f3a4620 svccs 0x003a4620 + 6f90: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6f94: 646c6975 strbtvs r6, [ip], #-2421 + 6f98: 3033352f eorscc r3, r3, pc, lsr #10 + 6f9c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6fa0: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6fa4: 612f6e6f teqvs pc, pc, ror #28 + 6fa8: 315f6d72 cmpcc pc, r2, ror sp + 6fac: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6fb0: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6fb4: 2f303335 svccs 0x00303335 + 6fb8: 2f6d7261 svccs 0x006d7261 + 6fbc: 2f62696c svccs 0x0062696c + 6fc0: 7074756f rsbsvc r7, r4, pc, ror #10 + 6fc4: 612f7475 teqvs pc, r5, ror r4 + 6fc8: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6fcc: 61726269 cmnvs r2, r9, ror #4 + 6fd0: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6fd4: 6d72612f ldfvse f6, [r2, #-188]! + 6fd8: 5c62696c stclpl 9, cr6, [r2], #-432 + 6fdc: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 6fe0: 6d6f632f stclvs 3, cr6, [pc, #-188]! + 6fe4: 2f6e6f6d svccs 0x006e6f6d + 6fe8: 74696e69 strbtvc r6, [r9], #-3689 + 6fec: 656c722f strbvs r7, [ip, #-559]! + 6ff0: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 6ff4: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 6ff8: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 6ffc: 615c3a46 cmpvs ip, r6, asr #20 + 7000: 75626d72 strbvc r6, [r2, #-3442]! + 7004: 5c646c69 stclpl 12, cr6, [r4], #-420 + 7008: 74303335 ldrtvc r3, [r0], #-821 + 700c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7010: 6f697469 svcvs 0x00697469 + 7014: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 7018: 31315f6d teqcc r1, sp, ror #30 + 701c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7020: 352d6269 strcc r6, [sp, #-617]! + 7024: 615c3033 cmpvs ip, r3, lsr r0 + 7028: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 702c: 745c6269 ldrbvc r6, [ip], #-617 + 7030: 625c706d subsvs r7, ip, #109 ; 0x6d + 7034: 646c6975 strbtvs r6, [ip], #-2421 + 7038: 5c62696c stclpl 9, cr6, [r2], #-432 + 703c: 5c6a626f sfmpl f6, 2, [sl], #-444 + 7040: 74347472 ldrtvc r7, [r4], #-1138 + 7044: 5c6c615f stfple f6, [ip], #-380 + 7048: 5f656c72 svcpl 0x00656c72 + 704c: 74696e69 strbtvc r6, [r9], #-3689 + 7050: 206f2e32 rsbcs r2, pc, r2, lsr lr + 7054: 65642d2d strbvs r2, [r4, #-3373]! + 7058: 646e6570 strbtvs r6, [lr], #-1392 + 705c: 69636e65 stmdbvs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 7060: 693d7365 ldmdbvs sp!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 7064: 5c3a4620 ldcpl 6, cr4, [sl], #-128 + 7068: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 706c: 646c6975 strbtvs r6, [ip], #-2421 + 7070: 3033355c eorscc r3, r3, ip, asr r5 + 7074: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7078: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 707c: 615c6e6f cmpvs ip, pc, ror #28 + 7080: 315f6d72 cmpcc pc, r2, ror sp + 7084: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7088: 2d62696c stclcs 9, cr6, [r2, #-432]! + 708c: 5c303335 ldcpl 3, cr3, [r0], #-212 + 7090: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 7094: 5c62696c stclpl 9, cr6, [r2], #-432 + 7098: 5c706d74 ldclpl 13, cr6, [r0], #-464 + 709c: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 70a0: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 70a4: 6a626f5c bvs 18a2e1c + 70a8: 3474725c ldrbtcc r7, [r4], #-604 + 70ac: 6c615f74 stclvs 15, cr5, [r1], #-464 + 70b0: 656c725c strbvs r7, [ip, #-604]! + 70b4: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 70b8: 642e3274 strtvs r3, [lr], #-628 + 70bc: 61700000 cmnvs r0, r0 + 70c0: 69626b63 stmdbvs r2!, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ + 70c4: 695f7374 ldmdbvs pc, {r2, r4, r5, r6, r8, r9, ip, sp, lr}^ + 70c8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 70cc: 72286f2e eorvc r6, r8, #184 ; 0xb8 + 70d0: 5f743474 svcpl 0x00743474 + 70d4: 612e6c61 teqvs lr, r1, ror #24 + 70d8: 00003a29 andeq r3, r0, r9, lsr #20 + 70dc: 20524149 subscs r4, r2, r9, asr #2 + 70e0: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 70e4: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 70e8: 43202b2b teqmi r0, #44032 ; 0xac00 + 70ec: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 70f0: 2072656c rsbscs r6, r2, ip, ror #10 + 70f4: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 70f8: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 70fc: 37313135 undefined + 7100: 33572f34 cmpcc r7, #208 ; 0xd0 + 7104: 6f662032 svcvs 0x00662032 + 7108: 52412072 subpl r2, r1, #114 ; 0x72 + 710c: 492d004d pushmi {r0, r2, r3, r6} + 7110: 612f3a46 teqvs pc, r6, asr #20 + 7114: 75626d72 strbvc r6, [r2, #-3442]! + 7118: 2f646c69 svccs 0x00646c69 + 711c: 74303335 ldrtvc r3, [r0], #-821 + 7120: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7124: 6f697469 svcvs 0x00697469 + 7128: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 712c: 31315f6d teqcc r1, sp, ror #30 + 7130: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7134: 352d6269 strcc r6, [sp, #-617]! + 7138: 612f3033 teqvs pc, r3, lsr r0 + 713c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7140: 6f2f6269 svcvs 0x002f6269 + 7144: 75707475 ldrbvc r7, [r0, #-1141]! + 7148: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 714c: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 7150: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 7154: 2f736569 svccs 0x00736569 + 7158: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 715c: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} + 7160: 492d2063 pushmi {r0, r1, r5, r6, sp} + 7164: 612f3a46 teqvs pc, r6, asr #20 + 7168: 75626d72 strbvc r6, [r2, #-3442]! + 716c: 2f646c69 svccs 0x00646c69 + 7170: 74303335 ldrtvc r3, [r0], #-821 + 7174: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7178: 6f697469 svcvs 0x00697469 + 717c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7180: 31315f6d teqcc r1, sp, ror #30 + 7184: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7188: 352d6269 strcc r6, [sp, #-617]! + 718c: 612f3033 teqvs pc, r3, lsr r0 + 7190: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7194: 6f2f6269 svcvs 0x002f6269 + 7198: 75707475 ldrbvc r7, [r0, #-1141]! + 719c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 71a0: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 71a4: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 71a8: 2f736569 svccs 0x00736569 + 71ac: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 71b0: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 + 71b4: 492d2063 pushmi {r0, r1, r5, r6, sp} + 71b8: 612f3a46 teqvs pc, r6, asr #20 + 71bc: 75626d72 strbvc r6, [r2, #-3442]! + 71c0: 2f646c69 svccs 0x00646c69 + 71c4: 74303335 ldrtvc r3, [r0], #-821 + 71c8: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 71cc: 6f697469 svcvs 0x00697469 + 71d0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 71d4: 31315f6d teqcc r1, sp, ror #30 + 71d8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 71dc: 352d6269 strcc r6, [sp, #-617]! + 71e0: 612f3033 teqvs pc, r3, lsr r0 + 71e4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 71e8: 6f2f6269 svcvs 0x002f6269 + 71ec: 75707475 ldrbvc r7, [r0, #-1141]! + 71f0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 71f4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 71f8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 71fc: 2f736569 svccs 0x00736569 + 7200: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 7204: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} + 7208: 756c636e strbvc r6, [ip, #-878]! + 720c: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 7210: 2f3a4649 svccs 0x003a4649 + 7214: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7218: 646c6975 strbtvs r6, [ip], #-2421 + 721c: 3033352f eorscc r3, r3, pc, lsr #10 + 7220: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7224: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7228: 612f6e6f teqvs pc, pc, ror #28 + 722c: 315f6d72 cmpcc pc, r2, ror sp + 7230: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7234: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7238: 2f303335 svccs 0x00303335 + 723c: 2f6d7261 svccs 0x006d7261 + 7240: 2f62696c svccs 0x0062696c + 7244: 7074756f rsbsvc r7, r4, pc, ror #10 + 7248: 612f7475 teqvs pc, r5, ror r4 + 724c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 7250: 61726269 cmnvs r2, r9, ror #4 + 7254: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 7258: 6d72612f ldfvse f6, [r2, #-188]! + 725c: 2f62696c svccs 0x0062696c + 7260: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 7264: 636e692f cmnvs lr, #770048 ; 0xbc000 + 7268: 6564756c strbvs r7, [r4, #-1388]! + 726c: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 7270: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 7274: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 7278: 352f646c strcc r6, [pc, #-1132]! ; 6e14 + 727c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 7280: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 7284: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7288: 6d72612f ldfvse f6, [r2, #-188]! + 728c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 7290: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 7294: 33352d62 teqcc r5, #6272 ; 0x1880 + 7298: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 729c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 72a0: 6d742f62 ldclvs 15, cr2, [r4, #-392]! + 72a4: 75622f70 strbvc r2, [r2, #-3952]! + 72a8: 6c646c69 stclvs 12, cr6, [r4], #-420 + 72ac: 2d206269 sfmcs f6, 4, [r0, #-420]! + 72b0: 7570632d ldrbvc r6, [r0, #-813]! + 72b4: 4d524120 ldfmie f4, [r2, #-128] + 72b8: 4d445439 cfstrdmi mvd5, [r4, #-228] + 72bc: 2d2d2049 stccs 0, cr2, [sp, #-292]! + 72c0: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 72c4: 6c206e61 stcvs 14, cr6, [r0], #-388 + 72c8: 6c747469 cfldrdvs mvd7, [r4], #-420 + 72cc: 442d2065 strtmi r2, [sp], #-101 + 72d0: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 + 72d4: 55425f46 strbpl r5, [r2, #-3910] + 72d8: 5f444c49 svcpl 0x00444c49 + 72dc: 442d205f strtmi r2, [sp], #-95 + 72e0: 52415f5f subpl r5, r1, #380 ; 0x17c + 72e4: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ + 72e8: 52415242 subpl r5, r1, #536870916 ; 0x20000004 + 72ec: 205f5f59 subscs r5, pc, r9, asr pc + 72f0: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 + 72f4: 2d2d206d stccs 0, cr2, [sp, #-436]! + 72f8: 65746e69 ldrbvs r6, [r4, #-3689]! + 72fc: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 7300: 4f2d206b svcmi 0x002d206b + 7304: 2d2d2068 stccs 0, cr2, [sp, #-416]! + 7308: 656c6973 strbvs r6, [ip, #-2419]! + 730c: 2d20746e cfstrscs mvf7, [r0, #-440]! + 7310: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 + 7314: 676e696e strbvs r6, [lr, -lr, ror #18]! + 7318: 72615f73 rsbvc r5, r1, #460 ; 0x1cc + 731c: 72655f65 rsbvc r5, r5, #404 ; 0x194 + 7320: 73726f72 cmnvc r2, #456 ; 0x1c8 + 7324: 732d2d20 teqvc sp, #2048 ; 0x800 + 7328: 63697274 cmnvs r9, #1073741831 ; 0x40000007 + 732c: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} + 7330: 2d206973 stccs 9, cr6, [r0, #-460]! + 7334: 6c6e6f2d stclvs 15, cr6, [lr], #-180 + 7338: 74735f79 ldrbtvc r5, [r3], #-3961 + 733c: 74756f64 ldrbtvc r6, [r5], #-3940 + 7340: 642d2d20 strtvs r2, [sp], #-3360 + 7344: 5f676169 svcpl 0x00676169 + 7348: 70707573 rsbsvc r7, r0, r3, ror r5 + 734c: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 7350: 306f473d rsbcc r4, pc, sp, lsr r7 + 7354: 2d203530 cfstr32cs mvfx3, [r0, #-192]! + 7358: 6169642d cmnvs r9, sp, lsr #8 + 735c: 75735f67 ldrbvc r5, [r3, #-3943]! + 7360: 65727070 ldrbvs r7, [r2, #-112]! + 7364: 503d7373 eorspl r7, sp, r3, ror r3 + 7368: 30353465 eorscc r3, r5, r5, ror #8 + 736c: 642d2d20 strtvs r2, [sp], #-3360 + 7370: 5f676169 svcpl 0x00676169 + 7374: 6f727265 svcvs 0x00727265 + 7378: 65503d72 ldrbvs r3, [r0, #-3442] + 737c: 20333931 eorscs r3, r3, r1, lsr r9 + 7380: 612f3a46 teqvs pc, r6, asr #20 + 7384: 75626d72 strbvc r6, [r2, #-3442]! + 7388: 2f646c69 svccs 0x00646c69 + 738c: 74303335 ldrtvc r3, [r0], #-821 + 7390: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7394: 6f697469 svcvs 0x00697469 + 7398: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 739c: 31315f6d teqcc r1, sp, ror #30 + 73a0: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 73a4: 352d6269 strcc r6, [sp, #-617]! + 73a8: 612f3033 teqvs pc, r3, lsr r0 + 73ac: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 73b0: 6f2f6269 svcvs 0x002f6269 + 73b4: 75707475 ldrbvc r7, [r0, #-1141]! + 73b8: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 73bc: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 73c0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 73c4: 2f736569 svccs 0x00736569 + 73c8: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 73cc: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 + 73d0: 2f326372 svccs 0x00326372 + 73d4: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! + 73d8: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} + 73dc: 2f74696e svccs 0x0074696e + 73e0: 6b636170 blvs 18df9a8 + 73e4: 73746962 cmnvc r4, #1605632 ; 0x188000 + 73e8: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 73ec: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 73f0: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 73f4: 615c3a46 cmpvs ip, r6, asr #20 + 73f8: 75626d72 strbvc r6, [r2, #-3442]! + 73fc: 5c646c69 stclpl 12, cr6, [r4], #-420 + 7400: 74303335 ldrtvc r3, [r0], #-821 + 7404: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7408: 6f697469 svcvs 0x00697469 + 740c: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 7410: 31315f6d teqcc r1, sp, ror #30 + 7414: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7418: 352d6269 strcc r6, [sp, #-617]! + 741c: 615c3033 cmpvs ip, r3, lsr r0 + 7420: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 7424: 745c6269 ldrbvc r6, [ip], #-617 + 7428: 625c706d subsvs r7, ip, #109 ; 0x6d + 742c: 646c6975 strbtvs r6, [ip], #-2421 + 7430: 5c62696c stclpl 9, cr6, [r2], #-432 + 7434: 5c6a626f sfmpl f6, 2, [sl], #-444 + 7438: 74347472 ldrtvc r7, [r4], #-1138 + 743c: 5c6c615f stfple f6, [ip], #-380 + 7440: 6b636170 blvs 18dfa08 + 7444: 73746962 cmnvc r4, #1605632 ; 0x188000 + 7448: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 744c: 6f2e3274 svcvs 0x002e3274 + 7450: 642d2d20 strtvs r2, [sp], #-3360 + 7454: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} + 7458: 636e6564 cmnvs lr, #419430400 ; 0x19000000 + 745c: 3d736569 cfldr64cc mvdx6, [r3, #-420]! + 7460: 3a462069 bcc 118f60c + 7464: 6d72615c ldfvse f6, [r2, #-368]! + 7468: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 746c: 33355c64 teqcc r5, #25600 ; 0x6400 + 7470: 61727430 cmnvs r2, r0, lsr r4 + 7474: 7469736e strbtvc r7, [r9], #-878 + 7478: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 747c: 5f6d7261 svcpl 0x006d7261 + 7480: 35393131 ldrcc r3, [r9, #-305]! + 7484: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 7488: 3033352d eorscc r3, r3, sp, lsr #10 + 748c: 6d72615c ldfvse f6, [r2, #-368]! + 7490: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 7494: 706d745c rsbvc r7, sp, ip, asr r4 + 7498: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 749c: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 74a0: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 74a4: 74725c6a ldrbtvc r5, [r2], #-3178 + 74a8: 615f7434 cmpvs pc, r4, lsr r4 + 74ac: 61705c6c cmnvs r0, ip, ror #24 + 74b0: 69626b63 stmdbvs r2!, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ + 74b4: 695f7374 ldmdbvs pc, {r2, r4, r5, r6, r8, r9, ip, sp, lr}^ + 74b8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 74bc: 0000642e andeq r6, r0, lr, lsr #8 + 74c0: 5f777a6c svcpl 0x00777a6c + 74c4: 74696e69 strbtvc r6, [r9], #-3689 + 74c8: 286f2e32 stmdacs pc!, {r1, r4, r5, r9, sl, fp, sp}^ + 74cc: 74347472 ldrtvc r7, [r4], #-1138 + 74d0: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} + 74d4: 003a2961 eorseq r2, sl, r1, ror #18 + 74d8: 52414900 subpl r4, r1, #0 ; 0x0 + 74dc: 534e4120 movtpl r4, #57632 ; 0xe120 + 74e0: 2f432049 svccs 0x00432049 + 74e4: 202b2b43 eorcs r2, fp, r3, asr #22 + 74e8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 74ec: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 74f0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 74f4: 302e3033 eorcc r3, lr, r3, lsr r0 + 74f8: 3131352e teqcc r1, lr, lsr #10 + 74fc: 572f3437 undefined + 7500: 66203233 undefined + 7504: 4120726f teqmi r0, pc, ror #4 + 7508: 2d004d52 stccs 13, cr4, [r0, #-328] + 750c: 2f3a4649 svccs 0x003a4649 + 7510: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7514: 646c6975 strbtvs r6, [ip], #-2421 + 7518: 3033352f eorscc r3, r3, pc, lsr #10 + 751c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7520: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7524: 612f6e6f teqvs pc, pc, ror #28 + 7528: 315f6d72 cmpcc pc, r2, ror sp + 752c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7530: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7534: 2f303335 svccs 0x00303335 + 7538: 2f6d7261 svccs 0x006d7261 + 753c: 2f62696c svccs 0x0062696c + 7540: 7074756f rsbsvc r7, r4, pc, ror #10 + 7544: 612f7475 teqvs pc, r5, ror r4 + 7548: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 754c: 61726269 cmnvs r2, r9, ror #4 + 7550: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 7554: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 7558: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} + 755c: 2d20636e stccs 3, cr6, [r0, #-440]! + 7560: 2f3a4649 svccs 0x003a4649 + 7564: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7568: 646c6975 strbtvs r6, [ip], #-2421 + 756c: 3033352f eorscc r3, r3, pc, lsr #10 + 7570: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7574: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7578: 612f6e6f teqvs pc, pc, ror #28 + 757c: 315f6d72 cmpcc pc, r2, ror sp + 7580: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7584: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7588: 2f303335 svccs 0x00303335 + 758c: 2f6d7261 svccs 0x006d7261 + 7590: 2f62696c svccs 0x0062696c + 7594: 7074756f rsbsvc r7, r4, pc, ror #10 + 7598: 612f7475 teqvs pc, r5, ror r4 + 759c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 75a0: 61726269 cmnvs r2, r9, ror #4 + 75a4: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 75a8: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 75ac: 732f3462 teqvc pc, #1644167168 ; 0x62000000 + 75b0: 2d206372 stccs 3, cr6, [r0, #-456]! + 75b4: 2f3a4649 svccs 0x003a4649 + 75b8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 75bc: 646c6975 strbtvs r6, [ip], #-2421 + 75c0: 3033352f eorscc r3, r3, pc, lsr #10 + 75c4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 75c8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 75cc: 612f6e6f teqvs pc, pc, ror #28 + 75d0: 315f6d72 cmpcc pc, r2, ror sp + 75d4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 75d8: 2d62696c stclcs 9, cr6, [r2, #-432]! + 75dc: 2f303335 svccs 0x00303335 + 75e0: 2f6d7261 svccs 0x006d7261 + 75e4: 2f62696c svccs 0x0062696c + 75e8: 7074756f rsbsvc r7, r4, pc, ror #10 + 75ec: 612f7475 teqvs pc, r5, ror r4 + 75f0: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 75f4: 61726269 cmnvs r2, r9, ror #4 + 75f8: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 75fc: 6d72612f ldfvse f6, [r2, #-188]! + 7600: 2f62696c svccs 0x0062696c + 7604: 6c636e69 stclvs 14, cr6, [r3], #-420 + 7608: 20656475 rsbcs r6, r5, r5, ror r4 + 760c: 3a46492d bcc 1199ac8 + 7610: 6d72612f ldfvse f6, [r2, #-188]! + 7614: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 7618: 33352f64 teqcc r5, #400 ; 0x190 + 761c: 61727430 cmnvs r2, r0, lsr r4 + 7620: 7469736e strbtvc r7, [r9], #-878 + 7624: 2f6e6f69 svccs 0x006e6f69 + 7628: 5f6d7261 svcpl 0x006d7261 + 762c: 35393131 ldrcc r3, [r9, #-305]! + 7630: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 7634: 3033352d eorscc r3, r3, sp, lsr #10 + 7638: 6d72612f ldfvse f6, [r2, #-188]! + 763c: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 7640: 74756f2f ldrbtvc r6, [r5], #-3887 + 7644: 2f747570 svccs 0x00747570 + 7648: 5f6d7261 svcpl 0x006d7261 + 764c: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 7650: 65697261 strbvs r7, [r9, #-609]! + 7654: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 7658: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 765c: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 7660: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} + 7664: 64756c63 ldrbtvs r6, [r5], #-3171 + 7668: 492d2065 pushmi {r0, r2, r5, r6, sp} + 766c: 612f3a46 teqvs pc, r6, asr #20 + 7670: 75626d72 strbvc r6, [r2, #-3442]! + 7674: 2f646c69 svccs 0x00646c69 + 7678: 74303335 ldrtvc r3, [r0], #-821 + 767c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7680: 6f697469 svcvs 0x00697469 + 7684: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7688: 31315f6d teqcc r1, sp, ror #30 + 768c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7690: 352d6269 strcc r6, [sp, #-617]! + 7694: 612f3033 teqvs pc, r3, lsr r0 + 7698: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 769c: 742f6269 strtvc r6, [pc], #617 ; 76a4 + 76a0: 622f706d eorvs r7, pc, #109 ; 0x6d + 76a4: 646c6975 strbtvs r6, [ip], #-2421 + 76a8: 2062696c rsbcs r6, r2, ip, ror #18 + 76ac: 70632d2d rsbvc r2, r3, sp, lsr #26 + 76b0: 52412075 subpl r2, r1, #117 ; 0x75 + 76b4: 4454394d ldrbmi r3, [r4], #-2381 + 76b8: 2d20494d stccs 9, cr4, [r0, #-308]! + 76bc: 646e652d strbtvs r6, [lr], #-1325 + 76c0: 206e6169 rsbcs r6, lr, r9, ror #2 + 76c4: 7474696c ldrbtvc r6, [r4], #-2412 + 76c8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 76cc: 455f5f44 ldrbmi r5, [pc, #-3908] ; 6790 + 76d0: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 + 76d4: 444c4955 strbmi r4, [ip], #-2389 + 76d8: 2d205f5f stccs 15, cr5, [r0, #-380]! + 76dc: 415f5f44 cmpmi pc, r4, asr #30 + 76e0: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 + 76e4: 41524249 cmpmi r2, r9, asr #4 + 76e8: 5f5f5952 svcpl 0x005f5952 + 76ec: 612d2d20 teqvs sp, r0, lsr #26 + 76f0: 2d206d72 stccs 13, cr6, [r0, #-456]! + 76f4: 746e692d strbtvc r6, [lr], #-2349 + 76f8: 6f777265 svcvs 0x00777265 + 76fc: 2d206b72 vstmdbcs r0!, {d6-} + 7700: 2d20684f stccs 8, cr6, [r0, #-316]! + 7704: 6c69732d stclvs 3, cr7, [r9], #-180 + 7708: 20746e65 rsbscs r6, r4, r5, ror #28 + 770c: 61772d2d cmnvs r7, sp, lsr #26 + 7710: 6e696e72 mcrvs 14, 3, r6, cr9, cr2, {3} + 7714: 615f7367 cmpvs pc, r7, ror #6 + 7718: 655f6572 ldrbvs r6, [pc, #-1394] ; 71ae + 771c: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 7720: 2d2d2073 stccs 0, cr2, [sp, #-460]! + 7724: 69727473 ldmdbvs r2!, {r0, r1, r4, r5, r6, sl, ip, sp, lr}^ + 7728: 615f7463 cmpvs pc, r3, ror #8 + 772c: 2069736e rsbcs r7, r9, lr, ror #6 + 7730: 6e6f2d2d cdpvs 13, 6, cr2, cr15, cr13, {1} + 7734: 735f796c cmpvc pc, #1769472 ; 0x1b0000 + 7738: 756f6474 strbvc r6, [pc, #-1140]! ; 72cc + 773c: 2d2d2074 stccs 0, cr2, [sp, #-464]! + 7740: 67616964 strbvs r6, [r1, -r4, ror #18]! + 7744: 7075735f rsbsvc r7, r5, pc, asr r3 + 7748: 73657270 cmnvc r5, #7 ; 0x7 + 774c: 6f473d73 svcvs 0x00473d73 + 7750: 20353030 eorscs r3, r5, r0, lsr r0 + 7754: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 7758: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 775c: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 7760: 3d737365 ldclcc 3, cr7, [r3, #-404]! + 7764: 35346550 ldrcc r6, [r4, #-1360]! + 7768: 2d2d2030 stccs 0, cr2, [sp, #-192]! + 776c: 67616964 strbvs r6, [r1, -r4, ror #18]! + 7770: 7272655f rsbsvc r6, r2, #398458880 ; 0x17c00000 + 7774: 503d726f eorspl r7, sp, pc, ror #4 + 7778: 33393165 teqcc r9, #1073741849 ; 0x40000019 + 777c: 2f3a4620 svccs 0x003a4620 + 7780: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7784: 646c6975 strbtvs r6, [ip], #-2421 + 7788: 3033352f eorscc r3, r3, pc, lsr #10 + 778c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7790: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7794: 612f6e6f teqvs pc, pc, ror #28 + 7798: 315f6d72 cmpcc pc, r2, ror sp + 779c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 77a0: 2d62696c stclcs 9, cr6, [r2, #-432]! + 77a4: 2f303335 svccs 0x00303335 + 77a8: 2f6d7261 svccs 0x006d7261 + 77ac: 2f62696c svccs 0x0062696c + 77b0: 7074756f rsbsvc r7, r4, pc, ror #10 + 77b4: 612f7475 teqvs pc, r5, ror r4 + 77b8: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 77bc: 61726269 cmnvs r2, r9, ror #4 + 77c0: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 77c4: 6d72612f ldfvse f6, [r2, #-188]! + 77c8: 5c62696c stclpl 9, cr6, [r2], #-432 + 77cc: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 77d0: 6d6f632f stclvs 3, cr6, [pc, #-188]! + 77d4: 2f6e6f6d svccs 0x006e6f6d + 77d8: 74696e69 strbtvc r6, [r9], #-3689 + 77dc: 777a6c2f ldrbvc r6, [sl, -pc, lsr #24]! + 77e0: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 77e4: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 77e8: 2d207070 stccs 0, cr7, [r0, #-448]! + 77ec: 3a46206f bcc 118f9b0 + 77f0: 6d72615c ldfvse f6, [r2, #-368]! + 77f4: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 77f8: 33355c64 teqcc r5, #25600 ; 0x6400 + 77fc: 61727430 cmnvs r2, r0, lsr r4 + 7800: 7469736e strbtvc r7, [r9], #-878 + 7804: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 7808: 5f6d7261 svcpl 0x006d7261 + 780c: 35393131 ldrcc r3, [r9, #-305]! + 7810: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 7814: 3033352d eorscc r3, r3, sp, lsr #10 + 7818: 6d72615c ldfvse f6, [r2, #-368]! + 781c: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 7820: 706d745c rsbvc r7, sp, ip, asr r4 + 7824: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 7828: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 782c: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 7830: 74725c6a ldrbtvc r5, [r2], #-3178 + 7834: 615f7434 cmpvs pc, r4, lsr r4 + 7838: 7a6c5c6c bvc 1b1e9f0 + 783c: 6e695f77 mcrvs 15, 3, r5, cr9, cr7, {3} + 7840: 2e327469 cdpcs 4, 3, cr7, cr2, cr9, {3} + 7844: 2d2d206f stccs 0, cr2, [sp, #-444]! + 7848: 2b636565 blcs 18e0de4 + 784c: 2d2d202b stccs 0, cr2, [sp, #-172]! + 7850: 65706564 ldrbvs r6, [r0, #-1380]! + 7854: 6e65646e cdpvs 4, 6, cr6, cr5, cr14, {3} + 7858: 73656963 cmnvc r5, #1622016 ; 0x18c000 + 785c: 4620693d undefined + 7860: 72615c3a rsbvc r5, r1, #14848 ; 0x3a00 + 7864: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 7868: 355c646c ldrbcc r6, [ip, #-1132] + 786c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 7870: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 7874: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7878: 6d72615c ldfvse f6, [r2, #-368]! + 787c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 7880: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 7884: 33352d62 teqcc r5, #6272 ; 0x1880 + 7888: 72615c30 rsbvc r5, r1, #12288 ; 0x3000 + 788c: 696c5c6d stmdbvs ip!, {r0, r2, r3, r5, r6, sl, fp, ip, lr}^ + 7890: 6d745c62 ldclvs 12, cr5, [r4, #-392]! + 7894: 75625c70 strbvc r5, [r2, #-3184]! + 7898: 6c646c69 stclvs 12, cr6, [r4], #-420 + 789c: 6f5c6269 svcvs 0x005c6269 + 78a0: 725c6a62 subsvc r6, ip, #401408 ; 0x62000 + 78a4: 5f743474 svcpl 0x00743474 + 78a8: 6c5c6c61 mrrcvs 12, 6, r6, ip, cr1 + 78ac: 695f777a ldmdbvs pc, {r1, r3, r4, r5, r6, r8, r9, sl, ip, sp, lr}^ + 78b0: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 78b4: 0000642e andeq r6, r0, lr, lsr #8 + 78b8: 5f747762 svcpl 0x00747762 + 78bc: 74696e69 strbtvc r6, [r9], #-3689 + 78c0: 286f2e32 stmdacs pc!, {r1, r4, r5, r9, sl, fp, sp}^ + 78c4: 74347472 ldrtvc r7, [r4], #-1138 + 78c8: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} + 78cc: 003a2961 eorseq r2, sl, r1, ror #18 + 78d0: 52414900 subpl r4, r1, #0 ; 0x0 + 78d4: 534e4120 movtpl r4, #57632 ; 0xe120 + 78d8: 2f432049 svccs 0x00432049 + 78dc: 202b2b43 eorcs r2, fp, r3, asr #22 + 78e0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 78e4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 78e8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 78ec: 302e3033 eorcc r3, lr, r3, lsr r0 + 78f0: 3131352e teqcc r1, lr, lsr #10 + 78f4: 572f3437 undefined + 78f8: 66203233 undefined + 78fc: 4120726f teqmi r0, pc, ror #4 + 7900: 2d004d52 stccs 13, cr4, [r0, #-328] + 7904: 2f3a4649 svccs 0x003a4649 + 7908: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 790c: 646c6975 strbtvs r6, [ip], #-2421 + 7910: 3033352f eorscc r3, r3, pc, lsr #10 + 7914: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7918: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 791c: 612f6e6f teqvs pc, pc, ror #28 + 7920: 315f6d72 cmpcc pc, r2, ror sp + 7924: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7928: 2d62696c stclcs 9, cr6, [r2, #-432]! + 792c: 2f303335 svccs 0x00303335 + 7930: 2f6d7261 svccs 0x006d7261 + 7934: 2f62696c svccs 0x0062696c + 7938: 7074756f rsbsvc r7, r4, pc, ror #10 + 793c: 612f7475 teqvs pc, r5, ror r4 + 7940: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 7944: 61726269 cmnvs r2, r9, ror #4 + 7948: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 794c: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 7950: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} + 7954: 2d20636e stccs 3, cr6, [r0, #-440]! + 7958: 2f3a4649 svccs 0x003a4649 + 795c: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7960: 646c6975 strbtvs r6, [ip], #-2421 + 7964: 3033352f eorscc r3, r3, pc, lsr #10 + 7968: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 796c: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7970: 612f6e6f teqvs pc, pc, ror #28 + 7974: 315f6d72 cmpcc pc, r2, ror sp + 7978: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 797c: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7980: 2f303335 svccs 0x00303335 + 7984: 2f6d7261 svccs 0x006d7261 + 7988: 2f62696c svccs 0x0062696c + 798c: 7074756f rsbsvc r7, r4, pc, ror #10 + 7990: 612f7475 teqvs pc, r5, ror r4 + 7994: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 7998: 61726269 cmnvs r2, r9, ror #4 + 799c: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 79a0: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 79a4: 732f3462 teqvc pc, #1644167168 ; 0x62000000 + 79a8: 2d206372 stccs 3, cr6, [r0, #-456]! + 79ac: 2f3a4649 svccs 0x003a4649 + 79b0: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 79b4: 646c6975 strbtvs r6, [ip], #-2421 + 79b8: 3033352f eorscc r3, r3, pc, lsr #10 + 79bc: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 79c0: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 79c4: 612f6e6f teqvs pc, pc, ror #28 + 79c8: 315f6d72 cmpcc pc, r2, ror sp + 79cc: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 79d0: 2d62696c stclcs 9, cr6, [r2, #-432]! + 79d4: 2f303335 svccs 0x00303335 + 79d8: 2f6d7261 svccs 0x006d7261 + 79dc: 2f62696c svccs 0x0062696c + 79e0: 7074756f rsbsvc r7, r4, pc, ror #10 + 79e4: 612f7475 teqvs pc, r5, ror r4 + 79e8: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 79ec: 61726269 cmnvs r2, r9, ror #4 + 79f0: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 79f4: 6d72612f ldfvse f6, [r2, #-188]! + 79f8: 2f62696c svccs 0x0062696c + 79fc: 6c636e69 stclvs 14, cr6, [r3], #-420 + 7a00: 20656475 rsbcs r6, r5, r5, ror r4 + 7a04: 3a46492d bcc 1199ec0 + 7a08: 6d72612f ldfvse f6, [r2, #-188]! + 7a0c: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 7a10: 33352f64 teqcc r5, #400 ; 0x190 + 7a14: 61727430 cmnvs r2, r0, lsr r4 + 7a18: 7469736e strbtvc r7, [r9], #-878 + 7a1c: 2f6e6f69 svccs 0x006e6f69 + 7a20: 5f6d7261 svcpl 0x006d7261 + 7a24: 35393131 ldrcc r3, [r9, #-305]! + 7a28: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 7a2c: 3033352d eorscc r3, r3, sp, lsr #10 + 7a30: 6d72612f ldfvse f6, [r2, #-188]! + 7a34: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 7a38: 74756f2f ldrbtvc r6, [r5], #-3887 + 7a3c: 2f747570 svccs 0x00747570 + 7a40: 5f6d7261 svcpl 0x006d7261 + 7a44: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 7a48: 65697261 strbvs r7, [r9, #-609]! + 7a4c: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 7a50: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 7a54: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 7a58: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} + 7a5c: 64756c63 ldrbtvs r6, [r5], #-3171 + 7a60: 492d2065 pushmi {r0, r2, r5, r6, sp} + 7a64: 612f3a46 teqvs pc, r6, asr #20 + 7a68: 75626d72 strbvc r6, [r2, #-3442]! + 7a6c: 2f646c69 svccs 0x00646c69 + 7a70: 74303335 ldrtvc r3, [r0], #-821 + 7a74: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7a78: 6f697469 svcvs 0x00697469 + 7a7c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7a80: 31315f6d teqcc r1, sp, ror #30 + 7a84: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7a88: 352d6269 strcc r6, [sp, #-617]! + 7a8c: 612f3033 teqvs pc, r3, lsr r0 + 7a90: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7a94: 742f6269 strtvc r6, [pc], #617 ; 7a9c + 7a98: 622f706d eorvs r7, pc, #109 ; 0x6d + 7a9c: 646c6975 strbtvs r6, [ip], #-2421 + 7aa0: 2062696c rsbcs r6, r2, ip, ror #18 + 7aa4: 70632d2d rsbvc r2, r3, sp, lsr #26 + 7aa8: 52412075 subpl r2, r1, #117 ; 0x75 + 7aac: 4454394d ldrbmi r3, [r4], #-2381 + 7ab0: 2d20494d stccs 9, cr4, [r0, #-308]! + 7ab4: 646e652d strbtvs r6, [lr], #-1325 + 7ab8: 206e6169 rsbcs r6, lr, r9, ror #2 + 7abc: 7474696c ldrbtvc r6, [r4], #-2412 + 7ac0: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 7ac4: 455f5f44 ldrbmi r5, [pc, #-3908] ; 6b88 + 7ac8: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 + 7acc: 444c4955 strbmi r4, [ip], #-2389 + 7ad0: 2d205f5f stccs 15, cr5, [r0, #-380]! + 7ad4: 415f5f44 cmpmi pc, r4, asr #30 + 7ad8: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 + 7adc: 41524249 cmpmi r2, r9, asr #4 + 7ae0: 5f5f5952 svcpl 0x005f5952 + 7ae4: 612d2d20 teqvs sp, r0, lsr #26 + 7ae8: 2d206d72 stccs 13, cr6, [r0, #-456]! + 7aec: 746e692d strbtvc r6, [lr], #-2349 + 7af0: 6f777265 svcvs 0x00777265 + 7af4: 2d206b72 vstmdbcs r0!, {d6-} + 7af8: 2d20684f stccs 8, cr6, [r0, #-316]! + 7afc: 6c69732d stclvs 3, cr7, [r9], #-180 + 7b00: 20746e65 rsbscs r6, r4, r5, ror #28 + 7b04: 61772d2d cmnvs r7, sp, lsr #26 + 7b08: 6e696e72 mcrvs 14, 3, r6, cr9, cr2, {3} + 7b0c: 615f7367 cmpvs pc, r7, ror #6 + 7b10: 655f6572 ldrbvs r6, [pc, #-1394] ; 75a6 + 7b14: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 7b18: 2d2d2073 stccs 0, cr2, [sp, #-460]! + 7b1c: 69727473 ldmdbvs r2!, {r0, r1, r4, r5, r6, sl, ip, sp, lr}^ + 7b20: 615f7463 cmpvs pc, r3, ror #8 + 7b24: 2069736e rsbcs r7, r9, lr, ror #6 + 7b28: 6e6f2d2d cdpvs 13, 6, cr2, cr15, cr13, {1} + 7b2c: 735f796c cmpvc pc, #1769472 ; 0x1b0000 + 7b30: 756f6474 strbvc r6, [pc, #-1140]! ; 76c4 + 7b34: 2d2d2074 stccs 0, cr2, [sp, #-464]! + 7b38: 67616964 strbvs r6, [r1, -r4, ror #18]! + 7b3c: 7075735f rsbsvc r7, r5, pc, asr r3 + 7b40: 73657270 cmnvc r5, #7 ; 0x7 + 7b44: 6f473d73 svcvs 0x00473d73 + 7b48: 20353030 eorscs r3, r5, r0, lsr r0 + 7b4c: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 7b50: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 7b54: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 7b58: 3d737365 ldclcc 3, cr7, [r3, #-404]! + 7b5c: 35346550 ldrcc r6, [r4, #-1360]! + 7b60: 2d2d2030 stccs 0, cr2, [sp, #-192]! + 7b64: 67616964 strbvs r6, [r1, -r4, ror #18]! + 7b68: 7272655f rsbsvc r6, r2, #398458880 ; 0x17c00000 + 7b6c: 503d726f eorspl r7, sp, pc, ror #4 + 7b70: 33393165 teqcc r9, #1073741849 ; 0x40000019 + 7b74: 2f3a4620 svccs 0x003a4620 + 7b78: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7b7c: 646c6975 strbtvs r6, [ip], #-2421 + 7b80: 3033352f eorscc r3, r3, pc, lsr #10 + 7b84: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7b88: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7b8c: 612f6e6f teqvs pc, pc, ror #28 + 7b90: 315f6d72 cmpcc pc, r2, ror sp + 7b94: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7b98: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7b9c: 2f303335 svccs 0x00303335 + 7ba0: 2f6d7261 svccs 0x006d7261 + 7ba4: 2f62696c svccs 0x0062696c + 7ba8: 7074756f rsbsvc r7, r4, pc, ror #10 + 7bac: 612f7475 teqvs pc, r5, ror r4 + 7bb0: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 7bb4: 61726269 cmnvs r2, r9, ror #4 + 7bb8: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 7bbc: 6d72612f ldfvse f6, [r2, #-188]! + 7bc0: 5c62696c stclpl 9, cr6, [r2], #-432 + 7bc4: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 7bc8: 6d6f632f stclvs 3, cr6, [pc, #-188]! + 7bcc: 2f6e6f6d svccs 0x006e6f6d + 7bd0: 74696e69 strbtvc r6, [r9], #-3689 + 7bd4: 7477622f ldrbtvc r6, [r7], #-559 + 7bd8: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 7bdc: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 7be0: 2d207070 stccs 0, cr7, [r0, #-448]! + 7be4: 3a46206f bcc 118fda8 + 7be8: 6d72615c ldfvse f6, [r2, #-368]! + 7bec: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 7bf0: 33355c64 teqcc r5, #25600 ; 0x6400 + 7bf4: 61727430 cmnvs r2, r0, lsr r4 + 7bf8: 7469736e strbtvc r7, [r9], #-878 + 7bfc: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 7c00: 5f6d7261 svcpl 0x006d7261 + 7c04: 35393131 ldrcc r3, [r9, #-305]! + 7c08: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 7c0c: 3033352d eorscc r3, r3, sp, lsr #10 + 7c10: 6d72615c ldfvse f6, [r2, #-368]! + 7c14: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 7c18: 706d745c rsbvc r7, sp, ip, asr r4 + 7c1c: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 7c20: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 7c24: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 7c28: 74725c6a ldrbtvc r5, [r2], #-3178 + 7c2c: 615f7434 cmpvs pc, r4, lsr r4 + 7c30: 77625c6c strbvc r5, [r2, -ip, ror #24]! + 7c34: 6e695f74 mcrvs 15, 3, r5, cr9, cr4, {3} + 7c38: 2e327469 cdpcs 4, 3, cr7, cr2, cr9, {3} + 7c3c: 2d2d206f stccs 0, cr2, [sp, #-444]! + 7c40: 2b636565 blcs 18e11dc + 7c44: 2d2d202b stccs 0, cr2, [sp, #-172]! + 7c48: 65706564 ldrbvs r6, [r0, #-1380]! + 7c4c: 6e65646e cdpvs 4, 6, cr6, cr5, cr14, {3} + 7c50: 73656963 cmnvc r5, #1622016 ; 0x18c000 + 7c54: 4620693d undefined + 7c58: 72615c3a rsbvc r5, r1, #14848 ; 0x3a00 + 7c5c: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 7c60: 355c646c ldrbcc r6, [ip, #-1132] + 7c64: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 7c68: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 7c6c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7c70: 6d72615c ldfvse f6, [r2, #-368]! + 7c74: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 7c78: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 7c7c: 33352d62 teqcc r5, #6272 ; 0x1880 + 7c80: 72615c30 rsbvc r5, r1, #12288 ; 0x3000 + 7c84: 696c5c6d stmdbvs ip!, {r0, r2, r3, r5, r6, sl, fp, ip, lr}^ + 7c88: 6d745c62 ldclvs 12, cr5, [r4, #-392]! + 7c8c: 75625c70 strbvc r5, [r2, #-3184]! + 7c90: 6c646c69 stclvs 12, cr6, [r4], #-420 + 7c94: 6f5c6269 svcvs 0x005c6269 + 7c98: 725c6a62 subsvc r6, ip, #401408 ; 0x62000 + 7c9c: 5f743474 svcpl 0x00743474 + 7ca0: 625c6c61 subsvs r6, ip, #24832 ; 0x6100 + 7ca4: 695f7477 ldmdbvs pc, {r0, r1, r2, r4, r5, r6, sl, ip, sp, lr}^ + 7ca8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 7cac: 0000642e andeq r6, r0, lr, lsr #8 + 7cb0: 74696e69 strbtvc r6, [r9], #-3689 + 7cb4: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 + 7cb8: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 + 7cbc: 72286f2e eorvc r6, r8, #184 ; 0xb8 + 7cc0: 5f743474 svcpl 0x00743474 + 7cc4: 612e6c61 teqvs lr, r1, ror #24 + 7cc8: 00003a29 andeq r3, r0, r9, lsr #20 + 7ccc: 20524149 subscs r4, r2, r9, asr #2 + 7cd0: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 7cd4: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 7cd8: 43202b2b teqmi r0, #44032 ; 0xac00 + 7cdc: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 7ce0: 2072656c rsbscs r6, r2, ip, ror #10 + 7ce4: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 7ce8: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 7cec: 37313135 undefined + 7cf0: 33572f34 cmpcc r7, #208 ; 0xd0 + 7cf4: 6f662032 svcvs 0x00662032 + 7cf8: 52412072 subpl r2, r1, #114 ; 0x72 + 7cfc: 492d004d pushmi {r0, r2, r3, r6} + 7d00: 612f3a46 teqvs pc, r6, asr #20 + 7d04: 75626d72 strbvc r6, [r2, #-3442]! + 7d08: 2f646c69 svccs 0x00646c69 + 7d0c: 74303335 ldrtvc r3, [r0], #-821 + 7d10: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7d14: 6f697469 svcvs 0x00697469 + 7d18: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7d1c: 31315f6d teqcc r1, sp, ror #30 + 7d20: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7d24: 352d6269 strcc r6, [sp, #-617]! + 7d28: 612f3033 teqvs pc, r3, lsr r0 + 7d2c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7d30: 6f2f6269 svcvs 0x002f6269 + 7d34: 75707475 ldrbvc r7, [r0, #-1141]! + 7d38: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 7d3c: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 7d40: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 7d44: 2f736569 svccs 0x00736569 + 7d48: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 7d4c: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} + 7d50: 492d2063 pushmi {r0, r1, r5, r6, sp} + 7d54: 612f3a46 teqvs pc, r6, asr #20 + 7d58: 75626d72 strbvc r6, [r2, #-3442]! + 7d5c: 2f646c69 svccs 0x00646c69 + 7d60: 74303335 ldrtvc r3, [r0], #-821 + 7d64: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7d68: 6f697469 svcvs 0x00697469 + 7d6c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7d70: 31315f6d teqcc r1, sp, ror #30 + 7d74: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7d78: 352d6269 strcc r6, [sp, #-617]! + 7d7c: 612f3033 teqvs pc, r3, lsr r0 + 7d80: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7d84: 6f2f6269 svcvs 0x002f6269 + 7d88: 75707475 ldrbvc r7, [r0, #-1141]! + 7d8c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 7d90: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 7d94: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 7d98: 2f736569 svccs 0x00736569 + 7d9c: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 7da0: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 + 7da4: 492d2063 pushmi {r0, r1, r5, r6, sp} + 7da8: 612f3a46 teqvs pc, r6, asr #20 + 7dac: 75626d72 strbvc r6, [r2, #-3442]! + 7db0: 2f646c69 svccs 0x00646c69 + 7db4: 74303335 ldrtvc r3, [r0], #-821 + 7db8: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7dbc: 6f697469 svcvs 0x00697469 + 7dc0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7dc4: 31315f6d teqcc r1, sp, ror #30 + 7dc8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7dcc: 352d6269 strcc r6, [sp, #-617]! + 7dd0: 612f3033 teqvs pc, r3, lsr r0 + 7dd4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7dd8: 6f2f6269 svcvs 0x002f6269 + 7ddc: 75707475 ldrbvc r7, [r0, #-1141]! + 7de0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 7de4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 7de8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 7dec: 2f736569 svccs 0x00736569 + 7df0: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 7df4: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} + 7df8: 756c636e strbvc r6, [ip, #-878]! + 7dfc: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 7e00: 2f3a4649 svccs 0x003a4649 + 7e04: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7e08: 646c6975 strbtvs r6, [ip], #-2421 + 7e0c: 3033352f eorscc r3, r3, pc, lsr #10 + 7e10: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7e14: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7e18: 612f6e6f teqvs pc, pc, ror #28 + 7e1c: 315f6d72 cmpcc pc, r2, ror sp + 7e20: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7e24: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7e28: 2f303335 svccs 0x00303335 + 7e2c: 2f6d7261 svccs 0x006d7261 + 7e30: 2f62696c svccs 0x0062696c + 7e34: 7074756f rsbsvc r7, r4, pc, ror #10 + 7e38: 612f7475 teqvs pc, r5, ror r4 + 7e3c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 7e40: 61726269 cmnvs r2, r9, ror #4 + 7e44: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 7e48: 6d72612f ldfvse f6, [r2, #-188]! + 7e4c: 2f62696c svccs 0x0062696c + 7e50: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 7e54: 636e692f cmnvs lr, #770048 ; 0xbc000 + 7e58: 6564756c strbvs r7, [r4, #-1388]! + 7e5c: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 7e60: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 7e64: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 7e68: 352f646c strcc r6, [pc, #-1132]! ; 7a04 + 7e6c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 7e70: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 7e74: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7e78: 6d72612f ldfvse f6, [r2, #-188]! + 7e7c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 7e80: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 7e84: 33352d62 teqcc r5, #6272 ; 0x1880 + 7e88: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 7e8c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 7e90: 6d742f62 ldclvs 15, cr2, [r4, #-392]! + 7e94: 75622f70 strbvc r2, [r2, #-3952]! + 7e98: 6c646c69 stclvs 12, cr6, [r4], #-420 + 7e9c: 2d206269 sfmcs f6, 4, [r0, #-420]! + 7ea0: 7570632d ldrbvc r6, [r0, #-813]! + 7ea4: 4d524120 ldfmie f4, [r2, #-128] + 7ea8: 4d445439 cfstrdmi mvd5, [r4, #-228] + 7eac: 2d2d2049 stccs 0, cr2, [sp, #-292]! + 7eb0: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 7eb4: 6c206e61 stcvs 14, cr6, [r0], #-388 + 7eb8: 6c747469 cfldrdvs mvd7, [r4], #-420 + 7ebc: 442d2065 strtmi r2, [sp], #-101 + 7ec0: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 + 7ec4: 55425f46 strbpl r5, [r2, #-3910] + 7ec8: 5f444c49 svcpl 0x00444c49 + 7ecc: 442d205f strtmi r2, [sp], #-95 + 7ed0: 52415f5f subpl r5, r1, #380 ; 0x17c + 7ed4: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ + 7ed8: 52415242 subpl r5, r1, #536870916 ; 0x20000004 + 7edc: 205f5f59 subscs r5, pc, r9, asr pc + 7ee0: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 + 7ee4: 2d2d206d stccs 0, cr2, [sp, #-436]! + 7ee8: 65746e69 ldrbvs r6, [r4, #-3689]! + 7eec: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 7ef0: 4f2d206b svcmi 0x002d206b + 7ef4: 2d2d2068 stccs 0, cr2, [sp, #-416]! + 7ef8: 656c6973 strbvs r6, [ip, #-2419]! + 7efc: 2d20746e cfstrscs mvf7, [r0, #-440]! + 7f00: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 + 7f04: 676e696e strbvs r6, [lr, -lr, ror #18]! + 7f08: 72615f73 rsbvc r5, r1, #460 ; 0x1cc + 7f0c: 72655f65 rsbvc r5, r5, #404 ; 0x194 + 7f10: 73726f72 cmnvc r2, #456 ; 0x1c8 + 7f14: 732d2d20 teqvc sp, #2048 ; 0x800 + 7f18: 63697274 cmnvs r9, #1073741831 ; 0x40000007 + 7f1c: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} + 7f20: 2d206973 stccs 9, cr6, [r0, #-460]! + 7f24: 6c6e6f2d stclvs 15, cr6, [lr], #-180 + 7f28: 74735f79 ldrbtvc r5, [r3], #-3961 + 7f2c: 74756f64 ldrbtvc r6, [r5], #-3940 + 7f30: 642d2d20 strtvs r2, [sp], #-3360 + 7f34: 5f676169 svcpl 0x00676169 + 7f38: 70707573 rsbsvc r7, r0, r3, ror r5 + 7f3c: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 7f40: 306f473d rsbcc r4, pc, sp, lsr r7 + 7f44: 2d203530 cfstr32cs mvfx3, [r0, #-192]! + 7f48: 6169642d cmnvs r9, sp, lsr #8 + 7f4c: 75735f67 ldrbvc r5, [r3, #-3943]! + 7f50: 65727070 ldrbvs r7, [r2, #-112]! + 7f54: 503d7373 eorspl r7, sp, r3, ror r3 + 7f58: 30353465 eorscc r3, r5, r5, ror #8 + 7f5c: 642d2d20 strtvs r2, [sp], #-3360 + 7f60: 5f676169 svcpl 0x00676169 + 7f64: 6f727265 svcvs 0x00727265 + 7f68: 65503d72 ldrbvs r3, [r0, #-3442] + 7f6c: 20333931 eorscs r3, r3, r1, lsr r9 + 7f70: 612f3a46 teqvs pc, r6, asr #20 + 7f74: 75626d72 strbvc r6, [r2, #-3442]! + 7f78: 2f646c69 svccs 0x00646c69 + 7f7c: 74303335 ldrtvc r3, [r0], #-821 + 7f80: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7f84: 6f697469 svcvs 0x00697469 + 7f88: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7f8c: 31315f6d teqcc r1, sp, ror #30 + 7f90: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7f94: 352d6269 strcc r6, [sp, #-617]! + 7f98: 612f3033 teqvs pc, r3, lsr r0 + 7f9c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7fa0: 6f2f6269 svcvs 0x002f6269 + 7fa4: 75707475 ldrbvc r7, [r0, #-1141]! + 7fa8: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 7fac: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 7fb0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 7fb4: 2f736569 svccs 0x00736569 + 7fb8: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 7fbc: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 + 7fc0: 2f326372 svccs 0x00326372 + 7fc4: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! + 7fc8: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} + 7fcc: 2f74696e svccs 0x0074696e + 7fd0: 74696e69 strbtvc r6, [r9], #-3689 + 7fd4: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 + 7fd8: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 + 7fdc: 7070632e rsbsvc r6, r0, lr, lsr #6 + 7fe0: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 7fe4: 615c3a46 cmpvs ip, r6, asr #20 + 7fe8: 75626d72 strbvc r6, [r2, #-3442]! + 7fec: 5c646c69 stclpl 12, cr6, [r4], #-420 + 7ff0: 74303335 ldrtvc r3, [r0], #-821 + 7ff4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7ff8: 6f697469 svcvs 0x00697469 + 7ffc: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 8000: 31315f6d teqcc r1, sp, ror #30 + 8004: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 8008: 352d6269 strcc r6, [sp, #-617]! + 800c: 615c3033 cmpvs ip, r3, lsr r0 + 8010: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 8014: 745c6269 ldrbvc r6, [ip], #-617 + 8018: 625c706d subsvs r7, ip, #109 ; 0x6d + 801c: 646c6975 strbtvs r6, [ip], #-2421 + 8020: 5c62696c stclpl 9, cr6, [r2], #-432 + 8024: 5c6a626f sfmpl f6, 2, [sl], #-444 + 8028: 74347472 ldrtvc r7, [r4], #-1138 + 802c: 5c6c615f stfple f6, [ip], #-380 + 8030: 74696e69 strbtvc r6, [r9], #-3689 + 8034: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 + 8038: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 + 803c: 2d206f2e stccs 15, cr6, [r0, #-184]! + 8040: 6365652d cmnvs r5, #188743680 ; 0xb400000 + 8044: 2d202b2b fstmdbxcs r0!, {d2-d22} + 8048: 7065642d rsbvc r6, r5, sp, lsr #8 + 804c: 65646e65 strbvs r6, [r4, #-3685]! + 8050: 6569636e strbvs r6, [r9, #-878]! + 8054: 20693d73 rsbcs r3, r9, r3, ror sp + 8058: 615c3a46 cmpvs ip, r6, asr #20 + 805c: 75626d72 strbvc r6, [r2, #-3442]! + 8060: 5c646c69 stclpl 12, cr6, [r4], #-420 + 8064: 74303335 ldrtvc r3, [r0], #-821 + 8068: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 806c: 6f697469 svcvs 0x00697469 + 8070: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 8074: 31315f6d teqcc r1, sp, ror #30 + 8078: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 807c: 352d6269 strcc r6, [sp, #-617]! + 8080: 615c3033 cmpvs ip, r3, lsr r0 + 8084: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 8088: 745c6269 ldrbvc r6, [ip], #-617 + 808c: 625c706d subsvs r7, ip, #109 ; 0x6d + 8090: 646c6975 strbtvs r6, [ip], #-2421 + 8094: 5c62696c stclpl 9, cr6, [r2], #-432 + 8098: 5c6a626f sfmpl f6, 2, [sl], #-444 + 809c: 74347472 ldrtvc r7, [r4], #-1138 + 80a0: 5c6c615f stfple f6, [ip], #-380 + 80a4: 74696e69 strbtvc r6, [r9], #-3689 + 80a8: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 + 80ac: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 + 80b0: 0000642e andeq r6, r0, lr, lsr #8 + 80b4: 726f6261 rsbvc r6, pc, #268435462 ; 0x10000006 + 80b8: 286f2e74 stmdacs pc!, {r2, r4, r5, r6, r9, sl, fp, sp}^ + 80bc: 74346c64 ldrtvc r6, [r4], #-3172 + 80c0: 5f6c745f svcpl 0x006c745f + 80c4: 612e6e69 teqvs lr, r9, ror #28 + 80c8: 00003a29 andeq r3, r0, r9, lsr #20 + 80cc: 20524149 subscs r4, r2, r9, asr #2 + 80d0: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 80d4: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 80d8: 43202b2b teqmi r0, #44032 ; 0xac00 + 80dc: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 80e0: 2072656c rsbscs r6, r2, ip, ror #10 + 80e4: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 80e8: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 80ec: 37313135 undefined + 80f0: 33572f34 cmpcc r7, #208 ; 0xd0 + 80f4: 6f662032 svcvs 0x00662032 + 80f8: 52412072 subpl r2, r1, #114 ; 0x72 + 80fc: 492d004d pushmi {r0, r2, r3, r6} + 8100: 612f3a46 teqvs pc, r6, asr #20 + 8104: 75626d72 strbvc r6, [r2, #-3442]! + 8108: 2f646c69 svccs 0x00646c69 + 810c: 74303335 ldrtvc r3, [r0], #-821 + 8110: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 8114: 6f697469 svcvs 0x00697469 + 8118: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 811c: 31315f6d teqcc r1, sp, ror #30 + 8120: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 8124: 352d6269 strcc r6, [sp, #-617]! + 8128: 612f3033 teqvs pc, r3, lsr r0 + 812c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 8130: 6f2f6269 svcvs 0x002f6269 + 8134: 75707475 ldrbvc r7, [r0, #-1141]! + 8138: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 813c: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 8140: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 8144: 2f736569 svccs 0x00736569 + 8148: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 814c: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} + 8150: 492d2063 pushmi {r0, r1, r5, r6, sp} + 8154: 612f3a46 teqvs pc, r6, asr #20 + 8158: 75626d72 strbvc r6, [r2, #-3442]! + 815c: 2f646c69 svccs 0x00646c69 + 8160: 74303335 ldrtvc r3, [r0], #-821 + 8164: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 8168: 6f697469 svcvs 0x00697469 + 816c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 8170: 31315f6d teqcc r1, sp, ror #30 + 8174: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 8178: 352d6269 strcc r6, [sp, #-617]! + 817c: 612f3033 teqvs pc, r3, lsr r0 + 8180: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 8184: 6f2f6269 svcvs 0x002f6269 + 8188: 75707475 ldrbvc r7, [r0, #-1141]! + 818c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 8190: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 8194: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 8198: 2f736569 svccs 0x00736569 + 819c: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 81a0: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 + 81a4: 492d2063 pushmi {r0, r1, r5, r6, sp} + 81a8: 612f3a46 teqvs pc, r6, asr #20 + 81ac: 75626d72 strbvc r6, [r2, #-3442]! + 81b0: 2f646c69 svccs 0x00646c69 + 81b4: 74303335 ldrtvc r3, [r0], #-821 + 81b8: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 81bc: 6f697469 svcvs 0x00697469 + 81c0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 81c4: 31315f6d teqcc r1, sp, ror #30 + 81c8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 81cc: 352d6269 strcc r6, [sp, #-617]! + 81d0: 612f3033 teqvs pc, r3, lsr r0 + 81d4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 81d8: 6f2f6269 svcvs 0x002f6269 + 81dc: 75707475 ldrbvc r7, [r0, #-1141]! + 81e0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 81e4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 81e8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 81ec: 2f736569 svccs 0x00736569 + 81f0: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 81f4: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} + 81f8: 756c636e strbvc r6, [ip, #-878]! + 81fc: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 8200: 2f3a4649 svccs 0x003a4649 + 8204: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 8208: 646c6975 strbtvs r6, [ip], #-2421 + 820c: 3033352f eorscc r3, r3, pc, lsr #10 + 8210: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 8214: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 8218: 612f6e6f teqvs pc, pc, ror #28 + 821c: 315f6d72 cmpcc pc, r2, ror sp + 8220: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 8224: 2d62696c stclcs 9, cr6, [r2, #-432]! + 8228: 2f303335 svccs 0x00303335 + 822c: 2f6d7261 svccs 0x006d7261 + 8230: 2f62696c svccs 0x0062696c + 8234: 7074756f rsbsvc r7, r4, pc, ror #10 + 8238: 612f7475 teqvs pc, r5, ror r4 + 823c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 8240: 61726269 cmnvs r2, r9, ror #4 + 8244: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 8248: 6d72612f ldfvse f6, [r2, #-188]! + 824c: 2f62696c svccs 0x0062696c + 8250: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 8254: 636e692f cmnvs lr, #770048 ; 0xbc000 + 8258: 6564756c strbvs r7, [r4, #-1388]! + 825c: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 8260: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 8264: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 8268: 352f646c strcc r6, [pc, #-1132]! ; 7e04 + 826c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 8270: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 8274: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 8278: 6d72612f ldfvse f6, [r2, #-188]! + 827c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 8280: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 8284: 33352d62 teqcc r5, #6272 ; 0x1880 + 8288: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 828c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 8290: 6d742f62 ldclvs 15, cr2, [r4, #-392]! + 8294: 75622f70 strbvc r2, [r2, #-3952]! + 8298: 6c646c69 stclvs 12, cr6, [r4], #-420 + 829c: 2d206269 sfmcs f6, 4, [r0, #-420]! + 82a0: 7570632d ldrbvc r6, [r0, #-813]! + 82a4: 4d524120 ldfmie f4, [r2, #-128] + 82a8: 4d445439 cfstrdmi mvd5, [r4, #-228] + 82ac: 2d2d2049 stccs 0, cr2, [sp, #-292]! + 82b0: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 82b4: 6c206e61 stcvs 14, cr6, [r0], #-388 + 82b8: 6c747469 cfldrdvs mvd7, [r4], #-420 + 82bc: 442d2065 strtmi r2, [sp], #-101 + 82c0: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 + 82c4: 55425f46 strbpl r5, [r2, #-3910] + 82c8: 5f444c49 svcpl 0x00444c49 + 82cc: 442d205f strtmi r2, [sp], #-95 + 82d0: 48545f5f ldmdami r4, {r0, r1, r2, r3, r4, r6, r8, r9, sl, fp, ip, lr}^ + 82d4: 5f424d55 svcpl 0x00424d55 + 82d8: 5242494c subpl r4, r2, #1245184 ; 0x130000 + 82dc: 5f595241 svcpl 0x00595241 + 82e0: 2d2d205f stccs 0, cr2, [sp, #-380]! + 82e4: 6d756874 ldclvs 8, cr6, [r5, #-464]! + 82e8: 2d2d2062 stccs 0, cr2, [sp, #-392]! + 82ec: 65746e69 ldrbvs r6, [r4, #-3689]! + 82f0: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 82f4: 4f2d206b svcmi 0x002d206b + 82f8: 2d2d2068 stccs 0, cr2, [sp, #-416]! + 82fc: 656c6973 strbvs r6, [ip, #-2419]! + 8300: 2d20746e cfstrscs mvf7, [r0, #-440]! + 8304: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 + 8308: 676e696e strbvs r6, [lr, -lr, ror #18]! + 830c: 72615f73 rsbvc r5, r1, #460 ; 0x1cc + 8310: 72655f65 rsbvc r5, r5, #404 ; 0x194 + 8314: 73726f72 cmnvc r2, #456 ; 0x1c8 + 8318: 732d2d20 teqvc sp, #2048 ; 0x800 + 831c: 63697274 cmnvs r9, #1073741831 ; 0x40000007 + 8320: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} + 8324: 2d206973 stccs 9, cr6, [r0, #-460]! + 8328: 6c6e6f2d stclvs 15, cr6, [lr], #-180 + 832c: 74735f79 ldrbtvc r5, [r3], #-3961 + 8330: 74756f64 ldrbtvc r6, [r5], #-3940 + 8334: 642d2d20 strtvs r2, [sp], #-3360 + 8338: 5f676169 svcpl 0x00676169 + 833c: 70707573 rsbsvc r7, r0, r3, ror r5 + 8340: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 8344: 306f473d rsbcc r4, pc, sp, lsr r7 + 8348: 2d203530 cfstr32cs mvfx3, [r0, #-192]! + 834c: 6169642d cmnvs r9, sp, lsr #8 + 8350: 75735f67 ldrbvc r5, [r3, #-3943]! + 8354: 65727070 ldrbvs r7, [r2, #-112]! + 8358: 503d7373 eorspl r7, sp, r3, ror r3 + 835c: 30353465 eorscc r3, r5, r5, ror #8 + 8360: 642d2d20 strtvs r2, [sp], #-3360 + 8364: 5f676169 svcpl 0x00676169 + 8368: 6f727265 svcvs 0x00727265 + 836c: 65503d72 ldrbvs r3, [r0, #-3442] + 8370: 20333931 eorscs r3, r3, r1, lsr r9 + 8374: 6c642d2d stclvs 13, cr2, [r4], #-180 + 8378: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 + 837c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 8380: 3a463d67 bcc 1197924 + 8384: 6d72612f ldfvse f6, [r2, #-188]! + 8388: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 838c: 33352f64 teqcc r5, #400 ; 0x190 + 8390: 61727430 cmnvs r2, r0, lsr r4 + 8394: 7469736e strbtvc r7, [r9], #-878 + 8398: 2f6e6f69 svccs 0x006e6f69 + 839c: 5f6d7261 svcpl 0x006d7261 + 83a0: 35393131 ldrcc r3, [r9, #-305]! + 83a4: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 83a8: 3033352d eorscc r3, r3, sp, lsr #10 + 83ac: 6d72612f ldfvse f6, [r2, #-188]! + 83b0: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 83b4: 74756f2f ldrbtvc r6, [r5], #-3887 + 83b8: 2f747570 svccs 0x00747570 + 83bc: 2f62696c svccs 0x0062696c + 83c0: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 83c4: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} + 83c8: 5f676966 svcpl 0x00676966 + 83cc: 6d726f4e ldclvs 15, cr6, [r2, #-312]! + 83d0: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} + 83d4: 2f3a4620 svccs 0x003a4620 + 83d8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 83dc: 646c6975 strbtvs r6, [ip], #-2421 + 83e0: 3033352f eorscc r3, r3, pc, lsr #10 + 83e4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 83e8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 83ec: 612f6e6f teqvs pc, pc, ror #28 + 83f0: 315f6d72 cmpcc pc, r2, ror sp + 83f4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 83f8: 2d62696c stclcs 9, cr6, [r2, #-432]! + 83fc: 2f303335 svccs 0x00303335 + 8400: 2f6d7261 svccs 0x006d7261 + 8404: 2f62696c svccs 0x0062696c + 8408: 7074756f rsbsvc r7, r4, pc, ror #10 + 840c: 612f7475 teqvs pc, r5, ror r4 + 8410: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 8414: 61726269 cmnvs r2, r9, ror #4 + 8418: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 841c: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 8420: 735c3462 cmpvc ip, #1644167168 ; 0x62000000 + 8424: 612f6372 teqvs pc, r2, ror r3 + 8428: 74726f62 ldrbtvc r6, [r2], #-3938 + 842c: 2d20632e stccs 3, cr6, [r0, #-184]! + 8430: 3a46206f bcc 11905f4 + 8434: 6d72615c ldfvse f6, [r2, #-368]! + 8438: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 843c: 33355c64 teqcc r5, #25600 ; 0x6400 + 8440: 61727430 cmnvs r2, r0, lsr r4 + 8444: 7469736e strbtvc r7, [r9], #-878 + 8448: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 844c: 5f6d7261 svcpl 0x006d7261 + 8450: 35393131 ldrcc r3, [r9, #-305]! + 8454: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 8458: 3033352d eorscc r3, r3, sp, lsr #10 + 845c: 6d72615c ldfvse f6, [r2, #-368]! + 8460: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 8464: 706d745c rsbvc r7, sp, ip, asr r4 + 8468: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 846c: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 8470: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 8474: 6c645c6a stclvs 12, cr5, [r4], #-424 + 8478: 745f7434 ldrbvc r7, [pc], #1076 ; 8480 + 847c: 6e695f6c cdpvs 15, 6, cr5, cr9, cr12, {3} + 8480: 6f62615c svcvs 0x0062615c + 8484: 6f2e7472 svcvs 0x002e7472 + 8488: 642d2d20 strtvs r2, [sp], #-3360 + 848c: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} + 8490: 636e6564 cmnvs lr, #419430400 ; 0x19000000 + 8494: 3d736569 cfldr64cc mvdx6, [r3, #-420]! + 8498: 3a462069 bcc 1190644 + 849c: 6d72615c ldfvse f6, [r2, #-368]! + 84a0: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 84a4: 33355c64 teqcc r5, #25600 ; 0x6400 + 84a8: 61727430 cmnvs r2, r0, lsr r4 + 84ac: 7469736e strbtvc r7, [r9], #-878 + 84b0: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 84b4: 5f6d7261 svcpl 0x006d7261 + 84b8: 35393131 ldrcc r3, [r9, #-305]! + 84bc: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 84c0: 3033352d eorscc r3, r3, sp, lsr #10 + 84c4: 6d72615c ldfvse f6, [r2, #-368]! + 84c8: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 84cc: 706d745c rsbvc r7, sp, ip, asr r4 + 84d0: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 84d4: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 84d8: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 84dc: 6c645c6a stclvs 12, cr5, [r4], #-424 + 84e0: 745f7434 ldrbvc r7, [pc], #1076 ; 84e8 + 84e4: 6e695f6c cdpvs 15, 6, cr5, cr9, cr12, {3} + 84e8: 6f62615c svcvs 0x0062615c + 84ec: 642e7472 strtvs r7, [lr], #-1138 + 84f0: 58580000 ldmdapl r8, {}^ + 84f4: 74697865 strbtvc r7, [r9], #-2149 + 84f8: 72286f2e eorvc r6, r8, #184 ; 0xb8 + 84fc: 5f743474 svcpl 0x00743474 + 8500: 612e6c61 teqvs lr, r1, ror #24 + 8504: 00003a29 andeq r3, r0, r9, lsr #20 + 8508: 20524149 subscs r4, r2, r9, asr #2 + 850c: 65737341 ldrbvs r7, [r3, #-833]! + 8510: 656c626d strbvs r6, [ip, #-621]! + 8514: 35562072 ldrbcc r2, [r6, #-114] + 8518: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 851c: 31352e30 teqcc r5, r0, lsr lr + 8520: 2f343731 svccs 0x00343731 + 8524: 20323357 eorscs r3, r2, r7, asr r3 + 8528: 20726f66 rsbscs r6, r2, r6, ror #30 + 852c: 004d5241 subeq r5, sp, r1, asr #4 + 8530: 3a46492d bcc 119a9ec + 8534: 6d72612f ldfvse f6, [r2, #-188]! + 8538: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 853c: 33352f64 teqcc r5, #400 ; 0x190 + 8540: 61727430 cmnvs r2, r0, lsr r4 + 8544: 7469736e strbtvc r7, [r9], #-878 + 8548: 2f6e6f69 svccs 0x006e6f69 + 854c: 5f6d7261 svcpl 0x006d7261 + 8550: 35393131 ldrcc r3, [r9, #-305]! + 8554: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 8558: 3033352d eorscc r3, r3, sp, lsr #10 + 855c: 6d72612f ldfvse f6, [r2, #-188]! + 8560: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 8564: 74756f2f ldrbtvc r6, [r5], #-3887 + 8568: 2f747570 svccs 0x00747570 + 856c: 5f6d7261 svcpl 0x006d7261 + 8570: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 8574: 65697261 strbvs r7, [r9, #-609]! + 8578: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 + 857c: 2f346269 svccs 0x00346269 + 8580: 20636e69 rsbcs r6, r3, r9, ror #28 + 8584: 3a46492d bcc 119aa40 + 8588: 6d72612f ldfvse f6, [r2, #-188]! + 858c: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 8590: 33352f64 teqcc r5, #400 ; 0x190 + 8594: 61727430 cmnvs r2, r0, lsr r4 + 8598: 7469736e strbtvc r7, [r9], #-878 + 859c: 2f6e6f69 svccs 0x006e6f69 + 85a0: 5f6d7261 svcpl 0x006d7261 + 85a4: 35393131 ldrcc r3, [r9, #-305]! + 85a8: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 85ac: 3033352d eorscc r3, r3, sp, lsr #10 + 85b0: 6d72612f ldfvse f6, [r2, #-188]! + 85b4: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 85b8: 74756f2f ldrbtvc r6, [r5], #-3887 + 85bc: 2f747570 svccs 0x00747570 + 85c0: 5f6d7261 svcpl 0x006d7261 + 85c4: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 85c8: 65697261 strbvs r7, [r9, #-609]! + 85cc: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 + 85d0: 2f346269 svccs 0x00346269 + 85d4: 20637273 rsbcs r7, r3, r3, ror r2 + 85d8: 3a46492d bcc 119aa94 + 85dc: 6d72612f ldfvse f6, [r2, #-188]! + 85e0: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 85e4: 33352f64 teqcc r5, #400 ; 0x190 + 85e8: 61727430 cmnvs r2, r0, lsr r4 + 85ec: 7469736e strbtvc r7, [r9], #-878 + 85f0: 2f6e6f69 svccs 0x006e6f69 + 85f4: 5f6d7261 svcpl 0x006d7261 + 85f8: 35393131 ldrcc r3, [r9, #-305]! + 85fc: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 8600: 3033352d eorscc r3, r3, sp, lsr #10 + 8604: 6d72612f ldfvse f6, [r2, #-188]! + 8608: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 860c: 74756f2f ldrbtvc r6, [r5], #-3887 + 8610: 2f747570 svccs 0x00747570 + 8614: 5f6d7261 svcpl 0x006d7261 + 8618: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 861c: 65697261 strbvs r7, [r9, #-609]! + 8620: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 8624: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 8628: 636e692f cmnvs lr, #770048 ; 0xbc000 + 862c: 6564756c strbvs r7, [r4, #-1388]! + 8630: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 8634: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 8638: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 863c: 352f646c strcc r6, [pc, #-1132]! ; 81d8 + 8640: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 8644: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 8648: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 864c: 6d72612f ldfvse f6, [r2, #-188]! + 8650: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 8654: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 8658: 33352d62 teqcc r5, #6272 ; 0x1880 + 865c: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 8660: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 8664: 756f2f62 strbvc r2, [pc, #-3938]! ; 770a + 8668: 74757074 ldrbtvc r7, [r5], #-116 + 866c: 6d72612f ldfvse f6, [r2, #-188]! + 8670: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 8674: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 8678: 612f7365 teqvs pc, r5, ror #6 + 867c: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 8680: 72732f62 rsbsvc r2, r3, #392 ; 0x188 + 8684: 692f3263 stmdbvs pc!, {r0, r1, r5, r6, r9, ip, sp} + 8688: 756c636e strbvc r6, [ip, #-878]! + 868c: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 8690: 2f3a4649 svccs 0x003a4649 + 8694: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 8698: 646c6975 strbtvs r6, [ip], #-2421 + 869c: 3033352f eorscc r3, r3, pc, lsr #10 + 86a0: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 86a4: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 86a8: 612f6e6f teqvs pc, pc, ror #28 + 86ac: 315f6d72 cmpcc pc, r2, ror sp + 86b0: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 86b4: 2d62696c stclcs 9, cr6, [r2, #-432]! + 86b8: 2f303335 svccs 0x00303335 + 86bc: 2f6d7261 svccs 0x006d7261 + 86c0: 2f62696c svccs 0x0062696c + 86c4: 2f706d74 svccs 0x00706d74 + 86c8: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 86cc: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 86d0: 632d2d20 teqvs sp, #2048 ; 0x800 + 86d4: 41207570 teqmi r0, r0, ror r5 + 86d8: 54394d52 ldrtpl r4, [r9], #-3410 + 86dc: 20494d44 subcs r4, r9, r4, asr #26 + 86e0: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} + 86e4: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} + 86e8: 74696c20 strbtvc r6, [r9], #-3104 + 86ec: 20656c74 rsbcs r6, r5, r4, ror ip + 86f0: 5f5f442d svcpl 0x005f442d + 86f4: 5f464c45 svcpl 0x00464c45 + 86f8: 4c495542 cfstr64mi mvdx5, [r9], {66} + 86fc: 205f5f44 subscs r5, pc, r4, asr #30 + 8700: 5f5f442d svcpl 0x005f442d + 8704: 5f4d5241 svcpl 0x004d5241 + 8708: 5242494c subpl r4, r2, #1245184 ; 0x130000 + 870c: 5f595241 svcpl 0x00595241 + 8710: 442d205f strtmi r2, [sp], #-95 + 8714: 5043455f subpl r4, r3, pc, asr r5 + 8718: 5053554c subspl r5, r3, ip, asr #10 + 871c: 2053554c subscs r5, r3, ip, asr #10 + 8720: 2d20532d stccs 3, cr5, [r0, #-180]! + 8724: 2d207377 stccs 3, cr7, [r0, #-476]! + 8728: 4f5f5f44 svcmi 0x005f5f44 + 872c: 4d5f5450 cfldrdmi mvd5, [pc, #-320] + 8730: 55494445 strbpl r4, [r9, #-1093] + 8734: 205f5f4d subscs r5, pc, sp, asr #30 + 8738: 612f3a46 teqvs pc, r6, asr #20 + 873c: 75626d72 strbvc r6, [r2, #-3442]! + 8740: 2f646c69 svccs 0x00646c69 + 8744: 74303335 ldrtvc r3, [r0], #-821 + 8748: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 874c: 6f697469 svcvs 0x00697469 + 8750: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 8754: 31315f6d teqcc r1, sp, ror #30 + 8758: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 875c: 352d6269 strcc r6, [sp, #-617]! + 8760: 612f3033 teqvs pc, r3, lsr r0 + 8764: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 8768: 6f2f6269 svcvs 0x002f6269 + 876c: 75707475 ldrbvc r7, [r0, #-1141]! + 8770: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 8774: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 8778: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 877c: 2f736569 svccs 0x00736569 + 8780: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 8784: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 + 8788: 2f326372 svccs 0x00326372 + 878c: 74737973 ldrbtvc r7, [r3], #-2419 + 8790: 612f6d65 teqvs pc, r5, ror #26 + 8794: 582f6d72 stmdapl pc!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} + 8798: 69786558 ldmdbvs r8!, {r3, r4, r6, r8, sl, sp, lr}^ + 879c: 20732e74 rsbscs r2, r3, r4, ror lr + 87a0: 46206f2d strtmi r6, [r0], -sp, lsr #30 + 87a4: 72615c3a rsbvc r5, r1, #14848 ; 0x3a00 + 87a8: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 87ac: 355c646c ldrbcc r6, [ip, #-1132] + 87b0: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 87b4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 87b8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 87bc: 6d72615c ldfvse f6, [r2, #-368]! + 87c0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 87c4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 87c8: 33352d62 teqcc r5, #6272 ; 0x1880 + 87cc: 72615c30 rsbvc r5, r1, #12288 ; 0x3000 + 87d0: 696c5c6d stmdbvs ip!, {r0, r2, r3, r5, r6, sl, fp, ip, lr}^ + 87d4: 6d745c62 ldclvs 12, cr5, [r4, #-392]! + 87d8: 75625c70 strbvc r5, [r2, #-3184]! + 87dc: 6c646c69 stclvs 12, cr6, [r4], #-420 + 87e0: 6f5c6269 svcvs 0x005c6269 + 87e4: 725c6a62 subsvc r6, ip, #401408 ; 0x62000 + 87e8: 5f743474 svcpl 0x00743474 + 87ec: 585c6c61 ldmdapl ip, {r0, r5, r6, sl, fp, sp, lr}^ + 87f0: 69786558 ldmdbvs r8!, {r3, r4, r6, r8, sl, sp, lr}^ + 87f4: 006f2e74 rsbeq r2, pc, r4, ror lr From f2a0716a29fe4f0b40001e1b836a9a1c8420a2b1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 8 Apr 2009 18:14:58 -0400 Subject: [PATCH 022/471] doesn't work. best guess so far. --- src/maca.c | 18 ++++++++++-- ws.dis | 80 ++++++++++++++++++++++++++++-------------------------- 2 files changed, 56 insertions(+), 42 deletions(-) diff --git a/src/maca.c b/src/maca.c index 51f608cfb..42a529cf9 100644 --- a/src/maca.c +++ b/src/maca.c @@ -2,9 +2,14 @@ /* best format */ #define MAX_DATA 43 -const uint32_t addr[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x8000920c,0x80009210,0x80009300,0x80009304,0x80009308,0x8000930c,0x80009310,0x80009314,0x80009318,0x80009380,0x80009384,0x80009388,0x8000938c,0x80009390,0x80009394,0x8000a008,0x8000a018,0x8000a01c,0x80009424,0x80009434,0x80009438,0x8000943c,0x80009440,0x80009444,0x80009448,0x8000944c,0x80009450,0x80009460,0x80009464,0x8000947c,0x800094e0,0x800094e4,0x800094e8,0x800094ec,0x800094f0,0x800094f4,0x800094f8,0x80009470,0x8000981c,0x80009828 }; +const uint32_t addr_reg_rep[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x8000920c,0x80009210,0x80009300,0x80009304,0x80009308,0x8000930c,0x80009310,0x80009314,0x80009318,0x80009380,0x80009384,0x80009388,0x8000938c,0x80009390,0x80009394,0x8000a008,0x8000a018,0x8000a01c,0x80009424,0x80009434,0x80009438,0x8000943c,0x80009440,0x80009444,0x80009448,0x8000944c,0x80009450,0x80009460,0x80009464,0x8000947c,0x800094e0,0x800094e4,0x800094e8,0x800094ec,0x800094f0,0x800094f4,0x800094f8,0x80009470,0x8000981c,0x80009828 }; -const uint32_t data[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a }; +const uint32_t data_reg_rep[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a }; + +#define MAX_CAL3 22 +const uint32_t addr_cal3[MAX_CAL3] = { 0x80009400,0x80009a04,0x80009a00,0x00000000,0x80009a00,0x80009a00,0x00000000,0x80009a00,0x80009a00,0x00000000,0x80009a00 }; + +const uint32_t data_cal3[MAX_CAL3] = {0x00020017,0x8185a0a4,0x8c900025,0x00011194,0x8c900021,0x8c900027,0x00011194,0x8c90002b,0x8c90002f,0x00011194,0x8c900000}; void init_phy(void) { @@ -83,8 +88,15 @@ void flyback_init(void) { void radio_init(void) { uint32_t i; + + /* cal 3 */ + for(i=0; i: 402fbc: b5f8 push {r3, r4, r5, r6, r7, lr} - 402fbe: 0006 lsls r6, r0, #0 - 402fc0: 000c lsls r4, r1, #0 - 402fc2: 0015 lsls r5, r2, #0 + 402fbe: 0006 lsls r6, r0, #0 //maybe platform clock 24000000 + 402fc0: 000c lsls r4, r1, #0 //maybe dig clock pn + 402fc2: 0015 lsls r5, r2, #0 //maybe loop div 402fc4: 4f39 ldr r7, [pc, #228] (4030ac ) // set r7 to *(4030ac: .word 0x004053f0) 004053f0 : - 402fc6: 21fa movs r1, #250 - 402fc8: 0089 lsls r1, r1, #2 + 402fc6: 21fa movs r1, #250 // r1 gets 250 + 402fc8: 0089 lsls r1, r1, #2 // r1 is 0x1f4 (does this divide 24000000 by 500?) 402fca: f7fd fcc1 bl 400950 - 402fce: 65b8 str r0, [r7, #88] // gRadioTOCCal2_N[88] + 402fce: 65b8 str r0, [r7, #88] // gRadioTOCCal2_N[88] 0x58 402fd0: 4837 ldr r0, [pc, #220] (4030b0 ) // r0 gets 4030b0: 016e3600 .word 0x016e3600 = 240000000 402fd2: 4286 cmp r6, r0 - 402fd4: d001 beq.n 402fda // test for 24MHZ - 402fd6: 617c str r4, [r7, #20] // gRadioTOCCal2_N[20] - 402fd8: 61fd str r5, [r7, #28] // gRadioTOCCal2_N[28] - 402fda: 4c36 ldr r4, [pc, #216] (4030b4 ) //endif 4030b4: .word 0x00402dcc buck_enable + 402fd4: d001 beq.n 402fda // if 24 MHz test for 24MHZ + 402fd6: 617c str r4, [r7, #20] // gRadioTOCCal2_N[20] 0x14 + 402fd8: 61fd str r5, [r7, #28] // gRadioTOCCal2_N[28] 0x1c + 402fda: 4c36 ldr r4, [pc, #216] (4030b4 ) // else endif 4030b4: .word 0x00402dcc buck_enable 402fdc: 4d70 ldr r5, [pc, #448] (4031a0 ) // 0x0040544c ram_init_val - 402fde: 7928 ldrb r0, [r5, #4] // maybe this is a return - 402fe0: 2801 cmp r0, #1 // check if its true ? - 402fe2: d106 bne.n 402ff2 // and skip stuff (to 2ff2) assume skip we have 24MHz + 402fde: 7928 ldrb r0, [r5, #4] // load low byte + 402fe0: 2801 cmp r0, #1 // check if its 1 (it's not) + 402fe2: d106 bne.n 402ff2 // and skip stuff (to 2ff2,HERE) assume skip we have 24MHz 402fe4: 4834 ldr r0, [pc, #208] (4030b8 ) // 4030b8: .word 0x00000f7b - 402fe6: 6378 str r0, [r7, #52] // what's r7? put f7b into gRadioTOCCal2_None24Mhz_c[52] + 402fe6: 6378 str r0, [r7, #52] // what's r7? put f7b into gRadioTOCCal2_None24Mhz_c[52] 0x34 402fe8: 3858 subs r0, #88 - 402fea: 6368 str r0, [r5, #52] // what's r5? maybe ram_init_val[52] + 402fea: 6368 str r0, [r5, #52] // what's r5? maybe ram_init_val[52] 0x34 402fec: 2110 movs r1, #16 402fee: 0020 lsls r0, r4, #0 402ff0: e009 b.n 403006 - 402ff2: 7968 ldrb r0, [r5, #5] // what's r5? looks like ram_init_val[5] - 402ff4: 2801 cmp r0, #1 // another test. - 402ff6: d108 bne.n 40300a // maybe skip to there + 402ff2: 7968 ldrb r0, [r5, #5] // HERE: what's r5? looks like ram_init_val[5] 0x05 + 402ff4: 2801 cmp r0, #1 // another test. not one. (it's 0x1e) + 402ff6: d108 bne.n 40300a // maybe skip to THERE 402ff8: 4830 ldr r0, [pc, #192] (4030bc ) // 4030bc: 00000f7c .word 0x00000f7c - 402ffa: 6378 str r0, [r7, #52] // put f7c into gRadioTOCCal2_None24Mhz_c[52] + 402ffa: 6378 str r0, [r7, #52] // put f7c into gRadioTOCCal2_None24Mhz_c[52] 0x34 402ffc: 3878 subs r0, #120 - 402ffe: 6368 str r0, [r5, #52] // subtract 120 and put it into ram_init_val[52] + 402ffe: 6368 str r0, [r5, #52] // subtract 120 and put it into ram_init_val[52] 0x34 403000: 2120 movs r1, #32 403002: 0020 lsls r0, r4, #0 403004: 3010 adds r0, #16 403006: f000 f96d bl 4032e4 // call InitFromMemory with setup vals? 32 bytes of buck_enable+16? - 40300a: 2128 movs r1, #40 // chould have come from a skip - 40300c: 0038 lsls r0, r7, #0 - 40300e: 3030 adds r0, #48 - 403010: f000 f968 bl 4032e4 // 40 bytes of gRadioTOCCal2_None24Mhz+48? + 40300a: 2128 movs r1, #40 // THERE: chould have come from a skip r1 gets 40 + 40300c: 0038 lsls r0, r7, #0 // r0 is r7 (cal2) + 40300e: 3030 adds r0, #48 // now its cal2+48 which is 0x405420 (increment by sizeof?) + 403010: f000 f968 bl 4032e4 // 40 entries of gRadioTOCCal2_None24Mhz+48?//i think this bombs b/c zero... 403014: 4826 ldr r0, [pc, #152] (4030b0 ) // 4030b0: 016e3600 .word 0x016e3600 403016: 4286 cmp r6, r0 403018: d103 bne.n 403022 // another test for 24MHz @@ -5225,27 +5225,27 @@ Disassembly of section P2: 403020: e001 b.n 403026 // goto endif 403022: 2130 movs r1, #48 // else, guissing else is for not 24MHz since r7 is involved 403024: 0038 lsls r0, r7, #0 - 403026: f000 f95d bl 4032e4 // endif, do InitFromMemory, 8 bytes from + 403026: f000 f95d bl 4032e4 // endif, do InitFromMemory, 8 entries from 00402dfc : 40302a: 2158 movs r1, #88 40302c: 0020 lsls r0, r4, #0 40302e: 3038 adds r0, #56 - 403030: f000 f958 bl 4032e4 // do another + 403030: f000 f958 bl 4032e4 // do another then do 88 entries from r4+56 0x2e14 (in cal 3) 403034: 481e ldr r0, [pc, #120] (4030b0 ) 403036: 4286 cmp r6, r0 // check for 24MHZ - 403038: d004 beq.n 403044 + 403038: d004 beq.n 403044 // goto endif 40303a: 2108 movs r1, #8 40303c: 0020 lsls r0, r4, #0 40303e: 3090 adds r0, #144 - 403040: f000 f950 bl 4032e4 // goto endif - 403044: 2120 movs r1, #32 // else + 403040: f000 f950 bl 4032e4 + 403044: 2120 movs r1, #32 // endif 403046: 0028 lsls r0, r5, #0 403048: 3018 adds r0, #24 - 40304a: f000 f94b bl 4032e4 // endif + 40304a: f000 f94b bl 4032e4 // do 32 entries in r5+24 this might be zero... 40304e: 21ac movs r1, #172 - 403050: 0049 lsls r1, r1, #1 + 403050: 0049 lsls r1, r1, #1 // r1 gets 344 403052: 0020 lsls r0, r4, #0 403054: 3098 adds r0, #152 - 403056: f000 f945 bl 4032e4 // another + 403056: f000 f945 bl 4032e4 // do 344 entries from r4+152 0x2e74 (in reg replacment) 40305a: 20f8 movs r0, #248 // r0 gets 0xf8 40305c: 0240 lsls r0, r0, #9 // r0 is now 0x1F000 40305e: f000 f8db bl 403218 // from flash --- this might be the regreplacment since that's in codespace... @@ -5261,7 +5261,7 @@ Disassembly of section P2: 403076: 2120 movs r1, #32 403078: 3410 adds r4, #16 40307a: 0020 lsls r0, r4, #0 - 40307c: f000 f932 bl 4032e4 + 40307c: f000 f932 bl 4032e4 // do 32 entries but now from 0x2e74 + 16 0x2e84 403080: 480f ldr r0, [pc, #60] (4030c0 ) 403082: f000 f881 bl 403188 403086: 2400 movs r4, #0 @@ -5549,6 +5549,8 @@ Disassembly of section P2: 4032dc: 00405448 .word 0x00405448 4032e0: 00000abc .word 0x00000abc +// 000 entries exit initfrom memory + 004032e4 : 4032e4: b570 push {r4, r5, r6, lr} 4032e6: 0005 lsls r5, r0, #0 // r5 is first arg @@ -5556,17 +5558,17 @@ Disassembly of section P2: 4032ea: 2600 movs r6, #0 // r6 gets 0 4032ec: 2d00 cmp r5, #0 // if r5 is zero 4032ee: d001 beq.n 4032f4 // then branch to 1 - 4032f0: 0760 lsls r0, r4, #29 // else r4<<29 what does this do to z? + 4032f0: 0760 lsls r0, r4, #29 // else r4<<29 what does this do to z? some kind of bounds check? max size check? 4032f2: d002 beq.n 4032fa // branch to 2: if z is set 4032f4: 2000 movs r0, #0 // 1: r0 get 0 4032f6: e00c b.n 403312 // goto end: 4032f8: 1836 adds r6, r6, r0 // loop: r6 = r6 + r0 - 4032fa: 08a0 lsrs r0, r4, #2 // 2: r0 = r4 >> 2 + 4032fa: 08a0 lsrs r0, r4, #2 // 2: r0 = r4 >> 2 r0 has the size/4? 4032fc: 4286 cmp r6, r0 // compare r6 and r0 - 4032fe: d207 bcs.n 403310 // branch to 3: if higher or same - 403300: 00b0 lsls r0, r6, #2 // r0 = r6 << 2 - 403302: 1828 adds r0, r5, r0 // r0 = r5 + r0 - 403304: f7ff ff4e bl 4031a4 // call InitExecturEntry (maybe this does the copy?) + 4032fe: d207 bcs.n 403310 // branch to 3: if higher or same //another bounds check? + 403300: 00b0 lsls r0, r6, #2 // r0 = r6 << 2 //align check? + 403302: 1828 adds r0, r5, r0 // r0 = r5 + r0 //r0 has base plus current offset.. maybe + 403304: f7ff ff4e bl 4031a4 // call InitExecturEntry (maybe this does the copy?) //do the entry 403308: 2800 cmp r0, #0 // compare r0 to 0 40330a: d1f5 bne.n 4032f8 // if not 0 branch to loop: 40330c: 0030 lsls r0, r6, #0 // r0 = r6 From d258688e4798f471881277ffbbc1c74751abfbef Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 8 Apr 2009 19:20:07 -0400 Subject: [PATCH 023/471] moved ws.dis to a safer place (away from distclean) --- ws.dis => doc/ws.dis | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ws.dis => doc/ws.dis (100%) diff --git a/ws.dis b/doc/ws.dis similarity index 100% rename from ws.dis rename to doc/ws.dis From 4a28f980d95935824ec79a5d14d17596c7cf6d34 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 10 Apr 2009 12:14:26 -0400 Subject: [PATCH 024/471] initial qemu support. --- qemu/Makefile.target | 650 +++ qemu/README.qemu.mc1322x | 15 + qemu/hw/boards.h | 104 + qemu/hw/mc1322x.c | 56 + qemu/hw/mc1322x.h | 37 + qemu/target-arm/helper.c | 1864 ++++++++ qemu/vl.c | 9003 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 11729 insertions(+) create mode 100644 qemu/Makefile.target create mode 100644 qemu/README.qemu.mc1322x create mode 100644 qemu/hw/boards.h create mode 100644 qemu/hw/mc1322x.c create mode 100644 qemu/hw/mc1322x.h create mode 100644 qemu/target-arm/helper.c create mode 100644 qemu/vl.c diff --git a/qemu/Makefile.target b/qemu/Makefile.target new file mode 100644 index 000000000..b8ca4b194 --- /dev/null +++ b/qemu/Makefile.target @@ -0,0 +1,650 @@ +include config.mak + +TARGET_BASE_ARCH:=$(TARGET_ARCH) +ifeq ($(TARGET_ARCH), x86_64) +TARGET_BASE_ARCH:=i386 +endif +ifeq ($(TARGET_ARCH), mipsn32) +TARGET_BASE_ARCH:=mips +endif +ifeq ($(TARGET_ARCH), mips64) +TARGET_BASE_ARCH:=mips +endif +ifeq ($(TARGET_ARCH), ppc64) +TARGET_BASE_ARCH:=ppc +endif +ifeq ($(TARGET_ARCH), ppc64h) +TARGET_BASE_ARCH:=ppc +endif +ifeq ($(TARGET_ARCH), ppcemb) +TARGET_BASE_ARCH:=ppc +endif +ifeq ($(TARGET_ARCH), sparc64) +TARGET_BASE_ARCH:=sparc +endif +TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH) +VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw +CPPFLAGS=-I. -I.. -I$(TARGET_PATH) -I$(SRC_PATH) -MMD -MP -DNEED_CPU_H +ifdef CONFIG_DARWIN_USER +VPATH+=:$(SRC_PATH)/darwin-user +CPPFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH) +endif +ifdef CONFIG_LINUX_USER +VPATH+=:$(SRC_PATH)/linux-user +ifndef TARGET_ABI_DIR + TARGET_ABI_DIR=$(TARGET_ARCH) +endif +CPPFLAGS+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) +endif +BASE_CFLAGS= +BASE_LDFLAGS= +#CFLAGS+=-Werror +LIBS= +HELPER_CFLAGS=$(CFLAGS) +DYNGEN=../dyngen$(EXESUF) +# user emulator name +ifndef TARGET_ARCH2 +TARGET_ARCH2=$(TARGET_ARCH) +endif +ifeq ($(TARGET_ARCH),arm) + ifeq ($(TARGET_WORDS_BIGENDIAN),yes) + TARGET_ARCH2=armeb + endif +endif +ifeq ($(TARGET_ARCH),sh4) + ifeq ($(TARGET_WORDS_BIGENDIAN),yes) + TARGET_ARCH2=sh4eb + endif +endif +ifeq ($(TARGET_ARCH),mips) + ifneq ($(TARGET_WORDS_BIGENDIAN),yes) + TARGET_ARCH2=mipsel + endif +endif +ifeq ($(TARGET_ARCH),mipsn32) + ifneq ($(TARGET_WORDS_BIGENDIAN),yes) + TARGET_ARCH2=mipsn32el + endif +endif +ifeq ($(TARGET_ARCH),mips64) + ifneq ($(TARGET_WORDS_BIGENDIAN),yes) + TARGET_ARCH2=mips64el + endif +endif +QEMU_USER=qemu-$(TARGET_ARCH2) +# system emulator name +ifdef CONFIG_SOFTMMU +ifeq ($(TARGET_ARCH), i386) +QEMU_SYSTEM=qemu$(EXESUF) +else +QEMU_SYSTEM=qemu-system-$(TARGET_ARCH2)$(EXESUF) +endif +else +QEMU_SYSTEM=qemu-fast +endif + +ifdef CONFIG_USER_ONLY +PROGS=$(QEMU_USER) +else +PROGS+=$(QEMU_SYSTEM) +ifndef CONFIG_SOFTMMU +CONFIG_STATIC=y +endif +endif # !CONFIG_USER_ONLY + +ifdef CONFIG_STATIC +BASE_LDFLAGS+=-static +endif + +# We require -O2 to avoid the stack setup prologue in EXIT_TB +OP_CFLAGS := -Wall -O2 -g -fno-strict-aliasing + +# cc-option +# Usage: OP_CFLAGS+=$(call cc-option, -falign-functions=0, -malign-functions=0) + +cc-option = $(shell if $(CC) $(OP_CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ + > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) + +OP_CFLAGS+=$(call cc-option, -fno-reorder-blocks, "") +OP_CFLAGS+=$(call cc-option, -fno-gcse, "") +OP_CFLAGS+=$(call cc-option, -fno-tree-ch, "") +OP_CFLAGS+=$(call cc-option, -fno-optimize-sibling-calls, "") +OP_CFLAGS+=$(call cc-option, -fno-crossjumping, "") +OP_CFLAGS+=$(call cc-option, -fno-align-labels, "") +OP_CFLAGS+=$(call cc-option, -fno-align-jumps, "") +OP_CFLAGS+=$(call cc-option, -fno-align-functions, $(call cc-option, -malign-functions=0, "")) +OP_CFLAGS+=$(call cc-option, -fno-section-anchors, "") + +ifeq ($(ARCH),i386) +HELPER_CFLAGS+=-fomit-frame-pointer +OP_CFLAGS+=-mpreferred-stack-boundary=2 -fomit-frame-pointer +ifdef TARGET_GPROF +USE_I386_LD=y +endif +ifdef CONFIG_STATIC +USE_I386_LD=y +endif +ifdef USE_I386_LD +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +else +ifdef CONFIG_LINUX_USER +# WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object +# that the kernel ELF loader considers as an executable. I think this +# is the simplest way to make it self virtualizable! +BASE_LDFLAGS+=-Wl,-shared +endif +endif +endif + +ifeq ($(ARCH),x86_64) + ifneq ($(CONFIG_SOLARIS),yes) + BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld + endif +endif + +ifeq ($(ARCH),ppc) +CPPFLAGS+= -D__powerpc__ +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),s390) +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),sparc) + BASE_CFLAGS+=-ffixed-g2 -ffixed-g3 + OP_CFLAGS+=-fno-delayed-branch -ffixed-i0 + ifeq ($(CONFIG_SOLARIS),yes) + OP_CFLAGS+=-fno-omit-frame-pointer + else + BASE_CFLAGS+=-ffixed-g1 -ffixed-g6 + HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 + # -static is used to avoid g1/g3 usage by the dynamic linker + BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static + endif +endif + +ifeq ($(ARCH),sparc64) + BASE_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7 + OP_CFLAGS+=-mcpu=ultrasparc -m64 -fno-delayed-branch -ffixed-i0 + ifneq ($(CONFIG_SOLARIS),yes) + BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld + OP_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7 + endif +endif + +ifeq ($(ARCH),alpha) +# -msmall-data is not used for OP_CFLAGS because we want two-instruction +# relocations for the constant constructions +# Ensure there's only a single GP +BASE_CFLAGS+=-msmall-data +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),ia64) +BASE_CFLAGS+=-mno-sdata +OP_CFLAGS+=-mno-sdata +BASE_LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),arm) +OP_CFLAGS+=-mno-sched-prolog -fno-omit-frame-pointer +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),m68k) +OP_CFLAGS+=-fomit-frame-pointer +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),mips) +OP_CFLAGS+=-mabi=32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0 +ifeq ($(WORDS_BIGENDIAN),yes) +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +else +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld +endif +endif + +ifeq ($(ARCH),mips64) +OP_CFLAGS+=-mabi=n32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0 +ifeq ($(WORDS_BIGENDIAN),yes) +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +else +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld +endif +endif + +ifeq ($(CONFIG_DARWIN),yes) +LIBS+=-lmx +endif + +ifdef CONFIG_DARWIN_USER +# Leave some space for the regular program loading zone +BASE_LDFLAGS+=-Wl,-segaddr,__STD_PROG_ZONE,0x1000 -image_base 0x0e000000 +endif + +BASE_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS) +BASE_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS) +OP_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS) +OP_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS) + +######################################################### + +CPPFLAGS+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE +LIBS+=-lm +ifndef CONFIG_USER_ONLY +LIBS+=-lz +endif +ifdef CONFIG_WIN32 +LIBS+=-lwinmm -lws2_32 -liphlpapi +endif +ifdef CONFIG_SOLARIS +LIBS+=-lsocket -lnsl -lresolv +ifdef NEEDS_LIBSUNMATH +LIBS+=-lsunmath +LDFLAGS+=-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib +OP_CFLAGS+=-I/opt/SUNWspro/prod/include/cc +BASE_CFLAGS+=-I/opt/SUNWspro/prod/include/cc +endif +endif + +# profiling code +ifdef TARGET_GPROF +BASE_LDFLAGS+=-p +main.o: BASE_CFLAGS+=-p +endif + +ifdef CONFIG_LINUX_USER +OBJS= main.o syscall.o strace.o mmap.o signal.o path.o osdep.o thunk.o \ + elfload.o linuxload.o uaccess.o +LIBS+= $(AIOLIBS) +ifdef TARGET_HAS_BFLT +OBJS+= flatload.o +endif +ifdef TARGET_HAS_ELFLOAD32 +OBJS+= elfload32.o +elfload32.o: elfload.c +endif + +ifeq ($(TARGET_ARCH), i386) +OBJS+= vm86.o +endif +ifeq ($(TARGET_ARCH), arm) +OBJS+=nwfpe/fpa11.o nwfpe/fpa11_cpdo.o \ +nwfpe/fpa11_cpdt.o nwfpe/fpa11_cprt.o nwfpe/fpopcode.o nwfpe/single_cpdo.o \ + nwfpe/double_cpdo.o nwfpe/extended_cpdo.o arm-semi.o +endif +ifeq ($(TARGET_ARCH), m68k) +OBJS+= m68k-sim.o m68k-semi.o +endif +endif #CONFIG_LINUX_USER + +ifdef CONFIG_DARWIN_USER +OBJS= main.o commpage.o machload.o mmap.o osdep.o signal.o syscall.o thunk.o +endif + +SRCS:= $(OBJS:.o=.c) +OBJS+= libqemu.a + +# cpu emulator library +LIBOBJS=exec.o kqemu.o translate-op.o translate-all.o cpu-exec.o\ + translate.o op.o host-utils.o +ifdef CONFIG_SOFTFLOAT +LIBOBJS+=fpu/softfloat.o +else +LIBOBJS+=fpu/softfloat-native.o +endif +CPPFLAGS+=-I$(SRC_PATH)/fpu + +ifeq ($(TARGET_ARCH), i386) +LIBOBJS+=helper.o helper2.o +endif + +ifeq ($(TARGET_ARCH), x86_64) +LIBOBJS+=helper.o helper2.o +endif + +ifeq ($(TARGET_BASE_ARCH), ppc) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), mips) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), sparc) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), arm) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), sh4) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), m68k) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), alpha) +LIBOBJS+= op_helper.o helper.o alpha_palcode.o +endif + +ifeq ($(TARGET_BASE_ARCH), cris) +LIBOBJS+= op_helper.o helper.o +LIBOBJS+= cris-dis.o + +ifndef CONFIG_USER_ONLY +LIBOBJS+= mmu.o +endif +endif + +# NOTE: the disassembler code is only needed for debugging +LIBOBJS+=disas.o +ifeq ($(findstring i386, $(TARGET_ARCH) $(ARCH)),i386) +USE_I386_DIS=y +endif +ifeq ($(findstring x86_64, $(TARGET_ARCH) $(ARCH)),x86_64) +USE_I386_DIS=y +endif +ifdef USE_I386_DIS +LIBOBJS+=i386-dis.o +endif +ifeq ($(findstring alpha, $(TARGET_ARCH) $(ARCH)),alpha) +LIBOBJS+=alpha-dis.o +endif +ifeq ($(findstring ppc, $(TARGET_BASE_ARCH) $(ARCH)),ppc) +LIBOBJS+=ppc-dis.o +endif +ifeq ($(findstring mips, $(TARGET_BASE_ARCH) $(ARCH)),mips) +LIBOBJS+=mips-dis.o +endif +ifeq ($(findstring sparc, $(TARGET_BASE_ARCH) $(ARCH)),sparc) +LIBOBJS+=sparc-dis.o +endif +ifeq ($(findstring arm, $(TARGET_ARCH) $(ARCH)),arm) +LIBOBJS+=arm-dis.o +endif +ifeq ($(findstring m68k, $(TARGET_ARCH) $(ARCH)),m68k) +LIBOBJS+=m68k-dis.o +endif +ifeq ($(findstring sh4, $(TARGET_ARCH) $(ARCH)),sh4) +LIBOBJS+=sh4-dis.o +endif +ifeq ($(findstring s390, $(TARGET_ARCH) $(ARCH)),s390) +LIBOBJS+=s390-dis.o +endif + +ifdef CONFIG_GDBSTUB +OBJS+=gdbstub.o +endif + +all: $(PROGS) + +$(QEMU_USER): $(OBJS) + $(CC) $(LDFLAGS) $(BASE_LDFLAGS) -o $@ $^ $(LIBS) +ifeq ($(ARCH),alpha) +# Mark as 32 bit binary, i. e. it will be mapped into the low 31 bit of +# the address space (31 bit so sign extending doesn't matter) + echo -ne '\001\000\000\000' | dd of=qemu bs=1 seek=48 count=4 conv=notrunc +endif + +# must use static linking to avoid leaving stuff in virtual address space +VL_OBJS=vl.o osdep.o monitor.o pci.o loader.o isa_mmio.o +# XXX: suppress QEMU_TOOL tests +ifdef CONFIG_WIN32 +VL_OBJS+=block-raw-win32.o +else +VL_OBJS+=block-raw-posix.o +endif + +ifdef CONFIG_ALSA +LIBS += -lasound +endif +ifdef CONFIG_DSOUND +LIBS += -lole32 -ldxguid +endif +ifdef CONFIG_FMOD +LIBS += $(CONFIG_FMOD_LIB) +endif + +SOUND_HW = sb16.o es1370.o +ifdef CONFIG_ADLIB +SOUND_HW += fmopl.o adlib.o +endif + +ifdef CONFIG_VNC_TLS +CPPFLAGS += $(CONFIG_VNC_TLS_CFLAGS) +LIBS += $(CONFIG_VNC_TLS_LIBS) +endif + +# SCSI layer +VL_OBJS+= lsi53c895a.o + +# USB layer +VL_OBJS+= usb-ohci.o + +# EEPROM emulation +VL_OBJS += eeprom93xx.o + +# PCI network cards +VL_OBJS += eepro100.o +VL_OBJS += ne2000.o +VL_OBJS += pcnet.o +VL_OBJS += rtl8139.o + +ifeq ($(TARGET_BASE_ARCH), i386) +# Hardware support +VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o +VL_OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o +VL_OBJS+= cirrus_vga.o apic.o parallel.o acpi.o piix_pci.o +VL_OBJS+= usb-uhci.o vmmouse.o vmport.o vmware_vga.o +CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE +endif +ifeq ($(TARGET_BASE_ARCH), ppc) +CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE +# shared objects +VL_OBJS+= ppc.o ide.o vga.o $(SOUND_HW) dma.o openpic.o +# PREP target +VL_OBJS+= pckbd.o ps2.o serial.o i8259.o i8254.o fdc.o m48t59.o mc146818rtc.o +VL_OBJS+= prep_pci.o ppc_prep.o +# Mac shared devices +VL_OBJS+= macio.o cuda.o adb.o mac_nvram.o mac_dbdma.o +# OldWorld PowerMac +VL_OBJS+= heathrow_pic.o grackle_pci.o ppc_oldworld.o +# NewWorld PowerMac +VL_OBJS+= unin_pci.o ppc_chrp.o +# PowerPC 4xx boards +VL_OBJS+= pflash_cfi02.o ppc4xx_devs.o ppc405_uc.o ppc405_boards.o +endif +ifeq ($(TARGET_BASE_ARCH), mips) +VL_OBJS+= mips_r4k.o mips_malta.o mips_pica61.o mips_mipssim.o +VL_OBJS+= mips_timer.o mips_int.o dma.o vga.o serial.o i8254.o i8259.o +VL_OBJS+= jazz_led.o +VL_OBJS+= ide.o gt64xxx.o pckbd.o ps2.o fdc.o mc146818rtc.o usb-uhci.o acpi.o ds1225y.o +VL_OBJS+= piix_pci.o parallel.o cirrus_vga.o $(SOUND_HW) +VL_OBJS+= mipsnet.o +VL_OBJS+= pflash_cfi01.o +CPPFLAGS += -DHAS_AUDIO +endif +ifeq ($(TARGET_BASE_ARCH), cris) +VL_OBJS+= etraxfs.o +VL_OBJS+= ptimer.o +VL_OBJS+= etraxfs_timer.o +VL_OBJS+= etraxfs_ser.o +endif +ifeq ($(TARGET_BASE_ARCH), sparc) +ifeq ($(TARGET_ARCH), sparc64) +VL_OBJS+= sun4u.o ide.o pckbd.o ps2.o vga.o apb_pci.o +VL_OBJS+= fdc.o mc146818rtc.o serial.o m48t59.o +VL_OBJS+= cirrus_vga.o parallel.o ptimer.o +else +VL_OBJS+= sun4m.o tcx.o pcnet.o iommu.o m48t59.o slavio_intctl.o +VL_OBJS+= slavio_timer.o slavio_serial.o slavio_misc.o fdc.o esp.o sparc32_dma.o +VL_OBJS+= cs4231.o ptimer.o eccmemctl.o sbi.o sun4c_intctl.o +endif +endif +ifeq ($(TARGET_BASE_ARCH), arm) +VL_OBJS+= integratorcp.o versatilepb.o ps2.o smc91c111.o arm_pic.o arm_timer.o +VL_OBJS+= arm_boot.o pl011.o pl031.o pl050.o pl080.o pl110.o pl181.o pl190.o +VL_OBJS+= versatile_pci.o ptimer.o +VL_OBJS+= realview_gic.o realview.o arm_sysctl.o mpcore.o +VL_OBJS+= armv7m.o armv7m_nvic.o stellaris.o pl022.o stellaris_enet.o +VL_OBJS+= pl061.o +VL_OBJS+= arm-semi.o +VL_OBJS+= pxa2xx.o pxa2xx_pic.o pxa2xx_gpio.o pxa2xx_timer.o pxa2xx_dma.o +VL_OBJS+= pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o +VL_OBJS+= pflash_cfi01.o gumstix.o +VL_OBJS+= spitz.o ide.o serial.o nand.o ecc.o +VL_OBJS+= omap.o omap_lcdc.o omap1_clk.o omap_mmc.o omap_i2c.o +VL_OBJS+= palm.o tsc210x.o +VL_OBJS+= mst_fpga.o mainstone.o +VL_OBJS+= mc1322x.o +CPPFLAGS += -DHAS_AUDIO +endif +ifeq ($(TARGET_BASE_ARCH), sh4) +VL_OBJS+= shix.o r2d.o sh7750.o sh7750_regnames.o tc58128.o +VL_OBJS+= sh_timer.o ptimer.o sh_serial.o sh_intc.o +endif +ifeq ($(TARGET_BASE_ARCH), m68k) +VL_OBJS+= an5206.o mcf5206.o ptimer.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o +VL_OBJS+= m68k-semi.o dummy_m68k.o +endif +ifdef CONFIG_GDBSTUB +VL_OBJS+=gdbstub.o +endif +ifdef CONFIG_COCOA +COCOA_LIBS=-F/System/Library/Frameworks -framework Cocoa -framework IOKit +ifdef CONFIG_COREAUDIO +COCOA_LIBS+=-framework CoreAudio +endif +endif +ifdef CONFIG_SLIRP +CPPFLAGS+=-I$(SRC_PATH)/slirp +endif + +VL_LDFLAGS=$(VL_OS_LDFLAGS) +VL_LIBS=$(AIOLIBS) +# specific flags are needed for non soft mmu emulator +ifdef CONFIG_STATIC +VL_LDFLAGS+=-static +endif +ifndef CONFIG_SOFTMMU +VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/i386-vl.ld +endif +ifndef CONFIG_DARWIN +ifndef CONFIG_WIN32 +ifndef CONFIG_SOLARIS +VL_LIBS+=-lutil +endif +endif +endif +ifdef TARGET_GPROF +vl.o: BASE_CFLAGS+=-p +VL_LDFLAGS+=-p +endif + +ifeq ($(ARCH),ia64) +VL_LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/ia64.ld +endif + +ifeq ($(ARCH),sparc64) + VL_LDFLAGS+=-m64 + ifneq ($(CONFIG_SOLARIS),yes) + VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld + endif +endif + +ifeq ($(ARCH),x86_64) + VL_LDFLAGS+=-m64 + ifneq ($(CONFIG_SOLARIS),yes) + VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld + endif +endif + +ifdef CONFIG_WIN32 +SDL_LIBS := $(filter-out -mwindows, $(SDL_LIBS)) -mconsole +endif + +$(QEMU_SYSTEM): $(VL_OBJS) ../libqemu_common.a libqemu.a + $(CC) $(VL_LDFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(VL_LIBS) + +depend: $(SRCS) + $(CC) -MM $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) $^ 1>.depend + +vldepend: $(VL_OBJS:.o=.c) + $(CC) -MM $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) $^ 1>.depend + +# libqemu + +libqemu.a: $(LIBOBJS) + rm -f $@ + $(AR) rcs $@ $(LIBOBJS) + +translate.o: translate.c gen-op.h opc.h cpu.h + +translate-all.o: translate-all.c opc.h cpu.h + +translate-op.o: translate-all.c op.h opc.h cpu.h + +op.h: op.o $(DYNGEN) + $(DYNGEN) -o $@ $< + +opc.h: op.o $(DYNGEN) + $(DYNGEN) -c -o $@ $< + +gen-op.h: op.o $(DYNGEN) + $(DYNGEN) -g -o $@ $< + +op.o: op.c + $(CC) $(OP_CFLAGS) $(CPPFLAGS) -c -o $@ $< + +# HELPER_CFLAGS is used for all the code compiled with static register +# variables +ifeq ($(TARGET_BASE_ARCH), i386) +# XXX: rename helper.c to op_helper.c +helper.o: helper.c + $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< +else +op_helper.o: op_helper.c + $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< +endif + +cpu-exec.o: cpu-exec.c + $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< + +# Note: this is a workaround. The real fix is to avoid compiling +# cpu_signal_handler() in cpu-exec.c. +signal.o: signal.c + $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< + +%.o: %.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< + +%.o: %.S + $(CC) $(CPPFLAGS) -c -o $@ $< + +clean: + rm -f *.o *.a *~ $(PROGS) gen-op.h opc.h op.h nwfpe/*.o fpu/*.o + rm -f *.d */*.d + +install: all +ifneq ($(PROGS),) + $(INSTALL) -m 755 -s $(PROGS) "$(DESTDIR)$(bindir)" +endif + +ifneq ($(wildcard .depend),) +include .depend +endif + +ifeq (1, 0) +audio.o sdlaudio.o dsoundaudio.o ossaudio.o wavaudio.o noaudio.o \ +fmodaudio.o alsaaudio.o mixeng.o sb16.o es1370.o gus.o adlib.o: \ +CFLAGS := $(CFLAGS) -Wall -Werror -W -Wsign-compare +endif + +# Include automatically generated dependency files +-include $(wildcard *.d */*.d) diff --git a/qemu/README.qemu.mc1322x b/qemu/README.qemu.mc1322x new file mode 100644 index 000000000..d334793bc --- /dev/null +++ b/qemu/README.qemu.mc1322x @@ -0,0 +1,15 @@ +apt-get source qemu +use these files in place of those in the qemu tree + +Build qemu + ./configure --target-list=arm-softmmu + make + +Run with + arm-softmmu/qemu-system-arm -S -M mc1322x -nographic -pflash /home/malvira/mc1322x-tests/tests/blink-red.bin + +which will load the bin at 0x00400000 and execution will start there (type c). + +I plan to add a way to load a rom image as well... + + diff --git a/qemu/hw/boards.h b/qemu/hw/boards.h new file mode 100644 index 000000000..6e56cb37a --- /dev/null +++ b/qemu/hw/boards.h @@ -0,0 +1,104 @@ +/* Declarations for use by board files for creating devices. */ + +#ifndef HW_BOARDS_H +#define HW_BOARDS_H + +typedef void QEMUMachineInitFunc(int ram_size, int vga_ram_size, + const char *boot_device, DisplayState *ds, + const char *kernel_filename, + const char *kernel_cmdline, + const char *initrd_filename, + const char *cpu_model); + +typedef struct QEMUMachine { + const char *name; + const char *desc; + QEMUMachineInitFunc *init; + struct QEMUMachine *next; +} QEMUMachine; + +int qemu_register_machine(QEMUMachine *m); + +/* Axis ETRAX. */ +extern QEMUMachine bareetraxfs_machine; + +/* pc.c */ +extern QEMUMachine pc_machine; +extern QEMUMachine isapc_machine; + +/* ppc.c */ +extern QEMUMachine prep_machine; +extern QEMUMachine core99_machine; +extern QEMUMachine heathrow_machine; +extern QEMUMachine ref405ep_machine; +extern QEMUMachine taihu_machine; + +/* mips_r4k.c */ +extern QEMUMachine mips_machine; + +/* mips_malta.c */ +extern QEMUMachine mips_malta_machine; + +/* mips_pica61.c */ +extern QEMUMachine mips_pica61_machine; + +/* mips_mipssim.c */ +extern QEMUMachine mips_mipssim_machine; + +/* shix.c */ +extern QEMUMachine shix_machine; + +/* r2d.c */ +extern QEMUMachine r2d_machine; + +/* sun4m.c */ +extern QEMUMachine ss5_machine, ss10_machine, ss600mp_machine, ss20_machine; +extern QEMUMachine ss2_machine; +extern QEMUMachine ss1000_machine, ss2000_machine; + +/* sun4u.c */ +extern QEMUMachine sun4u_machine; + +/* integratorcp.c */ +extern QEMUMachine integratorcp_machine; + +/* versatilepb.c */ +extern QEMUMachine versatilepb_machine; +extern QEMUMachine versatileab_machine; + +/* realview.c */ +extern QEMUMachine realview_machine; + +/* spitz.c */ +extern QEMUMachine akitapda_machine; +extern QEMUMachine spitzpda_machine; +extern QEMUMachine borzoipda_machine; +extern QEMUMachine terrierpda_machine; + +/* palm.c */ +extern QEMUMachine palmte_machine; + +/* gumstix.c */ +extern QEMUMachine connex_machine; +extern QEMUMachine verdex_machine; + +/* mc1322x.c */ +extern QEMUMachine mc1322x_machine; + +/* stellaris.c */ +extern QEMUMachine lm3s811evb_machine; +extern QEMUMachine lm3s6965evb_machine; + +/* an5206.c */ +extern QEMUMachine an5206_machine; + +/* mcf5208.c */ +extern QEMUMachine mcf5208evb_machine; + +/* dummy_m68k.c */ +extern QEMUMachine dummy_m68k_machine; + +/* mainstone.c */ +extern QEMUMachine mainstone2_machine; + +#endif diff --git a/qemu/hw/mc1322x.c b/qemu/hw/mc1322x.c new file mode 100644 index 000000000..39bf026d5 --- /dev/null +++ b/qemu/hw/mc1322x.c @@ -0,0 +1,56 @@ +/* Freescale mc1322x support + * + * Copyright (c) 2009 Mariano Alvira + * Written by Mariano Alvira + * + * This code is licenced under the GPL. + */ + +#include "hw.h" +#include "mc1322x.h" +#include "sysemu.h" +#include "boards.h" +#include "flash.h" + +static const int sector_len = 128 * 1024; + +/* Initialize a MC1322x (ARM7) */ +struct mc1322x_state_s *mc1322x_init(void) +{ + struct mc1322x_state_s *s; + int index; + + s = (struct mc1322x_state_s *) qemu_mallocz(sizeof(struct mc1322x_state_s)); + + s->env = cpu_init("mc1322x"); + if (!s->env) { + fprintf(stderr, "Unable to find CPU definition\n"); + exit(1); + } + register_savevm("cpu", 0, ARM_CPU_SAVE_VERSION, cpu_save, cpu_load, + s->env); + + /* SDRAM & Internal Memory Storage */ + cpu_register_physical_memory(MC1322X_ROMBASE, MC1322X_ROMSIZE, + qemu_ram_alloc(MC1322X_ROMSIZE) | IO_MEM_RAM); + cpu_register_physical_memory(MC1322X_RAMBASE, MC1322X_RAMSIZE, + qemu_ram_alloc(MC1322X_RAMSIZE) | IO_MEM_RAM); + + index = drive_get_index(IF_PFLASH, 0, 0); + if (!pflash_cfi01_register(0x00400000, qemu_ram_alloc(MC1322X_RAMBASE), + drives_table[index].bdrv, sector_len, MC1322X_RAMBASE / sector_len, + 2, 0, 0, 0, 0)) { + fprintf(stderr, "qemu: Error registering flash memory.\n"); + exit(1); + } + + s->env->regs[15] = 0x00400000; + + return s; +} + +QEMUMachine mc1322x_machine = { + "mc1322x", + "mc1322x board", + mc1322x_init, +}; diff --git a/qemu/hw/mc1322x.h b/qemu/hw/mc1322x.h new file mode 100644 index 000000000..1d7a36253 --- /dev/null +++ b/qemu/hw/mc1322x.h @@ -0,0 +1,37 @@ +/* Freescale mc1322x support + * + * Copyright (c) 2009 Mariano Alvira + * Written by Mariano Alvira + * + * This code is licenced under the GPL. + */ + +#ifndef PXA_H +#define PXA_H "pxa.h" + +#define MC1322X_ROMBASE 0x00000000 +#define MC1322X_ROMSIZE 0x00014000 +#define MC1322X_RAMBASE 0x04000000 +#define MC1322X_RAMSIZE 0x00020000 + +/* mc1322x.c */ +struct mc1322x_state_s { + CPUState *env; + qemu_irq *pic; + qemu_irq reset; + struct mc1322x_gpio_info_s *gpio; + struct mc1322x_keypad_s *kp; + + /* Power management */ + target_phys_addr_t pm_base; + uint32_t pm_regs[0x40]; + + /* Clock management */ + target_phys_addr_t cm_base; + uint32_t cm_regs[4]; + uint32_t clkcfg; + +}; + + +#endif diff --git a/qemu/target-arm/helper.c b/qemu/target-arm/helper.c new file mode 100644 index 000000000..19f0a215c --- /dev/null +++ b/qemu/target-arm/helper.c @@ -0,0 +1,1864 @@ +#include +#include +#include + +#include "cpu.h" +#include "exec-all.h" +#include "gdbstub.h" + +static uint32_t cortexa8_cp15_c0_c1[8] = +{ 0x1031, 0x11, 0x400, 0, 0x31100003, 0x20000000, 0x01202000, 0x11 }; + +static uint32_t cortexa8_cp15_c0_c2[8] = +{ 0x00101111, 0x12112111, 0x21232031, 0x11112131, 0x00111142, 0, 0, 0 }; + +static uint32_t mpcore_cp15_c0_c1[8] = +{ 0x111, 0x1, 0, 0x2, 0x01100103, 0x10020302, 0x01222000, 0 }; + +static uint32_t mpcore_cp15_c0_c2[8] = +{ 0x00100011, 0x12002111, 0x11221011, 0x01102131, 0x141, 0, 0, 0 }; + +static uint32_t arm1136_cp15_c0_c1[8] = +{ 0x111, 0x1, 0x2, 0x3, 0x01130003, 0x10030302, 0x01222110, 0 }; + +static uint32_t arm1136_cp15_c0_c2[8] = +{ 0x00140011, 0x12002111, 0x11231111, 0x01102131, 0x141, 0, 0, 0 }; + +static uint32_t cpu_arm_find_by_name(const char *name); + +static inline void set_feature(CPUARMState *env, int feature) +{ + env->features |= 1u << feature; +} + +static void cpu_reset_model_id(CPUARMState *env, uint32_t id) +{ + env->cp15.c0_cpuid = id; + switch (id) { + case ARM_CPUID_ARM926: + set_feature(env, ARM_FEATURE_VFP); + env->vfp.xregs[ARM_VFP_FPSID] = 0x41011090; + env->cp15.c0_cachetype = 0x1dd20d2; + env->cp15.c1_sys = 0x00090078; + break; + case ARM_CPUID_ARM946: + set_feature(env, ARM_FEATURE_MPU); + env->cp15.c0_cachetype = 0x0f004006; + env->cp15.c1_sys = 0x00000078; + break; + case ARM_CPUID_ARM1026: + set_feature(env, ARM_FEATURE_VFP); + set_feature(env, ARM_FEATURE_AUXCR); + env->vfp.xregs[ARM_VFP_FPSID] = 0x410110a0; + env->cp15.c0_cachetype = 0x1dd20d2; + env->cp15.c1_sys = 0x00090078; + break; + case ARM_CPUID_ARM1136: + set_feature(env, ARM_FEATURE_V6); + set_feature(env, ARM_FEATURE_VFP); + set_feature(env, ARM_FEATURE_AUXCR); + env->vfp.xregs[ARM_VFP_FPSID] = 0x410120b4; + env->vfp.xregs[ARM_VFP_MVFR0] = 0x11111111; + env->vfp.xregs[ARM_VFP_MVFR1] = 0x00000000; + memcpy(env->cp15.c0_c1, arm1136_cp15_c0_c1, 8 * sizeof(uint32_t)); + memcpy(env->cp15.c0_c1, arm1136_cp15_c0_c2, 8 * sizeof(uint32_t)); + env->cp15.c0_cachetype = 0x1dd20d2; + break; + case ARM_CPUID_ARM11MPCORE: + set_feature(env, ARM_FEATURE_V6); + set_feature(env, ARM_FEATURE_V6K); + set_feature(env, ARM_FEATURE_VFP); + set_feature(env, ARM_FEATURE_AUXCR); + env->vfp.xregs[ARM_VFP_FPSID] = 0x410120b4; + env->vfp.xregs[ARM_VFP_MVFR0] = 0x11111111; + env->vfp.xregs[ARM_VFP_MVFR1] = 0x00000000; + memcpy(env->cp15.c0_c1, mpcore_cp15_c0_c1, 8 * sizeof(uint32_t)); + memcpy(env->cp15.c0_c1, mpcore_cp15_c0_c2, 8 * sizeof(uint32_t)); + env->cp15.c0_cachetype = 0x1dd20d2; + break; + case ARM_CPUID_CORTEXA8: + set_feature(env, ARM_FEATURE_V6); + set_feature(env, ARM_FEATURE_V6K); + set_feature(env, ARM_FEATURE_V7); + set_feature(env, ARM_FEATURE_AUXCR); + set_feature(env, ARM_FEATURE_THUMB2); + set_feature(env, ARM_FEATURE_VFP); + set_feature(env, ARM_FEATURE_VFP3); + set_feature(env, ARM_FEATURE_NEON); + env->vfp.xregs[ARM_VFP_FPSID] = 0x410330c0; + env->vfp.xregs[ARM_VFP_MVFR0] = 0x11110222; + env->vfp.xregs[ARM_VFP_MVFR1] = 0x00011100; + memcpy(env->cp15.c0_c1, cortexa8_cp15_c0_c1, 8 * sizeof(uint32_t)); + memcpy(env->cp15.c0_c1, cortexa8_cp15_c0_c2, 8 * sizeof(uint32_t)); + env->cp15.c0_cachetype = 0x1dd20d2; + break; + case ARM_CPUID_CORTEXM3: + set_feature(env, ARM_FEATURE_V6); + set_feature(env, ARM_FEATURE_THUMB2); + set_feature(env, ARM_FEATURE_V7); + set_feature(env, ARM_FEATURE_M); + set_feature(env, ARM_FEATURE_DIV); + break; + case ARM_CPUID_ANY: /* For userspace emulation. */ + set_feature(env, ARM_FEATURE_V6); + set_feature(env, ARM_FEATURE_V6K); + set_feature(env, ARM_FEATURE_V7); + set_feature(env, ARM_FEATURE_THUMB2); + set_feature(env, ARM_FEATURE_VFP); + set_feature(env, ARM_FEATURE_VFP3); + set_feature(env, ARM_FEATURE_NEON); + set_feature(env, ARM_FEATURE_DIV); + break; + case ARM_CPUID_TI915T: + case ARM_CPUID_TI925T: + set_feature(env, ARM_FEATURE_OMAPCP); + env->cp15.c0_cpuid = ARM_CPUID_TI925T; /* Depends on wiring. */ + env->cp15.c0_cachetype = 0x5109149; + env->cp15.c1_sys = 0x00000070; + env->cp15.c15_i_max = 0x000; + env->cp15.c15_i_min = 0xff0; + break; + case ARM_CPUID_PXA250: + case ARM_CPUID_PXA255: + case ARM_CPUID_PXA260: + case ARM_CPUID_PXA261: + case ARM_CPUID_PXA262: + set_feature(env, ARM_FEATURE_XSCALE); + /* JTAG_ID is ((id << 28) | 0x09265013) */ + env->cp15.c0_cachetype = 0xd172172; + env->cp15.c1_sys = 0x00000078; + break; + case ARM_CPUID_PXA270_A0: + case ARM_CPUID_PXA270_A1: + case ARM_CPUID_PXA270_B0: + case ARM_CPUID_PXA270_B1: + case ARM_CPUID_PXA270_C0: + case ARM_CPUID_PXA270_C5: + set_feature(env, ARM_FEATURE_XSCALE); + /* JTAG_ID is ((id << 28) | 0x09265013) */ + set_feature(env, ARM_FEATURE_IWMMXT); + env->iwmmxt.cregs[ARM_IWMMXT_wCID] = 0x69051000 | 'Q'; + env->cp15.c0_cachetype = 0xd172172; + env->cp15.c1_sys = 0x00000078; + break; + default: + cpu_abort(env, "Bad CPU ID: %x\n", id); + break; + } +} + +void cpu_reset(CPUARMState *env) +{ + uint32_t id; + id = env->cp15.c0_cpuid; + memset(env, 0, offsetof(CPUARMState, breakpoints)); + if (id) + cpu_reset_model_id(env, id); +#if defined (CONFIG_USER_ONLY) + env->uncached_cpsr = ARM_CPU_MODE_USR; + env->vfp.xregs[ARM_VFP_FPEXC] = 1 << 30; +#else + /* SVC mode with interrupts disabled. */ + env->uncached_cpsr = ARM_CPU_MODE_SVC | CPSR_A | CPSR_F | CPSR_I; + /* On ARMv7-M the CPSR_I is the value of the PRIMASK register, and is + clear at reset. */ + if (IS_M(env)) + env->uncached_cpsr &= ~CPSR_I; + env->vfp.xregs[ARM_VFP_FPEXC] = 0; +#endif + env->regs[15] = 0; + tlb_flush(env, 1); +} + +CPUARMState *cpu_arm_init(const char *cpu_model) +{ + CPUARMState *env; + uint32_t id; + + id = cpu_arm_find_by_name(cpu_model); + if (id == 0) + return NULL; + env = qemu_mallocz(sizeof(CPUARMState)); + if (!env) + return NULL; + cpu_exec_init(env); + env->cpu_model_str = cpu_model; + env->cp15.c0_cpuid = id; + cpu_reset(env); + return env; +} + +struct arm_cpu_t { + uint32_t id; + const char *name; +}; + +static const struct arm_cpu_t arm_cpu_names[] = { + { ARM_CPUID_ARM926, "arm926"}, + { ARM_CPUID_ARM946, "arm946"}, + { ARM_CPUID_ARM1026, "arm1026"}, + { ARM_CPUID_ARM1136, "arm1136"}, + { ARM_CPUID_ARM11MPCORE, "arm11mpcore"}, + { ARM_CPUID_CORTEXM3, "cortex-m3"}, + { ARM_CPUID_CORTEXA8, "cortex-a8"}, + { ARM_CPUID_TI925T, "ti925t" }, + { ARM_CPUID_PXA250, "pxa250" }, + { ARM_CPUID_PXA255, "pxa255" }, + { ARM_CPUID_PXA260, "pxa260" }, + { ARM_CPUID_PXA261, "pxa261" }, + { ARM_CPUID_PXA262, "pxa262" }, + { ARM_CPUID_PXA270, "pxa270" }, + { ARM_CPUID_PXA270_A0, "pxa270-a0" }, + { ARM_CPUID_PXA270_A1, "pxa270-a1" }, + { ARM_CPUID_PXA270_B0, "pxa270-b0" }, + { ARM_CPUID_PXA270_B1, "pxa270-b1" }, + { ARM_CPUID_PXA270_C0, "pxa270-c0" }, + { ARM_CPUID_PXA270_C5, "pxa270-c5" }, + { ARM_CPUID_ANY, "mc1322x" }, + { ARM_CPUID_ANY, "any"}, + { 0, NULL} +}; + +void arm_cpu_list(FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...)) +{ + int i; + + (*cpu_fprintf)(f, "Available CPUs:\n"); + for (i = 0; arm_cpu_names[i].name; i++) { + (*cpu_fprintf)(f, " %s\n", arm_cpu_names[i].name); + } +} + +/* return 0 if not found */ +static uint32_t cpu_arm_find_by_name(const char *name) +{ + int i; + uint32_t id; + + id = 0; + for (i = 0; arm_cpu_names[i].name; i++) { + if (strcmp(name, arm_cpu_names[i].name) == 0) { + id = arm_cpu_names[i].id; + break; + } + } + return id; +} + +void cpu_arm_close(CPUARMState *env) +{ + free(env); +} + +/* Polynomial multiplication is like integer multiplcation except the + partial products are XORed, not added. */ +uint32_t helper_neon_mul_p8(uint32_t op1, uint32_t op2) +{ + uint32_t mask; + uint32_t result; + result = 0; + while (op1) { + mask = 0; + if (op1 & 1) + mask |= 0xff; + if (op1 & (1 << 8)) + mask |= (0xff << 8); + if (op1 & (1 << 16)) + mask |= (0xff << 16); + if (op1 & (1 << 24)) + mask |= (0xff << 24); + result ^= op2 & mask; + op1 = (op1 >> 1) & 0x7f7f7f7f; + op2 = (op2 << 1) & 0xfefefefe; + } + return result; +} + +uint32_t cpsr_read(CPUARMState *env) +{ + int ZF; + ZF = (env->NZF == 0); + return env->uncached_cpsr | (env->NZF & 0x80000000) | (ZF << 30) | + (env->CF << 29) | ((env->VF & 0x80000000) >> 3) | (env->QF << 27) + | (env->thumb << 5) | ((env->condexec_bits & 3) << 25) + | ((env->condexec_bits & 0xfc) << 8) + | (env->GE << 16); +} + +void cpsr_write(CPUARMState *env, uint32_t val, uint32_t mask) +{ + /* NOTE: N = 1 and Z = 1 cannot be stored currently */ + if (mask & CPSR_NZCV) { + env->NZF = (val & 0xc0000000) ^ 0x40000000; + env->CF = (val >> 29) & 1; + env->VF = (val << 3) & 0x80000000; + } + if (mask & CPSR_Q) + env->QF = ((val & CPSR_Q) != 0); + if (mask & CPSR_T) + env->thumb = ((val & CPSR_T) != 0); + if (mask & CPSR_IT_0_1) { + env->condexec_bits &= ~3; + env->condexec_bits |= (val >> 25) & 3; + } + if (mask & CPSR_IT_2_7) { + env->condexec_bits &= 3; + env->condexec_bits |= (val >> 8) & 0xfc; + } + if (mask & CPSR_GE) { + env->GE = (val >> 16) & 0xf; + } + + if ((env->uncached_cpsr ^ val) & mask & CPSR_M) { + switch_mode(env, val & CPSR_M); + } + mask &= ~CACHED_CPSR_BITS; + env->uncached_cpsr = (env->uncached_cpsr & ~mask) | (val & mask); +} + +#if defined(CONFIG_USER_ONLY) + +void do_interrupt (CPUState *env) +{ + env->exception_index = -1; +} + +/* Structure used to record exclusive memory locations. */ +typedef struct mmon_state { + struct mmon_state *next; + CPUARMState *cpu_env; + uint32_t addr; +} mmon_state; + +/* Chain of current locks. */ +static mmon_state* mmon_head = NULL; + +int cpu_arm_handle_mmu_fault (CPUState *env, target_ulong address, int rw, + int mmu_idx, int is_softmmu) +{ + if (rw == 2) { + env->exception_index = EXCP_PREFETCH_ABORT; + env->cp15.c6_insn = address; + } else { + env->exception_index = EXCP_DATA_ABORT; + env->cp15.c6_data = address; + } + return 1; +} + +static void allocate_mmon_state(CPUState *env) +{ + env->mmon_entry = malloc(sizeof (mmon_state)); + if (!env->mmon_entry) + abort(); + memset (env->mmon_entry, 0, sizeof (mmon_state)); + env->mmon_entry->cpu_env = env; + mmon_head = env->mmon_entry; +} + +/* Flush any monitor locks for the specified address. */ +static void flush_mmon(uint32_t addr) +{ + mmon_state *mon; + + for (mon = mmon_head; mon; mon = mon->next) + { + if (mon->addr != addr) + continue; + + mon->addr = 0; + break; + } +} + +/* Mark an address for exclusive access. */ +void helper_mark_exclusive(CPUState *env, uint32_t addr) +{ + if (!env->mmon_entry) + allocate_mmon_state(env); + /* Clear any previous locks. */ + flush_mmon(addr); + env->mmon_entry->addr = addr; +} + +/* Test if an exclusive address is still exclusive. Returns zero + if the address is still exclusive. */ +int helper_test_exclusive(CPUState *env, uint32_t addr) +{ + int res; + + if (!env->mmon_entry) + return 1; + if (env->mmon_entry->addr == addr) + res = 0; + else + res = 1; + flush_mmon(addr); + return res; +} + +void helper_clrex(CPUState *env) +{ + if (!(env->mmon_entry && env->mmon_entry->addr)) + return; + flush_mmon(env->mmon_entry->addr); +} + +target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr) +{ + return addr; +} + +/* These should probably raise undefined insn exceptions. */ +void helper_set_cp(CPUState *env, uint32_t insn, uint32_t val) +{ + int op1 = (insn >> 8) & 0xf; + cpu_abort(env, "cp%i insn %08x\n", op1, insn); + return; +} + +uint32_t helper_get_cp(CPUState *env, uint32_t insn) +{ + int op1 = (insn >> 8) & 0xf; + cpu_abort(env, "cp%i insn %08x\n", op1, insn); + return 0; +} + +void helper_set_cp15(CPUState *env, uint32_t insn, uint32_t val) +{ + cpu_abort(env, "cp15 insn %08x\n", insn); +} + +uint32_t helper_get_cp15(CPUState *env, uint32_t insn) +{ + cpu_abort(env, "cp15 insn %08x\n", insn); + return 0; +} + +/* These should probably raise undefined insn exceptions. */ +void helper_v7m_msr(CPUState *env, int reg, uint32_t val) +{ + cpu_abort(env, "v7m_mrs %d\n", reg); +} + +uint32_t helper_v7m_mrs(CPUState *env, int reg) +{ + cpu_abort(env, "v7m_mrs %d\n", reg); + return 0; +} + +void switch_mode(CPUState *env, int mode) +{ + if (mode != ARM_CPU_MODE_USR) + cpu_abort(env, "Tried to switch out of user mode\n"); +} + +void helper_set_r13_banked(CPUState *env, int mode, uint32_t val) +{ + cpu_abort(env, "banked r13 write\n"); +} + +uint32_t helper_get_r13_banked(CPUState *env, int mode) +{ + cpu_abort(env, "banked r13 read\n"); + return 0; +} + +#else + +extern int semihosting_enabled; + +/* Map CPU modes onto saved register banks. */ +static inline int bank_number (int mode) +{ + switch (mode) { + case ARM_CPU_MODE_USR: + case ARM_CPU_MODE_SYS: + return 0; + case ARM_CPU_MODE_SVC: + return 1; + case ARM_CPU_MODE_ABT: + return 2; + case ARM_CPU_MODE_UND: + return 3; + case ARM_CPU_MODE_IRQ: + return 4; + case ARM_CPU_MODE_FIQ: + return 5; + } + cpu_abort(cpu_single_env, "Bad mode %x\n", mode); + return -1; +} + +void switch_mode(CPUState *env, int mode) +{ + int old_mode; + int i; + + old_mode = env->uncached_cpsr & CPSR_M; + if (mode == old_mode) + return; + + if (old_mode == ARM_CPU_MODE_FIQ) { + memcpy (env->fiq_regs, env->regs + 8, 5 * sizeof(uint32_t)); + memcpy (env->regs + 8, env->usr_regs, 5 * sizeof(uint32_t)); + } else if (mode == ARM_CPU_MODE_FIQ) { + memcpy (env->usr_regs, env->regs + 8, 5 * sizeof(uint32_t)); + memcpy (env->regs + 8, env->fiq_regs, 5 * sizeof(uint32_t)); + } + + i = bank_number(old_mode); + env->banked_r13[i] = env->regs[13]; + env->banked_r14[i] = env->regs[14]; + env->banked_spsr[i] = env->spsr; + + i = bank_number(mode); + env->regs[13] = env->banked_r13[i]; + env->regs[14] = env->banked_r14[i]; + env->spsr = env->banked_spsr[i]; +} + +static void v7m_push(CPUARMState *env, uint32_t val) +{ + env->regs[13] -= 4; + stl_phys(env->regs[13], val); +} + +static uint32_t v7m_pop(CPUARMState *env) +{ + uint32_t val; + val = ldl_phys(env->regs[13]); + env->regs[13] += 4; + return val; +} + +/* Switch to V7M main or process stack pointer. */ +static void switch_v7m_sp(CPUARMState *env, int process) +{ + uint32_t tmp; + if (env->v7m.current_sp != process) { + tmp = env->v7m.other_sp; + env->v7m.other_sp = env->regs[13]; + env->regs[13] = tmp; + env->v7m.current_sp = process; + } +} + +static void do_v7m_exception_exit(CPUARMState *env) +{ + uint32_t type; + uint32_t xpsr; + + type = env->regs[15]; + if (env->v7m.exception != 0) + armv7m_nvic_complete_irq(env->v7m.nvic, env->v7m.exception); + + /* Switch to the target stack. */ + switch_v7m_sp(env, (type & 4) != 0); + /* Pop registers. */ + env->regs[0] = v7m_pop(env); + env->regs[1] = v7m_pop(env); + env->regs[2] = v7m_pop(env); + env->regs[3] = v7m_pop(env); + env->regs[12] = v7m_pop(env); + env->regs[14] = v7m_pop(env); + env->regs[15] = v7m_pop(env); + xpsr = v7m_pop(env); + xpsr_write(env, xpsr, 0xfffffdff); + /* Undo stack alignment. */ + if (xpsr & 0x200) + env->regs[13] |= 4; + /* ??? The exception return type specifies Thread/Handler mode. However + this is also implied by the xPSR value. Not sure what to do + if there is a mismatch. */ + /* ??? Likewise for mismatches between the CONTROL register and the stack + pointer. */ +} + +void do_interrupt_v7m(CPUARMState *env) +{ + uint32_t xpsr = xpsr_read(env); + uint32_t lr; + uint32_t addr; + + lr = 0xfffffff1; + if (env->v7m.current_sp) + lr |= 4; + if (env->v7m.exception == 0) + lr |= 8; + + /* For exceptions we just mark as pending on the NVIC, and let that + handle it. */ + /* TODO: Need to escalate if the current priority is higher than the + one we're raising. */ + switch (env->exception_index) { + case EXCP_UDEF: + armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_USAGE); + return; + case EXCP_SWI: + env->regs[15] += 2; + armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_SVC); + return; + case EXCP_PREFETCH_ABORT: + case EXCP_DATA_ABORT: + armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_MEM); + return; + case EXCP_BKPT: + if (semihosting_enabled) { + int nr; + nr = lduw_code(env->regs[15]) & 0xff; + if (nr == 0xab) { + env->regs[15] += 2; + env->regs[0] = do_arm_semihosting(env); + return; + } + } + armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_DEBUG); + return; + case EXCP_IRQ: + env->v7m.exception = armv7m_nvic_acknowledge_irq(env->v7m.nvic); + break; + case EXCP_EXCEPTION_EXIT: + do_v7m_exception_exit(env); + return; + default: + cpu_abort(env, "Unhandled exception 0x%x\n", env->exception_index); + return; /* Never happens. Keep compiler happy. */ + } + + /* Align stack pointer. */ + /* ??? Should only do this if Configuration Control Register + STACKALIGN bit is set. */ + if (env->regs[13] & 4) { + env->regs[13] += 4; + xpsr |= 0x200; + } + /* Switch to the hander mode. */ + v7m_push(env, xpsr); + v7m_push(env, env->regs[15]); + v7m_push(env, env->regs[14]); + v7m_push(env, env->regs[12]); + v7m_push(env, env->regs[3]); + v7m_push(env, env->regs[2]); + v7m_push(env, env->regs[1]); + v7m_push(env, env->regs[0]); + switch_v7m_sp(env, 0); + env->uncached_cpsr &= ~CPSR_IT; + env->regs[14] = lr; + addr = ldl_phys(env->v7m.vecbase + env->v7m.exception * 4); + env->regs[15] = addr & 0xfffffffe; + env->thumb = addr & 1; +} + +/* Handle a CPU exception. */ +void do_interrupt(CPUARMState *env) +{ + uint32_t addr; + uint32_t mask; + int new_mode; + uint32_t offset; + + if (IS_M(env)) { + do_interrupt_v7m(env); + return; + } + /* TODO: Vectored interrupt controller. */ + switch (env->exception_index) { + case EXCP_UDEF: + new_mode = ARM_CPU_MODE_UND; + addr = 0x04; + mask = CPSR_I; + if (env->thumb) + offset = 2; + else + offset = 4; + break; + case EXCP_SWI: + if (semihosting_enabled) { + /* Check for semihosting interrupt. */ + if (env->thumb) { + mask = lduw_code(env->regs[15] - 2) & 0xff; + } else { + mask = ldl_code(env->regs[15] - 4) & 0xffffff; + } + /* Only intercept calls from privileged modes, to provide some + semblance of security. */ + if (((mask == 0x123456 && !env->thumb) + || (mask == 0xab && env->thumb)) + && (env->uncached_cpsr & CPSR_M) != ARM_CPU_MODE_USR) { + env->regs[0] = do_arm_semihosting(env); + return; + } + } + new_mode = ARM_CPU_MODE_SVC; + addr = 0x08; + mask = CPSR_I; + /* The PC already points to the next instructon. */ + offset = 0; + break; + case EXCP_BKPT: + /* See if this is a semihosting syscall. */ + if (env->thumb && semihosting_enabled) { + mask = lduw_code(env->regs[15]) & 0xff; + if (mask == 0xab + && (env->uncached_cpsr & CPSR_M) != ARM_CPU_MODE_USR) { + env->regs[15] += 2; + env->regs[0] = do_arm_semihosting(env); + return; + } + } + /* Fall through to prefetch abort. */ + case EXCP_PREFETCH_ABORT: + new_mode = ARM_CPU_MODE_ABT; + addr = 0x0c; + mask = CPSR_A | CPSR_I; + offset = 4; + break; + case EXCP_DATA_ABORT: + new_mode = ARM_CPU_MODE_ABT; + addr = 0x10; + mask = CPSR_A | CPSR_I; + offset = 8; + break; + case EXCP_IRQ: + new_mode = ARM_CPU_MODE_IRQ; + addr = 0x18; + /* Disable IRQ and imprecise data aborts. */ + mask = CPSR_A | CPSR_I; + offset = 4; + break; + case EXCP_FIQ: + new_mode = ARM_CPU_MODE_FIQ; + addr = 0x1c; + /* Disable FIQ, IRQ and imprecise data aborts. */ + mask = CPSR_A | CPSR_I | CPSR_F; + offset = 4; + break; + default: + cpu_abort(env, "Unhandled exception 0x%x\n", env->exception_index); + return; /* Never happens. Keep compiler happy. */ + } + /* High vectors. */ + if (env->cp15.c1_sys & (1 << 13)) { + addr += 0xffff0000; + } + switch_mode (env, new_mode); + env->spsr = cpsr_read(env); + /* Clear IT bits. */ + env->condexec_bits = 0; + /* Switch to the new mode, and switch to Arm mode. */ + /* ??? Thumb interrupt handlers not implemented. */ + env->uncached_cpsr = (env->uncached_cpsr & ~CPSR_M) | new_mode; + env->uncached_cpsr |= mask; + env->thumb = 0; + env->regs[14] = env->regs[15] + offset; + env->regs[15] = addr; + env->interrupt_request |= CPU_INTERRUPT_EXITTB; +} + +/* Check section/page access permissions. + Returns the page protection flags, or zero if the access is not + permitted. */ +static inline int check_ap(CPUState *env, int ap, int domain, int access_type, + int is_user) +{ + int prot_ro; + + if (domain == 3) + return PAGE_READ | PAGE_WRITE; + + if (access_type == 1) + prot_ro = 0; + else + prot_ro = PAGE_READ; + + switch (ap) { + case 0: + if (access_type == 1) + return 0; + switch ((env->cp15.c1_sys >> 8) & 3) { + case 1: + return is_user ? 0 : PAGE_READ; + case 2: + return PAGE_READ; + default: + return 0; + } + case 1: + return is_user ? 0 : PAGE_READ | PAGE_WRITE; + case 2: + if (is_user) + return prot_ro; + else + return PAGE_READ | PAGE_WRITE; + case 3: + return PAGE_READ | PAGE_WRITE; + case 4: case 7: /* Reserved. */ + return 0; + case 5: + return is_user ? 0 : prot_ro; + case 6: + return prot_ro; + default: + abort(); + } +} + +static int get_phys_addr_v5(CPUState *env, uint32_t address, int access_type, + int is_user, uint32_t *phys_ptr, int *prot) +{ + int code; + uint32_t table; + uint32_t desc; + int type; + int ap; + int domain; + uint32_t phys_addr; + + /* Pagetable walk. */ + /* Lookup l1 descriptor. */ + if (address & env->cp15.c2_mask) + table = env->cp15.c2_base1; + else + table = env->cp15.c2_base0; + table = (table & 0xffffc000) | ((address >> 18) & 0x3ffc); + desc = ldl_phys(table); + type = (desc & 3); + domain = (env->cp15.c3 >> ((desc >> 4) & 0x1e)) & 3; + if (type == 0) { + /* Secton translation fault. */ + code = 5; + goto do_fault; + } + if (domain == 0 || domain == 2) { + if (type == 2) + code = 9; /* Section domain fault. */ + else + code = 11; /* Page domain fault. */ + goto do_fault; + } + if (type == 2) { + /* 1Mb section. */ + phys_addr = (desc & 0xfff00000) | (address & 0x000fffff); + ap = (desc >> 10) & 3; + code = 13; + } else { + /* Lookup l2 entry. */ + if (type == 1) { + /* Coarse pagetable. */ + table = (desc & 0xfffffc00) | ((address >> 10) & 0x3fc); + } else { + /* Fine pagetable. */ + table = (desc & 0xfffff000) | ((address >> 8) & 0xffc); + } + desc = ldl_phys(table); + switch (desc & 3) { + case 0: /* Page translation fault. */ + code = 7; + goto do_fault; + case 1: /* 64k page. */ + phys_addr = (desc & 0xffff0000) | (address & 0xffff); + ap = (desc >> (4 + ((address >> 13) & 6))) & 3; + break; + case 2: /* 4k page. */ + phys_addr = (desc & 0xfffff000) | (address & 0xfff); + ap = (desc >> (4 + ((address >> 13) & 6))) & 3; + break; + case 3: /* 1k page. */ + if (type == 1) { + if (arm_feature(env, ARM_FEATURE_XSCALE)) { + phys_addr = (desc & 0xfffff000) | (address & 0xfff); + } else { + /* Page translation fault. */ + code = 7; + goto do_fault; + } + } else { + phys_addr = (desc & 0xfffffc00) | (address & 0x3ff); + } + ap = (desc >> 4) & 3; + break; + default: + /* Never happens, but compiler isn't smart enough to tell. */ + abort(); + } + code = 15; + } + *prot = check_ap(env, ap, domain, access_type, is_user); + if (!*prot) { + /* Access permission fault. */ + goto do_fault; + } + *phys_ptr = phys_addr; + return 0; +do_fault: + return code | (domain << 4); +} + +static int get_phys_addr_v6(CPUState *env, uint32_t address, int access_type, + int is_user, uint32_t *phys_ptr, int *prot) +{ + int code; + uint32_t table; + uint32_t desc; + uint32_t xn; + int type; + int ap; + int domain; + uint32_t phys_addr; + + /* Pagetable walk. */ + /* Lookup l1 descriptor. */ + if (address & env->cp15.c2_mask) + table = env->cp15.c2_base1; + else + table = env->cp15.c2_base0; + table = (table & 0xffffc000) | ((address >> 18) & 0x3ffc); + desc = ldl_phys(table); + type = (desc & 3); + if (type == 0) { + /* Secton translation fault. */ + code = 5; + domain = 0; + goto do_fault; + } else if (type == 2 && (desc & (1 << 18))) { + /* Supersection. */ + domain = 0; + } else { + /* Section or page. */ + domain = (desc >> 4) & 0x1e; + } + domain = (env->cp15.c3 >> domain) & 3; + if (domain == 0 || domain == 2) { + if (type == 2) + code = 9; /* Section domain fault. */ + else + code = 11; /* Page domain fault. */ + goto do_fault; + } + if (type == 2) { + if (desc & (1 << 18)) { + /* Supersection. */ + phys_addr = (desc & 0xff000000) | (address & 0x00ffffff); + } else { + /* Section. */ + phys_addr = (desc & 0xfff00000) | (address & 0x000fffff); + } + ap = ((desc >> 10) & 3) | ((desc >> 13) & 4); + xn = desc & (1 << 4); + code = 13; + } else { + /* Lookup l2 entry. */ + table = (desc & 0xfffffc00) | ((address >> 10) & 0x3fc); + desc = ldl_phys(table); + ap = ((desc >> 4) & 3) | ((desc >> 7) & 4); + switch (desc & 3) { + case 0: /* Page translation fault. */ + code = 7; + goto do_fault; + case 1: /* 64k page. */ + phys_addr = (desc & 0xffff0000) | (address & 0xffff); + xn = desc & (1 << 15); + break; + case 2: case 3: /* 4k page. */ + phys_addr = (desc & 0xfffff000) | (address & 0xfff); + xn = desc & 1; + break; + default: + /* Never happens, but compiler isn't smart enough to tell. */ + abort(); + } + code = 15; + } + if (xn && access_type == 2) + goto do_fault; + + *prot = check_ap(env, ap, domain, access_type, is_user); + if (!*prot) { + /* Access permission fault. */ + goto do_fault; + } + *phys_ptr = phys_addr; + return 0; +do_fault: + return code | (domain << 4); +} + +static int get_phys_addr_mpu(CPUState *env, uint32_t address, int access_type, + int is_user, uint32_t *phys_ptr, int *prot) +{ + int n; + uint32_t mask; + uint32_t base; + + *phys_ptr = address; + for (n = 7; n >= 0; n--) { + base = env->cp15.c6_region[n]; + if ((base & 1) == 0) + continue; + mask = 1 << ((base >> 1) & 0x1f); + /* Keep this shift separate from the above to avoid an + (undefined) << 32. */ + mask = (mask << 1) - 1; + if (((base ^ address) & ~mask) == 0) + break; + } + if (n < 0) + return 2; + + if (access_type == 2) { + mask = env->cp15.c5_insn; + } else { + mask = env->cp15.c5_data; + } + mask = (mask >> (n * 4)) & 0xf; + switch (mask) { + case 0: + return 1; + case 1: + if (is_user) + return 1; + *prot = PAGE_READ | PAGE_WRITE; + break; + case 2: + *prot = PAGE_READ; + if (!is_user) + *prot |= PAGE_WRITE; + break; + case 3: + *prot = PAGE_READ | PAGE_WRITE; + break; + case 5: + if (is_user) + return 1; + *prot = PAGE_READ; + break; + case 6: + *prot = PAGE_READ; + break; + default: + /* Bad permission. */ + return 1; + } + return 0; +} + +static inline int get_phys_addr(CPUState *env, uint32_t address, + int access_type, int is_user, + uint32_t *phys_ptr, int *prot) +{ + /* Fast Context Switch Extension. */ + if (address < 0x02000000) + address += env->cp15.c13_fcse; + + if ((env->cp15.c1_sys & 1) == 0) { + /* MMU/MPU disabled. */ + *phys_ptr = address; + *prot = PAGE_READ | PAGE_WRITE; + return 0; + } else if (arm_feature(env, ARM_FEATURE_MPU)) { + return get_phys_addr_mpu(env, address, access_type, is_user, phys_ptr, + prot); + } else if (env->cp15.c1_sys & (1 << 23)) { + return get_phys_addr_v6(env, address, access_type, is_user, phys_ptr, + prot); + } else { + return get_phys_addr_v5(env, address, access_type, is_user, phys_ptr, + prot); + } +} + +int cpu_arm_handle_mmu_fault (CPUState *env, target_ulong address, + int access_type, int mmu_idx, int is_softmmu) +{ + uint32_t phys_addr; + int prot; + int ret, is_user; + + is_user = mmu_idx == MMU_USER_IDX; + ret = get_phys_addr(env, address, access_type, is_user, &phys_addr, &prot); + if (ret == 0) { + /* Map a single [sub]page. */ + phys_addr &= ~(uint32_t)0x3ff; + address &= ~(uint32_t)0x3ff; + return tlb_set_page (env, address, phys_addr, prot, mmu_idx, + is_softmmu); + } + + if (access_type == 2) { + env->cp15.c5_insn = ret; + env->cp15.c6_insn = address; + env->exception_index = EXCP_PREFETCH_ABORT; + } else { + env->cp15.c5_data = ret; + if (access_type == 1 && arm_feature(env, ARM_FEATURE_V6)) + env->cp15.c5_data |= (1 << 11); + env->cp15.c6_data = address; + env->exception_index = EXCP_DATA_ABORT; + } + return 1; +} + +target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr) +{ + uint32_t phys_addr; + int prot; + int ret; + + ret = get_phys_addr(env, addr, 0, 0, &phys_addr, &prot); + + if (ret != 0) + return -1; + + return phys_addr; +} + +/* Not really implemented. Need to figure out a sane way of doing this. + Maybe add generic watchpoint support and use that. */ + +void helper_mark_exclusive(CPUState *env, uint32_t addr) +{ + env->mmon_addr = addr; +} + +int helper_test_exclusive(CPUState *env, uint32_t addr) +{ + return (env->mmon_addr != addr); +} + +void helper_clrex(CPUState *env) +{ + env->mmon_addr = -1; +} + +void helper_set_cp(CPUState *env, uint32_t insn, uint32_t val) +{ + int cp_num = (insn >> 8) & 0xf; + int cp_info = (insn >> 5) & 7; + int src = (insn >> 16) & 0xf; + int operand = insn & 0xf; + + if (env->cp[cp_num].cp_write) + env->cp[cp_num].cp_write(env->cp[cp_num].opaque, + cp_info, src, operand, val); +} + +uint32_t helper_get_cp(CPUState *env, uint32_t insn) +{ + int cp_num = (insn >> 8) & 0xf; + int cp_info = (insn >> 5) & 7; + int dest = (insn >> 16) & 0xf; + int operand = insn & 0xf; + + if (env->cp[cp_num].cp_read) + return env->cp[cp_num].cp_read(env->cp[cp_num].opaque, + cp_info, dest, operand); + return 0; +} + +/* Return basic MPU access permission bits. */ +static uint32_t simple_mpu_ap_bits(uint32_t val) +{ + uint32_t ret; + uint32_t mask; + int i; + ret = 0; + mask = 3; + for (i = 0; i < 16; i += 2) { + ret |= (val >> i) & mask; + mask <<= 2; + } + return ret; +} + +/* Pad basic MPU access permission bits to extended format. */ +static uint32_t extended_mpu_ap_bits(uint32_t val) +{ + uint32_t ret; + uint32_t mask; + int i; + ret = 0; + mask = 3; + for (i = 0; i < 16; i += 2) { + ret |= (val & mask) << i; + mask <<= 2; + } + return ret; +} + +void helper_set_cp15(CPUState *env, uint32_t insn, uint32_t val) +{ + int op1; + int op2; + int crm; + + op1 = (insn >> 21) & 7; + op2 = (insn >> 5) & 7; + crm = insn & 0xf; + switch ((insn >> 16) & 0xf) { + case 0: + if (((insn >> 21) & 7) == 2) { + /* ??? Select cache level. Ignore. */ + return; + } + /* ID codes. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) + break; + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + break; + goto bad_reg; + case 1: /* System configuration. */ + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: + if (!arm_feature(env, ARM_FEATURE_XSCALE) || crm == 0) + env->cp15.c1_sys = val; + /* ??? Lots of these bits are not implemented. */ + /* This may enable/disable the MMU, so do a TLB flush. */ + tlb_flush(env, 1); + break; + case 1: /* Auxiliary cotrol register. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) { + env->cp15.c1_xscaleauxcr = val; + break; + } + /* Not implemented. */ + break; + case 2: + if (arm_feature(env, ARM_FEATURE_XSCALE)) + goto bad_reg; + env->cp15.c1_coproc = val; + /* ??? Is this safe when called from within a TB? */ + tb_flush(env); + break; + default: + goto bad_reg; + } + break; + case 2: /* MMU Page table control / MPU cache control. */ + if (arm_feature(env, ARM_FEATURE_MPU)) { + switch (op2) { + case 0: + env->cp15.c2_data = val; + break; + case 1: + env->cp15.c2_insn = val; + break; + default: + goto bad_reg; + } + } else { + switch (op2) { + case 0: + env->cp15.c2_base0 = val; + break; + case 1: + env->cp15.c2_base1 = val; + break; + case 2: + env->cp15.c2_mask = ~(((uint32_t)0xffffffffu) >> val); + break; + default: + goto bad_reg; + } + } + break; + case 3: /* MMU Domain access control / MPU write buffer control. */ + env->cp15.c3 = val; + tlb_flush(env, 1); /* Flush TLB as domain not tracked in TLB */ + break; + case 4: /* Reserved. */ + goto bad_reg; + case 5: /* MMU Fault status / MPU access permission. */ + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: + if (arm_feature(env, ARM_FEATURE_MPU)) + val = extended_mpu_ap_bits(val); + env->cp15.c5_data = val; + break; + case 1: + if (arm_feature(env, ARM_FEATURE_MPU)) + val = extended_mpu_ap_bits(val); + env->cp15.c5_insn = val; + break; + case 2: + if (!arm_feature(env, ARM_FEATURE_MPU)) + goto bad_reg; + env->cp15.c5_data = val; + break; + case 3: + if (!arm_feature(env, ARM_FEATURE_MPU)) + goto bad_reg; + env->cp15.c5_insn = val; + break; + default: + goto bad_reg; + } + break; + case 6: /* MMU Fault address / MPU base/size. */ + if (arm_feature(env, ARM_FEATURE_MPU)) { + if (crm >= 8) + goto bad_reg; + env->cp15.c6_region[crm] = val; + } else { + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: + env->cp15.c6_data = val; + break; + case 1: /* ??? This is WFAR on armv6 */ + case 2: + env->cp15.c6_insn = val; + break; + default: + goto bad_reg; + } + } + break; + case 7: /* Cache control. */ + env->cp15.c15_i_max = 0x000; + env->cp15.c15_i_min = 0xff0; + /* No cache, so nothing to do. */ + /* ??? MPCore has VA to PA translation functions. */ + break; + case 8: /* MMU TLB control. */ + switch (op2) { + case 0: /* Invalidate all. */ + tlb_flush(env, 0); + break; + case 1: /* Invalidate single TLB entry. */ +#if 0 + /* ??? This is wrong for large pages and sections. */ + /* As an ugly hack to make linux work we always flush a 4K + pages. */ + val &= 0xfffff000; + tlb_flush_page(env, val); + tlb_flush_page(env, val + 0x400); + tlb_flush_page(env, val + 0x800); + tlb_flush_page(env, val + 0xc00); +#else + tlb_flush(env, 1); +#endif + break; + case 2: /* Invalidate on ASID. */ + tlb_flush(env, val == 0); + break; + case 3: /* Invalidate single entry on MVA. */ + /* ??? This is like case 1, but ignores ASID. */ + tlb_flush(env, 1); + break; + default: + goto bad_reg; + } + break; + case 9: + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + break; + switch (crm) { + case 0: /* Cache lockdown. */ + switch (op1) { + case 0: /* L1 cache. */ + switch (op2) { + case 0: + env->cp15.c9_data = val; + break; + case 1: + env->cp15.c9_insn = val; + break; + default: + goto bad_reg; + } + break; + case 1: /* L2 cache. */ + /* Ignore writes to L2 lockdown/auxiliary registers. */ + break; + default: + goto bad_reg; + } + break; + case 1: /* TCM memory region registers. */ + /* Not implemented. */ + goto bad_reg; + default: + goto bad_reg; + } + break; + case 10: /* MMU TLB lockdown. */ + /* ??? TLB lockdown not implemented. */ + break; + case 12: /* Reserved. */ + goto bad_reg; + case 13: /* Process ID. */ + switch (op2) { + case 0: + /* Unlike real hardware the qemu TLB uses virtual addresses, + not modified virtual addresses, so this causes a TLB flush. + */ + if (env->cp15.c13_fcse != val) + tlb_flush(env, 1); + env->cp15.c13_fcse = val; + break; + case 1: + /* This changes the ASID, so do a TLB flush. */ + if (env->cp15.c13_context != val + && !arm_feature(env, ARM_FEATURE_MPU)) + tlb_flush(env, 0); + env->cp15.c13_context = val; + break; + case 2: + env->cp15.c13_tls1 = val; + break; + case 3: + env->cp15.c13_tls2 = val; + break; + case 4: + env->cp15.c13_tls3 = val; + break; + default: + goto bad_reg; + } + break; + case 14: /* Reserved. */ + goto bad_reg; + case 15: /* Implementation specific. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) { + if (op2 == 0 && crm == 1) { + if (env->cp15.c15_cpar != (val & 0x3fff)) { + /* Changes cp0 to cp13 behavior, so needs a TB flush. */ + tb_flush(env); + env->cp15.c15_cpar = val & 0x3fff; + } + break; + } + goto bad_reg; + } + if (arm_feature(env, ARM_FEATURE_OMAPCP)) { + switch (crm) { + case 0: + break; + case 1: /* Set TI925T configuration. */ + env->cp15.c15_ticonfig = val & 0xe7; + env->cp15.c0_cpuid = (val & (1 << 5)) ? /* OS_TYPE bit */ + ARM_CPUID_TI915T : ARM_CPUID_TI925T; + break; + case 2: /* Set I_max. */ + env->cp15.c15_i_max = val; + break; + case 3: /* Set I_min. */ + env->cp15.c15_i_min = val; + break; + case 4: /* Set thread-ID. */ + env->cp15.c15_threadid = val & 0xffff; + break; + case 8: /* Wait-for-interrupt (deprecated). */ + cpu_interrupt(env, CPU_INTERRUPT_HALT); + break; + default: + goto bad_reg; + } + } + break; + } + return; +bad_reg: + /* ??? For debugging only. Should raise illegal instruction exception. */ + cpu_abort(env, "Unimplemented cp15 register write (c%d, c%d, {%d, %d})\n", + (insn >> 16) & 0xf, crm, op1, op2); +} + +uint32_t helper_get_cp15(CPUState *env, uint32_t insn) +{ + int op1; + int op2; + int crm; + + op1 = (insn >> 21) & 7; + op2 = (insn >> 5) & 7; + crm = insn & 0xf; + switch ((insn >> 16) & 0xf) { + case 0: /* ID codes. */ + switch (op1) { + case 0: + switch (crm) { + case 0: + switch (op2) { + case 0: /* Device ID. */ + return env->cp15.c0_cpuid; + case 1: /* Cache Type. */ + return env->cp15.c0_cachetype; + case 2: /* TCM status. */ + return 0; + case 3: /* TLB type register. */ + return 0; /* No lockable TLB entries. */ + case 5: /* CPU ID */ + return env->cpu_index; + default: + goto bad_reg; + } + case 1: + if (!arm_feature(env, ARM_FEATURE_V6)) + goto bad_reg; + return env->cp15.c0_c1[op2]; + case 2: + if (!arm_feature(env, ARM_FEATURE_V6)) + goto bad_reg; + return env->cp15.c0_c2[op2]; + case 3: case 4: case 5: case 6: case 7: + return 0; + default: + goto bad_reg; + } + case 1: + /* These registers aren't documented on arm11 cores. However + Linux looks at them anyway. */ + if (!arm_feature(env, ARM_FEATURE_V6)) + goto bad_reg; + if (crm != 0) + goto bad_reg; + if (arm_feature(env, ARM_FEATURE_XSCALE)) + goto bad_reg; + return 0; + default: + goto bad_reg; + } + case 1: /* System configuration. */ + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: /* Control register. */ + return env->cp15.c1_sys; + case 1: /* Auxiliary control register. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) + return env->cp15.c1_xscaleauxcr; + if (!arm_feature(env, ARM_FEATURE_AUXCR)) + goto bad_reg; + switch (ARM_CPUID(env)) { + case ARM_CPUID_ARM1026: + return 1; + case ARM_CPUID_ARM1136: + return 7; + case ARM_CPUID_ARM11MPCORE: + return 1; + case ARM_CPUID_CORTEXA8: + return 0; + default: + goto bad_reg; + } + case 2: /* Coprocessor access register. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) + goto bad_reg; + return env->cp15.c1_coproc; + default: + goto bad_reg; + } + case 2: /* MMU Page table control / MPU cache control. */ + if (arm_feature(env, ARM_FEATURE_MPU)) { + switch (op2) { + case 0: + return env->cp15.c2_data; + break; + case 1: + return env->cp15.c2_insn; + break; + default: + goto bad_reg; + } + } else { + switch (op2) { + case 0: + return env->cp15.c2_base0; + case 1: + return env->cp15.c2_base1; + case 2: + { + int n; + uint32_t mask; + n = 0; + mask = env->cp15.c2_mask; + while (mask) { + n++; + mask <<= 1; + } + return n; + } + default: + goto bad_reg; + } + } + case 3: /* MMU Domain access control / MPU write buffer control. */ + return env->cp15.c3; + case 4: /* Reserved. */ + goto bad_reg; + case 5: /* MMU Fault status / MPU access permission. */ + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: + if (arm_feature(env, ARM_FEATURE_MPU)) + return simple_mpu_ap_bits(env->cp15.c5_data); + return env->cp15.c5_data; + case 1: + if (arm_feature(env, ARM_FEATURE_MPU)) + return simple_mpu_ap_bits(env->cp15.c5_data); + return env->cp15.c5_insn; + case 2: + if (!arm_feature(env, ARM_FEATURE_MPU)) + goto bad_reg; + return env->cp15.c5_data; + case 3: + if (!arm_feature(env, ARM_FEATURE_MPU)) + goto bad_reg; + return env->cp15.c5_insn; + default: + goto bad_reg; + } + case 6: /* MMU Fault address. */ + if (arm_feature(env, ARM_FEATURE_MPU)) { + if (crm >= 8) + goto bad_reg; + return env->cp15.c6_region[crm]; + } else { + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: + return env->cp15.c6_data; + case 1: + if (arm_feature(env, ARM_FEATURE_V6)) { + /* Watchpoint Fault Adrress. */ + return 0; /* Not implemented. */ + } else { + /* Instruction Fault Adrress. */ + /* Arm9 doesn't have an IFAR, but implementing it anyway + shouldn't do any harm. */ + return env->cp15.c6_insn; + } + case 2: + if (arm_feature(env, ARM_FEATURE_V6)) { + /* Instruction Fault Adrress. */ + return env->cp15.c6_insn; + } else { + goto bad_reg; + } + default: + goto bad_reg; + } + } + case 7: /* Cache control. */ + /* ??? This is for test, clean and invaidate operations that set the + Z flag. We can't represent N = Z = 1, so it also clears + the N flag. Oh well. */ + env->NZF = 0; + return 0; + case 8: /* MMU TLB control. */ + goto bad_reg; + case 9: /* Cache lockdown. */ + switch (op1) { + case 0: /* L1 cache. */ + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + return 0; + switch (op2) { + case 0: + return env->cp15.c9_data; + case 1: + return env->cp15.c9_insn; + default: + goto bad_reg; + } + case 1: /* L2 cache */ + if (crm != 0) + goto bad_reg; + /* L2 Lockdown and Auxiliary control. */ + return 0; + default: + goto bad_reg; + } + case 10: /* MMU TLB lockdown. */ + /* ??? TLB lockdown not implemented. */ + return 0; + case 11: /* TCM DMA control. */ + case 12: /* Reserved. */ + goto bad_reg; + case 13: /* Process ID. */ + switch (op2) { + case 0: + return env->cp15.c13_fcse; + case 1: + return env->cp15.c13_context; + case 2: + return env->cp15.c13_tls1; + case 3: + return env->cp15.c13_tls2; + case 4: + return env->cp15.c13_tls3; + default: + goto bad_reg; + } + case 14: /* Reserved. */ + goto bad_reg; + case 15: /* Implementation specific. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) { + if (op2 == 0 && crm == 1) + return env->cp15.c15_cpar; + + goto bad_reg; + } + if (arm_feature(env, ARM_FEATURE_OMAPCP)) { + switch (crm) { + case 0: + return 0; + case 1: /* Read TI925T configuration. */ + return env->cp15.c15_ticonfig; + case 2: /* Read I_max. */ + return env->cp15.c15_i_max; + case 3: /* Read I_min. */ + return env->cp15.c15_i_min; + case 4: /* Read thread-ID. */ + return env->cp15.c15_threadid; + case 8: /* TI925T_status */ + return 0; + } + goto bad_reg; + } + return 0; + } +bad_reg: + /* ??? For debugging only. Should raise illegal instruction exception. */ + cpu_abort(env, "Unimplemented cp15 register read (c%d, c%d, {%d, %d})\n", + (insn >> 16) & 0xf, crm, op1, op2); + return 0; +} + +void helper_set_r13_banked(CPUState *env, int mode, uint32_t val) +{ + env->banked_r13[bank_number(mode)] = val; +} + +uint32_t helper_get_r13_banked(CPUState *env, int mode) +{ + return env->banked_r13[bank_number(mode)]; +} + +uint32_t helper_v7m_mrs(CPUState *env, int reg) +{ + switch (reg) { + case 0: /* APSR */ + return xpsr_read(env) & 0xf8000000; + case 1: /* IAPSR */ + return xpsr_read(env) & 0xf80001ff; + case 2: /* EAPSR */ + return xpsr_read(env) & 0xff00fc00; + case 3: /* xPSR */ + return xpsr_read(env) & 0xff00fdff; + case 5: /* IPSR */ + return xpsr_read(env) & 0x000001ff; + case 6: /* EPSR */ + return xpsr_read(env) & 0x0700fc00; + case 7: /* IEPSR */ + return xpsr_read(env) & 0x0700edff; + case 8: /* MSP */ + return env->v7m.current_sp ? env->v7m.other_sp : env->regs[13]; + case 9: /* PSP */ + return env->v7m.current_sp ? env->regs[13] : env->v7m.other_sp; + case 16: /* PRIMASK */ + return (env->uncached_cpsr & CPSR_I) != 0; + case 17: /* FAULTMASK */ + return (env->uncached_cpsr & CPSR_F) != 0; + case 18: /* BASEPRI */ + case 19: /* BASEPRI_MAX */ + return env->v7m.basepri; + case 20: /* CONTROL */ + return env->v7m.control; + default: + /* ??? For debugging only. */ + cpu_abort(env, "Unimplemented system register read (%d)\n", reg); + return 0; + } +} + +void helper_v7m_msr(CPUState *env, int reg, uint32_t val) +{ + switch (reg) { + case 0: /* APSR */ + xpsr_write(env, val, 0xf8000000); + break; + case 1: /* IAPSR */ + xpsr_write(env, val, 0xf8000000); + break; + case 2: /* EAPSR */ + xpsr_write(env, val, 0xfe00fc00); + break; + case 3: /* xPSR */ + xpsr_write(env, val, 0xfe00fc00); + break; + case 5: /* IPSR */ + /* IPSR bits are readonly. */ + break; + case 6: /* EPSR */ + xpsr_write(env, val, 0x0600fc00); + break; + case 7: /* IEPSR */ + xpsr_write(env, val, 0x0600fc00); + break; + case 8: /* MSP */ + if (env->v7m.current_sp) + env->v7m.other_sp = val; + else + env->regs[13] = val; + break; + case 9: /* PSP */ + if (env->v7m.current_sp) + env->regs[13] = val; + else + env->v7m.other_sp = val; + break; + case 16: /* PRIMASK */ + if (val & 1) + env->uncached_cpsr |= CPSR_I; + else + env->uncached_cpsr &= ~CPSR_I; + break; + case 17: /* FAULTMASK */ + if (val & 1) + env->uncached_cpsr |= CPSR_F; + else + env->uncached_cpsr &= ~CPSR_F; + break; + case 18: /* BASEPRI */ + env->v7m.basepri = val & 0xff; + break; + case 19: /* BASEPRI_MAX */ + val &= 0xff; + if (val != 0 && (val < env->v7m.basepri || env->v7m.basepri == 0)) + env->v7m.basepri = val; + break; + case 20: /* CONTROL */ + env->v7m.control = val & 3; + switch_v7m_sp(env, (val & 2) != 0); + break; + default: + /* ??? For debugging only. */ + cpu_abort(env, "Unimplemented system register write (%d)\n", reg); + return; + } +} + +void cpu_arm_set_cp_io(CPUARMState *env, int cpnum, + ARMReadCPFunc *cp_read, ARMWriteCPFunc *cp_write, + void *opaque) +{ + if (cpnum < 0 || cpnum > 14) { + cpu_abort(env, "Bad coprocessor number: %i\n", cpnum); + return; + } + + env->cp[cpnum].cp_read = cp_read; + env->cp[cpnum].cp_write = cp_write; + env->cp[cpnum].opaque = opaque; +} + +#endif diff --git a/qemu/vl.c b/qemu/vl.c new file mode 100644 index 000000000..5430df8bf --- /dev/null +++ b/qemu/vl.c @@ -0,0 +1,9003 @@ +/* + * QEMU System Emulator + * + * Copyright (c) 2003-2008 Fabrice Bellard + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#include "hw/hw.h" +#include "hw/boards.h" +#include "hw/usb.h" +#include "hw/pcmcia.h" +#include "hw/pc.h" +#include "hw/fdc.h" +#include "hw/audiodev.h" +#include "hw/isa.h" +#include "net.h" +#include "console.h" +#include "sysemu.h" +#include "gdbstub.h" +#include "qemu-timer.h" +#include "qemu-char.h" +#include "block.h" +#include "audio/audio.h" + +#include +#include +#include +#include +#include +#include +#include + +#ifndef _WIN32 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef _BSD +#include +#ifndef __APPLE__ +#include +#endif +#elif defined (__GLIBC__) && defined (__FreeBSD_kernel__) +#include +#else +#ifndef __sun__ +#include +#include +#include +#include +#include + +/* For the benefit of older linux systems which don't supply it, + we use a local copy of hpet.h. */ +/* #include */ +#include "hpet.h" + +#include +#include +#else +#include +#include +#include +#include +#include +#include +#include +#include // must come after ip.h +#include +#include +#include +#include +#include +#endif +#endif +#else +#include +int inet_aton(const char *cp, struct in_addr *ia); +#endif + +#if defined(CONFIG_SLIRP) +#include "libslirp.h" +#endif + +#ifdef _WIN32 +#include +#include +#include +#define getopt_long_only getopt_long +#define memalign(align, size) malloc(size) +#endif + +#include "qemu_socket.h" + +#ifdef CONFIG_SDL +#ifdef __APPLE__ +#include +#endif +#endif /* CONFIG_SDL */ + +#ifdef CONFIG_COCOA +#undef main +#define main qemu_main +#endif /* CONFIG_COCOA */ + +#include "disas.h" + +#include "exec-all.h" + +#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup" +#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown" +#ifdef __sun__ +#define SMBD_COMMAND "/usr/sfw/sbin/smbd" +#else +#define SMBD_COMMAND "/usr/sbin/smbd" +#endif + +//#define DEBUG_UNUSED_IOPORT +//#define DEBUG_IOPORT + +#define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024) + +#ifdef TARGET_PPC +#define DEFAULT_RAM_SIZE 144 +#else +#define DEFAULT_RAM_SIZE 128 +#endif +/* in ms */ +#define GUI_REFRESH_INTERVAL 30 + +/* Max number of USB devices that can be specified on the commandline. */ +#define MAX_USB_CMDLINE 8 + +/* XXX: use a two level table to limit memory usage */ +#define MAX_IOPORTS 65536 + +const char *bios_dir = CONFIG_QEMU_SHAREDIR; +const char *bios_name = NULL; +void *ioport_opaque[MAX_IOPORTS]; +IOPortReadFunc *ioport_read_table[3][MAX_IOPORTS]; +IOPortWriteFunc *ioport_write_table[3][MAX_IOPORTS]; +/* Note: drives_table[MAX_DRIVES] is a dummy block driver if none available + to store the VM snapshots */ +DriveInfo drives_table[MAX_DRIVES+1]; +int nb_drives; +/* point to the block driver where the snapshots are managed */ +BlockDriverState *bs_snapshots; +int vga_ram_size; +static DisplayState display_state; +int nographic; +const char* keyboard_layout = NULL; +int64_t ticks_per_sec; +int ram_size; +int pit_min_timer_count = 0; +int nb_nics; +NICInfo nd_table[MAX_NICS]; +int vm_running; +int rtc_utc = 1; +int rtc_start_date = -1; /* -1 means now */ +int cirrus_vga_enabled = 1; +int vmsvga_enabled = 0; +#ifdef TARGET_SPARC +int graphic_width = 1024; +int graphic_height = 768; +int graphic_depth = 8; +#else +int graphic_width = 800; +int graphic_height = 600; +int graphic_depth = 15; +#endif +int full_screen = 0; +int no_frame = 0; +int no_quit = 0; +CharDriverState *serial_hds[MAX_SERIAL_PORTS]; +CharDriverState *parallel_hds[MAX_PARALLEL_PORTS]; +#ifdef TARGET_I386 +int win2k_install_hack = 0; +#endif +int usb_enabled = 0; +static VLANState *first_vlan; +int smp_cpus = 1; +const char *vnc_display; +#if defined(TARGET_SPARC) +#define MAX_CPUS 16 +#elif defined(TARGET_I386) +#define MAX_CPUS 255 +#else +#define MAX_CPUS 1 +#endif +int acpi_enabled = 1; +int fd_bootchk = 1; +int no_reboot = 0; +int cursor_hide = 1; +int graphic_rotate = 0; +int daemonize = 0; +const char *option_rom[MAX_OPTION_ROMS]; +int nb_option_roms; +int semihosting_enabled = 0; +int autostart = 1; +#ifdef TARGET_ARM +int old_param = 0; +#endif +const char *qemu_name; +int alt_grab = 0; +#ifdef TARGET_SPARC +unsigned int nb_prom_envs = 0; +const char *prom_envs[MAX_PROM_ENVS]; +#endif +int nb_drives_opt; +char drives_opt[MAX_DRIVES][1024]; + +static CPUState *cur_cpu; +static CPUState *next_cpu; +static int event_pending = 1; + +#define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR) + +/***********************************************************/ +/* x86 ISA bus support */ + +target_phys_addr_t isa_mem_base = 0; +PicState2 *isa_pic; + +static uint32_t default_ioport_readb(void *opaque, uint32_t address) +{ +#ifdef DEBUG_UNUSED_IOPORT + fprintf(stderr, "unused inb: port=0x%04x\n", address); +#endif + return 0xff; +} + +static void default_ioport_writeb(void *opaque, uint32_t address, uint32_t data) +{ +#ifdef DEBUG_UNUSED_IOPORT + fprintf(stderr, "unused outb: port=0x%04x data=0x%02x\n", address, data); +#endif +} + +/* default is to make two byte accesses */ +static uint32_t default_ioport_readw(void *opaque, uint32_t address) +{ + uint32_t data; + data = ioport_read_table[0][address](ioport_opaque[address], address); + address = (address + 1) & (MAX_IOPORTS - 1); + data |= ioport_read_table[0][address](ioport_opaque[address], address) << 8; + return data; +} + +static void default_ioport_writew(void *opaque, uint32_t address, uint32_t data) +{ + ioport_write_table[0][address](ioport_opaque[address], address, data & 0xff); + address = (address + 1) & (MAX_IOPORTS - 1); + ioport_write_table[0][address](ioport_opaque[address], address, (data >> 8) & 0xff); +} + +static uint32_t default_ioport_readl(void *opaque, uint32_t address) +{ +#ifdef DEBUG_UNUSED_IOPORT + fprintf(stderr, "unused inl: port=0x%04x\n", address); +#endif + return 0xffffffff; +} + +static void default_ioport_writel(void *opaque, uint32_t address, uint32_t data) +{ +#ifdef DEBUG_UNUSED_IOPORT + fprintf(stderr, "unused outl: port=0x%04x data=0x%02x\n", address, data); +#endif +} + +static void init_ioports(void) +{ + int i; + + for(i = 0; i < MAX_IOPORTS; i++) { + ioport_read_table[0][i] = default_ioport_readb; + ioport_write_table[0][i] = default_ioport_writeb; + ioport_read_table[1][i] = default_ioport_readw; + ioport_write_table[1][i] = default_ioport_writew; + ioport_read_table[2][i] = default_ioport_readl; + ioport_write_table[2][i] = default_ioport_writel; + } +} + +/* size is the word size in byte */ +int register_ioport_read(int start, int length, int size, + IOPortReadFunc *func, void *opaque) +{ + int i, bsize; + + if (size == 1) { + bsize = 0; + } else if (size == 2) { + bsize = 1; + } else if (size == 4) { + bsize = 2; + } else { + hw_error("register_ioport_read: invalid size"); + return -1; + } + for(i = start; i < start + length; i += size) { + ioport_read_table[bsize][i] = func; + if (ioport_opaque[i] != NULL && ioport_opaque[i] != opaque) + hw_error("register_ioport_read: invalid opaque"); + ioport_opaque[i] = opaque; + } + return 0; +} + +/* size is the word size in byte */ +int register_ioport_write(int start, int length, int size, + IOPortWriteFunc *func, void *opaque) +{ + int i, bsize; + + if (size == 1) { + bsize = 0; + } else if (size == 2) { + bsize = 1; + } else if (size == 4) { + bsize = 2; + } else { + hw_error("register_ioport_write: invalid size"); + return -1; + } + for(i = start; i < start + length; i += size) { + ioport_write_table[bsize][i] = func; + if (ioport_opaque[i] != NULL && ioport_opaque[i] != opaque) + hw_error("register_ioport_write: invalid opaque"); + ioport_opaque[i] = opaque; + } + return 0; +} + +void isa_unassign_ioport(int start, int length) +{ + int i; + + for(i = start; i < start + length; i++) { + ioport_read_table[0][i] = default_ioport_readb; + ioport_read_table[1][i] = default_ioport_readw; + ioport_read_table[2][i] = default_ioport_readl; + + ioport_write_table[0][i] = default_ioport_writeb; + ioport_write_table[1][i] = default_ioport_writew; + ioport_write_table[2][i] = default_ioport_writel; + } +} + +/***********************************************************/ + +void cpu_outb(CPUState *env, int addr, int val) +{ +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "outb: %04x %02x\n", addr, val); +#endif + ioport_write_table[0][addr](ioport_opaque[addr], addr, val); +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif +} + +void cpu_outw(CPUState *env, int addr, int val) +{ +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "outw: %04x %04x\n", addr, val); +#endif + ioport_write_table[1][addr](ioport_opaque[addr], addr, val); +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif +} + +void cpu_outl(CPUState *env, int addr, int val) +{ +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "outl: %04x %08x\n", addr, val); +#endif + ioport_write_table[2][addr](ioport_opaque[addr], addr, val); +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif +} + +int cpu_inb(CPUState *env, int addr) +{ + int val; + val = ioport_read_table[0][addr](ioport_opaque[addr], addr); +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "inb : %04x %02x\n", addr, val); +#endif +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif + return val; +} + +int cpu_inw(CPUState *env, int addr) +{ + int val; + val = ioport_read_table[1][addr](ioport_opaque[addr], addr); +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "inw : %04x %04x\n", addr, val); +#endif +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif + return val; +} + +int cpu_inl(CPUState *env, int addr) +{ + int val; + val = ioport_read_table[2][addr](ioport_opaque[addr], addr); +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "inl : %04x %08x\n", addr, val); +#endif +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif + return val; +} + +/***********************************************************/ +void hw_error(const char *fmt, ...) +{ + va_list ap; + CPUState *env; + + va_start(ap, fmt); + fprintf(stderr, "qemu: hardware error: "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, "\n"); + for(env = first_cpu; env != NULL; env = env->next_cpu) { + fprintf(stderr, "CPU #%d:\n", env->cpu_index); +#ifdef TARGET_I386 + cpu_dump_state(env, stderr, fprintf, X86_DUMP_FPU); +#else + cpu_dump_state(env, stderr, fprintf, 0); +#endif + } + va_end(ap); + abort(); +} + +/***********************************************************/ +/* keyboard/mouse */ + +static QEMUPutKBDEvent *qemu_put_kbd_event; +static void *qemu_put_kbd_event_opaque; +static QEMUPutMouseEntry *qemu_put_mouse_event_head; +static QEMUPutMouseEntry *qemu_put_mouse_event_current; + +void qemu_add_kbd_event_handler(QEMUPutKBDEvent *func, void *opaque) +{ + qemu_put_kbd_event_opaque = opaque; + qemu_put_kbd_event = func; +} + +QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func, + void *opaque, int absolute, + const char *name) +{ + QEMUPutMouseEntry *s, *cursor; + + s = qemu_mallocz(sizeof(QEMUPutMouseEntry)); + if (!s) + return NULL; + + s->qemu_put_mouse_event = func; + s->qemu_put_mouse_event_opaque = opaque; + s->qemu_put_mouse_event_absolute = absolute; + s->qemu_put_mouse_event_name = qemu_strdup(name); + s->next = NULL; + + if (!qemu_put_mouse_event_head) { + qemu_put_mouse_event_head = qemu_put_mouse_event_current = s; + return s; + } + + cursor = qemu_put_mouse_event_head; + while (cursor->next != NULL) + cursor = cursor->next; + + cursor->next = s; + qemu_put_mouse_event_current = s; + + return s; +} + +void qemu_remove_mouse_event_handler(QEMUPutMouseEntry *entry) +{ + QEMUPutMouseEntry *prev = NULL, *cursor; + + if (!qemu_put_mouse_event_head || entry == NULL) + return; + + cursor = qemu_put_mouse_event_head; + while (cursor != NULL && cursor != entry) { + prev = cursor; + cursor = cursor->next; + } + + if (cursor == NULL) // does not exist or list empty + return; + else if (prev == NULL) { // entry is head + qemu_put_mouse_event_head = cursor->next; + if (qemu_put_mouse_event_current == entry) + qemu_put_mouse_event_current = cursor->next; + qemu_free(entry->qemu_put_mouse_event_name); + qemu_free(entry); + return; + } + + prev->next = entry->next; + + if (qemu_put_mouse_event_current == entry) + qemu_put_mouse_event_current = prev; + + qemu_free(entry->qemu_put_mouse_event_name); + qemu_free(entry); +} + +void kbd_put_keycode(int keycode) +{ + if (qemu_put_kbd_event) { + qemu_put_kbd_event(qemu_put_kbd_event_opaque, keycode); + } +} + +void kbd_mouse_event(int dx, int dy, int dz, int buttons_state) +{ + QEMUPutMouseEvent *mouse_event; + void *mouse_event_opaque; + int width; + + if (!qemu_put_mouse_event_current) { + return; + } + + mouse_event = + qemu_put_mouse_event_current->qemu_put_mouse_event; + mouse_event_opaque = + qemu_put_mouse_event_current->qemu_put_mouse_event_opaque; + + if (mouse_event) { + if (graphic_rotate) { + if (qemu_put_mouse_event_current->qemu_put_mouse_event_absolute) + width = 0x7fff; + else + width = graphic_width; + mouse_event(mouse_event_opaque, + width - dy, dx, dz, buttons_state); + } else + mouse_event(mouse_event_opaque, + dx, dy, dz, buttons_state); + } +} + +int kbd_mouse_is_absolute(void) +{ + if (!qemu_put_mouse_event_current) + return 0; + + return qemu_put_mouse_event_current->qemu_put_mouse_event_absolute; +} + +void do_info_mice(void) +{ + QEMUPutMouseEntry *cursor; + int index = 0; + + if (!qemu_put_mouse_event_head) { + term_printf("No mouse devices connected\n"); + return; + } + + term_printf("Mouse devices available:\n"); + cursor = qemu_put_mouse_event_head; + while (cursor != NULL) { + term_printf("%c Mouse #%d: %s\n", + (cursor == qemu_put_mouse_event_current ? '*' : ' '), + index, cursor->qemu_put_mouse_event_name); + index++; + cursor = cursor->next; + } +} + +void do_mouse_set(int index) +{ + QEMUPutMouseEntry *cursor; + int i = 0; + + if (!qemu_put_mouse_event_head) { + term_printf("No mouse devices connected\n"); + return; + } + + cursor = qemu_put_mouse_event_head; + while (cursor != NULL && index != i) { + i++; + cursor = cursor->next; + } + + if (cursor != NULL) + qemu_put_mouse_event_current = cursor; + else + term_printf("Mouse at given index not found\n"); +} + +/* compute with 96 bit intermediate result: (a*b)/c */ +uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c) +{ + union { + uint64_t ll; + struct { +#ifdef WORDS_BIGENDIAN + uint32_t high, low; +#else + uint32_t low, high; +#endif + } l; + } u, res; + uint64_t rl, rh; + + u.ll = a; + rl = (uint64_t)u.l.low * (uint64_t)b; + rh = (uint64_t)u.l.high * (uint64_t)b; + rh += (rl >> 32); + res.l.high = rh / c; + res.l.low = (((rh % c) << 32) + (rl & 0xffffffff)) / c; + return res.ll; +} + +/***********************************************************/ +/* real time host monotonic timer */ + +#define QEMU_TIMER_BASE 1000000000LL + +#ifdef WIN32 + +static int64_t clock_freq; + +static void init_get_clock(void) +{ + LARGE_INTEGER freq; + int ret; + ret = QueryPerformanceFrequency(&freq); + if (ret == 0) { + fprintf(stderr, "Could not calibrate ticks\n"); + exit(1); + } + clock_freq = freq.QuadPart; +} + +static int64_t get_clock(void) +{ + LARGE_INTEGER ti; + QueryPerformanceCounter(&ti); + return muldiv64(ti.QuadPart, QEMU_TIMER_BASE, clock_freq); +} + +#else + +static int use_rt_clock; + +static void init_get_clock(void) +{ + use_rt_clock = 0; +#if defined(__linux__) + { + struct timespec ts; + if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) { + use_rt_clock = 1; + } + } +#endif +} + +static int64_t get_clock(void) +{ +#if defined(__linux__) + if (use_rt_clock) { + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return ts.tv_sec * 1000000000LL + ts.tv_nsec; + } else +#endif + { + /* XXX: using gettimeofday leads to problems if the date + changes, so it should be avoided. */ + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_sec * 1000000000LL + (tv.tv_usec * 1000); + } +} + +#endif + +/***********************************************************/ +/* guest cycle counter */ + +static int64_t cpu_ticks_prev; +static int64_t cpu_ticks_offset; +static int64_t cpu_clock_offset; +static int cpu_ticks_enabled; + +/* return the host CPU cycle counter and handle stop/restart */ +int64_t cpu_get_ticks(void) +{ + if (!cpu_ticks_enabled) { + return cpu_ticks_offset; + } else { + int64_t ticks; + ticks = cpu_get_real_ticks(); + if (cpu_ticks_prev > ticks) { + /* Note: non increasing ticks may happen if the host uses + software suspend */ + cpu_ticks_offset += cpu_ticks_prev - ticks; + } + cpu_ticks_prev = ticks; + return ticks + cpu_ticks_offset; + } +} + +/* return the host CPU monotonic timer and handle stop/restart */ +static int64_t cpu_get_clock(void) +{ + int64_t ti; + if (!cpu_ticks_enabled) { + return cpu_clock_offset; + } else { + ti = get_clock(); + return ti + cpu_clock_offset; + } +} + +/* enable cpu_get_ticks() */ +void cpu_enable_ticks(void) +{ + if (!cpu_ticks_enabled) { + cpu_ticks_offset -= cpu_get_real_ticks(); + cpu_clock_offset -= get_clock(); + cpu_ticks_enabled = 1; + } +} + +/* disable cpu_get_ticks() : the clock is stopped. You must not call + cpu_get_ticks() after that. */ +void cpu_disable_ticks(void) +{ + if (cpu_ticks_enabled) { + cpu_ticks_offset = cpu_get_ticks(); + cpu_clock_offset = cpu_get_clock(); + cpu_ticks_enabled = 0; + } +} + +/***********************************************************/ +/* timers */ + +#define QEMU_TIMER_REALTIME 0 +#define QEMU_TIMER_VIRTUAL 1 + +struct QEMUClock { + int type; + /* XXX: add frequency */ +}; + +struct QEMUTimer { + QEMUClock *clock; + int64_t expire_time; + QEMUTimerCB *cb; + void *opaque; + struct QEMUTimer *next; +}; + +struct qemu_alarm_timer { + char const *name; + unsigned int flags; + + int (*start)(struct qemu_alarm_timer *t); + void (*stop)(struct qemu_alarm_timer *t); + void (*rearm)(struct qemu_alarm_timer *t); + void *priv; +}; + +#define ALARM_FLAG_DYNTICKS 0x1 +#define ALARM_FLAG_EXPIRED 0x2 + +static inline int alarm_has_dynticks(struct qemu_alarm_timer *t) +{ + return t->flags & ALARM_FLAG_DYNTICKS; +} + +static void qemu_rearm_alarm_timer(struct qemu_alarm_timer *t) +{ + if (!alarm_has_dynticks(t)) + return; + + t->rearm(t); +} + +/* TODO: MIN_TIMER_REARM_US should be optimized */ +#define MIN_TIMER_REARM_US 250 + +static struct qemu_alarm_timer *alarm_timer; + +#ifdef _WIN32 + +struct qemu_alarm_win32 { + MMRESULT timerId; + HANDLE host_alarm; + unsigned int period; +} alarm_win32_data = {0, NULL, -1}; + +static int win32_start_timer(struct qemu_alarm_timer *t); +static void win32_stop_timer(struct qemu_alarm_timer *t); +static void win32_rearm_timer(struct qemu_alarm_timer *t); + +#else + +static int unix_start_timer(struct qemu_alarm_timer *t); +static void unix_stop_timer(struct qemu_alarm_timer *t); + +#ifdef __linux__ + +static int dynticks_start_timer(struct qemu_alarm_timer *t); +static void dynticks_stop_timer(struct qemu_alarm_timer *t); +static void dynticks_rearm_timer(struct qemu_alarm_timer *t); + +static int hpet_start_timer(struct qemu_alarm_timer *t); +static void hpet_stop_timer(struct qemu_alarm_timer *t); + +static int rtc_start_timer(struct qemu_alarm_timer *t); +static void rtc_stop_timer(struct qemu_alarm_timer *t); + +#endif /* __linux__ */ + +#endif /* _WIN32 */ + +static struct qemu_alarm_timer alarm_timers[] = { +#ifndef _WIN32 +#ifdef __linux__ + {"dynticks", ALARM_FLAG_DYNTICKS, dynticks_start_timer, + dynticks_stop_timer, dynticks_rearm_timer, NULL}, + /* HPET - if available - is preferred */ + {"hpet", 0, hpet_start_timer, hpet_stop_timer, NULL, NULL}, + /* ...otherwise try RTC */ + {"rtc", 0, rtc_start_timer, rtc_stop_timer, NULL, NULL}, +#endif + {"unix", 0, unix_start_timer, unix_stop_timer, NULL, NULL}, +#else + {"dynticks", ALARM_FLAG_DYNTICKS, win32_start_timer, + win32_stop_timer, win32_rearm_timer, &alarm_win32_data}, + {"win32", 0, win32_start_timer, + win32_stop_timer, NULL, &alarm_win32_data}, +#endif + {NULL, } +}; + +static void show_available_alarms() +{ + int i; + + printf("Available alarm timers, in order of precedence:\n"); + for (i = 0; alarm_timers[i].name; i++) + printf("%s\n", alarm_timers[i].name); +} + +static void configure_alarms(char const *opt) +{ + int i; + int cur = 0; + int count = (sizeof(alarm_timers) / sizeof(*alarm_timers)) - 1; + char *arg; + char *name; + + if (!strcmp(opt, "help")) { + show_available_alarms(); + exit(0); + } + + arg = strdup(opt); + + /* Reorder the array */ + name = strtok(arg, ","); + while (name) { + struct qemu_alarm_timer tmp; + + for (i = 0; i < count && alarm_timers[i].name; i++) { + if (!strcmp(alarm_timers[i].name, name)) + break; + } + + if (i == count) { + fprintf(stderr, "Unknown clock %s\n", name); + goto next; + } + + if (i < cur) + /* Ignore */ + goto next; + + /* Swap */ + tmp = alarm_timers[i]; + alarm_timers[i] = alarm_timers[cur]; + alarm_timers[cur] = tmp; + + cur++; +next: + name = strtok(NULL, ","); + } + + free(arg); + + if (cur) { + /* Disable remaining timers */ + for (i = cur; i < count; i++) + alarm_timers[i].name = NULL; + } + + /* debug */ + show_available_alarms(); +} + +QEMUClock *rt_clock; +QEMUClock *vm_clock; + +static QEMUTimer *active_timers[2]; + +static QEMUClock *qemu_new_clock(int type) +{ + QEMUClock *clock; + clock = qemu_mallocz(sizeof(QEMUClock)); + if (!clock) + return NULL; + clock->type = type; + return clock; +} + +QEMUTimer *qemu_new_timer(QEMUClock *clock, QEMUTimerCB *cb, void *opaque) +{ + QEMUTimer *ts; + + ts = qemu_mallocz(sizeof(QEMUTimer)); + ts->clock = clock; + ts->cb = cb; + ts->opaque = opaque; + return ts; +} + +void qemu_free_timer(QEMUTimer *ts) +{ + qemu_free(ts); +} + +/* stop a timer, but do not dealloc it */ +void qemu_del_timer(QEMUTimer *ts) +{ + QEMUTimer **pt, *t; + + /* NOTE: this code must be signal safe because + qemu_timer_expired() can be called from a signal. */ + pt = &active_timers[ts->clock->type]; + for(;;) { + t = *pt; + if (!t) + break; + if (t == ts) { + *pt = t->next; + break; + } + pt = &t->next; + } +} + +/* modify the current timer so that it will be fired when current_time + >= expire_time. The corresponding callback will be called. */ +void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time) +{ + QEMUTimer **pt, *t; + + qemu_del_timer(ts); + + /* add the timer in the sorted list */ + /* NOTE: this code must be signal safe because + qemu_timer_expired() can be called from a signal. */ + pt = &active_timers[ts->clock->type]; + for(;;) { + t = *pt; + if (!t) + break; + if (t->expire_time > expire_time) + break; + pt = &t->next; + } + ts->expire_time = expire_time; + ts->next = *pt; + *pt = ts; + + /* Rearm if necessary */ + if ((alarm_timer->flags & ALARM_FLAG_EXPIRED) == 0 && + pt == &active_timers[ts->clock->type]) + qemu_rearm_alarm_timer(alarm_timer); +} + +int qemu_timer_pending(QEMUTimer *ts) +{ + QEMUTimer *t; + for(t = active_timers[ts->clock->type]; t != NULL; t = t->next) { + if (t == ts) + return 1; + } + return 0; +} + +static inline int qemu_timer_expired(QEMUTimer *timer_head, int64_t current_time) +{ + if (!timer_head) + return 0; + return (timer_head->expire_time <= current_time); +} + +static void qemu_run_timers(QEMUTimer **ptimer_head, int64_t current_time) +{ + QEMUTimer *ts; + + for(;;) { + ts = *ptimer_head; + if (!ts || ts->expire_time > current_time) + break; + /* remove timer from the list before calling the callback */ + *ptimer_head = ts->next; + ts->next = NULL; + + /* run the callback (the timer list can be modified) */ + ts->cb(ts->opaque); + } +} + +int64_t qemu_get_clock(QEMUClock *clock) +{ + switch(clock->type) { + case QEMU_TIMER_REALTIME: + return get_clock() / 1000000; + default: + case QEMU_TIMER_VIRTUAL: + return cpu_get_clock(); + } +} + +static void init_timers(void) +{ + init_get_clock(); + ticks_per_sec = QEMU_TIMER_BASE; + rt_clock = qemu_new_clock(QEMU_TIMER_REALTIME); + vm_clock = qemu_new_clock(QEMU_TIMER_VIRTUAL); +} + +/* save a timer */ +void qemu_put_timer(QEMUFile *f, QEMUTimer *ts) +{ + uint64_t expire_time; + + if (qemu_timer_pending(ts)) { + expire_time = ts->expire_time; + } else { + expire_time = -1; + } + qemu_put_be64(f, expire_time); +} + +void qemu_get_timer(QEMUFile *f, QEMUTimer *ts) +{ + uint64_t expire_time; + + expire_time = qemu_get_be64(f); + if (expire_time != -1) { + qemu_mod_timer(ts, expire_time); + } else { + qemu_del_timer(ts); + } +} + +static void timer_save(QEMUFile *f, void *opaque) +{ + if (cpu_ticks_enabled) { + hw_error("cannot save state if virtual timers are running"); + } + qemu_put_be64(f, cpu_ticks_offset); + qemu_put_be64(f, ticks_per_sec); + qemu_put_be64(f, cpu_clock_offset); +} + +static int timer_load(QEMUFile *f, void *opaque, int version_id) +{ + if (version_id != 1 && version_id != 2) + return -EINVAL; + if (cpu_ticks_enabled) { + return -EINVAL; + } + cpu_ticks_offset=qemu_get_be64(f); + ticks_per_sec=qemu_get_be64(f); + if (version_id == 2) { + cpu_clock_offset=qemu_get_be64(f); + } + return 0; +} + +#ifdef _WIN32 +void CALLBACK host_alarm_handler(UINT uTimerID, UINT uMsg, + DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) +#else +static void host_alarm_handler(int host_signum) +#endif +{ +#if 0 +#define DISP_FREQ 1000 + { + static int64_t delta_min = INT64_MAX; + static int64_t delta_max, delta_cum, last_clock, delta, ti; + static int count; + ti = qemu_get_clock(vm_clock); + if (last_clock != 0) { + delta = ti - last_clock; + if (delta < delta_min) + delta_min = delta; + if (delta > delta_max) + delta_max = delta; + delta_cum += delta; + if (++count == DISP_FREQ) { + printf("timer: min=%" PRId64 " us max=%" PRId64 " us avg=%" PRId64 " us avg_freq=%0.3f Hz\n", + muldiv64(delta_min, 1000000, ticks_per_sec), + muldiv64(delta_max, 1000000, ticks_per_sec), + muldiv64(delta_cum, 1000000 / DISP_FREQ, ticks_per_sec), + (double)ticks_per_sec / ((double)delta_cum / DISP_FREQ)); + count = 0; + delta_min = INT64_MAX; + delta_max = 0; + delta_cum = 0; + } + } + last_clock = ti; + } +#endif + if (alarm_has_dynticks(alarm_timer) || + qemu_timer_expired(active_timers[QEMU_TIMER_VIRTUAL], + qemu_get_clock(vm_clock)) || + qemu_timer_expired(active_timers[QEMU_TIMER_REALTIME], + qemu_get_clock(rt_clock))) { +#ifdef _WIN32 + struct qemu_alarm_win32 *data = ((struct qemu_alarm_timer*)dwUser)->priv; + SetEvent(data->host_alarm); +#endif + CPUState *env = next_cpu; + + alarm_timer->flags |= ALARM_FLAG_EXPIRED; + + if (env) { + /* stop the currently executing cpu because a timer occured */ + cpu_interrupt(env, CPU_INTERRUPT_EXIT); +#ifdef USE_KQEMU + if (env->kqemu_enabled) { + kqemu_cpu_interrupt(env); + } +#endif + } + event_pending = 1; + } +} + +static uint64_t qemu_next_deadline(void) +{ + int64_t nearest_delta_us = INT64_MAX; + int64_t vmdelta_us; + + if (active_timers[QEMU_TIMER_REALTIME]) + nearest_delta_us = (active_timers[QEMU_TIMER_REALTIME]->expire_time - + qemu_get_clock(rt_clock))*1000; + + if (active_timers[QEMU_TIMER_VIRTUAL]) { + /* round up */ + vmdelta_us = (active_timers[QEMU_TIMER_VIRTUAL]->expire_time - + qemu_get_clock(vm_clock)+999)/1000; + if (vmdelta_us < nearest_delta_us) + nearest_delta_us = vmdelta_us; + } + + /* Avoid arming the timer to negative, zero, or too low values */ + if (nearest_delta_us <= MIN_TIMER_REARM_US) + nearest_delta_us = MIN_TIMER_REARM_US; + + return nearest_delta_us; +} + +#ifndef _WIN32 + +#if defined(__linux__) + +#define RTC_FREQ 1024 + +static void enable_sigio_timer(int fd) +{ + struct sigaction act; + + /* timer signal */ + sigfillset(&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = host_alarm_handler; + + sigaction(SIGIO, &act, NULL); + fcntl(fd, F_SETFL, O_ASYNC); + fcntl(fd, F_SETOWN, getpid()); +} + +static int hpet_start_timer(struct qemu_alarm_timer *t) +{ + struct hpet_info info; + int r, fd; + + fd = open("/dev/hpet", O_RDONLY); + if (fd < 0) + return -1; + + /* Set frequency */ + r = ioctl(fd, HPET_IRQFREQ, RTC_FREQ); + if (r < 0) { + fprintf(stderr, "Could not configure '/dev/hpet' to have a 1024Hz timer. This is not a fatal\n" + "error, but for better emulation accuracy type:\n" + "'echo 1024 > /proc/sys/dev/hpet/max-user-freq' as root.\n"); + goto fail; + } + + /* Check capabilities */ + r = ioctl(fd, HPET_INFO, &info); + if (r < 0) + goto fail; + + /* Enable periodic mode */ + r = ioctl(fd, HPET_EPI, 0); + if (info.hi_flags && (r < 0)) + goto fail; + + /* Enable interrupt */ + r = ioctl(fd, HPET_IE_ON, 0); + if (r < 0) + goto fail; + + enable_sigio_timer(fd); + t->priv = (void *)(long)fd; + + return 0; +fail: + close(fd); + return -1; +} + +static void hpet_stop_timer(struct qemu_alarm_timer *t) +{ + int fd = (long)t->priv; + + close(fd); +} + +static int rtc_start_timer(struct qemu_alarm_timer *t) +{ + int rtc_fd; + + TFR(rtc_fd = open("/dev/rtc", O_RDONLY)); + if (rtc_fd < 0) + return -1; + if (ioctl(rtc_fd, RTC_IRQP_SET, RTC_FREQ) < 0) { + fprintf(stderr, "Could not configure '/dev/rtc' to have a 1024 Hz timer. This is not a fatal\n" + "error, but for better emulation accuracy either use a 2.6 host Linux kernel or\n" + "type 'echo 1024 > /proc/sys/dev/rtc/max-user-freq' as root.\n"); + goto fail; + } + if (ioctl(rtc_fd, RTC_PIE_ON, 0) < 0) { + fail: + close(rtc_fd); + return -1; + } + + enable_sigio_timer(rtc_fd); + + t->priv = (void *)(long)rtc_fd; + + return 0; +} + +static void rtc_stop_timer(struct qemu_alarm_timer *t) +{ + int rtc_fd = (long)t->priv; + + close(rtc_fd); +} + +static int dynticks_start_timer(struct qemu_alarm_timer *t) +{ + struct sigevent ev; + timer_t host_timer; + struct sigaction act; + + sigfillset(&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = host_alarm_handler; + + sigaction(SIGALRM, &act, NULL); + + ev.sigev_value.sival_int = 0; + ev.sigev_notify = SIGEV_SIGNAL; + ev.sigev_signo = SIGALRM; + + if (timer_create(CLOCK_REALTIME, &ev, &host_timer)) { + perror("timer_create"); + + /* disable dynticks */ + fprintf(stderr, "Dynamic Ticks disabled\n"); + + return -1; + } + + t->priv = (void *)host_timer; + + return 0; +} + +static void dynticks_stop_timer(struct qemu_alarm_timer *t) +{ + timer_t host_timer = (timer_t)t->priv; + + timer_delete(host_timer); +} + +static void dynticks_rearm_timer(struct qemu_alarm_timer *t) +{ + timer_t host_timer = (timer_t)t->priv; + struct itimerspec timeout; + int64_t nearest_delta_us = INT64_MAX; + int64_t current_us; + + if (!active_timers[QEMU_TIMER_REALTIME] && + !active_timers[QEMU_TIMER_VIRTUAL]) + return; + + nearest_delta_us = qemu_next_deadline(); + + /* check whether a timer is already running */ + if (timer_gettime(host_timer, &timeout)) { + perror("gettime"); + fprintf(stderr, "Internal timer error: aborting\n"); + exit(1); + } + current_us = timeout.it_value.tv_sec * 1000000 + timeout.it_value.tv_nsec/1000; + if (current_us && current_us <= nearest_delta_us) + return; + + timeout.it_interval.tv_sec = 0; + timeout.it_interval.tv_nsec = 0; /* 0 for one-shot timer */ + timeout.it_value.tv_sec = nearest_delta_us / 1000000; + timeout.it_value.tv_nsec = (nearest_delta_us % 1000000) * 1000; + if (timer_settime(host_timer, 0 /* RELATIVE */, &timeout, NULL)) { + perror("settime"); + fprintf(stderr, "Internal timer error: aborting\n"); + exit(1); + } +} + +#endif /* defined(__linux__) */ + +static int unix_start_timer(struct qemu_alarm_timer *t) +{ + struct sigaction act; + struct itimerval itv; + int err; + + /* timer signal */ + sigfillset(&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = host_alarm_handler; + + sigaction(SIGALRM, &act, NULL); + + itv.it_interval.tv_sec = 0; + /* for i386 kernel 2.6 to get 1 ms */ + itv.it_interval.tv_usec = 999; + itv.it_value.tv_sec = 0; + itv.it_value.tv_usec = 10 * 1000; + + err = setitimer(ITIMER_REAL, &itv, NULL); + if (err) + return -1; + + return 0; +} + +static void unix_stop_timer(struct qemu_alarm_timer *t) +{ + struct itimerval itv; + + memset(&itv, 0, sizeof(itv)); + setitimer(ITIMER_REAL, &itv, NULL); +} + +#endif /* !defined(_WIN32) */ + +#ifdef _WIN32 + +static int win32_start_timer(struct qemu_alarm_timer *t) +{ + TIMECAPS tc; + struct qemu_alarm_win32 *data = t->priv; + UINT flags; + + data->host_alarm = CreateEvent(NULL, FALSE, FALSE, NULL); + if (!data->host_alarm) { + perror("Failed CreateEvent"); + return -1; + } + + memset(&tc, 0, sizeof(tc)); + timeGetDevCaps(&tc, sizeof(tc)); + + if (data->period < tc.wPeriodMin) + data->period = tc.wPeriodMin; + + timeBeginPeriod(data->period); + + flags = TIME_CALLBACK_FUNCTION; + if (alarm_has_dynticks(t)) + flags |= TIME_ONESHOT; + else + flags |= TIME_PERIODIC; + + data->timerId = timeSetEvent(1, // interval (ms) + data->period, // resolution + host_alarm_handler, // function + (DWORD)t, // parameter + flags); + + if (!data->timerId) { + perror("Failed to initialize win32 alarm timer"); + + timeEndPeriod(data->period); + CloseHandle(data->host_alarm); + return -1; + } + + qemu_add_wait_object(data->host_alarm, NULL, NULL); + + return 0; +} + +static void win32_stop_timer(struct qemu_alarm_timer *t) +{ + struct qemu_alarm_win32 *data = t->priv; + + timeKillEvent(data->timerId); + timeEndPeriod(data->period); + + CloseHandle(data->host_alarm); +} + +static void win32_rearm_timer(struct qemu_alarm_timer *t) +{ + struct qemu_alarm_win32 *data = t->priv; + uint64_t nearest_delta_us; + + if (!active_timers[QEMU_TIMER_REALTIME] && + !active_timers[QEMU_TIMER_VIRTUAL]) + return; + + nearest_delta_us = qemu_next_deadline(); + nearest_delta_us /= 1000; + + timeKillEvent(data->timerId); + + data->timerId = timeSetEvent(1, + data->period, + host_alarm_handler, + (DWORD)t, + TIME_ONESHOT | TIME_PERIODIC); + + if (!data->timerId) { + perror("Failed to re-arm win32 alarm timer"); + + timeEndPeriod(data->period); + CloseHandle(data->host_alarm); + exit(1); + } +} + +#endif /* _WIN32 */ + +static void init_timer_alarm(void) +{ + struct qemu_alarm_timer *t; + int i, err = -1; + + for (i = 0; alarm_timers[i].name; i++) { + t = &alarm_timers[i]; + + err = t->start(t); + if (!err) + break; + } + + if (err) { + fprintf(stderr, "Unable to find any suitable alarm timer.\n"); + fprintf(stderr, "Terminating\n"); + exit(1); + } + + alarm_timer = t; +} + +static void quit_timers(void) +{ + alarm_timer->stop(alarm_timer); + alarm_timer = NULL; +} + +/***********************************************************/ +/* character device */ + +static void qemu_chr_event(CharDriverState *s, int event) +{ + if (!s->chr_event) + return; + s->chr_event(s->handler_opaque, event); +} + +static void qemu_chr_reset_bh(void *opaque) +{ + CharDriverState *s = opaque; + qemu_chr_event(s, CHR_EVENT_RESET); + qemu_bh_delete(s->bh); + s->bh = NULL; +} + +void qemu_chr_reset(CharDriverState *s) +{ + if (s->bh == NULL) { + s->bh = qemu_bh_new(qemu_chr_reset_bh, s); + qemu_bh_schedule(s->bh); + } +} + +int qemu_chr_write(CharDriverState *s, const uint8_t *buf, int len) +{ + return s->chr_write(s, buf, len); +} + +int qemu_chr_ioctl(CharDriverState *s, int cmd, void *arg) +{ + if (!s->chr_ioctl) + return -ENOTSUP; + return s->chr_ioctl(s, cmd, arg); +} + +int qemu_chr_can_read(CharDriverState *s) +{ + if (!s->chr_can_read) + return 0; + return s->chr_can_read(s->handler_opaque); +} + +void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len) +{ + s->chr_read(s->handler_opaque, buf, len); +} + +void qemu_chr_accept_input(CharDriverState *s) +{ + if (s->chr_accept_input) + s->chr_accept_input(s); +} + +void qemu_chr_printf(CharDriverState *s, const char *fmt, ...) +{ + char buf[4096]; + va_list ap; + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + qemu_chr_write(s, (uint8_t *)buf, strlen(buf)); + va_end(ap); +} + +void qemu_chr_send_event(CharDriverState *s, int event) +{ + if (s->chr_send_event) + s->chr_send_event(s, event); +} + +void qemu_chr_add_handlers(CharDriverState *s, + IOCanRWHandler *fd_can_read, + IOReadHandler *fd_read, + IOEventHandler *fd_event, + void *opaque) +{ + s->chr_can_read = fd_can_read; + s->chr_read = fd_read; + s->chr_event = fd_event; + s->handler_opaque = opaque; + if (s->chr_update_read_handler) + s->chr_update_read_handler(s); +} + +static int null_chr_write(CharDriverState *chr, const uint8_t *buf, int len) +{ + return len; +} + +static CharDriverState *qemu_chr_open_null(void) +{ + CharDriverState *chr; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + chr->chr_write = null_chr_write; + return chr; +} + +/* MUX driver for serial I/O splitting */ +static int term_timestamps; +static int64_t term_timestamps_start; +#define MAX_MUX 4 +#define MUX_BUFFER_SIZE 32 /* Must be a power of 2. */ +#define MUX_BUFFER_MASK (MUX_BUFFER_SIZE - 1) +typedef struct { + IOCanRWHandler *chr_can_read[MAX_MUX]; + IOReadHandler *chr_read[MAX_MUX]; + IOEventHandler *chr_event[MAX_MUX]; + void *ext_opaque[MAX_MUX]; + CharDriverState *drv; + unsigned char buffer[MUX_BUFFER_SIZE]; + int prod; + int cons; + int mux_cnt; + int term_got_escape; + int max_size; +} MuxDriver; + + +static int mux_chr_write(CharDriverState *chr, const uint8_t *buf, int len) +{ + MuxDriver *d = chr->opaque; + int ret; + if (!term_timestamps) { + ret = d->drv->chr_write(d->drv, buf, len); + } else { + int i; + + ret = 0; + for(i = 0; i < len; i++) { + ret += d->drv->chr_write(d->drv, buf+i, 1); + if (buf[i] == '\n') { + char buf1[64]; + int64_t ti; + int secs; + + ti = get_clock(); + if (term_timestamps_start == -1) + term_timestamps_start = ti; + ti -= term_timestamps_start; + secs = ti / 1000000000; + snprintf(buf1, sizeof(buf1), + "[%02d:%02d:%02d.%03d] ", + secs / 3600, + (secs / 60) % 60, + secs % 60, + (int)((ti / 1000000) % 1000)); + d->drv->chr_write(d->drv, (uint8_t *)buf1, strlen(buf1)); + } + } + } + return ret; +} + +static char *mux_help[] = { + "% h print this help\n\r", + "% x exit emulator\n\r", + "% s save disk data back to file (if -snapshot)\n\r", + "% t toggle console timestamps\n\r" + "% b send break (magic sysrq)\n\r", + "% c switch between console and monitor\n\r", + "% % sends %\n\r", + NULL +}; + +static int term_escape_char = 0x01; /* ctrl-a is used for escape */ +static void mux_print_help(CharDriverState *chr) +{ + int i, j; + char ebuf[15] = "Escape-Char"; + char cbuf[50] = "\n\r"; + + if (term_escape_char > 0 && term_escape_char < 26) { + sprintf(cbuf,"\n\r"); + sprintf(ebuf,"C-%c", term_escape_char - 1 + 'a'); + } else { + sprintf(cbuf,"\n\rEscape-Char set to Ascii: 0x%02x\n\r\n\r", + term_escape_char); + } + chr->chr_write(chr, (uint8_t *)cbuf, strlen(cbuf)); + for (i = 0; mux_help[i] != NULL; i++) { + for (j=0; mux_help[i][j] != '\0'; j++) { + if (mux_help[i][j] == '%') + chr->chr_write(chr, (uint8_t *)ebuf, strlen(ebuf)); + else + chr->chr_write(chr, (uint8_t *)&mux_help[i][j], 1); + } + } +} + +static int mux_proc_byte(CharDriverState *chr, MuxDriver *d, int ch) +{ + if (d->term_got_escape) { + d->term_got_escape = 0; + if (ch == term_escape_char) + goto send_char; + switch(ch) { + case '?': + case 'h': + mux_print_help(chr); + break; + case 'x': + { + char *term = "QEMU: Terminated\n\r"; + chr->chr_write(chr,(uint8_t *)term,strlen(term)); + exit(0); + break; + } + case 's': + { + int i; + for (i = 0; i < nb_drives; i++) { + bdrv_commit(drives_table[i].bdrv); + } + } + break; + case 'b': + qemu_chr_event(chr, CHR_EVENT_BREAK); + break; + case 'c': + /* Switch to the next registered device */ + chr->focus++; + if (chr->focus >= d->mux_cnt) + chr->focus = 0; + break; + case 't': + term_timestamps = !term_timestamps; + term_timestamps_start = -1; + break; + } + } else if (ch == term_escape_char) { + d->term_got_escape = 1; + } else { + send_char: + return 1; + } + return 0; +} + +static void mux_chr_accept_input(CharDriverState *chr) +{ + int m = chr->focus; + MuxDriver *d = chr->opaque; + + while (d->prod != d->cons && + d->chr_can_read[m] && + d->chr_can_read[m](d->ext_opaque[m])) { + d->chr_read[m](d->ext_opaque[m], + &d->buffer[d->cons++ & MUX_BUFFER_MASK], 1); + } +} + +static int mux_chr_can_read(void *opaque) +{ + CharDriverState *chr = opaque; + MuxDriver *d = chr->opaque; + + if ((d->prod - d->cons) < MUX_BUFFER_SIZE) + return 1; + if (d->chr_can_read[chr->focus]) + return d->chr_can_read[chr->focus](d->ext_opaque[chr->focus]); + return 0; +} + +static void mux_chr_read(void *opaque, const uint8_t *buf, int size) +{ + CharDriverState *chr = opaque; + MuxDriver *d = chr->opaque; + int m = chr->focus; + int i; + + mux_chr_accept_input (opaque); + + for(i = 0; i < size; i++) + if (mux_proc_byte(chr, d, buf[i])) { + if (d->prod == d->cons && + d->chr_can_read[m] && + d->chr_can_read[m](d->ext_opaque[m])) + d->chr_read[m](d->ext_opaque[m], &buf[i], 1); + else + d->buffer[d->prod++ & MUX_BUFFER_MASK] = buf[i]; + } +} + +static void mux_chr_event(void *opaque, int event) +{ + CharDriverState *chr = opaque; + MuxDriver *d = chr->opaque; + int i; + + /* Send the event to all registered listeners */ + for (i = 0; i < d->mux_cnt; i++) + if (d->chr_event[i]) + d->chr_event[i](d->ext_opaque[i], event); +} + +static void mux_chr_update_read_handler(CharDriverState *chr) +{ + MuxDriver *d = chr->opaque; + + if (d->mux_cnt >= MAX_MUX) { + fprintf(stderr, "Cannot add I/O handlers, MUX array is full\n"); + return; + } + d->ext_opaque[d->mux_cnt] = chr->handler_opaque; + d->chr_can_read[d->mux_cnt] = chr->chr_can_read; + d->chr_read[d->mux_cnt] = chr->chr_read; + d->chr_event[d->mux_cnt] = chr->chr_event; + /* Fix up the real driver with mux routines */ + if (d->mux_cnt == 0) { + qemu_chr_add_handlers(d->drv, mux_chr_can_read, mux_chr_read, + mux_chr_event, chr); + } + chr->focus = d->mux_cnt; + d->mux_cnt++; +} + +static CharDriverState *qemu_chr_open_mux(CharDriverState *drv) +{ + CharDriverState *chr; + MuxDriver *d; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + d = qemu_mallocz(sizeof(MuxDriver)); + if (!d) { + free(chr); + return NULL; + } + + chr->opaque = d; + d->drv = drv; + chr->focus = -1; + chr->chr_write = mux_chr_write; + chr->chr_update_read_handler = mux_chr_update_read_handler; + chr->chr_accept_input = mux_chr_accept_input; + return chr; +} + + +#ifdef _WIN32 + +static void socket_cleanup(void) +{ + WSACleanup(); +} + +static int socket_init(void) +{ + WSADATA Data; + int ret, err; + + ret = WSAStartup(MAKEWORD(2,2), &Data); + if (ret != 0) { + err = WSAGetLastError(); + fprintf(stderr, "WSAStartup: %d\n", err); + return -1; + } + atexit(socket_cleanup); + return 0; +} + +static int send_all(int fd, const uint8_t *buf, int len1) +{ + int ret, len; + + len = len1; + while (len > 0) { + ret = send(fd, buf, len, 0); + if (ret < 0) { + int errno; + errno = WSAGetLastError(); + if (errno != WSAEWOULDBLOCK) { + return -1; + } + } else if (ret == 0) { + break; + } else { + buf += ret; + len -= ret; + } + } + return len1 - len; +} + +void socket_set_nonblock(int fd) +{ + unsigned long opt = 1; + ioctlsocket(fd, FIONBIO, &opt); +} + +#else + +static int unix_write(int fd, const uint8_t *buf, int len1) +{ + int ret, len; + + len = len1; + while (len > 0) { + ret = write(fd, buf, len); + if (ret < 0) { + if (errno != EINTR && errno != EAGAIN) + return -1; + } else if (ret == 0) { + break; + } else { + buf += ret; + len -= ret; + } + } + return len1 - len; +} + +static inline int send_all(int fd, const uint8_t *buf, int len1) +{ + return unix_write(fd, buf, len1); +} + +void socket_set_nonblock(int fd) +{ + fcntl(fd, F_SETFL, O_NONBLOCK); +} +#endif /* !_WIN32 */ + +#ifndef _WIN32 + +typedef struct { + int fd_in, fd_out; + int max_size; +} FDCharDriver; + +#define STDIO_MAX_CLIENTS 1 +static int stdio_nb_clients = 0; + +static int fd_chr_write(CharDriverState *chr, const uint8_t *buf, int len) +{ + FDCharDriver *s = chr->opaque; + return unix_write(s->fd_out, buf, len); +} + +static int fd_chr_read_poll(void *opaque) +{ + CharDriverState *chr = opaque; + FDCharDriver *s = chr->opaque; + + s->max_size = qemu_chr_can_read(chr); + return s->max_size; +} + +static void fd_chr_read(void *opaque) +{ + CharDriverState *chr = opaque; + FDCharDriver *s = chr->opaque; + int size, len; + uint8_t buf[1024]; + + len = sizeof(buf); + if (len > s->max_size) + len = s->max_size; + if (len == 0) + return; + size = read(s->fd_in, buf, len); + if (size == 0) { + /* FD has been closed. Remove it from the active list. */ + qemu_set_fd_handler2(s->fd_in, NULL, NULL, NULL, NULL); + return; + } + if (size > 0) { + qemu_chr_read(chr, buf, size); + } +} + +static void fd_chr_update_read_handler(CharDriverState *chr) +{ + FDCharDriver *s = chr->opaque; + + if (s->fd_in >= 0) { + if (nographic && s->fd_in == 0) { + } else { + qemu_set_fd_handler2(s->fd_in, fd_chr_read_poll, + fd_chr_read, NULL, chr); + } + } +} + +/* open a character device to a unix fd */ +static CharDriverState *qemu_chr_open_fd(int fd_in, int fd_out) +{ + CharDriverState *chr; + FDCharDriver *s; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + s = qemu_mallocz(sizeof(FDCharDriver)); + if (!s) { + free(chr); + return NULL; + } + s->fd_in = fd_in; + s->fd_out = fd_out; + chr->opaque = s; + chr->chr_write = fd_chr_write; + chr->chr_update_read_handler = fd_chr_update_read_handler; + + qemu_chr_reset(chr); + + return chr; +} + +static CharDriverState *qemu_chr_open_file_out(const char *file_out) +{ + int fd_out; + + TFR(fd_out = open(file_out, O_WRONLY | O_TRUNC | O_CREAT | O_BINARY, 0666)); + if (fd_out < 0) + return NULL; + return qemu_chr_open_fd(-1, fd_out); +} + +static CharDriverState *qemu_chr_open_pipe(const char *filename) +{ + int fd_in, fd_out; + char filename_in[256], filename_out[256]; + + snprintf(filename_in, 256, "%s.in", filename); + snprintf(filename_out, 256, "%s.out", filename); + TFR(fd_in = open(filename_in, O_RDWR | O_BINARY)); + TFR(fd_out = open(filename_out, O_RDWR | O_BINARY)); + if (fd_in < 0 || fd_out < 0) { + if (fd_in >= 0) + close(fd_in); + if (fd_out >= 0) + close(fd_out); + TFR(fd_in = fd_out = open(filename, O_RDWR | O_BINARY)); + if (fd_in < 0) + return NULL; + } + return qemu_chr_open_fd(fd_in, fd_out); +} + + +/* for STDIO, we handle the case where several clients use it + (nographic mode) */ + +#define TERM_FIFO_MAX_SIZE 1 + +static uint8_t term_fifo[TERM_FIFO_MAX_SIZE]; +static int term_fifo_size; + +static int stdio_read_poll(void *opaque) +{ + CharDriverState *chr = opaque; + + /* try to flush the queue if needed */ + if (term_fifo_size != 0 && qemu_chr_can_read(chr) > 0) { + qemu_chr_read(chr, term_fifo, 1); + term_fifo_size = 0; + } + /* see if we can absorb more chars */ + if (term_fifo_size == 0) + return 1; + else + return 0; +} + +static void stdio_read(void *opaque) +{ + int size; + uint8_t buf[1]; + CharDriverState *chr = opaque; + + size = read(0, buf, 1); + if (size == 0) { + /* stdin has been closed. Remove it from the active list. */ + qemu_set_fd_handler2(0, NULL, NULL, NULL, NULL); + return; + } + if (size > 0) { + if (qemu_chr_can_read(chr) > 0) { + qemu_chr_read(chr, buf, 1); + } else if (term_fifo_size == 0) { + term_fifo[term_fifo_size++] = buf[0]; + } + } +} + +/* init terminal so that we can grab keys */ +static struct termios oldtty; +static int old_fd0_flags; + +static void term_exit(void) +{ + tcsetattr (0, TCSANOW, &oldtty); + fcntl(0, F_SETFL, old_fd0_flags); +} + +static void term_init(void) +{ + struct termios tty; + + tcgetattr (0, &tty); + oldtty = tty; + old_fd0_flags = fcntl(0, F_GETFL); + + tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP + |INLCR|IGNCR|ICRNL|IXON); + tty.c_oflag |= OPOST; + tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN); + /* if graphical mode, we allow Ctrl-C handling */ + if (nographic) + tty.c_lflag &= ~ISIG; + tty.c_cflag &= ~(CSIZE|PARENB); + tty.c_cflag |= CS8; + tty.c_cc[VMIN] = 1; + tty.c_cc[VTIME] = 0; + + tcsetattr (0, TCSANOW, &tty); + + atexit(term_exit); + + fcntl(0, F_SETFL, O_NONBLOCK); +} + +static CharDriverState *qemu_chr_open_stdio(void) +{ + CharDriverState *chr; + + if (stdio_nb_clients >= STDIO_MAX_CLIENTS) + return NULL; + chr = qemu_chr_open_fd(0, 1); + qemu_set_fd_handler2(0, stdio_read_poll, stdio_read, NULL, chr); + stdio_nb_clients++; + term_init(); + + return chr; +} + +#if defined(__linux__) || defined(__sun__) +static CharDriverState *qemu_chr_open_pty(void) +{ + struct termios tty; + char slave_name[1024]; + int master_fd, slave_fd; + +#if defined(__linux__) + /* Not satisfying */ + if (openpty(&master_fd, &slave_fd, slave_name, NULL, NULL) < 0) { + return NULL; + } +#endif + + /* Disabling local echo and line-buffered output */ + tcgetattr (master_fd, &tty); + tty.c_lflag &= ~(ECHO|ICANON|ISIG); + tty.c_cc[VMIN] = 1; + tty.c_cc[VTIME] = 0; + tcsetattr (master_fd, TCSAFLUSH, &tty); + + fprintf(stderr, "char device redirected to %s\n", slave_name); + return qemu_chr_open_fd(master_fd, master_fd); +} + +static void tty_serial_init(int fd, int speed, + int parity, int data_bits, int stop_bits) +{ + struct termios tty; + speed_t spd; + +#if 0 + printf("tty_serial_init: speed=%d parity=%c data=%d stop=%d\n", + speed, parity, data_bits, stop_bits); +#endif + tcgetattr (fd, &tty); + + switch(speed) { + case 50: + spd = B50; + break; + case 75: + spd = B75; + break; + case 300: + spd = B300; + break; + case 600: + spd = B600; + break; + case 1200: + spd = B1200; + break; + case 2400: + spd = B2400; + break; + case 4800: + spd = B4800; + break; + case 9600: + spd = B9600; + break; + case 19200: + spd = B19200; + break; + case 38400: + spd = B38400; + break; + case 57600: + spd = B57600; + break; + default: + case 115200: + spd = B115200; + break; + } + + cfsetispeed(&tty, spd); + cfsetospeed(&tty, spd); + + tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP + |INLCR|IGNCR|ICRNL|IXON); + tty.c_oflag |= OPOST; + tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN|ISIG); + tty.c_cflag &= ~(CSIZE|PARENB|PARODD|CRTSCTS|CSTOPB); + switch(data_bits) { + default: + case 8: + tty.c_cflag |= CS8; + break; + case 7: + tty.c_cflag |= CS7; + break; + case 6: + tty.c_cflag |= CS6; + break; + case 5: + tty.c_cflag |= CS5; + break; + } + switch(parity) { + default: + case 'N': + break; + case 'E': + tty.c_cflag |= PARENB; + break; + case 'O': + tty.c_cflag |= PARENB | PARODD; + break; + } + if (stop_bits == 2) + tty.c_cflag |= CSTOPB; + + tcsetattr (fd, TCSANOW, &tty); +} + +static int tty_serial_ioctl(CharDriverState *chr, int cmd, void *arg) +{ + FDCharDriver *s = chr->opaque; + + switch(cmd) { + case CHR_IOCTL_SERIAL_SET_PARAMS: + { + QEMUSerialSetParams *ssp = arg; + tty_serial_init(s->fd_in, ssp->speed, ssp->parity, + ssp->data_bits, ssp->stop_bits); + } + break; + case CHR_IOCTL_SERIAL_SET_BREAK: + { + int enable = *(int *)arg; + if (enable) + tcsendbreak(s->fd_in, 1); + } + break; + default: + return -ENOTSUP; + } + return 0; +} + +static CharDriverState *qemu_chr_open_tty(const char *filename) +{ + CharDriverState *chr; + int fd; + + TFR(fd = open(filename, O_RDWR | O_NONBLOCK)); + fcntl(fd, F_SETFL, O_NONBLOCK); + tty_serial_init(fd, 115200, 'N', 8, 1); + chr = qemu_chr_open_fd(fd, fd); + if (!chr) { + close(fd); + return NULL; + } + chr->chr_ioctl = tty_serial_ioctl; + qemu_chr_reset(chr); + return chr; +} +#else /* ! __linux__ && ! __sun__ */ +static CharDriverState *qemu_chr_open_pty(void) +{ + return NULL; +} +#endif /* __linux__ || __sun__ */ + +#if defined(__linux__) +typedef struct { + int fd; + int mode; +} ParallelCharDriver; + +static int pp_hw_mode(ParallelCharDriver *s, uint16_t mode) +{ + if (s->mode != mode) { + int m = mode; + if (ioctl(s->fd, PPSETMODE, &m) < 0) + return 0; + s->mode = mode; + } + return 1; +} + +static int pp_ioctl(CharDriverState *chr, int cmd, void *arg) +{ + ParallelCharDriver *drv = chr->opaque; + int fd = drv->fd; + uint8_t b; + + switch(cmd) { + case CHR_IOCTL_PP_READ_DATA: + if (ioctl(fd, PPRDATA, &b) < 0) + return -ENOTSUP; + *(uint8_t *)arg = b; + break; + case CHR_IOCTL_PP_WRITE_DATA: + b = *(uint8_t *)arg; + if (ioctl(fd, PPWDATA, &b) < 0) + return -ENOTSUP; + break; + case CHR_IOCTL_PP_READ_CONTROL: + if (ioctl(fd, PPRCONTROL, &b) < 0) + return -ENOTSUP; + /* Linux gives only the lowest bits, and no way to know data + direction! For better compatibility set the fixed upper + bits. */ + *(uint8_t *)arg = b | 0xc0; + break; + case CHR_IOCTL_PP_WRITE_CONTROL: + b = *(uint8_t *)arg; + if (ioctl(fd, PPWCONTROL, &b) < 0) + return -ENOTSUP; + break; + case CHR_IOCTL_PP_READ_STATUS: + if (ioctl(fd, PPRSTATUS, &b) < 0) + return -ENOTSUP; + *(uint8_t *)arg = b; + break; + case CHR_IOCTL_PP_EPP_READ_ADDR: + if (pp_hw_mode(drv, IEEE1284_MODE_EPP|IEEE1284_ADDR)) { + struct ParallelIOArg *parg = arg; + int n = read(fd, parg->buffer, parg->count); + if (n != parg->count) { + return -EIO; + } + } + break; + case CHR_IOCTL_PP_EPP_READ: + if (pp_hw_mode(drv, IEEE1284_MODE_EPP)) { + struct ParallelIOArg *parg = arg; + int n = read(fd, parg->buffer, parg->count); + if (n != parg->count) { + return -EIO; + } + } + break; + case CHR_IOCTL_PP_EPP_WRITE_ADDR: + if (pp_hw_mode(drv, IEEE1284_MODE_EPP|IEEE1284_ADDR)) { + struct ParallelIOArg *parg = arg; + int n = write(fd, parg->buffer, parg->count); + if (n != parg->count) { + return -EIO; + } + } + break; + case CHR_IOCTL_PP_EPP_WRITE: + if (pp_hw_mode(drv, IEEE1284_MODE_EPP)) { + struct ParallelIOArg *parg = arg; + int n = write(fd, parg->buffer, parg->count); + if (n != parg->count) { + return -EIO; + } + } + break; + default: + return -ENOTSUP; + } + return 0; +} + +static void pp_close(CharDriverState *chr) +{ + ParallelCharDriver *drv = chr->opaque; + int fd = drv->fd; + + pp_hw_mode(drv, IEEE1284_MODE_COMPAT); + ioctl(fd, PPRELEASE); + close(fd); + qemu_free(drv); +} + +static CharDriverState *qemu_chr_open_pp(const char *filename) +{ + CharDriverState *chr; + ParallelCharDriver *drv; + int fd; + + TFR(fd = open(filename, O_RDWR)); + if (fd < 0) + return NULL; + + if (ioctl(fd, PPCLAIM) < 0) { + close(fd); + return NULL; + } + + drv = qemu_mallocz(sizeof(ParallelCharDriver)); + if (!drv) { + close(fd); + return NULL; + } + drv->fd = fd; + drv->mode = IEEE1284_MODE_COMPAT; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) { + qemu_free(drv); + close(fd); + return NULL; + } + chr->chr_write = null_chr_write; + chr->chr_ioctl = pp_ioctl; + chr->chr_close = pp_close; + chr->opaque = drv; + + qemu_chr_reset(chr); + + return chr; +} +#endif /* __linux__ */ + +#else /* _WIN32 */ + +typedef struct { + int max_size; + HANDLE hcom, hrecv, hsend; + OVERLAPPED orecv, osend; + BOOL fpipe; + DWORD len; +} WinCharState; + +#define NSENDBUF 2048 +#define NRECVBUF 2048 +#define MAXCONNECT 1 +#define NTIMEOUT 5000 + +static int win_chr_poll(void *opaque); +static int win_chr_pipe_poll(void *opaque); + +static void win_chr_close(CharDriverState *chr) +{ + WinCharState *s = chr->opaque; + + if (s->hsend) { + CloseHandle(s->hsend); + s->hsend = NULL; + } + if (s->hrecv) { + CloseHandle(s->hrecv); + s->hrecv = NULL; + } + if (s->hcom) { + CloseHandle(s->hcom); + s->hcom = NULL; + } + if (s->fpipe) + qemu_del_polling_cb(win_chr_pipe_poll, chr); + else + qemu_del_polling_cb(win_chr_poll, chr); +} + +static int win_chr_init(CharDriverState *chr, const char *filename) +{ + WinCharState *s = chr->opaque; + COMMCONFIG comcfg; + COMMTIMEOUTS cto = { 0, 0, 0, 0, 0}; + COMSTAT comstat; + DWORD size; + DWORD err; + + s->hsend = CreateEvent(NULL, TRUE, FALSE, NULL); + if (!s->hsend) { + fprintf(stderr, "Failed CreateEvent\n"); + goto fail; + } + s->hrecv = CreateEvent(NULL, TRUE, FALSE, NULL); + if (!s->hrecv) { + fprintf(stderr, "Failed CreateEvent\n"); + goto fail; + } + + s->hcom = CreateFile(filename, GENERIC_READ|GENERIC_WRITE, 0, NULL, + OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); + if (s->hcom == INVALID_HANDLE_VALUE) { + fprintf(stderr, "Failed CreateFile (%lu)\n", GetLastError()); + s->hcom = NULL; + goto fail; + } + + if (!SetupComm(s->hcom, NRECVBUF, NSENDBUF)) { + fprintf(stderr, "Failed SetupComm\n"); + goto fail; + } + + ZeroMemory(&comcfg, sizeof(COMMCONFIG)); + size = sizeof(COMMCONFIG); + GetDefaultCommConfig(filename, &comcfg, &size); + comcfg.dcb.DCBlength = sizeof(DCB); + CommConfigDialog(filename, NULL, &comcfg); + + if (!SetCommState(s->hcom, &comcfg.dcb)) { + fprintf(stderr, "Failed SetCommState\n"); + goto fail; + } + + if (!SetCommMask(s->hcom, EV_ERR)) { + fprintf(stderr, "Failed SetCommMask\n"); + goto fail; + } + + cto.ReadIntervalTimeout = MAXDWORD; + if (!SetCommTimeouts(s->hcom, &cto)) { + fprintf(stderr, "Failed SetCommTimeouts\n"); + goto fail; + } + + if (!ClearCommError(s->hcom, &err, &comstat)) { + fprintf(stderr, "Failed ClearCommError\n"); + goto fail; + } + qemu_add_polling_cb(win_chr_poll, chr); + return 0; + + fail: + win_chr_close(chr); + return -1; +} + +static int win_chr_write(CharDriverState *chr, const uint8_t *buf, int len1) +{ + WinCharState *s = chr->opaque; + DWORD len, ret, size, err; + + len = len1; + ZeroMemory(&s->osend, sizeof(s->osend)); + s->osend.hEvent = s->hsend; + while (len > 0) { + if (s->hsend) + ret = WriteFile(s->hcom, buf, len, &size, &s->osend); + else + ret = WriteFile(s->hcom, buf, len, &size, NULL); + if (!ret) { + err = GetLastError(); + if (err == ERROR_IO_PENDING) { + ret = GetOverlappedResult(s->hcom, &s->osend, &size, TRUE); + if (ret) { + buf += size; + len -= size; + } else { + break; + } + } else { + break; + } + } else { + buf += size; + len -= size; + } + } + return len1 - len; +} + +static int win_chr_read_poll(CharDriverState *chr) +{ + WinCharState *s = chr->opaque; + + s->max_size = qemu_chr_can_read(chr); + return s->max_size; +} + +static void win_chr_readfile(CharDriverState *chr) +{ + WinCharState *s = chr->opaque; + int ret, err; + uint8_t buf[1024]; + DWORD size; + + ZeroMemory(&s->orecv, sizeof(s->orecv)); + s->orecv.hEvent = s->hrecv; + ret = ReadFile(s->hcom, buf, s->len, &size, &s->orecv); + if (!ret) { + err = GetLastError(); + if (err == ERROR_IO_PENDING) { + ret = GetOverlappedResult(s->hcom, &s->orecv, &size, TRUE); + } + } + + if (size > 0) { + qemu_chr_read(chr, buf, size); + } +} + +static void win_chr_read(CharDriverState *chr) +{ + WinCharState *s = chr->opaque; + + if (s->len > s->max_size) + s->len = s->max_size; + if (s->len == 0) + return; + + win_chr_readfile(chr); +} + +static int win_chr_poll(void *opaque) +{ + CharDriverState *chr = opaque; + WinCharState *s = chr->opaque; + COMSTAT status; + DWORD comerr; + + ClearCommError(s->hcom, &comerr, &status); + if (status.cbInQue > 0) { + s->len = status.cbInQue; + win_chr_read_poll(chr); + win_chr_read(chr); + return 1; + } + return 0; +} + +static CharDriverState *qemu_chr_open_win(const char *filename) +{ + CharDriverState *chr; + WinCharState *s; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + s = qemu_mallocz(sizeof(WinCharState)); + if (!s) { + free(chr); + return NULL; + } + chr->opaque = s; + chr->chr_write = win_chr_write; + chr->chr_close = win_chr_close; + + if (win_chr_init(chr, filename) < 0) { + free(s); + free(chr); + return NULL; + } + qemu_chr_reset(chr); + return chr; +} + +static int win_chr_pipe_poll(void *opaque) +{ + CharDriverState *chr = opaque; + WinCharState *s = chr->opaque; + DWORD size; + + PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL); + if (size > 0) { + s->len = size; + win_chr_read_poll(chr); + win_chr_read(chr); + return 1; + } + return 0; +} + +static int win_chr_pipe_init(CharDriverState *chr, const char *filename) +{ + WinCharState *s = chr->opaque; + OVERLAPPED ov; + int ret; + DWORD size; + char openname[256]; + + s->fpipe = TRUE; + + s->hsend = CreateEvent(NULL, TRUE, FALSE, NULL); + if (!s->hsend) { + fprintf(stderr, "Failed CreateEvent\n"); + goto fail; + } + s->hrecv = CreateEvent(NULL, TRUE, FALSE, NULL); + if (!s->hrecv) { + fprintf(stderr, "Failed CreateEvent\n"); + goto fail; + } + + snprintf(openname, sizeof(openname), "\\\\.\\pipe\\%s", filename); + s->hcom = CreateNamedPipe(openname, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, + PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | + PIPE_WAIT, + MAXCONNECT, NSENDBUF, NRECVBUF, NTIMEOUT, NULL); + if (s->hcom == INVALID_HANDLE_VALUE) { + fprintf(stderr, "Failed CreateNamedPipe (%lu)\n", GetLastError()); + s->hcom = NULL; + goto fail; + } + + ZeroMemory(&ov, sizeof(ov)); + ov.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); + ret = ConnectNamedPipe(s->hcom, &ov); + if (ret) { + fprintf(stderr, "Failed ConnectNamedPipe\n"); + goto fail; + } + + ret = GetOverlappedResult(s->hcom, &ov, &size, TRUE); + if (!ret) { + fprintf(stderr, "Failed GetOverlappedResult\n"); + if (ov.hEvent) { + CloseHandle(ov.hEvent); + ov.hEvent = NULL; + } + goto fail; + } + + if (ov.hEvent) { + CloseHandle(ov.hEvent); + ov.hEvent = NULL; + } + qemu_add_polling_cb(win_chr_pipe_poll, chr); + return 0; + + fail: + win_chr_close(chr); + return -1; +} + + +static CharDriverState *qemu_chr_open_win_pipe(const char *filename) +{ + CharDriverState *chr; + WinCharState *s; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + s = qemu_mallocz(sizeof(WinCharState)); + if (!s) { + free(chr); + return NULL; + } + chr->opaque = s; + chr->chr_write = win_chr_write; + chr->chr_close = win_chr_close; + + if (win_chr_pipe_init(chr, filename) < 0) { + free(s); + free(chr); + return NULL; + } + qemu_chr_reset(chr); + return chr; +} + +static CharDriverState *qemu_chr_open_win_file(HANDLE fd_out) +{ + CharDriverState *chr; + WinCharState *s; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + s = qemu_mallocz(sizeof(WinCharState)); + if (!s) { + free(chr); + return NULL; + } + s->hcom = fd_out; + chr->opaque = s; + chr->chr_write = win_chr_write; + qemu_chr_reset(chr); + return chr; +} + +static CharDriverState *qemu_chr_open_win_con(const char *filename) +{ + return qemu_chr_open_win_file(GetStdHandle(STD_OUTPUT_HANDLE)); +} + +static CharDriverState *qemu_chr_open_win_file_out(const char *file_out) +{ + HANDLE fd_out; + + fd_out = CreateFile(file_out, GENERIC_WRITE, FILE_SHARE_READ, NULL, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + if (fd_out == INVALID_HANDLE_VALUE) + return NULL; + + return qemu_chr_open_win_file(fd_out); +} +#endif /* !_WIN32 */ + +/***********************************************************/ +/* UDP Net console */ + +typedef struct { + int fd; + struct sockaddr_in daddr; + uint8_t buf[1024]; + int bufcnt; + int bufptr; + int max_size; +} NetCharDriver; + +static int udp_chr_write(CharDriverState *chr, const uint8_t *buf, int len) +{ + NetCharDriver *s = chr->opaque; + + return sendto(s->fd, buf, len, 0, + (struct sockaddr *)&s->daddr, sizeof(struct sockaddr_in)); +} + +static int udp_chr_read_poll(void *opaque) +{ + CharDriverState *chr = opaque; + NetCharDriver *s = chr->opaque; + + s->max_size = qemu_chr_can_read(chr); + + /* If there were any stray characters in the queue process them + * first + */ + while (s->max_size > 0 && s->bufptr < s->bufcnt) { + qemu_chr_read(chr, &s->buf[s->bufptr], 1); + s->bufptr++; + s->max_size = qemu_chr_can_read(chr); + } + return s->max_size; +} + +static void udp_chr_read(void *opaque) +{ + CharDriverState *chr = opaque; + NetCharDriver *s = chr->opaque; + + if (s->max_size == 0) + return; + s->bufcnt = recv(s->fd, s->buf, sizeof(s->buf), 0); + s->bufptr = s->bufcnt; + if (s->bufcnt <= 0) + return; + + s->bufptr = 0; + while (s->max_size > 0 && s->bufptr < s->bufcnt) { + qemu_chr_read(chr, &s->buf[s->bufptr], 1); + s->bufptr++; + s->max_size = qemu_chr_can_read(chr); + } +} + +static void udp_chr_update_read_handler(CharDriverState *chr) +{ + NetCharDriver *s = chr->opaque; + + if (s->fd >= 0) { + qemu_set_fd_handler2(s->fd, udp_chr_read_poll, + udp_chr_read, NULL, chr); + } +} + +int parse_host_port(struct sockaddr_in *saddr, const char *str); +#ifndef _WIN32 +static int parse_unix_path(struct sockaddr_un *uaddr, const char *str); +#endif +int parse_host_src_port(struct sockaddr_in *haddr, + struct sockaddr_in *saddr, + const char *str); + +static CharDriverState *qemu_chr_open_udp(const char *def) +{ + CharDriverState *chr = NULL; + NetCharDriver *s = NULL; + int fd = -1; + struct sockaddr_in saddr; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + goto return_err; + s = qemu_mallocz(sizeof(NetCharDriver)); + if (!s) + goto return_err; + + fd = socket(PF_INET, SOCK_DGRAM, 0); + if (fd < 0) { + perror("socket(PF_INET, SOCK_DGRAM)"); + goto return_err; + } + + if (parse_host_src_port(&s->daddr, &saddr, def) < 0) { + printf("Could not parse: %s\n", def); + goto return_err; + } + + if (bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) + { + perror("bind"); + goto return_err; + } + + s->fd = fd; + s->bufcnt = 0; + s->bufptr = 0; + chr->opaque = s; + chr->chr_write = udp_chr_write; + chr->chr_update_read_handler = udp_chr_update_read_handler; + return chr; + +return_err: + if (chr) + free(chr); + if (s) + free(s); + if (fd >= 0) + closesocket(fd); + return NULL; +} + +/***********************************************************/ +/* TCP Net console */ + +typedef struct { + int fd, listen_fd; + int connected; + int max_size; + int do_telnetopt; + int do_nodelay; + int is_unix; +} TCPCharDriver; + +static void tcp_chr_accept(void *opaque); + +static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len) +{ + TCPCharDriver *s = chr->opaque; + if (s->connected) { + return send_all(s->fd, buf, len); + } else { + /* XXX: indicate an error ? */ + return len; + } +} + +static int tcp_chr_read_poll(void *opaque) +{ + CharDriverState *chr = opaque; + TCPCharDriver *s = chr->opaque; + if (!s->connected) + return 0; + s->max_size = qemu_chr_can_read(chr); + return s->max_size; +} + +#define IAC 255 +#define IAC_BREAK 243 +static void tcp_chr_process_IAC_bytes(CharDriverState *chr, + TCPCharDriver *s, + uint8_t *buf, int *size) +{ + /* Handle any telnet client's basic IAC options to satisfy char by + * char mode with no echo. All IAC options will be removed from + * the buf and the do_telnetopt variable will be used to track the + * state of the width of the IAC information. + * + * IAC commands come in sets of 3 bytes with the exception of the + * "IAC BREAK" command and the double IAC. + */ + + int i; + int j = 0; + + for (i = 0; i < *size; i++) { + if (s->do_telnetopt > 1) { + if ((unsigned char)buf[i] == IAC && s->do_telnetopt == 2) { + /* Double IAC means send an IAC */ + if (j != i) + buf[j] = buf[i]; + j++; + s->do_telnetopt = 1; + } else { + if ((unsigned char)buf[i] == IAC_BREAK && s->do_telnetopt == 2) { + /* Handle IAC break commands by sending a serial break */ + qemu_chr_event(chr, CHR_EVENT_BREAK); + s->do_telnetopt++; + } + s->do_telnetopt++; + } + if (s->do_telnetopt >= 4) { + s->do_telnetopt = 1; + } + } else { + if ((unsigned char)buf[i] == IAC) { + s->do_telnetopt = 2; + } else { + if (j != i) + buf[j] = buf[i]; + j++; + } + } + } + *size = j; +} + +static void tcp_chr_read(void *opaque) +{ + CharDriverState *chr = opaque; + TCPCharDriver *s = chr->opaque; + uint8_t buf[1024]; + int len, size; + + if (!s->connected || s->max_size <= 0) + return; + len = sizeof(buf); + if (len > s->max_size) + len = s->max_size; + size = recv(s->fd, buf, len, 0); + if (size == 0) { + /* connection closed */ + s->connected = 0; + if (s->listen_fd >= 0) { + qemu_set_fd_handler(s->listen_fd, tcp_chr_accept, NULL, chr); + } + qemu_set_fd_handler(s->fd, NULL, NULL, NULL); + closesocket(s->fd); + s->fd = -1; + } else if (size > 0) { + if (s->do_telnetopt) + tcp_chr_process_IAC_bytes(chr, s, buf, &size); + if (size > 0) + qemu_chr_read(chr, buf, size); + } +} + +static void tcp_chr_connect(void *opaque) +{ + CharDriverState *chr = opaque; + TCPCharDriver *s = chr->opaque; + + s->connected = 1; + qemu_set_fd_handler2(s->fd, tcp_chr_read_poll, + tcp_chr_read, NULL, chr); + qemu_chr_reset(chr); +} + +#define IACSET(x,a,b,c) x[0] = a; x[1] = b; x[2] = c; +static void tcp_chr_telnet_init(int fd) +{ + char buf[3]; + /* Send the telnet negotion to put telnet in binary, no echo, single char mode */ + IACSET(buf, 0xff, 0xfb, 0x01); /* IAC WILL ECHO */ + send(fd, (char *)buf, 3, 0); + IACSET(buf, 0xff, 0xfb, 0x03); /* IAC WILL Suppress go ahead */ + send(fd, (char *)buf, 3, 0); + IACSET(buf, 0xff, 0xfb, 0x00); /* IAC WILL Binary */ + send(fd, (char *)buf, 3, 0); + IACSET(buf, 0xff, 0xfd, 0x00); /* IAC DO Binary */ + send(fd, (char *)buf, 3, 0); +} + +static void socket_set_nodelay(int fd) +{ + int val = 1; + setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val)); +} + +static void tcp_chr_accept(void *opaque) +{ + CharDriverState *chr = opaque; + TCPCharDriver *s = chr->opaque; + struct sockaddr_in saddr; +#ifndef _WIN32 + struct sockaddr_un uaddr; +#endif + struct sockaddr *addr; + socklen_t len; + int fd; + + for(;;) { +#ifndef _WIN32 + if (s->is_unix) { + len = sizeof(uaddr); + addr = (struct sockaddr *)&uaddr; + } else +#endif + { + len = sizeof(saddr); + addr = (struct sockaddr *)&saddr; + } + fd = accept(s->listen_fd, addr, &len); + if (fd < 0 && errno != EINTR) { + return; + } else if (fd >= 0) { + if (s->do_telnetopt) + tcp_chr_telnet_init(fd); + break; + } + } + socket_set_nonblock(fd); + if (s->do_nodelay) + socket_set_nodelay(fd); + s->fd = fd; + qemu_set_fd_handler(s->listen_fd, NULL, NULL, NULL); + tcp_chr_connect(chr); +} + +static void tcp_chr_close(CharDriverState *chr) +{ + TCPCharDriver *s = chr->opaque; + if (s->fd >= 0) + closesocket(s->fd); + if (s->listen_fd >= 0) + closesocket(s->listen_fd); + qemu_free(s); +} + +static CharDriverState *qemu_chr_open_tcp(const char *host_str, + int is_telnet, + int is_unix) +{ + CharDriverState *chr = NULL; + TCPCharDriver *s = NULL; + int fd = -1, ret, err, val; + int is_listen = 0; + int is_waitconnect = 1; + int do_nodelay = 0; + const char *ptr; + struct sockaddr_in saddr; +#ifndef _WIN32 + struct sockaddr_un uaddr; +#endif + struct sockaddr *addr; + socklen_t addrlen; + +#ifndef _WIN32 + if (is_unix) { + addr = (struct sockaddr *)&uaddr; + addrlen = sizeof(uaddr); + if (parse_unix_path(&uaddr, host_str) < 0) + goto fail; + } else +#endif + { + addr = (struct sockaddr *)&saddr; + addrlen = sizeof(saddr); + if (parse_host_port(&saddr, host_str) < 0) + goto fail; + } + + ptr = host_str; + while((ptr = strchr(ptr,','))) { + ptr++; + if (!strncmp(ptr,"server",6)) { + is_listen = 1; + } else if (!strncmp(ptr,"nowait",6)) { + is_waitconnect = 0; + } else if (!strncmp(ptr,"nodelay",6)) { + do_nodelay = 1; + } else { + printf("Unknown option: %s\n", ptr); + goto fail; + } + } + if (!is_listen) + is_waitconnect = 0; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + goto fail; + s = qemu_mallocz(sizeof(TCPCharDriver)); + if (!s) + goto fail; + +#ifndef _WIN32 + if (is_unix) + fd = socket(PF_UNIX, SOCK_STREAM, 0); + else +#endif + fd = socket(PF_INET, SOCK_STREAM, 0); + + if (fd < 0) + goto fail; + + if (!is_waitconnect) + socket_set_nonblock(fd); + + s->connected = 0; + s->fd = -1; + s->listen_fd = -1; + s->is_unix = is_unix; + s->do_nodelay = do_nodelay && !is_unix; + + chr->opaque = s; + chr->chr_write = tcp_chr_write; + chr->chr_close = tcp_chr_close; + + if (is_listen) { + /* allow fast reuse */ +#ifndef _WIN32 + if (is_unix) { + char path[109]; + strncpy(path, uaddr.sun_path, 108); + path[108] = 0; + unlink(path); + } else +#endif + { + val = 1; + setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char *)&val, sizeof(val)); + } + + ret = bind(fd, addr, addrlen); + if (ret < 0) + goto fail; + + ret = listen(fd, 0); + if (ret < 0) + goto fail; + + s->listen_fd = fd; + qemu_set_fd_handler(s->listen_fd, tcp_chr_accept, NULL, chr); + if (is_telnet) + s->do_telnetopt = 1; + } else { + for(;;) { + ret = connect(fd, addr, addrlen); + if (ret < 0) { + err = socket_error(); + if (err == EINTR || err == EWOULDBLOCK) { + } else if (err == EINPROGRESS) { + break; +#ifdef _WIN32 + } else if (err == WSAEALREADY) { + break; +#endif + } else { + goto fail; + } + } else { + s->connected = 1; + break; + } + } + s->fd = fd; + socket_set_nodelay(fd); + if (s->connected) + tcp_chr_connect(chr); + else + qemu_set_fd_handler(s->fd, NULL, tcp_chr_connect, chr); + } + + if (is_listen && is_waitconnect) { + printf("QEMU waiting for connection on: %s\n", host_str); + tcp_chr_accept(chr); + socket_set_nonblock(s->listen_fd); + } + + return chr; + fail: + if (fd >= 0) + closesocket(fd); + qemu_free(s); + qemu_free(chr); + return NULL; +} + +CharDriverState *qemu_chr_open(const char *filename) +{ + const char *p; + + if (!strcmp(filename, "vc")) { + return text_console_init(&display_state, 0); + } else if (strstart(filename, "vc:", &p)) { + return text_console_init(&display_state, p); + } else if (!strcmp(filename, "null")) { + return qemu_chr_open_null(); + } else + if (strstart(filename, "tcp:", &p)) { + return qemu_chr_open_tcp(p, 0, 0); + } else + if (strstart(filename, "telnet:", &p)) { + return qemu_chr_open_tcp(p, 1, 0); + } else + if (strstart(filename, "udp:", &p)) { + return qemu_chr_open_udp(p); + } else + if (strstart(filename, "mon:", &p)) { + CharDriverState *drv = qemu_chr_open(p); + if (drv) { + drv = qemu_chr_open_mux(drv); + monitor_init(drv, !nographic); + return drv; + } + printf("Unable to open driver: %s\n", p); + return 0; + } else +#ifndef _WIN32 + if (strstart(filename, "unix:", &p)) { + return qemu_chr_open_tcp(p, 0, 1); + } else if (strstart(filename, "file:", &p)) { + return qemu_chr_open_file_out(p); + } else if (strstart(filename, "pipe:", &p)) { + return qemu_chr_open_pipe(p); + } else if (!strcmp(filename, "pty")) { + return qemu_chr_open_pty(); + } else if (!strcmp(filename, "stdio")) { + return qemu_chr_open_stdio(); + } else +#if defined(__linux__) + if (strstart(filename, "/dev/parport", NULL)) { + return qemu_chr_open_pp(filename); + } else +#endif +#if defined(__linux__) || defined(__sun__) + if (strstart(filename, "/dev/", NULL)) { + return qemu_chr_open_tty(filename); + } else +#endif +#else /* !_WIN32 */ + if (strstart(filename, "COM", NULL)) { + return qemu_chr_open_win(filename); + } else + if (strstart(filename, "pipe:", &p)) { + return qemu_chr_open_win_pipe(p); + } else + if (strstart(filename, "con:", NULL)) { + return qemu_chr_open_win_con(filename); + } else + if (strstart(filename, "file:", &p)) { + return qemu_chr_open_win_file_out(p); + } +#endif + { + return NULL; + } +} + +void qemu_chr_close(CharDriverState *chr) +{ + if (chr->chr_close) + chr->chr_close(chr); +} + +/***********************************************************/ +/* network device redirectors */ + +__attribute__ (( unused )) +static void hex_dump(FILE *f, const uint8_t *buf, int size) +{ + int len, i, j, c; + + for(i=0;i 16) + len = 16; + fprintf(f, "%08x ", i); + for(j=0;j<16;j++) { + if (j < len) + fprintf(f, " %02x", buf[i+j]); + else + fprintf(f, " "); + } + fprintf(f, " "); + for(j=0;j '~') + c = '.'; + fprintf(f, "%c", c); + } + fprintf(f, "\n"); + } +} + +static int parse_macaddr(uint8_t *macaddr, const char *p) +{ + int i; + char *last_char; + long int offset; + + errno = 0; + offset = strtol(p, &last_char, 0); + if (0 == errno && '\0' == *last_char && + offset >= 0 && offset <= 0xFFFFFF) { + macaddr[3] = (offset & 0xFF0000) >> 16; + macaddr[4] = (offset & 0xFF00) >> 8; + macaddr[5] = offset & 0xFF; + return 0; + } else { + for(i = 0; i < 6; i++) { + macaddr[i] = strtol(p, (char **)&p, 16); + if (i == 5) { + if (*p != '\0') + return -1; + } else { + if (*p != ':' && *p != '-') + return -1; + p++; + } + } + return 0; + } + + return -1; +} + +static int get_str_sep(char *buf, int buf_size, const char **pp, int sep) +{ + const char *p, *p1; + int len; + p = *pp; + p1 = strchr(p, sep); + if (!p1) + return -1; + len = p1 - p; + p1++; + if (buf_size > 0) { + if (len > buf_size - 1) + len = buf_size - 1; + memcpy(buf, p, len); + buf[len] = '\0'; + } + *pp = p1; + return 0; +} + +int parse_host_src_port(struct sockaddr_in *haddr, + struct sockaddr_in *saddr, + const char *input_str) +{ + char *str = strdup(input_str); + char *host_str = str; + char *src_str; + char *ptr; + + /* + * Chop off any extra arguments at the end of the string which + * would start with a comma, then fill in the src port information + * if it was provided else use the "any address" and "any port". + */ + if ((ptr = strchr(str,','))) + *ptr = '\0'; + + if ((src_str = strchr(input_str,'@'))) { + *src_str = '\0'; + src_str++; + } + + if (parse_host_port(haddr, host_str) < 0) + goto fail; + + if (!src_str || *src_str == '\0') + src_str = ":0"; + + if (parse_host_port(saddr, src_str) < 0) + goto fail; + + free(str); + return(0); + +fail: + free(str); + return -1; +} + +int parse_host_port(struct sockaddr_in *saddr, const char *str) +{ + char buf[512]; + struct hostent *he; + const char *p, *r; + int port; + + p = str; + if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) + return -1; + saddr->sin_family = AF_INET; + if (buf[0] == '\0') { + saddr->sin_addr.s_addr = 0; + } else { + if (isdigit(buf[0])) { + if (!inet_aton(buf, &saddr->sin_addr)) + return -1; + } else { + if ((he = gethostbyname(buf)) == NULL) + return - 1; + saddr->sin_addr = *(struct in_addr *)he->h_addr; + } + } + port = strtol(p, (char **)&r, 0); + if (r == p) + return -1; + saddr->sin_port = htons(port); + return 0; +} + +#ifndef _WIN32 +static int parse_unix_path(struct sockaddr_un *uaddr, const char *str) +{ + const char *p; + int len; + + len = MIN(108, strlen(str)); + p = strchr(str, ','); + if (p) + len = MIN(len, p - str); + + memset(uaddr, 0, sizeof(*uaddr)); + + uaddr->sun_family = AF_UNIX; + memcpy(uaddr->sun_path, str, len); + + return 0; +} +#endif + +/* find or alloc a new VLAN */ +VLANState *qemu_find_vlan(int id) +{ + VLANState **pvlan, *vlan; + for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { + if (vlan->id == id) + return vlan; + } + vlan = qemu_mallocz(sizeof(VLANState)); + if (!vlan) + return NULL; + vlan->id = id; + vlan->next = NULL; + pvlan = &first_vlan; + while (*pvlan != NULL) + pvlan = &(*pvlan)->next; + *pvlan = vlan; + return vlan; +} + +VLANClientState *qemu_new_vlan_client(VLANState *vlan, + IOReadHandler *fd_read, + IOCanRWHandler *fd_can_read, + void *opaque) +{ + VLANClientState *vc, **pvc; + vc = qemu_mallocz(sizeof(VLANClientState)); + if (!vc) + return NULL; + vc->fd_read = fd_read; + vc->fd_can_read = fd_can_read; + vc->opaque = opaque; + vc->vlan = vlan; + + vc->next = NULL; + pvc = &vlan->first_client; + while (*pvc != NULL) + pvc = &(*pvc)->next; + *pvc = vc; + return vc; +} + +int qemu_can_send_packet(VLANClientState *vc1) +{ + VLANState *vlan = vc1->vlan; + VLANClientState *vc; + + for(vc = vlan->first_client; vc != NULL; vc = vc->next) { + if (vc != vc1) { + if (vc->fd_can_read && vc->fd_can_read(vc->opaque)) + return 1; + } + } + return 0; +} + +void qemu_send_packet(VLANClientState *vc1, const uint8_t *buf, int size) +{ + VLANState *vlan = vc1->vlan; + VLANClientState *vc; + +#if 0 + printf("vlan %d send:\n", vlan->id); + hex_dump(stdout, buf, size); +#endif + for(vc = vlan->first_client; vc != NULL; vc = vc->next) { + if (vc != vc1) { + vc->fd_read(vc->opaque, buf, size); + } + } +} + +#if defined(CONFIG_SLIRP) + +/* slirp network adapter */ + +static int slirp_inited; +static VLANClientState *slirp_vc; + +int slirp_can_output(void) +{ + return !slirp_vc || qemu_can_send_packet(slirp_vc); +} + +void slirp_output(const uint8_t *pkt, int pkt_len) +{ +#if 0 + printf("slirp output:\n"); + hex_dump(stdout, pkt, pkt_len); +#endif + if (!slirp_vc) + return; + qemu_send_packet(slirp_vc, pkt, pkt_len); +} + +static void slirp_receive(void *opaque, const uint8_t *buf, int size) +{ +#if 0 + printf("slirp input:\n"); + hex_dump(stdout, buf, size); +#endif + slirp_input(buf, size); +} + +static int net_slirp_init(VLANState *vlan) +{ + if (!slirp_inited) { + slirp_inited = 1; + slirp_init(); + } + slirp_vc = qemu_new_vlan_client(vlan, + slirp_receive, NULL, NULL); + snprintf(slirp_vc->info_str, sizeof(slirp_vc->info_str), "user redirector"); + return 0; +} + +static void net_slirp_redir(const char *redir_str) +{ + int is_udp; + char buf[256], *r; + const char *p; + struct in_addr guest_addr; + int host_port, guest_port; + + if (!slirp_inited) { + slirp_inited = 1; + slirp_init(); + } + + p = redir_str; + if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) + goto fail; + if (!strcmp(buf, "tcp")) { + is_udp = 0; + } else if (!strcmp(buf, "udp")) { + is_udp = 1; + } else { + goto fail; + } + + if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) + goto fail; + host_port = strtol(buf, &r, 0); + if (r == buf) + goto fail; + + if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) + goto fail; + if (buf[0] == '\0') { + pstrcpy(buf, sizeof(buf), "10.0.2.15"); + } + if (!inet_aton(buf, &guest_addr)) + goto fail; + + guest_port = strtol(p, &r, 0); + if (r == p) + goto fail; + + if (slirp_redir(is_udp, host_port, guest_addr, guest_port) < 0) { + fprintf(stderr, "qemu: could not set up redirection\n"); + exit(1); + } + return; + fail: + fprintf(stderr, "qemu: syntax: -redir [tcp|udp]:host-port:[guest-host]:guest-port\n"); + exit(1); +} + +#ifndef _WIN32 + +char smb_dir[1024]; + +static void smb_exit(void) +{ + DIR *d; + struct dirent *de; + char filename[1024]; + + /* erase all the files in the directory */ + d = opendir(smb_dir); + for(;;) { + de = readdir(d); + if (!de) + break; + if (strcmp(de->d_name, ".") != 0 && + strcmp(de->d_name, "..") != 0) { + snprintf(filename, sizeof(filename), "%s/%s", + smb_dir, de->d_name); + unlink(filename); + } + } + closedir(d); + rmdir(smb_dir); +} + +/* automatic user mode samba server configuration */ +static void net_slirp_smb(const char *exported_dir) +{ + char smb_conf[1024]; + char smb_cmdline[1024]; + FILE *f; + + if (!slirp_inited) { + slirp_inited = 1; + slirp_init(); + } + + /* XXX: better tmp dir construction */ + snprintf(smb_dir, sizeof(smb_dir), "/tmp/qemu-smb.%d", getpid()); + if (mkdir(smb_dir, 0700) < 0) { + fprintf(stderr, "qemu: could not create samba server dir '%s'\n", smb_dir); + exit(1); + } + snprintf(smb_conf, sizeof(smb_conf), "%s/%s", smb_dir, "smb.conf"); + + f = fopen(smb_conf, "w"); + if (!f) { + fprintf(stderr, "qemu: could not create samba server configuration file '%s'\n", smb_conf); + exit(1); + } + fprintf(f, + "[global]\n" + "private dir=%s\n" + "smb ports=0\n" + "socket address=127.0.0.1\n" + "pid directory=%s\n" + "lock directory=%s\n" + "log file=%s/log.smbd\n" + "smb passwd file=%s/smbpasswd\n" + "security = share\n" + "[qemu]\n" + "path=%s\n" + "read only=no\n" + "guest ok=yes\n", + smb_dir, + smb_dir, + smb_dir, + smb_dir, + smb_dir, + exported_dir + ); + fclose(f); + atexit(smb_exit); + + snprintf(smb_cmdline, sizeof(smb_cmdline), "%s -s %s", + SMBD_COMMAND, smb_conf); + + slirp_add_exec(0, smb_cmdline, 4, 139); +} + +#endif /* !defined(_WIN32) */ +void do_info_slirp(void) +{ + slirp_stats(); +} + +#endif /* CONFIG_SLIRP */ + +#if !defined(_WIN32) + +typedef struct TAPState { + VLANClientState *vc; + int fd; + char down_script[1024]; +} TAPState; + +static void tap_receive(void *opaque, const uint8_t *buf, int size) +{ + TAPState *s = opaque; + int ret; + for(;;) { + ret = write(s->fd, buf, size); + if (ret < 0 && (errno == EINTR || errno == EAGAIN)) { + } else { + break; + } + } +} + +static void tap_send(void *opaque) +{ + TAPState *s = opaque; + uint8_t buf[4096]; + int size; + +#ifdef __sun__ + struct strbuf sbuf; + int f = 0; + sbuf.maxlen = sizeof(buf); + sbuf.buf = buf; + size = getmsg(s->fd, NULL, &sbuf, &f) >=0 ? sbuf.len : -1; +#else + size = read(s->fd, buf, sizeof(buf)); +#endif + if (size > 0) { + qemu_send_packet(s->vc, buf, size); + } +} + +/* fd support */ + +static TAPState *net_tap_fd_init(VLANState *vlan, int fd) +{ + TAPState *s; + + s = qemu_mallocz(sizeof(TAPState)); + if (!s) + return NULL; + s->fd = fd; + s->vc = qemu_new_vlan_client(vlan, tap_receive, NULL, s); + qemu_set_fd_handler(s->fd, tap_send, NULL, s); + snprintf(s->vc->info_str, sizeof(s->vc->info_str), "tap: fd=%d", fd); + return s; +} + +#if defined (_BSD) || defined (__FreeBSD_kernel__) +static int tap_open(char *ifname, int ifname_size) +{ + int fd; + char *dev; + struct stat s; + + TFR(fd = open("/dev/tap", O_RDWR)); + if (fd < 0) { + fprintf(stderr, "warning: could not open /dev/tap: no virtual network emulation\n"); + return -1; + } + + fstat(fd, &s); + dev = devname(s.st_rdev, S_IFCHR); + pstrcpy(ifname, ifname_size, dev); + + fcntl(fd, F_SETFL, O_NONBLOCK); + return fd; +} +#elif defined(__sun__) +#define TUNNEWPPA (('T'<<16) | 0x0001) +/* + * Allocate TAP device, returns opened fd. + * Stores dev name in the first arg(must be large enough). + */ +int tap_alloc(char *dev) +{ + int tap_fd, if_fd, ppa = -1; + static int ip_fd = 0; + char *ptr; + + static int arp_fd = 0; + int ip_muxid, arp_muxid; + struct strioctl strioc_if, strioc_ppa; + int link_type = I_PLINK;; + struct lifreq ifr; + char actual_name[32] = ""; + + memset(&ifr, 0x0, sizeof(ifr)); + + if( *dev ){ + ptr = dev; + while( *ptr && !isdigit((int)*ptr) ) ptr++; + ppa = atoi(ptr); + } + + /* Check if IP device was opened */ + if( ip_fd ) + close(ip_fd); + + TFR(ip_fd = open("/dev/udp", O_RDWR, 0)); + if (ip_fd < 0) { + syslog(LOG_ERR, "Can't open /dev/ip (actually /dev/udp)"); + return -1; + } + + TFR(tap_fd = open("/dev/tap", O_RDWR, 0)); + if (tap_fd < 0) { + syslog(LOG_ERR, "Can't open /dev/tap"); + return -1; + } + + /* Assign a new PPA and get its unit number. */ + strioc_ppa.ic_cmd = TUNNEWPPA; + strioc_ppa.ic_timout = 0; + strioc_ppa.ic_len = sizeof(ppa); + strioc_ppa.ic_dp = (char *)&ppa; + if ((ppa = ioctl (tap_fd, I_STR, &strioc_ppa)) < 0) + syslog (LOG_ERR, "Can't assign new interface"); + + TFR(if_fd = open("/dev/tap", O_RDWR, 0)); + if (if_fd < 0) { + syslog(LOG_ERR, "Can't open /dev/tap (2)"); + return -1; + } + if(ioctl(if_fd, I_PUSH, "ip") < 0){ + syslog(LOG_ERR, "Can't push IP module"); + return -1; + } + + if (ioctl(if_fd, SIOCGLIFFLAGS, &ifr) < 0) + syslog(LOG_ERR, "Can't get flags\n"); + + snprintf (actual_name, 32, "tap%d", ppa); + strncpy (ifr.lifr_name, actual_name, sizeof (ifr.lifr_name)); + + ifr.lifr_ppa = ppa; + /* Assign ppa according to the unit number returned by tun device */ + + if (ioctl (if_fd, SIOCSLIFNAME, &ifr) < 0) + syslog (LOG_ERR, "Can't set PPA %d", ppa); + if (ioctl(if_fd, SIOCGLIFFLAGS, &ifr) <0) + syslog (LOG_ERR, "Can't get flags\n"); + /* Push arp module to if_fd */ + if (ioctl (if_fd, I_PUSH, "arp") < 0) + syslog (LOG_ERR, "Can't push ARP module (2)"); + + /* Push arp module to ip_fd */ + if (ioctl (ip_fd, I_POP, NULL) < 0) + syslog (LOG_ERR, "I_POP failed\n"); + if (ioctl (ip_fd, I_PUSH, "arp") < 0) + syslog (LOG_ERR, "Can't push ARP module (3)\n"); + /* Open arp_fd */ + TFR(arp_fd = open ("/dev/tap", O_RDWR, 0)); + if (arp_fd < 0) + syslog (LOG_ERR, "Can't open %s\n", "/dev/tap"); + + /* Set ifname to arp */ + strioc_if.ic_cmd = SIOCSLIFNAME; + strioc_if.ic_timout = 0; + strioc_if.ic_len = sizeof(ifr); + strioc_if.ic_dp = (char *)𝔦 + if (ioctl(arp_fd, I_STR, &strioc_if) < 0){ + syslog (LOG_ERR, "Can't set ifname to arp\n"); + } + + if((ip_muxid = ioctl(ip_fd, I_LINK, if_fd)) < 0){ + syslog(LOG_ERR, "Can't link TAP device to IP"); + return -1; + } + + if ((arp_muxid = ioctl (ip_fd, link_type, arp_fd)) < 0) + syslog (LOG_ERR, "Can't link TAP device to ARP"); + + close (if_fd); + + memset(&ifr, 0x0, sizeof(ifr)); + strncpy (ifr.lifr_name, actual_name, sizeof (ifr.lifr_name)); + ifr.lifr_ip_muxid = ip_muxid; + ifr.lifr_arp_muxid = arp_muxid; + + if (ioctl (ip_fd, SIOCSLIFMUXID, &ifr) < 0) + { + ioctl (ip_fd, I_PUNLINK , arp_muxid); + ioctl (ip_fd, I_PUNLINK, ip_muxid); + syslog (LOG_ERR, "Can't set multiplexor id"); + } + + sprintf(dev, "tap%d", ppa); + return tap_fd; +} + +static int tap_open(char *ifname, int ifname_size) +{ + char dev[10]=""; + int fd; + if( (fd = tap_alloc(dev)) < 0 ){ + fprintf(stderr, "Cannot allocate TAP device\n"); + return -1; + } + pstrcpy(ifname, ifname_size, dev); + fcntl(fd, F_SETFL, O_NONBLOCK); + return fd; +} +#else +static int tap_open(char *ifname, int ifname_size) +{ + struct ifreq ifr; + int fd, ret; + + TFR(fd = open("/dev/net/tun", O_RDWR)); + if (fd < 0) { + fprintf(stderr, "warning: could not open /dev/net/tun: no virtual network emulation\n"); + return -1; + } + memset(&ifr, 0, sizeof(ifr)); + ifr.ifr_flags = IFF_TAP | IFF_NO_PI; + if (ifname[0] != '\0') + pstrcpy(ifr.ifr_name, IFNAMSIZ, ifname); + else + pstrcpy(ifr.ifr_name, IFNAMSIZ, "tap%d"); + ret = ioctl(fd, TUNSETIFF, (void *) &ifr); + if (ret != 0) { + fprintf(stderr, "warning: could not configure /dev/net/tun: no virtual network emulation\n"); + close(fd); + return -1; + } + pstrcpy(ifname, ifname_size, ifr.ifr_name); + fcntl(fd, F_SETFL, O_NONBLOCK); + return fd; +} +#endif + +static int launch_script(const char *setup_script, const char *ifname, int fd) +{ + int pid, status; + char *args[3]; + char **parg; + + /* try to launch network script */ + pid = fork(); + if (pid >= 0) { + if (pid == 0) { + int open_max = sysconf (_SC_OPEN_MAX), i; + for (i = 0; i < open_max; i++) + if (i != STDIN_FILENO && + i != STDOUT_FILENO && + i != STDERR_FILENO && + i != fd) + close(i); + + parg = args; + *parg++ = (char *)setup_script; + *parg++ = (char *)ifname; + *parg++ = NULL; + execv(setup_script, args); + _exit(1); + } + while (waitpid(pid, &status, 0) != pid); + if (!WIFEXITED(status) || + WEXITSTATUS(status) != 0) { + fprintf(stderr, "%s: could not launch network script\n", + setup_script); + return -1; + } + } + return 0; +} + +static int net_tap_init(VLANState *vlan, const char *ifname1, + const char *setup_script, const char *down_script) +{ + TAPState *s; + int fd; + char ifname[128]; + + if (ifname1 != NULL) + pstrcpy(ifname, sizeof(ifname), ifname1); + else + ifname[0] = '\0'; + TFR(fd = tap_open(ifname, sizeof(ifname))); + if (fd < 0) + return -1; + + if (!setup_script || !strcmp(setup_script, "no")) + setup_script = ""; + if (setup_script[0] != '\0') { + if (launch_script(setup_script, ifname, fd)) + return -1; + } + s = net_tap_fd_init(vlan, fd); + if (!s) + return -1; + snprintf(s->vc->info_str, sizeof(s->vc->info_str), + "tap: ifname=%s setup_script=%s", ifname, setup_script); + if (down_script && strcmp(down_script, "no")) + snprintf(s->down_script, sizeof(s->down_script), "%s", down_script); + return 0; +} + +#endif /* !_WIN32 */ + +/* network connection */ +typedef struct NetSocketState { + VLANClientState *vc; + int fd; + int state; /* 0 = getting length, 1 = getting data */ + int index; + int packet_len; + uint8_t buf[4096]; + struct sockaddr_in dgram_dst; /* contains inet host and port destination iff connectionless (SOCK_DGRAM) */ +} NetSocketState; + +typedef struct NetSocketListenState { + VLANState *vlan; + int fd; +} NetSocketListenState; + +/* XXX: we consider we can send the whole packet without blocking */ +static void net_socket_receive(void *opaque, const uint8_t *buf, int size) +{ + NetSocketState *s = opaque; + uint32_t len; + len = htonl(size); + + send_all(s->fd, (const uint8_t *)&len, sizeof(len)); + send_all(s->fd, buf, size); +} + +static void net_socket_receive_dgram(void *opaque, const uint8_t *buf, int size) +{ + NetSocketState *s = opaque; + sendto(s->fd, buf, size, 0, + (struct sockaddr *)&s->dgram_dst, sizeof(s->dgram_dst)); +} + +static void net_socket_send(void *opaque) +{ + NetSocketState *s = opaque; + int l, size, err; + uint8_t buf1[4096]; + const uint8_t *buf; + + size = recv(s->fd, buf1, sizeof(buf1), 0); + if (size < 0) { + err = socket_error(); + if (err != EWOULDBLOCK) + goto eoc; + } else if (size == 0) { + /* end of connection */ + eoc: + qemu_set_fd_handler(s->fd, NULL, NULL, NULL); + closesocket(s->fd); + return; + } + buf = buf1; + while (size > 0) { + /* reassemble a packet from the network */ + switch(s->state) { + case 0: + l = 4 - s->index; + if (l > size) + l = size; + memcpy(s->buf + s->index, buf, l); + buf += l; + size -= l; + s->index += l; + if (s->index == 4) { + /* got length */ + s->packet_len = ntohl(*(uint32_t *)s->buf); + s->index = 0; + s->state = 1; + } + break; + case 1: + l = s->packet_len - s->index; + if (l > size) + l = size; + memcpy(s->buf + s->index, buf, l); + s->index += l; + buf += l; + size -= l; + if (s->index >= s->packet_len) { + qemu_send_packet(s->vc, s->buf, s->packet_len); + s->index = 0; + s->state = 0; + } + break; + } + } +} + +static void net_socket_send_dgram(void *opaque) +{ + NetSocketState *s = opaque; + int size; + + size = recv(s->fd, s->buf, sizeof(s->buf), 0); + if (size < 0) + return; + if (size == 0) { + /* end of connection */ + qemu_set_fd_handler(s->fd, NULL, NULL, NULL); + return; + } + qemu_send_packet(s->vc, s->buf, size); +} + +static int net_socket_mcast_create(struct sockaddr_in *mcastaddr) +{ + struct ip_mreq imr; + int fd; + int val, ret; + if (!IN_MULTICAST(ntohl(mcastaddr->sin_addr.s_addr))) { + fprintf(stderr, "qemu: error: specified mcastaddr \"%s\" (0x%08x) does not contain a multicast address\n", + inet_ntoa(mcastaddr->sin_addr), + (int)ntohl(mcastaddr->sin_addr.s_addr)); + return -1; + + } + fd = socket(PF_INET, SOCK_DGRAM, 0); + if (fd < 0) { + perror("socket(PF_INET, SOCK_DGRAM)"); + return -1; + } + + val = 1; + ret=setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, + (const char *)&val, sizeof(val)); + if (ret < 0) { + perror("setsockopt(SOL_SOCKET, SO_REUSEADDR)"); + goto fail; + } + + ret = bind(fd, (struct sockaddr *)mcastaddr, sizeof(*mcastaddr)); + if (ret < 0) { + perror("bind"); + goto fail; + } + + /* Add host to multicast group */ + imr.imr_multiaddr = mcastaddr->sin_addr; + imr.imr_interface.s_addr = htonl(INADDR_ANY); + + ret = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, + (const char *)&imr, sizeof(struct ip_mreq)); + if (ret < 0) { + perror("setsockopt(IP_ADD_MEMBERSHIP)"); + goto fail; + } + + /* Force mcast msgs to loopback (eg. several QEMUs in same host */ + val = 1; + ret=setsockopt(fd, IPPROTO_IP, IP_MULTICAST_LOOP, + (const char *)&val, sizeof(val)); + if (ret < 0) { + perror("setsockopt(SOL_IP, IP_MULTICAST_LOOP)"); + goto fail; + } + + socket_set_nonblock(fd); + return fd; +fail: + if (fd >= 0) + closesocket(fd); + return -1; +} + +static NetSocketState *net_socket_fd_init_dgram(VLANState *vlan, int fd, + int is_connected) +{ + struct sockaddr_in saddr; + int newfd; + socklen_t saddr_len; + NetSocketState *s; + + /* fd passed: multicast: "learn" dgram_dst address from bound address and save it + * Because this may be "shared" socket from a "master" process, datagrams would be recv() + * by ONLY ONE process: we must "clone" this dgram socket --jjo + */ + + if (is_connected) { + if (getsockname(fd, (struct sockaddr *) &saddr, &saddr_len) == 0) { + /* must be bound */ + if (saddr.sin_addr.s_addr==0) { + fprintf(stderr, "qemu: error: init_dgram: fd=%d unbound, cannot setup multicast dst addr\n", + fd); + return NULL; + } + /* clone dgram socket */ + newfd = net_socket_mcast_create(&saddr); + if (newfd < 0) { + /* error already reported by net_socket_mcast_create() */ + close(fd); + return NULL; + } + /* clone newfd to fd, close newfd */ + dup2(newfd, fd); + close(newfd); + + } else { + fprintf(stderr, "qemu: error: init_dgram: fd=%d failed getsockname(): %s\n", + fd, strerror(errno)); + return NULL; + } + } + + s = qemu_mallocz(sizeof(NetSocketState)); + if (!s) + return NULL; + s->fd = fd; + + s->vc = qemu_new_vlan_client(vlan, net_socket_receive_dgram, NULL, s); + qemu_set_fd_handler(s->fd, net_socket_send_dgram, NULL, s); + + /* mcast: save bound address as dst */ + if (is_connected) s->dgram_dst=saddr; + + snprintf(s->vc->info_str, sizeof(s->vc->info_str), + "socket: fd=%d (%s mcast=%s:%d)", + fd, is_connected? "cloned" : "", + inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + return s; +} + +static void net_socket_connect(void *opaque) +{ + NetSocketState *s = opaque; + qemu_set_fd_handler(s->fd, net_socket_send, NULL, s); +} + +static NetSocketState *net_socket_fd_init_stream(VLANState *vlan, int fd, + int is_connected) +{ + NetSocketState *s; + s = qemu_mallocz(sizeof(NetSocketState)); + if (!s) + return NULL; + s->fd = fd; + s->vc = qemu_new_vlan_client(vlan, + net_socket_receive, NULL, s); + snprintf(s->vc->info_str, sizeof(s->vc->info_str), + "socket: fd=%d", fd); + if (is_connected) { + net_socket_connect(s); + } else { + qemu_set_fd_handler(s->fd, NULL, net_socket_connect, s); + } + return s; +} + +static NetSocketState *net_socket_fd_init(VLANState *vlan, int fd, + int is_connected) +{ + int so_type=-1, optlen=sizeof(so_type); + + if(getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&so_type, + (socklen_t *)&optlen)< 0) { + fprintf(stderr, "qemu: error: getsockopt(SO_TYPE) for fd=%d failed\n", fd); + return NULL; + } + switch(so_type) { + case SOCK_DGRAM: + return net_socket_fd_init_dgram(vlan, fd, is_connected); + case SOCK_STREAM: + return net_socket_fd_init_stream(vlan, fd, is_connected); + default: + /* who knows ... this could be a eg. a pty, do warn and continue as stream */ + fprintf(stderr, "qemu: warning: socket type=%d for fd=%d is not SOCK_DGRAM or SOCK_STREAM\n", so_type, fd); + return net_socket_fd_init_stream(vlan, fd, is_connected); + } + return NULL; +} + +static void net_socket_accept(void *opaque) +{ + NetSocketListenState *s = opaque; + NetSocketState *s1; + struct sockaddr_in saddr; + socklen_t len; + int fd; + + for(;;) { + len = sizeof(saddr); + fd = accept(s->fd, (struct sockaddr *)&saddr, &len); + if (fd < 0 && errno != EINTR) { + return; + } else if (fd >= 0) { + break; + } + } + s1 = net_socket_fd_init(s->vlan, fd, 1); + if (!s1) { + closesocket(fd); + } else { + snprintf(s1->vc->info_str, sizeof(s1->vc->info_str), + "socket: connection from %s:%d", + inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + } +} + +static int net_socket_listen_init(VLANState *vlan, const char *host_str) +{ + NetSocketListenState *s; + int fd, val, ret; + struct sockaddr_in saddr; + + if (parse_host_port(&saddr, host_str) < 0) + return -1; + + s = qemu_mallocz(sizeof(NetSocketListenState)); + if (!s) + return -1; + + fd = socket(PF_INET, SOCK_STREAM, 0); + if (fd < 0) { + perror("socket"); + return -1; + } + socket_set_nonblock(fd); + + /* allow fast reuse */ + val = 1; + setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char *)&val, sizeof(val)); + + ret = bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)); + if (ret < 0) { + perror("bind"); + return -1; + } + ret = listen(fd, 0); + if (ret < 0) { + perror("listen"); + return -1; + } + s->vlan = vlan; + s->fd = fd; + qemu_set_fd_handler(fd, net_socket_accept, NULL, s); + return 0; +} + +static int net_socket_connect_init(VLANState *vlan, const char *host_str) +{ + NetSocketState *s; + int fd, connected, ret, err; + struct sockaddr_in saddr; + + if (parse_host_port(&saddr, host_str) < 0) + return -1; + + fd = socket(PF_INET, SOCK_STREAM, 0); + if (fd < 0) { + perror("socket"); + return -1; + } + socket_set_nonblock(fd); + + connected = 0; + for(;;) { + ret = connect(fd, (struct sockaddr *)&saddr, sizeof(saddr)); + if (ret < 0) { + err = socket_error(); + if (err == EINTR || err == EWOULDBLOCK) { + } else if (err == EINPROGRESS) { + break; +#ifdef _WIN32 + } else if (err == WSAEALREADY) { + break; +#endif + } else { + perror("connect"); + closesocket(fd); + return -1; + } + } else { + connected = 1; + break; + } + } + s = net_socket_fd_init(vlan, fd, connected); + if (!s) + return -1; + snprintf(s->vc->info_str, sizeof(s->vc->info_str), + "socket: connect to %s:%d", + inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + return 0; +} + +static int net_socket_mcast_init(VLANState *vlan, const char *host_str) +{ + NetSocketState *s; + int fd; + struct sockaddr_in saddr; + + if (parse_host_port(&saddr, host_str) < 0) + return -1; + + + fd = net_socket_mcast_create(&saddr); + if (fd < 0) + return -1; + + s = net_socket_fd_init(vlan, fd, 0); + if (!s) + return -1; + + s->dgram_dst = saddr; + + snprintf(s->vc->info_str, sizeof(s->vc->info_str), + "socket: mcast=%s:%d", + inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + return 0; + +} + +static const char *get_word(char *buf, int buf_size, const char *p) +{ + char *q; + int substring; + + substring = 0; + q = buf; + while (*p != '\0') { + if (*p == '\\') { + p++; + if (*p == '\0') + break; + } else if (*p == '\"') { + substring = !substring; + p++; + continue; + } else if (!substring && (*p == ',' || *p == '=')) + break; + if (q && (q - buf) < buf_size - 1) + *q++ = *p; + p++; + } + if (q) + *q = '\0'; + + return p; +} + +static int get_param_value(char *buf, int buf_size, + const char *tag, const char *str) +{ + const char *p; + char option[128]; + + p = str; + for(;;) { + p = get_word(option, sizeof(option), p); + if (*p != '=') + break; + p++; + if (!strcmp(tag, option)) { + (void)get_word(buf, buf_size, p); + return strlen(buf); + } else { + p = get_word(NULL, 0, p); + } + if (*p != ',') + break; + p++; + } + return 0; +} + +static int check_params(char *buf, int buf_size, + char **params, const char *str) +{ + const char *p; + int i; + + p = str; + for(;;) { + p = get_word(buf, buf_size, p); + if (*p != '=') + return -1; + p++; + for(i = 0; params[i] != NULL; i++) + if (!strcmp(params[i], buf)) + break; + if (params[i] == NULL) + return -1; + p = get_word(NULL, 0, p); + if (*p != ',') + break; + p++; + } + return 0; +} + + +static int net_client_init(const char *str) +{ + const char *p; + char *q; + char device[64]; + char buf[1024]; + int vlan_id, ret; + VLANState *vlan; + + p = str; + q = device; + while (*p != '\0' && *p != ',') { + if ((q - device) < sizeof(device) - 1) + *q++ = *p; + p++; + } + *q = '\0'; + if (*p == ',') + p++; + vlan_id = 0; + if (get_param_value(buf, sizeof(buf), "vlan", p)) { + vlan_id = strtol(buf, NULL, 0); + } + vlan = qemu_find_vlan(vlan_id); + if (!vlan) { + fprintf(stderr, "Could not create vlan %d\n", vlan_id); + return -1; + } + if (!strcmp(device, "nic")) { + NICInfo *nd; + uint8_t *macaddr; + + if (nb_nics >= MAX_NICS) { + fprintf(stderr, "Too Many NICs\n"); + return -1; + } + nd = &nd_table[nb_nics]; + macaddr = nd->macaddr; + macaddr[0] = 0x52; + macaddr[1] = 0x54; + macaddr[2] = 0x00; + macaddr[3] = 0x12; + macaddr[4] = 0x34; + macaddr[5] = 0x56 + nb_nics; + + if (get_param_value(buf, sizeof(buf), "macaddr", p)) { + if (parse_macaddr(macaddr, buf) < 0) { + fprintf(stderr, "invalid syntax for ethernet address\n"); + return -1; + } + } + if (get_param_value(buf, sizeof(buf), "model", p)) { + nd->model = strdup(buf); + } + nd->vlan = vlan; + nb_nics++; + vlan->nb_guest_devs++; + ret = 0; + } else + if (!strcmp(device, "none")) { + /* does nothing. It is needed to signal that no network cards + are wanted */ + ret = 0; + } else +#ifdef CONFIG_SLIRP + if (!strcmp(device, "user")) { + if (get_param_value(buf, sizeof(buf), "hostname", p)) { + pstrcpy(slirp_hostname, sizeof(slirp_hostname), buf); + } + vlan->nb_host_devs++; + ret = net_slirp_init(vlan); + } else +#endif +#ifdef _WIN32 + if (!strcmp(device, "tap")) { + char ifname[64]; + if (get_param_value(ifname, sizeof(ifname), "ifname", p) <= 0) { + fprintf(stderr, "tap: no interface name\n"); + return -1; + } + vlan->nb_host_devs++; + ret = tap_win32_init(vlan, ifname); + } else +#else + if (!strcmp(device, "tap")) { + char ifname[64]; + char setup_script[1024], down_script[1024]; + int fd; + vlan->nb_host_devs++; + if (get_param_value(buf, sizeof(buf), "fd", p) > 0) { + fd = strtol(buf, NULL, 0); + ret = -1; + if (net_tap_fd_init(vlan, fd)) + ret = 0; + } else { + if (get_param_value(ifname, sizeof(ifname), "ifname", p) <= 0) { + ifname[0] = '\0'; + } + if (get_param_value(setup_script, sizeof(setup_script), "script", p) == 0) { + pstrcpy(setup_script, sizeof(setup_script), DEFAULT_NETWORK_SCRIPT); + } + if (get_param_value(down_script, sizeof(down_script), "downscript", p) == 0) { + pstrcpy(down_script, sizeof(down_script), DEFAULT_NETWORK_DOWN_SCRIPT); + } + ret = net_tap_init(vlan, ifname, setup_script, down_script); + } + } else +#endif + if (!strcmp(device, "socket")) { + if (get_param_value(buf, sizeof(buf), "fd", p) > 0) { + int fd; + fd = strtol(buf, NULL, 0); + ret = -1; + if (net_socket_fd_init(vlan, fd, 1)) + ret = 0; + } else if (get_param_value(buf, sizeof(buf), "listen", p) > 0) { + ret = net_socket_listen_init(vlan, buf); + } else if (get_param_value(buf, sizeof(buf), "connect", p) > 0) { + ret = net_socket_connect_init(vlan, buf); + } else if (get_param_value(buf, sizeof(buf), "mcast", p) > 0) { + ret = net_socket_mcast_init(vlan, buf); + } else { + fprintf(stderr, "Unknown socket options: %s\n", p); + return -1; + } + vlan->nb_host_devs++; + } else + { + fprintf(stderr, "Unknown network device: %s\n", device); + return -1; + } + if (ret < 0) { + fprintf(stderr, "Could not initialize device '%s'\n", device); + } + + return ret; +} + +void do_info_network(void) +{ + VLANState *vlan; + VLANClientState *vc; + + for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { + term_printf("VLAN %d devices:\n", vlan->id); + for(vc = vlan->first_client; vc != NULL; vc = vc->next) + term_printf(" %s\n", vc->info_str); + } +} + +#define HD_ALIAS "file=\"%s\",index=%d,media=disk" +#ifdef TARGET_PPC +#define CDROM_ALIAS "index=1,media=cdrom" +#else +#define CDROM_ALIAS "index=2,media=cdrom" +#endif +#define FD_ALIAS "index=%d,if=floppy" +#define PFLASH_ALIAS "file=\"%s\",if=pflash" +#define MTD_ALIAS "file=\"%s\",if=mtd" +#define SD_ALIAS "index=0,if=sd" + +static int drive_add(const char *fmt, ...) +{ + va_list ap; + + if (nb_drives_opt >= MAX_DRIVES) { + fprintf(stderr, "qemu: too many drives\n"); + exit(1); + } + + va_start(ap, fmt); + vsnprintf(drives_opt[nb_drives_opt], sizeof(drives_opt[0]), fmt, ap); + va_end(ap); + + return nb_drives_opt++; +} + +int drive_get_index(BlockInterfaceType type, int bus, int unit) +{ + int index; + + /* seek interface, bus and unit */ + + for (index = 0; index < nb_drives; index++) + if (drives_table[index].type == type && + drives_table[index].bus == bus && + drives_table[index].unit == unit) + return index; + + return -1; +} + +int drive_get_max_bus(BlockInterfaceType type) +{ + int max_bus; + int index; + + max_bus = -1; + for (index = 0; index < nb_drives; index++) { + if(drives_table[index].type == type && + drives_table[index].bus > max_bus) + max_bus = drives_table[index].bus; + } + return max_bus; +} + +static int drive_init(const char *str, int snapshot, QEMUMachine *machine) +{ + char buf[128]; + char file[1024]; + char devname[128]; + const char *mediastr = ""; + BlockInterfaceType type; + enum { MEDIA_DISK, MEDIA_CDROM } media; + int bus_id, unit_id; + int cyls, heads, secs, translation; + BlockDriverState *bdrv; + int max_devs; + int index; + int cache; + int bdrv_flags; + char *params[] = { "bus", "unit", "if", "index", "cyls", "heads", + "secs", "trans", "media", "snapshot", "file", + "cache", NULL }; + + if (check_params(buf, sizeof(buf), params, str) < 0) { + fprintf(stderr, "qemu: unknowm parameter '%s' in '%s'\n", + buf, str); + return -1; + } + + file[0] = 0; + cyls = heads = secs = 0; + bus_id = 0; + unit_id = -1; + translation = BIOS_ATA_TRANSLATION_AUTO; + index = -1; + cache = 1; + + if (!strcmp(machine->name, "realview") || + !strcmp(machine->name, "SS-5") || + !strcmp(machine->name, "SS-10") || + !strcmp(machine->name, "SS-600MP") || + !strcmp(machine->name, "versatilepb") || + !strcmp(machine->name, "versatileab")) { + type = IF_SCSI; + max_devs = MAX_SCSI_DEVS; + strcpy(devname, "scsi"); + } else { + type = IF_IDE; + max_devs = MAX_IDE_DEVS; + strcpy(devname, "ide"); + } + media = MEDIA_DISK; + + /* extract parameters */ + + if (get_param_value(buf, sizeof(buf), "bus", str)) { + bus_id = strtol(buf, NULL, 0); + if (bus_id < 0) { + fprintf(stderr, "qemu: '%s' invalid bus id\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "unit", str)) { + unit_id = strtol(buf, NULL, 0); + if (unit_id < 0) { + fprintf(stderr, "qemu: '%s' invalid unit id\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "if", str)) { + strncpy(devname, buf, sizeof(devname)); + if (!strcmp(buf, "ide")) { + type = IF_IDE; + max_devs = MAX_IDE_DEVS; + } else if (!strcmp(buf, "scsi")) { + type = IF_SCSI; + max_devs = MAX_SCSI_DEVS; + } else if (!strcmp(buf, "floppy")) { + type = IF_FLOPPY; + max_devs = 0; + } else if (!strcmp(buf, "pflash")) { + type = IF_PFLASH; + max_devs = 0; + } else if (!strcmp(buf, "mtd")) { + type = IF_MTD; + max_devs = 0; + } else if (!strcmp(buf, "sd")) { + type = IF_SD; + max_devs = 0; + } else { + fprintf(stderr, "qemu: '%s' unsupported bus type '%s'\n", str, buf); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "index", str)) { + index = strtol(buf, NULL, 0); + if (index < 0) { + fprintf(stderr, "qemu: '%s' invalid index\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "cyls", str)) { + cyls = strtol(buf, NULL, 0); + } + + if (get_param_value(buf, sizeof(buf), "heads", str)) { + heads = strtol(buf, NULL, 0); + } + + if (get_param_value(buf, sizeof(buf), "secs", str)) { + secs = strtol(buf, NULL, 0); + } + + if (cyls || heads || secs) { + if (cyls < 1 || cyls > 16383) { + fprintf(stderr, "qemu: '%s' invalid physical cyls number\n", str); + return -1; + } + if (heads < 1 || heads > 16) { + fprintf(stderr, "qemu: '%s' invalid physical heads number\n", str); + return -1; + } + if (secs < 1 || secs > 63) { + fprintf(stderr, "qemu: '%s' invalid physical secs number\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "trans", str)) { + if (!cyls) { + fprintf(stderr, + "qemu: '%s' trans must be used with cyls,heads and secs\n", + str); + return -1; + } + if (!strcmp(buf, "none")) + translation = BIOS_ATA_TRANSLATION_NONE; + else if (!strcmp(buf, "lba")) + translation = BIOS_ATA_TRANSLATION_LBA; + else if (!strcmp(buf, "auto")) + translation = BIOS_ATA_TRANSLATION_AUTO; + else { + fprintf(stderr, "qemu: '%s' invalid translation type\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "media", str)) { + if (!strcmp(buf, "disk")) { + media = MEDIA_DISK; + } else if (!strcmp(buf, "cdrom")) { + if (cyls || secs || heads) { + fprintf(stderr, + "qemu: '%s' invalid physical CHS format\n", str); + return -1; + } + media = MEDIA_CDROM; + } else { + fprintf(stderr, "qemu: '%s' invalid media\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "snapshot", str)) { + if (!strcmp(buf, "on")) + snapshot = 1; + else if (!strcmp(buf, "off")) + snapshot = 0; + else { + fprintf(stderr, "qemu: '%s' invalid snapshot option\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "cache", str)) { + if (!strcmp(buf, "off")) + cache = 0; + else if (!strcmp(buf, "on")) + cache = 1; + else { + fprintf(stderr, "qemu: invalid cache option\n"); + return -1; + } + } + + get_param_value(file, sizeof(file), "file", str); + + /* compute bus and unit according index */ + + if (index != -1) { + if (bus_id != 0 || unit_id != -1) { + fprintf(stderr, + "qemu: '%s' index cannot be used with bus and unit\n", str); + return -1; + } + if (max_devs == 0) + { + unit_id = index; + bus_id = 0; + } else { + unit_id = index % max_devs; + bus_id = index / max_devs; + } + } + + /* if user doesn't specify a unit_id, + * try to find the first free + */ + + if (unit_id == -1) { + unit_id = 0; + while (drive_get_index(type, bus_id, unit_id) != -1) { + unit_id++; + if (max_devs && unit_id >= max_devs) { + unit_id -= max_devs; + bus_id++; + } + } + } + + /* check unit id */ + + if (max_devs && unit_id >= max_devs) { + fprintf(stderr, "qemu: '%s' unit %d too big (max is %d)\n", + str, unit_id, max_devs - 1); + return -1; + } + + /* + * ignore multiple definitions + */ + + if (drive_get_index(type, bus_id, unit_id) != -1) + return 0; + + /* init */ + + if (type == IF_IDE || type == IF_SCSI) + mediastr = (media == MEDIA_CDROM) ? "-cd" : "-hd"; + if (max_devs) + snprintf(buf, sizeof(buf), "%s%i%s%i", + devname, bus_id, mediastr, unit_id); + else + snprintf(buf, sizeof(buf), "%s%s%i", + devname, mediastr, unit_id); + bdrv = bdrv_new(buf); + drives_table[nb_drives].bdrv = bdrv; + drives_table[nb_drives].type = type; + drives_table[nb_drives].bus = bus_id; + drives_table[nb_drives].unit = unit_id; + nb_drives++; + + switch(type) { + case IF_IDE: + case IF_SCSI: + switch(media) { + case MEDIA_DISK: + if (cyls != 0) { + bdrv_set_geometry_hint(bdrv, cyls, heads, secs); + bdrv_set_translation_hint(bdrv, translation); + } + break; + case MEDIA_CDROM: + bdrv_set_type_hint(bdrv, BDRV_TYPE_CDROM); + break; + } + break; + case IF_SD: + /* FIXME: This isn't really a floppy, but it's a reasonable + approximation. */ + case IF_FLOPPY: + bdrv_set_type_hint(bdrv, BDRV_TYPE_FLOPPY); + break; + case IF_PFLASH: + case IF_MTD: + break; + } + if (!file[0]) + return 0; + bdrv_flags = 0; + if (snapshot) + bdrv_flags |= BDRV_O_SNAPSHOT; + if (!cache) + bdrv_flags |= BDRV_O_DIRECT; + if (bdrv_open(bdrv, file, bdrv_flags) < 0 || qemu_key_check(bdrv, file)) { + fprintf(stderr, "qemu: could not open disk image %s\n", + file); + return -1; + } + return 0; +} + +/***********************************************************/ +/* USB devices */ + +static USBPort *used_usb_ports; +static USBPort *free_usb_ports; + +/* ??? Maybe change this to register a hub to keep track of the topology. */ +void qemu_register_usb_port(USBPort *port, void *opaque, int index, + usb_attachfn attach) +{ + port->opaque = opaque; + port->index = index; + port->attach = attach; + port->next = free_usb_ports; + free_usb_ports = port; +} + +static int usb_device_add(const char *devname) +{ + const char *p; + USBDevice *dev; + USBPort *port; + + if (!free_usb_ports) + return -1; + + if (strstart(devname, "host:", &p)) { + dev = usb_host_device_open(p); + } else if (!strcmp(devname, "mouse")) { + dev = usb_mouse_init(); + } else if (!strcmp(devname, "tablet")) { + dev = usb_tablet_init(); + } else if (!strcmp(devname, "keyboard")) { + dev = usb_keyboard_init(); + } else if (strstart(devname, "disk:", &p)) { + dev = usb_msd_init(p); + } else if (!strcmp(devname, "wacom-tablet")) { + dev = usb_wacom_init(); + } else { + return -1; + } + if (!dev) + return -1; + + /* Find a USB port to add the device to. */ + port = free_usb_ports; + if (!port->next) { + USBDevice *hub; + + /* Create a new hub and chain it on. */ + free_usb_ports = NULL; + port->next = used_usb_ports; + used_usb_ports = port; + + hub = usb_hub_init(VM_USB_HUB_SIZE); + usb_attach(port, hub); + port = free_usb_ports; + } + + free_usb_ports = port->next; + port->next = used_usb_ports; + used_usb_ports = port; + usb_attach(port, dev); + return 0; +} + +static int usb_device_del(const char *devname) +{ + USBPort *port; + USBPort **lastp; + USBDevice *dev; + int bus_num, addr; + const char *p; + + if (!used_usb_ports) + return -1; + + p = strchr(devname, '.'); + if (!p) + return -1; + bus_num = strtoul(devname, NULL, 0); + addr = strtoul(p + 1, NULL, 0); + if (bus_num != 0) + return -1; + + lastp = &used_usb_ports; + port = used_usb_ports; + while (port && port->dev->addr != addr) { + lastp = &port->next; + port = port->next; + } + + if (!port) + return -1; + + dev = port->dev; + *lastp = port->next; + usb_attach(port, NULL); + dev->handle_destroy(dev); + port->next = free_usb_ports; + free_usb_ports = port; + return 0; +} + +void do_usb_add(const char *devname) +{ + int ret; + ret = usb_device_add(devname); + if (ret < 0) + term_printf("Could not add USB device '%s'\n", devname); +} + +void do_usb_del(const char *devname) +{ + int ret; + ret = usb_device_del(devname); + if (ret < 0) + term_printf("Could not remove USB device '%s'\n", devname); +} + +void usb_info(void) +{ + USBDevice *dev; + USBPort *port; + const char *speed_str; + + if (!usb_enabled) { + term_printf("USB support not enabled\n"); + return; + } + + for (port = used_usb_ports; port; port = port->next) { + dev = port->dev; + if (!dev) + continue; + switch(dev->speed) { + case USB_SPEED_LOW: + speed_str = "1.5"; + break; + case USB_SPEED_FULL: + speed_str = "12"; + break; + case USB_SPEED_HIGH: + speed_str = "480"; + break; + default: + speed_str = "?"; + break; + } + term_printf(" Device %d.%d, Speed %s Mb/s, Product %s\n", + 0, dev->addr, speed_str, dev->devname); + } +} + +/***********************************************************/ +/* PCMCIA/Cardbus */ + +static struct pcmcia_socket_entry_s { + struct pcmcia_socket_s *socket; + struct pcmcia_socket_entry_s *next; +} *pcmcia_sockets = 0; + +void pcmcia_socket_register(struct pcmcia_socket_s *socket) +{ + struct pcmcia_socket_entry_s *entry; + + entry = qemu_malloc(sizeof(struct pcmcia_socket_entry_s)); + entry->socket = socket; + entry->next = pcmcia_sockets; + pcmcia_sockets = entry; +} + +void pcmcia_socket_unregister(struct pcmcia_socket_s *socket) +{ + struct pcmcia_socket_entry_s *entry, **ptr; + + ptr = &pcmcia_sockets; + for (entry = *ptr; entry; ptr = &entry->next, entry = *ptr) + if (entry->socket == socket) { + *ptr = entry->next; + qemu_free(entry); + } +} + +void pcmcia_info(void) +{ + struct pcmcia_socket_entry_s *iter; + if (!pcmcia_sockets) + term_printf("No PCMCIA sockets\n"); + + for (iter = pcmcia_sockets; iter; iter = iter->next) + term_printf("%s: %s\n", iter->socket->slot_string, + iter->socket->attached ? iter->socket->card_string : + "Empty"); +} + +/***********************************************************/ +/* dumb display */ + +static void dumb_update(DisplayState *ds, int x, int y, int w, int h) +{ +} + +static void dumb_resize(DisplayState *ds, int w, int h) +{ +} + +static void dumb_refresh(DisplayState *ds) +{ +#if defined(CONFIG_SDL) + vga_hw_update(); +#endif +} + +static void dumb_display_init(DisplayState *ds) +{ + ds->data = NULL; + ds->linesize = 0; + ds->depth = 0; + ds->dpy_update = dumb_update; + ds->dpy_resize = dumb_resize; + ds->dpy_refresh = dumb_refresh; +} + +/***********************************************************/ +/* I/O handling */ + +#define MAX_IO_HANDLERS 64 + +typedef struct IOHandlerRecord { + int fd; + IOCanRWHandler *fd_read_poll; + IOHandler *fd_read; + IOHandler *fd_write; + int deleted; + void *opaque; + /* temporary data */ + struct pollfd *ufd; + struct IOHandlerRecord *next; +} IOHandlerRecord; + +static IOHandlerRecord *first_io_handler; + +/* XXX: fd_read_poll should be suppressed, but an API change is + necessary in the character devices to suppress fd_can_read(). */ +int qemu_set_fd_handler2(int fd, + IOCanRWHandler *fd_read_poll, + IOHandler *fd_read, + IOHandler *fd_write, + void *opaque) +{ + IOHandlerRecord **pioh, *ioh; + + if (!fd_read && !fd_write) { + pioh = &first_io_handler; + for(;;) { + ioh = *pioh; + if (ioh == NULL) + break; + if (ioh->fd == fd) { + ioh->deleted = 1; + break; + } + pioh = &ioh->next; + } + } else { + for(ioh = first_io_handler; ioh != NULL; ioh = ioh->next) { + if (ioh->fd == fd) + goto found; + } + ioh = qemu_mallocz(sizeof(IOHandlerRecord)); + if (!ioh) + return -1; + ioh->next = first_io_handler; + first_io_handler = ioh; + found: + ioh->fd = fd; + ioh->fd_read_poll = fd_read_poll; + ioh->fd_read = fd_read; + ioh->fd_write = fd_write; + ioh->opaque = opaque; + ioh->deleted = 0; + } + return 0; +} + +int qemu_set_fd_handler(int fd, + IOHandler *fd_read, + IOHandler *fd_write, + void *opaque) +{ + return qemu_set_fd_handler2(fd, NULL, fd_read, fd_write, opaque); +} + +/***********************************************************/ +/* Polling handling */ + +typedef struct PollingEntry { + PollingFunc *func; + void *opaque; + struct PollingEntry *next; +} PollingEntry; + +static PollingEntry *first_polling_entry; + +int qemu_add_polling_cb(PollingFunc *func, void *opaque) +{ + PollingEntry **ppe, *pe; + pe = qemu_mallocz(sizeof(PollingEntry)); + if (!pe) + return -1; + pe->func = func; + pe->opaque = opaque; + for(ppe = &first_polling_entry; *ppe != NULL; ppe = &(*ppe)->next); + *ppe = pe; + return 0; +} + +void qemu_del_polling_cb(PollingFunc *func, void *opaque) +{ + PollingEntry **ppe, *pe; + for(ppe = &first_polling_entry; *ppe != NULL; ppe = &(*ppe)->next) { + pe = *ppe; + if (pe->func == func && pe->opaque == opaque) { + *ppe = pe->next; + qemu_free(pe); + break; + } + } +} + +#ifdef _WIN32 +/***********************************************************/ +/* Wait objects support */ +typedef struct WaitObjects { + int num; + HANDLE events[MAXIMUM_WAIT_OBJECTS + 1]; + WaitObjectFunc *func[MAXIMUM_WAIT_OBJECTS + 1]; + void *opaque[MAXIMUM_WAIT_OBJECTS + 1]; +} WaitObjects; + +static WaitObjects wait_objects = {0}; + +int qemu_add_wait_object(HANDLE handle, WaitObjectFunc *func, void *opaque) +{ + WaitObjects *w = &wait_objects; + + if (w->num >= MAXIMUM_WAIT_OBJECTS) + return -1; + w->events[w->num] = handle; + w->func[w->num] = func; + w->opaque[w->num] = opaque; + w->num++; + return 0; +} + +void qemu_del_wait_object(HANDLE handle, WaitObjectFunc *func, void *opaque) +{ + int i, found; + WaitObjects *w = &wait_objects; + + found = 0; + for (i = 0; i < w->num; i++) { + if (w->events[i] == handle) + found = 1; + if (found) { + w->events[i] = w->events[i + 1]; + w->func[i] = w->func[i + 1]; + w->opaque[i] = w->opaque[i + 1]; + } + } + if (found) + w->num--; +} +#endif + +/***********************************************************/ +/* savevm/loadvm support */ + +#define IO_BUF_SIZE 32768 + +struct QEMUFile { + FILE *outfile; + BlockDriverState *bs; + int is_file; + int is_writable; + int64_t base_offset; + int64_t buf_offset; /* start of buffer when writing, end of buffer + when reading */ + int buf_index; + int buf_size; /* 0 when writing */ + uint8_t buf[IO_BUF_SIZE]; +}; + +QEMUFile *qemu_fopen(const char *filename, const char *mode) +{ + QEMUFile *f; + + f = qemu_mallocz(sizeof(QEMUFile)); + if (!f) + return NULL; + if (!strcmp(mode, "wb")) { + f->is_writable = 1; + } else if (!strcmp(mode, "rb")) { + f->is_writable = 0; + } else { + goto fail; + } + f->outfile = fopen(filename, mode); + if (!f->outfile) + goto fail; + f->is_file = 1; + return f; + fail: + if (f->outfile) + fclose(f->outfile); + qemu_free(f); + return NULL; +} + +static QEMUFile *qemu_fopen_bdrv(BlockDriverState *bs, int64_t offset, int is_writable) +{ + QEMUFile *f; + + f = qemu_mallocz(sizeof(QEMUFile)); + if (!f) + return NULL; + f->is_file = 0; + f->bs = bs; + f->is_writable = is_writable; + f->base_offset = offset; + return f; +} + +void qemu_fflush(QEMUFile *f) +{ + if (!f->is_writable) + return; + if (f->buf_index > 0) { + if (f->is_file) { + fseek(f->outfile, f->buf_offset, SEEK_SET); + fwrite(f->buf, 1, f->buf_index, f->outfile); + } else { + bdrv_pwrite(f->bs, f->base_offset + f->buf_offset, + f->buf, f->buf_index); + } + f->buf_offset += f->buf_index; + f->buf_index = 0; + } +} + +static void qemu_fill_buffer(QEMUFile *f) +{ + int len; + + if (f->is_writable) + return; + if (f->is_file) { + fseek(f->outfile, f->buf_offset, SEEK_SET); + len = fread(f->buf, 1, IO_BUF_SIZE, f->outfile); + if (len < 0) + len = 0; + } else { + len = bdrv_pread(f->bs, f->base_offset + f->buf_offset, + f->buf, IO_BUF_SIZE); + if (len < 0) + len = 0; + } + f->buf_index = 0; + f->buf_size = len; + f->buf_offset += len; +} + +void qemu_fclose(QEMUFile *f) +{ + if (f->is_writable) + qemu_fflush(f); + if (f->is_file) { + fclose(f->outfile); + } + qemu_free(f); +} + +void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, int size) +{ + int l; + while (size > 0) { + l = IO_BUF_SIZE - f->buf_index; + if (l > size) + l = size; + memcpy(f->buf + f->buf_index, buf, l); + f->buf_index += l; + buf += l; + size -= l; + if (f->buf_index >= IO_BUF_SIZE) + qemu_fflush(f); + } +} + +void qemu_put_byte(QEMUFile *f, int v) +{ + f->buf[f->buf_index++] = v; + if (f->buf_index >= IO_BUF_SIZE) + qemu_fflush(f); +} + +int qemu_get_buffer(QEMUFile *f, uint8_t *buf, int size1) +{ + int size, l; + + size = size1; + while (size > 0) { + l = f->buf_size - f->buf_index; + if (l == 0) { + qemu_fill_buffer(f); + l = f->buf_size - f->buf_index; + if (l == 0) + break; + } + if (l > size) + l = size; + memcpy(buf, f->buf + f->buf_index, l); + f->buf_index += l; + buf += l; + size -= l; + } + return size1 - size; +} + +int qemu_get_byte(QEMUFile *f) +{ + if (f->buf_index >= f->buf_size) { + qemu_fill_buffer(f); + if (f->buf_index >= f->buf_size) + return 0; + } + return f->buf[f->buf_index++]; +} + +int64_t qemu_ftell(QEMUFile *f) +{ + return f->buf_offset - f->buf_size + f->buf_index; +} + +int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence) +{ + if (whence == SEEK_SET) { + /* nothing to do */ + } else if (whence == SEEK_CUR) { + pos += qemu_ftell(f); + } else { + /* SEEK_END not supported */ + return -1; + } + if (f->is_writable) { + qemu_fflush(f); + f->buf_offset = pos; + } else { + f->buf_offset = pos; + f->buf_index = 0; + f->buf_size = 0; + } + return pos; +} + +void qemu_put_be16(QEMUFile *f, unsigned int v) +{ + qemu_put_byte(f, v >> 8); + qemu_put_byte(f, v); +} + +void qemu_put_be32(QEMUFile *f, unsigned int v) +{ + qemu_put_byte(f, v >> 24); + qemu_put_byte(f, v >> 16); + qemu_put_byte(f, v >> 8); + qemu_put_byte(f, v); +} + +void qemu_put_be64(QEMUFile *f, uint64_t v) +{ + qemu_put_be32(f, v >> 32); + qemu_put_be32(f, v); +} + +unsigned int qemu_get_be16(QEMUFile *f) +{ + unsigned int v; + v = qemu_get_byte(f) << 8; + v |= qemu_get_byte(f); + return v; +} + +unsigned int qemu_get_be32(QEMUFile *f) +{ + unsigned int v; + v = qemu_get_byte(f) << 24; + v |= qemu_get_byte(f) << 16; + v |= qemu_get_byte(f) << 8; + v |= qemu_get_byte(f); + return v; +} + +uint64_t qemu_get_be64(QEMUFile *f) +{ + uint64_t v; + v = (uint64_t)qemu_get_be32(f) << 32; + v |= qemu_get_be32(f); + return v; +} + +typedef struct SaveStateEntry { + char idstr[256]; + int instance_id; + int version_id; + SaveStateHandler *save_state; + LoadStateHandler *load_state; + void *opaque; + struct SaveStateEntry *next; +} SaveStateEntry; + +static SaveStateEntry *first_se; + +int register_savevm(const char *idstr, + int instance_id, + int version_id, + SaveStateHandler *save_state, + LoadStateHandler *load_state, + void *opaque) +{ + SaveStateEntry *se, **pse; + + se = qemu_malloc(sizeof(SaveStateEntry)); + if (!se) + return -1; + pstrcpy(se->idstr, sizeof(se->idstr), idstr); + se->instance_id = instance_id; + se->version_id = version_id; + se->save_state = save_state; + se->load_state = load_state; + se->opaque = opaque; + se->next = NULL; + + /* add at the end of list */ + pse = &first_se; + while (*pse != NULL) + pse = &(*pse)->next; + *pse = se; + return 0; +} + +#define QEMU_VM_FILE_MAGIC 0x5145564d +#define QEMU_VM_FILE_VERSION 0x00000002 + +static int qemu_savevm_state(QEMUFile *f) +{ + SaveStateEntry *se; + int len, ret; + int64_t cur_pos, len_pos, total_len_pos; + + qemu_put_be32(f, QEMU_VM_FILE_MAGIC); + qemu_put_be32(f, QEMU_VM_FILE_VERSION); + total_len_pos = qemu_ftell(f); + qemu_put_be64(f, 0); /* total size */ + + for(se = first_se; se != NULL; se = se->next) { + /* ID string */ + len = strlen(se->idstr); + qemu_put_byte(f, len); + qemu_put_buffer(f, (uint8_t *)se->idstr, len); + + qemu_put_be32(f, se->instance_id); + qemu_put_be32(f, se->version_id); + + /* record size: filled later */ + len_pos = qemu_ftell(f); + qemu_put_be32(f, 0); + se->save_state(f, se->opaque); + + /* fill record size */ + cur_pos = qemu_ftell(f); + len = cur_pos - len_pos - 4; + qemu_fseek(f, len_pos, SEEK_SET); + qemu_put_be32(f, len); + qemu_fseek(f, cur_pos, SEEK_SET); + } + cur_pos = qemu_ftell(f); + qemu_fseek(f, total_len_pos, SEEK_SET); + qemu_put_be64(f, cur_pos - total_len_pos - 8); + qemu_fseek(f, cur_pos, SEEK_SET); + + ret = 0; + return ret; +} + +static SaveStateEntry *find_se(const char *idstr, int instance_id) +{ + SaveStateEntry *se; + + for(se = first_se; se != NULL; se = se->next) { + if (!strcmp(se->idstr, idstr) && + instance_id == se->instance_id) + return se; + } + return NULL; +} + +static int qemu_loadvm_state(QEMUFile *f) +{ + SaveStateEntry *se; + int len, ret, instance_id, record_len, version_id; + int64_t total_len, end_pos, cur_pos; + unsigned int v; + char idstr[256]; + + v = qemu_get_be32(f); + if (v != QEMU_VM_FILE_MAGIC) + goto fail; + v = qemu_get_be32(f); + if (v != QEMU_VM_FILE_VERSION) { + fail: + ret = -1; + goto the_end; + } + total_len = qemu_get_be64(f); + end_pos = total_len + qemu_ftell(f); + for(;;) { + if (qemu_ftell(f) >= end_pos) + break; + len = qemu_get_byte(f); + qemu_get_buffer(f, (uint8_t *)idstr, len); + idstr[len] = '\0'; + instance_id = qemu_get_be32(f); + version_id = qemu_get_be32(f); + record_len = qemu_get_be32(f); +#if 0 + printf("idstr=%s instance=0x%x version=%d len=%d\n", + idstr, instance_id, version_id, record_len); +#endif + cur_pos = qemu_ftell(f); + se = find_se(idstr, instance_id); + if (!se) { + fprintf(stderr, "qemu: warning: instance 0x%x of device '%s' not present in current VM\n", + instance_id, idstr); + } else { + ret = se->load_state(f, se->opaque, version_id); + if (ret < 0) { + fprintf(stderr, "qemu: warning: error while loading state for instance 0x%x of device '%s'\n", + instance_id, idstr); + } + } + /* always seek to exact end of record */ + qemu_fseek(f, cur_pos + record_len, SEEK_SET); + } + ret = 0; + the_end: + return ret; +} + +/* device can contain snapshots */ +static int bdrv_can_snapshot(BlockDriverState *bs) +{ + return (bs && + !bdrv_is_removable(bs) && + !bdrv_is_read_only(bs)); +} + +/* device must be snapshots in order to have a reliable snapshot */ +static int bdrv_has_snapshot(BlockDriverState *bs) +{ + return (bs && + !bdrv_is_removable(bs) && + !bdrv_is_read_only(bs)); +} + +static BlockDriverState *get_bs_snapshots(void) +{ + BlockDriverState *bs; + int i; + + if (bs_snapshots) + return bs_snapshots; + for(i = 0; i <= nb_drives; i++) { + bs = drives_table[i].bdrv; + if (bdrv_can_snapshot(bs)) + goto ok; + } + return NULL; + ok: + bs_snapshots = bs; + return bs; +} + +static int bdrv_snapshot_find(BlockDriverState *bs, QEMUSnapshotInfo *sn_info, + const char *name) +{ + QEMUSnapshotInfo *sn_tab, *sn; + int nb_sns, i, ret; + + ret = -ENOENT; + nb_sns = bdrv_snapshot_list(bs, &sn_tab); + if (nb_sns < 0) + return ret; + for(i = 0; i < nb_sns; i++) { + sn = &sn_tab[i]; + if (!strcmp(sn->id_str, name) || !strcmp(sn->name, name)) { + *sn_info = *sn; + ret = 0; + break; + } + } + qemu_free(sn_tab); + return ret; +} + +void do_savevm(const char *name) +{ + BlockDriverState *bs, *bs1; + QEMUSnapshotInfo sn1, *sn = &sn1, old_sn1, *old_sn = &old_sn1; + int must_delete, ret, i; + BlockDriverInfo bdi1, *bdi = &bdi1; + QEMUFile *f; + int saved_vm_running; +#ifdef _WIN32 + struct _timeb tb; +#else + struct timeval tv; +#endif + + bs = get_bs_snapshots(); + if (!bs) { + term_printf("No block device can accept snapshots\n"); + return; + } + + /* ??? Should this occur after vm_stop? */ + qemu_aio_flush(); + + saved_vm_running = vm_running; + vm_stop(0); + + must_delete = 0; + if (name) { + ret = bdrv_snapshot_find(bs, old_sn, name); + if (ret >= 0) { + must_delete = 1; + } + } + memset(sn, 0, sizeof(*sn)); + if (must_delete) { + pstrcpy(sn->name, sizeof(sn->name), old_sn->name); + pstrcpy(sn->id_str, sizeof(sn->id_str), old_sn->id_str); + } else { + if (name) + pstrcpy(sn->name, sizeof(sn->name), name); + } + + /* fill auxiliary fields */ +#ifdef _WIN32 + _ftime(&tb); + sn->date_sec = tb.time; + sn->date_nsec = tb.millitm * 1000000; +#else + gettimeofday(&tv, NULL); + sn->date_sec = tv.tv_sec; + sn->date_nsec = tv.tv_usec * 1000; +#endif + sn->vm_clock_nsec = qemu_get_clock(vm_clock); + + if (bdrv_get_info(bs, bdi) < 0 || bdi->vm_state_offset <= 0) { + term_printf("Device %s does not support VM state snapshots\n", + bdrv_get_device_name(bs)); + goto the_end; + } + + /* save the VM state */ + f = qemu_fopen_bdrv(bs, bdi->vm_state_offset, 1); + if (!f) { + term_printf("Could not open VM state file\n"); + goto the_end; + } + ret = qemu_savevm_state(f); + sn->vm_state_size = qemu_ftell(f); + qemu_fclose(f); + if (ret < 0) { + term_printf("Error %d while writing VM\n", ret); + goto the_end; + } + + /* create the snapshots */ + + for(i = 0; i < nb_drives; i++) { + bs1 = drives_table[i].bdrv; + if (bdrv_has_snapshot(bs1)) { + if (must_delete) { + ret = bdrv_snapshot_delete(bs1, old_sn->id_str); + if (ret < 0) { + term_printf("Error while deleting snapshot on '%s'\n", + bdrv_get_device_name(bs1)); + } + } + ret = bdrv_snapshot_create(bs1, sn); + if (ret < 0) { + term_printf("Error while creating snapshot on '%s'\n", + bdrv_get_device_name(bs1)); + } + } + } + + the_end: + if (saved_vm_running) + vm_start(); +} + +void do_loadvm(const char *name) +{ + BlockDriverState *bs, *bs1; + BlockDriverInfo bdi1, *bdi = &bdi1; + QEMUFile *f; + int i, ret; + int saved_vm_running; + + bs = get_bs_snapshots(); + if (!bs) { + term_printf("No block device supports snapshots\n"); + return; + } + + /* Flush all IO requests so they don't interfere with the new state. */ + qemu_aio_flush(); + + saved_vm_running = vm_running; + vm_stop(0); + + for(i = 0; i <= nb_drives; i++) { + bs1 = drives_table[i].bdrv; + if (bdrv_has_snapshot(bs1)) { + ret = bdrv_snapshot_goto(bs1, name); + if (ret < 0) { + if (bs != bs1) + term_printf("Warning: "); + switch(ret) { + case -ENOTSUP: + term_printf("Snapshots not supported on device '%s'\n", + bdrv_get_device_name(bs1)); + break; + case -ENOENT: + term_printf("Could not find snapshot '%s' on device '%s'\n", + name, bdrv_get_device_name(bs1)); + break; + default: + term_printf("Error %d while activating snapshot on '%s'\n", + ret, bdrv_get_device_name(bs1)); + break; + } + /* fatal on snapshot block device */ + if (bs == bs1) + goto the_end; + } + } + } + + if (bdrv_get_info(bs, bdi) < 0 || bdi->vm_state_offset <= 0) { + term_printf("Device %s does not support VM state snapshots\n", + bdrv_get_device_name(bs)); + return; + } + + /* restore the VM state */ + f = qemu_fopen_bdrv(bs, bdi->vm_state_offset, 0); + if (!f) { + term_printf("Could not open VM state file\n"); + goto the_end; + } + ret = qemu_loadvm_state(f); + qemu_fclose(f); + if (ret < 0) { + term_printf("Error %d while loading VM state\n", ret); + } + the_end: + if (saved_vm_running) + vm_start(); +} + +void do_delvm(const char *name) +{ + BlockDriverState *bs, *bs1; + int i, ret; + + bs = get_bs_snapshots(); + if (!bs) { + term_printf("No block device supports snapshots\n"); + return; + } + + for(i = 0; i <= nb_drives; i++) { + bs1 = drives_table[i].bdrv; + if (bdrv_has_snapshot(bs1)) { + ret = bdrv_snapshot_delete(bs1, name); + if (ret < 0) { + if (ret == -ENOTSUP) + term_printf("Snapshots not supported on device '%s'\n", + bdrv_get_device_name(bs1)); + else + term_printf("Error %d while deleting snapshot on '%s'\n", + ret, bdrv_get_device_name(bs1)); + } + } + } +} + +void do_info_snapshots(void) +{ + BlockDriverState *bs, *bs1; + QEMUSnapshotInfo *sn_tab, *sn; + int nb_sns, i; + char buf[256]; + + bs = get_bs_snapshots(); + if (!bs) { + term_printf("No available block device supports snapshots\n"); + return; + } + term_printf("Snapshot devices:"); + for(i = 0; i <= nb_drives; i++) { + bs1 = drives_table[i].bdrv; + if (bdrv_has_snapshot(bs1)) { + if (bs == bs1) + term_printf(" %s", bdrv_get_device_name(bs1)); + } + } + term_printf("\n"); + + nb_sns = bdrv_snapshot_list(bs, &sn_tab); + if (nb_sns < 0) { + term_printf("bdrv_snapshot_list: error %d\n", nb_sns); + return; + } + term_printf("Snapshot list (from %s):\n", bdrv_get_device_name(bs)); + term_printf("%s\n", bdrv_snapshot_dump(buf, sizeof(buf), NULL)); + for(i = 0; i < nb_sns; i++) { + sn = &sn_tab[i]; + term_printf("%s\n", bdrv_snapshot_dump(buf, sizeof(buf), sn)); + } + qemu_free(sn_tab); +} + +/***********************************************************/ +/* cpu save/restore */ + +#if defined(TARGET_I386) + +static void cpu_put_seg(QEMUFile *f, SegmentCache *dt) +{ + qemu_put_be32(f, dt->selector); + qemu_put_betl(f, dt->base); + qemu_put_be32(f, dt->limit); + qemu_put_be32(f, dt->flags); +} + +static void cpu_get_seg(QEMUFile *f, SegmentCache *dt) +{ + dt->selector = qemu_get_be32(f); + dt->base = qemu_get_betl(f); + dt->limit = qemu_get_be32(f); + dt->flags = qemu_get_be32(f); +} + +void cpu_save(QEMUFile *f, void *opaque) +{ + CPUState *env = opaque; + uint16_t fptag, fpus, fpuc, fpregs_format; + uint32_t hflags; + int i; + + for(i = 0; i < CPU_NB_REGS; i++) + qemu_put_betls(f, &env->regs[i]); + qemu_put_betls(f, &env->eip); + qemu_put_betls(f, &env->eflags); + hflags = env->hflags; /* XXX: suppress most of the redundant hflags */ + qemu_put_be32s(f, &hflags); + + /* FPU */ + fpuc = env->fpuc; + fpus = (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11; + fptag = 0; + for(i = 0; i < 8; i++) { + fptag |= ((!env->fptags[i]) << i); + } + + qemu_put_be16s(f, &fpuc); + qemu_put_be16s(f, &fpus); + qemu_put_be16s(f, &fptag); + +#ifdef USE_X86LDOUBLE + fpregs_format = 0; +#else + fpregs_format = 1; +#endif + qemu_put_be16s(f, &fpregs_format); + + for(i = 0; i < 8; i++) { +#ifdef USE_X86LDOUBLE + { + uint64_t mant; + uint16_t exp; + /* we save the real CPU data (in case of MMX usage only 'mant' + contains the MMX register */ + cpu_get_fp80(&mant, &exp, env->fpregs[i].d); + qemu_put_be64(f, mant); + qemu_put_be16(f, exp); + } +#else + /* if we use doubles for float emulation, we save the doubles to + avoid losing information in case of MMX usage. It can give + problems if the image is restored on a CPU where long + doubles are used instead. */ + qemu_put_be64(f, env->fpregs[i].mmx.MMX_Q(0)); +#endif + } + + for(i = 0; i < 6; i++) + cpu_put_seg(f, &env->segs[i]); + cpu_put_seg(f, &env->ldt); + cpu_put_seg(f, &env->tr); + cpu_put_seg(f, &env->gdt); + cpu_put_seg(f, &env->idt); + + qemu_put_be32s(f, &env->sysenter_cs); + qemu_put_be32s(f, &env->sysenter_esp); + qemu_put_be32s(f, &env->sysenter_eip); + + qemu_put_betls(f, &env->cr[0]); + qemu_put_betls(f, &env->cr[2]); + qemu_put_betls(f, &env->cr[3]); + qemu_put_betls(f, &env->cr[4]); + + for(i = 0; i < 8; i++) + qemu_put_betls(f, &env->dr[i]); + + /* MMU */ + qemu_put_be32s(f, &env->a20_mask); + + /* XMM */ + qemu_put_be32s(f, &env->mxcsr); + for(i = 0; i < CPU_NB_REGS; i++) { + qemu_put_be64s(f, &env->xmm_regs[i].XMM_Q(0)); + qemu_put_be64s(f, &env->xmm_regs[i].XMM_Q(1)); + } + +#ifdef TARGET_X86_64 + qemu_put_be64s(f, &env->efer); + qemu_put_be64s(f, &env->star); + qemu_put_be64s(f, &env->lstar); + qemu_put_be64s(f, &env->cstar); + qemu_put_be64s(f, &env->fmask); + qemu_put_be64s(f, &env->kernelgsbase); +#endif + qemu_put_be32s(f, &env->smbase); +} + +#ifdef USE_X86LDOUBLE +/* XXX: add that in a FPU generic layer */ +union x86_longdouble { + uint64_t mant; + uint16_t exp; +}; + +#define MANTD1(fp) (fp & ((1LL << 52) - 1)) +#define EXPBIAS1 1023 +#define EXPD1(fp) ((fp >> 52) & 0x7FF) +#define SIGND1(fp) ((fp >> 32) & 0x80000000) + +static void fp64_to_fp80(union x86_longdouble *p, uint64_t temp) +{ + int e; + /* mantissa */ + p->mant = (MANTD1(temp) << 11) | (1LL << 63); + /* exponent + sign */ + e = EXPD1(temp) - EXPBIAS1 + 16383; + e |= SIGND1(temp) >> 16; + p->exp = e; +} +#endif + +int cpu_load(QEMUFile *f, void *opaque, int version_id) +{ + CPUState *env = opaque; + int i, guess_mmx; + uint32_t hflags; + uint16_t fpus, fpuc, fptag, fpregs_format; + + if (version_id != 3 && version_id != 4) + return -EINVAL; + for(i = 0; i < CPU_NB_REGS; i++) + qemu_get_betls(f, &env->regs[i]); + qemu_get_betls(f, &env->eip); + qemu_get_betls(f, &env->eflags); + qemu_get_be32s(f, &hflags); + + qemu_get_be16s(f, &fpuc); + qemu_get_be16s(f, &fpus); + qemu_get_be16s(f, &fptag); + qemu_get_be16s(f, &fpregs_format); + + /* NOTE: we cannot always restore the FPU state if the image come + from a host with a different 'USE_X86LDOUBLE' define. We guess + if we are in an MMX state to restore correctly in that case. */ + guess_mmx = ((fptag == 0xff) && (fpus & 0x3800) == 0); + for(i = 0; i < 8; i++) { + uint64_t mant; + uint16_t exp; + + switch(fpregs_format) { + case 0: + mant = qemu_get_be64(f); + exp = qemu_get_be16(f); +#ifdef USE_X86LDOUBLE + env->fpregs[i].d = cpu_set_fp80(mant, exp); +#else + /* difficult case */ + if (guess_mmx) + env->fpregs[i].mmx.MMX_Q(0) = mant; + else + env->fpregs[i].d = cpu_set_fp80(mant, exp); +#endif + break; + case 1: + mant = qemu_get_be64(f); +#ifdef USE_X86LDOUBLE + { + union x86_longdouble *p; + /* difficult case */ + p = (void *)&env->fpregs[i]; + if (guess_mmx) { + p->mant = mant; + p->exp = 0xffff; + } else { + fp64_to_fp80(p, mant); + } + } +#else + env->fpregs[i].mmx.MMX_Q(0) = mant; +#endif + break; + default: + return -EINVAL; + } + } + + env->fpuc = fpuc; + /* XXX: restore FPU round state */ + env->fpstt = (fpus >> 11) & 7; + env->fpus = fpus & ~0x3800; + fptag ^= 0xff; + for(i = 0; i < 8; i++) { + env->fptags[i] = (fptag >> i) & 1; + } + + for(i = 0; i < 6; i++) + cpu_get_seg(f, &env->segs[i]); + cpu_get_seg(f, &env->ldt); + cpu_get_seg(f, &env->tr); + cpu_get_seg(f, &env->gdt); + cpu_get_seg(f, &env->idt); + + qemu_get_be32s(f, &env->sysenter_cs); + qemu_get_be32s(f, &env->sysenter_esp); + qemu_get_be32s(f, &env->sysenter_eip); + + qemu_get_betls(f, &env->cr[0]); + qemu_get_betls(f, &env->cr[2]); + qemu_get_betls(f, &env->cr[3]); + qemu_get_betls(f, &env->cr[4]); + + for(i = 0; i < 8; i++) + qemu_get_betls(f, &env->dr[i]); + + /* MMU */ + qemu_get_be32s(f, &env->a20_mask); + + qemu_get_be32s(f, &env->mxcsr); + for(i = 0; i < CPU_NB_REGS; i++) { + qemu_get_be64s(f, &env->xmm_regs[i].XMM_Q(0)); + qemu_get_be64s(f, &env->xmm_regs[i].XMM_Q(1)); + } + +#ifdef TARGET_X86_64 + qemu_get_be64s(f, &env->efer); + qemu_get_be64s(f, &env->star); + qemu_get_be64s(f, &env->lstar); + qemu_get_be64s(f, &env->cstar); + qemu_get_be64s(f, &env->fmask); + qemu_get_be64s(f, &env->kernelgsbase); +#endif + if (version_id >= 4) + qemu_get_be32s(f, &env->smbase); + + /* XXX: compute hflags from scratch, except for CPL and IIF */ + env->hflags = hflags; + tlb_flush(env, 1); + return 0; +} + +#elif defined(TARGET_PPC) +void cpu_save(QEMUFile *f, void *opaque) +{ +} + +int cpu_load(QEMUFile *f, void *opaque, int version_id) +{ + return 0; +} + +#elif defined(TARGET_MIPS) +void cpu_save(QEMUFile *f, void *opaque) +{ +} + +int cpu_load(QEMUFile *f, void *opaque, int version_id) +{ + return 0; +} + +#elif defined(TARGET_SPARC) +void cpu_save(QEMUFile *f, void *opaque) +{ + CPUState *env = opaque; + int i; + uint32_t tmp; + + for(i = 0; i < 8; i++) + qemu_put_betls(f, &env->gregs[i]); + for(i = 0; i < NWINDOWS * 16; i++) + qemu_put_betls(f, &env->regbase[i]); + + /* FPU */ + for(i = 0; i < TARGET_FPREGS; i++) { + union { + float32 f; + uint32_t i; + } u; + u.f = env->fpr[i]; + qemu_put_be32(f, u.i); + } + + qemu_put_betls(f, &env->pc); + qemu_put_betls(f, &env->npc); + qemu_put_betls(f, &env->y); + tmp = GET_PSR(env); + qemu_put_be32(f, tmp); + qemu_put_betls(f, &env->fsr); + qemu_put_betls(f, &env->tbr); +#ifndef TARGET_SPARC64 + qemu_put_be32s(f, &env->wim); + /* MMU */ + for(i = 0; i < 16; i++) + qemu_put_be32s(f, &env->mmuregs[i]); +#endif +} + +int cpu_load(QEMUFile *f, void *opaque, int version_id) +{ + CPUState *env = opaque; + int i; + uint32_t tmp; + + for(i = 0; i < 8; i++) + qemu_get_betls(f, &env->gregs[i]); + for(i = 0; i < NWINDOWS * 16; i++) + qemu_get_betls(f, &env->regbase[i]); + + /* FPU */ + for(i = 0; i < TARGET_FPREGS; i++) { + union { + float32 f; + uint32_t i; + } u; + u.i = qemu_get_be32(f); + env->fpr[i] = u.f; + } + + qemu_get_betls(f, &env->pc); + qemu_get_betls(f, &env->npc); + qemu_get_betls(f, &env->y); + tmp = qemu_get_be32(f); + env->cwp = 0; /* needed to ensure that the wrapping registers are + correctly updated */ + PUT_PSR(env, tmp); + qemu_get_betls(f, &env->fsr); + qemu_get_betls(f, &env->tbr); +#ifndef TARGET_SPARC64 + qemu_get_be32s(f, &env->wim); + /* MMU */ + for(i = 0; i < 16; i++) + qemu_get_be32s(f, &env->mmuregs[i]); +#endif + tlb_flush(env, 1); + return 0; +} + +#elif defined(TARGET_ARM) + +void cpu_save(QEMUFile *f, void *opaque) +{ + int i; + CPUARMState *env = (CPUARMState *)opaque; + + for (i = 0; i < 16; i++) { + qemu_put_be32(f, env->regs[i]); + } + qemu_put_be32(f, cpsr_read(env)); + qemu_put_be32(f, env->spsr); + for (i = 0; i < 6; i++) { + qemu_put_be32(f, env->banked_spsr[i]); + qemu_put_be32(f, env->banked_r13[i]); + qemu_put_be32(f, env->banked_r14[i]); + } + for (i = 0; i < 5; i++) { + qemu_put_be32(f, env->usr_regs[i]); + qemu_put_be32(f, env->fiq_regs[i]); + } + qemu_put_be32(f, env->cp15.c0_cpuid); + qemu_put_be32(f, env->cp15.c0_cachetype); + qemu_put_be32(f, env->cp15.c1_sys); + qemu_put_be32(f, env->cp15.c1_coproc); + qemu_put_be32(f, env->cp15.c1_xscaleauxcr); + qemu_put_be32(f, env->cp15.c2_base0); + qemu_put_be32(f, env->cp15.c2_base1); + qemu_put_be32(f, env->cp15.c2_mask); + qemu_put_be32(f, env->cp15.c2_data); + qemu_put_be32(f, env->cp15.c2_insn); + qemu_put_be32(f, env->cp15.c3); + qemu_put_be32(f, env->cp15.c5_insn); + qemu_put_be32(f, env->cp15.c5_data); + for (i = 0; i < 8; i++) { + qemu_put_be32(f, env->cp15.c6_region[i]); + } + qemu_put_be32(f, env->cp15.c6_insn); + qemu_put_be32(f, env->cp15.c6_data); + qemu_put_be32(f, env->cp15.c9_insn); + qemu_put_be32(f, env->cp15.c9_data); + qemu_put_be32(f, env->cp15.c13_fcse); + qemu_put_be32(f, env->cp15.c13_context); + qemu_put_be32(f, env->cp15.c13_tls1); + qemu_put_be32(f, env->cp15.c13_tls2); + qemu_put_be32(f, env->cp15.c13_tls3); + qemu_put_be32(f, env->cp15.c15_cpar); + + qemu_put_be32(f, env->features); + + if (arm_feature(env, ARM_FEATURE_VFP)) { + for (i = 0; i < 16; i++) { + CPU_DoubleU u; + u.d = env->vfp.regs[i]; + qemu_put_be32(f, u.l.upper); + qemu_put_be32(f, u.l.lower); + } + for (i = 0; i < 16; i++) { + qemu_put_be32(f, env->vfp.xregs[i]); + } + + /* TODO: Should use proper FPSCR access functions. */ + qemu_put_be32(f, env->vfp.vec_len); + qemu_put_be32(f, env->vfp.vec_stride); + + if (arm_feature(env, ARM_FEATURE_VFP3)) { + for (i = 16; i < 32; i++) { + CPU_DoubleU u; + u.d = env->vfp.regs[i]; + qemu_put_be32(f, u.l.upper); + qemu_put_be32(f, u.l.lower); + } + } + } + + if (arm_feature(env, ARM_FEATURE_IWMMXT)) { + for (i = 0; i < 16; i++) { + qemu_put_be64(f, env->iwmmxt.regs[i]); + } + for (i = 0; i < 16; i++) { + qemu_put_be32(f, env->iwmmxt.cregs[i]); + } + } + + if (arm_feature(env, ARM_FEATURE_M)) { + qemu_put_be32(f, env->v7m.other_sp); + qemu_put_be32(f, env->v7m.vecbase); + qemu_put_be32(f, env->v7m.basepri); + qemu_put_be32(f, env->v7m.control); + qemu_put_be32(f, env->v7m.current_sp); + qemu_put_be32(f, env->v7m.exception); + } +} + +int cpu_load(QEMUFile *f, void *opaque, int version_id) +{ + CPUARMState *env = (CPUARMState *)opaque; + int i; + + if (version_id != ARM_CPU_SAVE_VERSION) + return -EINVAL; + + for (i = 0; i < 16; i++) { + env->regs[i] = qemu_get_be32(f); + } + cpsr_write(env, qemu_get_be32(f), 0xffffffff); + env->spsr = qemu_get_be32(f); + for (i = 0; i < 6; i++) { + env->banked_spsr[i] = qemu_get_be32(f); + env->banked_r13[i] = qemu_get_be32(f); + env->banked_r14[i] = qemu_get_be32(f); + } + for (i = 0; i < 5; i++) { + env->usr_regs[i] = qemu_get_be32(f); + env->fiq_regs[i] = qemu_get_be32(f); + } + env->cp15.c0_cpuid = qemu_get_be32(f); + env->cp15.c0_cachetype = qemu_get_be32(f); + env->cp15.c1_sys = qemu_get_be32(f); + env->cp15.c1_coproc = qemu_get_be32(f); + env->cp15.c1_xscaleauxcr = qemu_get_be32(f); + env->cp15.c2_base0 = qemu_get_be32(f); + env->cp15.c2_base1 = qemu_get_be32(f); + env->cp15.c2_mask = qemu_get_be32(f); + env->cp15.c2_data = qemu_get_be32(f); + env->cp15.c2_insn = qemu_get_be32(f); + env->cp15.c3 = qemu_get_be32(f); + env->cp15.c5_insn = qemu_get_be32(f); + env->cp15.c5_data = qemu_get_be32(f); + for (i = 0; i < 8; i++) { + env->cp15.c6_region[i] = qemu_get_be32(f); + } + env->cp15.c6_insn = qemu_get_be32(f); + env->cp15.c6_data = qemu_get_be32(f); + env->cp15.c9_insn = qemu_get_be32(f); + env->cp15.c9_data = qemu_get_be32(f); + env->cp15.c13_fcse = qemu_get_be32(f); + env->cp15.c13_context = qemu_get_be32(f); + env->cp15.c13_tls1 = qemu_get_be32(f); + env->cp15.c13_tls2 = qemu_get_be32(f); + env->cp15.c13_tls3 = qemu_get_be32(f); + env->cp15.c15_cpar = qemu_get_be32(f); + + env->features = qemu_get_be32(f); + + if (arm_feature(env, ARM_FEATURE_VFP)) { + for (i = 0; i < 16; i++) { + CPU_DoubleU u; + u.l.upper = qemu_get_be32(f); + u.l.lower = qemu_get_be32(f); + env->vfp.regs[i] = u.d; + } + for (i = 0; i < 16; i++) { + env->vfp.xregs[i] = qemu_get_be32(f); + } + + /* TODO: Should use proper FPSCR access functions. */ + env->vfp.vec_len = qemu_get_be32(f); + env->vfp.vec_stride = qemu_get_be32(f); + + if (arm_feature(env, ARM_FEATURE_VFP3)) { + for (i = 0; i < 16; i++) { + CPU_DoubleU u; + u.l.upper = qemu_get_be32(f); + u.l.lower = qemu_get_be32(f); + env->vfp.regs[i] = u.d; + } + } + } + + if (arm_feature(env, ARM_FEATURE_IWMMXT)) { + for (i = 0; i < 16; i++) { + env->iwmmxt.regs[i] = qemu_get_be64(f); + } + for (i = 0; i < 16; i++) { + env->iwmmxt.cregs[i] = qemu_get_be32(f); + } + } + + if (arm_feature(env, ARM_FEATURE_M)) { + env->v7m.other_sp = qemu_get_be32(f); + env->v7m.vecbase = qemu_get_be32(f); + env->v7m.basepri = qemu_get_be32(f); + env->v7m.control = qemu_get_be32(f); + env->v7m.current_sp = qemu_get_be32(f); + env->v7m.exception = qemu_get_be32(f); + } + + return 0; +} + +#else + +//#warning No CPU save/restore functions + +#endif + +/***********************************************************/ +/* ram save/restore */ + +static int ram_get_page(QEMUFile *f, uint8_t *buf, int len) +{ + int v; + + v = qemu_get_byte(f); + switch(v) { + case 0: + if (qemu_get_buffer(f, buf, len) != len) + return -EIO; + break; + case 1: + v = qemu_get_byte(f); + memset(buf, v, len); + break; + default: + return -EINVAL; + } + return 0; +} + +static int ram_load_v1(QEMUFile *f, void *opaque) +{ + int i, ret; + + if (qemu_get_be32(f) != phys_ram_size) + return -EINVAL; + for(i = 0; i < phys_ram_size; i+= TARGET_PAGE_SIZE) { + ret = ram_get_page(f, phys_ram_base + i, TARGET_PAGE_SIZE); + if (ret) + return ret; + } + return 0; +} + +#define BDRV_HASH_BLOCK_SIZE 1024 +#define IOBUF_SIZE 4096 +#define RAM_CBLOCK_MAGIC 0xfabe + +typedef struct RamCompressState { + z_stream zstream; + QEMUFile *f; + uint8_t buf[IOBUF_SIZE]; +} RamCompressState; + +static int ram_compress_open(RamCompressState *s, QEMUFile *f) +{ + int ret; + memset(s, 0, sizeof(*s)); + s->f = f; + ret = deflateInit2(&s->zstream, 1, + Z_DEFLATED, 15, + 9, Z_DEFAULT_STRATEGY); + if (ret != Z_OK) + return -1; + s->zstream.avail_out = IOBUF_SIZE; + s->zstream.next_out = s->buf; + return 0; +} + +static void ram_put_cblock(RamCompressState *s, const uint8_t *buf, int len) +{ + qemu_put_be16(s->f, RAM_CBLOCK_MAGIC); + qemu_put_be16(s->f, len); + qemu_put_buffer(s->f, buf, len); +} + +static int ram_compress_buf(RamCompressState *s, const uint8_t *buf, int len) +{ + int ret; + + s->zstream.avail_in = len; + s->zstream.next_in = (uint8_t *)buf; + while (s->zstream.avail_in > 0) { + ret = deflate(&s->zstream, Z_NO_FLUSH); + if (ret != Z_OK) + return -1; + if (s->zstream.avail_out == 0) { + ram_put_cblock(s, s->buf, IOBUF_SIZE); + s->zstream.avail_out = IOBUF_SIZE; + s->zstream.next_out = s->buf; + } + } + return 0; +} + +static void ram_compress_close(RamCompressState *s) +{ + int len, ret; + + /* compress last bytes */ + for(;;) { + ret = deflate(&s->zstream, Z_FINISH); + if (ret == Z_OK || ret == Z_STREAM_END) { + len = IOBUF_SIZE - s->zstream.avail_out; + if (len > 0) { + ram_put_cblock(s, s->buf, len); + } + s->zstream.avail_out = IOBUF_SIZE; + s->zstream.next_out = s->buf; + if (ret == Z_STREAM_END) + break; + } else { + goto fail; + } + } +fail: + deflateEnd(&s->zstream); +} + +typedef struct RamDecompressState { + z_stream zstream; + QEMUFile *f; + uint8_t buf[IOBUF_SIZE]; +} RamDecompressState; + +static int ram_decompress_open(RamDecompressState *s, QEMUFile *f) +{ + int ret; + memset(s, 0, sizeof(*s)); + s->f = f; + ret = inflateInit(&s->zstream); + if (ret != Z_OK) + return -1; + return 0; +} + +static int ram_decompress_buf(RamDecompressState *s, uint8_t *buf, int len) +{ + int ret, clen; + + s->zstream.avail_out = len; + s->zstream.next_out = buf; + while (s->zstream.avail_out > 0) { + if (s->zstream.avail_in == 0) { + if (qemu_get_be16(s->f) != RAM_CBLOCK_MAGIC) + return -1; + clen = qemu_get_be16(s->f); + if (clen > IOBUF_SIZE) + return -1; + qemu_get_buffer(s->f, s->buf, clen); + s->zstream.avail_in = clen; + s->zstream.next_in = s->buf; + } + ret = inflate(&s->zstream, Z_PARTIAL_FLUSH); + if (ret != Z_OK && ret != Z_STREAM_END) { + return -1; + } + } + return 0; +} + +static void ram_decompress_close(RamDecompressState *s) +{ + inflateEnd(&s->zstream); +} + +static void ram_save(QEMUFile *f, void *opaque) +{ + int i; + RamCompressState s1, *s = &s1; + uint8_t buf[10]; + + qemu_put_be32(f, phys_ram_size); + if (ram_compress_open(s, f) < 0) + return; + for(i = 0; i < phys_ram_size; i+= BDRV_HASH_BLOCK_SIZE) { +#if 0 + if (tight_savevm_enabled) { + int64_t sector_num; + int j; + + /* find if the memory block is available on a virtual + block device */ + sector_num = -1; + for(j = 0; j < nb_drives; j++) { + sector_num = bdrv_hash_find(drives_table[j].bdrv, + phys_ram_base + i, + BDRV_HASH_BLOCK_SIZE); + if (sector_num >= 0) + break; + } + if (j == nb_drives) + goto normal_compress; + buf[0] = 1; + buf[1] = j; + cpu_to_be64wu((uint64_t *)(buf + 2), sector_num); + ram_compress_buf(s, buf, 10); + } else +#endif + { + // normal_compress: + buf[0] = 0; + ram_compress_buf(s, buf, 1); + ram_compress_buf(s, phys_ram_base + i, BDRV_HASH_BLOCK_SIZE); + } + } + ram_compress_close(s); +} + +static int ram_load(QEMUFile *f, void *opaque, int version_id) +{ + RamDecompressState s1, *s = &s1; + uint8_t buf[10]; + int i; + + if (version_id == 1) + return ram_load_v1(f, opaque); + if (version_id != 2) + return -EINVAL; + if (qemu_get_be32(f) != phys_ram_size) + return -EINVAL; + if (ram_decompress_open(s, f) < 0) + return -EINVAL; + for(i = 0; i < phys_ram_size; i+= BDRV_HASH_BLOCK_SIZE) { + if (ram_decompress_buf(s, buf, 1) < 0) { + fprintf(stderr, "Error while reading ram block header\n"); + goto error; + } + if (buf[0] == 0) { + if (ram_decompress_buf(s, phys_ram_base + i, BDRV_HASH_BLOCK_SIZE) < 0) { + fprintf(stderr, "Error while reading ram block address=0x%08x", i); + goto error; + } + } else +#if 0 + if (buf[0] == 1) { + int bs_index; + int64_t sector_num; + + ram_decompress_buf(s, buf + 1, 9); + bs_index = buf[1]; + sector_num = be64_to_cpupu((const uint64_t *)(buf + 2)); + if (bs_index >= nb_drives) { + fprintf(stderr, "Invalid block device index %d\n", bs_index); + goto error; + } + if (bdrv_read(drives_table[bs_index].bdrv, sector_num, + phys_ram_base + i, + BDRV_HASH_BLOCK_SIZE / 512) < 0) { + fprintf(stderr, "Error while reading sector %d:%" PRId64 "\n", + bs_index, sector_num); + goto error; + } + } else +#endif + { + error: + printf("Error block header\n"); + return -EINVAL; + } + } + ram_decompress_close(s); + return 0; +} + +/***********************************************************/ +/* bottom halves (can be seen as timers which expire ASAP) */ + +struct QEMUBH { + QEMUBHFunc *cb; + void *opaque; + int scheduled; + QEMUBH *next; +}; + +static QEMUBH *first_bh = NULL; + +QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque) +{ + QEMUBH *bh; + bh = qemu_mallocz(sizeof(QEMUBH)); + if (!bh) + return NULL; + bh->cb = cb; + bh->opaque = opaque; + return bh; +} + +int qemu_bh_poll(void) +{ + QEMUBH *bh, **pbh; + int ret; + + ret = 0; + for(;;) { + pbh = &first_bh; + bh = *pbh; + if (!bh) + break; + ret = 1; + *pbh = bh->next; + bh->scheduled = 0; + bh->cb(bh->opaque); + } + return ret; +} + +void qemu_bh_schedule(QEMUBH *bh) +{ + CPUState *env = cpu_single_env; + if (bh->scheduled) + return; + bh->scheduled = 1; + bh->next = first_bh; + first_bh = bh; + + /* stop the currently executing CPU to execute the BH ASAP */ + if (env) { + cpu_interrupt(env, CPU_INTERRUPT_EXIT); + } +} + +void qemu_bh_cancel(QEMUBH *bh) +{ + QEMUBH **pbh; + if (bh->scheduled) { + pbh = &first_bh; + while (*pbh != bh) + pbh = &(*pbh)->next; + *pbh = bh->next; + bh->scheduled = 0; + } +} + +void qemu_bh_delete(QEMUBH *bh) +{ + qemu_bh_cancel(bh); + qemu_free(bh); +} + +/***********************************************************/ +/* machine registration */ + +QEMUMachine *first_machine = NULL; + +int qemu_register_machine(QEMUMachine *m) +{ + QEMUMachine **pm; + pm = &first_machine; + while (*pm != NULL) + pm = &(*pm)->next; + m->next = NULL; + *pm = m; + return 0; +} + +static QEMUMachine *find_machine(const char *name) +{ + QEMUMachine *m; + + for(m = first_machine; m != NULL; m = m->next) { + if (!strcmp(m->name, name)) + return m; + } + return NULL; +} + +/***********************************************************/ +/* main execution loop */ + +static void gui_update(void *opaque) +{ + DisplayState *ds = opaque; + ds->dpy_refresh(ds); + qemu_mod_timer(ds->gui_timer, GUI_REFRESH_INTERVAL + qemu_get_clock(rt_clock)); +} + +struct vm_change_state_entry { + VMChangeStateHandler *cb; + void *opaque; + LIST_ENTRY (vm_change_state_entry) entries; +}; + +static LIST_HEAD(vm_change_state_head, vm_change_state_entry) vm_change_state_head; + +VMChangeStateEntry *qemu_add_vm_change_state_handler(VMChangeStateHandler *cb, + void *opaque) +{ + VMChangeStateEntry *e; + + e = qemu_mallocz(sizeof (*e)); + if (!e) + return NULL; + + e->cb = cb; + e->opaque = opaque; + LIST_INSERT_HEAD(&vm_change_state_head, e, entries); + return e; +} + +void qemu_del_vm_change_state_handler(VMChangeStateEntry *e) +{ + LIST_REMOVE (e, entries); + qemu_free (e); +} + +static void vm_state_notify(int running) +{ + VMChangeStateEntry *e; + + for (e = vm_change_state_head.lh_first; e; e = e->entries.le_next) { + e->cb(e->opaque, running); + } +} + +/* XXX: support several handlers */ +static VMStopHandler *vm_stop_cb; +static void *vm_stop_opaque; + +int qemu_add_vm_stop_handler(VMStopHandler *cb, void *opaque) +{ + vm_stop_cb = cb; + vm_stop_opaque = opaque; + return 0; +} + +void qemu_del_vm_stop_handler(VMStopHandler *cb, void *opaque) +{ + vm_stop_cb = NULL; +} + +void vm_start(void) +{ + if (!vm_running) { + cpu_enable_ticks(); + vm_running = 1; + vm_state_notify(1); + qemu_rearm_alarm_timer(alarm_timer); + } +} + +void vm_stop(int reason) +{ + if (vm_running) { + cpu_disable_ticks(); + vm_running = 0; + if (reason != 0) { + if (vm_stop_cb) { + vm_stop_cb(vm_stop_opaque, reason); + } + } + vm_state_notify(0); + } +} + +/* reset/shutdown handler */ + +typedef struct QEMUResetEntry { + QEMUResetHandler *func; + void *opaque; + struct QEMUResetEntry *next; +} QEMUResetEntry; + +static QEMUResetEntry *first_reset_entry; +static int reset_requested; +static int shutdown_requested; +static int powerdown_requested; + +void qemu_register_reset(QEMUResetHandler *func, void *opaque) +{ + QEMUResetEntry **pre, *re; + + pre = &first_reset_entry; + while (*pre != NULL) + pre = &(*pre)->next; + re = qemu_mallocz(sizeof(QEMUResetEntry)); + re->func = func; + re->opaque = opaque; + re->next = NULL; + *pre = re; +} + +static void qemu_system_reset(void) +{ + QEMUResetEntry *re; + + /* reset all devices */ + for(re = first_reset_entry; re != NULL; re = re->next) { + re->func(re->opaque); + } +} + +void qemu_system_reset_request(void) +{ + if (no_reboot) { + shutdown_requested = 1; + } else { + reset_requested = 1; + } + if (cpu_single_env) + cpu_interrupt(cpu_single_env, CPU_INTERRUPT_EXIT); +} + +void qemu_system_shutdown_request(void) +{ + shutdown_requested = 1; + if (cpu_single_env) + cpu_interrupt(cpu_single_env, CPU_INTERRUPT_EXIT); +} + +void qemu_system_powerdown_request(void) +{ + powerdown_requested = 1; + if (cpu_single_env) + cpu_interrupt(cpu_single_env, CPU_INTERRUPT_EXIT); +} + +void main_loop_wait(int timeout) +{ + IOHandlerRecord *ioh; + fd_set rfds, wfds, xfds; + int ret, nfds; +#ifdef _WIN32 + int ret2, i; +#endif + struct timeval tv; + PollingEntry *pe; + + + /* XXX: need to suppress polling by better using win32 events */ + ret = 0; + for(pe = first_polling_entry; pe != NULL; pe = pe->next) { + ret |= pe->func(pe->opaque); + } +#ifdef _WIN32 + if (ret == 0) { + int err; + WaitObjects *w = &wait_objects; + + ret = WaitForMultipleObjects(w->num, w->events, FALSE, timeout); + if (WAIT_OBJECT_0 + 0 <= ret && ret <= WAIT_OBJECT_0 + w->num - 1) { + if (w->func[ret - WAIT_OBJECT_0]) + w->func[ret - WAIT_OBJECT_0](w->opaque[ret - WAIT_OBJECT_0]); + + /* Check for additional signaled events */ + for(i = (ret - WAIT_OBJECT_0 + 1); i < w->num; i++) { + + /* Check if event is signaled */ + ret2 = WaitForSingleObject(w->events[i], 0); + if(ret2 == WAIT_OBJECT_0) { + if (w->func[i]) + w->func[i](w->opaque[i]); + } else if (ret2 == WAIT_TIMEOUT) { + } else { + err = GetLastError(); + fprintf(stderr, "WaitForSingleObject error %d %d\n", i, err); + } + } + } else if (ret == WAIT_TIMEOUT) { + } else { + err = GetLastError(); + fprintf(stderr, "WaitForMultipleObjects error %d %d\n", ret, err); + } + } +#endif + /* poll any events */ + /* XXX: separate device handlers from system ones */ + nfds = -1; + FD_ZERO(&rfds); + FD_ZERO(&wfds); + FD_ZERO(&xfds); + for(ioh = first_io_handler; ioh != NULL; ioh = ioh->next) { + if (ioh->deleted) + continue; + if (ioh->fd_read && + (!ioh->fd_read_poll || + ioh->fd_read_poll(ioh->opaque) != 0)) { + FD_SET(ioh->fd, &rfds); + if (ioh->fd > nfds) + nfds = ioh->fd; + } + if (ioh->fd_write) { + FD_SET(ioh->fd, &wfds); + if (ioh->fd > nfds) + nfds = ioh->fd; + } + } + + tv.tv_sec = 0; +#ifdef _WIN32 + tv.tv_usec = 0; +#else + tv.tv_usec = timeout * 1000; +#endif +#if defined(CONFIG_SLIRP) + if (slirp_inited) { + slirp_select_fill(&nfds, &rfds, &wfds, &xfds); + } +#endif + ret = select(nfds + 1, &rfds, &wfds, &xfds, &tv); + if (ret > 0) { + IOHandlerRecord **pioh; + + for(ioh = first_io_handler; ioh != NULL; ioh = ioh->next) { + if (!ioh->deleted && ioh->fd_read && FD_ISSET(ioh->fd, &rfds)) { + ioh->fd_read(ioh->opaque); + } + if (!ioh->deleted && ioh->fd_write && FD_ISSET(ioh->fd, &wfds)) { + ioh->fd_write(ioh->opaque); + } + } + + /* remove deleted IO handlers */ + pioh = &first_io_handler; + while (*pioh) { + ioh = *pioh; + if (ioh->deleted) { + *pioh = ioh->next; + qemu_free(ioh); + } else + pioh = &ioh->next; + } + } +#if defined(CONFIG_SLIRP) + if (slirp_inited) { + if (ret < 0) { + FD_ZERO(&rfds); + FD_ZERO(&wfds); + FD_ZERO(&xfds); + } + slirp_select_poll(&rfds, &wfds, &xfds); + } +#endif + qemu_aio_poll(); + + if (vm_running) { + qemu_run_timers(&active_timers[QEMU_TIMER_VIRTUAL], + qemu_get_clock(vm_clock)); + /* run dma transfers, if any */ + DMA_run(); + } + + /* real time timers */ + qemu_run_timers(&active_timers[QEMU_TIMER_REALTIME], + qemu_get_clock(rt_clock)); + + if (alarm_timer->flags & ALARM_FLAG_EXPIRED) { + alarm_timer->flags &= ~(ALARM_FLAG_EXPIRED); + qemu_rearm_alarm_timer(alarm_timer); + } + + /* Check bottom-halves last in case any of the earlier events triggered + them. */ + qemu_bh_poll(); + +} + +static int main_loop(void) +{ + int ret, timeout; +#ifdef CONFIG_PROFILER + int64_t ti; +#endif + CPUState *env; + + cur_cpu = first_cpu; + next_cpu = cur_cpu->next_cpu ?: first_cpu; + for(;;) { + if (vm_running) { + + for(;;) { + /* get next cpu */ + env = next_cpu; +#ifdef CONFIG_PROFILER + ti = profile_getclock(); +#endif + ret = cpu_exec(env); +#ifdef CONFIG_PROFILER + qemu_time += profile_getclock() - ti; +#endif + next_cpu = env->next_cpu ?: first_cpu; + if (event_pending) { + ret = EXCP_INTERRUPT; + event_pending = 0; + break; + } + if (ret == EXCP_HLT) { + /* Give the next CPU a chance to run. */ + cur_cpu = env; + continue; + } + if (ret != EXCP_HALTED) + break; + /* all CPUs are halted ? */ + if (env == cur_cpu) + break; + } + cur_cpu = env; + + if (shutdown_requested) { + ret = EXCP_INTERRUPT; + break; + } + if (reset_requested) { + reset_requested = 0; + qemu_system_reset(); + ret = EXCP_INTERRUPT; + } + if (powerdown_requested) { + powerdown_requested = 0; + qemu_system_powerdown(); + ret = EXCP_INTERRUPT; + } + if (ret == EXCP_DEBUG) { + vm_stop(EXCP_DEBUG); + } + /* If all cpus are halted then wait until the next IRQ */ + /* XXX: use timeout computed from timers */ + if (ret == EXCP_HALTED) + timeout = 10; + else + timeout = 0; + } else { + timeout = 10; + } +#ifdef CONFIG_PROFILER + ti = profile_getclock(); +#endif + main_loop_wait(timeout); +#ifdef CONFIG_PROFILER + dev_time += profile_getclock() - ti; +#endif + } + cpu_disable_ticks(); + return ret; +} + +static void help(int exitcode) +{ + printf("QEMU PC emulator version " QEMU_VERSION ", Copyright (c) 2003-2008 Fabrice Bellard\n" + "usage: %s [options] [disk_image]\n" + "\n" + "'disk_image' is a raw hard image image for IDE hard disk 0\n" + "\n" + "Standard options:\n" + "-M machine select emulated machine (-M ? for list)\n" + "-cpu cpu select CPU (-cpu ? for list)\n" + "-fda/-fdb file use 'file' as floppy disk 0/1 image\n" + "-hda/-hdb file use 'file' as IDE hard disk 0/1 image\n" + "-hdc/-hdd file use 'file' as IDE hard disk 2/3 image\n" + "-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)\n" + "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][index=i]\n" + " [,cyls=c,heads=h,secs=s[,trans=t]][snapshot=on|off]" + " [,cache=on|off]\n" + " use 'file' as a drive image\n" + "-mtdblock file use 'file' as on-board Flash memory image\n" + "-sd file use 'file' as SecureDigital card image\n" + "-pflash file use 'file' as a parallel flash image\n" + "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n" + "-snapshot write to temporary files instead of disk image files\n" +#ifdef CONFIG_SDL + "-no-frame open SDL window without a frame and window decorations\n" + "-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n" + "-no-quit disable SDL window close capability\n" +#endif +#ifdef TARGET_I386 + "-no-fd-bootchk disable boot signature checking for floppy disks\n" +#endif + "-m megs set virtual RAM size to megs MB [default=%d]\n" + "-smp n set the number of CPUs to 'n' [default=1]\n" + "-nographic disable graphical output and redirect serial I/Os to console\n" + "-portrait rotate graphical output 90 deg left (only PXA LCD)\n" +#ifndef _WIN32 + "-k language use keyboard layout (for example \"fr\" for French)\n" +#endif +#ifdef HAS_AUDIO + "-audio-help print list of audio drivers and their options\n" + "-soundhw c1,... enable audio support\n" + " and only specified sound cards (comma separated list)\n" + " use -soundhw ? to get the list of supported cards\n" + " use -soundhw all to enable all of them\n" +#endif + "-localtime set the real time clock to local time [default=utc]\n" + "-full-screen start in full screen\n" +#ifdef TARGET_I386 + "-win2k-hack use it when installing Windows 2000 to avoid a disk full bug\n" +#endif + "-usb enable the USB driver (will be the default soon)\n" + "-usbdevice name add the host or guest USB device 'name'\n" +#if defined(TARGET_PPC) || defined(TARGET_SPARC) + "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n" +#endif + "-name string set the name of the guest\n" + "\n" + "Network options:\n" + "-net nic[,vlan=n][,macaddr=addr][,model=type]\n" + " create a new Network Interface Card and connect it to VLAN 'n'\n" +#ifdef CONFIG_SLIRP + "-net user[,vlan=n][,hostname=host]\n" + " connect the user mode network stack to VLAN 'n' and send\n" + " hostname 'host' to DHCP clients\n" +#endif +#ifdef _WIN32 + "-net tap[,vlan=n],ifname=name\n" + " connect the host TAP network interface to VLAN 'n'\n" +#else + "-net tap[,vlan=n][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n" + " connect the host TAP network interface to VLAN 'n' and use the\n" + " network scripts 'file' (default=%s)\n" + " and 'dfile' (default=%s);\n" + " use '[down]script=no' to disable script execution;\n" + " use 'fd=h' to connect to an already opened TAP interface\n" +#endif + "-net socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]\n" + " connect the vlan 'n' to another VLAN using a socket connection\n" + "-net socket[,vlan=n][,fd=h][,mcast=maddr:port]\n" + " connect the vlan 'n' to multicast maddr and port\n" + "-net none use it alone to have zero network devices; if no -net option\n" + " is provided, the default is '-net nic -net user'\n" + "\n" +#ifdef CONFIG_SLIRP + "-tftp dir allow tftp access to files in dir [-net user]\n" + "-bootp file advertise file in BOOTP replies\n" +#ifndef _WIN32 + "-smb dir allow SMB access to files in 'dir' [-net user]\n" +#endif + "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n" + " redirect TCP or UDP connections from host to guest [-net user]\n" +#endif + "\n" + "Linux boot specific:\n" + "-kernel bzImage use 'bzImage' as kernel image\n" + "-append cmdline use 'cmdline' as kernel command line\n" + "-initrd file use 'file' as initial ram disk\n" + "\n" + "Debug/Expert options:\n" + "-monitor dev redirect the monitor to char device 'dev'\n" + "-serial dev redirect the serial port to char device 'dev'\n" + "-parallel dev redirect the parallel port to char device 'dev'\n" + "-pidfile file Write PID to 'file'\n" + "-S freeze CPU at startup (use 'c' to start execution)\n" + "-s wait gdb connection to port\n" + "-p port set gdb connection port [default=%s]\n" + "-d item1,... output log to %s (use -d ? for a list of log items)\n" + "-hdachs c,h,s[,t] force hard disk 0 physical geometry and the optional BIOS\n" + " translation (t=none or lba) (usually qemu can guess them)\n" + "-L path set the directory for the BIOS, VGA BIOS and keymaps\n" +#ifdef USE_KQEMU + "-kernel-kqemu enable KQEMU full virtualization (default is user mode only)\n" + "-no-kqemu disable KQEMU kernel module usage\n" +#endif +#ifdef TARGET_I386 + "-std-vga simulate a standard VGA card with VESA Bochs Extensions\n" + " (default is CL-GD5446 PCI VGA)\n" + "-no-acpi disable ACPI\n" +#endif + "-no-reboot exit instead of rebooting\n" + "-loadvm file start right away with a saved state (loadvm in monitor)\n" + "-vnc display start a VNC server on display\n" +#ifndef _WIN32 + "-daemonize daemonize QEMU after initializing\n" +#endif + "-option-rom rom load a file, rom, into the option ROM space\n" +#ifdef TARGET_SPARC + "-prom-env variable=value set OpenBIOS nvram variables\n" +#endif + "-clock force the use of the given methods for timer alarm.\n" + " To see what timers are available use -clock help\n" + "\n" + "During emulation, the following keys are useful:\n" + "ctrl-alt-f toggle full screen\n" + "ctrl-alt-n switch to virtual console 'n'\n" + "ctrl-alt toggle mouse and keyboard grab\n" + "\n" + "When using -nographic, press 'ctrl-a h' to get some help.\n" + , + "qemu", + DEFAULT_RAM_SIZE, +#ifndef _WIN32 + DEFAULT_NETWORK_SCRIPT, + DEFAULT_NETWORK_DOWN_SCRIPT, +#endif + DEFAULT_GDBSTUB_PORT, + "/tmp/qemu.log"); + exit(exitcode); +} + +#define HAS_ARG 0x0001 + +enum { + QEMU_OPTION_h, + + QEMU_OPTION_M, + QEMU_OPTION_cpu, + QEMU_OPTION_fda, + QEMU_OPTION_fdb, + QEMU_OPTION_hda, + QEMU_OPTION_hdb, + QEMU_OPTION_hdc, + QEMU_OPTION_hdd, + QEMU_OPTION_drive, + QEMU_OPTION_cdrom, + QEMU_OPTION_mtdblock, + QEMU_OPTION_sd, + QEMU_OPTION_pflash, + QEMU_OPTION_boot, + QEMU_OPTION_snapshot, +#ifdef TARGET_I386 + QEMU_OPTION_no_fd_bootchk, +#endif + QEMU_OPTION_m, + QEMU_OPTION_nographic, + QEMU_OPTION_portrait, +#ifdef HAS_AUDIO + QEMU_OPTION_audio_help, + QEMU_OPTION_soundhw, +#endif + + QEMU_OPTION_net, + QEMU_OPTION_tftp, + QEMU_OPTION_bootp, + QEMU_OPTION_smb, + QEMU_OPTION_redir, + + QEMU_OPTION_kernel, + QEMU_OPTION_append, + QEMU_OPTION_initrd, + + QEMU_OPTION_S, + QEMU_OPTION_s, + QEMU_OPTION_p, + QEMU_OPTION_d, + QEMU_OPTION_hdachs, + QEMU_OPTION_L, + QEMU_OPTION_bios, + QEMU_OPTION_no_code_copy, + QEMU_OPTION_k, + QEMU_OPTION_localtime, + QEMU_OPTION_cirrusvga, + QEMU_OPTION_vmsvga, + QEMU_OPTION_g, + QEMU_OPTION_std_vga, + QEMU_OPTION_echr, + QEMU_OPTION_monitor, + QEMU_OPTION_serial, + QEMU_OPTION_parallel, + QEMU_OPTION_loadvm, + QEMU_OPTION_full_screen, + QEMU_OPTION_no_frame, + QEMU_OPTION_alt_grab, + QEMU_OPTION_no_quit, + QEMU_OPTION_pidfile, + QEMU_OPTION_no_kqemu, + QEMU_OPTION_kernel_kqemu, + QEMU_OPTION_win2k_hack, + QEMU_OPTION_usb, + QEMU_OPTION_usbdevice, + QEMU_OPTION_smp, + QEMU_OPTION_vnc, + QEMU_OPTION_no_acpi, + QEMU_OPTION_no_reboot, + QEMU_OPTION_show_cursor, + QEMU_OPTION_daemonize, + QEMU_OPTION_option_rom, + QEMU_OPTION_semihosting, + QEMU_OPTION_name, + QEMU_OPTION_prom_env, + QEMU_OPTION_old_param, + QEMU_OPTION_clock, + QEMU_OPTION_startdate, +}; + +typedef struct QEMUOption { + const char *name; + int flags; + int index; +} QEMUOption; + +const QEMUOption qemu_options[] = { + { "h", 0, QEMU_OPTION_h }, + { "help", 0, QEMU_OPTION_h }, + + { "M", HAS_ARG, QEMU_OPTION_M }, + { "cpu", HAS_ARG, QEMU_OPTION_cpu }, + { "fda", HAS_ARG, QEMU_OPTION_fda }, + { "fdb", HAS_ARG, QEMU_OPTION_fdb }, + { "hda", HAS_ARG, QEMU_OPTION_hda }, + { "hdb", HAS_ARG, QEMU_OPTION_hdb }, + { "hdc", HAS_ARG, QEMU_OPTION_hdc }, + { "hdd", HAS_ARG, QEMU_OPTION_hdd }, + { "drive", HAS_ARG, QEMU_OPTION_drive }, + { "cdrom", HAS_ARG, QEMU_OPTION_cdrom }, + { "mtdblock", HAS_ARG, QEMU_OPTION_mtdblock }, + { "sd", HAS_ARG, QEMU_OPTION_sd }, + { "pflash", HAS_ARG, QEMU_OPTION_pflash }, + { "boot", HAS_ARG, QEMU_OPTION_boot }, + { "snapshot", 0, QEMU_OPTION_snapshot }, +#ifdef TARGET_I386 + { "no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk }, +#endif + { "m", HAS_ARG, QEMU_OPTION_m }, + { "nographic", 0, QEMU_OPTION_nographic }, + { "portrait", 0, QEMU_OPTION_portrait }, + { "k", HAS_ARG, QEMU_OPTION_k }, +#ifdef HAS_AUDIO + { "audio-help", 0, QEMU_OPTION_audio_help }, + { "soundhw", HAS_ARG, QEMU_OPTION_soundhw }, +#endif + + { "net", HAS_ARG, QEMU_OPTION_net}, +#ifdef CONFIG_SLIRP + { "tftp", HAS_ARG, QEMU_OPTION_tftp }, + { "bootp", HAS_ARG, QEMU_OPTION_bootp }, +#ifndef _WIN32 + { "smb", HAS_ARG, QEMU_OPTION_smb }, +#endif + { "redir", HAS_ARG, QEMU_OPTION_redir }, +#endif + + { "kernel", HAS_ARG, QEMU_OPTION_kernel }, + { "append", HAS_ARG, QEMU_OPTION_append }, + { "initrd", HAS_ARG, QEMU_OPTION_initrd }, + + { "S", 0, QEMU_OPTION_S }, + { "s", 0, QEMU_OPTION_s }, + { "p", HAS_ARG, QEMU_OPTION_p }, + { "d", HAS_ARG, QEMU_OPTION_d }, + { "hdachs", HAS_ARG, QEMU_OPTION_hdachs }, + { "L", HAS_ARG, QEMU_OPTION_L }, + { "bios", HAS_ARG, QEMU_OPTION_bios }, + { "no-code-copy", 0, QEMU_OPTION_no_code_copy }, +#ifdef USE_KQEMU + { "no-kqemu", 0, QEMU_OPTION_no_kqemu }, + { "kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu }, +#endif +#if defined(TARGET_PPC) || defined(TARGET_SPARC) + { "g", 1, QEMU_OPTION_g }, +#endif + { "localtime", 0, QEMU_OPTION_localtime }, + { "std-vga", 0, QEMU_OPTION_std_vga }, + { "echr", HAS_ARG, QEMU_OPTION_echr }, + { "monitor", HAS_ARG, QEMU_OPTION_monitor }, + { "serial", HAS_ARG, QEMU_OPTION_serial }, + { "parallel", HAS_ARG, QEMU_OPTION_parallel }, + { "loadvm", HAS_ARG, QEMU_OPTION_loadvm }, + { "full-screen", 0, QEMU_OPTION_full_screen }, +#ifdef CONFIG_SDL + { "no-frame", 0, QEMU_OPTION_no_frame }, + { "alt-grab", 0, QEMU_OPTION_alt_grab }, + { "no-quit", 0, QEMU_OPTION_no_quit }, +#endif + { "pidfile", HAS_ARG, QEMU_OPTION_pidfile }, + { "win2k-hack", 0, QEMU_OPTION_win2k_hack }, + { "usbdevice", HAS_ARG, QEMU_OPTION_usbdevice }, + { "smp", HAS_ARG, QEMU_OPTION_smp }, + { "vnc", HAS_ARG, QEMU_OPTION_vnc }, + + /* temporary options */ + { "usb", 0, QEMU_OPTION_usb }, + { "cirrusvga", 0, QEMU_OPTION_cirrusvga }, + { "vmwarevga", 0, QEMU_OPTION_vmsvga }, + { "no-acpi", 0, QEMU_OPTION_no_acpi }, + { "no-reboot", 0, QEMU_OPTION_no_reboot }, + { "show-cursor", 0, QEMU_OPTION_show_cursor }, + { "daemonize", 0, QEMU_OPTION_daemonize }, + { "option-rom", HAS_ARG, QEMU_OPTION_option_rom }, +#if defined(TARGET_ARM) || defined(TARGET_M68K) + { "semihosting", 0, QEMU_OPTION_semihosting }, +#endif + { "name", HAS_ARG, QEMU_OPTION_name }, +#if defined(TARGET_SPARC) + { "prom-env", HAS_ARG, QEMU_OPTION_prom_env }, +#endif +#if defined(TARGET_ARM) + { "old-param", 0, QEMU_OPTION_old_param }, +#endif + { "clock", HAS_ARG, QEMU_OPTION_clock }, + { "startdate", HAS_ARG, QEMU_OPTION_startdate }, + { NULL }, +}; + +/* password input */ + +int qemu_key_check(BlockDriverState *bs, const char *name) +{ + char password[256]; + int i; + + if (!bdrv_is_encrypted(bs)) + return 0; + + term_printf("%s is encrypted.\n", name); + for(i = 0; i < 3; i++) { + monitor_readline("Password: ", 1, password, sizeof(password)); + if (bdrv_set_key(bs, password) == 0) + return 0; + term_printf("invalid password\n"); + } + return -EPERM; +} + +static BlockDriverState *get_bdrv(int index) +{ + if (index > nb_drives) + return NULL; + return drives_table[index].bdrv; +} + +static void read_passwords(void) +{ + BlockDriverState *bs; + int i; + + for(i = 0; i < 6; i++) { + bs = get_bdrv(i); + if (bs) + qemu_key_check(bs, bdrv_get_device_name(bs)); + } +} + +/* XXX: currently we cannot use simultaneously different CPUs */ +static void register_machines(void) +{ +#if defined(TARGET_I386) + qemu_register_machine(&pc_machine); + qemu_register_machine(&isapc_machine); +#elif defined(TARGET_PPC) + qemu_register_machine(&heathrow_machine); + qemu_register_machine(&core99_machine); + qemu_register_machine(&prep_machine); + qemu_register_machine(&ref405ep_machine); + qemu_register_machine(&taihu_machine); +#elif defined(TARGET_MIPS) + qemu_register_machine(&mips_machine); + qemu_register_machine(&mips_malta_machine); + qemu_register_machine(&mips_pica61_machine); + qemu_register_machine(&mips_mipssim_machine); +#elif defined(TARGET_SPARC) +#ifdef TARGET_SPARC64 + qemu_register_machine(&sun4u_machine); +#else + qemu_register_machine(&ss5_machine); + qemu_register_machine(&ss10_machine); + qemu_register_machine(&ss600mp_machine); + qemu_register_machine(&ss20_machine); + qemu_register_machine(&ss2_machine); + qemu_register_machine(&ss1000_machine); + qemu_register_machine(&ss2000_machine); +#endif +#elif defined(TARGET_ARM) + qemu_register_machine(&integratorcp_machine); + qemu_register_machine(&versatilepb_machine); + qemu_register_machine(&versatileab_machine); + qemu_register_machine(&realview_machine); + qemu_register_machine(&akitapda_machine); + qemu_register_machine(&spitzpda_machine); + qemu_register_machine(&borzoipda_machine); + qemu_register_machine(&terrierpda_machine); + qemu_register_machine(&palmte_machine); + qemu_register_machine(&lm3s811evb_machine); + qemu_register_machine(&lm3s6965evb_machine); + qemu_register_machine(&connex_machine); + qemu_register_machine(&verdex_machine); + qemu_register_machine(&mainstone2_machine); + qemu_register_machine(&mc1322x_machine); +#elif defined(TARGET_SH4) + qemu_register_machine(&shix_machine); + qemu_register_machine(&r2d_machine); +#elif defined(TARGET_ALPHA) + /* XXX: TODO */ +#elif defined(TARGET_M68K) + qemu_register_machine(&mcf5208evb_machine); + qemu_register_machine(&an5206_machine); + qemu_register_machine(&dummy_m68k_machine); +#elif defined(TARGET_CRIS) + qemu_register_machine(&bareetraxfs_machine); +#else +#error unsupported CPU +#endif +} + +#ifdef HAS_AUDIO +struct soundhw soundhw[] = { +#ifdef HAS_AUDIO_CHOICE +#ifdef TARGET_I386 + { + "pcspk", + "PC speaker", + 0, + 1, + { .init_isa = pcspk_audio_init } + }, +#endif + { + "sb16", + "Creative Sound Blaster 16", + 0, + 1, + { .init_isa = SB16_init } + }, + +#ifdef CONFIG_ADLIB + { + "adlib", +#ifdef HAS_YMF262 + "Yamaha YMF262 (OPL3)", +#else + "Yamaha YM3812 (OPL2)", +#endif + 0, + 1, + { .init_isa = Adlib_init } + }, +#endif + +#ifdef CONFIG_GUS + { + "gus", + "Gravis Ultrasound GF1", + 0, + 1, + { .init_isa = GUS_init } + }, +#endif + + { + "es1370", + "ENSONIQ AudioPCI ES1370", + 0, + 0, + { .init_pci = es1370_init } + }, +#endif + + { NULL, NULL, 0, 0, { NULL } } +}; + +static void select_soundhw (const char *optarg) +{ + struct soundhw *c; + + if (*optarg == '?') { + show_valid_cards: + + printf ("Valid sound card names (comma separated):\n"); + for (c = soundhw; c->name; ++c) { + printf ("%-11s %s\n", c->name, c->descr); + } + printf ("\n-soundhw all will enable all of the above\n"); + exit (*optarg != '?'); + } + else { + size_t l; + const char *p; + char *e; + int bad_card = 0; + + if (!strcmp (optarg, "all")) { + for (c = soundhw; c->name; ++c) { + c->enabled = 1; + } + return; + } + + p = optarg; + while (*p) { + e = strchr (p, ','); + l = !e ? strlen (p) : (size_t) (e - p); + + for (c = soundhw; c->name; ++c) { + if (!strncmp (c->name, p, l)) { + c->enabled = 1; + break; + } + } + + if (!c->name) { + if (l > 80) { + fprintf (stderr, + "Unknown sound card name (too big to show)\n"); + } + else { + fprintf (stderr, "Unknown sound card name `%.*s'\n", + (int) l, p); + } + bad_card = 1; + } + p += l + (e != NULL); + } + + if (bad_card) + goto show_valid_cards; + } +} +#endif + +#ifdef _WIN32 +static BOOL WINAPI qemu_ctrl_handler(DWORD type) +{ + exit(STATUS_CONTROL_C_EXIT); + return TRUE; +} +#endif + +#define MAX_NET_CLIENTS 32 + +int main(int argc, char **argv) +{ +#ifdef CONFIG_GDBSTUB + int use_gdbstub; + const char *gdbstub_port; +#endif + uint32_t boot_devices_bitmap = 0; + int i; + int snapshot, linux_boot, net_boot; + const char *initrd_filename; + const char *kernel_filename, *kernel_cmdline; + const char *boot_devices = ""; + DisplayState *ds = &display_state; + int cyls, heads, secs, translation; + char net_clients[MAX_NET_CLIENTS][256]; + int nb_net_clients; + int hda_index; + int optind; + const char *r, *optarg; + CharDriverState *monitor_hd; + char monitor_device[128]; + char serial_devices[MAX_SERIAL_PORTS][128]; + int serial_device_index; + char parallel_devices[MAX_PARALLEL_PORTS][128]; + int parallel_device_index; + const char *loadvm = NULL; + QEMUMachine *machine; + const char *cpu_model; + char usb_devices[MAX_USB_CMDLINE][128]; + int usb_devices_index; + int fds[2]; + const char *pid_file = NULL; + VLANState *vlan; + + LIST_INIT (&vm_change_state_head); +#ifndef _WIN32 + { + struct sigaction act; + sigfillset(&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = SIG_IGN; + sigaction(SIGPIPE, &act, NULL); + } +#else + SetConsoleCtrlHandler(qemu_ctrl_handler, TRUE); + /* Note: cpu_interrupt() is currently not SMP safe, so we force + QEMU to run on a single CPU */ + { + HANDLE h; + DWORD mask, smask; + int i; + h = GetCurrentProcess(); + if (GetProcessAffinityMask(h, &mask, &smask)) { + for(i = 0; i < 32; i++) { + if (mask & (1 << i)) + break; + } + if (i != 32) { + mask = 1 << i; + SetProcessAffinityMask(h, mask); + } + } + } +#endif + + register_machines(); + machine = first_machine; + cpu_model = NULL; + initrd_filename = NULL; + ram_size = DEFAULT_RAM_SIZE * 1024 * 1024; + vga_ram_size = VGA_RAM_SIZE; +#ifdef CONFIG_GDBSTUB + use_gdbstub = 0; + gdbstub_port = DEFAULT_GDBSTUB_PORT; +#endif + snapshot = 0; + nographic = 0; + kernel_filename = NULL; + kernel_cmdline = ""; + cyls = heads = secs = 0; + translation = BIOS_ATA_TRANSLATION_AUTO; + pstrcpy(monitor_device, sizeof(monitor_device), "vc"); + + pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "vc"); + for(i = 1; i < MAX_SERIAL_PORTS; i++) + serial_devices[i][0] = '\0'; + serial_device_index = 0; + + pstrcpy(parallel_devices[0], sizeof(parallel_devices[0]), "vc"); + for(i = 1; i < MAX_PARALLEL_PORTS; i++) + parallel_devices[i][0] = '\0'; + parallel_device_index = 0; + + usb_devices_index = 0; + + nb_net_clients = 0; + nb_drives = 0; + nb_drives_opt = 0; + hda_index = -1; + + nb_nics = 0; + /* default mac address of the first network interface */ + + optind = 1; + for(;;) { + if (optind >= argc) + break; + r = argv[optind]; + if (r[0] != '-') { + hda_index = drive_add(HD_ALIAS, argv[optind++], 0); + } else { + const QEMUOption *popt; + + optind++; + /* Treat --foo the same as -foo. */ + if (r[1] == '-') + r++; + popt = qemu_options; + for(;;) { + if (!popt->name) { + fprintf(stderr, "%s: invalid option -- '%s'\n", + argv[0], r); + exit(1); + } + if (!strcmp(popt->name, r + 1)) + break; + popt++; + } + if (popt->flags & HAS_ARG) { + if (optind >= argc) { + fprintf(stderr, "%s: option '%s' requires an argument\n", + argv[0], r); + exit(1); + } + optarg = argv[optind++]; + } else { + optarg = NULL; + } + + switch(popt->index) { + case QEMU_OPTION_M: + machine = find_machine(optarg); + if (!machine) { + QEMUMachine *m; + printf("Supported machines are:\n"); + for(m = first_machine; m != NULL; m = m->next) { + printf("%-10s %s%s\n", + m->name, m->desc, + m == first_machine ? " (default)" : ""); + } + exit(*optarg != '?'); + } + break; + case QEMU_OPTION_cpu: + /* hw initialization will check this */ + if (*optarg == '?') { +/* XXX: implement xxx_cpu_list for targets that still miss it */ +#if defined(cpu_list) + cpu_list(stdout, &fprintf); +#endif + exit(0); + } else { + cpu_model = optarg; + } + break; + case QEMU_OPTION_initrd: + initrd_filename = optarg; + break; + case QEMU_OPTION_hda: + if (cyls == 0) + hda_index = drive_add(HD_ALIAS, optarg, 0); + else + hda_index = drive_add(HD_ALIAS + ",cyls=%d,heads=%d,secs=%d%s", + optarg, 0, cyls, heads, secs, + translation == BIOS_ATA_TRANSLATION_LBA ? + ",trans=lba" : + translation == BIOS_ATA_TRANSLATION_NONE ? + ",trans=none" : ""); + break; + case QEMU_OPTION_hdb: + case QEMU_OPTION_hdc: + case QEMU_OPTION_hdd: + drive_add(HD_ALIAS, optarg, popt->index - QEMU_OPTION_hda); + break; + case QEMU_OPTION_drive: + drive_add("%s", optarg); + break; + case QEMU_OPTION_mtdblock: + drive_add(MTD_ALIAS, optarg); + break; + case QEMU_OPTION_sd: + drive_add("file=\"%s\"," SD_ALIAS, optarg); + break; + case QEMU_OPTION_pflash: + drive_add(PFLASH_ALIAS, optarg); + break; + case QEMU_OPTION_snapshot: + snapshot = 1; + break; + case QEMU_OPTION_hdachs: + { + const char *p; + p = optarg; + cyls = strtol(p, (char **)&p, 0); + if (cyls < 1 || cyls > 16383) + goto chs_fail; + if (*p != ',') + goto chs_fail; + p++; + heads = strtol(p, (char **)&p, 0); + if (heads < 1 || heads > 16) + goto chs_fail; + if (*p != ',') + goto chs_fail; + p++; + secs = strtol(p, (char **)&p, 0); + if (secs < 1 || secs > 63) + goto chs_fail; + if (*p == ',') { + p++; + if (!strcmp(p, "none")) + translation = BIOS_ATA_TRANSLATION_NONE; + else if (!strcmp(p, "lba")) + translation = BIOS_ATA_TRANSLATION_LBA; + else if (!strcmp(p, "auto")) + translation = BIOS_ATA_TRANSLATION_AUTO; + else + goto chs_fail; + } else if (*p != '\0') { + chs_fail: + fprintf(stderr, "qemu: invalid physical CHS format\n"); + exit(1); + } + if (hda_index != -1) + snprintf(drives_opt[hda_index] + + strlen(drives_opt[hda_index]), + sizeof(drives_opt[0]) - + strlen(drives_opt[hda_index]), + ",cyls=%d,heads=%d,secs=%d%s", + cyls, heads, secs, + translation == BIOS_ATA_TRANSLATION_LBA ? + ",trans=lba" : + translation == BIOS_ATA_TRANSLATION_NONE ? + ",trans=none" : ""); + } + break; + case QEMU_OPTION_nographic: + pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "stdio"); + pstrcpy(parallel_devices[0], sizeof(parallel_devices[0]), "null"); + pstrcpy(monitor_device, sizeof(monitor_device), "stdio"); + nographic = 1; + break; + case QEMU_OPTION_portrait: + graphic_rotate = 1; + break; + case QEMU_OPTION_kernel: + kernel_filename = optarg; + break; + case QEMU_OPTION_append: + kernel_cmdline = optarg; + break; + case QEMU_OPTION_cdrom: + drive_add("file=\"%s\"," CDROM_ALIAS, optarg); + break; + case QEMU_OPTION_boot: + boot_devices = optarg; + /* We just do some generic consistency checks */ + { + /* Could easily be extended to 64 devices if needed */ + const char *p; + + boot_devices_bitmap = 0; + for (p = boot_devices; *p != '\0'; p++) { + /* Allowed boot devices are: + * a b : floppy disk drives + * c ... f : IDE disk drives + * g ... m : machine implementation dependant drives + * n ... p : network devices + * It's up to each machine implementation to check + * if the given boot devices match the actual hardware + * implementation and firmware features. + */ + if (*p < 'a' || *p > 'q') { + fprintf(stderr, "Invalid boot device '%c'\n", *p); + exit(1); + } + if (boot_devices_bitmap & (1 << (*p - 'a'))) { + fprintf(stderr, + "Boot device '%c' was given twice\n",*p); + exit(1); + } + boot_devices_bitmap |= 1 << (*p - 'a'); + } + } + break; + case QEMU_OPTION_fda: + case QEMU_OPTION_fdb: + drive_add("file=\"%s\"," FD_ALIAS, optarg, + popt->index - QEMU_OPTION_fda); + break; +#ifdef TARGET_I386 + case QEMU_OPTION_no_fd_bootchk: + fd_bootchk = 0; + break; +#endif + case QEMU_OPTION_no_code_copy: + code_copy_enabled = 0; + break; + case QEMU_OPTION_net: + if (nb_net_clients >= MAX_NET_CLIENTS) { + fprintf(stderr, "qemu: too many network clients\n"); + exit(1); + } + pstrcpy(net_clients[nb_net_clients], + sizeof(net_clients[0]), + optarg); + nb_net_clients++; + break; +#ifdef CONFIG_SLIRP + case QEMU_OPTION_tftp: + tftp_prefix = optarg; + break; + case QEMU_OPTION_bootp: + bootp_filename = optarg; + break; +#ifndef _WIN32 + case QEMU_OPTION_smb: + net_slirp_smb(optarg); + break; +#endif + case QEMU_OPTION_redir: + net_slirp_redir(optarg); + break; +#endif +#ifdef HAS_AUDIO + case QEMU_OPTION_audio_help: + AUD_help (); + exit (0); + break; + case QEMU_OPTION_soundhw: + select_soundhw (optarg); + break; +#endif + case QEMU_OPTION_h: + help(0); + break; + case QEMU_OPTION_m: + ram_size = atoi(optarg) * 1024 * 1024; + if (ram_size <= 0) + help(1); + if (ram_size > PHYS_RAM_MAX_SIZE) { + fprintf(stderr, "qemu: at most %d MB RAM can be simulated\n", + PHYS_RAM_MAX_SIZE / (1024 * 1024)); + exit(1); + } + break; + case QEMU_OPTION_d: + { + int mask; + CPULogItem *item; + + mask = cpu_str_to_log_mask(optarg); + if (!mask) { + printf("Log items (comma separated):\n"); + for(item = cpu_log_items; item->mask != 0; item++) { + printf("%-10s %s\n", item->name, item->help); + } + exit(1); + } + cpu_set_log(mask); + } + break; +#ifdef CONFIG_GDBSTUB + case QEMU_OPTION_s: + use_gdbstub = 1; + break; + case QEMU_OPTION_p: + gdbstub_port = optarg; + break; +#endif + case QEMU_OPTION_L: + bios_dir = optarg; + break; + case QEMU_OPTION_bios: + bios_name = optarg; + break; + case QEMU_OPTION_S: + autostart = 0; + break; + case QEMU_OPTION_k: + keyboard_layout = optarg; + break; + case QEMU_OPTION_localtime: + rtc_utc = 0; + break; + case QEMU_OPTION_cirrusvga: + cirrus_vga_enabled = 1; + vmsvga_enabled = 0; + break; + case QEMU_OPTION_vmsvga: + cirrus_vga_enabled = 0; + vmsvga_enabled = 1; + break; + case QEMU_OPTION_std_vga: + cirrus_vga_enabled = 0; + vmsvga_enabled = 0; + break; + case QEMU_OPTION_g: + { + const char *p; + int w, h, depth; + p = optarg; + w = strtol(p, (char **)&p, 10); + if (w <= 0) { + graphic_error: + fprintf(stderr, "qemu: invalid resolution or depth\n"); + exit(1); + } + if (*p != 'x') + goto graphic_error; + p++; + h = strtol(p, (char **)&p, 10); + if (h <= 0) + goto graphic_error; + if (*p == 'x') { + p++; + depth = strtol(p, (char **)&p, 10); + if (depth != 8 && depth != 15 && depth != 16 && + depth != 24 && depth != 32) + goto graphic_error; + } else if (*p == '\0') { + depth = graphic_depth; + } else { + goto graphic_error; + } + + graphic_width = w; + graphic_height = h; + graphic_depth = depth; + } + break; + case QEMU_OPTION_echr: + { + char *r; + term_escape_char = strtol(optarg, &r, 0); + if (r == optarg) + printf("Bad argument to echr\n"); + break; + } + case QEMU_OPTION_monitor: + pstrcpy(monitor_device, sizeof(monitor_device), optarg); + break; + case QEMU_OPTION_serial: + if (serial_device_index >= MAX_SERIAL_PORTS) { + fprintf(stderr, "qemu: too many serial ports\n"); + exit(1); + } + pstrcpy(serial_devices[serial_device_index], + sizeof(serial_devices[0]), optarg); + serial_device_index++; + break; + case QEMU_OPTION_parallel: + if (parallel_device_index >= MAX_PARALLEL_PORTS) { + fprintf(stderr, "qemu: too many parallel ports\n"); + exit(1); + } + pstrcpy(parallel_devices[parallel_device_index], + sizeof(parallel_devices[0]), optarg); + parallel_device_index++; + break; + case QEMU_OPTION_loadvm: + loadvm = optarg; + break; + case QEMU_OPTION_full_screen: + full_screen = 1; + break; +#ifdef CONFIG_SDL + case QEMU_OPTION_no_frame: + no_frame = 1; + break; + case QEMU_OPTION_alt_grab: + alt_grab = 1; + break; + case QEMU_OPTION_no_quit: + no_quit = 1; + break; +#endif + case QEMU_OPTION_pidfile: + pid_file = optarg; + break; +#ifdef TARGET_I386 + case QEMU_OPTION_win2k_hack: + win2k_install_hack = 1; + break; +#endif +#ifdef USE_KQEMU + case QEMU_OPTION_no_kqemu: + kqemu_allowed = 0; + break; + case QEMU_OPTION_kernel_kqemu: + kqemu_allowed = 2; + break; +#endif + case QEMU_OPTION_usb: + usb_enabled = 1; + break; + case QEMU_OPTION_usbdevice: + usb_enabled = 1; + if (usb_devices_index >= MAX_USB_CMDLINE) { + fprintf(stderr, "Too many USB devices\n"); + exit(1); + } + pstrcpy(usb_devices[usb_devices_index], + sizeof(usb_devices[usb_devices_index]), + optarg); + usb_devices_index++; + break; + case QEMU_OPTION_smp: + smp_cpus = atoi(optarg); + if (smp_cpus < 1 || smp_cpus > MAX_CPUS) { + fprintf(stderr, "Invalid number of CPUs\n"); + exit(1); + } + break; + case QEMU_OPTION_vnc: + vnc_display = optarg; + break; + case QEMU_OPTION_no_acpi: + acpi_enabled = 0; + break; + case QEMU_OPTION_no_reboot: + no_reboot = 1; + break; + case QEMU_OPTION_show_cursor: + cursor_hide = 0; + break; + case QEMU_OPTION_daemonize: + daemonize = 1; + break; + case QEMU_OPTION_option_rom: + if (nb_option_roms >= MAX_OPTION_ROMS) { + fprintf(stderr, "Too many option ROMs\n"); + exit(1); + } + option_rom[nb_option_roms] = optarg; + nb_option_roms++; + break; + case QEMU_OPTION_semihosting: + semihosting_enabled = 1; + break; + case QEMU_OPTION_name: + qemu_name = optarg; + break; +#ifdef TARGET_SPARC + case QEMU_OPTION_prom_env: + if (nb_prom_envs >= MAX_PROM_ENVS) { + fprintf(stderr, "Too many prom variables\n"); + exit(1); + } + prom_envs[nb_prom_envs] = optarg; + nb_prom_envs++; + break; +#endif +#ifdef TARGET_ARM + case QEMU_OPTION_old_param: + old_param = 1; +#endif + case QEMU_OPTION_clock: + configure_alarms(optarg); + break; + case QEMU_OPTION_startdate: + { + struct tm tm; + if (!strcmp(optarg, "now")) { + rtc_start_date = -1; + } else { + if (sscanf(optarg, "%d-%d-%dT%d:%d:%d", + &tm.tm_year, + &tm.tm_mon, + &tm.tm_mday, + &tm.tm_hour, + &tm.tm_min, + &tm.tm_sec) == 6) { + /* OK */ + } else if (sscanf(optarg, "%d-%d-%d", + &tm.tm_year, + &tm.tm_mon, + &tm.tm_mday) == 3) { + tm.tm_hour = 0; + tm.tm_min = 0; + tm.tm_sec = 0; + } else { + goto date_fail; + } + tm.tm_year -= 1900; + tm.tm_mon--; + rtc_start_date = mktimegm(&tm); + if (rtc_start_date == -1) { + date_fail: + fprintf(stderr, "Invalid date format. Valid format are:\n" + "'now' or '2006-06-17T16:01:21' or '2006-06-17'\n"); + exit(1); + } + } + } + break; + } + } + } + +#ifndef _WIN32 + if (daemonize && !nographic && vnc_display == NULL) { + fprintf(stderr, "Can only daemonize if using -nographic or -vnc\n"); + daemonize = 0; + } + + if (daemonize) { + pid_t pid; + + if (pipe(fds) == -1) + exit(1); + + pid = fork(); + if (pid > 0) { + uint8_t status; + ssize_t len; + + close(fds[1]); + + again: + len = read(fds[0], &status, 1); + if (len == -1 && (errno == EINTR)) + goto again; + + if (len != 1) + exit(1); + else if (status == 1) { + fprintf(stderr, "Could not acquire pidfile\n"); + exit(1); + } else + exit(0); + } else if (pid < 0) + exit(1); + + setsid(); + + pid = fork(); + if (pid > 0) + exit(0); + else if (pid < 0) + exit(1); + + umask(027); + chdir("/"); + + signal(SIGTSTP, SIG_IGN); + signal(SIGTTOU, SIG_IGN); + signal(SIGTTIN, SIG_IGN); + } +#endif + + if (pid_file && qemu_create_pidfile(pid_file) != 0) { + if (daemonize) { + uint8_t status = 1; + write(fds[1], &status, 1); + } else + fprintf(stderr, "Could not acquire pid file\n"); + exit(1); + } + +#ifdef USE_KQEMU + if (smp_cpus > 1) + kqemu_allowed = 0; +#endif + linux_boot = (kernel_filename != NULL); + net_boot = (boot_devices_bitmap >> ('n' - 'a')) & 0xF; + + /* XXX: this should not be: some embedded targets just have flash */ + if (!linux_boot && net_boot == 0 && + nb_drives_opt == 0) + help(1); + + /* boot to floppy or the default cd if no hard disk defined yet */ + if (!boot_devices[0]) { + boot_devices = "cad"; + } + setvbuf(stdout, NULL, _IOLBF, 0); + + init_timers(); + init_timer_alarm(); + qemu_aio_init(); + +#ifdef _WIN32 + socket_init(); +#endif + + /* init network clients */ + if (nb_net_clients == 0) { + /* if no clients, we use a default config */ + pstrcpy(net_clients[0], sizeof(net_clients[0]), + "nic"); + pstrcpy(net_clients[1], sizeof(net_clients[0]), + "user"); + nb_net_clients = 2; + } + + for(i = 0;i < nb_net_clients; i++) { + if (net_client_init(net_clients[i]) < 0) + exit(1); + } + for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { + if (vlan->nb_guest_devs == 0 && vlan->nb_host_devs == 0) + continue; + if (vlan->nb_guest_devs == 0) { + fprintf(stderr, "Invalid vlan (%d) with no nics\n", vlan->id); + exit(1); + } + if (vlan->nb_host_devs == 0) + fprintf(stderr, + "Warning: vlan %d is not connected to host network\n", + vlan->id); + } + +#ifdef TARGET_I386 + /* XXX: this should be moved in the PC machine instantiation code */ + if (net_boot != 0) { + int netroms = 0; + for (i = 0; i < nb_nics && i < 4; i++) { + const char *model = nd_table[i].model; + char buf[1024]; + if (net_boot & (1 << i)) { + if (model == NULL) + model = "ne2k_pci"; + snprintf(buf, sizeof(buf), "%s/pxe-%s.bin", bios_dir, model); + if (get_image_size(buf) > 0) { + if (nb_option_roms >= MAX_OPTION_ROMS) { + fprintf(stderr, "Too many option ROMs\n"); + exit(1); + } + option_rom[nb_option_roms] = strdup(buf); + nb_option_roms++; + netroms++; + } + } + } + if (netroms == 0) { + fprintf(stderr, "No valid PXE rom found for network device\n"); + exit(1); + } + } +#endif + + /* init the memory */ + phys_ram_size = ram_size + vga_ram_size + MAX_BIOS_SIZE; + + phys_ram_base = qemu_vmalloc(phys_ram_size); + if (!phys_ram_base) { + fprintf(stderr, "Could not allocate physical memory\n"); + exit(1); + } + + bdrv_init(); + + /* we always create the cdrom drive, even if no disk is there */ + + if (nb_drives_opt < MAX_DRIVES) + drive_add(CDROM_ALIAS); + + /* we always create at least one floppy */ + + if (nb_drives_opt < MAX_DRIVES) + drive_add(FD_ALIAS, 0); + + /* we always create one sd slot, even if no card is in it */ + + if (nb_drives_opt < MAX_DRIVES) + drive_add(SD_ALIAS); + + /* open the virtual block devices */ + + for(i = 0; i < nb_drives_opt; i++) + if (drive_init(drives_opt[i], snapshot, machine) == -1) + exit(1); + + register_savevm("timer", 0, 2, timer_save, timer_load, NULL); + register_savevm("ram", 0, 2, ram_save, ram_load, NULL); + + init_ioports(); + + /* terminal init */ + memset(&display_state, 0, sizeof(display_state)); + if (nographic) { + /* nearly nothing to do */ + dumb_display_init(ds); + } else if (vnc_display != NULL) { + vnc_display_init(ds); + if (vnc_display_open(ds, vnc_display) < 0) + exit(1); + } else { +#if defined(CONFIG_SDL) + sdl_display_init(ds, full_screen, no_frame); +#elif defined(CONFIG_COCOA) + cocoa_display_init(ds, full_screen); +#else + dumb_display_init(ds); +#endif + } + + /* Maintain compatibility with multiple stdio monitors */ + if (!strcmp(monitor_device,"stdio")) { + for (i = 0; i < MAX_SERIAL_PORTS; i++) { + if (!strcmp(serial_devices[i],"mon:stdio")) { + monitor_device[0] = '\0'; + break; + } else if (!strcmp(serial_devices[i],"stdio")) { + monitor_device[0] = '\0'; + pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "mon:stdio"); + break; + } + } + } + if (monitor_device[0] != '\0') { + monitor_hd = qemu_chr_open(monitor_device); + if (!monitor_hd) { + fprintf(stderr, "qemu: could not open monitor device '%s'\n", monitor_device); + exit(1); + } + monitor_init(monitor_hd, !nographic); + } + + for(i = 0; i < MAX_SERIAL_PORTS; i++) { + const char *devname = serial_devices[i]; + if (devname[0] != '\0' && strcmp(devname, "none")) { + serial_hds[i] = qemu_chr_open(devname); + if (!serial_hds[i]) { + fprintf(stderr, "qemu: could not open serial device '%s'\n", + devname); + exit(1); + } + if (strstart(devname, "vc", 0)) + qemu_chr_printf(serial_hds[i], "serial%d console\r\n", i); + } + } + + for(i = 0; i < MAX_PARALLEL_PORTS; i++) { + const char *devname = parallel_devices[i]; + if (devname[0] != '\0' && strcmp(devname, "none")) { + parallel_hds[i] = qemu_chr_open(devname); + if (!parallel_hds[i]) { + fprintf(stderr, "qemu: could not open parallel device '%s'\n", + devname); + exit(1); + } + if (strstart(devname, "vc", 0)) + qemu_chr_printf(parallel_hds[i], "parallel%d console\r\n", i); + } + } + + machine->init(ram_size, vga_ram_size, boot_devices, ds, + kernel_filename, kernel_cmdline, initrd_filename, cpu_model); + + /* init USB devices */ + if (usb_enabled) { + for(i = 0; i < usb_devices_index; i++) { + if (usb_device_add(usb_devices[i]) < 0) { + fprintf(stderr, "Warning: could not add USB device %s\n", + usb_devices[i]); + } + } + } + + if (display_state.dpy_refresh) { + display_state.gui_timer = qemu_new_timer(rt_clock, gui_update, &display_state); + qemu_mod_timer(display_state.gui_timer, qemu_get_clock(rt_clock)); + } + +#ifdef CONFIG_GDBSTUB + if (use_gdbstub) { + /* XXX: use standard host:port notation and modify options + accordingly. */ + if (gdbserver_start(gdbstub_port) < 0) { + fprintf(stderr, "qemu: could not open gdbstub device on port '%s'\n", + gdbstub_port); + exit(1); + } + } +#endif + + if (loadvm) + do_loadvm(loadvm); + + { + /* XXX: simplify init */ + read_passwords(); + if (autostart) { + vm_start(); + } + } + + if (daemonize) { + uint8_t status = 0; + ssize_t len; + int fd; + + again1: + len = write(fds[1], &status, 1); + if (len == -1 && (errno == EINTR)) + goto again1; + + if (len != 1) + exit(1); + + TFR(fd = open("/dev/null", O_RDWR)); + if (fd == -1) + exit(1); + + dup2(fd, 0); + dup2(fd, 1); + dup2(fd, 2); + + close(fd); + } + + main_loop(); + quit_timers(); + +#if !defined(_WIN32) + /* close network clients */ + for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { + VLANClientState *vc; + + for(vc = vlan->first_client; vc != NULL; vc = vc->next) { + if (vc->fd_read == tap_receive) { + char ifname[64]; + TAPState *s = vc->opaque; + + if (sscanf(vc->info_str, "tap: ifname=%63s ", ifname) == 1 && + s->down_script[0]) + launch_script(s->down_script, ifname, s->fd); + } + } + } +#endif + return 0; +} From cb89cef7a07f95539a037729a9885e7c10134f45 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 10 Apr 2009 12:14:26 -0400 Subject: [PATCH 025/471] initial qemu support. --- qemu/Makefile.target | 650 +++ qemu/README.qemu.mc1322x | 15 + qemu/hw/boards.h | 104 + qemu/hw/mc1322x.c | 56 + qemu/hw/mc1322x.h | 37 + qemu/target-arm/helper.c | 1864 ++++++++ qemu/vl.c | 9003 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 11729 insertions(+) create mode 100644 qemu/Makefile.target create mode 100644 qemu/README.qemu.mc1322x create mode 100644 qemu/hw/boards.h create mode 100644 qemu/hw/mc1322x.c create mode 100644 qemu/hw/mc1322x.h create mode 100644 qemu/target-arm/helper.c create mode 100644 qemu/vl.c diff --git a/qemu/Makefile.target b/qemu/Makefile.target new file mode 100644 index 000000000..b8ca4b194 --- /dev/null +++ b/qemu/Makefile.target @@ -0,0 +1,650 @@ +include config.mak + +TARGET_BASE_ARCH:=$(TARGET_ARCH) +ifeq ($(TARGET_ARCH), x86_64) +TARGET_BASE_ARCH:=i386 +endif +ifeq ($(TARGET_ARCH), mipsn32) +TARGET_BASE_ARCH:=mips +endif +ifeq ($(TARGET_ARCH), mips64) +TARGET_BASE_ARCH:=mips +endif +ifeq ($(TARGET_ARCH), ppc64) +TARGET_BASE_ARCH:=ppc +endif +ifeq ($(TARGET_ARCH), ppc64h) +TARGET_BASE_ARCH:=ppc +endif +ifeq ($(TARGET_ARCH), ppcemb) +TARGET_BASE_ARCH:=ppc +endif +ifeq ($(TARGET_ARCH), sparc64) +TARGET_BASE_ARCH:=sparc +endif +TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH) +VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw +CPPFLAGS=-I. -I.. -I$(TARGET_PATH) -I$(SRC_PATH) -MMD -MP -DNEED_CPU_H +ifdef CONFIG_DARWIN_USER +VPATH+=:$(SRC_PATH)/darwin-user +CPPFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH) +endif +ifdef CONFIG_LINUX_USER +VPATH+=:$(SRC_PATH)/linux-user +ifndef TARGET_ABI_DIR + TARGET_ABI_DIR=$(TARGET_ARCH) +endif +CPPFLAGS+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) +endif +BASE_CFLAGS= +BASE_LDFLAGS= +#CFLAGS+=-Werror +LIBS= +HELPER_CFLAGS=$(CFLAGS) +DYNGEN=../dyngen$(EXESUF) +# user emulator name +ifndef TARGET_ARCH2 +TARGET_ARCH2=$(TARGET_ARCH) +endif +ifeq ($(TARGET_ARCH),arm) + ifeq ($(TARGET_WORDS_BIGENDIAN),yes) + TARGET_ARCH2=armeb + endif +endif +ifeq ($(TARGET_ARCH),sh4) + ifeq ($(TARGET_WORDS_BIGENDIAN),yes) + TARGET_ARCH2=sh4eb + endif +endif +ifeq ($(TARGET_ARCH),mips) + ifneq ($(TARGET_WORDS_BIGENDIAN),yes) + TARGET_ARCH2=mipsel + endif +endif +ifeq ($(TARGET_ARCH),mipsn32) + ifneq ($(TARGET_WORDS_BIGENDIAN),yes) + TARGET_ARCH2=mipsn32el + endif +endif +ifeq ($(TARGET_ARCH),mips64) + ifneq ($(TARGET_WORDS_BIGENDIAN),yes) + TARGET_ARCH2=mips64el + endif +endif +QEMU_USER=qemu-$(TARGET_ARCH2) +# system emulator name +ifdef CONFIG_SOFTMMU +ifeq ($(TARGET_ARCH), i386) +QEMU_SYSTEM=qemu$(EXESUF) +else +QEMU_SYSTEM=qemu-system-$(TARGET_ARCH2)$(EXESUF) +endif +else +QEMU_SYSTEM=qemu-fast +endif + +ifdef CONFIG_USER_ONLY +PROGS=$(QEMU_USER) +else +PROGS+=$(QEMU_SYSTEM) +ifndef CONFIG_SOFTMMU +CONFIG_STATIC=y +endif +endif # !CONFIG_USER_ONLY + +ifdef CONFIG_STATIC +BASE_LDFLAGS+=-static +endif + +# We require -O2 to avoid the stack setup prologue in EXIT_TB +OP_CFLAGS := -Wall -O2 -g -fno-strict-aliasing + +# cc-option +# Usage: OP_CFLAGS+=$(call cc-option, -falign-functions=0, -malign-functions=0) + +cc-option = $(shell if $(CC) $(OP_CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ + > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) + +OP_CFLAGS+=$(call cc-option, -fno-reorder-blocks, "") +OP_CFLAGS+=$(call cc-option, -fno-gcse, "") +OP_CFLAGS+=$(call cc-option, -fno-tree-ch, "") +OP_CFLAGS+=$(call cc-option, -fno-optimize-sibling-calls, "") +OP_CFLAGS+=$(call cc-option, -fno-crossjumping, "") +OP_CFLAGS+=$(call cc-option, -fno-align-labels, "") +OP_CFLAGS+=$(call cc-option, -fno-align-jumps, "") +OP_CFLAGS+=$(call cc-option, -fno-align-functions, $(call cc-option, -malign-functions=0, "")) +OP_CFLAGS+=$(call cc-option, -fno-section-anchors, "") + +ifeq ($(ARCH),i386) +HELPER_CFLAGS+=-fomit-frame-pointer +OP_CFLAGS+=-mpreferred-stack-boundary=2 -fomit-frame-pointer +ifdef TARGET_GPROF +USE_I386_LD=y +endif +ifdef CONFIG_STATIC +USE_I386_LD=y +endif +ifdef USE_I386_LD +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +else +ifdef CONFIG_LINUX_USER +# WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object +# that the kernel ELF loader considers as an executable. I think this +# is the simplest way to make it self virtualizable! +BASE_LDFLAGS+=-Wl,-shared +endif +endif +endif + +ifeq ($(ARCH),x86_64) + ifneq ($(CONFIG_SOLARIS),yes) + BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld + endif +endif + +ifeq ($(ARCH),ppc) +CPPFLAGS+= -D__powerpc__ +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),s390) +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),sparc) + BASE_CFLAGS+=-ffixed-g2 -ffixed-g3 + OP_CFLAGS+=-fno-delayed-branch -ffixed-i0 + ifeq ($(CONFIG_SOLARIS),yes) + OP_CFLAGS+=-fno-omit-frame-pointer + else + BASE_CFLAGS+=-ffixed-g1 -ffixed-g6 + HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 + # -static is used to avoid g1/g3 usage by the dynamic linker + BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static + endif +endif + +ifeq ($(ARCH),sparc64) + BASE_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7 + OP_CFLAGS+=-mcpu=ultrasparc -m64 -fno-delayed-branch -ffixed-i0 + ifneq ($(CONFIG_SOLARIS),yes) + BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld + OP_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7 + endif +endif + +ifeq ($(ARCH),alpha) +# -msmall-data is not used for OP_CFLAGS because we want two-instruction +# relocations for the constant constructions +# Ensure there's only a single GP +BASE_CFLAGS+=-msmall-data +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),ia64) +BASE_CFLAGS+=-mno-sdata +OP_CFLAGS+=-mno-sdata +BASE_LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),arm) +OP_CFLAGS+=-mno-sched-prolog -fno-omit-frame-pointer +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),m68k) +OP_CFLAGS+=-fomit-frame-pointer +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +endif + +ifeq ($(ARCH),mips) +OP_CFLAGS+=-mabi=32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0 +ifeq ($(WORDS_BIGENDIAN),yes) +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +else +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld +endif +endif + +ifeq ($(ARCH),mips64) +OP_CFLAGS+=-mabi=n32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0 +ifeq ($(WORDS_BIGENDIAN),yes) +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld +else +BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld +endif +endif + +ifeq ($(CONFIG_DARWIN),yes) +LIBS+=-lmx +endif + +ifdef CONFIG_DARWIN_USER +# Leave some space for the regular program loading zone +BASE_LDFLAGS+=-Wl,-segaddr,__STD_PROG_ZONE,0x1000 -image_base 0x0e000000 +endif + +BASE_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS) +BASE_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS) +OP_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS) +OP_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS) + +######################################################### + +CPPFLAGS+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE +LIBS+=-lm +ifndef CONFIG_USER_ONLY +LIBS+=-lz +endif +ifdef CONFIG_WIN32 +LIBS+=-lwinmm -lws2_32 -liphlpapi +endif +ifdef CONFIG_SOLARIS +LIBS+=-lsocket -lnsl -lresolv +ifdef NEEDS_LIBSUNMATH +LIBS+=-lsunmath +LDFLAGS+=-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib +OP_CFLAGS+=-I/opt/SUNWspro/prod/include/cc +BASE_CFLAGS+=-I/opt/SUNWspro/prod/include/cc +endif +endif + +# profiling code +ifdef TARGET_GPROF +BASE_LDFLAGS+=-p +main.o: BASE_CFLAGS+=-p +endif + +ifdef CONFIG_LINUX_USER +OBJS= main.o syscall.o strace.o mmap.o signal.o path.o osdep.o thunk.o \ + elfload.o linuxload.o uaccess.o +LIBS+= $(AIOLIBS) +ifdef TARGET_HAS_BFLT +OBJS+= flatload.o +endif +ifdef TARGET_HAS_ELFLOAD32 +OBJS+= elfload32.o +elfload32.o: elfload.c +endif + +ifeq ($(TARGET_ARCH), i386) +OBJS+= vm86.o +endif +ifeq ($(TARGET_ARCH), arm) +OBJS+=nwfpe/fpa11.o nwfpe/fpa11_cpdo.o \ +nwfpe/fpa11_cpdt.o nwfpe/fpa11_cprt.o nwfpe/fpopcode.o nwfpe/single_cpdo.o \ + nwfpe/double_cpdo.o nwfpe/extended_cpdo.o arm-semi.o +endif +ifeq ($(TARGET_ARCH), m68k) +OBJS+= m68k-sim.o m68k-semi.o +endif +endif #CONFIG_LINUX_USER + +ifdef CONFIG_DARWIN_USER +OBJS= main.o commpage.o machload.o mmap.o osdep.o signal.o syscall.o thunk.o +endif + +SRCS:= $(OBJS:.o=.c) +OBJS+= libqemu.a + +# cpu emulator library +LIBOBJS=exec.o kqemu.o translate-op.o translate-all.o cpu-exec.o\ + translate.o op.o host-utils.o +ifdef CONFIG_SOFTFLOAT +LIBOBJS+=fpu/softfloat.o +else +LIBOBJS+=fpu/softfloat-native.o +endif +CPPFLAGS+=-I$(SRC_PATH)/fpu + +ifeq ($(TARGET_ARCH), i386) +LIBOBJS+=helper.o helper2.o +endif + +ifeq ($(TARGET_ARCH), x86_64) +LIBOBJS+=helper.o helper2.o +endif + +ifeq ($(TARGET_BASE_ARCH), ppc) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), mips) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), sparc) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), arm) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), sh4) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), m68k) +LIBOBJS+= op_helper.o helper.o +endif + +ifeq ($(TARGET_BASE_ARCH), alpha) +LIBOBJS+= op_helper.o helper.o alpha_palcode.o +endif + +ifeq ($(TARGET_BASE_ARCH), cris) +LIBOBJS+= op_helper.o helper.o +LIBOBJS+= cris-dis.o + +ifndef CONFIG_USER_ONLY +LIBOBJS+= mmu.o +endif +endif + +# NOTE: the disassembler code is only needed for debugging +LIBOBJS+=disas.o +ifeq ($(findstring i386, $(TARGET_ARCH) $(ARCH)),i386) +USE_I386_DIS=y +endif +ifeq ($(findstring x86_64, $(TARGET_ARCH) $(ARCH)),x86_64) +USE_I386_DIS=y +endif +ifdef USE_I386_DIS +LIBOBJS+=i386-dis.o +endif +ifeq ($(findstring alpha, $(TARGET_ARCH) $(ARCH)),alpha) +LIBOBJS+=alpha-dis.o +endif +ifeq ($(findstring ppc, $(TARGET_BASE_ARCH) $(ARCH)),ppc) +LIBOBJS+=ppc-dis.o +endif +ifeq ($(findstring mips, $(TARGET_BASE_ARCH) $(ARCH)),mips) +LIBOBJS+=mips-dis.o +endif +ifeq ($(findstring sparc, $(TARGET_BASE_ARCH) $(ARCH)),sparc) +LIBOBJS+=sparc-dis.o +endif +ifeq ($(findstring arm, $(TARGET_ARCH) $(ARCH)),arm) +LIBOBJS+=arm-dis.o +endif +ifeq ($(findstring m68k, $(TARGET_ARCH) $(ARCH)),m68k) +LIBOBJS+=m68k-dis.o +endif +ifeq ($(findstring sh4, $(TARGET_ARCH) $(ARCH)),sh4) +LIBOBJS+=sh4-dis.o +endif +ifeq ($(findstring s390, $(TARGET_ARCH) $(ARCH)),s390) +LIBOBJS+=s390-dis.o +endif + +ifdef CONFIG_GDBSTUB +OBJS+=gdbstub.o +endif + +all: $(PROGS) + +$(QEMU_USER): $(OBJS) + $(CC) $(LDFLAGS) $(BASE_LDFLAGS) -o $@ $^ $(LIBS) +ifeq ($(ARCH),alpha) +# Mark as 32 bit binary, i. e. it will be mapped into the low 31 bit of +# the address space (31 bit so sign extending doesn't matter) + echo -ne '\001\000\000\000' | dd of=qemu bs=1 seek=48 count=4 conv=notrunc +endif + +# must use static linking to avoid leaving stuff in virtual address space +VL_OBJS=vl.o osdep.o monitor.o pci.o loader.o isa_mmio.o +# XXX: suppress QEMU_TOOL tests +ifdef CONFIG_WIN32 +VL_OBJS+=block-raw-win32.o +else +VL_OBJS+=block-raw-posix.o +endif + +ifdef CONFIG_ALSA +LIBS += -lasound +endif +ifdef CONFIG_DSOUND +LIBS += -lole32 -ldxguid +endif +ifdef CONFIG_FMOD +LIBS += $(CONFIG_FMOD_LIB) +endif + +SOUND_HW = sb16.o es1370.o +ifdef CONFIG_ADLIB +SOUND_HW += fmopl.o adlib.o +endif + +ifdef CONFIG_VNC_TLS +CPPFLAGS += $(CONFIG_VNC_TLS_CFLAGS) +LIBS += $(CONFIG_VNC_TLS_LIBS) +endif + +# SCSI layer +VL_OBJS+= lsi53c895a.o + +# USB layer +VL_OBJS+= usb-ohci.o + +# EEPROM emulation +VL_OBJS += eeprom93xx.o + +# PCI network cards +VL_OBJS += eepro100.o +VL_OBJS += ne2000.o +VL_OBJS += pcnet.o +VL_OBJS += rtl8139.o + +ifeq ($(TARGET_BASE_ARCH), i386) +# Hardware support +VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o +VL_OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o +VL_OBJS+= cirrus_vga.o apic.o parallel.o acpi.o piix_pci.o +VL_OBJS+= usb-uhci.o vmmouse.o vmport.o vmware_vga.o +CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE +endif +ifeq ($(TARGET_BASE_ARCH), ppc) +CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE +# shared objects +VL_OBJS+= ppc.o ide.o vga.o $(SOUND_HW) dma.o openpic.o +# PREP target +VL_OBJS+= pckbd.o ps2.o serial.o i8259.o i8254.o fdc.o m48t59.o mc146818rtc.o +VL_OBJS+= prep_pci.o ppc_prep.o +# Mac shared devices +VL_OBJS+= macio.o cuda.o adb.o mac_nvram.o mac_dbdma.o +# OldWorld PowerMac +VL_OBJS+= heathrow_pic.o grackle_pci.o ppc_oldworld.o +# NewWorld PowerMac +VL_OBJS+= unin_pci.o ppc_chrp.o +# PowerPC 4xx boards +VL_OBJS+= pflash_cfi02.o ppc4xx_devs.o ppc405_uc.o ppc405_boards.o +endif +ifeq ($(TARGET_BASE_ARCH), mips) +VL_OBJS+= mips_r4k.o mips_malta.o mips_pica61.o mips_mipssim.o +VL_OBJS+= mips_timer.o mips_int.o dma.o vga.o serial.o i8254.o i8259.o +VL_OBJS+= jazz_led.o +VL_OBJS+= ide.o gt64xxx.o pckbd.o ps2.o fdc.o mc146818rtc.o usb-uhci.o acpi.o ds1225y.o +VL_OBJS+= piix_pci.o parallel.o cirrus_vga.o $(SOUND_HW) +VL_OBJS+= mipsnet.o +VL_OBJS+= pflash_cfi01.o +CPPFLAGS += -DHAS_AUDIO +endif +ifeq ($(TARGET_BASE_ARCH), cris) +VL_OBJS+= etraxfs.o +VL_OBJS+= ptimer.o +VL_OBJS+= etraxfs_timer.o +VL_OBJS+= etraxfs_ser.o +endif +ifeq ($(TARGET_BASE_ARCH), sparc) +ifeq ($(TARGET_ARCH), sparc64) +VL_OBJS+= sun4u.o ide.o pckbd.o ps2.o vga.o apb_pci.o +VL_OBJS+= fdc.o mc146818rtc.o serial.o m48t59.o +VL_OBJS+= cirrus_vga.o parallel.o ptimer.o +else +VL_OBJS+= sun4m.o tcx.o pcnet.o iommu.o m48t59.o slavio_intctl.o +VL_OBJS+= slavio_timer.o slavio_serial.o slavio_misc.o fdc.o esp.o sparc32_dma.o +VL_OBJS+= cs4231.o ptimer.o eccmemctl.o sbi.o sun4c_intctl.o +endif +endif +ifeq ($(TARGET_BASE_ARCH), arm) +VL_OBJS+= integratorcp.o versatilepb.o ps2.o smc91c111.o arm_pic.o arm_timer.o +VL_OBJS+= arm_boot.o pl011.o pl031.o pl050.o pl080.o pl110.o pl181.o pl190.o +VL_OBJS+= versatile_pci.o ptimer.o +VL_OBJS+= realview_gic.o realview.o arm_sysctl.o mpcore.o +VL_OBJS+= armv7m.o armv7m_nvic.o stellaris.o pl022.o stellaris_enet.o +VL_OBJS+= pl061.o +VL_OBJS+= arm-semi.o +VL_OBJS+= pxa2xx.o pxa2xx_pic.o pxa2xx_gpio.o pxa2xx_timer.o pxa2xx_dma.o +VL_OBJS+= pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o +VL_OBJS+= pflash_cfi01.o gumstix.o +VL_OBJS+= spitz.o ide.o serial.o nand.o ecc.o +VL_OBJS+= omap.o omap_lcdc.o omap1_clk.o omap_mmc.o omap_i2c.o +VL_OBJS+= palm.o tsc210x.o +VL_OBJS+= mst_fpga.o mainstone.o +VL_OBJS+= mc1322x.o +CPPFLAGS += -DHAS_AUDIO +endif +ifeq ($(TARGET_BASE_ARCH), sh4) +VL_OBJS+= shix.o r2d.o sh7750.o sh7750_regnames.o tc58128.o +VL_OBJS+= sh_timer.o ptimer.o sh_serial.o sh_intc.o +endif +ifeq ($(TARGET_BASE_ARCH), m68k) +VL_OBJS+= an5206.o mcf5206.o ptimer.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o +VL_OBJS+= m68k-semi.o dummy_m68k.o +endif +ifdef CONFIG_GDBSTUB +VL_OBJS+=gdbstub.o +endif +ifdef CONFIG_COCOA +COCOA_LIBS=-F/System/Library/Frameworks -framework Cocoa -framework IOKit +ifdef CONFIG_COREAUDIO +COCOA_LIBS+=-framework CoreAudio +endif +endif +ifdef CONFIG_SLIRP +CPPFLAGS+=-I$(SRC_PATH)/slirp +endif + +VL_LDFLAGS=$(VL_OS_LDFLAGS) +VL_LIBS=$(AIOLIBS) +# specific flags are needed for non soft mmu emulator +ifdef CONFIG_STATIC +VL_LDFLAGS+=-static +endif +ifndef CONFIG_SOFTMMU +VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/i386-vl.ld +endif +ifndef CONFIG_DARWIN +ifndef CONFIG_WIN32 +ifndef CONFIG_SOLARIS +VL_LIBS+=-lutil +endif +endif +endif +ifdef TARGET_GPROF +vl.o: BASE_CFLAGS+=-p +VL_LDFLAGS+=-p +endif + +ifeq ($(ARCH),ia64) +VL_LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/ia64.ld +endif + +ifeq ($(ARCH),sparc64) + VL_LDFLAGS+=-m64 + ifneq ($(CONFIG_SOLARIS),yes) + VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld + endif +endif + +ifeq ($(ARCH),x86_64) + VL_LDFLAGS+=-m64 + ifneq ($(CONFIG_SOLARIS),yes) + VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld + endif +endif + +ifdef CONFIG_WIN32 +SDL_LIBS := $(filter-out -mwindows, $(SDL_LIBS)) -mconsole +endif + +$(QEMU_SYSTEM): $(VL_OBJS) ../libqemu_common.a libqemu.a + $(CC) $(VL_LDFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(VL_LIBS) + +depend: $(SRCS) + $(CC) -MM $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) $^ 1>.depend + +vldepend: $(VL_OBJS:.o=.c) + $(CC) -MM $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) $^ 1>.depend + +# libqemu + +libqemu.a: $(LIBOBJS) + rm -f $@ + $(AR) rcs $@ $(LIBOBJS) + +translate.o: translate.c gen-op.h opc.h cpu.h + +translate-all.o: translate-all.c opc.h cpu.h + +translate-op.o: translate-all.c op.h opc.h cpu.h + +op.h: op.o $(DYNGEN) + $(DYNGEN) -o $@ $< + +opc.h: op.o $(DYNGEN) + $(DYNGEN) -c -o $@ $< + +gen-op.h: op.o $(DYNGEN) + $(DYNGEN) -g -o $@ $< + +op.o: op.c + $(CC) $(OP_CFLAGS) $(CPPFLAGS) -c -o $@ $< + +# HELPER_CFLAGS is used for all the code compiled with static register +# variables +ifeq ($(TARGET_BASE_ARCH), i386) +# XXX: rename helper.c to op_helper.c +helper.o: helper.c + $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< +else +op_helper.o: op_helper.c + $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< +endif + +cpu-exec.o: cpu-exec.c + $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< + +# Note: this is a workaround. The real fix is to avoid compiling +# cpu_signal_handler() in cpu-exec.c. +signal.o: signal.c + $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< + +%.o: %.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< + +%.o: %.S + $(CC) $(CPPFLAGS) -c -o $@ $< + +clean: + rm -f *.o *.a *~ $(PROGS) gen-op.h opc.h op.h nwfpe/*.o fpu/*.o + rm -f *.d */*.d + +install: all +ifneq ($(PROGS),) + $(INSTALL) -m 755 -s $(PROGS) "$(DESTDIR)$(bindir)" +endif + +ifneq ($(wildcard .depend),) +include .depend +endif + +ifeq (1, 0) +audio.o sdlaudio.o dsoundaudio.o ossaudio.o wavaudio.o noaudio.o \ +fmodaudio.o alsaaudio.o mixeng.o sb16.o es1370.o gus.o adlib.o: \ +CFLAGS := $(CFLAGS) -Wall -Werror -W -Wsign-compare +endif + +# Include automatically generated dependency files +-include $(wildcard *.d */*.d) diff --git a/qemu/README.qemu.mc1322x b/qemu/README.qemu.mc1322x new file mode 100644 index 000000000..d334793bc --- /dev/null +++ b/qemu/README.qemu.mc1322x @@ -0,0 +1,15 @@ +apt-get source qemu +use these files in place of those in the qemu tree + +Build qemu + ./configure --target-list=arm-softmmu + make + +Run with + arm-softmmu/qemu-system-arm -S -M mc1322x -nographic -pflash /home/malvira/mc1322x-tests/tests/blink-red.bin + +which will load the bin at 0x00400000 and execution will start there (type c). + +I plan to add a way to load a rom image as well... + + diff --git a/qemu/hw/boards.h b/qemu/hw/boards.h new file mode 100644 index 000000000..6e56cb37a --- /dev/null +++ b/qemu/hw/boards.h @@ -0,0 +1,104 @@ +/* Declarations for use by board files for creating devices. */ + +#ifndef HW_BOARDS_H +#define HW_BOARDS_H + +typedef void QEMUMachineInitFunc(int ram_size, int vga_ram_size, + const char *boot_device, DisplayState *ds, + const char *kernel_filename, + const char *kernel_cmdline, + const char *initrd_filename, + const char *cpu_model); + +typedef struct QEMUMachine { + const char *name; + const char *desc; + QEMUMachineInitFunc *init; + struct QEMUMachine *next; +} QEMUMachine; + +int qemu_register_machine(QEMUMachine *m); + +/* Axis ETRAX. */ +extern QEMUMachine bareetraxfs_machine; + +/* pc.c */ +extern QEMUMachine pc_machine; +extern QEMUMachine isapc_machine; + +/* ppc.c */ +extern QEMUMachine prep_machine; +extern QEMUMachine core99_machine; +extern QEMUMachine heathrow_machine; +extern QEMUMachine ref405ep_machine; +extern QEMUMachine taihu_machine; + +/* mips_r4k.c */ +extern QEMUMachine mips_machine; + +/* mips_malta.c */ +extern QEMUMachine mips_malta_machine; + +/* mips_pica61.c */ +extern QEMUMachine mips_pica61_machine; + +/* mips_mipssim.c */ +extern QEMUMachine mips_mipssim_machine; + +/* shix.c */ +extern QEMUMachine shix_machine; + +/* r2d.c */ +extern QEMUMachine r2d_machine; + +/* sun4m.c */ +extern QEMUMachine ss5_machine, ss10_machine, ss600mp_machine, ss20_machine; +extern QEMUMachine ss2_machine; +extern QEMUMachine ss1000_machine, ss2000_machine; + +/* sun4u.c */ +extern QEMUMachine sun4u_machine; + +/* integratorcp.c */ +extern QEMUMachine integratorcp_machine; + +/* versatilepb.c */ +extern QEMUMachine versatilepb_machine; +extern QEMUMachine versatileab_machine; + +/* realview.c */ +extern QEMUMachine realview_machine; + +/* spitz.c */ +extern QEMUMachine akitapda_machine; +extern QEMUMachine spitzpda_machine; +extern QEMUMachine borzoipda_machine; +extern QEMUMachine terrierpda_machine; + +/* palm.c */ +extern QEMUMachine palmte_machine; + +/* gumstix.c */ +extern QEMUMachine connex_machine; +extern QEMUMachine verdex_machine; + +/* mc1322x.c */ +extern QEMUMachine mc1322x_machine; + +/* stellaris.c */ +extern QEMUMachine lm3s811evb_machine; +extern QEMUMachine lm3s6965evb_machine; + +/* an5206.c */ +extern QEMUMachine an5206_machine; + +/* mcf5208.c */ +extern QEMUMachine mcf5208evb_machine; + +/* dummy_m68k.c */ +extern QEMUMachine dummy_m68k_machine; + +/* mainstone.c */ +extern QEMUMachine mainstone2_machine; + +#endif diff --git a/qemu/hw/mc1322x.c b/qemu/hw/mc1322x.c new file mode 100644 index 000000000..39bf026d5 --- /dev/null +++ b/qemu/hw/mc1322x.c @@ -0,0 +1,56 @@ +/* Freescale mc1322x support + * + * Copyright (c) 2009 Mariano Alvira + * Written by Mariano Alvira + * + * This code is licenced under the GPL. + */ + +#include "hw.h" +#include "mc1322x.h" +#include "sysemu.h" +#include "boards.h" +#include "flash.h" + +static const int sector_len = 128 * 1024; + +/* Initialize a MC1322x (ARM7) */ +struct mc1322x_state_s *mc1322x_init(void) +{ + struct mc1322x_state_s *s; + int index; + + s = (struct mc1322x_state_s *) qemu_mallocz(sizeof(struct mc1322x_state_s)); + + s->env = cpu_init("mc1322x"); + if (!s->env) { + fprintf(stderr, "Unable to find CPU definition\n"); + exit(1); + } + register_savevm("cpu", 0, ARM_CPU_SAVE_VERSION, cpu_save, cpu_load, + s->env); + + /* SDRAM & Internal Memory Storage */ + cpu_register_physical_memory(MC1322X_ROMBASE, MC1322X_ROMSIZE, + qemu_ram_alloc(MC1322X_ROMSIZE) | IO_MEM_RAM); + cpu_register_physical_memory(MC1322X_RAMBASE, MC1322X_RAMSIZE, + qemu_ram_alloc(MC1322X_RAMSIZE) | IO_MEM_RAM); + + index = drive_get_index(IF_PFLASH, 0, 0); + if (!pflash_cfi01_register(0x00400000, qemu_ram_alloc(MC1322X_RAMBASE), + drives_table[index].bdrv, sector_len, MC1322X_RAMBASE / sector_len, + 2, 0, 0, 0, 0)) { + fprintf(stderr, "qemu: Error registering flash memory.\n"); + exit(1); + } + + s->env->regs[15] = 0x00400000; + + return s; +} + +QEMUMachine mc1322x_machine = { + "mc1322x", + "mc1322x board", + mc1322x_init, +}; diff --git a/qemu/hw/mc1322x.h b/qemu/hw/mc1322x.h new file mode 100644 index 000000000..1d7a36253 --- /dev/null +++ b/qemu/hw/mc1322x.h @@ -0,0 +1,37 @@ +/* Freescale mc1322x support + * + * Copyright (c) 2009 Mariano Alvira + * Written by Mariano Alvira + * + * This code is licenced under the GPL. + */ + +#ifndef PXA_H +#define PXA_H "pxa.h" + +#define MC1322X_ROMBASE 0x00000000 +#define MC1322X_ROMSIZE 0x00014000 +#define MC1322X_RAMBASE 0x04000000 +#define MC1322X_RAMSIZE 0x00020000 + +/* mc1322x.c */ +struct mc1322x_state_s { + CPUState *env; + qemu_irq *pic; + qemu_irq reset; + struct mc1322x_gpio_info_s *gpio; + struct mc1322x_keypad_s *kp; + + /* Power management */ + target_phys_addr_t pm_base; + uint32_t pm_regs[0x40]; + + /* Clock management */ + target_phys_addr_t cm_base; + uint32_t cm_regs[4]; + uint32_t clkcfg; + +}; + + +#endif diff --git a/qemu/target-arm/helper.c b/qemu/target-arm/helper.c new file mode 100644 index 000000000..19f0a215c --- /dev/null +++ b/qemu/target-arm/helper.c @@ -0,0 +1,1864 @@ +#include +#include +#include + +#include "cpu.h" +#include "exec-all.h" +#include "gdbstub.h" + +static uint32_t cortexa8_cp15_c0_c1[8] = +{ 0x1031, 0x11, 0x400, 0, 0x31100003, 0x20000000, 0x01202000, 0x11 }; + +static uint32_t cortexa8_cp15_c0_c2[8] = +{ 0x00101111, 0x12112111, 0x21232031, 0x11112131, 0x00111142, 0, 0, 0 }; + +static uint32_t mpcore_cp15_c0_c1[8] = +{ 0x111, 0x1, 0, 0x2, 0x01100103, 0x10020302, 0x01222000, 0 }; + +static uint32_t mpcore_cp15_c0_c2[8] = +{ 0x00100011, 0x12002111, 0x11221011, 0x01102131, 0x141, 0, 0, 0 }; + +static uint32_t arm1136_cp15_c0_c1[8] = +{ 0x111, 0x1, 0x2, 0x3, 0x01130003, 0x10030302, 0x01222110, 0 }; + +static uint32_t arm1136_cp15_c0_c2[8] = +{ 0x00140011, 0x12002111, 0x11231111, 0x01102131, 0x141, 0, 0, 0 }; + +static uint32_t cpu_arm_find_by_name(const char *name); + +static inline void set_feature(CPUARMState *env, int feature) +{ + env->features |= 1u << feature; +} + +static void cpu_reset_model_id(CPUARMState *env, uint32_t id) +{ + env->cp15.c0_cpuid = id; + switch (id) { + case ARM_CPUID_ARM926: + set_feature(env, ARM_FEATURE_VFP); + env->vfp.xregs[ARM_VFP_FPSID] = 0x41011090; + env->cp15.c0_cachetype = 0x1dd20d2; + env->cp15.c1_sys = 0x00090078; + break; + case ARM_CPUID_ARM946: + set_feature(env, ARM_FEATURE_MPU); + env->cp15.c0_cachetype = 0x0f004006; + env->cp15.c1_sys = 0x00000078; + break; + case ARM_CPUID_ARM1026: + set_feature(env, ARM_FEATURE_VFP); + set_feature(env, ARM_FEATURE_AUXCR); + env->vfp.xregs[ARM_VFP_FPSID] = 0x410110a0; + env->cp15.c0_cachetype = 0x1dd20d2; + env->cp15.c1_sys = 0x00090078; + break; + case ARM_CPUID_ARM1136: + set_feature(env, ARM_FEATURE_V6); + set_feature(env, ARM_FEATURE_VFP); + set_feature(env, ARM_FEATURE_AUXCR); + env->vfp.xregs[ARM_VFP_FPSID] = 0x410120b4; + env->vfp.xregs[ARM_VFP_MVFR0] = 0x11111111; + env->vfp.xregs[ARM_VFP_MVFR1] = 0x00000000; + memcpy(env->cp15.c0_c1, arm1136_cp15_c0_c1, 8 * sizeof(uint32_t)); + memcpy(env->cp15.c0_c1, arm1136_cp15_c0_c2, 8 * sizeof(uint32_t)); + env->cp15.c0_cachetype = 0x1dd20d2; + break; + case ARM_CPUID_ARM11MPCORE: + set_feature(env, ARM_FEATURE_V6); + set_feature(env, ARM_FEATURE_V6K); + set_feature(env, ARM_FEATURE_VFP); + set_feature(env, ARM_FEATURE_AUXCR); + env->vfp.xregs[ARM_VFP_FPSID] = 0x410120b4; + env->vfp.xregs[ARM_VFP_MVFR0] = 0x11111111; + env->vfp.xregs[ARM_VFP_MVFR1] = 0x00000000; + memcpy(env->cp15.c0_c1, mpcore_cp15_c0_c1, 8 * sizeof(uint32_t)); + memcpy(env->cp15.c0_c1, mpcore_cp15_c0_c2, 8 * sizeof(uint32_t)); + env->cp15.c0_cachetype = 0x1dd20d2; + break; + case ARM_CPUID_CORTEXA8: + set_feature(env, ARM_FEATURE_V6); + set_feature(env, ARM_FEATURE_V6K); + set_feature(env, ARM_FEATURE_V7); + set_feature(env, ARM_FEATURE_AUXCR); + set_feature(env, ARM_FEATURE_THUMB2); + set_feature(env, ARM_FEATURE_VFP); + set_feature(env, ARM_FEATURE_VFP3); + set_feature(env, ARM_FEATURE_NEON); + env->vfp.xregs[ARM_VFP_FPSID] = 0x410330c0; + env->vfp.xregs[ARM_VFP_MVFR0] = 0x11110222; + env->vfp.xregs[ARM_VFP_MVFR1] = 0x00011100; + memcpy(env->cp15.c0_c1, cortexa8_cp15_c0_c1, 8 * sizeof(uint32_t)); + memcpy(env->cp15.c0_c1, cortexa8_cp15_c0_c2, 8 * sizeof(uint32_t)); + env->cp15.c0_cachetype = 0x1dd20d2; + break; + case ARM_CPUID_CORTEXM3: + set_feature(env, ARM_FEATURE_V6); + set_feature(env, ARM_FEATURE_THUMB2); + set_feature(env, ARM_FEATURE_V7); + set_feature(env, ARM_FEATURE_M); + set_feature(env, ARM_FEATURE_DIV); + break; + case ARM_CPUID_ANY: /* For userspace emulation. */ + set_feature(env, ARM_FEATURE_V6); + set_feature(env, ARM_FEATURE_V6K); + set_feature(env, ARM_FEATURE_V7); + set_feature(env, ARM_FEATURE_THUMB2); + set_feature(env, ARM_FEATURE_VFP); + set_feature(env, ARM_FEATURE_VFP3); + set_feature(env, ARM_FEATURE_NEON); + set_feature(env, ARM_FEATURE_DIV); + break; + case ARM_CPUID_TI915T: + case ARM_CPUID_TI925T: + set_feature(env, ARM_FEATURE_OMAPCP); + env->cp15.c0_cpuid = ARM_CPUID_TI925T; /* Depends on wiring. */ + env->cp15.c0_cachetype = 0x5109149; + env->cp15.c1_sys = 0x00000070; + env->cp15.c15_i_max = 0x000; + env->cp15.c15_i_min = 0xff0; + break; + case ARM_CPUID_PXA250: + case ARM_CPUID_PXA255: + case ARM_CPUID_PXA260: + case ARM_CPUID_PXA261: + case ARM_CPUID_PXA262: + set_feature(env, ARM_FEATURE_XSCALE); + /* JTAG_ID is ((id << 28) | 0x09265013) */ + env->cp15.c0_cachetype = 0xd172172; + env->cp15.c1_sys = 0x00000078; + break; + case ARM_CPUID_PXA270_A0: + case ARM_CPUID_PXA270_A1: + case ARM_CPUID_PXA270_B0: + case ARM_CPUID_PXA270_B1: + case ARM_CPUID_PXA270_C0: + case ARM_CPUID_PXA270_C5: + set_feature(env, ARM_FEATURE_XSCALE); + /* JTAG_ID is ((id << 28) | 0x09265013) */ + set_feature(env, ARM_FEATURE_IWMMXT); + env->iwmmxt.cregs[ARM_IWMMXT_wCID] = 0x69051000 | 'Q'; + env->cp15.c0_cachetype = 0xd172172; + env->cp15.c1_sys = 0x00000078; + break; + default: + cpu_abort(env, "Bad CPU ID: %x\n", id); + break; + } +} + +void cpu_reset(CPUARMState *env) +{ + uint32_t id; + id = env->cp15.c0_cpuid; + memset(env, 0, offsetof(CPUARMState, breakpoints)); + if (id) + cpu_reset_model_id(env, id); +#if defined (CONFIG_USER_ONLY) + env->uncached_cpsr = ARM_CPU_MODE_USR; + env->vfp.xregs[ARM_VFP_FPEXC] = 1 << 30; +#else + /* SVC mode with interrupts disabled. */ + env->uncached_cpsr = ARM_CPU_MODE_SVC | CPSR_A | CPSR_F | CPSR_I; + /* On ARMv7-M the CPSR_I is the value of the PRIMASK register, and is + clear at reset. */ + if (IS_M(env)) + env->uncached_cpsr &= ~CPSR_I; + env->vfp.xregs[ARM_VFP_FPEXC] = 0; +#endif + env->regs[15] = 0; + tlb_flush(env, 1); +} + +CPUARMState *cpu_arm_init(const char *cpu_model) +{ + CPUARMState *env; + uint32_t id; + + id = cpu_arm_find_by_name(cpu_model); + if (id == 0) + return NULL; + env = qemu_mallocz(sizeof(CPUARMState)); + if (!env) + return NULL; + cpu_exec_init(env); + env->cpu_model_str = cpu_model; + env->cp15.c0_cpuid = id; + cpu_reset(env); + return env; +} + +struct arm_cpu_t { + uint32_t id; + const char *name; +}; + +static const struct arm_cpu_t arm_cpu_names[] = { + { ARM_CPUID_ARM926, "arm926"}, + { ARM_CPUID_ARM946, "arm946"}, + { ARM_CPUID_ARM1026, "arm1026"}, + { ARM_CPUID_ARM1136, "arm1136"}, + { ARM_CPUID_ARM11MPCORE, "arm11mpcore"}, + { ARM_CPUID_CORTEXM3, "cortex-m3"}, + { ARM_CPUID_CORTEXA8, "cortex-a8"}, + { ARM_CPUID_TI925T, "ti925t" }, + { ARM_CPUID_PXA250, "pxa250" }, + { ARM_CPUID_PXA255, "pxa255" }, + { ARM_CPUID_PXA260, "pxa260" }, + { ARM_CPUID_PXA261, "pxa261" }, + { ARM_CPUID_PXA262, "pxa262" }, + { ARM_CPUID_PXA270, "pxa270" }, + { ARM_CPUID_PXA270_A0, "pxa270-a0" }, + { ARM_CPUID_PXA270_A1, "pxa270-a1" }, + { ARM_CPUID_PXA270_B0, "pxa270-b0" }, + { ARM_CPUID_PXA270_B1, "pxa270-b1" }, + { ARM_CPUID_PXA270_C0, "pxa270-c0" }, + { ARM_CPUID_PXA270_C5, "pxa270-c5" }, + { ARM_CPUID_ANY, "mc1322x" }, + { ARM_CPUID_ANY, "any"}, + { 0, NULL} +}; + +void arm_cpu_list(FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...)) +{ + int i; + + (*cpu_fprintf)(f, "Available CPUs:\n"); + for (i = 0; arm_cpu_names[i].name; i++) { + (*cpu_fprintf)(f, " %s\n", arm_cpu_names[i].name); + } +} + +/* return 0 if not found */ +static uint32_t cpu_arm_find_by_name(const char *name) +{ + int i; + uint32_t id; + + id = 0; + for (i = 0; arm_cpu_names[i].name; i++) { + if (strcmp(name, arm_cpu_names[i].name) == 0) { + id = arm_cpu_names[i].id; + break; + } + } + return id; +} + +void cpu_arm_close(CPUARMState *env) +{ + free(env); +} + +/* Polynomial multiplication is like integer multiplcation except the + partial products are XORed, not added. */ +uint32_t helper_neon_mul_p8(uint32_t op1, uint32_t op2) +{ + uint32_t mask; + uint32_t result; + result = 0; + while (op1) { + mask = 0; + if (op1 & 1) + mask |= 0xff; + if (op1 & (1 << 8)) + mask |= (0xff << 8); + if (op1 & (1 << 16)) + mask |= (0xff << 16); + if (op1 & (1 << 24)) + mask |= (0xff << 24); + result ^= op2 & mask; + op1 = (op1 >> 1) & 0x7f7f7f7f; + op2 = (op2 << 1) & 0xfefefefe; + } + return result; +} + +uint32_t cpsr_read(CPUARMState *env) +{ + int ZF; + ZF = (env->NZF == 0); + return env->uncached_cpsr | (env->NZF & 0x80000000) | (ZF << 30) | + (env->CF << 29) | ((env->VF & 0x80000000) >> 3) | (env->QF << 27) + | (env->thumb << 5) | ((env->condexec_bits & 3) << 25) + | ((env->condexec_bits & 0xfc) << 8) + | (env->GE << 16); +} + +void cpsr_write(CPUARMState *env, uint32_t val, uint32_t mask) +{ + /* NOTE: N = 1 and Z = 1 cannot be stored currently */ + if (mask & CPSR_NZCV) { + env->NZF = (val & 0xc0000000) ^ 0x40000000; + env->CF = (val >> 29) & 1; + env->VF = (val << 3) & 0x80000000; + } + if (mask & CPSR_Q) + env->QF = ((val & CPSR_Q) != 0); + if (mask & CPSR_T) + env->thumb = ((val & CPSR_T) != 0); + if (mask & CPSR_IT_0_1) { + env->condexec_bits &= ~3; + env->condexec_bits |= (val >> 25) & 3; + } + if (mask & CPSR_IT_2_7) { + env->condexec_bits &= 3; + env->condexec_bits |= (val >> 8) & 0xfc; + } + if (mask & CPSR_GE) { + env->GE = (val >> 16) & 0xf; + } + + if ((env->uncached_cpsr ^ val) & mask & CPSR_M) { + switch_mode(env, val & CPSR_M); + } + mask &= ~CACHED_CPSR_BITS; + env->uncached_cpsr = (env->uncached_cpsr & ~mask) | (val & mask); +} + +#if defined(CONFIG_USER_ONLY) + +void do_interrupt (CPUState *env) +{ + env->exception_index = -1; +} + +/* Structure used to record exclusive memory locations. */ +typedef struct mmon_state { + struct mmon_state *next; + CPUARMState *cpu_env; + uint32_t addr; +} mmon_state; + +/* Chain of current locks. */ +static mmon_state* mmon_head = NULL; + +int cpu_arm_handle_mmu_fault (CPUState *env, target_ulong address, int rw, + int mmu_idx, int is_softmmu) +{ + if (rw == 2) { + env->exception_index = EXCP_PREFETCH_ABORT; + env->cp15.c6_insn = address; + } else { + env->exception_index = EXCP_DATA_ABORT; + env->cp15.c6_data = address; + } + return 1; +} + +static void allocate_mmon_state(CPUState *env) +{ + env->mmon_entry = malloc(sizeof (mmon_state)); + if (!env->mmon_entry) + abort(); + memset (env->mmon_entry, 0, sizeof (mmon_state)); + env->mmon_entry->cpu_env = env; + mmon_head = env->mmon_entry; +} + +/* Flush any monitor locks for the specified address. */ +static void flush_mmon(uint32_t addr) +{ + mmon_state *mon; + + for (mon = mmon_head; mon; mon = mon->next) + { + if (mon->addr != addr) + continue; + + mon->addr = 0; + break; + } +} + +/* Mark an address for exclusive access. */ +void helper_mark_exclusive(CPUState *env, uint32_t addr) +{ + if (!env->mmon_entry) + allocate_mmon_state(env); + /* Clear any previous locks. */ + flush_mmon(addr); + env->mmon_entry->addr = addr; +} + +/* Test if an exclusive address is still exclusive. Returns zero + if the address is still exclusive. */ +int helper_test_exclusive(CPUState *env, uint32_t addr) +{ + int res; + + if (!env->mmon_entry) + return 1; + if (env->mmon_entry->addr == addr) + res = 0; + else + res = 1; + flush_mmon(addr); + return res; +} + +void helper_clrex(CPUState *env) +{ + if (!(env->mmon_entry && env->mmon_entry->addr)) + return; + flush_mmon(env->mmon_entry->addr); +} + +target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr) +{ + return addr; +} + +/* These should probably raise undefined insn exceptions. */ +void helper_set_cp(CPUState *env, uint32_t insn, uint32_t val) +{ + int op1 = (insn >> 8) & 0xf; + cpu_abort(env, "cp%i insn %08x\n", op1, insn); + return; +} + +uint32_t helper_get_cp(CPUState *env, uint32_t insn) +{ + int op1 = (insn >> 8) & 0xf; + cpu_abort(env, "cp%i insn %08x\n", op1, insn); + return 0; +} + +void helper_set_cp15(CPUState *env, uint32_t insn, uint32_t val) +{ + cpu_abort(env, "cp15 insn %08x\n", insn); +} + +uint32_t helper_get_cp15(CPUState *env, uint32_t insn) +{ + cpu_abort(env, "cp15 insn %08x\n", insn); + return 0; +} + +/* These should probably raise undefined insn exceptions. */ +void helper_v7m_msr(CPUState *env, int reg, uint32_t val) +{ + cpu_abort(env, "v7m_mrs %d\n", reg); +} + +uint32_t helper_v7m_mrs(CPUState *env, int reg) +{ + cpu_abort(env, "v7m_mrs %d\n", reg); + return 0; +} + +void switch_mode(CPUState *env, int mode) +{ + if (mode != ARM_CPU_MODE_USR) + cpu_abort(env, "Tried to switch out of user mode\n"); +} + +void helper_set_r13_banked(CPUState *env, int mode, uint32_t val) +{ + cpu_abort(env, "banked r13 write\n"); +} + +uint32_t helper_get_r13_banked(CPUState *env, int mode) +{ + cpu_abort(env, "banked r13 read\n"); + return 0; +} + +#else + +extern int semihosting_enabled; + +/* Map CPU modes onto saved register banks. */ +static inline int bank_number (int mode) +{ + switch (mode) { + case ARM_CPU_MODE_USR: + case ARM_CPU_MODE_SYS: + return 0; + case ARM_CPU_MODE_SVC: + return 1; + case ARM_CPU_MODE_ABT: + return 2; + case ARM_CPU_MODE_UND: + return 3; + case ARM_CPU_MODE_IRQ: + return 4; + case ARM_CPU_MODE_FIQ: + return 5; + } + cpu_abort(cpu_single_env, "Bad mode %x\n", mode); + return -1; +} + +void switch_mode(CPUState *env, int mode) +{ + int old_mode; + int i; + + old_mode = env->uncached_cpsr & CPSR_M; + if (mode == old_mode) + return; + + if (old_mode == ARM_CPU_MODE_FIQ) { + memcpy (env->fiq_regs, env->regs + 8, 5 * sizeof(uint32_t)); + memcpy (env->regs + 8, env->usr_regs, 5 * sizeof(uint32_t)); + } else if (mode == ARM_CPU_MODE_FIQ) { + memcpy (env->usr_regs, env->regs + 8, 5 * sizeof(uint32_t)); + memcpy (env->regs + 8, env->fiq_regs, 5 * sizeof(uint32_t)); + } + + i = bank_number(old_mode); + env->banked_r13[i] = env->regs[13]; + env->banked_r14[i] = env->regs[14]; + env->banked_spsr[i] = env->spsr; + + i = bank_number(mode); + env->regs[13] = env->banked_r13[i]; + env->regs[14] = env->banked_r14[i]; + env->spsr = env->banked_spsr[i]; +} + +static void v7m_push(CPUARMState *env, uint32_t val) +{ + env->regs[13] -= 4; + stl_phys(env->regs[13], val); +} + +static uint32_t v7m_pop(CPUARMState *env) +{ + uint32_t val; + val = ldl_phys(env->regs[13]); + env->regs[13] += 4; + return val; +} + +/* Switch to V7M main or process stack pointer. */ +static void switch_v7m_sp(CPUARMState *env, int process) +{ + uint32_t tmp; + if (env->v7m.current_sp != process) { + tmp = env->v7m.other_sp; + env->v7m.other_sp = env->regs[13]; + env->regs[13] = tmp; + env->v7m.current_sp = process; + } +} + +static void do_v7m_exception_exit(CPUARMState *env) +{ + uint32_t type; + uint32_t xpsr; + + type = env->regs[15]; + if (env->v7m.exception != 0) + armv7m_nvic_complete_irq(env->v7m.nvic, env->v7m.exception); + + /* Switch to the target stack. */ + switch_v7m_sp(env, (type & 4) != 0); + /* Pop registers. */ + env->regs[0] = v7m_pop(env); + env->regs[1] = v7m_pop(env); + env->regs[2] = v7m_pop(env); + env->regs[3] = v7m_pop(env); + env->regs[12] = v7m_pop(env); + env->regs[14] = v7m_pop(env); + env->regs[15] = v7m_pop(env); + xpsr = v7m_pop(env); + xpsr_write(env, xpsr, 0xfffffdff); + /* Undo stack alignment. */ + if (xpsr & 0x200) + env->regs[13] |= 4; + /* ??? The exception return type specifies Thread/Handler mode. However + this is also implied by the xPSR value. Not sure what to do + if there is a mismatch. */ + /* ??? Likewise for mismatches between the CONTROL register and the stack + pointer. */ +} + +void do_interrupt_v7m(CPUARMState *env) +{ + uint32_t xpsr = xpsr_read(env); + uint32_t lr; + uint32_t addr; + + lr = 0xfffffff1; + if (env->v7m.current_sp) + lr |= 4; + if (env->v7m.exception == 0) + lr |= 8; + + /* For exceptions we just mark as pending on the NVIC, and let that + handle it. */ + /* TODO: Need to escalate if the current priority is higher than the + one we're raising. */ + switch (env->exception_index) { + case EXCP_UDEF: + armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_USAGE); + return; + case EXCP_SWI: + env->regs[15] += 2; + armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_SVC); + return; + case EXCP_PREFETCH_ABORT: + case EXCP_DATA_ABORT: + armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_MEM); + return; + case EXCP_BKPT: + if (semihosting_enabled) { + int nr; + nr = lduw_code(env->regs[15]) & 0xff; + if (nr == 0xab) { + env->regs[15] += 2; + env->regs[0] = do_arm_semihosting(env); + return; + } + } + armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_DEBUG); + return; + case EXCP_IRQ: + env->v7m.exception = armv7m_nvic_acknowledge_irq(env->v7m.nvic); + break; + case EXCP_EXCEPTION_EXIT: + do_v7m_exception_exit(env); + return; + default: + cpu_abort(env, "Unhandled exception 0x%x\n", env->exception_index); + return; /* Never happens. Keep compiler happy. */ + } + + /* Align stack pointer. */ + /* ??? Should only do this if Configuration Control Register + STACKALIGN bit is set. */ + if (env->regs[13] & 4) { + env->regs[13] += 4; + xpsr |= 0x200; + } + /* Switch to the hander mode. */ + v7m_push(env, xpsr); + v7m_push(env, env->regs[15]); + v7m_push(env, env->regs[14]); + v7m_push(env, env->regs[12]); + v7m_push(env, env->regs[3]); + v7m_push(env, env->regs[2]); + v7m_push(env, env->regs[1]); + v7m_push(env, env->regs[0]); + switch_v7m_sp(env, 0); + env->uncached_cpsr &= ~CPSR_IT; + env->regs[14] = lr; + addr = ldl_phys(env->v7m.vecbase + env->v7m.exception * 4); + env->regs[15] = addr & 0xfffffffe; + env->thumb = addr & 1; +} + +/* Handle a CPU exception. */ +void do_interrupt(CPUARMState *env) +{ + uint32_t addr; + uint32_t mask; + int new_mode; + uint32_t offset; + + if (IS_M(env)) { + do_interrupt_v7m(env); + return; + } + /* TODO: Vectored interrupt controller. */ + switch (env->exception_index) { + case EXCP_UDEF: + new_mode = ARM_CPU_MODE_UND; + addr = 0x04; + mask = CPSR_I; + if (env->thumb) + offset = 2; + else + offset = 4; + break; + case EXCP_SWI: + if (semihosting_enabled) { + /* Check for semihosting interrupt. */ + if (env->thumb) { + mask = lduw_code(env->regs[15] - 2) & 0xff; + } else { + mask = ldl_code(env->regs[15] - 4) & 0xffffff; + } + /* Only intercept calls from privileged modes, to provide some + semblance of security. */ + if (((mask == 0x123456 && !env->thumb) + || (mask == 0xab && env->thumb)) + && (env->uncached_cpsr & CPSR_M) != ARM_CPU_MODE_USR) { + env->regs[0] = do_arm_semihosting(env); + return; + } + } + new_mode = ARM_CPU_MODE_SVC; + addr = 0x08; + mask = CPSR_I; + /* The PC already points to the next instructon. */ + offset = 0; + break; + case EXCP_BKPT: + /* See if this is a semihosting syscall. */ + if (env->thumb && semihosting_enabled) { + mask = lduw_code(env->regs[15]) & 0xff; + if (mask == 0xab + && (env->uncached_cpsr & CPSR_M) != ARM_CPU_MODE_USR) { + env->regs[15] += 2; + env->regs[0] = do_arm_semihosting(env); + return; + } + } + /* Fall through to prefetch abort. */ + case EXCP_PREFETCH_ABORT: + new_mode = ARM_CPU_MODE_ABT; + addr = 0x0c; + mask = CPSR_A | CPSR_I; + offset = 4; + break; + case EXCP_DATA_ABORT: + new_mode = ARM_CPU_MODE_ABT; + addr = 0x10; + mask = CPSR_A | CPSR_I; + offset = 8; + break; + case EXCP_IRQ: + new_mode = ARM_CPU_MODE_IRQ; + addr = 0x18; + /* Disable IRQ and imprecise data aborts. */ + mask = CPSR_A | CPSR_I; + offset = 4; + break; + case EXCP_FIQ: + new_mode = ARM_CPU_MODE_FIQ; + addr = 0x1c; + /* Disable FIQ, IRQ and imprecise data aborts. */ + mask = CPSR_A | CPSR_I | CPSR_F; + offset = 4; + break; + default: + cpu_abort(env, "Unhandled exception 0x%x\n", env->exception_index); + return; /* Never happens. Keep compiler happy. */ + } + /* High vectors. */ + if (env->cp15.c1_sys & (1 << 13)) { + addr += 0xffff0000; + } + switch_mode (env, new_mode); + env->spsr = cpsr_read(env); + /* Clear IT bits. */ + env->condexec_bits = 0; + /* Switch to the new mode, and switch to Arm mode. */ + /* ??? Thumb interrupt handlers not implemented. */ + env->uncached_cpsr = (env->uncached_cpsr & ~CPSR_M) | new_mode; + env->uncached_cpsr |= mask; + env->thumb = 0; + env->regs[14] = env->regs[15] + offset; + env->regs[15] = addr; + env->interrupt_request |= CPU_INTERRUPT_EXITTB; +} + +/* Check section/page access permissions. + Returns the page protection flags, or zero if the access is not + permitted. */ +static inline int check_ap(CPUState *env, int ap, int domain, int access_type, + int is_user) +{ + int prot_ro; + + if (domain == 3) + return PAGE_READ | PAGE_WRITE; + + if (access_type == 1) + prot_ro = 0; + else + prot_ro = PAGE_READ; + + switch (ap) { + case 0: + if (access_type == 1) + return 0; + switch ((env->cp15.c1_sys >> 8) & 3) { + case 1: + return is_user ? 0 : PAGE_READ; + case 2: + return PAGE_READ; + default: + return 0; + } + case 1: + return is_user ? 0 : PAGE_READ | PAGE_WRITE; + case 2: + if (is_user) + return prot_ro; + else + return PAGE_READ | PAGE_WRITE; + case 3: + return PAGE_READ | PAGE_WRITE; + case 4: case 7: /* Reserved. */ + return 0; + case 5: + return is_user ? 0 : prot_ro; + case 6: + return prot_ro; + default: + abort(); + } +} + +static int get_phys_addr_v5(CPUState *env, uint32_t address, int access_type, + int is_user, uint32_t *phys_ptr, int *prot) +{ + int code; + uint32_t table; + uint32_t desc; + int type; + int ap; + int domain; + uint32_t phys_addr; + + /* Pagetable walk. */ + /* Lookup l1 descriptor. */ + if (address & env->cp15.c2_mask) + table = env->cp15.c2_base1; + else + table = env->cp15.c2_base0; + table = (table & 0xffffc000) | ((address >> 18) & 0x3ffc); + desc = ldl_phys(table); + type = (desc & 3); + domain = (env->cp15.c3 >> ((desc >> 4) & 0x1e)) & 3; + if (type == 0) { + /* Secton translation fault. */ + code = 5; + goto do_fault; + } + if (domain == 0 || domain == 2) { + if (type == 2) + code = 9; /* Section domain fault. */ + else + code = 11; /* Page domain fault. */ + goto do_fault; + } + if (type == 2) { + /* 1Mb section. */ + phys_addr = (desc & 0xfff00000) | (address & 0x000fffff); + ap = (desc >> 10) & 3; + code = 13; + } else { + /* Lookup l2 entry. */ + if (type == 1) { + /* Coarse pagetable. */ + table = (desc & 0xfffffc00) | ((address >> 10) & 0x3fc); + } else { + /* Fine pagetable. */ + table = (desc & 0xfffff000) | ((address >> 8) & 0xffc); + } + desc = ldl_phys(table); + switch (desc & 3) { + case 0: /* Page translation fault. */ + code = 7; + goto do_fault; + case 1: /* 64k page. */ + phys_addr = (desc & 0xffff0000) | (address & 0xffff); + ap = (desc >> (4 + ((address >> 13) & 6))) & 3; + break; + case 2: /* 4k page. */ + phys_addr = (desc & 0xfffff000) | (address & 0xfff); + ap = (desc >> (4 + ((address >> 13) & 6))) & 3; + break; + case 3: /* 1k page. */ + if (type == 1) { + if (arm_feature(env, ARM_FEATURE_XSCALE)) { + phys_addr = (desc & 0xfffff000) | (address & 0xfff); + } else { + /* Page translation fault. */ + code = 7; + goto do_fault; + } + } else { + phys_addr = (desc & 0xfffffc00) | (address & 0x3ff); + } + ap = (desc >> 4) & 3; + break; + default: + /* Never happens, but compiler isn't smart enough to tell. */ + abort(); + } + code = 15; + } + *prot = check_ap(env, ap, domain, access_type, is_user); + if (!*prot) { + /* Access permission fault. */ + goto do_fault; + } + *phys_ptr = phys_addr; + return 0; +do_fault: + return code | (domain << 4); +} + +static int get_phys_addr_v6(CPUState *env, uint32_t address, int access_type, + int is_user, uint32_t *phys_ptr, int *prot) +{ + int code; + uint32_t table; + uint32_t desc; + uint32_t xn; + int type; + int ap; + int domain; + uint32_t phys_addr; + + /* Pagetable walk. */ + /* Lookup l1 descriptor. */ + if (address & env->cp15.c2_mask) + table = env->cp15.c2_base1; + else + table = env->cp15.c2_base0; + table = (table & 0xffffc000) | ((address >> 18) & 0x3ffc); + desc = ldl_phys(table); + type = (desc & 3); + if (type == 0) { + /* Secton translation fault. */ + code = 5; + domain = 0; + goto do_fault; + } else if (type == 2 && (desc & (1 << 18))) { + /* Supersection. */ + domain = 0; + } else { + /* Section or page. */ + domain = (desc >> 4) & 0x1e; + } + domain = (env->cp15.c3 >> domain) & 3; + if (domain == 0 || domain == 2) { + if (type == 2) + code = 9; /* Section domain fault. */ + else + code = 11; /* Page domain fault. */ + goto do_fault; + } + if (type == 2) { + if (desc & (1 << 18)) { + /* Supersection. */ + phys_addr = (desc & 0xff000000) | (address & 0x00ffffff); + } else { + /* Section. */ + phys_addr = (desc & 0xfff00000) | (address & 0x000fffff); + } + ap = ((desc >> 10) & 3) | ((desc >> 13) & 4); + xn = desc & (1 << 4); + code = 13; + } else { + /* Lookup l2 entry. */ + table = (desc & 0xfffffc00) | ((address >> 10) & 0x3fc); + desc = ldl_phys(table); + ap = ((desc >> 4) & 3) | ((desc >> 7) & 4); + switch (desc & 3) { + case 0: /* Page translation fault. */ + code = 7; + goto do_fault; + case 1: /* 64k page. */ + phys_addr = (desc & 0xffff0000) | (address & 0xffff); + xn = desc & (1 << 15); + break; + case 2: case 3: /* 4k page. */ + phys_addr = (desc & 0xfffff000) | (address & 0xfff); + xn = desc & 1; + break; + default: + /* Never happens, but compiler isn't smart enough to tell. */ + abort(); + } + code = 15; + } + if (xn && access_type == 2) + goto do_fault; + + *prot = check_ap(env, ap, domain, access_type, is_user); + if (!*prot) { + /* Access permission fault. */ + goto do_fault; + } + *phys_ptr = phys_addr; + return 0; +do_fault: + return code | (domain << 4); +} + +static int get_phys_addr_mpu(CPUState *env, uint32_t address, int access_type, + int is_user, uint32_t *phys_ptr, int *prot) +{ + int n; + uint32_t mask; + uint32_t base; + + *phys_ptr = address; + for (n = 7; n >= 0; n--) { + base = env->cp15.c6_region[n]; + if ((base & 1) == 0) + continue; + mask = 1 << ((base >> 1) & 0x1f); + /* Keep this shift separate from the above to avoid an + (undefined) << 32. */ + mask = (mask << 1) - 1; + if (((base ^ address) & ~mask) == 0) + break; + } + if (n < 0) + return 2; + + if (access_type == 2) { + mask = env->cp15.c5_insn; + } else { + mask = env->cp15.c5_data; + } + mask = (mask >> (n * 4)) & 0xf; + switch (mask) { + case 0: + return 1; + case 1: + if (is_user) + return 1; + *prot = PAGE_READ | PAGE_WRITE; + break; + case 2: + *prot = PAGE_READ; + if (!is_user) + *prot |= PAGE_WRITE; + break; + case 3: + *prot = PAGE_READ | PAGE_WRITE; + break; + case 5: + if (is_user) + return 1; + *prot = PAGE_READ; + break; + case 6: + *prot = PAGE_READ; + break; + default: + /* Bad permission. */ + return 1; + } + return 0; +} + +static inline int get_phys_addr(CPUState *env, uint32_t address, + int access_type, int is_user, + uint32_t *phys_ptr, int *prot) +{ + /* Fast Context Switch Extension. */ + if (address < 0x02000000) + address += env->cp15.c13_fcse; + + if ((env->cp15.c1_sys & 1) == 0) { + /* MMU/MPU disabled. */ + *phys_ptr = address; + *prot = PAGE_READ | PAGE_WRITE; + return 0; + } else if (arm_feature(env, ARM_FEATURE_MPU)) { + return get_phys_addr_mpu(env, address, access_type, is_user, phys_ptr, + prot); + } else if (env->cp15.c1_sys & (1 << 23)) { + return get_phys_addr_v6(env, address, access_type, is_user, phys_ptr, + prot); + } else { + return get_phys_addr_v5(env, address, access_type, is_user, phys_ptr, + prot); + } +} + +int cpu_arm_handle_mmu_fault (CPUState *env, target_ulong address, + int access_type, int mmu_idx, int is_softmmu) +{ + uint32_t phys_addr; + int prot; + int ret, is_user; + + is_user = mmu_idx == MMU_USER_IDX; + ret = get_phys_addr(env, address, access_type, is_user, &phys_addr, &prot); + if (ret == 0) { + /* Map a single [sub]page. */ + phys_addr &= ~(uint32_t)0x3ff; + address &= ~(uint32_t)0x3ff; + return tlb_set_page (env, address, phys_addr, prot, mmu_idx, + is_softmmu); + } + + if (access_type == 2) { + env->cp15.c5_insn = ret; + env->cp15.c6_insn = address; + env->exception_index = EXCP_PREFETCH_ABORT; + } else { + env->cp15.c5_data = ret; + if (access_type == 1 && arm_feature(env, ARM_FEATURE_V6)) + env->cp15.c5_data |= (1 << 11); + env->cp15.c6_data = address; + env->exception_index = EXCP_DATA_ABORT; + } + return 1; +} + +target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr) +{ + uint32_t phys_addr; + int prot; + int ret; + + ret = get_phys_addr(env, addr, 0, 0, &phys_addr, &prot); + + if (ret != 0) + return -1; + + return phys_addr; +} + +/* Not really implemented. Need to figure out a sane way of doing this. + Maybe add generic watchpoint support and use that. */ + +void helper_mark_exclusive(CPUState *env, uint32_t addr) +{ + env->mmon_addr = addr; +} + +int helper_test_exclusive(CPUState *env, uint32_t addr) +{ + return (env->mmon_addr != addr); +} + +void helper_clrex(CPUState *env) +{ + env->mmon_addr = -1; +} + +void helper_set_cp(CPUState *env, uint32_t insn, uint32_t val) +{ + int cp_num = (insn >> 8) & 0xf; + int cp_info = (insn >> 5) & 7; + int src = (insn >> 16) & 0xf; + int operand = insn & 0xf; + + if (env->cp[cp_num].cp_write) + env->cp[cp_num].cp_write(env->cp[cp_num].opaque, + cp_info, src, operand, val); +} + +uint32_t helper_get_cp(CPUState *env, uint32_t insn) +{ + int cp_num = (insn >> 8) & 0xf; + int cp_info = (insn >> 5) & 7; + int dest = (insn >> 16) & 0xf; + int operand = insn & 0xf; + + if (env->cp[cp_num].cp_read) + return env->cp[cp_num].cp_read(env->cp[cp_num].opaque, + cp_info, dest, operand); + return 0; +} + +/* Return basic MPU access permission bits. */ +static uint32_t simple_mpu_ap_bits(uint32_t val) +{ + uint32_t ret; + uint32_t mask; + int i; + ret = 0; + mask = 3; + for (i = 0; i < 16; i += 2) { + ret |= (val >> i) & mask; + mask <<= 2; + } + return ret; +} + +/* Pad basic MPU access permission bits to extended format. */ +static uint32_t extended_mpu_ap_bits(uint32_t val) +{ + uint32_t ret; + uint32_t mask; + int i; + ret = 0; + mask = 3; + for (i = 0; i < 16; i += 2) { + ret |= (val & mask) << i; + mask <<= 2; + } + return ret; +} + +void helper_set_cp15(CPUState *env, uint32_t insn, uint32_t val) +{ + int op1; + int op2; + int crm; + + op1 = (insn >> 21) & 7; + op2 = (insn >> 5) & 7; + crm = insn & 0xf; + switch ((insn >> 16) & 0xf) { + case 0: + if (((insn >> 21) & 7) == 2) { + /* ??? Select cache level. Ignore. */ + return; + } + /* ID codes. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) + break; + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + break; + goto bad_reg; + case 1: /* System configuration. */ + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: + if (!arm_feature(env, ARM_FEATURE_XSCALE) || crm == 0) + env->cp15.c1_sys = val; + /* ??? Lots of these bits are not implemented. */ + /* This may enable/disable the MMU, so do a TLB flush. */ + tlb_flush(env, 1); + break; + case 1: /* Auxiliary cotrol register. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) { + env->cp15.c1_xscaleauxcr = val; + break; + } + /* Not implemented. */ + break; + case 2: + if (arm_feature(env, ARM_FEATURE_XSCALE)) + goto bad_reg; + env->cp15.c1_coproc = val; + /* ??? Is this safe when called from within a TB? */ + tb_flush(env); + break; + default: + goto bad_reg; + } + break; + case 2: /* MMU Page table control / MPU cache control. */ + if (arm_feature(env, ARM_FEATURE_MPU)) { + switch (op2) { + case 0: + env->cp15.c2_data = val; + break; + case 1: + env->cp15.c2_insn = val; + break; + default: + goto bad_reg; + } + } else { + switch (op2) { + case 0: + env->cp15.c2_base0 = val; + break; + case 1: + env->cp15.c2_base1 = val; + break; + case 2: + env->cp15.c2_mask = ~(((uint32_t)0xffffffffu) >> val); + break; + default: + goto bad_reg; + } + } + break; + case 3: /* MMU Domain access control / MPU write buffer control. */ + env->cp15.c3 = val; + tlb_flush(env, 1); /* Flush TLB as domain not tracked in TLB */ + break; + case 4: /* Reserved. */ + goto bad_reg; + case 5: /* MMU Fault status / MPU access permission. */ + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: + if (arm_feature(env, ARM_FEATURE_MPU)) + val = extended_mpu_ap_bits(val); + env->cp15.c5_data = val; + break; + case 1: + if (arm_feature(env, ARM_FEATURE_MPU)) + val = extended_mpu_ap_bits(val); + env->cp15.c5_insn = val; + break; + case 2: + if (!arm_feature(env, ARM_FEATURE_MPU)) + goto bad_reg; + env->cp15.c5_data = val; + break; + case 3: + if (!arm_feature(env, ARM_FEATURE_MPU)) + goto bad_reg; + env->cp15.c5_insn = val; + break; + default: + goto bad_reg; + } + break; + case 6: /* MMU Fault address / MPU base/size. */ + if (arm_feature(env, ARM_FEATURE_MPU)) { + if (crm >= 8) + goto bad_reg; + env->cp15.c6_region[crm] = val; + } else { + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: + env->cp15.c6_data = val; + break; + case 1: /* ??? This is WFAR on armv6 */ + case 2: + env->cp15.c6_insn = val; + break; + default: + goto bad_reg; + } + } + break; + case 7: /* Cache control. */ + env->cp15.c15_i_max = 0x000; + env->cp15.c15_i_min = 0xff0; + /* No cache, so nothing to do. */ + /* ??? MPCore has VA to PA translation functions. */ + break; + case 8: /* MMU TLB control. */ + switch (op2) { + case 0: /* Invalidate all. */ + tlb_flush(env, 0); + break; + case 1: /* Invalidate single TLB entry. */ +#if 0 + /* ??? This is wrong for large pages and sections. */ + /* As an ugly hack to make linux work we always flush a 4K + pages. */ + val &= 0xfffff000; + tlb_flush_page(env, val); + tlb_flush_page(env, val + 0x400); + tlb_flush_page(env, val + 0x800); + tlb_flush_page(env, val + 0xc00); +#else + tlb_flush(env, 1); +#endif + break; + case 2: /* Invalidate on ASID. */ + tlb_flush(env, val == 0); + break; + case 3: /* Invalidate single entry on MVA. */ + /* ??? This is like case 1, but ignores ASID. */ + tlb_flush(env, 1); + break; + default: + goto bad_reg; + } + break; + case 9: + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + break; + switch (crm) { + case 0: /* Cache lockdown. */ + switch (op1) { + case 0: /* L1 cache. */ + switch (op2) { + case 0: + env->cp15.c9_data = val; + break; + case 1: + env->cp15.c9_insn = val; + break; + default: + goto bad_reg; + } + break; + case 1: /* L2 cache. */ + /* Ignore writes to L2 lockdown/auxiliary registers. */ + break; + default: + goto bad_reg; + } + break; + case 1: /* TCM memory region registers. */ + /* Not implemented. */ + goto bad_reg; + default: + goto bad_reg; + } + break; + case 10: /* MMU TLB lockdown. */ + /* ??? TLB lockdown not implemented. */ + break; + case 12: /* Reserved. */ + goto bad_reg; + case 13: /* Process ID. */ + switch (op2) { + case 0: + /* Unlike real hardware the qemu TLB uses virtual addresses, + not modified virtual addresses, so this causes a TLB flush. + */ + if (env->cp15.c13_fcse != val) + tlb_flush(env, 1); + env->cp15.c13_fcse = val; + break; + case 1: + /* This changes the ASID, so do a TLB flush. */ + if (env->cp15.c13_context != val + && !arm_feature(env, ARM_FEATURE_MPU)) + tlb_flush(env, 0); + env->cp15.c13_context = val; + break; + case 2: + env->cp15.c13_tls1 = val; + break; + case 3: + env->cp15.c13_tls2 = val; + break; + case 4: + env->cp15.c13_tls3 = val; + break; + default: + goto bad_reg; + } + break; + case 14: /* Reserved. */ + goto bad_reg; + case 15: /* Implementation specific. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) { + if (op2 == 0 && crm == 1) { + if (env->cp15.c15_cpar != (val & 0x3fff)) { + /* Changes cp0 to cp13 behavior, so needs a TB flush. */ + tb_flush(env); + env->cp15.c15_cpar = val & 0x3fff; + } + break; + } + goto bad_reg; + } + if (arm_feature(env, ARM_FEATURE_OMAPCP)) { + switch (crm) { + case 0: + break; + case 1: /* Set TI925T configuration. */ + env->cp15.c15_ticonfig = val & 0xe7; + env->cp15.c0_cpuid = (val & (1 << 5)) ? /* OS_TYPE bit */ + ARM_CPUID_TI915T : ARM_CPUID_TI925T; + break; + case 2: /* Set I_max. */ + env->cp15.c15_i_max = val; + break; + case 3: /* Set I_min. */ + env->cp15.c15_i_min = val; + break; + case 4: /* Set thread-ID. */ + env->cp15.c15_threadid = val & 0xffff; + break; + case 8: /* Wait-for-interrupt (deprecated). */ + cpu_interrupt(env, CPU_INTERRUPT_HALT); + break; + default: + goto bad_reg; + } + } + break; + } + return; +bad_reg: + /* ??? For debugging only. Should raise illegal instruction exception. */ + cpu_abort(env, "Unimplemented cp15 register write (c%d, c%d, {%d, %d})\n", + (insn >> 16) & 0xf, crm, op1, op2); +} + +uint32_t helper_get_cp15(CPUState *env, uint32_t insn) +{ + int op1; + int op2; + int crm; + + op1 = (insn >> 21) & 7; + op2 = (insn >> 5) & 7; + crm = insn & 0xf; + switch ((insn >> 16) & 0xf) { + case 0: /* ID codes. */ + switch (op1) { + case 0: + switch (crm) { + case 0: + switch (op2) { + case 0: /* Device ID. */ + return env->cp15.c0_cpuid; + case 1: /* Cache Type. */ + return env->cp15.c0_cachetype; + case 2: /* TCM status. */ + return 0; + case 3: /* TLB type register. */ + return 0; /* No lockable TLB entries. */ + case 5: /* CPU ID */ + return env->cpu_index; + default: + goto bad_reg; + } + case 1: + if (!arm_feature(env, ARM_FEATURE_V6)) + goto bad_reg; + return env->cp15.c0_c1[op2]; + case 2: + if (!arm_feature(env, ARM_FEATURE_V6)) + goto bad_reg; + return env->cp15.c0_c2[op2]; + case 3: case 4: case 5: case 6: case 7: + return 0; + default: + goto bad_reg; + } + case 1: + /* These registers aren't documented on arm11 cores. However + Linux looks at them anyway. */ + if (!arm_feature(env, ARM_FEATURE_V6)) + goto bad_reg; + if (crm != 0) + goto bad_reg; + if (arm_feature(env, ARM_FEATURE_XSCALE)) + goto bad_reg; + return 0; + default: + goto bad_reg; + } + case 1: /* System configuration. */ + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: /* Control register. */ + return env->cp15.c1_sys; + case 1: /* Auxiliary control register. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) + return env->cp15.c1_xscaleauxcr; + if (!arm_feature(env, ARM_FEATURE_AUXCR)) + goto bad_reg; + switch (ARM_CPUID(env)) { + case ARM_CPUID_ARM1026: + return 1; + case ARM_CPUID_ARM1136: + return 7; + case ARM_CPUID_ARM11MPCORE: + return 1; + case ARM_CPUID_CORTEXA8: + return 0; + default: + goto bad_reg; + } + case 2: /* Coprocessor access register. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) + goto bad_reg; + return env->cp15.c1_coproc; + default: + goto bad_reg; + } + case 2: /* MMU Page table control / MPU cache control. */ + if (arm_feature(env, ARM_FEATURE_MPU)) { + switch (op2) { + case 0: + return env->cp15.c2_data; + break; + case 1: + return env->cp15.c2_insn; + break; + default: + goto bad_reg; + } + } else { + switch (op2) { + case 0: + return env->cp15.c2_base0; + case 1: + return env->cp15.c2_base1; + case 2: + { + int n; + uint32_t mask; + n = 0; + mask = env->cp15.c2_mask; + while (mask) { + n++; + mask <<= 1; + } + return n; + } + default: + goto bad_reg; + } + } + case 3: /* MMU Domain access control / MPU write buffer control. */ + return env->cp15.c3; + case 4: /* Reserved. */ + goto bad_reg; + case 5: /* MMU Fault status / MPU access permission. */ + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: + if (arm_feature(env, ARM_FEATURE_MPU)) + return simple_mpu_ap_bits(env->cp15.c5_data); + return env->cp15.c5_data; + case 1: + if (arm_feature(env, ARM_FEATURE_MPU)) + return simple_mpu_ap_bits(env->cp15.c5_data); + return env->cp15.c5_insn; + case 2: + if (!arm_feature(env, ARM_FEATURE_MPU)) + goto bad_reg; + return env->cp15.c5_data; + case 3: + if (!arm_feature(env, ARM_FEATURE_MPU)) + goto bad_reg; + return env->cp15.c5_insn; + default: + goto bad_reg; + } + case 6: /* MMU Fault address. */ + if (arm_feature(env, ARM_FEATURE_MPU)) { + if (crm >= 8) + goto bad_reg; + return env->cp15.c6_region[crm]; + } else { + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + op2 = 0; + switch (op2) { + case 0: + return env->cp15.c6_data; + case 1: + if (arm_feature(env, ARM_FEATURE_V6)) { + /* Watchpoint Fault Adrress. */ + return 0; /* Not implemented. */ + } else { + /* Instruction Fault Adrress. */ + /* Arm9 doesn't have an IFAR, but implementing it anyway + shouldn't do any harm. */ + return env->cp15.c6_insn; + } + case 2: + if (arm_feature(env, ARM_FEATURE_V6)) { + /* Instruction Fault Adrress. */ + return env->cp15.c6_insn; + } else { + goto bad_reg; + } + default: + goto bad_reg; + } + } + case 7: /* Cache control. */ + /* ??? This is for test, clean and invaidate operations that set the + Z flag. We can't represent N = Z = 1, so it also clears + the N flag. Oh well. */ + env->NZF = 0; + return 0; + case 8: /* MMU TLB control. */ + goto bad_reg; + case 9: /* Cache lockdown. */ + switch (op1) { + case 0: /* L1 cache. */ + if (arm_feature(env, ARM_FEATURE_OMAPCP)) + return 0; + switch (op2) { + case 0: + return env->cp15.c9_data; + case 1: + return env->cp15.c9_insn; + default: + goto bad_reg; + } + case 1: /* L2 cache */ + if (crm != 0) + goto bad_reg; + /* L2 Lockdown and Auxiliary control. */ + return 0; + default: + goto bad_reg; + } + case 10: /* MMU TLB lockdown. */ + /* ??? TLB lockdown not implemented. */ + return 0; + case 11: /* TCM DMA control. */ + case 12: /* Reserved. */ + goto bad_reg; + case 13: /* Process ID. */ + switch (op2) { + case 0: + return env->cp15.c13_fcse; + case 1: + return env->cp15.c13_context; + case 2: + return env->cp15.c13_tls1; + case 3: + return env->cp15.c13_tls2; + case 4: + return env->cp15.c13_tls3; + default: + goto bad_reg; + } + case 14: /* Reserved. */ + goto bad_reg; + case 15: /* Implementation specific. */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) { + if (op2 == 0 && crm == 1) + return env->cp15.c15_cpar; + + goto bad_reg; + } + if (arm_feature(env, ARM_FEATURE_OMAPCP)) { + switch (crm) { + case 0: + return 0; + case 1: /* Read TI925T configuration. */ + return env->cp15.c15_ticonfig; + case 2: /* Read I_max. */ + return env->cp15.c15_i_max; + case 3: /* Read I_min. */ + return env->cp15.c15_i_min; + case 4: /* Read thread-ID. */ + return env->cp15.c15_threadid; + case 8: /* TI925T_status */ + return 0; + } + goto bad_reg; + } + return 0; + } +bad_reg: + /* ??? For debugging only. Should raise illegal instruction exception. */ + cpu_abort(env, "Unimplemented cp15 register read (c%d, c%d, {%d, %d})\n", + (insn >> 16) & 0xf, crm, op1, op2); + return 0; +} + +void helper_set_r13_banked(CPUState *env, int mode, uint32_t val) +{ + env->banked_r13[bank_number(mode)] = val; +} + +uint32_t helper_get_r13_banked(CPUState *env, int mode) +{ + return env->banked_r13[bank_number(mode)]; +} + +uint32_t helper_v7m_mrs(CPUState *env, int reg) +{ + switch (reg) { + case 0: /* APSR */ + return xpsr_read(env) & 0xf8000000; + case 1: /* IAPSR */ + return xpsr_read(env) & 0xf80001ff; + case 2: /* EAPSR */ + return xpsr_read(env) & 0xff00fc00; + case 3: /* xPSR */ + return xpsr_read(env) & 0xff00fdff; + case 5: /* IPSR */ + return xpsr_read(env) & 0x000001ff; + case 6: /* EPSR */ + return xpsr_read(env) & 0x0700fc00; + case 7: /* IEPSR */ + return xpsr_read(env) & 0x0700edff; + case 8: /* MSP */ + return env->v7m.current_sp ? env->v7m.other_sp : env->regs[13]; + case 9: /* PSP */ + return env->v7m.current_sp ? env->regs[13] : env->v7m.other_sp; + case 16: /* PRIMASK */ + return (env->uncached_cpsr & CPSR_I) != 0; + case 17: /* FAULTMASK */ + return (env->uncached_cpsr & CPSR_F) != 0; + case 18: /* BASEPRI */ + case 19: /* BASEPRI_MAX */ + return env->v7m.basepri; + case 20: /* CONTROL */ + return env->v7m.control; + default: + /* ??? For debugging only. */ + cpu_abort(env, "Unimplemented system register read (%d)\n", reg); + return 0; + } +} + +void helper_v7m_msr(CPUState *env, int reg, uint32_t val) +{ + switch (reg) { + case 0: /* APSR */ + xpsr_write(env, val, 0xf8000000); + break; + case 1: /* IAPSR */ + xpsr_write(env, val, 0xf8000000); + break; + case 2: /* EAPSR */ + xpsr_write(env, val, 0xfe00fc00); + break; + case 3: /* xPSR */ + xpsr_write(env, val, 0xfe00fc00); + break; + case 5: /* IPSR */ + /* IPSR bits are readonly. */ + break; + case 6: /* EPSR */ + xpsr_write(env, val, 0x0600fc00); + break; + case 7: /* IEPSR */ + xpsr_write(env, val, 0x0600fc00); + break; + case 8: /* MSP */ + if (env->v7m.current_sp) + env->v7m.other_sp = val; + else + env->regs[13] = val; + break; + case 9: /* PSP */ + if (env->v7m.current_sp) + env->regs[13] = val; + else + env->v7m.other_sp = val; + break; + case 16: /* PRIMASK */ + if (val & 1) + env->uncached_cpsr |= CPSR_I; + else + env->uncached_cpsr &= ~CPSR_I; + break; + case 17: /* FAULTMASK */ + if (val & 1) + env->uncached_cpsr |= CPSR_F; + else + env->uncached_cpsr &= ~CPSR_F; + break; + case 18: /* BASEPRI */ + env->v7m.basepri = val & 0xff; + break; + case 19: /* BASEPRI_MAX */ + val &= 0xff; + if (val != 0 && (val < env->v7m.basepri || env->v7m.basepri == 0)) + env->v7m.basepri = val; + break; + case 20: /* CONTROL */ + env->v7m.control = val & 3; + switch_v7m_sp(env, (val & 2) != 0); + break; + default: + /* ??? For debugging only. */ + cpu_abort(env, "Unimplemented system register write (%d)\n", reg); + return; + } +} + +void cpu_arm_set_cp_io(CPUARMState *env, int cpnum, + ARMReadCPFunc *cp_read, ARMWriteCPFunc *cp_write, + void *opaque) +{ + if (cpnum < 0 || cpnum > 14) { + cpu_abort(env, "Bad coprocessor number: %i\n", cpnum); + return; + } + + env->cp[cpnum].cp_read = cp_read; + env->cp[cpnum].cp_write = cp_write; + env->cp[cpnum].opaque = opaque; +} + +#endif diff --git a/qemu/vl.c b/qemu/vl.c new file mode 100644 index 000000000..5430df8bf --- /dev/null +++ b/qemu/vl.c @@ -0,0 +1,9003 @@ +/* + * QEMU System Emulator + * + * Copyright (c) 2003-2008 Fabrice Bellard + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#include "hw/hw.h" +#include "hw/boards.h" +#include "hw/usb.h" +#include "hw/pcmcia.h" +#include "hw/pc.h" +#include "hw/fdc.h" +#include "hw/audiodev.h" +#include "hw/isa.h" +#include "net.h" +#include "console.h" +#include "sysemu.h" +#include "gdbstub.h" +#include "qemu-timer.h" +#include "qemu-char.h" +#include "block.h" +#include "audio/audio.h" + +#include +#include +#include +#include +#include +#include +#include + +#ifndef _WIN32 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef _BSD +#include +#ifndef __APPLE__ +#include +#endif +#elif defined (__GLIBC__) && defined (__FreeBSD_kernel__) +#include +#else +#ifndef __sun__ +#include +#include +#include +#include +#include + +/* For the benefit of older linux systems which don't supply it, + we use a local copy of hpet.h. */ +/* #include */ +#include "hpet.h" + +#include +#include +#else +#include +#include +#include +#include +#include +#include +#include +#include // must come after ip.h +#include +#include +#include +#include +#include +#endif +#endif +#else +#include +int inet_aton(const char *cp, struct in_addr *ia); +#endif + +#if defined(CONFIG_SLIRP) +#include "libslirp.h" +#endif + +#ifdef _WIN32 +#include +#include +#include +#define getopt_long_only getopt_long +#define memalign(align, size) malloc(size) +#endif + +#include "qemu_socket.h" + +#ifdef CONFIG_SDL +#ifdef __APPLE__ +#include +#endif +#endif /* CONFIG_SDL */ + +#ifdef CONFIG_COCOA +#undef main +#define main qemu_main +#endif /* CONFIG_COCOA */ + +#include "disas.h" + +#include "exec-all.h" + +#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup" +#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown" +#ifdef __sun__ +#define SMBD_COMMAND "/usr/sfw/sbin/smbd" +#else +#define SMBD_COMMAND "/usr/sbin/smbd" +#endif + +//#define DEBUG_UNUSED_IOPORT +//#define DEBUG_IOPORT + +#define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024) + +#ifdef TARGET_PPC +#define DEFAULT_RAM_SIZE 144 +#else +#define DEFAULT_RAM_SIZE 128 +#endif +/* in ms */ +#define GUI_REFRESH_INTERVAL 30 + +/* Max number of USB devices that can be specified on the commandline. */ +#define MAX_USB_CMDLINE 8 + +/* XXX: use a two level table to limit memory usage */ +#define MAX_IOPORTS 65536 + +const char *bios_dir = CONFIG_QEMU_SHAREDIR; +const char *bios_name = NULL; +void *ioport_opaque[MAX_IOPORTS]; +IOPortReadFunc *ioport_read_table[3][MAX_IOPORTS]; +IOPortWriteFunc *ioport_write_table[3][MAX_IOPORTS]; +/* Note: drives_table[MAX_DRIVES] is a dummy block driver if none available + to store the VM snapshots */ +DriveInfo drives_table[MAX_DRIVES+1]; +int nb_drives; +/* point to the block driver where the snapshots are managed */ +BlockDriverState *bs_snapshots; +int vga_ram_size; +static DisplayState display_state; +int nographic; +const char* keyboard_layout = NULL; +int64_t ticks_per_sec; +int ram_size; +int pit_min_timer_count = 0; +int nb_nics; +NICInfo nd_table[MAX_NICS]; +int vm_running; +int rtc_utc = 1; +int rtc_start_date = -1; /* -1 means now */ +int cirrus_vga_enabled = 1; +int vmsvga_enabled = 0; +#ifdef TARGET_SPARC +int graphic_width = 1024; +int graphic_height = 768; +int graphic_depth = 8; +#else +int graphic_width = 800; +int graphic_height = 600; +int graphic_depth = 15; +#endif +int full_screen = 0; +int no_frame = 0; +int no_quit = 0; +CharDriverState *serial_hds[MAX_SERIAL_PORTS]; +CharDriverState *parallel_hds[MAX_PARALLEL_PORTS]; +#ifdef TARGET_I386 +int win2k_install_hack = 0; +#endif +int usb_enabled = 0; +static VLANState *first_vlan; +int smp_cpus = 1; +const char *vnc_display; +#if defined(TARGET_SPARC) +#define MAX_CPUS 16 +#elif defined(TARGET_I386) +#define MAX_CPUS 255 +#else +#define MAX_CPUS 1 +#endif +int acpi_enabled = 1; +int fd_bootchk = 1; +int no_reboot = 0; +int cursor_hide = 1; +int graphic_rotate = 0; +int daemonize = 0; +const char *option_rom[MAX_OPTION_ROMS]; +int nb_option_roms; +int semihosting_enabled = 0; +int autostart = 1; +#ifdef TARGET_ARM +int old_param = 0; +#endif +const char *qemu_name; +int alt_grab = 0; +#ifdef TARGET_SPARC +unsigned int nb_prom_envs = 0; +const char *prom_envs[MAX_PROM_ENVS]; +#endif +int nb_drives_opt; +char drives_opt[MAX_DRIVES][1024]; + +static CPUState *cur_cpu; +static CPUState *next_cpu; +static int event_pending = 1; + +#define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR) + +/***********************************************************/ +/* x86 ISA bus support */ + +target_phys_addr_t isa_mem_base = 0; +PicState2 *isa_pic; + +static uint32_t default_ioport_readb(void *opaque, uint32_t address) +{ +#ifdef DEBUG_UNUSED_IOPORT + fprintf(stderr, "unused inb: port=0x%04x\n", address); +#endif + return 0xff; +} + +static void default_ioport_writeb(void *opaque, uint32_t address, uint32_t data) +{ +#ifdef DEBUG_UNUSED_IOPORT + fprintf(stderr, "unused outb: port=0x%04x data=0x%02x\n", address, data); +#endif +} + +/* default is to make two byte accesses */ +static uint32_t default_ioport_readw(void *opaque, uint32_t address) +{ + uint32_t data; + data = ioport_read_table[0][address](ioport_opaque[address], address); + address = (address + 1) & (MAX_IOPORTS - 1); + data |= ioport_read_table[0][address](ioport_opaque[address], address) << 8; + return data; +} + +static void default_ioport_writew(void *opaque, uint32_t address, uint32_t data) +{ + ioport_write_table[0][address](ioport_opaque[address], address, data & 0xff); + address = (address + 1) & (MAX_IOPORTS - 1); + ioport_write_table[0][address](ioport_opaque[address], address, (data >> 8) & 0xff); +} + +static uint32_t default_ioport_readl(void *opaque, uint32_t address) +{ +#ifdef DEBUG_UNUSED_IOPORT + fprintf(stderr, "unused inl: port=0x%04x\n", address); +#endif + return 0xffffffff; +} + +static void default_ioport_writel(void *opaque, uint32_t address, uint32_t data) +{ +#ifdef DEBUG_UNUSED_IOPORT + fprintf(stderr, "unused outl: port=0x%04x data=0x%02x\n", address, data); +#endif +} + +static void init_ioports(void) +{ + int i; + + for(i = 0; i < MAX_IOPORTS; i++) { + ioport_read_table[0][i] = default_ioport_readb; + ioport_write_table[0][i] = default_ioport_writeb; + ioport_read_table[1][i] = default_ioport_readw; + ioport_write_table[1][i] = default_ioport_writew; + ioport_read_table[2][i] = default_ioport_readl; + ioport_write_table[2][i] = default_ioport_writel; + } +} + +/* size is the word size in byte */ +int register_ioport_read(int start, int length, int size, + IOPortReadFunc *func, void *opaque) +{ + int i, bsize; + + if (size == 1) { + bsize = 0; + } else if (size == 2) { + bsize = 1; + } else if (size == 4) { + bsize = 2; + } else { + hw_error("register_ioport_read: invalid size"); + return -1; + } + for(i = start; i < start + length; i += size) { + ioport_read_table[bsize][i] = func; + if (ioport_opaque[i] != NULL && ioport_opaque[i] != opaque) + hw_error("register_ioport_read: invalid opaque"); + ioport_opaque[i] = opaque; + } + return 0; +} + +/* size is the word size in byte */ +int register_ioport_write(int start, int length, int size, + IOPortWriteFunc *func, void *opaque) +{ + int i, bsize; + + if (size == 1) { + bsize = 0; + } else if (size == 2) { + bsize = 1; + } else if (size == 4) { + bsize = 2; + } else { + hw_error("register_ioport_write: invalid size"); + return -1; + } + for(i = start; i < start + length; i += size) { + ioport_write_table[bsize][i] = func; + if (ioport_opaque[i] != NULL && ioport_opaque[i] != opaque) + hw_error("register_ioport_write: invalid opaque"); + ioport_opaque[i] = opaque; + } + return 0; +} + +void isa_unassign_ioport(int start, int length) +{ + int i; + + for(i = start; i < start + length; i++) { + ioport_read_table[0][i] = default_ioport_readb; + ioport_read_table[1][i] = default_ioport_readw; + ioport_read_table[2][i] = default_ioport_readl; + + ioport_write_table[0][i] = default_ioport_writeb; + ioport_write_table[1][i] = default_ioport_writew; + ioport_write_table[2][i] = default_ioport_writel; + } +} + +/***********************************************************/ + +void cpu_outb(CPUState *env, int addr, int val) +{ +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "outb: %04x %02x\n", addr, val); +#endif + ioport_write_table[0][addr](ioport_opaque[addr], addr, val); +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif +} + +void cpu_outw(CPUState *env, int addr, int val) +{ +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "outw: %04x %04x\n", addr, val); +#endif + ioport_write_table[1][addr](ioport_opaque[addr], addr, val); +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif +} + +void cpu_outl(CPUState *env, int addr, int val) +{ +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "outl: %04x %08x\n", addr, val); +#endif + ioport_write_table[2][addr](ioport_opaque[addr], addr, val); +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif +} + +int cpu_inb(CPUState *env, int addr) +{ + int val; + val = ioport_read_table[0][addr](ioport_opaque[addr], addr); +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "inb : %04x %02x\n", addr, val); +#endif +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif + return val; +} + +int cpu_inw(CPUState *env, int addr) +{ + int val; + val = ioport_read_table[1][addr](ioport_opaque[addr], addr); +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "inw : %04x %04x\n", addr, val); +#endif +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif + return val; +} + +int cpu_inl(CPUState *env, int addr) +{ + int val; + val = ioport_read_table[2][addr](ioport_opaque[addr], addr); +#ifdef DEBUG_IOPORT + if (loglevel & CPU_LOG_IOPORT) + fprintf(logfile, "inl : %04x %08x\n", addr, val); +#endif +#ifdef USE_KQEMU + if (env) + env->last_io_time = cpu_get_time_fast(); +#endif + return val; +} + +/***********************************************************/ +void hw_error(const char *fmt, ...) +{ + va_list ap; + CPUState *env; + + va_start(ap, fmt); + fprintf(stderr, "qemu: hardware error: "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, "\n"); + for(env = first_cpu; env != NULL; env = env->next_cpu) { + fprintf(stderr, "CPU #%d:\n", env->cpu_index); +#ifdef TARGET_I386 + cpu_dump_state(env, stderr, fprintf, X86_DUMP_FPU); +#else + cpu_dump_state(env, stderr, fprintf, 0); +#endif + } + va_end(ap); + abort(); +} + +/***********************************************************/ +/* keyboard/mouse */ + +static QEMUPutKBDEvent *qemu_put_kbd_event; +static void *qemu_put_kbd_event_opaque; +static QEMUPutMouseEntry *qemu_put_mouse_event_head; +static QEMUPutMouseEntry *qemu_put_mouse_event_current; + +void qemu_add_kbd_event_handler(QEMUPutKBDEvent *func, void *opaque) +{ + qemu_put_kbd_event_opaque = opaque; + qemu_put_kbd_event = func; +} + +QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func, + void *opaque, int absolute, + const char *name) +{ + QEMUPutMouseEntry *s, *cursor; + + s = qemu_mallocz(sizeof(QEMUPutMouseEntry)); + if (!s) + return NULL; + + s->qemu_put_mouse_event = func; + s->qemu_put_mouse_event_opaque = opaque; + s->qemu_put_mouse_event_absolute = absolute; + s->qemu_put_mouse_event_name = qemu_strdup(name); + s->next = NULL; + + if (!qemu_put_mouse_event_head) { + qemu_put_mouse_event_head = qemu_put_mouse_event_current = s; + return s; + } + + cursor = qemu_put_mouse_event_head; + while (cursor->next != NULL) + cursor = cursor->next; + + cursor->next = s; + qemu_put_mouse_event_current = s; + + return s; +} + +void qemu_remove_mouse_event_handler(QEMUPutMouseEntry *entry) +{ + QEMUPutMouseEntry *prev = NULL, *cursor; + + if (!qemu_put_mouse_event_head || entry == NULL) + return; + + cursor = qemu_put_mouse_event_head; + while (cursor != NULL && cursor != entry) { + prev = cursor; + cursor = cursor->next; + } + + if (cursor == NULL) // does not exist or list empty + return; + else if (prev == NULL) { // entry is head + qemu_put_mouse_event_head = cursor->next; + if (qemu_put_mouse_event_current == entry) + qemu_put_mouse_event_current = cursor->next; + qemu_free(entry->qemu_put_mouse_event_name); + qemu_free(entry); + return; + } + + prev->next = entry->next; + + if (qemu_put_mouse_event_current == entry) + qemu_put_mouse_event_current = prev; + + qemu_free(entry->qemu_put_mouse_event_name); + qemu_free(entry); +} + +void kbd_put_keycode(int keycode) +{ + if (qemu_put_kbd_event) { + qemu_put_kbd_event(qemu_put_kbd_event_opaque, keycode); + } +} + +void kbd_mouse_event(int dx, int dy, int dz, int buttons_state) +{ + QEMUPutMouseEvent *mouse_event; + void *mouse_event_opaque; + int width; + + if (!qemu_put_mouse_event_current) { + return; + } + + mouse_event = + qemu_put_mouse_event_current->qemu_put_mouse_event; + mouse_event_opaque = + qemu_put_mouse_event_current->qemu_put_mouse_event_opaque; + + if (mouse_event) { + if (graphic_rotate) { + if (qemu_put_mouse_event_current->qemu_put_mouse_event_absolute) + width = 0x7fff; + else + width = graphic_width; + mouse_event(mouse_event_opaque, + width - dy, dx, dz, buttons_state); + } else + mouse_event(mouse_event_opaque, + dx, dy, dz, buttons_state); + } +} + +int kbd_mouse_is_absolute(void) +{ + if (!qemu_put_mouse_event_current) + return 0; + + return qemu_put_mouse_event_current->qemu_put_mouse_event_absolute; +} + +void do_info_mice(void) +{ + QEMUPutMouseEntry *cursor; + int index = 0; + + if (!qemu_put_mouse_event_head) { + term_printf("No mouse devices connected\n"); + return; + } + + term_printf("Mouse devices available:\n"); + cursor = qemu_put_mouse_event_head; + while (cursor != NULL) { + term_printf("%c Mouse #%d: %s\n", + (cursor == qemu_put_mouse_event_current ? '*' : ' '), + index, cursor->qemu_put_mouse_event_name); + index++; + cursor = cursor->next; + } +} + +void do_mouse_set(int index) +{ + QEMUPutMouseEntry *cursor; + int i = 0; + + if (!qemu_put_mouse_event_head) { + term_printf("No mouse devices connected\n"); + return; + } + + cursor = qemu_put_mouse_event_head; + while (cursor != NULL && index != i) { + i++; + cursor = cursor->next; + } + + if (cursor != NULL) + qemu_put_mouse_event_current = cursor; + else + term_printf("Mouse at given index not found\n"); +} + +/* compute with 96 bit intermediate result: (a*b)/c */ +uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c) +{ + union { + uint64_t ll; + struct { +#ifdef WORDS_BIGENDIAN + uint32_t high, low; +#else + uint32_t low, high; +#endif + } l; + } u, res; + uint64_t rl, rh; + + u.ll = a; + rl = (uint64_t)u.l.low * (uint64_t)b; + rh = (uint64_t)u.l.high * (uint64_t)b; + rh += (rl >> 32); + res.l.high = rh / c; + res.l.low = (((rh % c) << 32) + (rl & 0xffffffff)) / c; + return res.ll; +} + +/***********************************************************/ +/* real time host monotonic timer */ + +#define QEMU_TIMER_BASE 1000000000LL + +#ifdef WIN32 + +static int64_t clock_freq; + +static void init_get_clock(void) +{ + LARGE_INTEGER freq; + int ret; + ret = QueryPerformanceFrequency(&freq); + if (ret == 0) { + fprintf(stderr, "Could not calibrate ticks\n"); + exit(1); + } + clock_freq = freq.QuadPart; +} + +static int64_t get_clock(void) +{ + LARGE_INTEGER ti; + QueryPerformanceCounter(&ti); + return muldiv64(ti.QuadPart, QEMU_TIMER_BASE, clock_freq); +} + +#else + +static int use_rt_clock; + +static void init_get_clock(void) +{ + use_rt_clock = 0; +#if defined(__linux__) + { + struct timespec ts; + if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) { + use_rt_clock = 1; + } + } +#endif +} + +static int64_t get_clock(void) +{ +#if defined(__linux__) + if (use_rt_clock) { + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return ts.tv_sec * 1000000000LL + ts.tv_nsec; + } else +#endif + { + /* XXX: using gettimeofday leads to problems if the date + changes, so it should be avoided. */ + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_sec * 1000000000LL + (tv.tv_usec * 1000); + } +} + +#endif + +/***********************************************************/ +/* guest cycle counter */ + +static int64_t cpu_ticks_prev; +static int64_t cpu_ticks_offset; +static int64_t cpu_clock_offset; +static int cpu_ticks_enabled; + +/* return the host CPU cycle counter and handle stop/restart */ +int64_t cpu_get_ticks(void) +{ + if (!cpu_ticks_enabled) { + return cpu_ticks_offset; + } else { + int64_t ticks; + ticks = cpu_get_real_ticks(); + if (cpu_ticks_prev > ticks) { + /* Note: non increasing ticks may happen if the host uses + software suspend */ + cpu_ticks_offset += cpu_ticks_prev - ticks; + } + cpu_ticks_prev = ticks; + return ticks + cpu_ticks_offset; + } +} + +/* return the host CPU monotonic timer and handle stop/restart */ +static int64_t cpu_get_clock(void) +{ + int64_t ti; + if (!cpu_ticks_enabled) { + return cpu_clock_offset; + } else { + ti = get_clock(); + return ti + cpu_clock_offset; + } +} + +/* enable cpu_get_ticks() */ +void cpu_enable_ticks(void) +{ + if (!cpu_ticks_enabled) { + cpu_ticks_offset -= cpu_get_real_ticks(); + cpu_clock_offset -= get_clock(); + cpu_ticks_enabled = 1; + } +} + +/* disable cpu_get_ticks() : the clock is stopped. You must not call + cpu_get_ticks() after that. */ +void cpu_disable_ticks(void) +{ + if (cpu_ticks_enabled) { + cpu_ticks_offset = cpu_get_ticks(); + cpu_clock_offset = cpu_get_clock(); + cpu_ticks_enabled = 0; + } +} + +/***********************************************************/ +/* timers */ + +#define QEMU_TIMER_REALTIME 0 +#define QEMU_TIMER_VIRTUAL 1 + +struct QEMUClock { + int type; + /* XXX: add frequency */ +}; + +struct QEMUTimer { + QEMUClock *clock; + int64_t expire_time; + QEMUTimerCB *cb; + void *opaque; + struct QEMUTimer *next; +}; + +struct qemu_alarm_timer { + char const *name; + unsigned int flags; + + int (*start)(struct qemu_alarm_timer *t); + void (*stop)(struct qemu_alarm_timer *t); + void (*rearm)(struct qemu_alarm_timer *t); + void *priv; +}; + +#define ALARM_FLAG_DYNTICKS 0x1 +#define ALARM_FLAG_EXPIRED 0x2 + +static inline int alarm_has_dynticks(struct qemu_alarm_timer *t) +{ + return t->flags & ALARM_FLAG_DYNTICKS; +} + +static void qemu_rearm_alarm_timer(struct qemu_alarm_timer *t) +{ + if (!alarm_has_dynticks(t)) + return; + + t->rearm(t); +} + +/* TODO: MIN_TIMER_REARM_US should be optimized */ +#define MIN_TIMER_REARM_US 250 + +static struct qemu_alarm_timer *alarm_timer; + +#ifdef _WIN32 + +struct qemu_alarm_win32 { + MMRESULT timerId; + HANDLE host_alarm; + unsigned int period; +} alarm_win32_data = {0, NULL, -1}; + +static int win32_start_timer(struct qemu_alarm_timer *t); +static void win32_stop_timer(struct qemu_alarm_timer *t); +static void win32_rearm_timer(struct qemu_alarm_timer *t); + +#else + +static int unix_start_timer(struct qemu_alarm_timer *t); +static void unix_stop_timer(struct qemu_alarm_timer *t); + +#ifdef __linux__ + +static int dynticks_start_timer(struct qemu_alarm_timer *t); +static void dynticks_stop_timer(struct qemu_alarm_timer *t); +static void dynticks_rearm_timer(struct qemu_alarm_timer *t); + +static int hpet_start_timer(struct qemu_alarm_timer *t); +static void hpet_stop_timer(struct qemu_alarm_timer *t); + +static int rtc_start_timer(struct qemu_alarm_timer *t); +static void rtc_stop_timer(struct qemu_alarm_timer *t); + +#endif /* __linux__ */ + +#endif /* _WIN32 */ + +static struct qemu_alarm_timer alarm_timers[] = { +#ifndef _WIN32 +#ifdef __linux__ + {"dynticks", ALARM_FLAG_DYNTICKS, dynticks_start_timer, + dynticks_stop_timer, dynticks_rearm_timer, NULL}, + /* HPET - if available - is preferred */ + {"hpet", 0, hpet_start_timer, hpet_stop_timer, NULL, NULL}, + /* ...otherwise try RTC */ + {"rtc", 0, rtc_start_timer, rtc_stop_timer, NULL, NULL}, +#endif + {"unix", 0, unix_start_timer, unix_stop_timer, NULL, NULL}, +#else + {"dynticks", ALARM_FLAG_DYNTICKS, win32_start_timer, + win32_stop_timer, win32_rearm_timer, &alarm_win32_data}, + {"win32", 0, win32_start_timer, + win32_stop_timer, NULL, &alarm_win32_data}, +#endif + {NULL, } +}; + +static void show_available_alarms() +{ + int i; + + printf("Available alarm timers, in order of precedence:\n"); + for (i = 0; alarm_timers[i].name; i++) + printf("%s\n", alarm_timers[i].name); +} + +static void configure_alarms(char const *opt) +{ + int i; + int cur = 0; + int count = (sizeof(alarm_timers) / sizeof(*alarm_timers)) - 1; + char *arg; + char *name; + + if (!strcmp(opt, "help")) { + show_available_alarms(); + exit(0); + } + + arg = strdup(opt); + + /* Reorder the array */ + name = strtok(arg, ","); + while (name) { + struct qemu_alarm_timer tmp; + + for (i = 0; i < count && alarm_timers[i].name; i++) { + if (!strcmp(alarm_timers[i].name, name)) + break; + } + + if (i == count) { + fprintf(stderr, "Unknown clock %s\n", name); + goto next; + } + + if (i < cur) + /* Ignore */ + goto next; + + /* Swap */ + tmp = alarm_timers[i]; + alarm_timers[i] = alarm_timers[cur]; + alarm_timers[cur] = tmp; + + cur++; +next: + name = strtok(NULL, ","); + } + + free(arg); + + if (cur) { + /* Disable remaining timers */ + for (i = cur; i < count; i++) + alarm_timers[i].name = NULL; + } + + /* debug */ + show_available_alarms(); +} + +QEMUClock *rt_clock; +QEMUClock *vm_clock; + +static QEMUTimer *active_timers[2]; + +static QEMUClock *qemu_new_clock(int type) +{ + QEMUClock *clock; + clock = qemu_mallocz(sizeof(QEMUClock)); + if (!clock) + return NULL; + clock->type = type; + return clock; +} + +QEMUTimer *qemu_new_timer(QEMUClock *clock, QEMUTimerCB *cb, void *opaque) +{ + QEMUTimer *ts; + + ts = qemu_mallocz(sizeof(QEMUTimer)); + ts->clock = clock; + ts->cb = cb; + ts->opaque = opaque; + return ts; +} + +void qemu_free_timer(QEMUTimer *ts) +{ + qemu_free(ts); +} + +/* stop a timer, but do not dealloc it */ +void qemu_del_timer(QEMUTimer *ts) +{ + QEMUTimer **pt, *t; + + /* NOTE: this code must be signal safe because + qemu_timer_expired() can be called from a signal. */ + pt = &active_timers[ts->clock->type]; + for(;;) { + t = *pt; + if (!t) + break; + if (t == ts) { + *pt = t->next; + break; + } + pt = &t->next; + } +} + +/* modify the current timer so that it will be fired when current_time + >= expire_time. The corresponding callback will be called. */ +void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time) +{ + QEMUTimer **pt, *t; + + qemu_del_timer(ts); + + /* add the timer in the sorted list */ + /* NOTE: this code must be signal safe because + qemu_timer_expired() can be called from a signal. */ + pt = &active_timers[ts->clock->type]; + for(;;) { + t = *pt; + if (!t) + break; + if (t->expire_time > expire_time) + break; + pt = &t->next; + } + ts->expire_time = expire_time; + ts->next = *pt; + *pt = ts; + + /* Rearm if necessary */ + if ((alarm_timer->flags & ALARM_FLAG_EXPIRED) == 0 && + pt == &active_timers[ts->clock->type]) + qemu_rearm_alarm_timer(alarm_timer); +} + +int qemu_timer_pending(QEMUTimer *ts) +{ + QEMUTimer *t; + for(t = active_timers[ts->clock->type]; t != NULL; t = t->next) { + if (t == ts) + return 1; + } + return 0; +} + +static inline int qemu_timer_expired(QEMUTimer *timer_head, int64_t current_time) +{ + if (!timer_head) + return 0; + return (timer_head->expire_time <= current_time); +} + +static void qemu_run_timers(QEMUTimer **ptimer_head, int64_t current_time) +{ + QEMUTimer *ts; + + for(;;) { + ts = *ptimer_head; + if (!ts || ts->expire_time > current_time) + break; + /* remove timer from the list before calling the callback */ + *ptimer_head = ts->next; + ts->next = NULL; + + /* run the callback (the timer list can be modified) */ + ts->cb(ts->opaque); + } +} + +int64_t qemu_get_clock(QEMUClock *clock) +{ + switch(clock->type) { + case QEMU_TIMER_REALTIME: + return get_clock() / 1000000; + default: + case QEMU_TIMER_VIRTUAL: + return cpu_get_clock(); + } +} + +static void init_timers(void) +{ + init_get_clock(); + ticks_per_sec = QEMU_TIMER_BASE; + rt_clock = qemu_new_clock(QEMU_TIMER_REALTIME); + vm_clock = qemu_new_clock(QEMU_TIMER_VIRTUAL); +} + +/* save a timer */ +void qemu_put_timer(QEMUFile *f, QEMUTimer *ts) +{ + uint64_t expire_time; + + if (qemu_timer_pending(ts)) { + expire_time = ts->expire_time; + } else { + expire_time = -1; + } + qemu_put_be64(f, expire_time); +} + +void qemu_get_timer(QEMUFile *f, QEMUTimer *ts) +{ + uint64_t expire_time; + + expire_time = qemu_get_be64(f); + if (expire_time != -1) { + qemu_mod_timer(ts, expire_time); + } else { + qemu_del_timer(ts); + } +} + +static void timer_save(QEMUFile *f, void *opaque) +{ + if (cpu_ticks_enabled) { + hw_error("cannot save state if virtual timers are running"); + } + qemu_put_be64(f, cpu_ticks_offset); + qemu_put_be64(f, ticks_per_sec); + qemu_put_be64(f, cpu_clock_offset); +} + +static int timer_load(QEMUFile *f, void *opaque, int version_id) +{ + if (version_id != 1 && version_id != 2) + return -EINVAL; + if (cpu_ticks_enabled) { + return -EINVAL; + } + cpu_ticks_offset=qemu_get_be64(f); + ticks_per_sec=qemu_get_be64(f); + if (version_id == 2) { + cpu_clock_offset=qemu_get_be64(f); + } + return 0; +} + +#ifdef _WIN32 +void CALLBACK host_alarm_handler(UINT uTimerID, UINT uMsg, + DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) +#else +static void host_alarm_handler(int host_signum) +#endif +{ +#if 0 +#define DISP_FREQ 1000 + { + static int64_t delta_min = INT64_MAX; + static int64_t delta_max, delta_cum, last_clock, delta, ti; + static int count; + ti = qemu_get_clock(vm_clock); + if (last_clock != 0) { + delta = ti - last_clock; + if (delta < delta_min) + delta_min = delta; + if (delta > delta_max) + delta_max = delta; + delta_cum += delta; + if (++count == DISP_FREQ) { + printf("timer: min=%" PRId64 " us max=%" PRId64 " us avg=%" PRId64 " us avg_freq=%0.3f Hz\n", + muldiv64(delta_min, 1000000, ticks_per_sec), + muldiv64(delta_max, 1000000, ticks_per_sec), + muldiv64(delta_cum, 1000000 / DISP_FREQ, ticks_per_sec), + (double)ticks_per_sec / ((double)delta_cum / DISP_FREQ)); + count = 0; + delta_min = INT64_MAX; + delta_max = 0; + delta_cum = 0; + } + } + last_clock = ti; + } +#endif + if (alarm_has_dynticks(alarm_timer) || + qemu_timer_expired(active_timers[QEMU_TIMER_VIRTUAL], + qemu_get_clock(vm_clock)) || + qemu_timer_expired(active_timers[QEMU_TIMER_REALTIME], + qemu_get_clock(rt_clock))) { +#ifdef _WIN32 + struct qemu_alarm_win32 *data = ((struct qemu_alarm_timer*)dwUser)->priv; + SetEvent(data->host_alarm); +#endif + CPUState *env = next_cpu; + + alarm_timer->flags |= ALARM_FLAG_EXPIRED; + + if (env) { + /* stop the currently executing cpu because a timer occured */ + cpu_interrupt(env, CPU_INTERRUPT_EXIT); +#ifdef USE_KQEMU + if (env->kqemu_enabled) { + kqemu_cpu_interrupt(env); + } +#endif + } + event_pending = 1; + } +} + +static uint64_t qemu_next_deadline(void) +{ + int64_t nearest_delta_us = INT64_MAX; + int64_t vmdelta_us; + + if (active_timers[QEMU_TIMER_REALTIME]) + nearest_delta_us = (active_timers[QEMU_TIMER_REALTIME]->expire_time - + qemu_get_clock(rt_clock))*1000; + + if (active_timers[QEMU_TIMER_VIRTUAL]) { + /* round up */ + vmdelta_us = (active_timers[QEMU_TIMER_VIRTUAL]->expire_time - + qemu_get_clock(vm_clock)+999)/1000; + if (vmdelta_us < nearest_delta_us) + nearest_delta_us = vmdelta_us; + } + + /* Avoid arming the timer to negative, zero, or too low values */ + if (nearest_delta_us <= MIN_TIMER_REARM_US) + nearest_delta_us = MIN_TIMER_REARM_US; + + return nearest_delta_us; +} + +#ifndef _WIN32 + +#if defined(__linux__) + +#define RTC_FREQ 1024 + +static void enable_sigio_timer(int fd) +{ + struct sigaction act; + + /* timer signal */ + sigfillset(&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = host_alarm_handler; + + sigaction(SIGIO, &act, NULL); + fcntl(fd, F_SETFL, O_ASYNC); + fcntl(fd, F_SETOWN, getpid()); +} + +static int hpet_start_timer(struct qemu_alarm_timer *t) +{ + struct hpet_info info; + int r, fd; + + fd = open("/dev/hpet", O_RDONLY); + if (fd < 0) + return -1; + + /* Set frequency */ + r = ioctl(fd, HPET_IRQFREQ, RTC_FREQ); + if (r < 0) { + fprintf(stderr, "Could not configure '/dev/hpet' to have a 1024Hz timer. This is not a fatal\n" + "error, but for better emulation accuracy type:\n" + "'echo 1024 > /proc/sys/dev/hpet/max-user-freq' as root.\n"); + goto fail; + } + + /* Check capabilities */ + r = ioctl(fd, HPET_INFO, &info); + if (r < 0) + goto fail; + + /* Enable periodic mode */ + r = ioctl(fd, HPET_EPI, 0); + if (info.hi_flags && (r < 0)) + goto fail; + + /* Enable interrupt */ + r = ioctl(fd, HPET_IE_ON, 0); + if (r < 0) + goto fail; + + enable_sigio_timer(fd); + t->priv = (void *)(long)fd; + + return 0; +fail: + close(fd); + return -1; +} + +static void hpet_stop_timer(struct qemu_alarm_timer *t) +{ + int fd = (long)t->priv; + + close(fd); +} + +static int rtc_start_timer(struct qemu_alarm_timer *t) +{ + int rtc_fd; + + TFR(rtc_fd = open("/dev/rtc", O_RDONLY)); + if (rtc_fd < 0) + return -1; + if (ioctl(rtc_fd, RTC_IRQP_SET, RTC_FREQ) < 0) { + fprintf(stderr, "Could not configure '/dev/rtc' to have a 1024 Hz timer. This is not a fatal\n" + "error, but for better emulation accuracy either use a 2.6 host Linux kernel or\n" + "type 'echo 1024 > /proc/sys/dev/rtc/max-user-freq' as root.\n"); + goto fail; + } + if (ioctl(rtc_fd, RTC_PIE_ON, 0) < 0) { + fail: + close(rtc_fd); + return -1; + } + + enable_sigio_timer(rtc_fd); + + t->priv = (void *)(long)rtc_fd; + + return 0; +} + +static void rtc_stop_timer(struct qemu_alarm_timer *t) +{ + int rtc_fd = (long)t->priv; + + close(rtc_fd); +} + +static int dynticks_start_timer(struct qemu_alarm_timer *t) +{ + struct sigevent ev; + timer_t host_timer; + struct sigaction act; + + sigfillset(&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = host_alarm_handler; + + sigaction(SIGALRM, &act, NULL); + + ev.sigev_value.sival_int = 0; + ev.sigev_notify = SIGEV_SIGNAL; + ev.sigev_signo = SIGALRM; + + if (timer_create(CLOCK_REALTIME, &ev, &host_timer)) { + perror("timer_create"); + + /* disable dynticks */ + fprintf(stderr, "Dynamic Ticks disabled\n"); + + return -1; + } + + t->priv = (void *)host_timer; + + return 0; +} + +static void dynticks_stop_timer(struct qemu_alarm_timer *t) +{ + timer_t host_timer = (timer_t)t->priv; + + timer_delete(host_timer); +} + +static void dynticks_rearm_timer(struct qemu_alarm_timer *t) +{ + timer_t host_timer = (timer_t)t->priv; + struct itimerspec timeout; + int64_t nearest_delta_us = INT64_MAX; + int64_t current_us; + + if (!active_timers[QEMU_TIMER_REALTIME] && + !active_timers[QEMU_TIMER_VIRTUAL]) + return; + + nearest_delta_us = qemu_next_deadline(); + + /* check whether a timer is already running */ + if (timer_gettime(host_timer, &timeout)) { + perror("gettime"); + fprintf(stderr, "Internal timer error: aborting\n"); + exit(1); + } + current_us = timeout.it_value.tv_sec * 1000000 + timeout.it_value.tv_nsec/1000; + if (current_us && current_us <= nearest_delta_us) + return; + + timeout.it_interval.tv_sec = 0; + timeout.it_interval.tv_nsec = 0; /* 0 for one-shot timer */ + timeout.it_value.tv_sec = nearest_delta_us / 1000000; + timeout.it_value.tv_nsec = (nearest_delta_us % 1000000) * 1000; + if (timer_settime(host_timer, 0 /* RELATIVE */, &timeout, NULL)) { + perror("settime"); + fprintf(stderr, "Internal timer error: aborting\n"); + exit(1); + } +} + +#endif /* defined(__linux__) */ + +static int unix_start_timer(struct qemu_alarm_timer *t) +{ + struct sigaction act; + struct itimerval itv; + int err; + + /* timer signal */ + sigfillset(&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = host_alarm_handler; + + sigaction(SIGALRM, &act, NULL); + + itv.it_interval.tv_sec = 0; + /* for i386 kernel 2.6 to get 1 ms */ + itv.it_interval.tv_usec = 999; + itv.it_value.tv_sec = 0; + itv.it_value.tv_usec = 10 * 1000; + + err = setitimer(ITIMER_REAL, &itv, NULL); + if (err) + return -1; + + return 0; +} + +static void unix_stop_timer(struct qemu_alarm_timer *t) +{ + struct itimerval itv; + + memset(&itv, 0, sizeof(itv)); + setitimer(ITIMER_REAL, &itv, NULL); +} + +#endif /* !defined(_WIN32) */ + +#ifdef _WIN32 + +static int win32_start_timer(struct qemu_alarm_timer *t) +{ + TIMECAPS tc; + struct qemu_alarm_win32 *data = t->priv; + UINT flags; + + data->host_alarm = CreateEvent(NULL, FALSE, FALSE, NULL); + if (!data->host_alarm) { + perror("Failed CreateEvent"); + return -1; + } + + memset(&tc, 0, sizeof(tc)); + timeGetDevCaps(&tc, sizeof(tc)); + + if (data->period < tc.wPeriodMin) + data->period = tc.wPeriodMin; + + timeBeginPeriod(data->period); + + flags = TIME_CALLBACK_FUNCTION; + if (alarm_has_dynticks(t)) + flags |= TIME_ONESHOT; + else + flags |= TIME_PERIODIC; + + data->timerId = timeSetEvent(1, // interval (ms) + data->period, // resolution + host_alarm_handler, // function + (DWORD)t, // parameter + flags); + + if (!data->timerId) { + perror("Failed to initialize win32 alarm timer"); + + timeEndPeriod(data->period); + CloseHandle(data->host_alarm); + return -1; + } + + qemu_add_wait_object(data->host_alarm, NULL, NULL); + + return 0; +} + +static void win32_stop_timer(struct qemu_alarm_timer *t) +{ + struct qemu_alarm_win32 *data = t->priv; + + timeKillEvent(data->timerId); + timeEndPeriod(data->period); + + CloseHandle(data->host_alarm); +} + +static void win32_rearm_timer(struct qemu_alarm_timer *t) +{ + struct qemu_alarm_win32 *data = t->priv; + uint64_t nearest_delta_us; + + if (!active_timers[QEMU_TIMER_REALTIME] && + !active_timers[QEMU_TIMER_VIRTUAL]) + return; + + nearest_delta_us = qemu_next_deadline(); + nearest_delta_us /= 1000; + + timeKillEvent(data->timerId); + + data->timerId = timeSetEvent(1, + data->period, + host_alarm_handler, + (DWORD)t, + TIME_ONESHOT | TIME_PERIODIC); + + if (!data->timerId) { + perror("Failed to re-arm win32 alarm timer"); + + timeEndPeriod(data->period); + CloseHandle(data->host_alarm); + exit(1); + } +} + +#endif /* _WIN32 */ + +static void init_timer_alarm(void) +{ + struct qemu_alarm_timer *t; + int i, err = -1; + + for (i = 0; alarm_timers[i].name; i++) { + t = &alarm_timers[i]; + + err = t->start(t); + if (!err) + break; + } + + if (err) { + fprintf(stderr, "Unable to find any suitable alarm timer.\n"); + fprintf(stderr, "Terminating\n"); + exit(1); + } + + alarm_timer = t; +} + +static void quit_timers(void) +{ + alarm_timer->stop(alarm_timer); + alarm_timer = NULL; +} + +/***********************************************************/ +/* character device */ + +static void qemu_chr_event(CharDriverState *s, int event) +{ + if (!s->chr_event) + return; + s->chr_event(s->handler_opaque, event); +} + +static void qemu_chr_reset_bh(void *opaque) +{ + CharDriverState *s = opaque; + qemu_chr_event(s, CHR_EVENT_RESET); + qemu_bh_delete(s->bh); + s->bh = NULL; +} + +void qemu_chr_reset(CharDriverState *s) +{ + if (s->bh == NULL) { + s->bh = qemu_bh_new(qemu_chr_reset_bh, s); + qemu_bh_schedule(s->bh); + } +} + +int qemu_chr_write(CharDriverState *s, const uint8_t *buf, int len) +{ + return s->chr_write(s, buf, len); +} + +int qemu_chr_ioctl(CharDriverState *s, int cmd, void *arg) +{ + if (!s->chr_ioctl) + return -ENOTSUP; + return s->chr_ioctl(s, cmd, arg); +} + +int qemu_chr_can_read(CharDriverState *s) +{ + if (!s->chr_can_read) + return 0; + return s->chr_can_read(s->handler_opaque); +} + +void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len) +{ + s->chr_read(s->handler_opaque, buf, len); +} + +void qemu_chr_accept_input(CharDriverState *s) +{ + if (s->chr_accept_input) + s->chr_accept_input(s); +} + +void qemu_chr_printf(CharDriverState *s, const char *fmt, ...) +{ + char buf[4096]; + va_list ap; + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + qemu_chr_write(s, (uint8_t *)buf, strlen(buf)); + va_end(ap); +} + +void qemu_chr_send_event(CharDriverState *s, int event) +{ + if (s->chr_send_event) + s->chr_send_event(s, event); +} + +void qemu_chr_add_handlers(CharDriverState *s, + IOCanRWHandler *fd_can_read, + IOReadHandler *fd_read, + IOEventHandler *fd_event, + void *opaque) +{ + s->chr_can_read = fd_can_read; + s->chr_read = fd_read; + s->chr_event = fd_event; + s->handler_opaque = opaque; + if (s->chr_update_read_handler) + s->chr_update_read_handler(s); +} + +static int null_chr_write(CharDriverState *chr, const uint8_t *buf, int len) +{ + return len; +} + +static CharDriverState *qemu_chr_open_null(void) +{ + CharDriverState *chr; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + chr->chr_write = null_chr_write; + return chr; +} + +/* MUX driver for serial I/O splitting */ +static int term_timestamps; +static int64_t term_timestamps_start; +#define MAX_MUX 4 +#define MUX_BUFFER_SIZE 32 /* Must be a power of 2. */ +#define MUX_BUFFER_MASK (MUX_BUFFER_SIZE - 1) +typedef struct { + IOCanRWHandler *chr_can_read[MAX_MUX]; + IOReadHandler *chr_read[MAX_MUX]; + IOEventHandler *chr_event[MAX_MUX]; + void *ext_opaque[MAX_MUX]; + CharDriverState *drv; + unsigned char buffer[MUX_BUFFER_SIZE]; + int prod; + int cons; + int mux_cnt; + int term_got_escape; + int max_size; +} MuxDriver; + + +static int mux_chr_write(CharDriverState *chr, const uint8_t *buf, int len) +{ + MuxDriver *d = chr->opaque; + int ret; + if (!term_timestamps) { + ret = d->drv->chr_write(d->drv, buf, len); + } else { + int i; + + ret = 0; + for(i = 0; i < len; i++) { + ret += d->drv->chr_write(d->drv, buf+i, 1); + if (buf[i] == '\n') { + char buf1[64]; + int64_t ti; + int secs; + + ti = get_clock(); + if (term_timestamps_start == -1) + term_timestamps_start = ti; + ti -= term_timestamps_start; + secs = ti / 1000000000; + snprintf(buf1, sizeof(buf1), + "[%02d:%02d:%02d.%03d] ", + secs / 3600, + (secs / 60) % 60, + secs % 60, + (int)((ti / 1000000) % 1000)); + d->drv->chr_write(d->drv, (uint8_t *)buf1, strlen(buf1)); + } + } + } + return ret; +} + +static char *mux_help[] = { + "% h print this help\n\r", + "% x exit emulator\n\r", + "% s save disk data back to file (if -snapshot)\n\r", + "% t toggle console timestamps\n\r" + "% b send break (magic sysrq)\n\r", + "% c switch between console and monitor\n\r", + "% % sends %\n\r", + NULL +}; + +static int term_escape_char = 0x01; /* ctrl-a is used for escape */ +static void mux_print_help(CharDriverState *chr) +{ + int i, j; + char ebuf[15] = "Escape-Char"; + char cbuf[50] = "\n\r"; + + if (term_escape_char > 0 && term_escape_char < 26) { + sprintf(cbuf,"\n\r"); + sprintf(ebuf,"C-%c", term_escape_char - 1 + 'a'); + } else { + sprintf(cbuf,"\n\rEscape-Char set to Ascii: 0x%02x\n\r\n\r", + term_escape_char); + } + chr->chr_write(chr, (uint8_t *)cbuf, strlen(cbuf)); + for (i = 0; mux_help[i] != NULL; i++) { + for (j=0; mux_help[i][j] != '\0'; j++) { + if (mux_help[i][j] == '%') + chr->chr_write(chr, (uint8_t *)ebuf, strlen(ebuf)); + else + chr->chr_write(chr, (uint8_t *)&mux_help[i][j], 1); + } + } +} + +static int mux_proc_byte(CharDriverState *chr, MuxDriver *d, int ch) +{ + if (d->term_got_escape) { + d->term_got_escape = 0; + if (ch == term_escape_char) + goto send_char; + switch(ch) { + case '?': + case 'h': + mux_print_help(chr); + break; + case 'x': + { + char *term = "QEMU: Terminated\n\r"; + chr->chr_write(chr,(uint8_t *)term,strlen(term)); + exit(0); + break; + } + case 's': + { + int i; + for (i = 0; i < nb_drives; i++) { + bdrv_commit(drives_table[i].bdrv); + } + } + break; + case 'b': + qemu_chr_event(chr, CHR_EVENT_BREAK); + break; + case 'c': + /* Switch to the next registered device */ + chr->focus++; + if (chr->focus >= d->mux_cnt) + chr->focus = 0; + break; + case 't': + term_timestamps = !term_timestamps; + term_timestamps_start = -1; + break; + } + } else if (ch == term_escape_char) { + d->term_got_escape = 1; + } else { + send_char: + return 1; + } + return 0; +} + +static void mux_chr_accept_input(CharDriverState *chr) +{ + int m = chr->focus; + MuxDriver *d = chr->opaque; + + while (d->prod != d->cons && + d->chr_can_read[m] && + d->chr_can_read[m](d->ext_opaque[m])) { + d->chr_read[m](d->ext_opaque[m], + &d->buffer[d->cons++ & MUX_BUFFER_MASK], 1); + } +} + +static int mux_chr_can_read(void *opaque) +{ + CharDriverState *chr = opaque; + MuxDriver *d = chr->opaque; + + if ((d->prod - d->cons) < MUX_BUFFER_SIZE) + return 1; + if (d->chr_can_read[chr->focus]) + return d->chr_can_read[chr->focus](d->ext_opaque[chr->focus]); + return 0; +} + +static void mux_chr_read(void *opaque, const uint8_t *buf, int size) +{ + CharDriverState *chr = opaque; + MuxDriver *d = chr->opaque; + int m = chr->focus; + int i; + + mux_chr_accept_input (opaque); + + for(i = 0; i < size; i++) + if (mux_proc_byte(chr, d, buf[i])) { + if (d->prod == d->cons && + d->chr_can_read[m] && + d->chr_can_read[m](d->ext_opaque[m])) + d->chr_read[m](d->ext_opaque[m], &buf[i], 1); + else + d->buffer[d->prod++ & MUX_BUFFER_MASK] = buf[i]; + } +} + +static void mux_chr_event(void *opaque, int event) +{ + CharDriverState *chr = opaque; + MuxDriver *d = chr->opaque; + int i; + + /* Send the event to all registered listeners */ + for (i = 0; i < d->mux_cnt; i++) + if (d->chr_event[i]) + d->chr_event[i](d->ext_opaque[i], event); +} + +static void mux_chr_update_read_handler(CharDriverState *chr) +{ + MuxDriver *d = chr->opaque; + + if (d->mux_cnt >= MAX_MUX) { + fprintf(stderr, "Cannot add I/O handlers, MUX array is full\n"); + return; + } + d->ext_opaque[d->mux_cnt] = chr->handler_opaque; + d->chr_can_read[d->mux_cnt] = chr->chr_can_read; + d->chr_read[d->mux_cnt] = chr->chr_read; + d->chr_event[d->mux_cnt] = chr->chr_event; + /* Fix up the real driver with mux routines */ + if (d->mux_cnt == 0) { + qemu_chr_add_handlers(d->drv, mux_chr_can_read, mux_chr_read, + mux_chr_event, chr); + } + chr->focus = d->mux_cnt; + d->mux_cnt++; +} + +static CharDriverState *qemu_chr_open_mux(CharDriverState *drv) +{ + CharDriverState *chr; + MuxDriver *d; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + d = qemu_mallocz(sizeof(MuxDriver)); + if (!d) { + free(chr); + return NULL; + } + + chr->opaque = d; + d->drv = drv; + chr->focus = -1; + chr->chr_write = mux_chr_write; + chr->chr_update_read_handler = mux_chr_update_read_handler; + chr->chr_accept_input = mux_chr_accept_input; + return chr; +} + + +#ifdef _WIN32 + +static void socket_cleanup(void) +{ + WSACleanup(); +} + +static int socket_init(void) +{ + WSADATA Data; + int ret, err; + + ret = WSAStartup(MAKEWORD(2,2), &Data); + if (ret != 0) { + err = WSAGetLastError(); + fprintf(stderr, "WSAStartup: %d\n", err); + return -1; + } + atexit(socket_cleanup); + return 0; +} + +static int send_all(int fd, const uint8_t *buf, int len1) +{ + int ret, len; + + len = len1; + while (len > 0) { + ret = send(fd, buf, len, 0); + if (ret < 0) { + int errno; + errno = WSAGetLastError(); + if (errno != WSAEWOULDBLOCK) { + return -1; + } + } else if (ret == 0) { + break; + } else { + buf += ret; + len -= ret; + } + } + return len1 - len; +} + +void socket_set_nonblock(int fd) +{ + unsigned long opt = 1; + ioctlsocket(fd, FIONBIO, &opt); +} + +#else + +static int unix_write(int fd, const uint8_t *buf, int len1) +{ + int ret, len; + + len = len1; + while (len > 0) { + ret = write(fd, buf, len); + if (ret < 0) { + if (errno != EINTR && errno != EAGAIN) + return -1; + } else if (ret == 0) { + break; + } else { + buf += ret; + len -= ret; + } + } + return len1 - len; +} + +static inline int send_all(int fd, const uint8_t *buf, int len1) +{ + return unix_write(fd, buf, len1); +} + +void socket_set_nonblock(int fd) +{ + fcntl(fd, F_SETFL, O_NONBLOCK); +} +#endif /* !_WIN32 */ + +#ifndef _WIN32 + +typedef struct { + int fd_in, fd_out; + int max_size; +} FDCharDriver; + +#define STDIO_MAX_CLIENTS 1 +static int stdio_nb_clients = 0; + +static int fd_chr_write(CharDriverState *chr, const uint8_t *buf, int len) +{ + FDCharDriver *s = chr->opaque; + return unix_write(s->fd_out, buf, len); +} + +static int fd_chr_read_poll(void *opaque) +{ + CharDriverState *chr = opaque; + FDCharDriver *s = chr->opaque; + + s->max_size = qemu_chr_can_read(chr); + return s->max_size; +} + +static void fd_chr_read(void *opaque) +{ + CharDriverState *chr = opaque; + FDCharDriver *s = chr->opaque; + int size, len; + uint8_t buf[1024]; + + len = sizeof(buf); + if (len > s->max_size) + len = s->max_size; + if (len == 0) + return; + size = read(s->fd_in, buf, len); + if (size == 0) { + /* FD has been closed. Remove it from the active list. */ + qemu_set_fd_handler2(s->fd_in, NULL, NULL, NULL, NULL); + return; + } + if (size > 0) { + qemu_chr_read(chr, buf, size); + } +} + +static void fd_chr_update_read_handler(CharDriverState *chr) +{ + FDCharDriver *s = chr->opaque; + + if (s->fd_in >= 0) { + if (nographic && s->fd_in == 0) { + } else { + qemu_set_fd_handler2(s->fd_in, fd_chr_read_poll, + fd_chr_read, NULL, chr); + } + } +} + +/* open a character device to a unix fd */ +static CharDriverState *qemu_chr_open_fd(int fd_in, int fd_out) +{ + CharDriverState *chr; + FDCharDriver *s; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + s = qemu_mallocz(sizeof(FDCharDriver)); + if (!s) { + free(chr); + return NULL; + } + s->fd_in = fd_in; + s->fd_out = fd_out; + chr->opaque = s; + chr->chr_write = fd_chr_write; + chr->chr_update_read_handler = fd_chr_update_read_handler; + + qemu_chr_reset(chr); + + return chr; +} + +static CharDriverState *qemu_chr_open_file_out(const char *file_out) +{ + int fd_out; + + TFR(fd_out = open(file_out, O_WRONLY | O_TRUNC | O_CREAT | O_BINARY, 0666)); + if (fd_out < 0) + return NULL; + return qemu_chr_open_fd(-1, fd_out); +} + +static CharDriverState *qemu_chr_open_pipe(const char *filename) +{ + int fd_in, fd_out; + char filename_in[256], filename_out[256]; + + snprintf(filename_in, 256, "%s.in", filename); + snprintf(filename_out, 256, "%s.out", filename); + TFR(fd_in = open(filename_in, O_RDWR | O_BINARY)); + TFR(fd_out = open(filename_out, O_RDWR | O_BINARY)); + if (fd_in < 0 || fd_out < 0) { + if (fd_in >= 0) + close(fd_in); + if (fd_out >= 0) + close(fd_out); + TFR(fd_in = fd_out = open(filename, O_RDWR | O_BINARY)); + if (fd_in < 0) + return NULL; + } + return qemu_chr_open_fd(fd_in, fd_out); +} + + +/* for STDIO, we handle the case where several clients use it + (nographic mode) */ + +#define TERM_FIFO_MAX_SIZE 1 + +static uint8_t term_fifo[TERM_FIFO_MAX_SIZE]; +static int term_fifo_size; + +static int stdio_read_poll(void *opaque) +{ + CharDriverState *chr = opaque; + + /* try to flush the queue if needed */ + if (term_fifo_size != 0 && qemu_chr_can_read(chr) > 0) { + qemu_chr_read(chr, term_fifo, 1); + term_fifo_size = 0; + } + /* see if we can absorb more chars */ + if (term_fifo_size == 0) + return 1; + else + return 0; +} + +static void stdio_read(void *opaque) +{ + int size; + uint8_t buf[1]; + CharDriverState *chr = opaque; + + size = read(0, buf, 1); + if (size == 0) { + /* stdin has been closed. Remove it from the active list. */ + qemu_set_fd_handler2(0, NULL, NULL, NULL, NULL); + return; + } + if (size > 0) { + if (qemu_chr_can_read(chr) > 0) { + qemu_chr_read(chr, buf, 1); + } else if (term_fifo_size == 0) { + term_fifo[term_fifo_size++] = buf[0]; + } + } +} + +/* init terminal so that we can grab keys */ +static struct termios oldtty; +static int old_fd0_flags; + +static void term_exit(void) +{ + tcsetattr (0, TCSANOW, &oldtty); + fcntl(0, F_SETFL, old_fd0_flags); +} + +static void term_init(void) +{ + struct termios tty; + + tcgetattr (0, &tty); + oldtty = tty; + old_fd0_flags = fcntl(0, F_GETFL); + + tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP + |INLCR|IGNCR|ICRNL|IXON); + tty.c_oflag |= OPOST; + tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN); + /* if graphical mode, we allow Ctrl-C handling */ + if (nographic) + tty.c_lflag &= ~ISIG; + tty.c_cflag &= ~(CSIZE|PARENB); + tty.c_cflag |= CS8; + tty.c_cc[VMIN] = 1; + tty.c_cc[VTIME] = 0; + + tcsetattr (0, TCSANOW, &tty); + + atexit(term_exit); + + fcntl(0, F_SETFL, O_NONBLOCK); +} + +static CharDriverState *qemu_chr_open_stdio(void) +{ + CharDriverState *chr; + + if (stdio_nb_clients >= STDIO_MAX_CLIENTS) + return NULL; + chr = qemu_chr_open_fd(0, 1); + qemu_set_fd_handler2(0, stdio_read_poll, stdio_read, NULL, chr); + stdio_nb_clients++; + term_init(); + + return chr; +} + +#if defined(__linux__) || defined(__sun__) +static CharDriverState *qemu_chr_open_pty(void) +{ + struct termios tty; + char slave_name[1024]; + int master_fd, slave_fd; + +#if defined(__linux__) + /* Not satisfying */ + if (openpty(&master_fd, &slave_fd, slave_name, NULL, NULL) < 0) { + return NULL; + } +#endif + + /* Disabling local echo and line-buffered output */ + tcgetattr (master_fd, &tty); + tty.c_lflag &= ~(ECHO|ICANON|ISIG); + tty.c_cc[VMIN] = 1; + tty.c_cc[VTIME] = 0; + tcsetattr (master_fd, TCSAFLUSH, &tty); + + fprintf(stderr, "char device redirected to %s\n", slave_name); + return qemu_chr_open_fd(master_fd, master_fd); +} + +static void tty_serial_init(int fd, int speed, + int parity, int data_bits, int stop_bits) +{ + struct termios tty; + speed_t spd; + +#if 0 + printf("tty_serial_init: speed=%d parity=%c data=%d stop=%d\n", + speed, parity, data_bits, stop_bits); +#endif + tcgetattr (fd, &tty); + + switch(speed) { + case 50: + spd = B50; + break; + case 75: + spd = B75; + break; + case 300: + spd = B300; + break; + case 600: + spd = B600; + break; + case 1200: + spd = B1200; + break; + case 2400: + spd = B2400; + break; + case 4800: + spd = B4800; + break; + case 9600: + spd = B9600; + break; + case 19200: + spd = B19200; + break; + case 38400: + spd = B38400; + break; + case 57600: + spd = B57600; + break; + default: + case 115200: + spd = B115200; + break; + } + + cfsetispeed(&tty, spd); + cfsetospeed(&tty, spd); + + tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP + |INLCR|IGNCR|ICRNL|IXON); + tty.c_oflag |= OPOST; + tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN|ISIG); + tty.c_cflag &= ~(CSIZE|PARENB|PARODD|CRTSCTS|CSTOPB); + switch(data_bits) { + default: + case 8: + tty.c_cflag |= CS8; + break; + case 7: + tty.c_cflag |= CS7; + break; + case 6: + tty.c_cflag |= CS6; + break; + case 5: + tty.c_cflag |= CS5; + break; + } + switch(parity) { + default: + case 'N': + break; + case 'E': + tty.c_cflag |= PARENB; + break; + case 'O': + tty.c_cflag |= PARENB | PARODD; + break; + } + if (stop_bits == 2) + tty.c_cflag |= CSTOPB; + + tcsetattr (fd, TCSANOW, &tty); +} + +static int tty_serial_ioctl(CharDriverState *chr, int cmd, void *arg) +{ + FDCharDriver *s = chr->opaque; + + switch(cmd) { + case CHR_IOCTL_SERIAL_SET_PARAMS: + { + QEMUSerialSetParams *ssp = arg; + tty_serial_init(s->fd_in, ssp->speed, ssp->parity, + ssp->data_bits, ssp->stop_bits); + } + break; + case CHR_IOCTL_SERIAL_SET_BREAK: + { + int enable = *(int *)arg; + if (enable) + tcsendbreak(s->fd_in, 1); + } + break; + default: + return -ENOTSUP; + } + return 0; +} + +static CharDriverState *qemu_chr_open_tty(const char *filename) +{ + CharDriverState *chr; + int fd; + + TFR(fd = open(filename, O_RDWR | O_NONBLOCK)); + fcntl(fd, F_SETFL, O_NONBLOCK); + tty_serial_init(fd, 115200, 'N', 8, 1); + chr = qemu_chr_open_fd(fd, fd); + if (!chr) { + close(fd); + return NULL; + } + chr->chr_ioctl = tty_serial_ioctl; + qemu_chr_reset(chr); + return chr; +} +#else /* ! __linux__ && ! __sun__ */ +static CharDriverState *qemu_chr_open_pty(void) +{ + return NULL; +} +#endif /* __linux__ || __sun__ */ + +#if defined(__linux__) +typedef struct { + int fd; + int mode; +} ParallelCharDriver; + +static int pp_hw_mode(ParallelCharDriver *s, uint16_t mode) +{ + if (s->mode != mode) { + int m = mode; + if (ioctl(s->fd, PPSETMODE, &m) < 0) + return 0; + s->mode = mode; + } + return 1; +} + +static int pp_ioctl(CharDriverState *chr, int cmd, void *arg) +{ + ParallelCharDriver *drv = chr->opaque; + int fd = drv->fd; + uint8_t b; + + switch(cmd) { + case CHR_IOCTL_PP_READ_DATA: + if (ioctl(fd, PPRDATA, &b) < 0) + return -ENOTSUP; + *(uint8_t *)arg = b; + break; + case CHR_IOCTL_PP_WRITE_DATA: + b = *(uint8_t *)arg; + if (ioctl(fd, PPWDATA, &b) < 0) + return -ENOTSUP; + break; + case CHR_IOCTL_PP_READ_CONTROL: + if (ioctl(fd, PPRCONTROL, &b) < 0) + return -ENOTSUP; + /* Linux gives only the lowest bits, and no way to know data + direction! For better compatibility set the fixed upper + bits. */ + *(uint8_t *)arg = b | 0xc0; + break; + case CHR_IOCTL_PP_WRITE_CONTROL: + b = *(uint8_t *)arg; + if (ioctl(fd, PPWCONTROL, &b) < 0) + return -ENOTSUP; + break; + case CHR_IOCTL_PP_READ_STATUS: + if (ioctl(fd, PPRSTATUS, &b) < 0) + return -ENOTSUP; + *(uint8_t *)arg = b; + break; + case CHR_IOCTL_PP_EPP_READ_ADDR: + if (pp_hw_mode(drv, IEEE1284_MODE_EPP|IEEE1284_ADDR)) { + struct ParallelIOArg *parg = arg; + int n = read(fd, parg->buffer, parg->count); + if (n != parg->count) { + return -EIO; + } + } + break; + case CHR_IOCTL_PP_EPP_READ: + if (pp_hw_mode(drv, IEEE1284_MODE_EPP)) { + struct ParallelIOArg *parg = arg; + int n = read(fd, parg->buffer, parg->count); + if (n != parg->count) { + return -EIO; + } + } + break; + case CHR_IOCTL_PP_EPP_WRITE_ADDR: + if (pp_hw_mode(drv, IEEE1284_MODE_EPP|IEEE1284_ADDR)) { + struct ParallelIOArg *parg = arg; + int n = write(fd, parg->buffer, parg->count); + if (n != parg->count) { + return -EIO; + } + } + break; + case CHR_IOCTL_PP_EPP_WRITE: + if (pp_hw_mode(drv, IEEE1284_MODE_EPP)) { + struct ParallelIOArg *parg = arg; + int n = write(fd, parg->buffer, parg->count); + if (n != parg->count) { + return -EIO; + } + } + break; + default: + return -ENOTSUP; + } + return 0; +} + +static void pp_close(CharDriverState *chr) +{ + ParallelCharDriver *drv = chr->opaque; + int fd = drv->fd; + + pp_hw_mode(drv, IEEE1284_MODE_COMPAT); + ioctl(fd, PPRELEASE); + close(fd); + qemu_free(drv); +} + +static CharDriverState *qemu_chr_open_pp(const char *filename) +{ + CharDriverState *chr; + ParallelCharDriver *drv; + int fd; + + TFR(fd = open(filename, O_RDWR)); + if (fd < 0) + return NULL; + + if (ioctl(fd, PPCLAIM) < 0) { + close(fd); + return NULL; + } + + drv = qemu_mallocz(sizeof(ParallelCharDriver)); + if (!drv) { + close(fd); + return NULL; + } + drv->fd = fd; + drv->mode = IEEE1284_MODE_COMPAT; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) { + qemu_free(drv); + close(fd); + return NULL; + } + chr->chr_write = null_chr_write; + chr->chr_ioctl = pp_ioctl; + chr->chr_close = pp_close; + chr->opaque = drv; + + qemu_chr_reset(chr); + + return chr; +} +#endif /* __linux__ */ + +#else /* _WIN32 */ + +typedef struct { + int max_size; + HANDLE hcom, hrecv, hsend; + OVERLAPPED orecv, osend; + BOOL fpipe; + DWORD len; +} WinCharState; + +#define NSENDBUF 2048 +#define NRECVBUF 2048 +#define MAXCONNECT 1 +#define NTIMEOUT 5000 + +static int win_chr_poll(void *opaque); +static int win_chr_pipe_poll(void *opaque); + +static void win_chr_close(CharDriverState *chr) +{ + WinCharState *s = chr->opaque; + + if (s->hsend) { + CloseHandle(s->hsend); + s->hsend = NULL; + } + if (s->hrecv) { + CloseHandle(s->hrecv); + s->hrecv = NULL; + } + if (s->hcom) { + CloseHandle(s->hcom); + s->hcom = NULL; + } + if (s->fpipe) + qemu_del_polling_cb(win_chr_pipe_poll, chr); + else + qemu_del_polling_cb(win_chr_poll, chr); +} + +static int win_chr_init(CharDriverState *chr, const char *filename) +{ + WinCharState *s = chr->opaque; + COMMCONFIG comcfg; + COMMTIMEOUTS cto = { 0, 0, 0, 0, 0}; + COMSTAT comstat; + DWORD size; + DWORD err; + + s->hsend = CreateEvent(NULL, TRUE, FALSE, NULL); + if (!s->hsend) { + fprintf(stderr, "Failed CreateEvent\n"); + goto fail; + } + s->hrecv = CreateEvent(NULL, TRUE, FALSE, NULL); + if (!s->hrecv) { + fprintf(stderr, "Failed CreateEvent\n"); + goto fail; + } + + s->hcom = CreateFile(filename, GENERIC_READ|GENERIC_WRITE, 0, NULL, + OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); + if (s->hcom == INVALID_HANDLE_VALUE) { + fprintf(stderr, "Failed CreateFile (%lu)\n", GetLastError()); + s->hcom = NULL; + goto fail; + } + + if (!SetupComm(s->hcom, NRECVBUF, NSENDBUF)) { + fprintf(stderr, "Failed SetupComm\n"); + goto fail; + } + + ZeroMemory(&comcfg, sizeof(COMMCONFIG)); + size = sizeof(COMMCONFIG); + GetDefaultCommConfig(filename, &comcfg, &size); + comcfg.dcb.DCBlength = sizeof(DCB); + CommConfigDialog(filename, NULL, &comcfg); + + if (!SetCommState(s->hcom, &comcfg.dcb)) { + fprintf(stderr, "Failed SetCommState\n"); + goto fail; + } + + if (!SetCommMask(s->hcom, EV_ERR)) { + fprintf(stderr, "Failed SetCommMask\n"); + goto fail; + } + + cto.ReadIntervalTimeout = MAXDWORD; + if (!SetCommTimeouts(s->hcom, &cto)) { + fprintf(stderr, "Failed SetCommTimeouts\n"); + goto fail; + } + + if (!ClearCommError(s->hcom, &err, &comstat)) { + fprintf(stderr, "Failed ClearCommError\n"); + goto fail; + } + qemu_add_polling_cb(win_chr_poll, chr); + return 0; + + fail: + win_chr_close(chr); + return -1; +} + +static int win_chr_write(CharDriverState *chr, const uint8_t *buf, int len1) +{ + WinCharState *s = chr->opaque; + DWORD len, ret, size, err; + + len = len1; + ZeroMemory(&s->osend, sizeof(s->osend)); + s->osend.hEvent = s->hsend; + while (len > 0) { + if (s->hsend) + ret = WriteFile(s->hcom, buf, len, &size, &s->osend); + else + ret = WriteFile(s->hcom, buf, len, &size, NULL); + if (!ret) { + err = GetLastError(); + if (err == ERROR_IO_PENDING) { + ret = GetOverlappedResult(s->hcom, &s->osend, &size, TRUE); + if (ret) { + buf += size; + len -= size; + } else { + break; + } + } else { + break; + } + } else { + buf += size; + len -= size; + } + } + return len1 - len; +} + +static int win_chr_read_poll(CharDriverState *chr) +{ + WinCharState *s = chr->opaque; + + s->max_size = qemu_chr_can_read(chr); + return s->max_size; +} + +static void win_chr_readfile(CharDriverState *chr) +{ + WinCharState *s = chr->opaque; + int ret, err; + uint8_t buf[1024]; + DWORD size; + + ZeroMemory(&s->orecv, sizeof(s->orecv)); + s->orecv.hEvent = s->hrecv; + ret = ReadFile(s->hcom, buf, s->len, &size, &s->orecv); + if (!ret) { + err = GetLastError(); + if (err == ERROR_IO_PENDING) { + ret = GetOverlappedResult(s->hcom, &s->orecv, &size, TRUE); + } + } + + if (size > 0) { + qemu_chr_read(chr, buf, size); + } +} + +static void win_chr_read(CharDriverState *chr) +{ + WinCharState *s = chr->opaque; + + if (s->len > s->max_size) + s->len = s->max_size; + if (s->len == 0) + return; + + win_chr_readfile(chr); +} + +static int win_chr_poll(void *opaque) +{ + CharDriverState *chr = opaque; + WinCharState *s = chr->opaque; + COMSTAT status; + DWORD comerr; + + ClearCommError(s->hcom, &comerr, &status); + if (status.cbInQue > 0) { + s->len = status.cbInQue; + win_chr_read_poll(chr); + win_chr_read(chr); + return 1; + } + return 0; +} + +static CharDriverState *qemu_chr_open_win(const char *filename) +{ + CharDriverState *chr; + WinCharState *s; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + s = qemu_mallocz(sizeof(WinCharState)); + if (!s) { + free(chr); + return NULL; + } + chr->opaque = s; + chr->chr_write = win_chr_write; + chr->chr_close = win_chr_close; + + if (win_chr_init(chr, filename) < 0) { + free(s); + free(chr); + return NULL; + } + qemu_chr_reset(chr); + return chr; +} + +static int win_chr_pipe_poll(void *opaque) +{ + CharDriverState *chr = opaque; + WinCharState *s = chr->opaque; + DWORD size; + + PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL); + if (size > 0) { + s->len = size; + win_chr_read_poll(chr); + win_chr_read(chr); + return 1; + } + return 0; +} + +static int win_chr_pipe_init(CharDriverState *chr, const char *filename) +{ + WinCharState *s = chr->opaque; + OVERLAPPED ov; + int ret; + DWORD size; + char openname[256]; + + s->fpipe = TRUE; + + s->hsend = CreateEvent(NULL, TRUE, FALSE, NULL); + if (!s->hsend) { + fprintf(stderr, "Failed CreateEvent\n"); + goto fail; + } + s->hrecv = CreateEvent(NULL, TRUE, FALSE, NULL); + if (!s->hrecv) { + fprintf(stderr, "Failed CreateEvent\n"); + goto fail; + } + + snprintf(openname, sizeof(openname), "\\\\.\\pipe\\%s", filename); + s->hcom = CreateNamedPipe(openname, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, + PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | + PIPE_WAIT, + MAXCONNECT, NSENDBUF, NRECVBUF, NTIMEOUT, NULL); + if (s->hcom == INVALID_HANDLE_VALUE) { + fprintf(stderr, "Failed CreateNamedPipe (%lu)\n", GetLastError()); + s->hcom = NULL; + goto fail; + } + + ZeroMemory(&ov, sizeof(ov)); + ov.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); + ret = ConnectNamedPipe(s->hcom, &ov); + if (ret) { + fprintf(stderr, "Failed ConnectNamedPipe\n"); + goto fail; + } + + ret = GetOverlappedResult(s->hcom, &ov, &size, TRUE); + if (!ret) { + fprintf(stderr, "Failed GetOverlappedResult\n"); + if (ov.hEvent) { + CloseHandle(ov.hEvent); + ov.hEvent = NULL; + } + goto fail; + } + + if (ov.hEvent) { + CloseHandle(ov.hEvent); + ov.hEvent = NULL; + } + qemu_add_polling_cb(win_chr_pipe_poll, chr); + return 0; + + fail: + win_chr_close(chr); + return -1; +} + + +static CharDriverState *qemu_chr_open_win_pipe(const char *filename) +{ + CharDriverState *chr; + WinCharState *s; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + s = qemu_mallocz(sizeof(WinCharState)); + if (!s) { + free(chr); + return NULL; + } + chr->opaque = s; + chr->chr_write = win_chr_write; + chr->chr_close = win_chr_close; + + if (win_chr_pipe_init(chr, filename) < 0) { + free(s); + free(chr); + return NULL; + } + qemu_chr_reset(chr); + return chr; +} + +static CharDriverState *qemu_chr_open_win_file(HANDLE fd_out) +{ + CharDriverState *chr; + WinCharState *s; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + return NULL; + s = qemu_mallocz(sizeof(WinCharState)); + if (!s) { + free(chr); + return NULL; + } + s->hcom = fd_out; + chr->opaque = s; + chr->chr_write = win_chr_write; + qemu_chr_reset(chr); + return chr; +} + +static CharDriverState *qemu_chr_open_win_con(const char *filename) +{ + return qemu_chr_open_win_file(GetStdHandle(STD_OUTPUT_HANDLE)); +} + +static CharDriverState *qemu_chr_open_win_file_out(const char *file_out) +{ + HANDLE fd_out; + + fd_out = CreateFile(file_out, GENERIC_WRITE, FILE_SHARE_READ, NULL, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + if (fd_out == INVALID_HANDLE_VALUE) + return NULL; + + return qemu_chr_open_win_file(fd_out); +} +#endif /* !_WIN32 */ + +/***********************************************************/ +/* UDP Net console */ + +typedef struct { + int fd; + struct sockaddr_in daddr; + uint8_t buf[1024]; + int bufcnt; + int bufptr; + int max_size; +} NetCharDriver; + +static int udp_chr_write(CharDriverState *chr, const uint8_t *buf, int len) +{ + NetCharDriver *s = chr->opaque; + + return sendto(s->fd, buf, len, 0, + (struct sockaddr *)&s->daddr, sizeof(struct sockaddr_in)); +} + +static int udp_chr_read_poll(void *opaque) +{ + CharDriverState *chr = opaque; + NetCharDriver *s = chr->opaque; + + s->max_size = qemu_chr_can_read(chr); + + /* If there were any stray characters in the queue process them + * first + */ + while (s->max_size > 0 && s->bufptr < s->bufcnt) { + qemu_chr_read(chr, &s->buf[s->bufptr], 1); + s->bufptr++; + s->max_size = qemu_chr_can_read(chr); + } + return s->max_size; +} + +static void udp_chr_read(void *opaque) +{ + CharDriverState *chr = opaque; + NetCharDriver *s = chr->opaque; + + if (s->max_size == 0) + return; + s->bufcnt = recv(s->fd, s->buf, sizeof(s->buf), 0); + s->bufptr = s->bufcnt; + if (s->bufcnt <= 0) + return; + + s->bufptr = 0; + while (s->max_size > 0 && s->bufptr < s->bufcnt) { + qemu_chr_read(chr, &s->buf[s->bufptr], 1); + s->bufptr++; + s->max_size = qemu_chr_can_read(chr); + } +} + +static void udp_chr_update_read_handler(CharDriverState *chr) +{ + NetCharDriver *s = chr->opaque; + + if (s->fd >= 0) { + qemu_set_fd_handler2(s->fd, udp_chr_read_poll, + udp_chr_read, NULL, chr); + } +} + +int parse_host_port(struct sockaddr_in *saddr, const char *str); +#ifndef _WIN32 +static int parse_unix_path(struct sockaddr_un *uaddr, const char *str); +#endif +int parse_host_src_port(struct sockaddr_in *haddr, + struct sockaddr_in *saddr, + const char *str); + +static CharDriverState *qemu_chr_open_udp(const char *def) +{ + CharDriverState *chr = NULL; + NetCharDriver *s = NULL; + int fd = -1; + struct sockaddr_in saddr; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + goto return_err; + s = qemu_mallocz(sizeof(NetCharDriver)); + if (!s) + goto return_err; + + fd = socket(PF_INET, SOCK_DGRAM, 0); + if (fd < 0) { + perror("socket(PF_INET, SOCK_DGRAM)"); + goto return_err; + } + + if (parse_host_src_port(&s->daddr, &saddr, def) < 0) { + printf("Could not parse: %s\n", def); + goto return_err; + } + + if (bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) + { + perror("bind"); + goto return_err; + } + + s->fd = fd; + s->bufcnt = 0; + s->bufptr = 0; + chr->opaque = s; + chr->chr_write = udp_chr_write; + chr->chr_update_read_handler = udp_chr_update_read_handler; + return chr; + +return_err: + if (chr) + free(chr); + if (s) + free(s); + if (fd >= 0) + closesocket(fd); + return NULL; +} + +/***********************************************************/ +/* TCP Net console */ + +typedef struct { + int fd, listen_fd; + int connected; + int max_size; + int do_telnetopt; + int do_nodelay; + int is_unix; +} TCPCharDriver; + +static void tcp_chr_accept(void *opaque); + +static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len) +{ + TCPCharDriver *s = chr->opaque; + if (s->connected) { + return send_all(s->fd, buf, len); + } else { + /* XXX: indicate an error ? */ + return len; + } +} + +static int tcp_chr_read_poll(void *opaque) +{ + CharDriverState *chr = opaque; + TCPCharDriver *s = chr->opaque; + if (!s->connected) + return 0; + s->max_size = qemu_chr_can_read(chr); + return s->max_size; +} + +#define IAC 255 +#define IAC_BREAK 243 +static void tcp_chr_process_IAC_bytes(CharDriverState *chr, + TCPCharDriver *s, + uint8_t *buf, int *size) +{ + /* Handle any telnet client's basic IAC options to satisfy char by + * char mode with no echo. All IAC options will be removed from + * the buf and the do_telnetopt variable will be used to track the + * state of the width of the IAC information. + * + * IAC commands come in sets of 3 bytes with the exception of the + * "IAC BREAK" command and the double IAC. + */ + + int i; + int j = 0; + + for (i = 0; i < *size; i++) { + if (s->do_telnetopt > 1) { + if ((unsigned char)buf[i] == IAC && s->do_telnetopt == 2) { + /* Double IAC means send an IAC */ + if (j != i) + buf[j] = buf[i]; + j++; + s->do_telnetopt = 1; + } else { + if ((unsigned char)buf[i] == IAC_BREAK && s->do_telnetopt == 2) { + /* Handle IAC break commands by sending a serial break */ + qemu_chr_event(chr, CHR_EVENT_BREAK); + s->do_telnetopt++; + } + s->do_telnetopt++; + } + if (s->do_telnetopt >= 4) { + s->do_telnetopt = 1; + } + } else { + if ((unsigned char)buf[i] == IAC) { + s->do_telnetopt = 2; + } else { + if (j != i) + buf[j] = buf[i]; + j++; + } + } + } + *size = j; +} + +static void tcp_chr_read(void *opaque) +{ + CharDriverState *chr = opaque; + TCPCharDriver *s = chr->opaque; + uint8_t buf[1024]; + int len, size; + + if (!s->connected || s->max_size <= 0) + return; + len = sizeof(buf); + if (len > s->max_size) + len = s->max_size; + size = recv(s->fd, buf, len, 0); + if (size == 0) { + /* connection closed */ + s->connected = 0; + if (s->listen_fd >= 0) { + qemu_set_fd_handler(s->listen_fd, tcp_chr_accept, NULL, chr); + } + qemu_set_fd_handler(s->fd, NULL, NULL, NULL); + closesocket(s->fd); + s->fd = -1; + } else if (size > 0) { + if (s->do_telnetopt) + tcp_chr_process_IAC_bytes(chr, s, buf, &size); + if (size > 0) + qemu_chr_read(chr, buf, size); + } +} + +static void tcp_chr_connect(void *opaque) +{ + CharDriverState *chr = opaque; + TCPCharDriver *s = chr->opaque; + + s->connected = 1; + qemu_set_fd_handler2(s->fd, tcp_chr_read_poll, + tcp_chr_read, NULL, chr); + qemu_chr_reset(chr); +} + +#define IACSET(x,a,b,c) x[0] = a; x[1] = b; x[2] = c; +static void tcp_chr_telnet_init(int fd) +{ + char buf[3]; + /* Send the telnet negotion to put telnet in binary, no echo, single char mode */ + IACSET(buf, 0xff, 0xfb, 0x01); /* IAC WILL ECHO */ + send(fd, (char *)buf, 3, 0); + IACSET(buf, 0xff, 0xfb, 0x03); /* IAC WILL Suppress go ahead */ + send(fd, (char *)buf, 3, 0); + IACSET(buf, 0xff, 0xfb, 0x00); /* IAC WILL Binary */ + send(fd, (char *)buf, 3, 0); + IACSET(buf, 0xff, 0xfd, 0x00); /* IAC DO Binary */ + send(fd, (char *)buf, 3, 0); +} + +static void socket_set_nodelay(int fd) +{ + int val = 1; + setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val)); +} + +static void tcp_chr_accept(void *opaque) +{ + CharDriverState *chr = opaque; + TCPCharDriver *s = chr->opaque; + struct sockaddr_in saddr; +#ifndef _WIN32 + struct sockaddr_un uaddr; +#endif + struct sockaddr *addr; + socklen_t len; + int fd; + + for(;;) { +#ifndef _WIN32 + if (s->is_unix) { + len = sizeof(uaddr); + addr = (struct sockaddr *)&uaddr; + } else +#endif + { + len = sizeof(saddr); + addr = (struct sockaddr *)&saddr; + } + fd = accept(s->listen_fd, addr, &len); + if (fd < 0 && errno != EINTR) { + return; + } else if (fd >= 0) { + if (s->do_telnetopt) + tcp_chr_telnet_init(fd); + break; + } + } + socket_set_nonblock(fd); + if (s->do_nodelay) + socket_set_nodelay(fd); + s->fd = fd; + qemu_set_fd_handler(s->listen_fd, NULL, NULL, NULL); + tcp_chr_connect(chr); +} + +static void tcp_chr_close(CharDriverState *chr) +{ + TCPCharDriver *s = chr->opaque; + if (s->fd >= 0) + closesocket(s->fd); + if (s->listen_fd >= 0) + closesocket(s->listen_fd); + qemu_free(s); +} + +static CharDriverState *qemu_chr_open_tcp(const char *host_str, + int is_telnet, + int is_unix) +{ + CharDriverState *chr = NULL; + TCPCharDriver *s = NULL; + int fd = -1, ret, err, val; + int is_listen = 0; + int is_waitconnect = 1; + int do_nodelay = 0; + const char *ptr; + struct sockaddr_in saddr; +#ifndef _WIN32 + struct sockaddr_un uaddr; +#endif + struct sockaddr *addr; + socklen_t addrlen; + +#ifndef _WIN32 + if (is_unix) { + addr = (struct sockaddr *)&uaddr; + addrlen = sizeof(uaddr); + if (parse_unix_path(&uaddr, host_str) < 0) + goto fail; + } else +#endif + { + addr = (struct sockaddr *)&saddr; + addrlen = sizeof(saddr); + if (parse_host_port(&saddr, host_str) < 0) + goto fail; + } + + ptr = host_str; + while((ptr = strchr(ptr,','))) { + ptr++; + if (!strncmp(ptr,"server",6)) { + is_listen = 1; + } else if (!strncmp(ptr,"nowait",6)) { + is_waitconnect = 0; + } else if (!strncmp(ptr,"nodelay",6)) { + do_nodelay = 1; + } else { + printf("Unknown option: %s\n", ptr); + goto fail; + } + } + if (!is_listen) + is_waitconnect = 0; + + chr = qemu_mallocz(sizeof(CharDriverState)); + if (!chr) + goto fail; + s = qemu_mallocz(sizeof(TCPCharDriver)); + if (!s) + goto fail; + +#ifndef _WIN32 + if (is_unix) + fd = socket(PF_UNIX, SOCK_STREAM, 0); + else +#endif + fd = socket(PF_INET, SOCK_STREAM, 0); + + if (fd < 0) + goto fail; + + if (!is_waitconnect) + socket_set_nonblock(fd); + + s->connected = 0; + s->fd = -1; + s->listen_fd = -1; + s->is_unix = is_unix; + s->do_nodelay = do_nodelay && !is_unix; + + chr->opaque = s; + chr->chr_write = tcp_chr_write; + chr->chr_close = tcp_chr_close; + + if (is_listen) { + /* allow fast reuse */ +#ifndef _WIN32 + if (is_unix) { + char path[109]; + strncpy(path, uaddr.sun_path, 108); + path[108] = 0; + unlink(path); + } else +#endif + { + val = 1; + setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char *)&val, sizeof(val)); + } + + ret = bind(fd, addr, addrlen); + if (ret < 0) + goto fail; + + ret = listen(fd, 0); + if (ret < 0) + goto fail; + + s->listen_fd = fd; + qemu_set_fd_handler(s->listen_fd, tcp_chr_accept, NULL, chr); + if (is_telnet) + s->do_telnetopt = 1; + } else { + for(;;) { + ret = connect(fd, addr, addrlen); + if (ret < 0) { + err = socket_error(); + if (err == EINTR || err == EWOULDBLOCK) { + } else if (err == EINPROGRESS) { + break; +#ifdef _WIN32 + } else if (err == WSAEALREADY) { + break; +#endif + } else { + goto fail; + } + } else { + s->connected = 1; + break; + } + } + s->fd = fd; + socket_set_nodelay(fd); + if (s->connected) + tcp_chr_connect(chr); + else + qemu_set_fd_handler(s->fd, NULL, tcp_chr_connect, chr); + } + + if (is_listen && is_waitconnect) { + printf("QEMU waiting for connection on: %s\n", host_str); + tcp_chr_accept(chr); + socket_set_nonblock(s->listen_fd); + } + + return chr; + fail: + if (fd >= 0) + closesocket(fd); + qemu_free(s); + qemu_free(chr); + return NULL; +} + +CharDriverState *qemu_chr_open(const char *filename) +{ + const char *p; + + if (!strcmp(filename, "vc")) { + return text_console_init(&display_state, 0); + } else if (strstart(filename, "vc:", &p)) { + return text_console_init(&display_state, p); + } else if (!strcmp(filename, "null")) { + return qemu_chr_open_null(); + } else + if (strstart(filename, "tcp:", &p)) { + return qemu_chr_open_tcp(p, 0, 0); + } else + if (strstart(filename, "telnet:", &p)) { + return qemu_chr_open_tcp(p, 1, 0); + } else + if (strstart(filename, "udp:", &p)) { + return qemu_chr_open_udp(p); + } else + if (strstart(filename, "mon:", &p)) { + CharDriverState *drv = qemu_chr_open(p); + if (drv) { + drv = qemu_chr_open_mux(drv); + monitor_init(drv, !nographic); + return drv; + } + printf("Unable to open driver: %s\n", p); + return 0; + } else +#ifndef _WIN32 + if (strstart(filename, "unix:", &p)) { + return qemu_chr_open_tcp(p, 0, 1); + } else if (strstart(filename, "file:", &p)) { + return qemu_chr_open_file_out(p); + } else if (strstart(filename, "pipe:", &p)) { + return qemu_chr_open_pipe(p); + } else if (!strcmp(filename, "pty")) { + return qemu_chr_open_pty(); + } else if (!strcmp(filename, "stdio")) { + return qemu_chr_open_stdio(); + } else +#if defined(__linux__) + if (strstart(filename, "/dev/parport", NULL)) { + return qemu_chr_open_pp(filename); + } else +#endif +#if defined(__linux__) || defined(__sun__) + if (strstart(filename, "/dev/", NULL)) { + return qemu_chr_open_tty(filename); + } else +#endif +#else /* !_WIN32 */ + if (strstart(filename, "COM", NULL)) { + return qemu_chr_open_win(filename); + } else + if (strstart(filename, "pipe:", &p)) { + return qemu_chr_open_win_pipe(p); + } else + if (strstart(filename, "con:", NULL)) { + return qemu_chr_open_win_con(filename); + } else + if (strstart(filename, "file:", &p)) { + return qemu_chr_open_win_file_out(p); + } +#endif + { + return NULL; + } +} + +void qemu_chr_close(CharDriverState *chr) +{ + if (chr->chr_close) + chr->chr_close(chr); +} + +/***********************************************************/ +/* network device redirectors */ + +__attribute__ (( unused )) +static void hex_dump(FILE *f, const uint8_t *buf, int size) +{ + int len, i, j, c; + + for(i=0;i 16) + len = 16; + fprintf(f, "%08x ", i); + for(j=0;j<16;j++) { + if (j < len) + fprintf(f, " %02x", buf[i+j]); + else + fprintf(f, " "); + } + fprintf(f, " "); + for(j=0;j '~') + c = '.'; + fprintf(f, "%c", c); + } + fprintf(f, "\n"); + } +} + +static int parse_macaddr(uint8_t *macaddr, const char *p) +{ + int i; + char *last_char; + long int offset; + + errno = 0; + offset = strtol(p, &last_char, 0); + if (0 == errno && '\0' == *last_char && + offset >= 0 && offset <= 0xFFFFFF) { + macaddr[3] = (offset & 0xFF0000) >> 16; + macaddr[4] = (offset & 0xFF00) >> 8; + macaddr[5] = offset & 0xFF; + return 0; + } else { + for(i = 0; i < 6; i++) { + macaddr[i] = strtol(p, (char **)&p, 16); + if (i == 5) { + if (*p != '\0') + return -1; + } else { + if (*p != ':' && *p != '-') + return -1; + p++; + } + } + return 0; + } + + return -1; +} + +static int get_str_sep(char *buf, int buf_size, const char **pp, int sep) +{ + const char *p, *p1; + int len; + p = *pp; + p1 = strchr(p, sep); + if (!p1) + return -1; + len = p1 - p; + p1++; + if (buf_size > 0) { + if (len > buf_size - 1) + len = buf_size - 1; + memcpy(buf, p, len); + buf[len] = '\0'; + } + *pp = p1; + return 0; +} + +int parse_host_src_port(struct sockaddr_in *haddr, + struct sockaddr_in *saddr, + const char *input_str) +{ + char *str = strdup(input_str); + char *host_str = str; + char *src_str; + char *ptr; + + /* + * Chop off any extra arguments at the end of the string which + * would start with a comma, then fill in the src port information + * if it was provided else use the "any address" and "any port". + */ + if ((ptr = strchr(str,','))) + *ptr = '\0'; + + if ((src_str = strchr(input_str,'@'))) { + *src_str = '\0'; + src_str++; + } + + if (parse_host_port(haddr, host_str) < 0) + goto fail; + + if (!src_str || *src_str == '\0') + src_str = ":0"; + + if (parse_host_port(saddr, src_str) < 0) + goto fail; + + free(str); + return(0); + +fail: + free(str); + return -1; +} + +int parse_host_port(struct sockaddr_in *saddr, const char *str) +{ + char buf[512]; + struct hostent *he; + const char *p, *r; + int port; + + p = str; + if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) + return -1; + saddr->sin_family = AF_INET; + if (buf[0] == '\0') { + saddr->sin_addr.s_addr = 0; + } else { + if (isdigit(buf[0])) { + if (!inet_aton(buf, &saddr->sin_addr)) + return -1; + } else { + if ((he = gethostbyname(buf)) == NULL) + return - 1; + saddr->sin_addr = *(struct in_addr *)he->h_addr; + } + } + port = strtol(p, (char **)&r, 0); + if (r == p) + return -1; + saddr->sin_port = htons(port); + return 0; +} + +#ifndef _WIN32 +static int parse_unix_path(struct sockaddr_un *uaddr, const char *str) +{ + const char *p; + int len; + + len = MIN(108, strlen(str)); + p = strchr(str, ','); + if (p) + len = MIN(len, p - str); + + memset(uaddr, 0, sizeof(*uaddr)); + + uaddr->sun_family = AF_UNIX; + memcpy(uaddr->sun_path, str, len); + + return 0; +} +#endif + +/* find or alloc a new VLAN */ +VLANState *qemu_find_vlan(int id) +{ + VLANState **pvlan, *vlan; + for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { + if (vlan->id == id) + return vlan; + } + vlan = qemu_mallocz(sizeof(VLANState)); + if (!vlan) + return NULL; + vlan->id = id; + vlan->next = NULL; + pvlan = &first_vlan; + while (*pvlan != NULL) + pvlan = &(*pvlan)->next; + *pvlan = vlan; + return vlan; +} + +VLANClientState *qemu_new_vlan_client(VLANState *vlan, + IOReadHandler *fd_read, + IOCanRWHandler *fd_can_read, + void *opaque) +{ + VLANClientState *vc, **pvc; + vc = qemu_mallocz(sizeof(VLANClientState)); + if (!vc) + return NULL; + vc->fd_read = fd_read; + vc->fd_can_read = fd_can_read; + vc->opaque = opaque; + vc->vlan = vlan; + + vc->next = NULL; + pvc = &vlan->first_client; + while (*pvc != NULL) + pvc = &(*pvc)->next; + *pvc = vc; + return vc; +} + +int qemu_can_send_packet(VLANClientState *vc1) +{ + VLANState *vlan = vc1->vlan; + VLANClientState *vc; + + for(vc = vlan->first_client; vc != NULL; vc = vc->next) { + if (vc != vc1) { + if (vc->fd_can_read && vc->fd_can_read(vc->opaque)) + return 1; + } + } + return 0; +} + +void qemu_send_packet(VLANClientState *vc1, const uint8_t *buf, int size) +{ + VLANState *vlan = vc1->vlan; + VLANClientState *vc; + +#if 0 + printf("vlan %d send:\n", vlan->id); + hex_dump(stdout, buf, size); +#endif + for(vc = vlan->first_client; vc != NULL; vc = vc->next) { + if (vc != vc1) { + vc->fd_read(vc->opaque, buf, size); + } + } +} + +#if defined(CONFIG_SLIRP) + +/* slirp network adapter */ + +static int slirp_inited; +static VLANClientState *slirp_vc; + +int slirp_can_output(void) +{ + return !slirp_vc || qemu_can_send_packet(slirp_vc); +} + +void slirp_output(const uint8_t *pkt, int pkt_len) +{ +#if 0 + printf("slirp output:\n"); + hex_dump(stdout, pkt, pkt_len); +#endif + if (!slirp_vc) + return; + qemu_send_packet(slirp_vc, pkt, pkt_len); +} + +static void slirp_receive(void *opaque, const uint8_t *buf, int size) +{ +#if 0 + printf("slirp input:\n"); + hex_dump(stdout, buf, size); +#endif + slirp_input(buf, size); +} + +static int net_slirp_init(VLANState *vlan) +{ + if (!slirp_inited) { + slirp_inited = 1; + slirp_init(); + } + slirp_vc = qemu_new_vlan_client(vlan, + slirp_receive, NULL, NULL); + snprintf(slirp_vc->info_str, sizeof(slirp_vc->info_str), "user redirector"); + return 0; +} + +static void net_slirp_redir(const char *redir_str) +{ + int is_udp; + char buf[256], *r; + const char *p; + struct in_addr guest_addr; + int host_port, guest_port; + + if (!slirp_inited) { + slirp_inited = 1; + slirp_init(); + } + + p = redir_str; + if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) + goto fail; + if (!strcmp(buf, "tcp")) { + is_udp = 0; + } else if (!strcmp(buf, "udp")) { + is_udp = 1; + } else { + goto fail; + } + + if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) + goto fail; + host_port = strtol(buf, &r, 0); + if (r == buf) + goto fail; + + if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) + goto fail; + if (buf[0] == '\0') { + pstrcpy(buf, sizeof(buf), "10.0.2.15"); + } + if (!inet_aton(buf, &guest_addr)) + goto fail; + + guest_port = strtol(p, &r, 0); + if (r == p) + goto fail; + + if (slirp_redir(is_udp, host_port, guest_addr, guest_port) < 0) { + fprintf(stderr, "qemu: could not set up redirection\n"); + exit(1); + } + return; + fail: + fprintf(stderr, "qemu: syntax: -redir [tcp|udp]:host-port:[guest-host]:guest-port\n"); + exit(1); +} + +#ifndef _WIN32 + +char smb_dir[1024]; + +static void smb_exit(void) +{ + DIR *d; + struct dirent *de; + char filename[1024]; + + /* erase all the files in the directory */ + d = opendir(smb_dir); + for(;;) { + de = readdir(d); + if (!de) + break; + if (strcmp(de->d_name, ".") != 0 && + strcmp(de->d_name, "..") != 0) { + snprintf(filename, sizeof(filename), "%s/%s", + smb_dir, de->d_name); + unlink(filename); + } + } + closedir(d); + rmdir(smb_dir); +} + +/* automatic user mode samba server configuration */ +static void net_slirp_smb(const char *exported_dir) +{ + char smb_conf[1024]; + char smb_cmdline[1024]; + FILE *f; + + if (!slirp_inited) { + slirp_inited = 1; + slirp_init(); + } + + /* XXX: better tmp dir construction */ + snprintf(smb_dir, sizeof(smb_dir), "/tmp/qemu-smb.%d", getpid()); + if (mkdir(smb_dir, 0700) < 0) { + fprintf(stderr, "qemu: could not create samba server dir '%s'\n", smb_dir); + exit(1); + } + snprintf(smb_conf, sizeof(smb_conf), "%s/%s", smb_dir, "smb.conf"); + + f = fopen(smb_conf, "w"); + if (!f) { + fprintf(stderr, "qemu: could not create samba server configuration file '%s'\n", smb_conf); + exit(1); + } + fprintf(f, + "[global]\n" + "private dir=%s\n" + "smb ports=0\n" + "socket address=127.0.0.1\n" + "pid directory=%s\n" + "lock directory=%s\n" + "log file=%s/log.smbd\n" + "smb passwd file=%s/smbpasswd\n" + "security = share\n" + "[qemu]\n" + "path=%s\n" + "read only=no\n" + "guest ok=yes\n", + smb_dir, + smb_dir, + smb_dir, + smb_dir, + smb_dir, + exported_dir + ); + fclose(f); + atexit(smb_exit); + + snprintf(smb_cmdline, sizeof(smb_cmdline), "%s -s %s", + SMBD_COMMAND, smb_conf); + + slirp_add_exec(0, smb_cmdline, 4, 139); +} + +#endif /* !defined(_WIN32) */ +void do_info_slirp(void) +{ + slirp_stats(); +} + +#endif /* CONFIG_SLIRP */ + +#if !defined(_WIN32) + +typedef struct TAPState { + VLANClientState *vc; + int fd; + char down_script[1024]; +} TAPState; + +static void tap_receive(void *opaque, const uint8_t *buf, int size) +{ + TAPState *s = opaque; + int ret; + for(;;) { + ret = write(s->fd, buf, size); + if (ret < 0 && (errno == EINTR || errno == EAGAIN)) { + } else { + break; + } + } +} + +static void tap_send(void *opaque) +{ + TAPState *s = opaque; + uint8_t buf[4096]; + int size; + +#ifdef __sun__ + struct strbuf sbuf; + int f = 0; + sbuf.maxlen = sizeof(buf); + sbuf.buf = buf; + size = getmsg(s->fd, NULL, &sbuf, &f) >=0 ? sbuf.len : -1; +#else + size = read(s->fd, buf, sizeof(buf)); +#endif + if (size > 0) { + qemu_send_packet(s->vc, buf, size); + } +} + +/* fd support */ + +static TAPState *net_tap_fd_init(VLANState *vlan, int fd) +{ + TAPState *s; + + s = qemu_mallocz(sizeof(TAPState)); + if (!s) + return NULL; + s->fd = fd; + s->vc = qemu_new_vlan_client(vlan, tap_receive, NULL, s); + qemu_set_fd_handler(s->fd, tap_send, NULL, s); + snprintf(s->vc->info_str, sizeof(s->vc->info_str), "tap: fd=%d", fd); + return s; +} + +#if defined (_BSD) || defined (__FreeBSD_kernel__) +static int tap_open(char *ifname, int ifname_size) +{ + int fd; + char *dev; + struct stat s; + + TFR(fd = open("/dev/tap", O_RDWR)); + if (fd < 0) { + fprintf(stderr, "warning: could not open /dev/tap: no virtual network emulation\n"); + return -1; + } + + fstat(fd, &s); + dev = devname(s.st_rdev, S_IFCHR); + pstrcpy(ifname, ifname_size, dev); + + fcntl(fd, F_SETFL, O_NONBLOCK); + return fd; +} +#elif defined(__sun__) +#define TUNNEWPPA (('T'<<16) | 0x0001) +/* + * Allocate TAP device, returns opened fd. + * Stores dev name in the first arg(must be large enough). + */ +int tap_alloc(char *dev) +{ + int tap_fd, if_fd, ppa = -1; + static int ip_fd = 0; + char *ptr; + + static int arp_fd = 0; + int ip_muxid, arp_muxid; + struct strioctl strioc_if, strioc_ppa; + int link_type = I_PLINK;; + struct lifreq ifr; + char actual_name[32] = ""; + + memset(&ifr, 0x0, sizeof(ifr)); + + if( *dev ){ + ptr = dev; + while( *ptr && !isdigit((int)*ptr) ) ptr++; + ppa = atoi(ptr); + } + + /* Check if IP device was opened */ + if( ip_fd ) + close(ip_fd); + + TFR(ip_fd = open("/dev/udp", O_RDWR, 0)); + if (ip_fd < 0) { + syslog(LOG_ERR, "Can't open /dev/ip (actually /dev/udp)"); + return -1; + } + + TFR(tap_fd = open("/dev/tap", O_RDWR, 0)); + if (tap_fd < 0) { + syslog(LOG_ERR, "Can't open /dev/tap"); + return -1; + } + + /* Assign a new PPA and get its unit number. */ + strioc_ppa.ic_cmd = TUNNEWPPA; + strioc_ppa.ic_timout = 0; + strioc_ppa.ic_len = sizeof(ppa); + strioc_ppa.ic_dp = (char *)&ppa; + if ((ppa = ioctl (tap_fd, I_STR, &strioc_ppa)) < 0) + syslog (LOG_ERR, "Can't assign new interface"); + + TFR(if_fd = open("/dev/tap", O_RDWR, 0)); + if (if_fd < 0) { + syslog(LOG_ERR, "Can't open /dev/tap (2)"); + return -1; + } + if(ioctl(if_fd, I_PUSH, "ip") < 0){ + syslog(LOG_ERR, "Can't push IP module"); + return -1; + } + + if (ioctl(if_fd, SIOCGLIFFLAGS, &ifr) < 0) + syslog(LOG_ERR, "Can't get flags\n"); + + snprintf (actual_name, 32, "tap%d", ppa); + strncpy (ifr.lifr_name, actual_name, sizeof (ifr.lifr_name)); + + ifr.lifr_ppa = ppa; + /* Assign ppa according to the unit number returned by tun device */ + + if (ioctl (if_fd, SIOCSLIFNAME, &ifr) < 0) + syslog (LOG_ERR, "Can't set PPA %d", ppa); + if (ioctl(if_fd, SIOCGLIFFLAGS, &ifr) <0) + syslog (LOG_ERR, "Can't get flags\n"); + /* Push arp module to if_fd */ + if (ioctl (if_fd, I_PUSH, "arp") < 0) + syslog (LOG_ERR, "Can't push ARP module (2)"); + + /* Push arp module to ip_fd */ + if (ioctl (ip_fd, I_POP, NULL) < 0) + syslog (LOG_ERR, "I_POP failed\n"); + if (ioctl (ip_fd, I_PUSH, "arp") < 0) + syslog (LOG_ERR, "Can't push ARP module (3)\n"); + /* Open arp_fd */ + TFR(arp_fd = open ("/dev/tap", O_RDWR, 0)); + if (arp_fd < 0) + syslog (LOG_ERR, "Can't open %s\n", "/dev/tap"); + + /* Set ifname to arp */ + strioc_if.ic_cmd = SIOCSLIFNAME; + strioc_if.ic_timout = 0; + strioc_if.ic_len = sizeof(ifr); + strioc_if.ic_dp = (char *)𝔦 + if (ioctl(arp_fd, I_STR, &strioc_if) < 0){ + syslog (LOG_ERR, "Can't set ifname to arp\n"); + } + + if((ip_muxid = ioctl(ip_fd, I_LINK, if_fd)) < 0){ + syslog(LOG_ERR, "Can't link TAP device to IP"); + return -1; + } + + if ((arp_muxid = ioctl (ip_fd, link_type, arp_fd)) < 0) + syslog (LOG_ERR, "Can't link TAP device to ARP"); + + close (if_fd); + + memset(&ifr, 0x0, sizeof(ifr)); + strncpy (ifr.lifr_name, actual_name, sizeof (ifr.lifr_name)); + ifr.lifr_ip_muxid = ip_muxid; + ifr.lifr_arp_muxid = arp_muxid; + + if (ioctl (ip_fd, SIOCSLIFMUXID, &ifr) < 0) + { + ioctl (ip_fd, I_PUNLINK , arp_muxid); + ioctl (ip_fd, I_PUNLINK, ip_muxid); + syslog (LOG_ERR, "Can't set multiplexor id"); + } + + sprintf(dev, "tap%d", ppa); + return tap_fd; +} + +static int tap_open(char *ifname, int ifname_size) +{ + char dev[10]=""; + int fd; + if( (fd = tap_alloc(dev)) < 0 ){ + fprintf(stderr, "Cannot allocate TAP device\n"); + return -1; + } + pstrcpy(ifname, ifname_size, dev); + fcntl(fd, F_SETFL, O_NONBLOCK); + return fd; +} +#else +static int tap_open(char *ifname, int ifname_size) +{ + struct ifreq ifr; + int fd, ret; + + TFR(fd = open("/dev/net/tun", O_RDWR)); + if (fd < 0) { + fprintf(stderr, "warning: could not open /dev/net/tun: no virtual network emulation\n"); + return -1; + } + memset(&ifr, 0, sizeof(ifr)); + ifr.ifr_flags = IFF_TAP | IFF_NO_PI; + if (ifname[0] != '\0') + pstrcpy(ifr.ifr_name, IFNAMSIZ, ifname); + else + pstrcpy(ifr.ifr_name, IFNAMSIZ, "tap%d"); + ret = ioctl(fd, TUNSETIFF, (void *) &ifr); + if (ret != 0) { + fprintf(stderr, "warning: could not configure /dev/net/tun: no virtual network emulation\n"); + close(fd); + return -1; + } + pstrcpy(ifname, ifname_size, ifr.ifr_name); + fcntl(fd, F_SETFL, O_NONBLOCK); + return fd; +} +#endif + +static int launch_script(const char *setup_script, const char *ifname, int fd) +{ + int pid, status; + char *args[3]; + char **parg; + + /* try to launch network script */ + pid = fork(); + if (pid >= 0) { + if (pid == 0) { + int open_max = sysconf (_SC_OPEN_MAX), i; + for (i = 0; i < open_max; i++) + if (i != STDIN_FILENO && + i != STDOUT_FILENO && + i != STDERR_FILENO && + i != fd) + close(i); + + parg = args; + *parg++ = (char *)setup_script; + *parg++ = (char *)ifname; + *parg++ = NULL; + execv(setup_script, args); + _exit(1); + } + while (waitpid(pid, &status, 0) != pid); + if (!WIFEXITED(status) || + WEXITSTATUS(status) != 0) { + fprintf(stderr, "%s: could not launch network script\n", + setup_script); + return -1; + } + } + return 0; +} + +static int net_tap_init(VLANState *vlan, const char *ifname1, + const char *setup_script, const char *down_script) +{ + TAPState *s; + int fd; + char ifname[128]; + + if (ifname1 != NULL) + pstrcpy(ifname, sizeof(ifname), ifname1); + else + ifname[0] = '\0'; + TFR(fd = tap_open(ifname, sizeof(ifname))); + if (fd < 0) + return -1; + + if (!setup_script || !strcmp(setup_script, "no")) + setup_script = ""; + if (setup_script[0] != '\0') { + if (launch_script(setup_script, ifname, fd)) + return -1; + } + s = net_tap_fd_init(vlan, fd); + if (!s) + return -1; + snprintf(s->vc->info_str, sizeof(s->vc->info_str), + "tap: ifname=%s setup_script=%s", ifname, setup_script); + if (down_script && strcmp(down_script, "no")) + snprintf(s->down_script, sizeof(s->down_script), "%s", down_script); + return 0; +} + +#endif /* !_WIN32 */ + +/* network connection */ +typedef struct NetSocketState { + VLANClientState *vc; + int fd; + int state; /* 0 = getting length, 1 = getting data */ + int index; + int packet_len; + uint8_t buf[4096]; + struct sockaddr_in dgram_dst; /* contains inet host and port destination iff connectionless (SOCK_DGRAM) */ +} NetSocketState; + +typedef struct NetSocketListenState { + VLANState *vlan; + int fd; +} NetSocketListenState; + +/* XXX: we consider we can send the whole packet without blocking */ +static void net_socket_receive(void *opaque, const uint8_t *buf, int size) +{ + NetSocketState *s = opaque; + uint32_t len; + len = htonl(size); + + send_all(s->fd, (const uint8_t *)&len, sizeof(len)); + send_all(s->fd, buf, size); +} + +static void net_socket_receive_dgram(void *opaque, const uint8_t *buf, int size) +{ + NetSocketState *s = opaque; + sendto(s->fd, buf, size, 0, + (struct sockaddr *)&s->dgram_dst, sizeof(s->dgram_dst)); +} + +static void net_socket_send(void *opaque) +{ + NetSocketState *s = opaque; + int l, size, err; + uint8_t buf1[4096]; + const uint8_t *buf; + + size = recv(s->fd, buf1, sizeof(buf1), 0); + if (size < 0) { + err = socket_error(); + if (err != EWOULDBLOCK) + goto eoc; + } else if (size == 0) { + /* end of connection */ + eoc: + qemu_set_fd_handler(s->fd, NULL, NULL, NULL); + closesocket(s->fd); + return; + } + buf = buf1; + while (size > 0) { + /* reassemble a packet from the network */ + switch(s->state) { + case 0: + l = 4 - s->index; + if (l > size) + l = size; + memcpy(s->buf + s->index, buf, l); + buf += l; + size -= l; + s->index += l; + if (s->index == 4) { + /* got length */ + s->packet_len = ntohl(*(uint32_t *)s->buf); + s->index = 0; + s->state = 1; + } + break; + case 1: + l = s->packet_len - s->index; + if (l > size) + l = size; + memcpy(s->buf + s->index, buf, l); + s->index += l; + buf += l; + size -= l; + if (s->index >= s->packet_len) { + qemu_send_packet(s->vc, s->buf, s->packet_len); + s->index = 0; + s->state = 0; + } + break; + } + } +} + +static void net_socket_send_dgram(void *opaque) +{ + NetSocketState *s = opaque; + int size; + + size = recv(s->fd, s->buf, sizeof(s->buf), 0); + if (size < 0) + return; + if (size == 0) { + /* end of connection */ + qemu_set_fd_handler(s->fd, NULL, NULL, NULL); + return; + } + qemu_send_packet(s->vc, s->buf, size); +} + +static int net_socket_mcast_create(struct sockaddr_in *mcastaddr) +{ + struct ip_mreq imr; + int fd; + int val, ret; + if (!IN_MULTICAST(ntohl(mcastaddr->sin_addr.s_addr))) { + fprintf(stderr, "qemu: error: specified mcastaddr \"%s\" (0x%08x) does not contain a multicast address\n", + inet_ntoa(mcastaddr->sin_addr), + (int)ntohl(mcastaddr->sin_addr.s_addr)); + return -1; + + } + fd = socket(PF_INET, SOCK_DGRAM, 0); + if (fd < 0) { + perror("socket(PF_INET, SOCK_DGRAM)"); + return -1; + } + + val = 1; + ret=setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, + (const char *)&val, sizeof(val)); + if (ret < 0) { + perror("setsockopt(SOL_SOCKET, SO_REUSEADDR)"); + goto fail; + } + + ret = bind(fd, (struct sockaddr *)mcastaddr, sizeof(*mcastaddr)); + if (ret < 0) { + perror("bind"); + goto fail; + } + + /* Add host to multicast group */ + imr.imr_multiaddr = mcastaddr->sin_addr; + imr.imr_interface.s_addr = htonl(INADDR_ANY); + + ret = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, + (const char *)&imr, sizeof(struct ip_mreq)); + if (ret < 0) { + perror("setsockopt(IP_ADD_MEMBERSHIP)"); + goto fail; + } + + /* Force mcast msgs to loopback (eg. several QEMUs in same host */ + val = 1; + ret=setsockopt(fd, IPPROTO_IP, IP_MULTICAST_LOOP, + (const char *)&val, sizeof(val)); + if (ret < 0) { + perror("setsockopt(SOL_IP, IP_MULTICAST_LOOP)"); + goto fail; + } + + socket_set_nonblock(fd); + return fd; +fail: + if (fd >= 0) + closesocket(fd); + return -1; +} + +static NetSocketState *net_socket_fd_init_dgram(VLANState *vlan, int fd, + int is_connected) +{ + struct sockaddr_in saddr; + int newfd; + socklen_t saddr_len; + NetSocketState *s; + + /* fd passed: multicast: "learn" dgram_dst address from bound address and save it + * Because this may be "shared" socket from a "master" process, datagrams would be recv() + * by ONLY ONE process: we must "clone" this dgram socket --jjo + */ + + if (is_connected) { + if (getsockname(fd, (struct sockaddr *) &saddr, &saddr_len) == 0) { + /* must be bound */ + if (saddr.sin_addr.s_addr==0) { + fprintf(stderr, "qemu: error: init_dgram: fd=%d unbound, cannot setup multicast dst addr\n", + fd); + return NULL; + } + /* clone dgram socket */ + newfd = net_socket_mcast_create(&saddr); + if (newfd < 0) { + /* error already reported by net_socket_mcast_create() */ + close(fd); + return NULL; + } + /* clone newfd to fd, close newfd */ + dup2(newfd, fd); + close(newfd); + + } else { + fprintf(stderr, "qemu: error: init_dgram: fd=%d failed getsockname(): %s\n", + fd, strerror(errno)); + return NULL; + } + } + + s = qemu_mallocz(sizeof(NetSocketState)); + if (!s) + return NULL; + s->fd = fd; + + s->vc = qemu_new_vlan_client(vlan, net_socket_receive_dgram, NULL, s); + qemu_set_fd_handler(s->fd, net_socket_send_dgram, NULL, s); + + /* mcast: save bound address as dst */ + if (is_connected) s->dgram_dst=saddr; + + snprintf(s->vc->info_str, sizeof(s->vc->info_str), + "socket: fd=%d (%s mcast=%s:%d)", + fd, is_connected? "cloned" : "", + inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + return s; +} + +static void net_socket_connect(void *opaque) +{ + NetSocketState *s = opaque; + qemu_set_fd_handler(s->fd, net_socket_send, NULL, s); +} + +static NetSocketState *net_socket_fd_init_stream(VLANState *vlan, int fd, + int is_connected) +{ + NetSocketState *s; + s = qemu_mallocz(sizeof(NetSocketState)); + if (!s) + return NULL; + s->fd = fd; + s->vc = qemu_new_vlan_client(vlan, + net_socket_receive, NULL, s); + snprintf(s->vc->info_str, sizeof(s->vc->info_str), + "socket: fd=%d", fd); + if (is_connected) { + net_socket_connect(s); + } else { + qemu_set_fd_handler(s->fd, NULL, net_socket_connect, s); + } + return s; +} + +static NetSocketState *net_socket_fd_init(VLANState *vlan, int fd, + int is_connected) +{ + int so_type=-1, optlen=sizeof(so_type); + + if(getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&so_type, + (socklen_t *)&optlen)< 0) { + fprintf(stderr, "qemu: error: getsockopt(SO_TYPE) for fd=%d failed\n", fd); + return NULL; + } + switch(so_type) { + case SOCK_DGRAM: + return net_socket_fd_init_dgram(vlan, fd, is_connected); + case SOCK_STREAM: + return net_socket_fd_init_stream(vlan, fd, is_connected); + default: + /* who knows ... this could be a eg. a pty, do warn and continue as stream */ + fprintf(stderr, "qemu: warning: socket type=%d for fd=%d is not SOCK_DGRAM or SOCK_STREAM\n", so_type, fd); + return net_socket_fd_init_stream(vlan, fd, is_connected); + } + return NULL; +} + +static void net_socket_accept(void *opaque) +{ + NetSocketListenState *s = opaque; + NetSocketState *s1; + struct sockaddr_in saddr; + socklen_t len; + int fd; + + for(;;) { + len = sizeof(saddr); + fd = accept(s->fd, (struct sockaddr *)&saddr, &len); + if (fd < 0 && errno != EINTR) { + return; + } else if (fd >= 0) { + break; + } + } + s1 = net_socket_fd_init(s->vlan, fd, 1); + if (!s1) { + closesocket(fd); + } else { + snprintf(s1->vc->info_str, sizeof(s1->vc->info_str), + "socket: connection from %s:%d", + inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + } +} + +static int net_socket_listen_init(VLANState *vlan, const char *host_str) +{ + NetSocketListenState *s; + int fd, val, ret; + struct sockaddr_in saddr; + + if (parse_host_port(&saddr, host_str) < 0) + return -1; + + s = qemu_mallocz(sizeof(NetSocketListenState)); + if (!s) + return -1; + + fd = socket(PF_INET, SOCK_STREAM, 0); + if (fd < 0) { + perror("socket"); + return -1; + } + socket_set_nonblock(fd); + + /* allow fast reuse */ + val = 1; + setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char *)&val, sizeof(val)); + + ret = bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)); + if (ret < 0) { + perror("bind"); + return -1; + } + ret = listen(fd, 0); + if (ret < 0) { + perror("listen"); + return -1; + } + s->vlan = vlan; + s->fd = fd; + qemu_set_fd_handler(fd, net_socket_accept, NULL, s); + return 0; +} + +static int net_socket_connect_init(VLANState *vlan, const char *host_str) +{ + NetSocketState *s; + int fd, connected, ret, err; + struct sockaddr_in saddr; + + if (parse_host_port(&saddr, host_str) < 0) + return -1; + + fd = socket(PF_INET, SOCK_STREAM, 0); + if (fd < 0) { + perror("socket"); + return -1; + } + socket_set_nonblock(fd); + + connected = 0; + for(;;) { + ret = connect(fd, (struct sockaddr *)&saddr, sizeof(saddr)); + if (ret < 0) { + err = socket_error(); + if (err == EINTR || err == EWOULDBLOCK) { + } else if (err == EINPROGRESS) { + break; +#ifdef _WIN32 + } else if (err == WSAEALREADY) { + break; +#endif + } else { + perror("connect"); + closesocket(fd); + return -1; + } + } else { + connected = 1; + break; + } + } + s = net_socket_fd_init(vlan, fd, connected); + if (!s) + return -1; + snprintf(s->vc->info_str, sizeof(s->vc->info_str), + "socket: connect to %s:%d", + inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + return 0; +} + +static int net_socket_mcast_init(VLANState *vlan, const char *host_str) +{ + NetSocketState *s; + int fd; + struct sockaddr_in saddr; + + if (parse_host_port(&saddr, host_str) < 0) + return -1; + + + fd = net_socket_mcast_create(&saddr); + if (fd < 0) + return -1; + + s = net_socket_fd_init(vlan, fd, 0); + if (!s) + return -1; + + s->dgram_dst = saddr; + + snprintf(s->vc->info_str, sizeof(s->vc->info_str), + "socket: mcast=%s:%d", + inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + return 0; + +} + +static const char *get_word(char *buf, int buf_size, const char *p) +{ + char *q; + int substring; + + substring = 0; + q = buf; + while (*p != '\0') { + if (*p == '\\') { + p++; + if (*p == '\0') + break; + } else if (*p == '\"') { + substring = !substring; + p++; + continue; + } else if (!substring && (*p == ',' || *p == '=')) + break; + if (q && (q - buf) < buf_size - 1) + *q++ = *p; + p++; + } + if (q) + *q = '\0'; + + return p; +} + +static int get_param_value(char *buf, int buf_size, + const char *tag, const char *str) +{ + const char *p; + char option[128]; + + p = str; + for(;;) { + p = get_word(option, sizeof(option), p); + if (*p != '=') + break; + p++; + if (!strcmp(tag, option)) { + (void)get_word(buf, buf_size, p); + return strlen(buf); + } else { + p = get_word(NULL, 0, p); + } + if (*p != ',') + break; + p++; + } + return 0; +} + +static int check_params(char *buf, int buf_size, + char **params, const char *str) +{ + const char *p; + int i; + + p = str; + for(;;) { + p = get_word(buf, buf_size, p); + if (*p != '=') + return -1; + p++; + for(i = 0; params[i] != NULL; i++) + if (!strcmp(params[i], buf)) + break; + if (params[i] == NULL) + return -1; + p = get_word(NULL, 0, p); + if (*p != ',') + break; + p++; + } + return 0; +} + + +static int net_client_init(const char *str) +{ + const char *p; + char *q; + char device[64]; + char buf[1024]; + int vlan_id, ret; + VLANState *vlan; + + p = str; + q = device; + while (*p != '\0' && *p != ',') { + if ((q - device) < sizeof(device) - 1) + *q++ = *p; + p++; + } + *q = '\0'; + if (*p == ',') + p++; + vlan_id = 0; + if (get_param_value(buf, sizeof(buf), "vlan", p)) { + vlan_id = strtol(buf, NULL, 0); + } + vlan = qemu_find_vlan(vlan_id); + if (!vlan) { + fprintf(stderr, "Could not create vlan %d\n", vlan_id); + return -1; + } + if (!strcmp(device, "nic")) { + NICInfo *nd; + uint8_t *macaddr; + + if (nb_nics >= MAX_NICS) { + fprintf(stderr, "Too Many NICs\n"); + return -1; + } + nd = &nd_table[nb_nics]; + macaddr = nd->macaddr; + macaddr[0] = 0x52; + macaddr[1] = 0x54; + macaddr[2] = 0x00; + macaddr[3] = 0x12; + macaddr[4] = 0x34; + macaddr[5] = 0x56 + nb_nics; + + if (get_param_value(buf, sizeof(buf), "macaddr", p)) { + if (parse_macaddr(macaddr, buf) < 0) { + fprintf(stderr, "invalid syntax for ethernet address\n"); + return -1; + } + } + if (get_param_value(buf, sizeof(buf), "model", p)) { + nd->model = strdup(buf); + } + nd->vlan = vlan; + nb_nics++; + vlan->nb_guest_devs++; + ret = 0; + } else + if (!strcmp(device, "none")) { + /* does nothing. It is needed to signal that no network cards + are wanted */ + ret = 0; + } else +#ifdef CONFIG_SLIRP + if (!strcmp(device, "user")) { + if (get_param_value(buf, sizeof(buf), "hostname", p)) { + pstrcpy(slirp_hostname, sizeof(slirp_hostname), buf); + } + vlan->nb_host_devs++; + ret = net_slirp_init(vlan); + } else +#endif +#ifdef _WIN32 + if (!strcmp(device, "tap")) { + char ifname[64]; + if (get_param_value(ifname, sizeof(ifname), "ifname", p) <= 0) { + fprintf(stderr, "tap: no interface name\n"); + return -1; + } + vlan->nb_host_devs++; + ret = tap_win32_init(vlan, ifname); + } else +#else + if (!strcmp(device, "tap")) { + char ifname[64]; + char setup_script[1024], down_script[1024]; + int fd; + vlan->nb_host_devs++; + if (get_param_value(buf, sizeof(buf), "fd", p) > 0) { + fd = strtol(buf, NULL, 0); + ret = -1; + if (net_tap_fd_init(vlan, fd)) + ret = 0; + } else { + if (get_param_value(ifname, sizeof(ifname), "ifname", p) <= 0) { + ifname[0] = '\0'; + } + if (get_param_value(setup_script, sizeof(setup_script), "script", p) == 0) { + pstrcpy(setup_script, sizeof(setup_script), DEFAULT_NETWORK_SCRIPT); + } + if (get_param_value(down_script, sizeof(down_script), "downscript", p) == 0) { + pstrcpy(down_script, sizeof(down_script), DEFAULT_NETWORK_DOWN_SCRIPT); + } + ret = net_tap_init(vlan, ifname, setup_script, down_script); + } + } else +#endif + if (!strcmp(device, "socket")) { + if (get_param_value(buf, sizeof(buf), "fd", p) > 0) { + int fd; + fd = strtol(buf, NULL, 0); + ret = -1; + if (net_socket_fd_init(vlan, fd, 1)) + ret = 0; + } else if (get_param_value(buf, sizeof(buf), "listen", p) > 0) { + ret = net_socket_listen_init(vlan, buf); + } else if (get_param_value(buf, sizeof(buf), "connect", p) > 0) { + ret = net_socket_connect_init(vlan, buf); + } else if (get_param_value(buf, sizeof(buf), "mcast", p) > 0) { + ret = net_socket_mcast_init(vlan, buf); + } else { + fprintf(stderr, "Unknown socket options: %s\n", p); + return -1; + } + vlan->nb_host_devs++; + } else + { + fprintf(stderr, "Unknown network device: %s\n", device); + return -1; + } + if (ret < 0) { + fprintf(stderr, "Could not initialize device '%s'\n", device); + } + + return ret; +} + +void do_info_network(void) +{ + VLANState *vlan; + VLANClientState *vc; + + for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { + term_printf("VLAN %d devices:\n", vlan->id); + for(vc = vlan->first_client; vc != NULL; vc = vc->next) + term_printf(" %s\n", vc->info_str); + } +} + +#define HD_ALIAS "file=\"%s\",index=%d,media=disk" +#ifdef TARGET_PPC +#define CDROM_ALIAS "index=1,media=cdrom" +#else +#define CDROM_ALIAS "index=2,media=cdrom" +#endif +#define FD_ALIAS "index=%d,if=floppy" +#define PFLASH_ALIAS "file=\"%s\",if=pflash" +#define MTD_ALIAS "file=\"%s\",if=mtd" +#define SD_ALIAS "index=0,if=sd" + +static int drive_add(const char *fmt, ...) +{ + va_list ap; + + if (nb_drives_opt >= MAX_DRIVES) { + fprintf(stderr, "qemu: too many drives\n"); + exit(1); + } + + va_start(ap, fmt); + vsnprintf(drives_opt[nb_drives_opt], sizeof(drives_opt[0]), fmt, ap); + va_end(ap); + + return nb_drives_opt++; +} + +int drive_get_index(BlockInterfaceType type, int bus, int unit) +{ + int index; + + /* seek interface, bus and unit */ + + for (index = 0; index < nb_drives; index++) + if (drives_table[index].type == type && + drives_table[index].bus == bus && + drives_table[index].unit == unit) + return index; + + return -1; +} + +int drive_get_max_bus(BlockInterfaceType type) +{ + int max_bus; + int index; + + max_bus = -1; + for (index = 0; index < nb_drives; index++) { + if(drives_table[index].type == type && + drives_table[index].bus > max_bus) + max_bus = drives_table[index].bus; + } + return max_bus; +} + +static int drive_init(const char *str, int snapshot, QEMUMachine *machine) +{ + char buf[128]; + char file[1024]; + char devname[128]; + const char *mediastr = ""; + BlockInterfaceType type; + enum { MEDIA_DISK, MEDIA_CDROM } media; + int bus_id, unit_id; + int cyls, heads, secs, translation; + BlockDriverState *bdrv; + int max_devs; + int index; + int cache; + int bdrv_flags; + char *params[] = { "bus", "unit", "if", "index", "cyls", "heads", + "secs", "trans", "media", "snapshot", "file", + "cache", NULL }; + + if (check_params(buf, sizeof(buf), params, str) < 0) { + fprintf(stderr, "qemu: unknowm parameter '%s' in '%s'\n", + buf, str); + return -1; + } + + file[0] = 0; + cyls = heads = secs = 0; + bus_id = 0; + unit_id = -1; + translation = BIOS_ATA_TRANSLATION_AUTO; + index = -1; + cache = 1; + + if (!strcmp(machine->name, "realview") || + !strcmp(machine->name, "SS-5") || + !strcmp(machine->name, "SS-10") || + !strcmp(machine->name, "SS-600MP") || + !strcmp(machine->name, "versatilepb") || + !strcmp(machine->name, "versatileab")) { + type = IF_SCSI; + max_devs = MAX_SCSI_DEVS; + strcpy(devname, "scsi"); + } else { + type = IF_IDE; + max_devs = MAX_IDE_DEVS; + strcpy(devname, "ide"); + } + media = MEDIA_DISK; + + /* extract parameters */ + + if (get_param_value(buf, sizeof(buf), "bus", str)) { + bus_id = strtol(buf, NULL, 0); + if (bus_id < 0) { + fprintf(stderr, "qemu: '%s' invalid bus id\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "unit", str)) { + unit_id = strtol(buf, NULL, 0); + if (unit_id < 0) { + fprintf(stderr, "qemu: '%s' invalid unit id\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "if", str)) { + strncpy(devname, buf, sizeof(devname)); + if (!strcmp(buf, "ide")) { + type = IF_IDE; + max_devs = MAX_IDE_DEVS; + } else if (!strcmp(buf, "scsi")) { + type = IF_SCSI; + max_devs = MAX_SCSI_DEVS; + } else if (!strcmp(buf, "floppy")) { + type = IF_FLOPPY; + max_devs = 0; + } else if (!strcmp(buf, "pflash")) { + type = IF_PFLASH; + max_devs = 0; + } else if (!strcmp(buf, "mtd")) { + type = IF_MTD; + max_devs = 0; + } else if (!strcmp(buf, "sd")) { + type = IF_SD; + max_devs = 0; + } else { + fprintf(stderr, "qemu: '%s' unsupported bus type '%s'\n", str, buf); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "index", str)) { + index = strtol(buf, NULL, 0); + if (index < 0) { + fprintf(stderr, "qemu: '%s' invalid index\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "cyls", str)) { + cyls = strtol(buf, NULL, 0); + } + + if (get_param_value(buf, sizeof(buf), "heads", str)) { + heads = strtol(buf, NULL, 0); + } + + if (get_param_value(buf, sizeof(buf), "secs", str)) { + secs = strtol(buf, NULL, 0); + } + + if (cyls || heads || secs) { + if (cyls < 1 || cyls > 16383) { + fprintf(stderr, "qemu: '%s' invalid physical cyls number\n", str); + return -1; + } + if (heads < 1 || heads > 16) { + fprintf(stderr, "qemu: '%s' invalid physical heads number\n", str); + return -1; + } + if (secs < 1 || secs > 63) { + fprintf(stderr, "qemu: '%s' invalid physical secs number\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "trans", str)) { + if (!cyls) { + fprintf(stderr, + "qemu: '%s' trans must be used with cyls,heads and secs\n", + str); + return -1; + } + if (!strcmp(buf, "none")) + translation = BIOS_ATA_TRANSLATION_NONE; + else if (!strcmp(buf, "lba")) + translation = BIOS_ATA_TRANSLATION_LBA; + else if (!strcmp(buf, "auto")) + translation = BIOS_ATA_TRANSLATION_AUTO; + else { + fprintf(stderr, "qemu: '%s' invalid translation type\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "media", str)) { + if (!strcmp(buf, "disk")) { + media = MEDIA_DISK; + } else if (!strcmp(buf, "cdrom")) { + if (cyls || secs || heads) { + fprintf(stderr, + "qemu: '%s' invalid physical CHS format\n", str); + return -1; + } + media = MEDIA_CDROM; + } else { + fprintf(stderr, "qemu: '%s' invalid media\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "snapshot", str)) { + if (!strcmp(buf, "on")) + snapshot = 1; + else if (!strcmp(buf, "off")) + snapshot = 0; + else { + fprintf(stderr, "qemu: '%s' invalid snapshot option\n", str); + return -1; + } + } + + if (get_param_value(buf, sizeof(buf), "cache", str)) { + if (!strcmp(buf, "off")) + cache = 0; + else if (!strcmp(buf, "on")) + cache = 1; + else { + fprintf(stderr, "qemu: invalid cache option\n"); + return -1; + } + } + + get_param_value(file, sizeof(file), "file", str); + + /* compute bus and unit according index */ + + if (index != -1) { + if (bus_id != 0 || unit_id != -1) { + fprintf(stderr, + "qemu: '%s' index cannot be used with bus and unit\n", str); + return -1; + } + if (max_devs == 0) + { + unit_id = index; + bus_id = 0; + } else { + unit_id = index % max_devs; + bus_id = index / max_devs; + } + } + + /* if user doesn't specify a unit_id, + * try to find the first free + */ + + if (unit_id == -1) { + unit_id = 0; + while (drive_get_index(type, bus_id, unit_id) != -1) { + unit_id++; + if (max_devs && unit_id >= max_devs) { + unit_id -= max_devs; + bus_id++; + } + } + } + + /* check unit id */ + + if (max_devs && unit_id >= max_devs) { + fprintf(stderr, "qemu: '%s' unit %d too big (max is %d)\n", + str, unit_id, max_devs - 1); + return -1; + } + + /* + * ignore multiple definitions + */ + + if (drive_get_index(type, bus_id, unit_id) != -1) + return 0; + + /* init */ + + if (type == IF_IDE || type == IF_SCSI) + mediastr = (media == MEDIA_CDROM) ? "-cd" : "-hd"; + if (max_devs) + snprintf(buf, sizeof(buf), "%s%i%s%i", + devname, bus_id, mediastr, unit_id); + else + snprintf(buf, sizeof(buf), "%s%s%i", + devname, mediastr, unit_id); + bdrv = bdrv_new(buf); + drives_table[nb_drives].bdrv = bdrv; + drives_table[nb_drives].type = type; + drives_table[nb_drives].bus = bus_id; + drives_table[nb_drives].unit = unit_id; + nb_drives++; + + switch(type) { + case IF_IDE: + case IF_SCSI: + switch(media) { + case MEDIA_DISK: + if (cyls != 0) { + bdrv_set_geometry_hint(bdrv, cyls, heads, secs); + bdrv_set_translation_hint(bdrv, translation); + } + break; + case MEDIA_CDROM: + bdrv_set_type_hint(bdrv, BDRV_TYPE_CDROM); + break; + } + break; + case IF_SD: + /* FIXME: This isn't really a floppy, but it's a reasonable + approximation. */ + case IF_FLOPPY: + bdrv_set_type_hint(bdrv, BDRV_TYPE_FLOPPY); + break; + case IF_PFLASH: + case IF_MTD: + break; + } + if (!file[0]) + return 0; + bdrv_flags = 0; + if (snapshot) + bdrv_flags |= BDRV_O_SNAPSHOT; + if (!cache) + bdrv_flags |= BDRV_O_DIRECT; + if (bdrv_open(bdrv, file, bdrv_flags) < 0 || qemu_key_check(bdrv, file)) { + fprintf(stderr, "qemu: could not open disk image %s\n", + file); + return -1; + } + return 0; +} + +/***********************************************************/ +/* USB devices */ + +static USBPort *used_usb_ports; +static USBPort *free_usb_ports; + +/* ??? Maybe change this to register a hub to keep track of the topology. */ +void qemu_register_usb_port(USBPort *port, void *opaque, int index, + usb_attachfn attach) +{ + port->opaque = opaque; + port->index = index; + port->attach = attach; + port->next = free_usb_ports; + free_usb_ports = port; +} + +static int usb_device_add(const char *devname) +{ + const char *p; + USBDevice *dev; + USBPort *port; + + if (!free_usb_ports) + return -1; + + if (strstart(devname, "host:", &p)) { + dev = usb_host_device_open(p); + } else if (!strcmp(devname, "mouse")) { + dev = usb_mouse_init(); + } else if (!strcmp(devname, "tablet")) { + dev = usb_tablet_init(); + } else if (!strcmp(devname, "keyboard")) { + dev = usb_keyboard_init(); + } else if (strstart(devname, "disk:", &p)) { + dev = usb_msd_init(p); + } else if (!strcmp(devname, "wacom-tablet")) { + dev = usb_wacom_init(); + } else { + return -1; + } + if (!dev) + return -1; + + /* Find a USB port to add the device to. */ + port = free_usb_ports; + if (!port->next) { + USBDevice *hub; + + /* Create a new hub and chain it on. */ + free_usb_ports = NULL; + port->next = used_usb_ports; + used_usb_ports = port; + + hub = usb_hub_init(VM_USB_HUB_SIZE); + usb_attach(port, hub); + port = free_usb_ports; + } + + free_usb_ports = port->next; + port->next = used_usb_ports; + used_usb_ports = port; + usb_attach(port, dev); + return 0; +} + +static int usb_device_del(const char *devname) +{ + USBPort *port; + USBPort **lastp; + USBDevice *dev; + int bus_num, addr; + const char *p; + + if (!used_usb_ports) + return -1; + + p = strchr(devname, '.'); + if (!p) + return -1; + bus_num = strtoul(devname, NULL, 0); + addr = strtoul(p + 1, NULL, 0); + if (bus_num != 0) + return -1; + + lastp = &used_usb_ports; + port = used_usb_ports; + while (port && port->dev->addr != addr) { + lastp = &port->next; + port = port->next; + } + + if (!port) + return -1; + + dev = port->dev; + *lastp = port->next; + usb_attach(port, NULL); + dev->handle_destroy(dev); + port->next = free_usb_ports; + free_usb_ports = port; + return 0; +} + +void do_usb_add(const char *devname) +{ + int ret; + ret = usb_device_add(devname); + if (ret < 0) + term_printf("Could not add USB device '%s'\n", devname); +} + +void do_usb_del(const char *devname) +{ + int ret; + ret = usb_device_del(devname); + if (ret < 0) + term_printf("Could not remove USB device '%s'\n", devname); +} + +void usb_info(void) +{ + USBDevice *dev; + USBPort *port; + const char *speed_str; + + if (!usb_enabled) { + term_printf("USB support not enabled\n"); + return; + } + + for (port = used_usb_ports; port; port = port->next) { + dev = port->dev; + if (!dev) + continue; + switch(dev->speed) { + case USB_SPEED_LOW: + speed_str = "1.5"; + break; + case USB_SPEED_FULL: + speed_str = "12"; + break; + case USB_SPEED_HIGH: + speed_str = "480"; + break; + default: + speed_str = "?"; + break; + } + term_printf(" Device %d.%d, Speed %s Mb/s, Product %s\n", + 0, dev->addr, speed_str, dev->devname); + } +} + +/***********************************************************/ +/* PCMCIA/Cardbus */ + +static struct pcmcia_socket_entry_s { + struct pcmcia_socket_s *socket; + struct pcmcia_socket_entry_s *next; +} *pcmcia_sockets = 0; + +void pcmcia_socket_register(struct pcmcia_socket_s *socket) +{ + struct pcmcia_socket_entry_s *entry; + + entry = qemu_malloc(sizeof(struct pcmcia_socket_entry_s)); + entry->socket = socket; + entry->next = pcmcia_sockets; + pcmcia_sockets = entry; +} + +void pcmcia_socket_unregister(struct pcmcia_socket_s *socket) +{ + struct pcmcia_socket_entry_s *entry, **ptr; + + ptr = &pcmcia_sockets; + for (entry = *ptr; entry; ptr = &entry->next, entry = *ptr) + if (entry->socket == socket) { + *ptr = entry->next; + qemu_free(entry); + } +} + +void pcmcia_info(void) +{ + struct pcmcia_socket_entry_s *iter; + if (!pcmcia_sockets) + term_printf("No PCMCIA sockets\n"); + + for (iter = pcmcia_sockets; iter; iter = iter->next) + term_printf("%s: %s\n", iter->socket->slot_string, + iter->socket->attached ? iter->socket->card_string : + "Empty"); +} + +/***********************************************************/ +/* dumb display */ + +static void dumb_update(DisplayState *ds, int x, int y, int w, int h) +{ +} + +static void dumb_resize(DisplayState *ds, int w, int h) +{ +} + +static void dumb_refresh(DisplayState *ds) +{ +#if defined(CONFIG_SDL) + vga_hw_update(); +#endif +} + +static void dumb_display_init(DisplayState *ds) +{ + ds->data = NULL; + ds->linesize = 0; + ds->depth = 0; + ds->dpy_update = dumb_update; + ds->dpy_resize = dumb_resize; + ds->dpy_refresh = dumb_refresh; +} + +/***********************************************************/ +/* I/O handling */ + +#define MAX_IO_HANDLERS 64 + +typedef struct IOHandlerRecord { + int fd; + IOCanRWHandler *fd_read_poll; + IOHandler *fd_read; + IOHandler *fd_write; + int deleted; + void *opaque; + /* temporary data */ + struct pollfd *ufd; + struct IOHandlerRecord *next; +} IOHandlerRecord; + +static IOHandlerRecord *first_io_handler; + +/* XXX: fd_read_poll should be suppressed, but an API change is + necessary in the character devices to suppress fd_can_read(). */ +int qemu_set_fd_handler2(int fd, + IOCanRWHandler *fd_read_poll, + IOHandler *fd_read, + IOHandler *fd_write, + void *opaque) +{ + IOHandlerRecord **pioh, *ioh; + + if (!fd_read && !fd_write) { + pioh = &first_io_handler; + for(;;) { + ioh = *pioh; + if (ioh == NULL) + break; + if (ioh->fd == fd) { + ioh->deleted = 1; + break; + } + pioh = &ioh->next; + } + } else { + for(ioh = first_io_handler; ioh != NULL; ioh = ioh->next) { + if (ioh->fd == fd) + goto found; + } + ioh = qemu_mallocz(sizeof(IOHandlerRecord)); + if (!ioh) + return -1; + ioh->next = first_io_handler; + first_io_handler = ioh; + found: + ioh->fd = fd; + ioh->fd_read_poll = fd_read_poll; + ioh->fd_read = fd_read; + ioh->fd_write = fd_write; + ioh->opaque = opaque; + ioh->deleted = 0; + } + return 0; +} + +int qemu_set_fd_handler(int fd, + IOHandler *fd_read, + IOHandler *fd_write, + void *opaque) +{ + return qemu_set_fd_handler2(fd, NULL, fd_read, fd_write, opaque); +} + +/***********************************************************/ +/* Polling handling */ + +typedef struct PollingEntry { + PollingFunc *func; + void *opaque; + struct PollingEntry *next; +} PollingEntry; + +static PollingEntry *first_polling_entry; + +int qemu_add_polling_cb(PollingFunc *func, void *opaque) +{ + PollingEntry **ppe, *pe; + pe = qemu_mallocz(sizeof(PollingEntry)); + if (!pe) + return -1; + pe->func = func; + pe->opaque = opaque; + for(ppe = &first_polling_entry; *ppe != NULL; ppe = &(*ppe)->next); + *ppe = pe; + return 0; +} + +void qemu_del_polling_cb(PollingFunc *func, void *opaque) +{ + PollingEntry **ppe, *pe; + for(ppe = &first_polling_entry; *ppe != NULL; ppe = &(*ppe)->next) { + pe = *ppe; + if (pe->func == func && pe->opaque == opaque) { + *ppe = pe->next; + qemu_free(pe); + break; + } + } +} + +#ifdef _WIN32 +/***********************************************************/ +/* Wait objects support */ +typedef struct WaitObjects { + int num; + HANDLE events[MAXIMUM_WAIT_OBJECTS + 1]; + WaitObjectFunc *func[MAXIMUM_WAIT_OBJECTS + 1]; + void *opaque[MAXIMUM_WAIT_OBJECTS + 1]; +} WaitObjects; + +static WaitObjects wait_objects = {0}; + +int qemu_add_wait_object(HANDLE handle, WaitObjectFunc *func, void *opaque) +{ + WaitObjects *w = &wait_objects; + + if (w->num >= MAXIMUM_WAIT_OBJECTS) + return -1; + w->events[w->num] = handle; + w->func[w->num] = func; + w->opaque[w->num] = opaque; + w->num++; + return 0; +} + +void qemu_del_wait_object(HANDLE handle, WaitObjectFunc *func, void *opaque) +{ + int i, found; + WaitObjects *w = &wait_objects; + + found = 0; + for (i = 0; i < w->num; i++) { + if (w->events[i] == handle) + found = 1; + if (found) { + w->events[i] = w->events[i + 1]; + w->func[i] = w->func[i + 1]; + w->opaque[i] = w->opaque[i + 1]; + } + } + if (found) + w->num--; +} +#endif + +/***********************************************************/ +/* savevm/loadvm support */ + +#define IO_BUF_SIZE 32768 + +struct QEMUFile { + FILE *outfile; + BlockDriverState *bs; + int is_file; + int is_writable; + int64_t base_offset; + int64_t buf_offset; /* start of buffer when writing, end of buffer + when reading */ + int buf_index; + int buf_size; /* 0 when writing */ + uint8_t buf[IO_BUF_SIZE]; +}; + +QEMUFile *qemu_fopen(const char *filename, const char *mode) +{ + QEMUFile *f; + + f = qemu_mallocz(sizeof(QEMUFile)); + if (!f) + return NULL; + if (!strcmp(mode, "wb")) { + f->is_writable = 1; + } else if (!strcmp(mode, "rb")) { + f->is_writable = 0; + } else { + goto fail; + } + f->outfile = fopen(filename, mode); + if (!f->outfile) + goto fail; + f->is_file = 1; + return f; + fail: + if (f->outfile) + fclose(f->outfile); + qemu_free(f); + return NULL; +} + +static QEMUFile *qemu_fopen_bdrv(BlockDriverState *bs, int64_t offset, int is_writable) +{ + QEMUFile *f; + + f = qemu_mallocz(sizeof(QEMUFile)); + if (!f) + return NULL; + f->is_file = 0; + f->bs = bs; + f->is_writable = is_writable; + f->base_offset = offset; + return f; +} + +void qemu_fflush(QEMUFile *f) +{ + if (!f->is_writable) + return; + if (f->buf_index > 0) { + if (f->is_file) { + fseek(f->outfile, f->buf_offset, SEEK_SET); + fwrite(f->buf, 1, f->buf_index, f->outfile); + } else { + bdrv_pwrite(f->bs, f->base_offset + f->buf_offset, + f->buf, f->buf_index); + } + f->buf_offset += f->buf_index; + f->buf_index = 0; + } +} + +static void qemu_fill_buffer(QEMUFile *f) +{ + int len; + + if (f->is_writable) + return; + if (f->is_file) { + fseek(f->outfile, f->buf_offset, SEEK_SET); + len = fread(f->buf, 1, IO_BUF_SIZE, f->outfile); + if (len < 0) + len = 0; + } else { + len = bdrv_pread(f->bs, f->base_offset + f->buf_offset, + f->buf, IO_BUF_SIZE); + if (len < 0) + len = 0; + } + f->buf_index = 0; + f->buf_size = len; + f->buf_offset += len; +} + +void qemu_fclose(QEMUFile *f) +{ + if (f->is_writable) + qemu_fflush(f); + if (f->is_file) { + fclose(f->outfile); + } + qemu_free(f); +} + +void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, int size) +{ + int l; + while (size > 0) { + l = IO_BUF_SIZE - f->buf_index; + if (l > size) + l = size; + memcpy(f->buf + f->buf_index, buf, l); + f->buf_index += l; + buf += l; + size -= l; + if (f->buf_index >= IO_BUF_SIZE) + qemu_fflush(f); + } +} + +void qemu_put_byte(QEMUFile *f, int v) +{ + f->buf[f->buf_index++] = v; + if (f->buf_index >= IO_BUF_SIZE) + qemu_fflush(f); +} + +int qemu_get_buffer(QEMUFile *f, uint8_t *buf, int size1) +{ + int size, l; + + size = size1; + while (size > 0) { + l = f->buf_size - f->buf_index; + if (l == 0) { + qemu_fill_buffer(f); + l = f->buf_size - f->buf_index; + if (l == 0) + break; + } + if (l > size) + l = size; + memcpy(buf, f->buf + f->buf_index, l); + f->buf_index += l; + buf += l; + size -= l; + } + return size1 - size; +} + +int qemu_get_byte(QEMUFile *f) +{ + if (f->buf_index >= f->buf_size) { + qemu_fill_buffer(f); + if (f->buf_index >= f->buf_size) + return 0; + } + return f->buf[f->buf_index++]; +} + +int64_t qemu_ftell(QEMUFile *f) +{ + return f->buf_offset - f->buf_size + f->buf_index; +} + +int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence) +{ + if (whence == SEEK_SET) { + /* nothing to do */ + } else if (whence == SEEK_CUR) { + pos += qemu_ftell(f); + } else { + /* SEEK_END not supported */ + return -1; + } + if (f->is_writable) { + qemu_fflush(f); + f->buf_offset = pos; + } else { + f->buf_offset = pos; + f->buf_index = 0; + f->buf_size = 0; + } + return pos; +} + +void qemu_put_be16(QEMUFile *f, unsigned int v) +{ + qemu_put_byte(f, v >> 8); + qemu_put_byte(f, v); +} + +void qemu_put_be32(QEMUFile *f, unsigned int v) +{ + qemu_put_byte(f, v >> 24); + qemu_put_byte(f, v >> 16); + qemu_put_byte(f, v >> 8); + qemu_put_byte(f, v); +} + +void qemu_put_be64(QEMUFile *f, uint64_t v) +{ + qemu_put_be32(f, v >> 32); + qemu_put_be32(f, v); +} + +unsigned int qemu_get_be16(QEMUFile *f) +{ + unsigned int v; + v = qemu_get_byte(f) << 8; + v |= qemu_get_byte(f); + return v; +} + +unsigned int qemu_get_be32(QEMUFile *f) +{ + unsigned int v; + v = qemu_get_byte(f) << 24; + v |= qemu_get_byte(f) << 16; + v |= qemu_get_byte(f) << 8; + v |= qemu_get_byte(f); + return v; +} + +uint64_t qemu_get_be64(QEMUFile *f) +{ + uint64_t v; + v = (uint64_t)qemu_get_be32(f) << 32; + v |= qemu_get_be32(f); + return v; +} + +typedef struct SaveStateEntry { + char idstr[256]; + int instance_id; + int version_id; + SaveStateHandler *save_state; + LoadStateHandler *load_state; + void *opaque; + struct SaveStateEntry *next; +} SaveStateEntry; + +static SaveStateEntry *first_se; + +int register_savevm(const char *idstr, + int instance_id, + int version_id, + SaveStateHandler *save_state, + LoadStateHandler *load_state, + void *opaque) +{ + SaveStateEntry *se, **pse; + + se = qemu_malloc(sizeof(SaveStateEntry)); + if (!se) + return -1; + pstrcpy(se->idstr, sizeof(se->idstr), idstr); + se->instance_id = instance_id; + se->version_id = version_id; + se->save_state = save_state; + se->load_state = load_state; + se->opaque = opaque; + se->next = NULL; + + /* add at the end of list */ + pse = &first_se; + while (*pse != NULL) + pse = &(*pse)->next; + *pse = se; + return 0; +} + +#define QEMU_VM_FILE_MAGIC 0x5145564d +#define QEMU_VM_FILE_VERSION 0x00000002 + +static int qemu_savevm_state(QEMUFile *f) +{ + SaveStateEntry *se; + int len, ret; + int64_t cur_pos, len_pos, total_len_pos; + + qemu_put_be32(f, QEMU_VM_FILE_MAGIC); + qemu_put_be32(f, QEMU_VM_FILE_VERSION); + total_len_pos = qemu_ftell(f); + qemu_put_be64(f, 0); /* total size */ + + for(se = first_se; se != NULL; se = se->next) { + /* ID string */ + len = strlen(se->idstr); + qemu_put_byte(f, len); + qemu_put_buffer(f, (uint8_t *)se->idstr, len); + + qemu_put_be32(f, se->instance_id); + qemu_put_be32(f, se->version_id); + + /* record size: filled later */ + len_pos = qemu_ftell(f); + qemu_put_be32(f, 0); + se->save_state(f, se->opaque); + + /* fill record size */ + cur_pos = qemu_ftell(f); + len = cur_pos - len_pos - 4; + qemu_fseek(f, len_pos, SEEK_SET); + qemu_put_be32(f, len); + qemu_fseek(f, cur_pos, SEEK_SET); + } + cur_pos = qemu_ftell(f); + qemu_fseek(f, total_len_pos, SEEK_SET); + qemu_put_be64(f, cur_pos - total_len_pos - 8); + qemu_fseek(f, cur_pos, SEEK_SET); + + ret = 0; + return ret; +} + +static SaveStateEntry *find_se(const char *idstr, int instance_id) +{ + SaveStateEntry *se; + + for(se = first_se; se != NULL; se = se->next) { + if (!strcmp(se->idstr, idstr) && + instance_id == se->instance_id) + return se; + } + return NULL; +} + +static int qemu_loadvm_state(QEMUFile *f) +{ + SaveStateEntry *se; + int len, ret, instance_id, record_len, version_id; + int64_t total_len, end_pos, cur_pos; + unsigned int v; + char idstr[256]; + + v = qemu_get_be32(f); + if (v != QEMU_VM_FILE_MAGIC) + goto fail; + v = qemu_get_be32(f); + if (v != QEMU_VM_FILE_VERSION) { + fail: + ret = -1; + goto the_end; + } + total_len = qemu_get_be64(f); + end_pos = total_len + qemu_ftell(f); + for(;;) { + if (qemu_ftell(f) >= end_pos) + break; + len = qemu_get_byte(f); + qemu_get_buffer(f, (uint8_t *)idstr, len); + idstr[len] = '\0'; + instance_id = qemu_get_be32(f); + version_id = qemu_get_be32(f); + record_len = qemu_get_be32(f); +#if 0 + printf("idstr=%s instance=0x%x version=%d len=%d\n", + idstr, instance_id, version_id, record_len); +#endif + cur_pos = qemu_ftell(f); + se = find_se(idstr, instance_id); + if (!se) { + fprintf(stderr, "qemu: warning: instance 0x%x of device '%s' not present in current VM\n", + instance_id, idstr); + } else { + ret = se->load_state(f, se->opaque, version_id); + if (ret < 0) { + fprintf(stderr, "qemu: warning: error while loading state for instance 0x%x of device '%s'\n", + instance_id, idstr); + } + } + /* always seek to exact end of record */ + qemu_fseek(f, cur_pos + record_len, SEEK_SET); + } + ret = 0; + the_end: + return ret; +} + +/* device can contain snapshots */ +static int bdrv_can_snapshot(BlockDriverState *bs) +{ + return (bs && + !bdrv_is_removable(bs) && + !bdrv_is_read_only(bs)); +} + +/* device must be snapshots in order to have a reliable snapshot */ +static int bdrv_has_snapshot(BlockDriverState *bs) +{ + return (bs && + !bdrv_is_removable(bs) && + !bdrv_is_read_only(bs)); +} + +static BlockDriverState *get_bs_snapshots(void) +{ + BlockDriverState *bs; + int i; + + if (bs_snapshots) + return bs_snapshots; + for(i = 0; i <= nb_drives; i++) { + bs = drives_table[i].bdrv; + if (bdrv_can_snapshot(bs)) + goto ok; + } + return NULL; + ok: + bs_snapshots = bs; + return bs; +} + +static int bdrv_snapshot_find(BlockDriverState *bs, QEMUSnapshotInfo *sn_info, + const char *name) +{ + QEMUSnapshotInfo *sn_tab, *sn; + int nb_sns, i, ret; + + ret = -ENOENT; + nb_sns = bdrv_snapshot_list(bs, &sn_tab); + if (nb_sns < 0) + return ret; + for(i = 0; i < nb_sns; i++) { + sn = &sn_tab[i]; + if (!strcmp(sn->id_str, name) || !strcmp(sn->name, name)) { + *sn_info = *sn; + ret = 0; + break; + } + } + qemu_free(sn_tab); + return ret; +} + +void do_savevm(const char *name) +{ + BlockDriverState *bs, *bs1; + QEMUSnapshotInfo sn1, *sn = &sn1, old_sn1, *old_sn = &old_sn1; + int must_delete, ret, i; + BlockDriverInfo bdi1, *bdi = &bdi1; + QEMUFile *f; + int saved_vm_running; +#ifdef _WIN32 + struct _timeb tb; +#else + struct timeval tv; +#endif + + bs = get_bs_snapshots(); + if (!bs) { + term_printf("No block device can accept snapshots\n"); + return; + } + + /* ??? Should this occur after vm_stop? */ + qemu_aio_flush(); + + saved_vm_running = vm_running; + vm_stop(0); + + must_delete = 0; + if (name) { + ret = bdrv_snapshot_find(bs, old_sn, name); + if (ret >= 0) { + must_delete = 1; + } + } + memset(sn, 0, sizeof(*sn)); + if (must_delete) { + pstrcpy(sn->name, sizeof(sn->name), old_sn->name); + pstrcpy(sn->id_str, sizeof(sn->id_str), old_sn->id_str); + } else { + if (name) + pstrcpy(sn->name, sizeof(sn->name), name); + } + + /* fill auxiliary fields */ +#ifdef _WIN32 + _ftime(&tb); + sn->date_sec = tb.time; + sn->date_nsec = tb.millitm * 1000000; +#else + gettimeofday(&tv, NULL); + sn->date_sec = tv.tv_sec; + sn->date_nsec = tv.tv_usec * 1000; +#endif + sn->vm_clock_nsec = qemu_get_clock(vm_clock); + + if (bdrv_get_info(bs, bdi) < 0 || bdi->vm_state_offset <= 0) { + term_printf("Device %s does not support VM state snapshots\n", + bdrv_get_device_name(bs)); + goto the_end; + } + + /* save the VM state */ + f = qemu_fopen_bdrv(bs, bdi->vm_state_offset, 1); + if (!f) { + term_printf("Could not open VM state file\n"); + goto the_end; + } + ret = qemu_savevm_state(f); + sn->vm_state_size = qemu_ftell(f); + qemu_fclose(f); + if (ret < 0) { + term_printf("Error %d while writing VM\n", ret); + goto the_end; + } + + /* create the snapshots */ + + for(i = 0; i < nb_drives; i++) { + bs1 = drives_table[i].bdrv; + if (bdrv_has_snapshot(bs1)) { + if (must_delete) { + ret = bdrv_snapshot_delete(bs1, old_sn->id_str); + if (ret < 0) { + term_printf("Error while deleting snapshot on '%s'\n", + bdrv_get_device_name(bs1)); + } + } + ret = bdrv_snapshot_create(bs1, sn); + if (ret < 0) { + term_printf("Error while creating snapshot on '%s'\n", + bdrv_get_device_name(bs1)); + } + } + } + + the_end: + if (saved_vm_running) + vm_start(); +} + +void do_loadvm(const char *name) +{ + BlockDriverState *bs, *bs1; + BlockDriverInfo bdi1, *bdi = &bdi1; + QEMUFile *f; + int i, ret; + int saved_vm_running; + + bs = get_bs_snapshots(); + if (!bs) { + term_printf("No block device supports snapshots\n"); + return; + } + + /* Flush all IO requests so they don't interfere with the new state. */ + qemu_aio_flush(); + + saved_vm_running = vm_running; + vm_stop(0); + + for(i = 0; i <= nb_drives; i++) { + bs1 = drives_table[i].bdrv; + if (bdrv_has_snapshot(bs1)) { + ret = bdrv_snapshot_goto(bs1, name); + if (ret < 0) { + if (bs != bs1) + term_printf("Warning: "); + switch(ret) { + case -ENOTSUP: + term_printf("Snapshots not supported on device '%s'\n", + bdrv_get_device_name(bs1)); + break; + case -ENOENT: + term_printf("Could not find snapshot '%s' on device '%s'\n", + name, bdrv_get_device_name(bs1)); + break; + default: + term_printf("Error %d while activating snapshot on '%s'\n", + ret, bdrv_get_device_name(bs1)); + break; + } + /* fatal on snapshot block device */ + if (bs == bs1) + goto the_end; + } + } + } + + if (bdrv_get_info(bs, bdi) < 0 || bdi->vm_state_offset <= 0) { + term_printf("Device %s does not support VM state snapshots\n", + bdrv_get_device_name(bs)); + return; + } + + /* restore the VM state */ + f = qemu_fopen_bdrv(bs, bdi->vm_state_offset, 0); + if (!f) { + term_printf("Could not open VM state file\n"); + goto the_end; + } + ret = qemu_loadvm_state(f); + qemu_fclose(f); + if (ret < 0) { + term_printf("Error %d while loading VM state\n", ret); + } + the_end: + if (saved_vm_running) + vm_start(); +} + +void do_delvm(const char *name) +{ + BlockDriverState *bs, *bs1; + int i, ret; + + bs = get_bs_snapshots(); + if (!bs) { + term_printf("No block device supports snapshots\n"); + return; + } + + for(i = 0; i <= nb_drives; i++) { + bs1 = drives_table[i].bdrv; + if (bdrv_has_snapshot(bs1)) { + ret = bdrv_snapshot_delete(bs1, name); + if (ret < 0) { + if (ret == -ENOTSUP) + term_printf("Snapshots not supported on device '%s'\n", + bdrv_get_device_name(bs1)); + else + term_printf("Error %d while deleting snapshot on '%s'\n", + ret, bdrv_get_device_name(bs1)); + } + } + } +} + +void do_info_snapshots(void) +{ + BlockDriverState *bs, *bs1; + QEMUSnapshotInfo *sn_tab, *sn; + int nb_sns, i; + char buf[256]; + + bs = get_bs_snapshots(); + if (!bs) { + term_printf("No available block device supports snapshots\n"); + return; + } + term_printf("Snapshot devices:"); + for(i = 0; i <= nb_drives; i++) { + bs1 = drives_table[i].bdrv; + if (bdrv_has_snapshot(bs1)) { + if (bs == bs1) + term_printf(" %s", bdrv_get_device_name(bs1)); + } + } + term_printf("\n"); + + nb_sns = bdrv_snapshot_list(bs, &sn_tab); + if (nb_sns < 0) { + term_printf("bdrv_snapshot_list: error %d\n", nb_sns); + return; + } + term_printf("Snapshot list (from %s):\n", bdrv_get_device_name(bs)); + term_printf("%s\n", bdrv_snapshot_dump(buf, sizeof(buf), NULL)); + for(i = 0; i < nb_sns; i++) { + sn = &sn_tab[i]; + term_printf("%s\n", bdrv_snapshot_dump(buf, sizeof(buf), sn)); + } + qemu_free(sn_tab); +} + +/***********************************************************/ +/* cpu save/restore */ + +#if defined(TARGET_I386) + +static void cpu_put_seg(QEMUFile *f, SegmentCache *dt) +{ + qemu_put_be32(f, dt->selector); + qemu_put_betl(f, dt->base); + qemu_put_be32(f, dt->limit); + qemu_put_be32(f, dt->flags); +} + +static void cpu_get_seg(QEMUFile *f, SegmentCache *dt) +{ + dt->selector = qemu_get_be32(f); + dt->base = qemu_get_betl(f); + dt->limit = qemu_get_be32(f); + dt->flags = qemu_get_be32(f); +} + +void cpu_save(QEMUFile *f, void *opaque) +{ + CPUState *env = opaque; + uint16_t fptag, fpus, fpuc, fpregs_format; + uint32_t hflags; + int i; + + for(i = 0; i < CPU_NB_REGS; i++) + qemu_put_betls(f, &env->regs[i]); + qemu_put_betls(f, &env->eip); + qemu_put_betls(f, &env->eflags); + hflags = env->hflags; /* XXX: suppress most of the redundant hflags */ + qemu_put_be32s(f, &hflags); + + /* FPU */ + fpuc = env->fpuc; + fpus = (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11; + fptag = 0; + for(i = 0; i < 8; i++) { + fptag |= ((!env->fptags[i]) << i); + } + + qemu_put_be16s(f, &fpuc); + qemu_put_be16s(f, &fpus); + qemu_put_be16s(f, &fptag); + +#ifdef USE_X86LDOUBLE + fpregs_format = 0; +#else + fpregs_format = 1; +#endif + qemu_put_be16s(f, &fpregs_format); + + for(i = 0; i < 8; i++) { +#ifdef USE_X86LDOUBLE + { + uint64_t mant; + uint16_t exp; + /* we save the real CPU data (in case of MMX usage only 'mant' + contains the MMX register */ + cpu_get_fp80(&mant, &exp, env->fpregs[i].d); + qemu_put_be64(f, mant); + qemu_put_be16(f, exp); + } +#else + /* if we use doubles for float emulation, we save the doubles to + avoid losing information in case of MMX usage. It can give + problems if the image is restored on a CPU where long + doubles are used instead. */ + qemu_put_be64(f, env->fpregs[i].mmx.MMX_Q(0)); +#endif + } + + for(i = 0; i < 6; i++) + cpu_put_seg(f, &env->segs[i]); + cpu_put_seg(f, &env->ldt); + cpu_put_seg(f, &env->tr); + cpu_put_seg(f, &env->gdt); + cpu_put_seg(f, &env->idt); + + qemu_put_be32s(f, &env->sysenter_cs); + qemu_put_be32s(f, &env->sysenter_esp); + qemu_put_be32s(f, &env->sysenter_eip); + + qemu_put_betls(f, &env->cr[0]); + qemu_put_betls(f, &env->cr[2]); + qemu_put_betls(f, &env->cr[3]); + qemu_put_betls(f, &env->cr[4]); + + for(i = 0; i < 8; i++) + qemu_put_betls(f, &env->dr[i]); + + /* MMU */ + qemu_put_be32s(f, &env->a20_mask); + + /* XMM */ + qemu_put_be32s(f, &env->mxcsr); + for(i = 0; i < CPU_NB_REGS; i++) { + qemu_put_be64s(f, &env->xmm_regs[i].XMM_Q(0)); + qemu_put_be64s(f, &env->xmm_regs[i].XMM_Q(1)); + } + +#ifdef TARGET_X86_64 + qemu_put_be64s(f, &env->efer); + qemu_put_be64s(f, &env->star); + qemu_put_be64s(f, &env->lstar); + qemu_put_be64s(f, &env->cstar); + qemu_put_be64s(f, &env->fmask); + qemu_put_be64s(f, &env->kernelgsbase); +#endif + qemu_put_be32s(f, &env->smbase); +} + +#ifdef USE_X86LDOUBLE +/* XXX: add that in a FPU generic layer */ +union x86_longdouble { + uint64_t mant; + uint16_t exp; +}; + +#define MANTD1(fp) (fp & ((1LL << 52) - 1)) +#define EXPBIAS1 1023 +#define EXPD1(fp) ((fp >> 52) & 0x7FF) +#define SIGND1(fp) ((fp >> 32) & 0x80000000) + +static void fp64_to_fp80(union x86_longdouble *p, uint64_t temp) +{ + int e; + /* mantissa */ + p->mant = (MANTD1(temp) << 11) | (1LL << 63); + /* exponent + sign */ + e = EXPD1(temp) - EXPBIAS1 + 16383; + e |= SIGND1(temp) >> 16; + p->exp = e; +} +#endif + +int cpu_load(QEMUFile *f, void *opaque, int version_id) +{ + CPUState *env = opaque; + int i, guess_mmx; + uint32_t hflags; + uint16_t fpus, fpuc, fptag, fpregs_format; + + if (version_id != 3 && version_id != 4) + return -EINVAL; + for(i = 0; i < CPU_NB_REGS; i++) + qemu_get_betls(f, &env->regs[i]); + qemu_get_betls(f, &env->eip); + qemu_get_betls(f, &env->eflags); + qemu_get_be32s(f, &hflags); + + qemu_get_be16s(f, &fpuc); + qemu_get_be16s(f, &fpus); + qemu_get_be16s(f, &fptag); + qemu_get_be16s(f, &fpregs_format); + + /* NOTE: we cannot always restore the FPU state if the image come + from a host with a different 'USE_X86LDOUBLE' define. We guess + if we are in an MMX state to restore correctly in that case. */ + guess_mmx = ((fptag == 0xff) && (fpus & 0x3800) == 0); + for(i = 0; i < 8; i++) { + uint64_t mant; + uint16_t exp; + + switch(fpregs_format) { + case 0: + mant = qemu_get_be64(f); + exp = qemu_get_be16(f); +#ifdef USE_X86LDOUBLE + env->fpregs[i].d = cpu_set_fp80(mant, exp); +#else + /* difficult case */ + if (guess_mmx) + env->fpregs[i].mmx.MMX_Q(0) = mant; + else + env->fpregs[i].d = cpu_set_fp80(mant, exp); +#endif + break; + case 1: + mant = qemu_get_be64(f); +#ifdef USE_X86LDOUBLE + { + union x86_longdouble *p; + /* difficult case */ + p = (void *)&env->fpregs[i]; + if (guess_mmx) { + p->mant = mant; + p->exp = 0xffff; + } else { + fp64_to_fp80(p, mant); + } + } +#else + env->fpregs[i].mmx.MMX_Q(0) = mant; +#endif + break; + default: + return -EINVAL; + } + } + + env->fpuc = fpuc; + /* XXX: restore FPU round state */ + env->fpstt = (fpus >> 11) & 7; + env->fpus = fpus & ~0x3800; + fptag ^= 0xff; + for(i = 0; i < 8; i++) { + env->fptags[i] = (fptag >> i) & 1; + } + + for(i = 0; i < 6; i++) + cpu_get_seg(f, &env->segs[i]); + cpu_get_seg(f, &env->ldt); + cpu_get_seg(f, &env->tr); + cpu_get_seg(f, &env->gdt); + cpu_get_seg(f, &env->idt); + + qemu_get_be32s(f, &env->sysenter_cs); + qemu_get_be32s(f, &env->sysenter_esp); + qemu_get_be32s(f, &env->sysenter_eip); + + qemu_get_betls(f, &env->cr[0]); + qemu_get_betls(f, &env->cr[2]); + qemu_get_betls(f, &env->cr[3]); + qemu_get_betls(f, &env->cr[4]); + + for(i = 0; i < 8; i++) + qemu_get_betls(f, &env->dr[i]); + + /* MMU */ + qemu_get_be32s(f, &env->a20_mask); + + qemu_get_be32s(f, &env->mxcsr); + for(i = 0; i < CPU_NB_REGS; i++) { + qemu_get_be64s(f, &env->xmm_regs[i].XMM_Q(0)); + qemu_get_be64s(f, &env->xmm_regs[i].XMM_Q(1)); + } + +#ifdef TARGET_X86_64 + qemu_get_be64s(f, &env->efer); + qemu_get_be64s(f, &env->star); + qemu_get_be64s(f, &env->lstar); + qemu_get_be64s(f, &env->cstar); + qemu_get_be64s(f, &env->fmask); + qemu_get_be64s(f, &env->kernelgsbase); +#endif + if (version_id >= 4) + qemu_get_be32s(f, &env->smbase); + + /* XXX: compute hflags from scratch, except for CPL and IIF */ + env->hflags = hflags; + tlb_flush(env, 1); + return 0; +} + +#elif defined(TARGET_PPC) +void cpu_save(QEMUFile *f, void *opaque) +{ +} + +int cpu_load(QEMUFile *f, void *opaque, int version_id) +{ + return 0; +} + +#elif defined(TARGET_MIPS) +void cpu_save(QEMUFile *f, void *opaque) +{ +} + +int cpu_load(QEMUFile *f, void *opaque, int version_id) +{ + return 0; +} + +#elif defined(TARGET_SPARC) +void cpu_save(QEMUFile *f, void *opaque) +{ + CPUState *env = opaque; + int i; + uint32_t tmp; + + for(i = 0; i < 8; i++) + qemu_put_betls(f, &env->gregs[i]); + for(i = 0; i < NWINDOWS * 16; i++) + qemu_put_betls(f, &env->regbase[i]); + + /* FPU */ + for(i = 0; i < TARGET_FPREGS; i++) { + union { + float32 f; + uint32_t i; + } u; + u.f = env->fpr[i]; + qemu_put_be32(f, u.i); + } + + qemu_put_betls(f, &env->pc); + qemu_put_betls(f, &env->npc); + qemu_put_betls(f, &env->y); + tmp = GET_PSR(env); + qemu_put_be32(f, tmp); + qemu_put_betls(f, &env->fsr); + qemu_put_betls(f, &env->tbr); +#ifndef TARGET_SPARC64 + qemu_put_be32s(f, &env->wim); + /* MMU */ + for(i = 0; i < 16; i++) + qemu_put_be32s(f, &env->mmuregs[i]); +#endif +} + +int cpu_load(QEMUFile *f, void *opaque, int version_id) +{ + CPUState *env = opaque; + int i; + uint32_t tmp; + + for(i = 0; i < 8; i++) + qemu_get_betls(f, &env->gregs[i]); + for(i = 0; i < NWINDOWS * 16; i++) + qemu_get_betls(f, &env->regbase[i]); + + /* FPU */ + for(i = 0; i < TARGET_FPREGS; i++) { + union { + float32 f; + uint32_t i; + } u; + u.i = qemu_get_be32(f); + env->fpr[i] = u.f; + } + + qemu_get_betls(f, &env->pc); + qemu_get_betls(f, &env->npc); + qemu_get_betls(f, &env->y); + tmp = qemu_get_be32(f); + env->cwp = 0; /* needed to ensure that the wrapping registers are + correctly updated */ + PUT_PSR(env, tmp); + qemu_get_betls(f, &env->fsr); + qemu_get_betls(f, &env->tbr); +#ifndef TARGET_SPARC64 + qemu_get_be32s(f, &env->wim); + /* MMU */ + for(i = 0; i < 16; i++) + qemu_get_be32s(f, &env->mmuregs[i]); +#endif + tlb_flush(env, 1); + return 0; +} + +#elif defined(TARGET_ARM) + +void cpu_save(QEMUFile *f, void *opaque) +{ + int i; + CPUARMState *env = (CPUARMState *)opaque; + + for (i = 0; i < 16; i++) { + qemu_put_be32(f, env->regs[i]); + } + qemu_put_be32(f, cpsr_read(env)); + qemu_put_be32(f, env->spsr); + for (i = 0; i < 6; i++) { + qemu_put_be32(f, env->banked_spsr[i]); + qemu_put_be32(f, env->banked_r13[i]); + qemu_put_be32(f, env->banked_r14[i]); + } + for (i = 0; i < 5; i++) { + qemu_put_be32(f, env->usr_regs[i]); + qemu_put_be32(f, env->fiq_regs[i]); + } + qemu_put_be32(f, env->cp15.c0_cpuid); + qemu_put_be32(f, env->cp15.c0_cachetype); + qemu_put_be32(f, env->cp15.c1_sys); + qemu_put_be32(f, env->cp15.c1_coproc); + qemu_put_be32(f, env->cp15.c1_xscaleauxcr); + qemu_put_be32(f, env->cp15.c2_base0); + qemu_put_be32(f, env->cp15.c2_base1); + qemu_put_be32(f, env->cp15.c2_mask); + qemu_put_be32(f, env->cp15.c2_data); + qemu_put_be32(f, env->cp15.c2_insn); + qemu_put_be32(f, env->cp15.c3); + qemu_put_be32(f, env->cp15.c5_insn); + qemu_put_be32(f, env->cp15.c5_data); + for (i = 0; i < 8; i++) { + qemu_put_be32(f, env->cp15.c6_region[i]); + } + qemu_put_be32(f, env->cp15.c6_insn); + qemu_put_be32(f, env->cp15.c6_data); + qemu_put_be32(f, env->cp15.c9_insn); + qemu_put_be32(f, env->cp15.c9_data); + qemu_put_be32(f, env->cp15.c13_fcse); + qemu_put_be32(f, env->cp15.c13_context); + qemu_put_be32(f, env->cp15.c13_tls1); + qemu_put_be32(f, env->cp15.c13_tls2); + qemu_put_be32(f, env->cp15.c13_tls3); + qemu_put_be32(f, env->cp15.c15_cpar); + + qemu_put_be32(f, env->features); + + if (arm_feature(env, ARM_FEATURE_VFP)) { + for (i = 0; i < 16; i++) { + CPU_DoubleU u; + u.d = env->vfp.regs[i]; + qemu_put_be32(f, u.l.upper); + qemu_put_be32(f, u.l.lower); + } + for (i = 0; i < 16; i++) { + qemu_put_be32(f, env->vfp.xregs[i]); + } + + /* TODO: Should use proper FPSCR access functions. */ + qemu_put_be32(f, env->vfp.vec_len); + qemu_put_be32(f, env->vfp.vec_stride); + + if (arm_feature(env, ARM_FEATURE_VFP3)) { + for (i = 16; i < 32; i++) { + CPU_DoubleU u; + u.d = env->vfp.regs[i]; + qemu_put_be32(f, u.l.upper); + qemu_put_be32(f, u.l.lower); + } + } + } + + if (arm_feature(env, ARM_FEATURE_IWMMXT)) { + for (i = 0; i < 16; i++) { + qemu_put_be64(f, env->iwmmxt.regs[i]); + } + for (i = 0; i < 16; i++) { + qemu_put_be32(f, env->iwmmxt.cregs[i]); + } + } + + if (arm_feature(env, ARM_FEATURE_M)) { + qemu_put_be32(f, env->v7m.other_sp); + qemu_put_be32(f, env->v7m.vecbase); + qemu_put_be32(f, env->v7m.basepri); + qemu_put_be32(f, env->v7m.control); + qemu_put_be32(f, env->v7m.current_sp); + qemu_put_be32(f, env->v7m.exception); + } +} + +int cpu_load(QEMUFile *f, void *opaque, int version_id) +{ + CPUARMState *env = (CPUARMState *)opaque; + int i; + + if (version_id != ARM_CPU_SAVE_VERSION) + return -EINVAL; + + for (i = 0; i < 16; i++) { + env->regs[i] = qemu_get_be32(f); + } + cpsr_write(env, qemu_get_be32(f), 0xffffffff); + env->spsr = qemu_get_be32(f); + for (i = 0; i < 6; i++) { + env->banked_spsr[i] = qemu_get_be32(f); + env->banked_r13[i] = qemu_get_be32(f); + env->banked_r14[i] = qemu_get_be32(f); + } + for (i = 0; i < 5; i++) { + env->usr_regs[i] = qemu_get_be32(f); + env->fiq_regs[i] = qemu_get_be32(f); + } + env->cp15.c0_cpuid = qemu_get_be32(f); + env->cp15.c0_cachetype = qemu_get_be32(f); + env->cp15.c1_sys = qemu_get_be32(f); + env->cp15.c1_coproc = qemu_get_be32(f); + env->cp15.c1_xscaleauxcr = qemu_get_be32(f); + env->cp15.c2_base0 = qemu_get_be32(f); + env->cp15.c2_base1 = qemu_get_be32(f); + env->cp15.c2_mask = qemu_get_be32(f); + env->cp15.c2_data = qemu_get_be32(f); + env->cp15.c2_insn = qemu_get_be32(f); + env->cp15.c3 = qemu_get_be32(f); + env->cp15.c5_insn = qemu_get_be32(f); + env->cp15.c5_data = qemu_get_be32(f); + for (i = 0; i < 8; i++) { + env->cp15.c6_region[i] = qemu_get_be32(f); + } + env->cp15.c6_insn = qemu_get_be32(f); + env->cp15.c6_data = qemu_get_be32(f); + env->cp15.c9_insn = qemu_get_be32(f); + env->cp15.c9_data = qemu_get_be32(f); + env->cp15.c13_fcse = qemu_get_be32(f); + env->cp15.c13_context = qemu_get_be32(f); + env->cp15.c13_tls1 = qemu_get_be32(f); + env->cp15.c13_tls2 = qemu_get_be32(f); + env->cp15.c13_tls3 = qemu_get_be32(f); + env->cp15.c15_cpar = qemu_get_be32(f); + + env->features = qemu_get_be32(f); + + if (arm_feature(env, ARM_FEATURE_VFP)) { + for (i = 0; i < 16; i++) { + CPU_DoubleU u; + u.l.upper = qemu_get_be32(f); + u.l.lower = qemu_get_be32(f); + env->vfp.regs[i] = u.d; + } + for (i = 0; i < 16; i++) { + env->vfp.xregs[i] = qemu_get_be32(f); + } + + /* TODO: Should use proper FPSCR access functions. */ + env->vfp.vec_len = qemu_get_be32(f); + env->vfp.vec_stride = qemu_get_be32(f); + + if (arm_feature(env, ARM_FEATURE_VFP3)) { + for (i = 0; i < 16; i++) { + CPU_DoubleU u; + u.l.upper = qemu_get_be32(f); + u.l.lower = qemu_get_be32(f); + env->vfp.regs[i] = u.d; + } + } + } + + if (arm_feature(env, ARM_FEATURE_IWMMXT)) { + for (i = 0; i < 16; i++) { + env->iwmmxt.regs[i] = qemu_get_be64(f); + } + for (i = 0; i < 16; i++) { + env->iwmmxt.cregs[i] = qemu_get_be32(f); + } + } + + if (arm_feature(env, ARM_FEATURE_M)) { + env->v7m.other_sp = qemu_get_be32(f); + env->v7m.vecbase = qemu_get_be32(f); + env->v7m.basepri = qemu_get_be32(f); + env->v7m.control = qemu_get_be32(f); + env->v7m.current_sp = qemu_get_be32(f); + env->v7m.exception = qemu_get_be32(f); + } + + return 0; +} + +#else + +//#warning No CPU save/restore functions + +#endif + +/***********************************************************/ +/* ram save/restore */ + +static int ram_get_page(QEMUFile *f, uint8_t *buf, int len) +{ + int v; + + v = qemu_get_byte(f); + switch(v) { + case 0: + if (qemu_get_buffer(f, buf, len) != len) + return -EIO; + break; + case 1: + v = qemu_get_byte(f); + memset(buf, v, len); + break; + default: + return -EINVAL; + } + return 0; +} + +static int ram_load_v1(QEMUFile *f, void *opaque) +{ + int i, ret; + + if (qemu_get_be32(f) != phys_ram_size) + return -EINVAL; + for(i = 0; i < phys_ram_size; i+= TARGET_PAGE_SIZE) { + ret = ram_get_page(f, phys_ram_base + i, TARGET_PAGE_SIZE); + if (ret) + return ret; + } + return 0; +} + +#define BDRV_HASH_BLOCK_SIZE 1024 +#define IOBUF_SIZE 4096 +#define RAM_CBLOCK_MAGIC 0xfabe + +typedef struct RamCompressState { + z_stream zstream; + QEMUFile *f; + uint8_t buf[IOBUF_SIZE]; +} RamCompressState; + +static int ram_compress_open(RamCompressState *s, QEMUFile *f) +{ + int ret; + memset(s, 0, sizeof(*s)); + s->f = f; + ret = deflateInit2(&s->zstream, 1, + Z_DEFLATED, 15, + 9, Z_DEFAULT_STRATEGY); + if (ret != Z_OK) + return -1; + s->zstream.avail_out = IOBUF_SIZE; + s->zstream.next_out = s->buf; + return 0; +} + +static void ram_put_cblock(RamCompressState *s, const uint8_t *buf, int len) +{ + qemu_put_be16(s->f, RAM_CBLOCK_MAGIC); + qemu_put_be16(s->f, len); + qemu_put_buffer(s->f, buf, len); +} + +static int ram_compress_buf(RamCompressState *s, const uint8_t *buf, int len) +{ + int ret; + + s->zstream.avail_in = len; + s->zstream.next_in = (uint8_t *)buf; + while (s->zstream.avail_in > 0) { + ret = deflate(&s->zstream, Z_NO_FLUSH); + if (ret != Z_OK) + return -1; + if (s->zstream.avail_out == 0) { + ram_put_cblock(s, s->buf, IOBUF_SIZE); + s->zstream.avail_out = IOBUF_SIZE; + s->zstream.next_out = s->buf; + } + } + return 0; +} + +static void ram_compress_close(RamCompressState *s) +{ + int len, ret; + + /* compress last bytes */ + for(;;) { + ret = deflate(&s->zstream, Z_FINISH); + if (ret == Z_OK || ret == Z_STREAM_END) { + len = IOBUF_SIZE - s->zstream.avail_out; + if (len > 0) { + ram_put_cblock(s, s->buf, len); + } + s->zstream.avail_out = IOBUF_SIZE; + s->zstream.next_out = s->buf; + if (ret == Z_STREAM_END) + break; + } else { + goto fail; + } + } +fail: + deflateEnd(&s->zstream); +} + +typedef struct RamDecompressState { + z_stream zstream; + QEMUFile *f; + uint8_t buf[IOBUF_SIZE]; +} RamDecompressState; + +static int ram_decompress_open(RamDecompressState *s, QEMUFile *f) +{ + int ret; + memset(s, 0, sizeof(*s)); + s->f = f; + ret = inflateInit(&s->zstream); + if (ret != Z_OK) + return -1; + return 0; +} + +static int ram_decompress_buf(RamDecompressState *s, uint8_t *buf, int len) +{ + int ret, clen; + + s->zstream.avail_out = len; + s->zstream.next_out = buf; + while (s->zstream.avail_out > 0) { + if (s->zstream.avail_in == 0) { + if (qemu_get_be16(s->f) != RAM_CBLOCK_MAGIC) + return -1; + clen = qemu_get_be16(s->f); + if (clen > IOBUF_SIZE) + return -1; + qemu_get_buffer(s->f, s->buf, clen); + s->zstream.avail_in = clen; + s->zstream.next_in = s->buf; + } + ret = inflate(&s->zstream, Z_PARTIAL_FLUSH); + if (ret != Z_OK && ret != Z_STREAM_END) { + return -1; + } + } + return 0; +} + +static void ram_decompress_close(RamDecompressState *s) +{ + inflateEnd(&s->zstream); +} + +static void ram_save(QEMUFile *f, void *opaque) +{ + int i; + RamCompressState s1, *s = &s1; + uint8_t buf[10]; + + qemu_put_be32(f, phys_ram_size); + if (ram_compress_open(s, f) < 0) + return; + for(i = 0; i < phys_ram_size; i+= BDRV_HASH_BLOCK_SIZE) { +#if 0 + if (tight_savevm_enabled) { + int64_t sector_num; + int j; + + /* find if the memory block is available on a virtual + block device */ + sector_num = -1; + for(j = 0; j < nb_drives; j++) { + sector_num = bdrv_hash_find(drives_table[j].bdrv, + phys_ram_base + i, + BDRV_HASH_BLOCK_SIZE); + if (sector_num >= 0) + break; + } + if (j == nb_drives) + goto normal_compress; + buf[0] = 1; + buf[1] = j; + cpu_to_be64wu((uint64_t *)(buf + 2), sector_num); + ram_compress_buf(s, buf, 10); + } else +#endif + { + // normal_compress: + buf[0] = 0; + ram_compress_buf(s, buf, 1); + ram_compress_buf(s, phys_ram_base + i, BDRV_HASH_BLOCK_SIZE); + } + } + ram_compress_close(s); +} + +static int ram_load(QEMUFile *f, void *opaque, int version_id) +{ + RamDecompressState s1, *s = &s1; + uint8_t buf[10]; + int i; + + if (version_id == 1) + return ram_load_v1(f, opaque); + if (version_id != 2) + return -EINVAL; + if (qemu_get_be32(f) != phys_ram_size) + return -EINVAL; + if (ram_decompress_open(s, f) < 0) + return -EINVAL; + for(i = 0; i < phys_ram_size; i+= BDRV_HASH_BLOCK_SIZE) { + if (ram_decompress_buf(s, buf, 1) < 0) { + fprintf(stderr, "Error while reading ram block header\n"); + goto error; + } + if (buf[0] == 0) { + if (ram_decompress_buf(s, phys_ram_base + i, BDRV_HASH_BLOCK_SIZE) < 0) { + fprintf(stderr, "Error while reading ram block address=0x%08x", i); + goto error; + } + } else +#if 0 + if (buf[0] == 1) { + int bs_index; + int64_t sector_num; + + ram_decompress_buf(s, buf + 1, 9); + bs_index = buf[1]; + sector_num = be64_to_cpupu((const uint64_t *)(buf + 2)); + if (bs_index >= nb_drives) { + fprintf(stderr, "Invalid block device index %d\n", bs_index); + goto error; + } + if (bdrv_read(drives_table[bs_index].bdrv, sector_num, + phys_ram_base + i, + BDRV_HASH_BLOCK_SIZE / 512) < 0) { + fprintf(stderr, "Error while reading sector %d:%" PRId64 "\n", + bs_index, sector_num); + goto error; + } + } else +#endif + { + error: + printf("Error block header\n"); + return -EINVAL; + } + } + ram_decompress_close(s); + return 0; +} + +/***********************************************************/ +/* bottom halves (can be seen as timers which expire ASAP) */ + +struct QEMUBH { + QEMUBHFunc *cb; + void *opaque; + int scheduled; + QEMUBH *next; +}; + +static QEMUBH *first_bh = NULL; + +QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque) +{ + QEMUBH *bh; + bh = qemu_mallocz(sizeof(QEMUBH)); + if (!bh) + return NULL; + bh->cb = cb; + bh->opaque = opaque; + return bh; +} + +int qemu_bh_poll(void) +{ + QEMUBH *bh, **pbh; + int ret; + + ret = 0; + for(;;) { + pbh = &first_bh; + bh = *pbh; + if (!bh) + break; + ret = 1; + *pbh = bh->next; + bh->scheduled = 0; + bh->cb(bh->opaque); + } + return ret; +} + +void qemu_bh_schedule(QEMUBH *bh) +{ + CPUState *env = cpu_single_env; + if (bh->scheduled) + return; + bh->scheduled = 1; + bh->next = first_bh; + first_bh = bh; + + /* stop the currently executing CPU to execute the BH ASAP */ + if (env) { + cpu_interrupt(env, CPU_INTERRUPT_EXIT); + } +} + +void qemu_bh_cancel(QEMUBH *bh) +{ + QEMUBH **pbh; + if (bh->scheduled) { + pbh = &first_bh; + while (*pbh != bh) + pbh = &(*pbh)->next; + *pbh = bh->next; + bh->scheduled = 0; + } +} + +void qemu_bh_delete(QEMUBH *bh) +{ + qemu_bh_cancel(bh); + qemu_free(bh); +} + +/***********************************************************/ +/* machine registration */ + +QEMUMachine *first_machine = NULL; + +int qemu_register_machine(QEMUMachine *m) +{ + QEMUMachine **pm; + pm = &first_machine; + while (*pm != NULL) + pm = &(*pm)->next; + m->next = NULL; + *pm = m; + return 0; +} + +static QEMUMachine *find_machine(const char *name) +{ + QEMUMachine *m; + + for(m = first_machine; m != NULL; m = m->next) { + if (!strcmp(m->name, name)) + return m; + } + return NULL; +} + +/***********************************************************/ +/* main execution loop */ + +static void gui_update(void *opaque) +{ + DisplayState *ds = opaque; + ds->dpy_refresh(ds); + qemu_mod_timer(ds->gui_timer, GUI_REFRESH_INTERVAL + qemu_get_clock(rt_clock)); +} + +struct vm_change_state_entry { + VMChangeStateHandler *cb; + void *opaque; + LIST_ENTRY (vm_change_state_entry) entries; +}; + +static LIST_HEAD(vm_change_state_head, vm_change_state_entry) vm_change_state_head; + +VMChangeStateEntry *qemu_add_vm_change_state_handler(VMChangeStateHandler *cb, + void *opaque) +{ + VMChangeStateEntry *e; + + e = qemu_mallocz(sizeof (*e)); + if (!e) + return NULL; + + e->cb = cb; + e->opaque = opaque; + LIST_INSERT_HEAD(&vm_change_state_head, e, entries); + return e; +} + +void qemu_del_vm_change_state_handler(VMChangeStateEntry *e) +{ + LIST_REMOVE (e, entries); + qemu_free (e); +} + +static void vm_state_notify(int running) +{ + VMChangeStateEntry *e; + + for (e = vm_change_state_head.lh_first; e; e = e->entries.le_next) { + e->cb(e->opaque, running); + } +} + +/* XXX: support several handlers */ +static VMStopHandler *vm_stop_cb; +static void *vm_stop_opaque; + +int qemu_add_vm_stop_handler(VMStopHandler *cb, void *opaque) +{ + vm_stop_cb = cb; + vm_stop_opaque = opaque; + return 0; +} + +void qemu_del_vm_stop_handler(VMStopHandler *cb, void *opaque) +{ + vm_stop_cb = NULL; +} + +void vm_start(void) +{ + if (!vm_running) { + cpu_enable_ticks(); + vm_running = 1; + vm_state_notify(1); + qemu_rearm_alarm_timer(alarm_timer); + } +} + +void vm_stop(int reason) +{ + if (vm_running) { + cpu_disable_ticks(); + vm_running = 0; + if (reason != 0) { + if (vm_stop_cb) { + vm_stop_cb(vm_stop_opaque, reason); + } + } + vm_state_notify(0); + } +} + +/* reset/shutdown handler */ + +typedef struct QEMUResetEntry { + QEMUResetHandler *func; + void *opaque; + struct QEMUResetEntry *next; +} QEMUResetEntry; + +static QEMUResetEntry *first_reset_entry; +static int reset_requested; +static int shutdown_requested; +static int powerdown_requested; + +void qemu_register_reset(QEMUResetHandler *func, void *opaque) +{ + QEMUResetEntry **pre, *re; + + pre = &first_reset_entry; + while (*pre != NULL) + pre = &(*pre)->next; + re = qemu_mallocz(sizeof(QEMUResetEntry)); + re->func = func; + re->opaque = opaque; + re->next = NULL; + *pre = re; +} + +static void qemu_system_reset(void) +{ + QEMUResetEntry *re; + + /* reset all devices */ + for(re = first_reset_entry; re != NULL; re = re->next) { + re->func(re->opaque); + } +} + +void qemu_system_reset_request(void) +{ + if (no_reboot) { + shutdown_requested = 1; + } else { + reset_requested = 1; + } + if (cpu_single_env) + cpu_interrupt(cpu_single_env, CPU_INTERRUPT_EXIT); +} + +void qemu_system_shutdown_request(void) +{ + shutdown_requested = 1; + if (cpu_single_env) + cpu_interrupt(cpu_single_env, CPU_INTERRUPT_EXIT); +} + +void qemu_system_powerdown_request(void) +{ + powerdown_requested = 1; + if (cpu_single_env) + cpu_interrupt(cpu_single_env, CPU_INTERRUPT_EXIT); +} + +void main_loop_wait(int timeout) +{ + IOHandlerRecord *ioh; + fd_set rfds, wfds, xfds; + int ret, nfds; +#ifdef _WIN32 + int ret2, i; +#endif + struct timeval tv; + PollingEntry *pe; + + + /* XXX: need to suppress polling by better using win32 events */ + ret = 0; + for(pe = first_polling_entry; pe != NULL; pe = pe->next) { + ret |= pe->func(pe->opaque); + } +#ifdef _WIN32 + if (ret == 0) { + int err; + WaitObjects *w = &wait_objects; + + ret = WaitForMultipleObjects(w->num, w->events, FALSE, timeout); + if (WAIT_OBJECT_0 + 0 <= ret && ret <= WAIT_OBJECT_0 + w->num - 1) { + if (w->func[ret - WAIT_OBJECT_0]) + w->func[ret - WAIT_OBJECT_0](w->opaque[ret - WAIT_OBJECT_0]); + + /* Check for additional signaled events */ + for(i = (ret - WAIT_OBJECT_0 + 1); i < w->num; i++) { + + /* Check if event is signaled */ + ret2 = WaitForSingleObject(w->events[i], 0); + if(ret2 == WAIT_OBJECT_0) { + if (w->func[i]) + w->func[i](w->opaque[i]); + } else if (ret2 == WAIT_TIMEOUT) { + } else { + err = GetLastError(); + fprintf(stderr, "WaitForSingleObject error %d %d\n", i, err); + } + } + } else if (ret == WAIT_TIMEOUT) { + } else { + err = GetLastError(); + fprintf(stderr, "WaitForMultipleObjects error %d %d\n", ret, err); + } + } +#endif + /* poll any events */ + /* XXX: separate device handlers from system ones */ + nfds = -1; + FD_ZERO(&rfds); + FD_ZERO(&wfds); + FD_ZERO(&xfds); + for(ioh = first_io_handler; ioh != NULL; ioh = ioh->next) { + if (ioh->deleted) + continue; + if (ioh->fd_read && + (!ioh->fd_read_poll || + ioh->fd_read_poll(ioh->opaque) != 0)) { + FD_SET(ioh->fd, &rfds); + if (ioh->fd > nfds) + nfds = ioh->fd; + } + if (ioh->fd_write) { + FD_SET(ioh->fd, &wfds); + if (ioh->fd > nfds) + nfds = ioh->fd; + } + } + + tv.tv_sec = 0; +#ifdef _WIN32 + tv.tv_usec = 0; +#else + tv.tv_usec = timeout * 1000; +#endif +#if defined(CONFIG_SLIRP) + if (slirp_inited) { + slirp_select_fill(&nfds, &rfds, &wfds, &xfds); + } +#endif + ret = select(nfds + 1, &rfds, &wfds, &xfds, &tv); + if (ret > 0) { + IOHandlerRecord **pioh; + + for(ioh = first_io_handler; ioh != NULL; ioh = ioh->next) { + if (!ioh->deleted && ioh->fd_read && FD_ISSET(ioh->fd, &rfds)) { + ioh->fd_read(ioh->opaque); + } + if (!ioh->deleted && ioh->fd_write && FD_ISSET(ioh->fd, &wfds)) { + ioh->fd_write(ioh->opaque); + } + } + + /* remove deleted IO handlers */ + pioh = &first_io_handler; + while (*pioh) { + ioh = *pioh; + if (ioh->deleted) { + *pioh = ioh->next; + qemu_free(ioh); + } else + pioh = &ioh->next; + } + } +#if defined(CONFIG_SLIRP) + if (slirp_inited) { + if (ret < 0) { + FD_ZERO(&rfds); + FD_ZERO(&wfds); + FD_ZERO(&xfds); + } + slirp_select_poll(&rfds, &wfds, &xfds); + } +#endif + qemu_aio_poll(); + + if (vm_running) { + qemu_run_timers(&active_timers[QEMU_TIMER_VIRTUAL], + qemu_get_clock(vm_clock)); + /* run dma transfers, if any */ + DMA_run(); + } + + /* real time timers */ + qemu_run_timers(&active_timers[QEMU_TIMER_REALTIME], + qemu_get_clock(rt_clock)); + + if (alarm_timer->flags & ALARM_FLAG_EXPIRED) { + alarm_timer->flags &= ~(ALARM_FLAG_EXPIRED); + qemu_rearm_alarm_timer(alarm_timer); + } + + /* Check bottom-halves last in case any of the earlier events triggered + them. */ + qemu_bh_poll(); + +} + +static int main_loop(void) +{ + int ret, timeout; +#ifdef CONFIG_PROFILER + int64_t ti; +#endif + CPUState *env; + + cur_cpu = first_cpu; + next_cpu = cur_cpu->next_cpu ?: first_cpu; + for(;;) { + if (vm_running) { + + for(;;) { + /* get next cpu */ + env = next_cpu; +#ifdef CONFIG_PROFILER + ti = profile_getclock(); +#endif + ret = cpu_exec(env); +#ifdef CONFIG_PROFILER + qemu_time += profile_getclock() - ti; +#endif + next_cpu = env->next_cpu ?: first_cpu; + if (event_pending) { + ret = EXCP_INTERRUPT; + event_pending = 0; + break; + } + if (ret == EXCP_HLT) { + /* Give the next CPU a chance to run. */ + cur_cpu = env; + continue; + } + if (ret != EXCP_HALTED) + break; + /* all CPUs are halted ? */ + if (env == cur_cpu) + break; + } + cur_cpu = env; + + if (shutdown_requested) { + ret = EXCP_INTERRUPT; + break; + } + if (reset_requested) { + reset_requested = 0; + qemu_system_reset(); + ret = EXCP_INTERRUPT; + } + if (powerdown_requested) { + powerdown_requested = 0; + qemu_system_powerdown(); + ret = EXCP_INTERRUPT; + } + if (ret == EXCP_DEBUG) { + vm_stop(EXCP_DEBUG); + } + /* If all cpus are halted then wait until the next IRQ */ + /* XXX: use timeout computed from timers */ + if (ret == EXCP_HALTED) + timeout = 10; + else + timeout = 0; + } else { + timeout = 10; + } +#ifdef CONFIG_PROFILER + ti = profile_getclock(); +#endif + main_loop_wait(timeout); +#ifdef CONFIG_PROFILER + dev_time += profile_getclock() - ti; +#endif + } + cpu_disable_ticks(); + return ret; +} + +static void help(int exitcode) +{ + printf("QEMU PC emulator version " QEMU_VERSION ", Copyright (c) 2003-2008 Fabrice Bellard\n" + "usage: %s [options] [disk_image]\n" + "\n" + "'disk_image' is a raw hard image image for IDE hard disk 0\n" + "\n" + "Standard options:\n" + "-M machine select emulated machine (-M ? for list)\n" + "-cpu cpu select CPU (-cpu ? for list)\n" + "-fda/-fdb file use 'file' as floppy disk 0/1 image\n" + "-hda/-hdb file use 'file' as IDE hard disk 0/1 image\n" + "-hdc/-hdd file use 'file' as IDE hard disk 2/3 image\n" + "-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)\n" + "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][index=i]\n" + " [,cyls=c,heads=h,secs=s[,trans=t]][snapshot=on|off]" + " [,cache=on|off]\n" + " use 'file' as a drive image\n" + "-mtdblock file use 'file' as on-board Flash memory image\n" + "-sd file use 'file' as SecureDigital card image\n" + "-pflash file use 'file' as a parallel flash image\n" + "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n" + "-snapshot write to temporary files instead of disk image files\n" +#ifdef CONFIG_SDL + "-no-frame open SDL window without a frame and window decorations\n" + "-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n" + "-no-quit disable SDL window close capability\n" +#endif +#ifdef TARGET_I386 + "-no-fd-bootchk disable boot signature checking for floppy disks\n" +#endif + "-m megs set virtual RAM size to megs MB [default=%d]\n" + "-smp n set the number of CPUs to 'n' [default=1]\n" + "-nographic disable graphical output and redirect serial I/Os to console\n" + "-portrait rotate graphical output 90 deg left (only PXA LCD)\n" +#ifndef _WIN32 + "-k language use keyboard layout (for example \"fr\" for French)\n" +#endif +#ifdef HAS_AUDIO + "-audio-help print list of audio drivers and their options\n" + "-soundhw c1,... enable audio support\n" + " and only specified sound cards (comma separated list)\n" + " use -soundhw ? to get the list of supported cards\n" + " use -soundhw all to enable all of them\n" +#endif + "-localtime set the real time clock to local time [default=utc]\n" + "-full-screen start in full screen\n" +#ifdef TARGET_I386 + "-win2k-hack use it when installing Windows 2000 to avoid a disk full bug\n" +#endif + "-usb enable the USB driver (will be the default soon)\n" + "-usbdevice name add the host or guest USB device 'name'\n" +#if defined(TARGET_PPC) || defined(TARGET_SPARC) + "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n" +#endif + "-name string set the name of the guest\n" + "\n" + "Network options:\n" + "-net nic[,vlan=n][,macaddr=addr][,model=type]\n" + " create a new Network Interface Card and connect it to VLAN 'n'\n" +#ifdef CONFIG_SLIRP + "-net user[,vlan=n][,hostname=host]\n" + " connect the user mode network stack to VLAN 'n' and send\n" + " hostname 'host' to DHCP clients\n" +#endif +#ifdef _WIN32 + "-net tap[,vlan=n],ifname=name\n" + " connect the host TAP network interface to VLAN 'n'\n" +#else + "-net tap[,vlan=n][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n" + " connect the host TAP network interface to VLAN 'n' and use the\n" + " network scripts 'file' (default=%s)\n" + " and 'dfile' (default=%s);\n" + " use '[down]script=no' to disable script execution;\n" + " use 'fd=h' to connect to an already opened TAP interface\n" +#endif + "-net socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]\n" + " connect the vlan 'n' to another VLAN using a socket connection\n" + "-net socket[,vlan=n][,fd=h][,mcast=maddr:port]\n" + " connect the vlan 'n' to multicast maddr and port\n" + "-net none use it alone to have zero network devices; if no -net option\n" + " is provided, the default is '-net nic -net user'\n" + "\n" +#ifdef CONFIG_SLIRP + "-tftp dir allow tftp access to files in dir [-net user]\n" + "-bootp file advertise file in BOOTP replies\n" +#ifndef _WIN32 + "-smb dir allow SMB access to files in 'dir' [-net user]\n" +#endif + "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n" + " redirect TCP or UDP connections from host to guest [-net user]\n" +#endif + "\n" + "Linux boot specific:\n" + "-kernel bzImage use 'bzImage' as kernel image\n" + "-append cmdline use 'cmdline' as kernel command line\n" + "-initrd file use 'file' as initial ram disk\n" + "\n" + "Debug/Expert options:\n" + "-monitor dev redirect the monitor to char device 'dev'\n" + "-serial dev redirect the serial port to char device 'dev'\n" + "-parallel dev redirect the parallel port to char device 'dev'\n" + "-pidfile file Write PID to 'file'\n" + "-S freeze CPU at startup (use 'c' to start execution)\n" + "-s wait gdb connection to port\n" + "-p port set gdb connection port [default=%s]\n" + "-d item1,... output log to %s (use -d ? for a list of log items)\n" + "-hdachs c,h,s[,t] force hard disk 0 physical geometry and the optional BIOS\n" + " translation (t=none or lba) (usually qemu can guess them)\n" + "-L path set the directory for the BIOS, VGA BIOS and keymaps\n" +#ifdef USE_KQEMU + "-kernel-kqemu enable KQEMU full virtualization (default is user mode only)\n" + "-no-kqemu disable KQEMU kernel module usage\n" +#endif +#ifdef TARGET_I386 + "-std-vga simulate a standard VGA card with VESA Bochs Extensions\n" + " (default is CL-GD5446 PCI VGA)\n" + "-no-acpi disable ACPI\n" +#endif + "-no-reboot exit instead of rebooting\n" + "-loadvm file start right away with a saved state (loadvm in monitor)\n" + "-vnc display start a VNC server on display\n" +#ifndef _WIN32 + "-daemonize daemonize QEMU after initializing\n" +#endif + "-option-rom rom load a file, rom, into the option ROM space\n" +#ifdef TARGET_SPARC + "-prom-env variable=value set OpenBIOS nvram variables\n" +#endif + "-clock force the use of the given methods for timer alarm.\n" + " To see what timers are available use -clock help\n" + "\n" + "During emulation, the following keys are useful:\n" + "ctrl-alt-f toggle full screen\n" + "ctrl-alt-n switch to virtual console 'n'\n" + "ctrl-alt toggle mouse and keyboard grab\n" + "\n" + "When using -nographic, press 'ctrl-a h' to get some help.\n" + , + "qemu", + DEFAULT_RAM_SIZE, +#ifndef _WIN32 + DEFAULT_NETWORK_SCRIPT, + DEFAULT_NETWORK_DOWN_SCRIPT, +#endif + DEFAULT_GDBSTUB_PORT, + "/tmp/qemu.log"); + exit(exitcode); +} + +#define HAS_ARG 0x0001 + +enum { + QEMU_OPTION_h, + + QEMU_OPTION_M, + QEMU_OPTION_cpu, + QEMU_OPTION_fda, + QEMU_OPTION_fdb, + QEMU_OPTION_hda, + QEMU_OPTION_hdb, + QEMU_OPTION_hdc, + QEMU_OPTION_hdd, + QEMU_OPTION_drive, + QEMU_OPTION_cdrom, + QEMU_OPTION_mtdblock, + QEMU_OPTION_sd, + QEMU_OPTION_pflash, + QEMU_OPTION_boot, + QEMU_OPTION_snapshot, +#ifdef TARGET_I386 + QEMU_OPTION_no_fd_bootchk, +#endif + QEMU_OPTION_m, + QEMU_OPTION_nographic, + QEMU_OPTION_portrait, +#ifdef HAS_AUDIO + QEMU_OPTION_audio_help, + QEMU_OPTION_soundhw, +#endif + + QEMU_OPTION_net, + QEMU_OPTION_tftp, + QEMU_OPTION_bootp, + QEMU_OPTION_smb, + QEMU_OPTION_redir, + + QEMU_OPTION_kernel, + QEMU_OPTION_append, + QEMU_OPTION_initrd, + + QEMU_OPTION_S, + QEMU_OPTION_s, + QEMU_OPTION_p, + QEMU_OPTION_d, + QEMU_OPTION_hdachs, + QEMU_OPTION_L, + QEMU_OPTION_bios, + QEMU_OPTION_no_code_copy, + QEMU_OPTION_k, + QEMU_OPTION_localtime, + QEMU_OPTION_cirrusvga, + QEMU_OPTION_vmsvga, + QEMU_OPTION_g, + QEMU_OPTION_std_vga, + QEMU_OPTION_echr, + QEMU_OPTION_monitor, + QEMU_OPTION_serial, + QEMU_OPTION_parallel, + QEMU_OPTION_loadvm, + QEMU_OPTION_full_screen, + QEMU_OPTION_no_frame, + QEMU_OPTION_alt_grab, + QEMU_OPTION_no_quit, + QEMU_OPTION_pidfile, + QEMU_OPTION_no_kqemu, + QEMU_OPTION_kernel_kqemu, + QEMU_OPTION_win2k_hack, + QEMU_OPTION_usb, + QEMU_OPTION_usbdevice, + QEMU_OPTION_smp, + QEMU_OPTION_vnc, + QEMU_OPTION_no_acpi, + QEMU_OPTION_no_reboot, + QEMU_OPTION_show_cursor, + QEMU_OPTION_daemonize, + QEMU_OPTION_option_rom, + QEMU_OPTION_semihosting, + QEMU_OPTION_name, + QEMU_OPTION_prom_env, + QEMU_OPTION_old_param, + QEMU_OPTION_clock, + QEMU_OPTION_startdate, +}; + +typedef struct QEMUOption { + const char *name; + int flags; + int index; +} QEMUOption; + +const QEMUOption qemu_options[] = { + { "h", 0, QEMU_OPTION_h }, + { "help", 0, QEMU_OPTION_h }, + + { "M", HAS_ARG, QEMU_OPTION_M }, + { "cpu", HAS_ARG, QEMU_OPTION_cpu }, + { "fda", HAS_ARG, QEMU_OPTION_fda }, + { "fdb", HAS_ARG, QEMU_OPTION_fdb }, + { "hda", HAS_ARG, QEMU_OPTION_hda }, + { "hdb", HAS_ARG, QEMU_OPTION_hdb }, + { "hdc", HAS_ARG, QEMU_OPTION_hdc }, + { "hdd", HAS_ARG, QEMU_OPTION_hdd }, + { "drive", HAS_ARG, QEMU_OPTION_drive }, + { "cdrom", HAS_ARG, QEMU_OPTION_cdrom }, + { "mtdblock", HAS_ARG, QEMU_OPTION_mtdblock }, + { "sd", HAS_ARG, QEMU_OPTION_sd }, + { "pflash", HAS_ARG, QEMU_OPTION_pflash }, + { "boot", HAS_ARG, QEMU_OPTION_boot }, + { "snapshot", 0, QEMU_OPTION_snapshot }, +#ifdef TARGET_I386 + { "no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk }, +#endif + { "m", HAS_ARG, QEMU_OPTION_m }, + { "nographic", 0, QEMU_OPTION_nographic }, + { "portrait", 0, QEMU_OPTION_portrait }, + { "k", HAS_ARG, QEMU_OPTION_k }, +#ifdef HAS_AUDIO + { "audio-help", 0, QEMU_OPTION_audio_help }, + { "soundhw", HAS_ARG, QEMU_OPTION_soundhw }, +#endif + + { "net", HAS_ARG, QEMU_OPTION_net}, +#ifdef CONFIG_SLIRP + { "tftp", HAS_ARG, QEMU_OPTION_tftp }, + { "bootp", HAS_ARG, QEMU_OPTION_bootp }, +#ifndef _WIN32 + { "smb", HAS_ARG, QEMU_OPTION_smb }, +#endif + { "redir", HAS_ARG, QEMU_OPTION_redir }, +#endif + + { "kernel", HAS_ARG, QEMU_OPTION_kernel }, + { "append", HAS_ARG, QEMU_OPTION_append }, + { "initrd", HAS_ARG, QEMU_OPTION_initrd }, + + { "S", 0, QEMU_OPTION_S }, + { "s", 0, QEMU_OPTION_s }, + { "p", HAS_ARG, QEMU_OPTION_p }, + { "d", HAS_ARG, QEMU_OPTION_d }, + { "hdachs", HAS_ARG, QEMU_OPTION_hdachs }, + { "L", HAS_ARG, QEMU_OPTION_L }, + { "bios", HAS_ARG, QEMU_OPTION_bios }, + { "no-code-copy", 0, QEMU_OPTION_no_code_copy }, +#ifdef USE_KQEMU + { "no-kqemu", 0, QEMU_OPTION_no_kqemu }, + { "kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu }, +#endif +#if defined(TARGET_PPC) || defined(TARGET_SPARC) + { "g", 1, QEMU_OPTION_g }, +#endif + { "localtime", 0, QEMU_OPTION_localtime }, + { "std-vga", 0, QEMU_OPTION_std_vga }, + { "echr", HAS_ARG, QEMU_OPTION_echr }, + { "monitor", HAS_ARG, QEMU_OPTION_monitor }, + { "serial", HAS_ARG, QEMU_OPTION_serial }, + { "parallel", HAS_ARG, QEMU_OPTION_parallel }, + { "loadvm", HAS_ARG, QEMU_OPTION_loadvm }, + { "full-screen", 0, QEMU_OPTION_full_screen }, +#ifdef CONFIG_SDL + { "no-frame", 0, QEMU_OPTION_no_frame }, + { "alt-grab", 0, QEMU_OPTION_alt_grab }, + { "no-quit", 0, QEMU_OPTION_no_quit }, +#endif + { "pidfile", HAS_ARG, QEMU_OPTION_pidfile }, + { "win2k-hack", 0, QEMU_OPTION_win2k_hack }, + { "usbdevice", HAS_ARG, QEMU_OPTION_usbdevice }, + { "smp", HAS_ARG, QEMU_OPTION_smp }, + { "vnc", HAS_ARG, QEMU_OPTION_vnc }, + + /* temporary options */ + { "usb", 0, QEMU_OPTION_usb }, + { "cirrusvga", 0, QEMU_OPTION_cirrusvga }, + { "vmwarevga", 0, QEMU_OPTION_vmsvga }, + { "no-acpi", 0, QEMU_OPTION_no_acpi }, + { "no-reboot", 0, QEMU_OPTION_no_reboot }, + { "show-cursor", 0, QEMU_OPTION_show_cursor }, + { "daemonize", 0, QEMU_OPTION_daemonize }, + { "option-rom", HAS_ARG, QEMU_OPTION_option_rom }, +#if defined(TARGET_ARM) || defined(TARGET_M68K) + { "semihosting", 0, QEMU_OPTION_semihosting }, +#endif + { "name", HAS_ARG, QEMU_OPTION_name }, +#if defined(TARGET_SPARC) + { "prom-env", HAS_ARG, QEMU_OPTION_prom_env }, +#endif +#if defined(TARGET_ARM) + { "old-param", 0, QEMU_OPTION_old_param }, +#endif + { "clock", HAS_ARG, QEMU_OPTION_clock }, + { "startdate", HAS_ARG, QEMU_OPTION_startdate }, + { NULL }, +}; + +/* password input */ + +int qemu_key_check(BlockDriverState *bs, const char *name) +{ + char password[256]; + int i; + + if (!bdrv_is_encrypted(bs)) + return 0; + + term_printf("%s is encrypted.\n", name); + for(i = 0; i < 3; i++) { + monitor_readline("Password: ", 1, password, sizeof(password)); + if (bdrv_set_key(bs, password) == 0) + return 0; + term_printf("invalid password\n"); + } + return -EPERM; +} + +static BlockDriverState *get_bdrv(int index) +{ + if (index > nb_drives) + return NULL; + return drives_table[index].bdrv; +} + +static void read_passwords(void) +{ + BlockDriverState *bs; + int i; + + for(i = 0; i < 6; i++) { + bs = get_bdrv(i); + if (bs) + qemu_key_check(bs, bdrv_get_device_name(bs)); + } +} + +/* XXX: currently we cannot use simultaneously different CPUs */ +static void register_machines(void) +{ +#if defined(TARGET_I386) + qemu_register_machine(&pc_machine); + qemu_register_machine(&isapc_machine); +#elif defined(TARGET_PPC) + qemu_register_machine(&heathrow_machine); + qemu_register_machine(&core99_machine); + qemu_register_machine(&prep_machine); + qemu_register_machine(&ref405ep_machine); + qemu_register_machine(&taihu_machine); +#elif defined(TARGET_MIPS) + qemu_register_machine(&mips_machine); + qemu_register_machine(&mips_malta_machine); + qemu_register_machine(&mips_pica61_machine); + qemu_register_machine(&mips_mipssim_machine); +#elif defined(TARGET_SPARC) +#ifdef TARGET_SPARC64 + qemu_register_machine(&sun4u_machine); +#else + qemu_register_machine(&ss5_machine); + qemu_register_machine(&ss10_machine); + qemu_register_machine(&ss600mp_machine); + qemu_register_machine(&ss20_machine); + qemu_register_machine(&ss2_machine); + qemu_register_machine(&ss1000_machine); + qemu_register_machine(&ss2000_machine); +#endif +#elif defined(TARGET_ARM) + qemu_register_machine(&integratorcp_machine); + qemu_register_machine(&versatilepb_machine); + qemu_register_machine(&versatileab_machine); + qemu_register_machine(&realview_machine); + qemu_register_machine(&akitapda_machine); + qemu_register_machine(&spitzpda_machine); + qemu_register_machine(&borzoipda_machine); + qemu_register_machine(&terrierpda_machine); + qemu_register_machine(&palmte_machine); + qemu_register_machine(&lm3s811evb_machine); + qemu_register_machine(&lm3s6965evb_machine); + qemu_register_machine(&connex_machine); + qemu_register_machine(&verdex_machine); + qemu_register_machine(&mainstone2_machine); + qemu_register_machine(&mc1322x_machine); +#elif defined(TARGET_SH4) + qemu_register_machine(&shix_machine); + qemu_register_machine(&r2d_machine); +#elif defined(TARGET_ALPHA) + /* XXX: TODO */ +#elif defined(TARGET_M68K) + qemu_register_machine(&mcf5208evb_machine); + qemu_register_machine(&an5206_machine); + qemu_register_machine(&dummy_m68k_machine); +#elif defined(TARGET_CRIS) + qemu_register_machine(&bareetraxfs_machine); +#else +#error unsupported CPU +#endif +} + +#ifdef HAS_AUDIO +struct soundhw soundhw[] = { +#ifdef HAS_AUDIO_CHOICE +#ifdef TARGET_I386 + { + "pcspk", + "PC speaker", + 0, + 1, + { .init_isa = pcspk_audio_init } + }, +#endif + { + "sb16", + "Creative Sound Blaster 16", + 0, + 1, + { .init_isa = SB16_init } + }, + +#ifdef CONFIG_ADLIB + { + "adlib", +#ifdef HAS_YMF262 + "Yamaha YMF262 (OPL3)", +#else + "Yamaha YM3812 (OPL2)", +#endif + 0, + 1, + { .init_isa = Adlib_init } + }, +#endif + +#ifdef CONFIG_GUS + { + "gus", + "Gravis Ultrasound GF1", + 0, + 1, + { .init_isa = GUS_init } + }, +#endif + + { + "es1370", + "ENSONIQ AudioPCI ES1370", + 0, + 0, + { .init_pci = es1370_init } + }, +#endif + + { NULL, NULL, 0, 0, { NULL } } +}; + +static void select_soundhw (const char *optarg) +{ + struct soundhw *c; + + if (*optarg == '?') { + show_valid_cards: + + printf ("Valid sound card names (comma separated):\n"); + for (c = soundhw; c->name; ++c) { + printf ("%-11s %s\n", c->name, c->descr); + } + printf ("\n-soundhw all will enable all of the above\n"); + exit (*optarg != '?'); + } + else { + size_t l; + const char *p; + char *e; + int bad_card = 0; + + if (!strcmp (optarg, "all")) { + for (c = soundhw; c->name; ++c) { + c->enabled = 1; + } + return; + } + + p = optarg; + while (*p) { + e = strchr (p, ','); + l = !e ? strlen (p) : (size_t) (e - p); + + for (c = soundhw; c->name; ++c) { + if (!strncmp (c->name, p, l)) { + c->enabled = 1; + break; + } + } + + if (!c->name) { + if (l > 80) { + fprintf (stderr, + "Unknown sound card name (too big to show)\n"); + } + else { + fprintf (stderr, "Unknown sound card name `%.*s'\n", + (int) l, p); + } + bad_card = 1; + } + p += l + (e != NULL); + } + + if (bad_card) + goto show_valid_cards; + } +} +#endif + +#ifdef _WIN32 +static BOOL WINAPI qemu_ctrl_handler(DWORD type) +{ + exit(STATUS_CONTROL_C_EXIT); + return TRUE; +} +#endif + +#define MAX_NET_CLIENTS 32 + +int main(int argc, char **argv) +{ +#ifdef CONFIG_GDBSTUB + int use_gdbstub; + const char *gdbstub_port; +#endif + uint32_t boot_devices_bitmap = 0; + int i; + int snapshot, linux_boot, net_boot; + const char *initrd_filename; + const char *kernel_filename, *kernel_cmdline; + const char *boot_devices = ""; + DisplayState *ds = &display_state; + int cyls, heads, secs, translation; + char net_clients[MAX_NET_CLIENTS][256]; + int nb_net_clients; + int hda_index; + int optind; + const char *r, *optarg; + CharDriverState *monitor_hd; + char monitor_device[128]; + char serial_devices[MAX_SERIAL_PORTS][128]; + int serial_device_index; + char parallel_devices[MAX_PARALLEL_PORTS][128]; + int parallel_device_index; + const char *loadvm = NULL; + QEMUMachine *machine; + const char *cpu_model; + char usb_devices[MAX_USB_CMDLINE][128]; + int usb_devices_index; + int fds[2]; + const char *pid_file = NULL; + VLANState *vlan; + + LIST_INIT (&vm_change_state_head); +#ifndef _WIN32 + { + struct sigaction act; + sigfillset(&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = SIG_IGN; + sigaction(SIGPIPE, &act, NULL); + } +#else + SetConsoleCtrlHandler(qemu_ctrl_handler, TRUE); + /* Note: cpu_interrupt() is currently not SMP safe, so we force + QEMU to run on a single CPU */ + { + HANDLE h; + DWORD mask, smask; + int i; + h = GetCurrentProcess(); + if (GetProcessAffinityMask(h, &mask, &smask)) { + for(i = 0; i < 32; i++) { + if (mask & (1 << i)) + break; + } + if (i != 32) { + mask = 1 << i; + SetProcessAffinityMask(h, mask); + } + } + } +#endif + + register_machines(); + machine = first_machine; + cpu_model = NULL; + initrd_filename = NULL; + ram_size = DEFAULT_RAM_SIZE * 1024 * 1024; + vga_ram_size = VGA_RAM_SIZE; +#ifdef CONFIG_GDBSTUB + use_gdbstub = 0; + gdbstub_port = DEFAULT_GDBSTUB_PORT; +#endif + snapshot = 0; + nographic = 0; + kernel_filename = NULL; + kernel_cmdline = ""; + cyls = heads = secs = 0; + translation = BIOS_ATA_TRANSLATION_AUTO; + pstrcpy(monitor_device, sizeof(monitor_device), "vc"); + + pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "vc"); + for(i = 1; i < MAX_SERIAL_PORTS; i++) + serial_devices[i][0] = '\0'; + serial_device_index = 0; + + pstrcpy(parallel_devices[0], sizeof(parallel_devices[0]), "vc"); + for(i = 1; i < MAX_PARALLEL_PORTS; i++) + parallel_devices[i][0] = '\0'; + parallel_device_index = 0; + + usb_devices_index = 0; + + nb_net_clients = 0; + nb_drives = 0; + nb_drives_opt = 0; + hda_index = -1; + + nb_nics = 0; + /* default mac address of the first network interface */ + + optind = 1; + for(;;) { + if (optind >= argc) + break; + r = argv[optind]; + if (r[0] != '-') { + hda_index = drive_add(HD_ALIAS, argv[optind++], 0); + } else { + const QEMUOption *popt; + + optind++; + /* Treat --foo the same as -foo. */ + if (r[1] == '-') + r++; + popt = qemu_options; + for(;;) { + if (!popt->name) { + fprintf(stderr, "%s: invalid option -- '%s'\n", + argv[0], r); + exit(1); + } + if (!strcmp(popt->name, r + 1)) + break; + popt++; + } + if (popt->flags & HAS_ARG) { + if (optind >= argc) { + fprintf(stderr, "%s: option '%s' requires an argument\n", + argv[0], r); + exit(1); + } + optarg = argv[optind++]; + } else { + optarg = NULL; + } + + switch(popt->index) { + case QEMU_OPTION_M: + machine = find_machine(optarg); + if (!machine) { + QEMUMachine *m; + printf("Supported machines are:\n"); + for(m = first_machine; m != NULL; m = m->next) { + printf("%-10s %s%s\n", + m->name, m->desc, + m == first_machine ? " (default)" : ""); + } + exit(*optarg != '?'); + } + break; + case QEMU_OPTION_cpu: + /* hw initialization will check this */ + if (*optarg == '?') { +/* XXX: implement xxx_cpu_list for targets that still miss it */ +#if defined(cpu_list) + cpu_list(stdout, &fprintf); +#endif + exit(0); + } else { + cpu_model = optarg; + } + break; + case QEMU_OPTION_initrd: + initrd_filename = optarg; + break; + case QEMU_OPTION_hda: + if (cyls == 0) + hda_index = drive_add(HD_ALIAS, optarg, 0); + else + hda_index = drive_add(HD_ALIAS + ",cyls=%d,heads=%d,secs=%d%s", + optarg, 0, cyls, heads, secs, + translation == BIOS_ATA_TRANSLATION_LBA ? + ",trans=lba" : + translation == BIOS_ATA_TRANSLATION_NONE ? + ",trans=none" : ""); + break; + case QEMU_OPTION_hdb: + case QEMU_OPTION_hdc: + case QEMU_OPTION_hdd: + drive_add(HD_ALIAS, optarg, popt->index - QEMU_OPTION_hda); + break; + case QEMU_OPTION_drive: + drive_add("%s", optarg); + break; + case QEMU_OPTION_mtdblock: + drive_add(MTD_ALIAS, optarg); + break; + case QEMU_OPTION_sd: + drive_add("file=\"%s\"," SD_ALIAS, optarg); + break; + case QEMU_OPTION_pflash: + drive_add(PFLASH_ALIAS, optarg); + break; + case QEMU_OPTION_snapshot: + snapshot = 1; + break; + case QEMU_OPTION_hdachs: + { + const char *p; + p = optarg; + cyls = strtol(p, (char **)&p, 0); + if (cyls < 1 || cyls > 16383) + goto chs_fail; + if (*p != ',') + goto chs_fail; + p++; + heads = strtol(p, (char **)&p, 0); + if (heads < 1 || heads > 16) + goto chs_fail; + if (*p != ',') + goto chs_fail; + p++; + secs = strtol(p, (char **)&p, 0); + if (secs < 1 || secs > 63) + goto chs_fail; + if (*p == ',') { + p++; + if (!strcmp(p, "none")) + translation = BIOS_ATA_TRANSLATION_NONE; + else if (!strcmp(p, "lba")) + translation = BIOS_ATA_TRANSLATION_LBA; + else if (!strcmp(p, "auto")) + translation = BIOS_ATA_TRANSLATION_AUTO; + else + goto chs_fail; + } else if (*p != '\0') { + chs_fail: + fprintf(stderr, "qemu: invalid physical CHS format\n"); + exit(1); + } + if (hda_index != -1) + snprintf(drives_opt[hda_index] + + strlen(drives_opt[hda_index]), + sizeof(drives_opt[0]) - + strlen(drives_opt[hda_index]), + ",cyls=%d,heads=%d,secs=%d%s", + cyls, heads, secs, + translation == BIOS_ATA_TRANSLATION_LBA ? + ",trans=lba" : + translation == BIOS_ATA_TRANSLATION_NONE ? + ",trans=none" : ""); + } + break; + case QEMU_OPTION_nographic: + pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "stdio"); + pstrcpy(parallel_devices[0], sizeof(parallel_devices[0]), "null"); + pstrcpy(monitor_device, sizeof(monitor_device), "stdio"); + nographic = 1; + break; + case QEMU_OPTION_portrait: + graphic_rotate = 1; + break; + case QEMU_OPTION_kernel: + kernel_filename = optarg; + break; + case QEMU_OPTION_append: + kernel_cmdline = optarg; + break; + case QEMU_OPTION_cdrom: + drive_add("file=\"%s\"," CDROM_ALIAS, optarg); + break; + case QEMU_OPTION_boot: + boot_devices = optarg; + /* We just do some generic consistency checks */ + { + /* Could easily be extended to 64 devices if needed */ + const char *p; + + boot_devices_bitmap = 0; + for (p = boot_devices; *p != '\0'; p++) { + /* Allowed boot devices are: + * a b : floppy disk drives + * c ... f : IDE disk drives + * g ... m : machine implementation dependant drives + * n ... p : network devices + * It's up to each machine implementation to check + * if the given boot devices match the actual hardware + * implementation and firmware features. + */ + if (*p < 'a' || *p > 'q') { + fprintf(stderr, "Invalid boot device '%c'\n", *p); + exit(1); + } + if (boot_devices_bitmap & (1 << (*p - 'a'))) { + fprintf(stderr, + "Boot device '%c' was given twice\n",*p); + exit(1); + } + boot_devices_bitmap |= 1 << (*p - 'a'); + } + } + break; + case QEMU_OPTION_fda: + case QEMU_OPTION_fdb: + drive_add("file=\"%s\"," FD_ALIAS, optarg, + popt->index - QEMU_OPTION_fda); + break; +#ifdef TARGET_I386 + case QEMU_OPTION_no_fd_bootchk: + fd_bootchk = 0; + break; +#endif + case QEMU_OPTION_no_code_copy: + code_copy_enabled = 0; + break; + case QEMU_OPTION_net: + if (nb_net_clients >= MAX_NET_CLIENTS) { + fprintf(stderr, "qemu: too many network clients\n"); + exit(1); + } + pstrcpy(net_clients[nb_net_clients], + sizeof(net_clients[0]), + optarg); + nb_net_clients++; + break; +#ifdef CONFIG_SLIRP + case QEMU_OPTION_tftp: + tftp_prefix = optarg; + break; + case QEMU_OPTION_bootp: + bootp_filename = optarg; + break; +#ifndef _WIN32 + case QEMU_OPTION_smb: + net_slirp_smb(optarg); + break; +#endif + case QEMU_OPTION_redir: + net_slirp_redir(optarg); + break; +#endif +#ifdef HAS_AUDIO + case QEMU_OPTION_audio_help: + AUD_help (); + exit (0); + break; + case QEMU_OPTION_soundhw: + select_soundhw (optarg); + break; +#endif + case QEMU_OPTION_h: + help(0); + break; + case QEMU_OPTION_m: + ram_size = atoi(optarg) * 1024 * 1024; + if (ram_size <= 0) + help(1); + if (ram_size > PHYS_RAM_MAX_SIZE) { + fprintf(stderr, "qemu: at most %d MB RAM can be simulated\n", + PHYS_RAM_MAX_SIZE / (1024 * 1024)); + exit(1); + } + break; + case QEMU_OPTION_d: + { + int mask; + CPULogItem *item; + + mask = cpu_str_to_log_mask(optarg); + if (!mask) { + printf("Log items (comma separated):\n"); + for(item = cpu_log_items; item->mask != 0; item++) { + printf("%-10s %s\n", item->name, item->help); + } + exit(1); + } + cpu_set_log(mask); + } + break; +#ifdef CONFIG_GDBSTUB + case QEMU_OPTION_s: + use_gdbstub = 1; + break; + case QEMU_OPTION_p: + gdbstub_port = optarg; + break; +#endif + case QEMU_OPTION_L: + bios_dir = optarg; + break; + case QEMU_OPTION_bios: + bios_name = optarg; + break; + case QEMU_OPTION_S: + autostart = 0; + break; + case QEMU_OPTION_k: + keyboard_layout = optarg; + break; + case QEMU_OPTION_localtime: + rtc_utc = 0; + break; + case QEMU_OPTION_cirrusvga: + cirrus_vga_enabled = 1; + vmsvga_enabled = 0; + break; + case QEMU_OPTION_vmsvga: + cirrus_vga_enabled = 0; + vmsvga_enabled = 1; + break; + case QEMU_OPTION_std_vga: + cirrus_vga_enabled = 0; + vmsvga_enabled = 0; + break; + case QEMU_OPTION_g: + { + const char *p; + int w, h, depth; + p = optarg; + w = strtol(p, (char **)&p, 10); + if (w <= 0) { + graphic_error: + fprintf(stderr, "qemu: invalid resolution or depth\n"); + exit(1); + } + if (*p != 'x') + goto graphic_error; + p++; + h = strtol(p, (char **)&p, 10); + if (h <= 0) + goto graphic_error; + if (*p == 'x') { + p++; + depth = strtol(p, (char **)&p, 10); + if (depth != 8 && depth != 15 && depth != 16 && + depth != 24 && depth != 32) + goto graphic_error; + } else if (*p == '\0') { + depth = graphic_depth; + } else { + goto graphic_error; + } + + graphic_width = w; + graphic_height = h; + graphic_depth = depth; + } + break; + case QEMU_OPTION_echr: + { + char *r; + term_escape_char = strtol(optarg, &r, 0); + if (r == optarg) + printf("Bad argument to echr\n"); + break; + } + case QEMU_OPTION_monitor: + pstrcpy(monitor_device, sizeof(monitor_device), optarg); + break; + case QEMU_OPTION_serial: + if (serial_device_index >= MAX_SERIAL_PORTS) { + fprintf(stderr, "qemu: too many serial ports\n"); + exit(1); + } + pstrcpy(serial_devices[serial_device_index], + sizeof(serial_devices[0]), optarg); + serial_device_index++; + break; + case QEMU_OPTION_parallel: + if (parallel_device_index >= MAX_PARALLEL_PORTS) { + fprintf(stderr, "qemu: too many parallel ports\n"); + exit(1); + } + pstrcpy(parallel_devices[parallel_device_index], + sizeof(parallel_devices[0]), optarg); + parallel_device_index++; + break; + case QEMU_OPTION_loadvm: + loadvm = optarg; + break; + case QEMU_OPTION_full_screen: + full_screen = 1; + break; +#ifdef CONFIG_SDL + case QEMU_OPTION_no_frame: + no_frame = 1; + break; + case QEMU_OPTION_alt_grab: + alt_grab = 1; + break; + case QEMU_OPTION_no_quit: + no_quit = 1; + break; +#endif + case QEMU_OPTION_pidfile: + pid_file = optarg; + break; +#ifdef TARGET_I386 + case QEMU_OPTION_win2k_hack: + win2k_install_hack = 1; + break; +#endif +#ifdef USE_KQEMU + case QEMU_OPTION_no_kqemu: + kqemu_allowed = 0; + break; + case QEMU_OPTION_kernel_kqemu: + kqemu_allowed = 2; + break; +#endif + case QEMU_OPTION_usb: + usb_enabled = 1; + break; + case QEMU_OPTION_usbdevice: + usb_enabled = 1; + if (usb_devices_index >= MAX_USB_CMDLINE) { + fprintf(stderr, "Too many USB devices\n"); + exit(1); + } + pstrcpy(usb_devices[usb_devices_index], + sizeof(usb_devices[usb_devices_index]), + optarg); + usb_devices_index++; + break; + case QEMU_OPTION_smp: + smp_cpus = atoi(optarg); + if (smp_cpus < 1 || smp_cpus > MAX_CPUS) { + fprintf(stderr, "Invalid number of CPUs\n"); + exit(1); + } + break; + case QEMU_OPTION_vnc: + vnc_display = optarg; + break; + case QEMU_OPTION_no_acpi: + acpi_enabled = 0; + break; + case QEMU_OPTION_no_reboot: + no_reboot = 1; + break; + case QEMU_OPTION_show_cursor: + cursor_hide = 0; + break; + case QEMU_OPTION_daemonize: + daemonize = 1; + break; + case QEMU_OPTION_option_rom: + if (nb_option_roms >= MAX_OPTION_ROMS) { + fprintf(stderr, "Too many option ROMs\n"); + exit(1); + } + option_rom[nb_option_roms] = optarg; + nb_option_roms++; + break; + case QEMU_OPTION_semihosting: + semihosting_enabled = 1; + break; + case QEMU_OPTION_name: + qemu_name = optarg; + break; +#ifdef TARGET_SPARC + case QEMU_OPTION_prom_env: + if (nb_prom_envs >= MAX_PROM_ENVS) { + fprintf(stderr, "Too many prom variables\n"); + exit(1); + } + prom_envs[nb_prom_envs] = optarg; + nb_prom_envs++; + break; +#endif +#ifdef TARGET_ARM + case QEMU_OPTION_old_param: + old_param = 1; +#endif + case QEMU_OPTION_clock: + configure_alarms(optarg); + break; + case QEMU_OPTION_startdate: + { + struct tm tm; + if (!strcmp(optarg, "now")) { + rtc_start_date = -1; + } else { + if (sscanf(optarg, "%d-%d-%dT%d:%d:%d", + &tm.tm_year, + &tm.tm_mon, + &tm.tm_mday, + &tm.tm_hour, + &tm.tm_min, + &tm.tm_sec) == 6) { + /* OK */ + } else if (sscanf(optarg, "%d-%d-%d", + &tm.tm_year, + &tm.tm_mon, + &tm.tm_mday) == 3) { + tm.tm_hour = 0; + tm.tm_min = 0; + tm.tm_sec = 0; + } else { + goto date_fail; + } + tm.tm_year -= 1900; + tm.tm_mon--; + rtc_start_date = mktimegm(&tm); + if (rtc_start_date == -1) { + date_fail: + fprintf(stderr, "Invalid date format. Valid format are:\n" + "'now' or '2006-06-17T16:01:21' or '2006-06-17'\n"); + exit(1); + } + } + } + break; + } + } + } + +#ifndef _WIN32 + if (daemonize && !nographic && vnc_display == NULL) { + fprintf(stderr, "Can only daemonize if using -nographic or -vnc\n"); + daemonize = 0; + } + + if (daemonize) { + pid_t pid; + + if (pipe(fds) == -1) + exit(1); + + pid = fork(); + if (pid > 0) { + uint8_t status; + ssize_t len; + + close(fds[1]); + + again: + len = read(fds[0], &status, 1); + if (len == -1 && (errno == EINTR)) + goto again; + + if (len != 1) + exit(1); + else if (status == 1) { + fprintf(stderr, "Could not acquire pidfile\n"); + exit(1); + } else + exit(0); + } else if (pid < 0) + exit(1); + + setsid(); + + pid = fork(); + if (pid > 0) + exit(0); + else if (pid < 0) + exit(1); + + umask(027); + chdir("/"); + + signal(SIGTSTP, SIG_IGN); + signal(SIGTTOU, SIG_IGN); + signal(SIGTTIN, SIG_IGN); + } +#endif + + if (pid_file && qemu_create_pidfile(pid_file) != 0) { + if (daemonize) { + uint8_t status = 1; + write(fds[1], &status, 1); + } else + fprintf(stderr, "Could not acquire pid file\n"); + exit(1); + } + +#ifdef USE_KQEMU + if (smp_cpus > 1) + kqemu_allowed = 0; +#endif + linux_boot = (kernel_filename != NULL); + net_boot = (boot_devices_bitmap >> ('n' - 'a')) & 0xF; + + /* XXX: this should not be: some embedded targets just have flash */ + if (!linux_boot && net_boot == 0 && + nb_drives_opt == 0) + help(1); + + /* boot to floppy or the default cd if no hard disk defined yet */ + if (!boot_devices[0]) { + boot_devices = "cad"; + } + setvbuf(stdout, NULL, _IOLBF, 0); + + init_timers(); + init_timer_alarm(); + qemu_aio_init(); + +#ifdef _WIN32 + socket_init(); +#endif + + /* init network clients */ + if (nb_net_clients == 0) { + /* if no clients, we use a default config */ + pstrcpy(net_clients[0], sizeof(net_clients[0]), + "nic"); + pstrcpy(net_clients[1], sizeof(net_clients[0]), + "user"); + nb_net_clients = 2; + } + + for(i = 0;i < nb_net_clients; i++) { + if (net_client_init(net_clients[i]) < 0) + exit(1); + } + for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { + if (vlan->nb_guest_devs == 0 && vlan->nb_host_devs == 0) + continue; + if (vlan->nb_guest_devs == 0) { + fprintf(stderr, "Invalid vlan (%d) with no nics\n", vlan->id); + exit(1); + } + if (vlan->nb_host_devs == 0) + fprintf(stderr, + "Warning: vlan %d is not connected to host network\n", + vlan->id); + } + +#ifdef TARGET_I386 + /* XXX: this should be moved in the PC machine instantiation code */ + if (net_boot != 0) { + int netroms = 0; + for (i = 0; i < nb_nics && i < 4; i++) { + const char *model = nd_table[i].model; + char buf[1024]; + if (net_boot & (1 << i)) { + if (model == NULL) + model = "ne2k_pci"; + snprintf(buf, sizeof(buf), "%s/pxe-%s.bin", bios_dir, model); + if (get_image_size(buf) > 0) { + if (nb_option_roms >= MAX_OPTION_ROMS) { + fprintf(stderr, "Too many option ROMs\n"); + exit(1); + } + option_rom[nb_option_roms] = strdup(buf); + nb_option_roms++; + netroms++; + } + } + } + if (netroms == 0) { + fprintf(stderr, "No valid PXE rom found for network device\n"); + exit(1); + } + } +#endif + + /* init the memory */ + phys_ram_size = ram_size + vga_ram_size + MAX_BIOS_SIZE; + + phys_ram_base = qemu_vmalloc(phys_ram_size); + if (!phys_ram_base) { + fprintf(stderr, "Could not allocate physical memory\n"); + exit(1); + } + + bdrv_init(); + + /* we always create the cdrom drive, even if no disk is there */ + + if (nb_drives_opt < MAX_DRIVES) + drive_add(CDROM_ALIAS); + + /* we always create at least one floppy */ + + if (nb_drives_opt < MAX_DRIVES) + drive_add(FD_ALIAS, 0); + + /* we always create one sd slot, even if no card is in it */ + + if (nb_drives_opt < MAX_DRIVES) + drive_add(SD_ALIAS); + + /* open the virtual block devices */ + + for(i = 0; i < nb_drives_opt; i++) + if (drive_init(drives_opt[i], snapshot, machine) == -1) + exit(1); + + register_savevm("timer", 0, 2, timer_save, timer_load, NULL); + register_savevm("ram", 0, 2, ram_save, ram_load, NULL); + + init_ioports(); + + /* terminal init */ + memset(&display_state, 0, sizeof(display_state)); + if (nographic) { + /* nearly nothing to do */ + dumb_display_init(ds); + } else if (vnc_display != NULL) { + vnc_display_init(ds); + if (vnc_display_open(ds, vnc_display) < 0) + exit(1); + } else { +#if defined(CONFIG_SDL) + sdl_display_init(ds, full_screen, no_frame); +#elif defined(CONFIG_COCOA) + cocoa_display_init(ds, full_screen); +#else + dumb_display_init(ds); +#endif + } + + /* Maintain compatibility with multiple stdio monitors */ + if (!strcmp(monitor_device,"stdio")) { + for (i = 0; i < MAX_SERIAL_PORTS; i++) { + if (!strcmp(serial_devices[i],"mon:stdio")) { + monitor_device[0] = '\0'; + break; + } else if (!strcmp(serial_devices[i],"stdio")) { + monitor_device[0] = '\0'; + pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "mon:stdio"); + break; + } + } + } + if (monitor_device[0] != '\0') { + monitor_hd = qemu_chr_open(monitor_device); + if (!monitor_hd) { + fprintf(stderr, "qemu: could not open monitor device '%s'\n", monitor_device); + exit(1); + } + monitor_init(monitor_hd, !nographic); + } + + for(i = 0; i < MAX_SERIAL_PORTS; i++) { + const char *devname = serial_devices[i]; + if (devname[0] != '\0' && strcmp(devname, "none")) { + serial_hds[i] = qemu_chr_open(devname); + if (!serial_hds[i]) { + fprintf(stderr, "qemu: could not open serial device '%s'\n", + devname); + exit(1); + } + if (strstart(devname, "vc", 0)) + qemu_chr_printf(serial_hds[i], "serial%d console\r\n", i); + } + } + + for(i = 0; i < MAX_PARALLEL_PORTS; i++) { + const char *devname = parallel_devices[i]; + if (devname[0] != '\0' && strcmp(devname, "none")) { + parallel_hds[i] = qemu_chr_open(devname); + if (!parallel_hds[i]) { + fprintf(stderr, "qemu: could not open parallel device '%s'\n", + devname); + exit(1); + } + if (strstart(devname, "vc", 0)) + qemu_chr_printf(parallel_hds[i], "parallel%d console\r\n", i); + } + } + + machine->init(ram_size, vga_ram_size, boot_devices, ds, + kernel_filename, kernel_cmdline, initrd_filename, cpu_model); + + /* init USB devices */ + if (usb_enabled) { + for(i = 0; i < usb_devices_index; i++) { + if (usb_device_add(usb_devices[i]) < 0) { + fprintf(stderr, "Warning: could not add USB device %s\n", + usb_devices[i]); + } + } + } + + if (display_state.dpy_refresh) { + display_state.gui_timer = qemu_new_timer(rt_clock, gui_update, &display_state); + qemu_mod_timer(display_state.gui_timer, qemu_get_clock(rt_clock)); + } + +#ifdef CONFIG_GDBSTUB + if (use_gdbstub) { + /* XXX: use standard host:port notation and modify options + accordingly. */ + if (gdbserver_start(gdbstub_port) < 0) { + fprintf(stderr, "qemu: could not open gdbstub device on port '%s'\n", + gdbstub_port); + exit(1); + } + } +#endif + + if (loadvm) + do_loadvm(loadvm); + + { + /* XXX: simplify init */ + read_passwords(); + if (autostart) { + vm_start(); + } + } + + if (daemonize) { + uint8_t status = 0; + ssize_t len; + int fd; + + again1: + len = write(fds[1], &status, 1); + if (len == -1 && (errno == EINTR)) + goto again1; + + if (len != 1) + exit(1); + + TFR(fd = open("/dev/null", O_RDWR)); + if (fd == -1) + exit(1); + + dup2(fd, 0); + dup2(fd, 1); + dup2(fd, 2); + + close(fd); + } + + main_loop(); + quit_timers(); + +#if !defined(_WIN32) + /* close network clients */ + for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { + VLANClientState *vc; + + for(vc = vlan->first_client; vc != NULL; vc = vc->next) { + if (vc->fd_read == tap_receive) { + char ifname[64]; + TAPState *s = vc->opaque; + + if (sscanf(vc->info_str, "tap: ifname=%63s ", ifname) == 1 && + s->down_script[0]) + launch_script(s->down_script, ifname, s->fd); + } + } + } +#endif + return 0; +} From 059eca7bb3f22f78c1258dbdb67286778479bd50 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 10 Apr 2009 12:25:58 -0400 Subject: [PATCH 026/471] update with gdb instructions. --- qemu/README.qemu.mc1322x | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/qemu/README.qemu.mc1322x b/qemu/README.qemu.mc1322x index d334793bc..1d43d576c 100644 --- a/qemu/README.qemu.mc1322x +++ b/qemu/README.qemu.mc1322x @@ -1,4 +1,5 @@ -apt-get source qemu + apt-get source qemu + use these files in place of those in the qemu tree Build qemu @@ -12,4 +13,13 @@ which will load the bin at 0x00400000 and execution will start there (type c). I plan to add a way to load a rom image as well... +Debug with gdb: + +Build gdb for an arm target: + + apt-get source gdb + ./configure --target=arm-linux + make + ./gdb + (gdb) target remote localhost:1234 From d7e94ea555a73e296116dc7c858a923ad4b1374c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 10 Apr 2009 12:25:58 -0400 Subject: [PATCH 027/471] update with gdb instructions. --- qemu/README.qemu.mc1322x | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/qemu/README.qemu.mc1322x b/qemu/README.qemu.mc1322x index d334793bc..1d43d576c 100644 --- a/qemu/README.qemu.mc1322x +++ b/qemu/README.qemu.mc1322x @@ -1,4 +1,5 @@ -apt-get source qemu + apt-get source qemu + use these files in place of those in the qemu tree Build qemu @@ -12,4 +13,13 @@ which will load the bin at 0x00400000 and execution will start there (type c). I plan to add a way to load a rom image as well... +Debug with gdb: + +Build gdb for an arm target: + + apt-get source gdb + ./configure --target=arm-linux + make + ./gdb + (gdb) target remote localhost:1234 From 894f73b7866f93eee7ac11db71407f165fb384a9 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 10 Apr 2009 16:00:40 -0400 Subject: [PATCH 028/471] added a image of the mc13224v --- doc/mc13224v.img | Bin 0 -> 81921 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/mc13224v.img diff --git a/doc/mc13224v.img b/doc/mc13224v.img new file mode 100644 index 0000000000000000000000000000000000000000..c5e5143807bf5b38a8a56a6a1f666fec3eb76396 GIT binary patch literal 81921 zcmcEcF#o9p9$aQ*Xu!hYz`()az`(=cz#zcjz#zilz#zfkz#zlmz!1a1$N&P2TN}2d zssI1{{C~q91_c98jshl6jslK7jC&Z|3s@Z(inp>bG;B#%|Nr^g|Aswc9t;@*A4>nS zvgz`PfZ6$fH+cwru=%^uv%^W~Vul;%hbMolJs2|hJUKJmBp7s=FK~m^MgL`(VIZZD zz^K6X03^x^77h5zpir}iX%C0H1)Bqd37Z3h0h@gjgCT=K zgX2Pz0_O+ce=J}g;{^sqN2ogk*c=!bJs1@k3kuxVvq1Ews{j97`@dlin+HP$qXyeW zcCb81FN-Hf0>ppYnH(50SREKz*c=!Zu{baYfc=`I{{M5r|AsvZ44fYv{;~TgfbC}U zV902Y75H%ck79j{~PuMc`#Hc6eP+hgF`R-Pok_4n3eX2(?pR$0L)H+x{LwppDgwNpMU&o*yHS> zSixA3AS>`8^$)8jM*_%Bfe-P2m_0e5ZtY-mVCZ3UV1T$eQ~m$vJO4o8@c;X*|7^Yq zG6Ekw{%9nCVoo!|K?)R(7T_?DU~^zlU~^!QVRK+8*xIlqU;Y2*{r?*FsQRe+s`+iG zWYAE!sKFp$@c;Xa|BMP73S~_-82*3X@L$1$vBIfBh>6R&v4WFD(D^_G0~?3)f&^(# z&I%1phD#cXoidzkoO}*a2?@LpG#F$J{(mq3&!DiOPylSg>i>+23EzYUd+a-EJR`860gK4kp|`Ih6Nz=yp*RSP9OSQAnU7!?ul6BfBrFi zkb%1YfSUq4#QmW70{H)(bwD!vQ~D+*M6RQyyu z7%CVvL@pXKD0>KeaQ&T8$)Le_K_Qdj!GjD1PmTn3aA+R zPgVvg53UP_3<4jte=o=o_2fw4Rn%Z$|FGtV_ydrr!f(zGe!m2KH8MCA84DI<2zYX4 zxJYPbbjm0&2z(Iyt(nm&Yh(gqbN`0K2q-QV?K0*`^fhZn!tDikt6tjE8&KJ5LWn85>%%VWP79tf*3C>k(ueCYV6QSTt5 zQSP9q0LpD%LKy-de*98@05Sjm4}9kDfSbSh7uSbgxcSqN%#VPY&+y^xPo@W)9t?_% z1wX(k^F5OT!xJ_Kuzx|}A;<2(Aj|H+aD>f);Rh(Kg2TXD{r_iyzYTkuY#4P+ZhG4A zUXTKt0m+M+3=$p!AL4!~WUzj){Qc#*sEMsp$zT{-wItOS?BHw zX%=nglNFq7lForrQ2 z&O8UXgOP)Q;SHMu!)cJ4m?8Nd6n7KZ85j(=Hf+fN<^Mkod$fIYJOn=I{c3UIy8uc} zY#(O*XVBodsP3uZA@G6cmpU|M**#G6V5m^@Wd%<~4}lM#ezq!be(?S+@4=AqK+&;)>qFpw`3EvS3gEaG{E<<~sKIpc|M#|k zA`c|M>4NFP|L@;>156!j4JaOr14h6ptGv3&^s4=Np4{z5|TfE(vQ28KV3ka7T& z2IsIq$_7wA0;SP2j1CMRH5eE`^$jR~K>i1n7oa=`sXM&X|9^J+11dEdb!09I_y~Fm zdI?o9Xn7QR6!2X5|9#URg?a}Wg>nZ)9uI~J9&p+^^^@hn|L;qoG7KLc{a}2+?#WRA zsXsvWfb2$33lRG})&GCy`UA=jAYVKFXL`T{P74sdptvdkrrw?h6VG>>oUS88GNyRPf<^%- zCopL6T}-HGVCTNds;I!g_F>CEHU^DC#tY0EycfkhB|M%#X90_^_{X5Za#0W*-cmo= zAAro1`^BK3Q6LC*8zj#&>wUk-;mPMA@PXs!iV8-J&lh<-7&AI$L9GRDFQJSEiT%$( z{syHhUv35lP`QxE!@y9>%>c;@{0!iF7Zg6A@&VLd$X5UVx%qd)9<~one;G7*E^;ce zeMtPrprL$G6zrPIKbRE$f9Lrl_dpn&Hux?Gd4O66To>6C85Gz)c>iP2;JwHNt~vJp z;C{dX7IpZ?puu#J#go(H^K(dUg|r?HxPjc(%Lj2AsQqw}i-Dn%3*tV3tqog})c=3B z{@t)g!9&rLGlMY!5{kSR<$V+?nKd{s%6ZCr2z==H!3Va7=bu6$-vjm!D}FL)@Lu@; zUFkn01+!cf1GilmKIs2|#4A6T532bYG`KGCgLS|C%cSx40>tg{KVCim|Gn%#2iTWS zF5Y{7zzvi}L16_7M_9OS<%PHvRDam=F@W1#iR%A9Km66Ohs6_A$65Vg`0(Zz%)iUv z?VMos|DVtO0+m6W7d&m4E~LnFT;O}a<-w4_`r+RXo(KQG-~7)BO2r-mA0&Qoez5z& z^neW<`w$--a08Vepzw?2hqwWfo_*B+e_r&fVNatC--Q%8p$jQ;To-(8WI*wx$Oz35 z|G%&P|MNK?*tGxOz5joH&It~IoWBejA1-owa(VE7xc46v)8fCMK4!~7rrzkmPt`8h;n*?)%$2X?uu zFBRB6Ec)~DxdK=ZDE-a;^Z)zffA^ou_&`)n{Ll8`@gD|_n-?D{uzl$HbNjiNj~F;k zZ(f9`X!y@s31L*?F3>j=6g8p26&Y-I2!CI*2$(ztxaOF9JsC~8 zhcEvBzUbfH=M1VU9;^jQ9;^w<(D3{CkL`o=9|nyb;P4ap0||*||2RJ!_yei=`9GZe zx9mBCs+b3Bfrtld0;sm+G2s7ji<8#`2ngsgf8-c`&6L1^6y{12TckbA7+9| zj|@Xk{qkJIMt5xlspHU$+0ntS=$zg4F+ij{DKD=M-3-Bo=j$dNn}(|7S0-I){tOJ_-!n z2K*nk{Z;f;@>2r4RrnI99_9Zq?XRK-Lxw>Dq@)u64f4T@e;OGK8tNB5DLNLYJb?Id z#$SU3NUg*An?Zy7qL8PE2mgoizaaG&!0P!gFepBI4&t8x^BKYV|9?OJhY3{vg8IPV zwj?ONLH-7n`=EXSC~QD&6;OD<>L^gZAX)w2=a>H*_89mWf=d?G3k#}T<<>gBb$-jw z@PJWufh_+A-@lp+3?KgdUntA}!SF9g#N{ujPGtC?@ze1Eh;Q>($ydaH|AWO}jRXdT z1w|k+qrVK53>xYeL2RAB90r^pe*R=*5W67hDe1xgffsC!!e0Rc{tvQ$H4=Cg4H(!y zbo~OU7X1q{OX#mgg3tpW?M^NL9wq|KF4TL&|uF>-2vyXneWI;mPUo{5iyR zYQGpXUSDMPWb@$vFyqgQ=Lg(CZbNqyB&|iL|NE@*A6A!gUE~1Q?(7~687v}r<4>&%U{{i{R>_5{3X0SUUWget1 z0`(u_)c<{+|F2<>j)$(#!)iuNg^P`q44SeRw0vLIF=|R))b!Ny;Q#REw*rHp0sn`8 zzXeSc8CGR9NbrAn^gAO%1vI_`P9w=bm7qNgg9isI88n$L{QJKCzt)3>N(K#~iw`Oo zH25#Fec<{F%4rhd5|I6(kf*o@|A&3QFDh_+xco=t0k7|iIz|n?i#(n}9{e9R{m#hX zf%hMbe=;ll`~Kt~bl=Z(6C1vt&NGVeK8&Xo<1(%dt z{&0f*b{Sk!!r~3&wnz~M2J~_gQm#d-|NDIJFR1)OlxtqUG0Qcr-^k_K>K~wTspb!) zTmzNMuyRf3H>_Nn`2!T%kaCS1Tn?sy)g#Ka7%-m^?Am|d7yc)`T!ZAR81;XjYry?v zfeW5CtQR0HMo3x%)pt`ALH!J;0G1C+e}8_?pu*|FQqZly@j>PfDDN?7FkEmc`1d{W z|5I??0;)qnP>{QrT$*9ET+*Al@sk2>BP-OF9 zs9^IF%HaR758m#6!Q#Mx-2XG!+P$G+%VqU{pLzZ^?3wQ??^CUy5W}Rwb%AXKiy~ve z%ZkPV&={Iy0f!>zhdsYvR&=llUCD40P~vhB5@agmWas2RSfI!dWXM&)RNz_RSitas z{SSiz!v}{y5R>>WX1Fm{axosP5OfBOzy+BoFfe?m{l%aNQlUzjvVzQDW#D0G*m6Vt-{-l18uqX&aDKS{i_L>EgF%z!f^PvsMoR(92fja$ z+{VBV!{)&7acjet$Ljw+w}N`!DuTXIek){{Dj2i`E;v>&X!2e#u9)n^b-AH}fsqmH z8x01A58}T-WY6yu83|JbHU>U+jVG5ue%t>WG8V(b1Twc{L&KJ<>i<4R{At+3F@vGP zf!%?hVFJgTB{B@E3>s+{>^&GKFs);p!C0YC(cu(&k#UAoMMA{{r+|x$3LLYeE3_RM z)#V+`3l~@LtIIoVFIZe5&H1^2LAkilu%M{Gz`wGBK~wp{&k9J)7+216lDWvBR8_F4 zf3=bYDe5^346k_CZR#1e*5U5VtPyy<{ zf>bH|X3*fcU{J}x_^|@wXAuvE4|9KlR4{?fdHL&!Os)*WObs>$K2QvIIL*Gy<6lt$ z(zm0+L2gF@0~_;22F2Il@l#O982#Q+`B#zAVP_%dh7aJFXJd9?5Mgy-_^`EoL&KIU z>i<3;`Q5Nb&PO35)6Ji1WBAbfgPj3HC;wt&uybI30Ala{#l`@#{qrv_kH*U1N?Z<2g$#PE z7ZfraEBH)7acK0D9qOJpEDj83SRigP*a~vfL-l{3tA2y}bPS3zUfvAR61N$yNGz^k z&{n_jxPn1j<-*d+$Cc7-(mb-xau*jAFe@Y!g2s{Dt)z6_YYEYcXi1^ESrU^C zIV%DsKyk~j6ePv1%Rn)}V4UPs!8EC<;&6pD zqp-6yn=~KuWadhc-;5a;)z&%4Ih(PW@nyS7*D+{wUhtH2EaYTky~v=&d=V7BydUEJ zG0spZV49Ioz&v9?0Vs9qvgz{if!inbG7K{$3>YR@fOG1R%d9gr8CVM#FET2yK46{U zR=_$#K?*cd2ucZ{*`xz*pfFPgmq`sh(J54R74YHGpKf~N&5lo%8_J$OH; z{Nq1rZG<^244|^@nfkxafxjB|uqkkU=>7p3 zvtrN`xS&+wRlt~$RMAzynBiNs<)vR`Cm z2r|ra?d;CZmHibsjdVWI$&CgX({3XTsl-4<1I6+Ei;Dqv8|a?5s$u9#dP z2hBy7CFWKz=xScLTfv~Kc0sO^K~MQ&o|{>Pe8oN|xr=#j+bZHK_Blyj3^Hh_VAf!{ z%wa6(!JNRLAof5`vC#pP-ZGteJs2t+I5?#EEfgylSQvOZoL*mgs=x}*NhdEqQ}_W+ zi3i-aFgY-Q;^GS%WK0&4udb>8``q=jVUHpMvj;;4$A_%n5MLi~1E~Xz!ChDX_qp?KY%XB5<|a)b>$o< zv5O3|epi6XmRU{$7p*JiI`Lktu9)Y!{Gn-tZo$C&A?pvw2M#h!U?1Fp z+X~6EAGbDbXxMT`{om(#KN|K3s4}Q9sOfqzPGFqDFri(>vVuWV^#Z7tQo3NwCe1g; zN$QfiCunwq{ep&+MFF$Ij{=4n3?KY{*j7j=G0aS6kdQpUAnPq5!TaIfZ;%TZX7GN{ z{KN2ommx()g-wO8OonlWgaP9O18~W5`ZCiD(3r>n@5+A#!Tn*03!w2Az7N0uvay-* z@quQxKYabm>jSD0K>jNHt5BFBr%=G4$9#bUEc@*5KXB~`@sB>U0|RVs8cah73wL(Le;gW``0)vPF--nXFA|{FqYh@gy`94Jag|ui6 zxPkg4pt(*^+x4FM-_LLVH|$~e0L_juUS?8YeZZ)|sT3&H;Q%t31DfyNf!jflvhSSw z-_Msp>jZQ}E;@iiN8qBpXGbN2hUf(bg%gFgU@_hc3W_!!3>7wBLK%D?qW_wMRWMyV zQ3)E8XHbZL(4cUlkX^~tquPL>BGZkdK+n_I+w=j0&X)@ex~v!ee_#K9K_LUzgTgn@ z7gRo~6k-$N5pZ^pgNQAvd{D{2#=yhmeD@;A&W=h(B_`*tLXS!oB_?ODLK(0dPG3+^ zl=fh#kOsR!^6%m2%PQ76DP4xtta~m%>R<^835(W>V-@-gpDr-yeYn6^vCfI_GN=?| z(BlG|?olZKHWg;e`R5EeH!s46*xZp`~@i|AZ5x1^}nB0{x|H|V#5s{XBE7;L{8$u6FK<{Pvq1t zNZ3eU(0S0H!2aRPU(hNH1`X8<42nt*8Wq?-9R3TL3y`_MpeXsEMS=apuD`tCKA-Rf z21S7fO$zKEHvWb50=X_QD6&6jQ(*tF;xA}51SqwGMxY=rfy`}z#)a0a|NVUTU&Eei z9|qN@g&cm%5>h==J@`Ht{#ja>C}Y6D_d(|m$Pd$hLB?M8D#6wptXBW~`M|%1Jtu7# zFL2s`#@Vj_XL?|V)YFIfcd`24&ujjH{0ka8*SwG-rvn~CUn1vzAw@3WLW-Qxg%ml^ zxO3PAejAModPpW1d+2&HCg_4iE-0{nQ26`lxw>a#!jI=V9)X^W30oA{KZyN(@m$lx z&yz7>tHRsoY92nGj0xKmK0R0QaQ9?P*sk#Sxts?>1;56Pi}D_lo{S0S6xcuf`E%~M zjE9&fV}h86q$g*FX9Z)y1%-3ZtvnbN8w-UzIV<=zPhAxBY)m+(a27l=>mbATVefAS zjZGK$JXky#6Lu+Vf6nc}i3F-j7s(oQP92_WPS|fHc;9C znG1>cx$1vEZ}^LxJ{F?QTY|z1qIQw`-_NuDHtgA9!+$~0hV=rc4Wo|0jsM@b{1zcL;o+~d3g4cyf>Q=0O(WcaFn6B%-_LnqbHy(R+HhXr zv|+!nM2_zQFOoh`&Ju%;oj_I_{r_I^|HE^LJ!^k~V&Tbe(AXZxT+o;REG{5!U#|Z5 zvklk|t_y-TEEl+K1TX&o9{yhtoI_v!{_&i{gVU2S0c6gB-|U_o9(*5~ela~@M{>gf zH&EJ`s>HwmGaF8&aZ3?Mf{+`Cf!?`JEl{somdNJIfy;!*9XvS zX$8N=`-{9Dyq=5+yqd>?#%o>h4HoXeBjgYSde&zH~Hz^U$yA;?z1pNB(oXdmDlQ995nzDaE z>Y{hxHGJ%z>>hj{Sbv^Vc!dDJcFyGwR^@_qpjHuX({iPV|C$#wZxF=(RxCbA!es};* zMfZQ6d=6T3#`j^tk8=vQpR;=ifYS{>I5dU+?t=Oalx9FkbcMl^}nCL`~t1# z1Ld9gn-22Y7aZgiE;z{fUvQA~xZofsc7eyj`@#V^_X`g4yeMT(^X+pL4+e0ETK@R^z54eBh0o6weKiWu~mWn zL*`E@56BuG(0mZz2Uc)c+x)aL)u`atIDJ9XkPuG%vl5(MeYF`FKw$_9V^CWR6t1AM4wjBU;SZ{RLE#SyUr-o9 z!grzi-_M}=e+6*b3cTqcFMq*7&g_DNocIL?IqM4!a)K9l!0C(sf`h#J1y!W<#quHj z56E42ejxJQwI3gz%Ys`N?=Q-D$app;Fen}@1o{2-4`jdderW%HR^h?(|KFW|Uw;m2 z+d0Vaewh6K@As>}E+|}iF6;qX4d_{M0#r&VG8XW7@_6um$o+po;n;IN4?b`h@PSj= z{omWcVE{@;Ab*3x0om`MFai1f6r%$J%>SV9GT)lzCgW{z+TakA2IFNu1^oxVlqNAu zbYi+J;Wg2T@iLo&+5;v=A&E&0E4^n)2xr`8XS~X&AoHMsA=^zNA|T;_@@+=u1c3}T zW3z%c)+_e~_FZ zo57;C)mb(nxRODe=|Z%e`UM@Zr~p_rIb&)iqpst{tCftpvKfjO8`R7g^_=CwDp=I? zoaGWgCUB_TeGa0LML=>_o^vULgVhRv)n0$jt>FJa(@)PqEtcHm@@ zL^A7u8_2Bx{~6%nBKd$p6O=+lq2_Uc&AS8+6Yd9I8Jrp13``dV85l3VdG44f$iQ%+ z3GQc*Sq0GWHHVsG3{LSJ3i=ON7!@QM7{q-PBv>+@g3VKXkOB^4#Rn|1s+kPBj2D>| zq#rP-sun(NSen7Fw$*uQ!oozQB*qLDNWOZ|nW30*DuY4m*G10^2Loo%+Sd#gFD?gA zo`a0(g522tmV)ZzMbanmzzZD4JP$gdX~8iQG*jG=$)EvpF~b9xNf39y%yNbL z-w~P)6p+$^`2(j6;f!c@#w!d;tPg}TgxDFcGAS`UU{vBN1mzCU%m{b}#Q74x7g*#H z3(r+Xr7keLL0Otn*a0Sgs*v#kgHl(aLk3eu5Nksw^Hl~O2N@$JrUxKeQYpZh1D^7c z{i+1@t02^`l2;-A6odLx=mCSGV`5{XV+L0SsQeao=1u^ynU!Zbb0silFe**N$Oi&j z`F#>H95Ws!F=b3*XTR#n#(I?@!-0kA3TTE#>L;jVImym(^?u^@*r17wC`KEe!;Od^UIklIMxd$xoW!$0dAng!V^*^5#{x$4TU}TVN zU=Z=-kYG|gly!-n?dqWn4rO8I!wHNY)rqu%0K+VY5jPw?ph=Q~&e%)nAxhoSvK#92rbX6P!5`JTjOv z8kA=v-4dx3V z*4+QP4;&N>Vi+~VFPh8#ZP=S^k-?Y&v!@^%H0sKz@$#a82ZIh{2J^*3+#vfOK0n0u z>p6oWgD&3%bJ<@V0Wv=tc4S&-%+6>I`O#sOHNok^1y7lkP9HBrMra^z@?c`%FZO`3hEem!1;?(5P6C&lGK4Zg z?WD#mwg*gEK{3u5vl5)Tf@GYUJY_(--d#rIH&ELjG;hVN{^#>o(EPXp(*p+?& zW|+n>+d*};^Hq+uj1F*-2G!NhqMUCT8{i_0s%i{k4qF{$of)Pw%;HMm0Ne2UszU}N z1LFnW4?(|}Js2`soS8gW5^MG_?qP7}Fkom9-l_+)SBvFBkevR7AUWF$eh(Zn7-oG? zp5@HU_(4U+LByG13d1ZFZ(#=}P9dfbDk_X34l-ad1&|n*5c3BW6(*RNjJL1@12+Tf z2PGjECI=~JhDi)FK&7S(xPEEQ;7$UW&ImHyLD-pLGQ%uEZ(#=q4hEJ}+|QmjXLN(* znUrTaJ2NoBZRZ55abW4fD|NsBr|BN0C8K68a zW5Cc*yww5hKZaSL_7kIm&jW^8m)KdaGRy+m&oBuTQvZ}LF*D2-c97;_xxg@6%0YxD zMULS?y~;nOON@rz40B~2Kz`G4W|+dL!Z24A6uxtL6U6-d5*StAIy21Eb6}XpFpn>R zVV<$WF%B~(BZ!}8i8`=2fOIj;0{ev{8p$`HyxPFgz`zU%0dV+0cIGiK{ENDGfN`r3 zXbr|hhMAt=*1zNfhMAx`f?*=VOvVJp3=qxb#pS>-laq&&>7Vj#MsA2nGeIj{7$$*K z!D>dbDhAE&m4i0kM7aZjHE_{B@FoQ*9fiq}^nNfws znPCdg1CR)a#SCV_N6IliOwK@z+4P!kw9Dy85`vRr%!oL&K!`clb~8%!T5o+ zCszjJBwS(I%rTpR1)gRKlxH~~=8$GAfQx`)9TMh@vp^}Tfs+C1Vku|FNsKc%5;zzb zW-_M0+|2+Ay91!MP{S4#^*^7v!R|kh&8XPn%->OUDikn$4Fn9a(3RXAe`FR09Bm?gv` z#3Jeq$r%mGvzcJ5XfR8_OTc?_B9Hg&EJhU>XD;tMNuXT`3aqv5t}Za>{JbC!cd6+E85Ec5 zK9GRBbSkf`vuFaur2^o%Z%~@V!~~A>2Bjb{i_e2WlkWn9Vq+qg2gA&RiT}U<{l@`y z8Jh<~mO=vagO)^QupDew^?)15jbQg}<$|V?L)=^rf;@~DSwTBlXR?CQJWA?5;AR4f zqyPW@Gj3&MV7cHZ$8o_^PUwR413u5r98jL&@tT;z?a7q^YHKyHH}DG}wc%JjxiVOk zL9H<^aBa_>@Z>qO!iVRexHH_!teEB{oWbqDtj&0lL*eiP<_ZRF)(g>cK^LOs7%t9w z!1BO3BZi&%>K%5*tIP_UA5^HwI6UECyuhLJ{qk*g)~iApf)0$Dj2GAymOcpa>;$J{ zhFPBMtXD6xGhbzx3CRJzo}HP#UR(~|o?VF!84NSMy|^3>a&R(zP?m=0YLLn%j!6tG z%EAuZpfYnNlhQA^6wF(vDPa|W}Dj02O-h6_9@G7d{Pm~>WO z;CAA_Ae6!7z^KK2QQvD)&LwvCE4p5jazG}};$XbU3F=3CP0G~v7Iskgnw%)1r0P98 zN7&&u2j2zf3~ndx3yMBVazq@Sa7a4zII&!i^X$x-=q%$sGesKAa?ZHTAmza2EaBOe z(wUQ>G||~1qk+Q#TqX#6G^NNt0IdTSxge0i=)kDSesMz10d|%v6LMG-867$}_FtHg z$?M7JFfnmLPJ<$&^TZVP2NN;xTeNFgr6$R(`-R zL)4qufrIITA}1rGgQTMMA%n*S06MR7F6JAe27>rwa!SxcT*UYRS@PJ{~B=$-C%vzvy#`%C@7Px*u zsU0Bwc#xk7>E%$K<$M6AUJeb}8;pyDVy3%rh)BpNsA%XIFz|RF`tw{Kpt0j`&$&Fl zJm>QG^qkA%!*ec=ch9*z-aO~>c=enaJZ{Xu>cGIl>HscFzOXnj{9til_`~ABz`^Rk z04nnYSREL?Z?*Dp$Yhvc0a_J2fkS~|CZoei4)Kc&Ge0PCIS6tJU1XTiz|M4qVTJ>{ z-BrdJ2bfu}>iHRDf=W@I55N9ud9W)wCK^6qn90e`b(L{uCo}t1RZovZRlfqLniqc= zR6eNcvMBm}P!|KKW8>s!bmF_fI8)Pslb6wn^MZiF0tX3CkHiHG1`!Z*&;5n0L|{}{ z;J`4`(t(q+(dpqOh8Yg599Q}M46-1qcK-#>Dkd__Xkg{J%HhF~-N4LomECUx)aKQH znLQeL9TQ<|4?t}ZP`L%FyNkCrY++Xa{rM|soxevz=4?+!2R)C*#6}O$`bee=O&JVY z+!wVxIWs|dSi?&&ks*_j!Tkcyhlal{4^+G^Wi}`aJKW-A)Z)F!p`_q_I}6m}l5tSx zf~+Q+=p=E8iviTX4U%I}WSH1k!Nbs;k>@5GYZ|J`kR!*S`}3lZ55rv5gh&ZbnZ^Xi z3Qsx50?=BKXBR;(;JDbBz~y-|i(hG?GlvqFGrQ-hB+$M*wu`JD4Vev~RPD^<(FkoN zGB7X*fZ9G114TLA4=M!{GoYqlV%|YY&GkNIv1< zepu1r#BiB|0o1A&yWk+FSjoj;>@A(aF!^ytp4+yVc_Cs9MRE*!KQ4k?`7q&Og{R!Z zg6Gc}6<$0Ctrb_hm{7^6A$M_MCI^G^g$FV`AKw3Ykf7uNvyJKEg9=U!_Dgae4VkPC zFF08)KBxfYCI*EE1rIV9G}taaC}4k(kO`_2cs^YI12U8IqL4>J28&{cvw&wu0)s+A z;e!N;2Z@!8noJkiG#D~k?4`w zkyzkf0zPj+!jn;hBSYxo0dV_H@c~B$Xk`Ugf=3ppT_xb*nB*Nwaxq?HQ(%6;?8%Vf0Us5F*e9?R zVuvEQRg<71ehe`?~D5tSpWbT*^Zm|hG0F6(1%JE;2cpwNGHFF5$VAKS; zfcXKZCqu`H1XxdB5Hv36Fp+~%^TP!uPlgVT#E;K86h1r$`H#^P)B`GTZvn+Ul-+^E z?qLP3e`a9-je+e1wZ<;8C~SSeqQ!WLNek5WS^pr?gCUbimDM4GgHZ!y`?3ci9t@cY zAQ4U`4b}^R9t@crs;mw#IG8T_c`zt5Jn->oPVwqQP_ z4o!v|+zcnd>rkEjwq+VPJNj)%+>q(y$L3(~(U!=;pmu>BoFA<$l_P*a0aDqHIIWy3<@g}G79cJXH-`9Xvm!5tO&MWj+xC_-lHv%Nt5;R z0tpA16$u`483kvbgH-=|4%$J@c2V53GqXWSh?&b-#Iq|=7+i{SISYDnB{FD8Ule}8 z@8OWisL1HR>(P+OsKn$T=)``J%flg))3Y=401NZg6D*8Z|9{v0%L)olMMeh?4n~b9 z7hr4gKxG{$4T8q!3!rJF7aAX(Nb%A9fJMd0cWs8M!&(kTT~K^fJ+Sj#n~|WV=TOSY zq|182+IMXRhnk+lR}SWj7Tyf1u_=rX%zU#`Sd?!&oA|EHkaaNf+nTU76V!wM%E_p! zbV1KoH$&G~H&fd|$5%U1J5!Ze)>+eAHc`|2M#9YksX~bgMh(`Bs-B#gk65^zl|8u< zl{`B$6rB~kCMGawSY9-GAm=TeA?qET^+8paN!CG|``blHZ|O{BX9=)*627tyqTaHJ zY?_Rhco`TTu&G98eNfx%tjh=*XW;jaOFH?S*W*A2k0)m)XxF+2JNp$*j{_N?kpu@8 z=Bpmyko)zA#iJoZ!J&bJQRDdq1_j7CH>fNGhui-D|37X8oqo`u;N!C-lf~f)C!-GI zMNUn&OCC@@^F`2H2a7@rQh3%qaPnP~2^v{sSEzWvqGIc}Ekn&=8waBvC~Wf|So&?t zDC6A5&U(?@Z(9b3y1BzY4(5v{-VADSDU1({{EAZyy=P}ifa@U@(AuR8T@QxL1FX}yz@nFc1 z2GwZF(oD<_65QV|N_a42DmaUQ%@p@$b`bGkPISluwII0}Kd8w$usQR4xFwx_&gXF; zgBK|jxjYVJaDw>oPz?XWiV}*DnV|!2$l=Jil|h5)f`gp$1*->g9t|1bn%Ut5kF;lJ zhO`%#gQRCy0;qfhjUY>SF(^+?2rdAXYFrBJ@OpwH12n=48wubAo6^b5=-|Q2<=L6R znj9NEIsGmMnsm4-5$m4WRVQc#&Cw`GK4#X9pwP z)dE|k;BM9e)yEalY%EuVD`vBSMo1JNaCd;>h^OH)FM|q$2IobdCXNmXCy|Q+6%A~H zS2#L&yf_~CfW^4LV(eEqIyk(T9Jm@dI@rN9B0dkWIxuh~Ff`o%&%m(%KLf-2{|pSD zw>EB&1?_}UWGt}tQGmu$;REp6I5A$} zRET}RG-E-6Qq#gF23@}k8Ey=f3?FX&0<8gKRq%hH(82Dk-k=HA?RJsjgXC|J43~n_ z0~HU3$^+~&S2Nt$6d4N`by+XUdoWboS7daM^Y+!(4DJ_JKUBLx~7 zAl)$+89qz~i*qSNJTRy{z;1pep^Hhwpn~c0cSS}A#s{F5f?)x}hrC}5A3*z&UtLu5 zP3UrvOlaaz7k-e?1v+`gpu)o0px{B*!wjP;t`LR~S-%)Gu3dc4|)eptYEqb z>e(?q_zo!_KAipu3JHdbJ02u-Imjh6ZF!*B#h@v95#f?3uqnvt&Ger_2Ll`PRfUdF zuv~}-gCb+Y^ar36#~I_}C0GPYg$x&a9zarE#{-5BbAPlx0F_s27hHT4I#{47&IxP= z$b8NV3LQ*}98QWIj29MkF+2eI?f+j34+ij#8Z!^ZLWK@1uxeuuhDryvxT_2wj{b;# z;GoP@DdqIzqMi>ZJf$vx@(=q}h7Ykn89w~{0SOfksOwa`1dBjEWV!%yhr`dCQasxj1{2pVJcv(O6p?JV!!aH>uJWykRX{yO^IEea*0ieT@0E^a8(K& zLSXlRT+eqwp+f>R3I>jo#eWq#1i*5z^aBes4zMUFFIa$QTMoE^${kQX1Ld*r{}~wS z|1&ULVRc~m4K0iQ{{xN5Hf-Th|MmI$|Asw^KA$ug|Uj8}>-U?G;dx^yKakP?2%wY2fZS z!V99AE2G&(t}<6hIWrY-bTBC~Ide61baiD2#qfGd6>)VjXbD|#km+dR=yH(bXySR` z)y1U6e3_}@JE#sU;OJn3l-?h5;PZ{JF#P);T%T{@Q~&kZ@qfb}9v_7c9&m`m;s~_U z5tMtlKV1By&;jZ#gUUTtuo}pG9V{+Dbpa&oA^R@))qi~!|KG5OQJ3i=qk@7ng(7cF%`mfLT|26Dk@nEa~*Y5=kRgl&XB+Y=- z2&(`3eD+_%9wr4oPtHn4r{5PqY%=M{EPiOz`sKM=_(qgQ9j11?UNd2i!WQz~)iI z)qjEa4{+P?>uB9zT)+_9?sC9QPQXvVMgRo-3~kjeT%=_i9iLZU(@j{)}whu^Fpq<$)7a(vMIbLP2>k1SM; z08~w@qGJIl2KPM|^$~;0F+t_p6hA!Y^Y!G>Q4 z5;qPE?JhMY?6D>$4mBnY><+$MCMLe%FoEPb289L13Ym-*9Ga{bJUl?>lPVNHDEjc6 z^Fz{K1`YNLE?_av5A}Z-6&4gddCvLa!ynN40ecUH1b&6D&lNJ86den!z^WcSxArlI z`m+BAB$PNl%=vxtxv39C9Vq;oz%sgE9VegbgZC@#xTxpB{bA-W293=ZwR{vZo5A6> zpm@!5b?^ygD=w<|BxEvZEV(enKouT)%6}oT#|@1=Ie6?X_zkkX_qn)_IM{rNiy+;i z7p549!gaGib-(!yiFKg_@2@I;L33{HK6-=6p7af@y9xx~#Q2WNf=ge)- zukUe#apB3>eiy!it|TyM=qdow%KjGM6ny_@MIy_G9sg?+EiySjWc&f;5Lpk41dB`# zMaBXdkAI3MnHdw96cdvzG8<&MKOFzrz>tu_qF~^xkRbDb^TW&E3>sn=ggq=0L?7_^ z3qf>#SoDkU0k=P&r)7d=CMci(C}MlS1Ky!J_1D4YTpp~@6CV$_@i;Iv=rcQj!x9v( zJq`>Fps)q`cLg+^L&7yu{nuv`Xt+YsHmJO_u@SHV11|`Te2SDXIE`_BQ2Y%_yI-CQ zfO8ory@K-Oo9DbfJYW%y4_?2XKIigL$mIO+{5ONfql=s$YJW3mJiEXKPUR1vaSw7I z$X%fL0J#z3t_byCpI`h2#kcT<6gkriOXS#eoNsd2u;@74L|!AU?4gjL?4j(*nDFhn zvd@A{Wls)ho|pZ}Pyr5SXL%1ssF?82169(V9#9_7Pfi07&yI8s260cvbjbR9g@jAb z1$`2#9OV*=7&Ojb6ao7MR^lwkK4*fx$2SATAQ4oXL@5ey8V zu;*ifq+=gPh6YgB=dd|2Ff%bQlm;_^%N4_|tPBlXg4KV0F8kfEr`Cg^f=PqvVuL~h zBd8v0P@Zmbg>+?->wFfWA;5L^<`36QN*aIk;(bt?=OwahAIXP$BTs?4iDDK zN$ASlU|f*P;1J*L@`OQx(TFjGaRUPg7BF7>e~;lFg8>7GL||loBDmy&l;#`?3eL=m zjLxwhj0v$G8VR4D$AH|x#=sTj>6yJUkwYTF(<9kLA)_b+T>pf7ym=1O6X3y^5aOYc zaPxVv2k6A6jA90`YnMS?%Xrb%gW&;4HLD_{vx^5~0?0>)p4K!CKK%L3@WJE{>xY0JtRKYw|Ng$cDV;&4Hl?bSCRoRtAO-8-B4ca9mJg&}3jz@bH$-;QBE8 zzXF5i1C5FUax51P$gy8IAjf%u>jAT(1_Q$f#a|*1GAbB8eE%u%fK&17bI=K}EFTX2 zhMca;c7ajR)PteI)JrIX>qFsx1|^WGMqpD5{=?dl9gGgpGpE0*|N6WSyf2@_gXP2g z->TqRi0uN4qOu1=g)-O_zyFXL_<&mj*v%{qiVUJ2EFU_4i+FH-5dJUX+2O=>QP@|5 zf$Ia$e<9BfC+3Tq41yk9AKw21?biaOK_*3h&<+c*d20U|loS~l6nMd|QiZ$ffZGH{ zNcjpXyS^|wFl^k;zyR8ph_Y`Ne2z?p8$-tdHkGTX9*h-?nhF;{Cq>C#Nb*beF<{{O zaPnV^6aPg<1%pBm@6bO+20jI@4{!b%R5ECAUF1_>_+avr?SX(|ga<=K1lUb?{)PJ} zfcE`^#$h@f*bT3S_-14wk*`1`WXr9)2*hr~G4Nu*hJj z;QFu^Y&!Er5Rc&l%TI<66Mle9t40=eUZVS zp?1O2Ujv-VEPq=h=)>(ug4@xJV#lQ)3?Jg4c7XJAUSL#I@nEP>0ozfGWJd$L>Qx2b zj7$a%xeFQ$A_goUIDRu$KxU_yFR(t~_~7)D~6X z1e?hSb~p2f8~^!0ajL<52^1SlAKv_jt)m3xL(uuWPj@rG&qW5sAt=p*&VB)%lLXrP z0_s!zRR8t4_D91WA@KR_%okWb9Q)0nppd{1=CfV^?cU=0!1oU%#sd}uso4Tn!wKiV z0L#PDDad@#`5i0R92h|MC9pX#eA?Q!0n{4*q5kW$>yL&#in5?HV!D3ix@A-}a`drp z<8SBWQBWx0P|{@JGfa@-{4ndc1q1U1CM8V<9z(_lOiC+d6c{)SI6w6LeqO|(q$vw3 z5ja1z|5hu_aAT-TC{7tAWYr*~JLHc*Ws=xkWs1Wnytm|;PdSSN$%ZHPHFFps^aqa@htY?2fHYhT1 zez^Ke_(8BfH(1YYuqYz~$cB?(8$$j={F~{v;6W9W2E*lr4-~4IH5e`}d@$!h0$60m zg9TO08Vr}GJOHVi_`nZ(mJ7p${s$aNi82lboF6Xy0<}WgA2dBksBq9=x*Vp#aH-)z zfd$^OsxE&BY4Ha)B1> zHCZN&(AmhHtb>b2=Y9Y$&?^cz@Ts<5mqLG%0Nh2^jZDq=ObWs z9-drT5Oo|$5Ot7q+CFb>-q5h+mHN-mp#A?0Dl9YHE0|}v7ci@`%wVWsp2<<*02*nZ zDC5B}f$_lucCITtiu_Kj7nsx-XE3mFUodgvyuhHw{$K|OXblhNhsvL94EC({d`1i` zGd(34KxWLAkl_6A^2b_9(AiNbG7K{uWEduZ&bMLFxON$23hM>t8I2W;#mqAfRyY=G zFtBd;0G@HE5oct8oU!#%{paU|zYTj-WEC02JpO-Q@}H4`K_Nv#wL+6Y?gE#t%q0#5 zmJiK87&OE$Xfp5{G8S-qdP!ccj^ez{cAHO>f$JjogA|#wF=`cVq0us+wFrmb0IjKF(&D(tRl!^_ z%ZdA{{u7|2AZ2@ zTEX-|=D!646Igw~MbPL9lZMY_76q0MTYl;L8D=nO+FcMZPx9 zc9Hc#naq9}(3wXooL*keU{H}@P-B?Ez@~6P$d~;=nGC~BkQ^r)Ctrt?*dc01|_ZnmJj~FAS)0-X9K#hIWU0S4k~9sdr+RM z|NOl9cf%ev*@B7&&J{%*A7=b#XZTQ|QDjh=QN*Fdpa=@NsQ*?Bg|Z+P>wm~;=Zv7U zu^)(fFjTxKGN|BCWOO(opiwO3!BCM=4C)E2C{CzYQ8L9uA>&1fLIwkuMyWyu15ZY2 zJvje-kYucQS?pM$S<+B(fHR{6(wYQ?=XzEL1_NdX@L6nX?6CU$BPjp>ZrGDrp~1lT zf%o?d4UP*;ii!oP1q%vbZLv?#6Dtq6tpVS8!^Y6C<(>M^&n~|k_JGNulFi1WyU|{}G`!Au&kzMFQVg)BV|J9eeOcxv2 z7_Km=K34>(TlNcdj}0jIuz#rg4ch0#{2}EZZ2lT_M$acu{Qqv)Bcj0a!SyHT)OZ<5De-vyB0dw+uR6#IwuKiD2)R_1$Z&m7|G~xpN@*$=4JsYkJ^2|Y3Meu< z_(D&dHmKNG;UERNABhn>Prx(*v?l}QHs3d3LW7c52_*#Ks zf(1LrRap;~nT!bnN?ZjD84NQW3%DP!%;;2PEMS=d;<3zNoY`2ws3PjYQox`qc|pWi zqYiXx6{uAxbg`h4L5W9^(V>%-ldpl3?Sm(HM!-Mh316pwsY~G&n9QR9ZN(g7>#={Q2TJ=(JEq1%mEa_kq@ z%5h$hdjQ(~cHj?#f-d-W4%y#Vo`Xc{|FAMBFfe~G{Hw#DP$6u=cj15>%Y{M<(D@qt z7sSB2djCIu4pJlkch~d(-}n3ju_ga9C~$yf|NUbD(`Ek{9w;!t))0Zlh}GB~7<8E- zYYIVSL7Do`&u4#vPUh4o$aDkM5I=r`QWv9w-2>2?24)4T2Mjvw7ng$W-2&x!PSCn5 zg9pqi3^R@-Fsd`mIG!NpH9?V+4RqeyiJ$+~7-l$R7&z?LV7#bbApJnV--=;ARCec2 zh@653(?uo)jRKwrRtzr`Jy}6ISA*r)9OU&FE-0*rfj2C|>Fg!S*;J}n9+2O=|i9ACUO>0sDX(>H}AJcse{VWB`p+f$q#=yuhYl@c?wX z27?CA1qOYti=Z`qu<%?74Nvt44EpRBMNxbwi{iVEpT-PY3`{dY?iTyS&H!_x&QA*l zj*Cqj7^Z21LmspPdB;zt4Ull>W^!QgFkol^g+C;1fZRU=>V9)@dRPtSF)0|p-LDNz z51YU;YzoTITWD~n2O)5J0JRqy;5mQ;DLsH(l?!*(0XLYtK5k`W;AaqFkOij47?hZ1GAS^8F#pN40hXsh{)d!zOVgBfo8;YST8W?FkfKSVZ6Wut}!4d z<|53NQvdO}@_)mg289Nu7AMwA4l=DyOqUWRLH#*4unve_5Wh&P{{Y|L$L6&_@gxhV zOq~5cAp_J_g_wK54OAw8#!NtEn2h?5&)y(c=(1b{<$wi>Ct2AaFzGU0VAf>=i-7V3 z$dn4`eF31ePC$MJo$)5C{^PR__@2T4-w*s}X8@HJ|G!`S|5Hhb(aza`r9sh?h0z(L zJMuroOi&H*|NE-{2iSjIfwW?f&689A@tFl`9;jUfF>fWOa8e|AE#V>``J=WQF>Rp#J0Yp??i~81+~#S}-wiHK?v- z<$1sa<=s%#Wn+E74CO6Reap(~{8uT65n|r6e;~hFBe@2&?h91D$un@wYuKWw{^RqM ze+_#w+(0*`F)2Jq0OY8d698G3cpZ_@Mrup-j$-0dz*^|L?p0fmeNLFkei_ z&?v~25d@tpUB#%uaZ#fpF$2=Z{d^(Aja8BJ0VJ+LJuL>kyBC=rWVo>_G8Ql^JV;w0qxRr{q9;?YlhGy6Y9iDWQ2r0*VhvEZz+IgE zFINVXb}T9w*+BkJ{#P#pvyVYfnsSI~|c(0Cl^UMA3qsZ19@Gg;rBGi!Xg z09&tlz>SsJ0esgMNbhd-AD?gkZP>#M>TP|XWj@O^)rA0&T6W~*T8x2ga5yzy_to`ecVcGjz!44|F(3?KOZia$uK z@?safzyNItcYs^M33=Y3?NsT{E-K{itU0A*j1pu^|@cn4-^?R82*3X3{AyP*kE%P+tq)7 z`~MvZOdrJl2!QpnT<|Gi$YAp1tZ0Omaf<9P^*hvmeD?SYYRUZne(yhv2V=%b(1`Ab zIlo|IAD}asAmz&z^&g*&{({Z|c92<6zyX@oVPoKHbYi^3puqazK?SP@<0S`~2L+7K z6DSV2F))M1m|Hf0X1({Q|M)EY7n%bKnLf<^dCr3&UTNdro}RgMS_uuX&v(n=6}rpm}fC6Fx+8y!t#U3g}H|12xEpDry^qs=LhQ_ zdwo1UYHDa$a!L6Y->$uEP923gJzZojs8a%MC-iCosu zWw`w1;U*7;3=IjU2}~h8Y|sp!r?~4V{Y_ZX6$0{jc(1tx#alWZ?L)>1T$sizMj$ zV8aZK8c@5%+=StQlnF=#6kbUTLM%c&4HBFmX8z0rxB3_^hCa*z&CkxXF$C>H^Lv=# z#-y0}9Hw8{gyDez7X6h!ogaeACdQI5xQp|D8e}jiGM0eCiD8CSg@6%g+y`V^(oaZ8 zm;40Dd3gzC+<9J6an_TgzzwcD05tBQ$XIgH#}(`{FR<^d{~Klq8iGtSHxgpI#0xUb z`lmsLpaJIxU$AKmlAIrmep-R`u!2TlG8n*qnROYW%Ic>cI9*JF@{N9iOxysz%a8Me zDAZ-@Kb3t{!0H$-3qOarR`w?&gS-br2B(xFIAw5t`1gb3IY>9iJ<4$ReEtEki52di zS5T2ZKR~LdLhZW$V(4V1L%&fIV_O- zUlpKdi-Yc07;HB`*zT5RdZ4|xij75k zp6kFNA83`WJqB1k^O%!QCVVo||(LDGQXL4z!)J=Q79Fw233fk!}M`Ezi&P$B^} zkK@Dr|H$SEgY2Jx&s1e3Q`xSXILQj&w}pmfu|F8MB3ok!sI>2jbl%O z`vJEfzd-HIhAq|VKR(C*YS<&;$>`2YRve>uyvjc+^y90v+J7f*k%xVUP6X1HRVGF4JCi|;l&w3vPS*8ycek(9Y7%+V}^BXj~ z$n@a^c!d|Negd`C8@A|x+K;~)_K10a?n>gk2%7s=ypT}gpvdT)SO96W3-~HBa2jeb z{QEBXC!+$?9_bJO#Rj(@Xw1gLjNyTU8T*H|f0-Bz88l?sKXmGDsLOK2T&}kY)PN0zD-N6sDkg2vGZP z%g=^A)xH`P{}dS=Gz&oOJBAOS{vg-IgbD{XW{`eU4F-@28nR3uCPUjEptg*f`j5|3 ze>UvN_F$|4?Tle60Nu^Npviba!hqoc$i7v-Av@X+xPi_`1nJRG|M9u{C%FBS0m_Gr z(6j3-zWB2OnKR##u1lv=!1Uo0h_A18 z!IFW~ka5Mo?^VB%Lyuu5s1@4i^x`7>2mZfI3>-803_+py`VWJ~y$e>wkmx z5wl(d-w^~(IqUveFn~s+KqJUZdpO(~7-|_E7_P8^?qq2Nj}e2~rjnp>7FEy~%ZVQg zsz9;EIFU(7k%7mMVMT)s`-i|kj58S68u&nGv4h&U>>tkjVPa5Z;4@@i!T!PNkDQ+Y z1CIgIhy35{47wLUY8m*LChP#4#5AMPN%SI<62r<)84Cs;19s5)<{CVpx%>+D4=esK zF)**RVBj-g|IqRW6o$6o@W}ej&T#J{gD%^Jj0(_-{){RCMMme$B1HxsGXn;u4{g6d zEeFtCw+Sn(ou#b)^y?>c{iT6HWQOdqB}+g=CU zK=}hSHVI1OpgxCjj^DD?);3RU9S%K-p+}{j}g^8e>Z6QHg<3 zQA3vDL;R2D8mwTR1o+09@E?#qC&(PgcweLXkI!yD8urNg>M>ZEeXKL6XJF!Rmhzh5 z#Bc#}T9bq)X9t&rgtvT0r4%O%Cr^hH!zHPPM-3uA3Kb$?x32ihpdohApn_jR_@bb< z9Jm~5Hq}HbM^^r2VlW1mBV6EeWa?i?FA_BF2-+_K3M)`q0!l+?*c=#O<;i#OoebLQ z-#>o=_0km>CV2X=J^;;*dw76u-N^mx4yH4~>jqrG?Bu@+6`5|F)r`)H1xz!TJ_P<^ zV_;Bcc)+L*(q{!$6Zn@w&*6eW6{t?>a8kQiP;r1=`HBfx&KYc$5twZYHH*XP$OR(? zhM6Gqe*OfdlRLj4wsbfv6oAYHokYv=LG>?#g7pK2X`s8wI6laMO#-zqI6g?gP1?zD&oGNw8He^$WJx~QGW(K z#S0%gGTlI_nfIa*Xp=lR&$a#pjWx>rfT&&flluWkje`_u$HWdNhD+=WCJZ2-9Q?_~ z0P3?^Ku29cX$usmkaAX4{rhJz&<+j;PD2jx9G-(5(}e~()(gB3J}4?Muzv9U&+&lG znyLAk5J1%;mtK0h-Nc zN@z}CdLZNBlyDfn%MrBy(Lsap5@>%hqk`H4Moqzs3L0#eggv=37?qnHKd8B z%wSYfuxN7Na^~@HN)UXYpuv6#v>%pH2_(ku(UidcfX(wHTotp&AtXB@z-Pyu7w+e>4nKT%oVZidBfx+GjIRxnAFUXmB$o^t| zz{nu$!SLb2PlT@+7>c*DFgWOdVpijUg3em--KAM>ptAV?_n-e5)V?_zGZ=x(=KtT% z|5MOmy9BzoiBV~hgO>wS0{a6F4~Gm!MFpFM4vr429*zmd3=Fd%x_A6zP=K6*#sNA5 zaw{l=A#ut2fQx~Vf!TxML)=f;=!phKJb>KG;=%Bt0?EAx+(7CWL1tYBr7xH{R&a9! zaGDc>Vh%_h*c@p3Lbyo;Zk7Q~v-D8R0;vO=h2o|UKVW`yz-bN_ia8*4nC6^;n`42~ zoM%4}aeBZFr0&aB1{DTXCD7T>msm7G@vHxUL78D5qxyUYa|h-NdJN2}OC3y|8Rl(q zV^o)85HQ>Bkmd%G5o2IhTI68l94)g%Mvl#lPeAYS9vmlP}< z82G#Ud0=4Sz`*Wx2`b0peJkM>Sng&5EDwX+1P)(l-jsa6tfZj9 zaY;af=@PfMbOz4@F7N0J0Sk@?1{%zl*u7_GC|EE(VD-M80W$lrgOmdoe4jJOEJ(Wu zG#)LY{{8cl-=MKuzKaUFtd|rr7!_AKFghzHh&)ID5@hUqaxFT43Jqi3mq68JfI^jkk$}vz0oT5@1GC+ z28|FhGAUGWI73F>A@$g5_3xiIVaN$@1@#ZssDJ;wcmCUxWF=Uk%0!e>6a&rl3|f#3e9y zu2=v5IR~nq<)UK6N6iMu1E4#Tp<{P2bsN;be~y5wQ>gfd!@P~^-@)q#K;ymV{)6WJ zL9C7c9poAu4>%*63~}!!_3xi`emCq%tZ)F^3~?PqZnOIL&vKwpXJGiS4ZPw9)IPrW z18f#QvR@GKzeWA~XBN<1iF#}oSUpq=Qe?~|%vj8LeqMyc=>a!Tdjd4p3Tj7hRsa6^ z?XQMCTF_DU+t5BKOn#gC_s@5KHSA%~VYvWN!}cNfA7m^T5+B>uzkfdS3lU!>{~#wb z!s2U(`uER!kmUdUg~cb#j-Be?Kd%POv{xina590;e&k?SSn;Srh>6QtkcH9NLy}*aKSI0!l6C(d2ilfB#(jt6`4-c(#M>!+tdRJ?h^- z=OXDB{Rc_KknrED{{3?tSQgS-5%>v-9ax&!r~du3AJ}w=JOi5ie)aF4?ZEo~D}rL~ z!w;B#nEMZ?fB&otRsotlVf%3PFS7jyLGcfk1)0zGVZ&coUmvFbkoxz}yzuyA`!FBs zKTyB-u=@AU|9^tUnL#TTLF-=~BtY#=Nb3g{KS$KRe|`g2l~}=8pjhEpzyu9zO=wI( z;`ylh_s=&#J~Eo-&}@=2kheUE-=(?`m`$3GL!0fgr%Vd?p1@U3 z+?N=Xlq(q3ra2fpy}NLN0pyAX2~a3NOais%8n&EO|Nfa7G@1bpO;}pJp#J^yj~@+t zKr1^KKZyTk{Gj*;wC=>|AA`o%i?DPBN;hTd-#;Jz(XeNQ2frd?0fU0ACr5!tfwh-V zMOT51C$kqUc0zfNsOo29Gu~ zUi|Sr^B+VuflckI3|Q0Y}>3@uhLLNW9&-^Ro$x*c9y1qT5JNk;=v46u3fR46jAedzd`;LIS&z~;aU$?FH)xR@Lm{(<+O6@mJ1KN|M% z>oQ#CQw5FDv^p_f%5Y;X@bUri6v|S|KB#SDP-NgRG+>o`3g2tfOKe+z|-BH*e$^JnHWJ=}#?|uJ4cNDUJQ2DFnZ&AUo(dl@Se_`-3y8gkX4_MdkjIPzyt^O51fCck?t;J{~-Psa&IB%E;fiOrre?Ivz={20 zWnj>Cxv&B})&&{sWYXZesK8)jz&Ig6hG{}Vg&PCtURx#w_6G{Gj1!oqC{!E+i*P6~ zOkhw4t#xDI%XI5#h#ZC`dTSuz}7(QP3#JD8O8u3n`aC z_JHgF)%g|b-#%ad*RY4*Lz_W~p|Osk;{W&c|9Cxk!E+P5;GD+|&YPSU6co8U7%I5D zgfiGaME+rX(4fc&EkO^sf%fQt@(L)=fcEde*1UqoN6OW|eO~ylVGjd%H8f~7UfVAf zi46zvuna@=T}@P-1cr5Ij-9!Qg9fvI2Bh zIAaB~CgWw$h~B~qfA)HQ6q2 zA;1k*d-pfPj6dJY{y;|A4uJ0y-ooU-0P;7;|Hyua+93qbqs7Zg4%E>>Xtp!-uHF(HwWf$u_|0&hsZA%g<@2jAZ&4?t~90R_envOg6P zL9?6;3fd1?G&C+gsABve3>N!(fl)!B=wYRlrs$=Im7X#W3zMoEv{)`KstS@>RK%#n z@F0jGsc3Q4;}~Hlh6{?tpmA&|&6k(|D=HQw7A!1~Qg~S9AoZY-5qeAQ0XNW|BPQ_P znT9R=>fb(}{@bue!6%`bMT74mgTjKM2bEG90+$?Q9uy{2HE8f&Tu|j8v!IAkf%5^A z2IB=rjdvFpRC8&(zRaK?|G=(BvFn+lBTO)%(5$2Wy5u zxR&_y3sjSUX3W?>eEY?q&ikND29)br^;j?Gn`$tyf7lHwDbyh4l#3^4MZc5YB?euc z3kD2giXP4y5)2a>sz7rjpnE_#l$d6ARy8`^xd_2ZP473rsT@su*T+R&_XC zxX3iap^9OqXH|#ODbSg;HB2)*Ye4&J#FRj5)!05%{BVB&sv}u7#4m$l*yaZ-1N((M z1qMaU5KRV149EOZ@nFozHw3vZ?3bbkYl1v@_b_NAltDxC0>~_BZ|Mp#)okYj5^Nv* zen@yQWaKG2#(2u)888+IgKlS*5%lCJ5CpRXJUI$LJM*|Sm@n~x=c`yR?oeR-AoZIE zY%Zuy1&xZbe@KO{0pG)ls4us%IxuW!bzs;5tusT|Kh%(0(^i-n+#Dn@`|Y|Mt1(Ps5%D9hHls zJ`1W9Gex|FGJ+~V=hQ4H{{Ma5KL!n{ivpg49_$~s{p40){4n_!KX^3={{;pm(0$)s z1&kSss!tU#W^foPWU_x){1f%|Mo^jp*$dmV2wE@Az~lhkXTqia?X%CHhCPisb{CaE zH>g#BcC;$^ET~eDV5~^0n&`|}@c(=EKL!oMi!z=v9_$~AfByMC@i&92xX;o;Ne{(J z#)8C3#{!Vc+g}?>aGIAj1vW*9SRAV>>mPu8f35* zGAk)E7-TrevVI8u&-8!;9Dk5r9>~2Qcf;Ha%BwJUL)tPt>fb(p_}#Ea+(zp{u8qhA zIk0X>JMfiKQ~^^4v-0EuhKz#+pwz+rOWaf3gZ+c(&$rM2e`oo}pz-n|$i;7e3WLM) z{RNOaK{tbSfmUuS9xQnFoYzO80(7S6|L^bqfz)3A$>G7A!JvH&bmMIWqt@w*3`(b- zA8-SOCCr^5H-gd>s2$p?{_S%;s3)t?4r+lWoKOIrddu)3{0F4%2~smf{oCi<-wk`_ zfm@A?7a19tA2il7XfiU086Hex1+`g=4rH--a#kEHg6KNn23i*Y+cz~q{o7~X-wk{E zJWphS)~GWmol0W;An=dkl~!|$sxg5aZ-*^ zlj8=D0sDu-AB=RNr>1fBXCr)K6DoP>lx9^Ra&j z{lU&)0Ny3;Ajf~fL5}@`z=Mj418kgEK%@3b|2QAKRQUTn<1d3g%Z0DcUn*KK{Qds@ z55tG4KTQg9WyH)tWBN=QH=y^QfcjPqTPCW1`@Hp6!yX54c^dKqw8PX6%=Y^s;KBYu z`UeXGXkNt{Eaviq$Fs*t-~x!`y}<3+b%q;CTX$5PN}f(N4_V*w<5eb``S!8G-6pW8qq2@I?s zmcjeVp#D|EmLBzQpCdpzRY5%lwh!O_gKh%n_h86i`|#mEs1?AV$$WuRll=mNDmyq0 zv0UKP{BcptKp}xql|hgB0_Z#=why=dYcN21Td?_{0u~1b(EL#SRu%?622qBFEg*L& z{c70bt-v^eX$8XvyB`V}40?E$Jec=mtB2@EqkoY*cg%wU}9Af=F?$-uaR@qs1- zsN8h>!>GWr0phv?Zc|wu7;4~QGhO}L=N~^o_eQdQP=kjJC~eMA|MvMccm&}8_ssvG z`k6t2=>h8p%|Ec2a@bhGO!aS{uR&FYKvgn70L?qe{$W&r_5C5^1+&z@eLnEBVGrYq z|KIJPYPlX{xc&dW{l7v6!%PPWg#?gJF}O}h-kPoc?emhK$m@`O*+BQeHEiiq|Mt23 zXTu&=PmhWd8q60?D0vkyfB5nbk_ryEA=1Gd^>3e>P|Wayn$fTR?QogGnD+r3SFF%o>kJ=cL1)iFO@YWYY|&N! z_WA3NhCO?HKz%!g566FjdOM7Yi3JM^5(*UxA>}u$&kwTiA80o_gM|mfhyA}yp{-jE zMGy;g3IyASynnDUY0!8FgG$2|J@s$k{=X(zHRA;hc7v-6JQ_0?G|ew?7%+VJ`HPi7 zqryRsRf8KkV|c*LicLX8#f%Yr21V&l76t|#?h6_WQl6X{Y#;3ZaXesB{P-LqyXz-t z_5b7Fj0*A(7!N8y=hz<&dkR23Dh;s<40LhH8L_1Sk<`IE!Y_Nm_IE4FX6$g z*qF?i!^Ger8<65^I59=UGcZAu0i^B#`|qnC*jcWEN+bq01}^3Y;1(Gh1D}dSy$r|% zX^mT#%j68$u3Z#K-~g9Zv!Jv62i#2992gEbFf?$0mc21CFmy~|XaJQ%j9WputmQ8# zCo?MWKj8FW`{4f~zGFZ+_xPn2O@xluQjt7j&!G&B542u81H~wYN_<8|0%LGY(0t~`l z3_83Q0t*;30uwJ62v#s?a$ICo6fBSe>q-C1_<%t{09u2B%w`9tIOdE0zi$TZs=D|B zys{rQUO54DuK8AWa4!|4W-Er818yKSf?K$}gfl?r!!xk_P>yD1c2IT}2Hk7w&FtX8 z`UA9P8$8D&v8TY@0d$AP{|Ep7|Cj#*I?ES?zbF*AGkP*)a3mDCgUV0Ftt=YMmsmjK zO$rPTU}154Os@;hq-@1_=^vCP9sgp+8OTqda$ZaQ>*wqL8umcSO9lpzIK=L5^{<~_{cG4G zpu>3ig@X74UJsT6#|%(?n8eT-#pQJ|0hIfhFMxRLUV;e+z~$UR28Re{PmUB=`LTu3 zfk9*eLj$7+Lq&o60XGmIV!na;*Uz*5HSA&YV9Zo3V9ey?N-SW=WZ+oGZ7Zo2U%7S)2Zu<>dEe<;0MFiXz687XMfQ+^AgUg#2 zzajlWh8YeO9N;dINHpo6-h=0x0 zzkYW5*RTh4jt$#~YUm0$P&))P{$i^B^|LX^?Yc@A7<3daaM)@xFetEnNdH{~&fzP6 zvoV0?GD?4gTBHiHY#$1KGcqtd0J)v*L&$H4Ujlv`Fr3PZT;MR( zfVP`JYo#E2iY(Q?eqIMMPfy_jgO1z<&^jTu51PN(893|=7}!31`Ng2i4Gtf+4>x{+ zV(|4Z(5_36+d<*M_TlU=3kJ|hdTbwfena8|)J_Gt)m;56r2h|gtKb7^uv>rs0_}}t z`*8dh3xfuOIM{vfe=+DVT;MQKfSxP?sjDs2zk>G!v+*) z%fKeEflWAvWlA2tUD2IyX7P@G$&Zn}-ywy~fnf(5=q@o9 z2Bs|xTbcGSPGs7{0ls0OVT+CW*U$IJTT1wrTG8flm9_t7UtGFYz_=J*c=#&w<6i>!!RQup<#=y`q$5` ze;W3Pc(7%FQqbj}tPI>2g*@0Y81xt}fKsj41CaRfpR5c&E`Ug?xg$ieI3)F++cp&N}+`*{Q;vnNJ z(!i(yx(5X^|A5dZ3e}eb(|3_cf%^gE9uW2itWf=norOVX%ojj(%N2mmS7*^+yu_gi zvRmna6N8Y%C5C9w4dS47z(pnni3d#D%ojmxa9I_E9yl;odmoVCF<{VSy~x;clI0{1 zV*{fC%LC>PPi9GH#s($@0r<)VP@T^L_LCv>9B|zS4vg7e4H7&COdSuDrI~~sxGI9! zgZQPKy(<{CnJx-5a41PRcSG3%N>a|Jp=<>uDQE6Vh#ChaDQEA>+3dG@g`GPqIoVJ0 zfNX~4Bv5@0@(U-_PSytwjDB7X5}X|e8}X@e1*>UnLRKSiiB*&D5{sth4aUXMG4owm z#8iwN7(nN09AFUgumsJ9rleC^I{B7bqw*JDe_XP-b@EEH5k6T&PJbcUK3K%^+ zT_n^QM9eKZ9N0v!T672~aySWIu;_61WOT4>C}3!iJiq{&3ue+}yXcs~!N7b0bT$U- zhY$ZPIvChQu3B_7unAtZ=&-<|z7a|NjsJWm3LOqCB3BhU7+3_ag4hl`3TQSQMAEVU zze2|Wu=)nDdIj)V(WowB%tW|o`G18D2Uhv3Aon>k3VC%(@ELM-2(gM?R&(a{MoQa0NT3+m5{6-j6f&DKzq0c+(73~fYh?7fBn1|)Jq2U zrx`CWeBc0`wF^}TIfDq))@j(nuKx9NA81UYqCrFA66g#A?|-Ze!WTFc{(qnLhmC>j zLc4-NL21E88PG_>_J0NpzrIiUFAP50V9_6b@c9dzml7%*+1aitfcHlzF#P@Q`U7-I z2h#`f|FCuyXdP<97AEztpTmDP?3tnP|9ko$76$1HS`3N|pmn_pKbUoyE^;d*6!3!1 zhXtMfb%8~JQ4w_WR#E}GF5?AGU51N^1uPyc38?LV(3}P6JiKpP`!|42C}mXt`dJke zPAeEH4lr!-~@n1G)&}4|c2--0a2HiKn4&Lj) zrRjc|fzkB=-HVJBj1zA?7t*|O zgK1GvSP;W>mjiBjTvs4~=gJjPFiW1H(&PB^N^mca@uHXd!RH(+9Ax%AXPa5-1zIsb z(TVXAlj6h)MQ}!5c!97hJz%?M%D=_VEfo~7%urd zXPv<^6IAL^GwhPH8Xg&n0Y2g z0VD>MF0jlvQ29Vfz=`W3$4ZVE(5c4!GaRZww>$99a4h0|06Ia6>p}w?<5hhRh6man zj7oZ*%pXGj{?mAMk!40hB?BkR2jf2=(>OIOprbV$d~#V?Sy?Jh9vmwgs;fpuoc zuza}j8>H^-?-v!IvrqpkuzdLW8$^El&1nKUwM%fr2XGB=!0nDGBf~!?2L{lYLLWpK z89-?tbdL>ae&P!g=v&$B$@t?Y)V+`X&)(NcDpuEAr$ME6oPqqonYRGO#tmx!q zVqm|}B*%0iNRH{k<>%~b3=eqKxEMGubV0>VJ~xwPc)(=_nu~<%8I-rVWe=3=^1V za<2fz0rM8Y)m98;vW9G&e4z7^1b(q>U}0dJVI=`t-NZE0L!RY>$S;sxAbT9-g=T`* z{V-h6e=eoVauH+?XzuXxPX+~HXe!$RPDg#R`Nao#c0l7mI*8j0w$Sm47D7^AQAt+>IST!6QnLODC~Fu zTEoHUu%Lp&;b8@%!+%YNi)$Z%Mj0;sU}IobXPDtw!K1+8(7?*T2a0o6Xq?MjnDu~N zor{6xLYJJxg&;Yp3zHsz);t8Wv0a75@_z6r1G|EN1H;AU2M%)L7aHU^E^t2JRe$u{ z9(?}Q)8|~~zn<62a6GVNVA{$w;{YiBe=y8s+Q1J!watKm^#b1vhYANa2R^=;9t8|D zPe?LO;G4lvaX`934itAx6PUoIc7;TP-C?d_Zg9XL`u8d`S2S8UpGB10|rnG>;5z?7EodV$GrN_ zrVXGw`!pHYS1@nkUClNN6pQt;mTa7SEHfBCDE?&Gz@Q;?aY4mH@LEq!7Nv@W3I-<7 zh>wGeLIERJVgV!1!U6`q2L-OrpD6Gn#VM%Ffb_fE)W3Y5^tWLTyTZZ>Mh7p3K#7y! zvmBFR1RNX~I3x-b1syy&93&jT=hH!YGT?p?L&FwV^)H`G{(^42SjgVV-{Alb84ZSu zuu&{Xo2Xy?%jd+u4SSl9=9xfaX!Yt}KAS?%VF0ai1C5R{D*XTc{RbOZGO)v|+mNM2_PE zA9z&d*Y^{@cpm)!p8KEk0f#4>2kVDNKmUE__{H=f7Ri(YZhN;eFuY-NU;xb#Ld>jD z|MEExH1}>Jb0I}e^+JlA#DxGPJ%7GG{RJ8g`Tbq_KcfcoMNl~I`NjO;p(5xU#KwRB zzZ?I5`JClL-+z11N{9+hji;bpnTm`BAD^>)X#UR(HtYX)h5y%{GcY^=kH3J%mTJ|% zd^Y;iu!rSC;{Qe)z6&XGEEk^030z2#le-Y`;Gx3r?=%1X|IYf~_rXhrAJ0KyI`JRq zo^sa*sy+%CJO->E+JFB3e)AuL#)}IOe*Mos-}8Sxc`gf;FaPOK;lO_X3PiTxCqt!! zjHo9^0fe9NleH4UO8%KC!&nGf+0p8B;u1tG@+X60BUEMZPj1lMHR&$Z1Fg0H@b+J$jp&6GIn4`8$w~>1itF1!6p+O;f?*}YQZvFs;39ko3MXS@k%P$pvfB*IuqWjE`f8UqEb+7+%^f}0{AU}iB z6)X%ud9_ac%V)>m4SU)Y{(b-cQv{ScG#D>1C^{B^>}!x^{jlr@XcSdMf%!xHKamH# zo_rpxAKHF^ZbD%!`2F4aFUyDd{}eJnDkuKn^yEl@3Zh&^a8C(&XuG1_sbN36T2))W3Wd{N1nz)YH-anFj7v@m%0g zV)t~AVgBIrPay-eFWRw4A%hik+6iVO+)-HZym1Nf{&(0m_gcixxJZ+iU`|MGd| zuZBIK5nz`JeuZD(cl_Z1&jztyc%Z|2@z?hsKN%EXD}4RF;qSNa-=I1VxPjK&fyN*k zwuq>I`P}iVVGk%(xmGmDuza}spN+wsfz#ZQLE7Wj_a%QUB-kq|Q%5h!rl;gYL zDbIGnQ%?GV+ye$(nF|f-QV$q(Brbx+P>cSHJmB|$tiNk4I#|?Lc(9OJ;s5utAD~mb zK=U%L1N9se$V)8!0_*T^!SoZ)#Ha=J)$8hlsn7stdz6NIZgV_)@3&8CEVDY^VmdIsZSR$8o0iNV>qR z!Fn;rBgd05;qP~`Kd+xd)*?Q?nC_9``QuDgJoQ@ImqCy5|fZ=KWm#oI&CLcai_gpR;@r{msa*?4qZSLIz_M zqvq0!PM#iKTnU_tkDmYi?){rlW5Y!!AB7CiT-mIP)*eotbD#hJp8v1wIlH2b2SdjB z=kFE%f8YJD>A8&uBZHM8SM7f-=8K-Spq5+3b7P-s1H}x_3de#y3je;(`fuWA06HJw zV)k>zjLwQ>&;Nhl^e^@K*Y9tCCq4iAz2I;BbCwT=|6-m)Rx+ zF=?<|^r+A%=%~mjV1K}&1{QExjp9i>v6TC1HG)50v6{h3@E!{T$R>*Mja13!qXQREFFAR>%l~ z`W<^M0V=bQ>j_YubWHv8=bir>_BeYmW_VO|R=ftCjj73e;s5tF{~>K)$OtpU&1cj< ze_r&zVb3mwf8XEzWrw<%L5JzW2ZaOR8+SZqSU$Y}1DPKIrBR5!qw1eOxBYL}BWUAv zp~Obv!V++M!{mYzxb%XkZqWF3QN>fqgXP2dKMLUWmjAzJ{r~V>3f%q%wZ-@TS7Z?P zVEM5B&(r6Uo)R9QF)mPz(*N`4_pAS2Dm;76r11aylRu0aH!cc#@_Mj*SoH^_Z{h#5 z&v||Re{cWKpmF`8A_J$#o#&jMY#uBhX8rm9{m;LB(0q3bbkE*F28Oc-8Nl~PAnIjM z+widZ=g%tt8}_hycIq%+Wc6VAQ2htA&Vd8EHs^pFs166|f%y4|`sdF)U_Z-VD74|Z z@I+4Gf*6v2MLgIa{QqA0@B4EhAJ8fM-!2Mz2zj!62>1iyeZ25m;s5tn|6V-j_2l$m z`QZBJ|M%tp9zxx1_Xp%};h#UhNB(=M@CxdFklmoX0xBy&ZeiTY@PYdW3&_p{$Ard& zgU}J+AFPnIy<+O0Kko*g*eC4C*ubd7s2JhF+;N+o;R=Hya|geVjDwOhQv*{6hqACU za|4f8u3NU7bjKVCodyQ&pBI@rIKVd`GiWkjWb9A|-(d_%^9IXm@vPwUv%maVin>A)r_Ancr|=_&Z6)U6#rmzIl%s9dEmhA zz|ZW7n0YzirUaIU*vtEX!?Uxala1pF8|c&$VbDArQvoL{C$A%XPDcTz{sJWIcpq?h z33UXsNAq(RFezSUW4OwwIEjtnDrglg%xx+c7#hG~eu)#j8(iXnoYy2!yk7y$Z8j(c zF*G?yddqZ(I5A#eR^WUf)6u}duiEOc#<|f!(V5Fxs(}Hz4*}Gths2!-H0}f*K=gA$ z^j~CAV1MAi!0MwA#nB+qF~L~^eh2pfH@6E64Gv)UgXYy36$BrER&G1Uv0Z>+_6MvU zEDu;cm>#ftFg#%OV1%F60LmMGSREJ`*c=#G!0YxJ6d0IPJWqBrI`Lgl@;uqi;jG|! zqFKS?Kn5cN>jha)&JIs@#tSSTcKvElNnw=qIMA)&#C1UeH0RF%5?}XA#N$9Wi?guD zk!H}nWP)I`xGwO6&EoYu(G0rjoDr;c#;*p21B@I{6>MM?tez*DL3h7HRJ8wsl$M~d z2Duf~28FD-@KgW%`3q=nUXSyFLWO39ql02WicGFd8F-xWD|FTwG_M01hxJka{Q2&m zhCRGWnhXgt%pc@`Fe-rd_dh6JPz=e%pf~`Pd%o(QKcDymT0_KeQ$R(50W#|HaVuoK zfy#KokYA*9rlZYD;O#SW^zafOb}cFN_`3JoL4|% zLMuV%EDEmVC=ddRGbtd(fmkPi_I5BRuufo7V4uLCz&3$(255XJ)6JuScZJ|e&WcVM z#sZKjd=rFLFjVkNV4vXt9$RCdz&?Y4O=<;01v7Yj`Pl=e2aFmF7c?G9%ml4~4gU|) z1sZvFP+*mXEq?>|=XC?p5i=T-kevBaQ};pWuAxDqrb z#PngyKh_7JlXArVgYM(0e9krl6gQyJX|{==cy+x1iN%tC5SN)>5SYU^muH^g1I85x zsvTq)SDq*axj#h`5C^a}k!#o?RA|2}Htif<$|Ff272i#tO*2ryL1ztlAS_{Gr9v5Wu zbWC9LYD!>GKAf<`gE7GgUUspwGcYg~F)|2joeRFz3{=OkJpk|3xWMos?I&nOF(mhb z&c_Aanljm23bfATB9np%xSVBIFnGX~QLj?3D(ax9%W`>vQ>>$JyBqPG~ zUrC5b348)bgK{(zw}T`Pqb3`~T$v!YAU-Z)3=IDn{{Ls(8so_Y^_$rPt_o%? z(B1Qf52U=jGbSepBrqv(6bNJ!D^YVa8)pA{kQ-k`7bgmaeCj*xXsRTmEHSxhOjf6&*KDE zZ|Mx?1ki~hAa}vyo<#xF1`&aztBXtu@(;j!F)y+xNIf{10jlrW6ht5JdOBrrB`_;7 z6?A1>VrRbE1$I?;LPN$WZcrF8U*rIX5EnfCaj-csaDdI`hWnZ40cQoXCMfLLp?+ot zucAWKxCh)o`XFxN@Px$_`vcG!$e>ig^nlqDakdjkEht<;eHSM6&*1(0+~5&*#*54f zd=EftY(cs>A$i4vDdQ45(^aMnL1%=GATtEO?gZ`CU{hd!zzTOSdMbIr%O%>b>lN}-@7#`RtPWB2+U{DM! zaH#n6y#i_)DF1@$<~i!0Ki~QRTDkD|JJ%mp25s<2hu8&>TbM7fXfj@4)#Sg(W5E2u z`X7S^*9C(N5Zm3bT2fJGf+(-NKUGE>Gf<*zV4$DPQAFv{ULxt%9!w3Bz zj4I3@xc*dRSbK6LFn`$jTToGh;n(-f-v${jrI58Npg9Q0SmiAB&!5YFH0)ti2?yT* z!g4_fYWn}bEFLTc%pacqX86DgJyRMqrV5JxPW8{9tA8}?`Jm9i09vovS;55661-Y|NPnMN5h^*9hHlgApccc`y^I0Ix$>IC`iZ<@Z?Ak z0FOnD!k_QA|LKDCYOr2N1f8n!0QnYO z&{*#V@OT9%erBkD2H*eJWTSrJi5%+%X;5Dbx;9$MQ_6$+L*!p^@VGehhpfMUzq|Z~ zjDRzL@ck}j+SyO1L1df|zj$^|zY)(cul zZq)E#$pD>i^5>_TCr5z-!;kOx|9*U~;;HJv{Nc|Zkj;YsS`_|#5Bdi>%a1|h@dX*s zI7`9(=hB`s9?TzJ{Q=#214?th|NQ-a^%u-{_x=chZ2_6^;V;Mp!++qt5*mjtFe=`A z&g04B!TjO$AMhPa;8b}RtV#~*!}S*!6;Ffx2O8f8`3c#NAU}WK%AmlYvcZ!xbAuO` z!#Yo{#7>?yUK3M=vetSFJFM~&P7=!Ca$>m1tgzgZGjoB`B^EB{C7xV~jEc*=1j~e~ zK()$ZZ>b`ws{6{q4hy}6i~cJM7bqwT7Ydd#t{1HOuEgaq+mow^S;OigM-^ypmZONH zYJno7^E3~}B8KV%Y^+x&doWbLS7daU=)qV#!GobD(~YCBL7~r+vzpQA_r)FveWA+( zqPhdBy3K>JxYdK9`mZ9RL$e2CF+V5l~5sPg0} z<^Z41Sq@TD)u71eTqgcCU`JZi6}BU$9XUo zsX8!TSggSCV4(uThrK@-Gvv4}&5<1)hxMh(`B!5$3Y6)k}tj70$+ z3^f)70lo|m^4)yFuK9h{8|;2Bu=^DhIh?pJx;vLMtA8W}8#9nKmFOfy*(8k8jN{XN8)S`5bhv-T(jpKm5P{|35f>V zBV*-BcFwDe;5(F<3ScsjJ31gEeh1t*56{^|2E&`AIlilDQ%DwQ=@FD6u; z(O|mxppFAHf2IJsYYx`FfRrzC>YqNZ0qfxgoybwyz}~6GgneUNN z|MYpnUr3#{;0G&sH>J-5$jTeg4Nwdd+c+K66)G$oKyCTVq74iTGdmd>omUoldw3~2 z#=I;7k)ASM28;z744ei`AKZU}PLWOdX~4j9fk_c`P72e9Z1DM{8b28s6d3pnm_8)` z1f2xJe?g(b!io7Jli~syCeWQd;1)U42N94uS*8yGKbaJmKIs0`C{R$yC}2>~DAHhn zv}QqWhxEgx)jxeUfV$t|2RqpPZVy1WQ#pWlJ%QFERu(bpF|@+m_EpX-F@+gMS-$HMS%s>&7iSpkh>eUNU4ANd=1>& zX1ehAyZsNQ2Qw7@e1G^KwBHZ3w!ZvOUgQ{(TwFl&$3JwK}0!zPw${hs-l@2lm zg$A`h3JPj13JdD~Yj9sQsQahEaruBkMFEGBxo3qeRQ7}Ql17S!!1 z{4cwqj)Bpzg3;NsKm)uRkl})WqM8@OB%un>+I0sdh6fBv4B$1F4GN0h(iPI|()^On zT+RZ{6$Sfcd-qmw=y{} zfY!8$K+hEdoiDVL39{bp*VfhzEDT}{f-Bf7gyuGES)%^wv;LokJ*+bsSN#4y?WZ9F z^NQc!C;ep5XT1OtiTwrQNB!bi!BFAAAOPNv#GuP`fk75j`Z9rUaALg3sLt?!LHz)D z{UO7IKi{SPvoY9QVANr_U{b)i@`L2>@0mY2%t3pYn8CaxD350aQw7`150Z=@O#g#y zumP`8j20n&{Elbruect`MVGn54*YEE)elkojkp-=X1g*w6 z{EwYM-|n(Z{nO`)-wk_o z7zDs;690T}{m0H=biqt1(~WNi!v~`upqq_VD>N9ZG|N0TpvEgPHE5xgM-Yk@BjZlV0h8UXR5*Q z`}=FSSsXuDR&vbv{XO6Z=%jLpe>yh6ZbDkA{^|4aUk!U$R)S8JXZi;^)$QN+e}9b` zvfMx+#rR>#4?_mfZ26bJ92+2W(UA7}r_bHL8utAD&hr1uceme6A0GYr``za6r|(mK z{rlY(09D`lrt&pfmS;85J}NH5iyaJp2zTotZyy|Inyp&;Z?W`sKUj??2z! zfByNd{}ZI*!hcrqz4Hu;j0%6gfBXpN)OsM{!2*@*1!uzo1)LYM}if&{`N! zKL~cV0cbxlWIun4`lru3Ag9w!V9*h~Amzc5ut1jSgVKM72_V}%{ywNu_T(r?sQCXq z>_2FIRVMUgPKf?i^-rH?{A}36

uN_S8GfOP5p z3je=z{D++r`2>2O2c*5w28w^sntukS4}5WY{v5hz57ei?b_Ucc_}Mfa>YqN#fzCis`2GDKXf;`eOTnM-ywJJY z4{Qz$AGd<`^nd!S{j*_D8E7Q|gR-HSFK9%{^rBXVso%6DQ}4@3rryHICo2MzO*|(i zYZ)+o$oQw3!OdV}tdyayem%CH&B9qCLC+&1fk$CRg09Dng#QW+G7^b#iOC)_664ZU z{O70NFx2qoPSEi7PUuTGk)UBDP!U+c$;QdU;S9RP#Unx4gRw&+gYg6BKP3;w4$vAJ z#t+Q@6g?O_Ks`3b4}bqEcrbQIf@Ui|eE$n7S2%ux&W2-T_@Usy#P}iduR?~h0jL&c zy~yjq=gFAB=Hcwgn82m*=lj{83?E{ld-x`R_C-!$XkcJwZQz)|(7-c+p+R8+Lj%hM zh6WDaYP~lZG!HMb8pYKzCvOmaj6DaVg`SZQ+Cuj`Wpg_vcAVbQN(ZMhQ zq*~9Av*KgILIwv3I|HT<2mTr)vMCxS3wyXYgYOw(Q;-nybddO=$jRo!$a0m@p+SLx zl~aP@0i(kSJ_e=+S%YMQj0VM%tc=cv37j4V39$SF+VjjXgQ4O7|Nr}M|EyzXVRB&b z;$h-k0P;68>j6j_HdO!g+2{xOj0@PV7Drec+6YvBpvbYnL8kA^*x9!wbwyaEmfxIQRyG6_0xa*KHjJIvwUd9sX1ZNG2+ZhL>ycr@T93&c~k`zxmcQ`TLVo>0EzzbpD z{;$CDAjJT*_XyPffb3wOGKHamf#E;n6-L+@EcNOiKOgzuu!luKp@7K)($+uV7Q+Zi z>+B4m^EBPnKYpJ4zhRGU6|=&h?}vV|F)&{M)!H|IF+8wiU;yvf*-~J@u-cO|gXx0; z^t=NGh7ViYH?T4=s4%ECY;jTl__^?Z!yXL=DFdbt5B@Mu;80+g@S>J!f<_(Vg#0=I zeYVStGc<}`D1z2=9s1w?;6)Xq#@7oh8lNw%tYy^vaDheh-6hayKbIPVCc{N8GbRm& zi`!(GG{K~jCWD9}s8_)Ff#)|PNCtdPSehB=rdbBQHYes=Ak&{Jo`3$Lie&<;67x*f z6^tJy{Nhs5WYA#v^IiNO8v~~uXoduIpDTj~=Y`|{ss9>J3v_esqWyO#0Y(H7n6;w2Gbh3By zGfr&aWSUSR-40%{K11PvG$=JFNH9#WVn~$alx3K~_`&9vB7?LcXcf%g-yBMYvI#Pb zADDhIDQyJZsAj`LxIqcVByvV2^@L;}@5F1lMh*wj>9Pqrs@2j&w=hr(ZXoAM2L1)^+ z`q!X4Y(H-0VGv|cVqj7|n!w4#$#p<=Eeq(jgujZOjEzw9nH71QxG(ZOU{GO6_@MHH zp(TMO^9lQ(t1cNL1wk@049Ri~Iv*~wXvMWWdBr7e?qW$m^gEsGl52|k&7*wL=SQ1(j z*fPJd|GDaxAyyD1!=U};BE9yJs0DFzEAMc)`wk zmEl9-4^aFwe3<+rm!n>eVTPFmgZ{^hpmD{P9}v?(YeWJ)KzDjFCa`%nCip=^&d0+6 ze7h$k#6Wj@GHzwm;J)YvQp?Ji@KNz3Lt}yyST*mJU(Z2jf7*M1ZuNx8S%c+%U$uV# zIqQIz;s5uO|JfKoGjKQmn>uT-a6f>|q5uEB7b<@C|2k&_mIH1Lik>Wt&e|S~2|pD% z85P_nWQ~F)?u6P~>D|bY}Me z)xnVT!2&h=|Mz&XYtDf0VFk6l^VL6oe*33kk2$DjXJEX*^dajP#04O`{(pD>1L1+@ z@%6xMM$mptk)JHO?l%}0IK;NQ9B^Zkad1mx0JS0&eH1b{6hWuSdw9ruGA5Wlkn>PT z;81<*Eajt+q2ZvA;N&OiZ=S&LVet=z3|0r#1oH&t2Vx!y2?`HHJroiI;rcE7_&p2~ zPAD*ZsQ3Y5@jT%5P)Oi}%NuyGdoqIMGk$>V1f6dWNh1f`7$z|^a7ZvPe0{;d!1y zyC=h}u4KlUj0vC-cBT(Ue!|)XptE{<92gn`92pvznHa$5h4DCm=GPjw6sv#ytPOGx zbVd-;M(9=l_*nrYsslR5oiSqx2UA9n)FP+fmmxL&0XGi^hK3JYCvE_pjP>y|7f7vw zqCcY&gDQhEql%3KqYleOJ%$EVQ)kfJH0b^Wc0I-mZ&`Ku1k~&t%$Uu1{xjS2Y;j_~ zXu}}lukOJ7z=okgy`DkcIa)@BO@)s`=l12x?A%uvS2N6!34!dTVO*mMWidQpmIUDzYCyW#E-F+yurpr#tib<(L4o(dKmF?$ zKqpyqT(D#S)gz04Gd}>SW4Q1{0W#8ez)h9ifkB7afdN!MLE_X~{o`jd&>aF*j_jcE zGMNV)NHz)E4LpI~ zPM`}ugB8>!2DPd{(a^+Uv%Cfd_7fA_Jcx&jT(`4h9bcCh$H=hl>9ij2HhYus&c^axmmE0r`jxdItUh zH_*7^ckns!p6VYzulm)nN6|NJ z>Om!{MKy!Q*$V~?tPeo3$avwu0>guU(EHd0m>n2o*c})^`%^!PGBSYH|Ej8g{A~HF zVGpA+qXL7HoX?VsC5(($85E2jNc*H@C_78~Bqt8LVueyGnj3OEWS&2$JFPS(5RDk@3nbryrL&y(VQ$Vr00=puq0wnZfSG z<-qFcl>oX=XreQdS6~8cjbK0nxNq?r)UV}bkYs@DrDRZG-XhGv0KVgZ;e+81mJJZ~ zkojNGc(Xi1!xnY*kDssqY}nJZ0W^{Z+6~RT1$1vZC|1OOuxx;&TL$pCro0R+GgxOf zZD3Yon8v&XbXE;$UKMt>AOpkqtuhQ8b2;a6tzfTc*rExFKk(Q=YDiPcQzQCaS{=zSI#;Xi^uP-pnV$kBb;N-{k`C4H6Qv3lbJ& zZ%BBM{UL$hiT#2?jz&U4PDa9loD~TVa$Y1bK+_-tB%c5N|Ns9VsGiPL|M(en|6hj( zLxy7|j}n(dC#Rq@w^v{c7rPKYC#Nt2`vqVl zvo>A*;$dLRs^llZcv)U04g)MoEuc%GKe|{7=Xs|nJ;QE zG^pw_vO24S=f0tQCRXQgKZ6X$3U*EDi%OpVlrAxIB_x7MWqt$DDL2l+$qYJd7aL?4 zKk)uzkZ)kn_T)$b-80Jgf%RVlgSux&itGb6O~wlxnvxfVQ1mN!F)4F{^|ONYzx~_5 zAPv|3>~8~ugr`Rei-Lx;m?sDH#u`wW0-E;+)wQ6t@Y(7gKiB>M-zJ^gz|o-C$>1WP z?ZJ@IAj|mS=-(D6&P(hbOp1=l3mF_!4k(^vV1%B}0O_|fFo5c4NV~6LONRQ#&*9*{ zHM1gP0%$w|stjrce#ra_8cBqV`y~HW@LS1n`<`1tO%xrYA;4*;e^ZC45|!Mr>T`OFg;+HUoXQj{d)F)DQ119OAPb3JAJ(@ zns6zbVJg!DhS||F43qP`Z)eYzV%BE5#4vla)0fMP37j5Wo{R~g(Me9Q{hH7oKWq$= zWfDUJ!(@hrBMzXl57KrL*c#@+lHrn|z`}Gj(t{y);e!Y4Wmm&N{Q!0behv+g)4AvC_2))l z^J6ZGDO`O1|9ixLeuWRu1r$y{7gk{S;QK4!ftbS4=NuO78VWFX@yW?4sc9Mg|L*i( zP~p~d&^f6G6dV{?oX%eqQds|7OySXUNrlzV#T3pw|Nq_KznH?(=TZs`AJl(oJrGlv z|6I~T!J$FXld;2z@uGynuIEgOJWk@E`!Fg%XFUpgFn$OD-_^;eAn4hVAg<8%oKJz_ z1II5e@V={S|3IsqTc0PeGhXFWsCcfxI^_zqW$D1sz{2dnu!s?o_80{i7(jOvfbs&z z7Q{WdGd_dbZ3`3{nDjk4vlyLqy#$j48Mrc-oVgM@Gqt_A95g+<5;;;i7#1jcGBu_& zWH2x?aCR~?IxBlLCLGA%SL|?RRb+IQ_c)mF|NEu?pxeOZye?%hX#Kt*<25ORslY+T zQ|{|Uh7UFWBt0D@K&tsdLRr{D+pD~Fe^xoVG^h&`FN4X|0#pQ#HXSRL646sEKqjQZBk}1 zSfJdeu)w%Sx5?PSZhiuWmaf@%%IQ!wyQ~T!9zv{hF2ha z85Nu!F(@>G#Tgia9{>FRUy4Uy!czu@z{eZ{6GRyV&Wir}|6j^kV8LS!frh943JV@{ zC^S6vgVG?jD~v7B@H7Ofjv-+03%URL4?%tf)musGA3pE>i#T%3l>cH>P$*RPQONlHJsEtquec{ig19F~fdIHf;`dpQ!T4d-FVLCV z2^owZmj3$x-SjWN0+%OO29pDy*6$0P9-N?(QkUt1LI&f9slOoeSecOw;JgZ&s}XQO zl#`%(V=B=|Gx)A z=TTyujb58(NKP}o^PcW=SYhOSfp0ABwO31P?_EvRM5_5(7H1L?0q>Qc}>byn&h zK2HGkS@k$BSbLaBXjUi|nhd!zMhs;# zoE1V96P-Sz-1h|9?*vIdE$SaW>-}li1KNQATK&qQ!1#bkfx`h(BSX}*s(<(_1M;_r zO9BgQwtxX5XQ}?-^Sj>-do(>9GZ->Bq(Ju$G4Mfj!}evgsekzV2Xu#=2V(}Oq$AV> z$UJnz7IXCvpU?ho*dqZxYm4Io$hV-``2XLd{wHKKNWyLcgv{YtsDJpp?RUc-(9ABw zhxlKhGmQR!zX_eGgSe?({ln)YzZ>?jcsOS86nM(OY-C`t0iVI0<-w2*8uiZbU`%dM zIKY$!PTiAueqVr;#taNh9*h|cN)w$K6AIixb3zbvE7d=Io&oYlhKg(yXg2qwVf6Q4kPp%@g39)Lu%em89Z%`@=K zW?#j$g0TW5cIhY62GAYWtTT)}JDfN!vaUGT@n30@%tR-qOAQ^3?93M!6~2G>{e9;- zhbn_S`vlNh3yukF4?w#nCjDp75W3L7pew;Xqt(g$Qqu+j1%?ScGn^%v;pQ&_n-4KX z>$mO$#u)+{4=zi3b~xR=#Gt@ElR;DR0?$g&DrnIQ42s;dgfkfD?{;Fk7?8m@fl)`WeElbD^Pu@z!CV6 zQDVVF0fXjA3M_#S8ATRM6gGgu*9pXDaM%m3<3VG>ptD{-d|vajVNZ;YIzy~EgWA4w z23^k!txBL%s{elv|EtPiW%^$sqfDbLqg12xMe&MaGX;eL7KIfh%nC0`*c22B`4v`_ zX%u`>d|Ae*s9C-&rw3hkhek}JcrjHsbj!UVfCOuPw#Stp8VxHJ=sh0 z9)=7RP?ai%ycOk8l_~}d6%Nv%6NMED#C;%co$#;9M6sd^bWRb2gM{=00S`ll0;pcz zx_qckhC0p%oF0Y@4qzGA7<-6#EX*`!4+lxetm^@{9x+Dn{(eZ==%D`L^Q#{XdloRT zNIn7IW*q*HK@w8V9dP4jhRw}7g6i)dpgSP`e}D9!*8rjdwEvg$hlhuU=fNb#WXI&j zWJpO2YBw-~+Hc@}?|hyf$sCCs2_A_Y4DyPO2{s-!o{dSIN-7473Cs)v);AMoCPXGk zCJ4(%$%$AnXn(#4G39_80|Qe7<5q6)o>PtojGCMmK`k2Cz1gr`p$wXA7g?b9Y0q-z zO8E4gN#Wyj5wKn^28N4@p4=L2ml_!4yaWSadUz~Ado|g?cbhnX&&!hVU`%-bT*Bk` za}ev*b8(Mv&lwe-KL^T#^4!CiE-Hu(32Q0?}4inY~ES}sN z3>W1U5c^kH7?>JB?cEHw0(Zl$$sQ~fiM}k#EJ~SfptV&$e*XXd=|3NGpJ+CR(nS`K z+^e6Q934CuGiwUGd*{2IySU0k{AE|JMs|{r5fpXM@TUXGR9g3mTrDnHpYP4r-oW ziJe&vN?gv$o?S_uS&9ydUK5iJC{D`Ya+dd=l`u0^Dyz#`DoH9s(4j$->Ei$Ir~m(Z z&Z5kql<6kp@$Y-lPlg%do*hoC7bU@~cm97*|1bAI*t5fl{UYdYA_36Ko&+HeM#T@$ z`8_}(0@?+}m;n)Q$YF8d^k_+G$N{amX7}t!`TxBX+MeNIU}*Ty|Nnomt8*x5Ej6fL z$Z&w6L4)0a!F;Qk2ScWrC!>Rj2Vbr z1==r>$>^-%!I&5VpCM*p0QrM)<-hOzKN)8zdv-Y4Tx3yYQI=u=wXptuXZiX6`@es3 zo+vBI!7&YLfq(rW{XoQnA(PQr*n=_A9z4g#bk){_QIRo`;e*-_h6(?_-~Y#ts(S{* zhrl1qs$AfZ0JX6gW@>=bM%EuYaL)#mZW$Utd*eWU2Bi~_zXi6cdq{d7OjrV1^OC@> z1e?(uB zX;(#7DU%XY!71oTAE0*BjGv4%{(cwz#|Yjwg<$Fji_7I99GKJ6QR!;6Np4PWMF(GkDzi zMG2$Ai&BjWehr3;E6NxYYQQ78pfOI+IVtMw4h)j4kb4M0cc8%TUxdsJG;EPjfB*Ua z--bP)amAeqzrJh!;ZykaUE~jF#~El2$)x}icA)bcR)r_ee}BLIQ{ch-?|c67K4AFZ`{UR5`~Nu}NP6&qdhj2X|73c=g%oW&O z&oeN9_Jx7=qA^~8oV_>q0s})WCnNYwHb|K5Q-2TMzt8S*N{96#n};s-z3 z0uXym)Zc%u1)t{+I-9yN19mz!#2i!g_u%vYcs&?1lrlOc7!#T@0;OO*PKX*a_4l7+ z{xs}S$YA#DNZ`t7kn(``fh9m|@&x!FItUzm%*YV%*g>F?nel@nxJ}F;!2hrTD&BxB z&J5~j@IO2taPTpMK;uKWdIpgChQ|w-!DDQXki{JY8XhZP5kCMGXJ%l4t7m!O_lQ40 z_vIqS1&^5+7+%5nn-~{7Zs2Zs%)l_=DK|sFV;+I|rVNY|&G{cJFckQ&Z^%F4?+Z}- zgyF#ar!xQbAHHQ^WXKSh|I~qF!D9)5iBH)W1Ro3h*B4}9;D304q2V#Z2gQdT0`s4G zFid>P!qD*8gQ4-M!;J-x9e5TzW>8oF3XexD3cXMM{Qobd09DrjRoB3aD*y2R|JVQi z|9=IlClVPLUV(1f0JU8{Y;E1Z&H!3*QL6s_^RC|wd)7NKUbbLRdcdgiPP$Ac%MHAj zPm%c$g97s*PSspF6DRfyOe=U!WVkV(Xpo3>WLm|1D9a7RW03H4WImL_z@Yp3A~Wdh zQ#J-Z&>gx=dpO)d_aA}M@FDg0pVNOg?D_xw(Lc~Al!FYzhs!@$JvkCM6&V!1eYc11 ziUqB22IVtI`Z%cm{-{pS({H_8$iQ|Bq3b?#t_u)_i zjj{dvUilAn+PDz3Ok-eR@F;Kxou9|B6?C65r~3QP3cnlnyi@r7J?aN&ER#Wl_acj8 zhTE_2+kQeyM%D|C6$(mR&Q1ltz9;=;-2hs70a?!nI#bEeLHDJO!~CZ@0rQ`-GK4&2 zV_@K7XPEMW$6(4+0f&}H{0|m96#lRO5G42G|9>e9XuqyQoRMLLI3ok2Lem2#hQNnR z3=C4B{ve1g_g|m!qQS)n3;8(etGq;TOW zqrioy3=9{ZGOIK_WMpZ0$ixBZr-H_*LH08UEO^W!(C~ysA?Oh(eS+KuivJw-_n+H; zA;y|P;sWjr3>@wZ3=HlJ3=-}P3<@AN0}SXN0J9!2faW_H7#KJhEE)J2ED!KAa2{X; zODQv`H2i;{(jd_Q;xaZcIWRdGHt;YoGe{gzVNhX^00}e5HYhnLIjA;BFo-cIfJ8th zGRQL|9B2S@8x#@_$b-Zg7#$cIm>)2JuGnH=U|?ZjVX$uiks!$ih5`l#1|~2xU`Sv9 zUF^=-z>vVeAm5}nYhhk?Ptz=6ks*?|EZA`t&5Ie<)IU|?=g zaZqs(ao`8rz`$S((ZSHbPz+^(e89!P#URKa2o(YG5Evo|k_Cx@RD(qvbR3u*7{R8> zGbl9pIRrWcI`}&XKy9*M;Ah}Czz^Ej!@$5`4|ctB1H`@j3?QE>I0%4s+aCahjz9xH z*jR{4C9p5;4}fBf0nCQzQE`xg>Vbr`J=n(z4j?la7!(*lCdq@v><_RpaDwdt84C$< zaC9=*A7D7Z%m7LS3h+QD}!Q8~+0D{b5yCJd(4ig&sK}Iv!A7F9d zaS(0)GH0xeAdV+OEkAP-0|s4}QB*nyY~_74;p6dB~eY&ixHTZn;y0m1^U zt^~0`s>K)>7#JDs4=^e)DuBcmGAv}M2kWwbz{tP|Gfe^H)JBGSaKPI?;9(GAP=u-i zQT7ZFwGa|n1jL5e3USMSuv;K(i1>ey5(aw)Ca@U{3~CIj44Mp*V0XzM0J)rjK^~MM z80^6+K{0LsiFI%cgV;Ra5C=&sG6*psT*t`J$4~%@8ITl%A%iApQ688LO8wObK%ole zGJwJs!~%&_9{|aMcs$@zfQ5mBfrEh!Bml+nAexPm?I^L z!OSyMDS&~2l^LW)M#+(Zfx%HphJk@YOGb->frG=2gM)z~zyMUvad3dx1|YVA00#>b zgI%Dfs~rP_Q@sNNgHvLlryGN!qpPJ`rvU?FAtx&{gPEtN zrx^pAr>CYI1B00v$i^@*$swZT$RGj&430`791ILhjDehN3`U-nj&=-nf`Wo|4E12W zc8-pYN(}XmASZ%E92x34IT;xl>>M2fjTq`VI5_GV7#!;z85k5C9PJqy>cJ-0J2*Hv zFw`@#Fx4~Evv3I1gVa0Pf%I~+G1xfx{~Gt?_cDAY3~i*Se}GcdDMurMjKYQSnh=2$S)h=_=AFmQ;7NYsGEIT$=bLP8W6 zSnORK6c}tA929C8WE30}WEgB53><72Tr@zY@dN|}*f6-Hg!s5HFmRZGVjPl(9L+cw z7&urs1VAOfgd;~M_|fzVzOAXko*o_hAER78kj6N88{X&G>9@VFi0$5XkcPsV31kB z04}*zrZ6-tSjE6#GKHZ*L4kqMVhTgUKZXoOn<)$p9!=qW4pSH!?lLeixJ+SaaN}fP z@R-8T5XH>E;4_7xL4ZMkAz%tagD5KlL&6k>hS&9$3@K9>8X}k_7;2_4G=#D+Fg%z7 zn$KWhcrt~dfti7c;l&h&1`!4phBs3f8cY~e7(Ps4XmDY4VfX@~nO&HEfM`}1mIBZo zmp{+>7#P^VIb4E4jzNV%i@|`wjKPM%iNS-xk0FF1iXnj^jUk7jh@pa^j-iF2i(vx8 zG=@10ix^fgtYg^1u#4dU!!d?443`*gFx+E!!tjdW1H(6lKMYKa9E^O7B8*au3XE!u zI*dk)7L0a`E{tA`0gPdcF^ox!8H{<1C5%;!4UBD!J&cnWXE4rVT*A1DaRcKv#yyOO z7*8;sW4yw6i}3;DGsZWJpBR5I{$pfe;$jkD5@V8KQex6z(ql4VvSMOjU}gaAz!7DT zVbEYOU@&H|V6bIyVen?~X9!{lW{6;jXGmknWhh~&W@uvQWSGD(onaosVulqA8yR*n z9A-GlaGBv2!$XD_4DT7fGW=#>V&r7xV-yCvT$9m|(UQ@D(Sy;SF^n;mF@-Ukv6Qiv zv4ydRaU$b1#@UPu7?&`vU|h$zg>fh2e#WDWCmGK(US+(&c!%*3<5R|Wj9(akF)}c* zF>x~qGKn%tGbu4?F&Q#hFxfG=GI=otGDR`5!0Q_Z22nN!1`r>dejGu2kQf+593XUx z14Dx;gDC?n-8(okG)OUsGPpQ0G;lB|FnBmJG_Wu*F!(q!G=N%Bpf%YG7#1*uI5IS- zGB7ZJ)?Ib^rgv=>PvOG&OT`o^t%( z)cjve#OLyV(5M;%gKAp`cjHANUX`X3+)Wo%xK)}?ayMNx;#6(x;AxuV$fMG9oV)2_ zU;=YvBX{G)LYK3=ESPLGn!(I~rKqI(Yl~85$NSGcqh# z%*e1nnTcV+VkQPq4|0JrGsA*pW`+feq4+T~!vbX%h6Tx(n1PXrnT6HT%G%z+!^_*p z*DoM2C?qtTAv`)JHm;(wsv14F|hhGFb6U)1~D*)Fz_odFe!3NDKjvtGVn7TP&%N*tlXgSK@$WIXnxTC zpxK~#K;wf(gVqP_58C`3{2cNe@*E(VpFtIwB@EE+7F0hS1Q^&{eBetpddrXpIlU22eWrz`(@9 z!^g_N$?w6qfq{p~0gM$`L01!01@b+_kE7&h2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mk zz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By W2#kinXb6mkz-S1Jh5-FSfC~Ve(Ep48 literal 0 HcmV?d00001 From 3a0505d2f6f58778edc6407162566e782086105d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 10 Apr 2009 16:01:57 -0400 Subject: [PATCH 029/471] test to make a rom image --- tests/romimg.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 tests/romimg.c diff --git a/tests/romimg.c b/tests/romimg.c new file mode 100644 index 000000000..51ba68d8b --- /dev/null +++ b/tests/romimg.c @@ -0,0 +1,91 @@ +#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ + +#define BASE_UART1 0x80005000 +#define UART1_CON 0x80005000 +#define UART1_STAT 0x80005004 +#define UART1_DATA 0x80005008 +#define UR1CON 0x8000500c +#define UT1CON 0x80005010 +#define UART1_CTS 0x80005014 +#define UART1_BR 0x80005018 + +#include "embedded_types.h" + +#define reg(x) (*(volatile uint32_t *)(x)) + +#define DELAY 400000 + +void putc(uint8_t c); +void puts(uint8_t *s); +void put_hex(uint8_t x); +void put_hex16(uint16_t x); +void put_hex32(uint32_t x); + +const uint8_t hex[16]={'0','1','2','3','4','5','6','7', + '8','9','a','b','c','d','e','f'}; + +#define DUMP_BASE 0x00000000 +#define DUMP_LEN 0x00014000 +//#define DUMP_LEN 16 + +__attribute__ ((section ("startup"))) +void main(void) { + volatile uint32_t i; +// volatile uint8_t *data; + volatile uint8_t *data; + + /* Restore UART regs. to default */ + /* in case there is still bootloader state leftover */ + + reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + + /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ + #define INC 767 + #define MOD 9999 + reg(UART1_BR) = INC<<16 | MOD; + + /* see Section 11.5.1.2 Alternate Modes */ + /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ + /* From the datasheet: "The peripheral function will control operation of the pad IF */ + /* THE PERIPHERAL IS ENABLED. */ + reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ + reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + + for(data=DUMP_BASE; data<(DUMP_BASE+DUMP_LEN); data++) { + putc(*data); + } + + while(1); + +} + +void putc(uint8_t c) { + while(reg(UT1CON)==31); /* wait for there to be room in the buffer */ + reg(UART1_DATA) = c; +} + +void puts(uint8_t *s) { + while(s && *s!=0) { + putc(*s++); + } +} + +void put_hex(uint8_t x) +{ + putc(hex[x >> 4]); + putc(hex[x & 15]); +} + +void put_hex16(uint16_t x) +{ + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} + +void put_hex32(uint32_t x) +{ + put_hex((x >> 24) & 0xFF); + put_hex((x >> 16) & 0xFF); + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} From cdf33185d2939e17aea16c6afdff89e9bd5f8fbf Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 10 Apr 2009 17:35:55 -0400 Subject: [PATCH 030/471] correct memory locations --- qemu/hw/mc1322x.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu/hw/mc1322x.h b/qemu/hw/mc1322x.h index 1d7a36253..c2a822d50 100644 --- a/qemu/hw/mc1322x.h +++ b/qemu/hw/mc1322x.h @@ -11,7 +11,7 @@ #define MC1322X_ROMBASE 0x00000000 #define MC1322X_ROMSIZE 0x00014000 -#define MC1322X_RAMBASE 0x04000000 +#define MC1322X_RAMBASE 0x00400000 #define MC1322X_RAMSIZE 0x00020000 /* mc1322x.c */ From b897221403c1bd0edd7c820c5d3f31c4397dd3ed Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 10 Apr 2009 18:00:25 -0400 Subject: [PATCH 031/471] -mtdblock loads an image into the ROM section. --- qemu/hw/mc1322x.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/qemu/hw/mc1322x.c b/qemu/hw/mc1322x.c index 39bf026d5..b1e0ca2a4 100644 --- a/qemu/hw/mc1322x.c +++ b/qemu/hw/mc1322x.c @@ -11,6 +11,7 @@ #include "sysemu.h" #include "boards.h" #include "flash.h" +#include "block.h" static const int sector_len = 128 * 1024; @@ -36,9 +37,17 @@ struct mc1322x_state_s *mc1322x_init(void) cpu_register_physical_memory(MC1322X_RAMBASE, MC1322X_RAMSIZE, qemu_ram_alloc(MC1322X_RAMSIZE) | IO_MEM_RAM); + index = drive_get_index(IF_MTD, 0, 0); + fprintf(stderr, "rom device index %d\n",index); + cpu_register_physical_memory(MC1322X_ROMBASE, MC1322X_ROMSIZE,0); + if(0 Date: Fri, 10 Apr 2009 18:02:31 -0400 Subject: [PATCH 032/471] added a way to load the rom image --- qemu/README.qemu.mc1322x | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/qemu/README.qemu.mc1322x b/qemu/README.qemu.mc1322x index 1d43d576c..1509d38cf 100644 --- a/qemu/README.qemu.mc1322x +++ b/qemu/README.qemu.mc1322x @@ -7,11 +7,12 @@ Build qemu make Run with - arm-softmmu/qemu-system-arm -S -M mc1322x -nographic -pflash /home/malvira/mc1322x-tests/tests/blink-red.bin + arm-softmmu/qemu-system-arm -S -M mc1322x -nographic \ + -pflash ~/mc1322x-tests/tests/blink-red.bin \ + -mtdblock ~/mcmc1322x-tests/doc/mc13224v.img -which will load the bin at 0x00400000 and execution will start there (type c). - -I plan to add a way to load a rom image as well... +which will load mc13224v.img at 0x00000000 and blink-red.bin at +0x00400000 --- execution will start at 0x00400000 (type c). Debug with gdb: From 383cae03864e7386776adb39ca8bcfb3e38724bc Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 10 Apr 2009 18:08:37 -0400 Subject: [PATCH 033/471] remove debug print --- qemu/hw/mc1322x.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/qemu/hw/mc1322x.c b/qemu/hw/mc1322x.c index b1e0ca2a4..98e61b80a 100644 --- a/qemu/hw/mc1322x.c +++ b/qemu/hw/mc1322x.c @@ -38,14 +38,12 @@ struct mc1322x_state_s *mc1322x_init(void) qemu_ram_alloc(MC1322X_RAMSIZE) | IO_MEM_RAM); index = drive_get_index(IF_MTD, 0, 0); - fprintf(stderr, "rom device index %d\n",index); cpu_register_physical_memory(MC1322X_ROMBASE, MC1322X_ROMSIZE,0); if(0 Date: Fri, 10 Apr 2009 18:57:59 -0400 Subject: [PATCH 034/471] I need to allocate some mem for the cpu regs. --- qemu/hw/mc1322x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu/hw/mc1322x.c b/qemu/hw/mc1322x.c index 98e61b80a..db8eb57da 100644 --- a/qemu/hw/mc1322x.c +++ b/qemu/hw/mc1322x.c @@ -32,13 +32,13 @@ struct mc1322x_state_s *mc1322x_init(void) s->env); /* SDRAM & Internal Memory Storage */ + /* should probably allocate memory for all the cpu registers... I think that is where the emulation might be bombing */ cpu_register_physical_memory(MC1322X_ROMBASE, MC1322X_ROMSIZE, qemu_ram_alloc(MC1322X_ROMSIZE) | IO_MEM_RAM); cpu_register_physical_memory(MC1322X_RAMBASE, MC1322X_RAMSIZE, qemu_ram_alloc(MC1322X_RAMSIZE) | IO_MEM_RAM); index = drive_get_index(IF_MTD, 0, 0); - cpu_register_physical_memory(MC1322X_ROMBASE, MC1322X_ROMSIZE,0); if(0 Date: Fri, 10 Apr 2009 19:19:44 -0400 Subject: [PATCH 035/471] note about how I'm loading in the images --- qemu/hw/mc1322x.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qemu/hw/mc1322x.c b/qemu/hw/mc1322x.c index db8eb57da..1a49e3873 100644 --- a/qemu/hw/mc1322x.c +++ b/qemu/hw/mc1322x.c @@ -38,6 +38,11 @@ struct mc1322x_state_s *mc1322x_init(void) cpu_register_physical_memory(MC1322X_RAMBASE, MC1322X_RAMSIZE, qemu_ram_alloc(MC1322X_RAMSIZE) | IO_MEM_RAM); + /* shouldn't load the images in this way */ + /* should make a commandline arg for this and just load the file to ram */ + /* directly. */ + /* this may be possible with snapshots or something...*/ + index = drive_get_index(IF_MTD, 0, 0); if(0 Date: Sat, 11 Apr 2009 09:08:38 -0400 Subject: [PATCH 036/471] load memory with images directly. emulation runs correctly now. --- qemu/README.qemu.mc1322x | 7 ++++--- qemu/hw/mc1322x.c | 33 ++++++++++++++++----------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/qemu/README.qemu.mc1322x b/qemu/README.qemu.mc1322x index 1509d38cf..270575ac4 100644 --- a/qemu/README.qemu.mc1322x +++ b/qemu/README.qemu.mc1322x @@ -8,12 +8,13 @@ Build qemu Run with arm-softmmu/qemu-system-arm -S -M mc1322x -nographic \ - -pflash ~/mc1322x-tests/tests/blink-red.bin \ - -mtdblock ~/mcmc1322x-tests/doc/mc13224v.img + foo -which will load mc13224v.img at 0x00000000 and blink-red.bin at +which will load rom.img at 0x00000000 and ram.img at 0x00400000 --- execution will start at 0x00400000 (type c). +I'll be adding command line options for those images soon. + Debug with gdb: Build gdb for an arm target: diff --git a/qemu/hw/mc1322x.c b/qemu/hw/mc1322x.c index 1a49e3873..d7cf600fb 100644 --- a/qemu/hw/mc1322x.c +++ b/qemu/hw/mc1322x.c @@ -13,6 +13,8 @@ #include "flash.h" #include "block.h" +#include + static const int sector_len = 128 * 1024; /* Initialize a MC1322x (ARM7) */ @@ -20,6 +22,8 @@ struct mc1322x_state_s *mc1322x_init(void) { struct mc1322x_state_s *s; int index; + FILE *ram, *rom; + ram_addr_t ramoff, romoff; s = (struct mc1322x_state_s *) qemu_mallocz(sizeof(struct mc1322x_state_s)); @@ -31,29 +35,24 @@ struct mc1322x_state_s *mc1322x_init(void) register_savevm("cpu", 0, ARM_CPU_SAVE_VERSION, cpu_save, cpu_load, s->env); - /* SDRAM & Internal Memory Storage */ - /* should probably allocate memory for all the cpu registers... I think that is where the emulation might be bombing */ + /* should probably allocate memory for all the cpu registers also */ + + romoff = qemu_ram_alloc(MC1322X_ROMSIZE); cpu_register_physical_memory(MC1322X_ROMBASE, MC1322X_ROMSIZE, - qemu_ram_alloc(MC1322X_ROMSIZE) | IO_MEM_RAM); + romoff | IO_MEM_RAM); + ramoff = qemu_ram_alloc(MC1322X_RAMSIZE); cpu_register_physical_memory(MC1322X_RAMBASE, MC1322X_RAMSIZE, - qemu_ram_alloc(MC1322X_RAMSIZE) | IO_MEM_RAM); + ramoff | IO_MEM_RAM); - /* shouldn't load the images in this way */ - /* should make a commandline arg for this and just load the file to ram */ - /* directly. */ - /* this may be possible with snapshots or something...*/ + /* need to add a way to specify these images from the command line */ - index = drive_get_index(IF_MTD, 0, 0); - if(0env->regs[15] = 0x00400000; From ddc0cd6139c04bf9b74d446c8d905ac34e99f60d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 11 Apr 2009 10:37:08 -0400 Subject: [PATCH 037/471] progress.. need to make distclean not delete stuff in doc --- doc/cal1.dump | 11 ++++++++++ doc/radioinit | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 doc/cal1.dump create mode 100644 doc/radioinit diff --git a/doc/cal1.dump b/doc/cal1.dump new file mode 100644 index 000000000..486737c12 --- /dev/null +++ b/doc/cal1.dump @@ -0,0 +1,11 @@ +(gdb) x/40x 0x4051e4 +0x4051e4 : 0x80003048 0x00000f78 0x8000304c 0x00607707 +0x4051f4 : 0x00000000 0x000161a8 0x8000a050 0x0000047b +0x405204 : 0x8000a054 0x0000007b 0x00005dc0 0x00000000 +0x405214 : 0x00000000 0x00000000 0x00000000 0x00000000 +0x405224 : 0x00000000 0x80009400 0x00000017 0x8000a050 +0x405234 : 0x00000000 0x8000a054 0x00000000 0x80003048 +0x405244 : 0x00000f00 0x00000000 0x00000000 0x10000108 +0x405254 : 0x03180002 0x00042000 0x30000528 0x07380006 +0x405264 : 0x0000fd01 0xc60081ff 0xb90f0000 0xc51e0000 +0x405274: 0x00901200 0x05030080 0x00900480 0x00010180 diff --git a/doc/radioinit b/doc/radioinit new file mode 100644 index 000000000..ae5f31c9c --- /dev/null +++ b/doc/radioinit @@ -0,0 +1,56 @@ +Entries in ram are processed by SMACinitfrommemory and executeentry +(which does the work). I suspect that these entries are loaded in from +the rom from the rom_data_init call in the beginning stub. For now +we'll do the simple thing of performing the actions they do, but for +real it would be better to load out from ROM and execute the entries +in a similar way. That way, if the cal data changes in the ROM, our +code should still work. + +When radioinit first starts it seems to do checks for a 24MHZ clock +and if the buck should be enabled. Assuming 24MHZ and no buck the next +things it does is 5 entries in cal1 (40 bytes, 4 bytes per word, = 10 +words, 2 words per entry = 5 entrys) + +0x80003048 +0x00000f78 + +0x8000304c +0x00607707 + +the next entry is zero addr with val 0x000161a8... this is a delay +entry. Loop here 0x000161a8 times. then return. + +0x00000000 +0x000161a8 + +Then two more memory stuffs: + +0x8000a050 +0x0000047b + +0x8000a054 +0x0000007b + +then it seems like the emulator dies on the stack munging they do at +the end of InitFromMemory... but I think I've decoded the entry +enough to figure out the rest. + +but it looks like they then redo the first entry in cal1 + +0x80003048 +0x00000f78 + +then they do 11 entries in cal3 (need dump) + +then 4 entries from r5+24 (need to check what r5 has... 0x4051e4 +should dump this) + +then 44 regreplacment entries + +then flash init. (hrmm.. this might be important) + +then flyback init. + +then some other stuff. (need to check this out closley) + + From 9a896369b75c1158a16955d82ce16864fea9e4a5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 11 Apr 2009 14:24:26 -0400 Subject: [PATCH 038/471] ready to give this a shot. --- doc/caldump.txt | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ doc/radioinit | 73 +++++++++++++++++++++++++++++++++++++----- doc/ws.dis | 60 +++++++++++++++++----------------- 3 files changed, 180 insertions(+), 38 deletions(-) create mode 100644 doc/caldump.txt diff --git a/doc/caldump.txt b/doc/caldump.txt new file mode 100644 index 000000000..302698d60 --- /dev/null +++ b/doc/caldump.txt @@ -0,0 +1,85 @@ +0x4051b4 is the base that all the radioinit entries get offset from + + +r7 base +(gdb) x/128x $r7 +0x4051b4 : 0x80009000 0x80050300 0x80009004 0x00000101 +0x4051c4 : 0x80009008 0x00000000 0x8000900c 0x00000000 +0x4051d4 : 0x80009020 0x0000000c 0x80009000 0xc0050300 +0x4051e4 : 0x80003048 0x00000f78 0x8000304c 0x00607707 +0x4051f4 : 0x00000000 0x000161a8 0x8000a050 0x0000047b +0x405204 : 0x8000a054 0x0000007b 0x00005dc0 0x00000000 +0x405214 : 0x00000000 0x00000000 0x00000000 0x00000000 +0x405224 : 0x00000000 0x80009400 0x00000017 0x8000a050 +0x405234 : 0x00000000 0x8000a054 0x00000000 0x80003048 +0x405244 : 0x00000f00 0x00000000 0x00000000 0x10000108 +0x405254 : 0x03180002 0x00042000 0x30000528 0x07380006 +0x405264 : 0x0000fd01 0xc60081ff 0xb90f0000 ---Type to continue, or q to quit--- +0xc51e0000 +0x405274: 0x00901200 0x05030080 0x00900480 0x00010180 +0x405284: 0x00900800 0x0300fc80 0x8000900c 0x200400fc +0x405294: 0x0c800090 0x901500fc 0x03008000 0x3048c005 +0x4052a4: 0x0f788000 0x304c0000 0x77078000 0x1000fb60 +0x4052b4: 0x000161a8 0x8000a050 0x0000047b 0x8000a054 +0x4052c4: 0x0300e07b 0x17800094 0x500300fd 0xfc8000a0 +0x4052d4: 0xa0540300 0x00fc8000 0x00304805 0xf60f0080 +0x4052e4: 0x01081400 0x00021000 0x20000318 0x05280004 +0x4052f4: 0x00063000 0x00010738 0x00000000 0x00000000 +0x405304: 0x00000000 0x00000000 0x00000000 0x00000000 + + +(gdb) x/128x $r4 +0x402b54 : 0x80003000 0x00000019 0x80003048 0x00000ffb +0x402b64 : 0x80003000 0x00000018 0x80003048 0x00000f04 +0x402b74 : 0x00000000 0x000161a8 0x80003048 0x00000ffc +0x402b84 : 0x80009000 0x80050100 0x80009400 0x00020017 +0x402b94 : 0x80009a04 0x8185a0a4 0x80009a00 0x8c900025 +0x402ba4 : 0x00000000 0x00011194 0x80009a00 0x8c900021 +0x402bb4 : 0x80009a00 0x8c900027 0x00000000 0x00011194 +0x402bc4 : 0x80009a00 0x8c90002b 0x80009a00 0x8c90002f +0x402bd4 : 0x00000000 0x00011194 0x80009a00 0x8c900000 +0x402be4 : 0x80009000 0x80050300 0x80004118 0x00180012 +0x402bf4 : 0x80009204 0x00000605 0x80009208 0x00000504 +0x402c04 : 0x8000920c 0x00001111 ---Type to continue, or q to quit--- +0x80009210 0x0fc40000 +0x402c14 : 0x80009300 0x20046000 0x80009304 0x4005580c +0x402c24 : 0x80009308 0x40075801 0x8000930c 0x4005d801 +0x402c34 : 0x80009310 0x5a45d800 0x80009314 0x4a45d800 +0x402c44 : 0x80009318 0x40044000 0x80009380 0x00106000 +0x402c54 : 0x80009384 0x00083806 0x80009388 0x00093807 +0x402c64 : 0x8000938c 0x0009b804 0x80009390 0x000db800 +0x402c74 : 0x80009394 0x00093802 0x8000a008 0x00000015 +0x402c84 : 0x8000a018 0x00000002 0x8000a01c 0x0000000f +0x402c94 : 0x80009424 0x0000aaa0 0x80009434 0x01002020 +0x402ca4 : 0x80009438 0x016800fe 0x8000943c 0x8e578248 +0x402cb4 : 0x80009440 0x000000dd 0x80009444 0x00000946 +---Type to continue, or q to quit--- +0x402cc4 : 0x80009448 0x0000035a 0x8000944c 0x00100010 +0x402cd4 : 0x80009450 0x00000515 0x80009460 0x00397feb +0x402ce4 : 0x80009464 0x00180358 0x8000947c 0x00000455 +0x402cf4 : 0x800094e0 0x00000001 0x800094e4 0x00020003 +0x402d04 : 0x800094e8 0x00040014 0x800094ec 0x00240034 +0x402d14 : 0x800094f0 0x00440144 0x800094f4 0x02440344 +0x402d24 : 0x800094f8 0x04440544 0x80009470 0x0ee7fc00 +0x402d34 : 0x8000981c 0x00000082 0x80009828 0x0000002a +0x402d44 : 0x0006b5f8 0x0015000c 0x21fa4f39 0xf7fd0089 + + +(gdb) x/128x $r5 +0x405210 : 0x00000000 0x00000000 0x00000000 0x00000000 +0x405220 : 0x00000000 0x00000000 0x80009400 0x00000017 +0x405230 : 0x8000a050 0x00000000 0x8000a054 0x00000000 +0x405240 : 0x80003048 0x00000f00 0x00000000 0x00000000 +0x405250 : 0x10000108 0x03180002 0x00042000 0x30000528 +0x405260 : 0x07380006 0x0000fd01 0xc60081ff 0xb90f0000 +0x405270: 0xc51e0000 0x00901200 0x05030080 0x00900480 +0x405280: 0x00010180 0x00900800 0x0300fc80 0x8000900c +0x405290: 0x200400fc 0x0c800090 0x901500fc 0x03008000 +0x4052a0: 0x3048c005 0x0f788000 0x304c0000 0x77078000 +0x4052b0: 0x1000fb60 0x000161a8 0x8000a050 0x0000047b +0x4052c0: 0x8000a054 0x0300e07b 0x17800094 0x500300fd +0x4052d0: 0xfc8000a0 0xa0540300 0x00fc8000 0x00304805 +0x4052e0: 0xf60f0080 0x01081400 0x00021000 0x20000318 +0x4052f0: 0x05280004 0x00063000 0x00010738 0x00000000 +0x405300: 0x00000000 0x00000000 0x00000000 0x00000000 +0x405310: 0x00000000 0x00000000 0x00000000 0x00000000 diff --git a/doc/radioinit b/doc/radioinit index ae5f31c9c..881fe288c 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -35,22 +35,79 @@ then it seems like the emulator dies on the stack munging they do at the end of InitFromMemory... but I think I've decoded the entry enough to figure out the rest. -but it looks like they then redo the first entry in cal1 +then they do one entry of r4 base + 48 (gRadioTOCCal2_24MHz_c[0]) -0x80003048 -0x00000f78 +0x80009000 +0x80050100 -then they do 11 entries in cal3 (need dump) +then they do 11 entries in cal3 and reg replacment (first two have delays) -then 4 entries from r5+24 (need to check what r5 has... 0x4051e4 -should dump this) +0x402b8c : 0x80009400 0x00020017 0x80009a04 0x8185a0a4 +0x402b9c : 0x80009a00 0x8c900025 0x00000000 0x00011194 +0x402bac : 0x80009a00 0x8c900021 0x80009a00 0x8c900027 +0x402bbc : 0x00000000 0x00011194 0x80009a00 0x8c90002b +0x402bcc : 0x80009a00 0x8c90002f 0x00000000 0x00011194 +0x402bdc : 0x80009a00 0x8c900000 0x80009000 0x80050300 +0x402bec : 0x80004118 0x00180012 0x80009204 0x00000605 +0x402bfc : 0x80009208 0x00000504 0x8000920c 0x00001111 +0x402c0c : 0x80009210 0x0fc40000 0x80009300 0x20046000 +0x402c1c : 0x80009304 0x4005580c 0x80009308 0x40075801 +0x402c2c : 0x8000930c 0x4005d801 0x80009310 0x5a45d800 +0x402c3c : 0x80009314 0x4a45d800 0x80009318 0x40044000 +---Type to continue, or q to quit--- +0x402c4c : 0x80009380 0x00106000 0x80009384 0x00083806 +0x402c5c : 0x80009388 0x00093807 0x8000938c 0x0009b804 +0x402c6c : 0x80009390 0x000db800 0x80009394 0x00093802 +0x402c7c : 0x8000a008 0x00000015 0x8000a018 0x00000002 +0x402c8c : 0x8000a01c 0x0000000f 0x80009424 0x0000aaa0 +0x402c9c : 0x80009434 0x01002020 0x80009438 0x016800fe +0x402cac : 0x8000943c 0x8e578248 0x80009440 0x000000dd +0x402cbc : 0x80009444 0x00000946 0x80009448 0x0000035a +0x402ccc : 0x8000944c 0x00100010 0x80009450 0x00000515 +0x402cdc : 0x80009460 0x00397feb 0x80009464 0x00180358 -then 44 regreplacment entries + +then 4 entries from r5+24 (buffer_radio_init and cal5) + +0x80009400 0x00000017 +0x405230 : 0x8000a050 0x00000000 0x8000a054 0x00000000 +0x405240 : 0x80003048 0x00000f00 + +then 43 entries from r4+152 (reg replacement) + +0x402bec : 0x80004118 0x00180012 0x80009204 0x00000605 +0x402bfc : 0x80009208 0x00000504 0x8000920c 0x00001111 +0x402c0c : 0x80009210 0x0fc40000 0x80009300 0x20046000 +0x402c1c : 0x80009304 0x4005580c 0x80009308 0x40075801 +0x402c2c : 0x8000930c 0x4005d801 0x80009310 0x5a45d800 +0x402c3c : 0x80009314 0x4a45d800 0x80009318 0x40044000 +0x402c4c : 0x80009380 0x00106000 0x80009384 0x00083806 +0x402c5c : 0x80009388 0x00093807 0x8000938c 0x0009b804 +0x402c6c : 0x80009390 0x000db800 0x80009394 0x00093802 +0x402c7c : 0x8000a008 0x00000015 0x8000a018 0x00000002 +0x402c8c : 0x8000a01c 0x0000000f 0x80009424 0x0000aaa0 +0x402c9c : 0x80009434 0x01002020 0x80009438 0x016800fe +0x402cac : 0x8000943c 0x8e578248 0x80009440 0x000000dd +0x402cbc : 0x80009444 0x00000946 0x80009448 0x0000035a +0x402ccc : 0x8000944c 0x00100010 0x80009450 0x00000515 +0x402cdc : 0x80009460 0x00397feb 0x80009464 0x00180358 +0x402cec : 0x8000947c 0x00000455 0x800094e0 0x00000001 +0x402cfc : 0x800094e4 0x00020003 0x800094e8 0x00040014 +0x402d0c : 0x800094ec 0x00240034 0x800094f0 0x00440144 +0x402d1c : 0x800094f4 0x02440344 0x800094f8 0x04440544 +0x402d2c : 0x80009470 0x0ee7fc00 0x8000981c 0x00000082 +0x402d3c : 0x80009828 0x0000002a then flash init. (hrmm.. this might be important) then flyback init. -then some other stuff. (need to check this out closley) +then maybe buckbypass sequence... 4 entries from r4+16 + +0x402b64 : 0x80003000 0x00000018 0x80003048 0x00000f04 +0x402b74 : 0x00000000 0x000161a8 0x80003048 0x00000ffc + + + diff --git a/doc/ws.dis b/doc/ws.dis index 5a38c5cdd..e62444f34 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -5186,13 +5186,13 @@ Disassembly of section P2: 402fce: 65b8 str r0, [r7, #88] // gRadioTOCCal2_N[88] 0x58 402fd0: 4837 ldr r0, [pc, #220] (4030b0 ) // r0 gets 4030b0: 016e3600 .word 0x016e3600 = 240000000 402fd2: 4286 cmp r6, r0 - 402fd4: d001 beq.n 402fda // if 24 MHz test for 24MHZ + 402fd4: d001 beq.n 402fda // if 24 MHz test for 24MHZ skips to endif 402fd6: 617c str r4, [r7, #20] // gRadioTOCCal2_N[20] 0x14 402fd8: 61fd str r5, [r7, #28] // gRadioTOCCal2_N[28] 0x1c 402fda: 4c36 ldr r4, [pc, #216] (4030b4 ) // else endif 4030b4: .word 0x00402dcc buck_enable 402fdc: 4d70 ldr r5, [pc, #448] (4031a0 ) // 0x0040544c ram_init_val 402fde: 7928 ldrb r0, [r5, #4] // load low byte - 402fe0: 2801 cmp r0, #1 // check if its 1 (it's not) + 402fe0: 2801 cmp r0, #1 // check if its 1 (it's not, it's 0) 402fe2: d106 bne.n 402ff2 // and skip stuff (to 2ff2,HERE) assume skip we have 24MHz 402fe4: 4834 ldr r0, [pc, #208] (4030b8 ) // 4030b8: .word 0x00000f7b 402fe6: 6378 str r0, [r7, #52] // what's r7? put f7b into gRadioTOCCal2_None24Mhz_c[52] 0x34 @@ -5201,9 +5201,9 @@ Disassembly of section P2: 402fec: 2110 movs r1, #16 402fee: 0020 lsls r0, r4, #0 402ff0: e009 b.n 403006 - 402ff2: 7968 ldrb r0, [r5, #5] // HERE: what's r5? looks like ram_init_val[5] 0x05 - 402ff4: 2801 cmp r0, #1 // another test. not one. (it's 0x1e) - 402ff6: d108 bne.n 40300a // maybe skip to THERE + 402ff2: 7968 ldrb r0, [r5, #5] // HERE: what's r5? looks like ram_init_val[5] i + 402ff4: 2801 cmp r0, #1 // another test. not one. (it's 0) skip to THERE + 402ff6: d108 bne.n 40300a // skip to THERE 402ff8: 4830 ldr r0, [pc, #192] (4030bc ) // 4030bc: 00000f7c .word 0x00000f7c 402ffa: 6378 str r0, [r7, #52] // put f7c into gRadioTOCCal2_None24Mhz_c[52] 0x34 402ffc: 3878 subs r0, #120 @@ -5213,33 +5213,33 @@ Disassembly of section P2: 403004: 3010 adds r0, #16 403006: f000 f96d bl 4032e4 // call InitFromMemory with setup vals? 32 bytes of buck_enable+16? 40300a: 2128 movs r1, #40 // THERE: chould have come from a skip r1 gets 40 - 40300c: 0038 lsls r0, r7, #0 // r0 is r7 (cal2) + 40300c: 0038 lsls r0, r7, #0 // r0 is r7 (cal2) r7 base 40300e: 3030 adds r0, #48 // now its cal2+48 which is 0x405420 (increment by sizeof?) 403010: f000 f968 bl 4032e4 // 40 entries of gRadioTOCCal2_None24Mhz+48?//i think this bombs b/c zero... 403014: 4826 ldr r0, [pc, #152] (4030b0 ) // 4030b0: 016e3600 .word 0x016e3600 403016: 4286 cmp r6, r0 - 403018: d103 bne.n 403022 // another test for 24MHz - 40301a: 2108 movs r1, #8 - 40301c: 0020 lsls r0, r4, #0 - 40301e: 3030 adds r0, #48 + 403018: d103 bne.n 403022 // another test for 24MHz branch to NEXT: if !=, but they are + 40301a: 2108 movs r1, #8 // 8 bytes = 1 entry + 40301c: 0020 lsls r0, r4, #0 // r4 base + 40301e: 3030 adds r0, #48 // r4 base+48 403020: e001 b.n 403026 // goto endif - 403022: 2130 movs r1, #48 // else, guissing else is for not 24MHz since r7 is involved - 403024: 0038 lsls r0, r7, #0 - 403026: f000 f95d bl 4032e4 // endif, do InitFromMemory, 8 entries from 00402dfc : - 40302a: 2158 movs r1, #88 - 40302c: 0020 lsls r0, r4, #0 + 403022: 2130 movs r1, #48 // NEXT: + 403024: 0038 lsls r0, r7, #0 // 48 bytes = 6 entries of r7+0 + 403026: f000 f95d bl 4032e4 // endif do the init + 40302a: 2158 movs r1, #88 // do 11 entries + 40302c: 0020 lsls r0, r4, #0 // of r4 base + 56 40302e: 3038 adds r0, #56 - 403030: f000 f958 bl 4032e4 // do another then do 88 entries from r4+56 0x2e14 (in cal 3) + 403030: f000 f958 bl 4032e4 // do another then do 11 entries from r4+56 0x2e14 (in cal 3) 403034: 481e ldr r0, [pc, #120] (4030b0 ) 403036: 4286 cmp r6, r0 // check for 24MHZ 403038: d004 beq.n 403044 // goto endif - 40303a: 2108 movs r1, #8 - 40303c: 0020 lsls r0, r4, #0 - 40303e: 3090 adds r0, #144 - 403040: f000 f950 bl 4032e4 - 403044: 2120 movs r1, #32 // endif + 40303a: 2108 movs r1, #8 // skip + 40303c: 0020 lsls r0, r4, #0 // skip + 40303e: 3090 adds r0, #144 // skip + 403040: f000 f950 bl 4032e4 // skip + 403044: 2120 movs r1, #32 // endif: four entries of 403046: 0028 lsls r0, r5, #0 - 403048: 3018 adds r0, #24 + 403048: 3018 adds r0, #24 // r5+24 40304a: f000 f94b bl 4032e4 // do 32 entries in r5+24 this might be zero... 40304e: 21ac movs r1, #172 403050: 0049 lsls r1, r1, #1 // r1 gets 344 @@ -5250,20 +5250,20 @@ Disassembly of section P2: 40305c: 0240 lsls r0, r0, #9 // r0 is now 0x1F000 40305e: f000 f8db bl 403218 // from flash --- this might be the regreplacment since that's in codespace... 403062: f000 f82f bl 4030c4 // looks like this happens... - 403066: 7928 ldrb r0, [r5, #4] + 403066: 7928 ldrb r0, [r5, #4] // 0 unless initfromflash does something to it 403068: 2801 cmp r0, #1 - 40306a: d101 bne.n 403070 - 40306c: 2110 movs r1, #16 - 40306e: e004 b.n 40307a + 40306a: d101 bne.n 403070 // say it doesn't branch, + 40306c: 2110 movs r1, #16 // r1 gets 16 + 40306e: e004 b.n 40307a // branch to 5 403070: 7968 ldrb r0, [r5, #5] 403072: 2801 cmp r0, #1 - 403074: d104 bne.n 403080 + 403074: d104 bne.n 403080 // skips an init from memory 403076: 2120 movs r1, #32 403078: 3410 adds r4, #16 - 40307a: 0020 lsls r0, r4, #0 - 40307c: f000 f932 bl 4032e4 // do 32 entries but now from 0x2e74 + 16 0x2e84 + 40307a: 0020 lsls r0, r4, #0 // 5: + 40307c: f000 f932 bl 4032e4 // do 4 entries but now from r4 + 16 of buck bypass 403080: 480f ldr r0, [pc, #60] (4030c0 ) - 403082: f000 f881 bl 403188 + 403082: f000 f881 bl 403188 // and a call to fill ram struct --- maybe important to the program? 403086: 2400 movs r4, #0 403088: 78e9 ldrb r1, [r5, #3] 40308a: 0620 lsls r0, r4, #24 From dc581a7876ca99f2a2d747e2f8afaeae85d3ee5e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 11 Apr 2009 15:02:59 -0400 Subject: [PATCH 039/471] I think that does what they do except for ram_fill_init and initfromflash --- doc/radioinit | 22 +--------- src/maca.c | 119 ++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 107 insertions(+), 34 deletions(-) diff --git a/doc/radioinit b/doc/radioinit index 881fe288c..608517fa0 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -47,25 +47,7 @@ then they do 11 entries in cal3 and reg replacment (first two have delays) 0x402bac : 0x80009a00 0x8c900021 0x80009a00 0x8c900027 0x402bbc : 0x00000000 0x00011194 0x80009a00 0x8c90002b 0x402bcc : 0x80009a00 0x8c90002f 0x00000000 0x00011194 -0x402bdc : 0x80009a00 0x8c900000 0x80009000 0x80050300 -0x402bec : 0x80004118 0x00180012 0x80009204 0x00000605 -0x402bfc : 0x80009208 0x00000504 0x8000920c 0x00001111 -0x402c0c : 0x80009210 0x0fc40000 0x80009300 0x20046000 -0x402c1c : 0x80009304 0x4005580c 0x80009308 0x40075801 -0x402c2c : 0x8000930c 0x4005d801 0x80009310 0x5a45d800 -0x402c3c : 0x80009314 0x4a45d800 0x80009318 0x40044000 ----Type to continue, or q to quit--- -0x402c4c : 0x80009380 0x00106000 0x80009384 0x00083806 -0x402c5c : 0x80009388 0x00093807 0x8000938c 0x0009b804 -0x402c6c : 0x80009390 0x000db800 0x80009394 0x00093802 -0x402c7c : 0x8000a008 0x00000015 0x8000a018 0x00000002 -0x402c8c : 0x8000a01c 0x0000000f 0x80009424 0x0000aaa0 -0x402c9c : 0x80009434 0x01002020 0x80009438 0x016800fe -0x402cac : 0x8000943c 0x8e578248 0x80009440 0x000000dd -0x402cbc : 0x80009444 0x00000946 0x80009448 0x0000035a -0x402ccc : 0x8000944c 0x00100010 0x80009450 0x00000515 -0x402cdc : 0x80009460 0x00397feb 0x80009464 0x00180358 - +0x402bdc : 0x80009a00 0x8c900000 then 4 entries from r5+24 (buffer_radio_init and cal5) @@ -75,7 +57,7 @@ then 4 entries from r5+24 (buffer_radio_init and cal5) then 43 entries from r4+152 (reg replacement) -0x402bec : 0x80004118 0x00180012 0x80009204 0x00000605 +0x402bec : 0x80004118 0x00180012 0x80009204 0x00000605 0x402bfc : 0x80009208 0x00000504 0x8000920c 0x00001111 0x402c0c : 0x80009210 0x0fc40000 0x80009300 0x20046000 0x402c1c : 0x80009304 0x4005580c 0x80009308 0x40075801 diff --git a/src/maca.c b/src/maca.c index 42a529cf9..b5984a4c9 100644 --- a/src/maca.c +++ b/src/maca.c @@ -1,16 +1,5 @@ #include "maca.h" -/* best format */ -#define MAX_DATA 43 -const uint32_t addr_reg_rep[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x8000920c,0x80009210,0x80009300,0x80009304,0x80009308,0x8000930c,0x80009310,0x80009314,0x80009318,0x80009380,0x80009384,0x80009388,0x8000938c,0x80009390,0x80009394,0x8000a008,0x8000a018,0x8000a01c,0x80009424,0x80009434,0x80009438,0x8000943c,0x80009440,0x80009444,0x80009448,0x8000944c,0x80009450,0x80009460,0x80009464,0x8000947c,0x800094e0,0x800094e4,0x800094e8,0x800094ec,0x800094f0,0x800094f4,0x800094f8,0x80009470,0x8000981c,0x80009828 }; - -const uint32_t data_reg_rep[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a }; - -#define MAX_CAL3 22 -const uint32_t addr_cal3[MAX_CAL3] = { 0x80009400,0x80009a04,0x80009a00,0x00000000,0x80009a00,0x80009a00,0x00000000,0x80009a00,0x80009a00,0x00000000,0x80009a00 }; - -const uint32_t data_cal3[MAX_CAL3] = {0x00020017,0x8185a0a4,0x8c900025,0x00011194,0x8c900021,0x8c900027,0x00011194,0x8c90002b,0x8c90002f,0x00011194,0x8c900000}; - void init_phy(void) { volatile uint32_t cnt; @@ -85,13 +74,115 @@ void flyback_init(void) { /* good luck and godspeed */ } +#define MAX_SEQ1 2 +const uint32_t addr_seq1[MAX_SEQ1] = { + 0x80003048, + 0x8000304c, +}; + +const uint32_t data_seq1[MAX_SEQ1] = { + 0x00000f78, + 0x00607707, +}; + + +#define MAX_SEQ2 2 +const uint32_t addr_seq2[MAX_SEQ2] = { + 0x8000a050, + 0x8000a054, +}; + +const uint32_t data_seq2[MAX_SEQ2] = { + 0x0000047b, + 0x0000007b, +}; + +#define MAX_CAL3_SEQ1 3 +const uint32_t addr_cal3_seq1[MAX_CAL3_SEQ1] = { 0x80009400,0x80009a04,0x80009a00, }; +const uint32_t data_cal3_seq1[MAX_CAL3_SEQ1] = {0x00020017,0x8185a0a4,0x8c900025, }; + +#define MAX_CAL3_SEQ2 2 +const uint32_t addr_cal3_seq2[MAX_CAL3_SEQ2] = { 0x80009a00,0x80009a00,}; +const uint32_t data_cal3_seq2[MAX_CAL3_SEQ2] = { 0x8c900021,0x8c900027,}; + +#define MAX_CAL3_SEQ3 1 +const uint32_t addr_cal3_seq3[MAX_CAL3_SEQ3] = { 0x80009a00 }; +const uint32_t data_cal3_seq3[MAX_CAL3_SEQ3] = { 0x8c900000 }; + +#define MAX_CAL5 4 +const uint32_t addr_cal5[MAX_CAL5] = { + 0x80009400, + 0x8000a050, + 0x8000a054, + 0x80003048, +}; +const uint32_t data_cal5[MAX_CAL5] = { + 0x00000017, + 0x00000000, + 0x00000000, + 0x00000f00, +}; + +#define MAX_DATA 43 +const uint32_t addr_reg_rep[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x8000920c,0x80009210,0x80009300,0x80009304,0x80009308,0x8000930c,0x80009310,0x80009314,0x80009318,0x80009380,0x80009384,0x80009388,0x8000938c,0x80009390,0x80009394,0x8000a008,0x8000a018,0x8000a01c,0x80009424,0x80009434,0x80009438,0x8000943c,0x80009440,0x80009444,0x80009448,0x8000944c,0x80009450,0x80009460,0x80009464,0x8000947c,0x800094e0,0x800094e4,0x800094e8,0x800094ec,0x800094f0,0x800094f4,0x800094f8,0x80009470,0x8000981c,0x80009828 }; + +const uint32_t data_reg_rep[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a }; + +void vreg_init(void) { + volatile uint32_t i; + *(volatile uint32_t *)(0x80003000) = 0x00000018; /* set default state */ + *(volatile uint32_t *)(0x80003048) = 0x00000f04; /* bypass the buck */ + for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ +// while((((*(volatile uint32_t *)(0x80003018))>>17) & 1) !=1) { continue; } /* wait for the bypass to take */ + *(volatile uint32_t *)(0x80003048) = 0x00000ffc; /* start the regulators */ +} void radio_init(void) { uint32_t i; - /* cal 3 */ - for(i=0; i Date: Sat, 11 Apr 2009 15:29:21 -0400 Subject: [PATCH 040/471] more compact. --- src/maca.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/maca.c b/src/maca.c index b5984a4c9..abf1bf63d 100644 --- a/src/maca.c +++ b/src/maca.c @@ -134,57 +134,43 @@ void vreg_init(void) { *(volatile uint32_t *)(0x80003048) = 0x00000f04; /* bypass the buck */ for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ // while((((*(volatile uint32_t *)(0x80003018))>>17) & 1) !=1) { continue; } /* wait for the bypass to take */ - *(volatile uint32_t *)(0x80003048) = 0x00000ffc; /* start the regulators */ + *(volatile uint32_t *)(0x80003048) = 0x00000ff8; /* start the regulators */ } void radio_init(void) { uint32_t i; - /* sequence 1 */ for(i=0; i Date: Sat, 11 Apr 2009 17:17:37 -0400 Subject: [PATCH 041/471] checkpoint --- doc/radioinit | 10 ++++++++++ doc/ws.dis | 20 ++++++++++---------- tests/rftest-rx.c | 15 ++------------- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/doc/radioinit b/doc/radioinit index 608517fa0..e9e15ec3e 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -92,4 +92,14 @@ then maybe buckbypass sequence... 4 entries from r4+16 +RadioInit is (roughly): + SMAC_InitFromMemory(gRadioTOCCal1,40); + SMAC_InitFromMemeory(gRadioTOCCal2_24MHz_c,8); + SMAC_InitFromMemeory(gRadioTOCCal3,88); + SMAC_InitFromMemeory(gRadioTOCCal5,32); + SMAC_InitFromMemeory(gRadioInit_RegReplacement_c,344); + SMAC_InitFromFlash(0x1F000); + SMAC_InitFlybackSettings(); + /* then they check stuff in ram_init_val */ + /* getting a dump of that now */ diff --git a/doc/ws.dis b/doc/ws.dis index e62444f34..049857ca6 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -5191,7 +5191,7 @@ Disassembly of section P2: 402fd8: 61fd str r5, [r7, #28] // gRadioTOCCal2_N[28] 0x1c 402fda: 4c36 ldr r4, [pc, #216] (4030b4 ) // else endif 4030b4: .word 0x00402dcc buck_enable 402fdc: 4d70 ldr r5, [pc, #448] (4031a0 ) // 0x0040544c ram_init_val - 402fde: 7928 ldrb r0, [r5, #4] // load low byte + 402fde: 7928 ldrb r0, [r5, #4] // r0 gets 0 402fe0: 2801 cmp r0, #1 // check if its 1 (it's not, it's 0) 402fe2: d106 bne.n 402ff2 // and skip stuff (to 2ff2,HERE) assume skip we have 24MHz 402fe4: 4834 ldr r0, [pc, #208] (4030b8 ) // 4030b8: .word 0x00000f7b @@ -5214,14 +5214,14 @@ Disassembly of section P2: 403006: f000 f96d bl 4032e4 // call InitFromMemory with setup vals? 32 bytes of buck_enable+16? 40300a: 2128 movs r1, #40 // THERE: chould have come from a skip r1 gets 40 40300c: 0038 lsls r0, r7, #0 // r0 is r7 (cal2) r7 base - 40300e: 3030 adds r0, #48 // now its cal2+48 which is 0x405420 (increment by sizeof?) + 40300e: 3030 adds r0, #48 // now its cal2+48 which is Cal1 403010: f000 f968 bl 4032e4 // 40 entries of gRadioTOCCal2_None24Mhz+48?//i think this bombs b/c zero... 403014: 4826 ldr r0, [pc, #152] (4030b0 ) // 4030b0: 016e3600 .word 0x016e3600 403016: 4286 cmp r6, r0 403018: d103 bne.n 403022 // another test for 24MHz branch to NEXT: if !=, but they are 40301a: 2108 movs r1, #8 // 8 bytes = 1 entry 40301c: 0020 lsls r0, r4, #0 // r4 base - 40301e: 3030 adds r0, #48 // r4 base+48 + 40301e: 3030 adds r0, #48 // r4 base+48 (gRadioTOCCal2_24MHz_c) 403020: e001 b.n 403026 // goto endif 403022: 2130 movs r1, #48 // NEXT: 403024: 0038 lsls r0, r7, #0 // 48 bytes = 6 entries of r7+0 @@ -5232,14 +5232,14 @@ Disassembly of section P2: 403030: f000 f958 bl 4032e4 // do another then do 11 entries from r4+56 0x2e14 (in cal 3) 403034: 481e ldr r0, [pc, #120] (4030b0 ) 403036: 4286 cmp r6, r0 // check for 24MHZ - 403038: d004 beq.n 403044 // goto endif - 40303a: 2108 movs r1, #8 // skip + 403038: d004 beq.n 403044 // branch they are equal + 40303a: 2108 movs r1, #8 // skip 40303c: 0020 lsls r0, r4, #0 // skip 40303e: 3090 adds r0, #144 // skip - 403040: f000 f950 bl 4032e4 // skip + 403040: f000 f950 bl 4032e4 403044: 2120 movs r1, #32 // endif: four entries of 403046: 0028 lsls r0, r5, #0 - 403048: 3018 adds r0, #24 // r5+24 + 403048: 3018 adds r0, #24 // r5+24 RadioCal5 40304a: f000 f94b bl 4032e4 // do 32 entries in r5+24 this might be zero... 40304e: 21ac movs r1, #172 403050: 0049 lsls r1, r1, #1 // r1 gets 344 @@ -5248,9 +5248,9 @@ Disassembly of section P2: 403056: f000 f945 bl 4032e4 // do 344 entries from r4+152 0x2e74 (in reg replacment) 40305a: 20f8 movs r0, #248 // r0 gets 0xf8 40305c: 0240 lsls r0, r0, #9 // r0 is now 0x1F000 - 40305e: f000 f8db bl 403218 // from flash --- this might be the regreplacment since that's in codespace... + 40305e: f000 f8db bl 403218 // from flash --- this might be the regreplacment since that's in codespace... luckly we can call it directly and IAR links it in. looks like it sets a lot of the ram values that aren't getting set without it 403062: f000 f82f bl 4030c4 // looks like this happens... - 403066: 7928 ldrb r0, [r5, #4] // 0 unless initfromflash does something to it + 403066: 7928 ldrb r0, [r5, #4] // need a dump of r5 ram_init_val now 403068: 2801 cmp r0, #1 40306a: d101 bne.n 403070 // say it doesn't branch, 40306c: 2110 movs r1, #16 // r1 gets 16 @@ -5261,7 +5261,7 @@ Disassembly of section P2: 403076: 2120 movs r1, #32 403078: 3410 adds r4, #16 40307a: 0020 lsls r0, r4, #0 // 5: - 40307c: f000 f932 bl 4032e4 // do 4 entries but now from r4 + 16 of buck bypass + 40307c: f000 f932 bl 4032e4 // do 4 entries but from r4 of buck bypass 403080: 480f ldr r0, [pc, #60] (4030c0 ) 403082: f000 f881 bl 403188 // and a call to fill ram struct --- maybe important to the program? 403086: 2400 movs r4, #0 diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 211af0ced..96f5f14bc 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -97,21 +97,10 @@ void main(void) { reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ - /* turn on the voltage regulators for the radio */ - /* you clod! */ - for(i=0; i Date: Sat, 11 Apr 2009 17:48:43 -0400 Subject: [PATCH 042/471] working on a replacment radioinit using their calls. --- doc/radioinit | 49 +++++++++++++++++++++++++++++++++++++++++++------ doc/ws.dis | 34 +++++++++++++++++----------------- 2 files changed, 60 insertions(+), 23 deletions(-) diff --git a/doc/radioinit b/doc/radioinit index e9e15ec3e..1b4bc39ae 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -95,11 +95,48 @@ then maybe buckbypass sequence... 4 entries from r4+16 RadioInit is (roughly): SMAC_InitFromMemory(gRadioTOCCal1,40); - SMAC_InitFromMemeory(gRadioTOCCal2_24MHz_c,8); - SMAC_InitFromMemeory(gRadioTOCCal3,88); - SMAC_InitFromMemeory(gRadioTOCCal5,32); - SMAC_InitFromMemeory(gRadioInit_RegReplacement_c,344); + SMAC_InitFromMemory(gRadioTOCCal2_24MHz_c,8); + SMAC_InitFromMemory(gRadioTOCCal3_c,88); + SMAC_InitFromMemory(gRadioTOCCal5,32); + SMAC_InitFromMemory(gRadioInit_RegReplacement_c,344); SMAC_InitFromFlash(0x1F000); SMAC_InitFlybackSettings(); - /* then they check stuff in ram_init_val */ - /* getting a dump of that now */ + + v = get_ctov(0,ram_init_val[3]); +do { + ram_init_val[8] = v; + } while((v>>24)>16); + + +/* +After init from flash and flyback settings +ram_init_val - 004055d0 +004055d0 +base +0 +4 +8 +c +10 +14 +18 +1c +0000 00000000 00000000 00000000 00000000 00000000 00000000 80009400 00000017 + +u8RamValues +00405424 +base +0 +4 +8 +c +10 +14 +18 +1c +0000 0400009b 00000000 00000000 00010000 ff000000 00000000 00000000 00000000 +*/ + +/* + 40308e: f000 f86d bl 40316c //get_ctov(0,0x9b) + 403092: 1929 adds r1, r5, r4 // r4 = 0, r5 is &ram_init_val + 403094: 7208 strb r0, [r1, #8] + 403096: 1c64 adds r4, r4, #1 // r4=1 + 403098: 0620 lsls r0, r4, #24 + 40309a: 0e00 lsrs r0, r0, #24 + 40309c: 2810 cmp r0, #16 // + 40309e: d3f3 bcc.n 403088 // branch if higher + 4030a0: b001 add sp, #4 + 4030a2: 9804 ldr r0, [sp, #16] + 4030a4: bcf0 pop {r4, r5, r6, r7} + 4030a6: b001 add sp, #4 + 4030a8: 4700 bx r0 + 4030aa: 46c0 nop (mov r8, r8) + + +*/ + diff --git a/doc/ws.dis b/doc/ws.dis index 049857ca6..13c7ea688 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -5250,33 +5250,33 @@ Disassembly of section P2: 40305c: 0240 lsls r0, r0, #9 // r0 is now 0x1F000 40305e: f000 f8db bl 403218 // from flash --- this might be the regreplacment since that's in codespace... luckly we can call it directly and IAR links it in. looks like it sets a lot of the ram values that aren't getting set without it 403062: f000 f82f bl 4030c4 // looks like this happens... - 403066: 7928 ldrb r0, [r5, #4] // need a dump of r5 ram_init_val now + 403066: 7928 ldrb r0, [r5, #4] // need a dump of r5 ram_init_val now appears to be 0 403068: 2801 cmp r0, #1 - 40306a: d101 bne.n 403070 // say it doesn't branch, - 40306c: 2110 movs r1, #16 // r1 gets 16 - 40306e: e004 b.n 40307a // branch to 5 - 403070: 7968 ldrb r0, [r5, #5] - 403072: 2801 cmp r0, #1 - 403074: d104 bne.n 403080 // skips an init from memory + 40306a: d101 bne.n 403070 // branches + 40306c: 2110 movs r1, #16 + 40306e: e004 b.n 40307a + 403070: 7968 ldrb r0, [r5, #5] // appears to be 0 + 403072: 2801 cmp r0, #1 + 403074: d104 bne.n 403080 // branches to 6: 403076: 2120 movs r1, #32 403078: 3410 adds r4, #16 40307a: 0020 lsls r0, r4, #0 // 5: 40307c: f000 f932 bl 4032e4 // do 4 entries but from r4 of buck bypass - 403080: 480f ldr r0, [pc, #60] (4030c0 ) + 403080: 480f ldr r0, [pc, #60] (4030c0 ) // 6: 403082: f000 f881 bl 403188 // and a call to fill ram struct --- maybe important to the program? 403086: 2400 movs r4, #0 - 403088: 78e9 ldrb r1, [r5, #3] + 403088: 78e9 ldrb r1, [r5, #3] // appears to be 0x9b 40308a: 0620 lsls r0, r4, #24 - 40308c: 0e00 lsrs r0, r0, #24 - 40308e: f000 f86d bl 40316c - 403092: 1929 adds r1, r5, r4 - 403094: 7208 strb r0, [r1, #8] - 403096: 1c64 adds r4, r4, #1 + 40308c: 0e00 lsrs r0, r0, #24 + 40308e: f000 f86d bl 40316c //v=get_ctov(0,0x9b) + 403092: 1929 adds r1, r5, r4 // r4 = 0, r5 is &ram_init_val + 403094: 7208 strb r0, [r1, #8] + 403096: 1c64 adds r4, r4, #1 // r4 = 1 403098: 0620 lsls r0, r4, #24 40309a: 0e00 lsrs r0, r0, #24 - 40309c: 2810 cmp r0, #16 - 40309e: d3f3 bcc.n 403088 - 4030a0: b001 add sp, #4 + 40309c: 2810 cmp r0, #16 + 40309e: d3f3 bcc.n 403088 // branch if (v>>24)>16 + 4030a0: b001 add sp, #4 // return? 4030a2: 9804 ldr r0, [sp, #16] 4030a4: bcf0 pop {r4, r5, r6, r7} 4030a6: b001 add sp, #4 From ebd1b7a2e49da1f1db176bb522ade6aa52d416a2 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 11 Apr 2009 17:51:04 -0400 Subject: [PATCH 043/471] correction --- doc/radioinit | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/radioinit b/doc/radioinit index 1b4bc39ae..0835b58ea 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -102,9 +102,9 @@ RadioInit is (roughly): SMAC_InitFromFlash(0x1F000); SMAC_InitFlybackSettings(); - v = get_ctov(0,ram_init_val[3]); + v = get_ctov(0,u8RamValues[3]); do { - ram_init_val[8] = v; + u8RamValues[8] = v; } while((v>>24)>16); From 63a7b545936e5fc43b15e7eacff5e11650dc9c28 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 12 Apr 2009 09:31:22 -0400 Subject: [PATCH 044/471] my interpretaion of the get_ctov/radio_buffer_init loop was incorrect. I think it is right now. --- doc/radioinit | 9 +++++---- doc/ws.dis | 8 ++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/radioinit b/doc/radioinit index 0835b58ea..2ca4094f5 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -102,10 +102,11 @@ RadioInit is (roughly): SMAC_InitFromFlash(0x1F000); SMAC_InitFlybackSettings(); - v = get_ctov(0,u8RamValues[3]); -do { - u8RamValues[8] = v; - } while((v>>24)>16); + uint8_t i; + uint8_t buffer_radio_init[16]; + for(i=0; i<16; i++) { + buffer_radio_init[i] = get_ctov(i,u8RamValues[3]); + } /* diff --git a/doc/ws.dis b/doc/ws.dis index 13c7ea688..a87691f16 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -5266,16 +5266,16 @@ Disassembly of section P2: 403082: f000 f881 bl 403188 // and a call to fill ram struct --- maybe important to the program? 403086: 2400 movs r4, #0 403088: 78e9 ldrb r1, [r5, #3] // appears to be 0x9b - 40308a: 0620 lsls r0, r4, #24 + 40308a: 0620 lsls r0, r4, #24 // clobber high 24 bits 40308c: 0e00 lsrs r0, r0, #24 40308e: f000 f86d bl 40316c //v=get_ctov(0,0x9b) 403092: 1929 adds r1, r5, r4 // r4 = 0, r5 is &ram_init_val 403094: 7208 strb r0, [r1, #8] - 403096: 1c64 adds r4, r4, #1 // r4 = 1 - 403098: 0620 lsls r0, r4, #24 + 403096: 1c64 adds r4, r4, #1 // r4 = r4+1 + 403098: 0620 lsls r0, r4, #24 // clobber high 24 bits 40309a: 0e00 lsrs r0, r0, #24 40309c: 2810 cmp r0, #16 - 40309e: d3f3 bcc.n 403088 // branch if (v>>24)>16 + 40309e: d3f3 bcc.n 403088 // branch if 16 > r0 4030a0: b001 add sp, #4 // return? 4030a2: 9804 ldr r0, [sp, #16] 4030a4: bcf0 pop {r4, r5, r6, r7} From bc68d77b663a87531d4c55c8b2993cadbebc963a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 12 Apr 2009 18:31:52 -0400 Subject: [PATCH 045/471] Lots of progress! --- doc/radioinit | 43 ++++++++++++++++++++++++++++++++++++++++--- doc/ws.dis | 8 ++++---- src/maca.c | 5 +++++ 3 files changed, 49 insertions(+), 7 deletions(-) diff --git a/doc/radioinit b/doc/radioinit index 2ca4094f5..b1dd2ac8c 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -89,9 +89,6 @@ then maybe buckbypass sequence... 4 entries from r4+16 0x402b64 : 0x80003000 0x00000018 0x80003048 0x00000f04 0x402b74 : 0x00000000 0x000161a8 0x80003048 0x00000ffc - - - RadioInit is (roughly): SMAC_InitFromMemory(gRadioTOCCal1,40); @@ -101,6 +98,9 @@ RadioInit is (roughly): SMAC_InitFromMemory(gRadioInit_RegReplacement_c,344); SMAC_InitFromFlash(0x1F000); SMAC_InitFlybackSettings(); + SMAC_InitFromMemory(gBuckByPass_c,16); + + fill_ram_struct(&u8RamValues); uint8_t i; uint8_t buffer_radio_init[16]; @@ -109,6 +109,43 @@ RadioInit is (roughly): } +Some kind of success! + +This replacment works: + + + // RadioInit(PLATFORM_CLOCK, gDigitalClock_PN_c, u32LoopDiv); // need this to work + + /* my replacment for RadioInit, flyback and vreg have been separated out */ + radio_init(); + // SMAC_InitFromMemory(gRadioTOCCal1,40); + // *(volatile uint32_t *)0x80009000 = 0x80050100; + // SMAC_InitFromMemory(gRadioTOCCal2_24MHz_c,8); + // SMAC_InitFromMemory(gRadioTOCCal3_c,88); + // SMAC_InitFromMemory(gRadioTOCCal5,32); + // SMAC_InitFromMemory(gRadioInit_RegReplacement_c,344); + SMAC_InitFromFlash(0x1F000); + // SMAC_InitFlybackSettings(); + flyback_init(); + // SMAC_InitFromMemory(gBuckByPass_c,16); + vreg_init(); + + *((uint32_t *)&u8RamValues) = 0x4c20030a; + fill_ram_struct(&u8RamValues); + + for(j=0; j<16; j++) { + // buffer_radio_init[j] = get_ctov(j,u8RamValues[3]); + buffer_radio_init[j] = get_ctov(j,0x4c); //0x4c loads the right values into buffer_radio_init... but why isn't RamValues correct? + } + + +Which means my radio_init, and vreg_init are good. It also means that +my intreprtation of buffer_radio_init is correct. It may also mean +that u8RamValues isn't important since I just set it's value. + +That means I only have InitFromFlash to replace now! + + /* After init from flash and flyback settings ram_init_val - 004055d0 diff --git a/doc/ws.dis b/doc/ws.dis index a87691f16..091490104 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -5265,10 +5265,10 @@ Disassembly of section P2: 403080: 480f ldr r0, [pc, #60] (4030c0 ) // 6: 403082: f000 f881 bl 403188 // and a call to fill ram struct --- maybe important to the program? 403086: 2400 movs r4, #0 - 403088: 78e9 ldrb r1, [r5, #3] // appears to be 0x9b + 403088: 78e9 ldrb r1, [r5, #3] // appears to be 0x4c 40308a: 0620 lsls r0, r4, #24 // clobber high 24 bits 40308c: 0e00 lsrs r0, r0, #24 - 40308e: f000 f86d bl 40316c //v=get_ctov(0,0x9b) + 40308e: f000 f86d bl 40316c //v=get_ctov(0,0x4c) 403092: 1929 adds r1, r5, r4 // r4 = 0, r5 is &ram_init_val 403094: 7208 strb r0, [r1, #8] 403096: 1c64 adds r4, r4, #1 // r4 = r4+1 @@ -5373,8 +5373,8 @@ Disassembly of section P2: 403168: bfffffff .word 0xbfffffff 0040316c : - 40316c: 4a04 ldr r2, [pc, #16] (403180 ) - 40316e: 4350 muls r0, r2 + 40316c: 4a04 ldr r2, [pc, #16] (403180 ) r2=0x00dfbe77 + 40316e: 4350 muls r0, r2 403170: 0589 lsls r1, r1, #22 403172: 1840 adds r0, r0, r1 403174: 4903 ldr r1, [pc, #12] (403184 ) diff --git a/src/maca.c b/src/maca.c index abf1bf63d..6973113a1 100644 --- a/src/maca.c +++ b/src/maca.c @@ -61,6 +61,7 @@ void reset_maca(void) 4030e8: 00ffffff .word 0x00ffffff */ +/* tested and is good */ #define FLYBACK_BASE 0x80009a000 void flyback_init(void) { uint32_t val8, or; @@ -128,6 +129,8 @@ const uint32_t addr_reg_rep[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x800 const uint32_t data_reg_rep[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a }; + +/* has been tested and it good */ void vreg_init(void) { volatile uint32_t i; *(volatile uint32_t *)(0x80003000) = 0x00000018; /* set default state */ @@ -137,6 +140,8 @@ void vreg_init(void) { *(volatile uint32_t *)(0x80003048) = 0x00000ff8; /* start the regulators */ } + +/* radio_init has been tested to be good */ void radio_init(void) { uint32_t i; /* sequence 1 */ From 40207dc53395f8ce9123395525372b9607b86776 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 08:09:36 -0400 Subject: [PATCH 046/471] working on initfromflash --- doc/radioinit | 49 ++++++++++++++++--------------------- doc/ws.dis | 68 +++++++++++++++++++++++++-------------------------- 2 files changed, 55 insertions(+), 62 deletions(-) diff --git a/doc/radioinit b/doc/radioinit index b1dd2ac8c..2220d8d9c 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -145,36 +145,29 @@ that u8RamValues isn't important since I just set it's value. That means I only have InitFromFlash to replace now! +Actually, I should test if that is necessary --- I still find it a +little hard to believe that they put essential data on NVM --- except +they could set codeprotect so that clods won't erase it on accident. -/* -After init from flash and flyback settings -ram_init_val - 004055d0 -004055d0 -base +0 +4 +8 +c +10 +14 +18 +1c -0000 00000000 00000000 00000000 00000000 00000000 00000000 80009400 00000017 +See PLM/LibInterface/NVM.h for some docs. Looks like they put a +standard SST, ST, or Atmel spi flash in there (note the comment about +continuous read mode). -u8RamValues -00405424 -base +0 +4 +8 +c +10 +14 +18 +1c -0000 0400009b 00000000 00000000 00010000 ff000000 00000000 00000000 00000000 -*/ +MACPHY.a might use a ROM service for the flash init: -/* - 40308e: f000 f86d bl 40316c //get_ctov(0,0x9b) - 403092: 1929 adds r1, r5, r4 // r4 = 0, r5 is &ram_init_val - 403094: 7208 strb r0, [r1, #8] - 403096: 1c64 adds r4, r4, #1 // r4=1 - 403098: 0620 lsls r0, r4, #24 - 40309a: 0e00 lsrs r0, r0, #24 - 40309c: 2810 cmp r0, #16 // - 40309e: d3f3 bcc.n 403088 // branch if higher - 4030a0: b001 add sp, #4 - 4030a2: 9804 ldr r0, [sp, #16] - 4030a4: bcf0 pop {r4, r5, r6, r7} - 4030a6: b001 add sp, #4 - 4030a8: 4700 bx r0 - 4030aa: 46c0 nop (mov r8, r8) +0000f97c g F *ABS* 00000000 InitFromFlash + + ac: 4668 mov r0, sp + ae: f7ff fffe bl 0 + b2: 4669 mov r1, sp + b4: 780a ldrb r2, [r1, #0] + b6: 0001 lsls r1, r0, #0 + b8: 20f8 movs r0, #248 + ba: 0240 lsls r0, r0, #9 + bc: f7ff fffe bl 0 + +uint32_t InitFromFlash(uint32_t nvmAddress, uint32_t nLength); + +Which looks like InitFromFlash(0x1F00,?); -*/ - diff --git a/doc/ws.dis b/doc/ws.dis index 091490104..c146bb016 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -5460,57 +5460,57 @@ Disassembly of section P2: 00403218 : 403218: b570 push {r4, r5, r6, lr} 40321a: b08a sub sp, #40 - 40321c: 0006 lsls r6, r0, #0 + 40321c: 0006 lsls r6, r0, #0 // r0 has 0x1F000 from call in radioinit 40321e: a804 add r0, sp, #16 403220: 2102 movs r1, #2 - 403222: 7001 strb r1, [r0, #0] + 403222: 7001 strb r1, [r0, #0] // *0x1F000 = 2; 403224: 2101 movs r1, #1 - 403226: 7101 strb r1, [r0, #4] - 403228: f400 fce4 bl 3bf4 - 40322c: 482b ldr r0, [pc, #172] (4032dc ) - 40322e: 6800 ldr r0, [r0, #0] - 403230: 2107 movs r1, #7 - 403232: f7fd fb8d bl 400950 + 403226: 7101 strb r1, [r0, #4] // *0x1F000 = 1; + 403228: f400 fce4 bl 3bf4 // call to ROM: I assume this turns on the NVM reg + 40322c: 482b ldr r0, [pc, #172] (4032dc ) r0 = &u32SystemClock + 40322e: 6800 ldr r0, [r0, #0] // r0 = u32SystemClock + 403230: 2107 movs r1, #7 // r1 = 7 + 403232: f7fd fb8d bl 400950 //divide clock by 7? 403236: 9001 str r0, [sp, #4] - 403238: 9801 ldr r0, [sp, #4] - 40323a: 1e41 subs r1, r0, #1 - 40323c: 9101 str r1, [sp, #4] - 40323e: 2800 cmp r0, #0 - 403240: d1fa bne.n 403238 + 403238: 9801 ldr r0, [sp, #4] // loop: r0 has result + 40323a: 1e41 subs r1, r0, #1 // r1 = result - 1 + 40323c: 9101 str r1, [sp, #4] // r1 goes on the stack + 40323e: 2800 cmp r0, #0 // check if it's 0 + 403240: d1fa bne.n 403238 //go to loop if not zero, delay for vreg 403242: 4669 mov r1, sp - 403244: f403 fd38 bl 6cb8 - 403248: 2800 cmp r0, #0 - 40324a: d103 bne.n 403254 + 403244: f403 fd38 bl 6cb8 //call to ROM, looks like it returns 0 on fail and a pointer otherwise + 403248: 2800 cmp r0, #0 //0? + 40324a: d103 bne.n 403254 // branch to return0: 40324c: 4668 mov r0, sp - 40324e: 7800 ldrb r0, [r0, #0] - 403250: 2800 cmp r0, #0 - 403252: d101 bne.n 403258 - 403254: 2000 movs r0, #0 - 403256: e03e b.n 4032d6 - 403258: 2000 movs r0, #0 - 40325a: f403 ff13 bl 7084 - 40325e: 2008 movs r0, #8 - 403260: b501 push {r0, lr} + 40324e: 7800 ldrb r0, [r0, #0] // r0 gets where the return value points + 403250: 2800 cmp r0, #0 // return 0 if 0 + 403252: d101 bne.n 403258 //otherwise branch to 1: + 403254: 2000 movs r0, #0 //return0: + 403256: e03e b.n 4032d6 // branch to exit: + 403258: 2000 movs r0, #0 //1: r0 = 0 + 40325a: f403 ff13 bl 7084 //call to ROM: might need to dump this one... + 40325e: 2008 movs r0, #8 // r0 gets 8; + 403260: b501 push {r0, lr} // looks like stack setup for call to NVM_Read 403262: 0033 lsls r3, r6, #0 403264: aa04 add r2, sp, #16 403266: a802 add r0, sp, #8 403268: 7801 ldrb r1, [r0, #0] 40326a: 2000 movs r0, #0 40326c: f403 fd7c bl 6d68 - 403270: b002 add sp, #8 - 403272: 2800 cmp r0, #0 - 403274: d109 bne.n 40328a - 403276: 9802 ldr r0, [sp, #8] - 403278: 4919 ldr r1, [pc, #100] (4032e0 ) + 403270: b002 add sp, #8 + 403272: 2800 cmp r0, #0 // did it return 0? + 403274: d109 bne.n 40328a //if != branch to 2: + 403276: 9802 ldr r0, [sp, #8] //r0 gets something on the stack + 403278: 4919 ldr r1, [pc, #100] (4032e0 ) //r1 = 0x00000abc 40327a: 4288 cmp r0, r1 - 40327c: d105 bne.n 40328a + 40327c: d105 bne.n 40328a //branch to 2: if != 40327e: a802 add r0, sp, #8 403280: 88c1 ldrh r1, [r0, #6] 403282: 22ff movs r2, #255 403284: 1c92 adds r2, r2, #2 403286: 4291 cmp r1, r2 403288: d303 bcc.n 403292 - 40328a: 2001 movs r0, #1 + 40328a: 2001 movs r0, #1 // 2: 40328c: f403 fefa bl 7084 403290: e7e0 b.n 403254 403292: 2408 movs r4, #8 @@ -5518,7 +5518,7 @@ Disassembly of section P2: 403296: 1f2d subs r5, r5, #4 403298: e006 b.n 4032a8 40329a: a806 add r0, sp, #24 - 40329c: f7ff ff82 bl 4031a4 + 40329c: f7ff ff82 bl 4031a4 // so it looks like flash has entries it exectues... 4032a0: 2800 cmp r0, #0 4032a2: d00f beq.n 4032c4 4032a4: 0080 lsls r0, r0, #2 @@ -5543,7 +5543,7 @@ Disassembly of section P2: 4032ce: 2001 movs r0, #1 4032d0: f403 fed8 bl 7084 4032d4: 1d20 adds r0, r4, #4 - 4032d6: b00a add sp, #40 + 4032d6: b00a add sp, #40 //exit: 4032d8: e01c b.n 403314 4032da: 46c0 nop (mov r8, r8) 4032dc: 00405448 .word 0x00405448 From 2306e8cb6ec329181d395a00835a045ea42f1539 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 08:16:31 -0400 Subject: [PATCH 047/471] 9a000 is the RF_BASE, evidently. --- src/maca.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/maca.c b/src/maca.c index 6973113a1..a024f8542 100644 --- a/src/maca.c +++ b/src/maca.c @@ -62,16 +62,16 @@ void reset_maca(void) */ /* tested and is good */ -#define FLYBACK_BASE 0x80009a000 +#define RF_BASE 0x80009a000 void flyback_init(void) { uint32_t val8, or; - val8 = *(volatile uint32_t *)(FLYBACK_BASE+8); + val8 = *(volatile uint32_t *)(RF_BASE+8); or = val8 | 0x0000f7df; - *(volatile uint32_t *)(FLYBACK_BASE+8) = or; - *(volatile uint32_t *)(FLYBACK_BASE+12) = 0x00ffffff; - *(volatile uint32_t *)(FLYBACK_BASE+16) = (((uint32_t)0x00ffffff)>>12); - *(volatile uint32_t *)(FLYBACK_BASE) = 16; + *(volatile uint32_t *)(RF_BASE+8) = or; + *(volatile uint32_t *)(RF_BASE+12) = 0x00ffffff; + *(volatile uint32_t *)(RF_BASE+16) = (((uint32_t)0x00ffffff)>>12); + *(volatile uint32_t *)(RF_BASE) = 16; /* good luck and godspeed */ } From 43b9b47b99c53e6d26fc483b85e5f7cbc84fa5d9 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 08:19:46 -0400 Subject: [PATCH 048/471] found what I need to dump, just need the addr. --- doc/ws.dis | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/ws.dis b/doc/ws.dis index c146bb016..1f5ce82b3 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -5492,10 +5492,11 @@ Disassembly of section P2: 40325e: 2008 movs r0, #8 // r0 gets 8; 403260: b501 push {r0, lr} // looks like stack setup for call to NVM_Read 403262: 0033 lsls r3, r6, #0 - 403264: aa04 add r2, sp, #16 + 403264: aa04 add r2, sp, #16 //pDest dump this! 403266: a802 add r0, sp, #8 - 403268: 7801 ldrb r1, [r0, #0] - 40326a: 2000 movs r0, #0 + 403268: 7801 ldrb r1, [r0, #0] //nvmType + 40326a: 2000 movs r0, #0 //nvmInterface +//extern nvmErr_t NVM_Read(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes); 40326c: f403 fd7c bl 6d68 403270: b002 add sp, #8 403272: 2800 cmp r0, #0 // did it return 0? From 212052490342183527399a083c8a82e46e2cb014 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 09:55:35 -0400 Subject: [PATCH 049/471] notes. --- doc/radioinit | 11 ++++++++++- tests/rftest-rx.c | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/doc/radioinit b/doc/radioinit index 2220d8d9c..1196e05af 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -124,7 +124,7 @@ This replacment works: // SMAC_InitFromMemory(gRadioTOCCal3_c,88); // SMAC_InitFromMemory(gRadioTOCCal5,32); // SMAC_InitFromMemory(gRadioInit_RegReplacement_c,344); - SMAC_InitFromFlash(0x1F000); +// SMAC_InitFromFlash(0x1F000); // SMAC_InitFlybackSettings(); flyback_init(); // SMAC_InitFromMemory(gBuckByPass_c,16); @@ -170,4 +170,13 @@ uint32_t InitFromFlash(uint32_t nvmAddress, uint32_t nLength); Which looks like InitFromFlash(0x1F00,?); +Good news! It doesn't look like InitFromFlash is necessary. It might +just be a hook for them to patch the init that is grabbed from rom or +something. + +Checking if buffer_radio_init is important. If so, then I need to +figure out how it's used and, preferably, what it means. + +So buffer_radio_init is necessary for their code to work. I'm not sure +if it is necessary for the radio of if it's necessary for there app. diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 96f5f14bc..d14fc69dd 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -104,6 +104,7 @@ void main(void) { init_phy(); /* some kind of sequence in init phy from MACPHY.a dissassmbly */ + /* looks like it's flyback init */ // magic(); reg(MACA_CONTROL) = SMAC_MACA_CNTL_INIT_STATE; From 28e49b8a7d8614ae9522f13ae761e56771e8889f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 11:29:41 -0400 Subject: [PATCH 050/471] I think that is set_power --- doc/radioinit | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++ doc/ws.dis | 86 +++++++++++++++++++++++------------------------ src/maca.c | 75 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 210 insertions(+), 43 deletions(-) diff --git a/doc/radioinit b/doc/radioinit index 1196e05af..9335b3ed5 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -180,3 +180,95 @@ figure out how it's used and, preferably, what it means. So buffer_radio_init is necessary for their code to work. I'm not sure if it is necessary for the radio of if it's necessary for there app. +Now I need to figure these out: + + (void)MLMEPAOutputAdjust(gu8CurrentPowerLevel); + MLMESetChannelRequest((channel_num_t)gu8CurrentChannel); + + +#define gPowerLevel_m30dBm_c 0x00 +#define gPowerLevel_m28dBm_c 0x01 +#define gPowerLevel_m26dBm_c 0x02 +#define gPowerLevel_m24dBm_c 0x03 +#define gPowerLevel_m22dBm_c 0x04 +#define gPowerLevel_m20dBm_c 0x05 +#define gPowerLevel_m18dBm_c 0x06 +#define gPowerLevel_m16dBm_c 0x07 +#define gPowerLevel_m14dBm_c 0x08 +#define gPowerLevel_m12dBm_c 0x09 +#define gPowerLevel_m10dBm_c 0x0a +#define gPowerLevel_m8dBm_c 0x0b +#define gPowerLevel_m6dBm_c 0x0c +#define gPowerLevel_m4dBm_c 0x0d +#define gPowerLevel_m2dBm_c 0x0e +#define gPowerLevel_0dBm_c 0x0f +#define gPowerLevel_2dBm_c 0x10 +#define gPowerLevel_4dBm_c 0x11 +#define gPowerLevel_6dBm_c 0x12 + +gu8CurrentPowerLevel is set to gPowerLevel_0dBm_c = 0x0f + +some kind of look-up table for setpower + +004037e4 : + 4037e4: 0000080f .word 0x0000080f + 4037e8: 0000080f .word 0x0000080f + 4037ec: 0000080f .word 0x0000080f + 4037f0: 0000080f .word 0x0000080f + 4037f4: 0000081f .word 0x0000081f + 4037f8: 0000081f .word 0x0000081f + 4037fc: 0000081f .word 0x0000081f + 403800: 0000080f .word 0x0000080f + 403804: 0000080f .word 0x0000080f + 403808: 0000080f .word 0x0000080f + 40380c: 0000001f .word 0x0000001f + 403810: 0000000f .word 0x0000000f + 403814: 0000000f .word 0x0000000f + 403818: 00000816 .word 0x00000816 + 40381c: 0000001b .word 0x0000001b + 403820: 0000000b .word 0x0000000b + 403824: 00000802 .word 0x00000802 + 403828: 00000817 .word 0x00000817 + 40382c: 00000003 .word 0x00000003 + +00403830 : + 403830: 000022c0 .word 0x000022c0 + 403834: 000022c0 .word 0x000022c0 + 403838: 000022c0 .word 0x000022c0 + 40383c: 00002280 .word 0x00002280 + 403840: 00002303 .word 0x00002303 + 403844: 000023c0 .word 0x000023c0 + 403848: 00002880 .word 0x00002880 + 40384c: 000029f0 .word 0x000029f0 + 403850: 000029f0 .word 0x000029f0 + 403854: 000029f0 .word 0x000029f0 + 403858: 000029c0 .word 0x000029c0 + 40385c: 00002bf0 .word 0x00002bf0 + 403860: 000029f0 .word 0x000029f0 + 403864: 000028a0 .word 0x000028a0 + 403868: 00002800 .word 0x00002800 + 40386c: 00002ac0 .word 0x00002ac0 + 403870: 00002880 .word 0x00002880 + 403874: 00002a00 .word 0x00002a00 + 403878: 00002b00 .word 0x00002b00 + +0040387c : + 40387c: 000123a0 .word 0x000123a0 + 403880: 000163a0 .word 0x000163a0 + 403884: 0001a3a0 .word 0x0001a3a0 + 403888: 0001e3a0 .word 0x0001e3a0 + 40388c: 000223a0 .word 0x000223a0 + 403890: 000263a0 .word 0x000263a0 + 403894: 0002a3a0 .word 0x0002a3a0 + 403898: 0002e3a0 .word 0x0002e3a0 + 40389c: 000323a0 .word 0x000323a0 + 4038a0: 000363a0 .word 0x000363a0 + 4038a4: 0003a3a0 .word 0x0003a3a0 + 4038a8: 0003a3a0 .word 0x0003a3a0 + 4038ac: 0003e3a0 .word 0x0003e3a0 + 4038b0: 000423a0 .word 0x000423a0 + 4038b4: 000523a0 .word 0x000523a0 + 4038b8: 000423a0 .word 0x000423a0 + 4038bc: 0004e3a0 .word 0x0004e3a0 + 4038c0: 0004e3a0 .word 0x0004e3a0 + 4038c4: 0004e3a0 .word 0x0004e3a0 diff --git a/doc/ws.dis b/doc/ws.dis index 1f5ce82b3..d1df8244e 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -5311,32 +5311,32 @@ Disassembly of section P2: 004030ec : 4030ec: b430 push {r4, r5} 4030ee: 4b1d ldr r3, [pc, #116] (403164 ) - 4030f0: 681c ldr r4, [r3, #0] - 4030f2: 4d1d ldr r5, [pc, #116] (403168 ) - 4030f4: 4025 ands r5, r4 - 4030f6: 601d str r5, [r3, #0] - 4030f8: 60d9 str r1, [r3, #12] - 4030fa: 611a str r2, [r3, #16] - 4030fc: 6b19 ldr r1, [r3, #48] - 4030fe: 2202 movs r2, #2 - 403100: 430a orrs r2, r1 - 403102: 631a str r2, [r3, #48] - 403104: 6b19 ldr r1, [r3, #48] - 403106: 2204 movs r2, #4 - 403108: 430a orrs r2, r1 - 40310a: 631a str r2, [r3, #48] - 40310c: 0011 lsls r1, r2, #0 - 40310e: 4a06 ldr r2, [pc, #24] (403128 ) - 403110: 400a ands r2, r1 - 403112: 4923 ldr r1, [pc, #140] (4031a0 ) - 403114: 1808 adds r0, r1, r0 - 403116: 7a00 ldrb r0, [r0, #8] - 403118: 0200 lsls r0, r0, #8 - 40311a: 21f8 movs r1, #248 - 40311c: 0149 lsls r1, r1, #5 - 40311e: 4001 ands r1, r0 - 403120: 4311 orrs r1, r2 - 403122: 6319 str r1, [r3, #48] + 4030f0: 681c ldr r4, [r3, #0] //r4 = *0x80009800 + 4030f2: 4d1d ldr r5, [pc, #116] (403168 ) //0xbfffffff + 4030f4: 4025 ands r5, r4 // r5 = *0x80009800 & 0xbfffffff + 4030f6: 601d str r5, [r3, #0] // *0x80009800 = r5 + 4030f8: 60d9 str r1, [r3, #12] // *0x80009800+12 = r3 + 4030fa: 611a str r2, [r3, #16] // *0x80009800+12 = r2 + 4030fc: 6b19 ldr r1, [r3, #48] // r1 = *0x80009800+48 + 4030fe: 2202 movs r2, #2 // r2 = 2 + 403100: 430a orrs r2, r1 // r2 = r1 | 2 + 403102: 631a str r2, [r3, #48] // *0x80009800+48 = r2 + 403104: 6b19 ldr r1, [r3, #48] // r1 = *0x80009800+48 + 403106: 2204 movs r2, #4 // r2 = 4; + 403108: 430a orrs r2, r1 // r2 = r1 | 4 + 40310a: 631a str r2, [r3, #48] // // *0x80009800+48 = r2 + 40310c: 0011 lsls r1, r2, #0 // r1 = r2 + 40310e: 4a06 ldr r2, [pc, #24] (403128 ) r2 = 0xffffe0ff; + 403110: 400a ands r2, r1 // r2 = r1 & 0xffffe0ff; + 403112: 4923 ldr r1, [pc, #140] (4031a0 ) // r1 gets &ram_init_val + 403114: 1808 adds r0, r1, r0 // offset + 403116: 7a00 ldrb r0, [r0, #8] // r0 gets ram_init_val+8+offset = buffer_radio_init[offset] + 403118: 0200 lsls r0, r0, #8 // shift that left 8 + 40311a: 21f8 movs r1, #248 // r1 = 248 + 40311c: 0149 lsls r1, r1, #5 // r1 = 0x1F00 + 40311e: 4001 ands r1, r0 // r1 gets r0 & 0x1F00 + 403120: 4311 orrs r1, r2 // ored with r2 + 403122: 6319 str r1, [r3, #48] // r3+48 gets r1... 0x80009800+48 403124: bc30 pop {r4, r5} 403126: 4770 bx lr 403128: ffffe0ff .word 0xffffe0ff @@ -5370,7 +5370,7 @@ Disassembly of section P2: 40315e: 4770 bx lr 403160: 8000980c .word 0x8000980c 403164: 80009800 .word 0x80009800 - 403168: bfffffff .word 0xbfffffff + 403168: bfffffff .wor 0xbfffffff 0040316c : 40316c: 4a04 ldr r2, [pc, #16] (403180 ) r2=0x00dfbe77 @@ -6770,26 +6770,26 @@ Disassembly of section P2: 00403dc8 : 403dc8: b418 push {r3, r4} - 403dca: 0080 lsls r0, r0, #2 - 403dcc: 4a0a ldr r2, [pc, #40] (403df8 ) - 403dce: 5813 ldr r3, [r2, r0] - 403dd0: 4c0a ldr r4, [pc, #40] (403dfc ) - 403dd2: 6023 str r3, [r4, #0] - 403dd4: 1810 adds r0, r2, r0 - 403dd6: 304c adds r0, #76 - 403dd8: 6802 ldr r2, [r0, #0] - 403dda: 2901 cmp r1, #1 - 403ddc: d103 bne.n 403de6 + 403dca: 0080 lsls r0, r0, #2 // r0 = r0 * 4 + 403dcc: 4a0a ldr r2, [pc, #40] (403df8 ) // r2 = 0x004037e4 : + 403dce: 5813 ldr r3, [r2, r0] // r3 gets gPSMVAL_c[r0] + 403dd0: 4c0a ldr r4, [pc, #40] (403dfc ) //r4 = 0x8000a014 + 403dd2: 6023 str r3, [r4, #0] // *0x8000a014 = r3 + 403dd4: 1810 adds r0, r2, r0 // add the offset to gPSMVAL_c pointer + 403dd6: 304c adds r0, #76 // point to gPSMVAL_c+76+offset (gPAVAL_c[offset]) + 403dd8: 6802 ldr r2, [r0, #0] // r2 = gPAVAL_c[offset] + 403dda: 2901 cmp r1, #1 // 1 mode? (what's 1 mode?) don't know MLMEPAOutputPower sets r1 to 0 + 403ddc: d103 bne.n 403de6 // branch to 1: 403dde: 0021 lsls r1, r4, #0 403de0: 4b07 ldr r3, [pc, #28] (403e00 ) 403de2: 4013 ands r3, r2 403de4: e002 b.n 403dec - 403de6: 0021 lsls r1, r4, #0 - 403de8: 0c8b lsrs r3, r1, #18 - 403dea: 4313 orrs r3, r2 - 403dec: 60cb str r3, [r1, #12] - 403dee: 6cc0 ldr r0, [r0, #76] - 403df0: 6408 str r0, [r1, #64] + 403de6: 0021 lsls r1, r4, #0 // 1: r1 = r4 = 0x8000a014 + 403de8: 0c8b lsrs r3, r1, #18 // r3 = 0x8000a014 >> 18 + 403dea: 4313 orrs r3, r2 // r3 = (0x8000a014 >> 18) | gPAVAL_c[offset] + 403dec: 60cb str r3, [r1, #12] // *(0x8000a014 + 12) = r3 + 403dee: 6cc0 ldr r0, [r0, #76] // r0 = gPAVAL_c[offset]+76 (gAIMVAL_c) + 403df0: 6408 str r0, [r1, #64] // *(0x8000a014 + 64) = gAIMVAL_c[offset] 403df2: bc11 pop {r0, r4} 403df4: 4770 bx lr 403df6: 46c0 nop (mov r8, r8) diff --git a/src/maca.c b/src/maca.c index a024f8542..21117a56e 100644 --- a/src/maca.c +++ b/src/maca.c @@ -182,6 +182,81 @@ void radio_init(void) { } } +const uint32_t PSMVAL[19] = { + 0x0000080f, + 0x0000080f, + 0x0000080f, + 0x0000080f, + 0x0000081f, + 0x0000081f, + 0x0000081f, + 0x0000080f, + 0x0000080f, + 0x0000080f, + 0x0000001f, + 0x0000000f, + 0x0000000f, + 0x00000816, + 0x0000001b, + 0x0000000b, + 0x00000802, + 0x00000817, + 0x00000003, +}; + +const uint32_t PAVAL[19] = { + 0x000022c0, + 0x000022c0, + 0x000022c0, + 0x00002280, + 0x00002303, + 0x000023c0, + 0x00002880, + 0x000029f0, + 0x000029f0, + 0x000029f0, + 0x000029c0, + 0x00002bf0, + 0x000029f0, + 0x000028a0, + 0x00002800, + 0x00002ac0, + 0x00002880, + 0x00002a00, + 0x00002b00, +}; + +const uint32_t AIMVAL[19] = { + 0x000123a0, + 0x000163a0, + 0x0001a3a0, + 0x0001e3a0, + 0x000223a0, + 0x000263a0, + 0x0002a3a0, + 0x0002e3a0, + 0x000323a0, + 0x000363a0, + 0x0003a3a0, + 0x0003a3a0, + 0x0003e3a0, + 0x000423a0, + 0x000523a0, + 0x000423a0, + 0x0004e3a0, + 0x0004e3a0, + 0x0004e3a0, +}; + +#define ADDR_POW1 0x8000a014 +#define ADDR_POW2 ADDR_POW1 + 12 +#define ADDR_POW3 ADDR_POW1 + 64 +void set_power(uint8_t power) { + reg(ADDR_POW1) = PSMVAL[power]; + reg(ADDR_POW2) = (ADDR_POW1>>18) | PAVAL[power]; + reg(ADDR_POW3) = AIMVAL[power]; +} + /* * Do the ABORT-Wait-NOP-Wait sequence in order to prevent MACA malfunctioning. * This seqeunce is synchronous and no interrupts should be triggered when it is done. From 7ab82dd4ab4a0d8c7df807726623188642f7b45b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 12:13:38 -0400 Subject: [PATCH 051/471] that's how you set the channel --- doc/ws.dis | 16 +++++----- src/maca.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 8 deletions(-) diff --git a/doc/ws.dis b/doc/ws.dis index d1df8244e..0c93f9de6 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -5309,14 +5309,14 @@ Disassembly of section P2: 4030e8: 00ffffff .word 0x00ffffff 004030ec : - 4030ec: b430 push {r4, r5} + 4030ec: b430 push {r4, r5} //r0 = chan_num r1=vcodivF r2=vcodivI 4030ee: 4b1d ldr r3, [pc, #116] (403164 ) 4030f0: 681c ldr r4, [r3, #0] //r4 = *0x80009800 4030f2: 4d1d ldr r5, [pc, #116] (403168 ) //0xbfffffff 4030f4: 4025 ands r5, r4 // r5 = *0x80009800 & 0xbfffffff 4030f6: 601d str r5, [r3, #0] // *0x80009800 = r5 4030f8: 60d9 str r1, [r3, #12] // *0x80009800+12 = r3 - 4030fa: 611a str r2, [r3, #16] // *0x80009800+12 = r2 + 4030fa: 611a str r2, [r3, #16] // *0x80009800+16 = r2 4030fc: 6b19 ldr r1, [r3, #48] // r1 = *0x80009800+48 4030fe: 2202 movs r2, #2 // r2 = 2 403100: 430a orrs r2, r1 // r2 = r1 | 2 @@ -6366,12 +6366,12 @@ Disassembly of section P2: 403a38: e026 b.n 403a88 00403a3a : - 403a3a: 0081 lsls r1, r0, #2 - 403a3c: 4a03 ldr r2, [pc, #12] (403a4c ) - 403a3e: 5852 ldr r2, [r2, r1] - 403a40: 4903 ldr r1, [pc, #12] (403a50 ) - 403a42: 5c09 ldrb r1, [r1, r0] - 403a44: f7ff fb52 bl 4030ec + 403a3a: 0081 lsls r1, r0, #2 r0 is channel number, r1 is offset in words + 403a3c: 4a03 ldr r2, [pc, #12] (403a4c ) r2=0x00403c14 (gaRFSynVCODivF_c) + 403a3e: 5852 ldr r2, [r2, r1] r2 gets gaRFSynVCODivF_c[r1] + 403a40: 4903 ldr r1, [pc, #12] (403a50 ) r1=0x00403c04 (gaRFSynVCODivI_c) + 403a42: 5c09 ldrb r1, [r1, r0] r1 gets gaRFSynVCODivI_c[r1] + 403a44: f7ff fb52 bl 4030ec // SetChannel(chan,gaRFSynVCODivF_c[chan],gaRFSynVCODivI_c[chan]) 403a48: 2000 movs r0, #0 403a4a: e01d b.n 403a88 diff --git a/src/maca.c b/src/maca.c index 21117a56e..2af9bbb5d 100644 --- a/src/maca.c +++ b/src/maca.c @@ -248,6 +248,7 @@ const uint32_t AIMVAL[19] = { 0x0004e3a0, }; +/* tested and seems to be good */ #define ADDR_POW1 0x8000a014 #define ADDR_POW2 ADDR_POW1 + 12 #define ADDR_POW3 ADDR_POW1 + 64 @@ -257,6 +258,98 @@ void set_power(uint8_t power) { reg(ADDR_POW3) = AIMVAL[power]; } +const uint8_t VCODivI[4] = { + 0x2f2f2f2f, + 0x2f2f2f2f, + 0x3030302f, + 0x30303030, +}; + +const uint8_t VCODivI[16] = { + 0x2f, + 0x2f, + 0x2f, + 0x2f, + 0x2f, + 0x2f, + 0x2f, + 0x2f, + 0x30, + 0x30, + 0x30, + 0x2f, + 0x30, + 0x30, + 0x30, + 0x30, +}; + +const uint32_t VCODivF[16] = { + 0x00355555, + 0x006aaaaa, + 0x00a00000, + 0x00d55555, + 0x010aaaaa, + 0x01400000, + 0x01755555, + 0x01aaaaaa, + 0x01e00000, + 0x00155555, + 0x004aaaaa, + 0x00800000, + 0x00b55555, + 0x00eaaaaa, + 0x01200000, + 0x01555555, +}; + +const uint8_t ctov_4c[16] = { + 0x0b, + 0x0b, + 0x0b, + 0x0a, + 0x0d, + 0x0d, + 0x0c, + 0x0c, + 0x0f, + 0x0e, + 0x0e, + 0x0e, + 0x11, + 0x10, + 0x10, + 0x0f, +} + +#define ADDR_CHAN1 0x80009800 +#define ADDR_CHAN2 ADDR_CHAN1+12 +#define ADDR_CHAN3 ADDR_CHAN1+16 +#define ADDR_CHAN4 ADDR_CHAN1+48 +void set_channel(uint8_t chan) { + volatile uint32_t tmp; + + tmp = reg(ADDR_CHAN1); + tmp = tmp & 0xbfffffff; + reg(ADDR_CHAN1) = tmp; + + reg(ADDR_CHAN2) = VCODivF[chan]; + reg(ADDR_CHAN2) = VCODivI[chan]; + + tmp = reg(ADDR_CHAN4); + tmp = tmp | 2; + reg(ADDR_CHAN4) = tmp; + + tmp = reg(ADDR_CHAN4); + tmp = tmp | 4; + reg(ADDR_CHAN4) = tmp; + + tmp = tmp & 0xffffe0ff; + tmp | ((ctov_4c[chan]<<8)&0x1F00); + reg(ADDR_CHAN4) = tmp; + /* duh! */ +} + /* * Do the ABORT-Wait-NOP-Wait sequence in order to prevent MACA malfunctioning. * This seqeunce is synchronous and no interrupts should be triggered when it is done. From 4c2fcbecdcff2cea9a8561825014760e9d5b98d1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 12:14:34 -0400 Subject: [PATCH 052/471] removed old table --- src/maca.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/maca.c b/src/maca.c index 2af9bbb5d..82aa31ac7 100644 --- a/src/maca.c +++ b/src/maca.c @@ -258,13 +258,6 @@ void set_power(uint8_t power) { reg(ADDR_POW3) = AIMVAL[power]; } -const uint8_t VCODivI[4] = { - 0x2f2f2f2f, - 0x2f2f2f2f, - 0x3030302f, - 0x30303030, -}; - const uint8_t VCODivI[16] = { 0x2f, 0x2f, From 94b04d4cd20a330c67723b5f8c9550f64de53b37 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 12:18:11 -0400 Subject: [PATCH 053/471] added missing semicolon --- src/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/maca.c b/src/maca.c index 82aa31ac7..308d82e99 100644 --- a/src/maca.c +++ b/src/maca.c @@ -313,7 +313,7 @@ const uint8_t ctov_4c[16] = { 0x10, 0x10, 0x0f, -} +}; #define ADDR_CHAN1 0x80009800 #define ADDR_CHAN2 ADDR_CHAN1+12 From 35a49ef52bfb1ac7f988b01e583c398a0824fe01 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 12:33:31 -0400 Subject: [PATCH 054/471] found problems and fixed them. --- doc/ws.dis | 2 +- src/maca.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/ws.dis b/doc/ws.dis index 0c93f9de6..9088ac9a7 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -6371,7 +6371,7 @@ Disassembly of section P2: 403a3e: 5852 ldr r2, [r2, r1] r2 gets gaRFSynVCODivF_c[r1] 403a40: 4903 ldr r1, [pc, #12] (403a50 ) r1=0x00403c04 (gaRFSynVCODivI_c) 403a42: 5c09 ldrb r1, [r1, r0] r1 gets gaRFSynVCODivI_c[r1] - 403a44: f7ff fb52 bl 4030ec // SetChannel(chan,gaRFSynVCODivF_c[chan],gaRFSynVCODivI_c[chan]) + 403a44: f7ff fb52 bl 4030ec // SetChannel(chan,gaRFSynVCODivI_c[chan],gaRFSynVCODivF_c[chan]) 403a48: 2000 movs r0, #0 403a4a: e01d b.n 403a88 diff --git a/src/maca.c b/src/maca.c index 308d82e99..eb5e24f4e 100644 --- a/src/maca.c +++ b/src/maca.c @@ -326,8 +326,8 @@ void set_channel(uint8_t chan) { tmp = tmp & 0xbfffffff; reg(ADDR_CHAN1) = tmp; - reg(ADDR_CHAN2) = VCODivF[chan]; reg(ADDR_CHAN2) = VCODivI[chan]; + reg(ADDR_CHAN3) = VCODivF[chan]; tmp = reg(ADDR_CHAN4); tmp = tmp | 2; From 08c64f776ebdeb675ef4e146dd2c487ebfbb60a0 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 12:45:46 -0400 Subject: [PATCH 055/471] didn't actually do the last step. fixed. --- doc/ws.dis | 4 ++-- src/maca.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/ws.dis b/doc/ws.dis index 9088ac9a7..5be0bc013 100644 --- a/doc/ws.dis +++ b/doc/ws.dis @@ -5309,7 +5309,7 @@ Disassembly of section P2: 4030e8: 00ffffff .word 0x00ffffff 004030ec : - 4030ec: b430 push {r4, r5} //r0 = chan_num r1=vcodivF r2=vcodivI + 4030ec: b430 push {r4, r5} //r0 = chan_num r1=vcodivI r2=vcodivF 4030ee: 4b1d ldr r3, [pc, #116] (403164 ) 4030f0: 681c ldr r4, [r3, #0] //r4 = *0x80009800 4030f2: 4d1d ldr r5, [pc, #116] (403168 ) //0xbfffffff @@ -6370,7 +6370,7 @@ Disassembly of section P2: 403a3c: 4a03 ldr r2, [pc, #12] (403a4c ) r2=0x00403c14 (gaRFSynVCODivF_c) 403a3e: 5852 ldr r2, [r2, r1] r2 gets gaRFSynVCODivF_c[r1] 403a40: 4903 ldr r1, [pc, #12] (403a50 ) r1=0x00403c04 (gaRFSynVCODivI_c) - 403a42: 5c09 ldrb r1, [r1, r0] r1 gets gaRFSynVCODivI_c[r1] + 403a42: 5c09 ldrb r1, [r1, r0] r1 gets gaRFSynVCODivI_c[r0] 403a44: f7ff fb52 bl 4030ec // SetChannel(chan,gaRFSynVCODivI_c[chan],gaRFSynVCODivF_c[chan]) 403a48: 2000 movs r0, #0 403a4a: e01d b.n 403a88 diff --git a/src/maca.c b/src/maca.c index eb5e24f4e..cd27d2b7f 100644 --- a/src/maca.c +++ b/src/maca.c @@ -338,7 +338,7 @@ void set_channel(uint8_t chan) { reg(ADDR_CHAN4) = tmp; tmp = tmp & 0xffffe0ff; - tmp | ((ctov_4c[chan]<<8)&0x1F00); + tmp = tmp | (((ctov_4c[chan])<<8)&0x1F00); reg(ADDR_CHAN4) = tmp; /* duh! */ } From ebbcebee3a82c00c2119e5ca8f3babc3abafc3a4 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 12:49:28 -0400 Subject: [PATCH 056/471] set channel is good. --- src/maca.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/maca.c b/src/maca.c index cd27d2b7f..7ab3d681b 100644 --- a/src/maca.c +++ b/src/maca.c @@ -315,6 +315,7 @@ const uint8_t ctov_4c[16] = { 0x0f, }; +/* tested good */ #define ADDR_CHAN1 0x80009800 #define ADDR_CHAN2 ADDR_CHAN1+12 #define ADDR_CHAN3 ADDR_CHAN1+16 From b8a7dd0c9ed109b25fa26da8645d3c65fac7e2bc Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 14:11:18 -0400 Subject: [PATCH 057/471] Ha! I make you work! rftest-rx gets something now. --- doc/ws.dis | 44867 -------------------------------------------- include/maca.h | 124 +- src/maca.c | 2 + tests/rftest-rx.c | 108 +- 4 files changed, 57 insertions(+), 45044 deletions(-) delete mode 100644 doc/ws.dis diff --git a/doc/ws.dis b/doc/ws.dis deleted file mode 100644 index 5be0bc013..000000000 --- a/doc/ws.dis +++ /dev/null @@ -1,44867 +0,0 @@ - -Weather Station Controller.out: file format elf32-littlearm - - -Disassembly of section P1: - -00400000 <_start_vector_>: - 400000: ea000d37 b 4034e4 <__start_> - 400004: ea000d58 b 40356c <__UndefInstructionHndlr_> - 400008: ea000d5f b 40358c <__SupervisorHndlr_> - 40000c: ea000d66 b 4035ac <__PrefetchAbtHndlr_> - 400010: ea000d6d b 4035cc <__DataAbtHndlr_> - 400014: ea000d53 b 403568 <__reserved_> - 400018: eaf041fc b 10810 - 40001c: eaf041ff b 10820 - -Disassembly of section P4: - -00400020 : - 400020: 4770 bx lr - -Disassembly of section P5: - -00400060 : - 400060: 4770 bx lr - -Disassembly of section P6: - -004000a0 : - 4000a0: 4770 bx lr - -Disassembly of section P7: - -004000e0 : - 4000e0: 4770 bx lr - -Disassembly of section P2: - -00400900 : - 400900: b408 push {r3} - 400902: 4b02 ldr r3, [pc, #8] (40090c ) - 400904: 469c mov ip, r3 - 400906: bc08 pop {r3} - 400908: 4760 bx ip - 40090a: 46c0 nop (mov r8, r8) - 40090c: 0000fae8 .word 0x0000fae8 - -00400910 : - 400910: b408 push {r3} - 400912: 4b02 ldr r3, [pc, #8] (40091c ) - 400914: 469c mov ip, r3 - 400916: bc08 pop {r3} - 400918: 4760 bx ip - 40091a: 46c0 nop (mov r8, r8) - 40091c: 00010798 .word 0x00010798 - -00400920 : - 400920: b408 push {r3} - 400922: 4b02 ldr r3, [pc, #8] (40092c ) - 400924: 469c mov ip, r3 - 400926: bc08 pop {r3} - 400928: 4760 bx ip - 40092a: 46c0 nop (mov r8, r8) - 40092c: 000107c8 .word 0x000107c8 - -00400930 : - 400930: b408 push {r3} - 400932: 4b02 ldr r3, [pc, #8] (40093c ) - 400934: 469c mov ip, r3 - 400936: bc08 pop {r3} - 400938: 4760 bx ip - 40093a: 46c0 nop (mov r8, r8) - 40093c: 000107e0 .word 0x000107e0 - -00400940 : - 400940: b408 push {r3} - 400942: 4b02 ldr r3, [pc, #8] (40094c ) - 400944: 469c mov ip, r3 - 400946: bc08 pop {r3} - 400948: 4760 bx ip - 40094a: 46c0 nop (mov r8, r8) - 40094c: 00010780 .word 0x00010780 - -00400950 : - 400950: b408 push {r3} - 400952: 4b02 ldr r3, [pc, #8] (40095c ) - 400954: 469c mov ip, r3 - 400956: bc08 pop {r3} - 400958: 4760 bx ip - 40095a: 46c0 nop (mov r8, r8) - 40095c: 0000faf8 .word 0x0000faf8 - -00400960 : - 400960: b580 push {r7, lr} - 400962: 4907 ldr r1, [pc, #28] (400980 ) - 400964: 466a mov r2, sp - 400966: 1103 asrs r3, r0, #4 - 400968: 5ccb ldrb r3, [r1, r3] - 40096a: 7013 strb r3, [r2, #0] - 40096c: 0700 lsls r0, r0, #28 - 40096e: 0f00 lsrs r0, r0, #28 - 400970: 5c08 ldrb r0, [r1, r0] - 400972: 7050 strb r0, [r2, #1] - 400974: 2000 movs r0, #0 - 400976: 7090 strb r0, [r2, #2] - 400978: 4668 mov r0, sp - 40097a: f002 fd81 bl 403480 - 40097e: e265 b.n 400e4c - -00400980 : - 400980: 00403f14 .word 0x00403f14 - -00400984 : - 400984: b510 push {r4, lr} - 400986: 0004 lsls r4, r0, #0 - 400988: 0a00 lsrs r0, r0, #8 - 40098a: e00d b.n 4009a8 - -0040098c : - 40098c: b510 push {r4, lr} - 40098e: 0004 lsls r4, r0, #0 - 400990: 0e00 lsrs r0, r0, #24 - 400992: f7ff ffe5 bl 400960 - 400996: 0c20 lsrs r0, r4, #16 - 400998: 0600 lsls r0, r0, #24 - 40099a: 0e00 lsrs r0, r0, #24 - 40099c: f7ff ffe0 bl 400960 - 4009a0: 0a20 lsrs r0, r4, #8 - 4009a2: 0600 lsls r0, r0, #24 - 4009a4: 0e00 lsrs r0, r0, #24 - 4009a6: 46c0 nop (mov r8, r8) - -004009a8 : - 4009a8: f7ff ffda bl 400960 - 4009ac: 0620 lsls r0, r4, #24 - 4009ae: 0e00 lsrs r0, r0, #24 - 4009b0: f7ff ffd6 bl 400960 - 4009b4: 9801 ldr r0, [sp, #4] - 4009b6: bc10 pop {r4} - 4009b8: b001 add sp, #4 - 4009ba: 4700 bx r0 - -004009bc : - 4009bc: b5f2 push {r1, r4, r5, r6, r7, lr} - 4009be: b082 sub sp, #8 - 4009c0: 0007 lsls r7, r0, #0 - 4009c2: 4816 ldr r0, [pc, #88] (400a1c ) - 4009c4: f002 fd5c bl 403480 - 4009c8: 2000 movs r0, #0 - 4009ca: 9000 str r0, [sp, #0] - 4009cc: 2407 movs r4, #7 - 4009ce: a514 add r5, pc, #80 (adr r5, 400a20 ) - 4009d0: a614 add r6, pc, #80 (adr r6, 400a24 ) - 4009d2: e019 b.n 400a08 - -004009d4 : - 4009d4: 9800 ldr r0, [sp, #0] - 4009d6: 4220 tst r0, r4 - 4009d8: d104 bne.n 4009e4 - 4009da: 9800 ldr r0, [sp, #0] - 4009dc: 0480 lsls r0, r0, #18 - 4009de: 0c00 lsrs r0, r0, #16 - 4009e0: f7ff ffd0 bl 400984 - -004009e4 : - 4009e4: 0028 lsls r0, r5, #0 - 4009e6: f002 fd4b bl 403480 - 4009ea: 9800 ldr r0, [sp, #0] - 4009ec: 0080 lsls r0, r0, #2 - 4009ee: 5838 ldr r0, [r7, r0] - 4009f0: f7ff ffcc bl 40098c - 4009f4: 9800 ldr r0, [sp, #0] - 4009f6: 4020 ands r0, r4 - 4009f8: 2807 cmp r0, #7 - 4009fa: d102 bne.n 400a02 - 4009fc: 0030 lsls r0, r6, #0 - 4009fe: f002 fd3f bl 403480 - -00400a02 : - 400a02: 9800 ldr r0, [sp, #0] - 400a04: 1c40 adds r0, r0, #1 - 400a06: 9000 str r0, [sp, #0] - -00400a08 : - 400a08: 9800 ldr r0, [sp, #0] - 400a0a: 9902 ldr r1, [sp, #8] - 400a0c: 4288 cmp r0, r1 - 400a0e: d3e1 bcc.n 4009d4 - 400a10: a004 add r0, pc, #16 (adr r0, 400a24 ) - 400a12: f002 fd35 bl 403480 - 400a16: f000 fc2b bl 401270 - 400a1a: 46c0 nop (mov r8, r8) - -00400a1c : - 400a1c: 00403c54 .word 0x00403c54 - 400a20: 00000020 .word 0x00000020 - 400a24: 00000d0a .word 0x00000d0a - -00400a28
: - 400a28: b500 push {lr} - 400a2a: b099 sub sp, #100 - 400a2c: 4809 ldr r0, [pc, #36] (400a54 ) - 400a2e: a913 add r1, sp, #76 - 400a30: 6141 str r1, [r0, #20] - 400a32: 2100 movs r1, #0 - 400a34: 61c1 str r1, [r0, #28] - 400a36: aa02 add r2, sp, #8 - 400a38: 6042 str r2, [r0, #4] - 400a3a: 4a05 ldr r2, [pc, #20] (400a50 ) - 400a3c: 60c2 str r2, [r0, #12] - 400a3e: 4883 ldr r0, [pc, #524] (400c4c ) - 400a40: 466a mov r2, sp - 400a42: 6042 str r2, [r0, #4] - 400a44: 60c1 str r1, [r0, #12] - 400a46: f000 f807 bl 400a58 - -00400a4a : - 400a4a: f000 f915 bl 400c78 - 400a4e: e7fc b.n 400a4a - -00400a50 : - 400a50: 00400c51 .word 0x00400c51 - -00400a54 : - 400a54: 00405280 .word 0x00405280 - -00400a58 : - 400a58: b5f8 push {r3, r4, r5, r6, r7, lr} - 400a5a: 2000 movs r0, #0 - 400a5c: 4c7b ldr r4, [pc, #492] (400c4c ) - 400a5e: 7460 strb r0, [r4, #17] - 400a60: 8260 strh r0, [r4, #18] - 400a62: 2107 movs r1, #7 - 400a64: 7521 strb r1, [r4, #20] - 400a66: 7560 strb r0, [r4, #21] - 400a68: 2101 movs r1, #1 - 400a6a: 75a1 strb r1, [r4, #22] - 400a6c: 7660 strb r0, [r4, #25] - 400a6e: 200f movs r0, #15 - 400a70: 76a0 strb r0, [r4, #26] - 400a72: f40f fa13 bl fe9c - 400a76: 4968 ldr r1, [pc, #416] (400c18 ) - 400a78: 2007 movs r0, #7 - 400a7a: f40f fa53 bl ff24 - 400a7e: 2100 movs r1, #0 - 400a80: 2007 movs r0, #7 - 400a82: f40f fa31 bl fee8 - 400a86: 2007 movs r0, #7 - 400a88: f40f fa9c bl ffc4 - 400a8c: 4963 ldr r1, [pc, #396] (400c1c ) - 400a8e: 2003 movs r0, #3 - 400a90: f40f fa48 bl ff24 - 400a94: 2100 movs r1, #0 - 400a96: 2003 movs r0, #3 - 400a98: f40f fa26 bl fee8 - 400a9c: 2003 movs r0, #3 - 400a9e: f40f fa91 bl ffc4 - 400aa2: 495f ldr r1, [pc, #380] (400c20 ) - 400aa4: 2005 movs r0, #5 - 400aa6: f40f fa3d bl ff24 - 400aaa: 2100 movs r1, #0 - 400aac: 2005 movs r0, #5 - 400aae: f40f fa1b bl fee8 - 400ab2: 2005 movs r0, #5 - 400ab4: f40f fa86 bl ffc4 - 400ab8: 495a ldr r1, [pc, #360] (400c24 ) - 400aba: 2002 movs r0, #2 - 400abc: f403 fa04 bl 3ec8 - 400ac0: 4959 ldr r1, [pc, #356] (400c28 ) - 400ac2: 2003 movs r0, #3 - 400ac4: f403 fa00 bl 3ec8 - 400ac8: 4958 ldr r1, [pc, #352] (400c2c ) - 400aca: 2004 movs r0, #4 - 400acc: f403 f9fc bl 3ec8 - 400ad0: 4957 ldr r1, [pc, #348] (400c30 ) - 400ad2: 2005 movs r0, #5 - 400ad4: f403 f9f8 bl 3ec8 - 400ad8: f7ff ff22 bl 400920 - 400adc: f7ff ff28 bl 400930 - 400ae0: 0020 lsls r0, r4, #0 - 400ae2: 3030 adds r0, #48 - 400ae4: f002 fc52 bl 40338c - 400ae8: 4d52 ldr r5, [pc, #328] (400c34 ) - 400aea: 0028 lsls r0, r5, #0 - 400aec: f002 fcc8 bl 403480 - 400af0: 0028 lsls r0, r5, #0 - 400af2: 3018 adds r0, #24 - 400af4: f002 fcc4 bl 403480 - 400af8: 2160 movs r1, #96 - 400afa: 484f ldr r0, [pc, #316] (400c38 ) - 400afc: f7ff ff5e bl 4009bc - 400b00: 0028 lsls r0, r5, #0 - 400b02: 3024 adds r0, #36 - 400b04: f002 fcbc bl 403480 - 400b08: 2160 movs r1, #96 - 400b0a: 484c ldr r0, [pc, #304] (400c3c ) - 400b0c: f7ff ff56 bl 4009bc - 400b10: 0028 lsls r0, r5, #0 - 400b12: 3038 adds r0, #56 - 400b14: f002 fcb4 bl 403480 - 400b18: 2160 movs r1, #96 - 400b1a: 4849 ldr r0, [pc, #292] (400c40 ) - 400b1c: f7ff ff4e bl 4009bc - 400b20: 0028 lsls r0, r5, #0 - 400b22: 304c adds r0, #76 - 400b24: f002 fcac bl 403480 - 400b28: 4f46 ldr r7, [pc, #280] (400c44 ) - 400b2a: 2160 movs r1, #96 - 400b2c: 0038 lsls r0, r7, #0 - 400b2e: f7ff ff45 bl 4009bc - 400b32: 0028 lsls r0, r5, #0 - 400b34: 3054 adds r0, #84 - 400b36: f002 fca3 bl 403480 - 400b3a: 4e43 ldr r6, [pc, #268] (400c48 ) - 400b3c: 21c0 movs r1, #192 - 400b3e: 0030 lsls r0, r6, #0 - 400b40: f7ff ff3c bl 4009bc - 400b44: f003 f994 bl 403e70 - 400b48: f002 fec2 bl 4038d0 - 400b4c: f003 f8aa bl 403ca4 - 400b50: 0020 lsls r0, r4, #0 - 400b52: 3030 adds r0, #48 - 400b54: f002 fc1a bl 40338c - 400b58: 0028 lsls r0, r5, #0 - 400b5a: 306c adds r0, #108 - 400b5c: f002 fc90 bl 403480 - 400b60: 0028 lsls r0, r5, #0 - 400b62: 3018 adds r0, #24 - 400b64: f002 fc8c bl 403480 - 400b68: 2160 movs r1, #96 - 400b6a: 4833 ldr r0, [pc, #204] (400c38 ) - 400b6c: f7ff ff26 bl 4009bc - 400b70: 0028 lsls r0, r5, #0 - 400b72: 3024 adds r0, #36 - 400b74: f002 fc84 bl 403480 - 400b78: 2160 movs r1, #96 - 400b7a: 4830 ldr r0, [pc, #192] (400c3c ) - 400b7c: f7ff ff1e bl 4009bc - 400b80: 0028 lsls r0, r5, #0 - 400b82: 3038 adds r0, #56 - 400b84: f002 fc7c bl 403480 - 400b88: 2160 movs r1, #96 - 400b8a: 482d ldr r0, [pc, #180] (400c40 ) - 400b8c: f7ff ff16 bl 4009bc - 400b90: 0028 lsls r0, r5, #0 - 400b92: 304c adds r0, #76 - 400b94: f002 fc74 bl 403480 - 400b98: 2160 movs r1, #96 - 400b9a: 0038 lsls r0, r7, #0 - 400b9c: f7ff ff0e bl 4009bc - 400ba0: 3554 adds r5, #84 - 400ba2: 0028 lsls r0, r5, #0 - 400ba4: f002 fc6c bl 403480 - 400ba8: 21c0 movs r1, #192 - 400baa: 0030 lsls r0, r6, #0 - 400bac: f7ff ff06 bl 4009bc - 400bb0: 2000 movs r0, #0 - 400bb2: f7ff fead bl 400910 - 400bb6: 2000 movs r0, #0 - 400bb8: f7ff fec2 bl 400940 - 400bbc: f002 fd24 bl 403608 - 400bc0: f003 f896 bl 403cf0 - 400bc4: f000 fe0c bl 4017e0 - 400bc8: f000 fecc bl 401964 - 400bcc: 220f movs r2, #15 - 400bce: 2100 movs r1, #0 - 400bd0: 20f0 movs r0, #240 - 400bd2: f002 fed9 bl 403988 - 400bd6: 7ea0 ldrb r0, [r4, #26] - 400bd8: f002 ff59 bl 403a8e - 400bdc: 7d60 ldrb r0, [r4, #21] - 400bde: f002 ff27 bl 403a30 - 400be2: f000 fe37 bl 401854 - 400be6: 7da0 ldrb r0, [r4, #22] - 400be8: f001 fa5c bl 4020a4 - 400bec: f000 ffb3 bl 401b56 - 400bf0: 2110 movs r1, #16 - 400bf2: 2015 movs r0, #21 - 400bf4: f000 fa4a bl 40108c - 400bf8: 20fa movs r0, #250 - 400bfa: 0080 lsls r0, r0, #2 - 400bfc: f003 f8c2 bl 403d84 - 400c00: 2110 movs r1, #16 - 400c02: 2015 movs r0, #21 - 400c04: f000 fb3c bl 401280 - 400c08: f000 ffa5 bl 401b56 - 400c0c: 7d20 ldrb r0, [r4, #20] - 400c0e: f000 fc11 bl 401434 - 400c12: b001 add sp, #4 - 400c14: e32e b.n 401274 - 400c16: 46c0 nop (mov r8, r8) - -00400c18 : - 400c18: 00402c45 .word 0x00402c45 - 400c1c: 00003f35 .word 0x00003f35 - 400c20: 0000ab41 .word 0x0000ab41 - 400c24: 00400e25 .word 0x00400e25 - 400c28: 00400e39 .word 0x00400e39 - 400c2c: 00400e6d .word 0x00400e6d - 400c30: 00400e59 .word 0x00400e59 - 400c34: 00403b28 .word 0x00403b28 - 400c38: 80004000 .word 0x80004000 - 400c3c: 80009000 .word 0x80009000 - 400c40: 800091c0 .word 0x800091c0 - 400c44: 80003000 .word 0x80003000 - 400c48: 80009200 .word 0x80009200 - -00400c4c : - 400c4c: 00405244 .word 0x00405244 - -00400c50 : - 400c50: 4807 ldr r0, [pc, #28] (400c70 ) - 400c52: 6801 ldr r1, [r0, #0] - 400c54: 2210 movs r2, #16 - 400c56: 400a ands r2, r1 - 400c58: 0911 lsrs r1, r2, #4 - 400c5a: 2901 cmp r1, #1 - 400c5c: d106 bne.n 400c6c - 400c5e: 6801 ldr r1, [r0, #0] - 400c60: 2210 movs r2, #16 - 400c62: 4391 bics r1, r2 - 400c64: 6001 str r1, [r0, #0] - 400c66: 4803 ldr r0, [pc, #12] (400c74 ) - 400c68: 2101 movs r1, #1 - 400c6a: 7001 strb r1, [r0, #0] - -00400c6c : - 400c6c: 4770 bx lr - 400c6e: 46c0 nop (mov r8, r8) - -00400c70 : - 400c70: 004053b8 .word 0x004053b8 - 400c74: 00405254 .word 0x00405254 - -00400c78 : - 400c78: b570 push {r4, r5, r6, lr} - 400c7a: b084 sub sp, #16 - 400c7c: f001 fbd4 bl 402428 - 400c80: 4c64 ldr r4, [pc, #400] (400e14 ) - 400c82: 7c20 ldrb r0, [r4, #16] - 400c84: 2801 cmp r0, #1 - 400c86: d103 bne.n 400c90 - 400c88: 2000 movs r0, #0 - 400c8a: 7420 strb r0, [r4, #16] - 400c8c: f000 f9a6 bl 400fdc - -00400c90 : - 400c90: 4861 ldr r0, [pc, #388] (400e18 ) - 400c92: 7800 ldrb r0, [r0, #0] - 400c94: 2800 cmp r0, #0 - 400c96: d110 bne.n 400cba - 400c98: 4860 ldr r0, [pc, #384] (400e1c ) - 400c9a: 8801 ldrh r1, [r0, #0] - 400c9c: 2900 cmp r1, #0 - 400c9e: d00c beq.n 400cba - 400ca0: 2100 movs r1, #0 - 400ca2: 8001 strh r1, [r0, #0] - 400ca4: 4668 mov r0, sp - 400ca6: f000 fe47 bl 401938 - 400caa: 4668 mov r0, sp - 400cac: 7801 ldrb r1, [r0, #0] - 400cae: 29fd cmp r1, #253 - 400cb0: d103 bne.n 400cba - 400cb2: 7881 ldrb r1, [r0, #2] - 400cb4: 7840 ldrb r0, [r0, #1] - 400cb6: f000 fddd bl 401874 - -00400cba : - 400cba: 2502 movs r5, #2 - 400cbc: 7c60 ldrb r0, [r4, #17] - 400cbe: 4228 tst r0, r5 - 400cc0: d00e beq.n 400ce0 - 400cc2: 21fd movs r1, #253 - 400cc4: 4001 ands r1, r0 - 400cc6: 7461 strb r1, [r4, #17] - 400cc8: 7ce1 ldrb r1, [r4, #19] - 400cca: 1e48 subs r0, r1, #1 - 400ccc: 4180 sbcs r0, r0 - 400cce: 0fc0 lsrs r0, r0, #31 - 400cd0: 74e0 strb r0, [r4, #19] - 400cd2: f000 fd9b bl 40180c - 400cd6: f000 ff3e bl 401b56 - 400cda: 7d20 ldrb r0, [r4, #20] - 400cdc: f000 fbaa bl 401434 - -00400ce0 : - 400ce0: 7c60 ldrb r0, [r4, #17] - 400ce2: 07c0 lsls r0, r0, #31 - 400ce4: d512 bpl.n 400d0c - 400ce6: 7c60 ldrb r0, [r4, #17] - 400ce8: 21fe movs r1, #254 - 400cea: 4001 ands r1, r0 - 400cec: 7461 strb r1, [r4, #17] - 400cee: 7d60 ldrb r0, [r4, #21] - 400cf0: 280f cmp r0, #15 - 400cf2: d101 bne.n 400cf8 - 400cf4: 2000 movs r0, #0 - 400cf6: e000 b.n 400cfa - -00400cf8 : - 400cf8: 1c40 adds r0, r0, #1 - -00400cfa : - 400cfa: 7560 strb r0, [r4, #21] - 400cfc: 7d60 ldrb r0, [r4, #21] - 400cfe: f002 fe97 bl 403a30 - 400d02: f000 ff28 bl 401b56 - 400d06: 7d20 ldrb r0, [r4, #20] - 400d08: f000 fb94 bl 401434 - -00400d0c : - 400d0c: 2604 movs r6, #4 - 400d0e: 7c60 ldrb r0, [r4, #17] - 400d10: 4230 tst r0, r6 - 400d12: d00e beq.n 400d32 - 400d14: 21fb movs r1, #251 - 400d16: 4001 ands r1, r0 - 400d18: 7461 strb r1, [r4, #17] - 400d1a: 7d20 ldrb r0, [r4, #20] - 400d1c: 280d cmp r0, #13 - 400d1e: d101 bne.n 400d24 - 400d20: 2005 movs r0, #5 - 400d22: e000 b.n 400d26 - -00400d24 : - 400d24: 1c80 adds r0, r0, #2 - -00400d26 : - 400d26: 7520 strb r0, [r4, #20] - 400d28: f000 ff15 bl 401b56 - 400d2c: 7d20 ldrb r0, [r4, #20] - 400d2e: f000 fb81 bl 401434 - -00400d32 : - 400d32: 7c60 ldrb r0, [r4, #17] - 400d34: 0700 lsls r0, r0, #28 - 400d36: d50d bpl.n 400d54 - 400d38: 7c60 ldrb r0, [r4, #17] - 400d3a: 21f7 movs r1, #247 - 400d3c: 4001 ands r1, r0 - 400d3e: 7461 strb r1, [r4, #17] - 400d40: 7da0 ldrb r0, [r4, #22] - 400d42: 2801 cmp r0, #1 - 400d44: d101 bne.n 400d4a - 400d46: 2000 movs r0, #0 - 400d48: e000 b.n 400d4c - -00400d4a : - 400d4a: 2001 movs r0, #1 - -00400d4c : - 400d4c: 75a0 strb r0, [r4, #22] - 400d4e: 7da0 ldrb r0, [r4, #22] - 400d50: f001 f9a8 bl 4020a4 - -00400d54 : - 400d54: 7ee0 ldrb r0, [r4, #27] - 400d56: 2800 cmp r0, #0 - 400d58: d006 beq.n 400d68 - 400d5a: 2802 cmp r0, #2 - 400d5c: d035 beq.n 400dca - 400d5e: d305 bcc.n 400d6c - 400d60: 2804 cmp r0, #4 - 400d62: d046 beq.n 400df2 - 400d64: d31e bcc.n 400da4 - 400d66: e018 b.n 400d9a - -00400d68 : - 400d68: 2001 movs r0, #1 - 400d6a: e015 b.n 400d98 - -00400d6c : - 400d6c: 482c ldr r0, [pc, #176] (400e20 ) - 400d6e: 2107 movs r1, #7 - 400d70: 7802 ldrb r2, [r0, #0] - 400d72: 400a ands r2, r1 - 400d74: 2328 movs r3, #40 - 400d76: 4313 orrs r3, r2 - 400d78: 7003 strb r3, [r0, #0] - 400d7a: 7820 ldrb r0, [r4, #0] - 400d7c: 4001 ands r1, r0 - 400d7e: 2020 movs r0, #32 - 400d80: 4308 orrs r0, r1 - 400d82: 7020 strb r0, [r4, #0] - 400d84: 6860 ldr r0, [r4, #4] - 400d86: 2141 movs r1, #65 - 400d88: 7081 strb r1, [r0, #2] - 400d8a: 6860 ldr r0, [r4, #4] - 400d8c: 2143 movs r1, #67 - 400d8e: 70c1 strb r1, [r0, #3] - 400d90: 6860 ldr r0, [r4, #4] - 400d92: 214b movs r1, #75 - 400d94: 7101 strb r1, [r0, #4] - 400d96: 2003 movs r0, #3 - -00400d98 : - 400d98: 76e0 strb r0, [r4, #27] - -00400d9a : - 400d9a: b004 add sp, #16 - 400d9c: 9803 ldr r0, [sp, #12] - 400d9e: bc70 pop {r4, r5, r6} - 400da0: b001 add sp, #4 - 400da2: 4700 bx r0 - -00400da4 : - 400da4: 481e ldr r0, [pc, #120] (400e20 ) - 400da6: 7801 ldrb r1, [r0, #0] - 400da8: 08c9 lsrs r1, r1, #3 - 400daa: 2905 cmp r1, #5 - 400dac: d005 beq.n 400dba - 400dae: 2906 cmp r1, #6 - 400db0: d003 beq.n 400dba - 400db2: 2908 cmp r1, #8 - 400db4: d001 beq.n 400dba - 400db6: 2904 cmp r1, #4 - 400db8: d1ef bne.n 400d9a - -00400dba : - 400dba: 2143 movs r1, #67 - 400dbc: 7201 strb r1, [r0, #8] - 400dbe: 21f0 movs r1, #240 - 400dc0: 0209 lsls r1, r1, #8 - 400dc2: f002 fe47 bl 403a54 - 400dc6: 76e5 strb r5, [r4, #27] - 400dc8: e7e7 b.n 400d9a - -00400dca : - 400dca: 4815 ldr r0, [pc, #84] (400e20 ) - 400dcc: 7801 ldrb r1, [r0, #0] - 400dce: 08c9 lsrs r1, r1, #3 - 400dd0: 2905 cmp r1, #5 - 400dd2: d005 beq.n 400de0 - 400dd4: 2906 cmp r1, #6 - 400dd6: d003 beq.n 400de0 - 400dd8: 2908 cmp r1, #8 - 400dda: d001 beq.n 400de0 - 400ddc: 2904 cmp r1, #4 - 400dde: d101 bne.n 400de4 - -00400de0 : - 400de0: 2003 movs r0, #3 - 400de2: 76e0 strb r0, [r4, #27] - -00400de4 : - 400de4: 7ca0 ldrb r0, [r4, #18] - 400de6: 2801 cmp r0, #1 - 400de8: d1d7 bne.n 400d9a - 400dea: 2000 movs r0, #0 - 400dec: 74a0 strb r0, [r4, #18] - 400dee: 76e6 strb r6, [r4, #27] - 400df0: e7d3 b.n 400d9a - -00400df2 : - 400df2: 7820 ldrb r0, [r4, #0] - 400df4: 08c0 lsrs r0, r0, #3 - 400df6: 2804 cmp r0, #4 - 400df8: d005 beq.n 400e06 - 400dfa: 2805 cmp r0, #5 - 400dfc: d003 beq.n 400e06 - 400dfe: 2807 cmp r0, #7 - 400e00: d001 beq.n 400e06 - 400e02: 2803 cmp r0, #3 - 400e04: d104 bne.n 400e10 - -00400e06 : - 400e06: 2005 movs r0, #5 - 400e08: 7220 strb r0, [r4, #8] - 400e0a: 0020 lsls r0, r4, #0 - 400e0c: f002 fe06 bl 403a1c - -00400e10 : - 400e10: 76e5 strb r5, [r4, #27] - -00400e12 : - 400e12: e7c2 b.n 400d9a - -00400e14 : - 400e14: 00405244 .word 0x00405244 - 400e18: 004052a4 .word 0x004052a4 - 400e1c: 004052a6 .word 0x004052a6 - 400e20: 00405280 .word 0x00405280 - -00400e24 : - 400e24: b580 push {r7, lr} - 400e26: 2064 movs r0, #100 - 400e28: f002 ffac bl 403d84 - 400e2c: 4801 ldr r0, [pc, #4] (400e34 ) - 400e2e: 7c41 ldrb r1, [r0, #17] - 400e30: 2202 movs r2, #2 - 400e32: e009 b.n 400e48 - -00400e34 : - 400e34: 00405244 .word 0x00405244 - -00400e38 : - 400e38: b580 push {r7, lr} - 400e3a: 2064 movs r0, #100 - 400e3c: f002 ffa2 bl 403d84 - 400e40: 4804 ldr r0, [pc, #16] (400e54 ) - 400e42: 7c41 ldrb r1, [r0, #17] - 400e44: 2204 movs r2, #4 - 400e46: 46c0 nop (mov r8, r8) - -00400e48 : - 400e48: 430a orrs r2, r1 - 400e4a: 7442 strb r2, [r0, #17] - -00400e4c : - 400e4c: 9801 ldr r0, [sp, #4] - 400e4e: b002 add sp, #8 - 400e50: 4700 bx r0 - ... - -00400e54 : - 400e54: 00405244 .word 0x00405244 - -00400e58 : - 400e58: b580 push {r7, lr} - 400e5a: 2064 movs r0, #100 - 400e5c: f002 ff92 bl 403d84 - 400e60: 4801 ldr r0, [pc, #4] (400e68 ) - 400e62: 7c41 ldrb r1, [r0, #17] - 400e64: 2201 movs r2, #1 - 400e66: e7ef b.n 400e48 - -00400e68 : - 400e68: 00405244 .word 0x00405244 - -00400e6c : - 400e6c: b580 push {r7, lr} - 400e6e: 2064 movs r0, #100 - 400e70: f002 ff88 bl 403d84 - 400e74: 4801 ldr r0, [pc, #4] (400e7c ) - 400e76: 7c41 ldrb r1, [r0, #17] - 400e78: 2208 movs r2, #8 - 400e7a: e7e5 b.n 400e48 - -00400e7c : - 400e7c: 00405244 .word 0x00405244 - -00400e80 : - 400e80: b5f8 push {r3, r4, r5, r6, r7, lr} - 400e82: 1f49 subs r1, r1, #5 - 400e84: d009 beq.n 400e9a - 400e86: 1e89 subs r1, r1, #2 - 400e88: d00e beq.n 400ea8 - 400e8a: 1e89 subs r1, r1, #2 - 400e8c: d030 beq.n 400ef0 - 400e8e: 1e89 subs r1, r1, #2 - 400e90: d050 beq.n 400f34 - 400e92: 1e89 subs r1, r1, #2 - 400e94: d100 bne.n 400e98 - 400e96: e083 b.n 400fa0 - 400e98: e08f b.n 400fba - -00400e9a : - 400e9a: 21b4 movs r1, #180 - 400e9c: 0049 lsls r1, r1, #1 - 400e9e: 1a09 subs r1, r1, r0 - 400ea0: 4a49 ldr r2, [pc, #292] (400fc8 ) - 400ea2: 8011 strh r1, [r2, #0] - 400ea4: 0002 lsls r2, r0, #0 - 400ea6: e088 b.n 400fba - -00400ea8 : - 400ea8: 0007 lsls r7, r0, #0 - 400eaa: 2164 movs r1, #100 - 400eac: f7ff fd28 bl 400900 - 400eb0: 0204 lsls r4, r0, #8 - 400eb2: 0038 lsls r0, r7, #0 - 400eb4: 2164 movs r1, #100 - 400eb6: f7ff fd23 bl 400900 - 400eba: 4321 orrs r1, r4 - 400ebc: 000e lsls r6, r1, #0 - 400ebe: 4c43 ldr r4, [pc, #268] (400fcc ) - 400ec0: 8466 strh r6, [r4, #34] - 400ec2: 4843 ldr r0, [pc, #268] (400fd0 ) - 400ec4: 4347 muls r7, r0 - 400ec6: 0038 lsls r0, r7, #0 - 400ec8: 21fa movs r1, #250 - 400eca: 0089 lsls r1, r1, #2 - 400ecc: f7ff fd18 bl 400900 - 400ed0: 0007 lsls r7, r0, #0 - 400ed2: 2164 movs r1, #100 - 400ed4: f7ff fd3c bl 400950 - 400ed8: 0200 lsls r0, r0, #8 - 400eda: b501 push {r0, lr} - 400edc: 0038 lsls r0, r7, #0 - 400ede: 2164 movs r1, #100 - 400ee0: f7ff fd36 bl 400950 - 400ee4: 9800 ldr r0, [sp, #0] - 400ee6: b002 add sp, #8 - 400ee8: 4301 orrs r1, r0 - 400eea: 8521 strh r1, [r4, #40] - -00400eec : - 400eec: 0032 lsls r2, r6, #0 - 400eee: e064 b.n 400fba - -00400ef0 : - 400ef0: 0007 lsls r7, r0, #0 - 400ef2: 2164 movs r1, #100 - 400ef4: f7ff fd04 bl 400900 - 400ef8: 0204 lsls r4, r0, #8 - 400efa: 0038 lsls r0, r7, #0 - 400efc: 2164 movs r1, #100 - 400efe: f7ff fcff bl 400900 - 400f02: 4321 orrs r1, r4 - 400f04: 000e lsls r6, r1, #0 - 400f06: 4c31 ldr r4, [pc, #196] (400fcc ) - 400f08: 8426 strh r6, [r4, #32] - 400f0a: 2091 movs r0, #145 - 400f0c: 4347 muls r7, r0 - 400f0e: 0038 lsls r0, r7, #0 - 400f10: 4930 ldr r1, [pc, #192] (400fd4 ) - 400f12: f7ff fcf5 bl 400900 - 400f16: 0007 lsls r7, r0, #0 - 400f18: 2164 movs r1, #100 - 400f1a: f7ff fd19 bl 400950 - 400f1e: 0200 lsls r0, r0, #8 - 400f20: b501 push {r0, lr} - 400f22: 0038 lsls r0, r7, #0 - 400f24: 2164 movs r1, #100 - 400f26: f7ff fd13 bl 400950 - 400f2a: 9800 ldr r0, [sp, #0] - 400f2c: b002 add sp, #8 - 400f2e: 4301 orrs r1, r0 - 400f30: 84e1 strh r1, [r4, #38] - 400f32: e7db b.n 400eec - -00400f34 : - 400f34: 4928 ldr r1, [pc, #160] (400fd8 ) - 400f36: 4288 cmp r0, r1 - 400f38: d303 bcc.n 400f42 - 400f3a: 0401 lsls r1, r0, #16 - 400f3c: 1a08 subs r0, r1, r0 - 400f3e: 2101 movs r1, #1 - 400f40: e000 b.n 400f44 - -00400f42 : - 400f42: 2100 movs r1, #0 - -00400f44 : - 400f44: 4c21 ldr r4, [pc, #132] (400fcc ) - 400f46: 75e1 strb r1, [r4, #23] - 400f48: 0400 lsls r0, r0, #16 - 400f4a: 0c00 lsrs r0, r0, #16 - 400f4c: 0007 lsls r7, r0, #0 - 400f4e: 2164 movs r1, #100 - 400f50: f7ff fcd6 bl 400900 - 400f54: 0206 lsls r6, r0, #8 - 400f56: 0038 lsls r0, r7, #0 - 400f58: 2164 movs r1, #100 - 400f5a: f7ff fcd1 bl 400900 - 400f5e: 4331 orrs r1, r6 - 400f60: 000e lsls r6, r1, #0 - 400f62: 83e6 strh r6, [r4, #30] - 400f64: 00f8 lsls r0, r7, #3 - 400f66: 19c0 adds r0, r0, r7 - 400f68: 0040 lsls r0, r0, #1 - 400f6a: 210a movs r1, #10 - 400f6c: f7ff fcc8 bl 400900 - 400f70: 21c8 movs r1, #200 - 400f72: 0109 lsls r1, r1, #4 - 400f74: 1847 adds r7, r0, r1 - 400f76: 0038 lsls r0, r7, #0 - 400f78: 2164 movs r1, #100 - 400f7a: f7ff fce9 bl 400950 - 400f7e: 0200 lsls r0, r0, #8 - 400f80: b501 push {r0, lr} - 400f82: 0038 lsls r0, r7, #0 - 400f84: 2164 movs r1, #100 - 400f86: f7ff fce3 bl 400950 - 400f8a: 9800 ldr r0, [sp, #0] - 400f8c: b002 add sp, #8 - 400f8e: 4301 orrs r1, r0 - 400f90: 84a1 strh r1, [r4, #36] - 400f92: 7de0 ldrb r0, [r4, #23] - 400f94: 2800 cmp r0, #0 - 400f96: d0a9 beq.n 400eec - 400f98: 2280 movs r2, #128 - 400f9a: 0212 lsls r2, r2, #8 - 400f9c: 4332 orrs r2, r6 - 400f9e: e00c b.n 400fba - -00400fa0 : - 400fa0: 0007 lsls r7, r0, #0 - 400fa2: 2164 movs r1, #100 - 400fa4: f7ff fcac bl 400900 - 400fa8: 0204 lsls r4, r0, #8 - 400faa: 0038 lsls r0, r7, #0 - 400fac: 2164 movs r1, #100 - 400fae: f7ff fca7 bl 400900 - 400fb2: 4321 orrs r1, r4 - 400fb4: 4c05 ldr r4, [pc, #20] (400fcc ) - 400fb6: 8561 strh r1, [r4, #42] - 400fb8: 000a lsls r2, r1, #0 - -00400fba : - 400fba: 0410 lsls r0, r2, #16 - 400fbc: 0c00 lsrs r0, r0, #16 - 400fbe: b001 add sp, #4 - 400fc0: 9904 ldr r1, [sp, #16] - 400fc2: bcf0 pop {r4, r5, r6, r7} - 400fc4: b001 add sp, #4 - 400fc6: 4708 bx r1 - -00400fc8 : - 400fc8: 00405270 .word 0x00405270 - 400fcc: 00405244 .word 0x00405244 - 400fd0: 0000026d .word 0x0000026d - 400fd4: 00002710 .word 0x00002710 - 400fd8: 00003909 .word 0x00003909 - -00400fdc : - 400fdc: b5f0 push {r4, r5, r6, r7, lr} - 400fde: b085 sub sp, #20 - 400fe0: 4f24 ldr r7, [pc, #144] (401074 ) - 400fe2: 6878 ldr r0, [r7, #4] - 400fe4: 78c0 ldrb r0, [r0, #3] - 400fe6: 2801 cmp r0, #1 - 400fe8: d142 bne.n 401070 - 400fea: 4923 ldr r1, [pc, #140] (401078 ) - 400fec: 7008 strb r0, [r1, #0] - 400fee: 6879 ldr r1, [r7, #4] - 400ff0: 7909 ldrb r1, [r1, #4] - 400ff2: 4a22 ldr r2, [pc, #136] (40107c ) - 400ff4: 6812 ldr r2, [r2, #0] - 400ff6: 7151 strb r1, [r2, #5] - 400ff8: 466e mov r6, sp - 400ffa: 21fe movs r1, #254 - 400ffc: 7031 strb r1, [r6, #0] - 400ffe: 7070 strb r0, [r6, #1] - 401000: 6878 ldr r0, [r7, #4] - 401002: 7900 ldrb r0, [r0, #4] - 401004: 70b0 strb r0, [r6, #2] - 401006: 6878 ldr r0, [r7, #4] - 401008: 7940 ldrb r0, [r0, #5] - 40100a: 70f0 strb r0, [r6, #3] - 40100c: 6878 ldr r0, [r7, #4] - 40100e: 7980 ldrb r0, [r0, #6] - 401010: 7130 strb r0, [r6, #4] - 401012: 2405 movs r4, #5 - 401014: 466d mov r5, sp - 401016: 1d6d adds r5, r5, #5 - -00401018 : - 401018: 6878 ldr r0, [r7, #4] - 40101a: 1900 adds r0, r0, r4 - 40101c: 0621 lsls r1, r4, #24 - 40101e: 0e09 lsrs r1, r1, #24 - 401020: 7882 ldrb r2, [r0, #2] - 401022: 0212 lsls r2, r2, #8 - 401024: 78c0 ldrb r0, [r0, #3] - 401026: 4310 orrs r0, r2 - 401028: f7ff ff2a bl 400e80 - 40102c: 0a01 lsrs r1, r0, #8 - 40102e: 7029 strb r1, [r5, #0] - 401030: 7068 strb r0, [r5, #1] - 401032: 1ca4 adds r4, r4, #2 - 401034: 1cad adds r5, r5, #2 - 401036: 0620 lsls r0, r4, #24 - 401038: 0e00 lsrs r0, r0, #24 - 40103a: 280e cmp r0, #14 - 40103c: d3ec bcc.n 401018 - 40103e: 6878 ldr r0, [r7, #4] - 401040: 7c40 ldrb r0, [r0, #17] - 401042: 73f0 strb r0, [r6, #15] - 401044: 20ff movs r0, #255 - 401046: 7430 strb r0, [r6, #16] - 401048: 480d ldr r0, [pc, #52] (401080 ) - 40104a: 7800 ldrb r0, [r0, #0] - 40104c: 2801 cmp r0, #1 - 40104e: d10b bne.n 401068 - 401050: 78f0 ldrb r0, [r6, #3] - 401052: 490c ldr r1, [pc, #48] (401084 ) - 401054: 7809 ldrb r1, [r1, #0] - 401056: 4281 cmp r1, r0 - 401058: d006 beq.n 401068 - 40105a: 490a ldr r1, [pc, #40] (401084 ) - 40105c: 7008 strb r0, [r1, #0] - 40105e: 2211 movs r2, #17 - 401060: 4669 mov r1, sp - 401062: 2000 movs r0, #0 - 401064: f402 f808 bl 3078 - -00401068 : - 401068: 4807 ldr r0, [pc, #28] (401088 ) - 40106a: 7800 ldrb r0, [r0, #0] - 40106c: f000 f9e2 bl 401434 - -00401070 : - 401070: b005 add sp, #20 - 401072: e0ff b.n 401274 - -00401074 : - 401074: 00405280 .word 0x00405280 - 401078: 00405256 .word 0x00405256 - 40107c: 00405248 .word 0x00405248 - 401080: 0040525d .word 0x0040525d - 401084: 00405260 .word 0x00405260 - 401088: 00405258 .word 0x00405258 - -0040108c : - 40108c: b5f0 push {r4, r5, r6, r7, lr} - 40108e: b083 sub sp, #12 - 401090: 0005 lsls r5, r0, #0 - 401092: 000c lsls r4, r1, #0 - 401094: 4668 mov r0, sp - 401096: 4979 ldr r1, [pc, #484] (40127c ) - 401098: c94c ldmia r1!, {r2, r3, r6} - 40109a: c04c stmia r0!, {r2, r3, r6} - 40109c: 2600 movs r6, #0 - -0040109e : - 40109e: 2201 movs r2, #1 - 4010a0: 0621 lsls r1, r4, #24 - 4010a2: 0e09 lsrs r1, r1, #24 - 4010a4: 0628 lsls r0, r5, #24 - 4010a6: 0e00 lsrs r0, r0, #24 - 4010a8: f001 f807 bl 4020ba - 4010ac: 1c67 adds r7, r4, #1 - 4010ae: 2201 movs r2, #1 - 4010b0: 0639 lsls r1, r7, #24 - 4010b2: 0e09 lsrs r1, r1, #24 - 4010b4: 0628 lsls r0, r5, #24 - 4010b6: 0e00 lsrs r0, r0, #24 - 4010b8: f000 ffff bl 4020ba - 4010bc: 2201 movs r2, #1 - 4010be: 0639 lsls r1, r7, #24 - 4010c0: 0e09 lsrs r1, r1, #24 - 4010c2: 1c68 adds r0, r5, #1 - 4010c4: 0600 lsls r0, r0, #24 - 4010c6: 0e00 lsrs r0, r0, #24 - 4010c8: f000 fff7 bl 4020ba - 4010cc: 2201 movs r2, #1 - 4010ce: 0639 lsls r1, r7, #24 - 4010d0: 0e09 lsrs r1, r1, #24 - 4010d2: 1e68 subs r0, r5, #1 - 4010d4: 0600 lsls r0, r0, #24 - 4010d6: 0e00 lsrs r0, r0, #24 - 4010d8: f000 ffef bl 4020ba - 4010dc: 1ca7 adds r7, r4, #2 - 4010de: 2201 movs r2, #1 - 4010e0: 0639 lsls r1, r7, #24 - 4010e2: 0e09 lsrs r1, r1, #24 - 4010e4: 1ea8 subs r0, r5, #2 - 4010e6: 0600 lsls r0, r0, #24 - 4010e8: 0e00 lsrs r0, r0, #24 - 4010ea: f000 ffe6 bl 4020ba - 4010ee: 2201 movs r2, #1 - 4010f0: 0639 lsls r1, r7, #24 - 4010f2: 0e09 lsrs r1, r1, #24 - 4010f4: 1e68 subs r0, r5, #1 - 4010f6: 0600 lsls r0, r0, #24 - 4010f8: 0e00 lsrs r0, r0, #24 - 4010fa: f000 ffde bl 4020ba - 4010fe: 2201 movs r2, #1 - 401100: 0639 lsls r1, r7, #24 - 401102: 0e09 lsrs r1, r1, #24 - 401104: 0628 lsls r0, r5, #24 - 401106: 0e00 lsrs r0, r0, #24 - 401108: f000 ffd7 bl 4020ba - 40110c: 2201 movs r2, #1 - 40110e: 0639 lsls r1, r7, #24 - 401110: 0e09 lsrs r1, r1, #24 - 401112: 1c68 adds r0, r5, #1 - 401114: 0600 lsls r0, r0, #24 - 401116: 0e00 lsrs r0, r0, #24 - 401118: f000 ffcf bl 4020ba - 40111c: 2201 movs r2, #1 - 40111e: 0639 lsls r1, r7, #24 - 401120: 0e09 lsrs r1, r1, #24 - 401122: 1ca8 adds r0, r5, #2 - 401124: 0600 lsls r0, r0, #24 - 401126: 0e00 lsrs r0, r0, #24 - 401128: f000 ffc7 bl 4020ba - 40112c: 2201 movs r2, #1 - 40112e: 1ce1 adds r1, r4, #3 - 401130: 0609 lsls r1, r1, #24 - 401132: 0e09 lsrs r1, r1, #24 - 401134: 1ee8 subs r0, r5, #3 - 401136: 0600 lsls r0, r0, #24 - 401138: 0e00 lsrs r0, r0, #24 - 40113a: f000 ffbe bl 4020ba - 40113e: 2201 movs r2, #1 - 401140: 1ce1 adds r1, r4, #3 - 401142: 0609 lsls r1, r1, #24 - 401144: 0e09 lsrs r1, r1, #24 - 401146: 1ea8 subs r0, r5, #2 - 401148: 0600 lsls r0, r0, #24 - 40114a: 0e00 lsrs r0, r0, #24 - 40114c: f000 ffb5 bl 4020ba - 401150: 2201 movs r2, #1 - 401152: 1ce1 adds r1, r4, #3 - 401154: 0609 lsls r1, r1, #24 - 401156: 0e09 lsrs r1, r1, #24 - 401158: 1e68 subs r0, r5, #1 - 40115a: 0600 lsls r0, r0, #24 - 40115c: 0e00 lsrs r0, r0, #24 - 40115e: f000 ffac bl 4020ba - 401162: 2201 movs r2, #1 - 401164: 1ce1 adds r1, r4, #3 - 401166: 0609 lsls r1, r1, #24 - 401168: 0e09 lsrs r1, r1, #24 - 40116a: 0628 lsls r0, r5, #24 - 40116c: 0e00 lsrs r0, r0, #24 - 40116e: f000 ffa4 bl 4020ba - 401172: 2201 movs r2, #1 - 401174: 1ce1 adds r1, r4, #3 - 401176: 0609 lsls r1, r1, #24 - 401178: 0e09 lsrs r1, r1, #24 - 40117a: 1c68 adds r0, r5, #1 - 40117c: 0600 lsls r0, r0, #24 - 40117e: 0e00 lsrs r0, r0, #24 - 401180: f000 ff9b bl 4020ba - 401184: 1d27 adds r7, r4, #4 - 401186: 2201 movs r2, #1 - 401188: 0639 lsls r1, r7, #24 - 40118a: 0e09 lsrs r1, r1, #24 - 40118c: 1f28 subs r0, r5, #4 - 40118e: 0600 lsls r0, r0, #24 - 401190: 0e00 lsrs r0, r0, #24 - 401192: f000 ff92 bl 4020ba - 401196: 2201 movs r2, #1 - 401198: 0639 lsls r1, r7, #24 - 40119a: 0e09 lsrs r1, r1, #24 - 40119c: 1ee8 subs r0, r5, #3 - 40119e: 0600 lsls r0, r0, #24 - 4011a0: 0e00 lsrs r0, r0, #24 - 4011a2: f000 ff8a bl 4020ba - 4011a6: 2201 movs r2, #1 - 4011a8: 0639 lsls r1, r7, #24 - 4011aa: 0e09 lsrs r1, r1, #24 - 4011ac: 1ea8 subs r0, r5, #2 - 4011ae: 0600 lsls r0, r0, #24 - 4011b0: 0e00 lsrs r0, r0, #24 - 4011b2: f000 ff82 bl 4020ba - 4011b6: 2201 movs r2, #1 - 4011b8: 0639 lsls r1, r7, #24 - 4011ba: 0e09 lsrs r1, r1, #24 - 4011bc: 1e68 subs r0, r5, #1 - 4011be: 0600 lsls r0, r0, #24 - 4011c0: 0e00 lsrs r0, r0, #24 - 4011c2: f000 ff7a bl 4020ba - 4011c6: 2201 movs r2, #1 - 4011c8: 0639 lsls r1, r7, #24 - 4011ca: 0e09 lsrs r1, r1, #24 - 4011cc: 0628 lsls r0, r5, #24 - 4011ce: 0e00 lsrs r0, r0, #24 - 4011d0: f000 ff73 bl 4020ba - 4011d4: 1d67 adds r7, r4, #5 - 4011d6: 2201 movs r2, #1 - 4011d8: 0639 lsls r1, r7, #24 - 4011da: 0e09 lsrs r1, r1, #24 - 4011dc: 1ee8 subs r0, r5, #3 - 4011de: 0600 lsls r0, r0, #24 - 4011e0: 0e00 lsrs r0, r0, #24 - 4011e2: f000 ff6a bl 4020ba - 4011e6: 2201 movs r2, #1 - 4011e8: 0639 lsls r1, r7, #24 - 4011ea: 0e09 lsrs r1, r1, #24 - 4011ec: 1ea8 subs r0, r5, #2 - 4011ee: 0600 lsls r0, r0, #24 - 4011f0: 0e00 lsrs r0, r0, #24 - 4011f2: f000 ff62 bl 4020ba - 4011f6: 2201 movs r2, #1 - 4011f8: 0639 lsls r1, r7, #24 - 4011fa: 0e09 lsrs r1, r1, #24 - 4011fc: 1e68 subs r0, r5, #1 - 4011fe: 0600 lsls r0, r0, #24 - 401200: 0e00 lsrs r0, r0, #24 - 401202: f000 ff5a bl 4020ba - 401206: 1da7 adds r7, r4, #6 - 401208: 2201 movs r2, #1 - 40120a: 0639 lsls r1, r7, #24 - 40120c: 0e09 lsrs r1, r1, #24 - 40120e: 1ea8 subs r0, r5, #2 - 401210: 0600 lsls r0, r0, #24 - 401212: 0e00 lsrs r0, r0, #24 - 401214: f000 ff51 bl 4020ba - 401218: 0630 lsls r0, r6, #24 - 40121a: 0e00 lsrs r0, r0, #24 - 40121c: 2802 cmp r0, #2 - 40121e: d003 beq.n 401228 - 401220: 2804 cmp r0, #4 - 401222: d004 beq.n 40122e - 401224: 2806 cmp r0, #6 - 401226: d105 bne.n 401234 - -00401228 : - 401228: 003c lsls r4, r7, #0 - 40122a: 1fad subs r5, r5, #6 - 40122c: e004 b.n 401238 - -0040122e : - 40122e: 1ce4 adds r4, r4, #3 - 401230: 3d09 subs r5, #9 - 401232: e001 b.n 401238 - -00401234 : - 401234: 1ce4 adds r4, r4, #3 - 401236: 1d2d adds r5, r5, #4 - -00401238 : - 401238: 1c76 adds r6, r6, #1 - 40123a: 0630 lsls r0, r6, #24 - 40123c: 0e00 lsrs r0, r0, #24 - 40123e: 2808 cmp r0, #8 - 401240: d200 bcs.n 401244 - 401242: e72c b.n 40109e - 401244: 2001 movs r0, #1 - 401246: f000 ff1d bl 402084 - 40124a: 3c14 subs r4, #20 - 40124c: 0027 lsls r7, r4, #0 - 40124e: 350f adds r5, #15 - 401250: 466e mov r6, sp - 401252: 2409 movs r4, #9 - -00401254 : - 401254: 063a lsls r2, r7, #24 - 401256: 0e12 lsrs r2, r2, #24 - 401258: 0629 lsls r1, r5, #24 - 40125a: 0e09 lsrs r1, r1, #24 - 40125c: 7830 ldrb r0, [r6, #0] - 40125e: f000 ffc1 bl 4021e4 - 401262: 1dad adds r5, r5, #6 - 401264: 1c76 adds r6, r6, #1 - 401266: 1e64 subs r4, r4, #1 - 401268: d1f4 bne.n 401254 - 40126a: 2000 movs r0, #0 - 40126c: f000 ff0a bl 402084 - -00401270 : - 401270: b003 add sp, #12 - 401272: 46c0 nop (mov r8, r8) - -00401274 : - 401274: 9804 ldr r0, [sp, #16] - 401276: bcf0 pop {r4, r5, r6, r7} - 401278: b001 add sp, #4 - 40127a: 4700 bx r0 - -0040127c : - 40127c: 00403f24 .word 0x00403f24 - -00401280 : - 401280: b5f8 push {r3, r4, r5, r6, r7, lr} - 401282: 0005 lsls r5, r0, #0 - 401284: 000c lsls r4, r1, #0 - 401286: 2600 movs r6, #0 - -00401288 : - 401288: 2200 movs r2, #0 - 40128a: 0621 lsls r1, r4, #24 - 40128c: 0e09 lsrs r1, r1, #24 - 40128e: 0628 lsls r0, r5, #24 - 401290: 0e00 lsrs r0, r0, #24 - 401292: f000 ff12 bl 4020ba - 401296: 1c67 adds r7, r4, #1 - 401298: 2200 movs r2, #0 - 40129a: 0639 lsls r1, r7, #24 - 40129c: 0e09 lsrs r1, r1, #24 - 40129e: 0628 lsls r0, r5, #24 - 4012a0: 0e00 lsrs r0, r0, #24 - 4012a2: f000 ff0a bl 4020ba - 4012a6: 2200 movs r2, #0 - 4012a8: 0639 lsls r1, r7, #24 - 4012aa: 0e09 lsrs r1, r1, #24 - 4012ac: 1c68 adds r0, r5, #1 - 4012ae: 0600 lsls r0, r0, #24 - 4012b0: 0e00 lsrs r0, r0, #24 - 4012b2: f000 ff02 bl 4020ba - 4012b6: 2200 movs r2, #0 - 4012b8: 0639 lsls r1, r7, #24 - 4012ba: 0e09 lsrs r1, r1, #24 - 4012bc: 1e68 subs r0, r5, #1 - 4012be: 0600 lsls r0, r0, #24 - 4012c0: 0e00 lsrs r0, r0, #24 - 4012c2: f000 fefa bl 4020ba - 4012c6: 1ca7 adds r7, r4, #2 - 4012c8: 2200 movs r2, #0 - 4012ca: 0639 lsls r1, r7, #24 - 4012cc: 0e09 lsrs r1, r1, #24 - 4012ce: 1ea8 subs r0, r5, #2 - 4012d0: 0600 lsls r0, r0, #24 - 4012d2: 0e00 lsrs r0, r0, #24 - 4012d4: f000 fef1 bl 4020ba - 4012d8: 2200 movs r2, #0 - 4012da: 0639 lsls r1, r7, #24 - 4012dc: 0e09 lsrs r1, r1, #24 - 4012de: 1e68 subs r0, r5, #1 - 4012e0: 0600 lsls r0, r0, #24 - 4012e2: 0e00 lsrs r0, r0, #24 - 4012e4: f000 fee9 bl 4020ba - 4012e8: 2200 movs r2, #0 - 4012ea: 0639 lsls r1, r7, #24 - 4012ec: 0e09 lsrs r1, r1, #24 - 4012ee: 0628 lsls r0, r5, #24 - 4012f0: 0e00 lsrs r0, r0, #24 - 4012f2: f000 fee2 bl 4020ba - 4012f6: 2200 movs r2, #0 - 4012f8: 0639 lsls r1, r7, #24 - 4012fa: 0e09 lsrs r1, r1, #24 - 4012fc: 1c68 adds r0, r5, #1 - 4012fe: 0600 lsls r0, r0, #24 - 401300: 0e00 lsrs r0, r0, #24 - 401302: f000 feda bl 4020ba - 401306: 2200 movs r2, #0 - 401308: 0639 lsls r1, r7, #24 - 40130a: 0e09 lsrs r1, r1, #24 - 40130c: 1ca8 adds r0, r5, #2 - 40130e: 0600 lsls r0, r0, #24 - 401310: 0e00 lsrs r0, r0, #24 - 401312: f000 fed2 bl 4020ba - 401316: 2200 movs r2, #0 - 401318: 1ce1 adds r1, r4, #3 - 40131a: 0609 lsls r1, r1, #24 - 40131c: 0e09 lsrs r1, r1, #24 - 40131e: 1ee8 subs r0, r5, #3 - 401320: 0600 lsls r0, r0, #24 - 401322: 0e00 lsrs r0, r0, #24 - 401324: f000 fec9 bl 4020ba - 401328: 2200 movs r2, #0 - 40132a: 1ce1 adds r1, r4, #3 - 40132c: 0609 lsls r1, r1, #24 - 40132e: 0e09 lsrs r1, r1, #24 - 401330: 1ea8 subs r0, r5, #2 - 401332: 0600 lsls r0, r0, #24 - 401334: 0e00 lsrs r0, r0, #24 - 401336: f000 fec0 bl 4020ba - 40133a: 2200 movs r2, #0 - 40133c: 1ce1 adds r1, r4, #3 - 40133e: 0609 lsls r1, r1, #24 - 401340: 0e09 lsrs r1, r1, #24 - 401342: 1e68 subs r0, r5, #1 - 401344: 0600 lsls r0, r0, #24 - 401346: 0e00 lsrs r0, r0, #24 - 401348: f000 feb7 bl 4020ba - 40134c: 2200 movs r2, #0 - 40134e: 1ce1 adds r1, r4, #3 - 401350: 0609 lsls r1, r1, #24 - 401352: 0e09 lsrs r1, r1, #24 - 401354: 0628 lsls r0, r5, #24 - 401356: 0e00 lsrs r0, r0, #24 - 401358: f000 feaf bl 4020ba - 40135c: 2200 movs r2, #0 - 40135e: 1ce1 adds r1, r4, #3 - 401360: 0609 lsls r1, r1, #24 - 401362: 0e09 lsrs r1, r1, #24 - 401364: 1c68 adds r0, r5, #1 - 401366: 0600 lsls r0, r0, #24 - 401368: 0e00 lsrs r0, r0, #24 - 40136a: f000 fea6 bl 4020ba - 40136e: 1d27 adds r7, r4, #4 - 401370: 2200 movs r2, #0 - 401372: 0639 lsls r1, r7, #24 - 401374: 0e09 lsrs r1, r1, #24 - 401376: 1f28 subs r0, r5, #4 - 401378: 0600 lsls r0, r0, #24 - 40137a: 0e00 lsrs r0, r0, #24 - 40137c: f000 fe9d bl 4020ba - 401380: 2200 movs r2, #0 - 401382: 0639 lsls r1, r7, #24 - 401384: 0e09 lsrs r1, r1, #24 - 401386: 1ee8 subs r0, r5, #3 - 401388: 0600 lsls r0, r0, #24 - 40138a: 0e00 lsrs r0, r0, #24 - 40138c: f000 fe95 bl 4020ba - 401390: 2200 movs r2, #0 - 401392: 0639 lsls r1, r7, #24 - 401394: 0e09 lsrs r1, r1, #24 - 401396: 1ea8 subs r0, r5, #2 - 401398: 0600 lsls r0, r0, #24 - 40139a: 0e00 lsrs r0, r0, #24 - 40139c: f000 fe8d bl 4020ba - 4013a0: 2200 movs r2, #0 - 4013a2: 0639 lsls r1, r7, #24 - 4013a4: 0e09 lsrs r1, r1, #24 - 4013a6: 1e68 subs r0, r5, #1 - 4013a8: 0600 lsls r0, r0, #24 - 4013aa: 0e00 lsrs r0, r0, #24 - 4013ac: f000 fe85 bl 4020ba - 4013b0: 2200 movs r2, #0 - 4013b2: 0639 lsls r1, r7, #24 - 4013b4: 0e09 lsrs r1, r1, #24 - 4013b6: 0628 lsls r0, r5, #24 - 4013b8: 0e00 lsrs r0, r0, #24 - 4013ba: f000 fe7e bl 4020ba - 4013be: 1d67 adds r7, r4, #5 - 4013c0: 2200 movs r2, #0 - 4013c2: 0639 lsls r1, r7, #24 - 4013c4: 0e09 lsrs r1, r1, #24 - 4013c6: 1ee8 subs r0, r5, #3 - 4013c8: 0600 lsls r0, r0, #24 - 4013ca: 0e00 lsrs r0, r0, #24 - 4013cc: f000 fe75 bl 4020ba - 4013d0: 2200 movs r2, #0 - 4013d2: 0639 lsls r1, r7, #24 - 4013d4: 0e09 lsrs r1, r1, #24 - 4013d6: 1ea8 subs r0, r5, #2 - 4013d8: 0600 lsls r0, r0, #24 - 4013da: 0e00 lsrs r0, r0, #24 - 4013dc: f000 fe6d bl 4020ba - 4013e0: 2200 movs r2, #0 - 4013e2: 0639 lsls r1, r7, #24 - 4013e4: 0e09 lsrs r1, r1, #24 - 4013e6: 1e68 subs r0, r5, #1 - 4013e8: 0600 lsls r0, r0, #24 - 4013ea: 0e00 lsrs r0, r0, #24 - 4013ec: f000 fe65 bl 4020ba - 4013f0: 1da7 adds r7, r4, #6 - 4013f2: 2200 movs r2, #0 - 4013f4: 0639 lsls r1, r7, #24 - 4013f6: 0e09 lsrs r1, r1, #24 - 4013f8: 1ea8 subs r0, r5, #2 - 4013fa: 0600 lsls r0, r0, #24 - 4013fc: 0e00 lsrs r0, r0, #24 - 4013fe: f000 fe5c bl 4020ba - 401402: 0630 lsls r0, r6, #24 - 401404: 0e00 lsrs r0, r0, #24 - 401406: 2802 cmp r0, #2 - 401408: d003 beq.n 401412 - 40140a: 2804 cmp r0, #4 - 40140c: d004 beq.n 401418 - 40140e: 2806 cmp r0, #6 - 401410: d105 bne.n 40141e - -00401412 : - 401412: 003c lsls r4, r7, #0 - 401414: 1fad subs r5, r5, #6 - 401416: e004 b.n 401422 - -00401418 : - 401418: 1ce4 adds r4, r4, #3 - 40141a: 3d09 subs r5, #9 - 40141c: e001 b.n 401422 - -0040141e : - 40141e: 1ce4 adds r4, r4, #3 - 401420: 1d2d adds r5, r5, #4 - -00401422 : - 401422: 1c76 adds r6, r6, #1 - 401424: 0630 lsls r0, r6, #24 - 401426: 0e00 lsrs r0, r0, #24 - 401428: 2808 cmp r0, #8 - 40142a: d200 bcs.n 40142e - 40142c: e72c b.n 401288 - 40142e: b001 add sp, #4 - 401430: e720 b.n 401274 - ... - -00401434 : - 401434: b5f8 push {r3, r4, r5, r6, r7, lr} - 401436: 0007 lsls r7, r0, #0 - 401438: 4d98 ldr r5, [pc, #608] (40169c ) - 40143a: 0029 lsls r1, r5, #0 - 40143c: 2000 movs r0, #0 - 40143e: f000 fbb9 bl 401bb4 - 401442: 2400 movs r4, #0 - -00401444 : - 401444: 2201 movs r2, #1 - 401446: 210a movs r1, #10 - 401448: 0620 lsls r0, r4, #24 - 40144a: 0e00 lsrs r0, r0, #24 - 40144c: f000 fe35 bl 4020ba - 401450: 2201 movs r2, #1 - 401452: 210b movs r1, #11 - 401454: 0620 lsls r0, r4, #24 - 401456: 0e00 lsrs r0, r0, #24 - 401458: f000 fe2f bl 4020ba - 40145c: 1c64 adds r4, r4, #1 - 40145e: 0620 lsls r0, r4, #24 - 401460: 0e00 lsrs r0, r0, #24 - 401462: 2864 cmp r0, #100 - 401464: d3ee bcc.n 401444 - 401466: 4e8e ldr r6, [pc, #568] (4016a0 ) - 401468: 2301 movs r3, #1 - 40146a: 2207 movs r2, #7 - 40146c: 7d71 ldrb r1, [r6, #21] - 40146e: 310b adds r1, #11 - 401470: 0409 lsls r1, r1, #16 - 401472: 0c09 lsrs r1, r1, #16 - 401474: a08b add r0, pc, #556 (adr r0, 4016a4 ) - 401476: f000 fbd5 bl 401c24 - 40147a: 1f7f subs r7, r7, #5 - 40147c: d00a beq.n 401494 - 40147e: 1ebf subs r7, r7, #2 - 401480: d011 beq.n 4014a6 - 401482: 1ebf subs r7, r7, #2 - 401484: d05e beq.n 401544 - 401486: 1ebf subs r7, r7, #2 - 401488: d100 bne.n 40148c - 40148a: e0a2 b.n 4015d2 - 40148c: 1ebf subs r7, r7, #2 - 40148e: d100 bne.n 401492 - 401490: e0f3 b.n 40167a - 401492: e055 b.n 401540 - -00401494 : - 401494: 3514 adds r5, #20 - 401496: 0029 lsls r1, r5, #0 - 401498: 2002 movs r0, #2 - 40149a: f000 fb8b bl 401bb4 - 40149e: 2004 movs r0, #4 - 4014a0: f000 f904 bl 4016ac - 4014a4: e04c b.n 401540 - -004014a6 : - 4014a6: 0029 lsls r1, r5, #0 - 4014a8: 3128 adds r1, #40 - 4014aa: 2002 movs r0, #2 - 4014ac: f000 fb82 bl 401bb4 - 4014b0: 7cf0 ldrb r0, [r6, #19] - 4014b2: 2801 cmp r0, #1 - 4014b4: d10c bne.n 4014d0 - 4014b6: 8d31 ldrh r1, [r6, #40] - 4014b8: 0a08 lsrs r0, r1, #8 - 4014ba: 2864 cmp r0, #100 - 4014bc: d204 bcs.n 4014c8 - 4014be: 2301 movs r3, #1 - 4014c0: 2204 movs r2, #4 - 4014c2: 353c adds r5, #60 - 4014c4: 0028 lsls r0, r5, #0 - 4014c6: e00f b.n 4014e8 - -004014c8 : - 4014c8: 2301 movs r3, #1 - 4014ca: 2204 movs r2, #4 - 4014cc: a076 add r0, pc, #472 (adr r0, 4016a8 ) - 4014ce: e00b b.n 4014e8 - -004014d0 : - 4014d0: 8c71 ldrh r1, [r6, #34] - 4014d2: 0a08 lsrs r0, r1, #8 - 4014d4: 2864 cmp r0, #100 - 4014d6: d204 bcs.n 4014e2 - 4014d8: 2301 movs r3, #1 - 4014da: 2204 movs r2, #4 - 4014dc: 353c adds r5, #60 - 4014de: 0028 lsls r0, r5, #0 - 4014e0: e002 b.n 4014e8 - -004014e2 : - 4014e2: 2301 movs r3, #1 - 4014e4: 2204 movs r2, #4 - 4014e6: a070 add r0, pc, #448 (adr r0, 4016a8 ) - -004014e8 : - 4014e8: f000 fc68 bl 401dbc - 4014ec: 7cf0 ldrb r0, [r6, #19] - 4014ee: 2801 cmp r0, #1 - 4014f0: d112 bne.n 401518 - 4014f2: 2220 movs r2, #32 - 4014f4: 2139 movs r1, #57 - 4014f6: 204d movs r0, #77 - 4014f8: f000 fe74 bl 4021e4 - 4014fc: 2220 movs r2, #32 - 4014fe: 213f movs r1, #63 - 401500: 202f movs r0, #47 - 401502: f000 fe6f bl 4021e4 - 401506: 2220 movs r2, #32 - 401508: 2145 movs r1, #69 - 40150a: 2068 movs r0, #104 - 40150c: f000 fe6a bl 4021e4 - 401510: 2220 movs r2, #32 - 401512: 214b movs r1, #75 - 401514: 2020 movs r0, #32 - 401516: e011 b.n 40153c - -00401518 : - 401518: 2220 movs r2, #32 - 40151a: 2139 movs r1, #57 - 40151c: 204b movs r0, #75 - 40151e: f000 fe61 bl 4021e4 - 401522: 2220 movs r2, #32 - 401524: 213f movs r1, #63 - 401526: 206d movs r0, #109 - 401528: f000 fe5c bl 4021e4 - 40152c: 2220 movs r2, #32 - 40152e: 2145 movs r1, #69 - 401530: 202f movs r0, #47 - 401532: f000 fe57 bl 4021e4 - 401536: 2220 movs r2, #32 - 401538: 214b movs r1, #75 - 40153a: 2068 movs r0, #104 - -0040153c : - 40153c: f000 fe52 bl 4021e4 - -00401540 : - 401540: b001 add sp, #4 - 401542: e697 b.n 401274 - -00401544 : - 401544: 0029 lsls r1, r5, #0 - 401546: 3144 adds r1, #68 - 401548: 2002 movs r0, #2 - 40154a: f000 fb33 bl 401bb4 - 40154e: 7cf0 ldrb r0, [r6, #19] - 401550: 2801 cmp r0, #1 - 401552: d10c bne.n 40156e - 401554: 8cf1 ldrh r1, [r6, #38] - 401556: 0a08 lsrs r0, r1, #8 - 401558: 2864 cmp r0, #100 - 40155a: d204 bcs.n 401566 - 40155c: 2301 movs r3, #1 - 40155e: 2204 movs r2, #4 - 401560: 353c adds r5, #60 - 401562: 0028 lsls r0, r5, #0 - 401564: e00f b.n 401586 - -00401566 : - 401566: 2301 movs r3, #1 - 401568: 2204 movs r2, #4 - 40156a: a04f add r0, pc, #316 (adr r0, 4016a8 ) - 40156c: e00b b.n 401586 - -0040156e : - 40156e: 8c31 ldrh r1, [r6, #32] - 401570: 0a08 lsrs r0, r1, #8 - 401572: 2864 cmp r0, #100 - 401574: d204 bcs.n 401580 - 401576: 2301 movs r3, #1 - 401578: 2204 movs r2, #4 - 40157a: 353c adds r5, #60 - 40157c: 0028 lsls r0, r5, #0 - 40157e: e002 b.n 401586 - -00401580 : - 401580: 2301 movs r3, #1 - 401582: 2204 movs r2, #4 - 401584: a048 add r0, pc, #288 (adr r0, 4016a8 ) - -00401586 : - 401586: f000 fc19 bl 401dbc - 40158a: 7cf0 ldrb r0, [r6, #19] - 40158c: 2801 cmp r0, #1 - 40158e: d10d bne.n 4015ac - 401590: 2220 movs r2, #32 - 401592: 2138 movs r1, #56 - 401594: 2050 movs r0, #80 - 401596: f000 fe25 bl 4021e4 - 40159a: 2220 movs r2, #32 - 40159c: 213e movs r1, #62 - 40159e: 2053 movs r0, #83 - 4015a0: f000 fe20 bl 4021e4 - 4015a4: 2220 movs r2, #32 - 4015a6: 2144 movs r1, #68 - 4015a8: 2049 movs r0, #73 - 4015aa: e7c7 b.n 40153c - -004015ac : - 4015ac: 2220 movs r2, #32 - 4015ae: 2138 movs r1, #56 - 4015b0: 206d movs r0, #109 - 4015b2: f000 fe17 bl 4021e4 - 4015b6: 2220 movs r2, #32 - 4015b8: 213e movs r1, #62 - 4015ba: 2062 movs r0, #98 - 4015bc: f000 fe12 bl 4021e4 - 4015c0: 2220 movs r2, #32 - 4015c2: 2144 movs r1, #68 - 4015c4: 2061 movs r0, #97 - 4015c6: f000 fe0d bl 4021e4 - 4015ca: 2220 movs r2, #32 - 4015cc: 214a movs r1, #74 - 4015ce: 2072 movs r0, #114 - 4015d0: e7b4 b.n 40153c - -004015d2 : - 4015d2: 0029 lsls r1, r5, #0 - 4015d4: 3154 adds r1, #84 - 4015d6: 2002 movs r0, #2 - 4015d8: f000 faec bl 401bb4 - 4015dc: 7cf0 ldrb r0, [r6, #19] - 4015de: 2801 cmp r0, #1 - 4015e0: d10c bne.n 4015fc - 4015e2: 8cb1 ldrh r1, [r6, #36] - 4015e4: 0a08 lsrs r0, r1, #8 - 4015e6: 2864 cmp r0, #100 - 4015e8: d204 bcs.n 4015f4 - 4015ea: 2301 movs r3, #1 - 4015ec: 2204 movs r2, #4 - 4015ee: 353c adds r5, #60 - 4015f0: 0028 lsls r0, r5, #0 - 4015f2: e00f b.n 401614 - -004015f4 : - 4015f4: 2301 movs r3, #1 - 4015f6: 2204 movs r2, #4 - 4015f8: a02b add r0, pc, #172 (adr r0, 4016a8 ) - 4015fa: e00b b.n 401614 - -004015fc : - 4015fc: 8bf1 ldrh r1, [r6, #30] - 4015fe: 0a08 lsrs r0, r1, #8 - 401600: 2864 cmp r0, #100 - 401602: d204 bcs.n 40160e - 401604: 2301 movs r3, #1 - 401606: 2204 movs r2, #4 - 401608: 353c adds r5, #60 - 40160a: 0028 lsls r0, r5, #0 - 40160c: e002 b.n 401614 - -0040160e : - 40160e: 2301 movs r3, #1 - 401610: 2204 movs r2, #4 - 401612: a025 add r0, pc, #148 (adr r0, 4016a8 ) - -00401614 : - 401614: f000 fbd2 bl 401dbc - 401618: 7df0 ldrb r0, [r6, #23] - 40161a: 2800 cmp r0, #0 - 40161c: d004 beq.n 401628 - 40161e: 2220 movs r2, #32 - 401620: 210f movs r1, #15 - 401622: 202d movs r0, #45 - 401624: f000 fdde bl 4021e4 - -00401628 : - 401628: 2420 movs r4, #32 - -0040162a : - 40162a: 2201 movs r2, #1 - 40162c: 0621 lsls r1, r4, #24 - 40162e: 0e09 lsrs r1, r1, #24 - 401630: 203a movs r0, #58 - 401632: f000 fd42 bl 4020ba - 401636: 0620 lsls r0, r4, #24 - 401638: 0e00 lsrs r0, r0, #24 - 40163a: 2821 cmp r0, #33 - 40163c: d101 bne.n 401642 - 40163e: 2200 movs r2, #0 - 401640: e000 b.n 401644 - -00401642 : - 401642: 2201 movs r2, #1 - -00401644 : - 401644: 0621 lsls r1, r4, #24 - 401646: 0e09 lsrs r1, r1, #24 - 401648: 203b movs r0, #59 - 40164a: f000 fd36 bl 4020ba - 40164e: 2201 movs r2, #1 - 401650: 0621 lsls r1, r4, #24 - 401652: 0e09 lsrs r1, r1, #24 - 401654: 203c movs r0, #60 - 401656: f000 fd30 bl 4020ba - 40165a: 1c64 adds r4, r4, #1 - 40165c: 0620 lsls r0, r4, #24 - 40165e: 0e00 lsrs r0, r0, #24 - 401660: 2823 cmp r0, #35 - 401662: d3e2 bcc.n 40162a - 401664: 7cf0 ldrb r0, [r6, #19] - 401666: 2801 cmp r0, #1 - 401668: d103 bne.n 401672 - 40166a: 2220 movs r2, #32 - 40166c: 2140 movs r1, #64 - 40166e: 2046 movs r0, #70 - 401670: e764 b.n 40153c - -00401672 : - 401672: 2220 movs r2, #32 - 401674: 2140 movs r1, #64 - 401676: 2043 movs r0, #67 - 401678: e760 b.n 40153c - -0040167a : - 40167a: 0029 lsls r1, r5, #0 - 40167c: 3168 adds r1, #104 - 40167e: 2002 movs r0, #2 - 401680: f000 fa98 bl 401bb4 - 401684: 2301 movs r3, #1 - 401686: 2204 movs r2, #4 - 401688: 8d71 ldrh r1, [r6, #42] - 40168a: 357c adds r5, #124 - 40168c: 0028 lsls r0, r5, #0 - 40168e: f000 fb95 bl 401dbc - 401692: 2220 movs r2, #32 - 401694: 213f movs r1, #63 - 401696: 2056 movs r0, #86 - 401698: e750 b.n 40153c - 40169a: 46c0 nop (mov r8, r8) - -0040169c : - 40169c: 00403aa4 .word 0x00403aa4 - 4016a0: 00405244 .word 0x00405244 - 4016a4: 003a4843 .word 0x003a4843 - 4016a8: 00202020 .word 0x00202020 - -004016ac : - 4016ac: b5f8 push {r3, r4, r5, r6, r7, lr} - 4016ae: 0004 lsls r4, r0, #0 - 4016b0: f000 fe32 bl 402318 - 4016b4: 4d42 ldr r5, [pc, #264] (4017c0 ) - 4016b6: 8da9 ldrh r1, [r5, #44] - 4016b8: 2917 cmp r1, #23 - 4016ba: d303 bcc.n 4016c4 - 4016bc: 20a9 movs r0, #169 - 4016be: 0040 lsls r0, r0, #1 - 4016c0: 4281 cmp r1, r0 - 4016c2: d30a bcc.n 4016da - -004016c4 : - 4016c4: 483f ldr r0, [pc, #252] (4017c4 ) - 4016c6: 2964 cmp r1, #100 - 4016c8: d302 bcc.n 4016d0 - 4016ca: 2301 movs r3, #1 - 4016cc: 0022 lsls r2, r4, #0 - 4016ce: e002 b.n 4016d6 - -004016d0 : - 4016d0: 2301 movs r3, #1 - 4016d2: 0022 lsls r2, r4, #0 - 4016d4: 3008 adds r0, #8 - -004016d6 : - 4016d6: f000 faa5 bl 401c24 - -004016da : - 4016da: 8da9 ldrh r1, [r5, #44] - 4016dc: 2944 cmp r1, #68 - 4016de: d206 bcs.n 4016ee - 4016e0: 2917 cmp r1, #23 - 4016e2: d34b bcc.n 40177c - 4016e4: 2301 movs r3, #1 - 4016e6: 0022 lsls r2, r4, #0 - 4016e8: 4837 ldr r0, [pc, #220] (4017c8 ) - 4016ea: f000 fa9b bl 401c24 - -004016ee : - 4016ee: 8da9 ldrh r1, [r5, #44] - 4016f0: 2971 cmp r1, #113 - 4016f2: d20d bcs.n 401710 - 4016f4: 2944 cmp r1, #68 - 4016f6: d341 bcc.n 40177c - 4016f8: 4832 ldr r0, [pc, #200] (4017c4 ) - 4016fa: 2964 cmp r1, #100 - 4016fc: d303 bcc.n 401706 - 4016fe: 2301 movs r3, #1 - 401700: 0022 lsls r2, r4, #0 - 401702: 3020 adds r0, #32 - 401704: e002 b.n 40170c - -00401706 : - 401706: 2301 movs r3, #1 - 401708: 0022 lsls r2, r4, #0 - 40170a: 3028 adds r0, #40 - -0040170c : - 40170c: f000 fa8a bl 401c24 - -00401710 : - 401710: 8da9 ldrh r1, [r5, #44] - 401712: 299e cmp r1, #158 - 401714: d206 bcs.n 401724 - 401716: 2971 cmp r1, #113 - 401718: d330 bcc.n 40177c - 40171a: 2301 movs r3, #1 - 40171c: 0022 lsls r2, r4, #0 - 40171e: 482b ldr r0, [pc, #172] (4017cc ) - 401720: f000 fa80 bl 401c24 - -00401724 : - 401724: 8da9 ldrh r1, [r5, #44] - 401726: 29cb cmp r1, #203 - 401728: d206 bcs.n 401738 - 40172a: 299e cmp r1, #158 - 40172c: d326 bcc.n 40177c - 40172e: 2301 movs r3, #1 - 401730: 0022 lsls r2, r4, #0 - 401732: 4827 ldr r0, [pc, #156] (4017d0 ) - 401734: f000 fa76 bl 401c24 - -00401738 : - 401738: 8da9 ldrh r1, [r5, #44] - 40173a: 29f8 cmp r1, #248 - 40173c: d206 bcs.n 40174c - 40173e: 29cb cmp r1, #203 - 401740: d31c bcc.n 40177c - 401742: 2301 movs r3, #1 - 401744: 0022 lsls r2, r4, #0 - 401746: 4823 ldr r0, [pc, #140] (4017d4 ) - 401748: f000 fa6c bl 401c24 - -0040174c : - 40174c: 8da9 ldrh r1, [r5, #44] - 40174e: 26ff movs r6, #255 - 401750: 3626 adds r6, #38 - 401752: 42b1 cmp r1, r6 - 401754: d206 bcs.n 401764 - 401756: 29f8 cmp r1, #248 - 401758: d310 bcc.n 40177c - 40175a: 2301 movs r3, #1 - 40175c: 0022 lsls r2, r4, #0 - 40175e: 481e ldr r0, [pc, #120] (4017d8 ) - 401760: f000 fa60 bl 401c24 - -00401764 : - 401764: 8da9 ldrh r1, [r5, #44] - 401766: 20a9 movs r0, #169 - 401768: 0040 lsls r0, r0, #1 - 40176a: 4281 cmp r1, r0 - 40176c: d206 bcs.n 40177c - 40176e: 42b1 cmp r1, r6 - 401770: d304 bcc.n 40177c - 401772: 2301 movs r3, #1 - 401774: 0022 lsls r2, r4, #0 - 401776: 4819 ldr r0, [pc, #100] (4017dc ) - 401778: f000 fa54 bl 401c24 - -0040177c : - 40177c: 00e7 lsls r7, r4, #3 - 40177e: 063f lsls r7, r7, #24 - 401780: 0e3f lsrs r7, r7, #24 - 401782: 003c lsls r4, r7, #0 - 401784: 1c7e adds r6, r7, #1 - 401786: 1cff adds r7, r7, #3 - 401788: e00c b.n 4017a4 - -0040178a : - 40178a: 2201 movs r2, #1 - -0040178c : - 40178c: 0021 lsls r1, r4, #0 - 40178e: 203e movs r0, #62 - 401790: f000 fc93 bl 4020ba - 401794: 2201 movs r2, #1 - 401796: 0021 lsls r1, r4, #0 - 401798: 203f movs r0, #63 - 40179a: f000 fc8e bl 4020ba - 40179e: 1c64 adds r4, r4, #1 - 4017a0: 0624 lsls r4, r4, #24 - 4017a2: 0e24 lsrs r4, r4, #24 - -004017a4 : - 4017a4: 42bc cmp r4, r7 - 4017a6: da08 bge.n 4017ba - 4017a8: 2201 movs r2, #1 - 4017aa: 0021 lsls r1, r4, #0 - 4017ac: 203d movs r0, #61 - 4017ae: f000 fc84 bl 4020ba - 4017b2: 42b4 cmp r4, r6 - 4017b4: d1e9 bne.n 40178a - 4017b6: 2200 movs r2, #0 - 4017b8: e7e8 b.n 40178c - -004017ba : - 4017ba: b001 add sp, #4 - 4017bc: e55a b.n 401274 - 4017be: 46c0 nop (mov r8, r8) - -004017c0 : - 4017c0: 00405244 .word 0x00405244 - 4017c4: 00403ba8 .word 0x00403ba8 - 4017c8: 00403bbc .word 0x00403bbc - 4017cc: 00403bdc .word 0x00403bdc - 4017d0: 00403be4 .word 0x00403be4 - 4017d4: 00403bec .word 0x00403bec - 4017d8: 00403bf4 .word 0x00403bf4 - 4017dc: 00403bfc .word 0x00403bfc - -004017e0 : - 4017e0: b500 push {lr} - 4017e2: b083 sub sp, #12 - 4017e4: 4668 mov r0, sp - 4017e6: 2102 movs r1, #2 - 4017e8: 7001 strb r1, [r0, #0] - 4017ea: 2101 movs r1, #1 - 4017ec: 7101 strb r1, [r0, #4] - 4017ee: f402 fa01 bl 3bf4 - 4017f2: 200a movs r0, #10 - 4017f4: f002 fac6 bl 403d84 - 4017f8: 4903 ldr r1, [pc, #12] (401808 ) - 4017fa: 2000 movs r0, #0 - 4017fc: f405 fa5c bl 6cb8 - 401800: 9803 ldr r0, [sp, #12] - 401802: b004 add sp, #16 - 401804: 4700 bx r0 - 401806: 46c0 nop (mov r8, r8) - -00401808 : - 401808: 0040525c .word 0x0040525c - -0040180c : - 40180c: b538 push {r3, r4, r5, lr} - 40180e: 4d10 ldr r5, [pc, #64] (401850 ) - 401810: 2480 movs r4, #128 - 401812: 0264 lsls r4, r4, #9 - 401814: 0022 lsls r2, r4, #0 - 401816: 7e29 ldrb r1, [r5, #24] - 401818: 2000 movs r0, #0 - 40181a: f405 faf3 bl 6e04 - 40181e: 2301 movs r3, #1 - 401820: 0022 lsls r2, r4, #0 - 401822: 7e29 ldrb r1, [r5, #24] - 401824: 2000 movs r0, #0 - 401826: f405 fbf9 bl 701c - 40182a: 2800 cmp r0, #0 - 40182c: d109 bne.n 401842 - 40182e: 2001 movs r0, #1 - 401830: b501 push {r0, lr} - 401832: 0023 lsls r3, r4, #0 - 401834: 002a lsls r2, r5, #0 - 401836: 3213 adds r2, #19 - 401838: 7e29 ldrb r1, [r5, #24] - 40183a: 2000 movs r0, #0 - 40183c: f405 fb42 bl 6ec4 - 401840: b002 add sp, #8 - -00401842 : - 401842: 46c0 nop (mov r8, r8) - -00401844 : - 401844: b001 add sp, #4 - 401846: 9802 ldr r0, [sp, #8] - 401848: bc30 pop {r4, r5} - 40184a: b001 add sp, #4 - 40184c: 4700 bx r0 - ... - -00401850 : - 401850: 00405244 .word 0x00405244 - -00401854 : - 401854: b580 push {r7, lr} - 401856: 4806 ldr r0, [pc, #24] (401870 ) - 401858: 2101 movs r1, #1 - 40185a: b502 push {r1, lr} - 40185c: 040b lsls r3, r1, #16 - 40185e: 0002 lsls r2, r0, #0 - 401860: 3213 adds r2, #19 - 401862: 7e01 ldrb r1, [r0, #24] - 401864: 2000 movs r0, #0 - 401866: f405 fa7f bl 6d68 - 40186a: b002 add sp, #8 - 40186c: f7ff faee bl 400e4c - -00401870 : - 401870: 00405244 .word 0x00405244 - -00401874 : - 401874: b538 push {r3, r4, r5, lr} - 401876: 2801 cmp r0, #1 - 401878: d106 bne.n 401888 - 40187a: 466c mov r4, sp - 40187c: 20fd movs r0, #253 - 40187e: 7020 strb r0, [r4, #0] - 401880: 2001 movs r0, #1 - 401882: 7060 strb r0, [r4, #1] - 401884: 2059 movs r0, #89 - 401886: e03f b.n 401908 - -00401888 : - 401888: 2802 cmp r0, #2 - 40188a: d118 bne.n 4018be - 40188c: 466c mov r4, sp - 40188e: 20fd movs r0, #253 - 401890: 7020 strb r0, [r4, #0] - 401892: 2002 movs r0, #2 - 401894: 7060 strb r0, [r4, #1] - 401896: 20ff movs r0, #255 - 401898: 70e0 strb r0, [r4, #3] - 40189a: 2910 cmp r1, #16 - 40189c: d302 bcc.n 4018a4 - -0040189e : - 40189e: 204e movs r0, #78 - 4018a0: 70a0 strb r0, [r4, #2] - 4018a2: e034 b.n 40190e - -004018a4 : - 4018a4: 4d20 ldr r5, [pc, #128] (401928 ) - 4018a6: 7569 strb r1, [r5, #21] - 4018a8: 0008 lsls r0, r1, #0 - 4018aa: f002 f8c1 bl 403a30 - 4018ae: 2059 movs r0, #89 - 4018b0: 70a0 strb r0, [r4, #2] - 4018b2: f000 f950 bl 401b56 - 4018b6: 7d28 ldrb r0, [r5, #20] - 4018b8: f7ff fdbc bl 401434 - 4018bc: e027 b.n 40190e - -004018be : - 4018be: 2803 cmp r0, #3 - 4018c0: d110 bne.n 4018e4 - 4018c2: 466c mov r4, sp - 4018c4: 20fd movs r0, #253 - 4018c6: 7020 strb r0, [r4, #0] - 4018c8: 2003 movs r0, #3 - 4018ca: 7060 strb r0, [r4, #1] - 4018cc: 20ff movs r0, #255 - 4018ce: 70e0 strb r0, [r4, #3] - 4018d0: 2913 cmp r1, #19 - 4018d2: d2e4 bcs.n 40189e - 4018d4: 4d14 ldr r5, [pc, #80] (401928 ) - 4018d6: 76a9 strb r1, [r5, #26] - 4018d8: 0008 lsls r0, r1, #0 - 4018da: f002 f8d8 bl 403a8e - 4018de: 2059 movs r0, #89 - 4018e0: 70a0 strb r0, [r4, #2] - 4018e2: e014 b.n 40190e - -004018e4 : - 4018e4: 2804 cmp r0, #4 - 4018e6: d106 bne.n 4018f6 - 4018e8: 466c mov r4, sp - 4018ea: 20fd movs r0, #253 - 4018ec: 7020 strb r0, [r4, #0] - 4018ee: 2004 movs r0, #4 - 4018f0: 7060 strb r0, [r4, #1] - 4018f2: 480e ldr r0, [pc, #56] (40192c ) - 4018f4: e007 b.n 401906 - -004018f6 : - 4018f6: 2805 cmp r0, #5 - 4018f8: d10f bne.n 40191a - 4018fa: 466c mov r4, sp - 4018fc: 20fd movs r0, #253 - 4018fe: 7020 strb r0, [r4, #0] - 401900: 2005 movs r0, #5 - 401902: 7060 strb r0, [r4, #1] - 401904: 480a ldr r0, [pc, #40] (401930 ) - -00401906 : - 401906: 7800 ldrb r0, [r0, #0] - -00401908 : - 401908: 70a0 strb r0, [r4, #2] - 40190a: 20ff movs r0, #255 - 40190c: 70e0 strb r0, [r4, #3] - -0040190e : - 40190e: 2204 movs r2, #4 - 401910: 4669 mov r1, sp - 401912: 2000 movs r0, #0 - 401914: f401 fbb0 bl 3078 - -00401918 : - 401918: e794 b.n 401844 - -0040191a : - 40191a: 2807 cmp r0, #7 - 40191c: d1fc bne.n 401918 - 40191e: 4805 ldr r0, [pc, #20] (401934 ) - 401920: 2101 movs r1, #1 - 401922: 7001 strb r1, [r0, #0] - 401924: e7f8 b.n 401918 - 401926: 46c0 nop (mov r8, r8) - -00401928 : - 401928: 00405244 .word 0x00405244 - 40192c: 00405259 .word 0x00405259 - 401930: 0040525e .word 0x0040525e - 401934: 0040525d .word 0x0040525d - -00401938 : - 401938: b538 push {r3, r4, r5, lr} - 40193a: 0004 lsls r4, r0, #0 - 40193c: 2500 movs r5, #0 - 40193e: e002 b.n 401946 - -00401940 : - 401940: 1c6d adds r5, r5, #1 - 401942: 062d lsls r5, r5, #24 - 401944: 0e2d lsrs r5, r5, #24 - -00401946 : - 401946: 1961 adds r1, r4, r5 - 401948: 2000 movs r0, #0 - 40194a: f401 fcd7 bl 32fc - 40194e: 2800 cmp r0, #0 - 401950: d001 beq.n 401956 - 401952: 2d0d cmp r5, #13 - 401954: d3f4 bcc.n 401940 - -00401956 : - 401956: 0028 lsls r0, r5, #0 - 401958: b001 add sp, #4 - 40195a: 9902 ldr r1, [sp, #8] - 40195c: bc30 pop {r4, r5} - 40195e: b001 add sp, #4 - 401960: 4708 bx r1 - ... - -00401964 : - 401964: b538 push {r3, r4, r5, lr} - 401966: 2100 movs r1, #0 - 401968: 2009 movs r0, #9 - 40196a: f406 feff bl 876c - 40196e: 2100 movs r1, #0 - 401970: 2014 movs r0, #20 - 401972: f406 fefb bl 876c - 401976: 2100 movs r1, #0 - 401978: 2008 movs r0, #8 - 40197a: f406 fef7 bl 876c - 40197e: 2100 movs r1, #0 - 401980: 2015 movs r0, #21 - 401982: f406 fef3 bl 876c - 401986: 2100 movs r1, #0 - 401988: 202d movs r0, #45 - 40198a: f406 feef bl 876c - 40198e: 2100 movs r1, #0 - 401990: 2013 movs r0, #19 - 401992: f406 feeb bl 876c - 401996: 2100 movs r1, #0 - 401998: 2009 movs r0, #9 - 40199a: f406 fd71 bl 8480 - 40199e: 2100 movs r1, #0 - 4019a0: 2014 movs r0, #20 - 4019a2: f406 fd6d bl 8480 - 4019a6: 2100 movs r1, #0 - 4019a8: 2008 movs r0, #8 - 4019aa: f406 fd69 bl 8480 - 4019ae: 2101 movs r1, #1 - 4019b0: 2015 movs r0, #21 - 4019b2: f406 fd65 bl 8480 - 4019b6: 2101 movs r1, #1 - 4019b8: 202d movs r0, #45 - 4019ba: f406 fd61 bl 8480 - 4019be: 2101 movs r1, #1 - 4019c0: 2013 movs r0, #19 - 4019c2: f406 fd5d bl 8480 - 4019c6: 2101 movs r1, #1 - 4019c8: 2014 movs r0, #20 - 4019ca: f406 fdd3 bl 8574 - 4019ce: 2101 movs r1, #1 - 4019d0: 2015 movs r0, #21 - 4019d2: f406 fdcf bl 8574 - 4019d6: 2101 movs r1, #1 - 4019d8: 2008 movs r0, #8 - 4019da: f406 fdcb bl 8574 - 4019de: 2101 movs r1, #1 - 4019e0: 2009 movs r0, #9 - 4019e2: f406 fdc7 bl 8574 - 4019e6: 2101 movs r1, #1 - 4019e8: 200a movs r0, #10 - 4019ea: f406 fdc3 bl 8574 - 4019ee: 2101 movs r1, #1 - 4019f0: 202d movs r0, #45 - 4019f2: f406 fdbf bl 8574 - 4019f6: 2101 movs r1, #1 - 4019f8: 2013 movs r0, #19 - 4019fa: f406 fdbb bl 8574 - 4019fe: 2101 movs r1, #1 - 401a00: 2014 movs r0, #20 - 401a02: f406 fcd1 bl 83a8 - 401a06: 2101 movs r1, #1 - 401a08: 2015 movs r0, #21 - 401a0a: f406 fccd bl 83a8 - 401a0e: 2101 movs r1, #1 - 401a10: 2008 movs r0, #8 - 401a12: f406 fcc9 bl 83a8 - 401a16: 2101 movs r1, #1 - 401a18: 2009 movs r0, #9 - 401a1a: f406 fcc5 bl 83a8 - 401a1e: 2101 movs r1, #1 - 401a20: 200a movs r0, #10 - 401a22: f406 fcc1 bl 83a8 - 401a26: 2101 movs r1, #1 - 401a28: 202d movs r0, #45 - 401a2a: f406 fcbd bl 83a8 - 401a2e: 2101 movs r1, #1 - 401a30: 2013 movs r0, #19 - 401a32: f406 fcb9 bl 83a8 - 401a36: 22f0 movs r2, #240 - 401a38: 2100 movs r1, #0 - 401a3a: 2000 movs r0, #0 - 401a3c: f406 fe52 bl 86e4 - 401a40: 220f movs r2, #15 - 401a42: 2100 movs r1, #0 - 401a44: 2001 movs r0, #1 - 401a46: f406 fe4d bl 86e4 - 401a4a: 23f0 movs r3, #240 - 401a4c: 22f0 movs r2, #240 - 401a4e: 2103 movs r1, #3 - 401a50: 2000 movs r0, #0 - 401a52: f406 fc41 bl 82d8 - 401a56: 230f movs r3, #15 - 401a58: 220f movs r2, #15 - 401a5a: 2103 movs r1, #3 - 401a5c: 2001 movs r0, #1 - 401a5e: f406 fc3b bl 82d8 - 401a62: 23f0 movs r3, #240 - 401a64: 22f0 movs r2, #240 - 401a66: 2104 movs r1, #4 - 401a68: 2000 movs r0, #0 - 401a6a: f406 fc35 bl 82d8 - 401a6e: 230f movs r3, #15 - 401a70: 220f movs r2, #15 - 401a72: 2104 movs r1, #4 - 401a74: 2001 movs r0, #1 - 401a76: f406 fc2f bl 82d8 - 401a7a: 23f0 movs r3, #240 - 401a7c: 22f0 movs r2, #240 - 401a7e: 2106 movs r1, #6 - 401a80: 2000 movs r0, #0 - 401a82: f406 fc29 bl 82d8 - 401a86: 230f movs r3, #15 - 401a88: 220f movs r2, #15 - 401a8a: 2106 movs r1, #6 - 401a8c: 2001 movs r0, #1 - 401a8e: f406 fc23 bl 82d8 - 401a92: 25f0 movs r5, #240 - 401a94: 43ed mvns r5, r5 - 401a96: 23f0 movs r3, #240 - 401a98: 002a lsls r2, r5, #0 - 401a9a: 2102 movs r1, #2 - 401a9c: 2000 movs r0, #0 - 401a9e: f406 fc1b bl 82d8 - 401aa2: 240f movs r4, #15 - 401aa4: 43e4 mvns r4, r4 - 401aa6: 230f movs r3, #15 - 401aa8: 0022 lsls r2, r4, #0 - 401aaa: 2102 movs r1, #2 - 401aac: 2001 movs r0, #1 - 401aae: f406 fc13 bl 82d8 - 401ab2: 22f0 movs r2, #240 - 401ab4: 0029 lsls r1, r5, #0 - 401ab6: 2000 movs r0, #0 - 401ab8: f406 fc60 bl 837c - 401abc: 220f movs r2, #15 - 401abe: 0021 lsls r1, r4, #0 - 401ac0: 2001 movs r0, #1 - 401ac2: f406 fc5b bl 837c - 401ac6: 2100 movs r1, #0 - 401ac8: 202d movs r0, #45 - 401aca: f406 fcd9 bl 8480 - 401ace: 2100 movs r1, #0 - 401ad0: 2013 movs r0, #19 - 401ad2: f406 fcd5 bl 8480 - 401ad6: 200a movs r0, #10 - 401ad8: f002 f966 bl 403da8 - 401adc: 2101 movs r1, #1 - 401ade: 202d movs r0, #45 - 401ae0: f406 fcce bl 8480 - 401ae4: 2101 movs r1, #1 - 401ae6: 2013 movs r0, #19 - 401ae8: f406 fcca bl 8480 - 401aec: 2001 movs r0, #1 - 401aee: f002 f949 bl 403d84 - 401af2: 20e2 movs r0, #226 - 401af4: f000 fa5a bl 401fac - 401af8: 200a movs r0, #10 - 401afa: f002 f955 bl 403da8 - 401afe: 20a2 movs r0, #162 - 401b00: f000 fa54 bl 401fac - 401b04: 20a1 movs r0, #161 - 401b06: f000 fa51 bl 401fac - 401b0a: 20c0 movs r0, #192 - 401b0c: f000 fa4e bl 401fac - 401b10: 2024 movs r0, #36 - 401b12: f000 fa4b bl 401fac - 401b16: 2081 movs r0, #129 - 401b18: f000 fa48 bl 401fac - 401b1c: 2030 movs r0, #48 - 401b1e: f000 fa45 bl 401fac - 401b22: 202f movs r0, #47 - 401b24: f000 fa42 bl 401fac - 401b28: 200a movs r0, #10 - 401b2a: f002 f93d bl 403da8 - 401b2e: 20af movs r0, #175 - 401b30: f000 fa3c bl 401fac - 401b34: 200a movs r0, #10 - 401b36: f002 f937 bl 403da8 - 401b3a: 200f movs r0, #15 - 401b3c: f000 fab2 bl 4020a4 - 401b40: 2000 movs r0, #0 - 401b42: f000 fa9f bl 402084 - 401b46: 481a ldr r0, [pc, #104] (401bb0 ) - 401b48: 2100 movs r1, #0 - 401b4a: 7001 strb r1, [r0, #0] - 401b4c: b001 add sp, #4 - 401b4e: 9802 ldr r0, [sp, #8] - 401b50: bc30 pop {r4, r5} - 401b52: b001 add sp, #4 - 401b54: 4700 bx r0 - -00401b56 : - 401b56: b570 push {r4, r5, r6, lr} - 401b58: 2600 movs r6, #0 - 401b5a: 4c15 ldr r4, [pc, #84] (401bb0 ) - 401b5c: 7066 strb r6, [r4, #1] - 401b5e: 4d30 ldr r5, [pc, #192] (401c20 ) - 401b60: 78e8 ldrb r0, [r5, #3] - 401b62: 7821 ldrb r1, [r4, #0] - 401b64: 2901 cmp r1, #1 - 401b66: d103 bne.n 401b70 - 401b68: 7929 ldrb r1, [r5, #4] - 401b6a: 4001 ands r1, r0 - 401b6c: d000 beq.n 401b70 - 401b6e: 4388 bics r0, r1 - -00401b70 : - 401b70: 70a0 strb r0, [r4, #2] - 401b72: e002 b.n 401b7a - -00401b74 : - 401b74: 1c76 adds r6, r6, #1 - 401b76: 0636 lsls r6, r6, #24 - 401b78: 0e36 lsrs r6, r6, #24 - -00401b7a : - 401b7a: 78a0 ldrb r0, [r4, #2] - 401b7c: 4130 asrs r0, r6 - 401b7e: 07c0 lsls r0, r0, #31 - 401b80: d401 bmi.n 401b86 - 401b82: 2e08 cmp r6, #8 - 401b84: d3f6 bcc.n 401b74 - -00401b86 : - 401b86: 0030 lsls r0, r6, #0 - 401b88: 2808 cmp r0, #8 - 401b8a: d00c beq.n 401ba6 - 401b8c: f000 fbc4 bl 402318 - 401b90: 2801 cmp r0, #1 - 401b92: d1f2 bne.n 401b7a - 401b94: 2101 movs r1, #1 - 401b96: 40b1 lsls r1, r6 - 401b98: 43c8 mvns r0, r1 - 401b9a: 78e9 ldrb r1, [r5, #3] - 401b9c: 4001 ands r1, r0 - 401b9e: 70e9 strb r1, [r5, #3] - 401ba0: 78a1 ldrb r1, [r4, #2] - 401ba2: 4008 ands r0, r1 - 401ba4: e7e4 b.n 401b70 - -00401ba6 : - 401ba6: 9803 ldr r0, [sp, #12] - 401ba8: bc70 pop {r4, r5, r6} - 401baa: b001 add sp, #4 - 401bac: 4700 bx r0 - ... - -00401bb0 : - 401bb0: 004052a8 .word 0x004052a8 - -00401bb4 : - 401bb4: b5f8 push {r3, r4, r5, r6, r7, lr} - 401bb6: 000d lsls r5, r1, #0 - 401bb8: 0041 lsls r1, r0, #1 - 401bba: 1808 adds r0, r1, r0 - 401bbc: 4917 ldr r1, [pc, #92] (401c1c ) - 401bbe: 1808 adds r0, r1, r0 - 401bc0: 4e17 ldr r6, [pc, #92] (401c20 ) - 401bc2: 7901 ldrb r1, [r0, #4] - 401bc4: 7031 strb r1, [r6, #0] - 401bc6: 7940 ldrb r0, [r0, #5] - 401bc8: 7070 strb r0, [r6, #1] - 401bca: 0028 lsls r0, r5, #0 - 401bcc: 2400 movs r4, #0 - 401bce: 2100 movs r1, #0 - 401bd0: 2700 movs r7, #0 - 401bd2: e006 b.n 401be2 - -00401bd4 : - 401bd4: 1c49 adds r1, r1, #1 - 401bd6: 0609 lsls r1, r1, #24 - 401bd8: 1609 asrs r1, r1, #24 - 401bda: 1c7f adds r7, r7, #1 - 401bdc: 063f lsls r7, r7, #24 - 401bde: 163f asrs r7, r7, #24 - 401be0: 1c40 adds r0, r0, #1 - -00401be2 : - 401be2: 7802 ldrb r2, [r0, #0] - 401be4: 2a00 cmp r2, #0 - 401be6: d001 beq.n 401bec - 401be8: 2915 cmp r1, #21 - 401bea: dbf3 blt.n 401bd4 - -00401bec : - 401bec: 2f16 cmp r7, #22 - 401bee: db00 blt.n 401bf2 - 401bf0: 2715 movs r7, #21 - -00401bf2 : - 401bf2: 063f lsls r7, r7, #24 - 401bf4: 0e3f lsrs r7, r7, #24 - 401bf6: e009 b.n 401c0c - -00401bf8 : - 401bf8: 7872 ldrb r2, [r6, #1] - 401bfa: 7831 ldrb r1, [r6, #0] - 401bfc: 7828 ldrb r0, [r5, #0] - 401bfe: f000 faf1 bl 4021e4 - 401c02: 7830 ldrb r0, [r6, #0] - 401c04: 1d80 adds r0, r0, #6 - 401c06: 7030 strb r0, [r6, #0] - 401c08: 1c6d adds r5, r5, #1 - 401c0a: 1c64 adds r4, r4, #1 - -00401c0c : - 401c0c: 0620 lsls r0, r4, #24 - 401c0e: 0e00 lsrs r0, r0, #24 - 401c10: 42b8 cmp r0, r7 - 401c12: d201 bcs.n 401c18 - 401c14: 2815 cmp r0, #21 - 401c16: d3ef bcc.n 401bf8 - -00401c18 : - 401c18: b001 add sp, #4 - 401c1a: e349 b.n 4022b0 - -00401c1c : - 401c1c: 00405484 .word 0x00405484 - -00401c20 : - 401c20: 004052b0 .word 0x004052b0 - -00401c24 : - 401c24: b5f5 push {r0, r2, r4, r5, r6, r7, lr} - 401c26: b08d sub sp, #52 - 401c28: 000c lsls r4, r1, #0 - 401c2a: 4d61 ldr r5, [pc, #388] (401db0 ) - 401c2c: 4668 mov r0, sp - 401c2e: 2105 movs r1, #5 - 401c30: 7001 strb r1, [r0, #0] - 401c32: 2600 movs r6, #0 - 401c34: 2700 movs r7, #0 - 401c36: 485f ldr r0, [pc, #380] (401db4 ) - 401c38: 7006 strb r6, [r0, #0] - 401c3a: 2b01 cmp r3, #1 - 401c3c: d16c bne.n 401d18 - 401c3e: 2c64 cmp r4, #100 - 401c40: d204 bcs.n 401c4c - 401c42: 4668 mov r0, sp - 401c44: 2102 movs r1, #2 - 401c46: 7001 strb r1, [r0, #0] - 401c48: 250a movs r5, #10 - 401c4a: e00f b.n 401c6c - -00401c4c : - 401c4c: 20fa movs r0, #250 - 401c4e: 0080 lsls r0, r0, #2 - 401c50: 4284 cmp r4, r0 - 401c52: d204 bcs.n 401c5e - 401c54: 4668 mov r0, sp - 401c56: 2103 movs r1, #3 - 401c58: 7001 strb r1, [r0, #0] - 401c5a: 2564 movs r5, #100 - 401c5c: e006 b.n 401c6c - -00401c5e : - 401c5e: 1e69 subs r1, r5, #1 - 401c60: 428c cmp r4, r1 - 401c62: d203 bcs.n 401c6c - 401c64: 4669 mov r1, sp - 401c66: 2204 movs r2, #4 - 401c68: 700a strb r2, [r1, #0] - 401c6a: 0005 lsls r5, r0, #0 - -00401c6c : - 401c6c: 1c78 adds r0, r7, #1 - 401c6e: 0600 lsls r0, r0, #24 - 401c70: 0e00 lsrs r0, r0, #24 - 401c72: 9001 str r0, [sp, #4] - 401c74: 063f lsls r7, r7, #24 - 401c76: 0e3f lsrs r7, r7, #24 - 401c78: 0424 lsls r4, r4, #16 - 401c7a: 0c24 lsrs r4, r4, #16 - 401c7c: 0020 lsls r0, r4, #0 - 401c7e: 042d lsls r5, r5, #16 - 401c80: 142d asrs r5, r5, #16 - 401c82: 0029 lsls r1, r5, #0 - 401c84: f7fe fe3c bl 400900 - 401c88: 2800 cmp r0, #0 - 401c8a: d009 beq.n 401ca0 - 401c8c: a902 add r1, sp, #8 - 401c8e: 3030 adds r0, #48 - 401c90: 55c8 strb r0, [r1, r7] - 401c92: 9f01 ldr r7, [sp, #4] - 401c94: 0020 lsls r0, r4, #0 - 401c96: 0029 lsls r1, r5, #0 - 401c98: f7fe fe32 bl 400900 - 401c9c: 000c lsls r4, r1, #0 - 401c9e: e003 b.n 401ca8 - -00401ca0 : - 401ca0: a802 add r0, sp, #8 - 401ca2: 2130 movs r1, #48 - 401ca4: 55c1 strb r1, [r0, r7] - 401ca6: 9f01 ldr r7, [sp, #4] - -00401ca8 : - 401ca8: 0028 lsls r0, r5, #0 - 401caa: 210a movs r1, #10 - 401cac: f7fe fe28 bl 400900 - 401cb0: 0005 lsls r5, r0, #0 - 401cb2: 1c76 adds r6, r6, #1 - 401cb4: 0636 lsls r6, r6, #24 - 401cb6: 0e36 lsrs r6, r6, #24 - 401cb8: 4669 mov r1, sp - 401cba: 7809 ldrb r1, [r1, #0] - 401cbc: 428e cmp r6, r1 - 401cbe: d3d5 bcc.n 401c6c - 401cc0: 063f lsls r7, r7, #24 - 401cc2: 0e3f lsrs r7, r7, #24 - 401cc4: a802 add r0, sp, #8 - 401cc6: 2100 movs r1, #0 - 401cc8: 55c1 strb r1, [r0, r7] - 401cca: 2700 movs r7, #0 - 401ccc: a804 add r0, sp, #16 - 401cce: e006 b.n 401cde - -00401cd0 : - 401cd0: 55c1 strb r1, [r0, r7] - 401cd2: 1c7f adds r7, r7, #1 - 401cd4: 063f lsls r7, r7, #24 - 401cd6: 0e3f lsrs r7, r7, #24 - 401cd8: 990d ldr r1, [sp, #52] - 401cda: 1c49 adds r1, r1, #1 - 401cdc: 910d str r1, [sp, #52] - -00401cde : - 401cde: 990d ldr r1, [sp, #52] - 401ce0: 7809 ldrb r1, [r1, #0] - 401ce2: 2900 cmp r1, #0 - 401ce4: d001 beq.n 401cea - 401ce6: 2f15 cmp r7, #21 - 401ce8: d3f2 bcc.n 401cd0 - -00401cea : - 401cea: 2600 movs r6, #0 - 401cec: e006 b.n 401cfc - -00401cee : - 401cee: 55c1 strb r1, [r0, r7] - 401cf0: 1c76 adds r6, r6, #1 - 401cf2: 0636 lsls r6, r6, #24 - 401cf4: 0e36 lsrs r6, r6, #24 - 401cf6: 1c7f adds r7, r7, #1 - 401cf8: 063f lsls r7, r7, #24 - 401cfa: 0e3f lsrs r7, r7, #24 - -00401cfc : - 401cfc: aa02 add r2, sp, #8 - 401cfe: 5d91 ldrb r1, [r2, r6] - 401d00: 2900 cmp r1, #0 - 401d02: d001 beq.n 401d08 - 401d04: 2f15 cmp r7, #21 - 401d06: d3f2 bcc.n 401cee - -00401d08 : - 401d08: 2100 movs r1, #0 - 401d0a: 55c1 strb r1, [r0, r7] - 401d0c: a904 add r1, sp, #16 - 401d0e: a80e add r0, sp, #56 - 401d10: 7800 ldrb r0, [r0, #0] - 401d12: f7ff ff4f bl 401bb4 - 401d16: e048 b.n 401daa - -00401d18 : - 401d18: 4927 ldr r1, [pc, #156] (401db8 ) - 401d1a: 2b00 cmp r3, #0 - 401d1c: a80b add r0, sp, #44 - 401d1e: d13f bne.n 401da0 - -00401d20 : - 401d20: 1122 asrs r2, r4, #4 - 401d22: 0112 lsls r2, r2, #4 - 401d24: 1aa2 subs r2, r4, r2 - 401d26: 188a adds r2, r1, r2 - 401d28: 7d12 ldrb r2, [r2, #20] - 401d2a: 5582 strb r2, [r0, r6] - 401d2c: 0324 lsls r4, r4, #12 - 401d2e: 1c76 adds r6, r6, #1 - 401d30: 0636 lsls r6, r6, #24 - 401d32: 0e36 lsrs r6, r6, #24 - 401d34: 0c24 lsrs r4, r4, #16 - 401d36: 2c10 cmp r4, #16 - 401d38: d2f2 bcs.n 401d20 - 401d3a: 1909 adds r1, r1, r4 - 401d3c: 7d09 ldrb r1, [r1, #20] - 401d3e: 5581 strb r1, [r0, r6] - 401d40: a909 add r1, sp, #36 - 401d42: e006 b.n 401d52 - -00401d44 : - 401d44: 5d83 ldrb r3, [r0, r6] - 401d46: 55cb strb r3, [r1, r7] - 401d48: 1e76 subs r6, r6, #1 - 401d4a: 0636 lsls r6, r6, #24 - 401d4c: 0e36 lsrs r6, r6, #24 - 401d4e: 0617 lsls r7, r2, #24 - 401d50: 0e3f lsrs r7, r7, #24 - -00401d52 : - 401d52: 1c7a adds r2, r7, #1 - 401d54: 0033 lsls r3, r6, #0 - 401d56: d1f5 bne.n 401d44 - 401d58: 7800 ldrb r0, [r0, #0] - 401d5a: 55c8 strb r0, [r1, r7] - 401d5c: 0612 lsls r2, r2, #24 - 401d5e: 0e12 lsrs r2, r2, #24 - 401d60: 2000 movs r0, #0 - 401d62: 5488 strb r0, [r1, r2] - 401d64: 2700 movs r7, #0 - 401d66: a804 add r0, sp, #16 - 401d68: e006 b.n 401d78 - -00401d6a : - 401d6a: 55c2 strb r2, [r0, r7] - 401d6c: 1c7f adds r7, r7, #1 - 401d6e: 063f lsls r7, r7, #24 - 401d70: 0e3f lsrs r7, r7, #24 - 401d72: 9a0d ldr r2, [sp, #52] - 401d74: 1c52 adds r2, r2, #1 - 401d76: 920d str r2, [sp, #52] - -00401d78 : - 401d78: 9a0d ldr r2, [sp, #52] - 401d7a: 7812 ldrb r2, [r2, #0] - 401d7c: 2a00 cmp r2, #0 - 401d7e: d001 beq.n 401d84 - 401d80: 2f15 cmp r7, #21 - 401d82: d3f2 bcc.n 401d6a - -00401d84 : - 401d84: 2600 movs r6, #0 - -00401d86 : - 401d86: 5d8a ldrb r2, [r1, r6] - 401d88: 2a00 cmp r2, #0 - 401d8a: d0bd beq.n 401d08 - 401d8c: 2f15 cmp r7, #21 - 401d8e: d2bb bcs.n 401d08 - 401d90: 55c2 strb r2, [r0, r7] - 401d92: 1c76 adds r6, r6, #1 - 401d94: 0636 lsls r6, r6, #24 - 401d96: 0e36 lsrs r6, r6, #24 - 401d98: 1c7f adds r7, r7, #1 - 401d9a: 063f lsls r7, r7, #24 - 401d9c: 0e3f lsrs r7, r7, #24 - 401d9e: e7f2 b.n 401d86 - -00401da0 : - 401da0: 3128 adds r1, #40 - 401da2: a80e add r0, sp, #56 - 401da4: 7800 ldrb r0, [r0, #0] - 401da6: f7ff ff05 bl 401bb4 - -00401daa : - 401daa: b00f add sp, #60 - 401dac: e280 b.n 4022b0 - 401dae: 46c0 nop (mov r8, r8) - -00401db0 : - 401db0: 00002710 .word 0x00002710 - 401db4: 004052a9 .word 0x004052a9 - -00401db8 : - 401db8: 00403e04 .word 0x00403e04 - -00401dbc : - 401dbc: b5ff push {r0, r1, r2, r3, r4, r5, r6, r7, lr} - 401dbe: b091 sub sp, #68 - 401dc0: 4e76 ldr r6, [pc, #472] (401f9c ) - 401dc2: 4668 mov r0, sp - 401dc4: 2105 movs r1, #5 - 401dc6: 7201 strb r1, [r0, #8] - 401dc8: 2400 movs r4, #0 - 401dca: 2500 movs r5, #0 - 401dcc: a807 add r0, sp, #28 - 401dce: 2114 movs r1, #20 - 401dd0: f002 f8ae bl 403f30 - 401dd4: 4872 ldr r0, [pc, #456] (401fa0 ) - 401dd6: 7004 strb r4, [r0, #0] - 401dd8: a814 add r0, sp, #80 - 401dda: 7800 ldrb r0, [r0, #0] - 401ddc: 2801 cmp r0, #1 - 401dde: d000 beq.n 401de2 - 401de0: e07e b.n 401ee0 - 401de2: a812 add r0, sp, #72 - 401de4: 8800 ldrh r0, [r0, #0] - 401de6: 0a00 lsrs r0, r0, #8 - 401de8: 9000 str r0, [sp, #0] - 401dea: 9401 str r4, [sp, #4] - -00401dec : - 401dec: 9800 ldr r0, [sp, #0] - 401dee: 0600 lsls r0, r0, #24 - 401df0: 0e00 lsrs r0, r0, #24 - 401df2: 2864 cmp r0, #100 - 401df4: d204 bcs.n 401e00 - 401df6: 4668 mov r0, sp - 401df8: 2102 movs r1, #2 - 401dfa: 7201 strb r1, [r0, #8] - 401dfc: 260a movs r6, #10 - 401dfe: e00c b.n 401e1a - -00401e00 : - 401e00: 9800 ldr r0, [sp, #0] - 401e02: 0600 lsls r0, r0, #24 - 401e04: 0e00 lsrs r0, r0, #24 - 401e06: 28ff cmp r0, #255 - 401e08: 4668 mov r0, sp - 401e0a: d003 beq.n 401e14 - 401e0c: 2103 movs r1, #3 - 401e0e: 7201 strb r1, [r0, #8] - 401e10: 2664 movs r6, #100 - 401e12: e002 b.n 401e1a - -00401e14 : - 401e14: 7a00 ldrb r0, [r0, #8] - 401e16: 2800 cmp r0, #0 - 401e18: d028 beq.n 401e6c - -00401e1a : - 401e1a: 4668 mov r0, sp - 401e1c: 7a07 ldrb r7, [r0, #8] - -00401e1e : - 401e1e: 1c68 adds r0, r5, #1 - 401e20: 0600 lsls r0, r0, #24 - 401e22: 0e00 lsrs r0, r0, #24 - 401e24: 9004 str r0, [sp, #16] - 401e26: 9800 ldr r0, [sp, #0] - 401e28: 0600 lsls r0, r0, #24 - 401e2a: 0e00 lsrs r0, r0, #24 - 401e2c: 9003 str r0, [sp, #12] - 401e2e: 0031 lsls r1, r6, #0 - 401e30: f7fe fd66 bl 400900 - 401e34: 062d lsls r5, r5, #24 - 401e36: 0e2d lsrs r5, r5, #24 - 401e38: 2800 cmp r0, #0 - 401e3a: d00b beq.n 401e54 - 401e3c: a905 add r1, sp, #20 - 401e3e: 3030 adds r0, #48 - 401e40: 5548 strb r0, [r1, r5] - 401e42: 9d04 ldr r5, [sp, #16] - 401e44: 9803 ldr r0, [sp, #12] - 401e46: 0031 lsls r1, r6, #0 - 401e48: f7fe fd5a bl 400900 - 401e4c: 0609 lsls r1, r1, #24 - 401e4e: 0e09 lsrs r1, r1, #24 - 401e50: 9100 str r1, [sp, #0] - 401e52: e003 b.n 401e5c - -00401e54 : - 401e54: a805 add r0, sp, #20 - 401e56: 2130 movs r1, #48 - 401e58: 5541 strb r1, [r0, r5] - 401e5a: 9d04 ldr r5, [sp, #16] - -00401e5c : - 401e5c: 0030 lsls r0, r6, #0 - 401e5e: 210a movs r1, #10 - 401e60: f7fe fd4e bl 400900 - 401e64: 0406 lsls r6, r0, #16 - 401e66: 1436 asrs r6, r6, #16 - 401e68: 1e7f subs r7, r7, #1 - 401e6a: d1d8 bne.n 401e1e - -00401e6c : - 401e6c: 9801 ldr r0, [sp, #4] - 401e6e: 0600 lsls r0, r0, #24 - 401e70: d107 bne.n 401e82 - 401e72: 0628 lsls r0, r5, #24 - 401e74: 0e00 lsrs r0, r0, #24 - 401e76: a905 add r1, sp, #20 - 401e78: 222e movs r2, #46 - 401e7a: 540a strb r2, [r1, r0] - 401e7c: 1c6d adds r5, r5, #1 - 401e7e: 062d lsls r5, r5, #24 - 401e80: 0e2d lsrs r5, r5, #24 - -00401e82 : - 401e82: a812 add r0, sp, #72 - 401e84: 8800 ldrh r0, [r0, #0] - 401e86: 0600 lsls r0, r0, #24 - 401e88: 0e00 lsrs r0, r0, #24 - 401e8a: 9000 str r0, [sp, #0] - 401e8c: 9801 ldr r0, [sp, #4] - 401e8e: 1c40 adds r0, r0, #1 - 401e90: 9001 str r0, [sp, #4] - 401e92: 0600 lsls r0, r0, #24 - 401e94: 0e00 lsrs r0, r0, #24 - 401e96: 2802 cmp r0, #2 - 401e98: d3a8 bcc.n 401dec - 401e9a: 062d lsls r5, r5, #24 - 401e9c: 0e2d lsrs r5, r5, #24 - 401e9e: a805 add r0, sp, #20 - 401ea0: 5544 strb r4, [r0, r5] - 401ea2: 2500 movs r5, #0 - 401ea4: a907 add r1, sp, #28 - 401ea6: e006 b.n 401eb6 - -00401ea8 : - 401ea8: 5548 strb r0, [r1, r5] - 401eaa: 1c6d adds r5, r5, #1 - 401eac: 062d lsls r5, r5, #24 - 401eae: 0e2d lsrs r5, r5, #24 - 401eb0: 9811 ldr r0, [sp, #68] - 401eb2: 1c40 adds r0, r0, #1 - 401eb4: 9011 str r0, [sp, #68] - -00401eb6 : - 401eb6: 9811 ldr r0, [sp, #68] - 401eb8: 7800 ldrb r0, [r0, #0] - 401eba: 2800 cmp r0, #0 - 401ebc: d009 beq.n 401ed2 - 401ebe: 2d15 cmp r5, #21 - 401ec0: d3f2 bcc.n 401ea8 - 401ec2: e006 b.n 401ed2 - -00401ec4 : - 401ec4: 5548 strb r0, [r1, r5] - 401ec6: 1c64 adds r4, r4, #1 - 401ec8: 0624 lsls r4, r4, #24 - 401eca: 0e24 lsrs r4, r4, #24 - 401ecc: 1c6d adds r5, r5, #1 - 401ece: 062d lsls r5, r5, #24 - 401ed0: 0e2d lsrs r5, r5, #24 - -00401ed2 : - 401ed2: aa05 add r2, sp, #20 - 401ed4: 5d10 ldrb r0, [r2, r4] - 401ed6: 2800 cmp r0, #0 - 401ed8: d053 beq.n 401f82 - 401eda: 2d15 cmp r5, #21 - 401edc: d3f2 bcc.n 401ec4 - 401ede: e050 b.n 401f82 - -00401ee0 : - 401ee0: a814 add r0, sp, #80 - 401ee2: 7800 ldrb r0, [r0, #0] - 401ee4: 2800 cmp r0, #0 - 401ee6: a90e add r1, sp, #56 - 401ee8: d151 bne.n 401f8e - -00401eea : - 401eea: a812 add r0, sp, #72 - 401eec: 8800 ldrh r0, [r0, #0] - 401eee: 1102 asrs r2, r0, #4 - 401ef0: 0112 lsls r2, r2, #4 - 401ef2: 1a80 subs r0, r0, r2 - 401ef4: 4a2b ldr r2, [pc, #172] (401fa4 ) - 401ef6: 1810 adds r0, r2, r0 - 401ef8: 7d00 ldrb r0, [r0, #20] - 401efa: 5508 strb r0, [r1, r4] - 401efc: a812 add r0, sp, #72 - 401efe: aa12 add r2, sp, #72 - 401f00: 8812 ldrh r2, [r2, #0] - 401f02: 0912 lsrs r2, r2, #4 - 401f04: 8002 strh r2, [r0, #0] - 401f06: 1c64 adds r4, r4, #1 - 401f08: 0624 lsls r4, r4, #24 - 401f0a: 0e24 lsrs r4, r4, #24 - 401f0c: 2a10 cmp r2, #16 - 401f0e: d2ec bcs.n 401eea - 401f10: 0010 lsls r0, r2, #0 - 401f12: 4a24 ldr r2, [pc, #144] (401fa4 ) - 401f14: 1810 adds r0, r2, r0 - 401f16: 7d00 ldrb r0, [r0, #20] - 401f18: 5508 strb r0, [r1, r4] - 401f1a: a80c add r0, sp, #48 - 401f1c: e006 b.n 401f2c - -00401f1e : - 401f1e: 5d0b ldrb r3, [r1, r4] - 401f20: 5543 strb r3, [r0, r5] - 401f22: 1e64 subs r4, r4, #1 - 401f24: 0624 lsls r4, r4, #24 - 401f26: 0e24 lsrs r4, r4, #24 - 401f28: 0615 lsls r5, r2, #24 - 401f2a: 0e2d lsrs r5, r5, #24 - -00401f2c : - 401f2c: 1c6a adds r2, r5, #1 - 401f2e: 0023 lsls r3, r4, #0 - 401f30: d1f5 bne.n 401f1e - 401f32: 7809 ldrb r1, [r1, #0] - 401f34: 5541 strb r1, [r0, r5] - 401f36: 0612 lsls r2, r2, #24 - 401f38: 0e12 lsrs r2, r2, #24 - 401f3a: 2100 movs r1, #0 - 401f3c: 5481 strb r1, [r0, r2] - 401f3e: 2500 movs r5, #0 - 401f40: a907 add r1, sp, #28 - 401f42: e006 b.n 401f52 - -00401f44 : - 401f44: 554a strb r2, [r1, r5] - 401f46: 1c6d adds r5, r5, #1 - 401f48: 062d lsls r5, r5, #24 - 401f4a: 0e2d lsrs r5, r5, #24 - 401f4c: 9a11 ldr r2, [sp, #68] - 401f4e: 1c52 adds r2, r2, #1 - 401f50: 9211 str r2, [sp, #68] - -00401f52 : - 401f52: 9a11 ldr r2, [sp, #68] - 401f54: 7812 ldrb r2, [r2, #0] - 401f56: 2a00 cmp r2, #0 - 401f58: d001 beq.n 401f5e - 401f5a: 2d15 cmp r5, #21 - 401f5c: d3f2 bcc.n 401f44 - -00401f5e : - 401f5e: 2400 movs r4, #0 - 401f60: e006 b.n 401f70 - -00401f62 : - 401f62: 554a strb r2, [r1, r5] - 401f64: 1c64 adds r4, r4, #1 - 401f66: 0624 lsls r4, r4, #24 - 401f68: 0e24 lsrs r4, r4, #24 - 401f6a: 1c6d adds r5, r5, #1 - 401f6c: 062d lsls r5, r5, #24 - 401f6e: 0e2d lsrs r5, r5, #24 - -00401f70 : - 401f70: 5d02 ldrb r2, [r0, r4] - 401f72: 2a00 cmp r2, #0 - 401f74: d001 beq.n 401f7a - 401f76: 2d15 cmp r5, #21 - 401f78: d3f3 bcc.n 401f62 - -00401f7a : - 401f7a: a807 add r0, sp, #28 - 401f7c: 2100 movs r1, #0 - 401f7e: 5541 strb r1, [r0, r5] - 401f80: a907 add r1, sp, #28 - -00401f82 : - 401f82: a813 add r0, sp, #76 - 401f84: 7800 ldrb r0, [r0, #0] - 401f86: f7ff fe15 bl 401bb4 - -00401f8a : - 401f8a: b015 add sp, #84 - 401f8c: e190 b.n 4022b0 - -00401f8e : - 401f8e: 4906 ldr r1, [pc, #24] (401fa8 ) - 401f90: a813 add r0, sp, #76 - 401f92: 7800 ldrb r0, [r0, #0] - 401f94: f7ff fe0e bl 401bb4 - 401f98: e7f7 b.n 401f8a - 401f9a: 46c0 nop (mov r8, r8) - -00401f9c : - 401f9c: 00002710 .word 0x00002710 - 401fa0: 004052a9 .word 0x004052a9 - 401fa4: 00403e04 .word 0x00403e04 - 401fa8: 00403e2c .word 0x00403e2c - -00401fac : - 401fac: b510 push {r4, lr} - 401fae: 0004 lsls r4, r0, #0 - 401fb0: 4811 ldr r0, [pc, #68] (401ff8 ) - 401fb2: 2100 movs r1, #0 - 401fb4: 7001 strb r1, [r0, #0] - 401fb6: 2101 movs r1, #1 - 401fb8: 2015 movs r0, #21 - 401fba: f406 fa61 bl 8480 - 401fbe: 22f0 movs r2, #240 - 401fc0: 21f0 movs r1, #240 - 401fc2: 2000 movs r0, #0 - 401fc4: f406 f9da bl 837c - 401fc8: 220f movs r2, #15 - 401fca: 210f movs r1, #15 - 401fcc: 2001 movs r0, #1 - 401fce: f406 f9d5 bl 837c - 401fd2: 2101 movs r1, #1 - 401fd4: 2014 movs r0, #20 - 401fd6: f406 fa53 bl 8480 - 401fda: 2101 movs r1, #1 - 401fdc: 2009 movs r0, #9 - 401fde: f406 fa4f bl 8480 - 401fe2: 22f0 movs r2, #240 - 401fe4: 0121 lsls r1, r4, #4 - 401fe6: 2000 movs r0, #0 - 401fe8: f406 fa24 bl 8434 - 401fec: 220f movs r2, #15 - 401fee: 0921 lsrs r1, r4, #4 - 401ff0: 2001 movs r0, #1 - 401ff2: f406 fa1f bl 8434 - 401ff6: e025 b.n 402044 - -00401ff8 : - 401ff8: 004052a9 .word 0x004052a9 - -00401ffc : - 401ffc: b510 push {r4, lr} - 401ffe: 0004 lsls r4, r0, #0 - 402000: 481f ldr r0, [pc, #124] (402080 ) - 402002: 2100 movs r1, #0 - 402004: 7001 strb r1, [r0, #0] - 402006: 2015 movs r0, #21 - 402008: f406 fa3a bl 8480 - 40200c: 2101 movs r1, #1 - 40200e: 2014 movs r0, #20 - 402010: f406 fa36 bl 8480 - 402014: 22f0 movs r2, #240 - 402016: 21f0 movs r1, #240 - 402018: 2000 movs r0, #0 - 40201a: f406 f9af bl 837c - 40201e: 220f movs r2, #15 - 402020: 210f movs r1, #15 - 402022: 2001 movs r0, #1 - 402024: f406 f9aa bl 837c - 402028: 22f0 movs r2, #240 - 40202a: 0121 lsls r1, r4, #4 - 40202c: 2000 movs r0, #0 - 40202e: f406 fa01 bl 8434 - 402032: 220f movs r2, #15 - 402034: 0921 lsrs r1, r4, #4 - 402036: 2001 movs r0, #1 - 402038: f406 f9fc bl 8434 - 40203c: 2101 movs r1, #1 - 40203e: 2009 movs r0, #9 - 402040: f406 fa1e bl 8480 - -00402044 : - 402044: 2001 movs r0, #1 - 402046: f001 feaf bl 403da8 - 40204a: 2100 movs r1, #0 - 40204c: 2009 movs r0, #9 - 40204e: f406 fa17 bl 8480 - 402052: 2100 movs r1, #0 - 402054: 2014 movs r0, #20 - 402056: f406 fa13 bl 8480 - 40205a: 22f0 movs r2, #240 - 40205c: 21f0 movs r1, #240 - 40205e: 43c9 mvns r1, r1 - 402060: 2000 movs r0, #0 - 402062: f406 f98b bl 837c - 402066: 220f movs r2, #15 - 402068: 210f movs r1, #15 - 40206a: 43c9 mvns r1, r1 - 40206c: 2001 movs r0, #1 - 40206e: f406 f985 bl 837c - 402072: 2001 movs r0, #1 - 402074: f001 fe98 bl 403da8 - 402078: 9801 ldr r0, [sp, #4] - 40207a: bc10 pop {r4} - 40207c: b001 add sp, #4 - 40207e: 4700 bx r0 - -00402080 : - 402080: 004052a9 .word 0x004052a9 - -00402084 : - 402084: 4905 ldr r1, [pc, #20] (40209c ) - 402086: 2200 movs r2, #0 - 402088: 700a strb r2, [r1, #0] - 40208a: 2802 cmp r0, #2 - 40208c: d203 bcs.n 402096 - 40208e: 4904 ldr r1, [pc, #16] (4020a0 ) - 402090: 7008 strb r0, [r1, #0] - 402092: 2001 movs r0, #1 - 402094: 4770 bx lr - -00402096 : - 402096: 2000 movs r0, #0 - 402098: 4770 bx lr - 40209a: 46c0 nop (mov r8, r8) - -0040209c : - 40209c: 004052a9 .word 0x004052a9 - 4020a0: 004052bd .word 0x004052bd - -004020a4 : - 4020a4: b580 push {r7, lr} - 4020a6: 1e41 subs r1, r0, #1 - 4020a8: 4189 sbcs r1, r1 - 4020aa: 43c9 mvns r1, r1 - 4020ac: 0fc9 lsrs r1, r1, #31 - 4020ae: 200a movs r0, #10 - 4020b0: f406 f9e6 bl 8480 - 4020b4: 9801 ldr r0, [sp, #4] - 4020b6: b002 add sp, #8 - 4020b8: 4700 bx r0 - -004020ba : - 4020ba: b5f0 push {r4, r5, r6, r7, lr} - 4020bc: b083 sub sp, #12 - 4020be: 0005 lsls r5, r0, #0 - 4020c0: 0017 lsls r7, r2, #0 - 4020c2: 2d80 cmp r5, #128 - 4020c4: d300 bcc.n 4020c8 - 4020c6: e08b b.n 4021e0 - 4020c8: 2940 cmp r1, #64 - 4020ca: d300 bcc.n 4020ce - 4020cc: e088 b.n 4021e0 - 4020ce: 08c8 lsrs r0, r1, #3 - 4020d0: 0006 lsls r6, r0, #0 - 4020d2: 00c0 lsls r0, r0, #3 - 4020d4: 1a0c subs r4, r1, r0 - 4020d6: 2040 movs r0, #64 - 4020d8: f7ff ff68 bl 401fac - 4020dc: 4668 mov r0, sp - 4020de: 3e50 subs r6, #80 - 4020e0: 7046 strb r6, [r0, #1] - 4020e2: 7840 ldrb r0, [r0, #1] - 4020e4: f7ff ff62 bl 401fac - 4020e8: 4668 mov r0, sp - 4020ea: 0929 lsrs r1, r5, #4 - 4020ec: 2210 movs r2, #16 - 4020ee: 430a orrs r2, r1 - 4020f0: 7002 strb r2, [r0, #0] - 4020f2: 0010 lsls r0, r2, #0 - 4020f4: f7ff ff5a bl 401fac - 4020f8: 072e lsls r6, r5, #28 - 4020fa: 0f36 lsrs r6, r6, #28 - 4020fc: 0030 lsls r0, r6, #0 - 4020fe: f7ff ff55 bl 401fac - 402102: 2100 movs r1, #0 - 402104: 2015 movs r0, #21 - 402106: f406 f9bb bl 8480 - 40210a: 2101 movs r1, #1 - 40210c: 2014 movs r0, #20 - 40210e: f406 f9b7 bl 8480 - 402112: 2001 movs r0, #1 - 402114: f001 fe48 bl 403da8 - 402118: 2101 movs r1, #1 - 40211a: 2008 movs r0, #8 - 40211c: f406 f9b0 bl 8480 - 402120: 2001 movs r0, #1 - 402122: f001 fe41 bl 403da8 - 402126: a902 add r1, sp, #8 - 402128: 2000 movs r0, #0 - 40212a: f406 f999 bl 8460 - 40212e: a902 add r1, sp, #8 - 402130: 2001 movs r0, #1 - 402132: f406 f995 bl 8460 - 402136: 2100 movs r1, #0 - 402138: 2008 movs r0, #8 - 40213a: f406 f9a1 bl 8480 - 40213e: 2100 movs r1, #0 - 402140: 2014 movs r0, #20 - 402142: f406 f99d bl 8480 - 402146: 2001 movs r0, #1 - 402148: f001 fe2e bl 403da8 - 40214c: 2100 movs r1, #0 - 40214e: 2015 movs r0, #21 - 402150: f406 f996 bl 8480 - 402154: 2101 movs r1, #1 - 402156: 2014 movs r0, #20 - 402158: f406 f992 bl 8480 - 40215c: 2001 movs r0, #1 - 40215e: f001 fe23 bl 403da8 - 402162: 2101 movs r1, #1 - 402164: 2008 movs r0, #8 - 402166: f406 f98b bl 8480 - 40216a: 2001 movs r0, #1 - 40216c: f001 fe1c bl 403da8 - 402170: a901 add r1, sp, #4 - 402172: 2000 movs r0, #0 - 402174: f406 f974 bl 8460 - 402178: 9801 ldr r0, [sp, #4] - 40217a: 21f0 movs r1, #240 - 40217c: 4001 ands r1, r0 - 40217e: 090d lsrs r5, r1, #4 - 402180: a901 add r1, sp, #4 - 402182: 2001 movs r0, #1 - 402184: f406 f96c bl 8460 - 402188: 2100 movs r1, #0 - 40218a: 2008 movs r0, #8 - 40218c: f406 f978 bl 8480 - 402190: 2100 movs r1, #0 - 402192: 2014 movs r0, #20 - 402194: f406 f974 bl 8480 - 402198: 2001 movs r0, #1 - 40219a: f001 fe05 bl 403da8 - 40219e: 9801 ldr r0, [sp, #4] - 4021a0: 0100 lsls r0, r0, #4 - 4021a2: 4328 orrs r0, r5 - 4021a4: 0605 lsls r5, r0, #24 - 4021a6: 0e2d lsrs r5, r5, #24 - 4021a8: 2040 movs r0, #64 - 4021aa: f7ff feff bl 401fac - 4021ae: 4668 mov r0, sp - 4021b0: 7840 ldrb r0, [r0, #1] - 4021b2: f7ff fefb bl 401fac - 4021b6: 4668 mov r0, sp - 4021b8: 7800 ldrb r0, [r0, #0] - 4021ba: f7ff fef7 bl 401fac - 4021be: 0030 lsls r0, r6, #0 - 4021c0: f7ff fef4 bl 401fac - 4021c4: 2001 movs r0, #1 - 4021c6: 40a0 lsls r0, r4 - 4021c8: 2f01 cmp r7, #1 - 4021ca: d105 bne.n 4021d8 - 4021cc: 4328 orrs r0, r5 - 4021ce: 0600 lsls r0, r0, #24 - 4021d0: 0e00 lsrs r0, r0, #24 - 4021d2: f7ff ff13 bl 401ffc - 4021d6: e003 b.n 4021e0 - -004021d8 : - 4021d8: 4385 bics r5, r0 - 4021da: 0028 lsls r0, r5, #0 - 4021dc: f7ff ff0e bl 401ffc - -004021e0 : - 4021e0: e064 b.n 4022ac - ... - -004021e4 : - 4021e4: b5f2 push {r1, r4, r5, r6, r7, lr} - 4021e6: b082 sub sp, #8 - 4021e8: 0014 lsls r4, r2, #0 - 4021ea: 4669 mov r1, sp - 4021ec: 7a09 ldrb r1, [r1, #8] - 4021ee: 2980 cmp r1, #128 - 4021f0: d301 bcc.n 4021f6 - 4021f2: 2c40 cmp r4, #64 - 4021f4: d25a bcs.n 4022ac - -004021f6 : - 4021f6: 3820 subs r0, #32 - 4021f8: 0400 lsls r0, r0, #16 - 4021fa: 4934 ldr r1, [pc, #208] (4022cc ) - 4021fc: 7809 ldrb r1, [r1, #0] - 4021fe: 004a lsls r2, r1, #1 - 402200: 1851 adds r1, r2, r1 - 402202: 0089 lsls r1, r1, #2 - 402204: 4a2c ldr r2, [pc, #176] (4022b8 ) - 402206: 1851 adds r1, r2, r1 - 402208: 7a0d ldrb r5, [r1, #8] - 40220a: 0bc7 lsrs r7, r0, #15 - 40220c: 4668 mov r0, sp - 40220e: 7a00 ldrb r0, [r0, #8] - 402210: 0900 lsrs r0, r0, #4 - 402212: 2110 movs r1, #16 - 402214: 4301 orrs r1, r0 - 402216: 4668 mov r0, sp - 402218: 7001 strb r1, [r0, #0] - 40221a: e024 b.n 402266 - -0040221c : - 40221c: 19a9 adds r1, r5, r6 - 40221e: 6802 ldr r2, [r0, #0] - 402220: 5bd2 ldrh r2, [r2, r7] - 402222: 435a muls r2, r3 - 402224: 1889 adds r1, r1, r2 - 402226: 6840 ldr r0, [r0, #4] - 402228: 5c40 ldrb r0, [r0, r1] - 40222a: f7ff fee7 bl 401ffc - 40222e: 4827 ldr r0, [pc, #156] (4022cc ) - 402230: 7800 ldrb r0, [r0, #0] - 402232: 0041 lsls r1, r0, #1 - 402234: 1808 adds r0, r1, r0 - 402236: 0080 lsls r0, r0, #2 - 402238: 4920 ldr r1, [pc, #128] (4022bc ) - 40223a: 1808 adds r0, r1, r0 - 40223c: 7a00 ldrb r0, [r0, #8] - 40223e: 1836 adds r6, r6, r0 - 402240: 0636 lsls r6, r6, #24 - 402242: 0e36 lsrs r6, r6, #24 - -00402244 : - 402244: 4821 ldr r0, [pc, #132] (4022cc ) - 402246: 7800 ldrb r0, [r0, #0] - 402248: 0041 lsls r1, r0, #1 - 40224a: 1808 adds r0, r1, r0 - 40224c: 0080 lsls r0, r0, #2 - 40224e: 491c ldr r1, [pc, #112] (4022c0 ) - 402250: 1808 adds r0, r1, r0 - 402252: 6801 ldr r1, [r0, #0] - 402254: 19ca adds r2, r1, r7 - 402256: 8853 ldrh r3, [r2, #2] - 402258: 8812 ldrh r2, [r2, #0] - 40225a: 1a9a subs r2, r3, r2 - 40225c: 7a03 ldrb r3, [r0, #8] - 40225e: 435a muls r2, r3 - 402260: 4296 cmp r6, r2 - 402262: dbdb blt.n 40221c - 402264: 3408 adds r4, #8 - -00402266 : - 402266: 0028 lsls r0, r5, #0 - 402268: d020 beq.n 4022ac - 40226a: 1e6d subs r5, r5, #1 - 40226c: 062d lsls r5, r5, #24 - 40226e: 0e2d lsrs r5, r5, #24 - 402270: 2040 movs r0, #64 - 402272: f7ff fe9b bl 401fac - 402276: 0626 lsls r6, r4, #24 - 402278: 0ef6 lsrs r6, r6, #27 - 40227a: 0030 lsls r0, r6, #0 - 40227c: 3850 subs r0, #80 - 40227e: 0600 lsls r0, r0, #24 - 402280: 0e00 lsrs r0, r0, #24 - 402282: f7ff fe93 bl 401fac - 402286: 4668 mov r0, sp - 402288: 7800 ldrb r0, [r0, #0] - 40228a: f7ff fe8f bl 401fac - 40228e: 4668 mov r0, sp - 402290: 7a00 ldrb r0, [r0, #8] - 402292: 0700 lsls r0, r0, #28 - 402294: 0f00 lsrs r0, r0, #28 - 402296: f7ff fe89 bl 401fac - 40229a: 480a ldr r0, [pc, #40] (4022c4 ) - 40229c: 7800 ldrb r0, [r0, #0] - 40229e: 2101 movs r1, #1 - 4022a0: 40b1 lsls r1, r6 - 4022a2: 4301 orrs r1, r0 - 4022a4: 4808 ldr r0, [pc, #32] (4022c8 ) - 4022a6: 7001 strb r1, [r0, #0] - 4022a8: 2600 movs r6, #0 - 4022aa: e7cb b.n 402244 - -004022ac : - 4022ac: b003 add sp, #12 - 4022ae: 46c0 nop (mov r8, r8) - -004022b0 : - 4022b0: 9804 ldr r0, [sp, #16] - 4022b2: bcf0 pop {r4, r5, r6, r7} - 4022b4: b001 add sp, #4 - 4022b6: 4700 bx r0 - -004022b8 : - 4022b8: 00403eec .word 0x00403eec - 4022bc: 00403eec .word 0x00403eec - 4022c0: 00403eec .word 0x00403eec - 4022c4: 004052b3 .word 0x004052b3 - 4022c8: 004052b3 .word 0x004052b3 - -004022cc : - 4022cc: 004052bd .word 0x004052bd - -004022d0 : - 4022d0: b570 push {r4, r5, r6, lr} - 4022d2: 0004 lsls r4, r0, #0 - 4022d4: 000d lsls r5, r1, #0 - 4022d6: 0016 lsls r6, r2, #0 - 4022d8: 2040 movs r0, #64 - 4022da: f7ff fe67 bl 401fac - 4022de: 08f0 lsrs r0, r6, #3 - 4022e0: 3850 subs r0, #80 - 4022e2: 0600 lsls r0, r0, #24 - 4022e4: 0e00 lsrs r0, r0, #24 - 4022e6: f7ff fe61 bl 401fac - 4022ea: 0921 lsrs r1, r4, #4 - 4022ec: 2010 movs r0, #16 - 4022ee: 4308 orrs r0, r1 - 4022f0: f7ff fe5c bl 401fac - 4022f4: 0720 lsls r0, r4, #28 - 4022f6: 0f00 lsrs r0, r0, #28 - 4022f8: f7ff fe58 bl 401fac - 4022fc: e005 b.n 40230a - -004022fe : - 4022fe: 2000 movs r0, #0 - 402300: f7ff fe7c bl 401ffc - 402304: 1c64 adds r4, r4, #1 - 402306: 0624 lsls r4, r4, #24 - 402308: 0e24 lsrs r4, r4, #24 - -0040230a : - 40230a: 42ac cmp r4, r5 - 40230c: d3f7 bcc.n 4022fe - 40230e: 9803 ldr r0, [sp, #12] - 402310: bc70 pop {r4, r5, r6} - 402312: b001 add sp, #4 - 402314: 4700 bx r0 - ... - -00402318 : - 402318: b510 push {r4, lr} - 40231a: 2808 cmp r0, #8 - 40231c: d228 bcs.n 402370 - 40231e: 4c15 ldr r4, [pc, #84] (402374 ) - 402320: 7f21 ldrb r1, [r4, #28] - 402322: 2900 cmp r1, #0 - 402324: d009 beq.n 40233a - 402326: 0041 lsls r1, r0, #1 - 402328: 1809 adds r1, r1, r0 - 40232a: 1861 adds r1, r4, r1 - 40232c: 790a ldrb r2, [r1, #4] - 40232e: 7022 strb r2, [r4, #0] - 402330: 2280 movs r2, #128 - 402332: 7062 strb r2, [r4, #1] - 402334: 7949 ldrb r1, [r1, #5] - 402336: 70a1 strb r1, [r4, #2] - 402338: 70e0 strb r0, [r4, #3] - -0040233a : - 40233a: 78a2 ldrb r2, [r4, #2] - 40233c: 7861 ldrb r1, [r4, #1] - 40233e: 7820 ldrb r0, [r4, #0] - 402340: 1a0b subs r3, r1, r0 - 402342: 2b20 cmp r3, #32 - 402344: db0c blt.n 402360 - 402346: 2100 movs r1, #0 - 402348: 7721 strb r1, [r4, #28] - 40234a: 0001 lsls r1, r0, #0 - 40234c: 3120 adds r1, #32 - 40234e: 0609 lsls r1, r1, #24 - 402350: 0e09 lsrs r1, r1, #24 - 402352: f7ff ffbd bl 4022d0 - 402356: 7820 ldrb r0, [r4, #0] - 402358: 3020 adds r0, #32 - 40235a: 7020 strb r0, [r4, #0] - 40235c: 2000 movs r0, #0 - 40235e: e003 b.n 402368 - -00402360 : - 402360: f7ff ffb6 bl 4022d0 - 402364: 2001 movs r0, #1 - 402366: 7720 strb r0, [r4, #28] - -00402368 : - 402368: 9901 ldr r1, [sp, #4] - 40236a: bc10 pop {r4} - 40236c: b001 add sp, #4 - 40236e: 4708 bx r1 - -00402370 : - 402370: 20ff movs r0, #255 - 402372: e7f9 b.n 402368 - -00402374 : - 402374: 00405484 .word 0x00405484 - -00402378 : - 402378: b580 push {r7, lr} - 40237a: 488d ldr r0, [pc, #564] (4025b0 ) - 40237c: 7841 ldrb r1, [r0, #1] - 40237e: 0089 lsls r1, r1, #2 - 402380: 1840 adds r0, r0, r1 - 402382: 6ac0 ldr r0, [r0, #44] - 402384: 2800 cmp r0, #0 - 402386: d005 beq.n 402394 - 402388: 68c1 ldr r1, [r0, #12] - 40238a: 2900 cmp r1, #0 - 40238c: d002 beq.n 402394 - 40238e: 0008 lsls r0, r1, #0 - 402390: f001 fdd5 bl 403f3e <__iar_via_R0> - -00402394 : - 402394: 9801 ldr r0, [sp, #4] - 402396: b002 add sp, #8 - 402398: 4700 bx r0 - -0040239a : - 40239a: b430 push {r4, r5} - 40239c: 4a84 ldr r2, [pc, #528] (4025b0 ) - 40239e: 7893 ldrb r3, [r2, #2] - 4023a0: 009c lsls r4, r3, #2 - 4023a2: 1914 adds r4, r2, r4 - 4023a4: 6ae5 ldr r5, [r4, #44] - 4023a6: 2d00 cmp r5, #0 - 4023a8: d002 beq.n 4023b0 - 4023aa: 2002 movs r0, #2 - 4023ac: bc30 pop {r4, r5} - 4023ae: 4770 bx lr - -004023b0 : - 4023b0: 7805 ldrb r5, [r0, #0] - 4023b2: 076d lsls r5, r5, #29 - 4023b4: 0f6d lsrs r5, r5, #29 - 4023b6: 7005 strb r5, [r0, #0] - 4023b8: 62e0 str r0, [r4, #44] - 4023ba: 63e1 str r1, [r4, #60] - 4023bc: 2b03 cmp r3, #3 - 4023be: d101 bne.n 4023c4 - 4023c0: 2300 movs r3, #0 - 4023c2: e000 b.n 4023c6 - -004023c4 : - 4023c4: 1c5b adds r3, r3, #1 - -004023c6 : - 4023c6: 7093 strb r3, [r2, #2] - 4023c8: 2000 movs r0, #0 - 4023ca: bc30 pop {r4, r5} - 4023cc: 4770 bx lr - -004023ce : - 4023ce: 4878 ldr r0, [pc, #480] (4025b0 ) - 4023d0: 7841 ldrb r1, [r0, #1] - 4023d2: 008a lsls r2, r1, #2 - 4023d4: 1882 adds r2, r0, r2 - 4023d6: 6ad3 ldr r3, [r2, #44] - 4023d8: 2b00 cmp r3, #0 - 4023da: d008 beq.n 4023ee - 4023dc: 2300 movs r3, #0 - 4023de: 62d3 str r3, [r2, #44] - 4023e0: 63d3 str r3, [r2, #60] - 4023e2: 2903 cmp r1, #3 - 4023e4: d101 bne.n 4023ea - 4023e6: 2100 movs r1, #0 - 4023e8: e000 b.n 4023ec - -004023ea : - 4023ea: 1c49 adds r1, r1, #1 - -004023ec : - 4023ec: 7041 strb r1, [r0, #1] - -004023ee : - 4023ee: 2000 movs r0, #0 - 4023f0: 4770 bx lr - ... - -004023f4 : - 4023f4: 2000 movs r0, #0 - 4023f6: 496e ldr r1, [pc, #440] (4025b0 ) - 4023f8: 62c8 str r0, [r1, #44] - 4023fa: 63c8 str r0, [r1, #60] - 4023fc: 6308 str r0, [r1, #48] - 4023fe: 6408 str r0, [r1, #64] - 402400: 6348 str r0, [r1, #52] - 402402: 6448 str r0, [r1, #68] - 402404: 6388 str r0, [r1, #56] - 402406: 6488 str r0, [r1, #72] - 402408: 7048 strb r0, [r1, #1] - 40240a: 7088 strb r0, [r1, #2] - 40240c: 6508 str r0, [r1, #80] - 40240e: 70c8 strb r0, [r1, #3] - 402410: 000a lsls r2, r1, #0 - 402412: 325c adds r2, #92 - 402414: 60ca str r2, [r1, #12] - 402416: 6148 str r0, [r1, #20] - 402418: 201a movs r0, #26 - 40241a: 7208 strb r0, [r1, #8] - 40241c: 4801 ldr r0, [pc, #4] (402424 ) - 40241e: 8508 strh r0, [r1, #40] - 402420: 2000 movs r0, #0 - 402422: 4770 bx lr - -00402424 : - 402424: 0000ffff .word 0x0000ffff - -00402428 : - 402428: b510 push {r4, lr} - 40242a: 4c61 ldr r4, [pc, #388] (4025b0 ) - 40242c: 7860 ldrb r0, [r4, #1] - 40242e: 0080 lsls r0, r0, #2 - 402430: 1820 adds r0, r4, r0 - 402432: 6ac0 ldr r0, [r0, #44] - 402434: 2800 cmp r0, #0 - 402436: d00b beq.n 402450 - 402438: 2107 movs r1, #7 - 40243a: 7802 ldrb r2, [r0, #0] - 40243c: 400a ands r2, r1 - 40243e: 2a04 cmp r2, #4 - 402440: d206 bcs.n 402450 - 402442: 7800 ldrb r0, [r0, #0] - 402444: 4001 ands r1, r0 - 402446: 0088 lsls r0, r1, #2 - 402448: 4904 ldr r1, [pc, #16] (40245c ) - 40244a: 5808 ldr r0, [r1, r0] - 40244c: f001 fd77 bl 403f3e <__iar_via_R0> - -00402450 : - 402450: 78e0 ldrb r0, [r4, #3] - 402452: 2801 cmp r0, #1 - 402454: d101 bne.n 40245a - 402456: f000 fb49 bl 402aec - -0040245a : - 40245a: e335 b.n 402ac8 - -0040245c : - 40245c: 00403f04 .word 0x00403f04 - -00402460 : - 402460: b538 push {r3, r4, r5, lr} - 402462: 4c53 ldr r4, [pc, #332] (4025b0 ) - 402464: 7860 ldrb r0, [r4, #1] - 402466: 0080 lsls r0, r0, #2 - 402468: 1820 adds r0, r4, r0 - 40246a: 6ac0 ldr r0, [r0, #44] - 40246c: 7801 ldrb r1, [r0, #0] - 40246e: 08c9 lsrs r1, r1, #3 - 402470: d006 beq.n 402480 - 402472: 1e49 subs r1, r1, #1 - 402474: d01a beq.n 4024ac - 402476: 1e49 subs r1, r1, #1 - 402478: d029 beq.n 4024ce - 40247a: 1f09 subs r1, r1, #4 - 40247c: d05f beq.n 40253e - 40247e: e064 b.n 40254a - -00402480 : - 402480: 2100 movs r1, #0 - 402482: 6521 str r1, [r4, #80] - 402484: 7021 strb r1, [r4, #0] - 402486: 7a01 ldrb r1, [r0, #8] - 402488: 1d09 adds r1, r1, #4 - 40248a: 4a4a ldr r2, [pc, #296] (4025b4 ) - 40248c: 6011 str r1, [r2, #0] - 40248e: 494a ldr r1, [pc, #296] (4025b8 ) - 402490: 6842 ldr r2, [r0, #4] - 402492: 678a str r2, [r1, #120] - 402494: 0022 lsls r2, r4, #0 - 402496: 3260 adds r2, #96 - 402498: 674a str r2, [r1, #116] - 40249a: 4a44 ldr r2, [pc, #272] (4025ac ) - 40249c: 600a str r2, [r1, #0] - 40249e: 7801 ldrb r1, [r0, #0] - 4024a0: 0749 lsls r1, r1, #29 - 4024a2: 0f49 lsrs r1, r1, #29 - 4024a4: 2208 movs r2, #8 - -004024a6 : - 4024a6: 430a orrs r2, r1 - 4024a8: 7002 strb r2, [r0, #0] - 4024aa: e050 b.n 40254e - -004024ac : - 4024ac: 6d21 ldr r1, [r4, #80] - 4024ae: 07ca lsls r2, r1, #31 - 4024b0: d404 bmi.n 4024bc - 4024b2: 2220 movs r2, #32 - 4024b4: 400a ands r2, r1 - 4024b6: 0951 lsrs r1, r2, #5 - 4024b8: 2901 cmp r1, #1 - 4024ba: d148 bne.n 40254e - -004024bc : - 4024bc: 6d21 ldr r1, [r4, #80] - 4024be: 2201 movs r2, #1 - 4024c0: 4391 bics r1, r2 - 4024c2: 6521 str r1, [r4, #80] - 4024c4: 7801 ldrb r1, [r0, #0] - 4024c6: 0749 lsls r1, r1, #29 - 4024c8: 0f49 lsrs r1, r1, #29 - 4024ca: 2210 movs r2, #16 - 4024cc: e7eb b.n 4024a6 - -004024ce : - 4024ce: 2120 movs r1, #32 - 4024d0: 6d22 ldr r2, [r4, #80] - 4024d2: 400a ands r2, r1 - 4024d4: 0952 lsrs r2, r2, #5 - 4024d6: 2a01 cmp r2, #1 - 4024d8: d139 bne.n 40254e - 4024da: 6d22 ldr r2, [r4, #80] - 4024dc: 438a bics r2, r1 - 4024de: 6522 str r2, [r4, #80] - 4024e0: 2207 movs r2, #7 - 4024e2: 6d23 ldr r3, [r4, #80] - 4024e4: 2540 movs r5, #64 - 4024e6: 401d ands r5, r3 - 4024e8: 09ab lsrs r3, r5, #6 - 4024ea: 2b01 cmp r3, #1 - 4024ec: d108 bne.n 402500 - 4024ee: 6d23 ldr r3, [r4, #80] - 4024f0: 2540 movs r5, #64 - 4024f2: 43ab bics r3, r5 - 4024f4: 6523 str r3, [r4, #80] - 4024f6: 7803 ldrb r3, [r0, #0] - 4024f8: 401a ands r2, r3 - 4024fa: 4311 orrs r1, r2 - 4024fc: 7001 strb r1, [r0, #0] - 4024fe: e024 b.n 40254a - -00402500 : - 402500: 7821 ldrb r1, [r4, #0] - 402502: 2900 cmp r1, #0 - 402504: d015 beq.n 402532 - 402506: 1e49 subs r1, r1, #1 - 402508: 7021 strb r1, [r4, #0] - 40250a: 2100 movs r1, #0 - 40250c: 6521 str r1, [r4, #80] - 40250e: 7a01 ldrb r1, [r0, #8] - 402510: 1d09 adds r1, r1, #4 - 402512: 4b28 ldr r3, [pc, #160] (4025b4 ) - 402514: 6019 str r1, [r3, #0] - 402516: 4928 ldr r1, [pc, #160] (4025b8 ) - 402518: 6843 ldr r3, [r0, #4] - 40251a: 678b str r3, [r1, #120] - 40251c: 0023 lsls r3, r4, #0 - 40251e: 3360 adds r3, #96 - 402520: 674b str r3, [r1, #116] - 402522: 4b22 ldr r3, [pc, #136] (4025ac ) - 402524: 600b str r3, [r1, #0] - 402526: 7801 ldrb r1, [r0, #0] - 402528: 400a ands r2, r1 - 40252a: 2108 movs r1, #8 - 40252c: 4311 orrs r1, r2 - 40252e: 7001 strb r1, [r0, #0] - 402530: e00d b.n 40254e - -00402532 : - 402532: 7801 ldrb r1, [r0, #0] - 402534: 400a ands r2, r1 - 402536: 2128 movs r1, #40 - 402538: 4311 orrs r1, r2 - 40253a: 7001 strb r1, [r0, #0] - 40253c: e005 b.n 40254a - -0040253e : - 40253e: 7801 ldrb r1, [r0, #0] - 402540: 0749 lsls r1, r1, #29 - 402542: 0f49 lsrs r1, r1, #29 - 402544: 2238 movs r2, #56 - 402546: 430a orrs r2, r1 - 402548: 7002 strb r2, [r0, #0] - -0040254a : - 40254a: f7ff ff40 bl 4023ce - -0040254e : - 40254e: 6d20 ldr r0, [r4, #80] - 402550: 2180 movs r1, #128 - 402552: 0089 lsls r1, r1, #2 - 402554: 4001 ands r1, r0 - 402556: 0a49 lsrs r1, r1, #9 - 402558: 2901 cmp r1, #1 - 40255a: d010 beq.n 40257e - 40255c: 2180 movs r1, #128 - 40255e: 02c9 lsls r1, r1, #11 - 402560: 4001 ands r1, r0 - 402562: 0c89 lsrs r1, r1, #18 - 402564: 2901 cmp r1, #1 - 402566: d00a beq.n 40257e - 402568: 2108 movs r1, #8 - 40256a: 4001 ands r1, r0 - 40256c: 08c9 lsrs r1, r1, #3 - 40256e: 2901 cmp r1, #1 - 402570: d005 beq.n 40257e - 402572: 2180 movs r1, #128 - 402574: 0349 lsls r1, r1, #13 - 402576: 4001 ands r1, r0 - 402578: 0d08 lsrs r0, r1, #20 - 40257a: 2801 cmp r0, #1 - 40257c: d10f bne.n 40259e - -0040257e : - 40257e: 6d20 ldr r0, [r4, #80] - 402580: 490e ldr r1, [pc, #56] (4025bc ) - 402582: 4001 ands r1, r0 - 402584: 6521 str r1, [r4, #80] - 402586: 7860 ldrb r0, [r4, #1] - 402588: 0080 lsls r0, r0, #2 - 40258a: 1820 adds r0, r4, r0 - 40258c: 6ac0 ldr r0, [r0, #44] - 40258e: 7801 ldrb r1, [r0, #0] - 402590: 0749 lsls r1, r1, #29 - 402592: 0f49 lsrs r1, r1, #29 - 402594: 2228 movs r2, #40 - 402596: 430a orrs r2, r1 - 402598: 7002 strb r2, [r0, #0] - 40259a: f7ff ff18 bl 4023ce - -0040259e : - 40259e: 2000 movs r0, #0 - 4025a0: b001 add sp, #4 - 4025a2: 9902 ldr r1, [sp, #8] - 4025a4: bc30 pop {r4, r5} - 4025a6: b001 add sp, #4 - 4025a8: 4708 bx r1 - 4025aa: 46c0 nop (mov r8, r8) - -004025ac : - 4025ac: 00000a03 .word 0x00000a03 - -004025b0 : - 4025b0: 00405368 .word 0x00405368 - -004025b4 : - 4025b4: 8000408c .word 0x8000408c - -004025b8 : - 4025b8: 8000400c .word 0x8000400c - -004025bc : - 4025bc: ffebfdf7 .word 0xffebfdf7 - -004025c0 : - 4025c0: b570 push {r4, r5, r6, lr} - 4025c2: 4c79 ldr r4, [pc, #484] (4027a8 ) - 4025c4: 7860 ldrb r0, [r4, #1] - 4025c6: 0080 lsls r0, r0, #2 - 4025c8: 1821 adds r1, r4, r0 - 4025ca: 6ac8 ldr r0, [r1, #44] - 4025cc: 7802 ldrb r2, [r0, #0] - 4025ce: 08d2 lsrs r2, r2, #3 - 4025d0: 2a07 cmp r2, #7 - 4025d2: d900 bls.n 4025d6 - 4025d4: e0b8 b.n 402748 - 4025d6: a302 add r3, pc, #8 (adr r3, 4025e0 ) - 4025d8: 5c9b ldrb r3, [r3, r2] - 4025da: 005b lsls r3, r3, #1 - 4025dc: 449f add pc, r3 - 4025de: 46c0 nop (mov r8, r8) - -004025e0 : - 4025e0: b63d2b04 .word 0xb63d2b04 - 4025e4: aeb4b4b4 .word 0xaeb4b4b4 - -004025e8 : - 4025e8: 2200 movs r2, #0 - 4025ea: 6522 str r2, [r4, #80] - 4025ec: 7022 strb r2, [r4, #0] - 4025ee: 6bc9 ldr r1, [r1, #60] - 4025f0: 64e1 str r1, [r4, #76] - 4025f2: 7a03 ldrb r3, [r0, #8] - 4025f4: 041b lsls r3, r3, #16 - 4025f6: 4d6d ldr r5, [pc, #436] (4027ac ) - 4025f8: 602b str r3, [r5, #0] - 4025fa: 4b6d ldr r3, [pc, #436] (4027b0 ) - 4025fc: 0025 lsls r5, r4, #0 - 4025fe: 3560 adds r5, #96 - 402600: 679d str r5, [r3, #120] - 402602: 6845 ldr r5, [r0, #4] - 402604: 675d str r5, [r3, #116] - 402606: 2900 cmp r1, #0 - 402608: d00a beq.n 402620 - 40260a: 6bda ldr r2, [r3, #60] - 40260c: 1851 adds r1, r2, r1 - 40260e: 6459 str r1, [r3, #68] - 402610: 6bd9 ldr r1, [r3, #60] - 402612: 22ff movs r2, #255 - 402614: 0052 lsls r2, r2, #1 - 402616: 1889 adds r1, r1, r2 - 402618: 6499 str r1, [r3, #72] - 40261a: 0019 lsls r1, r3, #0 - 40261c: 2206 movs r2, #6 - 40261e: e000 b.n 402622 - -00402620 : - 402620: 0019 lsls r1, r3, #0 - -00402622 : - 402622: 634a str r2, [r1, #52] - 402624: 4a63 ldr r2, [pc, #396] (4027b4 ) - 402626: 600a str r2, [r1, #0] - 402628: 7801 ldrb r1, [r0, #0] - 40262a: 0749 lsls r1, r1, #29 - 40262c: 0f49 lsrs r1, r1, #29 - 40262e: 2208 movs r2, #8 - -00402630 : - 402630: 430a orrs r2, r1 - 402632: 7002 strb r2, [r0, #0] - 402634: e08a b.n 40274c - -00402636 : - 402636: 6d21 ldr r1, [r4, #80] - 402638: 07ca lsls r2, r1, #31 - 40263a: d405 bmi.n 402648 - 40263c: 2220 movs r2, #32 - 40263e: 400a ands r2, r1 - 402640: 0951 lsrs r1, r2, #5 - 402642: 2901 cmp r1, #1 - 402644: d000 beq.n 402648 - 402646: e081 b.n 40274c - -00402648 : - 402648: 6d21 ldr r1, [r4, #80] - 40264a: 2201 movs r2, #1 - 40264c: 4391 bics r1, r2 - 40264e: 6521 str r1, [r4, #80] - 402650: 7801 ldrb r1, [r0, #0] - 402652: 0749 lsls r1, r1, #29 - 402654: 0f49 lsrs r1, r1, #29 - 402656: 2210 movs r2, #16 - 402658: e7ea b.n 402630 - -0040265a : - 40265a: 2220 movs r2, #32 - 40265c: 6d23 ldr r3, [r4, #80] - 40265e: 4013 ands r3, r2 - 402660: 095b lsrs r3, r3, #5 - 402662: 2b01 cmp r3, #1 - 402664: d172 bne.n 40274c - 402666: 6d23 ldr r3, [r4, #80] - 402668: 4393 bics r3, r2 - 40266a: 6523 str r3, [r4, #80] - 40266c: 2540 movs r5, #64 - 40266e: 401d ands r5, r3 - 402670: 09ad lsrs r5, r5, #6 - 402672: 2d01 cmp r5, #1 - 402674: d10f bne.n 402696 - 402676: 001a lsls r2, r3, #0 - 402678: 2340 movs r3, #64 - 40267a: 439a bics r2, r3 - 40267c: 6522 str r2, [r4, #80] - 40267e: 6842 ldr r2, [r0, #4] - 402680: 7812 ldrb r2, [r2, #0] - 402682: 1f12 subs r2, r2, #4 - 402684: 7202 strb r2, [r0, #8] - 402686: 6ac8 ldr r0, [r1, #44] - 402688: 7801 ldrb r1, [r0, #0] - 40268a: 0749 lsls r1, r1, #29 - 40268c: 0f49 lsrs r1, r1, #29 - 40268e: 2228 movs r2, #40 - 402690: 430a orrs r2, r1 - 402692: 7002 strb r2, [r0, #0] - 402694: e058 b.n 402748 - -00402696 : - 402696: 2504 movs r5, #4 - 402698: 401d ands r5, r3 - 40269a: 08ad lsrs r5, r5, #2 - 40269c: 2d01 cmp r5, #1 - 40269e: d02e beq.n 4026fe - 4026a0: 0255 lsls r5, r2, #9 - 4026a2: 401d ands r5, r3 - 4026a4: 0bad lsrs r5, r5, #14 - 4026a6: 2d01 cmp r5, #1 - 4026a8: d029 beq.n 4026fe - 4026aa: 0295 lsls r5, r2, #10 - 4026ac: 401d ands r5, r3 - 4026ae: 0beb lsrs r3, r5, #15 - 4026b0: 2b01 cmp r3, #1 - 4026b2: d024 beq.n 4026fe - 4026b4: 7822 ldrb r2, [r4, #0] - 4026b6: 2a00 cmp r2, #0 - 4026b8: d038 beq.n 40272c - 4026ba: 1e53 subs r3, r2, #1 - 4026bc: 7023 strb r3, [r4, #0] - 4026be: 2200 movs r2, #0 - 4026c0: 6522 str r2, [r4, #80] - 4026c2: 7202 strb r2, [r0, #8] - 4026c4: 6ac8 ldr r0, [r1, #44] - 4026c6: 7a05 ldrb r5, [r0, #8] - 4026c8: 042d lsls r5, r5, #16 - 4026ca: 4e38 ldr r6, [pc, #224] (4027ac ) - 4026cc: 6035 str r5, [r6, #0] - 4026ce: 4d38 ldr r5, [pc, #224] (4027b0 ) - 4026d0: 0026 lsls r6, r4, #0 - 4026d2: 3660 adds r6, #96 - 4026d4: 67ae str r6, [r5, #120] - 4026d6: 6846 ldr r6, [r0, #4] - 4026d8: 676e str r6, [r5, #116] - 4026da: 6ce5 ldr r5, [r4, #76] - 4026dc: 2d00 cmp r5, #0 - 4026de: d018 beq.n 402712 - 4026e0: 4a33 ldr r2, [pc, #204] (4027b0 ) - 4026e2: 6bd2 ldr r2, [r2, #60] - 4026e4: 1952 adds r2, r2, r5 - 4026e6: 4d32 ldr r5, [pc, #200] (4027b0 ) - 4026e8: 646a str r2, [r5, #68] - 4026ea: 6bea ldr r2, [r5, #60] - 4026ec: 25ff movs r5, #255 - 4026ee: 006d lsls r5, r5, #1 - 4026f0: 1952 adds r2, r2, r5 - 4026f2: 4d2f ldr r5, [pc, #188] (4027b0 ) - 4026f4: 64aa str r2, [r5, #72] - 4026f6: 002a lsls r2, r5, #0 - 4026f8: 2506 movs r5, #6 - 4026fa: 6355 str r5, [r2, #52] - 4026fc: e00b b.n 402716 - -004026fe : - 4026fe: 6d21 ldr r1, [r4, #80] - 402700: 4b2d ldr r3, [pc, #180] (4027b8 ) - 402702: 400b ands r3, r1 - 402704: 6523 str r3, [r4, #80] - 402706: 7801 ldrb r1, [r0, #0] - 402708: 0749 lsls r1, r1, #29 - 40270a: 0f49 lsrs r1, r1, #29 - 40270c: 430a orrs r2, r1 - 40270e: 7002 strb r2, [r0, #0] - 402710: e01a b.n 402748 - -00402712 : - 402712: 4d27 ldr r5, [pc, #156] (4027b0 ) - 402714: 636a str r2, [r5, #52] - -00402716 : - 402716: 4a26 ldr r2, [pc, #152] (4027b0 ) - 402718: 4d26 ldr r5, [pc, #152] (4027b4 ) - 40271a: 6015 str r5, [r2, #0] - 40271c: 7802 ldrb r2, [r0, #0] - 40271e: 0752 lsls r2, r2, #29 - 402720: 0f52 lsrs r2, r2, #29 - 402722: 2508 movs r5, #8 - 402724: 4315 orrs r5, r2 - 402726: 7005 strb r5, [r0, #0] - 402728: 061b lsls r3, r3, #24 - 40272a: d10f bne.n 40274c - -0040272c : - 40272c: 6ac8 ldr r0, [r1, #44] - 40272e: 7801 ldrb r1, [r0, #0] - 402730: 0749 lsls r1, r1, #29 - 402732: 0f49 lsrs r1, r1, #29 - 402734: 2230 movs r2, #48 - 402736: 430a orrs r2, r1 - 402738: 7002 strb r2, [r0, #0] - 40273a: e005 b.n 402748 - -0040273c : - 40273c: 7801 ldrb r1, [r0, #0] - 40273e: 0749 lsls r1, r1, #29 - 402740: 0f49 lsrs r1, r1, #29 - 402742: 2240 movs r2, #64 - 402744: 430a orrs r2, r1 - 402746: 7002 strb r2, [r0, #0] - -00402748 : - 402748: f7ff fe41 bl 4023ce - -0040274c : - 40274c: 6d20 ldr r0, [r4, #80] - 40274e: 2180 movs r1, #128 - 402750: 0089 lsls r1, r1, #2 - 402752: 4001 ands r1, r0 - 402754: 0a49 lsrs r1, r1, #9 - 402756: 2901 cmp r1, #1 - 402758: d010 beq.n 40277c - 40275a: 2180 movs r1, #128 - 40275c: 02c9 lsls r1, r1, #11 - 40275e: 4001 ands r1, r0 - 402760: 0c89 lsrs r1, r1, #18 - 402762: 2901 cmp r1, #1 - 402764: d00a beq.n 40277c - 402766: 2108 movs r1, #8 - 402768: 4001 ands r1, r0 - 40276a: 08c9 lsrs r1, r1, #3 - 40276c: 2901 cmp r1, #1 - 40276e: d005 beq.n 40277c - 402770: 2180 movs r1, #128 - 402772: 0349 lsls r1, r1, #13 - 402774: 4001 ands r1, r0 - 402776: 0d08 lsrs r0, r1, #20 - 402778: 2801 cmp r0, #1 - 40277a: d10f bne.n 40279c - -0040277c : - 40277c: 6d20 ldr r0, [r4, #80] - 40277e: 490f ldr r1, [pc, #60] (4027bc ) - 402780: 4001 ands r1, r0 - 402782: 6521 str r1, [r4, #80] - 402784: 7860 ldrb r0, [r4, #1] - 402786: 0080 lsls r0, r0, #2 - 402788: 1820 adds r0, r4, r0 - 40278a: 6ac0 ldr r0, [r0, #44] - 40278c: 7801 ldrb r1, [r0, #0] - 40278e: 0749 lsls r1, r1, #29 - 402790: 0f49 lsrs r1, r1, #29 - 402792: 2230 movs r2, #48 - 402794: 430a orrs r2, r1 - 402796: 7002 strb r2, [r0, #0] - 402798: f7ff fe19 bl 4023ce - -0040279c : - 40279c: 2000 movs r0, #0 - 40279e: 9903 ldr r1, [sp, #12] - 4027a0: bc70 pop {r4, r5, r6} - 4027a2: b001 add sp, #4 - 4027a4: 4708 bx r1 - 4027a6: 46c0 nop (mov r8, r8) - -004027a8 : - 4027a8: 00405368 .word 0x00405368 - 4027ac: 8000408c .word 0x8000408c - 4027b0: 8000400c .word 0x8000400c - 4027b4: 00000a04 .word 0x00000a04 - 4027b8: ffff3ffb .word 0xffff3ffb - 4027bc: ffebfdf7 .word 0xffebfdf7 - -004027c0 : - 4027c0: b5f8 push {r3, r4, r5, r6, r7, lr} - 4027c2: 4c68 ldr r4, [pc, #416] (402964 ) - 4027c4: 7860 ldrb r0, [r4, #1] - 4027c6: 0080 lsls r0, r0, #2 - 4027c8: 1821 adds r1, r4, r0 - 4027ca: 6ac8 ldr r0, [r1, #44] - 4027cc: 7802 ldrb r2, [r0, #0] - 4027ce: 08d2 lsrs r2, r2, #3 - 4027d0: d005 beq.n 4027de - 4027d2: 1e52 subs r2, r2, #1 - 4027d4: d032 beq.n 40283c - 4027d6: 1ed2 subs r2, r2, #3 - 4027d8: d100 bne.n 4027dc - 4027da: e08c b.n 4028f6 - 4027dc: e091 b.n 402902 - -004027de : - 4027de: 2100 movs r1, #0 - 4027e0: 6521 str r1, [r4, #80] - 4027e2: 7021 strb r1, [r4, #0] - 4027e4: 2607 movs r6, #7 - 4027e6: 7a01 ldrb r1, [r0, #8] - 4027e8: 2910 cmp r1, #16 - 4027ea: d221 bcs.n 402830 - 4027ec: 4669 mov r1, sp - 4027ee: 7a00 ldrb r0, [r0, #8] - 4027f0: 7008 strb r0, [r1, #0] - 4027f2: 4d5d ldr r5, [pc, #372] (402968 ) - 4027f4: 0029 lsls r1, r5, #0 - 4027f6: 3110 adds r1, #16 - 4027f8: 0028 lsls r0, r5, #0 - 4027fa: f000 fc97 bl 40312c - 4027fe: 0007 lsls r7, r0, #0 - 402800: 4668 mov r0, sp - 402802: 7800 ldrb r0, [r0, #0] - 402804: 0081 lsls r1, r0, #2 - 402806: 1869 adds r1, r5, r1 - 402808: 690a ldr r2, [r1, #16] - 40280a: 5c29 ldrb r1, [r5, r0] - 40280c: 4668 mov r0, sp - 40280e: 7800 ldrb r0, [r0, #0] - 402810: f000 fc6c bl 4030ec - 402814: 4855 ldr r0, [pc, #340] (40296c ) - 402816: 4956 ldr r1, [pc, #344] (402970 ) - 402818: 6001 str r1, [r0, #0] - 40281a: 65a7 str r7, [r4, #88] - 40281c: 7860 ldrb r0, [r4, #1] - 40281e: 0080 lsls r0, r0, #2 - 402820: 1820 adds r0, r4, r0 - 402822: 6ac0 ldr r0, [r0, #44] - 402824: 7801 ldrb r1, [r0, #0] - 402826: 400e ands r6, r1 - 402828: 2108 movs r1, #8 - 40282a: 4331 orrs r1, r6 - 40282c: 7001 strb r1, [r0, #0] - 40282e: e06a b.n 402906 - -00402830 : - 402830: 7801 ldrb r1, [r0, #0] - 402832: 400e ands r6, r1 - 402834: 2118 movs r1, #24 - 402836: 4331 orrs r1, r6 - 402838: 7001 strb r1, [r0, #0] - 40283a: e062 b.n 402902 - -0040283c : - 40283c: 6d22 ldr r2, [r4, #80] - 40283e: 2320 movs r3, #32 - 402840: 4013 ands r3, r2 - 402842: 095a lsrs r2, r3, #5 - 402844: 2a01 cmp r2, #1 - 402846: d15e bne.n 402906 - 402848: 6d22 ldr r2, [r4, #80] - 40284a: 2320 movs r3, #32 - 40284c: 439a bics r2, r3 - 40284e: 6522 str r2, [r4, #80] - 402850: 2340 movs r3, #64 - 402852: 4013 ands r3, r2 - 402854: 099a lsrs r2, r3, #6 - 402856: 2a01 cmp r2, #1 - 402858: d124 bne.n 4028a4 - 40285a: 6d22 ldr r2, [r4, #80] - 40285c: 2340 movs r3, #64 - 40285e: 439a bics r2, r3 - 402860: 6522 str r2, [r4, #80] - 402862: 7802 ldrb r2, [r0, #0] - 402864: 0752 lsls r2, r2, #29 - 402866: 0f52 lsrs r2, r2, #29 - 402868: 2310 movs r3, #16 - 40286a: 4313 orrs r3, r2 - 40286c: 7003 strb r3, [r0, #0] - 40286e: 4841 ldr r0, [pc, #260] (402974 ) - 402870: 6800 ldr r0, [r0, #0] - 402872: 22ff movs r2, #255 - 402874: 4010 ands r0, r2 - 402876: 280f cmp r0, #15 - 402878: d201 bcs.n 40287e - 40287a: 2200 movs r2, #0 - 40287c: e004 b.n 402888 - -0040287e : - 40287e: 2865 cmp r0, #101 - 402880: d202 bcs.n 402888 - 402882: 0042 lsls r2, r0, #1 - 402884: 1812 adds r2, r2, r0 - 402886: 3a2d subs r2, #45 - -00402888 : - 402888: 6ac8 ldr r0, [r1, #44] - 40288a: 6840 ldr r0, [r0, #4] - 40288c: 7082 strb r2, [r0, #2] - 40288e: 6da0 ldr r0, [r4, #88] - 402890: 4d35 ldr r5, [pc, #212] (402968 ) - 402892: 0081 lsls r1, r0, #2 - 402894: 1869 adds r1, r5, r1 - 402896: 690a ldr r2, [r1, #16] - 402898: 5c29 ldrb r1, [r5, r0] - 40289a: 0600 lsls r0, r0, #24 - 40289c: 0e00 lsrs r0, r0, #24 - 40289e: f000 fc25 bl 4030ec - 4028a2: e02e b.n 402902 - -004028a4 : - 4028a4: 7821 ldrb r1, [r4, #0] - 4028a6: 4d30 ldr r5, [pc, #192] (402968 ) - 4028a8: 2900 cmp r1, #0 - 4028aa: d014 beq.n 4028d6 - 4028ac: 1e49 subs r1, r1, #1 - 4028ae: 7021 strb r1, [r4, #0] - 4028b0: 2100 movs r1, #0 - 4028b2: 6521 str r1, [r4, #80] - 4028b4: 7a06 ldrb r6, [r0, #8] - 4028b6: 0029 lsls r1, r5, #0 - 4028b8: 3110 adds r1, #16 - 4028ba: 0028 lsls r0, r5, #0 - 4028bc: f000 fc36 bl 40312c - 4028c0: 00b0 lsls r0, r6, #2 - 4028c2: 1828 adds r0, r5, r0 - 4028c4: 6902 ldr r2, [r0, #16] - 4028c6: 5da9 ldrb r1, [r5, r6] - 4028c8: 0030 lsls r0, r6, #0 - 4028ca: f000 fc0f bl 4030ec - 4028ce: 4827 ldr r0, [pc, #156] (40296c ) - 4028d0: 4927 ldr r1, [pc, #156] (402970 ) - 4028d2: 6001 str r1, [r0, #0] - 4028d4: e017 b.n 402906 - -004028d6 : - 4028d6: 7801 ldrb r1, [r0, #0] - 4028d8: 0749 lsls r1, r1, #29 - 4028da: 0f49 lsrs r1, r1, #29 - 4028dc: 2218 movs r2, #24 - 4028de: 430a orrs r2, r1 - 4028e0: 7002 strb r2, [r0, #0] - 4028e2: 6da0 ldr r0, [r4, #88] - 4028e4: 0081 lsls r1, r0, #2 - 4028e6: 1869 adds r1, r5, r1 - 4028e8: 690a ldr r2, [r1, #16] - 4028ea: 5c29 ldrb r1, [r5, r0] - 4028ec: 0600 lsls r0, r0, #24 - 4028ee: 0e00 lsrs r0, r0, #24 - 4028f0: f000 fbfc bl 4030ec - 4028f4: e005 b.n 402902 - -004028f6 : - 4028f6: 7801 ldrb r1, [r0, #0] - 4028f8: 0749 lsls r1, r1, #29 - 4028fa: 0f49 lsrs r1, r1, #29 - 4028fc: 2228 movs r2, #40 - 4028fe: 430a orrs r2, r1 - 402900: 7002 strb r2, [r0, #0] - -00402902 : - 402902: f7ff fd64 bl 4023ce - -00402906 : - 402906: 6d20 ldr r0, [r4, #80] - 402908: 2180 movs r1, #128 - 40290a: 0089 lsls r1, r1, #2 - 40290c: 4001 ands r1, r0 - 40290e: 0a49 lsrs r1, r1, #9 - 402910: 2901 cmp r1, #1 - 402912: d010 beq.n 402936 - 402914: 2180 movs r1, #128 - 402916: 02c9 lsls r1, r1, #11 - 402918: 4001 ands r1, r0 - 40291a: 0c89 lsrs r1, r1, #18 - 40291c: 2901 cmp r1, #1 - 40291e: d00a beq.n 402936 - 402920: 2108 movs r1, #8 - 402922: 4001 ands r1, r0 - 402924: 08c9 lsrs r1, r1, #3 - 402926: 2901 cmp r1, #1 - 402928: d005 beq.n 402936 - 40292a: 2180 movs r1, #128 - 40292c: 0349 lsls r1, r1, #13 - 40292e: 4001 ands r1, r0 - 402930: 0d08 lsrs r0, r1, #20 - 402932: 2801 cmp r0, #1 - 402934: d10f bne.n 402956 - -00402936 : - 402936: 6d20 ldr r0, [r4, #80] - 402938: 490f ldr r1, [pc, #60] (402978 ) - 40293a: 4001 ands r1, r0 - 40293c: 6521 str r1, [r4, #80] - 40293e: 7860 ldrb r0, [r4, #1] - 402940: 0080 lsls r0, r0, #2 - 402942: 1820 adds r0, r4, r0 - 402944: 6ac0 ldr r0, [r0, #44] - 402946: 7801 ldrb r1, [r0, #0] - 402948: 0749 lsls r1, r1, #29 - 40294a: 0f49 lsrs r1, r1, #29 - 40294c: 2218 movs r2, #24 - 40294e: 430a orrs r2, r1 - 402950: 7002 strb r2, [r0, #0] - 402952: f7ff fd3c bl 4023ce - -00402956 : - 402956: 2000 movs r0, #0 - 402958: b001 add sp, #4 - 40295a: 9904 ldr r1, [sp, #16] - 40295c: bcf0 pop {r4, r5, r6, r7} - 40295e: b001 add sp, #4 - 402960: 4708 bx r1 - 402962: 46c0 nop (mov r8, r8) - -00402964 : - 402964: 00405368 .word 0x00405368 - 402968: 00403c04 .word 0x00403c04 - 40296c: 8000400c .word 0x8000400c - 402970: 00000a07 .word 0x00000a07 - 402974: 80009488 .word 0x80009488 - 402978: ffebfdf7 .word 0xffebfdf7 - -0040297c : - 40297c: b510 push {r4, lr} - 40297e: 4c58 ldr r4, [pc, #352] (402ae0 ) - 402980: 7860 ldrb r0, [r4, #1] - 402982: 0080 lsls r0, r0, #2 - 402984: 1820 adds r0, r4, r0 - 402986: 6ac0 ldr r0, [r0, #44] - 402988: 7801 ldrb r1, [r0, #0] - 40298a: 08c9 lsrs r1, r1, #3 - 40298c: d004 beq.n 402998 - 40298e: 1e49 subs r1, r1, #1 - 402990: d01c beq.n 4029cc - 402992: 1ec9 subs r1, r1, #3 - 402994: d067 beq.n 402a66 - 402996: e06c b.n 402a72 - -00402998 : - 402998: 2100 movs r1, #0 - 40299a: 6521 str r1, [r4, #80] - 40299c: 7021 strb r1, [r4, #0] - 40299e: 4951 ldr r1, [pc, #324] (402ae4 ) - 4029a0: 6bc9 ldr r1, [r1, #60] - 4029a2: 6842 ldr r2, [r0, #4] - 4029a4: 7892 ldrb r2, [r2, #2] - 4029a6: 1889 adds r1, r1, r2 - 4029a8: 4a4e ldr r2, [pc, #312] (402ae4 ) - 4029aa: 6451 str r1, [r2, #68] - 4029ac: 6bd1 ldr r1, [r2, #60] - 4029ae: 6842 ldr r2, [r0, #4] - 4029b0: 7892 ldrb r2, [r2, #2] - 4029b2: 1889 adds r1, r1, r2 - 4029b4: 4a4b ldr r2, [pc, #300] (402ae4 ) - 4029b6: 6491 str r1, [r2, #72] - 4029b8: 0011 lsls r1, r2, #0 - 4029ba: 4a46 ldr r2, [pc, #280] (402ad4 ) - 4029bc: 600a str r2, [r1, #0] - 4029be: 7801 ldrb r1, [r0, #0] - 4029c0: 0749 lsls r1, r1, #29 - 4029c2: 0f49 lsrs r1, r1, #29 - 4029c4: 2208 movs r2, #8 - 4029c6: 430a orrs r2, r1 - 4029c8: 7002 strb r2, [r0, #0] - 4029ca: e054 b.n 402a76 - -004029cc : - 4029cc: 6d21 ldr r1, [r4, #80] - 4029ce: 2220 movs r2, #32 - 4029d0: 400a ands r2, r1 - 4029d2: 0951 lsrs r1, r2, #5 - 4029d4: 2901 cmp r1, #1 - 4029d6: d14e bne.n 402a76 - 4029d8: 6d21 ldr r1, [r4, #80] - 4029da: 2220 movs r2, #32 - 4029dc: 4391 bics r1, r2 - 4029de: 6521 str r1, [r4, #80] - 4029e0: 2240 movs r2, #64 - 4029e2: 400a ands r2, r1 - 4029e4: 0992 lsrs r2, r2, #6 - 4029e6: 2a01 cmp r2, #1 - 4029e8: d01f beq.n 402a2a - 4029ea: 2280 movs r2, #128 - 4029ec: 400a ands r2, r1 - 4029ee: 09d2 lsrs r2, r2, #7 - 4029f0: 2a01 cmp r2, #1 - 4029f2: d01a beq.n 402a2a - 4029f4: 2204 movs r2, #4 - 4029f6: 400a ands r2, r1 - 4029f8: 0892 lsrs r2, r2, #2 - 4029fa: 2a01 cmp r2, #1 - 4029fc: d015 beq.n 402a2a - 4029fe: 2280 movs r2, #128 - 402a00: 01d2 lsls r2, r2, #7 - 402a02: 400a ands r2, r1 - 402a04: 0b92 lsrs r2, r2, #14 - 402a06: 2a01 cmp r2, #1 - 402a08: d00f beq.n 402a2a - 402a0a: 2280 movs r2, #128 - 402a0c: 0212 lsls r2, r2, #8 - 402a0e: 400a ands r2, r1 - 402a10: 0bd1 lsrs r1, r2, #15 - 402a12: 2901 cmp r1, #1 - 402a14: d009 beq.n 402a2a - 402a16: 7821 ldrb r1, [r4, #0] - 402a18: 2900 cmp r1, #0 - 402a1a: d111 bne.n 402a40 - 402a1c: 7801 ldrb r1, [r0, #0] - 402a1e: 0749 lsls r1, r1, #29 - 402a20: 0f49 lsrs r1, r1, #29 - 402a22: 2218 movs r2, #24 - 402a24: 430a orrs r2, r1 - 402a26: 7002 strb r2, [r0, #0] - 402a28: e023 b.n 402a72 - -00402a2a : - 402a2a: 6d21 ldr r1, [r4, #80] - 402a2c: 4a2a ldr r2, [pc, #168] (402ad8 ) - 402a2e: 400a ands r2, r1 - 402a30: 6522 str r2, [r4, #80] - 402a32: 7801 ldrb r1, [r0, #0] - 402a34: 0749 lsls r1, r1, #29 - 402a36: 0f49 lsrs r1, r1, #29 - 402a38: 2210 movs r2, #16 - 402a3a: 430a orrs r2, r1 - 402a3c: 7002 strb r2, [r0, #0] - 402a3e: e018 b.n 402a72 - -00402a40 : - 402a40: 1e49 subs r1, r1, #1 - 402a42: 7021 strb r1, [r4, #0] - 402a44: 2100 movs r1, #0 - 402a46: 6521 str r1, [r4, #80] - 402a48: 4926 ldr r1, [pc, #152] (402ae4 ) - 402a4a: 6bc9 ldr r1, [r1, #60] - 402a4c: 6842 ldr r2, [r0, #4] - 402a4e: 7892 ldrb r2, [r2, #2] - 402a50: 1889 adds r1, r1, r2 - 402a52: 4a24 ldr r2, [pc, #144] (402ae4 ) - 402a54: 6451 str r1, [r2, #68] - 402a56: 6bd1 ldr r1, [r2, #60] - 402a58: 6840 ldr r0, [r0, #4] - 402a5a: 7880 ldrb r0, [r0, #2] - 402a5c: 1808 adds r0, r1, r0 - 402a5e: 6490 str r0, [r2, #72] - 402a60: 491e ldr r1, [pc, #120] (402adc ) - 402a62: 6011 str r1, [r2, #0] - 402a64: e007 b.n 402a76 - -00402a66 : - 402a66: 7801 ldrb r1, [r0, #0] - 402a68: 0749 lsls r1, r1, #29 - 402a6a: 0f49 lsrs r1, r1, #29 - 402a6c: 2228 movs r2, #40 - 402a6e: 430a orrs r2, r1 - 402a70: 7002 strb r2, [r0, #0] - -00402a72 : - 402a72: f7ff fcac bl 4023ce - -00402a76 : - 402a76: 6d20 ldr r0, [r4, #80] - 402a78: 2180 movs r1, #128 - 402a7a: 0089 lsls r1, r1, #2 - 402a7c: 4001 ands r1, r0 - 402a7e: 0a49 lsrs r1, r1, #9 - 402a80: 2901 cmp r1, #1 - 402a82: d010 beq.n 402aa6 - 402a84: 2180 movs r1, #128 - 402a86: 02c9 lsls r1, r1, #11 - 402a88: 4001 ands r1, r0 - 402a8a: 0c89 lsrs r1, r1, #18 - 402a8c: 2901 cmp r1, #1 - 402a8e: d00a beq.n 402aa6 - 402a90: 2108 movs r1, #8 - 402a92: 4001 ands r1, r0 - 402a94: 08c9 lsrs r1, r1, #3 - 402a96: 2901 cmp r1, #1 - 402a98: d005 beq.n 402aa6 - 402a9a: 2180 movs r1, #128 - 402a9c: 0349 lsls r1, r1, #13 - 402a9e: 4001 ands r1, r0 - 402aa0: 0d08 lsrs r0, r1, #20 - 402aa2: 2801 cmp r0, #1 - 402aa4: d10f bne.n 402ac6 - -00402aa6 : - 402aa6: 6d20 ldr r0, [r4, #80] - 402aa8: 490f ldr r1, [pc, #60] (402ae8 ) - 402aaa: 4001 ands r1, r0 - 402aac: 6521 str r1, [r4, #80] - 402aae: 7860 ldrb r0, [r4, #1] - 402ab0: 0080 lsls r0, r0, #2 - 402ab2: 1820 adds r0, r4, r0 - 402ab4: 6ac0 ldr r0, [r0, #44] - 402ab6: 7801 ldrb r1, [r0, #0] - 402ab8: 0749 lsls r1, r1, #29 - 402aba: 0f49 lsrs r1, r1, #29 - 402abc: 2218 movs r2, #24 - 402abe: 430a orrs r2, r1 - 402ac0: 7002 strb r2, [r0, #0] - 402ac2: f7ff fc84 bl 4023ce - -00402ac6 : - 402ac6: 46c0 nop (mov r8, r8) - -00402ac8 : - 402ac8: 2000 movs r0, #0 - 402aca: 9901 ldr r1, [sp, #4] - 402acc: bc10 pop {r4} - 402ace: b001 add sp, #4 - 402ad0: 4708 bx r1 - 402ad2: 46c0 nop (mov r8, r8) - -00402ad4 : - 402ad4: 00000a02 .word 0x00000a02 - 402ad8: ffff3f3b .word 0xffff3f3b - 402adc: 00000a02 .word 0x00000a02 - -00402ae0 : - 402ae0: 00405368 .word 0x00405368 - -00402ae4 : - 402ae4: 8000400c .word 0x8000400c - -00402ae8 : - 402ae8: ffebfdf7 .word 0xffebfdf7 - -00402aec : - 402aec: b570 push {r4, r5, r6, lr} - 402aee: 4c24 ldr r4, [pc, #144] (402b80 ) - 402af0: 7a20 ldrb r0, [r4, #8] - 402af2: 08c0 lsrs r0, r0, #3 - 402af4: 2802 cmp r0, #2 - 402af6: d135 bne.n 402b64 - 402af8: 68e0 ldr r0, [r4, #12] - 402afa: 7880 ldrb r0, [r0, #2] - 402afc: 79a5 ldrb r5, [r4, #6] - 402afe: 1961 adds r1, r4, r5 - 402b00: 7608 strb r0, [r1, #24] - 402b02: 7921 ldrb r1, [r4, #4] - 402b04: 4281 cmp r1, r0 - 402b06: d201 bcs.n 402b0c - 402b08: 7120 strb r0, [r4, #4] - 402b0a: 7165 strb r5, [r4, #5] - -00402b0c : - 402b0c: 2800 cmp r0, #0 - 402b0e: d102 bne.n 402b16 - 402b10: 79e0 ldrb r0, [r4, #7] - 402b12: 2801 cmp r0, #1 - 402b14: d110 bne.n 402b38 - -00402b16 : - 402b16: 0028 lsls r0, r5, #0 - 402b18: f000 f834 bl 402b84 - 402b1c: 71a0 strb r0, [r4, #6] - 402b1e: 2600 movs r6, #0 - 402b20: 71e6 strb r6, [r4, #7] - 402b22: 42a8 cmp r0, r5 - 402b24: d20a bcs.n 402b3c - 402b26: 70e6 strb r6, [r4, #3] - 402b28: 7960 ldrb r0, [r4, #5] - 402b2a: 6d61 ldr r1, [r4, #84] - 402b2c: f001 fa08 bl 403f40 <__iar_via_R1> - 402b30: 7126 strb r6, [r4, #4] - 402b32: 200f movs r0, #15 - 402b34: 7160 strb r0, [r4, #5] - 402b36: e001 b.n 402b3c - -00402b38 : - 402b38: 2001 movs r0, #1 - 402b3a: 71e0 strb r0, [r4, #7] - -00402b3c : - 402b3c: 2000 movs r0, #0 - 402b3e: 0021 lsls r1, r4, #0 - 402b40: 312c adds r1, #44 - -00402b42 : - 402b42: 680a ldr r2, [r1, #0] - 402b44: 0023 lsls r3, r4, #0 - 402b46: 3308 adds r3, #8 - 402b48: 429a cmp r2, r3 - 402b4a: d014 beq.n 402b76 - 402b4c: 1c40 adds r0, r0, #1 - 402b4e: 1d09 adds r1, r1, #4 - 402b50: 0602 lsls r2, r0, #24 - 402b52: 0e12 lsrs r2, r2, #24 - 402b54: 2a04 cmp r2, #4 - 402b56: d3f4 bcc.n 402b42 - 402b58: 79a1 ldrb r1, [r4, #6] - 402b5a: 3408 adds r4, #8 - 402b5c: 0020 lsls r0, r4, #0 - 402b5e: f000 ff81 bl 403a64 - 402b62: e008 b.n 402b76 - -00402b64 : - 402b64: 2805 cmp r0, #5 - 402b66: d001 beq.n 402b6c - 402b68: 2803 cmp r0, #3 - 402b6a: d104 bne.n 402b76 - -00402b6c : - 402b6c: 79a1 ldrb r1, [r4, #6] - 402b6e: 3408 adds r4, #8 - 402b70: 0020 lsls r0, r4, #0 - 402b72: f000 ff77 bl 403a64 - -00402b76 : - 402b76: 9803 ldr r0, [sp, #12] - 402b78: bc70 pop {r4, r5, r6} - 402b7a: b001 add sp, #4 - 402b7c: 4700 bx r0 - 402b7e: 46c0 nop (mov r8, r8) - -00402b80 : - 402b80: 00405368 .word 0x00405368 - -00402b84 : - 402b84: b418 push {r3, r4} - 402b86: 2200 movs r2, #0 - 402b88: 4b09 ldr r3, [pc, #36] (402bb0 ) - 402b8a: 881b ldrh r3, [r3, #0] - -00402b8c : - 402b8c: 280f cmp r0, #15 - 402b8e: d203 bcs.n 402b98 - 402b90: 1c40 adds r0, r0, #1 - 402b92: 0600 lsls r0, r0, #24 - 402b94: 0e00 lsrs r0, r0, #24 - 402b96: e000 b.n 402b9a - -00402b98 : - 402b98: 2000 movs r0, #0 - -00402b9a : - 402b9a: 2401 movs r4, #1 - 402b9c: 4084 lsls r4, r0 - 402b9e: 4223 tst r3, r4 - 402ba0: d104 bne.n 402bac - 402ba2: 1c52 adds r2, r2, #1 - 402ba4: 0614 lsls r4, r2, #24 - 402ba6: 0e24 lsrs r4, r4, #24 - 402ba8: 2c10 cmp r4, #16 - 402baa: d3ef bcc.n 402b8c - -00402bac : - 402bac: bc12 pop {r1, r4} - 402bae: 4770 bx lr - -00402bb0 : - 402bb0: 00405390 .word 0x00405390 - -00402bb4 : - 402bb4: b570 push {r4, r5, r6, lr} - 402bb6: b082 sub sp, #8 - 402bb8: 2007 movs r0, #7 - 402bba: f40d fa11 bl ffe0 - 402bbe: 481d ldr r0, [pc, #116] (402c34 ) - 402bc0: 6802 ldr r2, [r0, #0] - 402bc2: 06d0 lsls r0, r2, #27 - 402bc4: 0e40 lsrs r0, r0, #25 - 402bc6: 4b1c ldr r3, [pc, #112] (402c38 ) - 402bc8: 18c0 adds r0, r0, r3 - 402bca: 6801 ldr r1, [r0, #0] - 402bcc: 24f8 movs r4, #248 - 402bce: 0164 lsls r4, r4, #5 - 402bd0: 4014 ands r4, r2 - 402bd2: 0a22 lsrs r2, r4, #8 - 402bd4: 0092 lsls r2, r2, #2 - 402bd6: 58d2 ldr r2, [r2, r3] - 402bd8: 6002 str r2, [r0, #0] - 402bda: 4a7b ldr r2, [pc, #492] (402dc8 ) - 402bdc: 2301 movs r3, #1 - 402bde: 6013 str r3, [r2, #0] - 402be0: 6bd4 ldr r4, [r2, #60] - 402be2: 2300 movs r3, #0 - 402be4: 9300 str r3, [sp, #0] - 402be6: 2596 movs r5, #150 - 402be8: 006d lsls r5, r5, #1 - 402bea: e002 b.n 402bf2 - -00402bec : - 402bec: 9e00 ldr r6, [sp, #0] - 402bee: 1c76 adds r6, r6, #1 - 402bf0: 9600 str r6, [sp, #0] - -00402bf2 : - 402bf2: 6bd6 ldr r6, [r2, #60] - 402bf4: 1b36 subs r6, r6, r4 - 402bf6: 2e03 cmp r6, #3 - 402bf8: d202 bcs.n 402c00 - 402bfa: 9e00 ldr r6, [sp, #0] - 402bfc: 42ae cmp r6, r5 - 402bfe: d3f5 bcc.n 402bec - -00402c00 : - 402c00: 6013 str r3, [r2, #0] - 402c02: 6bd2 ldr r2, [r2, #60] - 402c04: e001 b.n 402c0a - -00402c06 : - 402c06: 9b00 ldr r3, [sp, #0] - 402c08: 1c5b adds r3, r3, #1 - -00402c0a : - 402c0a: 9300 str r3, [sp, #0] - 402c0c: 4b6e ldr r3, [pc, #440] (402dc8 ) - 402c0e: 6bdb ldr r3, [r3, #60] - 402c10: 1a9b subs r3, r3, r2 - 402c12: 2b03 cmp r3, #3 - 402c14: d202 bcs.n 402c1c - 402c16: 9b00 ldr r3, [sp, #0] - 402c18: 42ab cmp r3, r5 - 402c1a: d3f4 bcc.n 402c06 - -00402c1c : - 402c1c: 6001 str r1, [r0, #0] - 402c1e: 4807 ldr r0, [pc, #28] (402c3c ) - 402c20: 4907 ldr r1, [pc, #28] (402c40 ) - 402c22: 6001 str r1, [r0, #0] - 402c24: 2007 movs r0, #7 - 402c26: f40d f9cd bl ffc4 - 402c2a: b002 add sp, #8 - 402c2c: 9803 ldr r0, [sp, #12] - 402c2e: bc70 pop {r4, r5, r6} - 402c30: b001 add sp, #4 - 402c32: 4700 bx r0 - -00402c34 : - 402c34: 80009204 .word 0x80009204 - 402c38: 80009300 .word 0x80009300 - 402c3c: 800040c4 .word 0x800040c4 - 402c40: 0000ffff .word 0x0000ffff - -00402c44 : - 402c44: b5f8 push {r3, r4, r5, r6, r7, lr} - 402c46: 485b ldr r0, [pc, #364] (402db4 ) - 402c48: 6804 ldr r4, [r0, #0] - 402c4a: 6044 str r4, [r0, #4] - 402c4c: 4f5a ldr r7, [pc, #360] (402db8 ) - 402c4e: 7838 ldrb r0, [r7, #0] - 402c50: 1c40 adds r0, r0, #1 - 402c52: 7038 strb r0, [r7, #0] - 402c54: 2580 movs r5, #128 - 402c56: 022d lsls r5, r5, #8 - 402c58: 422c tst r4, r5 - 402c5a: d005 beq.n 402c68 - 402c5c: 4e57 ldr r6, [pc, #348] (402dbc ) - 402c5e: 6830 ldr r0, [r6, #0] - 402c60: 2101 movs r1, #1 - -00402c62 : - 402c62: 4301 orrs r1, r0 - 402c64: 6031 str r1, [r6, #0] - 402c66: e09c b.n 402da2 - -00402c68 : - 402c68: 07e0 lsls r0, r4, #31 - 402c6a: d552 bpl.n 402d12 - 402c6c: 4e53 ldr r6, [pc, #332] (402dbc ) - 402c6e: 6830 ldr r0, [r6, #0] - 402c70: 2120 movs r1, #32 - 402c72: 4301 orrs r1, r0 - 402c74: 6031 str r1, [r6, #0] - 402c76: f7ff fb7f bl 402378 - 402c7a: 4853 ldr r0, [pc, #332] (402dc8 ) - 402c7c: 6840 ldr r0, [r0, #4] - 402c7e: 0700 lsls r0, r0, #28 - 402c80: 0f00 lsrs r0, r0, #28 - 402c82: 280f cmp r0, #15 - 402c84: d900 bls.n 402c88 - 402c86: e08c b.n 402da2 - 402c88: a101 add r1, pc, #4 (adr r1, 402c90 ) - 402c8a: 5c09 ldrb r1, [r1, r0] - 402c8c: 0049 lsls r1, r1, #1 - 402c8e: 448f add pc, r1 - -00402c90 : - 402c90: 18130e07 .word 0x18130e07 - 402c94: 8888861b .word 0x8888861b - 402c98: 88882520 .word 0x88882520 - 402c9c: 3d383588 .word 0x3d383588 - -00402ca0 : - 402ca0: 6830 ldr r0, [r6, #0] - 402ca2: 2140 movs r1, #64 - 402ca4: 4301 orrs r1, r0 - 402ca6: 6031 str r1, [r6, #0] - 402ca8: 2001 movs r0, #1 - 402caa: 7078 strb r0, [r7, #1] - 402cac: e079 b.n 402da2 - -00402cae : - 402cae: f7ff ff81 bl 402bb4 - 402cb2: 6830 ldr r0, [r6, #0] - 402cb4: 2180 movs r1, #128 - 402cb6: e7d4 b.n 402c62 - -00402cb8 : - 402cb8: 6830 ldr r0, [r6, #0] - 402cba: 09e9 lsrs r1, r5, #7 - -00402cbc : - 402cbc: 4301 orrs r1, r0 - 402cbe: 6031 str r1, [r6, #0] - 402cc0: e06f b.n 402da2 - -00402cc2 : - 402cc2: 6830 ldr r0, [r6, #0] - 402cc4: 09a9 lsrs r1, r5, #6 - 402cc6: e7cc b.n 402c62 - -00402cc8 : - 402cc8: 6830 ldr r0, [r6, #0] - 402cca: 0969 lsrs r1, r5, #5 - 402ccc: 4301 orrs r1, r0 - 402cce: 6031 str r1, [r6, #0] - 402cd0: e065 b.n 402d9e - -00402cd2 : - 402cd2: f7ff ff6f bl 402bb4 - 402cd6: 6830 ldr r0, [r6, #0] - 402cd8: 0869 lsrs r1, r5, #1 - 402cda: e7c2 b.n 402c62 - -00402cdc : - 402cdc: f7ff ff6a bl 402bb4 - 402ce0: 20c0 movs r0, #192 - 402ce2: 0140 lsls r0, r0, #5 - 402ce4: 4204 tst r4, r0 - 402ce6: d005 beq.n 402cf4 - 402ce8: f7ff ff64 bl 402bb4 - 402cec: 6830 ldr r0, [r6, #0] - 402cee: 2180 movs r1, #128 - 402cf0: 4301 orrs r1, r0 - 402cf2: 6031 str r1, [r6, #0] - -00402cf4 : - 402cf4: 6830 ldr r0, [r6, #0] - 402cf6: 4305 orrs r5, r0 - 402cf8: 6035 str r5, [r6, #0] - 402cfa: e052 b.n 402da2 - -00402cfc : - 402cfc: 6830 ldr r0, [r6, #0] - 402cfe: 00a9 lsls r1, r5, #2 - 402d00: e7af b.n 402c62 - -00402d02 : - 402d02: f7ff ff57 bl 402bb4 - 402d06: 6830 ldr r0, [r6, #0] - 402d08: 00e9 lsls r1, r5, #3 - 402d0a: e7d7 b.n 402cbc - -00402d0c : - 402d0c: 6830 ldr r0, [r6, #0] - 402d0e: 0129 lsls r1, r5, #4 - 402d10: e7a7 b.n 402c62 - -00402d12 : - 402d12: 482b ldr r0, [pc, #172] (402dc0 ) - 402d14: 4020 ands r0, r4 - 402d16: 08e9 lsrs r1, r5, #3 - 402d18: 4288 cmp r0, r1 - 402d1a: d105 bne.n 402d28 - 402d1c: 4e27 ldr r6, [pc, #156] (402dbc ) - 402d1e: 6830 ldr r0, [r6, #0] - 402d20: 2108 movs r1, #8 - 402d22: 4301 orrs r1, r0 - 402d24: 6031 str r1, [r6, #0] - 402d26: e03a b.n 402d9e - -00402d28 : - 402d28: 2004 movs r0, #4 - 402d2a: 4204 tst r4, r0 - 402d2c: d01c beq.n 402d68 - 402d2e: 4826 ldr r0, [pc, #152] (402dc8 ) - 402d30: 4924 ldr r1, [pc, #144] (402dc4 ) - 402d32: 6001 str r1, [r0, #0] - 402d34: f000 fdc8 bl 4038c8 - 402d38: 2800 cmp r0, #0 - 402d3a: d109 bne.n 402d50 - 402d3c: 4822 ldr r0, [pc, #136] (402dc8 ) - 402d3e: 6f40 ldr r0, [r0, #116] - 402d40: 7840 ldrb r0, [r0, #1] - 402d42: 287e cmp r0, #126 - 402d44: d10c bne.n 402d60 - 402d46: 4820 ldr r0, [pc, #128] (402dc8 ) - 402d48: 6f40 ldr r0, [r0, #116] - 402d4a: 7880 ldrb r0, [r0, #2] - 402d4c: 28ff cmp r0, #255 - 402d4e: d107 bne.n 402d60 - -00402d50 : - 402d50: 4e1a ldr r6, [pc, #104] (402dbc ) - 402d52: 6830 ldr r0, [r6, #0] - 402d54: 2170 movs r1, #112 - 402d56: 4301 orrs r1, r0 - 402d58: 6031 str r1, [r6, #0] - 402d5a: f7ff fb0d bl 402378 - 402d5e: e020 b.n 402da2 - -00402d60 : - 402d60: 4e16 ldr r6, [pc, #88] (402dbc ) - 402d62: 6830 ldr r0, [r6, #0] - 402d64: 00e9 lsls r1, r5, #3 - 402d66: e77c b.n 402c62 - -00402d68 : - 402d68: 0521 lsls r1, r4, #20 - 402d6a: d505 bpl.n 402d78 - 402d6c: f7ff ff22 bl 402bb4 - 402d70: 4e12 ldr r6, [pc, #72] (402dbc ) - 402d72: 6830 ldr r0, [r6, #0] - 402d74: 0169 lsls r1, r5, #5 - 402d76: e7a1 b.n 402cbc - -00402d78 : - 402d78: 0301 lsls r1, r0, #12 - 402d7a: 420c tst r4, r1 - 402d7c: d003 beq.n 402d86 - 402d7e: 4e0f ldr r6, [pc, #60] (402dbc ) - 402d80: 6830 ldr r0, [r6, #0] - 402d82: 2102 movs r1, #2 - 402d84: e76d b.n 402c62 - -00402d86 : - 402d86: 2190 movs r1, #144 - 402d88: 0189 lsls r1, r1, #6 - 402d8a: 420c tst r4, r1 - 402d8c: d004 beq.n 402d98 - 402d8e: 4e0b ldr r6, [pc, #44] (402dbc ) - 402d90: 6831 ldr r1, [r6, #0] - 402d92: 4308 orrs r0, r1 - 402d94: 6030 str r0, [r6, #0] - 402d96: e004 b.n 402da2 - -00402d98 : - 402d98: 01c0 lsls r0, r0, #7 - 402d9a: 4204 tst r4, r0 - 402d9c: d001 beq.n 402da2 - -00402d9e : - 402d9e: f7ff ff09 bl 402bb4 - -00402da2 : - 402da2: 7838 ldrb r0, [r7, #0] - 402da4: 1e40 subs r0, r0, #1 - 402da6: 7038 strb r0, [r7, #0] - 402da8: b001 add sp, #4 - 402daa: 9804 ldr r0, [sp, #16] - 402dac: bcf0 pop {r4, r5, r6, r7} - 402dae: b001 add sp, #4 - 402db0: 4700 bx r0 - 402db2: 46c0 nop (mov r8, r8) - -00402db4 : - 402db4: 800040c0 .word 0x800040c0 - 402db8: 004052ab .word 0x004052ab - 402dbc: 004053b8 .word 0x004053b8 - 402dc0: 00001001 .word 0x00001001 - 402dc4: 00000201 .word 0x00000201 - -00402dc8 : - 402dc8: 8000400c .word 0x8000400c - -00402dcc : - 402dcc: 80003000 .word 0x80003000 - 402dd0: 00000019 .word 0x00000019 - 402dd4: 80003048 .word 0x80003048 - 402dd8: 00000ffb .word 0x00000ffb - -00402ddc : - 402ddc: 80003000 .word 0x80003000 - 402de0: 00000018 .word 0x00000018 - 402de4: 80003048 .word 0x80003048 - 402de8: 00000f04 .word 0x00000f04 - 402dec: 00000000 .word 0x00000000 - 402df0: 000161a8 .word 0x000161a8 - 402df4: 80003048 .word 0x80003048 - 402df8: 00000ffc .word 0x00000ffc - -00402dfc : - 402dfc: 80009000 .word 0x80009000 - 402e00: 80050100 .word 0x80050100 - -00402e04 : - 402e04: 80009400 .word 0x80009400 - 402e08: 00020017 .word 0x00020017 - 402e0c: 80009a04 .word 0x80009a04 - 402e10: 8185a0a4 .word 0x8185a0a4 - 402e14: 80009a00 .word 0x80009a00 - 402e18: 8c900025 .word 0x8c900025 - 402e1c: 00000000 .word 0x00000000 - 402e20: 00011194 .word 0x00011194 - 402e24: 80009a00 .word 0x80009a00 - 402e28: 8c900021 .word 0x8c900021 - 402e2c: 80009a00 .word 0x80009a00 - 402e30: 8c900027 .word 0x8c900027 - 402e34: 00000000 .word 0x00000000 - 402e38: 00011194 .word 0x00011194 - 402e3c: 80009a00 .word 0x80009a00 - 402e40: 8c90002b .word 0x8c90002b - 402e44: 80009a00 .word 0x80009a00 - 402e48: 8c90002f .word 0x8c90002f - 402e4c: 00000000 .word 0x00000000 - 402e50: 00011194 .word 0x00011194 - 402e54: 80009a00 .word 0x80009a00 - 402e58: 8c900000 .word 0x8c900000 - -00402e5c : - 402e5c: 80009000 .word 0x80009000 - 402e60: 80050300 .word 0x80050300 - -00402e64 : - 402e64: 80004118 .word 0x80004118 - 402e68: 00180012 .word 0x00180012 - 402e6c: 80009204 .word 0x80009204 - 402e70: 00000605 .word 0x00000605 - 402e74: 80009208 .word 0x80009208 - 402e78: 00000504 .word 0x00000504 - 402e7c: 8000920c .word 0x8000920c - 402e80: 00001111 .word 0x00001111 - 402e84: 80009210 .word 0x80009210 - 402e88: 0fc40000 .word 0x0fc40000 - 402e8c: 80009300 .word 0x80009300 - 402e90: 20046000 .word 0x20046000 - 402e94: 80009304 .word 0x80009304 - 402e98: 4005580c .word 0x4005580c - 402e9c: 80009308 .word 0x80009308 - 402ea0: 40075801 .word 0x40075801 - 402ea4: 8000930c .word 0x8000930c - 402ea8: 4005d801 .word 0x4005d801 - 402eac: 80009310 .word 0x80009310 - 402eb0: 5a45d800 .word 0x5a45d800 - 402eb4: 80009314 .word 0x80009314 - 402eb8: 4a45d800 .word 0x4a45d800 - 402ebc: 80009318 .word 0x80009318 - 402ec0: 40044000 .word 0x40044000 - 402ec4: 80009380 .word 0x80009380 - 402ec8: 00106000 .word 0x00106000 - 402ecc: 80009384 .word 0x80009384 - 402ed0: 00083806 .word 0x00083806 - 402ed4: 80009388 .word 0x80009388 - 402ed8: 00093807 .word 0x00093807 - 402edc: 8000938c .word 0x8000938c - 402ee0: 0009b804 .word 0x0009b804 - 402ee4: 80009390 .word 0x80009390 - 402ee8: 000db800 .word 0x000db800 - 402eec: 80009394 .word 0x80009394 - 402ef0: 00093802 .word 0x00093802 - 402ef4: 8000a008 .word 0x8000a008 - 402ef8: 00000015 .word 0x00000015 - 402efc: 8000a018 .word 0x8000a018 - 402f00: 00000002 .word 0x00000002 - 402f04: 8000a01c .word 0x8000a01c - 402f08: 0000000f .word 0x0000000f - 402f0c: 80009424 .word 0x80009424 - 402f10: 0000aaa0 .word 0x0000aaa0 - 402f14: 80009434 .word 0x80009434 - 402f18: 01002020 .word 0x01002020 - 402f1c: 80009438 .word 0x80009438 - 402f20: 016800fe .word 0x016800fe - 402f24: 8000943c .word 0x8000943c - 402f28: 8e578248 .word 0x8e578248 - 402f2c: 80009440 .word 0x80009440 - 402f30: 000000dd .word 0x000000dd - 402f34: 80009444 .word 0x80009444 - 402f38: 00000946 .word 0x00000946 - 402f3c: 80009448 .word 0x80009448 - 402f40: 0000035a .word 0x0000035a - 402f44: 8000944c .word 0x8000944c - 402f48: 00100010 .word 0x00100010 - 402f4c: 80009450 .word 0x80009450 - 402f50: 00000515 .word 0x00000515 - 402f54: 80009460 .word 0x80009460 - 402f58: 00397feb .word 0x00397feb - 402f5c: 80009464 .word 0x80009464 - 402f60: 00180358 .word 0x00180358 - 402f64: 8000947c .word 0x8000947c - 402f68: 00000455 .word 0x00000455 - 402f6c: 800094e0 .word 0x800094e0 - 402f70: 00000001 .word 0x00000001 - 402f74: 800094e4 .word 0x800094e4 - 402f78: 00020003 .word 0x00020003 - 402f7c: 800094e8 .word 0x800094e8 - 402f80: 00040014 .word 0x00040014 - 402f84: 800094ec .word 0x800094ec - 402f88: 00240034 .word 0x00240034 - 402f8c: 800094f0 .word 0x800094f0 - 402f90: 00440144 .word 0x00440144 - 402f94: 800094f4 .word 0x800094f4 - 402f98: 02440344 .word 0x02440344 - 402f9c: 800094f8 .word 0x800094f8 - 402fa0: 04440544 .word 0x04440544 - 402fa4: 80009470 .word 0x80009470 - 402fa8: 0ee7fc00 .word 0x0ee7fc00 - 402fac: 8000981c .word 0x8000981c - 402fb0: 00000082 .word 0x00000082 - 402fb4: 80009828 .word 0x80009828 - 402fb8: 0000002a .word 0x0000002a - -00402fbc : - 402fbc: b5f8 push {r3, r4, r5, r6, r7, lr} - 402fbe: 0006 lsls r6, r0, #0 //maybe platform clock 24000000 - 402fc0: 000c lsls r4, r1, #0 //maybe dig clock pn - 402fc2: 0015 lsls r5, r2, #0 //maybe loop div - 402fc4: 4f39 ldr r7, [pc, #228] (4030ac ) // set r7 to *(4030ac: .word 0x004053f0) 004053f0 : - 402fc6: 21fa movs r1, #250 // r1 gets 250 - 402fc8: 0089 lsls r1, r1, #2 // r1 is 0x1f4 (does this divide 24000000 by 500?) - 402fca: f7fd fcc1 bl 400950 - 402fce: 65b8 str r0, [r7, #88] // gRadioTOCCal2_N[88] 0x58 - 402fd0: 4837 ldr r0, [pc, #220] (4030b0 ) // r0 gets 4030b0: 016e3600 .word 0x016e3600 = 240000000 - 402fd2: 4286 cmp r6, r0 - 402fd4: d001 beq.n 402fda // if 24 MHz test for 24MHZ skips to endif - 402fd6: 617c str r4, [r7, #20] // gRadioTOCCal2_N[20] 0x14 - 402fd8: 61fd str r5, [r7, #28] // gRadioTOCCal2_N[28] 0x1c - 402fda: 4c36 ldr r4, [pc, #216] (4030b4 ) // else endif 4030b4: .word 0x00402dcc buck_enable - 402fdc: 4d70 ldr r5, [pc, #448] (4031a0 ) // 0x0040544c ram_init_val - 402fde: 7928 ldrb r0, [r5, #4] // r0 gets 0 - 402fe0: 2801 cmp r0, #1 // check if its 1 (it's not, it's 0) - 402fe2: d106 bne.n 402ff2 // and skip stuff (to 2ff2,HERE) assume skip we have 24MHz - 402fe4: 4834 ldr r0, [pc, #208] (4030b8 ) // 4030b8: .word 0x00000f7b - 402fe6: 6378 str r0, [r7, #52] // what's r7? put f7b into gRadioTOCCal2_None24Mhz_c[52] 0x34 - 402fe8: 3858 subs r0, #88 - 402fea: 6368 str r0, [r5, #52] // what's r5? maybe ram_init_val[52] 0x34 - 402fec: 2110 movs r1, #16 - 402fee: 0020 lsls r0, r4, #0 - 402ff0: e009 b.n 403006 - 402ff2: 7968 ldrb r0, [r5, #5] // HERE: what's r5? looks like ram_init_val[5] i - 402ff4: 2801 cmp r0, #1 // another test. not one. (it's 0) skip to THERE - 402ff6: d108 bne.n 40300a // skip to THERE - 402ff8: 4830 ldr r0, [pc, #192] (4030bc ) // 4030bc: 00000f7c .word 0x00000f7c - 402ffa: 6378 str r0, [r7, #52] // put f7c into gRadioTOCCal2_None24Mhz_c[52] 0x34 - 402ffc: 3878 subs r0, #120 - 402ffe: 6368 str r0, [r5, #52] // subtract 120 and put it into ram_init_val[52] 0x34 - 403000: 2120 movs r1, #32 - 403002: 0020 lsls r0, r4, #0 - 403004: 3010 adds r0, #16 - 403006: f000 f96d bl 4032e4 // call InitFromMemory with setup vals? 32 bytes of buck_enable+16? - 40300a: 2128 movs r1, #40 // THERE: chould have come from a skip r1 gets 40 - 40300c: 0038 lsls r0, r7, #0 // r0 is r7 (cal2) r7 base - 40300e: 3030 adds r0, #48 // now its cal2+48 which is Cal1 - 403010: f000 f968 bl 4032e4 // 40 entries of gRadioTOCCal2_None24Mhz+48?//i think this bombs b/c zero... - 403014: 4826 ldr r0, [pc, #152] (4030b0 ) // 4030b0: 016e3600 .word 0x016e3600 - 403016: 4286 cmp r6, r0 - 403018: d103 bne.n 403022 // another test for 24MHz branch to NEXT: if !=, but they are - 40301a: 2108 movs r1, #8 // 8 bytes = 1 entry - 40301c: 0020 lsls r0, r4, #0 // r4 base - 40301e: 3030 adds r0, #48 // r4 base+48 (gRadioTOCCal2_24MHz_c) - 403020: e001 b.n 403026 // goto endif - 403022: 2130 movs r1, #48 // NEXT: - 403024: 0038 lsls r0, r7, #0 // 48 bytes = 6 entries of r7+0 - 403026: f000 f95d bl 4032e4 // endif do the init - 40302a: 2158 movs r1, #88 // do 11 entries - 40302c: 0020 lsls r0, r4, #0 // of r4 base + 56 - 40302e: 3038 adds r0, #56 - 403030: f000 f958 bl 4032e4 // do another then do 11 entries from r4+56 0x2e14 (in cal 3) - 403034: 481e ldr r0, [pc, #120] (4030b0 ) - 403036: 4286 cmp r6, r0 // check for 24MHZ - 403038: d004 beq.n 403044 // branch they are equal - 40303a: 2108 movs r1, #8 // skip - 40303c: 0020 lsls r0, r4, #0 // skip - 40303e: 3090 adds r0, #144 // skip - 403040: f000 f950 bl 4032e4 - 403044: 2120 movs r1, #32 // endif: four entries of - 403046: 0028 lsls r0, r5, #0 - 403048: 3018 adds r0, #24 // r5+24 RadioCal5 - 40304a: f000 f94b bl 4032e4 // do 32 entries in r5+24 this might be zero... - 40304e: 21ac movs r1, #172 - 403050: 0049 lsls r1, r1, #1 // r1 gets 344 - 403052: 0020 lsls r0, r4, #0 - 403054: 3098 adds r0, #152 - 403056: f000 f945 bl 4032e4 // do 344 entries from r4+152 0x2e74 (in reg replacment) - 40305a: 20f8 movs r0, #248 // r0 gets 0xf8 - 40305c: 0240 lsls r0, r0, #9 // r0 is now 0x1F000 - 40305e: f000 f8db bl 403218 // from flash --- this might be the regreplacment since that's in codespace... luckly we can call it directly and IAR links it in. looks like it sets a lot of the ram values that aren't getting set without it - 403062: f000 f82f bl 4030c4 // looks like this happens... - 403066: 7928 ldrb r0, [r5, #4] // need a dump of r5 ram_init_val now appears to be 0 - 403068: 2801 cmp r0, #1 - 40306a: d101 bne.n 403070 // branches - 40306c: 2110 movs r1, #16 - 40306e: e004 b.n 40307a - 403070: 7968 ldrb r0, [r5, #5] // appears to be 0 - 403072: 2801 cmp r0, #1 - 403074: d104 bne.n 403080 // branches to 6: - 403076: 2120 movs r1, #32 - 403078: 3410 adds r4, #16 - 40307a: 0020 lsls r0, r4, #0 // 5: - 40307c: f000 f932 bl 4032e4 // do 4 entries but from r4 of buck bypass - 403080: 480f ldr r0, [pc, #60] (4030c0 ) // 6: - 403082: f000 f881 bl 403188 // and a call to fill ram struct --- maybe important to the program? - 403086: 2400 movs r4, #0 - 403088: 78e9 ldrb r1, [r5, #3] // appears to be 0x4c - 40308a: 0620 lsls r0, r4, #24 // clobber high 24 bits - 40308c: 0e00 lsrs r0, r0, #24 - 40308e: f000 f86d bl 40316c //v=get_ctov(0,0x4c) - 403092: 1929 adds r1, r5, r4 // r4 = 0, r5 is &ram_init_val - 403094: 7208 strb r0, [r1, #8] - 403096: 1c64 adds r4, r4, #1 // r4 = r4+1 - 403098: 0620 lsls r0, r4, #24 // clobber high 24 bits - 40309a: 0e00 lsrs r0, r0, #24 - 40309c: 2810 cmp r0, #16 - 40309e: d3f3 bcc.n 403088 // branch if 16 > r0 - 4030a0: b001 add sp, #4 // return? - 4030a2: 9804 ldr r0, [sp, #16] - 4030a4: bcf0 pop {r4, r5, r6, r7} - 4030a6: b001 add sp, #4 - 4030a8: 4700 bx r0 - 4030aa: 46c0 nop (mov r8, r8) - 4030ac: 004053f0 .word 0x004053f0 - 4030b0: 016e3600 .word 0x016e3600 - 4030b4: 00402dcc .word 0x00402dcc - 4030b8: 00000f7b .word 0x00000f7b - 4030bc: 00000f7c .word 0x00000f7c - 4030c0: 004052a0 .word 0x004052a0 - -004030c4 : - 4030c4: 4806 ldr r0, [pc, #24] (4030e0 ) // r0 gets base 0x80009a00 - 4030c6: 6881 ldr r1, [r0, #8] // r1 gets *(0x80009a08) - 4030c8: 4806 ldr r0, [pc, #24] (4030e4 ) // r0 gets 0x0000f7df - 4030ca: 4308 orrs r0, r1 // or them, r0 has it - 4030cc: 4904 ldr r1, [pc, #16] (4030e0 ) // r1 gets base 0x80009a00 - 4030ce: 6088 str r0, [r1, #8] // put r0 into 0x80009a08 - 4030d0: 0008 lsls r0, r1, #0 // r0 gets r1, r0 is the base now - 4030d2: 4905 ldr r1, [pc, #20] (4030e8 ) // r1 gets 0x00ffffff - 4030d4: 60c1 str r1, [r0, #12] // r1 gets base+12 - 4030d6: 0b09 lsrs r1, r1, #12 // r1 << 12 - 4030d8: 6101 str r1, [r0, #16] // put r1 base+16 - 4030da: 2110 movs r1, #16 // r1 gets 16 - 4030dc: 6001 str r1, [r0, #0] // put r1 in the base - 4030de: 4770 bx lr // return - 4030e0: 80009a00 .word 0x80009a00 - 4030e4: 0000f7df .word 0x0000f7df - 4030e8: 00ffffff .word 0x00ffffff - -004030ec : - 4030ec: b430 push {r4, r5} //r0 = chan_num r1=vcodivI r2=vcodivF - 4030ee: 4b1d ldr r3, [pc, #116] (403164 ) - 4030f0: 681c ldr r4, [r3, #0] //r4 = *0x80009800 - 4030f2: 4d1d ldr r5, [pc, #116] (403168 ) //0xbfffffff - 4030f4: 4025 ands r5, r4 // r5 = *0x80009800 & 0xbfffffff - 4030f6: 601d str r5, [r3, #0] // *0x80009800 = r5 - 4030f8: 60d9 str r1, [r3, #12] // *0x80009800+12 = r3 - 4030fa: 611a str r2, [r3, #16] // *0x80009800+16 = r2 - 4030fc: 6b19 ldr r1, [r3, #48] // r1 = *0x80009800+48 - 4030fe: 2202 movs r2, #2 // r2 = 2 - 403100: 430a orrs r2, r1 // r2 = r1 | 2 - 403102: 631a str r2, [r3, #48] // *0x80009800+48 = r2 - 403104: 6b19 ldr r1, [r3, #48] // r1 = *0x80009800+48 - 403106: 2204 movs r2, #4 // r2 = 4; - 403108: 430a orrs r2, r1 // r2 = r1 | 4 - 40310a: 631a str r2, [r3, #48] // // *0x80009800+48 = r2 - 40310c: 0011 lsls r1, r2, #0 // r1 = r2 - 40310e: 4a06 ldr r2, [pc, #24] (403128 ) r2 = 0xffffe0ff; - 403110: 400a ands r2, r1 // r2 = r1 & 0xffffe0ff; - 403112: 4923 ldr r1, [pc, #140] (4031a0 ) // r1 gets &ram_init_val - 403114: 1808 adds r0, r1, r0 // offset - 403116: 7a00 ldrb r0, [r0, #8] // r0 gets ram_init_val+8+offset = buffer_radio_init[offset] - 403118: 0200 lsls r0, r0, #8 // shift that left 8 - 40311a: 21f8 movs r1, #248 // r1 = 248 - 40311c: 0149 lsls r1, r1, #5 // r1 = 0x1F00 - 40311e: 4001 ands r1, r0 // r1 gets r0 & 0x1F00 - 403120: 4311 orrs r1, r2 // ored with r2 - 403122: 6319 str r1, [r3, #48] // r3+48 gets r1... 0x80009800+48 - 403124: bc30 pop {r4, r5} - 403126: 4770 bx lr - 403128: ffffe0ff .word 0xffffe0ff - -0040312c : - 40312c: b430 push {r4, r5} - 40312e: 0002 lsls r2, r0, #0 - 403130: 20ff movs r0, #255 - 403132: 2300 movs r3, #0 - 403134: 5cd4 ldrb r4, [r2, r3] - 403136: 4d0a ldr r5, [pc, #40] (403160 ) - 403138: 682d ldr r5, [r5, #0] - 40313a: 42ac cmp r4, r5 - 40313c: d107 bne.n 40314e - 40313e: 009c lsls r4, r3, #2 - 403140: 590c ldr r4, [r1, r4] - 403142: 4d07 ldr r5, [pc, #28] (403160 ) - 403144: 686d ldr r5, [r5, #4] - 403146: 42ac cmp r4, r5 - 403148: d101 bne.n 40314e - 40314a: 0018 lsls r0, r3, #0 - 40314c: e004 b.n 403158 - 40314e: 1c5b adds r3, r3, #1 - 403150: 061c lsls r4, r3, #24 - 403152: 0e24 lsrs r4, r4, #24 - 403154: 2c10 cmp r4, #16 - 403156: d3ed bcc.n 403134 - 403158: 0600 lsls r0, r0, #24 - 40315a: 0e00 lsrs r0, r0, #24 - 40315c: bc30 pop {r4, r5} - 40315e: 4770 bx lr - 403160: 8000980c .word 0x8000980c - 403164: 80009800 .word 0x80009800 - 403168: bfffffff .wor 0xbfffffff - -0040316c : - 40316c: 4a04 ldr r2, [pc, #16] (403180 ) r2=0x00dfbe77 - 40316e: 4350 muls r0, r2 - 403170: 0589 lsls r1, r1, #22 - 403172: 1840 adds r0, r0, r1 - 403174: 4903 ldr r1, [pc, #12] (403184 ) - 403176: 1840 adds r0, r0, r1 - 403178: 1640 asrs r0, r0, #25 - 40317a: 0600 lsls r0, r0, #24 - 40317c: 0e00 lsrs r0, r0, #24 - 40317e: 4770 bx lr - 403180: 00dfbe77 .word 0x00dfbe77 - 403184: 023126e9 .word 0x023126e9 - -00403188 : - 403188: 4905 ldr r1, [pc, #20] (4031a0 ) - 40318a: 7802 ldrb r2, [r0, #0] - 40318c: 700a strb r2, [r1, #0] - 40318e: 7842 ldrb r2, [r0, #1] - 403190: 704a strb r2, [r1, #1] - 403192: 7882 ldrb r2, [r0, #2] - 403194: 708a strb r2, [r1, #2] - 403196: 1cc0 adds r0, r0, #3 - 403198: 7800 ldrb r0, [r0, #0] - 40319a: 70c8 strb r0, [r1, #3] - 40319c: 4770 bx lr - 40319e: 0000 lsls r0, r0, #0 - 4031a0: 0040544c .word 0x0040544c - -004031a4 : - 4031a4: 6801 ldr r1, [r0, #0] // r1 gets where r0 points - 4031a6: 1d00 adds r0, r0, #4 // increment pointer by 4 bytes - 4031a8: 4a17 ldr r2, [pc, #92] (403208 ) //r2 gets 403208: 00140001 .word 0x00140001 - 4031aa: 4291 cmp r1, r2 // compare r1 with r2 - 4031ac: d303 bcc.n 4031b6 //branch to 1: if lower - 4031ae: 6800 ldr r0, [r0, #0] // get where r0+4 points - 4031b0: 6008 str r0, [r1, #0] // store that where r1 points (load an addr/data pair like 80009000 aabbccddeeff) - 4031b2: 2002 movs r0, #2 // r0 gets 2 - 4031b4: 4770 bx lr // return - 4031b6: 2910 cmp r1, #16 // 1: compare r1 and 16 - 4031b8: d215 bcs.n 4031e6 // branch to 2: if high or equal - 4031ba: 2900 cmp r1, #0 // check if zero (r1 is address?) - 4031bc: d106 bne.n 4031cc // branch to 3: to if != 0 - 4031be: 6800 ldr r0, [r0, #0] - 4031c0: 0880 lsrs r0, r0, #2 - 4031c2: 0001 lsls r1, r0, #0 - 4031c4: 1e48 subs r0, r1, #1 - 4031c6: 2900 cmp r1, #0 - 4031c8: d1fb bne.n 4031c2 - 4031ca: e7f2 b.n 4031b2 - 4031cc: 2901 cmp r1, #1 // 3: - 4031ce: d118 bne.n 403202 - 4031d0: 6802 ldr r2, [r0, #0] - 4031d2: 6841 ldr r1, [r0, #4] - 4031d4: 3008 adds r0, #8 - 4031d6: 680b ldr r3, [r1, #0] - 4031d8: 4393 bics r3, r2 - 4031da: 6800 ldr r0, [r0, #0] - 4031dc: 4002 ands r2, r0 - 4031de: 431a orrs r2, r3 - 4031e0: 600a str r2, [r1, #0] - 4031e2: 2004 movs r0, #4 - 4031e4: 4770 bx lr - 4031e6: 4a09 ldr r2, [pc, #36] (40320c ) //2: - 4031e8: 4291 cmp r1, r2 - 4031ea: d20a bcs.n 403202 - 4031ec: 4a08 ldr r2, [pc, #32] (403210 ) - 4031ee: 4291 cmp r1, r2 - 4031f0: d007 beq.n 403202 - 4031f2: 0909 lsrs r1, r1, #4 - 4031f4: 1e49 subs r1, r1, #1 - 4031f6: 0609 lsls r1, r1, #24 - 4031f8: 0e09 lsrs r1, r1, #24 - 4031fa: 4a06 ldr r2, [pc, #24] (403214 ) - 4031fc: 6800 ldr r0, [r0, #0] - 4031fe: 5450 strb r0, [r2, r1] - 403200: e7d7 b.n 4031b2 - 403202: 2000 movs r0, #0 - 403204: 4770 bx lr - 403206: 46c0 nop (mov r8, r8) - 403208: 00140001 .word 0x00140001 - 40320c: 0000fff1 .word 0x0000fff1 - 403210: 00000e0f .word 0x00000e0f - 403214: 004052a0 .word 0x004052a0 - -00403218 : - 403218: b570 push {r4, r5, r6, lr} - 40321a: b08a sub sp, #40 - 40321c: 0006 lsls r6, r0, #0 // r0 has 0x1F000 from call in radioinit - 40321e: a804 add r0, sp, #16 - 403220: 2102 movs r1, #2 - 403222: 7001 strb r1, [r0, #0] // *0x1F000 = 2; - 403224: 2101 movs r1, #1 - 403226: 7101 strb r1, [r0, #4] // *0x1F000 = 1; - 403228: f400 fce4 bl 3bf4 // call to ROM: I assume this turns on the NVM reg - 40322c: 482b ldr r0, [pc, #172] (4032dc ) r0 = &u32SystemClock - 40322e: 6800 ldr r0, [r0, #0] // r0 = u32SystemClock - 403230: 2107 movs r1, #7 // r1 = 7 - 403232: f7fd fb8d bl 400950 //divide clock by 7? - 403236: 9001 str r0, [sp, #4] - 403238: 9801 ldr r0, [sp, #4] // loop: r0 has result - 40323a: 1e41 subs r1, r0, #1 // r1 = result - 1 - 40323c: 9101 str r1, [sp, #4] // r1 goes on the stack - 40323e: 2800 cmp r0, #0 // check if it's 0 - 403240: d1fa bne.n 403238 //go to loop if not zero, delay for vreg - 403242: 4669 mov r1, sp - 403244: f403 fd38 bl 6cb8 //call to ROM, looks like it returns 0 on fail and a pointer otherwise - 403248: 2800 cmp r0, #0 //0? - 40324a: d103 bne.n 403254 // branch to return0: - 40324c: 4668 mov r0, sp - 40324e: 7800 ldrb r0, [r0, #0] // r0 gets where the return value points - 403250: 2800 cmp r0, #0 // return 0 if 0 - 403252: d101 bne.n 403258 //otherwise branch to 1: - 403254: 2000 movs r0, #0 //return0: - 403256: e03e b.n 4032d6 // branch to exit: - 403258: 2000 movs r0, #0 //1: r0 = 0 - 40325a: f403 ff13 bl 7084 //call to ROM: might need to dump this one... - 40325e: 2008 movs r0, #8 // r0 gets 8; - 403260: b501 push {r0, lr} // looks like stack setup for call to NVM_Read - 403262: 0033 lsls r3, r6, #0 - 403264: aa04 add r2, sp, #16 //pDest dump this! - 403266: a802 add r0, sp, #8 - 403268: 7801 ldrb r1, [r0, #0] //nvmType - 40326a: 2000 movs r0, #0 //nvmInterface -//extern nvmErr_t NVM_Read(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes); - 40326c: f403 fd7c bl 6d68 - 403270: b002 add sp, #8 - 403272: 2800 cmp r0, #0 // did it return 0? - 403274: d109 bne.n 40328a //if != branch to 2: - 403276: 9802 ldr r0, [sp, #8] //r0 gets something on the stack - 403278: 4919 ldr r1, [pc, #100] (4032e0 ) //r1 = 0x00000abc - 40327a: 4288 cmp r0, r1 - 40327c: d105 bne.n 40328a //branch to 2: if != - 40327e: a802 add r0, sp, #8 - 403280: 88c1 ldrh r1, [r0, #6] - 403282: 22ff movs r2, #255 - 403284: 1c92 adds r2, r2, #2 - 403286: 4291 cmp r1, r2 - 403288: d303 bcc.n 403292 - 40328a: 2001 movs r0, #1 // 2: - 40328c: f403 fefa bl 7084 - 403290: e7e0 b.n 403254 - 403292: 2408 movs r4, #8 - 403294: 8885 ldrh r5, [r0, #4] - 403296: 1f2d subs r5, r5, #4 - 403298: e006 b.n 4032a8 - 40329a: a806 add r0, sp, #24 - 40329c: f7ff ff82 bl 4031a4 // so it looks like flash has entries it exectues... - 4032a0: 2800 cmp r0, #0 - 4032a2: d00f beq.n 4032c4 - 4032a4: 0080 lsls r0, r0, #2 - 4032a6: 1824 adds r4, r4, r0 - 4032a8: 42ac cmp r4, r5 - 4032aa: d210 bcs.n 4032ce - 4032ac: 2010 movs r0, #16 - 4032ae: b501 push {r0, lr} - 4032b0: 1933 adds r3, r6, r4 - 4032b2: aa08 add r2, sp, #32 - 4032b4: a802 add r0, sp, #8 - 4032b6: 7801 ldrb r1, [r0, #0] - 4032b8: 2000 movs r0, #0 - 4032ba: f403 fd55 bl 6d68 - 4032be: b002 add sp, #8 - 4032c0: 2800 cmp r0, #0 - 4032c2: d0ea beq.n 40329a - 4032c4: 2001 movs r0, #1 - 4032c6: f403 fedd bl 7084 - 4032ca: 0020 lsls r0, r4, #0 - 4032cc: e003 b.n 4032d6 - 4032ce: 2001 movs r0, #1 - 4032d0: f403 fed8 bl 7084 - 4032d4: 1d20 adds r0, r4, #4 - 4032d6: b00a add sp, #40 //exit: - 4032d8: e01c b.n 403314 - 4032da: 46c0 nop (mov r8, r8) - 4032dc: 00405448 .word 0x00405448 - 4032e0: 00000abc .word 0x00000abc - -// 000 entries exit initfrom memory - -004032e4 : - 4032e4: b570 push {r4, r5, r6, lr} - 4032e6: 0005 lsls r5, r0, #0 // r5 is first arg - 4032e8: 000c lsls r4, r1, #0 // r4 is second arg - 4032ea: 2600 movs r6, #0 // r6 gets 0 - 4032ec: 2d00 cmp r5, #0 // if r5 is zero - 4032ee: d001 beq.n 4032f4 // then branch to 1 - 4032f0: 0760 lsls r0, r4, #29 // else r4<<29 what does this do to z? some kind of bounds check? max size check? - 4032f2: d002 beq.n 4032fa // branch to 2: if z is set - 4032f4: 2000 movs r0, #0 // 1: r0 get 0 - 4032f6: e00c b.n 403312 // goto end: - 4032f8: 1836 adds r6, r6, r0 // loop: r6 = r6 + r0 - 4032fa: 08a0 lsrs r0, r4, #2 // 2: r0 = r4 >> 2 r0 has the size/4? - 4032fc: 4286 cmp r6, r0 // compare r6 and r0 - 4032fe: d207 bcs.n 403310 // branch to 3: if higher or same //another bounds check? - 403300: 00b0 lsls r0, r6, #2 // r0 = r6 << 2 //align check? - 403302: 1828 adds r0, r5, r0 // r0 = r5 + r0 //r0 has base plus current offset.. maybe - 403304: f7ff ff4e bl 4031a4 // call InitExecturEntry (maybe this does the copy?) //do the entry - 403308: 2800 cmp r0, #0 // compare r0 to 0 - 40330a: d1f5 bne.n 4032f8 // if not 0 branch to loop: - 40330c: 0030 lsls r0, r6, #0 // r0 = r6 - 40330e: e000 b.n 403312 // goto end: - 403310: 00b0 lsls r0, r6, #2 // 3: r0 = r6 << 2 - 403312: 46c0 nop (mov r8, r8) // end: - 403314: 9903 ldr r1, [sp, #12] - 403316: bc70 pop {r4, r5, r6} - 403318: b001 add sp, #4 - 40331a: 4708 bx r1 - -0040331c : - 40331c: b408 push {r3} - 40331e: 4b02 ldr r3, [pc, #8] (403328 ) - 403320: 469c mov ip, r3 - 403322: bc08 pop {r3} - 403324: 4760 bx ip - 403326: 46c0 nop (mov r8, r8) - 403328: 00002c4d .word 0x00002c4d - -0040332c : - 40332c: b408 push {r3} - 40332e: 4b02 ldr r3, [pc, #8] (403338 ) - 403330: 469c mov ip, r3 - 403332: bc08 pop {r3} - 403334: 4760 bx ip - 403336: 46c0 nop (mov r8, r8) - 403338: 00002ccd .word 0x00002ccd - -0040333c : - 40333c: b408 push {r3} - 40333e: 4b02 ldr r3, [pc, #8] (403348 ) - 403340: 469c mov ip, r3 - 403342: bc08 pop {r3} - 403344: 4760 bx ip - 403346: 46c0 nop (mov r8, r8) - 403348: 00002f21 .word 0x00002f21 - -0040334c : - 40334c: b408 push {r3} - 40334e: 4b02 ldr r3, [pc, #8] (403358 ) - 403350: 469c mov ip, r3 - 403352: bc08 pop {r3} - 403354: 4760 bx ip - 403356: 46c0 nop (mov r8, r8) - 403358: 00002e59 .word 0x00002e59 - -0040335c : - 40335c: b408 push {r3} - 40335e: 4b02 ldr r3, [pc, #8] (403368 ) - 403360: 469c mov ip, r3 - 403362: bc08 pop {r3} - 403364: 4760 bx ip - 403366: 46c0 nop (mov r8, r8) - 403368: 00002f71 .word 0x00002f71 - -0040336c : - 40336c: b408 push {r3} - 40336e: 4b02 ldr r3, [pc, #8] (403378 ) - 403370: 469c mov ip, r3 - 403372: bc08 pop {r3} - 403374: 4760 bx ip - 403376: 46c0 nop (mov r8, r8) - 403378: 00002fb9 .word 0x00002fb9 - -0040337c : - 40337c: b408 push {r3} - 40337e: 4b02 ldr r3, [pc, #8] (403388 ) - 403380: 469c mov ip, r3 - 403382: bc08 pop {r3} - 403384: 4760 bx ip - 403386: 46c0 nop (mov r8, r8) - 403388: 00003079 .word 0x00003079 - -0040338c : - 40338c: b510 push {r4, lr} - 40338e: b084 sub sp, #16 - 403390: 0004 lsls r4, r0, #0 - 403392: f000 f841 bl 403418 - 403396: 2000 movs r0, #0 - 403398: a902 add r1, sp, #8 - 40339a: 8088 strh r0, [r1, #4] - 40339c: 2296 movs r2, #150 - 40339e: 0212 lsls r2, r2, #8 - 4033a0: 9202 str r2, [sp, #8] - 4033a2: 80c8 strh r0, [r1, #6] - 4033a4: 4918 ldr r1, [pc, #96] (403408 ) - 4033a6: 2001 movs r0, #1 - 4033a8: f40c fdbc bl ff24 - 4033ac: 2100 movs r1, #0 - 4033ae: 2001 movs r0, #1 - 4033b0: f40c fd9a bl fee8 - 4033b4: 2001 movs r0, #1 - 4033b6: f40c fe05 bl ffc4 - 4033ba: 4914 ldr r1, [pc, #80] (40340c ) - 4033bc: 2000 movs r0, #0 - 4033be: f7ff ffad bl 40331c - 4033c2: a902 add r1, sp, #8 - 4033c4: 2000 movs r0, #0 - 4033c6: f7ff ffb1 bl 40332c - 4033ca: 2105 movs r1, #5 - 4033cc: 2000 movs r0, #0 - 4033ce: f7ff ffb5 bl 40333c - 4033d2: 2105 movs r1, #5 - 4033d4: 2000 movs r0, #0 - 4033d6: f7ff ffb9 bl 40334c - 4033da: 480d ldr r0, [pc, #52] (403410 ) - 4033dc: 9001 str r0, [sp, #4] - 4033de: 480d ldr r0, [pc, #52] (403414 ) - 4033e0: 9000 str r0, [sp, #0] - 4033e2: 4669 mov r1, sp - 4033e4: 2000 movs r0, #0 - 4033e6: f7ff ffb9 bl 40335c - 4033ea: 2000 movs r0, #0 - 4033ec: f7fd fa90 bl 400910 - 4033f0: 2301 movs r3, #1 - 4033f2: 2204 movs r2, #4 - 4033f4: 0021 lsls r1, r4, #0 - 4033f6: 2000 movs r0, #0 - 4033f8: f7ff ffb8 bl 40336c - 4033fc: b004 add sp, #16 - 4033fe: 9801 ldr r0, [sp, #4] - 403400: bc10 pop {r4} - 403402: b001 add sp, #4 - 403404: 4700 bx r0 - 403406: 46c0 nop (mov r8, r8) - -00403408 : - 403408: 00003275 .word 0x00003275 - 40340c: 00005dc0 .word 0x00005dc0 - 403410: 0040346f .word 0x0040346f - 403414: 0040346d .word 0x0040346d - -00403418 : - 403418: 20a0 movs r0, #160 - 40341a: 0280 lsls r0, r0, #10 - 40341c: 4912 ldr r1, [pc, #72] (403468 ) - 40341e: 6a09 ldr r1, [r1, #32] - 403420: 4301 orrs r1, r0 - 403422: 4a11 ldr r2, [pc, #68] (403468 ) - 403424: 6211 str r1, [r2, #32] - 403426: 0011 lsls r1, r2, #0 - 403428: 680a ldr r2, [r1, #0] - 40342a: 4302 orrs r2, r0 - 40342c: 600a str r2, [r1, #0] - 40342e: 6989 ldr r1, [r1, #24] - 403430: 4a0c ldr r2, [pc, #48] (403464 ) - 403432: 400a ands r2, r1 - 403434: 490c ldr r1, [pc, #48] (403468 ) - 403436: 618a str r2, [r1, #24] - 403438: 6508 str r0, [r1, #80] - 40343a: 0008 lsls r0, r1, #0 - 40343c: 21a0 movs r1, #160 - 40343e: 0249 lsls r1, r1, #9 - 403440: 6481 str r1, [r0, #72] - 403442: 6880 ldr r0, [r0, #8] - 403444: 0100 lsls r0, r0, #4 - 403446: 0900 lsrs r0, r0, #4 - 403448: 4907 ldr r1, [pc, #28] (403468 ) - 40344a: 22a0 movs r2, #160 - 40344c: 05d2 lsls r2, r2, #23 - 40344e: 4302 orrs r2, r0 - 403450: 608a str r2, [r1, #8] - 403452: 68c8 ldr r0, [r1, #12] - 403454: 210f movs r1, #15 - 403456: 4388 bics r0, r1 - 403458: 4903 ldr r1, [pc, #12] (403468 ) - 40345a: 2205 movs r2, #5 - 40345c: 4302 orrs r2, r0 - 40345e: 60ca str r2, [r1, #12] - 403460: 4770 bx lr - 403462: 46c0 nop (mov r8, r8) - -00403464 : - 403464: fffd7fff .word 0xfffd7fff - -00403468 : - 403468: 80000010 .word 0x80000010 - -0040346c : - 40346c: e000 b.n 403470 - -0040346e : - 40346e: 4770 bx lr - -00403470 : - 403470: 4915 ldr r1, [pc, #84] (4034c8 ) - 403472: 2201 movs r2, #1 - 403474: 704a strb r2, [r1, #1] - 403476: 8842 ldrh r2, [r0, #2] - 403478: 804a strh r2, [r1, #2] - 40347a: 7800 ldrb r0, [r0, #0] - 40347c: 7008 strb r0, [r1, #0] - 40347e: 4770 bx lr - -00403480 : - 403480: b579 push {r0, r3, r4, r5, r6, lr} - 403482: b082 sub sp, #8 - 403484: 2500 movs r5, #0 - 403486: 2696 movs r6, #150 - 403488: 0076 lsls r6, r6, #1 - -0040348a : - 40348a: 9902 ldr r1, [sp, #8] - 40348c: 1948 adds r0, r1, r5 - 40348e: 7801 ldrb r1, [r0, #0] - 403490: 2900 cmp r1, #0 - 403492: d013 beq.n 4034bc - 403494: 4669 mov r1, sp - 403496: 7800 ldrb r0, [r0, #0] - 403498: 7008 strb r0, [r1, #0] - 40349a: 1c6d adds r5, r5, #1 - 40349c: 062d lsls r5, r5, #24 - 40349e: 0e2d lsrs r5, r5, #24 - 4034a0: 2400 movs r4, #0 - -004034a2 : - 4034a2: 2201 movs r2, #1 - 4034a4: 4669 mov r1, sp - 4034a6: 2000 movs r0, #0 - 4034a8: f7ff ff68 bl 40337c - 4034ac: 2800 cmp r0, #0 - 4034ae: d0ec beq.n 40348a - 4034b0: 42b4 cmp r4, r6 - 4034b2: d2ea bcs.n 40348a - 4034b4: 1c64 adds r4, r4, #1 - 4034b6: 0424 lsls r4, r4, #16 - 4034b8: 0c24 lsrs r4, r4, #16 - 4034ba: e7f2 b.n 4034a2 - -004034bc : - 4034bc: b004 add sp, #16 - 4034be: 9803 ldr r0, [sp, #12] - 4034c0: bc70 pop {r4, r5, r6} - 4034c2: b001 add sp, #4 - 4034c4: 4700 bx r0 - ... - -004034c8 : - 4034c8: 004052a4 .word 0x004052a4 - -004034cc : - 4034cc: e59fc000 ldr ip, [pc, #0] ; 4034d4 - 4034d0: e12fff1c bx ip - 4034d4: 00403f3d .word 0x00403f3d - -004034d8 : - 4034d8: e59fc000 ldr ip, [pc, #0] ; 4034e0 - 4034dc: e12fff1c bx ip - 4034e0: 00400a29 .word 0x00400a29 - -004034e4 <__start_>: - 4034e4: e59f1100 ldr r1, [pc, #256] ; 4035ec <_?0> - 4034e8: e3a000d3 mov r0, #211 ; 0xd3 - 4034ec: e121f000 msr CPSR_c, r0 - 4034f0: e2811f40 add r1, r1, #256 ; 0x100 - 4034f4: e1a0d001 mov sp, r1 - 4034f8: e3a000d2 mov r0, #210 ; 0xd2 - 4034fc: e121f000 msr CPSR_c, r0 - 403500: e2811e40 add r1, r1, #1024 ; 0x400 - 403504: e1a0d001 mov sp, r1 - 403508: e3a000d1 mov r0, #209 ; 0xd1 - 40350c: e121f000 msr CPSR_c, r0 - 403510: e2811e40 add r1, r1, #1024 ; 0x400 - 403514: e1a0d001 mov sp, r1 - 403518: e3a000db mov r0, #219 ; 0xdb - 40351c: e121f000 msr CPSR_c, r0 - 403520: e2811f40 add r1, r1, #256 ; 0x100 - 403524: e1a0d001 mov sp, r1 - 403528: e3a000d7 mov r0, #215 ; 0xd7 - 40352c: e121f000 msr CPSR_c, r0 - 403530: e2811f40 add r1, r1, #256 ; 0x100 - 403534: e1a0d001 mov sp, r1 - 403538: e3a000df mov r0, #223 ; 0xdf - 40353c: e121f000 msr CPSR_c, r0 - 403540: e2811e80 add r1, r1, #2048 ; 0x800 - 403544: e1a0d001 mov sp, r1 - 403548: eb00023b bl 403e3c <__iar_data_init2> - 40354c: e59f009c ldr r0, [pc, #156] ; 4035f0 <_?1> - 403550: e59f309c ldr r3, [pc, #156] ; 4035f4 <_?2> - 403554: e1500003 cmp r0, r3 - 403558: 0a000000 beq 403560 <__call_main> - 40355c: ebf034db bl 108d0 <__rom_data_init> - -00403560 <__call_main>: - 403560: ebffffd9 bl 4034cc - 403564: eaffffdb b 4034d8 - -00403568 <__reserved_>: - 403568: e1b0f00e movs pc, lr - -0040356c <__UndefInstructionHndlr_>: - 40356c: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} - 403570: e59f0080 ldr r0, [pc, #128] ; 4035f8 <_?3> - 403574: e5900000 ldr r0, [r0] - 403578: e3500000 cmp r0, #0 ; 0x0 - 40357c: 11a0e00f movne lr, pc - 403580: 112fff10 bxne r0 - 403584: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} - 403588: e1b0f00e movs pc, lr - -0040358c <__SupervisorHndlr_>: - 40358c: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} - 403590: e59f0064 ldr r0, [pc, #100] ; 4035fc <_?4> - 403594: e5900000 ldr r0, [r0] - 403598: e3500000 cmp r0, #0 ; 0x0 - 40359c: 11a0e00f movne lr, pc - 4035a0: 112fff10 bxne r0 - 4035a4: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} - 4035a8: e1b0f00e movs pc, lr - -004035ac <__PrefetchAbtHndlr_>: - 4035ac: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} - 4035b0: e59f0048 ldr r0, [pc, #72] ; 403600 <_?5> - 4035b4: e5900000 ldr r0, [r0] - 4035b8: e3500000 cmp r0, #0 ; 0x0 - 4035bc: 11a0e00f movne lr, pc - 4035c0: 112fff10 bxne r0 - 4035c4: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} - 4035c8: e25ef004 subs pc, lr, #4 ; 0x4 - -004035cc <__DataAbtHndlr_>: - 4035cc: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} - 4035d0: e59f002c ldr r0, [pc, #44] ; 403604 <_?6> - 4035d4: e5900000 ldr r0, [r0] - 4035d8: e3500000 cmp r0, #0 ; 0x0 - 4035dc: 11a0e00f movne lr, pc - 4035e0: 112fff10 bxne r0 - 4035e4: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} - 4035e8: e25ef004 subs pc, lr, #4 ; 0x4 - -004035ec <_?0>: - 4035ec: 00403f44 .word 0x00403f44 - -004035f0 <_?1>: - 4035f0: 00011788 .word 0x00011788 - -004035f4 <_?2>: - 4035f4: 000117a8 .word 0x000117a8 - -004035f8 <_?3>: - 4035f8: 0040014c .word 0x0040014c - -004035fc <_?4>: - 4035fc: 00400150 .word 0x00400150 - -00403600 <_?5>: - 403600: 00400154 .word 0x00400154 - -00403604 <_?6>: - 403604: 00400158 .word 0x00400158 - -00403608 : - 403608: b580 push {r7, lr} - 40360a: 200f movs r0, #15 - 40360c: f000 f80a bl 403624 - 403610: 200f movs r0, #15 - 403612: f000 f855 bl 4036c0 - 403616: 2100 movs r1, #0 - 403618: 2019 movs r0, #25 - 40361a: f404 ff31 bl 8480 - 40361e: 9801 ldr r0, [sp, #4] - 403620: b002 add sp, #8 - 403622: 4700 bx r0 - -00403624 : - 403624: b510 push {r4, lr} - 403626: 0004 lsls r4, r0, #0 - 403628: 07e0 lsls r0, r4, #31 - 40362a: d50f bpl.n 40364c - 40362c: 2100 movs r1, #0 - 40362e: 2017 movs r0, #23 - 403630: f405 f89c bl 876c - 403634: 2101 movs r1, #1 - 403636: 2017 movs r0, #23 - 403638: f404 ff9c bl 8574 - 40363c: 2101 movs r1, #1 - 40363e: 2017 movs r0, #23 - 403640: f404 feb2 bl 83a8 - 403644: 2101 movs r1, #1 - 403646: 2017 movs r0, #23 - 403648: f404 ff1a bl 8480 - -0040364c : - 40364c: 07a0 lsls r0, r4, #30 - 40364e: d50f bpl.n 403670 - 403650: 2100 movs r1, #0 - 403652: 2018 movs r0, #24 - 403654: f405 f88a bl 876c - 403658: 2101 movs r1, #1 - 40365a: 2018 movs r0, #24 - 40365c: f404 ff8a bl 8574 - 403660: 2101 movs r1, #1 - 403662: 2018 movs r0, #24 - 403664: f404 fea0 bl 83a8 - 403668: 2101 movs r1, #1 - 40366a: 2018 movs r0, #24 - 40366c: f404 ff08 bl 8480 - -00403670 : - 403670: 0760 lsls r0, r4, #29 - 403672: d50f bpl.n 403694 - 403674: 2100 movs r1, #0 - 403676: 2019 movs r0, #25 - 403678: f405 f878 bl 876c - 40367c: 2101 movs r1, #1 - 40367e: 2019 movs r0, #25 - 403680: f404 ff78 bl 8574 - 403684: 2101 movs r1, #1 - 403686: 2019 movs r0, #25 - 403688: f404 fe8e bl 83a8 - 40368c: 2101 movs r1, #1 - 40368e: 2019 movs r0, #25 - 403690: f404 fef6 bl 8480 - -00403694 : - 403694: 0720 lsls r0, r4, #28 - 403696: d50f bpl.n 4036b8 - 403698: 2100 movs r1, #0 - 40369a: 202c movs r0, #44 - 40369c: f405 f866 bl 876c - 4036a0: 2101 movs r1, #1 - 4036a2: 202c movs r0, #44 - 4036a4: f404 ff66 bl 8574 - 4036a8: 2101 movs r1, #1 - 4036aa: 202c movs r0, #44 - 4036ac: f404 fe7c bl 83a8 - 4036b0: 2101 movs r1, #1 - 4036b2: 202c movs r0, #44 - 4036b4: f404 fee4 bl 8480 - -004036b8 : - 4036b8: 9801 ldr r0, [sp, #4] - 4036ba: bc10 pop {r4} - 4036bc: b001 add sp, #4 - 4036be: 4700 bx r0 - -004036c0 : - 4036c0: b510 push {r4, lr} - 4036c2: 0004 lsls r4, r0, #0 - 4036c4: 07e0 lsls r0, r4, #31 - 4036c6: d503 bpl.n 4036d0 - 4036c8: 2100 movs r1, #0 - 4036ca: 2017 movs r0, #23 - 4036cc: f404 fed8 bl 8480 - -004036d0 : - 4036d0: 07a0 lsls r0, r4, #30 - 4036d2: d503 bpl.n 4036dc - 4036d4: 2100 movs r1, #0 - 4036d6: 2018 movs r0, #24 - 4036d8: f404 fed2 bl 8480 - -004036dc : - 4036dc: 0760 lsls r0, r4, #29 - 4036de: d503 bpl.n 4036e8 - 4036e0: 2100 movs r1, #0 - 4036e2: 2019 movs r0, #25 - 4036e4: f404 fecc bl 8480 - -004036e8 : - 4036e8: 0720 lsls r0, r4, #28 - 4036ea: d503 bpl.n 4036f4 - 4036ec: 2100 movs r1, #0 - 4036ee: 202c movs r0, #44 - 4036f0: f404 fec6 bl 8480 - -004036f4 : - 4036f4: 9801 ldr r0, [sp, #4] - 4036f6: bc10 pop {r4} - 4036f8: b001 add sp, #4 - 4036fa: 4700 bx r0 - -004036fc <__iar_packbits_init2>: - 4036fc: e92d43f8 push {r3, r4, r5, r6, r7, r8, r9, lr} - 403700: e5902000 ldr r2, [r0] - 403704: e2801008 add r1, r0, #8 ; 0x8 - 403708: e5900004 ldr r0, [r0, #4] - 40370c: e0812182 add r2, r1, r2, lsl #3 - 403710: e0820180 add r0, r2, r0, lsl #3 - 403714: e3a06000 mov r6, #0 ; 0x0 - 403718: e3a07000 mov r7, #0 ; 0x0 - 40371c: e3a04000 mov r4, #0 ; 0x0 - 403720: e3a05001 mov r5, #1 ; 0x1 - 403724: ea00000a b 403754 <__iar_packbits_init2+0x58> - 403728: e4d68001 ldrb r8, [r6], #1 - 40372c: e15e0009 cmp lr, r9 - 403730: 0a000005 beq 40374c <__iar_packbits_init2+0x50> - 403734: e2844001 add r4, r4, #1 ; 0x1 - 403738: e1a04804 lsl r4, r4, #16 - 40373c: e4ce8001 strb r8, [lr], #1 - 403740: e1b04844 asrs r4, r4, #16 - 403744: 4afffff8 bmi 40372c <__iar_packbits_init2+0x30> - 403748: e3a05001 mov r5, #1 ; 0x1 - 40374c: e15e0009 cmp lr, r9 - 403750: 1a00000a bne 403780 <__iar_packbits_init2+0x84> - 403754: e1520000 cmp r2, r0 - 403758: 1a000001 bne 403764 <__iar_packbits_init2+0x68> - 40375c: e8bd43f2 pop {r1, r4, r5, r6, r7, r8, r9, lr} - 403760: e12fff1e bx lr - 403764: e492e004 ldr lr, [r2], #4 - 403768: e4928004 ldr r8, [r2], #4 - 40376c: e088900e add r9, r8, lr - 403770: eafffff5 b 40374c <__iar_packbits_init2+0x50> - 403774: e4916004 ldr r6, [r1], #4 - 403778: e4917004 ldr r7, [r1], #4 - 40377c: e0877006 add r7, r7, r6 - 403780: e1560007 cmp r6, r7 - 403784: 0afffffa beq 403774 <__iar_packbits_init2+0x78> - 403788: e3550000 cmp r5, #0 ; 0x0 - 40378c: 0a000007 beq 4037b0 <__iar_packbits_init2+0xb4> - 403790: e0d640d1 ldrsb r4, [r6], #1 - 403794: e3a05000 mov r5, #0 ; 0x0 - 403798: ea000002 b 4037a8 <__iar_packbits_init2+0xac> - 40379c: e4916004 ldr r6, [r1], #4 - 4037a0: e4917004 ldr r7, [r1], #4 - 4037a4: e0877006 add r7, r7, r6 - 4037a8: e1560007 cmp r6, r7 - 4037ac: 0afffffa beq 40379c <__iar_packbits_init2+0xa0> - 4037b0: e3540000 cmp r4, #0 ; 0x0 - 4037b4: 4affffdb bmi 403728 <__iar_packbits_init2+0x2c> - 4037b8: e3540000 cmp r4, #0 ; 0x0 - 4037bc: 4affffe1 bmi 403748 <__iar_packbits_init2+0x4c> - 4037c0: e15e0009 cmp lr, r9 - 4037c4: 11560007 cmpne r6, r7 - 4037c8: 0affffdf beq 40374c <__iar_packbits_init2+0x50> - 4037cc: e4d68001 ldrb r8, [r6], #1 - 4037d0: e2444001 sub r4, r4, #1 ; 0x1 - 4037d4: e1a04804 lsl r4, r4, #16 - 4037d8: e4ce8001 strb r8, [lr], #1 - 4037dc: e1a04844 asr r4, r4, #16 - 4037e0: eafffff4 b 4037b8 <__iar_packbits_init2+0xbc> - -004037e4 : - 4037e4: 0000080f .word 0x0000080f - 4037e8: 0000080f .word 0x0000080f - 4037ec: 0000080f .word 0x0000080f - 4037f0: 0000080f .word 0x0000080f - 4037f4: 0000081f .word 0x0000081f - 4037f8: 0000081f .word 0x0000081f - 4037fc: 0000081f .word 0x0000081f - 403800: 0000080f .word 0x0000080f - 403804: 0000080f .word 0x0000080f - 403808: 0000080f .word 0x0000080f - 40380c: 0000001f .word 0x0000001f - 403810: 0000000f .word 0x0000000f - 403814: 0000000f .word 0x0000000f - 403818: 00000816 .word 0x00000816 - 40381c: 0000001b .word 0x0000001b - 403820: 0000000b .word 0x0000000b - 403824: 00000802 .word 0x00000802 - 403828: 00000817 .word 0x00000817 - 40382c: 00000003 .word 0x00000003 - -00403830 : - 403830: 000022c0 .word 0x000022c0 - 403834: 000022c0 .word 0x000022c0 - 403838: 000022c0 .word 0x000022c0 - 40383c: 00002280 .word 0x00002280 - 403840: 00002303 .word 0x00002303 - 403844: 000023c0 .word 0x000023c0 - 403848: 00002880 .word 0x00002880 - 40384c: 000029f0 .word 0x000029f0 - 403850: 000029f0 .word 0x000029f0 - 403854: 000029f0 .word 0x000029f0 - 403858: 000029c0 .word 0x000029c0 - 40385c: 00002bf0 .word 0x00002bf0 - 403860: 000029f0 .word 0x000029f0 - 403864: 000028a0 .word 0x000028a0 - 403868: 00002800 .word 0x00002800 - 40386c: 00002ac0 .word 0x00002ac0 - 403870: 00002880 .word 0x00002880 - 403874: 00002a00 .word 0x00002a00 - 403878: 00002b00 .word 0x00002b00 - -0040387c : - 40387c: 000123a0 .word 0x000123a0 - 403880: 000163a0 .word 0x000163a0 - 403884: 0001a3a0 .word 0x0001a3a0 - 403888: 0001e3a0 .word 0x0001e3a0 - 40388c: 000223a0 .word 0x000223a0 - 403890: 000263a0 .word 0x000263a0 - 403894: 0002a3a0 .word 0x0002a3a0 - 403898: 0002e3a0 .word 0x0002e3a0 - 40389c: 000323a0 .word 0x000323a0 - 4038a0: 000363a0 .word 0x000363a0 - 4038a4: 0003a3a0 .word 0x0003a3a0 - 4038a8: 0003a3a0 .word 0x0003a3a0 - 4038ac: 0003e3a0 .word 0x0003e3a0 - 4038b0: 000423a0 .word 0x000423a0 - 4038b4: 000523a0 .word 0x000523a0 - 4038b8: 000423a0 .word 0x000423a0 - 4038bc: 0004e3a0 .word 0x0004e3a0 - 4038c0: 0004e3a0 .word 0x0004e3a0 - 4038c4: 0004e3a0 .word 0x0004e3a0 - -004038c8 : - 4038c8: 482a ldr r0, [pc, #168] (403974 ) - 4038ca: 7800 ldrb r0, [r0, #0] - 4038cc: 4770 bx lr - ... - -004038d0 : - 4038d0: b570 push {r4, r5, r6, lr} - 4038d2: b082 sub sp, #8 - 4038d4: 2500 movs r5, #0 - 4038d6: 2601 movs r6, #1 - 4038d8: 4c26 ldr r4, [pc, #152] (403974 ) - 4038da: 7860 ldrb r0, [r4, #1] - 4038dc: 2800 cmp r0, #0 - 4038de: d109 bne.n 4038f4 - 4038e0: 7066 strb r6, [r4, #1] - 4038e2: 22a8 movs r2, #168 - 4038e4: 0592 lsls r2, r2, #22 - 4038e6: 2118 movs r1, #24 - 4038e8: 481b ldr r0, [pc, #108] (403958 ) - 4038ea: f7ff fb67 bl 402fbc - 4038ee: 7025 strb r5, [r4, #0] - 4038f0: f7fe fd80 bl 4023f4 - -004038f4 : - 4038f4: 4819 ldr r0, [pc, #100] (40395c ) - 4038f6: 6006 str r6, [r0, #0] - 4038f8: 4669 mov r1, sp - 4038fa: 700d strb r5, [r1, #0] - 4038fc: 466a mov r2, sp - 4038fe: e003 b.n 403908 - -00403900 : - 403900: 4669 mov r1, sp - 403902: 7809 ldrb r1, [r1, #0] - 403904: 1c49 adds r1, r1, #1 - 403906: 7011 strb r1, [r2, #0] - -00403908 : - 403908: 4669 mov r1, sp - 40390a: 7809 ldrb r1, [r1, #0] - 40390c: 2964 cmp r1, #100 - 40390e: d3f7 bcc.n 403900 - 403910: 2102 movs r1, #2 - 403912: 6001 str r1, [r0, #0] - 403914: 6085 str r5, [r0, #8] - 403916: 2103 movs r1, #3 - 403918: 63c1 str r1, [r0, #60] - 40391a: 4811 ldr r0, [pc, #68] (403960 ) - 40391c: 215f movs r1, #95 - 40391e: 6481 str r1, [r0, #72] - 403920: 4910 ldr r1, [pc, #64] (403964 ) - 403922: 64c1 str r1, [r0, #76] - 403924: 2104 movs r1, #4 - 403926: 67c1 str r1, [r0, #124] - 403928: 480f ldr r0, [pc, #60] (403968 ) - 40392a: 4910 ldr r1, [pc, #64] (40396c ) - 40392c: 6001 str r1, [r0, #0] - 40392e: 2125 movs r1, #37 - 403930: 6081 str r1, [r0, #8] - 403932: 480b ldr r0, [pc, #44] (403960 ) - 403934: 21a7 movs r1, #167 - 403936: 6581 str r1, [r0, #88] - 403938: 4808 ldr r0, [pc, #32] (40395c ) - 40393a: 2108 movs r1, #8 - 40393c: 6441 str r1, [r0, #68] - 40393e: 4808 ldr r0, [pc, #32] (403960 ) - 403940: 490b ldr r1, [pc, #44] (403970 ) - 403942: 6001 str r1, [r0, #0] - 403944: 4805 ldr r0, [pc, #20] (40395c ) - 403946: 21d4 movs r1, #212 - 403948: 0389 lsls r1, r1, #14 - 40394a: 6601 str r1, [r0, #96] - 40394c: 2000 movs r0, #0 - 40394e: b002 add sp, #8 - 403950: 9903 ldr r1, [sp, #12] - 403952: bc70 pop {r4, r5, r6} - 403954: b001 add sp, #4 - 403956: 4708 bx r1 - -00403958 : - 403958: 016e3600 .word 0x016e3600 - 40395c: 80004004 .word 0x80004004 - 403960: 800040cc .word 0x800040cc - 403964: 00180012 .word 0x00180012 - 403968: 8000414c .word 0x8000414c - 40396c: 001a0022 .word 0x001a0022 - 403970: 00003815 .word 0x00003815 - -00403974 : - 403974: 004052ad .word 0x004052ad - -00403978 : - 403978: b408 push {r3} - 40397a: 4b02 ldr r3, [pc, #8] (403984 ) - 40397c: 469c mov ip, r3 - 40397e: bc08 pop {r3} - 403980: 4760 bx ip - 403982: 46c0 nop (mov r8, r8) - 403984: 000036d9 .word 0x000036d9 - -00403988 : - 403988: b5f0 push {r4, r5, r6, r7, lr} - 40398a: b083 sub sp, #12 - 40398c: 000f lsls r7, r1, #0 - 40398e: 0014 lsls r4, r2, #0 - 403990: 25f3 movs r5, #243 - 403992: 4005 ands r5, r0 - 403994: 2603 movs r6, #3 - 403996: 2003 movs r0, #3 - 403998: 07e9 lsls r1, r5, #31 - 40399a: d509 bpl.n 4039b0 - 40399c: 4668 mov r0, sp - 40399e: 2101 movs r1, #1 - 4039a0: 7001 strb r1, [r0, #0] - 4039a2: 9801 ldr r0, [sp, #4] - 4039a4: 4330 orrs r0, r6 - 4039a6: 9001 str r0, [sp, #4] - 4039a8: 4668 mov r0, sp - 4039aa: f7ff ffe5 bl 403978 - 4039ae: 2000 movs r0, #0 - -004039b0 : - 4039b0: 2102 movs r1, #2 - 4039b2: 420d tst r5, r1 - 4039b4: d008 beq.n 4039c8 - 4039b6: 4668 mov r0, sp - 4039b8: 7001 strb r1, [r0, #0] - 4039ba: 9801 ldr r0, [sp, #4] - 4039bc: 4306 orrs r6, r0 - 4039be: 9601 str r6, [sp, #4] - 4039c0: 4668 mov r0, sp - 4039c2: f7ff ffd9 bl 403978 - 4039c6: 2000 movs r0, #0 - -004039c8 : - 4039c8: 21f0 movs r1, #240 - 4039ca: 420d tst r5, r1 - 4039cc: d01c beq.n 403a08 - 4039ce: 0028 lsls r0, r5, #0 - 4039d0: 25f0 movs r5, #240 - 4039d2: 4005 ands r5, r0 - 4039d4: 2600 movs r6, #0 - 4039d6: 4668 mov r0, sp - 4039d8: 7006 strb r6, [r0, #0] - 4039da: 0928 lsrs r0, r5, #4 - 4039dc: 9a01 ldr r2, [sp, #4] - 4039de: 230f movs r3, #15 - 4039e0: 439a bics r2, r3 - 4039e2: 4302 orrs r2, r0 - 4039e4: 4b0b ldr r3, [pc, #44] (403a14 ) - 4039e6: 4013 ands r3, r2 - 4039e8: 0300 lsls r0, r0, #12 - 4039ea: 4318 orrs r0, r3 - 4039ec: 4a0a ldr r2, [pc, #40] (403a18 ) - 4039ee: 4002 ands r2, r0 - 4039f0: 0238 lsls r0, r7, #8 - 4039f2: 010b lsls r3, r1, #4 - 4039f4: 4003 ands r3, r0 - 4039f6: 4313 orrs r3, r2 - 4039f8: 0120 lsls r0, r4, #4 - 4039fa: 4001 ands r1, r0 - 4039fc: 4319 orrs r1, r3 - 4039fe: 9101 str r1, [sp, #4] - 403a00: 4668 mov r0, sp - 403a02: f7ff ffb9 bl 403978 - 403a06: 2000 movs r0, #0 - -00403a08 : - 403a08: b003 add sp, #12 - 403a0a: 9904 ldr r1, [sp, #16] - 403a0c: bcf0 pop {r4, r5, r6, r7} - 403a0e: b001 add sp, #4 - 403a10: 4708 bx r1 - 403a12: 46c0 nop (mov r8, r8) - -00403a14 : - 403a14: ffff0fff .word 0xffff0fff - 403a18: fffff00f .word 0xfffff00f - -00403a1c : - 403a1c: b580 push {r7, lr} - 403a1e: 2100 movs r1, #0 - 403a20: 7001 strb r1, [r0, #0] - 403a22: 6841 ldr r1, [r0, #4] - 403a24: 227e movs r2, #126 - 403a26: 700a strb r2, [r1, #0] - 403a28: 6841 ldr r1, [r0, #4] - 403a2a: 22ff movs r2, #255 - 403a2c: 704a strb r2, [r1, #1] - 403a2e: e027 b.n 403a80 - -00403a30 : - 403a30: b580 push {r7, lr} - 403a32: 2810 cmp r0, #16 - 403a34: d301 bcc.n 403a3a - 403a36: 2001 movs r0, #1 - 403a38: e026 b.n 403a88 - -00403a3a : - 403a3a: 0081 lsls r1, r0, #2 r0 is channel number, r1 is offset in words - 403a3c: 4a03 ldr r2, [pc, #12] (403a4c ) r2=0x00403c14 (gaRFSynVCODivF_c) - 403a3e: 5852 ldr r2, [r2, r1] r2 gets gaRFSynVCODivF_c[r1] - 403a40: 4903 ldr r1, [pc, #12] (403a50 ) r1=0x00403c04 (gaRFSynVCODivI_c) - 403a42: 5c09 ldrb r1, [r1, r0] r1 gets gaRFSynVCODivI_c[r0] - 403a44: f7ff fb52 bl 4030ec // SetChannel(chan,gaRFSynVCODivI_c[chan],gaRFSynVCODivF_c[chan]) - 403a48: 2000 movs r0, #0 - 403a4a: e01d b.n 403a88 - -00403a4c : - 403a4c: 00403c14 .word 0x00403c14 - -00403a50 : - 403a50: 00403c04 .word 0x00403c04 - -00403a54 : - 403a54: b580 push {r7, lr} - 403a56: 7802 ldrb r2, [r0, #0] - 403a58: 23f8 movs r3, #248 - 403a5a: 4013 ands r3, r2 - 403a5c: 2201 movs r2, #1 - 403a5e: 431a orrs r2, r3 - 403a60: 7002 strb r2, [r0, #0] - 403a62: e00f b.n 403a84 - -00403a64 : - 403a64: b580 push {r7, lr} - 403a66: 6842 ldr r2, [r0, #4] - 403a68: 2a00 cmp r2, #0 - 403a6a: d101 bne.n 403a70 - 403a6c: 2001 movs r0, #1 - 403a6e: e00b b.n 403a88 - -00403a70 : - 403a70: 7802 ldrb r2, [r0, #0] - 403a72: 23f8 movs r3, #248 - 403a74: 4013 ands r3, r2 - 403a76: 2202 movs r2, #2 - 403a78: 431a orrs r2, r3 - 403a7a: 7002 strb r2, [r0, #0] - 403a7c: 7201 strb r1, [r0, #8] - 403a7e: 46c0 nop (mov r8, r8) - -00403a80 : - 403a80: 2100 movs r1, #0 - 403a82: 46c0 nop (mov r8, r8) - -00403a84 : - 403a84: f7fe fc89 bl 40239a - -00403a88 : - 403a88: 9901 ldr r1, [sp, #4] - 403a8a: b002 add sp, #8 - 403a8c: 4708 bx r1 - -00403a8e : - 403a8e: b580 push {r7, lr} - 403a90: 2813 cmp r0, #19 - 403a92: d301 bcc.n 403a98 - 403a94: 2001 movs r0, #1 - 403a96: e7f7 b.n 403a88 - -00403a98 : - 403a98: 2100 movs r1, #0 - 403a9a: f000 f995 bl 403dc8 - 403a9e: 2000 movs r0, #0 - 403aa0: e7f2 b.n 403a88 - ... - -00403aa4 >: - 403aa4: 41455720 .word 0x41455720 - 403aa8: 52454854 .word 0x52454854 - 403aac: 41545320 .word 0x41545320 - 403ab0: 4e4f4954 .word 0x4e4f4954 - 403ab4: 00000000 .word 0x00000000 - -00403ab8 >: - 403ab8: 6e695720 .word 0x6e695720 - 403abc: 69442064 .word 0x69442064 - 403ac0: 74636572 .word 0x74636572 - 403ac4: 206e6f69 .word 0x206e6f69 - 403ac8: 00000000 .word 0x00000000 - -00403acc >: - 403acc: 20202020 .word 0x20202020 - 403ad0: 646e6957 .word 0x646e6957 - 403ad4: 65705320 .word 0x65705320 - 403ad8: 20206465 .word 0x20206465 - 403adc: 00002020 .word 0x00002020 - -00403ae0 >: - 403ae0: 20202020 .word 0x20202020 - 403ae4: 00000000 .word 0x00000000 - -00403ae8 >: - 403ae8: 20202020 .word 0x20202020 - 403aec: 73657250 .word 0x73657250 - 403af0: 65727573 .word 0x65727573 - 403af4: 00202020 .word 0x00202020 - -00403af8 >: - 403af8: 54202020 .word 0x54202020 - 403afc: 65706d65 .word 0x65706d65 - 403b00: 75746172 .word 0x75746172 - 403b04: 20206572 .word 0x20206572 - 403b08: 00002020 .word 0x00002020 - -00403b0c >: - 403b0c: 74614220 .word 0x74614220 - 403b10: 79726574 .word 0x79726574 - 403b14: 6c6f5620 .word 0x6c6f5620 - 403b18: 65676174 .word 0x65676174 - 403b1c: 00000000 .word 0x00000000 - -00403b20 >: - 403b20: 20202020 .word 0x20202020 - 403b24: 00000020 .word 0x00000020 - -00403b28 >: - 403b28: 6f666542 .word 0x6f666542 - 403b2c: 72206572 .word 0x72206572 - 403b30: 6f696461 .word 0x6f696461 - 403b34: 74657320 .word 0x74657320 - 403b38: 0d0a7075 .word 0x0d0a7075 - 403b3c: 00000000 .word 0x00000000 - -00403b40 >: - 403b40: 6163616d .word 0x6163616d - 403b44: 7361625f .word 0x7361625f - 403b48: 000d0a65 .word 0x000d0a65 - -00403b4c >: - 403b4c: 65646f6d .word 0x65646f6d - 403b50: 7277206d .word 0x7277206d - 403b54: 20657469 .word 0x20657469 - 403b58: 65736162 .word 0x65736162 - 403b5c: 00000d0a .word 0x00000d0a - -00403b60 >: - 403b60: 65646f6d .word 0x65646f6d - 403b64: 6572206d .word 0x6572206d - 403b68: 62206461 .word 0x62206461 - 403b6c: 0a657361 .word 0x0a657361 - 403b70: 0000000d .word 0x0000000d - -00403b74 >: - 403b74: 0a4d5243 .word 0x0a4d5243 - 403b78: 0000000d .word 0x0000000d - -00403b7c >: - 403b7c: 65736572 .word 0x65736572 - 403b80: 64657672 .word 0x64657672 - 403b84: 646f6d20 .word 0x646f6d20 - 403b88: 625f6d65 .word 0x625f6d65 - 403b8c: 0a657361 .word 0x0a657361 - 403b90: 0000000d .word 0x0000000d - -00403b94 >: - 403b94: 65746641 .word 0x65746641 - 403b98: 61722072 .word 0x61722072 - 403b9c: 206f6964 .word 0x206f6964 - 403ba0: 75746573 .word 0x75746573 - 403ba4: 000d0a70 .word 0x000d0a70 - -00403ba8 >: - 403ba8: 20202020 .word 0x20202020 - 403bac: 00204e20 .word 0x00204e20 - -00403bb0 >: - 403bb0: 20202020 .word 0x20202020 - 403bb4: 20204e20 .word 0x20204e20 - 403bb8: 00000000 .word 0x00000000 - -00403bbc >: - 403bbc: 20202020 .word 0x20202020 - 403bc0: 2020454e .word 0x2020454e - 403bc4: 00000000 .word 0x00000000 - -00403bc8 >: - 403bc8: 20202020 .word 0x20202020 - 403bcc: 00204520 .word 0x00204520 - -00403bd0 >: - 403bd0: 20202020 .word 0x20202020 - 403bd4: 20204520 .word 0x20204520 - 403bd8: 00000000 .word 0x00000000 - -00403bdc >: - 403bdc: 20202020 .word 0x20202020 - 403be0: 00204553 .word 0x00204553 - -00403be4 >: - 403be4: 20202020 .word 0x20202020 - 403be8: 00205320 .word 0x00205320 - -00403bec >: - 403bec: 20202020 .word 0x20202020 - 403bf0: 00205753 .word 0x00205753 - -00403bf4 >: - 403bf4: 20202020 .word 0x20202020 - 403bf8: 00205720 .word 0x00205720 - -00403bfc >: - 403bfc: 20202020 .word 0x20202020 - 403c00: 0020574e .word 0x0020574e - -00403c04 : - 403c04: 2f2f2f2f .word 0x2f2f2f2f - 403c08: 2f2f2f2f .word 0x2f2f2f2f - 403c0c: 3030302f .word 0x3030302f - 403c10: 30303030 .word 0x30303030 - -00403c14 : - 403c14: 00355555 .word 0x00355555 - 403c18: 006aaaaa .word 0x006aaaaa - 403c1c: 00a00000 .word 0x00a00000 - 403c20: 00d55555 .word 0x00d55555 - 403c24: 010aaaaa .word 0x010aaaaa - 403c28: 01400000 .word 0x01400000 - 403c2c: 01755555 .word 0x01755555 - 403c30: 01aaaaaa .word 0x01aaaaaa - 403c34: 01e00000 .word 0x01e00000 - 403c38: 00155555 .word 0x00155555 - 403c3c: 004aaaaa .word 0x004aaaaa - 403c40: 00800000 .word 0x00800000 - 403c44: 00b55555 .word 0x00b55555 - 403c48: 00eaaaaa .word 0x00eaaaaa - 403c4c: 01200000 .word 0x01200000 - 403c50: 01555555 .word 0x01555555 - -00403c54 >: - 403c54: 65736162 .word 0x65736162 - 403c58: 20302b20 .word 0x20302b20 - 403c5c: 20202020 .word 0x20202020 - 403c60: 342b2020 .word 0x342b2020 - 403c64: 20202020 .word 0x20202020 - 403c68: 2b202020 .word 0x2b202020 - 403c6c: 20202038 .word 0x20202038 - 403c70: 20202020 .word 0x20202020 - 403c74: 2020632b .word 0x2020632b - 403c78: 20202020 .word 0x20202020 - 403c7c: 30312b20 .word 0x30312b20 - 403c80: 20202020 .word 0x20202020 - 403c84: 312b2020 .word 0x312b2020 - 403c88: 20202034 .word 0x20202034 - 403c8c: 2b202020 .word 0x2b202020 - 403c90: 20203831 .word 0x20203831 - 403c94: 20202020 .word 0x20202020 - 403c98: 2063312b .word 0x2063312b - 403c9c: 20202020 .word 0x20202020 - 403ca0: 000d0a20 .word 0x000d0a20 - -00403ca4 : - 403ca4: 21f0 movs r1, #240 - 403ca6: 0489 lsls r1, r1, #18 - 403ca8: 2080 movs r0, #128 - 403caa: 0600 lsls r0, r0, #24 - 403cac: 6081 str r1, [r0, #8] - 403cae: 2000 movs r0, #0 - 403cb0: 2280 movs r2, #128 - 403cb2: 0612 lsls r2, r2, #24 - 403cb4: 60d0 str r0, [r2, #12] - 403cb6: 6011 str r1, [r2, #0] - 403cb8: 6050 str r0, [r2, #4] - 403cba: 2100 movs r1, #0 - 403cbc: 43c9 mvns r1, r1 - 403cbe: 6111 str r1, [r2, #16] - 403cc0: 6151 str r1, [r2, #20] - 403cc2: 0011 lsls r1, r2, #0 - 403cc4: 6188 str r0, [r1, #24] - 403cc6: 61c8 str r0, [r1, #28] - 403cc8: 6208 str r0, [r1, #32] - 403cca: 6248 str r0, [r1, #36] - 403ccc: 6288 str r0, [r1, #40] - 403cce: 62c8 str r0, [r1, #44] - 403cd0: 22c0 movs r2, #192 - 403cd2: 0192 lsls r2, r2, #6 - 403cd4: 630a str r2, [r1, #48] - 403cd6: 4a05 ldr r2, [pc, #20] (403cec ) - 403cd8: 634a str r2, [r1, #52] - 403cda: 6388 str r0, [r1, #56] - 403cdc: 63c8 str r0, [r1, #60] - 403cde: 0008 lsls r0, r1, #0 - 403ce0: 21c0 movs r1, #192 - 403ce2: 0609 lsls r1, r1, #24 - 403ce4: 6401 str r1, [r0, #64] - 403ce6: 21df movs r1, #223 - 403ce8: 6441 str r1, [r0, #68] - 403cea: 4770 bx lr - -00403cec : - 403cec: 8001c000 .word 0x8001c000 - -00403cf0 : - 403cf0: b538 push {r3, r4, r5, lr} - 403cf2: 24f1 movs r4, #241 - 403cf4: 05a4 lsls r4, r4, #22 - 403cf6: 0022 lsls r2, r4, #0 - 403cf8: 2100 movs r1, #0 - 403cfa: 2000 movs r0, #0 - 403cfc: f404 fb3e bl 837c - 403d00: 2500 movs r5, #0 - 403d02: 43ed mvns r5, r5 - 403d04: 0023 lsls r3, r4, #0 - 403d06: 002a lsls r2, r5, #0 - 403d08: 2103 movs r1, #3 - 403d0a: 2000 movs r0, #0 - 403d0c: f404 fae4 bl 82d8 - 403d10: 0023 lsls r3, r4, #0 - 403d12: 002a lsls r2, r5, #0 - 403d14: 2104 movs r1, #4 - 403d16: 2000 movs r0, #0 - 403d18: f404 fade bl 82d8 - 403d1c: 0023 lsls r3, r4, #0 - 403d1e: 2200 movs r2, #0 - 403d20: 2102 movs r1, #2 - 403d22: 2000 movs r0, #0 - 403d24: f404 fad8 bl 82d8 - 403d28: 0022 lsls r2, r4, #0 - 403d2a: 2100 movs r1, #0 - 403d2c: 2000 movs r0, #0 - 403d2e: f404 fcd9 bl 86e4 - 403d32: b001 add sp, #4 - 403d34: 9802 ldr r0, [sp, #8] - 403d36: bc30 pop {r4, r5} - 403d38: b001 add sp, #4 - 403d3a: 4700 bx r0 - -00403d3c <__aeabi_memset4>: - 403d3c: e1b02c02 lsls r2, r2, #24 - 403d40: e1822422 orr r2, r2, r2, lsr #8 - 403d44: e1822822 orr r2, r2, r2, lsr #16 - -00403d48 <__iar_Memset4_word>: - 403d48: e92d4004 push {r2, lr} - 403d4c: e1a03002 mov r3, r2 - 403d50: e1a0e002 mov lr, r2 - 403d54: e1a0c002 mov ip, r2 - 403d58: e2511010 subs r1, r1, #16 ; 0x10 - 403d5c: 28a0500c stmiacs r0!, {r2, r3, ip, lr} - 403d60: 8afffffc bhi 403d58 <__iar_Memset4_word+0x10> - 403d64: e1b0ce81 lsls ip, r1, #29 - 403d68: 28a0000c stmiacs r0!, {r2, r3} - 403d6c: 44802004 strmi r2, [r0], #4 - 403d70: e1b01f81 lsls r1, r1, #31 - 403d74: 20c020b2 strhcs r2, [r0], #2 - 403d78: 44c02001 strbmi r2, [r0], #1 - 403d7c: e8bd4004 pop {r2, lr} - 403d80: e12fff1e bx lr - -00403d84 : - 403d84: b082 sub sp, #8 - 403d86: 2800 cmp r0, #0 - 403d88: d009 beq.n 403d9e - 403d8a: 4906 ldr r1, [pc, #24] (403da4 ) - -00403d8c : - 403d8c: 1e40 subs r0, r0, #1 - 403d8e: 9100 str r1, [sp, #0] - -00403d90 : - 403d90: 9a00 ldr r2, [sp, #0] - 403d92: 1e53 subs r3, r2, #1 - 403d94: 9300 str r3, [sp, #0] - 403d96: 2a00 cmp r2, #0 - 403d98: d1fa bne.n 403d90 - 403d9a: 2800 cmp r0, #0 - 403d9c: d1f6 bne.n 403d8c - -00403d9e : - 403d9e: b002 add sp, #8 - 403da0: 4770 bx lr - 403da2: 46c0 nop (mov r8, r8) - -00403da4 : - 403da4: 00000d64 .word 0x00000d64 - -00403da8 : - 403da8: b082 sub sp, #8 - 403daa: 2800 cmp r0, #0 - 403dac: d009 beq.n 403dc2 - 403dae: 2103 movs r1, #3 - -00403db0 : - 403db0: 1e40 subs r0, r0, #1 - 403db2: 9100 str r1, [sp, #0] - -00403db4 : - 403db4: 9a00 ldr r2, [sp, #0] - 403db6: 1e53 subs r3, r2, #1 - 403db8: 9300 str r3, [sp, #0] - 403dba: 2a00 cmp r2, #0 - 403dbc: d1fa bne.n 403db4 - 403dbe: 2800 cmp r0, #0 - 403dc0: d1f6 bne.n 403db0 - -00403dc2 : - 403dc2: b002 add sp, #8 - 403dc4: 4770 bx lr - ... - -00403dc8 : - 403dc8: b418 push {r3, r4} - 403dca: 0080 lsls r0, r0, #2 // r0 = r0 * 4 - 403dcc: 4a0a ldr r2, [pc, #40] (403df8 ) // r2 = 0x004037e4 : - 403dce: 5813 ldr r3, [r2, r0] // r3 gets gPSMVAL_c[r0] - 403dd0: 4c0a ldr r4, [pc, #40] (403dfc ) //r4 = 0x8000a014 - 403dd2: 6023 str r3, [r4, #0] // *0x8000a014 = r3 - 403dd4: 1810 adds r0, r2, r0 // add the offset to gPSMVAL_c pointer - 403dd6: 304c adds r0, #76 // point to gPSMVAL_c+76+offset (gPAVAL_c[offset]) - 403dd8: 6802 ldr r2, [r0, #0] // r2 = gPAVAL_c[offset] - 403dda: 2901 cmp r1, #1 // 1 mode? (what's 1 mode?) don't know MLMEPAOutputPower sets r1 to 0 - 403ddc: d103 bne.n 403de6 // branch to 1: - 403dde: 0021 lsls r1, r4, #0 - 403de0: 4b07 ldr r3, [pc, #28] (403e00 ) - 403de2: 4013 ands r3, r2 - 403de4: e002 b.n 403dec - 403de6: 0021 lsls r1, r4, #0 // 1: r1 = r4 = 0x8000a014 - 403de8: 0c8b lsrs r3, r1, #18 // r3 = 0x8000a014 >> 18 - 403dea: 4313 orrs r3, r2 // r3 = (0x8000a014 >> 18) | gPAVAL_c[offset] - 403dec: 60cb str r3, [r1, #12] // *(0x8000a014 + 12) = r3 - 403dee: 6cc0 ldr r0, [r0, #76] // r0 = gPAVAL_c[offset]+76 (gAIMVAL_c) - 403df0: 6408 str r0, [r1, #64] // *(0x8000a014 + 64) = gAIMVAL_c[offset] - 403df2: bc11 pop {r0, r4} - 403df4: 4770 bx lr - 403df6: 46c0 nop (mov r8, r8) - 403df8: 004037e4 .word 0x004037e4 - 403dfc: 8000a014 .word 0x8000a014 - 403e00: ffffdfff .word 0xffffdfff - -00403e04 >: - ... - -00403e18 : - 403e18: 33323130 .word 0x33323130 - 403e1c: 37363534 .word 0x37363534 - 403e20: 42413938 .word 0x42413938 - 403e24: 46454443 .word 0x46454443 - 403e28: 00000000 .word 0x00000000 - -00403e2c >: - 403e2c: 6d726f46 .word 0x6d726f46 - 403e30: 75207461 .word 0x75207461 - 403e34: 6f6e6b6e .word 0x6f6e6b6e - 403e38: 00000077 .word 0x00000077 - -00403e3c <__iar_data_init2>: - 403e3c: e59f0024 ldr r0, [pc, #36] ; 403e68 <__iar_data_init2+0x2c> - 403e40: e92d4010 push {r4, lr} - 403e44: e59f4020 ldr r4, [pc, #32] ; 403e6c <__iar_data_init2+0x30> - 403e48: ea000002 b 403e58 <__iar_data_init2+0x1c> - 403e4c: e4901004 ldr r1, [r0], #4 - 403e50: e1a0e00f mov lr, pc - 403e54: e12fff11 bx r1 - 403e58: e1500004 cmp r0, r4 - 403e5c: 1afffffa bne 403e4c <__iar_data_init2+0x10> - 403e60: e8bd4010 pop {r4, lr} - 403e64: e12fff1e bx lr - 403e68: 00403ec0 .word 0x00403ec0 - 403e6c: 00403eec .word 0x00403eec - -00403e70 : - 403e70: 4806 ldr r0, [pc, #24] (403e8c ) - 403e72: 2100 movs r1, #0 - 403e74: 6001 str r1, [r0, #0] - 403e76: 200f movs r0, #15 - -00403e78 : - 403e78: 4904 ldr r1, [pc, #16] (403e8c ) - 403e7a: 6849 ldr r1, [r1, #4] - 403e7c: 4001 ands r1, r0 - 403e7e: 290e cmp r1, #14 - 403e80: d0fa beq.n 403e78 - 403e82: 4803 ldr r0, [pc, #12] (403e90 ) - 403e84: 4903 ldr r1, [pc, #12] (403e94 ) - 403e86: 6001 str r1, [r0, #0] - 403e88: 4770 bx lr - 403e8a: 46c0 nop (mov r8, r8) - -00403e8c : - 403e8c: 8000400c .word 0x8000400c - 403e90: 800040c4 .word 0x800040c4 - 403e94: 0000ffff .word 0x0000ffff - -00403e98 <__iar_zero_init2>: - 403e98: e3a01000 mov r1, #0 ; 0x0 - 403e9c: ea000003 b 403eb0 <__iar_zero_init2+0x18> - 403ea0: e4902004 ldr r2, [r0], #4 - 403ea4: e2533004 subs r3, r3, #4 ; 0x4 - 403ea8: e4821004 str r1, [r2], #4 - 403eac: 1afffffc bne 403ea4 <__iar_zero_init2+0xc> - 403eb0: e4903004 ldr r3, [r0], #4 - 403eb4: e3530000 cmp r3, #0 ; 0x0 - 403eb8: 1afffff8 bne 403ea0 <__iar_zero_init2+0x8> - 403ebc: e12fff1e bx lr - -00403ec0 : - 403ec0: 00403e98 .word 0x00403e98 - 403ec4: 0000006c .word 0x0000006c - 403ec8: 00405244 .word 0x00405244 - 403ecc: 00000000 .word 0x00000000 - 403ed0: 004036fc .word 0x004036fc - 403ed4: 00000001 .word 0x00000001 - 403ed8: 00000001 .word 0x00000001 - 403edc: 004054a1 .word 0x004054a1 - 403ee0: 00000096 .word 0x00000096 - 403ee4: 004052b0 .word 0x004052b0 - 403ee8: 000001f1 .word 0x000001f1 - -00403eec : - 403eec: 000113ac .word 0x000113ac - 403ef0: 00011028 .word 0x00011028 - 403ef4: 00000001 .word 0x00000001 - 403ef8: 0001146c .word 0x0001146c - 403efc: 00010b74 .word 0x00010b74 - 403f00: 00000002 .word 0x00000002 - -00403f04 : - 403f04: 00402461 .word 0x00402461 - 403f08: 004025c1 .word 0x004025c1 - 403f0c: 004027c1 .word 0x004027c1 - 403f10: 0040297d .word 0x0040297d - -00403f14 : - 403f14: 33323130 .word 0x33323130 - 403f18: 37363534 .word 0x37363534 - 403f1c: 62613938 .word 0x62613938 - 403f20: 66656463 .word 0x66656463 - -00403f24 : - 403f24: 65657266 .word 0x65657266 - 403f28: 6c616373 .word 0x6c616373 - 403f2c: 00000065 .word 0x00000065 - -00403f30 : - 403f30: 4778 bx pc - 403f32: 46c0 nop (mov r8, r8) - -00403f34 <__aeabi_memclr4>: - 403f34: e3b02000 movs r2, #0 ; 0x0 - 403f38: eaffff82 b 403d48 <__iar_Memset4_word> - -00403f3c : - 403f3c: 4770 bx lr - -00403f3e <__iar_via_R0>: - 403f3e: 4700 bx r0 - -00403f40 <__iar_via_R1>: - 403f40: 4708 bx r1 - -Disassembly of section P3: - -00403f44 : - ... - -Disassembly of section P3 zi: - -00405244 : - ... - -00405254 : - ... - -00405255 : - ... - -00405256 : - ... - -00405257 : - ... - -00405258 : - ... - -00405259 : - ... - -0040525a : - ... - -0040525b : - ... - -0040525c : - ... - -0040525d : - ... - -0040525e : - ... - -0040525f : - ... - -00405260 : - ... - -00405262 : - ... - -00405264 : - ... - -00405266 : - ... - -00405268 : - ... - -0040526a : - ... - -0040526c : - ... - -0040526e : - ... - -00405270 : - 405270: 00000000 .word 0x00000000 - -00405274 : - ... - -00405280 : - ... - -00405290 : - ... - -004052a0 : - 4052a0: 00000000 .word 0x00000000 - -004052a4 : - ... - -004052a5 : - ... - -004052a6 : - ... - -004052a8 : - ... - -004052a9 : - ... - -004052aa : - ... - -004052ab : - ... - -004052ac : - ... - -004052ad : - ... - -004052ae : - ... - -Disassembly of section P3 s0: - -004052b0 : - ... - -00405368 : - ... - -00405369 : - ... - -0040536a : - ... - -0040536b : - ... - -0040536c : - ... - -0040536d : - ... - -0040536e : - ... - -0040536f : - ... - -00405370 : - ... - -00405380 : - ... - -00405390 : - 405390: 00000000 .word 0x00000000 - -00405394 : - ... - -004053a4 : - ... - -004053b4 : - 4053b4: 00000000 .word 0x00000000 - -004053b8 : - 4053b8: 00000000 .word 0x00000000 - -004053bc : - 4053bc: 00000000 .word 0x00000000 - -004053c0 : - 4053c0: 00000000 .word 0x00000000 - -004053c4 : - 4053c4: 00000000 .word 0x00000000 - -004053c8 : - ... - -004053f0 : - ... - -00405420 : - ... - -00405448 : - 405448: 00000000 .word 0x00000000 - -0040544c : - 40544c: 00000000 .word 0x00000000 - -00405450 : - ... - -00405451 : - 405451: 00 .byte 0x00 - ... - -00405454 : - ... - -00405464 : - ... - -00405484 : - 405484: 00000000 .word 0x00000000 - -00405488 : - ... - -004054a0 : - ... - -Disassembly of section P2 b0: - -004054a1 : - 4054a1: fd .byte 0xfd - 4054a2: 0000 .short 0x0000 - 4054a4: c60081ff .word 0xc60081ff - 4054a8: b90f0000 .word 0xb90f0000 - 4054ac: c51e0000 .word 0xc51e0000 - 4054b0: 00901200 .word 0x00901200 - 4054b4: 05030080 .word 0x05030080 - 4054b8: 00900480 .word 0x00900480 - 4054bc: 00010180 .word 0x00010180 - 4054c0: 00900800 .word 0x00900800 - 4054c4: 0300fc80 .word 0x0300fc80 - 4054c8: 8000900c .word 0x8000900c - 4054cc: 200400fc .word 0x200400fc - 4054d0: 0c800090 .word 0x0c800090 - 4054d4: 901500fc .word 0x901500fc - 4054d8: 03008000 .word 0x03008000 - 4054dc: 3048c005 .word 0x3048c005 - 4054e0: 0f788000 .word 0x0f788000 - 4054e4: 304c0000 .word 0x304c0000 - 4054e8: 77078000 .word 0x77078000 - 4054ec: 1000fb60 .word 0x1000fb60 - 4054f0: 000161a8 .word 0x000161a8 - 4054f4: 8000a050 .word 0x8000a050 - 4054f8: 0000047b .word 0x0000047b - 4054fc: 8000a054 .word 0x8000a054 - 405500: 0300e07b .word 0x0300e07b - 405504: 17800094 .word 0x17800094 - 405508: 500300fd .word 0x500300fd - 40550c: fc8000a0 .word 0xfc8000a0 - 405510: a0540300 .word 0xa0540300 - 405514: 00fc8000 .word 0x00fc8000 - 405518: 00304805 .word 0x00304805 - 40551c: f60f0080 .word 0xf60f0080 - 405520: 01081400 .word 0x01081400 - 405524: 00021000 .word 0x00021000 - 405528: 20000318 .word 0x20000318 - 40552c: 05280004 .word 0x05280004 - 405530: 00063000 .word 0x00063000 - 405534: Address 0x0000000000405534 is out of bounds. - - -Disassembly of section .debug_abbrev: - -00000000 <.debug_abbrev>: - 0: 03000506 movweq r0, #1286 ; 0x506 - 4: 3b0f3a08 blcc 3ce82c - 8: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - c: 00060216 andeq r0, r6, r6, lsl r2 - 10: 01110100 tsteq r1, r0, lsl #2 - 14: 08250803 stmdaeq r5!, {r0, r1, fp} - 18: 06100b13 undefined - 1c: 00000643 andeq r0, r0, r3, asr #12 - 20: 03011102 movweq r1, #4354 ; 0x1102 - 24: 13082508 movwne r2, #34056 ; 0x8508 - 28: 1201110b andne r1, r1, #-1073741822 ; 0xc0000002 - 2c: e6061001 str r1, [r6], -r1 - 30: 4ee7064e cdpmi 6, 14, cr0, cr7, cr14, {2} - 34: 08000016 stmdaeq r0, {r1, r2, r4} - 38: 08030016 stmdaeq r3, {r1, r2, r4} - 3c: 0f3a1649 svceq 0x003a1649 - 40: 0f390f3b svceq 0x00390f3b - 44: 24030000 strcs r0, [r3] - 48: 0b080300 bleq 200c50 - 4c: 000b3e0f andeq r3, fp, pc, lsl #28 - 50: 012e0500 teqeq lr, r0, lsl #10 - 54: 08031301 stmdaeq r3, {r0, r8, r9, ip} - 58: 0f3b0f3a svceq 0x003b0f3a - 5c: 0b3f0f39 bleq fc3d48 - 60: 01110640 tsteq r1, r0, asr #12 - 64: 00000112 andeq r0, r0, r2, lsl r1 - 68: 03003407 movweq r3, #1031 ; 0x407 - 6c: 3b0f3a08 blcc 3ce894 - 70: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - 74: 00060216 andeq r0, r6, r6, lsl r2 - 78: 00350400 eorseq r0, r5, r0, lsl #8 - 7c: 00001649 andeq r1, r0, r9, asr #12 - 80: 00000000 andeq r0, r0, r0 - 84: 01010117 tsteq r1, r7, lsl r1 - 88: 00164913 andseq r4, r6, r3, lsl r9 - 8c: 01041600 tsteq r4, r0, lsl #12 - 90: 08031301 stmdaeq r3, {r0, r8, r9, ip} - 94: 00000f0b andeq r0, r0, fp, lsl #30 - 98: 01010414 tsteq r1, r4, lsl r4 - 9c: 000f0b13 andeq r0, pc, r3, lsl fp - a0: 00051100 andeq r1, r5, r0, lsl #2 - a4: 0f3a0803 svceq 0x003a0803 - a8: 0f390f3b svceq 0x00390f3b - ac: 00001649 andeq r1, r0, r9, asr #12 - b0: 0300050b movweq r0, #1291 ; 0x50b - b4: 3b0f3a08 blcc 3ce8dc - b8: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - bc: 00060216 andeq r0, r6, r6, lsl r2 - c0: 00050d00 andeq r0, r5, r0, lsl #26 - c4: 06021631 undefined - c8: 0b0a0000 bleq 2800d0 - cc: 11130101 tstne r3, r1, lsl #2 - d0: 00011201 andeq r1, r1, r1, lsl #4 - d4: 000d1a00 andeq r1, sp, r0, lsl #20 - d8: 0b321649 bleq c85a04 - dc: 09380803 ldmdbeq r8!, {r0, r1, fp} - e0: 0f040000 svceq 0x00040000 - e4: 00164900 andseq r4, r6, r0, lsl #18 - e8: 01110100 tsteq r1, r0, lsl #2 - ec: 08250803 stmdaeq r5!, {r0, r1, fp} - f0: 06100b13 undefined - f4: 00000643 andeq r0, r0, r3, asr #12 - f8: 03011107 movweq r1, #4359 ; 0x1107 - fc: 13082508 movwne r2, #34056 ; 0x8508 - 100: 1201110b andne r1, r1, #-1073741822 ; 0xc0000002 - 104: e6061001 str r1, [r6], -r1 - 108: 4ee7064e cdpmi 6, 14, cr0, cr7, cr14, {2} - 10c: 1b000016 blne 16c <__ABT_stack_size+0x6c> - 110: 13010113 movwne r0, #4371 ; 0x1113 - 114: 0f0b0803 svceq 0x000b0803 - 118: 13190000 tstne r9, #0 ; 0x0 - 11c: 0b130101 bleq 4c0528 - 120: 1c00000f stcne 0, cr0, [r0], {15} - 124: 08030016 stmdaeq r3, {r1, r2, r4} - 128: 0f3a1649 svceq 0x003a1649 - 12c: 0f390f3b svceq 0x00390f3b - 130: 1d0c0000 stcne 0, cr0, [ip] - 134: 31130101 tstcc r3, r1, lsl #2 - 138: 12011116 andne r1, r1, #-2147483643 ; 0x80000005 - 13c: 18000001 stmdane r0, {r0} - 140: 0f2f0021 svceq 0x002f0021 - 144: 24020000 strcs r0, [r2] - 148: 0b080300 bleq 200d50 - 14c: 000b3e0f andeq r3, fp, pc, lsl #28 - 150: 00260300 eoreq r0, r6, r0, lsl #6 - 154: 00001649 andeq r1, r0, r9, asr #12 - 158: 03002815 movweq r2, #2069 ; 0x815 - 15c: 000f1c08 andeq r1, pc, r8, lsl #24 - 160: 012e1300 teqeq lr, r0, lsl #6 - 164: 08031301 stmdaeq r3, {r0, r8, r9, ip} - 168: 0f3b0f3a svceq 0x003b0f3a - 16c: 0b3f0f39 bleq fc3e58 - 170: 00000b20 andeq r0, r0, r0, lsr #22 - 174: 01012e08 tsteq r1, r8, lsl #28 - 178: 3a080313 bcc 200dcc - 17c: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 180: 400b3f0f andmi r3, fp, pc, lsl #30 - 184: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 - 188: 10000001 andne r0, r0, r1 - 18c: 1301012e movwne r0, #4398 ; 0x112e - 190: 0f3a0803 svceq 0x003a0803 - 194: 0f390f3b svceq 0x00390f3b - 198: 16490b3f undefined - 19c: 00000b20 andeq r0, r0, r0, lsr #22 - 1a0: 01012e0f tsteq r1, pc, lsl #28 - 1a4: 3a080313 bcc 200df8 - 1a8: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 1ac: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} - 1b0: 11064016 tstne r6, r6, lsl r0 - 1b4: 00011201 andeq r1, r1, r1, lsl #4 - 1b8: 00341200 eorseq r1, r4, r0, lsl #4 - 1bc: 0f3a0803 svceq 0x003a0803 - 1c0: 0f390f3b svceq 0x00390f3b - 1c4: 00001649 andeq r1, r0, r9, asr #12 - 1c8: 03003409 movweq r3, #1033 ; 0x409 - 1cc: 3b0f3a08 blcc 3ce9f4 - 1d0: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - 1d4: 00060216 andeq r0, r6, r6, lsl r2 - 1d8: 00340500 eorseq r0, r4, r0, lsl #10 - 1dc: 16490803 strbne r0, [r9], -r3, lsl #16 - 1e0: 0f3b0f3a svceq 0x003b0f3a - 1e4: 0b3f0f39 bleq fc3ed0 - 1e8: 00000902 andeq r0, r0, r2, lsl #18 - 1ec: 3100340e tstcc r0, lr, lsl #8 - 1f0: 00060216 andeq r0, r6, r6, lsl r2 - 1f4: 00350600 eorseq r0, r5, r0, lsl #12 - 1f8: 00001649 andeq r1, r0, r9, asr #12 - 1fc: 00000000 andeq r0, r0, r0 - 200: 01010409 tsteq r1, r9, lsl #8 - 204: 0b080313 bleq 200e58 - 208: 0700000f streq r0, [r0, -pc] - 20c: 13010104 movwne r0, #4356 ; 0x1104 - 210: 00000f0b andeq r0, r0, fp, lsl #30 - 214: 03000506 movweq r0, #1286 ; 0x506 - 218: 3b0f3a08 blcc 3cea40 - 21c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - 220: 00060216 andeq r0, r6, r6, lsl r2 - 224: 000d0d00 andeq r0, sp, r0, lsl #26 - 228: 0b321649 bleq c85b54 - 22c: 09380803 ldmdbeq r8!, {r0, r1, fp} - 230: 0d0c0000 stceq 0, cr0, [ip] - 234: 32164900 andscc r4, r6, #0 ; 0x0 - 238: 3808030b stmdacc r8, {r0, r1, r3, r8, r9} - 23c: 0d0f0b09 vstreq d0, [pc, #-36] ; 220 <__ABT_stack_size+0x120> - 240: 000f0c0f andeq r0, pc, pc, lsl #24 - 244: 000f0400 andeq r0, pc, r0, lsl #8 - 248: 00001649 andeq r1, r0, r9, asr #12 - 24c: 03011101 movweq r1, #4353 ; 0x1101 - 250: 13082508 movwne r2, #34056 ; 0x8508 - 254: 4306100b movwmi r1, #24587 ; 0x600b - 258: 02000006 andeq r0, r0, #6 ; 0x6 - 25c: 08030111 stmdaeq r3, {r0, r4, r8} - 260: 0b130825 bleq 4c22fc - 264: 01120111 tsteq r2, r1, lsl r1 - 268: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} - 26c: 164ee706 strbne lr, [lr], -r6, lsl #14 - 270: 130b0000 movwne r0, #45056 ; 0xb000 - 274: 0b130101 bleq 4c0680 - 278: 0a00000f beq 2bc <__ABT_stack_size+0x1bc> - 27c: 13010115 movwne r0, #4373 ; 0x1115 - 280: 160f0000 strne r0, [pc], -r0 - 284: 49080300 stmdbmi r8, {r8, r9} - 288: 3b0f3a16 blcc 3ceae8 - 28c: 000f390f andeq r3, pc, pc, lsl #18 - 290: 01170e00 tsteq r7, r0, lsl #28 - 294: 0f0b1301 svceq 0x000b1301 - 298: 24030000 strcs r0, [r3] - 29c: 0b080300 bleq 200ea4 - 2a0: 000b3e0f andeq r3, fp, pc, lsl #28 - 2a4: 00280800 eoreq r0, r8, r0, lsl #16 - 2a8: 0f1c0803 svceq 0x001c0803 - 2ac: 2e050000 cdpcs 0, 0, cr0, cr5, cr0, {0} - 2b0: 03130101 tsteq r3, #1073741824 ; 0x40000000 - 2b4: 3b0f3a08 blcc 3ceadc - 2b8: 3f0f390f svccc 0x000f390f - 2bc: 4016490b andsmi r4, r6, fp, lsl #18 - 2c0: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 - 2c4: 00000001 andeq r0, r0, r1 - 2c8: 03011101 movweq r1, #4353 ; 0x1101 - 2cc: 11082508 tstne r8, r8, lsl #10 - 2d0: 10011201 andne r1, r1, r1, lsl #4 - 2d4: 00000006 andeq r0, r0, r6 - 2d8: 03011101 movweq r1, #4353 ; 0x1101 - 2dc: 13082508 movwne r2, #34056 ; 0x8508 - 2e0: 4306100b movwmi r1, #24587 ; 0x600b - 2e4: 02000006 andeq r0, r0, #6 ; 0x6 - 2e8: 08030111 stmdaeq r3, {r0, r4, r8} - 2ec: 0b130825 bleq 4c2388 - 2f0: 01120111 tsteq r2, r1, lsl r1 - 2f4: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} - 2f8: 164ee706 strbne lr, [lr], -r6, lsl #14 - 2fc: 2e030000 cdpcs 0, 0, cr0, cr3, cr0, {0} - 300: 03130101 tsteq r3, #1073741824 ; 0x40000000 - 304: 3b0f3a08 blcc 3ceb2c - 308: 3f0f390f svccc 0x000f390f - 30c: 1106400b tstne r6, fp - 310: 00011201 andeq r1, r1, r1, lsl #4 - 314: 00000000 andeq r0, r0, r0 - 318: 0101040a tsteq r1, sl, lsl #8 - 31c: 000f0b13 andeq r0, pc, r3, lsl fp - 320: 00050600 andeq r0, r5, r0, lsl #12 - 324: 0f3a0803 svceq 0x003a0803 - 328: 0f390f3b svceq 0x00390f3b - 32c: 06021649 streq r1, [r2], -r9, asr #12 - 330: 11010000 tstne r1, r0 - 334: 25080301 strcs r0, [r8, #-769] - 338: 100b1308 andne r1, fp, r8, lsl #6 - 33c: 00064306 andeq r4, r6, r6, lsl #6 - 340: 01110200 tsteq r1, r0, lsl #4 - 344: 08250803 stmdaeq r5!, {r0, r1, fp} - 348: 01110b13 tsteq r1, r3, lsl fp - 34c: 06100112 undefined - 350: e7064ee6 str r4, [r6, -r6, ror #29] - 354: 0000164e andeq r1, r0, lr, asr #12 - 358: 0300160c movweq r1, #1548 ; 0x60c - 35c: 3a164908 bcc 592784 - 360: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 364: 0500000f streq r0, [r0, #-15] - 368: 1301011d movwne r0, #4381 ; 0x111d - 36c: 01111631 tsteq r1, r1, lsr r6 - 370: 00000112 andeq r0, r0, r2, lsl r1 - 374: 03002403 movweq r2, #1027 ; 0x403 - 378: 3e0f0b08 fmacdcc d0, d15, d8 - 37c: 0b00000b bleq 3b0 <__ABT_stack_size+0x2b0> - 380: 08030028 stmdaeq r3, {r3, r5} - 384: 00000f1c andeq r0, r0, ip, lsl pc - 388: 01012e09 tsteq r1, r9, lsl #28 - 38c: 3a080313 bcc 200fe0 - 390: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 394: 200b3f0f andcs r3, fp, pc, lsl #30 - 398: 0400000b streq r0, [r0], #-11 - 39c: 1301012e movwne r0, #4398 ; 0x112e - 3a0: 0f3a0803 svceq 0x003a0803 - 3a4: 0f390f3b svceq 0x00390f3b - 3a8: 06400b3f undefined - 3ac: 01120111 tsteq r2, r1, lsl r1 - 3b0: 2e070000 cdpcs 0, 0, cr0, cr7, cr0, {0} - 3b4: 03130101 tsteq r3, #1073741824 ; 0x40000000 - 3b8: 3b0f3a08 blcc 3cebe0 - 3bc: 3f0f390f svccc 0x000f390f - 3c0: 4016490b andsmi r4, r6, fp, lsl #18 - 3c4: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 - 3c8: 08000001 stmdaeq r0, {r0} - 3cc: 08030034 stmdaeq r3, {r2, r4, r5} - 3d0: 0f3b0f3a svceq 0x003b0f3a - 3d4: 16490f39 undefined - 3d8: 00000602 andeq r0, r0, r2, lsl #12 - 3dc: 00000000 andeq r0, r0, r0 - 3e0: 01010b08 tsteq r1, r8, lsl #22 - 3e4: 12011113 andne r1, r1, #-1073741820 ; 0xc0000004 - 3e8: 01000001 tsteq r0, r1 - 3ec: 08030111 stmdaeq r3, {r0, r4, r8} - 3f0: 0b130825 bleq 4c248c - 3f4: 06430610 undefined - 3f8: 11040000 tstne r4, r0 - 3fc: 25080301 strcs r0, [r8, #-769] - 400: 110b1308 tstne fp, r8, lsl #6 - 404: 10011201 andne r1, r1, r1, lsl #4 - 408: 064ee606 strbeq lr, [lr], -r6, lsl #12 - 40c: 00164ee7 andseq r4, r6, r7, ror #29 - 410: 00160900 andseq r0, r6, r0, lsl #18 - 414: 16490803 strbne r0, [r9], -r3, lsl #16 - 418: 0f3b0f3a svceq 0x003b0f3a - 41c: 00000f39 andeq r0, r0, r9, lsr pc - 420: 03002402 movweq r2, #1026 ; 0x402 - 424: 3e0f0b08 fmacdcc d0, d15, d8 - 428: 0600000b streq r0, [r0], -fp - 42c: 1301012e movwne r0, #4398 ; 0x112e - 430: 0f3a0803 svceq 0x003a0803 - 434: 0f390f3b svceq 0x00390f3b - 438: 06400b3f undefined - 43c: 01120111 tsteq r2, r1, lsl r1 - 440: 34070000 strcc r0, [r7] - 444: 3a080300 bcc 20104c - 448: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 44c: 0216490f andseq r4, r6, #245760 ; 0x3c000 - 450: 03000006 movweq r0, #6 ; 0x6 - 454: 08030034 stmdaeq r3, {r2, r4, r5} - 458: 0f3a1649 svceq 0x003a1649 - 45c: 0f390f3b svceq 0x00390f3b - 460: 09020b3f stmdbeq r2, {r0, r1, r2, r3, r4, r5, r8, r9, fp} - 464: 35050000 strcc r0, [r5] - 468: 00164900 andseq r4, r6, r0, lsl #18 - 46c: 00000000 andeq r0, r0, r0 - 470: 03011101 movweq r1, #4353 ; 0x1101 - 474: 13082508 movwne r2, #34056 ; 0x8508 - 478: 4306100b movwmi r1, #24587 ; 0x600b - 47c: 02000006 andeq r0, r0, #6 ; 0x6 - 480: 08030111 stmdaeq r3, {r0, r4, r8} - 484: 0b130825 bleq 4c2520 - 488: 01120111 tsteq r2, r1, lsl r1 - 48c: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} - 490: 164ee706 strbne lr, [lr], -r6, lsl #14 - 494: 16090000 strne r0, [r9], -r0 - 498: 49080300 stmdbmi r8, {r8, r9} - 49c: 3b0f3a16 blcc 3cecfc - 4a0: 000f390f andeq r3, pc, pc, lsl #18 - 4a4: 011d0600 tsteq sp, r0, lsl #12 - 4a8: 16311301 ldrtne r1, [r1], -r1, lsl #6 - 4ac: 01120111 tsteq r2, r1, lsl r1 - 4b0: 24030000 strcs r0, [r3] - 4b4: 0b080300 bleq 2010bc - 4b8: 000b3e0f andeq r3, fp, pc, lsl #28 - 4bc: 012e0800 teqeq lr, r0, lsl #16 - 4c0: 08031301 stmdaeq r3, {r0, r8, r9, ip} - 4c4: 0f3b0f3a svceq 0x003b0f3a - 4c8: 0b3f0f39 bleq fc41b4 - 4cc: 00000b20 andeq r0, r0, r0, lsr #22 - 4d0: 01012e05 tsteq r1, r5, lsl #28 - 4d4: 3a080313 bcc 201128 - 4d8: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 4dc: 400b3f0f andmi r3, fp, pc, lsl #30 - 4e0: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 - 4e4: 07000001 streq r0, [r0, -r1] - 4e8: 08030034 stmdaeq r3, {r2, r4, r5} - 4ec: 0f3b0f3a svceq 0x003b0f3a - 4f0: 16490f39 undefined - 4f4: 00000602 andeq r0, r0, r2, lsl #12 - 4f8: 49003504 stmdbmi r0, {r2, r8, sl, ip, sp} - 4fc: 00000016 andeq r0, r0, r6, lsl r0 - 500: 01010116 tsteq r1, r6, lsl r1 - 504: 00164913 andseq r4, r6, r3, lsl r9 - 508: 01041200 tsteq r4, r0, lsl #4 - 50c: 08031301 stmdaeq r3, {r0, r8, r9, ip} - 510: 00000f0b andeq r0, r0, fp, lsl #30 - 514: 03000510 movweq r0, #1296 ; 0x510 - 518: 3b0f3a08 blcc 3ced40 - 51c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - 520: 08000016 stmdaeq r0, {r1, r2, r4} - 524: 08030005 stmdaeq r3, {r0, r2} - 528: 0f3b0f3a svceq 0x003b0f3a - 52c: 16490f39 undefined - 530: 00000602 andeq r0, r0, r2, lsl #12 - 534: 3100050d tstcc r0, sp, lsl #10 - 538: 00060216 andeq r0, r6, r6, lsl r2 - 53c: 00051500 andeq r1, r5, r0, lsl #10 - 540: 00001649 andeq r1, r0, r9, asr #12 - 544: 01010b09 tsteq r1, r9, lsl #22 - 548: 12011113 andne r1, r1, #-1073741820 ; 0xc0000004 - 54c: 1b000001 blne 558 <__FIQ_stack_size+0x158> - 550: 1649000d strbne r0, [r9], -sp - 554: 08030b32 stmdaeq r3, {r1, r4, r5, r8, r9, fp} - 558: 00000938 andeq r0, r0, r8, lsr r9 - 55c: 49000d19 stmdbmi r0, {r0, r3, r4, r8, sl, fp} - 560: 030b3216 movweq r3, #45590 ; 0xb216 - 564: 0b093808 bleq 24e58c - 568: 0c0f0d0f stceq 13, cr0, [pc], {15} - 56c: 0300000f movweq r0, #15 ; 0xf - 570: 1649000f strbne r0, [r9], -pc - 574: 11010000 tstne r1, r0 - 578: 25080301 strcs r0, [r8, #-769] - 57c: 100b1308 andne r1, fp, r8, lsl #6 - 580: 00064306 andeq r4, r6, r6, lsl #6 - 584: 01110600 tsteq r1, r0, lsl #12 - 588: 08250803 stmdaeq r5!, {r0, r1, fp} - 58c: 01110b13 tsteq r1, r3, lsl fp - 590: 06100112 undefined - 594: e7064ee6 str r4, [r6, -r6, ror #29] - 598: 0000164e andeq r1, r0, lr, asr #12 - 59c: 0101131a tsteq r1, sl, lsl r3 - 5a0: 0b080313 bleq 2011f4 - 5a4: 1800000f stmdane r0, {r0, r1, r2, r3} - 5a8: 13010113 movwne r0, #4371 ; 0x1113 - 5ac: 00000f0b andeq r0, r0, fp, lsl #30 - 5b0: 01011514 tsteq r1, r4, lsl r5 - 5b4: 1d000013 stcne 0, cr0, [r0, #-76] - 5b8: 08030016 stmdaeq r3, {r1, r2, r4} - 5bc: 0f3a1649 svceq 0x003a1649 - 5c0: 0f390f3b svceq 0x00390f3b - 5c4: 171c0000 ldrne r0, [ip, -r0] - 5c8: 03130101 tsteq r3, #1073741824 ; 0x40000000 - 5cc: 000f0b08 andeq r0, pc, r8, lsl #22 - 5d0: 011d0c00 tsteq sp, r0, lsl #24 - 5d4: 16311301 ldrtne r1, [r1], -r1, lsl #6 - 5d8: 01120111 tsteq r2, r1, lsl r1 - 5dc: 21170000 tstcs r7, r0 - 5e0: 000f2f00 andeq r2, pc, r0, lsl #30 - 5e4: 00240200 eoreq r0, r4, r0, lsl #4 - 5e8: 0f0b0803 svceq 0x000b0803 - 5ec: 00000b3e andeq r0, r0, lr, lsr fp - 5f0: 49002605 stmdbmi r0, {r0, r2, r9, sl, sp} - 5f4: 13000016 movwne r0, #22 ; 0x16 - 5f8: 08030028 stmdaeq r3, {r3, r5} - 5fc: 00000f1c andeq r0, r0, ip, lsl pc - 600: 01012e0a tsteq r1, sl, lsl #28 - 604: 3a080313 bcc 201258 - 608: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 60c: 400b3f0f andmi r3, fp, pc, lsl #30 - 610: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 - 614: 0f000001 svceq 0x00000001 - 618: 1301012e movwne r0, #4398 ; 0x112e - 61c: 0f3a0803 svceq 0x003a0803 - 620: 0f390f3b svceq 0x00390f3b - 624: 16490b3f undefined - 628: 00000b20 andeq r0, r0, r0, lsr #22 - 62c: 01012e07 tsteq r1, r7, lsl #28 - 630: 3a080313 bcc 201284 - 634: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 638: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} - 63c: 11064016 tstne r6, r6, lsl r0 - 640: 00011201 andeq r1, r1, r1, lsl #4 - 644: 00341100 eorseq r1, r4, r0, lsl #2 - 648: 0f3a0803 svceq 0x003a0803 - 64c: 0f390f3b svceq 0x00390f3b - 650: 00001649 andeq r1, r0, r9, asr #12 - 654: 0300340b movweq r3, #1035 ; 0x40b - 658: 3b0f3a08 blcc 3cee80 - 65c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - 660: 00060216 andeq r0, r6, r6, lsl r2 - 664: 00340400 eorseq r0, r4, r0, lsl #8 - 668: 16490803 strbne r0, [r9], -r3, lsl #16 - 66c: 0f3b0f3a svceq 0x003b0f3a - 670: 0b3f0f39 bleq fc435c - 674: 00000902 andeq r0, r0, r2, lsl #18 - 678: 3100340e tstcc r0, lr, lsl #8 - 67c: 00060216 andeq r0, r6, r6, lsl r2 - 680: 00000000 andeq r0, r0, r0 - 684: 01010116 tsteq r1, r6, lsl r1 - 688: 00164913 andseq r4, r6, r3, lsl r9 - 68c: 01041400 tsteq r4, r0, lsl #8 - 690: 08031301 stmdaeq r3, {r0, r8, r9, ip} - 694: 00000f0b andeq r0, r0, fp, lsl #30 - 698: 03000511 movweq r0, #1297 ; 0x511 - 69c: 3b0f3a08 blcc 3ceec4 - 6a0: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - 6a4: 0a000016 beq 704 <__FIQ_stack_size+0x304> - 6a8: 08030005 stmdaeq r3, {r0, r2} - 6ac: 0f3b0f3a svceq 0x003b0f3a - 6b0: 16490f39 undefined - 6b4: 00000602 andeq r0, r0, r2, lsl #12 - 6b8: 3100050e tstcc r0, lr, lsl #10 - 6bc: 00060216 andeq r0, r6, r6, lsl r2 - 6c0: 010b0c00 tsteq fp, r0, lsl #24 - 6c4: 01111301 tsteq r1, r1, lsl #6 - 6c8: 00000112 andeq r0, r0, r2, lsl r1 - 6cc: 49000d19 stmdbmi r0, {r0, r3, r4, r8, sl, fp} - 6d0: 030b3216 movweq r3, #45590 ; 0xb216 - 6d4: 00093808 andeq r3, r9, r8, lsl #16 - 6d8: 000f0500 andeq r0, pc, r0, lsl #10 - 6dc: 00001649 andeq r1, r0, r9, asr #12 - 6e0: 03011101 movweq r1, #4353 ; 0x1101 - 6e4: 13082508 movwne r2, #34056 ; 0x8508 - 6e8: 4306100b movwmi r1, #24587 ; 0x600b - 6ec: 06000006 streq r0, [r0], -r6 - 6f0: 08030111 stmdaeq r3, {r0, r4, r8} - 6f4: 0b130825 bleq 4c2790 - 6f8: 01120111 tsteq r2, r1, lsl r1 - 6fc: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} - 700: 164ee706 strbne lr, [lr], -r6, lsl #14 - 704: 13180000 tstne r8, #0 ; 0x0 - 708: 03130101 tsteq r3, #1073741824 ; 0x40000000 - 70c: 000f0b08 andeq r0, pc, r8, lsl #22 - 710: 00161a00 andseq r1, r6, r0, lsl #20 - 714: 16490803 strbne r0, [r9], -r3, lsl #16 - 718: 0f3b0f3a svceq 0x003b0f3a - 71c: 00000f39 andeq r0, r0, r9, lsr pc - 720: 01011d0d tsteq r1, sp, lsl #26 - 724: 11163113 tstne r6, r3, lsl r1 - 728: 00011201 andeq r1, r1, r1, lsl #4 - 72c: 00211700 eoreq r1, r1, r0, lsl #14 - 730: 00000f2f andeq r0, r0, pc, lsr #30 - 734: 03002402 movweq r2, #1026 ; 0x402 - 738: 3e0f0b08 fmacdcc d0, d15, d8 - 73c: 0300000b movweq r0, #11 ; 0xb - 740: 16490026 strbne r0, [r9], -r6, lsr #32 - 744: 28150000 ldmdacs r5, {} - 748: 1c080300 stcne 3, cr0, [r8], {0} - 74c: 1200000f andne r0, r0, #15 ; 0xf - 750: 1301012e movwne r0, #4398 ; 0x112e - 754: 0f3a0803 svceq 0x003a0803 - 758: 0f390f3b svceq 0x00390f3b - 75c: 0b200b3f bleq 803460 - 760: 2e080000 cdpcs 0, 0, cr0, cr8, cr0, {0} - 764: 03130101 tsteq r3, #1073741824 ; 0x40000000 - 768: 3b0f3a08 blcc 3cef90 - 76c: 3f0f390f svccc 0x000f390f - 770: 1106400b tstne r6, fp - 774: 00011201 andeq r1, r1, r1, lsl #4 - 778: 012e1000 teqeq lr, r0 - 77c: 08031301 stmdaeq r3, {r0, r8, r9, ip} - 780: 0f3b0f3a svceq 0x003b0f3a - 784: 0b3f0f39 bleq fc4470 - 788: 0b201649 bleq 8060b4 - 78c: 2e090000 cdpcs 0, 0, cr0, cr9, cr0, {0} - 790: 03130101 tsteq r3, #1073741824 ; 0x40000000 - 794: 3b0f3a08 blcc 3cefbc - 798: 3f0f390f svccc 0x000f390f - 79c: 4016490b andsmi r4, r6, fp, lsl #18 - 7a0: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 - 7a4: 13000001 movwne r0, #1 ; 0x1 - 7a8: 08030034 stmdaeq r3, {r2, r4, r5} - 7ac: 0f3b0f3a svceq 0x003b0f3a - 7b0: 16490f39 undefined - 7b4: 340b0000 strcc r0, [fp] - 7b8: 3a080300 bcc 2013c0 - 7bc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 7c0: 0216490f andseq r4, r6, #245760 ; 0x3c000 - 7c4: 04000006 streq r0, [r0], #-6 - 7c8: 08030034 stmdaeq r3, {r2, r4, r5} - 7cc: 0f3a1649 svceq 0x003a1649 - 7d0: 0f390f3b svceq 0x00390f3b - 7d4: 09020b3f stmdbeq r2, {r0, r1, r2, r3, r4, r5, r8, r9, fp} - 7d8: 340f0000 strcc r0, [pc], #0 ; 7e0 <__FIQ_stack_size+0x3e0> - 7dc: 02163100 andseq r3, r6, #0 ; 0x0 - 7e0: 07000006 streq r0, [r0, -r6] - 7e4: 16490035 undefined - 7e8: 00000000 andeq r0, r0, r0 - 7ec: 01010408 tsteq r1, r8, lsl #8 - 7f0: 0b080313 bleq 201444 - 7f4: 0a00000f beq 838 <__USR_stack_size+0x38> - 7f8: 13010104 movwne r0, #4356 ; 0x1104 - 7fc: 00000f0b andeq r0, r0, fp, lsl #30 - 800: 03000505 movweq r0, #1285 ; 0x505 - 804: 3b0f3a08 blcc 3cf02c - 808: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - 80c: 00060216 andeq r0, r6, r6, lsl r2 - 810: 010b0700 tsteq fp, r0, lsl #14 - 814: 01111301 tsteq r1, r1, lsl #6 - 818: 00000112 andeq r0, r0, r2, lsl r1 - 81c: 49000d0d stmdbmi r0, {r0, r2, r3, r8, sl, fp} - 820: 030b3216 movweq r3, #45590 ; 0xb216 - 824: 00093808 andeq r3, r9, r8, lsl #16 - 828: 000d0c00 andeq r0, sp, r0, lsl #24 - 82c: 0b321649 bleq c86158 - 830: 09380803 ldmdbeq r8!, {r0, r1, fp} - 834: 0f0d0f0b svceq 0x000d0f0b - 838: 00000f0c andeq r0, r0, ip, lsl #30 - 83c: 03011101 movweq r1, #4353 ; 0x1101 - 840: 13082508 movwne r2, #34056 ; 0x8508 - 844: 4306100b movwmi r1, #24587 ; 0x600b - 848: 02000006 andeq r0, r0, #6 ; 0x6 - 84c: 08030111 stmdaeq r3, {r0, r4, r8} - 850: 0b130825 bleq 4c28ec - 854: 01120111 tsteq r2, r1, lsl r1 - 858: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} - 85c: 164ee706 strbne lr, [lr], -r6, lsl #14 - 860: 130b0000 movwne r0, #45056 ; 0xb000 - 864: 0b130101 bleq 4c0c70 - 868: 0f00000f svceq 0x0000000f - 86c: 08030016 stmdaeq r3, {r1, r2, r4} - 870: 0f3a1649 svceq 0x003a1649 - 874: 0f390f3b svceq 0x00390f3b - 878: 170e0000 strne r0, [lr, -r0] - 87c: 0b130101 bleq 4c0c88 - 880: 0300000f movweq r0, #15 ; 0xf - 884: 08030024 stmdaeq r3, {r2, r5} - 888: 0b3e0f0b bleq f844bc - 88c: 28090000 stmdacs r9, {} - 890: 1c080300 stcne 3, cr0, [r8], {0} - 894: 0400000f streq r0, [r0], #-15 - 898: 1301012e movwne r0, #4398 ; 0x112e - 89c: 0f3a0803 svceq 0x003a0803 - 8a0: 0f390f3b svceq 0x00390f3b - 8a4: 16490b3f undefined - 8a8: 01110640 tsteq r1, r0, asr #12 - 8ac: 00000112 andeq r0, r0, r2, lsl r1 - 8b0: 03003406 movweq r3, #1030 ; 0x406 - 8b4: 3b0f3a08 blcc 3cf0dc - 8b8: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - 8bc: 00060216 andeq r0, r6, r6, lsl r2 - 8c0: 00000000 andeq r0, r0, r0 - 8c4: 01010116 tsteq r1, r6, lsl r1 - 8c8: 00164913 andseq r4, r6, r3, lsl r9 - 8cc: 01041200 tsteq r4, r0, lsl #4 - 8d0: 0f0b1301 svceq 0x000b1301 - 8d4: 05110000 ldreq r0, [r1] - 8d8: 3a080300 bcc 2014e0 - 8dc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 8e0: 0016490f andseq r4, r6, pc, lsl #18 - 8e4: 00050900 andeq r0, r5, r0, lsl #18 - 8e8: 0f3a0803 svceq 0x003a0803 - 8ec: 0f390f3b svceq 0x00390f3b - 8f0: 06021649 streq r1, [r2], -r9, asr #12 - 8f4: 050b0000 streq r0, [fp] - 8f8: 3a080300 bcc 201500 - 8fc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 900: 0216490f andseq r4, r6, #245760 ; 0x3c000 - 904: 0f000009 svceq 0x00000009 - 908: 16310005 ldrtne r0, [r1], -r5 - 90c: 00000602 andeq r0, r0, r2, lsl #12 - 910: 49000515 stmdbmi r0, {r0, r2, r4, r8, sl} - 914: 0c000016 stceq 0, cr0, [r0], {22} - 918: 1301010b movwne r0, #4363 ; 0x110b - 91c: 01120111 tsteq r2, r1, lsl r1 - 920: 0d190000 ldceq 0, cr0, [r9] - 924: 32164900 andscc r4, r6, #0 ; 0x0 - 928: 3808030b stmdacc r8, {r0, r1, r3, r8, r9} - 92c: 1a000009 bne 958 <__USR_stack_size+0x158> - 930: 1649000d strbne r0, [r9], -sp - 934: 08030b32 stmdaeq r3, {r1, r4, r5, r8, r9, fp} - 938: 0f0b0938 svceq 0x000b0938 - 93c: 0f0c0f0d svceq 0x000c0f0d - 940: 0f060000 svceq 0x00060000 - 944: 00164900 andseq r4, r6, r0, lsl #18 - 948: 01110100 tsteq r1, r0, lsl #2 - 94c: 08250803 stmdaeq r5!, {r0, r1, fp} - 950: 06100b13 undefined - 954: 00000643 andeq r0, r0, r3, asr #12 - 958: 03011105 movweq r1, #4357 ; 0x1105 - 95c: 13082508 movwne r2, #34056 ; 0x8508 - 960: 1201110b andne r1, r1, #-1073741822 ; 0xc0000002 - 964: e6061001 str r1, [r6], -r1 - 968: 4ee7064e cdpmi 6, 14, cr0, cr7, cr14, {2} - 96c: 18000016 stmdane r0, {r1, r2, r4} - 970: 13010113 movwne r0, #4371 ; 0x1113 - 974: 00000f0b andeq r0, r0, fp, lsl #30 - 978: 01011514 tsteq r1, r4, lsl r5 - 97c: 1b000013 blne 9d0 <__USR_stack_size+0x1d0> - 980: 08030016 stmdaeq r3, {r1, r2, r4} - 984: 0f3a1649 svceq 0x003a1649 - 988: 0f390f3b svceq 0x00390f3b - 98c: 1d0e0000 stcne 0, cr0, [lr] - 990: 31130101 tstcc r3, r1, lsl #2 - 994: 12011116 andne r1, r1, #-2147483643 ; 0x80000005 - 998: 17000001 strne r0, [r0, -r1] - 99c: 0f2f0021 svceq 0x002f0021 - 9a0: 24020000 strcs r0, [r2] - 9a4: 0b080300 bleq 2015ac - 9a8: 000b3e0f andeq r3, fp, pc, lsl #28 - 9ac: 00260700 eoreq r0, r6, r0, lsl #14 - 9b0: 00001649 andeq r1, r0, r9, asr #12 - 9b4: 03002813 movweq r2, #2067 ; 0x813 - 9b8: 000f1c08 andeq r1, pc, r8, lsl #24 - 9bc: 012e0800 teqeq lr, r0, lsl #16 - 9c0: 08031301 stmdaeq r3, {r0, r8, r9, ip} - 9c4: 0f3b0f3a svceq 0x003b0f3a - 9c8: 0b3f0f39 bleq fc46b4 - 9cc: 01110640 tsteq r1, r0, asr #12 - 9d0: 00000112 andeq r0, r0, r2, lsl r1 - 9d4: 01012e10 tsteq r1, r0, lsl lr - 9d8: 3a080313 bcc 20162c - 9dc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - 9e0: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} - 9e4: 000b2016 andeq r2, fp, r6, lsl r0 - 9e8: 012e0d00 teqeq lr, r0, lsl #26 - 9ec: 08031301 stmdaeq r3, {r0, r8, r9, ip} - 9f0: 0f3b0f3a svceq 0x003b0f3a - 9f4: 0b3f0f39 bleq fc46e0 - 9f8: 06401649 strbeq r1, [r0], -r9, asr #12 - 9fc: 01120111 tsteq r2, r1, lsl r1 - a00: 340a0000 strcc r0, [sl] - a04: 3a080300 bcc 20160c - a08: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - a0c: 0216490f andseq r4, r6, #245760 ; 0x3c000 - a10: 03000006 movweq r0, #6 ; 0x6 - a14: 08030034 stmdaeq r3, {r2, r4, r5} - a18: 0f3a1649 svceq 0x003a1649 - a1c: 0f390f3b svceq 0x00390f3b - a20: 09020b3f stmdbeq r2, {r0, r1, r2, r3, r4, r5, r8, r9, fp} - a24: 35040000 strcc r0, [r4] - a28: 00164900 andseq r4, r6, r0, lsl #18 - a2c: 00000000 andeq r0, r0, r0 - a30: 0101010c tsteq r1, ip, lsl #2 - a34: 00164913 andseq r4, r6, r3, lsl r9 - a38: 01040800 tsteq r4, r0, lsl #16 - a3c: 08031301 stmdaeq r3, {r0, r8, r9, ip} - a40: 00000f0b andeq r0, r0, fp, lsl #30 - a44: 03000506 movweq r0, #1286 ; 0x506 - a48: 3b0f3a08 blcc 3cf270 - a4c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} - a50: 00060216 andeq r0, r6, r6, lsl r2 - a54: 00050b00 andeq r0, r5, r0, lsl #22 - a58: 00001649 andeq r1, r0, r9, asr #12 - a5c: 01010b07 tsteq r1, r7, lsl #22 - a60: 12011113 andne r1, r1, #-1073741820 ; 0xc0000004 - a64: 0f000001 svceq 0x00000001 - a68: 1649000d strbne r0, [r9], -sp - a6c: 08030b32 stmdaeq r3, {r1, r4, r5, r8, r9, fp} - a70: 00000938 andeq r0, r0, r8, lsr r9 - a74: 49000d10 stmdbmi r0, {r4, r8, sl, fp} - a78: 030b3216 movweq r3, #45590 ; 0xb216 - a7c: 0b093808 bleq 24eaa4 - a80: 0c0f0d0f stceq 13, cr0, [pc], {15} - a84: 0400000f streq r0, [r0], #-15 - a88: 1649000f strbne r0, [r9], -pc - a8c: 11010000 tstne r1, r0 - a90: 25080301 strcs r0, [r8, #-769] - a94: 100b1308 andne r1, fp, r8, lsl #6 - a98: 00064306 andeq r4, r6, r6, lsl #6 - a9c: 01110200 tsteq r1, r0, lsl #4 - aa0: 08250803 stmdaeq r5!, {r0, r1, fp} - aa4: 01110b13 tsteq r1, r3, lsl fp - aa8: 06100112 undefined - aac: e7064ee6 str r4, [r6, -r6, ror #29] - ab0: 0000164e andeq r1, r0, lr, asr #12 - ab4: 0101130e tsteq r1, lr, lsl #6 - ab8: 0b080313 bleq 20170c - abc: 0a00000f beq b00 <__USR_stack_size+0x300> - ac0: 13010115 movwne r0, #4373 ; 0x1115 - ac4: 16110000 ldrne r0, [r1], -r0 - ac8: 49080300 stmdbmi r8, {r8, r9} - acc: 3b0f3a16 blcc 3cf32c - ad0: 000f390f andeq r3, pc, pc, lsl #18 - ad4: 00210d00 eoreq r0, r1, r0, lsl #26 - ad8: 00000f2f andeq r0, r0, pc, lsr #30 - adc: 03002403 movweq r2, #1027 ; 0x403 - ae0: 3e0f0b08 fmacdcc d0, d15, d8 - ae4: 0900000b stmdbeq r0, {r0, r1, r3} - ae8: 08030028 stmdaeq r3, {r3, r5} - aec: 00000f1c andeq r0, r0, ip, lsl pc - af0: 01012e05 tsteq r1, r5, lsl #28 - af4: 3a080313 bcc 201748 - af8: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - afc: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} - b00: 11064016 tstne r6, r6, lsl r0 - b04: 00011201 andeq r1, r1, r1, lsl #4 - b08: 00000000 andeq r0, r0, r0 - b0c: 03011101 movweq r1, #4353 ; 0x1101 - b10: 13082508 movwne r2, #34056 ; 0x8508 - b14: 4306100b movwmi r1, #24587 ; 0x600b - b18: 02000006 andeq r0, r0, #6 ; 0x6 - b1c: 08030111 stmdaeq r3, {r0, r4, r8} - b20: 0b130825 bleq 4c2bbc - b24: 01120111 tsteq r2, r1, lsl r1 - b28: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} - b2c: 164ee706 strbne lr, [lr], -r6, lsl #14 - b30: 16060000 strne r0, [r6], -r0 - b34: 49080300 stmdbmi r8, {r8, r9} - b38: 3b0f3a16 blcc 3cf398 - b3c: 000f390f andeq r3, pc, pc, lsl #18 - b40: 00240300 eoreq r0, r4, r0, lsl #6 - b44: 0f0b0803 svceq 0x000b0803 - b48: 00000b3e andeq r0, r0, lr, lsr fp - b4c: 01012e04 tsteq r1, r4, lsl #28 - b50: 3a080313 bcc 2017a4 - b54: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - b58: 400b3f0f andmi r3, fp, pc, lsl #30 - b5c: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 - b60: 05000001 streq r0, [r0, #-1] - b64: 08030034 stmdaeq r3, {r2, r4, r5} - b68: 0f3b0f3a svceq 0x003b0f3a - b6c: 16490f39 undefined - b70: 00000602 andeq r0, r0, r2, lsl #12 - b74: 00000000 andeq r0, r0, r0 - b78: 01010111 tsteq r1, r1, lsl r1 - b7c: 00164913 andseq r4, r6, r3, lsl r9 - b80: 01040f00 tsteq r4, r0, lsl #30 - b84: 08031301 stmdaeq r3, {r0, r8, r9, ip} - b88: 00000f0b andeq r0, r0, fp, lsl #30 - b8c: 0101040d tsteq r1, sp, lsl #8 - b90: 000f0b13 andeq r0, pc, r3, lsl fp - b94: 00050900 andeq r0, r5, r0, lsl #18 - b98: 0f3a0803 svceq 0x003a0803 - b9c: 0f390f3b svceq 0x00390f3b - ba0: 06021649 streq r1, [r2], -r9, asr #12 - ba4: 0b0b0000 bleq 2c0bac - ba8: 11130101 tstne r3, r1, lsl #2 - bac: 00011201 andeq r1, r1, r1, lsl #4 - bb0: 000d1500 andeq r1, sp, r0, lsl #10 - bb4: 0b321649 bleq c864e0 - bb8: 09380803 ldmdbeq r8!, {r0, r1, fp} - bbc: 0d140000 ldceq 0, cr0, [r4] - bc0: 32164900 andscc r4, r6, #0 ; 0x0 - bc4: 3808030b stmdacc r8, {r0, r1, r3, r8, r9} - bc8: 0d0f0b09 vstreq d0, [pc, #-36] ; bac <__USR_stack_size+0x3ac> - bcc: 000f0c0f andeq r0, pc, pc, lsl #24 - bd0: 000f0300 andeq r0, pc, r0, lsl #6 - bd4: 00001649 andeq r1, r0, r9, asr #12 - bd8: 03011101 movweq r1, #4353 ; 0x1101 - bdc: 13082508 movwne r2, #34056 ; 0x8508 - be0: 4306100b movwmi r1, #24587 ; 0x600b - be4: 06000006 streq r0, [r0], -r6 - be8: 08030111 stmdaeq r3, {r0, r4, r8} - bec: 0b130825 bleq 4c2c88 - bf0: 01120111 tsteq r2, r1, lsl r1 - bf4: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} - bf8: 164ee706 strbne lr, [lr], -r6, lsl #14 - bfc: 13160000 tstne r6, #0 ; 0x0 - c00: 03130101 tsteq r3, #1073741824 ; 0x40000000 - c04: 000f0b08 andeq r0, pc, r8, lsl #22 - c08: 01131300 tsteq r3, r0, lsl #6 - c0c: 0f0b1301 svceq 0x000b1301 - c10: 15100000 ldrne r0, [r0] - c14: 00130101 andseq r0, r3, r1, lsl #2 - c18: 00161800 andseq r1, r6, r0, lsl #16 - c1c: 16490803 strbne r0, [r9], -r3, lsl #16 - c20: 0f3b0f3a svceq 0x003b0f3a - c24: 00000f39 andeq r0, r0, r9, lsr pc - c28: 01011717 tsteq r1, r7, lsl r7 - c2c: 000f0b13 andeq r0, pc, r3, lsl fp - c30: 00211200 eoreq r1, r1, r0, lsl #4 - c34: 00000f2f andeq r0, r0, pc, lsr #30 - c38: 03002402 movweq r2, #1026 ; 0x402 - c3c: 3e0f0b08 fmacdcc d0, d15, d8 - c40: 0500000b streq r0, [r0, #-11] - c44: 16490026 strbne r0, [r9], -r6, lsr #32 - c48: 280e0000 stmdacs lr, {} - c4c: 1c080300 stcne 3, cr0, [r8], {0} - c50: 0800000f stmdaeq r0, {r0, r1, r2, r3} - c54: 1301012e movwne r0, #4398 ; 0x112e - c58: 0f3a0803 svceq 0x003a0803 - c5c: 0f390f3b svceq 0x00390f3b - c60: 06400b3f undefined - c64: 01120111 tsteq r2, r1, lsl r1 - c68: 2e0c0000 cdpcs 0, 0, cr0, cr12, cr0, {0} - c6c: 03130101 tsteq r3, #1073741824 ; 0x40000000 - c70: 3b0f3a08 blcc 3cf498 - c74: 3f0f390f svccc 0x000f390f - c78: 4016490b andsmi r4, r6, fp, lsl #18 - c7c: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 - c80: 0a000001 beq c8c <__USR_stack_size+0x48c> - c84: 08030034 stmdaeq r3, {r2, r4, r5} - c88: 0f3b0f3a svceq 0x003b0f3a - c8c: 16490f39 undefined - c90: 00000602 andeq r0, r0, r2, lsl #12 - c94: 03003404 movweq r3, #1028 ; 0x404 - c98: 3a164908 bcc 5930c0 - c9c: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} - ca0: 020b3f0f andeq r3, fp, #60 ; 0x3c - ca4: 07000009 streq r0, [r0, -r9] - ca8: 16490035 undefined - cac: 00000000 andeq r0, r0, r0 - -Disassembly of section .debug_frame: - -00000000 <.debug_frame>: - 0: 00000028 andeq r0, r0, r8, lsr #32 - 4: ffffffff undefined instruction 0xffffffff - 8: 7c020003 stcvc 0, cr0, [r2], {3} - c: 000d0c0e andeq r0, sp, lr, lsl #24 - 10: 01070007 tsteq r7, r7 - 14: 03070207 movweq r0, #29191 ; 0x7207 - 18: 05080408 streq r0, [r8, #-1032] - 1c: 07080608 streq r0, [r8, -r8, lsl #12] - 20: 09080808 stmdbeq r8, {r3, fp} - 24: 0b080a08 bleq 20284c - 28: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 2c: 00000014 andeq r0, r0, r4, lsl r0 - 30: 00000000 andeq r0, r0, r0 - 34: 00403d84 subeq r3, r0, r4, lsl #27 - 38: 00000024 andeq r0, r0, r4, lsr #32 - 3c: 4d080e41 stcmi 14, cr0, [r8, #-260] - 40: 0000000e andeq r0, r0, lr - 44: 00000028 andeq r0, r0, r8, lsr #32 - 48: ffffffff undefined instruction 0xffffffff - 4c: 7c020003 stcvc 0, cr0, [r2], {3} - 50: 000d0c0e andeq r0, sp, lr, lsl #24 - 54: 01070007 tsteq r7, r7 - 58: 03070207 movweq r0, #29191 ; 0x7207 - 5c: 05080408 streq r0, [r8, #-1032] - 60: 07080608 streq r0, [r8, -r8, lsl #12] - 64: 09080808 stmdbeq r8, {r3, fp} - 68: 0b080a08 bleq 202890 - 6c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 70: 00000014 andeq r0, r0, r4, lsl r0 - 74: 00000044 andeq r0, r0, r4, asr #32 - 78: 00403da8 subeq r3, r0, r8, lsr #27 - 7c: 0000001e andeq r0, r0, lr, lsl r0 - 80: 4d080e41 stcmi 14, cr0, [r8, #-260] - 84: 0000000e andeq r0, r0, lr - 88: 00000028 andeq r0, r0, r8, lsr #32 - 8c: ffffffff undefined instruction 0xffffffff - 90: 7c020003 stcvc 0, cr0, [r2], {3} - 94: 000d0c0e andeq r0, sp, lr, lsl #24 - 98: 01070007 tsteq r7, r7 - 9c: 03070207 movweq r0, #29191 ; 0x7207 - a0: 05080408 streq r0, [r8, #-1032] - a4: 07080608 streq r0, [r8, -r8, lsl #12] - a8: 09080808 stmdbeq r8, {r3, fp} - ac: 0b080a08 bleq 2028d4 - b0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - b4: 00000028 andeq r0, r0, r8, lsr #32 - b8: 00000088 andeq r0, r0, r8, lsl #1 - bc: 00401964 subeq r1, r0, r4, ror #18 - c0: 000001f2 strdeq r0, [r0], -r2 - c4: 84100e41 ldrhi r0, [r0], #-3649 - c8: 8e028503 cfsh32hi mvfx8, mvfx2, #3 - cc: 0ef40201 cdpeq 2, 15, cr0, cr4, cr1, {0} - d0: 0e09410c adfeqe f4, f1, #4.0 - d4: 040e4100 streq r4, [lr], #-256 - d8: 0e41c5c4 cdpeq 5, 4, cr12, cr1, cr4, {6} - dc: 00000000 andeq r0, r0, r0 - e0: 00000028 andeq r0, r0, r8, lsr #32 - e4: ffffffff undefined instruction 0xffffffff - e8: 7c020003 stcvc 0, cr0, [r2], {3} - ec: 000d0c0e andeq r0, sp, lr, lsl #24 - f0: 01070007 tsteq r7, r7 - f4: 03070207 movweq r0, #29191 ; 0x7207 - f8: 05080408 streq r0, [r8, #-1032] - fc: 07080608 streq r0, [r8, -r8, lsl #12] - 100: 09080808 stmdbeq r8, {r3, fp} - 104: 0b080a08 bleq 20292c - 108: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 10c: 00000024 andeq r0, r0, r4, lsr #32 - 110: 000000e0 andeq r0, r0, r0, ror #1 - 114: 00401b56 subeq r1, r0, r6, asr fp - 118: 00000058 andeq r0, r0, r8, asr r0 - 11c: 84100e41 ldrhi r0, [r0], #-3649 - 120: 86038504 strhi r8, [r3], -r4, lsl #10 - 124: 68018e02 stmdavs r1, {r1, r9, sl, fp, pc} - 128: 41000e09 tstmi r0, r9, lsl #28 - 12c: c5c4040e strbgt r0, [r4, #1038] - 130: 000e41c6 andeq r4, lr, r6, asr #3 - 134: 00000028 andeq r0, r0, r8, lsr #32 - 138: ffffffff undefined instruction 0xffffffff - 13c: 7c020003 stcvc 0, cr0, [r2], {3} - 140: 000d0c0e andeq r0, sp, lr, lsl #24 - 144: 01070007 tsteq r7, r7 - 148: 03070207 movweq r0, #29191 ; 0x7207 - 14c: 05080408 streq r0, [r8, #-1032] - 150: 07080608 streq r0, [r8, -r8, lsl #12] - 154: 09080808 stmdbeq r8, {r3, fp} - 158: 0b080a08 bleq 202980 - 15c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 160: 0000001c andeq r0, r0, ip, lsl r0 - 164: 00000134 andeq r0, r0, r4, lsr r1 - 168: 00401bb4 strheq r1, [r0], #-180 - 16c: 00000068 andeq r0, r0, r8, rrx - 170: 84180e41 ldrhi r0, [r8], #-3649 - 174: 86048505 strhi r8, [r4], -r5, lsl #10 - 178: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 17c: 140e7201 strne r7, [lr], #-513 - 180: 00000028 andeq r0, r0, r8, lsr #32 - 184: ffffffff undefined instruction 0xffffffff - 188: 7c020003 stcvc 0, cr0, [r2], {3} - 18c: 000d0c0e andeq r0, sp, lr, lsl #24 - 190: 01070007 tsteq r7, r7 - 194: 03070207 movweq r0, #29191 ; 0x7207 - 198: 05080408 streq r0, [r8, #-1032] - 19c: 07080608 streq r0, [r8, -r8, lsl #12] - 1a0: 09080808 stmdbeq r8, {r3, fp} - 1a4: 0b080a08 bleq 2029cc - 1a8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1ac: 00000020 andeq r0, r0, r0, lsr #32 - 1b0: 00000180 andeq r0, r0, r0, lsl #3 - 1b4: 00401c24 subeq r1, r0, r4, lsr #24 - 1b8: 00000194 muleq r0, r4, r1 - 1bc: 841c0e41 ldrhi r0, [ip], #-3649 - 1c0: 86048505 strhi r8, [r4], -r5, lsl #10 - 1c4: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 1c8: 500e4101 andpl r4, lr, r1, lsl #2 - 1cc: 140ec202 strne ip, [lr], #-514 - 1d0: 00000028 andeq r0, r0, r8, lsr #32 - 1d4: ffffffff undefined instruction 0xffffffff - 1d8: 7c020003 stcvc 0, cr0, [r2], {3} - 1dc: 000d0c0e andeq r0, sp, lr, lsl #24 - 1e0: 01070007 tsteq r7, r7 - 1e4: 03070207 movweq r0, #29191 ; 0x7207 - 1e8: 05080408 streq r0, [r8, #-1032] - 1ec: 07080608 streq r0, [r8, -r8, lsl #12] - 1f0: 09080808 stmdbeq r8, {r3, fp} - 1f4: 0b080a08 bleq 202a1c - 1f8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1fc: 00000024 andeq r0, r0, r4, lsr #32 - 200: 000001d0 ldrdeq r0, [r0], -r0 - 204: 00401dbc strheq r1, [r0], #-220 - 208: 000001f0 strdeq r0, [r0], -r0 - 20c: 84240e41 strthi r0, [r4], #-3649 - 210: 86048505 strhi r8, [r4], -r5, lsl #10 - 214: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 218: 680e4101 stmdavs lr, {r0, r8, lr} - 21c: 140ee602 strne lr, [lr], #-1538 - 220: 00680e41 rsbeq r0, r8, r1, asr #28 - 224: 00000028 andeq r0, r0, r8, lsr #32 - 228: ffffffff undefined instruction 0xffffffff - 22c: 7c020003 stcvc 0, cr0, [r2], {3} - 230: 000d0c0e andeq r0, sp, lr, lsl #24 - 234: 01070007 tsteq r7, r7 - 238: 03070207 movweq r0, #29191 ; 0x7207 - 23c: 05080408 streq r0, [r8, #-1032] - 240: 07080608 streq r0, [r8, -r8, lsl #12] - 244: 09080808 stmdbeq r8, {r3, fp} - 248: 0b080a08 bleq 202a70 - 24c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 250: 00000014 andeq r0, r0, r4, lsl r0 - 254: 00000224 andeq r0, r0, r4, lsr #4 - 258: 00401fac subeq r1, r0, ip, lsr #31 - 25c: 00000050 andeq r0, r0, r0, asr r0 - 260: 84080e41 strhi r0, [r8], #-3649 - 264: 00018e02 andeq r8, r1, r2, lsl #28 - 268: 00000028 andeq r0, r0, r8, lsr #32 - 26c: ffffffff undefined instruction 0xffffffff - 270: 7c020003 stcvc 0, cr0, [r2], {3} - 274: 000d0c0e andeq r0, sp, lr, lsl #24 - 278: 01070007 tsteq r7, r7 - 27c: 03070207 movweq r0, #29191 ; 0x7207 - 280: 05080408 streq r0, [r8, #-1032] - 284: 07080608 streq r0, [r8, -r8, lsl #12] - 288: 09080808 stmdbeq r8, {r3, fp} - 28c: 0b080a08 bleq 202ab4 - 290: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 294: 00000014 andeq r0, r0, r4, lsl r0 - 298: 00000268 andeq r0, r0, r8, ror #4 - 29c: 00401ffc strdeq r1, [r0], #-252 - 2a0: 00000048 andeq r0, r0, r8, asr #32 - 2a4: 84080e41 strhi r0, [r8], #-3649 - 2a8: 00018e02 andeq r8, r1, r2, lsl #28 - 2ac: 00000028 andeq r0, r0, r8, lsr #32 - 2b0: ffffffff undefined instruction 0xffffffff - 2b4: 7c020003 stcvc 0, cr0, [r2], {3} - 2b8: 000d0c0e andeq r0, sp, lr, lsl #24 - 2bc: 01070007 tsteq r7, r7 - 2c0: 03070207 movweq r0, #29191 ; 0x7207 - 2c4: 05080408 streq r0, [r8, #-1032] - 2c8: 07080608 streq r0, [r8, -r8, lsl #12] - 2cc: 09080808 stmdbeq r8, {r3, fp} - 2d0: 0b080a08 bleq 202af8 - 2d4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 2d8: 00000020 andeq r0, r0, r0, lsr #32 - 2dc: 000002ac andeq r0, r0, ip, lsr #5 - 2e0: 00402044 subeq r2, r0, r4, asr #32 - 2e4: 0000003c andeq r0, r0, ip, lsr r0 - 2e8: 0284080e addeq r0, r4, #917504 ; 0xe0000 - 2ec: 095b018e ldmdbeq fp, {r1, r2, r3, r7, r8}^ - 2f0: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} - 2f4: 0e41c404 cdpeq 4, 4, cr12, cr1, cr4, {0} - 2f8: 00000000 andeq r0, r0, r0 - 2fc: 00000028 andeq r0, r0, r8, lsr #32 - 300: ffffffff undefined instruction 0xffffffff - 304: 7c020003 stcvc 0, cr0, [r2], {3} - 308: 000d0c0e andeq r0, sp, lr, lsl #24 - 30c: 01070007 tsteq r7, r7 - 310: 03070207 movweq r0, #29191 ; 0x7207 - 314: 05080408 streq r0, [r8, #-1032] - 318: 07080608 streq r0, [r8, -r8, lsl #12] - 31c: 09080808 stmdbeq r8, {r3, fp} - 320: 0b080a08 bleq 202b48 - 324: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 328: 0000000c andeq r0, r0, ip - 32c: 000002fc strdeq r0, [r0], -ip - 330: 00402084 subeq r2, r0, r4, lsl #1 - 334: 00000020 andeq r0, r0, r0, lsr #32 - 338: 00000028 andeq r0, r0, r8, lsr #32 - 33c: ffffffff undefined instruction 0xffffffff - 340: 7c020003 stcvc 0, cr0, [r2], {3} - 344: 000d0c0e andeq r0, sp, lr, lsl #24 - 348: 01070007 tsteq r7, r7 - 34c: 03070207 movweq r0, #29191 ; 0x7207 - 350: 05080408 streq r0, [r8, #-1032] - 354: 07080608 streq r0, [r8, -r8, lsl #12] - 358: 09080808 stmdbeq r8, {r3, fp} - 35c: 0b080a08 bleq 202b84 - 360: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 364: 00000018 andeq r0, r0, r8, lsl r0 - 368: 00000338 andeq r0, r0, r8, lsr r3 - 36c: 004020a4 subeq r2, r0, r4, lsr #1 - 370: 00000016 andeq r0, r0, r6, lsl r0 - 374: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - 378: 0e094801 cdpeq 8, 0, cr4, cr9, cr1, {0} - 37c: 000e4100 andeq r4, lr, r0, lsl #2 - 380: 00000028 andeq r0, r0, r8, lsr #32 - 384: ffffffff undefined instruction 0xffffffff - 388: 7c020003 stcvc 0, cr0, [r2], {3} - 38c: 000d0c0e andeq r0, sp, lr, lsl #24 - 390: 01070007 tsteq r7, r7 - 394: 03070207 movweq r0, #29191 ; 0x7207 - 398: 05080408 streq r0, [r8, #-1032] - 39c: 07080608 streq r0, [r8, -r8, lsl #12] - 3a0: 09080808 stmdbeq r8, {r3, fp} - 3a4: 0b080a08 bleq 202bcc - 3a8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 3ac: 0000001c andeq r0, r0, ip, lsl r0 - 3b0: 00000380 andeq r0, r0, r0, lsl #7 - 3b4: 004020ba strheq r2, [r0], #-10 - 3b8: 00000128 andeq r0, r0, r8, lsr #2 - 3bc: 84140e41 ldrhi r0, [r4], #-3649 - 3c0: 86048505 strhi r8, [r4], -r5, lsl #10 - 3c4: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 3c8: 200e4101 andcs r4, lr, r1, lsl #2 - 3cc: 00000028 andeq r0, r0, r8, lsr #32 - 3d0: ffffffff undefined instruction 0xffffffff - 3d4: 7c020003 stcvc 0, cr0, [r2], {3} - 3d8: 000d0c0e andeq r0, sp, lr, lsl #24 - 3dc: 01070007 tsteq r7, r7 - 3e0: 03070207 movweq r0, #29191 ; 0x7207 - 3e4: 05080408 streq r0, [r8, #-1032] - 3e8: 07080608 streq r0, [r8, -r8, lsl #12] - 3ec: 09080808 stmdbeq r8, {r3, fp} - 3f0: 0b080a08 bleq 202c18 - 3f4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 3f8: 0000001c andeq r0, r0, ip, lsl r0 - 3fc: 000003cc andeq r0, r0, ip, asr #7 - 400: 004021e4 subeq r2, r0, r4, ror #3 - 404: 000000c8 andeq r0, r0, r8, asr #1 - 408: 84180e41 ldrhi r0, [r8], #-3649 - 40c: 86048505 strhi r8, [r4], -r5, lsl #10 - 410: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 414: 200e4101 andcs r4, lr, r1, lsl #2 - 418: 00000028 andeq r0, r0, r8, lsr #32 - 41c: ffffffff undefined instruction 0xffffffff - 420: 7c020003 stcvc 0, cr0, [r2], {3} - 424: 000d0c0e andeq r0, sp, lr, lsl #24 - 428: 01070007 tsteq r7, r7 - 42c: 03070207 movweq r0, #29191 ; 0x7207 - 430: 05080408 streq r0, [r8, #-1032] - 434: 07080608 streq r0, [r8, -r8, lsl #12] - 438: 09080808 stmdbeq r8, {r3, fp} - 43c: 0b080a08 bleq 202c64 - 440: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 444: 0000001c andeq r0, r0, ip, lsl r0 - 448: 00000418 andeq r0, r0, r8, lsl r4 - 44c: 004022ac subeq r2, r0, ip, lsr #5 - 450: 00000004 andeq r0, r0, r4 - 454: 0584200e streq r2, [r4, #14] - 458: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 - 45c: 018e0287 orreq r0, lr, r7, lsl #5 - 460: 00140e41 andseq r0, r4, r1, asr #28 - 464: 00000028 andeq r0, r0, r8, lsr #32 - 468: ffffffff undefined instruction 0xffffffff - 46c: 7c020003 stcvc 0, cr0, [r2], {3} - 470: 000d0c0e andeq r0, sp, lr, lsl #24 - 474: 01070007 tsteq r7, r7 - 478: 03070207 movweq r0, #29191 ; 0x7207 - 47c: 05080408 streq r0, [r8, #-1032] - 480: 07080608 streq r0, [r8, -r8, lsl #12] - 484: 09080808 stmdbeq r8, {r3, fp} - 488: 0b080a08 bleq 202cb0 - 48c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 490: 00000028 andeq r0, r0, r8, lsr #32 - 494: 00000464 andeq r0, r0, r4, ror #8 - 498: 004022b0 strheq r2, [r0], #-32 - 49c: 0000001c andeq r0, r0, ip, lsl r0 - 4a0: 0584140e streq r1, [r4, #1038] - 4a4: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 - 4a8: 018e0287 orreq r0, lr, r7, lsl #5 - 4ac: 000e0941 andeq r0, lr, r1, asr #18 - 4b0: c4040e41 strgt r0, [r4], #-3649 - 4b4: 41c7c6c5 bicmi ip, r7, r5, asr #13 - 4b8: 0000000e andeq r0, r0, lr - 4bc: 00000028 andeq r0, r0, r8, lsr #32 - 4c0: ffffffff undefined instruction 0xffffffff - 4c4: 7c020003 stcvc 0, cr0, [r2], {3} - 4c8: 000d0c0e andeq r0, sp, lr, lsl #24 - 4cc: 01070007 tsteq r7, r7 - 4d0: 03070207 movweq r0, #29191 ; 0x7207 - 4d4: 05080408 streq r0, [r8, #-1032] - 4d8: 07080608 streq r0, [r8, -r8, lsl #12] - 4dc: 09080808 stmdbeq r8, {r3, fp} - 4e0: 0b080a08 bleq 202d08 - 4e4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 4e8: 00000024 andeq r0, r0, r4, lsr #32 - 4ec: 000004bc strheq r0, [r0], -ip - 4f0: 004022d0 ldrdeq r2, [r0], #-32 - 4f4: 00000046 andeq r0, r0, r6, asr #32 - 4f8: 84100e41 ldrhi r0, [r0], #-3649 - 4fc: 86038504 strhi r8, [r3], -r4, lsl #10 - 500: 5f018e02 svcpl 0x00018e02 - 504: 41000e09 tstmi r0, r9, lsl #28 - 508: c5c4040e strbgt r0, [r4, #1038] - 50c: 000e41c6 andeq r4, lr, r6, asr #3 - 510: 00000028 andeq r0, r0, r8, lsr #32 - 514: ffffffff undefined instruction 0xffffffff - 518: 7c020003 stcvc 0, cr0, [r2], {3} - 51c: 000d0c0e andeq r0, sp, lr, lsl #24 - 520: 01070007 tsteq r7, r7 - 524: 03070207 movweq r0, #29191 ; 0x7207 - 528: 05080408 streq r0, [r8, #-1032] - 52c: 07080608 streq r0, [r8, -r8, lsl #12] - 530: 09080808 stmdbeq r8, {r3, fp} - 534: 0b080a08 bleq 202d5c - 538: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 53c: 00000028 andeq r0, r0, r8, lsr #32 - 540: 00000510 andeq r0, r0, r0, lsl r5 - 544: 00402318 subeq r2, r0, r8, lsl r3 - 548: 00000060 andeq r0, r0, r0, rrx - 54c: 84080e41 strhi r0, [r8], #-3649 - 550: 68018e02 stmdavs r1, {r1, r9, sl, fp, pc} - 554: 41010e09 tstmi r1, r9, lsl #28 - 558: 41c4040e bicmi r0, r4, lr, lsl #8 - 55c: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} - 560: 8e028408 cdphi 4, 0, cr8, cr2, cr8, {0} - 564: 00000001 andeq r0, r0, r1 - 568: 00000028 andeq r0, r0, r8, lsr #32 - 56c: ffffffff undefined instruction 0xffffffff - 570: 7c020003 stcvc 0, cr0, [r2], {3} - 574: 000d0c0e andeq r0, sp, lr, lsl #24 - 578: 01070007 tsteq r7, r7 - 57c: 03070207 movweq r0, #29191 ; 0x7207 - 580: 05080408 streq r0, [r8, #-1032] - 584: 07080608 streq r0, [r8, -r8, lsl #12] - 588: 09080808 stmdbeq r8, {r3, fp} - 58c: 0b080a08 bleq 202db4 - 590: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 594: 00000024 andeq r0, r0, r4, lsr #32 - 598: 00000568 andeq r0, r0, r8, ror #10 - 59c: 00403cf0 strdeq r3, [r0], #-192 - 5a0: 0000004c andeq r0, r0, ip, asr #32 - 5a4: 84100e41 ldrhi r0, [r0], #-3649 - 5a8: 8e028503 cfsh32hi mvfx8, mvfx2, #3 - 5ac: 0c0e6101 stfeqs f6, [lr], {1} - 5b0: 000e0941 andeq r0, lr, r1, asr #18 - 5b4: c4040e41 strgt r0, [r4], #-3649 - 5b8: 000e41c5 andeq r4, lr, r5, asr #3 - 5bc: 00000028 andeq r0, r0, r8, lsr #32 - 5c0: ffffffff undefined instruction 0xffffffff - 5c4: 7c020003 stcvc 0, cr0, [r2], {3} - 5c8: 000d0c0e andeq r0, sp, lr, lsl #24 - 5cc: 01070007 tsteq r7, r7 - 5d0: 03070207 movweq r0, #29191 ; 0x7207 - 5d4: 05080408 streq r0, [r8, #-1032] - 5d8: 07080608 streq r0, [r8, -r8, lsl #12] - 5dc: 09080808 stmdbeq r8, {r3, fp} - 5e0: 0b080a08 bleq 202e08 - 5e4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 5e8: 00000018 andeq r0, r0, r8, lsl r0 - 5ec: 000005bc strheq r0, [r0], -ip - 5f0: 00403608 subeq r3, r0, r8, lsl #12 - 5f4: 0000001c andeq r0, r0, ip, lsl r0 - 5f8: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - 5fc: 0e094b01 fmacdeq d4, d9, d1 - 600: 000e4100 andeq r4, lr, r0, lsl #2 - 604: 00000028 andeq r0, r0, r8, lsr #32 - 608: ffffffff undefined instruction 0xffffffff - 60c: 7c020003 stcvc 0, cr0, [r2], {3} - 610: 000d0c0e andeq r0, sp, lr, lsl #24 - 614: 01070007 tsteq r7, r7 - 618: 03070207 movweq r0, #29191 ; 0x7207 - 61c: 05080408 streq r0, [r8, #-1032] - 620: 07080608 streq r0, [r8, -r8, lsl #12] - 624: 09080808 stmdbeq r8, {r3, fp} - 628: 0b080a08 bleq 202e50 - 62c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 630: 00000020 andeq r0, r0, r0, lsr #32 - 634: 00000604 andeq r0, r0, r4, lsl #12 - 638: 00403624 subeq r3, r0, r4, lsr #12 - 63c: 0000009c muleq r0, ip, r0 - 640: 84080e41 strhi r0, [r8], #-3649 - 644: 02018e02 andeq r8, r1, #32 ; 0x20 - 648: 000e094a andeq r0, lr, sl, asr #18 - 64c: c4040e41 strgt r0, [r4], #-3649 - 650: 00000e41 andeq r0, r0, r1, asr #28 - 654: 00000028 andeq r0, r0, r8, lsr #32 - 658: ffffffff undefined instruction 0xffffffff - 65c: 7c020003 stcvc 0, cr0, [r2], {3} - 660: 000d0c0e andeq r0, sp, lr, lsl #24 - 664: 01070007 tsteq r7, r7 - 668: 03070207 movweq r0, #29191 ; 0x7207 - 66c: 05080408 streq r0, [r8, #-1032] - 670: 07080608 streq r0, [r8, -r8, lsl #12] - 674: 09080808 stmdbeq r8, {r3, fp} - 678: 0b080a08 bleq 202ea0 - 67c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 680: 00000020 andeq r0, r0, r0, lsr #32 - 684: 00000654 andeq r0, r0, r4, asr r6 - 688: 004036c0 subeq r3, r0, r0, asr #13 - 68c: 0000003c andeq r0, r0, ip, lsr r0 - 690: 84080e41 strhi r0, [r8], #-3649 - 694: 5a018e02 bpl 63ea4 - 698: 41000e09 tstmi r0, r9, lsl #28 - 69c: 41c4040e bicmi r0, r4, lr, lsl #8 - 6a0: 0000000e andeq r0, r0, lr - 6a4: 00000028 andeq r0, r0, r8, lsr #32 - 6a8: ffffffff undefined instruction 0xffffffff - 6ac: 7c020003 stcvc 0, cr0, [r2], {3} - 6b0: 000d0c0e andeq r0, sp, lr, lsl #24 - 6b4: 01070007 tsteq r7, r7 - 6b8: 03070207 movweq r0, #29191 ; 0x7207 - 6bc: 05080408 streq r0, [r8, #-1032] - 6c0: 07080608 streq r0, [r8, -r8, lsl #12] - 6c4: 09080808 stmdbeq r8, {r3, fp} - 6c8: 0b080a08 bleq 202ef0 - 6cc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 6d0: 0000002c andeq r0, r0, ip, lsr #32 - 6d4: 000006a4 andeq r0, r0, r4, lsr #13 - 6d8: 00402bb4 strheq r2, [r0], #-180 - 6dc: 00000090 muleq r0, r0, r0 - 6e0: 84100e41 ldrhi r0, [r0], #-3649 - 6e4: 86038504 strhi r8, [r3], -r4, lsl #10 - 6e8: 41018e02 tstmi r1, r2, lsl #28 - 6ec: 0e7a180e cdpeq 8, 7, cr1, cr10, cr14, {0} - 6f0: 0e094110 flteqe f1, r4 - 6f4: 040e4100 streq r4, [lr], #-256 - 6f8: 41c6c5c4 bicmi ip, r6, r4, asr #11 - 6fc: 0000000e andeq r0, r0, lr - 700: 00000028 andeq r0, r0, r8, lsr #32 - 704: ffffffff undefined instruction 0xffffffff - 708: 7c020003 stcvc 0, cr0, [r2], {3} - 70c: 000d0c0e andeq r0, sp, lr, lsl #24 - 710: 01070007 tsteq r7, r7 - 714: 03070207 movweq r0, #29191 ; 0x7207 - 718: 05080408 streq r0, [r8, #-1032] - 71c: 07080608 streq r0, [r8, -r8, lsl #12] - 720: 09080808 stmdbeq r8, {r3, fp} - 724: 0b080a08 bleq 202f4c - 728: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 72c: 0000002c andeq r0, r0, ip, lsr #32 - 730: 00000700 andeq r0, r0, r0, lsl #14 - 734: 00402c44 subeq r2, r0, r4, asr #24 - 738: 00000184 andeq r0, r0, r4, lsl #3 - 73c: 84180e41 ldrhi r0, [r8], #-3649 - 740: 86048505 strhi r8, [r4], -r5, lsl #10 - 744: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 748: 0eb20201 cdpeq 2, 11, cr0, cr2, cr1, {0} - 74c: 0e094114 mcreq 1, 0, r4, cr9, cr4, {0} - 750: 040e4100 streq r4, [lr], #-256 - 754: c7c6c5c4 strbgt ip, [r6, r4, asr #11] - 758: 00000e41 andeq r0, r0, r1, asr #28 - 75c: 00000028 andeq r0, r0, r8, lsr #32 - 760: ffffffff undefined instruction 0xffffffff - 764: 7c020003 stcvc 0, cr0, [r2], {3} - 768: 000d0c0e andeq r0, sp, lr, lsl #24 - 76c: 01070007 tsteq r7, r7 - 770: 03070207 movweq r0, #29191 ; 0x7207 - 774: 05080408 streq r0, [r8, #-1032] - 778: 07080608 streq r0, [r8, -r8, lsl #12] - 77c: 09080808 stmdbeq r8, {r3, fp} - 780: 0b080a08 bleq 202fa8 - 784: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 788: 0000000c andeq r0, r0, ip - 78c: 0000075c andeq r0, r0, ip, asr r7 - 790: 00403ca4 subeq r3, r0, r4, lsr #25 - 794: 0000004c andeq r0, r0, ip, asr #32 - 798: 00000028 andeq r0, r0, r8, lsr #32 - 79c: ffffffff undefined instruction 0xffffffff - 7a0: 7c020003 stcvc 0, cr0, [r2], {3} - 7a4: 000d0c0e andeq r0, sp, lr, lsl #24 - 7a8: 01070007 tsteq r7, r7 - 7ac: 03070207 movweq r0, #29191 ; 0x7207 - 7b0: 05080408 streq r0, [r8, #-1032] - 7b4: 07080608 streq r0, [r8, -r8, lsl #12] - 7b8: 09080808 stmdbeq r8, {r3, fp} - 7bc: 0b080a08 bleq 202fe4 - 7c0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 7c4: 00000018 andeq r0, r0, r8, lsl r0 - 7c8: 00000798 muleq r0, r8, r7 - 7cc: 00402378 subeq r2, r0, r8, ror r3 - 7d0: 00000022 andeq r0, r0, r2, lsr #32 - 7d4: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - 7d8: 0e094e01 cdpeq 14, 0, cr4, cr9, cr1, {0} - 7dc: 000e4100 andeq r4, lr, r0, lsl #2 - 7e0: 00000028 andeq r0, r0, r8, lsr #32 - 7e4: ffffffff undefined instruction 0xffffffff - 7e8: 7c020003 stcvc 0, cr0, [r2], {3} - 7ec: 000d0c0e andeq r0, sp, lr, lsl #24 - 7f0: 01070007 tsteq r7, r7 - 7f4: 03070207 movweq r0, #29191 ; 0x7207 - 7f8: 05080408 streq r0, [r8, #-1032] - 7fc: 07080608 streq r0, [r8, -r8, lsl #12] - 800: 09080808 stmdbeq r8, {r3, fp} - 804: 0b080a08 bleq 20302c - 808: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 80c: 00000024 andeq r0, r0, r4, lsr #32 - 810: 000007e0 andeq r0, r0, r0, ror #15 - 814: 0040239a umaaleq r2, r0, sl, r3 - 818: 00000034 andeq r0, r0, r4, lsr r0 - 81c: 84080e41 strhi r0, [r8], #-3649 - 820: 49018502 stmdbmi r1, {r1, r8, sl, pc} - 824: c5c4000e strbgt r0, [r4, #14] - 828: 84080e41 strhi r0, [r8], #-3649 - 82c: 4e018502 cfsh32mi mvfx8, mvfx1, #2 - 830: c5c4000e strbgt r0, [r4, #14] - 834: 00000028 andeq r0, r0, r8, lsr #32 - 838: ffffffff undefined instruction 0xffffffff - 83c: 7c020003 stcvc 0, cr0, [r2], {3} - 840: 000d0c0e andeq r0, sp, lr, lsl #24 - 844: 01070007 tsteq r7, r7 - 848: 03070207 movweq r0, #29191 ; 0x7207 - 84c: 05080408 streq r0, [r8, #-1032] - 850: 07080608 streq r0, [r8, -r8, lsl #12] - 854: 09080808 stmdbeq r8, {r3, fp} - 858: 0b080a08 bleq 203080 - 85c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 860: 0000000c andeq r0, r0, ip - 864: 00000834 andeq r0, r0, r4, lsr r8 - 868: 004023ce subeq r2, r0, lr, asr #7 - 86c: 00000024 andeq r0, r0, r4, lsr #32 - 870: 00000028 andeq r0, r0, r8, lsr #32 - 874: ffffffff undefined instruction 0xffffffff - 878: 7c020003 stcvc 0, cr0, [r2], {3} - 87c: 000d0c0e andeq r0, sp, lr, lsl #24 - 880: 01070007 tsteq r7, r7 - 884: 03070207 movweq r0, #29191 ; 0x7207 - 888: 05080408 streq r0, [r8, #-1032] - 88c: 07080608 streq r0, [r8, -r8, lsl #12] - 890: 09080808 stmdbeq r8, {r3, fp} - 894: 0b080a08 bleq 2030bc - 898: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 89c: 0000000c andeq r0, r0, ip - 8a0: 00000870 andeq r0, r0, r0, ror r8 - 8a4: 004023f4 strdeq r2, [r0], #-52 - 8a8: 00000034 andeq r0, r0, r4, lsr r0 - 8ac: 00000028 andeq r0, r0, r8, lsr #32 - 8b0: ffffffff undefined instruction 0xffffffff - 8b4: 7c020003 stcvc 0, cr0, [r2], {3} - 8b8: 000d0c0e andeq r0, sp, lr, lsl #24 - 8bc: 01070007 tsteq r7, r7 - 8c0: 03070207 movweq r0, #29191 ; 0x7207 - 8c4: 05080408 streq r0, [r8, #-1032] - 8c8: 07080608 streq r0, [r8, -r8, lsl #12] - 8cc: 09080808 stmdbeq r8, {r3, fp} - 8d0: 0b080a08 bleq 2030f8 - 8d4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 8d8: 00000014 andeq r0, r0, r4, lsl r0 - 8dc: 000008ac andeq r0, r0, ip, lsr #17 - 8e0: 00402428 subeq r2, r0, r8, lsr #8 - 8e4: 00000038 andeq r0, r0, r8, lsr r0 - 8e8: 84080e41 strhi r0, [r8], #-3649 - 8ec: 00018e02 andeq r8, r1, r2, lsl #28 - 8f0: 00000028 andeq r0, r0, r8, lsr #32 - 8f4: ffffffff undefined instruction 0xffffffff - 8f8: 7c020003 stcvc 0, cr0, [r2], {3} - 8fc: 000d0c0e andeq r0, sp, lr, lsl #24 - 900: 01070007 tsteq r7, r7 - 904: 03070207 movweq r0, #29191 ; 0x7207 - 908: 05080408 streq r0, [r8, #-1032] - 90c: 07080608 streq r0, [r8, -r8, lsl #12] - 910: 09080808 stmdbeq r8, {r3, fp} - 914: 0b080a08 bleq 20313c - 918: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 91c: 00000028 andeq r0, r0, r8, lsr #32 - 920: 000008f0 strdeq r0, [r0], -r0 - 924: 00402460 subeq r2, r0, r0, ror #8 - 928: 00000150 andeq r0, r0, r0, asr r1 - 92c: 84100e41 ldrhi r0, [r0], #-3649 - 930: 8e028503 cfsh32hi mvfx8, mvfx2, #3 - 934: 0ea00201 cdpeq 2, 10, cr0, cr0, cr1, {0} - 938: 0e09410c adfeqe f4, f1, #4.0 - 93c: 040e4101 streq r4, [lr], #-257 - 940: 0e41c5c4 cdpeq 5, 4, cr12, cr1, cr4, {6} - 944: 00000000 andeq r0, r0, r0 - 948: 00000028 andeq r0, r0, r8, lsr #32 - 94c: ffffffff undefined instruction 0xffffffff - 950: 7c020003 stcvc 0, cr0, [r2], {3} - 954: 000d0c0e andeq r0, sp, lr, lsl #24 - 958: 01070007 tsteq r7, r7 - 95c: 03070207 movweq r0, #29191 ; 0x7207 - 960: 05080408 streq r0, [r8, #-1032] - 964: 07080608 streq r0, [r8, -r8, lsl #12] - 968: 09080808 stmdbeq r8, {r3, fp} - 96c: 0b080a08 bleq 203194 - 970: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 974: 00000028 andeq r0, r0, r8, lsr #32 - 978: 00000948 andeq r0, r0, r8, asr #18 - 97c: 004025c0 subeq r2, r0, r0, asr #11 - 980: 00000200 andeq r0, r0, r0, lsl #4 - 984: 84100e41 ldrhi r0, [r0], #-3649 - 988: 86038504 strhi r8, [r3], -r4, lsl #10 - 98c: 02018e02 andeq r8, r1, #32 ; 0x20 - 990: 010e09ef smlatteq lr, pc, r9, r0 - 994: c4040e41 strgt r0, [r4], #-3649 - 998: 0e41c6c5 cdpeq 6, 4, cr12, cr1, cr5, {6} - 99c: 00000000 andeq r0, r0, r0 - 9a0: 00000028 andeq r0, r0, r8, lsr #32 - 9a4: ffffffff undefined instruction 0xffffffff - 9a8: 7c020003 stcvc 0, cr0, [r2], {3} - 9ac: 000d0c0e andeq r0, sp, lr, lsl #24 - 9b0: 01070007 tsteq r7, r7 - 9b4: 03070207 movweq r0, #29191 ; 0x7207 - 9b8: 05080408 streq r0, [r8, #-1032] - 9bc: 07080608 streq r0, [r8, -r8, lsl #12] - 9c0: 09080808 stmdbeq r8, {r3, fp} - 9c4: 0b080a08 bleq 2031ec - 9c8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 9cc: 0000002c andeq r0, r0, ip, lsr #32 - 9d0: 000009a0 andeq r0, r0, r0, lsr #19 - 9d4: 004027c0 subeq r2, r0, r0, asr #15 - 9d8: 000001bc strheq r0, [r0], -ip - 9dc: 84180e41 ldrhi r0, [r8], #-3649 - 9e0: 86048505 strhi r8, [r4], -r5, lsl #10 - 9e4: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 9e8: 0ecc0201 cdpeq 2, 12, cr0, cr12, cr1, {0} - 9ec: 0e094114 mcreq 1, 0, r4, cr9, cr4, {0} - 9f0: 040e4101 streq r4, [lr], #-257 - 9f4: c7c6c5c4 strbgt ip, [r6, r4, asr #11] - 9f8: 00000e41 andeq r0, r0, r1, asr #28 - 9fc: 00000028 andeq r0, r0, r8, lsr #32 - a00: ffffffff undefined instruction 0xffffffff - a04: 7c020003 stcvc 0, cr0, [r2], {3} - a08: 000d0c0e andeq r0, sp, lr, lsl #24 - a0c: 01070007 tsteq r7, r7 - a10: 03070207 movweq r0, #29191 ; 0x7207 - a14: 05080408 streq r0, [r8, #-1032] - a18: 07080608 streq r0, [r8, -r8, lsl #12] - a1c: 09080808 stmdbeq r8, {r3, fp} - a20: 0b080a08 bleq 203248 - a24: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - a28: 00000014 andeq r0, r0, r4, lsl r0 - a2c: 000009fc strdeq r0, [r0], -ip - a30: 0040297c subeq r2, r0, ip, ror r9 - a34: 0000014c andeq r0, r0, ip, asr #2 - a38: 84080e41 strhi r0, [r8], #-3649 - a3c: 00018e02 andeq r8, r1, r2, lsl #28 - a40: 00000028 andeq r0, r0, r8, lsr #32 - a44: ffffffff undefined instruction 0xffffffff - a48: 7c020003 stcvc 0, cr0, [r2], {3} - a4c: 000d0c0e andeq r0, sp, lr, lsl #24 - a50: 01070007 tsteq r7, r7 - a54: 03070207 movweq r0, #29191 ; 0x7207 - a58: 05080408 streq r0, [r8, #-1032] - a5c: 07080608 streq r0, [r8, -r8, lsl #12] - a60: 09080808 stmdbeq r8, {r3, fp} - a64: 0b080a08 bleq 20328c - a68: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - a6c: 00000020 andeq r0, r0, r0, lsr #32 - a70: 00000a40 andeq r0, r0, r0, asr #20 - a74: 00402ac8 subeq r2, r0, r8, asr #21 - a78: 00000018 andeq r0, r0, r8, lsl r0 - a7c: 0284080e addeq r0, r4, #917504 ; 0xe0000 - a80: 0942018e stmdbeq r2, {r1, r2, r3, r7, r8}^ - a84: 0e41010e dvfeqs f0, f1, #0.5 - a88: 0e41c404 cdpeq 4, 4, cr12, cr1, cr4, {0} - a8c: 00000000 andeq r0, r0, r0 - a90: 00000028 andeq r0, r0, r8, lsr #32 - a94: ffffffff undefined instruction 0xffffffff - a98: 7c020003 stcvc 0, cr0, [r2], {3} - a9c: 000d0c0e andeq r0, sp, lr, lsl #24 - aa0: 01070007 tsteq r7, r7 - aa4: 03070207 movweq r0, #29191 ; 0x7207 - aa8: 05080408 streq r0, [r8, #-1032] - aac: 07080608 streq r0, [r8, -r8, lsl #12] - ab0: 09080808 stmdbeq r8, {r3, fp} - ab4: 0b080a08 bleq 2032dc - ab8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - abc: 00000028 andeq r0, r0, r8, lsr #32 - ac0: 00000a90 muleq r0, r0, sl - ac4: 00402aec subeq r2, r0, ip, ror #21 - ac8: 00000098 muleq r0, r8, r0 - acc: 84100e41 ldrhi r0, [r0], #-3649 - ad0: 86038504 strhi r8, [r3], -r4, lsl #10 - ad4: 02018e02 andeq r8, r1, #32 ; 0x20 - ad8: 000e0945 andeq r0, lr, r5, asr #18 - adc: c4040e41 strgt r0, [r4], #-3649 - ae0: 0e41c6c5 cdpeq 6, 4, cr12, cr1, cr5, {6} - ae4: 00000000 andeq r0, r0, r0 - ae8: 00000028 andeq r0, r0, r8, lsr #32 - aec: ffffffff undefined instruction 0xffffffff - af0: 7c020003 stcvc 0, cr0, [r2], {3} - af4: 000d0c0e andeq r0, sp, lr, lsl #24 - af8: 01070007 tsteq r7, r7 - afc: 03070207 movweq r0, #29191 ; 0x7207 - b00: 05080408 streq r0, [r8, #-1032] - b04: 07080608 streq r0, [r8, -r8, lsl #12] - b08: 09080808 stmdbeq r8, {r3, fp} - b0c: 0b080a08 bleq 203334 - b10: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - b14: 00000018 andeq r0, r0, r8, lsl r0 - b18: 00000ae8 andeq r0, r0, r8, ror #21 - b1c: 00402b84 subeq r2, r0, r4, lsl #23 - b20: 00000030 andeq r0, r0, r0, lsr r0 - b24: 84080e41 strhi r0, [r8], #-3649 - b28: 040e5401 streq r5, [lr], #-1025 - b2c: 000000c4 andeq r0, r0, r4, asr #1 - b30: 00000028 andeq r0, r0, r8, lsr #32 - b34: ffffffff undefined instruction 0xffffffff - b38: 7c020003 stcvc 0, cr0, [r2], {3} - b3c: 000d0c0e andeq r0, sp, lr, lsl #24 - b40: 01070007 tsteq r7, r7 - b44: 03070207 movweq r0, #29191 ; 0x7207 - b48: 05080408 streq r0, [r8, #-1032] - b4c: 07080608 streq r0, [r8, -r8, lsl #12] - b50: 09080808 stmdbeq r8, {r3, fp} - b54: 0b080a08 bleq 20337c - b58: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - b5c: 0000000c andeq r0, r0, ip - b60: 00000b30 andeq r0, r0, r0, lsr fp - b64: 00403f3e subeq r3, r0, lr, lsr pc - b68: 00000002 andeq r0, r0, r2 - b6c: 00000028 andeq r0, r0, r8, lsr #32 - b70: ffffffff undefined instruction 0xffffffff - b74: 7c020003 stcvc 0, cr0, [r2], {3} - b78: 000d0c0e andeq r0, sp, lr, lsl #24 - b7c: 01070007 tsteq r7, r7 - b80: 03070207 movweq r0, #29191 ; 0x7207 - b84: 05080408 streq r0, [r8, #-1032] - b88: 07080608 streq r0, [r8, -r8, lsl #12] - b8c: 09080808 stmdbeq r8, {r3, fp} - b90: 0b080a08 bleq 2033b8 - b94: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - b98: 0000000c andeq r0, r0, ip - b9c: 00000b6c andeq r0, r0, ip, ror #22 - ba0: 00403f40 subeq r3, r0, r0, asr #30 - ba4: 00000002 andeq r0, r0, r2 - ba8: 00000028 andeq r0, r0, r8, lsr #32 - bac: ffffffff undefined instruction 0xffffffff - bb0: 7c020003 stcvc 0, cr0, [r2], {3} - bb4: 000d0c0e andeq r0, sp, lr, lsl #24 - bb8: 01070007 tsteq r7, r7 - bbc: 03070207 movweq r0, #29191 ; 0x7207 - bc0: 05080408 streq r0, [r8, #-1032] - bc4: 07080608 streq r0, [r8, -r8, lsl #12] - bc8: 09080808 stmdbeq r8, {r3, fp} - bcc: 0b080a08 bleq 2033f4 - bd0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - bd4: 0000000c andeq r0, r0, ip - bd8: 00000ba8 andeq r0, r0, r8, lsr #23 - bdc: 004038c8 subeq r3, r0, r8, asr #17 - be0: 00000006 andeq r0, r0, r6 - be4: 00000028 andeq r0, r0, r8, lsr #32 - be8: ffffffff undefined instruction 0xffffffff - bec: 7c020003 stcvc 0, cr0, [r2], {3} - bf0: 000d0c0e andeq r0, sp, lr, lsl #24 - bf4: 01070007 tsteq r7, r7 - bf8: 03070207 movweq r0, #29191 ; 0x7207 - bfc: 05080408 streq r0, [r8, #-1032] - c00: 07080608 streq r0, [r8, -r8, lsl #12] - c04: 09080808 stmdbeq r8, {r3, fp} - c08: 0b080a08 bleq 203430 - c0c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - c10: 0000002c andeq r0, r0, ip, lsr #32 - c14: 00000be4 andeq r0, r0, r4, ror #23 - c18: 004038d0 ldrdeq r3, [r0], #-128 - c1c: 000000a4 andeq r0, r0, r4, lsr #1 - c20: 84100e41 ldrhi r0, [r0], #-3649 - c24: 86038504 strhi r8, [r3], -r4, lsl #10 - c28: 41018e02 tstmi r1, r2, lsl #28 - c2c: 0e7e180e cdpeq 8, 7, cr1, cr14, cr14, {0} - c30: 0e094110 flteqe f1, r4 - c34: 040e4101 streq r4, [lr], #-257 - c38: 41c6c5c4 bicmi ip, r6, r4, asr #11 - c3c: 0000000e andeq r0, r0, lr - c40: 00000028 andeq r0, r0, r8, lsr #32 - c44: ffffffff undefined instruction 0xffffffff - c48: 7c020003 stcvc 0, cr0, [r2], {3} - c4c: 000d0c0e andeq r0, sp, lr, lsl #24 - c50: 01070007 tsteq r7, r7 - c54: 03070207 movweq r0, #29191 ; 0x7207 - c58: 05080408 streq r0, [r8, #-1032] - c5c: 07080608 streq r0, [r8, -r8, lsl #12] - c60: 09080808 stmdbeq r8, {r3, fp} - c64: 0b080a08 bleq 20348c - c68: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - c6c: 00000030 andeq r0, r0, r0, lsr r0 - c70: 00000c40 andeq r0, r0, r0, asr #24 - c74: 00403988 subeq r3, r0, r8, lsl #19 - c78: 00000094 muleq r0, r4, r0 - c7c: 84140e41 ldrhi r0, [r4], #-3649 - c80: 86048505 strhi r8, [r4], -r5, lsl #10 - c84: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - c88: 200e4101 andcs r4, lr, r1, lsl #2 - c8c: 41140e7f tstmi r4, pc, ror lr - c90: 41010e09 tstmi r1, r9, lsl #28 - c94: c5c4040e strbgt r0, [r4, #1038] - c98: 0e41c7c6 cdpeq 7, 4, cr12, cr1, cr6, {6} - c9c: 00000000 andeq r0, r0, r0 - ca0: 00000028 andeq r0, r0, r8, lsr #32 - ca4: ffffffff undefined instruction 0xffffffff - ca8: 7c020003 stcvc 0, cr0, [r2], {3} - cac: 000d0c0e andeq r0, sp, lr, lsl #24 - cb0: 01070007 tsteq r7, r7 - cb4: 03070207 movweq r0, #29191 ; 0x7207 - cb8: 05080408 streq r0, [r8, #-1032] - cbc: 07080608 streq r0, [r8, -r8, lsl #12] - cc0: 09080808 stmdbeq r8, {r3, fp} - cc4: 0b080a08 bleq 2034ec - cc8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - ccc: 00000024 andeq r0, r0, r4, lsr #32 - cd0: 00000ca0 andeq r0, r0, r0, lsr #25 - cd4: 0040338c subeq r3, r0, ip, lsl #7 - cd8: 0000008c andeq r0, r0, ip, lsl #1 - cdc: 84080e41 strhi r0, [r8], #-3649 - ce0: 41018e02 tstmi r1, r2, lsl #28 - ce4: 0e77180e cdpeq 8, 7, cr1, cr7, cr14, {0} - ce8: 0e094108 adfeqe f4, f1, #0.0 - cec: 040e4100 streq r4, [lr], #-256 - cf0: 000e41c4 andeq r4, lr, r4, asr #3 - cf4: 00000028 andeq r0, r0, r8, lsr #32 - cf8: ffffffff undefined instruction 0xffffffff - cfc: 7c020003 stcvc 0, cr0, [r2], {3} - d00: 000d0c0e andeq r0, sp, lr, lsl #24 - d04: 01070007 tsteq r7, r7 - d08: 03070207 movweq r0, #29191 ; 0x7207 - d0c: 05080408 streq r0, [r8, #-1032] - d10: 07080608 streq r0, [r8, -r8, lsl #12] - d14: 09080808 stmdbeq r8, {r3, fp} - d18: 0b080a08 bleq 203540 - d1c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - d20: 0000000c andeq r0, r0, ip - d24: 00000cf4 strdeq r0, [r0], -r4 - d28: 00403418 subeq r3, r0, r8, lsl r4 - d2c: 00000050 andeq r0, r0, r0, asr r0 - d30: 00000028 andeq r0, r0, r8, lsr #32 - d34: ffffffff undefined instruction 0xffffffff - d38: 7c020003 stcvc 0, cr0, [r2], {3} - d3c: 000d0c0e andeq r0, sp, lr, lsl #24 - d40: 01070007 tsteq r7, r7 - d44: 03070207 movweq r0, #29191 ; 0x7207 - d48: 05080408 streq r0, [r8, #-1032] - d4c: 07080608 streq r0, [r8, -r8, lsl #12] - d50: 09080808 stmdbeq r8, {r3, fp} - d54: 0b080a08 bleq 20357c - d58: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - d5c: 0000000c andeq r0, r0, ip - d60: 00000d30 andeq r0, r0, r0, lsr sp - d64: 0040346c subeq r3, r0, ip, ror #8 - d68: 00000002 andeq r0, r0, r2 - d6c: 00000028 andeq r0, r0, r8, lsr #32 - d70: ffffffff undefined instruction 0xffffffff - d74: 7c020003 stcvc 0, cr0, [r2], {3} - d78: 000d0c0e andeq r0, sp, lr, lsl #24 - d7c: 01070007 tsteq r7, r7 - d80: 03070207 movweq r0, #29191 ; 0x7207 - d84: 05080408 streq r0, [r8, #-1032] - d88: 07080608 streq r0, [r8, -r8, lsl #12] - d8c: 09080808 stmdbeq r8, {r3, fp} - d90: 0b080a08 bleq 2035b8 - d94: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - d98: 0000000c andeq r0, r0, ip - d9c: 00000d6c andeq r0, r0, ip, ror #26 - da0: 0040346e subeq r3, r0, lr, ror #8 - da4: 00000002 andeq r0, r0, r2 - da8: 00000028 andeq r0, r0, r8, lsr #32 - dac: ffffffff undefined instruction 0xffffffff - db0: 7c020003 stcvc 0, cr0, [r2], {3} - db4: 000d0c0e andeq r0, sp, lr, lsl #24 - db8: 01070007 tsteq r7, r7 - dbc: 03070207 movweq r0, #29191 ; 0x7207 - dc0: 05080408 streq r0, [r8, #-1032] - dc4: 07080608 streq r0, [r8, -r8, lsl #12] - dc8: 09080808 stmdbeq r8, {r3, fp} - dcc: 0b080a08 bleq 2035f4 - dd0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - dd4: 0000000c andeq r0, r0, ip - dd8: 00000da8 andeq r0, r0, r8, lsr #27 - ddc: 00403470 subeq r3, r0, r0, ror r4 - de0: 00000010 andeq r0, r0, r0, lsl r0 - de4: 00000028 andeq r0, r0, r8, lsr #32 - de8: ffffffff undefined instruction 0xffffffff - dec: 7c020003 stcvc 0, cr0, [r2], {3} - df0: 000d0c0e andeq r0, sp, lr, lsl #24 - df4: 01070007 tsteq r7, r7 - df8: 03070207 movweq r0, #29191 ; 0x7207 - dfc: 05080408 streq r0, [r8, #-1032] - e00: 07080608 streq r0, [r8, -r8, lsl #12] - e04: 09080808 stmdbeq r8, {r3, fp} - e08: 0b080a08 bleq 203630 - e0c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - e10: 0000002c andeq r0, r0, ip, lsr #32 - e14: 00000de4 andeq r0, r0, r4, ror #27 - e18: 00403480 subeq r3, r0, r0, lsl #9 - e1c: 00000046 andeq r0, r0, r6, asr #32 - e20: 84180e41 ldrhi r0, [r8], #-3649 - e24: 86038504 strhi r8, [r3], -r4, lsl #10 - e28: 41018e02 tstmi r1, r2, lsl #28 - e2c: 0e5d200e cdpeq 0, 5, cr2, cr13, cr14, {0} - e30: 0e094110 flteqe f1, r4 - e34: 040e4100 streq r4, [lr], #-256 - e38: 41c6c5c4 bicmi ip, r6, r4, asr #11 - e3c: 0000000e andeq r0, r0, lr - e40: 00000028 andeq r0, r0, r8, lsr #32 - e44: ffffffff undefined instruction 0xffffffff - e48: 7c020003 stcvc 0, cr0, [r2], {3} - e4c: 000d0c0e andeq r0, sp, lr, lsl #24 - e50: 01070007 tsteq r7, r7 - e54: 03070207 movweq r0, #29191 ; 0x7207 - e58: 05080408 streq r0, [r8, #-1032] - e5c: 07080608 streq r0, [r8, -r8, lsl #12] - e60: 09080808 stmdbeq r8, {r3, fp} - e64: 0b080a08 bleq 20368c - e68: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - e6c: 00000014 andeq r0, r0, r4, lsl r0 - e70: 00000e40 andeq r0, r0, r0, asr #28 - e74: 00403a1c subeq r3, r0, ip, lsl sl - e78: 00000014 andeq r0, r0, r4, lsl r0 - e7c: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - e80: 00000001 andeq r0, r0, r1 - e84: 00000028 andeq r0, r0, r8, lsr #32 - e88: ffffffff undefined instruction 0xffffffff - e8c: 7c020003 stcvc 0, cr0, [r2], {3} - e90: 000d0c0e andeq r0, sp, lr, lsl #24 - e94: 01070007 tsteq r7, r7 - e98: 03070207 movweq r0, #29191 ; 0x7207 - e9c: 05080408 streq r0, [r8, #-1032] - ea0: 07080608 streq r0, [r8, -r8, lsl #12] - ea4: 09080808 stmdbeq r8, {r3, fp} - ea8: 0b080a08 bleq 2036d0 - eac: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - eb0: 00000014 andeq r0, r0, r4, lsl r0 - eb4: 00000e84 andeq r0, r0, r4, lsl #29 - eb8: 00403a30 subeq r3, r0, r0, lsr sl - ebc: 0000001c andeq r0, r0, ip, lsl r0 - ec0: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - ec4: 00000001 andeq r0, r0, r1 - ec8: 00000028 andeq r0, r0, r8, lsr #32 - ecc: ffffffff undefined instruction 0xffffffff - ed0: 7c020003 stcvc 0, cr0, [r2], {3} - ed4: 000d0c0e andeq r0, sp, lr, lsl #24 - ed8: 01070007 tsteq r7, r7 - edc: 03070207 movweq r0, #29191 ; 0x7207 - ee0: 05080408 streq r0, [r8, #-1032] - ee4: 07080608 streq r0, [r8, -r8, lsl #12] - ee8: 09080808 stmdbeq r8, {r3, fp} - eec: 0b080a08 bleq 203714 - ef0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - ef4: 00000014 andeq r0, r0, r4, lsl r0 - ef8: 00000ec8 andeq r0, r0, r8, asr #29 - efc: 00403a54 subeq r3, r0, r4, asr sl - f00: 00000010 andeq r0, r0, r0, lsl r0 - f04: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - f08: 00000001 andeq r0, r0, r1 - f0c: 00000028 andeq r0, r0, r8, lsr #32 - f10: ffffffff undefined instruction 0xffffffff - f14: 7c020003 stcvc 0, cr0, [r2], {3} - f18: 000d0c0e andeq r0, sp, lr, lsl #24 - f1c: 01070007 tsteq r7, r7 - f20: 03070207 movweq r0, #29191 ; 0x7207 - f24: 05080408 streq r0, [r8, #-1032] - f28: 07080608 streq r0, [r8, -r8, lsl #12] - f2c: 09080808 stmdbeq r8, {r3, fp} - f30: 0b080a08 bleq 203758 - f34: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - f38: 00000014 andeq r0, r0, r4, lsl r0 - f3c: 00000f0c andeq r0, r0, ip, lsl #30 - f40: 00403a64 subeq r3, r0, r4, ror #20 - f44: 0000001c andeq r0, r0, ip, lsl r0 - f48: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - f4c: 00000001 andeq r0, r0, r1 - f50: 00000028 andeq r0, r0, r8, lsr #32 - f54: ffffffff undefined instruction 0xffffffff - f58: 7c020003 stcvc 0, cr0, [r2], {3} - f5c: 000d0c0e andeq r0, sp, lr, lsl #24 - f60: 01070007 tsteq r7, r7 - f64: 03070207 movweq r0, #29191 ; 0x7207 - f68: 05080408 streq r0, [r8, #-1032] - f6c: 07080608 streq r0, [r8, -r8, lsl #12] - f70: 09080808 stmdbeq r8, {r3, fp} - f74: 0b080a08 bleq 20379c - f78: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - f7c: 00000010 andeq r0, r0, r0, lsl r0 - f80: 00000f50 andeq r0, r0, r0, asr pc - f84: 00403a80 subeq r3, r0, r0, lsl #21 - f88: 00000004 andeq r0, r0, r4 - f8c: 018e080e orreq r0, lr, lr, lsl #16 - f90: 00000028 andeq r0, r0, r8, lsr #32 - f94: ffffffff undefined instruction 0xffffffff - f98: 7c020003 stcvc 0, cr0, [r2], {3} - f9c: 000d0c0e andeq r0, sp, lr, lsl #24 - fa0: 01070007 tsteq r7, r7 - fa4: 03070207 movweq r0, #29191 ; 0x7207 - fa8: 05080408 streq r0, [r8, #-1032] - fac: 07080608 streq r0, [r8, -r8, lsl #12] - fb0: 09080808 stmdbeq r8, {r3, fp} - fb4: 0b080a08 bleq 2037dc - fb8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - fbc: 00000010 andeq r0, r0, r0, lsl r0 - fc0: 00000f90 muleq r0, r0, pc - fc4: 00403a84 subeq r3, r0, r4, lsl #21 - fc8: 00000004 andeq r0, r0, r4 - fcc: 018e080e orreq r0, lr, lr, lsl #16 - fd0: 00000028 andeq r0, r0, r8, lsr #32 - fd4: ffffffff undefined instruction 0xffffffff - fd8: 7c020003 stcvc 0, cr0, [r2], {3} - fdc: 000d0c0e andeq r0, sp, lr, lsl #24 - fe0: 01070007 tsteq r7, r7 - fe4: 03070207 movweq r0, #29191 ; 0x7207 - fe8: 05080408 streq r0, [r8, #-1032] - fec: 07080608 streq r0, [r8, -r8, lsl #12] - ff0: 09080808 stmdbeq r8, {r3, fp} - ff4: 0b080a08 bleq 20381c - ff8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - ffc: 00000018 andeq r0, r0, r8, lsl r0 - 1000: 00000fd0 ldrdeq r0, [r0], -r0 - 1004: 00403a88 subeq r3, r0, r8, lsl #21 - 1008: 00000006 andeq r0, r0, r6 - 100c: 018e080e orreq r0, lr, lr, lsl #16 - 1010: 010e0941 tsteq lr, r1, asr #18 - 1014: 00000e41 andeq r0, r0, r1, asr #28 - 1018: 00000028 andeq r0, r0, r8, lsr #32 - 101c: ffffffff undefined instruction 0xffffffff - 1020: 7c020003 stcvc 0, cr0, [r2], {3} - 1024: 000d0c0e andeq r0, sp, lr, lsl #24 - 1028: 01070007 tsteq r7, r7 - 102c: 03070207 movweq r0, #29191 ; 0x7207 - 1030: 05080408 streq r0, [r8, #-1032] - 1034: 07080608 streq r0, [r8, -r8, lsl #12] - 1038: 09080808 stmdbeq r8, {r3, fp} - 103c: 0b080a08 bleq 203864 - 1040: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1044: 00000014 andeq r0, r0, r4, lsl r0 - 1048: 00001018 andeq r1, r0, r8, lsl r0 - 104c: 00403a8e subeq r3, r0, lr, lsl #21 - 1050: 00000014 andeq r0, r0, r4, lsl r0 - 1054: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - 1058: 00000001 andeq r0, r0, r1 - 105c: 00000028 andeq r0, r0, r8, lsr #32 - 1060: ffffffff undefined instruction 0xffffffff - 1064: 7c020003 stcvc 0, cr0, [r2], {3} - 1068: 000d0c0e andeq r0, sp, lr, lsl #24 - 106c: 01070007 tsteq r7, r7 - 1070: 03070207 movweq r0, #29191 ; 0x7207 - 1074: 05080408 streq r0, [r8, #-1032] - 1078: 07080608 streq r0, [r8, -r8, lsl #12] - 107c: 09080808 stmdbeq r8, {r3, fp} - 1080: 0b080a08 bleq 2038a8 - 1084: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1088: 0000000c andeq r0, r0, ip - 108c: 0000105c andeq r1, r0, ip, asr r0 - 1090: 00403e70 subeq r3, r0, r0, ror lr - 1094: 00000028 andeq r0, r0, r8, lsr #32 - 1098: 00000028 andeq r0, r0, r8, lsr #32 - 109c: ffffffff undefined instruction 0xffffffff - 10a0: 7c020003 stcvc 0, cr0, [r2], {3} - 10a4: 000d0c0e andeq r0, sp, lr, lsl #24 - 10a8: 01070007 tsteq r7, r7 - 10ac: 03070207 movweq r0, #29191 ; 0x7207 - 10b0: 05080408 streq r0, [r8, #-1032] - 10b4: 07080608 streq r0, [r8, -r8, lsl #12] - 10b8: 09080808 stmdbeq r8, {r3, fp} - 10bc: 0b080a08 bleq 2038e4 - 10c0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 10c4: 00000014 andeq r0, r0, r4, lsl r0 - 10c8: 00001098 muleq r0, r8, r0 - 10cc: 00400960 subeq r0, r0, r0, ror #18 - 10d0: 00000024 andeq r0, r0, r4, lsr #32 - 10d4: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - 10d8: 00000001 andeq r0, r0, r1 - 10dc: 00000028 andeq r0, r0, r8, lsr #32 - 10e0: ffffffff undefined instruction 0xffffffff - 10e4: 7c020003 stcvc 0, cr0, [r2], {3} - 10e8: 000d0c0e andeq r0, sp, lr, lsl #24 - 10ec: 01070007 tsteq r7, r7 - 10f0: 03070207 movweq r0, #29191 ; 0x7207 - 10f4: 05080408 streq r0, [r8, #-1032] - 10f8: 07080608 streq r0, [r8, -r8, lsl #12] - 10fc: 09080808 stmdbeq r8, {r3, fp} - 1100: 0b080a08 bleq 203928 - 1104: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1108: 00000014 andeq r0, r0, r4, lsl r0 - 110c: 000010dc ldrdeq r1, [r0], -ip - 1110: 00400984 subeq r0, r0, r4, lsl #19 - 1114: 00000008 andeq r0, r0, r8 - 1118: 84080e41 strhi r0, [r8], #-3649 - 111c: 00018e02 andeq r8, r1, r2, lsl #28 - 1120: 00000028 andeq r0, r0, r8, lsr #32 - 1124: ffffffff undefined instruction 0xffffffff - 1128: 7c020003 stcvc 0, cr0, [r2], {3} - 112c: 000d0c0e andeq r0, sp, lr, lsl #24 - 1130: 01070007 tsteq r7, r7 - 1134: 03070207 movweq r0, #29191 ; 0x7207 - 1138: 05080408 streq r0, [r8, #-1032] - 113c: 07080608 streq r0, [r8, -r8, lsl #12] - 1140: 09080808 stmdbeq r8, {r3, fp} - 1144: 0b080a08 bleq 20396c - 1148: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 114c: 00000014 andeq r0, r0, r4, lsl r0 - 1150: 00001120 andeq r1, r0, r0, lsr #2 - 1154: 0040098c subeq r0, r0, ip, lsl #19 - 1158: 0000001c andeq r0, r0, ip, lsl r0 - 115c: 84080e41 strhi r0, [r8], #-3649 - 1160: 00018e02 andeq r8, r1, r2, lsl #28 - 1164: 00000028 andeq r0, r0, r8, lsr #32 - 1168: ffffffff undefined instruction 0xffffffff - 116c: 7c020003 stcvc 0, cr0, [r2], {3} - 1170: 000d0c0e andeq r0, sp, lr, lsl #24 - 1174: 01070007 tsteq r7, r7 - 1178: 03070207 movweq r0, #29191 ; 0x7207 - 117c: 05080408 streq r0, [r8, #-1032] - 1180: 07080608 streq r0, [r8, -r8, lsl #12] - 1184: 09080808 stmdbeq r8, {r3, fp} - 1188: 0b080a08 bleq 2039b0 - 118c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1190: 00000020 andeq r0, r0, r0, lsr #32 - 1194: 00001164 andeq r1, r0, r4, ror #2 - 1198: 004009a8 subeq r0, r0, r8, lsr #19 - 119c: 00000014 andeq r0, r0, r4, lsl r0 - 11a0: 0284080e addeq r0, r4, #917504 ; 0xe0000 - 11a4: 0947018e stmdbeq r7, {r1, r2, r3, r7, r8}^ - 11a8: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} - 11ac: 0e41c404 cdpeq 4, 4, cr12, cr1, cr4, {0} - 11b0: 00000000 andeq r0, r0, r0 - 11b4: 00000028 andeq r0, r0, r8, lsr #32 - 11b8: ffffffff undefined instruction 0xffffffff - 11bc: 7c020003 stcvc 0, cr0, [r2], {3} - 11c0: 000d0c0e andeq r0, sp, lr, lsl #24 - 11c4: 01070007 tsteq r7, r7 - 11c8: 03070207 movweq r0, #29191 ; 0x7207 - 11cc: 05080408 streq r0, [r8, #-1032] - 11d0: 07080608 streq r0, [r8, -r8, lsl #12] - 11d4: 09080808 stmdbeq r8, {r3, fp} - 11d8: 0b080a08 bleq 203a00 - 11dc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 11e0: 0000001c andeq r0, r0, ip, lsl r0 - 11e4: 000011b4 strheq r1, [r0], -r4 - 11e8: 004009bc strheq r0, [r0], #-156 - 11ec: 0000006c andeq r0, r0, ip, rrx - 11f0: 84180e41 ldrhi r0, [r8], #-3649 - 11f4: 86048505 strhi r8, [r4], -r5, lsl #10 - 11f8: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 11fc: 200e4101 andcs r4, lr, r1, lsl #2 - 1200: 00000028 andeq r0, r0, r8, lsr #32 - 1204: ffffffff undefined instruction 0xffffffff - 1208: 7c020003 stcvc 0, cr0, [r2], {3} - 120c: 000d0c0e andeq r0, sp, lr, lsl #24 - 1210: 01070007 tsteq r7, r7 - 1214: 03070207 movweq r0, #29191 ; 0x7207 - 1218: 05080408 streq r0, [r8, #-1032] - 121c: 07080608 streq r0, [r8, -r8, lsl #12] - 1220: 09080808 stmdbeq r8, {r3, fp} - 1224: 0b080a08 bleq 203a4c - 1228: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 122c: 00000014 andeq r0, r0, r4, lsl r0 - 1230: 00001200 andeq r1, r0, r0, lsl #4 - 1234: 00400a28 subeq r0, r0, r8, lsr #20 - 1238: 0000002c andeq r0, r0, ip, lsr #32 - 123c: 8e040e41 cdphi 14, 0, cr0, cr4, cr1, {2} - 1240: 680e4101 stmdavs lr, {r0, r8, lr} - 1244: 00000028 andeq r0, r0, r8, lsr #32 - 1248: ffffffff undefined instruction 0xffffffff - 124c: 7c020003 stcvc 0, cr0, [r2], {3} - 1250: 000d0c0e andeq r0, sp, lr, lsl #24 - 1254: 01070007 tsteq r7, r7 - 1258: 03070207 movweq r0, #29191 ; 0x7207 - 125c: 05080408 streq r0, [r8, #-1032] - 1260: 07080608 streq r0, [r8, -r8, lsl #12] - 1264: 09080808 stmdbeq r8, {r3, fp} - 1268: 0b080a08 bleq 203a90 - 126c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1270: 00000020 andeq r0, r0, r0, lsr #32 - 1274: 00001244 andeq r1, r0, r4, asr #4 - 1278: 00400a58 subeq r0, r0, r8, asr sl - 127c: 000001f4 strdeq r0, [r0], -r4 - 1280: 84180e41 ldrhi r0, [r8], #-3649 - 1284: 86048505 strhi r8, [r4], -r5, lsl #10 - 1288: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 128c: 0edd0201 cdpeq 2, 13, cr0, cr13, cr1, {0} - 1290: 00000014 andeq r0, r0, r4, lsl r0 - 1294: 00000028 andeq r0, r0, r8, lsr #32 - 1298: ffffffff undefined instruction 0xffffffff - 129c: 7c020003 stcvc 0, cr0, [r2], {3} - 12a0: 000d0c0e andeq r0, sp, lr, lsl #24 - 12a4: 01070007 tsteq r7, r7 - 12a8: 03070207 movweq r0, #29191 ; 0x7207 - 12ac: 05080408 streq r0, [r8, #-1032] - 12b0: 07080608 streq r0, [r8, -r8, lsl #12] - 12b4: 09080808 stmdbeq r8, {r3, fp} - 12b8: 0b080a08 bleq 203ae0 - 12bc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 12c0: 0000000c andeq r0, r0, ip - 12c4: 00001294 muleq r0, r4, r2 - 12c8: 00400c50 subeq r0, r0, r0, asr ip - 12cc: 00000028 andeq r0, r0, r8, lsr #32 - 12d0: 00000028 andeq r0, r0, r8, lsr #32 - 12d4: ffffffff undefined instruction 0xffffffff - 12d8: 7c020003 stcvc 0, cr0, [r2], {3} - 12dc: 000d0c0e andeq r0, sp, lr, lsl #24 - 12e0: 01070007 tsteq r7, r7 - 12e4: 03070207 movweq r0, #29191 ; 0x7207 - 12e8: 05080408 streq r0, [r8, #-1032] - 12ec: 07080608 streq r0, [r8, -r8, lsl #12] - 12f0: 09080808 stmdbeq r8, {r3, fp} - 12f4: 0b080a08 bleq 203b1c - 12f8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 12fc: 00000038 andeq r0, r0, r8, lsr r0 - 1300: 000012d0 ldrdeq r1, [r0], -r0 - 1304: 00400c78 subeq r0, r0, r8, ror ip - 1308: 000001ac andeq r0, r0, ip, lsr #3 - 130c: 84100e41 ldrhi r0, [r0], #-3649 - 1310: 86038504 strhi r8, [r3], -r4, lsl #10 - 1314: 41018e02 tstmi r1, r2, lsl #28 - 1318: 9002200e andls r2, r2, lr - 131c: 0941100e stmdbeq r1, {r1, r2, r3, ip}^ - 1320: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} - 1324: c6c5c404 strbgt ip, [r5], r4, lsl #8 - 1328: 41000e41 tstmi r0, r1, asr #28 - 132c: 0484200e streq r2, [r4], #14 - 1330: 02860385 addeq r0, r6, #335544322 ; 0x14000002 - 1334: 0000018e andeq r0, r0, lr, lsl #3 - 1338: 00000028 andeq r0, r0, r8, lsr #32 - 133c: ffffffff undefined instruction 0xffffffff - 1340: 7c020003 stcvc 0, cr0, [r2], {3} - 1344: 000d0c0e andeq r0, sp, lr, lsl #24 - 1348: 01070007 tsteq r7, r7 - 134c: 03070207 movweq r0, #29191 ; 0x7207 - 1350: 05080408 streq r0, [r8, #-1032] - 1354: 07080608 streq r0, [r8, -r8, lsl #12] - 1358: 09080808 stmdbeq r8, {r3, fp} - 135c: 0b080a08 bleq 203b84 - 1360: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1364: 00000014 andeq r0, r0, r4, lsl r0 - 1368: 00001338 andeq r1, r0, r8, lsr r3 - 136c: 00400e24 subeq r0, r0, r4, lsr #28 - 1370: 00000014 andeq r0, r0, r4, lsl r0 - 1374: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - 1378: 00000001 andeq r0, r0, r1 - 137c: 00000028 andeq r0, r0, r8, lsr #32 - 1380: ffffffff undefined instruction 0xffffffff - 1384: 7c020003 stcvc 0, cr0, [r2], {3} - 1388: 000d0c0e andeq r0, sp, lr, lsl #24 - 138c: 01070007 tsteq r7, r7 - 1390: 03070207 movweq r0, #29191 ; 0x7207 - 1394: 05080408 streq r0, [r8, #-1032] - 1398: 07080608 streq r0, [r8, -r8, lsl #12] - 139c: 09080808 stmdbeq r8, {r3, fp} - 13a0: 0b080a08 bleq 203bc8 - 13a4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 13a8: 00000014 andeq r0, r0, r4, lsl r0 - 13ac: 0000137c andeq r1, r0, ip, ror r3 - 13b0: 00400e38 subeq r0, r0, r8, lsr lr - 13b4: 00000010 andeq r0, r0, r0, lsl r0 - 13b8: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - 13bc: 00000001 andeq r0, r0, r1 - 13c0: 00000028 andeq r0, r0, r8, lsr #32 - 13c4: ffffffff undefined instruction 0xffffffff - 13c8: 7c020003 stcvc 0, cr0, [r2], {3} - 13cc: 000d0c0e andeq r0, sp, lr, lsl #24 - 13d0: 01070007 tsteq r7, r7 - 13d4: 03070207 movweq r0, #29191 ; 0x7207 - 13d8: 05080408 streq r0, [r8, #-1032] - 13dc: 07080608 streq r0, [r8, -r8, lsl #12] - 13e0: 09080808 stmdbeq r8, {r3, fp} - 13e4: 0b080a08 bleq 203c0c - 13e8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 13ec: 00000010 andeq r0, r0, r0, lsl r0 - 13f0: 000013c0 andeq r1, r0, r0, asr #7 - 13f4: 00400e48 subeq r0, r0, r8, asr #28 - 13f8: 00000004 andeq r0, r0, r4 - 13fc: 018e080e orreq r0, lr, lr, lsl #16 - 1400: 00000028 andeq r0, r0, r8, lsr #32 - 1404: ffffffff undefined instruction 0xffffffff - 1408: 7c020003 stcvc 0, cr0, [r2], {3} - 140c: 000d0c0e andeq r0, sp, lr, lsl #24 - 1410: 01070007 tsteq r7, r7 - 1414: 03070207 movweq r0, #29191 ; 0x7207 - 1418: 05080408 streq r0, [r8, #-1032] - 141c: 07080608 streq r0, [r8, -r8, lsl #12] - 1420: 09080808 stmdbeq r8, {r3, fp} - 1424: 0b080a08 bleq 203c4c - 1428: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 142c: 00000018 andeq r0, r0, r8, lsl r0 - 1430: 00001400 andeq r1, r0, r0, lsl #8 - 1434: 00400e4c subeq r0, r0, ip, asr #28 - 1438: 00000006 andeq r0, r0, r6 - 143c: 018e080e orreq r0, lr, lr, lsl #16 - 1440: 000e0941 andeq r0, lr, r1, asr #18 - 1444: 00000e41 andeq r0, r0, r1, asr #28 - 1448: 00000028 andeq r0, r0, r8, lsr #32 - 144c: ffffffff undefined instruction 0xffffffff - 1450: 7c020003 stcvc 0, cr0, [r2], {3} - 1454: 000d0c0e andeq r0, sp, lr, lsl #24 - 1458: 01070007 tsteq r7, r7 - 145c: 03070207 movweq r0, #29191 ; 0x7207 - 1460: 05080408 streq r0, [r8, #-1032] - 1464: 07080608 streq r0, [r8, -r8, lsl #12] - 1468: 09080808 stmdbeq r8, {r3, fp} - 146c: 0b080a08 bleq 203c94 - 1470: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1474: 00000014 andeq r0, r0, r4, lsl r0 - 1478: 00001448 andeq r1, r0, r8, asr #8 - 147c: 00400e58 subeq r0, r0, r8, asr lr - 1480: 00000014 andeq r0, r0, r4, lsl r0 - 1484: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - 1488: 00000001 andeq r0, r0, r1 - 148c: 00000028 andeq r0, r0, r8, lsr #32 - 1490: ffffffff undefined instruction 0xffffffff - 1494: 7c020003 stcvc 0, cr0, [r2], {3} - 1498: 000d0c0e andeq r0, sp, lr, lsl #24 - 149c: 01070007 tsteq r7, r7 - 14a0: 03070207 movweq r0, #29191 ; 0x7207 - 14a4: 05080408 streq r0, [r8, #-1032] - 14a8: 07080608 streq r0, [r8, -r8, lsl #12] - 14ac: 09080808 stmdbeq r8, {r3, fp} - 14b0: 0b080a08 bleq 203cd8 - 14b4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 14b8: 00000014 andeq r0, r0, r4, lsl r0 - 14bc: 0000148c andeq r1, r0, ip, lsl #9 - 14c0: 00400e6c subeq r0, r0, ip, ror #28 - 14c4: 00000014 andeq r0, r0, r4, lsl r0 - 14c8: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - 14cc: 00000001 andeq r0, r0, r1 - 14d0: 00000028 andeq r0, r0, r8, lsr #32 - 14d4: ffffffff undefined instruction 0xffffffff - 14d8: 7c020003 stcvc 0, cr0, [r2], {3} - 14dc: 000d0c0e andeq r0, sp, lr, lsl #24 - 14e0: 01070007 tsteq r7, r7 - 14e4: 03070207 movweq r0, #29191 ; 0x7207 - 14e8: 05080408 streq r0, [r8, #-1032] - 14ec: 07080608 streq r0, [r8, -r8, lsl #12] - 14f0: 09080808 stmdbeq r8, {r3, fp} - 14f4: 0b080a08 bleq 203d1c - 14f8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 14fc: 0000003c andeq r0, r0, ip, lsr r0 - 1500: 000014d0 ldrdeq r1, [r0], -r0 - 1504: 00400e80 subeq r0, r0, r0, lsl #29 - 1508: 0000015c andeq r0, r0, ip, asr r1 - 150c: 84180e41 ldrhi r0, [r8], #-3649 - 1510: 86048505 strhi r8, [r4], -r5, lsl #10 - 1514: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 1518: 200e6d01 andcs r6, lr, r1, lsl #26 - 151c: 5d180e46 ldcpl 14, cr0, [r8, #-280] - 1520: 0e46200e cdpeq 0, 4, cr2, cr6, cr14, {0} - 1524: 200e6a18 andcs r6, lr, r8, lsl sl - 1528: 59180e46 ldmdbpl r8, {r1, r2, r6, r9, sl, fp} - 152c: 0941140e stmdbeq r1, {r1, r2, r3, sl, ip}^ - 1530: 0e41010e dvfeqs f0, f1, #0.5 - 1534: c6c5c404 strbgt ip, [r5], r4, lsl #8 - 1538: 000e41c7 andeq r4, lr, r7, asr #3 - 153c: 00000028 andeq r0, r0, r8, lsr #32 - 1540: ffffffff undefined instruction 0xffffffff - 1544: 7c020003 stcvc 0, cr0, [r2], {3} - 1548: 000d0c0e andeq r0, sp, lr, lsl #24 - 154c: 01070007 tsteq r7, r7 - 1550: 03070207 movweq r0, #29191 ; 0x7207 - 1554: 05080408 streq r0, [r8, #-1032] - 1558: 07080608 streq r0, [r8, -r8, lsl #12] - 155c: 09080808 stmdbeq r8, {r3, fp} - 1560: 0b080a08 bleq 203d88 - 1564: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1568: 00000020 andeq r0, r0, r0, lsr #32 - 156c: 0000153c andeq r1, r0, ip, lsr r5 - 1570: 00400fdc ldrdeq r0, [r0], #-252 - 1574: 000000b0 strheq r0, [r0], -r0 - 1578: 84140e41 ldrhi r0, [r4], #-3649 - 157c: 86048505 strhi r8, [r4], -r5, lsl #10 - 1580: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 1584: 280e4101 stmdacs lr, {r0, r8, lr} - 1588: 140e4902 strne r4, [lr], #-2306 - 158c: 00000028 andeq r0, r0, r8, lsr #32 - 1590: ffffffff undefined instruction 0xffffffff - 1594: 7c020003 stcvc 0, cr0, [r2], {3} - 1598: 000d0c0e andeq r0, sp, lr, lsl #24 - 159c: 01070007 tsteq r7, r7 - 15a0: 03070207 movweq r0, #29191 ; 0x7207 - 15a4: 05080408 streq r0, [r8, #-1032] - 15a8: 07080608 streq r0, [r8, -r8, lsl #12] - 15ac: 09080808 stmdbeq r8, {r3, fp} - 15b0: 0b080a08 bleq 203dd8 - 15b4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 15b8: 0000001c andeq r0, r0, ip, lsl r0 - 15bc: 0000158c andeq r1, r0, ip, lsl #11 - 15c0: 0040108c subeq r1, r0, ip, lsl #1 - 15c4: 000001e4 andeq r0, r0, r4, ror #3 - 15c8: 84140e41 ldrhi r0, [r4], #-3649 - 15cc: 86048505 strhi r8, [r4], -r5, lsl #10 - 15d0: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 15d4: 200e4101 andcs r4, lr, r1, lsl #2 - 15d8: 00000028 andeq r0, r0, r8, lsr #32 - 15dc: ffffffff undefined instruction 0xffffffff - 15e0: 7c020003 stcvc 0, cr0, [r2], {3} - 15e4: 000d0c0e andeq r0, sp, lr, lsl #24 - 15e8: 01070007 tsteq r7, r7 - 15ec: 03070207 movweq r0, #29191 ; 0x7207 - 15f0: 05080408 streq r0, [r8, #-1032] - 15f4: 07080608 streq r0, [r8, -r8, lsl #12] - 15f8: 09080808 stmdbeq r8, {r3, fp} - 15fc: 0b080a08 bleq 203e24 - 1600: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1604: 0000001c andeq r0, r0, ip, lsl r0 - 1608: 000015d8 ldrdeq r1, [r0], -r8 - 160c: 00401270 subeq r1, r0, r0, ror r2 - 1610: 00000004 andeq r0, r0, r4 - 1614: 0584200e streq r2, [r4, #14] - 1618: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 - 161c: 018e0287 orreq r0, lr, r7, lsl #5 - 1620: 00140e41 andseq r0, r4, r1, asr #28 - 1624: 00000028 andeq r0, r0, r8, lsr #32 - 1628: ffffffff undefined instruction 0xffffffff - 162c: 7c020003 stcvc 0, cr0, [r2], {3} - 1630: 000d0c0e andeq r0, sp, lr, lsl #24 - 1634: 01070007 tsteq r7, r7 - 1638: 03070207 movweq r0, #29191 ; 0x7207 - 163c: 05080408 streq r0, [r8, #-1032] - 1640: 07080608 streq r0, [r8, -r8, lsl #12] - 1644: 09080808 stmdbeq r8, {r3, fp} - 1648: 0b080a08 bleq 203e70 - 164c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1650: 00000028 andeq r0, r0, r8, lsr #32 - 1654: 00001624 andeq r1, r0, r4, lsr #12 - 1658: 00401274 subeq r1, r0, r4, ror r2 - 165c: 0000000c andeq r0, r0, ip - 1660: 0584140e streq r1, [r4, #1038] - 1664: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 - 1668: 018e0287 orreq r0, lr, r7, lsl #5 - 166c: 000e0941 andeq r0, lr, r1, asr #18 - 1670: c4040e41 strgt r0, [r4], #-3649 - 1674: 41c7c6c5 bicmi ip, r7, r5, asr #13 - 1678: 0000000e andeq r0, r0, lr - 167c: 00000028 andeq r0, r0, r8, lsr #32 - 1680: ffffffff undefined instruction 0xffffffff - 1684: 7c020003 stcvc 0, cr0, [r2], {3} - 1688: 000d0c0e andeq r0, sp, lr, lsl #24 - 168c: 01070007 tsteq r7, r7 - 1690: 03070207 movweq r0, #29191 ; 0x7207 - 1694: 05080408 streq r0, [r8, #-1032] - 1698: 07080608 streq r0, [r8, -r8, lsl #12] - 169c: 09080808 stmdbeq r8, {r3, fp} - 16a0: 0b080a08 bleq 203ec8 - 16a4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 16a8: 00000020 andeq r0, r0, r0, lsr #32 - 16ac: 0000167c andeq r1, r0, ip, ror r6 - 16b0: 00401280 subeq r1, r0, r0, lsl #5 - 16b4: 000001b2 strheq r0, [r0], -r2 - 16b8: 84180e41 ldrhi r0, [r8], #-3649 - 16bc: 86048505 strhi r8, [r4], -r5, lsl #10 - 16c0: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 16c4: 0ed70201 cdpeq 2, 13, cr0, cr7, cr1, {0} - 16c8: 00000014 andeq r0, r0, r4, lsl r0 - 16cc: 00000028 andeq r0, r0, r8, lsr #32 - 16d0: ffffffff undefined instruction 0xffffffff - 16d4: 7c020003 stcvc 0, cr0, [r2], {3} - 16d8: 000d0c0e andeq r0, sp, lr, lsl #24 - 16dc: 01070007 tsteq r7, r7 - 16e0: 03070207 movweq r0, #29191 ; 0x7207 - 16e4: 05080408 streq r0, [r8, #-1032] - 16e8: 07080608 streq r0, [r8, -r8, lsl #12] - 16ec: 09080808 stmdbeq r8, {r3, fp} - 16f0: 0b080a08 bleq 203f18 - 16f4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 16f8: 00000020 andeq r0, r0, r0, lsr #32 - 16fc: 000016cc andeq r1, r0, ip, asr #13 - 1700: 00401434 subeq r1, r0, r4, lsr r4 - 1704: 00000278 andeq r0, r0, r8, ror r2 - 1708: 84180e41 ldrhi r0, [r8], #-3649 - 170c: 86048505 strhi r8, [r4], -r5, lsl #10 - 1710: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 1714: 0e860201 cdpeq 2, 8, cr0, cr6, cr1, {0} - 1718: 180e4114 stmdane lr, {r2, r4, r8, lr} - 171c: 00000028 andeq r0, r0, r8, lsr #32 - 1720: ffffffff undefined instruction 0xffffffff - 1724: 7c020003 stcvc 0, cr0, [r2], {3} - 1728: 000d0c0e andeq r0, sp, lr, lsl #24 - 172c: 01070007 tsteq r7, r7 - 1730: 03070207 movweq r0, #29191 ; 0x7207 - 1734: 05080408 streq r0, [r8, #-1032] - 1738: 07080608 streq r0, [r8, -r8, lsl #12] - 173c: 09080808 stmdbeq r8, {r3, fp} - 1740: 0b080a08 bleq 203f68 - 1744: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1748: 00000020 andeq r0, r0, r0, lsr #32 - 174c: 0000171c andeq r1, r0, ip, lsl r7 - 1750: 004016ac subeq r1, r0, ip, lsr #13 - 1754: 00000134 andeq r0, r0, r4, lsr r1 - 1758: 84180e41 ldrhi r0, [r8], #-3649 - 175c: 86048505 strhi r8, [r4], -r5, lsl #10 - 1760: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 1764: 0e870201 cdpeq 2, 8, cr0, cr7, cr1, {0} - 1768: 00000014 andeq r0, r0, r4, lsl r0 - 176c: 00000028 andeq r0, r0, r8, lsr #32 - 1770: ffffffff undefined instruction 0xffffffff - 1774: 7c020003 stcvc 0, cr0, [r2], {3} - 1778: 000d0c0e andeq r0, sp, lr, lsl #24 - 177c: 01070007 tsteq r7, r7 - 1780: 03070207 movweq r0, #29191 ; 0x7207 - 1784: 05080408 streq r0, [r8, #-1032] - 1788: 07080608 streq r0, [r8, -r8, lsl #12] - 178c: 09080808 stmdbeq r8, {r3, fp} - 1790: 0b080a08 bleq 203fb8 - 1794: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1798: 0000001c andeq r0, r0, ip, lsl r0 - 179c: 0000176c andeq r1, r0, ip, ror #14 - 17a0: 004017e0 subeq r1, r0, r0, ror #15 - 17a4: 0000002c andeq r0, r0, ip, lsr #32 - 17a8: 8e040e41 cdphi 14, 0, cr0, cr4, cr1, {2} - 17ac: 100e4101 andne r4, lr, r1, lsl #2 - 17b0: 000e094f andeq r0, lr, pc, asr #18 - 17b4: 00000e41 andeq r0, r0, r1, asr #28 - 17b8: 00000028 andeq r0, r0, r8, lsr #32 - 17bc: ffffffff undefined instruction 0xffffffff - 17c0: 7c020003 stcvc 0, cr0, [r2], {3} - 17c4: 000d0c0e andeq r0, sp, lr, lsl #24 - 17c8: 01070007 tsteq r7, r7 - 17cc: 03070207 movweq r0, #29191 ; 0x7207 - 17d0: 05080408 streq r0, [r8, #-1032] - 17d4: 07080608 streq r0, [r8, -r8, lsl #12] - 17d8: 09080808 stmdbeq r8, {r3, fp} - 17dc: 0b080a08 bleq 204004 - 17e0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 17e4: 0000001c andeq r0, r0, ip, lsl r0 - 17e8: 000017b8 strheq r1, [r0], -r8 - 17ec: 0040180c subeq r1, r0, ip, lsl #16 - 17f0: 00000038 andeq r0, r0, r8, lsr r0 - 17f4: 84100e41 ldrhi r0, [r0], #-3649 - 17f8: 8e028503 cfsh32hi mvfx8, mvfx2, #3 - 17fc: 180e5201 stmdane lr, {r0, r9, ip, lr} - 1800: 00100e48 andseq r0, r0, r8, asr #28 - 1804: 00000028 andeq r0, r0, r8, lsr #32 - 1808: ffffffff undefined instruction 0xffffffff - 180c: 7c020003 stcvc 0, cr0, [r2], {3} - 1810: 000d0c0e andeq r0, sp, lr, lsl #24 - 1814: 01070007 tsteq r7, r7 - 1818: 03070207 movweq r0, #29191 ; 0x7207 - 181c: 05080408 streq r0, [r8, #-1032] - 1820: 07080608 streq r0, [r8, -r8, lsl #12] - 1824: 09080808 stmdbeq r8, {r3, fp} - 1828: 0b080a08 bleq 204050 - 182c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1830: 00000024 andeq r0, r0, r4, lsr #32 - 1834: 00001804 andeq r1, r0, r4, lsl #16 - 1838: 00401844 subeq r1, r0, r4, asr #16 - 183c: 0000000a andeq r0, r0, sl - 1840: 0384100e orreq r1, r4, #14 ; 0xe - 1844: 018e0285 orreq r0, lr, r5, lsl #5 - 1848: 410c0e41 tstmi ip, r1, asr #28 - 184c: 41000e09 tstmi r0, r9, lsl #28 - 1850: c5c4040e strbgt r0, [r4, #1038] - 1854: 00000e41 andeq r0, r0, r1, asr #28 - 1858: 00000028 andeq r0, r0, r8, lsr #32 - 185c: ffffffff undefined instruction 0xffffffff - 1860: 7c020003 stcvc 0, cr0, [r2], {3} - 1864: 000d0c0e andeq r0, sp, lr, lsl #24 - 1868: 01070007 tsteq r7, r7 - 186c: 03070207 movweq r0, #29191 ; 0x7207 - 1870: 05080408 streq r0, [r8, #-1032] - 1874: 07080608 streq r0, [r8, -r8, lsl #12] - 1878: 09080808 stmdbeq r8, {r3, fp} - 187c: 0b080a08 bleq 2040a4 - 1880: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1884: 00000018 andeq r0, r0, r8, lsl r0 - 1888: 00001858 andeq r1, r0, r8, asr r8 - 188c: 00401854 subeq r1, r0, r4, asr r8 - 1890: 00000020 andeq r0, r0, r0, lsr #32 - 1894: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} - 1898: 100e4301 andne r4, lr, r1, lsl #6 - 189c: 00080e48 andeq r0, r8, r8, asr #28 - 18a0: 00000028 andeq r0, r0, r8, lsr #32 - 18a4: ffffffff undefined instruction 0xffffffff - 18a8: 7c020003 stcvc 0, cr0, [r2], {3} - 18ac: 000d0c0e andeq r0, sp, lr, lsl #24 - 18b0: 01070007 tsteq r7, r7 - 18b4: 03070207 movweq r0, #29191 ; 0x7207 - 18b8: 05080408 streq r0, [r8, #-1032] - 18bc: 07080608 streq r0, [r8, -r8, lsl #12] - 18c0: 09080808 stmdbeq r8, {r3, fp} - 18c4: 0b080a08 bleq 2040ec - 18c8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 18cc: 00000018 andeq r0, r0, r8, lsl r0 - 18d0: 000018a0 andeq r1, r0, r0, lsr #17 - 18d4: 00401874 subeq r1, r0, r4, ror r8 - 18d8: 000000c4 andeq r0, r0, r4, asr #1 - 18dc: 84100e41 ldrhi r0, [r0], #-3649 - 18e0: 8e028503 cfsh32hi mvfx8, mvfx2, #3 - 18e4: 00000001 andeq r0, r0, r1 - 18e8: 00000028 andeq r0, r0, r8, lsr #32 - 18ec: ffffffff undefined instruction 0xffffffff - 18f0: 7c020003 stcvc 0, cr0, [r2], {3} - 18f4: 000d0c0e andeq r0, sp, lr, lsl #24 - 18f8: 01070007 tsteq r7, r7 - 18fc: 03070207 movweq r0, #29191 ; 0x7207 - 1900: 05080408 streq r0, [r8, #-1032] - 1904: 07080608 streq r0, [r8, -r8, lsl #12] - 1908: 09080808 stmdbeq r8, {r3, fp} - 190c: 0b080a08 bleq 204134 - 1910: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1914: 00000024 andeq r0, r0, r4, lsr #32 - 1918: 000018e8 andeq r1, r0, r8, ror #17 - 191c: 00401938 subeq r1, r0, r8, lsr r9 - 1920: 0000002a andeq r0, r0, sl, lsr #32 - 1924: 84100e41 ldrhi r0, [r0], #-3649 - 1928: 8e028503 cfsh32hi mvfx8, mvfx2, #3 - 192c: 0c0e5001 stceq 0, cr5, [lr], {1} - 1930: 010e0941 tsteq lr, r1, asr #18 - 1934: c4040e41 strgt r0, [r4], #-3649 - 1938: 000e41c5 andeq r4, lr, r5, asr #3 - 193c: 00000028 andeq r0, r0, r8, lsr #32 - 1940: ffffffff undefined instruction 0xffffffff - 1944: 7c020003 stcvc 0, cr0, [r2], {3} - 1948: 000d0c0e andeq r0, sp, lr, lsl #24 - 194c: 01070007 tsteq r7, r7 - 1950: 03070207 movweq r0, #29191 ; 0x7207 - 1954: 05080408 streq r0, [r8, #-1032] - 1958: 07080608 streq r0, [r8, -r8, lsl #12] - 195c: 09080808 stmdbeq r8, {r3, fp} - 1960: 0b080a08 bleq 204188 - 1964: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1968: 0000002c andeq r0, r0, ip, lsr #32 - 196c: 0000193c andeq r1, r0, ip, lsr r9 - 1970: 00402fbc strheq r2, [r0], #-252 - 1974: 00000108 andeq r0, r0, r8, lsl #2 - 1978: 84180e41 ldrhi r0, [r8], #-3649 - 197c: 86048505 strhi r8, [r4], -r5, lsl #10 - 1980: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} - 1984: 0e720201 cdpeq 2, 7, cr0, cr2, cr1, {0} - 1988: 0e094114 mcreq 1, 0, r4, cr9, cr4, {0} - 198c: 040e4100 streq r4, [lr], #-256 - 1990: c7c6c5c4 strbgt ip, [r6, r4, asr #11] - 1994: 00000e41 andeq r0, r0, r1, asr #28 - 1998: 00000028 andeq r0, r0, r8, lsr #32 - 199c: ffffffff undefined instruction 0xffffffff - 19a0: 7c020003 stcvc 0, cr0, [r2], {3} - 19a4: 000d0c0e andeq r0, sp, lr, lsl #24 - 19a8: 01070007 tsteq r7, r7 - 19ac: 03070207 movweq r0, #29191 ; 0x7207 - 19b0: 05080408 streq r0, [r8, #-1032] - 19b4: 07080608 streq r0, [r8, -r8, lsl #12] - 19b8: 09080808 stmdbeq r8, {r3, fp} - 19bc: 0b080a08 bleq 2041e4 - 19c0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 19c4: 0000000c andeq r0, r0, ip - 19c8: 00001998 muleq r0, r8, r9 - 19cc: 004030c4 subeq r3, r0, r4, asr #1 - 19d0: 00000028 andeq r0, r0, r8, lsr #32 - 19d4: 00000028 andeq r0, r0, r8, lsr #32 - 19d8: ffffffff undefined instruction 0xffffffff - 19dc: 7c020003 stcvc 0, cr0, [r2], {3} - 19e0: 000d0c0e andeq r0, sp, lr, lsl #24 - 19e4: 01070007 tsteq r7, r7 - 19e8: 03070207 movweq r0, #29191 ; 0x7207 - 19ec: 05080408 streq r0, [r8, #-1032] - 19f0: 07080608 streq r0, [r8, -r8, lsl #12] - 19f4: 09080808 stmdbeq r8, {r3, fp} - 19f8: 0b080a08 bleq 204220 - 19fc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1a00: 00000018 andeq r0, r0, r8, lsl r0 - 1a04: 000019d4 ldrdeq r1, [r0], -r4 - 1a08: 004030ec subeq r3, r0, ip, ror #1 - 1a0c: 00000040 andeq r0, r0, r0, asr #32 - 1a10: 84080e41 strhi r0, [r8], #-3649 - 1a14: 5c018502 cfstr32pl mvfx8, [r1], {2} - 1a18: c5c4000e strbgt r0, [r4, #14] - 1a1c: 00000028 andeq r0, r0, r8, lsr #32 - 1a20: ffffffff undefined instruction 0xffffffff - 1a24: 7c020003 stcvc 0, cr0, [r2], {3} - 1a28: 000d0c0e andeq r0, sp, lr, lsl #24 - 1a2c: 01070007 tsteq r7, r7 - 1a30: 03070207 movweq r0, #29191 ; 0x7207 - 1a34: 05080408 streq r0, [r8, #-1032] - 1a38: 07080608 streq r0, [r8, -r8, lsl #12] - 1a3c: 09080808 stmdbeq r8, {r3, fp} - 1a40: 0b080a08 bleq 204268 - 1a44: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1a48: 00000018 andeq r0, r0, r8, lsl r0 - 1a4c: 00001a1c andeq r1, r0, ip, lsl sl - 1a50: 0040312c subeq r3, r0, ip, lsr #2 - 1a54: 00000038 andeq r0, r0, r8, lsr r0 - 1a58: 84080e41 strhi r0, [r8], #-3649 - 1a5c: 58018502 stmdapl r1, {r1, r8, sl, pc} - 1a60: c5c4000e strbgt r0, [r4, #14] - 1a64: 00000028 andeq r0, r0, r8, lsr #32 - 1a68: ffffffff undefined instruction 0xffffffff - 1a6c: 7c020003 stcvc 0, cr0, [r2], {3} - 1a70: 000d0c0e andeq r0, sp, lr, lsl #24 - 1a74: 01070007 tsteq r7, r7 - 1a78: 03070207 movweq r0, #29191 ; 0x7207 - 1a7c: 05080408 streq r0, [r8, #-1032] - 1a80: 07080608 streq r0, [r8, -r8, lsl #12] - 1a84: 09080808 stmdbeq r8, {r3, fp} - 1a88: 0b080a08 bleq 2042b0 - 1a8c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1a90: 0000000c andeq r0, r0, ip - 1a94: 00001a64 andeq r1, r0, r4, ror #20 - 1a98: 0040316c subeq r3, r0, ip, ror #2 - 1a9c: 0000001c andeq r0, r0, ip, lsl r0 - 1aa0: 00000028 andeq r0, r0, r8, lsr #32 - 1aa4: ffffffff undefined instruction 0xffffffff - 1aa8: 7c020003 stcvc 0, cr0, [r2], {3} - 1aac: 000d0c0e andeq r0, sp, lr, lsl #24 - 1ab0: 01070007 tsteq r7, r7 - 1ab4: 03070207 movweq r0, #29191 ; 0x7207 - 1ab8: 05080408 streq r0, [r8, #-1032] - 1abc: 07080608 streq r0, [r8, -r8, lsl #12] - 1ac0: 09080808 stmdbeq r8, {r3, fp} - 1ac4: 0b080a08 bleq 2042ec - 1ac8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1acc: 0000000c andeq r0, r0, ip - 1ad0: 00001aa0 andeq r1, r0, r0, lsr #21 - 1ad4: 00403188 subeq r3, r0, r8, lsl #3 - 1ad8: 00000016 andeq r0, r0, r6, lsl r0 - 1adc: 00000028 andeq r0, r0, r8, lsr #32 - 1ae0: ffffffff undefined instruction 0xffffffff - 1ae4: 7c020003 stcvc 0, cr0, [r2], {3} - 1ae8: 000d0c0e andeq r0, sp, lr, lsl #24 - 1aec: 01070007 tsteq r7, r7 - 1af0: 03070207 movweq r0, #29191 ; 0x7207 - 1af4: 05080408 streq r0, [r8, #-1032] - 1af8: 07080608 streq r0, [r8, -r8, lsl #12] - 1afc: 09080808 stmdbeq r8, {r3, fp} - 1b00: 0b080a08 bleq 204328 - 1b04: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1b08: 00000018 andeq r0, r0, r8, lsl r0 - 1b0c: 00001adc ldrdeq r1, [r0], -ip - 1b10: 00403dc8 subeq r3, r0, r8, asr #27 - 1b14: 0000003c andeq r0, r0, ip, lsr r0 - 1b18: 84080e41 strhi r0, [r8], #-3649 - 1b1c: 040e5501 streq r5, [lr], #-1281 - 1b20: 000000c4 andeq r0, r0, r4, asr #1 - 1b24: 00000028 andeq r0, r0, r8, lsr #32 - 1b28: ffffffff undefined instruction 0xffffffff - 1b2c: 7c020003 stcvc 0, cr0, [r2], {3} - 1b30: 000d0c0e andeq r0, sp, lr, lsl #24 - 1b34: 01070007 tsteq r7, r7 - 1b38: 03070207 movweq r0, #29191 ; 0x7207 - 1b3c: 05080408 streq r0, [r8, #-1032] - 1b40: 07080608 streq r0, [r8, -r8, lsl #12] - 1b44: 09080808 stmdbeq r8, {r3, fp} - 1b48: 0b080a08 bleq 204370 - 1b4c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1b50: 0000000c andeq r0, r0, ip - 1b54: 00001b24 andeq r1, r0, r4, lsr #22 - 1b58: 004031a4 subeq r3, r0, r4, lsr #3 - 1b5c: 00000074 andeq r0, r0, r4, ror r0 - 1b60: 00000028 andeq r0, r0, r8, lsr #32 - 1b64: ffffffff undefined instruction 0xffffffff - 1b68: 7c020003 stcvc 0, cr0, [r2], {3} - 1b6c: 000d0c0e andeq r0, sp, lr, lsl #24 - 1b70: 01070007 tsteq r7, r7 - 1b74: 03070207 movweq r0, #29191 ; 0x7207 - 1b78: 05080408 streq r0, [r8, #-1032] - 1b7c: 07080608 streq r0, [r8, -r8, lsl #12] - 1b80: 09080808 stmdbeq r8, {r3, fp} - 1b84: 0b080a08 bleq 2043ac - 1b88: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1b8c: 0000002c andeq r0, r0, ip, lsr #32 - 1b90: 00001b60 andeq r1, r0, r0, ror #22 - 1b94: 00403218 subeq r3, r0, r8, lsl r2 - 1b98: 000000cc andeq r0, r0, ip, asr #1 - 1b9c: 84100e41 ldrhi r0, [r0], #-3649 - 1ba0: 86038504 strhi r8, [r3], -r4, lsl #10 - 1ba4: 41018e02 tstmi r1, r2, lsl #28 - 1ba8: 0e63380e cdpeq 8, 6, cr3, cr3, cr14, {0} - 1bac: 380e4840 stmdacc lr, {r6, fp, lr} - 1bb0: 48400e5f stmdami r0, {r0, r1, r2, r3, r4, r6, r9, sl, fp}^ - 1bb4: 0e4c380e cdpeq 8, 4, cr3, cr12, cr14, {0} - 1bb8: 00000010 andeq r0, r0, r0, lsl r0 - 1bbc: 00000028 andeq r0, r0, r8, lsr #32 - 1bc0: ffffffff undefined instruction 0xffffffff - 1bc4: 7c020003 stcvc 0, cr0, [r2], {3} - 1bc8: 000d0c0e andeq r0, sp, lr, lsl #24 - 1bcc: 01070007 tsteq r7, r7 - 1bd0: 03070207 movweq r0, #29191 ; 0x7207 - 1bd4: 05080408 streq r0, [r8, #-1032] - 1bd8: 07080608 streq r0, [r8, -r8, lsl #12] - 1bdc: 09080808 stmdbeq r8, {r3, fp} - 1be0: 0b080a08 bleq 204408 - 1be4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1be8: 00000018 andeq r0, r0, r8, lsl r0 - 1bec: 00001bbc strheq r1, [r0], -ip - 1bf0: 004032e4 subeq r3, r0, r4, ror #5 - 1bf4: 00000030 andeq r0, r0, r0, lsr r0 - 1bf8: 84100e41 ldrhi r0, [r0], #-3649 - 1bfc: 86038504 strhi r8, [r3], -r4, lsl #10 - 1c00: 00018e02 andeq r8, r1, r2, lsl #28 - 1c04: 00000028 andeq r0, r0, r8, lsr #32 - 1c08: ffffffff undefined instruction 0xffffffff - 1c0c: 7c020003 stcvc 0, cr0, [r2], {3} - 1c10: 000d0c0e andeq r0, sp, lr, lsl #24 - 1c14: 01070007 tsteq r7, r7 - 1c18: 03070207 movweq r0, #29191 ; 0x7207 - 1c1c: 05080408 streq r0, [r8, #-1032] - 1c20: 07080608 streq r0, [r8, -r8, lsl #12] - 1c24: 09080808 stmdbeq r8, {r3, fp} - 1c28: 0b080a08 bleq 204450 - 1c2c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1c30: 00000024 andeq r0, r0, r4, lsr #32 - 1c34: 00001c04 andeq r1, r0, r4, lsl #24 - 1c38: 00403314 subeq r3, r0, r4, lsl r3 - 1c3c: 00000008 andeq r0, r0, r8 - 1c40: 0484100e streq r1, [r4], #14 - 1c44: 02860385 addeq r0, r6, #335544322 ; 0x14000002 - 1c48: 0941018e stmdbeq r1, {r1, r2, r3, r7, r8}^ - 1c4c: 0e41010e dvfeqs f0, f1, #0.5 - 1c50: c6c5c404 strbgt ip, [r5], r4, lsl #8 - 1c54: 00000e41 andeq r0, r0, r1, asr #28 - 1c58: 00000028 andeq r0, r0, r8, lsr #32 - 1c5c: ffffffff undefined instruction 0xffffffff - 1c60: 7c040003 stcvc 0, cr0, [r4], {3} - 1c64: 000d0c0e andeq r0, sp, lr, lsl #24 - 1c68: 01080008 tsteq r8, r8 - 1c6c: 03080208 movweq r0, #33288 ; 0x8208 - 1c70: 05080408 streq r0, [r8, #-1032] - 1c74: 07080608 streq r0, [r8, -r8, lsl #12] - 1c78: 09080808 stmdbeq r8, {r3, fp} - 1c7c: 0b080a08 bleq 2044a4 - 1c80: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1c84: 00000014 andeq r0, r0, r4, lsl r0 - 1c88: 00001c58 andeq r1, r0, r8, asr ip - 1c8c: 00403f34 subeq r3, r0, r4, lsr pc - 1c90: 00000008 andeq r0, r0, r8 - 1c94: 01070007 tsteq r7, r7 - 1c98: 03070207 movweq r0, #29191 ; 0x7207 - 1c9c: 00000028 andeq r0, r0, r8, lsr #32 - 1ca0: ffffffff undefined instruction 0xffffffff - 1ca4: 7c040003 stcvc 0, cr0, [r4], {3} - 1ca8: 000d0c0e andeq r0, sp, lr, lsl #24 - 1cac: 01070007 tsteq r7, r7 - 1cb0: 03070207 movweq r0, #29191 ; 0x7207 - 1cb4: 05080408 streq r0, [r8, #-1032] - 1cb8: 07080608 streq r0, [r8, -r8, lsl #12] - 1cbc: 09080808 stmdbeq r8, {r3, fp} - 1cc0: 0b080a08 bleq 2044e8 - 1cc4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1cc8: 00000018 andeq r0, r0, r8, lsl r0 - 1ccc: 00001c9c muleq r0, ip, ip - 1cd0: 00403e3c subeq r3, r0, ip, lsr lr - 1cd4: 00000034 andeq r0, r0, r4, lsr r0 - 1cd8: 84080e42 strhi r0, [r8], #-3650 - 1cdc: 48018e02 stmdami r1, {r1, r9, sl, fp, pc} - 1ce0: cec4000e cdpgt 0, 12, cr0, cr4, cr14, {0} - 1ce4: 00000028 andeq r0, r0, r8, lsr #32 - 1ce8: ffffffff undefined instruction 0xffffffff - 1cec: 7c040003 stcvc 0, cr0, [r4], {3} - 1cf0: 000d0c0e andeq r0, sp, lr, lsl #24 - 1cf4: 01080008 tsteq r8, r8 - 1cf8: 03080208 movweq r0, #33288 ; 0x8208 - 1cfc: 05080408 streq r0, [r8, #-1032] - 1d00: 07080608 streq r0, [r8, -r8, lsl #12] - 1d04: 09080808 stmdbeq r8, {r3, fp} - 1d08: 0b080a08 bleq 204530 - 1d0c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1d10: 00000014 andeq r0, r0, r4, lsl r0 - 1d14: 00001ce4 andeq r1, r0, r4, ror #25 - 1d18: 00403d3c subeq r3, r0, ip, lsr sp - 1d1c: 00000048 andeq r0, r0, r8, asr #32 - 1d20: 01070007 tsteq r7, r7 - 1d24: 03070207 movweq r0, #29191 ; 0x7207 - 1d28: 00000028 andeq r0, r0, r8, lsr #32 - 1d2c: ffffffff undefined instruction 0xffffffff - 1d30: 7c040003 stcvc 0, cr0, [r4], {3} - 1d34: 000d0c0e andeq r0, sp, lr, lsl #24 - 1d38: 01070007 tsteq r7, r7 - 1d3c: 03070207 movweq r0, #29191 ; 0x7207 - 1d40: 05080408 streq r0, [r8, #-1032] - 1d44: 07080608 streq r0, [r8, -r8, lsl #12] - 1d48: 09080808 stmdbeq r8, {r3, fp} - 1d4c: 0b080a08 bleq 204574 - 1d50: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1d54: 0000000c andeq r0, r0, ip - 1d58: 00001d28 andeq r1, r0, r8, lsr #26 - 1d5c: 00403e98 umaaleq r3, r0, r8, lr - 1d60: 00000028 andeq r0, r0, r8, lsr #32 - 1d64: 00000028 andeq r0, r0, r8, lsr #32 - 1d68: ffffffff undefined instruction 0xffffffff - 1d6c: 7c040003 stcvc 0, cr0, [r4], {3} - 1d70: 000d0c0e andeq r0, sp, lr, lsl #24 - 1d74: 01070007 tsteq r7, r7 - 1d78: 03070207 movweq r0, #29191 ; 0x7207 - 1d7c: 05080408 streq r0, [r8, #-1032] - 1d80: 07080608 streq r0, [r8, -r8, lsl #12] - 1d84: 09080808 stmdbeq r8, {r3, fp} - 1d88: 0b080a08 bleq 2045b0 - 1d8c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} - 1d90: 00000038 andeq r0, r0, r8, lsr r0 - 1d94: 00001d64 andeq r1, r0, r4, ror #26 - 1d98: 004036fc strdeq r3, [r0], #-108 - 1d9c: 000000e8 andeq r0, r0, r8, ror #1 - 1da0: 84200e41 strthi r0, [r0], #-3649 - 1da4: 86068507 strhi r8, [r6], -r7, lsl #10 - 1da8: 88048705 stmdahi r4, {r0, r2, r8, r9, sl, pc} - 1dac: 8e028903 cdphi 9, 0, cr8, cr2, cr3, {0} - 1db0: 040e5801 streq r5, [lr], #-2049 - 1db4: c7c6c5c4 strbgt ip, [r6, r4, asr #11] - 1db8: 41cec9c8 bicmi ip, lr, r8, asr #19 - 1dbc: 0784200e streq r2, [r4, lr] - 1dc0: 05860685 streq r0, [r6, #1669] - 1dc4: 03880487 orreq r0, r8, #-2030043136 ; 0x87000000 - 1dc8: 018e0289 orreq r0, lr, r9, lsl #5 - -Disassembly of section .debug_info: - -00000000 <.debug_info>: - 0: 000000e8 andeq r0, r0, r8, ror #1 - 4: 00000003 andeq r0, r0, r3 - 8: 01040000 tsteq r4, r0 - c: 445c3a43 ldrbmi r3, [ip], #-2627 - 10: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 14: 73746e65 cmnvc r4, #1616 ; 0x650 - 18: 646e6120 strbtvs r6, [lr], #-288 - 1c: 74655320 strbtvc r5, [r5], #-800 - 20: 676e6974 undefined - 24: 616d5c73 smcvs 54723 - 28: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 30: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 34: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 38: 775c7374 undefined - 3c: 6f632d73 svcvs 0x00632d73 - 40: 6f72746e svcvs 0x0072746e - 44: 65575c6c ldrbvs r5, [r7, #-3180] - 48: 65687461 strbvs r7, [r8, #-1121]! - 4c: 74532072 ldrbvc r2, [r3], #-114 - 50: 6f697461 svcvs 0x00697461 - 54: 6f43206e svcvs 0x0043206e - 58: 6f72746e svcvs 0x0072746e - 5c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 60: 414d535c cmpmi sp, ip, asr r3 - 64: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 68: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 6c: 6f535c73 svcvs 0x00535c73 - 70: 65637275 strbvs r7, [r3, #-629]! - 74: 6c65445c cfstrdvs mvd4, [r5], #-368 - 78: 632e7961 teqvs lr, #1589248 ; 0x184000 - 7c: 52414900 subpl r4, r1, #0 ; 0x0 - 80: 534e4120 movtpl r4, #57632 ; 0xe120 - 84: 2f432049 svccs 0x00432049 - 88: 202b2b43 eorcs r2, fp, r3, asr #22 - 8c: 706d6f43 rsbvc r6, sp, r3, asr #30 - 90: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 94: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 98: 322e3033 eorcc r3, lr, #51 ; 0x33 - 9c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a0: 572f3539 undefined - a4: 4b203233 blmi 80c978 - a8: 534b4349 movtpl r4, #45897 ; 0xb349 - ac: 54524154 ldrbpl r4, [r2], #-340 - b0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - b4: 4d524120 ldfmie f4, [r2, #-128] - b8: 00000100 andeq r0, r0, r0, lsl #2 - bc: 00000000 andeq r0, r0, r0 - c0: 75030000 strvc r0, [r3] - c4: 6769736e strbvs r7, [r9, -lr, ror #6]! - c8: 2064656e rsbcs r6, r4, lr, ror #10 - cc: 676e6f6c strbvs r6, [lr, -ip, ror #30]! - d0: 04070400 streq r0, [r7], #-1024 - d4: 0000d913 andeq sp, r0, r3, lsl r9 - d8: 69750800 ldmdbvs r5!, {fp}^ - dc: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 - e0: 1500745f strne r7, [r0, #-1119] - e4: 1e0101c2 adfnedm f0, f1, f2 - e8: 00000019 andeq r0, r0, r9, lsl r0 - ec: 0000010c andeq r0, r0, ip, lsl #2 - f0: 00000003 andeq r0, r0, r3 - f4: 02040000 andeq r0, r4, #0 ; 0x0 - f8: 445c3a43 ldrbmi r3, [ip], #-2627 - fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 100: 73746e65 cmnvc r4, #1616 ; 0x650 - 104: 646e6120 strbtvs r6, [lr], #-288 - 108: 74655320 strbtvc r5, [r5], #-800 - 10c: 676e6974 undefined - 110: 616d5c73 smcvs 54723 - 114: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 118: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 11c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 120: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 124: 775c7374 undefined - 128: 6f632d73 svcvs 0x00632d73 - 12c: 6f72746e svcvs 0x0072746e - 130: 65575c6c ldrbvs r5, [r7, #-3180] - 134: 65687461 strbvs r7, [r8, #-1121]! - 138: 74532072 ldrbvc r2, [r3], #-114 - 13c: 6f697461 svcvs 0x00697461 - 140: 6f43206e svcvs 0x0043206e - 144: 6f72746e svcvs 0x0072746e - 148: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 14c: 414d535c cmpmi sp, ip, asr r3 - 150: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 154: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 158: 6f535c73 svcvs 0x00535c73 - 15c: 65637275 strbvs r7, [r3, #-629]! - 160: 6c65445c cfstrdvs mvd4, [r5], #-368 - 164: 632e7961 teqvs lr, #1589248 ; 0x184000 - 168: 52414900 subpl r4, r1, #0 ; 0x0 - 16c: 534e4120 movtpl r4, #57632 ; 0xe120 - 170: 2f432049 svccs 0x00432049 - 174: 202b2b43 eorcs r2, fp, r3, asr #22 - 178: 706d6f43 rsbvc r6, sp, r3, asr #30 - 17c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 180: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 184: 322e3033 eorcc r3, lr, #51 ; 0x33 - 188: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 18c: 572f3539 undefined - 190: 4b203233 blmi 80ca64 - 194: 534b4349 movtpl r4, #45897 ; 0xb349 - 198: 54524154 ldrbpl r4, [r2], #-340 - 19c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 1a0: 4d524120 ldfmie f4, [r2, #-128] - 1a4: 3d840100 stfccs f0, [r4] - 1a8: 3da80040 stccc 0, cr0, [r8, #256]! - 1ac: 02180040 andseq r0, r8, #64 ; 0x40 - 1b0: 00000000 andeq r0, r0, r0 - 1b4: 0b100000 bleq 4001bc - 1b8: 05000000 streq r0, [r0] - 1bc: 0000010c andeq r0, r0, ip, lsl #2 - 1c0: 616c6544 cmnvs ip, r4, asr #10 - 1c4: 00734d79 rsbseq r4, r3, r9, ror sp - 1c8: 01061401 tsteq r6, r1, lsl #8 - 1cc: 00000000 andeq r0, r0, r0 - 1d0: 00403d84 subeq r3, r0, r4, lsl #27 - 1d4: 00403da8 subeq r3, r0, r8, lsr #27 - 1d8: 00736d06 rsbseq r6, r3, r6, lsl #26 - 1dc: 10171401 andsne r1, r7, r1, lsl #8 - 1e0: 000000d9 ldrdeq r0, [r0], -r9 - 1e4: 0000002c andeq r0, r0, ip, lsr #32 - 1e8: 01006907 tsteq r0, r7, lsl #18 - 1ec: d3101516 tstle r0, #92274688 ; 0x5800000 - 1f0: 49000000 stmdbmi r0, {} - ... - 1fc: 0000010c andeq r0, r0, ip, lsl #2 - 200: 00000003 andeq r0, r0, r3 - 204: 02040000 andeq r0, r4, #0 ; 0x0 - 208: 445c3a43 ldrbmi r3, [ip], #-2627 - 20c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 210: 73746e65 cmnvc r4, #1616 ; 0x650 - 214: 646e6120 strbtvs r6, [lr], #-288 - 218: 74655320 strbtvc r5, [r5], #-800 - 21c: 676e6974 undefined - 220: 616d5c73 smcvs 54723 - 224: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 228: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 22c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 230: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 234: 775c7374 undefined - 238: 6f632d73 svcvs 0x00632d73 - 23c: 6f72746e svcvs 0x0072746e - 240: 65575c6c ldrbvs r5, [r7, #-3180] - 244: 65687461 strbvs r7, [r8, #-1121]! - 248: 74532072 ldrbvc r2, [r3], #-114 - 24c: 6f697461 svcvs 0x00697461 - 250: 6f43206e svcvs 0x0043206e - 254: 6f72746e svcvs 0x0072746e - 258: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 25c: 414d535c cmpmi sp, ip, asr r3 - 260: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 264: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 268: 6f535c73 svcvs 0x00535c73 - 26c: 65637275 strbvs r7, [r3, #-629]! - 270: 6c65445c cfstrdvs mvd4, [r5], #-368 - 274: 632e7961 teqvs lr, #1589248 ; 0x184000 - 278: 52414900 subpl r4, r1, #0 ; 0x0 - 27c: 534e4120 movtpl r4, #57632 ; 0xe120 - 280: 2f432049 svccs 0x00432049 - 284: 202b2b43 eorcs r2, fp, r3, asr #22 - 288: 706d6f43 rsbvc r6, sp, r3, asr #30 - 28c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 290: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 294: 322e3033 eorcc r3, lr, #51 ; 0x33 - 298: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 29c: 572f3539 undefined - 2a0: 4b203233 blmi 80cb74 - 2a4: 534b4349 movtpl r4, #45897 ; 0xb349 - 2a8: 54524154 ldrbpl r4, [r2], #-340 - 2ac: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 2b0: 4d524120 ldfmie f4, [r2, #-128] - 2b4: 3da80100 stfccs f0, [r8] - 2b8: 3dc60040 stclcc 0, cr0, [r6, #256] - 2bc: 02cc0040 sbceq r0, ip, #64 ; 0x40 - 2c0: 00660000 rsbeq r0, r6, r0 - 2c4: 0b100000 bleq 4002cc - 2c8: 05000000 streq r0, [r0] - 2cc: 0000010c andeq r0, r0, ip, lsl #2 - 2d0: 616c6544 cmnvs ip, r4, asr #10 - 2d4: 00735579 rsbseq r5, r3, r9, ror r5 - 2d8: 01062001 tsteq r6, r1 - 2dc: 00000067 andeq r0, r0, r7, rrx - 2e0: 00403da8 subeq r3, r0, r8, lsr #27 - 2e4: 00403dc6 subeq r3, r0, r6, asr #27 - 2e8: 00737506 rsbseq r7, r3, r6, lsl #10 - 2ec: 10172001 andsne r2, r7, r1 - 2f0: 000000d9 ldrdeq r0, [r0], -r9 - 2f4: 00000093 muleq r0, r3, r0 - 2f8: 01006907 tsteq r0, r7, lsl #18 - 2fc: d3101522 tstle r0, #142606336 ; 0x8800000 - 300: b0000000 andlt r0, r0, r0 - ... - 30c: 00000574 andeq r0, r0, r4, ror r5 - 310: 00840003 addeq r0, r4, r3 - 314: 01040000 tsteq r4, r0 - 318: 445c3a43 ldrbmi r3, [ip], #-2627 - 31c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 320: 73746e65 cmnvc r4, #1616 ; 0x650 - 324: 646e6120 strbtvs r6, [lr], #-288 - 328: 74655320 strbtvc r5, [r5], #-800 - 32c: 676e6974 undefined - 330: 616d5c73 smcvs 54723 - 334: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 338: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 33c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 340: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 344: 775c7374 undefined - 348: 6f632d73 svcvs 0x00632d73 - 34c: 6f72746e svcvs 0x0072746e - 350: 65575c6c ldrbvs r5, [r7, #-3180] - 354: 65687461 strbvs r7, [r8, #-1121]! - 358: 74532072 ldrbvc r2, [r3], #-114 - 35c: 6f697461 svcvs 0x00697461 - 360: 6f43206e svcvs 0x0043206e - 364: 6f72746e svcvs 0x0072746e - 368: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 36c: 7070415c rsbsvc r4, r0, ip, asr r1 - 370: 6163696c cmnvs r3, ip, ror #18 - 374: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 378: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 37c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 380: 445c7365 ldrbmi r7, [ip], #-869 - 384: 6c707369 ldclvs 3, cr7, [r0], #-420 - 388: 632e7961 teqvs lr, #1589248 ; 0x184000 - 38c: 52414900 subpl r4, r1, #0 ; 0x0 - 390: 534e4120 movtpl r4, #57632 ; 0xe120 - 394: 2f432049 svccs 0x00432049 - 398: 202b2b43 eorcs r2, fp, r3, asr #22 - 39c: 706d6f43 rsbvc r6, sp, r3, asr #30 - 3a0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 3a4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 3a8: 322e3033 eorcc r3, lr, #51 ; 0x33 - 3ac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 3b0: 572f3539 undefined - 3b4: 4b203233 blmi 80cc88 - 3b8: 534b4349 movtpl r4, #45897 ; 0xb349 - 3bc: 54524154 ldrbpl r4, [r2], #-340 - 3c0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 3c4: 4d524120 ldfmie f4, [r2, #-128] - 3c8: 03800100 orreq r0, r0, #0 ; 0x0 - 3cc: 00140000 andseq r0, r4, r0 - 3d0: 75020000 strvc r0, [r2] - 3d4: 6769736e strbvs r7, [r9, -lr, ror #6]! - 3d8: 2064656e rsbcs r6, r4, lr, ror #10 - 3dc: 726f6873 rsbvc r6, pc, #7536640 ; 0x730000 - 3e0: 07020074 smlsdxeq r2, r4, r0, r0 - 3e4: 05131303 ldreq r1, [r3, #-771] - 3e8: 15040000 strne r0, [r4] - 3ec: 750201d8 strvc r0, [r2, #-472] - 3f0: 6769736e strbvs r7, [r9, -lr, ror #6]! - 3f4: 2064656e rsbcs r6, r4, lr, ror #10 - 3f8: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 - 3fc: 03080100 movweq r0, #33024 ; 0x8100 - 400: 0004e713 andeq lr, r4, r3, lsl r7 - 404: f3150400 vshl.u16 d0, d0, d5 - 408: 42130301 andsmi r0, r3, #67108864 ; 0x4000000 - 40c: 03000002 movweq r0, #2 ; 0x2 - 410: 00028313 andeq r8, r2, r3, lsl r3 - 414: c7130600 ldrgt r0, [r3, -r0, lsl #12] - 418: 02000004 andeq r0, r0, #4 ; 0x4 - 41c: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} - 420: 63206465 teqvs r0, #1694498816 ; 0x65000000 - 424: 00726168 rsbseq r6, r2, r8, ror #2 - 428: 13040601 movwne r0, #17921 ; 0x4601 - 42c: 000004e7 andeq r0, r0, r7, ror #9 - 430: 67697302 strbvs r7, [r9, -r2, lsl #6]! - 434: 2064656e rsbcs r6, r4, lr, ror #10 - 438: 726f6873 rsbvc r6, pc, #7536640 ; 0x730000 - 43c: 05020074 streq r0, [r2, #-116] - 440: 736e7502 cmnvc lr, #8388608 ; 0x800000 - 444: 656e6769 strbvs r6, [lr, #-1897]! - 448: 6f6c2064 svcvs 0x006c2064 - 44c: 0400676e streq r6, [r0], #-1902 - 450: 018c1407 orreq r1, ip, r7, lsl #8 - 454: 15010000 strne r0, [r1] - 458: 69704767 ldmdbvs r0!, {r0, r1, r2, r5, r6, r8, r9, sl, lr}^ - 45c: 6e69506f cdpvs 0, 6, cr5, cr9, cr15, {3} - 460: 74617453 strbtvc r7, [r1], #-1107 - 464: 776f4c65 strbvc r4, [pc, -r5, ror #24]! - 468: 0000635f andeq r6, r0, pc, asr r3 - 46c: 70476715 subvc r6, r7, r5, lsl r7 - 470: 69506f69 ldmdbvs r0, {r0, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ - 474: 6174536e cmnvs r4, lr, ror #6 - 478: 69486574 stmdbvs r8, {r2, r4, r5, r6, r8, sl, sp, lr}^ - 47c: 635f6867 cmpvs pc, #6750208 ; 0x670000 - 480: 67150100 ldrvs r0, [r5, -r0, lsl #2] - 484: 6f697047 svcvs 0x00697047 - 488: 536e6950 cmnpl lr, #1310720 ; 0x140000 - 48c: 65746174 ldrbvs r6, [r4, #-372]! - 490: 5f78614d svcpl 0x0078614d - 494: 00020063 andeq r0, r2, r3, rrx - 498: 0001b914 andeq fp, r1, r4, lsl r9 - 49c: 67150100 ldrvs r0, [r5, -r0, lsl #2] - 4a0: 5f44434c svcpl 0x0044434c - 4a4: 46786548 ldrbtmi r6, [r8], -r8, asr #10 - 4a8: 616d726f cmnvs sp, pc, ror #4 - 4ac: 00635f74 rsbeq r5, r3, r4, ror pc - 4b0: 4c671500 cfstr64mi mvdx1, [r7] - 4b4: 445f4443 ldrbmi r4, [pc], #1091 ; 4bc <__FIQ_stack_size+0xbc> - 4b8: 6f466365 svcvs 0x00466365 - 4bc: 74616d72 strbtvc r6, [r1], #-3442 - 4c0: 0100635f tsteq r0, pc, asr r3 - 4c4: 020a1600 andeq r1, sl, #0 ; 0x0 - 4c8: 636c0000 cmnvs ip, #0 ; 0x0 - 4cc: 6e6f4664 cdpvs 6, 6, cr4, cr15, cr4, {3} - 4d0: 70795474 rsbsvc r5, r9, r4, ror r4 - 4d4: 61745f65 cmnvs r4, r5, ror #30 - 4d8: 15010067 strne r0, [r1, #-103] - 4dc: 44434c67 strbmi r4, [r3], #-3175 - 4e0: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 - 4e4: 466c616d strbtmi r6, [ip], -sp, ror #2 - 4e8: 5f746e6f svcpl 0x00746e6f - 4ec: 15000063 strne r0, [r0, #-99] - 4f0: 44434c67 strbmi r4, [r3], #-3175 - 4f4: 7265565f rsbvc r5, r5, #99614720 ; 0x5f00000 - 4f8: 616e6164 cmnvs lr, r4, ror #2 - 4fc: 746e6f46 strbtvc r6, [lr], #-3910 - 500: 0100635f tsteq r0, pc, asr r3 - 504: 434c6715 movtmi r6, #50965 ; 0xc715 - 508: 614d5f44 cmpvs sp, r4, asr #30 - 50c: 6e6f4678 mcrvs 6, 3, r4, cr15, cr8, {3} - 510: 00635f74 rsbeq r5, r3, r4, ror pc - 514: 42160002 andsmi r0, r6, #2 ; 0x2 - 518: 6c000002 stcvs 0, cr0, [r0], {2} - 51c: 72456463 subvc r6, r5, #1660944384 ; 0x63000000 - 520: 5f726f72 svcpl 0x00726f72 - 524: 00676174 rsbeq r6, r7, r4, ror r1 - 528: 4c671501 cfstr64mi mvdx1, [r7], #-4 - 52c: 4e5f4443 cdpmi 4, 5, cr4, cr15, cr3, {2} - 530: 7272456f rsbsvc r4, r2, #465567744 ; 0x1bc00000 - 534: 635f726f cmpvs pc, #-268435450 ; 0xf0000006 - 538: 67150000 ldrvs r0, [r5, -r0] - 53c: 5f44434c svcpl 0x0044434c - 540: 75657551 strbvc r7, [r5, #-1361]! - 544: 6c754665 ldclvs 6, cr4, [r5], #-404 - 548: 00635f6c rsbeq r5, r3, ip, ror #30 - 54c: 4f170001 svcmi 0x00170001 - 550: 13000002 movwne r0, #2 ; 0x2 - 554: 000002a8 andeq r0, r0, r8, lsr #5 - 558: 17000118 smladne r0, r8, r1, r0 - 55c: 0000025c andeq r0, r0, ip, asr r2 - 560: 0004e713 andeq lr, r4, r3, lsl r7 - 564: 00051800 andeq r1, r5, r0, lsl #16 - 568: 00026917 andeq r6, r2, r7, lsl r9 - 56c: 029b1300 addseq r1, fp, #0 ; 0x0 - 570: 07180000 ldreq r0, [r8, -r0] - 574: 02761700 rsbseq r1, r6, #0 ; 0x0 - 578: e7130000 ldr r0, [r3, -r0] - 57c: 18000004 stmdane r0, {r2} - 580: 83170007 tsthi r7, #7 ; 0x7 - 584: 13000002 movwne r0, #2 ; 0x2 - 588: 0000054a andeq r0, r0, sl, asr #10 - 58c: 17000718 smladne r0, r8, r7, r0 - 590: 0000028e andeq r0, r0, lr, lsl #5 - 594: 1801e215 stmdane r1, {r0, r2, r4, r9, sp, lr, pc} - 598: 9b170010 blls 5c05e0 - 59c: 13000002 movwne r0, #2 ; 0x2 - 5a0: 000004e7 andeq r0, r0, r7, ror #9 - 5a4: 17001018 smladne r0, r8, r0, r1 - 5a8: 000002a8 andeq r0, r0, r8, lsr #5 - 5ac: 0004e713 andeq lr, r4, r3, lsl r7 - 5b0: 00141800 andseq r1, r4, r0, lsl #16 - 5b4: 0002f319 andeq pc, r2, r9, lsl r3 - 5b8: 151a0c00 ldrne r0, [sl, #-3072] - 5bc: 700101de ldrdvc r0, [r1], -lr - 5c0: 746e6f46 strbtvc r6, [lr], #-3910 - 5c4: 65646e49 strbvs r6, [r4, #-3657]! - 5c8: 62615478 rsbvs r5, r1, #2013265920 ; 0x78000000 - 5cc: 0200656c andeq r6, r0, #452984832 ; 0x1b000000 - 5d0: 151a0023 ldrne r0, [sl, #-35] - 5d4: 700101f9 strdvc r0, [r1], -r9 - 5d8: 746e6f46 strbtvc r6, [lr], #-3910 - 5dc: 72616843 rsbvc r6, r1, #4390912 ; 0x430000 - 5e0: 6c626154 stfvse f6, [r2], #-336 - 5e4: 23020065 movwcs r0, #8293 ; 0x2065 - 5e8: e7131a04 ldr r1, [r3, -r4, lsl #20] - 5ec: 01000004 tsteq r0, r4 - 5f0: 746e6f66 strbtvc r6, [lr], #-3942 - 5f4: 67696548 strbvs r6, [r9, -r8, asr #10]! - 5f8: 02007468 andeq r7, r0, #1744830464 ; 0x68000000 - 5fc: 1b000823 blne 2690 <__USR_stack_size+0x1e90> - 600: 000003e8 andeq r0, r0, r8, ror #7 - 604: 70736964 rsbsvc r6, r3, r4, ror #18 - 608: 5079616c rsbspl r6, r9, ip, ror #2 - 60c: 6d617261 sfmvs f7, 2, [r1, #-388]! - 610: 61745f73 cmnvs r4, r3, ror pc - 614: 01b70067 undefined instruction 0x01b70067 - 618: 04e7131a strbteq r1, [r7], #794 - 61c: 63010000 movwvs r0, #4096 ; 0x1000 - 620: 65727275 ldrbvs r7, [r2, #-629]! - 624: 4358746e cmpmi r8, #1845493760 ; 0x6e000000 - 628: 64726f6f ldrbtvs r6, [r2], #-3951 - 62c: 00230200 eoreq r0, r3, r0, lsl #4 - 630: 04e7131a strbteq r1, [r7], #794 - 634: 63010000 movwvs r0, #4096 ; 0x1000 - 638: 65727275 ldrbvs r7, [r2, #-629]! - 63c: 4359746e cmpmi r9, #1845493760 ; 0x6e000000 - 640: 64726f6f ldrbtvs r6, [r2], #-3951 - 644: 01230200 teqeq r3, r0, lsl #4 - 648: 04e7131a strbteq r1, [r7], #794 - 64c: 63010000 movwvs r0, #4096 ; 0x1000 - 650: 65727275 ldrbvs r7, [r2, #-629]! - 654: 694c746e stmdbvs ip, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ - 658: 0200656e andeq r6, r0, #461373440 ; 0x1b800000 - 65c: 131a0223 tstne sl, #805306370 ; 0x30000002 - 660: 000004e7 andeq r0, r0, r7, ror #9 - 664: 69727701 ldmdbvs r2!, {r0, r8, r9, sl, ip, sp, lr}^ - 668: 6e657474 mcrvs 4, 3, r7, cr5, cr4, {3} - 66c: 656e694c strbvs r6, [lr, #-2380]! - 670: 23020073 movwcs r0, #8307 ; 0x2073 - 674: e7131a03 ldr r1, [r3, -r3, lsl #20] - 678: 01000004 tsteq r0, r4 - 67c: 656e696c strbvs r6, [lr, #-2412]! - 680: 576f5473 undefined - 684: 65746972 ldrbvs r6, [r4, #-2418]! - 688: 04230200 strteq r0, [r3], #-512 - 68c: 04e9151a strbteq r1, [r9], #1306 - 690: 6e696c01 cdpvs 12, 6, cr6, cr9, cr1, {0} - 694: 69577365 ldmdbvs r7, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - 698: 57687464 strbpl r7, [r8, -r4, ror #8]! - 69c: 74746972 ldrbtvc r6, [r4], #-2418 - 6a0: 02006e65 andeq r6, r0, #1616 ; 0x650 - 6a4: 131a0523 tstne sl, #146800640 ; 0x8c00000 - 6a8: 000004e7 andeq r0, r0, r7, ror #9 - 6ac: 72756301 rsbsvc r6, r5, #67108864 ; 0x4000000 - 6b0: 746e6572 strbtvc r6, [lr], #-1394 - 6b4: 746e6f46 strbtvc r6, [lr], #-3910 - 6b8: 65707954 ldrbvs r7, [r0, #-2388]! - 6bc: 0d230200 sfmeq f0, 4, [r3] - 6c0: 04e7131a strbteq r1, [r7], #794 - 6c4: 63010000 movwvs r0, #4096 ; 0x1000 - 6c8: 65727275 ldrbvs r7, [r2, #-629]! - 6cc: 7453746e ldrbvc r7, [r3], #-1134 - 6d0: 676e6972 undefined - 6d4: 65646e49 strbvs r6, [r4, #-3657]! - 6d8: 23020078 movwcs r0, #8312 ; 0x2078 - 6dc: dc151a0e ldcle 10, cr1, [r5], {14} - 6e0: 75630104 strbvc r0, [r3, #-260]! - 6e4: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} - 6e8: 72745374 rsbsvc r5, r4, #-805306367 ; 0xd0000001 - 6ec: 00676e69 rsbeq r6, r7, r9, ror #28 - 6f0: 000f2302 andeq r2, pc, r2, lsl #6 - 6f4: 00042f1b andeq r2, r4, fp, lsl pc - 6f8: 6e696c00 cdpvs 12, 6, cr6, cr9, cr0, {0} - 6fc: 72615065 rsbvc r5, r1, #101 ; 0x65 - 700: 5f736d61 svcpl 0x00736d61 - 704: 00676174 rsbeq r6, r7, r4, ror r1 - 708: e7131a03 ldr r1, [r3, -r3, lsl #20] - 70c: 01000004 tsteq r0, r4 - 710: 6f6f4378 svcvs 0x006f4378 - 714: 02006472 andeq r6, r0, #1912602624 ; 0x72000000 - 718: 131a0023 tstne sl, #35 ; 0x23 - 71c: 000004e7 andeq r0, r0, r7, ror #9 - 720: 6f437901 svcvs 0x00437901 - 724: 0064726f rsbeq r7, r4, pc, ror #4 - 728: 1a012302 bne 49338 - 72c: 0004e713 andeq lr, r4, r3, lsl r7 - 730: 61700100 cmnvs r0, r0, lsl #2 - 734: 02006567 andeq r6, r0, #432013312 ; 0x19c00000 - 738: 1b000223 blne fcc <__USR_stack_size+0x7cc> - 73c: 0000048f andeq r0, r0, pc, lsl #9 - 740: 65676170 strbvs r6, [r7, #-368]! - 744: 61726150 cmnvs r2, r0, asr r1 - 748: 745f736d ldrbvc r7, [pc], #877 ; 750 <__FIQ_stack_size+0x350> - 74c: 04006761 streq r6, [r0], #-1889 - 750: 04e7131a strbteq r1, [r7], #794 - 754: 78010000 stmdavc r1, {} - 758: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 - 75c: 6f6f4374 svcvs 0x006f4374 - 760: 02006472 andeq r6, r0, #1912602624 ; 0x72000000 - 764: 131a0023 tstne sl, #35 ; 0x23 - 768: 000004e7 andeq r0, r0, r7, ror #9 - 76c: 6e457801 cdpvs 8, 4, cr7, cr5, cr1, {0} - 770: 6f6f4364 svcvs 0x006f4364 - 774: 02006472 andeq r6, r0, #1912602624 ; 0x72000000 - 778: 131a0123 tstne sl, #-1073741816 ; 0xc0000008 - 77c: 000004e7 andeq r0, r0, r7, ror #9 - 780: 6f437901 svcvs 0x00437901 - 784: 0064726f rsbeq r7, r4, pc, ror #4 - 788: 1a022302 bne 89398 - 78c: 0004e713 andeq lr, r4, r3, lsl r7 - 790: 696c0100 stmdbvs ip!, {r8}^ - 794: 0200656e andeq r6, r0, #461373440 ; 0x1b800000 - 798: 1c000323 stcne 3, cr0, [r0], {35} - 79c: 6f697047 svcvs 0x00697047 - 7a0: 536e6950 cmnpl lr, #1310720 ; 0x140000 - 7a4: 65746174 ldrbvs r6, [r4, #-372]! - 7a8: 1500745f strne r7, [r0, #-1119] - 7ac: 390602c5 stmdbcc r6, {r0, r2, r6, r7, r9} - 7b0: 434c1c03 movtmi r1, #52227 ; 0xcc03 - 7b4: 00745f44 rsbseq r5, r4, r4, asr #30 - 7b8: 02038c15 andeq r8, r3, #5376 ; 0x1500 - 7bc: 6c1c0271 lfmvs f0, 4, [ip], {113} - 7c0: 6f466463 svcvs 0x00466463 - 7c4: 7954746e ldmdbvc r4, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ - 7c8: 745f6570 ldrbvc r6, [pc], #1392 ; 7d0 <__FIQ_stack_size+0x3d0> - 7cc: 03b91500 undefined instruction 0x03b91500 - 7d0: 1c027802 stcne 8, cr7, [r2], {2} - 7d4: 4564636c strbmi r6, [r4, #-876]! - 7d8: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 - 7dc: 1500745f strne r7, [r0, #-1119] - 7e0: 7e02048a cdpvc 4, 0, cr0, cr2, cr10, {4} - 7e4: 6e691c02 cdpvs 12, 6, cr1, cr9, cr2, {0} - 7e8: 745f3874 ldrbvc r3, [pc], #2164 ; 7f0 <__FIQ_stack_size+0x3f0> - 7ec: 028f1500 addeq r1, pc, #0 ; 0x0 - 7f0: 1c191904 ldcne 9, cr1, [r9], {4} - 7f4: 746e6975 strbtvc r6, [lr], #-2421 - 7f8: 00745f38 rsbseq r5, r4, r8, lsr pc - 7fc: 0401e215 streq lr, [r1], #-533 - 800: 621c191a andsvs r1, ip, #425984 ; 0x68000 - 804: 5f6c6f6f svcpl 0x006c6f6f - 808: e7150074 undefined - 80c: 132c0409 teqne ip, #150994944 ; 0x9000000 - 810: 746e691c strbtvc r6, [lr], #-2332 - 814: 745f3631 ldrbvc r3, [pc], #1585 ; 81c <__USR_stack_size+0x1c> - 818: 02a41500 adceq r1, r4, #0 ; 0x0 - 81c: 1c191b04 ldcne 11, cr1, [r9], {4} - 820: 746e6975 strbtvc r6, [lr], #-2421 - 824: 745f3631 ldrbvc r3, [pc], #1585 ; 82c <__USR_stack_size+0x2c> - 828: 01c61500 biceq r1, r6, r0, lsl #10 - 82c: 1c191c04 ldcne 12, cr1, [r9], {4} - 830: 746e6975 strbtvc r6, [lr], #-2421 - 834: 745f3233 ldrbvc r3, [pc], #563 ; 83c <__USR_stack_size+0x3c> - 838: 02b41500 adcseq r1, r4, #0 ; 0x0 - 83c: 1c191e04 ldcne 14, cr1, [r9], {4} - 840: 70736964 rsbsvc r6, r3, r4, ror #18 - 844: 5079616c rsbspl r6, r9, ip, ror #2 - 848: 6d617261 sfmvs f7, 2, [r1, #-388]! - 84c: 00745f73 rsbseq r5, r4, r3, ror pc - 850: 0105f315 tstpeq r5, r5, lsl r3 - 854: 6c1c027e lfmvs f0, 4, [ip], {126} - 858: 50656e69 rsbpl r6, r5, r9, ror #28 - 85c: 6d617261 sfmvs f7, 2, [r1, #-388]! - 860: 00745f73 rsbseq r5, r4, r3, ror pc - 864: 0107e815 tsteq r7, r5, lsl r8 - 868: 1c020184 stfnes f0, [r2], {132} - 86c: 65676170 strbvs r6, [r7, #-368]! - 870: 61726150 cmnvs r2, r0, asr r1 - 874: 745f736d ldrbvc r7, [pc], #877 ; 87c <__USR_stack_size+0x7c> - 878: 08af1500 stmiaeq pc!, {r8, sl, ip} - 87c: 02018b01 andeq r8, r1, #1024 ; 0x400 - 880: 00000000 andeq r0, r0, r0 - 884: 000000e0 andeq r0, r0, r0, ror #1 - 888: 00840003 addeq r0, r4, r3 - 88c: 01040000 tsteq r4, r0 - 890: 445c3a43 ldrbmi r3, [ip], #-2627 - 894: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 898: 73746e65 cmnvc r4, #1616 ; 0x650 - 89c: 646e6120 strbtvs r6, [lr], #-288 - 8a0: 74655320 strbtvc r5, [r5], #-800 - 8a4: 676e6974 undefined - 8a8: 616d5c73 smcvs 54723 - 8ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 8b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 8b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 8bc: 775c7374 undefined - 8c0: 6f632d73 svcvs 0x00632d73 - 8c4: 6f72746e svcvs 0x0072746e - 8c8: 65575c6c ldrbvs r5, [r7, #-3180] - 8cc: 65687461 strbvs r7, [r8, #-1121]! - 8d0: 74532072 ldrbvc r2, [r3], #-114 - 8d4: 6f697461 svcvs 0x00697461 - 8d8: 6f43206e svcvs 0x0043206e - 8dc: 6f72746e svcvs 0x0072746e - 8e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 8e4: 7070415c rsbsvc r4, r0, ip, asr r1 - 8e8: 6163696c cmnvs r3, ip, ror #18 - 8ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 8f0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 8f4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 8f8: 445c7365 ldrbmi r7, [ip], #-869 - 8fc: 6c707369 ldclvs 3, cr7, [r0], #-420 - 900: 632e7961 teqvs lr, #1589248 ; 0x184000 - 904: 52414900 subpl r4, r1, #0 ; 0x0 - 908: 534e4120 movtpl r4, #57632 ; 0xe120 - 90c: 2f432049 svccs 0x00432049 - 910: 202b2b43 eorcs r2, fp, r3, asr #22 - 914: 706d6f43 rsbvc r6, sp, r3, asr #30 - 918: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 91c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 920: 322e3033 eorcc r3, lr, #51 ; 0x33 - 924: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 928: 572f3539 undefined - 92c: 4b203233 blmi 80d200 - 930: 534b4349 movtpl r4, #45897 ; 0xb349 - 934: 54524154 ldrbpl r4, [r2], #-340 - 938: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 93c: 4d524120 ldfmie f4, [r2, #-128] - 940: 03800100 orreq r0, r0, #0 ; 0x0 - 944: 00140000 andseq r0, r4, r0 - 948: 61050000 tstvs r5, r0 - 94c: 4644434c strbmi r4, [r4], -ip, asr #6 - 950: 00746e6f rsbseq r6, r4, pc, ror #28 - 954: 00040910 andeq r0, r4, r0, lsl r9 - 958: 01e80100 mvneq r0, r0, lsl #2 - 95c: 0305010e movweq r0, #20750 ; 0x510e - 960: 00403eec subeq r3, r0, ip, ror #29 - 964: 00000000 andeq r0, r0, r0 - 968: 000000e0 andeq r0, r0, r0, ror #1 - 96c: 00840003 addeq r0, r4, r3 - 970: 01040000 tsteq r4, r0 - 974: 445c3a43 ldrbmi r3, [ip], #-2627 - 978: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 97c: 73746e65 cmnvc r4, #1616 ; 0x650 - 980: 646e6120 strbtvs r6, [lr], #-288 - 984: 74655320 strbtvc r5, [r5], #-800 - 988: 676e6974 undefined - 98c: 616d5c73 smcvs 54723 - 990: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 994: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 998: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 99c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 9a0: 775c7374 undefined - 9a4: 6f632d73 svcvs 0x00632d73 - 9a8: 6f72746e svcvs 0x0072746e - 9ac: 65575c6c ldrbvs r5, [r7, #-3180] - 9b0: 65687461 strbvs r7, [r8, #-1121]! - 9b4: 74532072 ldrbvc r2, [r3], #-114 - 9b8: 6f697461 svcvs 0x00697461 - 9bc: 6f43206e svcvs 0x0043206e - 9c0: 6f72746e svcvs 0x0072746e - 9c4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 9c8: 7070415c rsbsvc r4, r0, ip, asr r1 - 9cc: 6163696c cmnvs r3, ip, ror #18 - 9d0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 9d4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 9d8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 9dc: 445c7365 ldrbmi r7, [ip], #-869 - 9e0: 6c707369 ldclvs 3, cr7, [r0], #-420 - 9e4: 632e7961 teqvs lr, #1589248 ; 0x184000 - 9e8: 52414900 subpl r4, r1, #0 ; 0x0 - 9ec: 534e4120 movtpl r4, #57632 ; 0xe120 - 9f0: 2f432049 svccs 0x00432049 - 9f4: 202b2b43 eorcs r2, fp, r3, asr #22 - 9f8: 706d6f43 rsbvc r6, sp, r3, asr #30 - 9fc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - a00: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - a04: 322e3033 eorcc r3, lr, #51 ; 0x33 - a08: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a0c: 572f3539 undefined - a10: 4b203233 blmi 80d2e4 - a14: 534b4349 movtpl r4, #45897 ; 0xb349 - a18: 54524154 ldrbpl r4, [r2], #-340 - a1c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - a20: 4d524120 ldfmie f4, [r2, #-128] - a24: 03800100 orreq r0, r0, #0 ; 0x0 - a28: 00140000 andseq r0, r4, r0 - a2c: 67050000 strvs r0, [r5, -r0] - a30: 78654861 stmdavc r5!, {r0, r5, r6, fp, lr}^ - a34: 756c6156 strbvc r6, [ip, #-342]! - a38: 0f100065 svceq 0x00100065 - a3c: 01000004 tsteq r0, r4 - a40: 010f01e6 smlatteq pc, r6, r1, r0 - a44: 3e180305 cdpcc 3, 1, cr0, cr8, cr5, {0} - a48: 00000040 andeq r0, r0, r0, asr #32 - a4c: 000000e4 andeq r0, r0, r4, ror #1 - a50: 00840003 addeq r0, r4, r3 - a54: 01040000 tsteq r4, r0 - a58: 445c3a43 ldrbmi r3, [ip], #-2627 - a5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - a60: 73746e65 cmnvc r4, #1616 ; 0x650 - a64: 646e6120 strbtvs r6, [lr], #-288 - a68: 74655320 strbtvc r5, [r5], #-800 - a6c: 676e6974 undefined - a70: 616d5c73 smcvs 54723 - a74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a84: 775c7374 undefined - a88: 6f632d73 svcvs 0x00632d73 - a8c: 6f72746e svcvs 0x0072746e - a90: 65575c6c ldrbvs r5, [r7, #-3180] - a94: 65687461 strbvs r7, [r8, #-1121]! - a98: 74532072 ldrbvc r2, [r3], #-114 - a9c: 6f697461 svcvs 0x00697461 - aa0: 6f43206e svcvs 0x0043206e - aa4: 6f72746e svcvs 0x0072746e - aa8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - aac: 7070415c rsbsvc r4, r0, ip, asr r1 - ab0: 6163696c cmnvs r3, ip, ror #18 - ab4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - ab8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - abc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - ac0: 445c7365 ldrbmi r7, [ip], #-869 - ac4: 6c707369 ldclvs 3, cr7, [r0], #-420 - ac8: 632e7961 teqvs lr, #1589248 ; 0x184000 - acc: 52414900 subpl r4, r1, #0 ; 0x0 - ad0: 534e4120 movtpl r4, #57632 ; 0xe120 - ad4: 2f432049 svccs 0x00432049 - ad8: 202b2b43 eorcs r2, fp, r3, asr #22 - adc: 706d6f43 rsbvc r6, sp, r3, asr #30 - ae0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - ae4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - ae8: 322e3033 eorcc r3, lr, #51 ; 0x33 - aec: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - af0: 572f3539 undefined - af4: 4b203233 blmi 80d3c8 - af8: 534b4349 movtpl r4, #45897 ; 0xb349 - afc: 54524154 ldrbpl r4, [r2], #-340 - b00: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - b04: 4d524120 ldfmie f4, [r2, #-128] - b08: 03800100 orreq r0, r0, #0 ; 0x0 - b0c: 00140000 andseq r0, r4, r0 - b10: 6d050000 stcvs 0, cr0, [r5] - b14: 70736944 rsbsvc r6, r3, r4, asr #18 - b18: 5079616c rsbspl r6, r9, ip, ror #2 - b1c: 6d617261 sfmvs f7, 2, [r1, #-388]! - b20: 3f100073 svccc 0x00100073 - b24: 01000008 tsteq r0, r8 - b28: 001801b9 ldrheq r0, [r8], -r9 - b2c: 52b00305 adcspl r0, r0, #335544320 ; 0x14000000 - b30: 00000040 andeq r0, r0, r0, asr #32 - b34: 00000108 andeq r0, r0, r8, lsl #2 - b38: 00840003 addeq r0, r4, r3 - b3c: 01040000 tsteq r4, r0 - b40: 445c3a43 ldrbmi r3, [ip], #-2627 - b44: 6d75636f ldclvs 3, cr6, [r5, #-444]! - b48: 73746e65 cmnvc r4, #1616 ; 0x650 - b4c: 646e6120 strbtvs r6, [lr], #-288 - b50: 74655320 strbtvc r5, [r5], #-800 - b54: 676e6974 undefined - b58: 616d5c73 smcvs 54723 - b5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - b60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - b64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - b68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - b6c: 775c7374 undefined - b70: 6f632d73 svcvs 0x00632d73 - b74: 6f72746e svcvs 0x0072746e - b78: 65575c6c ldrbvs r5, [r7, #-3180] - b7c: 65687461 strbvs r7, [r8, #-1121]! - b80: 74532072 ldrbvc r2, [r3], #-114 - b84: 6f697461 svcvs 0x00697461 - b88: 6f43206e svcvs 0x0043206e - b8c: 6f72746e svcvs 0x0072746e - b90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - b94: 7070415c rsbsvc r4, r0, ip, asr r1 - b98: 6163696c cmnvs r3, ip, ror #18 - b9c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - ba0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - ba4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - ba8: 445c7365 ldrbmi r7, [ip], #-869 - bac: 6c707369 ldclvs 3, cr7, [r0], #-420 - bb0: 632e7961 teqvs lr, #1589248 ; 0x184000 - bb4: 52414900 subpl r4, r1, #0 ; 0x0 - bb8: 534e4120 movtpl r4, #57632 ; 0xe120 - bbc: 2f432049 svccs 0x00432049 - bc0: 202b2b43 eorcs r2, fp, r3, asr #22 - bc4: 706d6f43 rsbvc r6, sp, r3, asr #30 - bc8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - bcc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - bd0: 322e3033 eorcc r3, lr, #51 ; 0x33 - bd4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - bd8: 572f3539 undefined - bdc: 4b203233 blmi 80d4b0 - be0: 534b4349 movtpl r4, #45897 ; 0xb349 - be4: 54524154 ldrbpl r4, [r2], #-340 - be8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - bec: 4d524120 ldfmie f4, [r2, #-128] - bf0: 03800100 orreq r0, r0, #0 ; 0x0 - bf4: 00140000 andseq r0, r4, r0 - bf8: 6d050000 stcvs 0, cr0, [r5] - bfc: 6f727245 svcvs 0x00727245 - c00: 646e4972 strbtvs r4, [lr], #-2418 - c04: 74616369 strbtvc r6, [r1], #-873 - c08: 1000726f andne r7, r0, pc, ror #4 - c0c: 00000415 andeq r0, r0, r5, lsl r4 - c10: 1c01de01 stcne 14, cr13, [r1], {1} - c14: a9030500 stmdbge r3, {r8, sl} - c18: 05004052 streq r4, [r0, #-82] - c1c: 4c73496d ldclmi 9, cr4, [r3], #-436 - c20: 6e496463 cdpvs 4, 4, cr6, cr9, cr3, {3} - c24: 61697469 cmnvs r9, r9, ror #8 - c28: 657a696c ldrbvs r6, [sl, #-2412]! - c2c: 02100064 andseq r0, r0, #100 ; 0x64 - c30: 01000008 tsteq r0, r8 - c34: 000f01db ldrdeq r0, [pc], -fp - c38: 52a80305 adcpl r0, r8, #335544320 ; 0x14000000 - c3c: 00000040 andeq r0, r0, r0, asr #32 - c40: 000000e0 andeq r0, r0, r0, ror #1 - c44: 00840003 addeq r0, r4, r3 - c48: 01040000 tsteq r4, r0 - c4c: 445c3a43 ldrbmi r3, [ip], #-2627 - c50: 6d75636f ldclvs 3, cr6, [r5, #-444]! - c54: 73746e65 cmnvc r4, #1616 ; 0x650 - c58: 646e6120 strbtvs r6, [lr], #-288 - c5c: 74655320 strbtvc r5, [r5], #-800 - c60: 676e6974 undefined - c64: 616d5c73 smcvs 54723 - c68: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - c6c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - c70: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - c74: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - c78: 775c7374 undefined - c7c: 6f632d73 svcvs 0x00632d73 - c80: 6f72746e svcvs 0x0072746e - c84: 65575c6c ldrbvs r5, [r7, #-3180] - c88: 65687461 strbvs r7, [r8, #-1121]! - c8c: 74532072 ldrbvc r2, [r3], #-114 - c90: 6f697461 svcvs 0x00697461 - c94: 6f43206e svcvs 0x0043206e - c98: 6f72746e svcvs 0x0072746e - c9c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - ca0: 7070415c rsbsvc r4, r0, ip, asr r1 - ca4: 6163696c cmnvs r3, ip, ror #18 - ca8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - cac: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - cb0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - cb4: 445c7365 ldrbmi r7, [ip], #-869 - cb8: 6c707369 ldclvs 3, cr7, [r0], #-420 - cbc: 632e7961 teqvs lr, #1589248 ; 0x184000 - cc0: 52414900 subpl r4, r1, #0 ; 0x0 - cc4: 534e4120 movtpl r4, #57632 ; 0xe120 - cc8: 2f432049 svccs 0x00432049 - ccc: 202b2b43 eorcs r2, fp, r3, asr #22 - cd0: 706d6f43 rsbvc r6, sp, r3, asr #30 - cd4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - cd8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - cdc: 322e3033 eorcc r3, lr, #51 ; 0x33 - ce0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - ce4: 572f3539 undefined - ce8: 4b203233 blmi 80d5bc - cec: 534b4349 movtpl r4, #45897 ; 0xb349 - cf0: 54524154 ldrbpl r4, [r2], #-340 - cf4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - cf8: 4d524120 ldfmie f4, [r2, #-128] - cfc: 03800100 orreq r0, r0, #0 ; 0x0 - d00: 00140000 andseq r0, r4, r0 - d04: 6d050000 stcvs 0, cr0, [r5] - d08: 656e694c strbvs r6, [lr, #-2380]! - d0c: 61726150 cmnvs r2, r0, asr r1 - d10: 1000736d andne r7, r0, sp, ror #6 - d14: 00000582 andeq r0, r0, r2, lsl #11 - d18: 1501ce01 strne ip, [r1, #-3585] - d1c: 88030500 stmdahi r3, {r8, sl} - d20: 00004054 andeq r4, r0, r4, asr r0 - d24: 000000f0 strdeq r0, [r0], -r0 - d28: 00840003 addeq r0, r4, r3 - d2c: 07040000 streq r0, [r4, -r0] - d30: 445c3a43 ldrbmi r3, [ip], #-2627 - d34: 6d75636f ldclvs 3, cr6, [r5, #-444]! - d38: 73746e65 cmnvc r4, #1616 ; 0x650 - d3c: 646e6120 strbtvs r6, [lr], #-288 - d40: 74655320 strbtvc r5, [r5], #-800 - d44: 676e6974 undefined - d48: 616d5c73 smcvs 54723 - d4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - d50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - d54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - d58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - d5c: 775c7374 undefined - d60: 6f632d73 svcvs 0x00632d73 - d64: 6f72746e svcvs 0x0072746e - d68: 65575c6c ldrbvs r5, [r7, #-3180] - d6c: 65687461 strbvs r7, [r8, #-1121]! - d70: 74532072 ldrbvc r2, [r3], #-114 - d74: 6f697461 svcvs 0x00697461 - d78: 6f43206e svcvs 0x0043206e - d7c: 6f72746e svcvs 0x0072746e - d80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - d84: 7070415c rsbsvc r4, r0, ip, asr r1 - d88: 6163696c cmnvs r3, ip, ror #18 - d8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - d90: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - d94: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - d98: 445c7365 ldrbmi r7, [ip], #-869 - d9c: 6c707369 ldclvs 3, cr7, [r0], #-420 - da0: 632e7961 teqvs lr, #1589248 ; 0x184000 - da4: 52414900 subpl r4, r1, #0 ; 0x0 - da8: 534e4120 movtpl r4, #57632 ; 0xe120 - dac: 2f432049 svccs 0x00432049 - db0: 202b2b43 eorcs r2, fp, r3, asr #22 - db4: 706d6f43 rsbvc r6, sp, r3, asr #30 - db8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - dbc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - dc0: 322e3033 eorcc r3, lr, #51 ; 0x33 - dc4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - dc8: 572f3539 undefined - dcc: 4b203233 blmi 80d6a0 - dd0: 534b4349 movtpl r4, #45897 ; 0xb349 - dd4: 54524154 ldrbpl r4, [r2], #-340 - dd8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - ddc: 4d524120 ldfmie f4, [r2, #-128] - de0: 19640100 stmdbne r4!, {r8}^ - de4: 1b560040 blne 1580eec - de8: 05ec0040 strbeq r0, [ip, #64]! - dec: 00cc0000 sbceq r0, ip, r0 - df0: 17100000 ldrne r0, [r0, -r0] - df4: 08000003 stmdaeq r0, {r0, r1} - df8: 000000f3 strdeq r0, [r0], -r3 - dfc: 5f44434c svcpl 0x0044434c - e00: 74696e49 strbtvc r6, [r9], #-3657 - e04: 02800100 addeq r0, r0, #0 ; 0x0 - e08: 00ce0106 sbceq r0, lr, r6, lsl #2 - e0c: 19640000 stmdbne r4!, {}^ - e10: 1b560040 blne 1580f18 - e14: 00000040 andeq r0, r0, r0, asr #32 - e18: 00000174 andeq r0, r0, r4, ror r1 - e1c: 00840003 addeq r0, r4, r3 - e20: 07040000 streq r0, [r4, -r0] - e24: 445c3a43 ldrbmi r3, [ip], #-2627 - e28: 6d75636f ldclvs 3, cr6, [r5, #-444]! - e2c: 73746e65 cmnvc r4, #1616 ; 0x650 - e30: 646e6120 strbtvs r6, [lr], #-288 - e34: 74655320 strbtvc r5, [r5], #-800 - e38: 676e6974 undefined - e3c: 616d5c73 smcvs 54723 - e40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - e44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - e48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - e4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - e50: 775c7374 undefined - e54: 6f632d73 svcvs 0x00632d73 - e58: 6f72746e svcvs 0x0072746e - e5c: 65575c6c ldrbvs r5, [r7, #-3180] - e60: 65687461 strbvs r7, [r8, #-1121]! - e64: 74532072 ldrbvc r2, [r3], #-114 - e68: 6f697461 svcvs 0x00697461 - e6c: 6f43206e svcvs 0x0043206e - e70: 6f72746e svcvs 0x0072746e - e74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - e78: 7070415c rsbsvc r4, r0, ip, asr r1 - e7c: 6163696c cmnvs r3, ip, ror #18 - e80: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - e84: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - e88: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - e8c: 445c7365 ldrbmi r7, [ip], #-869 - e90: 6c707369 ldclvs 3, cr7, [r0], #-420 - e94: 632e7961 teqvs lr, #1589248 ; 0x184000 - e98: 52414900 subpl r4, r1, #0 ; 0x0 - e9c: 534e4120 movtpl r4, #57632 ; 0xe120 - ea0: 2f432049 svccs 0x00432049 - ea4: 202b2b43 eorcs r2, fp, r3, asr #22 - ea8: 706d6f43 rsbvc r6, sp, r3, asr #30 - eac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - eb0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - eb4: 322e3033 eorcc r3, lr, #51 ; 0x33 - eb8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - ebc: 572f3539 undefined - ec0: 4b203233 blmi 80d794 - ec4: 534b4349 movtpl r4, #45897 ; 0xb349 - ec8: 54524154 ldrbpl r4, [r2], #-340 - ecc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - ed0: 4d524120 ldfmie f4, [r2, #-128] - ed4: 1b560100 blne 15812dc - ed8: 1bae0040 blne feb80fe0 - edc: 06e00040 strbteq r0, [r0], r0, asr #32 - ee0: 03c60000 biceq r0, r6, #0 ; 0x0 - ee4: 17100000 ldrne r0, [r0, -r0] - ee8: 08000003 stmdaeq r0, {r0, r1} - eec: 00000175 andeq r0, r0, r5, ror r1 - ef0: 5f44434c svcpl 0x0044434c - ef4: 61656c43 cmnvs r5, r3, asr #24 - ef8: 73694472 cmnvc r9, #1912602624 ; 0x72000000 - efc: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - f00: 03c10100 biceq r0, r1, #0 ; 0x0 - f04: 01120106 tsteq r2, r6, lsl #2 - f08: 1b560000 blne 1580f10 - f0c: 1bae0040 blne feb81014 - f10: 6c050040 stcvs 0, cr0, [r5], {64} - f14: 73656e69 cmnvc r5, #1680 ; 0x690 - f18: 6c436f54 mcrrvs 15, 5, r6, r3, cr4 - f1c: 00726165 rsbseq r6, r2, r5, ror #2 - f20: 0007f310 andeq pc, r7, r0, lsl r3 - f24: 03c40100 biceq r0, r4, #0 ; 0x0 - f28: 03050012 movweq r0, #20498 ; 0x5012 - f2c: 004052aa subeq r5, r0, sl, lsr #5 - f30: 6e696c09 cdpvs 12, 6, cr6, cr9, cr9, {0} - f34: c5010065 strgt r0, [r1, #-101] - f38: f3100b03 vqrdmulh.s16 d0, d0, d3 - f3c: 4a000007 bmi f60 <__USR_stack_size+0x760> - f40: 09000001 stmdbeq r0, {r0} - f44: 656c6564 strbvs r6, [ip, #-1380]! - f48: 72576574 subsvc r6, r7, #486539264 ; 0x1d000000 - f4c: 4c657469 cfstrdmi mvd7, [r5], #-420 - f50: 73656e69 cmnvc r5, #1680 ; 0x690 - f54: 03c50100 biceq r0, r5, #0 ; 0x0 - f58: 07f31011 undefined - f5c: 01670000 cmneq r7, r0 - f60: 580a0000 stmdapl sl, {} - f64: 68000001 stmdavs r0, {r0} - f68: 7200401b andvc r4, r0, #27 ; 0x1b - f6c: 0000401b andeq r4, r0, fp, lsl r0 - f70: 0001740a andeq r7, r1, sl, lsl #8 - f74: 401b7400 andsmi r7, fp, r0, lsl #8 - f78: 401ba600 andsmi sl, fp, r0, lsl #12 - f7c: 01730a00 cmneq r3, r0, lsl #20 - f80: 1b8c0000 blne fe300f88 - f84: 1ba60040 blne fe98108c - f88: 00000040 andeq r0, r0, r0, asr #32 - f8c: 00000000 andeq r0, r0, r0 - f90: 0000018c andeq r0, r0, ip, lsl #3 - f94: 00840003 addeq r0, r4, r3 - f98: 07040000 streq r0, [r4, -r0] - f9c: 445c3a43 ldrbmi r3, [ip], #-2627 - fa0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - fa4: 73746e65 cmnvc r4, #1616 ; 0x650 - fa8: 646e6120 strbtvs r6, [lr], #-288 - fac: 74655320 strbtvc r5, [r5], #-800 - fb0: 676e6974 undefined - fb4: 616d5c73 smcvs 54723 - fb8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - fbc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - fc0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - fc4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - fc8: 775c7374 undefined - fcc: 6f632d73 svcvs 0x00632d73 - fd0: 6f72746e svcvs 0x0072746e - fd4: 65575c6c ldrbvs r5, [r7, #-3180] - fd8: 65687461 strbvs r7, [r8, #-1121]! - fdc: 74532072 ldrbvc r2, [r3], #-114 - fe0: 6f697461 svcvs 0x00697461 - fe4: 6f43206e svcvs 0x0043206e - fe8: 6f72746e svcvs 0x0072746e - fec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - ff0: 7070415c rsbsvc r4, r0, ip, asr r1 - ff4: 6163696c cmnvs r3, ip, ror #18 - ff8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - ffc: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1000: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1004: 445c7365 ldrbmi r7, [ip], #-869 - 1008: 6c707369 ldclvs 3, cr7, [r0], #-420 - 100c: 632e7961 teqvs lr, #1589248 ; 0x184000 - 1010: 52414900 subpl r4, r1, #0 ; 0x0 - 1014: 534e4120 movtpl r4, #57632 ; 0xe120 - 1018: 2f432049 svccs 0x00432049 - 101c: 202b2b43 eorcs r2, fp, r3, asr #22 - 1020: 706d6f43 rsbvc r6, sp, r3, asr #30 - 1024: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 1028: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 102c: 322e3033 eorcc r3, lr, #51 ; 0x33 - 1030: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 1034: 572f3539 undefined - 1038: 4b203233 blmi 80d90c - 103c: 534b4349 movtpl r4, #45897 ; 0xb349 - 1040: 54524154 ldrbpl r4, [r2], #-340 - 1044: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 1048: 4d524120 ldfmie f4, [r2, #-128] - 104c: 1bb40100 blne fed01454 - 1050: 1c1c0040 ldcne 0, cr0, [ip], {64} - 1054: 07b80040 ldreq r0, [r8, r0, asr #32]! - 1058: 046d0000 strbteq r0, [sp] - 105c: 17100000 ldrne r0, [r0, -r0] - 1060: 08000003 stmdaeq r0, {r0, r1} - 1064: 0000018c andeq r0, r0, ip, lsl #3 - 1068: 5f44434c svcpl 0x0044434c - 106c: 74697257 strbtvc r7, [r9], #-599 - 1070: 72745365 rsbsvc r5, r4, #-1811939327 ; 0x94000001 - 1074: 5f676e69 svcpl 0x00676e69 - 1078: 6d726f4e ldclvs 15, cr6, [r2, #-312]! - 107c: 6f466c61 svcvs 0x00466c61 - 1080: 0100746e tsteq r0, lr, ror #8 - 1084: 010603fc strdeq r0, [r6, -ip] - 1088: 00000184 andeq r0, r0, r4, lsl #3 - 108c: 00401bb4 strheq r1, [r0], #-180 - 1090: 00401c1c subeq r1, r0, ip, lsl ip - 1094: 6e696c0b cdpvs 12, 6, cr6, cr9, cr11, {0} - 1098: fc010065 stc2 0, cr0, [r1], {101} - 109c: f3102903 vmls.i16 d2, d0, d3 - 10a0: b0000007 andlt r0, r0, r7 - 10a4: 0b000001 bleq 10b0 <__USR_stack_size+0x8b0> - 10a8: 72747370 rsbsvc r7, r4, #-1073741823 ; 0xc0000001 - 10ac: 03fc0100 mvnseq r0, #0 ; 0x0 - 10b0: 042a1038 strteq r1, [sl], #-56 - 10b4: 01cd0000 biceq r0, sp, r0 - 10b8: 6c090000 stcvs 0, cr0, [r9], {0} - 10bc: 01006e65 tsteq r0, r5, ror #28 - 10c0: 100a03fe strdne r0, [sl], -lr - 10c4: 000007f3 strdeq r0, [r0], -r3 - 10c8: 000001ea andeq r0, r0, sl, ror #3 - 10cc: 00016d0c andeq r6, r1, ip, lsl #26 - 10d0: 24f61000 ldrbtcs r1, [r6] - 10d4: 1bcc0000 blne ff3010dc - 10d8: 1bf20040 blne ffc811e0 - 10dc: 100d0040 andne r0, sp, r0, asr #32 - 10e0: 00002510 andeq r2, r0, r0, lsl r5 - 10e4: 00000207 andeq r0, r0, r7, lsl #4 - 10e8: 2522100e strcs r1, [r2, #-14]! - 10ec: 02240000 eoreq r0, r4, #0 ; 0x0 - 10f0: 100e0000 andne r0, lr, r0 - 10f4: 00002532 andeq r2, r0, r2, lsr r5 - 10f8: 00000241 andeq r0, r0, r1, asr #4 - 10fc: 018b0a00 orreq r0, fp, r0, lsl #20 - 1100: 1bf60000 blne ffd81108 - 1104: 1c180040 ldcne 0, cr0, [r8], {64} - 1108: 69090040 stmdbvs r9, {r6} - 110c: 04830100 streq r0, [r3], #256 - 1110: 07f3100e ldrbeq r1, [r3, lr]! - 1114: 025e0000 subseq r0, lr, #0 ; 0x0 - ... - 1120: 0000022c andeq r0, r0, ip, lsr #4 - 1124: 00840003 addeq r0, r4, r3 - 1128: 07040000 streq r0, [r4, -r0] - 112c: 445c3a43 ldrbmi r3, [ip], #-2627 - 1130: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1134: 73746e65 cmnvc r4, #1616 ; 0x650 - 1138: 646e6120 strbtvs r6, [lr], #-288 - 113c: 74655320 strbtvc r5, [r5], #-800 - 1140: 676e6974 undefined - 1144: 616d5c73 smcvs 54723 - 1148: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 114c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1150: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1154: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1158: 775c7374 undefined - 115c: 6f632d73 svcvs 0x00632d73 - 1160: 6f72746e svcvs 0x0072746e - 1164: 65575c6c ldrbvs r5, [r7, #-3180] - 1168: 65687461 strbvs r7, [r8, #-1121]! - 116c: 74532072 ldrbvc r2, [r3], #-114 - 1170: 6f697461 svcvs 0x00697461 - 1174: 6f43206e svcvs 0x0043206e - 1178: 6f72746e svcvs 0x0072746e - 117c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1180: 7070415c rsbsvc r4, r0, ip, asr r1 - 1184: 6163696c cmnvs r3, ip, ror #18 - 1188: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 118c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1190: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1194: 445c7365 ldrbmi r7, [ip], #-869 - 1198: 6c707369 ldclvs 3, cr7, [r0], #-420 - 119c: 632e7961 teqvs lr, #1589248 ; 0x184000 - 11a0: 52414900 subpl r4, r1, #0 ; 0x0 - 11a4: 534e4120 movtpl r4, #57632 ; 0xe120 - 11a8: 2f432049 svccs 0x00432049 - 11ac: 202b2b43 eorcs r2, fp, r3, asr #22 - 11b0: 706d6f43 rsbvc r6, sp, r3, asr #30 - 11b4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 11b8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 11bc: 322e3033 eorcc r3, lr, #51 ; 0x33 - 11c0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 11c4: 572f3539 undefined - 11c8: 4b203233 blmi 80da9c - 11cc: 534b4349 movtpl r4, #45897 ; 0xb349 - 11d0: 54524154 ldrbpl r4, [r2], #-340 - 11d4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 11d8: 4d524120 ldfmie f4, [r2, #-128] - 11dc: 1c240100 stfnes f0, [r4] - 11e0: 1db80040 ldcne 0, cr0, [r8, #256]! - 11e4: 08a00040 stmiaeq r0!, {r6} - 11e8: 05590000 ldrbeq r0, [r9] - 11ec: 17100000 ldrne r0, [r0, -r0] - 11f0: 08000003 stmdaeq r0, {r0, r1} - 11f4: 0000022e andeq r0, r0, lr, lsr #4 - 11f8: 5f44434c svcpl 0x0044434c - 11fc: 74697257 strbtvc r7, [r9], #-599 - 1200: 72745365 rsbsvc r5, r4, #-1811939327 ; 0x94000001 - 1204: 56676e69 strbtpl r6, [r7], -r9, ror #28 - 1208: 65756c61 ldrbvs r6, [r5, #-3169]! - 120c: 04970100 ldreq r0, [r7], #256 - 1210: 02710106 rsbseq r0, r1, #-2147483647 ; 0x80000001 - 1214: 1c240000 stcne 0, cr0, [r4] - 1218: 1db80040 ldcne 0, cr0, [r8, #256]! - 121c: 700b0040 andvc r0, fp, r0, asr #32 - 1220: 00727473 rsbseq r7, r2, r3, ror r4 - 1224: 0c049901 stceq 9, cr9, [r4], {1} - 1228: 00042a10 andeq r2, r4, r0, lsl sl - 122c: 0002aa00 andeq sl, r2, r0, lsl #20 - 1230: 61760b00 cmnvs r6, r0, lsl #22 - 1234: 0065756c rsbeq r7, r5, ip, ror #10 - 1238: 0c049a01 stceq 10, cr9, [r4], {1} - 123c: 00081f10 andeq r1, r8, r0, lsl pc - 1240: 0002de00 andeq sp, r2, r0, lsl #28 - 1244: 696c0b00 stmdbvs ip!, {r8, r9, fp}^ - 1248: 0100656e tsteq r0, lr, ror #10 - 124c: 100b049b mulne fp, fp, r4 - 1250: 000007f3 strdeq r0, [r0], -r3 - 1254: 00000325 andeq r0, r0, r5, lsr #6 - 1258: 6d756e0b ldclvs 14, cr6, [r5, #-44]! - 125c: 46726562 ldrbtmi r6, [r2], -r2, ror #10 - 1260: 616d726f cmnvs sp, pc, ror #4 - 1264: 9c010074 stcls 0, cr0, [r1], {116} - 1268: b1100904 tstlt r0, r4, lsl #18 - 126c: 59000007 stmdbpl r0, {r0, r1, r2} - 1270: 09000003 stmdbeq r0, {r0, r1} - 1274: 44766964 ldrbtmi r6, [r6], #-2404 - 1278: 01006365 tsteq r0, r5, ror #6 - 127c: 100b04a0 andne r0, fp, r0, lsr #9 - 1280: 00000810 andeq r0, r0, r0, lsl r8 - 1284: 0000038b andeq r0, r0, fp, lsl #7 - 1288: 76696409 strbtvc r6, [r9], -r9, lsl #8 - 128c: 00786548 rsbseq r6, r8, r8, asr #10 - 1290: 1904a001 stmdbne r4, {r0, sp, pc} - 1294: 00081010 andeq r1, r8, r0, lsl r0 - 1298: 0003e700 andeq lr, r3, r0, lsl #14 - 129c: 6f6c0900 svcvs 0x006c0900 - 12a0: 0100706f tsteq r0, pc, rrx - 12a4: 100b04a1 andne r0, fp, r1, lsr #9 - 12a8: 000007f3 strdeq r0, [r0], -r3 - 12ac: 000003ef andeq r0, r0, pc, ror #7 - 12b0: 01006909 tsteq r0, r9, lsl #18 - 12b4: 101304a1 andsne r0, r3, r1, lsr #9 - 12b8: 000007f3 strdeq r0, [r0], -r3 - 12bc: 00000453 andeq r0, r0, r3, asr r4 - 12c0: 756f6309 strbvc r6, [pc, #-777]! ; fbf <__USR_stack_size+0x7bf> - 12c4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 12c8: 04a10100 strteq r0, [r1], #256 - 12cc: 07f31017 undefined - 12d0: 04af0000 strteq r0, [pc], #0 ; 12d8 <__USR_stack_size+0xad8> - 12d4: 61090000 tstvs r9, r0 - 12d8: a1010048 tstge r1, r8, asr #32 - 12dc: 5b102204 blpl 409af4 - 12e0: 4a000005 bmi 12fc <__USR_stack_size+0xafc> - 12e4: 09000005 stmdbeq r0, {r0, r2} - 12e8: 78654861 stmdavc r5!, {r0, r5, r6, fp, lr}^ - 12ec: 04a10100 strteq r0, [r1], #256 - 12f0: 055b1029 ldrbeq r1, [fp, #-41] - 12f4: 05680000 strbeq r0, [r8]! - 12f8: 61090000 tstvs r9, r0 - 12fc: 00636544 rsbeq r6, r3, r4, asr #10 - 1300: 0b04a201 bleq 129b0c - 1304: 00055b10 andeq r5, r5, r0, lsl fp - 1308: 00058600 andeq r8, r5, r0, lsl #12 - 130c: 53610900 cmnpl r1, #0 ; 0x0 - 1310: 6e697274 mcrvs 2, 3, r7, cr9, cr4, {3} - 1314: a2010067 andge r0, r1, #103 ; 0x67 - 1318: 9a101404 bls 406330 - 131c: a5000005 strge r0, [r0, #-5] - 1320: 0a000005 beq 133c <__USR_stack_size+0xb3c> - 1324: 0000021f andeq r0, r0, pc, lsl r2 - 1328: 00401c3e subeq r1, r0, lr, lsr ip - 132c: 00401d18 subeq r1, r0, r8, lsl sp - 1330: 00021e0a andeq r1, r2, sl, lsl #28 - 1334: 401c6c00 andsmi r6, ip, r0, lsl #24 - 1338: 401cb200 andsmi fp, ip, r0, lsl #4 - 133c: 0a000000 beq 1344 <__USR_stack_size+0xb44> - 1340: 0000022d andeq r0, r0, sp, lsr #4 - 1344: 00401d20 subeq r1, r0, r0, lsr #26 - 1348: 00401da0 subeq r1, r0, r0, lsr #27 - 134c: 00000000 andeq r0, r0, r0 - 1350: 0000026c andeq r0, r0, ip, ror #4 - 1354: 00840003 addeq r0, r4, r3 - 1358: 07040000 streq r0, [r4, -r0] - 135c: 445c3a43 ldrbmi r3, [ip], #-2627 - 1360: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1364: 73746e65 cmnvc r4, #1616 ; 0x650 - 1368: 646e6120 strbtvs r6, [lr], #-288 - 136c: 74655320 strbtvc r5, [r5], #-800 - 1370: 676e6974 undefined - 1374: 616d5c73 smcvs 54723 - 1378: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 137c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1380: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1384: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1388: 775c7374 undefined - 138c: 6f632d73 svcvs 0x00632d73 - 1390: 6f72746e svcvs 0x0072746e - 1394: 65575c6c ldrbvs r5, [r7, #-3180] - 1398: 65687461 strbvs r7, [r8, #-1121]! - 139c: 74532072 ldrbvc r2, [r3], #-114 - 13a0: 6f697461 svcvs 0x00697461 - 13a4: 6f43206e svcvs 0x0043206e - 13a8: 6f72746e svcvs 0x0072746e - 13ac: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 13b0: 7070415c rsbsvc r4, r0, ip, asr r1 - 13b4: 6163696c cmnvs r3, ip, ror #18 - 13b8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 13bc: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 13c0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 13c4: 445c7365 ldrbmi r7, [ip], #-869 - 13c8: 6c707369 ldclvs 3, cr7, [r0], #-420 - 13cc: 632e7961 teqvs lr, #1589248 ; 0x184000 - 13d0: 52414900 subpl r4, r1, #0 ; 0x0 - 13d4: 534e4120 movtpl r4, #57632 ; 0xe120 - 13d8: 2f432049 svccs 0x00432049 - 13dc: 202b2b43 eorcs r2, fp, r3, asr #22 - 13e0: 706d6f43 rsbvc r6, sp, r3, asr #30 - 13e4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 13e8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 13ec: 322e3033 eorcc r3, lr, #51 ; 0x33 - 13f0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 13f4: 572f3539 undefined - 13f8: 4b203233 blmi 80dccc - 13fc: 534b4349 movtpl r4, #45897 ; 0xb349 - 1400: 54524154 ldrbpl r4, [r2], #-340 - 1404: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 1408: 4d524120 ldfmie f4, [r2, #-128] - 140c: 1dbc0100 ldfnes f0, [ip] - 1410: 1fac0040 svcne 0x00ac0040 - 1414: 09d00040 ldmibeq r0, {r6}^ - 1418: 06ac0000 strteq r0, [ip], r0 - 141c: 17100000 ldrne r0, [r0, -r0] - 1420: 08000003 stmdaeq r0, {r0, r1} - 1424: 0000026d andeq r0, r0, sp, ror #4 - 1428: 5f44434c svcpl 0x0044434c - 142c: 74697257 strbtvc r7, [r9], #-599 - 1430: 72745365 rsbsvc r5, r4, #-1811939327 ; 0x94000001 - 1434: 44676e69 strbtmi r6, [r7], #-3689 - 1438: 61566365 cmpvs r6, r5, ror #6 - 143c: 0065756c rsbeq r7, r5, ip, ror #10 - 1440: 0604ed01 streq lr, [r4], -r1, lsl #26 - 1444: 0005c301 andeq ip, r5, r1, lsl #6 - 1448: 401dbc00 andsmi fp, sp, r0, lsl #24 - 144c: 401fac00 andsmi sl, pc, r0, lsl #24 - 1450: 73700b00 cmnvc r0, #0 ; 0x0 - 1454: 01007274 tsteq r0, r4, ror r2 - 1458: 100c04ef andne r0, ip, pc, ror #9 - 145c: 0000042a andeq r0, r0, sl, lsr #8 - 1460: 00000609 andeq r0, r0, r9, lsl #12 - 1464: 6c61760b stclvs 6, cr7, [r1], #-44 - 1468: 01006575 tsteq r0, r5, ror r5 - 146c: 100c04f0 strdne r0, [ip], -r0 - 1470: 0000081f andeq r0, r0, pc, lsl r8 - 1474: 0000063d andeq r0, r0, sp, lsr r6 - 1478: 6e696c0b cdpvs 12, 6, cr6, cr9, cr11, {0} - 147c: f1010065 setend le - 1480: f3100b04 vqrdmulh.s16 d0, d0, d4 - 1484: 71000007 tstvc r0, r7 - 1488: 0b000006 bleq 14a8 <__USR_stack_size+0xca8> - 148c: 626d756e rsbvs r7, sp, #461373440 ; 0x1b800000 - 1490: 6f467265 svcvs 0x00467265 - 1494: 74616d72 strbtvc r6, [r1], #-3442 - 1498: 04f20100 ldrbteq r0, [r2], #256 - 149c: 07b11009 ldreq r1, [r1, r9]! - 14a0: 06a50000 strteq r0, [r5], r0 - 14a4: 64090000 strvs r0, [r9] - 14a8: 65447669 strbvs r7, [r4, #-1641] - 14ac: f6010063 undefined instruction 0xf6010063 - 14b0: 10100b04 andsne r0, r0, r4, lsl #22 - 14b4: d9000008 stmdble r0, {r3} - 14b8: 09000006 stmdbeq r0, {r1, r2} - 14bc: 48766964 ldmdami r6!, {r2, r5, r6, r8, fp, sp, lr}^ - 14c0: 01007865 tsteq r0, r5, ror #16 - 14c4: 101904f6 ldrshne r0, [r9], -r6 - 14c8: 00000810 andeq r0, r0, r0, lsl r8 - 14cc: 00000720 andeq r0, r0, r0, lsr #14 - 14d0: 6f6f6c09 svcvs 0x006f6c09 - 14d4: f7010070 undefined instruction 0xf7010070 - 14d8: f3100b04 vqrdmulh.s16 d0, d0, d4 - 14dc: 28000007 stmdacs r0, {r0, r1, r2} - 14e0: 09000007 stmdbeq r0, {r0, r1, r2} - 14e4: f7010069 undefined instruction 0xf7010069 - 14e8: f3101304 vcgt.u16 d1, d0, d4 - 14ec: 75000007 strvc r0, [r0, #-7] - 14f0: 09000007 stmdbeq r0, {r0, r1, r2} - 14f4: 6e756f63 cdpvs 15, 7, cr6, cr5, cr3, {3} - 14f8: 00726574 rsbseq r6, r2, r4, ror r5 - 14fc: 1704f701 strne pc, [r4, -r1, lsl #14] - 1500: 0007f310 andeq pc, r7, r0, lsl r3 - 1504: 0007bc00 andeq fp, r7, r0, lsl #24 - 1508: 48610900 stmdami r1!, {r8, fp}^ - 150c: 04f70100 ldrbteq r0, [r7], #256 - 1510: 055b1022 ldrbeq r1, [fp, #-34] - 1514: 08570000 ldmdaeq r7, {}^ - 1518: 61090000 tstvs r9, r0 - 151c: 00786548 rsbseq r6, r8, r8, asr #10 - 1520: 2904f701 stmdbcs r4, {r0, r8, r9, sl, ip, sp, lr, pc} - 1524: 00055b10 andeq r5, r5, r0, lsl fp - 1528: 00087500 andeq r7, r8, r0, lsl #10 - 152c: 44610900 strbtmi r0, [r1], #-2304 - 1530: 01006365 tsteq r0, r5, ror #6 - 1534: 100b04f8 strdne r0, [fp], -r8 - 1538: 0000055b andeq r0, r0, fp, asr r5 - 153c: 00000893 muleq r0, r3, r8 - 1540: 74536109 ldrbvc r6, [r3], #-265 - 1544: 676e6972 undefined - 1548: 04f80100 ldrbteq r0, [r8], #256 - 154c: 059a1014 ldreq r1, [sl, #20] - 1550: 08b20000 ldmeq r2!, {} - 1554: 75090000 strvc r0, [r9] - 1558: 6d655438 cfstrdvs mvd5, [r5, #-224]! - 155c: 6c615670 stclvs 6, cr5, [r1], #-448 - 1560: 04f90100 ldrbteq r0, [r9], #256 - 1564: 07f3100b ldrbeq r1, [r3, fp]! - 1568: 08d10000 ldmeq r1, {}^ - 156c: 75090000 strvc r0, [r9] - 1570: 756f4338 strbvc r4, [pc, #-824]! ; 1240 <__USR_stack_size+0xa40> - 1574: 0100746e tsteq r0, lr, ror #8 - 1578: 100b04fa strdne r0, [fp], -sl - 157c: 000007f3 strdeq r0, [r0], -r3 - 1580: 0000091e andeq r0, r0, lr, lsl r9 - 1584: 00025e0a andeq r5, r2, sl, lsl #28 - 1588: 401de200 andsmi lr, sp, r0, lsl #4 - 158c: 401ee000 andsmi lr, lr, r0 - 1590: 025d0a00 subseq r0, sp, #0 ; 0x0 - 1594: 1dec0000 stclne 0, cr0, [ip] - 1598: 1e8c0040 cdpne 0, 8, cr0, cr12, cr0, {2} - 159c: 5c0a0040 stcpl 0, cr0, [sl], {64} - 15a0: 1e000002 cdpne 0, 0, cr0, cr0, cr2, {0} - 15a4: 6800401e stmdavs r0, {r1, r2, r3, r4, lr} - 15a8: 0000401e andeq r4, r0, lr, lsl r0 - 15ac: 6c0a0000 stcvs 0, cr0, [sl], {0} - 15b0: ea000002 b 15c0 <__USR_stack_size+0xdc0> - 15b4: 8c00401e stchi 0, cr4, [r0], {30} - 15b8: 0000401f andeq r4, r0, pc, lsl r0 - 15bc: 00000000 andeq r0, r0, r0 - 15c0: 00000140 andeq r0, r0, r0, asr #2 - 15c4: 00840003 addeq r0, r4, r3 - 15c8: 07040000 streq r0, [r4, -r0] - 15cc: 445c3a43 ldrbmi r3, [ip], #-2627 - 15d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 15d4: 73746e65 cmnvc r4, #1616 ; 0x650 - 15d8: 646e6120 strbtvs r6, [lr], #-288 - 15dc: 74655320 strbtvc r5, [r5], #-800 - 15e0: 676e6974 undefined - 15e4: 616d5c73 smcvs 54723 - 15e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 15ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 15f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 15f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 15f8: 775c7374 undefined - 15fc: 6f632d73 svcvs 0x00632d73 - 1600: 6f72746e svcvs 0x0072746e - 1604: 65575c6c ldrbvs r5, [r7, #-3180] - 1608: 65687461 strbvs r7, [r8, #-1121]! - 160c: 74532072 ldrbvc r2, [r3], #-114 - 1610: 6f697461 svcvs 0x00697461 - 1614: 6f43206e svcvs 0x0043206e - 1618: 6f72746e svcvs 0x0072746e - 161c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1620: 7070415c rsbsvc r4, r0, ip, asr r1 - 1624: 6163696c cmnvs r3, ip, ror #18 - 1628: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 162c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1630: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1634: 445c7365 ldrbmi r7, [ip], #-869 - 1638: 6c707369 ldclvs 3, cr7, [r0], #-420 - 163c: 632e7961 teqvs lr, #1589248 ; 0x184000 - 1640: 52414900 subpl r4, r1, #0 ; 0x0 - 1644: 534e4120 movtpl r4, #57632 ; 0xe120 - 1648: 2f432049 svccs 0x00432049 - 164c: 202b2b43 eorcs r2, fp, r3, asr #22 - 1650: 706d6f43 rsbvc r6, sp, r3, asr #30 - 1654: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 1658: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 165c: 322e3033 eorcc r3, lr, #51 ; 0x33 - 1660: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 1664: 572f3539 undefined - 1668: 4b203233 blmi 80df3c - 166c: 534b4349 movtpl r4, #45897 ; 0xb349 - 1670: 54524154 ldrbpl r4, [r2], #-340 - 1674: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 1678: 4d524120 ldfmie f4, [r2, #-128] - 167c: 1fac0100 svcne 0x00ac0100 - 1680: 1ffc0040 svcne 0x00fc0040 - 1684: 0b1c0040 bleq 70178c - 1688: 08220000 stmdaeq r2!, {} - 168c: 17100000 ldrne r0, [r0, -r0] - 1690: 08000003 stmdaeq r0, {r0, r1} - 1694: 00000141 andeq r0, r0, r1, asr #2 - 1698: 5f44434c svcpl 0x0044434c - 169c: 74697257 strbtvc r7, [r9], #-599 - 16a0: 6d6f4365 stclvs 3, cr4, [pc, #-404]! - 16a4: 646e616d strbtvs r6, [lr], #-365 - 16a8: 069c0100 ldreq r0, [ip], r0, lsl #2 - 16ac: 093d0106 ldmdbeq sp!, {r1, r2, r8} - 16b0: 1fac0000 svcne 0x00ac0000 - 16b4: 1ffc0040 svcne 0x00fc0040 - 16b8: 630b0040 movwvs r0, #45120 ; 0xb040 - 16bc: 616d6d6f cmnvs sp, pc, ror #26 - 16c0: 0100646e tsteq r0, lr, ror #8 - 16c4: 101f069c mulsne pc, ip, r6 - 16c8: 000007f3 strdeq r0, [r0], -r3 - 16cc: 0000095d andeq r0, r0, sp, asr r9 - 16d0: 0001230c andeq r2, r1, ip, lsl #6 - 16d4: 260e1000 strcs r1, [lr], -r0 - 16d8: 1fbe0000 svcne 0x00be0000 - 16dc: 1fd20040 svcne 0x00d20040 - 16e0: 0c000040 stceq 0, cr0, [r0], {64} - 16e4: 00000140 andeq r0, r0, r0, asr #2 - 16e8: 0026ee10 eoreq lr, r6, r0, lsl lr - 16ec: 401fe200 andsmi lr, pc, r0, lsl #4 - 16f0: 401ff600 andsmi pc, pc, r0, lsl #12 - 16f4: 02100d00 andseq r0, r0, #0 ; 0x0 - 16f8: 7a000027 bvc 179c <__USR_stack_size+0xf9c> - 16fc: 00000009 andeq r0, r0, r9 - 1700: 00000000 andeq r0, r0, r0 - 1704: 00000138 andeq r0, r0, r8, lsr r1 - 1708: 00840003 addeq r0, r4, r3 - 170c: 07040000 streq r0, [r4, -r0] - 1710: 445c3a43 ldrbmi r3, [ip], #-2627 - 1714: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1718: 73746e65 cmnvc r4, #1616 ; 0x650 - 171c: 646e6120 strbtvs r6, [lr], #-288 - 1720: 74655320 strbtvc r5, [r5], #-800 - 1724: 676e6974 undefined - 1728: 616d5c73 smcvs 54723 - 172c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1730: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1734: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1738: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 173c: 775c7374 undefined - 1740: 6f632d73 svcvs 0x00632d73 - 1744: 6f72746e svcvs 0x0072746e - 1748: 65575c6c ldrbvs r5, [r7, #-3180] - 174c: 65687461 strbvs r7, [r8, #-1121]! - 1750: 74532072 ldrbvc r2, [r3], #-114 - 1754: 6f697461 svcvs 0x00697461 - 1758: 6f43206e svcvs 0x0043206e - 175c: 6f72746e svcvs 0x0072746e - 1760: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1764: 7070415c rsbsvc r4, r0, ip, asr r1 - 1768: 6163696c cmnvs r3, ip, ror #18 - 176c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1770: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1774: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1778: 445c7365 ldrbmi r7, [ip], #-869 - 177c: 6c707369 ldclvs 3, cr7, [r0], #-420 - 1780: 632e7961 teqvs lr, #1589248 ; 0x184000 - 1784: 52414900 subpl r4, r1, #0 ; 0x0 - 1788: 534e4120 movtpl r4, #57632 ; 0xe120 - 178c: 2f432049 svccs 0x00432049 - 1790: 202b2b43 eorcs r2, fp, r3, asr #22 - 1794: 706d6f43 rsbvc r6, sp, r3, asr #30 - 1798: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 179c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 17a0: 322e3033 eorcc r3, lr, #51 ; 0x33 - 17a4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 17a8: 572f3539 undefined - 17ac: 4b203233 blmi 80e080 - 17b0: 534b4349 movtpl r4, #45897 ; 0xb349 - 17b4: 54524154 ldrbpl r4, [r2], #-340 - 17b8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 17bc: 4d524120 ldfmie f4, [r2, #-128] - 17c0: 1ffc0100 svcne 0x00fc0100 - 17c4: 20440040 subcs r0, r4, r0, asr #32 - 17c8: 0c040040 stceq 0, cr0, [r4], {64} - 17cc: 094e0000 stmdbeq lr, {}^ - 17d0: 17100000 ldrne r0, [r0, -r0] - 17d4: 08000003 stmdaeq r0, {r0, r1} - 17d8: 0000013b andeq r0, r0, fp, lsr r1 - 17dc: 5f44434c svcpl 0x0044434c - 17e0: 74697257 strbtvc r7, [r9], #-599 - 17e4: 74614465 strbtvc r4, [r1], #-1125 - 17e8: b8010061 stmdalt r1, {r0, r5, r6} - 17ec: 82010606 andhi r0, r1, #6291456 ; 0x600000 - 17f0: fc000009 stc2 0, cr0, [r0], {9} - 17f4: 4400401f strmi r4, [r0], #-31 - 17f8: 0b004020 bleq 11880 - 17fc: 61746164 cmnvs r4, r4, ror #2 - 1800: 06b80100 ldrteq r0, [r8], r0, lsl #2 - 1804: 07f3101c undefined - 1808: 09a20000 stmibeq r2!, {} - 180c: 1d0c0000 stcne 0, cr0, [ip] - 1810: 10000001 andne r0, r0, r1 - 1814: 0000260e andeq r2, r0, lr, lsl #12 - 1818: 00402014 subeq r2, r0, r4, lsl r0 - 181c: 00402028 subeq r2, r0, r8, lsr #32 - 1820: 013a0c00 teqeq sl, r0, lsl #24 - 1824: ee100000 wxor wr0, wr0, wr0 - 1828: 28000026 stmdacs r0, {r1, r2, r5} - 182c: 3c004020 stccc 0, cr4, [r0], {32} - 1830: 0d004020 stceq 0, cr4, [r0, #-128] - 1834: 00270210 eoreq r0, r7, r0, lsl r2 - 1838: 0009bf00 andeq fp, r9, r0, lsl #30 - 183c: 00000000 andeq r0, r0, r0 - 1840: 000000d0 ldrdeq r0, [r0], -r0 - 1844: 00840003 addeq r0, r4, r3 - 1848: 07040000 streq r0, [r4, -r0] - 184c: 445c3a43 ldrbmi r3, [ip], #-2627 - 1850: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1854: 73746e65 cmnvc r4, #1616 ; 0x650 - 1858: 646e6120 strbtvs r6, [lr], #-288 - 185c: 74655320 strbtvc r5, [r5], #-800 - 1860: 676e6974 undefined - 1864: 616d5c73 smcvs 54723 - 1868: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 186c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1870: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1874: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1878: 775c7374 undefined - 187c: 6f632d73 svcvs 0x00632d73 - 1880: 6f72746e svcvs 0x0072746e - 1884: 65575c6c ldrbvs r5, [r7, #-3180] - 1888: 65687461 strbvs r7, [r8, #-1121]! - 188c: 74532072 ldrbvc r2, [r3], #-114 - 1890: 6f697461 svcvs 0x00697461 - 1894: 6f43206e svcvs 0x0043206e - 1898: 6f72746e svcvs 0x0072746e - 189c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 18a0: 7070415c rsbsvc r4, r0, ip, asr r1 - 18a4: 6163696c cmnvs r3, ip, ror #18 - 18a8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 18ac: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 18b0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 18b4: 445c7365 ldrbmi r7, [ip], #-869 - 18b8: 6c707369 ldclvs 3, cr7, [r0], #-420 - 18bc: 632e7961 teqvs lr, #1589248 ; 0x184000 - 18c0: 52414900 subpl r4, r1, #0 ; 0x0 - 18c4: 534e4120 movtpl r4, #57632 ; 0xe120 - 18c8: 2f432049 svccs 0x00432049 - 18cc: 202b2b43 eorcs r2, fp, r3, asr #22 - 18d0: 706d6f43 rsbvc r6, sp, r3, asr #30 - 18d4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 18d8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 18dc: 322e3033 eorcc r3, lr, #51 ; 0x33 - 18e0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 18e4: 572f3539 undefined - 18e8: 4b203233 blmi 80e1bc - 18ec: 534b4349 movtpl r4, #45897 ; 0xb349 - 18f0: 54524154 ldrbpl r4, [r2], #-340 - 18f4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 18f8: 4d524120 ldfmie f4, [r2, #-128] - 18fc: 20440100 subcs r0, r4, r0, lsl #2 - 1900: 20800040 addcs r0, r0, r0, asr #32 - 1904: 0ce80040 stcleq 0, cr0, [r8], #256 - 1908: 0a700000 beq 1c01910 - 190c: 17100000 ldrne r0, [r0, -r0] - 1910: 00000003 andeq r0, r0, r3 - 1914: 0000010c andeq r0, r0, ip, lsl #2 - 1918: 00840003 addeq r0, r4, r3 - 191c: 07040000 streq r0, [r4, -r0] - 1920: 445c3a43 ldrbmi r3, [ip], #-2627 - 1924: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1928: 73746e65 cmnvc r4, #1616 ; 0x650 - 192c: 646e6120 strbtvs r6, [lr], #-288 - 1930: 74655320 strbtvc r5, [r5], #-800 - 1934: 676e6974 undefined - 1938: 616d5c73 smcvs 54723 - 193c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1940: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1944: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1948: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 194c: 775c7374 undefined - 1950: 6f632d73 svcvs 0x00632d73 - 1954: 6f72746e svcvs 0x0072746e - 1958: 65575c6c ldrbvs r5, [r7, #-3180] - 195c: 65687461 strbvs r7, [r8, #-1121]! - 1960: 74532072 ldrbvc r2, [r3], #-114 - 1964: 6f697461 svcvs 0x00697461 - 1968: 6f43206e svcvs 0x0043206e - 196c: 6f72746e svcvs 0x0072746e - 1970: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1974: 7070415c rsbsvc r4, r0, ip, asr r1 - 1978: 6163696c cmnvs r3, ip, ror #18 - 197c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1980: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1984: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1988: 445c7365 ldrbmi r7, [ip], #-869 - 198c: 6c707369 ldclvs 3, cr7, [r0], #-420 - 1990: 632e7961 teqvs lr, #1589248 ; 0x184000 - 1994: 52414900 subpl r4, r1, #0 ; 0x0 - 1998: 534e4120 movtpl r4, #57632 ; 0xe120 - 199c: 2f432049 svccs 0x00432049 - 19a0: 202b2b43 eorcs r2, fp, r3, asr #22 - 19a4: 706d6f43 rsbvc r6, sp, r3, asr #30 - 19a8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 19ac: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 19b0: 322e3033 eorcc r3, lr, #51 ; 0x33 - 19b4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 19b8: 572f3539 undefined - 19bc: 4b203233 blmi 80e290 - 19c0: 534b4349 movtpl r4, #45897 ; 0xb349 - 19c4: 54524154 ldrbpl r4, [r2], #-340 - 19c8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 19cc: 4d524120 ldfmie f4, [r2, #-128] - 19d0: 20840100 addcs r0, r4, r0, lsl #2 - 19d4: 20a40040 adccs r0, r4, r0, asr #32 - 19d8: 0dd00040 ldcleq 0, cr0, [r0, #256] - 19dc: 0bc70000 bleq ff1c19e4 - 19e0: 17100000 ldrne r0, [r0, -r0] - 19e4: 0f000003 svceq 0x00000003 - 19e8: 0000010e andeq r0, r0, lr, lsl #2 - 19ec: 5f44434c svcpl 0x0044434c - 19f0: 46746553 undefined - 19f4: 00746e6f rsbseq r6, r4, pc, ror #28 - 19f8: 0806d701 stmdaeq r6, {r0, r8, r9, sl, ip, lr, pc} - 19fc: 08021001 stmdaeq r2, {r0, ip} - 1a00: 09c70000 stmibeq r7, {}^ - 1a04: 20840000 addcs r0, r4, r0 - 1a08: 20a40040 adccs r0, r4, r0, asr #32 - 1a0c: 660b0040 strvs r0, [fp], -r0, asr #32 - 1a10: 00746e6f rsbseq r6, r4, pc, ror #28 - 1a14: 2206d701 andcs sp, r6, #262144 ; 0x40000 - 1a18: 0007be10 andeq fp, r7, r0, lsl lr - 1a1c: 0009db00 andeq sp, r9, r0, lsl #22 - 1a20: 00000000 andeq r0, r0, r0 - 1a24: 00000134 andeq r0, r0, r4, lsr r1 - 1a28: 00840003 addeq r0, r4, r3 - 1a2c: 07040000 streq r0, [r4, -r0] - 1a30: 445c3a43 ldrbmi r3, [ip], #-2627 - 1a34: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1a38: 73746e65 cmnvc r4, #1616 ; 0x650 - 1a3c: 646e6120 strbtvs r6, [lr], #-288 - 1a40: 74655320 strbtvc r5, [r5], #-800 - 1a44: 676e6974 undefined - 1a48: 616d5c73 smcvs 54723 - 1a4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1a50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1a54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1a58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1a5c: 775c7374 undefined - 1a60: 6f632d73 svcvs 0x00632d73 - 1a64: 6f72746e svcvs 0x0072746e - 1a68: 65575c6c ldrbvs r5, [r7, #-3180] - 1a6c: 65687461 strbvs r7, [r8, #-1121]! - 1a70: 74532072 ldrbvc r2, [r3], #-114 - 1a74: 6f697461 svcvs 0x00697461 - 1a78: 6f43206e svcvs 0x0043206e - 1a7c: 6f72746e svcvs 0x0072746e - 1a80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1a84: 7070415c rsbsvc r4, r0, ip, asr r1 - 1a88: 6163696c cmnvs r3, ip, ror #18 - 1a8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1a90: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1a94: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1a98: 445c7365 ldrbmi r7, [ip], #-869 - 1a9c: 6c707369 ldclvs 3, cr7, [r0], #-420 - 1aa0: 632e7961 teqvs lr, #1589248 ; 0x184000 - 1aa4: 52414900 subpl r4, r1, #0 ; 0x0 - 1aa8: 534e4120 movtpl r4, #57632 ; 0xe120 - 1aac: 2f432049 svccs 0x00432049 - 1ab0: 202b2b43 eorcs r2, fp, r3, asr #22 - 1ab4: 706d6f43 rsbvc r6, sp, r3, asr #30 - 1ab8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 1abc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 1ac0: 322e3033 eorcc r3, lr, #51 ; 0x33 - 1ac4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 1ac8: 572f3539 undefined - 1acc: 4b203233 blmi 80e3a0 - 1ad0: 534b4349 movtpl r4, #45897 ; 0xb349 - 1ad4: 54524154 ldrbpl r4, [r2], #-340 - 1ad8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 1adc: 4d524120 ldfmie f4, [r2, #-128] - 1ae0: 20a40100 adccs r0, r4, r0, lsl #2 - 1ae4: 20ba0040 adcscs r0, sl, r0, asr #32 - 1ae8: 0e840040 cdpeq 0, 8, cr0, cr4, cr0, {2} - 1aec: 0c280000 stceq 0, cr0, [r8] - 1af0: 17100000 ldrne r0, [r0, -r0] - 1af4: 08000003 stmdaeq r0, {r0, r1} - 1af8: 00000136 andeq r0, r0, r6, lsr r1 - 1afc: 5f44434c svcpl 0x0044434c - 1b00: 42746553 rsbsmi r6, r4, #348127232 ; 0x14c00000 - 1b04: 6c6b6361 stclvs 3, cr6, [fp], #-388 - 1b08: 74686769 strbtvc r6, [r8], #-1897 - 1b0c: 078e0100 streq r0, [lr, r0, lsl #2] - 1b10: 09f80106 ldmibeq r8!, {r1, r2, r8}^ - 1b14: 20a40000 adccs r0, r4, r0 - 1b18: 20ba0040 adcscs r0, sl, r0, asr #32 - 1b1c: 620b0040 andvs r0, fp, #64 ; 0x40 - 1b20: 68676972 stmdavs r7!, {r1, r4, r5, r6, r8, fp, sp, lr}^ - 1b24: 73656e74 cmnvc r5, #1856 ; 0x740 - 1b28: 6c615673 stclvs 6, cr5, [r1], #-460 - 1b2c: 01006575 tsteq r0, r5, ror r5 - 1b30: 101f078e andsne r0, pc, lr, lsl #15 - 1b34: 000007f3 strdeq r0, [r0], -r3 - 1b38: 00000a24 andeq r0, r0, r4, lsr #20 - 1b3c: 63616209 cmnvs r1, #-1879048192 ; 0x90000000 - 1b40: 67694c6b strbvs r4, [r9, -fp, ror #24]! - 1b44: 74537468 ldrbvc r7, [r3], #-1128 - 1b48: 00657461 rsbeq r7, r5, r1, ror #8 - 1b4c: 14079001 strne r9, [r7], #-1 - 1b50: 00079b10 andeq r9, r7, r0, lsl fp - 1b54: 000a4100 andeq r4, sl, r0, lsl #2 - 1b58: 00000000 andeq r0, r0, r0 - 1b5c: 000001ec andeq r0, r0, ip, ror #3 - 1b60: 00840003 addeq r0, r4, r3 - 1b64: 07040000 streq r0, [r4, -r0] - 1b68: 445c3a43 ldrbmi r3, [ip], #-2627 - 1b6c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1b70: 73746e65 cmnvc r4, #1616 ; 0x650 - 1b74: 646e6120 strbtvs r6, [lr], #-288 - 1b78: 74655320 strbtvc r5, [r5], #-800 - 1b7c: 676e6974 undefined - 1b80: 616d5c73 smcvs 54723 - 1b84: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1b88: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1b8c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1b90: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1b94: 775c7374 undefined - 1b98: 6f632d73 svcvs 0x00632d73 - 1b9c: 6f72746e svcvs 0x0072746e - 1ba0: 65575c6c ldrbvs r5, [r7, #-3180] - 1ba4: 65687461 strbvs r7, [r8, #-1121]! - 1ba8: 74532072 ldrbvc r2, [r3], #-114 - 1bac: 6f697461 svcvs 0x00697461 - 1bb0: 6f43206e svcvs 0x0043206e - 1bb4: 6f72746e svcvs 0x0072746e - 1bb8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1bbc: 7070415c rsbsvc r4, r0, ip, asr r1 - 1bc0: 6163696c cmnvs r3, ip, ror #18 - 1bc4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1bc8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1bcc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1bd0: 445c7365 ldrbmi r7, [ip], #-869 - 1bd4: 6c707369 ldclvs 3, cr7, [r0], #-420 - 1bd8: 632e7961 teqvs lr, #1589248 ; 0x184000 - 1bdc: 52414900 subpl r4, r1, #0 ; 0x0 - 1be0: 534e4120 movtpl r4, #57632 ; 0xe120 - 1be4: 2f432049 svccs 0x00432049 - 1be8: 202b2b43 eorcs r2, fp, r3, asr #22 - 1bec: 706d6f43 rsbvc r6, sp, r3, asr #30 - 1bf0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 1bf4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 1bf8: 322e3033 eorcc r3, lr, #51 ; 0x33 - 1bfc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 1c00: 572f3539 undefined - 1c04: 4b203233 blmi 80e4d8 - 1c08: 534b4349 movtpl r4, #45897 ; 0xb349 - 1c0c: 54524154 ldrbpl r4, [r2], #-340 - 1c10: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 1c14: 4d524120 ldfmie f4, [r2, #-128] - 1c18: 20ba0100 adcscs r0, sl, r0, lsl #2 - 1c1c: 21e20040 mvncs r0, r0, asr #32 - 1c20: 0f380040 svceq 0x00380040 - 1c24: 0c900000 ldceq 0, cr0, [r0], {0} - 1c28: 17100000 ldrne r0, [r0, -r0] - 1c2c: 08000003 stmdaeq r0, {r0, r1} - 1c30: 000001ee andeq r0, r0, lr, ror #3 - 1c34: 5f44434c svcpl 0x0044434c - 1c38: 74697257 strbtvc r7, [r9], #-599 - 1c3c: 78695065 stmdavc r9!, {r0, r2, r5, r6, ip, lr}^ - 1c40: 01006c65 tsteq r0, r5, ror #24 - 1c44: 010607a0 smlatbeq r6, r0, r7, r0 - 1c48: 00000a5e andeq r0, r0, lr, asr sl - 1c4c: 004020ba strheq r2, [r0], #-10 - 1c50: 004021e2 subeq r2, r0, r2, ror #3 - 1c54: 7453780b ldrbvc r7, [r3], #-2059 - 1c58: 43747261 cmnmi r4, #268435462 ; 0x10000006 - 1c5c: 64726f6f ldrbtvs r6, [r2], #-3951 - 1c60: 07a00100 streq r0, [r0, r0, lsl #2]! - 1c64: 07f3101d undefined - 1c68: 0a8a0000 beq fe281c70 - 1c6c: 790b0000 stmdbvc fp, {} - 1c70: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 - 1c74: 6f6f4374 svcvs 0x006f4374 - 1c78: 01006472 tsteq r0, r2, ror r4 - 1c7c: 103207a0 eorsne r0, r2, r0, lsr #15 - 1c80: 000007f3 strdeq r0, [r0], -r3 - 1c84: 00000aa7 andeq r0, r0, r7, lsr #21 - 1c88: 646f6d0b strbtvs r6, [pc], #3339 ; 1c90 <__USR_stack_size+0x1490> - 1c8c: a0010065 andge r0, r1, r5, rrx - 1c90: 02104607 andseq r4, r0, #7340032 ; 0x700000 - 1c94: c4000008 strgt r0, [r0], #-8 - 1c98: 0900000a stmdbeq r0, {r1, r3} - 1c9c: 65676170 strbvs r6, [r7, #-368]! - 1ca0: 07a20100 streq r0, [r2, r0, lsl #2]! - 1ca4: 07f3100b ldrbeq r1, [r3, fp]! - 1ca8: 0ae10000 beq ff841cb0 - 1cac: 72090000 andvc r0, r9, #0 ; 0x0 - 1cb0: 00646165 rsbeq r6, r4, r5, ror #2 - 1cb4: 0b07a301 bleq 1ea8c0 - 1cb8: 0007f310 andeq pc, r7, r0, lsl r3 - 1cbc: 000afe00 andeq pc, sl, r0, lsl #28 - 1cc0: 01a90c00 undefined instruction 0x01a90c00 - 1cc4: da100000 ble 401ccc - 1cc8: 02000027 andeq r0, r0, #39 ; 0x27 - 1ccc: 4c004021 stcmi 0, cr4, [r0], {33} - 1cd0: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} - 1cd4: 0027f310 eoreq pc, r7, r0, lsl r3 - 1cd8: 000b3000 andeq r3, fp, r0 - 1cdc: 01a80c00 undefined instruction 0x01a80c00 - 1ce0: d2100000 andsle r0, r0, #0 ; 0x0 - 1ce4: 26000028 strcs r0, [r0], -r8, lsr #32 - 1ce8: 36004021 strcc r4, [r0], -r1, lsr #32 - 1cec: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} - 1cf0: 0028ea10 eoreq lr, r8, r0, lsl sl - 1cf4: 000b3800 andeq r3, fp, r0, lsl #16 - 1cf8: 00100e00 andseq r0, r0, r0, lsl #28 - 1cfc: 40000029 andmi r0, r0, r9, lsr #32 - 1d00: 0000000b andeq r0, r0, fp - 1d04: 01ed0c00 mvneq r0, r0, lsl #24 - 1d08: da100000 ble 401d10 - 1d0c: 4c000027 stcmi 0, cr0, [r0], {39} - 1d10: 9e004021 cdpls 0, 0, cr4, cr0, cr1, {1} - 1d14: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} - 1d18: 0027f310 eoreq pc, r7, r0, lsl r3 - 1d1c: 000b5400 andeq r5, fp, r0, lsl #8 - 1d20: 01ec0c00 mvneq r0, r0, lsl #24 - 1d24: d2100000 andsle r0, r0, #0 ; 0x0 - 1d28: 70000028 andvc r0, r0, r8, lsr #32 - 1d2c: 88004021 stmdahi r0, {r0, r5, lr} - 1d30: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} - 1d34: 0028ea10 eoreq lr, r8, r0, lsl sl - 1d38: 000b5c00 andeq r5, fp, r0, lsl #24 - 1d3c: 00100e00 andseq r0, r0, r0, lsl #28 - 1d40: 6f000029 svcvs 0x00000029 - 1d44: 0000000b andeq r0, r0, fp - 1d48: 00000000 andeq r0, r0, r0 - 1d4c: 000001bc strheq r0, [r0], -ip - 1d50: 00840003 addeq r0, r4, r3 - 1d54: 07040000 streq r0, [r4, -r0] - 1d58: 445c3a43 ldrbmi r3, [ip], #-2627 - 1d5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1d60: 73746e65 cmnvc r4, #1616 ; 0x650 - 1d64: 646e6120 strbtvs r6, [lr], #-288 - 1d68: 74655320 strbtvc r5, [r5], #-800 - 1d6c: 676e6974 undefined - 1d70: 616d5c73 smcvs 54723 - 1d74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1d78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1d7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1d80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1d84: 775c7374 undefined - 1d88: 6f632d73 svcvs 0x00632d73 - 1d8c: 6f72746e svcvs 0x0072746e - 1d90: 65575c6c ldrbvs r5, [r7, #-3180] - 1d94: 65687461 strbvs r7, [r8, #-1121]! - 1d98: 74532072 ldrbvc r2, [r3], #-114 - 1d9c: 6f697461 svcvs 0x00697461 - 1da0: 6f43206e svcvs 0x0043206e - 1da4: 6f72746e svcvs 0x0072746e - 1da8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1dac: 7070415c rsbsvc r4, r0, ip, asr r1 - 1db0: 6163696c cmnvs r3, ip, ror #18 - 1db4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1db8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1dbc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1dc0: 445c7365 ldrbmi r7, [ip], #-869 - 1dc4: 6c707369 ldclvs 3, cr7, [r0], #-420 - 1dc8: 632e7961 teqvs lr, #1589248 ; 0x184000 - 1dcc: 52414900 subpl r4, r1, #0 ; 0x0 - 1dd0: 534e4120 movtpl r4, #57632 ; 0xe120 - 1dd4: 2f432049 svccs 0x00432049 - 1dd8: 202b2b43 eorcs r2, fp, r3, asr #22 - 1ddc: 706d6f43 rsbvc r6, sp, r3, asr #30 - 1de0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 1de4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 1de8: 322e3033 eorcc r3, lr, #51 ; 0x33 - 1dec: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 1df0: 572f3539 undefined - 1df4: 4b203233 blmi 80e6c8 - 1df8: 534b4349 movtpl r4, #45897 ; 0xb349 - 1dfc: 54524154 ldrbpl r4, [r2], #-340 - 1e00: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 1e04: 4d524120 ldfmie f4, [r2, #-128] - 1e08: 21e40100 mvncs r0, r0, lsl #2 - 1e0c: 22ac0040 adccs r0, ip, #64 ; 0x40 - 1e10: 10600040 rsbne r0, r0, r0, asr #32 - 1e14: 0f3d0000 svceq 0x003d0000 - 1e18: 17100000 ldrne r0, [r0, -r0] - 1e1c: 08000003 stmdaeq r0, {r0, r1} - 1e20: 000001bf strheq r0, [r0], -pc - 1e24: 5f44434c svcpl 0x0044434c - 1e28: 74697257 strbtvc r7, [r9], #-599 - 1e2c: 61684365 cmnvs r8, r5, ror #6 - 1e30: 74636172 strbtvc r6, [r3], #-370 - 1e34: 01007265 tsteq r0, r5, ror #4 - 1e38: 010607d0 ldrdeq r0, [r6, -r0] - 1e3c: 00000b83 andeq r0, r0, r3, lsl #23 - 1e40: 004021e4 subeq r2, r0, r4, ror #3 - 1e44: 004022ac subeq r2, r0, ip, lsr #5 - 1e48: 6d79730b ldclvs 3, cr7, [r9, #-44]! - 1e4c: 006c6f62 rsbeq r6, ip, r2, ror #30 - 1e50: 2107d001 tstcs r7, r1 - 1e54: 0007f310 andeq pc, r7, r0, lsl r3 - 1e58: 000baf00 andeq sl, fp, r0, lsl #30 - 1e5c: 43780b00 cmnmi r8, #0 ; 0x0 - 1e60: 64726f6f ldrbtvs r6, [r2], #-3951 - 1e64: 07d00100 ldrbeq r0, [r0, r0, lsl #2] - 1e68: 07f31031 undefined - 1e6c: 0bcc0000 bleq ff301e74 - 1e70: 790b0000 stmdbvc fp, {} - 1e74: 726f6f43 rsbvc r6, pc, #268 ; 0x10c - 1e78: d0010064 andle r0, r1, r4, rrx - 1e7c: f3104107 vrhadd.u16 d4, d0, d7 - 1e80: e0000007 and r0, r0, r7 - 1e84: 0900000b stmdbeq r0, {r0, r1, r3} - 1e88: 61727261 cmnvs r2, r1, ror #4 - 1e8c: 636f4c79 cmnvs pc, #30976 ; 0x7900 - 1e90: 6f697461 svcvs 0x00697461 - 1e94: d201006e andle r0, r1, #110 ; 0x6e - 1e98: 1f100c07 svcne 0x00100c07 - 1e9c: f3000008 vhadd.u8 d0, d0, d8 - 1ea0: 0900000b stmdbeq r0, {r0, r1, r3} - 1ea4: d3010069 movwle r0, #4201 ; 0x1069 - 1ea8: f3100b07 vqrdmulh.s16 d0, d0, d7 - 1eac: 05000007 streq r0, [r0, #-7] - 1eb0: 0900000c stmdbeq r0, {r2, r3} - 1eb4: 4c78616d ldfmie f6, [r8], #-436 - 1eb8: 74676e65 strbtvc r6, [r7], #-3685 - 1ebc: d3010068 movwle r0, #4200 ; 0x1068 - 1ec0: f3100e07 vcge.f d0, d0, d7 - 1ec4: 22000007 andcs r0, r0, #7 ; 0x7 - 1ec8: 0a00000c beq 1f00 <__USR_stack_size+0x1700> - 1ecc: 000001be strheq r0, [r0], -lr - 1ed0: 0040221c subeq r2, r0, ip, lsl r2 - 1ed4: 004022ac subeq r2, r0, ip, lsr #5 - 1ed8: 0001bd0c andeq fp, r1, ip, lsl #26 - 1edc: 29da1000 ldmibcs sl, {ip}^ - 1ee0: 22700000 rsbscs r0, r0, #0 ; 0x0 - 1ee4: 229a0040 addscs r0, sl, #64 ; 0x40 - 1ee8: 100d0040 andne r0, sp, r0, asr #32 - 1eec: 000029f6 strdeq r2, [r0], -r6 - 1ef0: 00000c35 andeq r0, r0, r5, lsr ip - 1ef4: 2a0c100d bcs 305f30 - 1ef8: 0c3d0000 ldceq 0, cr0, [sp] - 1efc: 100e0000 andne r0, lr, r0 - 1f00: 00002a22 andeq r2, r0, r2, lsr #20 - 1f04: 00000c45 andeq r0, r0, r5, asr #24 - 1f08: 00000000 andeq r0, r0, r0 - 1f0c: 000000d0 ldrdeq r0, [r0], -r0 - 1f10: 00840003 addeq r0, r4, r3 - 1f14: 07040000 streq r0, [r4, -r0] - 1f18: 445c3a43 ldrbmi r3, [ip], #-2627 - 1f1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1f20: 73746e65 cmnvc r4, #1616 ; 0x650 - 1f24: 646e6120 strbtvs r6, [lr], #-288 - 1f28: 74655320 strbtvc r5, [r5], #-800 - 1f2c: 676e6974 undefined - 1f30: 616d5c73 smcvs 54723 - 1f34: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1f38: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1f3c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1f40: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1f44: 775c7374 undefined - 1f48: 6f632d73 svcvs 0x00632d73 - 1f4c: 6f72746e svcvs 0x0072746e - 1f50: 65575c6c ldrbvs r5, [r7, #-3180] - 1f54: 65687461 strbvs r7, [r8, #-1121]! - 1f58: 74532072 ldrbvc r2, [r3], #-114 - 1f5c: 6f697461 svcvs 0x00697461 - 1f60: 6f43206e svcvs 0x0043206e - 1f64: 6f72746e svcvs 0x0072746e - 1f68: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1f6c: 7070415c rsbsvc r4, r0, ip, asr r1 - 1f70: 6163696c cmnvs r3, ip, ror #18 - 1f74: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1f78: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1f7c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1f80: 445c7365 ldrbmi r7, [ip], #-869 - 1f84: 6c707369 ldclvs 3, cr7, [r0], #-420 - 1f88: 632e7961 teqvs lr, #1589248 ; 0x184000 - 1f8c: 52414900 subpl r4, r1, #0 ; 0x0 - 1f90: 534e4120 movtpl r4, #57632 ; 0xe120 - 1f94: 2f432049 svccs 0x00432049 - 1f98: 202b2b43 eorcs r2, fp, r3, asr #22 - 1f9c: 706d6f43 rsbvc r6, sp, r3, asr #30 - 1fa0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 1fa4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 1fa8: 322e3033 eorcc r3, lr, #51 ; 0x33 - 1fac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 1fb0: 572f3539 undefined - 1fb4: 4b203233 blmi 80e888 - 1fb8: 534b4349 movtpl r4, #45897 ; 0xb349 - 1fbc: 54524154 ldrbpl r4, [r2], #-340 - 1fc0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 1fc4: 4d524120 ldfmie f4, [r2, #-128] - 1fc8: 22ac0100 adccs r0, ip, #0 ; 0x0 - 1fcc: 22b00040 adcscs r0, r0, #64 ; 0x40 - 1fd0: 11500040 cmpne r0, r0, asr #32 - 1fd4: 105f0000 subsne r0, pc, r0 - 1fd8: 17100000 ldrne r0, [r0, -r0] - 1fdc: 00000003 andeq r0, r0, r3 - 1fe0: 00000180 andeq r0, r0, r0, lsl #3 - 1fe4: 00840003 addeq r0, r4, r3 - 1fe8: 07040000 streq r0, [r4, -r0] - 1fec: 445c3a43 ldrbmi r3, [ip], #-2627 - 1ff0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1ff4: 73746e65 cmnvc r4, #1616 ; 0x650 - 1ff8: 646e6120 strbtvs r6, [lr], #-288 - 1ffc: 74655320 strbtvc r5, [r5], #-800 - 2000: 676e6974 undefined - 2004: 616d5c73 smcvs 54723 - 2008: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 200c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2010: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2014: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2018: 775c7374 undefined - 201c: 6f632d73 svcvs 0x00632d73 - 2020: 6f72746e svcvs 0x0072746e - 2024: 65575c6c ldrbvs r5, [r7, #-3180] - 2028: 65687461 strbvs r7, [r8, #-1121]! - 202c: 74532072 ldrbvc r2, [r3], #-114 - 2030: 6f697461 svcvs 0x00697461 - 2034: 6f43206e svcvs 0x0043206e - 2038: 6f72746e svcvs 0x0072746e - 203c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2040: 7070415c rsbsvc r4, r0, ip, asr r1 - 2044: 6163696c cmnvs r3, ip, ror #18 - 2048: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 204c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 2050: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 2054: 445c7365 ldrbmi r7, [ip], #-869 - 2058: 6c707369 ldclvs 3, cr7, [r0], #-420 - 205c: 632e7961 teqvs lr, #1589248 ; 0x184000 - 2060: 52414900 subpl r4, r1, #0 ; 0x0 - 2064: 534e4120 movtpl r4, #57632 ; 0xe120 - 2068: 2f432049 svccs 0x00432049 - 206c: 202b2b43 eorcs r2, fp, r3, asr #22 - 2070: 706d6f43 rsbvc r6, sp, r3, asr #30 - 2074: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 2078: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 207c: 322e3033 eorcc r3, lr, #51 ; 0x33 - 2080: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 2084: 572f3539 undefined - 2088: 4b203233 blmi 80e95c - 208c: 534b4349 movtpl r4, #45897 ; 0xb349 - 2090: 54524154 ldrbpl r4, [r2], #-340 - 2094: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 2098: 4d524120 ldfmie f4, [r2, #-128] - 209c: 22d00100 sbcscs r0, r0, #0 ; 0x0 - 20a0: 23160040 tstcs r6, #64 ; 0x40 - 20a4: 11780040 cmnne r8, r0, asr #32 - 20a8: 11140000 tstne r4, r0 - 20ac: 17100000 ldrne r0, [r0, -r0] - 20b0: 08000003 stmdaeq r0, {r0, r1} - 20b4: 00000180 andeq r0, r0, r0, lsl #3 - 20b8: 5f44434c svcpl 0x0044434c - 20bc: 61656c43 cmnvs r5, r3, asr #24 - 20c0: 67615072 undefined - 20c4: 84010065 strhi r0, [r1], #-101 - 20c8: 4d010608 stcmi 6, cr0, [r1, #-32] - 20cc: d000000c andle r0, r0, ip - 20d0: 16004022 strne r4, [r0], -r2, lsr #32 - 20d4: 0b004023 bleq 12168 - 20d8: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - 20dc: 6f435874 svcvs 0x00435874 - 20e0: 0064726f rsbeq r7, r4, pc, ror #4 - 20e4: 1c088401 cfstrsne mvf8, [r8], {1} - 20e8: 0007f310 andeq pc, r7, r0, lsl r3 - 20ec: 000c8500 andeq r8, ip, r0, lsl #10 - 20f0: 6e650b00 fmuldvs d16, d5, d0 - 20f4: 6f435864 svcvs 0x00435864 - 20f8: 0064726f rsbeq r7, r4, pc, ror #4 - 20fc: 31088401 tstcc r8, r1, lsl #8 - 2100: 0007f310 andeq pc, r7, r0, lsl r3 - 2104: 000ca200 andeq sl, ip, r0, lsl #4 - 2108: 43790b00 cmnmi r9, #0 ; 0x0 - 210c: 64726f6f ldrbtvs r6, [r2], #-3951 - 2110: 08840100 stmeq r4, {r8} - 2114: 07f31044 ldrbeq r1, [r3, r4, asr #32]! - 2118: 0cbf0000 ldceq 0, cr0, [pc] - 211c: 69090000 stmdbvs r9, {} - 2120: 08860100 stmeq r6, {r8} - 2124: 07f3100b ldrbeq r1, [r3, fp]! - 2128: 0cdc0000 ldcleq 0, cr0, [ip], {0} - 212c: 7f0c0000 svcvc 0x000c0000 - 2130: 10000001 andne r0, r0, r1 - 2134: 000029da ldrdeq r2, [r0], -sl - 2138: 004022d8 ldrdeq r2, [r0], #-40 - 213c: 004022fc strdeq r2, [r0], #-44 - 2140: 29f6100d ldmibcs r6!, {r0, r2, r3, ip}^ - 2144: 0cf90000 ldcleq 0, cr0, [r9] - 2148: 100d0000 andne r0, sp, r0 - 214c: 00002a0c andeq r2, r0, ip, lsl #20 - 2150: 00000d01 andeq r0, r0, r1, lsl #26 - 2154: 2a22100e bcs 886194 - 2158: 0d090000 stceq 0, cr0, [r9] - ... - 2164: 00000158 andeq r0, r0, r8, asr r1 - 2168: 00840003 addeq r0, r4, r3 - 216c: 07040000 streq r0, [r4, -r0] - 2170: 445c3a43 ldrbmi r3, [ip], #-2627 - 2174: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2178: 73746e65 cmnvc r4, #1616 ; 0x650 - 217c: 646e6120 strbtvs r6, [lr], #-288 - 2180: 74655320 strbtvc r5, [r5], #-800 - 2184: 676e6974 undefined - 2188: 616d5c73 smcvs 54723 - 218c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2190: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2194: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2198: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 219c: 775c7374 undefined - 21a0: 6f632d73 svcvs 0x00632d73 - 21a4: 6f72746e svcvs 0x0072746e - 21a8: 65575c6c ldrbvs r5, [r7, #-3180] - 21ac: 65687461 strbvs r7, [r8, #-1121]! - 21b0: 74532072 ldrbvc r2, [r3], #-114 - 21b4: 6f697461 svcvs 0x00697461 - 21b8: 6f43206e svcvs 0x0043206e - 21bc: 6f72746e svcvs 0x0072746e - 21c0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 21c4: 7070415c rsbsvc r4, r0, ip, asr r1 - 21c8: 6163696c cmnvs r3, ip, ror #18 - 21cc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 21d0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 21d4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 21d8: 445c7365 ldrbmi r7, [ip], #-869 - 21dc: 6c707369 ldclvs 3, cr7, [r0], #-420 - 21e0: 632e7961 teqvs lr, #1589248 ; 0x184000 - 21e4: 52414900 subpl r4, r1, #0 ; 0x0 - 21e8: 534e4120 movtpl r4, #57632 ; 0xe120 - 21ec: 2f432049 svccs 0x00432049 - 21f0: 202b2b43 eorcs r2, fp, r3, asr #22 - 21f4: 706d6f43 rsbvc r6, sp, r3, asr #30 - 21f8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 21fc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 2200: 322e3033 eorcc r3, lr, #51 ; 0x33 - 2204: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 2208: 572f3539 undefined - 220c: 4b203233 blmi 80eae0 - 2210: 534b4349 movtpl r4, #45897 ; 0xb349 - 2214: 54524154 ldrbpl r4, [r2], #-340 - 2218: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 221c: 4d524120 ldfmie f4, [r2, #-128] - 2220: 23180100 tstcs r8, #0 ; 0x0 - 2224: 23780040 cmncs r8, #64 ; 0x40 - 2228: 12500040 subsne r0, r0, #64 ; 0x40 - 222c: 11ef0000 mvnne r0, r0 - 2230: 17100000 ldrne r0, [r0, -r0] - 2234: 0f000003 svceq 0x00000003 - 2238: 0000015b andeq r0, r0, fp, asr r1 - 223c: 5f44434c svcpl 0x0044434c - 2240: 61656c43 cmnvs r5, r3, asr #24 - 2244: 6e694c72 mcrvs 12, 3, r4, cr9, cr2, {3} - 2248: 9e010065 cdpls 0, 0, cr0, cr1, cr5, {3} - 224c: 10010908 andne r0, r1, r8, lsl #18 - 2250: 000007f3 strdeq r0, [r0], -r3 - 2254: 00000d11 andeq r0, r0, r1, lsl sp - 2258: 00402318 subeq r2, r0, r8, lsl r3 - 225c: 00402378 subeq r2, r0, r8, ror r3 - 2260: 6e696c0b cdpvs 12, 6, cr6, cr9, cr11, {0} - 2264: 9e010065 cdpls 0, 0, cr0, cr1, cr5, {3} - 2268: f3101f08 vpmax.f d1, d0, d8 - 226c: 55000007 strpl r0, [r0, #-7] - 2270: 0500000d streq r0, [r0, #-13] - 2274: 65676170 strbvs r6, [r7, #-368]! - 2278: 65446f54 strbvs r6, [r4, #-3924] - 227c: 6574656c ldrbvs r6, [r4, #-1388]! - 2280: 086b1000 stmdaeq fp!, {ip}^ - 2284: a0010000 andge r0, r1, r0 - 2288: 05001708 streq r1, [r0, #-1800] - 228c: 40548403 subsmi r8, r4, r3, lsl #8 - 2290: 73690500 cmnvc r9, #0 ; 0x0 - 2294: 65676150 strbvs r6, [r7, #-336]! - 2298: 656c6544 strbvs r6, [ip, #-1348]! - 229c: 00646574 rsbeq r6, r4, r4, ror r5 - 22a0: 00080210 andeq r0, r8, r0, lsl r2 - 22a4: 08a10100 stmiaeq r1!, {r8} - 22a8: 03050011 movweq r0, #20497 ; 0x5011 - 22ac: 004054a0 subeq r5, r0, r0, lsr #9 - 22b0: 00015a0a andeq r5, r1, sl, lsl #20 - 22b4: 40231e00 eormi r1, r3, r0, lsl #28 - 22b8: 40237000 eormi r7, r3, r0 - 22bc: 00000000 andeq r0, r0, r0 - 22c0: 0000016c andeq r0, r0, ip, ror #2 - 22c4: 00840003 addeq r0, r4, r3 - 22c8: 07040000 streq r0, [r4, -r0] - 22cc: 445c3a43 ldrbmi r3, [ip], #-2627 - 22d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 22d4: 73746e65 cmnvc r4, #1616 ; 0x650 - 22d8: 646e6120 strbtvs r6, [lr], #-288 - 22dc: 74655320 strbtvc r5, [r5], #-800 - 22e0: 676e6974 undefined - 22e4: 616d5c73 smcvs 54723 - 22e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 22ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 22f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 22f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 22f8: 775c7374 undefined - 22fc: 6f632d73 svcvs 0x00632d73 - 2300: 6f72746e svcvs 0x0072746e - 2304: 65575c6c ldrbvs r5, [r7, #-3180] - 2308: 65687461 strbvs r7, [r8, #-1121]! - 230c: 74532072 ldrbvc r2, [r3], #-114 - 2310: 6f697461 svcvs 0x00697461 - 2314: 6f43206e svcvs 0x0043206e - 2318: 6f72746e svcvs 0x0072746e - 231c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2320: 7070415c rsbsvc r4, r0, ip, asr r1 - 2324: 6163696c cmnvs r3, ip, ror #18 - 2328: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 232c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 2330: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 2334: 445c7365 ldrbmi r7, [ip], #-869 - 2338: 6c707369 ldclvs 3, cr7, [r0], #-420 - 233c: 632e7961 teqvs lr, #1589248 ; 0x184000 - 2340: 52414900 subpl r4, r1, #0 ; 0x0 - 2344: 534e4120 movtpl r4, #57632 ; 0xe120 - 2348: 2f432049 svccs 0x00432049 - 234c: 202b2b43 eorcs r2, fp, r3, asr #22 - 2350: 706d6f43 rsbvc r6, sp, r3, asr #30 - 2354: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 2358: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 235c: 322e3033 eorcc r3, lr, #51 ; 0x33 - 2360: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 2364: 572f3539 undefined - 2368: 4b203233 blmi 80ec3c - 236c: 534b4349 movtpl r4, #45897 ; 0xb349 - 2370: 54524154 ldrbpl r4, [r2], #-340 - 2374: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 2378: 4d524120 ldfmie f4, [r2, #-128] - 237c: 00000100 andeq r0, r0, r0, lsl #2 - 2380: 00600000 rsbeq r0, r0, r0 - 2384: 13180000 tstne r8, #0 ; 0x0 - 2388: 129a0000 addsne r0, sl, #0 ; 0x0 - 238c: 17100000 ldrne r0, [r0, -r0] - 2390: 08000003 stmdaeq r0, {r0, r1} - 2394: 0000016c andeq r0, r0, ip, ror #2 - 2398: 5f44434c svcpl 0x0044434c - 239c: 77617244 strbvc r7, [r1, -r4, asr #4]! - 23a0: 6e6f6349 cdpvs 3, 6, cr6, cr15, cr9, {2} - 23a4: 0abf0100 beq fefc27ac - 23a8: 0d720106 ldfeqe f0, [r2, #-24]! - 23ac: 00000000 andeq r0, r0, r0 - 23b0: 00600000 rsbeq r0, r0, r0 - 23b4: 750b0000 strvc r0, [fp] - 23b8: 6f435838 svcvs 0x00435838 - 23bc: 0064726f rsbeq r7, r4, pc, ror #4 - 23c0: 1b0abf01 blne 2b1fcc - 23c4: 0007f310 andeq pc, r7, r0, lsl r3 - 23c8: 000d9e00 andeq r9, sp, r0, lsl #28 - 23cc: 38750b00 ldmdacc r5!, {r8, r9, fp}^ - 23d0: 67615059 undefined - 23d4: bf010065 svclt 0x00010065 - 23d8: f3102d0a vpadd.f d2, d0, d10 - 23dc: b2000007 andlt r0, r0, #7 ; 0x7 - 23e0: 0b00000d bleq 241c <__USR_stack_size+0x1c1c> - 23e4: 49387570 ldmdbmi r8!, {r4, r5, r6, r8, sl, ip, sp, lr} - 23e8: 006e6f63 rsbeq r6, lr, r3, ror #30 - 23ec: 400abf01 andmi fp, sl, r1, lsl #30 - 23f0: 00042a10 andeq r2, r4, r0, lsl sl - 23f4: 000dc500 andeq ip, sp, r0, lsl #10 - 23f8: 38750900 ldmdacc r5!, {r8, fp}^ - 23fc: c1010069 tstgt r1, r9, rrx - 2400: f3100b0a vqrdmulh.s16 d0, d0, d10 - 2404: d8000007 stmdale r0, {r0, r1, r2} - 2408: 0900000d stmdbeq r0, {r0, r2, r3} - 240c: 006a3875 rsbeq r3, sl, r5, ror r8 - 2410: 0b0ac201 bleq 2b2c1c - 2414: 0007f310 andeq pc, r7, r0, lsl r3 - 2418: 000de000 andeq lr, sp, r0 - 241c: 016b0a00 cmneq fp, r0, lsl #20 - 2420: 00240000 eoreq r0, r4, r0 - 2424: 005a0000 subseq r0, sl, r0 - ... - 2430: 00000114 andeq r0, r0, r4, lsl r1 - 2434: 00840003 addeq r0, r4, r3 - 2438: 01040000 tsteq r4, r0 - 243c: 445c3a43 ldrbmi r3, [ip], #-2627 - 2440: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2444: 73746e65 cmnvc r4, #1616 ; 0x650 - 2448: 646e6120 strbtvs r6, [lr], #-288 - 244c: 74655320 strbtvc r5, [r5], #-800 - 2450: 676e6974 undefined - 2454: 616d5c73 smcvs 54723 - 2458: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 245c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2460: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2464: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2468: 775c7374 undefined - 246c: 6f632d73 svcvs 0x00632d73 - 2470: 6f72746e svcvs 0x0072746e - 2474: 65575c6c ldrbvs r5, [r7, #-3180] - 2478: 65687461 strbvs r7, [r8, #-1121]! - 247c: 74532072 ldrbvc r2, [r3], #-114 - 2480: 6f697461 svcvs 0x00697461 - 2484: 6f43206e svcvs 0x0043206e - 2488: 6f72746e svcvs 0x0072746e - 248c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2490: 7070415c rsbsvc r4, r0, ip, asr r1 - 2494: 6163696c cmnvs r3, ip, ror #18 - 2498: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 249c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 24a0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 24a4: 445c7365 ldrbmi r7, [ip], #-869 - 24a8: 6c707369 ldclvs 3, cr7, [r0], #-420 - 24ac: 632e7961 teqvs lr, #1589248 ; 0x184000 - 24b0: 52414900 subpl r4, r1, #0 ; 0x0 - 24b4: 534e4120 movtpl r4, #57632 ; 0xe120 - 24b8: 2f432049 svccs 0x00432049 - 24bc: 202b2b43 eorcs r2, fp, r3, asr #22 - 24c0: 706d6f43 rsbvc r6, sp, r3, asr #30 - 24c4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 24c8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 24cc: 322e3033 eorcc r3, lr, #51 ; 0x33 - 24d0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 24d4: 572f3539 undefined - 24d8: 4b203233 blmi 80edac - 24dc: 534b4349 movtpl r4, #45897 ; 0xb349 - 24e0: 54524154 ldrbpl r4, [r2], #-340 - 24e4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 24e8: 4d524120 ldfmie f4, [r2, #-128] - 24ec: 03800100 orreq r0, r0, #0 ; 0x0 - 24f0: 00140000 andseq r0, r4, r0 - 24f4: 14100000 ldrne r0, [r0] - 24f8: 47000001 strmi r0, [r0, -r1] - 24fc: 74537465 ldrbvc r7, [r3], #-1125 - 2500: 6e656c72 mcrvs 12, 3, r6, cr5, cr2, {3} - 2504: 0a9f0100 beq fe7c290c - 2508: f3100010 vqadd.u16 d0, d0, d0 - 250c: 00000007 andeq r0, r0, r7 - 2510: 74537011 ldrbvc r7, [r3], #-17 - 2514: 676e6972 undefined - 2518: 0aa10100 beq fe842920 - 251c: 04051012 streq r1, [r5], #-18 - 2520: 63120000 tstvs r2, #0 ; 0x0 - 2524: 746e756f strbtvc r7, [lr], #-1391 - 2528: 0aa40100 beq fe902930 - 252c: 07e5100a strbeq r1, [r5, sl]! - 2530: 6c120000 ldcvs 0, cr0, [r2], {0} - 2534: 74676e65 strbtvc r6, [r7], #-3685 - 2538: a4010068 strge r0, [r1], #-104 - 253c: e510130a ldr r1, [r0, #-778] - 2540: 00000007 andeq r0, r0, r7 - 2544: 00000000 andeq r0, r0, r0 - 2548: 000000dc ldrdeq r0, [r0], -ip - 254c: 00840003 addeq r0, r4, r3 - 2550: 01040000 tsteq r4, r0 - 2554: 445c3a43 ldrbmi r3, [ip], #-2627 - 2558: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 255c: 73746e65 cmnvc r4, #1616 ; 0x650 - 2560: 646e6120 strbtvs r6, [lr], #-288 - 2564: 74655320 strbtvc r5, [r5], #-800 - 2568: 676e6974 undefined - 256c: 616d5c73 smcvs 54723 - 2570: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2574: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2578: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 257c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2580: 775c7374 undefined - 2584: 6f632d73 svcvs 0x00632d73 - 2588: 6f72746e svcvs 0x0072746e - 258c: 65575c6c ldrbvs r5, [r7, #-3180] - 2590: 65687461 strbvs r7, [r8, #-1121]! - 2594: 74532072 ldrbvc r2, [r3], #-114 - 2598: 6f697461 svcvs 0x00697461 - 259c: 6f43206e svcvs 0x0043206e - 25a0: 6f72746e svcvs 0x0072746e - 25a4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 25a8: 7070415c rsbsvc r4, r0, ip, asr r1 - 25ac: 6163696c cmnvs r3, ip, ror #18 - 25b0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 25b4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 25b8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 25bc: 445c7365 ldrbmi r7, [ip], #-869 - 25c0: 6c707369 ldclvs 3, cr7, [r0], #-420 - 25c4: 632e7961 teqvs lr, #1589248 ; 0x184000 - 25c8: 52414900 subpl r4, r1, #0 ; 0x0 - 25cc: 534e4120 movtpl r4, #57632 ; 0xe120 - 25d0: 2f432049 svccs 0x00432049 - 25d4: 202b2b43 eorcs r2, fp, r3, asr #22 - 25d8: 706d6f43 rsbvc r6, sp, r3, asr #30 - 25dc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 25e0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 25e4: 322e3033 eorcc r3, lr, #51 ; 0x33 - 25e8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 25ec: 572f3539 undefined - 25f0: 4b203233 blmi 80eec4 - 25f4: 534b4349 movtpl r4, #45897 ; 0xb349 - 25f8: 54524154 ldrbpl r4, [r2], #-340 - 25fc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 2600: 4d524120 ldfmie f4, [r2, #-128] - 2604: 03800100 orreq r0, r0, #0 ; 0x0 - 2608: 00140000 andseq r0, r4, r0 - 260c: dc130000 ldcle 0, cr0, [r3], {0} - 2610: 53000000 movwpl r0, #0 ; 0x0 - 2614: 754f7465 strbvc r7, [pc, #-1125] ; 21b7 <__USR_stack_size+0x19b7> - 2618: 74757074 ldrbtvc r7, [r5], #-116 - 261c: 099e0100 ldmibeq lr, {r8} - 2620: 0000000d andeq r0, r0, sp - 2624: 00000000 andeq r0, r0, r0 - 2628: 000000e8 andeq r0, r0, r8, ror #1 - 262c: 00840003 addeq r0, r4, r3 - 2630: 01040000 tsteq r4, r0 - 2634: 445c3a43 ldrbmi r3, [ip], #-2627 - 2638: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 263c: 73746e65 cmnvc r4, #1616 ; 0x650 - 2640: 646e6120 strbtvs r6, [lr], #-288 - 2644: 74655320 strbtvc r5, [r5], #-800 - 2648: 676e6974 undefined - 264c: 616d5c73 smcvs 54723 - 2650: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2654: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2658: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 265c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2660: 775c7374 undefined - 2664: 6f632d73 svcvs 0x00632d73 - 2668: 6f72746e svcvs 0x0072746e - 266c: 65575c6c ldrbvs r5, [r7, #-3180] - 2670: 65687461 strbvs r7, [r8, #-1121]! - 2674: 74532072 ldrbvc r2, [r3], #-114 - 2678: 6f697461 svcvs 0x00697461 - 267c: 6f43206e svcvs 0x0043206e - 2680: 6f72746e svcvs 0x0072746e - 2684: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2688: 7070415c rsbsvc r4, r0, ip, asr r1 - 268c: 6163696c cmnvs r3, ip, ror #18 - 2690: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2694: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 2698: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 269c: 445c7365 ldrbmi r7, [ip], #-869 - 26a0: 6c707369 ldclvs 3, cr7, [r0], #-420 - 26a4: 632e7961 teqvs lr, #1589248 ; 0x184000 - 26a8: 52414900 subpl r4, r1, #0 ; 0x0 - 26ac: 534e4120 movtpl r4, #57632 ; 0xe120 - 26b0: 2f432049 svccs 0x00432049 - 26b4: 202b2b43 eorcs r2, fp, r3, asr #22 - 26b8: 706d6f43 rsbvc r6, sp, r3, asr #30 - 26bc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 26c0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 26c4: 322e3033 eorcc r3, lr, #51 ; 0x33 - 26c8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 26cc: 572f3539 undefined - 26d0: 4b203233 blmi 80efa4 - 26d4: 534b4349 movtpl r4, #45897 ; 0xb349 - 26d8: 54524154 ldrbpl r4, [r2], #-340 - 26dc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 26e0: 4d524120 ldfmie f4, [r2, #-128] - 26e4: 03800100 orreq r0, r0, #0 ; 0x0 - 26e8: 00140000 andseq r0, r4, r0 - 26ec: ea130000 b 4c26f4 - 26f0: 53000000 movwpl r0, #0 ; 0x0 - 26f4: 44646e65 strbtmi r6, [r4], #-3685 - 26f8: 00617461 rsbeq r7, r1, r1, ror #8 - 26fc: 0d08e101 stfeqd f6, [r8, #-4] - 2700: 64110000 ldrvs r0, [r1] - 2704: 00617461 rsbeq r7, r1, r1, ror #8 - 2708: 1e08e101 mvfnee f6, f1 - 270c: 0007f310 andeq pc, r7, r0, lsl r3 - 2710: 00000000 andeq r0, r0, r0 - 2714: 000000f4 strdeq r0, [r0], -r4 - 2718: 00840003 addeq r0, r4, r3 - 271c: 01040000 tsteq r4, r0 - 2720: 445c3a43 ldrbmi r3, [ip], #-2627 - 2724: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2728: 73746e65 cmnvc r4, #1616 ; 0x650 - 272c: 646e6120 strbtvs r6, [lr], #-288 - 2730: 74655320 strbtvc r5, [r5], #-800 - 2734: 676e6974 undefined - 2738: 616d5c73 smcvs 54723 - 273c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2740: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2744: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2748: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 274c: 775c7374 undefined - 2750: 6f632d73 svcvs 0x00632d73 - 2754: 6f72746e svcvs 0x0072746e - 2758: 65575c6c ldrbvs r5, [r7, #-3180] - 275c: 65687461 strbvs r7, [r8, #-1121]! - 2760: 74532072 ldrbvc r2, [r3], #-114 - 2764: 6f697461 svcvs 0x00697461 - 2768: 6f43206e svcvs 0x0043206e - 276c: 6f72746e svcvs 0x0072746e - 2770: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2774: 7070415c rsbsvc r4, r0, ip, asr r1 - 2778: 6163696c cmnvs r3, ip, ror #18 - 277c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2780: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 2784: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 2788: 445c7365 ldrbmi r7, [ip], #-869 - 278c: 6c707369 ldclvs 3, cr7, [r0], #-420 - 2790: 632e7961 teqvs lr, #1589248 ; 0x184000 - 2794: 52414900 subpl r4, r1, #0 ; 0x0 - 2798: 534e4120 movtpl r4, #57632 ; 0xe120 - 279c: 2f432049 svccs 0x00432049 - 27a0: 202b2b43 eorcs r2, fp, r3, asr #22 - 27a4: 706d6f43 rsbvc r6, sp, r3, asr #30 - 27a8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 27ac: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 27b0: 322e3033 eorcc r3, lr, #51 ; 0x33 - 27b4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 27b8: 572f3539 undefined - 27bc: 4b203233 blmi 80f090 - 27c0: 534b4349 movtpl r4, #45897 ; 0xb349 - 27c4: 54524154 ldrbpl r4, [r2], #-340 - 27c8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 27cc: 4d524120 ldfmie f4, [r2, #-128] - 27d0: 03800100 orreq r0, r0, #0 ; 0x0 - 27d4: 00140000 andseq r0, r4, r0 - 27d8: f6100000 undefined instruction 0xf6100000 - 27dc: 52000000 andpl r0, r0, #0 ; 0x0 - 27e0: 44646165 strbtmi r6, [r4], #-357 - 27e4: 00617461 rsbeq r7, r1, r1, ror #8 - 27e8: 1009d601 andne sp, r9, r1, lsl #12 - 27ec: 07f31000 ldrbeq r1, [r3, r0]! - 27f0: 12000000 andne r0, r0, #0 ; 0x0 - 27f4: 75746552 ldrbvc r6, [r4, #-1362]! - 27f8: 61566e72 cmpvs r6, r2, ror lr - 27fc: 0065756c rsbeq r7, r5, ip, ror #10 - 2800: 0b09d801 bleq 27880c - 2804: 0007f310 andeq pc, r7, r0, lsl r3 - 2808: 00000000 andeq r0, r0, r0 - 280c: 00000104 andeq r0, r0, r4, lsl #2 - 2810: 00840003 addeq r0, r4, r3 - 2814: 01040000 tsteq r4, r0 - 2818: 445c3a43 ldrbmi r3, [ip], #-2627 - 281c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2820: 73746e65 cmnvc r4, #1616 ; 0x650 - 2824: 646e6120 strbtvs r6, [lr], #-288 - 2828: 74655320 strbtvc r5, [r5], #-800 - 282c: 676e6974 undefined - 2830: 616d5c73 smcvs 54723 - 2834: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2838: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 283c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2840: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2844: 775c7374 undefined - 2848: 6f632d73 svcvs 0x00632d73 - 284c: 6f72746e svcvs 0x0072746e - 2850: 65575c6c ldrbvs r5, [r7, #-3180] - 2854: 65687461 strbvs r7, [r8, #-1121]! - 2858: 74532072 ldrbvc r2, [r3], #-114 - 285c: 6f697461 svcvs 0x00697461 - 2860: 6f43206e svcvs 0x0043206e - 2864: 6f72746e svcvs 0x0072746e - 2868: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 286c: 7070415c rsbsvc r4, r0, ip, asr r1 - 2870: 6163696c cmnvs r3, ip, ror #18 - 2874: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2878: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 287c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 2880: 445c7365 ldrbmi r7, [ip], #-869 - 2884: 6c707369 ldclvs 3, cr7, [r0], #-420 - 2888: 632e7961 teqvs lr, #1589248 ; 0x184000 - 288c: 52414900 subpl r4, r1, #0 ; 0x0 - 2890: 534e4120 movtpl r4, #57632 ; 0xe120 - 2894: 2f432049 svccs 0x00432049 - 2898: 202b2b43 eorcs r2, fp, r3, asr #22 - 289c: 706d6f43 rsbvc r6, sp, r3, asr #30 - 28a0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 28a4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 28a8: 322e3033 eorcc r3, lr, #51 ; 0x33 - 28ac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 28b0: 572f3539 undefined - 28b4: 4b203233 blmi 80f188 - 28b8: 534b4349 movtpl r4, #45897 ; 0xb349 - 28bc: 54524154 ldrbpl r4, [r2], #-340 - 28c0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 28c4: 4d524120 ldfmie f4, [r2, #-128] - 28c8: 03800100 orreq r0, r0, #0 ; 0x0 - 28cc: 00140000 andseq r0, r4, r0 - 28d0: 04100000 ldreq r0, [r0] - 28d4: 47000001 strmi r0, [r0, -r1] - 28d8: 61447465 cmpvs r4, r5, ror #8 - 28dc: 01006174 tsteq r0, r4, ror r1 - 28e0: 001009f1 ldrsheq r0, [r0], -r1 - 28e4: 0007f310 andeq pc, r7, r0, lsl r3 - 28e8: 52120000 andspl r0, r2, #0 ; 0x0 - 28ec: 72757465 rsbsvc r7, r5, #1694498816 ; 0x65000000 - 28f0: 6c61566e stclvs 6, cr5, [r1], #-440 - 28f4: 01006575 tsteq r0, r5, ror r5 - 28f8: 101409f3 ldrshne r0, [r4], -r3 - 28fc: 000007f3 strdeq r0, [r0], -r3 - 2900: 6d657412 cfstrdvs mvd7, [r5, #-72]! - 2904: 89010070 stmdbhi r1, {r4, r5, r6} - 2908: 2f100e0a svccs 0x00100e0a - 290c: 00000008 andeq r0, r0, r8 - 2910: 00000000 andeq r0, r0, r0 - 2914: 0000011c andeq r0, r0, ip, lsl r1 - 2918: 00840003 addeq r0, r4, r3 - 291c: 01040000 tsteq r4, r0 - 2920: 445c3a43 ldrbmi r3, [ip], #-2627 - 2924: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2928: 73746e65 cmnvc r4, #1616 ; 0x650 - 292c: 646e6120 strbtvs r6, [lr], #-288 - 2930: 74655320 strbtvc r5, [r5], #-800 - 2934: 676e6974 undefined - 2938: 616d5c73 smcvs 54723 - 293c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2940: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2944: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2948: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 294c: 775c7374 undefined - 2950: 6f632d73 svcvs 0x00632d73 - 2954: 6f72746e svcvs 0x0072746e - 2958: 65575c6c ldrbvs r5, [r7, #-3180] - 295c: 65687461 strbvs r7, [r8, #-1121]! - 2960: 74532072 ldrbvc r2, [r3], #-114 - 2964: 6f697461 svcvs 0x00697461 - 2968: 6f43206e svcvs 0x0043206e - 296c: 6f72746e svcvs 0x0072746e - 2970: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2974: 7070415c rsbsvc r4, r0, ip, asr r1 - 2978: 6163696c cmnvs r3, ip, ror #18 - 297c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2980: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 2984: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 2988: 445c7365 ldrbmi r7, [ip], #-869 - 298c: 6c707369 ldclvs 3, cr7, [r0], #-420 - 2990: 632e7961 teqvs lr, #1589248 ; 0x184000 - 2994: 52414900 subpl r4, r1, #0 ; 0x0 - 2998: 534e4120 movtpl r4, #57632 ; 0xe120 - 299c: 2f432049 svccs 0x00432049 - 29a0: 202b2b43 eorcs r2, fp, r3, asr #22 - 29a4: 706d6f43 rsbvc r6, sp, r3, asr #30 - 29a8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 29ac: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 29b0: 322e3033 eorcc r3, lr, #51 ; 0x33 - 29b4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 29b8: 572f3539 undefined - 29bc: 4b203233 blmi 80f290 - 29c0: 534b4349 movtpl r4, #45897 ; 0xb349 - 29c4: 54524154 ldrbpl r4, [r2], #-340 - 29c8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 29cc: 4d524120 ldfmie f4, [r2, #-128] - 29d0: 03800100 orreq r0, r0, #0 ; 0x0 - 29d4: 00140000 andseq r0, r4, r0 - 29d8: 1e130000 wxorne wr0, wr3, wr0 - 29dc: 49000001 stmdbmi r0, {r0} - 29e0: 4474696e ldrbtmi r6, [r4], #-2414 - 29e4: 6c707369 ldclvs 3, cr7, [r0], #-420 - 29e8: 72577961 subsvc r7, r7, #1589248 ; 0x184000 - 29ec: 00657469 rsbeq r7, r5, r9, ror #8 - 29f0: 0d09be01 stceq 14, cr11, [r9, #-4] - 29f4: 78110000 ldmdavc r1, {} - 29f8: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 - 29fc: 6f6f4374 svcvs 0x006f4374 - 2a00: 01006472 tsteq r0, r2, ror r4 - 2a04: 102609be strhne r0, [r6], -lr - 2a08: 000007f3 strdeq r0, [r0], -r3 - 2a0c: 74537911 ldrbvc r7, [r3], #-2321 - 2a10: 43747261 cmnmi r4, #268435462 ; 0x10000006 - 2a14: 64726f6f ldrbtvs r6, [r2], #-3951 - 2a18: 09be0100 ldmibeq lr!, {r8} - 2a1c: 07f3103b undefined - 2a20: 70120000 andsvc r0, r2, r0 - 2a24: 00656761 rsbeq r6, r5, r1, ror #14 - 2a28: 0b09c101 bleq 272e34 - 2a2c: 0007f310 andeq pc, r7, r0, lsl r3 - 2a30: 00000000 andeq r0, r0, r0 - 2a34: 0000019c muleq r0, ip, r1 - 2a38: 02000003 andeq r0, r0, #3 ; 0x3 - 2a3c: 01040000 tsteq r4, r0 - 2a40: 445c3a43 ldrbmi r3, [ip], #-2627 - 2a44: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2a48: 73746e65 cmnvc r4, #1616 ; 0x650 - 2a4c: 646e6120 strbtvs r6, [lr], #-288 - 2a50: 74655320 strbtvc r5, [r5], #-800 - 2a54: 676e6974 undefined - 2a58: 616d5c73 smcvs 54723 - 2a5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2a60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2a64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2a68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2a6c: 775c7374 undefined - 2a70: 6f632d73 svcvs 0x00632d73 - 2a74: 6f72746e svcvs 0x0072746e - 2a78: 65575c6c ldrbvs r5, [r7, #-3180] - 2a7c: 65687461 strbvs r7, [r8, #-1121]! - 2a80: 74532072 ldrbvc r2, [r3], #-114 - 2a84: 6f697461 svcvs 0x00697461 - 2a88: 6f43206e svcvs 0x0043206e - 2a8c: 6f72746e svcvs 0x0072746e - 2a90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2a94: 414d535c cmpmi sp, ip, asr r3 - 2a98: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} - 2a9c: 66726574 undefined - 2aa0: 5c656361 stclpl 3, cr6, [r5], #-388 - 2aa4: 626f6c47 rsbvs r6, pc, #18176 ; 0x4700 - 2aa8: 65446c61 strbvs r6, [r4, #-3169] - 2aac: 682e7366 stmdavs lr!, {r1, r2, r5, r6, r8, r9, ip, sp, lr} - 2ab0: 52414900 subpl r4, r1, #0 ; 0x0 - 2ab4: 534e4120 movtpl r4, #57632 ; 0xe120 - 2ab8: 2f432049 svccs 0x00432049 - 2abc: 202b2b43 eorcs r2, fp, r3, asr #22 - 2ac0: 706d6f43 rsbvc r6, sp, r3, asr #30 - 2ac4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 2ac8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 2acc: 322e3033 eorcc r3, lr, #51 ; 0x33 - 2ad0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 2ad4: 572f3539 undefined - 2ad8: 4b203233 blmi 80f3ac - 2adc: 534b4349 movtpl r4, #45897 ; 0xb349 - 2ae0: 54524154 ldrbpl r4, [r2], #-340 - 2ae4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 2ae8: 4d524120 ldfmie f4, [r2, #-128] - 2aec: 13e40100 mvnne r0, #0 ; 0x0 - 2af0: 003c0000 eorseq r0, ip, r0 - 2af4: 9c090000 stcls 0, cr0, [r9], {0} - 2af8: 46000001 strmi r0, [r0], -r1 - 2afc: 52636e75 rsbpl r6, r3, #1872 ; 0x750 - 2b00: 72757465 rsbsvc r7, r5, #1694498816 ; 0x65000000 - 2b04: 61745f6e cmnvs r4, lr, ror #30 - 2b08: 08010067 stmdaeq r1, {r0, r1, r2, r5, r6} - 2b0c: 63755367 cmnvs r5, #-1677721599 ; 0x9c000001 - 2b10: 73736563 cmnvc r3, #415236096 ; 0x18c00000 - 2b14: 0000635f andeq r6, r0, pc, asr r3 - 2b18: 61466708 cmpvs r6, r8, lsl #14 - 2b1c: 754f6c69 strbvc r6, [pc, #-3177] ; 1ebb <__USR_stack_size+0x16bb> - 2b20: 52664f74 rsbpl r4, r6, #464 ; 0x1d0 - 2b24: 65676e61 strbvs r6, [r7, #-3681]! - 2b28: 0100635f tsteq r0, pc, asr r3 - 2b2c: 61466708 cmpvs r6, r8, lsl #14 - 2b30: 6f4e6c69 svcvs 0x004e6c69 - 2b34: 6f736552 svcvs 0x00736552 - 2b38: 65637275 strbvs r7, [r3, #-629]! - 2b3c: 61764173 cmnvs r6, r3, ror r1 - 2b40: 62616c69 rsbvs r6, r1, #26880 ; 0x6900 - 2b44: 635f656c cmpvs pc, #452984832 ; 0x1b000000 - 2b48: 67080200 strvs r0, [r8, -r0, lsl #4] - 2b4c: 6c696146 stfvse f6, [r9], #-280 - 2b50: 61566f4e cmpvs r6, lr, asr #30 - 2b54: 4364696c cmnmi r4, #1769472 ; 0x1b0000 - 2b58: 69646e6f stmdbvs r4!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 2b5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2b60: 0300635f movweq r6, #863 ; 0x35f - 2b64: 61466708 cmpvs r6, r8, lsl #14 - 2b68: 75426c69 strbvc r6, [r2, #-3177] - 2b6c: 635f7973 cmpvs pc, #1884160 ; 0x1cc000 - 2b70: 67080400 strvs r0, [r8, -r0, lsl #8] - 2b74: 6c696146 stfvse f6, [r9], #-280 - 2b78: 72726f43 rsbsvc r6, r2, #268 ; 0x10c - 2b7c: 65747075 ldrbvs r7, [r4, #-117]! - 2b80: 08050064 stmdaeq r5, {r2, r5, r6} - 2b84: 69614667 stmdbvs r1!, {r0, r1, r2, r5, r6, r9, sl, lr}^ - 2b88: 7365546c cmnvc r5, #1811939328 ; 0x6c000000 - 2b8c: 00635f74 rsbeq r5, r3, r4, ror pc - 2b90: 41670806 cmnmi r7, r6, lsl #16 - 2b94: 65687475 strbvs r7, [r8, #-1141]! - 2b98: 6369746e cmnvs r9, #1845493760 ; 0x6e000000 - 2b9c: 6f697461 svcvs 0x00697461 - 2ba0: 6961466e stmdbvs r1!, {r1, r2, r3, r5, r6, r9, sl, lr}^ - 2ba4: 5f64656c svcpl 0x0064656c - 2ba8: 08070063 stmdaeq r7, {r0, r1, r5, r6} - 2bac: 74754167 ldrbtvc r4, [r5], #-359 - 2bb0: 746e6568 strbtvc r6, [lr], #-1384 - 2bb4: 74616369 strbtvc r6, [r1], #-873 - 2bb8: 506e6f69 rsbpl r6, lr, r9, ror #30 - 2bbc: 65737361 ldrbvs r7, [r3, #-865]! - 2bc0: 00635f64 rsbeq r5, r3, r4, ror #30 - 2bc4: 46670808 strbtmi r0, [r7], -r8, lsl #16 - 2bc8: 5f6c6961 svcpl 0x006c6961 - 2bcc: 00090063 andeq r0, r9, r3, rrx - 2bd0: 00000000 andeq r0, r0, r0 - 2bd4: 00000048 andeq r0, r0, r8, asr #32 - 2bd8: 02c80003 sbceq r0, r8, #3 ; 0x3 - 2bdc: 01040000 tsteq r4, r0 - 2be0: 74696e49 strbtvc r6, [r9], #-3657 - 2be4: 5241492d subpl r4, r1, #737280 ; 0xb4000 - 2be8: 52414900 subpl r4, r1, #0 ; 0x0 - 2bec: 73734120 cmnvc r3, #8 ; 0x8 - 2bf0: 6c626d65 stclvs 13, cr6, [r2], #-404 - 2bf4: 56207265 strtpl r7, [r0], -r5, ror #4 - 2bf8: 30332e35 eorscc r2, r3, r5, lsr lr - 2bfc: 352e322e strcc r3, [lr, #-558]! - 2c00: 35393231 ldrcc r3, [r9, #-561]! - 2c04: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 2c08: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 2c0c: 4d524120 ldfmie f4, [r2, #-128] - 2c10: 40000000 andmi r0, r0, r0 - 2c14: 40002000 andmi r2, r0, r0 - 2c18: 00162400 andseq r2, r6, r0, lsl #8 - 2c1c: 00000000 andeq r0, r0, r0 - 2c20: 00000048 andeq r0, r0, r8, asr #32 - 2c24: 02c80003 sbceq r0, r8, #3 ; 0x3 - 2c28: 01040000 tsteq r4, r0 - 2c2c: 74696e49 strbtvc r6, [r9], #-3657 - 2c30: 5241492d subpl r4, r1, #737280 ; 0xb4000 - 2c34: 52414900 subpl r4, r1, #0 ; 0x0 - 2c38: 73734120 cmnvc r3, #8 ; 0x8 - 2c3c: 6c626d65 stclvs 13, cr6, [r2], #-404 - 2c40: 56207265 strtpl r7, [r0], -r5, ror #4 - 2c44: 30332e35 eorscc r2, r3, r5, lsr lr - 2c48: 352e322e strcc r3, [lr, #-558]! - 2c4c: 35393231 ldrcc r3, [r9, #-561]! - 2c50: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 2c54: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 2c58: 4d524120 ldfmie f4, [r2, #-128] - 2c5c: 4034e400 eorsmi lr, r4, r0, lsl #8 - 2c60: 40360800 eorsmi r0, r6, r0, lsl #16 - 2c64: 0016d800 andseq sp, r6, r0, lsl #16 - 2c68: 00000000 andeq r0, r0, r0 - 2c6c: 000000c4 andeq r0, r0, r4, asr #1 - 2c70: 02d80003 sbcseq r0, r8, #3 ; 0x3 - 2c74: 01040000 tsteq r4, r0 - 2c78: 445c3a43 ldrbmi r3, [ip], #-2627 - 2c7c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2c80: 73746e65 cmnvc r4, #1616 ; 0x650 - 2c84: 646e6120 strbtvs r6, [lr], #-288 - 2c88: 74655320 strbtvc r5, [r5], #-800 - 2c8c: 676e6974 undefined - 2c90: 616d5c73 smcvs 54723 - 2c94: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2c98: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2c9c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2ca0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2ca4: 775c7374 undefined - 2ca8: 6f632d73 svcvs 0x00632d73 - 2cac: 6f72746e svcvs 0x0072746e - 2cb0: 65575c6c ldrbvs r5, [r7, #-3180] - 2cb4: 65687461 strbvs r7, [r8, #-1121]! - 2cb8: 74532072 ldrbvc r2, [r3], #-114 - 2cbc: 6f697461 svcvs 0x00697461 - 2cc0: 6f43206e svcvs 0x0043206e - 2cc4: 6f72746e svcvs 0x0072746e - 2cc8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2ccc: 7070415c rsbsvc r4, r0, ip, asr r1 - 2cd0: 6163696c cmnvs r3, ip, ror #18 - 2cd4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2cd8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 2cdc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 2ce0: 4b5c7365 blmi 171fa7c - 2ce4: 6f627965 svcvs 0x00627965 - 2ce8: 2e647261 cdpcs 2, 6, cr7, cr4, cr1, {3} - 2cec: 41490063 cmpmi r9, r3, rrx - 2cf0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 2cf4: 43204953 teqmi r0, #1359872 ; 0x14c000 - 2cf8: 2b2b432f blcs ad39bc - 2cfc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 2d00: 656c6970 strbvs r6, [ip, #-2416]! - 2d04: 35562072 ldrbcc r2, [r6, #-114] - 2d08: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 2d0c: 31332e32 teqcc r3, r2, lsr lr - 2d10: 2f353932 svccs 0x00353932 - 2d14: 20323357 eorscs r3, r2, r7, asr r3 - 2d18: 4b43494b blmi 10d524c - 2d1c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 2d20: 6f662054 svcvs 0x00662054 - 2d24: 52412072 subpl r2, r1, #114 ; 0x72 - 2d28: c801004d stmdagt r1, {r0, r2, r3, r6} - 2d2c: 60000017 andvs r0, r0, r7, lsl r0 - 2d30: 00000000 andeq r0, r0, r0 - 2d34: 000000f4 strdeq r0, [r0], -r4 - 2d38: 02d80003 sbcseq r0, r8, #3 ; 0x3 - 2d3c: 02040000 andeq r0, r4, #0 ; 0x0 - 2d40: 445c3a43 ldrbmi r3, [ip], #-2627 - 2d44: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2d48: 73746e65 cmnvc r4, #1616 ; 0x650 - 2d4c: 646e6120 strbtvs r6, [lr], #-288 - 2d50: 74655320 strbtvc r5, [r5], #-800 - 2d54: 676e6974 undefined - 2d58: 616d5c73 smcvs 54723 - 2d5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2d60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2d64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2d68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2d6c: 775c7374 undefined - 2d70: 6f632d73 svcvs 0x00632d73 - 2d74: 6f72746e svcvs 0x0072746e - 2d78: 65575c6c ldrbvs r5, [r7, #-3180] - 2d7c: 65687461 strbvs r7, [r8, #-1121]! - 2d80: 74532072 ldrbvc r2, [r3], #-114 - 2d84: 6f697461 svcvs 0x00697461 - 2d88: 6f43206e svcvs 0x0043206e - 2d8c: 6f72746e svcvs 0x0072746e - 2d90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2d94: 7070415c rsbsvc r4, r0, ip, asr r1 - 2d98: 6163696c cmnvs r3, ip, ror #18 - 2d9c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2da0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 2da4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 2da8: 4b5c7365 blmi 171fb44 - 2dac: 6f627965 svcvs 0x00627965 - 2db0: 2e647261 cdpcs 2, 6, cr7, cr4, cr1, {3} - 2db4: 41490063 cmpmi r9, r3, rrx - 2db8: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 2dbc: 43204953 teqmi r0, #1359872 ; 0x14c000 - 2dc0: 2b2b432f blcs ad3a84 - 2dc4: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 2dc8: 656c6970 strbvs r6, [ip, #-2416]! - 2dcc: 35562072 ldrbcc r2, [r6, #-114] - 2dd0: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 2dd4: 31332e32 teqcc r3, r2, lsr lr - 2dd8: 2f353932 svccs 0x00353932 - 2ddc: 20323357 eorscs r3, r2, r7, asr r3 - 2de0: 4b43494b blmi 10d5314 - 2de4: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 2de8: 6f662054 svcvs 0x00662054 - 2dec: 52412072 subpl r2, r1, #114 ; 0x72 - 2df0: f001004d undefined instruction 0xf001004d - 2df4: 3c00403c stccc 0, cr4, [r0], {60} - 2df8: b400403d strlt r4, [r0], #-61 - 2dfc: 64000019 strvs r0, [r0], #-25 - 2e00: 10000013 andne r0, r0, r3, lsl r0 - 2e04: 00002c77 andeq r2, r0, r7, ror ip - 2e08: 0000f503 andeq pc, r0, r3, lsl #10 - 2e0c: 47624b00 strbmi r4, [r2, -r0, lsl #22]! - 2e10: 496f6970 stmdbmi pc!, {r4, r5, r6, r8, fp, sp, lr}^ - 2e14: 0074696e rsbseq r6, r4, lr, ror #18 - 2e18: 01063d01 tsteq r6, r1, lsl #26 - 2e1c: 00000de8 andeq r0, r0, r8, ror #27 - 2e20: 00403cf0 strdeq r3, [r0], #-192 - 2e24: 00403d3c subeq r3, r0, ip, lsr sp - 2e28: 00000000 andeq r0, r0, r0 - 2e2c: 0000017c andeq r0, r0, ip, ror r1 - 2e30: 03180003 tsteq r8, #3 ; 0x3 - 2e34: 01040000 tsteq r4, r0 - 2e38: 445c3a43 ldrbmi r3, [ip], #-2627 - 2e3c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2e40: 73746e65 cmnvc r4, #1616 ; 0x650 - 2e44: 646e6120 strbtvs r6, [lr], #-288 - 2e48: 74655320 strbtvc r5, [r5], #-800 - 2e4c: 676e6974 undefined - 2e50: 616d5c73 smcvs 54723 - 2e54: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2e58: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2e5c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2e60: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2e64: 775c7374 undefined - 2e68: 6f632d73 svcvs 0x00632d73 - 2e6c: 6f72746e svcvs 0x0072746e - 2e70: 65575c6c ldrbvs r5, [r7, #-3180] - 2e74: 65687461 strbvs r7, [r8, #-1121]! - 2e78: 74532072 ldrbvc r2, [r3], #-114 - 2e7c: 6f697461 svcvs 0x00697461 - 2e80: 6f43206e svcvs 0x0043206e - 2e84: 6f72746e svcvs 0x0072746e - 2e88: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2e8c: 7070415c rsbsvc r4, r0, ip, asr r1 - 2e90: 6163696c cmnvs r3, ip, ror #18 - 2e94: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2e98: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 2e9c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 2ea0: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 - 2ea4: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} - 2ea8: 41490063 cmpmi r9, r3, rrx - 2eac: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 2eb0: 43204953 teqmi r0, #1359872 ; 0x14c000 - 2eb4: 2b2b432f blcs ad3b78 - 2eb8: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 2ebc: 656c6970 strbvs r6, [ip, #-2416]! - 2ec0: 35562072 ldrbcc r2, [r6, #-114] - 2ec4: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 2ec8: 31332e32 teqcc r3, r2, lsr lr - 2ecc: 2f353932 svccs 0x00353932 - 2ed0: 20323357 eorscs r3, r2, r7, asr r3 - 2ed4: 4b43494b blmi 10d5408 - 2ed8: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 2edc: 6f662054 svcvs 0x00662054 - 2ee0: 52412072 subpl r2, r1, #114 ; 0x72 - 2ee4: 6801004d stmdavs r1, {r0, r2, r3, r6} - 2ee8: 8400001a strhi r0, [r0], #-26 - 2eec: 03000000 movweq r0, #0 ; 0x0 - 2ef0: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ - 2ef4: 64656e67 strbtvs r6, [r5], #-3687 - 2ef8: 61686320 cmnvs r8, r0, lsr #6 - 2efc: 08010072 stmdaeq r1, {r1, r4, r5, r6} - 2f00: 67697303 strbvs r7, [r9, -r3, lsl #6]! - 2f04: 2064656e rsbcs r6, r4, lr, ror #10 - 2f08: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 - 2f0c: 0a060100 beq 183314 - 2f10: 0000012a andeq r0, r0, sl, lsr #2 - 2f14: 47670b01 strbmi r0, [r7, -r1, lsl #22]! - 2f18: 506f6970 rsbpl r6, pc, r0, ror r9 - 2f1c: 74536e69 ldrbvc r6, [r3], #-3689 - 2f20: 4c657461 cfstrdmi mvd7, [r5], #-388 - 2f24: 635f776f cmpvs pc, #29097984 ; 0x1bc0000 - 2f28: 670b0000 strvs r0, [fp, -r0] - 2f2c: 6f697047 svcvs 0x00697047 - 2f30: 536e6950 cmnpl lr, #1310720 ; 0x140000 - 2f34: 65746174 ldrbvs r6, [r4, #-372]! - 2f38: 68676948 stmdavs r7!, {r3, r6, r8, fp, sp, lr}^ - 2f3c: 0100635f tsteq r0, pc, asr r3 - 2f40: 7047670b subvc r6, r7, fp, lsl #14 - 2f44: 69506f69 ldmdbvs r0, {r0, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ - 2f48: 6174536e cmnvs r4, lr, ror #6 - 2f4c: 614d6574 cmpvs sp, r4, ror r5 - 2f50: 00635f78 rsbeq r5, r3, r8, ror pc - 2f54: 470c0002 strmi r0, [ip, -r2] - 2f58: 506f6970 rsbpl r6, pc, r0, ror r9 - 2f5c: 74536e69 ldrbvc r6, [r3], #-3689 - 2f60: 5f657461 svcpl 0x00657461 - 2f64: e3150074 tst r5, #116 ; 0x74 - 2f68: 03390501 teqeq r9, #4194304 ; 0x400000 - 2f6c: 746e690c strbtvc r6, [lr], #-2316 - 2f70: 00745f38 rsbseq r5, r4, r8, lsr pc - 2f74: 0301d415 movweq sp, #5141 ; 0x1415 - 2f78: 750c1919 strvc r1, [ip, #-2329] - 2f7c: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ - 2f80: 1500745f strne r7, [r0, #-1119] - 2f84: 1a0301c3 bne c3698 - 2f88: 454c0c19 strbmi r0, [ip, #-3097] - 2f8c: 00745f44 rsbseq r5, r4, r4, asr #30 - 2f90: 0202ce15 andeq ip, r2, #336 ; 0x150 - 2f94: 4c0c113a stfmis f1, [ip], {58} - 2f98: 74536465 ldrbvc r6, [r3], #-1125 - 2f9c: 5f657461 svcpl 0x00657461 - 2fa0: ce150074 mrcgt 0, 0, r0, cr5, cr4, {3} - 2fa4: 11470202 cmpne r7, r2, lsl #4 - 2fa8: 00000000 andeq r0, r0, r0 - 2fac: 00000100 andeq r0, r0, r0, lsl #2 - 2fb0: 03180003 tsteq r8, #3 ; 0x3 - 2fb4: 02040000 andeq r0, r4, #0 ; 0x0 - 2fb8: 445c3a43 ldrbmi r3, [ip], #-2627 - 2fbc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2fc0: 73746e65 cmnvc r4, #1616 ; 0x650 - 2fc4: 646e6120 strbtvs r6, [lr], #-288 - 2fc8: 74655320 strbtvc r5, [r5], #-800 - 2fcc: 676e6974 undefined - 2fd0: 616d5c73 smcvs 54723 - 2fd4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2fd8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2fdc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2fe0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2fe4: 775c7374 undefined - 2fe8: 6f632d73 svcvs 0x00632d73 - 2fec: 6f72746e svcvs 0x0072746e - 2ff0: 65575c6c ldrbvs r5, [r7, #-3180] - 2ff4: 65687461 strbvs r7, [r8, #-1121]! - 2ff8: 74532072 ldrbvc r2, [r3], #-114 - 2ffc: 6f697461 svcvs 0x00697461 - 3000: 6f43206e svcvs 0x0043206e - 3004: 6f72746e svcvs 0x0072746e - 3008: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 300c: 7070415c rsbsvc r4, r0, ip, asr r1 - 3010: 6163696c cmnvs r3, ip, ror #18 - 3014: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 3018: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 301c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 3020: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 - 3024: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} - 3028: 41490063 cmpmi r9, r3, rrx - 302c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 3030: 43204953 teqmi r0, #1359872 ; 0x14c000 - 3034: 2b2b432f blcs ad3cf8 - 3038: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 303c: 656c6970 strbvs r6, [ip, #-2416]! - 3040: 35562072 ldrbcc r2, [r6, #-114] - 3044: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 3048: 31332e32 teqcc r3, r2, lsr lr - 304c: 2f353932 svccs 0x00353932 - 3050: 20323357 eorscs r3, r2, r7, asr r3 - 3054: 4b43494b blmi 10d5588 - 3058: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 305c: 6f662054 svcvs 0x00662054 - 3060: 52412072 subpl r2, r1, #114 ; 0x72 - 3064: 0801004d stmdaeq r1, {r0, r2, r3, r6} - 3068: 24004036 strcs r4, [r0], #-54 - 306c: 4c004036 stcmi 0, cr4, [r0], {54} - 3070: fd00001d stc2 0, cr0, [r0, #-116] - 3074: 10000013 andne r0, r0, r3, lsl r0 - 3078: 00002e37 andeq r2, r0, r7, lsr lr - 307c: 00010204 andeq r0, r1, r4, lsl #4 - 3080: 44454c00 strbmi r4, [r5], #-3072 - 3084: 696e495f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, lr}^ - 3088: 3c010074 stccc 0, cr0, [r1], {116} - 308c: 0e2c0106 sufeqe f0, f4, f6 - 3090: 36080000 strcc r0, [r8], -r0 - 3094: 36240040 strtcc r0, [r4], -r0, asr #32 - 3098: 01050040 tsteq r5, r0, asr #32 - 309c: 10000001 andne r0, r0, r1 - 30a0: 00003383 andeq r3, r0, r3, lsl #7 - 30a4: 00403610 subeq r3, r0, r0, lsl r6 - 30a8: 00403616 subeq r3, r0, r6, lsl r6 - 30ac: 00000000 andeq r0, r0, r0 - 30b0: 00000100 andeq r0, r0, r0, lsl #2 - 30b4: 03180003 tsteq r8, #3 ; 0x3 - 30b8: 02040000 andeq r0, r4, #0 ; 0x0 - 30bc: 445c3a43 ldrbmi r3, [ip], #-2627 - 30c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 30c4: 73746e65 cmnvc r4, #1616 ; 0x650 - 30c8: 646e6120 strbtvs r6, [lr], #-288 - 30cc: 74655320 strbtvc r5, [r5], #-800 - 30d0: 676e6974 undefined - 30d4: 616d5c73 smcvs 54723 - 30d8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 30dc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 30e0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 30e4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 30e8: 775c7374 undefined - 30ec: 6f632d73 svcvs 0x00632d73 - 30f0: 6f72746e svcvs 0x0072746e - 30f4: 65575c6c ldrbvs r5, [r7, #-3180] - 30f8: 65687461 strbvs r7, [r8, #-1121]! - 30fc: 74532072 ldrbvc r2, [r3], #-114 - 3100: 6f697461 svcvs 0x00697461 - 3104: 6f43206e svcvs 0x0043206e - 3108: 6f72746e svcvs 0x0072746e - 310c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3110: 7070415c rsbsvc r4, r0, ip, asr r1 - 3114: 6163696c cmnvs r3, ip, ror #18 - 3118: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 311c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 3120: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 3124: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 - 3128: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} - 312c: 41490063 cmpmi r9, r3, rrx - 3130: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 3134: 43204953 teqmi r0, #1359872 ; 0x14c000 - 3138: 2b2b432f blcs ad3dfc - 313c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 3140: 656c6970 strbvs r6, [ip, #-2416]! - 3144: 35562072 ldrbcc r2, [r6, #-114] - 3148: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 314c: 31332e32 teqcc r3, r2, lsr lr - 3150: 2f353932 svccs 0x00353932 - 3154: 20323357 eorscs r3, r2, r7, asr r3 - 3158: 4b43494b blmi 10d568c - 315c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 3160: 6f662054 svcvs 0x00662054 - 3164: 52412072 subpl r2, r1, #114 ; 0x72 - 3168: 2401004d strcs r0, [r1], #-77 - 316c: c0004036 andgt r4, r0, r6, lsr r0 - 3170: 10004036 andne r4, r0, r6, lsr r0 - 3174: a900001e stmdbge r0, {r1, r2, r3, r4} - 3178: 10000014 andne r0, r0, r4, lsl r0 - 317c: 00002e37 andeq r2, r0, r7, lsr lr - 3180: 00010204 andeq r0, r1, r4, lsl #4 - 3184: 74655300 strbtvc r5, [r5], #-768 - 3188: 6e69505f mcrvs 0, 3, r5, cr9, cr15, {2} - 318c: 49010073 stmdbmi r1, {r0, r1, r4, r5, r6} - 3190: 0e580106 rdfeqe f0, f0, f6 - 3194: 36240000 strtcc r0, [r4], -r0 - 3198: 36c00040 strbcc r0, [r0], r0, asr #32 - 319c: 4c060040 stcmi 0, cr0, [r6], {64} - 31a0: 724e4445 subvc r4, lr, #1157627904 ; 0x45000000 - 31a4: 16490100 strbne r0, [r9], -r0, lsl #2 - 31a8: 002f8910 eoreq r8, pc, r0, lsl r9 - 31ac: 000e9000 andeq r9, lr, r0 - 31b0: 00000000 andeq r0, r0, r0 - 31b4: 00000108 andeq r0, r0, r8, lsl #2 - 31b8: 03180003 tsteq r8, #3 ; 0x3 - 31bc: 02040000 andeq r0, r4, #0 ; 0x0 - 31c0: 445c3a43 ldrbmi r3, [ip], #-2627 - 31c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 31c8: 73746e65 cmnvc r4, #1616 ; 0x650 - 31cc: 646e6120 strbtvs r6, [lr], #-288 - 31d0: 74655320 strbtvc r5, [r5], #-800 - 31d4: 676e6974 undefined - 31d8: 616d5c73 smcvs 54723 - 31dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 31e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 31e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 31e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 31ec: 775c7374 undefined - 31f0: 6f632d73 svcvs 0x00632d73 - 31f4: 6f72746e svcvs 0x0072746e - 31f8: 65575c6c ldrbvs r5, [r7, #-3180] - 31fc: 65687461 strbvs r7, [r8, #-1121]! - 3200: 74532072 ldrbvc r2, [r3], #-114 - 3204: 6f697461 svcvs 0x00697461 - 3208: 6f43206e svcvs 0x0043206e - 320c: 6f72746e svcvs 0x0072746e - 3210: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3214: 7070415c rsbsvc r4, r0, ip, asr r1 - 3218: 6163696c cmnvs r3, ip, ror #18 - 321c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 3220: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 3224: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 3228: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 - 322c: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} - 3230: 41490063 cmpmi r9, r3, rrx - 3234: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 3238: 43204953 teqmi r0, #1359872 ; 0x14c000 - 323c: 2b2b432f blcs ad3f00 - 3240: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 3244: 656c6970 strbvs r6, [ip, #-2416]! - 3248: 35562072 ldrbcc r2, [r6, #-114] - 324c: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 3250: 31332e32 teqcc r3, r2, lsr lr - 3254: 2f353932 svccs 0x00353932 - 3258: 20323357 eorscs r3, r2, r7, asr r3 - 325c: 4b43494b blmi 10d5790 - 3260: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 3264: 6f662054 svcvs 0x00662054 - 3268: 52412072 subpl r2, r1, #114 ; 0x72 - 326c: c001004d andgt r0, r1, sp, asr #32 - 3270: fc004036 stc2 0, cr4, [r0], {54} - 3274: e0004036 and r4, r0, r6, lsr r0 - 3278: ce00001e mcrgt 0, 0, r0, cr0, cr14, {0} - 327c: 10000015 andne r0, r0, r5, lsl r0 - 3280: 00002e37 andeq r2, r0, r7, lsr lr - 3284: 00010a04 andeq r0, r1, r4, lsl #20 - 3288: 44454c00 strbmi r4, [r5], #-3072 - 328c: 7275545f rsbsvc r5, r5, #1593835520 ; 0x5f000000 - 3290: 66664f6e strbtvs r4, [r6], -lr, ror #30 - 3294: 0064654c rsbeq r6, r4, ip, asr #10 - 3298: 0601b301 streq fp, [r1], -r1, lsl #6 - 329c: 000ead01 andeq sl, lr, r1, lsl #26 - 32a0: 4036c000 eorsmi ip, r6, r0 - 32a4: 4036fc00 eorsmi pc, r6, r0, lsl #24 - 32a8: 454c0600 strbmi r0, [ip, #-1536] - 32ac: 00724e44 rsbseq r4, r2, r4, asr #28 - 32b0: 1b01b301 blne 6febc - 32b4: 002f8910 eoreq r8, pc, r0, lsl r9 - 32b8: 000ee500 andeq lr, lr, r0, lsl #10 - 32bc: 00000000 andeq r0, r0, r0 - 32c0: 000000e0 andeq r0, r0, r0, ror #1 - 32c4: 03180003 tsteq r8, #3 ; 0x3 - 32c8: 01040000 tsteq r4, r0 - 32cc: 445c3a43 ldrbmi r3, [ip], #-2627 - 32d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 32d4: 73746e65 cmnvc r4, #1616 ; 0x650 - 32d8: 646e6120 strbtvs r6, [lr], #-288 - 32dc: 74655320 strbtvc r5, [r5], #-800 - 32e0: 676e6974 undefined - 32e4: 616d5c73 smcvs 54723 - 32e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 32ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 32f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 32f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 32f8: 775c7374 undefined - 32fc: 6f632d73 svcvs 0x00632d73 - 3300: 6f72746e svcvs 0x0072746e - 3304: 65575c6c ldrbvs r5, [r7, #-3180] - 3308: 65687461 strbvs r7, [r8, #-1121]! - 330c: 74532072 ldrbvc r2, [r3], #-114 - 3310: 6f697461 svcvs 0x00697461 - 3314: 6f43206e svcvs 0x0043206e - 3318: 6f72746e svcvs 0x0072746e - 331c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3320: 7070415c rsbsvc r4, r0, ip, asr r1 - 3324: 6163696c cmnvs r3, ip, ror #18 - 3328: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 332c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 3330: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 3334: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 - 3338: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} - 333c: 41490063 cmpmi r9, r3, rrx - 3340: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 3344: 43204953 teqmi r0, #1359872 ; 0x14c000 - 3348: 2b2b432f blcs ad400c - 334c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 3350: 656c6970 strbvs r6, [ip, #-2416]! - 3354: 35562072 ldrbcc r2, [r6, #-114] - 3358: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 335c: 31332e32 teqcc r3, r2, lsr lr - 3360: 2f353932 svccs 0x00353932 - 3364: 20323357 eorscs r3, r2, r7, asr r3 - 3368: 4b43494b blmi 10d589c - 336c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 3370: 6f662054 svcvs 0x00662054 - 3374: 52412072 subpl r2, r1, #114 ; 0x72 - 3378: 6801004d stmdavs r1, {r0, r2, r3, r6} - 337c: 8400001a strhi r0, [r0], #-26 - 3380: 09000000 stmdbeq r0, {} - 3384: 000000e2 andeq r0, r0, r2, ror #1 - 3388: 5f44454c svcpl 0x0044454c - 338c: 6e727554 mrcvs 5, 3, r7, cr2, cr4, {2} - 3390: 4166664f cmnmi r6, pc, asr #12 - 3394: 654c6c6c strbvs r6, [ip, #-3180] - 3398: 01007364 tsteq r0, r4, ror #6 - 339c: 010601d5 ldrdeq r0, [r6, -r5] - 33a0: 00000000 andeq r0, r0, r0 - 33a4: 0000011c andeq r0, r0, ip, lsl r1 - 33a8: 03e00003 mvneq r0, #3 ; 0x3 - 33ac: 01040000 tsteq r4, r0 - 33b0: 445c3a43 ldrbmi r3, [ip], #-2627 - 33b4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 33b8: 73746e65 cmnvc r4, #1616 ; 0x650 - 33bc: 646e6120 strbtvs r6, [lr], #-288 - 33c0: 74655320 strbtvc r5, [r5], #-800 - 33c4: 676e6974 undefined - 33c8: 616d5c73 smcvs 54723 - 33cc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 33d0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 33d4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 33d8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 33dc: 775c7374 undefined - 33e0: 6f632d73 svcvs 0x00632d73 - 33e4: 6f72746e svcvs 0x0072746e - 33e8: 65575c6c ldrbvs r5, [r7, #-3180] - 33ec: 65687461 strbvs r7, [r8, #-1121]! - 33f0: 74532072 ldrbvc r2, [r3], #-114 - 33f4: 6f697461 svcvs 0x00697461 - 33f8: 6f43206e svcvs 0x0043206e - 33fc: 6f72746e svcvs 0x0072746e - 3400: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3404: 414d535c cmpmi sp, ip, asr r3 - 3408: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 340c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 3410: 6f535c73 svcvs 0x00535c73 - 3414: 65637275 strbvs r7, [r3, #-629]! - 3418: 63614d5c cmnvs r1, #5888 ; 0x1700 - 341c: 746e4961 strbtvc r4, [lr], #-2401 - 3420: 75727265 ldrbvc r7, [r2, #-613]! - 3424: 632e7470 teqvs lr, #1879048192 ; 0x70000000 - 3428: 52414900 subpl r4, r1, #0 ; 0x0 - 342c: 534e4120 movtpl r4, #57632 ; 0xe120 - 3430: 2f432049 svccs 0x00432049 - 3434: 202b2b43 eorcs r2, fp, r3, asr #22 - 3438: 706d6f43 rsbvc r6, sp, r3, asr #30 - 343c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 3440: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 3444: 322e3033 eorcc r3, lr, #51 ; 0x33 - 3448: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 344c: 572f3539 undefined - 3450: 4b203233 blmi 80fd24 - 3454: 534b4349 movtpl r4, #45897 ; 0xb349 - 3458: 54524154 ldrbpl r4, [r2], #-340 - 345c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 3460: 4d524120 ldfmie f4, [r2, #-128] - 3464: 1fa40100 svcne 0x00a40100 - 3468: 00ac0000 adceq r0, ip, r0 - 346c: 75020000 strvc r0, [r2] - 3470: 6769736e strbvs r7, [r9, -lr, ror #6]! - 3474: 2064656e rsbcs r6, r4, lr, ror #10 - 3478: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 - 347c: 02080100 andeq r0, r8, #0 ; 0x0 - 3480: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ - 3484: 64656e67 strbtvs r6, [r5], #-3687 - 3488: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} - 348c: 07040067 streq r0, [r4, -r7, rrx] - 3490: 010f1305 tsteq pc, r5, lsl #6 - 3494: 75090000 strvc r0, [r9] - 3498: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ - 349c: 1500745f strne r7, [r0, #-1119] - 34a0: 1a0101ca bne 43bd0 - 34a4: 6f620919 svcvs 0x00620919 - 34a8: 745f6c6f ldrbvc r6, [pc], #3183 ; 34b0 - 34ac: 01f21500 mvnseq r1, r0, lsl #10 - 34b0: 09132c01 ldmdbeq r3, {r0, sl, fp, sp} - 34b4: 746e6975 strbtvc r6, [lr], #-2421 - 34b8: 745f3233 ldrbvc r3, [pc], #563 ; 34c0 - 34bc: 01db1500 bicseq r1, fp, r0, lsl #10 - 34c0: 00191e01 andseq r1, r9, r1, lsl #28 - 34c4: 00000104 andeq r0, r0, r4, lsl #2 - 34c8: 03e00003 mvneq r0, #3 ; 0x3 - 34cc: 01040000 tsteq r4, r0 - 34d0: 445c3a43 ldrbmi r3, [ip], #-2627 - 34d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 34d8: 73746e65 cmnvc r4, #1616 ; 0x650 - 34dc: 646e6120 strbtvs r6, [lr], #-288 - 34e0: 74655320 strbtvc r5, [r5], #-800 - 34e4: 676e6974 undefined - 34e8: 616d5c73 smcvs 54723 - 34ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 34f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 34f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 34f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 34fc: 775c7374 undefined - 3500: 6f632d73 svcvs 0x00632d73 - 3504: 6f72746e svcvs 0x0072746e - 3508: 65575c6c ldrbvs r5, [r7, #-3180] - 350c: 65687461 strbvs r7, [r8, #-1121]! - 3510: 74532072 ldrbvc r2, [r3], #-114 - 3514: 6f697461 svcvs 0x00697461 - 3518: 6f43206e svcvs 0x0043206e - 351c: 6f72746e svcvs 0x0072746e - 3520: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3524: 414d535c cmpmi sp, ip, asr r3 - 3528: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 352c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 3530: 6f535c73 svcvs 0x00535c73 - 3534: 65637275 strbvs r7, [r3, #-629]! - 3538: 63614d5c cmnvs r1, #5888 ; 0x1700 - 353c: 746e4961 strbtvc r4, [lr], #-2401 - 3540: 75727265 ldrbvc r7, [r2, #-613]! - 3544: 632e7470 teqvs lr, #1879048192 ; 0x70000000 - 3548: 52414900 subpl r4, r1, #0 ; 0x0 - 354c: 534e4120 movtpl r4, #57632 ; 0xe120 - 3550: 2f432049 svccs 0x00432049 - 3554: 202b2b43 eorcs r2, fp, r3, asr #22 - 3558: 706d6f43 rsbvc r6, sp, r3, asr #30 - 355c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 3560: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 3564: 322e3033 eorcc r3, lr, #51 ; 0x33 - 3568: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 356c: 572f3539 undefined - 3570: 4b203233 blmi 80fe44 - 3574: 534b4349 movtpl r4, #45897 ; 0xb349 - 3578: 54524154 ldrbpl r4, [r2], #-340 - 357c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 3580: 4d524120 ldfmie f4, [r2, #-128] - 3584: 1fa40100 svcne 0x00a40100 - 3588: 00ac0000 adceq r0, ip, r0 - 358c: 66030000 strvs r0, [r3], -r0 - 3590: 0067616c rsbeq r6, r7, ip, ror #2 - 3594: 0034a510 eorseq sl, r4, r0, lsl r5 - 3598: 08520a00 ldmdaeq r2, {r9, fp}^ - 359c: ac030501 cfstr32ge mvfx0, [r3], {1} - 35a0: 03004052 movweq r4, #82 ; 0x52 - 35a4: 63614d6d cmnvs r1, #6976 ; 0x1b40 - 35a8: 72734961 rsbsvc r4, r3, #1589248 ; 0x184000 - 35ac: 72746e45 rsbsvc r6, r4, #1104 ; 0x450 - 35b0: 756f4379 strbvc r4, [pc, #-889]! ; 323f - 35b4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 35b8: 34961000 ldrcc r1, [r6] - 35bc: 4a0a0000 bmi 2835c4 - 35c0: 03050010 movweq r0, #20496 ; 0x5010 - 35c4: 004052ab subeq r5, r0, fp, lsr #5 - 35c8: 00000000 andeq r0, r0, r0 - 35cc: 000001a8 andeq r0, r0, r8, lsr #3 - 35d0: 03e00003 mvneq r0, #3 ; 0x3 - 35d4: 04040000 streq r0, [r4] - 35d8: 445c3a43 ldrbmi r3, [ip], #-2627 - 35dc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 35e0: 73746e65 cmnvc r4, #1616 ; 0x650 - 35e4: 646e6120 strbtvs r6, [lr], #-288 - 35e8: 74655320 strbtvc r5, [r5], #-800 - 35ec: 676e6974 undefined - 35f0: 616d5c73 smcvs 54723 - 35f4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 35f8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 35fc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3600: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3604: 775c7374 undefined - 3608: 6f632d73 svcvs 0x00632d73 - 360c: 6f72746e svcvs 0x0072746e - 3610: 65575c6c ldrbvs r5, [r7, #-3180] - 3614: 65687461 strbvs r7, [r8, #-1121]! - 3618: 74532072 ldrbvc r2, [r3], #-114 - 361c: 6f697461 svcvs 0x00697461 - 3620: 6f43206e svcvs 0x0043206e - 3624: 6f72746e svcvs 0x0072746e - 3628: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 362c: 414d535c cmpmi sp, ip, asr r3 - 3630: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 3634: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 3638: 6f535c73 svcvs 0x00535c73 - 363c: 65637275 strbvs r7, [r3, #-629]! - 3640: 63614d5c cmnvs r1, #5888 ; 0x1700 - 3644: 746e4961 strbtvc r4, [lr], #-2401 - 3648: 75727265 ldrbvc r7, [r2, #-613]! - 364c: 632e7470 teqvs lr, #1879048192 ; 0x70000000 - 3650: 52414900 subpl r4, r1, #0 ; 0x0 - 3654: 534e4120 movtpl r4, #57632 ; 0xe120 - 3658: 2f432049 svccs 0x00432049 - 365c: 202b2b43 eorcs r2, fp, r3, asr #22 - 3660: 706d6f43 rsbvc r6, sp, r3, asr #30 - 3664: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 3668: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 366c: 322e3033 eorcc r3, lr, #51 ; 0x33 - 3670: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 3674: 572f3539 undefined - 3678: 4b203233 blmi 80ff4c - 367c: 534b4349 movtpl r4, #45897 ; 0xb349 - 3680: 54524154 ldrbpl r4, [r2], #-340 - 3684: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 3688: 4d524120 ldfmie f4, [r2, #-128] - 368c: 2bb40100 blcs fed03a94 - 3690: 2c440040 mcrrcs 0, 4, r0, r4, cr0 - 3694: 23d40040 bicscs r0, r4, #64 ; 0x40 - 3698: 165b0000 ldrbne r0, [fp], -r0 - 369c: af100000 svcge 0x00100000 - 36a0: 06000033 undefined - 36a4: 000001a8 andeq r0, r0, r8, lsr #3 - 36a8: 75736552 ldrbvc r6, [r3, #-1362]! - 36ac: 414d656d cmpmi sp, sp, ror #10 - 36b0: 79534143 ldmdbvc r3, {r0, r1, r6, r8, lr}^ - 36b4: 0100636e tsteq r0, lr, ror #6 - 36b8: 02010661 andeq r0, r1, #101711872 ; 0x6100000 - 36bc: b400000f strlt r0, [r0], #-15 - 36c0: 4400402b strmi r4, [r0], #-43 - 36c4: 0700402c streq r4, [r0, -ip, lsr #32] - 36c8: 006b6c63 rsbeq r6, fp, r3, ror #24 - 36cc: 100c6301 andne r6, ip, r1, lsl #6 - 36d0: 000034b3 strheq r3, [r0], -r3 - 36d4: 00000f52 andeq r0, r0, r2, asr pc - 36d8: 6d735407 cfldrdvs mvd5, [r3, #-28]! - 36dc: 74537852 ldrbvc r7, [r3], #-2130 - 36e0: 00737065 rsbseq r7, r3, r5, rrx - 36e4: 10116301 andsne r6, r1, r1, lsl #6 - 36e8: 000034b3 strheq r3, [r0], -r3 - 36ec: 00000f84 andeq r0, r0, r4, lsl #31 - 36f0: 73614c07 cmnvc r1, #1792 ; 0x700 - 36f4: 72615774 rsbvc r5, r1, #30408704 ; 0x1d00000 - 36f8: 5370756d cmnpl r0, #457179136 ; 0x1b400000 - 36fc: 00706574 rsbseq r6, r0, r4, ror r5 - 3700: 101d6301 andsne r6, sp, r1, lsl #6 - 3704: 000034b3 strheq r3, [r0], -r3 - 3708: 00000fa1 andeq r0, r0, r1, lsr #31 - 370c: 73614c07 cmnvc r1, #1792 ; 0x700 - 3710: 72615774 rsbvc r5, r1, #30408704 ; 0x1d00000 - 3714: 4470756d ldrbtmi r7, [r0], #-1389 - 3718: 00617461 rsbeq r7, r1, r1, ror #8 - 371c: 102d6301 eorne r6, sp, r1, lsl #6 - 3720: 000034b3 strheq r3, [r0], -r3 - 3724: 00000fbe strheq r0, [r0], -lr - 3728: 73614c07 cmnvc r1, #1792 ; 0x700 - 372c: 72615774 rsbvc r5, r1, #30408704 ; 0x1d00000 - 3730: 776f646d strbvc r6, [pc, -sp, ror #8]! - 3734: 6574536e ldrbvs r5, [r4, #-878]! - 3738: 63010070 movwvs r0, #4208 ; 0x1070 - 373c: 34b3103d ldrtcc r1, [r3], #61 - 3740: 0fdb0000 svceq 0x00db0000 - 3744: 4c070000 stcmi 0, cr0, [r7], {0} - 3748: 57747361 ldrbpl r7, [r4, -r1, ror #6]! - 374c: 646d7261 strbtvs r7, [sp], #-609 - 3750: 446e776f strbtmi r7, [lr], #-1903 - 3754: 00617461 rsbeq r7, r1, r1, ror #8 - 3758: 104f6301 subne r6, pc, r1, lsl #6 - 375c: 000034b3 strheq r3, [r0], -r3 - 3760: 00000fe3 andeq r0, r0, r3, ror #31 - 3764: 01006907 tsteq r0, r7, lsl #18 - 3768: 90101565 andsls r1, r0, r5, ror #10 - 376c: 00000034 andeq r0, r0, r4, lsr r0 - 3770: 00000010 andeq r0, r0, r0, lsl r0 - 3774: 00000000 andeq r0, r0, r0 - 3778: 00000158 andeq r0, r0, r8, asr r1 - 377c: 03e00003 mvneq r0, #3 ; 0x3 - 3780: 04040000 streq r0, [r4] - 3784: 445c3a43 ldrbmi r3, [ip], #-2627 - 3788: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 378c: 73746e65 cmnvc r4, #1616 ; 0x650 - 3790: 646e6120 strbtvs r6, [lr], #-288 - 3794: 74655320 strbtvc r5, [r5], #-800 - 3798: 676e6974 undefined - 379c: 616d5c73 smcvs 54723 - 37a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 37a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 37a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 37ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 37b0: 775c7374 undefined - 37b4: 6f632d73 svcvs 0x00632d73 - 37b8: 6f72746e svcvs 0x0072746e - 37bc: 65575c6c ldrbvs r5, [r7, #-3180] - 37c0: 65687461 strbvs r7, [r8, #-1121]! - 37c4: 74532072 ldrbvc r2, [r3], #-114 - 37c8: 6f697461 svcvs 0x00697461 - 37cc: 6f43206e svcvs 0x0043206e - 37d0: 6f72746e svcvs 0x0072746e - 37d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 37d8: 414d535c cmpmi sp, ip, asr r3 - 37dc: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 37e0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 37e4: 6f535c73 svcvs 0x00535c73 - 37e8: 65637275 strbvs r7, [r3, #-629]! - 37ec: 63614d5c cmnvs r1, #5888 ; 0x1700 - 37f0: 746e4961 strbtvc r4, [lr], #-2401 - 37f4: 75727265 ldrbvc r7, [r2, #-613]! - 37f8: 632e7470 teqvs lr, #1879048192 ; 0x70000000 - 37fc: 52414900 subpl r4, r1, #0 ; 0x0 - 3800: 534e4120 movtpl r4, #57632 ; 0xe120 - 3804: 2f432049 svccs 0x00432049 - 3808: 202b2b43 eorcs r2, fp, r3, asr #22 - 380c: 706d6f43 rsbvc r6, sp, r3, asr #30 - 3810: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 3814: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 3818: 322e3033 eorcc r3, lr, #51 ; 0x33 - 381c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 3820: 572f3539 undefined - 3824: 4b203233 blmi 8100f8 - 3828: 534b4349 movtpl r4, #45897 ; 0xb349 - 382c: 54524154 ldrbpl r4, [r2], #-340 - 3830: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 3834: 4d524120 ldfmie f4, [r2, #-128] - 3838: 2c440100 stfcse f0, [r4], {0} - 383c: 2dc80040 stclcs 0, cr0, [r8, #256] - 3840: 24b00040 ldrtcs r0, [r0], #64 - 3844: 171b0000 ldrne r0, [fp, -r0] - 3848: af100000 svcge 0x00100000 - 384c: 06000033 undefined - 3850: 00000158 andeq r0, r0, r8, asr r1 - 3854: 4143414d cmpmi r3, sp, asr #2 - 3858: 746e495f strbtvc r4, [lr], #-2399 - 385c: 75727265 ldrbvc r7, [r2, #-613]! - 3860: 01007470 tsteq r0, r0, ror r4 - 3864: 010601a5 smlatbeq r6, r5, r1, r0 - 3868: 00001034 andeq r1, r0, r4, lsr r0 - 386c: 00402c44 subeq r2, r0, r4, asr #24 - 3870: 00402dc8 subeq r2, r0, r8, asr #27 - 3874: 71726907 cmnvc r2, r7, lsl #18 - 3878: 00637253 rsbeq r7, r3, r3, asr r2 - 387c: 0c01a701 stceq 7, cr10, [r1], {1} - 3880: 0034b310 eorseq fp, r4, r0, lsl r3 - 3884: 00107800 andseq r7, r0, r0, lsl #16 - 3888: 013b0800 teqeq fp, r0, lsl #16 - 388c: 2c6c0000 stclcs 0, cr0, [ip] - 3890: 2d120040 ldccs 0, cr0, [r2, #-256] - 3894: 3a080040 bcc 20399c - 3898: a0000001 andge r0, r0, r1 - 389c: 1200402c andne r4, r0, #44 ; 0x2c - 38a0: 0800402d stmdaeq r0, {r0, r2, r3, r5, lr} - 38a4: 00000139 andeq r0, r0, r9, lsr r1 - 38a8: 00402cdc ldrdeq r2, [r0], #-204 - 38ac: 00402cfc strdeq r2, [r0], #-204 - 38b0: 08000000 stmdaeq r0, {} - 38b4: 00000157 andeq r0, r0, r7, asr r1 - 38b8: 00402d2e subeq r2, r0, lr, lsr #26 - 38bc: 00402d68 subeq r2, r0, r8, ror #26 - 38c0: 00015608 andeq r5, r1, r8, lsl #12 - 38c4: 402d3c00 eormi r3, sp, r0, lsl #24 - 38c8: 402d6800 eormi r6, sp, r0, lsl #16 - ... - 38d4: 000000f0 strdeq r0, [r0], -r0 - 38d8: 04700003 ldrbteq r0, [r0], #-3 - 38dc: 01040000 tsteq r4, r0 - 38e0: 445c3a43 ldrbmi r3, [ip], #-2627 - 38e4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 38e8: 73746e65 cmnvc r4, #1616 ; 0x650 - 38ec: 646e6120 strbtvs r6, [lr], #-288 - 38f0: 74655320 strbtvc r5, [r5], #-800 - 38f4: 676e6974 undefined - 38f8: 616d5c73 smcvs 54723 - 38fc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3900: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3904: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3908: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 390c: 775c7374 undefined - 3910: 6f632d73 svcvs 0x00632d73 - 3914: 6f72746e svcvs 0x0072746e - 3918: 65575c6c ldrbvs r5, [r7, #-3180] - 391c: 65687461 strbvs r7, [r8, #-1121]! - 3920: 74532072 ldrbvc r2, [r3], #-114 - 3924: 6f697461 svcvs 0x00697461 - 3928: 6f43206e svcvs 0x0043206e - 392c: 6f72746e svcvs 0x0072746e - 3930: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3934: 4d4c505c stclmi 0, cr5, [ip, #-368] - 3938: 756f535c strbvc r5, [pc, #-860]! ; 35e4 - 393c: 5c656372 stclpl 3, cr6, [r5], #-456 - 3940: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! - 3944: 535c6e6f cmppl ip, #1776 ; 0x6f0 - 3948: 505c7379 subspl r7, ip, r9, ror r3 - 394c: 6674616c ldrbtvs r6, [r4], -ip, ror #2 - 3950: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ - 3954: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} - 3958: 41490063 cmpmi r9, r3, rrx - 395c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 3960: 43204953 teqmi r0, #1359872 ; 0x14c000 - 3964: 2b2b432f blcs ad4628 - 3968: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 396c: 656c6970 strbvs r6, [ip, #-2416]! - 3970: 35562072 ldrbcc r2, [r6, #-114] - 3974: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 3978: 31332e32 teqcc r3, r2, lsr lr - 397c: 2f353932 svccs 0x00353932 - 3980: 20323357 eorscs r3, r2, r7, asr r3 - 3984: 4b43494b blmi 10d5eb8 - 3988: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 398c: 6f662054 svcvs 0x00662054 - 3990: 52412072 subpl r2, r1, #114 ; 0x72 - 3994: dc01004d stcle 0, cr0, [r1], {77} - 3998: e4000025 str r0, [r0], #-37 - 399c: 03000000 movweq r0, #0 ; 0x0 - 39a0: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ - 39a4: 64656e67 strbtvs r6, [r5], #-3687 - 39a8: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} - 39ac: 07040067 streq r0, [r4, -r7, rrx] - 39b0: 00e21304 rsceq r1, r2, r4, lsl #6 - 39b4: 75090000 strvc r0, [r9] - 39b8: 33746e69 cmncc r4, #1680 ; 0x690 - 39bc: 00745f32 rsbseq r5, r4, r2, lsr pc - 39c0: 0101cb15 tsteq r1, r5, lsl fp - 39c4: 0000191e andeq r1, r0, lr, lsl r9 - 39c8: 00000110 andeq r0, r0, r0, lsl r1 - 39cc: 04700003 ldrbteq r0, [r0], #-3 - 39d0: 02040000 andeq r0, r4, #0 ; 0x0 - 39d4: 445c3a43 ldrbmi r3, [ip], #-2627 - 39d8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 39dc: 73746e65 cmnvc r4, #1616 ; 0x650 - 39e0: 646e6120 strbtvs r6, [lr], #-288 - 39e4: 74655320 strbtvc r5, [r5], #-800 - 39e8: 676e6974 undefined - 39ec: 616d5c73 smcvs 54723 - 39f0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 39f4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 39f8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 39fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3a00: 775c7374 undefined - 3a04: 6f632d73 svcvs 0x00632d73 - 3a08: 6f72746e svcvs 0x0072746e - 3a0c: 65575c6c ldrbvs r5, [r7, #-3180] - 3a10: 65687461 strbvs r7, [r8, #-1121]! - 3a14: 74532072 ldrbvc r2, [r3], #-114 - 3a18: 6f697461 svcvs 0x00697461 - 3a1c: 6f43206e svcvs 0x0043206e - 3a20: 6f72746e svcvs 0x0072746e - 3a24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3a28: 4d4c505c stclmi 0, cr5, [ip, #-368] - 3a2c: 756f535c strbvc r5, [pc, #-860]! ; 36d8 - 3a30: 5c656372 stclpl 3, cr6, [r5], #-456 - 3a34: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! - 3a38: 535c6e6f cmppl ip, #1776 ; 0x6f0 - 3a3c: 505c7379 subspl r7, ip, r9, ror r3 - 3a40: 6674616c ldrbtvs r6, [r4], -ip, ror #2 - 3a44: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ - 3a48: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} - 3a4c: 41490063 cmpmi r9, r3, rrx - 3a50: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 3a54: 43204953 teqmi r0, #1359872 ; 0x14c000 - 3a58: 2b2b432f blcs ad471c - 3a5c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 3a60: 656c6970 strbvs r6, [ip, #-2416]! - 3a64: 35562072 ldrbcc r2, [r6, #-114] - 3a68: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 3a6c: 31332e32 teqcc r3, r2, lsr lr - 3a70: 2f353932 svccs 0x00353932 - 3a74: 20323357 eorscs r3, r2, r7, asr r3 - 3a78: 4b43494b blmi 10d5fac - 3a7c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 3a80: 6f662054 svcvs 0x00662054 - 3a84: 52412072 subpl r2, r1, #114 ; 0x72 - 3a88: a401004d strge r0, [r1], #-77 - 3a8c: f000403c undefined instruction 0xf000403c - 3a90: ec00403c stc 0, cr4, [r0], {60} - 3a94: db000027 blle 3b38 - 3a98: 10000018 andne r0, r0, r8, lsl r0 - 3a9c: 000038df ldrdeq r3, [r0], -pc - 3aa0: 00011205 andeq r1, r1, r5, lsl #4 - 3aa4: 616c5000 cmnvs ip, r0 - 3aa8: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 - 3aac: 726f506d rsbvc r5, pc, #109 ; 0x6d - 3ab0: 696e4974 stmdbvs lr!, {r2, r4, r5, r6, r8, fp, lr}^ - 3ab4: 1e010074 mcrne 0, 0, r0, cr1, cr4, {3} - 3ab8: 113d0106 teqne sp, r6, lsl #2 - 3abc: 3ca40000 stccc 0, cr0, [r4] - 3ac0: 3cf00040 ldclcc 0, cr0, [r0], #256 - 3ac4: 11060040 tstne r6, r0, asr #32 - 3ac8: 10000001 andne r0, r0, r1 - 3acc: 00003ba7 andeq r3, r0, r7, lsr #23 - 3ad0: 00403ca4 subeq r3, r0, r4, lsr #25 - 3ad4: 00403cea subeq r3, r0, sl, ror #25 - 3ad8: 00000000 andeq r0, r0, r0 - 3adc: 000000e4 andeq r0, r0, r4, ror #1 - 3ae0: 04700003 ldrbteq r0, [r0], #-3 - 3ae4: 01040000 tsteq r4, r0 - 3ae8: 445c3a43 ldrbmi r3, [ip], #-2627 - 3aec: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3af0: 73746e65 cmnvc r4, #1616 ; 0x650 - 3af4: 646e6120 strbtvs r6, [lr], #-288 - 3af8: 74655320 strbtvc r5, [r5], #-800 - 3afc: 676e6974 undefined - 3b00: 616d5c73 smcvs 54723 - 3b04: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3b08: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3b0c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3b10: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3b14: 775c7374 undefined - 3b18: 6f632d73 svcvs 0x00632d73 - 3b1c: 6f72746e svcvs 0x0072746e - 3b20: 65575c6c ldrbvs r5, [r7, #-3180] - 3b24: 65687461 strbvs r7, [r8, #-1121]! - 3b28: 74532072 ldrbvc r2, [r3], #-114 - 3b2c: 6f697461 svcvs 0x00697461 - 3b30: 6f43206e svcvs 0x0043206e - 3b34: 6f72746e svcvs 0x0072746e - 3b38: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3b3c: 4d4c505c stclmi 0, cr5, [ip, #-368] - 3b40: 756f535c strbvc r5, [pc, #-860]! ; 37ec - 3b44: 5c656372 stclpl 3, cr6, [r5], #-456 - 3b48: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! - 3b4c: 535c6e6f cmppl ip, #1776 ; 0x6f0 - 3b50: 505c7379 subspl r7, ip, r9, ror r3 - 3b54: 6674616c ldrbtvs r6, [r4], -ip, ror #2 - 3b58: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ - 3b5c: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} - 3b60: 41490063 cmpmi r9, r3, rrx - 3b64: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 3b68: 43204953 teqmi r0, #1359872 ; 0x14c000 - 3b6c: 2b2b432f blcs ad4830 - 3b70: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 3b74: 656c6970 strbvs r6, [ip, #-2416]! - 3b78: 35562072 ldrbcc r2, [r6, #-114] - 3b7c: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 3b80: 31332e32 teqcc r3, r2, lsr lr - 3b84: 2f353932 svccs 0x00353932 - 3b88: 20323357 eorscs r3, r2, r7, asr r3 - 3b8c: 4b43494b blmi 10d60c0 - 3b90: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 3b94: 6f662054 svcvs 0x00662054 - 3b98: 52412072 subpl r2, r1, #114 ; 0x72 - 3b9c: dc01004d stcle 0, cr0, [r1], {77} - 3ba0: e4000025 str r0, [r0], #-37 - 3ba4: 08000000 stmdaeq r0, {} - 3ba8: 000000e7 andeq r0, r0, r7, ror #1 - 3bac: 74616c50 strbtvc r6, [r1], #-3152 - 3bb0: 6d726f66 ldclvs 15, cr6, [r2, #-408]! - 3bb4: 74696e49 strbtvc r6, [r9], #-3657 - 3bb8: 6f697047 svcvs 0x00697047 - 3bbc: 0d450900 stcleq 9, cr0, [r5] - 3bc0: 00000000 andeq r0, r0, r0 - 3bc4: 00000af4 strdeq r0, [r0], -r4 - 3bc8: 05000003 streq r0, [r0, #-3] - 3bcc: 01040000 tsteq r4, r0 - 3bd0: 445c3a43 ldrbmi r3, [ip], #-2627 - 3bd4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3bd8: 73746e65 cmnvc r4, #1616 ; 0x650 - 3bdc: 646e6120 strbtvs r6, [lr], #-288 - 3be0: 74655320 strbtvc r5, [r5], #-800 - 3be4: 676e6974 undefined - 3be8: 616d5c73 smcvs 54723 - 3bec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3bf0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3bf4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3bf8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3bfc: 775c7374 undefined - 3c00: 6f632d73 svcvs 0x00632d73 - 3c04: 6f72746e svcvs 0x0072746e - 3c08: 65575c6c ldrbvs r5, [r7, #-3180] - 3c0c: 65687461 strbvs r7, [r8, #-1121]! - 3c10: 74532072 ldrbvc r2, [r3], #-114 - 3c14: 6f697461 svcvs 0x00697461 - 3c18: 6f43206e svcvs 0x0043206e - 3c1c: 6f72746e svcvs 0x0072746e - 3c20: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3c24: 414d535c cmpmi sp, ip, asr r3 - 3c28: 6f535c43 svcvs 0x00535c43 - 3c2c: 65637275 strbvs r7, [r3, #-629]! - 3c30: 6461525c strbtvs r5, [r1], #-604 - 3c34: 614d6f69 cmpvs sp, r9, ror #30 - 3c38: 6567616e strbvs r6, [r7, #-366]! - 3c3c: 746e656d strbtvc r6, [lr], #-1389 - 3c40: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 3c44: 41205241 teqmi r0, r1, asr #4 - 3c48: 2049534e subcs r5, r9, lr, asr #6 - 3c4c: 2b432f43 blcs 10cf960 - 3c50: 6f43202b svcvs 0x0043202b - 3c54: 6c69706d stclvs 0, cr7, [r9], #-436 - 3c58: 56207265 strtpl r7, [r0], -r5, ror #4 - 3c5c: 30332e35 eorscc r2, r3, r5, lsr lr - 3c60: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 3c64: 35393231 ldrcc r3, [r9, #-561]! - 3c68: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 3c6c: 43494b20 movtmi r4, #39712 ; 0x9b20 - 3c70: 4154534b cmpmi r4, fp, asr #6 - 3c74: 66205452 undefined - 3c78: 4120726f teqmi r0, pc, ror #4 - 3c7c: 01004d52 tsteq r0, r2, asr sp - 3c80: 000028c4 andeq r2, r0, r4, asr #17 - 3c84: 0000010c andeq r0, r0, ip, lsl #2 - 3c88: 736e7502 cmnvc lr, #8388608 ; 0x800000 - 3c8c: 656e6769 strbvs r6, [lr, #-1897]! - 3c90: 68632064 stmdavs r3!, {r2, r5, r6, sp}^ - 3c94: 01007261 tsteq r0, r1, ror #4 - 3c98: 8e130308 cdphi 3, 1, cr0, cr3, cr8, {0} - 3c9c: 0200000a andeq r0, r0, #10 ; 0xa - 3ca0: 64696f76 strbtvs r6, [r9], #-3958 - 3ca4: 03050000 movweq r0, #20480 ; 0x5000 - 3ca8: 0003c813 andeq ip, r3, r3, lsl r8 - 3cac: 6e750200 cdpvs 2, 7, cr0, cr5, cr0, {0} - 3cb0: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} - 3cb4: 6c206465 cfstrsvs mvf6, [r0], #-404 - 3cb8: 00676e6f rsbeq r6, r7, pc, ror #28 - 3cbc: 13050704 movwne r0, #22276 ; 0x5704 - 3cc0: 0000040a andeq r0, r0, sl, lsl #8 - 3cc4: 043a1305 ldrteq r1, [sl], #-773 - 3cc8: 13050000 movwne r0, #20480 ; 0x5000 - 3ccc: 0000042f andeq r0, r0, pc, lsr #8 - 3cd0: 03f41305 mvnseq r1, #335544320 ; 0x14000000 - 3cd4: 13030000 movwne r0, #12288 ; 0x3000 - 3cd8: 00000891 muleq r0, r1, r8 - 3cdc: 736e7502 cmnvc lr, #8388608 ; 0x800000 - 3ce0: 656e6769 strbvs r6, [lr, #-1897]! - 3ce4: 68732064 ldmdavs r3!, {r2, r5, r6, sp}^ - 3ce8: 0074726f rsbseq r7, r4, pc, ror #4 - 3cec: 13030702 movwne r0, #14082 ; 0x3702 - 3cf0: 000003ce andeq r0, r0, lr, asr #7 - 3cf4: 00022312 andeq r2, r2, r2, lsl r3 - 3cf8: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! - 3cfc: 5f78745f svcpl 0x0078745f - 3d00: 74617473 strbtvc r7, [r1], #-1139 - 3d04: 61745f65 cmnvs r4, r5, ror #30 - 3d08: 13010067 movwne r0, #4199 ; 0x1067 - 3d0c: 5f47534d svcpl 0x0047534d - 3d10: 525f5854 subspl r5, pc, #5505024 ; 0x540000 - 3d14: 00545351 subseq r5, r4, r1, asr r3 - 3d18: 534d1300 movtpl r1, #54016 ; 0xd300 - 3d1c: 58545f47 ldmdapl r4, {r0, r1, r2, r6, r8, r9, sl, fp, ip, lr}^ - 3d20: 5341505f movtpl r5, #4191 ; 0x105f - 3d24: 5f444553 svcpl 0x00444553 - 3d28: 445f4f54 ldrbmi r4, [pc], #3924 ; 3d30 - 3d2c: 43495645 movtmi r5, #38469 ; 0x9645 - 3d30: 13010045 movwne r0, #4165 ; 0x1045 - 3d34: 5f47534d svcpl 0x0047534d - 3d38: 415f5854 cmpmi pc, r4, asr r8 - 3d3c: 4f495443 svcmi 0x00495443 - 3d40: 54535f4e ldrbpl r5, [r3], #-3918 - 3d44: 45545241 ldrbmi r5, [r4, #-577] - 3d48: 13020044 movwne r0, #8260 ; 0x2044 - 3d4c: 5f47534d svcpl 0x0047534d - 3d50: 415f5854 cmpmi pc, r4, asr r8 - 3d54: 4f495443 svcmi 0x00495443 - 3d58: 4f435f4e svcmi 0x00435f4e - 3d5c: 454c504d strbmi r5, [ip, #-77] - 3d60: 435f4554 cmpmi pc, #352321536 ; 0x15000000 - 3d64: 4e4e4148 dvfmiem f4, f6, #0.0 - 3d68: 5355425f cmppl r5, #-268435451 ; 0xf0000005 - 3d6c: 13030059 movwne r0, #12377 ; 0x3059 - 3d70: 5f47534d svcpl 0x0047534d - 3d74: 415f5854 cmpmi pc, r4, asr r8 - 3d78: 4f495443 svcmi 0x00495443 - 3d7c: 4f435f4e svcmi 0x00435f4e - 3d80: 454c504d strbmi r5, [ip, #-77] - 3d84: 535f4554 cmppl pc, #352321536 ; 0x15000000 - 3d88: 45434355 strbmi r4, [r3, #-853] - 3d8c: 04005353 streq r5, [r0], #-851 - 3d90: 47534d13 smmlami r3, r3, sp, r4 - 3d94: 5f58545f svcpl 0x0058545f - 3d98: 49544341 ldmdbmi r4, {r0, r6, r8, r9, lr}^ - 3d9c: 435f4e4f cmpmi pc, #1264 ; 0x4f0 - 3da0: 4c504d4f mrrcmi 13, 4, r4, r0, cr15 - 3da4: 5f455445 svcpl 0x00455445 - 3da8: 4c494146 stfmie f4, [r9], {70} - 3dac: 4d130500 cfldr32mi mvfx0, [r3] - 3db0: 545f4753 ldrbpl r4, [pc], #1875 ; 3db8 - 3db4: 51525f58 cmppl r2, r8, asr pc - 3db8: 415f5453 cmpmi pc, r3, asr r4 - 3dbc: 54524f42 ldrbpl r4, [r2], #-3906 - 3dc0: 4d130600 ldcmi 6, cr0, [r3] - 3dc4: 545f4753 ldrbpl r4, [pc], #1875 ; 3dcc - 3dc8: 42415f58 submi r5, r1, #352 ; 0x160 - 3dcc: 4554524f ldrbmi r5, [r4, #-591] - 3dd0: 13070044 movwne r0, #28740 ; 0x7044 - 3dd4: 5f58414d svcpl 0x0058414d - 3dd8: 5f47534d svcpl 0x0047534d - 3ddc: 535f5854 cmppl pc, #5505024 ; 0x540000 - 3de0: 45544154 ldrbmi r4, [r4, #-340] - 3de4: 12000800 andne r0, r0, #0 ; 0x0 - 3de8: 000002da ldrdeq r0, [r0], -sl - 3dec: 5f67736d svcpl 0x0067736d - 3df0: 735f6465 cmpvc pc, #1694498816 ; 0x65000000 - 3df4: 65746174 ldrbvs r6, [r4, #-372]! - 3df8: 6761745f undefined - 3dfc: 4d130100 ldfmis f0, [r3] - 3e00: 455f4753 ldrbmi r4, [pc, #-1875] ; 36b5 - 3e04: 51525f44 cmppl r2, r4, asr #30 - 3e08: 00005453 andeq r5, r0, r3, asr r4 - 3e0c: 47534d13 smmlami r3, r3, sp, r4 - 3e10: 5f44455f svcpl 0x0044455f - 3e14: 53534150 cmppl r3, #20 ; 0x14 - 3e18: 545f4445 ldrbpl r4, [pc], #1093 ; 3e20 - 3e1c: 45445f4f strbmi r5, [r4, #-3919] - 3e20: 45434956 strbmi r4, [r3, #-2390] - 3e24: 4d130100 ldfmis f0, [r3] - 3e28: 455f4753 ldrbmi r4, [pc, #-1875] ; 36dd - 3e2c: 43415f44 movtmi r5, #8004 ; 0x1f44 - 3e30: 4e4f4954 mcrmi 9, 2, r4, cr15, cr4, {2} - 3e34: 4d4f435f stclmi 3, cr4, [pc, #-380] - 3e38: 54454c50 strbpl r4, [r5], #-3152 - 3e3c: 55535f45 ldrbpl r5, [r3, #-3909] - 3e40: 53454343 movtpl r4, #21315 ; 0x5343 - 3e44: 13020053 movwne r0, #8275 ; 0x2053 - 3e48: 5f47534d svcpl 0x0047534d - 3e4c: 415f4445 cmpmi pc, r5, asr #8 - 3e50: 4f495443 svcmi 0x00495443 - 3e54: 4f435f4e svcmi 0x00435f4e - 3e58: 454c504d strbmi r5, [ip, #-77] - 3e5c: 465f4554 undefined - 3e60: 004c4941 subeq r4, ip, r1, asr #18 - 3e64: 534d1303 movtpl r1, #54019 ; 0xd303 - 3e68: 44455f47 strbmi r5, [r5], #-3911 - 3e6c: 5351525f cmppl r1, #-268435451 ; 0xf0000005 - 3e70: 42415f54 submi r5, r1, #336 ; 0x150 - 3e74: 0054524f subseq r5, r4, pc, asr #4 - 3e78: 534d1304 movtpl r1, #54020 ; 0xd304 - 3e7c: 44455f47 strbmi r5, [r5], #-3911 - 3e80: 4f42415f svcmi 0x0042415f - 3e84: 44455452 strbmi r5, [r5], #-1106 - 3e88: 4d130500 cfldr32mi mvfx0, [r3] - 3e8c: 4d5f5841 ldclmi 8, cr5, [pc, #-260] - 3e90: 455f4753 ldrbmi r4, [pc, #-1875] ; 3745 - 3e94: 54535f44 ldrbpl r5, [r3], #-3908 - 3e98: 00455441 subeq r5, r5, r1, asr #8 - 3e9c: 91120006 tstls r2, r6 - 3ea0: 6d000003 stcvs 0, cr0, [r0, #-12] - 3ea4: 745f6773 ldrbvc r6, [pc], #1907 ; 3eac - 3ea8: 74735f6f ldrbtvc r5, [r3], #-3951 - 3eac: 5f657461 svcpl 0x00657461 - 3eb0: 00676174 rsbeq r6, r7, r4, ror r1 - 3eb4: 534d1301 movtpl r1, #54017 ; 0xd301 - 3eb8: 4f545f47 svcmi 0x00545f47 - 3ebc: 5351525f cmppl r1, #-268435451 ; 0xf0000005 - 3ec0: 13000054 movwne r0, #84 ; 0x54 - 3ec4: 5f47534d svcpl 0x0047534d - 3ec8: 505f4f54 subspl r4, pc, r4, asr pc - 3ecc: 45535341 ldrbmi r5, [r3, #-833] - 3ed0: 4f545f44 svcmi 0x00545f44 - 3ed4: 5645445f undefined - 3ed8: 00454349 subeq r4, r5, r9, asr #6 - 3edc: 534d1301 movtpl r1, #54017 ; 0xd301 - 3ee0: 4f545f47 svcmi 0x00545f47 - 3ee4: 5443415f strbpl r4, [r3], #-351 - 3ee8: 5f4e4f49 svcpl 0x004e4f49 - 3eec: 504d4f43 subpl r4, sp, r3, asr #30 - 3ef0: 4554454c ldrbmi r4, [r4, #-1356] - 3ef4: 4355535f cmpmi r5, #2080374785 ; 0x7c000001 - 3ef8: 53534543 cmppl r3, #281018368 ; 0x10c00000 - 3efc: 4d130200 lfmmi f0, 4, [r3] - 3f00: 545f4753 ldrbpl r4, [pc], #1875 ; 3f08 - 3f04: 43415f4f movtmi r5, #8015 ; 0x1f4f - 3f08: 4e4f4954 mcrmi 9, 2, r4, cr15, cr4, {2} - 3f0c: 4d4f435f stclmi 3, cr4, [pc, #-380] - 3f10: 54454c50 strbpl r4, [r5], #-3152 - 3f14: 41465f45 cmpmi r6, r5, asr #30 - 3f18: 03004c49 movweq r4, #3145 ; 0xc49 - 3f1c: 47534d13 smmlami r3, r3, sp, r4 - 3f20: 5f4f545f svcpl 0x004f545f - 3f24: 54535152 ldrbpl r5, [r3], #-338 - 3f28: 4f42415f svcmi 0x0042415f - 3f2c: 04005452 streq r5, [r0], #-1106 - 3f30: 47534d13 smmlami r3, r3, sp, r4 - 3f34: 5f4f545f svcpl 0x004f545f - 3f38: 524f4241 subpl r4, pc, #268435460 ; 0x10000004 - 3f3c: 00444554 subeq r4, r4, r4, asr r5 - 3f40: 414d1305 cmpmi sp, r5, lsl #6 - 3f44: 534d5f58 movtpl r5, #57176 ; 0xdf58 - 3f48: 4f545f47 svcmi 0x00545f47 - 3f4c: 4154535f cmpmi r4, pc, asr r3 - 3f50: 06004554 undefined - 3f54: 03c81200 biceq r1, r8, #0 ; 0x0 - 3f58: 736d0000 cmnvc sp, #0 ; 0x0 - 3f5c: 79745f67 ldmdbvc r4!, {r0, r1, r2, r5, r6, r8, r9, sl, fp, ip, lr}^ - 3f60: 745f6570 ldrbvc r6, [pc], #1392 ; 3f68 - 3f64: 01006761 tsteq r0, r1, ror #14 - 3f68: 00585413 subseq r5, r8, r3, lsl r4 - 3f6c: 58521300 ldmdapl r2, {r8, r9, ip}^ - 3f70: 45130100 ldrmi r0, [r3, #-256] - 3f74: 13020044 movwne r0, #8260 ; 0x2044 - 3f78: 03004f54 movweq r4, #3924 ; 0xf54 - 3f7c: 58414d13 stmdapl r1, {r0, r1, r4, r8, sl, fp, lr}^ - 3f80: 47534d5f undefined - 3f84: 5059545f subspl r5, r9, pc, asr r4 - 3f88: 00040045 andeq r0, r4, r5, asr #32 - 3f8c: 0003ce14 andeq ip, r3, r4, lsl lr - 3f90: da140000 ble 503f98 - 3f94: 15000003 strne r0, [r0, #-3] - 3f98: 000a2813 andeq r2, sl, r3, lsl r8 - 3f9c: e7160000 ldr r0, [r6, -r0] - 3fa0: 13000003 movwne r0, #3 ; 0x3 - 3fa4: 00000a28 andeq r0, r0, r8, lsr #20 - 3fa8: 16000017 undefined - 3fac: 000003f4 strdeq r0, [r0], -r4 - 3fb0: 000a2813 andeq r2, sl, r3, lsl r8 - 3fb4: 00011700 andeq r1, r1, r0, lsl #14 - 3fb8: 0003ff16 andeq pc, r3, r6, lsl pc - 3fbc: 01c41500 biceq r1, r4, r0, lsl #10 - 3fc0: 16000317 undefined - 3fc4: 0000040a andeq r0, r0, sl, lsl #8 - 3fc8: 17029215 smladne r2, r5, r2, r9 - 3fcc: 15160003 ldrne r0, [r6, #-3] - 3fd0: 15000004 strne r0, [r0, #-4] - 3fd4: 031701e3 tsteq r7, #-1073741768 ; 0xc0000038 - 3fd8: 04221600 strteq r1, [r2], #-1536 - 3fdc: 55130000 ldrpl r0, [r3] - 3fe0: 1700000a strne r0, [r0, -sl] - 3fe4: 2f160003 svccs 0x00160003 - 3fe8: 13000004 movwne r0, #4 ; 0x4 - 3fec: 00000a55 andeq r0, r0, r5, asr sl - 3ff0: 16000917 undefined - 3ff4: 0000043a andeq r0, r0, sl, lsr r4 - 3ff8: 1701c415 smladne r1, r5, r4, ip - 3ffc: 4516000f ldrmi r0, [r6, #-15] - 4000: 15000004 strne r0, [r0, #-4] - 4004: 0f1701e9 svceq 0x001701e9 - 4008: 04521600 ldrbeq r1, [r2], #-1536 - 400c: 28130000 ldmdacs r3, {} - 4010: 1700000a strne r0, [r0, -sl] - 4014: 1a18000f bne 604058 - 4018: 04000008 streq r0, [r0], #-8 - 401c: 0a551319 beq 1548c88 - 4020: 61010000 tstvs r1, r0 - 4024: 6f697463 svcvs 0x00697463 - 4028: 74735f6e ldrbtvc r5, [r3], #-3950 - 402c: 65747261 ldrbvs r7, [r4, #-609]! - 4030: 6c665f64 stclvs 15, cr5, [r6], #-400 - 4034: 02006761 andeq r6, r0, #25427968 ; 0x1840000 - 4038: 01040023 tsteq r4, r3, lsr #32 - 403c: 5513191f ldrpl r1, [r3, #-2335] - 4040: 0100000a tsteq r0, sl - 4044: 636e7973 cmnvs lr, #1884160 ; 0x1cc000 - 4048: 7465645f strbtvc r6, [r5], #-1119 - 404c: 65746365 ldrbvs r6, [r4, #-869]! - 4050: 6c665f64 stclvs 15, cr5, [r6], #-400 - 4054: 02006761 andeq r6, r0, #25427968 ; 0x1840000 - 4058: 01040023 tsteq r4, r3, lsr #32 - 405c: 5513191e ldrpl r1, [r3, #-2334] - 4060: 0100000a tsteq r0, sl - 4064: 656d6974 strbvs r6, [sp, #-2420]! - 4068: 5f74756f svcpl 0x0074756f - 406c: 67616c66 strbvs r6, [r1, -r6, ror #24]! - 4070: 00230200 eoreq r0, r3, r0, lsl #4 - 4074: 191d0104 ldmdbne sp, {r2, r8} - 4078: 000a5513 andeq r5, sl, r3, lsl r5 - 407c: 68630100 stmdavs r3!, {r8}^ - 4080: 736b6365 cmnvc fp, #-1811939327 ; 0x94000001 - 4084: 665f6d75 undefined - 4088: 656c6961 strbvs r6, [ip, #-2401]! - 408c: 6c665f64 stclvs 15, cr5, [r6], #-400 - 4090: 02006761 andeq r6, r0, #25427968 ; 0x1840000 - 4094: 01040023 tsteq r4, r3, lsr #32 - 4098: 5513191c ldrpl r1, [r3, #-2332] - 409c: 0100000a tsteq r0, sl - 40a0: 61746164 cmnvs r4, r4, ror #2 - 40a4: 646e695f strbtvs r6, [lr], #-2399 - 40a8: 74616369 strbtvc r6, [r1], #-873 - 40ac: 5f6e6f69 svcpl 0x006e6f69 - 40b0: 67616c66 strbvs r6, [r1, -r6, ror #24]! - 40b4: 00230200 eoreq r0, r3, r0, lsl #4 - 40b8: 191b0104 ldmdbne fp, {r2, r8} - 40bc: 000a5513 andeq r5, sl, r3, lsl r5 - 40c0: 63610100 cmnvs r1, #0 ; 0x0 - 40c4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 40c8: 6d6f635f stclvs 3, cr6, [pc, #-380]! - 40cc: 74656c70 strbtvc r6, [r5], #-3184 - 40d0: 6c665f65 stclvs 15, cr5, [r6], #-404 - 40d4: 02006761 andeq r6, r0, #25427968 ; 0x1840000 - 40d8: 01040023 tsteq r4, r3, lsr #32 - 40dc: 5513191a ldrpl r1, [r3, #-2330] - 40e0: 0100000a tsteq r0, sl - 40e4: 735f6361 cmpvc pc, #-2080374783 ; 0x84000001 - 40e8: 65636375 strbvs r6, [r3, #-885]! - 40ec: 665f7373 undefined - 40f0: 0067616c rsbeq r6, r7, ip, ror #2 - 40f4: 04002302 streq r2, [r0], #-770 - 40f8: 13191901 tstne r9, #16384 ; 0x4000 - 40fc: 00000a55 andeq r0, r0, r5, asr sl - 4100: 5f636101 svcpl 0x00636101 - 4104: 656d6974 strbvs r6, [sp, #-2420]! - 4108: 5f74756f svcpl 0x0074756f - 410c: 67616c66 strbvs r6, [r1, -r6, ror #24]! - 4110: 00230200 eoreq r0, r3, r0, lsl #4 - 4114: 19180104 ldmdbne r8, {r2, r8} - 4118: 000a5513 andeq r5, sl, r3, lsl r5 - 411c: 63610100 cmnvs r1, #0 ; 0x0 - 4120: 6168635f cmnvs r8, pc, asr r3 - 4124: 6c656e6e stclvs 14, cr6, [r5], #-440 - 4128: 7375625f cmnvc r5, #-268435451 ; 0xf0000005 - 412c: 6c665f79 stclvs 15, cr5, [r6], #-484 - 4130: 02006761 andeq r6, r0, #25427968 ; 0x1840000 - 4134: 01040023 tsteq r4, r3, lsr #32 - 4138: 55131917 ldrpl r1, [r3, #-2327] - 413c: 0100000a tsteq r0, sl - 4140: 635f6361 cmpvs pc, #-2080374783 ; 0x84000001 - 4144: 665f6372 undefined - 4148: 656c6961 strbvs r6, [ip, #-2401]! - 414c: 6c665f64 stclvs 15, cr5, [r6], #-400 - 4150: 02006761 andeq r6, r0, #25427968 ; 0x1840000 - 4154: 01040023 tsteq r4, r3, lsr #32 - 4158: 55131916 ldrpl r1, [r3, #-2326] - 415c: 0100000a tsteq r0, sl - 4160: 615f6361 cmpvs pc, r1, ror #6 - 4164: 74726f62 ldrbtvc r6, [r2], #-3938 - 4168: 665f6465 ldrbvs r6, [pc], -r5, ror #8 - 416c: 0067616c rsbeq r6, r7, ip, ror #2 - 4170: 04002302 streq r2, [r0], #-770 - 4174: 13191501 tstne r9, #4194304 ; 0x400000 - 4178: 00000a55 andeq r0, r0, r5, asr sl - 417c: 5f636101 svcpl 0x00636101 - 4180: 615f6f6e cmpvs pc, lr, ror #30 - 4184: 665f6b63 ldrbvs r6, [pc], -r3, ror #22 - 4188: 0067616c rsbeq r6, r7, ip, ror #2 - 418c: 04002302 streq r2, [r0], #-770 - 4190: 13191401 tstne r9, #16777216 ; 0x1000000 - 4194: 00000a55 andeq r0, r0, r5, asr sl - 4198: 5f636101 svcpl 0x00636101 - 419c: 645f6f6e ldrbvs r6, [pc], #3950 ; 41a4 - 41a0: 5f617461 svcpl 0x00617461 - 41a4: 67616c66 strbvs r6, [r1, -r6, ror #24]! - 41a8: 00230200 eoreq r0, r3, r0, lsl #4 - 41ac: 19130104 ldmdbne r3, {r2, r8} - 41b0: 000a5513 andeq r5, sl, r3, lsl r5 - 41b4: 63610100 cmnvs r1, #0 ; 0x0 - 41b8: 74616c5f strbtvc r6, [r1], #-3167 - 41bc: 74735f65 ldrbtvc r5, [r3], #-3941 - 41c0: 5f747261 svcpl 0x00747261 - 41c4: 67616c66 strbvs r6, [r1, -r6, ror #24]! - 41c8: 00230200 eoreq r0, r3, r0, lsl #4 - 41cc: 19120104 ldmdbne r2, {r2, r8} - 41d0: 000a5513 andeq r5, sl, r3, lsl r5 - 41d4: 63610100 cmnvs r1, #0 ; 0x0 - 41d8: 7478655f ldrbtvc r6, [r8], #-1375 - 41dc: 6d69745f cfstrdvs mvd7, [r9, #-380]! - 41e0: 74756f65 ldrbtvc r6, [r5], #-3941 - 41e4: 616c665f cmnvs ip, pc, asr r6 - 41e8: 23020067 movwcs r0, #8295 ; 0x2067 - 41ec: 11010400 tstne r1, r0, lsl #8 - 41f0: 0a551319 beq 1548e5c - 41f4: 61010000 tstvs r1, r0 - 41f8: 78655f63 stmdavc r5!, {r0, r1, r5, r6, r8, r9, sl, fp, ip, lr}^ - 41fc: 6e705f74 mrcvs 15, 3, r5, cr0, cr4, {3} - 4200: 69745f64 ldmdbvs r4!, {r2, r5, r6, r8, r9, sl, fp, ip, lr}^ - 4204: 756f656d strbvc r6, [pc, #-1389]! ; 3c9f - 4208: 6c665f74 stclvs 15, cr5, [r6], #-464 - 420c: 02006761 andeq r6, r0, #25427968 ; 0x1840000 - 4210: 01040023 tsteq r4, r3, lsr #32 - 4214: 55131910 ldrpl r1, [r3, #-2320] - 4218: 0100000a tsteq r0, sl - 421c: 705f6361 subsvc r6, pc, r1, ror #6 - 4220: 755f6c6c ldrbvc r6, [pc, #-3180] ; 35bc - 4224: 636f6c6e cmnvs pc, #28160 ; 0x6e00 - 4228: 6c665f6b stclvs 15, cr5, [r6], #-428 - 422c: 02006761 andeq r6, r0, #25427968 ; 0x1840000 - 4230: 01040023 tsteq r4, r3, lsr #32 - 4234: 5513190f ldrpl r1, [r3, #-2319] - 4238: 0100000a tsteq r0, sl - 423c: 655f6361 ldrbvs r6, [pc, #-865] ; 3ee3 - 4240: 72657478 rsbvc r7, r5, #2013265920 ; 0x78000000 - 4244: 5f6c616e svcpl 0x006c616e - 4248: 726f6261 rsbvc r6, pc, #268435462 ; 0x10000006 - 424c: 6c665f74 stclvs 15, cr5, [r6], #-464 - 4250: 02006761 andeq r6, r0, #25427968 ; 0x1840000 - 4254: 01040023 tsteq r4, r3, lsr #32 - 4258: 5513190e ldrpl r1, [r3, #-2318] - 425c: 0100000a tsteq r0, sl - 4260: 6e5f6361 cdpvs 3, 5, cr6, cr15, cr1, {3} - 4264: 635f746f cmpvs pc, #1862270976 ; 0x6f000000 - 4268: 6c706d6f ldclvs 13, cr6, [r0], #-444 - 426c: 64657465 strbtvs r7, [r5], #-1125 - 4270: 616c665f cmnvs ip, pc, asr r6 - 4274: 23020067 movwcs r0, #8295 ; 0x2067 - 4278: 0d010400 cfstrseq mvf0, [r1] - 427c: 0a551319 beq 1548ee8 - 4280: 61010000 tstvs r1, r0 - 4284: 6d645f63 stclvs 15, cr5, [r4, #-396]! - 4288: 75625f61 strbvc r5, [r2, #-3937]! - 428c: 72655f73 rsbvc r5, r5, #460 ; 0x1cc - 4290: 5f726f72 svcpl 0x00726f72 - 4294: 67616c66 strbvs r6, [r1, -r6, ror #24]! - 4298: 00230200 eoreq r0, r3, r0, lsl #4 - 429c: 190c0104 stmdbne ip, {r2, r8} - 42a0: 000a5513 andeq r5, sl, r3, lsl r5 - 42a4: 69660100 stmdbvs r6!, {r8}^ - 42a8: 7265746c rsbvc r7, r5, #1811939328 ; 0x6c000000 - 42ac: 6961665f stmdbvs r1!, {r0, r1, r2, r3, r4, r6, r9, sl, sp, lr}^ - 42b0: 5f64656c svcpl 0x0064656c - 42b4: 67616c66 strbvs r6, [r1, -r6, ror #24]! - 42b8: 00230200 eoreq r0, r3, r0, lsl #4 - 42bc: 190b0104 stmdbne fp, {r2, r8} - 42c0: 000a5513 andeq r5, sl, r3, lsl r5 - 42c4: 6f6e0100 svcvs 0x006e0100 - 42c8: 73755f74 cmnvc r5, #464 ; 0x1d0 - 42cc: 665f6465 ldrbvs r6, [pc], -r5, ror #8 - 42d0: 02003130 andeq r3, r0, #12 ; 0xc - 42d4: 01040023 tsteq r4, r3, lsr #32 - 42d8: 5513190a ldrpl r1, [r3, #-2314] - 42dc: 0100000a tsteq r0, sl - 42e0: 5f746f6e svcpl 0x00746f6e - 42e4: 64657375 strbtvs r7, [r5], #-885 - 42e8: 3230665f eorscc r6, r0, #99614720 ; 0x5f00000 - 42ec: 00230200 eoreq r0, r3, r0, lsl #4 - 42f0: 19090104 stmdbne r9, {r2, r8} - 42f4: 000a5513 andeq r5, sl, r3, lsl r5 - 42f8: 6f6e0100 svcvs 0x006e0100 - 42fc: 73755f74 cmnvc r5, #464 ; 0x1d0 - 4300: 665f6465 ldrbvs r6, [pc], -r5, ror #8 - 4304: 02003330 andeq r3, r0, #-1073741824 ; 0xc0000000 - 4308: 01040023 tsteq r4, r3, lsr #32 - 430c: 55131908 ldrpl r1, [r3, #-2312] - 4310: 0100000a tsteq r0, sl - 4314: 5f746f6e svcpl 0x00746f6e - 4318: 64657375 strbtvs r7, [r5], #-885 - 431c: 3430665f ldrtcc r6, [r0], #-1631 - 4320: 00230200 eoreq r0, r3, r0, lsl #4 - 4324: 19070104 stmdbne r7, {r2, r8} - 4328: 000a5513 andeq r5, sl, r3, lsl r5 - 432c: 6f6e0100 svcvs 0x006e0100 - 4330: 73755f74 cmnvc r5, #464 ; 0x1d0 - 4334: 665f6465 ldrbvs r6, [pc], -r5, ror #8 - 4338: 02003530 andeq r3, r0, #201326592 ; 0xc000000 - 433c: 01040023 tsteq r4, r3, lsr #32 - 4340: 55131906 ldrpl r1, [r3, #-2310] - 4344: 0100000a tsteq r0, sl - 4348: 5f746f6e svcpl 0x00746f6e - 434c: 64657375 strbtvs r7, [r5], #-885 - 4350: 3630665f undefined - 4354: 00230200 eoreq r0, r3, r0, lsl #4 - 4358: 19050104 stmdbne r5, {r2, r8} - 435c: 000a5513 andeq r5, sl, r3, lsl r5 - 4360: 6f6e0100 svcvs 0x006e0100 - 4364: 73755f74 cmnvc r5, #464 ; 0x1d0 - 4368: 665f6465 ldrbvs r6, [pc], -r5, ror #8 - 436c: 02003730 andeq r3, r0, #12582912 ; 0xc00000 - 4370: 01040023 tsteq r4, r3, lsr #32 - 4374: 55131904 ldrpl r1, [r3, #-2308] - 4378: 0100000a tsteq r0, sl - 437c: 5f746f6e svcpl 0x00746f6e - 4380: 64657375 strbtvs r7, [r5], #-885 - 4384: 3830665f ldmdacc r0!, {r0, r1, r2, r3, r4, r6, r9, sl, sp, lr} - 4388: 00230200 eoreq r0, r3, r0, lsl #4 - 438c: 19030104 stmdbne r3, {r2, r8} - 4390: 000a5513 andeq r5, sl, r3, lsl r5 - 4394: 6f6e0100 svcvs 0x006e0100 - 4398: 73755f74 cmnvc r5, #464 ; 0x1d0 - 439c: 665f6465 ldrbvs r6, [pc], -r5, ror #8 - 43a0: 02003930 andeq r3, r0, #786432 ; 0xc0000 - 43a4: 01040023 tsteq r4, r3, lsr #32 - 43a8: 55131902 ldrpl r1, [r3, #-2306] - 43ac: 0100000a tsteq r0, sl - 43b0: 5f746f6e svcpl 0x00746f6e - 43b4: 64657375 strbtvs r7, [r5], #-885 - 43b8: 3031665f eorscc r6, r1, pc, asr r6 - 43bc: 00230200 eoreq r0, r3, r0, lsl #4 - 43c0: 19010104 stmdbne r1, {r2, r8} - 43c4: 000a5513 andeq r5, sl, r3, lsl r5 - 43c8: 6f6e0100 svcvs 0x006e0100 - 43cc: 73755f74 cmnvc r5, #464 ; 0x1d0 - 43d0: 665f6465 ldrbvs r6, [pc], -r5, ror #8 - 43d4: 02003131 andeq r3, r0, #1073741836 ; 0x4000000c - 43d8: 01040023 tsteq r4, r3, lsr #32 - 43dc: 4e1a0000 wxormi wr0, wr10, wr0 - 43e0: 73000008 movwvc r0, #8 ; 0x8 - 43e4: 5f63616d svcpl 0x0063616d - 43e8: 5f756470 svcpl 0x00756470 - 43ec: 00676174 rsbeq r6, r7, r4, ror r1 - 43f0: e7151b03 ldr r1, [r5, -r3, lsl #22] - 43f4: 65720107 ldrbvs r0, [r2, #-263]! - 43f8: 76726573 undefined - 43fc: 02006465 andeq r6, r0, #1694498816 ; 0x65000000 - 4400: 151b0023 ldrne r0, [fp, #-35] - 4404: 750107da strvc r0, [r1, #-2010] - 4408: 74614438 strbtvc r4, [r1], #-1080 - 440c: 23020061 movwcs r0, #8289 ; 0x2061 - 4410: 911a0002 tstls sl, r2 - 4414: 6d000008 stcvs 0, cr0, [r0, #-32] - 4418: 735f6773 cmpvc pc, #30146560 ; 0x1cc0000 - 441c: 75746174 ldrbvc r6, [r4, #-372]! - 4420: 61745f73 cmnvs r4, r3, ror pc - 4424: 19010067 stmdbne r1, {r0, r1, r2, r5, r6} - 4428: 000a1513 andeq r1, sl, r3, lsl r5 - 442c: 736d0100 cmnvc sp, #0 ; 0x0 - 4430: 79745f67 ldmdbvc r4!, {r0, r1, r2, r5, r6, r8, r9, sl, fp, ip, lr}^ - 4434: 02006570 andeq r6, r0, #469762048 ; 0x1c000000 - 4438: 03010023 movweq r0, #4131 ; 0x1023 - 443c: 28131905 ldmdacs r3, {r0, r2, r8, fp, ip} - 4440: 0100000a tsteq r0, sl - 4444: 5f67736d svcpl 0x0067736d - 4448: 74617473 strbtvc r7, [r1], #-1139 - 444c: 23020065 movwcs r0, #8293 ; 0x2065 - 4450: 00050100 andeq r0, r5, r0, lsl #2 - 4454: 08f81a00 ldmeq r8!, {r9, fp, ip}^ - 4458: 656d0000 strbvs r0, [sp]! - 445c: 67617373 undefined - 4460: 61745f65 cmnvs r4, r5, ror #30 - 4464: 1b100067 blne 404608 - 4468: 000aa113 andeq sl, sl, r3, lsl r1 - 446c: 38750100 ldmdacc r5!, {r8}^ - 4470: 74617453 strbtvc r7, [r1], #-1107 - 4474: 02007375 andeq r7, r0, #-738197503 ; 0xd4000001 - 4478: 151b0023 ldrne r0, [fp, #-35] - 447c: 700101d5 ldrdvc r0, [r1], -r5 - 4480: 75423875 strbvc r3, [r2, #-2165] - 4484: 72656666 rsbvc r6, r5, #106954752 ; 0x6600000 - 4488: 04230200 strteq r0, [r3], #-512 - 448c: 0a28131b beq a09100 - 4490: 75010000 strvc r0, [r1] - 4494: 66754238 undefined - 4498: 657a6953 ldrbvs r6, [sl, #-2387]! - 449c: 08230200 stmdaeq r3!, {r9} - 44a0: 0a65131b beq 1949114 - 44a4: 63010000 movwvs r0, #4096 ; 0x1000 - 44a8: 74614462 strbtvc r4, [r1], #-1122 - 44ac: 646e4961 strbtvs r4, [lr], #-2401 - 44b0: 74616369 strbtvc r6, [r1], #-873 - 44b4: 006e6f69 rsbeq r6, lr, r9, ror #30 - 44b8: 000c2302 andeq r2, ip, r2, lsl #6 - 44bc: 0009291c andeq r2, r9, ip, lsl r9 - 44c0: 6e766500 cdpvs 5, 7, cr6, cr6, cr0, {0} - 44c4: 6c665f74 stclvs 15, cr5, [r6], #-464 - 44c8: 5f736761 svcpl 0x00736761 - 44cc: 00676174 rsbeq r6, r7, r4, ror r1 - 44d0: d2151b04 andsle r1, r5, #4096 ; 0x1000 - 44d4: 69420108 stmdbvs r2, {r3, r8}^ - 44d8: 02007374 andeq r7, r0, #-805306367 ; 0xd0000001 - 44dc: 131b0023 tstne fp, #35 ; 0x23 - 44e0: 00000a55 andeq r0, r0, r5, asr sl - 44e4: 67655201 strbvs r5, [r5, -r1, lsl #4]! - 44e8: 00230200 eoreq r0, r3, r0, lsl #4 - 44ec: 098a1c00 stmibeq sl, {sl, fp, ip} - 44f0: 6e610000 cdpvs 0, 6, cr0, cr1, cr0, {0} - 44f4: 736d5f79 cmnvc sp, #484 ; 0x1e4 - 44f8: 735f6773 cmpvc pc, #30146560 ; 0x1cc0000 - 44fc: 65746174 ldrbvs r6, [r4, #-372]! - 4500: 6761745f undefined - 4504: 131b0100 tstne fp, #0 ; 0x0 - 4508: 000009b7 strheq r0, [r0], -r7 - 450c: 00787401 rsbseq r7, r8, r1, lsl #8 - 4510: 1b002302 blne d120 - 4514: 0009ce13 andeq ip, r9, r3, lsl lr - 4518: 78720100 ldmdavc r2!, {r8}^ - 451c: 00230200 eoreq r0, r3, r0, lsl #4 - 4520: 09e7131b stmibeq r7!, {r0, r1, r3, r4, r8, r9, ip}^ - 4524: 65010000 strvs r0, [r1] - 4528: 23020064 movwcs r0, #8292 ; 0x2064 - 452c: fe131b00 cdp2 11, 1, cr1, cr3, cr0, {0} - 4530: 01000009 tsteq r0, r9 - 4534: 02006f74 andeq r6, r0, #464 ; 0x1d0 - 4538: 131b0023 tstne fp, #35 ; 0x23 - 453c: 00000a28 andeq r0, r0, r8, lsr #20 - 4540: 796e6101 stmdbvc lr!, {r0, r8, sp, lr}^ - 4544: 7079745f rsbsvc r7, r9, pc, asr r4 - 4548: 23020065 movwcs r0, #8293 ; 0x2065 - 454c: 461d0000 ldrmi r0, [sp], -r0 - 4550: 52636e75 rsbpl r6, r3, #1872 ; 0x750 - 4554: 72757465 rsbsvc r7, r5, #1694498816 ; 0x65000000 - 4558: 00745f6e rsbseq r5, r4, lr, ror #30 - 455c: 002af610 eoreq pc, sl, r0, lsl r6 - 4560: 03500800 cmpeq r0, #0 ; 0x0 - 4564: 6168631d cmnvs r8, sp, lsl r3 - 4568: 6c656e6e stclvs 14, cr6, [r5], #-440 - 456c: 6d756e5f ldclvs 14, cr6, [r5, #-380]! - 4570: 1000745f andne r7, r0, pc, asr r4 - 4574: 00005bde ldrdeq r5, [r0], -lr - 4578: 1d036508 cfstr32ne mvfx6, [r3, #-32] - 457c: 5f67736d svcpl 0x0067736d - 4580: 735f7874 cmpvc pc, #7602176 ; 0x740000 - 4584: 65746174 ldrbvs r6, [r4, #-372]! - 4588: 1500745f strne r7, [r0, #-1119] - 458c: ac0902b0 sfmge f0, 4, [r9], {176} - 4590: 6d1d0201 lfmvs f0, 4, [sp, #-4] - 4594: 725f6773 subsvc r6, pc, #30146560 ; 0x1cc0000 - 4598: 74735f78 ldrbtvc r5, [r3], #-3960 - 459c: 5f657461 svcpl 0x00657461 - 45a0: d7100074 undefined - 45a4: 0900004b stmdbeq r0, {r0, r1, r3, r6} - 45a8: 1d0201ba stfnes f0, [r2, #-744] - 45ac: 5f67736d svcpl 0x0067736d - 45b0: 735f6465 cmpvc pc, #1694498816 ; 0x65000000 - 45b4: 65746174 ldrbvs r6, [r4, #-372]! - 45b8: 1500745f strne r7, [r0, #-1119] - 45bc: c50904a3 strgt r0, [r9, #-1187] - 45c0: 6d1d0201 lfmvs f0, 4, [sp, #-4] - 45c4: 745f6773 ldrbvc r6, [pc], #1907 ; 45cc - 45c8: 74735f6f ldrbtvc r5, [r3], #-3951 - 45cc: 5f657461 svcpl 0x00657461 - 45d0: da150074 ble 5447a8 - 45d4: 01d00905 bicseq r0, r0, r5, lsl #18 - 45d8: 736d1d02 cmnvc sp, #128 ; 0x80 - 45dc: 79745f67 ldmdbvc r4!, {r0, r1, r2, r5, r6, r8, r9, sl, fp, ip, lr}^ - 45e0: 745f6570 ldrbvc r6, [pc], #1392 ; 45e8 - 45e4: 07911500 ldreq r1, [r1, r0, lsl #10] - 45e8: 0301d909 movweq sp, #6409 ; 0x1909 - 45ec: 6e69751d mcrvs 5, 3, r7, cr9, cr13, {0} - 45f0: 745f3874 ldrbvc r3, [pc], #2164 ; 45f8 - 45f4: 01c41500 biceq r1, r4, r0, lsl #10 - 45f8: 1d191a01 fldsne s2, [r9, #-4] - 45fc: 6c6f6f62 stclvs 15, cr6, [pc], #-392 - 4600: 1500745f strne r7, [r0, #-1119] - 4604: 2c0114a8 cfstrscs mvf1, [r1], {168} - 4608: 69751d13 ldmdbvs r5!, {r0, r1, r4, r8, sl, fp, ip}^ - 460c: 3631746e ldrtcc r7, [r1], -lr, ror #8 - 4610: 1500745f strne r7, [r0, #-1119] - 4614: 1c010298 sfmne f0, 4, [r1], {152} - 4618: 69751d19 ldmdbvs r5!, {r0, r3, r4, r8, sl, fp, ip}^ - 461c: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 - 4620: 1500745f strne r7, [r0, #-1119] - 4624: 1e0101e9 adfnedz f0, f1, #1.0 - 4628: 61631d19 cmnvs r3, r9, lsl sp - 462c: 61626c6c cmnvs r2, ip, ror #24 - 4630: 745f6b63 ldrbvc r6, [pc], #2915 ; 4638 - 4634: 01e31500 mvneq r1, r0, lsl #10 - 4638: 1d0f1608 stcne 6, cr1, [pc, #-32] - 463c: 61635376 smcvs 13622 - 4640: 6c61436e stclvs 3, cr4, [r1], #-440 - 4644: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 - 4648: 00745f6b rsbseq r5, r4, fp, ror #30 - 464c: 0802aa15 stmdaeq r2, {r0, r2, r4, r9, fp, sp, pc} - 4650: 731d0f17 tstvc sp, #92 ; 0x5c - 4654: 5f63616d svcpl 0x0063616d - 4658: 5f756470 svcpl 0x00756470 - 465c: 9a150074 bls 544834 - 4660: 01960910 orrseq r0, r6, r0, lsl r9 - 4664: 736d1d03 cmnvc sp, #192 ; 0xc0 - 4668: 74735f67 ldrbtvc r5, [r3], #-3943 - 466c: 73757461 cmnvc r5, #1627389952 ; 0x61000000 - 4670: 1500745f strne r7, [r0, #-1119] - 4674: df0910ce svcle 0x000910ce - 4678: 6d1d0301 ldcvs 3, cr0, [sp, #-4] - 467c: 61737365 cmnvs r3, r5, ror #6 - 4680: 745f6567 ldrbvc r6, [pc], #1383 ; 4688 - 4684: 11911500 orrsne r1, r1, r0, lsl #10 - 4688: 03028309 movweq r8, #8969 ; 0x2309 - 468c: 6e76651d mrcvs 5, 3, r6, cr6, cr13, {0} - 4690: 6c665f74 stclvs 15, cr5, [r6], #-464 - 4694: 5f736761 svcpl 0x00736761 - 4698: f8150074 undefined instruction 0xf8150074 - 469c: 01910911 orrseq r0, r1, r1, lsl r9 - 46a0: 6e611d02 cdpvs 13, 6, cr1, cr1, cr2, {0} - 46a4: 736d5f79 cmnvc sp, #484 ; 0x1e4 - 46a8: 735f6773 cmpvc pc, #30146560 ; 0x1cc0000 - 46ac: 65746174 ldrbvs r6, [r4, #-372]! - 46b0: 1500745f strne r7, [r0, #-1119] - 46b4: e80912a9 stmda r9, {r0, r3, r5, r7, r9, ip} - 46b8: 00000201 andeq r0, r0, r1, lsl #4 - 46bc: 00000264 andeq r0, r0, r4, ror #4 - 46c0: 05000003 streq r0, [r0, #-3] - 46c4: 01040000 tsteq r4, r0 - 46c8: 445c3a43 ldrbmi r3, [ip], #-2627 - 46cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 46d0: 73746e65 cmnvc r4, #1616 ; 0x650 - 46d4: 646e6120 strbtvs r6, [lr], #-288 - 46d8: 74655320 strbtvc r5, [r5], #-800 - 46dc: 676e6974 undefined - 46e0: 616d5c73 smcvs 54723 - 46e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 46e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 46ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 46f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 46f4: 775c7374 undefined - 46f8: 6f632d73 svcvs 0x00632d73 - 46fc: 6f72746e svcvs 0x0072746e - 4700: 65575c6c ldrbvs r5, [r7, #-3180] - 4704: 65687461 strbvs r7, [r8, #-1121]! - 4708: 74532072 ldrbvc r2, [r3], #-114 - 470c: 6f697461 svcvs 0x00697461 - 4710: 6f43206e svcvs 0x0043206e - 4714: 6f72746e svcvs 0x0072746e - 4718: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 471c: 414d535c cmpmi sp, ip, asr r3 - 4720: 6f535c43 svcvs 0x00535c43 - 4724: 65637275 strbvs r7, [r3, #-629]! - 4728: 6461525c strbtvs r5, [r1], #-604 - 472c: 614d6f69 cmpvs sp, r9, ror #30 - 4730: 6567616e strbvs r6, [r7, #-366]! - 4734: 746e656d strbtvc r6, [lr], #-1389 - 4738: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 473c: 41205241 teqmi r0, r1, asr #4 - 4740: 2049534e subcs r5, r9, lr, asr #6 - 4744: 2b432f43 blcs 10d0458 - 4748: 6f43202b svcvs 0x0043202b - 474c: 6c69706d stclvs 0, cr7, [r9], #-436 - 4750: 56207265 strtpl r7, [r0], -r5, ror #4 - 4754: 30332e35 eorscc r2, r3, r5, lsr lr - 4758: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 475c: 35393231 ldrcc r3, [r9, #-561]! - 4760: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 4764: 43494b20 movtmi r4, #39712 ; 0x9b20 - 4768: 4154534b cmpmi r4, fp, asr #6 - 476c: 66205452 undefined - 4770: 4120726f teqmi r0, pc, ror #4 - 4774: 01004d52 tsteq r0, r2, asr sp - 4778: 000028c4 andeq r2, r0, r4, asr #17 - 477c: 0000010c andeq r0, r0, ip, lsl #2 - 4780: 61635304 cmnvs r3, r4, lsl #6 - 4784: 736d5f6e cmnvc sp, #440 ; 0x1b8 - 4788: 7a100067 bvc 40492c - 478c: 0b000046 bleq 48ac - 4790: 05010b6c streq r0, [r1, #-2924] - 4794: 40537003 subsmi r7, r3, r3 - 4798: 63610400 cmnvs r1, #0 ; 0x0 - 479c: 786f426b stmdavc pc!, {r0, r1, r3, r5, r6, r9, lr}^ - 47a0: 3fe61000 svccc 0x00e61000 - 47a4: 6a0b0000 bvs 2c47ac - 47a8: 0305010a movweq r0, #20746 ; 0x510a - 47ac: 004053c8 subeq r5, r0, r8, asr #7 - 47b0: 63536204 cmpvs r3, #1073741824 ; 0x40000000 - 47b4: 65526e61 ldrbvs r6, [r2, #-3681] - 47b8: 616c4671 smcvs 50273 - 47bc: fb100067 blx 404962 - 47c0: 0b000045 bleq 48dc - 47c4: 05010871 streq r0, [r1, #-2161] - 47c8: 40536b03 subsmi r6, r3, r3, lsl #22 - 47cc: 75630400 strbvc r0, [r3, #-1024]! - 47d0: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} - 47d4: 736d5f74 cmnvc sp, #464 ; 0x1d0 - 47d8: ec100067 ldc 0, cr0, [r0], {103} - 47dc: 0b000045 bleq 48f8 - 47e0: 05001045 streq r1, [r0, #-69] - 47e4: 40536903 subsmi r6, r3, r3, lsl #18 - 47e8: 61640400 cmnvs r4, r0, lsl #8 - 47ec: 63536174 cmpvs r3, #29 ; 0x1d - 47f0: 10006e61 andne r6, r0, r1, ror #28 - 47f4: 00003f9e muleq r0, lr, pc - 47f8: 0109700b tsteq r9, fp - 47fc: 53c40305 bicpl r0, r4, #335544320 ; 0x14000000 - 4800: 67040040 strvs r0, [r4, -r0, asr #32] - 4804: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 4808: 6e76456f cdpvs 5, 7, cr4, cr6, cr15, {3} - 480c: 616c4674 smcvs 50276 - 4810: 10007367 andne r7, r0, r7, ror #6 - 4814: 0000468c andeq r4, r0, ip, lsl #13 - 4818: 010e660b tsteq lr, fp, lsl #12 - 481c: 53b80305 undefined instruction 0x53b80305 - 4820: 6d040040 stcvs 0, cr0, [r4, #-256] - 4824: 636c7043 cmnvs ip, #67 ; 0x43 - 4828: 6f5f6b6c svcvs 0x005f6b6c - 482c: 65736666 ldrbvs r6, [r3, #-1638]! - 4830: 19100074 ldmdbne r0, {r2, r4, r5, r6} - 4834: 0b000046 bleq 4954 - 4838: 0500114b streq r1, [r0, #-331] - 483c: 4053b403 subsmi fp, r3, r3, lsl #8 - 4840: 526d0400 rsbpl r0, sp, #0 ; 0x0 - 4844: 69727465 ldmdbvs r2!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 4848: 745f7365 ldrbvc r7, [pc], #869 ; 4850 - 484c: 656d6d69 strbvs r6, [sp, #-3433]! - 4850: ec100072 ldc 0, cr0, [r0], {114} - 4854: 0b000045 bleq 4970 - 4858: 05001042 streq r1, [r0, #-66] - 485c: 40536803 subsmi r6, r3, r3, lsl #16 - 4860: 616d0400 cmnvs sp, r0, lsl #8 - 4864: 7373654d cmnvc r3, #322961408 ; 0x13400000 - 4868: 54656761 strbtpl r6, [r5], #-1889 - 486c: d910004f ldmdble r0, {r0, r1, r2, r3, r6} - 4870: 0b00003f bleq 4974 - 4874: 05001148 streq r1, [r0, #-328] - 4878: 4053a403 subsmi sl, r3, r3, lsl #8 - 487c: 616d0400 cmnvs sp, r0, lsl #8 - 4880: 7373654d cmnvc r3, #322961408 ; 0x13400000 - 4884: 5f656761 svcpl 0x00656761 - 4888: 75657551 strbvc r7, [r5, #-1361]! - 488c: 3fc31000 svccc 0x00c31000 - 4890: 470b0000 strmi r0, [fp, -r0] - 4894: 03050013 movweq r0, #20499 ; 0x5013 - 4898: 00405394 umaaleq r5, r0, r4, r3 - 489c: 78656e04 stmdavc r5!, {r2, r9, sl, fp, sp, lr}^ - 48a0: 736d5f74 cmnvc sp, #464 ; 0x1d0 - 48a4: 6f745f67 svcvs 0x00745f67 - 48a8: 6f74735f svcvs 0x0074735f - 48ac: 10006572 andne r6, r0, r2, ror r5 - 48b0: 000045ec andeq r4, r0, ip, ror #11 - 48b4: 0010460b andseq r4, r0, fp, lsl #12 - 48b8: 536a0305 cmnpl sl, #335544320 ; 0x14000000 - 48bc: 75040040 strvc r0, [r4, #-64] - 48c0: 68433631 stmdavs r3, {r0, r4, r5, r9, sl, ip, sp}^ - 48c4: 546e6e61 strbtpl r6, [lr], #-3681 - 48c8: 6163536f cmnvs r3, pc, ror #6 - 48cc: 0910006e ldmdbeq r0, {r1, r2, r3, r5, r6} - 48d0: 0b000046 bleq 49f0 - 48d4: 05010a6e streq r0, [r1, #-2670] - 48d8: 40539003 subsmi r9, r3, r3 - 48dc: 38750400 ldmdacc r5!, {sl}^ - 48e0: 6e616353 mcrvs 3, 3, r6, cr1, cr3, {2} - 48e4: 506c6156 rsbpl r6, ip, r6, asr r1 - 48e8: 68437265 stmdavs r3, {r0, r2, r5, r6, r9, ip, sp, lr}^ - 48ec: 006e6e61 rsbeq r6, lr, r1, ror #28 - 48f0: 00400910 subeq r0, r0, r0, lsl r9 - 48f4: 096f0b00 stmdbeq pc!, {r8, r9, fp}^ - 48f8: 80030501 andhi r0, r3, r1, lsl #10 - 48fc: 04004053 streq r4, [r0], #-83 - 4900: 61635376 smcvs 13622 - 4904: 7165526e cmnvc r5, lr, ror #4 - 4908: 6c6c6143 stfvse f6, [ip], #-268 - 490c: 6b636142 blvs 18dce1c - 4910: 463b1000 ldrtmi r1, [fp], -r0 - 4914: 6d0b0000 stcvs 0, cr0, [fp] - 4918: 03050111 movweq r0, #20753 ; 0x5111 - 491c: 004053bc strheq r5, [r0], #-60 - 4920: 00000000 andeq r0, r0, r0 - 4924: 000000e0 andeq r0, r0, r0, ror #1 - 4928: 05000003 streq r0, [r0, #-3] - 492c: 01040000 tsteq r4, r0 - 4930: 445c3a43 ldrbmi r3, [ip], #-2627 - 4934: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4938: 73746e65 cmnvc r4, #1616 ; 0x650 - 493c: 646e6120 strbtvs r6, [lr], #-288 - 4940: 74655320 strbtvc r5, [r5], #-800 - 4944: 676e6974 undefined - 4948: 616d5c73 smcvs 54723 - 494c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4950: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4954: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4958: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 495c: 775c7374 undefined - 4960: 6f632d73 svcvs 0x00632d73 - 4964: 6f72746e svcvs 0x0072746e - 4968: 65575c6c ldrbvs r5, [r7, #-3180] - 496c: 65687461 strbvs r7, [r8, #-1121]! - 4970: 74532072 ldrbvc r2, [r3], #-114 - 4974: 6f697461 svcvs 0x00697461 - 4978: 6f43206e svcvs 0x0043206e - 497c: 6f72746e svcvs 0x0072746e - 4980: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4984: 414d535c cmpmi sp, ip, asr r3 - 4988: 6f535c43 svcvs 0x00535c43 - 498c: 65637275 strbvs r7, [r3, #-629]! - 4990: 6461525c strbtvs r5, [r1], #-604 - 4994: 614d6f69 cmpvs sp, r9, ror #30 - 4998: 6567616e strbvs r6, [r7, #-366]! - 499c: 746e656d strbtvc r6, [lr], #-1389 - 49a0: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 49a4: 41205241 teqmi r0, r1, asr #4 - 49a8: 2049534e subcs r5, r9, lr, asr #6 - 49ac: 2b432f43 blcs 10d06c0 - 49b0: 6f43202b svcvs 0x0043202b - 49b4: 6c69706d stclvs 0, cr7, [r9], #-436 - 49b8: 56207265 strtpl r7, [r0], -r5, ror #4 - 49bc: 30332e35 eorscc r2, r3, r5, lsr lr - 49c0: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 49c4: 35393231 ldrcc r3, [r9, #-561]! - 49c8: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 49cc: 43494b20 movtmi r4, #39712 ; 0x9b20 - 49d0: 4154534b cmpmi r4, fp, asr #6 - 49d4: 66205452 undefined - 49d8: 4120726f teqmi r0, pc, ror #4 - 49dc: 01004d52 tsteq r0, r2, asr sp - 49e0: 000028c4 andeq r2, r0, r4, asr #17 - 49e4: 0000010c andeq r0, r0, ip, lsl #2 - 49e8: 50626304 rsbpl r6, r2, r4, lsl #6 - 49ec: 65636f72 strbvs r6, [r3, #-3954]! - 49f0: 734d7373 movtvc r7, #54131 ; 0xd373 - 49f4: 00635f67 rsbeq r5, r3, r7, ror #30 - 49f8: 003cbe10 eorseq fp, ip, r0, lsl lr - 49fc: 19540b00 ldmdbne r4, {r8, r9, fp}^ - 4a00: 04030500 streq r0, [r3], #-1280 - 4a04: 0000403f andeq r4, r0, pc, lsr r0 - 4a08: 00000104 andeq r0, r0, r4, lsl #2 - 4a0c: 05000003 streq r0, [r0, #-3] - 4a10: 01040000 tsteq r4, r0 - 4a14: 445c3a43 ldrbmi r3, [ip], #-2627 - 4a18: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4a1c: 73746e65 cmnvc r4, #1616 ; 0x650 - 4a20: 646e6120 strbtvs r6, [lr], #-288 - 4a24: 74655320 strbtvc r5, [r5], #-800 - 4a28: 676e6974 undefined - 4a2c: 616d5c73 smcvs 54723 - 4a30: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4a34: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4a38: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4a3c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4a40: 775c7374 undefined - 4a44: 6f632d73 svcvs 0x00632d73 - 4a48: 6f72746e svcvs 0x0072746e - 4a4c: 65575c6c ldrbvs r5, [r7, #-3180] - 4a50: 65687461 strbvs r7, [r8, #-1121]! - 4a54: 74532072 ldrbvc r2, [r3], #-114 - 4a58: 6f697461 svcvs 0x00697461 - 4a5c: 6f43206e svcvs 0x0043206e - 4a60: 6f72746e svcvs 0x0072746e - 4a64: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4a68: 414d535c cmpmi sp, ip, asr r3 - 4a6c: 6f535c43 svcvs 0x00535c43 - 4a70: 65637275 strbvs r7, [r3, #-629]! - 4a74: 6461525c strbtvs r5, [r1], #-604 - 4a78: 614d6f69 cmpvs sp, r9, ror #30 - 4a7c: 6567616e strbvs r6, [r7, #-366]! - 4a80: 746e656d strbtvc r6, [lr], #-1389 - 4a84: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 4a88: 41205241 teqmi r0, r1, asr #4 - 4a8c: 2049534e subcs r5, r9, lr, asr #6 - 4a90: 2b432f43 blcs 10d07a4 - 4a94: 6f43202b svcvs 0x0043202b - 4a98: 6c69706d stclvs 0, cr7, [r9], #-436 - 4a9c: 56207265 strtpl r7, [r0], -r5, ror #4 - 4aa0: 30332e35 eorscc r2, r3, r5, lsr lr - 4aa4: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 4aa8: 35393231 ldrcc r3, [r9, #-561]! - 4aac: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 4ab0: 43494b20 movtmi r4, #39712 ; 0x9b20 - 4ab4: 4154534b cmpmi r4, fp, asr #6 - 4ab8: 66205452 undefined - 4abc: 4120726f teqmi r0, pc, ror #4 - 4ac0: 01004d52 tsteq r0, r2, asr sp - 4ac4: 000028c4 andeq r2, r0, r4, asr #17 - 4ac8: 0000010c andeq r0, r0, ip, lsl #2 - 4acc: 52616704 rsbpl r6, r1, #1048576 ; 0x100000 - 4ad0: 6e795346 cdpvs 3, 7, cr5, cr9, cr6, {2} - 4ad4: 444f4356 strbmi r4, [pc], #854 ; 4adc - 4ad8: 5f467669 svcpl 0x00467669 - 4adc: c4100063 ldrgt r0, [r0], #-99 - 4ae0: 0b00003c bleq 4bd8 - 4ae4: 05011030 streq r1, [r1, #-48] - 4ae8: 403c1403 eorsmi r1, ip, r3, lsl #8 - 4aec: 61670400 cmnvs r7, r0, lsl #8 - 4af0: 79534652 ldmdbvc r3, {r1, r4, r6, r9, sl, lr}^ - 4af4: 4f43566e svcmi 0x0043566e - 4af8: 49766944 ldmdbmi r6!, {r2, r6, r8, fp, sp, lr}^ - 4afc: 1000635f andne r6, r0, pc, asr r3 - 4b00: 00003cca andeq r3, r0, sl, asr #25 - 4b04: 010f2f0b tsteq pc, fp, lsl #30 - 4b08: 3c040305 stccc 3, cr0, [r4], {5} - 4b0c: 00000040 andeq r0, r0, r0, asr #32 - 4b10: 000001c0 andeq r0, r0, r0, asr #3 - 4b14: 05000003 streq r0, [r0, #-3] - 4b18: 01040000 tsteq r4, r0 - 4b1c: 445c3a43 ldrbmi r3, [ip], #-2627 - 4b20: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4b24: 73746e65 cmnvc r4, #1616 ; 0x650 - 4b28: 646e6120 strbtvs r6, [lr], #-288 - 4b2c: 74655320 strbtvc r5, [r5], #-800 - 4b30: 676e6974 undefined - 4b34: 616d5c73 smcvs 54723 - 4b38: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4b3c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4b40: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4b44: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4b48: 775c7374 undefined - 4b4c: 6f632d73 svcvs 0x00632d73 - 4b50: 6f72746e svcvs 0x0072746e - 4b54: 65575c6c ldrbvs r5, [r7, #-3180] - 4b58: 65687461 strbvs r7, [r8, #-1121]! - 4b5c: 74532072 ldrbvc r2, [r3], #-114 - 4b60: 6f697461 svcvs 0x00697461 - 4b64: 6f43206e svcvs 0x0043206e - 4b68: 6f72746e svcvs 0x0072746e - 4b6c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4b70: 414d535c cmpmi sp, ip, asr r3 - 4b74: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} - 4b78: 66726574 undefined - 4b7c: 5c656361 stclpl 3, cr6, [r5], #-388 - 4b80: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 4b84: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} - 4b88: 6d656761 stclvs 7, cr6, [r5, #-388]! - 4b8c: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} - 4b90: 41490068 cmpmi r9, r8, rrx - 4b94: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 4b98: 43204953 teqmi r0, #1359872 ; 0x14c000 - 4b9c: 2b2b432f blcs ad5860 - 4ba0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 4ba4: 656c6970 strbvs r6, [ip, #-2416]! - 4ba8: 35562072 ldrbcc r2, [r6, #-114] - 4bac: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 4bb0: 31332e32 teqcc r3, r2, lsr lr - 4bb4: 2f353932 svccs 0x00353932 - 4bb8: 20323357 eorscs r3, r2, r7, asr r3 - 4bbc: 4b43494b blmi 10d70f0 - 4bc0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 4bc4: 6f662054 svcvs 0x00662054 - 4bc8: 52412072 subpl r2, r1, #114 ; 0x72 - 4bcc: c401004d strgt r0, [r1], #-77 - 4bd0: 0c000028 stceq 0, cr0, [r0], {40} - 4bd4: 12000001 andne r0, r0, #1 ; 0x1 - 4bd8: 000001c0 andeq r0, r0, r0, asr #3 - 4bdc: 5f67736d svcpl 0x0067736d - 4be0: 735f7872 cmpvc pc, #7471104 ; 0x720000 - 4be4: 65746174 ldrbvs r6, [r4, #-372]! - 4be8: 6761745f undefined - 4bec: 4d130100 ldfmis f0, [r3] - 4bf0: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 - 4bf4: 51525f58 cmppl r2, r8, asr pc - 4bf8: 00005453 andeq r5, r0, r3, asr r4 - 4bfc: 47534d13 smmlami r3, r3, sp, r4 - 4c00: 5f58525f svcpl 0x0058525f - 4c04: 53534150 cmppl r3, #20 ; 0x14 - 4c08: 545f4445 ldrbpl r4, [pc], #1093 ; 4c10 - 4c0c: 45445f4f strbmi r5, [r4, #-3919] - 4c10: 45434956 strbmi r4, [r3, #-2390] - 4c14: 4d130100 ldfmis f0, [r3] - 4c18: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 - 4c1c: 43415f58 movtmi r5, #8024 ; 0x1f58 - 4c20: 4e4f4954 mcrmi 9, 2, r4, cr15, cr4, {2} - 4c24: 4154535f cmpmi r4, pc, asr r3 - 4c28: 44455452 strbmi r5, [r5], #-1106 - 4c2c: 4d130200 lfmmi f0, 4, [r3] - 4c30: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 - 4c34: 59535f58 ldmdbpl r3, {r3, r4, r6, r8, r9, sl, fp, ip, lr}^ - 4c38: 465f434e ldrbmi r4, [pc], -lr, asr #6 - 4c3c: 444e554f strbmi r5, [lr], #-1359 - 4c40: 4d130300 ldcmi 3, cr0, [r3] - 4c44: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 - 4c48: 49545f58 ldmdbmi r4, {r3, r4, r6, r8, r9, sl, fp, ip, lr}^ - 4c4c: 554f454d strbpl r4, [pc, #-1357] ; 4707 - 4c50: 41465f54 cmpmi r6, r4, asr pc - 4c54: 04004c49 streq r4, [r0], #-3145 - 4c58: 47534d13 smmlami r3, r3, sp, r4 - 4c5c: 5f58525f svcpl 0x0058525f - 4c60: 49544341 ldmdbmi r4, {r0, r6, r8, r9, lr}^ - 4c64: 435f4e4f cmpmi pc, #1264 ; 0x4f0 - 4c68: 4c504d4f mrrcmi 13, 4, r4, r0, cr15 - 4c6c: 5f455445 svcpl 0x00455445 - 4c70: 43435553 movtmi r5, #13651 ; 0x3553 - 4c74: 00535345 subseq r5, r3, r5, asr #6 - 4c78: 534d1305 movtpl r1, #54021 ; 0xd305 - 4c7c: 58525f47 ldmdapl r2, {r0, r1, r2, r6, r8, r9, sl, fp, ip, lr}^ - 4c80: 5443415f strbpl r4, [r3], #-351 - 4c84: 5f4e4f49 svcpl 0x004e4f49 - 4c88: 504d4f43 subpl r4, sp, r3, asr #30 - 4c8c: 4554454c ldrbmi r4, [r4, #-1356] - 4c90: 4941465f stmdbmi r1, {r0, r1, r2, r3, r4, r6, r9, sl, lr}^ - 4c94: 1306004c movwne r0, #24652 ; 0x604c - 4c98: 5f47534d svcpl 0x0047534d - 4c9c: 525f5852 subspl r5, pc, #5373952 ; 0x520000 - 4ca0: 5f545351 svcpl 0x00545351 - 4ca4: 524f4241 subpl r4, pc, #268435460 ; 0x10000004 - 4ca8: 13070054 movwne r0, #28756 ; 0x7054 - 4cac: 5f47534d svcpl 0x0047534d - 4cb0: 415f5852 cmpmi pc, r2, asr r8 - 4cb4: 54524f42 ldrbpl r4, [r2], #-3906 - 4cb8: 08004445 stmdaeq r0, {r0, r2, r6, sl, lr} - 4cbc: 58414d13 stmdapl r1, {r0, r1, r4, r8, sl, fp, lr}^ - 4cc0: 47534d5f undefined - 4cc4: 5f58525f svcpl 0x0058525f - 4cc8: 54415453 strbpl r5, [r1], #-1107 - 4ccc: 00090045 andeq r0, r9, r5, asr #32 - 4cd0: 00000000 andeq r0, r0, r0 - 4cd4: 00000114 andeq r0, r0, r4, lsl r1 - 4cd8: 05000003 streq r0, [r0, #-3] - 4cdc: 06040000 streq r0, [r4], -r0 - 4ce0: 445c3a43 ldrbmi r3, [ip], #-2627 - 4ce4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4ce8: 73746e65 cmnvc r4, #1616 ; 0x650 - 4cec: 646e6120 strbtvs r6, [lr], #-288 - 4cf0: 74655320 strbtvc r5, [r5], #-800 - 4cf4: 676e6974 undefined - 4cf8: 616d5c73 smcvs 54723 - 4cfc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4d00: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4d04: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4d08: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4d0c: 775c7374 undefined - 4d10: 6f632d73 svcvs 0x00632d73 - 4d14: 6f72746e svcvs 0x0072746e - 4d18: 65575c6c ldrbvs r5, [r7, #-3180] - 4d1c: 65687461 strbvs r7, [r8, #-1121]! - 4d20: 74532072 ldrbvc r2, [r3], #-114 - 4d24: 6f697461 svcvs 0x00697461 - 4d28: 6f43206e svcvs 0x0043206e - 4d2c: 6f72746e svcvs 0x0072746e - 4d30: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4d34: 414d535c cmpmi sp, ip, asr r3 - 4d38: 6f535c43 svcvs 0x00535c43 - 4d3c: 65637275 strbvs r7, [r3, #-629]! - 4d40: 6461525c strbtvs r5, [r1], #-604 - 4d44: 614d6f69 cmpvs sp, r9, ror #30 - 4d48: 6567616e strbvs r6, [r7, #-366]! - 4d4c: 746e656d strbtvc r6, [lr], #-1389 - 4d50: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 4d54: 41205241 teqmi r0, r1, asr #4 - 4d58: 2049534e subcs r5, r9, lr, asr #6 - 4d5c: 2b432f43 blcs 10d0a70 - 4d60: 6f43202b svcvs 0x0043202b - 4d64: 6c69706d stclvs 0, cr7, [r9], #-436 - 4d68: 56207265 strtpl r7, [r0], -r5, ror #4 - 4d6c: 30332e35 eorscc r2, r3, r5, lsr lr - 4d70: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 4d74: 35393231 ldrcc r3, [r9, #-561]! - 4d78: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 4d7c: 43494b20 movtmi r4, #39712 ; 0x9b20 - 4d80: 4154534b cmpmi r4, fp, asr #6 - 4d84: 66205452 undefined - 4d88: 4120726f teqmi r0, pc, ror #4 - 4d8c: 01004d52 tsteq r0, r2, asr sp - 4d90: 00402378 subeq r2, r0, r8, ror r3 - 4d94: 0040239a umaaleq r2, r0, sl, r3 - 4d98: 00002d48 andeq r2, r0, r8, asr #26 - 4d9c: 00001988 andeq r1, r0, r8, lsl #19 - 4da0: 003bcf10 eorseq ip, fp, r0, lsl pc - 4da4: 01170a00 tsteq r7, r0, lsl #20 - 4da8: 78650000 stmdavc r5!, {}^ - 4dac: 74756365 ldrbtvc r6, [r5], #-869 - 4db0: 75635f65 strbvc r5, [r3, #-3941]! - 4db4: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} - 4db8: 656d5f74 strbvs r5, [sp, #-3956]! - 4dbc: 67617373 undefined - 4dc0: 61635f65 cmnvs r3, r5, ror #30 - 4dc4: 61626c6c cmnvs r2, ip, ror #24 - 4dc8: 01006b63 tsteq r0, r3, ror #22 - 4dcc: 010601be strheq r0, [r6, -lr] - 4dd0: 00001151 andeq r1, r0, r1, asr r1 - 4dd4: 00402378 subeq r2, r0, r8, ror r3 - 4dd8: 0040239a umaaleq r2, r0, sl, r3 - 4ddc: 00011609 andeq r1, r1, r9, lsl #12 - 4de0: 40238800 eormi r8, r3, r0, lsl #16 - 4de4: 40239400 eormi r9, r3, r0, lsl #8 - 4de8: 00000000 andeq r0, r0, r0 - 4dec: 00000128 andeq r0, r0, r8, lsr #2 - 4df0: 05000003 streq r0, [r0, #-3] - 4df4: 06040000 streq r0, [r4], -r0 - 4df8: 445c3a43 ldrbmi r3, [ip], #-2627 - 4dfc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4e00: 73746e65 cmnvc r4, #1616 ; 0x650 - 4e04: 646e6120 strbtvs r6, [lr], #-288 - 4e08: 74655320 strbtvc r5, [r5], #-800 - 4e0c: 676e6974 undefined - 4e10: 616d5c73 smcvs 54723 - 4e14: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4e18: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4e1c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4e20: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4e24: 775c7374 undefined - 4e28: 6f632d73 svcvs 0x00632d73 - 4e2c: 6f72746e svcvs 0x0072746e - 4e30: 65575c6c ldrbvs r5, [r7, #-3180] - 4e34: 65687461 strbvs r7, [r8, #-1121]! - 4e38: 74532072 ldrbvc r2, [r3], #-114 - 4e3c: 6f697461 svcvs 0x00697461 - 4e40: 6f43206e svcvs 0x0043206e - 4e44: 6f72746e svcvs 0x0072746e - 4e48: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4e4c: 414d535c cmpmi sp, ip, asr r3 - 4e50: 6f535c43 svcvs 0x00535c43 - 4e54: 65637275 strbvs r7, [r3, #-629]! - 4e58: 6461525c strbtvs r5, [r1], #-604 - 4e5c: 614d6f69 cmpvs sp, r9, ror #30 - 4e60: 6567616e strbvs r6, [r7, #-366]! - 4e64: 746e656d strbtvc r6, [lr], #-1389 - 4e68: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 4e6c: 41205241 teqmi r0, r1, asr #4 - 4e70: 2049534e subcs r5, r9, lr, asr #6 - 4e74: 2b432f43 blcs 10d0b88 - 4e78: 6f43202b svcvs 0x0043202b - 4e7c: 6c69706d stclvs 0, cr7, [r9], #-436 - 4e80: 56207265 strtpl r7, [r0], -r5, ror #4 - 4e84: 30332e35 eorscc r2, r3, r5, lsr lr - 4e88: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 4e8c: 35393231 ldrcc r3, [r9, #-561]! - 4e90: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 4e94: 43494b20 movtmi r4, #39712 ; 0x9b20 - 4e98: 4154534b cmpmi r4, fp, asr #6 - 4e9c: 66205452 undefined - 4ea0: 4120726f teqmi r0, pc, ror #4 - 4ea4: 01004d52 tsteq r0, r2, asr sp - 4ea8: 0040239a umaaleq r2, r0, sl, r3 - 4eac: 004023ce subeq r2, r0, lr, asr #7 - 4eb0: 00002e00 andeq r2, r0, r0, lsl #28 - 4eb4: 000019f6 strdeq r1, [r0], -r6 - 4eb8: 003bcf10 eorseq ip, fp, r0, lsl pc - 4ebc: 01280700 teqeq r8, r0, lsl #14 - 4ec0: 61680000 cmnvs r8, r0 - 4ec4: 656c646e strbvs r6, [ip, #-1134]! - 4ec8: 77656e5f undefined - 4ecc: 73656d5f cmnvc r5, #6080 ; 0x17c0 - 4ed0: 65676173 strbvs r6, [r7, #-371]! - 4ed4: 01de0100 bicseq r0, lr, r0, lsl #2 - 4ed8: 4e10010e mufmis f0, f0, #0.5 - 4edc: 7d000045 stcvc 0, cr0, [r0, #-276] - 4ee0: 9a000011 bls 4f2c - 4ee4: ce004023 cdpgt 0, 0, cr4, cr0, cr3, {1} - 4ee8: 08004023 stmdaeq r0, {r0, r1, r5, lr} - 4eec: 0067736d rsbeq r7, r7, sp, ror #6 - 4ef0: 2e01de01 cdpcs 14, 0, cr13, cr1, cr1, {0} - 4ef4: 003cd610 eorseq sp, ip, r0, lsl r6 - 4ef8: 0011c100 andseq ip, r1, r0, lsl #2 - 4efc: 69740800 ldmdbvs r4!, {fp}^ - 4f00: 756f656d strbvc r6, [pc, #-1389]! ; 499b - 4f04: de010074 mcrle 0, 0, r0, cr1, cr4, {3} - 4f08: 19103c01 ldmdbne r0, {r0, sl, fp, ip, sp} - 4f0c: f3000046 vhadd.u8 q0, q0, q3 - 4f10: 00000011 andeq r0, r0, r1, lsl r0 - 4f14: 00000000 andeq r0, r0, r0 - 4f18: 00000104 andeq r0, r0, r4, lsl #2 - 4f1c: 05000003 streq r0, [r0, #-3] - 4f20: 06040000 streq r0, [r4], -r0 - 4f24: 445c3a43 ldrbmi r3, [ip], #-2627 - 4f28: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4f2c: 73746e65 cmnvc r4, #1616 ; 0x650 - 4f30: 646e6120 strbtvs r6, [lr], #-288 - 4f34: 74655320 strbtvc r5, [r5], #-800 - 4f38: 676e6974 undefined - 4f3c: 616d5c73 smcvs 54723 - 4f40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4f44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4f48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4f4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4f50: 775c7374 undefined - 4f54: 6f632d73 svcvs 0x00632d73 - 4f58: 6f72746e svcvs 0x0072746e - 4f5c: 65575c6c ldrbvs r5, [r7, #-3180] - 4f60: 65687461 strbvs r7, [r8, #-1121]! - 4f64: 74532072 ldrbvc r2, [r3], #-114 - 4f68: 6f697461 svcvs 0x00697461 - 4f6c: 6f43206e svcvs 0x0043206e - 4f70: 6f72746e svcvs 0x0072746e - 4f74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4f78: 414d535c cmpmi sp, ip, asr r3 - 4f7c: 6f535c43 svcvs 0x00535c43 - 4f80: 65637275 strbvs r7, [r3, #-629]! - 4f84: 6461525c strbtvs r5, [r1], #-604 - 4f88: 614d6f69 cmpvs sp, r9, ror #30 - 4f8c: 6567616e strbvs r6, [r7, #-366]! - 4f90: 746e656d strbtvc r6, [lr], #-1389 - 4f94: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 4f98: 41205241 teqmi r0, r1, asr #4 - 4f9c: 2049534e subcs r5, r9, lr, asr #6 - 4fa0: 2b432f43 blcs 10d0cb4 - 4fa4: 6f43202b svcvs 0x0043202b - 4fa8: 6c69706d stclvs 0, cr7, [r9], #-436 - 4fac: 56207265 strtpl r7, [r0], -r5, ror #4 - 4fb0: 30332e35 eorscc r2, r3, r5, lsr lr - 4fb4: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 4fb8: 35393231 ldrcc r3, [r9, #-561]! - 4fbc: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 4fc0: 43494b20 movtmi r4, #39712 ; 0x9b20 - 4fc4: 4154534b cmpmi r4, fp, asr #6 - 4fc8: 66205452 undefined - 4fcc: 4120726f teqmi r0, pc, ror #4 - 4fd0: 01004d52 tsteq r0, r2, asr sp - 4fd4: 004023ce subeq r2, r0, lr, asr #7 - 4fd8: 004023f2 strdeq r2, [r0], #-50 - 4fdc: 00002eb8 strheq r2, [r0], -r8 - 4fe0: 00001a5b andeq r1, r0, fp, asr sl - 4fe4: 003bcf10 eorseq ip, fp, r0, lsl pc - 4fe8: 01050700 tsteq r5, r0, lsl #14 - 4fec: 65720000 ldrbvs r0, [r2]! - 4ff0: 7361656c cmnvc r1, #452984832 ; 0x1b000000 - 4ff4: 75635f65 strbvc r5, [r3, #-3941]! - 4ff8: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} - 4ffc: 656d5f74 strbvs r5, [sp, #-3956]! - 5000: 67617373 undefined - 5004: f2010065 vhadd.s8 q0, , - 5008: 10010e01 andne r0, r1, r1, lsl #28 - 500c: 0000454e andeq r4, r0, lr, asr #10 - 5010: 00001225 andeq r1, r0, r5, lsr #4 - 5014: 004023ce subeq r2, r0, lr, asr #7 - 5018: 004023f2 strdeq r2, [r0], #-50 - 501c: 00000000 andeq r0, r0, r0 - 5020: 00000118 andeq r0, r0, r8, lsl r1 - 5024: 05000003 streq r0, [r0, #-3] - 5028: 06040000 streq r0, [r4], -r0 - 502c: 445c3a43 ldrbmi r3, [ip], #-2627 - 5030: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5034: 73746e65 cmnvc r4, #1616 ; 0x650 - 5038: 646e6120 strbtvs r6, [lr], #-288 - 503c: 74655320 strbtvc r5, [r5], #-800 - 5040: 676e6974 undefined - 5044: 616d5c73 smcvs 54723 - 5048: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 504c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5050: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5054: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5058: 775c7374 undefined - 505c: 6f632d73 svcvs 0x00632d73 - 5060: 6f72746e svcvs 0x0072746e - 5064: 65575c6c ldrbvs r5, [r7, #-3180] - 5068: 65687461 strbvs r7, [r8, #-1121]! - 506c: 74532072 ldrbvc r2, [r3], #-114 - 5070: 6f697461 svcvs 0x00697461 - 5074: 6f43206e svcvs 0x0043206e - 5078: 6f72746e svcvs 0x0072746e - 507c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5080: 414d535c cmpmi sp, ip, asr r3 - 5084: 6f535c43 svcvs 0x00535c43 - 5088: 65637275 strbvs r7, [r3, #-629]! - 508c: 6461525c strbtvs r5, [r1], #-604 - 5090: 614d6f69 cmpvs sp, r9, ror #30 - 5094: 6567616e strbvs r6, [r7, #-366]! - 5098: 746e656d strbtvc r6, [lr], #-1389 - 509c: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 50a0: 41205241 teqmi r0, r1, asr #4 - 50a4: 2049534e subcs r5, r9, lr, asr #6 - 50a8: 2b432f43 blcs 10d0dbc - 50ac: 6f43202b svcvs 0x0043202b - 50b0: 6c69706d stclvs 0, cr7, [r9], #-436 - 50b4: 56207265 strtpl r7, [r0], -r5, ror #4 - 50b8: 30332e35 eorscc r2, r3, r5, lsr lr - 50bc: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 50c0: 35393231 ldrcc r3, [r9, #-561]! - 50c4: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 50c8: 43494b20 movtmi r4, #39712 ; 0x9b20 - 50cc: 4154534b cmpmi r4, fp, asr #6 - 50d0: 66205452 undefined - 50d4: 4120726f teqmi r0, pc, ror #4 - 50d8: 01004d52 tsteq r0, r2, asr sp - 50dc: 004023f4 strdeq r2, [r0], #-52 - 50e0: 00402428 subeq r2, r0, r8, lsr #8 - 50e4: 00002f70 andeq r2, r0, r0, ror pc - 50e8: 00001ab7 strheq r1, [r0], -r7 - 50ec: 003bcf10 eorseq ip, fp, r0, lsl pc - 50f0: 01190700 tsteq r9, r0, lsl #14 - 50f4: 61720000 cmnvs r2, r0 - 50f8: 5f6f6964 svcpl 0x006f6964 - 50fc: 616e616d cmnvs lr, sp, ror #2 - 5100: 5f726567 svcpl 0x00726567 - 5104: 74696e69 strbtvc r6, [r9], #-3689 - 5108: 02850100 addeq r0, r5, #0 ; 0x0 - 510c: 4e10010e mufmis f0, f0, #0.5 - 5110: 39000045 stmdbcc r0, {r0, r2, r6} - 5114: f4000012 vst4.8 {d0-d3}, [r0, :64], r2 - 5118: 28004023 stmdacs r0, {r0, r1, r5, lr} - 511c: 0b004024 bleq 151b4 - 5120: 75657571 strbvc r7, [r5, #-1393]! - 5124: 756f635f strbvc r6, [pc, #-863]! ; 4dcd - 5128: 0100746e tsteq r0, lr, ror #8 - 512c: 100b0286 andne r0, fp, r6, lsl #5 - 5130: 000045ec andeq r4, r0, ip, ror #11 - 5134: 0000124d andeq r1, r0, sp, asr #4 - 5138: 00000000 andeq r0, r0, r0 - 513c: 0000010c andeq r0, r0, ip, lsl #2 - 5140: 05000003 streq r0, [r0, #-3] - 5144: 06040000 streq r0, [r4], -r0 - 5148: 445c3a43 ldrbmi r3, [ip], #-2627 - 514c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5150: 73746e65 cmnvc r4, #1616 ; 0x650 - 5154: 646e6120 strbtvs r6, [lr], #-288 - 5158: 74655320 strbtvc r5, [r5], #-800 - 515c: 676e6974 undefined - 5160: 616d5c73 smcvs 54723 - 5164: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5168: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 516c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5170: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5174: 775c7374 undefined - 5178: 6f632d73 svcvs 0x00632d73 - 517c: 6f72746e svcvs 0x0072746e - 5180: 65575c6c ldrbvs r5, [r7, #-3180] - 5184: 65687461 strbvs r7, [r8, #-1121]! - 5188: 74532072 ldrbvc r2, [r3], #-114 - 518c: 6f697461 svcvs 0x00697461 - 5190: 6f43206e svcvs 0x0043206e - 5194: 6f72746e svcvs 0x0072746e - 5198: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 519c: 414d535c cmpmi sp, ip, asr r3 - 51a0: 6f535c43 svcvs 0x00535c43 - 51a4: 65637275 strbvs r7, [r3, #-629]! - 51a8: 6461525c strbtvs r5, [r1], #-604 - 51ac: 614d6f69 cmpvs sp, r9, ror #30 - 51b0: 6567616e strbvs r6, [r7, #-366]! - 51b4: 746e656d strbtvc r6, [lr], #-1389 - 51b8: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 51bc: 41205241 teqmi r0, r1, asr #4 - 51c0: 2049534e subcs r5, r9, lr, asr #6 - 51c4: 2b432f43 blcs 10d0ed8 - 51c8: 6f43202b svcvs 0x0043202b - 51cc: 6c69706d stclvs 0, cr7, [r9], #-436 - 51d0: 56207265 strtpl r7, [r0], -r5, ror #4 - 51d4: 30332e35 eorscc r2, r3, r5, lsr lr - 51d8: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 51dc: 35393231 ldrcc r3, [r9, #-561]! - 51e0: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 51e4: 43494b20 movtmi r4, #39712 ; 0x9b20 - 51e8: 4154534b cmpmi r4, fp, asr #6 - 51ec: 66205452 undefined - 51f0: 4120726f teqmi r0, pc, ror #4 - 51f4: 01004d52 tsteq r0, r2, asr sp - 51f8: 00402428 subeq r2, r0, r8, lsr #8 - 51fc: 00402460 subeq r2, r0, r0, ror #8 - 5200: 00003050 andeq r3, r0, r0, asr r0 - 5204: 00001b65 andeq r1, r0, r5, ror #22 - 5208: 003bcf10 eorseq ip, fp, r0, lsl pc - 520c: 010d0700 tsteq sp, r0, lsl #14 - 5210: 72700000 rsbsvc r0, r0, #0 ; 0x0 - 5214: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 - 5218: 61725f73 cmnvs r2, r3, ror pc - 521c: 5f6f6964 svcpl 0x006f6964 - 5220: 0067736d rsbeq r7, r7, sp, ror #6 - 5224: 0e029c01 cdpeq 12, 0, cr9, cr2, cr1, {0} - 5228: 454e1001 strbmi r1, [lr, #-1] - 522c: 12550000 subsne r0, r5, #0 ; 0x0 - 5230: 24280000 strtcs r0, [r8] - 5234: 24600040 strbtcs r0, [r0], #-64 - 5238: 0c090040 stceq 0, cr0, [r9], {64} - 523c: 38000001 stmdacc r0, {r0} - 5240: 50004024 andpl r4, r0, r4, lsr #32 - 5244: 00004024 andeq r4, r0, r4, lsr #32 - 5248: 00000000 andeq r0, r0, r0 - 524c: 0000019c muleq r0, ip, r1 - 5250: 05000003 streq r0, [r0, #-3] - 5254: 06040000 streq r0, [r4], -r0 - 5258: 445c3a43 ldrbmi r3, [ip], #-2627 - 525c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5260: 73746e65 cmnvc r4, #1616 ; 0x650 - 5264: 646e6120 strbtvs r6, [lr], #-288 - 5268: 74655320 strbtvc r5, [r5], #-800 - 526c: 676e6974 undefined - 5270: 616d5c73 smcvs 54723 - 5274: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5278: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 527c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5280: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5284: 775c7374 undefined - 5288: 6f632d73 svcvs 0x00632d73 - 528c: 6f72746e svcvs 0x0072746e - 5290: 65575c6c ldrbvs r5, [r7, #-3180] - 5294: 65687461 strbvs r7, [r8, #-1121]! - 5298: 74532072 ldrbvc r2, [r3], #-114 - 529c: 6f697461 svcvs 0x00697461 - 52a0: 6f43206e svcvs 0x0043206e - 52a4: 6f72746e svcvs 0x0072746e - 52a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 52ac: 414d535c cmpmi sp, ip, asr r3 - 52b0: 6f535c43 svcvs 0x00535c43 - 52b4: 65637275 strbvs r7, [r3, #-629]! - 52b8: 6461525c strbtvs r5, [r1], #-604 - 52bc: 614d6f69 cmpvs sp, r9, ror #30 - 52c0: 6567616e strbvs r6, [r7, #-366]! - 52c4: 746e656d strbtvc r6, [lr], #-1389 - 52c8: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 52cc: 41205241 teqmi r0, r1, asr #4 - 52d0: 2049534e subcs r5, r9, lr, asr #6 - 52d4: 2b432f43 blcs 10d0fe8 - 52d8: 6f43202b svcvs 0x0043202b - 52dc: 6c69706d stclvs 0, cr7, [r9], #-436 - 52e0: 56207265 strtpl r7, [r0], -r5, ror #4 - 52e4: 30332e35 eorscc r2, r3, r5, lsr lr - 52e8: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 52ec: 35393231 ldrcc r3, [r9, #-561]! - 52f0: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 52f4: 43494b20 movtmi r4, #39712 ; 0x9b20 - 52f8: 4154534b cmpmi r4, fp, asr #6 - 52fc: 66205452 undefined - 5300: 4120726f teqmi r0, pc, ror #4 - 5304: 01004d52 tsteq r0, r2, asr sp - 5308: 00402460 subeq r2, r0, r0, ror #8 - 530c: 004025b0 strheq r2, [r0], #-80 - 5310: 0000310c andeq r3, r0, ip, lsl #2 - 5314: 00001bf7 strdeq r1, [r0], -r7 - 5318: 003bcf10 eorseq ip, fp, r0, lsl pc - 531c: 019c0700 orrseq r0, ip, r0, lsl #14 - 5320: 72700000 rsbsvc r0, r0, #0 ; 0x0 - 5324: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 - 5328: 78745f73 ldmdavc r4!, {r0, r1, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ - 532c: 67736d5f undefined - 5330: 02bf0100 adcseq r0, pc, #0 ; 0x0 - 5334: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} - 5338: 75000045 strvc r0, [r0, #-69] - 533c: 60000012 andvs r0, r0, r2, lsl r0 - 5340: b0004024 andlt r4, r0, r4, lsr #32 - 5344: 0b004025 bleq 153e0 - 5348: 74617473 strbtvc r7, [r1], #-1139 - 534c: c0010065 andgt r0, r1, r5, rrx - 5350: 7b101202 blvc 409b60 - 5354: b9000045 stmdblt r0, {r0, r2, r6} - 5358: 09000012 stmdbeq r0, {r1, r4} - 535c: 0000018d andeq r0, r0, sp, lsl #3 - 5360: 00402480 subeq r2, r0, r0, lsl #9 - 5364: 0040254e subeq r2, r0, lr, asr #10 - 5368: 00012a09 andeq r2, r1, r9, lsl #20 - 536c: 40248000 eormi r8, r4, r0 - 5370: 4024ac00 eormi sl, r4, r0, lsl #24 - 5374: 46090000 strmi r0, [r9], -r0 - 5378: ac000001 stcge 0, cr0, [r0], {1} - 537c: ce004024 cdpgt 0, 0, cr4, cr0, cr4, {1} - 5380: 09004024 stmdbeq r0, {r2, r5, lr} - 5384: 00000145 andeq r0, r0, r5, asr #2 - 5388: 004024bc strheq r2, [r0], #-76 - 538c: 004024ce subeq r2, r0, lr, asr #9 - 5390: 8c090000 stchi 0, cr0, [r9], {0} - 5394: ce000001 cdpgt 0, 0, cr0, cr0, cr1, {0} - 5398: 3e004024 cdpcc 0, 0, cr4, cr0, cr4, {1} - 539c: 09004025 stmdbeq r0, {r0, r2, r5, lr} - 53a0: 0000018b andeq r0, r0, fp, lsl #3 - 53a4: 004024da ldrdeq r2, [r0], #-74 - 53a8: 0040253e subeq r2, r0, lr, lsr r5 - 53ac: 00016e09 andeq r6, r1, r9, lsl #28 - 53b0: 4024ee00 eormi lr, r4, r0, lsl #28 - 53b4: 40250000 eormi r0, r5, r0 - 53b8: 8a090000 bhi 2453c0 - 53bc: 00000001 andeq r0, r0, r1 - 53c0: 3e004025 cdpcc 0, 0, cr4, cr0, cr5, {1} - 53c4: 09004025 stmdbeq r0, {r0, r2, r5, lr} - 53c8: 00000189 andeq r0, r0, r9, lsl #3 - 53cc: 00402506 subeq r2, r0, r6, lsl #10 - 53d0: 00402532 subeq r2, r0, r2, lsr r5 - 53d4: 00000000 andeq r0, r0, r0 - 53d8: 019b0900 orrseq r0, fp, r0, lsl #18 - 53dc: 257e0000 ldrbcs r0, [lr]! - 53e0: 259e0040 ldrcs r0, [lr, #64] - 53e4: 00000040 andeq r0, r0, r0, asr #32 - 53e8: 00000000 andeq r0, r0, r0 - 53ec: 000001d4 ldrdeq r0, [r0], -r4 - 53f0: 05000003 streq r0, [r0, #-3] - 53f4: 06040000 streq r0, [r4], -r0 - 53f8: 445c3a43 ldrbmi r3, [ip], #-2627 - 53fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5400: 73746e65 cmnvc r4, #1616 ; 0x650 - 5404: 646e6120 strbtvs r6, [lr], #-288 - 5408: 74655320 strbtvc r5, [r5], #-800 - 540c: 676e6974 undefined - 5410: 616d5c73 smcvs 54723 - 5414: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5418: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 541c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5420: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5424: 775c7374 undefined - 5428: 6f632d73 svcvs 0x00632d73 - 542c: 6f72746e svcvs 0x0072746e - 5430: 65575c6c ldrbvs r5, [r7, #-3180] - 5434: 65687461 strbvs r7, [r8, #-1121]! - 5438: 74532072 ldrbvc r2, [r3], #-114 - 543c: 6f697461 svcvs 0x00697461 - 5440: 6f43206e svcvs 0x0043206e - 5444: 6f72746e svcvs 0x0072746e - 5448: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 544c: 414d535c cmpmi sp, ip, asr r3 - 5450: 6f535c43 svcvs 0x00535c43 - 5454: 65637275 strbvs r7, [r3, #-629]! - 5458: 6461525c strbtvs r5, [r1], #-604 - 545c: 614d6f69 cmpvs sp, r9, ror #30 - 5460: 6567616e strbvs r6, [r7, #-366]! - 5464: 746e656d strbtvc r6, [lr], #-1389 - 5468: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 546c: 41205241 teqmi r0, r1, asr #4 - 5470: 2049534e subcs r5, r9, lr, asr #6 - 5474: 2b432f43 blcs 10d1188 - 5478: 6f43202b svcvs 0x0043202b - 547c: 6c69706d stclvs 0, cr7, [r9], #-436 - 5480: 56207265 strtpl r7, [r0], -r5, ror #4 - 5484: 30332e35 eorscc r2, r3, r5, lsr lr - 5488: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 548c: 35393231 ldrcc r3, [r9, #-561]! - 5490: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 5494: 43494b20 movtmi r4, #39712 ; 0x9b20 - 5498: 4154534b cmpmi r4, fp, asr #6 - 549c: 66205452 undefined - 54a0: 4120726f teqmi r0, pc, ror #4 - 54a4: 01004d52 tsteq r0, r2, asr sp - 54a8: 004025c0 subeq r2, r0, r0, asr #11 - 54ac: 004027c0 subeq r2, r0, r0, asr #15 - 54b0: 00003204 andeq r3, r0, r4, lsl #4 - 54b4: 00001d06 andeq r1, r0, r6, lsl #26 - 54b8: 003bcf10 eorseq ip, fp, r0, lsl pc - 54bc: 01d40700 bicseq r0, r4, r0, lsl #14 - 54c0: 72700000 rsbsvc r0, r0, #0 ; 0x0 - 54c4: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 - 54c8: 78725f73 ldmdavc r2!, {r0, r1, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ - 54cc: 67736d5f undefined - 54d0: 03930100 orrseq r0, r3, #0 ; 0x0 - 54d4: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} - 54d8: c1000045 tstgt r0, r5, asr #32 - 54dc: c0000012 andgt r0, r0, r2, lsl r0 - 54e0: c0004025 andgt r4, r0, r5, lsr #32 - 54e4: 0b004027 bleq 15588 - 54e8: 74617473 strbtvc r7, [r1], #-1139 - 54ec: 94010065 strls r0, [r1], #-101 - 54f0: 92101203 andsls r1, r0, #805306368 ; 0x30000000 - 54f4: f9000045 undefined instruction 0xf9000045 - 54f8: 09000012 stmdbeq r0, {r1, r4} - 54fc: 000001c5 andeq r0, r0, r5, asr #3 - 5500: 004025e8 subeq r2, r0, r8, ror #11 - 5504: 0040274c subeq r2, r0, ip, asr #14 - 5508: 00013809 andeq r3, r1, r9, lsl #16 - 550c: 4025e800 eormi lr, r5, r0, lsl #16 - 5510: 40263600 eormi r3, r6, r0, lsl #12 - 5514: 01370900 teqeq r7, r0, lsl #18 - 5518: 25f20000 ldrbcs r0, [r2]! - 551c: 26280040 strtcs r0, [r8], -r0, asr #32 - 5520: 00000040 andeq r0, r0, r0, asr #32 - 5524: 00015409 andeq r5, r1, r9, lsl #8 - 5528: 40263600 eormi r3, r6, r0, lsl #12 - 552c: 40265a00 eormi r5, r6, r0, lsl #20 - 5530: 01530900 cmpeq r3, r0, lsl #18 - 5534: 26480000 strbcs r0, [r8], -r0 - 5538: 265a0040 ldrbcs r0, [sl], -r0, asr #32 - 553c: 00000040 andeq r0, r0, r0, asr #32 - 5540: 0001c409 andeq ip, r1, r9, lsl #8 - 5544: 40265a00 eormi r5, r6, r0, lsl #20 - 5548: 40273c00 eormi r3, r7, r0, lsl #24 - 554c: 01c30900 biceq r0, r3, r0, lsl #18 - 5550: 26660000 strbtcs r0, [r6], -r0 - 5554: 273c0040 ldrcs r0, [ip, -r0, asr #32]! - 5558: 7c090040 stcvc 0, cr0, [r9], {64} - 555c: 76000001 strvc r0, [r0], -r1 - 5560: 96004026 strls r4, [r0], -r6, lsr #32 - 5564: 00004026 andeq r4, r0, r6, lsr #32 - 5568: 0001c209 andeq ip, r1, r9, lsl #4 - 556c: 40269600 eormi r9, r6, r0, lsl #12 - 5570: 40273c00 eormi r3, r7, r0, lsl #24 - 5574: 01b30900 undefined instruction 0x01b30900 - 5578: 26b40000 ldrtcs r0, [r4], r0 - 557c: 273c0040 ldrcs r0, [ip, -r0, asr #32]! - 5580: b2090040 andlt r0, r9, #64 ; 0x40 - 5584: ba000001 blt 5590 - 5588: 28004026 stmdacs r0, {r1, r2, r5, lr} - 558c: 09004027 stmdbeq r0, {r0, r1, r2, r5, lr} - 5590: 000001b1 strheq r0, [r0], -r1 - 5594: 004026c4 subeq r2, r0, r4, asr #13 - 5598: 0040271c subeq r2, r0, ip, lsl r7 - 559c: 09000000 stmdbeq r0, {} - 55a0: 000001c1 andeq r0, r0, r1, asr #3 - 55a4: 004026fe strdeq r2, [r0], #-110 - 55a8: 00402712 subeq r2, r0, r2, lsl r7 - 55ac: 00000000 andeq r0, r0, r0 - 55b0: 01d30900 bicseq r0, r3, r0, lsl #18 - 55b4: 277c0000 ldrbcs r0, [ip, -r0]! - 55b8: 279c0040 ldrcs r0, [ip, r0, asr #32] - 55bc: 00000040 andeq r0, r0, r0, asr #32 - 55c0: 00000000 andeq r0, r0, r0 - 55c4: 0000022c andeq r0, r0, ip, lsr #4 - 55c8: 05000003 streq r0, [r0, #-3] - 55cc: 06040000 streq r0, [r4], -r0 - 55d0: 445c3a43 ldrbmi r3, [ip], #-2627 - 55d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 55d8: 73746e65 cmnvc r4, #1616 ; 0x650 - 55dc: 646e6120 strbtvs r6, [lr], #-288 - 55e0: 74655320 strbtvc r5, [r5], #-800 - 55e4: 676e6974 undefined - 55e8: 616d5c73 smcvs 54723 - 55ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 55f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 55f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 55f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 55fc: 775c7374 undefined - 5600: 6f632d73 svcvs 0x00632d73 - 5604: 6f72746e svcvs 0x0072746e - 5608: 65575c6c ldrbvs r5, [r7, #-3180] - 560c: 65687461 strbvs r7, [r8, #-1121]! - 5610: 74532072 ldrbvc r2, [r3], #-114 - 5614: 6f697461 svcvs 0x00697461 - 5618: 6f43206e svcvs 0x0043206e - 561c: 6f72746e svcvs 0x0072746e - 5620: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5624: 414d535c cmpmi sp, ip, asr r3 - 5628: 6f535c43 svcvs 0x00535c43 - 562c: 65637275 strbvs r7, [r3, #-629]! - 5630: 6461525c strbtvs r5, [r1], #-604 - 5634: 614d6f69 cmpvs sp, r9, ror #30 - 5638: 6567616e strbvs r6, [r7, #-366]! - 563c: 746e656d strbtvc r6, [lr], #-1389 - 5640: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 5644: 41205241 teqmi r0, r1, asr #4 - 5648: 2049534e subcs r5, r9, lr, asr #6 - 564c: 2b432f43 blcs 10d1360 - 5650: 6f43202b svcvs 0x0043202b - 5654: 6c69706d stclvs 0, cr7, [r9], #-436 - 5658: 56207265 strtpl r7, [r0], -r5, ror #4 - 565c: 30332e35 eorscc r2, r3, r5, lsr lr - 5660: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 5664: 35393231 ldrcc r3, [r9, #-561]! - 5668: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 566c: 43494b20 movtmi r4, #39712 ; 0x9b20 - 5670: 4154534b cmpmi r4, fp, asr #6 - 5674: 66205452 undefined - 5678: 4120726f teqmi r0, pc, ror #4 - 567c: 01004d52 tsteq r0, r2, asr sp - 5680: 004027c0 subeq r2, r0, r0, asr #15 - 5684: 0040297c subeq r2, r0, ip, ror r9 - 5688: 0000331c andeq r3, r0, ip, lsl r3 - 568c: 00001e67 andeq r1, r0, r7, ror #28 - 5690: 003bcf10 eorseq ip, fp, r0, lsl pc - 5694: 022d0700 eoreq r0, sp, #0 ; 0x0 - 5698: 72700000 rsbsvc r0, r0, #0 ; 0x0 - 569c: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 - 56a0: 64655f73 strbtvs r5, [r5], #-3955 - 56a4: 67736d5f undefined - 56a8: 04800100 streq r0, [r0], #256 - 56ac: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} - 56b0: 01000045 tsteq r0, r5, asr #32 - 56b4: c0000013 andgt r0, r0, r3, lsl r0 - 56b8: 7c004027 stcvc 0, cr4, [r0], {39} - 56bc: 04004029 streq r4, [r0], #-41 - 56c0: 76657270 undefined - 56c4: 6168635f cmnvs r8, pc, asr r3 - 56c8: 10006e6e andne r6, r0, lr, ror #28 - 56cc: 00004619 andeq r4, r0, r9, lsl r6 - 56d0: 13048101 movwne r8, #16641 ; 0x4101 - 56d4: c0030500 andgt r0, r3, r0, lsl #10 - 56d8: 0b004053 bleq 1582c - 56dc: 74617473 strbtvc r7, [r1], #-1139 - 56e0: 82010065 andhi r0, r1, #101 ; 0x65 - 56e4: ab101204 blge 409efc - 56e8: 45000045 strmi r0, [r0, #-69] - 56ec: 09000013 stmdbeq r0, {r0, r1, r4} - 56f0: 0000021e andeq r0, r0, lr, lsl r2 - 56f4: 004027de ldrdeq r2, [r0], #-126 - 56f8: 00402906 subeq r2, r0, r6, lsl #18 - 56fc: 00017b09 andeq r7, r1, r9, lsl #22 - 5700: 4027de00 eormi sp, r7, r0, lsl #28 - 5704: 40283c00 eormi r3, r8, r0, lsl #24 - 5708: 017a0900 cmneq sl, r0, lsl #18 - 570c: 27ec0000 strbcs r0, [ip, r0]! - 5710: 28300040 ldmdacs r0!, {r6} - 5714: 790c0040 stmdbvc ip, {r6} - 5718: 10000001 andne r0, r0, r1 - 571c: 00005f1c andeq r5, r0, ip, lsl pc - 5720: 004027f2 strdeq r2, [r0], #-114 - 5724: 0040281a subeq r2, r0, sl, lsl r8 - 5728: 5f3b100d svcpl 0x003b100d - 572c: 134d0000 movtne r0, #53248 ; 0xd000 - 5730: 100e0000 andne r0, lr, r0 - 5734: 00005f4a andeq r5, r0, sl, asr #30 - 5738: 0000136b andeq r1, r0, fp, ror #6 - 573c: 09000000 stmdbeq r0, {} - 5740: 0000021d andeq r0, r0, sp, lsl r2 - 5744: 0040283c subeq r2, r0, ip, lsr r8 - 5748: 004028f6 strdeq r2, [r0], #-134 - 574c: 00021c09 andeq r1, r2, r9, lsl #24 - 5750: 40284800 eormi r4, r8, r0, lsl #16 - 5754: 4028f600 eormi pc, r8, r0, lsl #12 - 5758: 01ca0900 biceq r0, sl, r0, lsl #18 - 575c: 285a0000 ldmdacs sl, {}^ - 5760: 28a40040 stmiacs r4!, {r6} - 5764: c90c0040 stmdbgt ip, {r6} - 5768: 10000001 andne r0, r0, r1 - 576c: 00006024 andeq r6, r0, r4, lsr #32 - 5770: 00402872 subeq r2, r0, r2, ror r8 - 5774: 00402888 subeq r2, r0, r8, lsl #17 - 5778: 6047100d subvs r1, r7, sp - 577c: 137e0000 cmnne lr, #0 ; 0x0 - 5780: 100e0000 andne r0, lr, r0 - 5784: 00006062 andeq r6, r0, r2, rrx - 5788: 0000139b muleq r0, fp, r3 - 578c: 1b090000 blne 245794 - 5790: a4000002 strge r0, [r0], #-2 - 5794: f6004028 undefined instruction 0xf6004028 - 5798: 09004028 stmdbeq r0, {r3, r5, lr} - 579c: 0000020c andeq r0, r0, ip, lsl #4 - 57a0: 004028ac subeq r2, r0, ip, lsr #17 - 57a4: 004028d4 ldrdeq r2, [r0], #-132 - 57a8: 00020b0c andeq r0, r2, ip, lsl #22 - 57ac: 5f1c1000 svcpl 0x001c1000 - 57b0: 28b60000 ldmcs r6!, {} - 57b4: 28d40040 ldmcs r4, {r6}^ - 57b8: 100d0040 andne r0, sp, r0, asr #32 - 57bc: 00005f3b andeq r5, r0, fp, lsr pc - 57c0: 000013d8 ldrdeq r1, [r0], -r8 - 57c4: 5f4a100e svcpl 0x004a100e - 57c8: 13f50000 mvnsne r0, #0 ; 0x0 - 57cc: 00000000 andeq r0, r0, r0 - 57d0: 00021a09 andeq r1, r2, r9, lsl #20 - 57d4: 4028d600 eormi sp, r8, r0, lsl #12 - 57d8: 4028f600 eormi pc, r8, r0, lsl #12 - 57dc: 00000000 andeq r0, r0, r0 - 57e0: 2c090000 stccs 0, cr0, [r9], {0} - 57e4: 36000002 strcc r0, [r0], -r2 - 57e8: 56004029 strpl r4, [r0], -r9, lsr #32 - 57ec: 00004029 andeq r4, r0, r9, lsr #32 - 57f0: 00000000 andeq r0, r0, r0 - 57f4: 00000180 andeq r0, r0, r0, lsl #3 - 57f8: 05000003 streq r0, [r0, #-3] - 57fc: 06040000 streq r0, [r4], -r0 - 5800: 445c3a43 ldrbmi r3, [ip], #-2627 - 5804: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5808: 73746e65 cmnvc r4, #1616 ; 0x650 - 580c: 646e6120 strbtvs r6, [lr], #-288 - 5810: 74655320 strbtvc r5, [r5], #-800 - 5814: 676e6974 undefined - 5818: 616d5c73 smcvs 54723 - 581c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5820: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5824: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5828: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 582c: 775c7374 undefined - 5830: 6f632d73 svcvs 0x00632d73 - 5834: 6f72746e svcvs 0x0072746e - 5838: 65575c6c ldrbvs r5, [r7, #-3180] - 583c: 65687461 strbvs r7, [r8, #-1121]! - 5840: 74532072 ldrbvc r2, [r3], #-114 - 5844: 6f697461 svcvs 0x00697461 - 5848: 6f43206e svcvs 0x0043206e - 584c: 6f72746e svcvs 0x0072746e - 5850: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5854: 414d535c cmpmi sp, ip, asr r3 - 5858: 6f535c43 svcvs 0x00535c43 - 585c: 65637275 strbvs r7, [r3, #-629]! - 5860: 6461525c strbtvs r5, [r1], #-604 - 5864: 614d6f69 cmpvs sp, r9, ror #30 - 5868: 6567616e strbvs r6, [r7, #-366]! - 586c: 746e656d strbtvc r6, [lr], #-1389 - 5870: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 5874: 41205241 teqmi r0, r1, asr #4 - 5878: 2049534e subcs r5, r9, lr, asr #6 - 587c: 2b432f43 blcs 10d1590 - 5880: 6f43202b svcvs 0x0043202b - 5884: 6c69706d stclvs 0, cr7, [r9], #-436 - 5888: 56207265 strtpl r7, [r0], -r5, ror #4 - 588c: 30332e35 eorscc r2, r3, r5, lsr lr - 5890: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 5894: 35393231 ldrcc r3, [r9, #-561]! - 5898: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 589c: 43494b20 movtmi r4, #39712 ; 0x9b20 - 58a0: 4154534b cmpmi r4, fp, asr #6 - 58a4: 66205452 undefined - 58a8: 4120726f teqmi r0, pc, ror #4 - 58ac: 01004d52 tsteq r0, r2, asr sp - 58b0: 0040297c subeq r2, r0, ip, ror r9 - 58b4: 00402ac8 subeq r2, r0, r8, asr #21 - 58b8: 00003470 andeq r3, r0, r0, ror r4 - 58bc: 00002066 andeq r2, r0, r6, rrx - 58c0: 003bcf10 eorseq ip, fp, r0, lsl pc - 58c4: 01800700 orreq r0, r0, r0, lsl #14 - 58c8: 72700000 rsbsvc r0, r0, #0 ; 0x0 - 58cc: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 - 58d0: 6f745f73 svcvs 0x00745f73 - 58d4: 67736d5f undefined - 58d8: 04d60100 ldrbeq r0, [r6], #256 - 58dc: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} - 58e0: fd000045 stc2 0, cr0, [r0, #-276] - 58e4: 7c000013 stcvc 0, cr0, [r0], {19} - 58e8: c8004029 stmdagt r0, {r0, r3, r5, lr} - 58ec: 0b00402a bleq 1599c - 58f0: 74617473 strbtvc r7, [r1], #-1139 - 58f4: d7010065 strle r0, [r1, -r5, rrx] - 58f8: c2101204 andsgt r1, r0, #1073741824 ; 0x40000000 - 58fc: 1d000045 stcne 0, cr0, [r0, #-276] - 5900: 09000014 stmdbeq r0, {r2, r4} - 5904: 00000171 andeq r0, r0, r1, ror r1 - 5908: 00402998 umaaleq r2, r0, r8, r9 - 590c: 00402a76 subeq r2, r0, r6, ror sl - 5910: 00012a09 andeq r2, r1, r9, lsl #20 - 5914: 40299800 eormi r9, r9, r0, lsl #16 - 5918: 4029cc00 eormi ip, r9, r0, lsl #24 - 591c: 70090000 andvc r0, r9, r0 - 5920: cc000001 stcgt 0, cr0, [r0], {1} - 5924: 66004029 strvs r4, [r0], -r9, lsr #32 - 5928: 0900402a stmdbeq r0, {r1, r3, r5, lr} - 592c: 0000016f andeq r0, r0, pc, ror #2 - 5930: 004029d8 ldrdeq r2, [r0], #-152 - 5934: 00402a66 subeq r2, r0, r6, ror #20 - 5938: 00016009 andeq r6, r1, r9 - 593c: 402a1600 eormi r1, sl, r0, lsl #12 - 5940: 402a6600 eormi r6, sl, r0, lsl #12 - 5944: 015f0900 cmpeq pc, r0, lsl #18 - 5948: 2a400000 bcs 1005950 - 594c: 2a660040 bcs 1985a54 - 5950: 00000040 andeq r0, r0, r0, asr #32 - 5954: 00016e09 andeq r6, r1, r9, lsl #28 - 5958: 402a2a00 eormi r2, sl, r0, lsl #20 - 595c: 402a4000 eormi r4, sl, r0 - 5960: 00000000 andeq r0, r0, r0 - 5964: 017f0900 cmneq pc, r0, lsl #18 - 5968: 2aa60000 bcs fe985970 - 596c: 2ac80040 bcs ff205a74 - 5970: 00000040 andeq r0, r0, r0, asr #32 - 5974: 00000000 andeq r0, r0, r0 - 5978: 000001a0 andeq r0, r0, r0, lsr #3 - 597c: 05000003 streq r0, [r0, #-3] - 5980: 06040000 streq r0, [r4], -r0 - 5984: 445c3a43 ldrbmi r3, [ip], #-2627 - 5988: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 598c: 73746e65 cmnvc r4, #1616 ; 0x650 - 5990: 646e6120 strbtvs r6, [lr], #-288 - 5994: 74655320 strbtvc r5, [r5], #-800 - 5998: 676e6974 undefined - 599c: 616d5c73 smcvs 54723 - 59a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 59a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 59a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 59ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 59b0: 775c7374 undefined - 59b4: 6f632d73 svcvs 0x00632d73 - 59b8: 6f72746e svcvs 0x0072746e - 59bc: 65575c6c ldrbvs r5, [r7, #-3180] - 59c0: 65687461 strbvs r7, [r8, #-1121]! - 59c4: 74532072 ldrbvc r2, [r3], #-114 - 59c8: 6f697461 svcvs 0x00697461 - 59cc: 6f43206e svcvs 0x0043206e - 59d0: 6f72746e svcvs 0x0072746e - 59d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 59d8: 414d535c cmpmi sp, ip, asr r3 - 59dc: 6f535c43 svcvs 0x00535c43 - 59e0: 65637275 strbvs r7, [r3, #-629]! - 59e4: 6461525c strbtvs r5, [r1], #-604 - 59e8: 614d6f69 cmpvs sp, r9, ror #30 - 59ec: 6567616e strbvs r6, [r7, #-366]! - 59f0: 746e656d strbtvc r6, [lr], #-1389 - 59f4: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 59f8: 41205241 teqmi r0, r1, asr #4 - 59fc: 2049534e subcs r5, r9, lr, asr #6 - 5a00: 2b432f43 blcs 10d1714 - 5a04: 6f43202b svcvs 0x0043202b - 5a08: 6c69706d stclvs 0, cr7, [r9], #-436 - 5a0c: 56207265 strtpl r7, [r0], -r5, ror #4 - 5a10: 30332e35 eorscc r2, r3, r5, lsr lr - 5a14: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 5a18: 35393231 ldrcc r3, [r9, #-561]! - 5a1c: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 5a20: 43494b20 movtmi r4, #39712 ; 0x9b20 - 5a24: 4154534b cmpmi r4, fp, asr #6 - 5a28: 66205452 undefined - 5a2c: 4120726f teqmi r0, pc, ror #4 - 5a30: 01004d52 tsteq r0, r2, asr sp - 5a34: 00402aec subeq r2, r0, ip, ror #21 - 5a38: 00402b84 subeq r2, r0, r4, lsl #23 - 5a3c: 0000356c andeq r3, r0, ip, ror #10 - 5a40: 00002180 andeq r2, r0, r0, lsl #3 - 5a44: 003bcf10 eorseq ip, fp, r0, lsl pc - 5a48: 01a00a00 lsleq r0, r0, #20 - 5a4c: 72700000 rsbsvc r0, r0, #0 ; 0x0 - 5a50: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 - 5a54: 63735f73 cmnvs r3, #460 ; 0x1cc - 5a58: 725f6e61 subsvc r6, pc, #1552 ; 0x610 - 5a5c: 01007165 tsteq r0, r5, ror #2 - 5a60: 010605c1 smlabteq r6, r1, r5, r0 - 5a64: 00001425 andeq r1, r0, r5, lsr #8 - 5a68: 00402aec subeq r2, r0, ip, ror #21 - 5a6c: 00402b84 subeq r2, r0, r4, lsl #23 - 5a70: 42387504 eorsmi r7, r8, #16777216 ; 0x1000000 - 5a74: 56747365 ldrbtpl r7, [r4], -r5, ror #6 - 5a78: 10006c61 andne r6, r0, r1, ror #24 - 5a7c: 000045ec andeq r4, r0, ip, ror #11 - 5a80: 1205c401 andne ip, r5, #16777216 ; 0x1000000 - 5a84: 6c030500 cfstr32vs mvfx0, [r3], {0} - 5a88: 04004053 streq r4, [r0], #-83 - 5a8c: 74736562 ldrbtvc r6, [r3], #-1378 - 5a90: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} - 5a94: 6410006e ldrvs r0, [r0], #-110 - 5a98: 01000045 tsteq r0, r5, asr #32 - 5a9c: 001805c5 andseq r0, r8, r5, asr #11 - 5aa0: 536d0305 cmnpl sp, #335544320 ; 0x14000000 - 5aa4: 45040040 strmi r0, [r4, #-64] - 5aa8: 32684364 rsbcc r4, r8, #-1879048191 ; 0x90000001 - 5aac: 6c617645 stclvs 6, cr7, [r1], #-276 - 5ab0: 65746175 ldrbvs r6, [r4, #-373]! - 5ab4: 45641000 strbmi r1, [r4]! - 5ab8: c6010000 strgt r0, [r1], -r0 - 5abc: 05001805 streq r1, [r0, #-2053] - 5ac0: 40536e03 subsmi r6, r3, r3, lsl #28 - 5ac4: 73690400 cmnvc r9, #0 ; 0x0 - 5ac8: 6f636553 svcvs 0x00636553 - 5acc: 6150646e cmpvs r0, lr, ror #8 - 5ad0: 10007373 andne r7, r0, r3, ror r3 - 5ad4: 000045fb strdeq r4, [r0], -fp - 5ad8: 1105c701 tstne r5, r1, lsl #14 - 5adc: 6f030500 svcvs 0x00030500 - 5ae0: 0b004053 bleq 15c34 - 5ae4: 76657270 undefined - 5ae8: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} - 5aec: c301006e movwgt r0, #4206 ; 0x106e - 5af0: 64101105 ldrvs r1, [r0], #-261 - 5af4: 5d000045 stcpl 0, cr0, [r0, #-276] - 5af8: 09000014 stmdbeq r0, {r2, r4} - 5afc: 0000019f muleq r0, pc, r1 - 5b00: 00402af8 strdeq r2, [r0], #-168 - 5b04: 00402b64 subeq r2, r0, r4, ror #22 - 5b08: 00019e09 andeq r9, r1, r9, lsl #28 - 5b0c: 402b1600 eormi r1, fp, r0, lsl #12 - 5b10: 402b3800 eormi r3, fp, r0, lsl #16 - ... - 5b1c: 000001dc ldrdeq r0, [r0], -ip - 5b20: 05000003 streq r0, [r0, #-3] - 5b24: 01040000 tsteq r4, r0 - 5b28: 445c3a43 ldrbmi r3, [ip], #-2627 - 5b2c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5b30: 73746e65 cmnvc r4, #1616 ; 0x650 - 5b34: 646e6120 strbtvs r6, [lr], #-288 - 5b38: 74655320 strbtvc r5, [r5], #-800 - 5b3c: 676e6974 undefined - 5b40: 616d5c73 smcvs 54723 - 5b44: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5b48: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5b4c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5b50: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5b54: 775c7374 undefined - 5b58: 6f632d73 svcvs 0x00632d73 - 5b5c: 6f72746e svcvs 0x0072746e - 5b60: 65575c6c ldrbvs r5, [r7, #-3180] - 5b64: 65687461 strbvs r7, [r8, #-1121]! - 5b68: 74532072 ldrbvc r2, [r3], #-114 - 5b6c: 6f697461 svcvs 0x00697461 - 5b70: 6f43206e svcvs 0x0043206e - 5b74: 6f72746e svcvs 0x0072746e - 5b78: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5b7c: 414d535c cmpmi sp, ip, asr r3 - 5b80: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} - 5b84: 66726574 undefined - 5b88: 5c656361 stclpl 3, cr6, [r5], #-388 - 5b8c: 626f6c47 rsbvs r6, pc, #18176 ; 0x4700 - 5b90: 65446c61 strbvs r6, [r4, #-3169] - 5b94: 682e7366 stmdavs lr!, {r1, r2, r5, r6, r8, r9, ip, sp, lr} - 5b98: 52414900 subpl r4, r1, #0 ; 0x0 - 5b9c: 534e4120 movtpl r4, #57632 ; 0xe120 - 5ba0: 2f432049 svccs 0x00432049 - 5ba4: 202b2b43 eorcs r2, fp, r3, asr #22 - 5ba8: 706d6f43 rsbvc r6, sp, r3, asr #30 - 5bac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 5bb0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 5bb4: 322e3033 eorcc r3, lr, #51 ; 0x33 - 5bb8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 5bbc: 572f3539 undefined - 5bc0: 4b203233 blmi 812494 - 5bc4: 534b4349 movtpl r4, #45897 ; 0xb349 - 5bc8: 54524154 ldrbpl r4, [r2], #-340 - 5bcc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 5bd0: 4d524120 ldfmie f4, [r2, #-128] - 5bd4: 28c40100 stmiacs r4, {r8}^ - 5bd8: 010c0000 tsteq ip, r0 - 5bdc: dc120000 ldcle 0, cr0, [r2], {0} - 5be0: 63000001 movwvs r0, #1 ; 0x1 - 5be4: 6e6e6168 powvsez f6, f6, #0.0 - 5be8: 6e5f6c65 cdpvs 12, 5, cr6, cr15, cr5, {3} - 5bec: 745f6d75 ldrbvc r6, [pc], #3445 ; 5bf4 - 5bf0: 01006761 tsteq r0, r1, ror #14 - 5bf4: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ - 5bf8: 656e6e61 strbvs r6, [lr, #-3681]! - 5bfc: 5f31316c svcpl 0x0031316c - 5c00: 13000063 movwne r0, #99 ; 0x63 - 5c04: 61684367 cmnvs r8, r7, ror #6 - 5c08: 6c656e6e stclvs 14, cr6, [r5], #-440 - 5c0c: 635f3231 cmpvs pc, #268435459 ; 0x10000003 - 5c10: 67130100 ldrvs r0, [r3, -r0, lsl #2] - 5c14: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} - 5c18: 316c656e cmncc ip, lr, ror #10 - 5c1c: 00635f33 rsbeq r5, r3, r3, lsr pc - 5c20: 43671302 cmnmi r7, #134217728 ; 0x8000000 - 5c24: 6e6e6168 powvsez f6, f6, #0.0 - 5c28: 34316c65 ldrtcc r6, [r1], #-3173 - 5c2c: 0300635f movweq r6, #863 ; 0x35f - 5c30: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ - 5c34: 656e6e61 strbvs r6, [lr, #-3681]! - 5c38: 5f35316c svcpl 0x0035316c - 5c3c: 13040063 movwne r0, #16483 ; 0x4063 - 5c40: 61684367 cmnvs r8, r7, ror #6 - 5c44: 6c656e6e stclvs 14, cr6, [r5], #-440 - 5c48: 635f3631 cmpvs pc, #51380224 ; 0x3100000 - 5c4c: 67130500 ldrvs r0, [r3, -r0, lsl #10] - 5c50: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} - 5c54: 316c656e cmncc ip, lr, ror #10 - 5c58: 00635f37 rsbeq r5, r3, r7, lsr pc - 5c5c: 43671306 cmnmi r7, #402653184 ; 0x18000000 - 5c60: 6e6e6168 powvsez f6, f6, #0.0 - 5c64: 38316c65 ldmdacc r1!, {r0, r2, r5, r6, sl, fp, sp, lr} - 5c68: 0700635f smlsdeq r0, pc, r3, r6 - 5c6c: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ - 5c70: 656e6e61 strbvs r6, [lr, #-3681]! - 5c74: 5f39316c svcpl 0x0039316c - 5c78: 13080063 movwne r0, #32867 ; 0x8063 - 5c7c: 61684367 cmnvs r8, r7, ror #6 - 5c80: 6c656e6e stclvs 14, cr6, [r5], #-440 - 5c84: 635f3032 cmpvs pc, #50 ; 0x32 - 5c88: 67130900 ldrvs r0, [r3, -r0, lsl #18] - 5c8c: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} - 5c90: 326c656e rsbcc r6, ip, #461373440 ; 0x1b800000 - 5c94: 00635f31 rsbeq r5, r3, r1, lsr pc - 5c98: 4367130a cmnmi r7, #671088640 ; 0x28000000 - 5c9c: 6e6e6168 powvsez f6, f6, #0.0 - 5ca0: 32326c65 eorscc r6, r2, #25856 ; 0x6500 - 5ca4: 0b00635f bleq 1ea28 - 5ca8: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ - 5cac: 656e6e61 strbvs r6, [lr, #-3681]! - 5cb0: 5f33326c svcpl 0x0033326c - 5cb4: 130c0063 movwne r0, #49251 ; 0xc063 - 5cb8: 61684367 cmnvs r8, r7, ror #6 - 5cbc: 6c656e6e stclvs 14, cr6, [r5], #-440 - 5cc0: 635f3432 cmpvs pc, #838860800 ; 0x32000000 - 5cc4: 67130d00 ldrvs r0, [r3, -r0, lsl #26] - 5cc8: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} - 5ccc: 326c656e rsbcc r6, ip, #461373440 ; 0x1b800000 - 5cd0: 00635f35 rsbeq r5, r3, r5, lsr pc - 5cd4: 4367130e cmnmi r7, #939524096 ; 0x38000000 - 5cd8: 6e6e6168 powvsez f6, f6, #0.0 - 5cdc: 36326c65 ldrtcc r6, [r2], -r5, ror #24 - 5ce0: 0f00635f svceq 0x0000635f - 5ce4: 6f546713 svcvs 0x00546713 - 5ce8: 436c6174 cmnmi ip, #29 ; 0x1d - 5cec: 6e6e6168 powvsez f6, f6, #0.0 - 5cf0: 5f736c65 svcpl 0x00736c65 - 5cf4: 00100063 andseq r0, r0, r3, rrx - 5cf8: 00000000 andeq r0, r0, r0 - 5cfc: 00000158 andeq r0, r0, r8, asr r1 - 5d00: 05000003 streq r0, [r0, #-3] - 5d04: 06040000 streq r0, [r4], -r0 - 5d08: 445c3a43 ldrbmi r3, [ip], #-2627 - 5d0c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5d10: 73746e65 cmnvc r4, #1616 ; 0x650 - 5d14: 646e6120 strbtvs r6, [lr], #-288 - 5d18: 74655320 strbtvc r5, [r5], #-800 - 5d1c: 676e6974 undefined - 5d20: 616d5c73 smcvs 54723 - 5d24: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5d28: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5d2c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5d30: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5d34: 775c7374 undefined - 5d38: 6f632d73 svcvs 0x00632d73 - 5d3c: 6f72746e svcvs 0x0072746e - 5d40: 65575c6c ldrbvs r5, [r7, #-3180] - 5d44: 65687461 strbvs r7, [r8, #-1121]! - 5d48: 74532072 ldrbvc r2, [r3], #-114 - 5d4c: 6f697461 svcvs 0x00697461 - 5d50: 6f43206e svcvs 0x0043206e - 5d54: 6f72746e svcvs 0x0072746e - 5d58: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5d5c: 414d535c cmpmi sp, ip, asr r3 - 5d60: 6f535c43 svcvs 0x00535c43 - 5d64: 65637275 strbvs r7, [r3, #-629]! - 5d68: 6461525c strbtvs r5, [r1], #-604 - 5d6c: 614d6f69 cmpvs sp, r9, ror #30 - 5d70: 6567616e strbvs r6, [r7, #-366]! - 5d74: 746e656d strbtvc r6, [lr], #-1389 - 5d78: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 5d7c: 41205241 teqmi r0, r1, asr #4 - 5d80: 2049534e subcs r5, r9, lr, asr #6 - 5d84: 2b432f43 blcs 10d1a98 - 5d88: 6f43202b svcvs 0x0043202b - 5d8c: 6c69706d stclvs 0, cr7, [r9], #-436 - 5d90: 56207265 strtpl r7, [r0], -r5, ror #4 - 5d94: 30332e35 eorscc r2, r3, r5, lsr lr - 5d98: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 5d9c: 35393231 ldrcc r3, [r9, #-561]! - 5da0: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 5da4: 43494b20 movtmi r4, #39712 ; 0x9b20 - 5da8: 4154534b cmpmi r4, fp, asr #6 - 5dac: 66205452 undefined - 5db0: 4120726f teqmi r0, pc, ror #4 - 5db4: 01004d52 tsteq r0, r2, asr sp - 5db8: 00402b84 subeq r2, r0, r4, lsl #23 - 5dbc: 00402bb4 strheq r2, [r0], #-180 - 5dc0: 00003644 andeq r3, r0, r4, asr #12 - 5dc4: 00002255 andeq r2, r0, r5, asr r2 - 5dc8: 003bcf10 eorseq ip, fp, r0, lsl pc - 5dcc: 01580700 cmpeq r8, r0, lsl #14 - 5dd0: 65670000 strbvs r0, [r7]! - 5dd4: 656e5f74 strbvs r5, [lr, #-3956]! - 5dd8: 635f7478 cmpvs pc, #2013265920 ; 0x78000000 - 5ddc: 6e6e6168 powvsez f6, f6, #0.0 - 5de0: 5f6f745f svcpl 0x006f745f - 5de4: 6e616373 mcrvs 3, 3, r6, cr1, cr3, {3} - 5de8: 05f60100 ldrbeq r0, [r6, #256]! - 5dec: 6410010f ldrvs r0, [r0], #-271 - 5df0: 7a000045 bvc 5f0c - 5df4: 84000014 strhi r0, [r0], #-20 - 5df8: b400402b strlt r4, [r0], #-43 - 5dfc: 0800402b stmdaeq r0, {r0, r1, r3, r5, lr} - 5e00: 72727563 rsbsvc r7, r2, #415236096 ; 0x18c00000 - 5e04: 43746e65 cmnmi r4, #1616 ; 0x650 - 5e08: f6010068 undefined instruction 0xf6010068 - 5e0c: 64103405 ldrvs r3, [r0], #-1029 - 5e10: a6000045 strge r0, [r0], -r5, asr #32 - 5e14: 0b000014 bleq 5e6c - 5e18: 7478656e ldrbtvc r6, [r8], #-1390 - 5e1c: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} - 5e20: f801006e undefined instruction 0xf801006e - 5e24: 64101105 ldrvs r1, [r0], #-261 - 5e28: c3000045 movwgt r0, #69 ; 0x45 - 5e2c: 0b000014 bleq 5e84 - 5e30: 656d6974 strbvs r6, [sp, #-2420]! - 5e34: 0074754f rsbseq r7, r4, pc, asr #10 - 5e38: 0b05f901 bleq 184244 - 5e3c: 0045ec10 subeq lr, r5, r0, lsl ip - 5e40: 0014eb00 andseq lr, r4, r0, lsl #22 - 5e44: 01570900 cmpeq r7, r0, lsl #18 - 5e48: 2b8c0000 blcs fe305e50 - 5e4c: 2ba40040 blcs fe905f54 - 5e50: 00000040 andeq r0, r0, r0, asr #32 - 5e54: 00000000 andeq r0, r0, r0 - 5e58: 00000104 andeq r0, r0, r4, lsl #2 - 5e5c: 05000003 streq r0, [r0, #-3] - 5e60: 01040000 tsteq r4, r0 - 5e64: 445c3a43 ldrbmi r3, [ip], #-2627 - 5e68: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5e6c: 73746e65 cmnvc r4, #1616 ; 0x650 - 5e70: 646e6120 strbtvs r6, [lr], #-288 - 5e74: 74655320 strbtvc r5, [r5], #-800 - 5e78: 676e6974 undefined - 5e7c: 616d5c73 smcvs 54723 - 5e80: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5e84: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5e88: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5e8c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5e90: 775c7374 undefined - 5e94: 6f632d73 svcvs 0x00632d73 - 5e98: 6f72746e svcvs 0x0072746e - 5e9c: 65575c6c ldrbvs r5, [r7, #-3180] - 5ea0: 65687461 strbvs r7, [r8, #-1121]! - 5ea4: 74532072 ldrbvc r2, [r3], #-114 - 5ea8: 6f697461 svcvs 0x00697461 - 5eac: 6f43206e svcvs 0x0043206e - 5eb0: 6f72746e svcvs 0x0072746e - 5eb4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5eb8: 414d535c cmpmi sp, ip, asr r3 - 5ebc: 6f535c43 svcvs 0x00535c43 - 5ec0: 65637275 strbvs r7, [r3, #-629]! - 5ec4: 6461525c strbtvs r5, [r1], #-604 - 5ec8: 614d6f69 cmpvs sp, r9, ror #30 - 5ecc: 6567616e strbvs r6, [r7, #-366]! - 5ed0: 746e656d strbtvc r6, [lr], #-1389 - 5ed4: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 5ed8: 41205241 teqmi r0, r1, asr #4 - 5edc: 2049534e subcs r5, r9, lr, asr #6 - 5ee0: 2b432f43 blcs 10d1bf4 - 5ee4: 6f43202b svcvs 0x0043202b - 5ee8: 6c69706d stclvs 0, cr7, [r9], #-436 - 5eec: 56207265 strtpl r7, [r0], -r5, ror #4 - 5ef0: 30332e35 eorscc r2, r3, r5, lsr lr - 5ef4: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 5ef8: 35393231 ldrcc r3, [r9, #-561]! - 5efc: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 5f00: 43494b20 movtmi r4, #39712 ; 0x9b20 - 5f04: 4154534b cmpmi r4, fp, asr #6 - 5f08: 66205452 undefined - 5f0c: 4120726f teqmi r0, pc, ror #4 - 5f10: 01004d52 tsteq r0, r2, asr sp - 5f14: 000028c4 andeq r2, r0, r4, asr #17 - 5f18: 0000010c andeq r0, r0, ip, lsl #2 - 5f1c: 0001070f andeq r0, r1, pc, lsl #14 - 5f20: 6d6f6300 stclvs 3, cr6, [pc] - 5f24: 646e616d strbtvs r6, [lr], #-365 - 5f28: 7663785f undefined - 5f2c: 64655f72 strbtvs r5, [r5], #-3954 - 5f30: 113e0c00 teqne lr, r0, lsl #24 - 5f34: 46191001 ldrmi r1, [r9], -r1 - 5f38: 10020000 andne r0, r2, r0 - 5f3c: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} - 5f40: 3e0c006e cdpcc 0, 0, cr0, cr12, cr14, {3} - 5f44: 45ec102a strbmi r1, [ip, #42]! - 5f48: 74110000 ldrvc r0, [r1] - 5f4c: 6843706d stmdavs r3, {r0, r2, r3, r5, r6, ip, sp, lr}^ - 5f50: 656e6e61 strbvs r6, [lr, #-3681]! - 5f54: 400c006c andmi r0, ip, ip, rrx - 5f58: 46191014 undefined - 5f5c: 00000000 andeq r0, r0, r0 - 5f60: 00000114 andeq r0, r0, r4, lsl r1 - 5f64: 05000003 streq r0, [r0, #-3] - 5f68: 01040000 tsteq r4, r0 - 5f6c: 445c3a43 ldrbmi r3, [ip], #-2627 - 5f70: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5f74: 73746e65 cmnvc r4, #1616 ; 0x650 - 5f78: 646e6120 strbtvs r6, [lr], #-288 - 5f7c: 74655320 strbtvc r5, [r5], #-800 - 5f80: 676e6974 undefined - 5f84: 616d5c73 smcvs 54723 - 5f88: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5f8c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5f90: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5f94: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5f98: 775c7374 undefined - 5f9c: 6f632d73 svcvs 0x00632d73 - 5fa0: 6f72746e svcvs 0x0072746e - 5fa4: 65575c6c ldrbvs r5, [r7, #-3180] - 5fa8: 65687461 strbvs r7, [r8, #-1121]! - 5fac: 74532072 ldrbvc r2, [r3], #-114 - 5fb0: 6f697461 svcvs 0x00697461 - 5fb4: 6f43206e svcvs 0x0043206e - 5fb8: 6f72746e svcvs 0x0072746e - 5fbc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5fc0: 414d535c cmpmi sp, ip, asr r3 - 5fc4: 6f535c43 svcvs 0x00535c43 - 5fc8: 65637275 strbvs r7, [r3, #-629]! - 5fcc: 6461525c strbtvs r5, [r1], #-604 - 5fd0: 614d6f69 cmpvs sp, r9, ror #30 - 5fd4: 6567616e strbvs r6, [r7, #-366]! - 5fd8: 746e656d strbtvc r6, [lr], #-1389 - 5fdc: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 5fe0: 41205241 teqmi r0, r1, asr #4 - 5fe4: 2049534e subcs r5, r9, lr, asr #6 - 5fe8: 2b432f43 blcs 10d1cfc - 5fec: 6f43202b svcvs 0x0043202b - 5ff0: 6c69706d stclvs 0, cr7, [r9], #-436 - 5ff4: 56207265 strtpl r7, [r0], -r5, ror #4 - 5ff8: 30332e35 eorscc r2, r3, r5, lsr lr - 5ffc: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 6000: 35393231 ldrcc r3, [r9, #-561]! - 6004: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 6008: 43494b20 movtmi r4, #39712 ; 0x9b20 - 600c: 4154534b cmpmi r4, fp, asr #6 - 6010: 66205452 undefined - 6014: 4120726f teqmi r0, pc, ror #4 - 6018: 01004d52 tsteq r0, r2, asr sp - 601c: 000028c4 andeq r2, r0, r4, asr #17 - 6020: 0000010c andeq r0, r0, ip, lsl #2 - 6024: 0001160f andeq r1, r1, pc, lsl #12 - 6028: 6c616300 stclvs 3, cr6, [r1] - 602c: 616c7563 cmnvs ip, r3, ror #10 - 6030: 655f6574 ldrbvs r6, [pc, #-1396] ; 5ac4 - 6034: 61765f64 cmnvs r6, r4, ror #30 - 6038: 0065756c rsbeq r7, r5, ip, ror #10 - 603c: 0905a50b stmdbeq r5, {r0, r1, r3, r8, sl, sp, pc} - 6040: 45ec1000 strbmi r1, [ip]! - 6044: 10000000 andne r0, r0, r0 - 6048: 67615f78 undefined - 604c: 63635f63 cmnvs r3, #396 ; 0x18c - 6050: 64655f61 strbtvs r5, [r5], #-3937 - 6054: 74756f5f ldrbtvc r6, [r5], #-3935 - 6058: 05a50b00 streq r0, [r5, #2816]! - 605c: 46191025 ldrmi r1, [r9], -r5, lsr #32 - 6060: 75110000 ldrvc r0, [r1] - 6064: 64453233 strbvs r3, [r5], #-563 - 6068: 006c6156 rsbeq r6, ip, r6, asr r1 - 606c: 0c05a70b stceq 7, cr10, [r5], {11} - 6070: 00461910 subeq r1, r6, r0, lsl r9 - 6074: 00000000 andeq r0, r0, r0 - 6078: 00000348 andeq r0, r0, r8, asr #6 - 607c: 06840003 streq r0, [r4], r3 - 6080: 01040000 tsteq r4, r0 - 6084: 445c3a43 ldrbmi r3, [ip], #-2627 - 6088: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 608c: 73746e65 cmnvc r4, #1616 ; 0x650 - 6090: 646e6120 strbtvs r6, [lr], #-288 - 6094: 74655320 strbtvc r5, [r5], #-800 - 6098: 676e6974 undefined - 609c: 616d5c73 smcvs 54723 - 60a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 60a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 60a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 60ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 60b0: 775c7374 undefined - 60b4: 6f632d73 svcvs 0x00632d73 - 60b8: 6f72746e svcvs 0x0072746e - 60bc: 65575c6c ldrbvs r5, [r7, #-3180] - 60c0: 65687461 strbvs r7, [r8, #-1121]! - 60c4: 74532072 ldrbvc r2, [r3], #-114 - 60c8: 6f697461 svcvs 0x00697461 - 60cc: 6f43206e svcvs 0x0043206e - 60d0: 6f72746e svcvs 0x0072746e - 60d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 60d8: 414d535c cmpmi sp, ip, asr r3 - 60dc: 6f535c43 svcvs 0x00535c43 - 60e0: 65637275 strbvs r7, [r3, #-629]! - 60e4: 6172545c cmnvs r2, ip, asr r4 - 60e8: 6563736e strbvs r7, [r3, #-878]! - 60ec: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 60f0: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 60f4: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} - 60f8: 746e6d67 strbtvc r6, [lr], #-3431 - 60fc: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 6100: 41205241 teqmi r0, r1, asr #4 - 6104: 2049534e subcs r5, r9, lr, asr #6 - 6108: 2b432f43 blcs 10d1e1c - 610c: 6f43202b svcvs 0x0043202b - 6110: 6c69706d stclvs 0, cr7, [r9], #-436 - 6114: 56207265 strtpl r7, [r0], -r5, ror #4 - 6118: 30332e35 eorscc r2, r3, r5, lsr lr - 611c: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 6120: 35393231 ldrcc r3, [r9, #-561]! - 6124: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 6128: 43494b20 movtmi r4, #39712 ; 0x9b20 - 612c: 4154534b cmpmi r4, fp, asr #6 - 6130: 66205452 undefined - 6134: 4120726f teqmi r0, pc, ror #4 - 6138: 01004d52 tsteq r0, r2, asr sp - 613c: 00003704 andeq r3, r0, r4, lsl #14 - 6140: 00000140 andeq r0, r0, r0, asr #2 - 6144: 736e7502 cmnvc lr, #8388608 ; 0x800000 - 6148: 656e6769 strbvs r6, [lr, #-1897]! - 614c: 6f6c2064 svcvs 0x006c2064 - 6150: 0400676e streq r6, [r0], #-1902 - 6154: 8a130307 bhi 4c6d78 - 6158: 02000002 andeq r0, r0, #2 ; 0x2 - 615c: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ - 6160: 64656e67 strbtvs r6, [r5], #-3687 - 6164: 61686320 cmnvs r8, r0, lsr #6 - 6168: 08010072 stmdaeq r1, {r1, r4, r5, r6} - 616c: 03391303 teqeq r9, #201326592 ; 0xc000000 - 6170: 13050000 movwne r0, #20480 ; 0x5000 - 6174: 00000339 andeq r0, r0, r9, lsr r3 - 6178: 027d1303 rsbseq r1, sp, #201326592 ; 0xc000000 - 617c: 13070000 movwne r0, #28672 ; 0x7000 - 6180: 0000031c andeq r0, r0, ip, lsl r3 - 6184: 00020f14 andeq r0, r2, r4, lsl pc - 6188: 73655400 cmnvc r5, #0 ; 0x0 - 618c: 6f4d5f74 svcvs 0x004d5f74 - 6190: 745f6564 ldrbvc r6, [pc], #1380 ; 6198 - 6194: 01006761 tsteq r0, r1, ror #14 - 6198: 414d5315 cmpmi sp, r5, lsl r3 - 619c: 45545f43 ldrbmi r5, [r4, #-3907] - 61a0: 4d5f5453 cfldrdmi mvd5, [pc, #-332] - 61a4: 5f45444f svcpl 0x0045444f - 61a8: 454c4449 strbmi r4, [ip, #-1097] - 61ac: 53150000 tstpl r5, #0 ; 0x0 - 61b0: 5f43414d svcpl 0x0043414d - 61b4: 54534554 ldrbpl r4, [r3], #-1364 - 61b8: 444f4d5f strbmi r4, [pc], #3423 ; 61c0 - 61bc: 55505f45 ldrbpl r5, [r0, #-3909] - 61c0: 5f45534c svcpl 0x0045534c - 61c4: 53425250 movtpl r5, #8784 ; 0x2250 - 61c8: 58545f39 ldmdapl r4, {r0, r3, r4, r5, r8, r9, sl, fp, ip, lr}^ - 61cc: 0058525f subseq r5, r8, pc, asr r2 - 61d0: 4d531501 cfldr64mi mvdx1, [r3, #-4] - 61d4: 545f4341 ldrbpl r4, [pc], #833 ; 61dc - 61d8: 5f545345 svcpl 0x00545345 - 61dc: 45444f4d strbmi r4, [r4, #-3917] - 61e0: 5245505f subpl r5, r5, #95 ; 0x5f - 61e4: 5f58545f svcpl 0x0058545f - 61e8: 02005852 andeq r5, r0, #5373952 ; 0x520000 - 61ec: 414d5315 cmpmi sp, r5, lsl r3 - 61f0: 45545f43 ldrbmi r5, [r4, #-3907] - 61f4: 4d5f5453 cfldrdmi mvd5, [pc, #-332] - 61f8: 5f45444f svcpl 0x0045444f - 61fc: 474e4152 smlsldmi r4, lr, r2, r1 - 6200: 58545f45 ldmdapl r4, {r0, r2, r6, r8, r9, sl, fp, ip, lr}^ - 6204: 0058525f subseq r5, r8, pc, asr r2 - 6208: 4d531503 cfldr64mi mvdx1, [r3, #-12] - 620c: 545f4341 ldrbpl r4, [pc], #833 ; 6214 - 6210: 5f545345 svcpl 0x00545345 - 6214: 45444f4d strbmi r4, [r4, #-3917] - 6218: 4e4f435f mcrmi 3, 2, r4, cr15, cr15, {2} - 621c: 554e4954 strbpl r4, [lr, #-2388] - 6220: 5f53554f svcpl 0x0053554f - 6224: 4d5f5854 ldclmi 8, cr5, [pc, #-336] - 6228: 0400444f streq r4, [r0], #-1103 - 622c: 414d5315 cmpmi sp, r5, lsl r3 - 6230: 45545f43 ldrbmi r5, [r4, #-3907] - 6234: 4d5f5453 cfldrdmi mvd5, [pc, #-332] - 6238: 5f45444f svcpl 0x0045444f - 623c: 544e4f43 strbpl r4, [lr], #-3907 - 6240: 4f554e49 svcmi 0x00554e49 - 6244: 545f5355 ldrbpl r5, [pc], #853 ; 624c - 6248: 4f4e5f58 svcmi 0x004e5f58 - 624c: 00444f4d subeq r4, r4, sp, asr #30 - 6250: 4d531505 cfldr64mi mvdx1, [r3, #-20] - 6254: 545f4341 ldrbpl r4, [pc], #833 ; 625c - 6258: 5f545345 svcpl 0x00545345 - 625c: 45444f4d strbmi r4, [r4, #-3917] - 6260: 4e4f435f mcrmi 3, 2, r4, cr15, cr15, {2} - 6264: 554e4954 strbpl r4, [lr, #-2388] - 6268: 5f53554f svcpl 0x0053554f - 626c: 06005852 undefined - 6270: 414d5315 cmpmi sp, r5, lsl r3 - 6274: 414d5f43 cmpmi sp, r3, asr #30 - 6278: 45545f58 ldrbmi r5, [r4, #-3928] - 627c: 4d5f5453 cfldrdmi mvd5, [pc, #-332] - 6280: 5345444f movtpl r4, #21583 ; 0x544f - 6284: 14000700 strne r0, [r0], #-1792 - 6288: 0000027d andeq r0, r0, sp, ror r2 - 628c: 73726556 cmnvc r2, #360710144 ; 0x15800000 - 6290: 656e6f69 strbvs r6, [lr, #-3945]! - 6294: 6e455f64 cdpvs 15, 4, cr5, cr5, cr4, {3} - 6298: 79746974 ldmdbvc r4!, {r2, r4, r5, r6, r8, fp, sp, lr}^ - 629c: 6761745f undefined - 62a0: 48150100 ldmdami r5, {r8} - 62a4: 414d5f57 cmpmi sp, r7, asr pc - 62a8: 565f4143 ldrbpl r4, [pc], -r3, asr #2 - 62ac: 49535245 ldmdbmi r3, {r0, r2, r6, r9, ip, lr}^ - 62b0: 00004e4f andeq r4, r0, pc, asr #28 - 62b4: 5f575315 svcpl 0x00575315 - 62b8: 43414d53 movtmi r4, #7507 ; 0x1d53 - 62bc: 5245565f subpl r5, r5, #99614720 ; 0x5f00000 - 62c0: 4e4f4953 mcrmi 9, 2, r4, cr15, cr3, {2} - 62c4: 53150100 tstpl r5, #0 ; 0x0 - 62c8: 4f425f57 svcmi 0x00425f57 - 62cc: 5453544f ldrbpl r5, [r3], #-1103 - 62d0: 5f504152 svcpl 0x00504152 - 62d4: 53524556 cmppl r2, #360710144 ; 0x15800000 - 62d8: 004e4f49 subeq r4, lr, r9, asr #30 - 62dc: 414d1502 cmpmi sp, r2, lsl #10 - 62e0: 45565f58 ldrbmi r5, [r6, #-3928] - 62e4: 4f495352 svcmi 0x00495352 - 62e8: 5f44454e svcpl 0x0044454e - 62ec: 49544e45 ldmdbmi r4, {r0, r2, r6, r9, sl, fp, lr}^ - 62f0: 03005954 movweq r5, #2388 ; 0x954 - 62f4: 028a1600 addeq r1, sl, #0 ; 0x0 - 62f8: 95130000 ldrls r0, [r3] - 62fc: 17000002 strne r0, [r0, -r2] - 6300: 95160002 ldrls r0, [r6, #-2] - 6304: 15000002 strne r0, [r0, #-2] - 6308: 2a1701cc bcs 5c6a40 - 630c: 02d91800 sbcseq r1, r9, #0 ; 0x0 - 6310: 65760000 ldrbvs r0, [r6]! - 6314: 6f697372 svcvs 0x00697372 - 6318: 6e615f6e cdpvs 15, 6, cr5, cr1, cr14, {3} - 631c: 69735f64 ldmdbvs r3!, {r2, r5, r6, r8, r9, sl, fp, ip, lr}^ - 6320: 745f657a ldrbvc r6, [pc], #1402 ; 6328 - 6324: 08006761 stmdaeq r0, {r0, r5, r6, r8, r9, sl, sp, lr} - 6328: 01fa1519 mvnseq r1, r9, lsl r5 - 632c: 72657601 rsbvc r7, r5, #1048576 ; 0x100000 - 6330: 6e6f6973 mcrvs 9, 3, r6, cr15, cr3, {3} - 6334: 6464615f strbtvs r6, [r4], #-351 - 6338: 00230200 eoreq r0, r3, r0, lsl #4 - 633c: 031c1319 tsteq ip, #1677721600 ; 0x64000000 - 6340: 77010000 strvc r0, [r1, -r0] - 6344: 5f64726f svcpl 0x0064726f - 6348: 657a6973 ldrbvs r6, [sl, #-2419]! - 634c: 04230200 strteq r0, [r3], #-512 - 6350: 75461a00 strbvc r1, [r6, #-2560] - 6354: 6552636e ldrbvs r6, [r2, #-878] - 6358: 6e727574 mrcvs 5, 3, r7, cr2, cr4, {3} - 635c: 1000745f andne r7, r0, pc, asr r4 - 6360: 00002af6 strdeq r2, [r0], -r6 - 6364: 1a03500c bne da39c - 6368: 74736554 ldrbtvc r6, [r3], #-1364 - 636c: 646f4d5f strbtvs r4, [pc], #3423 ; 6374 - 6370: 00745f65 rsbseq r5, r4, r5, ror #30 - 6374: 0e028c15 mcreq 12, 0, r8, cr2, cr5, {0} - 6378: 561a032e ldrpl r0, [sl], -lr, lsr #6 - 637c: 69737265 ldmdbvs r3!, {r0, r2, r5, r6, r9, ip, sp, lr}^ - 6380: 64656e6f strbtvs r6, [r5], #-3695 - 6384: 746e455f strbtvc r4, [lr], #-1375 - 6388: 5f797469 svcpl 0x00797469 - 638c: 8f150074 svchi 0x00150074 - 6390: 02400e04 subeq r0, r0, #64 ; 0x40 - 6394: 6e69751a mcrvs 5, 3, r7, cr9, cr10, {0} - 6398: 745f3874 ldrbvc r3, [pc], #2164 ; 63a0 - 639c: 01e31500 mvneq r1, r0, lsl #10 - 63a0: 1a191a01 bne 64cbac - 63a4: 6c6f6f62 stclvs 15, cr6, [pc], #-392 - 63a8: 1500745f strne r7, [r0, #-1119] - 63ac: 2c01069c stccs 6, cr0, [r1], {156} - 63b0: 69751a13 ldmdbvs r5!, {r0, r1, r4, r9, fp, ip}^ - 63b4: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 - 63b8: 1500745f strne r7, [r0, #-1119] - 63bc: 1e0101cc adfnedm f0, f1, #4.0 - 63c0: 00000019 andeq r0, r0, r9, lsl r0 - 63c4: 000000ec andeq r0, r0, ip, ror #1 - 63c8: 06840003 streq r0, [r4], r3 - 63cc: 01040000 tsteq r4, r0 - 63d0: 445c3a43 ldrbmi r3, [ip], #-2627 - 63d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 63d8: 73746e65 cmnvc r4, #1616 ; 0x650 - 63dc: 646e6120 strbtvs r6, [lr], #-288 - 63e0: 74655320 strbtvc r5, [r5], #-800 - 63e4: 676e6974 undefined - 63e8: 616d5c73 smcvs 54723 - 63ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 63f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 63f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 63f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 63fc: 775c7374 undefined - 6400: 6f632d73 svcvs 0x00632d73 - 6404: 6f72746e svcvs 0x0072746e - 6408: 65575c6c ldrbvs r5, [r7, #-3180] - 640c: 65687461 strbvs r7, [r8, #-1121]! - 6410: 74532072 ldrbvc r2, [r3], #-114 - 6414: 6f697461 svcvs 0x00697461 - 6418: 6f43206e svcvs 0x0043206e - 641c: 6f72746e svcvs 0x0072746e - 6420: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6424: 414d535c cmpmi sp, ip, asr r3 - 6428: 6f535c43 svcvs 0x00535c43 - 642c: 65637275 strbvs r7, [r3, #-629]! - 6430: 6172545c cmnvs r2, ip, asr r4 - 6434: 6563736e strbvs r7, [r3, #-878]! - 6438: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 643c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 6440: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} - 6444: 746e6d67 strbtvc r6, [lr], #-3431 - 6448: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 644c: 41205241 teqmi r0, r1, asr #4 - 6450: 2049534e subcs r5, r9, lr, asr #6 - 6454: 2b432f43 blcs 10d2168 - 6458: 6f43202b svcvs 0x0043202b - 645c: 6c69706d stclvs 0, cr7, [r9], #-436 - 6460: 56207265 strtpl r7, [r0], -r5, ror #4 - 6464: 30332e35 eorscc r2, r3, r5, lsr lr - 6468: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 646c: 35393231 ldrcc r3, [r9, #-561]! - 6470: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 6474: 43494b20 movtmi r4, #39712 ; 0x9b20 - 6478: 4154534b cmpmi r4, fp, asr #6 - 647c: 66205452 undefined - 6480: 4120726f teqmi r0, pc, ror #4 - 6484: 01004d52 tsteq r0, r2, asr sp - 6488: 00003704 andeq r3, r0, r4, lsl #14 - 648c: 00000140 andeq r0, r0, r0, asr #2 - 6490: 73496d04 movtvc r6, #40196 ; 0x9d04 - 6494: 6d6f7250 sfmvs f7, 2, [pc, #-320]! - 6498: 6f637369 svcvs 0x00637369 - 649c: 6f4d7375 svcvs 0x004d7375 - 64a0: 10006564 andne r6, r0, r4, ror #10 - 64a4: 000063a3 andeq r6, r0, r3, lsr #7 - 64a8: 000f7a0f andeq r7, pc, pc, lsl #20 - 64ac: 52ad0305 adcpl r0, sp, #335544320 ; 0x14000000 - 64b0: 00000040 andeq r0, r0, r0, asr #32 - 64b4: 0000010c andeq r0, r0, ip, lsl #2 - 64b8: 06840003 streq r0, [r4], r3 - 64bc: 06040000 streq r0, [r4], -r0 - 64c0: 445c3a43 ldrbmi r3, [ip], #-2627 - 64c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 64c8: 73746e65 cmnvc r4, #1616 ; 0x650 - 64cc: 646e6120 strbtvs r6, [lr], #-288 - 64d0: 74655320 strbtvc r5, [r5], #-800 - 64d4: 676e6974 undefined - 64d8: 616d5c73 smcvs 54723 - 64dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 64e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 64e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 64e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 64ec: 775c7374 undefined - 64f0: 6f632d73 svcvs 0x00632d73 - 64f4: 6f72746e svcvs 0x0072746e - 64f8: 65575c6c ldrbvs r5, [r7, #-3180] - 64fc: 65687461 strbvs r7, [r8, #-1121]! - 6500: 74532072 ldrbvc r2, [r3], #-114 - 6504: 6f697461 svcvs 0x00697461 - 6508: 6f43206e svcvs 0x0043206e - 650c: 6f72746e svcvs 0x0072746e - 6510: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6514: 414d535c cmpmi sp, ip, asr r3 - 6518: 6f535c43 svcvs 0x00535c43 - 651c: 65637275 strbvs r7, [r3, #-629]! - 6520: 6172545c cmnvs r2, ip, asr r4 - 6524: 6563736e strbvs r7, [r3, #-878]! - 6528: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 652c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 6530: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} - 6534: 746e6d67 strbtvc r6, [lr], #-3431 - 6538: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 653c: 41205241 teqmi r0, r1, asr #4 - 6540: 2049534e subcs r5, r9, lr, asr #6 - 6544: 2b432f43 blcs 10d2258 - 6548: 6f43202b svcvs 0x0043202b - 654c: 6c69706d stclvs 0, cr7, [r9], #-436 - 6550: 56207265 strtpl r7, [r0], -r5, ror #4 - 6554: 30332e35 eorscc r2, r3, r5, lsr lr - 6558: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 655c: 35393231 ldrcc r3, [r9, #-561]! - 6560: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 6564: 43494b20 movtmi r4, #39712 ; 0x9b20 - 6568: 4154534b cmpmi r4, fp, asr #6 - 656c: 66205452 undefined - 6570: 4120726f teqmi r0, pc, ror #4 - 6574: 01004d52 tsteq r0, r2, asr sp - 6578: 004038c8 subeq r3, r0, r8, asr #17 - 657c: 004038ce subeq r3, r0, lr, asr #17 - 6580: 00003c28 andeq r3, r0, r8, lsr #24 - 6584: 000022c6 andeq r2, r0, r6, asr #5 - 6588: 00608310 rsbeq r8, r0, r0, lsl r3 - 658c: 010c0900 tsteq ip, r0, lsl #18 - 6590: 4c4d0000 marmi acc0, r0, sp - 6594: 6547454d strbvs r4, [r7, #-1357] - 6598: 6f725074 svcvs 0x00725074 - 659c: 6373696d cmnvs r3, #1785856 ; 0x1b4000 - 65a0: 73756f75 cmnvc r5, #468 ; 0x1d4 - 65a4: 65646f4d strbvs r6, [r4, #-3917]! - 65a8: 029f0100 addseq r0, pc, #0 ; 0x0 - 65ac: a3100108 tstge r0, #2 ; 0x2 - 65b0: 08000063 stmdaeq r0, {r0, r1, r5, r6} - 65b4: c8000015 stmdagt r0, {r0, r2, r4} - 65b8: ce004038 mcrgt 0, 0, r4, cr0, cr8, {1} - 65bc: 00004038 andeq r4, r0, r8, lsr r0 - 65c0: 00000000 andeq r0, r0, r0 - 65c4: 00000174 andeq r0, r0, r4, ror r1 - 65c8: 06840003 streq r0, [r4], r3 - 65cc: 06040000 streq r0, [r4], -r0 - 65d0: 445c3a43 ldrbmi r3, [ip], #-2627 - 65d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 65d8: 73746e65 cmnvc r4, #1616 ; 0x650 - 65dc: 646e6120 strbtvs r6, [lr], #-288 - 65e0: 74655320 strbtvc r5, [r5], #-800 - 65e4: 676e6974 undefined - 65e8: 616d5c73 smcvs 54723 - 65ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 65f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 65f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 65f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 65fc: 775c7374 undefined - 6600: 6f632d73 svcvs 0x00632d73 - 6604: 6f72746e svcvs 0x0072746e - 6608: 65575c6c ldrbvs r5, [r7, #-3180] - 660c: 65687461 strbvs r7, [r8, #-1121]! - 6610: 74532072 ldrbvc r2, [r3], #-114 - 6614: 6f697461 svcvs 0x00697461 - 6618: 6f43206e svcvs 0x0043206e - 661c: 6f72746e svcvs 0x0072746e - 6620: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6624: 414d535c cmpmi sp, ip, asr r3 - 6628: 6f535c43 svcvs 0x00535c43 - 662c: 65637275 strbvs r7, [r3, #-629]! - 6630: 6172545c cmnvs r2, ip, asr r4 - 6634: 6563736e strbvs r7, [r3, #-878]! - 6638: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 663c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 6640: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} - 6644: 746e6d67 strbtvc r6, [lr], #-3431 - 6648: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 664c: 41205241 teqmi r0, r1, asr #4 - 6650: 2049534e subcs r5, r9, lr, asr #6 - 6654: 2b432f43 blcs 10d2368 - 6658: 6f43202b svcvs 0x0043202b - 665c: 6c69706d stclvs 0, cr7, [r9], #-436 - 6660: 56207265 strtpl r7, [r0], -r5, ror #4 - 6664: 30332e35 eorscc r2, r3, r5, lsr lr - 6668: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 666c: 35393231 ldrcc r3, [r9, #-561]! - 6670: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 6674: 43494b20 movtmi r4, #39712 ; 0x9b20 - 6678: 4154534b cmpmi r4, fp, asr #6 - 667c: 66205452 undefined - 6680: 4120726f teqmi r0, pc, ror #4 - 6684: 01004d52 tsteq r0, r2, asr sp - 6688: 004038d0 ldrdeq r3, [r0], #-128 - 668c: 00403974 subeq r3, r0, r4, ror r9 - 6690: 00003cdc ldrdeq r3, [r0], -ip - 6694: 00002318 andeq r2, r0, r8, lsl r3 - 6698: 00608310 rsbeq r8, r0, r0, lsl r3 - 669c: 01770900 cmneq r7, r0, lsl #18 - 66a0: 4c4d0000 marmi acc0, r0, sp - 66a4: 6152454d cmpvs r2, sp, asr #10 - 66a8: 496f6964 stmdbmi pc!, {r2, r5, r6, r8, fp, sp, lr}^ - 66ac: 0074696e rsbseq r6, r4, lr, ror #18 - 66b0: 0e02be01 cdpeq 14, 0, cr11, cr2, cr1, {0} - 66b4: 63511001 cmpvs r1, #1 ; 0x1 - 66b8: 151c0000 ldrne r0, [ip] - 66bc: 38d00000 ldmcc r0, {}^ - 66c0: 39740040 ldmdbcc r4!, {r6}^ - 66c4: 69040040 stmdbvs r4, {r6} - 66c8: 63941000 orrsvs r1, r4, #0 ; 0x0 - 66cc: c0010000 andgt r0, r1, r0 - 66d0: 05001202 streq r1, [r0, #-514] - 66d4: 4052ae03 subsmi sl, r2, r3, lsl #28 - 66d8: 33750b00 cmncc r5, #0 ; 0x0 - 66dc: 6f6f4c32 svcvs 0x006f4c32 - 66e0: 76694470 undefined - 66e4: 02c10100 sbceq r0, r1, #0 ; 0x0 - 66e8: 63b1100c undefined instruction 0x63b1100c - 66ec: 156c0000 strbne r0, [ip]! - 66f0: 590c0000 stmdbpl ip, {} - 66f4: e0000001 and r0, r0, r1 - 66f8: f4004038 vst4.8 {d4-d7}, [r0, :256], r8 - 66fc: 0d004038 stceq 0, cr4, [r0, #-224] - 6700: 00000158 andeq r0, r0, r8, asr r1 - 6704: 00680810 rsbeq r0, r8, r0, lsl r8 - 6708: 4038ee00 eorsmi lr, r8, r0, lsl #28 - 670c: 4038f000 eorsmi pc, r8, r0 - 6710: 2f100e00 svccs 0x00100e00 - 6714: 74000068 strvc r0, [r0], #-104 - 6718: 00000015 andeq r0, r0, r5, lsl r0 - 671c: 01760d00 cmneq r6, r0, lsl #26 - 6720: 18100000 ldmdane r0, {} - 6724: f4000069 vst4.16 {d0-d3}, [r0, :128], r9 - 6728: 4c004038 stcmi 0, cr4, [r0], {56} - 672c: 0f004039 svceq 0x00004039 - 6730: 00693110 rsbeq r3, r9, r0, lsl r1 - 6734: 00157c00 andseq r7, r5, r0, lsl #24 - 6738: 00000000 andeq r0, r0, r0 - 673c: 0000010c andeq r0, r0, ip, lsl #2 - 6740: 06840003 streq r0, [r4], r3 - 6744: 01040000 tsteq r4, r0 - 6748: 445c3a43 ldrbmi r3, [ip], #-2627 - 674c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6750: 73746e65 cmnvc r4, #1616 ; 0x650 - 6754: 646e6120 strbtvs r6, [lr], #-288 - 6758: 74655320 strbtvc r5, [r5], #-800 - 675c: 676e6974 undefined - 6760: 616d5c73 smcvs 54723 - 6764: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6768: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 676c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6770: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6774: 775c7374 undefined - 6778: 6f632d73 svcvs 0x00632d73 - 677c: 6f72746e svcvs 0x0072746e - 6780: 65575c6c ldrbvs r5, [r7, #-3180] - 6784: 65687461 strbvs r7, [r8, #-1121]! - 6788: 74532072 ldrbvc r2, [r3], #-114 - 678c: 6f697461 svcvs 0x00697461 - 6790: 6f43206e svcvs 0x0043206e - 6794: 6f72746e svcvs 0x0072746e - 6798: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 679c: 414d535c cmpmi sp, ip, asr r3 - 67a0: 6f535c43 svcvs 0x00535c43 - 67a4: 65637275 strbvs r7, [r3, #-629]! - 67a8: 6172545c cmnvs r2, ip, asr r4 - 67ac: 6563736e strbvs r7, [r3, #-878]! - 67b0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 67b4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 67b8: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} - 67bc: 746e6d67 strbtvc r6, [lr], #-3431 - 67c0: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 67c4: 41205241 teqmi r0, r1, asr #4 - 67c8: 2049534e subcs r5, r9, lr, asr #6 - 67cc: 2b432f43 blcs 10d24e0 - 67d0: 6f43202b svcvs 0x0043202b - 67d4: 6c69706d stclvs 0, cr7, [r9], #-436 - 67d8: 56207265 strtpl r7, [r0], -r5, ror #4 - 67dc: 30332e35 eorscc r2, r3, r5, lsr lr - 67e0: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 67e4: 35393231 ldrcc r3, [r9, #-561]! - 67e8: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 67ec: 43494b20 movtmi r4, #39712 ; 0x9b20 - 67f0: 4154534b cmpmi r4, fp, asr #6 - 67f4: 66205452 undefined - 67f8: 4120726f teqmi r0, pc, ror #4 - 67fc: 01004d52 tsteq r0, r2, asr sp - 6800: 00003704 andeq r3, r0, r4, lsl #14 - 6804: 00000140 andeq r0, r0, r0, asr #2 - 6808: 00010f10 andeq r0, r1, r0, lsl pc - 680c: 4d4c4d00 stclmi 13, cr4, [ip] - 6810: 74655345 strbtvc r5, [r5], #-837 - 6814: 6d6f7250 sfmvs f7, 2, [pc, #-320]! - 6818: 75637369 strbvc r7, [r3, #-873]! - 681c: 4d73756f cfldr64mi mvdx7, [r3, #-444]! - 6820: 0065646f rsbeq r6, r5, pc, ror #8 - 6824: 0e02930f cdpeq 3, 0, cr9, cr2, cr15, {0} - 6828: 63511001 cmpvs r1, #1 ; 0x1 - 682c: 11000000 tstne r0, r0 - 6830: 72507369 subsvc r7, r0, #-1543503871 ; 0xa4000001 - 6834: 73696d6f cmnvc r9, #7104 ; 0x1bc0 - 6838: 73756f63 cmnvc r5, #396 ; 0x18c - 683c: 65646f4d strbvs r6, [r4, #-3917]! - 6840: 02930f00 addseq r0, r3, #0 ; 0x0 - 6844: 63a3102c undefined instruction 0x63a3102c - 6848: 00000000 andeq r0, r0, r0 - 684c: 000000f4 strdeq r0, [r0], -r4 - 6850: 06840003 streq r0, [r4], r3 - 6854: 01040000 tsteq r4, r0 - 6858: 445c3a43 ldrbmi r3, [ip], #-2627 - 685c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6860: 73746e65 cmnvc r4, #1616 ; 0x650 - 6864: 646e6120 strbtvs r6, [lr], #-288 - 6868: 74655320 strbtvc r5, [r5], #-800 - 686c: 676e6974 undefined - 6870: 616d5c73 smcvs 54723 - 6874: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6878: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 687c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6880: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6884: 775c7374 undefined - 6888: 6f632d73 svcvs 0x00632d73 - 688c: 6f72746e svcvs 0x0072746e - 6890: 65575c6c ldrbvs r5, [r7, #-3180] - 6894: 65687461 strbvs r7, [r8, #-1121]! - 6898: 74532072 ldrbvc r2, [r3], #-114 - 689c: 6f697461 svcvs 0x00697461 - 68a0: 6f43206e svcvs 0x0043206e - 68a4: 6f72746e svcvs 0x0072746e - 68a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 68ac: 414d535c cmpmi sp, ip, asr r3 - 68b0: 6f535c43 svcvs 0x00535c43 - 68b4: 65637275 strbvs r7, [r3, #-629]! - 68b8: 6172545c cmnvs r2, ip, asr r4 - 68bc: 6563736e strbvs r7, [r3, #-878]! - 68c0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 68c4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 68c8: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} - 68cc: 746e6d67 strbtvc r6, [lr], #-3431 - 68d0: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} - 68d4: 41205241 teqmi r0, r1, asr #4 - 68d8: 2049534e subcs r5, r9, lr, asr #6 - 68dc: 2b432f43 blcs 10d25f0 - 68e0: 6f43202b svcvs 0x0043202b - 68e4: 6c69706d stclvs 0, cr7, [r9], #-436 - 68e8: 56207265 strtpl r7, [r0], -r5, ror #4 - 68ec: 30332e35 eorscc r2, r3, r5, lsr lr - 68f0: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 68f4: 35393231 ldrcc r3, [r9, #-561]! - 68f8: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 68fc: 43494b20 movtmi r4, #39712 ; 0x9b20 - 6900: 4154534b cmpmi r4, fp, asr #6 - 6904: 66205452 undefined - 6908: 4120726f teqmi r0, pc, ror #4 - 690c: 01004d52 tsteq r0, r2, asr sp - 6910: 00003704 andeq r3, r0, r4, lsl #14 - 6914: 00000140 andeq r0, r0, r0, asr #2 - 6918: 0000f412 andeq pc, r0, r2, lsl r4 - 691c: 696e4900 stmdbvs lr!, {r8, fp, lr}^ - 6920: 6c616974 stclvs 9, cr6, [r1], #-464 - 6924: 50657a69 rsbpl r7, r5, r9, ror #20 - 6928: 0f007968 svceq 0x00007968 - 692c: 000d02e7 andeq r0, sp, r7, ror #5 - 6930: 6e631300 cdpvs 3, 6, cr1, cr3, cr0, {0} - 6934: e90f0074 stmdb pc, {r2, r4, r5, r6} - 6938: 7e101402 cfmulsvc mvf1, mvf0, mvf2 - 693c: 00000061 andeq r0, r0, r1, rrx - 6940: 00000000 andeq r0, r0, r0 - 6944: 00000514 andeq r0, r0, r4, lsl r5 - 6948: 07ec0003 strbeq r0, [ip, r3]! - 694c: 01040000 tsteq r4, r0 - 6950: 445c3a43 ldrbmi r3, [ip], #-2627 - 6954: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6958: 73746e65 cmnvc r4, #1616 ; 0x650 - 695c: 646e6120 strbtvs r6, [lr], #-288 - 6960: 74655320 strbtvc r5, [r5], #-800 - 6964: 676e6974 undefined - 6968: 616d5c73 smcvs 54723 - 696c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6970: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6974: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6978: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 697c: 775c7374 undefined - 6980: 6f632d73 svcvs 0x00632d73 - 6984: 6f72746e svcvs 0x0072746e - 6988: 65575c6c ldrbvs r5, [r7, #-3180] - 698c: 65687461 strbvs r7, [r8, #-1121]! - 6990: 74532072 ldrbvc r2, [r3], #-114 - 6994: 6f697461 svcvs 0x00697461 - 6998: 6f43206e svcvs 0x0043206e - 699c: 6f72746e svcvs 0x0072746e - 69a0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 69a4: 414d535c cmpmi sp, ip, asr r3 - 69a8: 6f535c43 svcvs 0x00535c43 - 69ac: 65637275 strbvs r7, [r3, #-629]! - 69b0: 6172545c cmnvs r2, ip, asr r4 - 69b4: 6563736e strbvs r7, [r3, #-878]! - 69b8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 69bc: 65776f50 ldrbvs r6, [r7, #-3920]! - 69c0: 676e4d72 undefined - 69c4: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} - 69c8: 41490063 cmpmi r9, r3, rrx - 69cc: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 69d0: 43204953 teqmi r0, #1359872 ; 0x14c000 - 69d4: 2b2b432f blcs ad7698 - 69d8: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 69dc: 656c6970 strbvs r6, [ip, #-2416]! - 69e0: 35562072 ldrbcc r2, [r6, #-114] - 69e4: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 69e8: 31332e32 teqcc r3, r2, lsr lr - 69ec: 2f353932 svccs 0x00353932 - 69f0: 20323357 eorscs r3, r2, r7, asr r3 - 69f4: 4b43494b blmi 10d8f28 - 69f8: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 69fc: 6f662054 svcvs 0x00662054 - 6a00: 52412072 subpl r2, r1, #114 ; 0x72 - 6a04: d401004d strle r0, [r1], #-77 - 6a08: 8000003d andhi r0, r0, sp, lsr r0 - 6a0c: 03000001 movweq r0, #1 ; 0x1 - 6a10: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ - 6a14: 64656e67 strbtvs r6, [r5], #-3687 - 6a18: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} - 6a1c: 07040067 streq r0, [r4, -r7, rrx] - 6a20: 736e7503 cmnvc lr, #12582912 ; 0xc00000 - 6a24: 656e6769 strbvs r6, [lr, #-1897]! - 6a28: 68632064 stmdavs r3!, {r2, r5, r6, sp}^ - 6a2c: 01007261 tsteq r0, r1, ror #4 - 6a30: 01170a08 tsteq r7, r8, lsl #20 - 6a34: 09010000 stmdbeq r1, {} - 6a38: 74784567 ldrbtvc r4, [r8], #-1383 - 6a3c: 635f7557 cmpvs pc, #364904448 ; 0x15c00000 - 6a40: 67090000 strvs r0, [r9, -r0] - 6a44: 656d6954 strbvs r6, [sp, #-2388]! - 6a48: 5f755772 svcpl 0x00755772 - 6a4c: 09010063 stmdbeq r1, {r0, r1, r5, r6} - 6a50: 63745267 cmnvs r4, #1879048198 ; 0x70000006 - 6a54: 635f7557 cmpvs pc, #364904448 ; 0x15c00000 - 6a58: 08000200 stmdaeq r0, {r9} - 6a5c: 00000160 andeq r0, r0, r0, ror #2 - 6a60: 636f6c63 cmnvs pc, #25344 ; 0x6300 - 6a64: 6f635f6b svcvs 0x00635f6b - 6a68: 6769666e strbvs r6, [r9, -lr, ror #12]! - 6a6c: 6761745f undefined - 6a70: 67090100 strvs r0, [r9, -r0, lsl #2] - 6a74: 656d6954 strbvs r6, [sp, #-2388]! - 6a78: 6b615772 blvs 185c848 - 6a7c: 5f707565 svcpl 0x00707565 - 6a80: 09000063 stmdbeq r0, {r0, r1, r5, r6} - 6a84: 43545267 cmpmi r4, #1879048198 ; 0x70000006 - 6a88: 656b6157 strbvs r6, [fp, #-343]! - 6a8c: 635f7075 cmpvs pc, #117 ; 0x75 - 6a90: 67090100 strvs r0, [r9, -r0, lsl #2] - 6a94: 4e78614d rpwmiem f6, f0, #5.0 - 6a98: 6c436d75 mcrrvs 13, 7, r6, r3, cr5 - 6a9c: 5f6b636f svcpl 0x006b636f - 6aa0: 00020063 andeq r0, r2, r3, rrx - 6aa4: 0002db0b andeq sp, r2, fp, lsl #22 - 6aa8: 130c0400 movwne r0, #50176 ; 0xc400 - 6aac: 000004a9 andeq r0, r0, r9, lsr #9 - 6ab0: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ - 6ab4: 45755734 ldrbmi r5, [r5, #-1844]! - 6ab8: 2302006e movwcs r0, #8302 ; 0x206e - 6abc: 1f010400 svcne 0x00010400 - 6ac0: 04a9130c strteq r1, [r9], #780 - 6ac4: 6b010000 blvs 46acc - 6ac8: 57356962 ldrpl r6, [r5, -r2, ror #18]! - 6acc: 006e4575 rsbeq r4, lr, r5, ror r5 - 6ad0: 04002302 streq r2, [r0], #-770 - 6ad4: 130c1e01 movwne r1, #52737 ; 0xce01 - 6ad8: 000004a9 andeq r0, r0, r9, lsr #9 - 6adc: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ - 6ae0: 45755736 ldrbmi r5, [r5, #-1846]! - 6ae4: 2302006e movwcs r0, #8302 ; 0x206e - 6ae8: 1d010400 cfstrsne mvf0, [r1] - 6aec: 04a9130c strteq r1, [r9], #780 - 6af0: 6b010000 blvs 46af8 - 6af4: 57376962 ldrpl r6, [r7, -r2, ror #18]! - 6af8: 006e4575 rsbeq r4, lr, r5, ror r5 - 6afc: 04002302 streq r2, [r0], #-770 - 6b00: 130c1c01 movwne r1, #52225 ; 0xcc01 - 6b04: 000004a9 andeq r0, r0, r9, lsr #9 - 6b08: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ - 6b0c: 45755734 ldrbmi r5, [r5, #-1844]! - 6b10: 746e6576 strbtvc r6, [lr], #-1398 - 6b14: 00230200 eoreq r0, r3, r0, lsl #4 - 6b18: 0c1b0104 ldfeqs f0, [fp], {4} - 6b1c: 0004a913 andeq sl, r4, r3, lsl r9 - 6b20: 626b0100 rsbvs r0, fp, #0 ; 0x0 - 6b24: 75573569 ldrbvc r3, [r7, #-1385] - 6b28: 6e657645 cdpvs 6, 6, cr7, cr5, cr5, {2} - 6b2c: 23020074 movwcs r0, #8308 ; 0x2074 - 6b30: 1a010400 bne 47b38 - 6b34: 04a9130c strteq r1, [r9], #780 - 6b38: 6b010000 blvs 46b40 - 6b3c: 57366962 ldrpl r6, [r6, -r2, ror #18]! - 6b40: 65764575 ldrbvs r4, [r6, #-1397]! - 6b44: 0200746e andeq r7, r0, #1845493760 ; 0x6e000000 - 6b48: 01040023 tsteq r4, r3, lsr #32 - 6b4c: a9130c19 ldmdbge r3, {r0, r3, r4, sl, fp} - 6b50: 01000004 tsteq r0, r4 - 6b54: 3769626b strbcc r6, [r9, -fp, ror #4]! - 6b58: 76457557 undefined - 6b5c: 00746e65 rsbseq r6, r4, r5, ror #28 - 6b60: 04002302 streq r2, [r0], #-770 - 6b64: 130c1801 movwne r1, #51201 ; 0xc801 - 6b68: 000004a9 andeq r0, r0, r9, lsr #9 - 6b6c: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ - 6b70: 50755734 rsbspl r5, r5, r4, lsr r7 - 6b74: 02006c6f andeq r6, r0, #28416 ; 0x6f00 - 6b78: 01040023 tsteq r4, r3, lsr #32 - 6b7c: a9130c17 ldmdbge r3, {r0, r1, r2, r4, sl, fp} - 6b80: 01000004 tsteq r0, r4 - 6b84: 3569626b strbcc r6, [r9, #-619]! - 6b88: 6f507557 svcvs 0x00507557 - 6b8c: 2302006c movwcs r0, #8300 ; 0x206c - 6b90: 16010400 strne r0, [r1], -r0, lsl #8 - 6b94: 04a9130c strteq r1, [r9], #780 - 6b98: 6b010000 blvs 46ba0 - 6b9c: 57366962 ldrpl r6, [r6, -r2, ror #18]! - 6ba0: 6c6f5075 stclvs 0, cr5, [pc], #-468 - 6ba4: 00230200 eoreq r0, r3, r0, lsl #4 - 6ba8: 0c150104 ldfeqs f0, [r5], {4} - 6bac: 0004a913 andeq sl, r4, r3, lsl r9 - 6bb0: 626b0100 rsbvs r0, fp, #0 ; 0x0 - 6bb4: 75573769 ldrbvc r3, [r7, #-1897] - 6bb8: 006c6f50 rsbeq r6, ip, r0, asr pc - 6bbc: 04002302 streq r2, [r0], #-770 - 6bc0: 130c1401 movwne r1, #50177 ; 0xc401 - 6bc4: 000004a9 andeq r0, r0, r9, lsr #9 - 6bc8: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ - 6bcc: 746e4934 strbtvc r4, [lr], #-2356 - 6bd0: 02006e45 andeq r6, r0, #1104 ; 0x450 - 6bd4: 01040023 tsteq r4, r3, lsr #32 - 6bd8: a9130c13 ldmdbge r3, {r0, r1, r4, sl, fp} - 6bdc: 01000004 tsteq r0, r4 - 6be0: 3569626b strbcc r6, [r9, #-619]! - 6be4: 45746e49 ldrbmi r6, [r4, #-3657]! - 6be8: 2302006e movwcs r0, #8302 ; 0x206e - 6bec: 12010400 andne r0, r1, #0 ; 0x0 - 6bf0: 04a9130c strteq r1, [r9], #780 - 6bf4: 6b010000 blvs 46bfc - 6bf8: 49366962 ldmdbmi r6!, {r1, r5, r6, r8, fp, sp, lr} - 6bfc: 6e45746e cdpvs 4, 4, cr7, cr5, cr14, {3} - 6c00: 00230200 eoreq r0, r3, r0, lsl #4 - 6c04: 0c110104 ldfeqs f0, [r1], {4} - 6c08: 0004a913 andeq sl, r4, r3, lsl r9 - 6c0c: 626b0100 rsbvs r0, fp, #0 ; 0x0 - 6c10: 6e493769 cdpvs 7, 4, cr3, cr9, cr9, {3} - 6c14: 006e4574 rsbeq r4, lr, r4, ror r5 - 6c18: 04002302 streq r2, [r0], #-770 - 6c1c: 0b001001 bleq ac28 - 6c20: 0000033b andeq r0, r0, fp, lsr r3 - 6c24: a9130c04 ldmdbge r3, {r2, sl, fp} - 6c28: 01000004 tsteq r0, r4 - 6c2c: 5769626b strbpl r6, [r9, -fp, ror #4]! - 6c30: 006e4575 rsbeq r4, lr, r5, ror r5 - 6c34: 04002302 streq r2, [r0], #-770 - 6c38: 130c1c04 movwne r1, #52228 ; 0xcc04 - 6c3c: 000004a9 andeq r0, r0, r9, lsr #9 - 6c40: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ - 6c44: 76457557 undefined - 6c48: 00746e65 rsbseq r6, r4, r5, ror #28 - 6c4c: 04002302 streq r2, [r0], #-770 - 6c50: 130c1804 movwne r1, #51204 ; 0xc804 - 6c54: 000004a9 andeq r0, r0, r9, lsr #9 - 6c58: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ - 6c5c: 6f507557 svcvs 0x00507557 - 6c60: 2302006c movwcs r0, #8300 ; 0x206c - 6c64: 14040400 strne r0, [r4], #-1024 - 6c68: 04a9130c strteq r1, [r9], #780 - 6c6c: 6b010000 blvs 46c74 - 6c70: 6e496962 cdpvs 9, 4, cr6, cr9, cr2, {3} - 6c74: 006e4574 rsbeq r4, lr, r4, ror r5 - 6c78: 04002302 streq r2, [r0], #-770 - 6c7c: 0b001004 bleq ac94 - 6c80: 00000385 andeq r0, r0, r5, lsl #7 - 6c84: a9130c08 ldmdbge r3, {r3, sl, fp} - 6c88: 01000004 tsteq r0, r4 - 6c8c: 656d6974 strbvs r6, [sp, #-2420]! - 6c90: 45755772 ldrbmi r5, [r5, #-1906]! - 6c94: 2302006e movwcs r0, #8302 ; 0x206e - 6c98: 1f010400 svcne 0x00010400 - 6c9c: 04a9130c strteq r1, [r9], #780 - 6ca0: 74010000 strvc r0, [r1] - 6ca4: 72656d69 rsbvc r6, r5, #6720 ; 0x1a40 - 6ca8: 6e497557 mcrvs 5, 2, r7, cr9, cr7, {2} - 6cac: 006e4574 rsbeq r4, lr, r4, ror r5 - 6cb0: 04002302 streq r2, [r0], #-770 - 6cb4: 130d1e01 movwne r1, #56833 ; 0xde01 - 6cb8: 000004a9 andeq r0, r0, r9, lsr #9 - 6cbc: 6d697401 cfstrdvs mvd7, [r9, #-4]! - 6cc0: 74754f65 ldrbtvc r4, [r5], #-3941 - 6cc4: 04230200 strteq r0, [r3], #-512 - 6cc8: 03cb0b00 biceq r0, fp, #0 ; 0x0 - 6ccc: 0c080000 stceq 0, cr0, [r8], {0} - 6cd0: 0004a913 andeq sl, r4, r3, lsl r9 - 6cd4: 74720100 ldrbtvc r0, [r2], #-256 - 6cd8: 45755763 ldrbmi r5, [r5, #-1891]! - 6cdc: 2302006e movwcs r0, #8302 ; 0x206e - 6ce0: 1f010400 svcne 0x00010400 - 6ce4: 04a9130c strteq r1, [r9], #780 - 6ce8: 72010000 andvc r0, r1, #0 ; 0x0 - 6cec: 75576374 ldrbvc r6, [r7, #-884] - 6cf0: 45746e49 ldrbmi r6, [r4, #-3657]! - 6cf4: 2302006e movwcs r0, #8302 ; 0x206e - 6cf8: 1e010400 cfcpysne mvf0, mvf1 - 6cfc: 04a9130d strteq r1, [r9], #781 - 6d00: 74010000 strvc r0, [r1] - 6d04: 4f656d69 svcmi 0x00656d69 - 6d08: 02007475 andeq r7, r0, #1962934272 ; 0x75000000 - 6d0c: 0b000423 bleq 7da0 - 6d10: 000003f4 strdeq r0, [r0], -r4 - 6d14: 6e130d0c cdpvs 13, 1, cr0, cr3, cr12, {0} - 6d18: 01000004 tsteq r0, r4 - 6d1c: 6f537577 svcvs 0x00537577 - 6d20: 65637275 strbvs r7, [r3, #-629]! - 6d24: 00230200 eoreq r0, r3, r0, lsl #4 - 6d28: 0425130d strteq r1, [r5], #-781 - 6d2c: 63010000 movwvs r0, #4096 ; 0x1000 - 6d30: 006c7274 rsbeq r7, ip, r4, ror r2 - 6d34: 00042302 andeq r2, r4, r2, lsl #6 - 6d38: 0004250e andeq r2, r4, lr, lsl #10 - 6d3c: 130d0400 movwne r0, #54272 ; 0xd400 - 6d40: 000004a9 andeq r0, r0, r9, lsr #9 - 6d44: 726f7701 rsbvc r7, pc, #262144 ; 0x40000 - 6d48: 23020064 movwcs r0, #8292 ; 0x2064 - 6d4c: e0150d00 ands r0, r5, r0, lsl #26 - 6d50: 69620102 stmdbvs r2!, {r1, r8}^ - 6d54: 23020074 movwcs r0, #8308 ; 0x2074 - 6d58: db150d00 blle 54a160 - 6d5c: 696e0105 stmdbvs lr!, {r0, r2, r8}^ - 6d60: 656c6262 strbvs r6, [ip, #-610]! - 6d64: 00230200 eoreq r0, r3, r0, lsl #4 - 6d68: 04580e00 ldrbeq r0, [r8], #-3584 - 6d6c: 0d080000 stceq 0, cr0, [r8] - 6d70: 0004fd13 andeq pc, r4, r3, lsl sp - 6d74: 78650100 stmdavc r5!, {r8}^ - 6d78: 23020074 movwcs r0, #8308 ; 0x2074 - 6d7c: b9130d00 ldmdblt r3, {r8, sl, fp} - 6d80: 01000004 tsteq r0, r4 - 6d84: 656d6974 strbvs r6, [sp, #-2420]! - 6d88: 23020072 movwcs r0, #8306 ; 0x2072 - 6d8c: d2130d00 andsle r0, r3, #0 ; 0x0 - 6d90: 01000004 tsteq r0, r4 - 6d94: 00637472 rsbeq r7, r3, r2, ror r4 - 6d98: 00002302 andeq r2, r0, r2, lsl #6 - 6d9c: 6e75460f cdpvs 6, 7, cr4, cr5, cr15, {0} - 6da0: 74655263 strbtvc r5, [r5], #-611 - 6da4: 5f6e7275 svcpl 0x006e7275 - 6da8: f6100074 undefined instruction 0xf6100074 - 6dac: 0800002a stmdaeq r0, {r1, r3, r5} - 6db0: 630f0350 movwvs r0, #62288 ; 0xf350 - 6db4: 75576d72 ldrbvc r6, [r7, #-3442] - 6db8: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 6dbc: 745f6563 ldrbvc r6, [pc], #1379 ; 6dc4 - 6dc0: 01ed1500 mvneq r1, r0, lsl #10 - 6dc4: 0302e904 movweq lr, #10500 ; 0x2904 - 6dc8: 6f6c630f svcvs 0x006c630f - 6dcc: 635f6b63 cmpvs pc, #101376 ; 0x18c00 - 6dd0: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 6dd4: 00745f67 rsbseq r5, r4, r7, ror #30 - 6dd8: 09029715 stmdbeq r2, {r0, r2, r4, r8, r9, sl, ip, pc} - 6ddc: 750f0338 strvc r0, [pc, #-824] ; 6aac - 6de0: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ - 6de4: 1500745f strne r7, [r0, #-1119] - 6de8: 1a0101dc bne 47560 - 6dec: 69750f19 ldmdbvs r5!, {r0, r3, r4, r8, r9, sl, fp}^ - 6df0: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 - 6df4: 1500745f strne r7, [r0, #-1119] - 6df8: 1e0101cb adfnedm f0, f1, #3.0 - 6dfc: 72630f19 rsbvc r0, r3, #100 ; 0x64 - 6e00: 6d69546d cfstrdvs mvd5, [r9, #-436]! - 6e04: 75577265 ldrbvc r7, [r7, #-613] - 6e08: 6c727443 cfldrdvs mvd7, [r2], #-268 - 6e0c: 1500745f strne r7, [r0, #-1119] - 6e10: b40406bb strlt r0, [r4], #-1723 - 6e14: 630f0203 movwvs r0, #61955 ; 0xf203 - 6e18: 74526d72 ldrbvc r6, [r2], #-3442 - 6e1c: 43755763 cmnmi r5, #25952256 ; 0x18c0000 - 6e20: 5f6c7274 svcpl 0x006c7274 - 6e24: 85150074 ldrhi r0, [r5, #-116] - 6e28: 03bf0407 undefined instruction 0x03bf0407 - 6e2c: 72630f02 rsbvc r0, r3, #8 ; 0x8 - 6e30: 4375576d cmnmi r5, #28573696 ; 0x1b40000 - 6e34: 5f6c7274 svcpl 0x006c7274 - 6e38: cb150074 blgt 547010 - 6e3c: 03cd0407 biceq r0, sp, #117440512 ; 0x7000000 - 6e40: 72630f02 rsbvc r0, r3, #8 ; 0x8 - 6e44: 7478456d ldrbtvc r4, [r8], #-1389 - 6e48: 74437557 strbvc r7, [r3], #-1367 - 6e4c: 745f6c72 ldrbvc r6, [pc], #3186 ; 6e54 - 6e50: 07f41500 ldrbeq r1, [r4, r0, lsl #10]! - 6e54: 02039404 andeq r9, r3, #67108864 ; 0x4000000 - 6e58: 00000000 andeq r0, r0, r0 - 6e5c: 00000170 andeq r0, r0, r0, ror r1 - 6e60: 07ec0003 strbeq r0, [ip, r3]! - 6e64: 02040000 andeq r0, r4, #0 ; 0x0 - 6e68: 445c3a43 ldrbmi r3, [ip], #-2627 - 6e6c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6e70: 73746e65 cmnvc r4, #1616 ; 0x650 - 6e74: 646e6120 strbtvs r6, [lr], #-288 - 6e78: 74655320 strbtvc r5, [r5], #-800 - 6e7c: 676e6974 undefined - 6e80: 616d5c73 smcvs 54723 - 6e84: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6e88: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6e8c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6e90: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6e94: 775c7374 undefined - 6e98: 6f632d73 svcvs 0x00632d73 - 6e9c: 6f72746e svcvs 0x0072746e - 6ea0: 65575c6c ldrbvs r5, [r7, #-3180] - 6ea4: 65687461 strbvs r7, [r8, #-1121]! - 6ea8: 74532072 ldrbvc r2, [r3], #-114 - 6eac: 6f697461 svcvs 0x00697461 - 6eb0: 6f43206e svcvs 0x0043206e - 6eb4: 6f72746e svcvs 0x0072746e - 6eb8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6ebc: 414d535c cmpmi sp, ip, asr r3 - 6ec0: 6f535c43 svcvs 0x00535c43 - 6ec4: 65637275 strbvs r7, [r3, #-629]! - 6ec8: 6172545c cmnvs r2, ip, asr r4 - 6ecc: 6563736e strbvs r7, [r3, #-878]! - 6ed0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 6ed4: 65776f50 ldrbvs r6, [r7, #-3920]! - 6ed8: 676e4d72 undefined - 6edc: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} - 6ee0: 41490063 cmpmi r9, r3, rrx - 6ee4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 6ee8: 43204953 teqmi r0, #1359872 ; 0x14c000 - 6eec: 2b2b432f blcs ad7bb0 - 6ef0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 6ef4: 656c6970 strbvs r6, [ip, #-2416]! - 6ef8: 35562072 ldrbcc r2, [r6, #-114] - 6efc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 6f00: 31332e32 teqcc r3, r2, lsr lr - 6f04: 2f353932 svccs 0x00353932 - 6f08: 20323357 eorscs r3, r2, r7, asr r3 - 6f0c: 4b43494b blmi 10d9440 - 6f10: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 6f14: 6f662054 svcvs 0x00662054 - 6f18: 52412072 subpl r2, r1, #114 ; 0x72 - 6f1c: 8801004d stmdahi r1, {r0, r2, r3, r6} - 6f20: 1c004039 stcne 0, cr4, [r0], {57} - 6f24: cc00403a stcgt 0, cr4, [r0], {58} - 6f28: 33000040 movwcc r0, #64 ; 0x40 - 6f2c: 10000024 andne r0, r0, r4, lsr #32 - 6f30: 0000694f andeq r6, r0, pc, asr #18 - 6f34: 00017304 andeq r7, r1, r4, lsl #6 - 6f38: 4d4c4d00 stclmi 13, cr4, [ip] - 6f3c: 74655345 strbtvc r5, [r5], #-837 - 6f40: 656b6157 strbvs r6, [fp, #-343]! - 6f44: 6f537075 svcvs 0x00537075 - 6f48: 65637275 strbvs r7, [r3, #-629]! - 6f4c: 0e670100 poweqs f0, f7, f0 - 6f50: 6d9c1001 ldcvs 0, cr1, [ip, #4] - 6f54: 159a0000 ldrne r0, [sl] - 6f58: 39880000 stmibcc r8, {} - 6f5c: 3a1c0040 bcc 707064 - 6f60: 75050040 strvc r0, [r5, #-64] - 6f64: 646f4d38 strbtvs r4, [pc], #3384 ; 6f6c - 6f68: 67010065 strvs r0, [r1, -r5, rrx] - 6f6c: 6dde102a ldclvs 0, cr1, [lr, #168] - 6f70: 15ea0000 strbne r0, [sl]! - 6f74: 75050000 strvc r0, [r5] - 6f78: 49424b38 stmdbmi r2, {r3, r4, r5, r8, r9, fp, lr}^ - 6f7c: 006c6f50 rsbeq r6, ip, r0, asr pc - 6f80: 103a6701 eorsne r6, sl, r1, lsl #14 - 6f84: 00006dde ldrdeq r6, [r0], -lr - 6f88: 00001612 andeq r1, r0, r2, lsl r6 - 6f8c: 4b387505 blmi e243a8 - 6f90: 64454942 strbvs r4, [r5], #-2370 - 6f94: 01006567 tsteq r0, r7, ror #10 - 6f98: de104b67 fnmscdle d4, d0, d23 - 6f9c: 2f00006d svccs 0x0000006d - 6fa0: 06000016 undefined - 6fa4: 52706d74 rsbspl r6, r0, #7424 ; 0x1d00 - 6fa8: 72756574 rsbsvc r6, r5, #486539264 ; 0x1d000000 - 6fac: 6901006e stmdbvs r1, {r1, r2, r3, r5, r6} - 6fb0: 6d9c1010 ldcvs 0, cr1, [ip, #64] - 6fb4: 164c0000 strbne r0, [ip], -r0 - 6fb8: 57060000 strpl r0, [r6, -r0] - 6fbc: 72744375 rsbsvc r4, r4, #-738197503 ; 0xd4000001 - 6fc0: 6a01006c bvs 47178 - 6fc4: 6e2d100f cdpvs 0, 2, cr1, cr13, cr15, {0} - 6fc8: 169e0000 ldrne r0, [lr], r0 - 6fcc: 00000000 andeq r0, r0, r0 - 6fd0: 000005e8 andeq r0, r0, r8, ror #11 - 6fd4: 08c40003 stmiaeq r4, {r0, r1}^ - 6fd8: 01040000 tsteq r4, r0 - 6fdc: 445c3a43 ldrbmi r3, [ip], #-2627 - 6fe0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6fe4: 73746e65 cmnvc r4, #1616 ; 0x650 - 6fe8: 646e6120 strbtvs r6, [lr], #-288 - 6fec: 74655320 strbtvc r5, [r5], #-800 - 6ff0: 676e6974 undefined - 6ff4: 616d5c73 smcvs 54723 - 6ff8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6ffc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 7000: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7004: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7008: 775c7374 undefined - 700c: 6f632d73 svcvs 0x00632d73 - 7010: 6f72746e svcvs 0x0072746e - 7014: 65575c6c ldrbvs r5, [r7, #-3180] - 7018: 65687461 strbvs r7, [r8, #-1121]! - 701c: 74532072 ldrbvc r2, [r3], #-114 - 7020: 6f697461 svcvs 0x00697461 - 7024: 6f43206e svcvs 0x0043206e - 7028: 6f72746e svcvs 0x0072746e - 702c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7030: 7070415c rsbsvc r4, r0, ip, asr r1 - 7034: 6163696c cmnvs r3, ip, ror #18 - 7038: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 703c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 7040: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 7044: 555c7365 ldrbpl r7, [ip, #-869] - 7048: 55747261 ldrbpl r7, [r4, #-609]! - 704c: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} - 7050: 41490063 cmpmi r9, r3, rrx - 7054: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 7058: 43204953 teqmi r0, #1359872 ; 0x14c000 - 705c: 2b2b432f blcs ad7d20 - 7060: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 7064: 656c6970 strbvs r6, [ip, #-2416]! - 7068: 35562072 ldrbcc r2, [r6, #-114] - 706c: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 7070: 31332e32 teqcc r3, r2, lsr lr - 7074: 2f353932 svccs 0x00353932 - 7078: 20323357 eorscs r3, r2, r7, asr r3 - 707c: 4b43494b blmi 10d95b0 - 7080: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 7084: 6f662054 svcvs 0x00662054 - 7088: 52412072 subpl r2, r1, #114 ; 0x72 - 708c: a801004d stmdage r1, {r0, r2, r3, r6} - 7090: ac000041 stcge 0, cr0, [r0], {65} - 7094: 02000001 andeq r0, r0, #1 ; 0x1 - 7098: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ - 709c: 64656e67 strbtvs r6, [r5], #-3687 - 70a0: 6f687320 svcvs 0x00687320 - 70a4: 02007472 andeq r7, r0, #1912602624 ; 0x72000000 - 70a8: 6e750207 cdpvs 2, 7, cr0, cr5, cr7, {0} - 70ac: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} - 70b0: 63206465 teqvs r0, #1694498816 ; 0x65000000 - 70b4: 00726168 rsbseq r6, r2, r8, ror #2 - 70b8: 13040801 movwne r0, #18433 ; 0x4801 - 70bc: 0000051e andeq r0, r0, lr, lsl r5 - 70c0: 051e1306 ldreq r1, [lr, #-774] - 70c4: 75020000 strvc r0, [r2] - 70c8: 6769736e strbvs r7, [r9, -lr, ror #6]! - 70cc: 2064656e rsbcs r6, r4, lr, ror #10 - 70d0: 676e6f6c strbvs r6, [lr, -ip, ror #30]! - 70d4: 06070400 streq r0, [r7], -r0, lsl #8 - 70d8: 00058c13 andeq r8, r5, r3, lsl ip - 70dc: 6f760200 svcvs 0x00760200 - 70e0: 00006469 andeq r6, r0, r9, ror #8 - 70e4: 98130605 ldmdals r3, {r0, r2, r9, sl} - 70e8: 06000002 streq r0, [r0], -r2 - 70ec: 0005ab13 andeq sl, r5, r3, lsl fp - 70f0: a2130600 andsge r0, r3, #0 ; 0x0 - 70f4: 07000002 streq r0, [r0, -r2] - 70f8: 00051e13 andeq r1, r5, r3, lsl lr - 70fc: a7150600 ldrge r0, [r5, -r0, lsl #12] - 7100: 68630202 stmdavs r3!, {r1, r9}^ - 7104: 01007261 tsteq r0, r1, ror #4 - 7108: 01a81208 undefined instruction 0x01a81208 - 710c: 13010000 movwne r0, #4096 ; 0x1000 - 7110: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 - 7114: 61655274 smcvs 21796 - 7118: 61745364 cmnvs r4, r4, ror #6 - 711c: 43737574 cmnmi r3, #486539264 ; 0x1d000000 - 7120: 6c706d6f ldclvs 13, cr6, [r0], #-444 - 7124: 5f657465 svcpl 0x00657465 - 7128: 13000063 movwne r0, #99 ; 0x63 - 712c: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 - 7130: 61655274 smcvs 21796 - 7134: 61745364 cmnvs r4, r4, ror #6 - 7138: 43737574 cmnmi r3, #486539264 ; 0x1d000000 - 713c: 65636e61 strbvs r6, [r3, #-3681]! - 7140: 5f64656c svcpl 0x0064656c - 7144: 13010063 movwne r0, #4195 ; 0x1063 - 7148: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 - 714c: 61655274 smcvs 21796 - 7150: 61745364 cmnvs r4, r4, ror #6 - 7154: 45737574 ldrbmi r7, [r3, #-1396]! - 7158: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 - 715c: 0200635f andeq r6, r0, #2080374785 ; 0x7c000001 - 7160: 61556713 cmpvs r5, r3, lsl r7 - 7164: 65527472 ldrbvs r7, [r2, #-1138] - 7168: 74536461 ldrbvc r6, [r3], #-1121 - 716c: 73757461 cmnvc r5, #1627389952 ; 0x61000000 - 7170: 5f78614d svcpl 0x0078614d - 7174: 00030063 andeq r0, r3, r3, rrx - 7178: 00020112 andeq r0, r2, r2, lsl r1 - 717c: 67130100 ldrvs r0, [r3, -r0, lsl #2] - 7180: 74726155 ldrbtvc r6, [r2], #-341 - 7184: 74697257 strbtvc r7, [r9], #-599 - 7188: 61745365 cmnvs r4, r5, ror #6 - 718c: 43737574 cmnmi r3, #486539264 ; 0x1d000000 - 7190: 6c706d6f ldclvs 13, cr6, [r0], #-444 - 7194: 5f657465 svcpl 0x00657465 - 7198: 13000063 movwne r0, #99 ; 0x63 - 719c: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 - 71a0: 69725774 ldmdbvs r2!, {r2, r4, r5, r6, r8, r9, sl, ip, lr}^ - 71a4: 74536574 ldrbvc r6, [r3], #-1396 - 71a8: 73757461 cmnvc r5, #1627389952 ; 0x61000000 - 71ac: 636e6143 cmnvs lr, #-1073741808 ; 0xc0000010 - 71b0: 64656c65 strbtvs r6, [r5], #-3173 - 71b4: 0100635f tsteq r0, pc, asr r3 - 71b8: 61556713 cmpvs r5, r3, lsl r7 - 71bc: 72577472 subsvc r7, r7, #1912602624 ; 0x72000000 - 71c0: 53657469 cmnpl r5, #1761607680 ; 0x69000000 - 71c4: 75746174 ldrbvc r6, [r4, #-372]! - 71c8: 78614d73 stmdavc r1!, {r0, r1, r4, r5, r6, r8, sl, fp, lr}^ - 71cc: 0200635f andeq r6, r0, #2080374785 ; 0x7c000001 - 71d0: 02561200 subseq r1, r6, #0 ; 0x0 - 71d4: 13010000 movwne r0, #4096 ; 0x1000 - 71d8: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 - 71dc: 72615074 rsbvc r5, r1, #116 ; 0x74 - 71e0: 4e797469 cdpmi 4, 7, cr7, cr9, cr9, {3} - 71e4: 5f656e6f svcpl 0x00656e6f - 71e8: 13000063 movwne r0, #99 ; 0x63 - 71ec: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 - 71f0: 72615074 rsbvc r5, r1, #116 ; 0x74 - 71f4: 45797469 ldrbmi r7, [r9, #-1129]! - 71f8: 5f6e6576 svcpl 0x006e6576 - 71fc: 13010063 movwne r0, #4195 ; 0x1063 - 7200: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 - 7204: 72615074 rsbvc r5, r1, #116 ; 0x74 - 7208: 4f797469 svcmi 0x00797469 - 720c: 635f6464 cmpvs pc, #1677721600 ; 0x64000000 - 7210: 67130200 ldrvs r0, [r3, -r0, lsl #4] - 7214: 74726155 ldrbtvc r6, [r2], #-341 - 7218: 69726150 ldmdbvs r2!, {r4, r6, r8, sp, lr}^ - 721c: 614d7974 cmpvs sp, r4, ror r9 - 7220: 00635f78 rsbeq r5, r3, r8, ror pc - 7224: 98120003 ldmdals r2, {r0, r1} - 7228: 01000002 tsteq r0, r2 - 722c: 61556713 cmpvs r5, r3, lsl r7 - 7230: 74537472 ldrbvc r7, [r3], #-1138 - 7234: 6942706f stmdbvs r2, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ - 7238: 5f317374 svcpl 0x00317374 - 723c: 13000063 movwne r0, #99 ; 0x63 - 7240: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 - 7244: 6f745374 svcvs 0x00745374 - 7248: 74694270 strbtvc r4, [r9], #-624 - 724c: 635f3273 cmpvs pc, #805306375 ; 0x30000007 - 7250: 67130100 ldrvs r0, [r3, -r0, lsl #2] - 7254: 74726155 ldrbtvc r6, [r2], #-341 - 7258: 706f7453 rsbvc r7, pc, r3, asr r4 - 725c: 73746942 cmnvc r4, #1081344 ; 0x108000 - 7260: 5f78614d svcpl 0x0078614d - 7264: 00020063 andeq r0, r2, r3, rrx - 7268: 0002a214 andeq sl, r2, r4, lsl r2 - 726c: 87151500 ldrhi r1, [r5, -r0, lsl #10] - 7270: ac140002 ldcge 0, cr0, [r4], {2} - 7274: 15000002 strne r0, [r0, #-2] - 7278: 00029b15 andeq r9, r2, r5, lsl fp - 727c: 0002b916 andeq fp, r2, r6, lsl r9 - 7280: 051e1300 ldreq r1, [lr, #-768] - 7284: 00170000 andseq r0, r7, r0 - 7288: 02c61600 sbceq r1, r6, #0 ; 0x0 - 728c: 1e130000 wxorne wr0, wr3, wr0 - 7290: 17000005 strne r0, [r0, -r5] - 7294: d3160002 tstle r6, #2 ; 0x2 - 7298: 13000002 movwne r0, #2 ; 0x2 - 729c: 0000051e andeq r0, r0, lr, lsl r5 - 72a0: 18000517 stmdane r0, {r0, r1, r2, r4, r8, sl} - 72a4: 0000035a andeq r0, r0, sl, asr r3 - 72a8: 4b131908 blmi 4cd6d0 - 72ac: 01000005 tsteq r0, r5 - 72b0: 74726155 ldrbtvc r6, [r2], #-341 - 72b4: 64756142 ldrbtvs r6, [r5], #-322 - 72b8: 65746172 ldrbvs r6, [r4, #-370]! - 72bc: 00230200 eoreq r0, r3, r0, lsl #4 - 72c0: 04f01319 ldrbteq r1, [r0], #793 - 72c4: 55010000 strpl r0, [r1] - 72c8: 50747261 rsbspl r7, r4, r1, ror #4 - 72cc: 74697261 strbtvc r7, [r9], #-609 - 72d0: 23020079 movwcs r0, #8313 ; 0x2079 - 72d4: 08131904 ldmdaeq r3, {r2, r8, fp, ip} - 72d8: 01000005 tsteq r0, r5 - 72dc: 74726155 ldrbtvc r6, [r2], #-341 - 72e0: 706f7453 rsbvc r7, pc, r3, asr r4 - 72e4: 73746942 cmnvc r4, #1081344 ; 0x108000 - 72e8: 05230200 streq r0, [r3, #-512]! - 72ec: 052d1319 streq r1, [sp, #-793]! - 72f0: 55010000 strpl r0, [r1] - 72f4: 46747261 ldrbtmi r7, [r4], -r1, ror #4 - 72f8: 43776f6c cmnmi r7, #432 ; 0x1b0 - 72fc: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 7300: 6e456c6f cdpvs 12, 4, cr6, cr5, cr15, {3} - 7304: 656c6261 strbvs r6, [ip, #-609]! - 7308: 23020064 movwcs r0, #8292 ; 0x2064 - 730c: 2d131906 ldccs 9, cr1, [r3, #-24] - 7310: 01000005 tsteq r0, r5 - 7314: 74726155 ldrbtvc r6, [r2], #-341 - 7318: 41535452 cmpmi r3, r2, asr r4 - 731c: 76697463 strbtvc r7, [r9], -r3, ror #8 - 7320: 67694865 strbvs r4, [r9, -r5, ror #16]! - 7324: 23020068 movwcs r0, #8296 ; 0x2068 - 7328: f1180007 undefined instruction 0xf1180007 - 732c: 04000003 streq r0, [r0], #-3 - 7330: 054b131a strbeq r1, [fp, #-794] - 7334: 55010000 strpl r0, [r1] - 7338: 52747261 rsbspl r7, r4, #268435462 ; 0x10000006 - 733c: 4f646165 svcmi 0x00646165 - 7340: 72726576 rsbsvc r6, r2, #494927872 ; 0x1d800000 - 7344: 72456e75 subvc r6, r5, #1872 ; 0x750 - 7348: 00726f72 rsbseq r6, r2, r2, ror pc - 734c: 04002302 streq r2, [r0], #-770 - 7350: 131a1f01 tstne sl, #4 ; 0x4 - 7354: 0000054b andeq r0, r0, fp, asr #10 - 7358: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 - 735c: 72615074 rsbvc r5, r1, #116 ; 0x74 - 7360: 45797469 ldrbmi r7, [r9, #-1129]! - 7364: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 - 7368: 00230200 eoreq r0, r3, r0, lsl #4 - 736c: 1a1e0104 bne 787784 - 7370: 00054b13 andeq r4, r5, r3, lsl fp - 7374: 61550100 cmpvs r5, r0, lsl #2 - 7378: 72467472 subvc r7, r6, #1912602624 ; 0x72000000 - 737c: 45656d61 strbmi r6, [r5, #-3425]! - 7380: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 - 7384: 00230200 eoreq r0, r3, r0, lsl #4 - 7388: 1a1d0104 bne 7477a0 - 738c: 00054b13 andeq r4, r5, r3, lsl fp - 7390: 61550100 cmpvs r5, r0, lsl #2 - 7394: 74537472 ldrbvc r7, [r3], #-1138 - 7398: 42747261 rsbsmi r7, r4, #268435462 ; 0x10000006 - 739c: 72457469 subvc r7, r5, #1761607680 ; 0x69000000 - 73a0: 00726f72 rsbseq r6, r2, r2, ror pc - 73a4: 04002302 streq r2, [r0], #-770 - 73a8: 131a1c01 tstne sl, #256 ; 0x100 - 73ac: 0000054b andeq r0, r0, fp, asr #10 - 73b0: 73655201 cmnvc r5, #268435456 ; 0x10000000 - 73b4: 65767265 ldrbvs r7, [r6, #-613]! - 73b8: 23020064 movwcs r0, #8292 ; 0x2064 - 73bc: 18040400 stmdane r4, {sl} - 73c0: 04471800 strbeq r1, [r7], #-2048 - 73c4: 19080000 stmdbne r8, {} - 73c8: 0004bf13 andeq fp, r4, r3, lsl pc - 73cc: 61550100 cmpvs r5, r0, lsl #2 - 73d0: 74537472 ldrbvc r7, [r3], #-1138 - 73d4: 73757461 cmnvc r5, #1627389952 ; 0x61000000 - 73d8: 00230200 eoreq r0, r3, r0, lsl #4 - 73dc: 053b1319 ldreq r1, [fp, #-793]! - 73e0: 55010000 strpl r0, [r1] - 73e4: 4e747261 cdpmi 2, 7, cr7, cr4, cr1, {3} - 73e8: 65626d75 strbvs r6, [r2, #-3445]! - 73ec: 74794272 ldrbtvc r4, [r9], #-626 - 73f0: 65527365 ldrbvs r7, [r2, #-869] - 73f4: 76696563 strbtvc r6, [r9], -r3, ror #10 - 73f8: 02006465 andeq r6, r0, #1694498816 ; 0x65000000 - 73fc: 13190223 tstne r9, #805306370 ; 0x30000002 - 7400: 0000056f andeq r0, r0, pc, ror #10 - 7404: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 - 7408: 61655274 smcvs 21796 - 740c: 72724564 rsbsvc r4, r2, #419430400 ; 0x19000000 - 7410: 0200726f andeq r7, r0, #-268435450 ; 0xf0000006 - 7414: 18000423 stmdane r0, {r0, r1, r5, sl} - 7418: 00000481 andeq r0, r0, r1, lsl #9 - 741c: d7131904 ldrle r1, [r3, -r4, lsl #18] - 7420: 01000004 tsteq r0, r4 - 7424: 74726155 ldrbtvc r6, [r2], #-341 - 7428: 74617453 strbtvc r7, [r1], #-1107 - 742c: 02007375 andeq r7, r0, #-738197503 ; 0xd4000001 - 7430: 13190023 tstne r9, #35 ; 0x23 - 7434: 0000053b andeq r0, r0, fp, lsr r5 - 7438: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 - 743c: 6d754e74 ldclvs 14, cr4, [r5, #-464]! - 7440: 42726562 rsbsmi r6, r2, #411041792 ; 0x18800000 - 7444: 73657479 cmnvc r5, #2030043136 ; 0x79000000 - 7448: 746e6553 strbtvc r6, [lr], #-1363 - 744c: 02230200 eoreq r0, r3, #0 ; 0x0 - 7450: 04bf1800 ldrteq r1, [pc], #2048 ; 7458 - 7454: 19080000 stmdbne r8, {} - 7458: 01029515 tsteq r2, r5, lsl r5 - 745c: 61556670 cmpvs r5, r0, ror r6 - 7460: 65527472 ldrbvs r7, [r2, #-1138] - 7464: 61436461 cmpvs r3, r1, ror #8 - 7468: 61626c6c cmnvs r2, ip, ror #24 - 746c: 02006b63 andeq r6, r0, #101376 ; 0x18c00 - 7470: 15190023 ldrne r0, [r9, #-35] - 7474: 700102a1 andvc r0, r1, r1, lsr #5 - 7478: 72615566 rsbvc r5, r1, #427819008 ; 0x19800000 - 747c: 69725774 ldmdbvs r2!, {r2, r4, r5, r6, r8, r9, sl, ip, lr}^ - 7480: 61436574 cmpvs r3, r4, ror r5 - 7484: 61626c6c cmnvs r2, ip, ror #24 - 7488: 02006b63 andeq r6, r0, #101376 ; 0x18c00 - 748c: 1b000423 blne 8520 - 7490: 74726155 ldrbtvc r6, [r2], #-341 - 7494: 64616552 strbtvs r6, [r1], #-1362 - 7498: 74617453 strbtvc r7, [r1], #-1107 - 749c: 745f7375 ldrbvc r7, [pc], #885 ; 74a4 - 74a0: 02b91500 adcseq r1, r9, #0 ; 0x0 - 74a4: 1b035c09 blne de4d0 - 74a8: 74726155 ldrbtvc r6, [r2], #-341 - 74ac: 74697257 strbtvc r7, [r9], #-599 - 74b0: 61745365 cmnvs r4, r5, ror #6 - 74b4: 5f737574 svcpl 0x00737574 - 74b8: a8150074 ldmdage r5, {r2, r4, r5, r6} - 74bc: 03630903 cmneq r3, #49152 ; 0xc000 - 74c0: 7261551b rsbvc r5, r1, #113246208 ; 0x6c00000 - 74c4: 72615074 rsbvc r5, r1, #116 ; 0x74 - 74c8: 4d797469 cfldrdmi mvd7, [r9, #-420]! - 74cc: 5f65646f svcpl 0x0065646f - 74d0: 81150074 tsthi r5, r4, ror r0 - 74d4: 036b0904 cmneq fp, #65536 ; 0x10000 - 74d8: 7261551b rsbvc r5, r1, #113246208 ; 0x6c00000 - 74dc: 6f745374 svcvs 0x00745374 - 74e0: 74694270 strbtvc r4, [r9], #-624 - 74e4: 00745f73 rsbseq r5, r4, r3, ror pc - 74e8: 0904d615 stmdbeq r4, {r0, r2, r4, r9, sl, ip, lr, pc} - 74ec: 751b0372 ldrvc r0, [fp, #-882] - 74f0: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ - 74f4: 1500745f strne r7, [r0, #-1119] - 74f8: 1a0301d9 bne c7c64 - 74fc: 6f621b19 svcvs 0x00621b19 - 7500: 745f6c6f ldrbvc r6, [pc], #3183 ; 7508 - 7504: 0a9e1500 beq fe78c90c - 7508: 1b132c03 blne 4d251c - 750c: 746e6975 strbtvc r6, [lr], #-2421 - 7510: 745f3631 ldrbvc r3, [pc], #1585 ; 7518 - 7514: 01c71500 biceq r1, r7, r0, lsl #10 - 7518: 1b191c03 blne 64e52c - 751c: 746e6975 strbtvc r6, [lr], #-2421 - 7520: 745f3233 ldrbvc r3, [pc], #563 ; 7528 - 7524: 01f61500 mvnseq r1, r0, lsl #10 - 7528: 1b191e03 blne 64ed3c - 752c: 74726155 ldrbtvc r6, [r2], #-341 - 7530: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 7534: 745f6769 ldrbvc r6, [pc], #1897 ; 753c - 7538: 05d31500 ldrbeq r1, [r3, #1280] - 753c: 1b037b09 blne e6168 - 7540: 74726155 ldrbtvc r6, [r2], #-341 - 7544: 64616552 strbtvs r6, [r1], #-1362 - 7548: 6f727245 svcvs 0x00727245 - 754c: 616c4672 smcvs 50274 - 7550: 745f7367 ldrbvc r7, [pc], #871 ; 7558 - 7554: 06da1500 ldrbeq r1, [sl], r0, lsl #10 - 7558: 03018409 movweq r8, #5129 ; 0x1409 - 755c: 7261551b rsbvc r5, r1, #113246208 ; 0x6c00000 - 7560: 61655274 smcvs 21796 - 7564: 6c614364 stclvs 3, cr4, [r1], #-400 - 7568: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 - 756c: 6772416b ldrbvs r4, [r2, -fp, ror #2]! - 7570: 00745f73 rsbseq r5, r4, r3, ror pc - 7574: 0907f115 stmdbeq r7, {r0, r2, r4, r8, ip, sp, lr, pc} - 7578: 1b03018c blne c7bb0 - 757c: 74726155 ldrbtvc r6, [r2], #-341 - 7580: 74697257 strbtvc r7, [r9], #-599 - 7584: 6c614365 stclvs 3, cr4, [r1], #-404 - 7588: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 - 758c: 6772416b ldrbvs r4, [r2, -fp, ror #2]! - 7590: 00745f73 rsbseq r5, r4, r3, ror pc - 7594: 0908c715 stmdbeq r8, {r0, r2, r4, r8, r9, sl, lr, pc} - 7598: 1b030192 blne c7be8 - 759c: 74726155 ldrbtvc r6, [r2], #-341 - 75a0: 6c6c6143 stfvse f6, [ip], #-268 - 75a4: 6b636162 blvs 18dfb34 - 75a8: 636e7546 cmnvs lr, #293601280 ; 0x11800000 - 75ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 75b0: 00745f73 rsbseq r5, r4, r3, ror pc - 75b4: 09098115 stmdbeq r9, {r0, r2, r4, r8, pc} - 75b8: 00030198 muleq r3, r8, r1 - 75bc: 00000124 andeq r0, r0, r4, lsr #2 - 75c0: 08c40003 stmiaeq r4, {r0, r1}^ - 75c4: 01040000 tsteq r4, r0 - 75c8: 445c3a43 ldrbmi r3, [ip], #-2627 - 75cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 75d0: 73746e65 cmnvc r4, #1616 ; 0x650 - 75d4: 646e6120 strbtvs r6, [lr], #-288 - 75d8: 74655320 strbtvc r5, [r5], #-800 - 75dc: 676e6974 undefined - 75e0: 616d5c73 smcvs 54723 - 75e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 75e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 75ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 75f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 75f4: 775c7374 undefined - 75f8: 6f632d73 svcvs 0x00632d73 - 75fc: 6f72746e svcvs 0x0072746e - 7600: 65575c6c ldrbvs r5, [r7, #-3180] - 7604: 65687461 strbvs r7, [r8, #-1121]! - 7608: 74532072 ldrbvc r2, [r3], #-114 - 760c: 6f697461 svcvs 0x00697461 - 7610: 6f43206e svcvs 0x0043206e - 7614: 6f72746e svcvs 0x0072746e - 7618: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 761c: 7070415c rsbsvc r4, r0, ip, asr r1 - 7620: 6163696c cmnvs r3, ip, ror #18 - 7624: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7628: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 762c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 7630: 555c7365 ldrbpl r7, [ip, #-869] - 7634: 55747261 ldrbpl r7, [r4, #-609]! - 7638: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} - 763c: 41490063 cmpmi r9, r3, rrx - 7640: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 7644: 43204953 teqmi r0, #1359872 ; 0x14c000 - 7648: 2b2b432f blcs ad830c - 764c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 7650: 656c6970 strbvs r6, [ip, #-2416]! - 7654: 35562072 ldrbcc r2, [r6, #-114] - 7658: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 765c: 31332e32 teqcc r3, r2, lsr lr - 7660: 2f353932 svccs 0x00353932 - 7664: 20323357 eorscs r3, r2, r7, asr r3 - 7668: 4b43494b blmi 10d9b9c - 766c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 7670: 6f662054 svcvs 0x00662054 - 7674: 52412072 subpl r2, r1, #114 ; 0x72 - 7678: a801004d stmdage r1, {r0, r2, r3, r6} - 767c: ac000041 stcge 0, cr0, [r0], {65} - 7680: 03000001 movweq r0, #1 ; 0x1 - 7684: 36317567 ldrtcc r7, [r1], -r7, ror #10 - 7688: 4e494353 mcrmi 3, 2, r4, cr9, cr3, {2} - 768c: 664f6d75 undefined - 7690: 65747942 ldrbvs r7, [r4, #-2370]! - 7694: 0b100073 bleq 407868 - 7698: 01000075 tsteq r0, r5, ror r0 - 769c: 05010a3b streq r0, [r1, #-2619] - 76a0: 4052a603 subsmi sl, r2, r3, lsl #12 - 76a4: 75670300 strbvc r0, [r7, #-768]! - 76a8: 49435338 stmdbmi r3, {r3, r4, r5, r8, r9, ip, lr}^ - 76ac: 61746144 cmnvs r4, r4, asr #2 - 76b0: 67616c46 strbvs r6, [r1, -r6, asr #24]! - 76b4: 70ba1000 adcsvc r1, sl, r0 - 76b8: 3a010000 bcc 476c0 - 76bc: 03050112 movweq r0, #20754 ; 0x5112 - 76c0: 004052a5 subeq r5, r0, r5, lsr #5 - 76c4: 38756703 ldmdacc r5!, {r0, r1, r8, r9, sl, sp, lr}^ - 76c8: 53494353 movtpl r4, #37715 ; 0x9353 - 76cc: 75746174 ldrbvc r6, [r4, #-372]! - 76d0: 8f100073 svchi 0x00100073 - 76d4: 01000074 tsteq r0, r4, ror r0 - 76d8: 05011239 streq r1, [r1, #-569] - 76dc: 4052a403 subsmi sl, r2, r3, lsl #8 - 76e0: 00000000 andeq r0, r0, r0 - 76e4: 00000138 andeq r0, r0, r8, lsr r1 - 76e8: 08c40003 stmiaeq r4, {r0, r1}^ - 76ec: 05040000 streq r0, [r4] - 76f0: 445c3a43 ldrbmi r3, [ip], #-2627 - 76f4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 76f8: 73746e65 cmnvc r4, #1616 ; 0x650 - 76fc: 646e6120 strbtvs r6, [lr], #-288 - 7700: 74655320 strbtvc r5, [r5], #-800 - 7704: 676e6974 undefined - 7708: 616d5c73 smcvs 54723 - 770c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 7710: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 7714: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7718: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 771c: 775c7374 undefined - 7720: 6f632d73 svcvs 0x00632d73 - 7724: 6f72746e svcvs 0x0072746e - 7728: 65575c6c ldrbvs r5, [r7, #-3180] - 772c: 65687461 strbvs r7, [r8, #-1121]! - 7730: 74532072 ldrbvc r2, [r3], #-114 - 7734: 6f697461 svcvs 0x00697461 - 7738: 6f43206e svcvs 0x0043206e - 773c: 6f72746e svcvs 0x0072746e - 7740: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7744: 7070415c rsbsvc r4, r0, ip, asr r1 - 7748: 6163696c cmnvs r3, ip, ror #18 - 774c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7750: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 7754: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 7758: 555c7365 ldrbpl r7, [ip, #-869] - 775c: 55747261 ldrbpl r7, [r4, #-609]! - 7760: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} - 7764: 41490063 cmpmi r9, r3, rrx - 7768: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 776c: 43204953 teqmi r0, #1359872 ; 0x14c000 - 7770: 2b2b432f blcs ad8434 - 7774: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 7778: 656c6970 strbvs r6, [ip, #-2416]! - 777c: 35562072 ldrbcc r2, [r6, #-114] - 7780: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 7784: 31332e32 teqcc r3, r2, lsr lr - 7788: 2f353932 svccs 0x00353932 - 778c: 20323357 eorscs r3, r2, r7, asr r3 - 7790: 4b43494b blmi 10d9cc4 - 7794: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 7798: 6f662054 svcvs 0x00662054 - 779c: 52412072 subpl r2, r1, #114 ; 0x72 - 77a0: 8c01004d stchi 0, cr0, [r1], {77} - 77a4: 18004033 stmdane r0, {r0, r1, r4, r5, lr} - 77a8: 4c004034 stcmi 0, cr4, [r0], {52} - 77ac: df000045 svcle 0x00000045 - 77b0: 10000024 andne r0, r0, r4, lsr #32 - 77b4: 00006fdb ldrdeq r6, [r0], -fp - 77b8: 00013b08 andeq r3, r1, r8, lsl #22 - 77bc: 72615500 rsbvc r5, r1, #0 ; 0x0 - 77c0: 6e495f74 mcrvs 15, 2, r5, cr9, cr4, {3} - 77c4: 01007469 tsteq r0, r9, ror #8 - 77c8: bc010648 stclt 6, cr0, [r1], {72} - 77cc: 8c000016 stchi 0, cr0, [r0], {22} - 77d0: 18004033 stmdane r0, {r0, r1, r4, r5, lr} - 77d4: 09004034 stmdbeq r0, {r2, r4, r5, lr} - 77d8: 5241556d subpl r5, r1, #457179136 ; 0x1b400000 - 77dc: 42785254 rsbsmi r5, r8, #1073741829 ; 0x40000005 - 77e0: 65666675 strbvs r6, [r6, #-1653]! - 77e4: 48010072 stmdami r1, {r1, r4, r5, r6} - 77e8: 70c01019 sbcvc r1, r0, r9, lsl r0 - 77ec: 170c0000 strne r0, [ip, -r0] - 77f0: 700a0000 andvc r0, sl, r0 - 77f4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 77f8: 01006769 tsteq r0, r9, ror #14 - 77fc: 2b10104a blcs 40b92c - 7800: 29000075 stmdbcs r0, {r0, r2, r4, r5, r6} - 7804: 0a000017 beq 7868 - 7808: 6c614370 stclvs 3, cr4, [r1], #-448 - 780c: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 - 7810: 4b01006b blmi 479c4 - 7814: 759b101b ldrvc r1, [fp, #27] - 7818: 173d0000 ldrne r0, [sp, -r0]! - 781c: 00000000 andeq r0, r0, r0 - 7820: 0000010c andeq r0, r0, ip, lsl #2 - 7824: 08c40003 stmiaeq r4, {r0, r1}^ - 7828: 05040000 streq r0, [r4] - 782c: 445c3a43 ldrbmi r3, [ip], #-2627 - 7830: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7834: 73746e65 cmnvc r4, #1616 ; 0x650 - 7838: 646e6120 strbtvs r6, [lr], #-288 - 783c: 74655320 strbtvc r5, [r5], #-800 - 7840: 676e6974 undefined - 7844: 616d5c73 smcvs 54723 - 7848: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 784c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 7850: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7854: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7858: 775c7374 undefined - 785c: 6f632d73 svcvs 0x00632d73 - 7860: 6f72746e svcvs 0x0072746e - 7864: 65575c6c ldrbvs r5, [r7, #-3180] - 7868: 65687461 strbvs r7, [r8, #-1121]! - 786c: 74532072 ldrbvc r2, [r3], #-114 - 7870: 6f697461 svcvs 0x00697461 - 7874: 6f43206e svcvs 0x0043206e - 7878: 6f72746e svcvs 0x0072746e - 787c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7880: 7070415c rsbsvc r4, r0, ip, asr r1 - 7884: 6163696c cmnvs r3, ip, ror #18 - 7888: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 788c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 7890: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 7894: 555c7365 ldrbpl r7, [ip, #-869] - 7898: 55747261 ldrbpl r7, [r4, #-609]! - 789c: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} - 78a0: 41490063 cmpmi r9, r3, rrx - 78a4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 78a8: 43204953 teqmi r0, #1359872 ; 0x14c000 - 78ac: 2b2b432f blcs ad8570 - 78b0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 78b4: 656c6970 strbvs r6, [ip, #-2416]! - 78b8: 35562072 ldrbcc r2, [r6, #-114] - 78bc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 78c0: 31332e32 teqcc r3, r2, lsr lr - 78c4: 2f353932 svccs 0x00353932 - 78c8: 20323357 eorscs r3, r2, r7, asr r3 - 78cc: 4b43494b blmi 10d9e00 - 78d0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 78d4: 6f662054 svcvs 0x00662054 - 78d8: 52412072 subpl r2, r1, #114 ; 0x72 - 78dc: 1801004d stmdane r1, {r0, r2, r3, r6} - 78e0: 68004034 stmdavs r0, {r2, r4, r5, lr} - 78e4: 14004034 strne r4, [r0], #-52 - 78e8: f5000046 undefined instruction 0xf5000046 - 78ec: 10000025 andne r0, r0, r5, lsr #32 - 78f0: 00006fdb ldrdeq r6, [r0], -fp - 78f4: 00010e08 andeq r0, r1, r8, lsl #28 - 78f8: 69704700 ldmdbvs r0!, {r8, r9, sl, lr}^ - 78fc: 7261556f rsbvc r5, r1, #465567744 ; 0x1bc00000 - 7900: 6e493174 mcrvs 1, 2, r3, cr9, cr4, {3} - 7904: 01007469 tsteq r0, r9, ror #8 - 7908: 010601a1 smlatbeq r6, r1, r1, r0 - 790c: 00001751 andeq r1, r0, r1, asr r7 - 7910: 00403418 subeq r3, r0, r8, lsl r4 - 7914: 00403468 subeq r3, r0, r8, ror #8 - 7918: 706d740a rsbvc r7, sp, sl, lsl #8 - 791c: 00676552 rsbeq r6, r7, r2, asr r5 - 7920: 1501a301 strne sl, [r1, #-769] - 7924: 00751b10 rsbseq r1, r5, r0, lsl fp - 7928: 00176500 andseq r6, r7, r0, lsl #10 - 792c: 00000000 andeq r0, r0, r0 - 7930: 00000108 andeq r0, r0, r8, lsl #2 - 7934: 08c40003 stmiaeq r4, {r0, r1}^ - 7938: 05040000 streq r0, [r4] - 793c: 445c3a43 ldrbmi r3, [ip], #-2627 - 7940: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7944: 73746e65 cmnvc r4, #1616 ; 0x650 - 7948: 646e6120 strbtvs r6, [lr], #-288 - 794c: 74655320 strbtvc r5, [r5], #-800 - 7950: 676e6974 undefined - 7954: 616d5c73 smcvs 54723 - 7958: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 795c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 7960: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7964: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7968: 775c7374 undefined - 796c: 6f632d73 svcvs 0x00632d73 - 7970: 6f72746e svcvs 0x0072746e - 7974: 65575c6c ldrbvs r5, [r7, #-3180] - 7978: 65687461 strbvs r7, [r8, #-1121]! - 797c: 74532072 ldrbvc r2, [r3], #-114 - 7980: 6f697461 svcvs 0x00697461 - 7984: 6f43206e svcvs 0x0043206e - 7988: 6f72746e svcvs 0x0072746e - 798c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7990: 7070415c rsbsvc r4, r0, ip, asr r1 - 7994: 6163696c cmnvs r3, ip, ror #18 - 7998: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 799c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 79a0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 79a4: 555c7365 ldrbpl r7, [ip, #-869] - 79a8: 55747261 ldrbpl r7, [r4, #-609]! - 79ac: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} - 79b0: 41490063 cmpmi r9, r3, rrx - 79b4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 79b8: 43204953 teqmi r0, #1359872 ; 0x14c000 - 79bc: 2b2b432f blcs ad8680 - 79c0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 79c4: 656c6970 strbvs r6, [ip, #-2416]! - 79c8: 35562072 ldrbcc r2, [r6, #-114] - 79cc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 79d0: 31332e32 teqcc r3, r2, lsr lr - 79d4: 2f353932 svccs 0x00353932 - 79d8: 20323357 eorscs r3, r2, r7, asr r3 - 79dc: 4b43494b blmi 10d9f10 - 79e0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 79e4: 6f662054 svcvs 0x00662054 - 79e8: 52412072 subpl r2, r1, #114 ; 0x72 - 79ec: 6c01004d stcvs 0, cr0, [r1], {77} - 79f0: 6e004034 mcrvs 0, 0, r4, cr0, cr4, {1} - 79f4: d0004034 andle r4, r0, r4, lsr r0 - 79f8: 5e000046 cdppl 0, 0, cr0, cr0, cr6, {2} - 79fc: 10000026 andne r0, r0, r6, lsr #32 - 7a00: 00006fdb ldrdeq r6, [r0], -fp - 7a04: 00010b08 andeq r0, r1, r8, lsl #22 - 7a08: 72615500 rsbvc r5, r1, #0 ; 0x0 - 7a0c: 65764574 ldrbvs r4, [r6, #-1396]! - 7a10: 6552746e ldrbvs r7, [r2, #-1134] - 7a14: 00316461 eorseq r6, r1, r1, ror #8 - 7a18: 0601cb01 streq ip, [r1], -r1, lsl #22 - 7a1c: 00179701 andseq r9, r7, r1, lsl #14 - 7a20: 40346c00 eorsmi r6, r4, r0, lsl #24 - 7a24: 40346e00 eorsmi r6, r4, r0, lsl #28 - 7a28: 72610b00 rsbvc r0, r1, #0 ; 0x0 - 7a2c: 01007367 tsteq r0, r7, ror #6 - 7a30: 102d01cb eorne r0, sp, fp, asr #3 - 7a34: 000070d7 ldrdeq r7, [r0], -r7 - 7a38: 00005001 andeq r5, r0, r1 - 7a3c: 0000010c andeq r0, r0, ip, lsl #2 - 7a40: 08c40003 stmiaeq r4, {r0, r1}^ - 7a44: 05040000 streq r0, [r4] - 7a48: 445c3a43 ldrbmi r3, [ip], #-2627 - 7a4c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7a50: 73746e65 cmnvc r4, #1616 ; 0x650 - 7a54: 646e6120 strbtvs r6, [lr], #-288 - 7a58: 74655320 strbtvc r5, [r5], #-800 - 7a5c: 676e6974 undefined - 7a60: 616d5c73 smcvs 54723 - 7a64: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 7a68: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 7a6c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7a70: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7a74: 775c7374 undefined - 7a78: 6f632d73 svcvs 0x00632d73 - 7a7c: 6f72746e svcvs 0x0072746e - 7a80: 65575c6c ldrbvs r5, [r7, #-3180] - 7a84: 65687461 strbvs r7, [r8, #-1121]! - 7a88: 74532072 ldrbvc r2, [r3], #-114 - 7a8c: 6f697461 svcvs 0x00697461 - 7a90: 6f43206e svcvs 0x0043206e - 7a94: 6f72746e svcvs 0x0072746e - 7a98: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7a9c: 7070415c rsbsvc r4, r0, ip, asr r1 - 7aa0: 6163696c cmnvs r3, ip, ror #18 - 7aa4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7aa8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 7aac: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 7ab0: 555c7365 ldrbpl r7, [ip, #-869] - 7ab4: 55747261 ldrbpl r7, [r4, #-609]! - 7ab8: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} - 7abc: 41490063 cmpmi r9, r3, rrx - 7ac0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 7ac4: 43204953 teqmi r0, #1359872 ; 0x14c000 - 7ac8: 2b2b432f blcs ad878c - 7acc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 7ad0: 656c6970 strbvs r6, [ip, #-2416]! - 7ad4: 35562072 ldrbcc r2, [r6, #-114] - 7ad8: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 7adc: 31332e32 teqcc r3, r2, lsr lr - 7ae0: 2f353932 svccs 0x00353932 - 7ae4: 20323357 eorscs r3, r2, r7, asr r3 - 7ae8: 4b43494b blmi 10da01c - 7aec: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 7af0: 6f662054 svcvs 0x00662054 - 7af4: 52412072 subpl r2, r1, #114 ; 0x72 - 7af8: 6e01004d cdpvs 0, 0, cr0, cr1, cr13, {2} - 7afc: 70004034 andvc r4, r0, r4, lsr r0 - 7b00: 80004034 andhi r4, r0, r4, lsr r0 - 7b04: c1000047 tstgt r0, r7, asr #32 - 7b08: 10000026 andne r0, r0, r6, lsr #32 - 7b0c: 00006fdb ldrdeq r6, [r0], -fp - 7b10: 00010e08 andeq r0, r1, r8, lsl #28 - 7b14: 72615500 rsbvc r5, r1, #0 ; 0x0 - 7b18: 65764574 ldrbvs r4, [r6, #-1396]! - 7b1c: 7257746e subsvc r7, r7, #1845493760 ; 0x6e000000 - 7b20: 31657469 cmncc r5, r9, ror #8 - 7b24: 01d70100 bicseq r0, r7, r0, lsl #2 - 7b28: 17ab0106 strne r0, [fp, r6, lsl #2]! - 7b2c: 346e0000 strbtcc r0, [lr] - 7b30: 34700040 ldrbtcc r0, [r0], #-64 - 7b34: 61090040 tstvs r9, r0, asr #32 - 7b38: 00736772 rsbseq r6, r3, r2, ror r7 - 7b3c: 2f01d701 svccs 0x0001d701 - 7b40: 0070eb10 rsbseq lr, r0, r0, lsl fp - 7b44: 0017bf00 andseq fp, r7, r0, lsl #30 - 7b48: 00000000 andeq r0, r0, r0 - 7b4c: 000000d4 ldrdeq r0, [r0], -r4 - 7b50: 08c40003 stmiaeq r4, {r0, r1}^ - 7b54: 05040000 streq r0, [r4] - 7b58: 445c3a43 ldrbmi r3, [ip], #-2627 - 7b5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7b60: 73746e65 cmnvc r4, #1616 ; 0x650 - 7b64: 646e6120 strbtvs r6, [lr], #-288 - 7b68: 74655320 strbtvc r5, [r5], #-800 - 7b6c: 676e6974 undefined - 7b70: 616d5c73 smcvs 54723 - 7b74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 7b78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 7b7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7b80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7b84: 775c7374 undefined - 7b88: 6f632d73 svcvs 0x00632d73 - 7b8c: 6f72746e svcvs 0x0072746e - 7b90: 65575c6c ldrbvs r5, [r7, #-3180] - 7b94: 65687461 strbvs r7, [r8, #-1121]! - 7b98: 74532072 ldrbvc r2, [r3], #-114 - 7b9c: 6f697461 svcvs 0x00697461 - 7ba0: 6f43206e svcvs 0x0043206e - 7ba4: 6f72746e svcvs 0x0072746e - 7ba8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7bac: 7070415c rsbsvc r4, r0, ip, asr r1 - 7bb0: 6163696c cmnvs r3, ip, ror #18 - 7bb4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7bb8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 7bbc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 7bc0: 555c7365 ldrbpl r7, [ip, #-869] - 7bc4: 55747261 ldrbpl r7, [r4, #-609]! - 7bc8: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} - 7bcc: 41490063 cmpmi r9, r3, rrx - 7bd0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 7bd4: 43204953 teqmi r0, #1359872 ; 0x14c000 - 7bd8: 2b2b432f blcs ad889c - 7bdc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 7be0: 656c6970 strbvs r6, [ip, #-2416]! - 7be4: 35562072 ldrbcc r2, [r6, #-114] - 7be8: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 7bec: 31332e32 teqcc r3, r2, lsr lr - 7bf0: 2f353932 svccs 0x00353932 - 7bf4: 20323357 eorscs r3, r2, r7, asr r3 - 7bf8: 4b43494b blmi 10da12c - 7bfc: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 7c00: 6f662054 svcvs 0x00662054 - 7c04: 52412072 subpl r2, r1, #114 ; 0x72 - 7c08: 7001004d andvc r0, r1, sp, asr #32 - 7c0c: 80004034 andhi r4, r0, r4, lsr r0 - 7c10: 2c004034 stccs 0, cr4, [r0], {52} - 7c14: 11000048 tstne r0, r8, asr #32 - 7c18: 10000027 andne r0, r0, r7, lsr #32 - 7c1c: 00006fdb ldrdeq r6, [r0], -fp - 7c20: 00000000 andeq r0, r0, r0 - 7c24: 00000160 andeq r0, r0, r0, ror #2 - 7c28: 08c40003 stmiaeq r4, {r0, r1}^ - 7c2c: 05040000 streq r0, [r4] - 7c30: 445c3a43 ldrbmi r3, [ip], #-2627 - 7c34: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7c38: 73746e65 cmnvc r4, #1616 ; 0x650 - 7c3c: 646e6120 strbtvs r6, [lr], #-288 - 7c40: 74655320 strbtvc r5, [r5], #-800 - 7c44: 676e6974 undefined - 7c48: 616d5c73 smcvs 54723 - 7c4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 7c50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 7c54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7c58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7c5c: 775c7374 undefined - 7c60: 6f632d73 svcvs 0x00632d73 - 7c64: 6f72746e svcvs 0x0072746e - 7c68: 65575c6c ldrbvs r5, [r7, #-3180] - 7c6c: 65687461 strbvs r7, [r8, #-1121]! - 7c70: 74532072 ldrbvc r2, [r3], #-114 - 7c74: 6f697461 svcvs 0x00697461 - 7c78: 6f43206e svcvs 0x0043206e - 7c7c: 6f72746e svcvs 0x0072746e - 7c80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7c84: 7070415c rsbsvc r4, r0, ip, asr r1 - 7c88: 6163696c cmnvs r3, ip, ror #18 - 7c8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7c90: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 7c94: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 7c98: 555c7365 ldrbpl r7, [ip, #-869] - 7c9c: 55747261 ldrbpl r7, [r4, #-609]! - 7ca0: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} - 7ca4: 41490063 cmpmi r9, r3, rrx - 7ca8: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 7cac: 43204953 teqmi r0, #1359872 ; 0x14c000 - 7cb0: 2b2b432f blcs ad8974 - 7cb4: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 7cb8: 656c6970 strbvs r6, [ip, #-2416]! - 7cbc: 35562072 ldrbcc r2, [r6, #-114] - 7cc0: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 7cc4: 31332e32 teqcc r3, r2, lsr lr - 7cc8: 2f353932 svccs 0x00353932 - 7ccc: 20323357 eorscs r3, r2, r7, asr r3 - 7cd0: 4b43494b blmi 10da204 - 7cd4: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 7cd8: 6f662054 svcvs 0x00662054 - 7cdc: 52412072 subpl r2, r1, #114 ; 0x72 - 7ce0: 8001004d andhi r0, r1, sp, asr #32 - 7ce4: c6004034 undefined - 7ce8: e8004034 stmda r0, {r2, r4, r5, lr} - 7cec: 94000048 strls r0, [r0], #-72 - 7cf0: 10000027 andne r0, r0, r7, lsr #32 - 7cf4: 00006fdb ldrdeq r6, [r0], -fp - 7cf8: 00016108 andeq r6, r1, r8, lsl #2 - 7cfc: 72615500 rsbvc r5, r1, #0 ; 0x0 - 7d00: 72505f74 subsvc r5, r0, #464 ; 0x1d0 - 7d04: 00746e69 rsbseq r6, r4, r9, ror #28 - 7d08: 06028b01 streq r8, [r2], -r1, lsl #22 - 7d0c: 0017c701 andseq ip, r7, r1, lsl #14 - 7d10: 40348000 eorsmi r8, r4, r0 - 7d14: 4034c600 eorsmi ip, r4, r0, lsl #12 - 7d18: 53700900 cmnpl r0, #0 ; 0x0 - 7d1c: 6e697274 mcrvs 2, 3, r7, cr9, cr4, {3} - 7d20: 8b010067 blhi 47ec4 - 7d24: c0101a02 andsgt r1, r0, r2, lsl #20 - 7d28: 17000070 smlsdxne r0, r0, r0, r0 - 7d2c: 0a000018 beq 7d94 - 7d30: 74697257 strbtvc r7, [r9], #-599 - 7d34: 66754265 ldrbtvs r4, [r5], -r5, ror #4 - 7d38: 00726566 rsbseq r6, r2, r6, ror #10 - 7d3c: 0b028d01 bleq ab148 - 7d40: 00727c10 rsbseq r7, r2, r0, lsl ip - 7d44: 00183500 andseq r3, r8, r0, lsl #10 - 7d48: 656c0a00 strbvs r0, [ip, #-2560]! - 7d4c: 6874676e ldmdavs r4!, {r1, r2, r3, r5, r6, r8, r9, sl, sp, lr}^ - 7d50: 028e0100 addeq r0, lr, #0 ; 0x0 - 7d54: 74ee100b strbtvc r1, [lr], #11 - 7d58: 18530000 ldmdane r3, {}^ - 7d5c: 750a0000 strvc r0, [sl] - 7d60: 6d695438 cfstrdvs mvd5, [r9, #-224]! - 7d64: 74756f65 ldrbtvc r6, [r5], #-3941 - 7d68: 028f0100 addeq r0, pc, #0 ; 0x0 - 7d6c: 750b100c strvc r1, [fp, #-12] - 7d70: 18700000 ldmdane r0!, {}^ - 7d74: 600c0000 andvs r0, ip, r0 - 7d78: 94000001 strls r0, [r0], #-1 - 7d7c: bc004034 stclt 0, cr4, [r0], {52} - 7d80: 00004034 andeq r4, r0, r4, lsr r0 - 7d84: 00000000 andeq r0, r0, r0 - 7d88: 00000320 andeq r0, r0, r0, lsr #6 - 7d8c: 0a300003 beq c07da0 - 7d90: 01040000 tsteq r4, r0 - 7d94: 445c3a43 ldrbmi r3, [ip], #-2627 - 7d98: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7d9c: 73746e65 cmnvc r4, #1616 ; 0x650 - 7da0: 646e6120 strbtvs r6, [lr], #-288 - 7da4: 74655320 strbtvc r5, [r5], #-800 - 7da8: 676e6974 undefined - 7dac: 616d5c73 smcvs 54723 - 7db0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 7db4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 7db8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7dbc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7dc0: 775c7374 undefined - 7dc4: 6f632d73 svcvs 0x00632d73 - 7dc8: 6f72746e svcvs 0x0072746e - 7dcc: 65575c6c ldrbvs r5, [r7, #-3180] - 7dd0: 65687461 strbvs r7, [r8, #-1121]! - 7dd4: 74532072 ldrbvc r2, [r3], #-114 - 7dd8: 6f697461 svcvs 0x00697461 - 7ddc: 6f43206e svcvs 0x0043206e - 7de0: 6f72746e svcvs 0x0072746e - 7de4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7de8: 414d535c cmpmi sp, ip, asr r3 - 7dec: 6f535c43 svcvs 0x00535c43 - 7df0: 65637275 strbvs r7, [r3, #-629]! - 7df4: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 - 7df8: 73656c65 cmnvc r5, #25856 ; 0x6500 - 7dfc: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 7e00: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 7e04: 632e746d teqvs lr, #1828716544 ; 0x6d000000 - 7e08: 52414900 subpl r4, r1, #0 ; 0x0 - 7e0c: 534e4120 movtpl r4, #57632 ; 0xe120 - 7e10: 2f432049 svccs 0x00432049 - 7e14: 202b2b43 eorcs r2, fp, r3, asr #22 - 7e18: 706d6f43 rsbvc r6, sp, r3, asr #30 - 7e1c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 7e20: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 7e24: 322e3033 eorcc r3, lr, #51 ; 0x33 - 7e28: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 7e2c: 572f3539 undefined - 7e30: 4b203233 blmi 814704 - 7e34: 534b4349 movtpl r4, #45897 ; 0xb349 - 7e38: 54524154 ldrbpl r4, [r2], #-340 - 7e3c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 7e40: 4d524120 ldfmie f4, [r2, #-128] - 7e44: 49a80100 stmibmi r8!, {r8} - 7e48: 01e40000 mvneq r0, r0 - 7e4c: 75030000 strvc r0, [r3] - 7e50: 6769736e strbvs r7, [r9, -lr, ror #6]! - 7e54: 2064656e rsbcs r6, r4, lr, ror #10 - 7e58: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 - 7e5c: 04080100 streq r0, [r8], #-256 - 7e60: 0002f913 andeq pc, r2, r3, lsl r9 - 7e64: 6f760300 svcvs 0x00760300 - 7e68: 00006469 andeq r6, r0, r9, ror #8 - 7e6c: 57130405 ldrpl r0, [r3, -r5, lsl #8] - 7e70: 04000001 streq r0, [r0], #-1 - 7e74: 0001fa13 andeq pc, r1, r3, lsl sl - 7e78: 6e750300 cdpvs 3, 7, cr0, cr5, cr0, {0} - 7e7c: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} - 7e80: 6c206465 cfstrsvs mvf6, [r0], #-404 - 7e84: 00676e6f rsbeq r6, r7, pc, ror #28 - 7e88: 13040704 movwne r0, #18180 ; 0x4704 - 7e8c: 000002a1 andeq r0, r0, r1, lsr #5 - 7e90: 736e7503 cmnvc lr, #12582912 ; 0xc00000 - 7e94: 656e6769 strbvs r6, [lr, #-1897]! - 7e98: 68732064 ldmdavs r3!, {r2, r5, r6, sp}^ - 7e9c: 0074726f rsbseq r7, r4, pc, ror #4 - 7ea0: 13040702 movwne r0, #18178 ; 0x4702 - 7ea4: 0000015d andeq r0, r0, sp, asr r1 - 7ea8: 00015708 andeq r5, r1, r8, lsl #14 - 7eac: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! - 7eb0: 7079745f rsbsvc r7, r9, pc, asr r4 - 7eb4: 61745f65 cmnvs r4, r5, ror #30 - 7eb8: 09010067 stmdbeq r1, {r0, r1, r2, r5, r6} - 7ebc: 00005854 andeq r5, r0, r4, asr r8 - 7ec0: 00585209 subseq r5, r8, r9, lsl #4 - 7ec4: 44450901 strbmi r0, [r5], #-2305 - 7ec8: 54090200 strpl r0, [r9], #-512 - 7ecc: 0903004f stmdbeq r3, {r0, r1, r2, r3, r6} - 7ed0: 5f58414d svcpl 0x0058414d - 7ed4: 5f47534d svcpl 0x0047534d - 7ed8: 45505954 ldrbmi r5, [r0, #-2388] - 7edc: 0a000400 beq 8ee4 - 7ee0: 0000015d andeq r0, r0, sp, asr r1 - 7ee4: 01690a00 cmneq r9, r0, lsl #20 - 7ee8: 130b0000 movwne r0, #45056 ; 0xb000 - 7eec: 000002a1 andeq r0, r0, r1, lsr #5 - 7ef0: 01760c00 cmneq r6, r0, lsl #24 - 7ef4: a1130000 tstge r3, r0 - 7ef8: 0d000002 stceq 0, cr0, [r0, #-8] - 7efc: 830c0000 movwhi r0, #49152 ; 0xc000 - 7f00: 13000001 movwne r0, #1 ; 0x1 - 7f04: 000002a1 andeq r0, r0, r1, lsr #5 - 7f08: 0e00010d adfeqs f0, f0, #5.0 - 7f0c: 000001b7 strheq r0, [r0], -r7 - 7f10: 63616d73 cmnvs r1, #7360 ; 0x1cc0 - 7f14: 7564705f strbvc r7, [r4, #-95]! - 7f18: 6761745f undefined - 7f1c: 150f0300 strne r0, [pc, #-768] ; 7c24 - 7f20: 720102f6 andvc r0, r1, #1610612751 ; 0x6000000f - 7f24: 72657365 rsbvc r7, r5, #-1811939327 ; 0x94000001 - 7f28: 00646576 rsbeq r6, r4, r6, ror r5 - 7f2c: 0f002302 svceq 0x00002302 - 7f30: 0102e915 tsteq r2, r5, lsl r9 - 7f34: 61443875 cmpvs r4, r5, ror r8 - 7f38: 02006174 andeq r6, r0, #29 ; 0x1d - 7f3c: 0e000223 cdpeq 2, 0, cr0, cr0, cr3, {1} - 7f40: 000001fa strdeq r0, [r0], -sl - 7f44: 5f67736d svcpl 0x0067736d - 7f48: 74617473 strbtvc r7, [r1], #-1139 - 7f4c: 745f7375 ldrbvc r7, [pc], #885 ; 7f54 - 7f50: 01006761 tsteq r0, r1, ror #14 - 7f54: 028e1310 addeq r1, lr, #1073741824 ; 0x40000000 - 7f58: 6d010000 stcvs 0, cr0, [r1] - 7f5c: 745f6773 ldrbvc r6, [pc], #1907 ; 7f64 - 7f60: 00657079 rsbeq r7, r5, r9, ror r0 - 7f64: 01002302 tsteq r0, r2, lsl #6 - 7f68: 13100503 tstne r0, #12582912 ; 0xc00000 - 7f6c: 000002a1 andeq r0, r0, r1, lsr #5 - 7f70: 67736d01 ldrbvs r6, [r3, -r1, lsl #26]! - 7f74: 6174735f cmnvs r4, pc, asr r3 - 7f78: 02006574 andeq r6, r0, #486539264 ; 0x1d000000 - 7f7c: 05010023 streq r0, [r1, #-35] - 7f80: 610e0000 tstvs lr, r0 - 7f84: 6d000002 stcvs 0, cr0, [r0, #-8] - 7f88: 61737365 cmnvs r3, r5, ror #6 - 7f8c: 745f6567 ldrbvc r6, [pc], #1383 ; 7f94 - 7f90: 10006761 andne r6, r0, r1, ror #14 - 7f94: 030c130f movweq r1, #49935 ; 0xc30f - 7f98: 75010000 strvc r0, [r1] - 7f9c: 61745338 cmnvs r4, r8, lsr r3 - 7fa0: 00737574 rsbseq r7, r3, r4, ror r5 - 7fa4: 0f002302 svceq 0x00002302 - 7fa8: 0101d715 tsteq r1, r5, lsl r7 - 7fac: 42387570 eorsmi r7, r8, #469762048 ; 0x1c000000 - 7fb0: 65666675 strbvs r6, [r6, #-1653]! - 7fb4: 23020072 movwcs r0, #8306 ; 0x2072 - 7fb8: a1130f04 tstge r3, r4, lsl #30 - 7fbc: 01000002 tsteq r0, r2 - 7fc0: 75423875 strbvc r3, [r2, #-2165] - 7fc4: 7a695366 bvc 1a5cd64 - 7fc8: 23020065 movwcs r0, #8293 ; 0x2065 - 7fcc: d0130f08 andsle r0, r3, r8, lsl #30 - 7fd0: 01000002 tsteq r0, r2 - 7fd4: 61446263 cmpvs r4, r3, ror #4 - 7fd8: 6e496174 mcrvs 1, 2, r6, cr9, cr4, {3} - 7fdc: 61636964 cmnvs r3, r4, ror #18 - 7fe0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7fe4: 0c230200 sfmeq f0, 4, [r3] - 7fe8: 75461100 strbvc r1, [r6, #-256] - 7fec: 6552636e ldrbvs r6, [r2, #-878] - 7ff0: 6e727574 mrcvs 5, 3, r7, cr2, cr4, {3} - 7ff4: 1000745f andne r7, r0, pc, asr r4 - 7ff8: 00002af6 strdeq r2, [r0], -r6 - 7ffc: 1103500b tstne r3, fp - 8000: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} - 8004: 5f6c656e svcpl 0x006c656e - 8008: 5f6d756e svcpl 0x006d756e - 800c: de100074 mrcle 0, 0, r0, cr0, cr4, {3} - 8010: 0b00005b bleq 8184 - 8014: 6d110365 ldcvs 3, cr0, [r1, #-404] - 8018: 745f6773 ldrbvc r6, [pc], #1907 ; 8020 - 801c: 5f657079 svcpl 0x00657079 - 8020: a0150074 andsge r0, r5, r4, ror r0 - 8024: 01d90c02 bicseq r0, r9, r2, lsl #24 - 8028: 69751103 ldmdbvs r5!, {r0, r1, r8, ip}^ - 802c: 5f38746e svcpl 0x0038746e - 8030: c6150074 undefined - 8034: 191a0101 ldmdbne sl, {r0, r8} - 8038: 6e697511 mcrvs 5, 3, r7, cr9, cr1, {0} - 803c: 5f363174 svcpl 0x00363174 - 8040: 88150074 ldmdahi r5, {r2, r4, r5, r6} - 8044: 191c0102 ldmdbne ip, {r1, r8} - 8048: 6e697511 mcrvs 5, 3, r7, cr9, cr1, {0} - 804c: 5f323374 svcpl 0x00323374 - 8050: f1150074 undefined instruction 0xf1150074 - 8054: 191e0101 ldmdbne lr, {r0, r8} - 8058: 6c616311 stclvs 3, cr6, [r1], #-68 - 805c: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 - 8060: 00745f6b rsbseq r5, r4, fp, ror #30 - 8064: 0b01e515 bleq 814c0 - 8068: 76110f16 sadd16vc r0, r1, r6 - 806c: 6e616353 mcrvs 3, 3, r6, cr1, cr3, {2} - 8070: 6c6c6143 stfvse f6, [ip], #-268 - 8074: 6b636162 blvs 18e0604 - 8078: 1500745f strne r7, [r0, #-1119] - 807c: 170b029a undefined - 8080: 6d73110f ldfvse f1, [r3, #-60]! - 8084: 705f6361 subsvc r6, pc, r1, ror #6 - 8088: 745f7564 ldrbvc r7, [pc], #1380 ; 8090 - 808c: 03831500 orreq r1, r3, #0 ; 0x0 - 8090: 0301960c movweq r9, #5644 ; 0x160c - 8094: 67736d11 undefined - 8098: 6174735f cmnvs r4, pc, asr r3 - 809c: 5f737574 svcpl 0x00737574 - 80a0: b7150074 undefined - 80a4: 01df0c03 bicseq r0, pc, r3, lsl #24 - 80a8: 00000003 andeq r0, r0, r3 - 80ac: 0000010c andeq r0, r0, ip, lsl #2 - 80b0: 0a300003 beq c080c4 - 80b4: 02040000 andeq r0, r4, #0 ; 0x0 - 80b8: 445c3a43 ldrbmi r3, [ip], #-2627 - 80bc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 80c0: 73746e65 cmnvc r4, #1616 ; 0x650 - 80c4: 646e6120 strbtvs r6, [lr], #-288 - 80c8: 74655320 strbtvc r5, [r5], #-800 - 80cc: 676e6974 undefined - 80d0: 616d5c73 smcvs 54723 - 80d4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 80d8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 80dc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 80e0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 80e4: 775c7374 undefined - 80e8: 6f632d73 svcvs 0x00632d73 - 80ec: 6f72746e svcvs 0x0072746e - 80f0: 65575c6c ldrbvs r5, [r7, #-3180] - 80f4: 65687461 strbvs r7, [r8, #-1121]! - 80f8: 74532072 ldrbvc r2, [r3], #-114 - 80fc: 6f697461 svcvs 0x00697461 - 8100: 6f43206e svcvs 0x0043206e - 8104: 6f72746e svcvs 0x0072746e - 8108: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 810c: 414d535c cmpmi sp, ip, asr r3 - 8110: 6f535c43 svcvs 0x00535c43 - 8114: 65637275 strbvs r7, [r3, #-629]! - 8118: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 - 811c: 73656c65 cmnvc r5, #25856 ; 0x6500 - 8120: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 8124: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 8128: 632e746d teqvs lr, #1828716544 ; 0x6d000000 - 812c: 52414900 subpl r4, r1, #0 ; 0x0 - 8130: 534e4120 movtpl r4, #57632 ; 0xe120 - 8134: 2f432049 svccs 0x00432049 - 8138: 202b2b43 eorcs r2, fp, r3, asr #22 - 813c: 706d6f43 rsbvc r6, sp, r3, asr #30 - 8140: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 8144: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 8148: 322e3033 eorcc r3, lr, #51 ; 0x33 - 814c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 8150: 572f3539 undefined - 8154: 4b203233 blmi 814a28 - 8158: 534b4349 movtpl r4, #45897 ; 0xb349 - 815c: 54524154 ldrbpl r4, [r2], #-340 - 8160: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 8164: 4d524120 ldfmie f4, [r2, #-128] - 8168: 3a1c0100 bcc 708570 - 816c: 3a300040 bcc c08274 - 8170: 4e880040 cdpmi 0, 8, cr0, cr8, cr0, {2} - 8174: 28110000 ldmdacs r1, {} - 8178: 93100000 tstls r0, #0 ; 0x0 - 817c: 0500007d streq r0, [r0, #-125] - 8180: 0000010f andeq r0, r0, pc, lsl #2 - 8184: 5350434d cmppl r0, #872415233 ; 0x34000001 - 8188: 61746144 cmnvs r4, r4, asr #2 - 818c: 75716552 ldrbvc r6, [r1, #-1362]! - 8190: 00747365 rsbseq r7, r4, r5, ror #6 - 8194: 010e3b01 tsteq lr, r1, lsl #22 - 8198: 007fe910 rsbseq lr, pc, r0, lsl r9 - 819c: 00188d00 andseq r8, r8, r0, lsl #26 - 81a0: 403a1c00 eorsmi r1, sl, r0, lsl #24 - 81a4: 403a3000 eorsmi r3, sl, r0 - 81a8: 736d0600 cmnvc sp, #0 ; 0x0 - 81ac: 3b010067 blcc 48350 - 81b0: 7e73102a cdpvc 0, 7, cr1, cr3, cr10, {1} - 81b4: 18ad0000 stmiane sp!, {} - 81b8: 00000000 andeq r0, r0, r0 - 81bc: 00000128 andeq r0, r0, r8, lsr #2 - 81c0: 0a300003 beq c081d4 - 81c4: 02040000 andeq r0, r4, #0 ; 0x0 - 81c8: 445c3a43 ldrbmi r3, [ip], #-2627 - 81cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 81d0: 73746e65 cmnvc r4, #1616 ; 0x650 - 81d4: 646e6120 strbtvs r6, [lr], #-288 - 81d8: 74655320 strbtvc r5, [r5], #-800 - 81dc: 676e6974 undefined - 81e0: 616d5c73 smcvs 54723 - 81e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 81e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 81ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 81f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 81f4: 775c7374 undefined - 81f8: 6f632d73 svcvs 0x00632d73 - 81fc: 6f72746e svcvs 0x0072746e - 8200: 65575c6c ldrbvs r5, [r7, #-3180] - 8204: 65687461 strbvs r7, [r8, #-1121]! - 8208: 74532072 ldrbvc r2, [r3], #-114 - 820c: 6f697461 svcvs 0x00697461 - 8210: 6f43206e svcvs 0x0043206e - 8214: 6f72746e svcvs 0x0072746e - 8218: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 821c: 414d535c cmpmi sp, ip, asr r3 - 8220: 6f535c43 svcvs 0x00535c43 - 8224: 65637275 strbvs r7, [r3, #-629]! - 8228: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 - 822c: 73656c65 cmnvc r5, #25856 ; 0x6500 - 8230: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 8234: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 8238: 632e746d teqvs lr, #1828716544 ; 0x6d000000 - 823c: 52414900 subpl r4, r1, #0 ; 0x0 - 8240: 534e4120 movtpl r4, #57632 ; 0xe120 - 8244: 2f432049 svccs 0x00432049 - 8248: 202b2b43 eorcs r2, fp, r3, asr #22 - 824c: 706d6f43 rsbvc r6, sp, r3, asr #30 - 8250: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 8254: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 8258: 322e3033 eorcc r3, lr, #51 ; 0x33 - 825c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 8260: 572f3539 undefined - 8264: 4b203233 blmi 814b38 - 8268: 534b4349 movtpl r4, #45897 ; 0xb349 - 826c: 54524154 ldrbpl r4, [r2], #-340 - 8270: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 8274: 4d524120 ldfmie f4, [r2, #-128] - 8278: 3a300100 bcc c08680 - 827c: 3a4c0040 bcc 1308384 - 8280: 4f3c0040 svcmi 0x003c0040 - 8284: 287e0000 ldmdacs lr!, {}^ - 8288: 93100000 tstls r0, #0 ; 0x0 - 828c: 0500007d streq r0, [r0, #-125] - 8290: 00000129 andeq r0, r0, r9, lsr #2 - 8294: 454d4c4d strbmi r4, [sp, #-3149] - 8298: 43746553 cmnmi r4, #348127232 ; 0x14c00000 - 829c: 6e6e6168 powvsez f6, f6, #0.0 - 82a0: 65526c65 ldrbvs r6, [r2, #-3173] - 82a4: 73657571 cmnvc r5, #473956352 ; 0x1c400000 - 82a8: 49010074 stmdbmi r1, {r2, r4, r5, r6} - 82ac: e910010e ldmdb r0, {r1, r2, r3, r8} - 82b0: c000007f andgt r0, r0, pc, ror r0 - 82b4: 30000018 andcc r0, r0, r8, lsl r0 - 82b8: 4c00403a stcmi 0, cr4, [r0], {58} - 82bc: 0600403a undefined - 82c0: 68633875 stmdavs r3!, {r0, r2, r4, r5, r6, fp, ip, sp}^ - 82c4: 656e6e61 strbvs r6, [lr, #-3681]! - 82c8: 4901006c stmdbmi r1, {r2, r3, r5, r6} - 82cc: 7fff1033 svcvc 0x00ff1033 - 82d0: 18e00000 stmiane r0!, {}^ - 82d4: 28070000 stmdacs r7, {} - 82d8: 3a000001 bcc 82e4 - 82dc: 4800403a stmdami r0, {r1, r3, r4, r5, lr} - 82e0: 0000403a andeq r4, r0, sl, lsr r0 - 82e4: 00000000 andeq r0, r0, r0 - 82e8: 00000104 andeq r0, r0, r4, lsl #2 - 82ec: 0a300003 beq c08300 - 82f0: 02040000 andeq r0, r4, #0 ; 0x0 - 82f4: 445c3a43 ldrbmi r3, [ip], #-2627 - 82f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 82fc: 73746e65 cmnvc r4, #1616 ; 0x650 - 8300: 646e6120 strbtvs r6, [lr], #-288 - 8304: 74655320 strbtvc r5, [r5], #-800 - 8308: 676e6974 undefined - 830c: 616d5c73 smcvs 54723 - 8310: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 8314: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8318: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 831c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 8320: 775c7374 undefined - 8324: 6f632d73 svcvs 0x00632d73 - 8328: 6f72746e svcvs 0x0072746e - 832c: 65575c6c ldrbvs r5, [r7, #-3180] - 8330: 65687461 strbvs r7, [r8, #-1121]! - 8334: 74532072 ldrbvc r2, [r3], #-114 - 8338: 6f697461 svcvs 0x00697461 - 833c: 6f43206e svcvs 0x0043206e - 8340: 6f72746e svcvs 0x0072746e - 8344: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 8348: 414d535c cmpmi sp, ip, asr r3 - 834c: 6f535c43 svcvs 0x00535c43 - 8350: 65637275 strbvs r7, [r3, #-629]! - 8354: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 - 8358: 73656c65 cmnvc r5, #25856 ; 0x6500 - 835c: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 8360: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 8364: 632e746d teqvs lr, #1828716544 ; 0x6d000000 - 8368: 52414900 subpl r4, r1, #0 ; 0x0 - 836c: 534e4120 movtpl r4, #57632 ; 0xe120 - 8370: 2f432049 svccs 0x00432049 - 8374: 202b2b43 eorcs r2, fp, r3, asr #22 - 8378: 706d6f43 rsbvc r6, sp, r3, asr #30 - 837c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 8380: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 8384: 322e3033 eorcc r3, lr, #51 ; 0x33 - 8388: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 838c: 572f3539 undefined - 8390: 4b203233 blmi 814c64 - 8394: 534b4349 movtpl r4, #45897 ; 0xb349 - 8398: 54524154 ldrbpl r4, [r2], #-340 - 839c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 83a0: 4d524120 ldfmie f4, [r2, #-128] - 83a4: 00000100 andeq r0, r0, r0, lsl #2 - 83a8: 000c0000 andeq r0, ip, r0 - 83ac: 4ff40000 svcmi 0x00f40000 - 83b0: 29060000 stmdbcs r6, {} - 83b4: 93100000 tstls r0, #0 ; 0x0 - 83b8: 0500007d streq r0, [r0, #-125] - 83bc: 00000104 andeq r0, r0, r4, lsl #2 - 83c0: 454d4c4d strbmi r4, [sp, #-3149] - 83c4: 43746547 cmnmi r4, #297795584 ; 0x11c00000 - 83c8: 6e6e6168 powvsez f6, f6, #0.0 - 83cc: 65526c65 ldrbvs r6, [r2, #-3173] - 83d0: 73657571 cmnvc r5, #473956352 ; 0x1c400000 - 83d4: 5e010074 mcrpl 0, 0, r0, cr1, cr4, {3} - 83d8: 29100109 ldmdbcs r0, {r0, r3, r8} - 83dc: 12000080 andne r0, r0, #128 ; 0x80 - 83e0: 00000019 andeq r0, r0, r9, lsl r0 - 83e4: 0c000000 stceq 0, cr0, [r0], {0} - ... - 83f0: 00000128 andeq r0, r0, r8, lsr #2 - 83f4: 0a300003 beq c08408 - 83f8: 02040000 andeq r0, r4, #0 ; 0x0 - 83fc: 445c3a43 ldrbmi r3, [ip], #-2627 - 8400: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 8404: 73746e65 cmnvc r4, #1616 ; 0x650 - 8408: 646e6120 strbtvs r6, [lr], #-288 - 840c: 74655320 strbtvc r5, [r5], #-800 - 8410: 676e6974 undefined - 8414: 616d5c73 smcvs 54723 - 8418: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 841c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8420: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 8424: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 8428: 775c7374 undefined - 842c: 6f632d73 svcvs 0x00632d73 - 8430: 6f72746e svcvs 0x0072746e - 8434: 65575c6c ldrbvs r5, [r7, #-3180] - 8438: 65687461 strbvs r7, [r8, #-1121]! - 843c: 74532072 ldrbvc r2, [r3], #-114 - 8440: 6f697461 svcvs 0x00697461 - 8444: 6f43206e svcvs 0x0043206e - 8448: 6f72746e svcvs 0x0072746e - 844c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 8450: 414d535c cmpmi sp, ip, asr r3 - 8454: 6f535c43 svcvs 0x00535c43 - 8458: 65637275 strbvs r7, [r3, #-629]! - 845c: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 - 8460: 73656c65 cmnvc r5, #25856 ; 0x6500 - 8464: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 8468: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 846c: 632e746d teqvs lr, #1828716544 ; 0x6d000000 - 8470: 52414900 subpl r4, r1, #0 ; 0x0 - 8474: 534e4120 movtpl r4, #57632 ; 0xe120 - 8478: 2f432049 svccs 0x00432049 - 847c: 202b2b43 eorcs r2, fp, r3, asr #22 - 8480: 706d6f43 rsbvc r6, sp, r3, asr #30 - 8484: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 8488: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 848c: 322e3033 eorcc r3, lr, #51 ; 0x33 - 8490: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 8494: 572f3539 undefined - 8498: 4b203233 blmi 814d6c - 849c: 534b4349 movtpl r4, #45897 ; 0xb349 - 84a0: 54524154 ldrbpl r4, [r2], #-340 - 84a4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 84a8: 4d524120 ldfmie f4, [r2, #-128] - 84ac: 3a540100 bcc 15088b4 - 84b0: 3a640040 bcc 19085b8 - 84b4: 50a40040 adcpl r0, r4, r0, asr #32 - 84b8: 29760000 ldmdbcs r6!, {}^ - 84bc: 93100000 tstls r0, #0 ; 0x0 - 84c0: 0500007d streq r0, [r0, #-125] - 84c4: 00000128 andeq r0, r0, r8, lsr #2 - 84c8: 454d4c4d strbmi r4, [sp, #-3149] - 84cc: 6e455852 mcrvs 8, 2, r5, cr5, cr2, {2} - 84d0: 656c6261 strbvs r6, [ip, #-609]! - 84d4: 75716552 ldrbvc r6, [r1, #-1362]! - 84d8: 00747365 rsbseq r7, r4, r5, ror #6 - 84dc: 010e6a01 tsteq lr, r1, lsl #20 - 84e0: 007fe910 rsbseq lr, pc, r0, lsl r9 - 84e4: 00193200 andseq r3, r9, r0, lsl #4 - 84e8: 403a5400 eorsmi r5, sl, r0, lsl #8 - 84ec: 403a6400 eorsmi r6, sl, r0, lsl #8 - 84f0: 736d0600 cmnvc sp, #0 ; 0x0 - 84f4: 6a010067 bvs 48698 - 84f8: 7e73102e cdpvc 0, 7, cr1, cr3, cr14, {1} - 84fc: 19520000 ldmdbne r2, {}^ - 8500: 74060000 strvc r0, [r6] - 8504: 6f656d69 svcvs 0x00656d69 - 8508: 01007475 tsteq r0, r5, ror r4 - 850c: 48103c6a ldmdami r0, {r1, r3, r5, r6, sl, fp, ip, sp} - 8510: 65000080 strvs r0, [r0, #-128] - 8514: 00000019 andeq r0, r0, r9, lsl r0 - 8518: 00000000 andeq r0, r0, r0 - 851c: 00000114 andeq r0, r0, r4, lsl r1 - 8520: 0a300003 beq c08534 - 8524: 02040000 andeq r0, r4, #0 ; 0x0 - 8528: 445c3a43 ldrbmi r3, [ip], #-2627 - 852c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 8530: 73746e65 cmnvc r4, #1616 ; 0x650 - 8534: 646e6120 strbtvs r6, [lr], #-288 - 8538: 74655320 strbtvc r5, [r5], #-800 - 853c: 676e6974 undefined - 8540: 616d5c73 smcvs 54723 - 8544: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 8548: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 854c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 8550: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 8554: 775c7374 undefined - 8558: 6f632d73 svcvs 0x00632d73 - 855c: 6f72746e svcvs 0x0072746e - 8560: 65575c6c ldrbvs r5, [r7, #-3180] - 8564: 65687461 strbvs r7, [r8, #-1121]! - 8568: 74532072 ldrbvc r2, [r3], #-114 - 856c: 6f697461 svcvs 0x00697461 - 8570: 6f43206e svcvs 0x0043206e - 8574: 6f72746e svcvs 0x0072746e - 8578: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 857c: 414d535c cmpmi sp, ip, asr r3 - 8580: 6f535c43 svcvs 0x00535c43 - 8584: 65637275 strbvs r7, [r3, #-629]! - 8588: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 - 858c: 73656c65 cmnvc r5, #25856 ; 0x6500 - 8590: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 8594: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 8598: 632e746d teqvs lr, #1828716544 ; 0x6d000000 - 859c: 52414900 subpl r4, r1, #0 ; 0x0 - 85a0: 534e4120 movtpl r4, #57632 ; 0xe120 - 85a4: 2f432049 svccs 0x00432049 - 85a8: 202b2b43 eorcs r2, fp, r3, asr #22 - 85ac: 706d6f43 rsbvc r6, sp, r3, asr #30 - 85b0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 85b4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 85b8: 322e3033 eorcc r3, lr, #51 ; 0x33 - 85bc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 85c0: 572f3539 undefined - 85c4: 4b203233 blmi 814e98 - 85c8: 534b4349 movtpl r4, #45897 ; 0xb349 - 85cc: 54524154 ldrbpl r4, [r2], #-340 - 85d0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 85d4: 4d524120 ldfmie f4, [r2, #-128] - 85d8: 00000100 andeq r0, r0, r0, lsl #2 - 85dc: 00160000 andseq r0, r6, r0 - 85e0: 51540000 cmppl r4, r0 - 85e4: 29db0000 ldmibcs fp, {}^ - 85e8: 93100000 tstls r0, #0 ; 0x0 - 85ec: 0500007d streq r0, [r0, #-125] - 85f0: 00000114 andeq r0, r0, r4, lsl r1 - 85f4: 454d4c4d strbmi r4, [sp, #-3149] - 85f8: 69445852 stmdbvs r4, {r1, r4, r6, fp, ip, lr}^ - 85fc: 6c626173 stfvse f6, [r2], #-460 - 8600: 71655265 cmnvc r5, r5, ror #4 - 8604: 74736575 ldrbtvc r6, [r3], #-1397 - 8608: 0e770100 rpweqs f0, f7, f0 - 860c: 7fe91001 svcvc 0x00e91001 - 8610: 19780000 ldmdbne r8!, {}^ - 8614: 00000000 andeq r0, r0, r0 - 8618: 00160000 andseq r0, r6, r0 - 861c: 6d060000 stcvs 0, cr0, [r6] - 8620: 01006773 tsteq r0, r3, ror r7 - 8624: 73102f77 tstvc r0, #476 ; 0x1dc - 8628: 9800007e stmdals r0, {r1, r2, r3, r4, r5, r6} - 862c: 00000019 andeq r0, r0, r9, lsl r0 - 8630: 00000000 andeq r0, r0, r0 - 8634: 00000128 andeq r0, r0, r8, lsr #2 - 8638: 0a300003 beq c0864c - 863c: 02040000 andeq r0, r4, #0 ; 0x0 - 8640: 445c3a43 ldrbmi r3, [ip], #-2627 - 8644: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 8648: 73746e65 cmnvc r4, #1616 ; 0x650 - 864c: 646e6120 strbtvs r6, [lr], #-288 - 8650: 74655320 strbtvc r5, [r5], #-800 - 8654: 676e6974 undefined - 8658: 616d5c73 smcvs 54723 - 865c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 8660: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8664: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 8668: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 866c: 775c7374 undefined - 8670: 6f632d73 svcvs 0x00632d73 - 8674: 6f72746e svcvs 0x0072746e - 8678: 65575c6c ldrbvs r5, [r7, #-3180] - 867c: 65687461 strbvs r7, [r8, #-1121]! - 8680: 74532072 ldrbvc r2, [r3], #-114 - 8684: 6f697461 svcvs 0x00697461 - 8688: 6f43206e svcvs 0x0043206e - 868c: 6f72746e svcvs 0x0072746e - 8690: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 8694: 414d535c cmpmi sp, ip, asr r3 - 8698: 6f535c43 svcvs 0x00535c43 - 869c: 65637275 strbvs r7, [r3, #-629]! - 86a0: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 - 86a4: 73656c65 cmnvc r5, #25856 ; 0x6500 - 86a8: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 86ac: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 86b0: 632e746d teqvs lr, #1828716544 ; 0x6d000000 - 86b4: 52414900 subpl r4, r1, #0 ; 0x0 - 86b8: 534e4120 movtpl r4, #57632 ; 0xe120 - 86bc: 2f432049 svccs 0x00432049 - 86c0: 202b2b43 eorcs r2, fp, r3, asr #22 - 86c4: 706d6f43 rsbvc r6, sp, r3, asr #30 - 86c8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 86cc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 86d0: 322e3033 eorcc r3, lr, #51 ; 0x33 - 86d4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 86d8: 572f3539 undefined - 86dc: 4b203233 blmi 814fb0 - 86e0: 534b4349 movtpl r4, #45897 ; 0xb349 - 86e4: 54524154 ldrbpl r4, [r2], #-340 - 86e8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 86ec: 4d524120 ldfmie f4, [r2, #-128] - 86f0: 3a640100 bcc 1908af8 - 86f4: 3a800040 bcc fe0087fc - 86f8: 52080040 andpl r0, r8, #64 ; 0x40 - 86fc: 2a5d0000 bcs 1748704 - 8700: 93100000 tstls r0, #0 ; 0x0 - 8704: 0500007d streq r0, [r0, #-125] - 8708: 0000012a andeq r0, r0, sl, lsr #2 - 870c: 454d4c4d strbmi r4, [sp, #-3149] - 8710: 72656e45 rsbvc r6, r5, #1104 ; 0x450 - 8714: 65447967 strbvs r7, [r4, #-2407] - 8718: 74636574 strbtvc r6, [r3], #-1396 - 871c: 01880100 orreq r0, r8, r0, lsl #2 - 8720: e910010e ldmdb r0, {r1, r2, r3, r8} - 8724: ca00007f bgt 8928 - 8728: 64000019 strvs r0, [r0], #-25 - 872c: 8000403a andhi r4, r0, sl, lsr r0 - 8730: 0600403a undefined - 8734: 0067736d rsbeq r7, r7, sp, ror #6 - 8738: 2c018801 stccs 8, cr8, [r1], {1} - 873c: 007e7310 rsbseq r7, lr, r0, lsl r3 - 8740: 0019ea00 andseq lr, r9, r0, lsl #20 - 8744: 38750600 ldmdacc r5!, {r9, sl}^ - 8748: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} - 874c: 006c656e rsbeq r6, ip, lr, ror #10 - 8750: 3f018801 svccc 0x00018801 - 8754: 007fff10 rsbseq pc, pc, r0, lsl pc - 8758: 001a1200 andseq r1, sl, r0, lsl #4 - 875c: 00000000 andeq r0, r0, r0 - 8760: 000000d0 ldrdeq r0, [r0], -r0 - 8764: 0a300003 beq c08778 - 8768: 02040000 andeq r0, r4, #0 ; 0x0 - 876c: 445c3a43 ldrbmi r3, [ip], #-2627 - 8770: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 8774: 73746e65 cmnvc r4, #1616 ; 0x650 - 8778: 646e6120 strbtvs r6, [lr], #-288 - 877c: 74655320 strbtvc r5, [r5], #-800 - 8780: 676e6974 undefined - 8784: 616d5c73 smcvs 54723 - 8788: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 878c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8790: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 8794: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 8798: 775c7374 undefined - 879c: 6f632d73 svcvs 0x00632d73 - 87a0: 6f72746e svcvs 0x0072746e - 87a4: 65575c6c ldrbvs r5, [r7, #-3180] - 87a8: 65687461 strbvs r7, [r8, #-1121]! - 87ac: 74532072 ldrbvc r2, [r3], #-114 - 87b0: 6f697461 svcvs 0x00697461 - 87b4: 6f43206e svcvs 0x0043206e - 87b8: 6f72746e svcvs 0x0072746e - 87bc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 87c0: 414d535c cmpmi sp, ip, asr r3 - 87c4: 6f535c43 svcvs 0x00535c43 - 87c8: 65637275 strbvs r7, [r3, #-629]! - 87cc: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 - 87d0: 73656c65 cmnvc r5, #25856 ; 0x6500 - 87d4: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 87d8: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 87dc: 632e746d teqvs lr, #1828716544 ; 0x6d000000 - 87e0: 52414900 subpl r4, r1, #0 ; 0x0 - 87e4: 534e4120 movtpl r4, #57632 ; 0xe120 - 87e8: 2f432049 svccs 0x00432049 - 87ec: 202b2b43 eorcs r2, fp, r3, asr #22 - 87f0: 706d6f43 rsbvc r6, sp, r3, asr #30 - 87f4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 87f8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 87fc: 322e3033 eorcc r3, lr, #51 ; 0x33 - 8800: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 8804: 572f3539 undefined - 8808: 4b203233 blmi 8150dc - 880c: 534b4349 movtpl r4, #45897 ; 0xb349 - 8810: 54524154 ldrbpl r4, [r2], #-340 - 8814: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 8818: 4d524120 ldfmie f4, [r2, #-128] - 881c: 3a800100 bcc fe008c24 - 8820: 3a840040 bcc fe108928 - 8824: 52bc0040 adcspl r0, ip, #64 ; 0x40 - 8828: 2ada0000 bcs ff688830 - 882c: 93100000 tstls r0, #0 ; 0x0 - 8830: 0000007d andeq r0, r0, sp, ror r0 - 8834: 000000d0 ldrdeq r0, [r0], -r0 - 8838: 0a300003 beq c0884c - 883c: 02040000 andeq r0, r4, #0 ; 0x0 - 8840: 445c3a43 ldrbmi r3, [ip], #-2627 - 8844: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 8848: 73746e65 cmnvc r4, #1616 ; 0x650 - 884c: 646e6120 strbtvs r6, [lr], #-288 - 8850: 74655320 strbtvc r5, [r5], #-800 - 8854: 676e6974 undefined - 8858: 616d5c73 smcvs 54723 - 885c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 8860: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8864: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 8868: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 886c: 775c7374 undefined - 8870: 6f632d73 svcvs 0x00632d73 - 8874: 6f72746e svcvs 0x0072746e - 8878: 65575c6c ldrbvs r5, [r7, #-3180] - 887c: 65687461 strbvs r7, [r8, #-1121]! - 8880: 74532072 ldrbvc r2, [r3], #-114 - 8884: 6f697461 svcvs 0x00697461 - 8888: 6f43206e svcvs 0x0043206e - 888c: 6f72746e svcvs 0x0072746e - 8890: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 8894: 414d535c cmpmi sp, ip, asr r3 - 8898: 6f535c43 svcvs 0x00535c43 - 889c: 65637275 strbvs r7, [r3, #-629]! - 88a0: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 - 88a4: 73656c65 cmnvc r5, #25856 ; 0x6500 - 88a8: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 88ac: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 88b0: 632e746d teqvs lr, #1828716544 ; 0x6d000000 - 88b4: 52414900 subpl r4, r1, #0 ; 0x0 - 88b8: 534e4120 movtpl r4, #57632 ; 0xe120 - 88bc: 2f432049 svccs 0x00432049 - 88c0: 202b2b43 eorcs r2, fp, r3, asr #22 - 88c4: 706d6f43 rsbvc r6, sp, r3, asr #30 - 88c8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 88cc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 88d0: 322e3033 eorcc r3, lr, #51 ; 0x33 - 88d4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 88d8: 572f3539 undefined - 88dc: 4b203233 blmi 8151b0 - 88e0: 534b4349 movtpl r4, #45897 ; 0xb349 - 88e4: 54524154 ldrbpl r4, [r2], #-340 - 88e8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 88ec: 4d524120 ldfmie f4, [r2, #-128] - 88f0: 3a840100 bcc fe108cf8 - 88f4: 3a880040 bcc fe2089fc - 88f8: 52e40040 rscpl r0, r4, #64 ; 0x40 - 88fc: 2b7b0000 blcs 1ec8904 - 8900: 93100000 tstls r0, #0 ; 0x0 - 8904: 0000007d andeq r0, r0, sp, ror r0 - 8908: 00000118 andeq r0, r0, r8, lsl r1 - 890c: 0a300003 beq c08920 - 8910: 02040000 andeq r0, r4, #0 ; 0x0 - 8914: 445c3a43 ldrbmi r3, [ip], #-2627 - 8918: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 891c: 73746e65 cmnvc r4, #1616 ; 0x650 - 8920: 646e6120 strbtvs r6, [lr], #-288 - 8924: 74655320 strbtvc r5, [r5], #-800 - 8928: 676e6974 undefined - 892c: 616d5c73 smcvs 54723 - 8930: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 8934: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8938: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 893c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 8940: 775c7374 undefined - 8944: 6f632d73 svcvs 0x00632d73 - 8948: 6f72746e svcvs 0x0072746e - 894c: 65575c6c ldrbvs r5, [r7, #-3180] - 8950: 65687461 strbvs r7, [r8, #-1121]! - 8954: 74532072 ldrbvc r2, [r3], #-114 - 8958: 6f697461 svcvs 0x00697461 - 895c: 6f43206e svcvs 0x0043206e - 8960: 6f72746e svcvs 0x0072746e - 8964: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 8968: 414d535c cmpmi sp, ip, asr r3 - 896c: 6f535c43 svcvs 0x00535c43 - 8970: 65637275 strbvs r7, [r3, #-629]! - 8974: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 - 8978: 73656c65 cmnvc r5, #25856 ; 0x6500 - 897c: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 8980: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 8984: 632e746d teqvs lr, #1828716544 ; 0x6d000000 - 8988: 52414900 subpl r4, r1, #0 ; 0x0 - 898c: 534e4120 movtpl r4, #57632 ; 0xe120 - 8990: 2f432049 svccs 0x00432049 - 8994: 202b2b43 eorcs r2, fp, r3, asr #22 - 8998: 706d6f43 rsbvc r6, sp, r3, asr #30 - 899c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 89a0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 89a4: 322e3033 eorcc r3, lr, #51 ; 0x33 - 89a8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 89ac: 572f3539 undefined - 89b0: 4b203233 blmi 815284 - 89b4: 534b4349 movtpl r4, #45897 ; 0xb349 - 89b8: 54524154 ldrbpl r4, [r2], #-340 - 89bc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 89c0: 4d524120 ldfmie f4, [r2, #-128] - 89c4: 3a8e0100 bcc fe388dcc - 89c8: 3aa20040 bcc fe888ad0 - 89cc: 530c0040 movwpl r0, #49216 ; 0xc040 - 89d0: 2c950000 ldccs 0, cr0, [r5], {0} - 89d4: 93100000 tstls r0, #0 ; 0x0 - 89d8: 0500007d streq r0, [r0, #-125] - 89dc: 00000118 andeq r0, r0, r8, lsl r1 - 89e0: 454d4c4d strbmi r4, [sp, #-3149] - 89e4: 754f4150 strbvc r4, [pc, #-336] ; 889c - 89e8: 74757074 ldrbtvc r7, [r5], #-116 - 89ec: 756a6441 strbvc r6, [sl, #-1089]! - 89f0: 01007473 tsteq r0, r3, ror r4 - 89f4: 010e01b1 strheq r0, [lr, -r1] - 89f8: 007fe910 rsbseq lr, pc, r0, lsl r9 - 89fc: 001a3a00 andseq r3, sl, r0, lsl #20 - 8a00: 403a8e00 eorsmi r8, sl, r0, lsl #28 - 8a04: 403aa200 eorsmi sl, sl, r0, lsl #4 - 8a08: 38750600 ldmdacc r5!, {r9, sl}^ - 8a0c: 65776f50 ldrbvs r6, [r7, #-3920]! - 8a10: b1010072 tstlt r1, r2, ror r0 - 8a14: 29102a01 ldmdbcs r0, {r0, r9, fp, sp} - 8a18: 5a000080 bpl 8c20 - 8a1c: 0000001a andeq r0, r0, sl, lsl r0 - 8a20: 00000000 andeq r0, r0, r0 - 8a24: 000000e0 andeq r0, r0, r0, ror #1 - 8a28: 0b0c0003 bleq 308a3c - 8a2c: 01040000 tsteq r4, r0 - 8a30: 445c3a43 ldrbmi r3, [ip], #-2627 - 8a34: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 8a38: 73746e65 cmnvc r4, #1616 ; 0x650 - 8a3c: 646e6120 strbtvs r6, [lr], #-288 - 8a40: 74655320 strbtvc r5, [r5], #-800 - 8a44: 676e6974 undefined - 8a48: 616d5c73 smcvs 54723 - 8a4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 8a50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8a54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 8a58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 8a5c: 775c7374 undefined - 8a60: 6f632d73 svcvs 0x00632d73 - 8a64: 6f72746e svcvs 0x0072746e - 8a68: 65575c6c ldrbvs r5, [r7, #-3180] - 8a6c: 65687461 strbvs r7, [r8, #-1121]! - 8a70: 74532072 ldrbvc r2, [r3], #-114 - 8a74: 6f697461 svcvs 0x00697461 - 8a78: 6f43206e svcvs 0x0043206e - 8a7c: 6f72746e svcvs 0x0072746e - 8a80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 8a84: 414d535c cmpmi sp, ip, asr r3 - 8a88: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 8a8c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 8a90: 6f535c73 svcvs 0x00535c73 - 8a94: 65637275 strbvs r7, [r3, #-629]! - 8a98: 63616d5c cmnvs r1, #5888 ; 0x1700 - 8a9c: 00632e61 rsbeq r2, r3, r1, ror #28 - 8aa0: 20524149 subscs r4, r2, r9, asr #2 - 8aa4: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 8aa8: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 8aac: 43202b2b teqmi r0, #44032 ; 0xac00 - 8ab0: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 8ab4: 2072656c rsbscs r6, r2, ip, ror #10 - 8ab8: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 8abc: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} - 8ac0: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} - 8ac4: 33572f35 cmpcc r7, #212 ; 0xd4 - 8ac8: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ - 8acc: 54534b43 ldrbpl r4, [r3], #-2883 - 8ad0: 20545241 subscs r5, r4, r1, asr #4 - 8ad4: 20726f66 rsbscs r6, r2, r6, ror #30 - 8ad8: 004d5241 subeq r5, sp, r1, asr #4 - 8adc: 0053c001 subseq ip, r3, r1 - 8ae0: 00022800 andeq r2, r2, r0, lsl #16 - 8ae4: 6e750300 cdpvs 3, 7, cr0, cr5, cr0, {0} - 8ae8: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} - 8aec: 6c206465 cfstrsvs mvf6, [r0], #-404 - 8af0: 00676e6f rsbeq r6, r7, pc, ror #28 - 8af4: 75060704 strvc r0, [r6, #-1796] - 8af8: 33746e69 cmncc r4, #1680 ; 0x690 - 8afc: 00745f32 rsbseq r5, r4, r2, lsr pc - 8b00: 0101c115 tsteq r1, r5, lsl r1 - 8b04: 0000191e andeq r1, r0, lr, lsl r9 - 8b08: 000000fc strdeq r0, [r0], -ip - 8b0c: 0b0c0003 bleq 308b20 - 8b10: 02040000 andeq r0, r4, #0 ; 0x0 - 8b14: 445c3a43 ldrbmi r3, [ip], #-2627 - 8b18: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 8b1c: 73746e65 cmnvc r4, #1616 ; 0x650 - 8b20: 646e6120 strbtvs r6, [lr], #-288 - 8b24: 74655320 strbtvc r5, [r5], #-800 - 8b28: 676e6974 undefined - 8b2c: 616d5c73 smcvs 54723 - 8b30: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 8b34: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8b38: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 8b3c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 8b40: 775c7374 undefined - 8b44: 6f632d73 svcvs 0x00632d73 - 8b48: 6f72746e svcvs 0x0072746e - 8b4c: 65575c6c ldrbvs r5, [r7, #-3180] - 8b50: 65687461 strbvs r7, [r8, #-1121]! - 8b54: 74532072 ldrbvc r2, [r3], #-114 - 8b58: 6f697461 svcvs 0x00697461 - 8b5c: 6f43206e svcvs 0x0043206e - 8b60: 6f72746e svcvs 0x0072746e - 8b64: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 8b68: 414d535c cmpmi sp, ip, asr r3 - 8b6c: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 8b70: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 8b74: 6f535c73 svcvs 0x00535c73 - 8b78: 65637275 strbvs r7, [r3, #-629]! - 8b7c: 63616d5c cmnvs r1, #5888 ; 0x1700 - 8b80: 00632e61 rsbeq r2, r3, r1, ror #28 - 8b84: 20524149 subscs r4, r2, r9, asr #2 - 8b88: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 8b8c: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 8b90: 43202b2b teqmi r0, #44032 ; 0xac00 - 8b94: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 8b98: 2072656c rsbscs r6, r2, ip, ror #10 - 8b9c: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 8ba0: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} - 8ba4: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} - 8ba8: 33572f35 cmpcc r7, #212 ; 0xd4 - 8bac: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ - 8bb0: 54534b43 ldrbpl r4, [r3], #-2883 - 8bb4: 20545241 subscs r5, r4, r1, asr #4 - 8bb8: 20726f66 rsbscs r6, r2, r6, ror #30 - 8bbc: 004d5241 subeq r5, sp, r1, asr #4 - 8bc0: 403e7001 eorsmi r7, lr, r1 - 8bc4: 403e9800 eorsmi r9, lr, r0, lsl #16 - 8bc8: 00555000 subseq r5, r5, r0 - 8bcc: 002d1b00 eoreq r1, sp, r0, lsl #22 - 8bd0: 8a2f1000 bhi bccbd8 - 8bd4: ff040000 undefined instruction 0xff040000 - 8bd8: 52000000 andpl r0, r0, #0 ; 0x0 - 8bdc: 74657365 strbtvc r7, [r5], #-869 - 8be0: 6163614d cmnvs r3, sp, asr #2 - 8be4: 06360100 ldrteq r0, [r6], -r0, lsl #2 - 8be8: 001a8c01 andseq r8, sl, r1, lsl #24 - 8bec: 403e7000 eorsmi r7, lr, r0 - 8bf0: 403e9800 eorsmi r9, lr, r0, lsl #16 - 8bf4: 6d740500 cfldr64vs mvdx0, [r4] - 8bf8: 38010070 stmdacc r1, {r4, r5, r6} - 8bfc: 8af6100c bhi ffd8cc34 - 8c00: 1aa00000 bne fe808c08 - 8c04: 00000000 andeq r0, r0, r0 - 8c08: 00000748 andeq r0, r0, r8, asr #14 - 8c0c: 0b780003 bleq 1e08c20 - 8c10: 01040000 tsteq r4, r0 - 8c14: 445c3a43 ldrbmi r3, [ip], #-2627 - 8c18: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 8c1c: 73746e65 cmnvc r4, #1616 ; 0x650 - 8c20: 646e6120 strbtvs r6, [lr], #-288 - 8c24: 74655320 strbtvc r5, [r5], #-800 - 8c28: 676e6974 undefined - 8c2c: 616d5c73 smcvs 54723 - 8c30: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 8c34: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8c38: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 8c3c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 8c40: 775c7374 undefined - 8c44: 6f632d73 svcvs 0x00632d73 - 8c48: 6f72746e svcvs 0x0072746e - 8c4c: 65575c6c ldrbvs r5, [r7, #-3180] - 8c50: 65687461 strbvs r7, [r8, #-1121]! - 8c54: 74532072 ldrbvc r2, [r3], #-114 - 8c58: 6f697461 svcvs 0x00697461 - 8c5c: 6f43206e svcvs 0x0043206e - 8c60: 6f72746e svcvs 0x0072746e - 8c64: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 8c68: 7070415c rsbsvc r4, r0, ip, asr r1 - 8c6c: 6163696c cmnvs r3, ip, ror #18 - 8c70: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 8c74: 756f535c strbvc r5, [pc, #-860]! ; 8920 - 8c78: 5c656372 stclpl 3, cr6, [r5], #-456 - 8c7c: 74616577 strbtvc r6, [r1], #-1399 - 8c80: 5f726568 svcpl 0x00726568 - 8c84: 74617473 strbtvc r7, [r1], #-1139 - 8c88: 5f6e6f69 svcpl 0x006e6f69 - 8c8c: 746e6f63 strbtvc r6, [lr], #-3939 - 8c90: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 8c94: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 8c98: 52414900 subpl r4, r1, #0 ; 0x0 - 8c9c: 534e4120 movtpl r4, #57632 ; 0xe120 - 8ca0: 2f432049 svccs 0x00432049 - 8ca4: 202b2b43 eorcs r2, fp, r3, asr #22 - 8ca8: 706d6f43 rsbvc r6, sp, r3, asr #30 - 8cac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 8cb0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 8cb4: 322e3033 eorcc r3, lr, #51 ; 0x33 - 8cb8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 8cbc: 572f3539 undefined - 8cc0: 4b203233 blmi 815594 - 8cc4: 534b4349 movtpl r4, #45897 ; 0xb349 - 8cc8: 54524154 ldrbpl r4, [r2], #-340 - 8ccc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 8cd0: 4d524120 ldfmie f4, [r2, #-128] - 8cd4: 56040100 strpl r0, [r4], -r0, lsl #2 - 8cd8: 02380000 eorseq r0, r8, #0 ; 0x0 - 8cdc: 75020000 strvc r0, [r2] - 8ce0: 6769736e strbvs r7, [r9, -lr, ror #6]! - 8ce4: 2064656e rsbcs r6, r4, lr, ror #10 - 8ce8: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 - 8cec: 03080100 movweq r0, #33024 ; 0x8100 - 8cf0: 00071013 andeq r1, r7, r3, lsl r0 - 8cf4: 6f760200 svcvs 0x00760200 - 8cf8: 00006469 andeq r6, r0, r9, ror #8 - 8cfc: 5b130305 blpl 4c9918 - 8d00: 02000003 andeq r0, r0, #3 ; 0x3 - 8d04: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ - 8d08: 64656e67 strbtvs r6, [r5], #-3687 - 8d0c: 6f687320 svcvs 0x00687320 - 8d10: 02007472 andeq r7, r0, #1912602624 ; 0x72000000 - 8d14: bc130507 cfldr32lt mvfx0, [r3], {7} - 8d18: 02000003 andeq r0, r0, #3 ; 0x3 - 8d1c: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ - 8d20: 64656e67 strbtvs r6, [r5], #-3687 - 8d24: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} - 8d28: 07040067 streq r0, [r4, -r7, rrx] - 8d2c: 06a81307 strteq r1, [r8], r7, lsl #6 - 8d30: 13030000 movwne r0, #12288 ; 0x3000 - 8d34: 0000067b andeq r0, r0, fp, ror r6 - 8d38: 00016c0d andeq r6, r1, sp, lsl #24 - 8d3c: 670e0100 strvs r0, [lr, -r0, lsl #2] - 8d40: 6b637542 blvs 18e6250 - 8d44: 67655256 undefined - 8d48: 0000635f andeq r6, r0, pc, asr r3 - 8d4c: 5031670e eorspl r6, r1, lr, lsl #14 - 8d50: 65525635 ldrbvs r5, [r2, #-1589] - 8d54: 00635f67 rsbeq r5, r3, r7, ror #30 - 8d58: 31670e01 cmncc r7, r1, lsl #28 - 8d5c: 52563850 subspl r3, r6, #5242880 ; 0x500000 - 8d60: 635f6765 cmpvs pc, #26476544 ; 0x1940000 - 8d64: 670e0200 strvs r0, [lr, -r0, lsl #4] - 8d68: 5678614d ldrbtpl r6, [r8], -sp, asr #2 - 8d6c: 5f676552 svcpl 0x00676552 - 8d70: 00030063 andeq r0, r3, r3, rrx - 8d74: 0001a30f andeq sl, r1, pc, lsl #6 - 8d78: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! - 8d7c: 7079745f rsbsvc r7, r9, pc, asr r4 - 8d80: 61745f65 cmnvs r4, r5, ror #30 - 8d84: 0e010067 cdpeq 0, 0, cr0, cr1, cr7, {3} - 8d88: 00005854 andeq r5, r0, r4, asr r8 - 8d8c: 0058520e subseq r5, r8, lr, lsl #4 - 8d90: 44450e01 strbmi r0, [r5], #-3585 - 8d94: 540e0200 strpl r0, [lr], #-512 - 8d98: 0e03004f cdpeq 0, 0, cr0, cr3, cr15, {2} - 8d9c: 5f58414d svcpl 0x0058414d - 8da0: 5f47534d svcpl 0x0047534d - 8da4: 45505954 ldrbmi r5, [r0, #-2388] - 8da8: 0d000400 cfstrseq mvf0, [r0] - 8dac: 00000200 andeq r0, r0, r0, lsl #4 - 8db0: 4e670e01 cdpmi 14, 6, cr0, cr7, cr1, {0} - 8db4: 79546d76 ldmdbvc r4, {r1, r2, r4, r5, r6, r8, sl, fp, sp, lr}^ - 8db8: 4e5f6570 mrcmi 5, 2, r6, cr15, cr0, {3} - 8dbc: 6d764e6f ldclvs 14, cr4, [r6, #-444]! - 8dc0: 0000635f andeq r6, r0, pc, asr r3 - 8dc4: 764e670e strbvc r6, [lr], -lr, lsl #14 - 8dc8: 7079546d rsbsvc r5, r9, sp, ror #8 - 8dcc: 53535f65 cmppl r3, #404 ; 0x194 - 8dd0: 00635f54 rsbeq r5, r3, r4, asr pc - 8dd4: 4e670e01 cdpmi 14, 6, cr0, cr7, cr1, {0} - 8dd8: 79546d76 ldmdbvc r4, {r1, r2, r4, r5, r6, r8, sl, fp, sp, lr}^ - 8ddc: 535f6570 cmppl pc, #469762048 ; 0x1c000000 - 8de0: 00635f54 rsbeq r5, r3, r4, asr pc - 8de4: 4e670e02 cdpmi 14, 6, cr0, cr7, cr2, {0} - 8de8: 79546d76 ldmdbvc r4, {r1, r2, r4, r5, r6, r8, sl, fp, sp, lr}^ - 8dec: 415f6570 cmpmi pc, r0, ror r5 - 8df0: 635f4d54 cmpvs pc, #5376 ; 0x1500 - 8df4: 670e0300 strvs r0, [lr, -r0, lsl #6] - 8df8: 546d764e strbtpl r7, [sp], #-1614 - 8dfc: 5f657079 svcpl 0x00657079 - 8e00: 5f78614d svcpl 0x0078614d - 8e04: 00040063 andeq r0, r4, r3, rrx - 8e08: 0002b20f andeq fp, r2, pc, lsl #4 - 8e0c: 61657700 cmnvs r5, r0, lsl #14 - 8e10: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 8e14: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} - 8e18: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 8e1c: 5f72656c svcpl 0x0072656c - 8e20: 74617473 strbtvc r7, [r1], #-1139 - 8e24: 745f7365 ldrbvc r7, [pc], #869 ; 8e2c - 8e28: 01006761 tsteq r0, r1, ror #14 - 8e2c: 4c44490e mcrrmi 9, 0, r4, r4, cr14 - 8e30: 4f435f45 svcmi 0x00435f45 - 8e34: 4f52544e svcmi 0x0052544e - 8e38: 52454c4c subpl r4, r5, #19456 ; 0x4c00 - 8e3c: 0054535f subseq r5, r4, pc, asr r3 - 8e40: 4e490e00 cdpmi 14, 4, cr0, cr9, cr0, {0} - 8e44: 435f5449 cmpmi pc, #1224736768 ; 0x49000000 - 8e48: 52544e4f subspl r4, r4, #1264 ; 0x4f0 - 8e4c: 454c4c4f strbmi r4, [ip, #-3151] - 8e50: 54535f52 ldrbpl r5, [r3], #-3922 - 8e54: 570e0100 strpl r0, [lr, -r0, lsl #2] - 8e58: 49544941 ldmdbmi r4, {r0, r6, r8, fp, lr}^ - 8e5c: 435f474e cmpmi pc, #20447232 ; 0x1380000 - 8e60: 52544e4f subspl r4, r4, #1264 ; 0x4f0 - 8e64: 454c4c4f strbmi r4, [ip, #-3151] - 8e68: 54535f52 ldrbpl r5, [r3], #-3922 - 8e6c: 4c0e0200 sfmmi f0, 4, [lr], {0} - 8e70: 45545349 ldrbmi r5, [r4, #-841] - 8e74: 4f435f4e svcmi 0x00435f4e - 8e78: 4f52544e svcmi 0x0052544e - 8e7c: 52454c4c subpl r4, r5, #19456 ; 0x4c00 - 8e80: 0054535f subseq r5, r4, pc, asr r3 - 8e84: 52540e03 subspl r0, r4, #48 ; 0x30 - 8e88: 4d534e41 ldclmi 14, cr4, [r3, #-260] - 8e8c: 415f5449 cmpmi pc, r9, asr #8 - 8e90: 435f4b43 cmpmi pc, #68608 ; 0x10c00 - 8e94: 52544e4f subspl r4, r4, #1264 ; 0x4f0 - 8e98: 454c4c4f strbmi r4, [ip, #-3151] - 8e9c: 54535f52 ldrbpl r5, [r3], #-3922 - 8ea0: 460e0400 strmi r0, [lr], -r0, lsl #8 - 8ea4: 53494e49 movtpl r4, #40521 ; 0x9e49 - 8ea8: 4f435f48 svcmi 0x00435f48 - 8eac: 4f52544e svcmi 0x0052544e - 8eb0: 52454c4c subpl r4, r5, #19456 ; 0x4c00 - 8eb4: 0054535f subseq r5, r4, pc, asr r3 - 8eb8: 150f0005 strne r0, [pc, #-5] ; 8ebb - 8ebc: 73000003 movwvc r0, #3 ; 0x3 - 8ec0: 6f736e65 svcvs 0x00736e65 - 8ec4: 656d5f72 strbvs r5, [sp, #-3954]! - 8ec8: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 - 8ecc: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} - 8ed0: 61745f74 cmnvs r4, r4, ror pc - 8ed4: 0e010067 cdpeq 0, 0, cr0, cr1, cr7, {3} - 8ed8: 444e4957 strbmi r4, [lr], #-2391 - 8edc: 5249445f subpl r4, r9, #1593835520 ; 0x5f000000 - 8ee0: 570e0500 strpl r0, [lr, -r0, lsl #10] - 8ee4: 5f444e49 svcpl 0x00444e49 - 8ee8: 45455053 strbmi r5, [r5, #-83] - 8eec: 0e070044 cdpeq 0, 0, cr0, cr7, cr4, {2} - 8ef0: 53455250 movtpl r5, #21072 ; 0x5250 - 8ef4: 45525553 ldrbmi r5, [r2, #-1363] - 8ef8: 540e0900 strpl r0, [lr], #-2304 - 8efc: 45504d45 ldrbmi r4, [r0, #-3397] - 8f00: 55544152 ldrbpl r4, [r4, #-338] - 8f04: 0b004552 bleq 1a454 - 8f08: 4142560e cmpmi r2, lr, lsl #12 - 8f0c: 0e0d0054 mcreq 0, 0, r0, cr13, cr4, {2} - 8f10: 5f58414d svcpl 0x0058414d - 8f14: 534e4553 movtpl r4, #58707 ; 0xe553 - 8f18: 0e00524f cdpeq 2, 0, cr5, cr0, cr15, {2} - 8f1c: 035b0f00 cmpeq fp, #0 ; 0x0 - 8f20: 656d0000 strbvs r0, [sp]! - 8f24: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 - 8f28: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} - 8f2c: 79735f74 ldmdbvc r3!, {r2, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ - 8f30: 6d657473 cfstrdvs mvd7, [r5, #-460]! - 8f34: 6761745f undefined - 8f38: 490e0100 stmdbmi lr, {r8} - 8f3c: 5245544e subpl r5, r5, #1308622848 ; 0x4e000000 - 8f40: 4954414e ldmdbmi r4, {r1, r2, r3, r6, r8, lr}^ - 8f44: 4c414e4f mcrrmi 14, 4, r4, r1, cr15 - 8f48: 5359535f cmppl r9, #2080374785 ; 0x7c000001 - 8f4c: 004d4554 subeq r4, sp, r4, asr r5 - 8f50: 4e450e00 cdpmi 14, 4, cr0, cr5, cr0, {0} - 8f54: 53494c47 movtpl r4, #40007 ; 0x9c47 - 8f58: 59535f48 ldmdbpl r3, {r3, r6, r8, r9, sl, fp, ip, lr}^ - 8f5c: 4d455453 cfstrdmi mvd5, [r5, #-332] - 8f60: 10000100 andne r0, r0, r0, lsl #2 - 8f64: 00000361 andeq r0, r0, r1, ror #6 - 8f68: 036e1100 cmneq lr, #0 ; 0x0 - 8f6c: 7b130000 blvc 4c8f74 - 8f70: 12000006 andne r0, r0, #6 ; 0x6 - 8f74: 7b110000 blvc 448f7c - 8f78: 13000003 movwne r0, #3 ; 0x3 - 8f7c: 0000067b andeq r0, r0, fp, ror r6 - 8f80: 11000112 tstne r0, r2, lsl r1 - 8f84: 00000388 andeq r0, r0, r8, lsl #7 - 8f88: 00067b13 andeq r7, r6, r3, lsl fp - 8f8c: 00021200 andeq r1, r2, r0, lsl #4 - 8f90: 00039511 andeq r9, r3, r1, lsl r5 - 8f94: 067b1300 ldrbteq r1, [fp], -r0, lsl #6 - 8f98: 03120000 tsteq r2, #0 ; 0x0 - 8f9c: 03a21100 undefined instruction 0x03a21100 - 8fa0: 7b130000 blvc 4c8fa8 - 8fa4: 12000006 andne r0, r0, #6 ; 0x6 - 8fa8: af110007 svcge 0x00110007 - 8fac: 13000003 movwne r0, #3 ; 0x3 - 8fb0: 0000067b andeq r0, r0, fp, ror r6 - 8fb4: 11000812 tstne r0, r2, lsl r8 - 8fb8: 000003bc strheq r0, [r0], -ip - 8fbc: 00067b13 andeq r7, r6, r3, lsl fp - 8fc0: 000b1200 andeq r1, fp, r0, lsl #4 - 8fc4: 0003c711 andeq ip, r3, r1, lsl r7 - 8fc8: 01d61500 bicseq r1, r6, r0, lsl #10 - 8fcc: 11000f12 tstne r0, r2, lsl pc - 8fd0: 000003d4 ldrdeq r0, [r0], -r4 - 8fd4: 00067b13 andeq r7, r6, r3, lsl fp - 8fd8: 00101200 andseq r1, r0, r0, lsl #4 - 8fdc: 0003e111 andeq lr, r3, r1, lsl r1 - 8fe0: 067b1300 ldrbteq r1, [fp], -r0, lsl #6 - 8fe4: 12120000 andsne r0, r2, #0 ; 0x0 - 8fe8: 03ee1100 mvneq r1, #0 ; 0x0 - 8fec: 7b130000 blvc 4c8ff4 - 8ff0: 12000006 andne r0, r0, #6 ; 0x6 - 8ff4: 56130042 ldrpl r0, [r3], -r2, asr #32 - 8ff8: 04000004 streq r0, [r0], #-4 - 8ffc: 06a81314 ssateq r1, #9, r4, lsl #6 - 9000: 62010000 andvs r0, r1, #0 ; 0x0 - 9004: 456b6375 strbmi r6, [fp, #-885]! - 9008: 2302006e movwcs r0, #8302 ; 0x206e - 900c: 1f010400 svcne 0x00010400 - 9010: 06a81314 ssateq r1, #9, r4, lsl #6 - 9014: 62010000 andvs r0, r1, #0 ; 0x0 - 9018: 536b6375 cmnpl fp, #-738197503 ; 0xd4000001 - 901c: 52636e79 rsbpl r6, r3, #1936 ; 0x790 - 9020: 6e456365 cdpvs 3, 4, cr6, cr5, cr5, {3} - 9024: 00230200 eoreq r0, r3, r0, lsl #4 - 9028: 141e0104 ldrne r0, [lr], #-260 - 902c: 0006a813 andeq sl, r6, r3, lsl r8 - 9030: 75620100 strbvc r0, [r2, #-256]! - 9034: 79426b63 stmdbvc r2, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ - 9038: 73736170 cmnvc r3, #28 ; 0x1c - 903c: 02006e45 andeq r6, r0, #1104 ; 0x450 - 9040: 01040023 tsteq r4, r3, lsr #32 - 9044: a813141d ldmdage r3, {r0, r2, r3, r4, sl, ip} - 9048: 01000006 tsteq r0, r6 - 904c: 6b637562 blvs 18e65dc - 9050: 446b6c43 strbtmi r6, [fp], #-3139 - 9054: 02007669 andeq r7, r0, #110100480 ; 0x6900000 - 9058: 04040023 streq r0, [r4], #-35 - 905c: 8f130019 svchi 0x00130019 - 9060: 04000004 streq r0, [r0], #-4 - 9064: 06a81314 ssateq r1, #9, r4, lsl #6 - 9068: 76010000 strvc r0, [r1], -r0 - 906c: 31676552 cmncc r7, r2, asr r5 - 9070: 45563550 ldrbmi r3, [r6, #-1360] - 9074: 2302006e movwcs r0, #8302 ; 0x206e - 9078: 1e020400 cfcpysne mvf0, mvf2 - 907c: 06a81314 ssateq r1, #9, r4, lsl #6 - 9080: 76010000 strvc r0, [r1], -r0 - 9084: 31676552 cmncc r7, r2, asr r5 - 9088: 49563550 ldmdbmi r6, {r4, r6, r8, sl, ip, sp}^ - 908c: 006c6553 rsbeq r6, ip, r3, asr r5 - 9090: 04002302 streq r2, [r0], #-770 - 9094: 13001c02 movwne r1, #3074 ; 0xc02 - 9098: 000004b4 strheq r0, [r0], -r4 - 909c: d8131508 ldmdale r3, {r3, r8, sl, ip} - 90a0: 01000005 tsteq r0, r5 - 90a4: 67655276 undefined - 90a8: 00230200 eoreq r0, r3, r0, lsl #4 - 90ac: 05921315 ldreq r1, [r2, #789] - 90b0: 63010000 movwvs r0, #4096 ; 0x1000 - 90b4: 006c746e rsbeq r7, ip, lr, ror #8 - 90b8: 00042302 andeq r2, r4, r2, lsl #6 - 90bc: 0004e816 andeq lr, r4, r6, lsl r8 - 90c0: 616d7300 cmnvs sp, r0, lsl #6 - 90c4: 64705f63 ldrbtvs r5, [r0], #-3939 - 90c8: 61745f75 cmnvs r4, r5, ror pc - 90cc: 15030067 strne r0, [r3, #-103] - 90d0: 0106ee15 tsteq r6, r5, lsl lr - 90d4: 65736572 ldrbvs r6, [r3, #-1394]! - 90d8: 64657672 strbtvs r7, [r5], #-1650 - 90dc: 00230200 eoreq r0, r3, r0, lsl #4 - 90e0: 06e11515 usateq r1, #1, r5, lsl #10 - 90e4: 44387501 ldrtmi r7, [r8], #-1281 - 90e8: 00617461 rsbeq r7, r1, r1, ror #8 - 90ec: 00022302 andeq r2, r2, r2, lsl #6 - 90f0: 00052b16 andeq r2, r5, r6, lsl fp - 90f4: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! - 90f8: 6174735f cmnvs r4, pc, asr r3 - 90fc: 5f737574 svcpl 0x00737574 - 9100: 00676174 rsbeq r6, r7, r4, ror r1 - 9104: ea131401 b 4ce110 - 9108: 01000005 tsteq r0, r5 - 910c: 5f67736d svcpl 0x0067736d - 9110: 65707974 ldrbvs r7, [r0, #-2420]! - 9114: 00230200 eoreq r0, r3, r0, lsl #4 - 9118: 14050301 strne r0, [r5], #-769 - 911c: 00067b13 andeq r7, r6, r3, lsl fp - 9120: 736d0100 cmnvc sp, #0 ; 0x0 - 9124: 74735f67 ldrbtvc r5, [r3], #-3943 - 9128: 00657461 rsbeq r7, r5, r1, ror #8 - 912c: 01002302 tsteq r0, r2, lsl #6 - 9130: 16000005 strne r0, [r0], -r5 - 9134: 00000592 muleq r0, r2, r5 - 9138: 7373656d cmnvc r3, #457179136 ; 0x1b400000 - 913c: 5f656761 svcpl 0x00656761 - 9140: 00676174 rsbeq r6, r7, r4, ror r1 - 9144: 23131510 tstcs r3, #67108864 ; 0x4000000 - 9148: 01000007 tsteq r0, r7 - 914c: 74533875 ldrbvc r3, [r3], #-2165 - 9150: 73757461 cmnvc r5, #1627389952 ; 0x61000000 - 9154: 00230200 eoreq r0, r3, r0, lsl #4 - 9158: 01e71515 mvneq r1, r5, lsl r5 - 915c: 38757001 ldmdacc r5!, {r0, ip, sp, lr}^ - 9160: 66667542 strbtvs r7, [r6], -r2, asr #10 - 9164: 02007265 andeq r7, r0, #1342177286 ; 0x50000006 - 9168: 13150423 tstne r5, #587202560 ; 0x23000000 - 916c: 0000067b andeq r0, r0, fp, ror r6 - 9170: 42387501 eorsmi r7, r8, #4194304 ; 0x400000 - 9174: 69536675 ldmdbvs r3, {r0, r2, r4, r5, r6, r9, sl, sp, lr}^ - 9178: 0200657a andeq r6, r0, #511705088 ; 0x1e800000 - 917c: 13150823 tstne r5, #2293760 ; 0x230000 - 9180: 000006b8 strheq r0, [r0], -r8 - 9184: 44626301 strbtmi r6, [r2], #-769 - 9188: 49617461 stmdbmi r1!, {r0, r5, r6, sl, ip, sp, lr}^ - 918c: 6369646e cmnvs r9, #1845493760 ; 0x6e000000 - 9190: 6f697461 svcvs 0x00697461 - 9194: 2302006e movwcs r0, #8302 ; 0x206e - 9198: d817000c ldmdale r7, {r2, r3} - 919c: 04000005 streq r0, [r0], #-5 - 91a0: 06ca1315 undefined - 91a4: 62010000 andvs r0, r1, #0 ; 0x0 - 91a8: 436b6375 cmnmi fp, #-738197503 ; 0xd4000001 - 91ac: 006c746e rsbeq r7, ip, lr, ror #8 - 91b0: 15002302 strne r2, [r0, #-770] - 91b4: 0006e013 andeq lr, r6, r3, lsl r0 - 91b8: 52760100 rsbspl r0, r6, #0 ; 0x0 - 91bc: 50316765 eorspl r6, r1, r5, ror #14 - 91c0: 6e435635 mcrvs 6, 2, r5, cr3, cr5, {1} - 91c4: 02006c74 andeq r6, r0, #29696 ; 0x7400 - 91c8: 13150023 tstne r5, #35 ; 0x23 - 91cc: 0000068a andeq r0, r0, sl, lsl #13 - 91d0: 65527601 ldrbvs r7, [r2, #-1537] - 91d4: 38503167 ldmdacc r0, {r0, r1, r2, r5, r6, r8, ip, sp}^ - 91d8: 006e4556 rsbeq r4, lr, r6, asr r5 - 91dc: 00002302 andeq r2, r0, r2, lsl #6 - 91e0: 6d726318 ldclvs 3, cr6, [r2, #-96]! - 91e4: 67655256 undefined - 91e8: 1500745f strne r7, [r0, #-1119] - 91ec: d21002b0 andsle r0, r0, #11 ; 0xb - 91f0: 6d180201 lfmvs f0, 4, [r8, #-4] - 91f4: 745f6773 ldrbvc r6, [pc], #1907 ; 91fc - 91f8: 5f657079 svcpl 0x00657079 - 91fc: ec150074 ldc 0, cr0, [r5], {116} - 9200: 01d92402 bicseq r2, r9, r2, lsl #8 - 9204: 766e1803 strbtvc r1, [lr], -r3, lsl #16 - 9208: 7079546d rsbsvc r5, r9, sp, ror #8 - 920c: 00745f65 rsbseq r5, r4, r5, ror #30 - 9210: 1703a315 smladne r3, r5, r3, sl - 9214: 6e18032d cdpvs 3, 1, cr0, cr8, cr13, {1} - 9218: 72456d76 subvc r6, r5, #7552 ; 0x1d80 - 921c: 00745f72 rsbseq r5, r4, r2, ror pc - 9220: 00b76110 adcseq r6, r7, r0, lsl r1 - 9224: 033b1700 teqeq fp, #0 ; 0x0 - 9228: 61657718 cmnvs r5, r8, lsl r7 - 922c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 9230: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} - 9234: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 9238: 5f72656c svcpl 0x0072656c - 923c: 74617473 strbtvc r7, [r1], #-1139 - 9240: 745f7365 ldrbvc r7, [pc], #869 ; 9248 - 9244: 04801500 streq r1, [r0], #1280 - 9248: 18023903 stmdane r2, {r0, r1, r8, fp, ip, sp} - 924c: 736e6573 cmnvc lr, #482344960 ; 0x1cc00000 - 9250: 6d5f726f lfmvs f7, 2, [pc, #-444] - 9254: 75736165 ldrbvc r6, [r3, #-357]! - 9258: 656d6572 strbvs r6, [sp, #-1394]! - 925c: 745f746e ldrbvc r7, [pc], #1134 ; 9264 - 9260: 05b21500 ldreq r1, [r2, #1280]! - 9264: 18024303 stmdane r2, {r0, r1, r8, r9, lr} - 9268: 7361656d cmnvc r1, #457179136 ; 0x1b400000 - 926c: 6d657275 sfmvs f7, 2, [r5, #-468]! - 9270: 5f746e65 svcpl 0x00746e65 - 9274: 74737973 ldrbtvc r7, [r3], #-2419 - 9278: 745f6d65 ldrbvc r6, [pc], #3429 ; 9280 - 927c: 06951500 ldreq r1, [r5], r0, lsl #10 - 9280: 18024903 stmdane r2, {r0, r1, r8, fp, lr} - 9284: 746e6975 strbtvc r6, [lr], #-2421 - 9288: 00745f38 rsbseq r5, r4, r8, lsr pc - 928c: 0a01d615 beq 7eae8 - 9290: 6218191a andsvs r1, r8, #425984 ; 0x68000 - 9294: 5f6c6f6f svcpl 0x006c6f6f - 9298: fb150074 blx 549472 - 929c: 132c0a0c teqne ip, #49152 ; 0xc000 - 92a0: 6e697518 mcrvs 5, 3, r7, cr9, cr8, {0} - 92a4: 5f363174 svcpl 0x00363174 - 92a8: fb150074 blx 549482 - 92ac: 191c0a01 ldmdbne ip, {r0, r9, fp} - 92b0: 6e697518 mcrvs 5, 3, r7, cr9, cr8, {0} - 92b4: 5f323374 svcpl 0x00323374 - 92b8: 93150074 tstls r5, #116 ; 0x74 - 92bc: 191e0a02 ldmdbne lr, {r1, r9, fp} - 92c0: 6c616318 stclvs 3, cr6, [r1], #-96 - 92c4: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 - 92c8: 00745f6b rsbseq r5, r4, fp, ror #30 - 92cc: 2201f515 andcs pc, r1, #88080384 ; 0x5400000 - 92d0: 63180f16 tstvs r8, #88 ; 0x58 - 92d4: 75426d72 strbvc r6, [r2, #-3442] - 92d8: 6e436b63 fnmacdvs d22, d3, d19 - 92dc: 745f6c74 ldrbvc r6, [pc], #3188 ; 92e4 - 92e0: 07ee1500 strbeq r1, [lr, r0, lsl #10]! - 92e4: 0201e710 andeq lr, r1, #4194304 ; 0x400000 - 92e8: 6d726318 ldclvs 3, cr6, [r2, #-96]! - 92ec: 67655256 undefined - 92f0: 56355031 undefined - 92f4: 6c746e43 ldclvs 14, cr6, [r4], #-268 - 92f8: 1500745f strne r7, [r0, #-1119] - 92fc: ed1008d6 ldc 8, cr0, [r0, #-856] - 9300: 63180201 tstvs r8, #268435456 ; 0x10000000 - 9304: 52566d72 subspl r6, r6, #7296 ; 0x1c80 - 9308: 6e436765 cdpvs 7, 4, cr6, cr3, cr5, {3} - 930c: 745f6c74 ldrbvc r6, [pc], #3188 ; 9314 - 9310: 098f1500 stmibeq pc, {r8, sl, ip} - 9314: 0201f810 andeq pc, r1, #1048576 ; 0x100000 - 9318: 616d7318 cmnvs sp, r8, lsl r3 - 931c: 64705f63 ldrbtvs r5, [r0], #-3939 - 9320: 00745f75 rsbseq r5, r4, r5, ror pc - 9324: 2409b415 strcs fp, [r9], #-1045 - 9328: 18030196 stmdane r3, {r1, r2, r4, r7, r8} - 932c: 5f67736d svcpl 0x0067736d - 9330: 74617473 strbtvc r7, [r1], #-1139 - 9334: 745f7375 ldrbvc r7, [pc], #885 ; 933c - 9338: 09e81500 stmibeq r8!, {r8, sl, ip}^ - 933c: 0301df24 movweq sp, #7972 ; 0x1f24 - 9340: 73656d18 cmnvc r5, #1536 ; 0x600 - 9344: 65676173 strbvs r6, [r7, #-371]! - 9348: 1500745f strne r7, [r0, #-1119] - 934c: 83240aab teqhi r4, #700416 ; 0xab000 - 9350: 00000302 andeq r0, r0, r2, lsl #6 - 9354: 000003c8 andeq r0, r0, r8, asr #7 - 9358: 0b780003 bleq 1e0936c - 935c: 01040000 tsteq r4, r0 - 9360: 445c3a43 ldrbmi r3, [ip], #-2627 - 9364: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 9368: 73746e65 cmnvc r4, #1616 ; 0x650 - 936c: 646e6120 strbtvs r6, [lr], #-288 - 9370: 74655320 strbtvc r5, [r5], #-800 - 9374: 676e6974 undefined - 9378: 616d5c73 smcvs 54723 - 937c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 9380: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 9384: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 9388: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 938c: 775c7374 undefined - 9390: 6f632d73 svcvs 0x00632d73 - 9394: 6f72746e svcvs 0x0072746e - 9398: 65575c6c ldrbvs r5, [r7, #-3180] - 939c: 65687461 strbvs r7, [r8, #-1121]! - 93a0: 74532072 ldrbvc r2, [r3], #-114 - 93a4: 6f697461 svcvs 0x00697461 - 93a8: 6f43206e svcvs 0x0043206e - 93ac: 6f72746e svcvs 0x0072746e - 93b0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 93b4: 7070415c rsbsvc r4, r0, ip, asr r1 - 93b8: 6163696c cmnvs r3, ip, ror #18 - 93bc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 93c0: 756f535c strbvc r5, [pc, #-860]! ; 906c - 93c4: 5c656372 stclpl 3, cr6, [r5], #-456 - 93c8: 74616577 strbtvc r6, [r1], #-1399 - 93cc: 5f726568 svcpl 0x00726568 - 93d0: 74617473 strbtvc r7, [r1], #-1139 - 93d4: 5f6e6f69 svcpl 0x006e6f69 - 93d8: 746e6f63 strbtvc r6, [lr], #-3939 - 93dc: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 93e0: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 93e4: 52414900 subpl r4, r1, #0 ; 0x0 - 93e8: 534e4120 movtpl r4, #57632 ; 0xe120 - 93ec: 2f432049 svccs 0x00432049 - 93f0: 202b2b43 eorcs r2, fp, r3, asr #22 - 93f4: 706d6f43 rsbvc r6, sp, r3, asr #30 - 93f8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 93fc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 9400: 322e3033 eorcc r3, lr, #51 ; 0x33 - 9404: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 9408: 572f3539 undefined - 940c: 4b203233 blmi 815ce0 - 9410: 534b4349 movtpl r4, #45897 ; 0xb349 - 9414: 54524154 ldrbpl r4, [r2], #-340 - 9418: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 941c: 4d524120 ldfmie f4, [r2, #-128] - 9420: 56040100 strpl r0, [r4], -r0, lsl #2 - 9424: 02380000 eorseq r0, r8, #0 ; 0x0 - 9428: 41040000 tstmi r4, r0 - 942c: 6d5f4b43 vldrvs d20, [pc, #-268] ; 9328 - 9430: 10006773 andne r6, r0, r3, ror r7 - 9434: 00009340 andeq r9, r0, r0, asr #6 - 9438: 0b019c03 bleq 7044c - 943c: 44030501 strmi r0, [r3], #-1281 - 9440: 04004052 streq r4, [r0], #-82 - 9444: 546d764e strbtpl r7, [sp], #-1614 - 9448: 00657079 rsbeq r7, r5, r9, ror r0 - 944c: 00920510 addseq r0, r2, r0, lsl r5 - 9450: 01b20300 undefined instruction 0x01b20300 - 9454: 0305010b movweq r0, #20747 ; 0x510b - 9458: 0040525c subeq r5, r0, ip, asr r2 - 945c: 75436704 strbvc r6, [r3, #-1796] - 9460: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} - 9464: 6e655374 mcrvs 3, 3, r5, cr5, cr4, {3} - 9468: 00726f73 rsbseq r6, r2, r3, ror pc - 946c: 00924b10 addseq r4, r2, r0, lsl fp - 9470: 01a60300 undefined instruction 0x01a60300 - 9474: 03050116 movweq r0, #20758 ; 0x5116 - 9478: 00405258 subeq r5, r0, r8, asr r2 - 947c: 44626704 strbtmi r6, [r2], #-1796 - 9480: 49617461 stmdbmi r1!, {r0, r5, r6, sl, ip, sp, lr}^ - 9484: 6369646e cmnvs r9, #1845493760 ; 0x6e000000 - 9488: 6f697461 svcvs 0x00697461 - 948c: 616c466e cmnvs ip, lr, ror #12 - 9490: 92100067 andsls r0, r0, #103 ; 0x67 - 9494: 03000092 movweq r0, #146 ; 0x92 - 9498: 010801a0 smlatbeq r8, r0, r1, r0 - 949c: 52540305 subspl r0, r4, #335544320 ; 0x14000000 - 94a0: 67040040 strvs r0, [r4, -r0, asr #32] - 94a4: 43363175 teqmi r6, #1073741853 ; 0x4000001d - 94a8: 65727275 ldrbvs r7, [r2, #-629]! - 94ac: 7250746e subsvc r7, r0, #1845493760 ; 0x6e000000 - 94b0: 75737365 ldrbvc r7, [r3, #-869]! - 94b4: 6e456572 mcrvs 5, 2, r6, cr5, cr2, {3} - 94b8: a0100067 andsge r0, r0, r7, rrx - 94bc: 03000092 movweq r0, #146 ; 0x92 - 94c0: 010a01ab smlatbeq sl, fp, r1, r0 - 94c4: 526a0305 rsbpl r0, sl, #335544320 ; 0x14000000 - 94c8: 67040040 strvs r0, [r4, -r0, asr #32] - 94cc: 43363175 teqmi r6, #1073741853 ; 0x4000001d - 94d0: 65727275 ldrbvs r7, [r2, #-629]! - 94d4: 7250746e subsvc r7, r0, #1845493760 ; 0x6e000000 - 94d8: 75737365 ldrbvc r7, [r3, #-869]! - 94dc: 6e496572 mcrvs 5, 2, r6, cr9, cr2, {3} - 94e0: a0100074 andsge r0, r0, r4, ror r0 - 94e4: 03000092 movweq r0, #146 ; 0x92 - 94e8: 010a01a8 smlatbeq sl, r8, r1, r0 - 94ec: 52640305 rsbpl r0, r4, #335544320 ; 0x14000000 - 94f0: 67040040 strvs r0, [r4, -r0, asr #32] - 94f4: 43363175 teqmi r6, #1073741853 ; 0x4000001d - 94f8: 65727275 ldrbvs r7, [r2, #-629]! - 94fc: 6554746e ldrbvs r7, [r4, #-1134] - 9500: 7265706d rsbvc r7, r5, #109 ; 0x6d - 9504: 72757461 rsbsvc r7, r5, #1627389952 ; 0x61000000 - 9508: 676e4565 strbvs r4, [lr, -r5, ror #10]! - 950c: 92a01000 adcls r1, r0, #0 ; 0x0 - 9510: aa030000 bge c9518 - 9514: 05010a01 streq r0, [r1, #-2561] - 9518: 40526803 subsmi r6, r2, r3, lsl #16 - 951c: 75670400 strbvc r0, [r7, #-1024]! - 9520: 75433631 strbvc r3, [r3, #-1585] - 9524: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} - 9528: 6d655474 cfstrdvs mvd5, [r5, #-464]! - 952c: 61726570 cmnvs r2, r0, ror r5 - 9530: 65727574 ldrbvs r7, [r2, #-1396]! - 9534: 00746e49 rsbseq r6, r4, r9, asr #28 - 9538: 0092a010 addseq sl, r2, r0, lsl r0 - 953c: 01a70300 undefined instruction 0x01a70300 - 9540: 0305010a movweq r0, #20746 ; 0x510a - 9544: 00405262 subeq r5, r0, r2, ror #4 - 9548: 31756704 cmncc r5, r4, lsl #14 - 954c: 72754336 rsbsvc r4, r5, #-671088640 ; 0xd8000000 - 9550: 746e6572 strbtvc r6, [lr], #-1394 - 9554: 74614256 strbtvc r4, [r1], #-598 - 9558: 92a01000 adcls r1, r0, #0 ; 0x0 - 955c: ad030000 stcge 0, cr0, [r3] - 9560: 05010a01 streq r0, [r1, #-2561] - 9564: 40526e03 subsmi r6, r2, r3, lsl #28 - 9568: 75670400 strbvc r0, [r7, #-1024]! - 956c: 75433631 strbvc r3, [r3, #-1585] - 9570: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} - 9574: 6e695774 mcrvs 7, 3, r5, cr9, cr4, {3} - 9578: 72694464 rsbvc r4, r9, #1677721600 ; 0x64000000 - 957c: 92a01000 adcls r1, r0, #0 ; 0x0 - 9580: ae030000 cdpge 0, 0, cr0, cr3, cr0, {0} - 9584: 05010a01 streq r0, [r1, #-2561] - 9588: 40527003 subsmi r7, r2, r3 - 958c: 75670400 strbvc r0, [r7, #-1024]! - 9590: 75433631 strbvc r3, [r3, #-1585] - 9594: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} - 9598: 6e695774 mcrvs 7, 3, r5, cr9, cr4, {3} - 959c: 65705364 ldrbvs r5, [r0, #-868]! - 95a0: 6e456465 cdpvs 4, 4, cr6, cr5, cr5, {3} - 95a4: a0100067 andsge r0, r0, r7, rrx - 95a8: 03000092 movweq r0, #146 ; 0x92 - 95ac: 010a01ac smlatbeq sl, ip, r1, r0 - 95b0: 526c0305 rsbpl r0, ip, #335544320 ; 0x14000000 - 95b4: 67040040 strvs r0, [r4, -r0, asr #32] - 95b8: 43363175 teqmi r6, #1073741853 ; 0x4000001d - 95bc: 65727275 ldrbvs r7, [r2, #-629]! - 95c0: 6957746e ldmdbvs r7, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ - 95c4: 7053646e subsvc r6, r3, lr, ror #8 - 95c8: 49646565 stmdbmi r4!, {r0, r2, r5, r6, r8, sl, sp, lr}^ - 95cc: 1000746e andne r7, r0, lr, ror #8 - 95d0: 000092a0 andeq r9, r0, r0, lsr #5 - 95d4: 0a01a903 beq 739e8 - 95d8: 66030501 strvs r0, [r3], -r1, lsl #10 - 95dc: 04004052 streq r4, [r0], #-82 - 95e0: 43387567 teqmi r8, #432013312 ; 0x19c00000 - 95e4: 65727275 ldrbvs r7, [r2, #-629]! - 95e8: 6142746e cmpvs r2, lr, ror #8 - 95ec: 694c6b63 stmdbvs ip, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ - 95f0: 00746867 rsbseq r6, r4, r7, ror #16 - 95f4: 00928310 addseq r8, r2, r0, lsl r3 - 95f8: 01b00300 lslseq r0, r0, #6 - 95fc: 03050109 movweq r0, #20745 ; 0x5109 - 9600: 0040525a subeq r5, r0, sl, asr r2 - 9604: 38756704 ldmdacc r5!, {r2, r8, r9, sl, sp, lr}^ - 9608: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 - 960c: 43746e65 cmnmi r4, #1616 ; 0x650 - 9610: 6e6e6168 powvsez f6, f6, #0.0 - 9614: 10006c65 andne r6, r0, r5, ror #24 - 9618: 00009283 andeq r9, r0, r3, lsl #5 - 961c: 0901af03 stmdbeq r1, {r0, r1, r8, r9, sl, fp, sp, pc} - 9620: 59030501 stmdbpl r3, {r0, r8, sl} - 9624: 04004052 streq r4, [r0], #-82 - 9628: 43387567 teqmi r8, #432013312 ; 0x19c00000 - 962c: 65727275 ldrbvs r7, [r2, #-629]! - 9630: 654d746e strbvs r7, [sp, #-1134] - 9634: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 - 9638: 73795365 cmnvc r9, #-1811939327 ; 0x94000001 - 963c: 006d6574 rsbeq r6, sp, r4, ror r5 - 9640: 00926710 addseq r6, r2, r0, lsl r7 - 9644: 01a50300 undefined instruction 0x01a50300 - 9648: 03050116 movweq r0, #20758 ; 0x5116 - 964c: 00405257 subeq r5, r0, r7, asr r2 - 9650: 38756704 ldmdacc r5!, {r2, r8, r9, sl, sp, lr}^ - 9654: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 - 9658: 50746e65 rsbspl r6, r4, r5, ror #28 - 965c: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 - 9660: 6576654c ldrbvs r6, [r6, #-1356]! - 9664: 8310006c tsthi r0, #108 ; 0x6c - 9668: 03000092 movweq r0, #146 ; 0x92 - 966c: 010901b4 strheq r0, [r9, -r4] - 9670: 525e0305 subspl r0, lr, #335544320 ; 0x14000000 - 9674: 67040040 strvs r0, [r4, -r0, asr #32] - 9678: 43503875 cmpmi r0, #7667712 ; 0x750000 - 967c: 65746e49 ldrbvs r6, [r4, #-3657]! - 9680: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 9684: 61655265 cmnvs r5, r5, ror #4 - 9688: 10007964 andne r7, r0, r4, ror #18 - 968c: 00009283 andeq r9, r0, r3, lsl #5 - 9690: 0901b303 stmdbeq r1, {r0, r1, r8, r9, ip, sp, pc} - 9694: 5d030501 cfstr32pl mvfx0, [r3, #-4] - 9698: 04004052 streq r4, [r0], #-82 - 969c: 54387567 ldrtpl r7, [r8], #-1383 - 96a0: 53706d65 cmnpl r0, #6464 ; 0x1940 - 96a4: 006e6769 rsbeq r6, lr, r9, ror #14 - 96a8: 00928310 addseq r8, r2, r0, lsl r3 - 96ac: 01b10300 undefined instruction 0x01b10300 - 96b0: 03050109 movweq r0, #20745 ; 0x5109 - 96b4: 0040525b subeq r5, r0, fp, asr r2 - 96b8: 38756704 ldmdacc r5!, {r2, r8, r9, sl, sp, lr}^ - 96bc: 696c6156 stmdbvs ip!, {r1, r2, r4, r6, r8, sp, lr}^ - 96c0: 74654e64 strbtvc r4, [r5], #-3684 - 96c4: 6b636150 blvs 18e1c0c - 96c8: 10007465 andne r7, r0, r5, ror #8 - 96cc: 00009283 andeq r9, r0, r3, lsl #5 - 96d0: 0901a403 stmdbeq r1, {r0, r1, sl, sp, pc} - 96d4: 56030501 strpl r0, [r3], -r1, lsl #10 - 96d8: 04004052 streq r4, [r0], #-82 - 96dc: 57387567 ldrpl r7, [r8, -r7, ror #10]! - 96e0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 96e4: 76457265 strbvc r7, [r5], -r5, ror #4 - 96e8: 73746e65 cmnvc r4, #1616 ; 0x650 - 96ec: 92831000 addls r1, r3, #0 ; 0x0 - 96f0: a3030000 movwge r0, #12288 ; 0x3000 - 96f4: 05010901 streq r0, [r1, #-2305] - 96f8: 40525503 subsmi r5, r2, r3, lsl #10 - 96fc: 38750400 ldmdacc r5!, {sl}^ - 9700: 54524155 ldrbpl r4, [r2], #-341 - 9704: 75427852 strbvc r7, [r2, #-2130] - 9708: 72656666 rsbvc r6, r5, #106954752 ; 0x6600000 - 970c: 8fb71000 svchi 0x00b71000 - 9710: a1030000 tstge r3, r0 - 9714: 05010901 streq r0, [r1, #-2305] - 9718: 40527403 subsmi r7, r2, r3, lsl #8 - 971c: 00000000 andeq r0, r0, r0 - 9720: 00000104 andeq r0, r0, r4, lsl #2 - 9724: 0b780003 bleq 1e09738 - 9728: 01040000 tsteq r4, r0 - 972c: 445c3a43 ldrbmi r3, [ip], #-2627 - 9730: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 9734: 73746e65 cmnvc r4, #1616 ; 0x650 - 9738: 646e6120 strbtvs r6, [lr], #-288 - 973c: 74655320 strbtvc r5, [r5], #-800 - 9740: 676e6974 undefined - 9744: 616d5c73 smcvs 54723 - 9748: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 974c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 9750: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 9754: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 9758: 775c7374 undefined - 975c: 6f632d73 svcvs 0x00632d73 - 9760: 6f72746e svcvs 0x0072746e - 9764: 65575c6c ldrbvs r5, [r7, #-3180] - 9768: 65687461 strbvs r7, [r8, #-1121]! - 976c: 74532072 ldrbvc r2, [r3], #-114 - 9770: 6f697461 svcvs 0x00697461 - 9774: 6f43206e svcvs 0x0043206e - 9778: 6f72746e svcvs 0x0072746e - 977c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 9780: 7070415c rsbsvc r4, r0, ip, asr r1 - 9784: 6163696c cmnvs r3, ip, ror #18 - 9788: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 978c: 756f535c strbvc r5, [pc, #-860]! ; 9438 - 9790: 5c656372 stclpl 3, cr6, [r5], #-456 - 9794: 74616577 strbtvc r6, [r1], #-1399 - 9798: 5f726568 svcpl 0x00726568 - 979c: 74617473 strbtvc r7, [r1], #-1139 - 97a0: 5f6e6f69 svcpl 0x006e6f69 - 97a4: 746e6f63 strbtvc r6, [lr], #-3939 - 97a8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 97ac: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 97b0: 52414900 subpl r4, r1, #0 ; 0x0 - 97b4: 534e4120 movtpl r4, #57632 ; 0xe120 - 97b8: 2f432049 svccs 0x00432049 - 97bc: 202b2b43 eorcs r2, fp, r3, asr #22 - 97c0: 706d6f43 rsbvc r6, sp, r3, asr #30 - 97c4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 97c8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 97cc: 322e3033 eorcc r3, lr, #51 ; 0x33 - 97d0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 97d4: 572f3539 undefined - 97d8: 4b203233 blmi 8160ac - 97dc: 534b4349 movtpl r4, #45897 ; 0xb349 - 97e0: 54524154 ldrbpl r4, [r2], #-340 - 97e4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 97e8: 4d524120 ldfmie f4, [r2, #-128] - 97ec: 56040100 strpl r0, [r4], -r0, lsl #2 - 97f0: 02380000 eorseq r0, r8, #0 ; 0x0 - 97f4: 52040000 andpl r0, r4, #0 ; 0x0 - 97f8: 736d5f58 cmnvc sp, #352 ; 0x160 - 97fc: 40100067 andsmi r0, r0, r7, rrx - 9800: 03000093 movweq r0, #147 ; 0x93 - 9804: 010b019e strbeq r0, [fp, -lr] - 9808: 52800305 addpl r0, r0, #335544320 ; 0x14000000 - 980c: 54040040 strpl r0, [r4], #-64 - 9810: 736d5f58 cmnvc sp, #352 ; 0x160 - 9814: 40100067 andsmi r0, r0, r7, rrx - 9818: 03000093 movweq r0, #147 ; 0x93 - 981c: 010b019d strbeq r0, [fp, -sp] - 9820: 52900305 addspl r0, r0, #335544320 ; 0x14000000 - 9824: 00000040 andeq r0, r0, r0, asr #32 - 9828: 000000e8 andeq r0, r0, r8, ror #1 - 982c: 0b780003 bleq 1e09840 - 9830: 01040000 tsteq r4, r0 - 9834: 445c3a43 ldrbmi r3, [ip], #-2627 - 9838: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 983c: 73746e65 cmnvc r4, #1616 ; 0x650 - 9840: 646e6120 strbtvs r6, [lr], #-288 - 9844: 74655320 strbtvc r5, [r5], #-800 - 9848: 676e6974 undefined - 984c: 616d5c73 smcvs 54723 - 9850: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 9854: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 9858: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 985c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 9860: 775c7374 undefined - 9864: 6f632d73 svcvs 0x00632d73 - 9868: 6f72746e svcvs 0x0072746e - 986c: 65575c6c ldrbvs r5, [r7, #-3180] - 9870: 65687461 strbvs r7, [r8, #-1121]! - 9874: 74532072 ldrbvc r2, [r3], #-114 - 9878: 6f697461 svcvs 0x00697461 - 987c: 6f43206e svcvs 0x0043206e - 9880: 6f72746e svcvs 0x0072746e - 9884: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 9888: 7070415c rsbsvc r4, r0, ip, asr r1 - 988c: 6163696c cmnvs r3, ip, ror #18 - 9890: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 9894: 756f535c strbvc r5, [pc, #-860]! ; 9540 - 9898: 5c656372 stclpl 3, cr6, [r5], #-456 - 989c: 74616577 strbtvc r6, [r1], #-1399 - 98a0: 5f726568 svcpl 0x00726568 - 98a4: 74617473 strbtvc r7, [r1], #-1139 - 98a8: 5f6e6f69 svcpl 0x006e6f69 - 98ac: 746e6f63 strbtvc r6, [lr], #-3939 - 98b0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 98b4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 98b8: 52414900 subpl r4, r1, #0 ; 0x0 - 98bc: 534e4120 movtpl r4, #57632 ; 0xe120 - 98c0: 2f432049 svccs 0x00432049 - 98c4: 202b2b43 eorcs r2, fp, r3, asr #22 - 98c8: 706d6f43 rsbvc r6, sp, r3, asr #30 - 98cc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 98d0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 98d4: 322e3033 eorcc r3, lr, #51 ; 0x33 - 98d8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 98dc: 572f3539 undefined - 98e0: 4b203233 blmi 8161b4 - 98e4: 534b4349 movtpl r4, #45897 ; 0xb349 - 98e8: 54524154 ldrbpl r4, [r2], #-340 - 98ec: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 98f0: 4d524120 ldfmie f4, [r2, #-128] - 98f4: 56040100 strpl r0, [r4], -r0, lsl #2 - 98f8: 02380000 eorseq r0, r8, #0 ; 0x0 - 98fc: 68040000 stmdavs r4, {} - 9900: 10007865 andne r7, r0, r5, ror #16 - 9904: 00008d15 andeq r8, r0, r5, lsl sp - 9908: 0f01d203 svceq 0x0001d203 - 990c: 14030501 strne r0, [r3], #-1281 - 9910: 0000403f andeq r4, r0, pc, lsr r0 - 9914: 00000120 andeq r0, r0, r0, lsr #2 - 9918: 0b780003 bleq 1e0992c - 991c: 06040000 streq r0, [r4], -r0 - 9920: 445c3a43 ldrbmi r3, [ip], #-2627 - 9924: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 9928: 73746e65 cmnvc r4, #1616 ; 0x650 - 992c: 646e6120 strbtvs r6, [lr], #-288 - 9930: 74655320 strbtvc r5, [r5], #-800 - 9934: 676e6974 undefined - 9938: 616d5c73 smcvs 54723 - 993c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 9940: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 9944: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 9948: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 994c: 775c7374 undefined - 9950: 6f632d73 svcvs 0x00632d73 - 9954: 6f72746e svcvs 0x0072746e - 9958: 65575c6c ldrbvs r5, [r7, #-3180] - 995c: 65687461 strbvs r7, [r8, #-1121]! - 9960: 74532072 ldrbvc r2, [r3], #-114 - 9964: 6f697461 svcvs 0x00697461 - 9968: 6f43206e svcvs 0x0043206e - 996c: 6f72746e svcvs 0x0072746e - 9970: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 9974: 7070415c rsbsvc r4, r0, ip, asr r1 - 9978: 6163696c cmnvs r3, ip, ror #18 - 997c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 9980: 756f535c strbvc r5, [pc, #-860]! ; 962c - 9984: 5c656372 stclpl 3, cr6, [r5], #-456 - 9988: 74616577 strbtvc r6, [r1], #-1399 - 998c: 5f726568 svcpl 0x00726568 - 9990: 74617473 strbtvc r7, [r1], #-1139 - 9994: 5f6e6f69 svcpl 0x006e6f69 - 9998: 746e6f63 strbtvc r6, [lr], #-3939 - 999c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 99a0: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 99a4: 52414900 subpl r4, r1, #0 ; 0x0 - 99a8: 534e4120 movtpl r4, #57632 ; 0xe120 - 99ac: 2f432049 svccs 0x00432049 - 99b0: 202b2b43 eorcs r2, fp, r3, asr #22 - 99b4: 706d6f43 rsbvc r6, sp, r3, asr #30 - 99b8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 99bc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 99c0: 322e3033 eorcc r3, lr, #51 ; 0x33 - 99c4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 99c8: 572f3539 undefined - 99cc: 4b203233 blmi 8162a0 - 99d0: 534b4349 movtpl r4, #45897 ; 0xb349 - 99d4: 54524154 ldrbpl r4, [r2], #-340 - 99d8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 99dc: 4d524120 ldfmie f4, [r2, #-128] - 99e0: 09600100 stmdbeq r0!, {r8}^ - 99e4: 09840040 stmibeq r4, {r6} - 99e8: 5ed80040 cdppl 0, 13, cr0, cr8, cr0, {2} - 99ec: 2d7d0000 ldclcs 0, cr0, [sp] - 99f0: 13100000 tstne r0, #0 ; 0x0 - 99f4: 0800008c stmdaeq r0, {r2, r3, r7} - 99f8: 00000122 andeq r0, r0, r2, lsr #2 - 99fc: 5f747570 svcpl 0x00747570 - 9a00: 00786568 rsbseq r6, r8, r8, ror #10 - 9a04: 0601d501 streq sp, [r1], -r1, lsl #10 - 9a08: 001abd01 andseq fp, sl, r1, lsl #26 - 9a0c: 40096000 andmi r6, r9, r0 - 9a10: 40098400 andmi r8, r9, r0, lsl #8 - 9a14: 00780900 rsbseq r0, r8, r0, lsl #18 - 9a18: 1601d501 strne sp, [r1], -r1, lsl #10 - 9a1c: 00928310 addseq r8, r2, r0, lsl r3 - 9a20: 001add00 andseq sp, sl, r0, lsl #26 - 9a24: 00730a00 rsbseq r0, r3, r0, lsl #20 - 9a28: 0b01d701 bleq 7f634 - 9a2c: 008f8310 addeq r8, pc, r0, lsl r3 - 9a30: 001afa00 andseq pc, sl, r0, lsl #20 - 9a34: 00000000 andeq r0, r0, r0 - 9a38: 00000114 andeq r0, r0, r4, lsl r1 - 9a3c: 0b780003 bleq 1e09a50 - 9a40: 06040000 streq r0, [r4], -r0 - 9a44: 445c3a43 ldrbmi r3, [ip], #-2627 - 9a48: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 9a4c: 73746e65 cmnvc r4, #1616 ; 0x650 - 9a50: 646e6120 strbtvs r6, [lr], #-288 - 9a54: 74655320 strbtvc r5, [r5], #-800 - 9a58: 676e6974 undefined - 9a5c: 616d5c73 smcvs 54723 - 9a60: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 9a64: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 9a68: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 9a6c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 9a70: 775c7374 undefined - 9a74: 6f632d73 svcvs 0x00632d73 - 9a78: 6f72746e svcvs 0x0072746e - 9a7c: 65575c6c ldrbvs r5, [r7, #-3180] - 9a80: 65687461 strbvs r7, [r8, #-1121]! - 9a84: 74532072 ldrbvc r2, [r3], #-114 - 9a88: 6f697461 svcvs 0x00697461 - 9a8c: 6f43206e svcvs 0x0043206e - 9a90: 6f72746e svcvs 0x0072746e - 9a94: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 9a98: 7070415c rsbsvc r4, r0, ip, asr r1 - 9a9c: 6163696c cmnvs r3, ip, ror #18 - 9aa0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 9aa4: 756f535c strbvc r5, [pc, #-860]! ; 9750 - 9aa8: 5c656372 stclpl 3, cr6, [r5], #-456 - 9aac: 74616577 strbtvc r6, [r1], #-1399 - 9ab0: 5f726568 svcpl 0x00726568 - 9ab4: 74617473 strbtvc r7, [r1], #-1139 - 9ab8: 5f6e6f69 svcpl 0x006e6f69 - 9abc: 746e6f63 strbtvc r6, [lr], #-3939 - 9ac0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 9ac4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 9ac8: 52414900 subpl r4, r1, #0 ; 0x0 - 9acc: 534e4120 movtpl r4, #57632 ; 0xe120 - 9ad0: 2f432049 svccs 0x00432049 - 9ad4: 202b2b43 eorcs r2, fp, r3, asr #22 - 9ad8: 706d6f43 rsbvc r6, sp, r3, asr #30 - 9adc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 9ae0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 9ae4: 322e3033 eorcc r3, lr, #51 ; 0x33 - 9ae8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 9aec: 572f3539 undefined - 9af0: 4b203233 blmi 8163c4 - 9af4: 534b4349 movtpl r4, #45897 ; 0xb349 - 9af8: 54524154 ldrbpl r4, [r2], #-340 - 9afc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 9b00: 4d524120 ldfmie f4, [r2, #-128] - 9b04: 09840100 stmibeq r4, {r8} - 9b08: 098c0040 stmibeq ip, {r6} - 9b0c: 5f9c0040 svcpl 0x009c0040 - 9b10: 2df60000 ldclcs 0, cr0, [r6] - 9b14: 13100000 tstne r0, #0 ; 0x0 - 9b18: 0800008c stmdaeq r0, {r2, r3, r7} - 9b1c: 00000114 andeq r0, r0, r4, lsl r1 - 9b20: 5f747570 svcpl 0x00747570 - 9b24: 31786568 cmncc r8, r8, ror #10 - 9b28: e0010036 and r0, r1, r6, lsr r0 - 9b2c: 0e010601 cfmadd32eq mvax0, mvfx0, mvfx1, mvfx1 - 9b30: 8400001b strhi r0, [r0], #-27 - 9b34: 8c004009 stchi 0, cr4, [r0], {9} - 9b38: 09004009 stmdbeq r0, {r0, r3, lr} - 9b3c: e0010078 and r0, r1, r8, ror r0 - 9b40: a0101901 andsge r1, r0, r1, lsl #18 - 9b44: 2e000092 mcrcs 0, 0, r0, cr0, cr2, {4} - 9b48: 0000001b andeq r0, r0, fp, lsl r0 - 9b4c: 00000000 andeq r0, r0, r0 - 9b50: 00000114 andeq r0, r0, r4, lsl r1 - 9b54: 0b780003 bleq 1e09b68 - 9b58: 06040000 streq r0, [r4], -r0 - 9b5c: 445c3a43 ldrbmi r3, [ip], #-2627 - 9b60: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 9b64: 73746e65 cmnvc r4, #1616 ; 0x650 - 9b68: 646e6120 strbtvs r6, [lr], #-288 - 9b6c: 74655320 strbtvc r5, [r5], #-800 - 9b70: 676e6974 undefined - 9b74: 616d5c73 smcvs 54723 - 9b78: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 9b7c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 9b80: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 9b84: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 9b88: 775c7374 undefined - 9b8c: 6f632d73 svcvs 0x00632d73 - 9b90: 6f72746e svcvs 0x0072746e - 9b94: 65575c6c ldrbvs r5, [r7, #-3180] - 9b98: 65687461 strbvs r7, [r8, #-1121]! - 9b9c: 74532072 ldrbvc r2, [r3], #-114 - 9ba0: 6f697461 svcvs 0x00697461 - 9ba4: 6f43206e svcvs 0x0043206e - 9ba8: 6f72746e svcvs 0x0072746e - 9bac: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 9bb0: 7070415c rsbsvc r4, r0, ip, asr r1 - 9bb4: 6163696c cmnvs r3, ip, ror #18 - 9bb8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 9bbc: 756f535c strbvc r5, [pc, #-860]! ; 9868 - 9bc0: 5c656372 stclpl 3, cr6, [r5], #-456 - 9bc4: 74616577 strbtvc r6, [r1], #-1399 - 9bc8: 5f726568 svcpl 0x00726568 - 9bcc: 74617473 strbtvc r7, [r1], #-1139 - 9bd0: 5f6e6f69 svcpl 0x006e6f69 - 9bd4: 746e6f63 strbtvc r6, [lr], #-3939 - 9bd8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 9bdc: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 9be0: 52414900 subpl r4, r1, #0 ; 0x0 - 9be4: 534e4120 movtpl r4, #57632 ; 0xe120 - 9be8: 2f432049 svccs 0x00432049 - 9bec: 202b2b43 eorcs r2, fp, r3, asr #22 - 9bf0: 706d6f43 rsbvc r6, sp, r3, asr #30 - 9bf4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 9bf8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 9bfc: 322e3033 eorcc r3, lr, #51 ; 0x33 - 9c00: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 9c04: 572f3539 undefined - 9c08: 4b203233 blmi 8164dc - 9c0c: 534b4349 movtpl r4, #45897 ; 0xb349 - 9c10: 54524154 ldrbpl r4, [r2], #-340 - 9c14: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 9c18: 4d524120 ldfmie f4, [r2, #-128] - 9c1c: 098c0100 stmibeq ip, {r8} - 9c20: 09a80040 stmibeq r8!, {r6} - 9c24: 605c0040 subsvs r0, ip, r0, asr #32 - 9c28: 2e5a0000 cdpcs 0, 5, cr0, cr10, cr0, {0} - 9c2c: 13100000 tstne r0, #0 ; 0x0 - 9c30: 0800008c stmdaeq r0, {r2, r3, r7} - 9c34: 00000114 andeq r0, r0, r4, lsl r1 - 9c38: 5f747570 svcpl 0x00747570 - 9c3c: 33786568 cmncc r8, #436207616 ; 0x1a000000 - 9c40: e6010032 undefined - 9c44: 41010601 tstmi r1, r1, lsl #12 - 9c48: 8c00001b stchi 0, cr0, [r0], {27} - 9c4c: a8004009 stmdage r0, {r0, r3, lr} - 9c50: 09004009 stmdbeq r0, {r0, r3, lr} - 9c54: e6010078 undefined - 9c58: b0101901 andslt r1, r0, r1, lsl #18 - 9c5c: 61000092 swpvs r0, r2, [r0] - 9c60: 0000001b andeq r0, r0, fp, lsl r0 - 9c64: 00000000 andeq r0, r0, r0 - 9c68: 000000e0 andeq r0, r0, r0, ror #1 - 9c6c: 0b780003 bleq 1e09c80 - 9c70: 06040000 streq r0, [r4], -r0 - 9c74: 445c3a43 ldrbmi r3, [ip], #-2627 - 9c78: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 9c7c: 73746e65 cmnvc r4, #1616 ; 0x650 - 9c80: 646e6120 strbtvs r6, [lr], #-288 - 9c84: 74655320 strbtvc r5, [r5], #-800 - 9c88: 676e6974 undefined - 9c8c: 616d5c73 smcvs 54723 - 9c90: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 9c94: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 9c98: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 9c9c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 9ca0: 775c7374 undefined - 9ca4: 6f632d73 svcvs 0x00632d73 - 9ca8: 6f72746e svcvs 0x0072746e - 9cac: 65575c6c ldrbvs r5, [r7, #-3180] - 9cb0: 65687461 strbvs r7, [r8, #-1121]! - 9cb4: 74532072 ldrbvc r2, [r3], #-114 - 9cb8: 6f697461 svcvs 0x00697461 - 9cbc: 6f43206e svcvs 0x0043206e - 9cc0: 6f72746e svcvs 0x0072746e - 9cc4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 9cc8: 7070415c rsbsvc r4, r0, ip, asr r1 - 9ccc: 6163696c cmnvs r3, ip, ror #18 - 9cd0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 9cd4: 756f535c strbvc r5, [pc, #-860]! ; 9980 - 9cd8: 5c656372 stclpl 3, cr6, [r5], #-456 - 9cdc: 74616577 strbtvc r6, [r1], #-1399 - 9ce0: 5f726568 svcpl 0x00726568 - 9ce4: 74617473 strbtvc r7, [r1], #-1139 - 9ce8: 5f6e6f69 svcpl 0x006e6f69 - 9cec: 746e6f63 strbtvc r6, [lr], #-3939 - 9cf0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 9cf4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 9cf8: 52414900 subpl r4, r1, #0 ; 0x0 - 9cfc: 534e4120 movtpl r4, #57632 ; 0xe120 - 9d00: 2f432049 svccs 0x00432049 - 9d04: 202b2b43 eorcs r2, fp, r3, asr #22 - 9d08: 706d6f43 rsbvc r6, sp, r3, asr #30 - 9d0c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 9d10: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 9d14: 322e3033 eorcc r3, lr, #51 ; 0x33 - 9d18: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 9d1c: 572f3539 undefined - 9d20: 4b203233 blmi 8165f4 - 9d24: 534b4349 movtpl r4, #45897 ; 0xb349 - 9d28: 54524154 ldrbpl r4, [r2], #-340 - 9d2c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 9d30: 4d524120 ldfmie f4, [r2, #-128] - 9d34: 09a80100 stmibeq r8!, {r8} - 9d38: 09bc0040 ldmibeq ip!, {r6} - 9d3c: 611c0040 tstvs ip, r0, asr #32 - 9d40: 2ed70000 cdpcs 0, 13, cr0, cr7, cr0, {0} - 9d44: 13100000 tstne r0, #0 ; 0x0 - 9d48: 0000008c andeq r0, r0, ip, lsl #1 - 9d4c: 00000144 andeq r0, r0, r4, asr #2 - 9d50: 0b780003 bleq 1e09d64 - 9d54: 06040000 streq r0, [r4], -r0 - 9d58: 445c3a43 ldrbmi r3, [ip], #-2627 - 9d5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 9d60: 73746e65 cmnvc r4, #1616 ; 0x650 - 9d64: 646e6120 strbtvs r6, [lr], #-288 - 9d68: 74655320 strbtvc r5, [r5], #-800 - 9d6c: 676e6974 undefined - 9d70: 616d5c73 smcvs 54723 - 9d74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 9d78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 9d7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 9d80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 9d84: 775c7374 undefined - 9d88: 6f632d73 svcvs 0x00632d73 - 9d8c: 6f72746e svcvs 0x0072746e - 9d90: 65575c6c ldrbvs r5, [r7, #-3180] - 9d94: 65687461 strbvs r7, [r8, #-1121]! - 9d98: 74532072 ldrbvc r2, [r3], #-114 - 9d9c: 6f697461 svcvs 0x00697461 - 9da0: 6f43206e svcvs 0x0043206e - 9da4: 6f72746e svcvs 0x0072746e - 9da8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 9dac: 7070415c rsbsvc r4, r0, ip, asr r1 - 9db0: 6163696c cmnvs r3, ip, ror #18 - 9db4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 9db8: 756f535c strbvc r5, [pc, #-860]! ; 9a64 - 9dbc: 5c656372 stclpl 3, cr6, [r5], #-456 - 9dc0: 74616577 strbtvc r6, [r1], #-1399 - 9dc4: 5f726568 svcpl 0x00726568 - 9dc8: 74617473 strbtvc r7, [r1], #-1139 - 9dcc: 5f6e6f69 svcpl 0x006e6f69 - 9dd0: 746e6f63 strbtvc r6, [lr], #-3939 - 9dd4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 9dd8: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 9ddc: 52414900 subpl r4, r1, #0 ; 0x0 - 9de0: 534e4120 movtpl r4, #57632 ; 0xe120 - 9de4: 2f432049 svccs 0x00432049 - 9de8: 202b2b43 eorcs r2, fp, r3, asr #22 - 9dec: 706d6f43 rsbvc r6, sp, r3, asr #30 - 9df0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 9df4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 9df8: 322e3033 eorcc r3, lr, #51 ; 0x33 - 9dfc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 9e00: 572f3539 undefined - 9e04: 4b203233 blmi 8166d8 - 9e08: 534b4349 movtpl r4, #45897 ; 0xb349 - 9e0c: 54524154 ldrbpl r4, [r2], #-340 - 9e10: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 9e14: 4d524120 ldfmie f4, [r2, #-128] - 9e18: 09bc0100 ldmibeq ip!, {r8} - 9e1c: 0a280040 beq a09f24 - 9e20: 61e40040 mvnvs r0, r0, asr #32 - 9e24: 2f7d0000 svccs 0x007d0000 - 9e28: 13100000 tstne r0, #0 ; 0x0 - 9e2c: 0800008c stmdaeq r0, {r2, r3, r7} - 9e30: 00000147 andeq r0, r0, r7, asr #2 - 9e34: 706d7564 rsbvc r7, sp, r4, ror #10 - 9e38: 6765725f undefined - 9e3c: ef010073 svc 0x00010073 - 9e40: 74010701 strvc r0, [r1], #-1793 - 9e44: bc00001b stclt 0, cr0, [r0], {27} - 9e48: 28004009 stmdacs r0, {r0, r3, lr} - 9e4c: 0900400a stmdbeq r0, {r1, r3, lr} - 9e50: 65736162 ldrbvs r6, [r3, #-354]! - 9e54: 01ef0100 mvneq r0, r0, lsl #2 - 9e58: 92b0101a adcsls r1, r0, #26 ; 0x1a - 9e5c: 1ba00000 blne fe809e64 - 9e60: 6c090000 stcvs 0, cr0, [r9], {0} - 9e64: 01006e65 tsteq r0, r5, ror #28 - 9e68: 102901ef eorne r0, r9, pc, ror #3 - 9e6c: 000092b0 strheq r9, [r0], -r0 - 9e70: 00001bbd strheq r1, [r0], -sp - 9e74: 0100690a tsteq r0, sl, lsl #18 - 9e78: 101801f0 ldrshne r0, [r8], -r0 - 9e7c: 00008d2c andeq r8, r0, ip, lsr #26 - 9e80: 00001bdb ldrdeq r1, [r0], -fp - 9e84: 0001460b andeq r4, r1, fp, lsl #12 - 9e88: 4009d400 andmi sp, r9, r0, lsl #8 - 9e8c: 400a0200 andmi r0, sl, r0, lsl #4 - 9e90: 00000000 andeq r0, r0, r0 - 9e94: 0000013c andeq r0, r0, ip, lsr r1 - 9e98: 0b780003 bleq 1e09eac - 9e9c: 06040000 streq r0, [r4], -r0 - 9ea0: 445c3a43 ldrbmi r3, [ip], #-2627 - 9ea4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 9ea8: 73746e65 cmnvc r4, #1616 ; 0x650 - 9eac: 646e6120 strbtvs r6, [lr], #-288 - 9eb0: 74655320 strbtvc r5, [r5], #-800 - 9eb4: 676e6974 undefined - 9eb8: 616d5c73 smcvs 54723 - 9ebc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 9ec0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 9ec4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 9ec8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 9ecc: 775c7374 undefined - 9ed0: 6f632d73 svcvs 0x00632d73 - 9ed4: 6f72746e svcvs 0x0072746e - 9ed8: 65575c6c ldrbvs r5, [r7, #-3180] - 9edc: 65687461 strbvs r7, [r8, #-1121]! - 9ee0: 74532072 ldrbvc r2, [r3], #-114 - 9ee4: 6f697461 svcvs 0x00697461 - 9ee8: 6f43206e svcvs 0x0043206e - 9eec: 6f72746e svcvs 0x0072746e - 9ef0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 9ef4: 7070415c rsbsvc r4, r0, ip, asr r1 - 9ef8: 6163696c cmnvs r3, ip, ror #18 - 9efc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 9f00: 756f535c strbvc r5, [pc, #-860]! ; 9bac - 9f04: 5c656372 stclpl 3, cr6, [r5], #-456 - 9f08: 74616577 strbtvc r6, [r1], #-1399 - 9f0c: 5f726568 svcpl 0x00726568 - 9f10: 74617473 strbtvc r7, [r1], #-1139 - 9f14: 5f6e6f69 svcpl 0x006e6f69 - 9f18: 746e6f63 strbtvc r6, [lr], #-3939 - 9f1c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 9f20: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 9f24: 52414900 subpl r4, r1, #0 ; 0x0 - 9f28: 534e4120 movtpl r4, #57632 ; 0xe120 - 9f2c: 2f432049 svccs 0x00432049 - 9f30: 202b2b43 eorcs r2, fp, r3, asr #22 - 9f34: 706d6f43 rsbvc r6, sp, r3, asr #30 - 9f38: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 9f3c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 9f40: 322e3033 eorcc r3, lr, #51 ; 0x33 - 9f44: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 9f48: 572f3539 undefined - 9f4c: 4b203233 blmi 816820 - 9f50: 534b4349 movtpl r4, #45897 ; 0xb349 - 9f54: 54524154 ldrbpl r4, [r2], #-340 - 9f58: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 9f5c: 4d524120 ldfmie f4, [r2, #-128] - 9f60: 0a280100 beq a0a368 - 9f64: 0a540040 beq 150a06c - 9f68: 62c40040 sbcvs r0, r4, #64 ; 0x40 - 9f6c: 30530000 subscc r0, r3, r0 - 9f70: 13100000 tstne r0, #0 ; 0x0 - 9f74: 0800008c stmdaeq r0, {r2, r3, r7} - 9f78: 0000013f andeq r0, r0, pc, lsr r1 - 9f7c: 6e69614d powvsem f6, f1, #5.0 - 9f80: 028b0100 addeq r0, fp, #0 ; 0x0 - 9f84: 1bf90106 blne ffe4a3a4 - 9f88: 0a280000 beq a09f90 - 9f8c: 0a540040 beq 150a094 - 9f90: 640a0040 strvs r0, [sl], #-64 - 9f94: 54617461 strbtpl r7, [r1], #-1121 - 9f98: 8e010058 mcrhi 0, 0, r0, cr1, cr8, {2} - 9f9c: dc100b02 ldcle 11, cr0, [r0], {2} - 9fa0: 2600008f strcs r0, [r0], -pc, lsl #1 - 9fa4: 0a00001c beq a01c - 9fa8: 61746164 cmnvs r4, r4, ror #2 - 9fac: 01005852 tsteq r0, r2, asr r8 - 9fb0: 100b028f andne r0, fp, pc, lsl #5 - 9fb4: 00008fe9 andeq r8, r0, r9, ror #31 - 9fb8: 00001c3a andeq r1, r0, sl, lsr ip - 9fbc: 7461640a strbtvc r6, [r1], #-1034 - 9fc0: 4b434161 blmi 10da54c - 9fc4: 02900100 addseq r0, r0, #0 ; 0x0 - 9fc8: 8f9d100b svchi 0x009d100b - 9fcc: 1c4f0000 marne acc0, r0, pc - 9fd0: 00000000 andeq r0, r0, r0 - 9fd4: 00000110 andeq r0, r0, r0, lsl r1 - 9fd8: 0b780003 bleq 1e09fec - 9fdc: 06040000 streq r0, [r4], -r0 - 9fe0: 445c3a43 ldrbmi r3, [ip], #-2627 - 9fe4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 9fe8: 73746e65 cmnvc r4, #1616 ; 0x650 - 9fec: 646e6120 strbtvs r6, [lr], #-288 - 9ff0: 74655320 strbtvc r5, [r5], #-800 - 9ff4: 676e6974 undefined - 9ff8: 616d5c73 smcvs 54723 - 9ffc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a000: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a004: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a008: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a00c: 775c7374 undefined - a010: 6f632d73 svcvs 0x00632d73 - a014: 6f72746e svcvs 0x0072746e - a018: 65575c6c ldrbvs r5, [r7, #-3180] - a01c: 65687461 strbvs r7, [r8, #-1121]! - a020: 74532072 ldrbvc r2, [r3], #-114 - a024: 6f697461 svcvs 0x00697461 - a028: 6f43206e svcvs 0x0043206e - a02c: 6f72746e svcvs 0x0072746e - a030: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - a034: 7070415c rsbsvc r4, r0, ip, asr r1 - a038: 6163696c cmnvs r3, ip, ror #18 - a03c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - a040: 756f535c strbvc r5, [pc, #-860]! ; 9cec - a044: 5c656372 stclpl 3, cr6, [r5], #-456 - a048: 74616577 strbtvc r6, [r1], #-1399 - a04c: 5f726568 svcpl 0x00726568 - a050: 74617473 strbtvc r7, [r1], #-1139 - a054: 5f6e6f69 svcpl 0x006e6f69 - a058: 746e6f63 strbtvc r6, [lr], #-3939 - a05c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - a060: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - a064: 52414900 subpl r4, r1, #0 ; 0x0 - a068: 534e4120 movtpl r4, #57632 ; 0xe120 - a06c: 2f432049 svccs 0x00432049 - a070: 202b2b43 eorcs r2, fp, r3, asr #22 - a074: 706d6f43 rsbvc r6, sp, r3, asr #30 - a078: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - a07c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - a080: 322e3033 eorcc r3, lr, #51 ; 0x33 - a084: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a088: 572f3539 undefined - a08c: 4b203233 blmi 816960 - a090: 534b4349 movtpl r4, #45897 ; 0xb349 - a094: 54524154 ldrbpl r4, [r2], #-340 - a098: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - a09c: 4d524120 ldfmie f4, [r2, #-128] - a0a0: 0a580100 beq 160a4a8 - a0a4: 0c4c0040 mcrreq 0, 4, r0, ip, cr0 - a0a8: 63900040 orrsvs r0, r0, #64 ; 0x40 - a0ac: 30d60000 sbcscc r0, r6, r0 - a0b0: 13100000 tstne r0, #0 ; 0x0 - a0b4: 0800008c stmdaeq r0, {r2, r3, r7} - a0b8: 00000113 andeq r0, r0, r3, lsl r1 - a0bc: 74616577 strbtvc r6, [r1], #-1399 - a0c0: 5f726568 svcpl 0x00726568 - a0c4: 74617473 strbtvc r7, [r1], #-1139 - a0c8: 5f6e6f69 svcpl 0x006e6f69 - a0cc: 5f707061 svcpl 0x00707061 - a0d0: 74696e69 strbtvc r6, [r9], #-3689 - a0d4: 02ab0100 adceq r0, fp, #0 ; 0x0 - a0d8: 1c640106 stfnee f0, [r4], #-24 - a0dc: 0a580000 beq 160a0e4 - a0e0: 0c4c0040 mcrreq 0, 4, r0, ip, cr0 - a0e4: 00000040 andeq r0, r0, r0, asr #32 - a0e8: 00000110 andeq r0, r0, r0, lsl r1 - a0ec: 0b780003 bleq 1e0a100 - a0f0: 06040000 streq r0, [r4], -r0 - a0f4: 445c3a43 ldrbmi r3, [ip], #-2627 - a0f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - a0fc: 73746e65 cmnvc r4, #1616 ; 0x650 - a100: 646e6120 strbtvs r6, [lr], #-288 - a104: 74655320 strbtvc r5, [r5], #-800 - a108: 676e6974 undefined - a10c: 616d5c73 smcvs 54723 - a110: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a114: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a118: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a11c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a120: 775c7374 undefined - a124: 6f632d73 svcvs 0x00632d73 - a128: 6f72746e svcvs 0x0072746e - a12c: 65575c6c ldrbvs r5, [r7, #-3180] - a130: 65687461 strbvs r7, [r8, #-1121]! - a134: 74532072 ldrbvc r2, [r3], #-114 - a138: 6f697461 svcvs 0x00697461 - a13c: 6f43206e svcvs 0x0043206e - a140: 6f72746e svcvs 0x0072746e - a144: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - a148: 7070415c rsbsvc r4, r0, ip, asr r1 - a14c: 6163696c cmnvs r3, ip, ror #18 - a150: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - a154: 756f535c strbvc r5, [pc, #-860]! ; 9e00 - a158: 5c656372 stclpl 3, cr6, [r5], #-456 - a15c: 74616577 strbtvc r6, [r1], #-1399 - a160: 5f726568 svcpl 0x00726568 - a164: 74617473 strbtvc r7, [r1], #-1139 - a168: 5f6e6f69 svcpl 0x006e6f69 - a16c: 746e6f63 strbtvc r6, [lr], #-3939 - a170: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - a174: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - a178: 52414900 subpl r4, r1, #0 ; 0x0 - a17c: 534e4120 movtpl r4, #57632 ; 0xe120 - a180: 2f432049 svccs 0x00432049 - a184: 202b2b43 eorcs r2, fp, r3, asr #22 - a188: 706d6f43 rsbvc r6, sp, r3, asr #30 - a18c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - a190: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - a194: 322e3033 eorcc r3, lr, #51 ; 0x33 - a198: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a19c: 572f3539 undefined - a1a0: 4b203233 blmi 816a74 - a1a4: 534b4349 movtpl r4, #45897 ; 0xb349 - a1a8: 54524154 ldrbpl r4, [r2], #-340 - a1ac: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - a1b0: 4d524120 ldfmie f4, [r2, #-128] - a1b4: 0c500100 ldfeqe f0, [r0], {0} - a1b8: 0c780040 ldcleq 0, cr0, [r8], #-256 - a1bc: 64ac0040 strtvs r0, [ip], #64 - a1c0: 344a0000 strbcc r0, [sl] - a1c4: 13100000 tstne r0, #0 ; 0x0 - a1c8: 0800008c stmdaeq r0, {r2, r3, r7} - a1cc: 00000110 andeq r0, r0, r0, lsl r1 - a1d0: 74616577 strbtvc r6, [r1], #-1399 - a1d4: 5f726568 svcpl 0x00726568 - a1d8: 74617473 strbtvc r7, [r1], #-1139 - a1dc: 5f6e6f69 svcpl 0x006e6f69 - a1e0: 635f7872 cmpvs pc, #7471104 ; 0x720000 - a1e4: 96010062 strls r0, [r1], -r2, rrx - a1e8: 90010603 andls r0, r1, r3, lsl #12 - a1ec: 5000001c andpl r0, r0, ip, lsl r0 - a1f0: 7800400c stmdavc r0, {r2, r3, lr} - a1f4: 0000400c andeq r4, r0, ip - a1f8: 00000000 andeq r0, r0, r0 - a1fc: 000001d4 ldrdeq r0, [r0], -r4 - a200: 0b780003 bleq 1e0a214 - a204: 06040000 streq r0, [r4], -r0 - a208: 445c3a43 ldrbmi r3, [ip], #-2627 - a20c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - a210: 73746e65 cmnvc r4, #1616 ; 0x650 - a214: 646e6120 strbtvs r6, [lr], #-288 - a218: 74655320 strbtvc r5, [r5], #-800 - a21c: 676e6974 undefined - a220: 616d5c73 smcvs 54723 - a224: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a228: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a22c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a230: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a234: 775c7374 undefined - a238: 6f632d73 svcvs 0x00632d73 - a23c: 6f72746e svcvs 0x0072746e - a240: 65575c6c ldrbvs r5, [r7, #-3180] - a244: 65687461 strbvs r7, [r8, #-1121]! - a248: 74532072 ldrbvc r2, [r3], #-114 - a24c: 6f697461 svcvs 0x00697461 - a250: 6f43206e svcvs 0x0043206e - a254: 6f72746e svcvs 0x0072746e - a258: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - a25c: 7070415c rsbsvc r4, r0, ip, asr r1 - a260: 6163696c cmnvs r3, ip, ror #18 - a264: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - a268: 756f535c strbvc r5, [pc, #-860]! ; 9f14 - a26c: 5c656372 stclpl 3, cr6, [r5], #-456 - a270: 74616577 strbtvc r6, [r1], #-1399 - a274: 5f726568 svcpl 0x00726568 - a278: 74617473 strbtvc r7, [r1], #-1139 - a27c: 5f6e6f69 svcpl 0x006e6f69 - a280: 746e6f63 strbtvc r6, [lr], #-3939 - a284: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - a288: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - a28c: 52414900 subpl r4, r1, #0 ; 0x0 - a290: 534e4120 movtpl r4, #57632 ; 0xe120 - a294: 2f432049 svccs 0x00432049 - a298: 202b2b43 eorcs r2, fp, r3, asr #22 - a29c: 706d6f43 rsbvc r6, sp, r3, asr #30 - a2a0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - a2a4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - a2a8: 322e3033 eorcc r3, lr, #51 ; 0x33 - a2ac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a2b0: 572f3539 undefined - a2b4: 4b203233 blmi 816b88 - a2b8: 534b4349 movtpl r4, #45897 ; 0xb349 - a2bc: 54524154 ldrbpl r4, [r2], #-340 - a2c0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - a2c4: 4d524120 ldfmie f4, [r2, #-128] - a2c8: 0c780100 ldfeqe f0, [r8] - a2cc: 0e240040 cdpeq 0, 2, cr0, cr4, cr0, {2} - a2d0: 65740040 ldrbvs r0, [r4, #-64]! - a2d4: 34ab0000 strtcc r0, [fp] - a2d8: 13100000 tstne r0, #0 ; 0x0 - a2dc: 0800008c stmdaeq r0, {r2, r3, r7} - a2e0: 000001d6 ldrdeq r0, [r0], -r6 - a2e4: 74616577 strbtvc r6, [r1], #-1399 - a2e8: 5f726568 svcpl 0x00726568 - a2ec: 746e6f63 strbtvc r6, [lr], #-3939 - a2f0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - a2f4: 705f7265 subsvc r7, pc, r5, ror #4 - a2f8: 65636f72 strbvs r6, [r3, #-3954]! - a2fc: 01007373 tsteq r0, r3, ror r3 - a300: 010603a8 smlatbeq r6, r8, r3, r0 - a304: 00001ca4 andeq r1, r0, r4, lsr #25 - a308: 00400c78 subeq r0, r0, r8, ror ip - a30c: 00400e24 subeq r0, r0, r4, lsr #28 - a310: 41387504 teqmi r8, r4, lsl #10 - a314: 74537070 ldrbvc r7, [r3], #-112 - a318: 00657461 rsbeq r7, r5, r1, ror #8 - a31c: 00922810 addseq r2, r2, r0, lsl r8 - a320: 03aa0100 undefined instruction 0x03aa0100 - a324: 03050026 movweq r0, #20518 ; 0x5026 - a328: 0040525f subeq r5, r0, pc, asr r2 - a32c: 5438750a ldrtpl r7, [r8], #-1290 - a330: 44706d65 ldrbtmi r6, [r0], #-3429 - a334: 00617461 rsbeq r7, r1, r1, ror #8 - a338: 0b03ab01 bleq f4f44 - a33c: 008fb710 addeq fp, pc, r0, lsl r7 - a340: 001d0000 andseq r0, sp, r0 - a344: 01d50b00 bicseq r0, r5, r0, lsl #22 - a348: 0c900000 ldceq 0, cr0, [r0], {0} - a34c: 0e120040 cdpeq 0, 1, cr0, cr2, cr0, {2} - a350: 720b0040 andvc r0, fp, #64 ; 0x40 - a354: 98000001 stmdals r0, {r0} - a358: ba00400c blt 1a390 - a35c: 0b00400c bleq 1a394 - a360: 00000171 andeq r0, r0, r1, ror r1 - a364: 00400ca0 subeq r0, r0, r0, lsr #25 - a368: 00400cba strheq r0, [r0], #-202 - a36c: 800b0000 andhi r0, fp, r0 - a370: e6000001 str r0, [r0], -r1 - a374: 0c00400c stceq 0, cr4, [r0], {12} - a378: 0000400d andeq r4, r0, sp - a37c: 00018e0b andeq r8, r1, fp, lsl #28 - a380: 400d1400 andmi r1, sp, r0, lsl #8 - a384: 400d3200 andmi r3, sp, r0, lsl #4 - a388: 9c0b0000 stcls 0, cr0, [fp], {0} - a38c: 38000001 stmdacc r0, {r0} - a390: 5400400d strpl r4, [r0], #-13 - a394: 0000400d andeq r4, r0, sp - a398: 0001d40b andeq sp, r1, fp, lsl #8 - a39c: 400d6800 andmi r6, sp, r0, lsl #16 - a3a0: 400e1200 andmi r1, lr, r0, lsl #4 - a3a4: 01b70b00 undefined instruction 0x01b70b00 - a3a8: 0da40000 stceq 0, cr0, [r4] - a3ac: 0dca0040 stcleq 0, cr0, [sl, #256] - a3b0: 0b000040 bleq a4b8 - a3b4: 000001c5 andeq r0, r0, r5, asr #3 - a3b8: 00400dca subeq r0, r0, sl, asr #27 - a3bc: 00400df2 strdeq r0, [r0], #-210 - a3c0: 01d30b00 bicseq r0, r3, r0, lsl #22 - a3c4: 0df20000 ldcleq 0, cr0, [r2] - a3c8: 0e120040 cdpeq 0, 1, cr0, cr2, cr0, {2} - a3cc: 00000040 andeq r0, r0, r0, asr #32 - a3d0: 00000000 andeq r0, r0, r0 - a3d4: 00000118 andeq r0, r0, r8, lsl r1 - a3d8: 0b780003 bleq 1e0a3ec - a3dc: 06040000 streq r0, [r4], -r0 - a3e0: 445c3a43 ldrbmi r3, [ip], #-2627 - a3e4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - a3e8: 73746e65 cmnvc r4, #1616 ; 0x650 - a3ec: 646e6120 strbtvs r6, [lr], #-288 - a3f0: 74655320 strbtvc r5, [r5], #-800 - a3f4: 676e6974 undefined - a3f8: 616d5c73 smcvs 54723 - a3fc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a400: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a404: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a408: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a40c: 775c7374 undefined - a410: 6f632d73 svcvs 0x00632d73 - a414: 6f72746e svcvs 0x0072746e - a418: 65575c6c ldrbvs r5, [r7, #-3180] - a41c: 65687461 strbvs r7, [r8, #-1121]! - a420: 74532072 ldrbvc r2, [r3], #-114 - a424: 6f697461 svcvs 0x00697461 - a428: 6f43206e svcvs 0x0043206e - a42c: 6f72746e svcvs 0x0072746e - a430: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - a434: 7070415c rsbsvc r4, r0, ip, asr r1 - a438: 6163696c cmnvs r3, ip, ror #18 - a43c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - a440: 756f535c strbvc r5, [pc, #-860]! ; a0ec - a444: 5c656372 stclpl 3, cr6, [r5], #-456 - a448: 74616577 strbtvc r6, [r1], #-1399 - a44c: 5f726568 svcpl 0x00726568 - a450: 74617473 strbtvc r7, [r1], #-1139 - a454: 5f6e6f69 svcpl 0x006e6f69 - a458: 746e6f63 strbtvc r6, [lr], #-3939 - a45c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - a460: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - a464: 52414900 subpl r4, r1, #0 ; 0x0 - a468: 534e4120 movtpl r4, #57632 ; 0xe120 - a46c: 2f432049 svccs 0x00432049 - a470: 202b2b43 eorcs r2, fp, r3, asr #22 - a474: 706d6f43 rsbvc r6, sp, r3, asr #30 - a478: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - a47c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - a480: 322e3033 eorcc r3, lr, #51 ; 0x33 - a484: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a488: 572f3539 undefined - a48c: 4b203233 blmi 816d60 - a490: 534b4349 movtpl r4, #45897 ; 0xb349 - a494: 54524154 ldrbpl r4, [r2], #-340 - a498: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - a49c: 4d524120 ldfmie f4, [r2, #-128] - a4a0: 0e240100 sufeqs f0, f4, f0 - a4a4: 0e380040 cdpeq 0, 3, cr0, cr8, cr0, {2} - a4a8: 66b80040 ldrtvs r0, [r8], r0, asr #32 - a4ac: 368b0000 strcc r0, [fp], r0 - a4b0: 13100000 tstne r0, #0 ; 0x0 - a4b4: 0800008c stmdaeq r0, {r2, r3, r7} - a4b8: 00000118 andeq r0, r0, r8, lsl r1 - a4bc: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} - a4c0: 6d5f6567 cfldr64vs mvdx6, [pc, #-412] - a4c4: 75736165 ldrbvc r6, [r3, #-357]! - a4c8: 656d6572 strbvs r6, [sp, #-1394]! - a4cc: 735f746e cmpvc pc, #1845493760 ; 0x6e000000 - a4d0: 65747379 ldrbvs r7, [r4, #-889]! - a4d4: 73695f6d cmnvc r9, #436 ; 0x1b4 - a4d8: da010072 ble 4a6a8 - a4dc: 4a010604 bmi 4bcf4 - a4e0: 2400001d strcs r0, [r0], #-29 - a4e4: 3800400e stmdacc r0, {r1, r2, r3, lr} - a4e8: 0000400e andeq r4, r0, lr - a4ec: 00000000 andeq r0, r0, r0 - a4f0: 0000010c andeq r0, r0, ip, lsl #2 - a4f4: 0b780003 bleq 1e0a508 - a4f8: 06040000 streq r0, [r4], -r0 - a4fc: 445c3a43 ldrbmi r3, [ip], #-2627 - a500: 6d75636f ldclvs 3, cr6, [r5, #-444]! - a504: 73746e65 cmnvc r4, #1616 ; 0x650 - a508: 646e6120 strbtvs r6, [lr], #-288 - a50c: 74655320 strbtvc r5, [r5], #-800 - a510: 676e6974 undefined - a514: 616d5c73 smcvs 54723 - a518: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a51c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a520: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a524: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a528: 775c7374 undefined - a52c: 6f632d73 svcvs 0x00632d73 - a530: 6f72746e svcvs 0x0072746e - a534: 65575c6c ldrbvs r5, [r7, #-3180] - a538: 65687461 strbvs r7, [r8, #-1121]! - a53c: 74532072 ldrbvc r2, [r3], #-114 - a540: 6f697461 svcvs 0x00697461 - a544: 6f43206e svcvs 0x0043206e - a548: 6f72746e svcvs 0x0072746e - a54c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - a550: 7070415c rsbsvc r4, r0, ip, asr r1 - a554: 6163696c cmnvs r3, ip, ror #18 - a558: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - a55c: 756f535c strbvc r5, [pc, #-860]! ; a208 - a560: 5c656372 stclpl 3, cr6, [r5], #-456 - a564: 74616577 strbtvc r6, [r1], #-1399 - a568: 5f726568 svcpl 0x00726568 - a56c: 74617473 strbtvc r7, [r1], #-1139 - a570: 5f6e6f69 svcpl 0x006e6f69 - a574: 746e6f63 strbtvc r6, [lr], #-3939 - a578: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - a57c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - a580: 52414900 subpl r4, r1, #0 ; 0x0 - a584: 534e4120 movtpl r4, #57632 ; 0xe120 - a588: 2f432049 svccs 0x00432049 - a58c: 202b2b43 eorcs r2, fp, r3, asr #22 - a590: 706d6f43 rsbvc r6, sp, r3, asr #30 - a594: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - a598: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - a59c: 322e3033 eorcc r3, lr, #51 ; 0x33 - a5a0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a5a4: 572f3539 undefined - a5a8: 4b203233 blmi 816e7c - a5ac: 534b4349 movtpl r4, #45897 ; 0xb349 - a5b0: 54524154 ldrbpl r4, [r2], #-340 - a5b4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - a5b8: 4d524120 ldfmie f4, [r2, #-128] - a5bc: 0e380100 rsfeqe f0, f0, f0 - a5c0: 0e480040 cdpeq 0, 4, cr0, cr8, cr0, {2} - a5c4: 67780040 ldrbvs r0, [r8, -r0, asr #32]! - a5c8: 37000000 strcc r0, [r0, -r0] - a5cc: 13100000 tstne r0, #0 ; 0x0 - a5d0: 0800008c stmdaeq r0, {r2, r3, r7} - a5d4: 0000010d andeq r0, r0, sp, lsl #2 - a5d8: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} - a5dc: 645f6567 ldrbvs r6, [pc], #1383 ; a5e4 - a5e0: 6c707369 ldclvs 3, cr7, [r0], #-420 - a5e4: 695f7961 ldmdbvs pc, {r0, r5, r6, r8, fp, ip, sp, lr}^ - a5e8: 01007273 tsteq r0, r3, ror r2 - a5ec: 010604e6 smlatteq r6, r6, r4, r0 - a5f0: 00001d6a andeq r1, r0, sl, ror #26 - a5f4: 00400e38 subeq r0, r0, r8, lsr lr - a5f8: 00400e48 subeq r0, r0, r8, asr #28 - a5fc: 00000000 andeq r0, r0, r0 - a600: 000000e0 andeq r0, r0, r0, ror #1 - a604: 0b780003 bleq 1e0a618 - a608: 06040000 streq r0, [r4], -r0 - a60c: 445c3a43 ldrbmi r3, [ip], #-2627 - a610: 6d75636f ldclvs 3, cr6, [r5, #-444]! - a614: 73746e65 cmnvc r4, #1616 ; 0x650 - a618: 646e6120 strbtvs r6, [lr], #-288 - a61c: 74655320 strbtvc r5, [r5], #-800 - a620: 676e6974 undefined - a624: 616d5c73 smcvs 54723 - a628: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a62c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a630: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a634: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a638: 775c7374 undefined - a63c: 6f632d73 svcvs 0x00632d73 - a640: 6f72746e svcvs 0x0072746e - a644: 65575c6c ldrbvs r5, [r7, #-3180] - a648: 65687461 strbvs r7, [r8, #-1121]! - a64c: 74532072 ldrbvc r2, [r3], #-114 - a650: 6f697461 svcvs 0x00697461 - a654: 6f43206e svcvs 0x0043206e - a658: 6f72746e svcvs 0x0072746e - a65c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - a660: 7070415c rsbsvc r4, r0, ip, asr r1 - a664: 6163696c cmnvs r3, ip, ror #18 - a668: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - a66c: 756f535c strbvc r5, [pc, #-860]! ; a318 - a670: 5c656372 stclpl 3, cr6, [r5], #-456 - a674: 74616577 strbtvc r6, [r1], #-1399 - a678: 5f726568 svcpl 0x00726568 - a67c: 74617473 strbtvc r7, [r1], #-1139 - a680: 5f6e6f69 svcpl 0x006e6f69 - a684: 746e6f63 strbtvc r6, [lr], #-3939 - a688: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - a68c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - a690: 52414900 subpl r4, r1, #0 ; 0x0 - a694: 534e4120 movtpl r4, #57632 ; 0xe120 - a698: 2f432049 svccs 0x00432049 - a69c: 202b2b43 eorcs r2, fp, r3, asr #22 - a6a0: 706d6f43 rsbvc r6, sp, r3, asr #30 - a6a4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - a6a8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - a6ac: 322e3033 eorcc r3, lr, #51 ; 0x33 - a6b0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a6b4: 572f3539 undefined - a6b8: 4b203233 blmi 816f8c - a6bc: 534b4349 movtpl r4, #45897 ; 0xb349 - a6c0: 54524154 ldrbpl r4, [r2], #-340 - a6c4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - a6c8: 4d524120 ldfmie f4, [r2, #-128] - a6cc: 0e480100 dvfeqe f0, f0, f0 - a6d0: 0e4c0040 cdpeq 0, 4, cr0, cr12, cr0, {2} - a6d4: 68380040 ldmdavs r8!, {r6} - a6d8: 37750000 ldrbcc r0, [r5, -r0]! - a6dc: 13100000 tstne r0, #0 ; 0x0 - a6e0: 0000008c andeq r0, r0, ip, lsl #1 - a6e4: 0000010c andeq r0, r0, ip, lsl #2 - a6e8: 0b780003 bleq 1e0a6fc - a6ec: 06040000 streq r0, [r4], -r0 - a6f0: 445c3a43 ldrbmi r3, [ip], #-2627 - a6f4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - a6f8: 73746e65 cmnvc r4, #1616 ; 0x650 - a6fc: 646e6120 strbtvs r6, [lr], #-288 - a700: 74655320 strbtvc r5, [r5], #-800 - a704: 676e6974 undefined - a708: 616d5c73 smcvs 54723 - a70c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a710: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a714: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a718: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a71c: 775c7374 undefined - a720: 6f632d73 svcvs 0x00632d73 - a724: 6f72746e svcvs 0x0072746e - a728: 65575c6c ldrbvs r5, [r7, #-3180] - a72c: 65687461 strbvs r7, [r8, #-1121]! - a730: 74532072 ldrbvc r2, [r3], #-114 - a734: 6f697461 svcvs 0x00697461 - a738: 6f43206e svcvs 0x0043206e - a73c: 6f72746e svcvs 0x0072746e - a740: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - a744: 7070415c rsbsvc r4, r0, ip, asr r1 - a748: 6163696c cmnvs r3, ip, ror #18 - a74c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - a750: 756f535c strbvc r5, [pc, #-860]! ; a3fc - a754: 5c656372 stclpl 3, cr6, [r5], #-456 - a758: 74616577 strbtvc r6, [r1], #-1399 - a75c: 5f726568 svcpl 0x00726568 - a760: 74617473 strbtvc r7, [r1], #-1139 - a764: 5f6e6f69 svcpl 0x006e6f69 - a768: 746e6f63 strbtvc r6, [lr], #-3939 - a76c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - a770: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - a774: 52414900 subpl r4, r1, #0 ; 0x0 - a778: 534e4120 movtpl r4, #57632 ; 0xe120 - a77c: 2f432049 svccs 0x00432049 - a780: 202b2b43 eorcs r2, fp, r3, asr #22 - a784: 706d6f43 rsbvc r6, sp, r3, asr #30 - a788: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - a78c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - a790: 322e3033 eorcc r3, lr, #51 ; 0x33 - a794: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a798: 572f3539 undefined - a79c: 4b203233 blmi 817070 - a7a0: 534b4349 movtpl r4, #45897 ; 0xb349 - a7a4: 54524154 ldrbpl r4, [r2], #-340 - a7a8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - a7ac: 4d524120 ldfmie f4, [r2, #-128] - a7b0: 0e580100 rdfeqe f0, f0, f0 - a7b4: 0e6c0040 cdpeq 0, 6, cr0, cr12, cr0, {2} - a7b8: 68fc0040 ldmvs ip!, {r6}^ - a7bc: 38660000 stmdacc r6!, {}^ - a7c0: 13100000 tstne r0, #0 ; 0x0 - a7c4: 0800008c stmdaeq r0, {r2, r3, r7} - a7c8: 0000010d andeq r0, r0, sp, lsl #2 - a7cc: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} - a7d0: 635f6567 cmpvs pc, #432013312 ; 0x19c00000 - a7d4: 6e6e6168 powvsez f6, f6, #0.0 - a7d8: 695f6c65 ldmdbvs pc, {r0, r2, r5, r6, sl, fp, sp, lr}^ - a7dc: 01007273 tsteq r0, r3, ror r2 - a7e0: 010604f2 strdeq r0, [r6, -r2] - a7e4: 00001d8a andeq r1, r0, sl, lsl #27 - a7e8: 00400e58 subeq r0, r0, r8, asr lr - a7ec: 00400e6c subeq r0, r0, ip, ror #28 - a7f0: 00000000 andeq r0, r0, r0 - a7f4: 00000110 andeq r0, r0, r0, lsl r1 - a7f8: 0b780003 bleq 1e0a80c - a7fc: 06040000 streq r0, [r4], -r0 - a800: 445c3a43 ldrbmi r3, [ip], #-2627 - a804: 6d75636f ldclvs 3, cr6, [r5, #-444]! - a808: 73746e65 cmnvc r4, #1616 ; 0x650 - a80c: 646e6120 strbtvs r6, [lr], #-288 - a810: 74655320 strbtvc r5, [r5], #-800 - a814: 676e6974 undefined - a818: 616d5c73 smcvs 54723 - a81c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a820: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a824: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a828: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a82c: 775c7374 undefined - a830: 6f632d73 svcvs 0x00632d73 - a834: 6f72746e svcvs 0x0072746e - a838: 65575c6c ldrbvs r5, [r7, #-3180] - a83c: 65687461 strbvs r7, [r8, #-1121]! - a840: 74532072 ldrbvc r2, [r3], #-114 - a844: 6f697461 svcvs 0x00697461 - a848: 6f43206e svcvs 0x0043206e - a84c: 6f72746e svcvs 0x0072746e - a850: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - a854: 7070415c rsbsvc r4, r0, ip, asr r1 - a858: 6163696c cmnvs r3, ip, ror #18 - a85c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - a860: 756f535c strbvc r5, [pc, #-860]! ; a50c - a864: 5c656372 stclpl 3, cr6, [r5], #-456 - a868: 74616577 strbtvc r6, [r1], #-1399 - a86c: 5f726568 svcpl 0x00726568 - a870: 74617473 strbtvc r7, [r1], #-1139 - a874: 5f6e6f69 svcpl 0x006e6f69 - a878: 746e6f63 strbtvc r6, [lr], #-3939 - a87c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - a880: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - a884: 52414900 subpl r4, r1, #0 ; 0x0 - a888: 534e4120 movtpl r4, #57632 ; 0xe120 - a88c: 2f432049 svccs 0x00432049 - a890: 202b2b43 eorcs r2, fp, r3, asr #22 - a894: 706d6f43 rsbvc r6, sp, r3, asr #30 - a898: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - a89c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - a8a0: 322e3033 eorcc r3, lr, #51 ; 0x33 - a8a4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a8a8: 572f3539 undefined - a8ac: 4b203233 blmi 817180 - a8b0: 534b4349 movtpl r4, #45897 ; 0xb349 - a8b4: 54524154 ldrbpl r4, [r2], #-340 - a8b8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - a8bc: 4d524120 ldfmie f4, [r2, #-128] - a8c0: 0e6c0100 poweqe f0, f4, f0 - a8c4: 0e800040 cdpeq 0, 8, cr0, cr0, cr0, {2} - a8c8: 69bc0040 ldmibvs ip!, {r6} - a8cc: 38db0000 ldmcc fp, {}^ - a8d0: 13100000 tstne r0, #0 ; 0x0 - a8d4: 0800008c stmdaeq r0, {r2, r3, r7} - a8d8: 00000110 andeq r0, r0, r0, lsl r1 - a8dc: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} - a8e0: 625f6567 subsvs r6, pc, #432013312 ; 0x19c00000 - a8e4: 5f6b6361 svcpl 0x006b6361 - a8e8: 6867696c stmdavs r7!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - a8ec: 73695f74 cmnvc r9, #464 ; 0x1d0 - a8f0: fe010072 mcr2 0, 0, r0, cr1, cr2, {3} - a8f4: aa010604 bge 4c10c - a8f8: 6c00001d stcvs 0, cr0, [r0], {29} - a8fc: 8000400e andhi r4, r0, lr - a900: 0000400e andeq r4, r0, lr - a904: 00000000 andeq r0, r0, r0 - a908: 000001c0 andeq r0, r0, r0, asr #3 - a90c: 0b780003 bleq 1e0a920 - a910: 06040000 streq r0, [r4], -r0 - a914: 445c3a43 ldrbmi r3, [ip], #-2627 - a918: 6d75636f ldclvs 3, cr6, [r5, #-444]! - a91c: 73746e65 cmnvc r4, #1616 ; 0x650 - a920: 646e6120 strbtvs r6, [lr], #-288 - a924: 74655320 strbtvc r5, [r5], #-800 - a928: 676e6974 undefined - a92c: 616d5c73 smcvs 54723 - a930: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a934: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a938: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a93c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a940: 775c7374 undefined - a944: 6f632d73 svcvs 0x00632d73 - a948: 6f72746e svcvs 0x0072746e - a94c: 65575c6c ldrbvs r5, [r7, #-3180] - a950: 65687461 strbvs r7, [r8, #-1121]! - a954: 74532072 ldrbvc r2, [r3], #-114 - a958: 6f697461 svcvs 0x00697461 - a95c: 6f43206e svcvs 0x0043206e - a960: 6f72746e svcvs 0x0072746e - a964: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - a968: 7070415c rsbsvc r4, r0, ip, asr r1 - a96c: 6163696c cmnvs r3, ip, ror #18 - a970: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - a974: 756f535c strbvc r5, [pc, #-860]! ; a620 - a978: 5c656372 stclpl 3, cr6, [r5], #-456 - a97c: 74616577 strbtvc r6, [r1], #-1399 - a980: 5f726568 svcpl 0x00726568 - a984: 74617473 strbtvc r7, [r1], #-1139 - a988: 5f6e6f69 svcpl 0x006e6f69 - a98c: 746e6f63 strbtvc r6, [lr], #-3939 - a990: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - a994: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - a998: 52414900 subpl r4, r1, #0 ; 0x0 - a99c: 534e4120 movtpl r4, #57632 ; 0xe120 - a9a0: 2f432049 svccs 0x00432049 - a9a4: 202b2b43 eorcs r2, fp, r3, asr #22 - a9a8: 706d6f43 rsbvc r6, sp, r3, asr #30 - a9ac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - a9b0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - a9b4: 322e3033 eorcc r3, lr, #51 ; 0x33 - a9b8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - a9bc: 572f3539 undefined - a9c0: 4b203233 blmi 817294 - a9c4: 534b4349 movtpl r4, #45897 ; 0xb349 - a9c8: 54524154 ldrbpl r4, [r2], #-340 - a9cc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - a9d0: 4d524120 ldfmie f4, [r2, #-128] - a9d4: 0e800100 rmfeqs f0, f0, f0 - a9d8: 0fdc0040 svceq 0x00dc0040 - a9dc: 6a7c0040 bvs 1f0aae4 - a9e0: 39500000 ldmdbcc r0, {}^ - a9e4: 13100000 tstne r0, #0 ; 0x0 - a9e8: 0c00008c stceq 0, cr0, [r0], {140} - a9ec: 000001c1 andeq r0, r0, r1, asr #3 - a9f0: 756a6461 strbvc r6, [sl, #-1121]! - a9f4: 735f7473 cmpvc pc, #1929379840 ; 0x73000000 - a9f8: 6f736e65 svcvs 0x00736e65 - a9fc: 6f745f72 svcvs 0x00745f72 - aa00: 7275635f rsbsvc r6, r5, #2080374785 ; 0x7c000001 - aa04: 746e6572 strbtvc r6, [lr], #-1394 - aa08: 61656d5f cmnvs r5, pc, asr sp - aa0c: 65727573 ldrbvs r7, [r2, #-1395]! - aa10: 7379735f cmnvc r9, #2080374785 ; 0x7c000001 - aa14: 006d6574 rsbeq r6, sp, r4, ror r5 - aa18: 0a058b01 beq 16d624 - aa1c: 92a01001 adcls r1, r0, #1 ; 0x1 - aa20: 1dca0000 stclne 0, cr0, [sl] - aa24: 0e800000 cdpeq 0, 8, cr0, cr0, cr0, {0} - aa28: 0fdc0040 svceq 0x00dc0040 - aa2c: 75090040 strvc r0, [r9, #-64] - aa30: 65533631 ldrbvs r3, [r3, #-1585] - aa34: 726f736e rsbvc r7, pc, #-1207959551 ; 0xb8000001 - aa38: 756c6156 strbvc r6, [ip, #-342]! - aa3c: 8b010065 blhi 4abd8 - aa40: a0103b05 andsge r3, r0, r5, lsl #22 - aa44: 56000092 undefined - aa48: 0900001e stmdbeq r0, {r1, r2, r3, r4} - aa4c: 736e6553 cmnvc lr, #348127232 ; 0x14c00000 - aa50: 654d726f strbvs r7, [sp, #-623] - aa54: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 - aa58: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} - aa5c: 8b010074 blhi 4ac34 - aa60: 4b106005 blmi 422a7c - aa64: b2000092 andlt r0, r0, #146 ; 0x92 - aa68: 0a00001e beq aae8 - aa6c: 54323375 ldrtpl r3, [r2], #-885 - aa70: 6553706d ldrbvs r7, [r3, #-109] - aa74: 726f736e rsbvc r7, pc, #-1207959551 ; 0xb8000001 - aa78: 006c6156 rsbeq r6, ip, r6, asr r1 - aa7c: 0c058d01 stceq 13, cr8, [r5], {1} - aa80: 0092b010 addseq fp, r2, r0, lsl r0 - aa84: 001ecf00 andseq ip, lr, r0, lsl #30 - aa88: 31750a00 cmncc r5, r0, lsl #20 - aa8c: 6a644136 bvs 191af6c - aa90: 65747375 ldrbvs r7, [r4, #-885]! - aa94: 6e655364 cdpvs 3, 6, cr5, cr5, cr4, {3} - aa98: 56726f73 uhsub16pl r6, r2, r3 - aa9c: 01006c61 tsteq r0, r1, ror #24 - aaa0: 100c058e andne r0, ip, lr, lsl #11 - aaa4: 000092a0 andeq r9, r0, r0, lsr #5 - aaa8: 00001f16 andeq r1, r0, r6, lsl pc - aaac: 0001c00b andeq ip, r1, fp - aab0: 400e9a00 andmi r9, lr, r0, lsl #20 - aab4: 400fba00 andmi fp, pc, r0, lsl #20 - aab8: 01bf0b00 undefined instruction 0x01bf0b00 - aabc: 0f340000 svceq 0x00340000 - aac0: 0fa00040 svceq 0x00a00040 - aac4: 00000040 andeq r0, r0, r0, asr #32 - aac8: 00000000 andeq r0, r0, r0 - aacc: 000001b0 strheq r0, [r0], -r0 - aad0: 0b780003 bleq 1e0aae4 - aad4: 06040000 streq r0, [r4], -r0 - aad8: 445c3a43 ldrbmi r3, [ip], #-2627 - aadc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - aae0: 73746e65 cmnvc r4, #1616 ; 0x650 - aae4: 646e6120 strbtvs r6, [lr], #-288 - aae8: 74655320 strbtvc r5, [r5], #-800 - aaec: 676e6974 undefined - aaf0: 616d5c73 smcvs 54723 - aaf4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - aaf8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - aafc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - ab00: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - ab04: 775c7374 undefined - ab08: 6f632d73 svcvs 0x00632d73 - ab0c: 6f72746e svcvs 0x0072746e - ab10: 65575c6c ldrbvs r5, [r7, #-3180] - ab14: 65687461 strbvs r7, [r8, #-1121]! - ab18: 74532072 ldrbvc r2, [r3], #-114 - ab1c: 6f697461 svcvs 0x00697461 - ab20: 6f43206e svcvs 0x0043206e - ab24: 6f72746e svcvs 0x0072746e - ab28: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - ab2c: 7070415c rsbsvc r4, r0, ip, asr r1 - ab30: 6163696c cmnvs r3, ip, ror #18 - ab34: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - ab38: 756f535c strbvc r5, [pc, #-860]! ; a7e4 - ab3c: 5c656372 stclpl 3, cr6, [r5], #-456 - ab40: 74616577 strbtvc r6, [r1], #-1399 - ab44: 5f726568 svcpl 0x00726568 - ab48: 74617473 strbtvc r7, [r1], #-1139 - ab4c: 5f6e6f69 svcpl 0x006e6f69 - ab50: 746e6f63 strbtvc r6, [lr], #-3939 - ab54: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - ab58: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - ab5c: 52414900 subpl r4, r1, #0 ; 0x0 - ab60: 534e4120 movtpl r4, #57632 ; 0xe120 - ab64: 2f432049 svccs 0x00432049 - ab68: 202b2b43 eorcs r2, fp, r3, asr #22 - ab6c: 706d6f43 rsbvc r6, sp, r3, asr #30 - ab70: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - ab74: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - ab78: 322e3033 eorcc r3, lr, #51 ; 0x33 - ab7c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - ab80: 572f3539 undefined - ab84: 4b203233 blmi 817458 - ab88: 534b4349 movtpl r4, #45897 ; 0xb349 - ab8c: 54524154 ldrbpl r4, [r2], #-340 - ab90: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - ab94: 4d524120 ldfmie f4, [r2, #-128] - ab98: 0fdc0100 svceq 0x00dc0100 - ab9c: 108c0040 addne r0, ip, r0, asr #32 - aba0: 6b740040 blvs 1d0aca8 - aba4: 3a120000 bcc 48abac - aba8: 13100000 tstne r0, #0 ; 0x0 - abac: 0800008c stmdaeq r0, {r2, r3, r7} - abb0: 000001b2 strheq r0, [r0], -r2 - abb4: 636f7270 cmnvs pc, #7 ; 0x7 - abb8: 5f737365 svcpl 0x00737365 - abbc: 6f636e69 svcvs 0x00636e69 - abc0: 676e696d strbvs r6, [lr, -sp, ror #18]! - abc4: 67736d5f undefined - abc8: 05dd0100 ldrbeq r0, [sp, #256] - abcc: 1f3e0106 svcne 0x003e0106 - abd0: 0fdc0000 svceq 0x00dc0000 - abd4: 108c0040 addne r0, ip, r0, asr #32 - abd8: 75040040 strvc r0, [r4, #-64] - abdc: 65725038 ldrbvs r5, [r2, #-56]! - abe0: 71655376 smcvc 21814 - abe4: 626d754e rsbvs r7, sp, #327155712 ; 0x13800000 - abe8: 10007265 andne r7, r0, r5, ror #4 - abec: 00009283 andeq r9, r0, r3, lsl #5 - abf0: 1205e201 andne lr, r5, #268435456 ; 0x10000000 - abf4: 60030500 andvs r0, r3, r0, lsl #10 - abf8: 0a004052 beq 1ad48 - abfc: 65533875 ldrbvs r3, [r3, #-2165] - ac00: 6c616972 stclvs 9, cr6, [r1], #-456 - ac04: 6d617246 sfmvs f7, 2, [r1, #-280]! - ac08: df010065 svcle 0x00010065 - ac0c: cf100b05 svcgt 0x00100b05 - ac10: 7600008f strvc r0, [r0], -pc, lsl #1 - ac14: 0a00001f beq ac98 - ac18: 43363175 teqmi r6, #1073741853 ; 0x4000001d - ac1c: 65727275 ldrbvs r7, [r2, #-629]! - ac20: 6553746e ldrbvs r7, [r3, #-1134] - ac24: 726f736e rsbvc r7, pc, #-1207959551 ; 0xb8000001 - ac28: 756c6156 strbvc r6, [ip, #-342]! - ac2c: e0010065 and r0, r1, r5, rrx - ac30: a0100c05 andsge r0, r0, r5, lsl #24 - ac34: 94000092 strls r0, [r0], #-146 - ac38: 0a00001f beq acbc - ac3c: 6f433875 svcvs 0x00433875 - ac40: 65746e75 ldrbvs r6, [r4, #-3701]! - ac44: e1010072 tst r1, r2, ror r0 - ac48: 83100b05 tsthi r0, #5120 ; 0x1400 - ac4c: b1000092 swplt r0, r2, [r0] - ac50: 0b00001f bleq acd4 - ac54: 000001b1 strheq r0, [r0], -r1 - ac58: 00400fe0 subeq r0, r0, r0, ror #31 - ac5c: 00401070 subeq r1, r0, r0, ror r0 - ac60: 0001b00b andeq fp, r1, fp - ac64: 400fea00 andmi lr, pc, r0, lsl #20 - ac68: 40107000 andsmi r7, r0, r0 - ac6c: 01af0b00 undefined instruction 0x01af0b00 - ac70: 10500000 subsne r0, r0, r0 - ac74: 10680040 rsbne r0, r8, r0, asr #32 - ac78: 00000040 andeq r0, r0, r0, asr #32 - ac7c: 00000000 andeq r0, r0, r0 - ac80: 000001a8 andeq r0, r0, r8, lsr #3 - ac84: 0b780003 bleq 1e0ac98 - ac88: 06040000 streq r0, [r4], -r0 - ac8c: 445c3a43 ldrbmi r3, [ip], #-2627 - ac90: 6d75636f ldclvs 3, cr6, [r5, #-444]! - ac94: 73746e65 cmnvc r4, #1616 ; 0x650 - ac98: 646e6120 strbtvs r6, [lr], #-288 - ac9c: 74655320 strbtvc r5, [r5], #-800 - aca0: 676e6974 undefined - aca4: 616d5c73 smcvs 54723 - aca8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - acac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - acb0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - acb4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - acb8: 775c7374 undefined - acbc: 6f632d73 svcvs 0x00632d73 - acc0: 6f72746e svcvs 0x0072746e - acc4: 65575c6c ldrbvs r5, [r7, #-3180] - acc8: 65687461 strbvs r7, [r8, #-1121]! - accc: 74532072 ldrbvc r2, [r3], #-114 - acd0: 6f697461 svcvs 0x00697461 - acd4: 6f43206e svcvs 0x0043206e - acd8: 6f72746e svcvs 0x0072746e - acdc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - ace0: 7070415c rsbsvc r4, r0, ip, asr r1 - ace4: 6163696c cmnvs r3, ip, ror #18 - ace8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - acec: 756f535c strbvc r5, [pc, #-860]! ; a998 - acf0: 5c656372 stclpl 3, cr6, [r5], #-456 - acf4: 74616577 strbtvc r6, [r1], #-1399 - acf8: 5f726568 svcpl 0x00726568 - acfc: 74617473 strbtvc r7, [r1], #-1139 - ad00: 5f6e6f69 svcpl 0x006e6f69 - ad04: 746e6f63 strbtvc r6, [lr], #-3939 - ad08: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - ad0c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - ad10: 52414900 subpl r4, r1, #0 ; 0x0 - ad14: 534e4120 movtpl r4, #57632 ; 0xe120 - ad18: 2f432049 svccs 0x00432049 - ad1c: 202b2b43 eorcs r2, fp, r3, asr #22 - ad20: 706d6f43 rsbvc r6, sp, r3, asr #30 - ad24: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - ad28: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - ad2c: 322e3033 eorcc r3, lr, #51 ; 0x33 - ad30: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - ad34: 572f3539 undefined - ad38: 4b203233 blmi 81760c - ad3c: 534b4349 movtpl r4, #45897 ; 0xb349 - ad40: 54524154 ldrbpl r4, [r2], #-340 - ad44: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - ad48: 4d524120 ldfmie f4, [r2, #-128] - ad4c: 108c0100 addne r0, ip, r0, lsl #2 - ad50: 12700040 rsbsne r0, r0, #64 ; 0x40 - ad54: 6c5c0040 mrrcvs 0, 4, r0, ip, cr0 - ad58: 3af00000 bcc ffc0ad60 - ad5c: 13100000 tstne r0, #0 ; 0x0 - ad60: 0800008c stmdaeq r0, {r2, r3, r7} - ad64: 000001aa andeq r0, r0, sl, lsr #3 - ad68: 70736944 rsbsvc r6, r3, r4, asr #18 - ad6c: 4679616c ldrbtmi r6, [r9], -ip, ror #2 - ad70: 73656572 cmnvc r5, #478150656 ; 0x1c800000 - ad74: 656c6163 strbvs r6, [ip, #-355]! - ad78: 6f676f4c svcvs 0x00676f4c - ad7c: 06990100 ldreq r0, [r9], r0, lsl #2 - ad80: 1fce0106 svcne 0x00ce0106 - ad84: 108c0000 addne r0, ip, r0 - ad88: 12700040 rsbsne r0, r0, #64 ; 0x40 - ad8c: 78090040 stmdavc r9, {r6} - ad90: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 - ad94: 6f6f4374 svcvs 0x006f4374 - ad98: 01006472 tsteq r0, r2, ror r4 - ad9c: 10230699 mlane r3, r9, r6, r0 - ada0: 00009283 andeq r9, r0, r3, lsl #5 - ada4: 00001ffa strdeq r1, [r0], -sl - ada8: 74537909 ldrbvc r7, [r3], #-2313 - adac: 43747261 cmnmi r4, #268435462 ; 0x10000006 - adb0: 64726f6f ldrbtvs r6, [r2], #-3951 - adb4: 06990100 ldreq r0, [r9], r0, lsl #2 - adb8: 92831038 addls r1, r3, #56 ; 0x38 - adbc: 20170000 andscs r0, r7, r0 - adc0: 750a0000 strvc r0, [sl] - adc4: 756f4338 strbvc r4, [pc, #-824]! ; aa94 - adc8: 0100746e tsteq r0, lr, ror #8 - adcc: 100b069b mulne fp, fp, r6 - add0: 00009283 andeq r9, r0, r3, lsl #5 - add4: 00002054 andeq r2, r0, r4, asr r0 - add8: 5338750a teqpl r8, #41943040 ; 0x2800000 - addc: 6e697274 mcrvs 2, 3, r7, cr9, cr4, {3} - ade0: 9c010067 stcls 0, cr0, [r1], {103} - ade4: aa100b06 bge 40da04 - ade8: 5c00008f stcpl 0, cr0, [r0], {143} - adec: 0b000020 bleq ae74 - adf0: 000001a9 andeq r0, r0, r9, lsr #3 - adf4: 0040109c umaaleq r1, r0, ip, r0 - adf8: 00401244 subeq r1, r0, r4, asr #4 - adfc: 0100690a tsteq r0, sl, lsl #18 - ae00: 100f069e mulne pc, lr, r6 - ae04: 00009283 andeq r9, r0, r3, lsl #5 - ae08: 00002070 andeq r2, r0, r0, ror r0 - ae0c: 0001a80b andeq sl, r1, fp, lsl #16 - ae10: 40109e00 andsmi r9, r0, r0, lsl #28 - ae14: 40123800 andsmi r3, r2, r0, lsl #16 - ae18: 01a70b00 undefined instruction 0x01a70b00 - ae1c: 12280000 eorne r0, r8, #0 ; 0x0 - ae20: 12340040 eorsne r0, r4, #64 ; 0x40 - ae24: 00000040 andeq r0, r0, r0, asr #32 - ae28: 00000000 andeq r0, r0, r0 - ae2c: 000000e0 andeq r0, r0, r0, ror #1 - ae30: 0b780003 bleq 1e0ae44 - ae34: 06040000 streq r0, [r4], -r0 - ae38: 445c3a43 ldrbmi r3, [ip], #-2627 - ae3c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - ae40: 73746e65 cmnvc r4, #1616 ; 0x650 - ae44: 646e6120 strbtvs r6, [lr], #-288 - ae48: 74655320 strbtvc r5, [r5], #-800 - ae4c: 676e6974 undefined - ae50: 616d5c73 smcvs 54723 - ae54: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - ae58: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - ae5c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - ae60: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - ae64: 775c7374 undefined - ae68: 6f632d73 svcvs 0x00632d73 - ae6c: 6f72746e svcvs 0x0072746e - ae70: 65575c6c ldrbvs r5, [r7, #-3180] - ae74: 65687461 strbvs r7, [r8, #-1121]! - ae78: 74532072 ldrbvc r2, [r3], #-114 - ae7c: 6f697461 svcvs 0x00697461 - ae80: 6f43206e svcvs 0x0043206e - ae84: 6f72746e svcvs 0x0072746e - ae88: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - ae8c: 7070415c rsbsvc r4, r0, ip, asr r1 - ae90: 6163696c cmnvs r3, ip, ror #18 - ae94: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - ae98: 756f535c strbvc r5, [pc, #-860]! ; ab44 - ae9c: 5c656372 stclpl 3, cr6, [r5], #-456 - aea0: 74616577 strbtvc r6, [r1], #-1399 - aea4: 5f726568 svcpl 0x00726568 - aea8: 74617473 strbtvc r7, [r1], #-1139 - aeac: 5f6e6f69 svcpl 0x006e6f69 - aeb0: 746e6f63 strbtvc r6, [lr], #-3939 - aeb4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - aeb8: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - aebc: 52414900 subpl r4, r1, #0 ; 0x0 - aec0: 534e4120 movtpl r4, #57632 ; 0xe120 - aec4: 2f432049 svccs 0x00432049 - aec8: 202b2b43 eorcs r2, fp, r3, asr #22 - aecc: 706d6f43 rsbvc r6, sp, r3, asr #30 - aed0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - aed4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - aed8: 322e3033 eorcc r3, lr, #51 ; 0x33 - aedc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - aee0: 572f3539 undefined - aee4: 4b203233 blmi 8177b8 - aee8: 534b4349 movtpl r4, #45897 ; 0xb349 - aeec: 54524154 ldrbpl r4, [r2], #-340 - aef0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - aef4: 4d524120 ldfmie f4, [r2, #-128] - aef8: 12700100 rsbsne r0, r0, #0 ; 0x0 - aefc: 12740040 rsbsne r0, r4, #64 ; 0x40 - af00: 6d700040 ldclvs 0, cr0, [r0, #-256]! - af04: 3cc60000 stclcc 0, cr0, [r6], {0} - af08: 13100000 tstne r0, #0 ; 0x0 - af0c: 0000008c andeq r0, r0, ip, lsl #1 - af10: 00000178 andeq r0, r0, r8, ror r1 - af14: 0b780003 bleq 1e0af28 - af18: 06040000 streq r0, [r4], -r0 - af1c: 445c3a43 ldrbmi r3, [ip], #-2627 - af20: 6d75636f ldclvs 3, cr6, [r5, #-444]! - af24: 73746e65 cmnvc r4, #1616 ; 0x650 - af28: 646e6120 strbtvs r6, [lr], #-288 - af2c: 74655320 strbtvc r5, [r5], #-800 - af30: 676e6974 undefined - af34: 616d5c73 smcvs 54723 - af38: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - af3c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - af40: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - af44: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - af48: 775c7374 undefined - af4c: 6f632d73 svcvs 0x00632d73 - af50: 6f72746e svcvs 0x0072746e - af54: 65575c6c ldrbvs r5, [r7, #-3180] - af58: 65687461 strbvs r7, [r8, #-1121]! - af5c: 74532072 ldrbvc r2, [r3], #-114 - af60: 6f697461 svcvs 0x00697461 - af64: 6f43206e svcvs 0x0043206e - af68: 6f72746e svcvs 0x0072746e - af6c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - af70: 7070415c rsbsvc r4, r0, ip, asr r1 - af74: 6163696c cmnvs r3, ip, ror #18 - af78: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - af7c: 756f535c strbvc r5, [pc, #-860]! ; ac28 - af80: 5c656372 stclpl 3, cr6, [r5], #-456 - af84: 74616577 strbtvc r6, [r1], #-1399 - af88: 5f726568 svcpl 0x00726568 - af8c: 74617473 strbtvc r7, [r1], #-1139 - af90: 5f6e6f69 svcpl 0x006e6f69 - af94: 746e6f63 strbtvc r6, [lr], #-3939 - af98: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - af9c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - afa0: 52414900 subpl r4, r1, #0 ; 0x0 - afa4: 534e4120 movtpl r4, #57632 ; 0xe120 - afa8: 2f432049 svccs 0x00432049 - afac: 202b2b43 eorcs r2, fp, r3, asr #22 - afb0: 706d6f43 rsbvc r6, sp, r3, asr #30 - afb4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - afb8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - afbc: 322e3033 eorcc r3, lr, #51 ; 0x33 - afc0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - afc4: 572f3539 undefined - afc8: 4b203233 blmi 81789c - afcc: 534b4349 movtpl r4, #45897 ; 0xb349 - afd0: 54524154 ldrbpl r4, [r2], #-340 - afd4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - afd8: 4d524120 ldfmie f4, [r2, #-128] - afdc: 12800100 addne r0, r0, #0 ; 0x0 - afe0: 14320040 ldrtne r0, [r2], #-64 - afe4: 6d980040 ldcvs 0, cr0, [r8, #256] - afe8: 3d4d0000 stclcc 0, cr0, [sp] - afec: 13100000 tstne r0, #0 ; 0x0 - aff0: 0800008c stmdaeq r0, {r2, r3, r7} - aff4: 0000017b andeq r0, r0, fp, ror r1 - aff8: 61656c43 cmnvs r5, r3, asr #24 - affc: 65724672 ldrbvs r4, [r2, #-1650]! - b000: 61637365 cmnvs r3, r5, ror #6 - b004: 6f4c656c svcvs 0x004c656c - b008: 01006f67 tsteq r0, r7, ror #30 - b00c: 010606e3 smlatteq r6, r3, r6, r0 - b010: 00002083 andeq r2, r0, r3, lsl #1 - b014: 00401280 subeq r1, r0, r0, lsl #5 - b018: 00401432 subeq r1, r0, r2, lsr r4 - b01c: 74537809 ldrbvc r7, [r3], #-2057 - b020: 43747261 cmnmi r4, #268435462 ; 0x10000006 - b024: 64726f6f ldrbtvs r6, [r2], #-3951 - b028: 06e30100 strbteq r0, [r3], r0, lsl #2 - b02c: 92831021 addls r1, r3, #33 ; 0x21 - b030: 20af0000 adccs r0, pc, r0 - b034: 79090000 stmdbvc r9, {} - b038: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 - b03c: 6f6f4374 svcvs 0x006f4374 - b040: 01006472 tsteq r0, r2, ror r4 - b044: 103606e3 eorsne r0, r6, r3, ror #13 - b048: 00009283 andeq r9, r0, r3, lsl #5 - b04c: 000020cc andeq r2, r0, ip, asr #1 - b050: 00017a0b andeq r7, r1, fp, lsl #20 - b054: 40128600 andsmi r8, r2, r0, lsl #12 - b058: 40142e00 andsmi r2, r4, r0, lsl #28 - b05c: 00690a00 rsbeq r0, r9, r0, lsl #20 - b060: 0f06e501 svceq 0x0006e501 - b064: 00928310 addseq r8, r2, r0, lsl r3 - b068: 0020fe00 eoreq pc, r0, r0, lsl #28 - b06c: 01790b00 cmneq r9, r0, lsl #22 - b070: 12880000 addne r0, r8, #0 ; 0x0 - b074: 14220040 strtne r0, [r2], #-64 - b078: 780b0040 stmdavc fp, {r6} - b07c: 12000001 andne r0, r0, #1 ; 0x1 - b080: 1e004014 mcrne 0, 0, r4, cr0, cr4, {0} - b084: 00004014 andeq r4, r0, r4, lsl r0 - b088: 00000000 andeq r0, r0, r0 - b08c: 00000234 andeq r0, r0, r4, lsr r2 - b090: 0b780003 bleq 1e0b0a4 - b094: 06040000 streq r0, [r4], -r0 - b098: 445c3a43 ldrbmi r3, [ip], #-2627 - b09c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - b0a0: 73746e65 cmnvc r4, #1616 ; 0x650 - b0a4: 646e6120 strbtvs r6, [lr], #-288 - b0a8: 74655320 strbtvc r5, [r5], #-800 - b0ac: 676e6974 undefined - b0b0: 616d5c73 smcvs 54723 - b0b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - b0b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - b0bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - b0c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - b0c4: 775c7374 undefined - b0c8: 6f632d73 svcvs 0x00632d73 - b0cc: 6f72746e svcvs 0x0072746e - b0d0: 65575c6c ldrbvs r5, [r7, #-3180] - b0d4: 65687461 strbvs r7, [r8, #-1121]! - b0d8: 74532072 ldrbvc r2, [r3], #-114 - b0dc: 6f697461 svcvs 0x00697461 - b0e0: 6f43206e svcvs 0x0043206e - b0e4: 6f72746e svcvs 0x0072746e - b0e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - b0ec: 7070415c rsbsvc r4, r0, ip, asr r1 - b0f0: 6163696c cmnvs r3, ip, ror #18 - b0f4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - b0f8: 756f535c strbvc r5, [pc, #-860]! ; ada4 - b0fc: 5c656372 stclpl 3, cr6, [r5], #-456 - b100: 74616577 strbtvc r6, [r1], #-1399 - b104: 5f726568 svcpl 0x00726568 - b108: 74617473 strbtvc r7, [r1], #-1139 - b10c: 5f6e6f69 svcpl 0x006e6f69 - b110: 746e6f63 strbtvc r6, [lr], #-3939 - b114: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - b118: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - b11c: 52414900 subpl r4, r1, #0 ; 0x0 - b120: 534e4120 movtpl r4, #57632 ; 0xe120 - b124: 2f432049 svccs 0x00432049 - b128: 202b2b43 eorcs r2, fp, r3, asr #22 - b12c: 706d6f43 rsbvc r6, sp, r3, asr #30 - b130: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - b134: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - b138: 322e3033 eorcc r3, lr, #51 ; 0x33 - b13c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - b140: 572f3539 undefined - b144: 4b203233 blmi 817a18 - b148: 534b4349 movtpl r4, #45897 ; 0xb349 - b14c: 54524154 ldrbpl r4, [r2], #-340 - b150: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - b154: 4d524120 ldfmie f4, [r2, #-128] - b158: 14340100 ldrtne r0, [r4], #-256 - b15c: 16ac0040 strtne r0, [ip], r0, asr #32 - b160: 6e900040 cdpvs 0, 9, cr0, cr0, cr0, {2} - b164: 3ed70000 cdpcc 0, 13, cr0, cr7, cr0, {0} - b168: 13100000 tstne r0, #0 ; 0x0 - b16c: 0800008c stmdaeq r0, {r2, r3, r7} - b170: 00000237 andeq r0, r0, r7, lsr r2 - b174: 70736944 rsbsvc r6, r3, r4, asr #18 - b178: 5379616c cmnpl r9, #27 ; 0x1b - b17c: 6f736e65 svcvs 0x00736e65 - b180: 6c615672 stclvs 6, cr5, [r1], #-456 - b184: 01006575 tsteq r0, r5, ror r5 - b188: 0106079d strbeq r0, [r6, -sp] - b18c: 00002111 andeq r2, r0, r1, lsl r1 - b190: 00401434 subeq r1, r0, r4, lsr r4 - b194: 004016ac subeq r1, r0, ip, lsr #13 - b198: 53387509 teqpl r8, #37748736 ; 0x2400000 - b19c: 6f736e65 svcvs 0x00736e65 - b1a0: 9d010072 stcls 0, cr0, [r1, #-456] - b1a4: 4b102e07 blmi 4169c8 - b1a8: 49000092 stmdbmi r0, {r1, r4, r7} - b1ac: 0a000021 beq b238 - b1b0: 6f6f4378 svcvs 0x006f4378 - b1b4: 01006472 tsteq r0, r2, ror r4 - b1b8: 100b079f mulne fp, pc, r7 - b1bc: 00009283 andeq r9, r0, r3, lsl #5 - b1c0: 00002166 andeq r2, r0, r6, ror #2 - b1c4: 6f43790a svcvs 0x0043790a - b1c8: 0064726f rsbeq r7, r4, pc, ror #4 - b1cc: 13079f01 movwne r9, #32513 ; 0x7f01 - b1d0: 00928310 addseq r8, r2, r0, lsl r3 - b1d4: 00216e00 eoreq r6, r1, r0, lsl #28 - b1d8: 696c0a00 stmdbvs ip!, {r9, fp}^ - b1dc: 0100656e tsteq r0, lr, ror #10 - b1e0: 100b07a0 andne r0, fp, r0, lsr #15 - b1e4: 00009283 andeq r9, r0, r3, lsl #5 - b1e8: 00002176 andeq r2, r0, r6, ror r1 - b1ec: 00017e0b andeq r7, r1, fp, lsl #28 - b1f0: 40144200 andsmi r4, r4, r0, lsl #4 - b1f4: 40146600 andsmi r6, r4, r0, lsl #12 - b1f8: 00690a00 rsbeq r0, r9, r0, lsl #20 - b1fc: 0f07a401 svceq 0x0007a401 - b200: 00928310 addseq r8, r2, r0, lsl r3 - b204: 00217e00 eoreq r7, r1, r0, lsl #28 - b208: 360b0000 strcc r0, [fp], -r0 - b20c: 94000002 strls r0, [r0], #-2 - b210: ac004014 stcge 0, cr4, [r0], {20} - b214: 0b004016 bleq 1b274 - b218: 000001b5 strheq r0, [r0], -r5 - b21c: 004014a6 subeq r1, r0, r6, lsr #9 - b220: 00401542 subeq r1, r0, r2, asr #10 - b224: 0001a60b andeq sl, r1, fp, lsl #12 - b228: 4014b600 andsmi fp, r4, r0, lsl #12 - b22c: 4014d000 andsmi sp, r4, r0 - b230: b40b0000 strlt r0, [fp] - b234: d0000001 andle r0, r0, r1 - b238: ec004014 stc 0, cr4, [r0], {20} - b23c: 00004014 andeq r4, r0, r4, lsl r0 - b240: 01df0b00 bicseq r0, pc, r0, lsl #22 - b244: 15440000 strbne r0, [r4] - b248: 15d20040 ldrbne r0, [r2, #64] - b24c: d00b0040 andle r0, fp, r0, asr #32 - b250: 54000001 strpl r0, [r0], #-1 - b254: 6e004015 mcrvs 0, 0, r4, cr0, cr5, {0} - b258: 00004015 andeq r4, r0, r5, lsl r0 - b25c: 0001de0b andeq sp, r1, fp, lsl #28 - b260: 40156e00 andsmi r6, r5, r0, lsl #28 - b264: 40158a00 andsmi r8, r5, r0, lsl #20 - b268: 0b000000 bleq b270 - b26c: 00000235 andeq r0, r0, r5, lsr r2 - b270: 004015d2 ldrdeq r1, [r0], #-82 - b274: 0040167a subeq r1, r0, sl, ror r6 - b278: 0001fa0b andeq pc, r1, fp, lsl #20 - b27c: 4015e200 andsmi lr, r5, r0, lsl #4 - b280: 4015fc00 andsmi pc, r5, r0, lsl #24 - b284: 080b0000 stmdaeq fp, {} - b288: fc000002 stc2 0, cr0, [r0], {2} - b28c: 18004015 stmdane r0, {r0, r2, r4, lr} - b290: 00004016 andeq r4, r0, r6, lsl r0 - b294: 0002340b andeq r3, r2, fp, lsl #8 - b298: 40162800 andsmi r2, r6, r0, lsl #16 - b29c: 40166400 andsmi r6, r6, r0, lsl #8 - b2a0: 00690a00 rsbeq r0, r9, r0, lsl #20 - b2a4: 1308ad01 movwne sl, #36097 ; 0x8d01 - b2a8: 00928310 addseq r8, r2, r0, lsl r3 - b2ac: 00219100 eoreq r9, r1, r0, lsl #2 - b2b0: 02330b00 eorseq r0, r3, #0 ; 0x0 - b2b4: 162a0000 strtne r0, [sl], -r0 - b2b8: 165a0040 ldrbne r0, [sl], -r0, asr #32 - b2bc: 00000040 andeq r0, r0, r0, asr #32 - b2c0: 00000000 andeq r0, r0, r0 - b2c4: 00000190 muleq r0, r0, r1 - b2c8: 0b780003 bleq 1e0b2dc - b2cc: 06040000 streq r0, [r4], -r0 - b2d0: 445c3a43 ldrbmi r3, [ip], #-2627 - b2d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - b2d8: 73746e65 cmnvc r4, #1616 ; 0x650 - b2dc: 646e6120 strbtvs r6, [lr], #-288 - b2e0: 74655320 strbtvc r5, [r5], #-800 - b2e4: 676e6974 undefined - b2e8: 616d5c73 smcvs 54723 - b2ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - b2f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - b2f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - b2f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - b2fc: 775c7374 undefined - b300: 6f632d73 svcvs 0x00632d73 - b304: 6f72746e svcvs 0x0072746e - b308: 65575c6c ldrbvs r5, [r7, #-3180] - b30c: 65687461 strbvs r7, [r8, #-1121]! - b310: 74532072 ldrbvc r2, [r3], #-114 - b314: 6f697461 svcvs 0x00697461 - b318: 6f43206e svcvs 0x0043206e - b31c: 6f72746e svcvs 0x0072746e - b320: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - b324: 7070415c rsbsvc r4, r0, ip, asr r1 - b328: 6163696c cmnvs r3, ip, ror #18 - b32c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - b330: 756f535c strbvc r5, [pc, #-860]! ; afdc - b334: 5c656372 stclpl 3, cr6, [r5], #-456 - b338: 74616577 strbtvc r6, [r1], #-1399 - b33c: 5f726568 svcpl 0x00726568 - b340: 74617473 strbtvc r7, [r1], #-1139 - b344: 5f6e6f69 svcpl 0x006e6f69 - b348: 746e6f63 strbtvc r6, [lr], #-3939 - b34c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - b350: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - b354: 52414900 subpl r4, r1, #0 ; 0x0 - b358: 534e4120 movtpl r4, #57632 ; 0xe120 - b35c: 2f432049 svccs 0x00432049 - b360: 202b2b43 eorcs r2, fp, r3, asr #22 - b364: 706d6f43 rsbvc r6, sp, r3, asr #30 - b368: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - b36c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - b370: 322e3033 eorcc r3, lr, #51 ; 0x33 - b374: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - b378: 572f3539 undefined - b37c: 4b203233 blmi 817c50 - b380: 534b4349 movtpl r4, #45897 ; 0xb349 - b384: 54524154 ldrbpl r4, [r2], #-340 - b388: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - b38c: 4d524120 ldfmie f4, [r2, #-128] - b390: 16ac0100 strtne r0, [ip], r0, lsl #2 - b394: 17e00040 strbne r0, [r0, r0, asr #32]! - b398: 70000040 andvc r0, r0, r0, asr #32 - b39c: 41ba0000 undefined instruction 0x41ba0000 - b3a0: 13100000 tstne r0, #0 ; 0x0 - b3a4: 0800008c stmdaeq r0, {r2, r3, r7} - b3a8: 00000190 muleq r0, r0, r1 - b3ac: 70736944 rsbsvc r6, r3, r4, asr #18 - b3b0: 5779616c ldrbpl r6, [r9, -ip, ror #2]! - b3b4: 44646e69 strbtmi r6, [r4], #-3689 - b3b8: 01007269 tsteq r0, r9, ror #4 - b3bc: 010608df ldrdeq r0, [r6, -pc] - b3c0: 000021a4 andeq r2, r0, r4, lsr #3 - b3c4: 004016ac subeq r1, r0, ip, lsr #13 - b3c8: 004017e0 subeq r1, r0, r0, ror #15 - b3cc: 6c387509 cfldr32vs mvfx7, [r8], #-36 - b3d0: 00656e69 rsbeq r6, r5, r9, ror #28 - b3d4: 1d08df01 stcne 15, cr13, [r8, #-4] - b3d8: 00928310 addseq r8, r2, r0, lsl r3 - b3dc: 0021d000 eoreq sp, r1, r0 - b3e0: 43790a00 cmnmi r9, #0 ; 0x0 - b3e4: 64726f6f ldrbtvs r6, [r2], #-3951 - b3e8: 08e10100 stmiaeq r1!, {r8}^ - b3ec: 9283100b addls r1, r3, #11 ; 0xb - b3f0: 21ed0000 mvncs r0, r0 - b3f4: 780a0000 stmdavc sl, {} - b3f8: 726f6f43 rsbvc r6, pc, #268 ; 0x10c - b3fc: e2010064 and r0, r1, #100 ; 0x64 - b400: 83100b08 tsthi r0, #8192 ; 0x2000 - b404: 0a000092 beq b654 - b408: 0b000022 bleq b498 - b40c: 00000155 andeq r0, r0, r5, asr r1 - b410: 004016c4 subeq r1, r0, r4, asr #13 - b414: 004016da ldrdeq r1, [r0], #-106 - b418: 01630b00 cmneq r3, r0, lsl #22 - b41c: 16f80000 ldrbtne r0, [r8], r0 - b420: 17100040 ldrne r0, [r0, -r0, asr #32] - b424: 0b000040 bleq b52c - b428: 0000018f andeq r0, r0, pc, lsl #3 - b42c: 00401782 subeq r1, r0, r2, lsl #15 - b430: 004017ba strheq r1, [r0], #-122 - b434: 0100690a tsteq r0, sl, lsl #18 - b438: 100f0995 mulne pc, r5, r9 - b43c: 00009283 andeq r9, r0, r3, lsl #5 - b440: 00002212 andeq r2, r0, r2, lsl r2 - b444: 00018e0b andeq r8, r1, fp, lsl #28 - b448: 40178a00 andsmi r8, r7, r0, lsl #20 - b44c: 4017ba00 andsmi fp, r7, r0, lsl #20 - ... - b458: 00000118 andeq r0, r0, r8, lsl r1 - b45c: 0b780003 bleq 1e0b470 - b460: 06040000 streq r0, [r4], -r0 - b464: 445c3a43 ldrbmi r3, [ip], #-2627 - b468: 6d75636f ldclvs 3, cr6, [r5, #-444]! - b46c: 73746e65 cmnvc r4, #1616 ; 0x650 - b470: 646e6120 strbtvs r6, [lr], #-288 - b474: 74655320 strbtvc r5, [r5], #-800 - b478: 676e6974 undefined - b47c: 616d5c73 smcvs 54723 - b480: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - b484: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - b488: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - b48c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - b490: 775c7374 undefined - b494: 6f632d73 svcvs 0x00632d73 - b498: 6f72746e svcvs 0x0072746e - b49c: 65575c6c ldrbvs r5, [r7, #-3180] - b4a0: 65687461 strbvs r7, [r8, #-1121]! - b4a4: 74532072 ldrbvc r2, [r3], #-114 - b4a8: 6f697461 svcvs 0x00697461 - b4ac: 6f43206e svcvs 0x0043206e - b4b0: 6f72746e svcvs 0x0072746e - b4b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - b4b8: 7070415c rsbsvc r4, r0, ip, asr r1 - b4bc: 6163696c cmnvs r3, ip, ror #18 - b4c0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - b4c4: 756f535c strbvc r5, [pc, #-860]! ; b170 - b4c8: 5c656372 stclpl 3, cr6, [r5], #-456 - b4cc: 74616577 strbtvc r6, [r1], #-1399 - b4d0: 5f726568 svcpl 0x00726568 - b4d4: 74617473 strbtvc r7, [r1], #-1139 - b4d8: 5f6e6f69 svcpl 0x006e6f69 - b4dc: 746e6f63 strbtvc r6, [lr], #-3939 - b4e0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - b4e4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - b4e8: 52414900 subpl r4, r1, #0 ; 0x0 - b4ec: 534e4120 movtpl r4, #57632 ; 0xe120 - b4f0: 2f432049 svccs 0x00432049 - b4f4: 202b2b43 eorcs r2, fp, r3, asr #22 - b4f8: 706d6f43 rsbvc r6, sp, r3, asr #30 - b4fc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - b500: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - b504: 322e3033 eorcc r3, lr, #51 ; 0x33 - b508: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - b50c: 572f3539 undefined - b510: 4b203233 blmi 817de4 - b514: 534b4349 movtpl r4, #45897 ; 0xb349 - b518: 54524154 ldrbpl r4, [r2], #-340 - b51c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - b520: 4d524120 ldfmie f4, [r2, #-128] - b524: 17e00100 strbne r0, [r0, r0, lsl #2]! - b528: 180c0040 stmdane ip, {r6} - b52c: 711c0040 tstvc ip, r0, asr #32 - b530: 431f0000 tstmi pc, #0 ; 0x0 - b534: 13100000 tstne r0, #0 ; 0x0 - b538: 0800008c stmdaeq r0, {r2, r3, r7} - b53c: 0000011a andeq r0, r0, sl, lsl r1 - b540: 534d564e movtpl r5, #54862 ; 0xd64e - b544: 70757465 rsbsvc r7, r5, r5, ror #8 - b548: 09ab0100 stmibeq fp!, {r8} - b54c: 22250106 eorcs r0, r5, #-2147483647 ; 0x80000001 - b550: 17e00000 strbne r0, [r0, r0]! - b554: 180c0040 stmdane ip, {r6} - b558: 560a0040 strpl r0, [sl], -r0, asr #32 - b55c: 43676552 cmnmi r7, #343932928 ; 0x14800000 - b560: 006c746e rsbeq r7, ip, lr, ror #8 - b564: 1109ad01 tstne r9, r1, lsl #26 - b568: 00930210 addseq r0, r3, r0, lsl r2 - b56c: 00225d00 eoreq r5, r2, r0, lsl #26 - b570: 00000000 andeq r0, r0, r0 - b574: 0000012c andeq r0, r0, ip, lsr #2 - b578: 0b780003 bleq 1e0b58c - b57c: 06040000 streq r0, [r4], -r0 - b580: 445c3a43 ldrbmi r3, [ip], #-2627 - b584: 6d75636f ldclvs 3, cr6, [r5, #-444]! - b588: 73746e65 cmnvc r4, #1616 ; 0x650 - b58c: 646e6120 strbtvs r6, [lr], #-288 - b590: 74655320 strbtvc r5, [r5], #-800 - b594: 676e6974 undefined - b598: 616d5c73 smcvs 54723 - b59c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - b5a0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - b5a4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - b5a8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - b5ac: 775c7374 undefined - b5b0: 6f632d73 svcvs 0x00632d73 - b5b4: 6f72746e svcvs 0x0072746e - b5b8: 65575c6c ldrbvs r5, [r7, #-3180] - b5bc: 65687461 strbvs r7, [r8, #-1121]! - b5c0: 74532072 ldrbvc r2, [r3], #-114 - b5c4: 6f697461 svcvs 0x00697461 - b5c8: 6f43206e svcvs 0x0043206e - b5cc: 6f72746e svcvs 0x0072746e - b5d0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - b5d4: 7070415c rsbsvc r4, r0, ip, asr r1 - b5d8: 6163696c cmnvs r3, ip, ror #18 - b5dc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - b5e0: 756f535c strbvc r5, [pc, #-860]! ; b28c - b5e4: 5c656372 stclpl 3, cr6, [r5], #-456 - b5e8: 74616577 strbtvc r6, [r1], #-1399 - b5ec: 5f726568 svcpl 0x00726568 - b5f0: 74617473 strbtvc r7, [r1], #-1139 - b5f4: 5f6e6f69 svcpl 0x006e6f69 - b5f8: 746e6f63 strbtvc r6, [lr], #-3939 - b5fc: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - b600: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - b604: 52414900 subpl r4, r1, #0 ; 0x0 - b608: 534e4120 movtpl r4, #57632 ; 0xe120 - b60c: 2f432049 svccs 0x00432049 - b610: 202b2b43 eorcs r2, fp, r3, asr #22 - b614: 706d6f43 rsbvc r6, sp, r3, asr #30 - b618: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - b61c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - b620: 322e3033 eorcc r3, lr, #51 ; 0x33 - b624: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - b628: 572f3539 undefined - b62c: 4b203233 blmi 817f00 - b630: 534b4349 movtpl r4, #45897 ; 0xb349 - b634: 54524154 ldrbpl r4, [r2], #-340 - b638: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - b63c: 4d524120 ldfmie f4, [r2, #-128] - b640: 180c0100 stmdane ip, {r8} - b644: 18440040 stmdane r4, {r6}^ - b648: 71e00040 mvnvc r0, r0, asr #32 - b64c: 43a70000 undefined instruction 0x43a70000 - b650: 13100000 tstne r0, #0 ; 0x0 - b654: 0800008c stmdaeq r0, {r2, r3, r7} - b658: 0000012e andeq r0, r0, lr, lsr #2 - b65c: 64616f4c strbtvs r6, [r1], #-3916 - b660: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 - b664: 4d746e65 ldclmi 14, cr6, [r4, #-404]! - b668: 75736165 ldrbvc r6, [r3, #-357]! - b66c: 656d6572 strbvs r6, [sp, #-1394]! - b670: 7953746e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ - b674: 6d657473 cfstrdvs mvd7, [r5, #-460]! - b678: 09bc0100 ldmibeq ip!, {r8} - b67c: 22710106 rsbscs r0, r1, #-2147483647 ; 0x80000001 - b680: 180c0000 stmdane ip, {} - b684: 18440040 stmdane r4, {r6}^ - b688: 6e0a0040 cdpvs 0, 0, cr0, cr10, cr0, {2} - b68c: 72456d76 subvc r6, r5, #7552 ; 0x1d80 - b690: 00726f72 rsbseq r6, r2, r2, ror pc - b694: 0d09be01 stceq 14, cr11, [r9, #-4] - b698: 00921610 addseq r1, r2, r0, lsl r6 - b69c: 0022a900 eoreq sl, r2, r0, lsl #18 - b6a0: 00000000 andeq r0, r0, r0 - b6a4: 000001bc strheq r0, [r0], -ip - b6a8: 0b780003 bleq 1e0b6bc - b6ac: 01040000 tsteq r4, r0 - b6b0: 445c3a43 ldrbmi r3, [ip], #-2627 - b6b4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - b6b8: 73746e65 cmnvc r4, #1616 ; 0x650 - b6bc: 646e6120 strbtvs r6, [lr], #-288 - b6c0: 74655320 strbtvc r5, [r5], #-800 - b6c4: 676e6974 undefined - b6c8: 616d5c73 smcvs 54723 - b6cc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - b6d0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - b6d4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - b6d8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - b6dc: 775c7374 undefined - b6e0: 6f632d73 svcvs 0x00632d73 - b6e4: 6f72746e svcvs 0x0072746e - b6e8: 65575c6c ldrbvs r5, [r7, #-3180] - b6ec: 65687461 strbvs r7, [r8, #-1121]! - b6f0: 74532072 ldrbvc r2, [r3], #-114 - b6f4: 6f697461 svcvs 0x00697461 - b6f8: 6f43206e svcvs 0x0043206e - b6fc: 6f72746e svcvs 0x0072746e - b700: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - b704: 4d4c505c stclmi 0, cr5, [ip, #-368] - b708: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - b70c: 65746e49 ldrbvs r6, [r4, #-3657]! - b710: 63616672 cmnvs r1, #119537664 ; 0x7200000 - b714: 564e5c65 strbpl r5, [lr], -r5, ror #24 - b718: 00682e4d rsbeq r2, r8, sp, asr #28 - b71c: 20524149 subscs r4, r2, r9, asr #2 - b720: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - b724: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - b728: 43202b2b teqmi r0, #44032 ; 0xac00 - b72c: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - b730: 2072656c rsbscs r6, r2, ip, ror #10 - b734: 332e3556 teqcc lr, #360710144 ; 0x15800000 - b738: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} - b73c: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} - b740: 33572f35 cmpcc r7, #212 ; 0xd4 - b744: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ - b748: 54534b43 ldrbpl r4, [r3], #-2883 - b74c: 20545241 subscs r5, r4, r1, asr #4 - b750: 20726f66 rsbscs r6, r2, r6, ror #30 - b754: 004d5241 subeq r5, sp, r1, asr #4 - b758: 00560401 subseq r0, r6, r1, lsl #8 - b75c: 00023800 andeq r3, r2, r0, lsl #16 - b760: 01bf0d00 undefined instruction 0x01bf0d00 - b764: 0e010000 cdpeq 0, 0, cr0, cr1, cr0, {0} - b768: 6d764e67 ldclvs 14, cr4, [r6, #-412]! - b76c: 4e727245 cdpmi 2, 7, cr7, cr2, cr5, {2} - b770: 7272456f rsbsvc r4, r2, #465567744 ; 0x1bc00000 - b774: 635f726f cmpvs pc, #-268435450 ; 0xf0000006 - b778: 670e0000 strvs r0, [lr, -r0] - b77c: 456d764e strbmi r7, [sp, #-1614]! - b780: 6e497272 mcrvs 2, 2, r7, cr9, cr2, {3} - b784: 696c6176 stmdbvs ip!, {r1, r2, r4, r5, r6, r8, sp, lr}^ - b788: 746e4964 strbtvc r4, [lr], #-2404 - b78c: 61667265 cmnvs r6, r5, ror #4 - b790: 635f6563 cmpvs pc, #415236096 ; 0x18c00000 - b794: 670e0100 strvs r0, [lr, -r0, lsl #2] - b798: 456d764e strbmi r7, [sp, #-1614]! - b79c: 6e497272 mcrvs 2, 2, r7, cr9, cr2, {3} - b7a0: 696c6176 stmdbvs ip!, {r1, r2, r4, r5, r6, r8, sp, lr}^ - b7a4: 6d764e64 ldclvs 14, cr4, [r6, #-400]! - b7a8: 65707954 ldrbvs r7, [r0, #-2388]! - b7ac: 0200635f andeq r6, r0, #2080374785 ; 0x7c000001 - b7b0: 764e670e strbvc r6, [lr], -lr, lsl #14 - b7b4: 7272456d rsbsvc r4, r2, #457179136 ; 0x1b400000 - b7b8: 61766e49 cmnvs r6, r9, asr #28 - b7bc: 5064696c rsbpl r6, r4, ip, ror #18 - b7c0: 746e696f strbtvc r6, [lr], #-2415 - b7c4: 635f7265 cmpvs pc, #1342177286 ; 0x50000006 - b7c8: 670e0300 strvs r0, [lr, -r0, lsl #6] - b7cc: 456d764e strbmi r7, [sp, #-1614]! - b7d0: 72577272 subsvc r7, r7, #536870919 ; 0x20000007 - b7d4: 50657469 rsbpl r7, r5, r9, ror #8 - b7d8: 65746f72 ldrbvs r6, [r4, #-3954]! - b7dc: 635f7463 cmpvs pc, #1660944384 ; 0x63000000 - b7e0: 670e0400 strvs r0, [lr, -r0, lsl #8] - b7e4: 456d764e strbmi r7, [sp, #-1614]! - b7e8: 65567272 ldrbvs r7, [r6, #-626] - b7ec: 79666972 stmdbvc r6!, {r1, r4, r5, r6, r8, fp, sp, lr}^ - b7f0: 6f727245 svcvs 0x00727245 - b7f4: 00635f72 rsbeq r5, r3, r2, ror pc - b7f8: 4e670e05 cdpmi 14, 6, cr0, cr7, cr5, {0} - b7fc: 72456d76 subvc r6, r5, #7552 ; 0x1d80 - b800: 64644172 strbtvs r4, [r4], #-370 - b804: 73736572 cmnvc r3, #478150656 ; 0x1c800000 - b808: 63617053 cmnvs r1, #83 ; 0x53 - b80c: 65764f65 ldrbvs r4, [r6, #-3941]! - b810: 6f6c6672 svcvs 0x006c6672 - b814: 00635f77 rsbeq r5, r3, r7, ror pc - b818: 4e670e06 cdpmi 14, 6, cr0, cr7, cr6, {0} - b81c: 72456d76 subvc r6, r5, #7552 ; 0x1d80 - b820: 616c4272 smcvs 50210 - b824: 68436b6e stmdavs r3, {r1, r2, r3, r5, r6, r8, r9, fp, sp, lr}^ - b828: 456b6365 strbmi r6, [fp, #-869]! - b82c: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 - b830: 0700635f smlsdeq r0, pc, r3, r6 - b834: 764e670e strbvc r6, [lr], -lr, lsl #14 - b838: 7272456d rsbsvc r4, r2, #457179136 ; 0x1b400000 - b83c: 74736552 ldrbtvc r6, [r3], #-1362 - b840: 74636972 strbtvc r6, [r3], #-2418 - b844: 72416465 subvc r6, r1, #1694498816 ; 0x65000000 - b848: 635f6165 cmpvs pc, #1073741849 ; 0x40000019 - b84c: 670e0800 strvs r0, [lr, -r0, lsl #16] - b850: 456d764e strbmi r7, [sp, #-1614]! - b854: 614d7272 cmpvs sp, r2, ror r2 - b858: 72724578 rsbsvc r4, r2, #503316480 ; 0x1e000000 - b85c: 635f726f cmpvs pc, #-268435450 ; 0xf0000006 - b860: 00000900 andeq r0, r0, r0, lsl #18 - b864: 00000114 andeq r0, r0, r4, lsl r1 - b868: 0b780003 bleq 1e0b87c - b86c: 06040000 streq r0, [r4], -r0 - b870: 445c3a43 ldrbmi r3, [ip], #-2627 - b874: 6d75636f ldclvs 3, cr6, [r5, #-444]! - b878: 73746e65 cmnvc r4, #1616 ; 0x650 - b87c: 646e6120 strbtvs r6, [lr], #-288 - b880: 74655320 strbtvc r5, [r5], #-800 - b884: 676e6974 undefined - b888: 616d5c73 smcvs 54723 - b88c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - b890: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - b894: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - b898: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - b89c: 775c7374 undefined - b8a0: 6f632d73 svcvs 0x00632d73 - b8a4: 6f72746e svcvs 0x0072746e - b8a8: 65575c6c ldrbvs r5, [r7, #-3180] - b8ac: 65687461 strbvs r7, [r8, #-1121]! - b8b0: 74532072 ldrbvc r2, [r3], #-114 - b8b4: 6f697461 svcvs 0x00697461 - b8b8: 6f43206e svcvs 0x0043206e - b8bc: 6f72746e svcvs 0x0072746e - b8c0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - b8c4: 7070415c rsbsvc r4, r0, ip, asr r1 - b8c8: 6163696c cmnvs r3, ip, ror #18 - b8cc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - b8d0: 756f535c strbvc r5, [pc, #-860]! ; b57c - b8d4: 5c656372 stclpl 3, cr6, [r5], #-456 - b8d8: 74616577 strbtvc r6, [r1], #-1399 - b8dc: 5f726568 svcpl 0x00726568 - b8e0: 74617473 strbtvc r7, [r1], #-1139 - b8e4: 5f6e6f69 svcpl 0x006e6f69 - b8e8: 746e6f63 strbtvc r6, [lr], #-3939 - b8ec: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - b8f0: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - b8f4: 52414900 subpl r4, r1, #0 ; 0x0 - b8f8: 534e4120 movtpl r4, #57632 ; 0xe120 - b8fc: 2f432049 svccs 0x00432049 - b900: 202b2b43 eorcs r2, fp, r3, asr #22 - b904: 706d6f43 rsbvc r6, sp, r3, asr #30 - b908: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - b90c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - b910: 322e3033 eorcc r3, lr, #51 ; 0x33 - b914: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - b918: 572f3539 undefined - b91c: 4b203233 blmi 8181f0 - b920: 534b4349 movtpl r4, #45897 ; 0xb349 - b924: 54524154 ldrbpl r4, [r2], #-340 - b928: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - b92c: 4d524120 ldfmie f4, [r2, #-128] - b930: 18540100 ldmdane r4, {r8}^ - b934: 18740040 ldmdane r4!, {r6}^ - b938: 72a40040 adcvc r0, r4, #64 ; 0x40 - b93c: 444f0000 strbmi r0, [pc], #0 ; b944 - b940: 13100000 tstne r0, #0 ; 0x0 - b944: 0800008c stmdaeq r0, {r2, r3, r7} - b948: 00000117 andeq r0, r0, r7, lsl r1 - b94c: 64616552 strbtvs r6, [r1], #-1362 - b950: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 - b954: 4d746e65 ldclmi 14, cr6, [r4, #-404]! - b958: 75736165 ldrbvc r6, [r3, #-357]! - b95c: 656d6572 strbvs r6, [sp, #-1394]! - b960: 7953746e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ - b964: 6d657473 cfstrdvs mvd7, [r5, #-460]! - b968: 09ce0100 stmibeq lr, {r8}^ - b96c: 22b10106 adcscs r0, r1, #-2147483647 ; 0x80000001 - b970: 18540000 ldmdane r4, {}^ - b974: 18740040 ldmdane r4!, {r6}^ - b978: 00000040 andeq r0, r0, r0, asr #32 - b97c: 00000174 andeq r0, r0, r4, ror r1 - b980: 0b780003 bleq 1e0b994 - b984: 06040000 streq r0, [r4], -r0 - b988: 445c3a43 ldrbmi r3, [ip], #-2627 - b98c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - b990: 73746e65 cmnvc r4, #1616 ; 0x650 - b994: 646e6120 strbtvs r6, [lr], #-288 - b998: 74655320 strbtvc r5, [r5], #-800 - b99c: 676e6974 undefined - b9a0: 616d5c73 smcvs 54723 - b9a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - b9a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - b9ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - b9b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - b9b4: 775c7374 undefined - b9b8: 6f632d73 svcvs 0x00632d73 - b9bc: 6f72746e svcvs 0x0072746e - b9c0: 65575c6c ldrbvs r5, [r7, #-3180] - b9c4: 65687461 strbvs r7, [r8, #-1121]! - b9c8: 74532072 ldrbvc r2, [r3], #-114 - b9cc: 6f697461 svcvs 0x00697461 - b9d0: 6f43206e svcvs 0x0043206e - b9d4: 6f72746e svcvs 0x0072746e - b9d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - b9dc: 7070415c rsbsvc r4, r0, ip, asr r1 - b9e0: 6163696c cmnvs r3, ip, ror #18 - b9e4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - b9e8: 756f535c strbvc r5, [pc, #-860]! ; b694 - b9ec: 5c656372 stclpl 3, cr6, [r5], #-456 - b9f0: 74616577 strbtvc r6, [r1], #-1399 - b9f4: 5f726568 svcpl 0x00726568 - b9f8: 74617473 strbtvc r7, [r1], #-1139 - b9fc: 5f6e6f69 svcpl 0x006e6f69 - ba00: 746e6f63 strbtvc r6, [lr], #-3939 - ba04: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - ba08: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - ba0c: 52414900 subpl r4, r1, #0 ; 0x0 - ba10: 534e4120 movtpl r4, #57632 ; 0xe120 - ba14: 2f432049 svccs 0x00432049 - ba18: 202b2b43 eorcs r2, fp, r3, asr #22 - ba1c: 706d6f43 rsbvc r6, sp, r3, asr #30 - ba20: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - ba24: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - ba28: 322e3033 eorcc r3, lr, #51 ; 0x33 - ba2c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - ba30: 572f3539 undefined - ba34: 4b203233 blmi 818308 - ba38: 534b4349 movtpl r4, #45897 ; 0xb349 - ba3c: 54524154 ldrbpl r4, [r2], #-340 - ba40: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - ba44: 4d524120 ldfmie f4, [r2, #-128] - ba48: 18740100 ldmdane r4!, {r8}^ - ba4c: 19380040 ldmdbne r8!, {r6} - ba50: 73640040 cmnvc r4, #64 ; 0x40 - ba54: 44c60000 strbmi r0, [r6] - ba58: 13100000 tstne r0, #0 ; 0x0 - ba5c: 0800008c stmdaeq r0, {r2, r3, r7} - ba60: 00000176 andeq r0, r0, r6, ror r1 - ba64: 63657865 cmnvs r5, #6619136 ; 0x650000 - ba68: 5f657475 svcpl 0x00657475 - ba6c: 74726175 ldrbtvc r6, [r2], #-373 - ba70: 6d6f635f stclvs 3, cr6, [pc, #-380]! - ba74: 646e616d strbtvs r6, [lr], #-365 - ba78: 09d30100 ldmibeq r3, {r8}^ - ba7c: 22e90106 rsccs r0, r9, #-2147483647 ; 0x80000001 - ba80: 18740000 ldmdane r4!, {}^ - ba84: 19380040 ldmdbne r8!, {r6} - ba88: 75090040 strvc r0, [r9, #-64] - ba8c: 6d6f4338 stclvs 3, cr4, [pc, #-224]! - ba90: 646e616d strbtvs r6, [lr], #-365 - ba94: 09d30100 ldmibeq r3, {r8}^ - ba98: 92831023 addls r1, r3, #35 ; 0x23 - ba9c: 23090000 movwcs r0, #36864 ; 0x9000 - baa0: 75090000 strvc r0, [r9] - baa4: 6c615638 stclvs 6, cr5, [r1], #-224 - baa8: 01006575 tsteq r0, r5, ror r5 - baac: 103609d3 ldrsbtne r0, [r6], -r3 - bab0: 00009283 andeq r9, r0, r3, lsl #5 - bab4: 0000238f andeq r2, r0, pc, lsl #7 - bab8: 4338750a teqmi r8, #41943040 ; 0x2800000 - babc: 616d6d6f cmnvs sp, pc, ror #26 - bac0: 7246646e subvc r6, r6, #1845493760 ; 0x6e000000 - bac4: 00656d61 rsbeq r6, r5, r1, ror #26 - bac8: 0b09d501 bleq 280ed4 - bacc: 008f9010 addeq r9, pc, r0, lsl r0 - bad0: 00240000 eoreq r0, r4, r0 - bad4: 01670b00 cmneq r7, r0, lsl #22 - bad8: 188c0000 stmne ip, {} - badc: 18be0040 ldmne lr!, {r6} - bae0: 0b000040 bleq bbe8 - bae4: 00000175 andeq r0, r0, r5, ror r1 - bae8: 004018c2 subeq r1, r0, r2, asr #17 - baec: 004018e4 subeq r1, r0, r4, ror #17 - baf0: 00000000 andeq r0, r0, r0 - baf4: 0000013c andeq r0, r0, ip, lsr r1 - baf8: 0b780003 bleq 1e0bb0c - bafc: 06040000 streq r0, [r4], -r0 - bb00: 445c3a43 ldrbmi r3, [ip], #-2627 - bb04: 6d75636f ldclvs 3, cr6, [r5, #-444]! - bb08: 73746e65 cmnvc r4, #1616 ; 0x650 - bb0c: 646e6120 strbtvs r6, [lr], #-288 - bb10: 74655320 strbtvc r5, [r5], #-800 - bb14: 676e6974 undefined - bb18: 616d5c73 smcvs 54723 - bb1c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - bb20: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - bb24: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - bb28: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - bb2c: 775c7374 undefined - bb30: 6f632d73 svcvs 0x00632d73 - bb34: 6f72746e svcvs 0x0072746e - bb38: 65575c6c ldrbvs r5, [r7, #-3180] - bb3c: 65687461 strbvs r7, [r8, #-1121]! - bb40: 74532072 ldrbvc r2, [r3], #-114 - bb44: 6f697461 svcvs 0x00697461 - bb48: 6f43206e svcvs 0x0043206e - bb4c: 6f72746e svcvs 0x0072746e - bb50: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - bb54: 7070415c rsbsvc r4, r0, ip, asr r1 - bb58: 6163696c cmnvs r3, ip, ror #18 - bb5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - bb60: 756f535c strbvc r5, [pc, #-860]! ; b80c - bb64: 5c656372 stclpl 3, cr6, [r5], #-456 - bb68: 74616577 strbtvc r6, [r1], #-1399 - bb6c: 5f726568 svcpl 0x00726568 - bb70: 74617473 strbtvc r7, [r1], #-1139 - bb74: 5f6e6f69 svcpl 0x006e6f69 - bb78: 746e6f63 strbtvc r6, [lr], #-3939 - bb7c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - bb80: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - bb84: 52414900 subpl r4, r1, #0 ; 0x0 - bb88: 534e4120 movtpl r4, #57632 ; 0xe120 - bb8c: 2f432049 svccs 0x00432049 - bb90: 202b2b43 eorcs r2, fp, r3, asr #22 - bb94: 706d6f43 rsbvc r6, sp, r3, asr #30 - bb98: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - bb9c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - bba0: 322e3033 eorcc r3, lr, #51 ; 0x33 - bba4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - bba8: 572f3539 undefined - bbac: 4b203233 blmi 818480 - bbb0: 534b4349 movtpl r4, #45897 ; 0xb349 - bbb4: 54524154 ldrbpl r4, [r2], #-340 - bbb8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - bbbc: 4d524120 ldfmie f4, [r2, #-128] - bbc0: 19380100 ldmdbne r8!, {r8} - bbc4: 19620040 stmdbne r2!, {r6}^ - bbc8: 746c0040 strbtvc r0, [ip], #-64 - bbcc: 45ee0000 strbmi r0, [lr]! - bbd0: 13100000 tstne r0, #0 ; 0x0 - bbd4: 0c00008c stceq 0, cr0, [r0], {140} - bbd8: 0000013e andeq r0, r0, lr, lsr r1 - bbdc: 5f797063 svcpl 0x00797063 - bbe0: 74726175 ldrbtvc r6, [r2], #-373 - bbe4: 5f6f745f svcpl 0x006f745f - bbe8: 61746164 cmnvs r4, r4, ror #2 - bbec: 6675625f undefined - bbf0: a8010066 stmdage r1, {r1, r2, r5, r6} - bbf4: 1001090a andne r0, r1, sl, lsl #18 - bbf8: 00009283 andeq r9, r0, r3, lsl #5 - bbfc: 0000241e andeq r2, r0, lr, lsl r4 - bc00: 00401938 subeq r1, r0, r8, lsr r9 - bc04: 00401962 subeq r1, r0, r2, ror #18 - bc08: 38757009 ldmdacc r5!, {r0, r3, ip, sp, lr}^ - bc0c: 61746144 cmnvs r4, r4, asr #2 - bc10: 00667542 rsbeq r7, r6, r2, asr #10 - bc14: 2a0aa801 bcs 2b5c20 - bc18: 008d3210 addeq r3, sp, r0, lsl r2 - bc1c: 00246200 eoreq r6, r4, r0, lsl #4 - bc20: 00690a00 rsbeq r0, r9, r0, lsl #20 - bc24: 0b0aaa01 bleq 2b6430 - bc28: 00928310 addseq r8, r2, r0, lsl r3 - bc2c: 00247f00 eoreq r7, r4, r0, lsl #30 - bc30: 00000000 andeq r0, r0, r0 - -Disassembly of section .debug_line: - -00000000 <.debug_line>: - 0: 00000213 andeq r0, r0, r3, lsl r2 - 4: 020d0002 andeq r0, sp, #2 ; 0x2 - 8: 01010000 tsteq r1, r0 - c: 000a0500 andeq r0, sl, r0, lsl #10 - 10: 01010101 tsteq r1, r1, lsl #2 - 14: 00000000 andeq r0, r0, r0 - 18: 445c3a43 ldrbmi r3, [ip], #-2627 - 1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 20: 73746e65 cmnvc r4, #1616 ; 0x650 - 24: 646e6120 strbtvs r6, [lr], #-288 - 28: 74655320 strbtvc r5, [r5], #-800 - 2c: 676e6974 undefined - 30: 616d5c73 smcvs 54723 - 34: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 38: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 40: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 44: 775c7374 undefined - 48: 6f632d73 svcvs 0x00632d73 - 4c: 6f72746e svcvs 0x0072746e - 50: 65575c6c ldrbvs r5, [r7, #-3180] - 54: 65687461 strbvs r7, [r8, #-1121]! - 58: 74532072 ldrbvc r2, [r3], #-114 - 5c: 6f697461 svcvs 0x00697461 - 60: 6f43206e svcvs 0x0043206e - 64: 6f72746e svcvs 0x0072746e - 68: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6c: 4d4c505c stclmi 0, cr5, [ip, #-368] - 70: 746e495c strbtvc r4, [lr], #-2396 - 74: 61667265 cmnvs r6, r5, ror #4 - 78: 005c6563 subseq r6, ip, r3, ror #10 - 7c: 445c3a43 ldrbmi r3, [ip], #-2627 - 80: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 84: 73746e65 cmnvc r4, #1616 ; 0x650 - 88: 646e6120 strbtvs r6, [lr], #-288 - 8c: 74655320 strbtvc r5, [r5], #-800 - 90: 676e6974 undefined - 94: 616d5c73 smcvs 54723 - 98: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 9c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a8: 775c7374 undefined - ac: 6f632d73 svcvs 0x00632d73 - b0: 6f72746e svcvs 0x0072746e - b4: 65575c6c ldrbvs r5, [r7, #-3180] - b8: 65687461 strbvs r7, [r8, #-1121]! - bc: 74532072 ldrbvc r2, [r3], #-114 - c0: 6f697461 svcvs 0x00697461 - c4: 6f43206e svcvs 0x0043206e - c8: 6f72746e svcvs 0x0072746e - cc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - d0: 414d535c cmpmi sp, ip, asr r3 - d4: 72445c43 subvc r5, r4, #17152 ; 0x4300 - d8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - dc: 6f435c73 svcvs 0x00435c73 - e0: 6769666e strbvs r6, [r9, -lr, ror #12]! - e4: 5c657275 sfmpl f7, 2, [r5], #-468 - e8: 5c3a4300 ldcpl 3, cr4, [sl] - ec: 75636f44 strbvc r6, [r3, #-3908]! - f0: 746e656d strbtvc r6, [lr], #-1389 - f4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - f8: 65532064 ldrbvs r2, [r3, #-100] - fc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 100: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 104: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 108: 4d5c6172 ldfmie f6, [ip, #-456] - 10c: 6f442079 svcvs 0x00442079 - 110: 656d7563 strbvs r7, [sp, #-1379]! - 114: 5c73746e cfldrdpl mvd7, [r3], #-440 - 118: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 11c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 120: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 124: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 128: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 12c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 130: 43206e6f teqmi r0, #1776 ; 0x6f0 - 134: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 138: 656c6c6f strbvs r6, [ip, #-3183]! - 13c: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 140: 445c4341 ldrbmi r4, [ip], #-833 - 144: 65766972 ldrbvs r6, [r6, #-2418]! - 148: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ - 14c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 150: 65636166 strbvs r6, [r3, #-358]! - 154: 3a43005c bcc 10c02cc - 158: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 15c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 160: 61207374 teqvs r0, r4, ror r3 - 164: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 168: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 16c: 5c73676e ldclpl 7, cr6, [r3], #-440 - 170: 766c616d strbtvc r6, [ip], -sp, ror #2 - 174: 5c617269 sfmpl f7, 2, [r1], #-420 - 178: 4420794d strtmi r7, [r0], #-2381 - 17c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 180: 73746e65 cmnvc r4, #1616 ; 0x650 - 184: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 188: 746e6f63 strbtvc r6, [lr], #-3939 - 18c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 190: 74616557 strbtvc r6, [r1], #-1367 - 194: 20726568 rsbscs r6, r2, r8, ror #10 - 198: 74617453 strbtvc r7, [r1], #-1107 - 19c: 206e6f69 rsbcs r6, lr, r9, ror #30 - 1a0: 746e6f43 strbtvc r6, [lr], #-3907 - 1a4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 1a8: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 1ac: 5c43414d stfple f4, [r3], {77} - 1b0: 76697244 strbtvc r7, [r9], -r4, asr #4 - 1b4: 5c737265 lfmpl f7, 2, [r3], #-404 - 1b8: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 1bc: 005c6563 subseq r6, ip, r3, ror #10 - 1c0: 626d4500 rsbvs r4, sp, #0 ; 0x0 - 1c4: 65646465 strbvs r6, [r4, #-1125]! - 1c8: 70795464 rsbsvc r5, r9, r4, ror #8 - 1cc: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} - 1d0: 9d9e0100 ldflss f0, [lr] - 1d4: 7704c0d7 undefined - 1d8: 72616f62 rsbvc r6, r1, #392 ; 0x188 - 1dc: 6f635f64 svcvs 0x00635f64 - 1e0: 6769666e strbvs r6, [r9, -lr, ror #12]! - 1e4: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 - 1e8: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} - 1ec: 72463d04 subvc r3, r6, #256 ; 0x100 - 1f0: 65447165 strbvs r7, [r4, #-357] - 1f4: 74655370 strbtvc r5, [r5], #-880 - 1f8: 676e6974 undefined - 1fc: 00682e73 rsbeq r2, r8, r3, ror lr - 200: edfbf703 ldcl 7, cr15, [fp, #12]! - 204: 443704ce ldrtmi r0, [r7], #-1230 - 208: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ - 20c: 0400632e streq r6, [r0], #-814 - 210: c5d0bea8 ldrbgt fp, [r0, #3752] - 214: 00002a04 andeq r2, r0, r4, lsl #20 - 218: 000000ae andeq r0, r0, lr, lsr #1 - 21c: 00890002 addeq r0, r9, r2 - 220: 01020000 tsteq r2, r0 - 224: 000a0500 andeq r0, sl, r0, lsl #10 - 228: 01010101 tsteq r1, r1, lsl #2 - 22c: 00000000 andeq r0, r0, r0 - 230: 445c3a43 ldrbmi r3, [ip], #-2627 - 234: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 238: 73746e65 cmnvc r4, #1616 ; 0x650 - 23c: 646e6120 strbtvs r6, [lr], #-288 - 240: 74655320 strbtvc r5, [r5], #-800 - 244: 676e6974 undefined - 248: 616d5c73 smcvs 54723 - 24c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 250: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 254: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 258: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 25c: 775c7374 undefined - 260: 6f632d73 svcvs 0x00632d73 - 264: 6f72746e svcvs 0x0072746e - 268: 65575c6c ldrbvs r5, [r7, #-3180] - 26c: 65687461 strbvs r7, [r8, #-1121]! - 270: 74532072 ldrbvc r2, [r3], #-114 - 274: 6f697461 svcvs 0x00697461 - 278: 6f43206e svcvs 0x0043206e - 27c: 6f72746e svcvs 0x0072746e - 280: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 284: 414d535c cmpmi sp, ip, asr r3 - 288: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 28c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 290: 6f535c73 svcvs 0x00535c73 - 294: 65637275 strbvs r7, [r3, #-629]! - 298: 4400005c strmi r0, [r0], #-92 - 29c: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ - 2a0: 0100632e tsteq r0, lr, lsr #6 - 2a4: c5d0bea8 ldrbgt fp, [r0, #3752] - 2a8: 00002a04 andeq r2, r0, r4, lsl #20 - 2ac: 3d840205 sfmcc f0, 4, [r4, #20] - 2b0: 01050040 tsteq r5, r0, asr #32 - 2b4: 050e1003 streq r1, [lr, #-3] - 2b8: 05102705 ldreq r2, [r0, #-1797] - 2bc: 237d0303 cmncs sp, #201326592 ; 0xc000000 - 2c0: 01030105 tsteq r3, r5, lsl #2 - 2c4: 00050218 andeq r0, r5, r8, lsl r2 - 2c8: 00000101 andeq r0, r0, r1, lsl #2 - 2cc: 000000ae andeq r0, r0, lr, lsr #1 - 2d0: 00890002 addeq r0, r9, r2 - 2d4: 01020000 tsteq r2, r0 - 2d8: 000a0500 andeq r0, sl, r0, lsl #10 - 2dc: 01010101 tsteq r1, r1, lsl #2 - 2e0: 00000000 andeq r0, r0, r0 - 2e4: 445c3a43 ldrbmi r3, [ip], #-2627 - 2e8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2ec: 73746e65 cmnvc r4, #1616 ; 0x650 - 2f0: 646e6120 strbtvs r6, [lr], #-288 - 2f4: 74655320 strbtvc r5, [r5], #-800 - 2f8: 676e6974 undefined - 2fc: 616d5c73 smcvs 54723 - 300: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 304: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 308: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 30c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 310: 775c7374 undefined - 314: 6f632d73 svcvs 0x00632d73 - 318: 6f72746e svcvs 0x0072746e - 31c: 65575c6c ldrbvs r5, [r7, #-3180] - 320: 65687461 strbvs r7, [r8, #-1121]! - 324: 74532072 ldrbvc r2, [r3], #-114 - 328: 6f697461 svcvs 0x00697461 - 32c: 6f43206e svcvs 0x0043206e - 330: 6f72746e svcvs 0x0072746e - 334: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 338: 414d535c cmpmi sp, ip, asr r3 - 33c: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 340: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 344: 6f535c73 svcvs 0x00535c73 - 348: 65637275 strbvs r7, [r3, #-629]! - 34c: 4400005c strmi r0, [r0], #-92 - 350: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ - 354: 0100632e tsteq r0, lr, lsr #6 - 358: c5d0bea8 ldrbgt fp, [r0, #3752] - 35c: 00002a04 andeq r2, r0, r4, lsl #20 - 360: 3da80205 sfmcc f0, 4, [r8, #20]! - 364: 01050040 tsteq r5, r0, asr #32 - 368: 050e1c03 streq r1, [lr, #-3075] - 36c: 05102705 ldreq r2, [r0, #-1797] - 370: 237d0303 cmncs sp, #201326592 ; 0xc000000 - 374: 01030105 tsteq r3, r5, lsl #2 - 378: 00020218 andeq r0, r2, r8, lsl r2 - 37c: 00000101 andeq r0, r0, r1, lsl #2 - 380: 00000268 andeq r0, r0, r8, ror #4 - 384: 02620002 rsbeq r0, r2, #2 ; 0x2 - 388: 01010000 tsteq r1, r0 - 38c: 000a0500 andeq r0, sl, r0, lsl #10 - 390: 01010101 tsteq r1, r1, lsl #2 - 394: 00000000 andeq r0, r0, r0 - 398: 445c3a43 ldrbmi r3, [ip], #-2627 - 39c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3a0: 73746e65 cmnvc r4, #1616 ; 0x650 - 3a4: 646e6120 strbtvs r6, [lr], #-288 - 3a8: 74655320 strbtvc r5, [r5], #-800 - 3ac: 676e6974 undefined - 3b0: 616d5c73 smcvs 54723 - 3b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3c4: 775c7374 undefined - 3c8: 6f632d73 svcvs 0x00632d73 - 3cc: 6f72746e svcvs 0x0072746e - 3d0: 65575c6c ldrbvs r5, [r7, #-3180] - 3d4: 65687461 strbvs r7, [r8, #-1121]! - 3d8: 74532072 ldrbvc r2, [r3], #-114 - 3dc: 6f697461 svcvs 0x00697461 - 3e0: 6f43206e svcvs 0x0043206e - 3e4: 6f72746e svcvs 0x0072746e - 3e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3ec: 7070415c rsbsvc r4, r0, ip, asr r1 - 3f0: 6163696c cmnvs r3, ip, ror #18 - 3f4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 3f8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 3fc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 400: 005c7365 subseq r7, ip, r5, ror #6 - 404: 445c3a43 ldrbmi r3, [ip], #-2627 - 408: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 40c: 73746e65 cmnvc r4, #1616 ; 0x650 - 410: 646e6120 strbtvs r6, [lr], #-288 - 414: 74655320 strbtvc r5, [r5], #-800 - 418: 676e6974 undefined - 41c: 616d5c73 smcvs 54723 - 420: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 424: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 428: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 42c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 430: 775c7374 undefined - 434: 6f632d73 svcvs 0x00632d73 - 438: 6f72746e svcvs 0x0072746e - 43c: 65575c6c ldrbvs r5, [r7, #-3180] - 440: 65687461 strbvs r7, [r8, #-1121]! - 444: 74532072 ldrbvc r2, [r3], #-114 - 448: 6f697461 svcvs 0x00697461 - 44c: 6f43206e svcvs 0x0043206e - 450: 6f72746e svcvs 0x0072746e - 454: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 458: 4d4c505c stclmi 0, cr5, [ip, #-368] - 45c: 746e495c strbtvc r4, [lr], #-2396 - 460: 61667265 cmnvs r6, r5, ror #4 - 464: 005c6563 subseq r6, ip, r3, ror #10 - 468: 445c3a43 ldrbmi r3, [ip], #-2627 - 46c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 470: 73746e65 cmnvc r4, #1616 ; 0x650 - 474: 646e6120 strbtvs r6, [lr], #-288 - 478: 74655320 strbtvc r5, [r5], #-800 - 47c: 676e6974 undefined - 480: 616d5c73 smcvs 54723 - 484: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 488: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 48c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 490: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 494: 775c7374 undefined - 498: 6f632d73 svcvs 0x00632d73 - 49c: 6f72746e svcvs 0x0072746e - 4a0: 65575c6c ldrbvs r5, [r7, #-3180] - 4a4: 65687461 strbvs r7, [r8, #-1121]! - 4a8: 74532072 ldrbvc r2, [r3], #-114 - 4ac: 6f697461 svcvs 0x00697461 - 4b0: 6f43206e svcvs 0x0043206e - 4b4: 6f72746e svcvs 0x0072746e - 4b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4bc: 4d4c505c stclmi 0, cr5, [ip, #-368] - 4c0: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 4c4: 65746e49 ldrbvs r6, [r4, #-3657]! - 4c8: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 4cc: 43005c65 movwmi r5, #3173 ; 0xc65 - 4d0: 6f445c3a svcvs 0x00445c3a - 4d4: 656d7563 strbvs r7, [sp, #-1379]! - 4d8: 2073746e rsbscs r7, r3, lr, ror #8 - 4dc: 20646e61 rsbcs r6, r4, r1, ror #28 - 4e0: 74746553 ldrbtvc r6, [r4], #-1363 - 4e4: 73676e69 cmnvc r7, #1680 ; 0x690 - 4e8: 6c616d5c stclvs 13, cr6, [r1], #-368 - 4ec: 61726976 cmnvs r2, r6, ror r9 - 4f0: 20794d5c rsbscs r4, r9, ip, asr sp - 4f4: 75636f44 strbvc r6, [r3, #-3908]! - 4f8: 746e656d strbtvc r6, [lr], #-1389 - 4fc: 73775c73 cmnvc r7, #29440 ; 0x7300 - 500: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 504: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 508: 6165575c cmnvs r5, ip, asr r7 - 50c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 510: 61745320 cmnvs r4, r0, lsr #6 - 514: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 518: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 51c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 520: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 524: 43414d53 movtmi r4, #7507 ; 0x1d53 - 528: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 52c: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 530: 746e495c strbtvc r4, [lr], #-2396 - 534: 61667265 cmnvs r6, r5, ror #4 - 538: 005c6563 subseq r6, ip, r3, ror #10 - 53c: 73694400 cmnvc r9, #0 ; 0x0 - 540: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - 544: 0100632e tsteq r0, lr, lsr #6 - 548: c5d0bea8 ldrbgt fp, [r0, #3752] - 54c: 440ad804 strmi sp, [sl], #-2052 - 550: 6c707369 ldclvs 3, cr7, [r0], #-420 - 554: 682e7961 stmdavs lr!, {r0, r5, r6, r8, fp, ip, sp, lr} - 558: bea80100 fdvlte f0, f0, f0 - 55c: bd04c5d0 cfstr32lt mvfx12, [r4, #-832] - 560: 44434c02 strbmi r4, [r3], #-3074 - 564: 6e6f465f mcrvs 6, 3, r4, cr15, cr15, {2} - 568: 00682e74 rsbeq r2, r8, r4, ror lr - 56c: d0bea801 adcsle sl, lr, r1, lsl #16 - 570: 453504c5 ldrmi r0, [r5, #-1221]! - 574: 6465626d strbtvs r6, [r5], #-621 - 578: 54646564 strbtpl r6, [r4], #-1380 - 57c: 73657079 cmnvc r5, #121 ; 0x79 - 580: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 - 584: c0d79d9e smullsgt r9, r7, lr, sp - 588: 52437704 subpl r7, r3, #1048576 ; 0x100000 - 58c: 65525f4d ldrbvs r5, [r2, #-3917] - 590: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} - 594: 8ff80300 svchi 0x00f80300 - 598: 8104c0d7 ldrdhi ip, [r4, -r7] - 59c: 49504702 ldmdbmi r0, {r1, r8, r9, sl, lr}^ - 5a0: 6e495f4f cdpvs 15, 4, cr5, cr9, cr15, {2} - 5a4: 66726574 undefined - 5a8: 2e656361 cdpcs 3, 6, cr6, cr5, cr1, {3} - 5ac: f8030068 undefined instruction 0xf8030068 - 5b0: 04c0d78f strbeq sp, [r0], #1935 - 5b4: 6c50069e mrrcvs 6, 9, r0, r0, cr14 - 5b8: 6f667461 svcvs 0x00667461 - 5bc: 682e6d72 stmdavs lr!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} - 5c0: 94f20300 ldrbtls r0, [r2], #768 - 5c4: be04c0d7 mcrlt 0, 0, ip, cr4, cr7, {6} - 5c8: 69735303 ldmdbvs r3!, {r0, r1, r8, r9, ip, lr}^ - 5cc: 6765525f undefined - 5d0: 00682e73 rsbeq r2, r8, r3, ror lr - 5d4: 9196cc03 orrsls ip, r6, r3, lsl #24 - 5d8: 01c504ba strheq r0, [r5, #74] - 5dc: 616c6544 cmnvs ip, r4, asr #10 - 5e0: 00682e79 rsbeq r2, r8, r9, ror lr - 5e4: d0bea804 adcsle sl, lr, r4, lsl #16 - 5e8: 001904c5 andseq r0, r9, r5, asr #9 - 5ec: 000000ee andeq r0, r0, lr, ror #1 - 5f0: 008e0002 addeq r0, lr, r2 - 5f4: 01020000 tsteq r2, r0 - 5f8: 000a0500 andeq r0, sl, r0, lsl #10 - 5fc: 01010101 tsteq r1, r1, lsl #2 - 600: 00000000 andeq r0, r0, r0 - 604: 445c3a43 ldrbmi r3, [ip], #-2627 - 608: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 60c: 73746e65 cmnvc r4, #1616 ; 0x650 - 610: 646e6120 strbtvs r6, [lr], #-288 - 614: 74655320 strbtvc r5, [r5], #-800 - 618: 676e6974 undefined - 61c: 616d5c73 smcvs 54723 - 620: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 624: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 628: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 62c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 630: 775c7374 undefined - 634: 6f632d73 svcvs 0x00632d73 - 638: 6f72746e svcvs 0x0072746e - 63c: 65575c6c ldrbvs r5, [r7, #-3180] - 640: 65687461 strbvs r7, [r8, #-1121]! - 644: 74532072 ldrbvc r2, [r3], #-114 - 648: 6f697461 svcvs 0x00697461 - 64c: 6f43206e svcvs 0x0043206e - 650: 6f72746e svcvs 0x0072746e - 654: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 658: 7070415c rsbsvc r4, r0, ip, asr r1 - 65c: 6163696c cmnvs r3, ip, ror #18 - 660: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 664: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 668: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 66c: 005c7365 subseq r7, ip, r5, ror #6 - 670: 73694400 cmnvc r9, #0 ; 0x0 - 674: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - 678: 0100632e tsteq r0, lr, lsr #6 - 67c: c5d0bea8 ldrbgt fp, [r0, #3752] - 680: 000ad804 andeq sp, sl, r4, lsl #16 - 684: 64020500 strvs r0, [r2], #-1280 - 688: 05004019 streq r4, [r0, #-25] - 68c: 01fc0301 mvnseq r0, r1, lsl #6 - 690: 1105050e tstne r5, lr, lsl #10 - 694: 1f1f1f1f svcne 0x001f1f1f - 698: 1f1f201f svcne 0x001f201f - 69c: 211f1f1f tstcs pc, pc, lsl pc - 6a0: 1f1f1f1f svcne 0x001f1f1f - 6a4: 1f201f1f svcne 0x00201f1f - 6a8: 1f1f1f1f svcne 0x001f1f1f - 6ac: 2237031f eorscs r0, r7, #2080374784 ; 0x7c000000 - 6b0: 2a292524 bcs a49b48 - 6b4: 2a292a29 bcs a4af60 - 6b8: 05243433 streq r3, [r4, #-1075]! - 6bc: 1f1f2703 svcne 0x001f2703 - 6c0: 051f1f1a ldreq r1, [pc, #-3866] ; fffff7ae - 6c4: 1d170305 ldcne 3, cr0, [r7, #-20] - 6c8: 1c1d1c1a ldcne 12, cr1, [sp], {26} - 6cc: 1d1b1d1c ldcne 13, cr1, [fp, #-112] - 6d0: 1c1a1b1a ldcne 11, cr1, [sl], {26} - 6d4: 01051b1c tsteq r5, ip, lsl fp - 6d8: 0005021a andeq r0, r5, sl, lsl r2 - 6dc: 00000101 andeq r0, r0, r1, lsl #2 - 6e0: 000000d1 ldrdeq r0, [r0], -r1 - 6e4: 008e0002 addeq r0, lr, r2 - 6e8: 01020000 tsteq r2, r0 - 6ec: 000a0500 andeq r0, sl, r0, lsl #10 - 6f0: 01010101 tsteq r1, r1, lsl #2 - 6f4: 00000000 andeq r0, r0, r0 - 6f8: 445c3a43 ldrbmi r3, [ip], #-2627 - 6fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 700: 73746e65 cmnvc r4, #1616 ; 0x650 - 704: 646e6120 strbtvs r6, [lr], #-288 - 708: 74655320 strbtvc r5, [r5], #-800 - 70c: 676e6974 undefined - 710: 616d5c73 smcvs 54723 - 714: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 718: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 71c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 720: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 724: 775c7374 undefined - 728: 6f632d73 svcvs 0x00632d73 - 72c: 6f72746e svcvs 0x0072746e - 730: 65575c6c ldrbvs r5, [r7, #-3180] - 734: 65687461 strbvs r7, [r8, #-1121]! - 738: 74532072 ldrbvc r2, [r3], #-114 - 73c: 6f697461 svcvs 0x00697461 - 740: 6f43206e svcvs 0x0043206e - 744: 6f72746e svcvs 0x0072746e - 748: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 74c: 7070415c rsbsvc r4, r0, ip, asr r1 - 750: 6163696c cmnvs r3, ip, ror #18 - 754: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 758: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 75c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 760: 005c7365 subseq r7, ip, r5, ror #6 - 764: 73694400 cmnvc r9, #0 ; 0x0 - 768: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - 76c: 0100632e tsteq r0, lr, lsr #6 - 770: c5d0bea8 ldrbgt fp, [r0, #3752] - 774: 000ad804 andeq sp, sl, r4, lsl #16 - 778: 56020500 strpl r0, [r2], -r0, lsl #10 - 77c: 0500401b streq r4, [r0, #-27] - 780: 03bd0301 undefined instruction 0x03bd0301 - 784: 1211050e andsne r0, r1, #58720256 ; 0x3800000 - 788: 1d0d0305 stcne 3, cr0, [sp, #-20] - 78c: 1c050515 cfstr32ne mvfx0, [r5], {21} - 790: 12070515 andne r0, r7, #88080384 ; 0x5400000 - 794: 05170405 ldreq r0, [r7, #-1029] - 798: 13030307 movwne r0, #13063 ; 0x3307 - 79c: 7e030505 cfsh32vc mvfx0, mvfx3, #5 - 7a0: 2c010319 stccs 3, cr0, [r1], {25} - 7a4: 051c0705 ldreq r0, [ip, #-1797] - 7a8: 05292109 streq r2, [r9, #-265]! - 7ac: 1d010301 stcne 3, cr0, [r1, #-4] - 7b0: 01000702 tsteq r0, r2, lsl #14 - 7b4: 00000001 andeq r0, r0, r1 - 7b8: 000000e4 andeq r0, r0, r4, ror #1 - 7bc: 008e0002 addeq r0, lr, r2 - 7c0: 01020000 tsteq r2, r0 - 7c4: 000a0500 andeq r0, sl, r0, lsl #10 - 7c8: 01010101 tsteq r1, r1, lsl #2 - 7cc: 00000000 andeq r0, r0, r0 - 7d0: 445c3a43 ldrbmi r3, [ip], #-2627 - 7d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7d8: 73746e65 cmnvc r4, #1616 ; 0x650 - 7dc: 646e6120 strbtvs r6, [lr], #-288 - 7e0: 74655320 strbtvc r5, [r5], #-800 - 7e4: 676e6974 undefined - 7e8: 616d5c73 smcvs 54723 - 7ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 7f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 7f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7fc: 775c7374 undefined - 800: 6f632d73 svcvs 0x00632d73 - 804: 6f72746e svcvs 0x0072746e - 808: 65575c6c ldrbvs r5, [r7, #-3180] - 80c: 65687461 strbvs r7, [r8, #-1121]! - 810: 74532072 ldrbvc r2, [r3], #-114 - 814: 6f697461 svcvs 0x00697461 - 818: 6f43206e svcvs 0x0043206e - 81c: 6f72746e svcvs 0x0072746e - 820: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 824: 7070415c rsbsvc r4, r0, ip, asr r1 - 828: 6163696c cmnvs r3, ip, ror #18 - 82c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 830: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 834: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 838: 005c7365 subseq r7, ip, r5, ror #6 - 83c: 73694400 cmnvc r9, #0 ; 0x0 - 840: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - 844: 0100632e tsteq r0, lr, lsr #6 - 848: c5d0bea8 ldrbgt fp, [r0, #3752] - 84c: 000ad804 andeq sp, sl, r4, lsl #16 - 850: b4020500 strlt r0, [r2], #-1280 - 854: 0500401b streq r4, [r0, #-27] - 858: 03f7033d mvnseq r0, #-201326592 ; 0xf4000000 - 85c: 1702050e strne r0, [r2, -lr, lsl #10] - 860: 0105152e tsteq r5, lr, lsr #10 - 864: 13069e03 movwne r9, #28163 ; 0x6e03 - 868: 050b0a05 streq r0, [fp, #-2565] - 86c: 05051413 streq r1, [r5, #-1043] - 870: 051a1a17 ldreq r1, [sl, #-2583] - 874: 0f7d0303 svceq 0x007d0303 - 878: 05270303 streq r0, [r7, #-771]! - 87c: 03051505 movweq r1, #21765 ; 0x5505 - 880: 030e0512 movweq r0, #58642 ; 0xe512 - 884: 051479d2 ldreq r7, [r4, #-2514] - 888: 05241104 streq r1, [r4, #-260]! - 88c: 39051a03 stmdbcc r5, {r0, r1, r9, fp, ip} - 890: 050f7c03 streq r7, [pc, #-3075] ; fffffc95 - 894: 01050f13 tsteq r5, r3, lsl pc - 898: 022c0203 eoreq r0, ip, #805306368 ; 0x30000000 - 89c: 01010006 tsteq r1, r6 - 8a0: 0000012b andeq r0, r0, fp, lsr #2 - 8a4: 008e0002 addeq r0, lr, r2 - 8a8: 01020000 tsteq r2, r0 - 8ac: 000a0500 andeq r0, sl, r0, lsl #10 - 8b0: 01010101 tsteq r1, r1, lsl #2 - 8b4: 00000000 andeq r0, r0, r0 - 8b8: 445c3a43 ldrbmi r3, [ip], #-2627 - 8bc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 8c0: 73746e65 cmnvc r4, #1616 ; 0x650 - 8c4: 646e6120 strbtvs r6, [lr], #-288 - 8c8: 74655320 strbtvc r5, [r5], #-800 - 8cc: 676e6974 undefined - 8d0: 616d5c73 smcvs 54723 - 8d4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 8d8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 8dc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 8e0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 8e4: 775c7374 undefined - 8e8: 6f632d73 svcvs 0x00632d73 - 8ec: 6f72746e svcvs 0x0072746e - 8f0: 65575c6c ldrbvs r5, [r7, #-3180] - 8f4: 65687461 strbvs r7, [r8, #-1121]! - 8f8: 74532072 ldrbvc r2, [r3], #-114 - 8fc: 6f697461 svcvs 0x00697461 - 900: 6f43206e svcvs 0x0043206e - 904: 6f72746e svcvs 0x0072746e - 908: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 90c: 7070415c rsbsvc r4, r0, ip, asr r1 - 910: 6163696c cmnvs r3, ip, ror #18 - 914: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 918: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 91c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 920: 005c7365 subseq r7, ip, r5, ror #6 - 924: 73694400 cmnvc r9, #0 ; 0x0 - 928: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - 92c: 0100632e tsteq r0, lr, lsr #6 - 930: c5d0bea8 ldrbgt fp, [r0, #3752] - 934: 000ad804 andeq sp, sl, r4, lsl #16 - 938: 24020500 strcs r0, [r2], #-1280 - 93c: 0500401c streq r4, [r0, #-28] - 940: 04990301 ldreq r0, [r9], #769 - 944: 1b0b050e blne 2c1d84 - 948: 050f1905 streq r1, [pc, #-2309] ; 4b - 94c: 13050b0b movwne r0, #23307 ; 0x5b0b - 950: 0a17051e beq 5c1dd0 - 954: 05130305 ldreq r0, [r3, #-773] - 958: 05051602 streq r1, [r5, #-1538] - 95c: 15070515 strne r0, [r7, #-1301] - 960: 160a051a undefined - 964: 1a1f0705 bne 7c2580 - 968: 05160a05 ldreq r0, [r6, #-2565] - 96c: 131a1a07 tstne sl, #28672 ; 0x7000 - 970: 1f5b0905 svcne 0x005b0905 - 974: 2007052b andcs r0, r7, fp, lsr #10 - 978: 78031605 stmdavc r3, {r0, r2, r9, sl, ip} - 97c: 190e0523 stmdbne lr, {r0, r1, r5, r8, sl} - 980: 06030505 streq r0, [r3], -r5, lsl #10 - 984: 07052422 streq r2, [r5, -r2, lsr #8] - 988: 05051f1b streq r1, [r5, #-3867] - 98c: 2c197e03 ldccs 14, cr7, [r9], {3} - 990: 05160705 ldreq r0, [r6, #-1797] - 994: 2d7f0305 ldclcs 3, cr0, [pc, #-20]! - 998: 0805152b stmdaeq r5, {r0, r1, r3, r5, r8, sl, ip} - 99c: 2007052a andcs r0, r7, sl, lsr #10 - 9a0: 0a051029 beq 144a4c - 9a4: 1a05051b bne 141e18 - 9a8: 1607051a undefined - 9ac: 7f030505 svcvc 0x00030505 - 9b0: 20151d2d andscs r1, r5, sp, lsr #26 - 9b4: 1f1b0705 svcne 0x001b0705 - 9b8: 7e030505 cfsh32vc mvfx0, mvfx3, #5 - 9bc: 05102c19 ldreq r2, [r0, #-3097] - 9c0: 05052407 streq r2, [r5, #-1031] - 9c4: 05360203 ldreq r0, [r6, #-515]! - 9c8: 09022501 stmdbeq r2, {r0, r8, sl, sp} - 9cc: 00010100 andeq r0, r1, r0, lsl #2 - 9d0: 00000148 andeq r0, r0, r8, asr #2 - 9d4: 008e0002 addeq r0, lr, r2 - 9d8: 01020000 tsteq r2, r0 - 9dc: 000a0500 andeq r0, sl, r0, lsl #10 - 9e0: 01010101 tsteq r1, r1, lsl #2 - 9e4: 00000000 andeq r0, r0, r0 - 9e8: 445c3a43 ldrbmi r3, [ip], #-2627 - 9ec: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 9f0: 73746e65 cmnvc r4, #1616 ; 0x650 - 9f4: 646e6120 strbtvs r6, [lr], #-288 - 9f8: 74655320 strbtvc r5, [r5], #-800 - 9fc: 676e6974 undefined - a00: 616d5c73 smcvs 54723 - a04: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a08: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a0c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a10: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a14: 775c7374 undefined - a18: 6f632d73 svcvs 0x00632d73 - a1c: 6f72746e svcvs 0x0072746e - a20: 65575c6c ldrbvs r5, [r7, #-3180] - a24: 65687461 strbvs r7, [r8, #-1121]! - a28: 74532072 ldrbvc r2, [r3], #-114 - a2c: 6f697461 svcvs 0x00697461 - a30: 6f43206e svcvs 0x0043206e - a34: 6f72746e svcvs 0x0072746e - a38: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - a3c: 7070415c rsbsvc r4, r0, ip, asr r1 - a40: 6163696c cmnvs r3, ip, ror #18 - a44: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - a48: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - a4c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - a50: 005c7365 subseq r7, ip, r5, ror #6 - a54: 73694400 cmnvc r9, #0 ; 0x0 - a58: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - a5c: 0100632e tsteq r0, lr, lsr #6 - a60: c5d0bea8 ldrbgt fp, [r0, #3752] - a64: 000ad804 andeq sp, sl, r4, lsl #16 - a68: bc020500 cfstr32lt mvfx0, [r2], {0} - a6c: 0500401d streq r4, [r0, #-29] - a70: 04ef0301 strbteq r0, [pc], #769 ; a78 <__USR_stack_size+0x278> - a74: 160b050e strne r0, [fp], -lr, lsl #10 - a78: 050f1905 streq r1, [pc, #-2309] ; 17b <__ABT_stack_size+0x7b> - a7c: 13050b0b movwne r0, #23307 ; 0x5b0b - a80: 0a17051e beq 5c1f00 - a84: 05241405 streq r1, [r4, #-1029]! - a88: 0e020303 cdpeq 3, 0, cr0, cr2, cr3, {0} - a8c: 05160205 ldreq r0, [r6, #-517] - a90: 05202405 streq r2, [r0, #-1029]! - a94: 09051107 stmdbeq r5, {r0, r1, r2, r8, ip} - a98: 0c051a25 stceq 10, cr1, [r5], {37} - a9c: 29090516 stmdbcs r9, {r1, r2, r4, r8, sl} - aa0: 16070515 undefined - aa4: 05240905 streq r0, [r4, #-2309]! - aa8: 351f570b ldrcc r5, [pc, #-1803] ; 3a5 <__ABT_stack_size+0x2a5> - aac: 05200905 streq r0, [r0, #-2309]! - ab0: 28770318 ldmdacs r7!, {r3, r4, r8, r9}^ - ab4: 050f1005 streq r1, [pc, #-5] ; ab7 <__USR_stack_size+0x2b7> - ab8: 13070307 movwne r0, #29447 ; 0x7307 - abc: 051b0905 ldreq r0, [fp, #-2309] - ac0: 25053407 strcs r3, [r5, #-1031] - ac4: 05236603 streq r6, [r3, #-1539]! - ac8: 05051917 streq r1, [r5, #-2327] - acc: 0b361903 bleq d86ee0 - ad0: 1f1d0705 svcne 0x001d0705 - ad4: 7d030505 cfstr32vc mvfx0, [r3, #-20] - ad8: 2c010319 stccs 3, cr0, [r1], {25} - adc: 05120705 ldreq r0, [r2, #-1797] - ae0: 2d7f0305 ldclcs 3, cr0, [pc, #-20]! - ae4: 1208052b andne r0, r8, #180355072 ; 0xac00000 - ae8: 38250705 stmdacc r5!, {r0, r2, r8, r9, sl} - aec: 1b0a0524 blne 281f84 - af0: 24150505 ldrcs r0, [r5], #-1285 - af4: 05160705 ldreq r0, [r6, #-1797] - af8: 2d7f0305 ldclcs 3, cr0, [pc, #-20]! - afc: 0520151d streq r1, [r0, #-1309]! - b00: 051f1b07 ldreq r1, [pc, #-2823] ; 1 - b04: 197e0305 ldmdbne lr!, {r0, r2, r8, r9}^ - b08: 1607052c strne r0, [r7], -ip, lsr #10 - b0c: 7f030505 svcvc 0x00030505 - b10: 301a262d andscc r2, sl, sp, lsr #12 - b14: 02250105 eoreq r0, r5, #1073741825 ; 0x40000001 - b18: 0101000a tsteq r1, sl - b1c: 000000e2 andeq r0, r0, r2, ror #1 - b20: 008e0002 addeq r0, lr, r2 - b24: 01020000 tsteq r2, r0 - b28: 000a0500 andeq r0, sl, r0, lsl #10 - b2c: 01010101 tsteq r1, r1, lsl #2 - b30: 00000000 andeq r0, r0, r0 - b34: 445c3a43 ldrbmi r3, [ip], #-2627 - b38: 6d75636f ldclvs 3, cr6, [r5, #-444]! - b3c: 73746e65 cmnvc r4, #1616 ; 0x650 - b40: 646e6120 strbtvs r6, [lr], #-288 - b44: 74655320 strbtvc r5, [r5], #-800 - b48: 676e6974 undefined - b4c: 616d5c73 smcvs 54723 - b50: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - b54: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - b58: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - b5c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - b60: 775c7374 undefined - b64: 6f632d73 svcvs 0x00632d73 - b68: 6f72746e svcvs 0x0072746e - b6c: 65575c6c ldrbvs r5, [r7, #-3180] - b70: 65687461 strbvs r7, [r8, #-1121]! - b74: 74532072 ldrbvc r2, [r3], #-114 - b78: 6f697461 svcvs 0x00697461 - b7c: 6f43206e svcvs 0x0043206e - b80: 6f72746e svcvs 0x0072746e - b84: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - b88: 7070415c rsbsvc r4, r0, ip, asr r1 - b8c: 6163696c cmnvs r3, ip, ror #18 - b90: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - b94: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - b98: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - b9c: 005c7365 subseq r7, ip, r5, ror #6 - ba0: 73694400 cmnvc r9, #0 ; 0x0 - ba4: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - ba8: 0100632e tsteq r0, lr, lsr #6 - bac: c5d0bea8 ldrbgt fp, [r0, #3752] - bb0: 000ad804 andeq sp, sl, r4, lsl #16 - bb4: ac020500 cfstr32ge mvfx0, [r2], {0} - bb8: 0500401f streq r4, [r0, #-31] - bbc: 06980301 ldreq r0, [r8], r1, lsl #6 - bc0: 1603050e strne r0, [r3], -lr, lsl #10 - bc4: 01051f1b tsteq r5, fp, lsl pc - bc8: 0e02f903 cdpeq 9, 0, cr15, cr2, cr3, {0} - bcc: 09030505 stmdbeq r3, {r0, r2, r8, sl} - bd0: 0305240e movweq r2, #21518 ; 0x540e - bd4: 237cf603 cmnpcs ip, #3145728 ; 0x300000 - bd8: 8a030105 bhi c0ff4 - bdc: 03050e03 movweq r0, #24067 ; 0x5e03 - be0: 1e7cf303 cdpne 3, 7, cr15, cr12, cr3, {0} - be4: 0301051f movweq r0, #5407 ; 0x151f - be8: 050e02b9 streq r0, [lr, #-697] - bec: 0e080305 cdpeq 3, 0, cr0, cr8, cr5, {0} - bf0: 03030524 movweq r0, #13604 ; 0x3524 - bf4: 05237db7 streq r7, [r3, #-3511]! - bf8: 02c80301 sbceq r0, r8, #67108864 ; 0x4000000 - bfc: 0003020e andeq r0, r3, lr, lsl #4 - c00: 00000101 andeq r0, r0, r1, lsl #2 - c04: 000000de ldrdeq r0, [r0], -lr - c08: 008e0002 addeq r0, lr, r2 - c0c: 01020000 tsteq r2, r0 - c10: 000a0500 andeq r0, sl, r0, lsl #10 - c14: 01010101 tsteq r1, r1, lsl #2 - c18: 00000000 andeq r0, r0, r0 - c1c: 445c3a43 ldrbmi r3, [ip], #-2627 - c20: 6d75636f ldclvs 3, cr6, [r5, #-444]! - c24: 73746e65 cmnvc r4, #1616 ; 0x650 - c28: 646e6120 strbtvs r6, [lr], #-288 - c2c: 74655320 strbtvc r5, [r5], #-800 - c30: 676e6974 undefined - c34: 616d5c73 smcvs 54723 - c38: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - c3c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - c40: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - c44: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - c48: 775c7374 undefined - c4c: 6f632d73 svcvs 0x00632d73 - c50: 6f72746e svcvs 0x0072746e - c54: 65575c6c ldrbvs r5, [r7, #-3180] - c58: 65687461 strbvs r7, [r8, #-1121]! - c5c: 74532072 ldrbvc r2, [r3], #-114 - c60: 6f697461 svcvs 0x00697461 - c64: 6f43206e svcvs 0x0043206e - c68: 6f72746e svcvs 0x0072746e - c6c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - c70: 7070415c rsbsvc r4, r0, ip, asr r1 - c74: 6163696c cmnvs r3, ip, ror #18 - c78: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - c7c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - c80: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - c84: 005c7365 subseq r7, ip, r5, ror #6 - c88: 73694400 cmnvc r9, #0 ; 0x0 - c8c: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - c90: 0100632e tsteq r0, lr, lsr #6 - c94: c5d0bea8 ldrbgt fp, [r0, #3752] - c98: 000ad804 andeq sp, sl, r4, lsl #16 - c9c: fc020500 stc2 5, cr0, [r2], {0} - ca0: 0500401f streq r4, [r0, #-31] - ca4: 06b40301 ldrteq r0, [r4], r1, lsl #6 - ca8: 1603050e strne r0, [r3], -lr, lsl #10 - cac: 051f1a1b ldreq r1, [pc, #-2587] ; 299 <__ABT_stack_size+0x199> - cb0: 02dc0301 sbcseq r0, ip, #67108864 ; 0x4000000 - cb4: 0305050e movweq r0, #21774 ; 0x550e - cb8: 05240e09 streq r0, [r4, #-3593]! - cbc: 7d930303 ldcvc 3, cr0, [r3, #12] - cc0: 03010523 movweq r0, #5411 ; 0x1523 - cc4: 030e02ed movweq r0, #58093 ; 0xe2ed - cc8: 050a7fb1 streq r7, [sl, #-4017] - ccc: 0e080305 cdpeq 3, 0, cr0, cr8, cr5, {0} - cd0: 03030524 movweq r0, #13604 ; 0x3524 - cd4: 05237dd2 streq r7, [r3, #-3538]! - cd8: 02ad0301 adceq r0, sp, #67108864 ; 0x4000000 - cdc: 0303050e movweq r0, #13582 ; 0x350e - ce0: 001e7dd0 ldrsbeq r7, [lr], -r0 - ce4: 00000101 andeq r0, r0, r1, lsl #2 - ce8: 000000e3 andeq r0, r0, r3, ror #1 - cec: 008e0002 addeq r0, lr, r2 - cf0: 01020000 tsteq r2, r0 - cf4: 000a0500 andeq r0, sl, r0, lsl #10 - cf8: 01010101 tsteq r1, r1, lsl #2 - cfc: 00000000 andeq r0, r0, r0 - d00: 445c3a43 ldrbmi r3, [ip], #-2627 - d04: 6d75636f ldclvs 3, cr6, [r5, #-444]! - d08: 73746e65 cmnvc r4, #1616 ; 0x650 - d0c: 646e6120 strbtvs r6, [lr], #-288 - d10: 74655320 strbtvc r5, [r5], #-800 - d14: 676e6974 undefined - d18: 616d5c73 smcvs 54723 - d1c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - d20: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - d24: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - d28: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - d2c: 775c7374 undefined - d30: 6f632d73 svcvs 0x00632d73 - d34: 6f72746e svcvs 0x0072746e - d38: 65575c6c ldrbvs r5, [r7, #-3180] - d3c: 65687461 strbvs r7, [r8, #-1121]! - d40: 74532072 ldrbvc r2, [r3], #-114 - d44: 6f697461 svcvs 0x00697461 - d48: 6f43206e svcvs 0x0043206e - d4c: 6f72746e svcvs 0x0072746e - d50: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - d54: 7070415c rsbsvc r4, r0, ip, asr r1 - d58: 6163696c cmnvs r3, ip, ror #18 - d5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - d60: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - d64: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - d68: 005c7365 subseq r7, ip, r5, ror #6 - d6c: 73694400 cmnvc r9, #0 ; 0x0 - d70: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - d74: 0100632e tsteq r0, lr, lsr #6 - d78: c5d0bea8 ldrbgt fp, [r0, #3752] - d7c: 000ad804 andeq sp, sl, r4, lsl #16 - d80: 44020500 strmi r0, [r2], #-1280 - d84: 05004020 streq r4, [r0, #-32] - d88: 06be0303 ldrteq r0, [lr], r3, lsl #6 - d8c: 0a64031d beq 1901a08 - d90: 03221903 teqeq r2, #49152 ; 0xc000 - d94: 19030a64 stmdbne r3, {r2, r5, r6, r9, fp} - d98: 0a640322 beq 1901a28 - d9c: d3030105 movwle r0, #12549 ; 0x3105 - da0: 05050e02 streq r0, [r5, #-3586] - da4: 050e0803 streq r0, [lr, #-2051] - da8: 0a740301 beq 1d019b4 - dac: 08030505 stmdaeq r3, {r0, r2, r8, sl} - db0: 050a290e streq r2, [sl, #-2318] - db4: 7db90303 ldcvc 3, cr0, [r9, #12]! - db8: 0a640328 beq 1901a60 - dbc: e3030105 movw r0, #12549 ; 0x3105 - dc0: 030a0e02 movweq r0, #44546 ; 0xae02 - dc4: 03197db7 tsteq r9, #11712 ; 0x2dc0 - dc8: 06020a63 streq r0, [r2], -r3, ror #20 - dcc: 00010100 andeq r0, r1, r0, lsl #2 - dd0: 000000af andeq r0, r0, pc, lsr #1 - dd4: 008e0002 addeq r0, lr, r2 - dd8: 01020000 tsteq r2, r0 - ddc: 000a0500 andeq r0, sl, r0, lsl #10 - de0: 01010101 tsteq r1, r1, lsl #2 - de4: 00000000 andeq r0, r0, r0 - de8: 445c3a43 ldrbmi r3, [ip], #-2627 - dec: 6d75636f ldclvs 3, cr6, [r5, #-444]! - df0: 73746e65 cmnvc r4, #1616 ; 0x650 - df4: 646e6120 strbtvs r6, [lr], #-288 - df8: 74655320 strbtvc r5, [r5], #-800 - dfc: 676e6974 undefined - e00: 616d5c73 smcvs 54723 - e04: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - e08: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - e0c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - e10: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - e14: 775c7374 undefined - e18: 6f632d73 svcvs 0x00632d73 - e1c: 6f72746e svcvs 0x0072746e - e20: 65575c6c ldrbvs r5, [r7, #-3180] - e24: 65687461 strbvs r7, [r8, #-1121]! - e28: 74532072 ldrbvc r2, [r3], #-114 - e2c: 6f697461 svcvs 0x00697461 - e30: 6f43206e svcvs 0x0043206e - e34: 6f72746e svcvs 0x0072746e - e38: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - e3c: 7070415c rsbsvc r4, r0, ip, asr r1 - e40: 6163696c cmnvs r3, ip, ror #18 - e44: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - e48: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - e4c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - e50: 005c7365 subseq r7, ip, r5, ror #6 - e54: 73694400 cmnvc r9, #0 ; 0x0 - e58: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - e5c: 0100632e tsteq r0, lr, lsr #6 - e60: c5d0bea8 ldrbgt fp, [r0, #3752] - e64: 000ad804 andeq sp, sl, r4, lsl #16 - e68: 84020500 strhi r0, [r2], #-1280 - e6c: 05004020 streq r4, [r0, #-32] - e70: 06d30301 ldrbeq r0, [r3], r1, lsl #6 - e74: 0c03050e cfstr32eq mvfx0, [r3], {14} - e78: 1605051b undefined - e7c: 07021815 smladeq r2, r5, r8, r1 - e80: 00010100 andeq r0, r1, r0, lsl #2 - e84: 000000ad andeq r0, r0, sp, lsr #1 - e88: 008e0002 addeq r0, lr, r2 - e8c: 01020000 tsteq r2, r0 - e90: 000a0500 andeq r0, sl, r0, lsl #10 - e94: 01010101 tsteq r1, r1, lsl #2 - e98: 00000000 andeq r0, r0, r0 - e9c: 445c3a43 ldrbmi r3, [ip], #-2627 - ea0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - ea4: 73746e65 cmnvc r4, #1616 ; 0x650 - ea8: 646e6120 strbtvs r6, [lr], #-288 - eac: 74655320 strbtvc r5, [r5], #-800 - eb0: 676e6974 undefined - eb4: 616d5c73 smcvs 54723 - eb8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - ebc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - ec0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - ec4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - ec8: 775c7374 undefined - ecc: 6f632d73 svcvs 0x00632d73 - ed0: 6f72746e svcvs 0x0072746e - ed4: 65575c6c ldrbvs r5, [r7, #-3180] - ed8: 65687461 strbvs r7, [r8, #-1121]! - edc: 74532072 ldrbvc r2, [r3], #-114 - ee0: 6f697461 svcvs 0x00697461 - ee4: 6f43206e svcvs 0x0043206e - ee8: 6f72746e svcvs 0x0072746e - eec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - ef0: 7070415c rsbsvc r4, r0, ip, asr r1 - ef4: 6163696c cmnvs r3, ip, ror #18 - ef8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - efc: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - f00: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - f04: 005c7365 subseq r7, ip, r5, ror #6 - f08: 73694400 cmnvc r9, #0 ; 0x0 - f0c: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - f10: 0100632e tsteq r0, lr, lsr #6 - f14: c5d0bea8 ldrbgt fp, [r0, #3752] - f18: 000ad804 andeq sp, sl, r4, lsl #16 - f1c: a4020500 strge r0, [r2], #-1280 - f20: 05004020 streq r4, [r0, #-32] - f24: 078a0301 streq r0, [sl, r1, lsl #6] - f28: 1105050e tstne r5, lr, lsl #10 - f2c: 1a01051f bne 423b0 - f30: 01000302 tsteq r0, r2, lsl #6 - f34: 00000001 andeq r0, r0, r1 - f38: 00000122 andeq r0, r0, r2, lsr #2 - f3c: 008e0002 addeq r0, lr, r2 - f40: 01020000 tsteq r2, r0 - f44: 000a0500 andeq r0, sl, r0, lsl #10 - f48: 01010101 tsteq r1, r1, lsl #2 - f4c: 00000000 andeq r0, r0, r0 - f50: 445c3a43 ldrbmi r3, [ip], #-2627 - f54: 6d75636f ldclvs 3, cr6, [r5, #-444]! - f58: 73746e65 cmnvc r4, #1616 ; 0x650 - f5c: 646e6120 strbtvs r6, [lr], #-288 - f60: 74655320 strbtvc r5, [r5], #-800 - f64: 676e6974 undefined - f68: 616d5c73 smcvs 54723 - f6c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - f70: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - f74: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - f78: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - f7c: 775c7374 undefined - f80: 6f632d73 svcvs 0x00632d73 - f84: 6f72746e svcvs 0x0072746e - f88: 65575c6c ldrbvs r5, [r7, #-3180] - f8c: 65687461 strbvs r7, [r8, #-1121]! - f90: 74532072 ldrbvc r2, [r3], #-114 - f94: 6f697461 svcvs 0x00697461 - f98: 6f43206e svcvs 0x0043206e - f9c: 6f72746e svcvs 0x0072746e - fa0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - fa4: 7070415c rsbsvc r4, r0, ip, asr r1 - fa8: 6163696c cmnvs r3, ip, ror #18 - fac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - fb0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - fb4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - fb8: 005c7365 subseq r7, ip, r5, ror #6 - fbc: 73694400 cmnvc r9, #0 ; 0x0 - fc0: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - fc4: 0100632e tsteq r0, lr, lsr #6 - fc8: c5d0bea8 ldrbgt fp, [r0, #3752] - fcc: 000ad804 andeq sp, sl, r4, lsl #16 - fd0: ba020500 blt 823d8 - fd4: 05004020 streq r4, [r0, #-32] - fd8: 079c0301 ldreq r0, [ip, r1, lsl #6] - fdc: 2203050e andcs r0, r3, #58720256 ; 0x3800000 - fe0: 152c0103 strne r0, [ip, #-259]! - fe4: 42291a16 eormi r1, r9, #90112 ; 0x16000 - fe8: 03010516 movweq r0, #5398 ; 0x1516 - fec: 050e02a1 streq r0, [lr, #-673] - ff0: 1f1f0c03 svcne 0x001f0c03 - ff4: 051a1f1a ldreq r1, [sl, #-3866] - ff8: 0e100301 cdpeq 3, 1, cr0, cr0, cr1, {0} - ffc: 050b1405 streq r1, [fp, #-1029] - 1000: 0e130305 cdpeq 3, 1, cr0, cr3, cr5, {0} - 1004: 03050b1f movweq r0, #23327 ; 0x5b1f - 1008: 051e5303 ldreq r5, [lr, #-771] - 100c: 0e2a0305 cdpeq 3, 2, cr0, cr10, cr5, {0} - 1010: 0303050e movweq r0, #13582 ; 0x350e - 1014: 031f1e4f tsteq pc, #1264 ; 0x4f0 - 1018: 03197dd2 tsteq r9, #13440 ; 0x3480 - 101c: 050e02ab streq r0, [lr, #-683] - 1020: 0a750301 beq 1d41c2c - 1024: 1f0c0305 svcne 0x000c0305 - 1028: 1a1f1a1f bne 7c78ac - 102c: 10030105 andne r0, r3, r5, lsl #2 - 1030: 0b14050e bleq 502470 - 1034: 13030505 movwne r0, #13573 ; 0x3505 - 1038: 051f1f0e ldreq r1, [pc, #-3854] ; 132 <__ABT_stack_size+0x32> - 103c: 1e530303 cdpne 3, 5, cr0, cr3, cr3, {0} - 1040: 2a030505 bcs c245c - 1044: 03050e0e movweq r0, #24078 ; 0x5e0e - 1048: 1f1e4f03 svcne 0x001e4f03 - 104c: 7dd3031a ldclvc 3, cr0, [r3, #104] - 1050: 1f1f1a23 svcne 0x001f1a23 - 1054: 0c05052f cfstr32eq mvfx0, [r5], {47} - 1058: 0006022c andeq r0, r6, ip, lsr #4 - 105c: 00000101 andeq r0, r0, r1, lsl #2 - 1060: 000000ea andeq r0, r0, sl, ror #1 - 1064: 008e0002 addeq r0, lr, r2 - 1068: 01020000 tsteq r2, r0 - 106c: 000a0500 andeq r0, sl, r0, lsl #10 - 1070: 01010101 tsteq r1, r1, lsl #2 - 1074: 00000000 andeq r0, r0, r0 - 1078: 445c3a43 ldrbmi r3, [ip], #-2627 - 107c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1080: 73746e65 cmnvc r4, #1616 ; 0x650 - 1084: 646e6120 strbtvs r6, [lr], #-288 - 1088: 74655320 strbtvc r5, [r5], #-800 - 108c: 676e6974 undefined - 1090: 616d5c73 smcvs 54723 - 1094: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1098: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 109c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 10a0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 10a4: 775c7374 undefined - 10a8: 6f632d73 svcvs 0x00632d73 - 10ac: 6f72746e svcvs 0x0072746e - 10b0: 65575c6c ldrbvs r5, [r7, #-3180] - 10b4: 65687461 strbvs r7, [r8, #-1121]! - 10b8: 74532072 ldrbvc r2, [r3], #-114 - 10bc: 6f697461 svcvs 0x00697461 - 10c0: 6f43206e svcvs 0x0043206e - 10c4: 6f72746e svcvs 0x0072746e - 10c8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 10cc: 7070415c rsbsvc r4, r0, ip, asr r1 - 10d0: 6163696c cmnvs r3, ip, ror #18 - 10d4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 10d8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 10dc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 10e0: 005c7365 subseq r7, ip, r5, ror #6 - 10e4: 73694400 cmnvc r9, #0 ; 0x0 - 10e8: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - 10ec: 0100632e tsteq r0, lr, lsr #6 - 10f0: c5d0bea8 ldrbgt fp, [r0, #3752] - 10f4: 000ad804 andeq sp, sl, r4, lsl #16 - 10f8: e4020500 str r0, [r2], #-1280 - 10fc: 05004021 streq r4, [r0, #-33] - 1100: 07cc0301 strbeq r0, [ip, r1, lsl #6] - 1104: 1a0c050e bne 302544 - 1108: 030e0305 movweq r0, #58117 ; 0xe305 - 110c: 056a2c01 strbeq r2, [sl, #-3073]! - 1110: 0e120307 cdpeq 3, 1, cr0, cr2, cr7, {0} - 1114: 7a030905 bvc c3530 - 1118: 417d0337 cmnmi sp, r7, lsr r3 - 111c: 07030505 streq r0, [r3, -r5, lsl #10] - 1120: 0303055e movweq r0, #13662 ; 0x355e - 1124: 05050f6e streq r0, [r5, #-3950] - 1128: 01051a16 tsteq r5, r6, lsl sl - 112c: 0e01d603 cfmadd32eq mvax0, mvfx13, mvfx1, mvfx3 - 1130: 0c0e0305 stceq 3, cr0, [lr], {5} - 1134: 051f331a ldreq r3, [pc, #-794] ; e22 <__USR_stack_size+0x622> - 1138: 7e9f0305 cdpvc 3, 9, cr0, cr15, cr5, {0} - 113c: 03010528 movweq r0, #5416 ; 0x1528 - 1140: 050e01de streq r0, [lr, #-478] - 1144: 7e9f0305 cdpvc 3, 9, cr0, cr15, cr5, {0} - 1148: 0002022d andeq r0, r2, sp, lsr #4 - 114c: 00000101 andeq r0, r0, r1, lsl #2 - 1150: 00000022 andeq r0, r0, r2, lsr #32 - 1154: 00100002 andseq r0, r0, r2 - 1158: 01020000 tsteq r2, r0 - 115c: 000a0500 andeq r0, sl, r0, lsl #10 - 1160: 01010101 tsteq r1, r1, lsl #2 - 1164: 00000000 andeq r0, r0, r0 - 1168: 05000000 streq r0, [r0] - 116c: 4022ac02 eormi sl, r2, r2, lsl #24 - 1170: 00120200 andseq r0, r2, r0, lsl #4 - 1174: 00000101 andeq r0, r0, r1, lsl #2 - 1178: 000000d1 ldrdeq r0, [r0], -r1 - 117c: 008e0002 addeq r0, lr, r2 - 1180: 01020000 tsteq r2, r0 - 1184: 000a0500 andeq r0, sl, r0, lsl #10 - 1188: 01010101 tsteq r1, r1, lsl #2 - 118c: 00000000 andeq r0, r0, r0 - 1190: 445c3a43 ldrbmi r3, [ip], #-2627 - 1194: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1198: 73746e65 cmnvc r4, #1616 ; 0x650 - 119c: 646e6120 strbtvs r6, [lr], #-288 - 11a0: 74655320 strbtvc r5, [r5], #-800 - 11a4: 676e6974 undefined - 11a8: 616d5c73 smcvs 54723 - 11ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 11b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 11b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 11b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 11bc: 775c7374 undefined - 11c0: 6f632d73 svcvs 0x00632d73 - 11c4: 6f72746e svcvs 0x0072746e - 11c8: 65575c6c ldrbvs r5, [r7, #-3180] - 11cc: 65687461 strbvs r7, [r8, #-1121]! - 11d0: 74532072 ldrbvc r2, [r3], #-114 - 11d4: 6f697461 svcvs 0x00697461 - 11d8: 6f43206e svcvs 0x0043206e - 11dc: 6f72746e svcvs 0x0072746e - 11e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 11e4: 7070415c rsbsvc r4, r0, ip, asr r1 - 11e8: 6163696c cmnvs r3, ip, ror #18 - 11ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 11f0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 11f4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 11f8: 005c7365 subseq r7, ip, r5, ror #6 - 11fc: 73694400 cmnvc r9, #0 ; 0x0 - 1200: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - 1204: 0100632e tsteq r0, lr, lsr #6 - 1208: c5d0bea8 ldrbgt fp, [r0, #3752] - 120c: 000ad804 andeq sp, sl, r4, lsl #16 - 1210: d0020500 andle r0, r2, r0, lsl #10 - 1214: 05004022 streq r4, [r0, #-34] - 1218: 08800301 stmeq r0, {r0, r8, r9} - 121c: 2103050e tstcs r3, lr, lsl #10 - 1220: b3030105 movwlt r0, #12549 ; 0x3105 - 1224: 03050e01 movweq r0, #24065 ; 0x5e01 - 1228: 291a0c0e ldmdbcs sl, {r1, r2, r3, sl, fp} - 122c: 7ec10324 cdpvc 3, 12, cr0, cr1, cr4, {1} - 1230: 0301051e movweq r0, #5406 ; 0x151e - 1234: 050e01bc streq r0, [lr, #-444] - 1238: 7ec20305 cdpvc 3, 12, cr0, cr2, cr5, {0} - 123c: 0327050f teqeq r7, #62914560 ; 0x3c00000 - 1240: 1805197e stmdane r5, {r1, r2, r3, r4, r5, r6, r8, fp, ip} - 1244: 18010519 stmdane r1, {r0, r3, r4, r8, sl} - 1248: 01000502 tsteq r0, r2, lsl #10 - 124c: 00000001 andeq r0, r0, r1 - 1250: 000000c3 andeq r0, r0, r3, asr #1 - 1254: 008e0002 addeq r0, lr, r2 - 1258: 01020000 tsteq r2, r0 - 125c: 000a0500 andeq r0, sl, r0, lsl #10 - 1260: 01010101 tsteq r1, r1, lsl #2 - 1264: 00000000 andeq r0, r0, r0 - 1268: 445c3a43 ldrbmi r3, [ip], #-2627 - 126c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1270: 73746e65 cmnvc r4, #1616 ; 0x650 - 1274: 646e6120 strbtvs r6, [lr], #-288 - 1278: 74655320 strbtvc r5, [r5], #-800 - 127c: 676e6974 undefined - 1280: 616d5c73 smcvs 54723 - 1284: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1288: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 128c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1290: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1294: 775c7374 undefined - 1298: 6f632d73 svcvs 0x00632d73 - 129c: 6f72746e svcvs 0x0072746e - 12a0: 65575c6c ldrbvs r5, [r7, #-3180] - 12a4: 65687461 strbvs r7, [r8, #-1121]! - 12a8: 74532072 ldrbvc r2, [r3], #-114 - 12ac: 6f697461 svcvs 0x00697461 - 12b0: 6f43206e svcvs 0x0043206e - 12b4: 6f72746e svcvs 0x0072746e - 12b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 12bc: 7070415c rsbsvc r4, r0, ip, asr r1 - 12c0: 6163696c cmnvs r3, ip, ror #18 - 12c4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 12c8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 12cc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 12d0: 005c7365 subseq r7, ip, r5, ror #6 - 12d4: 73694400 cmnvc r9, #0 ; 0x0 - 12d8: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - 12dc: 0100632e tsteq r0, lr, lsr #6 - 12e0: c5d0bea8 ldrbgt fp, [r0, #3752] - 12e4: 000ad804 andeq sp, sl, r4, lsl #16 - 12e8: 18020500 stmdane r2, {r8, sl} - 12ec: 05004023 streq r4, [r0, #-35] - 12f0: 089a0301 ldmeq sl, {r0, r8, r9} - 12f4: 1303050e movwne r0, #13582 ; 0x350e - 12f8: 05170505 ldreq r0, [r7, #-1285] - 12fc: 15242007 strne r2, [r4, #-7]! - 1300: 13050515 movwne r0, #21781 ; 0x5515 - 1304: 152b0705 strne r0, [fp, #-1797]! - 1308: 17181a2c ldrne r1, [r8, -ip, lsr #20] - 130c: 03050515 movweq r0, #21781 ; 0x5515 - 1310: 04022201 streq r2, [r2], #-513 - 1314: 00010100 andeq r0, r1, r0, lsl #2 - 1318: 000000c7 andeq r0, r0, r7, asr #1 - 131c: 008e0002 addeq r0, lr, r2 - 1320: 01020000 tsteq r2, r0 - 1324: 000a0500 andeq r0, sl, r0, lsl #10 - 1328: 01010101 tsteq r1, r1, lsl #2 - 132c: 00000000 andeq r0, r0, r0 - 1330: 445c3a43 ldrbmi r3, [ip], #-2627 - 1334: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1338: 73746e65 cmnvc r4, #1616 ; 0x650 - 133c: 646e6120 strbtvs r6, [lr], #-288 - 1340: 74655320 strbtvc r5, [r5], #-800 - 1344: 676e6974 undefined - 1348: 616d5c73 smcvs 54723 - 134c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1350: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1354: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1358: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 135c: 775c7374 undefined - 1360: 6f632d73 svcvs 0x00632d73 - 1364: 6f72746e svcvs 0x0072746e - 1368: 65575c6c ldrbvs r5, [r7, #-3180] - 136c: 65687461 strbvs r7, [r8, #-1121]! - 1370: 74532072 ldrbvc r2, [r3], #-114 - 1374: 6f697461 svcvs 0x00697461 - 1378: 6f43206e svcvs 0x0043206e - 137c: 6f72746e svcvs 0x0072746e - 1380: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1384: 7070415c rsbsvc r4, r0, ip, asr r1 - 1388: 6163696c cmnvs r3, ip, ror #18 - 138c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1390: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1394: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1398: 005c7365 subseq r7, ip, r5, ror #6 - 139c: 73694400 cmnvc r9, #0 ; 0x0 - 13a0: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - 13a4: 0100632e tsteq r0, lr, lsr #6 - 13a8: c5d0bea8 ldrbgt fp, [r0, #3752] - 13ac: 000ad804 andeq sp, sl, r4, lsl #16 - 13b0: 00020500 andeq r0, r2, r0, lsl #10 - 13b4: 05000000 streq r0, [r0] - 13b8: 0abb0301 beq feec1fc4 - 13bc: 2203050e andcs r0, r3, #58720256 ; 0x3800000 - 13c0: 052c0103 streq r0, [ip, #-259]! - 13c4: 2e1a3405 cfmulscs mvf3, mvf10, mvf5 - 13c8: 0705291f smladeq r5, pc, r9, r2 - 13cc: 1c051a11 stcne 10, cr1, [r5], {17} - 13d0: 050f7d03 streq r7, [pc, #-3331] ; 6d5 <__FIQ_stack_size+0x2d5> - 13d4: 19050f12 stmdbne r5, {r1, r4, r8, r9, sl, fp} - 13d8: 050f7a03 streq r7, [pc, #-2563] ; 9dd <__USR_stack_size+0x1dd> - 13dc: 02020f10 andeq r0, r2, #64 ; 0x40 - 13e0: 00010100 andeq r0, r1, r0, lsl #2 - 13e4: 0000023b andeq r0, r0, fp, lsr r2 - 13e8: 02350002 eorseq r0, r5, #2 ; 0x2 - 13ec: 01010000 tsteq r1, r0 - 13f0: 000a0500 andeq r0, sl, r0, lsl #10 - 13f4: 01010101 tsteq r1, r1, lsl #2 - 13f8: 00000000 andeq r0, r0, r0 - 13fc: 445c3a43 ldrbmi r3, [ip], #-2627 - 1400: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1404: 73746e65 cmnvc r4, #1616 ; 0x650 - 1408: 646e6120 strbtvs r6, [lr], #-288 - 140c: 74655320 strbtvc r5, [r5], #-800 - 1410: 676e6974 undefined - 1414: 616d5c73 smcvs 54723 - 1418: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 141c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1420: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1424: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1428: 775c7374 undefined - 142c: 6f632d73 svcvs 0x00632d73 - 1430: 6f72746e svcvs 0x0072746e - 1434: 65575c6c ldrbvs r5, [r7, #-3180] - 1438: 65687461 strbvs r7, [r8, #-1121]! - 143c: 74532072 ldrbvc r2, [r3], #-114 - 1440: 6f697461 svcvs 0x00697461 - 1444: 6f43206e svcvs 0x0043206e - 1448: 6f72746e svcvs 0x0072746e - 144c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1450: 4d4c505c stclmi 0, cr5, [ip, #-368] - 1454: 746e495c strbtvc r4, [lr], #-2396 - 1458: 61667265 cmnvs r6, r5, ror #4 - 145c: 005c6563 subseq r6, ip, r3, ror #10 - 1460: 445c3a43 ldrbmi r3, [ip], #-2627 - 1464: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1468: 73746e65 cmnvc r4, #1616 ; 0x650 - 146c: 646e6120 strbtvs r6, [lr], #-288 - 1470: 74655320 strbtvc r5, [r5], #-800 - 1474: 676e6974 undefined - 1478: 616d5c73 smcvs 54723 - 147c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1480: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1484: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1488: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 148c: 775c7374 undefined - 1490: 6f632d73 svcvs 0x00632d73 - 1494: 6f72746e svcvs 0x0072746e - 1498: 65575c6c ldrbvs r5, [r7, #-3180] - 149c: 65687461 strbvs r7, [r8, #-1121]! - 14a0: 74532072 ldrbvc r2, [r3], #-114 - 14a4: 6f697461 svcvs 0x00697461 - 14a8: 6f43206e svcvs 0x0043206e - 14ac: 6f72746e svcvs 0x0072746e - 14b0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 14b4: 4d4c505c stclmi 0, cr5, [ip, #-368] - 14b8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 14bc: 65746e49 ldrbvs r6, [r4, #-3657]! - 14c0: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 14c4: 43005c65 movwmi r5, #3173 ; 0xc65 - 14c8: 6f445c3a svcvs 0x00445c3a - 14cc: 656d7563 strbvs r7, [sp, #-1379]! - 14d0: 2073746e rsbscs r7, r3, lr, ror #8 - 14d4: 20646e61 rsbcs r6, r4, r1, ror #28 - 14d8: 74746553 ldrbtvc r6, [r4], #-1363 - 14dc: 73676e69 cmnvc r7, #1680 ; 0x690 - 14e0: 6c616d5c stclvs 13, cr6, [r1], #-368 - 14e4: 61726976 cmnvs r2, r6, ror r9 - 14e8: 20794d5c rsbscs r4, r9, ip, asr sp - 14ec: 75636f44 strbvc r6, [r3, #-3908]! - 14f0: 746e656d strbtvc r6, [lr], #-1389 - 14f4: 73775c73 cmnvc r7, #29440 ; 0x7300 - 14f8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 14fc: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1500: 6165575c cmnvs r5, ip, asr r7 - 1504: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 1508: 61745320 cmnvs r4, r0, lsr #6 - 150c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1510: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 1514: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1518: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 151c: 43414d53 movtmi r4, #7507 ; 0x1d53 - 1520: 746e495c strbtvc r4, [lr], #-2396 - 1524: 61667265 cmnvs r6, r5, ror #4 - 1528: 005c6563 subseq r6, ip, r3, ror #10 - 152c: 445c3a43 ldrbmi r3, [ip], #-2627 - 1530: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1534: 73746e65 cmnvc r4, #1616 ; 0x650 - 1538: 646e6120 strbtvs r6, [lr], #-288 - 153c: 74655320 strbtvc r5, [r5], #-800 - 1540: 676e6974 undefined - 1544: 616d5c73 smcvs 54723 - 1548: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 154c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1550: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1554: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1558: 775c7374 undefined - 155c: 6f632d73 svcvs 0x00632d73 - 1560: 6f72746e svcvs 0x0072746e - 1564: 65575c6c ldrbvs r5, [r7, #-3180] - 1568: 65687461 strbvs r7, [r8, #-1121]! - 156c: 74532072 ldrbvc r2, [r3], #-114 - 1570: 6f697461 svcvs 0x00697461 - 1574: 6f43206e svcvs 0x0043206e - 1578: 6f72746e svcvs 0x0072746e - 157c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1580: 414d535c cmpmi sp, ip, asr r3 - 1584: 6f535c43 svcvs 0x00535c43 - 1588: 65637275 strbvs r7, [r3, #-629]! - 158c: 4500005c strmi r0, [r0, #-92] - 1590: 6465626d strbtvs r6, [r5], #-621 - 1594: 54646564 strbtpl r6, [r4], #-1380 - 1598: 73657079 cmnvc r5, #121 ; 0x79 - 159c: 0100682e tsteq r0, lr, lsr #16 - 15a0: c0d79d9e smullsgt r9, r7, lr, sp - 15a4: 52437704 subpl r7, r3, #1048576 ; 0x100000 - 15a8: 65525f4d ldrbvs r5, [r2, #-3917] - 15ac: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} - 15b0: 8ff80200 svchi 0x00f80200 - 15b4: 8104c0d7 ldrdhi ip, [r4, -r7] - 15b8: 6d724302 ldclvs 3, cr4, [r2, #-8]! - 15bc: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 - 15c0: c0d794f2 ldrshgt r9, [r7], #66 - 15c4: 5005cb04 andpl ip, r5, r4, lsl #22 - 15c8: 6674616c ldrbtvs r6, [r4], -ip, ror #2 - 15cc: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} - 15d0: f2020068 vhadd.s8 q0, q1, q12 - 15d4: 04c0d794 strbeq sp, [r0], #1940 - 15d8: 735303be cmpvc r3, #-134217726 ; 0xf8000002 - 15dc: 65525f69 ldrbvs r5, [r2, #-3945] - 15e0: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} - 15e4: 96cc0200 strbls r0, [ip], r0, lsl #4 - 15e8: c504ba91 strgt fp, [r4, #-2705] - 15ec: 6f6c4701 svcvs 0x006c4701 - 15f0: 446c6162 strbtmi r6, [ip], #-354 - 15f4: 2e736665 cdpcs 6, 7, cr6, cr3, cr5, {3} - 15f8: ba030068 blt c17a0 - 15fc: 04c5eea2 strbeq lr, [r5], #3746 - 1600: 4c480191 stfmie f0, [r8], {145} - 1604: 2e767244 cdpcs 2, 7, cr7, cr6, cr4, {2} - 1608: 88030068 stmdahi r3, {r3, r5, r6} - 160c: 04c1eef5 strbeq lr, [r1], #3829 - 1610: 4c48019a stfmie f0, [r8], {154} - 1614: 2e767244 cdpcs 2, 7, cr7, cr6, cr4, {2} - 1618: 80040063 andhi r0, r4, r3, rrx - 161c: 04c0d683 strbeq sp, [r0], #1667 - 1620: 000001a2 andeq r0, r0, r2, lsr #3 - 1624: 000000af andeq r0, r0, pc, lsr #1 - 1628: 008e0002 addeq r0, lr, r2 - 162c: 01010000 tsteq r1, r0 - 1630: 000a0500 andeq r0, sl, r0, lsl #10 - 1634: 01010101 tsteq r1, r1, lsl #2 - 1638: 00000000 andeq r0, r0, r0 - 163c: 445c3a43 ldrbmi r3, [ip], #-2627 - 1640: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1644: 73746e65 cmnvc r4, #1616 ; 0x650 - 1648: 646e6120 strbtvs r6, [lr], #-288 - 164c: 74655320 strbtvc r5, [r5], #-800 - 1650: 676e6974 undefined - 1654: 616d5c73 smcvs 54723 - 1658: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 165c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1660: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1664: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1668: 775c7374 undefined - 166c: 6f632d73 svcvs 0x00632d73 - 1670: 6f72746e svcvs 0x0072746e - 1674: 65575c6c ldrbvs r5, [r7, #-3180] - 1678: 65687461 strbvs r7, [r8, #-1121]! - 167c: 74532072 ldrbvc r2, [r3], #-114 - 1680: 6f697461 svcvs 0x00697461 - 1684: 6f43206e svcvs 0x0043206e - 1688: 6f72746e svcvs 0x0072746e - 168c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1690: 4d4c505c stclmi 0, cr5, [ip, #-368] - 1694: 756f535c strbvc r5, [pc, #-860]! ; 1340 <__USR_stack_size+0xb40> - 1698: 5c656372 stclpl 3, cr6, [r5], #-456 - 169c: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! - 16a0: 535c6e6f cmppl ip, #1776 ; 0x6f0 - 16a4: 005c7379 subseq r7, ip, r9, ror r3 - 16a8: 696e4900 stmdbvs lr!, {r8, fp, lr}^ - 16ac: 41492d74 cmpmi r9, r4, ror sp - 16b0: 00532e52 subseq r2, r3, r2, asr lr - 16b4: f2cff901 vqdmlal.s , d15, d1 - 16b8: 000004ce andeq r0, r0, lr, asr #9 - 16bc: 00020500 andeq r0, r2, r0, lsl #10 - 16c0: 03004000 movweq r4, #0 ; 0x0 - 16c4: 030e00c2 movweq r0, #57538 ; 0xe0c2 - 16c8: 1f1f2204 svcne 0x001f2204 - 16cc: 0103201f tsteq r3, pc, lsl r0 - 16d0: 04021f22 streq r1, [r2], #-3874 - 16d4: 00010100 andeq r0, r1, r0, lsl #2 - 16d8: 000000eb andeq r0, r0, fp, ror #1 - 16dc: 008e0002 addeq r0, lr, r2 - 16e0: 01010000 tsteq r1, r0 - 16e4: 000a0500 andeq r0, sl, r0, lsl #10 - 16e8: 01010101 tsteq r1, r1, lsl #2 - 16ec: 00000000 andeq r0, r0, r0 - 16f0: 445c3a43 ldrbmi r3, [ip], #-2627 - 16f4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 16f8: 73746e65 cmnvc r4, #1616 ; 0x650 - 16fc: 646e6120 strbtvs r6, [lr], #-288 - 1700: 74655320 strbtvc r5, [r5], #-800 - 1704: 676e6974 undefined - 1708: 616d5c73 smcvs 54723 - 170c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1710: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1714: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1718: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 171c: 775c7374 undefined - 1720: 6f632d73 svcvs 0x00632d73 - 1724: 6f72746e svcvs 0x0072746e - 1728: 65575c6c ldrbvs r5, [r7, #-3180] - 172c: 65687461 strbvs r7, [r8, #-1121]! - 1730: 74532072 ldrbvc r2, [r3], #-114 - 1734: 6f697461 svcvs 0x00697461 - 1738: 6f43206e svcvs 0x0043206e - 173c: 6f72746e svcvs 0x0072746e - 1740: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1744: 4d4c505c stclmi 0, cr5, [ip, #-368] - 1748: 756f535c strbvc r5, [pc, #-860]! ; 13f4 <__USR_stack_size+0xbf4> - 174c: 5c656372 stclpl 3, cr6, [r5], #-456 - 1750: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! - 1754: 535c6e6f cmppl ip, #1776 ; 0x6f0 - 1758: 005c7379 subseq r7, ip, r9, ror r3 - 175c: 696e4900 stmdbvs lr!, {r8, fp, lr}^ - 1760: 41492d74 cmpmi r9, r4, ror sp - 1764: 00532e52 subseq r2, r3, r2, asr lr - 1768: f2cff901 vqdmlal.s , d15, d1 - 176c: 000004ce andeq r0, r0, lr, asr #9 - 1770: e4020500 str r0, [r2], #-1280 - 1774: 03004034 movweq r4, #52 ; 0x34 - 1778: 1f0e00db svcne 0x000e00db - 177c: 201f1f1f andscs r1, pc, pc, lsl pc - 1780: 201f1f1f andscs r1, pc, pc, lsl pc - 1784: 201f1f1f andscs r1, pc, pc, lsl pc - 1788: 201f1f1f andscs r1, pc, pc, lsl pc - 178c: 201f1f1f andscs r1, pc, pc, lsl pc - 1790: 031f1f1f tsteq pc, #124 ; 0x7c - 1794: 01032202 tsteq r3, r2, lsl #4 - 1798: 211f1f22 tstcs pc, r2, lsr #30 - 179c: 211f221f tstcs pc, pc, lsl r2 - 17a0: 1f220103 svcne 0x00220103 - 17a4: 1f1f1f1f svcne 0x001f1f1f - 17a8: 1f211f1f svcne 0x00211f1f - 17ac: 1f1f1f1f svcne 0x001f1f1f - 17b0: 1f211f1f svcne 0x00211f1f - 17b4: 1f1f1f1f svcne 0x001f1f1f - 17b8: 1f211f1f svcne 0x00211f1f - 17bc: 1f1f1f1f svcne 0x001f1f1f - 17c0: 20021f1f andcs r1, r2, pc, lsl pc - 17c4: 00010100 andeq r0, r1, r0, lsl #2 - 17c8: 000001e8 andeq r0, r0, r8, ror #3 - 17cc: 01e20002 mvneq r0, r2 - 17d0: 01010000 tsteq r1, r0 - 17d4: 000a0500 andeq r0, sl, r0, lsl #10 - 17d8: 01010101 tsteq r1, r1, lsl #2 - 17dc: 00000000 andeq r0, r0, r0 - 17e0: 445c3a43 ldrbmi r3, [ip], #-2627 - 17e4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 17e8: 73746e65 cmnvc r4, #1616 ; 0x650 - 17ec: 646e6120 strbtvs r6, [lr], #-288 - 17f0: 74655320 strbtvc r5, [r5], #-800 - 17f4: 676e6974 undefined - 17f8: 616d5c73 smcvs 54723 - 17fc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1800: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1804: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1808: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 180c: 775c7374 undefined - 1810: 6f632d73 svcvs 0x00632d73 - 1814: 6f72746e svcvs 0x0072746e - 1818: 65575c6c ldrbvs r5, [r7, #-3180] - 181c: 65687461 strbvs r7, [r8, #-1121]! - 1820: 74532072 ldrbvc r2, [r3], #-114 - 1824: 6f697461 svcvs 0x00697461 - 1828: 6f43206e svcvs 0x0043206e - 182c: 6f72746e svcvs 0x0072746e - 1830: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1834: 7070415c rsbsvc r4, r0, ip, asr r1 - 1838: 6163696c cmnvs r3, ip, ror #18 - 183c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1840: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1844: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1848: 005c7365 subseq r7, ip, r5, ror #6 - 184c: 445c3a43 ldrbmi r3, [ip], #-2627 - 1850: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1854: 73746e65 cmnvc r4, #1616 ; 0x650 - 1858: 646e6120 strbtvs r6, [lr], #-288 - 185c: 74655320 strbtvc r5, [r5], #-800 - 1860: 676e6974 undefined - 1864: 616d5c73 smcvs 54723 - 1868: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 186c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1870: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1874: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1878: 775c7374 undefined - 187c: 6f632d73 svcvs 0x00632d73 - 1880: 6f72746e svcvs 0x0072746e - 1884: 65575c6c ldrbvs r5, [r7, #-3180] - 1888: 65687461 strbvs r7, [r8, #-1121]! - 188c: 74532072 ldrbvc r2, [r3], #-114 - 1890: 6f697461 svcvs 0x00697461 - 1894: 6f43206e svcvs 0x0043206e - 1898: 6f72746e svcvs 0x0072746e - 189c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 18a0: 4d4c505c stclmi 0, cr5, [ip, #-368] - 18a4: 746e495c strbtvc r4, [lr], #-2396 - 18a8: 61667265 cmnvs r6, r5, ror #4 - 18ac: 005c6563 subseq r6, ip, r3, ror #10 - 18b0: 445c3a43 ldrbmi r3, [ip], #-2627 - 18b4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 18b8: 73746e65 cmnvc r4, #1616 ; 0x650 - 18bc: 646e6120 strbtvs r6, [lr], #-288 - 18c0: 74655320 strbtvc r5, [r5], #-800 - 18c4: 676e6974 undefined - 18c8: 616d5c73 smcvs 54723 - 18cc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 18d0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 18d4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 18d8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 18dc: 775c7374 undefined - 18e0: 6f632d73 svcvs 0x00632d73 - 18e4: 6f72746e svcvs 0x0072746e - 18e8: 65575c6c ldrbvs r5, [r7, #-3180] - 18ec: 65687461 strbvs r7, [r8, #-1121]! - 18f0: 74532072 ldrbvc r2, [r3], #-114 - 18f4: 6f697461 svcvs 0x00697461 - 18f8: 6f43206e svcvs 0x0043206e - 18fc: 6f72746e svcvs 0x0072746e - 1900: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1904: 4d4c505c stclmi 0, cr5, [ip, #-368] - 1908: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 190c: 65746e49 ldrbvs r6, [r4, #-3657]! - 1910: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 1914: 00005c65 andeq r5, r0, r5, ror #24 - 1918: 6279654b rsbsvs r6, r9, #314572800 ; 0x12c00000 - 191c: 6472616f ldrbtvs r6, [r2], #-367 - 1920: 0100632e tsteq r0, lr, lsr #6 - 1924: c5d0bea8 ldrbgt fp, [r0, #3752] - 1928: 654b5a04 strbvs r5, [fp, #-2564] - 192c: 616f6279 smcvs 63017 - 1930: 682e6472 stmdavs lr!, {r1, r4, r5, r6, sl, sp, lr} - 1934: fbf70100 blx ffdc1d3e - 1938: 7e04ceed cdpvc 14, 0, cr12, cr4, cr13, {7} - 193c: 65626d45 strbvs r6, [r2, #-3397]! - 1940: 64656464 strbtvs r6, [r5], #-1124 - 1944: 65707954 ldrbvs r7, [r0, #-2388]! - 1948: 00682e73 rsbeq r2, r8, r3, ror lr - 194c: d79d9e02 ldrle r9, [sp, r2, lsl #28] - 1950: 437704c0 cmnmi r7, #-1073741824 ; 0xc0000000 - 1954: 525f4d52 subspl r4, pc, #5248 ; 0x1480 - 1958: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} - 195c: f8030068 undefined instruction 0xf8030068 - 1960: 04c0d78f strbeq sp, [r0], #1935 - 1964: 72430281 subvc r0, r3, #268435464 ; 0x10000008 - 1968: 00682e6d rsbeq r2, r8, sp, ror #28 - 196c: d794f203 ldrle pc, [r4, r3, lsl #4] - 1970: 05cb04c0 strbeq r0, [fp, #1216] - 1974: 4f495047 svcmi 0x00495047 - 1978: 746e495f strbtvc r4, [lr], #-2399 - 197c: 61667265 cmnvs r6, r5, ror #4 - 1980: 682e6563 stmdavs lr!, {r0, r1, r5, r6, r8, sl, sp, lr} - 1984: 8ff80300 svchi 0x00f80300 - 1988: 9e04c0d7 mcrls 0, 0, ip, cr4, cr7, {6} - 198c: 616c5006 cmnvs ip, r6 - 1990: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 - 1994: 00682e6d rsbeq r2, r8, sp, ror #28 - 1998: d794f203 ldrle pc, [r4, r3, lsl #4] - 199c: 03be04c0 undefined instruction 0x03be04c0 - 19a0: 5f697353 svcpl 0x00697353 - 19a4: 73676552 cmnvc r7, #343932928 ; 0x14800000 - 19a8: 0300682e movweq r6, #2094 ; 0x82e - 19ac: ba9196cc blt fe4674e4 - 19b0: 0001c504 andeq ip, r1, r4, lsl #10 - 19b4: 000000af andeq r0, r0, pc, lsr #1 - 19b8: 008e0002 addeq r0, lr, r2 - 19bc: 01020000 tsteq r2, r0 - 19c0: 000a0500 andeq r0, sl, r0, lsl #10 - 19c4: 01010101 tsteq r1, r1, lsl #2 - 19c8: 00000000 andeq r0, r0, r0 - 19cc: 445c3a43 ldrbmi r3, [ip], #-2627 - 19d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 19d4: 73746e65 cmnvc r4, #1616 ; 0x650 - 19d8: 646e6120 strbtvs r6, [lr], #-288 - 19dc: 74655320 strbtvc r5, [r5], #-800 - 19e0: 676e6974 undefined - 19e4: 616d5c73 smcvs 54723 - 19e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 19ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 19f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 19f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 19f8: 775c7374 undefined - 19fc: 6f632d73 svcvs 0x00632d73 - 1a00: 6f72746e svcvs 0x0072746e - 1a04: 65575c6c ldrbvs r5, [r7, #-3180] - 1a08: 65687461 strbvs r7, [r8, #-1121]! - 1a0c: 74532072 ldrbvc r2, [r3], #-114 - 1a10: 6f697461 svcvs 0x00697461 - 1a14: 6f43206e svcvs 0x0043206e - 1a18: 6f72746e svcvs 0x0072746e - 1a1c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1a20: 7070415c rsbsvc r4, r0, ip, asr r1 - 1a24: 6163696c cmnvs r3, ip, ror #18 - 1a28: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1a2c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1a30: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1a34: 005c7365 subseq r7, ip, r5, ror #6 - 1a38: 79654b00 stmdbvc r5!, {r8, r9, fp, lr}^ - 1a3c: 72616f62 rsbvc r6, r1, #392 ; 0x188 - 1a40: 00632e64 rsbeq r2, r3, r4, ror #28 - 1a44: d0bea801 adcsle sl, lr, r1, lsl #16 - 1a48: 005a04c5 subseq r0, sl, r5, asr #9 - 1a4c: f0020500 undefined instruction 0xf0020500 - 1a50: 0500403c streq r4, [r0, #-60] - 1a54: 0e390301 cdpeq 3, 3, cr0, cr9, cr1, {0} - 1a58: 2f110305 svccs 0x00110305 - 1a5c: 052a2a33 streq r2, [sl, #-2611]! - 1a60: 05022501 streq r2, [r2, #-1281] - 1a64: 00010100 andeq r0, r1, r0, lsl #2 - 1a68: 000002dd ldrdeq r0, [r0], -sp - 1a6c: 02d70002 sbcseq r0, r7, #2 ; 0x2 - 1a70: 01010000 tsteq r1, r0 - 1a74: 000a0500 andeq r0, sl, r0, lsl #10 - 1a78: 01010101 tsteq r1, r1, lsl #2 - 1a7c: 00000000 andeq r0, r0, r0 - 1a80: 445c3a43 ldrbmi r3, [ip], #-2627 - 1a84: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1a88: 73746e65 cmnvc r4, #1616 ; 0x650 - 1a8c: 646e6120 strbtvs r6, [lr], #-288 - 1a90: 74655320 strbtvc r5, [r5], #-800 - 1a94: 676e6974 undefined - 1a98: 616d5c73 smcvs 54723 - 1a9c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1aa0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1aa4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1aa8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1aac: 775c7374 undefined - 1ab0: 6f632d73 svcvs 0x00632d73 - 1ab4: 6f72746e svcvs 0x0072746e - 1ab8: 65575c6c ldrbvs r5, [r7, #-3180] - 1abc: 65687461 strbvs r7, [r8, #-1121]! - 1ac0: 74532072 ldrbvc r2, [r3], #-114 - 1ac4: 6f697461 svcvs 0x00697461 - 1ac8: 6f43206e svcvs 0x0043206e - 1acc: 6f72746e svcvs 0x0072746e - 1ad0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1ad4: 7070415c rsbsvc r4, r0, ip, asr r1 - 1ad8: 6163696c cmnvs r3, ip, ror #18 - 1adc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1ae0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1ae4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1ae8: 005c7365 subseq r7, ip, r5, ror #6 - 1aec: 445c3a43 ldrbmi r3, [ip], #-2627 - 1af0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1af4: 73746e65 cmnvc r4, #1616 ; 0x650 - 1af8: 646e6120 strbtvs r6, [lr], #-288 - 1afc: 74655320 strbtvc r5, [r5], #-800 - 1b00: 676e6974 undefined - 1b04: 616d5c73 smcvs 54723 - 1b08: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1b0c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1b10: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1b14: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1b18: 775c7374 undefined - 1b1c: 6f632d73 svcvs 0x00632d73 - 1b20: 6f72746e svcvs 0x0072746e - 1b24: 65575c6c ldrbvs r5, [r7, #-3180] - 1b28: 65687461 strbvs r7, [r8, #-1121]! - 1b2c: 74532072 ldrbvc r2, [r3], #-114 - 1b30: 6f697461 svcvs 0x00697461 - 1b34: 6f43206e svcvs 0x0043206e - 1b38: 6f72746e svcvs 0x0072746e - 1b3c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1b40: 4d4c505c stclmi 0, cr5, [ip, #-368] - 1b44: 746e495c strbtvc r4, [lr], #-2396 - 1b48: 61667265 cmnvs r6, r5, ror #4 - 1b4c: 005c6563 subseq r6, ip, r3, ror #10 - 1b50: 445c3a43 ldrbmi r3, [ip], #-2627 - 1b54: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1b58: 73746e65 cmnvc r4, #1616 ; 0x650 - 1b5c: 646e6120 strbtvs r6, [lr], #-288 - 1b60: 74655320 strbtvc r5, [r5], #-800 - 1b64: 676e6974 undefined - 1b68: 616d5c73 smcvs 54723 - 1b6c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1b70: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1b74: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1b78: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1b7c: 775c7374 undefined - 1b80: 6f632d73 svcvs 0x00632d73 - 1b84: 6f72746e svcvs 0x0072746e - 1b88: 65575c6c ldrbvs r5, [r7, #-3180] - 1b8c: 65687461 strbvs r7, [r8, #-1121]! - 1b90: 74532072 ldrbvc r2, [r3], #-114 - 1b94: 6f697461 svcvs 0x00697461 - 1b98: 6f43206e svcvs 0x0043206e - 1b9c: 6f72746e svcvs 0x0072746e - 1ba0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1ba4: 4d4c505c stclmi 0, cr5, [ip, #-368] - 1ba8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 1bac: 65746e49 ldrbvs r6, [r4, #-3657]! - 1bb0: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 1bb4: 43005c65 movwmi r5, #3173 ; 0xc65 - 1bb8: 6f445c3a svcvs 0x00445c3a - 1bbc: 656d7563 strbvs r7, [sp, #-1379]! - 1bc0: 2073746e rsbscs r7, r3, lr, ror #8 - 1bc4: 20646e61 rsbcs r6, r4, r1, ror #28 - 1bc8: 74746553 ldrbtvc r6, [r4], #-1363 - 1bcc: 73676e69 cmnvc r7, #1680 ; 0x690 - 1bd0: 6c616d5c stclvs 13, cr6, [r1], #-368 - 1bd4: 61726976 cmnvs r2, r6, ror r9 - 1bd8: 20794d5c rsbscs r4, r9, ip, asr sp - 1bdc: 75636f44 strbvc r6, [r3, #-3908]! - 1be0: 746e656d strbtvc r6, [lr], #-1389 - 1be4: 73775c73 cmnvc r7, #29440 ; 0x7300 - 1be8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 1bec: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1bf0: 6165575c cmnvs r5, ip, asr r7 - 1bf4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 1bf8: 61745320 cmnvs r4, r0, lsr #6 - 1bfc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1c00: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 1c04: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1c08: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 1c0c: 43414d53 movtmi r4, #7507 ; 0x1d53 - 1c10: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 1c14: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 1c18: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} - 1c1c: 75676966 strbvc r6, [r7, #-2406]! - 1c20: 005c6572 subseq r6, ip, r2, ror r5 - 1c24: 445c3a43 ldrbmi r3, [ip], #-2627 - 1c28: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1c2c: 73746e65 cmnvc r4, #1616 ; 0x650 - 1c30: 646e6120 strbtvs r6, [lr], #-288 - 1c34: 74655320 strbtvc r5, [r5], #-800 - 1c38: 676e6974 undefined - 1c3c: 616d5c73 smcvs 54723 - 1c40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1c44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1c48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1c4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1c50: 775c7374 undefined - 1c54: 6f632d73 svcvs 0x00632d73 - 1c58: 6f72746e svcvs 0x0072746e - 1c5c: 65575c6c ldrbvs r5, [r7, #-3180] - 1c60: 65687461 strbvs r7, [r8, #-1121]! - 1c64: 74532072 ldrbvc r2, [r3], #-114 - 1c68: 6f697461 svcvs 0x00697461 - 1c6c: 6f43206e svcvs 0x0043206e - 1c70: 6f72746e svcvs 0x0072746e - 1c74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1c78: 414d535c cmpmi sp, ip, asr r3 - 1c7c: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 1c80: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 1c84: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 1c88: 66726574 undefined - 1c8c: 5c656361 stclpl 3, cr6, [r5], #-388 - 1c90: 654c0000 strbvs r0, [ip] - 1c94: 632e7364 teqvs lr, #-1879048191 ; 0x90000001 - 1c98: f7920100 undefined instruction 0xf7920100 - 1c9c: 9104c7b8 strhls ip, [r4, -r8] - 1ca0: 64654c02 strbtvs r4, [r5], #-3074 - 1ca4: 00682e73 rsbeq r2, r8, r3, ror lr - 1ca8: edfbf701 ldcl 7, cr15, [fp, #4]! - 1cac: 02c404ce sbceq r0, r4, #-838860800 ; 0xce000000 - 1cb0: 65626d45 strbvs r6, [r2, #-3397]! - 1cb4: 64656464 strbtvs r6, [r5], #-1124 - 1cb8: 65707954 ldrbvs r7, [r0, #-2388]! - 1cbc: 00682e73 rsbeq r2, r8, r3, ror lr - 1cc0: d79d9e02 ldrle r9, [sp, r2, lsl #28] - 1cc4: 437704c0 cmnmi r7, #-1073741824 ; 0xc0000000 - 1cc8: 525f4d52 subspl r4, pc, #5248 ; 0x1480 - 1ccc: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} - 1cd0: f8030068 undefined instruction 0xf8030068 - 1cd4: 04c0d78f strbeq sp, [r0], #1935 - 1cd8: 50470281 subpl r0, r7, r1, lsl #5 - 1cdc: 495f4f49 ldmdbmi pc, {r0, r3, r6, r8, r9, sl, fp, lr}^ - 1ce0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 1ce4: 65636166 strbvs r6, [r3, #-358]! - 1ce8: 0300682e movweq r6, #2094 ; 0x82e - 1cec: c0d78ff8 ldrshgt r8, [r7], #248 - 1cf0: 50069e04 andpl r9, r6, r4, lsl #28 - 1cf4: 6674616c ldrbtvs r6, [r4], -ip, ror #2 - 1cf8: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} - 1cfc: f2030068 vhadd.s8 q0, , q12 - 1d00: 04c0d794 strbeq sp, [r0], #1940 - 1d04: 735303be cmpvc r3, #-134217726 ; 0xf8000002 - 1d08: 65525f69 ldrbvs r5, [r2, #-3945] - 1d0c: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} - 1d10: 96cc0300 strbls r0, [ip], r0, lsl #6 - 1d14: c504ba91 strgt fp, [r4, #-2705] - 1d18: 616f6201 cmnvs pc, r1, lsl #4 - 1d1c: 635f6472 cmpvs pc, #1912602624 ; 0x72000000 - 1d20: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 1d24: 00682e67 rsbeq r2, r8, r7, ror #28 - 1d28: edfbf704 ldcl 7, cr15, [fp, #16]! - 1d2c: 463d04ce ldrtmi r0, [sp], -lr, asr #9 - 1d30: 44716572 ldrbtmi r6, [r1], #-1394 - 1d34: 65537065 ldrbvs r7, [r3, #-101] - 1d38: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 1d3c: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} - 1d40: fbf70500 blx ffdc314a - 1d44: 3704ceed strcc ip, [r4, -sp, ror #29] - 1d48: 00000000 andeq r0, r0, r0 - 1d4c: 000000bd strheq r0, [r0], -sp - 1d50: 008b0002 addeq r0, fp, r2 - 1d54: 01020000 tsteq r2, r0 - 1d58: 000a0500 andeq r0, sl, r0, lsl #10 - 1d5c: 01010101 tsteq r1, r1, lsl #2 - 1d60: 00000000 andeq r0, r0, r0 - 1d64: 445c3a43 ldrbmi r3, [ip], #-2627 - 1d68: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1d6c: 73746e65 cmnvc r4, #1616 ; 0x650 - 1d70: 646e6120 strbtvs r6, [lr], #-288 - 1d74: 74655320 strbtvc r5, [r5], #-800 - 1d78: 676e6974 undefined - 1d7c: 616d5c73 smcvs 54723 - 1d80: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1d84: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1d88: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1d8c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1d90: 775c7374 undefined - 1d94: 6f632d73 svcvs 0x00632d73 - 1d98: 6f72746e svcvs 0x0072746e - 1d9c: 65575c6c ldrbvs r5, [r7, #-3180] - 1da0: 65687461 strbvs r7, [r8, #-1121]! - 1da4: 74532072 ldrbvc r2, [r3], #-114 - 1da8: 6f697461 svcvs 0x00697461 - 1dac: 6f43206e svcvs 0x0043206e - 1db0: 6f72746e svcvs 0x0072746e - 1db4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1db8: 7070415c rsbsvc r4, r0, ip, asr r1 - 1dbc: 6163696c cmnvs r3, ip, ror #18 - 1dc0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1dc4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1dc8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1dcc: 005c7365 subseq r7, ip, r5, ror #6 - 1dd0: 64654c00 strbtvs r4, [r5], #-3072 - 1dd4: 00632e73 rsbeq r2, r3, r3, ror lr - 1dd8: b8f79201 ldmlt r7!, {r0, r9, ip, pc}^ - 1ddc: 029104c7 addseq r0, r1, #-956301312 ; 0xc7000000 - 1de0: 02050000 andeq r0, r5, #0 ; 0x0 - 1de4: 00403608 subeq r3, r0, r8, lsl #12 - 1de8: 38030105 stmdacc r3, {r0, r2, r8} - 1dec: 1003050e andne r0, r3, lr, lsl #10 - 1df0: 0301051a movweq r0, #5402 ; 0x151a - 1df4: 050e0193 streq r0, [lr, #-403] - 1df8: e9030b03 stmdb r3, {r0, r1, r8, r9, fp} - 1dfc: 0105197e tsteq r5, lr, ror r9 - 1e00: 0e019403 cdpeq 4, 0, cr9, cr1, cr3, {0} - 1e04: 1e7ee903 cdpne 9, 7, cr14, cr14, cr3, {0} - 1e08: 01000302 tsteq r0, r2, lsl #6 - 1e0c: 00000001 andeq r0, r0, r1 - 1e10: 000000ca andeq r0, r0, sl, asr #1 - 1e14: 008b0002 addeq r0, fp, r2 - 1e18: 01020000 tsteq r2, r0 - 1e1c: 000a0500 andeq r0, sl, r0, lsl #10 - 1e20: 01010101 tsteq r1, r1, lsl #2 - 1e24: 00000000 andeq r0, r0, r0 - 1e28: 445c3a43 ldrbmi r3, [ip], #-2627 - 1e2c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1e30: 73746e65 cmnvc r4, #1616 ; 0x650 - 1e34: 646e6120 strbtvs r6, [lr], #-288 - 1e38: 74655320 strbtvc r5, [r5], #-800 - 1e3c: 676e6974 undefined - 1e40: 616d5c73 smcvs 54723 - 1e44: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1e48: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1e4c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1e50: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1e54: 775c7374 undefined - 1e58: 6f632d73 svcvs 0x00632d73 - 1e5c: 6f72746e svcvs 0x0072746e - 1e60: 65575c6c ldrbvs r5, [r7, #-3180] - 1e64: 65687461 strbvs r7, [r8, #-1121]! - 1e68: 74532072 ldrbvc r2, [r3], #-114 - 1e6c: 6f697461 svcvs 0x00697461 - 1e70: 6f43206e svcvs 0x0043206e - 1e74: 6f72746e svcvs 0x0072746e - 1e78: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1e7c: 7070415c rsbsvc r4, r0, ip, asr r1 - 1e80: 6163696c cmnvs r3, ip, ror #18 - 1e84: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1e88: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1e8c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1e90: 005c7365 subseq r7, ip, r5, ror #6 - 1e94: 64654c00 strbtvs r4, [r5], #-3072 - 1e98: 00632e73 rsbeq r2, r3, r3, ror lr - 1e9c: b8f79201 ldmlt r7!, {r0, r9, ip, pc}^ - 1ea0: 029104c7 addseq r0, r1, #-956301312 ; 0xc7000000 - 1ea4: 02050000 andeq r0, r5, #0 ; 0x0 - 1ea8: 00403624 subeq r3, r0, r4, lsr #12 - 1eac: c5030105 strgt r0, [r3, #-261] - 1eb0: 03050e00 movweq r0, #24064 ; 0x5e00 - 1eb4: 15050515 strne r0, [r5, #-1301] - 1eb8: 03051f1f movweq r1, #24351 ; 0x5f1f - 1ebc: 0505201f streq r2, [r5, #-31] - 1ec0: 1f1f1f15 svcne 0x001f1f15 - 1ec4: 05200305 streq r0, [r0, #-773]! - 1ec8: 1f1f1505 svcne 0x001f1505 - 1ecc: 2003051f andcs r0, r3, pc, lsl r5 - 1ed0: 1f150505 svcne 0x00150505 - 1ed4: 01051f1f tsteq r5, pc, lsl pc - 1ed8: 00040220 andeq r0, r4, r0, lsr #4 - 1edc: 00000101 andeq r0, r0, r1, lsl #2 - 1ee0: 000000be strheq r0, [r0], -lr - 1ee4: 008b0002 addeq r0, fp, r2 - 1ee8: 01020000 tsteq r2, r0 - 1eec: 000a0500 andeq r0, sl, r0, lsl #10 - 1ef0: 01010101 tsteq r1, r1, lsl #2 - 1ef4: 00000000 andeq r0, r0, r0 - 1ef8: 445c3a43 ldrbmi r3, [ip], #-2627 - 1efc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1f00: 73746e65 cmnvc r4, #1616 ; 0x650 - 1f04: 646e6120 strbtvs r6, [lr], #-288 - 1f08: 74655320 strbtvc r5, [r5], #-800 - 1f0c: 676e6974 undefined - 1f10: 616d5c73 smcvs 54723 - 1f14: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1f18: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1f1c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1f20: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1f24: 775c7374 undefined - 1f28: 6f632d73 svcvs 0x00632d73 - 1f2c: 6f72746e svcvs 0x0072746e - 1f30: 65575c6c ldrbvs r5, [r7, #-3180] - 1f34: 65687461 strbvs r7, [r8, #-1121]! - 1f38: 74532072 ldrbvc r2, [r3], #-114 - 1f3c: 6f697461 svcvs 0x00697461 - 1f40: 6f43206e svcvs 0x0043206e - 1f44: 6f72746e svcvs 0x0072746e - 1f48: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1f4c: 7070415c rsbsvc r4, r0, ip, asr r1 - 1f50: 6163696c cmnvs r3, ip, ror #18 - 1f54: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1f58: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 1f5c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 1f60: 005c7365 subseq r7, ip, r5, ror #6 - 1f64: 64654c00 strbtvs r4, [r5], #-3072 - 1f68: 00632e73 rsbeq r2, r3, r3, ror lr - 1f6c: b8f79201 ldmlt r7!, {r0, r9, ip, pc}^ - 1f70: 029104c7 addseq r0, r1, #-956301312 ; 0xc7000000 - 1f74: 02050000 andeq r0, r5, #0 ; 0x0 - 1f78: 004036c0 subeq r3, r0, r0, asr #13 - 1f7c: af030105 svcge 0x00030105 - 1f80: 03050e01 movweq r0, #24065 ; 0x5e01 - 1f84: 15050515 strne r0, [r5, #-1301] - 1f88: 051f0305 ldreq r0, [pc, #-773] ; 1c8b <__USR_stack_size+0x148b> - 1f8c: 03051505 movweq r1, #21765 ; 0x5505 - 1f90: 1505051f strne r0, [r5, #-1311] - 1f94: 051f0305 ldreq r0, [pc, #-773] ; 1c97 <__USR_stack_size+0x1497> - 1f98: 01051505 tsteq r5, r5, lsl #10 - 1f9c: 0004021f andeq r0, r4, pc, lsl r2 - 1fa0: 00000101 andeq r0, r0, r1, lsl #2 - 1fa4: 00000429 andeq r0, r0, r9, lsr #8 - 1fa8: 04230002 strteq r0, [r3], #-2 - 1fac: 01010000 tsteq r1, r0 - 1fb0: 000a0500 andeq r0, sl, r0, lsl #10 - 1fb4: 01010101 tsteq r1, r1, lsl #2 - 1fb8: 00000000 andeq r0, r0, r0 - 1fbc: 445c3a43 ldrbmi r3, [ip], #-2627 - 1fc0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1fc4: 73746e65 cmnvc r4, #1616 ; 0x650 - 1fc8: 646e6120 strbtvs r6, [lr], #-288 - 1fcc: 74655320 strbtvc r5, [r5], #-800 - 1fd0: 676e6974 undefined - 1fd4: 616d5c73 smcvs 54723 - 1fd8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1fdc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1fe0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1fe4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1fe8: 775c7374 undefined - 1fec: 6f632d73 svcvs 0x00632d73 - 1ff0: 6f72746e svcvs 0x0072746e - 1ff4: 65575c6c ldrbvs r5, [r7, #-3180] - 1ff8: 65687461 strbvs r7, [r8, #-1121]! - 1ffc: 74532072 ldrbvc r2, [r3], #-114 - 2000: 6f697461 svcvs 0x00697461 - 2004: 6f43206e svcvs 0x0043206e - 2008: 6f72746e svcvs 0x0072746e - 200c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2010: 4d4c505c stclmi 0, cr5, [ip, #-368] - 2014: 746e495c strbtvc r4, [lr], #-2396 - 2018: 61667265 cmnvs r6, r5, ror #4 - 201c: 005c6563 subseq r6, ip, r3, ror #10 - 2020: 445c3a43 ldrbmi r3, [ip], #-2627 - 2024: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2028: 73746e65 cmnvc r4, #1616 ; 0x650 - 202c: 646e6120 strbtvs r6, [lr], #-288 - 2030: 74655320 strbtvc r5, [r5], #-800 - 2034: 676e6974 undefined - 2038: 616d5c73 smcvs 54723 - 203c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2040: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2044: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2048: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 204c: 775c7374 undefined - 2050: 6f632d73 svcvs 0x00632d73 - 2054: 6f72746e svcvs 0x0072746e - 2058: 65575c6c ldrbvs r5, [r7, #-3180] - 205c: 65687461 strbvs r7, [r8, #-1121]! - 2060: 74532072 ldrbvc r2, [r3], #-114 - 2064: 6f697461 svcvs 0x00697461 - 2068: 6f43206e svcvs 0x0043206e - 206c: 6f72746e svcvs 0x0072746e - 2070: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2074: 4d4c505c stclmi 0, cr5, [ip, #-368] - 2078: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 207c: 65746e49 ldrbvs r6, [r4, #-3657]! - 2080: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 2084: 43005c65 movwmi r5, #3173 ; 0xc65 - 2088: 6f445c3a svcvs 0x00445c3a - 208c: 656d7563 strbvs r7, [sp, #-1379]! - 2090: 2073746e rsbscs r7, r3, lr, ror #8 - 2094: 20646e61 rsbcs r6, r4, r1, ror #28 - 2098: 74746553 ldrbtvc r6, [r4], #-1363 - 209c: 73676e69 cmnvc r7, #1680 ; 0x690 - 20a0: 6c616d5c stclvs 13, cr6, [r1], #-368 - 20a4: 61726976 cmnvs r2, r6, ror r9 - 20a8: 20794d5c rsbscs r4, r9, ip, asr sp - 20ac: 75636f44 strbvc r6, [r3, #-3908]! - 20b0: 746e656d strbtvc r6, [lr], #-1389 - 20b4: 73775c73 cmnvc r7, #29440 ; 0x7300 - 20b8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 20bc: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 20c0: 6165575c cmnvs r5, ip, asr r7 - 20c4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 20c8: 61745320 cmnvs r4, r0, lsr #6 - 20cc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 20d0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 20d4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 20d8: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 20dc: 43414d53 movtmi r4, #7507 ; 0x1d53 - 20e0: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 20e4: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 20e8: 746e495c strbtvc r4, [lr], #-2396 - 20ec: 61667265 cmnvs r6, r5, ror #4 - 20f0: 005c6563 subseq r6, ip, r3, ror #10 - 20f4: 445c3a43 ldrbmi r3, [ip], #-2627 - 20f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 20fc: 73746e65 cmnvc r4, #1616 ; 0x650 - 2100: 646e6120 strbtvs r6, [lr], #-288 - 2104: 74655320 strbtvc r5, [r5], #-800 - 2108: 676e6974 undefined - 210c: 616d5c73 smcvs 54723 - 2110: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2114: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2118: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 211c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2120: 775c7374 undefined - 2124: 6f632d73 svcvs 0x00632d73 - 2128: 6f72746e svcvs 0x0072746e - 212c: 65575c6c ldrbvs r5, [r7, #-3180] - 2130: 65687461 strbvs r7, [r8, #-1121]! - 2134: 74532072 ldrbvc r2, [r3], #-114 - 2138: 6f697461 svcvs 0x00697461 - 213c: 6f43206e svcvs 0x0043206e - 2140: 6f72746e svcvs 0x0072746e - 2144: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2148: 414d535c cmpmi sp, ip, asr r3 - 214c: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 2150: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 2154: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 2158: 66726574 undefined - 215c: 5c656361 stclpl 3, cr6, [r5], #-388 - 2160: 72646867 rsbvc r6, r4, #6750208 ; 0x670000 - 2164: 3a43005c bcc 10c22dc - 2168: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 216c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2170: 61207374 teqvs r0, r4, ror r3 - 2174: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 2178: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 217c: 5c73676e ldclpl 7, cr6, [r3], #-440 - 2180: 766c616d strbtvc r6, [ip], -sp, ror #2 - 2184: 5c617269 sfmpl f7, 2, [r1], #-420 - 2188: 4420794d strtmi r7, [r0], #-2381 - 218c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2190: 73746e65 cmnvc r4, #1616 ; 0x650 - 2194: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 2198: 746e6f63 strbtvc r6, [lr], #-3939 - 219c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 21a0: 74616557 strbtvc r6, [r1], #-1367 - 21a4: 20726568 rsbscs r6, r2, r8, ror #10 - 21a8: 74617453 strbtvc r7, [r1], #-1107 - 21ac: 206e6f69 rsbcs r6, lr, r9, ror #30 - 21b0: 746e6f43 strbtvc r6, [lr], #-3907 - 21b4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 21b8: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 21bc: 5c43414d stfple f4, [r3], {77} - 21c0: 76697244 strbtvc r7, [r9], -r4, asr #4 - 21c4: 5c737265 lfmpl f7, 2, [r3], #-404 - 21c8: 4962694c stmdbmi r2!, {r2, r3, r6, r8, fp, sp, lr}^ - 21cc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 21d0: 65636166 strbvs r6, [r3, #-358]! - 21d4: 3a43005c bcc 10c234c - 21d8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 21dc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 21e0: 61207374 teqvs r0, r4, ror r3 - 21e4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 21e8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 21ec: 5c73676e ldclpl 7, cr6, [r3], #-440 - 21f0: 766c616d strbtvc r6, [ip], -sp, ror #2 - 21f4: 5c617269 sfmpl f7, 2, [r1], #-420 - 21f8: 4420794d strtmi r7, [r0], #-2381 - 21fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2200: 73746e65 cmnvc r4, #1616 ; 0x650 - 2204: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 2208: 746e6f63 strbtvc r6, [lr], #-3939 - 220c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 2210: 74616557 strbtvc r6, [r1], #-1367 - 2214: 20726568 rsbscs r6, r2, r8, ror #10 - 2218: 74617453 strbtvc r7, [r1], #-1107 - 221c: 206e6f69 rsbcs r6, lr, r9, ror #30 - 2220: 746e6f43 strbtvc r6, [lr], #-3907 - 2224: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 2228: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 222c: 5c43414d stfple f4, [r3], {77} - 2230: 76697244 strbtvc r7, [r9], -r4, asr #4 - 2234: 5c737265 lfmpl f7, 2, [r3], #-404 - 2238: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 223c: 005c6563 subseq r6, ip, r3, ror #10 - 2240: 445c3a43 ldrbmi r3, [ip], #-2627 - 2244: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2248: 73746e65 cmnvc r4, #1616 ; 0x650 - 224c: 646e6120 strbtvs r6, [lr], #-288 - 2250: 74655320 strbtvc r5, [r5], #-800 - 2254: 676e6974 undefined - 2258: 616d5c73 smcvs 54723 - 225c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2260: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2264: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2268: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 226c: 775c7374 undefined - 2270: 6f632d73 svcvs 0x00632d73 - 2274: 6f72746e svcvs 0x0072746e - 2278: 65575c6c ldrbvs r5, [r7, #-3180] - 227c: 65687461 strbvs r7, [r8, #-1121]! - 2280: 74532072 ldrbvc r2, [r3], #-114 - 2284: 6f697461 svcvs 0x00697461 - 2288: 6f43206e svcvs 0x0043206e - 228c: 6f72746e svcvs 0x0072746e - 2290: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2294: 414d535c cmpmi sp, ip, asr r3 - 2298: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} - 229c: 66726574 undefined - 22a0: 5c656361 stclpl 3, cr6, [r5], #-388 - 22a4: 6d450000 stclvs 0, cr0, [r5] - 22a8: 64646562 strbtvs r6, [r4], #-1378 - 22ac: 79546465 ldmdbvc r4, {r0, r2, r5, r6, sl, sp, lr}^ - 22b0: 2e736570 mrccs 5, 3, r6, cr3, cr0, {3} - 22b4: 9e010068 cdpls 0, 0, cr0, cr1, cr8, {3} - 22b8: 04c0d79d strbeq sp, [r0], #1949 - 22bc: 4d524377 ldclmi 3, cr4, [r2, #-476] - 22c0: 6765525f undefined - 22c4: 00682e73 rsbeq r2, r8, r3, ror lr - 22c8: d78ff802 strle pc, [pc, r2, lsl #16] - 22cc: 028104c0 addeq r0, r1, #-1073741824 ; 0xc0000000 - 22d0: 5f435449 svcpl 0x00435449 - 22d4: 65746e49 ldrbvs r6, [r4, #-3657]! - 22d8: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 22dc: 00682e65 rsbeq r2, r8, r5, ror #28 - 22e0: d78ff802 strle pc, [pc, r2, lsl #16] - 22e4: 02c404c0 sbceq r0, r4, #-1073741824 ; 0xc0000000 - 22e8: 5f697353 svcpl 0x00697353 - 22ec: 73676552 cmnvc r7, #343932928 ; 0x14800000 - 22f0: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 - 22f4: ba9196cc blt fe467e2c - 22f8: 7001c504 andvc ip, r1, r4, lsl #10 - 22fc: 6674616c ldrbtvs r6, [r4], -ip, ror #2 - 2300: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} - 2304: f2020068 vhadd.s8 q0, q1, q12 - 2308: 04c0d794 strbeq sp, [r0], #1940 - 230c: 724603be subvc r0, r6, #-134217726 ; 0xf8000002 - 2310: 65447165 strbvs r7, [r4, #-357] - 2314: 74655370 strbtvc r5, [r5], #-880 - 2318: 676e6974 undefined - 231c: 00682e73 rsbeq r2, r8, r3, ror lr - 2320: edfbf703 ldcl 7, cr15, [fp, #12]! - 2324: 4d3704ce cfldrsmi mvf0, [r7, #-824]! - 2328: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ - 232c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 2330: 74707572 ldrbtvc r7, [r0], #-1394 - 2334: 0300682e movweq r6, #2094 ; 0x82e - 2338: c5d0bea8 ldrbgt fp, [r0, #3752] - 233c: 616d5d04 cmnvs sp, r4, lsl #26 - 2340: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} - 2344: adc20400 cfstrdge mvd0, [r2] - 2348: 8c04c49d cfstrshi mvf12, [r4], {157} - 234c: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} - 2350: 73656874 cmnvc r5, #7602176 ; 0x740000 - 2354: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 - 2358: 636e695f cmnvs lr, #1556480 ; 0x17c000 - 235c: 0500682e streq r6, [r0, #-2094] - 2360: cc8199fa stcgt 9, cr9, [r1], {250} - 2364: 4d01a004 stcmi 0, cr10, [r1, #-16] - 2368: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ - 236c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 2370: 74707572 ldrbtvc r7, [r0], #-1394 - 2374: 0600632e streq r6, [r0], -lr, lsr #6 - 2378: cbe6d898 blgt ff9b85e0 - 237c: 4702e204 strmi lr, [r2, -r4, lsl #4] - 2380: 61626f6c cmnvs r2, ip, ror #30 - 2384: 6665446c strbtvs r4, [r5], -ip, ror #8 - 2388: 00682e73 rsbeq r2, r8, r3, ror lr - 238c: eea2ba07 cdp 10, 10, cr11, cr2, cr7, {0} - 2390: 019104c5 orrseq r0, r1, r5, asr #9 - 2394: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 2398: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} - 239c: 6d656761 stclvs 7, cr6, [r5, #-388]! - 23a0: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} - 23a4: a6070068 strge r0, [r7], -r8, rrx - 23a8: 04cbe6d8 strbeq lr, [fp], #1752 - 23ac: 725403d1 subsvc r0, r4, #1140850691 ; 0x44000003 - 23b0: 63736e61 cmnvs r3, #1552 ; 0x610 - 23b4: 65766965 ldrbvs r6, [r6, #-2405]! - 23b8: 6e6f4372 mcrvs 3, 3, r4, cr15, cr2, {3} - 23bc: 4d676966 stclmi 9, cr6, [r7, #-408]! - 23c0: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} - 23c4: 00682e74 rsbeq r2, r8, r4, ror lr - 23c8: eea0a207 cdp 2, 10, cr10, cr0, cr7, {0} - 23cc: 01e604c5 mvneq r0, r5, asr #9 - 23d0: 00000000 andeq r0, r0, r0 - 23d4: 000000d7 ldrdeq r0, [r0], -r7 - 23d8: 00920002 addseq r0, r2, r2 - 23dc: 01020000 tsteq r2, r0 - 23e0: 000a0500 andeq r0, sl, r0, lsl #10 - 23e4: 01010101 tsteq r1, r1, lsl #2 - 23e8: 00000000 andeq r0, r0, r0 - 23ec: 445c3a43 ldrbmi r3, [ip], #-2627 - 23f0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 23f4: 73746e65 cmnvc r4, #1616 ; 0x650 - 23f8: 646e6120 strbtvs r6, [lr], #-288 - 23fc: 74655320 strbtvc r5, [r5], #-800 - 2400: 676e6974 undefined - 2404: 616d5c73 smcvs 54723 - 2408: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 240c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2410: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2414: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2418: 775c7374 undefined - 241c: 6f632d73 svcvs 0x00632d73 - 2420: 6f72746e svcvs 0x0072746e - 2424: 65575c6c ldrbvs r5, [r7, #-3180] - 2428: 65687461 strbvs r7, [r8, #-1121]! - 242c: 74532072 ldrbvc r2, [r3], #-114 - 2430: 6f697461 svcvs 0x00697461 - 2434: 6f43206e svcvs 0x0043206e - 2438: 6f72746e svcvs 0x0072746e - 243c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2440: 414d535c cmpmi sp, ip, asr r3 - 2444: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 2448: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 244c: 6f535c73 svcvs 0x00535c73 - 2450: 65637275 strbvs r7, [r3, #-629]! - 2454: 4d00005c stcmi 0, cr0, [r0, #-368] - 2458: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ - 245c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 2460: 74707572 ldrbtvc r7, [r0], #-1394 - 2464: 0100632e tsteq r0, lr, lsr #6 - 2468: cbe6d898 blgt ff9b86d0 - 246c: 0002e204 andeq lr, r2, r4, lsl #4 - 2470: b4020500 strlt r0, [r2], #-1280 - 2474: 0500402b streq r4, [r0, #-43] - 2478: 00dd0301 sbcseq r0, sp, r1, lsl #6 - 247c: 0303050e movweq r0, #13582 ; 0x350e - 2480: 02031801 andeq r1, r3, #65536 ; 0x10000 - 2484: 0316181d tsteq r6, #1900544 ; 0x1d0000 - 2488: 290c1d01 stmdbcs ip, {r0, r8, sl, fp, ip} - 248c: 3e051c12 mcrcc 12, 0, r1, cr5, cr2, {0} - 2490: 191f0528 ldmdbne pc, {r3, r5, r8, sl} - 2494: 12310305 eorsne r0, r1, #335544320 ; 0x14000000 - 2498: 05143e05 ldreq r3, [r4, #-3589] - 249c: 0305191f movweq r1, #22815 ; 0x591f - 24a0: 03360103 teqeq r6, #-1073741824 ; 0xc0000000 - 24a4: 051c1301 ldreq r1, [ip, #-769] - 24a8: 0d021a01 fstseq s2, [r2, #-4] - 24ac: 00010100 andeq r0, r1, r0, lsl #2 - 24b0: 00000127 andeq r0, r0, r7, lsr #2 - 24b4: 00920002 addseq r0, r2, r2 - 24b8: 01020000 tsteq r2, r0 - 24bc: 000a0500 andeq r0, sl, r0, lsl #10 - 24c0: 01010101 tsteq r1, r1, lsl #2 - 24c4: 00000000 andeq r0, r0, r0 - 24c8: 445c3a43 ldrbmi r3, [ip], #-2627 - 24cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 24d0: 73746e65 cmnvc r4, #1616 ; 0x650 - 24d4: 646e6120 strbtvs r6, [lr], #-288 - 24d8: 74655320 strbtvc r5, [r5], #-800 - 24dc: 676e6974 undefined - 24e0: 616d5c73 smcvs 54723 - 24e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 24e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 24ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 24f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 24f4: 775c7374 undefined - 24f8: 6f632d73 svcvs 0x00632d73 - 24fc: 6f72746e svcvs 0x0072746e - 2500: 65575c6c ldrbvs r5, [r7, #-3180] - 2504: 65687461 strbvs r7, [r8, #-1121]! - 2508: 74532072 ldrbvc r2, [r3], #-114 - 250c: 6f697461 svcvs 0x00697461 - 2510: 6f43206e svcvs 0x0043206e - 2514: 6f72746e svcvs 0x0072746e - 2518: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 251c: 414d535c cmpmi sp, ip, asr r3 - 2520: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 2524: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 2528: 6f535c73 svcvs 0x00535c73 - 252c: 65637275 strbvs r7, [r3, #-629]! - 2530: 4d00005c stcmi 0, cr0, [r0, #-368] - 2534: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ - 2538: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 253c: 74707572 ldrbtvc r7, [r0], #-1394 - 2540: 0100632e tsteq r0, lr, lsr #6 - 2544: cbe6d898 blgt ff9b87ac - 2548: 0002e204 andeq lr, r2, r4, lsl #4 - 254c: 44020500 strmi r0, [r2], #-1280 - 2550: 0500402c streq r4, [r0, #-44] - 2554: 01a10301 undefined instruction 0x01a10301 - 2558: 1103050e tstne r3, lr, lsl #10 - 255c: 05201015 streq r1, [r0, #-21]! - 2560: 08052005 stmdaeq r5, {r0, r2, sp} - 2564: 1505052c strne r0, [r5, #-1324] - 2568: 0b051524 bleq 147a00 - 256c: 0203216c andeq r2, r3, #27 ; 0x1b - 2570: 0103151d tsteq r3, sp, lsl r5 - 2574: 2701031d smladcs r1, sp, r3, r0 - 2578: 1f1d0103 svcne 0x001d0103 - 257c: 15131303 ldrne r1, [r3, #-771] - 2580: 151d0203 ldrne r0, [sp, #-515] - 2584: 15200d05 strne r0, [r0, #-3333]! - 2588: 03200b05 teqeq r0, #5120 ; 0x1400 - 258c: 0303220d movweq r2, #12813 ; 0x320d - 2590: 0103151d tsteq r3, sp, lsl r5 - 2594: 0308051d movweq r0, #34077 ; 0x851d - 2598: 05051d06 streq r1, [r5, #-3334] - 259c: 08052525 stmdaeq r5, {r0, r2, r5, r8, sl, sp} - 25a0: 1a050512 bne 1439f0 - 25a4: 2007051a andcs r0, r7, sl, lsl r5 - 25a8: 02030905 andeq r0, r3, #81920 ; 0x14000 - 25ac: 240b0b40 strcs r0, [fp], #-2880 - 25b0: 0308051c movweq r0, #34076 ; 0x851c - 25b4: 05052206 streq r2, [r5, #-518] - 25b8: 08051517 stmdaeq r5, {r0, r1, r2, r4, r8, sl, ip} - 25bc: 1a050521 bne 143a48 - 25c0: 05200805 streq r0, [r0, #-2053]! - 25c4: 08051f05 stmdaeq r5, {r0, r2, r8, r9, sl, fp, ip} - 25c8: 1a050525 bne 143a64 - 25cc: 0c160305 ldceq 3, cr0, [r6], {5} - 25d0: 050e0203 streq r0, [lr, #-515] - 25d4: 12021a01 andne r1, r2, #4096 ; 0x1000 - 25d8: 00010100 andeq r0, r1, r0, lsl #2 - 25dc: 00000209 andeq r0, r0, r9, lsl #4 - 25e0: 02030002 andeq r0, r3, #2 ; 0x2 - 25e4: 01010000 tsteq r1, r0 - 25e8: 000a0500 andeq r0, sl, r0, lsl #10 - 25ec: 01010101 tsteq r1, r1, lsl #2 - 25f0: 00000000 andeq r0, r0, r0 - 25f4: 445c3a43 ldrbmi r3, [ip], #-2627 - 25f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 25fc: 73746e65 cmnvc r4, #1616 ; 0x650 - 2600: 646e6120 strbtvs r6, [lr], #-288 - 2604: 74655320 strbtvc r5, [r5], #-800 - 2608: 676e6974 undefined - 260c: 616d5c73 smcvs 54723 - 2610: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2614: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2618: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 261c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2620: 775c7374 undefined - 2624: 6f632d73 svcvs 0x00632d73 - 2628: 6f72746e svcvs 0x0072746e - 262c: 65575c6c ldrbvs r5, [r7, #-3180] - 2630: 65687461 strbvs r7, [r8, #-1121]! - 2634: 74532072 ldrbvc r2, [r3], #-114 - 2638: 6f697461 svcvs 0x00697461 - 263c: 6f43206e svcvs 0x0043206e - 2640: 6f72746e svcvs 0x0072746e - 2644: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2648: 4d4c505c stclmi 0, cr5, [ip, #-368] - 264c: 746e495c strbtvc r4, [lr], #-2396 - 2650: 61667265 cmnvs r6, r5, ror #4 - 2654: 005c6563 subseq r6, ip, r3, ror #10 - 2658: 445c3a43 ldrbmi r3, [ip], #-2627 - 265c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2660: 73746e65 cmnvc r4, #1616 ; 0x650 - 2664: 646e6120 strbtvs r6, [lr], #-288 - 2668: 74655320 strbtvc r5, [r5], #-800 - 266c: 676e6974 undefined - 2670: 616d5c73 smcvs 54723 - 2674: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2678: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 267c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2680: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2684: 775c7374 undefined - 2688: 6f632d73 svcvs 0x00632d73 - 268c: 6f72746e svcvs 0x0072746e - 2690: 65575c6c ldrbvs r5, [r7, #-3180] - 2694: 65687461 strbvs r7, [r8, #-1121]! - 2698: 74532072 ldrbvc r2, [r3], #-114 - 269c: 6f697461 svcvs 0x00697461 - 26a0: 6f43206e svcvs 0x0043206e - 26a4: 6f72746e svcvs 0x0072746e - 26a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 26ac: 4d4c505c stclmi 0, cr5, [ip, #-368] - 26b0: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 26b4: 65746e49 ldrbvs r6, [r4, #-3657]! - 26b8: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 26bc: 43005c65 movwmi r5, #3173 ; 0xc65 - 26c0: 6f445c3a svcvs 0x00445c3a - 26c4: 656d7563 strbvs r7, [sp, #-1379]! - 26c8: 2073746e rsbscs r7, r3, lr, ror #8 - 26cc: 20646e61 rsbcs r6, r4, r1, ror #28 - 26d0: 74746553 ldrbtvc r6, [r4], #-1363 - 26d4: 73676e69 cmnvc r7, #1680 ; 0x690 - 26d8: 6c616d5c stclvs 13, cr6, [r1], #-368 - 26dc: 61726976 cmnvs r2, r6, ror r9 - 26e0: 20794d5c rsbscs r4, r9, ip, asr sp - 26e4: 75636f44 strbvc r6, [r3, #-3908]! - 26e8: 746e656d strbtvc r6, [lr], #-1389 - 26ec: 73775c73 cmnvc r7, #29440 ; 0x7300 - 26f0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 26f4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 26f8: 6165575c cmnvs r5, ip, asr r7 - 26fc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 2700: 61745320 cmnvs r4, r0, lsr #6 - 2704: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2708: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 270c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2710: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 2714: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 - 2718: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 271c: 435c6563 cmpmi ip, #415236096 ; 0x18c00000 - 2720: 6f6d6d6f svcvs 0x006d6d6f - 2724: 79535c6e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, fp, ip, lr}^ - 2728: 00005c73 andeq r5, r0, r3, ror ip - 272c: 65626d45 strbvs r6, [r2, #-3397]! - 2730: 64656464 strbtvs r6, [r5], #-1124 - 2734: 65707954 ldrbvs r7, [r0, #-2388]! - 2738: 00682e73 rsbeq r2, r8, r3, ror lr - 273c: d79d9e01 ldrle r9, [sp, r1, lsl #28] - 2740: 507704c0 rsbspl r0, r7, r0, asr #9 - 2744: 6674616c ldrbtvs r6, [r4], -ip, ror #2 - 2748: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ - 274c: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} - 2750: a6010068 strge r0, [r1], -r8, rrx - 2754: 04c5d0be strbeq sp, [r5], #190 - 2758: 726f502e rsbvc r5, pc, #46 ; 0x2e - 275c: 6e6f4374 mcrvs 3, 3, r4, cr15, cr4, {3} - 2760: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} - 2764: f7010068 undefined instruction 0xf7010068 - 2768: 04ceedfb strbeq lr, [lr], #3579 - 276c: 5f465243 svcpl 0x00465243 - 2770: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 2774: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} - 2778: fbf70100 blx ffdc2b82 - 277c: 3204ceed andcc ip, r4, #3792 ; 0xed0 - 2780: 5f4d5243 svcpl 0x004d5243 - 2784: 73676552 cmnvc r7, #343932928 ; 0x14800000 - 2788: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 - 278c: c0d78ff8 ldrshgt r8, [r7], #248 - 2790: 47028104 strmi r8, [r2, -r4, lsl #2] - 2794: 5f4f4950 svcpl 0x004f4950 - 2798: 65746e49 ldrbvs r6, [r4, #-3657]! - 279c: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 27a0: 00682e65 rsbeq r2, r8, r5, ror #28 - 27a4: d78ff802 strle pc, [pc, r2, lsl #16] - 27a8: 069e04c0 ldreq r0, [lr], r0, asr #9 - 27ac: 74616c50 strbtvc r6, [r1], #-3152 - 27b0: 6d726f66 ldclvs 15, cr6, [r2, #-408]! - 27b4: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 - 27b8: c0d794f2 ldrshgt r9, [r7], #66 - 27bc: 5303be04 movwpl fp, #15876 ; 0x3e04 - 27c0: 525f6973 subspl r6, pc, #1884160 ; 0x1cc000 - 27c4: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} - 27c8: cc020068 stcgt 0, cr0, [r2], {104} - 27cc: 04ba9196 ldrteq r9, [sl], #406 - 27d0: 6c5001c5 ldfvse f0, [r0], {197} - 27d4: 6f667461 svcvs 0x00667461 - 27d8: 6e496d72 mcrvs 13, 2, r6, cr9, cr2, {3} - 27dc: 632e7469 teqvs lr, #1761607680 ; 0x69000000 - 27e0: 8ad40300 bhi ff5033e8 - 27e4: 6004c789 andvs ip, r4, r9, lsl #15 - 27e8: 00000000 andeq r0, r0, r0 - 27ec: 000000d4 ldrdeq r0, [r0], -r4 - 27f0: 00920002 addseq r0, r2, r2 - 27f4: 01020000 tsteq r2, r0 - 27f8: 000a0500 andeq r0, sl, r0, lsl #10 - 27fc: 01010101 tsteq r1, r1, lsl #2 - 2800: 00000000 andeq r0, r0, r0 - 2804: 445c3a43 ldrbmi r3, [ip], #-2627 - 2808: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 280c: 73746e65 cmnvc r4, #1616 ; 0x650 - 2810: 646e6120 strbtvs r6, [lr], #-288 - 2814: 74655320 strbtvc r5, [r5], #-800 - 2818: 676e6974 undefined - 281c: 616d5c73 smcvs 54723 - 2820: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2824: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2828: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 282c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2830: 775c7374 undefined - 2834: 6f632d73 svcvs 0x00632d73 - 2838: 6f72746e svcvs 0x0072746e - 283c: 65575c6c ldrbvs r5, [r7, #-3180] - 2840: 65687461 strbvs r7, [r8, #-1121]! - 2844: 74532072 ldrbvc r2, [r3], #-114 - 2848: 6f697461 svcvs 0x00697461 - 284c: 6f43206e svcvs 0x0043206e - 2850: 6f72746e svcvs 0x0072746e - 2854: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2858: 4d4c505c stclmi 0, cr5, [ip, #-368] - 285c: 756f535c strbvc r5, [pc, #-860]! ; 2508 <__USR_stack_size+0x1d08> - 2860: 5c656372 stclpl 3, cr6, [r5], #-456 - 2864: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! - 2868: 535c6e6f cmppl ip, #1776 ; 0x6f0 - 286c: 005c7379 subseq r7, ip, r9, ror r3 - 2870: 616c5000 cmnvs ip, r0 - 2874: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 - 2878: 696e496d stmdbvs lr!, {r0, r2, r3, r5, r6, r8, fp, lr}^ - 287c: 00632e74 rsbeq r2, r3, r4, ror lr - 2880: 898ad401 stmibhi sl, {r0, sl, ip, lr, pc} - 2884: 006004c7 rsbeq r0, r0, r7, asr #9 - 2888: a4020500 strge r0, [r2], #-1280 - 288c: 0500403c streq r4, [r0, #-60] - 2890: 0e1a0301 cdpeq 3, 1, cr0, cr10, cr1, {0} - 2894: 050b0305 streq r0, [fp, #-773] - 2898: 0e220301 cdpeq 3, 2, cr0, cr2, cr1, {0} - 289c: 240b0305 strcs r0, [fp], #-773 - 28a0: 1a111020 bne 446928 - 28a4: 10101510 andsne r1, r0, r0, lsl r5 - 28a8: 1a101010 bne 4068f0 - 28ac: 1f101015 svcne 0x00101015 - 28b0: 47030105 strmi r0, [r3, -r5, lsl #2] - 28b4: 03030514 movweq r0, #13588 ; 0x3514 - 28b8: 01050e36 tsteq r5, r6, lsr lr - 28bc: 020e0103 andeq r0, lr, #-1073741824 ; 0xc0000000 - 28c0: 01010003 tsteq r1, r3 - 28c4: 00000480 andeq r0, r0, r0, lsl #9 - 28c8: 047a0002 ldrbteq r0, [sl], #-2 - 28cc: 01010000 tsteq r1, r0 - 28d0: 000a0500 andeq r0, sl, r0, lsl #10 - 28d4: 01010101 tsteq r1, r1, lsl #2 - 28d8: 00000000 andeq r0, r0, r0 - 28dc: 445c3a43 ldrbmi r3, [ip], #-2627 - 28e0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 28e4: 73746e65 cmnvc r4, #1616 ; 0x650 - 28e8: 646e6120 strbtvs r6, [lr], #-288 - 28ec: 74655320 strbtvc r5, [r5], #-800 - 28f0: 676e6974 undefined - 28f4: 616d5c73 smcvs 54723 - 28f8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 28fc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2900: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2904: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2908: 775c7374 undefined - 290c: 6f632d73 svcvs 0x00632d73 - 2910: 6f72746e svcvs 0x0072746e - 2914: 65575c6c ldrbvs r5, [r7, #-3180] - 2918: 65687461 strbvs r7, [r8, #-1121]! - 291c: 74532072 ldrbvc r2, [r3], #-114 - 2920: 6f697461 svcvs 0x00697461 - 2924: 6f43206e svcvs 0x0043206e - 2928: 6f72746e svcvs 0x0072746e - 292c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2930: 4d4c505c stclmi 0, cr5, [ip, #-368] - 2934: 746e495c strbtvc r4, [lr], #-2396 - 2938: 61667265 cmnvs r6, r5, ror #4 - 293c: 005c6563 subseq r6, ip, r3, ror #10 - 2940: 445c3a43 ldrbmi r3, [ip], #-2627 - 2944: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2948: 73746e65 cmnvc r4, #1616 ; 0x650 - 294c: 646e6120 strbtvs r6, [lr], #-288 - 2950: 74655320 strbtvc r5, [r5], #-800 - 2954: 676e6974 undefined - 2958: 616d5c73 smcvs 54723 - 295c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2960: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2964: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2968: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 296c: 775c7374 undefined - 2970: 6f632d73 svcvs 0x00632d73 - 2974: 6f72746e svcvs 0x0072746e - 2978: 65575c6c ldrbvs r5, [r7, #-3180] - 297c: 65687461 strbvs r7, [r8, #-1121]! - 2980: 74532072 ldrbvc r2, [r3], #-114 - 2984: 6f697461 svcvs 0x00697461 - 2988: 6f43206e svcvs 0x0043206e - 298c: 6f72746e svcvs 0x0072746e - 2990: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2994: 414d535c cmpmi sp, ip, asr r3 - 2998: 6f435c43 svcvs 0x00435c43 - 299c: 6769666e strbvs r6, [r9, -lr, ror #12]! - 29a0: 5c657275 sfmpl f7, 2, [r5], #-468 - 29a4: 5c3a4300 ldcpl 3, cr4, [sl] - 29a8: 75636f44 strbvc r6, [r3, #-3908]! - 29ac: 746e656d strbtvc r6, [lr], #-1389 - 29b0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 29b4: 65532064 ldrbvs r2, [r3, #-100] - 29b8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 29bc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 29c0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 29c4: 4d5c6172 ldfmie f6, [ip, #-456] - 29c8: 6f442079 svcvs 0x00442079 - 29cc: 656d7563 strbvs r7, [sp, #-1379]! - 29d0: 5c73746e cfldrdpl mvd7, [r3], #-440 - 29d4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 29d8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 29dc: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 29e0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 29e4: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 29e8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 29ec: 43206e6f teqmi r0, #1776 ; 0x6f0 - 29f0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 29f4: 656c6c6f strbvs r6, [ip, #-3183]! - 29f8: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 29fc: 445c4341 ldrbmi r4, [ip], #-833 - 2a00: 65766972 ldrbvs r6, [r6, #-2418]! - 2a04: 435c7372 cmpmi ip, #-939524095 ; 0xc8000001 - 2a08: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 2a0c: 65727567 ldrbvs r7, [r2, #-1383]! - 2a10: 3a43005c bcc 10c2b88 - 2a14: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 2a18: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2a1c: 61207374 teqvs r0, r4, ror r3 - 2a20: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 2a24: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 2a28: 5c73676e ldclpl 7, cr6, [r3], #-440 - 2a2c: 766c616d strbtvc r6, [ip], -sp, ror #2 - 2a30: 5c617269 sfmpl f7, 2, [r1], #-420 - 2a34: 4420794d strtmi r7, [r0], #-2381 - 2a38: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2a3c: 73746e65 cmnvc r4, #1616 ; 0x650 - 2a40: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 2a44: 746e6f63 strbtvc r6, [lr], #-3939 - 2a48: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 2a4c: 74616557 strbtvc r6, [r1], #-1367 - 2a50: 20726568 rsbscs r6, r2, r8, ror #10 - 2a54: 74617453 strbtvc r7, [r1], #-1107 - 2a58: 206e6f69 rsbcs r6, lr, r9, ror #30 - 2a5c: 746e6f43 strbtvc r6, [lr], #-3907 - 2a60: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 2a64: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 2a68: 5c43414d stfple f4, [r3], {77} - 2a6c: 76697244 strbtvc r7, [r9], -r4, asr #4 - 2a70: 5c737265 lfmpl f7, 2, [r3], #-404 - 2a74: 65746e49 ldrbvs r6, [r4, #-3657]! - 2a78: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 2a7c: 43005c65 movwmi r5, #3173 ; 0xc65 - 2a80: 6f445c3a svcvs 0x00445c3a - 2a84: 656d7563 strbvs r7, [sp, #-1379]! - 2a88: 2073746e rsbscs r7, r3, lr, ror #8 - 2a8c: 20646e61 rsbcs r6, r4, r1, ror #28 - 2a90: 74746553 ldrbtvc r6, [r4], #-1363 - 2a94: 73676e69 cmnvc r7, #1680 ; 0x690 - 2a98: 6c616d5c stclvs 13, cr6, [r1], #-368 - 2a9c: 61726976 cmnvs r2, r6, ror r9 - 2aa0: 20794d5c rsbscs r4, r9, ip, asr sp - 2aa4: 75636f44 strbvc r6, [r3, #-3908]! - 2aa8: 746e656d strbtvc r6, [lr], #-1389 - 2aac: 73775c73 cmnvc r7, #29440 ; 0x7300 - 2ab0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 2ab4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2ab8: 6165575c cmnvs r5, ip, asr r7 - 2abc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 2ac0: 61745320 cmnvs r4, r0, lsr #6 - 2ac4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2ac8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 2acc: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2ad0: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 2ad4: 43414d53 movtmi r4, #7507 ; 0x1d53 - 2ad8: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 2adc: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 2ae0: 746e495c strbtvc r4, [lr], #-2396 - 2ae4: 61667265 cmnvs r6, r5, ror #4 - 2ae8: 675c6563 ldrbvs r6, [ip, -r3, ror #10] - 2aec: 5c726468 cfldrdpl mvd6, [r2], #-416 - 2af0: 5c3a4300 ldcpl 3, cr4, [sl] - 2af4: 75636f44 strbvc r6, [r3, #-3908]! - 2af8: 746e656d strbtvc r6, [lr], #-1389 - 2afc: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 2b00: 65532064 ldrbvs r2, [r3, #-100] - 2b04: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 2b08: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 2b0c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 2b10: 4d5c6172 ldfmie f6, [ip, #-456] - 2b14: 6f442079 svcvs 0x00442079 - 2b18: 656d7563 strbvs r7, [sp, #-1379]! - 2b1c: 5c73746e cfldrdpl mvd7, [r3], #-440 - 2b20: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 2b24: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2b28: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 2b2c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 2b30: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 2b34: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 2b38: 43206e6f teqmi r0, #1776 ; 0x6f0 - 2b3c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2b40: 656c6c6f strbvs r6, [ip, #-3183]! - 2b44: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 2b48: 445c4341 ldrbmi r4, [ip], #-833 - 2b4c: 65766972 ldrbvs r6, [r6, #-2418]! - 2b50: 4c5c7372 mrrcmi 3, 7, r7, ip, cr2 - 2b54: 6e496269 cdpvs 2, 4, cr6, cr9, cr9, {3} - 2b58: 66726574 undefined - 2b5c: 5c656361 stclpl 3, cr6, [r5], #-388 - 2b60: 5c3a4300 ldcpl 3, cr4, [sl] - 2b64: 75636f44 strbvc r6, [r3, #-3908]! - 2b68: 746e656d strbtvc r6, [lr], #-1389 - 2b6c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 2b70: 65532064 ldrbvs r2, [r3, #-100] - 2b74: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 2b78: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 2b7c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 2b80: 4d5c6172 ldfmie f6, [ip, #-456] - 2b84: 6f442079 svcvs 0x00442079 - 2b88: 656d7563 strbvs r7, [sp, #-1379]! - 2b8c: 5c73746e cfldrdpl mvd7, [r3], #-440 - 2b90: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 2b94: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2b98: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 2b9c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 2ba0: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 2ba4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 2ba8: 43206e6f teqmi r0, #1776 ; 0x6f0 - 2bac: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2bb0: 656c6c6f strbvs r6, [ip, #-3183]! - 2bb4: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 2bb8: 495c4341 ldmdbmi ip, {r0, r6, r8, r9, lr}^ - 2bbc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 2bc0: 65636166 strbvs r6, [r3, #-358]! - 2bc4: 3a43005c bcc 10c2d3c - 2bc8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 2bcc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2bd0: 61207374 teqvs r0, r4, ror r3 - 2bd4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 2bd8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 2bdc: 5c73676e ldclpl 7, cr6, [r3], #-440 - 2be0: 766c616d strbtvc r6, [ip], -sp, ror #2 - 2be4: 5c617269 sfmpl f7, 2, [r1], #-420 - 2be8: 4420794d strtmi r7, [r0], #-2381 - 2bec: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2bf0: 73746e65 cmnvc r4, #1616 ; 0x650 - 2bf4: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 2bf8: 746e6f63 strbtvc r6, [lr], #-3939 - 2bfc: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 2c00: 74616557 strbtvc r6, [r1], #-1367 - 2c04: 20726568 rsbscs r6, r2, r8, ror #10 - 2c08: 74617453 strbtvc r7, [r1], #-1107 - 2c0c: 206e6f69 rsbcs r6, lr, r9, ror #30 - 2c10: 746e6f43 strbtvc r6, [lr], #-3907 - 2c14: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 2c18: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 2c1c: 5c43414d stfple f4, [r3], {77} - 2c20: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 2c24: 005c6563 subseq r6, ip, r3, ror #10 - 2c28: 626d4500 rsbvs r4, sp, #0 ; 0x0 - 2c2c: 65646465 strbvs r6, [r4, #-1125]! - 2c30: 70795464 rsbsvc r5, r9, r4, ror #8 - 2c34: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} - 2c38: 9d9e0100 ldflss f0, [lr] - 2c3c: 7704c0d7 undefined - 2c40: 6974706f ldmdbvs r4!, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ - 2c44: 5f736e6f svcpl 0x00736e6f - 2c48: 666e6f63 strbtvs r6, [lr], -r3, ror #30 - 2c4c: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} - 2c50: 8e8e0200 cdphi 2, 8, cr0, cr14, cr0, {0} - 2c54: 1f04c1d5 svcne 0x0004c1d5 - 2c58: 72616f62 rsbvc r6, r1, #392 ; 0x188 - 2c5c: 6f635f64 svcvs 0x00635f64 - 2c60: 6769666e strbvs r6, [r9, -lr, ror #12]! - 2c64: 0300682e movweq r6, #2094 ; 0x82e - 2c68: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} - 2c6c: 65443d04 strbvs r3, [r4, #-3332] - 2c70: 2e79616c rpwcsez f6, f1, #4.0 - 2c74: a8040068 stmdage r4, {r3, r5, r6} - 2c78: 04c5d0be strbeq sp, [r5], #190 - 2c7c: 65724619 ldrbvs r4, [r2, #-1561]! - 2c80: 70654471 rsbvc r4, r5, r1, ror r4 - 2c84: 74746553 ldrbtvc r6, [r4], #-1363 - 2c88: 73676e69 cmnvc r7, #1680 ; 0x690 - 2c8c: 0400682e streq r6, [r0], #-2094 - 2c90: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} - 2c94: 616d3704 cmnvs sp, r4, lsl #14 - 2c98: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} - 2c9c: adc20500 cfstr64ge mvdx0, [r2] - 2ca0: 8c04c49d cfstrshi mvf12, [r4], {157} - 2ca4: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} - 2ca8: 73656874 cmnvc r5, #7602176 ; 0x740000 - 2cac: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 - 2cb0: 636e695f cmnvs lr, #1556480 ; 0x17c000 - 2cb4: 0600682e streq r6, [r0], -lr, lsr #16 - 2cb8: cc8199fa stcgt 9, cr9, [r1], {250} - 2cbc: 4701a004 strmi sl, [r1, -r4] - 2cc0: 61626f6c cmnvs r2, ip, ror #30 - 2cc4: 6665446c strbtvs r4, [r5], -ip, ror #8 - 2cc8: 00682e73 rsbeq r2, r8, r3, ror lr - 2ccc: eea2ba07 cdp 10, 10, cr11, cr2, cr7, {0} - 2cd0: 019104c5 orrseq r0, r1, r5, asr #9 - 2cd4: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 2cd8: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} - 2cdc: 6d656761 stclvs 7, cr6, [r5, #-388]! - 2ce0: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} - 2ce4: a6070068 strge r0, [r7], -r8, rrx - 2ce8: 04cbe6d8 strbeq lr, [fp], #1752 - 2cec: 725403d1 subsvc r0, r4, #1140850691 ; 0x44000003 - 2cf0: 63736e61 cmnvs r3, #1552 ; 0x610 - 2cf4: 65766965 ldrbvs r6, [r6, #-2405]! - 2cf8: 6e6f4372 mcrvs 3, 3, r4, cr15, cr2, {3} - 2cfc: 4d676966 stclmi 9, cr6, [r7, #-408]! - 2d00: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} - 2d04: 00682e74 rsbeq r2, r8, r4, ror lr - 2d08: eea0a207 cdp 2, 10, cr10, cr0, cr7, {0} - 2d0c: 01e604c5 mvneq r0, r5, asr #9 - 2d10: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 2d14: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} - 2d18: 6d656761 stclvs 7, cr6, [r5, #-388]! - 2d1c: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} - 2d20: a6080063 strge r0, [r8], -r3, rrx - 2d24: 04cbe6d8 strbeq lr, [fp], #1752 - 2d28: 61520694 ldrbvs r0, [r2, #-100] - 2d2c: 4d6f6964 stclmi 9, cr6, [pc, #-400]! - 2d30: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} - 2d34: 61725774 cmnvs r2, r4, ror r7 - 2d38: 72657070 rsbvc r7, r5, #112 ; 0x70 - 2d3c: 0800682e stmdaeq r0, {r1, r2, r3, r5, fp, sp, lr} - 2d40: cbe6d8a6 blgt ff9b8fe0 - 2d44: 0001e604 andeq lr, r1, r4, lsl #12 - 2d48: 000000b2 strheq r0, [r0], -r2 - 2d4c: 008c0002 addeq r0, ip, r2 - 2d50: 01020000 tsteq r2, r0 - 2d54: 000a0500 andeq r0, sl, r0, lsl #10 - 2d58: 01010101 tsteq r1, r1, lsl #2 - 2d5c: 00000000 andeq r0, r0, r0 - 2d60: 445c3a43 ldrbmi r3, [ip], #-2627 - 2d64: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2d68: 73746e65 cmnvc r4, #1616 ; 0x650 - 2d6c: 646e6120 strbtvs r6, [lr], #-288 - 2d70: 74655320 strbtvc r5, [r5], #-800 - 2d74: 676e6974 undefined - 2d78: 616d5c73 smcvs 54723 - 2d7c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2d80: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2d84: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2d88: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2d8c: 775c7374 undefined - 2d90: 6f632d73 svcvs 0x00632d73 - 2d94: 6f72746e svcvs 0x0072746e - 2d98: 65575c6c ldrbvs r5, [r7, #-3180] - 2d9c: 65687461 strbvs r7, [r8, #-1121]! - 2da0: 74532072 ldrbvc r2, [r3], #-114 - 2da4: 6f697461 svcvs 0x00697461 - 2da8: 6f43206e svcvs 0x0043206e - 2dac: 6f72746e svcvs 0x0072746e - 2db0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2db4: 414d535c cmpmi sp, ip, asr r3 - 2db8: 6f535c43 svcvs 0x00535c43 - 2dbc: 65637275 strbvs r7, [r3, #-629]! - 2dc0: 5200005c andpl r0, r0, #92 ; 0x5c - 2dc4: 6f696461 svcvs 0x00696461 - 2dc8: 616e614d cmnvs lr, sp, asr #2 - 2dcc: 656d6567 strbvs r6, [sp, #-1383]! - 2dd0: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 2dd4: d8a60100 stmiale r6!, {r8} - 2dd8: 9404cbe6 strls ip, [r4], #-3046 - 2ddc: 05000006 streq r0, [r0, #-6] - 2de0: 40237802 eormi r7, r3, r2, lsl #16 - 2de4: 032d0500 teqeq sp, #0 ; 0x0 - 2de8: 050e01b9 streq r0, [lr, #-441] - 2dec: 05051003 streq r1, [r5, #-3] - 2df0: 1a07052e bne 1c42b0 - 2df4: 05030105 streq r0, [r3, #-261] - 2df8: 0003021d andeq r0, r3, sp, lsl r2 - 2dfc: 00000101 andeq r0, r0, r1, lsl #2 - 2e00: 000000b1 strheq r0, [r0], -r1 - 2e04: 008c0002 addeq r0, ip, r2 - 2e08: 01020000 tsteq r2, r0 - 2e0c: 000a0500 andeq r0, sl, r0, lsl #10 - 2e10: 01010101 tsteq r1, r1, lsl #2 - 2e14: 00000000 andeq r0, r0, r0 - 2e18: 445c3a43 ldrbmi r3, [ip], #-2627 - 2e1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2e20: 73746e65 cmnvc r4, #1616 ; 0x650 - 2e24: 646e6120 strbtvs r6, [lr], #-288 - 2e28: 74655320 strbtvc r5, [r5], #-800 - 2e2c: 676e6974 undefined - 2e30: 616d5c73 smcvs 54723 - 2e34: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2e38: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2e3c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2e40: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2e44: 775c7374 undefined - 2e48: 6f632d73 svcvs 0x00632d73 - 2e4c: 6f72746e svcvs 0x0072746e - 2e50: 65575c6c ldrbvs r5, [r7, #-3180] - 2e54: 65687461 strbvs r7, [r8, #-1121]! - 2e58: 74532072 ldrbvc r2, [r3], #-114 - 2e5c: 6f697461 svcvs 0x00697461 - 2e60: 6f43206e svcvs 0x0043206e - 2e64: 6f72746e svcvs 0x0072746e - 2e68: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2e6c: 414d535c cmpmi sp, ip, asr r3 - 2e70: 6f535c43 svcvs 0x00535c43 - 2e74: 65637275 strbvs r7, [r3, #-629]! - 2e78: 5200005c andpl r0, r0, #92 ; 0x5c - 2e7c: 6f696461 svcvs 0x00696461 - 2e80: 616e614d cmnvs lr, sp, asr #2 - 2e84: 656d6567 strbvs r6, [sp, #-1383]! - 2e88: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 2e8c: d8a60100 stmiale r6!, {r8} - 2e90: 9404cbe6 strls ip, [r4], #-3046 - 2e94: 05000006 streq r0, [r0, #-6] - 2e98: 40239a02 eormi r9, r3, r2, lsl #20 - 2e9c: 03440500 movteq r0, #17664 ; 0x4500 - 2ea0: 050e01d9 streq r0, [lr, #-473] - 2ea4: 05051003 streq r1, [r5, #-3] - 2ea8: 101f1c2e andsne r1, pc, lr, lsr #24 - 2eac: 2a030510 bcs c42f4 - 2eb0: 01000302 tsteq r0, r2, lsl #6 - 2eb4: 00000001 andeq r0, r0, r1 - 2eb8: 000000b1 strheq r0, [r0], -r1 - 2ebc: 008c0002 addeq r0, ip, r2 - 2ec0: 01020000 tsteq r2, r0 - 2ec4: 000a0500 andeq r0, sl, r0, lsl #10 - 2ec8: 01010101 tsteq r1, r1, lsl #2 - 2ecc: 00000000 andeq r0, r0, r0 - 2ed0: 445c3a43 ldrbmi r3, [ip], #-2627 - 2ed4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2ed8: 73746e65 cmnvc r4, #1616 ; 0x650 - 2edc: 646e6120 strbtvs r6, [lr], #-288 - 2ee0: 74655320 strbtvc r5, [r5], #-800 - 2ee4: 676e6974 undefined - 2ee8: 616d5c73 smcvs 54723 - 2eec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2ef0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2ef4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2ef8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2efc: 775c7374 undefined - 2f00: 6f632d73 svcvs 0x00632d73 - 2f04: 6f72746e svcvs 0x0072746e - 2f08: 65575c6c ldrbvs r5, [r7, #-3180] - 2f0c: 65687461 strbvs r7, [r8, #-1121]! - 2f10: 74532072 ldrbvc r2, [r3], #-114 - 2f14: 6f697461 svcvs 0x00697461 - 2f18: 6f43206e svcvs 0x0043206e - 2f1c: 6f72746e svcvs 0x0072746e - 2f20: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2f24: 414d535c cmpmi sp, ip, asr r3 - 2f28: 6f535c43 svcvs 0x00535c43 - 2f2c: 65637275 strbvs r7, [r3, #-629]! - 2f30: 5200005c andpl r0, r0, #92 ; 0x5c - 2f34: 6f696461 svcvs 0x00696461 - 2f38: 616e614d cmnvs lr, sp, asr #2 - 2f3c: 656d6567 strbvs r6, [sp, #-1383]! - 2f40: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 2f44: d8a60100 stmiale r6!, {r8} - 2f48: 9404cbe6 strls ip, [r4], #-3046 - 2f4c: 05000006 streq r0, [r0, #-6] - 2f50: 4023ce02 eormi ip, r3, r2, lsl #28 - 2f54: 032c0500 teqeq ip, #0 ; 0x0 - 2f58: 050e01ed streq r0, [lr, #-493] - 2f5c: 05050b03 streq r0, [r5, #-2819] - 2f60: 0510152e ldreq r1, [r0, #-1326] - 2f64: 2c010303 stccs 3, cr0, [r1], {3} - 2f68: 01000202 tsteq r0, r2, lsl #4 - 2f6c: 00000001 andeq r0, r0, r1 - 2f70: 000000dc ldrdeq r0, [r0], -ip - 2f74: 008c0002 addeq r0, ip, r2 - 2f78: 01020000 tsteq r2, r0 - 2f7c: 000a0500 andeq r0, sl, r0, lsl #10 - 2f80: 01010101 tsteq r1, r1, lsl #2 - 2f84: 00000000 andeq r0, r0, r0 - 2f88: 445c3a43 ldrbmi r3, [ip], #-2627 - 2f8c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2f90: 73746e65 cmnvc r4, #1616 ; 0x650 - 2f94: 646e6120 strbtvs r6, [lr], #-288 - 2f98: 74655320 strbtvc r5, [r5], #-800 - 2f9c: 676e6974 undefined - 2fa0: 616d5c73 smcvs 54723 - 2fa4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2fa8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2fac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2fb0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2fb4: 775c7374 undefined - 2fb8: 6f632d73 svcvs 0x00632d73 - 2fbc: 6f72746e svcvs 0x0072746e - 2fc0: 65575c6c ldrbvs r5, [r7, #-3180] - 2fc4: 65687461 strbvs r7, [r8, #-1121]! - 2fc8: 74532072 ldrbvc r2, [r3], #-114 - 2fcc: 6f697461 svcvs 0x00697461 - 2fd0: 6f43206e svcvs 0x0043206e - 2fd4: 6f72746e svcvs 0x0072746e - 2fd8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2fdc: 414d535c cmpmi sp, ip, asr r3 - 2fe0: 6f535c43 svcvs 0x00535c43 - 2fe4: 65637275 strbvs r7, [r3, #-629]! - 2fe8: 5200005c andpl r0, r0, #92 ; 0x5c - 2fec: 6f696461 svcvs 0x00696461 - 2ff0: 616e614d cmnvs lr, sp, asr #2 - 2ff4: 656d6567 strbvs r6, [sp, #-1383]! - 2ff8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 2ffc: d8a60100 stmiale r6!, {r8} - 3000: 9404cbe6 strls ip, [r4], #-3046 - 3004: 05000006 streq r0, [r0, #-6] - 3008: 4023f402 eormi pc, r3, r2, lsl #8 - 300c: 03270500 teqeq r7, #0 ; 0x0 - 3010: 050e0280 streq r0, [lr, #-640] - 3014: 15050c03 strne r0, [r5, #-3075] - 3018: 0b05050a bleq 144448 - 301c: 032d051a teqeq sp, #109051904 ; 0x6800000 - 3020: 05050f7e streq r0, [r5, #-3966] - 3024: 2d05100b stccs 0, cr1, [r5, #-44] - 3028: 050f7e03 streq r7, [pc, #-3587] ; 222d <__USR_stack_size+0x1a2d> - 302c: 05100b05 ldreq r0, [r0, #-2821] - 3030: 0f7e032d svceq 0x007e032d - 3034: 100b0505 andne r0, fp, r5, lsl #10 - 3038: 7e032d05 cdpvc 13, 0, cr2, cr3, cr5, {0} - 303c: 0e03050f cfsh32eq mvfx0, mvfx3, #15 - 3040: 0b0f1010 bleq 3c7088 - 3044: 0b0f1910 bleq 3c948c - 3048: 0215150b andseq r1, r5, #46137344 ; 0x2c00000 - 304c: 01010004 tsteq r1, r4 - 3050: 000000b8 strheq r0, [r0], -r8 - 3054: 008c0002 addeq r0, ip, r2 - 3058: 01020000 tsteq r2, r0 - 305c: 000a0500 andeq r0, sl, r0, lsl #10 - 3060: 01010101 tsteq r1, r1, lsl #2 - 3064: 00000000 andeq r0, r0, r0 - 3068: 445c3a43 ldrbmi r3, [ip], #-2627 - 306c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3070: 73746e65 cmnvc r4, #1616 ; 0x650 - 3074: 646e6120 strbtvs r6, [lr], #-288 - 3078: 74655320 strbtvc r5, [r5], #-800 - 307c: 676e6974 undefined - 3080: 616d5c73 smcvs 54723 - 3084: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3088: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 308c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3090: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3094: 775c7374 undefined - 3098: 6f632d73 svcvs 0x00632d73 - 309c: 6f72746e svcvs 0x0072746e - 30a0: 65575c6c ldrbvs r5, [r7, #-3180] - 30a4: 65687461 strbvs r7, [r8, #-1121]! - 30a8: 74532072 ldrbvc r2, [r3], #-114 - 30ac: 6f697461 svcvs 0x00697461 - 30b0: 6f43206e svcvs 0x0043206e - 30b4: 6f72746e svcvs 0x0072746e - 30b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 30bc: 414d535c cmpmi sp, ip, asr r3 - 30c0: 6f535c43 svcvs 0x00535c43 - 30c4: 65637275 strbvs r7, [r3, #-629]! - 30c8: 5200005c andpl r0, r0, #92 ; 0x5c - 30cc: 6f696461 svcvs 0x00696461 - 30d0: 616e614d cmnvs lr, sp, asr #2 - 30d4: 656d6567 strbvs r6, [sp, #-1383]! - 30d8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 30dc: d8a60100 stmiale r6!, {r8} - 30e0: 9404cbe6 strls ip, [r4], #-3046 - 30e4: 05000006 streq r0, [r0, #-6] - 30e8: 40242802 eormi r2, r4, r2, lsl #16 - 30ec: 03260500 teqeq r6, #0 ; 0x0 - 30f0: 050e0297 streq r0, [lr, #-663] - 30f4: 05051103 streq r1, [r5, #-259] - 30f8: 2407052e strcs r0, [r7], #-1326 - 30fc: 06030305 streq r0, [r3], -r5, lsl #6 - 3100: 1b050531 blne 1445cc - 3104: 02170305 andseq r0, r7, #335544320 ; 0x14000000 - 3108: 01010003 tsteq r1, r3 - 310c: 000000f1 strdeq r0, [r0], -r1 - 3110: 008c0002 addeq r0, ip, r2 - 3114: 01020000 tsteq r2, r0 - 3118: 000a0500 andeq r0, sl, r0, lsl #10 - 311c: 01010101 tsteq r1, r1, lsl #2 - 3120: 00000000 andeq r0, r0, r0 - 3124: 445c3a43 ldrbmi r3, [ip], #-2627 - 3128: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 312c: 73746e65 cmnvc r4, #1616 ; 0x650 - 3130: 646e6120 strbtvs r6, [lr], #-288 - 3134: 74655320 strbtvc r5, [r5], #-800 - 3138: 676e6974 undefined - 313c: 616d5c73 smcvs 54723 - 3140: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3144: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3148: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 314c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3150: 775c7374 undefined - 3154: 6f632d73 svcvs 0x00632d73 - 3158: 6f72746e svcvs 0x0072746e - 315c: 65575c6c ldrbvs r5, [r7, #-3180] - 3160: 65687461 strbvs r7, [r8, #-1121]! - 3164: 74532072 ldrbvc r2, [r3], #-114 - 3168: 6f697461 svcvs 0x00697461 - 316c: 6f43206e svcvs 0x0043206e - 3170: 6f72746e svcvs 0x0072746e - 3174: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3178: 414d535c cmpmi sp, ip, asr r3 - 317c: 6f535c43 svcvs 0x00535c43 - 3180: 65637275 strbvs r7, [r3, #-629]! - 3184: 5200005c andpl r0, r0, #92 ; 0x5c - 3188: 6f696461 svcvs 0x00696461 - 318c: 616e614d cmnvs lr, sp, asr #2 - 3190: 656d6567 strbvs r6, [sp, #-1383]! - 3194: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 3198: d8a60100 stmiale r6!, {r8} - 319c: 9404cbe6 strls ip, [r4], #-3046 - 31a0: 05000006 streq r0, [r0, #-6] - 31a4: 40246002 eormi r6, r4, r2 - 31a8: 032a0500 teqeq sl, #0 ; 0x0 - 31ac: 050e02ba streq r0, [lr, #-698] - 31b0: 050b1103 streq r1, [fp, #-259] - 31b4: 0b145909 bleq 5195e0 - 31b8: 19191e11 ldmdbne r9, {r0, r4, r9, sl, fp, ip} - 31bc: 01030b14 tsteq r3, r4, lsl fp - 31c0: 330b0531 movwcc r0, #46385 ; 0xb531 - 31c4: 09050b1e stmdbeq r5, {r1, r2, r3, r4, r8, r9, fp} - 31c8: 05270503 streq r0, [r7, #-1283]! - 31cc: 0b19290b bleq 64d600 - 31d0: 1e2e0d05 cdpne 13, 2, cr0, cr14, cr5, {0} - 31d4: 0512200b ldreq r2, [r2, #-11] - 31d8: 14151a0f ldrne r1, [r5], #-2575 - 31dc: 19191e0b ldmdbne r9, {r0, r1, r3, r9, sl, fp, ip} - 31e0: 252c0b14 strcs r0, [ip, #-2836]! - 31e4: 06030905 streq r0, [r3], -r5, lsl #18 - 31e8: 04032913 streq r2, [r3], #-2323 - 31ec: 1803050e stmdane r3, {r1, r2, r3, r8, sl} - 31f0: 0a840505 beq fe10460c - 31f4: 0b500a0a bleq 1405a24 - 31f8: 1603050b strne r0, [r3], -fp, lsl #10 - 31fc: 01001102 tsteq r0, r2, lsl #2 - 3200: 00000001 andeq r0, r0, r1 - 3204: 00000114 andeq r0, r0, r4, lsl r1 - 3208: 008c0002 addeq r0, ip, r2 - 320c: 01020000 tsteq r2, r0 - 3210: 000a0500 andeq r0, sl, r0, lsl #10 - 3214: 01010101 tsteq r1, r1, lsl #2 - 3218: 00000000 andeq r0, r0, r0 - 321c: 445c3a43 ldrbmi r3, [ip], #-2627 - 3220: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3224: 73746e65 cmnvc r4, #1616 ; 0x650 - 3228: 646e6120 strbtvs r6, [lr], #-288 - 322c: 74655320 strbtvc r5, [r5], #-800 - 3230: 676e6974 undefined - 3234: 616d5c73 smcvs 54723 - 3238: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 323c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3240: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3244: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3248: 775c7374 undefined - 324c: 6f632d73 svcvs 0x00632d73 - 3250: 6f72746e svcvs 0x0072746e - 3254: 65575c6c ldrbvs r5, [r7, #-3180] - 3258: 65687461 strbvs r7, [r8, #-1121]! - 325c: 74532072 ldrbvc r2, [r3], #-114 - 3260: 6f697461 svcvs 0x00697461 - 3264: 6f43206e svcvs 0x0043206e - 3268: 6f72746e svcvs 0x0072746e - 326c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3270: 414d535c cmpmi sp, ip, asr r3 - 3274: 6f535c43 svcvs 0x00535c43 - 3278: 65637275 strbvs r7, [r3, #-629]! - 327c: 5200005c andpl r0, r0, #92 ; 0x5c - 3280: 6f696461 svcvs 0x00696461 - 3284: 616e614d cmnvs lr, sp, asr #2 - 3288: 656d6567 strbvs r6, [sp, #-1383]! - 328c: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 3290: d8a60100 stmiale r6!, {r8} - 3294: 9404cbe6 strls ip, [r4], #-3046 - 3298: 05000006 streq r0, [r0, #-6] - 329c: 4025c002 eormi ip, r5, r2 - 32a0: 032a0500 teqeq sl, #0 ; 0x0 - 32a4: 050e038e streq r0, [lr, #-910] - 32a8: 050b1103 streq r1, [fp, #-259] - 32ac: 0b146d09 bleq 51e6d8 - 32b0: 1e1e1511 mrcne 5, 0, r1, cr14, cr1, {0} - 32b4: 23191414 tstcs r9, #335544320 ; 0x14000000 - 32b8: 0b141419 bleq 508324 - 32bc: 05310103 ldreq r0, [r1, #-259]! - 32c0: 0b1e380b bleq 7912f4 - 32c4: 05030905 streq r0, [r3, #-2309] - 32c8: 290b0527 stmdbcs fp, {r0, r1, r2, r5, r8, sl} - 32cc: 0d050b19 vstreq d0, [r5, #-100] - 32d0: 1f0b1e24 svcne 0x000b1e24 - 32d4: 0f05132f svceq 0x0005132f - 32d8: 05590203 ldrbeq r0, [r9, #-515] - 32dc: 14151a11 ldrne r1, [r5], #-2577 - 32e0: 1e23100b cdpne 0, 2, cr1, cr3, cr11, {0} - 32e4: 28231914 stmdacs r3!, {r2, r4, r8, fp, ip} - 32e8: 0a1e7703 beq 7a0efc - 32ec: 240b1e0a strcs r1, [fp], #-3594 - 32f0: 14130303 ldrne r0, [r3], #-771 - 32f4: 0f050b19 svceq 0x00050b19 - 32f8: 1611052c ldrne r0, [r1], -ip, lsr #10 - 32fc: 03090530 movweq r0, #38192 ; 0x9530 - 3300: 0329130f teqeq r9, #1006632960 ; 0x3c000000 - 3304: 03050e05 movweq r0, #24069 ; 0x5e05 - 3308: 05180103 ldreq r0, [r8, #-259] - 330c: 0a0a8405 beq 2a4328 - 3310: 0b0b500a bleq 2d7340 - 3314: 02170305 andseq r0, r7, #335544320 ; 0x14000000 - 3318: 01010012 tsteq r1, r2, lsl r0 - 331c: 0000014f andeq r0, r0, pc, asr #2 - 3320: 00a90002 adceq r0, r9, r2 - 3324: 01020000 tsteq r2, r0 - 3328: 000a0500 andeq r0, sl, r0, lsl #10 - 332c: 01010101 tsteq r1, r1, lsl #2 - 3330: 00000000 andeq r0, r0, r0 - 3334: 445c3a43 ldrbmi r3, [ip], #-2627 - 3338: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 333c: 73746e65 cmnvc r4, #1616 ; 0x650 - 3340: 646e6120 strbtvs r6, [lr], #-288 - 3344: 74655320 strbtvc r5, [r5], #-800 - 3348: 676e6974 undefined - 334c: 616d5c73 smcvs 54723 - 3350: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3354: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3358: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 335c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3360: 775c7374 undefined - 3364: 6f632d73 svcvs 0x00632d73 - 3368: 6f72746e svcvs 0x0072746e - 336c: 65575c6c ldrbvs r5, [r7, #-3180] - 3370: 65687461 strbvs r7, [r8, #-1121]! - 3374: 74532072 ldrbvc r2, [r3], #-114 - 3378: 6f697461 svcvs 0x00697461 - 337c: 6f43206e svcvs 0x0043206e - 3380: 6f72746e svcvs 0x0072746e - 3384: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3388: 414d535c cmpmi sp, ip, asr r3 - 338c: 6f535c43 svcvs 0x00535c43 - 3390: 65637275 strbvs r7, [r3, #-629]! - 3394: 5200005c andpl r0, r0, #92 ; 0x5c - 3398: 6f696461 svcvs 0x00696461 - 339c: 616e614d cmnvs lr, sp, asr #2 - 33a0: 656d6567 strbvs r6, [sp, #-1383]! - 33a4: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 33a8: d8a60100 stmiale r6!, {r8} - 33ac: 9404cbe6 strls ip, [r4], #-3046 - 33b0: 64615206 strbtvs r5, [r1], #-518 - 33b4: 6e4d6f69 cdpvs 15, 4, cr6, cr13, cr9, {3} - 33b8: 746e6d67 strbtvc r6, [lr], #-3431 - 33bc: 70617257 rsbvc r7, r1, r7, asr r2 - 33c0: 2e726570 mrccs 5, 3, r6, cr2, cr0, {3} - 33c4: a6010068 strge r0, [r1], -r8, rrx - 33c8: 04cbe6d8 strbeq lr, [fp], #1752 - 33cc: 000001e6 andeq r0, r0, r6, ror #3 - 33d0: 27c00205 strbcs r0, [r0, r5, lsl #4] - 33d4: 2a050040 bcs 1434dc - 33d8: 0e03fb03 fmacdeq d15, d3, d3 - 33dc: 0b120305 bleq 483ff8 - 33e0: 14540905 ldrbne r0, [r4], #-2309 - 33e4: 0b05120b bleq 147c18 - 33e8: 0502041f streq r0, [r2, #-1055] - 33ec: 7cb20303 ldcvc 3, cr0, [r2], #12 - 33f0: 0c0b0519 cfstr32eq mvfx0, [fp], {25} - 33f4: 1a0b3c2e bne 2d24b4 - 33f8: c6030104 strgt r0, [r3], -r4, lsl #2 - 33fc: 250d4503 strcs r4, [sp, #-1283] - 3400: 02030905 andeq r0, r3, #81920 ; 0x14000 - 3404: 290b0513 stmdbcs fp, {r0, r1, r4, r8, sl} - 3408: 0d050b1e vstreq d0, [r5, #-120] - 340c: 2a0b1e24 bcs 2caca4 - 3410: 83030105 movwhi r0, #12549 ; 0x3105 - 3414: 03051801 movweq r1, #22529 ; 0x5801 - 3418: 0505160d streq r1, [r5, #-1549] - 341c: 16080516 undefined - 3420: 0e160505 cfmul32eq mvfx0, mvfx6, mvfx5 - 3424: 051c0305 ldreq r0, [ip, #-773] - 3428: 7ee8030d cdpvc 3, 14, cr0, cr8, cr13, {0} - 342c: 120b3c19 andne r3, fp, #6400 ; 0x1900 - 3430: 151f0f05 ldrne r0, [pc, #-3845] ; 2533 <__USR_stack_size+0x1d33> - 3434: 02040b14 andeq r0, r4, #20480 ; 0x5000 - 3438: 98030305 stmdals r3, {r0, r2, r8, r9} - 343c: 0b050f7c bleq 147234 - 3440: 0b2d240c bleq b4c478 - 3444: 0501041a streq r0, [r1, #-1050] - 3448: 03e2030f mvneq r0, #1006632960 ; 0x3c000000 - 344c: 0b372a13 bleq dcdca0 - 3450: 07030905 streq r0, [r3, -r5, lsl #18] - 3454: 04032913 streq r2, [r3], #-2323 - 3458: 0303050e movweq r0, #13582 ; 0x350e - 345c: 05051801 streq r1, [r5, #-2049] - 3460: 0a0a0a84 beq 285e78 - 3464: 050b0b50 streq r0, [fp, #-2896] - 3468: 13021703 movwne r1, #9987 ; 0x2703 - 346c: 00010100 andeq r0, r1, r0, lsl #2 - 3470: 000000f6 strdeq r0, [r0], -r6 - 3474: 008c0002 addeq r0, ip, r2 - 3478: 01020000 tsteq r2, r0 - 347c: 000a0500 andeq r0, sl, r0, lsl #10 - 3480: 01010101 tsteq r1, r1, lsl #2 - 3484: 00000000 andeq r0, r0, r0 - 3488: 445c3a43 ldrbmi r3, [ip], #-2627 - 348c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3490: 73746e65 cmnvc r4, #1616 ; 0x650 - 3494: 646e6120 strbtvs r6, [lr], #-288 - 3498: 74655320 strbtvc r5, [r5], #-800 - 349c: 676e6974 undefined - 34a0: 616d5c73 smcvs 54723 - 34a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 34a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 34ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 34b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 34b4: 775c7374 undefined - 34b8: 6f632d73 svcvs 0x00632d73 - 34bc: 6f72746e svcvs 0x0072746e - 34c0: 65575c6c ldrbvs r5, [r7, #-3180] - 34c4: 65687461 strbvs r7, [r8, #-1121]! - 34c8: 74532072 ldrbvc r2, [r3], #-114 - 34cc: 6f697461 svcvs 0x00697461 - 34d0: 6f43206e svcvs 0x0043206e - 34d4: 6f72746e svcvs 0x0072746e - 34d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 34dc: 414d535c cmpmi sp, ip, asr r3 - 34e0: 6f535c43 svcvs 0x00535c43 - 34e4: 65637275 strbvs r7, [r3, #-629]! - 34e8: 5200005c andpl r0, r0, #92 ; 0x5c - 34ec: 6f696461 svcvs 0x00696461 - 34f0: 616e614d cmnvs lr, sp, asr #2 - 34f4: 656d6567 strbvs r6, [sp, #-1383]! - 34f8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 34fc: d8a60100 stmiale r6!, {r8} - 3500: 9404cbe6 strls ip, [r4], #-3046 - 3504: 05000006 streq r0, [r0, #-6] - 3508: 40297c02 eormi r7, r9, r2, lsl #24 - 350c: 032a0500 teqeq sl, #0 ; 0x0 - 3510: 050e04d1 streq r0, [lr, #-1233] - 3514: 050b1103 streq r1, [fp, #-259] - 3518: 0b144f09 bleq 517144 - 351c: 19282d11 stmdbne r8!, {r0, r4, r8, sl, fp, sp} - 3520: 3101030b tstcc r1, fp, lsl #6 - 3524: 1e290b05 fmuldne d0, d9, d5 - 3528: 030d050b movweq r0, #54539 ; 0xd50b - 352c: 0f059507 svceq 0x00059507 - 3530: 2a1d0203 bcs 743d44 - 3534: 70030d05 andvc r0, r3, r5, lsl #26 - 3538: 0a0b0a0f beq 2c5d7c - 353c: 1e0a0a0b fmacsne s0, s20, s22 - 3540: 0f052a0b svceq 0x00052a0b - 3544: 0b141513 bleq 508998 - 3548: 0514232d ldreq r2, [r4, #-813] - 354c: 130c0309 movwne r0, #49929 ; 0xc309 - 3550: 0e040329 cdpeq 3, 0, cr0, cr4, cr9, {1} - 3554: 01030305 tsteq r3, r5, lsl #6 - 3558: 84050518 strhi r0, [r5], #-1304 - 355c: 500a0a0a andpl r0, sl, sl, lsl #20 - 3560: 03050b0b movweq r0, #23307 ; 0x5b0b - 3564: 0012021d andseq r0, r2, sp, lsl r2 - 3568: 00000101 andeq r0, r0, r1, lsl #2 - 356c: 000000d4 ldrdeq r0, [r0], -r4 - 3570: 008c0002 addeq r0, ip, r2 - 3574: 01020000 tsteq r2, r0 - 3578: 000a0500 andeq r0, sl, r0, lsl #10 - 357c: 01010101 tsteq r1, r1, lsl #2 - 3580: 00000000 andeq r0, r0, r0 - 3584: 445c3a43 ldrbmi r3, [ip], #-2627 - 3588: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 358c: 73746e65 cmnvc r4, #1616 ; 0x650 - 3590: 646e6120 strbtvs r6, [lr], #-288 - 3594: 74655320 strbtvc r5, [r5], #-800 - 3598: 676e6974 undefined - 359c: 616d5c73 smcvs 54723 - 35a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 35a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 35a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 35ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 35b0: 775c7374 undefined - 35b4: 6f632d73 svcvs 0x00632d73 - 35b8: 6f72746e svcvs 0x0072746e - 35bc: 65575c6c ldrbvs r5, [r7, #-3180] - 35c0: 65687461 strbvs r7, [r8, #-1121]! - 35c4: 74532072 ldrbvc r2, [r3], #-114 - 35c8: 6f697461 svcvs 0x00697461 - 35cc: 6f43206e svcvs 0x0043206e - 35d0: 6f72746e svcvs 0x0072746e - 35d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 35d8: 414d535c cmpmi sp, ip, asr r3 - 35dc: 6f535c43 svcvs 0x00535c43 - 35e0: 65637275 strbvs r7, [r3, #-629]! - 35e4: 5200005c andpl r0, r0, #92 ; 0x5c - 35e8: 6f696461 svcvs 0x00696461 - 35ec: 616e614d cmnvs lr, sp, asr #2 - 35f0: 656d6567 strbvs r6, [sp, #-1383]! - 35f4: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 35f8: d8a60100 stmiale r6!, {r8} - 35fc: 9404cbe6 strls ip, [r4], #-3046 - 3600: 05000006 streq r0, [r0, #-6] - 3604: 402aec02 eormi lr, sl, r2, lsl #24 - 3608: 03010500 movweq r0, #5376 ; 0x1500 - 360c: 050e05bd streq r0, [lr, #-1469] - 3610: 13030303 movwne r0, #13059 ; 0x3303 - 3614: 24250505 strtcs r0, [r5], #-1285 - 3618: 101b0705 andsne r0, fp, r5, lsl #14 - 361c: 05110505 ldreq r0, [r1, #-1285] - 3620: 1f0b2607 svcne 0x000b2607 - 3624: 16090515 undefined - 3628: 05101f10 ldreq r1, [r0, #-3856] - 362c: 1d010307 stcne 3, cr0, [r1, #-28] - 3630: 05160505 ldreq r0, [r6, #-1285] - 3634: 08055207 stmdaeq r5, {r0, r1, r2, r9, ip, lr} - 3638: 2105052b tstcs r5, fp, lsr #10 - 363c: 02250105 eoreq r0, r5, #1073741825 ; 0x40000001 - 3640: 01010007 tsteq r1, r7 - 3644: 000000bb strheq r0, [r0], -fp - 3648: 008c0002 addeq r0, ip, r2 - 364c: 01020000 tsteq r2, r0 - 3650: 000a0500 andeq r0, sl, r0, lsl #10 - 3654: 01010101 tsteq r1, r1, lsl #2 - 3658: 00000000 andeq r0, r0, r0 - 365c: 445c3a43 ldrbmi r3, [ip], #-2627 - 3660: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3664: 73746e65 cmnvc r4, #1616 ; 0x650 - 3668: 646e6120 strbtvs r6, [lr], #-288 - 366c: 74655320 strbtvc r5, [r5], #-800 - 3670: 676e6974 undefined - 3674: 616d5c73 smcvs 54723 - 3678: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 367c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3680: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3684: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3688: 775c7374 undefined - 368c: 6f632d73 svcvs 0x00632d73 - 3690: 6f72746e svcvs 0x0072746e - 3694: 65575c6c ldrbvs r5, [r7, #-3180] - 3698: 65687461 strbvs r7, [r8, #-1121]! - 369c: 74532072 ldrbvc r2, [r3], #-114 - 36a0: 6f697461 svcvs 0x00697461 - 36a4: 6f43206e svcvs 0x0043206e - 36a8: 6f72746e svcvs 0x0072746e - 36ac: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 36b0: 414d535c cmpmi sp, ip, asr r3 - 36b4: 6f535c43 svcvs 0x00535c43 - 36b8: 65637275 strbvs r7, [r3, #-629]! - 36bc: 5200005c andpl r0, r0, #92 ; 0x5c - 36c0: 6f696461 svcvs 0x00696461 - 36c4: 616e614d cmnvs lr, sp, asr #2 - 36c8: 656d6567 strbvs r6, [sp, #-1383]! - 36cc: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 36d0: d8a60100 stmiale r6!, {r8} - 36d4: 9404cbe6 strls ip, [r4], #-3046 - 36d8: 05000006 streq r0, [r0, #-6] - 36dc: 402b8402 eormi r8, fp, r2, lsl #8 - 36e0: 03010500 movweq r0, #5376 ; 0x1500 - 36e4: 050e05f2 streq r0, [lr, #-1522] - 36e8: 050c1203 streq r1, [ip, #-515] - 36ec: 07051c05 streq r1, [r5, -r5, lsl #24] - 36f0: 05052216 streq r2, [r5, #-534] - 36f4: 03052011 movweq r2, #20497 ; 0x5011 - 36f8: 030f7403 movweq r7, #62467 ; 0xf403 - 36fc: 0402220a streq r2, [r2], #-522 - 3700: 00010100 andeq r0, r1, r0, lsl #2 - 3704: 0000051d andeq r0, r0, sp, lsl r5 - 3708: 05170002 ldreq r0, [r7, #-2] - 370c: 01010000 tsteq r1, r0 - 3710: 000a0500 andeq r0, sl, r0, lsl #10 - 3714: 01010101 tsteq r1, r1, lsl #2 - 3718: 00000000 andeq r0, r0, r0 - 371c: 445c3a43 ldrbmi r3, [ip], #-2627 - 3720: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3724: 73746e65 cmnvc r4, #1616 ; 0x650 - 3728: 646e6120 strbtvs r6, [lr], #-288 - 372c: 74655320 strbtvc r5, [r5], #-800 - 3730: 676e6974 undefined - 3734: 616d5c73 smcvs 54723 - 3738: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 373c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3740: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3744: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3748: 775c7374 undefined - 374c: 6f632d73 svcvs 0x00632d73 - 3750: 6f72746e svcvs 0x0072746e - 3754: 65575c6c ldrbvs r5, [r7, #-3180] - 3758: 65687461 strbvs r7, [r8, #-1121]! - 375c: 74532072 ldrbvc r2, [r3], #-114 - 3760: 6f697461 svcvs 0x00697461 - 3764: 6f43206e svcvs 0x0043206e - 3768: 6f72746e svcvs 0x0072746e - 376c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3770: 4d4c505c stclmi 0, cr5, [ip, #-368] - 3774: 746e495c strbtvc r4, [lr], #-2396 - 3778: 61667265 cmnvs r6, r5, ror #4 - 377c: 005c6563 subseq r6, ip, r3, ror #10 - 3780: 445c3a43 ldrbmi r3, [ip], #-2627 - 3784: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3788: 73746e65 cmnvc r4, #1616 ; 0x650 - 378c: 646e6120 strbtvs r6, [lr], #-288 - 3790: 74655320 strbtvc r5, [r5], #-800 - 3794: 676e6974 undefined - 3798: 616d5c73 smcvs 54723 - 379c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 37a0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 37a4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 37a8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 37ac: 775c7374 undefined - 37b0: 6f632d73 svcvs 0x00632d73 - 37b4: 6f72746e svcvs 0x0072746e - 37b8: 65575c6c ldrbvs r5, [r7, #-3180] - 37bc: 65687461 strbvs r7, [r8, #-1121]! - 37c0: 74532072 ldrbvc r2, [r3], #-114 - 37c4: 6f697461 svcvs 0x00697461 - 37c8: 6f43206e svcvs 0x0043206e - 37cc: 6f72746e svcvs 0x0072746e - 37d0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 37d4: 4d4c505c stclmi 0, cr5, [ip, #-368] - 37d8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 37dc: 65746e49 ldrbvs r6, [r4, #-3657]! - 37e0: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 37e4: 43005c65 movwmi r5, #3173 ; 0xc65 - 37e8: 6f445c3a svcvs 0x00445c3a - 37ec: 656d7563 strbvs r7, [sp, #-1379]! - 37f0: 2073746e rsbscs r7, r3, lr, ror #8 - 37f4: 20646e61 rsbcs r6, r4, r1, ror #28 - 37f8: 74746553 ldrbtvc r6, [r4], #-1363 - 37fc: 73676e69 cmnvc r7, #1680 ; 0x690 - 3800: 6c616d5c stclvs 13, cr6, [r1], #-368 - 3804: 61726976 cmnvs r2, r6, ror r9 - 3808: 20794d5c rsbscs r4, r9, ip, asr sp - 380c: 75636f44 strbvc r6, [r3, #-3908]! - 3810: 746e656d strbtvc r6, [lr], #-1389 - 3814: 73775c73 cmnvc r7, #29440 ; 0x7300 - 3818: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 381c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3820: 6165575c cmnvs r5, ip, asr r7 - 3824: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 3828: 61745320 cmnvs r4, r0, lsr #6 - 382c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 3830: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 3834: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3838: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 383c: 43414d53 movtmi r4, #7507 ; 0x1d53 - 3840: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} - 3844: 75676966 strbvc r6, [r7, #-2406]! - 3848: 005c6572 subseq r6, ip, r2, ror r5 - 384c: 445c3a43 ldrbmi r3, [ip], #-2627 - 3850: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3854: 73746e65 cmnvc r4, #1616 ; 0x650 - 3858: 646e6120 strbtvs r6, [lr], #-288 - 385c: 74655320 strbtvc r5, [r5], #-800 - 3860: 676e6974 undefined - 3864: 616d5c73 smcvs 54723 - 3868: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 386c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3870: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3874: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3878: 775c7374 undefined - 387c: 6f632d73 svcvs 0x00632d73 - 3880: 6f72746e svcvs 0x0072746e - 3884: 65575c6c ldrbvs r5, [r7, #-3180] - 3888: 65687461 strbvs r7, [r8, #-1121]! - 388c: 74532072 ldrbvc r2, [r3], #-114 - 3890: 6f697461 svcvs 0x00697461 - 3894: 6f43206e svcvs 0x0043206e - 3898: 6f72746e svcvs 0x0072746e - 389c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 38a0: 414d535c cmpmi sp, ip, asr r3 - 38a4: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 38a8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 38ac: 6f435c73 svcvs 0x00435c73 - 38b0: 6769666e strbvs r6, [r9, -lr, ror #12]! - 38b4: 5c657275 sfmpl f7, 2, [r5], #-468 - 38b8: 5c3a4300 ldcpl 3, cr4, [sl] - 38bc: 75636f44 strbvc r6, [r3, #-3908]! - 38c0: 746e656d strbtvc r6, [lr], #-1389 - 38c4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 38c8: 65532064 ldrbvs r2, [r3, #-100] - 38cc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 38d0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 38d4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 38d8: 4d5c6172 ldfmie f6, [ip, #-456] - 38dc: 6f442079 svcvs 0x00442079 - 38e0: 656d7563 strbvs r7, [sp, #-1379]! - 38e4: 5c73746e cfldrdpl mvd7, [r3], #-440 - 38e8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 38ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 38f0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 38f4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 38f8: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 38fc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 3900: 43206e6f teqmi r0, #1776 ; 0x6f0 - 3904: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3908: 656c6c6f strbvs r6, [ip, #-3183]! - 390c: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 3910: 445c4341 ldrbmi r4, [ip], #-833 - 3914: 65766972 ldrbvs r6, [r6, #-2418]! - 3918: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ - 391c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 3920: 65636166 strbvs r6, [r3, #-358]! - 3924: 3a43005c bcc 10c3a9c - 3928: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 392c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3930: 61207374 teqvs r0, r4, ror r3 - 3934: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 3938: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 393c: 5c73676e ldclpl 7, cr6, [r3], #-440 - 3940: 766c616d strbtvc r6, [ip], -sp, ror #2 - 3944: 5c617269 sfmpl f7, 2, [r1], #-420 - 3948: 4420794d strtmi r7, [r0], #-2381 - 394c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3950: 73746e65 cmnvc r4, #1616 ; 0x650 - 3954: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 3958: 746e6f63 strbtvc r6, [lr], #-3939 - 395c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 3960: 74616557 strbtvc r6, [r1], #-1367 - 3964: 20726568 rsbscs r6, r2, r8, ror #10 - 3968: 74617453 strbtvc r7, [r1], #-1107 - 396c: 206e6f69 rsbcs r6, lr, r9, ror #30 - 3970: 746e6f43 strbtvc r6, [lr], #-3907 - 3974: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 3978: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 397c: 5c43414d stfple f4, [r3], {77} - 3980: 76697244 strbtvc r7, [r9], -r4, asr #4 - 3984: 5c737265 lfmpl f7, 2, [r3], #-404 - 3988: 65746e49 ldrbvs r6, [r4, #-3657]! - 398c: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 3990: 68675c65 stmdavs r7!, {r0, r2, r5, r6, sl, fp, ip, lr}^ - 3994: 005c7264 subseq r7, ip, r4, ror #4 - 3998: 445c3a43 ldrbmi r3, [ip], #-2627 - 399c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 39a0: 73746e65 cmnvc r4, #1616 ; 0x650 - 39a4: 646e6120 strbtvs r6, [lr], #-288 - 39a8: 74655320 strbtvc r5, [r5], #-800 - 39ac: 676e6974 undefined - 39b0: 616d5c73 smcvs 54723 - 39b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 39b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 39bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 39c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 39c4: 775c7374 undefined - 39c8: 6f632d73 svcvs 0x00632d73 - 39cc: 6f72746e svcvs 0x0072746e - 39d0: 65575c6c ldrbvs r5, [r7, #-3180] - 39d4: 65687461 strbvs r7, [r8, #-1121]! - 39d8: 74532072 ldrbvc r2, [r3], #-114 - 39dc: 6f697461 svcvs 0x00697461 - 39e0: 6f43206e svcvs 0x0043206e - 39e4: 6f72746e svcvs 0x0072746e - 39e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 39ec: 414d535c cmpmi sp, ip, asr r3 - 39f0: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 39f4: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 39f8: 694c5c73 stmdbvs ip, {r0, r1, r4, r5, r6, sl, fp, ip, lr}^ - 39fc: 746e4962 strbtvc r4, [lr], #-2402 - 3a00: 61667265 cmnvs r6, r5, ror #4 - 3a04: 005c6563 subseq r6, ip, r3, ror #10 - 3a08: 445c3a43 ldrbmi r3, [ip], #-2627 - 3a0c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3a10: 73746e65 cmnvc r4, #1616 ; 0x650 - 3a14: 646e6120 strbtvs r6, [lr], #-288 - 3a18: 74655320 strbtvc r5, [r5], #-800 - 3a1c: 676e6974 undefined - 3a20: 616d5c73 smcvs 54723 - 3a24: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3a28: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3a2c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3a30: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3a34: 775c7374 undefined - 3a38: 6f632d73 svcvs 0x00632d73 - 3a3c: 6f72746e svcvs 0x0072746e - 3a40: 65575c6c ldrbvs r5, [r7, #-3180] - 3a44: 65687461 strbvs r7, [r8, #-1121]! - 3a48: 74532072 ldrbvc r2, [r3], #-114 - 3a4c: 6f697461 svcvs 0x00697461 - 3a50: 6f43206e svcvs 0x0043206e - 3a54: 6f72746e svcvs 0x0072746e - 3a58: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3a5c: 414d535c cmpmi sp, ip, asr r3 - 3a60: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} - 3a64: 66726574 undefined - 3a68: 5c656361 stclpl 3, cr6, [r5], #-388 - 3a6c: 5c3a4300 ldcpl 3, cr4, [sl] - 3a70: 75636f44 strbvc r6, [r3, #-3908]! - 3a74: 746e656d strbtvc r6, [lr], #-1389 - 3a78: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 3a7c: 65532064 ldrbvs r2, [r3, #-100] - 3a80: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 3a84: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 3a88: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 3a8c: 4d5c6172 ldfmie f6, [ip, #-456] - 3a90: 6f442079 svcvs 0x00442079 - 3a94: 656d7563 strbvs r7, [sp, #-1379]! - 3a98: 5c73746e cfldrdpl mvd7, [r3], #-440 - 3a9c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 3aa0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3aa4: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 3aa8: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 3aac: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 3ab0: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 3ab4: 43206e6f teqmi r0, #1776 ; 0x6f0 - 3ab8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3abc: 656c6c6f strbvs r6, [ip, #-3183]! - 3ac0: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 3ac4: 535c4341 cmppl ip, #67108865 ; 0x4000001 - 3ac8: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 - 3acc: 00005c65 andeq r5, r0, r5, ror #24 - 3ad0: 65626d45 strbvs r6, [r2, #-3397]! - 3ad4: 64656464 strbtvs r6, [r5], #-1124 - 3ad8: 65707954 ldrbvs r7, [r0, #-2388]! - 3adc: 00682e73 rsbeq r2, r8, r3, ror lr - 3ae0: d79d9e01 ldrle r9, [sp, r1, lsl #28] - 3ae4: 437704c0 cmnmi r7, #-1073741824 ; 0xc0000000 - 3ae8: 525f4d52 subspl r4, pc, #5248 ; 0x1480 - 3aec: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} - 3af0: f8020068 undefined instruction 0xf8020068 - 3af4: 04c0d78f strbeq sp, [r0], #1935 - 3af8: 6c500281 lfmvs f0, 2, [r0], {129} - 3afc: 6f667461 svcvs 0x00667461 - 3b00: 682e6d72 stmdavs lr!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} - 3b04: 94f20200 ldrbtls r0, [r2], #512 - 3b08: be04c0d7 mcrlt 0, 0, ip, cr4, cr7, {6} - 3b0c: 69735303 ldmdbvs r3!, {r0, r1, r8, r9, ip, lr}^ - 3b10: 6765525f undefined - 3b14: 00682e73 rsbeq r2, r8, r3, ror lr - 3b18: 9196cc02 orrsls ip, r6, r2, lsl #24 - 3b1c: 01c504ba strheq r0, [r5, #74] - 3b20: 6974706f ldmdbvs r4!, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ - 3b24: 5f736e6f svcpl 0x00736e6f - 3b28: 666e6f63 strbtvs r6, [lr], -r3, ror #30 - 3b2c: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} - 3b30: 8e8e0300 cdphi 3, 8, cr0, cr14, cr0, {0} - 3b34: 1f04c1d5 svcne 0x0004c1d5 - 3b38: 72616f62 rsbvc r6, r1, #392 ; 0x188 - 3b3c: 6f635f64 svcvs 0x00635f64 - 3b40: 6769666e strbvs r6, [r9, -lr, ror #12]! - 3b44: 0400682e streq r6, [r0], #-2094 - 3b48: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} - 3b4c: 65443d04 strbvs r3, [r4, #-3332] - 3b50: 2e79616c rpwcsez f6, f1, #4.0 - 3b54: a8050068 stmdage r5, {r3, r5, r6} - 3b58: 04c5d0be strbeq sp, [r5], #190 - 3b5c: 65724619 ldrbvs r4, [r2, #-1561]! - 3b60: 70654471 rsbvc r4, r5, r1, ror r4 - 3b64: 74746553 ldrbtvc r6, [r4], #-1363 - 3b68: 73676e69 cmnvc r7, #1680 ; 0x690 - 3b6c: 0500682e streq r6, [r0, #-2094] - 3b70: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} - 3b74: 616d3704 cmnvs sp, r4, lsl #14 - 3b78: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} - 3b7c: adc20600 stclge 6, cr0, [r2] - 3b80: 8c04c49d cfstrshi mvf12, [r4], {157} - 3b84: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} - 3b88: 73656874 cmnvc r5, #7602176 ; 0x740000 - 3b8c: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 - 3b90: 636e695f cmnvs lr, #1556480 ; 0x17c000 - 3b94: 0700682e streq r6, [r0, -lr, lsr #16] - 3b98: cc8199fa stcgt 9, cr9, [r1], {250} - 3b9c: 7201a004 andvc sl, r1, #4 ; 0x4 - 3ba0: 695f6669 ldmdbvs pc, {r0, r3, r5, r6, r9, sl, sp, lr}^ - 3ba4: 682e636e stmdavs lr!, {r1, r2, r3, r5, r6, r8, r9, sp, lr} - 3ba8: ca820700 bgt fe0857b0 - 3bac: 9204c5ff andls ip, r4, #1069547520 ; 0x3fc00000 - 3bb0: 6f6c4701 svcvs 0x006c4701 - 3bb4: 446c6162 strbtmi r6, [ip], #-354 - 3bb8: 2e736665 cdpcs 6, 7, cr6, cr3, cr5, {3} - 3bbc: ba080068 blt 203d64 - 3bc0: 04c5eea2 strbeq lr, [r5], #3746 - 3bc4: 61520191 ldrbvs r0, [r2, #-17] - 3bc8: 4d6f6964 stclmi 9, cr6, [pc, #-400]! - 3bcc: 67616e61 strbvs r6, [r1, -r1, ror #28]! - 3bd0: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} - 3bd4: 00682e74 rsbeq r2, r8, r4, ror lr - 3bd8: e6d8a608 ldrb sl, [r8], r8, lsl #12 - 3bdc: 03d104cb bicseq r0, r1, #-889192448 ; 0xcb000000 - 3be0: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} - 3be4: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ - 3be8: 43726576 cmnmi r2, #494927872 ; 0x1d800000 - 3bec: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 3bf0: 676e4d67 strbvs r4, [lr, -r7, ror #26]! - 3bf4: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} - 3bf8: a2080068 andge r0, r8, #104 ; 0x68 - 3bfc: 04c5eea0 strbeq lr, [r5], #3744 - 3c00: 725401e6 subsvc r0, r4, #-2147483591 ; 0x80000039 - 3c04: 63736e61 cmnvs r3, #1552 ; 0x610 - 3c08: 65766965 ldrbvs r6, [r6, #-2405]! - 3c0c: 6e6f4372 mcrvs 3, 3, r4, cr15, cr2, {3} - 3c10: 4d676966 stclmi 9, cr6, [r7, #-408]! - 3c14: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} - 3c18: 00632e74 rsbeq r2, r3, r4, ror lr - 3c1c: efbae409 svc 0x00bae409 - 3c20: 038804ce orreq r0, r8, #-838860800 ; 0xce000000 - 3c24: 00000000 andeq r0, r0, r0 - 3c28: 000000af andeq r0, r0, pc, lsr #1 - 3c2c: 00940002 addseq r0, r4, r2 - 3c30: 01020000 tsteq r2, r0 - 3c34: 000a0500 andeq r0, sl, r0, lsl #10 - 3c38: 01010101 tsteq r1, r1, lsl #2 - 3c3c: 00000000 andeq r0, r0, r0 - 3c40: 445c3a43 ldrbmi r3, [ip], #-2627 - 3c44: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3c48: 73746e65 cmnvc r4, #1616 ; 0x650 - 3c4c: 646e6120 strbtvs r6, [lr], #-288 - 3c50: 74655320 strbtvc r5, [r5], #-800 - 3c54: 676e6974 undefined - 3c58: 616d5c73 smcvs 54723 - 3c5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3c60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3c64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3c68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3c6c: 775c7374 undefined - 3c70: 6f632d73 svcvs 0x00632d73 - 3c74: 6f72746e svcvs 0x0072746e - 3c78: 65575c6c ldrbvs r5, [r7, #-3180] - 3c7c: 65687461 strbvs r7, [r8, #-1121]! - 3c80: 74532072 ldrbvc r2, [r3], #-114 - 3c84: 6f697461 svcvs 0x00697461 - 3c88: 6f43206e svcvs 0x0043206e - 3c8c: 6f72746e svcvs 0x0072746e - 3c90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3c94: 414d535c cmpmi sp, ip, asr r3 - 3c98: 6f535c43 svcvs 0x00535c43 - 3c9c: 65637275 strbvs r7, [r3, #-629]! - 3ca0: 5400005c strpl r0, [r0], #-92 - 3ca4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 3ca8: 76696563 strbtvc r6, [r9], -r3, ror #10 - 3cac: 6f437265 svcvs 0x00437265 - 3cb0: 6769666e strbvs r6, [r9, -lr, ror #12]! - 3cb4: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 3cb8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 3cbc: bae40100 blt ff9040c4 - 3cc0: 8804ceef stmdahi r4, {r0, r1, r2, r3, r5, r6, r7, r9, sl, fp, lr, pc} - 3cc4: 05000003 streq r0, [r0, #-3] - 3cc8: 4038c802 eorsmi ip, r8, r2, lsl #16 - 3ccc: 03010500 movweq r0, #5376 ; 0x1500 - 3cd0: 050e029b streq r0, [lr, #-667] - 3cd4: 04020b03 streq r0, [r2], #-2819 - 3cd8: 00010100 andeq r0, r1, r0, lsl #2 - 3cdc: 000000f2 strdeq r0, [r0], -r2 - 3ce0: 00940002 addseq r0, r4, r2 - 3ce4: 01020000 tsteq r2, r0 - 3ce8: 000a0500 andeq r0, sl, r0, lsl #10 - 3cec: 01010101 tsteq r1, r1, lsl #2 - 3cf0: 00000000 andeq r0, r0, r0 - 3cf4: 445c3a43 ldrbmi r3, [ip], #-2627 - 3cf8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3cfc: 73746e65 cmnvc r4, #1616 ; 0x650 - 3d00: 646e6120 strbtvs r6, [lr], #-288 - 3d04: 74655320 strbtvc r5, [r5], #-800 - 3d08: 676e6974 undefined - 3d0c: 616d5c73 smcvs 54723 - 3d10: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3d14: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3d18: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3d1c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3d20: 775c7374 undefined - 3d24: 6f632d73 svcvs 0x00632d73 - 3d28: 6f72746e svcvs 0x0072746e - 3d2c: 65575c6c ldrbvs r5, [r7, #-3180] - 3d30: 65687461 strbvs r7, [r8, #-1121]! - 3d34: 74532072 ldrbvc r2, [r3], #-114 - 3d38: 6f697461 svcvs 0x00697461 - 3d3c: 6f43206e svcvs 0x0043206e - 3d40: 6f72746e svcvs 0x0072746e - 3d44: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3d48: 414d535c cmpmi sp, ip, asr r3 - 3d4c: 6f535c43 svcvs 0x00535c43 - 3d50: 65637275 strbvs r7, [r3, #-629]! - 3d54: 5400005c strpl r0, [r0], #-92 - 3d58: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 3d5c: 76696563 strbtvc r6, [r9], -r3, ror #10 - 3d60: 6f437265 svcvs 0x00437265 - 3d64: 6769666e strbvs r6, [r9, -lr, ror #12]! - 3d68: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 3d6c: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 3d70: bae40100 blt ff904178 - 3d74: 8804ceef stmdahi r4, {r0, r1, r2, r3, r5, r6, r7, r9, sl, fp, lr, pc} - 3d78: 05000003 streq r0, [r0, #-3] - 3d7c: 4038d002 eorsmi sp, r8, r2 - 3d80: 03010500 movweq r0, #5376 ; 0x1500 - 3d84: 050e02ba streq r0, [lr, #-698] - 3d88: 050c1803 streq r1, [ip, #-2051] - 3d8c: 2c102905 ldccs 9, cr2, [r0], {5} - 3d90: 49030105 stmdbmi r3, {r0, r2, r8} - 3d94: 0b03050a bleq c51c4 - 3d98: 33030505 movwcc r0, #13573 ; 0x3505 - 3d9c: 03030513 movweq r0, #13587 ; 0x3513 - 3da0: 35030a4a strcc r0, [r3, #-2634] - 3da4: 0e010318 mcreq 3, 0, r0, cr1, cr8, {0} - 3da8: 10030105 andne r0, r3, r5, lsl #2 - 3dac: 0d03050e cfstr32eq mvfx0, [r3, #-56] - 3db0: 1e190516 mrcne 5, 0, r0, cr9, cr6, {0} - 3db4: 051e0e05 ldreq r0, [lr, #-3589] - 3db8: 10152003 andsne r2, r5, r3 - 3dbc: 15151a15 ldrne r1, [r5, #-2581] - 3dc0: 1a1a151a bne 689230 - 3dc4: 1e5b031b mrcne 3, 2, r0, cr11, cr11, {0} - 3dc8: 24030105 strcs r0, [r3], #-261 - 3dcc: 0016020e andseq r0, r6, lr, lsl #4 - 3dd0: 00000101 andeq r0, r0, r1, lsl #2 - 3dd4: 000002f3 strdeq r0, [r0], -r3 - 3dd8: 02ed0002 rsceq r0, sp, #2 ; 0x2 - 3ddc: 01010000 tsteq r1, r0 - 3de0: 000a0500 andeq r0, sl, r0, lsl #10 - 3de4: 01010101 tsteq r1, r1, lsl #2 - 3de8: 00000000 andeq r0, r0, r0 - 3dec: 445c3a43 ldrbmi r3, [ip], #-2627 - 3df0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3df4: 73746e65 cmnvc r4, #1616 ; 0x650 - 3df8: 646e6120 strbtvs r6, [lr], #-288 - 3dfc: 74655320 strbtvc r5, [r5], #-800 - 3e00: 676e6974 undefined - 3e04: 616d5c73 smcvs 54723 - 3e08: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3e0c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3e10: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3e14: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3e18: 775c7374 undefined - 3e1c: 6f632d73 svcvs 0x00632d73 - 3e20: 6f72746e svcvs 0x0072746e - 3e24: 65575c6c ldrbvs r5, [r7, #-3180] - 3e28: 65687461 strbvs r7, [r8, #-1121]! - 3e2c: 74532072 ldrbvc r2, [r3], #-114 - 3e30: 6f697461 svcvs 0x00697461 - 3e34: 6f43206e svcvs 0x0043206e - 3e38: 6f72746e svcvs 0x0072746e - 3e3c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3e40: 4d4c505c stclmi 0, cr5, [ip, #-368] - 3e44: 746e495c strbtvc r4, [lr], #-2396 - 3e48: 61667265 cmnvs r6, r5, ror #4 - 3e4c: 005c6563 subseq r6, ip, r3, ror #10 - 3e50: 445c3a43 ldrbmi r3, [ip], #-2627 - 3e54: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3e58: 73746e65 cmnvc r4, #1616 ; 0x650 - 3e5c: 646e6120 strbtvs r6, [lr], #-288 - 3e60: 74655320 strbtvc r5, [r5], #-800 - 3e64: 676e6974 undefined - 3e68: 616d5c73 smcvs 54723 - 3e6c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3e70: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3e74: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3e78: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3e7c: 775c7374 undefined - 3e80: 6f632d73 svcvs 0x00632d73 - 3e84: 6f72746e svcvs 0x0072746e - 3e88: 65575c6c ldrbvs r5, [r7, #-3180] - 3e8c: 65687461 strbvs r7, [r8, #-1121]! - 3e90: 74532072 ldrbvc r2, [r3], #-114 - 3e94: 6f697461 svcvs 0x00697461 - 3e98: 6f43206e svcvs 0x0043206e - 3e9c: 6f72746e svcvs 0x0072746e - 3ea0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3ea4: 4d4c505c stclmi 0, cr5, [ip, #-368] - 3ea8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 3eac: 65746e49 ldrbvs r6, [r4, #-3657]! - 3eb0: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 3eb4: 43005c65 movwmi r5, #3173 ; 0xc65 - 3eb8: 6f445c3a svcvs 0x00445c3a - 3ebc: 656d7563 strbvs r7, [sp, #-1379]! - 3ec0: 2073746e rsbscs r7, r3, lr, ror #8 - 3ec4: 20646e61 rsbcs r6, r4, r1, ror #28 - 3ec8: 74746553 ldrbtvc r6, [r4], #-1363 - 3ecc: 73676e69 cmnvc r7, #1680 ; 0x690 - 3ed0: 6c616d5c stclvs 13, cr6, [r1], #-368 - 3ed4: 61726976 cmnvs r2, r6, ror r9 - 3ed8: 20794d5c rsbscs r4, r9, ip, asr sp - 3edc: 75636f44 strbvc r6, [r3, #-3908]! - 3ee0: 746e656d strbtvc r6, [lr], #-1389 - 3ee4: 73775c73 cmnvc r7, #29440 ; 0x7300 - 3ee8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 3eec: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3ef0: 6165575c cmnvs r5, ip, asr r7 - 3ef4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 3ef8: 61745320 cmnvs r4, r0, lsr #6 - 3efc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 3f00: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 3f04: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3f08: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 3f0c: 43414d53 movtmi r4, #7507 ; 0x1d53 - 3f10: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 3f14: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 3f18: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 3f1c: 65746e49 ldrbvs r6, [r4, #-3657]! - 3f20: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 3f24: 43005c65 movwmi r5, #3173 ; 0xc65 - 3f28: 6f445c3a svcvs 0x00445c3a - 3f2c: 656d7563 strbvs r7, [sp, #-1379]! - 3f30: 2073746e rsbscs r7, r3, lr, ror #8 - 3f34: 20646e61 rsbcs r6, r4, r1, ror #28 - 3f38: 74746553 ldrbtvc r6, [r4], #-1363 - 3f3c: 73676e69 cmnvc r7, #1680 ; 0x690 - 3f40: 6c616d5c stclvs 13, cr6, [r1], #-368 - 3f44: 61726976 cmnvs r2, r6, ror r9 - 3f48: 20794d5c rsbscs r4, r9, ip, asr sp - 3f4c: 75636f44 strbvc r6, [r3, #-3908]! - 3f50: 746e656d strbtvc r6, [lr], #-1389 - 3f54: 73775c73 cmnvc r7, #29440 ; 0x7300 - 3f58: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 3f5c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3f60: 6165575c cmnvs r5, ip, asr r7 - 3f64: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 3f68: 61745320 cmnvs r4, r0, lsr #6 - 3f6c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 3f70: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 3f74: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3f78: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 3f7c: 43414d53 movtmi r4, #7507 ; 0x1d53 - 3f80: 746e495c strbtvc r4, [lr], #-2396 - 3f84: 61667265 cmnvs r6, r5, ror #4 - 3f88: 005c6563 subseq r6, ip, r3, ror #10 - 3f8c: 445c3a43 ldrbmi r3, [ip], #-2627 - 3f90: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3f94: 73746e65 cmnvc r4, #1616 ; 0x650 - 3f98: 646e6120 strbtvs r6, [lr], #-288 - 3f9c: 74655320 strbtvc r5, [r5], #-800 - 3fa0: 676e6974 undefined - 3fa4: 616d5c73 smcvs 54723 - 3fa8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3fac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3fb0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3fb4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3fb8: 775c7374 undefined - 3fbc: 6f632d73 svcvs 0x00632d73 - 3fc0: 6f72746e svcvs 0x0072746e - 3fc4: 65575c6c ldrbvs r5, [r7, #-3180] - 3fc8: 65687461 strbvs r7, [r8, #-1121]! - 3fcc: 74532072 ldrbvc r2, [r3], #-114 - 3fd0: 6f697461 svcvs 0x00697461 - 3fd4: 6f43206e svcvs 0x0043206e - 3fd8: 6f72746e svcvs 0x0072746e - 3fdc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3fe0: 414d535c cmpmi sp, ip, asr r3 - 3fe4: 6f535c43 svcvs 0x00535c43 - 3fe8: 65637275 strbvs r7, [r3, #-629]! - 3fec: 4500005c strmi r0, [r0, #-92] - 3ff0: 6465626d strbtvs r6, [r5], #-621 - 3ff4: 54646564 strbtpl r6, [r4], #-1380 - 3ff8: 73657079 cmnvc r5, #121 ; 0x79 - 3ffc: 0100682e tsteq r0, lr, lsr #16 - 4000: c0d79d9e smullsgt r9, r7, lr, sp - 4004: 57507704 ldrbpl r7, [r0, -r4, lsl #14] - 4008: 6f435f52 svcvs 0x00435f52 - 400c: 6769666e strbvs r6, [r9, -lr, ror #12]! - 4010: 0100682e tsteq r0, lr, lsr #16 - 4014: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} - 4018: 52433104 subpl r3, r3, #1 ; 0x1 - 401c: 65525f4d ldrbvs r5, [r2, #-3917] - 4020: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} - 4024: 8ff80200 svchi 0x00f80200 - 4028: 8104c0d7 ldrdhi ip, [r4, -r7] - 402c: 6d724302 ldclvs 3, cr4, [r2, #-8]! - 4030: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 - 4034: c0d794f2 ldrshgt r9, [r7], #66 - 4038: 5005cb04 andpl ip, r5, r4, lsl #22 - 403c: 6674616c ldrbtvs r6, [r4], -ip, ror #2 - 4040: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} - 4044: f2020068 vhadd.s8 q0, q1, q12 - 4048: 04c0d794 strbeq sp, [r0], #1940 - 404c: 735303be cmpvc r3, #-134217726 ; 0xf8000002 - 4050: 65525f69 ldrbvs r5, [r2, #-3945] - 4054: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} - 4058: 96cc0200 strbls r0, [ip], r0, lsl #4 - 405c: c504ba91 strgt fp, [r4, #-2705] - 4060: 66697201 strbtvs r7, [r9], -r1, lsl #4 - 4064: 636e695f cmnvs lr, #1556480 ; 0x17c000 - 4068: 0300682e movweq r6, #2094 ; 0x82e - 406c: c5ffca82 ldrbgt ip, [pc, #2690]! ; 4af6 - 4070: 47019204 strmi r9, [r1, -r4, lsl #4] - 4074: 61626f6c cmnvs r2, ip, ror #30 - 4078: 6665446c strbtvs r4, [r5], -ip, ror #8 - 407c: 00682e73 rsbeq r2, r8, r3, ror lr - 4080: eea2ba04 cdp 10, 10, cr11, cr2, cr4, {0} - 4084: 019104c5 orrseq r0, r1, r5, asr #9 - 4088: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} - 408c: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ - 4090: 50726576 rsbspl r6, r2, r6, ror r5 - 4094: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 - 4098: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 409c: 682e746e stmdavs lr!, {r1, r2, r3, r5, r6, sl, ip, sp, lr} - 40a0: a9960400 ldmibge r6, {sl} - 40a4: ca04c5fa bgt 135894 - 40a8: 61725401 cmnvs r2, r1, lsl #8 - 40ac: 6563736e strbvs r7, [r3, #-878]! - 40b0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 40b4: 65776f50 ldrbvs r6, [r7, #-3920]! - 40b8: 676e4d72 undefined - 40bc: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} - 40c0: 96050063 strls r0, [r5], -r3, rrx - 40c4: 04c5faa9 strbeq pc, [r5], #2729 - 40c8: 000001ee andeq r0, r0, lr, ror #3 - 40cc: 000000d7 ldrdeq r0, [r0], -r7 - 40d0: 00930002 addseq r0, r3, r2 - 40d4: 01020000 tsteq r2, r0 - 40d8: 000a0500 andeq r0, sl, r0, lsl #10 - 40dc: 01010101 tsteq r1, r1, lsl #2 - 40e0: 00000000 andeq r0, r0, r0 - 40e4: 445c3a43 ldrbmi r3, [ip], #-2627 - 40e8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 40ec: 73746e65 cmnvc r4, #1616 ; 0x650 - 40f0: 646e6120 strbtvs r6, [lr], #-288 - 40f4: 74655320 strbtvc r5, [r5], #-800 - 40f8: 676e6974 undefined - 40fc: 616d5c73 smcvs 54723 - 4100: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4104: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4108: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 410c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4110: 775c7374 undefined - 4114: 6f632d73 svcvs 0x00632d73 - 4118: 6f72746e svcvs 0x0072746e - 411c: 65575c6c ldrbvs r5, [r7, #-3180] - 4120: 65687461 strbvs r7, [r8, #-1121]! - 4124: 74532072 ldrbvc r2, [r3], #-114 - 4128: 6f697461 svcvs 0x00697461 - 412c: 6f43206e svcvs 0x0043206e - 4130: 6f72746e svcvs 0x0072746e - 4134: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4138: 414d535c cmpmi sp, ip, asr r3 - 413c: 6f535c43 svcvs 0x00535c43 - 4140: 65637275 strbvs r7, [r3, #-629]! - 4144: 5400005c strpl r0, [r0], #-92 - 4148: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 414c: 76696563 strbtvc r6, [r9], -r3, ror #10 - 4150: 6f507265 svcvs 0x00507265 - 4154: 4d726577 cfldr64mi mvdx6, [r2, #-476]! - 4158: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} - 415c: 00632e74 rsbeq r2, r3, r4, ror lr - 4160: faa99601 blx fea6996c - 4164: 01ee04c5 mvneq r0, r5, asr #9 - 4168: 02050000 andeq r0, r5, #0 ; 0x0 - 416c: 00403988 subeq r3, r0, r8, lsl #19 - 4170: e3030105 movw r0, #12549 ; 0x3105 - 4174: 03050e00 movweq r0, #24064 ; 0x5e00 - 4178: 05161621 ldreq r1, [r6, #-1569] - 417c: 0b1a1608 bleq 6899a4 - 4180: 03051a1a movweq r1, #23066 ; 0x5a1a - 4184: 05130303 ldreq r0, [r3, #-771] - 4188: 0b151b06 bleq 54ada8 - 418c: 03051a1a movweq r1, #23066 ; 0x5a1a - 4190: 05130203 ldreq r0, [r3, #-515] - 4194: 791a1b06 ldmdbvc sl, {r1, r2, r8, r9, fp, ip} - 4198: 0b0b0b0b bleq 2c6dcc - 419c: 0303051a movweq r0, #13594 ; 0x351a - 41a0: 0a021302 beq 88db0 - 41a4: 00010100 andeq r0, r1, r0, lsl #2 - 41a8: 000003a0 andeq r0, r0, r0, lsr #7 - 41ac: 039a0002 orrseq r0, sl, #2 ; 0x2 - 41b0: 01010000 tsteq r1, r0 - 41b4: 000a0500 andeq r0, sl, r0, lsl #10 - 41b8: 01010101 tsteq r1, r1, lsl #2 - 41bc: 00000000 andeq r0, r0, r0 - 41c0: 445c3a43 ldrbmi r3, [ip], #-2627 - 41c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 41c8: 73746e65 cmnvc r4, #1616 ; 0x650 - 41cc: 646e6120 strbtvs r6, [lr], #-288 - 41d0: 74655320 strbtvc r5, [r5], #-800 - 41d4: 676e6974 undefined - 41d8: 616d5c73 smcvs 54723 - 41dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 41e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 41e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 41e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 41ec: 775c7374 undefined - 41f0: 6f632d73 svcvs 0x00632d73 - 41f4: 6f72746e svcvs 0x0072746e - 41f8: 65575c6c ldrbvs r5, [r7, #-3180] - 41fc: 65687461 strbvs r7, [r8, #-1121]! - 4200: 74532072 ldrbvc r2, [r3], #-114 - 4204: 6f697461 svcvs 0x00697461 - 4208: 6f43206e svcvs 0x0043206e - 420c: 6f72746e svcvs 0x0072746e - 4210: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4214: 7070415c rsbsvc r4, r0, ip, asr r1 - 4218: 6163696c cmnvs r3, ip, ror #18 - 421c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 4220: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 4224: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 4228: 005c7365 subseq r7, ip, r5, ror #6 - 422c: 445c3a43 ldrbmi r3, [ip], #-2627 - 4230: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4234: 73746e65 cmnvc r4, #1616 ; 0x650 - 4238: 646e6120 strbtvs r6, [lr], #-288 - 423c: 74655320 strbtvc r5, [r5], #-800 - 4240: 676e6974 undefined - 4244: 616d5c73 smcvs 54723 - 4248: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 424c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4250: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4254: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4258: 775c7374 undefined - 425c: 6f632d73 svcvs 0x00632d73 - 4260: 6f72746e svcvs 0x0072746e - 4264: 65575c6c ldrbvs r5, [r7, #-3180] - 4268: 65687461 strbvs r7, [r8, #-1121]! - 426c: 74532072 ldrbvc r2, [r3], #-114 - 4270: 6f697461 svcvs 0x00697461 - 4274: 6f43206e svcvs 0x0043206e - 4278: 6f72746e svcvs 0x0072746e - 427c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4280: 4d4c505c stclmi 0, cr5, [ip, #-368] - 4284: 746e495c strbtvc r4, [lr], #-2396 - 4288: 61667265 cmnvs r6, r5, ror #4 - 428c: 005c6563 subseq r6, ip, r3, ror #10 - 4290: 445c3a43 ldrbmi r3, [ip], #-2627 - 4294: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4298: 73746e65 cmnvc r4, #1616 ; 0x650 - 429c: 646e6120 strbtvs r6, [lr], #-288 - 42a0: 74655320 strbtvc r5, [r5], #-800 - 42a4: 676e6974 undefined - 42a8: 616d5c73 smcvs 54723 - 42ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 42b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 42b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 42b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 42bc: 775c7374 undefined - 42c0: 6f632d73 svcvs 0x00632d73 - 42c4: 6f72746e svcvs 0x0072746e - 42c8: 65575c6c ldrbvs r5, [r7, #-3180] - 42cc: 65687461 strbvs r7, [r8, #-1121]! - 42d0: 74532072 ldrbvc r2, [r3], #-114 - 42d4: 6f697461 svcvs 0x00697461 - 42d8: 6f43206e svcvs 0x0043206e - 42dc: 6f72746e svcvs 0x0072746e - 42e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 42e4: 4d4c505c stclmi 0, cr5, [ip, #-368] - 42e8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 42ec: 65746e49 ldrbvs r6, [r4, #-3657]! - 42f0: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 42f4: 43005c65 movwmi r5, #3173 ; 0xc65 - 42f8: 6f445c3a svcvs 0x00445c3a - 42fc: 656d7563 strbvs r7, [sp, #-1379]! - 4300: 2073746e rsbscs r7, r3, lr, ror #8 - 4304: 20646e61 rsbcs r6, r4, r1, ror #28 - 4308: 74746553 ldrbtvc r6, [r4], #-1363 - 430c: 73676e69 cmnvc r7, #1680 ; 0x690 - 4310: 6c616d5c stclvs 13, cr6, [r1], #-368 - 4314: 61726976 cmnvs r2, r6, ror r9 - 4318: 20794d5c rsbscs r4, r9, ip, asr sp - 431c: 75636f44 strbvc r6, [r3, #-3908]! - 4320: 746e656d strbtvc r6, [lr], #-1389 - 4324: 73775c73 cmnvc r7, #29440 ; 0x7300 - 4328: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 432c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 4330: 6165575c cmnvs r5, ip, asr r7 - 4334: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 4338: 61745320 cmnvs r4, r0, lsr #6 - 433c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 4340: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 4344: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 4348: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 434c: 43414d53 movtmi r4, #7507 ; 0x1d53 - 4350: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 4354: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 4358: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} - 435c: 75676966 strbvc r6, [r7, #-2406]! - 4360: 005c6572 subseq r6, ip, r2, ror r5 - 4364: 445c3a43 ldrbmi r3, [ip], #-2627 - 4368: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 436c: 73746e65 cmnvc r4, #1616 ; 0x650 - 4370: 646e6120 strbtvs r6, [lr], #-288 - 4374: 74655320 strbtvc r5, [r5], #-800 - 4378: 676e6974 undefined - 437c: 616d5c73 smcvs 54723 - 4380: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4384: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4388: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 438c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4390: 775c7374 undefined - 4394: 6f632d73 svcvs 0x00632d73 - 4398: 6f72746e svcvs 0x0072746e - 439c: 65575c6c ldrbvs r5, [r7, #-3180] - 43a0: 65687461 strbvs r7, [r8, #-1121]! - 43a4: 74532072 ldrbvc r2, [r3], #-114 - 43a8: 6f697461 svcvs 0x00697461 - 43ac: 6f43206e svcvs 0x0043206e - 43b0: 6f72746e svcvs 0x0072746e - 43b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 43b8: 414d535c cmpmi sp, ip, asr r3 - 43bc: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 43c0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 43c4: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 43c8: 66726574 undefined - 43cc: 5c656361 stclpl 3, cr6, [r5], #-388 - 43d0: 5c3a4300 ldcpl 3, cr4, [sl] - 43d4: 75636f44 strbvc r6, [r3, #-3908]! - 43d8: 746e656d strbtvc r6, [lr], #-1389 - 43dc: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 43e0: 65532064 ldrbvs r2, [r3, #-100] - 43e4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 43e8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 43ec: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 43f0: 4d5c6172 ldfmie f6, [ip, #-456] - 43f4: 6f442079 svcvs 0x00442079 - 43f8: 656d7563 strbvs r7, [sp, #-1379]! - 43fc: 5c73746e cfldrdpl mvd7, [r3], #-440 - 4400: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 4404: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4408: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 440c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 4410: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 4414: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 4418: 43206e6f teqmi r0, #1776 ; 0x6f0 - 441c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4420: 656c6c6f strbvs r6, [ip, #-3183]! - 4424: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 4428: 495c4341 ldmdbmi ip, {r0, r6, r8, r9, lr}^ - 442c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 4430: 65636166 strbvs r6, [r3, #-358]! - 4434: 5500005c strpl r0, [r0, #-92] - 4438: 55747261 ldrbpl r7, [r4, #-609]! - 443c: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} - 4440: a6010063 strge r0, [r1], -r3, rrx - 4444: 04c9def8 strbeq sp, [r9], #3832 - 4448: 615503cd cmpvs r5, sp, asr #7 - 444c: 74557472 ldrbvc r7, [r5], #-1138 - 4450: 682e6c69 stmdavs lr!, {r0, r3, r5, r6, sl, fp, sp, lr} - 4454: d7c00100 strble r0, [r0, r0, lsl #2] - 4458: b404c8e6 strlt ip, [r4], #-2278 - 445c: 626d4502 rsbvs r4, sp, #8388608 ; 0x800000 - 4460: 65646465 strbvs r6, [r4, #-1125]! - 4464: 70795464 rsbsvc r5, r9, r4, ror #8 - 4468: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} - 446c: 9d9e0200 lfmls f0, 4, [lr] - 4470: 7704c0d7 undefined - 4474: 54524155 ldrbpl r4, [r2], #-341 - 4478: 746e495f strbtvc r4, [lr], #-2399 - 447c: 61667265 cmnvs r6, r5, ror #4 - 4480: 682e6563 stmdavs lr!, {r0, r1, r5, r6, r8, sl, sp, lr} - 4484: a3d70200 bicsge r0, r7, #0 ; 0x0 - 4488: 7f04ceee svcvc 0x0004ceee - 448c: 5f4d5243 svcpl 0x004d5243 - 4490: 73676552 cmnvc r7, #343932928 ; 0x14800000 - 4494: 0300682e movweq r6, #2094 ; 0x82e - 4498: c0d78ff8 ldrshgt r8, [r7], #248 - 449c: 49028104 stmdbmi r2, {r2, r8, pc} - 44a0: 495f4354 ldmdbmi pc, {r2, r4, r6, r8, r9, lr}^ - 44a4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 44a8: 65636166 strbvs r6, [r3, #-358]! - 44ac: 0300682e movweq r6, #2094 ; 0x82e - 44b0: c0d78ff8 ldrshgt r8, [r7], #248 - 44b4: 4902c404 stmdbmi r2, {r2, sl, lr, pc} - 44b8: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 44bc: 74707572 ldrbtvc r7, [r0], #-1394 - 44c0: 0300682e movweq r6, #2094 ; 0x82e - 44c4: c0d794f2 ldrshgt r9, [r7], #66 - 44c8: 73531d04 cmpvc r3, #256 ; 0x100 - 44cc: 65525f69 ldrbvs r5, [r2, #-3945] - 44d0: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} - 44d4: 96cc0300 strbls r0, [ip], r0, lsl #6 - 44d8: c504ba91 strgt fp, [r4, #-2705] - 44dc: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 - 44e0: 776f4c74 undefined - 44e4: 6576654c ldrbvs r6, [r6, #-1356]! - 44e8: 00682e6c rsbeq r2, r8, ip, ror #28 - 44ec: d794f203 ldrle pc, [r4, r3, lsl #4] - 44f0: 04fd04c0 ldrbteq r0, [sp], #1216 - 44f4: 74616c70 strbtvc r6, [r1], #-3184 - 44f8: 6d726f66 ldclvs 15, cr6, [r2, #-408]! - 44fc: 0300682e movweq r6, #2094 ; 0x82e - 4500: c0d794f2 ldrshgt r9, [r7], #66 - 4504: 6203be04 andvs fp, r3, #64 ; 0x40 - 4508: 6472616f ldrbtvs r6, [r2], #-367 - 450c: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} - 4510: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} - 4514: f7040068 undefined instruction 0xf7040068 - 4518: 04ceedfb strbeq lr, [lr], #3579 - 451c: 6572463d ldrbvs r4, [r2, #-1597]! - 4520: 70654471 rsbvc r4, r5, r1, ror r4 - 4524: 74746553 ldrbtvc r6, [r4], #-1363 - 4528: 73676e69 cmnvc r7, #1680 ; 0x690 - 452c: 0500682e streq r6, [r0, #-2094] - 4530: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} - 4534: 6c473704 mcrrvs 7, 0, r3, r7, cr4 - 4538: 6c61626f sfmvs f6, 2, [r1], #-444 - 453c: 73666544 cmnvc r6, #285212672 ; 0x11000000 - 4540: 0600682e streq r6, [r0], -lr, lsr #16 - 4544: c5eea2ba strbgt sl, [lr, #698]! - 4548: 00019104 andeq r9, r1, r4, lsl #2 - 454c: 000000c4 andeq r0, r0, r4, asr #1 - 4550: 008f0002 addeq r0, pc, r2 - 4554: 01020000 tsteq r2, r0 - 4558: 000a0500 andeq r0, sl, r0, lsl #10 - 455c: 01010101 tsteq r1, r1, lsl #2 - 4560: 00000000 andeq r0, r0, r0 - 4564: 445c3a43 ldrbmi r3, [ip], #-2627 - 4568: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 456c: 73746e65 cmnvc r4, #1616 ; 0x650 - 4570: 646e6120 strbtvs r6, [lr], #-288 - 4574: 74655320 strbtvc r5, [r5], #-800 - 4578: 676e6974 undefined - 457c: 616d5c73 smcvs 54723 - 4580: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4584: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4588: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 458c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4590: 775c7374 undefined - 4594: 6f632d73 svcvs 0x00632d73 - 4598: 6f72746e svcvs 0x0072746e - 459c: 65575c6c ldrbvs r5, [r7, #-3180] - 45a0: 65687461 strbvs r7, [r8, #-1121]! - 45a4: 74532072 ldrbvc r2, [r3], #-114 - 45a8: 6f697461 svcvs 0x00697461 - 45ac: 6f43206e svcvs 0x0043206e - 45b0: 6f72746e svcvs 0x0072746e - 45b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 45b8: 7070415c rsbsvc r4, r0, ip, asr r1 - 45bc: 6163696c cmnvs r3, ip, ror #18 - 45c0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 45c4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 45c8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 45cc: 005c7365 subseq r7, ip, r5, ror #6 - 45d0: 72615500 rsbvc r5, r1, #0 ; 0x0 - 45d4: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ - 45d8: 00632e6c rsbeq r2, r3, ip, ror #28 - 45dc: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} - 45e0: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 - 45e4: 02050000 andeq r0, r5, #0 ; 0x0 - 45e8: 0040338c subeq r3, r0, ip, lsl #7 - 45ec: c4030105 strgt r0, [r3], #-261 - 45f0: 03050e00 movweq r0, #24064 ; 0x5e00 - 45f4: 171d0303 ldrne r0, [sp, -r3, lsl #6] - 45f8: 101a0b1a andsne r0, sl, sl, lsl fp - 45fc: 1c201f0e stcne 15, cr1, [r0], #-56 - 4600: 2203031f andcs r0, r3, #2080374784 ; 0x7c000000 - 4604: 1515211f ldrne r2, [r5, #-287] - 4608: 1b222303 blne 88d21c - 460c: 022a0105 eoreq r0, sl, #1073741825 ; 0x40000001 - 4610: 0101000e tsteq r1, lr - 4614: 000000b5 strheq r0, [r0], -r5 - 4618: 008f0002 addeq r0, pc, r2 - 461c: 01020000 tsteq r2, r0 - 4620: 000a0500 andeq r0, sl, r0, lsl #10 - 4624: 01010101 tsteq r1, r1, lsl #2 - 4628: 00000000 andeq r0, r0, r0 - 462c: 445c3a43 ldrbmi r3, [ip], #-2627 - 4630: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4634: 73746e65 cmnvc r4, #1616 ; 0x650 - 4638: 646e6120 strbtvs r6, [lr], #-288 - 463c: 74655320 strbtvc r5, [r5], #-800 - 4640: 676e6974 undefined - 4644: 616d5c73 smcvs 54723 - 4648: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 464c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4650: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4654: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4658: 775c7374 undefined - 465c: 6f632d73 svcvs 0x00632d73 - 4660: 6f72746e svcvs 0x0072746e - 4664: 65575c6c ldrbvs r5, [r7, #-3180] - 4668: 65687461 strbvs r7, [r8, #-1121]! - 466c: 74532072 ldrbvc r2, [r3], #-114 - 4670: 6f697461 svcvs 0x00697461 - 4674: 6f43206e svcvs 0x0043206e - 4678: 6f72746e svcvs 0x0072746e - 467c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4680: 7070415c rsbsvc r4, r0, ip, asr r1 - 4684: 6163696c cmnvs r3, ip, ror #18 - 4688: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 468c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 4690: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 4694: 005c7365 subseq r7, ip, r5, ror #6 - 4698: 72615500 rsbvc r5, r1, #0 ; 0x0 - 469c: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ - 46a0: 00632e6c rsbeq r2, r3, ip, ror #28 - 46a4: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} - 46a8: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 - 46ac: 02050000 andeq r0, r5, #0 ; 0x0 - 46b0: 00403418 subeq r3, r0, r8, lsl r4 - 46b4: 9d030105 stflss f0, [r3, #-20] - 46b8: 03050e01 movweq r0, #24065 ; 0x5e01 - 46bc: 241f2e0d ldrcs r2, [pc], #3597 ; 46c4 - 46c0: 241a2010 ldrcs r2, [sl], #-16 - 46c4: 1f01051a svcne 0x0001051a - 46c8: 01000402 tsteq r0, r2, lsl #8 - 46cc: 00000001 andeq r0, r0, r1 - 46d0: 000000aa andeq r0, r0, sl, lsr #1 - 46d4: 008f0002 addeq r0, pc, r2 - 46d8: 01020000 tsteq r2, r0 - 46dc: 000a0500 andeq r0, sl, r0, lsl #10 - 46e0: 01010101 tsteq r1, r1, lsl #2 - 46e4: 00000000 andeq r0, r0, r0 - 46e8: 445c3a43 ldrbmi r3, [ip], #-2627 - 46ec: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 46f0: 73746e65 cmnvc r4, #1616 ; 0x650 - 46f4: 646e6120 strbtvs r6, [lr], #-288 - 46f8: 74655320 strbtvc r5, [r5], #-800 - 46fc: 676e6974 undefined - 4700: 616d5c73 smcvs 54723 - 4704: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4708: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 470c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4710: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4714: 775c7374 undefined - 4718: 6f632d73 svcvs 0x00632d73 - 471c: 6f72746e svcvs 0x0072746e - 4720: 65575c6c ldrbvs r5, [r7, #-3180] - 4724: 65687461 strbvs r7, [r8, #-1121]! - 4728: 74532072 ldrbvc r2, [r3], #-114 - 472c: 6f697461 svcvs 0x00697461 - 4730: 6f43206e svcvs 0x0043206e - 4734: 6f72746e svcvs 0x0072746e - 4738: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 473c: 7070415c rsbsvc r4, r0, ip, asr r1 - 4740: 6163696c cmnvs r3, ip, ror #18 - 4744: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 4748: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 474c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 4750: 005c7365 subseq r7, ip, r5, ror #6 - 4754: 72615500 rsbvc r5, r1, #0 ; 0x0 - 4758: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ - 475c: 00632e6c rsbeq r2, r3, ip, ror #28 - 4760: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} - 4764: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 - 4768: 02050000 andeq r0, r5, #0 ; 0x0 - 476c: 0040346c subeq r3, r0, ip, ror #8 - 4770: c7030105 strgt r0, [r3, -r5, lsl #2] - 4774: 03050e01 movweq r0, #24065 ; 0x5e01 - 4778: 0001020b andeq r0, r1, fp, lsl #4 - 477c: 00000101 andeq r0, r0, r1, lsl #2 - 4780: 000000a8 andeq r0, r0, r8, lsr #1 - 4784: 008f0002 addeq r0, pc, r2 - 4788: 01020000 tsteq r2, r0 - 478c: 000a0500 andeq r0, sl, r0, lsl #10 - 4790: 01010101 tsteq r1, r1, lsl #2 - 4794: 00000000 andeq r0, r0, r0 - 4798: 445c3a43 ldrbmi r3, [ip], #-2627 - 479c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 47a0: 73746e65 cmnvc r4, #1616 ; 0x650 - 47a4: 646e6120 strbtvs r6, [lr], #-288 - 47a8: 74655320 strbtvc r5, [r5], #-800 - 47ac: 676e6974 undefined - 47b0: 616d5c73 smcvs 54723 - 47b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 47b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 47bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 47c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 47c4: 775c7374 undefined - 47c8: 6f632d73 svcvs 0x00632d73 - 47cc: 6f72746e svcvs 0x0072746e - 47d0: 65575c6c ldrbvs r5, [r7, #-3180] - 47d4: 65687461 strbvs r7, [r8, #-1121]! - 47d8: 74532072 ldrbvc r2, [r3], #-114 - 47dc: 6f697461 svcvs 0x00697461 - 47e0: 6f43206e svcvs 0x0043206e - 47e4: 6f72746e svcvs 0x0072746e - 47e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 47ec: 7070415c rsbsvc r4, r0, ip, asr r1 - 47f0: 6163696c cmnvs r3, ip, ror #18 - 47f4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 47f8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 47fc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 4800: 005c7365 subseq r7, ip, r5, ror #6 - 4804: 72615500 rsbvc r5, r1, #0 ; 0x0 - 4808: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ - 480c: 00632e6c rsbeq r2, r3, ip, ror #28 - 4810: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} - 4814: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 - 4818: 02050000 andeq r0, r5, #0 ; 0x0 - 481c: 0040346e subeq r3, r0, lr, ror #8 - 4820: d3030105 movwle r0, #12549 ; 0x3105 - 4824: 020b0e01 andeq r0, fp, #16 ; 0x10 - 4828: 01010001 tsteq r1, r1 - 482c: 000000b8 strheq r0, [r0], -r8 - 4830: 008f0002 addeq r0, pc, r2 - 4834: 01020000 tsteq r2, r0 - 4838: 000a0500 andeq r0, sl, r0, lsl #10 - 483c: 01010101 tsteq r1, r1, lsl #2 - 4840: 00000000 andeq r0, r0, r0 - 4844: 445c3a43 ldrbmi r3, [ip], #-2627 - 4848: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 484c: 73746e65 cmnvc r4, #1616 ; 0x650 - 4850: 646e6120 strbtvs r6, [lr], #-288 - 4854: 74655320 strbtvc r5, [r5], #-800 - 4858: 676e6974 undefined - 485c: 616d5c73 smcvs 54723 - 4860: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4864: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4868: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 486c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4870: 775c7374 undefined - 4874: 6f632d73 svcvs 0x00632d73 - 4878: 6f72746e svcvs 0x0072746e - 487c: 65575c6c ldrbvs r5, [r7, #-3180] - 4880: 65687461 strbvs r7, [r8, #-1121]! - 4884: 74532072 ldrbvc r2, [r3], #-114 - 4888: 6f697461 svcvs 0x00697461 - 488c: 6f43206e svcvs 0x0043206e - 4890: 6f72746e svcvs 0x0072746e - 4894: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4898: 7070415c rsbsvc r4, r0, ip, asr r1 - 489c: 6163696c cmnvs r3, ip, ror #18 - 48a0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 48a4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 48a8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 48ac: 005c7365 subseq r7, ip, r5, ror #6 - 48b0: 72615500 rsbvc r5, r1, #0 ; 0x0 - 48b4: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ - 48b8: 00632e6c rsbeq r2, r3, ip, ror #28 - 48bc: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} - 48c0: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 - 48c4: 02050000 andeq r0, r5, #0 ; 0x0 - 48c8: 00403470 subeq r3, r0, r0, ror r4 - 48cc: de030305 cdple 3, 0, cr0, cr3, cr5, {0} - 48d0: 6b031d01 blvs cbcdc - 48d4: 1812030a ldmdane r2, {r1, r3, r8, r9} - 48d8: 050a6b03 streq r6, [sl, #-2819] - 48dc: 18120301 ldmdane r2, {r0, r8, r9} - 48e0: 020a6b03 andeq r6, sl, #3072 ; 0xc00 - 48e4: 01010001 tsteq r1, r1 - 48e8: 000000b9 strheq r0, [r0], -r9 - 48ec: 008f0002 addeq r0, pc, r2 - 48f0: 01020000 tsteq r2, r0 - 48f4: 000a0500 andeq r0, sl, r0, lsl #10 - 48f8: 01010101 tsteq r1, r1, lsl #2 - 48fc: 00000000 andeq r0, r0, r0 - 4900: 445c3a43 ldrbmi r3, [ip], #-2627 - 4904: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4908: 73746e65 cmnvc r4, #1616 ; 0x650 - 490c: 646e6120 strbtvs r6, [lr], #-288 - 4910: 74655320 strbtvc r5, [r5], #-800 - 4914: 676e6974 undefined - 4918: 616d5c73 smcvs 54723 - 491c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4920: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4924: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4928: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 492c: 775c7374 undefined - 4930: 6f632d73 svcvs 0x00632d73 - 4934: 6f72746e svcvs 0x0072746e - 4938: 65575c6c ldrbvs r5, [r7, #-3180] - 493c: 65687461 strbvs r7, [r8, #-1121]! - 4940: 74532072 ldrbvc r2, [r3], #-114 - 4944: 6f697461 svcvs 0x00697461 - 4948: 6f43206e svcvs 0x0043206e - 494c: 6f72746e svcvs 0x0072746e - 4950: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4954: 7070415c rsbsvc r4, r0, ip, asr r1 - 4958: 6163696c cmnvs r3, ip, ror #18 - 495c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 4960: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 4964: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 4968: 005c7365 subseq r7, ip, r5, ror #6 - 496c: 72615500 rsbvc r5, r1, #0 ; 0x0 - 4970: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ - 4974: 00632e6c rsbeq r2, r3, ip, ror #28 - 4978: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} - 497c: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 - 4980: 02050000 andeq r0, r5, #0 ; 0x0 - 4984: 00403480 subeq r3, r0, r0, lsl #9 - 4988: 87030105 strhi r0, [r3, -r5, lsl #2] - 498c: 0b050e02 bleq 14819c - 4990: 1b030516 blne c5df0 - 4994: 1a240505 bne 905db0 - 4998: 0705101a smladeq r5, sl, r0, r1 - 499c: 21010539 tstcs r1, r9, lsr r5 - 49a0: 01000502 tsteq r0, r2, lsl #10 - 49a4: 00000001 andeq r0, r0, r1 - 49a8: 000004db ldrdeq r0, [r0], -fp - 49ac: 04d50002 ldrbeq r0, [r5], #2 - 49b0: 01010000 tsteq r1, r0 - 49b4: 000a0500 andeq r0, sl, r0, lsl #10 - 49b8: 01010101 tsteq r1, r1, lsl #2 - 49bc: 00000000 andeq r0, r0, r0 - 49c0: 445c3a43 ldrbmi r3, [ip], #-2627 - 49c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 49c8: 73746e65 cmnvc r4, #1616 ; 0x650 - 49cc: 646e6120 strbtvs r6, [lr], #-288 - 49d0: 74655320 strbtvc r5, [r5], #-800 - 49d4: 676e6974 undefined - 49d8: 616d5c73 smcvs 54723 - 49dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 49e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 49e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 49e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 49ec: 775c7374 undefined - 49f0: 6f632d73 svcvs 0x00632d73 - 49f4: 6f72746e svcvs 0x0072746e - 49f8: 65575c6c ldrbvs r5, [r7, #-3180] - 49fc: 65687461 strbvs r7, [r8, #-1121]! - 4a00: 74532072 ldrbvc r2, [r3], #-114 - 4a04: 6f697461 svcvs 0x00697461 - 4a08: 6f43206e svcvs 0x0043206e - 4a0c: 6f72746e svcvs 0x0072746e - 4a10: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4a14: 4d4c505c stclmi 0, cr5, [ip, #-368] - 4a18: 746e495c strbtvc r4, [lr], #-2396 - 4a1c: 61667265 cmnvs r6, r5, ror #4 - 4a20: 005c6563 subseq r6, ip, r3, ror #10 - 4a24: 445c3a43 ldrbmi r3, [ip], #-2627 - 4a28: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4a2c: 73746e65 cmnvc r4, #1616 ; 0x650 - 4a30: 646e6120 strbtvs r6, [lr], #-288 - 4a34: 74655320 strbtvc r5, [r5], #-800 - 4a38: 676e6974 undefined - 4a3c: 616d5c73 smcvs 54723 - 4a40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4a44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4a48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4a4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4a50: 775c7374 undefined - 4a54: 6f632d73 svcvs 0x00632d73 - 4a58: 6f72746e svcvs 0x0072746e - 4a5c: 65575c6c ldrbvs r5, [r7, #-3180] - 4a60: 65687461 strbvs r7, [r8, #-1121]! - 4a64: 74532072 ldrbvc r2, [r3], #-114 - 4a68: 6f697461 svcvs 0x00697461 - 4a6c: 6f43206e svcvs 0x0043206e - 4a70: 6f72746e svcvs 0x0072746e - 4a74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4a78: 414d535c cmpmi sp, ip, asr r3 - 4a7c: 6f435c43 svcvs 0x00435c43 - 4a80: 6769666e strbvs r6, [r9, -lr, ror #12]! - 4a84: 5c657275 sfmpl f7, 2, [r5], #-468 - 4a88: 5c3a4300 ldcpl 3, cr4, [sl] - 4a8c: 75636f44 strbvc r6, [r3, #-3908]! - 4a90: 746e656d strbtvc r6, [lr], #-1389 - 4a94: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 4a98: 65532064 ldrbvs r2, [r3, #-100] - 4a9c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 4aa0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 4aa4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 4aa8: 4d5c6172 ldfmie f6, [ip, #-456] - 4aac: 6f442079 svcvs 0x00442079 - 4ab0: 656d7563 strbvs r7, [sp, #-1379]! - 4ab4: 5c73746e cfldrdpl mvd7, [r3], #-440 - 4ab8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 4abc: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4ac0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 4ac4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 4ac8: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 4acc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 4ad0: 43206e6f teqmi r0, #1776 ; 0x6f0 - 4ad4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4ad8: 656c6c6f strbvs r6, [ip, #-3183]! - 4adc: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 4ae0: 445c4341 ldrbmi r4, [ip], #-833 - 4ae4: 65766972 ldrbvs r6, [r6, #-2418]! - 4ae8: 435c7372 cmpmi ip, #-939524095 ; 0xc8000001 - 4aec: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 4af0: 65727567 ldrbvs r7, [r2, #-1383]! - 4af4: 3a43005c bcc 10c4c6c - 4af8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 4afc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4b00: 61207374 teqvs r0, r4, ror r3 - 4b04: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 4b08: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 4b0c: 5c73676e ldclpl 7, cr6, [r3], #-440 - 4b10: 766c616d strbtvc r6, [ip], -sp, ror #2 - 4b14: 5c617269 sfmpl f7, 2, [r1], #-420 - 4b18: 4420794d strtmi r7, [r0], #-2381 - 4b1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4b20: 73746e65 cmnvc r4, #1616 ; 0x650 - 4b24: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 4b28: 746e6f63 strbtvc r6, [lr], #-3939 - 4b2c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 4b30: 74616557 strbtvc r6, [r1], #-1367 - 4b34: 20726568 rsbscs r6, r2, r8, ror #10 - 4b38: 74617453 strbtvc r7, [r1], #-1107 - 4b3c: 206e6f69 rsbcs r6, lr, r9, ror #30 - 4b40: 746e6f43 strbtvc r6, [lr], #-3907 - 4b44: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 4b48: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 4b4c: 5c43414d stfple f4, [r3], {77} - 4b50: 76697244 strbtvc r7, [r9], -r4, asr #4 - 4b54: 5c737265 lfmpl f7, 2, [r3], #-404 - 4b58: 65746e49 ldrbvs r6, [r4, #-3657]! - 4b5c: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 4b60: 43005c65 movwmi r5, #3173 ; 0xc65 - 4b64: 6f445c3a svcvs 0x00445c3a - 4b68: 656d7563 strbvs r7, [sp, #-1379]! - 4b6c: 2073746e rsbscs r7, r3, lr, ror #8 - 4b70: 20646e61 rsbcs r6, r4, r1, ror #28 - 4b74: 74746553 ldrbtvc r6, [r4], #-1363 - 4b78: 73676e69 cmnvc r7, #1680 ; 0x690 - 4b7c: 6c616d5c stclvs 13, cr6, [r1], #-368 - 4b80: 61726976 cmnvs r2, r6, ror r9 - 4b84: 20794d5c rsbscs r4, r9, ip, asr sp - 4b88: 75636f44 strbvc r6, [r3, #-3908]! - 4b8c: 746e656d strbtvc r6, [lr], #-1389 - 4b90: 73775c73 cmnvc r7, #29440 ; 0x7300 - 4b94: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 4b98: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 4b9c: 6165575c cmnvs r5, ip, asr r7 - 4ba0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 4ba4: 61745320 cmnvs r4, r0, lsr #6 - 4ba8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 4bac: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 4bb0: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 4bb4: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 4bb8: 43414d53 movtmi r4, #7507 ; 0x1d53 - 4bbc: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 4bc0: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 4bc4: 746e495c strbtvc r4, [lr], #-2396 - 4bc8: 61667265 cmnvs r6, r5, ror #4 - 4bcc: 675c6563 ldrbvs r6, [ip, -r3, ror #10] - 4bd0: 5c726468 cfldrdpl mvd6, [r2], #-416 - 4bd4: 5c3a4300 ldcpl 3, cr4, [sl] - 4bd8: 75636f44 strbvc r6, [r3, #-3908]! - 4bdc: 746e656d strbtvc r6, [lr], #-1389 - 4be0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 4be4: 65532064 ldrbvs r2, [r3, #-100] - 4be8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 4bec: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 4bf0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 4bf4: 4d5c6172 ldfmie f6, [ip, #-456] - 4bf8: 6f442079 svcvs 0x00442079 - 4bfc: 656d7563 strbvs r7, [sp, #-1379]! - 4c00: 5c73746e cfldrdpl mvd7, [r3], #-440 - 4c04: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 4c08: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4c0c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 4c10: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 4c14: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 4c18: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 4c1c: 43206e6f teqmi r0, #1776 ; 0x6f0 - 4c20: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4c24: 656c6c6f strbvs r6, [ip, #-3183]! - 4c28: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 4c2c: 445c4341 ldrbmi r4, [ip], #-833 - 4c30: 65766972 ldrbvs r6, [r6, #-2418]! - 4c34: 4c5c7372 mrrcmi 3, 7, r7, ip, cr2 - 4c38: 6e496269 cdpvs 2, 4, cr6, cr9, cr9, {3} - 4c3c: 66726574 undefined - 4c40: 5c656361 stclpl 3, cr6, [r5], #-388 - 4c44: 5c3a4300 ldcpl 3, cr4, [sl] - 4c48: 75636f44 strbvc r6, [r3, #-3908]! - 4c4c: 746e656d strbtvc r6, [lr], #-1389 - 4c50: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 4c54: 65532064 ldrbvs r2, [r3, #-100] - 4c58: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 4c5c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 4c60: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 4c64: 4d5c6172 ldfmie f6, [ip, #-456] - 4c68: 6f442079 svcvs 0x00442079 - 4c6c: 656d7563 strbvs r7, [sp, #-1379]! - 4c70: 5c73746e cfldrdpl mvd7, [r3], #-440 - 4c74: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 4c78: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4c7c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 4c80: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 4c84: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 4c88: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 4c8c: 43206e6f teqmi r0, #1776 ; 0x6f0 - 4c90: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4c94: 656c6c6f strbvs r6, [ip, #-3183]! - 4c98: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 4c9c: 495c4341 ldmdbmi ip, {r0, r6, r8, r9, lr}^ - 4ca0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 4ca4: 65636166 strbvs r6, [r3, #-358]! - 4ca8: 3a43005c bcc 10c4e20 - 4cac: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 4cb0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4cb4: 61207374 teqvs r0, r4, ror r3 - 4cb8: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 4cbc: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 4cc0: 5c73676e ldclpl 7, cr6, [r3], #-440 - 4cc4: 766c616d strbtvc r6, [ip], -sp, ror #2 - 4cc8: 5c617269 sfmpl f7, 2, [r1], #-420 - 4ccc: 4420794d strtmi r7, [r0], #-2381 - 4cd0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4cd4: 73746e65 cmnvc r4, #1616 ; 0x650 - 4cd8: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 4cdc: 746e6f63 strbtvc r6, [lr], #-3939 - 4ce0: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 4ce4: 74616557 strbtvc r6, [r1], #-1367 - 4ce8: 20726568 rsbscs r6, r2, r8, ror #10 - 4cec: 74617453 strbtvc r7, [r1], #-1107 - 4cf0: 206e6f69 rsbcs r6, lr, r9, ror #30 - 4cf4: 746e6f43 strbtvc r6, [lr], #-3907 - 4cf8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 4cfc: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 4d00: 5c43414d stfple f4, [r3], {77} - 4d04: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 4d08: 005c6563 subseq r6, ip, r3, ror #10 - 4d0c: 626d4500 rsbvs r4, sp, #0 ; 0x0 - 4d10: 65646465 strbvs r6, [r4, #-1125]! - 4d14: 70795464 rsbsvc r5, r9, r4, ror #8 - 4d18: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} - 4d1c: 9d9e0100 ldflss f0, [lr] - 4d20: 7704c0d7 undefined - 4d24: 435f4652 cmpmi pc, #85983232 ; 0x5200000 - 4d28: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 4d2c: 00682e67 rsbeq r2, r8, r7, ror #28 - 4d30: edfbf701 ldcl 7, cr15, [fp, #4]! - 4d34: 6f3204ce svcvs 0x003204ce - 4d38: 6f697470 svcvs 0x00697470 - 4d3c: 635f736e cmpvs pc, #-1207959551 ; 0xb8000001 - 4d40: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 4d44: 00682e67 rsbeq r2, r8, r7, ror #28 - 4d48: d58e8e02 strle r8, [lr, #3586] - 4d4c: 621f04c1 andsvs r0, pc, #-1056964608 ; 0xc1000000 - 4d50: 6472616f ldrbtvs r6, [r2], #-367 - 4d54: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} - 4d58: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} - 4d5c: f7030068 undefined instruction 0xf7030068 - 4d60: 04ceedfb strbeq lr, [lr], #3579 - 4d64: 6572463d ldrbvs r4, [r2, #-1597]! - 4d68: 70654471 rsbvc r4, r5, r1, ror r4 - 4d6c: 74746553 ldrbtvc r6, [r4], #-1363 - 4d70: 73676e69 cmnvc r7, #1680 ; 0x690 - 4d74: 0400682e streq r6, [r0], #-2094 - 4d78: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} - 4d7c: 616d3704 cmnvs sp, r4, lsl #14 - 4d80: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} - 4d84: adc20500 cfstr64ge mvdx0, [r2] - 4d88: 8c04c49d cfstrshi mvf12, [r4], {157} - 4d8c: 76637203 strbtvc r7, [r3], -r3, lsl #4 - 4d90: 6970735f ldmdbvs r0!, {r0, r1, r2, r3, r4, r6, r8, r9, ip, sp, lr}^ - 4d94: 6765725f undefined - 4d98: 00682e73 rsbeq r2, r8, r3, ror lr - 4d9c: f2c0e405 vaddhn.i16 d30, q0, - 4da0: 522404b8 eorpl r0, r4, #-1207959552 ; 0xb8000000 - 4da4: 505f6d6f subspl r6, pc, pc, ror #26 - 4da8: 682e7968 stmdavs lr!, {r3, r5, r6, r8, fp, ip, sp, lr} - 4dac: 89e20600 stmibhi r2!, {r9, sl}^ - 4db0: 3404c0dc strcc ip, [r4], #-220 - 4db4: 746e7953 strbtvc r7, [lr], #-2387 - 4db8: 69736568 ldmdbvs r3!, {r3, r5, r6, r8, sl, sp, lr}^ - 4dbc: 5f72657a svcpl 0x0072657a - 4dc0: 2e636e69 cdpcs 14, 6, cr6, cr3, cr9, {3} - 4dc4: fa060068 blx 184f6c - 4dc8: 04cc8199 strbeq r8, [ip], #409 - 4dcc: 697201a0 ldmdbvs r2!, {r5, r7, r8}^ - 4dd0: 6e695f66 cdpvs 15, 6, cr5, cr9, cr6, {3} - 4dd4: 00682e63 rsbeq r2, r8, r3, ror #28 - 4dd8: ffca8206 undefined instruction 0xffca8206 - 4ddc: 019204c5 orrseq r0, r2, r5, asr #9 - 4de0: 626f6c47 rsbvs r6, pc, #18176 ; 0x4700 - 4de4: 65446c61 strbvs r6, [r4, #-3169] - 4de8: 682e7366 stmdavs lr!, {r1, r2, r5, r6, r8, r9, ip, sp, lr} - 4dec: a2ba0700 adcsge r0, sl, #0 ; 0x0 - 4df0: 9104c5ee smlattls r4, lr, r5, ip - 4df4: 64615201 strbtvs r5, [r1], #-513 - 4df8: 614d6f69 cmpvs sp, r9, ror #30 - 4dfc: 6567616e strbvs r6, [r7, #-366]! - 4e00: 746e656d strbtvc r6, [lr], #-1389 - 4e04: 0700682e streq r6, [r0, -lr, lsr #16] - 4e08: cbe6d8a6 blgt ff9bb0a8 - 4e0c: 5403d104 strpl sp, [r3], #-260 - 4e10: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 4e14: 76696563 strbtvc r6, [r9], -r3, ror #10 - 4e18: 6f437265 svcvs 0x00437265 - 4e1c: 6769666e strbvs r6, [r9, -lr, ror #12]! - 4e20: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 4e24: 682e746e stmdavs lr!, {r1, r2, r3, r5, r6, sl, ip, sp, lr} - 4e28: a0a20700 adcge r0, r2, r0, lsl #14 - 4e2c: e604c5ee str ip, [r4], -lr, ror #11 - 4e30: 72695701 rsbvc r5, r9, #262144 ; 0x40000 - 4e34: 73656c65 cmnvc r5, #25856 ; 0x6500 - 4e38: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} - 4e3c: 676e4d6b strbvs r4, [lr, -fp, ror #26]! - 4e40: 682e746d stmdavs lr!, {r0, r2, r3, r5, r6, sl, ip, sp, lr} - 4e44: 98a60700 stmials r6!, {r8, r9, sl} - 4e48: 9704cbf7 undefined - 4e4c: 64615202 strbtvs r5, [r1], #-514 - 4e50: 6e4d6f69 cdpvs 15, 4, cr6, cr13, cr9, {3} - 4e54: 746e6d67 strbtvc r6, [lr], #-3431 - 4e58: 70617257 rsbvc r7, r1, r7, asr r2 - 4e5c: 2e726570 mrccs 5, 3, r6, cr2, cr0, {3} - 4e60: a6080068 strge r0, [r8], -r8, rrx - 4e64: 04cbe6d8 strbeq lr, [fp], #1752 - 4e68: 695701e6 ldmdbvs r7, {r1, r2, r5, r6, r7, r8}^ - 4e6c: 656c6572 strbvs r6, [ip, #-1394]! - 4e70: 694c7373 stmdbvs ip, {r0, r1, r4, r5, r6, r8, r9, ip, sp, lr}^ - 4e74: 6e4d6b6e fnmacdvs d22, d13, d30 - 4e78: 2e746d67 cdpcs 13, 7, cr6, cr4, cr7, {3} - 4e7c: a6080063 strge r0, [r8], -r3, rrx - 4e80: 04cbf798 strbeq pc, [fp], #1944 - 4e84: 000001d6 ldrdeq r0, [r0], -r6 - 4e88: 000000ad andeq r0, r0, sp, lsr #1 - 4e8c: 008e0002 addeq r0, lr, r2 - 4e90: 01020000 tsteq r2, r0 - 4e94: 000a0500 andeq r0, sl, r0, lsl #10 - 4e98: 01010101 tsteq r1, r1, lsl #2 - 4e9c: 00000000 andeq r0, r0, r0 - 4ea0: 445c3a43 ldrbmi r3, [ip], #-2627 - 4ea4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4ea8: 73746e65 cmnvc r4, #1616 ; 0x650 - 4eac: 646e6120 strbtvs r6, [lr], #-288 - 4eb0: 74655320 strbtvc r5, [r5], #-800 - 4eb4: 676e6974 undefined - 4eb8: 616d5c73 smcvs 54723 - 4ebc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4ec0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4ec4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4ec8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4ecc: 775c7374 undefined - 4ed0: 6f632d73 svcvs 0x00632d73 - 4ed4: 6f72746e svcvs 0x0072746e - 4ed8: 65575c6c ldrbvs r5, [r7, #-3180] - 4edc: 65687461 strbvs r7, [r8, #-1121]! - 4ee0: 74532072 ldrbvc r2, [r3], #-114 - 4ee4: 6f697461 svcvs 0x00697461 - 4ee8: 6f43206e svcvs 0x0043206e - 4eec: 6f72746e svcvs 0x0072746e - 4ef0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4ef4: 414d535c cmpmi sp, ip, asr r3 - 4ef8: 6f535c43 svcvs 0x00535c43 - 4efc: 65637275 strbvs r7, [r3, #-629]! - 4f00: 5700005c smlsdpl r0, ip, r0, r0 - 4f04: 6c657269 sfmvs f7, 2, [r5], #-420 - 4f08: 4c737365 ldclmi 3, cr7, [r3], #-404 - 4f0c: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! - 4f10: 746d676e strbtvc r6, [sp], #-1902 - 4f14: 0100632e tsteq r0, lr, lsr #6 - 4f18: cbf798a6 blgt ffdeb1b8 - 4f1c: 0001d604 andeq sp, r1, r4, lsl #12 - 4f20: 1c020500 cfstr32ne mvfx0, [r2], {0} - 4f24: 0500403a streq r4, [r0, #-58] - 4f28: 0e370301 cdpeq 3, 3, cr0, cr7, cr1, {0} - 4f2c: 0b100305 bleq 405b48 - 4f30: 0b191915 bleq 64b38c - 4f34: 01000102 tsteq r0, r2, lsl #2 - 4f38: 00000001 andeq r0, r0, r1 - 4f3c: 000000b1 strheq r0, [r0], -r1 - 4f40: 008e0002 addeq r0, lr, r2 - 4f44: 01020000 tsteq r2, r0 - 4f48: 000a0500 andeq r0, sl, r0, lsl #10 - 4f4c: 01010101 tsteq r1, r1, lsl #2 - 4f50: 00000000 andeq r0, r0, r0 - 4f54: 445c3a43 ldrbmi r3, [ip], #-2627 - 4f58: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4f5c: 73746e65 cmnvc r4, #1616 ; 0x650 - 4f60: 646e6120 strbtvs r6, [lr], #-288 - 4f64: 74655320 strbtvc r5, [r5], #-800 - 4f68: 676e6974 undefined - 4f6c: 616d5c73 smcvs 54723 - 4f70: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4f74: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4f78: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4f7c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4f80: 775c7374 undefined - 4f84: 6f632d73 svcvs 0x00632d73 - 4f88: 6f72746e svcvs 0x0072746e - 4f8c: 65575c6c ldrbvs r5, [r7, #-3180] - 4f90: 65687461 strbvs r7, [r8, #-1121]! - 4f94: 74532072 ldrbvc r2, [r3], #-114 - 4f98: 6f697461 svcvs 0x00697461 - 4f9c: 6f43206e svcvs 0x0043206e - 4fa0: 6f72746e svcvs 0x0072746e - 4fa4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4fa8: 414d535c cmpmi sp, ip, asr r3 - 4fac: 6f535c43 svcvs 0x00535c43 - 4fb0: 65637275 strbvs r7, [r3, #-629]! - 4fb4: 5700005c smlsdpl r0, ip, r0, r0 - 4fb8: 6c657269 sfmvs f7, 2, [r5], #-420 - 4fbc: 4c737365 ldclmi 3, cr7, [r3], #-404 - 4fc0: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! - 4fc4: 746d676e strbtvc r6, [sp], #-1902 - 4fc8: 0100632e tsteq r0, lr, lsr #6 - 4fcc: cbf798a6 blgt ffdeb26c - 4fd0: 0001d604 andeq sp, r1, r4, lsl #12 - 4fd4: 30020500 andcc r0, r2, r0, lsl #10 - 4fd8: 0500403a streq r4, [r0, #-58] - 4fdc: 00c50301 sbceq r0, r5, r1, lsl #6 - 4fe0: 1303050e movwne r0, #13582 ; 0x350e - 4fe4: 17160505 ldrne r0, [r6, -r5, lsl #10] - 4fe8: 0c03052d cfstr32eq mvfx0, [r3], {45} - 4fec: 01000202 tsteq r0, r2, lsl #4 - 4ff0: 00000001 andeq r0, r0, r1 - 4ff4: 000000a9 andeq r0, r0, r9, lsr #1 - 4ff8: 008e0002 addeq r0, lr, r2 - 4ffc: 01020000 tsteq r2, r0 - 5000: 000a0500 andeq r0, sl, r0, lsl #10 - 5004: 01010101 tsteq r1, r1, lsl #2 - 5008: 00000000 andeq r0, r0, r0 - 500c: 445c3a43 ldrbmi r3, [ip], #-2627 - 5010: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5014: 73746e65 cmnvc r4, #1616 ; 0x650 - 5018: 646e6120 strbtvs r6, [lr], #-288 - 501c: 74655320 strbtvc r5, [r5], #-800 - 5020: 676e6974 undefined - 5024: 616d5c73 smcvs 54723 - 5028: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 502c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5030: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5034: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5038: 775c7374 undefined - 503c: 6f632d73 svcvs 0x00632d73 - 5040: 6f72746e svcvs 0x0072746e - 5044: 65575c6c ldrbvs r5, [r7, #-3180] - 5048: 65687461 strbvs r7, [r8, #-1121]! - 504c: 74532072 ldrbvc r2, [r3], #-114 - 5050: 6f697461 svcvs 0x00697461 - 5054: 6f43206e svcvs 0x0043206e - 5058: 6f72746e svcvs 0x0072746e - 505c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5060: 414d535c cmpmi sp, ip, asr r3 - 5064: 6f535c43 svcvs 0x00535c43 - 5068: 65637275 strbvs r7, [r3, #-629]! - 506c: 5700005c smlsdpl r0, ip, r0, r0 - 5070: 6c657269 sfmvs f7, 2, [r5], #-420 - 5074: 4c737365 ldclmi 3, cr7, [r3], #-404 - 5078: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! - 507c: 746d676e strbtvc r6, [sp], #-1902 - 5080: 0100632e tsteq r0, lr, lsr #6 - 5084: cbf798a6 blgt ffdeb324 - 5088: 0001d604 andeq sp, r1, r4, lsl #12 - 508c: 00020500 andeq r0, r2, r0, lsl #10 - 5090: 05000000 streq r0, [r0] - 5094: 00da0301 sbcseq r0, sl, r1, lsl #6 - 5098: 1003050e andne r0, r3, lr, lsl #10 - 509c: 01000902 tsteq r0, r2, lsl #18 - 50a0: 00000001 andeq r0, r0, r1 - 50a4: 000000aa andeq r0, r0, sl, lsr #1 - 50a8: 008e0002 addeq r0, lr, r2 - 50ac: 01020000 tsteq r2, r0 - 50b0: 000a0500 andeq r0, sl, r0, lsl #10 - 50b4: 01010101 tsteq r1, r1, lsl #2 - 50b8: 00000000 andeq r0, r0, r0 - 50bc: 445c3a43 ldrbmi r3, [ip], #-2627 - 50c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 50c4: 73746e65 cmnvc r4, #1616 ; 0x650 - 50c8: 646e6120 strbtvs r6, [lr], #-288 - 50cc: 74655320 strbtvc r5, [r5], #-800 - 50d0: 676e6974 undefined - 50d4: 616d5c73 smcvs 54723 - 50d8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 50dc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 50e0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 50e4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 50e8: 775c7374 undefined - 50ec: 6f632d73 svcvs 0x00632d73 - 50f0: 6f72746e svcvs 0x0072746e - 50f4: 65575c6c ldrbvs r5, [r7, #-3180] - 50f8: 65687461 strbvs r7, [r8, #-1121]! - 50fc: 74532072 ldrbvc r2, [r3], #-114 - 5100: 6f697461 svcvs 0x00697461 - 5104: 6f43206e svcvs 0x0043206e - 5108: 6f72746e svcvs 0x0072746e - 510c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5110: 414d535c cmpmi sp, ip, asr r3 - 5114: 6f535c43 svcvs 0x00535c43 - 5118: 65637275 strbvs r7, [r3, #-629]! - 511c: 5700005c smlsdpl r0, ip, r0, r0 - 5120: 6c657269 sfmvs f7, 2, [r5], #-420 - 5124: 4c737365 ldclmi 3, cr7, [r3], #-404 - 5128: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! - 512c: 746d676e strbtvc r6, [sp], #-1902 - 5130: 0100632e tsteq r0, lr, lsr #6 - 5134: cbf798a6 blgt ffdeb3d4 - 5138: 0001d604 andeq sp, r1, r4, lsl #12 - 513c: 54020500 strpl r0, [r2], #-1280 - 5140: 0500403a streq r4, [r0, #-58] - 5144: 00e60301 rsceq r0, r6, r1, lsl #6 - 5148: 1003050e andne r0, r3, lr, lsl #10 - 514c: 00010229 andeq r0, r1, r9, lsr #4 - 5150: 00000101 andeq r0, r0, r1, lsl #2 - 5154: 000000ad andeq r0, r0, sp, lsr #1 - 5158: 008e0002 addeq r0, lr, r2 - 515c: 01020000 tsteq r2, r0 - 5160: 000a0500 andeq r0, sl, r0, lsl #10 - 5164: 01010101 tsteq r1, r1, lsl #2 - 5168: 00000000 andeq r0, r0, r0 - 516c: 445c3a43 ldrbmi r3, [ip], #-2627 - 5170: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5174: 73746e65 cmnvc r4, #1616 ; 0x650 - 5178: 646e6120 strbtvs r6, [lr], #-288 - 517c: 74655320 strbtvc r5, [r5], #-800 - 5180: 676e6974 undefined - 5184: 616d5c73 smcvs 54723 - 5188: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 518c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5190: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5194: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5198: 775c7374 undefined - 519c: 6f632d73 svcvs 0x00632d73 - 51a0: 6f72746e svcvs 0x0072746e - 51a4: 65575c6c ldrbvs r5, [r7, #-3180] - 51a8: 65687461 strbvs r7, [r8, #-1121]! - 51ac: 74532072 ldrbvc r2, [r3], #-114 - 51b0: 6f697461 svcvs 0x00697461 - 51b4: 6f43206e svcvs 0x0043206e - 51b8: 6f72746e svcvs 0x0072746e - 51bc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 51c0: 414d535c cmpmi sp, ip, asr r3 - 51c4: 6f535c43 svcvs 0x00535c43 - 51c8: 65637275 strbvs r7, [r3, #-629]! - 51cc: 5700005c smlsdpl r0, ip, r0, r0 - 51d0: 6c657269 sfmvs f7, 2, [r5], #-420 - 51d4: 4c737365 ldclmi 3, cr7, [r3], #-404 - 51d8: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! - 51dc: 746d676e strbtvc r6, [sp], #-1902 - 51e0: 0100632e tsteq r0, lr, lsr #6 - 51e4: cbf798a6 blgt ffdeb484 - 51e8: 0001d604 andeq sp, r1, r4, lsl #12 - 51ec: 00020500 andeq r0, r2, r0, lsl #10 - 51f0: 05000000 streq r0, [r0] - 51f4: 00f30301 rscseq r0, r3, r1, lsl #6 - 51f8: 1003050e andne r0, r3, lr, lsl #10 - 51fc: 17240505 strne r0, [r4, -r5, lsl #10]! - 5200: 01000402 tsteq r0, r2, lsl #8 - 5204: 00000001 andeq r0, r0, r1 - 5208: 000000af andeq r0, r0, pc, lsr #1 - 520c: 008e0002 addeq r0, lr, r2 - 5210: 01020000 tsteq r2, r0 - 5214: 000a0500 andeq r0, sl, r0, lsl #10 - 5218: 01010101 tsteq r1, r1, lsl #2 - 521c: 00000000 andeq r0, r0, r0 - 5220: 445c3a43 ldrbmi r3, [ip], #-2627 - 5224: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5228: 73746e65 cmnvc r4, #1616 ; 0x650 - 522c: 646e6120 strbtvs r6, [lr], #-288 - 5230: 74655320 strbtvc r5, [r5], #-800 - 5234: 676e6974 undefined - 5238: 616d5c73 smcvs 54723 - 523c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5240: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5244: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5248: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 524c: 775c7374 undefined - 5250: 6f632d73 svcvs 0x00632d73 - 5254: 6f72746e svcvs 0x0072746e - 5258: 65575c6c ldrbvs r5, [r7, #-3180] - 525c: 65687461 strbvs r7, [r8, #-1121]! - 5260: 74532072 ldrbvc r2, [r3], #-114 - 5264: 6f697461 svcvs 0x00697461 - 5268: 6f43206e svcvs 0x0043206e - 526c: 6f72746e svcvs 0x0072746e - 5270: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5274: 414d535c cmpmi sp, ip, asr r3 - 5278: 6f535c43 svcvs 0x00535c43 - 527c: 65637275 strbvs r7, [r3, #-629]! - 5280: 5700005c smlsdpl r0, ip, r0, r0 - 5284: 6c657269 sfmvs f7, 2, [r5], #-420 - 5288: 4c737365 ldclmi 3, cr7, [r3], #-404 - 528c: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! - 5290: 746d676e strbtvc r6, [sp], #-1902 - 5294: 0100632e tsteq r0, lr, lsr #6 - 5298: cbf798a6 blgt ffdeb538 - 529c: 0001d604 andeq sp, r1, r4, lsl #12 - 52a0: 64020500 strvs r0, [r2], #-1280 - 52a4: 0500403a streq r4, [r0, #-58] - 52a8: 01840301 orreq r0, r4, r1, lsl #6 - 52ac: 1103050e tstne r3, lr, lsl #10 - 52b0: 051a0505 ldreq r0, [sl, #-1285] - 52b4: 15291706 strne r1, [r9, #-1798]! - 52b8: 00010100 andeq r0, r1, r0, lsl #2 - 52bc: 00000022 andeq r0, r0, r2, lsr #32 - 52c0: 00100002 andseq r0, r0, r2 - 52c4: 01020000 tsteq r2, r0 - 52c8: 000a0500 andeq r0, sl, r0, lsl #10 - 52cc: 01010101 tsteq r1, r1, lsl #2 - 52d0: 00000000 andeq r0, r0, r0 - 52d4: 05000000 streq r0, [r0] - 52d8: 403a8002 eorsmi r8, sl, r2 - 52dc: 00020200 andeq r0, r2, r0, lsl #4 - 52e0: 00000101 andeq r0, r0, r1, lsl #2 - 52e4: 00000022 andeq r0, r0, r2, lsr #32 - 52e8: 00100002 andseq r0, r0, r2 - 52ec: 01040000 tsteq r4, r0 - 52f0: 000a0500 andeq r0, sl, r0, lsl #10 - 52f4: 01010101 tsteq r1, r1, lsl #2 - 52f8: 00000000 andeq r0, r0, r0 - 52fc: 05000000 streq r0, [r0] - 5300: 403a8402 eorsmi r8, sl, r2, lsl #8 - 5304: 00020200 andeq r0, r2, r0, lsl #4 - 5308: 00000101 andeq r0, r0, r1, lsl #2 - 530c: 000000b0 strheq r0, [r0], -r0 - 5310: 008e0002 addeq r0, lr, r2 - 5314: 01020000 tsteq r2, r0 - 5318: 000a0500 andeq r0, sl, r0, lsl #10 - 531c: 01010101 tsteq r1, r1, lsl #2 - 5320: 00000000 andeq r0, r0, r0 - 5324: 445c3a43 ldrbmi r3, [ip], #-2627 - 5328: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 532c: 73746e65 cmnvc r4, #1616 ; 0x650 - 5330: 646e6120 strbtvs r6, [lr], #-288 - 5334: 74655320 strbtvc r5, [r5], #-800 - 5338: 676e6974 undefined - 533c: 616d5c73 smcvs 54723 - 5340: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5344: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5348: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 534c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5350: 775c7374 undefined - 5354: 6f632d73 svcvs 0x00632d73 - 5358: 6f72746e svcvs 0x0072746e - 535c: 65575c6c ldrbvs r5, [r7, #-3180] - 5360: 65687461 strbvs r7, [r8, #-1121]! - 5364: 74532072 ldrbvc r2, [r3], #-114 - 5368: 6f697461 svcvs 0x00697461 - 536c: 6f43206e svcvs 0x0043206e - 5370: 6f72746e svcvs 0x0072746e - 5374: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5378: 414d535c cmpmi sp, ip, asr r3 - 537c: 6f535c43 svcvs 0x00535c43 - 5380: 65637275 strbvs r7, [r3, #-629]! - 5384: 5700005c smlsdpl r0, ip, r0, r0 - 5388: 6c657269 sfmvs f7, 2, [r5], #-420 - 538c: 4c737365 ldclmi 3, cr7, [r3], #-404 - 5390: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! - 5394: 746d676e strbtvc r6, [sp], #-1902 - 5398: 0100632e tsteq r0, lr, lsr #6 - 539c: cbf798a6 blgt ffdeb63c - 53a0: 0001d604 andeq sp, r1, r4, lsl #12 - 53a4: 8e020500 cfsh32hi mvfx0, mvfx2, #0 - 53a8: 0500403a streq r4, [r0, #-58] - 53ac: 01ad0301 undefined instruction 0x01ad0301 - 53b0: 1103050e tstne r3, lr, lsl #10 - 53b4: 17150505 ldrne r0, [r5, -r5, lsl #10] - 53b8: 021b0305 andseq r0, fp, #335544320 ; 0x14000000 - 53bc: 01010003 tsteq r1, r3 - 53c0: 0000018a andeq r0, r0, sl, lsl #3 - 53c4: 01840002 orreq r0, r4, r2 - 53c8: 01010000 tsteq r1, r0 - 53cc: 000a0500 andeq r0, sl, r0, lsl #10 - 53d0: 01010101 tsteq r1, r1, lsl #2 - 53d4: 00000000 andeq r0, r0, r0 - 53d8: 445c3a43 ldrbmi r3, [ip], #-2627 - 53dc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 53e0: 73746e65 cmnvc r4, #1616 ; 0x650 - 53e4: 646e6120 strbtvs r6, [lr], #-288 - 53e8: 74655320 strbtvc r5, [r5], #-800 - 53ec: 676e6974 undefined - 53f0: 616d5c73 smcvs 54723 - 53f4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 53f8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 53fc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5400: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5404: 775c7374 undefined - 5408: 6f632d73 svcvs 0x00632d73 - 540c: 6f72746e svcvs 0x0072746e - 5410: 65575c6c ldrbvs r5, [r7, #-3180] - 5414: 65687461 strbvs r7, [r8, #-1121]! - 5418: 74532072 ldrbvc r2, [r3], #-114 - 541c: 6f697461 svcvs 0x00697461 - 5420: 6f43206e svcvs 0x0043206e - 5424: 6f72746e svcvs 0x0072746e - 5428: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 542c: 4d4c505c stclmi 0, cr5, [ip, #-368] - 5430: 746e495c strbtvc r4, [lr], #-2396 - 5434: 61667265 cmnvs r6, r5, ror #4 - 5438: 005c6563 subseq r6, ip, r3, ror #10 - 543c: 445c3a43 ldrbmi r3, [ip], #-2627 - 5440: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5444: 73746e65 cmnvc r4, #1616 ; 0x650 - 5448: 646e6120 strbtvs r6, [lr], #-288 - 544c: 74655320 strbtvc r5, [r5], #-800 - 5450: 676e6974 undefined - 5454: 616d5c73 smcvs 54723 - 5458: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 545c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5460: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5464: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5468: 775c7374 undefined - 546c: 6f632d73 svcvs 0x00632d73 - 5470: 6f72746e svcvs 0x0072746e - 5474: 65575c6c ldrbvs r5, [r7, #-3180] - 5478: 65687461 strbvs r7, [r8, #-1121]! - 547c: 74532072 ldrbvc r2, [r3], #-114 - 5480: 6f697461 svcvs 0x00697461 - 5484: 6f43206e svcvs 0x0043206e - 5488: 6f72746e svcvs 0x0072746e - 548c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5490: 414d535c cmpmi sp, ip, asr r3 - 5494: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 5498: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 549c: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 54a0: 66726574 undefined - 54a4: 5c656361 stclpl 3, cr6, [r5], #-388 - 54a8: 72646867 rsbvc r6, r4, #6750208 ; 0x670000 - 54ac: 3a43005c bcc 10c5624 - 54b0: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 54b4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 54b8: 61207374 teqvs r0, r4, ror r3 - 54bc: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 54c0: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 54c4: 5c73676e ldclpl 7, cr6, [r3], #-440 - 54c8: 766c616d strbtvc r6, [ip], -sp, ror #2 - 54cc: 5c617269 sfmpl f7, 2, [r1], #-420 - 54d0: 4420794d strtmi r7, [r0], #-2381 - 54d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 54d8: 73746e65 cmnvc r4, #1616 ; 0x650 - 54dc: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 54e0: 746e6f63 strbtvc r6, [lr], #-3939 - 54e4: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 54e8: 74616557 strbtvc r6, [r1], #-1367 - 54ec: 20726568 rsbscs r6, r2, r8, ror #10 - 54f0: 74617453 strbtvc r7, [r1], #-1107 - 54f4: 206e6f69 rsbcs r6, lr, r9, ror #30 - 54f8: 746e6f43 strbtvc r6, [lr], #-3907 - 54fc: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 5500: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 5504: 5c43414d stfple f4, [r3], {77} - 5508: 76697244 strbtvc r7, [r9], -r4, asr #4 - 550c: 5c737265 lfmpl f7, 2, [r3], #-404 - 5510: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 5514: 005c6563 subseq r6, ip, r3, ror #10 - 5518: 626d4500 rsbvs r4, sp, #0 ; 0x0 - 551c: 65646465 strbvs r6, [r4, #-1125]! - 5520: 70795464 rsbsvc r5, r9, r4, ror #8 - 5524: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} - 5528: 9d9e0100 ldflss f0, [lr] - 552c: 7704c0d7 undefined - 5530: 6163616d cmnvs r3, sp, ror #2 - 5534: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 - 5538: c49dadc2 ldrgt sl, [sp], #3522 - 553c: 6d038c04 stcvs 12, cr8, [r3, #-16] - 5540: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} - 5544: a8030063 stmdage r3, {r0, r1, r5, r6} - 5548: 04c5d0be strbeq sp, [r5], #190 - 554c: 00000043 andeq r0, r0, r3, asr #32 - 5550: 000000ae andeq r0, r0, lr, lsr #1 - 5554: 00880002 addeq r0, r8, r2 - 5558: 01020000 tsteq r2, r0 - 555c: 000a0500 andeq r0, sl, r0, lsl #10 - 5560: 01010101 tsteq r1, r1, lsl #2 - 5564: 00000000 andeq r0, r0, r0 - 5568: 445c3a43 ldrbmi r3, [ip], #-2627 - 556c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5570: 73746e65 cmnvc r4, #1616 ; 0x650 - 5574: 646e6120 strbtvs r6, [lr], #-288 - 5578: 74655320 strbtvc r5, [r5], #-800 - 557c: 676e6974 undefined - 5580: 616d5c73 smcvs 54723 - 5584: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5588: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 558c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5590: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5594: 775c7374 undefined - 5598: 6f632d73 svcvs 0x00632d73 - 559c: 6f72746e svcvs 0x0072746e - 55a0: 65575c6c ldrbvs r5, [r7, #-3180] - 55a4: 65687461 strbvs r7, [r8, #-1121]! - 55a8: 74532072 ldrbvc r2, [r3], #-114 - 55ac: 6f697461 svcvs 0x00697461 - 55b0: 6f43206e svcvs 0x0043206e - 55b4: 6f72746e svcvs 0x0072746e - 55b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 55bc: 414d535c cmpmi sp, ip, asr r3 - 55c0: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 55c4: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 55c8: 6f535c73 svcvs 0x00535c73 - 55cc: 65637275 strbvs r7, [r3, #-629]! - 55d0: 6d00005c stcvs 0, cr0, [r0, #-368] - 55d4: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} - 55d8: a8010063 stmdage r1, {r0, r1, r5, r6} - 55dc: 04c5d0be strbeq sp, [r5], #190 - 55e0: 05000043 streq r0, [r0, #-67] - 55e4: 403e7002 eorsmi r7, lr, r2 - 55e8: 03010500 movweq r0, #5376 ; 0x1500 - 55ec: 03050e32 movweq r0, #24114 ; 0x5e32 - 55f0: 2105050c tstcs r5, ip, lsl #10 - 55f4: 05160905 ldreq r0, [r6, #-2309] - 55f8: 01051c03 tsteq r5, r3, lsl #24 - 55fc: 0008021a andeq r0, r8, sl, lsl r2 - 5600: 00000101 andeq r0, r0, r1, lsl #2 - 5604: 000008cf andeq r0, r0, pc, asr #17 - 5608: 08c90002 stmiaeq r9, {r1}^ - 560c: 01010000 tsteq r1, r0 - 5610: 000a0500 andeq r0, sl, r0, lsl #10 - 5614: 01010101 tsteq r1, r1, lsl #2 - 5618: 00000000 andeq r0, r0, r0 - 561c: 445c3a43 ldrbmi r3, [ip], #-2627 - 5620: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5624: 73746e65 cmnvc r4, #1616 ; 0x650 - 5628: 646e6120 strbtvs r6, [lr], #-288 - 562c: 74655320 strbtvc r5, [r5], #-800 - 5630: 676e6974 undefined - 5634: 616d5c73 smcvs 54723 - 5638: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 563c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5640: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5644: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5648: 775c7374 undefined - 564c: 6f632d73 svcvs 0x00632d73 - 5650: 6f72746e svcvs 0x0072746e - 5654: 65575c6c ldrbvs r5, [r7, #-3180] - 5658: 65687461 strbvs r7, [r8, #-1121]! - 565c: 74532072 ldrbvc r2, [r3], #-114 - 5660: 6f697461 svcvs 0x00697461 - 5664: 6f43206e svcvs 0x0043206e - 5668: 6f72746e svcvs 0x0072746e - 566c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5670: 7070415c rsbsvc r4, r0, ip, asr r1 - 5674: 6163696c cmnvs r3, ip, ror #18 - 5678: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 567c: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} - 5680: 75676966 strbvc r6, [r7, #-2406]! - 5684: 005c6572 subseq r6, ip, r2, ror r5 - 5688: 445c3a43 ldrbmi r3, [ip], #-2627 - 568c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5690: 73746e65 cmnvc r4, #1616 ; 0x650 - 5694: 646e6120 strbtvs r6, [lr], #-288 - 5698: 74655320 strbtvc r5, [r5], #-800 - 569c: 676e6974 undefined - 56a0: 616d5c73 smcvs 54723 - 56a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 56a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 56ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 56b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 56b4: 775c7374 undefined - 56b8: 6f632d73 svcvs 0x00632d73 - 56bc: 6f72746e svcvs 0x0072746e - 56c0: 65575c6c ldrbvs r5, [r7, #-3180] - 56c4: 65687461 strbvs r7, [r8, #-1121]! - 56c8: 74532072 ldrbvc r2, [r3], #-114 - 56cc: 6f697461 svcvs 0x00697461 - 56d0: 6f43206e svcvs 0x0043206e - 56d4: 6f72746e svcvs 0x0072746e - 56d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 56dc: 7070415c rsbsvc r4, r0, ip, asr r1 - 56e0: 6163696c cmnvs r3, ip, ror #18 - 56e4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 56e8: 61744f5c cmnvs r4, ip, asr pc - 56ec: 43005c70 movwmi r5, #3184 ; 0xc70 - 56f0: 6f445c3a svcvs 0x00445c3a - 56f4: 656d7563 strbvs r7, [sp, #-1379]! - 56f8: 2073746e rsbscs r7, r3, lr, ror #8 - 56fc: 20646e61 rsbcs r6, r4, r1, ror #28 - 5700: 74746553 ldrbtvc r6, [r4], #-1363 - 5704: 73676e69 cmnvc r7, #1680 ; 0x690 - 5708: 6c616d5c stclvs 13, cr6, [r1], #-368 - 570c: 61726976 cmnvs r2, r6, ror r9 - 5710: 20794d5c rsbscs r4, r9, ip, asr sp - 5714: 75636f44 strbvc r6, [r3, #-3908]! - 5718: 746e656d strbtvc r6, [lr], #-1389 - 571c: 73775c73 cmnvc r7, #29440 ; 0x7300 - 5720: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 5724: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 5728: 6165575c cmnvs r5, ip, asr r7 - 572c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 5730: 61745320 cmnvs r4, r0, lsr #6 - 5734: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 5738: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 573c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 5740: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 5744: 6c707041 ldclvs 0, cr7, [r0], #-260 - 5748: 74616369 strbtvc r6, [r1], #-873 - 574c: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 5750: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 5754: 005c6563 subseq r6, ip, r3, ror #10 - 5758: 445c3a43 ldrbmi r3, [ip], #-2627 - 575c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5760: 73746e65 cmnvc r4, #1616 ; 0x650 - 5764: 646e6120 strbtvs r6, [lr], #-288 - 5768: 74655320 strbtvc r5, [r5], #-800 - 576c: 676e6974 undefined - 5770: 616d5c73 smcvs 54723 - 5774: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5778: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 577c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5780: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5784: 775c7374 undefined - 5788: 6f632d73 svcvs 0x00632d73 - 578c: 6f72746e svcvs 0x0072746e - 5790: 65575c6c ldrbvs r5, [r7, #-3180] - 5794: 65687461 strbvs r7, [r8, #-1121]! - 5798: 74532072 ldrbvc r2, [r3], #-114 - 579c: 6f697461 svcvs 0x00697461 - 57a0: 6f43206e svcvs 0x0043206e - 57a4: 6f72746e svcvs 0x0072746e - 57a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 57ac: 7070415c rsbsvc r4, r0, ip, asr r1 - 57b0: 6163696c cmnvs r3, ip, ror #18 - 57b4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 57b8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ - 57bc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ - 57c0: 005c7365 subseq r7, ip, r5, ror #6 - 57c4: 445c3a43 ldrbmi r3, [ip], #-2627 - 57c8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 57cc: 73746e65 cmnvc r4, #1616 ; 0x650 - 57d0: 646e6120 strbtvs r6, [lr], #-288 - 57d4: 74655320 strbtvc r5, [r5], #-800 - 57d8: 676e6974 undefined - 57dc: 616d5c73 smcvs 54723 - 57e0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 57e4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 57e8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 57ec: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 57f0: 775c7374 undefined - 57f4: 6f632d73 svcvs 0x00632d73 - 57f8: 6f72746e svcvs 0x0072746e - 57fc: 65575c6c ldrbvs r5, [r7, #-3180] - 5800: 65687461 strbvs r7, [r8, #-1121]! - 5804: 74532072 ldrbvc r2, [r3], #-114 - 5808: 6f697461 svcvs 0x00697461 - 580c: 6f43206e svcvs 0x0043206e - 5810: 6f72746e svcvs 0x0072746e - 5814: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5818: 4d4c505c stclmi 0, cr5, [ip, #-368] - 581c: 746e495c strbtvc r4, [lr], #-2396 - 5820: 61667265 cmnvs r6, r5, ror #4 - 5824: 005c6563 subseq r6, ip, r3, ror #10 - 5828: 445c3a43 ldrbmi r3, [ip], #-2627 - 582c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5830: 73746e65 cmnvc r4, #1616 ; 0x650 - 5834: 646e6120 strbtvs r6, [lr], #-288 - 5838: 74655320 strbtvc r5, [r5], #-800 - 583c: 676e6974 undefined - 5840: 616d5c73 smcvs 54723 - 5844: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5848: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 584c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5850: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5854: 775c7374 undefined - 5858: 6f632d73 svcvs 0x00632d73 - 585c: 6f72746e svcvs 0x0072746e - 5860: 65575c6c ldrbvs r5, [r7, #-3180] - 5864: 65687461 strbvs r7, [r8, #-1121]! - 5868: 74532072 ldrbvc r2, [r3], #-114 - 586c: 6f697461 svcvs 0x00697461 - 5870: 6f43206e svcvs 0x0043206e - 5874: 6f72746e svcvs 0x0072746e - 5878: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 587c: 4d4c505c stclmi 0, cr5, [ip, #-368] - 5880: 42494c5c submi r4, r9, #23552 ; 0x5c00 - 5884: 65746e49 ldrbvs r6, [r4, #-3657]! - 5888: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 588c: 43005c65 movwmi r5, #3173 ; 0xc65 - 5890: 6f445c3a svcvs 0x00445c3a - 5894: 656d7563 strbvs r7, [sp, #-1379]! - 5898: 2073746e rsbscs r7, r3, lr, ror #8 - 589c: 20646e61 rsbcs r6, r4, r1, ror #28 - 58a0: 74746553 ldrbtvc r6, [r4], #-1363 - 58a4: 73676e69 cmnvc r7, #1680 ; 0x690 - 58a8: 6c616d5c stclvs 13, cr6, [r1], #-368 - 58ac: 61726976 cmnvs r2, r6, ror r9 - 58b0: 20794d5c rsbscs r4, r9, ip, asr sp - 58b4: 75636f44 strbvc r6, [r3, #-3908]! - 58b8: 746e656d strbtvc r6, [lr], #-1389 - 58bc: 73775c73 cmnvc r7, #29440 ; 0x7300 - 58c0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 58c4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 58c8: 6165575c cmnvs r5, ip, asr r7 - 58cc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 58d0: 61745320 cmnvs r4, r0, lsr #6 - 58d4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 58d8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 58dc: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 58e0: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 58e4: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 - 58e8: 4962694c stmdbmi r2!, {r2, r3, r6, r8, fp, sp, lr}^ - 58ec: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 58f0: 65636166 strbvs r6, [r3, #-358]! - 58f4: 3a43005c bcc 10c5a6c - 58f8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 58fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5900: 61207374 teqvs r0, r4, ror r3 - 5904: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 5908: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 590c: 5c73676e ldclpl 7, cr6, [r3], #-440 - 5910: 766c616d strbtvc r6, [ip], -sp, ror #2 - 5914: 5c617269 sfmpl f7, 2, [r1], #-420 - 5918: 4420794d strtmi r7, [r0], #-2381 - 591c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5920: 73746e65 cmnvc r4, #1616 ; 0x650 - 5924: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 5928: 746e6f63 strbtvc r6, [lr], #-3939 - 592c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 5930: 74616557 strbtvc r6, [r1], #-1367 - 5934: 20726568 rsbscs r6, r2, r8, ror #10 - 5938: 74617453 strbtvc r7, [r1], #-1107 - 593c: 206e6f69 rsbcs r6, lr, r9, ror #30 - 5940: 746e6f43 strbtvc r6, [lr], #-3907 - 5944: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 5948: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 594c: 5c43414d stfple f4, [r3], {77} - 5950: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 5954: 72756769 rsbsvc r6, r5, #27525120 ; 0x1a40000 - 5958: 43005c65 movwmi r5, #3173 ; 0xc65 - 595c: 6f445c3a svcvs 0x00445c3a - 5960: 656d7563 strbvs r7, [sp, #-1379]! - 5964: 2073746e rsbscs r7, r3, lr, ror #8 - 5968: 20646e61 rsbcs r6, r4, r1, ror #28 - 596c: 74746553 ldrbtvc r6, [r4], #-1363 - 5970: 73676e69 cmnvc r7, #1680 ; 0x690 - 5974: 6c616d5c stclvs 13, cr6, [r1], #-368 - 5978: 61726976 cmnvs r2, r6, ror r9 - 597c: 20794d5c rsbscs r4, r9, ip, asr sp - 5980: 75636f44 strbvc r6, [r3, #-3908]! - 5984: 746e656d strbtvc r6, [lr], #-1389 - 5988: 73775c73 cmnvc r7, #29440 ; 0x7300 - 598c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 5990: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 5994: 6165575c cmnvs r5, ip, asr r7 - 5998: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 599c: 61745320 cmnvs r4, r0, lsr #6 - 59a0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 59a4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 59a8: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 59ac: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 59b0: 43414d53 movtmi r4, #7507 ; 0x1d53 - 59b4: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 59b8: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 59bc: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} - 59c0: 75676966 strbvc r6, [r7, #-2406]! - 59c4: 005c6572 subseq r6, ip, r2, ror r5 - 59c8: 445c3a43 ldrbmi r3, [ip], #-2627 - 59cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 59d0: 73746e65 cmnvc r4, #1616 ; 0x650 - 59d4: 646e6120 strbtvs r6, [lr], #-288 - 59d8: 74655320 strbtvc r5, [r5], #-800 - 59dc: 676e6974 undefined - 59e0: 616d5c73 smcvs 54723 - 59e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 59e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 59ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 59f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 59f4: 775c7374 undefined - 59f8: 6f632d73 svcvs 0x00632d73 - 59fc: 6f72746e svcvs 0x0072746e - 5a00: 65575c6c ldrbvs r5, [r7, #-3180] - 5a04: 65687461 strbvs r7, [r8, #-1121]! - 5a08: 74532072 ldrbvc r2, [r3], #-114 - 5a0c: 6f697461 svcvs 0x00697461 - 5a10: 6f43206e svcvs 0x0043206e - 5a14: 6f72746e svcvs 0x0072746e - 5a18: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5a1c: 414d535c cmpmi sp, ip, asr r3 - 5a20: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 5a24: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 5a28: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 5a2c: 66726574 undefined - 5a30: 5c656361 stclpl 3, cr6, [r5], #-388 - 5a34: 5c3a4300 ldcpl 3, cr4, [sl] - 5a38: 75636f44 strbvc r6, [r3, #-3908]! - 5a3c: 746e656d strbtvc r6, [lr], #-1389 - 5a40: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 5a44: 65532064 ldrbvs r2, [r3, #-100] - 5a48: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 5a4c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 5a50: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 5a54: 4d5c6172 ldfmie f6, [ip, #-456] - 5a58: 6f442079 svcvs 0x00442079 - 5a5c: 656d7563 strbvs r7, [sp, #-1379]! - 5a60: 5c73746e cfldrdpl mvd7, [r3], #-440 - 5a64: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 5a68: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 5a6c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 5a70: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 5a74: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 5a78: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 5a7c: 43206e6f teqmi r0, #1776 ; 0x6f0 - 5a80: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 5a84: 656c6c6f strbvs r6, [ip, #-3183]! - 5a88: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 5a8c: 445c4341 ldrbmi r4, [ip], #-833 - 5a90: 65766972 ldrbvs r6, [r6, #-2418]! - 5a94: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ - 5a98: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 5a9c: 65636166 strbvs r6, [r3, #-358]! - 5aa0: 6468675c strbtvs r6, [r8], #-1884 - 5aa4: 43005c72 movwmi r5, #3186 ; 0xc72 - 5aa8: 6f445c3a svcvs 0x00445c3a - 5aac: 656d7563 strbvs r7, [sp, #-1379]! - 5ab0: 2073746e rsbscs r7, r3, lr, ror #8 - 5ab4: 20646e61 rsbcs r6, r4, r1, ror #28 - 5ab8: 74746553 ldrbtvc r6, [r4], #-1363 - 5abc: 73676e69 cmnvc r7, #1680 ; 0x690 - 5ac0: 6c616d5c stclvs 13, cr6, [r1], #-368 - 5ac4: 61726976 cmnvs r2, r6, ror r9 - 5ac8: 20794d5c rsbscs r4, r9, ip, asr sp - 5acc: 75636f44 strbvc r6, [r3, #-3908]! - 5ad0: 746e656d strbtvc r6, [lr], #-1389 - 5ad4: 73775c73 cmnvc r7, #29440 ; 0x7300 - 5ad8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 5adc: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 5ae0: 6165575c cmnvs r5, ip, asr r7 - 5ae4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 5ae8: 61745320 cmnvs r4, r0, lsr #6 - 5aec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 5af0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 5af4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 5af8: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 5afc: 43414d53 movtmi r4, #7507 ; 0x1d53 - 5b00: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 5b04: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 5b08: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 5b0c: 65746e49 ldrbvs r6, [r4, #-3657]! - 5b10: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 5b14: 43005c65 movwmi r5, #3173 ; 0xc65 - 5b18: 6f445c3a svcvs 0x00445c3a - 5b1c: 656d7563 strbvs r7, [sp, #-1379]! - 5b20: 2073746e rsbscs r7, r3, lr, ror #8 - 5b24: 20646e61 rsbcs r6, r4, r1, ror #28 - 5b28: 74746553 ldrbtvc r6, [r4], #-1363 - 5b2c: 73676e69 cmnvc r7, #1680 ; 0x690 - 5b30: 6c616d5c stclvs 13, cr6, [r1], #-368 - 5b34: 61726976 cmnvs r2, r6, ror r9 - 5b38: 20794d5c rsbscs r4, r9, ip, asr sp - 5b3c: 75636f44 strbvc r6, [r3, #-3908]! - 5b40: 746e656d strbtvc r6, [lr], #-1389 - 5b44: 73775c73 cmnvc r7, #29440 ; 0x7300 - 5b48: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 5b4c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 5b50: 6165575c cmnvs r5, ip, asr r7 - 5b54: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 5b58: 61745320 cmnvs r4, r0, lsr #6 - 5b5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 5b60: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 5b64: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 5b68: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 5b6c: 43414d53 movtmi r4, #7507 ; 0x1d53 - 5b70: 746e495c strbtvc r4, [lr], #-2396 - 5b74: 61667265 cmnvs r6, r5, ror #4 - 5b78: 005c6563 subseq r6, ip, r3, ror #10 - 5b7c: 70706100 rsbsvc r6, r0, r0, lsl #2 - 5b80: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} - 5b84: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} - 5b88: c8010068 stmdagt r1, {r3, r5, r6} - 5b8c: 04c5d0be strbeq sp, [r5], #190 - 5b90: 61744f1c cmnvs r4, ip, lsl pc - 5b94: 00682e70 rsbeq r2, r8, r0, ror lr - 5b98: 88c29e02 stmiahi r2, {r1, r9, sl, fp, ip, pc}^ - 5b9c: 01a704c7 undefined instruction 0x01a704c7 - 5ba0: 74616577 strbtvc r6, [r1], #-1399 - 5ba4: 5f726568 svcpl 0x00726568 - 5ba8: 74617473 strbtvc r7, [r1], #-1139 - 5bac: 5f6e6f69 svcpl 0x006e6f69 - 5bb0: 746e6f63 strbtvc r6, [lr], #-3939 - 5bb4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 5bb8: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 5bbc: c9e20300 stmibgt r2!, {r8, r9}^ - 5bc0: be04cef2 mcrlt 14, 0, ip, cr4, cr2, {7} - 5bc4: 7369440a cmnvc r9, #167772160 ; 0xa000000 - 5bc8: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ - 5bcc: 0400682e streq r6, [r0], #-2094 - 5bd0: c5d0bea8 ldrbgt fp, [r0, #3752] - 5bd4: 4b02bd04 blmi b4fec - 5bd8: 6f627965 svcvs 0x00627965 - 5bdc: 2e647261 cdpcs 2, 6, cr7, cr4, cr1, {3} - 5be0: f7040068 undefined instruction 0xf7040068 - 5be4: 04ceedfb strbeq lr, [lr], #3579 - 5be8: 44434c7e strbmi r4, [r3], #-3198 - 5bec: 6e6f465f mcrvs 6, 3, r4, cr15, cr15, {2} - 5bf0: 00682e74 rsbeq r2, r8, r4, ror lr - 5bf4: d0bea804 adcsle sl, lr, r4, lsl #16 - 5bf8: 4c3504c5 cfldrsmi mvf0, [r5], #-788 - 5bfc: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} - 5c00: f7040068 undefined instruction 0xf7040068 - 5c04: 04ceedfb strbeq lr, [lr], #3579 - 5c08: 6f5302c4 svcvs 0x005302c4 - 5c0c: 2e646e75 mcrcs 14, 3, r6, cr4, cr5, {3} - 5c10: f7040068 undefined instruction 0xf7040068 - 5c14: 04ceedfb strbeq lr, [lr], #3579 - 5c18: 7261552f rsbvc r5, r1, #197132288 ; 0xbc00000 - 5c1c: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ - 5c20: 00682e6c rsbeq r2, r8, ip, ror #28 - 5c24: e6d7c004 ldrb ip, [r7], r4 - 5c28: 02b404c8 adcseq r0, r4, #-939524096 ; 0xc8000000 - 5c2c: 65626d45 strbvs r6, [r2, #-3397]! - 5c30: 64656464 strbtvs r6, [r5], #-1124 - 5c34: 65707954 ldrbvs r7, [r0, #-2388]! - 5c38: 00682e73 rsbeq r2, r8, r3, ror lr - 5c3c: d79d9e05 ldrle r9, [sp, r5, lsl #28] - 5c40: 507704c0 rsbspl r0, r7, r0, asr #9 - 5c44: 435f5257 cmpmi pc, #1879048197 ; 0x70000005 - 5c48: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 5c4c: 00682e67 rsbeq r2, r8, r7, ror #28 - 5c50: edfbf705 ldcl 7, cr15, [fp, #20]! - 5c54: 503104ce eorspl r0, r1, lr, asr #9 - 5c58: 6674616c ldrbtvs r6, [r4], -ip, ror #2 - 5c5c: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ - 5c60: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} - 5c64: a6050068 strge r0, [r5], -r8, rrx - 5c68: 04c5d0be strbeq sp, [r5], #190 - 5c6c: 5f46522e svcpl 0x0046522e - 5c70: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 5c74: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} - 5c78: fbf70500 blx ffdc7082 - 5c7c: 3204ceed andcc ip, r4, #3792 ; 0xed0 - 5c80: 54524155 ldrbpl r4, [r2], #-341 - 5c84: 746e495f strbtvc r4, [lr], #-2399 - 5c88: 61667265 cmnvs r6, r5, ror #4 - 5c8c: 682e6563 stmdavs lr!, {r0, r1, r5, r6, r8, sl, sp, lr} - 5c90: a3d70500 bicsge r0, r7, #0 ; 0x0 - 5c94: 7f04ceee svcvc 0x0004ceee - 5c98: 5f4d5243 svcpl 0x004d5243 - 5c9c: 73676552 cmnvc r7, #343932928 ; 0x14800000 - 5ca0: 0600682e streq r6, [r0], -lr, lsr #16 - 5ca4: c0d78ff8 ldrshgt r8, [r7], #248 - 5ca8: 43028104 movwmi r8, #8452 ; 0x2104 - 5cac: 682e6d72 stmdavs lr!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} - 5cb0: 94f20600 ldrbtls r0, [r2], #1536 - 5cb4: cb04c0d7 blgt 136018 - 5cb8: 616c5005 cmnvs ip, r5 - 5cbc: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 - 5cc0: 00682e6d rsbeq r2, r8, sp, ror #28 - 5cc4: d794f206 ldrle pc, [r4, r6, lsl #4] - 5cc8: 03be04c0 undefined instruction 0x03be04c0 - 5ccc: 5f697353 svcpl 0x00697353 - 5cd0: 73676552 cmnvc r7, #343932928 ; 0x14800000 - 5cd4: 0600682e streq r6, [r0], -lr, lsr #16 - 5cd8: ba9196cc blt fe46b810 - 5cdc: 4101c504 tstmi r1, r4, lsl #10 - 5ce0: 495f4344 ldmdbmi pc, {r2, r6, r8, r9, lr}^ - 5ce4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 5ce8: 65636166 strbvs r6, [r3, #-358]! - 5cec: 0700682e streq r6, [r0, -lr, lsr #16] - 5cf0: c0d68482 sbcsgt r8, r6, r2, lsl #9 - 5cf4: 4703a604 strmi sl, [r3, -r4, lsl #12] - 5cf8: 5f4f4950 svcpl 0x004f4950 - 5cfc: 65746e49 ldrbvs r6, [r4, #-3657]! - 5d00: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 5d04: 00682e65 rsbeq r2, r8, r5, ror #28 - 5d08: d78ff807 strle pc, [pc, r7, lsl #16] - 5d0c: 069e04c0 ldreq r0, [lr], r0, asr #9 - 5d10: 5f435449 svcpl 0x00435449 - 5d14: 65746e49 ldrbvs r6, [r4, #-3657]! - 5d18: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 5d1c: 00682e65 rsbeq r2, r8, r5, ror #28 - 5d20: d78ff807 strle pc, [pc, r7, lsl #16] - 5d24: 02c404c0 sbceq r0, r4, #-1073741824 ; 0xc0000000 - 5d28: 65746e49 ldrbvs r6, [r4, #-3657]! - 5d2c: 70757272 rsbsvc r7, r5, r2, ror r2 - 5d30: 00682e74 rsbeq r2, r8, r4, ror lr - 5d34: d794f207 ldrle pc, [r4, r7, lsl #4] - 5d38: 4e1d04c0 cfmv64ami mvdx0, mvax13 - 5d3c: 682e4d56 stmdavs lr!, {r1, r2, r4, r6, r8, sl, fp, lr} - 5d40: 94f20700 ldrbtls r0, [r2], #1792 - 5d44: e504c0d7 str ip, [r4, #-215] - 5d48: 6d695401 cfstrdvs mvd5, [r9, #-4]! - 5d4c: 682e7265 stmdavs lr!, {r0, r2, r5, r6, r9, ip, sp, lr} - 5d50: 94f20700 ldrbtls r0, [r2], #1792 - 5d54: a404c0d7 strge ip, [r4], #-215 - 5d58: 72615504 rsbvc r5, r1, #16777216 ; 0x1000000 - 5d5c: 776f4c74 undefined - 5d60: 6576654c ldrbvs r6, [r6, #-1356]! - 5d64: 00682e6c rsbeq r2, r8, ip, ror #28 - 5d68: d794f207 ldrle pc, [r4, r7, lsl #4] - 5d6c: 04fd04c0 ldrbteq r0, [sp], #1216 - 5d70: 6974706f ldmdbvs r4!, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ - 5d74: 5f736e6f svcpl 0x00736e6f - 5d78: 666e6f63 strbtvs r6, [lr], -r3, ror #30 - 5d7c: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} - 5d80: 8e8e0800 cdphi 8, 8, cr0, cr14, cr0, {0} - 5d84: 1f04c1d5 svcne 0x0004c1d5 - 5d88: 75636573 strbvc r6, [r3, #-1395]! - 5d8c: 79746972 ldmdbvc r4!, {r1, r4, r5, r6, r8, fp, sp, lr}^ - 5d90: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} - 5d94: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} - 5d98: f8080068 undefined instruction 0xf8080068 - 5d9c: 04ceedfb strbeq lr, [lr], #3579 - 5da0: 616f6224 cmnvs pc, r4, lsr #4 - 5da4: 635f6472 cmpvs pc, #1912602624 ; 0x72000000 - 5da8: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 5dac: 00682e67 rsbeq r2, r8, r7, ror #28 - 5db0: edfbf709 ldcl 7, cr15, [fp, #36]! - 5db4: 443d04ce ldrtmi r0, [sp], #-1230 - 5db8: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ - 5dbc: 0a00682e beq 1fe7c - 5dc0: c5d0bea8 ldrbgt fp, [r0, #3752] - 5dc4: 72461904 subvc r1, r6, #65536 ; 0x10000 - 5dc8: 65447165 strbvs r7, [r4, #-357] - 5dcc: 74655370 strbtvc r5, [r5], #-880 - 5dd0: 676e6974 undefined - 5dd4: 00682e73 rsbeq r2, r8, r3, ror lr - 5dd8: edfbf70a ldcl 7, cr15, [fp, #40]! - 5ddc: 4d3704ce cfldrsmi mvf0, [r7, #-824]! - 5de0: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ - 5de4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 5de8: 74707572 ldrbtvc r7, [r0], #-1394 - 5dec: 0a00682e beq 1feac - 5df0: c5d0bea8 ldrbgt fp, [r0, #3752] - 5df4: 616d5d04 cmnvs sp, r4, lsl #26 - 5df8: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} - 5dfc: adc20b00 vstrge d16, [r2] - 5e00: 8c04c49d cfstrshi mvf12, [r4], {157} - 5e04: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} - 5e08: 73656874 cmnvc r5, #7602176 ; 0x740000 - 5e0c: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 - 5e10: 636e695f cmnvs lr, #1556480 ; 0x17c000 - 5e14: 0c00682e stceq 8, cr6, [r0], {46} - 5e18: cc8199fa stcgt 9, cr9, [r1], {250} - 5e1c: 4701a004 strmi sl, [r1, -r4] - 5e20: 61626f6c cmnvs r2, ip, ror #30 - 5e24: 6665446c strbtvs r4, [r5], -ip, ror #8 - 5e28: 00682e73 rsbeq r2, r8, r3, ror lr - 5e2c: eea2ba0d cdp 10, 10, cr11, cr2, cr13, {0} - 5e30: 019104c5 orrseq r0, r1, r5, asr #9 - 5e34: 72444c48 subvc r4, r4, #18432 ; 0x4800 - 5e38: 00682e76 rsbeq r2, r8, r6, ror lr - 5e3c: eef5880d cdp 8, 15, cr8, cr5, cr13, {0} - 5e40: 019a04c1 orrseq r0, sl, r1, asr #9 - 5e44: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 5e48: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} - 5e4c: 6d656761 stclvs 7, cr6, [r5, #-388]! - 5e50: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} - 5e54: a60d0068 strge r0, [sp], -r8, rrx - 5e58: 04cbe6d8 strbeq lr, [fp], #1752 - 5e5c: 655303d1 ldrbvs r0, [r3, #-977] - 5e60: 69727563 ldmdbvs r2!, {r0, r1, r5, r6, r8, sl, ip, sp, lr}^ - 5e64: 6e4d7974 mcrvs 9, 2, r7, cr13, cr4, {3} - 5e68: 746e6d67 strbtvc r6, [lr], #-3431 - 5e6c: 0d00682e stceq 8, cr6, [r0, #-184] - 5e70: c0d68380 sbcsgt r8, r6, r0, lsl #7 - 5e74: 5401df04 strpl sp, [r1], #-3844 - 5e78: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 5e7c: 76696563 strbtvc r6, [r9], -r3, ror #10 - 5e80: 6f437265 svcvs 0x00437265 - 5e84: 6769666e strbvs r6, [r9, -lr, ror #12]! - 5e88: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 5e8c: 682e746e stmdavs lr!, {r1, r2, r3, r5, r6, sl, ip, sp, lr} - 5e90: a0a20d00 adcge r0, r2, r0, lsl #26 - 5e94: e604c5ee str ip, [r4], -lr, ror #11 - 5e98: 61725401 cmnvs r2, r1, lsl #8 - 5e9c: 6563736e strbvs r7, [r3, #-878]! - 5ea0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 5ea4: 65776f50 ldrbvs r6, [r7, #-3920]! - 5ea8: 676e4d72 undefined - 5eac: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} - 5eb0: 960d0068 strls r0, [sp], -r8, rrx - 5eb4: 04c5faa9 strbeq pc, [r5], #2729 - 5eb8: 695701ca ldmdbvs r7, {r1, r3, r6, r7, r8}^ - 5ebc: 656c6572 strbvs r6, [ip, #-1394]! - 5ec0: 694c7373 stmdbvs ip, {r0, r1, r4, r5, r6, r8, r9, ip, sp, lr}^ - 5ec4: 6e4d6b6e fnmacdvs d22, d13, d30 - 5ec8: 2e746d67 cdpcs 13, 7, cr6, cr4, cr7, {3} - 5ecc: a60d0068 strge r0, [sp], -r8, rrx - 5ed0: 04cbf798 strbeq pc, [fp], #1944 - 5ed4: 00000297 muleq r0, r7, r2 - 5ed8: 000000bf strheq r0, [r0], -pc - 5edc: 009e0002 addseq r0, lr, r2 - 5ee0: 01020000 tsteq r2, r0 - 5ee4: 000a0500 andeq r0, sl, r0, lsl #10 - 5ee8: 01010101 tsteq r1, r1, lsl #2 - 5eec: 00000000 andeq r0, r0, r0 - 5ef0: 445c3a43 ldrbmi r3, [ip], #-2627 - 5ef4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5ef8: 73746e65 cmnvc r4, #1616 ; 0x650 - 5efc: 646e6120 strbtvs r6, [lr], #-288 - 5f00: 74655320 strbtvc r5, [r5], #-800 - 5f04: 676e6974 undefined - 5f08: 616d5c73 smcvs 54723 - 5f0c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5f10: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5f14: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5f18: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5f1c: 775c7374 undefined - 5f20: 6f632d73 svcvs 0x00632d73 - 5f24: 6f72746e svcvs 0x0072746e - 5f28: 65575c6c ldrbvs r5, [r7, #-3180] - 5f2c: 65687461 strbvs r7, [r8, #-1121]! - 5f30: 74532072 ldrbvc r2, [r3], #-114 - 5f34: 6f697461 svcvs 0x00697461 - 5f38: 6f43206e svcvs 0x0043206e - 5f3c: 6f72746e svcvs 0x0072746e - 5f40: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5f44: 7070415c rsbsvc r4, r0, ip, asr r1 - 5f48: 6163696c cmnvs r3, ip, ror #18 - 5f4c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 5f50: 756f535c strbvc r5, [pc, #-860]! ; 5bfc - 5f54: 5c656372 stclpl 3, cr6, [r5], #-456 - 5f58: 65770000 ldrbvs r0, [r7]! - 5f5c: 65687461 strbvs r7, [r8, #-1121]! - 5f60: 74735f72 ldrbtvc r5, [r3], #-3954 - 5f64: 6f697461 svcvs 0x00697461 - 5f68: 6f635f6e svcvs 0x00635f6e - 5f6c: 6f72746e svcvs 0x0072746e - 5f70: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 5f74: 0100632e tsteq r0, lr, lsr #6 - 5f78: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 5f7c: 000abe04 andeq fp, sl, r4, lsl #28 - 5f80: 60020500 andvs r0, r2, r0, lsl #10 - 5f84: 05004009 streq r4, [r0, #-9] - 5f88: 01d10301 bicseq r0, r1, r1, lsl #6 - 5f8c: 1105050e tstne r5, lr, lsl #10 - 5f90: 05151f24 ldreq r1, [r5, #-3876] - 5f94: 03021c01 movweq r1, #11265 ; 0x2c01 - 5f98: 00010100 andeq r0, r1, r0, lsl #2 - 5f9c: 000000b9 strheq r0, [r0], -r9 - 5fa0: 009e0002 addseq r0, lr, r2 - 5fa4: 01020000 tsteq r2, r0 - 5fa8: 000a0500 andeq r0, sl, r0, lsl #10 - 5fac: 01010101 tsteq r1, r1, lsl #2 - 5fb0: 00000000 andeq r0, r0, r0 - 5fb4: 445c3a43 ldrbmi r3, [ip], #-2627 - 5fb8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 5fbc: 73746e65 cmnvc r4, #1616 ; 0x650 - 5fc0: 646e6120 strbtvs r6, [lr], #-288 - 5fc4: 74655320 strbtvc r5, [r5], #-800 - 5fc8: 676e6974 undefined - 5fcc: 616d5c73 smcvs 54723 - 5fd0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 5fd4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 5fd8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 5fdc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 5fe0: 775c7374 undefined - 5fe4: 6f632d73 svcvs 0x00632d73 - 5fe8: 6f72746e svcvs 0x0072746e - 5fec: 65575c6c ldrbvs r5, [r7, #-3180] - 5ff0: 65687461 strbvs r7, [r8, #-1121]! - 5ff4: 74532072 ldrbvc r2, [r3], #-114 - 5ff8: 6f697461 svcvs 0x00697461 - 5ffc: 6f43206e svcvs 0x0043206e - 6000: 6f72746e svcvs 0x0072746e - 6004: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6008: 7070415c rsbsvc r4, r0, ip, asr r1 - 600c: 6163696c cmnvs r3, ip, ror #18 - 6010: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6014: 756f535c strbvc r5, [pc, #-860]! ; 5cc0 - 6018: 5c656372 stclpl 3, cr6, [r5], #-456 - 601c: 65770000 ldrbvs r0, [r7]! - 6020: 65687461 strbvs r7, [r8, #-1121]! - 6024: 74735f72 ldrbtvc r5, [r3], #-3954 - 6028: 6f697461 svcvs 0x00697461 - 602c: 6f635f6e svcvs 0x00635f6e - 6030: 6f72746e svcvs 0x0072746e - 6034: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6038: 0100632e tsteq r0, lr, lsr #6 - 603c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6040: 000abe04 andeq fp, sl, r4, lsl #28 - 6044: 84020500 strhi r0, [r2], #-1280 - 6048: 05004009 streq r4, [r0, #-9] - 604c: 01dc0301 bicseq r0, ip, r1, lsl #6 - 6050: 1509050e strne r0, [r9, #-1294] - 6054: 01000202 tsteq r0, r2, lsl #4 - 6058: 00000001 andeq r0, r0, r1 - 605c: 000000bb strheq r0, [r0], -fp - 6060: 009e0002 addseq r0, lr, r2 - 6064: 01020000 tsteq r2, r0 - 6068: 000a0500 andeq r0, sl, r0, lsl #10 - 606c: 01010101 tsteq r1, r1, lsl #2 - 6070: 00000000 andeq r0, r0, r0 - 6074: 445c3a43 ldrbmi r3, [ip], #-2627 - 6078: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 607c: 73746e65 cmnvc r4, #1616 ; 0x650 - 6080: 646e6120 strbtvs r6, [lr], #-288 - 6084: 74655320 strbtvc r5, [r5], #-800 - 6088: 676e6974 undefined - 608c: 616d5c73 smcvs 54723 - 6090: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6094: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6098: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 609c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 60a0: 775c7374 undefined - 60a4: 6f632d73 svcvs 0x00632d73 - 60a8: 6f72746e svcvs 0x0072746e - 60ac: 65575c6c ldrbvs r5, [r7, #-3180] - 60b0: 65687461 strbvs r7, [r8, #-1121]! - 60b4: 74532072 ldrbvc r2, [r3], #-114 - 60b8: 6f697461 svcvs 0x00697461 - 60bc: 6f43206e svcvs 0x0043206e - 60c0: 6f72746e svcvs 0x0072746e - 60c4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 60c8: 7070415c rsbsvc r4, r0, ip, asr r1 - 60cc: 6163696c cmnvs r3, ip, ror #18 - 60d0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 60d4: 756f535c strbvc r5, [pc, #-860]! ; 5d80 - 60d8: 5c656372 stclpl 3, cr6, [r5], #-456 - 60dc: 65770000 ldrbvs r0, [r7]! - 60e0: 65687461 strbvs r7, [r8, #-1121]! - 60e4: 74735f72 ldrbtvc r5, [r3], #-3954 - 60e8: 6f697461 svcvs 0x00697461 - 60ec: 6f635f6e svcvs 0x00635f6e - 60f0: 6f72746e svcvs 0x0072746e - 60f4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 60f8: 0100632e tsteq r0, lr, lsr #6 - 60fc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6100: 000abe04 andeq fp, sl, r4, lsl #28 - 6104: 8c020500 cfstr32hi mvfx0, [r2], {0} - 6108: 05004009 streq r4, [r0, #-9] - 610c: 01e20301 mvneq r0, r1, lsl #6 - 6110: 1509050e strne r0, [r9, #-1294] - 6114: 0402241a streq r2, [r2], #-1050 - 6118: 00010100 andeq r0, r1, r0, lsl #2 - 611c: 000000c1 andeq r0, r0, r1, asr #1 - 6120: 009e0002 addseq r0, lr, r2 - 6124: 01020000 tsteq r2, r0 - 6128: 000a0500 andeq r0, sl, r0, lsl #10 - 612c: 01010101 tsteq r1, r1, lsl #2 - 6130: 00000000 andeq r0, r0, r0 - 6134: 445c3a43 ldrbmi r3, [ip], #-2627 - 6138: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 613c: 73746e65 cmnvc r4, #1616 ; 0x650 - 6140: 646e6120 strbtvs r6, [lr], #-288 - 6144: 74655320 strbtvc r5, [r5], #-800 - 6148: 676e6974 undefined - 614c: 616d5c73 smcvs 54723 - 6150: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6154: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6158: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 615c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6160: 775c7374 undefined - 6164: 6f632d73 svcvs 0x00632d73 - 6168: 6f72746e svcvs 0x0072746e - 616c: 65575c6c ldrbvs r5, [r7, #-3180] - 6170: 65687461 strbvs r7, [r8, #-1121]! - 6174: 74532072 ldrbvc r2, [r3], #-114 - 6178: 6f697461 svcvs 0x00697461 - 617c: 6f43206e svcvs 0x0043206e - 6180: 6f72746e svcvs 0x0072746e - 6184: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6188: 7070415c rsbsvc r4, r0, ip, asr r1 - 618c: 6163696c cmnvs r3, ip, ror #18 - 6190: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6194: 756f535c strbvc r5, [pc, #-860]! ; 5e40 - 6198: 5c656372 stclpl 3, cr6, [r5], #-456 - 619c: 65770000 ldrbvs r0, [r7]! - 61a0: 65687461 strbvs r7, [r8, #-1121]! - 61a4: 74735f72 ldrbtvc r5, [r3], #-3954 - 61a8: 6f697461 svcvs 0x00697461 - 61ac: 6f635f6e svcvs 0x00635f6e - 61b0: 6f72746e svcvs 0x0072746e - 61b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 61b8: 0100632e tsteq r0, lr, lsr #6 - 61bc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 61c0: 000abe04 andeq fp, sl, r4, lsl #28 - 61c4: a8020500 stmdage r2, {r8, sl} - 61c8: 05004009 streq r4, [r0, #-9] - 61cc: 01e60309 mvneq r0, r9, lsl #6 - 61d0: 0a780318 beq 1e06e38 - 61d4: 05030105 streq r0, [r3, #-261] - 61d8: 0a780322 beq 1e06e68 - 61dc: 01000402 tsteq r0, r2, lsl #8 - 61e0: 00000001 andeq r0, r0, r1 - 61e4: 000000da ldrdeq r0, [r0], -sl - 61e8: 009e0002 addseq r0, lr, r2 - 61ec: 01020000 tsteq r2, r0 - 61f0: 000a0500 andeq r0, sl, r0, lsl #10 - 61f4: 01010101 tsteq r1, r1, lsl #2 - 61f8: 00000000 andeq r0, r0, r0 - 61fc: 445c3a43 ldrbmi r3, [ip], #-2627 - 6200: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6204: 73746e65 cmnvc r4, #1616 ; 0x650 - 6208: 646e6120 strbtvs r6, [lr], #-288 - 620c: 74655320 strbtvc r5, [r5], #-800 - 6210: 676e6974 undefined - 6214: 616d5c73 smcvs 54723 - 6218: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 621c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6220: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6224: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6228: 775c7374 undefined - 622c: 6f632d73 svcvs 0x00632d73 - 6230: 6f72746e svcvs 0x0072746e - 6234: 65575c6c ldrbvs r5, [r7, #-3180] - 6238: 65687461 strbvs r7, [r8, #-1121]! - 623c: 74532072 ldrbvc r2, [r3], #-114 - 6240: 6f697461 svcvs 0x00697461 - 6244: 6f43206e svcvs 0x0043206e - 6248: 6f72746e svcvs 0x0072746e - 624c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6250: 7070415c rsbsvc r4, r0, ip, asr r1 - 6254: 6163696c cmnvs r3, ip, ror #18 - 6258: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 625c: 756f535c strbvc r5, [pc, #-860]! ; 5f08 - 6260: 5c656372 stclpl 3, cr6, [r5], #-456 - 6264: 65770000 ldrbvs r0, [r7]! - 6268: 65687461 strbvs r7, [r8, #-1121]! - 626c: 74735f72 ldrbtvc r5, [r3], #-3954 - 6270: 6f697461 svcvs 0x00697461 - 6274: 6f635f6e svcvs 0x00635f6e - 6278: 6f72746e svcvs 0x0072746e - 627c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6280: 0100632e tsteq r0, lr, lsr #6 - 6284: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6288: 000abe04 andeq fp, sl, r4, lsl #28 - 628c: bc020500 cfstr32lt mvfx0, [r2], {0} - 6290: 05004009 streq r4, [r0, #-9] - 6294: 01ea032e mvneq r0, lr, lsr #6 - 6298: 1c1b050e cfldr32ne mvfx0, [fp], {14} - 629c: 051a1105 ldreq r1, [sl, #-261] - 62a0: 21052919 tstcs r5, r9, lsl r9 - 62a4: 2519051a ldrcs r0, [r9, #-1306] - 62a8: 2105241a tstcs r5, sl, lsl r4 - 62ac: 0326051f teqeq r6, #130023424 ; 0x7c00000 - 62b0: 1d051979 stcne 9, cr1, [r5, #-484] - 62b4: 03110519 tsteq r1, #104857600 ; 0x6400000 - 62b8: 03052205 movweq r2, #20997 ; 0x5205 - 62bc: 0009021a andeq r0, r9, sl, lsl r2 - 62c0: 00000101 andeq r0, r0, r1, lsl #2 - 62c4: 000000c7 andeq r0, r0, r7, asr #1 - 62c8: 009e0002 addseq r0, lr, r2 - 62cc: 01020000 tsteq r2, r0 - 62d0: 000a0500 andeq r0, sl, r0, lsl #10 - 62d4: 01010101 tsteq r1, r1, lsl #2 - 62d8: 00000000 andeq r0, r0, r0 - 62dc: 445c3a43 ldrbmi r3, [ip], #-2627 - 62e0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 62e4: 73746e65 cmnvc r4, #1616 ; 0x650 - 62e8: 646e6120 strbtvs r6, [lr], #-288 - 62ec: 74655320 strbtvc r5, [r5], #-800 - 62f0: 676e6974 undefined - 62f4: 616d5c73 smcvs 54723 - 62f8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 62fc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6300: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6304: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6308: 775c7374 undefined - 630c: 6f632d73 svcvs 0x00632d73 - 6310: 6f72746e svcvs 0x0072746e - 6314: 65575c6c ldrbvs r5, [r7, #-3180] - 6318: 65687461 strbvs r7, [r8, #-1121]! - 631c: 74532072 ldrbvc r2, [r3], #-114 - 6320: 6f697461 svcvs 0x00697461 - 6324: 6f43206e svcvs 0x0043206e - 6328: 6f72746e svcvs 0x0072746e - 632c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6330: 7070415c rsbsvc r4, r0, ip, asr r1 - 6334: 6163696c cmnvs r3, ip, ror #18 - 6338: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 633c: 756f535c strbvc r5, [pc, #-860]! ; 5fe8 - 6340: 5c656372 stclpl 3, cr6, [r5], #-456 - 6344: 65770000 ldrbvs r0, [r7]! - 6348: 65687461 strbvs r7, [r8, #-1121]! - 634c: 74735f72 ldrbtvc r5, [r3], #-3954 - 6350: 6f697461 svcvs 0x00697461 - 6354: 6f635f6e svcvs 0x00635f6e - 6358: 6f72746e svcvs 0x0072746e - 635c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6360: 0100632e tsteq r0, lr, lsr #6 - 6364: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6368: 000abe04 andeq fp, sl, r4, lsl #28 - 636c: 28020500 stmdacs r2, {r8, sl} - 6370: 0500400a streq r4, [r0, #-10] - 6374: 02870301 addeq r0, r7, #67108864 ; 0x4000000 - 6378: 0303050e movweq r0, #13582 ; 0x350e - 637c: 14191802 ldrne r1, [r9], #-2050 - 6380: 0b14140b bleq 50b3b4 - 6384: 050c0f19 streq r0, [ip, #-3865] - 6388: 07021804 streq r1, [r2, -r4, lsl #16] - 638c: 00010100 andeq r0, r1, r0, lsl #2 - 6390: 00000115 andeq r0, r0, r5, lsl r1 - 6394: 009e0002 addseq r0, lr, r2 - 6398: 01020000 tsteq r2, r0 - 639c: 000a0500 andeq r0, sl, r0, lsl #10 - 63a0: 01010101 tsteq r1, r1, lsl #2 - 63a4: 00000000 andeq r0, r0, r0 - 63a8: 445c3a43 ldrbmi r3, [ip], #-2627 - 63ac: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 63b0: 73746e65 cmnvc r4, #1616 ; 0x650 - 63b4: 646e6120 strbtvs r6, [lr], #-288 - 63b8: 74655320 strbtvc r5, [r5], #-800 - 63bc: 676e6974 undefined - 63c0: 616d5c73 smcvs 54723 - 63c4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 63c8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 63cc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 63d0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 63d4: 775c7374 undefined - 63d8: 6f632d73 svcvs 0x00632d73 - 63dc: 6f72746e svcvs 0x0072746e - 63e0: 65575c6c ldrbvs r5, [r7, #-3180] - 63e4: 65687461 strbvs r7, [r8, #-1121]! - 63e8: 74532072 ldrbvc r2, [r3], #-114 - 63ec: 6f697461 svcvs 0x00697461 - 63f0: 6f43206e svcvs 0x0043206e - 63f4: 6f72746e svcvs 0x0072746e - 63f8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 63fc: 7070415c rsbsvc r4, r0, ip, asr r1 - 6400: 6163696c cmnvs r3, ip, ror #18 - 6404: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6408: 756f535c strbvc r5, [pc, #-860]! ; 60b4 - 640c: 5c656372 stclpl 3, cr6, [r5], #-456 - 6410: 65770000 ldrbvs r0, [r7]! - 6414: 65687461 strbvs r7, [r8, #-1121]! - 6418: 74735f72 ldrbtvc r5, [r3], #-3954 - 641c: 6f697461 svcvs 0x00697461 - 6420: 6f635f6e svcvs 0x00635f6e - 6424: 6f72746e svcvs 0x0072746e - 6428: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 642c: 0100632e tsteq r0, lr, lsr #6 - 6430: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6434: 000abe04 andeq fp, sl, r4, lsl #28 - 6438: 58020500 stmdapl r2, {r8, sl} - 643c: 0500400a streq r4, [r0, #-10] - 6440: 02a70301 adceq r0, r7, #67108864 ; 0x4000000 - 6444: 1203050e andne r0, r3, #58720256 ; 0x3800000 - 6448: 140a0f19 strne r0, [sl], #-3865 - 644c: 150f140f strne r1, [pc, #-1039] ; 6045 - 6450: 1b1f1f16 blne 7ce0b0 - 6454: 1f1b1f1f svcne 0x001b1f1f - 6458: 1f1f1b1f svcne 0x001f1b1f - 645c: 1615201f undefined - 6460: 05292022 streq r2, [r9, #-34]! - 6464: 03051504 movweq r1, #21764 ; 0x5504 - 6468: 15291529 strne r1, [r9, #-1321]! - 646c: 2405051f strcs r0, [r5], #-1311 - 6470: 261f0305 ldrcs r0, [pc], -r5, lsl #6 - 6474: 02051515 andeq r1, r5, #88080384 ; 0x5400000 - 6478: 1f030516 svcne 0x00030516 - 647c: 04051f20 streq r1, [r5], #-3872 - 6480: 1f03051f svcne 0x0003051f - 6484: 1f1f1f1f svcne 0x001f1f1f - 6488: 051f0505 ldreq r0, [pc, #-1285] ; 5f8b - 648c: 1a211f03 bne 84e0a0 - 6490: 1617171b undefined - 6494: 27030317 smladcs r3, r7, r3, r0 - 6498: 1a171a1a bne 5ccd08 - 649c: 1f1f1f15 svcne 0x001f1f15 - 64a0: 1b010515 blne 478fc - 64a4: 01001f02 tsteq r0, r2, lsl #30 - 64a8: 00000001 andeq r0, r0, r1 - 64ac: 000000c2 andeq r0, r0, r2, asr #1 - 64b0: 009e0002 addseq r0, lr, r2 - 64b4: 01020000 tsteq r2, r0 - 64b8: 000a0500 andeq r0, sl, r0, lsl #10 - 64bc: 01010101 tsteq r1, r1, lsl #2 - 64c0: 00000000 andeq r0, r0, r0 - 64c4: 445c3a43 ldrbmi r3, [ip], #-2627 - 64c8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 64cc: 73746e65 cmnvc r4, #1616 ; 0x650 - 64d0: 646e6120 strbtvs r6, [lr], #-288 - 64d4: 74655320 strbtvc r5, [r5], #-800 - 64d8: 676e6974 undefined - 64dc: 616d5c73 smcvs 54723 - 64e0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 64e4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 64e8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 64ec: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 64f0: 775c7374 undefined - 64f4: 6f632d73 svcvs 0x00632d73 - 64f8: 6f72746e svcvs 0x0072746e - 64fc: 65575c6c ldrbvs r5, [r7, #-3180] - 6500: 65687461 strbvs r7, [r8, #-1121]! - 6504: 74532072 ldrbvc r2, [r3], #-114 - 6508: 6f697461 svcvs 0x00697461 - 650c: 6f43206e svcvs 0x0043206e - 6510: 6f72746e svcvs 0x0072746e - 6514: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6518: 7070415c rsbsvc r4, r0, ip, asr r1 - 651c: 6163696c cmnvs r3, ip, ror #18 - 6520: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6524: 756f535c strbvc r5, [pc, #-860]! ; 61d0 - 6528: 5c656372 stclpl 3, cr6, [r5], #-456 - 652c: 65770000 ldrbvs r0, [r7]! - 6530: 65687461 strbvs r7, [r8, #-1121]! - 6534: 74735f72 ldrbtvc r5, [r3], #-3954 - 6538: 6f697461 svcvs 0x00697461 - 653c: 6f635f6e svcvs 0x00635f6e - 6540: 6f72746e svcvs 0x0072746e - 6544: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6548: 0100632e tsteq r0, lr, lsr #6 - 654c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6550: 000abe04 andeq fp, sl, r4, lsl #28 - 6554: 50020500 andpl r0, r2, r0, lsl #10 - 6558: 0500400c streq r4, [r0, #-12] - 655c: 03920301 orrseq r0, r2, #67108864 ; 0x4000000 - 6560: 0b03050e bleq c79a0 - 6564: 1f2f0505 svcne 0x002f0505 - 6568: 02030105 andeq r0, r3, #1073741825 ; 0x40000001 - 656c: 0006021d andeq r0, r6, sp, lsl r2 - 6570: 00000101 andeq r0, r0, r1, lsl #2 - 6574: 0000013f andeq r0, r0, pc, lsr r1 - 6578: 009e0002 addseq r0, lr, r2 - 657c: 01020000 tsteq r2, r0 - 6580: 000a0500 andeq r0, sl, r0, lsl #10 - 6584: 01010101 tsteq r1, r1, lsl #2 - 6588: 00000000 andeq r0, r0, r0 - 658c: 445c3a43 ldrbmi r3, [ip], #-2627 - 6590: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6594: 73746e65 cmnvc r4, #1616 ; 0x650 - 6598: 646e6120 strbtvs r6, [lr], #-288 - 659c: 74655320 strbtvc r5, [r5], #-800 - 65a0: 676e6974 undefined - 65a4: 616d5c73 smcvs 54723 - 65a8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 65ac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 65b0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 65b4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 65b8: 775c7374 undefined - 65bc: 6f632d73 svcvs 0x00632d73 - 65c0: 6f72746e svcvs 0x0072746e - 65c4: 65575c6c ldrbvs r5, [r7, #-3180] - 65c8: 65687461 strbvs r7, [r8, #-1121]! - 65cc: 74532072 ldrbvc r2, [r3], #-114 - 65d0: 6f697461 svcvs 0x00697461 - 65d4: 6f43206e svcvs 0x0043206e - 65d8: 6f72746e svcvs 0x0072746e - 65dc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 65e0: 7070415c rsbsvc r4, r0, ip, asr r1 - 65e4: 6163696c cmnvs r3, ip, ror #18 - 65e8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 65ec: 756f535c strbvc r5, [pc, #-860]! ; 6298 - 65f0: 5c656372 stclpl 3, cr6, [r5], #-456 - 65f4: 65770000 ldrbvs r0, [r7]! - 65f8: 65687461 strbvs r7, [r8, #-1121]! - 65fc: 74735f72 ldrbtvc r5, [r3], #-3954 - 6600: 6f697461 svcvs 0x00697461 - 6604: 6f635f6e svcvs 0x00635f6e - 6608: 6f72746e svcvs 0x0072746e - 660c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6610: 0100632e tsteq r0, lr, lsr #6 - 6614: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6618: 000abe04 andeq fp, sl, r4, lsl #28 - 661c: 78020500 stmdavc r2, {r8, sl} - 6620: 0500400c streq r4, [r0, #-12] - 6624: 03a40301 undefined instruction 0x03a40301 - 6628: 1703050e strne r0, [r3, -lr, lsl #10] - 662c: 20050515 andcs r0, r5, r5, lsl r5 - 6630: 180a0315 stmdane sl, {r0, r2, r4, r8, r9} - 6634: 05200705 streq r0, [r0, #-1797]! - 6638: 1a152009 bne 54e664 - 663c: 05200b05 streq r0, [r0, #-2821]! - 6640: 22010305 andcs r0, r1, #335544320 ; 0x14000000 - 6644: 1a200705 bne 808260 - 6648: 16270403 strtne r0, [r7], -r3, lsl #8 - 664c: 1d050515 cfstr32ne mvfx0, [r5, #-84] - 6650: 1f1b0705 svcne 0x001b0705 - 6654: 181b0905 ldmdane fp, {r0, r2, r8, fp} - 6658: 1b160705 blne 588274 - 665c: 1d050515 cfstr32ne mvfx0, [r5, #-84] - 6660: 1a200705 bne 80827c - 6664: 181b0905 ldmdane fp, {r0, r2, r8, fp} - 6668: 15170705 ldrne r0, [r7, #-1797] - 666c: 051d0505 ldreq r0, [sp, #-1285] - 6670: 051f1b07 ldreq r1, [pc, #-2823] ; 5b71 - 6674: 05171b09 ldreq r1, [r7, #-2825] - 6678: 05051707 streq r1, [r5, #-1799] - 667c: 051d0103 ldreq r0, [sp, #-259] - 6680: 01034009 tsteq r3, r9 - 6684: 1a242e18 bne 911eec - 6688: 02031b1a andeq r1, r3, #26624 ; 0x6800 - 668c: 430b0531 movwmi r0, #46385 ; 0xb531 - 6690: 09051f15 stmdbeq r5, {r0, r2, r4, r8, r9, sl, fp, ip} - 6694: 05180303 ldreq r0, [r8, #-771] - 6698: 0905430b stmdbeq r5, {r0, r1, r3, r8, r9, lr} - 669c: 1b0b0516 blne 2c7afc - 66a0: 03090515 movweq r0, #38165 ; 0x9515 - 66a4: 0b051803 bleq 14c6b8 - 66a8: 0905153e stmdbeq r5, {r1, r2, r3, r4, r5, r8, sl, ip} - 66ac: 0301051b movweq r0, #5403 ; 0x151b - 66b0: 0902130b stmdbeq r2, {r0, r1, r3, r8, r9, ip} - 66b4: 00010100 andeq r0, r1, r0, lsl #2 - 66b8: 000000ba strheq r0, [r0], -sl - 66bc: 009e0002 addseq r0, lr, r2 - 66c0: 01020000 tsteq r2, r0 - 66c4: 000a0500 andeq r0, sl, r0, lsl #10 - 66c8: 01010101 tsteq r1, r1, lsl #2 - 66cc: 00000000 andeq r0, r0, r0 - 66d0: 445c3a43 ldrbmi r3, [ip], #-2627 - 66d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 66d8: 73746e65 cmnvc r4, #1616 ; 0x650 - 66dc: 646e6120 strbtvs r6, [lr], #-288 - 66e0: 74655320 strbtvc r5, [r5], #-800 - 66e4: 676e6974 undefined - 66e8: 616d5c73 smcvs 54723 - 66ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 66f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 66f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 66f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 66fc: 775c7374 undefined - 6700: 6f632d73 svcvs 0x00632d73 - 6704: 6f72746e svcvs 0x0072746e - 6708: 65575c6c ldrbvs r5, [r7, #-3180] - 670c: 65687461 strbvs r7, [r8, #-1121]! - 6710: 74532072 ldrbvc r2, [r3], #-114 - 6714: 6f697461 svcvs 0x00697461 - 6718: 6f43206e svcvs 0x0043206e - 671c: 6f72746e svcvs 0x0072746e - 6720: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6724: 7070415c rsbsvc r4, r0, ip, asr r1 - 6728: 6163696c cmnvs r3, ip, ror #18 - 672c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6730: 756f535c strbvc r5, [pc, #-860]! ; 63dc - 6734: 5c656372 stclpl 3, cr6, [r5], #-456 - 6738: 65770000 ldrbvs r0, [r7]! - 673c: 65687461 strbvs r7, [r8, #-1121]! - 6740: 74735f72 ldrbtvc r5, [r3], #-3954 - 6744: 6f697461 svcvs 0x00697461 - 6748: 6f635f6e svcvs 0x00635f6e - 674c: 6f72746e svcvs 0x0072746e - 6750: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6754: 0100632e tsteq r0, lr, lsr #6 - 6758: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 675c: 000abe04 andeq fp, sl, r4, lsl #28 - 6760: 24020500 strcs r0, [r2], #-1280 - 6764: 0500400e streq r4, [r0, #-14] - 6768: 04d60301 ldrbeq r0, [r6], #769 - 676c: 1003050e andne r0, r3, lr, lsl #10 - 6770: 0006021a andeq r0, r6, sl, lsl r2 - 6774: 00000101 andeq r0, r0, r1, lsl #2 - 6778: 000000ba strheq r0, [r0], -sl - 677c: 009e0002 addseq r0, lr, r2 - 6780: 01020000 tsteq r2, r0 - 6784: 000a0500 andeq r0, sl, r0, lsl #10 - 6788: 01010101 tsteq r1, r1, lsl #2 - 678c: 00000000 andeq r0, r0, r0 - 6790: 445c3a43 ldrbmi r3, [ip], #-2627 - 6794: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6798: 73746e65 cmnvc r4, #1616 ; 0x650 - 679c: 646e6120 strbtvs r6, [lr], #-288 - 67a0: 74655320 strbtvc r5, [r5], #-800 - 67a4: 676e6974 undefined - 67a8: 616d5c73 smcvs 54723 - 67ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 67b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 67b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 67b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 67bc: 775c7374 undefined - 67c0: 6f632d73 svcvs 0x00632d73 - 67c4: 6f72746e svcvs 0x0072746e - 67c8: 65575c6c ldrbvs r5, [r7, #-3180] - 67cc: 65687461 strbvs r7, [r8, #-1121]! - 67d0: 74532072 ldrbvc r2, [r3], #-114 - 67d4: 6f697461 svcvs 0x00697461 - 67d8: 6f43206e svcvs 0x0043206e - 67dc: 6f72746e svcvs 0x0072746e - 67e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 67e4: 7070415c rsbsvc r4, r0, ip, asr r1 - 67e8: 6163696c cmnvs r3, ip, ror #18 - 67ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 67f0: 756f535c strbvc r5, [pc, #-860]! ; 649c - 67f4: 5c656372 stclpl 3, cr6, [r5], #-456 - 67f8: 65770000 ldrbvs r0, [r7]! - 67fc: 65687461 strbvs r7, [r8, #-1121]! - 6800: 74735f72 ldrbtvc r5, [r3], #-3954 - 6804: 6f697461 svcvs 0x00697461 - 6808: 6f635f6e svcvs 0x00635f6e - 680c: 6f72746e svcvs 0x0072746e - 6810: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6814: 0100632e tsteq r0, lr, lsr #6 - 6818: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 681c: 000abe04 andeq fp, sl, r4, lsl #28 - 6820: 38020500 stmdacc r2, {r8, sl} - 6824: 0500400e streq r4, [r0, #-14] - 6828: 04e20301 strbteq r0, [r2], #769 - 682c: 1003050e andne r0, r3, lr, lsl #10 - 6830: 0004021a andeq r0, r4, sl, lsl r2 - 6834: 00000101 andeq r0, r0, r1, lsl #2 - 6838: 000000bf strheq r0, [r0], -pc - 683c: 009e0002 addseq r0, lr, r2 - 6840: 01020000 tsteq r2, r0 - 6844: 000a0500 andeq r0, sl, r0, lsl #10 - 6848: 01010101 tsteq r1, r1, lsl #2 - 684c: 00000000 andeq r0, r0, r0 - 6850: 445c3a43 ldrbmi r3, [ip], #-2627 - 6854: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6858: 73746e65 cmnvc r4, #1616 ; 0x650 - 685c: 646e6120 strbtvs r6, [lr], #-288 - 6860: 74655320 strbtvc r5, [r5], #-800 - 6864: 676e6974 undefined - 6868: 616d5c73 smcvs 54723 - 686c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6870: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6874: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6878: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 687c: 775c7374 undefined - 6880: 6f632d73 svcvs 0x00632d73 - 6884: 6f72746e svcvs 0x0072746e - 6888: 65575c6c ldrbvs r5, [r7, #-3180] - 688c: 65687461 strbvs r7, [r8, #-1121]! - 6890: 74532072 ldrbvc r2, [r3], #-114 - 6894: 6f697461 svcvs 0x00697461 - 6898: 6f43206e svcvs 0x0043206e - 689c: 6f72746e svcvs 0x0072746e - 68a0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 68a4: 7070415c rsbsvc r4, r0, ip, asr r1 - 68a8: 6163696c cmnvs r3, ip, ror #18 - 68ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 68b0: 756f535c strbvc r5, [pc, #-860]! ; 655c - 68b4: 5c656372 stclpl 3, cr6, [r5], #-456 - 68b8: 65770000 ldrbvs r0, [r7]! - 68bc: 65687461 strbvs r7, [r8, #-1121]! - 68c0: 74735f72 ldrbtvc r5, [r3], #-3954 - 68c4: 6f697461 svcvs 0x00697461 - 68c8: 6f635f6e svcvs 0x00635f6e - 68cc: 6f72746e svcvs 0x0072746e - 68d0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 68d4: 0100632e tsteq r0, lr, lsr #6 - 68d8: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 68dc: 000abe04 andeq fp, sl, r4, lsl #28 - 68e0: 48020500 stmdami r2, {r8, sl} - 68e4: 0500400e streq r4, [r0, #-14] - 68e8: 04fd0301 ldrbteq r0, [sp], #769 - 68ec: 0a740318 beq 1d07554 - 68f0: 030a7403 movweq r7, #41987 ; 0xa403 - 68f4: 06020a74 undefined - 68f8: 00010100 andeq r0, r1, r0, lsl #2 - 68fc: 000000ba strheq r0, [r0], -sl - 6900: 009e0002 addseq r0, lr, r2 - 6904: 01020000 tsteq r2, r0 - 6908: 000a0500 andeq r0, sl, r0, lsl #10 - 690c: 01010101 tsteq r1, r1, lsl #2 - 6910: 00000000 andeq r0, r0, r0 - 6914: 445c3a43 ldrbmi r3, [ip], #-2627 - 6918: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 691c: 73746e65 cmnvc r4, #1616 ; 0x650 - 6920: 646e6120 strbtvs r6, [lr], #-288 - 6924: 74655320 strbtvc r5, [r5], #-800 - 6928: 676e6974 undefined - 692c: 616d5c73 smcvs 54723 - 6930: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6934: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6938: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 693c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6940: 775c7374 undefined - 6944: 6f632d73 svcvs 0x00632d73 - 6948: 6f72746e svcvs 0x0072746e - 694c: 65575c6c ldrbvs r5, [r7, #-3180] - 6950: 65687461 strbvs r7, [r8, #-1121]! - 6954: 74532072 ldrbvc r2, [r3], #-114 - 6958: 6f697461 svcvs 0x00697461 - 695c: 6f43206e svcvs 0x0043206e - 6960: 6f72746e svcvs 0x0072746e - 6964: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6968: 7070415c rsbsvc r4, r0, ip, asr r1 - 696c: 6163696c cmnvs r3, ip, ror #18 - 6970: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6974: 756f535c strbvc r5, [pc, #-860]! ; 6620 - 6978: 5c656372 stclpl 3, cr6, [r5], #-456 - 697c: 65770000 ldrbvs r0, [r7]! - 6980: 65687461 strbvs r7, [r8, #-1121]! - 6984: 74735f72 ldrbtvc r5, [r3], #-3954 - 6988: 6f697461 svcvs 0x00697461 - 698c: 6f635f6e svcvs 0x00635f6e - 6990: 6f72746e svcvs 0x0072746e - 6994: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6998: 0100632e tsteq r0, lr, lsr #6 - 699c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 69a0: 000abe04 andeq fp, sl, r4, lsl #28 - 69a4: 58020500 stmdapl r2, {r8, sl} - 69a8: 0500400e streq r4, [r0, #-14] - 69ac: 04ee0301 strbteq r0, [lr], #769 - 69b0: 1003050e andne r0, r3, lr, lsl #10 - 69b4: 0006021a andeq r0, r6, sl, lsl r2 - 69b8: 00000101 andeq r0, r0, r1, lsl #2 - 69bc: 000000ba strheq r0, [r0], -sl - 69c0: 009e0002 addseq r0, lr, r2 - 69c4: 01020000 tsteq r2, r0 - 69c8: 000a0500 andeq r0, sl, r0, lsl #10 - 69cc: 01010101 tsteq r1, r1, lsl #2 - 69d0: 00000000 andeq r0, r0, r0 - 69d4: 445c3a43 ldrbmi r3, [ip], #-2627 - 69d8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 69dc: 73746e65 cmnvc r4, #1616 ; 0x650 - 69e0: 646e6120 strbtvs r6, [lr], #-288 - 69e4: 74655320 strbtvc r5, [r5], #-800 - 69e8: 676e6974 undefined - 69ec: 616d5c73 smcvs 54723 - 69f0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 69f4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 69f8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 69fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6a00: 775c7374 undefined - 6a04: 6f632d73 svcvs 0x00632d73 - 6a08: 6f72746e svcvs 0x0072746e - 6a0c: 65575c6c ldrbvs r5, [r7, #-3180] - 6a10: 65687461 strbvs r7, [r8, #-1121]! - 6a14: 74532072 ldrbvc r2, [r3], #-114 - 6a18: 6f697461 svcvs 0x00697461 - 6a1c: 6f43206e svcvs 0x0043206e - 6a20: 6f72746e svcvs 0x0072746e - 6a24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6a28: 7070415c rsbsvc r4, r0, ip, asr r1 - 6a2c: 6163696c cmnvs r3, ip, ror #18 - 6a30: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6a34: 756f535c strbvc r5, [pc, #-860]! ; 66e0 - 6a38: 5c656372 stclpl 3, cr6, [r5], #-456 - 6a3c: 65770000 ldrbvs r0, [r7]! - 6a40: 65687461 strbvs r7, [r8, #-1121]! - 6a44: 74735f72 ldrbtvc r5, [r3], #-3954 - 6a48: 6f697461 svcvs 0x00697461 - 6a4c: 6f635f6e svcvs 0x00635f6e - 6a50: 6f72746e svcvs 0x0072746e - 6a54: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6a58: 0100632e tsteq r0, lr, lsr #6 - 6a5c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6a60: 000abe04 andeq fp, sl, r4, lsl #28 - 6a64: 6c020500 cfstr32vs mvfx0, [r2], {0} - 6a68: 0500400e streq r4, [r0, #-14] - 6a6c: 04fa0301 ldrbteq r0, [sl], #769 - 6a70: 1003050e andne r0, r3, lr, lsl #10 - 6a74: 0006021a andeq r0, r6, sl, lsl r2 - 6a78: 00000101 andeq r0, r0, r1, lsl #2 - 6a7c: 000000f1 strdeq r0, [r0], -r1 - 6a80: 009e0002 addseq r0, lr, r2 - 6a84: 01020000 tsteq r2, r0 - 6a88: 000a0500 andeq r0, sl, r0, lsl #10 - 6a8c: 01010101 tsteq r1, r1, lsl #2 - 6a90: 00000000 andeq r0, r0, r0 - 6a94: 445c3a43 ldrbmi r3, [ip], #-2627 - 6a98: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6a9c: 73746e65 cmnvc r4, #1616 ; 0x650 - 6aa0: 646e6120 strbtvs r6, [lr], #-288 - 6aa4: 74655320 strbtvc r5, [r5], #-800 - 6aa8: 676e6974 undefined - 6aac: 616d5c73 smcvs 54723 - 6ab0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6ab4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6ab8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6abc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6ac0: 775c7374 undefined - 6ac4: 6f632d73 svcvs 0x00632d73 - 6ac8: 6f72746e svcvs 0x0072746e - 6acc: 65575c6c ldrbvs r5, [r7, #-3180] - 6ad0: 65687461 strbvs r7, [r8, #-1121]! - 6ad4: 74532072 ldrbvc r2, [r3], #-114 - 6ad8: 6f697461 svcvs 0x00697461 - 6adc: 6f43206e svcvs 0x0043206e - 6ae0: 6f72746e svcvs 0x0072746e - 6ae4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6ae8: 7070415c rsbsvc r4, r0, ip, asr r1 - 6aec: 6163696c cmnvs r3, ip, ror #18 - 6af0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6af4: 756f535c strbvc r5, [pc, #-860]! ; 67a0 - 6af8: 5c656372 stclpl 3, cr6, [r5], #-456 - 6afc: 65770000 ldrbvs r0, [r7]! - 6b00: 65687461 strbvs r7, [r8, #-1121]! - 6b04: 74735f72 ldrbtvc r5, [r3], #-3954 - 6b08: 6f697461 svcvs 0x00697461 - 6b0c: 6f635f6e svcvs 0x00635f6e - 6b10: 6f72746e svcvs 0x0072746e - 6b14: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6b18: 0100632e tsteq r0, lr, lsr #6 - 6b1c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6b20: 000abe04 andeq fp, sl, r4, lsl #28 - 6b24: 80020500 andhi r0, r2, r0, lsl #10 - 6b28: 0500400e streq r4, [r0, #-14] - 6b2c: 05870301 streq r0, [r7, #769] - 6b30: 1303050e movwne r0, #13582 ; 0x350e - 6b34: 24490705 strbcs r0, [r9], #-1797 - 6b38: 0b180103 bleq 606f4c - 6b3c: 4c0b334c stcmi 3, cr3, [fp], {76} - 6b40: 0b180203 bleq 607354 - 6b44: 4c0b2e4c stcmi 14, cr2, [fp], {76} - 6b48: 05130203 ldreq r0, [r3, #-515] - 6b4c: 05151b09 ldreq r1, [r5, #-2825] - 6b50: 0905180a stmdbeq r5, {r1, r3, fp, ip} - 6b54: 0b510b1c bleq 14497cc - 6b58: 08050b38 stmdaeq r5, {r3, r4, r5, r8, r9, fp} - 6b5c: 1b0a0551 blne 2880a8 - 6b60: 06030705 streq r0, [r3], -r5, lsl #14 - 6b64: 05470b22 strbeq r0, [r7, #-2850] - 6b68: 13020303 movwne r0, #8963 ; 0x2303 - 6b6c: 01001102 tsteq r0, r2, lsl #2 - 6b70: 00000001 andeq r0, r0, r1 - 6b74: 000000e4 andeq r0, r0, r4, ror #1 - 6b78: 009e0002 addseq r0, lr, r2 - 6b7c: 01020000 tsteq r2, r0 - 6b80: 000a0500 andeq r0, sl, r0, lsl #10 - 6b84: 01010101 tsteq r1, r1, lsl #2 - 6b88: 00000000 andeq r0, r0, r0 - 6b8c: 445c3a43 ldrbmi r3, [ip], #-2627 - 6b90: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6b94: 73746e65 cmnvc r4, #1616 ; 0x650 - 6b98: 646e6120 strbtvs r6, [lr], #-288 - 6b9c: 74655320 strbtvc r5, [r5], #-800 - 6ba0: 676e6974 undefined - 6ba4: 616d5c73 smcvs 54723 - 6ba8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6bac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6bb0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6bb4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6bb8: 775c7374 undefined - 6bbc: 6f632d73 svcvs 0x00632d73 - 6bc0: 6f72746e svcvs 0x0072746e - 6bc4: 65575c6c ldrbvs r5, [r7, #-3180] - 6bc8: 65687461 strbvs r7, [r8, #-1121]! - 6bcc: 74532072 ldrbvc r2, [r3], #-114 - 6bd0: 6f697461 svcvs 0x00697461 - 6bd4: 6f43206e svcvs 0x0043206e - 6bd8: 6f72746e svcvs 0x0072746e - 6bdc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6be0: 7070415c rsbsvc r4, r0, ip, asr r1 - 6be4: 6163696c cmnvs r3, ip, ror #18 - 6be8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6bec: 756f535c strbvc r5, [pc, #-860]! ; 6898 - 6bf0: 5c656372 stclpl 3, cr6, [r5], #-456 - 6bf4: 65770000 ldrbvs r0, [r7]! - 6bf8: 65687461 strbvs r7, [r8, #-1121]! - 6bfc: 74735f72 ldrbtvc r5, [r3], #-3954 - 6c00: 6f697461 svcvs 0x00697461 - 6c04: 6f635f6e svcvs 0x00635f6e - 6c08: 6f72746e svcvs 0x0072746e - 6c0c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6c10: 0100632e tsteq r0, lr, lsr #6 - 6c14: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6c18: 000abe04 andeq fp, sl, r4, lsl #28 - 6c1c: dc020500 cfstr32le mvfx0, [r2], {0} - 6c20: 0500400f streq r4, [r0, #-15] - 6c24: 05d90301 ldrbeq r0, [r9, #769] - 6c28: 0305050e movweq r0, #21774 ; 0x550e - 6c2c: 07051808 streq r1, [r5, -r8, lsl #16] - 6c30: 1a261524 bne 98c0c8 - 6c34: 1b1a1a10 blne 68d47c - 6c38: 0b1c0905 bleq 709054 - 6c3c: 10153e0b andsne r3, r5, fp, lsl #28 - 6c40: 78030705 stmdavc r3, {r0, r2, r8, r9, sl} - 6c44: 22070314 andcs r0, r7, #1342177280 ; 0x50000000 - 6c48: 0805161a stmdaeq r5, {r1, r3, r4, r9, sl, ip} - 6c4c: 250b0520 strcs r0, [fp, #-1312] - 6c50: 27070515 smladcs r7, r5, r5, r0 - 6c54: 02220105 eoreq r0, r2, #1073741825 ; 0x40000001 - 6c58: 0101000e tsteq r1, lr - 6c5c: 00000110 andeq r0, r0, r0, lsl r1 - 6c60: 009e0002 addseq r0, lr, r2 - 6c64: 01020000 tsteq r2, r0 - 6c68: 000a0500 andeq r0, sl, r0, lsl #10 - 6c6c: 01010101 tsteq r1, r1, lsl #2 - 6c70: 00000000 andeq r0, r0, r0 - 6c74: 445c3a43 ldrbmi r3, [ip], #-2627 - 6c78: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6c7c: 73746e65 cmnvc r4, #1616 ; 0x650 - 6c80: 646e6120 strbtvs r6, [lr], #-288 - 6c84: 74655320 strbtvc r5, [r5], #-800 - 6c88: 676e6974 undefined - 6c8c: 616d5c73 smcvs 54723 - 6c90: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6c94: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6c98: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6c9c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6ca0: 775c7374 undefined - 6ca4: 6f632d73 svcvs 0x00632d73 - 6ca8: 6f72746e svcvs 0x0072746e - 6cac: 65575c6c ldrbvs r5, [r7, #-3180] - 6cb0: 65687461 strbvs r7, [r8, #-1121]! - 6cb4: 74532072 ldrbvc r2, [r3], #-114 - 6cb8: 6f697461 svcvs 0x00697461 - 6cbc: 6f43206e svcvs 0x0043206e - 6cc0: 6f72746e svcvs 0x0072746e - 6cc4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6cc8: 7070415c rsbsvc r4, r0, ip, asr r1 - 6ccc: 6163696c cmnvs r3, ip, ror #18 - 6cd0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6cd4: 756f535c strbvc r5, [pc, #-860]! ; 6980 - 6cd8: 5c656372 stclpl 3, cr6, [r5], #-456 - 6cdc: 65770000 ldrbvs r0, [r7]! - 6ce0: 65687461 strbvs r7, [r8, #-1121]! - 6ce4: 74735f72 ldrbtvc r5, [r3], #-3954 - 6ce8: 6f697461 svcvs 0x00697461 - 6cec: 6f635f6e svcvs 0x00635f6e - 6cf0: 6f72746e svcvs 0x0072746e - 6cf4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6cf8: 0100632e tsteq r0, lr, lsr #6 - 6cfc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6d00: 000abe04 andeq fp, sl, r4, lsl #28 - 6d04: 8c020500 cfstr32hi mvfx0, [r2], {0} - 6d08: 05004010 streq r4, [r0, #-16] - 6d0c: 06950301 ldreq r0, [r5], r1, lsl #6 - 6d10: 200b050e andcs r0, fp, lr, lsl #10 - 6d14: 05200f05 streq r0, [r0, #-3845]! - 6d18: 512e1105 teqpl lr, r5, lsl #2 - 6d1c: 33153833 tstcc r5, #3342336 ; 0x330000 - 6d20: 1556332e ldrbne r3, [r6, #-814] - 6d24: 38333838 ldmdacc r3!, {r3, r4, r5, fp, ip, sp} - 6d28: 33333338 teqcc r3, #-536870912 ; 0xe0000000 - 6d2c: 3333382e teqcc r3, #3014656 ; 0x2e0000 - 6d30: 053a0405 ldreq r0, [sl, #-1029]! - 6d34: 36050308 strcc r0, [r5], -r8, lsl #6 - 6d38: 147a0310 ldrbtne r0, [sl], #-784 - 6d3c: 03050510 movweq r0, #21776 ; 0x5510 - 6d40: 05101806 ldreq r1, [r0, #-2054] - 6d44: 0f55031b svceq 0x0055031b - 6d48: 050f1405 streq r1, [pc, #-1029] ; 694b - 6d4c: 272b0302 strcs r0, [fp, -r2, lsl #6]! - 6d50: 151a0305 ldrne r0, [sl, #-773] - 6d54: 16050511 undefined - 6d58: 0321052e teqeq r1, #192937984 ; 0xb800000 - 6d5c: 14050f7d strne r0, [r5], #-3965 - 6d60: 03020514 movweq r0, #9492 ; 0x2514 - 6d64: 03051302 movweq r1, #21250 ; 0x5302 - 6d68: 01050b1a tsteq r5, sl, lsl fp - 6d6c: 0101000b tsteq r1, fp - 6d70: 00000022 andeq r0, r0, r2, lsr #32 - 6d74: 00100002 andseq r0, r0, r2 - 6d78: 01020000 tsteq r2, r0 - 6d7c: 000a0500 andeq r0, sl, r0, lsl #10 - 6d80: 01010101 tsteq r1, r1, lsl #2 - 6d84: 00000000 andeq r0, r0, r0 - 6d88: 05000000 streq r0, [r0] - 6d8c: 40127002 andsmi r7, r2, r2 - 6d90: 00080200 andeq r0, r8, r0, lsl #4 - 6d94: 00000101 andeq r0, r0, r1, lsl #2 - 6d98: 000000f2 strdeq r0, [r0], -r2 - 6d9c: 009e0002 addseq r0, lr, r2 - 6da0: 01020000 tsteq r2, r0 - 6da4: 000a0500 andeq r0, sl, r0, lsl #10 - 6da8: 01010101 tsteq r1, r1, lsl #2 - 6dac: 00000000 andeq r0, r0, r0 - 6db0: 445c3a43 ldrbmi r3, [ip], #-2627 - 6db4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6db8: 73746e65 cmnvc r4, #1616 ; 0x650 - 6dbc: 646e6120 strbtvs r6, [lr], #-288 - 6dc0: 74655320 strbtvc r5, [r5], #-800 - 6dc4: 676e6974 undefined - 6dc8: 616d5c73 smcvs 54723 - 6dcc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6dd0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6dd4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6dd8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6ddc: 775c7374 undefined - 6de0: 6f632d73 svcvs 0x00632d73 - 6de4: 6f72746e svcvs 0x0072746e - 6de8: 65575c6c ldrbvs r5, [r7, #-3180] - 6dec: 65687461 strbvs r7, [r8, #-1121]! - 6df0: 74532072 ldrbvc r2, [r3], #-114 - 6df4: 6f697461 svcvs 0x00697461 - 6df8: 6f43206e svcvs 0x0043206e - 6dfc: 6f72746e svcvs 0x0072746e - 6e00: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6e04: 7070415c rsbsvc r4, r0, ip, asr r1 - 6e08: 6163696c cmnvs r3, ip, ror #18 - 6e0c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6e10: 756f535c strbvc r5, [pc, #-860]! ; 6abc - 6e14: 5c656372 stclpl 3, cr6, [r5], #-456 - 6e18: 65770000 ldrbvs r0, [r7]! - 6e1c: 65687461 strbvs r7, [r8, #-1121]! - 6e20: 74735f72 ldrbtvc r5, [r3], #-3954 - 6e24: 6f697461 svcvs 0x00697461 - 6e28: 6f635f6e svcvs 0x00635f6e - 6e2c: 6f72746e svcvs 0x0072746e - 6e30: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6e34: 0100632e tsteq r0, lr, lsr #6 - 6e38: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6e3c: 000abe04 andeq fp, sl, r4, lsl #28 - 6e40: 80020500 andhi r0, r2, r0, lsl #10 - 6e44: 05004012 streq r4, [r0, #-18] - 6e48: 06de0342 ldrbeq r0, [lr], r2, asr #6 - 6e4c: 1b0f050e blne 3c828c - 6e50: 2e110505 cfmul32cs mvfx0, mvfx1, mvfx5 - 6e54: 15383351 ldrne r3, [r8, #-849]! - 6e58: 56332e33 undefined - 6e5c: 33383815 teqcc r8, #1376256 ; 0x150000 - 6e60: 33333838 teqcc r3, #3670016 ; 0x380000 - 6e64: 33382e33 teqcc r8, #816 ; 0x330 - 6e68: 3a040533 bcc 10833c - 6e6c: 05030805 streq r0, [r3, #-2053] - 6e70: 7a031036 bvc caf50 - 6e74: 05051014 streq r1, [r5, #-20] - 6e78: 10180603 andsne r0, r8, r3, lsl #12 - 6e7c: 55031b05 strpl r1, [r3, #-2821] - 6e80: 0f14050f svceq 0x0014050f - 6e84: 2b030105 blcs c72a0 - 6e88: 00030227 andeq r0, r3, r7, lsr #4 - 6e8c: 00000101 andeq r0, r0, r1, lsl #2 - 6e90: 0000016a andeq r0, r0, sl, ror #2 - 6e94: 009e0002 addseq r0, lr, r2 - 6e98: 01020000 tsteq r2, r0 - 6e9c: 000a0500 andeq r0, sl, r0, lsl #10 - 6ea0: 01010101 tsteq r1, r1, lsl #2 - 6ea4: 00000000 andeq r0, r0, r0 - 6ea8: 445c3a43 ldrbmi r3, [ip], #-2627 - 6eac: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6eb0: 73746e65 cmnvc r4, #1616 ; 0x650 - 6eb4: 646e6120 strbtvs r6, [lr], #-288 - 6eb8: 74655320 strbtvc r5, [r5], #-800 - 6ebc: 676e6974 undefined - 6ec0: 616d5c73 smcvs 54723 - 6ec4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6ec8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6ecc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6ed0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6ed4: 775c7374 undefined - 6ed8: 6f632d73 svcvs 0x00632d73 - 6edc: 6f72746e svcvs 0x0072746e - 6ee0: 65575c6c ldrbvs r5, [r7, #-3180] - 6ee4: 65687461 strbvs r7, [r8, #-1121]! - 6ee8: 74532072 ldrbvc r2, [r3], #-114 - 6eec: 6f697461 svcvs 0x00697461 - 6ef0: 6f43206e svcvs 0x0043206e - 6ef4: 6f72746e svcvs 0x0072746e - 6ef8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6efc: 7070415c rsbsvc r4, r0, ip, asr r1 - 6f00: 6163696c cmnvs r3, ip, ror #18 - 6f04: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6f08: 756f535c strbvc r5, [pc, #-860]! ; 6bb4 - 6f0c: 5c656372 stclpl 3, cr6, [r5], #-456 - 6f10: 65770000 ldrbvs r0, [r7]! - 6f14: 65687461 strbvs r7, [r8, #-1121]! - 6f18: 74735f72 ldrbtvc r5, [r3], #-3954 - 6f1c: 6f697461 svcvs 0x00697461 - 6f20: 6f635f6e svcvs 0x00635f6e - 6f24: 6f72746e svcvs 0x0072746e - 6f28: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 6f2c: 0100632e tsteq r0, lr, lsr #6 - 6f30: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 6f34: 000abe04 andeq fp, sl, r4, lsl #28 - 6f38: 34020500 strcc r0, [r2], #-1280 - 6f3c: 05004014 streq r4, [r0, #-20] - 6f40: 07990301 ldreq r0, [r9, r1, lsl #6] - 6f44: 160b050e strne r0, [fp], -lr, lsl #10 - 6f48: 050c0305 streq r0, [ip, #-773] - 6f4c: 0505250f streq r2, [r5, #-1295] - 6f50: 1f052911 svcne 0x00052911 - 6f54: 05287d03 streq r7, [r8, #-3331]! - 6f58: 03050f16 movweq r0, #24342 ; 0x5f16 - 6f5c: 3d220203 sfmcc f0, 4, [r2, #-12]! - 6f60: 4e08050c cfsh32mi mvfx0, mvfx8, #12 - 6f64: 07050b24 streq r0, [r5, -r4, lsr #22] - 6f68: 24220103 strtcs r0, [r2], #-259 - 6f6c: 1b09050b blne 2483a0 - 6f70: 27200b05 strcs r0, [r0, -r5, lsl #22]! - 6f74: 01030905 tsteq r3, r5, lsl #18 - 6f78: 200b0522 andcs r0, fp, r2, lsr #10 - 6f7c: 26070527 strcs r0, [r7], -r7, lsr #10 - 6f80: 09050b0b stmdbeq r5, {r0, r1, r3, r8, r9, fp} - 6f84: 2424241b strtcs r2, [r4], #-1051 - 6f88: 24242422 strtcs r2, [r4], #-1058 - 6f8c: 03030705 movweq r0, #14085 ; 0x3705 - 6f90: 050b2431 streq r2, [fp, #-1073] - 6f94: 0b051b09 bleq 14dbc0 - 6f98: 09052720 stmdbeq r5, {r5, r8, r9, sl, sp} - 6f9c: 05220103 streq r0, [r2, #-259]! - 6fa0: 0526200b streq r2, [r6, #-11]! - 6fa4: 0b0b2707 bleq 2d0bc8 - 6fa8: 241b0905 ldrcs r0, [fp], #-2309 - 6fac: 24242224 strtcs r2, [r4], #-548 - 6fb0: 03070524 movweq r0, #29988 ; 0x7524 - 6fb4: 0b242203 bleq 90f7c8 - 6fb8: 051b0905 ldreq r0, [fp, #-2309] - 6fbc: 0527200c streq r2, [r7, #-12]! - 6fc0: 22010309 andcs r0, r1, #603979776 ; 0x24000000 - 6fc4: 27200b05 strcs r0, [r0, -r5, lsl #22]! - 6fc8: 0b260705 bleq 988be4 - 6fcc: 051b0905 ldreq r0, [fp, #-2309] - 6fd0: 09052513 stmdbeq r5, {r0, r1, r4, r8, sl, sp} - 6fd4: 052a0b11 streq r0, [sl, #-2833]! - 6fd8: 0517200b ldreq r2, [r7, #-11] - 6fdc: 34052a09 strcc r2, [r5], #-2569 - 6fe0: 05287403 streq r7, [r8, #-1027]! - 6fe4: 07050f21 streq r0, [r5, -r1, lsr #30] - 6fe8: 05220a03 streq r0, [r2, #-2563]! - 6fec: 05221b09 streq r1, [r2, #-2825]! - 6ff0: 22030307 andcs r0, r3, #469762048 ; 0x1c000000 - 6ff4: 0b2e0b24 bleq b89c8c - 6ff8: 000d020b andeq r0, sp, fp, lsl #4 - 6ffc: 00000101 andeq r0, r0, r1, lsl #2 - 7000: 00000116 andeq r0, r0, r6, lsl r1 - 7004: 009e0002 addseq r0, lr, r2 - 7008: 01020000 tsteq r2, r0 - 700c: 000a0500 andeq r0, sl, r0, lsl #10 - 7010: 01010101 tsteq r1, r1, lsl #2 - 7014: 00000000 andeq r0, r0, r0 - 7018: 445c3a43 ldrbmi r3, [ip], #-2627 - 701c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7020: 73746e65 cmnvc r4, #1616 ; 0x650 - 7024: 646e6120 strbtvs r6, [lr], #-288 - 7028: 74655320 strbtvc r5, [r5], #-800 - 702c: 676e6974 undefined - 7030: 616d5c73 smcvs 54723 - 7034: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 7038: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 703c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7040: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7044: 775c7374 undefined - 7048: 6f632d73 svcvs 0x00632d73 - 704c: 6f72746e svcvs 0x0072746e - 7050: 65575c6c ldrbvs r5, [r7, #-3180] - 7054: 65687461 strbvs r7, [r8, #-1121]! - 7058: 74532072 ldrbvc r2, [r3], #-114 - 705c: 6f697461 svcvs 0x00697461 - 7060: 6f43206e svcvs 0x0043206e - 7064: 6f72746e svcvs 0x0072746e - 7068: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 706c: 7070415c rsbsvc r4, r0, ip, asr r1 - 7070: 6163696c cmnvs r3, ip, ror #18 - 7074: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7078: 756f535c strbvc r5, [pc, #-860]! ; 6d24 - 707c: 5c656372 stclpl 3, cr6, [r5], #-456 - 7080: 65770000 ldrbvs r0, [r7]! - 7084: 65687461 strbvs r7, [r8, #-1121]! - 7088: 74735f72 ldrbtvc r5, [r3], #-3954 - 708c: 6f697461 svcvs 0x00697461 - 7090: 6f635f6e svcvs 0x00635f6e - 7094: 6f72746e svcvs 0x0072746e - 7098: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 709c: 0100632e tsteq r0, lr, lsr #6 - 70a0: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 70a4: 000abe04 andeq fp, sl, r4, lsl #28 - 70a8: ac020500 cfstr32ge mvfx0, [r2], {0} - 70ac: 05004016 streq r4, [r0, #-22] - 70b0: 08db0301 ldmeq fp, {r0, r8, r9}^ - 70b4: 1803050e stmdane r3, {r1, r2, r3, r8, sl} - 70b8: 34050515 strcc r0, [r5], #-1301 - 70bc: 051b0605 ldreq r0, [fp, #-1541] - 70c0: 03051d07 movweq r1, #23815 ; 0x5d07 - 70c4: 25050526 strcs r0, [r5, #-1318] - 70c8: 05250305 streq r0, [r5, #-773]! - 70cc: 06052505 streq r2, [r5], -r5, lsl #10 - 70d0: 2207051b andcs r0, r7, #113246208 ; 0x6c00000 - 70d4: 05260305 streq r0, [r6, #-773]! - 70d8: 03052505 movweq r2, #21765 ; 0x5505 - 70dc: 25050525 strcs r0, [r5, #-1317] - 70e0: 05250305 streq r0, [r5, #-773]! - 70e4: 03052505 movweq r2, #21765 ; 0x5505 - 70e8: 2f050525 svccs 0x00050525 - 70ec: 05250305 streq r0, [r5, #-773]! - 70f0: 03052f05 movweq r2, #24325 ; 0x5f05 - 70f4: 1a0f0526 bne 3c8594 - 70f8: 07030705 streq r0, [r3, -r5, lsl #14] - 70fc: 25050522 strcs r0, [r5, #-1314] - 7100: 73033005 movwvc r3, #12293 ; 0x3005 - 7104: 191d0523 ldmdbne sp, {r0, r1, r5, r8, sl} - 7108: 0b160505 bleq 588524 - 710c: 16070525 strne r0, [r7], -r5, lsr #10 - 7110: 04030105 streq r0, [r3], #-261 - 7114: 00130218 andseq r0, r3, r8, lsl r2 - 7118: 00000101 andeq r0, r0, r1, lsl #2 - 711c: 000000c0 andeq r0, r0, r0, asr #1 - 7120: 009e0002 addseq r0, lr, r2 - 7124: 01020000 tsteq r2, r0 - 7128: 000a0500 andeq r0, sl, r0, lsl #10 - 712c: 01010101 tsteq r1, r1, lsl #2 - 7130: 00000000 andeq r0, r0, r0 - 7134: 445c3a43 ldrbmi r3, [ip], #-2627 - 7138: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 713c: 73746e65 cmnvc r4, #1616 ; 0x650 - 7140: 646e6120 strbtvs r6, [lr], #-288 - 7144: 74655320 strbtvc r5, [r5], #-800 - 7148: 676e6974 undefined - 714c: 616d5c73 smcvs 54723 - 7150: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 7154: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 7158: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 715c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7160: 775c7374 undefined - 7164: 6f632d73 svcvs 0x00632d73 - 7168: 6f72746e svcvs 0x0072746e - 716c: 65575c6c ldrbvs r5, [r7, #-3180] - 7170: 65687461 strbvs r7, [r8, #-1121]! - 7174: 74532072 ldrbvc r2, [r3], #-114 - 7178: 6f697461 svcvs 0x00697461 - 717c: 6f43206e svcvs 0x0043206e - 7180: 6f72746e svcvs 0x0072746e - 7184: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7188: 7070415c rsbsvc r4, r0, ip, asr r1 - 718c: 6163696c cmnvs r3, ip, ror #18 - 7190: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7194: 756f535c strbvc r5, [pc, #-860]! ; 6e40 - 7198: 5c656372 stclpl 3, cr6, [r5], #-456 - 719c: 65770000 ldrbvs r0, [r7]! - 71a0: 65687461 strbvs r7, [r8, #-1121]! - 71a4: 74735f72 ldrbtvc r5, [r3], #-3954 - 71a8: 6f697461 svcvs 0x00697461 - 71ac: 6f635f6e svcvs 0x00635f6e - 71b0: 6f72746e svcvs 0x0072746e - 71b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 71b8: 0100632e tsteq r0, lr, lsr #6 - 71bc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 71c0: 000abe04 andeq fp, sl, r4, lsl #28 - 71c4: e0020500 and r0, r2, r0, lsl #10 - 71c8: 05004017 streq r4, [r0, #-23] - 71cc: 09a70301 stmibeq r7!, {r0, r8, r9} - 71d0: 1603050e strne r0, [r3], -lr, lsl #10 - 71d4: 1a15151a bne 54c644 - 71d8: 02200105 eoreq r0, r0, #1073741825 ; 0x40000001 - 71dc: 01010006 tsteq r1, r6 - 71e0: 000000c0 andeq r0, r0, r0, asr #1 - 71e4: 009e0002 addseq r0, lr, r2 - 71e8: 01020000 tsteq r2, r0 - 71ec: 000a0500 andeq r0, sl, r0, lsl #10 - 71f0: 01010101 tsteq r1, r1, lsl #2 - 71f4: 00000000 andeq r0, r0, r0 - 71f8: 445c3a43 ldrbmi r3, [ip], #-2627 - 71fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7200: 73746e65 cmnvc r4, #1616 ; 0x650 - 7204: 646e6120 strbtvs r6, [lr], #-288 - 7208: 74655320 strbtvc r5, [r5], #-800 - 720c: 676e6974 undefined - 7210: 616d5c73 smcvs 54723 - 7214: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 7218: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 721c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 7220: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 7224: 775c7374 undefined - 7228: 6f632d73 svcvs 0x00632d73 - 722c: 6f72746e svcvs 0x0072746e - 7230: 65575c6c ldrbvs r5, [r7, #-3180] - 7234: 65687461 strbvs r7, [r8, #-1121]! - 7238: 74532072 ldrbvc r2, [r3], #-114 - 723c: 6f697461 svcvs 0x00697461 - 7240: 6f43206e svcvs 0x0043206e - 7244: 6f72746e svcvs 0x0072746e - 7248: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 724c: 7070415c rsbsvc r4, r0, ip, asr r1 - 7250: 6163696c cmnvs r3, ip, ror #18 - 7254: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7258: 756f535c strbvc r5, [pc, #-860]! ; 6f04 - 725c: 5c656372 stclpl 3, cr6, [r5], #-456 - 7260: 65770000 ldrbvs r0, [r7]! - 7264: 65687461 strbvs r7, [r8, #-1121]! - 7268: 74735f72 ldrbtvc r5, [r3], #-3954 - 726c: 6f697461 svcvs 0x00697461 - 7270: 6f635f6e svcvs 0x00635f6e - 7274: 6f72746e svcvs 0x0072746e - 7278: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 727c: 0100632e tsteq r0, lr, lsr #6 - 7280: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 7284: 000abe04 andeq fp, sl, r4, lsl #28 - 7288: 0c020500 cfstr32eq mvfx0, [r2], {0} - 728c: 05004018 streq r4, [r0, #-24] - 7290: 09b80301 ldmibeq r8!, {r0, r8, r9} - 7294: 1203050e andne r0, r3, #58720256 ; 0x3800000 - 7298: 35050533 strcc r0, [r5, #-1331] - 729c: 02430105 subeq r0, r3, #1073741825 ; 0x40000001 - 72a0: 01010008 tsteq r1, r8 - 72a4: 000000bc strheq r0, [r0], -ip - 72a8: 009e0002 addseq r0, lr, r2 - 72ac: 01020000 tsteq r2, r0 - 72b0: 000a0500 andeq r0, sl, r0, lsl #10 - 72b4: 01010101 tsteq r1, r1, lsl #2 - 72b8: 00000000 andeq r0, r0, r0 - 72bc: 445c3a43 ldrbmi r3, [ip], #-2627 - 72c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 72c4: 73746e65 cmnvc r4, #1616 ; 0x650 - 72c8: 646e6120 strbtvs r6, [lr], #-288 - 72cc: 74655320 strbtvc r5, [r5], #-800 - 72d0: 676e6974 undefined - 72d4: 616d5c73 smcvs 54723 - 72d8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 72dc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 72e0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 72e4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 72e8: 775c7374 undefined - 72ec: 6f632d73 svcvs 0x00632d73 - 72f0: 6f72746e svcvs 0x0072746e - 72f4: 65575c6c ldrbvs r5, [r7, #-3180] - 72f8: 65687461 strbvs r7, [r8, #-1121]! - 72fc: 74532072 ldrbvc r2, [r3], #-114 - 7300: 6f697461 svcvs 0x00697461 - 7304: 6f43206e svcvs 0x0043206e - 7308: 6f72746e svcvs 0x0072746e - 730c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7310: 7070415c rsbsvc r4, r0, ip, asr r1 - 7314: 6163696c cmnvs r3, ip, ror #18 - 7318: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 731c: 756f535c strbvc r5, [pc, #-860]! ; 6fc8 - 7320: 5c656372 stclpl 3, cr6, [r5], #-456 - 7324: 65770000 ldrbvs r0, [r7]! - 7328: 65687461 strbvs r7, [r8, #-1121]! - 732c: 74735f72 ldrbtvc r5, [r3], #-3954 - 7330: 6f697461 svcvs 0x00697461 - 7334: 6f635f6e svcvs 0x00635f6e - 7338: 6f72746e svcvs 0x0072746e - 733c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7340: 0100632e tsteq r0, lr, lsr #6 - 7344: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 7348: 000abe04 andeq fp, sl, r4, lsl #28 - 734c: 54020500 strpl r0, [r2], #-1280 - 7350: 05004018 streq r4, [r0, #-24] - 7354: 09ca0301 stmibeq sl, {r0, r8, r9}^ - 7358: 1003050e andne r0, r3, lr, lsl #10 - 735c: 02420105 subeq r0, r2, #1073741825 ; 0x40000001 - 7360: 01010004 tsteq r1, r4 - 7364: 00000102 andeq r0, r0, r2, lsl #2 - 7368: 009e0002 addseq r0, lr, r2 - 736c: 01020000 tsteq r2, r0 - 7370: 000a0500 andeq r0, sl, r0, lsl #10 - 7374: 01010101 tsteq r1, r1, lsl #2 - 7378: 00000000 andeq r0, r0, r0 - 737c: 445c3a43 ldrbmi r3, [ip], #-2627 - 7380: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7384: 73746e65 cmnvc r4, #1616 ; 0x650 - 7388: 646e6120 strbtvs r6, [lr], #-288 - 738c: 74655320 strbtvc r5, [r5], #-800 - 7390: 676e6974 undefined - 7394: 616d5c73 smcvs 54723 - 7398: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 739c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 73a0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 73a4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 73a8: 775c7374 undefined - 73ac: 6f632d73 svcvs 0x00632d73 - 73b0: 6f72746e svcvs 0x0072746e - 73b4: 65575c6c ldrbvs r5, [r7, #-3180] - 73b8: 65687461 strbvs r7, [r8, #-1121]! - 73bc: 74532072 ldrbvc r2, [r3], #-114 - 73c0: 6f697461 svcvs 0x00697461 - 73c4: 6f43206e svcvs 0x0043206e - 73c8: 6f72746e svcvs 0x0072746e - 73cc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 73d0: 7070415c rsbsvc r4, r0, ip, asr r1 - 73d4: 6163696c cmnvs r3, ip, ror #18 - 73d8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 73dc: 756f535c strbvc r5, [pc, #-860]! ; 7088 - 73e0: 5c656372 stclpl 3, cr6, [r5], #-456 - 73e4: 65770000 ldrbvs r0, [r7]! - 73e8: 65687461 strbvs r7, [r8, #-1121]! - 73ec: 74735f72 ldrbtvc r5, [r3], #-3954 - 73f0: 6f697461 svcvs 0x00697461 - 73f4: 6f635f6e svcvs 0x00635f6e - 73f8: 6f72746e svcvs 0x0072746e - 73fc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7400: 0100632e tsteq r0, lr, lsr #6 - 7404: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 7408: 000abe04 andeq fp, sl, r4, lsl #28 - 740c: 74020500 strvc r0, [r2], #-1280 - 7410: 05004018 streq r4, [r0, #-24] - 7414: 09cf0301 stmibeq pc, {r0, r8, r9}^ - 7418: 1203050e andne r0, r3, #58720256 ; 0x3800000 - 741c: 1a160505 bne 588838 - 7420: 03030515 movweq r0, #13589 ; 0x3515 - 7424: 05051801 streq r1, [r5, #-2049] - 7428: 15151a16 ldrne r1, [r5, #-2582] - 742c: 1d160705 ldcne 7, cr0, [r6, #-20] - 7430: 15161a15 ldrne r1, [r6, #-2581] - 7434: 051c0505 ldreq r0, [ip, #-1285] - 7438: 05051203 streq r1, [r5, #-515] - 743c: 15151a16 ldrne r1, [r5, #-2582] - 7440: 0e160705 cdpeq 7, 1, cr0, cr6, cr5, {0} - 7444: 03051a15 movweq r1, #23061 ; 0x5a15 - 7448: 051d0203 ldreq r0, [sp, #-515] - 744c: 151a1605 ldrne r1, [sl, #-1541] - 7450: 01030305 tsteq r3, r5, lsl #6 - 7454: 16050518 undefined - 7458: 151a151a ldrne r1, [sl, #-1306] - 745c: 052c0305 streq r0, [ip, #-773]! - 7460: 01051605 tsteq r5, r5, lsl #12 - 7464: 000a021b andeq r0, sl, fp, lsl r2 - 7468: 00000101 andeq r0, r0, r1, lsl #2 - 746c: 000000c2 andeq r0, r0, r2, asr #1 - 7470: 009e0002 addseq r0, lr, r2 - 7474: 01020000 tsteq r2, r0 - 7478: 000a0500 andeq r0, sl, r0, lsl #10 - 747c: 01010101 tsteq r1, r1, lsl #2 - 7480: 00000000 andeq r0, r0, r0 - 7484: 445c3a43 ldrbmi r3, [ip], #-2627 - 7488: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 748c: 73746e65 cmnvc r4, #1616 ; 0x650 - 7490: 646e6120 strbtvs r6, [lr], #-288 - 7494: 74655320 strbtvc r5, [r5], #-800 - 7498: 676e6974 undefined - 749c: 616d5c73 smcvs 54723 - 74a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 74a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 74a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 74ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 74b0: 775c7374 undefined - 74b4: 6f632d73 svcvs 0x00632d73 - 74b8: 6f72746e svcvs 0x0072746e - 74bc: 65575c6c ldrbvs r5, [r7, #-3180] - 74c0: 65687461 strbvs r7, [r8, #-1121]! - 74c4: 74532072 ldrbvc r2, [r3], #-114 - 74c8: 6f697461 svcvs 0x00697461 - 74cc: 6f43206e svcvs 0x0043206e - 74d0: 6f72746e svcvs 0x0072746e - 74d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 74d8: 7070415c rsbsvc r4, r0, ip, asr r1 - 74dc: 6163696c cmnvs r3, ip, ror #18 - 74e0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 74e4: 756f535c strbvc r5, [pc, #-860]! ; 7190 - 74e8: 5c656372 stclpl 3, cr6, [r5], #-456 - 74ec: 65770000 ldrbvs r0, [r7]! - 74f0: 65687461 strbvs r7, [r8, #-1121]! - 74f4: 74735f72 ldrbtvc r5, [r3], #-3954 - 74f8: 6f697461 svcvs 0x00697461 - 74fc: 6f635f6e svcvs 0x00635f6e - 7500: 6f72746e svcvs 0x0072746e - 7504: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 7508: 0100632e tsteq r0, lr, lsr #6 - 750c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} - 7510: 000abe04 andeq fp, sl, r4, lsl #28 - 7514: 38020500 stmdacc r2, {r8, sl} - 7518: 05004019 streq r4, [r0, #-25] - 751c: 0aa40301 beq fe908128 - 7520: 1603050e strne r0, [r3], -lr, lsl #10 - 7524: 05170505 ldreq r0, [r7, #-1285] - 7528: 197e0303 ldmdbne lr!, {r0, r1, r8, r9}^ - 752c: 00060236 andeq r0, r6, r6, lsr r2 - 7530: 00000101 andeq r0, r0, r1, lsl #2 - -Disassembly of section .debug_loc: - -00000000 <.debug_loc>: - 0: 00000000 andeq r0, r0, r0 - 4: 00000002 andeq r0, r0, r2 - 8: 007d0002 rsbseq r0, sp, r2 - c: 00000002 andeq r0, r0, r2 - 10: 0000001c andeq r0, r0, ip, lsl r0 - 14: 087d0002 ldmdaeq sp!, {r1}^ - 18: 0000001c andeq r0, r0, ip, lsl r0 - 1c: 00000024 andeq r0, r0, r4, lsr #32 - 20: 007d0002 rsbseq r0, sp, r2 - ... - 2c: 0000000a andeq r0, r0, sl - 30: 0000001a andeq r0, r0, sl, lsl r0 - 34: 1a500001 bne 1400040 - 38: 24000000 strcs r0, [r0] - ... - 48: 00000c00 andeq r0, r0, r0, lsl #24 - 4c: 00001600 andeq r1, r0, r0, lsl #12 - 50: 91000200 tstls r0, r0, lsl #4 - 54: 00001678 andeq r1, r0, r8, ror r6 - 58: 00002400 andeq r2, r0, r0, lsl #8 - ... - 68: 02000000 andeq r0, r0, #0 ; 0x0 - 6c: 02000000 andeq r0, r0, #0 ; 0x0 - 70: 02007d00 andeq r7, r0, #0 ; 0x0 - 74: 1c000000 stcne 0, cr0, [r0], {0} - 78: 02000000 andeq r0, r0, #0 ; 0x0 - 7c: 1c087d00 stcne 13, cr7, [r8], {0} - 80: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} - 84: 02000000 andeq r0, r0, #0 ; 0x0 - 88: 00007d00 andeq r7, r0, r0, lsl #26 - 8c: 00000000 andeq r0, r0, r0 - 90: 0a000000 beq 98 - 94: 1a000000 bne 9c - 98: 01000000 tsteq r0, r0 - 9c: 001a5000 andseq r5, sl, r0 - a0: 001e0000 andseq r0, lr, r0 - ... - b0: 0000000c andeq r0, r0, ip - b4: 00000016 andeq r0, r0, r6, lsl r0 - b8: 78910002 ldmvc r1, {r1} - bc: 00000016 andeq r0, r0, r6, lsl r0 - c0: 0000001e andeq r0, r0, lr, lsl r0 - ... - d0: 00020000 andeq r0, r2, r0 - d4: 00020000 andeq r0, r2, r0 - d8: 0002007d andeq r0, r2, sp, ror r0 - dc: 01ea0000 mvneq r0, r0 - e0: 00020000 andeq r0, r2, r0 - e4: 01ea107d mvneq r1, sp, ror r0 - e8: 01ec0000 mvneq r0, r0 - ec: 00020000 andeq r0, r2, r0 - f0: 01ec0c7d mvneq r0, sp, ror ip - f4: 01f00000 mvnseq r0, r0 - f8: 00020000 andeq r0, r2, r0 - fc: 01f0047d mvnseq r0, sp, ror r4 - 100: 01f20000 mvnseq r0, r0 - 104: 00020000 andeq r0, r2, r0 - 108: 0000007d andeq r0, r0, sp, ror r0 - ... - 114: 00020000 andeq r0, r2, r0 - 118: 00020000 andeq r0, r2, r0 - 11c: 0002007d andeq r0, r2, sp, ror r0 - 120: 00520000 subseq r0, r2, r0 - 124: 00020000 andeq r0, r2, r0 - 128: 0052107d subseq r1, r2, sp, ror r0 - 12c: 00560000 subseq r0, r6, r0 - 130: 00020000 andeq r0, r2, r0 - 134: 0056047d subseq r0, r6, sp, ror r4 - 138: 00580000 subseq r0, r8, r0 - 13c: 00020000 andeq r0, r2, r0 - 140: 0000007d andeq r0, r0, sp, ror r0 - 144: 00000000 andeq r0, r0, r0 - 148: 001e0000 andseq r0, lr, r0 - 14c: 00500000 subseq r0, r0, r0 - 150: 00010000 andeq r0, r1, r0 - 154: 00005056 andeq r5, r0, r6, asr r0 - 158: 00005800 andeq r5, r0, r0, lsl #16 - ... - 164: 16000000 strne r0, [r0], -r0 - 168: 1c000000 stcne 0, cr0, [r0], {0} - 16c: 01000000 tsteq r0, r0 - 170: 001c5100 andseq r5, ip, r0, lsl #2 - 174: 00580000 subseq r0, r8, r0 - ... - 188: 00000002 andeq r0, r0, r2 - 18c: 007d0002 rsbseq r0, sp, r2 - 190: 00000002 andeq r0, r0, r2 - 194: 00000066 andeq r0, r0, r6, rrx - 198: 187d0002 ldmdane sp!, {r1}^ - 19c: 00000066 andeq r0, r0, r6, rrx - 1a0: 00000068 andeq r0, r0, r8, rrx - 1a4: 147d0002 ldrbtne r0, [sp], #-2 - ... - 1b0: 00000004 andeq r0, r0, r4 - 1b4: 00000012 andeq r0, r0, r2, lsl r0 - 1b8: 12500001 subsne r0, r0, #1 ; 0x1 - 1bc: 68000000 stmdavs r0, {} - ... - 1cc: 00000400 andeq r0, r0, r0, lsl #8 - 1d0: 00006400 andeq r6, r0, r0, lsl #8 - 1d4: 55000100 strpl r0, [r0, #-256] - 1d8: 00000064 andeq r0, r0, r4, rrx - 1dc: 00000068 andeq r0, r0, r8, rrx - ... - 1e8: 00420000 subeq r0, r2, r0 - 1ec: 00640000 rsbeq r0, r4, r0 - 1f0: 00010000 andeq r0, r1, r0 - 1f4: 00006457 andeq r6, r0, r7, asr r4 - 1f8: 00006800 andeq r6, r0, r0, lsl #16 - ... - 204: 18000000 stmdane r0, {} - 208: 38000000 stmdacc r0, {} - 20c: 01000000 tsteq r0, r0 - 210: 00385000 eorseq r5, r8, r0 - 214: 003e0000 eorseq r0, lr, r0 - ... - 224: 0000001c andeq r0, r0, ip, lsl r0 - 228: 00000038 andeq r0, r0, r8, lsr r0 - 22c: 38510001 ldmdacc r1, {r0}^ - 230: 3e000000 cdpcc 0, 0, cr0, cr0, cr0, {0} - ... - 240: 00002000 andeq r2, r0, r0 - 244: 00003c00 andeq r3, r0, r0, lsl #24 - 248: 57000100 strpl r0, [r0, -r0, lsl #2] - 24c: 0000003c andeq r0, r0, ip, lsr r0 - 250: 0000003e andeq r0, r0, lr, lsr r0 - ... - 25c: 00440000 subeq r0, r4, r0 - 260: 00640000 rsbeq r0, r4, r0 - 264: 00010000 andeq r0, r1, r0 - 268: 00000054 andeq r0, r0, r4, asr r0 - ... - 274: 00000200 andeq r0, r0, r0, lsl #4 - 278: 7d000200 sfmvc f0, 4, [r0] - 27c: 00000200 andeq r0, r0, r0, lsl #4 - 280: 00000400 andeq r0, r0, r0, lsl #8 - 284: 7d000200 sfmvc f0, 4, [r0] - 288: 0000041c andeq r0, r0, ip, lsl r4 - 28c: 00018800 andeq r8, r1, r0, lsl #16 - 290: 7d000300 stcvc 3, cr0, [r0] - 294: 018800d0 ldrdeq r0, [r8, r0] - 298: 01940000 orrseq r0, r4, r0 - 29c: 00020000 andeq r0, r2, r0 - 2a0: 0000147d andeq r1, r0, sp, ror r4 - 2a4: 00000000 andeq r0, r0, r0 - 2a8: 00060000 andeq r0, r6, r0 - 2ac: 00c60000 sbceq r0, r6, r0 - 2b0: 00020000 andeq r0, r2, r0 - 2b4: 00c66491 smulleq r6, r6, r1, r4 - 2b8: 00f40000 rscseq r0, r4, r0 - 2bc: 00000000 andeq r0, r0, r0 - 2c0: 000000f4 strdeq r0, [r0], -r4 - 2c4: 00000160 andeq r0, r0, r0, ror #2 - 2c8: 64910002 ldrvs r0, [r1], #2 - 2cc: 00000160 andeq r0, r0, r0, ror #2 - 2d0: 00000194 muleq r0, r4, r1 - ... - 2dc: 00060000 andeq r0, r6, r0 - 2e0: 00680000 rsbeq r0, r8, r0 - 2e4: 00010000 andeq r0, r1, r0 - 2e8: 00006854 andeq r6, r0, r4, asr r8 - 2ec: 00007c00 andeq r7, r0, r0, lsl #24 - 2f0: 7c000000 stcvc 0, cr0, [r0], {0} - 2f4: 9c000000 stcls 0, cr0, [r0], {0} - 2f8: 01000000 tsteq r0, r0 - 2fc: 009c5400 addseq r5, ip, r0, lsl #8 - 300: 00f40000 rscseq r0, r4, r0 - 304: 00000000 andeq r0, r0, r0 - 308: 000000f4 strdeq r0, [r0], -r4 - 30c: 0000011c andeq r0, r0, ip, lsl r1 - 310: 1c540001 mrrcne 0, 0, r0, r4, cr1 - 314: 94000001 strls r0, [r0], #-1 - 318: 00000001 andeq r0, r0, r1 - ... - 324: 00000600 andeq r0, r0, r0, lsl #12 - 328: 0000ee00 andeq lr, r0, r0, lsl #28 - 32c: 91000200 tstls r0, r0, lsl #4 - 330: 0000ee68 andeq lr, r0, r8, ror #28 - 334: 0000f400 andeq pc, r0, r0, lsl #8 - 338: f4000000 vst4.8 {d0-d3}, [r0], r0 - 33c: 82000000 andhi r0, r0, #0 ; 0x0 - 340: 02000001 andeq r0, r0, #1 ; 0x1 - 344: 82689100 rsbhi r9, r8, #0 ; 0x0 - 348: 94000001 strls r0, [r0], #-1 - 34c: 00000001 andeq r0, r0, r1 - ... - 358: 00000600 andeq r0, r0, r0, lsl #12 - 35c: 00001a00 andeq r1, r0, r0, lsl #20 - 360: 53000100 movwpl r0, #256 ; 0x100 - 364: 0000001a andeq r0, r0, sl, lsl r0 - 368: 000000f4 strdeq r0, [r0], -r4 - 36c: 00f40000 rscseq r0, r4, r0 - 370: 00fc0000 rscseq r0, ip, r0 - 374: 00010000 andeq r0, r1, r0 - 378: 0000fc53 andeq pc, r0, r3, asr ip - 37c: 00019400 andeq r9, r1, r0, lsl #8 - ... - 388: 08000000 stmdaeq r0, {} - 38c: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} - 390: 01000000 tsteq r0, r0 - 394: 001e5500 andseq r5, lr, r0, lsl #10 - 398: 00280000 eoreq r0, r8, r0 - 39c: 00000000 andeq r0, r0, r0 - 3a0: 00000028 andeq r0, r0, r8, lsr #32 - 3a4: 00000030 andeq r0, r0, r0, lsr r0 - 3a8: 30550001 subscc r0, r5, r1 - 3ac: 3a000000 bcc 3b4 <__ABT_stack_size+0x2b4> - 3b0: 00000000 andeq r0, r0, r0 - 3b4: 00003a00 andeq r3, r0, r0, lsl #20 - 3b8: 00004000 andeq r4, r0, r0 - 3bc: 55000100 strpl r0, [r0, #-256] - 3c0: 00000040 andeq r0, r0, r0, asr #32 - 3c4: 00000048 andeq r0, r0, r8, asr #32 - 3c8: 00480000 subeq r0, r8, r0 - 3cc: 009c0000 addseq r0, ip, r0 - 3d0: 00010000 andeq r0, r1, r0 - 3d4: 00009c55 andeq r9, r0, r5, asr ip - 3d8: 00019400 andeq r9, r1, r0, lsl #8 - ... - 3ec: 10000000 andne r0, r0, r0 - 3f0: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} - 3f4: 03000000 movweq r0, #0 ; 0x0 - 3f8: 7fb09100 svcvc 0x00b09100 - 3fc: 0000001e andeq r0, r0, lr, lsl r0 - 400: 00000024 andeq r0, r0, r4, lsr #32 - 404: 00240000 eoreq r0, r4, r0 - 408: 00300000 eorseq r0, r0, r0 - 40c: 00030000 andeq r0, r3, r0 - 410: 307fb091 ldrbtcc fp, [pc, #-1] ; 417 <__FIQ_stack_size+0x17> - 414: 36000000 strcc r0, [r0], -r0 - 418: 00000000 andeq r0, r0, r0 - 41c: 00003600 andeq r3, r0, r0, lsl #12 - 420: 00004000 andeq r4, r0, r0 - 424: 91000300 tstls r0, r0, lsl #6 - 428: 00407fb0 strheq r7, [r0], #-240 - 42c: 00460000 subeq r0, r6, r0 - 430: 00000000 andeq r0, r0, r0 - 434: 00000046 andeq r0, r0, r6, asr #32 - 438: 0000009c muleq r0, ip, r0 - 43c: b0910003 addslt r0, r1, r3 - 440: 00009c7f andeq r9, r0, pc, ror ip - 444: 00019400 andeq r9, r1, r0, lsl #8 - ... - 450: 10000000 andne r0, r0, r0 - 454: 9c000000 stcls 0, cr0, [r0], {0} - 458: 01000000 tsteq r0, r0 - 45c: 009c5600 addseq r5, ip, r0, lsl #12 - 460: 00ca0000 sbceq r0, sl, r0 - 464: 00000000 andeq r0, r0, r0 - 468: 000000ca andeq r0, r0, sl, asr #1 - 46c: 000000e4 andeq r0, r0, r4, ror #1 - 470: e4560001 ldrb r0, [r6], #-1 - 474: f4000000 vst4.8 {d0-d3}, [r0], r0 - 478: 00000000 andeq r0, r0, r0 - 47c: 0000f400 andeq pc, r0, r0, lsl #8 - 480: 00013400 andeq r3, r1, r0, lsl #8 - 484: 56000100 strpl r0, [r0], -r0, lsl #2 - 488: 00000134 andeq r0, r0, r4, lsr r1 - 48c: 00000162 andeq r0, r0, r2, ror #2 - 490: 01620000 cmneq r2, r0 - 494: 017c0000 cmneq ip, r0 - 498: 00010000 andeq r0, r1, r0 - 49c: 00017c56 andeq r7, r1, r6, asr ip - 4a0: 00019400 andeq r9, r1, r0, lsl #8 - ... - 4ac: 12000000 andne r0, r0, #0 ; 0x0 - 4b0: 68000000 stmdavs r0, {} - 4b4: 01000000 tsteq r0, r0 - 4b8: 00685700 rsbeq r5, r8, r0, lsl #14 - 4bc: 00700000 rsbseq r0, r0, r0 - 4c0: 00000000 andeq r0, r0, r0 - 4c4: 00000070 andeq r0, r0, r0, ror r0 - 4c8: 0000007c andeq r0, r0, ip, ror r0 - 4cc: 7c570001 mrrcvc 0, 0, r0, r7, cr1 - 4d0: 84000000 strhi r0, [r0] - 4d4: 00000000 andeq r0, r0, r0 - 4d8: 00008400 andeq r8, r0, r0, lsl #8 - 4dc: 0000a600 andeq sl, r0, r0, lsl #12 - 4e0: 57000100 strpl r0, [r0, -r0, lsl #2] - 4e4: 000000a6 andeq r0, r0, r6, lsr #1 - 4e8: 000000ac andeq r0, r0, ip, lsr #1 - 4ec: 00ac0000 adceq r0, ip, r0 - 4f0: 00e80000 rsceq r0, r8, r0 - 4f4: 00010000 andeq r0, r1, r0 - 4f8: 0000e857 andeq lr, r0, r7, asr r8 - 4fc: 0000f400 andeq pc, r0, r0, lsl #8 - 500: f4000000 vst4.8 {d0-d3}, [r0], r0 - 504: 20000000 andcs r0, r0, r0 - 508: 01000001 tsteq r0, r1 - 50c: 01205700 teqeq r0, r0, lsl #14 - 510: 012e0000 teqeq lr, r0 - 514: 00000000 andeq r0, r0, r0 - 518: 0000012e andeq r0, r0, lr, lsr #2 - 51c: 00000134 andeq r0, r0, r4, lsr r1 - 520: 34570001 ldrbcc r0, [r7], #-1 - 524: 46000001 strmi r0, [r0], -r1 - 528: 00000001 andeq r0, r0, r1 - 52c: 00014600 andeq r4, r1, r0, lsl #12 - 530: 00017c00 andeq r7, r1, r0, lsl #24 - 534: 57000100 strpl r0, [r0, -r0, lsl #2] - 538: 0000017c andeq r0, r0, ip, ror r1 - 53c: 00000194 muleq r0, r4, r1 - ... - 548: 00060000 andeq r0, r6, r0 - 54c: 01860000 orreq r0, r6, r0 - 550: 00020000 andeq r0, r2, r0 - 554: 01865c91 strbeq r5, [r6, r1] - 558: 01940000 orrseq r0, r4, r0 - ... - 568: 00000006 andeq r0, r0, r6 - 56c: 00000186 andeq r0, r0, r6, lsl #3 - 570: 54910002 ldrpl r0, [r1], #2 - 574: 00000186 andeq r0, r0, r6, lsl #3 - 578: 00000194 muleq r0, r4, r1 - ... - 584: 00060000 andeq r0, r6, r0 - 588: 01860000 orreq r0, r6, r0 - 58c: 00030000 andeq r0, r3, r0 - 590: 867fb891 undefined - 594: 94000001 strls r0, [r0], #-1 - 598: 00000001 andeq r0, r0, r1 - ... - 5a4: 00000600 andeq r0, r0, r0, lsl #12 - 5a8: 00018600 andeq r8, r1, r0, lsl #12 - 5ac: 91000200 tstls r0, r0, lsl #4 - 5b0: 00018640 andeq r8, r1, r0, asr #12 - 5b4: 00019400 andeq r9, r1, r0, lsl #8 - ... - 5c4: 02000000 andeq r0, r0, #0 ; 0x0 - 5c8: 02000000 andeq r0, r0, #0 ; 0x0 - 5cc: 02007d00 andeq r7, r0, #0 ; 0x0 - 5d0: 04000000 streq r0, [r0] - 5d4: 02000000 andeq r0, r0, #0 ; 0x0 - 5d8: 04247d00 strteq r7, [r4], #-3328 - 5dc: d0000000 andle r0, r0, r0 - 5e0: 03000001 movweq r0, #1 ; 0x1 - 5e4: 00e87d00 rsceq r7, r8, r0, lsl #26 - 5e8: 000001d0 ldrdeq r0, [r0], -r0 - 5ec: 000001d2 ldrdeq r0, [r0], -r2 - 5f0: 147d0002 ldrbtne r0, [sp], #-2 - 5f4: 000001d2 ldrdeq r0, [r0], -r2 - 5f8: 000001f0 strdeq r0, [r0], -r0 - 5fc: e87d0003 ldmda sp!, {r0, r1}^ - ... - 608: 00000400 andeq r0, r0, r0, lsl #8 - 60c: 00010600 andeq r0, r1, r0, lsl #12 - 610: 91000200 tstls r0, r0, lsl #4 - 614: 0001065c andeq r0, r1, ip, asr r6 - 618: 00012400 andeq r2, r1, r0, lsl #8 - 61c: 24000000 strcs r0, [r0] - 620: a2000001 andge r0, r0, #1 ; 0x1 - 624: 02000001 andeq r0, r0, #1 ; 0x1 - 628: a25c9100 subsge r9, ip, #0 ; 0x0 - 62c: f0000001 undefined instruction 0xf0000001 - 630: 00000001 andeq r0, r0, r1 - ... - 63c: 00000400 andeq r0, r0, r0, lsl #8 - 640: 0000e600 andeq lr, r0, r0, lsl #12 - 644: 91000200 tstls r0, r0, lsl #4 - 648: 0000e660 andeq lr, r0, r0, ror #12 - 64c: 00012400 andeq r2, r1, r0, lsl #8 - 650: 24000000 strcs r0, [r0] - 654: 5e000001 cdppl 0, 0, cr0, cr0, cr1, {0} - 658: 02000001 andeq r0, r0, #1 ; 0x1 - 65c: 5e609100 lgnpls f1, f0 - 660: f0000001 undefined instruction 0xf0000001 - 664: 00000001 andeq r0, r0, r1 - ... - 670: 00000400 andeq r0, r0, r0, lsl #8 - 674: 0001ca00 andeq ip, r1, r0, lsl #20 - 678: 91000200 tstls r0, r0, lsl #4 - 67c: 0001ca64 andeq ip, r1, r4, ror #20 - 680: 0001d200 andeq sp, r1, r0, lsl #4 - 684: d2000000 andle r0, r0, #0 ; 0x0 - 688: d8000001 stmdale r0, {r0} - 68c: 02000001 andeq r0, r0, #1 ; 0x1 - 690: d8649100 stmdale r4!, {r8, ip, pc}^ - 694: f0000001 undefined instruction 0xf0000001 - 698: 00000001 andeq r0, r0, r1 - ... - 6a4: 00000400 andeq r0, r0, r0, lsl #8 - 6a8: 00002600 andeq r2, r0, r0, lsl #12 - 6ac: 91000200 tstls r0, r0, lsl #4 - 6b0: 00002668 andeq r2, r0, r8, ror #12 - 6b4: 00012400 andeq r2, r1, r0, lsl #8 - 6b8: 24000000 strcs r0, [r0] - 6bc: 2e000001 cdpcs 0, 0, cr0, cr0, cr1, {0} - 6c0: 02000001 andeq r0, r0, #1 ; 0x1 - 6c4: 2e689100 lgncse f1, f0 - 6c8: f0000001 undefined instruction 0xf0000001 - 6cc: 00000001 andeq r0, r0, r1 - ... - 6d8: 00000600 andeq r0, r0, r0, lsl #12 - 6dc: 00003a00 andeq r3, r0, r0, lsl #20 - 6e0: 56000100 strpl r0, [r0], -r0, lsl #2 - 6e4: 0000003a andeq r0, r0, sl, lsr r0 - 6e8: 00000044 andeq r0, r0, r4, asr #32 - 6ec: 00440000 subeq r0, r4, r0 - 6f0: 00500000 subseq r0, r0, r0 - 6f4: 00010000 andeq r0, r1, r0 - 6f8: 00005056 andeq r5, r0, r6, asr r0 - 6fc: 00005800 andeq r5, r0, r0, lsl #16 - 700: 58000000 stmdapl r0, {} - 704: e6000000 str r0, [r0], -r0 - 708: 01000000 tsteq r0, r0 - 70c: 00e65600 rsceq r5, r6, r0, lsl #12 - 710: 01f00000 mvnseq r0, r0 - ... - 728: 0000000e andeq r0, r0, lr - 72c: 0000003a andeq r0, r0, sl, lsr r0 - 730: a0910003 addsge r0, r1, r3 - 734: 00003a7f andeq r3, r0, pc, ror sl - 738: 00004000 andeq r4, r0, r0 - 73c: 40000000 andmi r0, r0, r0 - 740: 50000000 andpl r0, r0, r0 - 744: 03000000 movweq r0, #0 ; 0x0 - 748: 7fa09100 svcvc 0x00a09100 - 74c: 00000050 andeq r0, r0, r0, asr r0 - 750: 00000054 andeq r0, r0, r4, asr r0 - 754: 00540000 subseq r0, r4, r0 - 758: 00e60000 rsceq r0, r6, r0 - 75c: 00030000 andeq r0, r3, r0 - 760: e67fa091 undefined - 764: f0000000 undefined instruction 0xf0000000 - 768: 00000001 andeq r0, r0, r1 - ... - 774: 00000e00 andeq r0, r0, r0, lsl #28 - 778: 00012200 andeq r2, r1, r0, lsl #4 - 77c: 54000100 strpl r0, [r0], #-256 - 780: 00000122 andeq r0, r0, r2, lsr #2 - 784: 00000124 andeq r0, r0, r4, lsr #2 - 788: 01240000 teqeq r4, r0 - 78c: 01760000 cmneq r6, r0 - 790: 00010000 andeq r0, r1, r0 - 794: 00017654 andeq r7, r1, r4, asr r6 - 798: 0001a600 andeq sl, r1, r0, lsl #12 - 79c: a6000000 strge r0, [r0], -r0 - 7a0: be000001 cdplt 0, 0, cr0, cr0, cr1, {0} - 7a4: 01000001 tsteq r0, r1 - 7a8: 01be5400 undefined instruction 0x01be5400 - 7ac: 01f00000 mvnseq r0, r0 - ... - 7bc: 00000018 andeq r0, r0, r8, lsl r0 - 7c0: 00000080 andeq r0, r0, r0, lsl #1 - 7c4: 80550001 subshi r0, r5, r1 - 7c8: 88000000 stmdahi r0, {} - 7cc: 00000000 andeq r0, r0, r0 - 7d0: 00008800 andeq r8, r0, r0, lsl #16 - 7d4: 00009800 andeq r9, r0, r0, lsl #16 - 7d8: 55000100 strpl r0, [r0, #-256] - 7dc: 00000098 muleq r0, r8, r0 - 7e0: 000000a0 andeq r0, r0, r0, lsr #1 - 7e4: 00a00000 adceq r0, r0, r0 - 7e8: 00e60000 rsceq r0, r6, r0 - 7ec: 00010000 andeq r0, r1, r0 - 7f0: 0000e655 andeq lr, r0, r5, asr r6 - 7f4: 0000ec00 andeq lr, r0, r0, lsl #24 - 7f8: ec000000 stc 0, cr0, [r0], {0} - 7fc: 22000000 andcs r0, r0, #0 ; 0x0 - 800: 01000001 tsteq r0, r1 - 804: 01225500 teqeq r2, r0, lsl #10 - 808: 01240000 teqeq r4, r0 - 80c: 00000000 andeq r0, r0, r0 - 810: 00000124 andeq r0, r0, r4, lsr #2 - 814: 00000162 andeq r0, r0, r2, ror #2 - 818: 62550001 subsvs r0, r5, #1 ; 0x1 - 81c: 70000001 andvc r0, r0, r1 - 820: 00000001 andeq r0, r0, r1 - 824: 00017000 andeq r7, r1, r0 - 828: 00017600 andeq r7, r1, r0, lsl #12 - 82c: 55000100 strpl r0, [r0, #-256] - 830: 00000176 andeq r0, r0, r6, ror r1 - 834: 00000188 andeq r0, r0, r8, lsl #3 - 838: 01880000 orreq r0, r8, r0 - 83c: 01c40000 biceq r0, r4, r0 - 840: 00010000 andeq r0, r1, r0 - 844: 0001c455 andeq ip, r1, r5, asr r4 - 848: 0001f000 andeq pc, r1, r0 - ... - 854: 04000000 streq r0, [r0] - 858: dc000000 stcle 0, cr0, [r0], {0} - 85c: 02000001 andeq r0, r0, #1 ; 0x1 - 860: dc509100 ldflep f1, [r0], {0} - 864: f0000001 undefined instruction 0xf0000001 - 868: 00000001 andeq r0, r0, r1 - ... - 874: 00000400 andeq r0, r0, r0, lsl #8 - 878: 0001dc00 andeq sp, r1, r0, lsl #24 - 87c: 91000200 tstls r0, r0, lsl #4 - 880: 0001dc48 andeq sp, r1, r8, asr #24 - 884: 0001f000 andeq pc, r1, r0 - ... - 890: 04000000 streq r0, [r0] - 894: dc000000 stcle 0, cr0, [r0], {0} - 898: 03000001 movweq r0, #1 ; 0x1 - 89c: 7fac9100 svcvc 0x00ac9100 - 8a0: 000001dc ldrdeq r0, [r0], -ip - 8a4: 000001f0 strdeq r0, [r0], -r0 - ... - 8b0: 00180000 andseq r0, r8, r0 - 8b4: 01dc0000 bicseq r0, ip, r0 - 8b8: 00030000 andeq r0, r3, r0 - 8bc: dc7fb491 cfldrdle mvd11, [pc], #-580 - 8c0: f0000001 undefined instruction 0xf0000001 - 8c4: 00000001 andeq r0, r0, r1 - ... - 8d0: 00002e00 andeq r2, r0, r0, lsl #28 - 8d4: 00008000 andeq r8, r0, r0 - 8d8: 91000300 tstls r0, r0, lsl #6 - 8dc: 00807f98 umulleq r7, r0, r8, pc - 8e0: 00980000 addseq r0, r8, r0 - 8e4: 00000000 andeq r0, r0, r0 - 8e8: 00000098 muleq r0, r8, r0 - 8ec: 000000b0 strheq r0, [r0], -r0 - 8f0: 98910003 ldmls r1, {r0, r1} - 8f4: 0000b07f andeq fp, r0, pc, ror r0 - 8f8: 0000d000 andeq sp, r0, r0 - 8fc: d0000000 andle r0, r0, r0 - 900: e6000000 str r0, [r0], -r0 - 904: 03000000 movweq r0, #0 ; 0x0 - 908: 7f989100 svcvc 0x00989100 - 90c: 000000e6 andeq r0, r0, r6, ror #1 - 910: 000001f0 strdeq r0, [r0], -r0 - ... - 91c: 00300000 eorseq r0, r0, r0 - 920: 00e60000 rsceq r0, r6, r0 - 924: 00030000 andeq r0, r3, r0 - 928: e67f9c91 undefined - 92c: f0000000 undefined instruction 0xf0000000 - 930: 00000001 andeq r0, r0, r1 - ... - 940: 00000200 andeq r0, r0, r0, lsl #4 - 944: 7d000200 sfmvc f0, 4, [r0] - 948: 00000200 andeq r0, r0, r0, lsl #4 - 94c: 00005000 andeq r5, r0, r0 - 950: 7d000200 sfmvc f0, 4, [r0] - 954: 00000008 andeq r0, r0, r8 - 958: 00000000 andeq r0, r0, r0 - 95c: 00000400 andeq r0, r0, r0, lsl #8 - 960: 00004600 andeq r4, r0, r0, lsl #12 - 964: 54000100 strpl r0, [r0], #-256 - 968: 00000046 andeq r0, r0, r6, asr #32 - 96c: 00000050 andeq r0, r0, r0, asr r0 - ... - 984: 00020000 andeq r0, r2, r0 - 988: 00020000 andeq r0, r2, r0 - 98c: 0002007d andeq r0, r2, sp, ror r0 - 990: 00480000 subeq r0, r8, r0 - 994: 00020000 andeq r0, r2, r0 - 998: 0000087d andeq r0, r0, sp, ror r8 - 99c: 00000000 andeq r0, r0, r0 - 9a0: 00040000 andeq r0, r4, r0 - 9a4: 003c0000 eorseq r0, ip, r0 - 9a8: 00010000 andeq r0, r1, r0 - 9ac: 00003c54 andeq r3, r0, r4, asr ip - 9b0: 00004800 andeq r4, r0, r0, lsl #16 - ... - 9c8: 20000000 andcs r0, r0, r0 - 9cc: 02000000 andeq r0, r0, #0 ; 0x0 - 9d0: 00007d00 andeq r7, r0, r0, lsl #26 - ... - 9dc: 0e000000 cdpeq 0, 0, cr0, cr0, cr0, {0} - 9e0: 01000000 tsteq r0, r0 - 9e4: 000e5000 andeq r5, lr, r0 - 9e8: 00200000 eoreq r0, r0, r0 - ... - 9fc: 00000002 andeq r0, r0, r2 - a00: 007d0002 rsbseq r0, sp, r2 - a04: 00000002 andeq r0, r0, r2 - a08: 00000012 andeq r0, r0, r2, lsl r0 - a0c: 087d0002 ldmdaeq sp!, {r1}^ - a10: 00000012 andeq r0, r0, r2, lsl r0 - a14: 00000016 andeq r0, r0, r6, lsl r0 - a18: 007d0002 rsbseq r0, sp, r2 - ... - a24: 00000002 andeq r0, r0, r2 - a28: 0000000a andeq r0, r0, sl - a2c: 0a500001 beq 1400a38 - a30: 16000000 strne r0, [r0], -r0 - ... - a40: 00000a00 andeq r0, r0, r0, lsl #20 - a44: 00000c00 andeq r0, r0, r0, lsl #24 - a48: 51000100 tstpl r0, r0, lsl #2 - a4c: 0000000c andeq r0, r0, ip - a50: 00000016 andeq r0, r0, r6, lsl r0 - ... - a60: 00020000 andeq r0, r2, r0 - a64: 00020000 andeq r0, r2, r0 - a68: 0002007d andeq r0, r2, sp, ror r0 - a6c: 00040000 andeq r0, r4, r0 - a70: 00020000 andeq r0, r2, r0 - a74: 0004147d andeq r1, r4, sp, ror r4 - a78: 01280000 teqeq r8, r0 - a7c: 00020000 andeq r0, r2, r0 - a80: 0000207d andeq r2, r0, sp, ror r0 - a84: 00000000 andeq r0, r0, r0 - a88: 00080000 andeq r0, r8, r0 - a8c: 00440000 subeq r0, r4, r0 - a90: 00010000 andeq r0, r1, r0 - a94: 00004455 andeq r4, r0, r5, asr r4 - a98: 00012800 andeq r2, r1, r0, lsl #16 - ... - aa4: 08000000 stmdaeq r0, {} - aa8: 12000000 andne r0, r0, #0 ; 0x0 - aac: 01000001 tsteq r0, r1 - ab0: 01125400 tsteq r2, r0, lsl #8 - ab4: 01280000 teqeq r8, r0 - ... - ac4: 00000008 andeq r0, r0, r8 - ac8: 00000112 andeq r0, r0, r2, lsl r1 - acc: 12570001 subsne r0, r7, #1 ; 0x1 - ad0: 28000001 stmdacs r0, {r0} - ad4: 00000001 andeq r0, r0, r1 - ... - ae0: 00001800 andeq r1, r0, r0, lsl #16 - ae4: 00002a00 andeq r2, r0, r0, lsl #20 - ae8: 56000100 strpl r0, [r0], -r0, lsl #2 - aec: 0000002a andeq r0, r0, sl, lsr #32 - af0: 00000128 andeq r0, r0, r8, lsr #2 - ... - afc: 00ee0000 rsceq r0, lr, r0 - b00: 01180000 tsteq r8, r0 - b04: 00010000 andeq r0, r1, r0 - b08: 00011855 andeq r1, r1, r5, asr r8 - b0c: 00011e00 andeq r1, r1, r0, lsl #28 - b10: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} - b14: 22000001 andcs r0, r0, #1 ; 0x1 - b18: 01000001 tsteq r0, r1 - b1c: 01225500 teqeq r2, r0, lsl #10 - b20: 01280000 teqeq r8, r0 - ... - b40: 0000006c andeq r0, r0, ip, rrx - b44: 0000007c andeq r0, r0, ip, ror r0 - b48: 68910002 ldmvs r1, {r1} - ... - b5c: 000000c6 andeq r0, r0, r6, asr #1 - b60: 000000ce andeq r0, r0, lr, asr #1 - b64: 00550001 subseq r0, r5, r1 - b68: 00000000 andeq r0, r0, r0 - b6c: b6000000 strlt r0, [r0], -r0 - b70: ce000000 cdpgt 0, 0, cr0, cr0, cr0, {0} - b74: 02000000 andeq r0, r0, #0 ; 0x0 - b78: 00649100 rsbeq r9, r4, r0, lsl #2 - ... - b84: 02000000 andeq r0, r0, #0 ; 0x0 - b88: 02000000 andeq r0, r0, #0 ; 0x0 - b8c: 02007d00 andeq r7, r0, #0 ; 0x0 - b90: 04000000 streq r0, [r0] - b94: 02000000 andeq r0, r0, #0 ; 0x0 - b98: 04187d00 ldreq r7, [r8], #-3328 - b9c: c8000000 stmdagt r0, {} - ba0: 02000000 andeq r0, r0, #0 ; 0x0 - ba4: 00207d00 eoreq r7, r0, r0, lsl #26 - ba8: 00000000 andeq r0, r0, r0 - bac: 06000000 streq r0, [r0], -r0 - bb0: 38000000 stmdacc r0, {} - bb4: 01000000 tsteq r0, r0 - bb8: 00385000 eorseq r5, r8, r0 - bbc: 00c80000 sbceq r0, r8, r0 - ... - bcc: 00000006 andeq r0, r0, r6 - bd0: 000000c8 andeq r0, r0, r8, asr #1 - bd4: 68910002 ldmvs r1, {r1} - ... - be0: 00000006 andeq r0, r0, r6 - be4: 000000c8 andeq r0, r0, r8, asr #1 - be8: 00540001 subseq r0, r4, r1 - bec: 00000000 andeq r0, r0, r0 - bf0: 38000000 stmdacc r0, {} - bf4: c8000000 stmdagt r0, {} - ... - c04: 00003800 andeq r3, r0, r0, lsl #16 - c08: 00008000 andeq r8, r0, r0 - c0c: 56000100 strpl r0, [r0], -r0, lsl #2 - c10: 00000080 andeq r0, r0, r0, lsl #1 - c14: 000000c8 andeq r0, r0, r8, asr #1 - ... - c20: 00380000 eorseq r0, r8, r0 - c24: 00c80000 sbceq r0, r8, r0 - c28: 00010000 andeq r0, r1, r0 - c2c: 00000055 andeq r0, r0, r5, asr r0 - ... - c50: 00000200 andeq r0, r0, r0, lsl #4 - c54: 7d000200 sfmvc f0, 4, [r0] - c58: 00000200 andeq r0, r0, r0, lsl #4 - c5c: 00004000 andeq r4, r0, r0 - c60: 7d000200 sfmvc f0, 4, [r0] - c64: 00004010 andeq r4, r0, r0, lsl r0 - c68: 00004400 andeq r4, r0, r0, lsl #8 - c6c: 7d000200 sfmvc f0, 4, [r0] - c70: 00004404 andeq r4, r0, r4, lsl #8 - c74: 00004600 andeq r4, r0, r0, lsl #12 - c78: 7d000200 sfmvc f0, 4, [r0] - ... - c84: 00000800 andeq r0, r0, r0, lsl #16 - c88: 00002e00 andeq r2, r0, r0, lsl #28 - c8c: 54000100 strpl r0, [r0], #-256 - c90: 0000002e andeq r0, r0, lr, lsr #32 - c94: 00000046 andeq r0, r0, r6, asr #32 - ... - ca0: 00080000 andeq r0, r8, r0 - ca4: 003e0000 eorseq r0, lr, r0 - ca8: 00010000 andeq r0, r1, r0 - cac: 00003e55 andeq r3, r0, r5, asr lr - cb0: 00004600 andeq r4, r0, r0, lsl #12 - ... - cbc: 08000000 stmdaeq r0, {} - cc0: 16000000 strne r0, [r0], -r0 - cc4: 01000000 tsteq r0, r0 - cc8: 00165600 andseq r5, r6, r0, lsl #12 - ccc: 00460000 subeq r0, r6, r0 - ... - cdc: 0000002e andeq r0, r0, lr, lsr #32 - ce0: 0000003e andeq r0, r0, lr, lsr r0 - ce4: 3e540001 cdpcc 0, 5, cr0, cr4, cr1, {0} - ce8: 46000000 strmi r0, [r0], -r0 - ... - d14: 00000200 andeq r0, r0, r0, lsl #4 - d18: 7d000200 sfmvc f0, 4, [r0] - d1c: 00000200 andeq r0, r0, r0, lsl #4 - d20: 00005200 andeq r5, r0, r0, lsl #4 - d24: 7d000200 sfmvc f0, 4, [r0] - d28: 00005208 andeq r5, r0, r8, lsl #4 - d2c: 00005600 andeq r5, r0, r0, lsl #12 - d30: 7d000200 sfmvc f0, 4, [r0] - d34: 00005604 andeq r5, r0, r4, lsl #12 - d38: 00005800 andeq r5, r0, r0, lsl #16 - d3c: 7d000200 sfmvc f0, 4, [r0] - d40: 00005800 andeq r5, r0, r0, lsl #16 - d44: 00006000 andeq r6, r0, r0 - d48: 7d000200 sfmvc f0, 4, [r0] - d4c: 00000008 andeq r0, r0, r8 - d50: 00000000 andeq r0, r0, r0 - d54: 00000200 andeq r0, r0, r0, lsl #4 - d58: 00002200 andeq r2, r0, r0, lsl #4 - d5c: 50000100 andpl r0, r0, r0, lsl #2 - d60: 00000022 andeq r0, r0, r2, lsr #32 - d64: 00000060 andeq r0, r0, r0, rrx - ... - d74: 00020000 andeq r0, r2, r0 - d78: 00020000 andeq r0, r2, r0 - d7c: 0002007d andeq r0, r2, sp, ror r0 - d80: 00040000 andeq r0, r4, r0 - d84: 00020000 andeq r0, r2, r0 - d88: 0004187d andeq r1, r4, sp, ror r8 - d8c: 00600000 rsbeq r0, r0, r0 - d90: 00020000 andeq r0, r2, r0 - d94: 0000207d andeq r2, r0, sp, ror r0 - d98: 00000000 andeq r0, r0, r0 - d9c: 00080000 andeq r0, r8, r0 - da0: 00600000 rsbeq r0, r0, r0 - da4: 00020000 andeq r0, r2, r0 - da8: 00006891 muleq r0, r1, r8 - dac: 00000000 andeq r0, r0, r0 - db0: 00080000 andeq r0, r8, r0 - db4: 00600000 rsbeq r0, r0, r0 - db8: 00010000 andeq r0, r1, r0 - dbc: 00000057 andeq r0, r0, r7, asr r0 - dc0: 00000000 andeq r0, r0, r0 - dc4: 00000800 andeq r0, r0, r0, lsl #16 - dc8: 00006000 andeq r6, r0, r0 - dcc: 54000100 strpl r0, [r0], #-256 - ... - dec: 00000002 andeq r0, r0, r2 - df0: 007d0002 rsbseq r0, sp, r2 - df4: 00000002 andeq r0, r0, r2 - df8: 00000044 andeq r0, r0, r4, asr #32 - dfc: 107d0002 rsbsne r0, sp, r2 - e00: 00000044 andeq r0, r0, r4, asr #32 - e04: 00000046 andeq r0, r0, r6, asr #32 - e08: 0c7d0002 ldcleq 0, cr0, [sp], #-8 - e0c: 00000046 andeq r0, r0, r6, asr #32 - e10: 0000004a andeq r0, r0, sl, asr #32 - e14: 047d0002 ldrbteq r0, [sp], #-2 - e18: 0000004a andeq r0, r0, sl, asr #32 - e1c: 0000004c andeq r0, r0, ip, asr #32 - e20: 007d0002 rsbseq r0, sp, r2 - ... - e30: 00000002 andeq r0, r0, r2 - e34: 007d0002 rsbseq r0, sp, r2 - e38: 00000002 andeq r0, r0, r2 - e3c: 00000018 andeq r0, r0, r8, lsl r0 - e40: 087d0002 ldmdaeq sp!, {r1}^ - e44: 00000018 andeq r0, r0, r8, lsl r0 - e48: 0000001c andeq r0, r0, ip, lsl r0 - e4c: 007d0002 rsbseq r0, sp, r2 - ... - e5c: 00000002 andeq r0, r0, r2 - e60: 007d0002 rsbseq r0, sp, r2 - e64: 00000002 andeq r0, r0, r2 - e68: 00000096 muleq r0, r6, r0 - e6c: 087d0002 ldmdaeq sp!, {r1}^ - e70: 00000096 muleq r0, r6, r0 - e74: 0000009a muleq r0, sl, r0 - e78: 047d0002 ldrbteq r0, [sp], #-2 - e7c: 0000009a muleq r0, sl, r0 - e80: 0000009c muleq r0, ip, r0 - e84: 007d0002 rsbseq r0, sp, r2 - ... - e90: 00000004 andeq r0, r0, r4 - e94: 00000074 andeq r0, r0, r4, ror r0 - e98: 74540001 ldrbvc r0, [r4], #-1 - e9c: 9c000000 stcls 0, cr0, [r0], {0} - ... - eb0: 00000200 andeq r0, r0, r0, lsl #4 - eb4: 7d000200 sfmvc f0, 4, [r0] - eb8: 00000200 andeq r0, r0, r0, lsl #4 - ebc: 00003600 andeq r3, r0, r0, lsl #12 - ec0: 7d000200 sfmvc f0, 4, [r0] - ec4: 00003608 andeq r3, r0, r8, lsl #12 - ec8: 00003a00 andeq r3, r0, r0, lsl #20 - ecc: 7d000200 sfmvc f0, 4, [r0] - ed0: 00003a04 andeq r3, r0, r4, lsl #20 - ed4: 00003c00 andeq r3, r0, r0, lsl #24 - ed8: 7d000200 sfmvc f0, 4, [r0] - ... - ee4: 00000400 andeq r0, r0, r0, lsl #8 - ee8: 00002c00 andeq r2, r0, r0, lsl #24 - eec: 54000100 strpl r0, [r0], #-256 - ef0: 0000002c andeq r0, r0, ip, lsr #32 - ef4: 0000003c andeq r0, r0, ip, lsr r0 - ... - f04: 00020000 andeq r0, r2, r0 - f08: 00020000 andeq r0, r2, r0 - f0c: 0002007d andeq r0, r2, sp, ror r0 - f10: 00040000 andeq r0, r4, r0 - f14: 00020000 andeq r0, r2, r0 - f18: 0004107d andeq r1, r4, sp, ror r0 - f1c: 00780000 rsbseq r0, r8, r0 - f20: 00020000 andeq r0, r2, r0 - f24: 0078187d rsbseq r1, r8, sp, ror r8 - f28: 007a0000 rsbseq r0, sl, r0 - f2c: 00020000 andeq r0, r2, r0 - f30: 007a107d rsbseq r1, sl, sp, ror r0 - f34: 007e0000 rsbseq r0, lr, r0 - f38: 00020000 andeq r0, r2, r0 - f3c: 007e047d rsbseq r0, lr, sp, ror r4 - f40: 00900000 addseq r0, r0, r0 - f44: 00020000 andeq r0, r2, r0 - f48: 0000007d andeq r0, r0, sp, ror r0 - f4c: 00000000 andeq r0, r0, r0 - f50: 00380000 eorseq r0, r8, r0 - f54: 004c0000 subeq r0, ip, r0 - f58: 00010000 andeq r0, r1, r0 - f5c: 00004c54 andeq r4, r0, r4, asr ip - f60: 00005200 andeq r5, r0, r0, lsl #4 - f64: 52000000 andpl r0, r0, #0 ; 0x0 - f68: 68000000 stmdavs r0, {} - f6c: 01000000 tsteq r0, r0 - f70: 00685200 rsbeq r5, r8, r0, lsl #4 - f74: 00900000 addseq r0, r0, r0 - ... - f84: 0000000e andeq r0, r0, lr - f88: 00000024 andeq r0, r0, r4, lsr #32 - f8c: 24520001 ldrbcs r0, [r2], #-1 - f90: 90000000 andls r0, r0, r0 - ... - fa0: 00001200 andeq r1, r0, r0, lsl #4 - fa4: 00001800 andeq r1, r0, r0, lsl #16 - fa8: 50000100 andpl r0, r0, r0, lsl #2 - fac: 00000018 andeq r0, r0, r8, lsl r0 - fb0: 00000090 muleq r0, r0, r0 - ... - fbc: 00180000 andseq r0, r8, r0 - fc0: 006a0000 rsbeq r0, sl, r0 - fc4: 00010000 andeq r0, r1, r0 - fc8: 00006a51 andeq r6, r0, r1, asr sl - fcc: 00009000 andeq r9, r0, r0 - ... - fe0: 24000000 strcs r0, [r0] - fe4: 26000000 strcs r0, [r0], -r0 - fe8: 01000000 tsteq r0, r0 - fec: 00265200 eoreq r5, r6, r0, lsl #4 - ff0: 00900000 addseq r0, r0, r0 - ... - 1000: 00000038 andeq r0, r0, r8, lsr r0 - 1004: 0000004c andeq r0, r0, ip, asr #32 - 1008: 68910002 ldmvs r1, {r1} - 100c: 0000004c andeq r0, r0, ip, asr #32 - 1010: 00000052 andeq r0, r0, r2, asr r0 - 1014: 00520000 subseq r0, r2, r0 - 1018: 00680000 rsbeq r0, r8, r0 - 101c: 00020000 andeq r0, r2, r0 - 1020: 00686891 mlseq r8, r1, r8, r6 - 1024: 00900000 addseq r0, r0, r0 - ... - 1038: 00000002 andeq r0, r0, r2 - 103c: 007d0002 rsbseq r0, sp, r2 - 1040: 00000002 andeq r0, r0, r2 - 1044: 00000166 andeq r0, r0, r6, ror #2 - 1048: 187d0002 ldmdane sp!, {r1}^ - 104c: 00000166 andeq r0, r0, r6, ror #2 - 1050: 00000168 andeq r0, r0, r8, ror #2 - 1054: 147d0002 ldrbtne r0, [sp], #-2 - 1058: 00000168 andeq r0, r0, r8, ror #2 - 105c: 0000016c andeq r0, r0, ip, ror #2 - 1060: 047d0002 ldrbteq r0, [sp], #-2 - 1064: 0000016c andeq r0, r0, ip, ror #2 - 1068: 00000184 andeq r0, r0, r4, lsl #3 - 106c: 007d0002 rsbseq r0, sp, r2 - ... - 1078: 00000006 andeq r0, r0, r6 - 107c: 00000018 andeq r0, r0, r8, lsl r0 - 1080: 18540001 ldmdane r4, {r0}^ - 1084: 24000000 strcs r0, [r0] - 1088: 00000000 andeq r0, r0, r0 - 108c: 00002400 andeq r2, r0, r0, lsl #8 - 1090: 00005c00 andeq r5, r0, r0, lsl #24 - 1094: 54000100 strpl r0, [r0], #-256 - 1098: 0000005c andeq r0, r0, ip, asr r0 - 109c: 00000098 muleq r0, r8, r0 - 10a0: 00980000 addseq r0, r8, r0 - 10a4: 00a40000 adceq r0, r4, r0 - 10a8: 00010000 andeq r0, r1, r0 - 10ac: 0000a454 andeq sl, r0, r4, asr r4 - 10b0: 0000ce00 andeq ip, r0, r0, lsl #28 - 10b4: ce000000 cdpgt 0, 0, cr0, cr0, cr0, {0} - 10b8: d8000000 stmdale r0, {} - 10bc: 01000000 tsteq r0, r0 - 10c0: 00d85400 sbcseq r5, r8, r0, lsl #8 - 10c4: 00e40000 rsceq r0, r4, r0 - 10c8: 00000000 andeq r0, r0, r0 - 10cc: 000000e4 andeq r0, r0, r4, ror #1 - 10d0: 000000ea andeq r0, r0, sl, ror #1 - 10d4: ea540001 b 15010e0 - 10d8: 24000000 strcs r0, [r0] - 10dc: 00000001 andeq r0, r0, r1 - 10e0: 00012400 andeq r2, r1, r0, lsl #8 - 10e4: 00012800 andeq r2, r1, r0, lsl #16 - 10e8: 54000100 strpl r0, [r0], #-256 - 10ec: 00000128 andeq r0, r0, r8, lsr #2 - 10f0: 00000134 andeq r0, r0, r4, lsr r1 - 10f4: 01340000 teqeq r4, r0 - 10f8: 013a0000 teqeq sl, r0 - 10fc: 00010000 andeq r0, r1, r0 - 1100: 00013a54 andeq r3, r1, r4, asr sl - 1104: 00014200 andeq r4, r1, r0, lsl #4 - 1108: 42000000 andmi r0, r0, #0 ; 0x0 - 110c: 4a000001 bmi 1118 <__USR_stack_size+0x918> - 1110: 01000001 tsteq r0, r1 - 1114: 014a5400 cmpeq sl, r0, lsl #8 - 1118: 01540000 cmpeq r4, r0 - 111c: 00000000 andeq r0, r0, r0 - 1120: 00000154 andeq r0, r0, r4, asr r1 - 1124: 0000015a andeq r0, r0, sl, asr r1 - 1128: 5a540001 bpl 1501134 - 112c: 84000001 strhi r0, [r0], #-1 - 1130: 00000001 andeq r0, r0, r1 - ... - 1140: 00004c00 andeq r4, r0, r0, lsl #24 - 1144: 7d000200 sfmvc f0, 4, [r0] - ... - 1154: 00000200 andeq r0, r0, r0, lsl #4 - 1158: 7d000200 sfmvc f0, 4, [r0] - 115c: 00000200 andeq r0, r0, r0, lsl #4 - 1160: 00001e00 andeq r1, r0, r0, lsl #28 - 1164: 7d000200 sfmvc f0, 4, [r0] - 1168: 00001e08 andeq r1, r0, r8, lsl #28 - 116c: 00002200 andeq r2, r0, r0, lsl #4 - 1170: 7d000200 sfmvc f0, 4, [r0] - ... - 1180: 00000200 andeq r0, r0, r0, lsl #4 - 1184: 7d000200 sfmvc f0, 4, [r0] - 1188: 00000200 andeq r0, r0, r0, lsl #4 - 118c: 00001400 andeq r1, r0, r0, lsl #8 - 1190: 7d000200 sfmvc f0, 4, [r0] - 1194: 00001408 andeq r1, r0, r8, lsl #8 - 1198: 00001600 andeq r1, r0, r0, lsl #12 - 119c: 7d000200 sfmvc f0, 4, [r0] - 11a0: 00001600 andeq r1, r0, r0, lsl #12 - 11a4: 00003200 andeq r3, r0, r0, lsl #4 - 11a8: 7d000200 sfmvc f0, 4, [r0] - 11ac: 00003208 andeq r3, r0, r8, lsl #4 - 11b0: 00003400 andeq r3, r0, r0, lsl #8 - 11b4: 7d000200 sfmvc f0, 4, [r0] - ... - 11c0: 00000200 andeq r0, r0, r0, lsl #4 - 11c4: 00001000 andeq r1, r0, r0 - 11c8: 50000100 andpl r0, r0, r0, lsl #2 - 11cc: 00000010 andeq r0, r0, r0, lsl r0 - 11d0: 00000016 andeq r0, r0, r6, lsl r0 - 11d4: 00160000 andseq r0, r6, r0 - 11d8: 00200000 eoreq r0, r0, r0 - 11dc: 00010000 andeq r0, r1, r0 - 11e0: 00002050 andeq r2, r0, r0, asr r0 - 11e4: 00003400 andeq r3, r0, r0, lsl #8 - ... - 11f0: 02000000 andeq r0, r0, #0 ; 0x0 - 11f4: 10000000 andne r0, r0, r0 - 11f8: 01000000 tsteq r0, r0 - 11fc: 00105100 andseq r5, r0, r0, lsl #2 - 1200: 00160000 andseq r0, r6, r0 - 1204: 00000000 andeq r0, r0, r0 - 1208: 00000016 andeq r0, r0, r6, lsl r0 - 120c: 00000022 andeq r0, r0, r2, lsr #32 - 1210: 22510001 subscs r0, r1, #1 ; 0x1 - 1214: 34000000 strcc r0, [r0] - ... - 1228: 00002400 andeq r2, r0, r0, lsl #8 - 122c: 7d000200 sfmvc f0, 4, [r0] - ... - 123c: 00003400 andeq r3, r0, r0, lsl #8 - 1240: 7d000200 sfmvc f0, 4, [r0] - ... - 1258: 00000200 andeq r0, r0, r0, lsl #4 - 125c: 7d000200 sfmvc f0, 4, [r0] - 1260: 00000200 andeq r0, r0, r0, lsl #4 - 1264: 00003800 andeq r3, r0, r0, lsl #16 - 1268: 7d000200 sfmvc f0, 4, [r0] - 126c: 00000008 andeq r0, r0, r8 - ... - 1278: 00000200 andeq r0, r0, r0, lsl #4 - 127c: 7d000200 sfmvc f0, 4, [r0] - 1280: 00000200 andeq r0, r0, r0, lsl #4 - 1284: 00014200 andeq r4, r1, r0, lsl #4 - 1288: 7d000200 sfmvc f0, 4, [r0] - 128c: 00014210 andeq r4, r1, r0, lsl r2 - 1290: 00014400 andeq r4, r1, r0, lsl #8 - 1294: 7d000200 sfmvc f0, 4, [r0] - 1298: 0001440c andeq r4, r1, ip, lsl #8 - 129c: 00014800 andeq r4, r1, r0, lsl #16 - 12a0: 7d000200 sfmvc f0, 4, [r0] - 12a4: 00014804 andeq r4, r1, r4, lsl #16 - 12a8: 00015000 andeq r5, r1, r0 - 12ac: 7d000200 sfmvc f0, 4, [r0] - ... - 12c4: 00000200 andeq r0, r0, r0, lsl #4 - 12c8: 7d000200 sfmvc f0, 4, [r0] - 12cc: 00000200 andeq r0, r0, r0, lsl #4 - 12d0: 0001e000 andeq lr, r1, r0 - 12d4: 7d000200 sfmvc f0, 4, [r0] - 12d8: 0001e010 andeq lr, r1, r0, lsl r0 - 12dc: 0001e400 andeq lr, r1, r0, lsl #8 - 12e0: 7d000200 sfmvc f0, 4, [r0] - 12e4: 0001e404 andeq lr, r1, r4, lsl #8 - 12e8: 00020000 andeq r0, r2, r0 - 12ec: 7d000200 sfmvc f0, 4, [r0] - ... - 1304: 00000200 andeq r0, r0, r0, lsl #4 - 1308: 7d000200 sfmvc f0, 4, [r0] - 130c: 00000200 andeq r0, r0, r0, lsl #4 - 1310: 00019a00 andeq r9, r1, r0, lsl #20 - 1314: 7d000200 sfmvc f0, 4, [r0] - 1318: 00019a18 andeq r9, r1, r8, lsl sl - 131c: 00019c00 andeq r9, r1, r0, lsl #24 - 1320: 7d000200 sfmvc f0, 4, [r0] - 1324: 00019c14 andeq r9, r1, r4, lsl ip - 1328: 0001a000 andeq sl, r1, r0 - 132c: 7d000200 sfmvc f0, 4, [r0] - 1330: 0001a004 andeq sl, r1, r4 - 1334: 0001bc00 andeq fp, r1, r0, lsl #24 - 1338: 7d000200 sfmvc f0, 4, [r0] - ... - 134c: 00003200 andeq r3, r0, r0, lsl #4 - 1350: 00005000 andeq r5, r0, r0 - 1354: 91000200 tstls r0, r0, lsl #4 - 1358: 00005068 andeq r5, r0, r8, rrx - 135c: 00005a00 andeq r5, r0, r0, lsl #20 - ... - 1368: 40000000 andmi r0, r0, r0 - 136c: 5a000000 bpl 1374 <__USR_stack_size+0xb74> - 1370: 01000000 tsteq r0, r0 - 1374: 00005700 andeq r5, r0, r0, lsl #14 - 1378: 00000000 andeq r0, r0, r0 - 137c: 00b20000 adcseq r0, r2, r0 - 1380: 00b60000 adcseq r0, r6, r0 - 1384: 00010000 andeq r0, r1, r0 - 1388: 0000b650 andeq fp, r0, r0, asr r6 - 138c: 0000c800 andeq ip, r0, r0, lsl #16 - ... - 1398: b6000000 strlt r0, [r0], -r0 - 139c: ba000000 blt 13a4 <__USR_stack_size+0xba4> - 13a0: 01000000 tsteq r0, r0 - 13a4: 00ba5000 adcseq r5, sl, r0 - 13a8: 00be0000 adcseq r0, lr, r0 - 13ac: 00000000 andeq r0, r0, r0 - 13b0: 000000be strheq r0, [r0], -lr - 13b4: 000000c2 andeq r0, r0, r2, asr #1 - 13b8: c2500001 subsgt r0, r0, #1 ; 0x1 - 13bc: c2000000 andgt r0, r0, #0 ; 0x0 - 13c0: 00000000 andeq r0, r0, r0 - 13c4: 0000c200 andeq ip, r0, r0, lsl #4 - 13c8: 0000c800 andeq ip, r0, r0, lsl #16 - 13cc: 50000100 andpl r0, r0, r0, lsl #2 - ... - 13d8: 000000f6 strdeq r0, [r0], -r6 - 13dc: 0000010a andeq r0, r0, sl, lsl #2 - 13e0: 0a560001 beq 15813ec - 13e4: 14000001 strne r0, [r0], #-1 - 13e8: 00000001 andeq r0, r0, r1 - ... - 1400: 00000200 andeq r0, r0, r0, lsl #4 - 1404: 7d000200 sfmvc f0, 4, [r0] - 1408: 00000200 andeq r0, r0, r0, lsl #4 - 140c: 00014c00 andeq r4, r1, r0, lsl #24 - 1410: 7d000200 sfmvc f0, 4, [r0] - 1414: 00000008 andeq r0, r0, r8 - ... - 1428: 00000200 andeq r0, r0, r0, lsl #4 - 142c: 7d000200 sfmvc f0, 4, [r0] - 1430: 00000200 andeq r0, r0, r0, lsl #4 - 1434: 00008c00 andeq r8, r0, r0, lsl #24 - 1438: 7d000200 sfmvc f0, 4, [r0] - 143c: 00008c10 andeq r8, r0, r0, lsl ip - 1440: 00009000 andeq r9, r0, r0 - 1444: 7d000200 sfmvc f0, 4, [r0] - 1448: 00009004 andeq r9, r0, r4 - 144c: 00009800 andeq r9, r0, r0, lsl #16 - 1450: 7d000200 sfmvc f0, 4, [r0] - ... - 145c: 00002a00 andeq r2, r0, r0, lsl #20 - 1460: 00003a00 andeq r3, r0, r0, lsl #20 - 1464: 55000100 strpl r0, [r0, #-256] - 1468: 0000003a andeq r0, r0, sl, lsr r0 - 146c: 00000098 muleq r0, r8, r0 - ... - 147c: 00020000 andeq r0, r2, r0 - 1480: 00020000 andeq r0, r2, r0 - 1484: 0002007d andeq r0, r2, sp, ror r0 - 1488: 002a0000 eoreq r0, sl, r0 - 148c: 00020000 andeq r0, r2, r0 - 1490: 002a087d eoreq r0, sl, sp, ror r8 - 1494: 00300000 eorseq r0, r0, r0 - 1498: 00020000 andeq r0, r2, r0 - 149c: 0000047d andeq r0, r0, sp, ror r4 - 14a0: 00000000 andeq r0, r0, r0 - 14a4: 00020000 andeq r0, r2, r0 - 14a8: 00020000 andeq r0, r2, r0 - 14ac: 00010000 andeq r0, r1, r0 - 14b0: 00000250 andeq r0, r0, r0, asr r2 - 14b4: 00003000 andeq r3, r0, r0 - ... - 14c0: 02000000 andeq r0, r0, #0 ; 0x0 - 14c4: 14000000 strne r0, [r0] - 14c8: 01000000 tsteq r0, r0 - 14cc: 00145000 andseq r5, r4, r0 - 14d0: 00160000 andseq r0, r6, r0 - 14d4: 00000000 andeq r0, r0, r0 - 14d8: 00000016 andeq r0, r0, r6, lsl r0 - 14dc: 00000030 andeq r0, r0, r0, lsr r0 - 14e0: 00500001 subseq r0, r0, r1 - 14e4: 00000000 andeq r0, r0, r0 - 14e8: 08000000 stmdaeq r0, {} - 14ec: 28000000 stmdacs r0, {} - 14f0: 01000000 tsteq r0, r0 - 14f4: 00285200 eoreq r5, r8, r0, lsl #4 - 14f8: 00300000 eorseq r0, r0, r0 - ... - 150c: 00000006 andeq r0, r0, r6 - 1510: 007d0002 rsbseq r0, sp, r2 - ... - 1520: 00000002 andeq r0, r0, r2 - 1524: 007d0002 rsbseq r0, sp, r2 - 1528: 00000002 andeq r0, r0, r2 - 152c: 00000004 andeq r0, r0, r4 - 1530: 107d0002 rsbsne r0, sp, r2 - 1534: 00000004 andeq r0, r0, r4 - 1538: 00000080 andeq r0, r0, r0, lsl #1 - 153c: 187d0002 ldmdane sp!, {r1}^ - 1540: 00000080 andeq r0, r0, r0, lsl #1 - 1544: 00000082 andeq r0, r0, r2, lsl #1 - 1548: 107d0002 rsbsne r0, sp, r2 - 154c: 00000082 andeq r0, r0, r2, lsl #1 - 1550: 00000086 andeq r0, r0, r6, lsl #1 - 1554: 047d0002 ldrbteq r0, [sp], #-2 - 1558: 00000086 andeq r0, r0, r6, lsl #1 - 155c: 000000a4 andeq r0, r0, r4, lsr #1 - 1560: 007d0002 rsbseq r0, sp, r2 - ... - 157c: 00000030 andeq r0, r0, r0, lsr r0 - 1580: 00000040 andeq r0, r0, r0, asr #32 - 1584: 68910002 ldmvs r1, {r1} - 1588: 00000040 andeq r0, r0, r0, asr #32 - 158c: 0000007c andeq r0, r0, ip, ror r0 - ... - 159c: 00020000 andeq r0, r2, r0 - 15a0: 00020000 andeq r0, r2, r0 - 15a4: 0002007d andeq r0, r2, sp, ror r0 - 15a8: 00040000 andeq r0, r4, r0 - 15ac: 00020000 andeq r0, r2, r0 - 15b0: 0004147d andeq r1, r4, sp, ror r4 - 15b4: 00820000 addeq r0, r2, r0 - 15b8: 00020000 andeq r0, r2, r0 - 15bc: 0082207d addeq r2, r2, sp, ror r0 - 15c0: 00840000 addeq r0, r4, r0 - 15c4: 00020000 andeq r0, r2, r0 - 15c8: 0084147d addeq r1, r4, sp, ror r4 - 15cc: 00880000 addeq r0, r8, r0 - 15d0: 00020000 andeq r0, r2, r0 - 15d4: 0088047d addeq r0, r8, sp, ror r4 - 15d8: 00940000 addseq r0, r4, r0 - 15dc: 00020000 andeq r0, r2, r0 - 15e0: 0000007d andeq r0, r0, sp, ror r0 - 15e4: 00000000 andeq r0, r0, r0 - 15e8: 00080000 andeq r0, r8, r0 - 15ec: 000c0000 andeq r0, ip, r0 - 15f0: 00010000 andeq r0, r1, r0 - 15f4: 00000c50 andeq r0, r0, r0, asr ip - 15f8: 00007800 andeq r7, r0, r0, lsl #16 - 15fc: 55000100 strpl r0, [r0, #-256] - 1600: 00000078 andeq r0, r0, r8, ror r0 - 1604: 00000094 muleq r0, r4, r0 - ... - 1610: 00080000 andeq r0, r8, r0 - 1614: 00780000 rsbseq r0, r8, r0 - 1618: 00010000 andeq r0, r1, r0 - 161c: 00007857 andeq r7, r0, r7, asr r8 - 1620: 00009400 andeq r9, r0, r0, lsl #8 - ... - 162c: 08000000 stmdaeq r0, {} - 1630: 78000000 stmdavc r0, {} - 1634: 01000000 tsteq r0, r0 - 1638: 00785400 rsbseq r5, r8, r0, lsl #8 - 163c: 00940000 addseq r0, r4, r0 - ... - 164c: 00000010 andeq r0, r0, r0, lsl r0 - 1650: 00000014 andeq r0, r0, r4, lsl r0 - 1654: 14500001 ldrbne r0, [r0], #-1 - 1658: 28000000 stmdacs r0, {} - 165c: 00000000 andeq r0, r0, r0 - 1660: 00002800 andeq r2, r0, r0, lsl #16 - 1664: 00002e00 andeq r2, r0, r0, lsl #28 - 1668: 50000100 andpl r0, r0, r0, lsl #2 - 166c: 0000002e andeq r0, r0, lr, lsr #32 - 1670: 00000040 andeq r0, r0, r0, asr #32 - 1674: 00400000 subeq r0, r0, r0 - 1678: 00460000 subeq r0, r6, r0 - 167c: 00010000 andeq r0, r1, r0 - 1680: 00004650 andeq r4, r0, r0, asr r6 - 1684: 00008000 andeq r8, r0, r0 - 1688: 80000000 andhi r0, r0, r0 - 168c: 94000000 strls r0, [r0] - 1690: 01000000 tsteq r0, r0 - 1694: 00005000 andeq r5, r0, r0 - 1698: 00000000 andeq r0, r0, r0 - 169c: 00080000 andeq r0, r8, r0 - 16a0: 00800000 addeq r0, r0, r0 - 16a4: 00020000 andeq r0, r2, r0 - 16a8: 00806091 umulleq r6, r0, r1, r0 - 16ac: 00940000 addseq r0, r4, r0 - ... - 16c0: 00000002 andeq r0, r0, r2 - 16c4: 007d0002 rsbseq r0, sp, r2 - 16c8: 00000002 andeq r0, r0, r2 - 16cc: 00000004 andeq r0, r0, r4 - 16d0: 087d0002 ldmdaeq sp!, {r1}^ - 16d4: 00000004 andeq r0, r0, r4 - 16d8: 00000072 andeq r0, r0, r2, ror r0 - 16dc: 187d0002 ldmdane sp!, {r1}^ - 16e0: 00000072 andeq r0, r0, r2, ror r0 - 16e4: 00000074 andeq r0, r0, r4, ror r0 - 16e8: 087d0002 ldmdaeq sp!, {r1}^ - 16ec: 00000074 andeq r0, r0, r4, ror r0 - 16f0: 00000078 andeq r0, r0, r8, ror r0 - 16f4: 047d0002 ldrbteq r0, [sp], #-2 - 16f8: 00000078 andeq r0, r0, r8, ror r0 - 16fc: 0000008c andeq r0, r0, ip, lsl #1 - 1700: 007d0002 rsbseq r0, sp, r2 - ... - 170c: 00000006 andeq r0, r0, r6 - 1710: 0000006c andeq r0, r0, ip, rrx - 1714: 6c540001 mrrcvs 0, 0, r0, r4, cr1 - 1718: 8c000000 stchi 0, cr0, [r0], {0} - ... - 1728: 00000600 andeq r0, r0, r0, lsl #12 - 172c: 00008c00 andeq r8, r0, r0, lsl #24 - 1730: 91000200 tstls r0, r0, lsl #4 - 1734: 00000070 andeq r0, r0, r0, ror r0 - 1738: 00000000 andeq r0, r0, r0 - 173c: 00000600 andeq r0, r0, r0, lsl #12 - 1740: 00008c00 andeq r8, r0, r0, lsl #24 - 1744: 91000200 tstls r0, r0, lsl #4 - 1748: 00000068 andeq r0, r0, r8, rrx - ... - 1754: 00005000 andeq r5, r0, r0 - 1758: 7d000200 sfmvc f0, 4, [r0] - ... - 1764: 00003000 andeq r3, r0, r0 - 1768: 00003a00 andeq r3, r0, r0, lsl #20 - 176c: 50000100 andpl r0, r0, r0, lsl #2 - 1770: 0000003a andeq r0, r0, sl, lsr r0 - 1774: 00000040 andeq r0, r0, r0, asr #32 - 1778: 00400000 subeq r0, r0, r0 - 177c: 00480000 subeq r0, r8, r0 - 1780: 00010000 andeq r0, r1, r0 - 1784: 00004850 andeq r4, r0, r0, asr r8 - 1788: 00005000 andeq r5, r0, r0 - ... - 1798: 02000000 andeq r0, r0, #0 ; 0x0 - 179c: 02000000 andeq r0, r0, #0 ; 0x0 - 17a0: 00007d00 andeq r7, r0, r0, lsl #26 - ... - 17ac: 02000000 andeq r0, r0, #0 ; 0x0 - 17b0: 02000000 andeq r0, r0, #0 ; 0x0 - 17b4: 00007d00 andeq r7, r0, r0, lsl #26 - ... - 17c8: 02000000 andeq r0, r0, #0 ; 0x0 - 17cc: 02000000 andeq r0, r0, #0 ; 0x0 - 17d0: 02007d00 andeq r7, r0, #0 ; 0x0 - 17d4: 04000000 streq r0, [r0] - 17d8: 02000000 andeq r0, r0, #0 ; 0x0 - 17dc: 04187d00 ldreq r7, [r8], #-3328 - 17e0: 3e000000 cdpcc 0, 0, cr0, cr0, cr0, {0} - 17e4: 02000000 andeq r0, r0, #0 ; 0x0 - 17e8: 3e207d00 cdpcc 13, 2, cr7, cr0, cr0, {0} - 17ec: 40000000 andmi r0, r0, r0 - 17f0: 02000000 andeq r0, r0, #0 ; 0x0 - 17f4: 40107d00 andsmi r7, r0, r0, lsl #26 - 17f8: 44000000 strmi r0, [r0] - 17fc: 02000000 andeq r0, r0, #0 ; 0x0 - 1800: 44047d00 strmi r7, [r4], #-3328 - 1804: 46000000 strmi r0, [r0], -r0 - 1808: 02000000 andeq r0, r0, #0 ; 0x0 - 180c: 00007d00 andeq r7, r0, r0, lsl #26 - 1810: 00000000 andeq r0, r0, r0 - 1814: 04000000 streq r0, [r0] - 1818: 3c000000 stccc 0, cr0, [r0], {0} - 181c: 02000000 andeq r0, r0, #0 ; 0x0 - 1820: 3c689100 stfccp f1, [r8] - 1824: 46000000 strmi r0, [r0], -r0 - ... - 1834: 00000400 andeq r0, r0, r0, lsl #8 - 1838: 00003c00 andeq r3, r0, r0, lsl #24 - 183c: 91000200 tstls r0, r0, lsl #4 - 1840: 00003c60 andeq r3, r0, r0, ror #24 - 1844: 00004600 andeq r4, r0, r0, lsl #12 - ... - 1850: 0a000000 beq 1858 <__USR_stack_size+0x1058> - 1854: 3c000000 stccc 0, cr0, [r0], {0} - 1858: 01000000 tsteq r0, r0 - 185c: 003c5500 eorseq r5, ip, r0, lsl #10 - 1860: 00460000 subeq r0, r6, r0 - ... - 1870: 00000022 andeq r0, r0, r2, lsr #32 - 1874: 0000003c andeq r0, r0, ip, lsr r0 - 1878: 3c540001 mrrccc 0, 0, r0, r4, cr1 - 187c: 46000000 strmi r0, [r0], -r0 - ... - 1890: 00000200 andeq r0, r0, r0, lsl #4 - 1894: 7d000200 sfmvc f0, 4, [r0] - 1898: 00000200 andeq r0, r0, r0, lsl #4 - 189c: 00001400 andeq r1, r0, r0, lsl #8 - 18a0: 7d000200 sfmvc f0, 4, [r0] - 18a4: 00000008 andeq r0, r0, r8 - 18a8: 00000000 andeq r0, r0, r0 - 18ac: 00000200 andeq r0, r0, r0, lsl #4 - 18b0: 00001400 andeq r1, r0, r0, lsl #8 - 18b4: 50000100 andpl r0, r0, r0, lsl #2 - ... - 18c4: 00000002 andeq r0, r0, r2 - 18c8: 007d0002 rsbseq r0, sp, r2 - 18cc: 00000002 andeq r0, r0, r2 - 18d0: 0000001c andeq r0, r0, ip, lsl r0 - 18d4: 087d0002 ldmdaeq sp!, {r1}^ - ... - 18e0: 00000002 andeq r0, r0, r2 - 18e4: 00000006 andeq r0, r0, r6 - 18e8: 06500001 ldrbeq r0, [r0], -r1 - 18ec: 0a000000 beq 18f4 <__USR_stack_size+0x10f4> - 18f0: 00000000 andeq r0, r0, r0 - 18f4: 00000a00 andeq r0, r0, r0, lsl #20 - 18f8: 00001400 andeq r1, r0, r0, lsl #8 - 18fc: 50000100 andpl r0, r0, r0, lsl #2 - 1900: 00000014 andeq r0, r0, r4, lsl r0 - 1904: 0000001c andeq r0, r0, ip, lsl r0 - ... - 1914: 00020000 andeq r0, r2, r0 - 1918: 00020000 andeq r0, r2, r0 - 191c: 0002007d andeq r0, r2, sp, ror r0 - 1920: 000c0000 andeq r0, ip, r0 - 1924: 00020000 andeq r0, r2, r0 - 1928: 0000087d andeq r0, r0, sp, ror r8 - ... - 1934: 00020000 andeq r0, r2, r0 - 1938: 00020000 andeq r0, r2, r0 - 193c: 0002007d andeq r0, r2, sp, ror r0 - 1940: 00100000 andseq r0, r0, r0 - 1944: 00020000 andeq r0, r2, r0 - 1948: 0000087d andeq r0, r0, sp, ror r8 - 194c: 00000000 andeq r0, r0, r0 - 1950: 00020000 andeq r0, r2, r0 - 1954: 00100000 andseq r0, r0, r0 - 1958: 00010000 andeq r0, r1, r0 - 195c: 00000050 andeq r0, r0, r0, asr r0 - 1960: 00000000 andeq r0, r0, r0 - 1964: 00000200 andeq r0, r0, r0, lsl #4 - 1968: 00001000 andeq r1, r0, r0 - 196c: 51000100 tstpl r0, r0, lsl #2 - ... - 197c: 00000002 andeq r0, r0, r2 - 1980: 007d0002 rsbseq r0, sp, r2 - 1984: 00000002 andeq r0, r0, r2 - 1988: 00000016 andeq r0, r0, r6, lsl r0 - 198c: 087d0002 ldmdaeq sp!, {r1}^ - ... - 1998: 00000002 andeq r0, r0, r2 - 199c: 0000000c andeq r0, r0, ip - 19a0: 0c500001 mrrceq 0, 0, r0, r0, cr1 - 19a4: 10000000 andne r0, r0, r0 - 19a8: 00000000 andeq r0, r0, r0 - 19ac: 00001000 andeq r1, r0, r0 - 19b0: 00001000 andeq r1, r0, r0 - 19b4: 50000100 andpl r0, r0, r0, lsl #2 - 19b8: 00000010 andeq r0, r0, r0, lsl r0 - 19bc: 00000016 andeq r0, r0, r6, lsl r0 - ... - 19cc: 00020000 andeq r0, r2, r0 - 19d0: 00020000 andeq r0, r2, r0 - 19d4: 0002007d andeq r0, r2, sp, ror r0 - 19d8: 001c0000 andseq r0, ip, r0 - 19dc: 00020000 andeq r0, r2, r0 - 19e0: 0000087d andeq r0, r0, sp, ror r8 - 19e4: 00000000 andeq r0, r0, r0 - 19e8: 00020000 andeq r0, r2, r0 - 19ec: 00080000 andeq r0, r8, r0 - 19f0: 00010000 andeq r0, r1, r0 - 19f4: 00000850 andeq r0, r0, r0, asr r8 - 19f8: 00000c00 andeq r0, r0, r0, lsl #24 - 19fc: 0c000000 stceq 0, cr0, [r0], {0} - 1a00: 1c000000 stcne 0, cr0, [r0], {0} - 1a04: 01000000 tsteq r0, r0 - 1a08: 00005000 andeq r5, r0, r0 - 1a0c: 00000000 andeq r0, r0, r0 - 1a10: 00020000 andeq r0, r2, r0 - 1a14: 00080000 andeq r0, r8, r0 - 1a18: 00010000 andeq r0, r1, r0 - 1a1c: 00000851 andeq r0, r0, r1, asr r8 - 1a20: 00000c00 andeq r0, r0, r0, lsl #24 - 1a24: 0c000000 stceq 0, cr0, [r0], {0} - 1a28: 1c000000 stcne 0, cr0, [r0], {0} - 1a2c: 01000000 tsteq r0, r0 - 1a30: 00005100 andeq r5, r0, r0, lsl #2 - ... - 1a3c: 00020000 andeq r0, r2, r0 - 1a40: 00020000 andeq r0, r2, r0 - 1a44: 0002007d andeq r0, r2, sp, ror r0 - 1a48: 00140000 andseq r0, r4, r0 - 1a4c: 00020000 andeq r0, r2, r0 - 1a50: 0000087d andeq r0, r0, sp, ror r8 - 1a54: 00000000 andeq r0, r0, r0 - 1a58: 00020000 andeq r0, r2, r0 - 1a5c: 00060000 andeq r0, r6, r0 - 1a60: 00010000 andeq r0, r1, r0 - 1a64: 00000650 andeq r0, r0, r0, asr r6 - 1a68: 00000a00 andeq r0, r0, r0, lsl #20 - 1a6c: 0a000000 beq 1a74 <__USR_stack_size+0x1274> - 1a70: 0c000000 stceq 0, cr0, [r0], {0} - 1a74: 01000000 tsteq r0, r0 - 1a78: 000c5000 andeq r5, ip, r0 - 1a7c: 00140000 andseq r0, r4, r0 - ... - 1a90: 00000028 andeq r0, r0, r8, lsr #32 - 1a94: 007d0002 rsbseq r0, sp, r2 - ... - 1aa0: 0000000c andeq r0, r0, ip - 1aa4: 00000012 andeq r0, r0, r2, lsl r0 - 1aa8: 12510001 subsne r0, r1, #1 ; 0x1 - 1aac: 28000000 stmdacs r0, {} - ... - 1ac0: 00000200 andeq r0, r0, r0, lsl #4 - 1ac4: 7d000200 sfmvc f0, 4, [r0] - 1ac8: 00000200 andeq r0, r0, r0, lsl #4 - 1acc: 00002400 andeq r2, r0, r0, lsl #8 - 1ad0: 7d000200 sfmvc f0, 4, [r0] - 1ad4: 00000008 andeq r0, r0, r8 - 1ad8: 00000000 andeq r0, r0, r0 - 1adc: 00000200 andeq r0, r0, r0, lsl #4 - 1ae0: 00000c00 andeq r0, r0, r0, lsl #24 - 1ae4: 50000100 andpl r0, r0, r0, lsl #2 - 1ae8: 0000000c andeq r0, r0, ip - 1aec: 00000024 andeq r0, r0, r4, lsr #32 - ... - 1af8: 00020000 andeq r0, r2, r0 - 1afc: 00240000 eoreq r0, r4, r0 - 1b00: 00020000 andeq r0, r2, r0 - 1b04: 00007891 muleq r0, r1, r8 - ... - 1b10: 00020000 andeq r0, r2, r0 - 1b14: 00020000 andeq r0, r2, r0 - 1b18: 0002007d andeq r0, r2, sp, ror r0 - 1b1c: 00080000 andeq r0, r8, r0 - 1b20: 00020000 andeq r0, r2, r0 - 1b24: 0000087d andeq r0, r0, sp, ror r8 - 1b28: 00000000 andeq r0, r0, r0 - 1b2c: 00040000 andeq r0, r4, r0 - 1b30: 00080000 andeq r0, r8, r0 - 1b34: 00010000 andeq r0, r1, r0 - 1b38: 00000054 andeq r0, r0, r4, asr r0 - ... - 1b44: 00000200 andeq r0, r0, r0, lsl #4 - 1b48: 7d000200 sfmvc f0, 4, [r0] - 1b4c: 00000200 andeq r0, r0, r0, lsl #4 - 1b50: 00001c00 andeq r1, r0, r0, lsl #24 - 1b54: 7d000200 sfmvc f0, 4, [r0] - 1b58: 00000008 andeq r0, r0, r8 - 1b5c: 00000000 andeq r0, r0, r0 - 1b60: 00000400 andeq r0, r0, r0, lsl #8 - 1b64: 00001c00 andeq r1, r0, r0, lsl #24 - 1b68: 54000100 strpl r0, [r0], #-256 - ... - 1b78: 00000002 andeq r0, r0, r2 - 1b7c: 007d0002 rsbseq r0, sp, r2 - 1b80: 00000002 andeq r0, r0, r2 - 1b84: 00000004 andeq r0, r0, r4 - 1b88: 187d0002 ldmdane sp!, {r1}^ - 1b8c: 00000004 andeq r0, r0, r4 - 1b90: 0000006c andeq r0, r0, ip, rrx - 1b94: 207d0002 rsbscs r0, sp, r2 - ... - 1ba0: 00000006 andeq r0, r0, r6 - 1ba4: 00000054 andeq r0, r0, r4, asr r0 - 1ba8: 54570001 ldrbpl r0, [r7], #-1 - 1bac: 6c000000 stcvs 0, cr0, [r0], {0} - ... - 1bbc: 00000600 andeq r0, r0, r0, lsl #12 - 1bc0: 00005400 andeq r5, r0, r0, lsl #8 - 1bc4: 91000200 tstls r0, r0, lsl #4 - 1bc8: 00005468 andeq r5, r0, r8, ror #8 - 1bcc: 00006c00 andeq r6, r0, r0, lsl #24 - ... - 1bd8: 18000000 stmdane r0, {} - 1bdc: 54000000 strpl r0, [r0] - 1be0: 02000000 andeq r0, r0, #0 ; 0x0 - 1be4: 54609100 strbtpl r9, [r0], #-256 - 1be8: 6c000000 stcvs 0, cr0, [r0], {0} - ... - 1bfc: 00000200 andeq r0, r0, r0, lsl #4 - 1c00: 7d000200 sfmvc f0, 4, [r0] - 1c04: 00000200 andeq r0, r0, r0, lsl #4 - 1c08: 00000400 andeq r0, r0, r0, lsl #8 - 1c0c: 7d000200 sfmvc f0, 4, [r0] - 1c10: 00000404 andeq r0, r0, r4, lsl #8 - 1c14: 00002c00 andeq r2, r0, r0, lsl #24 - 1c18: 7d000300 stcvc 3, cr0, [r0] - 1c1c: 000000e8 andeq r0, r0, r8, ror #1 - 1c20: 00000000 andeq r0, r0, r0 - 1c24: 00040000 andeq r0, r4, r0 - 1c28: 002c0000 eoreq r0, ip, r0 - 1c2c: 00020000 andeq r0, r2, r0 - 1c30: 00006491 muleq r0, r1, r4 - 1c34: 00000000 andeq r0, r0, r0 - 1c38: 00040000 andeq r0, r4, r0 - 1c3c: 002c0000 eoreq r0, ip, r0 - 1c40: 00030000 andeq r0, r3, r0 - 1c44: 007fa091 ldrbteq sl, [pc, #-1] ; 1c4b <__USR_stack_size+0x144b> - 1c48: 00000000 andeq r0, r0, r0 - 1c4c: 04000000 streq r0, [r0] - 1c50: 2c000000 stccs 0, cr0, [r0], {0} - 1c54: 03000000 movweq r0, #0 ; 0x0 - 1c58: 7f989100 svcvc 0x00989100 - ... - 1c68: 00000002 andeq r0, r0, r2 - 1c6c: 007d0002 rsbseq r0, sp, r2 - 1c70: 00000002 andeq r0, r0, r2 - 1c74: 000001bc strheq r0, [r0], -ip - 1c78: 187d0002 ldmdane sp!, {r1}^ - 1c7c: 000001bc strheq r0, [r0], -ip - 1c80: 000001f4 strdeq r0, [r0], -r4 - 1c84: 147d0002 ldrbtne r0, [sp], #-2 - ... - 1c94: 00000028 andeq r0, r0, r8, lsr #32 - 1c98: 007d0002 rsbseq r0, sp, r2 - ... - 1ca8: 00000002 andeq r0, r0, r2 - 1cac: 007d0002 rsbseq r0, sp, r2 - 1cb0: 00000002 andeq r0, r0, r2 - 1cb4: 00000004 andeq r0, r0, r4 - 1cb8: 107d0002 rsbsne r0, sp, r2 - 1cbc: 00000004 andeq r0, r0, r4 - 1cc0: 00000124 andeq r0, r0, r4, lsr #2 - 1cc4: 207d0002 rsbscs r0, sp, r2 - 1cc8: 00000124 andeq r0, r0, r4, lsr #2 - 1ccc: 00000126 andeq r0, r0, r6, lsr #2 - 1cd0: 107d0002 rsbsne r0, sp, r2 - 1cd4: 00000126 andeq r0, r0, r6, lsr #2 - 1cd8: 0000012a andeq r0, r0, sl, lsr #2 - 1cdc: 047d0002 ldrbteq r0, [sp], #-2 - 1ce0: 0000012a andeq r0, r0, sl, lsr #2 - 1ce4: 0000012c andeq r0, r0, ip, lsr #2 - 1ce8: 007d0002 rsbseq r0, sp, r2 - 1cec: 0000012c andeq r0, r0, ip, lsr #2 - 1cf0: 000001ac andeq r0, r0, ip, lsr #3 - 1cf4: 207d0002 rsbscs r0, sp, r2 - ... - 1d00: 00000004 andeq r0, r0, r4 - 1d04: 000000f0 strdeq r0, [r0], -r0 - 1d08: 60910002 addsvs r0, r1, r2 - 1d0c: 000000f0 strdeq r0, [r0], -r0 - 1d10: 000000f4 strdeq r0, [r0], -r4 - 1d14: 00f40000 rscseq r0, r4, r0 - 1d18: 01520000 cmpeq r2, r0 - 1d1c: 00020000 andeq r0, r2, r0 - 1d20: 01526091 ldrbeq r6, [r2, #-1] - 1d24: 017a0000 cmneq sl, r0 - 1d28: 00000000 andeq r0, r0, r0 - 1d2c: 0000017a andeq r0, r0, sl, ror r1 - 1d30: 00000198 muleq r0, r8, r1 - 1d34: 60910002 addsvs r0, r1, r2 - 1d38: 00000198 muleq r0, r8, r1 - 1d3c: 000001ac andeq r0, r0, ip, lsr #3 - ... - 1d4c: 00020000 andeq r0, r2, r0 - 1d50: 00020000 andeq r0, r2, r0 - 1d54: 0002007d andeq r0, r2, sp, ror r0 - 1d58: 00140000 andseq r0, r4, r0 - 1d5c: 00020000 andeq r0, r2, r0 - 1d60: 0000087d andeq r0, r0, sp, ror r8 - ... - 1d6c: 00020000 andeq r0, r2, r0 - 1d70: 00020000 andeq r0, r2, r0 - 1d74: 0002007d andeq r0, r2, sp, ror r0 - 1d78: 00100000 andseq r0, r0, r0 - 1d7c: 00020000 andeq r0, r2, r0 - 1d80: 0000087d andeq r0, r0, sp, ror r8 - ... - 1d8c: 00020000 andeq r0, r2, r0 - 1d90: 00020000 andeq r0, r2, r0 - 1d94: 0002007d andeq r0, r2, sp, ror r0 - 1d98: 00140000 andseq r0, r4, r0 - 1d9c: 00020000 andeq r0, r2, r0 - 1da0: 0000087d andeq r0, r0, sp, ror r8 - ... - 1dac: 00020000 andeq r0, r2, r0 - 1db0: 00020000 andeq r0, r2, r0 - 1db4: 0002007d andeq r0, r2, sp, ror r0 - 1db8: 00140000 andseq r0, r4, r0 - 1dbc: 00020000 andeq r0, r2, r0 - 1dc0: 0000087d andeq r0, r0, sp, ror r8 - ... - 1dcc: 00020000 andeq r0, r2, r0 - 1dd0: 00020000 andeq r0, r2, r0 - 1dd4: 0002007d andeq r0, r2, sp, ror r0 - 1dd8: 005c0000 subseq r0, ip, r0 - 1ddc: 00020000 andeq r0, r2, r0 - 1de0: 005c187d subseq r1, ip, sp, ror r8 - 1de4: 00680000 rsbeq r0, r8, r0 - 1de8: 00020000 andeq r0, r2, r0 - 1dec: 0068207d rsbeq r2, r8, sp, ror r0 - 1df0: 00a20000 adceq r0, r2, r0 - 1df4: 00020000 andeq r0, r2, r0 - 1df8: 00a2187d adceq r1, r2, sp, ror r8 - 1dfc: 00ae0000 adceq r0, lr, r0 - 1e00: 00020000 andeq r0, r2, r0 - 1e04: 00ae207d adceq r2, lr, sp, ror r0 - 1e08: 01020000 tsteq r2, r0 - 1e0c: 00020000 andeq r0, r2, r0 - 1e10: 0102187d tsteq r2, sp, ror r8 - 1e14: 010e0000 tsteq lr, r0 - 1e18: 00020000 andeq r0, r2, r0 - 1e1c: 010e207d tsteq lr, sp, ror r0 - 1e20: 01400000 cmpeq r0, r0 - 1e24: 00020000 andeq r0, r2, r0 - 1e28: 0140187d cmpeq r0, sp, ror r8 - 1e2c: 01420000 cmpeq r2, r0 - 1e30: 00020000 andeq r0, r2, r0 - 1e34: 0142147d cmpeq r2, sp, ror r4 - 1e38: 01460000 cmpeq r6, r0 - 1e3c: 00020000 andeq r0, r2, r0 - 1e40: 0146047d cmpeq r6, sp, ror r4 - 1e44: 015c0000 cmpeq ip, r0 - 1e48: 00020000 andeq r0, r2, r0 - 1e4c: 0000007d andeq r0, r0, sp, ror r0 - 1e50: 00000000 andeq r0, r0, r0 - 1e54: 00020000 andeq r0, r2, r0 - 1e58: 00420000 subeq r0, r2, r0 - 1e5c: 00010000 andeq r0, r1, r0 - 1e60: 00004250 andeq r4, r0, r0, asr r2 - 1e64: 00007000 andeq r7, r0, r0 - 1e68: 70000000 andvc r0, r0, r0 - 1e6c: 8a000000 bhi 1e74 <__USR_stack_size+0x1674> - 1e70: 01000000 tsteq r0, r0 - 1e74: 008a5000 addeq r5, sl, r0 - 1e78: 00b40000 adcseq r0, r4, r0 - 1e7c: 00000000 andeq r0, r0, r0 - 1e80: 000000b4 strheq r0, [r0], -r4 - 1e84: 000000e4 andeq r0, r0, r4, ror #1 - 1e88: e4500001 ldrb r0, [r0], #-1 - 1e8c: 20000000 andcs r0, r0, r0 - 1e90: 00000001 andeq r0, r0, r1 - 1e94: 00012000 andeq r2, r1, r0 - 1e98: 00013800 andeq r3, r1, r0, lsl #16 - 1e9c: 50000100 andpl r0, r0, r0, lsl #2 - 1ea0: 00000138 andeq r0, r0, r8, lsr r1 - 1ea4: 0000015c andeq r0, r0, ip, asr r1 - ... - 1eb0: 00020000 andeq r0, r2, r0 - 1eb4: 001a0000 andseq r0, sl, r0 - 1eb8: 00010000 andeq r0, r1, r0 - 1ebc: 00001a51 andeq r1, r0, r1, asr sl - 1ec0: 00015c00 andeq r5, r1, r0, lsl #24 - ... - 1ecc: 52000000 andpl r0, r0, #0 ; 0x0 - 1ed0: 6c000000 stcvs 0, cr0, [r0], {0} - 1ed4: 01000000 tsteq r0, r0 - 1ed8: 006c5700 rsbeq r5, ip, r0, lsl #14 - 1edc: 00980000 addseq r0, r8, r0 - 1ee0: 00000000 andeq r0, r0, r0 - 1ee4: 00000098 muleq r0, r8, r0 - 1ee8: 000000b2 strheq r0, [r0], -r2 - 1eec: b2570001 subslt r0, r7, #1 ; 0x1 - 1ef0: f6000000 undefined instruction 0xf6000000 - 1ef4: 00000000 andeq r0, r0, r0 - 1ef8: 0000f600 andeq pc, r0, r0, lsl #12 - 1efc: 00011200 andeq r1, r1, r0, lsl #4 - 1f00: 57000100 strpl r0, [r0, -r0, lsl #2] - 1f04: 00000112 andeq r0, r0, r2, lsl r1 - 1f08: 0000015c andeq r0, r0, ip, asr r1 - ... - 1f14: 00020000 andeq r0, r2, r0 - 1f18: 001a0000 andseq r0, sl, r0 - 1f1c: 00010000 andeq r0, r1, r0 - 1f20: 00001a52 andeq r1, r0, r2, asr sl - 1f24: 00013a00 andeq r3, r1, r0, lsl #20 - 1f28: 3a000000 bcc 1f30 <__USR_stack_size+0x1730> - 1f2c: 5c000001 stcpl 0, cr0, [r0], {1} - 1f30: 01000001 tsteq r0, r1 - 1f34: 00005200 andeq r5, r0, r0, lsl #4 - ... - 1f40: 00020000 andeq r0, r2, r0 - 1f44: 00020000 andeq r0, r2, r0 - 1f48: 0002007d andeq r0, r2, sp, ror r0 - 1f4c: 00040000 andeq r0, r4, r0 - 1f50: 00020000 andeq r0, r2, r0 - 1f54: 0004147d andeq r1, r4, sp, ror r4 - 1f58: 00960000 addseq r0, r6, r0 - 1f5c: 00020000 andeq r0, r2, r0 - 1f60: 0096287d addseq r2, r6, sp, ror r8 - 1f64: 00b00000 adcseq r0, r0, r0 - 1f68: 00020000 andeq r0, r2, r0 - 1f6c: 0000147d andeq r1, r0, sp, ror r4 - 1f70: 00000000 andeq r0, r0, r0 - 1f74: 00040000 andeq r0, r4, r0 - 1f78: 00940000 addseq r0, r4, r0 - 1f7c: 00020000 andeq r0, r2, r0 - 1f80: 00945891 umullseq r5, r4, r1, r8 - 1f84: 00b00000 adcseq r0, r0, r0 - ... - 1f94: 00000050 andeq r0, r0, r0, asr r0 - 1f98: 00000056 andeq r0, r0, r6, asr r0 - 1f9c: 56500001 ldrbpl r0, [r0], -r1 - 1fa0: b0000000 andlt r0, r0, r0 - ... - 1fb0: 00003c00 andeq r3, r0, r0, lsl #24 - 1fb4: 00006200 andeq r6, r0, r0, lsl #4 - 1fb8: 54000100 strpl r0, [r0], #-256 - 1fbc: 00000062 andeq r0, r0, r2, rrx - 1fc0: 000000b0 strheq r0, [r0], -r0 - ... - 1fd0: 00020000 andeq r0, r2, r0 - 1fd4: 00020000 andeq r0, r2, r0 - 1fd8: 0002007d andeq r0, r2, sp, ror r0 - 1fdc: 00040000 andeq r0, r4, r0 - 1fe0: 00020000 andeq r0, r2, r0 - 1fe4: 0004147d andeq r1, r4, sp, ror r4 - 1fe8: 01e40000 mvneq r0, r0 - 1fec: 00020000 andeq r0, r2, r0 - 1ff0: 0000207d andeq r2, r0, sp, ror r0 - 1ff4: 00000000 andeq r0, r0, r0 - 1ff8: 00080000 andeq r0, r8, r0 - 1ffc: 01de0000 bicseq r0, lr, r0 - 2000: 00010000 andeq r0, r1, r0 - 2004: 0001de55 andeq sp, r1, r5, asr lr - 2008: 0001e400 andeq lr, r1, r0, lsl #8 - ... - 2014: 08000000 stmdaeq r0, {} - 2018: 9c000000 stcls 0, cr0, [r0], {0} - 201c: 01000001 tsteq r0, r1 - 2020: 019c5400 orrseq r5, ip, r0, lsl #8 - 2024: 019e0000 orrseq r0, lr, r0 - 2028: 00000000 andeq r0, r0, r0 - 202c: 0000019e muleq r0, lr, r1 - 2030: 000001c2 andeq r0, r0, r2, asr #3 - 2034: c2540001 subsgt r0, r4, #1 ; 0x1 - 2038: de000001 cdple 0, 0, cr0, cr0, cr1, {0} - 203c: 01000001 tsteq r0, r1 - 2040: 01de5700 bicseq r5, lr, r0, lsl #14 - 2044: 01e40000 mvneq r0, r0 - ... - 205c: 00000010 andeq r0, r0, r0, lsl r0 - 2060: 000001e4 andeq r0, r0, r4, ror #3 - 2064: 60910002 addsvs r0, r1, r2 - ... - 2070: 00000012 andeq r0, r0, r2, lsl r0 - 2074: 000001b8 strheq r0, [r0], -r8 - 2078: 00560001 subseq r0, r6, r1 - ... - 2084: 02000000 andeq r0, r0, #0 ; 0x0 - 2088: 02000000 andeq r0, r0, #0 ; 0x0 - 208c: 02007d00 andeq r7, r0, #0 ; 0x0 - 2090: b0000000 andlt r0, r0, r0 - 2094: 02000001 andeq r0, r0, #1 ; 0x1 - 2098: b0187d00 andslt r7, r8, r0, lsl #26 - 209c: b2000001 andlt r0, r0, #1 ; 0x1 - 20a0: 02000001 andeq r0, r0, #1 ; 0x1 - 20a4: 00147d00 andseq r7, r4, r0, lsl #26 - 20a8: 00000000 andeq r0, r0, r0 - 20ac: 06000000 streq r0, [r0], -r0 - 20b0: ae000000 cdpge 0, 0, cr0, cr0, cr0, {0} - 20b4: 01000001 tsteq r0, r1 - 20b8: 01ae5500 undefined instruction 0x01ae5500 - 20bc: 01b20000 undefined instruction 0x01b20000 - ... - 20cc: 00000006 andeq r0, r0, r6 - 20d0: 00000192 muleq r0, r2, r1 - 20d4: 92540001 subsls r0, r4, #1 ; 0x1 - 20d8: 94000001 strls r0, [r0], #-1 - 20dc: 00000001 andeq r0, r0, r1 - 20e0: 00019400 andeq r9, r1, r0, lsl #8 - 20e4: 0001ae00 andeq sl, r1, r0, lsl #28 - 20e8: 54000100 strpl r0, [r0], #-256 - 20ec: 000001ae andeq r0, r0, lr, lsr #3 - 20f0: 000001b2 strheq r0, [r0], -r2 - ... - 20fc: 00080000 andeq r0, r8, r0 - 2100: 01ae0000 undefined instruction 0x01ae0000 - 2104: 00010000 andeq r0, r1, r0 - 2108: 00000056 andeq r0, r0, r6, asr r0 - ... - 2114: 00000200 andeq r0, r0, r0, lsl #4 - 2118: 7d000200 sfmvc f0, 4, [r0] - 211c: 00000200 andeq r0, r0, r0, lsl #4 - 2120: 00010e00 andeq r0, r1, r0, lsl #28 - 2124: 7d000200 sfmvc f0, 4, [r0] - 2128: 00010e18 andeq r0, r1, r8, lsl lr - 212c: 00011000 andeq r1, r1, r0 - 2130: 7d000200 sfmvc f0, 4, [r0] - 2134: 00011014 andeq r1, r1, r4, lsl r0 - 2138: 00027800 andeq r7, r2, r0, lsl #16 - 213c: 7d000200 sfmvc f0, 4, [r0] - 2140: 00000018 andeq r0, r0, r8, lsl r0 - 2144: 00000000 andeq r0, r0, r0 - 2148: 00000400 andeq r0, r0, r0, lsl #8 - 214c: 00006000 andeq r6, r0, r0 - 2150: 57000100 strpl r0, [r0, -r0, lsl #2] - 2154: 00000060 andeq r0, r0, r0, rrx - 2158: 00000278 andeq r0, r0, r8, ror r2 - ... - 217c: 00100000 andseq r0, r0, r0 - 2180: 00320000 eorseq r0, r2, r0 - 2184: 00010000 andeq r0, r1, r0 - 2188: 00000054 andeq r0, r0, r4, asr r0 - 218c: 00000000 andeq r0, r0, r0 - 2190: 0001f600 andeq pc, r1, r0, lsl #12 - 2194: 00023000 andeq r3, r2, r0 - 2198: 54000100 strpl r0, [r0], #-256 - ... - 21a8: 00000002 andeq r0, r0, r2 - 21ac: 007d0002 rsbseq r0, sp, r2 - 21b0: 00000002 andeq r0, r0, r2 - 21b4: 00000110 andeq r0, r0, r0, lsl r1 - 21b8: 187d0002 ldmdane sp!, {r1}^ - 21bc: 00000110 andeq r0, r0, r0, lsl r1 - 21c0: 00000134 andeq r0, r0, r4, lsr r1 - 21c4: 147d0002 ldrbtne r0, [sp], #-2 - ... - 21d0: 00000004 andeq r0, r0, r4 - 21d4: 000000d6 ldrdeq r0, [r0], -r6 - 21d8: d6540001 ldrble r0, [r4], -r1 - 21dc: 34000000 strcc r0, [r0] - 21e0: 00000001 andeq r0, r0, r1 - ... - 21ec: 0000d600 andeq sp, r0, r0, lsl #12 - 21f0: 0000de00 andeq sp, r0, r0, lsl #28 - 21f4: 57000100 strpl r0, [r0, -r0, lsl #2] - 21f8: 000000de ldrdeq r0, [r0], -lr - 21fc: 00000134 andeq r0, r0, r4, lsr r1 - ... - 2210: 00de0000 sbcseq r0, lr, r0 - 2214: 010e0000 tsteq lr, r0 - 2218: 00010000 andeq r0, r1, r0 - 221c: 00000054 andeq r0, r0, r4, asr r0 - ... - 2228: 00000200 andeq r0, r0, r0, lsl #4 - 222c: 7d000200 sfmvc f0, 4, [r0] - 2230: 00000200 andeq r0, r0, r0, lsl #4 - 2234: 00000400 andeq r0, r0, r0, lsl #8 - 2238: 7d000200 sfmvc f0, 4, [r0] - 223c: 00000404 andeq r0, r0, r4, lsl #8 - 2240: 00002200 andeq r2, r0, r0, lsl #4 - 2244: 7d000200 sfmvc f0, 4, [r0] - 2248: 00002210 andeq r2, r0, r0, lsl r2 - 224c: 00002c00 andeq r2, r0, r0, lsl #24 - 2250: 7d000200 sfmvc f0, 4, [r0] - ... - 225c: 00000400 andeq r0, r0, r0, lsl #8 - 2260: 00002c00 andeq r2, r0, r0, lsl #24 - 2264: 91000200 tstls r0, r0, lsl #4 - 2268: 00000070 andeq r0, r0, r0, ror r0 - ... - 2274: 00000200 andeq r0, r0, r0, lsl #4 - 2278: 7d000200 sfmvc f0, 4, [r0] - 227c: 00000200 andeq r0, r0, r0, lsl #4 - 2280: 00002600 andeq r2, r0, r0, lsl #12 - 2284: 7d000200 sfmvc f0, 4, [r0] - 2288: 00002610 andeq r2, r0, r0, lsl r6 - 228c: 00003600 andeq r3, r0, r0, lsl #12 - 2290: 7d000200 sfmvc f0, 4, [r0] - 2294: 00003618 andeq r3, r0, r8, lsl r6 - 2298: 00003800 andeq r3, r0, r0, lsl #16 - 229c: 7d000200 sfmvc f0, 4, [r0] - 22a0: 00000010 andeq r0, r0, r0, lsl r0 - ... - 22b4: 00000200 andeq r0, r0, r0, lsl #4 - 22b8: 7d000200 sfmvc f0, 4, [r0] - 22bc: 00000200 andeq r0, r0, r0, lsl #4 - 22c0: 00000800 andeq r0, r0, r0, lsl #16 - 22c4: 7d000200 sfmvc f0, 4, [r0] - 22c8: 00000808 andeq r0, r0, r8, lsl #16 - 22cc: 00001800 andeq r1, r0, r0, lsl #16 - 22d0: 7d000200 sfmvc f0, 4, [r0] - 22d4: 00001810 andeq r1, r0, r0, lsl r8 - 22d8: 00002000 andeq r2, r0, r0 - 22dc: 7d000200 sfmvc f0, 4, [r0] - 22e0: 00000008 andeq r0, r0, r8 - ... - 22ec: 00000200 andeq r0, r0, r0, lsl #4 - 22f0: 7d000200 sfmvc f0, 4, [r0] - 22f4: 00000200 andeq r0, r0, r0, lsl #4 - 22f8: 0000c400 andeq ip, r0, r0, lsl #8 - 22fc: 7d000200 sfmvc f0, 4, [r0] - 2300: 00000010 andeq r0, r0, r0, lsl r0 - 2304: 00000000 andeq r0, r0, r0 - 2308: 00000200 andeq r0, r0, r0, lsl #4 - 230c: 00000600 andeq r0, r0, r0, lsl #12 - 2310: 50000100 andpl r0, r0, r0, lsl #2 - 2314: 00000006 andeq r0, r0, r6 - 2318: 00000014 andeq r0, r0, r4, lsl r0 - 231c: 00140000 andseq r0, r4, r0 - 2320: 00180000 andseq r0, r8, r0 - 2324: 00010000 andeq r0, r1, r0 - 2328: 00001850 andeq r1, r0, r0, asr r8 - 232c: 00004a00 andeq r4, r0, r0, lsl #20 - 2330: 4a000000 bmi 2338 <__USR_stack_size+0x1b38> - 2334: 4e000000 cdpmi 0, 0, cr0, cr0, cr0, {0} - 2338: 01000000 tsteq r0, r0 - 233c: 004e5000 subeq r5, lr, r0 - 2340: 00700000 rsbseq r0, r0, r0 - 2344: 00000000 andeq r0, r0, r0 - 2348: 00000070 andeq r0, r0, r0, ror r0 - 234c: 00000074 andeq r0, r0, r4, ror r0 - 2350: 74500001 ldrbvc r0, [r0], #-1 - 2354: 82000000 andhi r0, r0, #0 ; 0x0 - 2358: 00000000 andeq r0, r0, r0 - 235c: 00008200 andeq r8, r0, r0, lsl #4 - 2360: 00008600 andeq r8, r0, r0, lsl #12 - 2364: 50000100 andpl r0, r0, r0, lsl #2 - 2368: 00000086 andeq r0, r0, r6, lsl #1 - 236c: 000000a6 andeq r0, r0, r6, lsr #1 - 2370: 00a60000 adceq r0, r6, r0 - 2374: 00aa0000 adceq r0, sl, r0 - 2378: 00010000 andeq r0, r1, r0 - 237c: 0000aa50 andeq sl, r0, r0, asr sl - 2380: 0000c400 andeq ip, r0, r0, lsl #8 - ... - 238c: 02000000 andeq r0, r0, #0 ; 0x0 - 2390: 06000000 streq r0, [r0], -r0 - 2394: 01000000 tsteq r0, r0 - 2398: 00065100 andeq r5, r6, r0, lsl #2 - 239c: 00140000 andseq r0, r4, r0 - 23a0: 00000000 andeq r0, r0, r0 - 23a4: 00000014 andeq r0, r0, r4, lsl r0 - 23a8: 0000002a andeq r0, r0, sl, lsr #32 - 23ac: 2a510001 bcs 14423b8 - 23b0: 30000000 andcc r0, r0, r0 - 23b4: 00000000 andeq r0, r0, r0 - 23b8: 00003000 andeq r3, r0, r0 - 23bc: 00003400 andeq r3, r0, r0, lsl #8 - 23c0: 51000100 tstpl r0, r0, lsl #2 - 23c4: 00000034 andeq r0, r0, r4, lsr r0 - 23c8: 0000004a andeq r0, r0, sl, asr #32 - 23cc: 004a0000 subeq r0, sl, r0 - 23d0: 00600000 rsbeq r0, r0, r0 - 23d4: 00010000 andeq r0, r1, r0 - 23d8: 00006051 andeq r6, r0, r1, asr r0 - 23dc: 00006000 andeq r6, r0, r0 - 23e0: 60000000 andvs r0, r0, r0 - 23e4: 64000000 strvs r0, [r0] - 23e8: 01000000 tsteq r0, r0 - 23ec: 00645100 rsbeq r5, r4, r0, lsl #2 - 23f0: 00c40000 sbceq r0, r4, r0 - ... - 2400: 00000002 andeq r0, r0, r2 - 2404: 000000a6 andeq r0, r0, r6, lsr #1 - 2408: 70910002 addsvc r0, r1, r2 - 240c: 000000a6 andeq r0, r0, r6, lsr #1 - 2410: 000000c4 andeq r0, r0, r4, asr #1 - ... - 2420: 00020000 andeq r0, r2, r0 - 2424: 00020000 andeq r0, r2, r0 - 2428: 0002007d andeq r0, r2, sp, ror r0 - 242c: 00220000 eoreq r0, r2, r0 - 2430: 00020000 andeq r0, r2, r0 - 2434: 0022107d eoreq r1, r2, sp, ror r0 - 2438: 00240000 eoreq r0, r4, r0 - 243c: 00020000 andeq r0, r2, r0 - 2440: 00240c7d eoreq r0, r4, sp, ror ip - 2444: 00280000 eoreq r0, r8, r0 - 2448: 00020000 andeq r0, r2, r0 - 244c: 0028047d eoreq r0, r8, sp, ror r4 - 2450: 002a0000 eoreq r0, sl, r0 - 2454: 00020000 andeq r0, r2, r0 - 2458: 0000007d andeq r0, r0, sp, ror r0 - 245c: 00000000 andeq r0, r0, r0 - 2460: 00040000 andeq r0, r4, r0 - 2464: 001e0000 andseq r0, lr, r0 - 2468: 00010000 andeq r0, r1, r0 - 246c: 00001e54 andeq r1, r0, r4, asr lr - 2470: 00002a00 andeq r2, r0, r0, lsl #20 - ... - 247c: 08000000 stmdaeq r0, {} - 2480: 2a000000 bcs 2488 <__USR_stack_size+0x1c88> - 2484: 01000000 tsteq r0, r0 - 2488: 00005500 andeq r5, r0, r0, lsl #10 - 248c: 00000000 andeq r0, r0, r0 - ... - -Disassembly of section .debug_macinfo: - -00000000 <.debug_macinfo>: - 0: 03040003 movweq r0, #16387 ; 0x4003 - 4: 0304010d movweq r0, #16653 ; 0x410d - 8: 1103020e tstne r3, lr, lsl #4 - c: 04040403 streq r0, [r4], #-1027 - 10: 00000000 andeq r0, r0, r0 - 14: 03010003 movweq r0, #4099 ; 0x1003 - 18: 0304040d movweq r0, #17421 ; 0x440d - 1c: 1403060e strne r0, [r3], #-1550 - 20: 05190307 ldreq r0, [r9, #-775] - 24: 081a0304 ldmdaeq sl, {r2, r8, r9} - 28: 03040404 movweq r0, #17412 ; 0x4404 - 2c: 0304090f movweq r0, #18703 ; 0x490f - 30: 11030210 tstne r3, r0, lsl r2 - 34: 04040403 streq r0, [r4], #-1027 - 38: 00000000 andeq r0, r0, r0 - 3c: 03080003 movweq r0, #32771 ; 0x8003 - 40: 1703030e strne r0, [r3, -lr, lsl #6] - 44: 02190304 andseq r0, r9, #268435456 ; 0x10000000 - 48: 04011203 streq r1, [r1], #-515 - 4c: 051a0304 ldreq r0, [sl, #-772] - 50: 03040404 movweq r0, #17412 ; 0x4404 - 54: 1003070f andne r0, r3, pc, lsl #14 - 58: 04040406 streq r0, [r4], #-1030 - 5c: 00000000 andeq r0, r0, r0 - 60: 03010003 movweq r0, #4099 ; 0x1003 - 64: 0f030213 svceq 0x00030213 - 68: 07140306 ldreq r0, [r4, -r6, lsl #6] - 6c: 03041903 movweq r1, #18691 ; 0x4903 - 70: 04040312 streq r0, [r4], #-786 - 74: 04081a03 streq r1, [r8], #-2563 - 78: 10030404 andne r0, r3, r4, lsl #8 - 7c: 04040405 streq r0, [r4], #-1029 - 80: 00000000 andeq r0, r0, r0 - 84: 03010003 movweq r0, #4099 ; 0x1003 - 88: 15030213 strne r0, [r3, #-531] - 8c: 16030403 strne r0, [r3], -r3, lsl #8 - 90: 06140305 ldreq r0, [r4], -r5, lsl #6 - 94: 04041903 streq r1, [r4], #-2307 - 98: 04071a03 streq r1, [r7], #-2563 - 9c: 17030404 strne r0, [r3, -r4, lsl #8] - a0: 09110308 ldmdbeq r1, {r3, r8, r9} - a4: 04040404 streq r0, [r4], #-1028 - a8: 00000000 andeq r0, r0, r0 - ac: 030a0003 movweq r0, #40963 ; 0xa003 - b0: 0304010d movweq r0, #16653 ; 0x410d - b4: 1103030e tstne r3, lr, lsl #6 - b8: 02190305 andseq r0, r9, #335544320 ; 0x14000000 - bc: 041a0304 ldreq r0, [sl], #-772 - c0: 03040404 movweq r0, #17412 ; 0x4404 - c4: 03040810 movweq r0, #18448 ; 0x4810 - c8: 0e030c12 mcreq 12, 0, r0, cr3, cr2, {0} - cc: 0304040b movweq r0, #17419 ; 0x440b - d0: 11030d13 tstne r3, r3, lsl sp - d4: 060f0309 streq r0, [pc], -r9, lsl #6 - d8: 03040404 movweq r0, #17412 ; 0x4404 - dc: 04040714 streq r0, [r4], #-1812 - e0: 00000000 andeq r0, r0, r0 - e4: 03090003 movweq r0, #36867 ; 0x9003 - e8: 0304030c movweq r0, #17164 ; 0x430c - ec: 0304020d movweq r0, #16909 ; 0x420d - f0: 0304010e movweq r0, #16654 ; 0x410e - f4: 1403060f strne r0, [r3], #-1551 - f8: 05190307 ldreq r0, [r9, #-775] - fc: 081a0304 ldmdaeq sl, {r2, r8, r9} - 100: 03040404 movweq r0, #17412 ; 0x4404 - 104: 04040410 streq r0, [r4], #-1040 - 108: 00000000 andeq r0, r0, r0 - 10c: 030b0003 movweq r0, #45059 ; 0xb003 - 110: 0e03090e cdpeq 9, 0, cr0, cr3, cr14, {0} - 114: 010f0308 tsteq pc, r8, lsl #6 - 118: 03040404 movweq r0, #17412 ; 0x4404 - 11c: 0304040f movweq r0, #17423 ; 0x440f - 120: 11030c10 tstne r3, r0, lsl ip - 124: 12030406 andne r0, r3, #100663296 ; 0x6000000 - 128: 050f0307 streq r0, [pc, #-775] ; fffffe29 - 12c: 13030404 movwne r0, #13316 ; 0x3404 - 130: 1403040a strne r0, [r3], #-1034 - 134: 15030402 strne r0, [r3, #-1026] - 138: 04040403 streq r0, [r4], #-1027 - 13c: 00000000 andeq r0, r0, r0 - 140: 030f0003 movweq r0, #61443 ; 0xf003 - 144: 1903030e stmdbne r3, {r1, r2, r3, r8, r9} - 148: 01120302 tsteq r2, r2, lsl #6 - 14c: 1a030404 bne c1164 - 150: 03040404 movweq r0, #17412 ; 0x4404 - 154: 03040510 movweq r0, #17680 ; 0x4510 - 158: 11030611 tstne r3, r1, lsl r6 - 15c: 03040408 movweq r0, #17416 ; 0x4408 - 160: 03040712 movweq r0, #18194 ; 0x4712 - 164: 03040913 movweq r0, #18707 ; 0x4913 - 168: 03040b14 movweq r0, #19220 ; 0x4b14 - 16c: 0f030e15 svceq 0x00030e15 - 170: 1003040c andne r0, r3, ip, lsl #8 - 174: 1103040d tstne r3, sp, lsl #8 - 178: 0404040a streq r0, [r4], #-1034 - 17c: 00000000 andeq r0, r0, r0 - 180: 030a0003 movweq r0, #40963 ; 0xa003 - 184: 0f03090e svceq 0x0003090e - 188: 010f0308 tsteq pc, r8, lsl #6 - 18c: 10030404 andne r0, r3, r4, lsl #8 - 190: 05170304 ldreq r0, [r7, #-772] - 194: 04031903 streq r1, [r3], #-2307 - 198: 04061a03 streq r1, [r6], #-2563 - 19c: 11030404 tstne r3, r4, lsl #8 - 1a0: 03040402 movweq r0, #17410 ; 0x4402 - 1a4: 0404070f streq r0, [r4], #-1807 - 1a8: 00000000 andeq r0, r0, r0 - 1ac: 03010003 movweq r0, #4099 ; 0x1003 - 1b0: 0304030e movweq r0, #17166 ; 0x430e - 1b4: 0e03070f cdpeq 7, 0, cr0, cr3, cr15, {0} - 1b8: 0a110306 beq 440dd8 - 1bc: 04051903 streq r1, [r5], #-2307 - 1c0: 04081a03 streq r1, [r8], #-2563 - 1c4: 03040404 movweq r0, #17412 ; 0x4404 - 1c8: 03040d10 movweq r0, #19728 ; 0x4d10 - 1cc: 12030211 andne r0, r3, #268435457 ; 0x10000001 - 1d0: 13030409 movwne r0, #13321 ; 0x3409 - 1d4: 0c11030b ldceq 3, cr0, [r1], {11} - 1d8: 14030404 strne r0, [r3], #-1028 - 1dc: 04040404 streq r0, [r4], #-1028 - 1e0: 00000000 andeq r0, r0, r0 - 1e4: 03100003 tsteq r0, #3 ; 0x3 - 1e8: 0e030e0e cdpeq 14, 0, cr0, cr3, cr14, {0} - 1ec: 010f030b tsteq pc, fp, lsl #6 - 1f0: 0f030404 svceq 0x00030404 - 1f4: 0304040c movweq r0, #17420 ; 0x440c - 1f8: 11030f10 tstne r3, r0, lsl pc - 1fc: 12030406 andne r0, r3, #100663296 ; 0x6000000 - 200: 050f0309 streq r0, [pc, #-777] ; fffffeff - 204: 13030404 movwne r0, #13316 ; 0x3404 - 208: 1403040d strne r0, [r3], #-1037 - 20c: 15030403 strne r0, [r3, #-1027] - 210: 03040404 movweq r0, #17412 ; 0x4404 - 214: 03040711 movweq r0, #18193 ; 0x4711 - 218: 03040a12 movweq r0, #18962 ; 0x4a12 - 21c: 03040813 movweq r0, #18451 ; 0x4813 - 220: 04040214 streq r0, [r4], #-532 - 224: 00000000 andeq r0, r0, r0 - 228: 03030003 movweq r0, #12291 ; 0x3003 - 22c: 0503020e streq r0, [r3, #-526] - 230: 04040401 streq r0, [r4], #-1025 - 234: 00000000 andeq r0, r0, r0 - 238: 03030003 movweq r0, #12291 ; 0x3003 - 23c: 03041a0e movweq r1, #18958 ; 0x4a0e - 240: 03041b0f movweq r1, #19215 ; 0x4b0f - 244: 11031c10 tstne r3, r0, lsl ip - 248: 0304041e movweq r0, #17438 ; 0x441e - 24c: 12031d11 andne r1, r3, #1088 ; 0x440 - 250: 0304040a movweq r0, #17418 ; 0x440a - 254: 03042012 movweq r2, #16402 ; 0x4012 - 258: 03041f13 movweq r1, #20243 ; 0x4f13 - 25c: 03042214 movweq r2, #16916 ; 0x4214 - 260: 11032315 tstne r3, r5, lsl r3 - 264: 11170310 tstne r7, r0, lsl r3 - 268: 040f1903 streq r1, [pc], #2307 ; 270 <__ABT_stack_size+0x170> - 26c: 04121a03 ldreq r1, [r2], #-2563 - 270: 03040404 movweq r0, #17412 ; 0x4404 - 274: 03042516 movweq r2, #17686 ; 0x4516 - 278: 11032717 tstne r3, r7, lsl r7 - 27c: 0304040b movweq r0, #17419 ; 0x440b - 280: 10032618 andne r2, r3, r8, lsl r6 - 284: 11030424 tstne r3, r4, lsr #8 - 288: 03040421 movweq r0, #17441 ; 0x4421 - 28c: 03042819 movweq r2, #18457 ; 0x4819 - 290: 0304131a movweq r1, #17178 ; 0x431a - 294: 0304141c movweq r1, #17436 ; 0x441c - 298: 0e03161d mcreq 6, 0, r1, cr3, cr13, {0} - 29c: 03040415 movweq r0, #17429 ; 0x4415 - 2a0: 0304171f movweq r1, #18207 ; 0x471f - 2a4: 03041821 movweq r1, #18465 ; 0x4821 - 2a8: 03040d22 movweq r0, #19746 ; 0x4d22 - 2ac: 03040c23 movweq r0, #19491 ; 0x4c23 - 2b0: 12030924 andne r0, r3, #589824 ; 0x90000 - 2b4: 14030419 strne r0, [r3], #-1049 - 2b8: 0304040e movweq r0, #17422 ; 0x440e - 2bc: 03040525 movweq r0, #17701 ; 0x4525 - 2c0: 03040726 movweq r0, #18214 ; 0x4726 - 2c4: 11030427 tstne r3, r7, lsr #8 - 2c8: 03040406 movweq r0, #17414 ; 0x4406 - 2cc: 03040828 movweq r0, #18472 ; 0x4828 - 2d0: 24030229 strcs r0, [r3], #-553 - 2d4: 04040401 streq r0, [r4], #-1025 - 2d8: 00000000 andeq r0, r0, r0 - -Disassembly of section .iar.debug_line: - -00000000 <.iar.debug_line>: - 0: 00000062 andeq r0, r0, r2, rrx - 4: 3d840001 stccc 0, cr0, [r4, #4] - 8: 00010040 andeq r0, r1, r0, asr #32 - c: bb020000 bllt 80014 - 10: 00000001 andeq r0, r0, r1 - 14: 51000000 tstpl r0, r0 - 18: 19d50001 ldmibne r5, {r0}^ - 1c: 02010001 andeq r0, r1, #1 ; 0x1 - 20: 11780500 cmnne r8, r0, lsl #10 - 24: 000e296c andeq r2, lr, ip, ror #18 - 28: 01010100 tsteq r1, r0, lsl #2 - 2c: 01000101 tsteq r0, r1, lsl #2 - 30: 01010100 tsteq r1, r0, lsl #2 - 34: 022fd501 eoreq sp, pc, #4194304 ; 0x400000 - 38: 02021200 andeq r1, r2, #0 ; 0x0 - 3c: 0101ff00 tstpeq r1, r0, lsl #30 - 40: 040a0108 streq r0, [sl], #-264 - 44: 01040308 tsteq r4, r8, lsl #6 - 48: 1501fb03 strne pc, [r1, #-2819] - 4c: 0601032a streq r0, [r1], -sl, lsr #6 - 50: 0a995f0e beq fe657c90 - 54: 1b7f0600 blne 1fc185c - 58: 037e0ac6 cmneq lr, #811008 ; 0xc6000 - 5c: 097e587d ldmdbeq lr!, {r0, r2, r3, r4, r5, r6, fp, ip, lr}^ - 60: 01037b0a tsteq r3, sl, lsl #22 - 64: 0062042c rsbeq r0, r2, ip, lsr #8 - 68: 00010000 andeq r0, r1, r0 - 6c: 00403da8 subeq r3, r0, r8, lsr #27 - 70: 00000001 andeq r0, r0, r1 - 74: 0002cb02 andeq ip, r2, r2, lsl #22 - 78: 00000000 andeq r0, r0, r0 - 7c: 00015100 andeq r5, r1, r0, lsl #2 - 80: 000119d5 ldrdeq r1, [r1], -r5 - 84: 05000201 streq r0, [r0, #-513] - 88: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 8c: 0100000e tsteq r0, lr - 90: 01010101 tsteq r1, r1, lsl #2 - 94: 01000100 tsteq r0, r0, lsl #2 - 98: d5010101 strle r0, [r1, #-257] - 9c: 0f00022f svceq 0x0000022f - a0: 8b010202 blhi 408b0 - a4: 01080102 tsteq r8, r2, lsl #2 - a8: 0308040a movweq r0, #33802 ; 0x840a - ac: 87030104 strhi r0, [r3, -r4, lsl #2] - b0: 032a1502 teqeq sl, #8388608 ; 0x800000 - b4: 5f110601 svcpl 0x00110601 - b8: 06000a99 undefined - bc: 0ac61b7c beq ff186eb4 - c0: 587d037e ldmdapl sp!, {r1, r2, r3, r4, r5, r6, r8, r9}^ - c4: 7b0a097e blvc 2826c4 - c8: 042c0103 strteq r0, [ip], #-259 - cc: 000002f6 strdeq r0, [r0], -r6 - d0: 19640001 stmdbne r4!, {r0}^ - d4: 000d0040 andeq r0, sp, r0, asr #32 - d8: f7020000 undefined instruction 0xf7020000 - dc: 0100000d tsteq r0, sp - e0: 0000876d andeq r8, r0, sp, ror #14 - e4: 00848101 addeq r8, r4, r1, lsl #2 - e8: 85750100 ldrbhi r0, [r5, #-256]! - ec: a9010000 stmdbge r1, {} - f0: 01000083 smlabbeq r0, r3, r0, r0 - f4: 000086e5 andeq r8, r0, r5, ror #13 - f8: 0082d901 addeq sp, r2, r1, lsl #18 - fc: 837d0100 cmnhi sp, #0 ; 0x0 - 100: a9010000 stmdbge r1, {} - 104: 0100403d tsteq r0, sp, lsr r0 - 108: 00403d85 subeq r3, r0, r5, lsl #27 - 10c: 00169302 andseq r9, r6, r2, lsl #6 - 110: 1af70200 bne ffdc0918 - 114: e7020000 str r0, [r2, -r0] - 118: 00000019 andeq r0, r0, r9, lsl r0 - 11c: 51000000 tstpl r0, r0 - 120: 19d50001 ldmibne r5, {r0}^ - 124: 02010001 andeq r0, r1, #1 ; 0x1 - 128: 11780500 cmnne r8, r0, lsl #10 - 12c: 000e296c andeq r2, lr, ip, ror #18 - 130: 01010100 tsteq r1, r0, lsl #2 - 134: 01000101 tsteq r0, r1, lsl #2 - 138: 01010100 tsteq r1, r0, lsl #2 - 13c: 0586d501 streq sp, [r6, #1281] - 140: 01f90002 mvnseq r0, r2 - 144: a4000202 strge r0, [r0], #-514 - 148: 01b40113 undefined instruction 0x01b40113 - 14c: 04030801 streq r0, [r3], #-2049 - 150: 13a00301 movne r0, #67108864 ; 0x4000000 - 154: 1e062a15 mcrne 10, 0, r2, cr6, cr5, {0} - 158: 020d2429 andeq r2, sp, #687865856 ; 0x29000000 - 15c: 0c08b12f stfeqd f3, [r8], {47} - 160: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 164: b12f0408 teqlt pc, r8, lsl #8 - 168: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 16c: 04082215 streq r2, [r8], #-533 - 170: 0c08b12f stfeqd f3, [r8], {47} - 174: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 178: b12f0408 teqlt pc, r8, lsl #8 - 17c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 180: 0408cc15 streq ip, [r8], #-3093 - 184: 0c08b12f stfeqd f3, [r8], {47} - 188: 20170630 andscs r0, r7, r0, lsr r6 - 18c: b12f0408 teqlt pc, r8, lsl #8 - 190: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 194: 030d7d10 movweq r7, #56592 ; 0xdd10 - 198: 0c08b12f stfeqd f3, [r8], {47} - 19c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 1a0: b12f0408 teqlt pc, r8, lsl #8 - 1a4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1a8: 04082215 streq r2, [r8], #-533 - 1ac: 0c08b12f stfeqd f3, [r8], {47} - 1b0: cd140630 ldcgt 6, cr0, [r4, #-192] - 1b4: b12f0408 teqlt pc, r8, lsl #8 - 1b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1bc: 04087715 streq r7, [r8], #-1813 - 1c0: 0c08b12f stfeqd f3, [r8], {47} - 1c4: 20170630 andscs r0, r7, r0, lsr r6 - 1c8: b12f0408 teqlt pc, r8, lsl #8 - 1cc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1d0: 040d2019 streq r2, [sp], #-25 - 1d4: 0c08cf2f stceq 15, cr12, [r8], {47} - 1d8: 04150630 ldreq r0, [r5], #-1584 - 1dc: cf2f0408 svcgt 0x002f0408 - 1e0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1e4: 04080415 streq r0, [r8], #-1045 - 1e8: 0c08cf2f stceq 15, cr12, [r8], {47} - 1ec: 04150630 ldreq r0, [r5], #-1584 - 1f0: cf2f0408 svcgt 0x002f0408 - 1f4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1f8: 04080415 streq r0, [r8], #-1045 - 1fc: 0c08cf2f stceq 15, cr12, [r8], {47} - 200: 04150630 ldreq r0, [r5], #-1584 - 204: cf2f0408 svcgt 0x002f0408 - 208: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 20c: 04080217 streq r0, [r8], #-535 - 210: 0c08cf2f stceq 15, cr12, [r8], {47} - 214: 600f0630 andvs r0, pc, r0, lsr r6 - 218: cf2f050d svcgt 0x002f050d - 21c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 220: 04080415 streq r0, [r8], #-1045 - 224: 0c08cf2f stceq 15, cr12, [r8], {47} - 228: 04150630 ldreq r0, [r5], #-1584 - 22c: cf2f0408 svcgt 0x002f0408 - 230: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 234: 04080415 streq r0, [r8], #-1045 - 238: 0c08cf2f stceq 15, cr12, [r8], {47} - 23c: 04150630 ldreq r0, [r5], #-1584 - 240: cf2f0408 svcgt 0x002f0408 - 244: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 248: 04080415 streq r0, [r8], #-1045 - 24c: 0c08cf2f stceq 15, cr12, [r8], {47} - 250: 02170630 andseq r0, r7, #50331648 ; 0x3000000 - 254: cf2f0408 svcgt 0x002f0408 - 258: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 25c: 03063703 movweq r3, #26371 ; 0x6703 - 260: 060d561b undefined - 264: 0c084e3d stceq 14, cr4, [r8], {61} - 268: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 26c: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} - 270: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 274: 070d1d1b smladeq sp, fp, sp, r1 - 278: 0c08eb4a stceq 11, cr14, [r8], {74} - 27c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 280: eb4a0408 bl 12812a8 - 284: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 288: 04087815 streq r7, [r8], #-2069 - 28c: 0c08eb4a stceq 11, cr14, [r8], {74} - 290: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 294: eb4a0408 bl 12812bc - 298: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 29c: 04087815 streq r7, [r8], #-2069 - 2a0: 0c08eb4a stceq 11, cr14, [r8], {74} - 2a4: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 2a8: eb4a0408 bl 12812d0 - 2ac: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 2b0: 04082216 streq r2, [r8], #-534 - 2b4: 0c082566 cfstr32eq mvfx2, [r8], {102} - 2b8: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 2bc: 25660408 strbcs r0, [r6, #-1032]! - 2c0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 2c4: 2a0e7906 bcs 39e6e4 - 2c8: 4e3d080d cdpmi 8, 3, cr0, cr13, cr13, {0} - 2cc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 2d0: 04082215 streq r2, [r8], #-533 - 2d4: 0c084e3d stceq 14, cr4, [r8], {61} - 2d8: 76060630 undefined - 2dc: 030d220e movweq r2, #53774 ; 0xd20e - 2e0: 0c08b12f stfeqd f3, [r8], {47} - 2e4: 20170630 andscs r0, r7, r0, lsr r6 - 2e8: b12f0408 teqlt pc, r8, lsl #8 - 2ec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 2f0: 290e7106 stmdbcs lr, {r1, r2, r8, ip, sp, lr} - 2f4: 1422090d strtne r0, [r2], #-2317 - 2f8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 2fc: 711b0a06 tstvc fp, r6, lsl #20 - 300: b12f030d teqlt pc, sp, lsl #6 - 304: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 308: 04082017 streq r2, [r8], #-23 - 30c: 0c08b12f stfeqd f3, [r8], {47} - 310: 71060630 tstvc r6, r0, lsr r6 - 314: 0a0d290e beq 34a754 - 318: 0c081422 cfstrseq mvf1, [r8], {34} - 31c: 17030630 smladxne r3, r0, r6, r0 - 320: 7e1b0906 cdpvc 9, 1, cr0, cr11, cr6, {0} - 324: 14220b0d strtne r0, [r2], #-2829 - 328: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 32c: 290e7c06 stmdbcs lr, {r1, r2, sl, fp, ip, sp, lr} - 330: 1422090d strtne r0, [r2], #-2317 - 334: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 338: 731b0706 tstvc fp, #1572864 ; 0x180000 - 33c: 14220b0d strtne r0, [r2], #-2829 - 340: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 344: 04087916 streq r7, [r8], #-2326 - 348: 0c081422 cfstrseq mvf1, [r8], {34} - 34c: cf140630 svcgt 0x00140630 - 350: 14220408 strtne r0, [r2], #-1032 - 354: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 358: 731b0e06 tstvc fp, #96 ; 0x60 - 35c: 14220408 strtne r0, [r2], #-1032 - 360: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 364: 0408d60e streq sp, [r8], #-1550 - 368: 0c081422 cfstrseq mvf1, [r8], {34} - 36c: 24140630 ldrcs r0, [r4], #-1584 - 370: 14220408 strtne r0, [r2], #-1032 - 374: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 378: 2c0e7806 stccs 8, cr7, [lr], {6} - 37c: 14220408 strtne r0, [r2], #-1032 - 380: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 384: 090d7b11 stmdbeq sp, {r0, r4, r8, r9, fp, ip, sp, lr} - 388: 0c081422 cfstrseq mvf1, [r8], {34} - 38c: 0a060630 beq 181c54 - 390: 0b0d721b bleq 35cc04 - 394: 0c081422 cfstrseq mvf1, [r8], {34} - 398: 78060630 stmdavc r6, {r4, r5, r9, sl} - 39c: 090d290e stmdbeq sp, {r1, r2, r3, r8, fp, sp} - 3a0: 0c081422 cfstrseq mvf1, [r8], {34} - 3a4: 10060630 andne r0, r6, r0, lsr r6 - 3a8: 0c0d731b stceq 3, cr7, [sp], {27} - 3ac: 0c081422 cfstrseq mvf1, [r8], {34} - 3b0: d2110630 andsle r0, r1, #50331648 ; 0x3000000 - 3b4: 32220d0d eorcc r0, r2, #832 ; 0x340 - 3b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3bc: 0a095e11 beq 257c08 - 3c0: 77067ecf strvc r7, [r6, -pc, asr #29] - 3c4: 00a3ec36 adceq lr, r3, r6, lsr ip - 3c8: 00010000 andeq r0, r1, r0 - 3cc: 00401b56 subeq r1, r0, r6, asr fp - 3d0: 00000002 andeq r0, r0, r2 - 3d4: 000eeb02 andeq lr, lr, r2, lsl #22 - 3d8: 22370200 eorscs r0, r7, #0 ; 0x0 - 3dc: 00000000 andeq r0, r0, r0 - 3e0: 01510000 cmpeq r1, r0 - 3e4: 0119d500 tsteq r9, r0, lsl #10 - 3e8: 00020100 andeq r0, r2, r0, lsl #2 - 3ec: 6c117805 ldcvs 8, cr7, [r1], {5} - 3f0: 00000e29 andeq r0, r0, r9, lsr #28 - 3f4: 01010101 tsteq r1, r1, lsl #2 - 3f8: 00010001 andeq r0, r1, r1 - 3fc: 01010101 tsteq r1, r1, lsl #2 - 400: 00026bd5 ldrdeq r6, [r2], -r5 - 404: 0102022c tsteq r2, ip, lsr #4 - 408: 2c0114e5 cfstrscs mvf1, [r1], {229} - 40c: 04030801 streq r0, [r3], #-2049 - 410: 14e10301 strbtne r0, [r1], #769 - 414: 08052a15 stmdaeq r5, {r0, r2, r4, r9, fp, sp} - 418: 39291306 stmdbcc r9!, {r1, r2, r8, r9, ip} - 41c: fe127a05 cdp2 10, 1, cr7, cr2, cr5, {0} - 420: 040af940 streq pc, [sl], #-2368 - 424: 0f06612b svceq 0x0006612b - 428: 020a5444 andeq r5, sl, #1140850688 ; 0x44000000 - 42c: 63296a06 teqvs r9, #24576 ; 0x6000 - 430: 0a097028 beq 25c4d8 - 434: 29760602 ldmdbcs r6!, {r1, r9, sl}^ - 438: 22030356 andcs r0, r3, #1476395009 ; 0x58000001 - 43c: 037f0ad1 cmneq pc, #856064 ; 0xd1000 - 440: 4421067e strtmi r0, [r1], #-1662 - 444: 03060a3d movweq r0, #27197 ; 0x6a3d - 448: 5f710601 svcpl 0x00710601 - 44c: 0dae3fda stceq 15, cr3, [lr, #872]! - 450: 14030502 strne r0, [r3], #-1282 - 454: 087c0a9f ldmdaeq ip!, {r0, r1, r2, r3, r4, r7, r9, fp}^ - 458: 0506300c streq r3, [r6, #-12] - 45c: 0931357f ldmdbeq r1!, {r0, r1, r2, r3, r4, r5, r6, r8, sl, ip, sp} - 460: 8061780a rsbhi r7, r1, sl, lsl #16 - 464: 036e0a09 cmneq lr, #36864 ; 0x9000 - 468: 36700601 ldrbtcc r0, [r0], -r1, lsl #12 - 46c: 0000e8db ldrdeq lr, [r0], -fp - 470: b4000200 strlt r0, [r0], #-512 - 474: 0300401b movweq r4, #27 ; 0x1b - 478: 02000000 andeq r0, r0, #0 ; 0x0 - 47c: 00001063 andeq r1, r0, r3, rrx - 480: 0024f602 eoreq pc, r4, r2, lsl #12 - 484: 1e1f0200 cdpne 2, 1, cr0, cr15, cr0, {0} - 488: 00000000 andeq r0, r0, r0 - 48c: 00010000 andeq r0, r1, r0 - 490: 22b00000 adcscs r0, r0, #0 ; 0x0 - 494: 01510040 cmpeq r1, r0, asr #32 - 498: 0119d500 tsteq r9, r0, lsl #10 - 49c: 00020100 andeq r0, r2, r0, lsl #2 - 4a0: 6c117805 ldcvs 8, cr7, [r1], {5} - 4a4: 00000e29 andeq r0, r0, r9, lsr #28 - 4a8: 01010101 tsteq r1, r1, lsl #2 - 4ac: 00010001 andeq r0, r1, r1 - 4b0: 01010101 tsteq r1, r1, lsl #2 - 4b4: 000260d5 ldrdeq r6, [r2], -r5 - 4b8: 02020234 andeq r0, r2, #1073741827 ; 0x40000003 - 4bc: 0d0115a0 cfstr32eq mvfx1, [r1, #-640] - 4c0: 03030801 movweq r0, #14337 ; 0x3801 - 4c4: 2906159c stmdbcs r6, {r2, r3, r4, r7, r8, sl, ip} - 4c8: ba2e791b blt b9e93c - 4cc: 72061874 andvc r1, r6, #7602176 ; 0x740000 - 4d0: 06086329 streq r6, [r8], -r9, lsr #6 - 4d4: 3222020c eorcc r0, r2, #-1073741824 ; 0xc0000000 - 4d8: 07070a09 streq r0, [r7, -r9, lsl #20] - 4dc: 7e05b749 cdpvc 7, 0, cr11, cr5, cr9, {2} - 4e0: e7283306 str r3, [r8, -r6, lsl #6]! - 4e4: 4e3d030d cdpmi 3, 3, cr0, cr13, cr13, {0} - 4e8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 4ec: 290e6206 stmdbcs lr, {r1, r2, r9, sp, lr} - 4f0: fb367806 blx d9e512 - 4f4: 2e057c03 cdpcs 12, 0, cr7, cr5, cr3, {0} - 4f8: 35291f06 strcc r1, [r9, #-3846]! - 4fc: 62057a0a andvs r7, r5, #40960 ; 0xa000 - 500: 02039820 andeq r9, r3, #2097152 ; 0x200000 - 504: 5e067605 cfmadd32pl mvax0, mvfx7, mvfx6, mvfx5 - 508: 0009b25f andeq fp, r9, pc, asr r2 - 50c: 00010405 andeq r0, r1, r5, lsl #8 - 510: 0b081401 bleq 20551c - 514: 01516922 cmpeq r1, r2, lsr #18 - 518: 023ed518 eorseq sp, lr, #100663296 ; 0x6000000 - 51c: 03031300 movweq r1, #13056 ; 0x3300 - 520: 011bc302 tsteq fp, r2, lsl #6 - 524: 03081012 movweq r1, #32786 ; 0x8012 - 528: bf030404 svclt 0x00030404 - 52c: 032a151b teqeq sl, #113246208 ; 0x6c00000 - 530: 1a010501 bne 4193c - 534: 040a0948 streq r0, [sl], #-2376 - 538: 80330105 eorshi r0, r3, r5, lsl #2 - 53c: e62a7a05 strt r7, [sl], -r5, lsl #20 - 540: f93df93d undefined instruction 0xf93df93d - 544: 7d037d0a stcvc 13, cr7, [r3, #-40] - 548: 03291406 teqeq r9, #100663296 ; 0x6000000 - 54c: 0303020a movweq r0, #12810 ; 0x320a - 550: bd2e3d52 stclt 13, cr3, [lr, #-328]! - 554: 1d760a09 fldmdbsne r6!, {s1-s9} - 558: 00014fbc strheq r4, [r1], -ip - 55c: 24000200 strcs r0, [r0], #-512 - 560: 0200401c andeq r4, r0, #28 ; 0x1c - 564: 02000000 andeq r0, r0, #0 ; 0x0 - 568: 000011f3 strdeq r1, [r0], -r3 - 56c: 00106302 andseq r6, r0, r2, lsl #6 - 570: 00000000 andeq r0, r0, r0 - 574: 00000100 andeq r0, r0, r0, lsl #2 - 578: 4022b000 eormi fp, r2, r0 - 57c: 00015100 andeq r5, r1, r0, lsl #2 - 580: 000119d5 ldrdeq r1, [r1], -r5 - 584: 05000201 streq r0, [r0, #-513] - 588: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 58c: 0100000e tsteq r0, lr - 590: 01010101 tsteq r1, r1, lsl #2 - 594: 01000100 tsteq r0, r0, lsl #2 - 598: d5010101 strle r0, [r1, #-257] - 59c: 0002028e andeq r0, r2, lr, lsl #5 - 5a0: 020201ca andeq r0, r2, #-2147483598 ; 0x80000032 - 5a4: 0115bb03 tsteq r5, r3, lsl #22 - 5a8: 03080154 movweq r0, #33108 ; 0x8154 - 5ac: b7030704 strlt r0, [r3, -r4, lsl #14] - 5b0: 032a1515 teqeq sl, #88080384 ; 0x5400000 - 5b4: 06020505 streq r0, [r2], -r5, lsl #10 - 5b8: 05734402 ldrbeq r4, [r3, #-1026]! - 5bc: 05382606 ldreq r2, [r8, #-1542]! - 5c0: 4d000f7a stcmi 15, cr0, [r0, #-488] - 5c4: 05321811 ldreq r1, [r2, #-2065]! - 5c8: 0a442374 beq 11093a0 - 5cc: 0aad301d beq feb4c648 - 5d0: 2e1c2a03 fmscscs s4, s24, s6 - 5d4: 070a09bd undefined - 5d8: 030aa33e movweq sl, #41790 ; 0xa33e - 5dc: bb360206 bllt d80dfc - 5e0: 8e447b06 fmacdhi d23, d4, d6 - 5e4: 3e040a09 fmacscc s0, s8, s18 - 5e8: 06030af8 undefined - 5ec: 06bb3602 ldrteq r3, [fp], r2, lsl #12 - 5f0: 3ff1367a svccc 0x00f1367a - 5f4: 25030a4d strcs r0, [r3, #-2637] - 5f8: 094bf515 stmdbeq fp, {r0, r2, r4, r8, sl, ip, sp, lr, pc}^ - 5fc: 9c45020a sfmls f0, 2, [r5], {10} - 600: 3a497d66 bcc 125fba0 - 604: 07057803 streq r7, [r5, -r3, lsl #16] - 608: 7a0a0559 bvc 281b74 - 60c: 0603d23b undefined - 610: 1b4c7f05 blne 132022c - 614: 55030a09 strpl r0, [r3, #-2569] - 618: 455443e1 ldrbmi r4, [r4, #-993] - 61c: 037e0a47 cmneq lr, #290816 ; 0x47000 - 620: 4416067e ldrmi r0, [r6], #-1662 - 624: 020a093d andeq r0, sl, #999424 ; 0xf4000 - 628: da5f6506 ble 17d9a48 - 62c: b6360706 ldrtlt r0, [r6], -r6, lsl #14 - 630: 7f037f0a svcvc 0x00037f0a - 634: b17a0206 cmnlt sl, r6, lsl #4 - 638: d95f7506 ldmdble pc, {r1, r2, r8, sl, ip, sp, lr}^ - 63c: ab360206 blge d80e5c - 640: 4e3d020d cdpmi 2, 3, cr0, cr13, cr13, {0} - 644: 08170a09 ldmdaeq r7, {r0, r3, r9, fp} - 648: 0a06300c beq 18c680 - 64c: 49262112 stmdbmi r6!, {r1, r4, r8, sp} - 650: 1c7f62e9 lfmne f6, 2, [pc], #-932 - 654: 417d0ac5 cmnmi sp, r5, asr #21 - 658: 09893fb0 stmibeq r9, {r4, r5, r7, r8, r9, sl, fp, ip, sp} - 65c: fe38020a cdp2 2, 3, cr0, cr8, cr10, {0} - 660: 7f0a6235 svcvc 0x000a6235 - 664: 676f7f03 strbvs r7, [pc, -r3, lsl #30]! - 668: 082ff940 stmdaeq pc!, {r6, r8, fp, ip, sp, lr, pc} - 66c: 48030a09 stmdami r3, {r0, r3, r9, fp} - 670: 45544345 ldrbmi r4, [r4, #-837] - 674: 037e0a47 cmneq lr, #290816 ; 0x47000 - 678: 4416067e ldrmi r0, [r6], #-1662 - 67c: 5f65063d svcpl 0x0065063d - 680: 066c0ada undefined - 684: 090e291d stmdbeq lr, {r0, r2, r3, r4, r8, fp, sp} - 688: 7e067f0a cdpvc 15, 0, cr7, cr6, cr10, {0} - 68c: 02034452 andeq r4, r3, #1375731712 ; 0x52000000 - 690: 52880106 addpl r0, r8, #-2147483647 ; 0x80000001 - 694: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} - 698: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 69c: 160e5e06 strne r5, [lr], -r6, lsl #28 - 6a0: 04050009 streq r0, [r5], #-9 - 6a4: 15010001 strne r0, [r1, #-1] - 6a8: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} - 6ac: 00000172 andeq r0, r0, r2, ror r1 - 6b0: 1dbc0002 ldcne 0, cr0, [ip, #8]! - 6b4: 00020040 andeq r0, r2, r0, asr #32 - 6b8: 23020000 movwcs r0, #8192 ; 0x2000 - 6bc: 02000014 andeq r0, r0, #20 ; 0x14 - 6c0: 00001063 andeq r1, r0, r3, rrx - 6c4: 00000000 andeq r0, r0, r0 - 6c8: 00000001 andeq r0, r0, r1 - 6cc: 004022b0 strheq r2, [r0], #-32 - 6d0: d5000151 strle r0, [r0, #-337] - 6d4: 01000119 tsteq r0, r9, lsl r1 - 6d8: 78050002 stmdavc r5, {r1} - 6dc: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 6e0: 01010000 tsteq r1, r0 - 6e4: 00010101 andeq r0, r1, r1, lsl #2 - 6e8: 01010001 tsteq r1, r1 - 6ec: b1d50101 bicslt r0, r5, r1, lsl #2 - 6f0: f8000202 undefined instruction 0xf8000202 - 6f4: 04020201 streq r0, [r2], #-513 - 6f8: 62011691 andvs r1, r1, #152043520 ; 0x9100000 - 6fc: 04030801 streq r0, [r3], #-2049 - 700: 168d0307 strne r0, [sp], r7, lsl #6 - 704: 05032a15 streq r2, [r3, #-2581] - 708: 02060205 andeq r0, r6, #1342177280 ; 0x50000000 - 70c: 0605d636 undefined - 710: 7a053826 bvc 14e7b0 - 714: 114d000f cmpne sp, pc - 718: 785a3218 ldmdavc sl, {r3, r4, r9, ip, sp}^ - 71c: 77050203 strvc r0, [r5, -r3, lsl #4] - 720: 1f0afe13 svcne 0x000afe13 - 724: 4556ad30 ldrbmi sl, [r6, #-3376] - 728: 030a4548 movweq r4, #42312 ; 0xa548 - 72c: 41561e24 cmpmi r6, r4, lsr #28 - 730: 3e050a09 fmacscc s0, s10, s18 - 734: 06030aa3 streq r0, [r3], -r3, lsr #21 - 738: 06bb360a ldrteq r3, [fp], sl, lsl #12 - 73c: 09c85f73 stmibeq r8, {r0, r1, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ - 740: 5b31020a blpl c40f70 - 744: ab2d080a blge b42774 - 748: 8c5f030a mrrchi 3, 0, r0, pc, cr10 - 74c: 0a09afe7 beq 26c6f0 - 750: 7ff04602 svcvc 0x00f04602 - 754: 033a490f teqeq sl, #245760 ; 0x3c000 - 758: 66070577 undefined - 75c: 207a0aa2 rsbscs r0, sl, r2, lsr #21 - 760: 03020a98 movweq r0, #10904 ; 0x2a98 - 764: 217f0507 cmncs pc, r7, lsl #10 - 768: 7fac40f0 svcvc 0x00ac40f0 - 76c: 056603ae strbeq r0, [r6, #-942]! - 770: 5f020616 svcpl 0x00020616 - 774: 056e0aa9 strbeq r0, [lr, #-2729]! - 778: 037f397a cmneq pc, #1998848 ; 0x1e8000 - 77c: 7d760519 cfldr64vc mvdx0, [r6, #-100]! - 780: 030a09e9 movweq r0, #43497 ; 0xa9e9 - 784: 5643d011 undefined - 788: 7e0a4745 cdpvc 7, 0, cr4, cr10, cr5, {2} - 78c: 7d03030a stcvc 3, cr0, [r3, #-40] - 790: 3d441606 stclcc 6, cr1, [r4, #-24] - 794: 03020a09 movweq r0, #10761 ; 0x2a09 - 798: 5f650601 svcpl 0x00650601 - 79c: 290706da stmdbcs r7, {r1, r3, r4, r6, r7, r9, sl} - 7a0: 0a7f0a1a beq 1fc3010 - 7a4: 067f0316 undefined - 7a8: 09b17a02 ldmibeq r1!, {r1, r9, fp, ip, sp, lr} - 7ac: 8063150a rsbhi r1, r3, sl, lsl #10 - 7b0: d220170a eorle r1, r0, #2621440 ; 0x280000 - 7b4: 568b8657 pkhtbpl r8, fp, r7, asr #12 - 7b8: 7d0a3953 stcvc 9, cr3, [sl, #-332] - 7bc: ec31b041 ldc 0, cr11, [r1], #-260 - 7c0: 54020a09 strpl r0, [r2], #-2569 - 7c4: 0a623538 beq 188dcac - 7c8: 6f7f037f svcvs 0x007f037f - 7cc: 2ff94067 svccs 0x00f94067 - 7d0: 030a0908 movweq r0, #43272 ; 0xa908 - 7d4: 54434548 strbpl r4, [r3], #-1352 - 7d8: 7e0a4745 cdpvc 7, 0, cr4, cr10, cr5, {2} - 7dc: 16067e03 strne r7, [r6], -r3, lsl #28 - 7e0: 0a093d44 beq 24fcf8 - 7e4: 5f650602 svcpl 0x00650602 - 7e8: 360706da undefined - 7ec: 037f0ab6 cmneq pc, #745472 ; 0xb6000 - 7f0: 7a02067f bvc 821f4 - 7f4: 527506b1 rsbspl r0, r5, #185597952 ; 0xb100000 - 7f8: 4402063c strmi r0, [r2], #-1596 - 7fc: 3d020d48 stccc 13, cr0, [r2, #-288] - 800: 300c084e andcc r0, ip, lr, asr #16 - 804: 05000906 streq r0, [r0, #-2310] - 808: 01000104 tsteq r0, r4, lsl #2 - 80c: 220b0816 andcs r0, fp, #1441792 ; 0x160000 - 810: 08bf2469 ldmeq pc!, {r0, r3, r5, r6, sl, sp} - 814: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 818: 0906300c stmdbeq r6, {r2, r3, ip, sp} - 81c: 60067c0a andvs r7, r6, sl, lsl #24 - 820: 0128160e teqeq r8, lr, lsl #12 - 824: 00020000 andeq r0, r2, r0 - 828: 00401fac subeq r1, r0, ip, lsr #31 - 82c: 00000006 andeq r0, r0, r6 - 830: 00169302 andseq r9, r6, r2, lsl #6 - 834: 84810100 strhi r0, [r1], #256 - 838: 0e020000 cdpeq 0, 0, cr0, cr2, cr0, {0} - 83c: 02000026 andeq r0, r0, #38 ; 0x26 - 840: 000026ee andeq r2, r0, lr, ror #13 - 844: 00837d01 addeq r7, r3, r1, lsl #26 - 848: 84350100 ldrthi r0, [r5], #-256 - 84c: 00000000 andeq r0, r0, r0 - 850: 00010000 andeq r0, r1, r0 - 854: 20440000 subcs r0, r4, r0 - 858: 01510040 cmpeq r1, r0, asr #32 - 85c: 0119d500 tsteq r9, r0, lsl #10 - 860: 00020100 andeq r0, r2, r0, lsl #2 - 864: 6c117805 ldcvs 8, cr7, [r1], {5} - 868: 00000e29 andeq r0, r0, r9, lsr #28 - 86c: 01010101 tsteq r1, r1, lsl #2 - 870: 00010001 andeq r0, r1, r1 - 874: 01010101 tsteq r1, r1, lsl #2 - 878: 000258d5 ldrdeq r5, [r2], -r5 - 87c: 06020228 streq r0, [r2], -r8, lsr #4 - 880: 0a0117c0 beq 46788 - 884: 0403080d streq r0, [r3], #-2061 - 888: 17bc0301 ldrne r0, [ip, r1, lsl #6]! - 88c: 0e062a15 mcreq 10, 0, r2, cr6, cr5, {0} - 890: f83fb736 undefined instruction 0xf83fb736 - 894: b12f020d teqlt pc, sp, lsl #4 - 898: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 89c: 290e7906 stmdbcs lr, {r1, r2, r8, fp, ip, sp, lr} - 8a0: 030c0608 movweq r0, #50696 ; 0xc608 - 8a4: 08067714 stmdaeq r6, {r2, r4, r8, r9, sl, ip, sp, lr} - 8a8: 020d93a3 andeq r9, sp, #-1946157054 ; 0x8c000002 - 8ac: 0c08b12f stfeqd f3, [r8], {47} - 8b0: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 8b4: b12f0408 teqlt pc, r8, lsl #8 - 8b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 8bc: 0608290e streq r2, [r8], -lr, lsl #18 - 8c0: 7714040c ldrvc r0, [r4, -ip, lsl #8] - 8c4: 0009f19a muleq r9, sl, r1 - 8c8: 00010405 andeq r0, r1, r5, lsl #8 - 8cc: 0b081001 bleq 2048d8 - 8d0: 0151cc14 cmpeq r1, r4, lsl ip - 8d4: 0233d512 eorseq sp, r3, #75497472 ; 0x4800000 - 8d8: 03040a00 movweq r0, #18944 ; 0x4a00 - 8dc: 011ac206 tsteq sl, r6, lsl #4 - 8e0: 03080113 movweq r0, #33043 ; 0x8113 - 8e4: be030104 adflts f0, f3, f4 - 8e8: 032a151a teqeq sl, #109051904 ; 0x6800000 - 8ec: 1b35060a blne d4211c - 8f0: 3d050d88 stccc 13, cr0, [r5, #-544] - 8f4: 300c084e andcc r0, ip, lr, asr #16 - 8f8: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} - 8fc: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 900: 0906300c stmdbeq r6, {r2, r3, ip, sp} - 904: 4c06780a stcmi 8, cr7, [r6], {10} - 908: 0151180e cmpeq r1, lr, lsl #16 - 90c: 023fd536 eorseq sp, pc, #226492416 ; 0xd800000 - 910: 03050a00 movweq r0, #23040 ; 0x5a00 - 914: 011a8506 tsteq sl, r6, lsl #10 - 918: 03080111 movweq r0, #33041 ; 0x8111 - 91c: 81030104 tsthi r3, r4, lsl #2 - 920: 032a151a teqeq sl, #109051904 ; 0x6800000 - 924: 1b3d0609 blne f42150 - 928: 3d060d88 stccc 13, cr0, [r6, #-544] - 92c: 300c084e andcc r0, ip, lr, asr #16 - 930: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} - 934: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 938: 0906300c stmdbeq r6, {r2, r3, ip, sp} - 93c: 4406780a strmi r7, [r6], #-2058 - 940: 0009170e andeq r1, r9, lr, lsl #14 - 944: 00010405 andeq r0, r1, r5, lsl #8 - 948: 0b081001 bleq 204954 - 94c: 011ecc14 tsteq lr, r4, lsl ip - 950: 00020000 andeq r0, r2, r0 - 954: 00401ffc strdeq r1, [r0], #-252 - 958: 00000006 andeq r0, r0, r6 - 95c: 0017d702 andseq sp, r7, r2, lsl #14 - 960: 84810100 strhi r0, [r1], #256 - 964: 0e020000 cdpeq 0, 0, cr0, cr2, cr0, {0} - 968: 02000026 andeq r0, r0, #38 ; 0x26 - 96c: 000026ee andeq r2, r0, lr, ror #13 - 970: 00837d01 addeq r7, r3, r1, lsl #26 - 974: 84350100 ldrthi r0, [r5], #-256 - 978: 00000000 andeq r0, r0, r0 - 97c: 00010000 andeq r0, r1, r0 - 980: 20440000 subcs r0, r4, r0 - 984: 01510040 cmpeq r1, r0, asr #32 - 988: 0119d500 tsteq r9, r0, lsl #10 - 98c: 00020100 andeq r0, r2, r0, lsl #2 - 990: 6c117805 ldcvs 8, cr7, [r1], {5} - 994: 00000e29 andeq r0, r0, r9, lsr #28 - 998: 01010101 tsteq r1, r1, lsl #2 - 99c: 00010001 andeq r0, r1, r1 - 9a0: 01010101 tsteq r1, r1, lsl #2 - 9a4: 00025ad5 ldrdeq r5, [r2], -r5 - 9a8: 07020224 streq r0, [r2, -r4, lsr #4] - 9ac: 0a0117dc beq 46924 - 9b0: 0403080d streq r0, [r3], #-2061 - 9b4: 17d80301 ldrbne r0, [r8, r1, lsl #6] - 9b8: 0e062a15 mcreq 10, 0, r2, cr6, cr5, {0} - 9bc: f93eb736 undefined instruction 0xf93eb736 - 9c0: 1422020d strtne r0, [r2], #-525 - 9c4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 9c8: 0408cc15 streq ip, [r8], #-3093 - 9cc: 0c08b12f stfeqd f3, [r8], {47} - 9d0: 7a060630 bvc 182298 - 9d4: 0608290e streq r2, [r8], -lr, lsl #18 - 9d8: 7714030c ldrvc r0, [r4, -ip, lsl #6] - 9dc: 0608439e undefined - 9e0: 7714040c ldrvc r0, [r4, -ip, lsl #8] - 9e4: 93a30506 undefined instruction 0x93a30506 - 9e8: b12f020d teqlt pc, sp, lsl #4 - 9ec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 9f0: 290e7906 stmdbcs lr, {r1, r2, r8, fp, ip, sp, lr} - 9f4: 04050009 streq r0, [r5], #-9 - 9f8: 11010001 tstne r1, r1 - 9fc: cc140b08 ldcgt 11, cr0, [r4], {8} - a00: d5180151 ldrle r0, [r8, #-337] - a04: 0a000233 beq 12d8 <__USR_stack_size+0xad8> - a08: c2070304 andgt r0, r7, #268435456 ; 0x10000000 - a0c: 0113011a tsteq r3, sl, lsl r1 - a10: 01040308 tsteq r4, r8, lsl #6 - a14: 151abe03 ldrne fp, [sl, #-3587] - a18: 060a032a streq r0, [sl], -sl, lsr #6 - a1c: 0d881b35 vstreq d1, [r8, #212] - a20: 084e3d05 stmdaeq lr, {r0, r2, r8, sl, fp, ip, sp}^ - a24: 1506300c strne r3, [r6, #-12] - a28: 3d040822 stccc 8, cr0, [r4, #-136] - a2c: 300c084e andcc r0, ip, lr, asr #16 - a30: 780a0906 stmdavc sl, {r1, r2, r8, fp} - a34: 180e4c06 stmdane lr, {r1, r2, sl, fp, lr} - a38: d52c0151 strle r0, [ip, #-337]! - a3c: 0a000233 beq 1310 <__USR_stack_size+0xb10> - a40: 85070305 strhi r0, [r7, #-773] - a44: 0111011a tsteq r1, sl, lsl r1 - a48: 01040308 tsteq r4, r8, lsl #6 - a4c: 151a8103 ldrne r8, [sl, #-259] - a50: 0609032a streq r0, [r9], -sl, lsr #6 - a54: 0d881b3d vstreq d1, [r8, #244] - a58: 084e3d06 stmdaeq lr, {r1, r2, r8, sl, fp, ip, sp}^ - a5c: 1506300c strne r3, [r6, #-12] - a60: 3d040822 stccc 8, cr0, [r4, #-136] - a64: 300c084e andcc r0, ip, lr, asr #16 - a68: 780a0906 stmdavc sl, {r1, r2, r8, fp} - a6c: 170e4406 strne r4, [lr, -r6, lsl #8] - a70: 00000153 andeq r0, r0, r3, asr r1 - a74: 20440001 subcs r0, r4, r1 - a78: 00060040 andeq r0, r6, r0, asr #32 - a7c: d7020000 strle r0, [r2, -r0] - a80: 01000017 tsteq r0, r7, lsl r0 - a84: 00403da9 subeq r3, r0, r9, lsr #27 - a88: 00848101 addeq r8, r4, r1, lsl #2 - a8c: 00000100 andeq r0, r0, r0, lsl #2 - a90: 93020000 movwls r0, #8192 ; 0x2000 - a94: 01000016 tsteq r0, r6, lsl r0 - a98: 0000837d andeq r8, r0, sp, ror r3 - a9c: 00000000 andeq r0, r0, r0 - aa0: d5000151 strle r0, [r0, #-337] - aa4: 01000119 tsteq r0, r9, lsl r1 - aa8: 78050002 stmdavc r5, {r1} - aac: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - ab0: 01010000 tsteq r1, r0 - ab4: 00010101 andeq r0, r1, r1, lsl #2 - ab8: 01010001 tsteq r1, r1 - abc: 49d50101 ldmibmi r5, {r0, r8}^ - ac0: 021e0002 andseq r0, lr, #2 ; 0x2 - ac4: 17e61100 strbne r1, [r6, r0, lsl #2]! - ac8: 08010603 stmdaeq r1, {r0, r1, r9, sl} - acc: 17e2030a strbne r0, [r2, sl, lsl #6]! - ad0: 020d3019 andeq r3, sp, #25 ; 0x19 - ad4: 0c081422 cfstrseq mvf1, [r8], {34} - ad8: 0b060630 bleq 1823a0 - adc: 030d711b movweq r7, #53531 ; 0xd11b - ae0: 0c08b12f stfeqd f3, [r8], {47} - ae4: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - ae8: b12f0408 teqlt pc, r8, lsl #8 - aec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - af0: 290e7506 stmdbcs lr, {r1, r2, r8, sl, ip, sp, lr} - af4: 040c0608 streq r0, [ip], #-1544 - af8: 28b97714 ldmcs r9!, {r2, r4, r8, r9, sl, ip, sp, lr} - afc: 1422020d strtne r0, [r2], #-525 - b00: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - b04: 11710a09 cmnne r1, r9, lsl #20 - b08: 0001511d andeq r5, r1, sp, lsl r1 - b0c: 000249d5 ldrdeq r4, [r2], -r5 - b10: 1000061e andne r0, r0, lr, lsl r6 - b14: 050317ca streq r1, [r3, #-1994] - b18: 030a0801 movweq r0, #43009 ; 0xa801 - b1c: 301917c6 andscc r1, r9, r6, asr #15 - b20: 1422020d strtne r0, [r2], #-525 - b24: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - b28: 711b0b06 tstvc fp, r6, lsl #22 - b2c: b12f030d teqlt pc, sp, lsl #6 - b30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - b34: 04082215 streq r2, [r8], #-533 - b38: 0c08b12f stfeqd f3, [r8], {47} - b3c: 75060630 strvc r0, [r6, #-1584] - b40: 0608290e streq r2, [r8], -lr, lsl #18 - b44: 7714040c ldrvc r0, [r4, -ip, lsl #8] - b48: 020d28b9 andeq r2, sp, #12124160 ; 0xb90000 - b4c: 0c081422 cfstrseq mvf1, [r8], {34} - b50: 0a090630 beq 242418 - b54: 511c1171 tstpl ip, r1, ror r1 - b58: 33d51601 bicscc r1, r5, #1048576 ; 0x100000 - b5c: 050c0002 streq r0, [ip, #-2] - b60: 1aa31001 bne fe8c4b6c - b64: 08011201 stmdaeq r1, {r0, r9, ip} - b68: 03010403 movweq r0, #5123 ; 0x1403 - b6c: 2a151a9f bcs 5475f0 - b70: 36060903 strcc r0, [r6], -r3, lsl #18 - b74: 060d881b undefined - b78: 0c08eb4a stceq 11, cr14, [r8], {74} - b7c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - b80: eb4a0408 bl 1281ba8 - b84: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - b88: 06780a09 ldrbteq r0, [r8], -r9, lsl #20 - b8c: 51180e4b tstpl r8, fp, asr #28 - b90: 33d51601 bicscc r1, r5, #1048576 ; 0x100000 - b94: 050c0002 streq r0, [ip, #-2] - b98: 1aa31101 bne fe8c4fa4 - b9c: 08011201 stmdaeq r1, {r0, r9, ip} - ba0: 03010403 movweq r0, #5123 ; 0x1403 - ba4: 2a151a9f bcs 547628 - ba8: 36060903 strcc r0, [r6], -r3, lsl #18 - bac: 060d881b undefined - bb0: 0c08eb4a stceq 11, cr14, [r8], {74} - bb4: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - bb8: eb4a0408 bl 1281be0 - bbc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - bc0: 06780a09 ldrbteq r0, [r8], -r9, lsl #20 - bc4: 5d180e4b ldcpl 14, cr0, [r8, #-300] - bc8: 01000000 tsteq r0, r0 - bcc: 40208400 eormi r8, r0, r0, lsl #8 - bd0: 00000100 andeq r0, r0, r0, lsl #2 - bd4: 19e70200 stmibne r7!, {r9}^ - bd8: 00000000 andeq r0, r0, r0 - bdc: 01510000 cmpeq r1, r0 - be0: 0119d500 tsteq r9, r0, lsl #10 - be4: 00020100 andeq r0, r2, r0, lsl #2 - be8: 6c117805 ldcvs 8, cr7, [r1], {5} - bec: 00000e29 andeq r0, r0, r9, lsr #28 - bf0: 01010101 tsteq r1, r1, lsl #2 - bf4: 00010001 andeq r0, r1, r1 - bf8: 01010101 tsteq r1, r1, lsl #2 - bfc: 00022ad5 ldrdeq r2, [r2], -r5 - c00: 08020210 stmdaeq r2, {r4, r9} - c04: 0c0117fb stceq 7, cr1, [r1], {251} - c08: 04030811 streq r0, [r3], #-2065 - c0c: 17f70301 ldrbne r0, [r7, r1, lsl #6]! - c10: 0e062a15 mcreq 10, 0, r2, cr6, cr5, {0} - c14: 030a7d1b movweq r7, #44315 ; 0xad1b - c18: 0d35fd3a ldceq 13, cr15, [r5, #-232]! - c1c: 067b0a09 ldrbteq r0, [fp], -r9, lsl #20 - c20: 0963297a stmdbeq r3!, {r1, r3, r4, r5, r6, r8, fp, sp}^ - c24: 5f307a0a svcpl 0x00307a0a - c28: 00000064 andeq r0, r0, r4, rrx - c2c: 20a40001 adccs r0, r4, r1 - c30: 00020040 andeq r0, r2, r0, asr #32 - c34: f7020000 undefined instruction 0xf7020000 - c38: 0100001a tsteq r0, sl, lsl r0 - c3c: 00008481 andeq r8, r0, r1, lsl #9 - c40: 00000000 andeq r0, r0, r0 - c44: d5000151 strle r0, [r0, #-337] - c48: 01000119 tsteq r0, r9, lsl r1 - c4c: 78050002 stmdavc r5, {r1} - c50: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - c54: 01010000 tsteq r1, r0 - c58: 00010101 andeq r0, r1, r1, lsl #2 - c5c: 01010001 tsteq r1, r1 - c60: 2cd50101 ldfcse f0, [r5], {1} - c64: 020b0002 andeq r0, fp, #2 ; 0x2 - c68: 18b20a02 ldmne r2!, {r1, r9, fp} - c6c: 08010501 stmdaeq r1, {r0, r8, sl} - c70: 03010403 movweq r0, #5123 ; 0x1403 - c74: 2a1518ae bcs 546f34 - c78: 2900c206 stmdbcs r0, {r1, r2, r9, lr, pc} - c7c: 446e0624 strbtmi r0, [lr], #-1572 - c80: 22020d9d andcs r0, r2, #10048 ; 0x2740 - c84: 300c0814 andcc r0, ip, r4, lsl r8 - c88: 7a0a0906 bvc 2830a8 - c8c: 150e6506 strne r6, [lr, #-1286] - c90: 000002a9 andeq r0, r0, r9, lsr #5 - c94: 20ba0002 adcscs r0, sl, r2 - c98: 00080040 andeq r0, r8, r0, asr #32 - c9c: 2f020000 svccs 0x00020000 - ca0: 0200001c andeq r0, r0, #28 ; 0x1c - ca4: 00001693 muleq r0, r3, r6 - ca8: 0027da02 eoreq sp, r7, r2, lsl #20 - cac: 17d70200 ldrbne r0, [r7, r0, lsl #4] - cb0: 81010000 tsthi r1, r0 - cb4: 01000084 smlabbeq r0, r4, r0, r0 - cb8: 00403da9 subeq r3, r0, r9, lsr #27 - cbc: 0028d202 eoreq sp, r8, r2, lsl #4 - cc0: 84610100 strbthi r0, [r1], #-256 - cc4: 00000000 andeq r0, r0, r0 - cc8: 00010000 andeq r0, r1, r0 - ccc: 22ac0000 adccs r0, ip, #0 ; 0x0 - cd0: 01510040 cmpeq r1, r0, asr #32 - cd4: 0119d500 tsteq r9, r0, lsl #10 - cd8: 00020100 andeq r0, r2, r0, lsl #2 - cdc: 6c117805 ldcvs 8, cr7, [r1], {5} - ce0: 00000e29 andeq r0, r0, r9, lsr #28 - ce4: 01010101 tsteq r1, r1, lsl #2 - ce8: 00010001 andeq r0, r1, r1 - cec: 01010101 tsteq r1, r1, lsl #2 - cf0: 0201bcd5 andeq fp, r1, #54528 ; 0xd500 - cf4: 02019400 andeq r9, r1, #0 ; 0x0 - cf8: 18c40b02 stmiane r4, {r1, r8, r9, fp}^ - cfc: 08302001 ldmdaeq r0!, {r0, sp} - d00: 03010403 movweq r0, #5123 ; 0x1403 - d04: 2a1518c0 bcs 54700c - d08: 0103260a tsteq r3, sl, lsl #12 - d0c: f2512e06 vceq.f d18, d1, d6 - d10: 6b060103 blvs 181124 - d14: b42dda5f strtlt sp, [sp], #-2655 - d18: ac361206 lfmge f1, 4, [r6], #-24 - d1c: 1422020d strtne r0, [r2], #-525 - d20: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - d24: 0408cc15 streq ip, [r8], #-3093 - d28: 0c08eb4a stceq 11, cr14, [r8], {74} - d2c: 0b060630 bleq 1825f4 - d30: 0408711b streq r7, [r8], #-283 - d34: 0c082566 cfstr32eq mvfx2, [r8], {102} - d38: 503c0630 eorspl r0, ip, r0, lsr r6 - d3c: 77140408 ldrvc r0, [r4, -r8, lsl #8] - d40: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - d44: 2a0e5506 bcs 396164 - d48: 030c0608 movweq r0, #50696 ; 0xc608 - d4c: 14029a14 strne r9, [r2], #-2580 - d50: 06086cfc undefined - d54: 12069a14 andne r9, r6, #81920 ; 0x14000 - d58: 1ff51e02 svcne 0x00f51e02 - d5c: 1422020d strtne r0, [r2], #-525 - d60: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - d64: 0408cc15 streq ip, [r8], #-3093 - d68: 0c08b12f stfeqd f3, [r8], {47} - d6c: 0b060630 bleq 182634 - d70: 0408711b streq r7, [r8], #-283 - d74: 0c08b12f stfeqd f3, [r8], {47} - d78: 79130630 ldmdbvc r3, {r4, r5, r9, sl} - d7c: 14220408 strtne r0, [r2], #-1032 - d80: 0c08050a cfstr32eq mvfx0, [r8], {10} - d84: 55060630 strpl r0, [r6, #-1584] - d88: 07069e44 streq r9, [r6, -r4, asr #28] - d8c: 040d7c1b streq r7, [sp], #-3099 - d90: 0a094e3d beq 25468c - d94: 300c0804 andcc r0, ip, r4, lsl #16 - d98: 08172306 ldmdaeq r7, {r1, r2, r8, r9, sp} - d9c: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} - da0: 0906300c stmdbeq r6, {r2, r3, ip, sp} - da4: 01040500 tsteq r4, r0, lsl #10 - da8: 08170100 ldmdaeq r7, {r8} - dac: 51cc140b bicpl r1, ip, fp, lsl #8 - db0: 7fd54801 svcvc 0x00d54801 - db4: 04250002 strteq r0, [r5], #-2 - db8: 1afa0b03 bne ffe839cc - dbc: 08150c01 ldmdaeq r5, {r0, sl, fp} - dc0: 03010403 movweq r0, #5123 ; 0x1403 - dc4: 2a151af6 bcs 5479a4 - dc8: 7d1b1206 lfmvc f1, 4, [fp, #-24] - dcc: b12f050d teqlt pc, sp, lsl #10 - dd0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - dd4: 0408cc15 streq ip, [r8], #-3093 - dd8: 0c08b12f stfeqd f3, [r8], {47} - ddc: 79060630 stmdbvc r6, {r4, r5, r9, sl} - de0: 060d290e streq r2, [sp], -lr, lsl #18 - de4: 0c081422 cfstrseq mvf1, [r8], {34} - de8: 09060630 stmdbeq r6, {r4, r5, r9, sl} - dec: 050d711b streq r7, [sp, #-283] - df0: 0c08b12f stfeqd f3, [r8], {47} - df4: 79060630 stmdbvc r6, {r4, r5, r9, sl} - df8: 060d290e streq r2, [sp], -lr, lsl #18 - dfc: 0c081422 cfstrseq mvf1, [r8], {34} - e00: 73190630 tstvc r9, #50331648 ; 0x3000000 - e04: 070c0608 streq r0, [ip, -r8, lsl #12] - e08: 9f140605 svcls 0x00140605 - e0c: 87877a05 strhi r7, [r7, r5, lsl #20] - e10: b12f050d teqlt pc, sp, lsl #10 - e14: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - e18: 04082215 streq r2, [r8], #-533 - e1c: 0c08b12f stfeqd f3, [r8], {47} - e20: 77060630 smladxvc r6, r0, r6, r0 - e24: 060d290e streq r2, [sp], -lr, lsl #18 - e28: 0c081422 cfstrseq mvf1, [r8], {34} - e2c: 0a090630 beq 2426f4 - e30: 51ca1764 bicpl r1, sl, r4, ror #14 - e34: 3dd56c01 ldclcc 12, cr6, [r5, #4] - e38: 08080002 stmdaeq r8, {r1} - e3c: 1b950b03 blne fe543a50 - e40: 08172001 ldmdaeq r7, {r0, sp} - e44: 03010403 movweq r0, #5123 ; 0x1403 - e48: 2a151b91 bcs 547c94 - e4c: 0e060b05 fmacdeq d0, d6, d5 - e50: 13039a1b movwne r9, #14875 ; 0x3a1b - e54: 4f187905 svcmi 0x00187905 - e58: b12f080d teqlt pc, sp, lsl #16 - e5c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - e60: 2710c819 undefined - e64: b12f0408 teqlt pc, r8, lsl #8 - e68: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - e6c: 0a091d1a beq 2482dc - e70: 0e6e0675 mcreq 6, 3, r0, cr14, cr5, {3} - e74: 9201512c andls r5, r1, #11 ; 0xb - e78: 027fd501 rsbseq sp, pc, #4194304 ; 0x400000 - e7c: 03042900 movweq r2, #18688 ; 0x4900 - e80: 011afa0b tstpeq sl, fp, lsl #20 - e84: 0308150c movweq r1, #34060 ; 0x850c - e88: f6030104 undefined instruction 0xf6030104 - e8c: 062a151a undefined - e90: 0d7d1b12 vldmdbeq sp!, {d17-d25} - e94: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} - e98: 1506300c strne r3, [r6, #-12] - e9c: 2f0408cc svccs 0x000408cc - ea0: 300c08b1 strhcc r0, [ip], -r1 - ea4: 0e790606 cdpeq 6, 7, cr0, cr9, cr6, {0} - ea8: 22060d29 andcs r0, r6, #2624 ; 0xa40 - eac: 300c0814 andcc r0, ip, r4, lsl r8 - eb0: 1b090606 blne 2426d0 - eb4: 2f050d71 svccs 0x00050d71 - eb8: 300c08b1 strhcc r0, [ip], -r1 - ebc: 0e790606 cdpeq 6, 7, cr0, cr9, cr6, {0} - ec0: 22060d29 andcs r0, r6, #2624 ; 0xa40 - ec4: 300c0814 andcc r0, ip, r4, lsl r8 - ec8: 08731906 ldmdaeq r3!, {r1, r2, r8, fp, ip}^ - ecc: 05070c06 streq r0, [r7, #-3078] - ed0: 059f1406 ldreq r1, [pc, #1030] ; 12de <__USR_stack_size+0xade> - ed4: 0dfbbd7a ldcleq 13, cr11, [fp, #488]! - ed8: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} - edc: 1506300c strne r3, [r6, #-12] - ee0: 2f040822 svccs 0x00040822 - ee4: 300c08b1 strhcc r0, [ip], -r1 - ee8: 0e770606 cdpeq 6, 7, cr0, cr7, cr6, {0} - eec: 22060d29 andcs r0, r6, #2624 ; 0xa40 - ef0: 300c0814 andcc r0, ip, r4, lsl r8 - ef4: 640a0906 strvs r0, [sl], #-2310 - ef8: 0151ca17 cmpeq r1, r7, lsl sl - efc: 3dd501b6 ldfcce f0, [r5, #728] - f00: 080c0002 stmdaeq ip, {r1} - f04: 1b950b03 blne fe543b18 - f08: 08172001 ldmdaeq r7, {r0, sp} - f0c: 03010403 movweq r0, #5123 ; 0x1403 - f10: 2a151b91 bcs 547d5c - f14: 0e060b05 fmacdeq d0, d6, d5 - f18: 13039a1b movwne r9, #14875 ; 0x3a1b - f1c: 4f187905 svcmi 0x00187905 - f20: b12f080d teqlt pc, sp, lsl #16 - f24: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - f28: 9b46c819 blls 11b2f94 - f2c: b12f0408 teqlt pc, r8, lsl #8 - f30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - f34: 0a091d1a beq 2483a4 - f38: 0e6e0675 mcreq 6, 3, r0, cr14, cr5, {3} - f3c: 00011e2c andeq r1, r1, ip, lsr #28 - f40: e4000200 str r0, [r0], #-512 - f44: 04004021 streq r4, [r0], #-33 - f48: 02000000 andeq r0, r0, #0 ; 0x0 - f4c: 00001e1f andeq r1, r0, pc, lsl lr - f50: 0017d702 andseq sp, r7, r2, lsl #14 - f54: 29da0200 ldmibcs sl, {r9}^ - f58: 93020000 movwls r0, #8192 ; 0x2000 - f5c: 00000016 andeq r0, r0, r6, lsl r0 - f60: 01000000 tsteq r0, r0 - f64: ac000000 stcge 0, cr0, [r0], {0} - f68: 51004022 tstpl r0, r2, lsr #32 - f6c: 19d50001 ldmibne r5, {r0}^ - f70: 02010001 andeq r0, r1, #1 ; 0x1 - f74: 11780500 cmnne r8, r0, lsl #10 - f78: 000e296c andeq r2, lr, ip, ror #18 - f7c: 01010100 tsteq r1, r0, lsl #2 - f80: 01000101 tsteq r0, r1, lsl #2 - f84: 01010100 tsteq r1, r0, lsl #2 - f88: 0180d501 orreq sp, r0, r1, lsl #10 - f8c: 02640002 rsbeq r0, r4, #2 ; 0x2 - f90: 18f40c02 ldmne r4!, {r1, sl, fp}^ - f94: 08102401 ldmdaeq r0, {r0, sl, sp} - f98: 03010403 movweq r0, #5123 ; 0x1403 - f9c: 2a1518f0 bcs 547364 - fa0: 06060305 streq r0, [r6], -r5, lsl #6 - fa4: 0f0a7144 svceq 0x000a7144 - fa8: 11067f05 tstne r6, r5, lsl #30 - fac: 0a094c1b beq 254020 - fb0: 06010308 streq r0, [r1], -r8, lsl #6 - fb4: 06da5f7d undefined - fb8: ab360705 blge d82bd4 - fbc: 84061203 strhi r1, [r6], #-515 - fc0: 0d881b01 vstreq d1, [r8, #4] - fc4: 08c27302 stmiaeq r2, {r1, r8, r9, ip, sp, lr}^ - fc8: 0306300c movweq r3, #24588 ; 0x600c - fcc: 7efc067a mrcvc 6, 7, r0, cr12, cr10, {3} - fd0: 7b0a320e blvc 28d810 - fd4: 7d030204 sfmvc f0, 4, [r3, #-16] - fd8: 070335ab streq r3, [r3, -fp, lsr #11] - fdc: e8e76106 stmia r7!, {r1, r2, r8, sp, lr}^ - fe0: 6e03060a cfmadd32vs mvax0, mvfx0, mvfx3, mvfx10 - fe4: 142e5d24 strtne r5, [lr], #-3364 - fe8: 06084844 streq r4, [r8], -r4, asr #16 - fec: 7714030c ldrvc r0, [r4, -ip, lsl #6] - ff0: 09e75007 stmibeq r7!, {r0, r1, r2, ip, lr}^ - ff4: 6e06790a cdpvs 9, 0, cr7, cr6, cr10, {0} - ff8: 0a08746d beq 21e1b4 - ffc: a4327a03 ldrtge r7, [r2], #-2563 - 1000: 04050009 streq r0, [r5], #-9 - 1004: 18010001 stmdane r1, {r0} - 1008: cc140b08 ldcgt 11, cr0, [r4], {8} - 100c: 018c0151 orreq r0, ip, r1, asr r1 - 1010: 00024dd5 ldrdeq r4, [r2], -r5 - 1014: 0c030415 cfstrseq mvf0, [r3], {21} - 1018: 0b011ae2 bleq 47ba8 - 101c: 04030801 streq r0, [r3], #-2049 - 1020: 1ade0301 bne ff781c2c - 1024: 01032a15 tsteq r3, r5, lsl sl - 1028: 7e1b0506 cfmul32vc mvfx0, mvfx11, mvfx6 - 102c: 721b0b06 andsvc r0, fp, #6144 ; 0x1800 - 1030: 1422040d strtne r0, [r2], #-1037 - 1034: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1038: 0408cc15 streq ip, [r8], #-3093 - 103c: 0c082566 cfstr32eq mvfx2, [r8], {102} - 1040: 0b060630 bleq 182908 - 1044: 0408711b streq r7, [r8], #-283 - 1048: 0c08b12f stfeqd f3, [r8], {47} - 104c: 79130630 ldmdbvc r3, {r4, r5, r9, sl} - 1050: eb4a0408 bl 1282078 - 1054: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1058: 06710a09 ldrbteq r0, [r1], -r9, lsl #20 - 105c: b11f0e42 tstlt pc, r2, asr #28 - 1060: 02000000 andeq r0, r0, #0 ; 0x0 - 1064: 4022ac00 eormi sl, r2, r0, lsl #24 - 1068: 00000300 andeq r0, r0, r0, lsl #6 - 106c: 23930200 orrscs r0, r3, #0 ; 0x0 - 1070: 1f020000 svcne 0x00020000 - 1074: 0200001e andeq r0, r0, #30 ; 0x1e - 1078: 00001c2f andeq r1, r0, pc, lsr #24 - 107c: 00000000 andeq r0, r0, r0 - 1080: 00000001 andeq r0, r0, r1 - 1084: 004022b0 strheq r2, [r0], #-32 - 1088: d5000151 strle r0, [r0, #-337] - 108c: 01000119 tsteq r0, r9, lsl r1 - 1090: 78050002 stmdavc r5, {r1} - 1094: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 1098: 01010000 tsteq r1, r0 - 109c: 00010101 andeq r0, r1, r1, lsl #2 - 10a0: 01010001 tsteq r1, r1 - 10a4: 22d50101 sbcscs r0, r5, #1073741824 ; 0x40000000 - 10a8: 02020002 andeq r0, r2, #2 ; 0x2 - 10ac: 1bed1900 blne ffb474b4 - 10b0: 08170010 ldmdaeq r7, {r4} - 10b4: 1be9030a blne ffa41ce4 - 10b8: 03060805 movweq r0, #26629 ; 0x6805 - 10bc: 00099c1b andeq r9, r9, fp, lsl ip - 10c0: 00010405 andeq r0, r1, r5, lsl #8 - 10c4: 0b081c01 bleq 2080d0 - 10c8: 01510630 cmpeq r1, r0, lsr r6 - 10cc: 0220d500 eoreq sp, r0, #0 ; 0x0 - 10d0: 00030200 andeq r0, r3, r0, lsl #4 - 10d4: 03198618 tsteq r9, #25165824 ; 0x1800000 - 10d8: 0a081600 beq 2068e0 - 10dc: 06198203 ldreq r8, [r9], -r3, lsl #4 - 10e0: 09831b02 stmibeq r3, {r1, r8, r9, fp, ip} - 10e4: 01040500 tsteq r4, r0, lsl #10 - 10e8: 081b0100 ldmdaeq fp, {r8} - 10ec: 5106300b tstpl r6, fp - 10f0: 20d50001 sbcscs r0, r5, r1 - 10f4: 04020002 streq r0, [r2], #-2 - 10f8: 18e41700 stmiane r4!, {r8, r9, sl, ip}^ - 10fc: 08300005 ldmdaeq r0!, {r0, r2} - 1100: 18e0030a stmiane r0!, {r1, r3, r8, r9}^ - 1104: 8d1b1c06 ldchi 12, cr1, [fp, #-24] - 1108: 04050009 streq r0, [r5], #-9 - 110c: 1a010001 bne 41118 - 1110: 06300b08 ldrteq r0, [r0], -r8, lsl #22 - 1114: 000000d7 ldrdeq r0, [r0], -r7 - 1118: 22d00001 sbcscs r0, r0, #1 ; 0x1 - 111c: 00040040 andeq r0, r4, r0, asr #32 - 1120: b3020000 movwlt r0, #8192 ; 0x2000 - 1124: 02000020 andeq r0, r0, #32 ; 0x20 - 1128: 000029da ldrdeq r2, [r0], -sl - 112c: 0017d702 andseq sp, r7, r2, lsl #14 - 1130: 16930200 ldrne r0, [r3], r0, lsl #4 - 1134: 00000000 andeq r0, r0, r0 - 1138: 01510000 cmpeq r1, r0 - 113c: 0119d500 tsteq r9, r0, lsl #10 - 1140: 00020100 andeq r0, r2, r0, lsl #2 - 1144: 6c117805 ldcvs 8, cr7, [r1], {5} - 1148: 00000e29 andeq r0, r0, r9, lsr #28 - 114c: 01010101 tsteq r1, r1, lsl #2 - 1150: 00010001 andeq r0, r1, r1 - 1154: 01010101 tsteq r1, r1, lsl #2 - 1158: 000243d5 ldrdeq r4, [r2], -r5 - 115c: 0d020223 sfmeq f0, 4, [r2, #-140] - 1160: 090119a8 stmdbeq r1, {r3, r5, r7, r8, fp, ip} - 1164: 04030801 streq r0, [r3], #-2049 - 1168: 19a40301 stmibne r4!, {r0, r8, r9} - 116c: 13062a15 movwne r2, #27157 ; 0x6a15 - 1170: 0608f251 undefined - 1174: 7714020c ldrvc r0, [r4, -ip, lsl #4] - 1178: 07050a09 streq r0, [r5, -r9, lsl #20] - 117c: ca22c51c bgt 8b25f4 - 1180: 1422030d strtne r0, [r2], #-781 - 1184: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1188: 1a057e03 bne 16099c - 118c: 7c0a981b stcvc 8, cr9, [sl], {27} - 1190: d23b7905 eorsle r7, fp, #81920 ; 0x14000 - 1194: 05760a09 ldrbeq r0, [r6, #-2569]! - 1198: 29700671 ldmdbcs r0!, {r0, r4, r5, r6, r9, sl}^ - 119c: 0801513e stmdaeq r1, {r1, r2, r3, r4, r5, r8, ip, lr} - 11a0: 00024dd5 ldrdeq r4, [r2], -r5 - 11a4: 0d030312 stceq 3, cr0, [r3, #-72] - 11a8: 0b011ae2 bleq 47d38 - 11ac: 04030801 streq r0, [r3], #-2049 - 11b0: 1ade0301 bne ff781dbc - 11b4: 01032a15 tsteq r3, r5, lsl sl - 11b8: 7e1b0506 cfmul32vc mvfx0, mvfx11, mvfx6 - 11bc: 721b0b06 andsvc r0, fp, #6144 ; 0x1800 - 11c0: 1422040d strtne r0, [r2], #-1037 - 11c4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 11c8: 0408cc15 streq ip, [r8], #-3093 - 11cc: 0c08eb4a stceq 11, cr14, [r8], {74} - 11d0: 0b060630 bleq 182a98 - 11d4: 0408711b streq r7, [r8], #-283 - 11d8: 0c084e3d stceq 14, cr4, [r8], {61} - 11dc: 79130630 ldmdbvc r3, {r4, r5, r9, sl} - 11e0: b12f0408 teqlt pc, r8, lsl #8 - 11e4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 11e8: 06710a09 ldrbteq r0, [r1], -r9, lsl #20 - 11ec: a71f0e42 ldrge r0, [pc, -r2, asr #28] - 11f0: 01000000 tsteq r0, r0 - 11f4: 40231800 eormi r1, r3, r0, lsl #16 - 11f8: 00000200 andeq r0, r0, r0, lsl #4 - 11fc: 22370200 eorscs r0, r7, #0 ; 0x0 - 1200: b3020000 movwlt r0, #8192 ; 0x2000 - 1204: 00000020 andeq r0, r0, r0, lsr #32 - 1208: 51000000 tstpl r0, r0 - 120c: 19d50001 ldmibne r5, {r0}^ - 1210: 02010001 andeq r0, r1, #1 ; 0x1 - 1214: 11780500 cmnne r8, r0, lsl #10 - 1218: 000e296c andeq r2, lr, ip, ror #18 - 121c: 01010100 tsteq r1, r0, lsl #2 - 1220: 01000101 tsteq r0, r1, lsl #2 - 1224: 01010100 tsteq r1, r0, lsl #2 - 1228: 026fd501 rsbeq sp, pc, #4194304 ; 0x400000 - 122c: 02023000 andeq r3, r2, #0 ; 0x0 - 1230: 0119c20e tsteq r9, lr, lsl #4 - 1234: 03081027 movweq r1, #32807 ; 0x8027 - 1238: be030104 adflts f0, f3, f4 - 123c: 0a2a1519 beq a866a8 - 1240: 06010312 undefined - 1244: 0a1b290d beq 6cb680 - 1248: 06c22b05 strbeq r2, [r2], r5, lsl #22 - 124c: 56f05111 usatpl r5, #16, r1, lsl #2 - 1250: 29af3236 stmibcs pc!, {r1, r2, r4, r5, r9, ip, sp} - 1254: 06070a63 streq r0, [r7], -r3, ror #20 - 1258: 0607291a undefined - 125c: 04e35f67 strbteq r5, [r3], #3943 - 1260: 0db13002 ldceq 0, cr3, [r1, #8]! - 1264: 4a020402 bmi 82274 - 1268: 040c08eb streq r0, [ip], #-2283 - 126c: 06063002 streq r3, [r6], -r2 - 1270: 09741b14 ldmdbeq r4!, {r2, r4, r8, r9, fp, ip}^ - 1274: 5706720a strpl r7, [r6, -sl, lsl #4] - 1278: 02040037 andeq r0, r4, #55 ; 0x37 - 127c: ae360206 cdpge 2, 3, cr0, cr6, cr6, {0} - 1280: 02040408 andeq r0, r4, #134217728 ; 0x8000000 - 1284: 0c087714 stceq 7, cr7, [r8], {20} - 1288: 06300204 ldrteq r0, [r0], -r4, lsl #4 - 128c: 0a092514 beq 24a6e4 - 1290: 0963296d stmdbeq r3!, {r0, r2, r3, r5, r6, r8, fp, sp}^ - 1294: 01036c0a tsteq r3, sl, lsl #24 - 1298: 00c6904a sbceq r9, r6, sl, asr #32 - 129c: 00020000 andeq r0, r2, r0 - 12a0: 00000000 andeq r0, r0, r0 - 12a4: 00000003 andeq r0, r0, r3 - 12a8: 00239302 eoreq r9, r3, r2, lsl #6 - 12ac: 16930200 ldrne r0, [r3], r0, lsl #4 - 12b0: d7020000 strle r0, [r2, -r0] - 12b4: 00000017 andeq r0, r0, r7, lsl r0 - 12b8: 01000000 tsteq r0, r0 - 12bc: ac000000 stcge 0, cr0, [r0], {0} - 12c0: 51004022 tstpl r0, r2, lsr #32 - 12c4: 19d50001 ldmibne r5, {r0}^ - 12c8: 02010001 andeq r0, r1, #1 ; 0x1 - 12cc: 11780500 cmnne r8, r0, lsl #10 - 12d0: 000e296c andeq r2, lr, ip, ror #18 - 12d4: 01010100 tsteq r1, r0, lsl #2 - 12d8: 01000101 tsteq r0, r1, lsl #2 - 12dc: 01010100 tsteq r1, r0, lsl #2 - 12e0: 0180d501 orreq sp, r0, r1, lsl #10 - 12e4: 02300002 eorseq r0, r0, #2 ; 0x2 - 12e8: 1be30f02 blne ff8c4ef8 - 12ec: 08101301 ldmdaeq r0, {r0, r8, r9, ip} - 12f0: 03010403 movweq r0, #5123 ; 0x1403 - 12f4: 2a151bdf bcs 548278 - 12f8: 0103170a tsteq r3, sl, lsl #14 - 12fc: f2513206 vhsub.s16 d19, d1, d6 - 1300: 5b060103 blpl 181714 - 1304: 1906da5f stmdbne r6, {r0, r1, r2, r3, r4, r6, r9, fp, ip, lr, pc} - 1308: 020d6488 andeq r6, sp, #-2013265920 ; 0x88000000 - 130c: 0c081422 cfstrseq mvf1, [r8], {34} - 1310: 75170630 ldrvc r0, [r7, #-1584] - 1314: eb4a0408 bl 128233c - 1318: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 131c: 0e290306 cdpeq 3, 2, cr0, cr9, cr6, {0} - 1320: b12f0408 teqlt pc, r8, lsl #8 - 1324: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1328: 04087913 streq r7, [r8], #-2323 - 132c: 0c08eb4a stceq 11, cr14, [r8], {74} - 1330: 52060630 andpl r0, r6, #50331648 ; 0x3000000 - 1334: 1b27290e blne 9cb774 - 1338: 1422030d strtne r0, [r2], #-781 - 133c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1340: 7d037c10 stcvc 12, cr7, [r3, #-64] - 1344: 36280d05 strtcc r0, [r8], -r5, lsl #26 - 1348: 7e057b0a fmacdvc d7, d5, d10 - 134c: 7a03ee1f bvc fcbd0 - 1350: 6c0ae023 stcvs 0, cr14, [sl], {35} - 1354: ee1f7f05 cdp 15, 1, cr7, cr15, cr5, {0} - 1358: 04050009 streq r0, [r5], #-9 - 135c: 19010001 stmdbne r1, {r0} - 1360: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} - 1364: 00000095 muleq r0, r5, r0 - 1368: 3cf00001 ldclcc 0, cr0, [r0], #4 - 136c: 00040040 andeq r0, r4, r0, asr #32 - 1370: 08020000 stmdaeq r2, {} - 1374: 0100002e tsteq r0, lr, lsr #32 - 1378: 0000837d andeq r8, r0, sp, ror r3 - 137c: 0082d901 addeq sp, r2, r1, lsl #18 - 1380: 86e50100 strbthi r0, [r5], r0, lsl #2 - 1384: 00000000 andeq r0, r0, r0 - 1388: 01510000 cmpeq r1, r0 - 138c: 0119d500 tsteq r9, r0, lsl #10 - 1390: 00020100 andeq r0, r2, r0, lsl #2 - 1394: 6c117805 ldcvs 8, cr7, [r1], {5} - 1398: 00000e29 andeq r0, r0, r9, lsr #28 - 139c: 01010101 tsteq r1, r1, lsl #2 - 13a0: 00010001 andeq r0, r1, r1 - 13a4: 01010101 tsteq r1, r1, lsl #2 - 13a8: 000253d5 ldrdeq r5, [r2], -r5 - 13ac: 00020226 andeq r0, r2, r6, lsr #4 - 13b0: 0c01159f cfstr32eq mvfx1, [r1], {159} - 13b4: 04030801 streq r0, [r3], #-2049 - 13b8: 159b0301 ldrne r0, [fp, #769] - 13bc: 34062a15 strcc r2, [r6], #-2581 - 13c0: 020d1a29 andeq r1, sp, #167936 ; 0x29000 - 13c4: 0c08a658 stceq 6, cr10, [r8], {88} - 13c8: 04060630 streq r0, [r6], #-1584 - 13cc: 030d541b movweq r5, #54299 ; 0xd41b - 13d0: 0c084366 stceq 3, cr4, [r8], {102} - 13d4: 59150630 ldmdbpl r5, {r4, r5, r9, sl} - 13d8: 094b0408 stmdbeq fp, {r3, sl}^ - 13dc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 13e0: 04085916 streq r5, [r8], #-2326 - 13e4: 0c08094b stceq 9, cr0, [r8], {75} - 13e8: 78060630 stmdavc r6, {r4, r5, r9, sl} - 13ec: 040d0c0e streq r0, [sp], #-3086 - 13f0: 0c084e3d stceq 14, cr4, [r8], {61} - 13f4: 0a090630 beq 242cbc - 13f8: 0e4e066f cdpeq 6, 4, cr0, cr14, cr15, {3} - 13fc: 0000a820 andeq sl, r0, r0, lsr #16 - 1400: 08000100 stmdaeq r0, {r8} - 1404: 05004036 streq r4, [r0, #-54] - 1408: 02000000 andeq r0, r0, #0 ; 0x0 - 140c: 0000307c andeq r3, r0, ip, ror r0 - 1410: 00318002 eorseq r8, r1, r2 - 1414: 33830200 orrcc r0, r3, #0 ; 0x0 - 1418: 81010000 tsthi r1, r0 - 141c: 02000084 andeq r0, r0, #132 ; 0x84 - 1420: 00003284 andeq r3, r0, r4, lsl #5 - 1424: 00000000 andeq r0, r0, r0 - 1428: d5000151 strle r0, [r0, #-337] - 142c: 01000119 tsteq r0, r9, lsl r1 - 1430: 78050002 stmdavc r5, {r1} - 1434: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 1438: 01010000 tsteq r1, r0 - 143c: 00010101 andeq r0, r1, r1, lsl #2 - 1440: 01010001 tsteq r1, r1 - 1444: 35d50101 ldrbcc r0, [r5, #257] - 1448: 020e0002 andeq r0, lr, #2 ; 0x2 - 144c: 128d0002 addne r0, sp, #2 ; 0x2 - 1450: 08010501 stmdaeq r1, {r0, r8, sl} - 1454: 03010403 movweq r0, #5123 ; 0x1403 - 1458: 2a151289 bcs 545e84 - 145c: 020dc725 andeq ip, sp, #9699328 ; 0x940000 - 1460: 0c086922 stceq 9, cr6, [r8], {34} - 1464: 76160630 undefined - 1468: 030c0608 movweq r0, #50696 ; 0xc608 - 146c: a53c7714 ldrge r7, [ip, #-1812]! - 1470: b12f040d teqlt pc, sp, lsl #8 - 1474: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1478: 11760a09 cmnne r6, r9, lsl #20 - 147c: 08015171 stmdaeq r1, {r0, r4, r5, r6, r8, ip, lr} - 1480: 000227d5 ldrdeq r2, [r2], -r5 - 1484: 00030403 andeq r0, r3, r3, lsl #8 - 1488: 030113a6 movweq r1, #5030 ; 0x13a6 - 148c: 04030801 streq r0, [r3], #-2049 - 1490: 13a20301 undefined instruction 0x13a20301 - 1494: 05062a15 streq r2, [r6, #-2581] - 1498: 050d7c1b streq r7, [sp, #-3099] - 149c: 0c081422 cfstrseq mvf1, [r8], {34} - 14a0: 0a090630 beq 242d68 - 14a4: 0e7c067b mrceq 6, 3, r0, cr12, cr11, {3} - 14a8: 0001211f andeq r2, r1, pc, lsl r1 - 14ac: 24000100 strcs r0, [r0], #-256 - 14b0: 05004036 streq r4, [r0, #-54] - 14b4: 02000000 andeq r0, r0, #0 ; 0x0 - 14b8: 00003180 andeq r3, r0, r0, lsl #3 - 14bc: 00876d01 addeq r6, r7, r1, lsl #26 - 14c0: 85750100 ldrbhi r0, [r5, #-256]! - 14c4: a9010000 stmdbge r1, {} - 14c8: 01000083 smlabbeq r0, r3, r0, r0 - 14cc: 00008481 andeq r8, r0, r1, lsl #9 - 14d0: 00000000 andeq r0, r0, r0 - 14d4: d5000151 strle r0, [r0, #-337] - 14d8: 01000119 tsteq r0, r9, lsl r1 - 14dc: 78050002 stmdavc r5, {r1} - 14e0: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 14e4: 01010000 tsteq r1, r0 - 14e8: 00010101 andeq r0, r1, r1, lsl #2 - 14ec: 01010001 tsteq r1, r1 - 14f0: d9d50101 ldmible r5, {r0, r8}^ - 14f4: 4e000201 cdpmi 2, 0, cr0, cr0, cr1, {0} - 14f8: 9a010202 bls 41d08 - 14fc: 011a0112 tsteq sl, r2, lsl r1 - 1500: 01040308 tsteq r4, r8, lsl #6 - 1504: 15129603 ldrne r9, [r2, #-1539] - 1508: 360d0a2a strcc r0, [sp], -sl, lsr #20 - 150c: 360e060c strcc r0, [lr], -ip, lsl #12 - 1510: 2f020db5 svccs 0x00020db5 - 1514: 300c08b1 strhcc r0, [ip], -r1 - 1518: 0dcc1506 cfstr64eq mvdx1, [ip, #24] - 151c: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} - 1520: 1106300c tstne r6, ip - 1524: 2f040d7b svccs 0x00040d7b - 1528: 300c08b1 strhcc r0, [ip], -r1 - 152c: 0dc11606 stcleq 6, cr1, [r1, #24] - 1530: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} - 1534: 0a06300c beq 18d56c - 1538: 0e77060d cdpeq 6, 7, cr0, cr7, cr13, {0} - 153c: 360e062a strcc r0, [lr], -sl, lsr #12 - 1540: 2f020db5 svccs 0x00020db5 - 1544: 300c08b1 strhcc r0, [ip], -r1 - 1548: 0dcc1506 cfstr64eq mvdx1, [ip, #24] - 154c: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} - 1550: 1106300c tstne r6, ip - 1554: 2f040d7b svccs 0x00040d7b - 1558: 300c08b1 strhcc r0, [ip], -r1 - 155c: 0d751706 ldcleq 7, cr1, [r5, #-24]! - 1560: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} - 1564: 0a06300c beq 18d59c - 1568: 0e75060d cdpeq 6, 7, cr0, cr5, cr13, {0} - 156c: 360e0620 strcc r0, [lr], -r0, lsr #12 - 1570: 2f020db5 svccs 0x00020db5 - 1574: 300c08b1 strhcc r0, [ip], -r1 - 1578: 0dcc1506 cfstr64eq mvdx1, [ip, #24] - 157c: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} - 1580: 1106300c tstne r6, ip - 1584: 2f040d7b svccs 0x00040d7b - 1588: 300c08b1 strhcc r0, [ip], -r1 - 158c: 0d751706 ldcleq 7, cr1, [r5, #-24]! - 1590: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} - 1594: 0a06300c beq 18d5cc - 1598: 0e75060d cdpeq 6, 7, cr0, cr5, cr13, {0} - 159c: 360e0620 strcc r0, [lr], -r0, lsr #12 - 15a0: 2f020db5 svccs 0x00020db5 - 15a4: 300c08b1 strhcc r0, [ip], -r1 - 15a8: 0dcc1506 cfstr64eq mvdx1, [ip, #24] - 15ac: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} - 15b0: 1106300c tstne r6, ip - 15b4: 2f040d7b svccs 0x00040d7b - 15b8: 300c08b1 strhcc r0, [ip], -r1 - 15bc: 0d751706 ldcleq 7, cr1, [r5, #-24]! - 15c0: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} - 15c4: 0906300c stmdbeq r6, {r2, r3, ip, sp} - 15c8: 63064a0a movwvs r4, #27146 ; 0x6a0a - 15cc: 0089160e addeq r1, r9, lr, lsl #12 - 15d0: 00010000 andeq r0, r1, r0 - 15d4: 004036c0 subeq r3, r0, r0, asr #13 - 15d8: 00000002 andeq r0, r0, r2 - 15dc: 00328402 eorseq r8, r2, r2, lsl #8 - 15e0: 84810100 strhi r0, [r1], #256 - 15e4: 00000000 andeq r0, r0, r0 - 15e8: 01510000 cmpeq r1, r0 - 15ec: 0119d500 tsteq r9, r0, lsl #10 - 15f0: 00020100 andeq r0, r2, r0, lsl #2 - 15f4: 6c117805 ldcvs 8, cr7, [r1], {5} - 15f8: 00000e29 andeq r0, r0, r9, lsr #28 - 15fc: 01010101 tsteq r1, r1, lsl #2 - 1600: 00010001 andeq r0, r1, r1 - 1604: 01010101 tsteq r1, r1, lsl #2 - 1608: 000251d5 ldrdeq r5, [r2], -r5 - 160c: 0402021e streq r0, [r2], #-542 - 1610: 0a011384 beq 46428 - 1614: 04030801 streq r0, [r3], #-2049 - 1618: 13800301 orrne r0, r0, #67108864 ; 0x4000000 - 161c: 040a2a15 streq r2, [sl], #-2581 - 1620: 682e0c36 stmdavs lr!, {r1, r2, r4, r5, sl, fp} - 1624: b12f020d teqlt pc, sp, lsl #4 - 1628: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 162c: c116040a tstgt r6, sl, lsl #8 - 1630: 0408682e streq r6, [r8], #-2094 - 1634: 0c08b12f stfeqd f3, [r8], {47} - 1638: 040a0630 streq r0, [sl], #-1584 - 163c: 682ec116 stmdavs lr!, {r1, r2, r4, r8, lr, pc} - 1640: b12f0408 teqlt pc, r8, lsl #8 - 1644: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1648: c116040a tstgt r6, sl, lsl #8 - 164c: 0408682e streq r6, [r8], #-2094 - 1650: 0c08b12f stfeqd f3, [r8], {47} - 1654: 0a090630 beq 242f1c - 1658: bcbd106e ldclt 0, cr1, [sp], #440 - 165c: 01000000 tsteq r0, r0 - 1660: 402bb400 eormi fp, fp, r0, lsl #8 - 1664: 00000300 andeq r0, r0, r0, lsl #6 - 1668: 36a30200 strtcc r0, [r3], r0, lsl #4 - 166c: e1010000 tst r1, r0 - 1670: 010000ff strdeq r0, [r0, -pc] - 1674: 0000ffc5 andeq pc, r0, r5, asr #31 - 1678: 00000000 andeq r0, r0, r0 - 167c: d5000151 strle r0, [r0, #-337] - 1680: 01000119 tsteq r0, r9, lsl r1 - 1684: 78050002 stmdavc r5, {r1} - 1688: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 168c: 01010000 tsteq r1, r0 - 1690: 00010101 andeq r0, r1, r1, lsl #2 - 1694: 01010001 tsteq r1, r1 - 1698: 7fd50101 svcvc 0x00d50101 - 169c: 02480002 subeq r0, r8, #2 ; 0x2 - 16a0: 17a80002 strne r0, [r8, r2]! - 16a4: 08013501 stmdaeq r1, {r0, r8, sl, ip, sp} - 16a8: 03010403 movweq r0, #5123 ; 0x1403 - 16ac: 2a1517a4 bcs 547544 - 16b0: 0e060203 cdpeq 2, 0, cr0, cr6, cr3, {0} - 16b4: 020db836 andeq fp, sp, #3538944 ; 0x360000 - 16b8: 0c081422 cfstrseq mvf1, [r8], {34} - 16bc: 02030630 andeq r0, r3, #50331648 ; 0x3000000 - 16c0: b82c741b stmdalt ip!, {r0, r1, r3, r4, sl, ip, sp, lr} - 16c4: ac360b06 ldcge 11, cr0, [r6], #-24 - 16c8: 03370103 teqeq r7, #-1073741824 ; 0xc0000000 - 16cc: 721b0406 andsvc r0, fp, #100663296 ; 0x6000000 - 16d0: 6506d165 strvs sp, [r6, #-357] - 16d4: 0a09c81b beq 273748 - 16d8: 05513d02 ldrbeq r3, [r1, #-3330] - 16dc: 6d100633 ldcvs 6, cr0, [r0, #-204] - 16e0: 057f0a46 ldrbeq r0, [pc, #-2630]! ; ca2 <__USR_stack_size+0x4a2> - 16e4: 05d23b69 ldrbeq r3, [r2, #2921] - 16e8: 6d76066c ldclvs 6, cr0, [r6, #-432]! - 16ec: 020a094f andeq r0, sl, #1294336 ; 0x13c000 - 16f0: 33051722 movwcc r1, #22306 ; 0x5722 - 16f4: d2361006 eorsle r1, r6, #6 ; 0x6 - 16f8: 69057f0a stmdbvs r5, {r1, r3, r8, r9, sl, fp, ip, sp, lr} - 16fc: 0103d23b tsteq r3, fp, lsr r2 - 1700: 8b866c05 blhi fe19c71c - 1704: 6b060103 blvs 181b18 - 1708: a63dc91b undefined - 170c: 1422030d strtne r0, [r2], #-781 - 1710: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1714: 06680a09 strbteq r0, [r8], -r9, lsl #20 - 1718: bc1f0e74 ldclt 14, cr0, [pc], {116} - 171c: 01000001 tsteq r0, r1 - 1720: 402c4400 eormi r4, ip, r0, lsl #8 - 1724: 00000400 andeq r0, r0, r0, lsl #8 - 1728: 384f0200 stmdacc pc, {r9}^ - 172c: 79010000 stmdbvc r1, {} - 1730: 02004023 andeq r4, r0, #35 ; 0x23 - 1734: 000036a3 andeq r3, r0, r3, lsr #13 - 1738: 4038c901 eorsmi ip, r8, r1, lsl #18 - 173c: 00000000 andeq r0, r0, r0 - 1740: 00015100 andeq r5, r1, r0, lsl #2 - 1744: 000119d5 ldrdeq r1, [r1], -r5 - 1748: 05000201 streq r0, [r0, #-513] - 174c: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 1750: 0100000e tsteq r0, lr - 1754: 01010101 tsteq r1, r1, lsl #2 - 1758: 01000100 tsteq r0, r0, lsl #2 - 175c: d5010101 strle r0, [r1, #-257] - 1760: 000202f9 strdeq r0, [r2], -r9 - 1764: 020201c2 andeq r0, r2, #-2147483600 ; 0x80000030 - 1768: 0117ec01 tsteq r7, r1, lsl #24 - 176c: 080101b3 stmdaeq r1, {r0, r1, r4, r5, r7, r8} - 1770: 03010403 movweq r0, #5123 ; 0x1403 - 1774: 2a1517e8 bcs 54771c - 1778: 0631c528 ldrteq ip, [r1], -r8, lsr #10 - 177c: 020a1423 andeq r1, sl, #587202560 ; 0x23000000 - 1780: 0a099151 beq 265ccc - 1784: f44d00c1 vst4. {d16-d19}, [sp], r1 - 1788: 3965230a stmdbcc r5!, {r1, r3, r8, r9, sp}^ - 178c: 3854a131 ldmdacc r4, {r0, r4, r5, r8, sp, pc}^ - 1790: 7714020d ldrvc r0, [r4, -sp, lsl #4] - 1794: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1798: 070a030a streq r0, [sl, -sl, lsl #6] - 179c: 090a080a stmdbeq sl, {r1, r3, fp} - 17a0: 0f0a0b0a svceq 0x000a0b0a - 17a4: 190a180a stmdbne sl, {r1, r3, fp, ip} - 17a8: 390a1d0a stmdbcc sl, {r1, r3, r8, sl, fp, ip} - 17ac: 23143b0a tstcs r4, #10240 ; 0x2800 - 17b0: 09213607 stmdbeq r1!, {r0, r1, r2, r9, sl, ip, sp} - 17b4: 7406390a strvc r3, [r6], #-2314 - 17b8: 02039f44 andeq r9, r3, #272 ; 0x110 - 17bc: 030d503f movweq r5, #53311 ; 0xd03f - 17c0: 0c087714 stceq 7, cr7, [r8], {20} - 17c4: 0a090630 beq 24308c - 17c8: 1b080635 blne 2030a4 - 17cc: 340a0971 strcc r0, [sl], #-2417 - 17d0: 503f0103 eorspl r0, pc, r3, lsl #2 - 17d4: 03330a09 teqeq r3, #36864 ; 0x9000 - 17d8: 03375801 teqeq r7, #65536 ; 0x10000 - 17dc: 09a83c01 stmibeq r8!, {r0, sl, fp, ip, sp} - 17e0: 79062f0a stmdbvc r6, {r1, r3, r8, r9, sl, fp, sp} - 17e4: 13039d44 movwne r9, #15684 ; 0x3d44 - 17e8: 04086d22 streq r6, [r8], #-3362 - 17ec: 0c087714 stceq 7, cr7, [r8], {20} - 17f0: 0a090630 beq 2430b8 - 17f4: 1b0c062d blne 3030b0 - 17f8: 06020371 undefined - 17fc: 08033775 stmdaeq r3, {r0, r2, r4, r5, r6, r8, r9, sl, ip, sp} - 1800: 08771404 ldmdaeq r7!, {r2, sl, ip}^ - 1804: 0a06300c beq 18d83c - 1808: 1b140605 blne 503024 - 180c: 446f0671 strbtmi r0, [pc], #1649 ; 1814 <__USR_stack_size+0x1014> - 1810: 140408a8 strne r0, [r4], #-2216 - 1814: 300c0877 andcc r0, ip, r7, ror r8 - 1818: 1b080606 blne 203038 - 181c: 240a0971 strcs r0, [sl], #-2417 - 1820: 0a09364d beq 24f15c - 1824: 4a0d0323 bmi 3424b8 - 1828: 060303ef streq r0, [r3], -pc, ror #7 - 182c: 08033772 stmdaeq r3, {r1, r4, r5, r6, r8, r9, sl, ip, sp} - 1830: 08771404 ldmdaeq r7!, {r2, sl, ip}^ - 1834: 0906300c stmdbeq r6, {r2, r3, ip, sp} - 1838: 0e061f0a cdpeq 15, 0, cr1, cr6, cr10, {0} - 183c: 0a09711b beq 25dcb0 - 1840: 3d01031e stccc 3, cr0, [r1, #-120] - 1844: 03030aa7 movweq r0, #15015 ; 0x3aa7 - 1848: 440a0606 strmi r0, [sl], #-1542 - 184c: 526f063c rsbpl r0, pc, #62914560 ; 0x3c00000 - 1850: 190a092c stmdbne sl, {r2, r3, r5, r8, fp} - 1854: 3b527406 blcc 149e874 - 1858: 07060d0a streq r0, [r6, -sl, lsl #26] - 185c: 933f1f29 teqls pc, #164 ; 0xa4 - 1860: 040d5339 streq r5, [sp], #-825 - 1864: 9f140405 svcls 0x00140405 - 1868: 0c08020a sfmeq f0, 4, [r8], {10} - 186c: 070a0630 smladxeq sl, r0, r6, r0 - 1870: 7e050104 adfvcs f0, f5, f4 - 1874: 02038733 andeq r8, r3, #13369344 ; 0xcc0000 - 1878: cd14fa9e fldsgt s30, [r4, #-632] - 187c: e1552413 cmp r5, r3, lsl r4 - 1880: 7714020d ldrvc r0, [r4, -sp, lsl #4] - 1884: 080f0a09 stmdaeq pc, {r0, r3, r9, fp} - 1888: 0906300c stmdbeq r6, {r2, r3, ip, sp} - 188c: bc270e0a stclt 14, cr0, [r7], #-40 - 1890: 0603050a streq r0, [r3], -sl, lsl #10 - 1894: 7a069847 bvc 1a79b8 - 1898: 030d5629 movweq r5, #54825 ; 0xd629 - 189c: 0c087714 stceq 7, cr7, [r8], {20} - 18a0: 0a090630 beq 243168 - 18a4: 1b0b0609 blne 2c30d0 - 18a8: 49020a71 stmdbmi r2, {r0, r4, r5, r6, r9, fp} - 18ac: 070a09a9 streq r0, [sl, -r9, lsr #19] - 18b0: 020a3e3f andeq r3, sl, #1008 ; 0x3f0 - 18b4: 0a095448 beq 2569dc - 18b8: 0a314c05 beq c548d4 - 18bc: 06445804 strbeq r5, [r4], -r4, lsl #16 - 18c0: 08f1367e ldmeq r1!, {r1, r2, r3, r4, r5, r6, r9, sl, ip, sp}^ - 18c4: 08771404 ldmdaeq r7!, {r2, sl, ip}^ - 18c8: 1906300c stmdbne r6, {r2, r3, ip, sp} - 18cc: 03221615 teqeq r2, #22020096 ; 0x1500000 - 18d0: 09d41002 ldmibeq r4, {r1, ip}^ - 18d4: 067fb60a ldrbteq fp, [pc], -sl, lsl #12 - 18d8: a9f6367c ldmibge r6!, {r2, r3, r4, r5, r6, r9, sl, ip, sp}^ - 18dc: 01000000 tsteq r0, r0 - 18e0: 403ca400 eorsmi sl, ip, r0, lsl #8 - 18e4: 00000200 andeq r0, r0, r0, lsl #4 - 18e8: 3aa00200 bcc fe8020f0 - 18ec: a7020000 strge r0, [r2, -r0] - 18f0: 0000003b andeq r0, r0, fp, lsr r0 - 18f4: 51000000 tstpl r0, r0 - 18f8: 19d50001 ldmibne r5, {r0}^ - 18fc: 02010001 andeq r0, r1, #1 ; 0x1 - 1900: 11780500 cmnne r8, r0, lsl #10 - 1904: 000e296c andeq r2, lr, ip, ror #18 - 1908: 01010100 tsteq r1, r0, lsl #2 - 190c: 01000101 tsteq r0, r1, lsl #2 - 1910: 01010100 tsteq r1, r0, lsl #2 - 1914: 0225d501 eoreq sp, r5, #4194304 ; 0x400000 - 1918: 02022600 andeq r2, r2, #0 ; 0x0 - 191c: 010fda00 tsteq pc, r0, lsl #20 - 1920: 03080103 movweq r0, #33027 ; 0x8103 - 1924: d6030104 strle r0, [r3], -r4, lsl #2 - 1928: 1b2a150f blne a86d6c - 192c: 087d0a7c ldmdaeq sp!, {r2, r3, r4, r5, r6, r9, fp}^ - 1930: 14020c06 strne r0, [r2], #-3078 - 1934: 7c0a0977 stcvc 9, cr0, [sl], {119} - 1938: e1f51202 mvns r1, r2, lsl #4 - 193c: d5000151 strle r0, [r0, #-337] - 1940: 23000247 movwcs r0, #583 ; 0x247 - 1944: 81000303 tsthi r0, r3, lsl #6 - 1948: 011b0110 tsteq fp, r0, lsl r1 - 194c: 01040308 tsteq r4, r8, lsl #6 - 1950: 150ffd03 strne pc, [pc, #-3331] ; c55 <__USR_stack_size+0x455> - 1954: 1b12062a blne 483204 - 1958: 4ade587c bmi ff797b50 - 195c: 226a22ed rsbcs r2, sl, #-805306354 ; 0xd000000e - 1960: 23a43dc0 undefined instruction 0x23a43dc0 - 1964: 220730be andcs r3, r7, #190 ; 0xbe - 1968: 266a226a strbtcs r2, [sl], -sl, ror #4 - 196c: 1d6a2266 sfmne f2, 2, [sl, #-408]! - 1970: 30a43dc4 adccc r3, r4, r4, asr #27 - 1974: 226a22b1 rsbcs r2, sl, #268435467 ; 0x1000000b - 1978: 0a414b6a beq 1054728 - 197c: 09b42d6c ldmibeq r4!, {r2, r3, r5, r6, r8, sl, fp, sp} - 1980: 01036b0a tsteq r3, sl, lsl #22 - 1984: 220e7106 andcs r7, lr, #-2147483647 ; 0x80000001 - 1988: 0000006a andeq r0, r0, sl, rrx - 198c: 23780001 cmncs r8, #1 ; 0x1 - 1990: 00010040 andeq r0, r1, r0, asr #32 - 1994: a5020000 strge r0, [r2] - 1998: 0100004d tsteq r0, sp, asr #32 - 199c: 8c000000 stchi 0, cr0, [r0], {0} - 19a0: 5100003f tstpl r0, pc, lsr r0 - 19a4: 19d50001 ldmibne r5, {r0}^ - 19a8: 02010001 andeq r0, r1, #1 ; 0x1 - 19ac: 11780500 cmnne r8, r0, lsl #10 - 19b0: 000e296c andeq r2, lr, ip, ror #18 - 19b4: 01010100 tsteq r1, r0, lsl #2 - 19b8: 01000101 tsteq r0, r1, lsl #2 - 19bc: 01010100 tsteq r1, r0, lsl #2 - 19c0: 0233d501 eorseq sp, r3, #4194304 ; 0x400000 - 19c4: 02021100 andeq r1, r2, #0 ; 0x0 - 19c8: 0110bb02 tsteq r0, r2, lsl #22 - 19cc: 0308010c movweq r0, #33036 ; 0x810c - 19d0: 0610b703 ldreq fp, [r0], -r3, lsl #14 - 19d4: 0a791b19 beq 1e48640 - 19d8: 0a202105 beq 809df4 - 19dc: 7a040604 bvc 1031f4 - 19e0: 08b13ac6 ldmeq r1!, {r1, r2, r6, r7, r9, fp, ip, sp} - 19e4: 22010b05 andcs r0, r1, #5120 ; 0x1400 - 19e8: 300c0814 andcc r0, ip, r4, lsl r8 - 19ec: 790a0906 stmdbvc sl, {r1, r2, r8, fp} - 19f0: 5e060503 cfsh32pl mvfx0, mvfx6, #3 - 19f4: 00610e0e rsbeq r0, r1, lr, lsl #28 - 19f8: 00010000 andeq r0, r1, r0 - 19fc: 0040239a umaaleq r2, r0, sl, r3 - 1a00: 00000001 andeq r0, r0, r1 - 1a04: 004ebd02 subeq fp, lr, r2, lsl #26 - 1a08: 00000000 andeq r0, r0, r0 - 1a0c: 00015100 andeq r5, r1, r0, lsl #2 - 1a10: 000119d5 ldrdeq r1, [r1], -r5 - 1a14: 05000201 streq r0, [r0, #-513] - 1a18: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 1a1c: 0100000e tsteq r0, lr - 1a20: 01010101 tsteq r1, r1, lsl #2 - 1a24: 01000100 tsteq r0, r0, lsl #2 - 1a28: d5010101 strle r0, [r1, #-257] - 1a2c: 1a00022e bne 22ec <__USR_stack_size+0x1aec> - 1a30: db040202 blle 102240 - 1a34: 140a0110 strne r0, [sl], #-272 - 1a38: d7030308 strle r0, [r3, -r8, lsl #6] - 1a3c: 1b300610 blne c03284 - 1a40: 06020a79 undefined - 1a44: 09d01b7f ldmibeq r0, {r0, r1, r2, r3, r4, r5, r6, r8, r9, fp, ip}^ - 1a48: 7a717d0a bvc 1c60e78 - 1a4c: 974af93f smlaldxls pc, sl, pc, r9 - 1a50: 12256a22 eorne r6, r5, #139264 ; 0x22000 - 1a54: 06780a09 ldrbteq r0, [r8], -r9, lsl #20 - 1a58: 58ce5f74 stmiapl lr, {r2, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ - 1a5c: 01000000 tsteq r0, r0 - 1a60: 4023ce00 eormi ip, r3, r0, lsl #28 - 1a64: 00000100 andeq r0, r0, r0, lsl #2 - 1a68: 4fe90200 svcmi 0x00e90200 - 1a6c: 00000000 andeq r0, r0, r0 - 1a70: 01510000 cmpeq r1, r0 - 1a74: 0119d500 tsteq r9, r0, lsl #10 - 1a78: 00020100 andeq r0, r2, r0, lsl #2 - 1a7c: 6c117805 ldcvs 8, cr7, [r1], {5} - 1a80: 00000e29 andeq r0, r0, r9, lsr #28 - 1a84: 01010101 tsteq r1, r1, lsl #2 - 1a88: 00010001 andeq r0, r1, r1 - 1a8c: 01010101 tsteq r1, r1, lsl #2 - 1a90: 000225d5 ldrdeq r2, [r2], -r5 - 1a94: 05020212 streq r0, [r2, #-530] - 1a98: 090110ef stmdbeq r1, {r0, r1, r2, r3, r5, r6, r7, ip} - 1a9c: 03030814 movweq r0, #14356 ; 0x3814 - 1aa0: 180610eb stmdane r6, {r0, r1, r3, r5, r6, r7, ip} - 1aa4: 040a791b streq r7, [sl], #-2331 - 1aa8: 7873d813 ldmdavc r3!, {r0, r1, r4, fp, ip, lr, pc}^ - 1aac: bd24092e stclt 9, cr0, [r4, #-184]! - 1ab0: 037a0a09 cmneq sl, #36864 ; 0x9000 - 1ab4: aad05f01 bge ff4196c0 - 1ab8: 01000000 tsteq r0, r0 - 1abc: 4023f400 eormi pc, r3, r0, lsl #8 - 1ac0: 00000100 andeq r0, r0, r0, lsl #2 - 1ac4: 50f10200 rscspl r0, r1, r0, lsl #4 - 1ac8: 00000000 andeq r0, r0, r0 - 1acc: 01510000 cmpeq r1, r0 - 1ad0: 0119d500 tsteq r9, r0, lsl #10 - 1ad4: 00020100 andeq r0, r2, r0, lsl #2 - 1ad8: 6c117805 ldcvs 8, cr7, [r1], {5} - 1adc: 00000e29 andeq r0, r0, r9, lsr #28 - 1ae0: 01010101 tsteq r1, r1, lsl #2 - 1ae4: 00010001 andeq r0, r1, r1 - 1ae8: 01010101 tsteq r1, r1, lsl #2 - 1aec: 000277d5 ldrdeq r7, [r2], -r5 - 1af0: 0602021a undefined - 1af4: 0e011182 adfeqd f1, f1, f2 - 1af8: 03030814 movweq r0, #14356 ; 0x3814 - 1afc: 130610fe movwne r1, #24830 ; 0x60fe - 1b00: 340e791b strcc r7, [lr], #-2331 - 1b04: 04060a05 streq r0, [r6], #-2565 - 1b08: 7805981b stmdavc r5, {r0, r1, r3, r4, fp, ip, pc} - 1b0c: a63bfc12 undefined - 1b10: 20057e03 andcs r7, r5, r3, lsl #28 - 1b14: 35290506 strcc r0, [r9, #-1286]! - 1b18: 560e6005 strpl r6, [lr], -r5 - 1b1c: 7e036c20 cdpvc 12, 0, cr6, cr3, cr0, {1} - 1b20: 05062005 streq r2, [r6, #-5] - 1b24: 60053529 andvs r3, r5, r9, lsr #10 - 1b28: 6c20560e stcvs 6, cr5, [r0], #-56 - 1b2c: 20057e03 andcs r7, r5, r3, lsl #28 - 1b30: 35290506 strcc r0, [r9, #-1286]! - 1b34: 560e6005 strpl r6, [lr], -r5 - 1b38: 7e036c20 cdpvc 12, 0, cr6, cr3, cr0, {1} - 1b3c: 05062005 streq r2, [r6, #-5] - 1b40: 5e053529 cfsh32pl mvfx3, mvfx5, #25 - 1b44: 040e6d06 streq r6, [lr], #-3334 - 1b48: 14236824 strtne r6, [r3], #-2084 - 1b4c: 7913be22 ldmdbvc r3, {r1, r5, r9, sl, fp, ip, sp, pc} - 1b50: a33d1027 teqge sp, #39 ; 0x27 - 1b54: 0206be22 andeq fp, r6, #544 ; 0x220 - 1b58: 7a06711b bvc 19dfcc - 1b5c: 5f2d290e svcpl 0x002d290e - 1b60: 2e650a09 fmulscs s1, s10, s18 - 1b64: 00008e09 andeq r8, r0, r9, lsl #28 - 1b68: 28000200 stmdacs r0, {r9} - 1b6c: 02004024 andeq r4, r0, #36 ; 0x24 - 1b70: 02000000 andeq r0, r0, #0 ; 0x0 - 1b74: 0000520d andeq r5, r0, sp, lsl #4 - 1b78: 005a4902 subseq r4, sl, r2, lsl #18 - 1b7c: 00000100 andeq r0, r0, r0, lsl #2 - 1b80: 003f8c00 eorseq r8, pc, r0, lsl #24 - 1b84: 00000100 andeq r0, r0, r0, lsl #2 - 1b88: 402ac800 eormi ip, sl, r0, lsl #16 - 1b8c: 00015100 andeq r5, r1, r0, lsl #2 - 1b90: 000119d5 ldrdeq r1, [r1], -r5 - 1b94: 05000201 streq r0, [r0, #-513] - 1b98: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 1b9c: 0100000e tsteq r0, lr - 1ba0: 01010101 tsteq r1, r1, lsl #2 - 1ba4: 01000100 tsteq r0, r0, lsl #2 - 1ba8: d5010101 strle r0, [r1, #-257] - 1bac: 1c00024a sfmne f0, 4, [r0], {74} - 1bb0: 99070202 stmdbls r7, {r1, r9} - 1bb4: 14130111 ldrne r0, [r3], #-273 - 1bb8: 95030308 strls r0, [r3, #-776] - 1bbc: 1b120611 blne 483408 - 1bc0: 23050a79 movwcs r0, #23161 ; 0x5a79 - 1bc4: 06040a74 undefined - 1bc8: 59c67a0a stmibpl r6, {r1, r3, r9, fp, ip, sp, lr}^ - 1bcc: 0b050892 bleq 143e1c - 1bd0: 08885801 stmeq r8, {r0, fp, ip, lr} - 1bd4: 0a06300c beq 18dc0c - 1bd8: 06060304 streq r0, [r6], -r4, lsl #6 - 1bdc: 3c180e66 ldccc 14, cr0, [r8], {102} - 1be0: 14020db0 strne r0, [r2], #-3504 - 1be4: 300c0877 andcc r0, ip, r7, ror r8 - 1be8: 091b1406 ldmdbeq fp, {r1, r2, sl, ip} - 1bec: 01040500 tsteq r4, r0, lsl #10 - 1bf0: 080e0100 stmdaeq lr, {r8} - 1bf4: 0bcc140b bleq ff306c28 - 1bf8: 01000001 tsteq r0, r1 - 1bfc: 40246000 eormi r6, r4, r0 - 1c00: 00000200 andeq r0, r0, r0, lsl #4 - 1c04: 531d0200 tstpl sp, #0 ; 0x0 - 1c08: e9020000 stmdb r2, {} - 1c0c: 0000004f andeq r0, r0, pc, asr #32 - 1c10: 51000000 tstpl r0, r0 - 1c14: 19d50001 ldmibne r5, {r0}^ - 1c18: 02010001 andeq r0, r1, #1 ; 0x1 - 1c1c: 11780500 cmnne r8, r0, lsl #10 - 1c20: 000e296c andeq r2, lr, ip, ror #18 - 1c24: 01010100 tsteq r1, r0, lsl #2 - 1c28: 01000101 tsteq r0, r1, lsl #2 - 1c2c: 01010100 tsteq r1, r0, lsl #2 - 1c30: 01d2d501 bicseq sp, r2, r1, lsl #10 - 1c34: 01a80002 undefined instruction 0x01a80002 - 1c38: bc080202 sfmlt f0, 4, [r8], {2} - 1c3c: 144b0111 strbne r0, [fp], #-273 - 1c40: b8030308 stmdalt r3, {r3, r8, r9} - 1c44: 1b160611 blne 583490 - 1c48: 29100679 ldmdbcs r0, {r0, r3, r4, r5, r6, r9, sl} - 1c4c: 0a0a0a19 beq 2844b8 - 1c50: 0a220a0e beq 884490 - 1c54: 0e550624 cdpeq 6, 5, cr0, cr5, cr4, {1} - 1c58: 30c6e629 sbccc lr, r6, r9, lsr #12 - 1c5c: 1d75175b ldclne 7, cr1, [r5, #-364]! - 1c60: 3d404b1b vstrcc d20, [r0, #-108] - 1c64: 30a33da3 adccc r3, r3, r3, lsr #27 - 1c68: 1e0a095b mcrne 9, 0, r0, cr10, cr11, {2} - 1c6c: 711b2606 tstvc fp, r6, lsl #12 - 1c70: 01031d0a tsteq r3, sl, lsl #26 - 1c74: 776d6406 strbvc r6, [sp, -r6, lsl #8]! - 1c78: 954b1482 strbls r1, [fp, #-1154] - 1c7c: 061a0a09 ldreq r0, [sl], -r9, lsl #20 - 1c80: 0a711b1a beq 1c488f0 - 1c84: 06050319 undefined - 1c88: 66335269 ldrtvs r5, [r3], -r9, ror #4 - 1c8c: 0af83dda beq ffe113fc - 1c90: 74cf1205 strbvc r1, [pc], #517 ; 1c98 <__USR_stack_size+0x1498> - 1c94: 04954b77 ldreq r4, [r5], #2935 - 1c98: 1b1b0601 blne 6c34a4 - 1c9c: 0f0a0971 svceq 0x000a0971 - 1ca0: 9e446406 cdpls 4, 4, cr6, cr4, cr6, {0} - 1ca4: c0230a0a eorgt r0, r3, sl, lsl #20 - 1ca8: 07305a3c undefined - 1cac: 25125b30 ldrcs r5, [r2, #-2864] - 1cb0: a33d404b teqge sp, #75 ; 0x4b - 1cb4: 5b30a33d blpl c2a9b0 - 1cb8: 04080a09 streq r0, [r8], #-2569 - 1cbc: 1b220601 blne 8834c8 - 1cc0: 66010471 undefined - 1cc4: 030a097e movweq r0, #43390 ; 0xa97e - 1cc8: 3b526606 blcc 149b4e8 - 1ccc: 0f060603 svceq 0x00060603 - 1cd0: 6b06f328 blvs 1be978 - 1cd4: 0403d75f streq sp, [r3], #-1887 - 1cd8: 020dd014 andeq sp, sp, #20 ; 0x14 - 1cdc: 0c087714 stceq 7, cr7, [r8], {20} - 1ce0: 0a0a0630 beq 2835a8 - 1ce4: 73075d14 movwvc r5, #32020 ; 0x7d14 - 1ce8: 14cc1479 strbne r1, [ip], #1145 - 1cec: d3cc14cc bicle r1, ip, #-872415232 ; 0xcc000000 - 1cf0: 1b2106b7 blne 8437d4 - 1cf4: 0e5e0671 mrceq 6, 2, r0, cr14, cr1, {3} - 1cf8: 14040829 strne r0, [r4], #-2089 - 1cfc: 300c0877 andcc r0, ip, r7, ror r8 - 1d00: 4c0a0906 stcmi 9, cr0, [sl], {6} - 1d04: 015dc711 cmpeq sp, r1, lsl r7 - 1d08: 00010000 andeq r0, r1, r0 - 1d0c: 004025c0 subeq r2, r0, r0, asr #11 - 1d10: 00000002 andeq r0, r0, r2 - 1d14: 0054bd02 subseq fp, r4, r2, lsl #26 - 1d18: 4fe90200 svcmi 0x00e90200 - 1d1c: 00000000 andeq r0, r0, r0 - 1d20: 01510000 cmpeq r1, r0 - 1d24: 0119d500 tsteq r9, r0, lsl #10 - 1d28: 00020100 andeq r0, r2, r0, lsl #2 - 1d2c: 6c117805 ldcvs 8, cr7, [r1], {5} - 1d30: 00000e29 andeq r0, r0, r9, lsr #28 - 1d34: 01010101 tsteq r1, r1, lsl #2 - 1d38: 00010001 andeq r0, r1, r1 - 1d3c: 01010101 tsteq r1, r1, lsl #2 - 1d40: 0202a4d5 andeq sl, r2, #-721420288 ; 0xd5000000 - 1d44: 02028000 andeq r8, r2, #0 ; 0x0 - 1d48: 12900902 addsne r0, r0, #32768 ; 0x8000 - 1d4c: 08146401 ldmdaeq r4, {r0, sl, sp, lr} - 1d50: 128c0303 addne r0, ip, #201326592 ; 0xc000000 - 1d54: 791b1606 ldmdbvc fp, {r1, r2, r9, sl, ip} - 1d58: 19291006 stmdbne r9!, {r1, r2, ip} - 1d5c: 140a100a strne r1, [sl], #-10 - 1d60: 390a370a stmdbcc sl, {r1, r3, r8, r9, sl, ip, sp} - 1d64: 55063c0a strpl r3, [r6, #-3082] - 1d68: 3507290e strcc r2, [r7, #-2318] - 1d6c: 175b30cd ldrbne r3, [fp, -sp, asr #1] - 1d70: 06672675 undefined - 1d74: 4b632978 blmi 18cc35c - 1d78: 0a404b40 beq 1014a80 - 1d7c: 30063004 andcc r3, r6, r4 - 1d80: 09a33d06 stmibeq r3!, {r1, r2, r8, sl, fp, ip, sp} - 1d84: dd58020a lfmle f0, 2, [r8, #-40] - 1d88: 0630a33d undefined - 1d8c: 0a095b30 beq 258a54 - 1d90: 1b26062d blne 98364c - 1d94: 032c0a71 teqeq ip, #462848 ; 0x71000 - 1d98: 6d640601 stclvs 6, cr0, [r4, #-4]! - 1d9c: 4bb18f77 blmi fec65b80 - 1da0: 290a0995 stmdbcs sl, {r0, r2, r4, r7, r8, fp} - 1da4: 711b1a06 tstvc fp, r6, lsl #20 - 1da8: 0503280a streq r2, [r3, #-2058] - 1dac: 33526906 cmpcc r2, #98304 ; 0x18000 - 1db0: f83dda66 undefined instruction 0xf83dda66 - 1db4: cf12060a svcgt 0x0012060a - 1db8: 954b3d59 strbls r3, [fp, #-3417] - 1dbc: 711b0f06 tstvc fp, r6, lsl #30 - 1dc0: 3d4f0104 stfcce f0, [pc, #-16] - 1dc4: 061d0a09 ldreq r0, [sp], -r9, lsl #20 - 1dc8: 0a756d64 beq 1d5d360 - 1dcc: 0ac4200d beq ff109e08 - 1dd0: e4020317 str r0, [r2], #-791 - 1dd4: 305a3cb4 ldrhcc r3, [sl], #-196 - 1dd8: 065b3007 ldrbeq r3, [fp], -r7 - 1ddc: 06711b05 ldrbteq r1, [r1], -r5, lsl #22 - 1de0: 58c61b73 stmiapl r6, {r0, r1, r4, r5, r6, r8, r9, fp, ip}^ - 1de4: 0a404bdd beq 1014d60 - 1de8: 3d06300a stccc 0, cr3, [r6, #-40] - 1dec: 09dd58a3 ldmibeq sp, {r0, r1, r5, r7, fp, ip, lr}^ - 1df0: 7a66080a bvc 1983e20 - 1df4: 3f4c7703 svccc 0x004c7703 - 1df8: cc14cc14 ldcgt 12, cr12, [r4], {20} - 1dfc: 1f06954b svcne 0x0006954b - 1e00: 0a09711b beq 25e274 - 1e04: 5266060a rsbpl r0, r6, #10485760 ; 0xa00000 - 1e08: 1f03033a svcne 0x0003033a - 1e0c: 3d063070 stccc 0, cr3, [r6, #-448] - 1e10: 060104f8 undefined - 1e14: 0a711b20 beq 1c48a9c - 1e18: 5f6a0608 svcpl 0x006a0608 - 1e1c: 060104d0 undefined - 1e20: 09b63616 ldmibeq r6!, {r1, r2, r4, r9, sl, ip, sp} - 1e24: 6806030a stmdavs r6, {r1, r3, r8, r9} - 1e28: 0f03766d svceq 0x0003766d - 1e2c: e9280d06 stmdb r8!, {r1, r2, r8, sl, fp} - 1e30: d75f6b06 ldrble r6, [pc, -r6, lsl #22] - 1e34: d0140503 andsle r0, r4, r3, lsl #10 - 1e38: 7714020d ldrvc r0, [r4, -sp, lsl #4] - 1e3c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1e40: 01030a0a tsteq r3, sl, lsl #20 - 1e44: 73075d14 movwvc r5, #32020 ; 0x7d14 - 1e48: 14cc1479 strbne r1, [ip], #1145 - 1e4c: d3cc14cc bicle r1, ip, #-872415232 ; 0xcc000000 - 1e50: 1b2106b7 blne 843934 - 1e54: 0e5e0671 mrceq 6, 2, r0, cr14, cr1, {3} - 1e58: 14040829 strne r0, [r4], #-2089 - 1e5c: 300c0877 andcc r0, ip, r7, ror r8 - 1e60: b70a0906 strlt r0, [sl, -r6, lsl #18] - 1e64: fbc8117f blx ff20646a - 1e68: 01000001 tsteq r0, r1 - 1e6c: 4027c000 eormi ip, r7, r0 - 1e70: 00000600 andeq r0, r0, r0, lsl #12 - 1e74: 56950200 ldrpl r0, [r5], r0, lsl #4 - 1e78: 1c020000 stcne 0, cr0, [r2], {0} - 1e7c: 0200005f andeq r0, r0, #95 ; 0x5f - 1e80: 00006024 andeq r6, r0, r4, lsr #32 - 1e84: 4030ed01 eorsmi lr, r0, r1, lsl #26 - 1e88: 4fe90200 svcmi 0x00e90200 - 1e8c: 2d010000 stccs 0, cr0, [r1] - 1e90: 00004031 andeq r4, r0, r1, lsr r0 - 1e94: 51000000 tstpl r0, r0 - 1e98: 19d50001 ldmibne r5, {r0}^ - 1e9c: 02010001 andeq r0, r1, #1 ; 0x1 - 1ea0: 11780500 cmnne r8, r0, lsl #10 - 1ea4: 000e296c andeq r2, lr, ip, ror #18 - 1ea8: 01010100 tsteq r1, r0, lsl #2 - 1eac: 01000101 tsteq r0, r1, lsl #2 - 1eb0: 01010100 tsteq r1, r0, lsl #2 - 1eb4: 01edd501 mvneq sp, r1, lsl #10 - 1eb8: 01de0002 bicseq r0, lr, r2 - 1ebc: fd0a0202 stc2 2, cr0, [sl, #-8] - 1ec0: 144d0112 strbne r0, [sp], #-274 - 1ec4: f9030308 undefined instruction 0xf9030308 - 1ec8: 1b160612 blne 583718 - 1ecc: 29100679 ldmdbcs r0, {r0, r3, r4, r5, r6, r9, sl} - 1ed0: 0a0a0a1a beq 284740 - 1ed4: 06260a24 strteq r0, [r6], -r4, lsr #20 - 1ed8: d9290e55 stmdble r9!, {r0, r2, r4, r6, r9, sl, fp} - 1edc: 175b3029 ldrbne r3, [fp, -r9, lsr #32] - 1ee0: 06030a75 undefined - 1ee4: 4a102917 bmi 40c348 - 1ee8: 230a094c movwcs r0, #43340 ; 0xa94c - 1eec: 020c0608 andeq r0, ip, #8388608 ; 0x800000 - 1ef0: 763d0505 ldrtvc r0, [sp], -r5, lsl #10 - 1ef4: d5077b05 strle r7, [r7, #-2821] - 1ef8: 14010439 strne r0, [r1], #-1081 - 1efc: 1d0a09cf stcne 9, cr0, [sl, #-828] - 1f00: 3b526206 blcc 149a720 - 1f04: 02031f0a andeq r1, r3, #40 ; 0x28 - 1f08: da660d23 ble 198539c - 1f0c: 0b0a954b bleq 2a7440 - 1f10: 3d59cf12 ldclcc 15, cr12, [r9, #-72] - 1f14: 0104954b tsteq r4, fp, asr #10 - 1f18: 711b1e06 tstvc fp, r6, lsl #28 - 1f1c: 0608cc6b streq ip, [r8], -fp, ror #24 - 1f20: 2e05030c cdpcs 3, 0, cr0, cr5, cr12, {0} - 1f24: 5205d92f andpl sp, r5, #770048 ; 0xbc000 - 1f28: 97cc5306 strbls r5, [ip, r6, lsl #6] - 1f2c: b481040d strlt r0, [r1], #1037 - 1f30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1f34: 0a092115 beq 24a390 - 1f38: 0a22150f beq 88737c - 1f3c: 49c02306 stmibmi r0, {r1, r2, r8, r9, sp}^ - 1f40: 300730f7 strdcc r3, [r7], -r7 - 1f44: 1b13065b blne 4c38b8 - 1f48: 0c0a0971 stceq 9, cr0, [sl], {113} - 1f4c: 020c0608 andeq r0, ip, #8388608 ; 0x800000 - 1f50: 01043222 tsteq r4, r2, lsr #4 - 1f54: 64067ef1 strvs r7, [r6], #-3825 - 1f58: 040dd85f streq sp, [sp], #-2143 - 1f5c: 0c081774 stceq 7, cr1, [r8], {116} - 1f60: 21150630 tstcs r5, r0, lsr r6 - 1f64: 15030a09 strne r0, [r3, #-2569] - 1f68: 06070322 streq r0, [r7], -r2, lsr #6 - 1f6c: 06f3280f ldrbteq r2, [r3], pc, lsl #16 - 1f70: 03d75f6b bicseq r5, r7, #428 ; 0x1ac - 1f74: 0dd01404 cfldrdeq mvd1, [r0, #16] - 1f78: 08771405 ldmdaeq r7!, {r0, r2, sl, ip}^ - 1f7c: 0a06300c beq 18dfb4 - 1f80: 1401030a strne r0, [r1], #-778 - 1f84: 7973075d ldmdbvc r3!, {r0, r2, r3, r4, r6, r8, r9, sl}^ - 1f88: cc14cc14 ldcgt 12, cr12, [r4], {20} - 1f8c: b7d3cc14 bfilt ip, r4, (invalid: 24:19) - 1f90: 711b2106 tstvc fp, r6, lsl #2 - 1f94: 290e5e06 stmdbcs lr, {r1, r2, r9, sl, fp, ip, lr} - 1f98: 77140408 ldrvc r0, [r4, -r8, lsl #8] - 1f9c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1fa0: 114a0a09 cmpne sl, r9, lsl #20 - 1fa4: 320151c8 andcc r5, r1, #50 ; 0x32 - 1fa8: 00023fd5 ldrdeq r3, [r2], -r5 - 1fac: 0a030314 beq c2c04 - 1fb0: 06010de5 streq r0, [r1], -r5, ror #27 - 1fb4: 0403081c streq r0, [r3], #-2076 - 1fb8: 0de10301 stcleq 3, cr0, [r1, #4]! - 1fbc: 0205d415 andeq sp, r5, #352321536 ; 0x15000000 - 1fc0: 9b1b3606 blls 6cf7e0 - 1fc4: 0505060d streq r0, [r5, #-1549] - 1fc8: 0c08134b stceq 3, cr1, [r8], {75} - 1fcc: 7b050630 blvc 143894 - 1fd0: 9e1b6506 cfmul32ls mvfx6, mvfx11, mvfx6 - 1fd4: b481040d strlt r0, [r1], #1037 - 1fd8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 1fdc: 16062115 undefined - 1fe0: 0a09711b beq 25e454 - 1fe4: 37680676 undefined - 1fe8: b2015100 andlt r5, r1, #0 ; 0x0 - 1fec: 0232d501 eorseq sp, r2, #4194304 ; 0x400000 - 1ff0: 03040b00 movweq r0, #19200 ; 0x4b00 - 1ff4: 0114a20a tsteq r4, sl, lsl #4 - 1ff8: 03081d13 movweq r1, #36115 ; 0x8d13 - 1ffc: 9e030104 adflss f0, f3, f4 - 2000: 062a1514 undefined - 2004: 0a7e1b16 beq 1f88c64 - 2008: 297c0602 ldmdbcs ip!, {r1, r9, sl}^ - 200c: 040a0964 streq r0, [sl], #-2404 - 2010: 030a6730 movweq r6, #42800 ; 0xa730 - 2014: a52e6b31 strge r6, [lr, #-2865]! - 2018: 741b0506 ldrvc r0, [fp], #-1286 - 201c: 38780a09 ldmdacc r8!, {r0, r3, r9, fp}^ - 2020: f601514c undefined instruction 0xf601514c - 2024: 023fd501 eorseq sp, pc, #4194304 ; 0x400000 - 2028: 03030f00 movweq r0, #16128 ; 0x3f00 - 202c: 010de50a tsteq sp, sl, lsl #10 - 2030: 03081c06 movweq r1, #35846 ; 0x8c06 - 2034: e1030104 tst r3, r4, lsl #2 - 2038: 05d4150d ldrbeq r1, [r4, #1293] - 203c: 1b360602 blne d8384c - 2040: 05060d9b streq r0, [r6, #-3483] - 2044: 08763d05 ldmdaeq r6!, {r0, r2, r8, sl, fp, ip, sp}^ - 2048: 0506300c streq r3, [r6, #-12] - 204c: 0e65067b mcreq 6, 3, r0, cr5, cr11, {3} - 2050: 58040d01 stmdapl r4, {r0, r8, sl, fp} - 2054: 300c08dd ldrdcc r0, [ip], -sp - 2058: 06211506 strteq r1, [r1], -r6, lsl #10 - 205c: 09711b16 ldmdbeq r1!, {r1, r2, r4, r8, r9, fp, ip}^ - 2060: 6806760a stmdavs r6, {r1, r3, r9, sl, ip, sp, lr} - 2064: 01160037 tsteq r6, r7, lsr r0 - 2068: 00020000 andeq r0, r2, r0 - 206c: 0040297c subeq r2, r0, ip, ror r9 - 2070: 00000002 andeq r0, r0, r2 - 2074: 0058c502 subseq ip, r8, r2, lsl #10 - 2078: 4fe90200 svcmi 0x00e90200 - 207c: 00000000 andeq r0, r0, r0 - 2080: 00010000 andeq r0, r1, r0 - 2084: 2ac80000 bcs ff20208c - 2088: 01510040 cmpeq r1, r0, asr #32 - 208c: 0119d500 tsteq r9, r0, lsl #10 - 2090: 00020100 andeq r0, r2, r0, lsl #2 - 2094: 6c117805 ldcvs 8, cr7, [r1], {5} - 2098: 00000e29 andeq r0, r0, r9, lsr #28 - 209c: 01010101 tsteq r1, r1, lsl #2 - 20a0: 00010001 andeq r0, r1, r1 - 20a4: 01010101 tsteq r1, r1, lsl #2 - 20a8: 0201d5d5 andeq sp, r1, #893386752 ; 0x35400000 - 20ac: 0201a600 andeq sl, r1, #0 ; 0x0 - 20b0: 13d30b02 bicsne r0, r3, #2048 ; 0x800 - 20b4: 08144601 ldmdaeq r4, {r0, r9, sl, lr} - 20b8: 13cf0303 bicne r0, pc, #201326592 ; 0xc000000 - 20bc: 791b1606 ldmdbvc fp, {r1, r2, r9, sl, ip} - 20c0: 19291006 stmdbne r9!, {r1, r2, ip} - 20c4: 210a090a tstcs sl, sl, lsl #18 - 20c8: 5506230a strpl r2, [r6, #-778] - 20cc: 8ccb290e stclhi 9, cr2, [fp], {14} - 20d0: 75175b30 ldrvc r5, [r7, #-2864] - 20d4: 17741b1d undefined - 20d8: f83d7a66 undefined instruction 0xf83d7a66 - 20dc: 061e0a09 ldreq r0, [lr], -r9, lsl #20 - 20e0: 0a711b26 beq 1c48d80 - 20e4: 0601031d undefined - 20e8: 66776d66 ldrbtvs r6, [r7], -r6, ror #26 - 20ec: 0a954bda beq fe55505c - 20f0: 12020404 andne r0, r2, #67108864 ; 0x4000000 - 20f4: 030d0acf movweq r0, #56015 ; 0xdacf - 20f8: a49f0707 ldrge r0, [pc], #1799 ; 2100 <__USR_stack_size+0x1900> - 20fc: 02030104 andeq r0, r3, #1 ; 0x1 - 2100: 55441806 strbpl r1, [r4, #-2054] - 2104: 06140a09 ldreq r0, [r4], -r9, lsl #20 - 2108: 03d85f66 bicseq r5, r8, #408 ; 0x198 - 210c: 15b62070 ldrne r2, [r6, #112]! - 2110: 15781421 ldrbne r1, [r8, #-1057]! - 2114: 14791321 ldrbtne r1, [r9], #-801 - 2118: 4bcc14cc blmi ff307450 - 211c: 06010495 undefined - 2120: 09711b21 ldmdbeq r1!, {r0, r5, r8, r9, fp, ip}^ - 2124: 64060a0a strvs r0, [r6], #-2570 - 2128: 7722d85f undefined - 212c: 5b300730 blpl c03df4 - 2130: 17742512 undefined - 2134: 0a09dd58 beq 27969c - 2138: 035b3006 cmpeq fp, #6 ; 0x6 - 213c: 2817060c ldmdacs r7, {r2, r3, r9, sl} - 2140: 5f6b06f3 svcpl 0x006b06f3 - 2144: 140403d7 strne r0, [r4], #-983 - 2148: 14020dd0 strne r0, [r2], #-3536 - 214c: 300c0877 andcc r0, ip, r7, ror r8 - 2150: 030a0a06 movweq r0, #43526 ; 0xaa06 - 2154: 075d1401 ldrbeq r1, [sp, -r1, lsl #8] - 2158: cc147973 ldcgt 9, cr7, [r4], {115} - 215c: cc14cc14 ldcgt 12, cr12, [r4], {20} - 2160: 2106b7d3 ldrdcs fp, [r6, -r3] - 2164: 5e06711b mcrpl 1, 0, r7, cr6, cr11, {0} - 2168: 0408290e streq r2, [r8], #-2318 - 216c: 0c087714 stceq 7, cr7, [r8], {20} - 2170: 661f0630 undefined - 2174: 04050009 streq r0, [r5], #-9 - 2178: 0f010001 svceq 0x00010001 - 217c: cc140b08 ldcgt 11, cr0, [r4], {8} - 2180: 000000d1 ldrdeq r0, [r0], -r1 - 2184: 2aec0001 bcs ffb02190 - 2188: 00030040 andeq r0, r3, r0, asr #32 - 218c: 49020000 stmdbmi r2, {} - 2190: 0200005a andeq r0, r0, #90 ; 0x5a - 2194: 00005dcd andeq r5, r0, sp, asr #27 - 2198: 403a6501 eorsmi r6, sl, r1, lsl #10 - 219c: 00000100 andeq r0, r0, r0, lsl #2 - 21a0: 003f9200 eorseq r9, pc, r0, lsl #4 - 21a4: 00015100 andeq r5, r1, r0, lsl #2 - 21a8: 000119d5 ldrdeq r1, [r1], -r5 - 21ac: 05000201 streq r0, [r0, #-513] - 21b0: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 21b4: 0100000e tsteq r0, lr - 21b8: 01010101 tsteq r1, r1, lsl #2 - 21bc: 01000100 tsteq r0, r0, lsl #2 - 21c0: d5010101 strle r0, [r1, #-257] - 21c4: 0002018f andeq r0, r2, pc, lsl #3 - 21c8: 0c02024c sfmeq f0, 4, [r2], {76} - 21cc: 2c0114be cfstrscs mvf1, [r1], {190} - 21d0: 04030801 streq r0, [r3], #-2049 - 21d4: 14ba0301 ldrtne r0, [sl], #769 - 21d8: 170a2a15 smladne sl, r5, sl, r2 - 21dc: 2e060403 cdpcs 4, 0, cr0, cr6, cr3, {0} - 21e0: 93591b29 cmpls r9, #41984 ; 0xa400 - 21e4: 3953030a ldmdbcc r3, {r1, r3, r8, r9}^ - 21e8: 1b1c5a3d blne 718ae4 - 21ec: 01040d0a tsteq r4, sl, lsl #26 - 21f0: 3f590c22 svccc 0x00590c22 - 21f4: 711b0806 tstvc fp, r6, lsl #16 - 21f8: 0805020d stmdaeq r5, {r0, r2, r3, r9} - 21fc: 0c083c22 stceq 12, cr3, [r8], {34} - 2200: 78050630 stmdavc r5, {r4, r5, r9, sl} - 2204: 9e1b7406 cfmulsls mvf7, mvf11, mvf6 - 2208: af32080a svcge 0x0032080a - 220c: 6428142e strtvs r1, [r8], #-1070 - 2210: 010b0508 tsteq fp, r8, lsl #10 - 2214: 0c08b12f stfeqd f3, [r8], {47} - 2218: 7c060630 stcvc 6, cr0, [r6], {48} - 221c: 0a09290e beq 24c65c - 2220: 03122502 tsteq r2, #8388608 ; 0x800000 - 2224: 0a493c01 beq 1251230 - 2228: 36020608 strcc r0, [r2], -r8, lsl #12 - 222c: 0dc3d3a2 stcleq 3, cr13, [r3, #648] - 2230: 094e3d03 stmdbeq lr, {r0, r1, r8, sl, fp, ip, sp}^ - 2234: 0c08050a cfstr32eq mvfx0, [r8], {10} - 2238: 040a0630 streq r0, [sl], #-1584 - 223c: 05060104 streq r0, [r6, #-260] - 2240: 7a061529 bvc 1876ec - 2244: 04089044 streq r9, [r8], #-68 - 2248: 0c084e3d stceq 14, cr4, [r8], {61} - 224c: 0a090630 beq 243b14 - 2250: 0e670663 cdpeq 6, 6, cr0, cr7, cr3, {3} - 2254: 00006d16 andeq r6, r0, r6, lsl sp - 2258: 84000100 strhi r0, [r0], #-256 - 225c: 0100402b tsteq r0, fp, lsr #32 - 2260: 02000000 andeq r0, r0, #0 ; 0x0 - 2264: 00005dcd andeq r5, r0, sp, asr #27 - 2268: 00000000 andeq r0, r0, r0 - 226c: d5000151 strle r0, [r0, #-337] - 2270: 01000119 tsteq r0, r9, lsl r1 - 2274: 78050002 stmdavc r5, {r1} - 2278: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 227c: 01010000 tsteq r1, r0 - 2280: 00010101 andeq r0, r1, r1, lsl #2 - 2284: 01010001 tsteq r1, r1 - 2288: 3ad50101 bcc ff542694 - 228c: 02180002 andseq r0, r8, #2 ; 0x2 - 2290: 14f30d02 ldrbtne r0, [r3], #3330 - 2294: 08131501 ldmdaeq r3, {r0, r8, sl, ip} - 2298: 03010403 movweq r0, #5123 ; 0x1403 - 229c: 2a1514ef bcs 547660 - 22a0: 1b290306 blne a42ec0 - 22a4: 020a7c11 andeq r7, sl, #4352 ; 0x1100 - 22a8: 0a09ab42 beq 26cfb8 - 22ac: 4e6b2c02 cdpmi 12, 6, cr2, cr11, cr2, {0} - 22b0: 27030a96 undefined - 22b4: 44780607 ldrbtmi r0, [r8], #-1543 - 22b8: 037b0a9e cmneq fp, #647168 ; 0x9e000 - 22bc: 09af2774 stmibeq pc!, {r2, r4, r5, r6, r8, r9, sl, sp} - 22c0: 0a03760a beq dfaf0 - 22c4: 004e9d47 subeq r9, lr, r7, asr #26 - 22c8: 00010000 andeq r0, r1, r0 - 22cc: 004038c8 subeq r3, r0, r8, asr #17 - 22d0: 00000001 andeq r0, r0, r1 - 22d4: 00658d02 rsbeq r8, r5, r2, lsl #26 - 22d8: 00000000 andeq r0, r0, r0 - 22dc: 00015100 andeq r5, r1, r0, lsl #2 - 22e0: 000119d5 ldrdeq r1, [r1], -r5 - 22e4: 05000201 streq r0, [r0, #-513] - 22e8: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 22ec: 0100000e tsteq r0, lr - 22f0: 01010101 tsteq r1, r1, lsl #2 - 22f4: 01000100 tsteq r0, r0, lsl #2 - 22f8: d5010101 strle r0, [r1, #-257] - 22fc: 0300021b movweq r0, #539 ; 0x21b - 2300: cc060202 sfmgt f0, 4, [r6], {2} - 2304: 1b020117 blne 82768 - 2308: 01040308 tsteq r4, r8, lsl #6 - 230c: 1517c803 ldrne ip, [r7, #-2051] - 2310: 7e0a092a cdpvc 9, 0, cr0, cr10, cr10, {1} - 2314: 7c1b0606 ldcvc 6, cr0, [fp], {6} - 2318: 00000117 andeq r0, r0, r7, lsl r1 - 231c: 38d00001 ldmcc r0, {r0}^ - 2320: 00050040 andeq r0, r5, r0, asr #32 - 2324: 9d020000 stcls 0, cr0, [r2] - 2328: 01000066 tsteq r0, r6, rrx - 232c: 00402fbd strheq r2, [r0], #-253 - 2330: 00680802 rsbeq r0, r8, r2, lsl #16 - 2334: 23f50100 mvnscs r0, #0 ; 0x0 - 2338: 18020040 stmdane r2, {r6} - 233c: 00000069 andeq r0, r0, r9, rrx - 2340: 51000000 tstpl r0, r0 - 2344: 19d50001 ldmibne r5, {r0}^ - 2348: 02010001 andeq r0, r1, #1 ; 0x1 - 234c: 11780500 cmnne r8, r0, lsl #10 - 2350: 000e296c andeq r2, lr, ip, ror #18 - 2354: 01010100 tsteq r1, r0, lsl #2 - 2358: 01000101 tsteq r0, r1, lsl #2 - 235c: 01010100 tsteq r1, r0, lsl #2 - 2360: 0257d501 subseq sp, r7, #4194304 ; 0x400000 - 2364: 02025200 andeq r5, r2, #0 ; 0x0 - 2368: 0117eb08 tsteq r7, r8, lsl #22 - 236c: 03081418 movweq r1, #33816 ; 0x8418 - 2370: e7030104 str r0, [r3, -r4, lsl #2] - 2374: 032a1517 teqeq sl, #96468992 ; 0x5c00000 - 2378: 362c0601 strtcc r0, [ip], -r1, lsl #12 - 237c: 060a0ab8 undefined - 2380: 662a0e5e undefined - 2384: 29200630 stmdbcs r0!, {r4, r5, r9, sl} - 2388: 4a020d0e bmi 857c8 - 238c: 300c08eb andcc r0, ip, fp, ror #17 - 2390: 08291106 stmdaeq r9!, {r1, r2, r8, ip} - 2394: 14030c06 strne r0, [r3], #-3078 - 2398: 1b7c0677 blne 1f03d7c - 239c: 14040dc6 strne r0, [r4], #-3526 - 23a0: 300c0877 andcc r0, ip, r7, ror r8 - 23a4: 036d1706 cmneq sp, #1572864 ; 0x180000 - 23a8: 0a2a1001 beq a863b4 - 23ac: 0c060871 stceq 8, cr0, [r6], {113} - 23b0: 09771405 ldmdbeq r7!, {r0, r2, sl, ip}^ - 23b4: 1b02700a blne 9e3e4 - 23b8: 01513afd ldrsheq r3, [r1, #-173] - 23bc: 021dd51e andseq sp, sp, #125829120 ; 0x7800000 - 23c0: 03040100 movweq r0, #16640 ; 0x4100 - 23c4: 0117c008 tsteq r7, r8 - 23c8: 03081403 movweq r1, #33795 ; 0x8403 - 23cc: bc030104 stflts f0, [r3], {4} - 23d0: 062a1517 undefined - 23d4: 097c1b12 ldmdbeq ip!, {r1, r4, r8, r9, fp, ip}^ - 23d8: 1b1c7d0a blne 721808 - 23dc: d5240151 strle r0, [r4, #-337]! - 23e0: 2c000252 sfmcs f0, 4, [r0], {82} - 23e4: 94080306 strls r0, [r8], #-774 - 23e8: 01170118 tsteq r7, r8, lsl r1 - 23ec: 01040308 tsteq r4, r8, lsl #6 - 23f0: 15189003 ldrne r9, [r8, #-3] - 23f4: 1b14062a blne 503ca4 - 23f8: 020a097e andeq r0, sl, #2064384 ; 0x1f8000 - 23fc: 64297706 strtvs r7, [r9], #-1798 - 2400: 62510e05 subsvs r0, r1, #80 ; 0x50 - 2404: 7d057f0a stcvc 15, cr7, [r5, #-40] - 2408: 7d05c548 cfstr32vc mvfx12, [r5, #-288] - 240c: be510706 cdplt 7, 5, cr0, cr1, cr6, {0} - 2410: 10275d2f eorne r5, r7, pc, lsr #26 - 2414: 513b0b2c teqpl fp, ip, lsr #22 - 2418: 07300730 undefined - 241c: 0730a43d undefined - 2420: 0104a43d tsteq r4, sp, lsr r4 - 2424: 48441e06 stmdami r4, {r1, r2, r9, sl, fp, ip}^ - 2428: 01376206 teqeq r7, r6, lsl #4 - 242c: 066e0a09 strbteq r0, [lr], -r9, lsl #20 - 2430: a895446a ldmge r5, {r1, r3, r5, r6, sl, lr} - 2434: 01000000 tsteq r0, r0 - 2438: 40398800 eorsmi r8, r9, r0, lsl #16 - 243c: 00000200 andeq r0, r0, r0, lsl #4 - 2440: 6f340200 svcvs 0x00340200 - 2444: d9010000 stmdble r1, {} - 2448: 00000036 andeq r0, r0, r6, lsr r0 - 244c: 51000000 tstpl r0, r0 - 2450: 19d50001 ldmibne r5, {r0}^ - 2454: 02010001 andeq r0, r1, #1 ; 0x1 - 2458: 11780500 cmnne r8, r0, lsl #10 - 245c: 000e296c andeq r2, lr, ip, ror #18 - 2460: 01010100 tsteq r1, r0, lsl #2 - 2464: 01000101 tsteq r0, r1, lsl #2 - 2468: 01010100 tsteq r1, r0, lsl #2 - 246c: 0270d501 rsbseq sp, r0, #4194304 ; 0x400000 - 2470: 02024a00 andeq r4, r2, #0 ; 0x0 - 2474: 0112cb01 tsteq r2, r1, lsl #22 - 2478: 03081330 movweq r1, #33584 ; 0x8330 - 247c: c7030104 strgt r0, [r3, -r4, lsl #2] - 2480: 062a1512 undefined - 2484: 32f2510a rscscc r5, r2, #-2147483646 ; 0x80000002 - 2488: 30080a5b andcc r0, r8, fp, asr sl - 248c: 3bcd2eb2 blcc ff34df5c - 2490: 3b2116a6 blcc 847f30 - 2494: 22020d51 andcs r0, r2, #5184 ; 0x1440 - 2498: 300c0814 andcc r0, ip, r4, lsl r8 - 249c: 0a211606 beq 847cbc - 24a0: 24030308 strcs r0, [r3], #-776 - 24a4: 2eb63bfc vmovcs.u16 r3, d22[3] - 24a8: 3b211609 blcc 847cd4 - 24ac: 220408fb andcs r0, r4, #16449536 ; 0xfb0000 - 24b0: 300c0814 andcc r0, ip, r4, lsl r8 - 24b4: 0a211606 beq 847cd4 - 24b8: 2602030b strcs r0, [r2], -fp, lsl #6 - 24bc: 3fb83905 svccc 0x00b83905 - 24c0: dc5a074d mrrcle 7, 4, r0, sl, cr13 - 24c4: ca172215 bgt 5cad20 - 24c8: 7b067715 blvc 1a0124 - 24cc: 0408290e streq r2, [r8], #-2318 - 24d0: 0c081422 cfstrseq mvf1, [r8], {34} - 24d4: 21160630 tstcs r6, r0, lsr r6 - 24d8: 03610a09 cmneq r1, #36864 ; 0x9000 - 24dc: 12611f02 rsbne r1, r1, #8 ; 0x8 - 24e0: 01000001 tsteq r0, r1 - 24e4: 40338c00 eorsmi r8, r3, r0, lsl #24 - 24e8: 00000c00 andeq r0, r0, r0, lsl #24 - 24ec: 77b80200 ldrvc r0, [r8, r0, lsl #4]! - 24f0: f4020000 vst4.8 {d0-d3}, [r2], r0 - 24f4: 01000078 tsteq r0, r8, ror r0 - 24f8: 0000ff25 andeq pc, r0, r5, lsr #30 - 24fc: 00fee901 rscseq lr, lr, r1, lsl #18 - 2500: ffc50100 undefined instruction 0xffc50100 - 2504: 4d010000 stcmi 0, cr0, [r1] - 2508: 0100002c tsteq r0, ip, lsr #32 - 250c: 00002ccd andeq r2, r0, sp, asr #25 - 2510: 002f2101 eoreq r2, pc, r1, lsl #2 - 2514: 2e590100 rdfcse f0, f1, f0 - 2518: 71010000 tstvc r1, r0 - 251c: 0100002f tsteq r0, pc, lsr #32 - 2520: 00010798 muleq r1, r8, r7 - 2524: 002fb901 eoreq fp, pc, r1, lsl #18 - 2528: 00000000 andeq r0, r0, r0 - 252c: 00015100 andeq r5, r1, r0, lsl #2 - 2530: 000119d5 ldrdeq r1, [r1], -r5 - 2534: 05000201 streq r0, [r0, #-513] - 2538: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 253c: 0100000e tsteq r0, lr - 2540: 01010101 tsteq r1, r1, lsl #2 - 2544: 01000100 tsteq r0, r0, lsl #2 - 2548: d5010101 strle r0, [r1, #-257] - 254c: 000201a7 andeq r0, r2, r7, lsr #3 - 2550: 00020246 andeq r0, r2, r6, asr #4 - 2554: 520115d9 andpl r1, r1, #910163968 ; 0x36400000 - 2558: 04030801 streq r0, [r3], #-2049 - 255c: 15d50301 ldrbne r0, [r5, #769] - 2560: 04032a15 streq r2, [r3], #-2581 - 2564: 020d5643 andeq r5, sp, #70254592 ; 0x4300000 - 2568: 0c087714 stceq 7, cr7, [r8], {20} - 256c: 04060630 streq r0, [r6], #-1584 - 2570: f93d731b undefined instruction 0xf93d731b - 2574: 48447715 stmdami r4, {r0, r2, r4, r8, r9, sl, ip, sp, lr}^ - 2578: c61b7806 ldrgt r7, [fp], -r6, lsl #16 - 257c: 741b0406 ldrvc r0, [fp], #-1030 - 2580: b12f030d teqlt pc, sp, lsl #6 - 2584: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 2588: 040dcf12 streq ip, [sp], #-3858 - 258c: 0c08b12f stfeqd f3, [r8], {47} - 2590: 290f0630 stmdbcs pc, {r4, r5, r9, sl} - 2594: 1422050d strtne r0, [r2], #-1293 - 2598: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 259c: 060d7915 undefined - 25a0: 0c08b12f stfeqd f3, [r8], {47} - 25a4: 78140630 ldmdavc r4, {r4, r5, r9, sl} - 25a8: b12f070d teqlt pc, sp, lsl #14 - 25ac: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 25b0: 78170303 ldmdavc r7, {r0, r1, r8, r9} - 25b4: b12f080d teqlt pc, sp, lsl #16 - 25b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 25bc: 090d2314 stmdbeq sp, {r2, r4, r8, r9, sp} - 25c0: 0c08b12f stfeqd f3, [r8], {47} - 25c4: 20190630 andscs r0, r9, r0, lsr r6 - 25c8: b22f5d2f eorlt r5, pc, #3008 ; 0xbc0 - 25cc: b12f0a0d teqlt pc, sp, lsl #20 - 25d0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 25d4: 77062303 strvc r2, [r6, -r3, lsl #6] - 25d8: 0b0d2c0e bleq 34d618 - 25dc: 0c081422 cfstrseq mvf1, [r8], {34} - 25e0: 29060630 stmdbcs r6, {r4, r5, r9, sl} - 25e4: 0c0d721b sfmeq f7, 4, [sp], {27} - 25e8: 0c08eb4a stceq 11, cr14, [r8], {74} - 25ec: 0a090630 beq 243eb4 - 25f0: 0e490656 mcreq 6, 2, r0, cr9, cr6, {2} - 25f4: 00006520 andeq r6, r0, r0, lsr #10 - 25f8: 18000100 stmdane r0, {r8} - 25fc: 01004034 tsteq r0, r4, lsr r0 - 2600: 02000000 andeq r0, r0, #0 ; 0x0 - 2604: 000078f4 strdeq r7, [r0], -r4 - 2608: 00000000 andeq r0, r0, r0 - 260c: d5000151 strle r0, [r0, #-337] - 2610: 01000119 tsteq r0, r9, lsl r1 - 2614: 78050002 stmdavc r5, {r1} - 2618: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 261c: 01010000 tsteq r1, r0 - 2620: 00010101 andeq r0, r1, r1, lsl #2 - 2624: 01010001 tsteq r1, r1 - 2628: 32d50101 sbcscc r0, r5, #1073741824 ; 0x40000000 - 262c: 02280002 eoreq r0, r8, #2 ; 0x2 - 2630: 16b20102 ldrtne r0, [r2], r2, lsl #2 - 2634: 08010e01 stmdaeq r1, {r0, r9, sl, fp} - 2638: 03010403 movweq r0, #5123 ; 0x1403 - 263c: 2a1516ae bcs 5480fc - 2640: 7e1b2606 cfmsub32vc mvax0, mvfx2, mvfx11, mvfx6 - 2644: e94d1874 stmdb sp, {r2, r4, r5, r6, fp, ip}^ - 2648: c021e056 eorgt lr, r1, r6, asr r0 - 264c: e6511306 ldrb r1, [r1], -r6, lsl #6 - 2650: 875aa53c smmlarhi sl, ip, r5, sl - 2654: 0a09a53c beq 26bb4c - 2658: 7fb40675 svcvc 0x00b40675 - 265c: 005f9344 subseq r9, pc, r4, asr #6 - 2660: 00020000 andeq r0, r2, r0 - 2664: 0040346c subeq r3, r0, ip, ror #8 - 2668: 00000001 andeq r0, r0, r1 - 266c: 007a0402 rsbseq r0, sl, r2, lsl #8 - 2670: 00000000 andeq r0, r0, r0 - 2674: 00000100 andeq r0, r0, r0, lsl #2 - 2678: 40347000 eorsmi r7, r4, r0 - 267c: 00015100 andeq r5, r1, r0, lsl #2 - 2680: 000119d5 ldrdeq r1, [r1], -r5 - 2684: 05000201 streq r0, [r0, #-513] - 2688: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 268c: 0100000e tsteq r0, lr - 2690: 01010101 tsteq r1, r1, lsl #2 - 2694: 01000100 tsteq r0, r0, lsl #2 - 2698: d5010101 strle r0, [r1, #-257] - 269c: 01000224 tsteq r0, r4, lsr #4 - 26a0: dc030202 sfmle f0, 4, [r3], {2} - 26a4: 18020116 stmdane r2, {r1, r2, r4, r8} - 26a8: 01040308 tsteq r4, r8, lsl #6 - 26ac: 1516d803 ldrne sp, [r6, #-2051] - 26b0: 1b03062a blne c3f60 - 26b4: 0500097c streq r0, [r0, #-2428] - 26b8: 01000104 tsteq r0, r4, lsl #2 - 26bc: 140b0811 strne r0, [fp], #-2065 - 26c0: 00004ccc andeq r4, r0, ip, asr #25 - 26c4: 6e000100 adfvss f0, f0, f0 - 26c8: 01004034 tsteq r0, r4, lsr r0 - 26cc: 02000000 andeq r0, r0, #0 ; 0x0 - 26d0: 00007b10 andeq r7, r0, r0, lsl fp - 26d4: 00000000 andeq r0, r0, r0 - 26d8: d5000151 strle r0, [r0, #-337] - 26dc: 01000119 tsteq r0, r9, lsl r1 - 26e0: 78050002 stmdavc r5, {r1} - 26e4: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 26e8: 01010000 tsteq r1, r0 - 26ec: 00010101 andeq r0, r1, r1, lsl #2 - 26f0: 01010001 tsteq r1, r1 - 26f4: 19d50101 ldmibne r5, {r0, r8}^ - 26f8: 02010002 andeq r0, r1, #2 ; 0x2 - 26fc: 16e80402 strbtne r0, [r8], r2, lsl #8 - 2700: 08010201 stmdaeq r1, {r0, r9} - 2704: 03010403 movweq r0, #5123 ; 0x1403 - 2708: 2a1516e4 bcs 5482a0 - 270c: 147e0a09 ldrbtne r0, [lr], #-2569 - 2710: 00007fce andeq r7, r0, lr, asr #31 - 2714: 70000100 andvc r0, r0, r0, lsl #2 - 2718: 02004034 andeq r4, r0, #52 ; 0x34 - 271c: 01000000 tsteq r0, r0 - 2720: 00403471 subeq r3, r0, r1, ror r4 - 2724: 007a0402 rsbseq r0, sl, r2, lsl #8 - 2728: 00000000 andeq r0, r0, r0 - 272c: 00015100 andeq r5, r1, r0, lsl #2 - 2730: 000119d5 ldrdeq r1, [r1], -r5 - 2734: 05000201 streq r0, [r0, #-513] - 2738: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 273c: 0100000e tsteq r0, lr - 2740: 01010101 tsteq r1, r1, lsl #2 - 2744: 01000100 tsteq r0, r0, lsl #2 - 2748: d5010101 strle r0, [r1, #-257] - 274c: 08000221 stmdaeq r0, {r0, r5, r9} - 2750: f3120002 vhadd.u16 d0, d2, d2 - 2754: 01030316 tsteq r3, r6, lsl r3 - 2758: ef030a08 svc 0x00030a08 - 275c: 1b040616 blne 103fbc - 2760: 44080683 strmi r0, [r8], #-1667 - 2764: 090d2a48 stmdbeq sp, {r3, r6, r9, fp, sp} - 2768: 73067c0a movwvc r7, #27658 ; 0x6c0a - 276c: 01515929 cmpeq r1, r9, lsr #18 - 2770: 0221d500 eoreq sp, r1, #0 ; 0x0 - 2774: 00030800 andeq r0, r3, r0, lsl #16 - 2778: 0316de11 tsteq r6, #272 ; 0x110 - 277c: 0a080103 beq 202b90 - 2780: 0616da03 ldreq sp, [r6], -r3, lsl #20 - 2784: 06831b04 streq r1, [r3], r4, lsl #22 - 2788: 2a484408 bcs 12137b0 - 278c: 7c0a090d stcvc 9, cr0, [sl], {13} - 2790: 59297306 stmdbpl r9!, {r1, r2, r8, r9, ip, sp, lr} - 2794: 00000079 andeq r0, r0, r9, ror r0 - 2798: 34800001 strcc r0, [r0], #1 - 279c: 00020040 andeq r0, r2, r0, asr #32 - 27a0: f8020000 undefined instruction 0xf8020000 - 27a4: 0100007c tsteq r0, ip, ror r0 - 27a8: 00003079 andeq r3, r0, r9, ror r0 - 27ac: 00000000 andeq r0, r0, r0 - 27b0: d5000151 strle r0, [r0, #-337] - 27b4: 01000119 tsteq r0, r9, lsl r1 - 27b8: 78050002 stmdavc r5, {r1} - 27bc: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 27c0: 01010000 tsteq r1, r0 - 27c4: 00010101 andeq r0, r1, r1, lsl #2 - 27c8: 01010001 tsteq r1, r1 - 27cc: 41d50101 bicsmi r0, r5, r1, lsl #2 - 27d0: 02230002 eoreq r0, r3, #2 ; 0x2 - 27d4: 179c0802 ldrne r0, [ip, r2, lsl #16] - 27d8: 08010e01 stmdaeq r1, {r0, r9, sl, fp} - 27dc: 03010403 movweq r0, #5123 ; 0x1403 - 27e0: 2a151798 bcs 548648 - 27e4: d5360205 ldrle r0, [r6, #-517]! - 27e8: 2441080a strbcs r0, [r1], #-2058 - 27ec: 7c06915a stfvcd f1, [r6], {90} - 27f0: 4d3f0037 ldcmi 0, cr0, [pc, #-220]! - 27f4: 2900cc06 stmdbcs r0, {r1, r2, sl, fp, lr, pc} - 27f8: 06020d0e streq r0, [r2], -lr, lsl #26 - 27fc: 0a22375d beq 890578 - 2800: 300c087a andcc r0, ip, sl, ror r8 - 2804: 7d0a0906 stcvc 9, cr0, [sl, #-24] - 2808: 85446c06 strbhi r6, [r4, #-3078] - 280c: 45750a09 ldrbmi r0, [r5, #-2569]! - 2810: 0000692b andeq r6, r0, fp, lsr #18 - 2814: 1c000200 sfmne f0, 4, [r0], {0} - 2818: 0100403a tsteq r0, sl, lsr r0 - 281c: 02000000 andeq r0, r0, #0 ; 0x0 - 2820: 0000817f andeq r8, r0, pc, ror r1 - 2824: 00000000 andeq r0, r0, r0 - 2828: 00000001 andeq r0, r0, r1 - 282c: 00403a80 subeq r3, r0, r0, lsl #21 - 2830: d5000151 strle r0, [r0, #-337] - 2834: 01000119 tsteq r0, r9, lsl r1 - 2838: 78050002 stmdavc r5, {r1} - 283c: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 2840: 01010000 tsteq r1, r0 - 2844: 00010101 andeq r0, r1, r1, lsl #2 - 2848: 01010001 tsteq r1, r1 - 284c: 2ed50101 cdpcs 1, 13, cr0, cr5, cr1, {0} - 2850: 020a0002 andeq r0, sl, #2 ; 0x2 - 2854: 13d20002 bicsne r0, r2, #2 ; 0x2 - 2858: 082a0501 stmdaeq sl!, {r0, r8, sl} - 285c: 03010403 movweq r0, #5123 ; 0x1403 - 2860: 2a1513ce bcs 5477a0 - 2864: 19290b06 stmdbne r9!, {r1, r2, r8, r9, fp} - 2868: b32ecc15 teqlt lr, #5376 ; 0x1500 - 286c: f83da33d undefined instruction 0xf83da33d - 2870: 00091f18 andeq r1, r9, r8, lsl pc - 2874: 00010405 andeq r0, r1, r5, lsl #8 - 2878: 0b080901 bleq 204c84 - 287c: 0084cc14 addeq ip, r4, r4, lsl ip - 2880: 00020000 andeq r0, r2, r0 - 2884: 00403a30 subeq r3, r0, r0, lsr sl - 2888: 00000002 andeq r0, r0, r2 - 288c: 00828f02 addeq r8, r2, r2, lsl #30 - 2890: 30ed0100 rsccc r0, sp, r0, lsl #2 - 2894: 00000040 andeq r0, r0, r0, asr #32 - 2898: 00010000 andeq r0, r1, r0 - 289c: 3a880000 bcc fe2028a4 - 28a0: 01510040 cmpeq r1, r0, asr #32 - 28a4: 0119d500 tsteq r9, r0, lsl #10 - 28a8: 00020100 andeq r0, r2, r0, lsl #2 - 28ac: 6c117805 ldcvs 8, cr7, [r1], {5} - 28b0: 00000e29 andeq r0, r0, r9, lsr #28 - 28b4: 01010101 tsteq r1, r1, lsl #2 - 28b8: 00010001 andeq r0, r1, r1 - 28bc: 01010101 tsteq r1, r1, lsl #2 - 28c0: 000244d5 ldrdeq r4, [r2], -r5 - 28c4: 0102020e tsteq r2, lr, lsl #4 - 28c8: 0c0113e0 stceq 3, cr1, [r1], {224} - 28cc: 04030814 streq r0, [r3], #-2068 - 28d0: 13dc0301 bicsne r0, ip, #67108864 ; 0x4000000 - 28d4: 030a2a15 movweq r2, #43541 ; 0xaa15 - 28d8: 09060103 stmdbeq r6, {r0, r1, r8} - 28dc: bd2f1b29 fstmdbxlt pc!, {d1-d20} - 28e0: 04050009 streq r0, [r5], #-9 - 28e4: 13010001 movwne r0, #4097 ; 0x1001 - 28e8: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} - 28ec: 020dc221 andeq ip, sp, #268435458 ; 0x10000002 - 28f0: 0c08dd58 stceq 13, cr13, [r8], {88} - 28f4: 21150630 tstcs r5, r0, lsr r6 - 28f8: 00091c12 andeq r1, r9, r2, lsl ip - 28fc: 00010405 andeq r0, r1, r5, lsl #8 - 2900: 0b081401 bleq 20790c - 2904: 006c6922 rsbeq r6, ip, r2, lsr #18 - 2908: 00020000 andeq r0, r2, r0 - 290c: 00000000 andeq r0, r0, r0 - 2910: 00000002 andeq r0, r0, r2 - 2914: 0083bb02 addeq fp, r3, r2, lsl #22 - 2918: 312d0100 teqcc sp, r0, lsl #2 - 291c: 00000040 andeq r0, r0, r0, asr #32 - 2920: 00010000 andeq r0, r1, r0 - 2924: 3a880000 bcc fe20292c - 2928: 01510040 cmpeq r1, r0, asr #32 - 292c: 0119d500 tsteq r9, r0, lsl #10 - 2930: 00020100 andeq r0, r2, r0, lsl #2 - 2934: 6c117805 ldcvs 8, cr7, [r1], {5} - 2938: 00000e29 andeq r0, r0, r9, lsr #28 - 293c: 01010101 tsteq r1, r1, lsl #2 - 2940: 00010001 andeq r0, r1, r1 - 2944: 01010101 tsteq r1, r1, lsl #2 - 2948: 00022cd5 ldrdeq r2, [r2], -r5 - 294c: 02020206 andeq r0, r2, #1610612736 ; 0x60000000 - 2950: 020113f5 andeq r1, r1, #-738197501 ; 0xd4000003 - 2954: 0403083f streq r0, [r3], #-2111 - 2958: 13f10301 mvnsne r0, #67108864 ; 0x4000000 - 295c: 2a062a15 bcs 18d1b8 - 2960: 020d1929 andeq r1, sp, #671744 ; 0xa4000 - 2964: 0c08d42f cfstrseq mvf13, [r8], {47} - 2968: 00090630 andeq r0, r9, r0, lsr r6 - 296c: 00010405 andeq r0, r1, r5, lsl #8 - 2970: 0b081501 bleq 207d7c - 2974: 0061cc14 rsbeq ip, r1, r4, lsl ip - 2978: 00020000 andeq r0, r2, r0 - 297c: 00403a54 subeq r3, r0, r4, asr sl - 2980: 00000001 andeq r0, r0, r1 - 2984: 0084c302 addeq ip, r4, r2, lsl #6 - 2988: 00000000 andeq r0, r0, r0 - 298c: 00000100 andeq r0, r0, r0, lsl #2 - 2990: 403a8400 eorsmi r8, sl, r0, lsl #8 - 2994: 00015100 andeq r5, r1, r0, lsl #2 - 2998: 000119d5 ldrdeq r1, [r1], -r5 - 299c: 05000201 streq r0, [r0, #-513] - 29a0: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 29a4: 0100000e tsteq r0, lr - 29a8: 01010101 tsteq r1, r1, lsl #2 - 29ac: 01000100 tsteq r0, r0, lsl #2 - 29b0: d5010101 strle r0, [r1, #-257] - 29b4: 08000226 stmdaeq r0, {r1, r2, r5, r9} - 29b8: 81030202 tsthi r3, r2, lsl #4 - 29bc: 2a030114 bcs c2e14 - 29c0: 01040308 tsteq r4, r8, lsl #6 - 29c4: 1513fd03 ldrne pc, [r3, #-3331] - 29c8: 2908062a stmdbcs r8, {r1, r3, r5, r9, sl} - 29cc: 09cc6a19 stmibeq ip, {r0, r3, r4, r9, fp, sp, lr}^ - 29d0: 01040500 tsteq r4, r0, lsl #10 - 29d4: 080b0100 stmdaeq fp, {r8} - 29d8: 7ecc140b cdpvc 4, 12, cr1, cr12, cr11, {0} - 29dc: 02000000 andeq r0, r0, #0 ; 0x0 - 29e0: 00000000 andeq r0, r0, r0 - 29e4: 00000200 andeq r0, r0, r0, lsl #4 - 29e8: 85ef0200 strbhi r0, [pc, #512]! ; 2bf0 <__USR_stack_size+0x23f0> - 29ec: 00010000 andeq r0, r1, r0 - 29f0: 00000000 andeq r0, r0, r0 - 29f4: 01000000 tsteq r0, r0 - 29f8: 88000000 stmdahi r0, {} - 29fc: 5100403a tstpl r0, sl, lsr r0 - 2a00: 19d50001 ldmibne r5, {r0}^ - 2a04: 02010001 andeq r0, r1, #1 ; 0x1 - 2a08: 11780500 cmnne r8, r0, lsl #10 - 2a0c: 000e296c andeq r2, lr, ip, ror #18 - 2a10: 01010100 tsteq r1, r0, lsl #2 - 2a14: 01000101 tsteq r0, r1, lsl #2 - 2a18: 01010100 tsteq r1, r0, lsl #2 - 2a1c: 023ed501 eorseq sp, lr, #4194304 ; 0x400000 - 2a20: 02020b00 andeq r0, r2, #0 ; 0x0 - 2a24: 01148e04 tsteq r4, r4, lsl #28 - 2a28: 03081e06 movweq r1, #36358 ; 0x8e06 - 2a2c: 8a030104 bhi c2e44 - 2a30: 0a2a1514 beq a87e88 - 2a34: 29090603 stmdbcs r9, {r0, r1, r9, sl} - 2a38: 09915a19 ldmibeq r1, {r0, r3, r4, r9, fp, ip, lr} - 2a3c: 01040500 tsteq r4, r0, lsl #10 - 2a40: 08160100 ldmdaeq r6, {r8} - 2a44: 2069220b rsbcs r2, r9, fp, lsl #4 - 2a48: 14020dc3 strne r0, [r2], #-3523 - 2a4c: 300c089a mulcc ip, sl, r8 - 2a50: 05000906 streq r0, [r0, #-2310] - 2a54: 01000104 tsteq r0, r4, lsl #2 - 2a58: 140b0817 strne r0, [fp], #-2071 - 2a5c: 000079cc andeq r7, r0, ip, asr #19 - 2a60: 64000200 strvs r0, [r0], #-512 - 2a64: 0100403a tsteq r0, sl, lsr r0 - 2a68: 02000000 andeq r0, r0, #0 ; 0x0 - 2a6c: 00008707 andeq r8, r0, r7, lsl #14 - 2a70: 00000000 andeq r0, r0, r0 - 2a74: 00000002 andeq r0, r0, r2 - 2a78: 00403a88 subeq r3, r0, r8, lsl #21 - 2a7c: 00403a80 subeq r3, r0, r0, lsl #21 - 2a80: d5000151 strle r0, [r0, #-337] - 2a84: 01000119 tsteq r0, r9, lsl r1 - 2a88: 78050002 stmdavc r5, {r1} - 2a8c: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 2a90: 01010000 tsteq r1, r0 - 2a94: 00010101 andeq r0, r1, r1, lsl #2 - 2a98: 01010001 tsteq r1, r1 - 2a9c: 3ad50101 bcc ff542ea8 - 2aa0: 020e0002 andeq r0, lr, #2 ; 0x2 - 2aa4: 149f0502 ldrne r0, [pc], #1282 ; 2aac <__USR_stack_size+0x22ac> - 2aa8: 082c0901 stmdaeq ip!, {r0, r8, fp} - 2aac: 03010403 movweq r0, #5123 ; 0x1403 - 2ab0: 2a15149b bcs 547d24 - 2ab4: 0806030a stmdaeq r6, {r1, r3, r8, r9} - 2ab8: ae3d1a29 faddsge s2, s26, s19 - 2abc: 04050009 streq r0, [r5], #-9 - 2ac0: 18010001 stmdane r1, {r0} - 2ac4: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} - 2ac8: cf676f24 svcgt 0x00676f24 - 2acc: 0009b031 andeq fp, r9, r1, lsr r0 - 2ad0: 01010405 tsteq r1, r5, lsl #8 - 2ad4: 0b080a01 bleq 2052e0 - 2ad8: 009dcc14 addseq ip, sp, r4, lsl ip - 2adc: 00020000 andeq r0, r2, r0 - 2ae0: 00403a80 subeq r3, r0, r0, lsl #21 - 2ae4: 00000002 andeq r0, r0, r2 - 2ae8: 00870702 addeq r0, r7, r2, lsl #14 - 2aec: 817f0200 cmnhi pc, r0, lsl #4 - 2af0: 00000000 andeq r0, r0, r0 - 2af4: 00010000 andeq r0, r1, r0 - 2af8: 3a840000 bcc fe102b00 - 2afc: 01510040 cmpeq r1, r0, asr #32 - 2b00: 0119d500 tsteq r9, r0, lsl #10 - 2b04: 00020100 andeq r0, r2, r0, lsl #2 - 2b08: 6c117805 ldcvs 8, cr7, [r1], {5} - 2b0c: 00000e29 andeq r0, r0, r9, lsr #28 - 2b10: 01010101 tsteq r1, r1, lsl #2 - 2b14: 00010001 andeq r0, r1, r1 - 2b18: 01010101 tsteq r1, r1, lsl #2 - 2b1c: 00022cd5 ldrdeq r2, [r2], -r5 - 2b20: 0a000202 beq 3330 - 2b24: 000614a8 andeq r1, r6, r8, lsr #9 - 2b28: 030a082c movweq r0, #43052 ; 0xa82c - 2b2c: 180614a4 stmdane r6, {r2, r5, r7, sl, ip} - 2b30: 0009921b andeq r9, r9, fp, lsl r2 - 2b34: 00010405 andeq r0, r1, r5, lsl #8 - 2b38: 0b080e01 bleq 206344 - 2b3c: 00096922 andeq r6, r9, r2, lsr #18 - 2b40: 00010405 andeq r0, r1, r5, lsl #8 - 2b44: 0b081c01 bleq 209b50 - 2b48: 01516922 cmpeq r1, r2, lsr #18 - 2b4c: 022cd500 eoreq sp, ip, #0 ; 0x0 - 2b50: 00030200 andeq r0, r3, r0, lsl #4 - 2b54: 0313d709 tsteq r3, #2359296 ; 0x240000 - 2b58: 0a082a00 beq 20d360 - 2b5c: 0613d303 ldreq sp, [r3], -r3, lsl #6 - 2b60: 09831b16 stmibeq r3, {r1, r2, r4, r8, r9, fp, ip} - 2b64: 01040500 tsteq r4, r0, lsl #10 - 2b68: 080d0100 stmdaeq sp, {r8} - 2b6c: 0969220b stmdbeq r9!, {r0, r1, r3, r9, sp}^ - 2b70: 01040500 tsteq r4, r0, lsl #10 - 2b74: 081b0100 ldmdaeq fp, {r8} - 2b78: 1669220b strbtne r2, [r9], -fp, lsl #4 - 2b7c: 02000001 andeq r0, r0, #1 ; 0x1 - 2b80: 403a8400 eorsmi r8, sl, r0, lsl #8 - 2b84: 00000400 andeq r0, r0, r0, lsl #8 - 2b88: 817f0200 cmnhi pc, r0, lsl #4 - 2b8c: 07020000 streq r0, [r2, -r0] - 2b90: 01000087 smlabbeq r0, r7, r0, r0 - 2b94: 0040239b umaaleq r2, r0, fp, r3 - 2b98: 0084c302 addeq ip, r4, r2, lsl #6 - 2b9c: 00000000 andeq r0, r0, r0 - 2ba0: 00000100 andeq r0, r0, r0, lsl #2 - 2ba4: 403a8800 eorsmi r8, sl, r0, lsl #16 - 2ba8: 00015100 andeq r5, r1, r0, lsl #2 - 2bac: 000119d5 ldrdeq r1, [r1], -r5 - 2bb0: 05000401 streq r0, [r0, #-1025] - 2bb4: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 2bb8: 0100000e tsteq r0, lr - 2bbc: 01010101 tsteq r1, r1, lsl #2 - 2bc0: 01000100 tsteq r0, r0, lsl #2 - 2bc4: d5010101 strle r0, [r1, #-257] - 2bc8: 01000220 tsteq r0, r0, lsr #4 - 2bcc: d71b0002 ldrle r0, [fp, -r2] - 2bd0: 2a000313 bcs 3824 - 2bd4: d3030a08 movwle r0, #14856 ; 0x3a08 - 2bd8: 1b160613 blne 58442c - 2bdc: 05000983 streq r0, [r0, #-2435] - 2be0: 01000104 tsteq r0, r4, lsl #2 - 2be4: 220b081d andcs r0, fp, #1900544 ; 0x1d0000 - 2be8: 00015169 andeq r5, r1, r9, ror #2 - 2bec: 000220d5 ldrdeq r2, [r2], -r5 - 2bf0: 1c000301 stcne 3, cr0, [r0], {1} - 2bf4: 000614a8 andeq r1, r6, r8, lsr #9 - 2bf8: 030a082c movweq r0, #43052 ; 0xa82c - 2bfc: 180614a4 stmdane r6, {r2, r5, r7, sl, ip} - 2c00: 0009921b andeq r9, r9, fp, lsl r2 - 2c04: 00010405 andeq r0, r1, r5, lsl #8 - 2c08: 0b081e01 bleq 20a414 - 2c0c: 01516922 cmpeq r1, r2, lsr #18 - 2c10: 0228d500 eoreq sp, r8, #0 ; 0x0 - 2c14: 00030100 andeq r0, r3, r0, lsl #2 - 2c18: 0614a80e ldreq sl, [r4], -lr, lsl #16 - 2c1c: 0a082c00 beq 20dc24 - 2c20: 0614a403 ldreq sl, [r4], -r3, lsl #8 - 2c24: 0d921b18 vldreq d1, [r2, #96] - 2c28: 089a1403 ldmeq sl, {r0, r1, sl, ip} - 2c2c: 0969220c stmdbeq r9!, {r2, r3, r9, sp}^ - 2c30: 01040500 tsteq r4, r0, lsl #10 - 2c34: 08120100 ldmdaeq r2, {r8} - 2c38: 51cc140b bicpl r1, ip, fp, lsl #8 - 2c3c: 28d50001 ldmcs r5, {r0}^ - 2c40: 02010002 andeq r0, r1, #2 ; 0x2 - 2c44: 13d70d00 bicsne r0, r7, #0 ; 0x0 - 2c48: 082a0003 stmdaeq sl!, {r0, r1} - 2c4c: 13d3030a bicsne r0, r3, #671088640 ; 0x28000000 - 2c50: 831b1606 tsthi fp, #6291456 ; 0x600000 - 2c54: 9a14030d bls 503890 - 2c58: 69220c08 stmdbvs r2!, {r3, sl, fp} - 2c5c: 04050009 streq r0, [r5], #-9 - 2c60: 11010001 tstne r1, r1 - 2c64: cc140b08 ldcgt 11, cr0, [r4], {8} - 2c68: d5000151 strle r0, [r0, #-337] - 2c6c: 01000228 tsteq r0, r8, lsr #4 - 2c70: 840b0005 strhi r0, [fp], #-5 - 2c74: 2a000314 bcs 38cc - 2c78: 80030a08 andhi r0, r3, r8, lsl #20 - 2c7c: 1b160614 blne 5844d4 - 2c80: 14030d83 strne r0, [r3], #-3459 - 2c84: 220c089a andcs r0, ip, #10092544 ; 0x9a0000 - 2c88: 05000969 streq r0, [r0, #-2409] - 2c8c: 01000104 tsteq r0, r4, lsl #2 - 2c90: 140b0810 strne r0, [fp], #-2064 - 2c94: 000082cc andeq r8, r0, ip, asr #5 - 2c98: 8e000200 cdphi 2, 0, cr0, cr0, cr0, {0} - 2c9c: 0200403a andeq r4, r0, #58 ; 0x3a - 2ca0: 02000000 andeq r0, r0, #0 ; 0x0 - 2ca4: 000089db ldrdeq r8, [r0], -fp - 2ca8: 403dc901 eorsmi ip, sp, r1, lsl #18 - 2cac: 00000000 andeq r0, r0, r0 - 2cb0: 00000100 andeq r0, r0, r0, lsl #2 - 2cb4: 403a8800 eorsmi r8, sl, r0, lsl #16 - 2cb8: 00015100 andeq r5, r1, r0, lsl #2 - 2cbc: 000119d5 ldrdeq r1, [r1], -r5 - 2cc0: 05000201 streq r0, [r0, #-513] - 2cc4: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 2cc8: 0100000e tsteq r0, lr - 2ccc: 01010101 tsteq r1, r1, lsl #2 - 2cd0: 01000100 tsteq r0, r0, lsl #2 - 2cd4: d5010101 strle r0, [r1, #-257] - 2cd8: 0a000242 beq 35e8 - 2cdc: c8070202 stmdagt r7, {r1, r9} - 2ce0: 14090114 strne r0, [r9], #-276 - 2ce4: 01040308 tsteq r4, r8, lsl #6 - 2ce8: 1514c403 ldrne ip, [r4, #-1027] - 2cec: 06030a2a streq r0, [r3], -sl, lsr #20 - 2cf0: 311a2905 tstcc sl, r5, lsl #18 - 2cf4: 05000910 streq r0, [r0, #-2320] - 2cf8: 01000104 tsteq r0, r4, lsl #2 - 2cfc: 220b0819 andcs r0, fp, #1638400 ; 0x190000 - 2d00: 0d112869 ldceq 8, cr2, [r1, #-420] - 2d04: 08142202 ldmdaeq r4, {r1, r9, sp} - 2d08: 0606300c streq r3, [r6], -ip - 2d0c: 09200e7b stmdbeq r0!, {r0, r1, r3, r4, r5, r6, r9, sl, fp} - 2d10: 01040500 tsteq r4, r0, lsl #10 - 2d14: 081a0100 ldmdaeq sl, {r8} - 2d18: 5e69220b cdppl 2, 6, cr2, cr9, cr11, {0} - 2d1c: 01000000 tsteq r0, r0 - 2d20: 403e7000 eorsmi r7, lr, r0 - 2d24: 00000100 andeq r0, r0, r0, lsl #2 - 2d28: 8bd60200 blhi ff583530 - 2d2c: 00000000 andeq r0, r0, r0 - 2d30: 01510000 cmpeq r1, r0 - 2d34: 0119d500 tsteq r9, r0, lsl #10 - 2d38: 00020100 andeq r0, r2, r0, lsl #2 - 2d3c: 6c117805 ldcvs 8, cr7, [r1], {5} - 2d40: 00000e29 andeq r0, r0, r9, lsr #28 - 2d44: 01010101 tsteq r1, r1, lsl #2 - 2d48: 00010001 andeq r0, r1, r1 - 2d4c: 01010101 tsteq r1, r1, lsl #2 - 2d50: 00022bd5 ldrdeq r2, [r2], -r5 - 2d54: 00020214 andeq r0, r2, r4, lsl r2 - 2d58: 0c0104b9 cfstrseq mvf0, [r1], {185} - 2d5c: 04030801 streq r0, [r3], #-2049 - 2d60: 04b50301 ldrteq r0, [r5], #769 - 2d64: 17062a15 smladne r6, r5, sl, r2 - 2d68: a6477d1b undefined - 2d6c: 05067f0a streq r7, [r6, #-3850] - 2d70: 7e06c036 mcrvc 0, 0, ip, cr6, cr6, {1} - 2d74: 0a09e436 beq 27be54 - 2d78: 3671067a undefined - 2d7c: 000075f6 strdeq r7, [r0], -r6 - 2d80: 60000200 andvs r0, r0, r0, lsl #4 - 2d84: 02004009 andeq r4, r0, #9 ; 0x9 - 2d88: 02000000 andeq r0, r0, #0 ; 0x0 - 2d8c: 000099f7 strdeq r9, [r0], -r7 - 2d90: 40348101 eorsmi r8, r4, r1, lsl #2 - 2d94: 00000000 andeq r0, r0, r0 - 2d98: 00000100 andeq r0, r0, r0, lsl #2 - 2d9c: 400e4c00 andmi r4, lr, r0, lsl #24 - 2da0: 00015100 andeq r5, r1, r0, lsl #2 - 2da4: 000119d5 ldrdeq r1, [r1], -r5 - 2da8: 05000201 streq r0, [r0, #-513] - 2dac: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 2db0: 0100000e tsteq r0, lr - 2db4: 01010101 tsteq r1, r1, lsl #2 - 2db8: 01000100 tsteq r0, r0, lsl #2 - 2dbc: d5010101 strle r0, [r1, #-257] - 2dc0: 12000235 andne r0, r0, #1342177283 ; 0x50000003 - 2dc4: ab000202 blge 35d4 - 2dc8: 01090147 tsteq r9, r7, asr #2 - 2dcc: 01040308 tsteq r4, r8, lsl #6 - 2dd0: 00c7a703 sbceq sl, r7, r3, lsl #14 - 2dd4: 02062a15 andeq r2, r6, #86016 ; 0x15000 - 2dd8: de582429 cdple 4, 5, cr2, cr8, cr9, {1} - 2ddc: b031ef47 eorslt lr, r1, r7, asr #30 - 2de0: 1422020d strtne r0, [r2], #-525 - 2de4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 2de8: 00096b0f andeq r6, r9, pc, lsl #22 - 2dec: 00010405 andeq r0, r1, r5, lsl #8 - 2df0: 0b082401 bleq 20bdfc - 2df4: 0060cc14 rsbeq ip, r0, r4, lsl ip - 2df8: 00020000 andeq r0, r2, r0 - 2dfc: 00400984 subeq r0, r0, r4, lsl #19 - 2e00: 00000001 andeq r0, r0, r1 - 2e04: 009b1b02 addseq r1, fp, r2, lsl #22 - 2e08: 00000000 andeq r0, r0, r0 - 2e0c: 00000100 andeq r0, r0, r0, lsl #2 - 2e10: 4009a800 andmi sl, r9, r0, lsl #16 - 2e14: 00015100 andeq r5, r1, r0, lsl #2 - 2e18: 000119d5 ldrdeq r1, [r1], -r5 - 2e1c: 05000201 streq r0, [r0, #-513] - 2e20: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 2e24: 0100000e tsteq r0, lr - 2e28: 01010101 tsteq r1, r1, lsl #2 - 2e2c: 01000100 tsteq r0, r0, lsl #2 - 2e30: d5010101 strle r0, [r1, #-257] - 2e34: 04000225 streq r0, [r0], #-549 - 2e38: b6010202 strlt r0, [r1], -r2, lsl #4 - 2e3c: 21020147 tstcs r2, r7, asr #2 - 2e40: 01040308 tsteq r4, r8, lsl #6 - 2e44: 00c7b203 sbceq fp, r7, r3, lsl #4 - 2e48: 0c062a15 stceq 10, cr2, [r6], {21} - 2e4c: 0009d436 andeq sp, r9, r6, lsr r4 - 2e50: 00010405 andeq r0, r1, r5, lsl #8 - 2e54: 0b081701 bleq 208a60 - 2e58: 00796922 rsbseq r6, r9, r2, lsr #18 - 2e5c: 00020000 andeq r0, r2, r0 - 2e60: 0040098c subeq r0, r0, ip, lsl #19 - 2e64: 00000002 andeq r0, r0, r2 - 2e68: 009c3302 addseq r3, ip, r2, lsl #6 - 2e6c: 99f70200 ldmibls r7!, {r9}^ - 2e70: 00000000 andeq r0, r0, r0 - 2e74: 00010000 andeq r0, r1, r0 - 2e78: 09a80000 stmibeq r8!, {} - 2e7c: 01510040 cmpeq r1, r0, asr #32 - 2e80: 0119d500 tsteq r9, r0, lsl #10 - 2e84: 00020100 andeq r0, r2, r0, lsl #2 - 2e88: 6c117805 ldcvs 8, cr7, [r1], {5} - 2e8c: 00000e29 andeq r0, r0, r9, lsr #28 - 2e90: 01010101 tsteq r1, r1, lsl #2 - 2e94: 00010001 andeq r0, r1, r1 - 2e98: 01010101 tsteq r1, r1, lsl #2 - 2e9c: 000239d5 ldrdeq r3, [r2], -r5 - 2ea0: 0202020e andeq r0, r2, #-536870912 ; 0xe0000000 - 2ea4: 040147bc streq r4, [r1], #-1980 - 2ea8: 04030821 streq r0, [r3], #-2081 - 2eac: c7b80301 ldrgt r0, [r8, r1, lsl #6]! - 2eb0: 062a1500 strteq r1, [sl], -r0, lsl #10 - 2eb4: 0dd4360d ldcleq 6, cr3, [r4, #52] - 2eb8: 08142202 ldmdaeq r4, {r1, r9, sp} - 2ebc: 1506300c strne r3, [r6, #-12] - 2ec0: 3d040822 stccc 8, cr0, [r4, #-136] - 2ec4: 300c084e andcc r0, ip, lr, asr #16 - 2ec8: 09cd1406 stmibeq sp, {r1, r2, sl, ip}^ - 2ecc: 01040500 tsteq r4, r0, lsl #10 - 2ed0: 08180100 ldmdaeq r8, {r8} - 2ed4: a2404b0b subge r4, r0, #11264 ; 0x2c00 - 2ed8: 01000000 tsteq r0, r0 - 2edc: 4009a800 andmi sl, r9, r0, lsl #16 - 2ee0: 00000300 andeq r0, r0, r0, lsl #6 - 2ee4: 9c330200 lfmls f0, 4, [r3] - 2ee8: f7020000 undefined instruction 0xf7020000 - 2eec: 02000099 andeq r0, r0, #153 ; 0x99 - 2ef0: 00009b1b andeq r9, r0, fp, lsl fp - 2ef4: 00000000 andeq r0, r0, r0 - 2ef8: d5000151 strle r0, [r0, #-337] - 2efc: 01000119 tsteq r0, r9, lsl r1 - 2f00: 78050002 stmdavc r5, {r1} - 2f04: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 2f08: 01010000 tsteq r1, r0 - 2f0c: 00010101 andeq r0, r1, r1, lsl #2 - 2f10: 01010001 tsteq r1, r1 - 2f14: 30d50101 sbcscc r0, r5, r1, lsl #2 - 2f18: 020a0002 andeq r0, sl, #2 ; 0x2 - 2f1c: 47c01800 strbmi r1, [r0, r0, lsl #16] - 2f20: 08010209 stmdaeq r1, {r0, r3, r9} - 2f24: c7bc030a ldrgt r0, [ip, sl, lsl #6]! - 2f28: 06010500 streq r0, [r1], -r0, lsl #10 - 2f2c: 0d9c1b0d vldreq d1, [ip, #52] - 2f30: 08771402 ldmdaeq r7!, {r1, sl, ip}^ - 2f34: 1306300c movwne r3, #24588 ; 0x600c - 2f38: 2f040879 svccs 0x00040879 - 2f3c: 300c08b1 strhcc r0, [ip], -r1 - 2f40: 790a0906 stmdbvc sl, {r1, r2, r8, fp} - 2f44: 010e7a06 tsteq lr, r6, lsl #20 - 2f48: d5000151 strle r0, [r0, #-337] - 2f4c: 0a000230 beq 3814 - 2f50: b8170004 ldmdalt r7, {r2} - 2f54: 01020947 tsteq r2, r7, asr #18 - 2f58: b4030a08 strlt r0, [r3], #-2568 - 2f5c: 010500c7 smlabteq r5, r7, r0, r0 - 2f60: 9c1b0d06 ldcls 13, cr0, [fp], {6} - 2f64: 7714020d ldrvc r0, [r4, -sp, lsl #4] - 2f68: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 2f6c: 04087913 streq r7, [r8], #-2323 - 2f70: 0c08b12f stfeqd f3, [r8], {47} - 2f74: 0a090630 beq 24483c - 2f78: 0e7a0679 mrceq 6, 3, r0, cr10, cr9, {3} - 2f7c: 0000d201 andeq sp, r0, r1, lsl #4 - 2f80: bc000200 sfmlt f0, 4, [r0], {0} - 2f84: 04004009 streq r4, [r0], #-9 - 2f88: 02000000 andeq r0, r0, #0 ; 0x0 - 2f8c: 00009e2f andeq r9, r0, pc, lsr #28 - 2f90: 40348101 eorsmi r8, r4, r1, lsl #2 - 2f94: 9b1b0200 blls 6c379c - 2f98: 33020000 movwcc r0, #8192 ; 0x2000 - 2f9c: 0000009c muleq r0, ip, r0 - 2fa0: 01000000 tsteq r0, r0 - 2fa4: 70000000 andvc r0, r0, r0 - 2fa8: 51004012 tstpl r0, r2, lsl r0 - 2fac: 19d50001 ldmibne r5, {r0}^ - 2fb0: 02010001 andeq r0, r1, #1 ; 0x1 - 2fb4: 11780500 cmnne r8, r0, lsl #10 - 2fb8: 000e296c andeq r2, lr, ip, ror #18 - 2fbc: 01010100 tsteq r1, r0, lsl #2 - 2fc0: 01000101 tsteq r0, r1, lsl #2 - 2fc4: 01010100 tsteq r1, r0, lsl #2 - 2fc8: 0187d501 orreq sp, r7, r1, lsl #10 - 2fcc: 02360002 eorseq r0, r6, #2 ; 0x2 - 2fd0: 47c50302 strbmi r0, [r5, r2, lsl #6] - 2fd4: 08030e02 stmdaeq r3, {r1, r9, sl, fp} - 2fd8: c7c10303 strbgt r0, [r1, r3, lsl #6] - 2fdc: 1b1a0600 blne 6847e4 - 2fe0: 0611057e undefined - 2fe4: 0d724438 cfldrdeq mvd4, [r2, #-224]! - 2fe8: 08142202 ldmdaeq r4, {r1, r9, sp} - 2fec: 0906300c stmdbeq r6, {r2, r3, ip, sp} - 2ff0: 7e05100a cdpvc 0, 0, cr1, cr5, cr10, {0} - 2ff4: 0e7fb606 cdpeq 6, 7, cr11, cr15, cr6, {0} - 2ff8: 6b040a01 blvs 105804 - 2ffc: 0d744049 ldcleq 0, cr4, [r4, #-292]! - 3000: 084e3d03 stmdaeq lr, {r0, r1, r8, sl, fp, ip, sp}^ - 3004: 1106300c tstne r6, ip - 3008: 22020dfe andcs r0, r2, #16256 ; 0x3f80 - 300c: 300c0814 andcc r0, ip, r4, lsl r8 - 3010: 0dc91806 stcleq 8, cr1, [r9, #24] - 3014: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 3018: 0a06300c beq 18f050 - 301c: 4ed01104 cdpmi 1, 13, cr1, cr0, cr4, {0} - 3020: 22020dbb andcs r0, r2, #11968 ; 0x2ec0 - 3024: 300c0814 andcc r0, ip, r4, lsl r8 - 3028: 12790306 rsbsne r0, r9, #402653184 ; 0x18000000 - 302c: 05710a3d ldrbeq r0, [r1, #-2621]! - 3030: 037d3b7f cmneq sp, #130048 ; 0x1fc00 - 3034: 4a7c0505 bmi 1f04450 - 3038: 220408c7 andcs r0, r4, #13041664 ; 0xc70000 - 303c: 300c0814 andcc r0, ip, r4, lsl r8 - 3040: 067a0506 ldrbteq r0, [sl], -r6, lsl #10 - 3044: 09010e75 stmdbeq r1, {r0, r2, r4, r5, r6, r9, sl, fp} - 3048: 01040500 tsteq r4, r0, lsl #10 - 304c: 08250100 stmdaeq r5!, {r8} - 3050: 7fcc140b svcvc 0x00cc140b - 3054: 01000000 tsteq r0, r0 - 3058: 400a2800 andmi r2, sl, r0, lsl #16 - 305c: 00000300 andeq r0, r0, r0, lsl #6 - 3060: 9f770200 svcls 0x00770200 - 3064: b7020000 strlt r0, [r2, -r0] - 3068: 020000a0 andeq r0, r0, #160 ; 0xa0 - 306c: 0000a2df ldrdeq sl, [r0], -pc - 3070: 00000000 andeq r0, r0, r0 - 3074: d5000151 strle r0, [r0, #-337] - 3078: 01000119 tsteq r0, r9, lsl r1 - 307c: 78050002 stmdavc r5, {r1} - 3080: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 3084: 01010000 tsteq r1, r0 - 3088: 00010101 andeq r0, r1, r1, lsl #2 - 308c: 01010001 tsteq r1, r1 - 3090: 42d50101 sbcsmi r0, r5, #1073741824 ; 0x40000000 - 3094: 02160002 andseq r0, r6, #2 ; 0x2 - 3098: 47e10402 strbmi r0, [r1, r2, lsl #8]! - 309c: 08200f01 stmdaeq r0!, {r0, r8, r9, sl, fp} - 30a0: 03010403 movweq r0, #5123 ; 0x1403 - 30a4: 1500c7dd strne ip, [r0, #-2013] - 30a8: 0603032a streq r0, [r3], -sl, lsr #6 - 30ac: 3db8360c ldccc 6, cr3, [r8, #48]! - 30b0: 1a5b30a3 bne 16cf344 - 30b4: 3006301d andcc r3, r6, sp, lsl r0 - 30b8: 3d7d0f5b ldclcc 15, cr0, [sp, #-364]! - 30bc: 12be22a3 adcsne r2, lr, #805306378 ; 0x3000000a - 30c0: 14020d7b strne r0, [r2], #-3451 - 30c4: 300c0877 andcc r0, ip, r7, ror r8 - 30c8: 0d291606 stceq 6, cr1, [r9, #-24]! - 30cc: 09771403 ldmdbeq r7!, {r0, r1, sl, ip}^ - 30d0: 0c087e0a stceq 14, cr7, [r8], {10} - 30d4: 03700630 cmneq r0, #50331648 ; 0x3000000 - 30d8: 00020000 andeq r0, r2, r0 - 30dc: 00400a58 subeq r0, r0, r8, asr sl - 30e0: 0000001e andeq r0, r0, lr, lsl r0 - 30e4: 00a0b702 adceq fp, r0, r2, lsl #14 - 30e8: fe9d0100 cdp2 1, 9, cr0, cr13, cr0, {0} - 30ec: 25010000 strcs r0, [r1] - 30f0: 010000ff strdeq r0, [r0, -pc] - 30f4: 0000fee9 andeq pc, r0, r9, ror #29 - 30f8: 00ffc501 rscseq ip, pc, r1, lsl #10 - 30fc: 3ec90100 polcce f0, f1, f0 - 3100: c8010000 stmdagt r1, {} - 3104: 01000107 tsteq r0, r7, lsl #2 - 3108: 000107e0 andeq r0, r1, r0, ror #15 - 310c: 40338d01 eorsmi r8, r3, r1, lsl #26 - 3110: 34810100 strcc r0, [r1], #256 - 3114: 2f020040 svccs 0x00020040 - 3118: 0100009e swpeq r0, lr, [r0] - 311c: 00403e71 subeq r3, r0, r1, ror lr - 3120: 4038d101 eorsmi sp, r8, r1, lsl #2 - 3124: 3ca50100 stfccs f0, [r5] - 3128: 98010040 stmdals r1, {r6} - 312c: 01000107 tsteq r0, r7, lsl #2 - 3130: 00010780 andeq r0, r1, r0, lsl #15 - 3134: 40360901 eorsmi r0, r6, r1, lsl #18 - 3138: 3cf10100 ldfcce f0, [r1] - 313c: 3b020040 blcc 83244 - 3140: 010000b5 strheq r0, [r0, -r5] - 3144: 00401965 subeq r1, r0, r5, ror #18 - 3148: 40398901 eorsmi r8, r9, r1, lsl #18 - 314c: 3a8f0100 bcc fe3c3554 - 3150: 31010040 tstcc r1, r0, asr #32 - 3154: 0200403a andeq r4, r0, #58 ; 0x3a - 3158: 0000b947 andeq fp, r0, r7, asr #18 - 315c: 4020a501 eormi sl, r0, r1, lsl #10 - 3160: 1b570100 blne 15c3568 - 3164: 63020040 movwvs r0, #8256 ; 0x2040 - 3168: 010000ad smlatbeq r0, sp, r0, r0 - 316c: 00403d85 subeq r3, r0, r5, lsl #27 - 3170: 00aff302 adceq pc, pc, r2, lsl #6 - 3174: b16f0200 cmnlt pc, r0, lsl #4 - 3178: 00000000 andeq r0, r0, r0 - 317c: 00010000 andeq r0, r1, r0 - 3180: 12740000 rsbsne r0, r4, #0 ; 0x0 - 3184: 01510040 cmpeq r1, r0, asr #32 - 3188: 0119d500 tsteq r9, r0, lsl #10 - 318c: 00020100 andeq r0, r2, r0, lsl #2 - 3190: 6c117805 ldcvs 8, cr7, [r1], {5} - 3194: 00000e29 andeq r0, r0, r9, lsr #28 - 3198: 01010101 tsteq r1, r1, lsl #2 - 319c: 00010001 andeq r0, r1, r1 - 31a0: 01010101 tsteq r1, r1, lsl #2 - 31a4: 0205a3d5 andeq sl, r5, #1409286147 ; 0x54000003 - 31a8: 0201fa00 andeq pc, r1, #0 ; 0x0 - 31ac: 48810502 stmmi r1, {r1, r8, sl} - 31b0: 08016201 stmdaeq r1, {r0, r9, sp, lr} - 31b4: 03010403 movweq r0, #5123 ; 0x1403 - 31b8: 1500c7fd strne ip, [r0, #-2045] - 31bc: 290b062a stmdbcs fp, {r1, r3, r5, r9, sl} - 31c0: 22a33d1b adccs r3, r3, #1728 ; 0x6c0 - 31c4: 30cc1469 sbccc r1, ip, r9, ror #8 - 31c8: 30692206 rsbcc r2, r9, r6, lsl #4 - 31cc: 29692206 stmdbcs r9!, {r1, r2, r9, sp}^ - 31d0: 14020db8 strne r0, [r2], #-3512 - 31d4: 300c0877 andcc r0, ip, r7, ror r8 - 31d8: 1b210606 blne 8449f8 - 31dc: 2f030d72 svccs 0x00030d72 - 31e0: 300c08b1 strhcc r0, [ip], -r1 - 31e4: 0dd11006 ldcleq 0, cr1, [r1, #24] - 31e8: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} - 31ec: 0f06300c svceq 0x0006300c - 31f0: 22050d28 andcs r0, r5, #2560 ; 0xa00 - 31f4: 300c0814 andcc r0, ip, r4, lsl r8 - 31f8: 1b040606 blne 104a18 - 31fc: 2f030d72 svccs 0x00030d72 - 3200: 300c08b1 strhcc r0, [ip], -r1 - 3204: 0d241306 stceq 3, cr1, [r4, #-24]! - 3208: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} - 320c: 0f06300c svceq 0x0006300c - 3210: 22050d28 andcs r0, r5, #2560 ; 0xa00 - 3214: 300c0814 andcc r0, ip, r4, lsl r8 - 3218: 1b040606 blne 104a38 - 321c: 2f030d72 svccs 0x00030d72 - 3220: 300c08b1 strhcc r0, [ip], -r1 - 3224: 0d791306 ldcleq 3, cr1, [r9, #-24]! - 3228: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} - 322c: 0f06300c svceq 0x0006300c - 3230: 22050d28 andcs r0, r5, #2560 ; 0xa00 - 3234: 300c0814 andcc r0, ip, r4, lsl r8 - 3238: 1b0e0606 blne 384a58 - 323c: 2f060d72 svccs 0x00060d72 - 3240: 300c08b1 strhcc r0, [ip], -r1 - 3244: 087b1106 ldmdaeq fp!, {r1, r2, r8, ip}^ - 3248: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} - 324c: 1606300c strne r3, [r6], -ip - 3250: 2f040821 svccs 0x00040821 - 3254: 300c08b1 strhcc r0, [ip], -r1 - 3258: 08231406 stmdaeq r3!, {r1, r2, sl, ip} - 325c: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} - 3260: 0606300c streq r3, [r6], -ip - 3264: 0d2a0e70 stceq 14, cr0, [sl, #-448]! - 3268: 08771407 ldmdaeq r7!, {r0, r1, r2, sl, ip}^ - 326c: 1506300c strne r3, [r6, #-12] - 3270: 14080d22 strne r0, [r8], #-3362 - 3274: 300c0877 andcc r0, ip, r7, ror r8 - 3278: 0d751806 ldcleq 8, cr1, [r5, #-24]! - 327c: 08b12f09 ldmeq r1!, {r0, r3, r8, r9, sl, fp, sp} - 3280: 1806300c stmdane r6, {r2, r3, ip, sp} - 3284: 2f0a0dcc svccs 0x000a0dcc - 3288: 300c08b1 strhcc r0, [ip], -r1 - 328c: 08261206 stmdaeq r6!, {r1, r2, r9, ip} - 3290: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} - 3294: 2f06300c svccs 0x0006300c - 3298: 140b0d5d strne r0, [fp], #-3421 - 329c: 300c0877 andcc r0, ip, r7, ror r8 - 32a0: 0dce1806 stcleq 8, cr1, [lr, #24] - 32a4: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} - 32a8: 2d06300c stccs 0, cr3, [r6, #-48] - 32ac: 140b0d05 strne r0, [fp], #-3333 - 32b0: 300c0877 andcc r0, ip, r7, ror r8 - 32b4: 0dca1706 stcleq 7, cr1, [sl, #24] - 32b8: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} - 32bc: 2d06300c stccs 0, cr3, [r6, #-48] - 32c0: 140b0db4 strne r0, [fp], #-3508 - 32c4: 300c0877 andcc r0, ip, r7, ror r8 - 32c8: 0dce1306 stcleq 3, cr1, [lr, #24] - 32cc: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} - 32d0: 1606300c strne r3, [r6], -ip - 32d4: 3d0b0d76 stccc 13, cr0, [fp, #-472] - 32d8: 300c084e andcc r0, ip, lr, asr #16 - 32dc: 0dd21906 ldcleq 9, cr1, [r2, #24] - 32e0: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} - 32e4: 1006300c andne r3, r6, ip - 32e8: 3d0b0dc7 stccc 13, cr0, [fp, #-796] - 32ec: 300c084e andcc r0, ip, lr, asr #16 - 32f0: 0d291006 stceq 0, cr1, [r9, #-24]! - 32f4: 0877140c ldmdaeq r7!, {r2, r3, sl, ip}^ - 32f8: 1606300c strne r3, [r6], -ip - 32fc: 140d0d76 strne r0, [sp], #-3446 - 3300: 300c0877 andcc r0, ip, r7, ror r8 - 3304: 0d211606 stceq 6, cr1, [r1, #-24]! - 3308: 0877140e ldmdaeq r7!, {r1, r2, r3, sl, ip}^ - 330c: 1706300c strne r3, [r6, -ip] - 3310: 2f090d1c svccs 0x00090d1c - 3314: 300c08b1 strhcc r0, [ip], -r1 - 3318: 0dce1806 stcleq 8, cr1, [lr, #24] - 331c: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} - 3320: 1206300c andne r3, r6, #12 ; 0xc - 3324: 2f04087b svccs 0x0004087b - 3328: 300c08b1 strhcc r0, [ip], -r1 - 332c: 0d231406 cfstrseq mvf1, [r3, #-24]! - 3330: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} - 3334: 1806300c stmdane r6, {r2, r3, ip, sp} - 3338: 2f0a0dce svccs 0x000a0dce - 333c: 300c08b1 strhcc r0, [ip], -r1 - 3340: 0dcb1106 stfeqe f1, [fp, #24] - 3344: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} - 3348: 1706300c strne r3, [r6, -ip] - 334c: 2f0a0dca svccs 0x000a0dca - 3350: 300c08b1 strhcc r0, [ip], -r1 - 3354: 0d7a1206 lfmeq f1, 2, [sl, #-24]! - 3358: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} - 335c: 1306300c movwne r3, #24588 ; 0x600c - 3360: 2f0a0dce svccs 0x000a0dce - 3364: 300c08b1 strhcc r0, [ip], -r1 - 3368: 0d761606 ldcleq 6, cr1, [r6, #-24]! - 336c: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} - 3370: 1906300c stmdbne r6, {r2, r3, ip, sp} - 3374: 2f0a0dd2 svccs 0x000a0dd2 - 3378: 300c08b1 strhcc r0, [ip], -r1 - 337c: 0dc71006 stcleq 0, cr1, [r7, #24] - 3380: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} - 3384: 1106300c tstne r6, ip - 3388: 220f0d28 andcs r0, pc, #2560 ; 0xa00 - 338c: 300c0814 andcc r0, ip, r4, lsl r8 - 3390: 0d221506 cfstr32eq mvfx1, [r2, #-24]! - 3394: 08142210 ldmdaeq r4, {r4, r9, sp} - 3398: 1306300c movwne r3, #24588 ; 0x600c - 339c: 14110dcf ldrne r0, [r1], #-3535 - 33a0: 300c0877 andcc r0, ip, r7, ror r8 - 33a4: 0dce1506 cfstr64eq mvdx1, [lr, #24] - 33a8: 08771412 ldmdaeq r7!, {r1, r4, sl, ip}^ - 33ac: 1406300c strne r3, [r6], #-12 - 33b0: 14130d7a ldrne r0, [r3], #-3450 - 33b4: 300c0877 andcc r0, ip, r7, ror r8 - 33b8: 0d231506 cfstr32eq mvfx1, [r3, #-24]! - 33bc: 08771414 ldmdaeq r7!, {r2, r4, sl, ip}^ - 33c0: 0606300c streq r3, [r6], -ip - 33c4: 731b00c5 tstvc fp, #197 ; 0xc5 - 33c8: 4e3d150d cdpmi 5, 3, cr1, cr13, cr13, {0} - 33cc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 33d0: 61060303 tstvs r6, r3, lsl #6 - 33d4: 160d2c0e strne r2, [sp], -lr, lsl #24 - 33d8: 0c083222 sfmeq f3, 4, [r8], {34} - 33dc: 01180630 tsteq r8, r0, lsr r6 - 33e0: 1422170d strtne r1, [r2], #-1805 - 33e4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 33e8: 290e7c06 stmdbcs lr, {r1, r2, sl, fp, ip, sp, lr} - 33ec: 7714180d ldrvc r1, [r4, -sp, lsl #16] - 33f0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 33f4: 190d7717 stmdbne sp, {r0, r1, r2, r4, r8, r9, sl, ip, sp, lr} - 33f8: 0c081422 cfstrseq mvf1, [r8], {34} - 33fc: d30e0630 movwle r0, #58928 ; 0xe630 - 3400: 77141a0d ldrvc r1, [r4, -sp, lsl #20] - 3404: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3408: 1b0d7319 blne 360074 - 340c: 0c08b12f stfeqd f3, [r8], {47} - 3410: 280f0630 stmdacs pc, {r4, r5, r9, sl} - 3414: b12f1c0d teqlt pc, sp, lsl #24 - 3418: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 341c: 1d0d721a sfmne f7, 4, [sp, #-104] - 3420: 0c08b12f stfeqd f3, [r8], {47} - 3424: 7b110630 blvc 444cec - 3428: 77141a0d ldrvc r1, [r4, -sp, lsl #20] - 342c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3430: 1e0d721a mcrne 2, 0, r7, cr13, cr10, {0} - 3434: 0c081422 cfstrseq mvf1, [r8], {34} - 3438: 71060630 tstvc r6, r0, lsr r6 - 343c: 0009200e andeq r2, r9, lr - 3440: 00010405 andeq r0, r1, r5, lsl #8 - 3444: 0b082601 bleq 20cc50 - 3448: 005d6922 subseq r6, sp, r2, lsr #18 - 344c: 00010000 andeq r0, r1, r0 - 3450: 00400c50 subeq r0, r0, r0, asr ip - 3454: 00000001 andeq r0, r0, r1 - 3458: 00a1cb02 adceq ip, r1, r2, lsl #22 - 345c: 00000000 andeq r0, r0, r0 - 3460: 00015100 andeq r5, r1, r0, lsl #2 - 3464: 000119d5 ldrdeq r1, [r1], -r5 - 3468: 05000201 streq r0, [r0, #-513] - 346c: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 3470: 0100000e tsteq r0, lr - 3474: 01010101 tsteq r1, r1, lsl #2 - 3478: 01000100 tsteq r0, r0, lsl #2 - 347c: d5010101 strle r0, [r1, #-257] - 3480: 1400022a strne r0, [r0], #-554 - 3484: ec060202 sfm f0, 4, [r6], {2} - 3488: 010b0148 tsteq fp, r8, asr #2 - 348c: 01040308 tsteq r4, r8, lsl #6 - 3490: 00c8e803 sbceq lr, r8, r3, lsl #16 - 3494: 030a2a15 movweq r2, #43541 ; 0xaa15 - 3498: 7c1b2206 lfmvc f2, 4, [fp], {6} - 349c: 7e06ce73 mcrvc 14, 0, ip, cr6, cr3, {3} - 34a0: 0a099d44 beq 26a9b8 - 34a4: 0602037b undefined - 34a8: dcef3675 stclle 6, cr3, [pc], #468 - 34ac: 01000001 tsteq r0, r1 - 34b0: 400c7800 andmi r7, ip, r0, lsl #16 - 34b4: 00000c00 andeq r0, r0, r0, lsl #24 - 34b8: a2df0200 sbcsge r0, pc, #0 ; 0x0 - 34bc: 29010000 stmdbcs r1, {} - 34c0: 02004024 andeq r4, r0, #36 ; 0x24 - 34c4: 0000abaf andeq sl, r0, pc, lsr #23 - 34c8: 00bbd702 adcseq sp, fp, r2, lsl #14 - 34cc: ba5f0200 blt 17c3cd4 - 34d0: 57020000 strpl r0, [r2, -r0] - 34d4: 010000b6 strheq r0, [r0, -r6] - 34d8: 00401b57 subeq r1, r0, r7, asr fp - 34dc: 00b16f02 adcseq r6, r1, r2, lsl #30 - 34e0: 3a310100 bcc c438e8 - 34e4: a5010040 strge r0, [r1, #-64] - 34e8: 01004020 tsteq r0, r0, lsr #32 - 34ec: 00403a55 subeq r3, r0, r5, asr sl - 34f0: 403a1d01 eorsmi r1, sl, r1, lsl #26 - 34f4: 00000000 andeq r0, r0, r0 - 34f8: 00015100 andeq r5, r1, r0, lsl #2 - 34fc: 000119d5 ldrdeq r1, [r1], -r5 - 3500: 05000201 streq r0, [r0, #-513] - 3504: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 3508: 0100000e tsteq r0, lr - 350c: 01010101 tsteq r1, r1, lsl #2 - 3510: 01000100 tsteq r0, r0, lsl #2 - 3514: d5010101 strle r0, [r1, #-257] - 3518: 000202f1 strdeq r0, [r2], -r1 - 351c: 020201d6 andeq r0, r2, #-2147483595 ; 0x80000035 - 3520: 0148fe07 cmppeq r8, r7, lsl #28 - 3524: 080101aa stmdaeq r1, {r1, r3, r5, r7, r8} - 3528: 03010403 movweq r0, #5123 ; 0x1403 - 352c: 1500c8fa strne ip, [r0, #-2298] - 3530: 3607062a strcc r0, [r7], -sl, lsr #12 - 3534: 14020db8 strne r0, [r2], #-3512 - 3538: 300c0895 mulcc ip, r5, r8 - 353c: 17050a06 strne r0, [r5, -r6, lsl #20] - 3540: 2ef74a02 fconstscs s9, #114 - 3544: 14030d09 strne r0, [r3], #-3337 - 3548: 300c0877 andcc r0, ip, r7, ror r8 - 354c: 030a0a06 movweq r0, #43526 ; 0xaa06 - 3550: 1b03060a blne c4d80 - 3554: 45090a74 strmi r0, [r9, #-2676] - 3558: 34a24aa7 strtcc r4, [r2], #2727 - 355c: 22040d03 andcs r0, r4, #192 ; 0xc0 - 3560: 300c0814 andcc r0, ip, r4, lsl r8 - 3564: 17040a06 strne r0, [r4, -r6, lsl #20] - 3568: 0d484f20 stcleq 15, cr4, [r8, #-128] - 356c: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} - 3570: 0a06300c beq 18f5a8 - 3574: 1401030c strne r0, [r1], #-780 - 3578: 3a9e4e08 bcc fe796da0 - 357c: 52040352 andpl r0, r4, #1207959553 ; 0x48000001 - 3580: 14060d3d strne r0, [r6], #-3389 - 3584: 300c0877 andcc r0, ip, r7, ror r8 - 3588: 0d271106 stfeqs f1, [r7, #-24]! - 358c: 08771407 ldmdaeq r7!, {r0, r1, r2, sl, ip}^ - 3590: 1a06300c bne 18f5c8 - 3594: 22080d72 andcs r0, r8, #7296 ; 0x1c80 - 3598: 300c0814 andcc r0, ip, r4, lsl r8 - 359c: 180e0a06 stmdane lr, {r1, r2, r9, fp} - 35a0: 0a01416d beq 53b5c - 35a4: 447f0602 ldrbtmi r0, [pc], #1538 ; 35ac - 35a8: 020a099d andeq r0, sl, #2572288 ; 0x274000 - 35ac: 0d2d053d cfstr32eq mvfx0, [sp, #-244]! - 35b0: a2360d06 eorsge r0, r6, #384 ; 0x180 - 35b4: 1422090d strtne r0, [r2], #-2317 - 35b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 35bc: 2a0e7006 bcs 39f5dc - 35c0: 7714070d ldrvc r0, [r4, -sp, lsl #14] - 35c4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 35c8: 080d721a stmdaeq sp, {r1, r3, r4, r9, ip, sp, lr} - 35cc: 0c081422 cfstrseq mvf1, [r8], {34} - 35d0: 0b0a0630 bleq 284e98 - 35d4: 9e4e6d18 mcrls 13, 2, r6, cr14, cr8, {0} - 35d8: 5438020a ldrtpl r0, [r8], #-522 - 35dc: 3a020a09 bcc 85e08 - 35e0: 2f0c2e08 svccs 0x000c2e08 - 35e4: 14070d00 strne r0, [r7], #-3328 - 35e8: 300c0877 andcc r0, ip, r7, ror r8 - 35ec: 0d721a06 fldmdbseq r2!, {s3-s8} - 35f0: 08142208 ldmdaeq r4, {r3, r9, sp} - 35f4: 0a06300c beq 18f62c - 35f8: 416c1908 cmnmi ip, r8, lsl #18 - 35fc: 44020a01 strmi r0, [r2], #-2561 - 3600: 020a099d andeq r0, sl, #2572288 ; 0x274000 - 3604: b42f053d strtlt r0, [pc], #1341 ; 360c - 3608: 0a0dfe30 beq 382ed0 - 360c: 0c081422 cfstrseq mvf1, [r8], {34} - 3610: 020a0630 andeq r0, sl, #50331648 ; 0x3000000 - 3614: 0e0a080a cdpeq 8, 0, cr0, cr10, cr10, {0} - 3618: bf0a130a svclt 0x000a130a - 361c: 0601037f undefined - 3620: 09220e7f stmdbeq r2!, {r0, r1, r2, r3, r4, r5, r6, r9, sl, fp} - 3624: a37fbe0a cmnge pc, #160 ; 0xa0 - 3628: 06010300 streq r0, [r1], -r0, lsl #6 - 362c: 74ae3607 strtvc r3, [lr], #1543 - 3630: 527b066d rsbspl r0, fp, #114294784 ; 0x6d00000 - 3634: 3da43d3a stccc 13, cr3, [r4, #232]! - 3638: b80a09a4 stmdalt sl, {r2, r5, r7, r8, fp} - 363c: 0a503d7f beq 1412c40 - 3640: 02037fb7 andeq r7, r3, #732 ; 0x2dc - 3644: 43a9c673 undefined instruction 0x43a9c673 - 3648: 0b0dad34 bleq 36eb20 - 364c: 0c08b12f stfeqd f3, [r8], {47} - 3650: 0a090630 beq 244f18 - 3654: 79137fb2 ldmdbvc r3, {r1, r4, r5, r7, r8, r9, sl, fp, ip, sp, lr} - 3658: 0303020a movweq r0, #12810 ; 0x320a - 365c: 96ab572e strtls r5, [fp], lr, lsr #14 - 3660: 2d7faf0a ldclcs 15, cr10, [pc, #-40]! - 3664: 095a3dab ldmdbeq sl, {r0, r1, r3, r5, r7, r8, sl, fp, ip, sp}^ - 3668: 347fad0a ldrbtcc sl, [pc], #3338 ; 3670 - 366c: 03050aad movweq r0, #23213 ; 0x5aad - 3670: 99582d03 ldmdbls r8, {r0, r1, r8, sl, fp, sp}^ - 3674: 0d5b31a8 ldfeqe f3, [fp, #-672] - 3678: 0814220c ldmdaeq r4, {r2, r3, r9, sp} - 367c: 1706300c strne r3, [r6, -ip] - 3680: a60a096c strge r0, [sl], -ip, ror #18 - 3684: 060b037f undefined - 3688: 71a11b6a undefined instruction 0x71a11b6a - 368c: 02000000 andeq r0, r0, #0 ; 0x0 - 3690: 400e2400 andmi r2, lr, r0, lsl #8 - 3694: 00000200 andeq r0, r0, r0, lsl #4 - 3698: a4b70200 ldrtge r0, [r7], #512 - 369c: 85010000 strhi r0, [r1] - 36a0: 0000403d andeq r4, r0, sp, lsr r0 - 36a4: 01000000 tsteq r0, r0 - 36a8: 48000000 stmdami r0, {} - 36ac: 5100400e tstpl r0, lr - 36b0: 19d50001 ldmibne r5, {r0}^ - 36b4: 02010001 andeq r0, r1, #1 ; 0x1 - 36b8: 11780500 cmnne r8, r0, lsl #10 - 36bc: 000e296c andeq r2, lr, ip, ror #18 - 36c0: 01010100 tsteq r1, r0, lsl #2 - 36c4: 01000101 tsteq r0, r1, lsl #2 - 36c8: 01010100 tsteq r1, r0, lsl #2 - 36cc: 0231d501 eorseq sp, r1, #4194304 ; 0x400000 - 36d0: 02020a00 andeq r0, r2, #0 ; 0x0 - 36d4: 014ab008 cmpeq sl, r8 - 36d8: 03083503 movweq r3, #34051 ; 0x8503 - 36dc: ac030104 stfges f0, [r3], {4} - 36e0: 2a1500ca bcs 543a10 - 36e4: 19290206 stmdbne r9!, {r1, r2, r9} - 36e8: 1422020d strtne r0, [r2], #-525 - 36ec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 36f0: 711b0b06 tstvc fp, r6, lsl #22 - 36f4: 04050009 streq r0, [r5], #-9 - 36f8: 19010001 stmdbne r1, {r0} - 36fc: a33d0b08 teqge sp, #8192 ; 0x2000 - 3700: 00000071 andeq r0, r0, r1, ror r0 - 3704: 0e380002 cdpeq 0, 3, cr0, cr8, cr2, {0} - 3708: 00020040 andeq r0, r2, r0, asr #32 - 370c: d3020000 movwle r0, #8192 ; 0x2000 - 3710: 010000a5 smlatbeq r0, r5, r0, r0 - 3714: 00403d85 subeq r3, r0, r5, lsl #27 - 3718: 00000000 andeq r0, r0, r0 - 371c: 00000001 andeq r0, r0, r1 - 3720: 00400e48 subeq r0, r0, r8, asr #28 - 3724: d5000151 strle r0, [r0, #-337] - 3728: 01000119 tsteq r0, r9, lsl r1 - 372c: 78050002 stmdavc r5, {r1} - 3730: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 3734: 01010000 tsteq r1, r0 - 3738: 00010101 andeq r0, r1, r1, lsl #2 - 373c: 01010001 tsteq r1, r1 - 3740: 31d50101 bicscc r0, r5, r1, lsl #2 - 3744: 02080002 andeq r0, r8, #2 ; 0x2 - 3748: 4abc0902 bmi fef05b58 - 374c: 082f0301 stmdaeq pc!, {r0, r8, r9} - 3750: 03010403 movweq r0, #5123 ; 0x1403 - 3754: 1500cab8 strne ip, [r0, #-2744] - 3758: 2902062a stmdbcs r2, {r1, r3, r5, r9, sl} - 375c: 22020d19 andcs r0, r2, #1600 ; 0x640 - 3760: 300c0814 andcc r0, ip, r4, lsl r8 - 3764: 1b050606 blne 144f84 - 3768: 05000971 streq r0, [r0, #-2417] - 376c: 01000104 tsteq r0, r4, lsl #2 - 3770: 4b0b081a blmi 2c57e0 - 3774: 0000ed40 andeq lr, r0, r0, asr #26 - 3778: 48000200 stmdami r0, {r9} - 377c: 0400400e streq r4, [r0], #-14 - 3780: 02000000 andeq r0, r0, #0 ; 0x0 - 3784: 0000a8d7 ldrdeq sl, [r0], -r7 - 3788: 00a7c702 adceq ip, r7, r2, lsl #14 - 378c: a5d30200 ldrbge r0, [r3, #512] - 3790: b7020000 strlt r0, [r2, -r0] - 3794: 000000a4 andeq r0, r0, r4, lsr #1 - 3798: 01000000 tsteq r0, r0 - 379c: 4c000000 stcmi 0, cr0, [r0], {0} - 37a0: 5100400e tstpl r0, lr - 37a4: 19d50001 ldmibne r5, {r0}^ - 37a8: 02010001 andeq r0, r1, #1 ; 0x1 - 37ac: 11780500 cmnne r8, r0, lsl #10 - 37b0: 000e296c andeq r2, lr, ip, ror #18 - 37b4: 01010100 tsteq r1, r0, lsl #2 - 37b8: 01000101 tsteq r0, r1, lsl #2 - 37bc: 01010100 tsteq r1, r0, lsl #2 - 37c0: 0225d501 eoreq sp, r5, #4194304 ; 0x400000 - 37c4: 00020200 andeq r0, r2, r0, lsl #4 - 37c8: 034ad71c movteq sp, #42780 ; 0xa71c - 37cc: 0a080101 beq 203bd8 - 37d0: 00cad303 sbceq sp, sl, r3, lsl #6 - 37d4: 831b1e06 tsthi fp, #96 ; 0x60 - 37d8: 59296306 stmdbpl r9!, {r1, r2, r8, r9, sp, lr} - 37dc: 04050009 streq r0, [r5], #-9 - 37e0: 21010001 tstcs r1, r1 - 37e4: cc140b08 ldcgt 11, cr0, [r4], {8} - 37e8: d5000151 strle r0, [r0, #-337] - 37ec: 02000225 andeq r0, r0, #1342177282 ; 0x50000002 - 37f0: cb1b0003 blgt 6c3804 - 37f4: 0101034a tsteq r1, sl, asr #6 - 37f8: c7030a08 strgt r0, [r3, -r8, lsl #20] - 37fc: 1b0600ca blne 183b2c - 3800: 6606831b undefined - 3804: 00095929 andeq r5, r9, r9, lsr #18 - 3808: 00010405 andeq r0, r1, r5, lsl #8 - 380c: 0b082001 bleq 20b818 - 3810: 0151cc14 cmpeq r1, r4, lsl ip - 3814: 0225d500 eoreq sp, r5, #0 ; 0x0 - 3818: 00040200 andeq r0, r4, r0, lsl #4 - 381c: 034abf1a movteq fp, #44826 ; 0xaf1a - 3820: 0a080101 beq 203c2c - 3824: 00cabb03 sbceq fp, sl, r3, lsl #22 - 3828: 831b1b06 tsthi fp, #6144 ; 0x1800 - 382c: 59296606 stmdbpl r9!, {r1, r2, r9, sl, sp, lr} - 3830: 04050009 streq r0, [r5], #-9 - 3834: 1f010001 svcne 0x00010001 - 3838: cc140b08 ldcgt 11, cr0, [r4], {8} - 383c: d5000151 strle r0, [r0, #-337] - 3840: 02000225 andeq r0, r0, #1342177282 ; 0x50000002 - 3844: b3190005 tstlt r9, #5 ; 0x5 - 3848: 0101034a tsteq r1, sl, asr #6 - 384c: af030a08 svcge 0x00030a08 - 3850: 210600ca smlabtcs r6, sl, r0, r0 - 3854: 6006831b andvs r8, r6, fp, lsl r3 - 3858: 00095929 andeq r5, r9, r9, lsr #18 - 385c: 00010405 andeq r0, r1, r5, lsl #8 - 3860: 0b081e01 bleq 20b06c - 3864: 0071cc14 rsbseq ip, r1, r4, lsl ip - 3868: 00020000 andeq r0, r2, r0 - 386c: 00400e58 subeq r0, r0, r8, asr lr - 3870: 00000002 andeq r0, r0, r2 - 3874: 00a7c702 adceq ip, r7, r2, lsl #14 - 3878: 3d850100 stfccs f0, [r5] - 387c: 00000040 andeq r0, r0, r0, asr #32 - 3880: 00010000 andeq r0, r1, r0 - 3884: 0e480000 cdpeq 0, 4, cr0, cr8, cr0, {0} - 3888: 01510040 cmpeq r1, r0, asr #32 - 388c: 0119d500 tsteq r9, r0, lsl #10 - 3890: 00020100 andeq r0, r2, r0, lsl #2 - 3894: 6c117805 ldcvs 8, cr7, [r1], {5} - 3898: 00000e29 andeq r0, r0, r9, lsr #28 - 389c: 01010101 tsteq r1, r1, lsl #2 - 38a0: 00010001 andeq r0, r1, r1 - 38a4: 01010101 tsteq r1, r1, lsl #2 - 38a8: 000231d5 ldrdeq r3, [r2], -r5 - 38ac: 0a02020a beq 840dc - 38b0: 03014ac8 movweq r4, #6856 ; 0x1ac8 - 38b4: 0403082f streq r0, [r3], #-2095 - 38b8: cac40301 bgt ff1044c4 - 38bc: 062a1500 strteq r1, [sl], -r0, lsl #10 - 38c0: 0d192902 ldceq 9, cr2, [r9, #-8] - 38c4: 08142202 ldmdaeq r4, {r1, r9, sp} - 38c8: 0606300c streq r3, [r6], -ip - 38cc: 09711b05 ldmdbeq r1!, {r0, r2, r8, r9, fp, ip}^ - 38d0: 01040500 tsteq r4, r0, lsl #10 - 38d4: 081b0100 ldmdaeq fp, {r8} - 38d8: 71a33d0b undefined instruction 0x71a33d0b - 38dc: 02000000 andeq r0, r0, #0 ; 0x0 - 38e0: 400e6c00 andmi r6, lr, r0, lsl #24 - 38e4: 00000200 andeq r0, r0, r0, lsl #4 - 38e8: a8d70200 ldmge r7, {r9}^ - 38ec: 85010000 strhi r0, [r1] - 38f0: 0000403d andeq r4, r0, sp, lsr r0 - 38f4: 01000000 tsteq r0, r0 - 38f8: 48000000 stmdami r0, {} - 38fc: 5100400e tstpl r0, lr - 3900: 19d50001 ldmibne r5, {r0}^ - 3904: 02010001 andeq r0, r1, #1 ; 0x1 - 3908: 11780500 cmnne r8, r0, lsl #10 - 390c: 000e296c andeq r2, lr, ip, ror #18 - 3910: 01010100 tsteq r1, r0, lsl #2 - 3914: 01000101 tsteq r0, r1, lsl #2 - 3918: 01010100 tsteq r1, r0, lsl #2 - 391c: 0231d501 eorseq sp, r1, #4194304 ; 0x400000 - 3920: 02020a00 andeq r0, r2, #0 ; 0x0 - 3924: 014ad40b cmpeq sl, fp, lsl #8 - 3928: 03083203 movweq r3, #33283 ; 0x8203 - 392c: d0030104 andle r0, r3, r4, lsl #2 - 3930: 2a1500ca bcs 543c60 - 3934: 19290206 stmdbne r9!, {r1, r2, r9} - 3938: 1422020d strtne r0, [r2], #-525 - 393c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3940: 711b0806 tstvc fp, r6, lsl #16 - 3944: 04050009 streq r0, [r5], #-9 - 3948: 1c010001 stcne 0, cr0, [r1], {1} - 394c: a33d0b08 teqge sp, #8192 ; 0x2000 - 3950: 000000be strheq r0, [r0], -lr - 3954: 0e800001 cdpeq 0, 8, cr0, cr0, cr1, {0} - 3958: 00010040 andeq r0, r1, r0, asr #32 - 395c: eb020000 bl 83964 - 3960: 000000a9 andeq r0, r0, r9, lsr #1 - 3964: 51000000 tstpl r0, r0 - 3968: 19d50001 ldmibne r5, {r0}^ - 396c: 02010001 andeq r0, r1, #1 ; 0x1 - 3970: 11780500 cmnne r8, r0, lsl #10 - 3974: 000e296c andeq r2, lr, ip, ror #18 - 3978: 01010100 tsteq r1, r0, lsl #2 - 397c: 01000101 tsteq r0, r1, lsl #2 - 3980: 01010100 tsteq r1, r0, lsl #2 - 3984: 018ad501 orreq sp, sl, r1, lsl #10 - 3988: 01ae0002 undefined instruction 0x01ae0002 - 398c: e10c0202 tst ip, r2, lsl #4 - 3990: 1e48014a dvfneem f0, f0, #2.0 - 3994: 01040308 tsteq r4, r8, lsl #6 - 3998: 00cadd03 sbceq sp, sl, r3, lsl #26 - 399c: 030a2a15 movweq r2, #43541 ; 0xaa15 - 39a0: 0f0a090a svceq 0x000a090a - 39a4: 1e0a1b0a fmacdne d1, d10, d10 - 39a8: 06060103 streq r0, [r6], -r3, lsl #2 - 39ac: 03061b29 movweq r1, #27433 ; 0x6b29 - 39b0: 0a09e3be beq 27c8b0 - 39b4: 03e0561c mvneq r5, #29360128 ; 0x1c00000 - 39b8: 12043601 andne r3, r4, #1048576 ; 0x100000 - 39bc: 841cc5cf ldrhi ip, [ip], #-1487 - 39c0: 09cf12b2 stmibeq pc, {r1, r4, r5, r7, r9, ip}^ - 39c4: 72c4160a sbcvc r1, r4, #10485760 ; 0xa00000 - 39c8: b2320203 eorslt r0, r2, #805306368 ; 0x30000000 - 39cc: 71c5cf12 bicvc ip, r5, r2, lsl pc - 39d0: cf12c076 svcgt 0x0012c076 - 39d4: c4100a09 ldrgt r0, [r0], #-2569 - 39d8: 03030a72 movweq r0, #14962 ; 0x3a72 - 39dc: 41c81c02 bicmi r1, r8, r2, lsl #24 - 39e0: 020a09ab andeq r0, sl, #2801664 ; 0x2ac000 - 39e4: b9306329 ldmdblt r0!, {r0, r3, r5, r8, r9, sp, lr} - 39e8: 45441106 strbmi r1, [r4, #-262] - 39ec: 10d1cf12 sbcsne ip, r1, r2, lsl pc - 39f0: a2942314 addsge r2, r4, #1342177280 ; 0x50000000 - 39f4: 050acf12 streq ip, [sl, #-3858] - 39f8: bacc6d06 blt ff31ee18 - 39fc: 06040a09 streq r0, [r4], -r9, lsl #20 - 3a00: 0353441e cmpeq r3, #503316480 ; 0x1e000000 - 3a04: 123b4506 eorsne r4, fp, #25165824 ; 0x1800000 - 3a08: 092ab7cf stmdbeq sl!, {r0, r1, r2, r3, r6, r7, r8, r9, sl, ip, sp, pc} - 3a0c: 0203600a andeq r6, r3, #10 ; 0xa - 3a10: 00da5e1d sbcseq r5, sl, sp, lsl lr - 3a14: 00020000 andeq r0, r2, r0 - 3a18: 00400fdc ldrdeq r0, [r0], #-252 - 3a1c: 00000004 andeq r0, r0, r4 - 3a20: 00abaf02 adceq sl, fp, r2, lsl #30 - 3a24: a9eb0200 stmibge fp!, {r9}^ - 3a28: 79010000 stmdbvc r1, {} - 3a2c: 02000030 andeq r0, r0, #48 ; 0x30 - 3a30: 0000b16f andeq fp, r0, pc, ror #2 - 3a34: 00000000 andeq r0, r0, r0 - 3a38: 00000001 andeq r0, r0, r1 - 3a3c: 00401274 subeq r1, r0, r4, ror r2 - 3a40: d5000151 strle r0, [r0, #-337] - 3a44: 01000119 tsteq r0, r9, lsl r1 - 3a48: 78050002 stmdavc r5, {r1} - 3a4c: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 3a50: 01010000 tsteq r1, r0 - 3a54: 00010101 andeq r0, r1, r1, lsl #2 - 3a58: 01010001 tsteq r1, r1 - 3a5c: 8fd50101 svchi 0x00d50101 - 3a60: 58000201 stmdapl r0, {r0, r9} - 3a64: b30d0202 movwlt r0, #53762 ; 0xd202 - 3a68: 0134014b teqeq r4, fp, asr #2 - 3a6c: 01040308 tsteq r4, r8, lsl #6 - 3a70: 00cbaf03 sbceq sl, fp, r3, lsl #30 - 3a74: 1d0a2a15 fstsne s4, [sl, #-84] - 3a78: 18060903 stmdane r6, {r0, r1, r8, fp} - 3a7c: 4254c236 subsmi ip, r4, #1610612739 ; 0x60000003 - 3a80: ab360e06 blge d872a0 - 3a84: 53393c52 teqpl r9, #20992 ; 0x5200 - 3a88: 0e290106 sufeqe f0, f1, f6 - 3a8c: a43da43d ldrtge sl, [sp], #-1085 - 3a90: 01377306 teqeq r7, r6, lsl #6 - 3a94: 54442506 strbpl r2, [r4], #-1286 - 3a98: 22067913 andcs r7, r6, #311296 ; 0x4c000 - 3a9c: 020d711b andeq r7, sp, #-1073741818 ; 0xc0000006 - 3aa0: 87811005 strhi r1, [r1, r5] - 3aa4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3aa8: 56067005 strpl r7, [r6], -r5 - 3aac: 082f020e stmdaeq pc!, {r1, r2, r3, r9} - 3ab0: c61b6e06 ldrgt r6, [fp], -r6, lsl #28 - 3ab4: 7803780a stmdavc r3, {r1, r3, fp, ip, sp, lr} - 3ab8: 07035031 smladxeq r3, r1, r0, r5 - 3abc: e8510806 ldmda r1, {r1, r2, fp}^ - 3ac0: 060a5438 undefined - 3ac4: 050a5e2f streq r5, [sl, #-3631] - 3ac8: 9958444e ldmdbls r8, {r1, r2, r3, r6, sl, lr}^ - 3acc: 030dac35 movweq sl, #56373 ; 0xdc35 - 3ad0: 0c084e3d stceq 14, cr4, [r8], {61} - 3ad4: 180e0630 stmdane lr, {r4, r5, r9, sl} - 3ad8: b12f040d teqlt pc, sp, lsl #8 - 3adc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3ae0: 0e0e6d06 cdpeq 13, 0, cr6, cr14, cr6, {0} - 3ae4: 04050009 streq r0, [r5], #-9 - 3ae8: 27010001 strcs r0, [r1, -r1] - 3aec: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} - 3af0: 000001d2 ldrdeq r0, [r0], -r2 - 3af4: 108c0002 addne r0, ip, r2 - 3af8: 00040040 andeq r0, r4, r0, asr #32 - 3afc: 63020000 movwvs r0, #8192 ; 0x2000 - 3b00: 010000ad smlatbeq r0, sp, r0, r0 - 3b04: 004020bb strheq r2, [r0], #-11 - 3b08: 40208501 eormi r8, r0, r1, lsl #10 - 3b0c: 21e50100 mvncs r0, r0, lsl #2 - 3b10: 00000040 andeq r0, r0, r0, asr #32 - 3b14: 00010000 andeq r0, r1, r0 - 3b18: 12700000 rsbsne r0, r0, #0 ; 0x0 - 3b1c: 01510040 cmpeq r1, r0, asr #32 - 3b20: 0119d500 tsteq r9, r0, lsl #10 - 3b24: 00020100 andeq r0, r2, r0, lsl #2 - 3b28: 6c117805 ldcvs 8, cr7, [r1], {5} - 3b2c: 00000e29 andeq r0, r0, r9, lsr #28 - 3b30: 01010101 tsteq r1, r1, lsl #2 - 3b34: 00010001 andeq r0, r1, r1 - 3b38: 01010101 tsteq r1, r1, lsl #2 - 3b3c: 020387d5 andeq r8, r3, #55836672 ; 0x3540000 - 3b40: 0201f200 andeq pc, r1, #0 ; 0x0 - 3b44: 4bef0e02 blmi ffbc7354 - 3b48: 08014101 stmdaeq r1, {r0, r8, lr} - 3b4c: 03010403 movweq r0, #5123 ; 0x1403 - 3b50: 1500cbeb strne ip, [r0, #-3051] - 3b54: 0602052a streq r0, [r2], -sl, lsr #10 - 3b58: 060f5229 streq r5, [pc], -r9, lsr #4 - 3b5c: 05b24468 ldreq r4, [r2, #1128]! - 3b60: 280a067e stmdacs sl, {r1, r2, r3, r4, r5, r6, r9, sl} - 3b64: 58020de7 stmdapl r2, {r0, r1, r2, r5, r6, r7, r8, sl, fp} - 3b68: 300c0888 andcc r0, ip, r8, lsl #17 - 3b6c: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ - 3b70: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} - 3b74: 6806300c stmdavs r6, {r2, r3, ip, sp} - 3b78: 14040824 strne r0, [r4], #-2084 - 3b7c: 300c0877 andcc r0, ip, r7, ror r8 - 3b80: 08d06606 ldmeq r0, {r1, r2, r9, sl, sp, lr}^ - 3b84: 08771404 ldmdaeq r7!, {r2, sl, ip}^ - 3b88: 7406300c strvc r3, [r6], #-12 - 3b8c: 1404086d strne r0, [r4], #-2157 - 3b90: 300c0877 andcc r0, ip, r7, ror r8 - 3b94: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} - 3b98: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} - 3b9c: 1306300c movwne r3, #24588 ; 0x600c - 3ba0: 580408ce stmdapl r4, {r1, r2, r3, r6, r7, fp} - 3ba4: 300c0888 andcc r0, ip, r8, lsl #17 - 3ba8: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ - 3bac: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} - 3bb0: 1506300c strne r3, [r6, #-12] - 3bb4: 66040822 strvs r0, [r4], -r2, lsr #16 - 3bb8: 300c0825 andcc r0, ip, r5, lsr #16 - 3bbc: 086d7406 stmdaeq sp!, {r1, r2, sl, ip, sp, lr}^ - 3bc0: 08771404 ldmdaeq r7!, {r2, sl, ip}^ - 3bc4: 1506300c strne r3, [r6, #-12] - 3bc8: 73040822 movwvc r0, #18466 ; 0x4822 - 3bcc: 300c08c2 andcc r0, ip, r2, asr #17 - 3bd0: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} - 3bd4: 08c27304 stmiaeq r2, {r2, r8, r9, ip, sp, lr}^ - 3bd8: 1406300c strne r3, [r6], #-12 - 3bdc: 66040823 strvs r0, [r4], -r3, lsr #16 - 3be0: 300c0825 andcc r0, ip, r5, lsr #16 - 3be4: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ - 3be8: 08c27304 stmiaeq r2, {r2, r8, r9, ip, sp, lr}^ - 3bec: 1406300c strne r3, [r6], #-12 - 3bf0: 730408cd movwvc r0, #18637 ; 0x48cd - 3bf4: 300c08c2 andcc r0, ip, r2, asr #17 - 3bf8: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} - 3bfc: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} - 3c00: 1506300c strne r3, [r6, #-12] - 3c04: 66040822 strvs r0, [r4], -r2, lsr #16 - 3c08: 300c0825 andcc r0, ip, r5, lsr #16 - 3c0c: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} - 3c10: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} - 3c14: 1306300c movwne r3, #24588 ; 0x600c - 3c18: 580408ce stmdapl r4, {r1, r2, r3, r6, r7, fp} - 3c1c: 300c0888 andcc r0, ip, r8, lsl #17 - 3c20: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ - 3c24: 08c27304 stmiaeq r2, {r2, r8, r9, ip, sp, lr}^ - 3c28: 1506300c strne r3, [r6, #-12] - 3c2c: 66040822 strvs r0, [r4], -r2, lsr #16 - 3c30: 300c0825 andcc r0, ip, r5, lsr #16 - 3c34: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} - 3c38: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} - 3c3c: 1506300c strne r3, [r6, #-12] - 3c40: 73040822 movwvc r0, #18466 ; 0x4822 - 3c44: 300c08c2 andcc r0, ip, r2, asr #17 - 3c48: 0a030a06 beq c6468 - 3c4c: 0e7e0605 cdpeq 6, 7, cr0, cr14, cr5, {0} - 3c50: 7e050326 cdpvc 3, 0, cr0, cr5, cr6, {1} - 3c54: 050a09cf streq r0, [sl, #-2511] - 3c58: 7a036a22 bvc de4e8 - 3c5c: 0a090630 beq 245524 - 3c60: 036a2203 cmneq sl, #805306368 ; 0x30000000 - 3c64: 22fc2e06 rscscs r2, ip, #96 ; 0x60 - 3c68: 0555036a ldrbeq r0, [r5, #-874] - 3c6c: 0a8e250e beq fe38d0ac - 3c70: 9d207fb3 stcls 15, cr7, [r0, #-716]! - 3c74: 76052b03 strvc r2, [r5], -r3, lsl #22 - 3c78: 030d5f5d movweq r5, #57181 ; 0xdf5d - 3c7c: 0c083222 sfmeq f3, 4, [r8], {34} - 3c80: ba0e0630 blt 385548 - 3c84: c1210730 teqgt r1, r0, lsr r7 - 3c88: b6361d06 ldrtlt r1, [r6], -r6, lsl #26 - 3c8c: 8858040d ldmdahi r8, {r0, r2, r3, sl}^ - 3c90: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3c94: 290e6706 stmdbcs lr, {r1, r2, r8, r9, sl, sp, lr} - 3c98: 14057d03 strne r7, [r5], #-3331 - 3c9c: 35290106 strcc r0, [r9, #-262]! - 3ca0: 7b057b0a blvc 1628d0 - 3ca4: 0203372c andeq r3, r3, #11534336 ; 0xb00000 - 3ca8: 98247605 stmdals r4!, {r0, r2, r9, sl, ip, sp, lr} - 3cac: 3222030d eorcc r0, r2, #872415232 ; 0x34000000 - 3cb0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3cb4: cd140f0f ldcgt 15, cr0, [r4, #-60] - 3cb8: 0009740e andeq r7, r9, lr, lsl #8 - 3cbc: 00010405 andeq r0, r1, r5, lsl #8 - 3cc0: 0b082801 bleq 20dccc - 3cc4: 0083cc14 addeq ip, r3, r4, lsl ip - 3cc8: 00020000 andeq r0, r2, r0 - 3ccc: 00401270 subeq r1, r0, r0, ror r2 - 3cd0: 00000002 andeq r0, r0, r2 - 3cd4: 00ad6302 adceq r6, sp, r2, lsl #6 - 3cd8: 9e2f0200 cdpls 2, 2, cr0, cr15, cr0, {0} - 3cdc: 00000000 andeq r0, r0, r0 - 3ce0: 00010000 andeq r0, r1, r0 - 3ce4: 12740000 rsbsne r0, r4, #0 ; 0x0 - 3ce8: 01510040 cmpeq r1, r0, asr #32 - 3cec: 0119d500 tsteq r9, r0, lsl #10 - 3cf0: 00020100 andeq r0, r2, r0, lsl #2 - 3cf4: 6c117805 ldcvs 8, cr7, [r1], {5} - 3cf8: 00000e29 andeq r0, r0, r9, lsr #28 - 3cfc: 01010101 tsteq r1, r1, lsl #2 - 3d00: 00010001 andeq r0, r1, r1 - 3d04: 01010101 tsteq r1, r1, lsl #2 - 3d08: 00021fd5 ldrdeq r1, [r2], -r5 - 3d0c: 28000202 stmdacs r0, {r1, r9} - 3d10: 00014cb0 strheq r4, [r1], -r0 - 3d14: 030a0801 movweq r0, #43009 ; 0xa801 - 3d18: 1500ccac strne ip, [r0, #-3244] - 3d1c: 0500092a streq r0, [r0, #-2346] - 3d20: 01000104 tsteq r0, r4, lsl #2 - 3d24: 300b0830 andcc r0, fp, r0, lsr r8 - 3d28: 00015106 andeq r5, r1, r6, lsl #2 - 3d2c: 00021fd5 ldrdeq r1, [r2], -r5 - 3d30: 25000302 strcs r0, [r0, #-770] - 3d34: 000347d3 ldrdeq r4, [r3], -r3 - 3d38: 030a0803 movweq r0, #43011 ; 0xa803 - 3d3c: 1500c7cf strne ip, [r0, #-1999] - 3d40: 050009de streq r0, [r0, #-2526] - 3d44: 01000104 tsteq r0, r4, lsl #2 - 3d48: 300b082f andcc r0, fp, pc, lsr #16 - 3d4c: 00018606 andeq r8, r1, r6, lsl #12 - 3d50: 80000200 andhi r0, r0, r0, lsl #4 - 3d54: 02004012 andeq r4, r0, #18 ; 0x12 - 3d58: 02000000 andeq r0, r0, #0 ; 0x0 - 3d5c: 0000aff3 strdeq sl, [r0], -r3 - 3d60: 4020bb01 eormi fp, r0, r1, lsl #22 - 3d64: 00000000 andeq r0, r0, r0 - 3d68: 00000100 andeq r0, r0, r0, lsl #2 - 3d6c: 40127400 andsmi r7, r2, r0, lsl #8 - 3d70: 00015100 andeq r5, r1, r0, lsl #2 - 3d74: 000119d5 ldrdeq r1, [r1], -r5 - 3d78: 05000201 streq r0, [r0, #-513] - 3d7c: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 3d80: 0100000e tsteq r0, lr - 3d84: 01010101 tsteq r1, r1, lsl #2 - 3d88: 01000100 tsteq r0, r0, lsl #2 - 3d8c: d5010101 strle r0, [r1, #-257] - 3d90: 000202c5 andeq r0, r2, r5, asr #5 - 3d94: 020201d9 andeq r0, r2, #1073741878 ; 0x40000036 - 3d98: 014cb90f cmpeq ip, pc, lsl #18 - 3d9c: 03080131 movweq r0, #33073 ; 0x8131 - 3da0: 00ccb503 sbceq fp, ip, r3, lsl #10 - 3da4: 791b2e06 ldmdbvc fp, {r1, r2, r9, sl, fp, sp} - 3da8: 64060605 strvs r0, [r6], #-1541 - 3dac: 7e052937 mcrvc 9, 0, r2, cr5, cr7, {1} - 3db0: e7280a06 str r0, [r8, -r6, lsl #20]! - 3db4: 8858020d ldmdahi r8, {r0, r2, r3, r9}^ - 3db8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3dbc: 04087616 streq r7, [r8], #-1558 - 3dc0: 0c082566 cfstr32eq mvfx2, [r8], {102} - 3dc4: 24680630 strbtcs r0, [r8], #-1584 - 3dc8: 77140408 ldrvc r0, [r4, -r8, lsl #8] - 3dcc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3dd0: 0408d066 streq sp, [r8], #-102 - 3dd4: 0c087714 stceq 7, cr7, [r8], {20} - 3dd8: 6d740630 ldclvs 6, cr0, [r4, #-192]! - 3ddc: 77140408 ldrvc r0, [r4, -r8, lsl #8] - 3de0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3de4: 04082215 streq r2, [r8], #-533 - 3de8: 0c082566 cfstr32eq mvfx2, [r8], {102} - 3dec: ce130630 mrcgt 6, 0, r0, cr3, cr0, {1} - 3df0: 88580408 ldmdahi r8, {r3, sl}^ - 3df4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3df8: 04087616 streq r7, [r8], #-1558 - 3dfc: 0c082566 cfstr32eq mvfx2, [r8], {102} - 3e00: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 3e04: 25660408 strbcs r0, [r6, #-1032]! - 3e08: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3e0c: 04086d74 streq r6, [r8], #-3444 - 3e10: 0c087714 stceq 7, cr7, [r8], {20} - 3e14: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 3e18: c2730408 rsbsgt r0, r3, #134217728 ; 0x8000000 - 3e1c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3e20: 04082215 streq r2, [r8], #-533 - 3e24: 0c08c273 sfmeq f4, 1, [r8], {115} - 3e28: 23140630 tstcs r4, #50331648 ; 0x3000000 - 3e2c: 25660408 strbcs r0, [r6, #-1032]! - 3e30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3e34: 04087616 streq r7, [r8], #-1558 - 3e38: 0c08c273 sfmeq f4, 1, [r8], {115} - 3e3c: cd140630 ldcgt 6, cr0, [r4, #-192] - 3e40: c2730408 rsbsgt r0, r3, #134217728 ; 0x8000000 - 3e44: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3e48: 04082215 streq r2, [r8], #-533 - 3e4c: 0c082566 cfstr32eq mvfx2, [r8], {102} - 3e50: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 3e54: 25660408 strbcs r0, [r6, #-1032]! - 3e58: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3e5c: 04082215 streq r2, [r8], #-533 - 3e60: 0c082566 cfstr32eq mvfx2, [r8], {102} - 3e64: ce130630 mrcgt 6, 0, r0, cr3, cr0, {1} - 3e68: 88580408 ldmdahi r8, {r3, sl}^ - 3e6c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3e70: 04087616 streq r7, [r8], #-1558 - 3e74: 0c08c273 sfmeq f4, 1, [r8], {115} - 3e78: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 3e7c: 25660408 strbcs r0, [r6, #-1032]! - 3e80: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3e84: 04082215 streq r2, [r8], #-533 - 3e88: 0c082566 cfstr32eq mvfx2, [r8], {102} - 3e8c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 3e90: c2730408 rsbsgt r0, r3, #134217728 ; 0x8000000 - 3e94: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3e98: 050a030a streq r0, [sl, #-778] - 3e9c: 260e7e06 strcs r7, [lr], -r6, lsl #28 - 3ea0: cf7e0503 svcgt 0x007e0503 - 3ea4: 22050a09 andcs r0, r5, #36864 ; 0x9000 - 3ea8: 307a036a rsbscc r0, sl, sl, ror #6 - 3eac: 030a0906 movweq r0, #43270 ; 0xa906 - 3eb0: 06036a22 streq r6, [r3], -r2, lsr #20 - 3eb4: 6a22fc2e bvs 8c2f74 - 3eb8: 0e055503 cfsh32eq mvfx5, mvfx5, #3 - 3ebc: b30a8e25 movwlt r8, #44581 ; 0xae25 - 3ec0: 039d207f orrseq r2, sp, #127 ; 0x7f - 3ec4: 0675052b ldrbteq r0, [r5], -fp, lsr #10 - 3ec8: 0915527c ldmdbeq r5, {r2, r3, r4, r5, r6, r9, ip, lr} - 3ecc: 01040500 tsteq r4, r0, lsl #10 - 3ed0: 08290100 stmdaeq r9!, {r8} - 3ed4: df69220b svcle 0x0069220b - 3ed8: 02000002 andeq r0, r0, #2 ; 0x2 - 3edc: 40143400 andsmi r3, r4, r0, lsl #8 - 3ee0: 00000700 andeq r0, r0, r0, lsl #14 - 3ee4: b16f0200 cmnlt pc, r0, lsl #4 - 3ee8: b5010000 strlt r0, [r1] - 3eec: 0100401b tsteq r0, fp, lsl r0 - 3ef0: 004020bb strheq r2, [r0], #-11 - 3ef4: 401c2501 andsmi r2, ip, r1, lsl #10 - 3ef8: b3a70200 undefined instruction 0xb3a70200 - 3efc: bd010000 stclt 0, cr0, [r1] - 3f00: 0100401d tsteq r0, sp, lsl r0 - 3f04: 004021e5 subeq r2, r0, r5, ror #3 - 3f08: 00000000 andeq r0, r0, r0 - 3f0c: 00000001 andeq r0, r0, r1 - 3f10: 00401274 subeq r1, r0, r4, ror r2 - 3f14: d5000151 strle r0, [r0, #-337] - 3f18: 01000119 tsteq r0, r9, lsl r1 - 3f1c: 78050002 stmdavc r5, {r1} - 3f20: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 3f24: 01010000 tsteq r1, r0 - 3f28: 00010101 andeq r0, r1, r1, lsl #2 - 3f2c: 01010001 tsteq r1, r1 - 3f30: 85d50101 ldrbhi r0, [r5, #257] - 3f34: bc000205 sfmlt f0, 4, [r0], {5} - 3f38: 10020202 andne r0, r2, r2, lsl #4 - 3f3c: b0014cf3 strdlt r4, [r1], -r3 - 3f40: 03082d01 movweq r2, #36097 ; 0x8d01 - 3f44: ef030104 svc 0x00030104 - 3f48: 2a1500cc bcs 544280 - 3f4c: 2b360205 blcs d84768 - 3f50: 4a1b0f06 bmi 6c7b70 - 3f54: 4e3d020d cdpmi 2, 3, cr0, cr13, cr13, {0} - 3f58: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3f5c: 73060405 movwvc r0, #25605 ; 0x6405 - 3f60: 7e05520e cdpvc 2, 0, cr5, cr5, cr14, {0} - 3f64: 030d9624 movweq r9, #54820 ; 0xd624 - 3f68: 0c08eb4a stceq 11, cr14, [r8], {74} - 3f6c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 - 3f70: eb4a0408 bl 1284f98 - 3f74: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3f78: 12057d03 andne r7, r5, #192 ; 0xc0 - 3f7c: 790a9c17 stmdbvc sl, {r0, r1, r2, r4, sl, fp, ip, pc} - 3f80: 98207f05 stmdals r0!, {r0, r2, r8, r9, sl, fp, ip, sp, lr} - 3f84: 75050203 strvc r0, [r5, #-515] - 3f88: c0511906 subsgt r1, r1, r6, lsl #18 - 3f8c: 5f81040d svcpl 0x0081040d - 3f90: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 3f94: 290e5706 stmdbcs lr, {r1, r2, r8, r9, sl, ip, lr} - 3f98: 2e0a080a cdpcs 8, 0, cr0, cr10, cr10, {0} - 3f9c: d00a2f0a andle r2, sl, sl, lsl #30 - 3fa0: 00f40a00 rscseq r0, r4, r0, lsl #20 - 3fa4: 1506cc16 strne ip, [r6, #-3094] - 3fa8: 020d85cc andeq r8, sp, #855638016 ; 0x33000000 - 3fac: 0c084e3d stceq 14, cr4, [r8], {61} - 3fb0: 6c060630 stcvs 6, cr0, [r6], {48} - 3fb4: 1f18290e svcne 0x0018290e - 3fb8: 1422050d strtne r0, [r2], #-1293 - 3fbc: 08270a09 stmdaeq r7!, {r0, r3, r9, fp} - 3fc0: 0306300c movweq r3, #24588 ; 0x600c - 3fc4: 290d0601 stmdbcs sp, {r0, r9, sl} - 3fc8: 3d020d0c stccc 13, cr0, [r2, #-48] - 3fcc: 300c084e andcc r0, ip, lr, asr #16 - 3fd0: 0e690606 cdpeq 6, 6, cr0, cr9, cr6, {0} - 3fd4: 06040a29 streq r0, [r4], -r9, lsr #20 - 3fd8: 0a711b0f beq 1c4ac1c - 3fdc: 09b03c02 ldmibeq r0!, {r1, sl, fp, ip, sp} - 3fe0: 1406050a strne r0, [r6], #-1290 - 3fe4: 0a09f051 beq 280130 - 3fe8: 0a8c5804 beq fe31a000 - 3fec: 06010302 streq r0, [r1], -r2, lsl #6 - 3ff0: 0996446d ldmibeq r6, {r0, r2, r3, r5, r6, sl, lr} - 3ff4: 1406020a strne r0, [r6], #-522 - 3ff8: 8c58f051 mrrchi 0, 5, pc, r8, cr1 - 3ffc: 4e3d060d cfmsuba32mi mvax0, mvax0, mvfx13, mvfx13 - 4000: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 4004: 170e5006 strne r5, [lr, -r6] - 4008: 0b0a7517 bleq 2a146c - 400c: 711b0506 tstvc fp, r6, lsl #10 - 4010: 070db03c smladxeq sp, ip, r0, fp - 4014: 0c084e3d stceq 14, cr4, [r8], {61} - 4018: 20170630 andscs r0, r7, r0, lsr r6 - 401c: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} - 4020: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 4024: 04087715 streq r7, [r8], #-1813 - 4028: 0c084e3d stceq 14, cr4, [r8], {61} - 402c: 0a090630 beq 2458f4 - 4030: 4822150b stmdami r2!, {r0, r1, r3, r8, sl, ip} - 4034: 3d0408f1 stccc 8, cr0, [r4, #-964] - 4038: 300c084e andcc r0, ip, lr, asr #16 - 403c: 08201706 stmdaeq r0!, {r1, r2, r8, r9, sl, ip} - 4040: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 4044: 1506300c strne r3, [r6, #-12] - 4048: 3d040877 stccc 8, cr0, [r4, #-476] - 404c: 300c084e andcc r0, ip, lr, asr #16 - 4050: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} - 4054: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 4058: 0906300c stmdbeq r6, {r2, r3, ip, sp} - 405c: 01040500 tsteq r4, r0, lsl #10 - 4060: 082a0100 stmdaeq sl!, {r8} - 4064: 0369220b cmneq r9, #-1342177280 ; 0xb0000000 - 4068: 0d622303 stcleq 3, cr2, [r2, #-12]! - 406c: 084e3d02 stmdaeq lr, {r1, r8, sl, fp, ip, sp}^ - 4070: 0606300c streq r3, [r6], -ip - 4074: 0a290e6c beq a47a2c - 4078: 1b0f0604 blne 3c5890 - 407c: 3c020a71 stccc 10, cr0, [r2], {113} - 4080: 050a095b streq r0, [sl, #-2395] - 4084: f0511406 undefined instruction 0xf0511406 - 4088: 58040a09 stmdapl r4, {r0, r3, r9, fp} - 408c: 03020a8c movweq r0, #10892 ; 0x2a8c - 4090: 446d0601 strbtmi r0, [sp], #-1537 - 4094: 020a0996 andeq r0, sl, #2457600 ; 0x258000 - 4098: f0511406 undefined instruction 0xf0511406 - 409c: 060d8b58 undefined - 40a0: 0c084e3d stceq 14, cr4, [r8], {61} - 40a4: 51060630 tstpl r6, r0, lsr r6 - 40a8: 7517180e ldrvc r1, [r7, #-2062] - 40ac: 0506080a streq r0, [r6, #-2058] - 40b0: 053d711b ldreq r7, [sp, #-283]! - 40b4: 4e3d070d cdpmi 7, 3, cr0, cr13, cr13, {0} - 40b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 40bc: 0408cb16 streq ip, [r8], #-2838 - 40c0: 0c084e3d stceq 14, cr4, [r8], {61} - 40c4: 0a090630 beq 24598c - 40c8: 49771567 ldmdbmi r7!, {r0, r1, r2, r5, r6, r8, sl, ip}^ - 40cc: 3d040846 stccc 8, cr0, [r4, #-280] - 40d0: 300c084e andcc r0, ip, lr, asr #16 - 40d4: 08cb1606 stmiaeq fp, {r1, r2, r9, sl, ip}^ - 40d8: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 40dc: 1506300c strne r3, [r6, #-12] - 40e0: 3d040877 stccc 8, cr0, [r4, #-476] - 40e4: 300c084e andcc r0, ip, lr, asr #16 - 40e8: 5d0a0906 stcpl 9, cr0, [sl, #-24] - 40ec: 03032215 movweq r2, #12821 ; 0x3215 - 40f0: 020de34c andeq lr, sp, #805306369 ; 0x30000001 - 40f4: 0c084e3d stceq 14, cr4, [r8], {61} - 40f8: 69060630 stmdbvs r6, {r4, r5, r9, sl} - 40fc: 040a290e streq r2, [sl], #-2318 - 4100: 711b0f06 tstvc fp, r6, lsl #30 - 4104: 5a3d020a bpl f44934 - 4108: 06050a09 streq r0, [r5], -r9, lsl #20 - 410c: 09f55115 ldmibeq r5!, {r0, r2, r4, r8, ip, lr}^ - 4110: 8c58040a cfldrdhi mvd0, [r8], {10} - 4114: 0103020a tsteq r3, sl, lsl #4 - 4118: 91446c06 cmpls r4, r6, lsl #24 - 411c: 06020a09 streq r0, [r2], -r9, lsl #20 - 4120: 58f05114 ldmpl r0!, {r2, r4, r8, ip, lr}^ - 4124: 3d060d8c stccc 13, cr0, [r6, #-560] - 4128: 300c084e andcc r0, ip, lr, asr #16 - 412c: 0e560606 cdpeq 6, 5, cr0, cr6, cr6, {0} - 4130: 13040a17 movwne r0, #18967 ; 0x4a17 - 4134: 44040624 strmi r0, [r4], #-1572 - 4138: 3d070d53 stccc 13, cr0, [r7, #-332] - 413c: 300c084e andcc r0, ip, lr, asr #16 - 4140: 10020506 andne r0, r2, r6, lsl #10 - 4144: 1e7e05a5 cdpne 5, 7, cr0, cr14, cr5, {5} - 4148: 0d721a9c fldmdbseq r2!, {s3-s158} - 414c: 08eb4a03 stmiaeq fp!, {r0, r1, r9, fp, lr}^ - 4150: 0a06300c beq 190188 - 4154: 091f1902 ldmdbeq pc, {r1, r8, fp, ip} - 4158: 4f48020a svcmi 0x0048020a - 415c: 04080930 streq r0, [r8], #-2352 - 4160: 0c08eb4a stceq 11, cr14, [r8], {74} - 4164: 70130630 andsvc r0, r3, r0, lsr r6 - 4168: eb4a0408 bl 1285190 - 416c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 4170: 23057403 movwcs r7, #21507 ; 0x5403 - 4174: 981b0106 ldmdals fp, {r1, r2, r8} - 4178: 7505730a strvc r7, [r5, #-778] - 417c: 020a9820 andeq r9, sl, #2097152 ; 0x200000 - 4180: 6e050a03 fmacsvs s0, s10, s6 - 4184: 0a09714b beq 2606b8 - 4188: 033f7fba teqeq pc, #744 ; 0x2e8 - 418c: 7fb90a09 svcvc 0x00b90a09 - 4190: 0303ef4a movweq lr, #16202 ; 0x3f4a - 4194: 020d8e4c andeq r8, sp, #1216 ; 0x4c0 - 4198: 0c084e3d stceq 14, cr4, [r8], {61} - 419c: 6b060630 blvs 185a64 - 41a0: 2906290e stmdbcs r6, {r1, r2, r3, r8, fp, sp} - 41a4: 060d711b undefined - 41a8: 0c088858 stceq 8, cr8, [r8], {88} - 41ac: 5a060630 bpl 185a74 - 41b0: 7517290e ldrvc r2, [r7, #-2318] - 41b4: 7faf0a09 svcvc 0x00af0a09 - 41b8: 01611c1b cmneq r1, fp, lsl ip - 41bc: 00020000 andeq r0, r2, r0 - 41c0: 004016ac subeq r1, r0, ip, lsr #13 - 41c4: 00000004 andeq r0, r0, r4 - 41c8: 00b3a702 adcseq sl, r3, r2, lsl #14 - 41cc: 23190100 tstcs r9, #0 ; 0x0 - 41d0: 25010040 strcs r0, [r1, #-64] - 41d4: 0100401c tsteq r0, ip, lsl r0 - 41d8: 004020bb strheq r2, [r0], #-11 - 41dc: 00000000 andeq r0, r0, r0 - 41e0: 00000001 andeq r0, r0, r1 - 41e4: 00401274 subeq r1, r0, r4, ror r2 - 41e8: d5000151 strle r0, [r0, #-337] - 41ec: 01000119 tsteq r0, r9, lsl r1 - 41f0: 78050002 stmdavc r5, {r1} - 41f4: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} - 41f8: 01010000 tsteq r1, r0 - 41fc: 00010101 andeq r0, r1, r1, lsl #2 - 4200: 01010001 tsteq r1, r1 - 4204: 96d50101 ldrbls r0, [r5], r1, lsl #2 - 4208: 9a000202 bls 4a18 - 420c: 11020201 tstne r2, r1, lsl #4 - 4210: 45014eb5 strmi r4, [r1, #-3765] - 4214: 04030801 streq r0, [r3], #-2049 - 4218: ceb10301 cdpgt 3, 11, cr0, cr1, cr1, {0} - 421c: 032a1500 teqeq sl, #0 ; 0x0 - 4220: 36030601 strcc r0, [r3], -r1, lsl #12 - 4224: 14020db8 strne r0, [r2], #-3512 - 4228: 300c0877 andcc r0, ip, r7, ror r8 - 422c: 06060a06 streq r0, [r6], -r6, lsl #20 - 4230: 0a711b13 beq 1c4ae84 - 4234: 7b770602 blvc 1dc5a44 - 4238: 020a091c andeq r0, sl, #458752 ; 0x70000 - 423c: 4e441b06 fmacdmi d17, d4, d6 - 4240: 030d563e movweq r5, #54846 ; 0xd63e - 4244: 0c084e3d stceq 14, cr4, [r8], {61} - 4248: 040a0630 streq r0, [sl], #-1584 - 424c: 170e1e0a strne r1, [lr, -sl, lsl #28] - 4250: 0408385f streq r3, [r8], #-2143 - 4254: 0c084e3d stceq 14, cr4, [r8], {61} - 4258: 060a0630 undefined - 425c: 1f0f1a0a svcne 0x000f1a0a - 4260: 7706020a strvc r0, [r6, -sl, lsl #4] - 4264: 0a094552 beq 2557b4 - 4268: 441b0602 ldrmi r0, [fp], #-1538 - 426c: 08f34b4e ldmeq r3!, {r1, r2, r3, r6, r8, r9, fp, lr}^ - 4270: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 4274: 0a06300c beq 1902ac - 4278: 0e140a04 fmscseq s0, s8, s8 - 427c: 08395ec1 ldmdaeq r9!, {r0, r6, r7, r9, sl, fp, ip, lr} - 4280: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 4284: 0a06300c beq 1902bc - 4288: 0f100a04 svceq 0x00100a04 - 428c: 08395ec9 ldmdaeq r9!, {r0, r3, r6, r7, r9, sl, fp, ip, lr} - 4290: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 4294: 0a06300c beq 1902cc - 4298: 0f0c0a04 svceq 0x000c0a04 - 429c: 08395ec9 ldmdaeq r9!, {r0, r3, r6, r7, r9, sl, fp, ip, lr} - 42a0: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 42a4: 0a06300c beq 1902dc - 42a8: 0f080a04 svceq 0x00080a04 - 42ac: 087379c9 ldmdaeq r3!, {r0, r3, r6, r7, r8, fp, ip, sp, lr}^ - 42b0: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ - 42b4: 0a06300c beq 1902ec - 42b8: 79c90f04 stmibvc r9, {r2, r8, r9, sl, fp}^ - 42bc: 3d040873 stccc 8, cr0, [r4, #-460] - 42c0: 300c084e andcc r0, ip, lr, asr #16 - 42c4: 0e5e0606 cdpeq 6, 5, cr0, cr14, cr6, {0} - 42c8: 080a0921 stmdaeq sl, {r0, r5, r8, fp} - 42cc: cb3e0405 blgt f852e8 - 42d0: 194e0703 stmdbne lr, {r0, r1, r8, r9, sl}^ - 42d4: 4e3d040d cdpmi 4, 3, cr0, cr13, cr13, {0} - 42d8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 42dc: 04087013 streq r7, [r8], #-19 - 42e0: 0c084e3d stceq 14, cr4, [r8], {61} - 42e4: 73030630 movwvc r0, #13872 ; 0x3630 - 42e8: 01062305 tsteq r6, r5, lsl #6 - 42ec: 070a981b smladeq sl, fp, r8, r9 - 42f0: d23b7505 eorsle r7, fp, #20971520 ; 0x1400000 - 42f4: 76067005 strvc r7, [r6], -r5 - 42f8: 721a3c29 andsvc r3, sl, #10496 ; 0x2900 - 42fc: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} - 4300: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 4304: 1f19740a svcne 0x0019740a - 4308: 2d740a09 fldmdbscs r4!, {s1-s9} - 430c: 06040315 undefined - 4310: 09482971 stmdbeq r8, {r0, r4, r5, r6, r8, fp, sp}^ - 4314: 01040500 tsteq r4, r0, lsl #10 - 4318: 082b0100 stmdaeq fp!, {r8} - 431c: 8469220b strbthi r2, [r9], #-523 - 4320: 01000000 tsteq r0, r0 - 4324: 4017e000 andsmi lr, r7, r0 - 4328: 00000400 andeq r0, r0, r0, lsl #8 - 432c: b53b0200 ldrlt r0, [fp, #-512]! - 4330: f5010000 undefined instruction 0xf5010000 - 4334: 0100003b tsteq r0, fp, lsr r0 - 4338: 00403d85 subeq r3, r0, r5, lsl #27 - 433c: 006cb901 rsbeq fp, ip, r1, lsl #18 - 4340: 00000000 andeq r0, r0, r0 - 4344: 00015100 andeq r5, r1, r0, lsl #2 - 4348: 000119d5 ldrdeq r1, [r1], -r5 - 434c: 05000201 streq r0, [r0, #-513] - 4350: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 4354: 0100000e tsteq r0, lr - 4358: 01010101 tsteq r1, r1, lsl #2 - 435c: 01000100 tsteq r0, r0, lsl #2 - 4360: d5010101 strle r0, [r1, #-257] - 4364: 16000242 strne r0, [r0], -r2, asr #4 - 4368: 81120202 tsthi r2, r2, lsl #4 - 436c: 0109014f tsteq r9, pc, asr #2 - 4370: 01040308 tsteq r4, r8, lsl #6 - 4374: 00cefd03 sbceq pc, lr, r3, lsl #26 - 4378: 08062a15 stmdaeq r6, {r0, r2, r4, r9, fp, sp} - 437c: 4d3fb736 ldcmi 7, cr11, [pc, #-216]! - 4380: 020d5f2d andeq r5, sp, #180 ; 0xb4 - 4384: 0c087714 stceq 7, cr7, [r8], {20} - 4388: 26110630 undefined - 438c: 1422030d strtne r0, [r2], #-781 - 4390: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 4394: 711b0f06 tstvc fp, r6, lsl #30 - 4398: b12f040d teqlt pc, sp, lsl #8 - 439c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 43a0: 06730a09 ldrbteq r0, [r3], -r9, lsl #20 - 43a4: a4200e66 strtge r0, [r0], #-3686 - 43a8: 02000000 andeq r0, r0, #0 ; 0x0 - 43ac: 40180c00 andsmi r0, r8, r0, lsl #24 - 43b0: 00000400 andeq r0, r0, r0, lsl #8 - 43b4: b6570200 ldrblt r0, [r7], -r0, lsl #4 - 43b8: 05010000 streq r0, [r1] - 43bc: 0100006e tsteq r0, lr, rrx - 43c0: 0000701d andeq r7, r0, sp, lsl r0 - 43c4: 006ec501 rsbeq ip, lr, r1, lsl #10 - 43c8: 00000000 andeq r0, r0, r0 - 43cc: 00000100 andeq r0, r0, r0, lsl #2 - 43d0: 40184400 andsmi r4, r8, r0, lsl #8 - 43d4: 00015100 andeq r5, r1, r0, lsl #2 - 43d8: 000119d5 ldrdeq r1, [r1], -r5 - 43dc: 05000201 streq r0, [r0, #-513] - 43e0: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ - 43e4: 0100000e tsteq r0, lr - 43e8: 01010101 tsteq r1, r1, lsl #2 - 43ec: 01000100 tsteq r0, r0, lsl #2 - 43f0: d5010101 strle r0, [r1, #-257] - 43f4: 1c00025a sfmne f0, 4, [r0], {90} - 43f8: 92130202 andsls r0, r3, #536870912 ; 0x20000000 - 43fc: 010a014f tsteq sl, pc, asr #2 - 4400: 01040308 tsteq r4, r8, lsl #6 - 4404: 00cf8e03 sbceq r8, pc, r3, lsl #28 - 4408: 30062a15 andcc r2, r6, r5, lsl sl - 440c: 020d1b29 andeq r1, sp, #41984 ; 0xa400 - 4410: 4d660305 stclmi 3, cr0, [r6, #-20]! - 4414: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 4418: 98030600 stmdals r3, {r9, sl} - 441c: 2200034f andcs r0, r0, #1006632961 ; 0x3c000001 - 4420: a2177d05 andsge r7, r7, #320 ; 0x140 - 4424: 0305030d movweq r0, #21261 ; 0x530d - 4428: 040a134b streq r1, [sl], #-843 - 442c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 4430: 02067f05 andeq r7, r6, #20 ; 0x14 - 4434: 040d8536 streq r8, [sp], #-1334 - 4438: 0c08c273 sfmeq f4, 1, [r8], {115} - 443c: b4060630 strlt r0, [r6], #-1584 - 4440: 0950297f ldmdbeq r0, {r0, r1, r2, r3, r4, r5, r6, r8, fp, sp}^ - 4444: 01040500 tsteq r4, r0, lsl #10 - 4448: 082c0100 stmdaeq ip!, {r8} - 444c: 73cc140b bicvc r1, ip, #184549376 ; 0xb000000 - 4450: 02000000 andeq r0, r0, #0 ; 0x0 - 4454: 40185400 andsmi r5, r8, r0, lsl #8 - 4458: 00000200 andeq r0, r0, r0, lsl #4 - 445c: b9470200 stmdblt r7, {r9}^ - 4460: 69010000 stmdbvs r1, {} - 4464: 0000006d andeq r0, r0, sp, rrx - 4468: 01000000 tsteq r0, r0 - 446c: 4c000000 stcmi 0, cr0, [r0], {0} - 4470: 5100400e tstpl r0, lr - 4474: 19d50001 ldmibne r5, {r0}^ - 4478: 02010001 andeq r0, r1, #1 ; 0x1 - 447c: 11780500 cmnne r8, r0, lsl #10 - 4480: 000e296c andeq r2, lr, ip, ror #18 - 4484: 01010100 tsteq r1, r0, lsl #2 - 4488: 01000101 tsteq r0, r1, lsl #2 - 448c: 01010100 tsteq r1, r0, lsl #2 - 4490: 0233d501 eorseq sp, r3, #4194304 ; 0x400000 - 4494: 02021000 andeq r1, r2, #0 ; 0x0 - 4498: 014fa414 cmpeq pc, r4, lsl r4 - 449c: 03080103 movweq r0, #33027 ; 0x8103 - 44a0: a0030104 andge r0, r3, r4, lsl #2 - 44a4: 2a1500cf bcs 5447e8 - 44a8: 2900cb06 stmdbcs r0, {r1, r2, r8, r9, fp, lr, pc} - 44ac: 81020d19 tsthi r2, r9, lsl sp - 44b0: 300c085f andcc r0, ip, pc, asr r8 - 44b4: 7fb60606 svcvc 0x00b60606 - 44b8: 0009bc1b andeq fp, r9, fp, lsl ip - 44bc: 00010405 andeq r0, r1, r5, lsl #8 - 44c0: 0b082d01 bleq 20f8cc - 44c4: 0124cc14 teqeq r4, r4, lsl ip - 44c8: 00020000 andeq r0, r2, r0 - 44cc: 00401874 subeq r1, r0, r4, ror r8 - 44d0: 00000006 andeq r0, r0, r6 - 44d4: 00ba5f02 adcseq r5, sl, r2, lsl #30 - 44d8: 3a310100 bcc c448e0 - 44dc: 57010040 strpl r0, [r1, -r0, asr #32] - 44e0: 0200401b andeq r4, r0, #27 ; 0x1b - 44e4: 0000b16f andeq fp, r0, pc, ror #2 - 44e8: 403a8f01 eorsmi r8, sl, r1, lsl #30 - 44ec: 30790100 rsbscc r0, r9, r0, lsl #2 - 44f0: 00000000 andeq r0, r0, r0 - 44f4: 00010000 andeq r0, r1, r0 - 44f8: 18440000 stmdane r4, {}^ - 44fc: 01510040 cmpeq r1, r0, asr #32 - 4500: 0119d500 tsteq r9, r0, lsl #10 - 4504: 00020100 andeq r0, r2, r0, lsl #2 - 4508: 6c117805 ldcvs 8, cr7, [r1], {5} - 450c: 00000e29 andeq r0, r0, r9, lsr #28 - 4510: 01010101 tsteq r1, r1, lsl #2 - 4514: 00010001 andeq r0, r1, r1 - 4518: 01010101 tsteq r1, r1, lsl #2 - 451c: 0201cfd5 andeq ip, r1, #852 ; 0x354 - 4520: 02026200 andeq r6, r2, #0 ; 0x0 - 4524: 014fa915 cmpeq pc, r5, lsl r9 - 4528: 0308014d movweq r0, #33101 ; 0x814d - 452c: a5030104 strge r0, [r3, #-260] - 4530: 2a1500cf bcs 544874 - 4534: 0906040a stmdbeq r6, {r1, r3, sl} - 4538: b8341b29 ldmdalt r4!, {r0, r3, r5, r8, r9, fp, ip} - 453c: 0a09523a beq 258e2c - 4540: 0a092e26 beq 24fde0 - 4544: 30010312 andcc r0, r1, r2, lsl r3 - 4548: 3ab834aa bcc fee117f8 - 454c: 0a063152 beq 190a9c - 4550: 09b42d02 ldmibeq r4!, {r1, r8, sl, fp, sp} - 4554: 1230220a eorsne r2, r0, #-1610612736 ; 0xa0000000 - 4558: 0806fb3e stmdaeq r6, {r1, r2, r3, r4, r5, r8, r9, fp, ip, sp, lr, pc} - 455c: 020dab36 andeq sl, sp, #55296 ; 0xd800 - 4560: 0c081422 cfstrseq mvf1, [r8], {34} - 4564: 75060630 strvc r0, [r6, #-1584] - 4568: 5f2e290e svcpl 0x002e290e - 456c: 7714030d ldrvc r0, [r4, -sp, lsl #6] - 4570: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 4574: 040d721a streq r7, [sp], #-538 - 4578: 0c081422 cfstrseq mvf1, [r8], {34} - 457c: 0a090630 beq 245e44 - 4580: 1b110616 blne 445de0 - 4584: 060b0a69 streq r0, [fp], -r9, ror #20 - 4588: 35be1b63 ldrcc r1, [lr, #2915]! - 458c: 31523a62 cmpcc r2, r2, ror #20 - 4590: 2c110a06 ldccs 10, cr0, [r1], {6} - 4594: 171131b5 undefined - 4598: 0d573523 cfldr64eq mvdx3, [r7, #-140] - 459c: 08322205 ldmdaeq r2!, {r0, r2, r9, sp} - 45a0: 0906300c stmdbeq r6, {r2, r3, ip, sp} - 45a4: 7e060b0a fmacdvc d0, d6, d10 - 45a8: 040a0b0e streq r0, [sl], #-2830 - 45ac: e73e0203 ldr r0, [lr, -r3, lsl #4]! - 45b0: 523a6433 eorspl r6, sl, #855638016 ; 0x33000000 - 45b4: 32050a09 andcc r0, r5, #36864 ; 0x9000 - 45b8: 03090aaf movweq r0, #39599 ; 0x9aaf - 45bc: 34ae2c01 strtcc r2, [lr], #3073 - 45c0: 33523a0e cmpcc r2, #57344 ; 0xe000 - 45c4: 06fc3aae ldrbteq r3, [ip], lr, lsr #21 - 45c8: 0dab3614 stceq 6, cr3, [fp, #80]! - 45cc: 084e3d06 stmdaeq lr, {r1, r2, r8, sl, fp, ip, sp}^ - 45d0: 0906300c stmdbeq r6, {r2, r3, ip, sp} - 45d4: 01040500 tsteq r4, r0, lsl #10 - 45d8: 082e0100 stmdaeq lr!, {r8} - 45dc: 0acc140b beq ff309610 - 45e0: 1b6d067f blne 1b45fe4 - 45e4: 09142ebf ldmdbeq r4, {r0, r1, r2, r3, r4, r5, r7, r9, sl, fp, sp} - 45e8: 76067d0a strvc r7, [r6], -sl, lsl #26 - 45ec: 006ded36 rsbeq lr, sp, r6, lsr sp - 45f0: 00010000 andeq r0, r1, r0 - 45f4: 00401938 subeq r1, r0, r8, lsr r9 - 45f8: 00000002 andeq r0, r0, r2 - 45fc: 00bbd702 adcseq sp, fp, r2, lsl #14 - 4600: 32fd0100 rscscc r0, sp, #0 ; 0x0 - 4604: 00000000 andeq r0, r0, r0 - 4608: 01510000 cmpeq r1, r0 - 460c: 0119d500 tsteq r9, r0, lsl #10 - 4610: 00020100 andeq r0, r2, r0, lsl #2 - 4614: 6c117805 ldcvs 8, cr7, [r1], {5} - 4618: 00000e29 andeq r0, r0, r9, lsr #28 - 461c: 01010101 tsteq r1, r1, lsl #2 - 4620: 00010001 andeq r0, r1, r1 - 4624: 01010101 tsteq r1, r1, lsl #2 - 4628: 000235d5 ldrdeq r3, [r2], -r5 - 462c: 16020215 undefined - 4630: 08014ffe stmdaeq r1, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 4634: 0403080b streq r0, [r3], #-2059 - 4638: cffa0301 svcgt 0x00fa0301 - 463c: 092a1500 stmdbeq sl!, {r8, sl, ip} - 4640: bc31020a lfmlt f0, 4, [r1], #-40 - 4644: 7e03bd30 mcrvc 13, 0, fp, cr3, cr0, {1} - 4648: 3d443106 stfcce f3, [r4, #-24] - 464c: 7f06020d svcvc 0x0006020d - 4650: 7d0a8029 stcvc 0, cr8, [sl, #-164] - 4654: 06300c08 ldrteq r0, [r0], -r8, lsl #24 - 4658: 06790a09 ldrbteq r0, [r9], -r9, lsl #20 - 465c: Address 0x000000000000465c is out of bounds. - - -Disassembly of section .comment: - -00000000 <.comment>: - 0: 20524149 subscs r4, r2, r9, asr #2 - 4: 20464c45 subcs r4, r6, r5, asr #24 - 8: 6b6e694c blvs 1b9a540 - c: 56207265 strtpl r7, [r0], -r5, ror #4 - 10: 30332e35 eorscc r2, r3, r5, lsr lr - 14: 352e322e strcc r3, [lr, #-558]! - 18: 35393231 ldrcc r3, [r9, #-561]! - 1c: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 20: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 24: 4d524120 ldfmie f4, [r2, #-128] - 28: 3a432200 bcc 10c8830 - 2c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 30: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 34: 61207374 teqvs r0, r4, ror r3 - 38: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 3c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 40: 5c73676e ldclpl 7, cr6, [r3], #-440 - 44: 766c616d strbtvc r6, [ip], -sp, ror #2 - 48: 5c617269 sfmpl f7, 2, [r1], #-420 - 4c: 4420794d strtmi r7, [r0], #-2381 - 50: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 54: 73746e65 cmnvc r4, #1616 ; 0x650 - 58: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 5c: 746e6f63 strbtvc r6, [lr], #-3939 - 60: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 64: 74616557 strbtvc r6, [r1], #-1367 - 68: 20726568 rsbscs r6, r2, r8, ror #10 - 6c: 74617453 strbtvc r7, [r1], #-1107 - 70: 206e6f69 rsbcs r6, lr, r9, ror #30 - 74: 746e6f43 strbtvc r6, [lr], #-3907 - 78: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 7c: 445c7265 ldrbmi r7, [ip], #-613 - 80: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 84: 6a624f5c bvs 1893dfc - 88: 6c65445c cfstrdvs mvd4, [r5], #-368 - 8c: 6f2e7961 svcvs 0x002e7961 - 90: 43222022 teqmi r2, #34 ; 0x22 - 94: 6f445c3a svcvs 0x00445c3a - 98: 656d7563 strbvs r7, [sp, #-1379]! - 9c: 2073746e rsbscs r7, r3, lr, ror #8 - a0: 20646e61 rsbcs r6, r4, r1, ror #28 - a4: 74746553 ldrbtvc r6, [r4], #-1363 - a8: 73676e69 cmnvc r7, #1680 ; 0x690 - ac: 6c616d5c stclvs 13, cr6, [r1], #-368 - b0: 61726976 cmnvs r2, r6, ror r9 - b4: 20794d5c rsbscs r4, r9, ip, asr sp - b8: 75636f44 strbvc r6, [r3, #-3908]! - bc: 746e656d strbtvc r6, [lr], #-1389 - c0: 73775c73 cmnvc r7, #29440 ; 0x7300 - c4: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - c8: 6c6f7274 sfmvs f7, 2, [pc], #-464 - cc: 6165575c cmnvs r5, ip, asr r7 - d0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - d4: 61745320 cmnvs r4, r0, lsr #6 - d8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - dc: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - e0: 6c6f7274 sfmvs f7, 2, [pc], #-464 - e4: 5c72656c cfldr64pl mvdx6, [r2], #-432 - e8: 75626544 strbvc r6, [r2, #-1348]! - ec: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - f0: 69445c6a stmdbvs r4, {r1, r3, r5, r6, sl, fp, ip, lr}^ - f4: 616c7073 smcvs 50947 - f8: 226f2e79 rsbcs r2, pc, #1936 ; 0x790 - fc: 3a432220 bcc 10c8984 - 100: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 104: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 108: 61207374 teqvs r0, r4, ror r3 - 10c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 110: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 114: 5c73676e ldclpl 7, cr6, [r3], #-440 - 118: 766c616d strbtvc r6, [ip], -sp, ror #2 - 11c: 5c617269 sfmpl f7, 2, [r1], #-420 - 120: 4420794d strtmi r7, [r0], #-2381 - 124: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 128: 73746e65 cmnvc r4, #1616 ; 0x650 - 12c: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 130: 746e6f63 strbtvc r6, [lr], #-3939 - 134: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 138: 74616557 strbtvc r6, [r1], #-1367 - 13c: 20726568 rsbscs r6, r2, r8, ror #10 - 140: 74617453 strbtvc r7, [r1], #-1107 - 144: 206e6f69 rsbcs r6, lr, r9, ror #30 - 148: 746e6f43 strbtvc r6, [lr], #-3907 - 14c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 150: 445c7265 ldrbmi r7, [ip], #-613 - 154: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 158: 6a624f5c bvs 1893ed0 - 15c: 444c485c strbmi r4, [ip], #-2140 - 160: 6f2e7672 svcvs 0x002e7672 - 164: 43222022 teqmi r2, #34 ; 0x22 - 168: 6f445c3a svcvs 0x00445c3a - 16c: 656d7563 strbvs r7, [sp, #-1379]! - 170: 2073746e rsbscs r7, r3, lr, ror #8 - 174: 20646e61 rsbcs r6, r4, r1, ror #28 - 178: 74746553 ldrbtvc r6, [r4], #-1363 - 17c: 73676e69 cmnvc r7, #1680 ; 0x690 - 180: 6c616d5c stclvs 13, cr6, [r1], #-368 - 184: 61726976 cmnvs r2, r6, ror r9 - 188: 20794d5c rsbscs r4, r9, ip, asr sp - 18c: 75636f44 strbvc r6, [r3, #-3908]! - 190: 746e656d strbtvc r6, [lr], #-1389 - 194: 73775c73 cmnvc r7, #29440 ; 0x7300 - 198: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 19c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1a0: 6165575c cmnvs r5, ip, asr r7 - 1a4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 1a8: 61745320 cmnvs r4, r0, lsr #6 - 1ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1b0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 1b4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1b8: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 1bc: 75626544 strbvc r6, [r2, #-1348]! - 1c0: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 1c4: 6e495c6a cdpvs 12, 4, cr5, cr9, cr10, {3} - 1c8: 492d7469 pushmi {r0, r3, r5, r6, sl, ip, sp, lr} - 1cc: 6f2e5241 svcvs 0x002e5241 - 1d0: 43222022 teqmi r2, #34 ; 0x22 - 1d4: 6f445c3a svcvs 0x00445c3a - 1d8: 656d7563 strbvs r7, [sp, #-1379]! - 1dc: 2073746e rsbscs r7, r3, lr, ror #8 - 1e0: 20646e61 rsbcs r6, r4, r1, ror #28 - 1e4: 74746553 ldrbtvc r6, [r4], #-1363 - 1e8: 73676e69 cmnvc r7, #1680 ; 0x690 - 1ec: 6c616d5c stclvs 13, cr6, [r1], #-368 - 1f0: 61726976 cmnvs r2, r6, ror r9 - 1f4: 20794d5c rsbscs r4, r9, ip, asr sp - 1f8: 75636f44 strbvc r6, [r3, #-3908]! - 1fc: 746e656d strbtvc r6, [lr], #-1389 - 200: 73775c73 cmnvc r7, #29440 ; 0x7300 - 204: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 208: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 20c: 6165575c cmnvs r5, ip, asr r7 - 210: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 214: 61745320 cmnvs r4, r0, lsr #6 - 218: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 21c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 220: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 224: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 228: 75626544 strbvc r6, [r2, #-1348]! - 22c: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 230: 654b5c6a strbvs r5, [fp, #-3178] - 234: 616f6279 smcvs 63017 - 238: 6f2e6472 svcvs 0x002e6472 - 23c: 43222022 teqmi r2, #34 ; 0x22 - 240: 6f445c3a svcvs 0x00445c3a - 244: 656d7563 strbvs r7, [sp, #-1379]! - 248: 2073746e rsbscs r7, r3, lr, ror #8 - 24c: 20646e61 rsbcs r6, r4, r1, ror #28 - 250: 74746553 ldrbtvc r6, [r4], #-1363 - 254: 73676e69 cmnvc r7, #1680 ; 0x690 - 258: 6c616d5c stclvs 13, cr6, [r1], #-368 - 25c: 61726976 cmnvs r2, r6, ror r9 - 260: 20794d5c rsbscs r4, r9, ip, asr sp - 264: 75636f44 strbvc r6, [r3, #-3908]! - 268: 746e656d strbtvc r6, [lr], #-1389 - 26c: 73775c73 cmnvc r7, #29440 ; 0x7300 - 270: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 274: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 278: 6165575c cmnvs r5, ip, asr r7 - 27c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 280: 61745320 cmnvs r4, r0, lsr #6 - 284: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 288: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 28c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 290: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 294: 75626544 strbvc r6, [r2, #-1348]! - 298: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 29c: 654c5c6a strbvs r5, [ip, #-3178] - 2a0: 6f2e7364 svcvs 0x002e7364 - 2a4: 43222022 teqmi r2, #34 ; 0x22 - 2a8: 6f445c3a svcvs 0x00445c3a - 2ac: 656d7563 strbvs r7, [sp, #-1379]! - 2b0: 2073746e rsbscs r7, r3, lr, ror #8 - 2b4: 20646e61 rsbcs r6, r4, r1, ror #28 - 2b8: 74746553 ldrbtvc r6, [r4], #-1363 - 2bc: 73676e69 cmnvc r7, #1680 ; 0x690 - 2c0: 6c616d5c stclvs 13, cr6, [r1], #-368 - 2c4: 61726976 cmnvs r2, r6, ror r9 - 2c8: 20794d5c rsbscs r4, r9, ip, asr sp - 2cc: 75636f44 strbvc r6, [r3, #-3908]! - 2d0: 746e656d strbtvc r6, [lr], #-1389 - 2d4: 73775c73 cmnvc r7, #29440 ; 0x7300 - 2d8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 2dc: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2e0: 6165575c cmnvs r5, ip, asr r7 - 2e4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 2e8: 61745320 cmnvs r4, r0, lsr #6 - 2ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2f0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 2f4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2f8: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 2fc: 75626544 strbvc r6, [r2, #-1348]! - 300: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 304: 614d5c6a cmpvs sp, sl, ror #24 - 308: 6e496163 dvfvsez f6, f1, f3 - 30c: 72726574 rsbsvc r6, r2, #486539264 ; 0x1d000000 - 310: 2e747075 mrccs 0, 3, r7, cr4, cr5, {3} - 314: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 - 318: 445c3a43 ldrbmi r3, [ip], #-2627 - 31c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 320: 73746e65 cmnvc r4, #1616 ; 0x650 - 324: 646e6120 strbtvs r6, [lr], #-288 - 328: 74655320 strbtvc r5, [r5], #-800 - 32c: 676e6974 undefined - 330: 616d5c73 smcvs 54723 - 334: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 338: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 33c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 340: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 344: 775c7374 undefined - 348: 6f632d73 svcvs 0x00632d73 - 34c: 6f72746e svcvs 0x0072746e - 350: 65575c6c ldrbvs r5, [r7, #-3180] - 354: 65687461 strbvs r7, [r8, #-1121]! - 358: 74532072 ldrbvc r2, [r3], #-114 - 35c: 6f697461 svcvs 0x00697461 - 360: 6f43206e svcvs 0x0043206e - 364: 6f72746e svcvs 0x0072746e - 368: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 36c: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 370: 4f5c6775 svcmi 0x005c6775 - 374: 505c6a62 subspl r6, ip, r2, ror #20 - 378: 6674616c ldrbtvs r6, [r4], -ip, ror #2 - 37c: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ - 380: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} - 384: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 - 388: 445c3a43 ldrbmi r3, [ip], #-2627 - 38c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 390: 73746e65 cmnvc r4, #1616 ; 0x650 - 394: 646e6120 strbtvs r6, [lr], #-288 - 398: 74655320 strbtvc r5, [r5], #-800 - 39c: 676e6974 undefined - 3a0: 616d5c73 smcvs 54723 - 3a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3b4: 775c7374 undefined - 3b8: 6f632d73 svcvs 0x00632d73 - 3bc: 6f72746e svcvs 0x0072746e - 3c0: 65575c6c ldrbvs r5, [r7, #-3180] - 3c4: 65687461 strbvs r7, [r8, #-1121]! - 3c8: 74532072 ldrbvc r2, [r3], #-114 - 3cc: 6f697461 svcvs 0x00697461 - 3d0: 6f43206e svcvs 0x0043206e - 3d4: 6f72746e svcvs 0x0072746e - 3d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3dc: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 3e0: 4f5c6775 svcmi 0x005c6775 - 3e4: 525c6a62 subspl r6, ip, #401408 ; 0x62000 - 3e8: 6f696461 svcvs 0x00696461 - 3ec: 616e614d cmnvs lr, sp, asr #2 - 3f0: 656d6567 strbvs r6, [sp, #-1383]! - 3f4: 6f2e746e svcvs 0x002e746e - 3f8: 43222022 teqmi r2, #34 ; 0x22 - 3fc: 6f445c3a svcvs 0x00445c3a - 400: 656d7563 strbvs r7, [sp, #-1379]! - 404: 2073746e rsbscs r7, r3, lr, ror #8 - 408: 20646e61 rsbcs r6, r4, r1, ror #28 - 40c: 74746553 ldrbtvc r6, [r4], #-1363 - 410: 73676e69 cmnvc r7, #1680 ; 0x690 - 414: 6c616d5c stclvs 13, cr6, [r1], #-368 - 418: 61726976 cmnvs r2, r6, ror r9 - 41c: 20794d5c rsbscs r4, r9, ip, asr sp - 420: 75636f44 strbvc r6, [r3, #-3908]! - 424: 746e656d strbtvc r6, [lr], #-1389 - 428: 73775c73 cmnvc r7, #29440 ; 0x7300 - 42c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 430: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 434: 6165575c cmnvs r5, ip, asr r7 - 438: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 43c: 61745320 cmnvs r4, r0, lsr #6 - 440: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 444: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 448: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 44c: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 450: 75626544 strbvc r6, [r2, #-1348]! - 454: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 458: 65535c6a ldrbvs r5, [r3, #-3178] - 45c: 69727563 ldmdbvs r2!, {r0, r1, r5, r6, r8, sl, ip, sp, lr}^ - 460: 6e4d7974 mcrvs 9, 2, r7, cr13, cr4, {3} - 464: 746e6d67 strbtvc r6, [lr], #-3431 - 468: 20226f2e eorcs r6, r2, lr, lsr #30 - 46c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 470: 75636f44 strbvc r6, [r3, #-3908]! - 474: 746e656d strbtvc r6, [lr], #-1389 - 478: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 47c: 65532064 ldrbvs r2, [r3, #-100] - 480: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 484: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 488: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 48c: 4d5c6172 ldfmie f6, [ip, #-456] - 490: 6f442079 svcvs 0x00442079 - 494: 656d7563 strbvs r7, [sp, #-1379]! - 498: 5c73746e cfldrdpl mvd7, [r3], #-440 - 49c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 4a0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4a4: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 4a8: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 4ac: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 4b0: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 4b4: 43206e6f teqmi r0, #1776 ; 0x6f0 - 4b8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4bc: 656c6c6f strbvs r6, [ip, #-3183]! - 4c0: 65445c72 strbvs r5, [r4, #-3186] - 4c4: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 4c8: 5c6a624f sfmpl f6, 2, [sl], #-316 - 4cc: 6e756f53 mrcvs 15, 3, r6, cr5, cr3, {2} - 4d0: 226f2e64 rsbcs r2, pc, #1600 ; 0x640 - 4d4: 3a432220 bcc 10c8d5c - 4d8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 4dc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4e0: 61207374 teqvs r0, r4, ror r3 - 4e4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 4e8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 4ec: 5c73676e ldclpl 7, cr6, [r3], #-440 - 4f0: 766c616d strbtvc r6, [ip], -sp, ror #2 - 4f4: 5c617269 sfmpl f7, 2, [r1], #-420 - 4f8: 4420794d strtmi r7, [r0], #-2381 - 4fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 500: 73746e65 cmnvc r4, #1616 ; 0x650 - 504: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 508: 746e6f63 strbtvc r6, [lr], #-3939 - 50c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 510: 74616557 strbtvc r6, [r1], #-1367 - 514: 20726568 rsbscs r6, r2, r8, ror #10 - 518: 74617453 strbtvc r7, [r1], #-1107 - 51c: 206e6f69 rsbcs r6, lr, r9, ror #30 - 520: 746e6f43 strbtvc r6, [lr], #-3907 - 524: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 528: 445c7265 ldrbmi r7, [ip], #-613 - 52c: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 530: 6a624f5c bvs 18942a8 - 534: 6172545c cmnvs r2, ip, asr r4 - 538: 6563736e strbvs r7, [r3, #-878]! - 53c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 540: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 544: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} - 548: 746e6d67 strbtvc r6, [lr], #-3431 - 54c: 20226f2e eorcs r6, r2, lr, lsr #30 - 550: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 554: 75636f44 strbvc r6, [r3, #-3908]! - 558: 746e656d strbtvc r6, [lr], #-1389 - 55c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 560: 65532064 ldrbvs r2, [r3, #-100] - 564: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 568: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 56c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 570: 4d5c6172 ldfmie f6, [ip, #-456] - 574: 6f442079 svcvs 0x00442079 - 578: 656d7563 strbvs r7, [sp, #-1379]! - 57c: 5c73746e cfldrdpl mvd7, [r3], #-440 - 580: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 584: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 588: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 58c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 590: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 594: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 598: 43206e6f teqmi r0, #1776 ; 0x6f0 - 59c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 5a0: 656c6c6f strbvs r6, [ip, #-3183]! - 5a4: 65445c72 strbvs r5, [r4, #-3186] - 5a8: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 5ac: 5c6a624f sfmpl f6, 2, [sl], #-316 - 5b0: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} - 5b4: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ - 5b8: 50726576 rsbspl r6, r2, r6, ror r5 - 5bc: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 - 5c0: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 5c4: 6f2e746e svcvs 0x002e746e - 5c8: 43222022 teqmi r2, #34 ; 0x22 - 5cc: 6f445c3a svcvs 0x00445c3a - 5d0: 656d7563 strbvs r7, [sp, #-1379]! - 5d4: 2073746e rsbscs r7, r3, lr, ror #8 - 5d8: 20646e61 rsbcs r6, r4, r1, ror #28 - 5dc: 74746553 ldrbtvc r6, [r4], #-1363 - 5e0: 73676e69 cmnvc r7, #1680 ; 0x690 - 5e4: 6c616d5c stclvs 13, cr6, [r1], #-368 - 5e8: 61726976 cmnvs r2, r6, ror r9 - 5ec: 20794d5c rsbscs r4, r9, ip, asr sp - 5f0: 75636f44 strbvc r6, [r3, #-3908]! - 5f4: 746e656d strbtvc r6, [lr], #-1389 - 5f8: 73775c73 cmnvc r7, #29440 ; 0x7300 - 5fc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 600: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 604: 6165575c cmnvs r5, ip, asr r7 - 608: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 60c: 61745320 cmnvs r4, r0, lsr #6 - 610: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 614: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 618: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 61c: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 620: 75626544 strbvc r6, [r2, #-1348]! - 624: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 628: 61555c6a cmpvs r5, sl, ror #24 - 62c: 74557472 ldrbvc r7, [r5], #-1138 - 630: 6f2e6c69 svcvs 0x002e6c69 - 634: 43222022 teqmi r2, #34 ; 0x22 - 638: 6f445c3a svcvs 0x00445c3a - 63c: 656d7563 strbvs r7, [sp, #-1379]! - 640: 2073746e rsbscs r7, r3, lr, ror #8 - 644: 20646e61 rsbcs r6, r4, r1, ror #28 - 648: 74746553 ldrbtvc r6, [r4], #-1363 - 64c: 73676e69 cmnvc r7, #1680 ; 0x690 - 650: 6c616d5c stclvs 13, cr6, [r1], #-368 - 654: 61726976 cmnvs r2, r6, ror r9 - 658: 20794d5c rsbscs r4, r9, ip, asr sp - 65c: 75636f44 strbvc r6, [r3, #-3908]! - 660: 746e656d strbtvc r6, [lr], #-1389 - 664: 73775c73 cmnvc r7, #29440 ; 0x7300 - 668: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 66c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 670: 6165575c cmnvs r5, ip, asr r7 - 674: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 678: 61745320 cmnvs r4, r0, lsr #6 - 67c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 680: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 684: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 688: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 68c: 75626544 strbvc r6, [r2, #-1348]! - 690: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 694: 69575c6a ldmdbvs r7, {r1, r3, r5, r6, sl, fp, ip, lr}^ - 698: 656c6572 strbvs r6, [ip, #-1394]! - 69c: 694c7373 stmdbvs ip, {r0, r1, r4, r5, r6, r8, r9, ip, sp, lr}^ - 6a0: 6e4d6b6e fnmacdvs d22, d13, d30 - 6a4: 2e746d67 cdpcs 13, 7, cr6, cr4, cr7, {3} - 6a8: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 - 6ac: 445c3a43 ldrbmi r3, [ip], #-2627 - 6b0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 6b4: 73746e65 cmnvc r4, #1616 ; 0x650 - 6b8: 646e6120 strbtvs r6, [lr], #-288 - 6bc: 74655320 strbtvc r5, [r5], #-800 - 6c0: 676e6974 undefined - 6c4: 616d5c73 smcvs 54723 - 6c8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 6cc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 6d0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 6d4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 6d8: 775c7374 undefined - 6dc: 6f632d73 svcvs 0x00632d73 - 6e0: 6f72746e svcvs 0x0072746e - 6e4: 65575c6c ldrbvs r5, [r7, #-3180] - 6e8: 65687461 strbvs r7, [r8, #-1121]! - 6ec: 74532072 ldrbvc r2, [r3], #-114 - 6f0: 6f697461 svcvs 0x00697461 - 6f4: 6f43206e svcvs 0x0043206e - 6f8: 6f72746e svcvs 0x0072746e - 6fc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 700: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 704: 4f5c6775 svcmi 0x005c6775 - 708: 6d5c6a62 fldsvs s13, [ip, #-392] - 70c: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} - 710: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 - 714: 445c3a43 ldrbmi r3, [ip], #-2627 - 718: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 71c: 73746e65 cmnvc r4, #1616 ; 0x650 - 720: 646e6120 strbtvs r6, [lr], #-288 - 724: 74655320 strbtvc r5, [r5], #-800 - 728: 676e6974 undefined - 72c: 616d5c73 smcvs 54723 - 730: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 734: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 738: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 73c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 740: 775c7374 undefined - 744: 6f632d73 svcvs 0x00632d73 - 748: 6f72746e svcvs 0x0072746e - 74c: 65575c6c ldrbvs r5, [r7, #-3180] - 750: 65687461 strbvs r7, [r8, #-1121]! - 754: 74532072 ldrbvc r2, [r3], #-114 - 758: 6f697461 svcvs 0x00697461 - 75c: 6f43206e svcvs 0x0043206e - 760: 6f72746e svcvs 0x0072746e - 764: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 768: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 76c: 4f5c6775 svcmi 0x005c6775 - 770: 775c6a62 ldrbvc r6, [ip, -r2, ror #20] - 774: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 778: 735f7265 cmpvc pc, #1342177286 ; 0x50000006 - 77c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 780: 635f6e6f cmpvs pc, #1776 ; 0x6f0 - 784: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 788: 656c6c6f strbvs r6, [ip, #-3183]! - 78c: 226f2e72 rsbcs r2, pc, #1824 ; 0x720 - 790: 3a432220 bcc 10c9018 - 794: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 798: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 79c: 61207374 teqvs r0, r4, ror r3 - 7a0: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 7a4: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 7a8: 5c73676e ldclpl 7, cr6, [r3], #-440 - 7ac: 766c616d strbtvc r6, [ip], -sp, ror #2 - 7b0: 5c617269 sfmpl f7, 2, [r1], #-420 - 7b4: 4420794d strtmi r7, [r0], #-2381 - 7b8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 7bc: 73746e65 cmnvc r4, #1616 ; 0x650 - 7c0: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 7c4: 746e6f63 strbtvc r6, [lr], #-3939 - 7c8: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 7cc: 74616557 strbtvc r6, [r1], #-1367 - 7d0: 20726568 rsbscs r6, r2, r8, ror #10 - 7d4: 74617453 strbtvc r7, [r1], #-1107 - 7d8: 206e6f69 rsbcs r6, lr, r9, ror #30 - 7dc: 746e6f43 strbtvc r6, [lr], #-3907 - 7e0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 7e4: 505c7265 subspl r7, ip, r5, ror #4 - 7e8: 4c5c4d4c mrrcmi 13, 4, r4, ip, cr12 - 7ec: 4c5c6269 lfmmi f6, 2, [ip], {105} - 7f0: 612e434c teqvs lr, ip, asr #6 - 7f4: 43222022 teqmi r2, #34 ; 0x22 - 7f8: 6f445c3a svcvs 0x00445c3a - 7fc: 656d7563 strbvs r7, [sp, #-1379]! - 800: 2073746e rsbscs r7, r3, lr, ror #8 - 804: 20646e61 rsbcs r6, r4, r1, ror #28 - 808: 74746553 ldrbtvc r6, [r4], #-1363 - 80c: 73676e69 cmnvc r7, #1680 ; 0x690 - 810: 6c616d5c stclvs 13, cr6, [r1], #-368 - 814: 61726976 cmnvs r2, r6, ror r9 - 818: 20794d5c rsbscs r4, r9, ip, asr sp - 81c: 75636f44 strbvc r6, [r3, #-3908]! - 820: 746e656d strbtvc r6, [lr], #-1389 - 824: 73775c73 cmnvc r7, #29440 ; 0x7300 - 828: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 82c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 830: 6165575c cmnvs r5, ip, asr r7 - 834: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 838: 61745320 cmnvs r4, r0, lsr #6 - 83c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 840: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 844: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 848: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 84c: 43414d53 movtmi r4, #7507 ; 0x1d53 - 850: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 854: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 858: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 - 85c: 31434d5c cmpcc r3, ip, asr sp - 860: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} - 864: 2022612e eorcs r6, r2, lr, lsr #2 - 868: 65722d2d ldrbvs r2, [r2, #-3373]! - 86c: 65726964 ldrbvs r6, [r2, #-2404]! - 870: 5f207463 svcpl 0x00207463 - 874: 6e697250 mcrvs 2, 3, r7, cr9, cr0, {2} - 878: 5f3d6674 svcpl 0x003d6674 - 87c: 6e697250 mcrvs 2, 3, r7, cr9, cr0, {2} - 880: 69546674 ldmdbvs r4, {r2, r4, r5, r6, r9, sl, sp, lr}^ - 884: 2d20796e stccs 9, cr7, [r0, #-440]! - 888: 6465722d strbtvs r7, [r5], #-557 - 88c: 63657269 cmnvs r5, #-1879048186 ; 0x90000006 - 890: 535f2074 cmppl pc, #116 ; 0x74 - 894: 666e6163 strbtvs r6, [lr], -r3, ror #2 - 898: 63535f3d cmpvs r3, #244 ; 0xf4 - 89c: 53666e61 cmnpl r6, #1552 ; 0x610 - 8a0: 6c6c616d stfvse f6, [ip], #-436 - 8a4: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 8a8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 8ac: 75636f44 strbvc r6, [r3, #-3908]! - 8b0: 746e656d strbtvc r6, [lr], #-1389 - 8b4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 8b8: 65532064 ldrbvs r2, [r3, #-100] - 8bc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 8c0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 8c4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 8c8: 4d5c6172 ldfmie f6, [ip, #-456] - 8cc: 6f442079 svcvs 0x00442079 - 8d0: 656d7563 strbvs r7, [sp, #-1379]! - 8d4: 5c73746e cfldrdpl mvd7, [r3], #-440 - 8d8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 8dc: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 8e0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 8e4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 8e8: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 8ec: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 8f0: 43206e6f teqmi r0, #1776 ; 0x6f0 - 8f4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 8f8: 656c6c6f strbvs r6, [ip, #-3183]! - 8fc: 65445c72 strbvs r5, [r4, #-3186] - 900: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 904: 5c657845 stclpl 8, cr7, [r5], #-276 - 908: 74616557 strbtvc r6, [r1], #-1367 - 90c: 20726568 rsbscs r6, r2, r8, ror #10 - 910: 74617453 strbtvc r7, [r1], #-1107 - 914: 206e6f69 rsbcs r6, lr, r9, ror #30 - 918: 746e6f43 strbtvc r6, [lr], #-3907 - 91c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 920: 6f2e7265 svcvs 0x002e7265 - 924: 20227475 eorcs r7, r2, r5, ror r4 - 928: 616d2d2d cmnvs sp, sp, lsr #26 - 92c: 43222070 teqmi r2, #112 ; 0x70 - 930: 6f445c3a svcvs 0x00445c3a - 934: 656d7563 strbvs r7, [sp, #-1379]! - 938: 2073746e rsbscs r7, r3, lr, ror #8 - 93c: 20646e61 rsbcs r6, r4, r1, ror #28 - 940: 74746553 ldrbtvc r6, [r4], #-1363 - 944: 73676e69 cmnvc r7, #1680 ; 0x690 - 948: 6c616d5c stclvs 13, cr6, [r1], #-368 - 94c: 61726976 cmnvs r2, r6, ror r9 - 950: 20794d5c rsbscs r4, r9, ip, asr sp - 954: 75636f44 strbvc r6, [r3, #-3908]! - 958: 746e656d strbtvc r6, [lr], #-1389 - 95c: 73775c73 cmnvc r7, #29440 ; 0x7300 - 960: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 964: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 968: 6165575c cmnvs r5, ip, asr r7 - 96c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 970: 61745320 cmnvs r4, r0, lsr #6 - 974: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 978: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 97c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 980: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 984: 75626544 strbvc r6, [r2, #-1348]! - 988: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ - 98c: 575c7473 undefined - 990: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 994: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 998: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 99c: 43206e6f teqmi r0, #1776 ; 0x6f0 - 9a0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 9a4: 656c6c6f strbvs r6, [ip, #-3183]! - 9a8: 616d2e72 smcvs 53986 - 9ac: 2d202270 sfmcs f2, 4, [r0, #-448]! - 9b0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 9b4: 20676966 rsbcs r6, r7, r6, ror #18 - 9b8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 9bc: 75636f44 strbvc r6, [r3, #-3908]! - 9c0: 746e656d strbtvc r6, [lr], #-1389 - 9c4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 9c8: 65532064 ldrbvs r2, [r3, #-100] - 9cc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 9d0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 9d4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 9d8: 4d5c6172 ldfmie f6, [ip, #-456] - 9dc: 6f442079 svcvs 0x00442079 - 9e0: 656d7563 strbvs r7, [sp, #-1379]! - 9e4: 5c73746e cfldrdpl mvd7, [r3], #-440 - 9e8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 9ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 9f0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 9f4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 9f8: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 9fc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - a00: 43206e6f teqmi r0, #1776 ; 0x6f0 - a04: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - a08: 656c6c6f strbvs r6, [ip, #-3183]! - a0c: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 - a10: 63495c4d movtvs r5, #40013 ; 0x9c4d - a14: 434d5c66 movtmi r5, #56422 ; 0xdc66 - a18: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 - a1c: 41522d78 cmpmi r2, r8, ror sp - a20: 4f522d4d svcmi 0x00522d4d - a24: 63692e4d cmnvs r9, #1232 ; 0x4d0 - a28: 2d202266 sfmcs f2, 4, [r0, #-408]! - a2c: 746e652d strbtvc r6, [lr], #-1325 - a30: 5f207972 svcpl 0x00207972 - a34: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - a38: 65765f74 ldrbvs r5, [r6, #-3956]! - a3c: 726f7463 rsbvc r7, pc, #1660944384 ; 0x63000000 - a40: 4900005f stmdbmi r0, {r0, r1, r2, r3, r4, r6} - a44: 7475706e ldrbtvc r7, [r5], #-110 - a48: 6d6f6320 stclvs 3, cr6, [pc, #-128]! - a4c: 746e656d strbtvc r6, [lr], #-1389 - a50: 00003a73 andeq r3, r0, r3, ror sl - a54: 445c3a43 ldrbmi r3, [ip], #-2627 - a58: 6d75636f ldclvs 3, cr6, [r5, #-444]! - a5c: 73746e65 cmnvc r4, #1616 ; 0x650 - a60: 646e6120 strbtvs r6, [lr], #-288 - a64: 74655320 strbtvc r5, [r5], #-800 - a68: 676e6974 undefined - a6c: 616d5c73 smcvs 54723 - a70: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - a74: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - a78: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - a7c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - a80: 775c7374 undefined - a84: 6f632d73 svcvs 0x00632d73 - a88: 6f72746e svcvs 0x0072746e - a8c: 65575c6c ldrbvs r5, [r7, #-3180] - a90: 65687461 strbvs r7, [r8, #-1121]! - a94: 74532072 ldrbvc r2, [r3], #-114 - a98: 6f697461 svcvs 0x00697461 - a9c: 6f43206e svcvs 0x0043206e - aa0: 6f72746e svcvs 0x0072746e - aa4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - aa8: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - aac: 4f5c6775 svcmi 0x005c6775 - ab0: 445c6a62 ldrbmi r6, [ip], #-2658 - ab4: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ - ab8: 003a6f2e eorseq r6, sl, lr, lsr #30 - abc: 52414900 subpl r4, r1, #0 ; 0x0 - ac0: 534e4120 movtpl r4, #57632 ; 0xe120 - ac4: 2f432049 svccs 0x00432049 - ac8: 202b2b43 eorcs r2, fp, r3, asr #22 - acc: 706d6f43 rsbvc r6, sp, r3, asr #30 - ad0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - ad4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - ad8: 322e3033 eorcc r3, lr, #51 ; 0x33 - adc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - ae0: 572f3539 undefined - ae4: 4b203233 blmi 80d3b8 - ae8: 534b4349 movtpl r4, #45897 ; 0xb349 - aec: 54524154 ldrbpl r4, [r2], #-340 - af0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - af4: 4d524120 ldfmie f4, [r2, #-128] - af8: 3a432200 bcc 10c9300 - afc: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - b00: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - b04: 61207374 teqvs r0, r4, ror r3 - b08: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - b0c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - b10: 5c73676e ldclpl 7, cr6, [r3], #-440 - b14: 766c616d strbtvc r6, [ip], -sp, ror #2 - b18: 5c617269 sfmpl f7, 2, [r1], #-420 - b1c: 4420794d strtmi r7, [r0], #-2381 - b20: 6d75636f ldclvs 3, cr6, [r5, #-444]! - b24: 73746e65 cmnvc r4, #1616 ; 0x650 - b28: 2d73775c ldclcs 7, cr7, [r3, #-368]! - b2c: 746e6f63 strbtvc r6, [lr], #-3939 - b30: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - b34: 74616557 strbtvc r6, [r1], #-1367 - b38: 20726568 rsbscs r6, r2, r8, ror #10 - b3c: 74617453 strbtvc r7, [r1], #-1107 - b40: 206e6f69 rsbcs r6, lr, r9, ror #30 - b44: 746e6f43 strbtvc r6, [lr], #-3907 - b48: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - b4c: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - b50: 5c43414d stfple f4, [r3], {77} - b54: 76697244 strbtvc r7, [r9], -r4, asr #4 - b58: 5c737265 lfmpl f7, 2, [r3], #-404 - b5c: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - b60: 445c6563 ldrbmi r6, [ip], #-1379 - b64: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ - b68: 2022632e eorcs r6, r2, lr, lsr #6 - b6c: 4620442d strtmi r4, [r0], -sp, lsr #8 - b70: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ - b74: 442d205a strtmi r2, [sp], #-90 - b78: 43455320 movtmi r5, #21280 ; 0x5320 - b7c: 54495255 strbpl r5, [r9], #-597 - b80: 4e455f59 mcrmi 15, 2, r5, cr5, cr9, {2} - b84: 454c4241 strbmi r4, [ip, #-577] - b88: 6c2d2044 stcvs 0, cr2, [sp], #-272 - b8c: 43222043 teqmi r2, #67 ; 0x43 - b90: 6f445c3a svcvs 0x00445c3a - b94: 656d7563 strbvs r7, [sp, #-1379]! - b98: 2073746e rsbscs r7, r3, lr, ror #8 - b9c: 20646e61 rsbcs r6, r4, r1, ror #28 - ba0: 74746553 ldrbtvc r6, [r4], #-1363 - ba4: 73676e69 cmnvc r7, #1680 ; 0x690 - ba8: 6c616d5c stclvs 13, cr6, [r1], #-368 - bac: 61726976 cmnvs r2, r6, ror r9 - bb0: 20794d5c rsbscs r4, r9, ip, asr sp - bb4: 75636f44 strbvc r6, [r3, #-3908]! - bb8: 746e656d strbtvc r6, [lr], #-1389 - bbc: 73775c73 cmnvc r7, #29440 ; 0x7300 - bc0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - bc4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - bc8: 6165575c cmnvs r5, ip, asr r7 - bcc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - bd0: 61745320 cmnvs r4, r0, lsr #6 - bd4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - bd8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - bdc: 6c6f7274 sfmvs f7, 2, [pc], #-464 - be0: 5c72656c cfldr64pl mvdx6, [r2], #-432 - be4: 75626544 strbvc r6, [r2, #-1348]! - be8: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ - bec: 225c7473 subscs r7, ip, #1929379840 ; 0x73000000 - bf0: 642d2d20 strtvs r2, [sp], #-3360 - bf4: 5f676169 svcpl 0x00676169 - bf8: 70707573 rsbsvc r7, r0, r3, ror r5 - bfc: 73736572 cmnvc r3, #478150656 ; 0x1c800000 - c00: 39655020 stmdbcc r5!, {r5, ip, lr}^ - c04: 502c3135 eorpl r3, ip, r5, lsr r1 - c08: 31313165 teqcc r1, r5, ror #2 - c0c: 3965502c stmdbcc r5!, {r2, r3, r5, ip, lr}^ - c10: 2d203034 stccs 0, cr3, [r0, #-208]! - c14: 4322206f teqmi r2, #111 ; 0x6f - c18: 6f445c3a svcvs 0x00445c3a - c1c: 656d7563 strbvs r7, [sp, #-1379]! - c20: 2073746e rsbscs r7, r3, lr, ror #8 - c24: 20646e61 rsbcs r6, r4, r1, ror #28 - c28: 74746553 ldrbtvc r6, [r4], #-1363 - c2c: 73676e69 cmnvc r7, #1680 ; 0x690 - c30: 6c616d5c stclvs 13, cr6, [r1], #-368 - c34: 61726976 cmnvs r2, r6, ror r9 - c38: 20794d5c rsbscs r4, r9, ip, asr sp - c3c: 75636f44 strbvc r6, [r3, #-3908]! - c40: 746e656d strbtvc r6, [lr], #-1389 - c44: 73775c73 cmnvc r7, #29440 ; 0x7300 - c48: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - c4c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - c50: 6165575c cmnvs r5, ip, asr r7 - c54: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - c58: 61745320 cmnvs r4, r0, lsr #6 - c5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - c60: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - c64: 6c6f7274 sfmvs f7, 2, [pc], #-464 - c68: 5c72656c cfldr64pl mvdx6, [r2], #-432 - c6c: 75626544 strbvc r6, [r2, #-1348]! - c70: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - c74: 20225c6a eorcs r5, r2, sl, ror #24 - c78: 65642d2d strbvs r2, [r4, #-3373]! - c7c: 20677562 rsbcs r7, r7, r2, ror #10 - c80: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} - c84: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} - c88: 74696c3d strbtvc r6, [r9], #-3133 - c8c: 20656c74 rsbcs r6, r5, r4, ror ip - c90: 70632d2d rsbvc r2, r3, sp, lsr #26 - c94: 52413d75 subpl r3, r1, #7488 ; 0x1d40 - c98: 4454374d ldrbmi r3, [r4], #-1869 - c9c: 532d494d teqpl sp, #1261568 ; 0x134000 - ca0: 20652d20 rsbcs r2, r5, r0, lsr #26 - ca4: 70662d2d rsbvc r2, r6, sp, lsr #26 - ca8: 6f4e3d75 svcvs 0x004e3d75 - cac: 2d20656e cfstr32cs mvfx6, [r0, #-440]! - cb0: 696c642d stmdbvs ip!, {r0, r2, r3, r5, sl, sp, lr}^ - cb4: 6f635f62 svcvs 0x00635f62 - cb8: 6769666e strbvs r6, [r9, -lr, ror #12]! - cbc: 3a432220 bcc 10c9544 - cc0: 6f72505c svcvs 0x0072505c - cc4: 6d617267 sfmvs f7, 2, [r1, #-412]! - cc8: 6c694620 stclvs 6, cr4, [r9], #-128 - ccc: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - cd0: 53205241 teqpl r0, #268435460 ; 0x10000004 - cd4: 65747379 ldrbvs r7, [r4, #-889]! - cd8: 455c736d ldrbmi r7, [ip, #-877] - cdc: 6465626d strbtvs r6, [r5], #-621 - ce0: 20646564 rsbcs r6, r4, r4, ror #10 - ce4: 6b726f57 blvs 1c9ca48 - ce8: 636e6562 cmnvs lr, #411041792 ; 0x18800000 - cec: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} - cf0: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ - cf4: 74736b63 ldrbtvc r6, [r3], #-2915 - cf8: 5c747261 lfmpl f7, 2, [r4], #-388 - cfc: 5c6d7261 sfmpl f7, 2, [sp], #-388 - d00: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 - d04: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - d08: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} - d0c: 5f676966 svcpl 0x00676966 - d10: 6d726f4e ldclvs 15, cr6, [r2, #-312]! - d14: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} - d18: 492d2022 pushmi {r1, r5, sp} - d1c: 3a432220 bcc 10c95a4 - d20: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - d24: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - d28: 61207374 teqvs r0, r4, ror r3 - d2c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - d30: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - d34: 5c73676e ldclpl 7, cr6, [r3], #-440 - d38: 766c616d strbtvc r6, [ip], -sp, ror #2 - d3c: 5c617269 sfmpl f7, 2, [r1], #-420 - d40: 4420794d strtmi r7, [r0], #-2381 - d44: 6d75636f ldclvs 3, cr6, [r5, #-444]! - d48: 73746e65 cmnvc r4, #1616 ; 0x650 - d4c: 2d73775c ldclcs 7, cr7, [r3, #-368]! - d50: 746e6f63 strbtvc r6, [lr], #-3939 - d54: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - d58: 74616557 strbtvc r6, [r1], #-1367 - d5c: 20726568 rsbscs r6, r2, r8, ror #10 - d60: 74617453 strbtvc r7, [r1], #-1107 - d64: 206e6f69 rsbcs r6, lr, r9, ror #30 - d68: 746e6f43 strbtvc r6, [lr], #-3907 - d6c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - d70: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - d74: 5c43414d stfple f4, [r3], {77} - d78: 76697244 strbtvc r7, [r9], -r4, asr #4 - d7c: 5c737265 lfmpl f7, 2, [r3], #-404 - d80: 65746e49 ldrbvs r6, [r4, #-3657]! - d84: 63616672 cmnvs r1, #119537664 ; 0x7200000 - d88: 20225c65 eorcs r5, r2, r5, ror #24 - d8c: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - d90: 445c3a43 ldrbmi r3, [ip], #-2627 - d94: 6d75636f ldclvs 3, cr6, [r5, #-444]! - d98: 73746e65 cmnvc r4, #1616 ; 0x650 - d9c: 646e6120 strbtvs r6, [lr], #-288 - da0: 74655320 strbtvc r5, [r5], #-800 - da4: 676e6974 undefined - da8: 616d5c73 smcvs 54723 - dac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - db0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - db4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - db8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - dbc: 775c7374 undefined - dc0: 6f632d73 svcvs 0x00632d73 - dc4: 6f72746e svcvs 0x0072746e - dc8: 65575c6c ldrbvs r5, [r7, #-3180] - dcc: 65687461 strbvs r7, [r8, #-1121]! - dd0: 74532072 ldrbvc r2, [r3], #-114 - dd4: 6f697461 svcvs 0x00697461 - dd8: 6f43206e svcvs 0x0043206e - ddc: 6f72746e svcvs 0x0072746e - de0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - de4: 4d4c505c stclmi 0, cr5, [ip, #-368] - de8: 746e495c strbtvc r4, [lr], #-2396 - dec: 61667265 cmnvs r6, r5, ror #4 - df0: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 - df4: 20492d20 subcs r2, r9, r0, lsr #26 - df8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - dfc: 676f7250 undefined - e00: 206d6172 rsbcs r6, sp, r2, ror r1 - e04: 656c6946 strbvs r6, [ip, #-2374]! - e08: 41495c73 cmpmi r9, r3, ror ip - e0c: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ - e10: 6d657473 cfstrdvs mvd7, [r5, #-460]! - e14: 6d455c73 stclvs 12, cr5, [r5, #-460] - e18: 64646562 strbtvs r6, [r4], #-1378 - e1c: 57206465 strpl r6, [r0, -r5, ror #8]! - e20: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 - e24: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - e28: 342e3520 strtcc r3, [lr], #-1312 - e2c: 63694b20 cmnvs r9, #32768 ; 0x8000 - e30: 6174736b cmnvs r4, fp, ror #6 - e34: 615c7472 cmpvs ip, r2, ror r4 - e38: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - e3c: 225c434e subscs r4, ip, #939524097 ; 0x38000001 - e40: 692d2d20 pushvs {r5, r8, sl, fp, sp} - e44: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - e48: 6b726f77 blvs 1c9cc2c - e4c: 632d2d20 teqvs sp, #2048 ; 0x800 - e50: 6d5f7570 cfldr64vs mvdx7, [pc, #-448] - e54: 2065646f rsbcs r6, r5, pc, ror #8 - e58: 6d756874 ldclvs 8, cr6, [r5, #-464]! - e5c: 4f2d2062 svcmi 0x002d2062 - e60: 43000068 movwmi r0, #104 ; 0x68 - e64: 6f445c3a svcvs 0x00445c3a - e68: 656d7563 strbvs r7, [sp, #-1379]! - e6c: 2073746e rsbscs r7, r3, lr, ror #8 - e70: 20646e61 rsbcs r6, r4, r1, ror #28 - e74: 74746553 ldrbtvc r6, [r4], #-1363 - e78: 73676e69 cmnvc r7, #1680 ; 0x690 - e7c: 6c616d5c stclvs 13, cr6, [r1], #-368 - e80: 61726976 cmnvs r2, r6, ror r9 - e84: 20794d5c rsbscs r4, r9, ip, asr sp - e88: 75636f44 strbvc r6, [r3, #-3908]! - e8c: 746e656d strbtvc r6, [lr], #-1389 - e90: 73775c73 cmnvc r7, #29440 ; 0x7300 - e94: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - e98: 6c6f7274 sfmvs f7, 2, [pc], #-464 - e9c: 6165575c cmnvs r5, ip, asr r7 - ea0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - ea4: 61745320 cmnvs r4, r0, lsr #6 - ea8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - eac: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - eb0: 6c6f7274 sfmvs f7, 2, [pc], #-464 - eb4: 5c72656c cfldr64pl mvdx6, [r2], #-432 - eb8: 75626544 strbvc r6, [r2, #-1348]! - ebc: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - ec0: 69445c6a stmdbvs r4, {r1, r3, r5, r6, sl, fp, ip, lr}^ - ec4: 616c7073 smcvs 50947 - ec8: 3a6f2e79 bcc 1bcc8b4 - ecc: 41490000 cmpmi r9, r0 - ed0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - ed4: 43204953 teqmi r0, #1359872 ; 0x14c000 - ed8: 2b2b432f blcs ad1b9c - edc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - ee0: 656c6970 strbvs r6, [ip, #-2416]! - ee4: 35562072 ldrbcc r2, [r6, #-114] - ee8: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - eec: 31332e32 teqcc r3, r2, lsr lr - ef0: 2f353932 svccs 0x00353932 - ef4: 20323357 eorscs r3, r2, r7, asr r3 - ef8: 4b43494b blmi 10d342c - efc: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - f00: 6f662054 svcvs 0x00662054 - f04: 52412072 subpl r2, r1, #114 ; 0x72 - f08: 4322004d teqmi r2, #77 ; 0x4d - f0c: 6f445c3a svcvs 0x00445c3a - f10: 656d7563 strbvs r7, [sp, #-1379]! - f14: 2073746e rsbscs r7, r3, lr, ror #8 - f18: 20646e61 rsbcs r6, r4, r1, ror #28 - f1c: 74746553 ldrbtvc r6, [r4], #-1363 - f20: 73676e69 cmnvc r7, #1680 ; 0x690 - f24: 6c616d5c stclvs 13, cr6, [r1], #-368 - f28: 61726976 cmnvs r2, r6, ror r9 - f2c: 20794d5c rsbscs r4, r9, ip, asr sp - f30: 75636f44 strbvc r6, [r3, #-3908]! - f34: 746e656d strbtvc r6, [lr], #-1389 - f38: 73775c73 cmnvc r7, #29440 ; 0x7300 - f3c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - f40: 6c6f7274 sfmvs f7, 2, [pc], #-464 - f44: 6165575c cmnvs r5, ip, asr r7 - f48: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - f4c: 61745320 cmnvs r4, r0, lsr #6 - f50: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - f54: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - f58: 6c6f7274 sfmvs f7, 2, [pc], #-464 - f5c: 5c72656c cfldr64pl mvdx6, [r2], #-432 - f60: 6c707041 ldclvs 0, cr7, [r0], #-260 - f64: 74616369 strbtvc r6, [r1], #-873 - f68: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - f6c: 6c697455 cfstrdvs mvd7, [r9], #-340 - f70: 65697469 strbvs r7, [r9, #-1129]! - f74: 69445c73 stmdbvs r4, {r0, r1, r4, r5, r6, sl, fp, ip, lr}^ - f78: 616c7073 smcvs 50947 - f7c: 22632e79 rsbcs r2, r3, #1936 ; 0x790 - f80: 20442d20 subcs r2, r4, r0, lsr #26 - f84: 4d343246 lfmmi f3, 4, [r4, #-280]! - f88: 2d205a48 fstmdbscs r0!, {s10-s81} - f8c: 45532044 ldrbmi r2, [r3, #-68] - f90: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ - f94: 455f5954 ldrbmi r5, [pc, #-2388] ; 648 <__FIQ_stack_size+0x248> - f98: 4c42414e stfmie f4, [r2], {78} - f9c: 2d204445 cfstrscs mvf4, [r0, #-276]! - fa0: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 - fa4: 445c3a43 ldrbmi r3, [ip], #-2627 - fa8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - fac: 73746e65 cmnvc r4, #1616 ; 0x650 - fb0: 646e6120 strbtvs r6, [lr], #-288 - fb4: 74655320 strbtvc r5, [r5], #-800 - fb8: 676e6974 undefined - fbc: 616d5c73 smcvs 54723 - fc0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - fc4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - fc8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - fcc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - fd0: 775c7374 undefined - fd4: 6f632d73 svcvs 0x00632d73 - fd8: 6f72746e svcvs 0x0072746e - fdc: 65575c6c ldrbvs r5, [r7, #-3180] - fe0: 65687461 strbvs r7, [r8, #-1121]! - fe4: 74532072 ldrbvc r2, [r3], #-114 - fe8: 6f697461 svcvs 0x00697461 - fec: 6f43206e svcvs 0x0043206e - ff0: 6f72746e svcvs 0x0072746e - ff4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - ff8: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - ffc: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 - 1000: 5c747369 ldclpl 3, cr7, [r4], #-420 - 1004: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 1008: 67616964 strbvs r6, [r1, -r4, ror #18]! - 100c: 7075735f rsbsvc r7, r5, pc, asr r3 - 1010: 73657270 cmnvc r5, #7 ; 0x7 - 1014: 65502073 ldrbvs r2, [r0, #-115] - 1018: 2c313539 cfldr32cs mvfx3, [r1], #-228 - 101c: 31316550 teqcc r1, r0, asr r5 - 1020: 65502c31 ldrbvs r2, [r0, #-3121] - 1024: 20303439 eorscs r3, r0, r9, lsr r4 - 1028: 22206f2d eorcs r6, r0, #180 ; 0xb4 - 102c: 445c3a43 ldrbmi r3, [ip], #-2627 - 1030: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1034: 73746e65 cmnvc r4, #1616 ; 0x650 - 1038: 646e6120 strbtvs r6, [lr], #-288 - 103c: 74655320 strbtvc r5, [r5], #-800 - 1040: 676e6974 undefined - 1044: 616d5c73 smcvs 54723 - 1048: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 104c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1050: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1054: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1058: 775c7374 undefined - 105c: 6f632d73 svcvs 0x00632d73 - 1060: 6f72746e svcvs 0x0072746e - 1064: 65575c6c ldrbvs r5, [r7, #-3180] - 1068: 65687461 strbvs r7, [r8, #-1121]! - 106c: 74532072 ldrbvc r2, [r3], #-114 - 1070: 6f697461 svcvs 0x00697461 - 1074: 6f43206e svcvs 0x0043206e - 1078: 6f72746e svcvs 0x0072746e - 107c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1080: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 1084: 4f5c6775 svcmi 0x005c6775 - 1088: 225c6a62 subscs r6, ip, #401408 ; 0x62000 - 108c: 642d2d20 strtvs r2, [sp], #-3360 - 1090: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 1094: 652d2d20 strvs r2, [sp, #-3360]! - 1098: 6169646e cmnvs r9, lr, ror #8 - 109c: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ - 10a0: 656c7474 strbvs r7, [ip, #-1140]! - 10a4: 632d2d20 teqvs sp, #2048 ; 0x800 - 10a8: 413d7570 teqmi sp, r0, ror r5 - 10ac: 54374d52 ldrtpl r4, [r7], #-3410 - 10b0: 2d494d44 stclcs 13, cr4, [r9, #-272] - 10b4: 652d2053 strvs r2, [sp, #-83]! - 10b8: 662d2d20 strtvs r2, [sp], -r0, lsr #26 - 10bc: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} - 10c0: 20656e6f rsbcs r6, r5, pc, ror #28 - 10c4: 6c642d2d stclvs 13, cr2, [r4], #-180 - 10c8: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 - 10cc: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 10d0: 43222067 teqmi r2, #103 ; 0x67 - 10d4: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 - 10d8: 6172676f cmnvs r2, pc, ror #14 - 10dc: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ - 10e0: 5c73656c cfldr64pl mvdx6, [r3], #-432 - 10e4: 20524149 subscs r4, r2, r9, asr #2 - 10e8: 74737953 ldrbtvc r7, [r3], #-2387 - 10ec: 5c736d65 ldclpl 13, cr6, [r3], #-404 - 10f0: 65626d45 strbvs r6, [r2, #-3397]! - 10f4: 64656464 strbtvs r6, [r5], #-1124 - 10f8: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 - 10fc: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} - 1100: 35206863 strcc r6, [r0, #-2147]! - 1104: 4b20342e blmi 80e1c4 - 1108: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 - 110c: 74726174 ldrbtvc r6, [r2], #-372 - 1110: 6d72615c ldfvse f6, [r2, #-368]! - 1114: 434e495c movtmi r4, #59740 ; 0xe95c - 1118: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ - 111c: 6f435f62 svcvs 0x00435f62 - 1120: 6769666e strbvs r6, [r9, -lr, ror #12]! - 1124: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 - 1128: 2e6c616d powcsez f6, f4, #5.0 - 112c: 2d202268 sfmcs f2, 4, [r0, #-416]! - 1130: 43222049 teqmi r2, #73 ; 0x49 - 1134: 6f445c3a svcvs 0x00445c3a - 1138: 656d7563 strbvs r7, [sp, #-1379]! - 113c: 2073746e rsbscs r7, r3, lr, ror #8 - 1140: 20646e61 rsbcs r6, r4, r1, ror #28 - 1144: 74746553 ldrbtvc r6, [r4], #-1363 - 1148: 73676e69 cmnvc r7, #1680 ; 0x690 - 114c: 6c616d5c stclvs 13, cr6, [r1], #-368 - 1150: 61726976 cmnvs r2, r6, ror r9 - 1154: 20794d5c rsbscs r4, r9, ip, asr sp - 1158: 75636f44 strbvc r6, [r3, #-3908]! - 115c: 746e656d strbtvc r6, [lr], #-1389 - 1160: 73775c73 cmnvc r7, #29440 ; 0x7300 - 1164: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 1168: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 116c: 6165575c cmnvs r5, ip, asr r7 - 1170: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 1174: 61745320 cmnvs r4, r0, lsr #6 - 1178: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 117c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 1180: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1184: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 1188: 43414d53 movtmi r4, #7507 ; 0x1d53 - 118c: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 1190: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 1194: 746e495c strbtvc r4, [lr], #-2396 - 1198: 61667265 cmnvs r6, r5, ror #4 - 119c: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 - 11a0: 20492d20 subcs r2, r9, r0, lsr #26 - 11a4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 11a8: 75636f44 strbvc r6, [r3, #-3908]! - 11ac: 746e656d strbtvc r6, [lr], #-1389 - 11b0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 11b4: 65532064 ldrbvs r2, [r3, #-100] - 11b8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 11bc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 11c0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 11c4: 4d5c6172 ldfmie f6, [ip, #-456] - 11c8: 6f442079 svcvs 0x00442079 - 11cc: 656d7563 strbvs r7, [sp, #-1379]! - 11d0: 5c73746e cfldrdpl mvd7, [r3], #-440 - 11d4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 11d8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 11dc: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 11e0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 11e4: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 11e8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 11ec: 43206e6f teqmi r0, #1776 ; 0x6f0 - 11f0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 11f4: 656c6c6f strbvs r6, [ip, #-3183]! - 11f8: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 - 11fc: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} - 1200: 66726574 undefined - 1204: 5c656361 stclpl 3, cr6, [r5], #-388 - 1208: 492d2022 pushmi {r1, r5, sp} - 120c: 3a432220 bcc 10c9a94 - 1210: 6f72505c svcvs 0x0072505c - 1214: 6d617267 sfmvs f7, 2, [r1, #-412]! - 1218: 6c694620 stclvs 6, cr4, [r9], #-128 - 121c: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - 1220: 53205241 teqpl r0, #268435460 ; 0x10000004 - 1224: 65747379 ldrbvs r7, [r4, #-889]! - 1228: 455c736d ldrbmi r7, [ip, #-877] - 122c: 6465626d strbtvs r6, [r5], #-621 - 1230: 20646564 rsbcs r6, r4, r4, ror #10 - 1234: 6b726f57 blvs 1c9cf98 - 1238: 636e6562 cmnvs lr, #411041792 ; 0x18800000 - 123c: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} - 1240: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ - 1244: 74736b63 ldrbtvc r6, [r3], #-2915 - 1248: 5c747261 lfmpl f7, 2, [r4], #-388 - 124c: 5c6d7261 sfmpl f7, 2, [sp], #-388 - 1250: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 - 1254: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 1258: 65746e69 ldrbvs r6, [r4, #-3689]! - 125c: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 - 1260: 2d2d206b stccs 0, cr2, [sp, #-428]! - 1264: 5f757063 svcpl 0x00757063 - 1268: 65646f6d strbvs r6, [r4, #-3949]! - 126c: 75687420 strbvc r7, [r8, #-1056]! - 1270: 2d20626d sfmcs f6, 4, [r0, #-436]! - 1274: 0000684f andeq r6, r0, pc, asr #16 - 1278: 445c3a43 ldrbmi r3, [ip], #-2627 - 127c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1280: 73746e65 cmnvc r4, #1616 ; 0x650 - 1284: 646e6120 strbtvs r6, [lr], #-288 - 1288: 74655320 strbtvc r5, [r5], #-800 - 128c: 676e6974 undefined - 1290: 616d5c73 smcvs 54723 - 1294: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1298: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 129c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 12a0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 12a4: 775c7374 undefined - 12a8: 6f632d73 svcvs 0x00632d73 - 12ac: 6f72746e svcvs 0x0072746e - 12b0: 65575c6c ldrbvs r5, [r7, #-3180] - 12b4: 65687461 strbvs r7, [r8, #-1121]! - 12b8: 74532072 ldrbvc r2, [r3], #-114 - 12bc: 6f697461 svcvs 0x00697461 - 12c0: 6f43206e svcvs 0x0043206e - 12c4: 6f72746e svcvs 0x0072746e - 12c8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 12cc: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 12d0: 4f5c6775 svcmi 0x005c6775 - 12d4: 485c6a62 ldmdami ip, {r1, r5, r6, r9, fp, sp, lr}^ - 12d8: 7672444c ldrbtvc r4, [r2], -ip, asr #8 - 12dc: 003a6f2e eorseq r6, sl, lr, lsr #30 - 12e0: 52414900 subpl r4, r1, #0 ; 0x0 - 12e4: 534e4120 movtpl r4, #57632 ; 0xe120 - 12e8: 2f432049 svccs 0x00432049 - 12ec: 202b2b43 eorcs r2, fp, r3, asr #22 - 12f0: 706d6f43 rsbvc r6, sp, r3, asr #30 - 12f4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 12f8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 12fc: 322e3033 eorcc r3, lr, #51 ; 0x33 - 1300: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 1304: 572f3539 undefined - 1308: 4b203233 blmi 80dbdc - 130c: 534b4349 movtpl r4, #45897 ; 0xb349 - 1310: 54524154 ldrbpl r4, [r2], #-340 - 1314: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 1318: 4d524120 ldfmie f4, [r2, #-128] - 131c: 3a432200 bcc 10c9b24 - 1320: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 1324: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1328: 61207374 teqvs r0, r4, ror r3 - 132c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 1330: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 1334: 5c73676e ldclpl 7, cr6, [r3], #-440 - 1338: 766c616d strbtvc r6, [ip], -sp, ror #2 - 133c: 5c617269 sfmpl f7, 2, [r1], #-420 - 1340: 4420794d strtmi r7, [r0], #-2381 - 1344: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1348: 73746e65 cmnvc r4, #1616 ; 0x650 - 134c: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 1350: 746e6f63 strbtvc r6, [lr], #-3939 - 1354: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 1358: 74616557 strbtvc r6, [r1], #-1367 - 135c: 20726568 rsbscs r6, r2, r8, ror #10 - 1360: 74617453 strbtvc r7, [r1], #-1107 - 1364: 206e6f69 rsbcs r6, lr, r9, ror #30 - 1368: 746e6f43 strbtvc r6, [lr], #-3907 - 136c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 1370: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 1374: 5c43414d stfple f4, [r3], {77} - 1378: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 137c: 485c6563 ldmdami ip, {r0, r1, r5, r6, r8, sl, sp, lr}^ - 1380: 7672444c ldrbtvc r4, [r2], -ip, asr #8 - 1384: 2022632e eorcs r6, r2, lr, lsr #6 - 1388: 4620442d strtmi r4, [r0], -sp, lsr #8 - 138c: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ - 1390: 442d205a strtmi r2, [sp], #-90 - 1394: 43455320 movtmi r5, #21280 ; 0x5320 - 1398: 54495255 strbpl r5, [r9], #-597 - 139c: 4e455f59 mcrmi 15, 2, r5, cr5, cr9, {2} - 13a0: 454c4241 strbmi r4, [ip, #-577] - 13a4: 6c2d2044 stcvs 0, cr2, [sp], #-272 - 13a8: 43222043 teqmi r2, #67 ; 0x43 - 13ac: 6f445c3a svcvs 0x00445c3a - 13b0: 656d7563 strbvs r7, [sp, #-1379]! - 13b4: 2073746e rsbscs r7, r3, lr, ror #8 - 13b8: 20646e61 rsbcs r6, r4, r1, ror #28 - 13bc: 74746553 ldrbtvc r6, [r4], #-1363 - 13c0: 73676e69 cmnvc r7, #1680 ; 0x690 - 13c4: 6c616d5c stclvs 13, cr6, [r1], #-368 - 13c8: 61726976 cmnvs r2, r6, ror r9 - 13cc: 20794d5c rsbscs r4, r9, ip, asr sp - 13d0: 75636f44 strbvc r6, [r3, #-3908]! - 13d4: 746e656d strbtvc r6, [lr], #-1389 - 13d8: 73775c73 cmnvc r7, #29440 ; 0x7300 - 13dc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 13e0: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 13e4: 6165575c cmnvs r5, ip, asr r7 - 13e8: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 13ec: 61745320 cmnvs r4, r0, lsr #6 - 13f0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 13f4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 13f8: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 13fc: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 1400: 75626544 strbvc r6, [r2, #-1348]! - 1404: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ - 1408: 225c7473 subscs r7, ip, #1929379840 ; 0x73000000 - 140c: 642d2d20 strtvs r2, [sp], #-3360 - 1410: 5f676169 svcpl 0x00676169 - 1414: 70707573 rsbsvc r7, r0, r3, ror r5 - 1418: 73736572 cmnvc r3, #478150656 ; 0x1c800000 - 141c: 39655020 stmdbcc r5!, {r5, ip, lr}^ - 1420: 502c3135 eorpl r3, ip, r5, lsr r1 - 1424: 31313165 teqcc r1, r5, ror #2 - 1428: 3965502c stmdbcc r5!, {r2, r3, r5, ip, lr}^ - 142c: 2d203034 stccs 0, cr3, [r0, #-208]! - 1430: 4322206f teqmi r2, #111 ; 0x6f - 1434: 6f445c3a svcvs 0x00445c3a - 1438: 656d7563 strbvs r7, [sp, #-1379]! - 143c: 2073746e rsbscs r7, r3, lr, ror #8 - 1440: 20646e61 rsbcs r6, r4, r1, ror #28 - 1444: 74746553 ldrbtvc r6, [r4], #-1363 - 1448: 73676e69 cmnvc r7, #1680 ; 0x690 - 144c: 6c616d5c stclvs 13, cr6, [r1], #-368 - 1450: 61726976 cmnvs r2, r6, ror r9 - 1454: 20794d5c rsbscs r4, r9, ip, asr sp - 1458: 75636f44 strbvc r6, [r3, #-3908]! - 145c: 746e656d strbtvc r6, [lr], #-1389 - 1460: 73775c73 cmnvc r7, #29440 ; 0x7300 - 1464: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 1468: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 146c: 6165575c cmnvs r5, ip, asr r7 - 1470: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 1474: 61745320 cmnvs r4, r0, lsr #6 - 1478: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 147c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 1480: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1484: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 1488: 75626544 strbvc r6, [r2, #-1348]! - 148c: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 1490: 20225c6a eorcs r5, r2, sl, ror #24 - 1494: 65642d2d strbvs r2, [r4, #-3373]! - 1498: 20677562 rsbcs r7, r7, r2, ror #10 - 149c: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} - 14a0: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} - 14a4: 74696c3d strbtvc r6, [r9], #-3133 - 14a8: 20656c74 rsbcs r6, r5, r4, ror ip - 14ac: 70632d2d rsbvc r2, r3, sp, lsr #26 - 14b0: 52413d75 subpl r3, r1, #7488 ; 0x1d40 - 14b4: 4454374d ldrbmi r3, [r4], #-1869 - 14b8: 532d494d teqpl sp, #1261568 ; 0x134000 - 14bc: 20652d20 rsbcs r2, r5, r0, lsr #26 - 14c0: 70662d2d rsbvc r2, r6, sp, lsr #26 - 14c4: 6f4e3d75 svcvs 0x004e3d75 - 14c8: 2d20656e cfstr32cs mvfx6, [r0, #-440]! - 14cc: 696c642d stmdbvs ip!, {r0, r2, r3, r5, sl, sp, lr}^ - 14d0: 6f635f62 svcvs 0x00635f62 - 14d4: 6769666e strbvs r6, [r9, -lr, ror #12]! - 14d8: 3a432220 bcc 10c9d60 - 14dc: 6f72505c svcvs 0x0072505c - 14e0: 6d617267 sfmvs f7, 2, [r1, #-412]! - 14e4: 6c694620 stclvs 6, cr4, [r9], #-128 - 14e8: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - 14ec: 53205241 teqpl r0, #268435460 ; 0x10000004 - 14f0: 65747379 ldrbvs r7, [r4, #-889]! - 14f4: 455c736d ldrbmi r7, [ip, #-877] - 14f8: 6465626d strbtvs r6, [r5], #-621 - 14fc: 20646564 rsbcs r6, r4, r4, ror #10 - 1500: 6b726f57 blvs 1c9d264 - 1504: 636e6562 cmnvs lr, #411041792 ; 0x18800000 - 1508: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} - 150c: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ - 1510: 74736b63 ldrbtvc r6, [r3], #-2915 - 1514: 5c747261 lfmpl f7, 2, [r4], #-388 - 1518: 5c6d7261 sfmpl f7, 2, [sp], #-388 - 151c: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 - 1520: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 1524: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} - 1528: 5f676966 svcpl 0x00676966 - 152c: 6d726f4e ldclvs 15, cr6, [r2, #-312]! - 1530: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} - 1534: 492d2022 pushmi {r1, r5, sp} - 1538: 3a432220 bcc 10c9dc0 - 153c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 1540: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1544: 61207374 teqvs r0, r4, ror r3 - 1548: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 154c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 1550: 5c73676e ldclpl 7, cr6, [r3], #-440 - 1554: 766c616d strbtvc r6, [ip], -sp, ror #2 - 1558: 5c617269 sfmpl f7, 2, [r1], #-420 - 155c: 4420794d strtmi r7, [r0], #-2381 - 1560: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1564: 73746e65 cmnvc r4, #1616 ; 0x650 - 1568: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 156c: 746e6f63 strbtvc r6, [lr], #-3939 - 1570: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 1574: 74616557 strbtvc r6, [r1], #-1367 - 1578: 20726568 rsbscs r6, r2, r8, ror #10 - 157c: 74617453 strbtvc r7, [r1], #-1107 - 1580: 206e6f69 rsbcs r6, lr, r9, ror #30 - 1584: 746e6f43 strbtvc r6, [lr], #-3907 - 1588: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 158c: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 1590: 5c43414d stfple f4, [r3], {77} - 1594: 76697244 strbtvc r7, [r9], -r4, asr #4 - 1598: 5c737265 lfmpl f7, 2, [r3], #-404 - 159c: 65746e49 ldrbvs r6, [r4, #-3657]! - 15a0: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 15a4: 20225c65 eorcs r5, r2, r5, ror #24 - 15a8: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 15ac: 445c3a43 ldrbmi r3, [ip], #-2627 - 15b0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 15b4: 73746e65 cmnvc r4, #1616 ; 0x650 - 15b8: 646e6120 strbtvs r6, [lr], #-288 - 15bc: 74655320 strbtvc r5, [r5], #-800 - 15c0: 676e6974 undefined - 15c4: 616d5c73 smcvs 54723 - 15c8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 15cc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 15d0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 15d4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 15d8: 775c7374 undefined - 15dc: 6f632d73 svcvs 0x00632d73 - 15e0: 6f72746e svcvs 0x0072746e - 15e4: 65575c6c ldrbvs r5, [r7, #-3180] - 15e8: 65687461 strbvs r7, [r8, #-1121]! - 15ec: 74532072 ldrbvc r2, [r3], #-114 - 15f0: 6f697461 svcvs 0x00697461 - 15f4: 6f43206e svcvs 0x0043206e - 15f8: 6f72746e svcvs 0x0072746e - 15fc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1600: 4d4c505c stclmi 0, cr5, [ip, #-368] - 1604: 746e495c strbtvc r4, [lr], #-2396 - 1608: 61667265 cmnvs r6, r5, ror #4 - 160c: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 - 1610: 20492d20 subcs r2, r9, r0, lsr #26 - 1614: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 1618: 676f7250 undefined - 161c: 206d6172 rsbcs r6, sp, r2, ror r1 - 1620: 656c6946 strbvs r6, [ip, #-2374]! - 1624: 41495c73 cmpmi r9, r3, ror ip - 1628: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ - 162c: 6d657473 cfstrdvs mvd7, [r5, #-460]! - 1630: 6d455c73 stclvs 12, cr5, [r5, #-460] - 1634: 64646562 strbtvs r6, [r4], #-1378 - 1638: 57206465 strpl r6, [r0, -r5, ror #8]! - 163c: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 - 1640: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 1644: 342e3520 strtcc r3, [lr], #-1312 - 1648: 63694b20 cmnvs r9, #32768 ; 0x8000 - 164c: 6174736b cmnvs r4, fp, ror #6 - 1650: 615c7472 cmpvs ip, r2, ror r4 - 1654: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - 1658: 225c434e subscs r4, ip, #939524097 ; 0x38000001 - 165c: 692d2d20 pushvs {r5, r8, sl, fp, sp} - 1660: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 1664: 6b726f77 blvs 1c9d448 - 1668: 632d2d20 teqvs sp, #2048 ; 0x800 - 166c: 6d5f7570 cfldr64vs mvdx7, [pc, #-448] - 1670: 2065646f rsbcs r6, r5, pc, ror #8 - 1674: 6d756874 ldclvs 8, cr6, [r5, #-464]! - 1678: 4f2d2062 svcmi 0x002d2062 - 167c: 43000068 movwmi r0, #104 ; 0x68 - 1680: 6f445c3a svcvs 0x00445c3a - 1684: 656d7563 strbvs r7, [sp, #-1379]! - 1688: 2073746e rsbscs r7, r3, lr, ror #8 - 168c: 20646e61 rsbcs r6, r4, r1, ror #28 - 1690: 74746553 ldrbtvc r6, [r4], #-1363 - 1694: 73676e69 cmnvc r7, #1680 ; 0x690 - 1698: 6c616d5c stclvs 13, cr6, [r1], #-368 - 169c: 61726976 cmnvs r2, r6, ror r9 - 16a0: 20794d5c rsbscs r4, r9, ip, asr sp - 16a4: 75636f44 strbvc r6, [r3, #-3908]! - 16a8: 746e656d strbtvc r6, [lr], #-1389 - 16ac: 73775c73 cmnvc r7, #29440 ; 0x7300 - 16b0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 16b4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 16b8: 6165575c cmnvs r5, ip, asr r7 - 16bc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 16c0: 61745320 cmnvs r4, r0, lsr #6 - 16c4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 16c8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 16cc: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 16d0: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 16d4: 75626544 strbvc r6, [r2, #-1348]! - 16d8: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 16dc: 6e495c6a cdpvs 12, 4, cr5, cr9, cr10, {3} - 16e0: 492d7469 pushmi {r0, r3, r5, r6, sl, ip, sp, lr} - 16e4: 6f2e5241 svcvs 0x002e5241 - 16e8: 4900003a stmdbmi r0, {r1, r3, r4, r5} - 16ec: 41205241 teqmi r0, r1, asr #4 - 16f0: 6d657373 stclvs 3, cr7, [r5, #-460]! - 16f4: 72656c62 rsbvc r6, r5, #25088 ; 0x6200 - 16f8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 16fc: 322e3033 eorcc r3, lr, #51 ; 0x33 - 1700: 3231352e eorscc r3, r1, #192937984 ; 0xb800000 - 1704: 572f3539 undefined - 1708: 66203233 undefined - 170c: 4120726f teqmi r0, pc, ror #4 - 1710: 43004d52 movwmi r4, #3410 ; 0xd52 - 1714: 6f445c3a svcvs 0x00445c3a - 1718: 656d7563 strbvs r7, [sp, #-1379]! - 171c: 2073746e rsbscs r7, r3, lr, ror #8 - 1720: 20646e61 rsbcs r6, r4, r1, ror #28 - 1724: 74746553 ldrbtvc r6, [r4], #-1363 - 1728: 73676e69 cmnvc r7, #1680 ; 0x690 - 172c: 6c616d5c stclvs 13, cr6, [r1], #-368 - 1730: 61726976 cmnvs r2, r6, ror r9 - 1734: 20794d5c rsbscs r4, r9, ip, asr sp - 1738: 75636f44 strbvc r6, [r3, #-3908]! - 173c: 746e656d strbtvc r6, [lr], #-1389 - 1740: 73775c73 cmnvc r7, #29440 ; 0x7300 - 1744: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 1748: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 174c: 6165575c cmnvs r5, ip, asr r7 - 1750: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 1754: 61745320 cmnvs r4, r0, lsr #6 - 1758: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 175c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 1760: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1764: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 1768: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 - 176c: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 1770: 435c6563 cmpmi ip, #415236096 ; 0x18c00000 - 1774: 6f6d6d6f svcvs 0x006d6d6f - 1778: 79535c6e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, fp, ip, lr}^ - 177c: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 1780: 492d7469 pushmi {r0, r3, r5, r6, sl, ip, sp, lr} - 1784: 532e5241 teqpl lr, #268435460 ; 0x10000004 - 1788: 434f2d20 movtmi r2, #64800 ; 0xfd20 - 178c: 6f445c3a svcvs 0x00445c3a - 1790: 656d7563 strbvs r7, [sp, #-1379]! - 1794: 2073746e rsbscs r7, r3, lr, ror #8 - 1798: 20646e61 rsbcs r6, r4, r1, ror #28 - 179c: 74746553 ldrbtvc r6, [r4], #-1363 - 17a0: 73676e69 cmnvc r7, #1680 ; 0x690 - 17a4: 6c616d5c stclvs 13, cr6, [r1], #-368 - 17a8: 61726976 cmnvs r2, r6, ror r9 - 17ac: 20794d5c rsbscs r4, r9, ip, asr sp - 17b0: 75636f44 strbvc r6, [r3, #-3908]! - 17b4: 746e656d strbtvc r6, [lr], #-1389 - 17b8: 73775c73 cmnvc r7, #29440 ; 0x7300 - 17bc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 17c0: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 17c4: 6165575c cmnvs r5, ip, asr r7 - 17c8: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 17cc: 61745320 cmnvs r4, r0, lsr #6 - 17d0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 17d4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 17d8: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 17dc: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 17e0: 75626544 strbvc r6, [r2, #-1348]! - 17e4: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 17e8: 2d205c6a stccs 12, cr5, [r0, #-424]! - 17ec: 2d202b73 fstmdbxcs r0!, {d2-d58} - 17f0: 203e3c4d eorscs r3, lr, sp, asr #24 - 17f4: 202b772d eorcs r7, fp, sp, lsr #14 - 17f8: 2d20722d sfmcs f7, 4, [r0, #-180]! - 17fc: 45535544 ldrbmi r5, [r3, #-1348] - 1800: 544e495f strbpl r4, [lr], #-2399 - 1804: 55525245 ldrbpl r5, [r2, #-581] - 1808: 20535450 subscs r5, r3, r0, asr r4 - 180c: 5355442d cmppl r5, #754974720 ; 0x2d000000 - 1810: 58455f45 stmdapl r5, {r0, r2, r6, r8, r9, sl, fp, ip, lr}^ - 1814: 54504543 ldrbpl r4, [r0], #-1347 - 1818: 534e4f49 movtpl r4, #61257 ; 0xef49 - 181c: 434c2d20 movtmi r2, #52512 ; 0xcd20 - 1820: 6f445c3a svcvs 0x00445c3a - 1824: 656d7563 strbvs r7, [sp, #-1379]! - 1828: 2073746e rsbscs r7, r3, lr, ror #8 - 182c: 20646e61 rsbcs r6, r4, r1, ror #28 - 1830: 74746553 ldrbtvc r6, [r4], #-1363 - 1834: 73676e69 cmnvc r7, #1680 ; 0x690 - 1838: 6c616d5c stclvs 13, cr6, [r1], #-368 - 183c: 61726976 cmnvs r2, r6, ror r9 - 1840: 20794d5c rsbscs r4, r9, ip, asr sp - 1844: 75636f44 strbvc r6, [r3, #-3908]! - 1848: 746e656d strbtvc r6, [lr], #-1389 - 184c: 73775c73 cmnvc r7, #29440 ; 0x7300 - 1850: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 1854: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1858: 6165575c cmnvs r5, ip, asr r7 - 185c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 1860: 61745320 cmnvs r4, r0, lsr #6 - 1864: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1868: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 186c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1870: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 1874: 75626544 strbvc r6, [r2, #-1348]! - 1878: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ - 187c: 205c7473 subscs r7, ip, r3, ror r4 - 1880: 2038742d eorscs r7, r8, sp, lsr #8 - 1884: 70632d2d rsbvc r2, r3, sp, lsr #26 - 1888: 52412075 subpl r2, r1, #117 ; 0x75 - 188c: 4454374d ldrbmi r3, [r4], #-1869 - 1890: 532d494d teqpl sp, #1261568 ; 0x134000 - 1894: 662d2d20 strtvs r2, [sp], -r0, lsr #26 - 1898: 4e207570 mcrmi 5, 1, r7, cr0, cr0, {3} - 189c: 00656e6f rsbeq r6, r5, pc, ror #28 - 18a0: 5c3a4300 ldcpl 3, cr4, [sl] - 18a4: 75636f44 strbvc r6, [r3, #-3908]! - 18a8: 746e656d strbtvc r6, [lr], #-1389 - 18ac: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 18b0: 65532064 ldrbvs r2, [r3, #-100] - 18b4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 18b8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 18bc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 18c0: 4d5c6172 ldfmie f6, [ip, #-456] - 18c4: 6f442079 svcvs 0x00442079 - 18c8: 656d7563 strbvs r7, [sp, #-1379]! - 18cc: 5c73746e cfldrdpl mvd7, [r3], #-440 - 18d0: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 18d4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 18d8: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 18dc: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 18e0: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 18e4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 18e8: 43206e6f teqmi r0, #1776 ; 0x6f0 - 18ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 18f0: 656c6c6f strbvs r6, [ip, #-3183]! - 18f4: 65445c72 strbvs r5, [r4, #-3186] - 18f8: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 18fc: 5c6a624f sfmpl f6, 2, [sl], #-316 - 1900: 6279654b rsbsvs r6, r9, #314572800 ; 0x12c00000 - 1904: 6472616f ldrbtvs r6, [r2], #-367 - 1908: 003a6f2e eorseq r6, sl, lr, lsr #30 - 190c: 52414900 subpl r4, r1, #0 ; 0x0 - 1910: 534e4120 movtpl r4, #57632 ; 0xe120 - 1914: 2f432049 svccs 0x00432049 - 1918: 202b2b43 eorcs r2, fp, r3, asr #22 - 191c: 706d6f43 rsbvc r6, sp, r3, asr #30 - 1920: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 1924: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 1928: 322e3033 eorcc r3, lr, #51 ; 0x33 - 192c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 1930: 572f3539 undefined - 1934: 4b203233 blmi 80e208 - 1938: 534b4349 movtpl r4, #45897 ; 0xb349 - 193c: 54524154 ldrbpl r4, [r2], #-340 - 1940: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 1944: 4d524120 ldfmie f4, [r2, #-128] - 1948: 3a432200 bcc 10ca150 - 194c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 1950: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1954: 61207374 teqvs r0, r4, ror r3 - 1958: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 195c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 1960: 5c73676e ldclpl 7, cr6, [r3], #-440 - 1964: 766c616d strbtvc r6, [ip], -sp, ror #2 - 1968: 5c617269 sfmpl f7, 2, [r1], #-420 - 196c: 4420794d strtmi r7, [r0], #-2381 - 1970: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1974: 73746e65 cmnvc r4, #1616 ; 0x650 - 1978: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 197c: 746e6f63 strbtvc r6, [lr], #-3939 - 1980: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 1984: 74616557 strbtvc r6, [r1], #-1367 - 1988: 20726568 rsbscs r6, r2, r8, ror #10 - 198c: 74617453 strbtvc r7, [r1], #-1107 - 1990: 206e6f69 rsbcs r6, lr, r9, ror #30 - 1994: 746e6f43 strbtvc r6, [lr], #-3907 - 1998: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 199c: 415c7265 cmpmi ip, r5, ror #4 - 19a0: 696c7070 stmdbvs ip!, {r4, r5, r6, ip, sp, lr}^ - 19a4: 69746163 ldmdbvs r4!, {r0, r1, r5, r6, r8, sp, lr}^ - 19a8: 555c6e6f ldrbpl r6, [ip, #-3695] - 19ac: 696c6974 stmdbvs ip!, {r2, r4, r5, r6, r8, fp, sp, lr}^ - 19b0: 73656974 cmnvc r5, #1900544 ; 0x1d0000 - 19b4: 79654b5c stmdbvc r5!, {r2, r3, r4, r6, r8, r9, fp, lr}^ - 19b8: 72616f62 rsbvc r6, r1, #392 ; 0x188 - 19bc: 22632e64 rsbcs r2, r3, #1600 ; 0x640 - 19c0: 20442d20 subcs r2, r4, r0, lsr #26 - 19c4: 4d343246 lfmmi f3, 4, [r4, #-280]! - 19c8: 2d205a48 fstmdbscs r0!, {s10-s81} - 19cc: 45532044 ldrbmi r2, [r3, #-68] - 19d0: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ - 19d4: 455f5954 ldrbmi r5, [pc, #-2388] ; 1088 <__USR_stack_size+0x888> - 19d8: 4c42414e stfmie f4, [r2], {78} - 19dc: 2d204445 cfstrscs mvf4, [r0, #-276]! - 19e0: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 - 19e4: 445c3a43 ldrbmi r3, [ip], #-2627 - 19e8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 19ec: 73746e65 cmnvc r4, #1616 ; 0x650 - 19f0: 646e6120 strbtvs r6, [lr], #-288 - 19f4: 74655320 strbtvc r5, [r5], #-800 - 19f8: 676e6974 undefined - 19fc: 616d5c73 smcvs 54723 - 1a00: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1a04: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1a08: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1a0c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1a10: 775c7374 undefined - 1a14: 6f632d73 svcvs 0x00632d73 - 1a18: 6f72746e svcvs 0x0072746e - 1a1c: 65575c6c ldrbvs r5, [r7, #-3180] - 1a20: 65687461 strbvs r7, [r8, #-1121]! - 1a24: 74532072 ldrbvc r2, [r3], #-114 - 1a28: 6f697461 svcvs 0x00697461 - 1a2c: 6f43206e svcvs 0x0043206e - 1a30: 6f72746e svcvs 0x0072746e - 1a34: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1a38: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 1a3c: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 - 1a40: 5c747369 ldclpl 3, cr7, [r4], #-420 - 1a44: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 1a48: 67616964 strbvs r6, [r1, -r4, ror #18]! - 1a4c: 7075735f rsbsvc r7, r5, pc, asr r3 - 1a50: 73657270 cmnvc r5, #7 ; 0x7 - 1a54: 65502073 ldrbvs r2, [r0, #-115] - 1a58: 2c313539 cfldr32cs mvfx3, [r1], #-228 - 1a5c: 31316550 teqcc r1, r0, asr r5 - 1a60: 65502c31 ldrbvs r2, [r0, #-3121] - 1a64: 20303439 eorscs r3, r0, r9, lsr r4 - 1a68: 22206f2d eorcs r6, r0, #180 ; 0xb4 - 1a6c: 445c3a43 ldrbmi r3, [ip], #-2627 - 1a70: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1a74: 73746e65 cmnvc r4, #1616 ; 0x650 - 1a78: 646e6120 strbtvs r6, [lr], #-288 - 1a7c: 74655320 strbtvc r5, [r5], #-800 - 1a80: 676e6974 undefined - 1a84: 616d5c73 smcvs 54723 - 1a88: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1a8c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1a90: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1a94: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1a98: 775c7374 undefined - 1a9c: 6f632d73 svcvs 0x00632d73 - 1aa0: 6f72746e svcvs 0x0072746e - 1aa4: 65575c6c ldrbvs r5, [r7, #-3180] - 1aa8: 65687461 strbvs r7, [r8, #-1121]! - 1aac: 74532072 ldrbvc r2, [r3], #-114 - 1ab0: 6f697461 svcvs 0x00697461 - 1ab4: 6f43206e svcvs 0x0043206e - 1ab8: 6f72746e svcvs 0x0072746e - 1abc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1ac0: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 1ac4: 4f5c6775 svcmi 0x005c6775 - 1ac8: 225c6a62 subscs r6, ip, #401408 ; 0x62000 - 1acc: 642d2d20 strtvs r2, [sp], #-3360 - 1ad0: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 1ad4: 652d2d20 strvs r2, [sp, #-3360]! - 1ad8: 6169646e cmnvs r9, lr, ror #8 - 1adc: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ - 1ae0: 656c7474 strbvs r7, [ip, #-1140]! - 1ae4: 632d2d20 teqvs sp, #2048 ; 0x800 - 1ae8: 413d7570 teqmi sp, r0, ror r5 - 1aec: 54374d52 ldrtpl r4, [r7], #-3410 - 1af0: 2d494d44 stclcs 13, cr4, [r9, #-272] - 1af4: 652d2053 strvs r2, [sp, #-83]! - 1af8: 662d2d20 strtvs r2, [sp], -r0, lsr #26 - 1afc: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} - 1b00: 20656e6f rsbcs r6, r5, pc, ror #28 - 1b04: 6c642d2d stclvs 13, cr2, [r4], #-180 - 1b08: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 - 1b0c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 1b10: 43222067 teqmi r2, #103 ; 0x67 - 1b14: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 - 1b18: 6172676f cmnvs r2, pc, ror #14 - 1b1c: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ - 1b20: 5c73656c cfldr64pl mvdx6, [r3], #-432 - 1b24: 20524149 subscs r4, r2, r9, asr #2 - 1b28: 74737953 ldrbtvc r7, [r3], #-2387 - 1b2c: 5c736d65 ldclpl 13, cr6, [r3], #-404 - 1b30: 65626d45 strbvs r6, [r2, #-3397]! - 1b34: 64656464 strbtvs r6, [r5], #-1124 - 1b38: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 - 1b3c: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} - 1b40: 35206863 strcc r6, [r0, #-2147]! - 1b44: 4b20342e blmi 80ec04 - 1b48: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 - 1b4c: 74726174 ldrbtvc r6, [r2], #-372 - 1b50: 6d72615c ldfvse f6, [r2, #-368]! - 1b54: 434e495c movtmi r4, #59740 ; 0xe95c - 1b58: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ - 1b5c: 6f435f62 svcvs 0x00435f62 - 1b60: 6769666e strbvs r6, [r9, -lr, ror #12]! - 1b64: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 - 1b68: 2e6c616d powcsez f6, f4, #5.0 - 1b6c: 2d202268 sfmcs f2, 4, [r0, #-416]! - 1b70: 43222049 teqmi r2, #73 ; 0x49 - 1b74: 6f445c3a svcvs 0x00445c3a - 1b78: 656d7563 strbvs r7, [sp, #-1379]! - 1b7c: 2073746e rsbscs r7, r3, lr, ror #8 - 1b80: 20646e61 rsbcs r6, r4, r1, ror #28 - 1b84: 74746553 ldrbtvc r6, [r4], #-1363 - 1b88: 73676e69 cmnvc r7, #1680 ; 0x690 - 1b8c: 6c616d5c stclvs 13, cr6, [r1], #-368 - 1b90: 61726976 cmnvs r2, r6, ror r9 - 1b94: 20794d5c rsbscs r4, r9, ip, asr sp - 1b98: 75636f44 strbvc r6, [r3, #-3908]! - 1b9c: 746e656d strbtvc r6, [lr], #-1389 - 1ba0: 73775c73 cmnvc r7, #29440 ; 0x7300 - 1ba4: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 1ba8: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1bac: 6165575c cmnvs r5, ip, asr r7 - 1bb0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 1bb4: 61745320 cmnvs r4, r0, lsr #6 - 1bb8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1bbc: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 1bc0: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1bc4: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 1bc8: 43414d53 movtmi r4, #7507 ; 0x1d53 - 1bcc: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 1bd0: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 1bd4: 746e495c strbtvc r4, [lr], #-2396 - 1bd8: 61667265 cmnvs r6, r5, ror #4 - 1bdc: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 - 1be0: 20492d20 subcs r2, r9, r0, lsr #26 - 1be4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 1be8: 75636f44 strbvc r6, [r3, #-3908]! - 1bec: 746e656d strbtvc r6, [lr], #-1389 - 1bf0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 1bf4: 65532064 ldrbvs r2, [r3, #-100] - 1bf8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 1bfc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 1c00: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 1c04: 4d5c6172 ldfmie f6, [ip, #-456] - 1c08: 6f442079 svcvs 0x00442079 - 1c0c: 656d7563 strbvs r7, [sp, #-1379]! - 1c10: 5c73746e cfldrdpl mvd7, [r3], #-440 - 1c14: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 1c18: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 1c1c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 1c20: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 1c24: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 1c28: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 1c2c: 43206e6f teqmi r0, #1776 ; 0x6f0 - 1c30: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 1c34: 656c6c6f strbvs r6, [ip, #-3183]! - 1c38: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 - 1c3c: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} - 1c40: 66726574 undefined - 1c44: 5c656361 stclpl 3, cr6, [r5], #-388 - 1c48: 492d2022 pushmi {r1, r5, sp} - 1c4c: 3a432220 bcc 10ca4d4 - 1c50: 6f72505c svcvs 0x0072505c - 1c54: 6d617267 sfmvs f7, 2, [r1, #-412]! - 1c58: 6c694620 stclvs 6, cr4, [r9], #-128 - 1c5c: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - 1c60: 53205241 teqpl r0, #268435460 ; 0x10000004 - 1c64: 65747379 ldrbvs r7, [r4, #-889]! - 1c68: 455c736d ldrbmi r7, [ip, #-877] - 1c6c: 6465626d strbtvs r6, [r5], #-621 - 1c70: 20646564 rsbcs r6, r4, r4, ror #10 - 1c74: 6b726f57 blvs 1c9d9d8 - 1c78: 636e6562 cmnvs lr, #411041792 ; 0x18800000 - 1c7c: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} - 1c80: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ - 1c84: 74736b63 ldrbtvc r6, [r3], #-2915 - 1c88: 5c747261 lfmpl f7, 2, [r4], #-388 - 1c8c: 5c6d7261 sfmpl f7, 2, [sp], #-388 - 1c90: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 - 1c94: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 1c98: 65746e69 ldrbvs r6, [r4, #-3689]! - 1c9c: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 - 1ca0: 2d2d206b stccs 0, cr2, [sp, #-428]! - 1ca4: 5f757063 svcpl 0x00757063 - 1ca8: 65646f6d strbvs r6, [r4, #-3949]! - 1cac: 75687420 strbvc r7, [r8, #-1056]! - 1cb0: 2d20626d sfmcs f6, 4, [r0, #-436]! - 1cb4: 0000684f andeq r6, r0, pc, asr #16 - 1cb8: 445c3a43 ldrbmi r3, [ip], #-2627 - 1cbc: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1cc0: 73746e65 cmnvc r4, #1616 ; 0x650 - 1cc4: 646e6120 strbtvs r6, [lr], #-288 - 1cc8: 74655320 strbtvc r5, [r5], #-800 - 1ccc: 676e6974 undefined - 1cd0: 616d5c73 smcvs 54723 - 1cd4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 1cd8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 1cdc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 1ce0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1ce4: 775c7374 undefined - 1ce8: 6f632d73 svcvs 0x00632d73 - 1cec: 6f72746e svcvs 0x0072746e - 1cf0: 65575c6c ldrbvs r5, [r7, #-3180] - 1cf4: 65687461 strbvs r7, [r8, #-1121]! - 1cf8: 74532072 ldrbvc r2, [r3], #-114 - 1cfc: 6f697461 svcvs 0x00697461 - 1d00: 6f43206e svcvs 0x0043206e - 1d04: 6f72746e svcvs 0x0072746e - 1d08: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 1d0c: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 1d10: 4f5c6775 svcmi 0x005c6775 - 1d14: 4c5c6a62 mrrcmi 10, 6, r6, ip, cr2 - 1d18: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} - 1d1c: 00003a6f andeq r3, r0, pc, ror #20 - 1d20: 20524149 subscs r4, r2, r9, asr #2 - 1d24: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 1d28: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 1d2c: 43202b2b teqmi r0, #44032 ; 0xac00 - 1d30: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 1d34: 2072656c rsbscs r6, r2, ip, ror #10 - 1d38: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 1d3c: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} - 1d40: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} - 1d44: 33572f35 cmpcc r7, #212 ; 0xd4 - 1d48: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ - 1d4c: 54534b43 ldrbpl r4, [r3], #-2883 - 1d50: 20545241 subscs r5, r4, r1, asr #4 - 1d54: 20726f66 rsbscs r6, r2, r6, ror #30 - 1d58: 004d5241 subeq r5, sp, r1, asr #4 - 1d5c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 1d60: 75636f44 strbvc r6, [r3, #-3908]! - 1d64: 746e656d strbtvc r6, [lr], #-1389 - 1d68: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 1d6c: 65532064 ldrbvs r2, [r3, #-100] - 1d70: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 1d74: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 1d78: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 1d7c: 4d5c6172 ldfmie f6, [ip, #-456] - 1d80: 6f442079 svcvs 0x00442079 - 1d84: 656d7563 strbvs r7, [sp, #-1379]! - 1d88: 5c73746e cfldrdpl mvd7, [r3], #-440 - 1d8c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 1d90: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 1d94: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 1d98: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 1d9c: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 1da0: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 1da4: 43206e6f teqmi r0, #1776 ; 0x6f0 - 1da8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 1dac: 656c6c6f strbvs r6, [ip, #-3183]! - 1db0: 70415c72 subvc r5, r1, r2, ror ip - 1db4: 63696c70 cmnvs r9, #28672 ; 0x7000 - 1db8: 6f697461 svcvs 0x00697461 - 1dbc: 74555c6e ldrbvc r5, [r5], #-3182 - 1dc0: 74696c69 strbtvc r6, [r9], #-3177 - 1dc4: 5c736569 cfldr64pl mvdx6, [r3], #-420 - 1dc8: 7364654c cmnvc r4, #318767104 ; 0x13000000 - 1dcc: 2022632e eorcs r6, r2, lr, lsr #6 - 1dd0: 4620442d strtmi r4, [r0], -sp, lsr #8 - 1dd4: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ - 1dd8: 442d205a strtmi r2, [sp], #-90 - 1ddc: 43455320 movtmi r5, #21280 ; 0x5320 - 1de0: 54495255 strbpl r5, [r9], #-597 - 1de4: 4e455f59 mcrmi 15, 2, r5, cr5, cr9, {2} - 1de8: 454c4241 strbmi r4, [ip, #-577] - 1dec: 6c2d2044 stcvs 0, cr2, [sp], #-272 - 1df0: 43222043 teqmi r2, #67 ; 0x43 - 1df4: 6f445c3a svcvs 0x00445c3a - 1df8: 656d7563 strbvs r7, [sp, #-1379]! - 1dfc: 2073746e rsbscs r7, r3, lr, ror #8 - 1e00: 20646e61 rsbcs r6, r4, r1, ror #28 - 1e04: 74746553 ldrbtvc r6, [r4], #-1363 - 1e08: 73676e69 cmnvc r7, #1680 ; 0x690 - 1e0c: 6c616d5c stclvs 13, cr6, [r1], #-368 - 1e10: 61726976 cmnvs r2, r6, ror r9 - 1e14: 20794d5c rsbscs r4, r9, ip, asr sp - 1e18: 75636f44 strbvc r6, [r3, #-3908]! - 1e1c: 746e656d strbtvc r6, [lr], #-1389 - 1e20: 73775c73 cmnvc r7, #29440 ; 0x7300 - 1e24: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 1e28: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1e2c: 6165575c cmnvs r5, ip, asr r7 - 1e30: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 1e34: 61745320 cmnvs r4, r0, lsr #6 - 1e38: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1e3c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 1e40: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1e44: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 1e48: 75626544 strbvc r6, [r2, #-1348]! - 1e4c: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ - 1e50: 225c7473 subscs r7, ip, #1929379840 ; 0x73000000 - 1e54: 642d2d20 strtvs r2, [sp], #-3360 - 1e58: 5f676169 svcpl 0x00676169 - 1e5c: 70707573 rsbsvc r7, r0, r3, ror r5 - 1e60: 73736572 cmnvc r3, #478150656 ; 0x1c800000 - 1e64: 39655020 stmdbcc r5!, {r5, ip, lr}^ - 1e68: 502c3135 eorpl r3, ip, r5, lsr r1 - 1e6c: 31313165 teqcc r1, r5, ror #2 - 1e70: 3965502c stmdbcc r5!, {r2, r3, r5, ip, lr}^ - 1e74: 2d203034 stccs 0, cr3, [r0, #-208]! - 1e78: 4322206f teqmi r2, #111 ; 0x6f - 1e7c: 6f445c3a svcvs 0x00445c3a - 1e80: 656d7563 strbvs r7, [sp, #-1379]! - 1e84: 2073746e rsbscs r7, r3, lr, ror #8 - 1e88: 20646e61 rsbcs r6, r4, r1, ror #28 - 1e8c: 74746553 ldrbtvc r6, [r4], #-1363 - 1e90: 73676e69 cmnvc r7, #1680 ; 0x690 - 1e94: 6c616d5c stclvs 13, cr6, [r1], #-368 - 1e98: 61726976 cmnvs r2, r6, ror r9 - 1e9c: 20794d5c rsbscs r4, r9, ip, asr sp - 1ea0: 75636f44 strbvc r6, [r3, #-3908]! - 1ea4: 746e656d strbtvc r6, [lr], #-1389 - 1ea8: 73775c73 cmnvc r7, #29440 ; 0x7300 - 1eac: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 1eb0: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1eb4: 6165575c cmnvs r5, ip, asr r7 - 1eb8: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 1ebc: 61745320 cmnvs r4, r0, lsr #6 - 1ec0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 1ec4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 1ec8: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 1ecc: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 1ed0: 75626544 strbvc r6, [r2, #-1348]! - 1ed4: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 1ed8: 20225c6a eorcs r5, r2, sl, ror #24 - 1edc: 65642d2d strbvs r2, [r4, #-3373]! - 1ee0: 20677562 rsbcs r7, r7, r2, ror #10 - 1ee4: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} - 1ee8: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} - 1eec: 74696c3d strbtvc r6, [r9], #-3133 - 1ef0: 20656c74 rsbcs r6, r5, r4, ror ip - 1ef4: 70632d2d rsbvc r2, r3, sp, lsr #26 - 1ef8: 52413d75 subpl r3, r1, #7488 ; 0x1d40 - 1efc: 4454374d ldrbmi r3, [r4], #-1869 - 1f00: 532d494d teqpl sp, #1261568 ; 0x134000 - 1f04: 20652d20 rsbcs r2, r5, r0, lsr #26 - 1f08: 70662d2d rsbvc r2, r6, sp, lsr #26 - 1f0c: 6f4e3d75 svcvs 0x004e3d75 - 1f10: 2d20656e cfstr32cs mvfx6, [r0, #-440]! - 1f14: 696c642d stmdbvs ip!, {r0, r2, r3, r5, sl, sp, lr}^ - 1f18: 6f635f62 svcvs 0x00635f62 - 1f1c: 6769666e strbvs r6, [r9, -lr, ror #12]! - 1f20: 3a432220 bcc 10ca7a8 - 1f24: 6f72505c svcvs 0x0072505c - 1f28: 6d617267 sfmvs f7, 2, [r1, #-412]! - 1f2c: 6c694620 stclvs 6, cr4, [r9], #-128 - 1f30: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - 1f34: 53205241 teqpl r0, #268435460 ; 0x10000004 - 1f38: 65747379 ldrbvs r7, [r4, #-889]! - 1f3c: 455c736d ldrbmi r7, [ip, #-877] - 1f40: 6465626d strbtvs r6, [r5], #-621 - 1f44: 20646564 rsbcs r6, r4, r4, ror #10 - 1f48: 6b726f57 blvs 1c9dcac - 1f4c: 636e6562 cmnvs lr, #411041792 ; 0x18800000 - 1f50: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} - 1f54: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ - 1f58: 74736b63 ldrbtvc r6, [r3], #-2915 - 1f5c: 5c747261 lfmpl f7, 2, [r4], #-388 - 1f60: 5c6d7261 sfmpl f7, 2, [sp], #-388 - 1f64: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 - 1f68: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 1f6c: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} - 1f70: 5f676966 svcpl 0x00676966 - 1f74: 6d726f4e ldclvs 15, cr6, [r2, #-312]! - 1f78: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} - 1f7c: 492d2022 pushmi {r1, r5, sp} - 1f80: 3a432220 bcc 10ca808 - 1f84: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 1f88: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 1f8c: 61207374 teqvs r0, r4, ror r3 - 1f90: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 1f94: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 1f98: 5c73676e ldclpl 7, cr6, [r3], #-440 - 1f9c: 766c616d strbtvc r6, [ip], -sp, ror #2 - 1fa0: 5c617269 sfmpl f7, 2, [r1], #-420 - 1fa4: 4420794d strtmi r7, [r0], #-2381 - 1fa8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1fac: 73746e65 cmnvc r4, #1616 ; 0x650 - 1fb0: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 1fb4: 746e6f63 strbtvc r6, [lr], #-3939 - 1fb8: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 1fbc: 74616557 strbtvc r6, [r1], #-1367 - 1fc0: 20726568 rsbscs r6, r2, r8, ror #10 - 1fc4: 74617453 strbtvc r7, [r1], #-1107 - 1fc8: 206e6f69 rsbcs r6, lr, r9, ror #30 - 1fcc: 746e6f43 strbtvc r6, [lr], #-3907 - 1fd0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 1fd4: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 1fd8: 5c43414d stfple f4, [r3], {77} - 1fdc: 76697244 strbtvc r7, [r9], -r4, asr #4 - 1fe0: 5c737265 lfmpl f7, 2, [r3], #-404 - 1fe4: 65746e49 ldrbvs r6, [r4, #-3657]! - 1fe8: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 1fec: 20225c65 eorcs r5, r2, r5, ror #24 - 1ff0: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 1ff4: 445c3a43 ldrbmi r3, [ip], #-2627 - 1ff8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 1ffc: 73746e65 cmnvc r4, #1616 ; 0x650 - 2000: 646e6120 strbtvs r6, [lr], #-288 - 2004: 74655320 strbtvc r5, [r5], #-800 - 2008: 676e6974 undefined - 200c: 616d5c73 smcvs 54723 - 2010: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2014: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2018: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 201c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2020: 775c7374 undefined - 2024: 6f632d73 svcvs 0x00632d73 - 2028: 6f72746e svcvs 0x0072746e - 202c: 65575c6c ldrbvs r5, [r7, #-3180] - 2030: 65687461 strbvs r7, [r8, #-1121]! - 2034: 74532072 ldrbvc r2, [r3], #-114 - 2038: 6f697461 svcvs 0x00697461 - 203c: 6f43206e svcvs 0x0043206e - 2040: 6f72746e svcvs 0x0072746e - 2044: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2048: 4d4c505c stclmi 0, cr5, [ip, #-368] - 204c: 746e495c strbtvc r4, [lr], #-2396 - 2050: 61667265 cmnvs r6, r5, ror #4 - 2054: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 - 2058: 20492d20 subcs r2, r9, r0, lsr #26 - 205c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 2060: 676f7250 undefined - 2064: 206d6172 rsbcs r6, sp, r2, ror r1 - 2068: 656c6946 strbvs r6, [ip, #-2374]! - 206c: 41495c73 cmpmi r9, r3, ror ip - 2070: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ - 2074: 6d657473 cfstrdvs mvd7, [r5, #-460]! - 2078: 6d455c73 stclvs 12, cr5, [r5, #-460] - 207c: 64646562 strbtvs r6, [r4], #-1378 - 2080: 57206465 strpl r6, [r0, -r5, ror #8]! - 2084: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 - 2088: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 208c: 342e3520 strtcc r3, [lr], #-1312 - 2090: 63694b20 cmnvs r9, #32768 ; 0x8000 - 2094: 6174736b cmnvs r4, fp, ror #6 - 2098: 615c7472 cmpvs ip, r2, ror r4 - 209c: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - 20a0: 225c434e subscs r4, ip, #939524097 ; 0x38000001 - 20a4: 692d2d20 pushvs {r5, r8, sl, fp, sp} - 20a8: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 20ac: 6b726f77 blvs 1c9de90 - 20b0: 632d2d20 teqvs sp, #2048 ; 0x800 - 20b4: 6d5f7570 cfldr64vs mvdx7, [pc, #-448] - 20b8: 2065646f rsbcs r6, r5, pc, ror #8 - 20bc: 6d756874 ldclvs 8, cr6, [r5, #-464]! - 20c0: 4f2d2062 svcmi 0x002d2062 - 20c4: 43000068 movwmi r0, #104 ; 0x68 - 20c8: 6f445c3a svcvs 0x00445c3a - 20cc: 656d7563 strbvs r7, [sp, #-1379]! - 20d0: 2073746e rsbscs r7, r3, lr, ror #8 - 20d4: 20646e61 rsbcs r6, r4, r1, ror #28 - 20d8: 74746553 ldrbtvc r6, [r4], #-1363 - 20dc: 73676e69 cmnvc r7, #1680 ; 0x690 - 20e0: 6c616d5c stclvs 13, cr6, [r1], #-368 - 20e4: 61726976 cmnvs r2, r6, ror r9 - 20e8: 20794d5c rsbscs r4, r9, ip, asr sp - 20ec: 75636f44 strbvc r6, [r3, #-3908]! - 20f0: 746e656d strbtvc r6, [lr], #-1389 - 20f4: 73775c73 cmnvc r7, #29440 ; 0x7300 - 20f8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 20fc: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2100: 6165575c cmnvs r5, ip, asr r7 - 2104: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 2108: 61745320 cmnvs r4, r0, lsr #6 - 210c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2110: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 2114: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2118: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 211c: 75626544 strbvc r6, [r2, #-1348]! - 2120: 624f5c67 subvs r5, pc, #26368 ; 0x6700 - 2124: 614d5c6a cmpvs sp, sl, ror #24 - 2128: 6e496163 dvfvsez f6, f1, f3 - 212c: 72726574 rsbsvc r6, r2, #486539264 ; 0x1d000000 - 2130: 2e747075 mrccs 0, 3, r7, cr4, cr5, {3} - 2134: 00003a6f andeq r3, r0, pc, ror #20 - 2138: 20524149 subscs r4, r2, r9, asr #2 - 213c: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 2140: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 2144: 43202b2b teqmi r0, #44032 ; 0xac00 - 2148: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 214c: 2072656c rsbscs r6, r2, ip, ror #10 - 2150: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 2154: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} - 2158: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} - 215c: 33572f35 cmpcc r7, #212 ; 0xd4 - 2160: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ - 2164: 54534b43 ldrbpl r4, [r3], #-2883 - 2168: 20545241 subscs r5, r4, r1, asr #4 - 216c: 20726f66 rsbscs r6, r2, r6, ror #30 - 2170: 004d5241 subeq r5, sp, r1, asr #4 - 2174: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 2178: 75636f44 strbvc r6, [r3, #-3908]! - 217c: 746e656d strbtvc r6, [lr], #-1389 - 2180: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 2184: 65532064 ldrbvs r2, [r3, #-100] - 2188: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 218c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 2190: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 2194: 4d5c6172 ldfmie f6, [ip, #-456] - 2198: 6f442079 svcvs 0x00442079 - 219c: 656d7563 strbvs r7, [sp, #-1379]! - 21a0: 5c73746e cfldrdpl mvd7, [r3], #-440 - 21a4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 21a8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 21ac: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 21b0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 21b4: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 21b8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 21bc: 43206e6f teqmi r0, #1776 ; 0x6f0 - 21c0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 21c4: 656c6c6f strbvs r6, [ip, #-3183]! - 21c8: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 21cc: 445c4341 ldrbmi r4, [ip], #-833 - 21d0: 65766972 ldrbvs r6, [r6, #-2418]! - 21d4: 535c7372 cmppl ip, #-939524095 ; 0xc8000001 - 21d8: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 - 21dc: 614d5c65 cmpvs sp, r5, ror #24 - 21e0: 6e496163 dvfvsez f6, f1, f3 - 21e4: 72726574 rsbsvc r6, r2, #486539264 ; 0x1d000000 - 21e8: 2e747075 mrccs 0, 3, r7, cr4, cr5, {3} - 21ec: 2d202263 sfmcs f2, 4, [r0, #-396]! - 21f0: 32462044 subcc r2, r6, #68 ; 0x44 - 21f4: 5a484d34 bpl 12156cc - 21f8: 20442d20 subcs r2, r4, r0, lsr #26 - 21fc: 55434553 strbpl r4, [r3, #-1363] - 2200: 59544952 ldmdbpl r4, {r1, r4, r6, r8, fp, lr}^ - 2204: 414e455f cmpmi lr, pc, asr r5 - 2208: 44454c42 strbmi r4, [r5], #-3138 - 220c: 436c2d20 cmnmi ip, #2048 ; 0x800 - 2210: 3a432220 bcc 10caa98 - 2214: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 2218: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 221c: 61207374 teqvs r0, r4, ror r3 - 2220: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 2224: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 2228: 5c73676e ldclpl 7, cr6, [r3], #-440 - 222c: 766c616d strbtvc r6, [ip], -sp, ror #2 - 2230: 5c617269 sfmpl f7, 2, [r1], #-420 - 2234: 4420794d strtmi r7, [r0], #-2381 - 2238: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 223c: 73746e65 cmnvc r4, #1616 ; 0x650 - 2240: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 2244: 746e6f63 strbtvc r6, [lr], #-3939 - 2248: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 224c: 74616557 strbtvc r6, [r1], #-1367 - 2250: 20726568 rsbscs r6, r2, r8, ror #10 - 2254: 74617453 strbtvc r7, [r1], #-1107 - 2258: 206e6f69 rsbcs r6, lr, r9, ror #30 - 225c: 746e6f43 strbtvc r6, [lr], #-3907 - 2260: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 2264: 445c7265 ldrbmi r7, [ip], #-613 - 2268: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 226c: 73694c5c cmnvc r9, #23552 ; 0x5c00 - 2270: 20225c74 eorcs r5, r2, r4, ror ip - 2274: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ - 2278: 735f6761 cmpvc pc, #25427968 ; 0x1840000 - 227c: 72707075 rsbsvc r7, r0, #117 ; 0x75 - 2280: 20737365 rsbscs r7, r3, r5, ror #6 - 2284: 35396550 ldrcc r6, [r9, #-1360]! - 2288: 65502c31 ldrbvs r2, [r0, #-3121] - 228c: 2c313131 ldfcss f3, [r1], #-196 - 2290: 34396550 ldrtcc r6, [r9], #-1360 - 2294: 6f2d2030 svcvs 0x002d2030 - 2298: 3a432220 bcc 10cab20 - 229c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 22a0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 22a4: 61207374 teqvs r0, r4, ror r3 - 22a8: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 22ac: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 22b0: 5c73676e ldclpl 7, cr6, [r3], #-440 - 22b4: 766c616d strbtvc r6, [ip], -sp, ror #2 - 22b8: 5c617269 sfmpl f7, 2, [r1], #-420 - 22bc: 4420794d strtmi r7, [r0], #-2381 - 22c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 22c4: 73746e65 cmnvc r4, #1616 ; 0x650 - 22c8: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 22cc: 746e6f63 strbtvc r6, [lr], #-3939 - 22d0: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 22d4: 74616557 strbtvc r6, [r1], #-1367 - 22d8: 20726568 rsbscs r6, r2, r8, ror #10 - 22dc: 74617453 strbtvc r7, [r1], #-1107 - 22e0: 206e6f69 rsbcs r6, lr, r9, ror #30 - 22e4: 746e6f43 strbtvc r6, [lr], #-3907 - 22e8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 22ec: 445c7265 ldrbmi r7, [ip], #-613 - 22f0: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 22f4: 6a624f5c bvs 189606c - 22f8: 2d20225c sfmcs f2, 4, [r0, #-368]! - 22fc: 6265642d rsbvs r6, r5, #754974720 ; 0x2d000000 - 2300: 2d206775 stccs 7, cr6, [r0, #-468]! - 2304: 646e652d strbtvs r6, [lr], #-1325 - 2308: 3d6e6169 stfcce f6, [lr, #-420]! - 230c: 7474696c ldrbtvc r6, [r4], #-2412 - 2310: 2d20656c cfstr32cs mvfx6, [r0, #-432]! - 2314: 7570632d ldrbvc r6, [r0, #-813]! - 2318: 4d52413d ldfmie f4, [r2, #-244] - 231c: 4d445437 cfstrdmi mvd5, [r4, #-220] - 2320: 20532d49 subscs r2, r3, r9, asr #26 - 2324: 2d20652d cfstr32cs mvfx6, [r0, #-180]! - 2328: 7570662d ldrbvc r6, [r0, #-1581]! - 232c: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} - 2330: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 2334: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 - 2338: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} - 233c: 20676966 rsbcs r6, r7, r6, ror #18 - 2340: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 2344: 676f7250 undefined - 2348: 206d6172 rsbcs r6, sp, r2, ror r1 - 234c: 656c6946 strbvs r6, [ip, #-2374]! - 2350: 41495c73 cmpmi r9, r3, ror ip - 2354: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ - 2358: 6d657473 cfstrdvs mvd7, [r5, #-460]! - 235c: 6d455c73 stclvs 12, cr5, [r5, #-460] - 2360: 64646562 strbtvs r6, [r4], #-1378 - 2364: 57206465 strpl r6, [r0, -r5, ror #8]! - 2368: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 - 236c: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 2370: 342e3520 strtcc r3, [lr], #-1312 - 2374: 63694b20 cmnvs r9, #32768 ; 0x8000 - 2378: 6174736b cmnvs r4, fp, ror #6 - 237c: 615c7472 cmpvs ip, r2, ror r4 - 2380: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - 2384: 445c434e ldrbmi r4, [ip], #-846 - 2388: 5f62694c svcpl 0x0062694c - 238c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 2390: 4e5f6769 cdpmi 7, 5, cr6, cr15, cr9, {3} - 2394: 616d726f cmnvs sp, pc, ror #4 - 2398: 22682e6c rsbcs r2, r8, #1728 ; 0x6c0 - 239c: 20492d20 subcs r2, r9, r0, lsr #26 - 23a0: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 23a4: 75636f44 strbvc r6, [r3, #-3908]! - 23a8: 746e656d strbtvc r6, [lr], #-1389 - 23ac: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 23b0: 65532064 ldrbvs r2, [r3, #-100] - 23b4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 23b8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 23bc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 23c0: 4d5c6172 ldfmie f6, [ip, #-456] - 23c4: 6f442079 svcvs 0x00442079 - 23c8: 656d7563 strbvs r7, [sp, #-1379]! - 23cc: 5c73746e cfldrdpl mvd7, [r3], #-440 - 23d0: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 23d4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 23d8: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 23dc: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 23e0: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 23e4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 23e8: 43206e6f teqmi r0, #1776 ; 0x6f0 - 23ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 23f0: 656c6c6f strbvs r6, [ip, #-3183]! - 23f4: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 23f8: 445c4341 ldrbmi r4, [ip], #-833 - 23fc: 65766972 ldrbvs r6, [r6, #-2418]! - 2400: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ - 2404: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 2408: 65636166 strbvs r6, [r3, #-358]! - 240c: 2d20225c sfmcs f2, 4, [r0, #-368]! - 2410: 43222049 teqmi r2, #73 ; 0x49 - 2414: 6f445c3a svcvs 0x00445c3a - 2418: 656d7563 strbvs r7, [sp, #-1379]! - 241c: 2073746e rsbscs r7, r3, lr, ror #8 - 2420: 20646e61 rsbcs r6, r4, r1, ror #28 - 2424: 74746553 ldrbtvc r6, [r4], #-1363 - 2428: 73676e69 cmnvc r7, #1680 ; 0x690 - 242c: 6c616d5c stclvs 13, cr6, [r1], #-368 - 2430: 61726976 cmnvs r2, r6, ror r9 - 2434: 20794d5c rsbscs r4, r9, ip, asr sp - 2438: 75636f44 strbvc r6, [r3, #-3908]! - 243c: 746e656d strbtvc r6, [lr], #-1389 - 2440: 73775c73 cmnvc r7, #29440 ; 0x7300 - 2444: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 2448: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 244c: 6165575c cmnvs r5, ip, asr r7 - 2450: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 2454: 61745320 cmnvs r4, r0, lsr #6 - 2458: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 245c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 2460: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2464: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 2468: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 - 246c: 65746e49 ldrbvs r6, [r4, #-3657]! - 2470: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 2474: 20225c65 eorcs r5, r2, r5, ror #24 - 2478: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 247c: 505c3a43 subspl r3, ip, r3, asr #20 - 2480: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 - 2484: 46206d61 strtmi r6, [r0], -r1, ror #26 - 2488: 73656c69 cmnvc r5, #26880 ; 0x6900 - 248c: 5241495c subpl r4, r1, #1507328 ; 0x170000 - 2490: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 - 2494: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 - 2498: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 - 249c: 65646465 strbvs r6, [r4, #-1125]! - 24a0: 6f572064 svcvs 0x00572064 - 24a4: 65626b72 strbvs r6, [r2, #-2930]! - 24a8: 2068636e rsbcs r6, r8, lr, ror #6 - 24ac: 20342e35 eorscs r2, r4, r5, lsr lr - 24b0: 6b63694b blvs 18dc9e4 - 24b4: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - 24b8: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 - 24bc: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} - 24c0: 20225c43 eorcs r5, r2, r3, asr #24 - 24c4: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} - 24c8: 77726574 undefined - 24cc: 206b726f rsbcs r7, fp, pc, ror #4 - 24d0: 70632d2d rsbvc r2, r3, sp, lsr #26 - 24d4: 6f6d5f75 svcvs 0x006d5f75 - 24d8: 74206564 strtvc r6, [r0], #-1380 - 24dc: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 - 24e0: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ - 24e4: 3a430000 bcc 10c24ec - 24e8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 24ec: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 24f0: 61207374 teqvs r0, r4, ror r3 - 24f4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 24f8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 24fc: 5c73676e ldclpl 7, cr6, [r3], #-440 - 2500: 766c616d strbtvc r6, [ip], -sp, ror #2 - 2504: 5c617269 sfmpl f7, 2, [r1], #-420 - 2508: 4420794d strtmi r7, [r0], #-2381 - 250c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2510: 73746e65 cmnvc r4, #1616 ; 0x650 - 2514: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 2518: 746e6f63 strbtvc r6, [lr], #-3939 - 251c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 2520: 74616557 strbtvc r6, [r1], #-1367 - 2524: 20726568 rsbscs r6, r2, r8, ror #10 - 2528: 74617453 strbtvc r7, [r1], #-1107 - 252c: 206e6f69 rsbcs r6, lr, r9, ror #30 - 2530: 746e6f43 strbtvc r6, [lr], #-3907 - 2534: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 2538: 445c7265 ldrbmi r7, [ip], #-613 - 253c: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 2540: 6a624f5c bvs 18962b8 - 2544: 616c505c qdsubvs r5, ip, ip - 2548: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 - 254c: 696e496d stmdbvs lr!, {r0, r2, r3, r5, r6, r8, fp, lr}^ - 2550: 3a6f2e74 bcc 1bcdf28 - 2554: 41490000 cmpmi r9, r0 - 2558: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 255c: 43204953 teqmi r0, #1359872 ; 0x14c000 - 2560: 2b2b432f blcs ad3224 - 2564: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 2568: 656c6970 strbvs r6, [ip, #-2416]! - 256c: 35562072 ldrbcc r2, [r6, #-114] - 2570: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 2574: 31332e32 teqcc r3, r2, lsr lr - 2578: 2f353932 svccs 0x00353932 - 257c: 20323357 eorscs r3, r2, r7, asr r3 - 2580: 4b43494b blmi 10d4ab4 - 2584: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 2588: 6f662054 svcvs 0x00662054 - 258c: 52412072 subpl r2, r1, #114 ; 0x72 - 2590: 4322004d teqmi r2, #77 ; 0x4d - 2594: 6f445c3a svcvs 0x00445c3a - 2598: 656d7563 strbvs r7, [sp, #-1379]! - 259c: 2073746e rsbscs r7, r3, lr, ror #8 - 25a0: 20646e61 rsbcs r6, r4, r1, ror #28 - 25a4: 74746553 ldrbtvc r6, [r4], #-1363 - 25a8: 73676e69 cmnvc r7, #1680 ; 0x690 - 25ac: 6c616d5c stclvs 13, cr6, [r1], #-368 - 25b0: 61726976 cmnvs r2, r6, ror r9 - 25b4: 20794d5c rsbscs r4, r9, ip, asr sp - 25b8: 75636f44 strbvc r6, [r3, #-3908]! - 25bc: 746e656d strbtvc r6, [lr], #-1389 - 25c0: 73775c73 cmnvc r7, #29440 ; 0x7300 - 25c4: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 25c8: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 25cc: 6165575c cmnvs r5, ip, asr r7 - 25d0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 25d4: 61745320 cmnvs r4, r0, lsr #6 - 25d8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 25dc: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 25e0: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 25e4: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 25e8: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 - 25ec: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 25f0: 435c6563 cmpmi ip, #415236096 ; 0x18c00000 - 25f4: 6f6d6d6f svcvs 0x006d6d6f - 25f8: 79535c6e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, fp, ip, lr}^ - 25fc: 6c505c73 mrrcvs 12, 7, r5, r0, cr3 - 2600: 6f667461 svcvs 0x00667461 - 2604: 6e496d72 mcrvs 13, 2, r6, cr9, cr2, {3} - 2608: 632e7469 teqvs lr, #1761607680 ; 0x69000000 - 260c: 442d2022 strtmi r2, [sp], #-34 - 2610: 34324620 ldrtcc r4, [r2], #-1568 - 2614: 205a484d subscs r4, sl, sp, asr #16 - 2618: 5320442d teqpl r0, #754974720 ; 0x2d000000 - 261c: 52554345 subspl r4, r5, #335544321 ; 0x14000001 - 2620: 5f595449 svcpl 0x00595449 - 2624: 42414e45 submi r4, r1, #1104 ; 0x450 - 2628: 2044454c subcs r4, r4, ip, asr #10 - 262c: 20436c2d subcs r6, r3, sp, lsr #24 - 2630: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 2634: 75636f44 strbvc r6, [r3, #-3908]! - 2638: 746e656d strbtvc r6, [lr], #-1389 - 263c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 2640: 65532064 ldrbvs r2, [r3, #-100] - 2644: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 2648: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 264c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 2650: 4d5c6172 ldfmie f6, [ip, #-456] - 2654: 6f442079 svcvs 0x00442079 - 2658: 656d7563 strbvs r7, [sp, #-1379]! - 265c: 5c73746e cfldrdpl mvd7, [r3], #-440 - 2660: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 2664: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2668: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 266c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 2670: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 2674: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 2678: 43206e6f teqmi r0, #1776 ; 0x6f0 - 267c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2680: 656c6c6f strbvs r6, [ip, #-3183]! - 2684: 65445c72 strbvs r5, [r4, #-3186] - 2688: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 268c: 7473694c ldrbtvc r6, [r3], #-2380 - 2690: 2d20225c sfmcs f2, 4, [r0, #-368]! - 2694: 6169642d cmnvs r9, sp, lsr #8 - 2698: 75735f67 ldrbvc r5, [r3, #-3943]! - 269c: 65727070 ldrbvs r7, [r2, #-112]! - 26a0: 50207373 eorpl r7, r0, r3, ror r3 - 26a4: 31353965 teqcc r5, r5, ror #18 - 26a8: 3165502c cmncc r5, ip, lsr #32 - 26ac: 502c3131 eorpl r3, ip, r1, lsr r1 - 26b0: 30343965 eorscc r3, r4, r5, ror #18 - 26b4: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 26b8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 26bc: 75636f44 strbvc r6, [r3, #-3908]! - 26c0: 746e656d strbtvc r6, [lr], #-1389 - 26c4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 26c8: 65532064 ldrbvs r2, [r3, #-100] - 26cc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 26d0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 26d4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 26d8: 4d5c6172 ldfmie f6, [ip, #-456] - 26dc: 6f442079 svcvs 0x00442079 - 26e0: 656d7563 strbvs r7, [sp, #-1379]! - 26e4: 5c73746e cfldrdpl mvd7, [r3], #-440 - 26e8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 26ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 26f0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 26f4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 26f8: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 26fc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 2700: 43206e6f teqmi r0, #1776 ; 0x6f0 - 2704: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2708: 656c6c6f strbvs r6, [ip, #-3183]! - 270c: 65445c72 strbvs r5, [r4, #-3186] - 2710: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 2714: 5c6a624f sfmpl f6, 2, [sl], #-316 - 2718: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 271c: 75626564 strbvc r6, [r2, #-1380]! - 2720: 2d2d2067 stccs 0, cr2, [sp, #-412]! - 2724: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 2728: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 - 272c: 6c747469 cfldrdvs mvd7, [r4], #-420 - 2730: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 2734: 3d757063 ldclcc 0, cr7, [r5, #-396]! - 2738: 374d5241 strbcc r5, [sp, -r1, asr #4] - 273c: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ - 2740: 2d20532d stccs 3, cr5, [r0, #-180]! - 2744: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 2748: 3d757066 ldclcc 0, cr7, [r5, #-408]! - 274c: 656e6f4e strbvs r6, [lr, #-3918]! - 2750: 642d2d20 strtvs r2, [sp], #-3360 - 2754: 5f62696c svcpl 0x0062696c - 2758: 666e6f63 strbtvs r6, [lr], -r3, ror #30 - 275c: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 - 2760: 505c3a43 subspl r3, ip, r3, asr #20 - 2764: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 - 2768: 46206d61 strtmi r6, [r0], -r1, ror #26 - 276c: 73656c69 cmnvc r5, #26880 ; 0x6900 - 2770: 5241495c subpl r4, r1, #1507328 ; 0x170000 - 2774: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 - 2778: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 - 277c: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 - 2780: 65646465 strbvs r6, [r4, #-1125]! - 2784: 6f572064 svcvs 0x00572064 - 2788: 65626b72 strbvs r6, [r2, #-2930]! - 278c: 2068636e rsbcs r6, r8, lr, ror #6 - 2790: 20342e35 eorscs r2, r4, r5, lsr lr - 2794: 6b63694b blvs 18dccc8 - 2798: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - 279c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 - 27a0: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} - 27a4: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 - 27a8: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 - 27ac: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 27b0: 6f4e5f67 svcvs 0x004e5f67 - 27b4: 6c616d72 stclvs 13, cr6, [r1], #-456 - 27b8: 2022682e eorcs r6, r2, lr, lsr #16 - 27bc: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 27c0: 445c3a43 ldrbmi r3, [ip], #-2627 - 27c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 27c8: 73746e65 cmnvc r4, #1616 ; 0x650 - 27cc: 646e6120 strbtvs r6, [lr], #-288 - 27d0: 74655320 strbtvc r5, [r5], #-800 - 27d4: 676e6974 undefined - 27d8: 616d5c73 smcvs 54723 - 27dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 27e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 27e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 27e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 27ec: 775c7374 undefined - 27f0: 6f632d73 svcvs 0x00632d73 - 27f4: 6f72746e svcvs 0x0072746e - 27f8: 65575c6c ldrbvs r5, [r7, #-3180] - 27fc: 65687461 strbvs r7, [r8, #-1121]! - 2800: 74532072 ldrbvc r2, [r3], #-114 - 2804: 6f697461 svcvs 0x00697461 - 2808: 6f43206e svcvs 0x0043206e - 280c: 6f72746e svcvs 0x0072746e - 2810: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2814: 414d535c cmpmi sp, ip, asr r3 - 2818: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 281c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 2820: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 2824: 66726574 undefined - 2828: 5c656361 stclpl 3, cr6, [r5], #-388 - 282c: 492d2022 pushmi {r1, r5, sp} - 2830: 3a432220 bcc 10cb0b8 - 2834: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 2838: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 283c: 61207374 teqvs r0, r4, ror r3 - 2840: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 2844: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 2848: 5c73676e ldclpl 7, cr6, [r3], #-440 - 284c: 766c616d strbtvc r6, [ip], -sp, ror #2 - 2850: 5c617269 sfmpl f7, 2, [r1], #-420 - 2854: 4420794d strtmi r7, [r0], #-2381 - 2858: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 285c: 73746e65 cmnvc r4, #1616 ; 0x650 - 2860: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 2864: 746e6f63 strbtvc r6, [lr], #-3939 - 2868: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 286c: 74616557 strbtvc r6, [r1], #-1367 - 2870: 20726568 rsbscs r6, r2, r8, ror #10 - 2874: 74617453 strbtvc r7, [r1], #-1107 - 2878: 206e6f69 rsbcs r6, lr, r9, ror #30 - 287c: 746e6f43 strbtvc r6, [lr], #-3907 - 2880: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 2884: 505c7265 subspl r7, ip, r5, ror #4 - 2888: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ - 288c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 2890: 65636166 strbvs r6, [r3, #-358]! - 2894: 2d20225c sfmcs f2, 4, [r0, #-368]! - 2898: 43222049 teqmi r2, #73 ; 0x49 - 289c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 - 28a0: 6172676f cmnvs r2, pc, ror #14 - 28a4: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ - 28a8: 5c73656c cfldr64pl mvdx6, [r3], #-432 - 28ac: 20524149 subscs r4, r2, r9, asr #2 - 28b0: 74737953 ldrbtvc r7, [r3], #-2387 - 28b4: 5c736d65 ldclpl 13, cr6, [r3], #-404 - 28b8: 65626d45 strbvs r6, [r2, #-3397]! - 28bc: 64656464 strbtvs r6, [r5], #-1124 - 28c0: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 - 28c4: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} - 28c8: 35206863 strcc r6, [r0, #-2147]! - 28cc: 4b20342e blmi 80f98c - 28d0: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 - 28d4: 74726174 ldrbtvc r6, [r2], #-372 - 28d8: 6d72615c ldfvse f6, [r2, #-368]! - 28dc: 434e495c movtmi r4, #59740 ; 0xe95c - 28e0: 2d20225c sfmcs f2, 4, [r0, #-368]! - 28e4: 746e692d strbtvc r6, [lr], #-2349 - 28e8: 6f777265 svcvs 0x00777265 - 28ec: 2d206b72 vstmdbcs r0!, {d6-} - 28f0: 7570632d ldrbvc r6, [r0, #-813]! - 28f4: 646f6d5f strbtvs r6, [pc], #3423 ; 28fc <__USR_stack_size+0x20fc> - 28f8: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ - 28fc: 20626d75 rsbcs r6, r2, r5, ror sp - 2900: 00684f2d rsbeq r4, r8, sp, lsr #30 - 2904: 5c3a4300 ldcpl 3, cr4, [sl] - 2908: 75636f44 strbvc r6, [r3, #-3908]! - 290c: 746e656d strbtvc r6, [lr], #-1389 - 2910: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 2914: 65532064 ldrbvs r2, [r3, #-100] - 2918: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 291c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 2920: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 2924: 4d5c6172 ldfmie f6, [ip, #-456] - 2928: 6f442079 svcvs 0x00442079 - 292c: 656d7563 strbvs r7, [sp, #-1379]! - 2930: 5c73746e cfldrdpl mvd7, [r3], #-440 - 2934: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 2938: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 293c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 2940: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 2944: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 2948: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 294c: 43206e6f teqmi r0, #1776 ; 0x6f0 - 2950: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2954: 656c6c6f strbvs r6, [ip, #-3183]! - 2958: 65445c72 strbvs r5, [r4, #-3186] - 295c: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 2960: 5c6a624f sfmpl f6, 2, [sl], #-316 - 2964: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 2968: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} - 296c: 6d656761 stclvs 7, cr6, [r5, #-388]! - 2970: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} - 2974: 00003a6f andeq r3, r0, pc, ror #20 - 2978: 20524149 subscs r4, r2, r9, asr #2 - 297c: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 2980: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 2984: 43202b2b teqmi r0, #44032 ; 0xac00 - 2988: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 298c: 2072656c rsbscs r6, r2, ip, ror #10 - 2990: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 2994: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} - 2998: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} - 299c: 33572f35 cmpcc r7, #212 ; 0xd4 - 29a0: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ - 29a4: 54534b43 ldrbpl r4, [r3], #-2883 - 29a8: 20545241 subscs r5, r4, r1, asr #4 - 29ac: 20726f66 rsbscs r6, r2, r6, ror #30 - 29b0: 004d5241 subeq r5, sp, r1, asr #4 - 29b4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 29b8: 75636f44 strbvc r6, [r3, #-3908]! - 29bc: 746e656d strbtvc r6, [lr], #-1389 - 29c0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 29c4: 65532064 ldrbvs r2, [r3, #-100] - 29c8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 29cc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 29d0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 29d4: 4d5c6172 ldfmie f6, [ip, #-456] - 29d8: 6f442079 svcvs 0x00442079 - 29dc: 656d7563 strbvs r7, [sp, #-1379]! - 29e0: 5c73746e cfldrdpl mvd7, [r3], #-440 - 29e4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 29e8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 29ec: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 29f0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 29f4: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 29f8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 29fc: 43206e6f teqmi r0, #1776 ; 0x6f0 - 2a00: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2a04: 656c6c6f strbvs r6, [ip, #-3183]! - 2a08: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 2a0c: 535c4341 cmppl ip, #67108865 ; 0x4000001 - 2a10: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 - 2a14: 61525c65 cmpvs r2, r5, ror #24 - 2a18: 4d6f6964 stclmi 9, cr6, [pc, #-400]! - 2a1c: 67616e61 strbvs r6, [r1, -r1, ror #28]! - 2a20: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} - 2a24: 22632e74 rsbcs r2, r3, #1856 ; 0x740 - 2a28: 20442d20 subcs r2, r4, r0, lsr #26 - 2a2c: 4d343246 lfmmi f3, 4, [r4, #-280]! - 2a30: 2d205a48 fstmdbscs r0!, {s10-s81} - 2a34: 45532044 ldrbmi r2, [r3, #-68] - 2a38: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ - 2a3c: 455f5954 ldrbmi r5, [pc, #-2388] ; 20f0 <__USR_stack_size+0x18f0> - 2a40: 4c42414e stfmie f4, [r2], {78} - 2a44: 2d204445 cfstrscs mvf4, [r0, #-276]! - 2a48: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 - 2a4c: 445c3a43 ldrbmi r3, [ip], #-2627 - 2a50: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2a54: 73746e65 cmnvc r4, #1616 ; 0x650 - 2a58: 646e6120 strbtvs r6, [lr], #-288 - 2a5c: 74655320 strbtvc r5, [r5], #-800 - 2a60: 676e6974 undefined - 2a64: 616d5c73 smcvs 54723 - 2a68: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2a6c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2a70: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2a74: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2a78: 775c7374 undefined - 2a7c: 6f632d73 svcvs 0x00632d73 - 2a80: 6f72746e svcvs 0x0072746e - 2a84: 65575c6c ldrbvs r5, [r7, #-3180] - 2a88: 65687461 strbvs r7, [r8, #-1121]! - 2a8c: 74532072 ldrbvc r2, [r3], #-114 - 2a90: 6f697461 svcvs 0x00697461 - 2a94: 6f43206e svcvs 0x0043206e - 2a98: 6f72746e svcvs 0x0072746e - 2a9c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2aa0: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 2aa4: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 - 2aa8: 5c747369 ldclpl 3, cr7, [r4], #-420 - 2aac: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 2ab0: 67616964 strbvs r6, [r1, -r4, ror #18]! - 2ab4: 7075735f rsbsvc r7, r5, pc, asr r3 - 2ab8: 73657270 cmnvc r5, #7 ; 0x7 - 2abc: 65502073 ldrbvs r2, [r0, #-115] - 2ac0: 2c313539 cfldr32cs mvfx3, [r1], #-228 - 2ac4: 31316550 teqcc r1, r0, asr r5 - 2ac8: 65502c31 ldrbvs r2, [r0, #-3121] - 2acc: 20303439 eorscs r3, r0, r9, lsr r4 - 2ad0: 22206f2d eorcs r6, r0, #180 ; 0xb4 - 2ad4: 445c3a43 ldrbmi r3, [ip], #-2627 - 2ad8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2adc: 73746e65 cmnvc r4, #1616 ; 0x650 - 2ae0: 646e6120 strbtvs r6, [lr], #-288 - 2ae4: 74655320 strbtvc r5, [r5], #-800 - 2ae8: 676e6974 undefined - 2aec: 616d5c73 smcvs 54723 - 2af0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2af4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2af8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2afc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2b00: 775c7374 undefined - 2b04: 6f632d73 svcvs 0x00632d73 - 2b08: 6f72746e svcvs 0x0072746e - 2b0c: 65575c6c ldrbvs r5, [r7, #-3180] - 2b10: 65687461 strbvs r7, [r8, #-1121]! - 2b14: 74532072 ldrbvc r2, [r3], #-114 - 2b18: 6f697461 svcvs 0x00697461 - 2b1c: 6f43206e svcvs 0x0043206e - 2b20: 6f72746e svcvs 0x0072746e - 2b24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2b28: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 2b2c: 4f5c6775 svcmi 0x005c6775 - 2b30: 225c6a62 subscs r6, ip, #401408 ; 0x62000 - 2b34: 642d2d20 strtvs r2, [sp], #-3360 - 2b38: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 2b3c: 652d2d20 strvs r2, [sp, #-3360]! - 2b40: 6169646e cmnvs r9, lr, ror #8 - 2b44: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ - 2b48: 656c7474 strbvs r7, [ip, #-1140]! - 2b4c: 632d2d20 teqvs sp, #2048 ; 0x800 - 2b50: 413d7570 teqmi sp, r0, ror r5 - 2b54: 54374d52 ldrtpl r4, [r7], #-3410 - 2b58: 2d494d44 stclcs 13, cr4, [r9, #-272] - 2b5c: 652d2053 strvs r2, [sp, #-83]! - 2b60: 662d2d20 strtvs r2, [sp], -r0, lsr #26 - 2b64: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} - 2b68: 20656e6f rsbcs r6, r5, pc, ror #28 - 2b6c: 6c642d2d stclvs 13, cr2, [r4], #-180 - 2b70: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 - 2b74: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 2b78: 43222067 teqmi r2, #103 ; 0x67 - 2b7c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 - 2b80: 6172676f cmnvs r2, pc, ror #14 - 2b84: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ - 2b88: 5c73656c cfldr64pl mvdx6, [r3], #-432 - 2b8c: 20524149 subscs r4, r2, r9, asr #2 - 2b90: 74737953 ldrbtvc r7, [r3], #-2387 - 2b94: 5c736d65 ldclpl 13, cr6, [r3], #-404 - 2b98: 65626d45 strbvs r6, [r2, #-3397]! - 2b9c: 64656464 strbtvs r6, [r5], #-1124 - 2ba0: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 - 2ba4: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} - 2ba8: 35206863 strcc r6, [r0, #-2147]! - 2bac: 4b20342e blmi 80fc6c - 2bb0: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 - 2bb4: 74726174 ldrbtvc r6, [r2], #-372 - 2bb8: 6d72615c ldfvse f6, [r2, #-368]! - 2bbc: 434e495c movtmi r4, #59740 ; 0xe95c - 2bc0: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ - 2bc4: 6f435f62 svcvs 0x00435f62 - 2bc8: 6769666e strbvs r6, [r9, -lr, ror #12]! - 2bcc: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 - 2bd0: 2e6c616d powcsez f6, f4, #5.0 - 2bd4: 2d202268 sfmcs f2, 4, [r0, #-416]! - 2bd8: 43222049 teqmi r2, #73 ; 0x49 - 2bdc: 6f445c3a svcvs 0x00445c3a - 2be0: 656d7563 strbvs r7, [sp, #-1379]! - 2be4: 2073746e rsbscs r7, r3, lr, ror #8 - 2be8: 20646e61 rsbcs r6, r4, r1, ror #28 - 2bec: 74746553 ldrbtvc r6, [r4], #-1363 - 2bf0: 73676e69 cmnvc r7, #1680 ; 0x690 - 2bf4: 6c616d5c stclvs 13, cr6, [r1], #-368 - 2bf8: 61726976 cmnvs r2, r6, ror r9 - 2bfc: 20794d5c rsbscs r4, r9, ip, asr sp - 2c00: 75636f44 strbvc r6, [r3, #-3908]! - 2c04: 746e656d strbtvc r6, [lr], #-1389 - 2c08: 73775c73 cmnvc r7, #29440 ; 0x7300 - 2c0c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 2c10: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2c14: 6165575c cmnvs r5, ip, asr r7 - 2c18: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 2c1c: 61745320 cmnvs r4, r0, lsr #6 - 2c20: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2c24: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 2c28: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2c2c: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 2c30: 43414d53 movtmi r4, #7507 ; 0x1d53 - 2c34: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 2c38: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 2c3c: 746e495c strbtvc r4, [lr], #-2396 - 2c40: 61667265 cmnvs r6, r5, ror #4 - 2c44: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 - 2c48: 20492d20 subcs r2, r9, r0, lsr #26 - 2c4c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 2c50: 75636f44 strbvc r6, [r3, #-3908]! - 2c54: 746e656d strbtvc r6, [lr], #-1389 - 2c58: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 2c5c: 65532064 ldrbvs r2, [r3, #-100] - 2c60: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 2c64: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 2c68: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 2c6c: 4d5c6172 ldfmie f6, [ip, #-456] - 2c70: 6f442079 svcvs 0x00442079 - 2c74: 656d7563 strbvs r7, [sp, #-1379]! - 2c78: 5c73746e cfldrdpl mvd7, [r3], #-440 - 2c7c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 2c80: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2c84: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 2c88: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 2c8c: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 2c90: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 2c94: 43206e6f teqmi r0, #1776 ; 0x6f0 - 2c98: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2c9c: 656c6c6f strbvs r6, [ip, #-3183]! - 2ca0: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 - 2ca4: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} - 2ca8: 66726574 undefined - 2cac: 5c656361 stclpl 3, cr6, [r5], #-388 - 2cb0: 492d2022 pushmi {r1, r5, sp} - 2cb4: 3a432220 bcc 10cb53c - 2cb8: 6f72505c svcvs 0x0072505c - 2cbc: 6d617267 sfmvs f7, 2, [r1, #-412]! - 2cc0: 6c694620 stclvs 6, cr4, [r9], #-128 - 2cc4: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - 2cc8: 53205241 teqpl r0, #268435460 ; 0x10000004 - 2ccc: 65747379 ldrbvs r7, [r4, #-889]! - 2cd0: 455c736d ldrbmi r7, [ip, #-877] - 2cd4: 6465626d strbtvs r6, [r5], #-621 - 2cd8: 20646564 rsbcs r6, r4, r4, ror #10 - 2cdc: 6b726f57 blvs 1c9ea40 - 2ce0: 636e6562 cmnvs lr, #411041792 ; 0x18800000 - 2ce4: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} - 2ce8: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ - 2cec: 74736b63 ldrbtvc r6, [r3], #-2915 - 2cf0: 5c747261 lfmpl f7, 2, [r4], #-388 - 2cf4: 5c6d7261 sfmpl f7, 2, [sp], #-388 - 2cf8: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 - 2cfc: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 2d00: 65746e69 ldrbvs r6, [r4, #-3689]! - 2d04: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 - 2d08: 2d2d206b stccs 0, cr2, [sp, #-428]! - 2d0c: 5f757063 svcpl 0x00757063 - 2d10: 65646f6d strbvs r6, [r4, #-3949]! - 2d14: 75687420 strbvc r7, [r8, #-1056]! - 2d18: 2d20626d sfmcs f6, 4, [r0, #-436]! - 2d1c: 0000684f andeq r6, r0, pc, asr #16 - 2d20: 445c3a43 ldrbmi r3, [ip], #-2627 - 2d24: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2d28: 73746e65 cmnvc r4, #1616 ; 0x650 - 2d2c: 646e6120 strbtvs r6, [lr], #-288 - 2d30: 74655320 strbtvc r5, [r5], #-800 - 2d34: 676e6974 undefined - 2d38: 616d5c73 smcvs 54723 - 2d3c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 2d40: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 2d44: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 2d48: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 2d4c: 775c7374 undefined - 2d50: 6f632d73 svcvs 0x00632d73 - 2d54: 6f72746e svcvs 0x0072746e - 2d58: 65575c6c ldrbvs r5, [r7, #-3180] - 2d5c: 65687461 strbvs r7, [r8, #-1121]! - 2d60: 74532072 ldrbvc r2, [r3], #-114 - 2d64: 6f697461 svcvs 0x00697461 - 2d68: 6f43206e svcvs 0x0043206e - 2d6c: 6f72746e svcvs 0x0072746e - 2d70: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 2d74: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 2d78: 4f5c6775 svcmi 0x005c6775 - 2d7c: 535c6a62 cmppl ip, #401408 ; 0x62000 - 2d80: 72756365 rsbsvc r6, r5, #-1811939327 ; 0x94000001 - 2d84: 4d797469 cfldrdmi mvd7, [r9, #-420]! - 2d88: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} - 2d8c: 3a6f2e74 bcc 1bce764 - 2d90: 41490000 cmpmi r9, r0 - 2d94: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 2d98: 43204953 teqmi r0, #1359872 ; 0x14c000 - 2d9c: 2b2b432f blcs ad3a60 - 2da0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 2da4: 656c6970 strbvs r6, [ip, #-2416]! - 2da8: 35562072 ldrbcc r2, [r6, #-114] - 2dac: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 2db0: 31332e32 teqcc r3, r2, lsr lr - 2db4: 2f353932 svccs 0x00353932 - 2db8: 20323357 eorscs r3, r2, r7, asr r3 - 2dbc: 4b43494b blmi 10d52f0 - 2dc0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 2dc4: 6f662054 svcvs 0x00662054 - 2dc8: 52412072 subpl r2, r1, #114 ; 0x72 - 2dcc: 4322004d teqmi r2, #77 ; 0x4d - 2dd0: 6f445c3a svcvs 0x00445c3a - 2dd4: 656d7563 strbvs r7, [sp, #-1379]! - 2dd8: 2073746e rsbscs r7, r3, lr, ror #8 - 2ddc: 20646e61 rsbcs r6, r4, r1, ror #28 - 2de0: 74746553 ldrbtvc r6, [r4], #-1363 - 2de4: 73676e69 cmnvc r7, #1680 ; 0x690 - 2de8: 6c616d5c stclvs 13, cr6, [r1], #-368 - 2dec: 61726976 cmnvs r2, r6, ror r9 - 2df0: 20794d5c rsbscs r4, r9, ip, asr sp - 2df4: 75636f44 strbvc r6, [r3, #-3908]! - 2df8: 746e656d strbtvc r6, [lr], #-1389 - 2dfc: 73775c73 cmnvc r7, #29440 ; 0x7300 - 2e00: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 2e04: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2e08: 6165575c cmnvs r5, ip, asr r7 - 2e0c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 2e10: 61745320 cmnvs r4, r0, lsr #6 - 2e14: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 2e18: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 2e1c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 2e20: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 2e24: 43414d53 movtmi r4, #7507 ; 0x1d53 - 2e28: 756f535c strbvc r5, [pc, #-860]! ; 2ad4 <__USR_stack_size+0x22d4> - 2e2c: 5c656372 stclpl 3, cr6, [r5], #-456 - 2e30: 75636553 strbvc r6, [r3, #-1363]! - 2e34: 79746972 ldmdbvc r4!, {r1, r4, r5, r6, r8, fp, sp, lr}^ - 2e38: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 2e3c: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 2e40: 442d2022 strtmi r2, [sp], #-34 - 2e44: 34324620 ldrtcc r4, [r2], #-1568 - 2e48: 205a484d subscs r4, sl, sp, asr #16 - 2e4c: 5320442d teqpl r0, #754974720 ; 0x2d000000 - 2e50: 52554345 subspl r4, r5, #335544321 ; 0x14000001 - 2e54: 5f595449 svcpl 0x00595449 - 2e58: 42414e45 submi r4, r1, #1104 ; 0x450 - 2e5c: 2044454c subcs r4, r4, ip, asr #10 - 2e60: 20436c2d subcs r6, r3, sp, lsr #24 - 2e64: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 2e68: 75636f44 strbvc r6, [r3, #-3908]! - 2e6c: 746e656d strbtvc r6, [lr], #-1389 - 2e70: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 2e74: 65532064 ldrbvs r2, [r3, #-100] - 2e78: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 2e7c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 2e80: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 2e84: 4d5c6172 ldfmie f6, [ip, #-456] - 2e88: 6f442079 svcvs 0x00442079 - 2e8c: 656d7563 strbvs r7, [sp, #-1379]! - 2e90: 5c73746e cfldrdpl mvd7, [r3], #-440 - 2e94: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 2e98: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2e9c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 2ea0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 2ea4: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 2ea8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 2eac: 43206e6f teqmi r0, #1776 ; 0x6f0 - 2eb0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2eb4: 656c6c6f strbvs r6, [ip, #-3183]! - 2eb8: 65445c72 strbvs r5, [r4, #-3186] - 2ebc: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 2ec0: 7473694c ldrbtvc r6, [r3], #-2380 - 2ec4: 2d20225c sfmcs f2, 4, [r0, #-368]! - 2ec8: 6169642d cmnvs r9, sp, lsr #8 - 2ecc: 75735f67 ldrbvc r5, [r3, #-3943]! - 2ed0: 65727070 ldrbvs r7, [r2, #-112]! - 2ed4: 50207373 eorpl r7, r0, r3, ror r3 - 2ed8: 31353965 teqcc r5, r5, ror #18 - 2edc: 3165502c cmncc r5, ip, lsr #32 - 2ee0: 502c3131 eorpl r3, ip, r1, lsr r1 - 2ee4: 30343965 eorscc r3, r4, r5, ror #18 - 2ee8: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 2eec: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 2ef0: 75636f44 strbvc r6, [r3, #-3908]! - 2ef4: 746e656d strbtvc r6, [lr], #-1389 - 2ef8: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 2efc: 65532064 ldrbvs r2, [r3, #-100] - 2f00: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 2f04: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 2f08: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 2f0c: 4d5c6172 ldfmie f6, [ip, #-456] - 2f10: 6f442079 svcvs 0x00442079 - 2f14: 656d7563 strbvs r7, [sp, #-1379]! - 2f18: 5c73746e cfldrdpl mvd7, [r3], #-440 - 2f1c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 2f20: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2f24: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 2f28: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 2f2c: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 2f30: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 2f34: 43206e6f teqmi r0, #1776 ; 0x6f0 - 2f38: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 2f3c: 656c6c6f strbvs r6, [ip, #-3183]! - 2f40: 65445c72 strbvs r5, [r4, #-3186] - 2f44: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 2f48: 5c6a624f sfmpl f6, 2, [sl], #-316 - 2f4c: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 2f50: 75626564 strbvc r6, [r2, #-1380]! - 2f54: 2d2d2067 stccs 0, cr2, [sp, #-412]! - 2f58: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 2f5c: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 - 2f60: 6c747469 cfldrdvs mvd7, [r4], #-420 - 2f64: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 2f68: 3d757063 ldclcc 0, cr7, [r5, #-396]! - 2f6c: 374d5241 strbcc r5, [sp, -r1, asr #4] - 2f70: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ - 2f74: 2d20532d stccs 3, cr5, [r0, #-180]! - 2f78: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 2f7c: 3d757066 ldclcc 0, cr7, [r5, #-408]! - 2f80: 656e6f4e strbvs r6, [lr, #-3918]! - 2f84: 642d2d20 strtvs r2, [sp], #-3360 - 2f88: 5f62696c svcpl 0x0062696c - 2f8c: 666e6f63 strbtvs r6, [lr], -r3, ror #30 - 2f90: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 - 2f94: 505c3a43 subspl r3, ip, r3, asr #20 - 2f98: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 - 2f9c: 46206d61 strtmi r6, [r0], -r1, ror #26 - 2fa0: 73656c69 cmnvc r5, #26880 ; 0x6900 - 2fa4: 5241495c subpl r4, r1, #1507328 ; 0x170000 - 2fa8: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 - 2fac: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 - 2fb0: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 - 2fb4: 65646465 strbvs r6, [r4, #-1125]! - 2fb8: 6f572064 svcvs 0x00572064 - 2fbc: 65626b72 strbvs r6, [r2, #-2930]! - 2fc0: 2068636e rsbcs r6, r8, lr, ror #6 - 2fc4: 20342e35 eorscs r2, r4, r5, lsr lr - 2fc8: 6b63694b blvs 18dd4fc - 2fcc: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - 2fd0: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 - 2fd4: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} - 2fd8: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 - 2fdc: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 - 2fe0: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 2fe4: 6f4e5f67 svcvs 0x004e5f67 - 2fe8: 6c616d72 stclvs 13, cr6, [r1], #-456 - 2fec: 2022682e eorcs r6, r2, lr, lsr #16 - 2ff0: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 2ff4: 445c3a43 ldrbmi r3, [ip], #-2627 - 2ff8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 2ffc: 73746e65 cmnvc r4, #1616 ; 0x650 - 3000: 646e6120 strbtvs r6, [lr], #-288 - 3004: 74655320 strbtvc r5, [r5], #-800 - 3008: 676e6974 undefined - 300c: 616d5c73 smcvs 54723 - 3010: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3014: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3018: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 301c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3020: 775c7374 undefined - 3024: 6f632d73 svcvs 0x00632d73 - 3028: 6f72746e svcvs 0x0072746e - 302c: 65575c6c ldrbvs r5, [r7, #-3180] - 3030: 65687461 strbvs r7, [r8, #-1121]! - 3034: 74532072 ldrbvc r2, [r3], #-114 - 3038: 6f697461 svcvs 0x00697461 - 303c: 6f43206e svcvs 0x0043206e - 3040: 6f72746e svcvs 0x0072746e - 3044: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3048: 414d535c cmpmi sp, ip, asr r3 - 304c: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 3050: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 3054: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 3058: 66726574 undefined - 305c: 5c656361 stclpl 3, cr6, [r5], #-388 - 3060: 492d2022 pushmi {r1, r5, sp} - 3064: 3a432220 bcc 10cb8ec - 3068: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 306c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3070: 61207374 teqvs r0, r4, ror r3 - 3074: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 3078: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 307c: 5c73676e ldclpl 7, cr6, [r3], #-440 - 3080: 766c616d strbtvc r6, [ip], -sp, ror #2 - 3084: 5c617269 sfmpl f7, 2, [r1], #-420 - 3088: 4420794d strtmi r7, [r0], #-2381 - 308c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3090: 73746e65 cmnvc r4, #1616 ; 0x650 - 3094: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 3098: 746e6f63 strbtvc r6, [lr], #-3939 - 309c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 30a0: 74616557 strbtvc r6, [r1], #-1367 - 30a4: 20726568 rsbscs r6, r2, r8, ror #10 - 30a8: 74617453 strbtvc r7, [r1], #-1107 - 30ac: 206e6f69 rsbcs r6, lr, r9, ror #30 - 30b0: 746e6f43 strbtvc r6, [lr], #-3907 - 30b4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 30b8: 505c7265 subspl r7, ip, r5, ror #4 - 30bc: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ - 30c0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 30c4: 65636166 strbvs r6, [r3, #-358]! - 30c8: 2d20225c sfmcs f2, 4, [r0, #-368]! - 30cc: 43222049 teqmi r2, #73 ; 0x49 - 30d0: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 - 30d4: 6172676f cmnvs r2, pc, ror #14 - 30d8: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ - 30dc: 5c73656c cfldr64pl mvdx6, [r3], #-432 - 30e0: 20524149 subscs r4, r2, r9, asr #2 - 30e4: 74737953 ldrbtvc r7, [r3], #-2387 - 30e8: 5c736d65 ldclpl 13, cr6, [r3], #-404 - 30ec: 65626d45 strbvs r6, [r2, #-3397]! - 30f0: 64656464 strbtvs r6, [r5], #-1124 - 30f4: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 - 30f8: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} - 30fc: 35206863 strcc r6, [r0, #-2147]! - 3100: 4b20342e blmi 8101c0 - 3104: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 - 3108: 74726174 ldrbtvc r6, [r2], #-372 - 310c: 6d72615c ldfvse f6, [r2, #-368]! - 3110: 434e495c movtmi r4, #59740 ; 0xe95c - 3114: 2d20225c sfmcs f2, 4, [r0, #-368]! - 3118: 746e692d strbtvc r6, [lr], #-2349 - 311c: 6f777265 svcvs 0x00777265 - 3120: 2d206b72 vstmdbcs r0!, {d6-} - 3124: 7570632d ldrbvc r6, [r0, #-813]! - 3128: 646f6d5f strbtvs r6, [pc], #3423 ; 3130 - 312c: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ - 3130: 20626d75 rsbcs r6, r2, r5, ror sp - 3134: 00684f2d rsbeq r4, r8, sp, lsr #30 - 3138: 5c3a4300 ldcpl 3, cr4, [sl] - 313c: 75636f44 strbvc r6, [r3, #-3908]! - 3140: 746e656d strbtvc r6, [lr], #-1389 - 3144: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 3148: 65532064 ldrbvs r2, [r3, #-100] - 314c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 3150: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 3154: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 3158: 4d5c6172 ldfmie f6, [ip, #-456] - 315c: 6f442079 svcvs 0x00442079 - 3160: 656d7563 strbvs r7, [sp, #-1379]! - 3164: 5c73746e cfldrdpl mvd7, [r3], #-440 - 3168: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 316c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3170: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 3174: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 3178: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 317c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 3180: 43206e6f teqmi r0, #1776 ; 0x6f0 - 3184: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3188: 656c6c6f strbvs r6, [ip, #-3183]! - 318c: 65445c72 strbvs r5, [r4, #-3186] - 3190: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 3194: 5c6a624f sfmpl f6, 2, [sl], #-316 - 3198: 6e756f53 mrcvs 15, 3, r6, cr5, cr3, {2} - 319c: 3a6f2e64 bcc 1bceb34 - 31a0: 41490000 cmpmi r9, r0 - 31a4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 31a8: 43204953 teqmi r0, #1359872 ; 0x14c000 - 31ac: 2b2b432f blcs ad3e70 - 31b0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 31b4: 656c6970 strbvs r6, [ip, #-2416]! - 31b8: 35562072 ldrbcc r2, [r6, #-114] - 31bc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 31c0: 31332e32 teqcc r3, r2, lsr lr - 31c4: 2f353932 svccs 0x00353932 - 31c8: 20323357 eorscs r3, r2, r7, asr r3 - 31cc: 4b43494b blmi 10d5700 - 31d0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 31d4: 6f662054 svcvs 0x00662054 - 31d8: 52412072 subpl r2, r1, #114 ; 0x72 - 31dc: 4322004d teqmi r2, #77 ; 0x4d - 31e0: 6f445c3a svcvs 0x00445c3a - 31e4: 656d7563 strbvs r7, [sp, #-1379]! - 31e8: 2073746e rsbscs r7, r3, lr, ror #8 - 31ec: 20646e61 rsbcs r6, r4, r1, ror #28 - 31f0: 74746553 ldrbtvc r6, [r4], #-1363 - 31f4: 73676e69 cmnvc r7, #1680 ; 0x690 - 31f8: 6c616d5c stclvs 13, cr6, [r1], #-368 - 31fc: 61726976 cmnvs r2, r6, ror r9 - 3200: 20794d5c rsbscs r4, r9, ip, asr sp - 3204: 75636f44 strbvc r6, [r3, #-3908]! - 3208: 746e656d strbtvc r6, [lr], #-1389 - 320c: 73775c73 cmnvc r7, #29440 ; 0x7300 - 3210: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 3214: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3218: 6165575c cmnvs r5, ip, asr r7 - 321c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 3220: 61745320 cmnvs r4, r0, lsr #6 - 3224: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 3228: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 322c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3230: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 3234: 6c707041 ldclvs 0, cr7, [r0], #-260 - 3238: 74616369 strbtvc r6, [r1], #-873 - 323c: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 3240: 6c697455 cfstrdvs mvd7, [r9], #-340 - 3244: 65697469 strbvs r7, [r9, #-1129]! - 3248: 6f535c73 svcvs 0x00535c73 - 324c: 2e646e75 mcrcs 14, 3, r6, cr4, cr5, {3} - 3250: 2d202263 sfmcs f2, 4, [r0, #-396]! - 3254: 32462044 subcc r2, r6, #68 ; 0x44 - 3258: 5a484d34 bpl 1216730 - 325c: 20442d20 subcs r2, r4, r0, lsr #26 - 3260: 55434553 strbpl r4, [r3, #-1363] - 3264: 59544952 ldmdbpl r4, {r1, r4, r6, r8, fp, lr}^ - 3268: 414e455f cmpmi lr, pc, asr r5 - 326c: 44454c42 strbmi r4, [r5], #-3138 - 3270: 436c2d20 cmnmi ip, #2048 ; 0x800 - 3274: 3a432220 bcc 10cbafc - 3278: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 327c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3280: 61207374 teqvs r0, r4, ror r3 - 3284: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 3288: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 328c: 5c73676e ldclpl 7, cr6, [r3], #-440 - 3290: 766c616d strbtvc r6, [ip], -sp, ror #2 - 3294: 5c617269 sfmpl f7, 2, [r1], #-420 - 3298: 4420794d strtmi r7, [r0], #-2381 - 329c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 32a0: 73746e65 cmnvc r4, #1616 ; 0x650 - 32a4: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 32a8: 746e6f63 strbtvc r6, [lr], #-3939 - 32ac: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 32b0: 74616557 strbtvc r6, [r1], #-1367 - 32b4: 20726568 rsbscs r6, r2, r8, ror #10 - 32b8: 74617453 strbtvc r7, [r1], #-1107 - 32bc: 206e6f69 rsbcs r6, lr, r9, ror #30 - 32c0: 746e6f43 strbtvc r6, [lr], #-3907 - 32c4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 32c8: 445c7265 ldrbmi r7, [ip], #-613 - 32cc: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 32d0: 73694c5c cmnvc r9, #23552 ; 0x5c00 - 32d4: 20225c74 eorcs r5, r2, r4, ror ip - 32d8: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ - 32dc: 735f6761 cmpvc pc, #25427968 ; 0x1840000 - 32e0: 72707075 rsbsvc r7, r0, #117 ; 0x75 - 32e4: 20737365 rsbscs r7, r3, r5, ror #6 - 32e8: 35396550 ldrcc r6, [r9, #-1360]! - 32ec: 65502c31 ldrbvs r2, [r0, #-3121] - 32f0: 2c313131 ldfcss f3, [r1], #-196 - 32f4: 34396550 ldrtcc r6, [r9], #-1360 - 32f8: 6f2d2030 svcvs 0x002d2030 - 32fc: 3a432220 bcc 10cbb84 - 3300: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 3304: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3308: 61207374 teqvs r0, r4, ror r3 - 330c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 3310: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 3314: 5c73676e ldclpl 7, cr6, [r3], #-440 - 3318: 766c616d strbtvc r6, [ip], -sp, ror #2 - 331c: 5c617269 sfmpl f7, 2, [r1], #-420 - 3320: 4420794d strtmi r7, [r0], #-2381 - 3324: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3328: 73746e65 cmnvc r4, #1616 ; 0x650 - 332c: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 3330: 746e6f63 strbtvc r6, [lr], #-3939 - 3334: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 3338: 74616557 strbtvc r6, [r1], #-1367 - 333c: 20726568 rsbscs r6, r2, r8, ror #10 - 3340: 74617453 strbtvc r7, [r1], #-1107 - 3344: 206e6f69 rsbcs r6, lr, r9, ror #30 - 3348: 746e6f43 strbtvc r6, [lr], #-3907 - 334c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 3350: 445c7265 ldrbmi r7, [ip], #-613 - 3354: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 3358: 6a624f5c bvs 18970d0 - 335c: 2d20225c sfmcs f2, 4, [r0, #-368]! - 3360: 6265642d rsbvs r6, r5, #754974720 ; 0x2d000000 - 3364: 2d206775 stccs 7, cr6, [r0, #-468]! - 3368: 646e652d strbtvs r6, [lr], #-1325 - 336c: 3d6e6169 stfcce f6, [lr, #-420]! - 3370: 7474696c ldrbtvc r6, [r4], #-2412 - 3374: 2d20656c cfstr32cs mvfx6, [r0, #-432]! - 3378: 7570632d ldrbvc r6, [r0, #-813]! - 337c: 4d52413d ldfmie f4, [r2, #-244] - 3380: 4d445437 cfstrdmi mvd5, [r4, #-220] - 3384: 20532d49 subscs r2, r3, r9, asr #26 - 3388: 2d20652d cfstr32cs mvfx6, [r0, #-180]! - 338c: 7570662d ldrbvc r6, [r0, #-1581]! - 3390: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} - 3394: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 3398: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 - 339c: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} - 33a0: 20676966 rsbcs r6, r7, r6, ror #18 - 33a4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 33a8: 676f7250 undefined - 33ac: 206d6172 rsbcs r6, sp, r2, ror r1 - 33b0: 656c6946 strbvs r6, [ip, #-2374]! - 33b4: 41495c73 cmpmi r9, r3, ror ip - 33b8: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ - 33bc: 6d657473 cfstrdvs mvd7, [r5, #-460]! - 33c0: 6d455c73 stclvs 12, cr5, [r5, #-460] - 33c4: 64646562 strbtvs r6, [r4], #-1378 - 33c8: 57206465 strpl r6, [r0, -r5, ror #8]! - 33cc: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 - 33d0: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 33d4: 342e3520 strtcc r3, [lr], #-1312 - 33d8: 63694b20 cmnvs r9, #32768 ; 0x8000 - 33dc: 6174736b cmnvs r4, fp, ror #6 - 33e0: 615c7472 cmpvs ip, r2, ror r4 - 33e4: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - 33e8: 445c434e ldrbmi r4, [ip], #-846 - 33ec: 5f62694c svcpl 0x0062694c - 33f0: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 33f4: 4e5f6769 cdpmi 7, 5, cr6, cr15, cr9, {3} - 33f8: 616d726f cmnvs sp, pc, ror #4 - 33fc: 22682e6c rsbcs r2, r8, #1728 ; 0x6c0 - 3400: 20492d20 subcs r2, r9, r0, lsr #26 - 3404: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 3408: 75636f44 strbvc r6, [r3, #-3908]! - 340c: 746e656d strbtvc r6, [lr], #-1389 - 3410: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 3414: 65532064 ldrbvs r2, [r3, #-100] - 3418: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 341c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 3420: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 3424: 4d5c6172 ldfmie f6, [ip, #-456] - 3428: 6f442079 svcvs 0x00442079 - 342c: 656d7563 strbvs r7, [sp, #-1379]! - 3430: 5c73746e cfldrdpl mvd7, [r3], #-440 - 3434: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 3438: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 343c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 3440: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 3444: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 3448: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 344c: 43206e6f teqmi r0, #1776 ; 0x6f0 - 3450: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3454: 656c6c6f strbvs r6, [ip, #-3183]! - 3458: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 345c: 445c4341 ldrbmi r4, [ip], #-833 - 3460: 65766972 ldrbvs r6, [r6, #-2418]! - 3464: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ - 3468: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 346c: 65636166 strbvs r6, [r3, #-358]! - 3470: 2d20225c sfmcs f2, 4, [r0, #-368]! - 3474: 43222049 teqmi r2, #73 ; 0x49 - 3478: 6f445c3a svcvs 0x00445c3a - 347c: 656d7563 strbvs r7, [sp, #-1379]! - 3480: 2073746e rsbscs r7, r3, lr, ror #8 - 3484: 20646e61 rsbcs r6, r4, r1, ror #28 - 3488: 74746553 ldrbtvc r6, [r4], #-1363 - 348c: 73676e69 cmnvc r7, #1680 ; 0x690 - 3490: 6c616d5c stclvs 13, cr6, [r1], #-368 - 3494: 61726976 cmnvs r2, r6, ror r9 - 3498: 20794d5c rsbscs r4, r9, ip, asr sp - 349c: 75636f44 strbvc r6, [r3, #-3908]! - 34a0: 746e656d strbtvc r6, [lr], #-1389 - 34a4: 73775c73 cmnvc r7, #29440 ; 0x7300 - 34a8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 34ac: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 34b0: 6165575c cmnvs r5, ip, asr r7 - 34b4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 34b8: 61745320 cmnvs r4, r0, lsr #6 - 34bc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 34c0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 34c4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 34c8: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 34cc: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 - 34d0: 65746e49 ldrbvs r6, [r4, #-3657]! - 34d4: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 34d8: 20225c65 eorcs r5, r2, r5, ror #24 - 34dc: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 34e0: 505c3a43 subspl r3, ip, r3, asr #20 - 34e4: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 - 34e8: 46206d61 strtmi r6, [r0], -r1, ror #26 - 34ec: 73656c69 cmnvc r5, #26880 ; 0x6900 - 34f0: 5241495c subpl r4, r1, #1507328 ; 0x170000 - 34f4: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 - 34f8: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 - 34fc: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 - 3500: 65646465 strbvs r6, [r4, #-1125]! - 3504: 6f572064 svcvs 0x00572064 - 3508: 65626b72 strbvs r6, [r2, #-2930]! - 350c: 2068636e rsbcs r6, r8, lr, ror #6 - 3510: 20342e35 eorscs r2, r4, r5, lsr lr - 3514: 6b63694b blvs 18dda48 - 3518: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - 351c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 - 3520: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} - 3524: 20225c43 eorcs r5, r2, r3, asr #24 - 3528: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} - 352c: 77726574 undefined - 3530: 206b726f rsbcs r7, fp, pc, ror #4 - 3534: 70632d2d rsbvc r2, r3, sp, lsr #26 - 3538: 6f6d5f75 svcvs 0x006d5f75 - 353c: 74206564 strtvc r6, [r0], #-1380 - 3540: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 - 3544: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ - 3548: 3a430000 bcc 10c3550 - 354c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 3550: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3554: 61207374 teqvs r0, r4, ror r3 - 3558: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 355c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 3560: 5c73676e ldclpl 7, cr6, [r3], #-440 - 3564: 766c616d strbtvc r6, [ip], -sp, ror #2 - 3568: 5c617269 sfmpl f7, 2, [r1], #-420 - 356c: 4420794d strtmi r7, [r0], #-2381 - 3570: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3574: 73746e65 cmnvc r4, #1616 ; 0x650 - 3578: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 357c: 746e6f63 strbtvc r6, [lr], #-3939 - 3580: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 3584: 74616557 strbtvc r6, [r1], #-1367 - 3588: 20726568 rsbscs r6, r2, r8, ror #10 - 358c: 74617453 strbtvc r7, [r1], #-1107 - 3590: 206e6f69 rsbcs r6, lr, r9, ror #30 - 3594: 746e6f43 strbtvc r6, [lr], #-3907 - 3598: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 359c: 445c7265 ldrbmi r7, [ip], #-613 - 35a0: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 35a4: 6a624f5c bvs 189731c - 35a8: 6172545c cmnvs r2, ip, asr r4 - 35ac: 6563736e strbvs r7, [r3, #-878]! - 35b0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 35b4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 35b8: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} - 35bc: 746e6d67 strbtvc r6, [lr], #-3431 - 35c0: 003a6f2e eorseq r6, sl, lr, lsr #30 - 35c4: 52414900 subpl r4, r1, #0 ; 0x0 - 35c8: 534e4120 movtpl r4, #57632 ; 0xe120 - 35cc: 2f432049 svccs 0x00432049 - 35d0: 202b2b43 eorcs r2, fp, r3, asr #22 - 35d4: 706d6f43 rsbvc r6, sp, r3, asr #30 - 35d8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 35dc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 35e0: 322e3033 eorcc r3, lr, #51 ; 0x33 - 35e4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 - 35e8: 572f3539 undefined - 35ec: 4b203233 blmi 80fec0 - 35f0: 534b4349 movtpl r4, #45897 ; 0xb349 - 35f4: 54524154 ldrbpl r4, [r2], #-340 - 35f8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 35fc: 4d524120 ldfmie f4, [r2, #-128] - 3600: 3a432200 bcc 10cbe08 - 3604: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 3608: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 360c: 61207374 teqvs r0, r4, ror r3 - 3610: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 3614: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 3618: 5c73676e ldclpl 7, cr6, [r3], #-440 - 361c: 766c616d strbtvc r6, [ip], -sp, ror #2 - 3620: 5c617269 sfmpl f7, 2, [r1], #-420 - 3624: 4420794d strtmi r7, [r0], #-2381 - 3628: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 362c: 73746e65 cmnvc r4, #1616 ; 0x650 - 3630: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 3634: 746e6f63 strbtvc r6, [lr], #-3939 - 3638: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 363c: 74616557 strbtvc r6, [r1], #-1367 - 3640: 20726568 rsbscs r6, r2, r8, ror #10 - 3644: 74617453 strbtvc r7, [r1], #-1107 - 3648: 206e6f69 rsbcs r6, lr, r9, ror #30 - 364c: 746e6f43 strbtvc r6, [lr], #-3907 - 3650: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 3654: 535c7265 cmppl ip, #1342177286 ; 0x50000006 - 3658: 5c43414d stfple f4, [r3], {77} - 365c: 72756f53 rsbsvc r6, r5, #332 ; 0x14c - 3660: 545c6563 ldrbpl r6, [ip], #-1379 - 3664: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 3668: 76696563 strbtvc r6, [r9], -r3, ror #10 - 366c: 6f437265 svcvs 0x00437265 - 3670: 6769666e strbvs r6, [r9, -lr, ror #12]! - 3674: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 3678: 632e746e teqvs lr, #1845493760 ; 0x6e000000 - 367c: 442d2022 strtmi r2, [sp], #-34 - 3680: 34324620 ldrtcc r4, [r2], #-1568 - 3684: 205a484d subscs r4, sl, sp, asr #16 - 3688: 5320442d teqpl r0, #754974720 ; 0x2d000000 - 368c: 52554345 subspl r4, r5, #335544321 ; 0x14000001 - 3690: 5f595449 svcpl 0x00595449 - 3694: 42414e45 submi r4, r1, #1104 ; 0x450 - 3698: 2044454c subcs r4, r4, ip, asr #10 - 369c: 20436c2d subcs r6, r3, sp, lsr #24 - 36a0: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 36a4: 75636f44 strbvc r6, [r3, #-3908]! - 36a8: 746e656d strbtvc r6, [lr], #-1389 - 36ac: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 36b0: 65532064 ldrbvs r2, [r3, #-100] - 36b4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 36b8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 36bc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 36c0: 4d5c6172 ldfmie f6, [ip, #-456] - 36c4: 6f442079 svcvs 0x00442079 - 36c8: 656d7563 strbvs r7, [sp, #-1379]! - 36cc: 5c73746e cfldrdpl mvd7, [r3], #-440 - 36d0: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 36d4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 36d8: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 36dc: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 36e0: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 36e4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 36e8: 43206e6f teqmi r0, #1776 ; 0x6f0 - 36ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 36f0: 656c6c6f strbvs r6, [ip, #-3183]! - 36f4: 65445c72 strbvs r5, [r4, #-3186] - 36f8: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 36fc: 7473694c ldrbtvc r6, [r3], #-2380 - 3700: 2d20225c sfmcs f2, 4, [r0, #-368]! - 3704: 6169642d cmnvs r9, sp, lsr #8 - 3708: 75735f67 ldrbvc r5, [r3, #-3943]! - 370c: 65727070 ldrbvs r7, [r2, #-112]! - 3710: 50207373 eorpl r7, r0, r3, ror r3 - 3714: 31353965 teqcc r5, r5, ror #18 - 3718: 3165502c cmncc r5, ip, lsr #32 - 371c: 502c3131 eorpl r3, ip, r1, lsr r1 - 3720: 30343965 eorscc r3, r4, r5, ror #18 - 3724: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 3728: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 372c: 75636f44 strbvc r6, [r3, #-3908]! - 3730: 746e656d strbtvc r6, [lr], #-1389 - 3734: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 3738: 65532064 ldrbvs r2, [r3, #-100] - 373c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 3740: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 3744: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 3748: 4d5c6172 ldfmie f6, [ip, #-456] - 374c: 6f442079 svcvs 0x00442079 - 3750: 656d7563 strbvs r7, [sp, #-1379]! - 3754: 5c73746e cfldrdpl mvd7, [r3], #-440 - 3758: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 375c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3760: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 3764: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 3768: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 376c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 3770: 43206e6f teqmi r0, #1776 ; 0x6f0 - 3774: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3778: 656c6c6f strbvs r6, [ip, #-3183]! - 377c: 65445c72 strbvs r5, [r4, #-3186] - 3780: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 3784: 5c6a624f sfmpl f6, 2, [sl], #-316 - 3788: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 378c: 75626564 strbvc r6, [r2, #-1380]! - 3790: 2d2d2067 stccs 0, cr2, [sp, #-412]! - 3794: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 3798: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 - 379c: 6c747469 cfldrdvs mvd7, [r4], #-420 - 37a0: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 37a4: 3d757063 ldclcc 0, cr7, [r5, #-396]! - 37a8: 374d5241 strbcc r5, [sp, -r1, asr #4] - 37ac: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ - 37b0: 2d20532d stccs 3, cr5, [r0, #-180]! - 37b4: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 37b8: 3d757066 ldclcc 0, cr7, [r5, #-408]! - 37bc: 656e6f4e strbvs r6, [lr, #-3918]! - 37c0: 642d2d20 strtvs r2, [sp], #-3360 - 37c4: 5f62696c svcpl 0x0062696c - 37c8: 666e6f63 strbtvs r6, [lr], -r3, ror #30 - 37cc: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 - 37d0: 505c3a43 subspl r3, ip, r3, asr #20 - 37d4: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 - 37d8: 46206d61 strtmi r6, [r0], -r1, ror #26 - 37dc: 73656c69 cmnvc r5, #26880 ; 0x6900 - 37e0: 5241495c subpl r4, r1, #1507328 ; 0x170000 - 37e4: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 - 37e8: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 - 37ec: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 - 37f0: 65646465 strbvs r6, [r4, #-1125]! - 37f4: 6f572064 svcvs 0x00572064 - 37f8: 65626b72 strbvs r6, [r2, #-2930]! - 37fc: 2068636e rsbcs r6, r8, lr, ror #6 - 3800: 20342e35 eorscs r2, r4, r5, lsr lr - 3804: 6b63694b blvs 18ddd38 - 3808: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - 380c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 - 3810: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} - 3814: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 - 3818: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 - 381c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 3820: 6f4e5f67 svcvs 0x004e5f67 - 3824: 6c616d72 stclvs 13, cr6, [r1], #-456 - 3828: 2022682e eorcs r6, r2, lr, lsr #16 - 382c: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 3830: 445c3a43 ldrbmi r3, [ip], #-2627 - 3834: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3838: 73746e65 cmnvc r4, #1616 ; 0x650 - 383c: 646e6120 strbtvs r6, [lr], #-288 - 3840: 74655320 strbtvc r5, [r5], #-800 - 3844: 676e6974 undefined - 3848: 616d5c73 smcvs 54723 - 384c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3850: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3854: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3858: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 385c: 775c7374 undefined - 3860: 6f632d73 svcvs 0x00632d73 - 3864: 6f72746e svcvs 0x0072746e - 3868: 65575c6c ldrbvs r5, [r7, #-3180] - 386c: 65687461 strbvs r7, [r8, #-1121]! - 3870: 74532072 ldrbvc r2, [r3], #-114 - 3874: 6f697461 svcvs 0x00697461 - 3878: 6f43206e svcvs 0x0043206e - 387c: 6f72746e svcvs 0x0072746e - 3880: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3884: 414d535c cmpmi sp, ip, asr r3 - 3888: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 388c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 3890: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 3894: 66726574 undefined - 3898: 5c656361 stclpl 3, cr6, [r5], #-388 - 389c: 492d2022 pushmi {r1, r5, sp} - 38a0: 3a432220 bcc 10cc128 - 38a4: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 38a8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 38ac: 61207374 teqvs r0, r4, ror r3 - 38b0: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 38b4: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 38b8: 5c73676e ldclpl 7, cr6, [r3], #-440 - 38bc: 766c616d strbtvc r6, [ip], -sp, ror #2 - 38c0: 5c617269 sfmpl f7, 2, [r1], #-420 - 38c4: 4420794d strtmi r7, [r0], #-2381 - 38c8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 38cc: 73746e65 cmnvc r4, #1616 ; 0x650 - 38d0: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 38d4: 746e6f63 strbtvc r6, [lr], #-3939 - 38d8: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 38dc: 74616557 strbtvc r6, [r1], #-1367 - 38e0: 20726568 rsbscs r6, r2, r8, ror #10 - 38e4: 74617453 strbtvc r7, [r1], #-1107 - 38e8: 206e6f69 rsbcs r6, lr, r9, ror #30 - 38ec: 746e6f43 strbtvc r6, [lr], #-3907 - 38f0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 38f4: 505c7265 subspl r7, ip, r5, ror #4 - 38f8: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ - 38fc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 3900: 65636166 strbvs r6, [r3, #-358]! - 3904: 2d20225c sfmcs f2, 4, [r0, #-368]! - 3908: 43222049 teqmi r2, #73 ; 0x49 - 390c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 - 3910: 6172676f cmnvs r2, pc, ror #14 - 3914: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ - 3918: 5c73656c cfldr64pl mvdx6, [r3], #-432 - 391c: 20524149 subscs r4, r2, r9, asr #2 - 3920: 74737953 ldrbtvc r7, [r3], #-2387 - 3924: 5c736d65 ldclpl 13, cr6, [r3], #-404 - 3928: 65626d45 strbvs r6, [r2, #-3397]! - 392c: 64656464 strbtvs r6, [r5], #-1124 - 3930: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 - 3934: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} - 3938: 35206863 strcc r6, [r0, #-2147]! - 393c: 4b20342e blmi 8109fc - 3940: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 - 3944: 74726174 ldrbtvc r6, [r2], #-372 - 3948: 6d72615c ldfvse f6, [r2, #-368]! - 394c: 434e495c movtmi r4, #59740 ; 0xe95c - 3950: 2d20225c sfmcs f2, 4, [r0, #-368]! - 3954: 746e692d strbtvc r6, [lr], #-2349 - 3958: 6f777265 svcvs 0x00777265 - 395c: 2d206b72 vstmdbcs r0!, {d6-} - 3960: 7570632d ldrbvc r6, [r0, #-813]! - 3964: 646f6d5f strbtvs r6, [pc], #3423 ; 396c - 3968: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ - 396c: 20626d75 rsbcs r6, r2, r5, ror sp - 3970: 00684f2d rsbeq r4, r8, sp, lsr #30 - 3974: 5c3a4300 ldcpl 3, cr4, [sl] - 3978: 75636f44 strbvc r6, [r3, #-3908]! - 397c: 746e656d strbtvc r6, [lr], #-1389 - 3980: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 3984: 65532064 ldrbvs r2, [r3, #-100] - 3988: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 398c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 3990: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 3994: 4d5c6172 ldfmie f6, [ip, #-456] - 3998: 6f442079 svcvs 0x00442079 - 399c: 656d7563 strbvs r7, [sp, #-1379]! - 39a0: 5c73746e cfldrdpl mvd7, [r3], #-440 - 39a4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 39a8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 39ac: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 39b0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 39b4: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 39b8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 39bc: 43206e6f teqmi r0, #1776 ; 0x6f0 - 39c0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 39c4: 656c6c6f strbvs r6, [ip, #-3183]! - 39c8: 65445c72 strbvs r5, [r4, #-3186] - 39cc: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 39d0: 5c6a624f sfmpl f6, 2, [sl], #-316 - 39d4: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} - 39d8: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ - 39dc: 50726576 rsbspl r6, r2, r6, ror r5 - 39e0: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 - 39e4: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 39e8: 6f2e746e svcvs 0x002e746e - 39ec: 4900003a stmdbmi r0, {r1, r3, r4, r5} - 39f0: 41205241 teqmi r0, r1, asr #4 - 39f4: 2049534e subcs r5, r9, lr, asr #6 - 39f8: 2b432f43 blcs 10cf70c - 39fc: 6f43202b svcvs 0x0043202b - 3a00: 6c69706d stclvs 0, cr7, [r9], #-436 - 3a04: 56207265 strtpl r7, [r0], -r5, ror #4 - 3a08: 30332e35 eorscc r2, r3, r5, lsr lr - 3a0c: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 3a10: 35393231 ldrcc r3, [r9, #-561]! - 3a14: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 3a18: 43494b20 movtmi r4, #39712 ; 0x9b20 - 3a1c: 4154534b cmpmi r4, fp, asr #6 - 3a20: 66205452 undefined - 3a24: 4120726f teqmi r0, pc, ror #4 - 3a28: 22004d52 andcs r4, r0, #5248 ; 0x1480 - 3a2c: 445c3a43 ldrbmi r3, [ip], #-2627 - 3a30: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3a34: 73746e65 cmnvc r4, #1616 ; 0x650 - 3a38: 646e6120 strbtvs r6, [lr], #-288 - 3a3c: 74655320 strbtvc r5, [r5], #-800 - 3a40: 676e6974 undefined - 3a44: 616d5c73 smcvs 54723 - 3a48: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 3a4c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 3a50: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 3a54: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3a58: 775c7374 undefined - 3a5c: 6f632d73 svcvs 0x00632d73 - 3a60: 6f72746e svcvs 0x0072746e - 3a64: 65575c6c ldrbvs r5, [r7, #-3180] - 3a68: 65687461 strbvs r7, [r8, #-1121]! - 3a6c: 74532072 ldrbvc r2, [r3], #-114 - 3a70: 6f697461 svcvs 0x00697461 - 3a74: 6f43206e svcvs 0x0043206e - 3a78: 6f72746e svcvs 0x0072746e - 3a7c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 3a80: 414d535c cmpmi sp, ip, asr r3 - 3a84: 6f535c43 svcvs 0x00535c43 - 3a88: 65637275 strbvs r7, [r3, #-629]! - 3a8c: 6172545c cmnvs r2, ip, asr r4 - 3a90: 6563736e strbvs r7, [r3, #-878]! - 3a94: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 3a98: 65776f50 ldrbvs r6, [r7, #-3920]! - 3a9c: 676e4d72 undefined - 3aa0: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} - 3aa4: 2d202263 sfmcs f2, 4, [r0, #-396]! - 3aa8: 32462044 subcc r2, r6, #68 ; 0x44 - 3aac: 5a484d34 bpl 1216f84 - 3ab0: 20442d20 subcs r2, r4, r0, lsr #26 - 3ab4: 55434553 strbpl r4, [r3, #-1363] - 3ab8: 59544952 ldmdbpl r4, {r1, r4, r6, r8, fp, lr}^ - 3abc: 414e455f cmpmi lr, pc, asr r5 - 3ac0: 44454c42 strbmi r4, [r5], #-3138 - 3ac4: 436c2d20 cmnmi ip, #2048 ; 0x800 - 3ac8: 3a432220 bcc 10cc350 - 3acc: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 3ad0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3ad4: 61207374 teqvs r0, r4, ror r3 - 3ad8: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 3adc: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 3ae0: 5c73676e ldclpl 7, cr6, [r3], #-440 - 3ae4: 766c616d strbtvc r6, [ip], -sp, ror #2 - 3ae8: 5c617269 sfmpl f7, 2, [r1], #-420 - 3aec: 4420794d strtmi r7, [r0], #-2381 - 3af0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3af4: 73746e65 cmnvc r4, #1616 ; 0x650 - 3af8: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 3afc: 746e6f63 strbtvc r6, [lr], #-3939 - 3b00: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 3b04: 74616557 strbtvc r6, [r1], #-1367 - 3b08: 20726568 rsbscs r6, r2, r8, ror #10 - 3b0c: 74617453 strbtvc r7, [r1], #-1107 - 3b10: 206e6f69 rsbcs r6, lr, r9, ror #30 - 3b14: 746e6f43 strbtvc r6, [lr], #-3907 - 3b18: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 3b1c: 445c7265 ldrbmi r7, [ip], #-613 - 3b20: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 3b24: 73694c5c cmnvc r9, #23552 ; 0x5c00 - 3b28: 20225c74 eorcs r5, r2, r4, ror ip - 3b2c: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ - 3b30: 735f6761 cmpvc pc, #25427968 ; 0x1840000 - 3b34: 72707075 rsbsvc r7, r0, #117 ; 0x75 - 3b38: 20737365 rsbscs r7, r3, r5, ror #6 - 3b3c: 35396550 ldrcc r6, [r9, #-1360]! - 3b40: 65502c31 ldrbvs r2, [r0, #-3121] - 3b44: 2c313131 ldfcss f3, [r1], #-196 - 3b48: 34396550 ldrtcc r6, [r9], #-1360 - 3b4c: 6f2d2030 svcvs 0x002d2030 - 3b50: 3a432220 bcc 10cc3d8 - 3b54: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 3b58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3b5c: 61207374 teqvs r0, r4, ror r3 - 3b60: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 3b64: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 3b68: 5c73676e ldclpl 7, cr6, [r3], #-440 - 3b6c: 766c616d strbtvc r6, [ip], -sp, ror #2 - 3b70: 5c617269 sfmpl f7, 2, [r1], #-420 - 3b74: 4420794d strtmi r7, [r0], #-2381 - 3b78: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3b7c: 73746e65 cmnvc r4, #1616 ; 0x650 - 3b80: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 3b84: 746e6f63 strbtvc r6, [lr], #-3939 - 3b88: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 3b8c: 74616557 strbtvc r6, [r1], #-1367 - 3b90: 20726568 rsbscs r6, r2, r8, ror #10 - 3b94: 74617453 strbtvc r7, [r1], #-1107 - 3b98: 206e6f69 rsbcs r6, lr, r9, ror #30 - 3b9c: 746e6f43 strbtvc r6, [lr], #-3907 - 3ba0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 3ba4: 445c7265 ldrbmi r7, [ip], #-613 - 3ba8: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 3bac: 6a624f5c bvs 1897924 - 3bb0: 2d20225c sfmcs f2, 4, [r0, #-368]! - 3bb4: 6265642d rsbvs r6, r5, #754974720 ; 0x2d000000 - 3bb8: 2d206775 stccs 7, cr6, [r0, #-468]! - 3bbc: 646e652d strbtvs r6, [lr], #-1325 - 3bc0: 3d6e6169 stfcce f6, [lr, #-420]! - 3bc4: 7474696c ldrbtvc r6, [r4], #-2412 - 3bc8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! - 3bcc: 7570632d ldrbvc r6, [r0, #-813]! - 3bd0: 4d52413d ldfmie f4, [r2, #-244] - 3bd4: 4d445437 cfstrdmi mvd5, [r4, #-220] - 3bd8: 20532d49 subscs r2, r3, r9, asr #26 - 3bdc: 2d20652d cfstr32cs mvfx6, [r0, #-180]! - 3be0: 7570662d ldrbvc r6, [r0, #-1581]! - 3be4: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} - 3be8: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 3bec: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 - 3bf0: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} - 3bf4: 20676966 rsbcs r6, r7, r6, ror #18 - 3bf8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 3bfc: 676f7250 undefined - 3c00: 206d6172 rsbcs r6, sp, r2, ror r1 - 3c04: 656c6946 strbvs r6, [ip, #-2374]! - 3c08: 41495c73 cmpmi r9, r3, ror ip - 3c0c: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ - 3c10: 6d657473 cfstrdvs mvd7, [r5, #-460]! - 3c14: 6d455c73 stclvs 12, cr5, [r5, #-460] - 3c18: 64646562 strbtvs r6, [r4], #-1378 - 3c1c: 57206465 strpl r6, [r0, -r5, ror #8]! - 3c20: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 - 3c24: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 3c28: 342e3520 strtcc r3, [lr], #-1312 - 3c2c: 63694b20 cmnvs r9, #32768 ; 0x8000 - 3c30: 6174736b cmnvs r4, fp, ror #6 - 3c34: 615c7472 cmpvs ip, r2, ror r4 - 3c38: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - 3c3c: 445c434e ldrbmi r4, [ip], #-846 - 3c40: 5f62694c svcpl 0x0062694c - 3c44: 666e6f43 strbtvs r6, [lr], -r3, asr #30 - 3c48: 4e5f6769 cdpmi 7, 5, cr6, cr15, cr9, {3} - 3c4c: 616d726f cmnvs sp, pc, ror #4 - 3c50: 22682e6c rsbcs r2, r8, #1728 ; 0x6c0 - 3c54: 20492d20 subcs r2, r9, r0, lsr #26 - 3c58: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 3c5c: 75636f44 strbvc r6, [r3, #-3908]! - 3c60: 746e656d strbtvc r6, [lr], #-1389 - 3c64: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 3c68: 65532064 ldrbvs r2, [r3, #-100] - 3c6c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 3c70: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 3c74: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 3c78: 4d5c6172 ldfmie f6, [ip, #-456] - 3c7c: 6f442079 svcvs 0x00442079 - 3c80: 656d7563 strbvs r7, [sp, #-1379]! - 3c84: 5c73746e cfldrdpl mvd7, [r3], #-440 - 3c88: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 3c8c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3c90: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 3c94: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 3c98: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 3c9c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 3ca0: 43206e6f teqmi r0, #1776 ; 0x6f0 - 3ca4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3ca8: 656c6c6f strbvs r6, [ip, #-3183]! - 3cac: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 3cb0: 445c4341 ldrbmi r4, [ip], #-833 - 3cb4: 65766972 ldrbvs r6, [r6, #-2418]! - 3cb8: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ - 3cbc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 3cc0: 65636166 strbvs r6, [r3, #-358]! - 3cc4: 2d20225c sfmcs f2, 4, [r0, #-368]! - 3cc8: 43222049 teqmi r2, #73 ; 0x49 - 3ccc: 6f445c3a svcvs 0x00445c3a - 3cd0: 656d7563 strbvs r7, [sp, #-1379]! - 3cd4: 2073746e rsbscs r7, r3, lr, ror #8 - 3cd8: 20646e61 rsbcs r6, r4, r1, ror #28 - 3cdc: 74746553 ldrbtvc r6, [r4], #-1363 - 3ce0: 73676e69 cmnvc r7, #1680 ; 0x690 - 3ce4: 6c616d5c stclvs 13, cr6, [r1], #-368 - 3ce8: 61726976 cmnvs r2, r6, ror r9 - 3cec: 20794d5c rsbscs r4, r9, ip, asr sp - 3cf0: 75636f44 strbvc r6, [r3, #-3908]! - 3cf4: 746e656d strbtvc r6, [lr], #-1389 - 3cf8: 73775c73 cmnvc r7, #29440 ; 0x7300 - 3cfc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 3d00: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3d04: 6165575c cmnvs r5, ip, asr r7 - 3d08: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 3d0c: 61745320 cmnvs r4, r0, lsr #6 - 3d10: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 3d14: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 3d18: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3d1c: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 3d20: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 - 3d24: 65746e49 ldrbvs r6, [r4, #-3657]! - 3d28: 63616672 cmnvs r1, #119537664 ; 0x7200000 - 3d2c: 20225c65 eorcs r5, r2, r5, ror #24 - 3d30: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 3d34: 505c3a43 subspl r3, ip, r3, asr #20 - 3d38: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 - 3d3c: 46206d61 strtmi r6, [r0], -r1, ror #26 - 3d40: 73656c69 cmnvc r5, #26880 ; 0x6900 - 3d44: 5241495c subpl r4, r1, #1507328 ; 0x170000 - 3d48: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 - 3d4c: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 - 3d50: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 - 3d54: 65646465 strbvs r6, [r4, #-1125]! - 3d58: 6f572064 svcvs 0x00572064 - 3d5c: 65626b72 strbvs r6, [r2, #-2930]! - 3d60: 2068636e rsbcs r6, r8, lr, ror #6 - 3d64: 20342e35 eorscs r2, r4, r5, lsr lr - 3d68: 6b63694b blvs 18de29c - 3d6c: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - 3d70: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 - 3d74: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} - 3d78: 20225c43 eorcs r5, r2, r3, asr #24 - 3d7c: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} - 3d80: 77726574 undefined - 3d84: 206b726f rsbcs r7, fp, pc, ror #4 - 3d88: 70632d2d rsbvc r2, r3, sp, lsr #26 - 3d8c: 6f6d5f75 svcvs 0x006d5f75 - 3d90: 74206564 strtvc r6, [r0], #-1380 - 3d94: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 - 3d98: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ - 3d9c: 3a430000 bcc 10c3da4 - 3da0: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 3da4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 3da8: 61207374 teqvs r0, r4, ror r3 - 3dac: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 3db0: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 3db4: 5c73676e ldclpl 7, cr6, [r3], #-440 - 3db8: 766c616d strbtvc r6, [ip], -sp, ror #2 - 3dbc: 5c617269 sfmpl f7, 2, [r1], #-420 - 3dc0: 4420794d strtmi r7, [r0], #-2381 - 3dc4: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 3dc8: 73746e65 cmnvc r4, #1616 ; 0x650 - 3dcc: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 3dd0: 746e6f63 strbtvc r6, [lr], #-3939 - 3dd4: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 3dd8: 74616557 strbtvc r6, [r1], #-1367 - 3ddc: 20726568 rsbscs r6, r2, r8, ror #10 - 3de0: 74617453 strbtvc r7, [r1], #-1107 - 3de4: 206e6f69 rsbcs r6, lr, r9, ror #30 - 3de8: 746e6f43 strbtvc r6, [lr], #-3907 - 3dec: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 3df0: 445c7265 ldrbmi r7, [ip], #-613 - 3df4: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 3df8: 6a624f5c bvs 1897b70 - 3dfc: 7261555c rsbvc r5, r1, #385875968 ; 0x17000000 - 3e00: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ - 3e04: 3a6f2e6c bcc 1bcf7bc - 3e08: 41490000 cmpmi r9, r0 - 3e0c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 3e10: 43204953 teqmi r0, #1359872 ; 0x14c000 - 3e14: 2b2b432f blcs ad4ad8 - 3e18: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 3e1c: 656c6970 strbvs r6, [ip, #-2416]! - 3e20: 35562072 ldrbcc r2, [r6, #-114] - 3e24: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 3e28: 31332e32 teqcc r3, r2, lsr lr - 3e2c: 2f353932 svccs 0x00353932 - 3e30: 20323357 eorscs r3, r2, r7, asr r3 - 3e34: 4b43494b blmi 10d6368 - 3e38: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 3e3c: 6f662054 svcvs 0x00662054 - 3e40: 52412072 subpl r2, r1, #114 ; 0x72 - 3e44: 4322004d teqmi r2, #77 ; 0x4d - 3e48: 6f445c3a svcvs 0x00445c3a - 3e4c: 656d7563 strbvs r7, [sp, #-1379]! - 3e50: 2073746e rsbscs r7, r3, lr, ror #8 - 3e54: 20646e61 rsbcs r6, r4, r1, ror #28 - 3e58: 74746553 ldrbtvc r6, [r4], #-1363 - 3e5c: 73676e69 cmnvc r7, #1680 ; 0x690 - 3e60: 6c616d5c stclvs 13, cr6, [r1], #-368 - 3e64: 61726976 cmnvs r2, r6, ror r9 - 3e68: 20794d5c rsbscs r4, r9, ip, asr sp - 3e6c: 75636f44 strbvc r6, [r3, #-3908]! - 3e70: 746e656d strbtvc r6, [lr], #-1389 - 3e74: 73775c73 cmnvc r7, #29440 ; 0x7300 - 3e78: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 3e7c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3e80: 6165575c cmnvs r5, ip, asr r7 - 3e84: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 3e88: 61745320 cmnvs r4, r0, lsr #6 - 3e8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 3e90: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 3e94: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 3e98: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 3e9c: 6c707041 ldclvs 0, cr7, [r0], #-260 - 3ea0: 74616369 strbtvc r6, [r1], #-873 - 3ea4: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 3ea8: 6c697455 cfstrdvs mvd7, [r9], #-340 - 3eac: 65697469 strbvs r7, [r9, #-1129]! - 3eb0: 61555c73 cmpvs r5, r3, ror ip - 3eb4: 74557472 ldrbvc r7, [r5], #-1138 - 3eb8: 632e6c69 teqvs lr, #26880 ; 0x6900 - 3ebc: 442d2022 strtmi r2, [sp], #-34 - 3ec0: 34324620 ldrtcc r4, [r2], #-1568 - 3ec4: 205a484d subscs r4, sl, sp, asr #16 - 3ec8: 5320442d teqpl r0, #754974720 ; 0x2d000000 - 3ecc: 52554345 subspl r4, r5, #335544321 ; 0x14000001 - 3ed0: 5f595449 svcpl 0x00595449 - 3ed4: 42414e45 submi r4, r1, #1104 ; 0x450 - 3ed8: 2044454c subcs r4, r4, ip, asr #10 - 3edc: 20436c2d subcs r6, r3, sp, lsr #24 - 3ee0: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 3ee4: 75636f44 strbvc r6, [r3, #-3908]! - 3ee8: 746e656d strbtvc r6, [lr], #-1389 - 3eec: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 3ef0: 65532064 ldrbvs r2, [r3, #-100] - 3ef4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 3ef8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 3efc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 3f00: 4d5c6172 ldfmie f6, [ip, #-456] - 3f04: 6f442079 svcvs 0x00442079 - 3f08: 656d7563 strbvs r7, [sp, #-1379]! - 3f0c: 5c73746e cfldrdpl mvd7, [r3], #-440 - 3f10: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 3f14: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3f18: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 3f1c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 3f20: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 3f24: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 3f28: 43206e6f teqmi r0, #1776 ; 0x6f0 - 3f2c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3f30: 656c6c6f strbvs r6, [ip, #-3183]! - 3f34: 65445c72 strbvs r5, [r4, #-3186] - 3f38: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 3f3c: 7473694c ldrbtvc r6, [r3], #-2380 - 3f40: 2d20225c sfmcs f2, 4, [r0, #-368]! - 3f44: 6169642d cmnvs r9, sp, lsr #8 - 3f48: 75735f67 ldrbvc r5, [r3, #-3943]! - 3f4c: 65727070 ldrbvs r7, [r2, #-112]! - 3f50: 50207373 eorpl r7, r0, r3, ror r3 - 3f54: 31353965 teqcc r5, r5, ror #18 - 3f58: 3165502c cmncc r5, ip, lsr #32 - 3f5c: 502c3131 eorpl r3, ip, r1, lsr r1 - 3f60: 30343965 eorscc r3, r4, r5, ror #18 - 3f64: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 3f68: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 3f6c: 75636f44 strbvc r6, [r3, #-3908]! - 3f70: 746e656d strbtvc r6, [lr], #-1389 - 3f74: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 3f78: 65532064 ldrbvs r2, [r3, #-100] - 3f7c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 3f80: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 3f84: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 3f88: 4d5c6172 ldfmie f6, [ip, #-456] - 3f8c: 6f442079 svcvs 0x00442079 - 3f90: 656d7563 strbvs r7, [sp, #-1379]! - 3f94: 5c73746e cfldrdpl mvd7, [r3], #-440 - 3f98: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 3f9c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3fa0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 3fa4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 3fa8: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 3fac: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 3fb0: 43206e6f teqmi r0, #1776 ; 0x6f0 - 3fb4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 3fb8: 656c6c6f strbvs r6, [ip, #-3183]! - 3fbc: 65445c72 strbvs r5, [r4, #-3186] - 3fc0: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 3fc4: 5c6a624f sfmpl f6, 2, [sl], #-316 - 3fc8: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 3fcc: 75626564 strbvc r6, [r2, #-1380]! - 3fd0: 2d2d2067 stccs 0, cr2, [sp, #-412]! - 3fd4: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 3fd8: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 - 3fdc: 6c747469 cfldrdvs mvd7, [r4], #-420 - 3fe0: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 3fe4: 3d757063 ldclcc 0, cr7, [r5, #-396]! - 3fe8: 374d5241 strbcc r5, [sp, -r1, asr #4] - 3fec: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ - 3ff0: 2d20532d stccs 3, cr5, [r0, #-180]! - 3ff4: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 3ff8: 3d757066 ldclcc 0, cr7, [r5, #-408]! - 3ffc: 656e6f4e strbvs r6, [lr, #-3918]! - 4000: 642d2d20 strtvs r2, [sp], #-3360 - 4004: 5f62696c svcpl 0x0062696c - 4008: 666e6f63 strbtvs r6, [lr], -r3, ror #30 - 400c: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 - 4010: 505c3a43 subspl r3, ip, r3, asr #20 - 4014: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 - 4018: 46206d61 strtmi r6, [r0], -r1, ror #26 - 401c: 73656c69 cmnvc r5, #26880 ; 0x6900 - 4020: 5241495c subpl r4, r1, #1507328 ; 0x170000 - 4024: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 - 4028: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 - 402c: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 - 4030: 65646465 strbvs r6, [r4, #-1125]! - 4034: 6f572064 svcvs 0x00572064 - 4038: 65626b72 strbvs r6, [r2, #-2930]! - 403c: 2068636e rsbcs r6, r8, lr, ror #6 - 4040: 20342e35 eorscs r2, r4, r5, lsr lr - 4044: 6b63694b blvs 18de578 - 4048: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - 404c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 - 4050: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} - 4054: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 - 4058: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 - 405c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 4060: 6f4e5f67 svcvs 0x004e5f67 - 4064: 6c616d72 stclvs 13, cr6, [r1], #-456 - 4068: 2022682e eorcs r6, r2, lr, lsr #16 - 406c: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 4070: 445c3a43 ldrbmi r3, [ip], #-2627 - 4074: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4078: 73746e65 cmnvc r4, #1616 ; 0x650 - 407c: 646e6120 strbtvs r6, [lr], #-288 - 4080: 74655320 strbtvc r5, [r5], #-800 - 4084: 676e6974 undefined - 4088: 616d5c73 smcvs 54723 - 408c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4090: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4094: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4098: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 409c: 775c7374 undefined - 40a0: 6f632d73 svcvs 0x00632d73 - 40a4: 6f72746e svcvs 0x0072746e - 40a8: 65575c6c ldrbvs r5, [r7, #-3180] - 40ac: 65687461 strbvs r7, [r8, #-1121]! - 40b0: 74532072 ldrbvc r2, [r3], #-114 - 40b4: 6f697461 svcvs 0x00697461 - 40b8: 6f43206e svcvs 0x0043206e - 40bc: 6f72746e svcvs 0x0072746e - 40c0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 40c4: 414d535c cmpmi sp, ip, asr r3 - 40c8: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 40cc: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 40d0: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 40d4: 66726574 undefined - 40d8: 5c656361 stclpl 3, cr6, [r5], #-388 - 40dc: 492d2022 pushmi {r1, r5, sp} - 40e0: 3a432220 bcc 10cc968 - 40e4: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 40e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 40ec: 61207374 teqvs r0, r4, ror r3 - 40f0: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 40f4: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 40f8: 5c73676e ldclpl 7, cr6, [r3], #-440 - 40fc: 766c616d strbtvc r6, [ip], -sp, ror #2 - 4100: 5c617269 sfmpl f7, 2, [r1], #-420 - 4104: 4420794d strtmi r7, [r0], #-2381 - 4108: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 410c: 73746e65 cmnvc r4, #1616 ; 0x650 - 4110: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 4114: 746e6f63 strbtvc r6, [lr], #-3939 - 4118: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 411c: 74616557 strbtvc r6, [r1], #-1367 - 4120: 20726568 rsbscs r6, r2, r8, ror #10 - 4124: 74617453 strbtvc r7, [r1], #-1107 - 4128: 206e6f69 rsbcs r6, lr, r9, ror #30 - 412c: 746e6f43 strbtvc r6, [lr], #-3907 - 4130: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 4134: 505c7265 subspl r7, ip, r5, ror #4 - 4138: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ - 413c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 4140: 65636166 strbvs r6, [r3, #-358]! - 4144: 2d20225c sfmcs f2, 4, [r0, #-368]! - 4148: 43222049 teqmi r2, #73 ; 0x49 - 414c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 - 4150: 6172676f cmnvs r2, pc, ror #14 - 4154: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ - 4158: 5c73656c cfldr64pl mvdx6, [r3], #-432 - 415c: 20524149 subscs r4, r2, r9, asr #2 - 4160: 74737953 ldrbtvc r7, [r3], #-2387 - 4164: 5c736d65 ldclpl 13, cr6, [r3], #-404 - 4168: 65626d45 strbvs r6, [r2, #-3397]! - 416c: 64656464 strbtvs r6, [r5], #-1124 - 4170: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 - 4174: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} - 4178: 35206863 strcc r6, [r0, #-2147]! - 417c: 4b20342e blmi 81123c - 4180: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 - 4184: 74726174 ldrbtvc r6, [r2], #-372 - 4188: 6d72615c ldfvse f6, [r2, #-368]! - 418c: 434e495c movtmi r4, #59740 ; 0xe95c - 4190: 2d20225c sfmcs f2, 4, [r0, #-368]! - 4194: 746e692d strbtvc r6, [lr], #-2349 - 4198: 6f777265 svcvs 0x00777265 - 419c: 2d206b72 vstmdbcs r0!, {d6-} - 41a0: 7570632d ldrbvc r6, [r0, #-813]! - 41a4: 646f6d5f strbtvs r6, [pc], #3423 ; 41ac - 41a8: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ - 41ac: 20626d75 rsbcs r6, r2, r5, ror sp - 41b0: 00684f2d rsbeq r4, r8, sp, lsr #30 - 41b4: 5c3a4300 ldcpl 3, cr4, [sl] - 41b8: 75636f44 strbvc r6, [r3, #-3908]! - 41bc: 746e656d strbtvc r6, [lr], #-1389 - 41c0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 41c4: 65532064 ldrbvs r2, [r3, #-100] - 41c8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 41cc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 41d0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 41d4: 4d5c6172 ldfmie f6, [ip, #-456] - 41d8: 6f442079 svcvs 0x00442079 - 41dc: 656d7563 strbvs r7, [sp, #-1379]! - 41e0: 5c73746e cfldrdpl mvd7, [r3], #-440 - 41e4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 41e8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 41ec: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 41f0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 41f4: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 41f8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 41fc: 43206e6f teqmi r0, #1776 ; 0x6f0 - 4200: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4204: 656c6c6f strbvs r6, [ip, #-3183]! - 4208: 65445c72 strbvs r5, [r4, #-3186] - 420c: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 4210: 5c6a624f sfmpl f6, 2, [sl], #-316 - 4214: 65726957 ldrbvs r6, [r2, #-2391]! - 4218: 7373656c cmnvc r3, #452984832 ; 0x1b000000 - 421c: 6b6e694c blvs 1b9e754 - 4220: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 4224: 3a6f2e74 bcc 1bcfbfc - 4228: 41490000 cmpmi r9, r0 - 422c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 4230: 43204953 teqmi r0, #1359872 ; 0x14c000 - 4234: 2b2b432f blcs ad4ef8 - 4238: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 423c: 656c6970 strbvs r6, [ip, #-2416]! - 4240: 35562072 ldrbcc r2, [r6, #-114] - 4244: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 4248: 31332e32 teqcc r3, r2, lsr lr - 424c: 2f353932 svccs 0x00353932 - 4250: 20323357 eorscs r3, r2, r7, asr r3 - 4254: 4b43494b blmi 10d6788 - 4258: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 - 425c: 6f662054 svcvs 0x00662054 - 4260: 52412072 subpl r2, r1, #114 ; 0x72 - 4264: 4322004d teqmi r2, #77 ; 0x4d - 4268: 6f445c3a svcvs 0x00445c3a - 426c: 656d7563 strbvs r7, [sp, #-1379]! - 4270: 2073746e rsbscs r7, r3, lr, ror #8 - 4274: 20646e61 rsbcs r6, r4, r1, ror #28 - 4278: 74746553 ldrbtvc r6, [r4], #-1363 - 427c: 73676e69 cmnvc r7, #1680 ; 0x690 - 4280: 6c616d5c stclvs 13, cr6, [r1], #-368 - 4284: 61726976 cmnvs r2, r6, ror r9 - 4288: 20794d5c rsbscs r4, r9, ip, asr sp - 428c: 75636f44 strbvc r6, [r3, #-3908]! - 4290: 746e656d strbtvc r6, [lr], #-1389 - 4294: 73775c73 cmnvc r7, #29440 ; 0x7300 - 4298: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 429c: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 42a0: 6165575c cmnvs r5, ip, asr r7 - 42a4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 42a8: 61745320 cmnvs r4, r0, lsr #6 - 42ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 42b0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 42b4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 42b8: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 42bc: 43414d53 movtmi r4, #7507 ; 0x1d53 - 42c0: 756f535c strbvc r5, [pc, #-860]! ; 3f6c - 42c4: 5c656372 stclpl 3, cr6, [r5], #-456 - 42c8: 65726957 ldrbvs r6, [r2, #-2391]! - 42cc: 7373656c cmnvc r3, #452984832 ; 0x1b000000 - 42d0: 6b6e694c blvs 1b9e808 - 42d4: 6d676e4d stclvs 14, cr6, [r7, #-308]! - 42d8: 22632e74 rsbcs r2, r3, #1856 ; 0x740 - 42dc: 20442d20 subcs r2, r4, r0, lsr #26 - 42e0: 4d343246 lfmmi f3, 4, [r4, #-280]! - 42e4: 2d205a48 fstmdbscs r0!, {s10-s81} - 42e8: 45532044 ldrbmi r2, [r3, #-68] - 42ec: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ - 42f0: 455f5954 ldrbmi r5, [pc, #-2388] ; 39a4 - 42f4: 4c42414e stfmie f4, [r2], {78} - 42f8: 2d204445 cfstrscs mvf4, [r0, #-276]! - 42fc: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 - 4300: 445c3a43 ldrbmi r3, [ip], #-2627 - 4304: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4308: 73746e65 cmnvc r4, #1616 ; 0x650 - 430c: 646e6120 strbtvs r6, [lr], #-288 - 4310: 74655320 strbtvc r5, [r5], #-800 - 4314: 676e6974 undefined - 4318: 616d5c73 smcvs 54723 - 431c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4320: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4324: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4328: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 432c: 775c7374 undefined - 4330: 6f632d73 svcvs 0x00632d73 - 4334: 6f72746e svcvs 0x0072746e - 4338: 65575c6c ldrbvs r5, [r7, #-3180] - 433c: 65687461 strbvs r7, [r8, #-1121]! - 4340: 74532072 ldrbvc r2, [r3], #-114 - 4344: 6f697461 svcvs 0x00697461 - 4348: 6f43206e svcvs 0x0043206e - 434c: 6f72746e svcvs 0x0072746e - 4350: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4354: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 4358: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 - 435c: 5c747369 ldclpl 3, cr7, [r4], #-420 - 4360: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 4364: 67616964 strbvs r6, [r1, -r4, ror #18]! - 4368: 7075735f rsbsvc r7, r5, pc, asr r3 - 436c: 73657270 cmnvc r5, #7 ; 0x7 - 4370: 65502073 ldrbvs r2, [r0, #-115] - 4374: 2c313539 cfldr32cs mvfx3, [r1], #-228 - 4378: 31316550 teqcc r1, r0, asr r5 - 437c: 65502c31 ldrbvs r2, [r0, #-3121] - 4380: 20303439 eorscs r3, r0, r9, lsr r4 - 4384: 22206f2d eorcs r6, r0, #180 ; 0xb4 - 4388: 445c3a43 ldrbmi r3, [ip], #-2627 - 438c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4390: 73746e65 cmnvc r4, #1616 ; 0x650 - 4394: 646e6120 strbtvs r6, [lr], #-288 - 4398: 74655320 strbtvc r5, [r5], #-800 - 439c: 676e6974 undefined - 43a0: 616d5c73 smcvs 54723 - 43a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 43a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 43ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 43b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 43b4: 775c7374 undefined - 43b8: 6f632d73 svcvs 0x00632d73 - 43bc: 6f72746e svcvs 0x0072746e - 43c0: 65575c6c ldrbvs r5, [r7, #-3180] - 43c4: 65687461 strbvs r7, [r8, #-1121]! - 43c8: 74532072 ldrbvc r2, [r3], #-114 - 43cc: 6f697461 svcvs 0x00697461 - 43d0: 6f43206e svcvs 0x0043206e - 43d4: 6f72746e svcvs 0x0072746e - 43d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 43dc: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 43e0: 4f5c6775 svcmi 0x005c6775 - 43e4: 225c6a62 subscs r6, ip, #401408 ; 0x62000 - 43e8: 642d2d20 strtvs r2, [sp], #-3360 - 43ec: 67756265 ldrbvs r6, [r5, -r5, ror #4]! - 43f0: 652d2d20 strvs r2, [sp, #-3360]! - 43f4: 6169646e cmnvs r9, lr, ror #8 - 43f8: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ - 43fc: 656c7474 strbvs r7, [ip, #-1140]! - 4400: 632d2d20 teqvs sp, #2048 ; 0x800 - 4404: 413d7570 teqmi sp, r0, ror r5 - 4408: 54374d52 ldrtpl r4, [r7], #-3410 - 440c: 2d494d44 stclcs 13, cr4, [r9, #-272] - 4410: 652d2053 strvs r2, [sp, #-83]! - 4414: 662d2d20 strtvs r2, [sp], -r0, lsr #26 - 4418: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} - 441c: 20656e6f rsbcs r6, r5, pc, ror #28 - 4420: 6c642d2d stclvs 13, cr2, [r4], #-180 - 4424: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 - 4428: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 442c: 43222067 teqmi r2, #103 ; 0x67 - 4430: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 - 4434: 6172676f cmnvs r2, pc, ror #14 - 4438: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ - 443c: 5c73656c cfldr64pl mvdx6, [r3], #-432 - 4440: 20524149 subscs r4, r2, r9, asr #2 - 4444: 74737953 ldrbtvc r7, [r3], #-2387 - 4448: 5c736d65 ldclpl 13, cr6, [r3], #-404 - 444c: 65626d45 strbvs r6, [r2, #-3397]! - 4450: 64656464 strbtvs r6, [r5], #-1124 - 4454: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 - 4458: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} - 445c: 35206863 strcc r6, [r0, #-2147]! - 4460: 4b20342e blmi 811520 - 4464: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 - 4468: 74726174 ldrbtvc r6, [r2], #-372 - 446c: 6d72615c ldfvse f6, [r2, #-368]! - 4470: 434e495c movtmi r4, #59740 ; 0xe95c - 4474: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ - 4478: 6f435f62 svcvs 0x00435f62 - 447c: 6769666e strbvs r6, [r9, -lr, ror #12]! - 4480: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 - 4484: 2e6c616d powcsez f6, f4, #5.0 - 4488: 2d202268 sfmcs f2, 4, [r0, #-416]! - 448c: 43222049 teqmi r2, #73 ; 0x49 - 4490: 6f445c3a svcvs 0x00445c3a - 4494: 656d7563 strbvs r7, [sp, #-1379]! - 4498: 2073746e rsbscs r7, r3, lr, ror #8 - 449c: 20646e61 rsbcs r6, r4, r1, ror #28 - 44a0: 74746553 ldrbtvc r6, [r4], #-1363 - 44a4: 73676e69 cmnvc r7, #1680 ; 0x690 - 44a8: 6c616d5c stclvs 13, cr6, [r1], #-368 - 44ac: 61726976 cmnvs r2, r6, ror r9 - 44b0: 20794d5c rsbscs r4, r9, ip, asr sp - 44b4: 75636f44 strbvc r6, [r3, #-3908]! - 44b8: 746e656d strbtvc r6, [lr], #-1389 - 44bc: 73775c73 cmnvc r7, #29440 ; 0x7300 - 44c0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} - 44c4: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 44c8: 6165575c cmnvs r5, ip, asr r7 - 44cc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 - 44d0: 61745320 cmnvs r4, r0, lsr #6 - 44d4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 44d8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} - 44dc: 6c6f7274 sfmvs f7, 2, [pc], #-464 - 44e0: 5c72656c cfldr64pl mvdx6, [r2], #-432 - 44e4: 43414d53 movtmi r4, #7507 ; 0x1d53 - 44e8: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ - 44ec: 73726576 cmnvc r2, #494927872 ; 0x1d800000 - 44f0: 746e495c strbtvc r4, [lr], #-2396 - 44f4: 61667265 cmnvs r6, r5, ror #4 - 44f8: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 - 44fc: 20492d20 subcs r2, r9, r0, lsr #26 - 4500: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 4504: 75636f44 strbvc r6, [r3, #-3908]! - 4508: 746e656d strbtvc r6, [lr], #-1389 - 450c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 4510: 65532064 ldrbvs r2, [r3, #-100] - 4514: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 4518: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 451c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 4520: 4d5c6172 ldfmie f6, [ip, #-456] - 4524: 6f442079 svcvs 0x00442079 - 4528: 656d7563 strbvs r7, [sp, #-1379]! - 452c: 5c73746e cfldrdpl mvd7, [r3], #-440 - 4530: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 4534: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4538: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 453c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 4540: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 4544: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 4548: 43206e6f teqmi r0, #1776 ; 0x6f0 - 454c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4550: 656c6c6f strbvs r6, [ip, #-3183]! - 4554: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 - 4558: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} - 455c: 66726574 undefined - 4560: 5c656361 stclpl 3, cr6, [r5], #-388 - 4564: 492d2022 pushmi {r1, r5, sp} - 4568: 3a432220 bcc 10ccdf0 - 456c: 6f72505c svcvs 0x0072505c - 4570: 6d617267 sfmvs f7, 2, [r1, #-412]! - 4574: 6c694620 stclvs 6, cr4, [r9], #-128 - 4578: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - 457c: 53205241 teqpl r0, #268435460 ; 0x10000004 - 4580: 65747379 ldrbvs r7, [r4, #-889]! - 4584: 455c736d ldrbmi r7, [ip, #-877] - 4588: 6465626d strbtvs r6, [r5], #-621 - 458c: 20646564 rsbcs r6, r4, r4, ror #10 - 4590: 6b726f57 blvs 1ca02f4 - 4594: 636e6562 cmnvs lr, #411041792 ; 0x18800000 - 4598: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} - 459c: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ - 45a0: 74736b63 ldrbtvc r6, [r3], #-2915 - 45a4: 5c747261 lfmpl f7, 2, [r4], #-388 - 45a8: 5c6d7261 sfmpl f7, 2, [sp], #-388 - 45ac: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 - 45b0: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 45b4: 65746e69 ldrbvs r6, [r4, #-3689]! - 45b8: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 - 45bc: 2d2d206b stccs 0, cr2, [sp, #-428]! - 45c0: 5f757063 svcpl 0x00757063 - 45c4: 65646f6d strbvs r6, [r4, #-3949]! - 45c8: 75687420 strbvc r7, [r8, #-1056]! - 45cc: 2d20626d sfmcs f6, 4, [r0, #-436]! - 45d0: 0000684f andeq r6, r0, pc, asr #16 - 45d4: 445c3a43 ldrbmi r3, [ip], #-2627 - 45d8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 45dc: 73746e65 cmnvc r4, #1616 ; 0x650 - 45e0: 646e6120 strbtvs r6, [lr], #-288 - 45e4: 74655320 strbtvc r5, [r5], #-800 - 45e8: 676e6974 undefined - 45ec: 616d5c73 smcvs 54723 - 45f0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 45f4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 45f8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 45fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4600: 775c7374 undefined - 4604: 6f632d73 svcvs 0x00632d73 - 4608: 6f72746e svcvs 0x0072746e - 460c: 65575c6c ldrbvs r5, [r7, #-3180] - 4610: 65687461 strbvs r7, [r8, #-1121]! - 4614: 74532072 ldrbvc r2, [r3], #-114 - 4618: 6f697461 svcvs 0x00697461 - 461c: 6f43206e svcvs 0x0043206e - 4620: 6f72746e svcvs 0x0072746e - 4624: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4628: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 - 462c: 4f5c6775 svcmi 0x005c6775 - 4630: 6d5c6a62 fldsvs s13, [ip, #-392] - 4634: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} - 4638: 00003a6f andeq r3, r0, pc, ror #20 - 463c: 20524149 subscs r4, r2, r9, asr #2 - 4640: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 4644: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 4648: 43202b2b teqmi r0, #44032 ; 0xac00 - 464c: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 4650: 2072656c rsbscs r6, r2, ip, ror #10 - 4654: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 4658: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} - 465c: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} - 4660: 33572f35 cmpcc r7, #212 ; 0xd4 - 4664: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ - 4668: 54534b43 ldrbpl r4, [r3], #-2883 - 466c: 20545241 subscs r5, r4, r1, asr #4 - 4670: 20726f66 rsbscs r6, r2, r6, ror #30 - 4674: 004d5241 subeq r5, sp, r1, asr #4 - 4678: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 467c: 75636f44 strbvc r6, [r3, #-3908]! - 4680: 746e656d strbtvc r6, [lr], #-1389 - 4684: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 4688: 65532064 ldrbvs r2, [r3, #-100] - 468c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 4690: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 4694: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 4698: 4d5c6172 ldfmie f6, [ip, #-456] - 469c: 6f442079 svcvs 0x00442079 - 46a0: 656d7563 strbvs r7, [sp, #-1379]! - 46a4: 5c73746e cfldrdpl mvd7, [r3], #-440 - 46a8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 46ac: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 46b0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 46b4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 46b8: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 46bc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 46c0: 43206e6f teqmi r0, #1776 ; 0x6f0 - 46c4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 46c8: 656c6c6f strbvs r6, [ip, #-3183]! - 46cc: 4d535c72 ldclmi 12, cr5, [r3, #-456] - 46d0: 445c4341 ldrbmi r4, [ip], #-833 - 46d4: 65766972 ldrbvs r6, [r6, #-2418]! - 46d8: 535c7372 cmppl ip, #-939524095 ; 0xc8000001 - 46dc: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 - 46e0: 616d5c65 cmnvs sp, r5, ror #24 - 46e4: 632e6163 teqvs lr, #-1073741800 ; 0xc0000018 - 46e8: 442d2022 strtmi r2, [sp], #-34 - 46ec: 34324620 ldrtcc r4, [r2], #-1568 - 46f0: 205a484d subscs r4, sl, sp, asr #16 - 46f4: 5320442d teqpl r0, #754974720 ; 0x2d000000 - 46f8: 52554345 subspl r4, r5, #335544321 ; 0x14000001 - 46fc: 5f595449 svcpl 0x00595449 - 4700: 42414e45 submi r4, r1, #1104 ; 0x450 - 4704: 2044454c subcs r4, r4, ip, asr #10 - 4708: 20436c2d subcs r6, r3, sp, lsr #24 - 470c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 4710: 75636f44 strbvc r6, [r3, #-3908]! - 4714: 746e656d strbtvc r6, [lr], #-1389 - 4718: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 471c: 65532064 ldrbvs r2, [r3, #-100] - 4720: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 4724: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 4728: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 472c: 4d5c6172 ldfmie f6, [ip, #-456] - 4730: 6f442079 svcvs 0x00442079 - 4734: 656d7563 strbvs r7, [sp, #-1379]! - 4738: 5c73746e cfldrdpl mvd7, [r3], #-440 - 473c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 4740: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4744: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 4748: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 474c: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 4750: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 4754: 43206e6f teqmi r0, #1776 ; 0x6f0 - 4758: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 475c: 656c6c6f strbvs r6, [ip, #-3183]! - 4760: 65445c72 strbvs r5, [r4, #-3186] - 4764: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 4768: 7473694c ldrbtvc r6, [r3], #-2380 - 476c: 2d20225c sfmcs f2, 4, [r0, #-368]! - 4770: 6169642d cmnvs r9, sp, lsr #8 - 4774: 75735f67 ldrbvc r5, [r3, #-3943]! - 4778: 65727070 ldrbvs r7, [r2, #-112]! - 477c: 50207373 eorpl r7, r0, r3, ror r3 - 4780: 31353965 teqcc r5, r5, ror #18 - 4784: 3165502c cmncc r5, ip, lsr #32 - 4788: 502c3131 eorpl r3, ip, r1, lsr r1 - 478c: 30343965 eorscc r3, r4, r5, ror #18 - 4790: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 4794: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 4798: 75636f44 strbvc r6, [r3, #-3908]! - 479c: 746e656d strbtvc r6, [lr], #-1389 - 47a0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 47a4: 65532064 ldrbvs r2, [r3, #-100] - 47a8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 47ac: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 47b0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 47b4: 4d5c6172 ldfmie f6, [ip, #-456] - 47b8: 6f442079 svcvs 0x00442079 - 47bc: 656d7563 strbvs r7, [sp, #-1379]! - 47c0: 5c73746e cfldrdpl mvd7, [r3], #-440 - 47c4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 47c8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 47cc: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 47d0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 47d4: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 47d8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 47dc: 43206e6f teqmi r0, #1776 ; 0x6f0 - 47e0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 47e4: 656c6c6f strbvs r6, [ip, #-3183]! - 47e8: 65445c72 strbvs r5, [r4, #-3186] - 47ec: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 47f0: 5c6a624f sfmpl f6, 2, [sl], #-316 - 47f4: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 47f8: 75626564 strbvc r6, [r2, #-1380]! - 47fc: 2d2d2067 stccs 0, cr2, [sp, #-412]! - 4800: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 4804: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 - 4808: 6c747469 cfldrdvs mvd7, [r4], #-420 - 480c: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 4810: 3d757063 ldclcc 0, cr7, [r5, #-396]! - 4814: 374d5241 strbcc r5, [sp, -r1, asr #4] - 4818: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ - 481c: 2d20532d stccs 3, cr5, [r0, #-180]! - 4820: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 4824: 3d757066 ldclcc 0, cr7, [r5, #-408]! - 4828: 656e6f4e strbvs r6, [lr, #-3918]! - 482c: 642d2d20 strtvs r2, [sp], #-3360 - 4830: 5f62696c svcpl 0x0062696c - 4834: 666e6f63 strbtvs r6, [lr], -r3, ror #30 - 4838: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 - 483c: 505c3a43 subspl r3, ip, r3, asr #20 - 4840: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 - 4844: 46206d61 strtmi r6, [r0], -r1, ror #26 - 4848: 73656c69 cmnvc r5, #26880 ; 0x6900 - 484c: 5241495c subpl r4, r1, #1507328 ; 0x170000 - 4850: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 - 4854: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 - 4858: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 - 485c: 65646465 strbvs r6, [r4, #-1125]! - 4860: 6f572064 svcvs 0x00572064 - 4864: 65626b72 strbvs r6, [r2, #-2930]! - 4868: 2068636e rsbcs r6, r8, lr, ror #6 - 486c: 20342e35 eorscs r2, r4, r5, lsr lr - 4870: 6b63694b blvs 18deda4 - 4874: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - 4878: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 - 487c: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} - 4880: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 - 4884: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 - 4888: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 488c: 6f4e5f67 svcvs 0x004e5f67 - 4890: 6c616d72 stclvs 13, cr6, [r1], #-456 - 4894: 2022682e eorcs r6, r2, lr, lsr #16 - 4898: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 489c: 445c3a43 ldrbmi r3, [ip], #-2627 - 48a0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 48a4: 73746e65 cmnvc r4, #1616 ; 0x650 - 48a8: 646e6120 strbtvs r6, [lr], #-288 - 48ac: 74655320 strbtvc r5, [r5], #-800 - 48b0: 676e6974 undefined - 48b4: 616d5c73 smcvs 54723 - 48b8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 48bc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 48c0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 48c4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 48c8: 775c7374 undefined - 48cc: 6f632d73 svcvs 0x00632d73 - 48d0: 6f72746e svcvs 0x0072746e - 48d4: 65575c6c ldrbvs r5, [r7, #-3180] - 48d8: 65687461 strbvs r7, [r8, #-1121]! - 48dc: 74532072 ldrbvc r2, [r3], #-114 - 48e0: 6f697461 svcvs 0x00697461 - 48e4: 6f43206e svcvs 0x0043206e - 48e8: 6f72746e svcvs 0x0072746e - 48ec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 48f0: 414d535c cmpmi sp, ip, asr r3 - 48f4: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 48f8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 48fc: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 4900: 66726574 undefined - 4904: 5c656361 stclpl 3, cr6, [r5], #-388 - 4908: 492d2022 pushmi {r1, r5, sp} - 490c: 3a432220 bcc 10cd194 - 4910: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 4914: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4918: 61207374 teqvs r0, r4, ror r3 - 491c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 4920: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 4924: 5c73676e ldclpl 7, cr6, [r3], #-440 - 4928: 766c616d strbtvc r6, [ip], -sp, ror #2 - 492c: 5c617269 sfmpl f7, 2, [r1], #-420 - 4930: 4420794d strtmi r7, [r0], #-2381 - 4934: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4938: 73746e65 cmnvc r4, #1616 ; 0x650 - 493c: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 4940: 746e6f63 strbtvc r6, [lr], #-3939 - 4944: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 4948: 74616557 strbtvc r6, [r1], #-1367 - 494c: 20726568 rsbscs r6, r2, r8, ror #10 - 4950: 74617453 strbtvc r7, [r1], #-1107 - 4954: 206e6f69 rsbcs r6, lr, r9, ror #30 - 4958: 746e6f43 strbtvc r6, [lr], #-3907 - 495c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 4960: 505c7265 subspl r7, ip, r5, ror #4 - 4964: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ - 4968: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 496c: 65636166 strbvs r6, [r3, #-358]! - 4970: 2d20225c sfmcs f2, 4, [r0, #-368]! - 4974: 43222049 teqmi r2, #73 ; 0x49 - 4978: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 - 497c: 6172676f cmnvs r2, pc, ror #14 - 4980: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ - 4984: 5c73656c cfldr64pl mvdx6, [r3], #-432 - 4988: 20524149 subscs r4, r2, r9, asr #2 - 498c: 74737953 ldrbtvc r7, [r3], #-2387 - 4990: 5c736d65 ldclpl 13, cr6, [r3], #-404 - 4994: 65626d45 strbvs r6, [r2, #-3397]! - 4998: 64656464 strbtvs r6, [r5], #-1124 - 499c: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 - 49a0: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} - 49a4: 35206863 strcc r6, [r0, #-2147]! - 49a8: 4b20342e blmi 811a68 - 49ac: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 - 49b0: 74726174 ldrbtvc r6, [r2], #-372 - 49b4: 6d72615c ldfvse f6, [r2, #-368]! - 49b8: 434e495c movtmi r4, #59740 ; 0xe95c - 49bc: 2d20225c sfmcs f2, 4, [r0, #-368]! - 49c0: 746e692d strbtvc r6, [lr], #-2349 - 49c4: 6f777265 svcvs 0x00777265 - 49c8: 2d206b72 vstmdbcs r0!, {d6-} - 49cc: 7570632d ldrbvc r6, [r0, #-813]! - 49d0: 646f6d5f strbtvs r6, [pc], #3423 ; 49d8 - 49d4: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ - 49d8: 20626d75 rsbcs r6, r2, r5, ror sp - 49dc: 00684f2d rsbeq r4, r8, sp, lsr #30 - 49e0: 5c3a4300 ldcpl 3, cr4, [sl] - 49e4: 75636f44 strbvc r6, [r3, #-3908]! - 49e8: 746e656d strbtvc r6, [lr], #-1389 - 49ec: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 49f0: 65532064 ldrbvs r2, [r3, #-100] - 49f4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 49f8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 49fc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 4a00: 4d5c6172 ldfmie f6, [ip, #-456] - 4a04: 6f442079 svcvs 0x00442079 - 4a08: 656d7563 strbvs r7, [sp, #-1379]! - 4a0c: 5c73746e cfldrdpl mvd7, [r3], #-440 - 4a10: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 4a14: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4a18: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 4a1c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 4a20: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 4a24: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 4a28: 43206e6f teqmi r0, #1776 ; 0x6f0 - 4a2c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4a30: 656c6c6f strbvs r6, [ip, #-3183]! - 4a34: 65445c72 strbvs r5, [r4, #-3186] - 4a38: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 4a3c: 5c6a624f sfmpl f6, 2, [sl], #-316 - 4a40: 74616577 strbtvc r6, [r1], #-1399 - 4a44: 5f726568 svcpl 0x00726568 - 4a48: 74617473 strbtvc r7, [r1], #-1139 - 4a4c: 5f6e6f69 svcpl 0x006e6f69 - 4a50: 746e6f63 strbtvc r6, [lr], #-3939 - 4a54: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 4a58: 6f2e7265 svcvs 0x002e7265 - 4a5c: 4900003a stmdbmi r0, {r1, r3, r4, r5} - 4a60: 41205241 teqmi r0, r1, asr #4 - 4a64: 2049534e subcs r5, r9, lr, asr #6 - 4a68: 2b432f43 blcs 10d077c - 4a6c: 6f43202b svcvs 0x0043202b - 4a70: 6c69706d stclvs 0, cr7, [r9], #-436 - 4a74: 56207265 strtpl r7, [r0], -r5, ror #4 - 4a78: 30332e35 eorscc r2, r3, r5, lsr lr - 4a7c: 332e322e teqcc lr, #-536870910 ; 0xe0000002 - 4a80: 35393231 ldrcc r3, [r9, #-561]! - 4a84: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 4a88: 43494b20 movtmi r4, #39712 ; 0x9b20 - 4a8c: 4154534b cmpmi r4, fp, asr #6 - 4a90: 66205452 undefined - 4a94: 4120726f teqmi r0, pc, ror #4 - 4a98: 22004d52 andcs r4, r0, #5248 ; 0x1480 - 4a9c: 445c3a43 ldrbmi r3, [ip], #-2627 - 4aa0: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4aa4: 73746e65 cmnvc r4, #1616 ; 0x650 - 4aa8: 646e6120 strbtvs r6, [lr], #-288 - 4aac: 74655320 strbtvc r5, [r5], #-800 - 4ab0: 676e6974 undefined - 4ab4: 616d5c73 smcvs 54723 - 4ab8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4abc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4ac0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4ac4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4ac8: 775c7374 undefined - 4acc: 6f632d73 svcvs 0x00632d73 - 4ad0: 6f72746e svcvs 0x0072746e - 4ad4: 65575c6c ldrbvs r5, [r7, #-3180] - 4ad8: 65687461 strbvs r7, [r8, #-1121]! - 4adc: 74532072 ldrbvc r2, [r3], #-114 - 4ae0: 6f697461 svcvs 0x00697461 - 4ae4: 6f43206e svcvs 0x0043206e - 4ae8: 6f72746e svcvs 0x0072746e - 4aec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4af0: 7070415c rsbsvc r4, r0, ip, asr r1 - 4af4: 6163696c cmnvs r3, ip, ror #18 - 4af8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 4afc: 756f535c strbvc r5, [pc, #-860]! ; 47a8 - 4b00: 5c656372 stclpl 3, cr6, [r5], #-456 - 4b04: 74616577 strbtvc r6, [r1], #-1399 - 4b08: 5f726568 svcpl 0x00726568 - 4b0c: 74617473 strbtvc r7, [r1], #-1139 - 4b10: 5f6e6f69 svcpl 0x006e6f69 - 4b14: 746e6f63 strbtvc r6, [lr], #-3939 - 4b18: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 4b1c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 4b20: 442d2022 strtmi r2, [sp], #-34 - 4b24: 34324620 ldrtcc r4, [r2], #-1568 - 4b28: 205a484d subscs r4, sl, sp, asr #16 - 4b2c: 5320442d teqpl r0, #754974720 ; 0x2d000000 - 4b30: 52554345 subspl r4, r5, #335544321 ; 0x14000001 - 4b34: 5f595449 svcpl 0x00595449 - 4b38: 42414e45 submi r4, r1, #1104 ; 0x450 - 4b3c: 2044454c subcs r4, r4, ip, asr #10 - 4b40: 20436c2d subcs r6, r3, sp, lsr #24 - 4b44: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 4b48: 75636f44 strbvc r6, [r3, #-3908]! - 4b4c: 746e656d strbtvc r6, [lr], #-1389 - 4b50: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 4b54: 65532064 ldrbvs r2, [r3, #-100] - 4b58: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 4b5c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 4b60: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 4b64: 4d5c6172 ldfmie f6, [ip, #-456] - 4b68: 6f442079 svcvs 0x00442079 - 4b6c: 656d7563 strbvs r7, [sp, #-1379]! - 4b70: 5c73746e cfldrdpl mvd7, [r3], #-440 - 4b74: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 4b78: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4b7c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 4b80: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 4b84: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 4b88: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 4b8c: 43206e6f teqmi r0, #1776 ; 0x6f0 - 4b90: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4b94: 656c6c6f strbvs r6, [ip, #-3183]! - 4b98: 65445c72 strbvs r5, [r4, #-3186] - 4b9c: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 4ba0: 7473694c ldrbtvc r6, [r3], #-2380 - 4ba4: 2d20225c sfmcs f2, 4, [r0, #-368]! - 4ba8: 6169642d cmnvs r9, sp, lsr #8 - 4bac: 75735f67 ldrbvc r5, [r3, #-3943]! - 4bb0: 65727070 ldrbvs r7, [r2, #-112]! - 4bb4: 50207373 eorpl r7, r0, r3, ror r3 - 4bb8: 31353965 teqcc r5, r5, ror #18 - 4bbc: 3165502c cmncc r5, ip, lsr #32 - 4bc0: 502c3131 eorpl r3, ip, r1, lsr r1 - 4bc4: 30343965 eorscc r3, r4, r5, ror #18 - 4bc8: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 4bcc: 5c3a4322 ldcpl 3, cr4, [sl], #-136 - 4bd0: 75636f44 strbvc r6, [r3, #-3908]! - 4bd4: 746e656d strbtvc r6, [lr], #-1389 - 4bd8: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} - 4bdc: 65532064 ldrbvs r2, [r3, #-100] - 4be0: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} - 4be4: 6d5c7367 ldclvs 3, cr7, [ip, #-412] - 4be8: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ - 4bec: 4d5c6172 ldfmie f6, [ip, #-456] - 4bf0: 6f442079 svcvs 0x00442079 - 4bf4: 656d7563 strbvs r7, [sp, #-1379]! - 4bf8: 5c73746e cfldrdpl mvd7, [r3], #-440 - 4bfc: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 - 4c00: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4c04: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] - 4c08: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ - 4c0c: 53207265 teqpl r0, #1342177286 ; 0x50000006 - 4c10: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ - 4c14: 43206e6f teqmi r0, #1776 ; 0x6f0 - 4c18: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 - 4c1c: 656c6c6f strbvs r6, [ip, #-3183]! - 4c20: 65445c72 strbvs r5, [r4, #-3186] - 4c24: 5c677562 cfstr64pl mvdx7, [r7], #-392 - 4c28: 5c6a624f sfmpl f6, 2, [sl], #-316 - 4c2c: 2d2d2022 stccs 0, cr2, [sp, #-136]! - 4c30: 75626564 strbvc r6, [r2, #-1380]! - 4c34: 2d2d2067 stccs 0, cr2, [sp, #-412]! - 4c38: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 4c3c: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 - 4c40: 6c747469 cfldrdvs mvd7, [r4], #-420 - 4c44: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 4c48: 3d757063 ldclcc 0, cr7, [r5, #-396]! - 4c4c: 374d5241 strbcc r5, [sp, -r1, asr #4] - 4c50: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ - 4c54: 2d20532d stccs 3, cr5, [r0, #-180]! - 4c58: 2d2d2065 stccs 0, cr2, [sp, #-404]! - 4c5c: 3d757066 ldclcc 0, cr7, [r5, #-408]! - 4c60: 656e6f4e strbvs r6, [lr, #-3918]! - 4c64: 642d2d20 strtvs r2, [sp], #-3360 - 4c68: 5f62696c svcpl 0x0062696c - 4c6c: 666e6f63 strbtvs r6, [lr], -r3, ror #30 - 4c70: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 - 4c74: 505c3a43 subspl r3, ip, r3, asr #20 - 4c78: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 - 4c7c: 46206d61 strtmi r6, [r0], -r1, ror #26 - 4c80: 73656c69 cmnvc r5, #26880 ; 0x6900 - 4c84: 5241495c subpl r4, r1, #1507328 ; 0x170000 - 4c88: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 - 4c8c: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 - 4c90: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 - 4c94: 65646465 strbvs r6, [r4, #-1125]! - 4c98: 6f572064 svcvs 0x00572064 - 4c9c: 65626b72 strbvs r6, [r2, #-2930]! - 4ca0: 2068636e rsbcs r6, r8, lr, ror #6 - 4ca4: 20342e35 eorscs r2, r4, r5, lsr lr - 4ca8: 6b63694b blvs 18df1dc - 4cac: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 - 4cb0: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 - 4cb4: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} - 4cb8: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 - 4cbc: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 - 4cc0: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 4cc4: 6f4e5f67 svcvs 0x004e5f67 - 4cc8: 6c616d72 stclvs 13, cr6, [r1], #-456 - 4ccc: 2022682e eorcs r6, r2, lr, lsr #16 - 4cd0: 2220492d eorcs r4, r0, #737280 ; 0xb4000 - 4cd4: 445c3a43 ldrbmi r3, [ip], #-2627 - 4cd8: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4cdc: 73746e65 cmnvc r4, #1616 ; 0x650 - 4ce0: 646e6120 strbtvs r6, [lr], #-288 - 4ce4: 74655320 strbtvc r5, [r5], #-800 - 4ce8: 676e6974 undefined - 4cec: 616d5c73 smcvs 54723 - 4cf0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 - 4cf4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ - 4cf8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 - 4cfc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4d00: 775c7374 undefined - 4d04: 6f632d73 svcvs 0x00632d73 - 4d08: 6f72746e svcvs 0x0072746e - 4d0c: 65575c6c ldrbvs r5, [r7, #-3180] - 4d10: 65687461 strbvs r7, [r8, #-1121]! - 4d14: 74532072 ldrbvc r2, [r3], #-114 - 4d18: 6f697461 svcvs 0x00697461 - 4d1c: 6f43206e svcvs 0x0043206e - 4d20: 6f72746e svcvs 0x0072746e - 4d24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 - 4d28: 414d535c cmpmi sp, ip, asr r3 - 4d2c: 72445c43 subvc r5, r4, #17152 ; 0x4300 - 4d30: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 - 4d34: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} - 4d38: 66726574 undefined - 4d3c: 5c656361 stclpl 3, cr6, [r5], #-388 - 4d40: 492d2022 pushmi {r1, r5, sp} - 4d44: 3a432220 bcc 10cd5cc - 4d48: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 - 4d4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} - 4d50: 61207374 teqvs r0, r4, ror r3 - 4d54: 5320646e teqpl r0, #1845493760 ; 0x6e000000 - 4d58: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ - 4d5c: 5c73676e ldclpl 7, cr6, [r3], #-440 - 4d60: 766c616d strbtvc r6, [ip], -sp, ror #2 - 4d64: 5c617269 sfmpl f7, 2, [r1], #-420 - 4d68: 4420794d strtmi r7, [r0], #-2381 - 4d6c: 6d75636f ldclvs 3, cr6, [r5, #-444]! - 4d70: 73746e65 cmnvc r4, #1616 ; 0x650 - 4d74: 2d73775c ldclcs 7, cr7, [r3, #-368]! - 4d78: 746e6f63 strbtvc r6, [lr], #-3939 - 4d7c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 - 4d80: 74616557 strbtvc r6, [r1], #-1367 - 4d84: 20726568 rsbscs r6, r2, r8, ror #10 - 4d88: 74617453 strbtvc r7, [r1], #-1107 - 4d8c: 206e6f69 rsbcs r6, lr, r9, ror #30 - 4d90: 746e6f43 strbtvc r6, [lr], #-3907 - 4d94: 6c6c6f72 stclvs 15, cr6, [ip], #-456 - 4d98: 505c7265 subspl r7, ip, r5, ror #4 - 4d9c: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ - 4da0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 - 4da4: 65636166 strbvs r6, [r3, #-358]! - 4da8: 2d20225c sfmcs f2, 4, [r0, #-368]! - 4dac: 43222049 teqmi r2, #73 ; 0x49 - 4db0: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 - 4db4: 6172676f cmnvs r2, pc, ror #14 - 4db8: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ - 4dbc: 5c73656c cfldr64pl mvdx6, [r3], #-432 - 4dc0: 20524149 subscs r4, r2, r9, asr #2 - 4dc4: 74737953 ldrbtvc r7, [r3], #-2387 - 4dc8: 5c736d65 ldclpl 13, cr6, [r3], #-404 - 4dcc: 65626d45 strbvs r6, [r2, #-3397]! - 4dd0: 64656464 strbtvs r6, [r5], #-1124 - 4dd4: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 - 4dd8: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} - 4ddc: 35206863 strcc r6, [r0, #-2147]! - 4de0: 4b20342e blmi 811ea0 - 4de4: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 - 4de8: 74726174 ldrbtvc r6, [r2], #-372 - 4dec: 6d72615c ldfvse f6, [r2, #-368]! - 4df0: 434e495c movtmi r4, #59740 ; 0xe95c - 4df4: 2d20225c sfmcs f2, 4, [r0, #-368]! - 4df8: 746e692d strbtvc r6, [lr], #-2349 - 4dfc: 6f777265 svcvs 0x00777265 - 4e00: 2d206b72 vstmdbcs r0!, {d6-} - 4e04: 7570632d ldrbvc r6, [r0, #-813]! - 4e08: 646f6d5f strbtvs r6, [pc], #3423 ; 4e10 - 4e0c: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ - 4e10: 20626d75 rsbcs r6, r2, r5, ror sp - 4e14: 00684f2d rsbeq r4, r8, sp, lsr #30 - 4e18: 6d6f7200 sfmvs f7, 2, [pc] - 4e1c: 6d79732d ldclvs 3, cr7, [r9, #-180]! - 4e20: 736c6f62 cmnvc ip, #392 ; 0x188 - 4e24: 434c4c2d movtmi r4, #52269 ; 0xcc2d - 4e28: 4c286f2e stcmi 15, cr6, [r8], #-184 - 4e2c: 612e434c teqvs lr, ip, asr #6 - 4e30: 00003a29 andeq r3, r0, r9, lsr #20 - 4e34: 204d5241 subcs r5, sp, r1, asr #4 - 4e38: 6b6e694c blvs 1b9f370 - 4e3c: 202c7265 eorcs r7, ip, r5, ror #4 - 4e40: 31534441 cmpcc r3, r1, asr #8 - 4e44: 5b20312e blpl 811304 - 4e48: 6c697542 cfstr64vs mvdx7, [r9], #-264 - 4e4c: 30372064 eorscc r2, r7, r4, rrx - 4e50: 000a5d39 andeq r5, sl, r9, lsr sp - 4e54: 75706e49 ldrbvc r6, [r0, #-3657]! - 4e58: 6f432074 svcvs 0x00432074 - 4e5c: 6e656d6d cdpvs 13, 6, cr6, cr5, cr13, {3} - 4e60: 003a7374 eorseq r7, sl, r4, ror r3 - 4e64: 00000000 andeq r0, r0, r0 - 4e68: 5f707200 svcpl 0x00707200 - 4e6c: 74636576 strbtvc r6, [r3], #-1398 - 4e70: 495f726f ldmdbmi pc, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ - 4e74: 6f2e5241 svcvs 0x002e5241 - 4e78: 434c4c28 movtmi r4, #52264 ; 0xcc28 - 4e7c: 3a29612e bcc a5d33c - 4e80: 41490000 cmpmi r9, r0 - 4e84: 73412052 movtvc r2, #4178 ; 0x1052 - 4e88: 626d6573 rsbvs r6, sp, #482344960 ; 0x1cc00000 - 4e8c: 2072656c rsbscs r6, r2, ip, ror #10 - 4e90: 322e3556 eorcc r3, lr, #360710144 ; 0x15800000 - 4e94: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} - 4e98: 39383035 ldmdbcc r8!, {r0, r2, r4, r5, ip, sp} - 4e9c: 572f2032 undefined - 4ea0: 66203233 undefined - 4ea4: 4120726f teqmi r0, pc, ror #4 - 4ea8: 44004d52 strmi r4, [r0], #-3410 - 4eac: 43575c3a cmpmi r7, #14848 ; 0x3a00 - 4eb0: 72505f4f subsvc r5, r0, #316 ; 0x13c - 4eb4: 63656a6f cmnvs r5, #454656 ; 0x6f000 - 4eb8: 4b5c7374 blmi 1721c90 - 4ebc: 61626961 cmnvs r2, r1, ror #18 - 4ec0: 6c465c62 mcrrvs 12, 6, r5, r6, cr2 - 4ec4: 6469726f strbtvs r7, [r9], #-623 - 4ec8: 76652061 strbtvc r2, [r5], -r1, rrx - 4ecc: 61756c61 cmnvs r5, r1, ror #24 - 4ed0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 4ed4: 646f435c strbtvs r4, [pc], #860 ; 4edc - 4ed8: 73616265 cmnvc r1, #1342177286 ; 0x50000006 - 4edc: 72705c65 rsbsvc r5, r0, #25856 ; 0x6500 - 4ee0: 63656a6f cmnvs r5, #454656 ; 0x6f000 - 4ee4: 4c4c2074 mcrrmi 0, 7, r2, ip, cr4 - 4ee8: 6f662043 svcvs 0x00662043 - 4eec: 4d532072 ldclmi 0, cr2, [r3, #-456] - 4ef0: 705c4341 subsvc r4, ip, r1, asr #6 - 4ef4: 656a6f72 strbvs r6, [sl, #-3954]! - 4ef8: 4c207463 cfstrsmi mvf7, [r0], #-396 - 4efc: 6620434c strtvs r4, [r0], -ip, asr #6 - 4f00: 5320726f teqpl r0, #-268435450 ; 0xf0000006 - 4f04: 5c43414d stfple f4, [r3], {77} - 4f08: 775f6276 undefined - 4f0c: 505f6f63 subspl r6, pc, r3, ror #30 - 4f10: 53534d4c cmppl r3, #4864 ; 0x1300 - 4f14: 72615f4d rsbvc r5, r1, #308 ; 0x134 - 4f18: 4c5c376d mrrcmi 7, 6, r3, ip, cr13 - 4f1c: 535c434c cmppl ip, #805306369 ; 0x30000001 - 4f20: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 - 4f24: 4f525c65 svcmi 0x00525c65 - 4f28: 61505f4d cmpvs r0, sp, asr #30 - 4f2c: 69686374 stmdbvs r8!, {r2, r4, r5, r6, r8, r9, sp, lr}^ - 4f30: 725c676e subsvc r6, ip, #28835840 ; 0x1b80000 - 4f34: 65765f70 ldrbvs r5, [r6, #-3952]! - 4f38: 726f7463 rsbvc r7, pc, #1660944384 ; 0x63000000 - 4f3c: 5241495f subpl r4, r1, #1556480 ; 0x17c000 - 4f40: 2d20532e stccs 3, cr5, [r0, #-184]! - 4f44: 5c3a444f cfldrspl mvf4, [sl], #-316 - 4f48: 5f4f4357 svcpl 0x004f4357 - 4f4c: 6a6f7250 bvs 1be1894 - 4f50: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 - 4f54: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ - 4f58: 5c626162 stfple f6, [r2], #-392 - 4f5c: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 - 4f60: 20616469 rsbcs r6, r1, r9, ror #8 - 4f64: 6c617665 stclvs 6, cr7, [r1], #-404 - 4f68: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ - 4f6c: 435c6e6f cmpmi ip, #1776 ; 0x6f0 - 4f70: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 - 4f74: 5c657361 stclpl 3, cr7, [r5], #-388 - 4f78: 6a6f7270 bvs 1be1940 - 4f7c: 20746365 rsbscs r6, r4, r5, ror #6 - 4f80: 20434c4c subcs r4, r3, ip, asr #24 - 4f84: 20726f66 rsbscs r6, r2, r6, ror #30 - 4f88: 43414d53 movtmi r4, #7507 ; 0x1d53 - 4f8c: 6f72705c svcvs 0x0072705c - 4f90: 7463656a strbtvc r6, [r3], #-1386 - 4f94: 434c4c20 movtmi r4, #52256 ; 0xcc20 - 4f98: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 4f9c: 414d5320 cmpmi sp, r0, lsr #6 - 4fa0: 62765c43 rsbsvs r5, r6, #17152 ; 0x4300 - 4fa4: 6f63775f svcvs 0x0063775f - 4fa8: 4d4c505f stclmi 0, cr5, [ip, #-380] - 4fac: 5f4d5353 svcpl 0x004d5353 - 4fb0: 376d7261 strbcc r7, [sp, -r1, ror #4]! - 4fb4: 6975425c ldmdbvs r5!, {r2, r3, r4, r6, r9, lr}^ - 4fb8: 6f5c646c svcvs 0x005c646c - 4fbc: 6f5c7475 svcvs 0x005c7475 - 4fc0: 535c6a62 cmppl ip, #401408 ; 0x62000 - 4fc4: 646e6174 strbtvs r6, [lr], #-372 - 4fc8: 6e6f6c61 cdpvs 12, 6, cr6, cr15, cr1, {3} - 4fcc: 4f522d65 svcmi 0x00522d65 - 4fd0: 312e324d teqcc lr, sp, asr #4 - 4fd4: 7361422d cmnvc r1, #-805306366 ; 0xd0000002 - 4fd8: 522d6465 eorpl r6, sp, #1694498816 ; 0x65000000 - 4fdc: 61656c65 cmnvs r5, r5, ror #24 - 4fe0: 205c6573 subscs r6, ip, r3, ror r5 - 4fe4: 202b732d eorcs r7, fp, sp, lsr #6 - 4fe8: 3e3c4d2d cdpcc 13, 3, cr4, cr12, cr13, {1} - 4fec: 2b772d20 blcs 1dd0474 - 4ff0: 444c2d20 strbmi r2, [ip], #-3360 - 4ff4: 43575c3a cmpmi r7, #14848 ; 0x3a00 - 4ff8: 72505f4f subsvc r5, r0, #316 ; 0x13c - 4ffc: 63656a6f cmnvs r5, #454656 ; 0x6f000 - 5000: 4b5c7374 blmi 1721dd8 - 5004: 61626961 cmnvs r2, r1, ror #18 - 5008: 6c465c62 mcrrvs 12, 6, r5, r6, cr2 - 500c: 6469726f strbtvs r7, [r9], #-623 - 5010: 76652061 strbtvc r2, [r5], -r1, rrx - 5014: 61756c61 cmnvs r5, r1, ror #24 - 5018: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 501c: 646f435c strbtvs r4, [pc], #860 ; 5024 - 5020: 73616265 cmnvc r1, #1342177286 ; 0x50000006 - 5024: 72705c65 rsbsvc r5, r0, #25856 ; 0x6500 - 5028: 63656a6f cmnvs r5, #454656 ; 0x6f000 - 502c: 4c4c2074 mcrrmi 0, 7, r2, ip, cr4 - 5030: 6f662043 svcvs 0x00662043 - 5034: 4d532072 ldclmi 0, cr2, [r3, #-456] - 5038: 705c4341 subsvc r4, ip, r1, asr #6 - 503c: 656a6f72 strbvs r6, [sl, #-3954]! - 5040: 4c207463 cfstrsmi mvf7, [r0], #-396 - 5044: 6620434c strtvs r4, [r0], -ip, asr #6 - 5048: 5320726f teqpl r0, #-268435450 ; 0xf0000006 - 504c: 5c43414d stfple f4, [r3], {77} - 5050: 775f6276 undefined - 5054: 505f6f63 subspl r6, pc, r3, ror #30 - 5058: 53534d4c cmppl r3, #4864 ; 0x1300 - 505c: 72615f4d rsbvc r5, r1, #308 ; 0x134 - 5060: 425c376d subsmi r3, ip, #28573696 ; 0x1b40000 - 5064: 646c6975 strbtvs r6, [ip], #-2421 - 5068: 74756f5c ldrbtvc r6, [r5], #-3932 - 506c: 74736c5c ldrbtvc r6, [r3], #-3164 - 5070: 6174535c cmnvs r4, ip, asr r3 - 5074: 6c61646e cfstrdvs mvd6, [r1], #-440 - 5078: 2d656e6f stclcs 14, cr6, [r5, #-444]! - 507c: 324d4f52 subcc r4, sp, #328 ; 0x148 - 5080: 422d312e eormi r3, sp, #-2147483637 ; 0x8000000b - 5084: 64657361 strbtvs r7, [r5], #-865 - 5088: 6c65522d sfmvs f5, 2, [r5], #-180 - 508c: 65736165 ldrbvs r6, [r3, #-357]! - 5090: 632d205c teqvs sp, #92 ; 0x5c - 5094: 204d4f41 subcs r4, sp, r1, asr #30 - 5098: 2d20692d stccs 9, cr6, [r0, #-180]! - 509c: 742d2042 strtvc r2, [sp], #-66 - 50a0: 2d2d2038 stccs 0, cr2, [sp, #-224]! - 50a4: 20757063 rsbscs r7, r5, r3, rrx - 50a8: 374d5241 strbcc r5, [sp, -r1, asr #4] - 50ac: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ - 50b0: 2d20532d stccs 3, cr5, [r0, #-180]! - 50b4: 7570662d ldrbvc r6, [r0, #-1581]! - 50b8: 6e6f4e20 cdpvs 14, 6, cr4, cr15, cr0, {1} - 50bc: 53000065 movwpl r0, #101 ; 0x65 - 50c0: 68746e79 ldmdavs r4!, {r0, r3, r4, r5, r6, r9, sl, fp, sp, lr}^ - 50c4: 7a697365 bvc 1a61e60 - 50c8: 6f2e7265 svcvs 0x002e7265 - 50cc: 31434d28 cmpcc r3, r8, lsr #26 - 50d0: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} - 50d4: 3a29612e bcc a5d594 - 50d8: 41490000 cmpmi r9, r0 - 50dc: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 50e0: 43204953 teqmi r0, #1359872 ; 0x14c000 - 50e4: 2b2b432f blcs ad5da8 - 50e8: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 50ec: 656c6970 strbvs r6, [ip, #-2416]! - 50f0: 35562072 ldrbcc r2, [r6, #-114] - 50f4: 2e30322e cdpcs 2, 3, cr3, cr0, cr14, {1} - 50f8: 30352e30 eorscc r2, r5, r0, lsr lr - 50fc: 2f323938 svccs 0x00323938 - 5100: 20323357 eorscs r3, r2, r7, asr r3 - 5104: 20726f66 rsbscs r6, r2, r6, ror #30 - 5108: 004d5241 subeq r5, sp, r1, asr #4 - 510c: 5c3a4422 cfldrspl mvf4, [sl], #-136 - 5110: 5f4f4357 svcpl 0x004f4357 - 5114: 6a6f7250 bvs 1be1a5c - 5118: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 - 511c: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ - 5120: 5c626162 stfple f6, [r2], #-392 - 5124: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 - 5128: 20616469 rsbcs r6, r1, r9, ror #8 - 512c: 6c617665 stclvs 6, cr7, [r1], #-404 - 5130: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ - 5134: 435c6e6f cmpmi ip, #1776 ; 0x6f0 - 5138: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 - 513c: 5c657361 stclpl 3, cr7, [r5], #-388 - 5140: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 5144: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 5148: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 514c: 56435f79 undefined - 5150: 434d5c53 movtmi r5, #56403 ; 0xdc53 - 5154: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 - 5158: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ - 515c: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 - 5160: 6f696461 svcvs 0x00696461 - 5164: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 5168: 6372735c cmnvs r2, #1879048193 ; 0x70000001 - 516c: 6461725c strbtvs r7, [r1], #-604 - 5170: 535c6f69 cmppl ip, #420 ; 0x1a4 - 5174: 68746e79 ldmdavs r4!, {r0, r3, r4, r5, r6, r9, sl, fp, sp, lr}^ - 5178: 7a697365 bvc 1a61f14 - 517c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 - 5180: 442d2022 strtmi r2, [sp], #-34 - 5184: 45444e20 strbmi r4, [r4, #-3616] - 5188: 20475542 subcs r5, r7, r2, asr #10 - 518c: 4620442d strtmi r4, [r0], -sp, lsr #8 - 5190: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ - 5194: 6c2d205a stcvs 0, cr2, [sp], #-360 - 5198: 22204e63 eorcs r4, r0, #1584 ; 0x630 - 519c: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] - 51a0: 505f4f43 subspl r4, pc, r3, asr #30 - 51a4: 656a6f72 strbvs r6, [sl, #-3954]! - 51a8: 5c737463 cfldrdpl mvd7, [r3], #-396 - 51ac: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 - 51b0: 465c6261 ldrbmi r6, [ip], -r1, ror #4 - 51b4: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ - 51b8: 65206164 strvs r6, [r0, #-356]! - 51bc: 756c6176 strbvc r6, [ip, #-374]! - 51c0: 6f697461 svcvs 0x00697461 - 51c4: 6f435c6e svcvs 0x00435c6e - 51c8: 61626564 cmnvs r2, r4, ror #10 - 51cc: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 - 51d0: 6f696461 svcvs 0x00696461 - 51d4: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 51d8: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 51dc: 5356435f cmppl r6, #2080374785 ; 0x7c000001 - 51e0: 31434d5c cmpcc r3, ip, asr sp - 51e4: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} - 51e8: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 51ec: 61525c73 cmpvs r2, r3, ror ip - 51f0: 5f6f6964 svcpl 0x006f6964 - 51f4: 5c62694c stclpl 9, cr6, [r2], #-304 - 51f8: 656c6552 strbvs r6, [ip, #-1362]! - 51fc: 5c657361 stclpl 3, cr7, [r5], #-388 - 5200: 7473694c ldrbtvc r6, [r3], #-2380 - 5204: 2d20225c sfmcs f2, 4, [r0, #-368]! - 5208: 6169642d cmnvs r9, sp, lsr #8 - 520c: 75735f67 ldrbvc r5, [r3, #-3943]! - 5210: 65727070 ldrbvs r7, [r2, #-112]! - 5214: 50207373 eorpl r7, r0, r3, ror r3 - 5218: 38363065 ldmdacc r6!, {r0, r2, r5, r6, ip, sp} - 521c: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 5220: 5c3a4422 cfldrspl mvf4, [sl], #-136 - 5224: 5f4f4357 svcpl 0x004f4357 - 5228: 6a6f7250 bvs 1be1b70 - 522c: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 - 5230: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ - 5234: 5c626162 stfple f6, [r2], #-392 - 5238: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 - 523c: 20616469 rsbcs r6, r1, r9, ror #8 - 5240: 6c617665 stclvs 6, cr7, [r1], #-404 - 5244: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ - 5248: 435c6e6f cmpmi ip, #1776 ; 0x6f0 - 524c: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 - 5250: 5c657361 stclpl 3, cr7, [r5], #-388 - 5254: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 5258: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 525c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 5260: 56435f79 undefined - 5264: 434d5c53 movtmi r5, #56403 ; 0xdc53 - 5268: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 - 526c: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ - 5270: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 - 5274: 6f696461 svcvs 0x00696461 - 5278: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 527c: 6c65525c sfmvs f5, 2, [r5], #-368 - 5280: 65736165 ldrbvs r6, [r3, #-357]! - 5284: 6a624f5c bvs 1898ffc - 5288: 2d20225c sfmcs f2, 4, [r0, #-368]! - 528c: 646e652d strbtvs r6, [lr], #-1325 - 5290: 3d6e6169 stfcce f6, [lr, #-420]! - 5294: 7474696c ldrbtvc r6, [r4], #-2412 - 5298: 2d20656c cfstr32cs mvfx6, [r0, #-432]! - 529c: 7570632d ldrbvc r6, [r0, #-813]! - 52a0: 4d52413d ldfmie f4, [r2, #-244] - 52a4: 4d445437 cfstrdmi mvd5, [r4, #-220] - 52a8: 20532d49 subscs r2, r3, r9, asr #26 - 52ac: 2d20652d cfstr32cs mvfx6, [r0, #-180]! - 52b0: 7570662d ldrbvc r6, [r0, #-1581]! - 52b4: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} - 52b8: 492d2065 pushmi {r0, r2, r5, r6, sp} - 52bc: 3a432220 bcc 10cdb44 - 52c0: 6f72505c svcvs 0x0072505c - 52c4: 6d617267 sfmvs f7, 2, [r1, #-412]! - 52c8: 6c694620 stclvs 6, cr4, [r9], #-128 - 52cc: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - 52d0: 53205241 teqpl r0, #268435460 ; 0x10000004 - 52d4: 65747379 ldrbvs r7, [r4, #-889]! - 52d8: 455c736d ldrbmi r7, [ip, #-877] - 52dc: 6465626d strbtvs r6, [r5], #-621 - 52e0: 20646564 rsbcs r6, r4, r4, ror #10 - 52e4: 6b726f57 blvs 1ca1048 - 52e8: 636e6562 cmnvs lr, #411041792 ; 0x18800000 - 52ec: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} - 52f0: 52415c30 subpl r5, r1, #12288 ; 0x3000 - 52f4: 4e495c4d cdpmi 12, 4, cr5, cr9, cr13, {2} - 52f8: 20225c43 eorcs r5, r2, r3, asr #24 - 52fc: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} - 5300: 77726574 undefined - 5304: 206b726f rsbcs r7, fp, pc, ror #4 - 5308: 70632d2d rsbvc r2, r3, sp, lsr #26 - 530c: 6f6d5f75 svcvs 0x006d5f75 - 5310: 74206564 strtvc r6, [r0], #-1380 - 5314: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 - 5318: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ - 531c: 7200007a andvc r0, r0, #122 ; 0x7a - 5320: 6f2e6669 svcvs 0x002e6669 - 5324: 31434d28 cmpcc r3, r8, lsr #26 - 5328: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} - 532c: 3a29612e bcc a5d7ec - 5330: 41490000 cmpmi r9, r0 - 5334: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 5338: 43204953 teqmi r0, #1359872 ; 0x14c000 - 533c: 2b2b432f blcs ad6000 - 5340: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 5344: 656c6970 strbvs r6, [ip, #-2416]! - 5348: 35562072 ldrbcc r2, [r6, #-114] - 534c: 2e30322e cdpcs 2, 3, cr3, cr0, cr14, {1} - 5350: 30352e30 eorscc r2, r5, r0, lsr lr - 5354: 2f323938 svccs 0x00323938 - 5358: 20323357 eorscs r3, r2, r7, asr r3 - 535c: 20726f66 rsbscs r6, r2, r6, ror #30 - 5360: 004d5241 subeq r5, sp, r1, asr #4 - 5364: 5c3a4422 cfldrspl mvf4, [sl], #-136 - 5368: 5f4f4357 svcpl 0x004f4357 - 536c: 6a6f7250 bvs 1be1cb4 - 5370: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 - 5374: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ - 5378: 5c626162 stfple f6, [r2], #-392 - 537c: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 - 5380: 20616469 rsbcs r6, r1, r9, ror #8 - 5384: 6c617665 stclvs 6, cr7, [r1], #-404 - 5388: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ - 538c: 435c6e6f cmpmi ip, #1776 ; 0x6f0 - 5390: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 - 5394: 5c657361 stclpl 3, cr7, [r5], #-388 - 5398: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 539c: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 53a0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 53a4: 56435f79 undefined - 53a8: 434d5c53 movtmi r5, #56403 ; 0xdc53 - 53ac: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 - 53b0: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ - 53b4: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 - 53b8: 6f696461 svcvs 0x00696461 - 53bc: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 53c0: 6372735c cmnvs r2, #1879048193 ; 0x70000001 - 53c4: 6461725c strbtvs r7, [r1], #-604 - 53c8: 725c6f69 subsvc r6, ip, #420 ; 0x1a4 - 53cc: 632e6669 teqvs lr, #110100480 ; 0x6900000 - 53d0: 442d2022 strtmi r2, [sp], #-34 - 53d4: 45444e20 strbmi r4, [r4, #-3616] - 53d8: 20475542 subcs r5, r7, r2, asr #10 - 53dc: 4620442d strtmi r4, [r0], -sp, lsr #8 - 53e0: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ - 53e4: 6c2d205a stcvs 0, cr2, [sp], #-360 - 53e8: 22204e63 eorcs r4, r0, #1584 ; 0x630 - 53ec: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] - 53f0: 505f4f43 subspl r4, pc, r3, asr #30 - 53f4: 656a6f72 strbvs r6, [sl, #-3954]! - 53f8: 5c737463 cfldrdpl mvd7, [r3], #-396 - 53fc: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 - 5400: 465c6261 ldrbmi r6, [ip], -r1, ror #4 - 5404: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ - 5408: 65206164 strvs r6, [r0, #-356]! - 540c: 756c6176 strbvc r6, [ip, #-374]! - 5410: 6f697461 svcvs 0x00697461 - 5414: 6f435c6e svcvs 0x00435c6e - 5418: 61626564 cmnvs r2, r4, ror #10 - 541c: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 - 5420: 6f696461 svcvs 0x00696461 - 5424: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 5428: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 542c: 5356435f cmppl r6, #2080374785 ; 0x7c000001 - 5430: 31434d5c cmpcc r3, ip, asr sp - 5434: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} - 5438: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 543c: 61525c73 cmpvs r2, r3, ror ip - 5440: 5f6f6964 svcpl 0x006f6964 - 5444: 5c62694c stclpl 9, cr6, [r2], #-304 - 5448: 656c6552 strbvs r6, [ip, #-1362]! - 544c: 5c657361 stclpl 3, cr7, [r5], #-388 - 5450: 7473694c ldrbtvc r6, [r3], #-2380 - 5454: 2d20225c sfmcs f2, 4, [r0, #-368]! - 5458: 6169642d cmnvs r9, sp, lsr #8 - 545c: 75735f67 ldrbvc r5, [r3, #-3943]! - 5460: 65727070 ldrbvs r7, [r2, #-112]! - 5464: 50207373 eorpl r7, r0, r3, ror r3 - 5468: 38363065 ldmdacc r6!, {r0, r2, r5, r6, ip, sp} - 546c: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 5470: 5c3a4422 cfldrspl mvf4, [sl], #-136 - 5474: 5f4f4357 svcpl 0x004f4357 - 5478: 6a6f7250 bvs 1be1dc0 - 547c: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 - 5480: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ - 5484: 5c626162 stfple f6, [r2], #-392 - 5488: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 - 548c: 20616469 rsbcs r6, r1, r9, ror #8 - 5490: 6c617665 stclvs 6, cr7, [r1], #-404 - 5494: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ - 5498: 435c6e6f cmpmi ip, #1776 ; 0x6f0 - 549c: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 - 54a0: 5c657361 stclpl 3, cr7, [r5], #-388 - 54a4: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 54a8: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 54ac: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 54b0: 56435f79 undefined - 54b4: 434d5c53 movtmi r5, #56403 ; 0xdc53 - 54b8: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 - 54bc: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ - 54c0: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 - 54c4: 6f696461 svcvs 0x00696461 - 54c8: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 54cc: 6c65525c sfmvs f5, 2, [r5], #-368 - 54d0: 65736165 ldrbvs r6, [r3, #-357]! - 54d4: 6a624f5c bvs 189924c - 54d8: 2d20225c sfmcs f2, 4, [r0, #-368]! - 54dc: 646e652d strbtvs r6, [lr], #-1325 - 54e0: 3d6e6169 stfcce f6, [lr, #-420]! - 54e4: 7474696c ldrbtvc r6, [r4], #-2412 - 54e8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! - 54ec: 7570632d ldrbvc r6, [r0, #-813]! - 54f0: 4d52413d ldfmie f4, [r2, #-244] - 54f4: 4d445437 cfstrdmi mvd5, [r4, #-220] - 54f8: 20532d49 subscs r2, r3, r9, asr #26 - 54fc: 2d20652d cfstr32cs mvfx6, [r0, #-180]! - 5500: 7570662d ldrbvc r6, [r0, #-1581]! - 5504: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} - 5508: 492d2065 pushmi {r0, r2, r5, r6, sp} - 550c: 3a432220 bcc 10cdd94 - 5510: 6f72505c svcvs 0x0072505c - 5514: 6d617267 sfmvs f7, 2, [r1, #-412]! - 5518: 6c694620 stclvs 6, cr4, [r9], #-128 - 551c: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - 5520: 53205241 teqpl r0, #268435460 ; 0x10000004 - 5524: 65747379 ldrbvs r7, [r4, #-889]! - 5528: 455c736d ldrbmi r7, [ip, #-877] - 552c: 6465626d strbtvs r6, [r5], #-621 - 5530: 20646564 rsbcs r6, r4, r4, ror #10 - 5534: 6b726f57 blvs 1ca1298 - 5538: 636e6562 cmnvs lr, #411041792 ; 0x18800000 - 553c: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} - 5540: 52415c30 subpl r5, r1, #12288 ; 0x3000 - 5544: 4e495c4d cdpmi 12, 4, cr5, cr9, cr13, {2} - 5548: 20225c43 eorcs r5, r2, r3, asr #24 - 554c: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} - 5550: 77726574 undefined - 5554: 206b726f rsbcs r7, fp, pc, ror #4 - 5558: 70632d2d rsbvc r2, r3, sp, lsr #26 - 555c: 6f6d5f75 svcvs 0x006d5f75 - 5560: 74206564 strtvc r6, [r0], #-1380 - 5564: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 - 5568: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ - 556c: 4900007a stmdbmi r0, {r1, r3, r4, r5, r6} - 5570: 5f74696e svcpl 0x0074696e - 5574: 6c697455 cfstrdvs mvd7, [r9], #-340 - 5578: 286f2e73 stmdacs pc!, {r0, r1, r4, r5, r6, r9, sl, fp, sp}^ - 557c: 3331434d teqcc r1, #872415233 ; 0x34000001 - 5580: 2e783232 mrccs 2, 3, r3, cr8, cr2, {1} - 5584: 003a2961 eorseq r2, sl, r1, ror #18 - 5588: 52414900 subpl r4, r1, #0 ; 0x0 - 558c: 534e4120 movtpl r4, #57632 ; 0xe120 - 5590: 2f432049 svccs 0x00432049 - 5594: 202b2b43 eorcs r2, fp, r3, asr #22 - 5598: 706d6f43 rsbvc r6, sp, r3, asr #30 - 559c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 55a0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 55a4: 302e3032 eorcc r3, lr, r2, lsr r0 - 55a8: 3830352e ldmdacc r0!, {r1, r2, r3, r5, r8, sl, ip, sp} - 55ac: 572f3239 undefined - 55b0: 66203233 undefined - 55b4: 4120726f teqmi r0, pc, ror #4 - 55b8: 22004d52 andcs r4, r0, #5248 ; 0x1480 - 55bc: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] - 55c0: 505f4f43 subspl r4, pc, r3, asr #30 - 55c4: 656a6f72 strbvs r6, [sl, #-3954]! - 55c8: 5c737463 cfldrdpl mvd7, [r3], #-396 - 55cc: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 - 55d0: 465c6261 ldrbmi r6, [ip], -r1, ror #4 - 55d4: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ - 55d8: 65206164 strvs r6, [r0, #-356]! - 55dc: 756c6176 strbvc r6, [ip, #-374]! - 55e0: 6f697461 svcvs 0x00697461 - 55e4: 6f435c6e svcvs 0x00435c6e - 55e8: 61626564 cmnvs r2, r4, ror #10 - 55ec: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 - 55f0: 6f696461 svcvs 0x00696461 - 55f4: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 55f8: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 55fc: 5356435f cmppl r6, #2080374785 ; 0x7c000001 - 5600: 31434d5c cmpcc r3, ip, asr sp - 5604: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} - 5608: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 560c: 61525c73 cmpvs r2, r3, ror ip - 5610: 5f6f6964 svcpl 0x006f6964 - 5614: 5c62694c stclpl 9, cr6, [r2], #-304 - 5618: 5c637273 sfmpl f7, 2, [r3], #-460 - 561c: 74696e49 strbtvc r6, [r9], #-3657 - 5620: 6974555f ldmdbvs r4!, {r0, r1, r2, r3, r4, r6, r8, sl, ip, lr}^ - 5624: 632e736c teqvs lr, #-1342177279 ; 0xb0000001 - 5628: 442d2022 strtmi r2, [sp], #-34 - 562c: 45444e20 strbmi r4, [r4, #-3616] - 5630: 20475542 subcs r5, r7, r2, asr #10 - 5634: 4620442d strtmi r4, [r0], -sp, lsr #8 - 5638: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ - 563c: 6c2d205a stcvs 0, cr2, [sp], #-360 - 5640: 22204e63 eorcs r4, r0, #1584 ; 0x630 - 5644: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] - 5648: 505f4f43 subspl r4, pc, r3, asr #30 - 564c: 656a6f72 strbvs r6, [sl, #-3954]! - 5650: 5c737463 cfldrdpl mvd7, [r3], #-396 - 5654: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 - 5658: 465c6261 ldrbmi r6, [ip], -r1, ror #4 - 565c: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ - 5660: 65206164 strvs r6, [r0, #-356]! - 5664: 756c6176 strbvc r6, [ip, #-374]! - 5668: 6f697461 svcvs 0x00697461 - 566c: 6f435c6e svcvs 0x00435c6e - 5670: 61626564 cmnvs r2, r4, ror #10 - 5674: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 - 5678: 6f696461 svcvs 0x00696461 - 567c: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 5680: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 5684: 5356435f cmppl r6, #2080374785 ; 0x7c000001 - 5688: 31434d5c cmpcc r3, ip, asr sp - 568c: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} - 5690: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 5694: 61525c73 cmpvs r2, r3, ror ip - 5698: 5f6f6964 svcpl 0x006f6964 - 569c: 5c62694c stclpl 9, cr6, [r2], #-304 - 56a0: 656c6552 strbvs r6, [ip, #-1362]! - 56a4: 5c657361 stclpl 3, cr7, [r5], #-388 - 56a8: 7473694c ldrbtvc r6, [r3], #-2380 - 56ac: 2d20225c sfmcs f2, 4, [r0, #-368]! - 56b0: 6169642d cmnvs r9, sp, lsr #8 - 56b4: 75735f67 ldrbvc r5, [r3, #-3943]! - 56b8: 65727070 ldrbvs r7, [r2, #-112]! - 56bc: 50207373 eorpl r7, r0, r3, ror r3 - 56c0: 38363065 ldmdacc r6!, {r0, r2, r5, r6, ip, sp} - 56c4: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 56c8: 5c3a4422 cfldrspl mvf4, [sl], #-136 - 56cc: 5f4f4357 svcpl 0x004f4357 - 56d0: 6a6f7250 bvs 1be2018 - 56d4: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 - 56d8: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ - 56dc: 5c626162 stfple f6, [r2], #-392 - 56e0: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 - 56e4: 20616469 rsbcs r6, r1, r9, ror #8 - 56e8: 6c617665 stclvs 6, cr7, [r1], #-404 - 56ec: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ - 56f0: 435c6e6f cmpmi ip, #1776 ; 0x6f0 - 56f4: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 - 56f8: 5c657361 stclpl 3, cr7, [r5], #-388 - 56fc: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ - 5700: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 5704: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 5708: 56435f79 undefined - 570c: 434d5c53 movtmi r5, #56403 ; 0xdc53 - 5710: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 - 5714: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ - 5718: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 - 571c: 6f696461 svcvs 0x00696461 - 5720: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 - 5724: 6c65525c sfmvs f5, 2, [r5], #-368 - 5728: 65736165 ldrbvs r6, [r3, #-357]! - 572c: 6a624f5c bvs 18994a4 - 5730: 2d20225c sfmcs f2, 4, [r0, #-368]! - 5734: 646e652d strbtvs r6, [lr], #-1325 - 5738: 3d6e6169 stfcce f6, [lr, #-420]! - 573c: 7474696c ldrbtvc r6, [r4], #-2412 - 5740: 2d20656c cfstr32cs mvfx6, [r0, #-432]! - 5744: 7570632d ldrbvc r6, [r0, #-813]! - 5748: 4d52413d ldfmie f4, [r2, #-244] - 574c: 4d445437 cfstrdmi mvd5, [r4, #-220] - 5750: 20532d49 subscs r2, r3, r9, asr #26 - 5754: 2d20652d cfstr32cs mvfx6, [r0, #-180]! - 5758: 7570662d ldrbvc r6, [r0, #-1581]! - 575c: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} - 5760: 492d2065 pushmi {r0, r2, r5, r6, sp} - 5764: 3a432220 bcc 10cdfec - 5768: 6f72505c svcvs 0x0072505c - 576c: 6d617267 sfmvs f7, 2, [r1, #-412]! - 5770: 6c694620 stclvs 6, cr4, [r9], #-128 - 5774: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ - 5778: 53205241 teqpl r0, #268435460 ; 0x10000004 - 577c: 65747379 ldrbvs r7, [r4, #-889]! - 5780: 455c736d ldrbmi r7, [ip, #-877] - 5784: 6465626d strbtvs r6, [r5], #-621 - 5788: 20646564 rsbcs r6, r4, r4, ror #10 - 578c: 6b726f57 blvs 1ca14f0 - 5790: 636e6562 cmnvs lr, #411041792 ; 0x18800000 - 5794: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} - 5798: 52415c30 subpl r5, r1, #12288 ; 0x3000 - 579c: 4e495c4d cdpmi 12, 4, cr5, cr9, cr13, {2} - 57a0: 20225c43 eorcs r5, r2, r3, asr #24 - 57a4: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} - 57a8: 77726574 undefined - 57ac: 206b726f rsbcs r7, fp, pc, ror #4 - 57b0: 70632d2d rsbvc r2, r3, sp, lsr #26 - 57b4: 6f6d5f75 svcvs 0x006d5f75 - 57b8: 74206564 strtvc r6, [r0], #-1380 - 57bc: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 - 57c0: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ - 57c4: 4100007a tstmi r0, sl, ror r0 - 57c8: 656d4942 strbvs r4, [sp, #-2370]! - 57cc: 726c636d rsbvc r6, ip, #-1275068415 ; 0xb4000001 - 57d0: 286f2e34 stmdacs pc!, {r2, r4, r5, r9, sl, fp, sp}^ - 57d4: 74347472 ldrtvc r7, [r4], #-1138 - 57d8: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} - 57dc: 003a2961 eorseq r2, sl, r1, ror #18 - 57e0: 52414900 subpl r4, r1, #0 ; 0x0 - 57e4: 73734120 cmnvc r3, #8 ; 0x8 - 57e8: 6c626d65 stclvs 13, cr6, [r2], #-404 - 57ec: 56207265 strtpl r7, [r0], -r5, ror #4 - 57f0: 30332e35 eorscc r2, r3, r5, lsr lr - 57f4: 352e302e strcc r3, [lr, #-46]! - 57f8: 34373131 ldrtcc r3, [r7], #-305 - 57fc: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 5800: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 5804: 4d524120 ldfmie f4, [r2, #-128] - 5808: 46492d00 strbmi r2, [r9], -r0, lsl #26 - 580c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 5810: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 5814: 352f646c strcc r6, [pc, #-1132]! ; 53b0 - 5818: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 581c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 5820: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 5824: 6d72612f ldfvse f6, [r2, #-188]! - 5828: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 582c: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 5830: 33352d62 teqcc r5, #6272 ; 0x1880 - 5834: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 5838: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 583c: 756f2f62 strbvc r2, [pc, #-3938]! ; 48e2 - 5840: 74757074 ldrbtvc r7, [r5], #-116 - 5844: 6d72612f ldfvse f6, [r2, #-188]! - 5848: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 - 584c: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 5850: 442f7365 strtmi r7, [pc], #869 ; 5858 - 5854: 3462694c strbtcc r6, [r2], #-2380 - 5858: 636e692f cmnvs lr, #770048 ; 0xbc000 - 585c: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 5860: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 5864: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 5868: 352f646c strcc r6, [pc, #-1132]! ; 5404 - 586c: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 5870: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 5874: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 5878: 6d72612f ldfvse f6, [r2, #-188]! - 587c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 5880: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 5884: 33352d62 teqcc r5, #6272 ; 0x1880 - 5888: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 588c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 5890: 756f2f62 strbvc r2, [pc, #-3938]! ; 4936 - 5894: 74757074 ldrbtvc r7, [r5], #-116 - 5898: 6d72612f ldfvse f6, [r2, #-188]! - 589c: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 - 58a0: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 58a4: 442f7365 strtmi r7, [pc], #869 ; 58ac - 58a8: 3462694c strbtcc r6, [r2], #-2380 - 58ac: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 - 58b0: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 58b4: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 58b8: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 58bc: 352f646c strcc r6, [pc, #-1132]! ; 5458 - 58c0: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 58c4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 58c8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 58cc: 6d72612f ldfvse f6, [r2, #-188]! - 58d0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 58d4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 58d8: 33352d62 teqcc r5, #6272 ; 0x1880 - 58dc: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 58e0: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 58e4: 756f2f62 strbvc r2, [pc, #-3938]! ; 498a - 58e8: 74757074 ldrbtvc r7, [r5], #-116 - 58ec: 6d72612f ldfvse f6, [r2, #-188]! - 58f0: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 - 58f4: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 58f8: 612f7365 teqvs pc, r5, ror #6 - 58fc: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - 5900: 6e692f62 cdpvs 15, 6, cr2, cr9, cr2, {3} - 5904: 64756c63 ldrbtvs r6, [r5], #-3171 - 5908: 492d2065 pushmi {r0, r2, r5, r6, sp} - 590c: 612f3a46 teqvs pc, r6, asr #20 - 5910: 75626d72 strbvc r6, [r2, #-3442]! - 5914: 2f646c69 svccs 0x00646c69 - 5918: 74303335 ldrtvc r3, [r0], #-821 - 591c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 5920: 6f697469 svcvs 0x00697469 - 5924: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 5928: 31315f6d teqcc r1, sp, ror #30 - 592c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 5930: 352d6269 strcc r6, [sp, #-617]! - 5934: 612f3033 teqvs pc, r3, lsr r0 - 5938: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 593c: 6f2f6269 svcvs 0x002f6269 - 5940: 75707475 ldrbvc r7, [r0, #-1141]! - 5944: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 5948: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 594c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 5950: 2f736569 svccs 0x00736569 - 5954: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 5958: 732f6269 teqvc pc, #-1879048186 ; 0x90000006 - 595c: 2f326372 svccs 0x00326372 - 5960: 6c636e69 stclvs 14, cr6, [r3], #-420 - 5964: 20656475 rsbcs r6, r5, r5, ror r4 - 5968: 3a46492d bcc 1197e24 - 596c: 6d72612f ldfvse f6, [r2, #-188]! - 5970: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 5974: 33352f64 teqcc r5, #400 ; 0x190 - 5978: 61727430 cmnvs r2, r0, lsr r4 - 597c: 7469736e strbtvc r7, [r9], #-878 - 5980: 2f6e6f69 svccs 0x006e6f69 - 5984: 5f6d7261 svcpl 0x006d7261 - 5988: 35393131 ldrcc r3, [r9, #-305]! - 598c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 5990: 3033352d eorscc r3, r3, sp, lsr #10 - 5994: 6d72612f ldfvse f6, [r2, #-188]! - 5998: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 599c: 706d742f rsbvc r7, sp, pc, lsr #8 - 59a0: 6975622f ldmdbvs r5!, {r0, r1, r2, r3, r5, r9, sp, lr}^ - 59a4: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 59a8: 2d2d2062 stccs 0, cr2, [sp, #-392]! - 59ac: 20757063 rsbscs r7, r5, r3, rrx - 59b0: 394d5241 stmdbcc sp, {r0, r6, r9, ip, lr}^ - 59b4: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ - 59b8: 652d2d20 strvs r2, [sp, #-3360]! - 59bc: 6169646e cmnvs r9, lr, ror #8 - 59c0: 696c206e stmdbvs ip!, {r1, r2, r3, r5, r6, sp}^ - 59c4: 656c7474 strbvs r7, [ip, #-1140]! - 59c8: 5f442d20 svcpl 0x00442d20 - 59cc: 464c455f undefined - 59d0: 4955425f ldmdbmi r5, {r0, r1, r2, r3, r4, r6, r9, lr}^ - 59d4: 5f5f444c svcpl 0x005f444c - 59d8: 5f442d20 svcpl 0x00442d20 - 59dc: 4d52415f ldfmie f4, [r2, #-380] - 59e0: 42494c5f submi r4, r9, #24320 ; 0x5f00 - 59e4: 59524152 ldmdbpl r2, {r1, r4, r6, r8, lr}^ - 59e8: 2d205f5f stccs 15, cr5, [r0, #-380]! - 59ec: 43455f44 movtmi r5, #24388 ; 0x5f44 - 59f0: 53554c50 cmppl r5, #20480 ; 0x5000 - 59f4: 53554c50 cmppl r5, #20480 ; 0x5000 - 59f8: 20532d20 subscs r2, r3, r0, lsr #26 - 59fc: 2073772d rsbscs r7, r3, sp, lsr #14 - 5a00: 5f5f442d svcpl 0x005f442d - 5a04: 5f54504f svcpl 0x0054504f - 5a08: 4944454d stmdbmi r4, {r0, r2, r3, r6, r8, sl, lr}^ - 5a0c: 5f5f4d55 svcpl 0x005f4d55 - 5a10: 2f3a4620 svccs 0x003a4620 - 5a14: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 5a18: 646c6975 strbtvs r6, [ip], #-2421 - 5a1c: 3033352f eorscc r3, r3, pc, lsr #10 - 5a20: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 5a24: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 5a28: 612f6e6f teqvs pc, pc, ror #28 - 5a2c: 315f6d72 cmpcc pc, r2, ror sp - 5a30: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 5a34: 2d62696c stclcs 9, cr6, [r2, #-432]! - 5a38: 2f303335 svccs 0x00303335 - 5a3c: 2f6d7261 svccs 0x006d7261 - 5a40: 2f62696c svccs 0x0062696c - 5a44: 7074756f rsbsvc r7, r4, pc, ror #10 - 5a48: 612f7475 teqvs pc, r5, ror r4 - 5a4c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 5a50: 61726269 cmnvs r2, r9, ror #4 - 5a54: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 5a58: 6d72612f ldfvse f6, [r2, #-188]! - 5a5c: 5c62696c stclpl 9, cr6, [r2], #-432 - 5a60: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 - 5a64: 6d72612f ldfvse f6, [r2, #-188]! - 5a68: 6474732f ldrbtvs r7, [r4], #-815 - 5a6c: 42412f63 submi r2, r1, #396 ; 0x18c - 5a70: 6d656d49 stclvs 13, cr6, [r5, #-292]! - 5a74: 34726c63 ldrbtcc r6, [r2], #-3171 - 5a78: 2d20732e stccs 3, cr7, [r0, #-184]! - 5a7c: 3a46206f bcc 118dc40 - 5a80: 6d72615c ldfvse f6, [r2, #-368]! - 5a84: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 5a88: 33355c64 teqcc r5, #25600 ; 0x6400 - 5a8c: 61727430 cmnvs r2, r0, lsr r4 - 5a90: 7469736e strbtvc r7, [r9], #-878 - 5a94: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 5a98: 5f6d7261 svcpl 0x006d7261 - 5a9c: 35393131 ldrcc r3, [r9, #-305]! - 5aa0: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 5aa4: 3033352d eorscc r3, r3, sp, lsr #10 - 5aa8: 6d72615c ldfvse f6, [r2, #-368]! - 5aac: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 - 5ab0: 706d745c rsbvc r7, sp, ip, asr r4 - 5ab4: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ - 5ab8: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 5abc: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 - 5ac0: 74725c6a ldrbtvc r5, [r2], #-3178 - 5ac4: 615f7434 cmpvs pc, r4, lsr r4 - 5ac8: 42415c6c submi r5, r1, #27648 ; 0x6c00 - 5acc: 6d656d49 stclvs 13, cr6, [r5, #-292]! - 5ad0: 34726c63 ldrbtcc r6, [r2], #-3171 - 5ad4: 00006f2e andeq r6, r0, lr, lsr #30 - 5ad8: 6d494241 sfmvs f4, 2, [r9, #-260] - 5adc: 70636d65 rsbvc r6, r3, r5, ror #26 - 5ae0: 286f2e79 stmdacs pc!, {r0, r3, r4, r5, r6, r9, sl, fp, sp}^ - 5ae4: 74347472 ldrtvc r7, [r4], #-1138 - 5ae8: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} - 5aec: 003a2961 eorseq r2, sl, r1, ror #18 - 5af0: 52414900 subpl r4, r1, #0 ; 0x0 - 5af4: 73734120 cmnvc r3, #8 ; 0x8 - 5af8: 6c626d65 stclvs 13, cr6, [r2], #-404 - 5afc: 56207265 strtpl r7, [r0], -r5, ror #4 - 5b00: 30332e35 eorscc r2, r3, r5, lsr lr - 5b04: 352e302e strcc r3, [lr, #-46]! - 5b08: 34373131 ldrtcc r3, [r7], #-305 - 5b0c: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 - 5b10: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 - 5b14: 4d524120 ldfmie f4, [r2, #-128] - 5b18: 46492d00 strbmi r2, [r9], -r0, lsl #26 - 5b1c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 5b20: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 5b24: 352f646c strcc r6, [pc, #-1132]! ; 56c0 - 5b28: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 5b2c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 5b30: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 5b34: 6d72612f ldfvse f6, [r2, #-188]! - 5b38: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 5b3c: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 5b40: 33352d62 teqcc r5, #6272 ; 0x1880 - 5b44: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 5b48: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 5b4c: 756f2f62 strbvc r2, [pc, #-3938]! ; 4bf2 - 5b50: 74757074 ldrbtvc r7, [r5], #-116 - 5b54: 6d72612f ldfvse f6, [r2, #-188]! - 5b58: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 - 5b5c: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 5b60: 442f7365 strtmi r7, [pc], #869 ; 5b68 - 5b64: 3462694c strbtcc r6, [r2], #-2380 - 5b68: 636e692f cmnvs lr, #770048 ; 0xbc000 - 5b6c: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 5b70: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 5b74: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 5b78: 352f646c strcc r6, [pc, #-1132]! ; 5714 - 5b7c: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 5b80: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 5b84: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 5b88: 6d72612f ldfvse f6, [r2, #-188]! - 5b8c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 5b90: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 5b94: 33352d62 teqcc r5, #6272 ; 0x1880 - 5b98: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 5b9c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 5ba0: 756f2f62 strbvc r2, [pc, #-3938]! ; 4c46 - 5ba4: 74757074 ldrbtvc r7, [r5], #-116 - 5ba8: 6d72612f ldfvse f6, [r2, #-188]! - 5bac: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 - 5bb0: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 5bb4: 442f7365 strtmi r7, [pc], #869 ; 5bbc - 5bb8: 3462694c strbtcc r6, [r2], #-2380 - 5bbc: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 - 5bc0: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 5bc4: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 5bc8: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 5bcc: 352f646c strcc r6, [pc, #-1132]! ; 5768 - 5bd0: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 5bd4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 5bd8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 5bdc: 6d72612f ldfvse f6, [r2, #-188]! - 5be0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 5be4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 5be8: 33352d62 teqcc r5, #6272 ; 0x1880 - 5bec: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 5bf0: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 5bf4: 756f2f62 strbvc r2, [pc, #-3938]! ; 4c9a - 5bf8: 74757074 ldrbtvc r7, [r5], #-116 - 5bfc: 6d72612f ldfvse f6, [r2, #-188]! - 5c00: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 - 5c04: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 5c08: 612f7365 teqvs pc, r5, ror #6 - 5c0c: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - 5c10: 6e692f62 cdpvs 15, 6, cr2, cr9, cr2, {3} - 5c14: 64756c63 ldrbtvs r6, [r5], #-3171 - 5c18: 492d2065 pushmi {r0, r2, r5, r6, sp} - 5c1c: 612f3a46 teqvs pc, r6, asr #20 - 5c20: 75626d72 strbvc r6, [r2, #-3442]! - 5c24: 2f646c69 svccs 0x00646c69 - 5c28: 74303335 ldrtvc r3, [r0], #-821 - 5c2c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 5c30: 6f697469 svcvs 0x00697469 - 5c34: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 5c38: 31315f6d teqcc r1, sp, ror #30 - 5c3c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 5c40: 352d6269 strcc r6, [sp, #-617]! - 5c44: 612f3033 teqvs pc, r3, lsr r0 - 5c48: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 5c4c: 6f2f6269 svcvs 0x002f6269 - 5c50: 75707475 ldrbvc r7, [r0, #-1141]! - 5c54: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 5c58: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 5c5c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 5c60: 2f736569 svccs 0x00736569 - 5c64: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 5c68: 732f6269 teqvc pc, #-1879048186 ; 0x90000006 - 5c6c: 2f326372 svccs 0x00326372 - 5c70: 6c636e69 stclvs 14, cr6, [r3], #-420 - 5c74: 20656475 rsbcs r6, r5, r5, ror r4 - 5c78: 3a46492d bcc 1198134 - 5c7c: 6d72612f ldfvse f6, [r2, #-188]! - 5c80: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 5c84: 33352f64 teqcc r5, #400 ; 0x190 - 5c88: 61727430 cmnvs r2, r0, lsr r4 - 5c8c: 7469736e strbtvc r7, [r9], #-878 - 5c90: 2f6e6f69 svccs 0x006e6f69 - 5c94: 5f6d7261 svcpl 0x006d7261 - 5c98: 35393131 ldrcc r3, [r9, #-305]! - 5c9c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 5ca0: 3033352d eorscc r3, r3, sp, lsr #10 - 5ca4: 6d72612f ldfvse f6, [r2, #-188]! - 5ca8: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 5cac: 706d742f rsbvc r7, sp, pc, lsr #8 - 5cb0: 6975622f ldmdbvs r5!, {r0, r1, r2, r3, r5, r9, sp, lr}^ - 5cb4: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 5cb8: 2d2d2062 stccs 0, cr2, [sp, #-392]! - 5cbc: 20757063 rsbscs r7, r5, r3, rrx - 5cc0: 394d5241 stmdbcc sp, {r0, r6, r9, ip, lr}^ - 5cc4: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ - 5cc8: 652d2d20 strvs r2, [sp, #-3360]! - 5ccc: 6169646e cmnvs r9, lr, ror #8 - 5cd0: 696c206e stmdbvs ip!, {r1, r2, r3, r5, r6, sp}^ - 5cd4: 656c7474 strbvs r7, [ip, #-1140]! - 5cd8: 5f442d20 svcpl 0x00442d20 - 5cdc: 464c455f undefined - 5ce0: 4955425f ldmdbmi r5, {r0, r1, r2, r3, r4, r6, r9, lr}^ - 5ce4: 5f5f444c svcpl 0x005f444c - 5ce8: 5f442d20 svcpl 0x00442d20 - 5cec: 4d52415f ldfmie f4, [r2, #-380] - 5cf0: 42494c5f submi r4, r9, #24320 ; 0x5f00 - 5cf4: 59524152 ldmdbpl r2, {r1, r4, r6, r8, lr}^ - 5cf8: 2d205f5f stccs 15, cr5, [r0, #-380]! - 5cfc: 43455f44 movtmi r5, #24388 ; 0x5f44 - 5d00: 53554c50 cmppl r5, #20480 ; 0x5000 - 5d04: 53554c50 cmppl r5, #20480 ; 0x5000 - 5d08: 20532d20 subscs r2, r3, r0, lsr #26 - 5d0c: 2073772d rsbscs r7, r3, sp, lsr #14 - 5d10: 5f5f442d svcpl 0x005f442d - 5d14: 5f54504f svcpl 0x0054504f - 5d18: 4944454d stmdbmi r4, {r0, r2, r3, r6, r8, sl, lr}^ - 5d1c: 5f5f4d55 svcpl 0x005f4d55 - 5d20: 2f3a4620 svccs 0x003a4620 - 5d24: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 5d28: 646c6975 strbtvs r6, [ip], #-2421 - 5d2c: 3033352f eorscc r3, r3, pc, lsr #10 - 5d30: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 5d34: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 5d38: 612f6e6f teqvs pc, pc, ror #28 - 5d3c: 315f6d72 cmpcc pc, r2, ror sp - 5d40: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 5d44: 2d62696c stclcs 9, cr6, [r2, #-432]! - 5d48: 2f303335 svccs 0x00303335 - 5d4c: 2f6d7261 svccs 0x006d7261 - 5d50: 2f62696c svccs 0x0062696c - 5d54: 7074756f rsbsvc r7, r4, pc, ror #10 - 5d58: 612f7475 teqvs pc, r5, ror r4 - 5d5c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 5d60: 61726269 cmnvs r2, r9, ror #4 - 5d64: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 5d68: 6d72612f ldfvse f6, [r2, #-188]! - 5d6c: 5c62696c stclpl 9, cr6, [r2], #-432 - 5d70: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 - 5d74: 6d72612f ldfvse f6, [r2, #-188]! - 5d78: 6474732f ldrbtvs r7, [r4], #-815 - 5d7c: 42412f63 submi r2, r1, #396 ; 0x18c - 5d80: 6d656d49 stclvs 13, cr6, [r5, #-292]! - 5d84: 2e797063 cdpcs 0, 7, cr7, cr9, cr3, {3} - 5d88: 6f2d2073 svcvs 0x002d2073 - 5d8c: 5c3a4620 ldcpl 6, cr4, [sl], #-128 - 5d90: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 5d94: 646c6975 strbtvs r6, [ip], #-2421 - 5d98: 3033355c eorscc r3, r3, ip, asr r5 - 5d9c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 5da0: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 5da4: 615c6e6f cmpvs ip, pc, ror #28 - 5da8: 315f6d72 cmpcc pc, r2, ror sp - 5dac: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 5db0: 2d62696c stclcs 9, cr6, [r2, #-432]! - 5db4: 5c303335 ldcpl 3, cr3, [r0], #-212 - 5db8: 5c6d7261 sfmpl f7, 2, [sp], #-388 - 5dbc: 5c62696c stclpl 9, cr6, [r2], #-432 - 5dc0: 5c706d74 ldclpl 13, cr6, [r0], #-464 - 5dc4: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 5dc8: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 - 5dcc: 6a626f5c bvs 18a1b44 - 5dd0: 3474725c ldrbtcc r7, [r4], #-604 - 5dd4: 6c615f74 stclvs 15, cr5, [r1], #-464 - 5dd8: 4942415c stmdbmi r2, {r2, r3, r4, r6, r8, lr}^ - 5ddc: 636d656d cmnvs sp, #457179136 ; 0x1b400000 - 5de0: 6f2e7970 svcvs 0x002e7970 - 5de4: 61640000 cmnvs r4, r0 - 5de8: 695f6174 ldmdbvs pc, {r2, r4, r5, r6, r8, sp, lr}^ - 5dec: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 - 5df0: 72286f2e eorvc r6, r8, #184 ; 0xb8 - 5df4: 5f743474 svcpl 0x00743474 - 5df8: 612e6c61 teqvs lr, r1, ror #24 - 5dfc: 00003a29 andeq r3, r0, r9, lsr #20 - 5e00: 20524149 subscs r4, r2, r9, asr #2 - 5e04: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 5e08: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 5e0c: 43202b2b teqmi r0, #44032 ; 0xac00 - 5e10: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 5e14: 2072656c rsbscs r6, r2, ip, ror #10 - 5e18: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 5e1c: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} - 5e20: 37313135 undefined - 5e24: 33572f34 cmpcc r7, #208 ; 0xd0 - 5e28: 6f662032 svcvs 0x00662032 - 5e2c: 52412072 subpl r2, r1, #114 ; 0x72 - 5e30: 492d004d pushmi {r0, r2, r3, r6} - 5e34: 612f3a46 teqvs pc, r6, asr #20 - 5e38: 75626d72 strbvc r6, [r2, #-3442]! - 5e3c: 2f646c69 svccs 0x00646c69 - 5e40: 74303335 ldrtvc r3, [r0], #-821 - 5e44: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 5e48: 6f697469 svcvs 0x00697469 - 5e4c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 5e50: 31315f6d teqcc r1, sp, ror #30 - 5e54: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 5e58: 352d6269 strcc r6, [sp, #-617]! - 5e5c: 612f3033 teqvs pc, r3, lsr r0 - 5e60: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 5e64: 6f2f6269 svcvs 0x002f6269 - 5e68: 75707475 ldrbvc r7, [r0, #-1141]! - 5e6c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 5e70: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 5e74: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 5e78: 2f736569 svccs 0x00736569 - 5e7c: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 5e80: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} - 5e84: 492d2063 pushmi {r0, r1, r5, r6, sp} - 5e88: 612f3a46 teqvs pc, r6, asr #20 - 5e8c: 75626d72 strbvc r6, [r2, #-3442]! - 5e90: 2f646c69 svccs 0x00646c69 - 5e94: 74303335 ldrtvc r3, [r0], #-821 - 5e98: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 5e9c: 6f697469 svcvs 0x00697469 - 5ea0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 5ea4: 31315f6d teqcc r1, sp, ror #30 - 5ea8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 5eac: 352d6269 strcc r6, [sp, #-617]! - 5eb0: 612f3033 teqvs pc, r3, lsr r0 - 5eb4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 5eb8: 6f2f6269 svcvs 0x002f6269 - 5ebc: 75707475 ldrbvc r7, [r0, #-1141]! - 5ec0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 5ec4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 5ec8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 5ecc: 2f736569 svccs 0x00736569 - 5ed0: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 5ed4: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 - 5ed8: 492d2063 pushmi {r0, r1, r5, r6, sp} - 5edc: 612f3a46 teqvs pc, r6, asr #20 - 5ee0: 75626d72 strbvc r6, [r2, #-3442]! - 5ee4: 2f646c69 svccs 0x00646c69 - 5ee8: 74303335 ldrtvc r3, [r0], #-821 - 5eec: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 5ef0: 6f697469 svcvs 0x00697469 - 5ef4: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 5ef8: 31315f6d teqcc r1, sp, ror #30 - 5efc: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 5f00: 352d6269 strcc r6, [sp, #-617]! - 5f04: 612f3033 teqvs pc, r3, lsr r0 - 5f08: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 5f0c: 6f2f6269 svcvs 0x002f6269 - 5f10: 75707475 ldrbvc r7, [r0, #-1141]! - 5f14: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 5f18: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 5f1c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 5f20: 2f736569 svccs 0x00736569 - 5f24: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 5f28: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} - 5f2c: 756c636e strbvc r6, [ip, #-878]! - 5f30: 2d206564 cfstr32cs mvfx6, [r0, #-400]! - 5f34: 2f3a4649 svccs 0x003a4649 - 5f38: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 5f3c: 646c6975 strbtvs r6, [ip], #-2421 - 5f40: 3033352f eorscc r3, r3, pc, lsr #10 - 5f44: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 5f48: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 5f4c: 612f6e6f teqvs pc, pc, ror #28 - 5f50: 315f6d72 cmpcc pc, r2, ror sp - 5f54: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 5f58: 2d62696c stclcs 9, cr6, [r2, #-432]! - 5f5c: 2f303335 svccs 0x00303335 - 5f60: 2f6d7261 svccs 0x006d7261 - 5f64: 2f62696c svccs 0x0062696c - 5f68: 7074756f rsbsvc r7, r4, pc, ror #10 - 5f6c: 612f7475 teqvs pc, r5, ror r4 - 5f70: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 5f74: 61726269 cmnvs r2, r9, ror #4 - 5f78: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 5f7c: 6d72612f ldfvse f6, [r2, #-188]! - 5f80: 2f62696c svccs 0x0062696c - 5f84: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 - 5f88: 636e692f cmnvs lr, #770048 ; 0xbc000 - 5f8c: 6564756c strbvs r7, [r4, #-1388]! - 5f90: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 5f94: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 5f98: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 5f9c: 352f646c strcc r6, [pc, #-1132]! ; 5b38 - 5fa0: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 5fa4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 5fa8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 5fac: 6d72612f ldfvse f6, [r2, #-188]! - 5fb0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 5fb4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 5fb8: 33352d62 teqcc r5, #6272 ; 0x1880 - 5fbc: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 5fc0: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 5fc4: 6d742f62 ldclvs 15, cr2, [r4, #-392]! - 5fc8: 75622f70 strbvc r2, [r2, #-3952]! - 5fcc: 6c646c69 stclvs 12, cr6, [r4], #-420 - 5fd0: 2d206269 sfmcs f6, 4, [r0, #-420]! - 5fd4: 7570632d ldrbvc r6, [r0, #-813]! - 5fd8: 4d524120 ldfmie f4, [r2, #-128] - 5fdc: 4d445439 cfstrdmi mvd5, [r4, #-228] - 5fe0: 2d2d2049 stccs 0, cr2, [sp, #-292]! - 5fe4: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 5fe8: 6c206e61 stcvs 14, cr6, [r0], #-388 - 5fec: 6c747469 cfldrdvs mvd7, [r4], #-420 - 5ff0: 442d2065 strtmi r2, [sp], #-101 - 5ff4: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 - 5ff8: 55425f46 strbpl r5, [r2, #-3910] - 5ffc: 5f444c49 svcpl 0x00444c49 - 6000: 442d205f strtmi r2, [sp], #-95 - 6004: 52415f5f subpl r5, r1, #380 ; 0x17c - 6008: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ - 600c: 52415242 subpl r5, r1, #536870916 ; 0x20000004 - 6010: 205f5f59 subscs r5, pc, r9, asr pc - 6014: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 - 6018: 2d2d206d stccs 0, cr2, [sp, #-436]! - 601c: 65746e69 ldrbvs r6, [r4, #-3689]! - 6020: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 - 6024: 4f2d206b svcmi 0x002d206b - 6028: 2d2d2068 stccs 0, cr2, [sp, #-416]! - 602c: 656c6973 strbvs r6, [ip, #-2419]! - 6030: 2d20746e cfstrscs mvf7, [r0, #-440]! - 6034: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 - 6038: 676e696e strbvs r6, [lr, -lr, ror #18]! - 603c: 72615f73 rsbvc r5, r1, #460 ; 0x1cc - 6040: 72655f65 rsbvc r5, r5, #404 ; 0x194 - 6044: 73726f72 cmnvc r2, #456 ; 0x1c8 - 6048: 732d2d20 teqvc sp, #2048 ; 0x800 - 604c: 63697274 cmnvs r9, #1073741831 ; 0x40000007 - 6050: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} - 6054: 2d206973 stccs 9, cr6, [r0, #-460]! - 6058: 6c6e6f2d stclvs 15, cr6, [lr], #-180 - 605c: 74735f79 ldrbtvc r5, [r3], #-3961 - 6060: 74756f64 ldrbtvc r6, [r5], #-3940 - 6064: 642d2d20 strtvs r2, [sp], #-3360 - 6068: 5f676169 svcpl 0x00676169 - 606c: 70707573 rsbsvc r7, r0, r3, ror r5 - 6070: 73736572 cmnvc r3, #478150656 ; 0x1c800000 - 6074: 306f473d rsbcc r4, pc, sp, lsr r7 - 6078: 2d203530 cfstr32cs mvfx3, [r0, #-192]! - 607c: 6169642d cmnvs r9, sp, lsr #8 - 6080: 75735f67 ldrbvc r5, [r3, #-3943]! - 6084: 65727070 ldrbvs r7, [r2, #-112]! - 6088: 503d7373 eorspl r7, sp, r3, ror r3 - 608c: 30353465 eorscc r3, r5, r5, ror #8 - 6090: 642d2d20 strtvs r2, [sp], #-3360 - 6094: 5f676169 svcpl 0x00676169 - 6098: 6f727265 svcvs 0x00727265 - 609c: 65503d72 ldrbvs r3, [r0, #-3442] - 60a0: 20333931 eorscs r3, r3, r1, lsr r9 - 60a4: 612f3a46 teqvs pc, r6, asr #20 - 60a8: 75626d72 strbvc r6, [r2, #-3442]! - 60ac: 2f646c69 svccs 0x00646c69 - 60b0: 74303335 ldrtvc r3, [r0], #-821 - 60b4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 60b8: 6f697469 svcvs 0x00697469 - 60bc: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 60c0: 31315f6d teqcc r1, sp, ror #30 - 60c4: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 60c8: 352d6269 strcc r6, [sp, #-617]! - 60cc: 612f3033 teqvs pc, r3, lsr r0 - 60d0: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 60d4: 6f2f6269 svcvs 0x002f6269 - 60d8: 75707475 ldrbvc r7, [r0, #-1141]! - 60dc: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 60e0: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 60e4: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 60e8: 2f736569 svccs 0x00736569 - 60ec: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 60f0: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 - 60f4: 2f326372 svccs 0x00326372 - 60f8: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! - 60fc: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} - 6100: 2f74696e svccs 0x0074696e - 6104: 61746164 cmnvs r4, r4, ror #2 - 6108: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 610c: 632e3274 teqvs lr, #1073741831 ; 0x40000007 - 6110: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 6114: 615c3a46 cmpvs ip, r6, asr #20 - 6118: 75626d72 strbvc r6, [r2, #-3442]! - 611c: 5c646c69 stclpl 12, cr6, [r4], #-420 - 6120: 74303335 ldrtvc r3, [r0], #-821 - 6124: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 6128: 6f697469 svcvs 0x00697469 - 612c: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 - 6130: 31315f6d teqcc r1, sp, ror #30 - 6134: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 6138: 352d6269 strcc r6, [sp, #-617]! - 613c: 615c3033 cmpvs ip, r3, lsr r0 - 6140: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 - 6144: 745c6269 ldrbvc r6, [ip], #-617 - 6148: 625c706d subsvs r7, ip, #109 ; 0x6d - 614c: 646c6975 strbtvs r6, [ip], #-2421 - 6150: 5c62696c stclpl 9, cr6, [r2], #-432 - 6154: 5c6a626f sfmpl f6, 2, [sl], #-444 - 6158: 74347472 ldrtvc r7, [r4], #-1138 - 615c: 5c6c615f stfple f6, [ip], #-380 - 6160: 61746164 cmnvs r4, r4, ror #2 - 6164: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 6168: 6f2e3274 svcvs 0x002e3274 - 616c: 642d2d20 strtvs r2, [sp], #-3360 - 6170: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} - 6174: 636e6564 cmnvs lr, #419430400 ; 0x19000000 - 6178: 3d736569 cfldr64cc mvdx6, [r3, #-420]! - 617c: 3a462069 bcc 118e328 - 6180: 6d72615c ldfvse f6, [r2, #-368]! - 6184: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 6188: 33355c64 teqcc r5, #25600 ; 0x6400 - 618c: 61727430 cmnvs r2, r0, lsr r4 - 6190: 7469736e strbtvc r7, [r9], #-878 - 6194: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 6198: 5f6d7261 svcpl 0x006d7261 - 619c: 35393131 ldrcc r3, [r9, #-305]! - 61a0: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 61a4: 3033352d eorscc r3, r3, sp, lsr #10 - 61a8: 6d72615c ldfvse f6, [r2, #-368]! - 61ac: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 - 61b0: 706d745c rsbvc r7, sp, ip, asr r4 - 61b4: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ - 61b8: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 61bc: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 - 61c0: 74725c6a ldrbtvc r5, [r2], #-3178 - 61c4: 615f7434 cmpvs pc, r4, lsr r4 - 61c8: 61645c6c cmnvs r4, ip, ror #24 - 61cc: 695f6174 ldmdbvs pc, {r2, r4, r5, r6, r8, sp, lr}^ - 61d0: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 - 61d4: 0000642e andeq r6, r0, lr, lsr #8 - 61d8: 6d494241 sfmvs f4, 2, [r9, #-260] - 61dc: 65736d65 ldrbvs r6, [r3, #-3429]! - 61e0: 2e383474 mrccs 4, 1, r3, cr8, cr4, {3} - 61e4: 7472286f ldrbtvc r2, [r2], #-2159 - 61e8: 615f7434 cmpvs pc, r4, lsr r4 - 61ec: 29612e6c stmdbcs r1!, {r2, r3, r5, r6, r9, sl, fp, sp}^ - 61f0: 4900003a stmdbmi r0, {r1, r3, r4, r5} - 61f4: 41205241 teqmi r0, r1, asr #4 - 61f8: 6d657373 stclvs 3, cr7, [r5, #-460]! - 61fc: 72656c62 rsbvc r6, r5, #25088 ; 0x6200 - 6200: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 6204: 302e3033 eorcc r3, lr, r3, lsr r0 - 6208: 3131352e teqcc r1, lr, lsr #10 - 620c: 572f3437 undefined - 6210: 66203233 undefined - 6214: 4120726f teqmi r0, pc, ror #4 - 6218: 2d004d52 stccs 13, cr4, [r0, #-328] - 621c: 2f3a4649 svccs 0x003a4649 - 6220: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 6224: 646c6975 strbtvs r6, [ip], #-2421 - 6228: 3033352f eorscc r3, r3, pc, lsr #10 - 622c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 6230: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 6234: 612f6e6f teqvs pc, pc, ror #28 - 6238: 315f6d72 cmpcc pc, r2, ror sp - 623c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 6240: 2d62696c stclcs 9, cr6, [r2, #-432]! - 6244: 2f303335 svccs 0x00303335 - 6248: 2f6d7261 svccs 0x006d7261 - 624c: 2f62696c svccs 0x0062696c - 6250: 7074756f rsbsvc r7, r4, pc, ror #10 - 6254: 612f7475 teqvs pc, r5, ror r4 - 6258: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 625c: 61726269 cmnvs r2, r9, ror #4 - 6260: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 6264: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ - 6268: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} - 626c: 2d20636e stccs 3, cr6, [r0, #-440]! - 6270: 2f3a4649 svccs 0x003a4649 - 6274: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 6278: 646c6975 strbtvs r6, [ip], #-2421 - 627c: 3033352f eorscc r3, r3, pc, lsr #10 - 6280: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 6284: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 6288: 612f6e6f teqvs pc, pc, ror #28 - 628c: 315f6d72 cmpcc pc, r2, ror sp - 6290: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 6294: 2d62696c stclcs 9, cr6, [r2, #-432]! - 6298: 2f303335 svccs 0x00303335 - 629c: 2f6d7261 svccs 0x006d7261 - 62a0: 2f62696c svccs 0x0062696c - 62a4: 7074756f rsbsvc r7, r4, pc, ror #10 - 62a8: 612f7475 teqvs pc, r5, ror r4 - 62ac: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 62b0: 61726269 cmnvs r2, r9, ror #4 - 62b4: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 62b8: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ - 62bc: 732f3462 teqvc pc, #1644167168 ; 0x62000000 - 62c0: 2d206372 stccs 3, cr6, [r0, #-456]! - 62c4: 2f3a4649 svccs 0x003a4649 - 62c8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 62cc: 646c6975 strbtvs r6, [ip], #-2421 - 62d0: 3033352f eorscc r3, r3, pc, lsr #10 - 62d4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 62d8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 62dc: 612f6e6f teqvs pc, pc, ror #28 - 62e0: 315f6d72 cmpcc pc, r2, ror sp - 62e4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 62e8: 2d62696c stclcs 9, cr6, [r2, #-432]! - 62ec: 2f303335 svccs 0x00303335 - 62f0: 2f6d7261 svccs 0x006d7261 - 62f4: 2f62696c svccs 0x0062696c - 62f8: 7074756f rsbsvc r7, r4, pc, ror #10 - 62fc: 612f7475 teqvs pc, r5, ror r4 - 6300: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 6304: 61726269 cmnvs r2, r9, ror #4 - 6308: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 630c: 6d72612f ldfvse f6, [r2, #-188]! - 6310: 2f62696c svccs 0x0062696c - 6314: 6c636e69 stclvs 14, cr6, [r3], #-420 - 6318: 20656475 rsbcs r6, r5, r5, ror r4 - 631c: 3a46492d bcc 11987d8 - 6320: 6d72612f ldfvse f6, [r2, #-188]! - 6324: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 6328: 33352f64 teqcc r5, #400 ; 0x190 - 632c: 61727430 cmnvs r2, r0, lsr r4 - 6330: 7469736e strbtvc r7, [r9], #-878 - 6334: 2f6e6f69 svccs 0x006e6f69 - 6338: 5f6d7261 svcpl 0x006d7261 - 633c: 35393131 ldrcc r3, [r9, #-305]! - 6340: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 6344: 3033352d eorscc r3, r3, sp, lsr #10 - 6348: 6d72612f ldfvse f6, [r2, #-188]! - 634c: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 6350: 74756f2f ldrbtvc r6, [r5], #-3887 - 6354: 2f747570 svccs 0x00747570 - 6358: 5f6d7261 svcpl 0x006d7261 - 635c: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 6360: 65697261 strbvs r7, [r9, #-609]! - 6364: 72612f73 rsbvc r2, r1, #460 ; 0x1cc - 6368: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 - 636c: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 - 6370: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} - 6374: 64756c63 ldrbtvs r6, [r5], #-3171 - 6378: 492d2065 pushmi {r0, r2, r5, r6, sp} - 637c: 612f3a46 teqvs pc, r6, asr #20 - 6380: 75626d72 strbvc r6, [r2, #-3442]! - 6384: 2f646c69 svccs 0x00646c69 - 6388: 74303335 ldrtvc r3, [r0], #-821 - 638c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 6390: 6f697469 svcvs 0x00697469 - 6394: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 6398: 31315f6d teqcc r1, sp, ror #30 - 639c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 63a0: 352d6269 strcc r6, [sp, #-617]! - 63a4: 612f3033 teqvs pc, r3, lsr r0 - 63a8: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 63ac: 742f6269 strtvc r6, [pc], #617 ; 63b4 - 63b0: 622f706d eorvs r7, pc, #109 ; 0x6d - 63b4: 646c6975 strbtvs r6, [ip], #-2421 - 63b8: 2062696c rsbcs r6, r2, ip, ror #18 - 63bc: 70632d2d rsbvc r2, r3, sp, lsr #26 - 63c0: 52412075 subpl r2, r1, #117 ; 0x75 - 63c4: 4454394d ldrbmi r3, [r4], #-2381 - 63c8: 2d20494d stccs 9, cr4, [r0, #-308]! - 63cc: 646e652d strbtvs r6, [lr], #-1325 - 63d0: 206e6169 rsbcs r6, lr, r9, ror #2 - 63d4: 7474696c ldrbtvc r6, [r4], #-2412 - 63d8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! - 63dc: 455f5f44 ldrbmi r5, [pc, #-3908] ; 54a0 - 63e0: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 - 63e4: 444c4955 strbmi r4, [ip], #-2389 - 63e8: 2d205f5f stccs 15, cr5, [r0, #-380]! - 63ec: 415f5f44 cmpmi pc, r4, asr #30 - 63f0: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 - 63f4: 41524249 cmpmi r2, r9, asr #4 - 63f8: 5f5f5952 svcpl 0x005f5952 - 63fc: 5f442d20 svcpl 0x00442d20 - 6400: 4c504345 mrrcmi 3, 4, r4, r0, cr5 - 6404: 4c505355 mrrcmi 3, 5, r5, r0, cr5 - 6408: 2d205355 stccs 3, cr5, [r0, #-340]! - 640c: 772d2053 undefined - 6410: 442d2073 strtmi r2, [sp], #-115 - 6414: 504f5f5f subpl r5, pc, pc, asr pc - 6418: 454d5f54 strbmi r5, [sp, #-3924] - 641c: 4d554944 ldclmi 9, cr4, [r5, #-272] - 6420: 46205f5f qsubaddxmi r5, r0, pc - 6424: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 6428: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 642c: 352f646c strcc r6, [pc, #-1132]! ; 5fc8 - 6430: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 6434: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 6438: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 643c: 6d72612f ldfvse f6, [r2, #-188]! - 6440: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 6444: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 6448: 33352d62 teqcc r5, #6272 ; 0x1880 - 644c: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 6450: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 6454: 756f2f62 strbvc r2, [pc, #-3938]! ; 54fa - 6458: 74757074 ldrbtvc r7, [r5], #-116 - 645c: 6d72612f ldfvse f6, [r2, #-188]! - 6460: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 - 6464: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 6468: 612f7365 teqvs pc, r5, ror #6 - 646c: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - 6470: 72735c62 rsbsvc r5, r3, #25088 ; 0x6200 - 6474: 612f3263 teqvs pc, r3, ror #4 - 6478: 732f6d72 teqvc pc, #7296 ; 0x1c80 - 647c: 2f636474 svccs 0x00636474 - 6480: 6d494241 sfmvs f4, 2, [r9, #-260] - 6484: 65736d65 ldrbvs r6, [r3, #-3429]! - 6488: 2e383474 mrccs 4, 1, r3, cr8, cr4, {3} - 648c: 6f2d2073 svcvs 0x002d2073 - 6490: 5c3a4620 ldcpl 6, cr4, [sl], #-128 - 6494: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 6498: 646c6975 strbtvs r6, [ip], #-2421 - 649c: 3033355c eorscc r3, r3, ip, asr r5 - 64a0: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 64a4: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 64a8: 615c6e6f cmpvs ip, pc, ror #28 - 64ac: 315f6d72 cmpcc pc, r2, ror sp - 64b0: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 64b4: 2d62696c stclcs 9, cr6, [r2, #-432]! - 64b8: 5c303335 ldcpl 3, cr3, [r0], #-212 - 64bc: 5c6d7261 sfmpl f7, 2, [sp], #-388 - 64c0: 5c62696c stclpl 9, cr6, [r2], #-432 - 64c4: 5c706d74 ldclpl 13, cr6, [r0], #-464 - 64c8: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 64cc: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 - 64d0: 6a626f5c bvs 18a2248 - 64d4: 3474725c ldrbtcc r7, [r4], #-604 - 64d8: 6c615f74 stclvs 15, cr5, [r1], #-464 - 64dc: 4942415c stmdbmi r2, {r2, r3, r4, r6, r8, lr}^ - 64e0: 736d656d cmnvc sp, #457179136 ; 0x1b400000 - 64e4: 38347465 ldmdacc r4!, {r0, r2, r5, r6, sl, ip, sp, lr} - 64e8: 00006f2e andeq r6, r0, lr, lsr #30 - 64ec: 6f72657a svcvs 0x0072657a - 64f0: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 64f4: 6f2e3274 svcvs 0x002e3274 - 64f8: 34747228 ldrbtcc r7, [r4], #-552 - 64fc: 6c615f74 stclvs 15, cr5, [r1], #-464 - 6500: 3a29612e bcc a5e9c0 - 6504: 41490000 cmpmi r9, r0 - 6508: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} - 650c: 43204953 teqmi r0, #1359872 ; 0x14c000 - 6510: 2b2b432f blcs ad71d4 - 6514: 6d6f4320 stclvs 3, cr4, [pc, #-128]! - 6518: 656c6970 strbvs r6, [ip, #-2416]! - 651c: 35562072 ldrbcc r2, [r6, #-114] - 6520: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 6524: 31352e30 teqcc r5, r0, lsr lr - 6528: 2f343731 svccs 0x00343731 - 652c: 20323357 eorscs r3, r2, r7, asr r3 - 6530: 20726f66 rsbscs r6, r2, r6, ror #30 - 6534: 004d5241 subeq r5, sp, r1, asr #4 - 6538: 3a46492d bcc 11989f4 - 653c: 6d72612f ldfvse f6, [r2, #-188]! - 6540: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 6544: 33352f64 teqcc r5, #400 ; 0x190 - 6548: 61727430 cmnvs r2, r0, lsr r4 - 654c: 7469736e strbtvc r7, [r9], #-878 - 6550: 2f6e6f69 svccs 0x006e6f69 - 6554: 5f6d7261 svcpl 0x006d7261 - 6558: 35393131 ldrcc r3, [r9, #-305]! - 655c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 6560: 3033352d eorscc r3, r3, sp, lsr #10 - 6564: 6d72612f ldfvse f6, [r2, #-188]! - 6568: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 656c: 74756f2f ldrbtvc r6, [r5], #-3887 - 6570: 2f747570 svccs 0x00747570 - 6574: 5f6d7261 svcpl 0x006d7261 - 6578: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 657c: 65697261 strbvs r7, [r9, #-609]! - 6580: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 - 6584: 2f346269 svccs 0x00346269 - 6588: 20636e69 rsbcs r6, r3, r9, ror #28 - 658c: 3a46492d bcc 1198a48 - 6590: 6d72612f ldfvse f6, [r2, #-188]! - 6594: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 6598: 33352f64 teqcc r5, #400 ; 0x190 - 659c: 61727430 cmnvs r2, r0, lsr r4 - 65a0: 7469736e strbtvc r7, [r9], #-878 - 65a4: 2f6e6f69 svccs 0x006e6f69 - 65a8: 5f6d7261 svcpl 0x006d7261 - 65ac: 35393131 ldrcc r3, [r9, #-305]! - 65b0: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 65b4: 3033352d eorscc r3, r3, sp, lsr #10 - 65b8: 6d72612f ldfvse f6, [r2, #-188]! - 65bc: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 65c0: 74756f2f ldrbtvc r6, [r5], #-3887 - 65c4: 2f747570 svccs 0x00747570 - 65c8: 5f6d7261 svcpl 0x006d7261 - 65cc: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 65d0: 65697261 strbvs r7, [r9, #-609]! - 65d4: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 - 65d8: 2f346269 svccs 0x00346269 - 65dc: 20637273 rsbcs r7, r3, r3, ror r2 - 65e0: 3a46492d bcc 1198a9c - 65e4: 6d72612f ldfvse f6, [r2, #-188]! - 65e8: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 65ec: 33352f64 teqcc r5, #400 ; 0x190 - 65f0: 61727430 cmnvs r2, r0, lsr r4 - 65f4: 7469736e strbtvc r7, [r9], #-878 - 65f8: 2f6e6f69 svccs 0x006e6f69 - 65fc: 5f6d7261 svcpl 0x006d7261 - 6600: 35393131 ldrcc r3, [r9, #-305]! - 6604: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 6608: 3033352d eorscc r3, r3, sp, lsr #10 - 660c: 6d72612f ldfvse f6, [r2, #-188]! - 6610: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 6614: 74756f2f ldrbtvc r6, [r5], #-3887 - 6618: 2f747570 svccs 0x00747570 - 661c: 5f6d7261 svcpl 0x006d7261 - 6620: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 6624: 65697261 strbvs r7, [r9, #-609]! - 6628: 72612f73 rsbvc r2, r1, #460 ; 0x1cc - 662c: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 - 6630: 636e692f cmnvs lr, #770048 ; 0xbc000 - 6634: 6564756c strbvs r7, [r4, #-1388]! - 6638: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 663c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 6640: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 6644: 352f646c strcc r6, [pc, #-1132]! ; 61e0 - 6648: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 664c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 6650: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6654: 6d72612f ldfvse f6, [r2, #-188]! - 6658: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 665c: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 6660: 33352d62 teqcc r5, #6272 ; 0x1880 - 6664: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 6668: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 666c: 756f2f62 strbvc r2, [pc, #-3938]! ; 5712 - 6670: 74757074 ldrbtvc r7, [r5], #-116 - 6674: 6d72612f ldfvse f6, [r2, #-188]! - 6678: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 - 667c: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 6680: 612f7365 teqvs pc, r5, ror #6 - 6684: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - 6688: 72732f62 rsbsvc r2, r3, #392 ; 0x188 - 668c: 692f3263 stmdbvs pc!, {r0, r1, r5, r6, r9, ip, sp} - 6690: 756c636e strbvc r6, [ip, #-878]! - 6694: 2d206564 cfstr32cs mvfx6, [r0, #-400]! - 6698: 2f3a4649 svccs 0x003a4649 - 669c: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 66a0: 646c6975 strbtvs r6, [ip], #-2421 - 66a4: 3033352f eorscc r3, r3, pc, lsr #10 - 66a8: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 66ac: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 66b0: 612f6e6f teqvs pc, pc, ror #28 - 66b4: 315f6d72 cmpcc pc, r2, ror sp - 66b8: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 66bc: 2d62696c stclcs 9, cr6, [r2, #-432]! - 66c0: 2f303335 svccs 0x00303335 - 66c4: 2f6d7261 svccs 0x006d7261 - 66c8: 2f62696c svccs 0x0062696c - 66cc: 2f706d74 svccs 0x00706d74 - 66d0: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 66d4: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 - 66d8: 632d2d20 teqvs sp, #2048 ; 0x800 - 66dc: 41207570 teqmi r0, r0, ror r5 - 66e0: 54394d52 ldrtpl r4, [r9], #-3410 - 66e4: 20494d44 subcs r4, r9, r4, asr #26 - 66e8: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} - 66ec: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} - 66f0: 74696c20 strbtvc r6, [r9], #-3104 - 66f4: 20656c74 rsbcs r6, r5, r4, ror ip - 66f8: 5f5f442d svcpl 0x005f442d - 66fc: 5f464c45 svcpl 0x00464c45 - 6700: 4c495542 cfstr64mi mvdx5, [r9], {66} - 6704: 205f5f44 subscs r5, pc, r4, asr #30 - 6708: 5f5f442d svcpl 0x005f442d - 670c: 5f4d5241 svcpl 0x004d5241 - 6710: 5242494c subpl r4, r2, #1245184 ; 0x130000 - 6714: 5f595241 svcpl 0x00595241 - 6718: 2d2d205f stccs 0, cr2, [sp, #-380]! - 671c: 206d7261 rsbcs r7, sp, r1, ror #4 - 6720: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} - 6724: 77726574 undefined - 6728: 206b726f rsbcs r7, fp, pc, ror #4 - 672c: 20684f2d rsbcs r4, r8, sp, lsr #30 - 6730: 69732d2d ldmdbvs r3!, {r0, r2, r3, r5, r8, sl, fp, sp}^ - 6734: 746e656c strbtvc r6, [lr], #-1388 - 6738: 772d2d20 strvc r2, [sp, -r0, lsr #26]! - 673c: 696e7261 stmdbvs lr!, {r0, r5, r6, r9, ip, sp, lr}^ - 6740: 5f73676e svcpl 0x0073676e - 6744: 5f657261 svcpl 0x00657261 - 6748: 6f727265 svcvs 0x00727265 - 674c: 2d207372 stccs 3, cr7, [r0, #-456]! - 6750: 7274732d rsbsvc r7, r4, #-1275068416 ; 0xb4000000 - 6754: 5f746369 svcpl 0x00746369 - 6758: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 675c: 6f2d2d20 svcvs 0x002d2d20 - 6760: 5f796c6e svcpl 0x00796c6e - 6764: 6f647473 svcvs 0x00647473 - 6768: 2d207475 cfstrscs mvf7, [r0, #-468]! - 676c: 6169642d cmnvs r9, sp, lsr #8 - 6770: 75735f67 ldrbvc r5, [r3, #-3943]! - 6774: 65727070 ldrbvs r7, [r2, #-112]! - 6778: 473d7373 undefined - 677c: 3530306f ldrcc r3, [r0, #-111]! - 6780: 642d2d20 strtvs r2, [sp], #-3360 - 6784: 5f676169 svcpl 0x00676169 - 6788: 70707573 rsbsvc r7, r0, r3, ror r5 - 678c: 73736572 cmnvc r3, #478150656 ; 0x1c800000 - 6790: 3465503d strbtcc r5, [r5], #-61 - 6794: 2d203035 stccs 0, cr3, [r0, #-212]! - 6798: 6169642d cmnvs r9, sp, lsr #8 - 679c: 72655f67 rsbvc r5, r5, #412 ; 0x19c - 67a0: 3d726f72 ldclcc 15, cr6, [r2, #-456]! - 67a4: 39316550 ldmdbcc r1!, {r4, r6, r8, sl, sp, lr} - 67a8: 3a462033 bcc 118e87c - 67ac: 6d72612f ldfvse f6, [r2, #-188]! - 67b0: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 67b4: 33352f64 teqcc r5, #400 ; 0x190 - 67b8: 61727430 cmnvs r2, r0, lsr r4 - 67bc: 7469736e strbtvc r7, [r9], #-878 - 67c0: 2f6e6f69 svccs 0x006e6f69 - 67c4: 5f6d7261 svcpl 0x006d7261 - 67c8: 35393131 ldrcc r3, [r9, #-305]! - 67cc: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 67d0: 3033352d eorscc r3, r3, sp, lsr #10 - 67d4: 6d72612f ldfvse f6, [r2, #-188]! - 67d8: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 67dc: 74756f2f ldrbtvc r6, [r5], #-3887 - 67e0: 2f747570 svccs 0x00747570 - 67e4: 5f6d7261 svcpl 0x006d7261 - 67e8: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 67ec: 65697261 strbvs r7, [r9, #-609]! - 67f0: 72612f73 rsbvc r2, r1, #460 ; 0x1cc - 67f4: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 - 67f8: 6372735c cmnvs r2, #1879048193 ; 0x70000001 - 67fc: 6f632f32 svcvs 0x00632f32 - 6800: 6e6f6d6d cdpvs 13, 6, cr6, cr15, cr13, {3} - 6804: 696e692f stmdbvs lr!, {r0, r1, r2, r3, r5, r8, fp, sp, lr}^ - 6808: 657a2f74 ldrbvs r2, [sl, #-3956]! - 680c: 695f6f72 ldmdbvs pc, {r1, r4, r5, r6, r8, r9, sl, fp, sp, lr}^ - 6810: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 - 6814: 2d20632e stccs 3, cr6, [r0, #-184]! - 6818: 3a46206f bcc 118e9dc - 681c: 6d72615c ldfvse f6, [r2, #-368]! - 6820: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 6824: 33355c64 teqcc r5, #25600 ; 0x6400 - 6828: 61727430 cmnvs r2, r0, lsr r4 - 682c: 7469736e strbtvc r7, [r9], #-878 - 6830: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 6834: 5f6d7261 svcpl 0x006d7261 - 6838: 35393131 ldrcc r3, [r9, #-305]! - 683c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 6840: 3033352d eorscc r3, r3, sp, lsr #10 - 6844: 6d72615c ldfvse f6, [r2, #-368]! - 6848: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 - 684c: 706d745c rsbvc r7, sp, ip, asr r4 - 6850: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ - 6854: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 6858: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 - 685c: 74725c6a ldrbtvc r5, [r2], #-3178 - 6860: 615f7434 cmpvs pc, r4, lsr r4 - 6864: 657a5c6c ldrbvs r5, [sl, #-3180]! - 6868: 695f6f72 ldmdbvs pc, {r1, r4, r5, r6, r8, r9, sl, fp, sp, lr}^ - 686c: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 - 6870: 2d206f2e stccs 15, cr6, [r0, #-184]! - 6874: 7065642d rsbvc r6, r5, sp, lsr #8 - 6878: 65646e65 strbvs r6, [r4, #-3685]! - 687c: 6569636e strbvs r6, [r9, #-878]! - 6880: 20693d73 rsbcs r3, r9, r3, ror sp - 6884: 615c3a46 cmpvs ip, r6, asr #20 - 6888: 75626d72 strbvc r6, [r2, #-3442]! - 688c: 5c646c69 stclpl 12, cr6, [r4], #-420 - 6890: 74303335 ldrtvc r3, [r0], #-821 - 6894: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 6898: 6f697469 svcvs 0x00697469 - 689c: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 - 68a0: 31315f6d teqcc r1, sp, ror #30 - 68a4: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 68a8: 352d6269 strcc r6, [sp, #-617]! - 68ac: 615c3033 cmpvs ip, r3, lsr r0 - 68b0: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 - 68b4: 745c6269 ldrbvc r6, [ip], #-617 - 68b8: 625c706d subsvs r7, ip, #109 ; 0x6d - 68bc: 646c6975 strbtvs r6, [ip], #-2421 - 68c0: 5c62696c stclpl 9, cr6, [r2], #-432 - 68c4: 5c6a626f sfmpl f6, 2, [sl], #-444 - 68c8: 74347472 ldrtvc r7, [r4], #-1138 - 68cc: 5c6c615f stfple f6, [ip], #-380 - 68d0: 6f72657a svcvs 0x0072657a - 68d4: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 68d8: 642e3274 strtvs r3, [lr], #-628 - 68dc: 6f630000 svcvs 0x00630000 - 68e0: 695f7970 ldmdbvs pc, {r4, r5, r6, r8, fp, ip, sp, lr}^ - 68e4: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 - 68e8: 72286f2e eorvc r6, r8, #184 ; 0xb8 - 68ec: 5f743474 svcpl 0x00743474 - 68f0: 612e6c61 teqvs lr, r1, ror #24 - 68f4: 00003a29 andeq r3, r0, r9, lsr #20 - 68f8: 20524149 subscs r4, r2, r9, asr #2 - 68fc: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 6900: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 6904: 43202b2b teqmi r0, #44032 ; 0xac00 - 6908: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 690c: 2072656c rsbscs r6, r2, ip, ror #10 - 6910: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 6914: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} - 6918: 37313135 undefined - 691c: 33572f34 cmpcc r7, #208 ; 0xd0 - 6920: 6f662032 svcvs 0x00662032 - 6924: 52412072 subpl r2, r1, #114 ; 0x72 - 6928: 492d004d pushmi {r0, r2, r3, r6} - 692c: 612f3a46 teqvs pc, r6, asr #20 - 6930: 75626d72 strbvc r6, [r2, #-3442]! - 6934: 2f646c69 svccs 0x00646c69 - 6938: 74303335 ldrtvc r3, [r0], #-821 - 693c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 6940: 6f697469 svcvs 0x00697469 - 6944: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 6948: 31315f6d teqcc r1, sp, ror #30 - 694c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 6950: 352d6269 strcc r6, [sp, #-617]! - 6954: 612f3033 teqvs pc, r3, lsr r0 - 6958: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 695c: 6f2f6269 svcvs 0x002f6269 - 6960: 75707475 ldrbvc r7, [r0, #-1141]! - 6964: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 6968: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 696c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 6970: 2f736569 svccs 0x00736569 - 6974: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 6978: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} - 697c: 492d2063 pushmi {r0, r1, r5, r6, sp} - 6980: 612f3a46 teqvs pc, r6, asr #20 - 6984: 75626d72 strbvc r6, [r2, #-3442]! - 6988: 2f646c69 svccs 0x00646c69 - 698c: 74303335 ldrtvc r3, [r0], #-821 - 6990: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 6994: 6f697469 svcvs 0x00697469 - 6998: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 699c: 31315f6d teqcc r1, sp, ror #30 - 69a0: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 69a4: 352d6269 strcc r6, [sp, #-617]! - 69a8: 612f3033 teqvs pc, r3, lsr r0 - 69ac: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 69b0: 6f2f6269 svcvs 0x002f6269 - 69b4: 75707475 ldrbvc r7, [r0, #-1141]! - 69b8: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 69bc: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 69c0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 69c4: 2f736569 svccs 0x00736569 - 69c8: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 69cc: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 - 69d0: 492d2063 pushmi {r0, r1, r5, r6, sp} - 69d4: 612f3a46 teqvs pc, r6, asr #20 - 69d8: 75626d72 strbvc r6, [r2, #-3442]! - 69dc: 2f646c69 svccs 0x00646c69 - 69e0: 74303335 ldrtvc r3, [r0], #-821 - 69e4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 69e8: 6f697469 svcvs 0x00697469 - 69ec: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 69f0: 31315f6d teqcc r1, sp, ror #30 - 69f4: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 69f8: 352d6269 strcc r6, [sp, #-617]! - 69fc: 612f3033 teqvs pc, r3, lsr r0 - 6a00: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 6a04: 6f2f6269 svcvs 0x002f6269 - 6a08: 75707475 ldrbvc r7, [r0, #-1141]! - 6a0c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 6a10: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 6a14: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 6a18: 2f736569 svccs 0x00736569 - 6a1c: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 6a20: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} - 6a24: 756c636e strbvc r6, [ip, #-878]! - 6a28: 2d206564 cfstr32cs mvfx6, [r0, #-400]! - 6a2c: 2f3a4649 svccs 0x003a4649 - 6a30: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 6a34: 646c6975 strbtvs r6, [ip], #-2421 - 6a38: 3033352f eorscc r3, r3, pc, lsr #10 - 6a3c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 6a40: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 6a44: 612f6e6f teqvs pc, pc, ror #28 - 6a48: 315f6d72 cmpcc pc, r2, ror sp - 6a4c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 6a50: 2d62696c stclcs 9, cr6, [r2, #-432]! - 6a54: 2f303335 svccs 0x00303335 - 6a58: 2f6d7261 svccs 0x006d7261 - 6a5c: 2f62696c svccs 0x0062696c - 6a60: 7074756f rsbsvc r7, r4, pc, ror #10 - 6a64: 612f7475 teqvs pc, r5, ror r4 - 6a68: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 6a6c: 61726269 cmnvs r2, r9, ror #4 - 6a70: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 6a74: 6d72612f ldfvse f6, [r2, #-188]! - 6a78: 2f62696c svccs 0x0062696c - 6a7c: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 - 6a80: 636e692f cmnvs lr, #770048 ; 0xbc000 - 6a84: 6564756c strbvs r7, [r4, #-1388]! - 6a88: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 6a8c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 6a90: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 6a94: 352f646c strcc r6, [pc, #-1132]! ; 6630 - 6a98: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 6a9c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 6aa0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 6aa4: 6d72612f ldfvse f6, [r2, #-188]! - 6aa8: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 6aac: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 6ab0: 33352d62 teqcc r5, #6272 ; 0x1880 - 6ab4: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 6ab8: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 6abc: 6d742f62 ldclvs 15, cr2, [r4, #-392]! - 6ac0: 75622f70 strbvc r2, [r2, #-3952]! - 6ac4: 6c646c69 stclvs 12, cr6, [r4], #-420 - 6ac8: 2d206269 sfmcs f6, 4, [r0, #-420]! - 6acc: 7570632d ldrbvc r6, [r0, #-813]! - 6ad0: 4d524120 ldfmie f4, [r2, #-128] - 6ad4: 4d445439 cfstrdmi mvd5, [r4, #-228] - 6ad8: 2d2d2049 stccs 0, cr2, [sp, #-292]! - 6adc: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 6ae0: 6c206e61 stcvs 14, cr6, [r0], #-388 - 6ae4: 6c747469 cfldrdvs mvd7, [r4], #-420 - 6ae8: 442d2065 strtmi r2, [sp], #-101 - 6aec: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 - 6af0: 55425f46 strbpl r5, [r2, #-3910] - 6af4: 5f444c49 svcpl 0x00444c49 - 6af8: 442d205f strtmi r2, [sp], #-95 - 6afc: 52415f5f subpl r5, r1, #380 ; 0x17c - 6b00: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ - 6b04: 52415242 subpl r5, r1, #536870916 ; 0x20000004 - 6b08: 205f5f59 subscs r5, pc, r9, asr pc - 6b0c: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 - 6b10: 2d2d206d stccs 0, cr2, [sp, #-436]! - 6b14: 65746e69 ldrbvs r6, [r4, #-3689]! - 6b18: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 - 6b1c: 4f2d206b svcmi 0x002d206b - 6b20: 2d2d2068 stccs 0, cr2, [sp, #-416]! - 6b24: 656c6973 strbvs r6, [ip, #-2419]! - 6b28: 2d20746e cfstrscs mvf7, [r0, #-440]! - 6b2c: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 - 6b30: 676e696e strbvs r6, [lr, -lr, ror #18]! - 6b34: 72615f73 rsbvc r5, r1, #460 ; 0x1cc - 6b38: 72655f65 rsbvc r5, r5, #404 ; 0x194 - 6b3c: 73726f72 cmnvc r2, #456 ; 0x1c8 - 6b40: 732d2d20 teqvc sp, #2048 ; 0x800 - 6b44: 63697274 cmnvs r9, #1073741831 ; 0x40000007 - 6b48: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} - 6b4c: 2d206973 stccs 9, cr6, [r0, #-460]! - 6b50: 6c6e6f2d stclvs 15, cr6, [lr], #-180 - 6b54: 74735f79 ldrbtvc r5, [r3], #-3961 - 6b58: 74756f64 ldrbtvc r6, [r5], #-3940 - 6b5c: 642d2d20 strtvs r2, [sp], #-3360 - 6b60: 5f676169 svcpl 0x00676169 - 6b64: 70707573 rsbsvc r7, r0, r3, ror r5 - 6b68: 73736572 cmnvc r3, #478150656 ; 0x1c800000 - 6b6c: 306f473d rsbcc r4, pc, sp, lsr r7 - 6b70: 2d203530 cfstr32cs mvfx3, [r0, #-192]! - 6b74: 6169642d cmnvs r9, sp, lsr #8 - 6b78: 75735f67 ldrbvc r5, [r3, #-3943]! - 6b7c: 65727070 ldrbvs r7, [r2, #-112]! - 6b80: 503d7373 eorspl r7, sp, r3, ror r3 - 6b84: 30353465 eorscc r3, r5, r5, ror #8 - 6b88: 642d2d20 strtvs r2, [sp], #-3360 - 6b8c: 5f676169 svcpl 0x00676169 - 6b90: 6f727265 svcvs 0x00727265 - 6b94: 65503d72 ldrbvs r3, [r0, #-3442] - 6b98: 20333931 eorscs r3, r3, r1, lsr r9 - 6b9c: 612f3a46 teqvs pc, r6, asr #20 - 6ba0: 75626d72 strbvc r6, [r2, #-3442]! - 6ba4: 2f646c69 svccs 0x00646c69 - 6ba8: 74303335 ldrtvc r3, [r0], #-821 - 6bac: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 6bb0: 6f697469 svcvs 0x00697469 - 6bb4: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 6bb8: 31315f6d teqcc r1, sp, ror #30 - 6bbc: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 6bc0: 352d6269 strcc r6, [sp, #-617]! - 6bc4: 612f3033 teqvs pc, r3, lsr r0 - 6bc8: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 6bcc: 6f2f6269 svcvs 0x002f6269 - 6bd0: 75707475 ldrbvc r7, [r0, #-1141]! - 6bd4: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 6bd8: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 6bdc: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 6be0: 2f736569 svccs 0x00736569 - 6be4: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 6be8: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 - 6bec: 2f326372 svccs 0x00326372 - 6bf0: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! - 6bf4: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} - 6bf8: 2f74696e svccs 0x0074696e - 6bfc: 79706f63 ldmdbvc r0!, {r0, r1, r5, r6, r8, r9, sl, fp, sp, lr}^ - 6c00: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 6c04: 632e3274 teqvs lr, #1073741831 ; 0x40000007 - 6c08: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 6c0c: 615c3a46 cmpvs ip, r6, asr #20 - 6c10: 75626d72 strbvc r6, [r2, #-3442]! - 6c14: 5c646c69 stclpl 12, cr6, [r4], #-420 - 6c18: 74303335 ldrtvc r3, [r0], #-821 - 6c1c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 6c20: 6f697469 svcvs 0x00697469 - 6c24: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 - 6c28: 31315f6d teqcc r1, sp, ror #30 - 6c2c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 6c30: 352d6269 strcc r6, [sp, #-617]! - 6c34: 615c3033 cmpvs ip, r3, lsr r0 - 6c38: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 - 6c3c: 745c6269 ldrbvc r6, [ip], #-617 - 6c40: 625c706d subsvs r7, ip, #109 ; 0x6d - 6c44: 646c6975 strbtvs r6, [ip], #-2421 - 6c48: 5c62696c stclpl 9, cr6, [r2], #-432 - 6c4c: 5c6a626f sfmpl f6, 2, [sl], #-444 - 6c50: 74347472 ldrtvc r7, [r4], #-1138 - 6c54: 5c6c615f stfple f6, [ip], #-380 - 6c58: 79706f63 ldmdbvc r0!, {r0, r1, r5, r6, r8, r9, sl, fp, sp, lr}^ - 6c5c: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 6c60: 6f2e3274 svcvs 0x002e3274 - 6c64: 642d2d20 strtvs r2, [sp], #-3360 - 6c68: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} - 6c6c: 636e6564 cmnvs lr, #419430400 ; 0x19000000 - 6c70: 3d736569 cfldr64cc mvdx6, [r3, #-420]! - 6c74: 3a462069 bcc 118ee20 - 6c78: 6d72615c ldfvse f6, [r2, #-368]! - 6c7c: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 6c80: 33355c64 teqcc r5, #25600 ; 0x6400 - 6c84: 61727430 cmnvs r2, r0, lsr r4 - 6c88: 7469736e strbtvc r7, [r9], #-878 - 6c8c: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 6c90: 5f6d7261 svcpl 0x006d7261 - 6c94: 35393131 ldrcc r3, [r9, #-305]! - 6c98: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 6c9c: 3033352d eorscc r3, r3, sp, lsr #10 - 6ca0: 6d72615c ldfvse f6, [r2, #-368]! - 6ca4: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 - 6ca8: 706d745c rsbvc r7, sp, ip, asr r4 - 6cac: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ - 6cb0: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 6cb4: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 - 6cb8: 74725c6a ldrbtvc r5, [r2], #-3178 - 6cbc: 615f7434 cmpvs pc, r4, lsr r4 - 6cc0: 6f635c6c svcvs 0x00635c6c - 6cc4: 695f7970 ldmdbvs pc, {r4, r5, r6, r8, fp, ip, sp, lr}^ - 6cc8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 - 6ccc: 0000642e andeq r6, r0, lr, lsr #8 - 6cd0: 5f656c72 svcpl 0x00656c72 - 6cd4: 74696e69 strbtvc r6, [r9], #-3689 - 6cd8: 286f2e32 stmdacs pc!, {r1, r4, r5, r9, sl, fp, sp}^ - 6cdc: 74347472 ldrtvc r7, [r4], #-1138 - 6ce0: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} - 6ce4: 003a2961 eorseq r2, sl, r1, ror #18 - 6ce8: 52414900 subpl r4, r1, #0 ; 0x0 - 6cec: 534e4120 movtpl r4, #57632 ; 0xe120 - 6cf0: 2f432049 svccs 0x00432049 - 6cf4: 202b2b43 eorcs r2, fp, r3, asr #22 - 6cf8: 706d6f43 rsbvc r6, sp, r3, asr #30 - 6cfc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 6d00: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 6d04: 302e3033 eorcc r3, lr, r3, lsr r0 - 6d08: 3131352e teqcc r1, lr, lsr #10 - 6d0c: 572f3437 undefined - 6d10: 66203233 undefined - 6d14: 4120726f teqmi r0, pc, ror #4 - 6d18: 2d004d52 stccs 13, cr4, [r0, #-328] - 6d1c: 2f3a4649 svccs 0x003a4649 - 6d20: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 6d24: 646c6975 strbtvs r6, [ip], #-2421 - 6d28: 3033352f eorscc r3, r3, pc, lsr #10 - 6d2c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 6d30: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 6d34: 612f6e6f teqvs pc, pc, ror #28 - 6d38: 315f6d72 cmpcc pc, r2, ror sp - 6d3c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 6d40: 2d62696c stclcs 9, cr6, [r2, #-432]! - 6d44: 2f303335 svccs 0x00303335 - 6d48: 2f6d7261 svccs 0x006d7261 - 6d4c: 2f62696c svccs 0x0062696c - 6d50: 7074756f rsbsvc r7, r4, pc, ror #10 - 6d54: 612f7475 teqvs pc, r5, ror r4 - 6d58: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 6d5c: 61726269 cmnvs r2, r9, ror #4 - 6d60: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 6d64: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ - 6d68: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} - 6d6c: 2d20636e stccs 3, cr6, [r0, #-440]! - 6d70: 2f3a4649 svccs 0x003a4649 - 6d74: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 6d78: 646c6975 strbtvs r6, [ip], #-2421 - 6d7c: 3033352f eorscc r3, r3, pc, lsr #10 - 6d80: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 6d84: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 6d88: 612f6e6f teqvs pc, pc, ror #28 - 6d8c: 315f6d72 cmpcc pc, r2, ror sp - 6d90: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 6d94: 2d62696c stclcs 9, cr6, [r2, #-432]! - 6d98: 2f303335 svccs 0x00303335 - 6d9c: 2f6d7261 svccs 0x006d7261 - 6da0: 2f62696c svccs 0x0062696c - 6da4: 7074756f rsbsvc r7, r4, pc, ror #10 - 6da8: 612f7475 teqvs pc, r5, ror r4 - 6dac: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 6db0: 61726269 cmnvs r2, r9, ror #4 - 6db4: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 6db8: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ - 6dbc: 732f3462 teqvc pc, #1644167168 ; 0x62000000 - 6dc0: 2d206372 stccs 3, cr6, [r0, #-456]! - 6dc4: 2f3a4649 svccs 0x003a4649 - 6dc8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 6dcc: 646c6975 strbtvs r6, [ip], #-2421 - 6dd0: 3033352f eorscc r3, r3, pc, lsr #10 - 6dd4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 6dd8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 6ddc: 612f6e6f teqvs pc, pc, ror #28 - 6de0: 315f6d72 cmpcc pc, r2, ror sp - 6de4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 6de8: 2d62696c stclcs 9, cr6, [r2, #-432]! - 6dec: 2f303335 svccs 0x00303335 - 6df0: 2f6d7261 svccs 0x006d7261 - 6df4: 2f62696c svccs 0x0062696c - 6df8: 7074756f rsbsvc r7, r4, pc, ror #10 - 6dfc: 612f7475 teqvs pc, r5, ror r4 - 6e00: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 6e04: 61726269 cmnvs r2, r9, ror #4 - 6e08: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 6e0c: 6d72612f ldfvse f6, [r2, #-188]! - 6e10: 2f62696c svccs 0x0062696c - 6e14: 6c636e69 stclvs 14, cr6, [r3], #-420 - 6e18: 20656475 rsbcs r6, r5, r5, ror r4 - 6e1c: 3a46492d bcc 11992d8 - 6e20: 6d72612f ldfvse f6, [r2, #-188]! - 6e24: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 6e28: 33352f64 teqcc r5, #400 ; 0x190 - 6e2c: 61727430 cmnvs r2, r0, lsr r4 - 6e30: 7469736e strbtvc r7, [r9], #-878 - 6e34: 2f6e6f69 svccs 0x006e6f69 - 6e38: 5f6d7261 svcpl 0x006d7261 - 6e3c: 35393131 ldrcc r3, [r9, #-305]! - 6e40: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 6e44: 3033352d eorscc r3, r3, sp, lsr #10 - 6e48: 6d72612f ldfvse f6, [r2, #-188]! - 6e4c: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 6e50: 74756f2f ldrbtvc r6, [r5], #-3887 - 6e54: 2f747570 svccs 0x00747570 - 6e58: 5f6d7261 svcpl 0x006d7261 - 6e5c: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 6e60: 65697261 strbvs r7, [r9, #-609]! - 6e64: 72612f73 rsbvc r2, r1, #460 ; 0x1cc - 6e68: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 - 6e6c: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 - 6e70: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} - 6e74: 64756c63 ldrbtvs r6, [r5], #-3171 - 6e78: 492d2065 pushmi {r0, r2, r5, r6, sp} - 6e7c: 612f3a46 teqvs pc, r6, asr #20 - 6e80: 75626d72 strbvc r6, [r2, #-3442]! - 6e84: 2f646c69 svccs 0x00646c69 - 6e88: 74303335 ldrtvc r3, [r0], #-821 - 6e8c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 6e90: 6f697469 svcvs 0x00697469 - 6e94: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 6e98: 31315f6d teqcc r1, sp, ror #30 - 6e9c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 6ea0: 352d6269 strcc r6, [sp, #-617]! - 6ea4: 612f3033 teqvs pc, r3, lsr r0 - 6ea8: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 6eac: 742f6269 strtvc r6, [pc], #617 ; 6eb4 - 6eb0: 622f706d eorvs r7, pc, #109 ; 0x6d - 6eb4: 646c6975 strbtvs r6, [ip], #-2421 - 6eb8: 2062696c rsbcs r6, r2, ip, ror #18 - 6ebc: 70632d2d rsbvc r2, r3, sp, lsr #26 - 6ec0: 52412075 subpl r2, r1, #117 ; 0x75 - 6ec4: 4454394d ldrbmi r3, [r4], #-2381 - 6ec8: 2d20494d stccs 9, cr4, [r0, #-308]! - 6ecc: 646e652d strbtvs r6, [lr], #-1325 - 6ed0: 206e6169 rsbcs r6, lr, r9, ror #2 - 6ed4: 7474696c ldrbtvc r6, [r4], #-2412 - 6ed8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! - 6edc: 455f5f44 ldrbmi r5, [pc, #-3908] ; 5fa0 - 6ee0: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 - 6ee4: 444c4955 strbmi r4, [ip], #-2389 - 6ee8: 2d205f5f stccs 15, cr5, [r0, #-380]! - 6eec: 415f5f44 cmpmi pc, r4, asr #30 - 6ef0: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 - 6ef4: 41524249 cmpmi r2, r9, asr #4 - 6ef8: 5f5f5952 svcpl 0x005f5952 - 6efc: 612d2d20 teqvs sp, r0, lsr #26 - 6f00: 2d206d72 stccs 13, cr6, [r0, #-456]! - 6f04: 746e692d strbtvc r6, [lr], #-2349 - 6f08: 6f777265 svcvs 0x00777265 - 6f0c: 2d206b72 vstmdbcs r0!, {d6-} - 6f10: 2d20684f stccs 8, cr6, [r0, #-316]! - 6f14: 6c69732d stclvs 3, cr7, [r9], #-180 - 6f18: 20746e65 rsbscs r6, r4, r5, ror #28 - 6f1c: 61772d2d cmnvs r7, sp, lsr #26 - 6f20: 6e696e72 mcrvs 14, 3, r6, cr9, cr2, {3} - 6f24: 615f7367 cmpvs pc, r7, ror #6 - 6f28: 655f6572 ldrbvs r6, [pc, #-1394] ; 69be - 6f2c: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 - 6f30: 2d2d2073 stccs 0, cr2, [sp, #-460]! - 6f34: 69727473 ldmdbvs r2!, {r0, r1, r4, r5, r6, sl, ip, sp, lr}^ - 6f38: 615f7463 cmpvs pc, r3, ror #8 - 6f3c: 2069736e rsbcs r7, r9, lr, ror #6 - 6f40: 6e6f2d2d cdpvs 13, 6, cr2, cr15, cr13, {1} - 6f44: 735f796c cmpvc pc, #1769472 ; 0x1b0000 - 6f48: 756f6474 strbvc r6, [pc, #-1140]! ; 6adc - 6f4c: 2d2d2074 stccs 0, cr2, [sp, #-464]! - 6f50: 67616964 strbvs r6, [r1, -r4, ror #18]! - 6f54: 7075735f rsbsvc r7, r5, pc, asr r3 - 6f58: 73657270 cmnvc r5, #7 ; 0x7 - 6f5c: 6f473d73 svcvs 0x00473d73 - 6f60: 20353030 eorscs r3, r5, r0, lsr r0 - 6f64: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ - 6f68: 735f6761 cmpvc pc, #25427968 ; 0x1840000 - 6f6c: 72707075 rsbsvc r7, r0, #117 ; 0x75 - 6f70: 3d737365 ldclcc 3, cr7, [r3, #-404]! - 6f74: 35346550 ldrcc r6, [r4, #-1360]! - 6f78: 2d2d2030 stccs 0, cr2, [sp, #-192]! - 6f7c: 67616964 strbvs r6, [r1, -r4, ror #18]! - 6f80: 7272655f rsbsvc r6, r2, #398458880 ; 0x17c00000 - 6f84: 503d726f eorspl r7, sp, pc, ror #4 - 6f88: 33393165 teqcc r9, #1073741849 ; 0x40000019 - 6f8c: 2f3a4620 svccs 0x003a4620 - 6f90: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 6f94: 646c6975 strbtvs r6, [ip], #-2421 - 6f98: 3033352f eorscc r3, r3, pc, lsr #10 - 6f9c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 6fa0: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 6fa4: 612f6e6f teqvs pc, pc, ror #28 - 6fa8: 315f6d72 cmpcc pc, r2, ror sp - 6fac: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 6fb0: 2d62696c stclcs 9, cr6, [r2, #-432]! - 6fb4: 2f303335 svccs 0x00303335 - 6fb8: 2f6d7261 svccs 0x006d7261 - 6fbc: 2f62696c svccs 0x0062696c - 6fc0: 7074756f rsbsvc r7, r4, pc, ror #10 - 6fc4: 612f7475 teqvs pc, r5, ror r4 - 6fc8: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 6fcc: 61726269 cmnvs r2, r9, ror #4 - 6fd0: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 6fd4: 6d72612f ldfvse f6, [r2, #-188]! - 6fd8: 5c62696c stclpl 9, cr6, [r2], #-432 - 6fdc: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 - 6fe0: 6d6f632f stclvs 3, cr6, [pc, #-188]! - 6fe4: 2f6e6f6d svccs 0x006e6f6d - 6fe8: 74696e69 strbtvc r6, [r9], #-3689 - 6fec: 656c722f strbvs r7, [ip, #-559]! - 6ff0: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 6ff4: 632e3274 teqvs lr, #1073741831 ; 0x40000007 - 6ff8: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 6ffc: 615c3a46 cmpvs ip, r6, asr #20 - 7000: 75626d72 strbvc r6, [r2, #-3442]! - 7004: 5c646c69 stclpl 12, cr6, [r4], #-420 - 7008: 74303335 ldrtvc r3, [r0], #-821 - 700c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7010: 6f697469 svcvs 0x00697469 - 7014: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 - 7018: 31315f6d teqcc r1, sp, ror #30 - 701c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 7020: 352d6269 strcc r6, [sp, #-617]! - 7024: 615c3033 cmpvs ip, r3, lsr r0 - 7028: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 - 702c: 745c6269 ldrbvc r6, [ip], #-617 - 7030: 625c706d subsvs r7, ip, #109 ; 0x6d - 7034: 646c6975 strbtvs r6, [ip], #-2421 - 7038: 5c62696c stclpl 9, cr6, [r2], #-432 - 703c: 5c6a626f sfmpl f6, 2, [sl], #-444 - 7040: 74347472 ldrtvc r7, [r4], #-1138 - 7044: 5c6c615f stfple f6, [ip], #-380 - 7048: 5f656c72 svcpl 0x00656c72 - 704c: 74696e69 strbtvc r6, [r9], #-3689 - 7050: 206f2e32 rsbcs r2, pc, r2, lsr lr - 7054: 65642d2d strbvs r2, [r4, #-3373]! - 7058: 646e6570 strbtvs r6, [lr], #-1392 - 705c: 69636e65 stmdbvs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 7060: 693d7365 ldmdbvs sp!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} - 7064: 5c3a4620 ldcpl 6, cr4, [sl], #-128 - 7068: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 706c: 646c6975 strbtvs r6, [ip], #-2421 - 7070: 3033355c eorscc r3, r3, ip, asr r5 - 7074: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 7078: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 707c: 615c6e6f cmpvs ip, pc, ror #28 - 7080: 315f6d72 cmpcc pc, r2, ror sp - 7084: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 7088: 2d62696c stclcs 9, cr6, [r2, #-432]! - 708c: 5c303335 ldcpl 3, cr3, [r0], #-212 - 7090: 5c6d7261 sfmpl f7, 2, [sp], #-388 - 7094: 5c62696c stclpl 9, cr6, [r2], #-432 - 7098: 5c706d74 ldclpl 13, cr6, [r0], #-464 - 709c: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 70a0: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 - 70a4: 6a626f5c bvs 18a2e1c - 70a8: 3474725c ldrbtcc r7, [r4], #-604 - 70ac: 6c615f74 stclvs 15, cr5, [r1], #-464 - 70b0: 656c725c strbvs r7, [ip, #-604]! - 70b4: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 70b8: 642e3274 strtvs r3, [lr], #-628 - 70bc: 61700000 cmnvs r0, r0 - 70c0: 69626b63 stmdbvs r2!, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ - 70c4: 695f7374 ldmdbvs pc, {r2, r4, r5, r6, r8, r9, ip, sp, lr}^ - 70c8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 - 70cc: 72286f2e eorvc r6, r8, #184 ; 0xb8 - 70d0: 5f743474 svcpl 0x00743474 - 70d4: 612e6c61 teqvs lr, r1, ror #24 - 70d8: 00003a29 andeq r3, r0, r9, lsr #20 - 70dc: 20524149 subscs r4, r2, r9, asr #2 - 70e0: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 70e4: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 70e8: 43202b2b teqmi r0, #44032 ; 0xac00 - 70ec: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 70f0: 2072656c rsbscs r6, r2, ip, ror #10 - 70f4: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 70f8: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} - 70fc: 37313135 undefined - 7100: 33572f34 cmpcc r7, #208 ; 0xd0 - 7104: 6f662032 svcvs 0x00662032 - 7108: 52412072 subpl r2, r1, #114 ; 0x72 - 710c: 492d004d pushmi {r0, r2, r3, r6} - 7110: 612f3a46 teqvs pc, r6, asr #20 - 7114: 75626d72 strbvc r6, [r2, #-3442]! - 7118: 2f646c69 svccs 0x00646c69 - 711c: 74303335 ldrtvc r3, [r0], #-821 - 7120: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7124: 6f697469 svcvs 0x00697469 - 7128: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 712c: 31315f6d teqcc r1, sp, ror #30 - 7130: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 7134: 352d6269 strcc r6, [sp, #-617]! - 7138: 612f3033 teqvs pc, r3, lsr r0 - 713c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 7140: 6f2f6269 svcvs 0x002f6269 - 7144: 75707475 ldrbvc r7, [r0, #-1141]! - 7148: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 714c: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 7150: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 7154: 2f736569 svccs 0x00736569 - 7158: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 715c: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} - 7160: 492d2063 pushmi {r0, r1, r5, r6, sp} - 7164: 612f3a46 teqvs pc, r6, asr #20 - 7168: 75626d72 strbvc r6, [r2, #-3442]! - 716c: 2f646c69 svccs 0x00646c69 - 7170: 74303335 ldrtvc r3, [r0], #-821 - 7174: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7178: 6f697469 svcvs 0x00697469 - 717c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 7180: 31315f6d teqcc r1, sp, ror #30 - 7184: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 7188: 352d6269 strcc r6, [sp, #-617]! - 718c: 612f3033 teqvs pc, r3, lsr r0 - 7190: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 7194: 6f2f6269 svcvs 0x002f6269 - 7198: 75707475 ldrbvc r7, [r0, #-1141]! - 719c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 71a0: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 71a4: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 71a8: 2f736569 svccs 0x00736569 - 71ac: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 71b0: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 - 71b4: 492d2063 pushmi {r0, r1, r5, r6, sp} - 71b8: 612f3a46 teqvs pc, r6, asr #20 - 71bc: 75626d72 strbvc r6, [r2, #-3442]! - 71c0: 2f646c69 svccs 0x00646c69 - 71c4: 74303335 ldrtvc r3, [r0], #-821 - 71c8: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 71cc: 6f697469 svcvs 0x00697469 - 71d0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 71d4: 31315f6d teqcc r1, sp, ror #30 - 71d8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 71dc: 352d6269 strcc r6, [sp, #-617]! - 71e0: 612f3033 teqvs pc, r3, lsr r0 - 71e4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 71e8: 6f2f6269 svcvs 0x002f6269 - 71ec: 75707475 ldrbvc r7, [r0, #-1141]! - 71f0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 71f4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 71f8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 71fc: 2f736569 svccs 0x00736569 - 7200: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 7204: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} - 7208: 756c636e strbvc r6, [ip, #-878]! - 720c: 2d206564 cfstr32cs mvfx6, [r0, #-400]! - 7210: 2f3a4649 svccs 0x003a4649 - 7214: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 7218: 646c6975 strbtvs r6, [ip], #-2421 - 721c: 3033352f eorscc r3, r3, pc, lsr #10 - 7220: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 7224: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 7228: 612f6e6f teqvs pc, pc, ror #28 - 722c: 315f6d72 cmpcc pc, r2, ror sp - 7230: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 7234: 2d62696c stclcs 9, cr6, [r2, #-432]! - 7238: 2f303335 svccs 0x00303335 - 723c: 2f6d7261 svccs 0x006d7261 - 7240: 2f62696c svccs 0x0062696c - 7244: 7074756f rsbsvc r7, r4, pc, ror #10 - 7248: 612f7475 teqvs pc, r5, ror r4 - 724c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 7250: 61726269 cmnvs r2, r9, ror #4 - 7254: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 7258: 6d72612f ldfvse f6, [r2, #-188]! - 725c: 2f62696c svccs 0x0062696c - 7260: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 - 7264: 636e692f cmnvs lr, #770048 ; 0xbc000 - 7268: 6564756c strbvs r7, [r4, #-1388]! - 726c: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 7270: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 7274: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 7278: 352f646c strcc r6, [pc, #-1132]! ; 6e14 - 727c: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 7280: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 7284: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7288: 6d72612f ldfvse f6, [r2, #-188]! - 728c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 7290: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 7294: 33352d62 teqcc r5, #6272 ; 0x1880 - 7298: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 729c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 72a0: 6d742f62 ldclvs 15, cr2, [r4, #-392]! - 72a4: 75622f70 strbvc r2, [r2, #-3952]! - 72a8: 6c646c69 stclvs 12, cr6, [r4], #-420 - 72ac: 2d206269 sfmcs f6, 4, [r0, #-420]! - 72b0: 7570632d ldrbvc r6, [r0, #-813]! - 72b4: 4d524120 ldfmie f4, [r2, #-128] - 72b8: 4d445439 cfstrdmi mvd5, [r4, #-228] - 72bc: 2d2d2049 stccs 0, cr2, [sp, #-292]! - 72c0: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 72c4: 6c206e61 stcvs 14, cr6, [r0], #-388 - 72c8: 6c747469 cfldrdvs mvd7, [r4], #-420 - 72cc: 442d2065 strtmi r2, [sp], #-101 - 72d0: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 - 72d4: 55425f46 strbpl r5, [r2, #-3910] - 72d8: 5f444c49 svcpl 0x00444c49 - 72dc: 442d205f strtmi r2, [sp], #-95 - 72e0: 52415f5f subpl r5, r1, #380 ; 0x17c - 72e4: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ - 72e8: 52415242 subpl r5, r1, #536870916 ; 0x20000004 - 72ec: 205f5f59 subscs r5, pc, r9, asr pc - 72f0: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 - 72f4: 2d2d206d stccs 0, cr2, [sp, #-436]! - 72f8: 65746e69 ldrbvs r6, [r4, #-3689]! - 72fc: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 - 7300: 4f2d206b svcmi 0x002d206b - 7304: 2d2d2068 stccs 0, cr2, [sp, #-416]! - 7308: 656c6973 strbvs r6, [ip, #-2419]! - 730c: 2d20746e cfstrscs mvf7, [r0, #-440]! - 7310: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 - 7314: 676e696e strbvs r6, [lr, -lr, ror #18]! - 7318: 72615f73 rsbvc r5, r1, #460 ; 0x1cc - 731c: 72655f65 rsbvc r5, r5, #404 ; 0x194 - 7320: 73726f72 cmnvc r2, #456 ; 0x1c8 - 7324: 732d2d20 teqvc sp, #2048 ; 0x800 - 7328: 63697274 cmnvs r9, #1073741831 ; 0x40000007 - 732c: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} - 7330: 2d206973 stccs 9, cr6, [r0, #-460]! - 7334: 6c6e6f2d stclvs 15, cr6, [lr], #-180 - 7338: 74735f79 ldrbtvc r5, [r3], #-3961 - 733c: 74756f64 ldrbtvc r6, [r5], #-3940 - 7340: 642d2d20 strtvs r2, [sp], #-3360 - 7344: 5f676169 svcpl 0x00676169 - 7348: 70707573 rsbsvc r7, r0, r3, ror r5 - 734c: 73736572 cmnvc r3, #478150656 ; 0x1c800000 - 7350: 306f473d rsbcc r4, pc, sp, lsr r7 - 7354: 2d203530 cfstr32cs mvfx3, [r0, #-192]! - 7358: 6169642d cmnvs r9, sp, lsr #8 - 735c: 75735f67 ldrbvc r5, [r3, #-3943]! - 7360: 65727070 ldrbvs r7, [r2, #-112]! - 7364: 503d7373 eorspl r7, sp, r3, ror r3 - 7368: 30353465 eorscc r3, r5, r5, ror #8 - 736c: 642d2d20 strtvs r2, [sp], #-3360 - 7370: 5f676169 svcpl 0x00676169 - 7374: 6f727265 svcvs 0x00727265 - 7378: 65503d72 ldrbvs r3, [r0, #-3442] - 737c: 20333931 eorscs r3, r3, r1, lsr r9 - 7380: 612f3a46 teqvs pc, r6, asr #20 - 7384: 75626d72 strbvc r6, [r2, #-3442]! - 7388: 2f646c69 svccs 0x00646c69 - 738c: 74303335 ldrtvc r3, [r0], #-821 - 7390: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7394: 6f697469 svcvs 0x00697469 - 7398: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 739c: 31315f6d teqcc r1, sp, ror #30 - 73a0: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 73a4: 352d6269 strcc r6, [sp, #-617]! - 73a8: 612f3033 teqvs pc, r3, lsr r0 - 73ac: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 73b0: 6f2f6269 svcvs 0x002f6269 - 73b4: 75707475 ldrbvc r7, [r0, #-1141]! - 73b8: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 73bc: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 73c0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 73c4: 2f736569 svccs 0x00736569 - 73c8: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 73cc: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 - 73d0: 2f326372 svccs 0x00326372 - 73d4: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! - 73d8: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} - 73dc: 2f74696e svccs 0x0074696e - 73e0: 6b636170 blvs 18df9a8 - 73e4: 73746962 cmnvc r4, #1605632 ; 0x188000 - 73e8: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 73ec: 632e3274 teqvs lr, #1073741831 ; 0x40000007 - 73f0: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 73f4: 615c3a46 cmpvs ip, r6, asr #20 - 73f8: 75626d72 strbvc r6, [r2, #-3442]! - 73fc: 5c646c69 stclpl 12, cr6, [r4], #-420 - 7400: 74303335 ldrtvc r3, [r0], #-821 - 7404: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7408: 6f697469 svcvs 0x00697469 - 740c: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 - 7410: 31315f6d teqcc r1, sp, ror #30 - 7414: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 7418: 352d6269 strcc r6, [sp, #-617]! - 741c: 615c3033 cmpvs ip, r3, lsr r0 - 7420: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 - 7424: 745c6269 ldrbvc r6, [ip], #-617 - 7428: 625c706d subsvs r7, ip, #109 ; 0x6d - 742c: 646c6975 strbtvs r6, [ip], #-2421 - 7430: 5c62696c stclpl 9, cr6, [r2], #-432 - 7434: 5c6a626f sfmpl f6, 2, [sl], #-444 - 7438: 74347472 ldrtvc r7, [r4], #-1138 - 743c: 5c6c615f stfple f6, [ip], #-380 - 7440: 6b636170 blvs 18dfa08 - 7444: 73746962 cmnvc r4, #1605632 ; 0x188000 - 7448: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 744c: 6f2e3274 svcvs 0x002e3274 - 7450: 642d2d20 strtvs r2, [sp], #-3360 - 7454: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} - 7458: 636e6564 cmnvs lr, #419430400 ; 0x19000000 - 745c: 3d736569 cfldr64cc mvdx6, [r3, #-420]! - 7460: 3a462069 bcc 118f60c - 7464: 6d72615c ldfvse f6, [r2, #-368]! - 7468: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 746c: 33355c64 teqcc r5, #25600 ; 0x6400 - 7470: 61727430 cmnvs r2, r0, lsr r4 - 7474: 7469736e strbtvc r7, [r9], #-878 - 7478: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 747c: 5f6d7261 svcpl 0x006d7261 - 7480: 35393131 ldrcc r3, [r9, #-305]! - 7484: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 7488: 3033352d eorscc r3, r3, sp, lsr #10 - 748c: 6d72615c ldfvse f6, [r2, #-368]! - 7490: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 - 7494: 706d745c rsbvc r7, sp, ip, asr r4 - 7498: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ - 749c: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 74a0: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 - 74a4: 74725c6a ldrbtvc r5, [r2], #-3178 - 74a8: 615f7434 cmpvs pc, r4, lsr r4 - 74ac: 61705c6c cmnvs r0, ip, ror #24 - 74b0: 69626b63 stmdbvs r2!, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ - 74b4: 695f7374 ldmdbvs pc, {r2, r4, r5, r6, r8, r9, ip, sp, lr}^ - 74b8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 - 74bc: 0000642e andeq r6, r0, lr, lsr #8 - 74c0: 5f777a6c svcpl 0x00777a6c - 74c4: 74696e69 strbtvc r6, [r9], #-3689 - 74c8: 286f2e32 stmdacs pc!, {r1, r4, r5, r9, sl, fp, sp}^ - 74cc: 74347472 ldrtvc r7, [r4], #-1138 - 74d0: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} - 74d4: 003a2961 eorseq r2, sl, r1, ror #18 - 74d8: 52414900 subpl r4, r1, #0 ; 0x0 - 74dc: 534e4120 movtpl r4, #57632 ; 0xe120 - 74e0: 2f432049 svccs 0x00432049 - 74e4: 202b2b43 eorcs r2, fp, r3, asr #22 - 74e8: 706d6f43 rsbvc r6, sp, r3, asr #30 - 74ec: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 74f0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 74f4: 302e3033 eorcc r3, lr, r3, lsr r0 - 74f8: 3131352e teqcc r1, lr, lsr #10 - 74fc: 572f3437 undefined - 7500: 66203233 undefined - 7504: 4120726f teqmi r0, pc, ror #4 - 7508: 2d004d52 stccs 13, cr4, [r0, #-328] - 750c: 2f3a4649 svccs 0x003a4649 - 7510: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 7514: 646c6975 strbtvs r6, [ip], #-2421 - 7518: 3033352f eorscc r3, r3, pc, lsr #10 - 751c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 7520: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 7524: 612f6e6f teqvs pc, pc, ror #28 - 7528: 315f6d72 cmpcc pc, r2, ror sp - 752c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 7530: 2d62696c stclcs 9, cr6, [r2, #-432]! - 7534: 2f303335 svccs 0x00303335 - 7538: 2f6d7261 svccs 0x006d7261 - 753c: 2f62696c svccs 0x0062696c - 7540: 7074756f rsbsvc r7, r4, pc, ror #10 - 7544: 612f7475 teqvs pc, r5, ror r4 - 7548: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 754c: 61726269 cmnvs r2, r9, ror #4 - 7550: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 7554: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ - 7558: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} - 755c: 2d20636e stccs 3, cr6, [r0, #-440]! - 7560: 2f3a4649 svccs 0x003a4649 - 7564: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 7568: 646c6975 strbtvs r6, [ip], #-2421 - 756c: 3033352f eorscc r3, r3, pc, lsr #10 - 7570: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 7574: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 7578: 612f6e6f teqvs pc, pc, ror #28 - 757c: 315f6d72 cmpcc pc, r2, ror sp - 7580: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 7584: 2d62696c stclcs 9, cr6, [r2, #-432]! - 7588: 2f303335 svccs 0x00303335 - 758c: 2f6d7261 svccs 0x006d7261 - 7590: 2f62696c svccs 0x0062696c - 7594: 7074756f rsbsvc r7, r4, pc, ror #10 - 7598: 612f7475 teqvs pc, r5, ror r4 - 759c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 75a0: 61726269 cmnvs r2, r9, ror #4 - 75a4: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 75a8: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ - 75ac: 732f3462 teqvc pc, #1644167168 ; 0x62000000 - 75b0: 2d206372 stccs 3, cr6, [r0, #-456]! - 75b4: 2f3a4649 svccs 0x003a4649 - 75b8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 75bc: 646c6975 strbtvs r6, [ip], #-2421 - 75c0: 3033352f eorscc r3, r3, pc, lsr #10 - 75c4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 75c8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 75cc: 612f6e6f teqvs pc, pc, ror #28 - 75d0: 315f6d72 cmpcc pc, r2, ror sp - 75d4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 75d8: 2d62696c stclcs 9, cr6, [r2, #-432]! - 75dc: 2f303335 svccs 0x00303335 - 75e0: 2f6d7261 svccs 0x006d7261 - 75e4: 2f62696c svccs 0x0062696c - 75e8: 7074756f rsbsvc r7, r4, pc, ror #10 - 75ec: 612f7475 teqvs pc, r5, ror r4 - 75f0: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 75f4: 61726269 cmnvs r2, r9, ror #4 - 75f8: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 75fc: 6d72612f ldfvse f6, [r2, #-188]! - 7600: 2f62696c svccs 0x0062696c - 7604: 6c636e69 stclvs 14, cr6, [r3], #-420 - 7608: 20656475 rsbcs r6, r5, r5, ror r4 - 760c: 3a46492d bcc 1199ac8 - 7610: 6d72612f ldfvse f6, [r2, #-188]! - 7614: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 7618: 33352f64 teqcc r5, #400 ; 0x190 - 761c: 61727430 cmnvs r2, r0, lsr r4 - 7620: 7469736e strbtvc r7, [r9], #-878 - 7624: 2f6e6f69 svccs 0x006e6f69 - 7628: 5f6d7261 svcpl 0x006d7261 - 762c: 35393131 ldrcc r3, [r9, #-305]! - 7630: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 7634: 3033352d eorscc r3, r3, sp, lsr #10 - 7638: 6d72612f ldfvse f6, [r2, #-188]! - 763c: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 7640: 74756f2f ldrbtvc r6, [r5], #-3887 - 7644: 2f747570 svccs 0x00747570 - 7648: 5f6d7261 svcpl 0x006d7261 - 764c: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 7650: 65697261 strbvs r7, [r9, #-609]! - 7654: 72612f73 rsbvc r2, r1, #460 ; 0x1cc - 7658: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 - 765c: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 - 7660: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} - 7664: 64756c63 ldrbtvs r6, [r5], #-3171 - 7668: 492d2065 pushmi {r0, r2, r5, r6, sp} - 766c: 612f3a46 teqvs pc, r6, asr #20 - 7670: 75626d72 strbvc r6, [r2, #-3442]! - 7674: 2f646c69 svccs 0x00646c69 - 7678: 74303335 ldrtvc r3, [r0], #-821 - 767c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7680: 6f697469 svcvs 0x00697469 - 7684: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 7688: 31315f6d teqcc r1, sp, ror #30 - 768c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 7690: 352d6269 strcc r6, [sp, #-617]! - 7694: 612f3033 teqvs pc, r3, lsr r0 - 7698: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 769c: 742f6269 strtvc r6, [pc], #617 ; 76a4 - 76a0: 622f706d eorvs r7, pc, #109 ; 0x6d - 76a4: 646c6975 strbtvs r6, [ip], #-2421 - 76a8: 2062696c rsbcs r6, r2, ip, ror #18 - 76ac: 70632d2d rsbvc r2, r3, sp, lsr #26 - 76b0: 52412075 subpl r2, r1, #117 ; 0x75 - 76b4: 4454394d ldrbmi r3, [r4], #-2381 - 76b8: 2d20494d stccs 9, cr4, [r0, #-308]! - 76bc: 646e652d strbtvs r6, [lr], #-1325 - 76c0: 206e6169 rsbcs r6, lr, r9, ror #2 - 76c4: 7474696c ldrbtvc r6, [r4], #-2412 - 76c8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! - 76cc: 455f5f44 ldrbmi r5, [pc, #-3908] ; 6790 - 76d0: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 - 76d4: 444c4955 strbmi r4, [ip], #-2389 - 76d8: 2d205f5f stccs 15, cr5, [r0, #-380]! - 76dc: 415f5f44 cmpmi pc, r4, asr #30 - 76e0: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 - 76e4: 41524249 cmpmi r2, r9, asr #4 - 76e8: 5f5f5952 svcpl 0x005f5952 - 76ec: 612d2d20 teqvs sp, r0, lsr #26 - 76f0: 2d206d72 stccs 13, cr6, [r0, #-456]! - 76f4: 746e692d strbtvc r6, [lr], #-2349 - 76f8: 6f777265 svcvs 0x00777265 - 76fc: 2d206b72 vstmdbcs r0!, {d6-} - 7700: 2d20684f stccs 8, cr6, [r0, #-316]! - 7704: 6c69732d stclvs 3, cr7, [r9], #-180 - 7708: 20746e65 rsbscs r6, r4, r5, ror #28 - 770c: 61772d2d cmnvs r7, sp, lsr #26 - 7710: 6e696e72 mcrvs 14, 3, r6, cr9, cr2, {3} - 7714: 615f7367 cmpvs pc, r7, ror #6 - 7718: 655f6572 ldrbvs r6, [pc, #-1394] ; 71ae - 771c: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 - 7720: 2d2d2073 stccs 0, cr2, [sp, #-460]! - 7724: 69727473 ldmdbvs r2!, {r0, r1, r4, r5, r6, sl, ip, sp, lr}^ - 7728: 615f7463 cmpvs pc, r3, ror #8 - 772c: 2069736e rsbcs r7, r9, lr, ror #6 - 7730: 6e6f2d2d cdpvs 13, 6, cr2, cr15, cr13, {1} - 7734: 735f796c cmpvc pc, #1769472 ; 0x1b0000 - 7738: 756f6474 strbvc r6, [pc, #-1140]! ; 72cc - 773c: 2d2d2074 stccs 0, cr2, [sp, #-464]! - 7740: 67616964 strbvs r6, [r1, -r4, ror #18]! - 7744: 7075735f rsbsvc r7, r5, pc, asr r3 - 7748: 73657270 cmnvc r5, #7 ; 0x7 - 774c: 6f473d73 svcvs 0x00473d73 - 7750: 20353030 eorscs r3, r5, r0, lsr r0 - 7754: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ - 7758: 735f6761 cmpvc pc, #25427968 ; 0x1840000 - 775c: 72707075 rsbsvc r7, r0, #117 ; 0x75 - 7760: 3d737365 ldclcc 3, cr7, [r3, #-404]! - 7764: 35346550 ldrcc r6, [r4, #-1360]! - 7768: 2d2d2030 stccs 0, cr2, [sp, #-192]! - 776c: 67616964 strbvs r6, [r1, -r4, ror #18]! - 7770: 7272655f rsbsvc r6, r2, #398458880 ; 0x17c00000 - 7774: 503d726f eorspl r7, sp, pc, ror #4 - 7778: 33393165 teqcc r9, #1073741849 ; 0x40000019 - 777c: 2f3a4620 svccs 0x003a4620 - 7780: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 7784: 646c6975 strbtvs r6, [ip], #-2421 - 7788: 3033352f eorscc r3, r3, pc, lsr #10 - 778c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 7790: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 7794: 612f6e6f teqvs pc, pc, ror #28 - 7798: 315f6d72 cmpcc pc, r2, ror sp - 779c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 77a0: 2d62696c stclcs 9, cr6, [r2, #-432]! - 77a4: 2f303335 svccs 0x00303335 - 77a8: 2f6d7261 svccs 0x006d7261 - 77ac: 2f62696c svccs 0x0062696c - 77b0: 7074756f rsbsvc r7, r4, pc, ror #10 - 77b4: 612f7475 teqvs pc, r5, ror r4 - 77b8: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 77bc: 61726269 cmnvs r2, r9, ror #4 - 77c0: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 77c4: 6d72612f ldfvse f6, [r2, #-188]! - 77c8: 5c62696c stclpl 9, cr6, [r2], #-432 - 77cc: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 - 77d0: 6d6f632f stclvs 3, cr6, [pc, #-188]! - 77d4: 2f6e6f6d svccs 0x006e6f6d - 77d8: 74696e69 strbtvc r6, [r9], #-3689 - 77dc: 777a6c2f ldrbvc r6, [sl, -pc, lsr #24]! - 77e0: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 77e4: 632e3274 teqvs lr, #1073741831 ; 0x40000007 - 77e8: 2d207070 stccs 0, cr7, [r0, #-448]! - 77ec: 3a46206f bcc 118f9b0 - 77f0: 6d72615c ldfvse f6, [r2, #-368]! - 77f4: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 77f8: 33355c64 teqcc r5, #25600 ; 0x6400 - 77fc: 61727430 cmnvs r2, r0, lsr r4 - 7800: 7469736e strbtvc r7, [r9], #-878 - 7804: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 7808: 5f6d7261 svcpl 0x006d7261 - 780c: 35393131 ldrcc r3, [r9, #-305]! - 7810: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 7814: 3033352d eorscc r3, r3, sp, lsr #10 - 7818: 6d72615c ldfvse f6, [r2, #-368]! - 781c: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 - 7820: 706d745c rsbvc r7, sp, ip, asr r4 - 7824: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ - 7828: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 782c: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 - 7830: 74725c6a ldrbtvc r5, [r2], #-3178 - 7834: 615f7434 cmpvs pc, r4, lsr r4 - 7838: 7a6c5c6c bvc 1b1e9f0 - 783c: 6e695f77 mcrvs 15, 3, r5, cr9, cr7, {3} - 7840: 2e327469 cdpcs 4, 3, cr7, cr2, cr9, {3} - 7844: 2d2d206f stccs 0, cr2, [sp, #-444]! - 7848: 2b636565 blcs 18e0de4 - 784c: 2d2d202b stccs 0, cr2, [sp, #-172]! - 7850: 65706564 ldrbvs r6, [r0, #-1380]! - 7854: 6e65646e cdpvs 4, 6, cr6, cr5, cr14, {3} - 7858: 73656963 cmnvc r5, #1622016 ; 0x18c000 - 785c: 4620693d undefined - 7860: 72615c3a rsbvc r5, r1, #14848 ; 0x3a00 - 7864: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 7868: 355c646c ldrbcc r6, [ip, #-1132] - 786c: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 7870: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 7874: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7878: 6d72615c ldfvse f6, [r2, #-368]! - 787c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 7880: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 7884: 33352d62 teqcc r5, #6272 ; 0x1880 - 7888: 72615c30 rsbvc r5, r1, #12288 ; 0x3000 - 788c: 696c5c6d stmdbvs ip!, {r0, r2, r3, r5, r6, sl, fp, ip, lr}^ - 7890: 6d745c62 ldclvs 12, cr5, [r4, #-392]! - 7894: 75625c70 strbvc r5, [r2, #-3184]! - 7898: 6c646c69 stclvs 12, cr6, [r4], #-420 - 789c: 6f5c6269 svcvs 0x005c6269 - 78a0: 725c6a62 subsvc r6, ip, #401408 ; 0x62000 - 78a4: 5f743474 svcpl 0x00743474 - 78a8: 6c5c6c61 mrrcvs 12, 6, r6, ip, cr1 - 78ac: 695f777a ldmdbvs pc, {r1, r3, r4, r5, r6, r8, r9, sl, ip, sp, lr}^ - 78b0: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 - 78b4: 0000642e andeq r6, r0, lr, lsr #8 - 78b8: 5f747762 svcpl 0x00747762 - 78bc: 74696e69 strbtvc r6, [r9], #-3689 - 78c0: 286f2e32 stmdacs pc!, {r1, r4, r5, r9, sl, fp, sp}^ - 78c4: 74347472 ldrtvc r7, [r4], #-1138 - 78c8: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} - 78cc: 003a2961 eorseq r2, sl, r1, ror #18 - 78d0: 52414900 subpl r4, r1, #0 ; 0x0 - 78d4: 534e4120 movtpl r4, #57632 ; 0xe120 - 78d8: 2f432049 svccs 0x00432049 - 78dc: 202b2b43 eorcs r2, fp, r3, asr #22 - 78e0: 706d6f43 rsbvc r6, sp, r3, asr #30 - 78e4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 - 78e8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 - 78ec: 302e3033 eorcc r3, lr, r3, lsr r0 - 78f0: 3131352e teqcc r1, lr, lsr #10 - 78f4: 572f3437 undefined - 78f8: 66203233 undefined - 78fc: 4120726f teqmi r0, pc, ror #4 - 7900: 2d004d52 stccs 13, cr4, [r0, #-328] - 7904: 2f3a4649 svccs 0x003a4649 - 7908: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 790c: 646c6975 strbtvs r6, [ip], #-2421 - 7910: 3033352f eorscc r3, r3, pc, lsr #10 - 7914: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 7918: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 791c: 612f6e6f teqvs pc, pc, ror #28 - 7920: 315f6d72 cmpcc pc, r2, ror sp - 7924: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 7928: 2d62696c stclcs 9, cr6, [r2, #-432]! - 792c: 2f303335 svccs 0x00303335 - 7930: 2f6d7261 svccs 0x006d7261 - 7934: 2f62696c svccs 0x0062696c - 7938: 7074756f rsbsvc r7, r4, pc, ror #10 - 793c: 612f7475 teqvs pc, r5, ror r4 - 7940: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 7944: 61726269 cmnvs r2, r9, ror #4 - 7948: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 794c: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ - 7950: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} - 7954: 2d20636e stccs 3, cr6, [r0, #-440]! - 7958: 2f3a4649 svccs 0x003a4649 - 795c: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 7960: 646c6975 strbtvs r6, [ip], #-2421 - 7964: 3033352f eorscc r3, r3, pc, lsr #10 - 7968: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 796c: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 7970: 612f6e6f teqvs pc, pc, ror #28 - 7974: 315f6d72 cmpcc pc, r2, ror sp - 7978: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 797c: 2d62696c stclcs 9, cr6, [r2, #-432]! - 7980: 2f303335 svccs 0x00303335 - 7984: 2f6d7261 svccs 0x006d7261 - 7988: 2f62696c svccs 0x0062696c - 798c: 7074756f rsbsvc r7, r4, pc, ror #10 - 7990: 612f7475 teqvs pc, r5, ror r4 - 7994: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 7998: 61726269 cmnvs r2, r9, ror #4 - 799c: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 79a0: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ - 79a4: 732f3462 teqvc pc, #1644167168 ; 0x62000000 - 79a8: 2d206372 stccs 3, cr6, [r0, #-456]! - 79ac: 2f3a4649 svccs 0x003a4649 - 79b0: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 79b4: 646c6975 strbtvs r6, [ip], #-2421 - 79b8: 3033352f eorscc r3, r3, pc, lsr #10 - 79bc: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 79c0: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 79c4: 612f6e6f teqvs pc, pc, ror #28 - 79c8: 315f6d72 cmpcc pc, r2, ror sp - 79cc: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 79d0: 2d62696c stclcs 9, cr6, [r2, #-432]! - 79d4: 2f303335 svccs 0x00303335 - 79d8: 2f6d7261 svccs 0x006d7261 - 79dc: 2f62696c svccs 0x0062696c - 79e0: 7074756f rsbsvc r7, r4, pc, ror #10 - 79e4: 612f7475 teqvs pc, r5, ror r4 - 79e8: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 79ec: 61726269 cmnvs r2, r9, ror #4 - 79f0: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 79f4: 6d72612f ldfvse f6, [r2, #-188]! - 79f8: 2f62696c svccs 0x0062696c - 79fc: 6c636e69 stclvs 14, cr6, [r3], #-420 - 7a00: 20656475 rsbcs r6, r5, r5, ror r4 - 7a04: 3a46492d bcc 1199ec0 - 7a08: 6d72612f ldfvse f6, [r2, #-188]! - 7a0c: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 7a10: 33352f64 teqcc r5, #400 ; 0x190 - 7a14: 61727430 cmnvs r2, r0, lsr r4 - 7a18: 7469736e strbtvc r7, [r9], #-878 - 7a1c: 2f6e6f69 svccs 0x006e6f69 - 7a20: 5f6d7261 svcpl 0x006d7261 - 7a24: 35393131 ldrcc r3, [r9, #-305]! - 7a28: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 7a2c: 3033352d eorscc r3, r3, sp, lsr #10 - 7a30: 6d72612f ldfvse f6, [r2, #-188]! - 7a34: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 7a38: 74756f2f ldrbtvc r6, [r5], #-3887 - 7a3c: 2f747570 svccs 0x00747570 - 7a40: 5f6d7261 svcpl 0x006d7261 - 7a44: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 7a48: 65697261 strbvs r7, [r9, #-609]! - 7a4c: 72612f73 rsbvc r2, r1, #460 ; 0x1cc - 7a50: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 - 7a54: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 - 7a58: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} - 7a5c: 64756c63 ldrbtvs r6, [r5], #-3171 - 7a60: 492d2065 pushmi {r0, r2, r5, r6, sp} - 7a64: 612f3a46 teqvs pc, r6, asr #20 - 7a68: 75626d72 strbvc r6, [r2, #-3442]! - 7a6c: 2f646c69 svccs 0x00646c69 - 7a70: 74303335 ldrtvc r3, [r0], #-821 - 7a74: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7a78: 6f697469 svcvs 0x00697469 - 7a7c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 7a80: 31315f6d teqcc r1, sp, ror #30 - 7a84: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 7a88: 352d6269 strcc r6, [sp, #-617]! - 7a8c: 612f3033 teqvs pc, r3, lsr r0 - 7a90: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 7a94: 742f6269 strtvc r6, [pc], #617 ; 7a9c - 7a98: 622f706d eorvs r7, pc, #109 ; 0x6d - 7a9c: 646c6975 strbtvs r6, [ip], #-2421 - 7aa0: 2062696c rsbcs r6, r2, ip, ror #18 - 7aa4: 70632d2d rsbvc r2, r3, sp, lsr #26 - 7aa8: 52412075 subpl r2, r1, #117 ; 0x75 - 7aac: 4454394d ldrbmi r3, [r4], #-2381 - 7ab0: 2d20494d stccs 9, cr4, [r0, #-308]! - 7ab4: 646e652d strbtvs r6, [lr], #-1325 - 7ab8: 206e6169 rsbcs r6, lr, r9, ror #2 - 7abc: 7474696c ldrbtvc r6, [r4], #-2412 - 7ac0: 2d20656c cfstr32cs mvfx6, [r0, #-432]! - 7ac4: 455f5f44 ldrbmi r5, [pc, #-3908] ; 6b88 - 7ac8: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 - 7acc: 444c4955 strbmi r4, [ip], #-2389 - 7ad0: 2d205f5f stccs 15, cr5, [r0, #-380]! - 7ad4: 415f5f44 cmpmi pc, r4, asr #30 - 7ad8: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 - 7adc: 41524249 cmpmi r2, r9, asr #4 - 7ae0: 5f5f5952 svcpl 0x005f5952 - 7ae4: 612d2d20 teqvs sp, r0, lsr #26 - 7ae8: 2d206d72 stccs 13, cr6, [r0, #-456]! - 7aec: 746e692d strbtvc r6, [lr], #-2349 - 7af0: 6f777265 svcvs 0x00777265 - 7af4: 2d206b72 vstmdbcs r0!, {d6-} - 7af8: 2d20684f stccs 8, cr6, [r0, #-316]! - 7afc: 6c69732d stclvs 3, cr7, [r9], #-180 - 7b00: 20746e65 rsbscs r6, r4, r5, ror #28 - 7b04: 61772d2d cmnvs r7, sp, lsr #26 - 7b08: 6e696e72 mcrvs 14, 3, r6, cr9, cr2, {3} - 7b0c: 615f7367 cmpvs pc, r7, ror #6 - 7b10: 655f6572 ldrbvs r6, [pc, #-1394] ; 75a6 - 7b14: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 - 7b18: 2d2d2073 stccs 0, cr2, [sp, #-460]! - 7b1c: 69727473 ldmdbvs r2!, {r0, r1, r4, r5, r6, sl, ip, sp, lr}^ - 7b20: 615f7463 cmpvs pc, r3, ror #8 - 7b24: 2069736e rsbcs r7, r9, lr, ror #6 - 7b28: 6e6f2d2d cdpvs 13, 6, cr2, cr15, cr13, {1} - 7b2c: 735f796c cmpvc pc, #1769472 ; 0x1b0000 - 7b30: 756f6474 strbvc r6, [pc, #-1140]! ; 76c4 - 7b34: 2d2d2074 stccs 0, cr2, [sp, #-464]! - 7b38: 67616964 strbvs r6, [r1, -r4, ror #18]! - 7b3c: 7075735f rsbsvc r7, r5, pc, asr r3 - 7b40: 73657270 cmnvc r5, #7 ; 0x7 - 7b44: 6f473d73 svcvs 0x00473d73 - 7b48: 20353030 eorscs r3, r5, r0, lsr r0 - 7b4c: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ - 7b50: 735f6761 cmpvc pc, #25427968 ; 0x1840000 - 7b54: 72707075 rsbsvc r7, r0, #117 ; 0x75 - 7b58: 3d737365 ldclcc 3, cr7, [r3, #-404]! - 7b5c: 35346550 ldrcc r6, [r4, #-1360]! - 7b60: 2d2d2030 stccs 0, cr2, [sp, #-192]! - 7b64: 67616964 strbvs r6, [r1, -r4, ror #18]! - 7b68: 7272655f rsbsvc r6, r2, #398458880 ; 0x17c00000 - 7b6c: 503d726f eorspl r7, sp, pc, ror #4 - 7b70: 33393165 teqcc r9, #1073741849 ; 0x40000019 - 7b74: 2f3a4620 svccs 0x003a4620 - 7b78: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 7b7c: 646c6975 strbtvs r6, [ip], #-2421 - 7b80: 3033352f eorscc r3, r3, pc, lsr #10 - 7b84: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 7b88: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 7b8c: 612f6e6f teqvs pc, pc, ror #28 - 7b90: 315f6d72 cmpcc pc, r2, ror sp - 7b94: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 7b98: 2d62696c stclcs 9, cr6, [r2, #-432]! - 7b9c: 2f303335 svccs 0x00303335 - 7ba0: 2f6d7261 svccs 0x006d7261 - 7ba4: 2f62696c svccs 0x0062696c - 7ba8: 7074756f rsbsvc r7, r4, pc, ror #10 - 7bac: 612f7475 teqvs pc, r5, ror r4 - 7bb0: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 7bb4: 61726269 cmnvs r2, r9, ror #4 - 7bb8: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 7bbc: 6d72612f ldfvse f6, [r2, #-188]! - 7bc0: 5c62696c stclpl 9, cr6, [r2], #-432 - 7bc4: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 - 7bc8: 6d6f632f stclvs 3, cr6, [pc, #-188]! - 7bcc: 2f6e6f6d svccs 0x006e6f6d - 7bd0: 74696e69 strbtvc r6, [r9], #-3689 - 7bd4: 7477622f ldrbtvc r6, [r7], #-559 - 7bd8: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ - 7bdc: 632e3274 teqvs lr, #1073741831 ; 0x40000007 - 7be0: 2d207070 stccs 0, cr7, [r0, #-448]! - 7be4: 3a46206f bcc 118fda8 - 7be8: 6d72615c ldfvse f6, [r2, #-368]! - 7bec: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 7bf0: 33355c64 teqcc r5, #25600 ; 0x6400 - 7bf4: 61727430 cmnvs r2, r0, lsr r4 - 7bf8: 7469736e strbtvc r7, [r9], #-878 - 7bfc: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 7c00: 5f6d7261 svcpl 0x006d7261 - 7c04: 35393131 ldrcc r3, [r9, #-305]! - 7c08: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 7c0c: 3033352d eorscc r3, r3, sp, lsr #10 - 7c10: 6d72615c ldfvse f6, [r2, #-368]! - 7c14: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 - 7c18: 706d745c rsbvc r7, sp, ip, asr r4 - 7c1c: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ - 7c20: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 7c24: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 - 7c28: 74725c6a ldrbtvc r5, [r2], #-3178 - 7c2c: 615f7434 cmpvs pc, r4, lsr r4 - 7c30: 77625c6c strbvc r5, [r2, -ip, ror #24]! - 7c34: 6e695f74 mcrvs 15, 3, r5, cr9, cr4, {3} - 7c38: 2e327469 cdpcs 4, 3, cr7, cr2, cr9, {3} - 7c3c: 2d2d206f stccs 0, cr2, [sp, #-444]! - 7c40: 2b636565 blcs 18e11dc - 7c44: 2d2d202b stccs 0, cr2, [sp, #-172]! - 7c48: 65706564 ldrbvs r6, [r0, #-1380]! - 7c4c: 6e65646e cdpvs 4, 6, cr6, cr5, cr14, {3} - 7c50: 73656963 cmnvc r5, #1622016 ; 0x18c000 - 7c54: 4620693d undefined - 7c58: 72615c3a rsbvc r5, r1, #14848 ; 0x3a00 - 7c5c: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 7c60: 355c646c ldrbcc r6, [ip, #-1132] - 7c64: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 7c68: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 7c6c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7c70: 6d72615c ldfvse f6, [r2, #-368]! - 7c74: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 7c78: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 7c7c: 33352d62 teqcc r5, #6272 ; 0x1880 - 7c80: 72615c30 rsbvc r5, r1, #12288 ; 0x3000 - 7c84: 696c5c6d stmdbvs ip!, {r0, r2, r3, r5, r6, sl, fp, ip, lr}^ - 7c88: 6d745c62 ldclvs 12, cr5, [r4, #-392]! - 7c8c: 75625c70 strbvc r5, [r2, #-3184]! - 7c90: 6c646c69 stclvs 12, cr6, [r4], #-420 - 7c94: 6f5c6269 svcvs 0x005c6269 - 7c98: 725c6a62 subsvc r6, ip, #401408 ; 0x62000 - 7c9c: 5f743474 svcpl 0x00743474 - 7ca0: 625c6c61 subsvs r6, ip, #24832 ; 0x6100 - 7ca4: 695f7477 ldmdbvs pc, {r0, r1, r2, r4, r5, r6, sl, ip, sp, lr}^ - 7ca8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 - 7cac: 0000642e andeq r6, r0, lr, lsr #8 - 7cb0: 74696e69 strbtvc r6, [r9], #-3689 - 7cb4: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 - 7cb8: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 - 7cbc: 72286f2e eorvc r6, r8, #184 ; 0xb8 - 7cc0: 5f743474 svcpl 0x00743474 - 7cc4: 612e6c61 teqvs lr, r1, ror #24 - 7cc8: 00003a29 andeq r3, r0, r9, lsr #20 - 7ccc: 20524149 subscs r4, r2, r9, asr #2 - 7cd0: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 7cd4: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 7cd8: 43202b2b teqmi r0, #44032 ; 0xac00 - 7cdc: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 7ce0: 2072656c rsbscs r6, r2, ip, ror #10 - 7ce4: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 7ce8: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} - 7cec: 37313135 undefined - 7cf0: 33572f34 cmpcc r7, #208 ; 0xd0 - 7cf4: 6f662032 svcvs 0x00662032 - 7cf8: 52412072 subpl r2, r1, #114 ; 0x72 - 7cfc: 492d004d pushmi {r0, r2, r3, r6} - 7d00: 612f3a46 teqvs pc, r6, asr #20 - 7d04: 75626d72 strbvc r6, [r2, #-3442]! - 7d08: 2f646c69 svccs 0x00646c69 - 7d0c: 74303335 ldrtvc r3, [r0], #-821 - 7d10: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7d14: 6f697469 svcvs 0x00697469 - 7d18: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 7d1c: 31315f6d teqcc r1, sp, ror #30 - 7d20: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 7d24: 352d6269 strcc r6, [sp, #-617]! - 7d28: 612f3033 teqvs pc, r3, lsr r0 - 7d2c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 7d30: 6f2f6269 svcvs 0x002f6269 - 7d34: 75707475 ldrbvc r7, [r0, #-1141]! - 7d38: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 7d3c: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 7d40: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 7d44: 2f736569 svccs 0x00736569 - 7d48: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 7d4c: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} - 7d50: 492d2063 pushmi {r0, r1, r5, r6, sp} - 7d54: 612f3a46 teqvs pc, r6, asr #20 - 7d58: 75626d72 strbvc r6, [r2, #-3442]! - 7d5c: 2f646c69 svccs 0x00646c69 - 7d60: 74303335 ldrtvc r3, [r0], #-821 - 7d64: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7d68: 6f697469 svcvs 0x00697469 - 7d6c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 7d70: 31315f6d teqcc r1, sp, ror #30 - 7d74: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 7d78: 352d6269 strcc r6, [sp, #-617]! - 7d7c: 612f3033 teqvs pc, r3, lsr r0 - 7d80: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 7d84: 6f2f6269 svcvs 0x002f6269 - 7d88: 75707475 ldrbvc r7, [r0, #-1141]! - 7d8c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 7d90: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 7d94: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 7d98: 2f736569 svccs 0x00736569 - 7d9c: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 7da0: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 - 7da4: 492d2063 pushmi {r0, r1, r5, r6, sp} - 7da8: 612f3a46 teqvs pc, r6, asr #20 - 7dac: 75626d72 strbvc r6, [r2, #-3442]! - 7db0: 2f646c69 svccs 0x00646c69 - 7db4: 74303335 ldrtvc r3, [r0], #-821 - 7db8: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7dbc: 6f697469 svcvs 0x00697469 - 7dc0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 7dc4: 31315f6d teqcc r1, sp, ror #30 - 7dc8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 7dcc: 352d6269 strcc r6, [sp, #-617]! - 7dd0: 612f3033 teqvs pc, r3, lsr r0 - 7dd4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 7dd8: 6f2f6269 svcvs 0x002f6269 - 7ddc: 75707475 ldrbvc r7, [r0, #-1141]! - 7de0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 7de4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 7de8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 7dec: 2f736569 svccs 0x00736569 - 7df0: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 7df4: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} - 7df8: 756c636e strbvc r6, [ip, #-878]! - 7dfc: 2d206564 cfstr32cs mvfx6, [r0, #-400]! - 7e00: 2f3a4649 svccs 0x003a4649 - 7e04: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 7e08: 646c6975 strbtvs r6, [ip], #-2421 - 7e0c: 3033352f eorscc r3, r3, pc, lsr #10 - 7e10: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 7e14: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 7e18: 612f6e6f teqvs pc, pc, ror #28 - 7e1c: 315f6d72 cmpcc pc, r2, ror sp - 7e20: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 7e24: 2d62696c stclcs 9, cr6, [r2, #-432]! - 7e28: 2f303335 svccs 0x00303335 - 7e2c: 2f6d7261 svccs 0x006d7261 - 7e30: 2f62696c svccs 0x0062696c - 7e34: 7074756f rsbsvc r7, r4, pc, ror #10 - 7e38: 612f7475 teqvs pc, r5, ror r4 - 7e3c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 7e40: 61726269 cmnvs r2, r9, ror #4 - 7e44: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 7e48: 6d72612f ldfvse f6, [r2, #-188]! - 7e4c: 2f62696c svccs 0x0062696c - 7e50: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 - 7e54: 636e692f cmnvs lr, #770048 ; 0xbc000 - 7e58: 6564756c strbvs r7, [r4, #-1388]! - 7e5c: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 7e60: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 7e64: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 7e68: 352f646c strcc r6, [pc, #-1132]! ; 7a04 - 7e6c: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 7e70: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 7e74: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 7e78: 6d72612f ldfvse f6, [r2, #-188]! - 7e7c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 7e80: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 7e84: 33352d62 teqcc r5, #6272 ; 0x1880 - 7e88: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 7e8c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 7e90: 6d742f62 ldclvs 15, cr2, [r4, #-392]! - 7e94: 75622f70 strbvc r2, [r2, #-3952]! - 7e98: 6c646c69 stclvs 12, cr6, [r4], #-420 - 7e9c: 2d206269 sfmcs f6, 4, [r0, #-420]! - 7ea0: 7570632d ldrbvc r6, [r0, #-813]! - 7ea4: 4d524120 ldfmie f4, [r2, #-128] - 7ea8: 4d445439 cfstrdmi mvd5, [r4, #-228] - 7eac: 2d2d2049 stccs 0, cr2, [sp, #-292]! - 7eb0: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 7eb4: 6c206e61 stcvs 14, cr6, [r0], #-388 - 7eb8: 6c747469 cfldrdvs mvd7, [r4], #-420 - 7ebc: 442d2065 strtmi r2, [sp], #-101 - 7ec0: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 - 7ec4: 55425f46 strbpl r5, [r2, #-3910] - 7ec8: 5f444c49 svcpl 0x00444c49 - 7ecc: 442d205f strtmi r2, [sp], #-95 - 7ed0: 52415f5f subpl r5, r1, #380 ; 0x17c - 7ed4: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ - 7ed8: 52415242 subpl r5, r1, #536870916 ; 0x20000004 - 7edc: 205f5f59 subscs r5, pc, r9, asr pc - 7ee0: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 - 7ee4: 2d2d206d stccs 0, cr2, [sp, #-436]! - 7ee8: 65746e69 ldrbvs r6, [r4, #-3689]! - 7eec: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 - 7ef0: 4f2d206b svcmi 0x002d206b - 7ef4: 2d2d2068 stccs 0, cr2, [sp, #-416]! - 7ef8: 656c6973 strbvs r6, [ip, #-2419]! - 7efc: 2d20746e cfstrscs mvf7, [r0, #-440]! - 7f00: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 - 7f04: 676e696e strbvs r6, [lr, -lr, ror #18]! - 7f08: 72615f73 rsbvc r5, r1, #460 ; 0x1cc - 7f0c: 72655f65 rsbvc r5, r5, #404 ; 0x194 - 7f10: 73726f72 cmnvc r2, #456 ; 0x1c8 - 7f14: 732d2d20 teqvc sp, #2048 ; 0x800 - 7f18: 63697274 cmnvs r9, #1073741831 ; 0x40000007 - 7f1c: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} - 7f20: 2d206973 stccs 9, cr6, [r0, #-460]! - 7f24: 6c6e6f2d stclvs 15, cr6, [lr], #-180 - 7f28: 74735f79 ldrbtvc r5, [r3], #-3961 - 7f2c: 74756f64 ldrbtvc r6, [r5], #-3940 - 7f30: 642d2d20 strtvs r2, [sp], #-3360 - 7f34: 5f676169 svcpl 0x00676169 - 7f38: 70707573 rsbsvc r7, r0, r3, ror r5 - 7f3c: 73736572 cmnvc r3, #478150656 ; 0x1c800000 - 7f40: 306f473d rsbcc r4, pc, sp, lsr r7 - 7f44: 2d203530 cfstr32cs mvfx3, [r0, #-192]! - 7f48: 6169642d cmnvs r9, sp, lsr #8 - 7f4c: 75735f67 ldrbvc r5, [r3, #-3943]! - 7f50: 65727070 ldrbvs r7, [r2, #-112]! - 7f54: 503d7373 eorspl r7, sp, r3, ror r3 - 7f58: 30353465 eorscc r3, r5, r5, ror #8 - 7f5c: 642d2d20 strtvs r2, [sp], #-3360 - 7f60: 5f676169 svcpl 0x00676169 - 7f64: 6f727265 svcvs 0x00727265 - 7f68: 65503d72 ldrbvs r3, [r0, #-3442] - 7f6c: 20333931 eorscs r3, r3, r1, lsr r9 - 7f70: 612f3a46 teqvs pc, r6, asr #20 - 7f74: 75626d72 strbvc r6, [r2, #-3442]! - 7f78: 2f646c69 svccs 0x00646c69 - 7f7c: 74303335 ldrtvc r3, [r0], #-821 - 7f80: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7f84: 6f697469 svcvs 0x00697469 - 7f88: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 7f8c: 31315f6d teqcc r1, sp, ror #30 - 7f90: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 7f94: 352d6269 strcc r6, [sp, #-617]! - 7f98: 612f3033 teqvs pc, r3, lsr r0 - 7f9c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 7fa0: 6f2f6269 svcvs 0x002f6269 - 7fa4: 75707475 ldrbvc r7, [r0, #-1141]! - 7fa8: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 7fac: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 7fb0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 7fb4: 2f736569 svccs 0x00736569 - 7fb8: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 7fbc: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 - 7fc0: 2f326372 svccs 0x00326372 - 7fc4: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! - 7fc8: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} - 7fcc: 2f74696e svccs 0x0074696e - 7fd0: 74696e69 strbtvc r6, [r9], #-3689 - 7fd4: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 - 7fd8: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 - 7fdc: 7070632e rsbsvc r6, r0, lr, lsr #6 - 7fe0: 206f2d20 rsbcs r2, pc, r0, lsr #26 - 7fe4: 615c3a46 cmpvs ip, r6, asr #20 - 7fe8: 75626d72 strbvc r6, [r2, #-3442]! - 7fec: 5c646c69 stclpl 12, cr6, [r4], #-420 - 7ff0: 74303335 ldrtvc r3, [r0], #-821 - 7ff4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 7ff8: 6f697469 svcvs 0x00697469 - 7ffc: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 - 8000: 31315f6d teqcc r1, sp, ror #30 - 8004: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 8008: 352d6269 strcc r6, [sp, #-617]! - 800c: 615c3033 cmpvs ip, r3, lsr r0 - 8010: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 - 8014: 745c6269 ldrbvc r6, [ip], #-617 - 8018: 625c706d subsvs r7, ip, #109 ; 0x6d - 801c: 646c6975 strbtvs r6, [ip], #-2421 - 8020: 5c62696c stclpl 9, cr6, [r2], #-432 - 8024: 5c6a626f sfmpl f6, 2, [sl], #-444 - 8028: 74347472 ldrtvc r7, [r4], #-1138 - 802c: 5c6c615f stfple f6, [ip], #-380 - 8030: 74696e69 strbtvc r6, [r9], #-3689 - 8034: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 - 8038: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 - 803c: 2d206f2e stccs 15, cr6, [r0, #-184]! - 8040: 6365652d cmnvs r5, #188743680 ; 0xb400000 - 8044: 2d202b2b fstmdbxcs r0!, {d2-d22} - 8048: 7065642d rsbvc r6, r5, sp, lsr #8 - 804c: 65646e65 strbvs r6, [r4, #-3685]! - 8050: 6569636e strbvs r6, [r9, #-878]! - 8054: 20693d73 rsbcs r3, r9, r3, ror sp - 8058: 615c3a46 cmpvs ip, r6, asr #20 - 805c: 75626d72 strbvc r6, [r2, #-3442]! - 8060: 5c646c69 stclpl 12, cr6, [r4], #-420 - 8064: 74303335 ldrtvc r3, [r0], #-821 - 8068: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 806c: 6f697469 svcvs 0x00697469 - 8070: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 - 8074: 31315f6d teqcc r1, sp, ror #30 - 8078: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 807c: 352d6269 strcc r6, [sp, #-617]! - 8080: 615c3033 cmpvs ip, r3, lsr r0 - 8084: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 - 8088: 745c6269 ldrbvc r6, [ip], #-617 - 808c: 625c706d subsvs r7, ip, #109 ; 0x6d - 8090: 646c6975 strbtvs r6, [ip], #-2421 - 8094: 5c62696c stclpl 9, cr6, [r2], #-432 - 8098: 5c6a626f sfmpl f6, 2, [sl], #-444 - 809c: 74347472 ldrtvc r7, [r4], #-1138 - 80a0: 5c6c615f stfple f6, [ip], #-380 - 80a4: 74696e69 strbtvc r6, [r9], #-3689 - 80a8: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 - 80ac: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 - 80b0: 0000642e andeq r6, r0, lr, lsr #8 - 80b4: 726f6261 rsbvc r6, pc, #268435462 ; 0x10000006 - 80b8: 286f2e74 stmdacs pc!, {r2, r4, r5, r6, r9, sl, fp, sp}^ - 80bc: 74346c64 ldrtvc r6, [r4], #-3172 - 80c0: 5f6c745f svcpl 0x006c745f - 80c4: 612e6e69 teqvs lr, r9, ror #28 - 80c8: 00003a29 andeq r3, r0, r9, lsr #20 - 80cc: 20524149 subscs r4, r2, r9, asr #2 - 80d0: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ - 80d4: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 - 80d8: 43202b2b teqmi r0, #44032 ; 0xac00 - 80dc: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ - 80e0: 2072656c rsbscs r6, r2, ip, ror #10 - 80e4: 332e3556 teqcc lr, #360710144 ; 0x15800000 - 80e8: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} - 80ec: 37313135 undefined - 80f0: 33572f34 cmpcc r7, #208 ; 0xd0 - 80f4: 6f662032 svcvs 0x00662032 - 80f8: 52412072 subpl r2, r1, #114 ; 0x72 - 80fc: 492d004d pushmi {r0, r2, r3, r6} - 8100: 612f3a46 teqvs pc, r6, asr #20 - 8104: 75626d72 strbvc r6, [r2, #-3442]! - 8108: 2f646c69 svccs 0x00646c69 - 810c: 74303335 ldrtvc r3, [r0], #-821 - 8110: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 8114: 6f697469 svcvs 0x00697469 - 8118: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 811c: 31315f6d teqcc r1, sp, ror #30 - 8120: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 8124: 352d6269 strcc r6, [sp, #-617]! - 8128: 612f3033 teqvs pc, r3, lsr r0 - 812c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 8130: 6f2f6269 svcvs 0x002f6269 - 8134: 75707475 ldrbvc r7, [r0, #-1141]! - 8138: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 813c: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 8140: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 8144: 2f736569 svccs 0x00736569 - 8148: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 814c: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} - 8150: 492d2063 pushmi {r0, r1, r5, r6, sp} - 8154: 612f3a46 teqvs pc, r6, asr #20 - 8158: 75626d72 strbvc r6, [r2, #-3442]! - 815c: 2f646c69 svccs 0x00646c69 - 8160: 74303335 ldrtvc r3, [r0], #-821 - 8164: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 8168: 6f697469 svcvs 0x00697469 - 816c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 8170: 31315f6d teqcc r1, sp, ror #30 - 8174: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 8178: 352d6269 strcc r6, [sp, #-617]! - 817c: 612f3033 teqvs pc, r3, lsr r0 - 8180: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 8184: 6f2f6269 svcvs 0x002f6269 - 8188: 75707475 ldrbvc r7, [r0, #-1141]! - 818c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 8190: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 8194: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 8198: 2f736569 svccs 0x00736569 - 819c: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 81a0: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 - 81a4: 492d2063 pushmi {r0, r1, r5, r6, sp} - 81a8: 612f3a46 teqvs pc, r6, asr #20 - 81ac: 75626d72 strbvc r6, [r2, #-3442]! - 81b0: 2f646c69 svccs 0x00646c69 - 81b4: 74303335 ldrtvc r3, [r0], #-821 - 81b8: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 81bc: 6f697469 svcvs 0x00697469 - 81c0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 81c4: 31315f6d teqcc r1, sp, ror #30 - 81c8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 81cc: 352d6269 strcc r6, [sp, #-617]! - 81d0: 612f3033 teqvs pc, r3, lsr r0 - 81d4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 81d8: 6f2f6269 svcvs 0x002f6269 - 81dc: 75707475 ldrbvc r7, [r0, #-1141]! - 81e0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 81e4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 81e8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 81ec: 2f736569 svccs 0x00736569 - 81f0: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 81f4: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} - 81f8: 756c636e strbvc r6, [ip, #-878]! - 81fc: 2d206564 cfstr32cs mvfx6, [r0, #-400]! - 8200: 2f3a4649 svccs 0x003a4649 - 8204: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 8208: 646c6975 strbtvs r6, [ip], #-2421 - 820c: 3033352f eorscc r3, r3, pc, lsr #10 - 8210: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 8214: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 8218: 612f6e6f teqvs pc, pc, ror #28 - 821c: 315f6d72 cmpcc pc, r2, ror sp - 8220: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 8224: 2d62696c stclcs 9, cr6, [r2, #-432]! - 8228: 2f303335 svccs 0x00303335 - 822c: 2f6d7261 svccs 0x006d7261 - 8230: 2f62696c svccs 0x0062696c - 8234: 7074756f rsbsvc r7, r4, pc, ror #10 - 8238: 612f7475 teqvs pc, r5, ror r4 - 823c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 8240: 61726269 cmnvs r2, r9, ror #4 - 8244: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 8248: 6d72612f ldfvse f6, [r2, #-188]! - 824c: 2f62696c svccs 0x0062696c - 8250: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 - 8254: 636e692f cmnvs lr, #770048 ; 0xbc000 - 8258: 6564756c strbvs r7, [r4, #-1388]! - 825c: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 8260: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 8264: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 8268: 352f646c strcc r6, [pc, #-1132]! ; 7e04 - 826c: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 8270: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 8274: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 8278: 6d72612f ldfvse f6, [r2, #-188]! - 827c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 8280: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 8284: 33352d62 teqcc r5, #6272 ; 0x1880 - 8288: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 828c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 8290: 6d742f62 ldclvs 15, cr2, [r4, #-392]! - 8294: 75622f70 strbvc r2, [r2, #-3952]! - 8298: 6c646c69 stclvs 12, cr6, [r4], #-420 - 829c: 2d206269 sfmcs f6, 4, [r0, #-420]! - 82a0: 7570632d ldrbvc r6, [r0, #-813]! - 82a4: 4d524120 ldfmie f4, [r2, #-128] - 82a8: 4d445439 cfstrdmi mvd5, [r4, #-228] - 82ac: 2d2d2049 stccs 0, cr2, [sp, #-292]! - 82b0: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ - 82b4: 6c206e61 stcvs 14, cr6, [r0], #-388 - 82b8: 6c747469 cfldrdvs mvd7, [r4], #-420 - 82bc: 442d2065 strtmi r2, [sp], #-101 - 82c0: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 - 82c4: 55425f46 strbpl r5, [r2, #-3910] - 82c8: 5f444c49 svcpl 0x00444c49 - 82cc: 442d205f strtmi r2, [sp], #-95 - 82d0: 48545f5f ldmdami r4, {r0, r1, r2, r3, r4, r6, r8, r9, sl, fp, ip, lr}^ - 82d4: 5f424d55 svcpl 0x00424d55 - 82d8: 5242494c subpl r4, r2, #1245184 ; 0x130000 - 82dc: 5f595241 svcpl 0x00595241 - 82e0: 2d2d205f stccs 0, cr2, [sp, #-380]! - 82e4: 6d756874 ldclvs 8, cr6, [r5, #-464]! - 82e8: 2d2d2062 stccs 0, cr2, [sp, #-392]! - 82ec: 65746e69 ldrbvs r6, [r4, #-3689]! - 82f0: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 - 82f4: 4f2d206b svcmi 0x002d206b - 82f8: 2d2d2068 stccs 0, cr2, [sp, #-416]! - 82fc: 656c6973 strbvs r6, [ip, #-2419]! - 8300: 2d20746e cfstrscs mvf7, [r0, #-440]! - 8304: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 - 8308: 676e696e strbvs r6, [lr, -lr, ror #18]! - 830c: 72615f73 rsbvc r5, r1, #460 ; 0x1cc - 8310: 72655f65 rsbvc r5, r5, #404 ; 0x194 - 8314: 73726f72 cmnvc r2, #456 ; 0x1c8 - 8318: 732d2d20 teqvc sp, #2048 ; 0x800 - 831c: 63697274 cmnvs r9, #1073741831 ; 0x40000007 - 8320: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} - 8324: 2d206973 stccs 9, cr6, [r0, #-460]! - 8328: 6c6e6f2d stclvs 15, cr6, [lr], #-180 - 832c: 74735f79 ldrbtvc r5, [r3], #-3961 - 8330: 74756f64 ldrbtvc r6, [r5], #-3940 - 8334: 642d2d20 strtvs r2, [sp], #-3360 - 8338: 5f676169 svcpl 0x00676169 - 833c: 70707573 rsbsvc r7, r0, r3, ror r5 - 8340: 73736572 cmnvc r3, #478150656 ; 0x1c800000 - 8344: 306f473d rsbcc r4, pc, sp, lsr r7 - 8348: 2d203530 cfstr32cs mvfx3, [r0, #-192]! - 834c: 6169642d cmnvs r9, sp, lsr #8 - 8350: 75735f67 ldrbvc r5, [r3, #-3943]! - 8354: 65727070 ldrbvs r7, [r2, #-112]! - 8358: 503d7373 eorspl r7, sp, r3, ror r3 - 835c: 30353465 eorscc r3, r5, r5, ror #8 - 8360: 642d2d20 strtvs r2, [sp], #-3360 - 8364: 5f676169 svcpl 0x00676169 - 8368: 6f727265 svcvs 0x00727265 - 836c: 65503d72 ldrbvs r3, [r0, #-3442] - 8370: 20333931 eorscs r3, r3, r1, lsr r9 - 8374: 6c642d2d stclvs 13, cr2, [r4], #-180 - 8378: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 - 837c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ - 8380: 3a463d67 bcc 1197924 - 8384: 6d72612f ldfvse f6, [r2, #-188]! - 8388: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 838c: 33352f64 teqcc r5, #400 ; 0x190 - 8390: 61727430 cmnvs r2, r0, lsr r4 - 8394: 7469736e strbtvc r7, [r9], #-878 - 8398: 2f6e6f69 svccs 0x006e6f69 - 839c: 5f6d7261 svcpl 0x006d7261 - 83a0: 35393131 ldrcc r3, [r9, #-305]! - 83a4: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 83a8: 3033352d eorscc r3, r3, sp, lsr #10 - 83ac: 6d72612f ldfvse f6, [r2, #-188]! - 83b0: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 83b4: 74756f2f ldrbtvc r6, [r5], #-3887 - 83b8: 2f747570 svccs 0x00747570 - 83bc: 2f62696c svccs 0x0062696c - 83c0: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 - 83c4: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} - 83c8: 5f676966 svcpl 0x00676966 - 83cc: 6d726f4e ldclvs 15, cr6, [r2, #-312]! - 83d0: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} - 83d4: 2f3a4620 svccs 0x003a4620 - 83d8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 83dc: 646c6975 strbtvs r6, [ip], #-2421 - 83e0: 3033352f eorscc r3, r3, pc, lsr #10 - 83e4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 83e8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 83ec: 612f6e6f teqvs pc, pc, ror #28 - 83f0: 315f6d72 cmpcc pc, r2, ror sp - 83f4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 83f8: 2d62696c stclcs 9, cr6, [r2, #-432]! - 83fc: 2f303335 svccs 0x00303335 - 8400: 2f6d7261 svccs 0x006d7261 - 8404: 2f62696c svccs 0x0062696c - 8408: 7074756f rsbsvc r7, r4, pc, ror #10 - 840c: 612f7475 teqvs pc, r5, ror r4 - 8410: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 - 8414: 61726269 cmnvs r2, r9, ror #4 - 8418: 73656972 cmnvc r5, #1867776 ; 0x1c8000 - 841c: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ - 8420: 735c3462 cmpvc ip, #1644167168 ; 0x62000000 - 8424: 612f6372 teqvs pc, r2, ror r3 - 8428: 74726f62 ldrbtvc r6, [r2], #-3938 - 842c: 2d20632e stccs 3, cr6, [r0, #-184]! - 8430: 3a46206f bcc 11905f4 - 8434: 6d72615c ldfvse f6, [r2, #-368]! - 8438: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 843c: 33355c64 teqcc r5, #25600 ; 0x6400 - 8440: 61727430 cmnvs r2, r0, lsr r4 - 8444: 7469736e strbtvc r7, [r9], #-878 - 8448: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 844c: 5f6d7261 svcpl 0x006d7261 - 8450: 35393131 ldrcc r3, [r9, #-305]! - 8454: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 8458: 3033352d eorscc r3, r3, sp, lsr #10 - 845c: 6d72615c ldfvse f6, [r2, #-368]! - 8460: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 - 8464: 706d745c rsbvc r7, sp, ip, asr r4 - 8468: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ - 846c: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 8470: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 - 8474: 6c645c6a stclvs 12, cr5, [r4], #-424 - 8478: 745f7434 ldrbvc r7, [pc], #1076 ; 8480 - 847c: 6e695f6c cdpvs 15, 6, cr5, cr9, cr12, {3} - 8480: 6f62615c svcvs 0x0062615c - 8484: 6f2e7472 svcvs 0x002e7472 - 8488: 642d2d20 strtvs r2, [sp], #-3360 - 848c: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} - 8490: 636e6564 cmnvs lr, #419430400 ; 0x19000000 - 8494: 3d736569 cfldr64cc mvdx6, [r3, #-420]! - 8498: 3a462069 bcc 1190644 - 849c: 6d72615c ldfvse f6, [r2, #-368]! - 84a0: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 84a4: 33355c64 teqcc r5, #25600 ; 0x6400 - 84a8: 61727430 cmnvs r2, r0, lsr r4 - 84ac: 7469736e strbtvc r7, [r9], #-878 - 84b0: 5c6e6f69 stclpl 15, cr6, [lr], #-420 - 84b4: 5f6d7261 svcpl 0x006d7261 - 84b8: 35393131 ldrcc r3, [r9, #-305]! - 84bc: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 84c0: 3033352d eorscc r3, r3, sp, lsr #10 - 84c4: 6d72615c ldfvse f6, [r2, #-368]! - 84c8: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 - 84cc: 706d745c rsbvc r7, sp, ip, asr r4 - 84d0: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ - 84d4: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ - 84d8: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 - 84dc: 6c645c6a stclvs 12, cr5, [r4], #-424 - 84e0: 745f7434 ldrbvc r7, [pc], #1076 ; 84e8 - 84e4: 6e695f6c cdpvs 15, 6, cr5, cr9, cr12, {3} - 84e8: 6f62615c svcvs 0x0062615c - 84ec: 642e7472 strtvs r7, [lr], #-1138 - 84f0: 58580000 ldmdapl r8, {}^ - 84f4: 74697865 strbtvc r7, [r9], #-2149 - 84f8: 72286f2e eorvc r6, r8, #184 ; 0xb8 - 84fc: 5f743474 svcpl 0x00743474 - 8500: 612e6c61 teqvs lr, r1, ror #24 - 8504: 00003a29 andeq r3, r0, r9, lsr #20 - 8508: 20524149 subscs r4, r2, r9, asr #2 - 850c: 65737341 ldrbvs r7, [r3, #-833]! - 8510: 656c626d strbvs r6, [ip, #-621]! - 8514: 35562072 ldrbcc r2, [r6, #-114] - 8518: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} - 851c: 31352e30 teqcc r5, r0, lsr lr - 8520: 2f343731 svccs 0x00343731 - 8524: 20323357 eorscs r3, r2, r7, asr r3 - 8528: 20726f66 rsbscs r6, r2, r6, ror #30 - 852c: 004d5241 subeq r5, sp, r1, asr #4 - 8530: 3a46492d bcc 119a9ec - 8534: 6d72612f ldfvse f6, [r2, #-188]! - 8538: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 853c: 33352f64 teqcc r5, #400 ; 0x190 - 8540: 61727430 cmnvs r2, r0, lsr r4 - 8544: 7469736e strbtvc r7, [r9], #-878 - 8548: 2f6e6f69 svccs 0x006e6f69 - 854c: 5f6d7261 svcpl 0x006d7261 - 8550: 35393131 ldrcc r3, [r9, #-305]! - 8554: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 8558: 3033352d eorscc r3, r3, sp, lsr #10 - 855c: 6d72612f ldfvse f6, [r2, #-188]! - 8560: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 8564: 74756f2f ldrbtvc r6, [r5], #-3887 - 8568: 2f747570 svccs 0x00747570 - 856c: 5f6d7261 svcpl 0x006d7261 - 8570: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 8574: 65697261 strbvs r7, [r9, #-609]! - 8578: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 - 857c: 2f346269 svccs 0x00346269 - 8580: 20636e69 rsbcs r6, r3, r9, ror #28 - 8584: 3a46492d bcc 119aa40 - 8588: 6d72612f ldfvse f6, [r2, #-188]! - 858c: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 8590: 33352f64 teqcc r5, #400 ; 0x190 - 8594: 61727430 cmnvs r2, r0, lsr r4 - 8598: 7469736e strbtvc r7, [r9], #-878 - 859c: 2f6e6f69 svccs 0x006e6f69 - 85a0: 5f6d7261 svcpl 0x006d7261 - 85a4: 35393131 ldrcc r3, [r9, #-305]! - 85a8: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 85ac: 3033352d eorscc r3, r3, sp, lsr #10 - 85b0: 6d72612f ldfvse f6, [r2, #-188]! - 85b4: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 85b8: 74756f2f ldrbtvc r6, [r5], #-3887 - 85bc: 2f747570 svccs 0x00747570 - 85c0: 5f6d7261 svcpl 0x006d7261 - 85c4: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 85c8: 65697261 strbvs r7, [r9, #-609]! - 85cc: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 - 85d0: 2f346269 svccs 0x00346269 - 85d4: 20637273 rsbcs r7, r3, r3, ror r2 - 85d8: 3a46492d bcc 119aa94 - 85dc: 6d72612f ldfvse f6, [r2, #-188]! - 85e0: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 85e4: 33352f64 teqcc r5, #400 ; 0x190 - 85e8: 61727430 cmnvs r2, r0, lsr r4 - 85ec: 7469736e strbtvc r7, [r9], #-878 - 85f0: 2f6e6f69 svccs 0x006e6f69 - 85f4: 5f6d7261 svcpl 0x006d7261 - 85f8: 35393131 ldrcc r3, [r9, #-305]! - 85fc: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 - 8600: 3033352d eorscc r3, r3, sp, lsr #10 - 8604: 6d72612f ldfvse f6, [r2, #-188]! - 8608: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 - 860c: 74756f2f ldrbtvc r6, [r5], #-3887 - 8610: 2f747570 svccs 0x00747570 - 8614: 5f6d7261 svcpl 0x006d7261 - 8618: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 - 861c: 65697261 strbvs r7, [r9, #-609]! - 8620: 72612f73 rsbvc r2, r1, #460 ; 0x1cc - 8624: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 - 8628: 636e692f cmnvs lr, #770048 ; 0xbc000 - 862c: 6564756c strbvs r7, [r4, #-1388]! - 8630: 46492d20 strbmi r2, [r9], -r0, lsr #26 - 8634: 72612f3a rsbvc r2, r1, #232 ; 0xe8 - 8638: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 863c: 352f646c strcc r6, [pc, #-1132]! ; 81d8 - 8640: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 8644: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 8648: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 864c: 6d72612f ldfvse f6, [r2, #-188]! - 8650: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 8654: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 8658: 33352d62 teqcc r5, #6272 ; 0x1880 - 865c: 72612f30 rsbvc r2, r1, #192 ; 0xc0 - 8660: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ - 8664: 756f2f62 strbvc r2, [pc, #-3938]! ; 770a - 8668: 74757074 ldrbtvc r7, [r5], #-116 - 866c: 6d72612f ldfvse f6, [r2, #-188]! - 8670: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 - 8674: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ - 8678: 612f7365 teqvs pc, r5, ror #6 - 867c: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ - 8680: 72732f62 rsbsvc r2, r3, #392 ; 0x188 - 8684: 692f3263 stmdbvs pc!, {r0, r1, r5, r6, r9, ip, sp} - 8688: 756c636e strbvc r6, [ip, #-878]! - 868c: 2d206564 cfstr32cs mvfx6, [r0, #-400]! - 8690: 2f3a4649 svccs 0x003a4649 - 8694: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 - 8698: 646c6975 strbtvs r6, [ip], #-2421 - 869c: 3033352f eorscc r3, r3, pc, lsr #10 - 86a0: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} - 86a4: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ - 86a8: 612f6e6f teqvs pc, pc, ror #28 - 86ac: 315f6d72 cmpcc pc, r2, ror sp - 86b0: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} - 86b4: 2d62696c stclcs 9, cr6, [r2, #-432]! - 86b8: 2f303335 svccs 0x00303335 - 86bc: 2f6d7261 svccs 0x006d7261 - 86c0: 2f62696c svccs 0x0062696c - 86c4: 2f706d74 svccs 0x00706d74 - 86c8: 6c697562 cfstr64vs mvdx7, [r9], #-392 - 86cc: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 - 86d0: 632d2d20 teqvs sp, #2048 ; 0x800 - 86d4: 41207570 teqmi r0, r0, ror r5 - 86d8: 54394d52 ldrtpl r4, [r9], #-3410 - 86dc: 20494d44 subcs r4, r9, r4, asr #26 - 86e0: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} - 86e4: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} - 86e8: 74696c20 strbtvc r6, [r9], #-3104 - 86ec: 20656c74 rsbcs r6, r5, r4, ror ip - 86f0: 5f5f442d svcpl 0x005f442d - 86f4: 5f464c45 svcpl 0x00464c45 - 86f8: 4c495542 cfstr64mi mvdx5, [r9], {66} - 86fc: 205f5f44 subscs r5, pc, r4, asr #30 - 8700: 5f5f442d svcpl 0x005f442d - 8704: 5f4d5241 svcpl 0x004d5241 - 8708: 5242494c subpl r4, r2, #1245184 ; 0x130000 - 870c: 5f595241 svcpl 0x00595241 - 8710: 442d205f strtmi r2, [sp], #-95 - 8714: 5043455f subpl r4, r3, pc, asr r5 - 8718: 5053554c subspl r5, r3, ip, asr #10 - 871c: 2053554c subscs r5, r3, ip, asr #10 - 8720: 2d20532d stccs 3, cr5, [r0, #-180]! - 8724: 2d207377 stccs 3, cr7, [r0, #-476]! - 8728: 4f5f5f44 svcmi 0x005f5f44 - 872c: 4d5f5450 cfldrdmi mvd5, [pc, #-320] - 8730: 55494445 strbpl r4, [r9, #-1093] - 8734: 205f5f4d subscs r5, pc, sp, asr #30 - 8738: 612f3a46 teqvs pc, r6, asr #20 - 873c: 75626d72 strbvc r6, [r2, #-3442]! - 8740: 2f646c69 svccs 0x00646c69 - 8744: 74303335 ldrtvc r3, [r0], #-821 - 8748: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c - 874c: 6f697469 svcvs 0x00697469 - 8750: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 - 8754: 31315f6d teqcc r1, sp, ror #30 - 8758: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 - 875c: 352d6269 strcc r6, [sp, #-617]! - 8760: 612f3033 teqvs pc, r3, lsr r0 - 8764: 6c2f6d72 stcvs 13, cr6, [pc], #-456 - 8768: 6f2f6269 svcvs 0x002f6269 - 876c: 75707475 ldrbvc r7, [r0, #-1141]! - 8770: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 - 8774: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ - 8778: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 - 877c: 2f736569 svccs 0x00736569 - 8780: 6c6d7261 sfmvs f7, 2, [sp], #-388 - 8784: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 - 8788: 2f326372 svccs 0x00326372 - 878c: 74737973 ldrbtvc r7, [r3], #-2419 - 8790: 612f6d65 teqvs pc, r5, ror #26 - 8794: 582f6d72 stmdapl pc!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} - 8798: 69786558 ldmdbvs r8!, {r3, r4, r6, r8, sl, sp, lr}^ - 879c: 20732e74 rsbscs r2, r3, r4, ror lr - 87a0: 46206f2d strtmi r6, [r0], -sp, lsr #30 - 87a4: 72615c3a rsbvc r5, r1, #14848 ; 0x3a00 - 87a8: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ - 87ac: 355c646c ldrbcc r6, [ip, #-1132] - 87b0: 72743033 rsbsvc r3, r4, #51 ; 0x33 - 87b4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ - 87b8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} - 87bc: 6d72615c ldfvse f6, [r2, #-368]! - 87c0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} - 87c4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ - 87c8: 33352d62 teqcc r5, #6272 ; 0x1880 - 87cc: 72615c30 rsbvc r5, r1, #12288 ; 0x3000 - 87d0: 696c5c6d stmdbvs ip!, {r0, r2, r3, r5, r6, sl, fp, ip, lr}^ - 87d4: 6d745c62 ldclvs 12, cr5, [r4, #-392]! - 87d8: 75625c70 strbvc r5, [r2, #-3184]! - 87dc: 6c646c69 stclvs 12, cr6, [r4], #-420 - 87e0: 6f5c6269 svcvs 0x005c6269 - 87e4: 725c6a62 subsvc r6, ip, #401408 ; 0x62000 - 87e8: 5f743474 svcpl 0x00743474 - 87ec: 585c6c61 ldmdapl ip, {r0, r5, r6, sl, fp, sp, lr}^ - 87f0: 69786558 ldmdbvs r8!, {r3, r4, r6, r8, sl, sp, lr}^ - 87f4: 006f2e74 rsbeq r2, pc, r4, ror lr diff --git a/include/maca.h b/include/maca.h index 01945e674..597f28039 100644 --- a/include/maca.h +++ b/include/maca.h @@ -406,127 +406,7 @@ void reset_maca(void); void init_phy(void); void ResumeMACASync(void); void radio_init(void); - - -/* Magic data - -better format - -00402e10 : - 402e10: 80004118 .word 0x80004118 - 402e14: 00180012 .word 0x00180012 - 402e18: 80009204 .word 0x80009204 - 402e1c: 00000605 .word 0x00000605 - 402e20: 80009208 .word 0x80009208 - 402e24: 00000504 .word 0x00000504 - 402e28: 8000920c .word 0x8000920c - 402e2c: 00001111 .word 0x00001111 - 402e30: 80009210 .word 0x80009210 - 402e34: 0fc40000 .word 0x0fc40000 - 402e38: 80009300 .word 0x80009300 - 402e3c: 20046000 .word 0x20046000 - 402e40: 80009304 .word 0x80009304 - 402e44: 4005580c .word 0x4005580c - 402e48: 80009308 .word 0x80009308 - 402e4c: 40075801 .word 0x40075801 - 402e50: 8000930c .word 0x8000930c - 402e54: 4005d801 .word 0x4005d801 - 402e58: 80009310 .word 0x80009310 - 402e5c: 5a45d800 .word 0x5a45d800 - 402e60: 80009314 .word 0x80009314 - 402e64: 4a45d800 .word 0x4a45d800 - 402e68: 80009318 .word 0x80009318 - 402e6c: 40044000 .word 0x40044000 - 402e70: 80009380 .word 0x80009380 - 402e74: 00106000 .word 0x00106000 - 402e78: 80009384 .word 0x80009384 - 402e7c: 00083806 .word 0x00083806 - 402e80: 80009388 .word 0x80009388 - 402e84: 00093807 .word 0x00093807 - 402e88: 8000938c .word 0x8000938c - 402e8c: 0009b804 .word 0x0009b804 - 402e90: 80009390 .word 0x80009390 - 402e94: 000db800 .word 0x000db800 - 402e98: 80009394 .word 0x80009394 - 402e9c: 00093802 .word 0x00093802 - 402ea0: 8000a008 .word 0x8000a008 - 402ea4: 00000015 .word 0x00000015 - 402ea8: 8000a018 .word 0x8000a018 - 402eac: 00000002 .word 0x00000002 - 402eb0: 8000a01c .word 0x8000a01c - 402eb4: 0000000f .word 0x0000000f - 402eb8: 80009424 .word 0x80009424 - 402ebc: 0000aaa0 .word 0x0000aaa0 - 402ec0: 80009434 .word 0x80009434 - 402ec4: 01002020 .word 0x01002020 - 402ec8: 80009438 .word 0x80009438 - 402ecc: 016800fe .word 0x016800fe - 402ed0: 8000943c .word 0x8000943c - 402ed4: 8e578248 .word 0x8e578248 - 402ed8: 80009440 .word 0x80009440 - 402edc: 000000dd .word 0x000000dd - 402ee0: 80009444 .word 0x80009444 - 402ee4: 00000946 .word 0x00000946 - 402ee8: 80009448 .word 0x80009448 - 402eec: 0000035a .word 0x0000035a - 402ef0: 8000944c .word 0x8000944c - 402ef4: 00100010 .word 0x00100010 - 402ef8: 80009450 .word 0x80009450 - 402efc: 00000515 .word 0x00000515 - 402f00: 80009460 .word 0x80009460 - 402f04: 00397feb .word 0x00397feb - 402f08: 80009464 .word 0x80009464 - 402f0c: 00180358 .word 0x00180358 - 402f10: 8000947c .word 0x8000947c - 402f14: 00000455 .word 0x00000455 - 402f18: 800094e0 .word 0x800094e0 - 402f1c: 00000001 .word 0x00000001 - 402f20: 800094e4 .word 0x800094e4 - 402f24: 00020003 .word 0x00020003 - 402f28: 800094e8 .word 0x800094e8 - 402f2c: 00040014 .word 0x00040014 - 402f30: 800094ec .word 0x800094ec - 402f34: 00240034 .word 0x00240034 - 402f38: 800094f0 .word 0x800094f0 - 402f3c: 00440144 .word 0x00440144 - 402f40: 800094f4 .word 0x800094f4 - 402f44: 02440344 .word 0x02440344 - 402f48: 800094f8 .word 0x800094f8 - 402f4c: 04440544 .word 0x04440544 - 402f50: 80009470 .word 0x80009470 - 402f54: 0ee7fc00 .word 0x0ee7fc00 - 402f58: 8000981c .word 0x8000981c - 402f5c: 00000082 .word 0x00000082 - 402f60: 80009828 .word 0x80009828 - 402f64: 0000002a .word 0x0000002a - -appears to be addr addr data data addr addr data data - -e.g. 0x80004118 gets 00180012 (MACA_WARMUP) - -00402e10 : - 402e10: 4118 8000 0012 0018 9204 8000 0605 0000 .A.............. - 402e20: 9208 8000 0504 0000 920c 8000 1111 0000 ................ - 402e30: 9210 8000 0000 0fc4 9300 8000 6000 2004 .............`. - 402e40: 9304 8000 580c 4005 9308 8000 5801 4007 .....X.@.....X.@ - 402e50: 930c 8000 d801 4005 9310 8000 d800 5a45 .......@......EZ - 402e60: 9314 8000 d800 4a45 9318 8000 4000 4004 ......EJ.....@.@ - 402e70: 9380 8000 6000 0010 9384 8000 3806 0008 .....`.......8.. - 402e80: 9388 8000 3807 0009 938c 8000 b804 0009 .....8.......... - 402e90: 9390 8000 b800 000d 9394 8000 3802 0009 .............8.. - 402ea0: a008 8000 0015 0000 a018 8000 0002 0000 ................ - 402eb0: a01c 8000 000f 0000 9424 8000 aaa0 0000 ........$....... - 402ec0: 9434 8000 2020 0100 9438 8000 00fe 0168 4... ..8.....h. - 402ed0: 943c 8000 8248 8e57 9440 8000 00dd 0000 <...H.W.@....... - 402ee0: 9444 8000 0946 0000 9448 8000 035a 0000 D...F...H...Z... - 402ef0: 944c 8000 0010 0010 9450 8000 0515 0000 L.......P....... - 402f00: 9460 8000 7feb 0039 9464 8000 0358 0018 `.....9.d...X... - 402f10: 947c 8000 0455 0000 94e0 8000 0001 0000 |...U........... - 402f20: 94e4 8000 0003 0002 94e8 8000 0014 0004 ................ - 402f30: 94ec 8000 0034 0024 94f0 8000 0144 0044 ....4.$.....D.D. - 402f40: 94f4 8000 0344 0244 94f8 8000 0544 0444 ....D.D.....D.D. - 402f50: 9470 8000 fc00 0ee7 981c 8000 0082 0000 p............... - 402f60: 9828 8000 002a 0000 (...*... -*/ +void set_power(uint8_t power); +void set_channel(uint8_t chan); #endif // _MACA_H_ diff --git a/src/maca.c b/src/maca.c index 7ab3d681b..723017c15 100644 --- a/src/maca.c +++ b/src/maca.c @@ -1,5 +1,7 @@ #include "maca.h" +#define reg(x) (*(volatile uint32_t *)(x)) + void init_phy(void) { volatile uint32_t cnt; diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index d14fc69dd..18d428f6c 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -103,9 +103,8 @@ void main(void) { vreg_init(); init_phy(); - /* some kind of sequence in init phy from MACPHY.a dissassmbly */ - /* looks like it's flyback init */ -// magic(); + set_power(0x0f); /* 0dbm */ + set_channel(0); /* channel 11 */ reg(MACA_CONTROL) = SMAC_MACA_CNTL_INIT_STATE; for(i=0; i> 8) << 2; - /* write "last warmdown data" to current TSM step to shutdown rx */ - LastWarmdownData = (*((volatile uint32_t *)(0x80009300 + LastWarmdownStep))); +/* puts("LastWarmupData: "); */ +/* put_hex32(LastWarmupData); */ +/* puts(NL); */ - puts("LastWarmdownData: "); - put_hex32(LastWarmdownData); - puts(NL); +/* /\* isolate the RX_WD_STEPS *\/ */ +/* /\* right-shift bits down to bit 0 position *\/ */ +/* /\* left-shift to align with 32-bit addressing *\/ */ +/* LastWarmdownStep = ((TsmRxSteps & 0x1f00) >> 8) << 2; */ +/* /\* write "last warmdown data" to current TSM step to shutdown rx *\/ */ +/* LastWarmdownData = (*((volatile uint32_t *)(0x80009300 + LastWarmdownStep))); */ + +/* puts("LastWarmdownData: "); */ +/* put_hex32(LastWarmdownData); */ +/* puts(NL); */ - status = reg(MACA_STATUS) & 0x0000ffff; - switch(status) - { - case(cc_aborted): - { - puts("aborted\n\r"); - ResumeMACASync(); +/* status = reg(MACA_STATUS) & 0x0000ffff; */ +/* switch(status) */ +/* { */ +/* case(cc_aborted): */ +/* { */ +/* puts("aborted\n\r"); */ +/* ResumeMACASync(); */ - command_xcvr_rx(); +/* command_xcvr_rx(); */ - break; +/* break; */ - } - case(cc_not_completed): - { - puts("not completed\n\r"); - ResumeMACASync(); - break; +/* } */ +/* case(cc_not_completed): */ +/* { */ +/* puts("not completed\n\r"); */ +/* ResumeMACASync(); */ +/* break; */ - } - case(cc_success): - { - puts("success\n\r"); - break; +/* } */ +/* case(cc_success): */ +/* { */ +/* puts("success\n\r"); */ +/* break; */ - } - default: - { - puts("status: "); - put_hex16(status); - ResumeMACASync(); - command_xcvr_rx(); +/* } */ +/* default: */ +/* { */ +/* puts("status: "); */ +/* put_hex16(status); */ +/* ResumeMACASync(); */ +/* command_xcvr_rx(); */ - } - } +/* } */ +/* } */ /* reg(MACA_CONTROL) = 0x00031a04; /\* receive *\/ */ /* while (((tmp = reg(MACA_STATUS)) & 15) == 14) */ From 1cc946b53a34fbb4bd7fcfaf91d26e34eb714621 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 15:54:10 -0400 Subject: [PATCH 058/471] rftest-rx is done for now. it prints out each received packet with a timestamp and toggles the green led. --- include/maca.h | 3 + src/maca.c | 2 +- tests/rftest-rx.c | 197 ++++++++++++++++++++++++++++++---------------- 3 files changed, 133 insertions(+), 69 deletions(-) diff --git a/include/maca.h b/include/maca.h index 597f28039..ba263de5c 100644 --- a/include/maca.h +++ b/include/maca.h @@ -397,6 +397,9 @@ typedef union maca_maskirq_reg_tag uint32_t Reg; } maca_maskirq_reg_t; +#define _is_action_complete_interrupt(x) (0 != (maca_irq_acpl & x)) +#define _is_filter_failed_interrupt(x) (0 != (maca_irq_flt & x)) + #define SMAC_MACA_CNTL_INIT_STATE ( control_prm | control_nofc | control_mode_non_slotted ) #define MACA_WRITE(reg, src) (reg = src) diff --git a/src/maca.c b/src/maca.c index 723017c15..cf711c973 100644 --- a/src/maca.c +++ b/src/maca.c @@ -24,7 +24,7 @@ void init_phy(void) maca_framesync = 0x000000A7; maca_clk = 0x00000008; // maca_maskirq = 0; //(maca_irq_cm | maca_irq_acpl | maca_irq_rst | maca_irq_di | maca_irq_crc | maca_irq_flt ); - maca_maskirq = maca_irq_rst; + maca_maskirq = (maca_irq_rst | maca_irq_acpl | maca_irq_cm | maca_irq_flt); maca_slotoffset = 0x00350000; } diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 18d428f6c..34721391b 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -9,6 +9,9 @@ #define UART1_CTS 0x80005014 #define UART1_BR 0x80005018 +#define GPIO_PAD_DIR0 0x80000000 +#define GPIO_DATA0 0x80000008 + #include "maca.h" #include "embedded_types.h" @@ -72,14 +75,32 @@ void dump_regs(uint32_t base, uint32_t len) { puts(NL); } +volatile uint8_t led; + +#define led_on() do { led = 1; reg(GPIO_DATA0) = 0x00000200; } while(0); +#define led_off() do { led = 0; reg(GPIO_DATA0) = 0x00000000; } while(0); + +void toggle_led(void) { + if(0 == led) { + led_on(); + led = 1; + + } else { + led_off(); + } +} + __attribute__ ((section ("startup"))) void main(void) { uint8_t c; volatile uint32_t i; uint32_t tmp; - volatile uint32_t *data; + volatile uint8_t *data; uint16_t status; + *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000200; + led_on(); + /* Restore UART regs. to default */ /* in case there is still bootloader state leftover */ @@ -110,45 +131,122 @@ void main(void) { for(i=0; i Date: Mon, 13 Apr 2009 18:11:48 -0400 Subject: [PATCH 059/471] fixed term cmdline option --- mc1322x-load.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 5a04ac3de..b5b4a5391 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -12,7 +12,7 @@ my $baud = '115200'; my $verbose; GetOptions ('file=s' => \$filename, - 'terminal' => \$term, + 'terminal=s' => \$term, 'verbose' => \$verbose, 'baud=s' => \$baud); From 4998a75ada0489f427bcd9660f4e9f53ed045877 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 18:19:13 -0400 Subject: [PATCH 060/471] this is working well --- tests/rftest-rx.c | 21 +++-- tests/rftest-tx.c | 234 +++++++++++++++++++++++++++++++++++++++------- 2 files changed, 210 insertions(+), 45 deletions(-) diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 34721391b..0e16f7929 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -49,11 +49,14 @@ void magic(void) { uint32_t ackBox[10]; +#define MAX_PAYLOAD 128 +volatile uint8_t data[MAX_PAYLOAD]; +/* maca_rxlen is very important */ #define command_xcvr_rx() \ do { \ - maca_txlen = (uint32_t)1<<16; \ + maca_txlen = ((0xff)<<16); \ maca_dmatx = (uint32_t)&ackBox; \ - maca_dmarx = DATA; \ + maca_dmarx = data; \ maca_tmren = (maca_cpl_clk | maca_soft_clk); \ maca_control = (control_prm | control_asap | control_seq_rx); \ }while(FALSE) @@ -95,7 +98,6 @@ void main(void) { uint8_t c; volatile uint32_t i; uint32_t tmp; - volatile uint8_t *data; uint16_t status; *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000200; @@ -130,8 +132,7 @@ void main(void) { reg(MACA_CONTROL) = SMAC_MACA_CNTL_INIT_STATE; for(i=0; i Date: Mon, 13 Apr 2009 18:39:59 -0400 Subject: [PATCH 061/471] rename ws.dis to ws-dis so distclean stops killing it. --- doc/ws-dis | 44867 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44867 insertions(+) create mode 100644 doc/ws-dis diff --git a/doc/ws-dis b/doc/ws-dis new file mode 100644 index 000000000..5be0bc013 --- /dev/null +++ b/doc/ws-dis @@ -0,0 +1,44867 @@ + +Weather Station Controller.out: file format elf32-littlearm + + +Disassembly of section P1: + +00400000 <_start_vector_>: + 400000: ea000d37 b 4034e4 <__start_> + 400004: ea000d58 b 40356c <__UndefInstructionHndlr_> + 400008: ea000d5f b 40358c <__SupervisorHndlr_> + 40000c: ea000d66 b 4035ac <__PrefetchAbtHndlr_> + 400010: ea000d6d b 4035cc <__DataAbtHndlr_> + 400014: ea000d53 b 403568 <__reserved_> + 400018: eaf041fc b 10810 + 40001c: eaf041ff b 10820 + +Disassembly of section P4: + +00400020 : + 400020: 4770 bx lr + +Disassembly of section P5: + +00400060 : + 400060: 4770 bx lr + +Disassembly of section P6: + +004000a0 : + 4000a0: 4770 bx lr + +Disassembly of section P7: + +004000e0 : + 4000e0: 4770 bx lr + +Disassembly of section P2: + +00400900 : + 400900: b408 push {r3} + 400902: 4b02 ldr r3, [pc, #8] (40090c ) + 400904: 469c mov ip, r3 + 400906: bc08 pop {r3} + 400908: 4760 bx ip + 40090a: 46c0 nop (mov r8, r8) + 40090c: 0000fae8 .word 0x0000fae8 + +00400910 : + 400910: b408 push {r3} + 400912: 4b02 ldr r3, [pc, #8] (40091c ) + 400914: 469c mov ip, r3 + 400916: bc08 pop {r3} + 400918: 4760 bx ip + 40091a: 46c0 nop (mov r8, r8) + 40091c: 00010798 .word 0x00010798 + +00400920 : + 400920: b408 push {r3} + 400922: 4b02 ldr r3, [pc, #8] (40092c ) + 400924: 469c mov ip, r3 + 400926: bc08 pop {r3} + 400928: 4760 bx ip + 40092a: 46c0 nop (mov r8, r8) + 40092c: 000107c8 .word 0x000107c8 + +00400930 : + 400930: b408 push {r3} + 400932: 4b02 ldr r3, [pc, #8] (40093c ) + 400934: 469c mov ip, r3 + 400936: bc08 pop {r3} + 400938: 4760 bx ip + 40093a: 46c0 nop (mov r8, r8) + 40093c: 000107e0 .word 0x000107e0 + +00400940 : + 400940: b408 push {r3} + 400942: 4b02 ldr r3, [pc, #8] (40094c ) + 400944: 469c mov ip, r3 + 400946: bc08 pop {r3} + 400948: 4760 bx ip + 40094a: 46c0 nop (mov r8, r8) + 40094c: 00010780 .word 0x00010780 + +00400950 : + 400950: b408 push {r3} + 400952: 4b02 ldr r3, [pc, #8] (40095c ) + 400954: 469c mov ip, r3 + 400956: bc08 pop {r3} + 400958: 4760 bx ip + 40095a: 46c0 nop (mov r8, r8) + 40095c: 0000faf8 .word 0x0000faf8 + +00400960 : + 400960: b580 push {r7, lr} + 400962: 4907 ldr r1, [pc, #28] (400980 ) + 400964: 466a mov r2, sp + 400966: 1103 asrs r3, r0, #4 + 400968: 5ccb ldrb r3, [r1, r3] + 40096a: 7013 strb r3, [r2, #0] + 40096c: 0700 lsls r0, r0, #28 + 40096e: 0f00 lsrs r0, r0, #28 + 400970: 5c08 ldrb r0, [r1, r0] + 400972: 7050 strb r0, [r2, #1] + 400974: 2000 movs r0, #0 + 400976: 7090 strb r0, [r2, #2] + 400978: 4668 mov r0, sp + 40097a: f002 fd81 bl 403480 + 40097e: e265 b.n 400e4c + +00400980 : + 400980: 00403f14 .word 0x00403f14 + +00400984 : + 400984: b510 push {r4, lr} + 400986: 0004 lsls r4, r0, #0 + 400988: 0a00 lsrs r0, r0, #8 + 40098a: e00d b.n 4009a8 + +0040098c : + 40098c: b510 push {r4, lr} + 40098e: 0004 lsls r4, r0, #0 + 400990: 0e00 lsrs r0, r0, #24 + 400992: f7ff ffe5 bl 400960 + 400996: 0c20 lsrs r0, r4, #16 + 400998: 0600 lsls r0, r0, #24 + 40099a: 0e00 lsrs r0, r0, #24 + 40099c: f7ff ffe0 bl 400960 + 4009a0: 0a20 lsrs r0, r4, #8 + 4009a2: 0600 lsls r0, r0, #24 + 4009a4: 0e00 lsrs r0, r0, #24 + 4009a6: 46c0 nop (mov r8, r8) + +004009a8 : + 4009a8: f7ff ffda bl 400960 + 4009ac: 0620 lsls r0, r4, #24 + 4009ae: 0e00 lsrs r0, r0, #24 + 4009b0: f7ff ffd6 bl 400960 + 4009b4: 9801 ldr r0, [sp, #4] + 4009b6: bc10 pop {r4} + 4009b8: b001 add sp, #4 + 4009ba: 4700 bx r0 + +004009bc : + 4009bc: b5f2 push {r1, r4, r5, r6, r7, lr} + 4009be: b082 sub sp, #8 + 4009c0: 0007 lsls r7, r0, #0 + 4009c2: 4816 ldr r0, [pc, #88] (400a1c ) + 4009c4: f002 fd5c bl 403480 + 4009c8: 2000 movs r0, #0 + 4009ca: 9000 str r0, [sp, #0] + 4009cc: 2407 movs r4, #7 + 4009ce: a514 add r5, pc, #80 (adr r5, 400a20 ) + 4009d0: a614 add r6, pc, #80 (adr r6, 400a24 ) + 4009d2: e019 b.n 400a08 + +004009d4 : + 4009d4: 9800 ldr r0, [sp, #0] + 4009d6: 4220 tst r0, r4 + 4009d8: d104 bne.n 4009e4 + 4009da: 9800 ldr r0, [sp, #0] + 4009dc: 0480 lsls r0, r0, #18 + 4009de: 0c00 lsrs r0, r0, #16 + 4009e0: f7ff ffd0 bl 400984 + +004009e4 : + 4009e4: 0028 lsls r0, r5, #0 + 4009e6: f002 fd4b bl 403480 + 4009ea: 9800 ldr r0, [sp, #0] + 4009ec: 0080 lsls r0, r0, #2 + 4009ee: 5838 ldr r0, [r7, r0] + 4009f0: f7ff ffcc bl 40098c + 4009f4: 9800 ldr r0, [sp, #0] + 4009f6: 4020 ands r0, r4 + 4009f8: 2807 cmp r0, #7 + 4009fa: d102 bne.n 400a02 + 4009fc: 0030 lsls r0, r6, #0 + 4009fe: f002 fd3f bl 403480 + +00400a02 : + 400a02: 9800 ldr r0, [sp, #0] + 400a04: 1c40 adds r0, r0, #1 + 400a06: 9000 str r0, [sp, #0] + +00400a08 : + 400a08: 9800 ldr r0, [sp, #0] + 400a0a: 9902 ldr r1, [sp, #8] + 400a0c: 4288 cmp r0, r1 + 400a0e: d3e1 bcc.n 4009d4 + 400a10: a004 add r0, pc, #16 (adr r0, 400a24 ) + 400a12: f002 fd35 bl 403480 + 400a16: f000 fc2b bl 401270 + 400a1a: 46c0 nop (mov r8, r8) + +00400a1c : + 400a1c: 00403c54 .word 0x00403c54 + 400a20: 00000020 .word 0x00000020 + 400a24: 00000d0a .word 0x00000d0a + +00400a28
: + 400a28: b500 push {lr} + 400a2a: b099 sub sp, #100 + 400a2c: 4809 ldr r0, [pc, #36] (400a54 ) + 400a2e: a913 add r1, sp, #76 + 400a30: 6141 str r1, [r0, #20] + 400a32: 2100 movs r1, #0 + 400a34: 61c1 str r1, [r0, #28] + 400a36: aa02 add r2, sp, #8 + 400a38: 6042 str r2, [r0, #4] + 400a3a: 4a05 ldr r2, [pc, #20] (400a50 ) + 400a3c: 60c2 str r2, [r0, #12] + 400a3e: 4883 ldr r0, [pc, #524] (400c4c ) + 400a40: 466a mov r2, sp + 400a42: 6042 str r2, [r0, #4] + 400a44: 60c1 str r1, [r0, #12] + 400a46: f000 f807 bl 400a58 + +00400a4a : + 400a4a: f000 f915 bl 400c78 + 400a4e: e7fc b.n 400a4a + +00400a50 : + 400a50: 00400c51 .word 0x00400c51 + +00400a54 : + 400a54: 00405280 .word 0x00405280 + +00400a58 : + 400a58: b5f8 push {r3, r4, r5, r6, r7, lr} + 400a5a: 2000 movs r0, #0 + 400a5c: 4c7b ldr r4, [pc, #492] (400c4c ) + 400a5e: 7460 strb r0, [r4, #17] + 400a60: 8260 strh r0, [r4, #18] + 400a62: 2107 movs r1, #7 + 400a64: 7521 strb r1, [r4, #20] + 400a66: 7560 strb r0, [r4, #21] + 400a68: 2101 movs r1, #1 + 400a6a: 75a1 strb r1, [r4, #22] + 400a6c: 7660 strb r0, [r4, #25] + 400a6e: 200f movs r0, #15 + 400a70: 76a0 strb r0, [r4, #26] + 400a72: f40f fa13 bl fe9c + 400a76: 4968 ldr r1, [pc, #416] (400c18 ) + 400a78: 2007 movs r0, #7 + 400a7a: f40f fa53 bl ff24 + 400a7e: 2100 movs r1, #0 + 400a80: 2007 movs r0, #7 + 400a82: f40f fa31 bl fee8 + 400a86: 2007 movs r0, #7 + 400a88: f40f fa9c bl ffc4 + 400a8c: 4963 ldr r1, [pc, #396] (400c1c ) + 400a8e: 2003 movs r0, #3 + 400a90: f40f fa48 bl ff24 + 400a94: 2100 movs r1, #0 + 400a96: 2003 movs r0, #3 + 400a98: f40f fa26 bl fee8 + 400a9c: 2003 movs r0, #3 + 400a9e: f40f fa91 bl ffc4 + 400aa2: 495f ldr r1, [pc, #380] (400c20 ) + 400aa4: 2005 movs r0, #5 + 400aa6: f40f fa3d bl ff24 + 400aaa: 2100 movs r1, #0 + 400aac: 2005 movs r0, #5 + 400aae: f40f fa1b bl fee8 + 400ab2: 2005 movs r0, #5 + 400ab4: f40f fa86 bl ffc4 + 400ab8: 495a ldr r1, [pc, #360] (400c24 ) + 400aba: 2002 movs r0, #2 + 400abc: f403 fa04 bl 3ec8 + 400ac0: 4959 ldr r1, [pc, #356] (400c28 ) + 400ac2: 2003 movs r0, #3 + 400ac4: f403 fa00 bl 3ec8 + 400ac8: 4958 ldr r1, [pc, #352] (400c2c ) + 400aca: 2004 movs r0, #4 + 400acc: f403 f9fc bl 3ec8 + 400ad0: 4957 ldr r1, [pc, #348] (400c30 ) + 400ad2: 2005 movs r0, #5 + 400ad4: f403 f9f8 bl 3ec8 + 400ad8: f7ff ff22 bl 400920 + 400adc: f7ff ff28 bl 400930 + 400ae0: 0020 lsls r0, r4, #0 + 400ae2: 3030 adds r0, #48 + 400ae4: f002 fc52 bl 40338c + 400ae8: 4d52 ldr r5, [pc, #328] (400c34 ) + 400aea: 0028 lsls r0, r5, #0 + 400aec: f002 fcc8 bl 403480 + 400af0: 0028 lsls r0, r5, #0 + 400af2: 3018 adds r0, #24 + 400af4: f002 fcc4 bl 403480 + 400af8: 2160 movs r1, #96 + 400afa: 484f ldr r0, [pc, #316] (400c38 ) + 400afc: f7ff ff5e bl 4009bc + 400b00: 0028 lsls r0, r5, #0 + 400b02: 3024 adds r0, #36 + 400b04: f002 fcbc bl 403480 + 400b08: 2160 movs r1, #96 + 400b0a: 484c ldr r0, [pc, #304] (400c3c ) + 400b0c: f7ff ff56 bl 4009bc + 400b10: 0028 lsls r0, r5, #0 + 400b12: 3038 adds r0, #56 + 400b14: f002 fcb4 bl 403480 + 400b18: 2160 movs r1, #96 + 400b1a: 4849 ldr r0, [pc, #292] (400c40 ) + 400b1c: f7ff ff4e bl 4009bc + 400b20: 0028 lsls r0, r5, #0 + 400b22: 304c adds r0, #76 + 400b24: f002 fcac bl 403480 + 400b28: 4f46 ldr r7, [pc, #280] (400c44 ) + 400b2a: 2160 movs r1, #96 + 400b2c: 0038 lsls r0, r7, #0 + 400b2e: f7ff ff45 bl 4009bc + 400b32: 0028 lsls r0, r5, #0 + 400b34: 3054 adds r0, #84 + 400b36: f002 fca3 bl 403480 + 400b3a: 4e43 ldr r6, [pc, #268] (400c48 ) + 400b3c: 21c0 movs r1, #192 + 400b3e: 0030 lsls r0, r6, #0 + 400b40: f7ff ff3c bl 4009bc + 400b44: f003 f994 bl 403e70 + 400b48: f002 fec2 bl 4038d0 + 400b4c: f003 f8aa bl 403ca4 + 400b50: 0020 lsls r0, r4, #0 + 400b52: 3030 adds r0, #48 + 400b54: f002 fc1a bl 40338c + 400b58: 0028 lsls r0, r5, #0 + 400b5a: 306c adds r0, #108 + 400b5c: f002 fc90 bl 403480 + 400b60: 0028 lsls r0, r5, #0 + 400b62: 3018 adds r0, #24 + 400b64: f002 fc8c bl 403480 + 400b68: 2160 movs r1, #96 + 400b6a: 4833 ldr r0, [pc, #204] (400c38 ) + 400b6c: f7ff ff26 bl 4009bc + 400b70: 0028 lsls r0, r5, #0 + 400b72: 3024 adds r0, #36 + 400b74: f002 fc84 bl 403480 + 400b78: 2160 movs r1, #96 + 400b7a: 4830 ldr r0, [pc, #192] (400c3c ) + 400b7c: f7ff ff1e bl 4009bc + 400b80: 0028 lsls r0, r5, #0 + 400b82: 3038 adds r0, #56 + 400b84: f002 fc7c bl 403480 + 400b88: 2160 movs r1, #96 + 400b8a: 482d ldr r0, [pc, #180] (400c40 ) + 400b8c: f7ff ff16 bl 4009bc + 400b90: 0028 lsls r0, r5, #0 + 400b92: 304c adds r0, #76 + 400b94: f002 fc74 bl 403480 + 400b98: 2160 movs r1, #96 + 400b9a: 0038 lsls r0, r7, #0 + 400b9c: f7ff ff0e bl 4009bc + 400ba0: 3554 adds r5, #84 + 400ba2: 0028 lsls r0, r5, #0 + 400ba4: f002 fc6c bl 403480 + 400ba8: 21c0 movs r1, #192 + 400baa: 0030 lsls r0, r6, #0 + 400bac: f7ff ff06 bl 4009bc + 400bb0: 2000 movs r0, #0 + 400bb2: f7ff fead bl 400910 + 400bb6: 2000 movs r0, #0 + 400bb8: f7ff fec2 bl 400940 + 400bbc: f002 fd24 bl 403608 + 400bc0: f003 f896 bl 403cf0 + 400bc4: f000 fe0c bl 4017e0 + 400bc8: f000 fecc bl 401964 + 400bcc: 220f movs r2, #15 + 400bce: 2100 movs r1, #0 + 400bd0: 20f0 movs r0, #240 + 400bd2: f002 fed9 bl 403988 + 400bd6: 7ea0 ldrb r0, [r4, #26] + 400bd8: f002 ff59 bl 403a8e + 400bdc: 7d60 ldrb r0, [r4, #21] + 400bde: f002 ff27 bl 403a30 + 400be2: f000 fe37 bl 401854 + 400be6: 7da0 ldrb r0, [r4, #22] + 400be8: f001 fa5c bl 4020a4 + 400bec: f000 ffb3 bl 401b56 + 400bf0: 2110 movs r1, #16 + 400bf2: 2015 movs r0, #21 + 400bf4: f000 fa4a bl 40108c + 400bf8: 20fa movs r0, #250 + 400bfa: 0080 lsls r0, r0, #2 + 400bfc: f003 f8c2 bl 403d84 + 400c00: 2110 movs r1, #16 + 400c02: 2015 movs r0, #21 + 400c04: f000 fb3c bl 401280 + 400c08: f000 ffa5 bl 401b56 + 400c0c: 7d20 ldrb r0, [r4, #20] + 400c0e: f000 fc11 bl 401434 + 400c12: b001 add sp, #4 + 400c14: e32e b.n 401274 + 400c16: 46c0 nop (mov r8, r8) + +00400c18 : + 400c18: 00402c45 .word 0x00402c45 + 400c1c: 00003f35 .word 0x00003f35 + 400c20: 0000ab41 .word 0x0000ab41 + 400c24: 00400e25 .word 0x00400e25 + 400c28: 00400e39 .word 0x00400e39 + 400c2c: 00400e6d .word 0x00400e6d + 400c30: 00400e59 .word 0x00400e59 + 400c34: 00403b28 .word 0x00403b28 + 400c38: 80004000 .word 0x80004000 + 400c3c: 80009000 .word 0x80009000 + 400c40: 800091c0 .word 0x800091c0 + 400c44: 80003000 .word 0x80003000 + 400c48: 80009200 .word 0x80009200 + +00400c4c : + 400c4c: 00405244 .word 0x00405244 + +00400c50 : + 400c50: 4807 ldr r0, [pc, #28] (400c70 ) + 400c52: 6801 ldr r1, [r0, #0] + 400c54: 2210 movs r2, #16 + 400c56: 400a ands r2, r1 + 400c58: 0911 lsrs r1, r2, #4 + 400c5a: 2901 cmp r1, #1 + 400c5c: d106 bne.n 400c6c + 400c5e: 6801 ldr r1, [r0, #0] + 400c60: 2210 movs r2, #16 + 400c62: 4391 bics r1, r2 + 400c64: 6001 str r1, [r0, #0] + 400c66: 4803 ldr r0, [pc, #12] (400c74 ) + 400c68: 2101 movs r1, #1 + 400c6a: 7001 strb r1, [r0, #0] + +00400c6c : + 400c6c: 4770 bx lr + 400c6e: 46c0 nop (mov r8, r8) + +00400c70 : + 400c70: 004053b8 .word 0x004053b8 + 400c74: 00405254 .word 0x00405254 + +00400c78 : + 400c78: b570 push {r4, r5, r6, lr} + 400c7a: b084 sub sp, #16 + 400c7c: f001 fbd4 bl 402428 + 400c80: 4c64 ldr r4, [pc, #400] (400e14 ) + 400c82: 7c20 ldrb r0, [r4, #16] + 400c84: 2801 cmp r0, #1 + 400c86: d103 bne.n 400c90 + 400c88: 2000 movs r0, #0 + 400c8a: 7420 strb r0, [r4, #16] + 400c8c: f000 f9a6 bl 400fdc + +00400c90 : + 400c90: 4861 ldr r0, [pc, #388] (400e18 ) + 400c92: 7800 ldrb r0, [r0, #0] + 400c94: 2800 cmp r0, #0 + 400c96: d110 bne.n 400cba + 400c98: 4860 ldr r0, [pc, #384] (400e1c ) + 400c9a: 8801 ldrh r1, [r0, #0] + 400c9c: 2900 cmp r1, #0 + 400c9e: d00c beq.n 400cba + 400ca0: 2100 movs r1, #0 + 400ca2: 8001 strh r1, [r0, #0] + 400ca4: 4668 mov r0, sp + 400ca6: f000 fe47 bl 401938 + 400caa: 4668 mov r0, sp + 400cac: 7801 ldrb r1, [r0, #0] + 400cae: 29fd cmp r1, #253 + 400cb0: d103 bne.n 400cba + 400cb2: 7881 ldrb r1, [r0, #2] + 400cb4: 7840 ldrb r0, [r0, #1] + 400cb6: f000 fddd bl 401874 + +00400cba : + 400cba: 2502 movs r5, #2 + 400cbc: 7c60 ldrb r0, [r4, #17] + 400cbe: 4228 tst r0, r5 + 400cc0: d00e beq.n 400ce0 + 400cc2: 21fd movs r1, #253 + 400cc4: 4001 ands r1, r0 + 400cc6: 7461 strb r1, [r4, #17] + 400cc8: 7ce1 ldrb r1, [r4, #19] + 400cca: 1e48 subs r0, r1, #1 + 400ccc: 4180 sbcs r0, r0 + 400cce: 0fc0 lsrs r0, r0, #31 + 400cd0: 74e0 strb r0, [r4, #19] + 400cd2: f000 fd9b bl 40180c + 400cd6: f000 ff3e bl 401b56 + 400cda: 7d20 ldrb r0, [r4, #20] + 400cdc: f000 fbaa bl 401434 + +00400ce0 : + 400ce0: 7c60 ldrb r0, [r4, #17] + 400ce2: 07c0 lsls r0, r0, #31 + 400ce4: d512 bpl.n 400d0c + 400ce6: 7c60 ldrb r0, [r4, #17] + 400ce8: 21fe movs r1, #254 + 400cea: 4001 ands r1, r0 + 400cec: 7461 strb r1, [r4, #17] + 400cee: 7d60 ldrb r0, [r4, #21] + 400cf0: 280f cmp r0, #15 + 400cf2: d101 bne.n 400cf8 + 400cf4: 2000 movs r0, #0 + 400cf6: e000 b.n 400cfa + +00400cf8 : + 400cf8: 1c40 adds r0, r0, #1 + +00400cfa : + 400cfa: 7560 strb r0, [r4, #21] + 400cfc: 7d60 ldrb r0, [r4, #21] + 400cfe: f002 fe97 bl 403a30 + 400d02: f000 ff28 bl 401b56 + 400d06: 7d20 ldrb r0, [r4, #20] + 400d08: f000 fb94 bl 401434 + +00400d0c : + 400d0c: 2604 movs r6, #4 + 400d0e: 7c60 ldrb r0, [r4, #17] + 400d10: 4230 tst r0, r6 + 400d12: d00e beq.n 400d32 + 400d14: 21fb movs r1, #251 + 400d16: 4001 ands r1, r0 + 400d18: 7461 strb r1, [r4, #17] + 400d1a: 7d20 ldrb r0, [r4, #20] + 400d1c: 280d cmp r0, #13 + 400d1e: d101 bne.n 400d24 + 400d20: 2005 movs r0, #5 + 400d22: e000 b.n 400d26 + +00400d24 : + 400d24: 1c80 adds r0, r0, #2 + +00400d26 : + 400d26: 7520 strb r0, [r4, #20] + 400d28: f000 ff15 bl 401b56 + 400d2c: 7d20 ldrb r0, [r4, #20] + 400d2e: f000 fb81 bl 401434 + +00400d32 : + 400d32: 7c60 ldrb r0, [r4, #17] + 400d34: 0700 lsls r0, r0, #28 + 400d36: d50d bpl.n 400d54 + 400d38: 7c60 ldrb r0, [r4, #17] + 400d3a: 21f7 movs r1, #247 + 400d3c: 4001 ands r1, r0 + 400d3e: 7461 strb r1, [r4, #17] + 400d40: 7da0 ldrb r0, [r4, #22] + 400d42: 2801 cmp r0, #1 + 400d44: d101 bne.n 400d4a + 400d46: 2000 movs r0, #0 + 400d48: e000 b.n 400d4c + +00400d4a : + 400d4a: 2001 movs r0, #1 + +00400d4c : + 400d4c: 75a0 strb r0, [r4, #22] + 400d4e: 7da0 ldrb r0, [r4, #22] + 400d50: f001 f9a8 bl 4020a4 + +00400d54 : + 400d54: 7ee0 ldrb r0, [r4, #27] + 400d56: 2800 cmp r0, #0 + 400d58: d006 beq.n 400d68 + 400d5a: 2802 cmp r0, #2 + 400d5c: d035 beq.n 400dca + 400d5e: d305 bcc.n 400d6c + 400d60: 2804 cmp r0, #4 + 400d62: d046 beq.n 400df2 + 400d64: d31e bcc.n 400da4 + 400d66: e018 b.n 400d9a + +00400d68 : + 400d68: 2001 movs r0, #1 + 400d6a: e015 b.n 400d98 + +00400d6c : + 400d6c: 482c ldr r0, [pc, #176] (400e20 ) + 400d6e: 2107 movs r1, #7 + 400d70: 7802 ldrb r2, [r0, #0] + 400d72: 400a ands r2, r1 + 400d74: 2328 movs r3, #40 + 400d76: 4313 orrs r3, r2 + 400d78: 7003 strb r3, [r0, #0] + 400d7a: 7820 ldrb r0, [r4, #0] + 400d7c: 4001 ands r1, r0 + 400d7e: 2020 movs r0, #32 + 400d80: 4308 orrs r0, r1 + 400d82: 7020 strb r0, [r4, #0] + 400d84: 6860 ldr r0, [r4, #4] + 400d86: 2141 movs r1, #65 + 400d88: 7081 strb r1, [r0, #2] + 400d8a: 6860 ldr r0, [r4, #4] + 400d8c: 2143 movs r1, #67 + 400d8e: 70c1 strb r1, [r0, #3] + 400d90: 6860 ldr r0, [r4, #4] + 400d92: 214b movs r1, #75 + 400d94: 7101 strb r1, [r0, #4] + 400d96: 2003 movs r0, #3 + +00400d98 : + 400d98: 76e0 strb r0, [r4, #27] + +00400d9a : + 400d9a: b004 add sp, #16 + 400d9c: 9803 ldr r0, [sp, #12] + 400d9e: bc70 pop {r4, r5, r6} + 400da0: b001 add sp, #4 + 400da2: 4700 bx r0 + +00400da4 : + 400da4: 481e ldr r0, [pc, #120] (400e20 ) + 400da6: 7801 ldrb r1, [r0, #0] + 400da8: 08c9 lsrs r1, r1, #3 + 400daa: 2905 cmp r1, #5 + 400dac: d005 beq.n 400dba + 400dae: 2906 cmp r1, #6 + 400db0: d003 beq.n 400dba + 400db2: 2908 cmp r1, #8 + 400db4: d001 beq.n 400dba + 400db6: 2904 cmp r1, #4 + 400db8: d1ef bne.n 400d9a + +00400dba : + 400dba: 2143 movs r1, #67 + 400dbc: 7201 strb r1, [r0, #8] + 400dbe: 21f0 movs r1, #240 + 400dc0: 0209 lsls r1, r1, #8 + 400dc2: f002 fe47 bl 403a54 + 400dc6: 76e5 strb r5, [r4, #27] + 400dc8: e7e7 b.n 400d9a + +00400dca : + 400dca: 4815 ldr r0, [pc, #84] (400e20 ) + 400dcc: 7801 ldrb r1, [r0, #0] + 400dce: 08c9 lsrs r1, r1, #3 + 400dd0: 2905 cmp r1, #5 + 400dd2: d005 beq.n 400de0 + 400dd4: 2906 cmp r1, #6 + 400dd6: d003 beq.n 400de0 + 400dd8: 2908 cmp r1, #8 + 400dda: d001 beq.n 400de0 + 400ddc: 2904 cmp r1, #4 + 400dde: d101 bne.n 400de4 + +00400de0 : + 400de0: 2003 movs r0, #3 + 400de2: 76e0 strb r0, [r4, #27] + +00400de4 : + 400de4: 7ca0 ldrb r0, [r4, #18] + 400de6: 2801 cmp r0, #1 + 400de8: d1d7 bne.n 400d9a + 400dea: 2000 movs r0, #0 + 400dec: 74a0 strb r0, [r4, #18] + 400dee: 76e6 strb r6, [r4, #27] + 400df0: e7d3 b.n 400d9a + +00400df2 : + 400df2: 7820 ldrb r0, [r4, #0] + 400df4: 08c0 lsrs r0, r0, #3 + 400df6: 2804 cmp r0, #4 + 400df8: d005 beq.n 400e06 + 400dfa: 2805 cmp r0, #5 + 400dfc: d003 beq.n 400e06 + 400dfe: 2807 cmp r0, #7 + 400e00: d001 beq.n 400e06 + 400e02: 2803 cmp r0, #3 + 400e04: d104 bne.n 400e10 + +00400e06 : + 400e06: 2005 movs r0, #5 + 400e08: 7220 strb r0, [r4, #8] + 400e0a: 0020 lsls r0, r4, #0 + 400e0c: f002 fe06 bl 403a1c + +00400e10 : + 400e10: 76e5 strb r5, [r4, #27] + +00400e12 : + 400e12: e7c2 b.n 400d9a + +00400e14 : + 400e14: 00405244 .word 0x00405244 + 400e18: 004052a4 .word 0x004052a4 + 400e1c: 004052a6 .word 0x004052a6 + 400e20: 00405280 .word 0x00405280 + +00400e24 : + 400e24: b580 push {r7, lr} + 400e26: 2064 movs r0, #100 + 400e28: f002 ffac bl 403d84 + 400e2c: 4801 ldr r0, [pc, #4] (400e34 ) + 400e2e: 7c41 ldrb r1, [r0, #17] + 400e30: 2202 movs r2, #2 + 400e32: e009 b.n 400e48 + +00400e34 : + 400e34: 00405244 .word 0x00405244 + +00400e38 : + 400e38: b580 push {r7, lr} + 400e3a: 2064 movs r0, #100 + 400e3c: f002 ffa2 bl 403d84 + 400e40: 4804 ldr r0, [pc, #16] (400e54 ) + 400e42: 7c41 ldrb r1, [r0, #17] + 400e44: 2204 movs r2, #4 + 400e46: 46c0 nop (mov r8, r8) + +00400e48 : + 400e48: 430a orrs r2, r1 + 400e4a: 7442 strb r2, [r0, #17] + +00400e4c : + 400e4c: 9801 ldr r0, [sp, #4] + 400e4e: b002 add sp, #8 + 400e50: 4700 bx r0 + ... + +00400e54 : + 400e54: 00405244 .word 0x00405244 + +00400e58 : + 400e58: b580 push {r7, lr} + 400e5a: 2064 movs r0, #100 + 400e5c: f002 ff92 bl 403d84 + 400e60: 4801 ldr r0, [pc, #4] (400e68 ) + 400e62: 7c41 ldrb r1, [r0, #17] + 400e64: 2201 movs r2, #1 + 400e66: e7ef b.n 400e48 + +00400e68 : + 400e68: 00405244 .word 0x00405244 + +00400e6c : + 400e6c: b580 push {r7, lr} + 400e6e: 2064 movs r0, #100 + 400e70: f002 ff88 bl 403d84 + 400e74: 4801 ldr r0, [pc, #4] (400e7c ) + 400e76: 7c41 ldrb r1, [r0, #17] + 400e78: 2208 movs r2, #8 + 400e7a: e7e5 b.n 400e48 + +00400e7c : + 400e7c: 00405244 .word 0x00405244 + +00400e80 : + 400e80: b5f8 push {r3, r4, r5, r6, r7, lr} + 400e82: 1f49 subs r1, r1, #5 + 400e84: d009 beq.n 400e9a + 400e86: 1e89 subs r1, r1, #2 + 400e88: d00e beq.n 400ea8 + 400e8a: 1e89 subs r1, r1, #2 + 400e8c: d030 beq.n 400ef0 + 400e8e: 1e89 subs r1, r1, #2 + 400e90: d050 beq.n 400f34 + 400e92: 1e89 subs r1, r1, #2 + 400e94: d100 bne.n 400e98 + 400e96: e083 b.n 400fa0 + 400e98: e08f b.n 400fba + +00400e9a : + 400e9a: 21b4 movs r1, #180 + 400e9c: 0049 lsls r1, r1, #1 + 400e9e: 1a09 subs r1, r1, r0 + 400ea0: 4a49 ldr r2, [pc, #292] (400fc8 ) + 400ea2: 8011 strh r1, [r2, #0] + 400ea4: 0002 lsls r2, r0, #0 + 400ea6: e088 b.n 400fba + +00400ea8 : + 400ea8: 0007 lsls r7, r0, #0 + 400eaa: 2164 movs r1, #100 + 400eac: f7ff fd28 bl 400900 + 400eb0: 0204 lsls r4, r0, #8 + 400eb2: 0038 lsls r0, r7, #0 + 400eb4: 2164 movs r1, #100 + 400eb6: f7ff fd23 bl 400900 + 400eba: 4321 orrs r1, r4 + 400ebc: 000e lsls r6, r1, #0 + 400ebe: 4c43 ldr r4, [pc, #268] (400fcc ) + 400ec0: 8466 strh r6, [r4, #34] + 400ec2: 4843 ldr r0, [pc, #268] (400fd0 ) + 400ec4: 4347 muls r7, r0 + 400ec6: 0038 lsls r0, r7, #0 + 400ec8: 21fa movs r1, #250 + 400eca: 0089 lsls r1, r1, #2 + 400ecc: f7ff fd18 bl 400900 + 400ed0: 0007 lsls r7, r0, #0 + 400ed2: 2164 movs r1, #100 + 400ed4: f7ff fd3c bl 400950 + 400ed8: 0200 lsls r0, r0, #8 + 400eda: b501 push {r0, lr} + 400edc: 0038 lsls r0, r7, #0 + 400ede: 2164 movs r1, #100 + 400ee0: f7ff fd36 bl 400950 + 400ee4: 9800 ldr r0, [sp, #0] + 400ee6: b002 add sp, #8 + 400ee8: 4301 orrs r1, r0 + 400eea: 8521 strh r1, [r4, #40] + +00400eec : + 400eec: 0032 lsls r2, r6, #0 + 400eee: e064 b.n 400fba + +00400ef0 : + 400ef0: 0007 lsls r7, r0, #0 + 400ef2: 2164 movs r1, #100 + 400ef4: f7ff fd04 bl 400900 + 400ef8: 0204 lsls r4, r0, #8 + 400efa: 0038 lsls r0, r7, #0 + 400efc: 2164 movs r1, #100 + 400efe: f7ff fcff bl 400900 + 400f02: 4321 orrs r1, r4 + 400f04: 000e lsls r6, r1, #0 + 400f06: 4c31 ldr r4, [pc, #196] (400fcc ) + 400f08: 8426 strh r6, [r4, #32] + 400f0a: 2091 movs r0, #145 + 400f0c: 4347 muls r7, r0 + 400f0e: 0038 lsls r0, r7, #0 + 400f10: 4930 ldr r1, [pc, #192] (400fd4 ) + 400f12: f7ff fcf5 bl 400900 + 400f16: 0007 lsls r7, r0, #0 + 400f18: 2164 movs r1, #100 + 400f1a: f7ff fd19 bl 400950 + 400f1e: 0200 lsls r0, r0, #8 + 400f20: b501 push {r0, lr} + 400f22: 0038 lsls r0, r7, #0 + 400f24: 2164 movs r1, #100 + 400f26: f7ff fd13 bl 400950 + 400f2a: 9800 ldr r0, [sp, #0] + 400f2c: b002 add sp, #8 + 400f2e: 4301 orrs r1, r0 + 400f30: 84e1 strh r1, [r4, #38] + 400f32: e7db b.n 400eec + +00400f34 : + 400f34: 4928 ldr r1, [pc, #160] (400fd8 ) + 400f36: 4288 cmp r0, r1 + 400f38: d303 bcc.n 400f42 + 400f3a: 0401 lsls r1, r0, #16 + 400f3c: 1a08 subs r0, r1, r0 + 400f3e: 2101 movs r1, #1 + 400f40: e000 b.n 400f44 + +00400f42 : + 400f42: 2100 movs r1, #0 + +00400f44 : + 400f44: 4c21 ldr r4, [pc, #132] (400fcc ) + 400f46: 75e1 strb r1, [r4, #23] + 400f48: 0400 lsls r0, r0, #16 + 400f4a: 0c00 lsrs r0, r0, #16 + 400f4c: 0007 lsls r7, r0, #0 + 400f4e: 2164 movs r1, #100 + 400f50: f7ff fcd6 bl 400900 + 400f54: 0206 lsls r6, r0, #8 + 400f56: 0038 lsls r0, r7, #0 + 400f58: 2164 movs r1, #100 + 400f5a: f7ff fcd1 bl 400900 + 400f5e: 4331 orrs r1, r6 + 400f60: 000e lsls r6, r1, #0 + 400f62: 83e6 strh r6, [r4, #30] + 400f64: 00f8 lsls r0, r7, #3 + 400f66: 19c0 adds r0, r0, r7 + 400f68: 0040 lsls r0, r0, #1 + 400f6a: 210a movs r1, #10 + 400f6c: f7ff fcc8 bl 400900 + 400f70: 21c8 movs r1, #200 + 400f72: 0109 lsls r1, r1, #4 + 400f74: 1847 adds r7, r0, r1 + 400f76: 0038 lsls r0, r7, #0 + 400f78: 2164 movs r1, #100 + 400f7a: f7ff fce9 bl 400950 + 400f7e: 0200 lsls r0, r0, #8 + 400f80: b501 push {r0, lr} + 400f82: 0038 lsls r0, r7, #0 + 400f84: 2164 movs r1, #100 + 400f86: f7ff fce3 bl 400950 + 400f8a: 9800 ldr r0, [sp, #0] + 400f8c: b002 add sp, #8 + 400f8e: 4301 orrs r1, r0 + 400f90: 84a1 strh r1, [r4, #36] + 400f92: 7de0 ldrb r0, [r4, #23] + 400f94: 2800 cmp r0, #0 + 400f96: d0a9 beq.n 400eec + 400f98: 2280 movs r2, #128 + 400f9a: 0212 lsls r2, r2, #8 + 400f9c: 4332 orrs r2, r6 + 400f9e: e00c b.n 400fba + +00400fa0 : + 400fa0: 0007 lsls r7, r0, #0 + 400fa2: 2164 movs r1, #100 + 400fa4: f7ff fcac bl 400900 + 400fa8: 0204 lsls r4, r0, #8 + 400faa: 0038 lsls r0, r7, #0 + 400fac: 2164 movs r1, #100 + 400fae: f7ff fca7 bl 400900 + 400fb2: 4321 orrs r1, r4 + 400fb4: 4c05 ldr r4, [pc, #20] (400fcc ) + 400fb6: 8561 strh r1, [r4, #42] + 400fb8: 000a lsls r2, r1, #0 + +00400fba : + 400fba: 0410 lsls r0, r2, #16 + 400fbc: 0c00 lsrs r0, r0, #16 + 400fbe: b001 add sp, #4 + 400fc0: 9904 ldr r1, [sp, #16] + 400fc2: bcf0 pop {r4, r5, r6, r7} + 400fc4: b001 add sp, #4 + 400fc6: 4708 bx r1 + +00400fc8 : + 400fc8: 00405270 .word 0x00405270 + 400fcc: 00405244 .word 0x00405244 + 400fd0: 0000026d .word 0x0000026d + 400fd4: 00002710 .word 0x00002710 + 400fd8: 00003909 .word 0x00003909 + +00400fdc : + 400fdc: b5f0 push {r4, r5, r6, r7, lr} + 400fde: b085 sub sp, #20 + 400fe0: 4f24 ldr r7, [pc, #144] (401074 ) + 400fe2: 6878 ldr r0, [r7, #4] + 400fe4: 78c0 ldrb r0, [r0, #3] + 400fe6: 2801 cmp r0, #1 + 400fe8: d142 bne.n 401070 + 400fea: 4923 ldr r1, [pc, #140] (401078 ) + 400fec: 7008 strb r0, [r1, #0] + 400fee: 6879 ldr r1, [r7, #4] + 400ff0: 7909 ldrb r1, [r1, #4] + 400ff2: 4a22 ldr r2, [pc, #136] (40107c ) + 400ff4: 6812 ldr r2, [r2, #0] + 400ff6: 7151 strb r1, [r2, #5] + 400ff8: 466e mov r6, sp + 400ffa: 21fe movs r1, #254 + 400ffc: 7031 strb r1, [r6, #0] + 400ffe: 7070 strb r0, [r6, #1] + 401000: 6878 ldr r0, [r7, #4] + 401002: 7900 ldrb r0, [r0, #4] + 401004: 70b0 strb r0, [r6, #2] + 401006: 6878 ldr r0, [r7, #4] + 401008: 7940 ldrb r0, [r0, #5] + 40100a: 70f0 strb r0, [r6, #3] + 40100c: 6878 ldr r0, [r7, #4] + 40100e: 7980 ldrb r0, [r0, #6] + 401010: 7130 strb r0, [r6, #4] + 401012: 2405 movs r4, #5 + 401014: 466d mov r5, sp + 401016: 1d6d adds r5, r5, #5 + +00401018 : + 401018: 6878 ldr r0, [r7, #4] + 40101a: 1900 adds r0, r0, r4 + 40101c: 0621 lsls r1, r4, #24 + 40101e: 0e09 lsrs r1, r1, #24 + 401020: 7882 ldrb r2, [r0, #2] + 401022: 0212 lsls r2, r2, #8 + 401024: 78c0 ldrb r0, [r0, #3] + 401026: 4310 orrs r0, r2 + 401028: f7ff ff2a bl 400e80 + 40102c: 0a01 lsrs r1, r0, #8 + 40102e: 7029 strb r1, [r5, #0] + 401030: 7068 strb r0, [r5, #1] + 401032: 1ca4 adds r4, r4, #2 + 401034: 1cad adds r5, r5, #2 + 401036: 0620 lsls r0, r4, #24 + 401038: 0e00 lsrs r0, r0, #24 + 40103a: 280e cmp r0, #14 + 40103c: d3ec bcc.n 401018 + 40103e: 6878 ldr r0, [r7, #4] + 401040: 7c40 ldrb r0, [r0, #17] + 401042: 73f0 strb r0, [r6, #15] + 401044: 20ff movs r0, #255 + 401046: 7430 strb r0, [r6, #16] + 401048: 480d ldr r0, [pc, #52] (401080 ) + 40104a: 7800 ldrb r0, [r0, #0] + 40104c: 2801 cmp r0, #1 + 40104e: d10b bne.n 401068 + 401050: 78f0 ldrb r0, [r6, #3] + 401052: 490c ldr r1, [pc, #48] (401084 ) + 401054: 7809 ldrb r1, [r1, #0] + 401056: 4281 cmp r1, r0 + 401058: d006 beq.n 401068 + 40105a: 490a ldr r1, [pc, #40] (401084 ) + 40105c: 7008 strb r0, [r1, #0] + 40105e: 2211 movs r2, #17 + 401060: 4669 mov r1, sp + 401062: 2000 movs r0, #0 + 401064: f402 f808 bl 3078 + +00401068 : + 401068: 4807 ldr r0, [pc, #28] (401088 ) + 40106a: 7800 ldrb r0, [r0, #0] + 40106c: f000 f9e2 bl 401434 + +00401070 : + 401070: b005 add sp, #20 + 401072: e0ff b.n 401274 + +00401074 : + 401074: 00405280 .word 0x00405280 + 401078: 00405256 .word 0x00405256 + 40107c: 00405248 .word 0x00405248 + 401080: 0040525d .word 0x0040525d + 401084: 00405260 .word 0x00405260 + 401088: 00405258 .word 0x00405258 + +0040108c : + 40108c: b5f0 push {r4, r5, r6, r7, lr} + 40108e: b083 sub sp, #12 + 401090: 0005 lsls r5, r0, #0 + 401092: 000c lsls r4, r1, #0 + 401094: 4668 mov r0, sp + 401096: 4979 ldr r1, [pc, #484] (40127c ) + 401098: c94c ldmia r1!, {r2, r3, r6} + 40109a: c04c stmia r0!, {r2, r3, r6} + 40109c: 2600 movs r6, #0 + +0040109e : + 40109e: 2201 movs r2, #1 + 4010a0: 0621 lsls r1, r4, #24 + 4010a2: 0e09 lsrs r1, r1, #24 + 4010a4: 0628 lsls r0, r5, #24 + 4010a6: 0e00 lsrs r0, r0, #24 + 4010a8: f001 f807 bl 4020ba + 4010ac: 1c67 adds r7, r4, #1 + 4010ae: 2201 movs r2, #1 + 4010b0: 0639 lsls r1, r7, #24 + 4010b2: 0e09 lsrs r1, r1, #24 + 4010b4: 0628 lsls r0, r5, #24 + 4010b6: 0e00 lsrs r0, r0, #24 + 4010b8: f000 ffff bl 4020ba + 4010bc: 2201 movs r2, #1 + 4010be: 0639 lsls r1, r7, #24 + 4010c0: 0e09 lsrs r1, r1, #24 + 4010c2: 1c68 adds r0, r5, #1 + 4010c4: 0600 lsls r0, r0, #24 + 4010c6: 0e00 lsrs r0, r0, #24 + 4010c8: f000 fff7 bl 4020ba + 4010cc: 2201 movs r2, #1 + 4010ce: 0639 lsls r1, r7, #24 + 4010d0: 0e09 lsrs r1, r1, #24 + 4010d2: 1e68 subs r0, r5, #1 + 4010d4: 0600 lsls r0, r0, #24 + 4010d6: 0e00 lsrs r0, r0, #24 + 4010d8: f000 ffef bl 4020ba + 4010dc: 1ca7 adds r7, r4, #2 + 4010de: 2201 movs r2, #1 + 4010e0: 0639 lsls r1, r7, #24 + 4010e2: 0e09 lsrs r1, r1, #24 + 4010e4: 1ea8 subs r0, r5, #2 + 4010e6: 0600 lsls r0, r0, #24 + 4010e8: 0e00 lsrs r0, r0, #24 + 4010ea: f000 ffe6 bl 4020ba + 4010ee: 2201 movs r2, #1 + 4010f0: 0639 lsls r1, r7, #24 + 4010f2: 0e09 lsrs r1, r1, #24 + 4010f4: 1e68 subs r0, r5, #1 + 4010f6: 0600 lsls r0, r0, #24 + 4010f8: 0e00 lsrs r0, r0, #24 + 4010fa: f000 ffde bl 4020ba + 4010fe: 2201 movs r2, #1 + 401100: 0639 lsls r1, r7, #24 + 401102: 0e09 lsrs r1, r1, #24 + 401104: 0628 lsls r0, r5, #24 + 401106: 0e00 lsrs r0, r0, #24 + 401108: f000 ffd7 bl 4020ba + 40110c: 2201 movs r2, #1 + 40110e: 0639 lsls r1, r7, #24 + 401110: 0e09 lsrs r1, r1, #24 + 401112: 1c68 adds r0, r5, #1 + 401114: 0600 lsls r0, r0, #24 + 401116: 0e00 lsrs r0, r0, #24 + 401118: f000 ffcf bl 4020ba + 40111c: 2201 movs r2, #1 + 40111e: 0639 lsls r1, r7, #24 + 401120: 0e09 lsrs r1, r1, #24 + 401122: 1ca8 adds r0, r5, #2 + 401124: 0600 lsls r0, r0, #24 + 401126: 0e00 lsrs r0, r0, #24 + 401128: f000 ffc7 bl 4020ba + 40112c: 2201 movs r2, #1 + 40112e: 1ce1 adds r1, r4, #3 + 401130: 0609 lsls r1, r1, #24 + 401132: 0e09 lsrs r1, r1, #24 + 401134: 1ee8 subs r0, r5, #3 + 401136: 0600 lsls r0, r0, #24 + 401138: 0e00 lsrs r0, r0, #24 + 40113a: f000 ffbe bl 4020ba + 40113e: 2201 movs r2, #1 + 401140: 1ce1 adds r1, r4, #3 + 401142: 0609 lsls r1, r1, #24 + 401144: 0e09 lsrs r1, r1, #24 + 401146: 1ea8 subs r0, r5, #2 + 401148: 0600 lsls r0, r0, #24 + 40114a: 0e00 lsrs r0, r0, #24 + 40114c: f000 ffb5 bl 4020ba + 401150: 2201 movs r2, #1 + 401152: 1ce1 adds r1, r4, #3 + 401154: 0609 lsls r1, r1, #24 + 401156: 0e09 lsrs r1, r1, #24 + 401158: 1e68 subs r0, r5, #1 + 40115a: 0600 lsls r0, r0, #24 + 40115c: 0e00 lsrs r0, r0, #24 + 40115e: f000 ffac bl 4020ba + 401162: 2201 movs r2, #1 + 401164: 1ce1 adds r1, r4, #3 + 401166: 0609 lsls r1, r1, #24 + 401168: 0e09 lsrs r1, r1, #24 + 40116a: 0628 lsls r0, r5, #24 + 40116c: 0e00 lsrs r0, r0, #24 + 40116e: f000 ffa4 bl 4020ba + 401172: 2201 movs r2, #1 + 401174: 1ce1 adds r1, r4, #3 + 401176: 0609 lsls r1, r1, #24 + 401178: 0e09 lsrs r1, r1, #24 + 40117a: 1c68 adds r0, r5, #1 + 40117c: 0600 lsls r0, r0, #24 + 40117e: 0e00 lsrs r0, r0, #24 + 401180: f000 ff9b bl 4020ba + 401184: 1d27 adds r7, r4, #4 + 401186: 2201 movs r2, #1 + 401188: 0639 lsls r1, r7, #24 + 40118a: 0e09 lsrs r1, r1, #24 + 40118c: 1f28 subs r0, r5, #4 + 40118e: 0600 lsls r0, r0, #24 + 401190: 0e00 lsrs r0, r0, #24 + 401192: f000 ff92 bl 4020ba + 401196: 2201 movs r2, #1 + 401198: 0639 lsls r1, r7, #24 + 40119a: 0e09 lsrs r1, r1, #24 + 40119c: 1ee8 subs r0, r5, #3 + 40119e: 0600 lsls r0, r0, #24 + 4011a0: 0e00 lsrs r0, r0, #24 + 4011a2: f000 ff8a bl 4020ba + 4011a6: 2201 movs r2, #1 + 4011a8: 0639 lsls r1, r7, #24 + 4011aa: 0e09 lsrs r1, r1, #24 + 4011ac: 1ea8 subs r0, r5, #2 + 4011ae: 0600 lsls r0, r0, #24 + 4011b0: 0e00 lsrs r0, r0, #24 + 4011b2: f000 ff82 bl 4020ba + 4011b6: 2201 movs r2, #1 + 4011b8: 0639 lsls r1, r7, #24 + 4011ba: 0e09 lsrs r1, r1, #24 + 4011bc: 1e68 subs r0, r5, #1 + 4011be: 0600 lsls r0, r0, #24 + 4011c0: 0e00 lsrs r0, r0, #24 + 4011c2: f000 ff7a bl 4020ba + 4011c6: 2201 movs r2, #1 + 4011c8: 0639 lsls r1, r7, #24 + 4011ca: 0e09 lsrs r1, r1, #24 + 4011cc: 0628 lsls r0, r5, #24 + 4011ce: 0e00 lsrs r0, r0, #24 + 4011d0: f000 ff73 bl 4020ba + 4011d4: 1d67 adds r7, r4, #5 + 4011d6: 2201 movs r2, #1 + 4011d8: 0639 lsls r1, r7, #24 + 4011da: 0e09 lsrs r1, r1, #24 + 4011dc: 1ee8 subs r0, r5, #3 + 4011de: 0600 lsls r0, r0, #24 + 4011e0: 0e00 lsrs r0, r0, #24 + 4011e2: f000 ff6a bl 4020ba + 4011e6: 2201 movs r2, #1 + 4011e8: 0639 lsls r1, r7, #24 + 4011ea: 0e09 lsrs r1, r1, #24 + 4011ec: 1ea8 subs r0, r5, #2 + 4011ee: 0600 lsls r0, r0, #24 + 4011f0: 0e00 lsrs r0, r0, #24 + 4011f2: f000 ff62 bl 4020ba + 4011f6: 2201 movs r2, #1 + 4011f8: 0639 lsls r1, r7, #24 + 4011fa: 0e09 lsrs r1, r1, #24 + 4011fc: 1e68 subs r0, r5, #1 + 4011fe: 0600 lsls r0, r0, #24 + 401200: 0e00 lsrs r0, r0, #24 + 401202: f000 ff5a bl 4020ba + 401206: 1da7 adds r7, r4, #6 + 401208: 2201 movs r2, #1 + 40120a: 0639 lsls r1, r7, #24 + 40120c: 0e09 lsrs r1, r1, #24 + 40120e: 1ea8 subs r0, r5, #2 + 401210: 0600 lsls r0, r0, #24 + 401212: 0e00 lsrs r0, r0, #24 + 401214: f000 ff51 bl 4020ba + 401218: 0630 lsls r0, r6, #24 + 40121a: 0e00 lsrs r0, r0, #24 + 40121c: 2802 cmp r0, #2 + 40121e: d003 beq.n 401228 + 401220: 2804 cmp r0, #4 + 401222: d004 beq.n 40122e + 401224: 2806 cmp r0, #6 + 401226: d105 bne.n 401234 + +00401228 : + 401228: 003c lsls r4, r7, #0 + 40122a: 1fad subs r5, r5, #6 + 40122c: e004 b.n 401238 + +0040122e : + 40122e: 1ce4 adds r4, r4, #3 + 401230: 3d09 subs r5, #9 + 401232: e001 b.n 401238 + +00401234 : + 401234: 1ce4 adds r4, r4, #3 + 401236: 1d2d adds r5, r5, #4 + +00401238 : + 401238: 1c76 adds r6, r6, #1 + 40123a: 0630 lsls r0, r6, #24 + 40123c: 0e00 lsrs r0, r0, #24 + 40123e: 2808 cmp r0, #8 + 401240: d200 bcs.n 401244 + 401242: e72c b.n 40109e + 401244: 2001 movs r0, #1 + 401246: f000 ff1d bl 402084 + 40124a: 3c14 subs r4, #20 + 40124c: 0027 lsls r7, r4, #0 + 40124e: 350f adds r5, #15 + 401250: 466e mov r6, sp + 401252: 2409 movs r4, #9 + +00401254 : + 401254: 063a lsls r2, r7, #24 + 401256: 0e12 lsrs r2, r2, #24 + 401258: 0629 lsls r1, r5, #24 + 40125a: 0e09 lsrs r1, r1, #24 + 40125c: 7830 ldrb r0, [r6, #0] + 40125e: f000 ffc1 bl 4021e4 + 401262: 1dad adds r5, r5, #6 + 401264: 1c76 adds r6, r6, #1 + 401266: 1e64 subs r4, r4, #1 + 401268: d1f4 bne.n 401254 + 40126a: 2000 movs r0, #0 + 40126c: f000 ff0a bl 402084 + +00401270 : + 401270: b003 add sp, #12 + 401272: 46c0 nop (mov r8, r8) + +00401274 : + 401274: 9804 ldr r0, [sp, #16] + 401276: bcf0 pop {r4, r5, r6, r7} + 401278: b001 add sp, #4 + 40127a: 4700 bx r0 + +0040127c : + 40127c: 00403f24 .word 0x00403f24 + +00401280 : + 401280: b5f8 push {r3, r4, r5, r6, r7, lr} + 401282: 0005 lsls r5, r0, #0 + 401284: 000c lsls r4, r1, #0 + 401286: 2600 movs r6, #0 + +00401288 : + 401288: 2200 movs r2, #0 + 40128a: 0621 lsls r1, r4, #24 + 40128c: 0e09 lsrs r1, r1, #24 + 40128e: 0628 lsls r0, r5, #24 + 401290: 0e00 lsrs r0, r0, #24 + 401292: f000 ff12 bl 4020ba + 401296: 1c67 adds r7, r4, #1 + 401298: 2200 movs r2, #0 + 40129a: 0639 lsls r1, r7, #24 + 40129c: 0e09 lsrs r1, r1, #24 + 40129e: 0628 lsls r0, r5, #24 + 4012a0: 0e00 lsrs r0, r0, #24 + 4012a2: f000 ff0a bl 4020ba + 4012a6: 2200 movs r2, #0 + 4012a8: 0639 lsls r1, r7, #24 + 4012aa: 0e09 lsrs r1, r1, #24 + 4012ac: 1c68 adds r0, r5, #1 + 4012ae: 0600 lsls r0, r0, #24 + 4012b0: 0e00 lsrs r0, r0, #24 + 4012b2: f000 ff02 bl 4020ba + 4012b6: 2200 movs r2, #0 + 4012b8: 0639 lsls r1, r7, #24 + 4012ba: 0e09 lsrs r1, r1, #24 + 4012bc: 1e68 subs r0, r5, #1 + 4012be: 0600 lsls r0, r0, #24 + 4012c0: 0e00 lsrs r0, r0, #24 + 4012c2: f000 fefa bl 4020ba + 4012c6: 1ca7 adds r7, r4, #2 + 4012c8: 2200 movs r2, #0 + 4012ca: 0639 lsls r1, r7, #24 + 4012cc: 0e09 lsrs r1, r1, #24 + 4012ce: 1ea8 subs r0, r5, #2 + 4012d0: 0600 lsls r0, r0, #24 + 4012d2: 0e00 lsrs r0, r0, #24 + 4012d4: f000 fef1 bl 4020ba + 4012d8: 2200 movs r2, #0 + 4012da: 0639 lsls r1, r7, #24 + 4012dc: 0e09 lsrs r1, r1, #24 + 4012de: 1e68 subs r0, r5, #1 + 4012e0: 0600 lsls r0, r0, #24 + 4012e2: 0e00 lsrs r0, r0, #24 + 4012e4: f000 fee9 bl 4020ba + 4012e8: 2200 movs r2, #0 + 4012ea: 0639 lsls r1, r7, #24 + 4012ec: 0e09 lsrs r1, r1, #24 + 4012ee: 0628 lsls r0, r5, #24 + 4012f0: 0e00 lsrs r0, r0, #24 + 4012f2: f000 fee2 bl 4020ba + 4012f6: 2200 movs r2, #0 + 4012f8: 0639 lsls r1, r7, #24 + 4012fa: 0e09 lsrs r1, r1, #24 + 4012fc: 1c68 adds r0, r5, #1 + 4012fe: 0600 lsls r0, r0, #24 + 401300: 0e00 lsrs r0, r0, #24 + 401302: f000 feda bl 4020ba + 401306: 2200 movs r2, #0 + 401308: 0639 lsls r1, r7, #24 + 40130a: 0e09 lsrs r1, r1, #24 + 40130c: 1ca8 adds r0, r5, #2 + 40130e: 0600 lsls r0, r0, #24 + 401310: 0e00 lsrs r0, r0, #24 + 401312: f000 fed2 bl 4020ba + 401316: 2200 movs r2, #0 + 401318: 1ce1 adds r1, r4, #3 + 40131a: 0609 lsls r1, r1, #24 + 40131c: 0e09 lsrs r1, r1, #24 + 40131e: 1ee8 subs r0, r5, #3 + 401320: 0600 lsls r0, r0, #24 + 401322: 0e00 lsrs r0, r0, #24 + 401324: f000 fec9 bl 4020ba + 401328: 2200 movs r2, #0 + 40132a: 1ce1 adds r1, r4, #3 + 40132c: 0609 lsls r1, r1, #24 + 40132e: 0e09 lsrs r1, r1, #24 + 401330: 1ea8 subs r0, r5, #2 + 401332: 0600 lsls r0, r0, #24 + 401334: 0e00 lsrs r0, r0, #24 + 401336: f000 fec0 bl 4020ba + 40133a: 2200 movs r2, #0 + 40133c: 1ce1 adds r1, r4, #3 + 40133e: 0609 lsls r1, r1, #24 + 401340: 0e09 lsrs r1, r1, #24 + 401342: 1e68 subs r0, r5, #1 + 401344: 0600 lsls r0, r0, #24 + 401346: 0e00 lsrs r0, r0, #24 + 401348: f000 feb7 bl 4020ba + 40134c: 2200 movs r2, #0 + 40134e: 1ce1 adds r1, r4, #3 + 401350: 0609 lsls r1, r1, #24 + 401352: 0e09 lsrs r1, r1, #24 + 401354: 0628 lsls r0, r5, #24 + 401356: 0e00 lsrs r0, r0, #24 + 401358: f000 feaf bl 4020ba + 40135c: 2200 movs r2, #0 + 40135e: 1ce1 adds r1, r4, #3 + 401360: 0609 lsls r1, r1, #24 + 401362: 0e09 lsrs r1, r1, #24 + 401364: 1c68 adds r0, r5, #1 + 401366: 0600 lsls r0, r0, #24 + 401368: 0e00 lsrs r0, r0, #24 + 40136a: f000 fea6 bl 4020ba + 40136e: 1d27 adds r7, r4, #4 + 401370: 2200 movs r2, #0 + 401372: 0639 lsls r1, r7, #24 + 401374: 0e09 lsrs r1, r1, #24 + 401376: 1f28 subs r0, r5, #4 + 401378: 0600 lsls r0, r0, #24 + 40137a: 0e00 lsrs r0, r0, #24 + 40137c: f000 fe9d bl 4020ba + 401380: 2200 movs r2, #0 + 401382: 0639 lsls r1, r7, #24 + 401384: 0e09 lsrs r1, r1, #24 + 401386: 1ee8 subs r0, r5, #3 + 401388: 0600 lsls r0, r0, #24 + 40138a: 0e00 lsrs r0, r0, #24 + 40138c: f000 fe95 bl 4020ba + 401390: 2200 movs r2, #0 + 401392: 0639 lsls r1, r7, #24 + 401394: 0e09 lsrs r1, r1, #24 + 401396: 1ea8 subs r0, r5, #2 + 401398: 0600 lsls r0, r0, #24 + 40139a: 0e00 lsrs r0, r0, #24 + 40139c: f000 fe8d bl 4020ba + 4013a0: 2200 movs r2, #0 + 4013a2: 0639 lsls r1, r7, #24 + 4013a4: 0e09 lsrs r1, r1, #24 + 4013a6: 1e68 subs r0, r5, #1 + 4013a8: 0600 lsls r0, r0, #24 + 4013aa: 0e00 lsrs r0, r0, #24 + 4013ac: f000 fe85 bl 4020ba + 4013b0: 2200 movs r2, #0 + 4013b2: 0639 lsls r1, r7, #24 + 4013b4: 0e09 lsrs r1, r1, #24 + 4013b6: 0628 lsls r0, r5, #24 + 4013b8: 0e00 lsrs r0, r0, #24 + 4013ba: f000 fe7e bl 4020ba + 4013be: 1d67 adds r7, r4, #5 + 4013c0: 2200 movs r2, #0 + 4013c2: 0639 lsls r1, r7, #24 + 4013c4: 0e09 lsrs r1, r1, #24 + 4013c6: 1ee8 subs r0, r5, #3 + 4013c8: 0600 lsls r0, r0, #24 + 4013ca: 0e00 lsrs r0, r0, #24 + 4013cc: f000 fe75 bl 4020ba + 4013d0: 2200 movs r2, #0 + 4013d2: 0639 lsls r1, r7, #24 + 4013d4: 0e09 lsrs r1, r1, #24 + 4013d6: 1ea8 subs r0, r5, #2 + 4013d8: 0600 lsls r0, r0, #24 + 4013da: 0e00 lsrs r0, r0, #24 + 4013dc: f000 fe6d bl 4020ba + 4013e0: 2200 movs r2, #0 + 4013e2: 0639 lsls r1, r7, #24 + 4013e4: 0e09 lsrs r1, r1, #24 + 4013e6: 1e68 subs r0, r5, #1 + 4013e8: 0600 lsls r0, r0, #24 + 4013ea: 0e00 lsrs r0, r0, #24 + 4013ec: f000 fe65 bl 4020ba + 4013f0: 1da7 adds r7, r4, #6 + 4013f2: 2200 movs r2, #0 + 4013f4: 0639 lsls r1, r7, #24 + 4013f6: 0e09 lsrs r1, r1, #24 + 4013f8: 1ea8 subs r0, r5, #2 + 4013fa: 0600 lsls r0, r0, #24 + 4013fc: 0e00 lsrs r0, r0, #24 + 4013fe: f000 fe5c bl 4020ba + 401402: 0630 lsls r0, r6, #24 + 401404: 0e00 lsrs r0, r0, #24 + 401406: 2802 cmp r0, #2 + 401408: d003 beq.n 401412 + 40140a: 2804 cmp r0, #4 + 40140c: d004 beq.n 401418 + 40140e: 2806 cmp r0, #6 + 401410: d105 bne.n 40141e + +00401412 : + 401412: 003c lsls r4, r7, #0 + 401414: 1fad subs r5, r5, #6 + 401416: e004 b.n 401422 + +00401418 : + 401418: 1ce4 adds r4, r4, #3 + 40141a: 3d09 subs r5, #9 + 40141c: e001 b.n 401422 + +0040141e : + 40141e: 1ce4 adds r4, r4, #3 + 401420: 1d2d adds r5, r5, #4 + +00401422 : + 401422: 1c76 adds r6, r6, #1 + 401424: 0630 lsls r0, r6, #24 + 401426: 0e00 lsrs r0, r0, #24 + 401428: 2808 cmp r0, #8 + 40142a: d200 bcs.n 40142e + 40142c: e72c b.n 401288 + 40142e: b001 add sp, #4 + 401430: e720 b.n 401274 + ... + +00401434 : + 401434: b5f8 push {r3, r4, r5, r6, r7, lr} + 401436: 0007 lsls r7, r0, #0 + 401438: 4d98 ldr r5, [pc, #608] (40169c ) + 40143a: 0029 lsls r1, r5, #0 + 40143c: 2000 movs r0, #0 + 40143e: f000 fbb9 bl 401bb4 + 401442: 2400 movs r4, #0 + +00401444 : + 401444: 2201 movs r2, #1 + 401446: 210a movs r1, #10 + 401448: 0620 lsls r0, r4, #24 + 40144a: 0e00 lsrs r0, r0, #24 + 40144c: f000 fe35 bl 4020ba + 401450: 2201 movs r2, #1 + 401452: 210b movs r1, #11 + 401454: 0620 lsls r0, r4, #24 + 401456: 0e00 lsrs r0, r0, #24 + 401458: f000 fe2f bl 4020ba + 40145c: 1c64 adds r4, r4, #1 + 40145e: 0620 lsls r0, r4, #24 + 401460: 0e00 lsrs r0, r0, #24 + 401462: 2864 cmp r0, #100 + 401464: d3ee bcc.n 401444 + 401466: 4e8e ldr r6, [pc, #568] (4016a0 ) + 401468: 2301 movs r3, #1 + 40146a: 2207 movs r2, #7 + 40146c: 7d71 ldrb r1, [r6, #21] + 40146e: 310b adds r1, #11 + 401470: 0409 lsls r1, r1, #16 + 401472: 0c09 lsrs r1, r1, #16 + 401474: a08b add r0, pc, #556 (adr r0, 4016a4 ) + 401476: f000 fbd5 bl 401c24 + 40147a: 1f7f subs r7, r7, #5 + 40147c: d00a beq.n 401494 + 40147e: 1ebf subs r7, r7, #2 + 401480: d011 beq.n 4014a6 + 401482: 1ebf subs r7, r7, #2 + 401484: d05e beq.n 401544 + 401486: 1ebf subs r7, r7, #2 + 401488: d100 bne.n 40148c + 40148a: e0a2 b.n 4015d2 + 40148c: 1ebf subs r7, r7, #2 + 40148e: d100 bne.n 401492 + 401490: e0f3 b.n 40167a + 401492: e055 b.n 401540 + +00401494 : + 401494: 3514 adds r5, #20 + 401496: 0029 lsls r1, r5, #0 + 401498: 2002 movs r0, #2 + 40149a: f000 fb8b bl 401bb4 + 40149e: 2004 movs r0, #4 + 4014a0: f000 f904 bl 4016ac + 4014a4: e04c b.n 401540 + +004014a6 : + 4014a6: 0029 lsls r1, r5, #0 + 4014a8: 3128 adds r1, #40 + 4014aa: 2002 movs r0, #2 + 4014ac: f000 fb82 bl 401bb4 + 4014b0: 7cf0 ldrb r0, [r6, #19] + 4014b2: 2801 cmp r0, #1 + 4014b4: d10c bne.n 4014d0 + 4014b6: 8d31 ldrh r1, [r6, #40] + 4014b8: 0a08 lsrs r0, r1, #8 + 4014ba: 2864 cmp r0, #100 + 4014bc: d204 bcs.n 4014c8 + 4014be: 2301 movs r3, #1 + 4014c0: 2204 movs r2, #4 + 4014c2: 353c adds r5, #60 + 4014c4: 0028 lsls r0, r5, #0 + 4014c6: e00f b.n 4014e8 + +004014c8 : + 4014c8: 2301 movs r3, #1 + 4014ca: 2204 movs r2, #4 + 4014cc: a076 add r0, pc, #472 (adr r0, 4016a8 ) + 4014ce: e00b b.n 4014e8 + +004014d0 : + 4014d0: 8c71 ldrh r1, [r6, #34] + 4014d2: 0a08 lsrs r0, r1, #8 + 4014d4: 2864 cmp r0, #100 + 4014d6: d204 bcs.n 4014e2 + 4014d8: 2301 movs r3, #1 + 4014da: 2204 movs r2, #4 + 4014dc: 353c adds r5, #60 + 4014de: 0028 lsls r0, r5, #0 + 4014e0: e002 b.n 4014e8 + +004014e2 : + 4014e2: 2301 movs r3, #1 + 4014e4: 2204 movs r2, #4 + 4014e6: a070 add r0, pc, #448 (adr r0, 4016a8 ) + +004014e8 : + 4014e8: f000 fc68 bl 401dbc + 4014ec: 7cf0 ldrb r0, [r6, #19] + 4014ee: 2801 cmp r0, #1 + 4014f0: d112 bne.n 401518 + 4014f2: 2220 movs r2, #32 + 4014f4: 2139 movs r1, #57 + 4014f6: 204d movs r0, #77 + 4014f8: f000 fe74 bl 4021e4 + 4014fc: 2220 movs r2, #32 + 4014fe: 213f movs r1, #63 + 401500: 202f movs r0, #47 + 401502: f000 fe6f bl 4021e4 + 401506: 2220 movs r2, #32 + 401508: 2145 movs r1, #69 + 40150a: 2068 movs r0, #104 + 40150c: f000 fe6a bl 4021e4 + 401510: 2220 movs r2, #32 + 401512: 214b movs r1, #75 + 401514: 2020 movs r0, #32 + 401516: e011 b.n 40153c + +00401518 : + 401518: 2220 movs r2, #32 + 40151a: 2139 movs r1, #57 + 40151c: 204b movs r0, #75 + 40151e: f000 fe61 bl 4021e4 + 401522: 2220 movs r2, #32 + 401524: 213f movs r1, #63 + 401526: 206d movs r0, #109 + 401528: f000 fe5c bl 4021e4 + 40152c: 2220 movs r2, #32 + 40152e: 2145 movs r1, #69 + 401530: 202f movs r0, #47 + 401532: f000 fe57 bl 4021e4 + 401536: 2220 movs r2, #32 + 401538: 214b movs r1, #75 + 40153a: 2068 movs r0, #104 + +0040153c : + 40153c: f000 fe52 bl 4021e4 + +00401540 : + 401540: b001 add sp, #4 + 401542: e697 b.n 401274 + +00401544 : + 401544: 0029 lsls r1, r5, #0 + 401546: 3144 adds r1, #68 + 401548: 2002 movs r0, #2 + 40154a: f000 fb33 bl 401bb4 + 40154e: 7cf0 ldrb r0, [r6, #19] + 401550: 2801 cmp r0, #1 + 401552: d10c bne.n 40156e + 401554: 8cf1 ldrh r1, [r6, #38] + 401556: 0a08 lsrs r0, r1, #8 + 401558: 2864 cmp r0, #100 + 40155a: d204 bcs.n 401566 + 40155c: 2301 movs r3, #1 + 40155e: 2204 movs r2, #4 + 401560: 353c adds r5, #60 + 401562: 0028 lsls r0, r5, #0 + 401564: e00f b.n 401586 + +00401566 : + 401566: 2301 movs r3, #1 + 401568: 2204 movs r2, #4 + 40156a: a04f add r0, pc, #316 (adr r0, 4016a8 ) + 40156c: e00b b.n 401586 + +0040156e : + 40156e: 8c31 ldrh r1, [r6, #32] + 401570: 0a08 lsrs r0, r1, #8 + 401572: 2864 cmp r0, #100 + 401574: d204 bcs.n 401580 + 401576: 2301 movs r3, #1 + 401578: 2204 movs r2, #4 + 40157a: 353c adds r5, #60 + 40157c: 0028 lsls r0, r5, #0 + 40157e: e002 b.n 401586 + +00401580 : + 401580: 2301 movs r3, #1 + 401582: 2204 movs r2, #4 + 401584: a048 add r0, pc, #288 (adr r0, 4016a8 ) + +00401586 : + 401586: f000 fc19 bl 401dbc + 40158a: 7cf0 ldrb r0, [r6, #19] + 40158c: 2801 cmp r0, #1 + 40158e: d10d bne.n 4015ac + 401590: 2220 movs r2, #32 + 401592: 2138 movs r1, #56 + 401594: 2050 movs r0, #80 + 401596: f000 fe25 bl 4021e4 + 40159a: 2220 movs r2, #32 + 40159c: 213e movs r1, #62 + 40159e: 2053 movs r0, #83 + 4015a0: f000 fe20 bl 4021e4 + 4015a4: 2220 movs r2, #32 + 4015a6: 2144 movs r1, #68 + 4015a8: 2049 movs r0, #73 + 4015aa: e7c7 b.n 40153c + +004015ac : + 4015ac: 2220 movs r2, #32 + 4015ae: 2138 movs r1, #56 + 4015b0: 206d movs r0, #109 + 4015b2: f000 fe17 bl 4021e4 + 4015b6: 2220 movs r2, #32 + 4015b8: 213e movs r1, #62 + 4015ba: 2062 movs r0, #98 + 4015bc: f000 fe12 bl 4021e4 + 4015c0: 2220 movs r2, #32 + 4015c2: 2144 movs r1, #68 + 4015c4: 2061 movs r0, #97 + 4015c6: f000 fe0d bl 4021e4 + 4015ca: 2220 movs r2, #32 + 4015cc: 214a movs r1, #74 + 4015ce: 2072 movs r0, #114 + 4015d0: e7b4 b.n 40153c + +004015d2 : + 4015d2: 0029 lsls r1, r5, #0 + 4015d4: 3154 adds r1, #84 + 4015d6: 2002 movs r0, #2 + 4015d8: f000 faec bl 401bb4 + 4015dc: 7cf0 ldrb r0, [r6, #19] + 4015de: 2801 cmp r0, #1 + 4015e0: d10c bne.n 4015fc + 4015e2: 8cb1 ldrh r1, [r6, #36] + 4015e4: 0a08 lsrs r0, r1, #8 + 4015e6: 2864 cmp r0, #100 + 4015e8: d204 bcs.n 4015f4 + 4015ea: 2301 movs r3, #1 + 4015ec: 2204 movs r2, #4 + 4015ee: 353c adds r5, #60 + 4015f0: 0028 lsls r0, r5, #0 + 4015f2: e00f b.n 401614 + +004015f4 : + 4015f4: 2301 movs r3, #1 + 4015f6: 2204 movs r2, #4 + 4015f8: a02b add r0, pc, #172 (adr r0, 4016a8 ) + 4015fa: e00b b.n 401614 + +004015fc : + 4015fc: 8bf1 ldrh r1, [r6, #30] + 4015fe: 0a08 lsrs r0, r1, #8 + 401600: 2864 cmp r0, #100 + 401602: d204 bcs.n 40160e + 401604: 2301 movs r3, #1 + 401606: 2204 movs r2, #4 + 401608: 353c adds r5, #60 + 40160a: 0028 lsls r0, r5, #0 + 40160c: e002 b.n 401614 + +0040160e : + 40160e: 2301 movs r3, #1 + 401610: 2204 movs r2, #4 + 401612: a025 add r0, pc, #148 (adr r0, 4016a8 ) + +00401614 : + 401614: f000 fbd2 bl 401dbc + 401618: 7df0 ldrb r0, [r6, #23] + 40161a: 2800 cmp r0, #0 + 40161c: d004 beq.n 401628 + 40161e: 2220 movs r2, #32 + 401620: 210f movs r1, #15 + 401622: 202d movs r0, #45 + 401624: f000 fdde bl 4021e4 + +00401628 : + 401628: 2420 movs r4, #32 + +0040162a : + 40162a: 2201 movs r2, #1 + 40162c: 0621 lsls r1, r4, #24 + 40162e: 0e09 lsrs r1, r1, #24 + 401630: 203a movs r0, #58 + 401632: f000 fd42 bl 4020ba + 401636: 0620 lsls r0, r4, #24 + 401638: 0e00 lsrs r0, r0, #24 + 40163a: 2821 cmp r0, #33 + 40163c: d101 bne.n 401642 + 40163e: 2200 movs r2, #0 + 401640: e000 b.n 401644 + +00401642 : + 401642: 2201 movs r2, #1 + +00401644 : + 401644: 0621 lsls r1, r4, #24 + 401646: 0e09 lsrs r1, r1, #24 + 401648: 203b movs r0, #59 + 40164a: f000 fd36 bl 4020ba + 40164e: 2201 movs r2, #1 + 401650: 0621 lsls r1, r4, #24 + 401652: 0e09 lsrs r1, r1, #24 + 401654: 203c movs r0, #60 + 401656: f000 fd30 bl 4020ba + 40165a: 1c64 adds r4, r4, #1 + 40165c: 0620 lsls r0, r4, #24 + 40165e: 0e00 lsrs r0, r0, #24 + 401660: 2823 cmp r0, #35 + 401662: d3e2 bcc.n 40162a + 401664: 7cf0 ldrb r0, [r6, #19] + 401666: 2801 cmp r0, #1 + 401668: d103 bne.n 401672 + 40166a: 2220 movs r2, #32 + 40166c: 2140 movs r1, #64 + 40166e: 2046 movs r0, #70 + 401670: e764 b.n 40153c + +00401672 : + 401672: 2220 movs r2, #32 + 401674: 2140 movs r1, #64 + 401676: 2043 movs r0, #67 + 401678: e760 b.n 40153c + +0040167a : + 40167a: 0029 lsls r1, r5, #0 + 40167c: 3168 adds r1, #104 + 40167e: 2002 movs r0, #2 + 401680: f000 fa98 bl 401bb4 + 401684: 2301 movs r3, #1 + 401686: 2204 movs r2, #4 + 401688: 8d71 ldrh r1, [r6, #42] + 40168a: 357c adds r5, #124 + 40168c: 0028 lsls r0, r5, #0 + 40168e: f000 fb95 bl 401dbc + 401692: 2220 movs r2, #32 + 401694: 213f movs r1, #63 + 401696: 2056 movs r0, #86 + 401698: e750 b.n 40153c + 40169a: 46c0 nop (mov r8, r8) + +0040169c : + 40169c: 00403aa4 .word 0x00403aa4 + 4016a0: 00405244 .word 0x00405244 + 4016a4: 003a4843 .word 0x003a4843 + 4016a8: 00202020 .word 0x00202020 + +004016ac : + 4016ac: b5f8 push {r3, r4, r5, r6, r7, lr} + 4016ae: 0004 lsls r4, r0, #0 + 4016b0: f000 fe32 bl 402318 + 4016b4: 4d42 ldr r5, [pc, #264] (4017c0 ) + 4016b6: 8da9 ldrh r1, [r5, #44] + 4016b8: 2917 cmp r1, #23 + 4016ba: d303 bcc.n 4016c4 + 4016bc: 20a9 movs r0, #169 + 4016be: 0040 lsls r0, r0, #1 + 4016c0: 4281 cmp r1, r0 + 4016c2: d30a bcc.n 4016da + +004016c4 : + 4016c4: 483f ldr r0, [pc, #252] (4017c4 ) + 4016c6: 2964 cmp r1, #100 + 4016c8: d302 bcc.n 4016d0 + 4016ca: 2301 movs r3, #1 + 4016cc: 0022 lsls r2, r4, #0 + 4016ce: e002 b.n 4016d6 + +004016d0 : + 4016d0: 2301 movs r3, #1 + 4016d2: 0022 lsls r2, r4, #0 + 4016d4: 3008 adds r0, #8 + +004016d6 : + 4016d6: f000 faa5 bl 401c24 + +004016da : + 4016da: 8da9 ldrh r1, [r5, #44] + 4016dc: 2944 cmp r1, #68 + 4016de: d206 bcs.n 4016ee + 4016e0: 2917 cmp r1, #23 + 4016e2: d34b bcc.n 40177c + 4016e4: 2301 movs r3, #1 + 4016e6: 0022 lsls r2, r4, #0 + 4016e8: 4837 ldr r0, [pc, #220] (4017c8 ) + 4016ea: f000 fa9b bl 401c24 + +004016ee : + 4016ee: 8da9 ldrh r1, [r5, #44] + 4016f0: 2971 cmp r1, #113 + 4016f2: d20d bcs.n 401710 + 4016f4: 2944 cmp r1, #68 + 4016f6: d341 bcc.n 40177c + 4016f8: 4832 ldr r0, [pc, #200] (4017c4 ) + 4016fa: 2964 cmp r1, #100 + 4016fc: d303 bcc.n 401706 + 4016fe: 2301 movs r3, #1 + 401700: 0022 lsls r2, r4, #0 + 401702: 3020 adds r0, #32 + 401704: e002 b.n 40170c + +00401706 : + 401706: 2301 movs r3, #1 + 401708: 0022 lsls r2, r4, #0 + 40170a: 3028 adds r0, #40 + +0040170c : + 40170c: f000 fa8a bl 401c24 + +00401710 : + 401710: 8da9 ldrh r1, [r5, #44] + 401712: 299e cmp r1, #158 + 401714: d206 bcs.n 401724 + 401716: 2971 cmp r1, #113 + 401718: d330 bcc.n 40177c + 40171a: 2301 movs r3, #1 + 40171c: 0022 lsls r2, r4, #0 + 40171e: 482b ldr r0, [pc, #172] (4017cc ) + 401720: f000 fa80 bl 401c24 + +00401724 : + 401724: 8da9 ldrh r1, [r5, #44] + 401726: 29cb cmp r1, #203 + 401728: d206 bcs.n 401738 + 40172a: 299e cmp r1, #158 + 40172c: d326 bcc.n 40177c + 40172e: 2301 movs r3, #1 + 401730: 0022 lsls r2, r4, #0 + 401732: 4827 ldr r0, [pc, #156] (4017d0 ) + 401734: f000 fa76 bl 401c24 + +00401738 : + 401738: 8da9 ldrh r1, [r5, #44] + 40173a: 29f8 cmp r1, #248 + 40173c: d206 bcs.n 40174c + 40173e: 29cb cmp r1, #203 + 401740: d31c bcc.n 40177c + 401742: 2301 movs r3, #1 + 401744: 0022 lsls r2, r4, #0 + 401746: 4823 ldr r0, [pc, #140] (4017d4 ) + 401748: f000 fa6c bl 401c24 + +0040174c : + 40174c: 8da9 ldrh r1, [r5, #44] + 40174e: 26ff movs r6, #255 + 401750: 3626 adds r6, #38 + 401752: 42b1 cmp r1, r6 + 401754: d206 bcs.n 401764 + 401756: 29f8 cmp r1, #248 + 401758: d310 bcc.n 40177c + 40175a: 2301 movs r3, #1 + 40175c: 0022 lsls r2, r4, #0 + 40175e: 481e ldr r0, [pc, #120] (4017d8 ) + 401760: f000 fa60 bl 401c24 + +00401764 : + 401764: 8da9 ldrh r1, [r5, #44] + 401766: 20a9 movs r0, #169 + 401768: 0040 lsls r0, r0, #1 + 40176a: 4281 cmp r1, r0 + 40176c: d206 bcs.n 40177c + 40176e: 42b1 cmp r1, r6 + 401770: d304 bcc.n 40177c + 401772: 2301 movs r3, #1 + 401774: 0022 lsls r2, r4, #0 + 401776: 4819 ldr r0, [pc, #100] (4017dc ) + 401778: f000 fa54 bl 401c24 + +0040177c : + 40177c: 00e7 lsls r7, r4, #3 + 40177e: 063f lsls r7, r7, #24 + 401780: 0e3f lsrs r7, r7, #24 + 401782: 003c lsls r4, r7, #0 + 401784: 1c7e adds r6, r7, #1 + 401786: 1cff adds r7, r7, #3 + 401788: e00c b.n 4017a4 + +0040178a : + 40178a: 2201 movs r2, #1 + +0040178c : + 40178c: 0021 lsls r1, r4, #0 + 40178e: 203e movs r0, #62 + 401790: f000 fc93 bl 4020ba + 401794: 2201 movs r2, #1 + 401796: 0021 lsls r1, r4, #0 + 401798: 203f movs r0, #63 + 40179a: f000 fc8e bl 4020ba + 40179e: 1c64 adds r4, r4, #1 + 4017a0: 0624 lsls r4, r4, #24 + 4017a2: 0e24 lsrs r4, r4, #24 + +004017a4 : + 4017a4: 42bc cmp r4, r7 + 4017a6: da08 bge.n 4017ba + 4017a8: 2201 movs r2, #1 + 4017aa: 0021 lsls r1, r4, #0 + 4017ac: 203d movs r0, #61 + 4017ae: f000 fc84 bl 4020ba + 4017b2: 42b4 cmp r4, r6 + 4017b4: d1e9 bne.n 40178a + 4017b6: 2200 movs r2, #0 + 4017b8: e7e8 b.n 40178c + +004017ba : + 4017ba: b001 add sp, #4 + 4017bc: e55a b.n 401274 + 4017be: 46c0 nop (mov r8, r8) + +004017c0 : + 4017c0: 00405244 .word 0x00405244 + 4017c4: 00403ba8 .word 0x00403ba8 + 4017c8: 00403bbc .word 0x00403bbc + 4017cc: 00403bdc .word 0x00403bdc + 4017d0: 00403be4 .word 0x00403be4 + 4017d4: 00403bec .word 0x00403bec + 4017d8: 00403bf4 .word 0x00403bf4 + 4017dc: 00403bfc .word 0x00403bfc + +004017e0 : + 4017e0: b500 push {lr} + 4017e2: b083 sub sp, #12 + 4017e4: 4668 mov r0, sp + 4017e6: 2102 movs r1, #2 + 4017e8: 7001 strb r1, [r0, #0] + 4017ea: 2101 movs r1, #1 + 4017ec: 7101 strb r1, [r0, #4] + 4017ee: f402 fa01 bl 3bf4 + 4017f2: 200a movs r0, #10 + 4017f4: f002 fac6 bl 403d84 + 4017f8: 4903 ldr r1, [pc, #12] (401808 ) + 4017fa: 2000 movs r0, #0 + 4017fc: f405 fa5c bl 6cb8 + 401800: 9803 ldr r0, [sp, #12] + 401802: b004 add sp, #16 + 401804: 4700 bx r0 + 401806: 46c0 nop (mov r8, r8) + +00401808 : + 401808: 0040525c .word 0x0040525c + +0040180c : + 40180c: b538 push {r3, r4, r5, lr} + 40180e: 4d10 ldr r5, [pc, #64] (401850 ) + 401810: 2480 movs r4, #128 + 401812: 0264 lsls r4, r4, #9 + 401814: 0022 lsls r2, r4, #0 + 401816: 7e29 ldrb r1, [r5, #24] + 401818: 2000 movs r0, #0 + 40181a: f405 faf3 bl 6e04 + 40181e: 2301 movs r3, #1 + 401820: 0022 lsls r2, r4, #0 + 401822: 7e29 ldrb r1, [r5, #24] + 401824: 2000 movs r0, #0 + 401826: f405 fbf9 bl 701c + 40182a: 2800 cmp r0, #0 + 40182c: d109 bne.n 401842 + 40182e: 2001 movs r0, #1 + 401830: b501 push {r0, lr} + 401832: 0023 lsls r3, r4, #0 + 401834: 002a lsls r2, r5, #0 + 401836: 3213 adds r2, #19 + 401838: 7e29 ldrb r1, [r5, #24] + 40183a: 2000 movs r0, #0 + 40183c: f405 fb42 bl 6ec4 + 401840: b002 add sp, #8 + +00401842 : + 401842: 46c0 nop (mov r8, r8) + +00401844 : + 401844: b001 add sp, #4 + 401846: 9802 ldr r0, [sp, #8] + 401848: bc30 pop {r4, r5} + 40184a: b001 add sp, #4 + 40184c: 4700 bx r0 + ... + +00401850 : + 401850: 00405244 .word 0x00405244 + +00401854 : + 401854: b580 push {r7, lr} + 401856: 4806 ldr r0, [pc, #24] (401870 ) + 401858: 2101 movs r1, #1 + 40185a: b502 push {r1, lr} + 40185c: 040b lsls r3, r1, #16 + 40185e: 0002 lsls r2, r0, #0 + 401860: 3213 adds r2, #19 + 401862: 7e01 ldrb r1, [r0, #24] + 401864: 2000 movs r0, #0 + 401866: f405 fa7f bl 6d68 + 40186a: b002 add sp, #8 + 40186c: f7ff faee bl 400e4c + +00401870 : + 401870: 00405244 .word 0x00405244 + +00401874 : + 401874: b538 push {r3, r4, r5, lr} + 401876: 2801 cmp r0, #1 + 401878: d106 bne.n 401888 + 40187a: 466c mov r4, sp + 40187c: 20fd movs r0, #253 + 40187e: 7020 strb r0, [r4, #0] + 401880: 2001 movs r0, #1 + 401882: 7060 strb r0, [r4, #1] + 401884: 2059 movs r0, #89 + 401886: e03f b.n 401908 + +00401888 : + 401888: 2802 cmp r0, #2 + 40188a: d118 bne.n 4018be + 40188c: 466c mov r4, sp + 40188e: 20fd movs r0, #253 + 401890: 7020 strb r0, [r4, #0] + 401892: 2002 movs r0, #2 + 401894: 7060 strb r0, [r4, #1] + 401896: 20ff movs r0, #255 + 401898: 70e0 strb r0, [r4, #3] + 40189a: 2910 cmp r1, #16 + 40189c: d302 bcc.n 4018a4 + +0040189e : + 40189e: 204e movs r0, #78 + 4018a0: 70a0 strb r0, [r4, #2] + 4018a2: e034 b.n 40190e + +004018a4 : + 4018a4: 4d20 ldr r5, [pc, #128] (401928 ) + 4018a6: 7569 strb r1, [r5, #21] + 4018a8: 0008 lsls r0, r1, #0 + 4018aa: f002 f8c1 bl 403a30 + 4018ae: 2059 movs r0, #89 + 4018b0: 70a0 strb r0, [r4, #2] + 4018b2: f000 f950 bl 401b56 + 4018b6: 7d28 ldrb r0, [r5, #20] + 4018b8: f7ff fdbc bl 401434 + 4018bc: e027 b.n 40190e + +004018be : + 4018be: 2803 cmp r0, #3 + 4018c0: d110 bne.n 4018e4 + 4018c2: 466c mov r4, sp + 4018c4: 20fd movs r0, #253 + 4018c6: 7020 strb r0, [r4, #0] + 4018c8: 2003 movs r0, #3 + 4018ca: 7060 strb r0, [r4, #1] + 4018cc: 20ff movs r0, #255 + 4018ce: 70e0 strb r0, [r4, #3] + 4018d0: 2913 cmp r1, #19 + 4018d2: d2e4 bcs.n 40189e + 4018d4: 4d14 ldr r5, [pc, #80] (401928 ) + 4018d6: 76a9 strb r1, [r5, #26] + 4018d8: 0008 lsls r0, r1, #0 + 4018da: f002 f8d8 bl 403a8e + 4018de: 2059 movs r0, #89 + 4018e0: 70a0 strb r0, [r4, #2] + 4018e2: e014 b.n 40190e + +004018e4 : + 4018e4: 2804 cmp r0, #4 + 4018e6: d106 bne.n 4018f6 + 4018e8: 466c mov r4, sp + 4018ea: 20fd movs r0, #253 + 4018ec: 7020 strb r0, [r4, #0] + 4018ee: 2004 movs r0, #4 + 4018f0: 7060 strb r0, [r4, #1] + 4018f2: 480e ldr r0, [pc, #56] (40192c ) + 4018f4: e007 b.n 401906 + +004018f6 : + 4018f6: 2805 cmp r0, #5 + 4018f8: d10f bne.n 40191a + 4018fa: 466c mov r4, sp + 4018fc: 20fd movs r0, #253 + 4018fe: 7020 strb r0, [r4, #0] + 401900: 2005 movs r0, #5 + 401902: 7060 strb r0, [r4, #1] + 401904: 480a ldr r0, [pc, #40] (401930 ) + +00401906 : + 401906: 7800 ldrb r0, [r0, #0] + +00401908 : + 401908: 70a0 strb r0, [r4, #2] + 40190a: 20ff movs r0, #255 + 40190c: 70e0 strb r0, [r4, #3] + +0040190e : + 40190e: 2204 movs r2, #4 + 401910: 4669 mov r1, sp + 401912: 2000 movs r0, #0 + 401914: f401 fbb0 bl 3078 + +00401918 : + 401918: e794 b.n 401844 + +0040191a : + 40191a: 2807 cmp r0, #7 + 40191c: d1fc bne.n 401918 + 40191e: 4805 ldr r0, [pc, #20] (401934 ) + 401920: 2101 movs r1, #1 + 401922: 7001 strb r1, [r0, #0] + 401924: e7f8 b.n 401918 + 401926: 46c0 nop (mov r8, r8) + +00401928 : + 401928: 00405244 .word 0x00405244 + 40192c: 00405259 .word 0x00405259 + 401930: 0040525e .word 0x0040525e + 401934: 0040525d .word 0x0040525d + +00401938 : + 401938: b538 push {r3, r4, r5, lr} + 40193a: 0004 lsls r4, r0, #0 + 40193c: 2500 movs r5, #0 + 40193e: e002 b.n 401946 + +00401940 : + 401940: 1c6d adds r5, r5, #1 + 401942: 062d lsls r5, r5, #24 + 401944: 0e2d lsrs r5, r5, #24 + +00401946 : + 401946: 1961 adds r1, r4, r5 + 401948: 2000 movs r0, #0 + 40194a: f401 fcd7 bl 32fc + 40194e: 2800 cmp r0, #0 + 401950: d001 beq.n 401956 + 401952: 2d0d cmp r5, #13 + 401954: d3f4 bcc.n 401940 + +00401956 : + 401956: 0028 lsls r0, r5, #0 + 401958: b001 add sp, #4 + 40195a: 9902 ldr r1, [sp, #8] + 40195c: bc30 pop {r4, r5} + 40195e: b001 add sp, #4 + 401960: 4708 bx r1 + ... + +00401964 : + 401964: b538 push {r3, r4, r5, lr} + 401966: 2100 movs r1, #0 + 401968: 2009 movs r0, #9 + 40196a: f406 feff bl 876c + 40196e: 2100 movs r1, #0 + 401970: 2014 movs r0, #20 + 401972: f406 fefb bl 876c + 401976: 2100 movs r1, #0 + 401978: 2008 movs r0, #8 + 40197a: f406 fef7 bl 876c + 40197e: 2100 movs r1, #0 + 401980: 2015 movs r0, #21 + 401982: f406 fef3 bl 876c + 401986: 2100 movs r1, #0 + 401988: 202d movs r0, #45 + 40198a: f406 feef bl 876c + 40198e: 2100 movs r1, #0 + 401990: 2013 movs r0, #19 + 401992: f406 feeb bl 876c + 401996: 2100 movs r1, #0 + 401998: 2009 movs r0, #9 + 40199a: f406 fd71 bl 8480 + 40199e: 2100 movs r1, #0 + 4019a0: 2014 movs r0, #20 + 4019a2: f406 fd6d bl 8480 + 4019a6: 2100 movs r1, #0 + 4019a8: 2008 movs r0, #8 + 4019aa: f406 fd69 bl 8480 + 4019ae: 2101 movs r1, #1 + 4019b0: 2015 movs r0, #21 + 4019b2: f406 fd65 bl 8480 + 4019b6: 2101 movs r1, #1 + 4019b8: 202d movs r0, #45 + 4019ba: f406 fd61 bl 8480 + 4019be: 2101 movs r1, #1 + 4019c0: 2013 movs r0, #19 + 4019c2: f406 fd5d bl 8480 + 4019c6: 2101 movs r1, #1 + 4019c8: 2014 movs r0, #20 + 4019ca: f406 fdd3 bl 8574 + 4019ce: 2101 movs r1, #1 + 4019d0: 2015 movs r0, #21 + 4019d2: f406 fdcf bl 8574 + 4019d6: 2101 movs r1, #1 + 4019d8: 2008 movs r0, #8 + 4019da: f406 fdcb bl 8574 + 4019de: 2101 movs r1, #1 + 4019e0: 2009 movs r0, #9 + 4019e2: f406 fdc7 bl 8574 + 4019e6: 2101 movs r1, #1 + 4019e8: 200a movs r0, #10 + 4019ea: f406 fdc3 bl 8574 + 4019ee: 2101 movs r1, #1 + 4019f0: 202d movs r0, #45 + 4019f2: f406 fdbf bl 8574 + 4019f6: 2101 movs r1, #1 + 4019f8: 2013 movs r0, #19 + 4019fa: f406 fdbb bl 8574 + 4019fe: 2101 movs r1, #1 + 401a00: 2014 movs r0, #20 + 401a02: f406 fcd1 bl 83a8 + 401a06: 2101 movs r1, #1 + 401a08: 2015 movs r0, #21 + 401a0a: f406 fccd bl 83a8 + 401a0e: 2101 movs r1, #1 + 401a10: 2008 movs r0, #8 + 401a12: f406 fcc9 bl 83a8 + 401a16: 2101 movs r1, #1 + 401a18: 2009 movs r0, #9 + 401a1a: f406 fcc5 bl 83a8 + 401a1e: 2101 movs r1, #1 + 401a20: 200a movs r0, #10 + 401a22: f406 fcc1 bl 83a8 + 401a26: 2101 movs r1, #1 + 401a28: 202d movs r0, #45 + 401a2a: f406 fcbd bl 83a8 + 401a2e: 2101 movs r1, #1 + 401a30: 2013 movs r0, #19 + 401a32: f406 fcb9 bl 83a8 + 401a36: 22f0 movs r2, #240 + 401a38: 2100 movs r1, #0 + 401a3a: 2000 movs r0, #0 + 401a3c: f406 fe52 bl 86e4 + 401a40: 220f movs r2, #15 + 401a42: 2100 movs r1, #0 + 401a44: 2001 movs r0, #1 + 401a46: f406 fe4d bl 86e4 + 401a4a: 23f0 movs r3, #240 + 401a4c: 22f0 movs r2, #240 + 401a4e: 2103 movs r1, #3 + 401a50: 2000 movs r0, #0 + 401a52: f406 fc41 bl 82d8 + 401a56: 230f movs r3, #15 + 401a58: 220f movs r2, #15 + 401a5a: 2103 movs r1, #3 + 401a5c: 2001 movs r0, #1 + 401a5e: f406 fc3b bl 82d8 + 401a62: 23f0 movs r3, #240 + 401a64: 22f0 movs r2, #240 + 401a66: 2104 movs r1, #4 + 401a68: 2000 movs r0, #0 + 401a6a: f406 fc35 bl 82d8 + 401a6e: 230f movs r3, #15 + 401a70: 220f movs r2, #15 + 401a72: 2104 movs r1, #4 + 401a74: 2001 movs r0, #1 + 401a76: f406 fc2f bl 82d8 + 401a7a: 23f0 movs r3, #240 + 401a7c: 22f0 movs r2, #240 + 401a7e: 2106 movs r1, #6 + 401a80: 2000 movs r0, #0 + 401a82: f406 fc29 bl 82d8 + 401a86: 230f movs r3, #15 + 401a88: 220f movs r2, #15 + 401a8a: 2106 movs r1, #6 + 401a8c: 2001 movs r0, #1 + 401a8e: f406 fc23 bl 82d8 + 401a92: 25f0 movs r5, #240 + 401a94: 43ed mvns r5, r5 + 401a96: 23f0 movs r3, #240 + 401a98: 002a lsls r2, r5, #0 + 401a9a: 2102 movs r1, #2 + 401a9c: 2000 movs r0, #0 + 401a9e: f406 fc1b bl 82d8 + 401aa2: 240f movs r4, #15 + 401aa4: 43e4 mvns r4, r4 + 401aa6: 230f movs r3, #15 + 401aa8: 0022 lsls r2, r4, #0 + 401aaa: 2102 movs r1, #2 + 401aac: 2001 movs r0, #1 + 401aae: f406 fc13 bl 82d8 + 401ab2: 22f0 movs r2, #240 + 401ab4: 0029 lsls r1, r5, #0 + 401ab6: 2000 movs r0, #0 + 401ab8: f406 fc60 bl 837c + 401abc: 220f movs r2, #15 + 401abe: 0021 lsls r1, r4, #0 + 401ac0: 2001 movs r0, #1 + 401ac2: f406 fc5b bl 837c + 401ac6: 2100 movs r1, #0 + 401ac8: 202d movs r0, #45 + 401aca: f406 fcd9 bl 8480 + 401ace: 2100 movs r1, #0 + 401ad0: 2013 movs r0, #19 + 401ad2: f406 fcd5 bl 8480 + 401ad6: 200a movs r0, #10 + 401ad8: f002 f966 bl 403da8 + 401adc: 2101 movs r1, #1 + 401ade: 202d movs r0, #45 + 401ae0: f406 fcce bl 8480 + 401ae4: 2101 movs r1, #1 + 401ae6: 2013 movs r0, #19 + 401ae8: f406 fcca bl 8480 + 401aec: 2001 movs r0, #1 + 401aee: f002 f949 bl 403d84 + 401af2: 20e2 movs r0, #226 + 401af4: f000 fa5a bl 401fac + 401af8: 200a movs r0, #10 + 401afa: f002 f955 bl 403da8 + 401afe: 20a2 movs r0, #162 + 401b00: f000 fa54 bl 401fac + 401b04: 20a1 movs r0, #161 + 401b06: f000 fa51 bl 401fac + 401b0a: 20c0 movs r0, #192 + 401b0c: f000 fa4e bl 401fac + 401b10: 2024 movs r0, #36 + 401b12: f000 fa4b bl 401fac + 401b16: 2081 movs r0, #129 + 401b18: f000 fa48 bl 401fac + 401b1c: 2030 movs r0, #48 + 401b1e: f000 fa45 bl 401fac + 401b22: 202f movs r0, #47 + 401b24: f000 fa42 bl 401fac + 401b28: 200a movs r0, #10 + 401b2a: f002 f93d bl 403da8 + 401b2e: 20af movs r0, #175 + 401b30: f000 fa3c bl 401fac + 401b34: 200a movs r0, #10 + 401b36: f002 f937 bl 403da8 + 401b3a: 200f movs r0, #15 + 401b3c: f000 fab2 bl 4020a4 + 401b40: 2000 movs r0, #0 + 401b42: f000 fa9f bl 402084 + 401b46: 481a ldr r0, [pc, #104] (401bb0 ) + 401b48: 2100 movs r1, #0 + 401b4a: 7001 strb r1, [r0, #0] + 401b4c: b001 add sp, #4 + 401b4e: 9802 ldr r0, [sp, #8] + 401b50: bc30 pop {r4, r5} + 401b52: b001 add sp, #4 + 401b54: 4700 bx r0 + +00401b56 : + 401b56: b570 push {r4, r5, r6, lr} + 401b58: 2600 movs r6, #0 + 401b5a: 4c15 ldr r4, [pc, #84] (401bb0 ) + 401b5c: 7066 strb r6, [r4, #1] + 401b5e: 4d30 ldr r5, [pc, #192] (401c20 ) + 401b60: 78e8 ldrb r0, [r5, #3] + 401b62: 7821 ldrb r1, [r4, #0] + 401b64: 2901 cmp r1, #1 + 401b66: d103 bne.n 401b70 + 401b68: 7929 ldrb r1, [r5, #4] + 401b6a: 4001 ands r1, r0 + 401b6c: d000 beq.n 401b70 + 401b6e: 4388 bics r0, r1 + +00401b70 : + 401b70: 70a0 strb r0, [r4, #2] + 401b72: e002 b.n 401b7a + +00401b74 : + 401b74: 1c76 adds r6, r6, #1 + 401b76: 0636 lsls r6, r6, #24 + 401b78: 0e36 lsrs r6, r6, #24 + +00401b7a : + 401b7a: 78a0 ldrb r0, [r4, #2] + 401b7c: 4130 asrs r0, r6 + 401b7e: 07c0 lsls r0, r0, #31 + 401b80: d401 bmi.n 401b86 + 401b82: 2e08 cmp r6, #8 + 401b84: d3f6 bcc.n 401b74 + +00401b86 : + 401b86: 0030 lsls r0, r6, #0 + 401b88: 2808 cmp r0, #8 + 401b8a: d00c beq.n 401ba6 + 401b8c: f000 fbc4 bl 402318 + 401b90: 2801 cmp r0, #1 + 401b92: d1f2 bne.n 401b7a + 401b94: 2101 movs r1, #1 + 401b96: 40b1 lsls r1, r6 + 401b98: 43c8 mvns r0, r1 + 401b9a: 78e9 ldrb r1, [r5, #3] + 401b9c: 4001 ands r1, r0 + 401b9e: 70e9 strb r1, [r5, #3] + 401ba0: 78a1 ldrb r1, [r4, #2] + 401ba2: 4008 ands r0, r1 + 401ba4: e7e4 b.n 401b70 + +00401ba6 : + 401ba6: 9803 ldr r0, [sp, #12] + 401ba8: bc70 pop {r4, r5, r6} + 401baa: b001 add sp, #4 + 401bac: 4700 bx r0 + ... + +00401bb0 : + 401bb0: 004052a8 .word 0x004052a8 + +00401bb4 : + 401bb4: b5f8 push {r3, r4, r5, r6, r7, lr} + 401bb6: 000d lsls r5, r1, #0 + 401bb8: 0041 lsls r1, r0, #1 + 401bba: 1808 adds r0, r1, r0 + 401bbc: 4917 ldr r1, [pc, #92] (401c1c ) + 401bbe: 1808 adds r0, r1, r0 + 401bc0: 4e17 ldr r6, [pc, #92] (401c20 ) + 401bc2: 7901 ldrb r1, [r0, #4] + 401bc4: 7031 strb r1, [r6, #0] + 401bc6: 7940 ldrb r0, [r0, #5] + 401bc8: 7070 strb r0, [r6, #1] + 401bca: 0028 lsls r0, r5, #0 + 401bcc: 2400 movs r4, #0 + 401bce: 2100 movs r1, #0 + 401bd0: 2700 movs r7, #0 + 401bd2: e006 b.n 401be2 + +00401bd4 : + 401bd4: 1c49 adds r1, r1, #1 + 401bd6: 0609 lsls r1, r1, #24 + 401bd8: 1609 asrs r1, r1, #24 + 401bda: 1c7f adds r7, r7, #1 + 401bdc: 063f lsls r7, r7, #24 + 401bde: 163f asrs r7, r7, #24 + 401be0: 1c40 adds r0, r0, #1 + +00401be2 : + 401be2: 7802 ldrb r2, [r0, #0] + 401be4: 2a00 cmp r2, #0 + 401be6: d001 beq.n 401bec + 401be8: 2915 cmp r1, #21 + 401bea: dbf3 blt.n 401bd4 + +00401bec : + 401bec: 2f16 cmp r7, #22 + 401bee: db00 blt.n 401bf2 + 401bf0: 2715 movs r7, #21 + +00401bf2 : + 401bf2: 063f lsls r7, r7, #24 + 401bf4: 0e3f lsrs r7, r7, #24 + 401bf6: e009 b.n 401c0c + +00401bf8 : + 401bf8: 7872 ldrb r2, [r6, #1] + 401bfa: 7831 ldrb r1, [r6, #0] + 401bfc: 7828 ldrb r0, [r5, #0] + 401bfe: f000 faf1 bl 4021e4 + 401c02: 7830 ldrb r0, [r6, #0] + 401c04: 1d80 adds r0, r0, #6 + 401c06: 7030 strb r0, [r6, #0] + 401c08: 1c6d adds r5, r5, #1 + 401c0a: 1c64 adds r4, r4, #1 + +00401c0c : + 401c0c: 0620 lsls r0, r4, #24 + 401c0e: 0e00 lsrs r0, r0, #24 + 401c10: 42b8 cmp r0, r7 + 401c12: d201 bcs.n 401c18 + 401c14: 2815 cmp r0, #21 + 401c16: d3ef bcc.n 401bf8 + +00401c18 : + 401c18: b001 add sp, #4 + 401c1a: e349 b.n 4022b0 + +00401c1c : + 401c1c: 00405484 .word 0x00405484 + +00401c20 : + 401c20: 004052b0 .word 0x004052b0 + +00401c24 : + 401c24: b5f5 push {r0, r2, r4, r5, r6, r7, lr} + 401c26: b08d sub sp, #52 + 401c28: 000c lsls r4, r1, #0 + 401c2a: 4d61 ldr r5, [pc, #388] (401db0 ) + 401c2c: 4668 mov r0, sp + 401c2e: 2105 movs r1, #5 + 401c30: 7001 strb r1, [r0, #0] + 401c32: 2600 movs r6, #0 + 401c34: 2700 movs r7, #0 + 401c36: 485f ldr r0, [pc, #380] (401db4 ) + 401c38: 7006 strb r6, [r0, #0] + 401c3a: 2b01 cmp r3, #1 + 401c3c: d16c bne.n 401d18 + 401c3e: 2c64 cmp r4, #100 + 401c40: d204 bcs.n 401c4c + 401c42: 4668 mov r0, sp + 401c44: 2102 movs r1, #2 + 401c46: 7001 strb r1, [r0, #0] + 401c48: 250a movs r5, #10 + 401c4a: e00f b.n 401c6c + +00401c4c : + 401c4c: 20fa movs r0, #250 + 401c4e: 0080 lsls r0, r0, #2 + 401c50: 4284 cmp r4, r0 + 401c52: d204 bcs.n 401c5e + 401c54: 4668 mov r0, sp + 401c56: 2103 movs r1, #3 + 401c58: 7001 strb r1, [r0, #0] + 401c5a: 2564 movs r5, #100 + 401c5c: e006 b.n 401c6c + +00401c5e : + 401c5e: 1e69 subs r1, r5, #1 + 401c60: 428c cmp r4, r1 + 401c62: d203 bcs.n 401c6c + 401c64: 4669 mov r1, sp + 401c66: 2204 movs r2, #4 + 401c68: 700a strb r2, [r1, #0] + 401c6a: 0005 lsls r5, r0, #0 + +00401c6c : + 401c6c: 1c78 adds r0, r7, #1 + 401c6e: 0600 lsls r0, r0, #24 + 401c70: 0e00 lsrs r0, r0, #24 + 401c72: 9001 str r0, [sp, #4] + 401c74: 063f lsls r7, r7, #24 + 401c76: 0e3f lsrs r7, r7, #24 + 401c78: 0424 lsls r4, r4, #16 + 401c7a: 0c24 lsrs r4, r4, #16 + 401c7c: 0020 lsls r0, r4, #0 + 401c7e: 042d lsls r5, r5, #16 + 401c80: 142d asrs r5, r5, #16 + 401c82: 0029 lsls r1, r5, #0 + 401c84: f7fe fe3c bl 400900 + 401c88: 2800 cmp r0, #0 + 401c8a: d009 beq.n 401ca0 + 401c8c: a902 add r1, sp, #8 + 401c8e: 3030 adds r0, #48 + 401c90: 55c8 strb r0, [r1, r7] + 401c92: 9f01 ldr r7, [sp, #4] + 401c94: 0020 lsls r0, r4, #0 + 401c96: 0029 lsls r1, r5, #0 + 401c98: f7fe fe32 bl 400900 + 401c9c: 000c lsls r4, r1, #0 + 401c9e: e003 b.n 401ca8 + +00401ca0 : + 401ca0: a802 add r0, sp, #8 + 401ca2: 2130 movs r1, #48 + 401ca4: 55c1 strb r1, [r0, r7] + 401ca6: 9f01 ldr r7, [sp, #4] + +00401ca8 : + 401ca8: 0028 lsls r0, r5, #0 + 401caa: 210a movs r1, #10 + 401cac: f7fe fe28 bl 400900 + 401cb0: 0005 lsls r5, r0, #0 + 401cb2: 1c76 adds r6, r6, #1 + 401cb4: 0636 lsls r6, r6, #24 + 401cb6: 0e36 lsrs r6, r6, #24 + 401cb8: 4669 mov r1, sp + 401cba: 7809 ldrb r1, [r1, #0] + 401cbc: 428e cmp r6, r1 + 401cbe: d3d5 bcc.n 401c6c + 401cc0: 063f lsls r7, r7, #24 + 401cc2: 0e3f lsrs r7, r7, #24 + 401cc4: a802 add r0, sp, #8 + 401cc6: 2100 movs r1, #0 + 401cc8: 55c1 strb r1, [r0, r7] + 401cca: 2700 movs r7, #0 + 401ccc: a804 add r0, sp, #16 + 401cce: e006 b.n 401cde + +00401cd0 : + 401cd0: 55c1 strb r1, [r0, r7] + 401cd2: 1c7f adds r7, r7, #1 + 401cd4: 063f lsls r7, r7, #24 + 401cd6: 0e3f lsrs r7, r7, #24 + 401cd8: 990d ldr r1, [sp, #52] + 401cda: 1c49 adds r1, r1, #1 + 401cdc: 910d str r1, [sp, #52] + +00401cde : + 401cde: 990d ldr r1, [sp, #52] + 401ce0: 7809 ldrb r1, [r1, #0] + 401ce2: 2900 cmp r1, #0 + 401ce4: d001 beq.n 401cea + 401ce6: 2f15 cmp r7, #21 + 401ce8: d3f2 bcc.n 401cd0 + +00401cea : + 401cea: 2600 movs r6, #0 + 401cec: e006 b.n 401cfc + +00401cee : + 401cee: 55c1 strb r1, [r0, r7] + 401cf0: 1c76 adds r6, r6, #1 + 401cf2: 0636 lsls r6, r6, #24 + 401cf4: 0e36 lsrs r6, r6, #24 + 401cf6: 1c7f adds r7, r7, #1 + 401cf8: 063f lsls r7, r7, #24 + 401cfa: 0e3f lsrs r7, r7, #24 + +00401cfc : + 401cfc: aa02 add r2, sp, #8 + 401cfe: 5d91 ldrb r1, [r2, r6] + 401d00: 2900 cmp r1, #0 + 401d02: d001 beq.n 401d08 + 401d04: 2f15 cmp r7, #21 + 401d06: d3f2 bcc.n 401cee + +00401d08 : + 401d08: 2100 movs r1, #0 + 401d0a: 55c1 strb r1, [r0, r7] + 401d0c: a904 add r1, sp, #16 + 401d0e: a80e add r0, sp, #56 + 401d10: 7800 ldrb r0, [r0, #0] + 401d12: f7ff ff4f bl 401bb4 + 401d16: e048 b.n 401daa + +00401d18 : + 401d18: 4927 ldr r1, [pc, #156] (401db8 ) + 401d1a: 2b00 cmp r3, #0 + 401d1c: a80b add r0, sp, #44 + 401d1e: d13f bne.n 401da0 + +00401d20 : + 401d20: 1122 asrs r2, r4, #4 + 401d22: 0112 lsls r2, r2, #4 + 401d24: 1aa2 subs r2, r4, r2 + 401d26: 188a adds r2, r1, r2 + 401d28: 7d12 ldrb r2, [r2, #20] + 401d2a: 5582 strb r2, [r0, r6] + 401d2c: 0324 lsls r4, r4, #12 + 401d2e: 1c76 adds r6, r6, #1 + 401d30: 0636 lsls r6, r6, #24 + 401d32: 0e36 lsrs r6, r6, #24 + 401d34: 0c24 lsrs r4, r4, #16 + 401d36: 2c10 cmp r4, #16 + 401d38: d2f2 bcs.n 401d20 + 401d3a: 1909 adds r1, r1, r4 + 401d3c: 7d09 ldrb r1, [r1, #20] + 401d3e: 5581 strb r1, [r0, r6] + 401d40: a909 add r1, sp, #36 + 401d42: e006 b.n 401d52 + +00401d44 : + 401d44: 5d83 ldrb r3, [r0, r6] + 401d46: 55cb strb r3, [r1, r7] + 401d48: 1e76 subs r6, r6, #1 + 401d4a: 0636 lsls r6, r6, #24 + 401d4c: 0e36 lsrs r6, r6, #24 + 401d4e: 0617 lsls r7, r2, #24 + 401d50: 0e3f lsrs r7, r7, #24 + +00401d52 : + 401d52: 1c7a adds r2, r7, #1 + 401d54: 0033 lsls r3, r6, #0 + 401d56: d1f5 bne.n 401d44 + 401d58: 7800 ldrb r0, [r0, #0] + 401d5a: 55c8 strb r0, [r1, r7] + 401d5c: 0612 lsls r2, r2, #24 + 401d5e: 0e12 lsrs r2, r2, #24 + 401d60: 2000 movs r0, #0 + 401d62: 5488 strb r0, [r1, r2] + 401d64: 2700 movs r7, #0 + 401d66: a804 add r0, sp, #16 + 401d68: e006 b.n 401d78 + +00401d6a : + 401d6a: 55c2 strb r2, [r0, r7] + 401d6c: 1c7f adds r7, r7, #1 + 401d6e: 063f lsls r7, r7, #24 + 401d70: 0e3f lsrs r7, r7, #24 + 401d72: 9a0d ldr r2, [sp, #52] + 401d74: 1c52 adds r2, r2, #1 + 401d76: 920d str r2, [sp, #52] + +00401d78 : + 401d78: 9a0d ldr r2, [sp, #52] + 401d7a: 7812 ldrb r2, [r2, #0] + 401d7c: 2a00 cmp r2, #0 + 401d7e: d001 beq.n 401d84 + 401d80: 2f15 cmp r7, #21 + 401d82: d3f2 bcc.n 401d6a + +00401d84 : + 401d84: 2600 movs r6, #0 + +00401d86 : + 401d86: 5d8a ldrb r2, [r1, r6] + 401d88: 2a00 cmp r2, #0 + 401d8a: d0bd beq.n 401d08 + 401d8c: 2f15 cmp r7, #21 + 401d8e: d2bb bcs.n 401d08 + 401d90: 55c2 strb r2, [r0, r7] + 401d92: 1c76 adds r6, r6, #1 + 401d94: 0636 lsls r6, r6, #24 + 401d96: 0e36 lsrs r6, r6, #24 + 401d98: 1c7f adds r7, r7, #1 + 401d9a: 063f lsls r7, r7, #24 + 401d9c: 0e3f lsrs r7, r7, #24 + 401d9e: e7f2 b.n 401d86 + +00401da0 : + 401da0: 3128 adds r1, #40 + 401da2: a80e add r0, sp, #56 + 401da4: 7800 ldrb r0, [r0, #0] + 401da6: f7ff ff05 bl 401bb4 + +00401daa : + 401daa: b00f add sp, #60 + 401dac: e280 b.n 4022b0 + 401dae: 46c0 nop (mov r8, r8) + +00401db0 : + 401db0: 00002710 .word 0x00002710 + 401db4: 004052a9 .word 0x004052a9 + +00401db8 : + 401db8: 00403e04 .word 0x00403e04 + +00401dbc : + 401dbc: b5ff push {r0, r1, r2, r3, r4, r5, r6, r7, lr} + 401dbe: b091 sub sp, #68 + 401dc0: 4e76 ldr r6, [pc, #472] (401f9c ) + 401dc2: 4668 mov r0, sp + 401dc4: 2105 movs r1, #5 + 401dc6: 7201 strb r1, [r0, #8] + 401dc8: 2400 movs r4, #0 + 401dca: 2500 movs r5, #0 + 401dcc: a807 add r0, sp, #28 + 401dce: 2114 movs r1, #20 + 401dd0: f002 f8ae bl 403f30 + 401dd4: 4872 ldr r0, [pc, #456] (401fa0 ) + 401dd6: 7004 strb r4, [r0, #0] + 401dd8: a814 add r0, sp, #80 + 401dda: 7800 ldrb r0, [r0, #0] + 401ddc: 2801 cmp r0, #1 + 401dde: d000 beq.n 401de2 + 401de0: e07e b.n 401ee0 + 401de2: a812 add r0, sp, #72 + 401de4: 8800 ldrh r0, [r0, #0] + 401de6: 0a00 lsrs r0, r0, #8 + 401de8: 9000 str r0, [sp, #0] + 401dea: 9401 str r4, [sp, #4] + +00401dec : + 401dec: 9800 ldr r0, [sp, #0] + 401dee: 0600 lsls r0, r0, #24 + 401df0: 0e00 lsrs r0, r0, #24 + 401df2: 2864 cmp r0, #100 + 401df4: d204 bcs.n 401e00 + 401df6: 4668 mov r0, sp + 401df8: 2102 movs r1, #2 + 401dfa: 7201 strb r1, [r0, #8] + 401dfc: 260a movs r6, #10 + 401dfe: e00c b.n 401e1a + +00401e00 : + 401e00: 9800 ldr r0, [sp, #0] + 401e02: 0600 lsls r0, r0, #24 + 401e04: 0e00 lsrs r0, r0, #24 + 401e06: 28ff cmp r0, #255 + 401e08: 4668 mov r0, sp + 401e0a: d003 beq.n 401e14 + 401e0c: 2103 movs r1, #3 + 401e0e: 7201 strb r1, [r0, #8] + 401e10: 2664 movs r6, #100 + 401e12: e002 b.n 401e1a + +00401e14 : + 401e14: 7a00 ldrb r0, [r0, #8] + 401e16: 2800 cmp r0, #0 + 401e18: d028 beq.n 401e6c + +00401e1a : + 401e1a: 4668 mov r0, sp + 401e1c: 7a07 ldrb r7, [r0, #8] + +00401e1e : + 401e1e: 1c68 adds r0, r5, #1 + 401e20: 0600 lsls r0, r0, #24 + 401e22: 0e00 lsrs r0, r0, #24 + 401e24: 9004 str r0, [sp, #16] + 401e26: 9800 ldr r0, [sp, #0] + 401e28: 0600 lsls r0, r0, #24 + 401e2a: 0e00 lsrs r0, r0, #24 + 401e2c: 9003 str r0, [sp, #12] + 401e2e: 0031 lsls r1, r6, #0 + 401e30: f7fe fd66 bl 400900 + 401e34: 062d lsls r5, r5, #24 + 401e36: 0e2d lsrs r5, r5, #24 + 401e38: 2800 cmp r0, #0 + 401e3a: d00b beq.n 401e54 + 401e3c: a905 add r1, sp, #20 + 401e3e: 3030 adds r0, #48 + 401e40: 5548 strb r0, [r1, r5] + 401e42: 9d04 ldr r5, [sp, #16] + 401e44: 9803 ldr r0, [sp, #12] + 401e46: 0031 lsls r1, r6, #0 + 401e48: f7fe fd5a bl 400900 + 401e4c: 0609 lsls r1, r1, #24 + 401e4e: 0e09 lsrs r1, r1, #24 + 401e50: 9100 str r1, [sp, #0] + 401e52: e003 b.n 401e5c + +00401e54 : + 401e54: a805 add r0, sp, #20 + 401e56: 2130 movs r1, #48 + 401e58: 5541 strb r1, [r0, r5] + 401e5a: 9d04 ldr r5, [sp, #16] + +00401e5c : + 401e5c: 0030 lsls r0, r6, #0 + 401e5e: 210a movs r1, #10 + 401e60: f7fe fd4e bl 400900 + 401e64: 0406 lsls r6, r0, #16 + 401e66: 1436 asrs r6, r6, #16 + 401e68: 1e7f subs r7, r7, #1 + 401e6a: d1d8 bne.n 401e1e + +00401e6c : + 401e6c: 9801 ldr r0, [sp, #4] + 401e6e: 0600 lsls r0, r0, #24 + 401e70: d107 bne.n 401e82 + 401e72: 0628 lsls r0, r5, #24 + 401e74: 0e00 lsrs r0, r0, #24 + 401e76: a905 add r1, sp, #20 + 401e78: 222e movs r2, #46 + 401e7a: 540a strb r2, [r1, r0] + 401e7c: 1c6d adds r5, r5, #1 + 401e7e: 062d lsls r5, r5, #24 + 401e80: 0e2d lsrs r5, r5, #24 + +00401e82 : + 401e82: a812 add r0, sp, #72 + 401e84: 8800 ldrh r0, [r0, #0] + 401e86: 0600 lsls r0, r0, #24 + 401e88: 0e00 lsrs r0, r0, #24 + 401e8a: 9000 str r0, [sp, #0] + 401e8c: 9801 ldr r0, [sp, #4] + 401e8e: 1c40 adds r0, r0, #1 + 401e90: 9001 str r0, [sp, #4] + 401e92: 0600 lsls r0, r0, #24 + 401e94: 0e00 lsrs r0, r0, #24 + 401e96: 2802 cmp r0, #2 + 401e98: d3a8 bcc.n 401dec + 401e9a: 062d lsls r5, r5, #24 + 401e9c: 0e2d lsrs r5, r5, #24 + 401e9e: a805 add r0, sp, #20 + 401ea0: 5544 strb r4, [r0, r5] + 401ea2: 2500 movs r5, #0 + 401ea4: a907 add r1, sp, #28 + 401ea6: e006 b.n 401eb6 + +00401ea8 : + 401ea8: 5548 strb r0, [r1, r5] + 401eaa: 1c6d adds r5, r5, #1 + 401eac: 062d lsls r5, r5, #24 + 401eae: 0e2d lsrs r5, r5, #24 + 401eb0: 9811 ldr r0, [sp, #68] + 401eb2: 1c40 adds r0, r0, #1 + 401eb4: 9011 str r0, [sp, #68] + +00401eb6 : + 401eb6: 9811 ldr r0, [sp, #68] + 401eb8: 7800 ldrb r0, [r0, #0] + 401eba: 2800 cmp r0, #0 + 401ebc: d009 beq.n 401ed2 + 401ebe: 2d15 cmp r5, #21 + 401ec0: d3f2 bcc.n 401ea8 + 401ec2: e006 b.n 401ed2 + +00401ec4 : + 401ec4: 5548 strb r0, [r1, r5] + 401ec6: 1c64 adds r4, r4, #1 + 401ec8: 0624 lsls r4, r4, #24 + 401eca: 0e24 lsrs r4, r4, #24 + 401ecc: 1c6d adds r5, r5, #1 + 401ece: 062d lsls r5, r5, #24 + 401ed0: 0e2d lsrs r5, r5, #24 + +00401ed2 : + 401ed2: aa05 add r2, sp, #20 + 401ed4: 5d10 ldrb r0, [r2, r4] + 401ed6: 2800 cmp r0, #0 + 401ed8: d053 beq.n 401f82 + 401eda: 2d15 cmp r5, #21 + 401edc: d3f2 bcc.n 401ec4 + 401ede: e050 b.n 401f82 + +00401ee0 : + 401ee0: a814 add r0, sp, #80 + 401ee2: 7800 ldrb r0, [r0, #0] + 401ee4: 2800 cmp r0, #0 + 401ee6: a90e add r1, sp, #56 + 401ee8: d151 bne.n 401f8e + +00401eea : + 401eea: a812 add r0, sp, #72 + 401eec: 8800 ldrh r0, [r0, #0] + 401eee: 1102 asrs r2, r0, #4 + 401ef0: 0112 lsls r2, r2, #4 + 401ef2: 1a80 subs r0, r0, r2 + 401ef4: 4a2b ldr r2, [pc, #172] (401fa4 ) + 401ef6: 1810 adds r0, r2, r0 + 401ef8: 7d00 ldrb r0, [r0, #20] + 401efa: 5508 strb r0, [r1, r4] + 401efc: a812 add r0, sp, #72 + 401efe: aa12 add r2, sp, #72 + 401f00: 8812 ldrh r2, [r2, #0] + 401f02: 0912 lsrs r2, r2, #4 + 401f04: 8002 strh r2, [r0, #0] + 401f06: 1c64 adds r4, r4, #1 + 401f08: 0624 lsls r4, r4, #24 + 401f0a: 0e24 lsrs r4, r4, #24 + 401f0c: 2a10 cmp r2, #16 + 401f0e: d2ec bcs.n 401eea + 401f10: 0010 lsls r0, r2, #0 + 401f12: 4a24 ldr r2, [pc, #144] (401fa4 ) + 401f14: 1810 adds r0, r2, r0 + 401f16: 7d00 ldrb r0, [r0, #20] + 401f18: 5508 strb r0, [r1, r4] + 401f1a: a80c add r0, sp, #48 + 401f1c: e006 b.n 401f2c + +00401f1e : + 401f1e: 5d0b ldrb r3, [r1, r4] + 401f20: 5543 strb r3, [r0, r5] + 401f22: 1e64 subs r4, r4, #1 + 401f24: 0624 lsls r4, r4, #24 + 401f26: 0e24 lsrs r4, r4, #24 + 401f28: 0615 lsls r5, r2, #24 + 401f2a: 0e2d lsrs r5, r5, #24 + +00401f2c : + 401f2c: 1c6a adds r2, r5, #1 + 401f2e: 0023 lsls r3, r4, #0 + 401f30: d1f5 bne.n 401f1e + 401f32: 7809 ldrb r1, [r1, #0] + 401f34: 5541 strb r1, [r0, r5] + 401f36: 0612 lsls r2, r2, #24 + 401f38: 0e12 lsrs r2, r2, #24 + 401f3a: 2100 movs r1, #0 + 401f3c: 5481 strb r1, [r0, r2] + 401f3e: 2500 movs r5, #0 + 401f40: a907 add r1, sp, #28 + 401f42: e006 b.n 401f52 + +00401f44 : + 401f44: 554a strb r2, [r1, r5] + 401f46: 1c6d adds r5, r5, #1 + 401f48: 062d lsls r5, r5, #24 + 401f4a: 0e2d lsrs r5, r5, #24 + 401f4c: 9a11 ldr r2, [sp, #68] + 401f4e: 1c52 adds r2, r2, #1 + 401f50: 9211 str r2, [sp, #68] + +00401f52 : + 401f52: 9a11 ldr r2, [sp, #68] + 401f54: 7812 ldrb r2, [r2, #0] + 401f56: 2a00 cmp r2, #0 + 401f58: d001 beq.n 401f5e + 401f5a: 2d15 cmp r5, #21 + 401f5c: d3f2 bcc.n 401f44 + +00401f5e : + 401f5e: 2400 movs r4, #0 + 401f60: e006 b.n 401f70 + +00401f62 : + 401f62: 554a strb r2, [r1, r5] + 401f64: 1c64 adds r4, r4, #1 + 401f66: 0624 lsls r4, r4, #24 + 401f68: 0e24 lsrs r4, r4, #24 + 401f6a: 1c6d adds r5, r5, #1 + 401f6c: 062d lsls r5, r5, #24 + 401f6e: 0e2d lsrs r5, r5, #24 + +00401f70 : + 401f70: 5d02 ldrb r2, [r0, r4] + 401f72: 2a00 cmp r2, #0 + 401f74: d001 beq.n 401f7a + 401f76: 2d15 cmp r5, #21 + 401f78: d3f3 bcc.n 401f62 + +00401f7a : + 401f7a: a807 add r0, sp, #28 + 401f7c: 2100 movs r1, #0 + 401f7e: 5541 strb r1, [r0, r5] + 401f80: a907 add r1, sp, #28 + +00401f82 : + 401f82: a813 add r0, sp, #76 + 401f84: 7800 ldrb r0, [r0, #0] + 401f86: f7ff fe15 bl 401bb4 + +00401f8a : + 401f8a: b015 add sp, #84 + 401f8c: e190 b.n 4022b0 + +00401f8e : + 401f8e: 4906 ldr r1, [pc, #24] (401fa8 ) + 401f90: a813 add r0, sp, #76 + 401f92: 7800 ldrb r0, [r0, #0] + 401f94: f7ff fe0e bl 401bb4 + 401f98: e7f7 b.n 401f8a + 401f9a: 46c0 nop (mov r8, r8) + +00401f9c : + 401f9c: 00002710 .word 0x00002710 + 401fa0: 004052a9 .word 0x004052a9 + 401fa4: 00403e04 .word 0x00403e04 + 401fa8: 00403e2c .word 0x00403e2c + +00401fac : + 401fac: b510 push {r4, lr} + 401fae: 0004 lsls r4, r0, #0 + 401fb0: 4811 ldr r0, [pc, #68] (401ff8 ) + 401fb2: 2100 movs r1, #0 + 401fb4: 7001 strb r1, [r0, #0] + 401fb6: 2101 movs r1, #1 + 401fb8: 2015 movs r0, #21 + 401fba: f406 fa61 bl 8480 + 401fbe: 22f0 movs r2, #240 + 401fc0: 21f0 movs r1, #240 + 401fc2: 2000 movs r0, #0 + 401fc4: f406 f9da bl 837c + 401fc8: 220f movs r2, #15 + 401fca: 210f movs r1, #15 + 401fcc: 2001 movs r0, #1 + 401fce: f406 f9d5 bl 837c + 401fd2: 2101 movs r1, #1 + 401fd4: 2014 movs r0, #20 + 401fd6: f406 fa53 bl 8480 + 401fda: 2101 movs r1, #1 + 401fdc: 2009 movs r0, #9 + 401fde: f406 fa4f bl 8480 + 401fe2: 22f0 movs r2, #240 + 401fe4: 0121 lsls r1, r4, #4 + 401fe6: 2000 movs r0, #0 + 401fe8: f406 fa24 bl 8434 + 401fec: 220f movs r2, #15 + 401fee: 0921 lsrs r1, r4, #4 + 401ff0: 2001 movs r0, #1 + 401ff2: f406 fa1f bl 8434 + 401ff6: e025 b.n 402044 + +00401ff8 : + 401ff8: 004052a9 .word 0x004052a9 + +00401ffc : + 401ffc: b510 push {r4, lr} + 401ffe: 0004 lsls r4, r0, #0 + 402000: 481f ldr r0, [pc, #124] (402080 ) + 402002: 2100 movs r1, #0 + 402004: 7001 strb r1, [r0, #0] + 402006: 2015 movs r0, #21 + 402008: f406 fa3a bl 8480 + 40200c: 2101 movs r1, #1 + 40200e: 2014 movs r0, #20 + 402010: f406 fa36 bl 8480 + 402014: 22f0 movs r2, #240 + 402016: 21f0 movs r1, #240 + 402018: 2000 movs r0, #0 + 40201a: f406 f9af bl 837c + 40201e: 220f movs r2, #15 + 402020: 210f movs r1, #15 + 402022: 2001 movs r0, #1 + 402024: f406 f9aa bl 837c + 402028: 22f0 movs r2, #240 + 40202a: 0121 lsls r1, r4, #4 + 40202c: 2000 movs r0, #0 + 40202e: f406 fa01 bl 8434 + 402032: 220f movs r2, #15 + 402034: 0921 lsrs r1, r4, #4 + 402036: 2001 movs r0, #1 + 402038: f406 f9fc bl 8434 + 40203c: 2101 movs r1, #1 + 40203e: 2009 movs r0, #9 + 402040: f406 fa1e bl 8480 + +00402044 : + 402044: 2001 movs r0, #1 + 402046: f001 feaf bl 403da8 + 40204a: 2100 movs r1, #0 + 40204c: 2009 movs r0, #9 + 40204e: f406 fa17 bl 8480 + 402052: 2100 movs r1, #0 + 402054: 2014 movs r0, #20 + 402056: f406 fa13 bl 8480 + 40205a: 22f0 movs r2, #240 + 40205c: 21f0 movs r1, #240 + 40205e: 43c9 mvns r1, r1 + 402060: 2000 movs r0, #0 + 402062: f406 f98b bl 837c + 402066: 220f movs r2, #15 + 402068: 210f movs r1, #15 + 40206a: 43c9 mvns r1, r1 + 40206c: 2001 movs r0, #1 + 40206e: f406 f985 bl 837c + 402072: 2001 movs r0, #1 + 402074: f001 fe98 bl 403da8 + 402078: 9801 ldr r0, [sp, #4] + 40207a: bc10 pop {r4} + 40207c: b001 add sp, #4 + 40207e: 4700 bx r0 + +00402080 : + 402080: 004052a9 .word 0x004052a9 + +00402084 : + 402084: 4905 ldr r1, [pc, #20] (40209c ) + 402086: 2200 movs r2, #0 + 402088: 700a strb r2, [r1, #0] + 40208a: 2802 cmp r0, #2 + 40208c: d203 bcs.n 402096 + 40208e: 4904 ldr r1, [pc, #16] (4020a0 ) + 402090: 7008 strb r0, [r1, #0] + 402092: 2001 movs r0, #1 + 402094: 4770 bx lr + +00402096 : + 402096: 2000 movs r0, #0 + 402098: 4770 bx lr + 40209a: 46c0 nop (mov r8, r8) + +0040209c : + 40209c: 004052a9 .word 0x004052a9 + 4020a0: 004052bd .word 0x004052bd + +004020a4 : + 4020a4: b580 push {r7, lr} + 4020a6: 1e41 subs r1, r0, #1 + 4020a8: 4189 sbcs r1, r1 + 4020aa: 43c9 mvns r1, r1 + 4020ac: 0fc9 lsrs r1, r1, #31 + 4020ae: 200a movs r0, #10 + 4020b0: f406 f9e6 bl 8480 + 4020b4: 9801 ldr r0, [sp, #4] + 4020b6: b002 add sp, #8 + 4020b8: 4700 bx r0 + +004020ba : + 4020ba: b5f0 push {r4, r5, r6, r7, lr} + 4020bc: b083 sub sp, #12 + 4020be: 0005 lsls r5, r0, #0 + 4020c0: 0017 lsls r7, r2, #0 + 4020c2: 2d80 cmp r5, #128 + 4020c4: d300 bcc.n 4020c8 + 4020c6: e08b b.n 4021e0 + 4020c8: 2940 cmp r1, #64 + 4020ca: d300 bcc.n 4020ce + 4020cc: e088 b.n 4021e0 + 4020ce: 08c8 lsrs r0, r1, #3 + 4020d0: 0006 lsls r6, r0, #0 + 4020d2: 00c0 lsls r0, r0, #3 + 4020d4: 1a0c subs r4, r1, r0 + 4020d6: 2040 movs r0, #64 + 4020d8: f7ff ff68 bl 401fac + 4020dc: 4668 mov r0, sp + 4020de: 3e50 subs r6, #80 + 4020e0: 7046 strb r6, [r0, #1] + 4020e2: 7840 ldrb r0, [r0, #1] + 4020e4: f7ff ff62 bl 401fac + 4020e8: 4668 mov r0, sp + 4020ea: 0929 lsrs r1, r5, #4 + 4020ec: 2210 movs r2, #16 + 4020ee: 430a orrs r2, r1 + 4020f0: 7002 strb r2, [r0, #0] + 4020f2: 0010 lsls r0, r2, #0 + 4020f4: f7ff ff5a bl 401fac + 4020f8: 072e lsls r6, r5, #28 + 4020fa: 0f36 lsrs r6, r6, #28 + 4020fc: 0030 lsls r0, r6, #0 + 4020fe: f7ff ff55 bl 401fac + 402102: 2100 movs r1, #0 + 402104: 2015 movs r0, #21 + 402106: f406 f9bb bl 8480 + 40210a: 2101 movs r1, #1 + 40210c: 2014 movs r0, #20 + 40210e: f406 f9b7 bl 8480 + 402112: 2001 movs r0, #1 + 402114: f001 fe48 bl 403da8 + 402118: 2101 movs r1, #1 + 40211a: 2008 movs r0, #8 + 40211c: f406 f9b0 bl 8480 + 402120: 2001 movs r0, #1 + 402122: f001 fe41 bl 403da8 + 402126: a902 add r1, sp, #8 + 402128: 2000 movs r0, #0 + 40212a: f406 f999 bl 8460 + 40212e: a902 add r1, sp, #8 + 402130: 2001 movs r0, #1 + 402132: f406 f995 bl 8460 + 402136: 2100 movs r1, #0 + 402138: 2008 movs r0, #8 + 40213a: f406 f9a1 bl 8480 + 40213e: 2100 movs r1, #0 + 402140: 2014 movs r0, #20 + 402142: f406 f99d bl 8480 + 402146: 2001 movs r0, #1 + 402148: f001 fe2e bl 403da8 + 40214c: 2100 movs r1, #0 + 40214e: 2015 movs r0, #21 + 402150: f406 f996 bl 8480 + 402154: 2101 movs r1, #1 + 402156: 2014 movs r0, #20 + 402158: f406 f992 bl 8480 + 40215c: 2001 movs r0, #1 + 40215e: f001 fe23 bl 403da8 + 402162: 2101 movs r1, #1 + 402164: 2008 movs r0, #8 + 402166: f406 f98b bl 8480 + 40216a: 2001 movs r0, #1 + 40216c: f001 fe1c bl 403da8 + 402170: a901 add r1, sp, #4 + 402172: 2000 movs r0, #0 + 402174: f406 f974 bl 8460 + 402178: 9801 ldr r0, [sp, #4] + 40217a: 21f0 movs r1, #240 + 40217c: 4001 ands r1, r0 + 40217e: 090d lsrs r5, r1, #4 + 402180: a901 add r1, sp, #4 + 402182: 2001 movs r0, #1 + 402184: f406 f96c bl 8460 + 402188: 2100 movs r1, #0 + 40218a: 2008 movs r0, #8 + 40218c: f406 f978 bl 8480 + 402190: 2100 movs r1, #0 + 402192: 2014 movs r0, #20 + 402194: f406 f974 bl 8480 + 402198: 2001 movs r0, #1 + 40219a: f001 fe05 bl 403da8 + 40219e: 9801 ldr r0, [sp, #4] + 4021a0: 0100 lsls r0, r0, #4 + 4021a2: 4328 orrs r0, r5 + 4021a4: 0605 lsls r5, r0, #24 + 4021a6: 0e2d lsrs r5, r5, #24 + 4021a8: 2040 movs r0, #64 + 4021aa: f7ff feff bl 401fac + 4021ae: 4668 mov r0, sp + 4021b0: 7840 ldrb r0, [r0, #1] + 4021b2: f7ff fefb bl 401fac + 4021b6: 4668 mov r0, sp + 4021b8: 7800 ldrb r0, [r0, #0] + 4021ba: f7ff fef7 bl 401fac + 4021be: 0030 lsls r0, r6, #0 + 4021c0: f7ff fef4 bl 401fac + 4021c4: 2001 movs r0, #1 + 4021c6: 40a0 lsls r0, r4 + 4021c8: 2f01 cmp r7, #1 + 4021ca: d105 bne.n 4021d8 + 4021cc: 4328 orrs r0, r5 + 4021ce: 0600 lsls r0, r0, #24 + 4021d0: 0e00 lsrs r0, r0, #24 + 4021d2: f7ff ff13 bl 401ffc + 4021d6: e003 b.n 4021e0 + +004021d8 : + 4021d8: 4385 bics r5, r0 + 4021da: 0028 lsls r0, r5, #0 + 4021dc: f7ff ff0e bl 401ffc + +004021e0 : + 4021e0: e064 b.n 4022ac + ... + +004021e4 : + 4021e4: b5f2 push {r1, r4, r5, r6, r7, lr} + 4021e6: b082 sub sp, #8 + 4021e8: 0014 lsls r4, r2, #0 + 4021ea: 4669 mov r1, sp + 4021ec: 7a09 ldrb r1, [r1, #8] + 4021ee: 2980 cmp r1, #128 + 4021f0: d301 bcc.n 4021f6 + 4021f2: 2c40 cmp r4, #64 + 4021f4: d25a bcs.n 4022ac + +004021f6 : + 4021f6: 3820 subs r0, #32 + 4021f8: 0400 lsls r0, r0, #16 + 4021fa: 4934 ldr r1, [pc, #208] (4022cc ) + 4021fc: 7809 ldrb r1, [r1, #0] + 4021fe: 004a lsls r2, r1, #1 + 402200: 1851 adds r1, r2, r1 + 402202: 0089 lsls r1, r1, #2 + 402204: 4a2c ldr r2, [pc, #176] (4022b8 ) + 402206: 1851 adds r1, r2, r1 + 402208: 7a0d ldrb r5, [r1, #8] + 40220a: 0bc7 lsrs r7, r0, #15 + 40220c: 4668 mov r0, sp + 40220e: 7a00 ldrb r0, [r0, #8] + 402210: 0900 lsrs r0, r0, #4 + 402212: 2110 movs r1, #16 + 402214: 4301 orrs r1, r0 + 402216: 4668 mov r0, sp + 402218: 7001 strb r1, [r0, #0] + 40221a: e024 b.n 402266 + +0040221c : + 40221c: 19a9 adds r1, r5, r6 + 40221e: 6802 ldr r2, [r0, #0] + 402220: 5bd2 ldrh r2, [r2, r7] + 402222: 435a muls r2, r3 + 402224: 1889 adds r1, r1, r2 + 402226: 6840 ldr r0, [r0, #4] + 402228: 5c40 ldrb r0, [r0, r1] + 40222a: f7ff fee7 bl 401ffc + 40222e: 4827 ldr r0, [pc, #156] (4022cc ) + 402230: 7800 ldrb r0, [r0, #0] + 402232: 0041 lsls r1, r0, #1 + 402234: 1808 adds r0, r1, r0 + 402236: 0080 lsls r0, r0, #2 + 402238: 4920 ldr r1, [pc, #128] (4022bc ) + 40223a: 1808 adds r0, r1, r0 + 40223c: 7a00 ldrb r0, [r0, #8] + 40223e: 1836 adds r6, r6, r0 + 402240: 0636 lsls r6, r6, #24 + 402242: 0e36 lsrs r6, r6, #24 + +00402244 : + 402244: 4821 ldr r0, [pc, #132] (4022cc ) + 402246: 7800 ldrb r0, [r0, #0] + 402248: 0041 lsls r1, r0, #1 + 40224a: 1808 adds r0, r1, r0 + 40224c: 0080 lsls r0, r0, #2 + 40224e: 491c ldr r1, [pc, #112] (4022c0 ) + 402250: 1808 adds r0, r1, r0 + 402252: 6801 ldr r1, [r0, #0] + 402254: 19ca adds r2, r1, r7 + 402256: 8853 ldrh r3, [r2, #2] + 402258: 8812 ldrh r2, [r2, #0] + 40225a: 1a9a subs r2, r3, r2 + 40225c: 7a03 ldrb r3, [r0, #8] + 40225e: 435a muls r2, r3 + 402260: 4296 cmp r6, r2 + 402262: dbdb blt.n 40221c + 402264: 3408 adds r4, #8 + +00402266 : + 402266: 0028 lsls r0, r5, #0 + 402268: d020 beq.n 4022ac + 40226a: 1e6d subs r5, r5, #1 + 40226c: 062d lsls r5, r5, #24 + 40226e: 0e2d lsrs r5, r5, #24 + 402270: 2040 movs r0, #64 + 402272: f7ff fe9b bl 401fac + 402276: 0626 lsls r6, r4, #24 + 402278: 0ef6 lsrs r6, r6, #27 + 40227a: 0030 lsls r0, r6, #0 + 40227c: 3850 subs r0, #80 + 40227e: 0600 lsls r0, r0, #24 + 402280: 0e00 lsrs r0, r0, #24 + 402282: f7ff fe93 bl 401fac + 402286: 4668 mov r0, sp + 402288: 7800 ldrb r0, [r0, #0] + 40228a: f7ff fe8f bl 401fac + 40228e: 4668 mov r0, sp + 402290: 7a00 ldrb r0, [r0, #8] + 402292: 0700 lsls r0, r0, #28 + 402294: 0f00 lsrs r0, r0, #28 + 402296: f7ff fe89 bl 401fac + 40229a: 480a ldr r0, [pc, #40] (4022c4 ) + 40229c: 7800 ldrb r0, [r0, #0] + 40229e: 2101 movs r1, #1 + 4022a0: 40b1 lsls r1, r6 + 4022a2: 4301 orrs r1, r0 + 4022a4: 4808 ldr r0, [pc, #32] (4022c8 ) + 4022a6: 7001 strb r1, [r0, #0] + 4022a8: 2600 movs r6, #0 + 4022aa: e7cb b.n 402244 + +004022ac : + 4022ac: b003 add sp, #12 + 4022ae: 46c0 nop (mov r8, r8) + +004022b0 : + 4022b0: 9804 ldr r0, [sp, #16] + 4022b2: bcf0 pop {r4, r5, r6, r7} + 4022b4: b001 add sp, #4 + 4022b6: 4700 bx r0 + +004022b8 : + 4022b8: 00403eec .word 0x00403eec + 4022bc: 00403eec .word 0x00403eec + 4022c0: 00403eec .word 0x00403eec + 4022c4: 004052b3 .word 0x004052b3 + 4022c8: 004052b3 .word 0x004052b3 + +004022cc : + 4022cc: 004052bd .word 0x004052bd + +004022d0 : + 4022d0: b570 push {r4, r5, r6, lr} + 4022d2: 0004 lsls r4, r0, #0 + 4022d4: 000d lsls r5, r1, #0 + 4022d6: 0016 lsls r6, r2, #0 + 4022d8: 2040 movs r0, #64 + 4022da: f7ff fe67 bl 401fac + 4022de: 08f0 lsrs r0, r6, #3 + 4022e0: 3850 subs r0, #80 + 4022e2: 0600 lsls r0, r0, #24 + 4022e4: 0e00 lsrs r0, r0, #24 + 4022e6: f7ff fe61 bl 401fac + 4022ea: 0921 lsrs r1, r4, #4 + 4022ec: 2010 movs r0, #16 + 4022ee: 4308 orrs r0, r1 + 4022f0: f7ff fe5c bl 401fac + 4022f4: 0720 lsls r0, r4, #28 + 4022f6: 0f00 lsrs r0, r0, #28 + 4022f8: f7ff fe58 bl 401fac + 4022fc: e005 b.n 40230a + +004022fe : + 4022fe: 2000 movs r0, #0 + 402300: f7ff fe7c bl 401ffc + 402304: 1c64 adds r4, r4, #1 + 402306: 0624 lsls r4, r4, #24 + 402308: 0e24 lsrs r4, r4, #24 + +0040230a : + 40230a: 42ac cmp r4, r5 + 40230c: d3f7 bcc.n 4022fe + 40230e: 9803 ldr r0, [sp, #12] + 402310: bc70 pop {r4, r5, r6} + 402312: b001 add sp, #4 + 402314: 4700 bx r0 + ... + +00402318 : + 402318: b510 push {r4, lr} + 40231a: 2808 cmp r0, #8 + 40231c: d228 bcs.n 402370 + 40231e: 4c15 ldr r4, [pc, #84] (402374 ) + 402320: 7f21 ldrb r1, [r4, #28] + 402322: 2900 cmp r1, #0 + 402324: d009 beq.n 40233a + 402326: 0041 lsls r1, r0, #1 + 402328: 1809 adds r1, r1, r0 + 40232a: 1861 adds r1, r4, r1 + 40232c: 790a ldrb r2, [r1, #4] + 40232e: 7022 strb r2, [r4, #0] + 402330: 2280 movs r2, #128 + 402332: 7062 strb r2, [r4, #1] + 402334: 7949 ldrb r1, [r1, #5] + 402336: 70a1 strb r1, [r4, #2] + 402338: 70e0 strb r0, [r4, #3] + +0040233a : + 40233a: 78a2 ldrb r2, [r4, #2] + 40233c: 7861 ldrb r1, [r4, #1] + 40233e: 7820 ldrb r0, [r4, #0] + 402340: 1a0b subs r3, r1, r0 + 402342: 2b20 cmp r3, #32 + 402344: db0c blt.n 402360 + 402346: 2100 movs r1, #0 + 402348: 7721 strb r1, [r4, #28] + 40234a: 0001 lsls r1, r0, #0 + 40234c: 3120 adds r1, #32 + 40234e: 0609 lsls r1, r1, #24 + 402350: 0e09 lsrs r1, r1, #24 + 402352: f7ff ffbd bl 4022d0 + 402356: 7820 ldrb r0, [r4, #0] + 402358: 3020 adds r0, #32 + 40235a: 7020 strb r0, [r4, #0] + 40235c: 2000 movs r0, #0 + 40235e: e003 b.n 402368 + +00402360 : + 402360: f7ff ffb6 bl 4022d0 + 402364: 2001 movs r0, #1 + 402366: 7720 strb r0, [r4, #28] + +00402368 : + 402368: 9901 ldr r1, [sp, #4] + 40236a: bc10 pop {r4} + 40236c: b001 add sp, #4 + 40236e: 4708 bx r1 + +00402370 : + 402370: 20ff movs r0, #255 + 402372: e7f9 b.n 402368 + +00402374 : + 402374: 00405484 .word 0x00405484 + +00402378 : + 402378: b580 push {r7, lr} + 40237a: 488d ldr r0, [pc, #564] (4025b0 ) + 40237c: 7841 ldrb r1, [r0, #1] + 40237e: 0089 lsls r1, r1, #2 + 402380: 1840 adds r0, r0, r1 + 402382: 6ac0 ldr r0, [r0, #44] + 402384: 2800 cmp r0, #0 + 402386: d005 beq.n 402394 + 402388: 68c1 ldr r1, [r0, #12] + 40238a: 2900 cmp r1, #0 + 40238c: d002 beq.n 402394 + 40238e: 0008 lsls r0, r1, #0 + 402390: f001 fdd5 bl 403f3e <__iar_via_R0> + +00402394 : + 402394: 9801 ldr r0, [sp, #4] + 402396: b002 add sp, #8 + 402398: 4700 bx r0 + +0040239a : + 40239a: b430 push {r4, r5} + 40239c: 4a84 ldr r2, [pc, #528] (4025b0 ) + 40239e: 7893 ldrb r3, [r2, #2] + 4023a0: 009c lsls r4, r3, #2 + 4023a2: 1914 adds r4, r2, r4 + 4023a4: 6ae5 ldr r5, [r4, #44] + 4023a6: 2d00 cmp r5, #0 + 4023a8: d002 beq.n 4023b0 + 4023aa: 2002 movs r0, #2 + 4023ac: bc30 pop {r4, r5} + 4023ae: 4770 bx lr + +004023b0 : + 4023b0: 7805 ldrb r5, [r0, #0] + 4023b2: 076d lsls r5, r5, #29 + 4023b4: 0f6d lsrs r5, r5, #29 + 4023b6: 7005 strb r5, [r0, #0] + 4023b8: 62e0 str r0, [r4, #44] + 4023ba: 63e1 str r1, [r4, #60] + 4023bc: 2b03 cmp r3, #3 + 4023be: d101 bne.n 4023c4 + 4023c0: 2300 movs r3, #0 + 4023c2: e000 b.n 4023c6 + +004023c4 : + 4023c4: 1c5b adds r3, r3, #1 + +004023c6 : + 4023c6: 7093 strb r3, [r2, #2] + 4023c8: 2000 movs r0, #0 + 4023ca: bc30 pop {r4, r5} + 4023cc: 4770 bx lr + +004023ce : + 4023ce: 4878 ldr r0, [pc, #480] (4025b0 ) + 4023d0: 7841 ldrb r1, [r0, #1] + 4023d2: 008a lsls r2, r1, #2 + 4023d4: 1882 adds r2, r0, r2 + 4023d6: 6ad3 ldr r3, [r2, #44] + 4023d8: 2b00 cmp r3, #0 + 4023da: d008 beq.n 4023ee + 4023dc: 2300 movs r3, #0 + 4023de: 62d3 str r3, [r2, #44] + 4023e0: 63d3 str r3, [r2, #60] + 4023e2: 2903 cmp r1, #3 + 4023e4: d101 bne.n 4023ea + 4023e6: 2100 movs r1, #0 + 4023e8: e000 b.n 4023ec + +004023ea : + 4023ea: 1c49 adds r1, r1, #1 + +004023ec : + 4023ec: 7041 strb r1, [r0, #1] + +004023ee : + 4023ee: 2000 movs r0, #0 + 4023f0: 4770 bx lr + ... + +004023f4 : + 4023f4: 2000 movs r0, #0 + 4023f6: 496e ldr r1, [pc, #440] (4025b0 ) + 4023f8: 62c8 str r0, [r1, #44] + 4023fa: 63c8 str r0, [r1, #60] + 4023fc: 6308 str r0, [r1, #48] + 4023fe: 6408 str r0, [r1, #64] + 402400: 6348 str r0, [r1, #52] + 402402: 6448 str r0, [r1, #68] + 402404: 6388 str r0, [r1, #56] + 402406: 6488 str r0, [r1, #72] + 402408: 7048 strb r0, [r1, #1] + 40240a: 7088 strb r0, [r1, #2] + 40240c: 6508 str r0, [r1, #80] + 40240e: 70c8 strb r0, [r1, #3] + 402410: 000a lsls r2, r1, #0 + 402412: 325c adds r2, #92 + 402414: 60ca str r2, [r1, #12] + 402416: 6148 str r0, [r1, #20] + 402418: 201a movs r0, #26 + 40241a: 7208 strb r0, [r1, #8] + 40241c: 4801 ldr r0, [pc, #4] (402424 ) + 40241e: 8508 strh r0, [r1, #40] + 402420: 2000 movs r0, #0 + 402422: 4770 bx lr + +00402424 : + 402424: 0000ffff .word 0x0000ffff + +00402428 : + 402428: b510 push {r4, lr} + 40242a: 4c61 ldr r4, [pc, #388] (4025b0 ) + 40242c: 7860 ldrb r0, [r4, #1] + 40242e: 0080 lsls r0, r0, #2 + 402430: 1820 adds r0, r4, r0 + 402432: 6ac0 ldr r0, [r0, #44] + 402434: 2800 cmp r0, #0 + 402436: d00b beq.n 402450 + 402438: 2107 movs r1, #7 + 40243a: 7802 ldrb r2, [r0, #0] + 40243c: 400a ands r2, r1 + 40243e: 2a04 cmp r2, #4 + 402440: d206 bcs.n 402450 + 402442: 7800 ldrb r0, [r0, #0] + 402444: 4001 ands r1, r0 + 402446: 0088 lsls r0, r1, #2 + 402448: 4904 ldr r1, [pc, #16] (40245c ) + 40244a: 5808 ldr r0, [r1, r0] + 40244c: f001 fd77 bl 403f3e <__iar_via_R0> + +00402450 : + 402450: 78e0 ldrb r0, [r4, #3] + 402452: 2801 cmp r0, #1 + 402454: d101 bne.n 40245a + 402456: f000 fb49 bl 402aec + +0040245a : + 40245a: e335 b.n 402ac8 + +0040245c : + 40245c: 00403f04 .word 0x00403f04 + +00402460 : + 402460: b538 push {r3, r4, r5, lr} + 402462: 4c53 ldr r4, [pc, #332] (4025b0 ) + 402464: 7860 ldrb r0, [r4, #1] + 402466: 0080 lsls r0, r0, #2 + 402468: 1820 adds r0, r4, r0 + 40246a: 6ac0 ldr r0, [r0, #44] + 40246c: 7801 ldrb r1, [r0, #0] + 40246e: 08c9 lsrs r1, r1, #3 + 402470: d006 beq.n 402480 + 402472: 1e49 subs r1, r1, #1 + 402474: d01a beq.n 4024ac + 402476: 1e49 subs r1, r1, #1 + 402478: d029 beq.n 4024ce + 40247a: 1f09 subs r1, r1, #4 + 40247c: d05f beq.n 40253e + 40247e: e064 b.n 40254a + +00402480 : + 402480: 2100 movs r1, #0 + 402482: 6521 str r1, [r4, #80] + 402484: 7021 strb r1, [r4, #0] + 402486: 7a01 ldrb r1, [r0, #8] + 402488: 1d09 adds r1, r1, #4 + 40248a: 4a4a ldr r2, [pc, #296] (4025b4 ) + 40248c: 6011 str r1, [r2, #0] + 40248e: 494a ldr r1, [pc, #296] (4025b8 ) + 402490: 6842 ldr r2, [r0, #4] + 402492: 678a str r2, [r1, #120] + 402494: 0022 lsls r2, r4, #0 + 402496: 3260 adds r2, #96 + 402498: 674a str r2, [r1, #116] + 40249a: 4a44 ldr r2, [pc, #272] (4025ac ) + 40249c: 600a str r2, [r1, #0] + 40249e: 7801 ldrb r1, [r0, #0] + 4024a0: 0749 lsls r1, r1, #29 + 4024a2: 0f49 lsrs r1, r1, #29 + 4024a4: 2208 movs r2, #8 + +004024a6 : + 4024a6: 430a orrs r2, r1 + 4024a8: 7002 strb r2, [r0, #0] + 4024aa: e050 b.n 40254e + +004024ac : + 4024ac: 6d21 ldr r1, [r4, #80] + 4024ae: 07ca lsls r2, r1, #31 + 4024b0: d404 bmi.n 4024bc + 4024b2: 2220 movs r2, #32 + 4024b4: 400a ands r2, r1 + 4024b6: 0951 lsrs r1, r2, #5 + 4024b8: 2901 cmp r1, #1 + 4024ba: d148 bne.n 40254e + +004024bc : + 4024bc: 6d21 ldr r1, [r4, #80] + 4024be: 2201 movs r2, #1 + 4024c0: 4391 bics r1, r2 + 4024c2: 6521 str r1, [r4, #80] + 4024c4: 7801 ldrb r1, [r0, #0] + 4024c6: 0749 lsls r1, r1, #29 + 4024c8: 0f49 lsrs r1, r1, #29 + 4024ca: 2210 movs r2, #16 + 4024cc: e7eb b.n 4024a6 + +004024ce : + 4024ce: 2120 movs r1, #32 + 4024d0: 6d22 ldr r2, [r4, #80] + 4024d2: 400a ands r2, r1 + 4024d4: 0952 lsrs r2, r2, #5 + 4024d6: 2a01 cmp r2, #1 + 4024d8: d139 bne.n 40254e + 4024da: 6d22 ldr r2, [r4, #80] + 4024dc: 438a bics r2, r1 + 4024de: 6522 str r2, [r4, #80] + 4024e0: 2207 movs r2, #7 + 4024e2: 6d23 ldr r3, [r4, #80] + 4024e4: 2540 movs r5, #64 + 4024e6: 401d ands r5, r3 + 4024e8: 09ab lsrs r3, r5, #6 + 4024ea: 2b01 cmp r3, #1 + 4024ec: d108 bne.n 402500 + 4024ee: 6d23 ldr r3, [r4, #80] + 4024f0: 2540 movs r5, #64 + 4024f2: 43ab bics r3, r5 + 4024f4: 6523 str r3, [r4, #80] + 4024f6: 7803 ldrb r3, [r0, #0] + 4024f8: 401a ands r2, r3 + 4024fa: 4311 orrs r1, r2 + 4024fc: 7001 strb r1, [r0, #0] + 4024fe: e024 b.n 40254a + +00402500 : + 402500: 7821 ldrb r1, [r4, #0] + 402502: 2900 cmp r1, #0 + 402504: d015 beq.n 402532 + 402506: 1e49 subs r1, r1, #1 + 402508: 7021 strb r1, [r4, #0] + 40250a: 2100 movs r1, #0 + 40250c: 6521 str r1, [r4, #80] + 40250e: 7a01 ldrb r1, [r0, #8] + 402510: 1d09 adds r1, r1, #4 + 402512: 4b28 ldr r3, [pc, #160] (4025b4 ) + 402514: 6019 str r1, [r3, #0] + 402516: 4928 ldr r1, [pc, #160] (4025b8 ) + 402518: 6843 ldr r3, [r0, #4] + 40251a: 678b str r3, [r1, #120] + 40251c: 0023 lsls r3, r4, #0 + 40251e: 3360 adds r3, #96 + 402520: 674b str r3, [r1, #116] + 402522: 4b22 ldr r3, [pc, #136] (4025ac ) + 402524: 600b str r3, [r1, #0] + 402526: 7801 ldrb r1, [r0, #0] + 402528: 400a ands r2, r1 + 40252a: 2108 movs r1, #8 + 40252c: 4311 orrs r1, r2 + 40252e: 7001 strb r1, [r0, #0] + 402530: e00d b.n 40254e + +00402532 : + 402532: 7801 ldrb r1, [r0, #0] + 402534: 400a ands r2, r1 + 402536: 2128 movs r1, #40 + 402538: 4311 orrs r1, r2 + 40253a: 7001 strb r1, [r0, #0] + 40253c: e005 b.n 40254a + +0040253e : + 40253e: 7801 ldrb r1, [r0, #0] + 402540: 0749 lsls r1, r1, #29 + 402542: 0f49 lsrs r1, r1, #29 + 402544: 2238 movs r2, #56 + 402546: 430a orrs r2, r1 + 402548: 7002 strb r2, [r0, #0] + +0040254a : + 40254a: f7ff ff40 bl 4023ce + +0040254e : + 40254e: 6d20 ldr r0, [r4, #80] + 402550: 2180 movs r1, #128 + 402552: 0089 lsls r1, r1, #2 + 402554: 4001 ands r1, r0 + 402556: 0a49 lsrs r1, r1, #9 + 402558: 2901 cmp r1, #1 + 40255a: d010 beq.n 40257e + 40255c: 2180 movs r1, #128 + 40255e: 02c9 lsls r1, r1, #11 + 402560: 4001 ands r1, r0 + 402562: 0c89 lsrs r1, r1, #18 + 402564: 2901 cmp r1, #1 + 402566: d00a beq.n 40257e + 402568: 2108 movs r1, #8 + 40256a: 4001 ands r1, r0 + 40256c: 08c9 lsrs r1, r1, #3 + 40256e: 2901 cmp r1, #1 + 402570: d005 beq.n 40257e + 402572: 2180 movs r1, #128 + 402574: 0349 lsls r1, r1, #13 + 402576: 4001 ands r1, r0 + 402578: 0d08 lsrs r0, r1, #20 + 40257a: 2801 cmp r0, #1 + 40257c: d10f bne.n 40259e + +0040257e : + 40257e: 6d20 ldr r0, [r4, #80] + 402580: 490e ldr r1, [pc, #56] (4025bc ) + 402582: 4001 ands r1, r0 + 402584: 6521 str r1, [r4, #80] + 402586: 7860 ldrb r0, [r4, #1] + 402588: 0080 lsls r0, r0, #2 + 40258a: 1820 adds r0, r4, r0 + 40258c: 6ac0 ldr r0, [r0, #44] + 40258e: 7801 ldrb r1, [r0, #0] + 402590: 0749 lsls r1, r1, #29 + 402592: 0f49 lsrs r1, r1, #29 + 402594: 2228 movs r2, #40 + 402596: 430a orrs r2, r1 + 402598: 7002 strb r2, [r0, #0] + 40259a: f7ff ff18 bl 4023ce + +0040259e : + 40259e: 2000 movs r0, #0 + 4025a0: b001 add sp, #4 + 4025a2: 9902 ldr r1, [sp, #8] + 4025a4: bc30 pop {r4, r5} + 4025a6: b001 add sp, #4 + 4025a8: 4708 bx r1 + 4025aa: 46c0 nop (mov r8, r8) + +004025ac : + 4025ac: 00000a03 .word 0x00000a03 + +004025b0 : + 4025b0: 00405368 .word 0x00405368 + +004025b4 : + 4025b4: 8000408c .word 0x8000408c + +004025b8 : + 4025b8: 8000400c .word 0x8000400c + +004025bc : + 4025bc: ffebfdf7 .word 0xffebfdf7 + +004025c0 : + 4025c0: b570 push {r4, r5, r6, lr} + 4025c2: 4c79 ldr r4, [pc, #484] (4027a8 ) + 4025c4: 7860 ldrb r0, [r4, #1] + 4025c6: 0080 lsls r0, r0, #2 + 4025c8: 1821 adds r1, r4, r0 + 4025ca: 6ac8 ldr r0, [r1, #44] + 4025cc: 7802 ldrb r2, [r0, #0] + 4025ce: 08d2 lsrs r2, r2, #3 + 4025d0: 2a07 cmp r2, #7 + 4025d2: d900 bls.n 4025d6 + 4025d4: e0b8 b.n 402748 + 4025d6: a302 add r3, pc, #8 (adr r3, 4025e0 ) + 4025d8: 5c9b ldrb r3, [r3, r2] + 4025da: 005b lsls r3, r3, #1 + 4025dc: 449f add pc, r3 + 4025de: 46c0 nop (mov r8, r8) + +004025e0 : + 4025e0: b63d2b04 .word 0xb63d2b04 + 4025e4: aeb4b4b4 .word 0xaeb4b4b4 + +004025e8 : + 4025e8: 2200 movs r2, #0 + 4025ea: 6522 str r2, [r4, #80] + 4025ec: 7022 strb r2, [r4, #0] + 4025ee: 6bc9 ldr r1, [r1, #60] + 4025f0: 64e1 str r1, [r4, #76] + 4025f2: 7a03 ldrb r3, [r0, #8] + 4025f4: 041b lsls r3, r3, #16 + 4025f6: 4d6d ldr r5, [pc, #436] (4027ac ) + 4025f8: 602b str r3, [r5, #0] + 4025fa: 4b6d ldr r3, [pc, #436] (4027b0 ) + 4025fc: 0025 lsls r5, r4, #0 + 4025fe: 3560 adds r5, #96 + 402600: 679d str r5, [r3, #120] + 402602: 6845 ldr r5, [r0, #4] + 402604: 675d str r5, [r3, #116] + 402606: 2900 cmp r1, #0 + 402608: d00a beq.n 402620 + 40260a: 6bda ldr r2, [r3, #60] + 40260c: 1851 adds r1, r2, r1 + 40260e: 6459 str r1, [r3, #68] + 402610: 6bd9 ldr r1, [r3, #60] + 402612: 22ff movs r2, #255 + 402614: 0052 lsls r2, r2, #1 + 402616: 1889 adds r1, r1, r2 + 402618: 6499 str r1, [r3, #72] + 40261a: 0019 lsls r1, r3, #0 + 40261c: 2206 movs r2, #6 + 40261e: e000 b.n 402622 + +00402620 : + 402620: 0019 lsls r1, r3, #0 + +00402622 : + 402622: 634a str r2, [r1, #52] + 402624: 4a63 ldr r2, [pc, #396] (4027b4 ) + 402626: 600a str r2, [r1, #0] + 402628: 7801 ldrb r1, [r0, #0] + 40262a: 0749 lsls r1, r1, #29 + 40262c: 0f49 lsrs r1, r1, #29 + 40262e: 2208 movs r2, #8 + +00402630 : + 402630: 430a orrs r2, r1 + 402632: 7002 strb r2, [r0, #0] + 402634: e08a b.n 40274c + +00402636 : + 402636: 6d21 ldr r1, [r4, #80] + 402638: 07ca lsls r2, r1, #31 + 40263a: d405 bmi.n 402648 + 40263c: 2220 movs r2, #32 + 40263e: 400a ands r2, r1 + 402640: 0951 lsrs r1, r2, #5 + 402642: 2901 cmp r1, #1 + 402644: d000 beq.n 402648 + 402646: e081 b.n 40274c + +00402648 : + 402648: 6d21 ldr r1, [r4, #80] + 40264a: 2201 movs r2, #1 + 40264c: 4391 bics r1, r2 + 40264e: 6521 str r1, [r4, #80] + 402650: 7801 ldrb r1, [r0, #0] + 402652: 0749 lsls r1, r1, #29 + 402654: 0f49 lsrs r1, r1, #29 + 402656: 2210 movs r2, #16 + 402658: e7ea b.n 402630 + +0040265a : + 40265a: 2220 movs r2, #32 + 40265c: 6d23 ldr r3, [r4, #80] + 40265e: 4013 ands r3, r2 + 402660: 095b lsrs r3, r3, #5 + 402662: 2b01 cmp r3, #1 + 402664: d172 bne.n 40274c + 402666: 6d23 ldr r3, [r4, #80] + 402668: 4393 bics r3, r2 + 40266a: 6523 str r3, [r4, #80] + 40266c: 2540 movs r5, #64 + 40266e: 401d ands r5, r3 + 402670: 09ad lsrs r5, r5, #6 + 402672: 2d01 cmp r5, #1 + 402674: d10f bne.n 402696 + 402676: 001a lsls r2, r3, #0 + 402678: 2340 movs r3, #64 + 40267a: 439a bics r2, r3 + 40267c: 6522 str r2, [r4, #80] + 40267e: 6842 ldr r2, [r0, #4] + 402680: 7812 ldrb r2, [r2, #0] + 402682: 1f12 subs r2, r2, #4 + 402684: 7202 strb r2, [r0, #8] + 402686: 6ac8 ldr r0, [r1, #44] + 402688: 7801 ldrb r1, [r0, #0] + 40268a: 0749 lsls r1, r1, #29 + 40268c: 0f49 lsrs r1, r1, #29 + 40268e: 2228 movs r2, #40 + 402690: 430a orrs r2, r1 + 402692: 7002 strb r2, [r0, #0] + 402694: e058 b.n 402748 + +00402696 : + 402696: 2504 movs r5, #4 + 402698: 401d ands r5, r3 + 40269a: 08ad lsrs r5, r5, #2 + 40269c: 2d01 cmp r5, #1 + 40269e: d02e beq.n 4026fe + 4026a0: 0255 lsls r5, r2, #9 + 4026a2: 401d ands r5, r3 + 4026a4: 0bad lsrs r5, r5, #14 + 4026a6: 2d01 cmp r5, #1 + 4026a8: d029 beq.n 4026fe + 4026aa: 0295 lsls r5, r2, #10 + 4026ac: 401d ands r5, r3 + 4026ae: 0beb lsrs r3, r5, #15 + 4026b0: 2b01 cmp r3, #1 + 4026b2: d024 beq.n 4026fe + 4026b4: 7822 ldrb r2, [r4, #0] + 4026b6: 2a00 cmp r2, #0 + 4026b8: d038 beq.n 40272c + 4026ba: 1e53 subs r3, r2, #1 + 4026bc: 7023 strb r3, [r4, #0] + 4026be: 2200 movs r2, #0 + 4026c0: 6522 str r2, [r4, #80] + 4026c2: 7202 strb r2, [r0, #8] + 4026c4: 6ac8 ldr r0, [r1, #44] + 4026c6: 7a05 ldrb r5, [r0, #8] + 4026c8: 042d lsls r5, r5, #16 + 4026ca: 4e38 ldr r6, [pc, #224] (4027ac ) + 4026cc: 6035 str r5, [r6, #0] + 4026ce: 4d38 ldr r5, [pc, #224] (4027b0 ) + 4026d0: 0026 lsls r6, r4, #0 + 4026d2: 3660 adds r6, #96 + 4026d4: 67ae str r6, [r5, #120] + 4026d6: 6846 ldr r6, [r0, #4] + 4026d8: 676e str r6, [r5, #116] + 4026da: 6ce5 ldr r5, [r4, #76] + 4026dc: 2d00 cmp r5, #0 + 4026de: d018 beq.n 402712 + 4026e0: 4a33 ldr r2, [pc, #204] (4027b0 ) + 4026e2: 6bd2 ldr r2, [r2, #60] + 4026e4: 1952 adds r2, r2, r5 + 4026e6: 4d32 ldr r5, [pc, #200] (4027b0 ) + 4026e8: 646a str r2, [r5, #68] + 4026ea: 6bea ldr r2, [r5, #60] + 4026ec: 25ff movs r5, #255 + 4026ee: 006d lsls r5, r5, #1 + 4026f0: 1952 adds r2, r2, r5 + 4026f2: 4d2f ldr r5, [pc, #188] (4027b0 ) + 4026f4: 64aa str r2, [r5, #72] + 4026f6: 002a lsls r2, r5, #0 + 4026f8: 2506 movs r5, #6 + 4026fa: 6355 str r5, [r2, #52] + 4026fc: e00b b.n 402716 + +004026fe : + 4026fe: 6d21 ldr r1, [r4, #80] + 402700: 4b2d ldr r3, [pc, #180] (4027b8 ) + 402702: 400b ands r3, r1 + 402704: 6523 str r3, [r4, #80] + 402706: 7801 ldrb r1, [r0, #0] + 402708: 0749 lsls r1, r1, #29 + 40270a: 0f49 lsrs r1, r1, #29 + 40270c: 430a orrs r2, r1 + 40270e: 7002 strb r2, [r0, #0] + 402710: e01a b.n 402748 + +00402712 : + 402712: 4d27 ldr r5, [pc, #156] (4027b0 ) + 402714: 636a str r2, [r5, #52] + +00402716 : + 402716: 4a26 ldr r2, [pc, #152] (4027b0 ) + 402718: 4d26 ldr r5, [pc, #152] (4027b4 ) + 40271a: 6015 str r5, [r2, #0] + 40271c: 7802 ldrb r2, [r0, #0] + 40271e: 0752 lsls r2, r2, #29 + 402720: 0f52 lsrs r2, r2, #29 + 402722: 2508 movs r5, #8 + 402724: 4315 orrs r5, r2 + 402726: 7005 strb r5, [r0, #0] + 402728: 061b lsls r3, r3, #24 + 40272a: d10f bne.n 40274c + +0040272c : + 40272c: 6ac8 ldr r0, [r1, #44] + 40272e: 7801 ldrb r1, [r0, #0] + 402730: 0749 lsls r1, r1, #29 + 402732: 0f49 lsrs r1, r1, #29 + 402734: 2230 movs r2, #48 + 402736: 430a orrs r2, r1 + 402738: 7002 strb r2, [r0, #0] + 40273a: e005 b.n 402748 + +0040273c : + 40273c: 7801 ldrb r1, [r0, #0] + 40273e: 0749 lsls r1, r1, #29 + 402740: 0f49 lsrs r1, r1, #29 + 402742: 2240 movs r2, #64 + 402744: 430a orrs r2, r1 + 402746: 7002 strb r2, [r0, #0] + +00402748 : + 402748: f7ff fe41 bl 4023ce + +0040274c : + 40274c: 6d20 ldr r0, [r4, #80] + 40274e: 2180 movs r1, #128 + 402750: 0089 lsls r1, r1, #2 + 402752: 4001 ands r1, r0 + 402754: 0a49 lsrs r1, r1, #9 + 402756: 2901 cmp r1, #1 + 402758: d010 beq.n 40277c + 40275a: 2180 movs r1, #128 + 40275c: 02c9 lsls r1, r1, #11 + 40275e: 4001 ands r1, r0 + 402760: 0c89 lsrs r1, r1, #18 + 402762: 2901 cmp r1, #1 + 402764: d00a beq.n 40277c + 402766: 2108 movs r1, #8 + 402768: 4001 ands r1, r0 + 40276a: 08c9 lsrs r1, r1, #3 + 40276c: 2901 cmp r1, #1 + 40276e: d005 beq.n 40277c + 402770: 2180 movs r1, #128 + 402772: 0349 lsls r1, r1, #13 + 402774: 4001 ands r1, r0 + 402776: 0d08 lsrs r0, r1, #20 + 402778: 2801 cmp r0, #1 + 40277a: d10f bne.n 40279c + +0040277c : + 40277c: 6d20 ldr r0, [r4, #80] + 40277e: 490f ldr r1, [pc, #60] (4027bc ) + 402780: 4001 ands r1, r0 + 402782: 6521 str r1, [r4, #80] + 402784: 7860 ldrb r0, [r4, #1] + 402786: 0080 lsls r0, r0, #2 + 402788: 1820 adds r0, r4, r0 + 40278a: 6ac0 ldr r0, [r0, #44] + 40278c: 7801 ldrb r1, [r0, #0] + 40278e: 0749 lsls r1, r1, #29 + 402790: 0f49 lsrs r1, r1, #29 + 402792: 2230 movs r2, #48 + 402794: 430a orrs r2, r1 + 402796: 7002 strb r2, [r0, #0] + 402798: f7ff fe19 bl 4023ce + +0040279c : + 40279c: 2000 movs r0, #0 + 40279e: 9903 ldr r1, [sp, #12] + 4027a0: bc70 pop {r4, r5, r6} + 4027a2: b001 add sp, #4 + 4027a4: 4708 bx r1 + 4027a6: 46c0 nop (mov r8, r8) + +004027a8 : + 4027a8: 00405368 .word 0x00405368 + 4027ac: 8000408c .word 0x8000408c + 4027b0: 8000400c .word 0x8000400c + 4027b4: 00000a04 .word 0x00000a04 + 4027b8: ffff3ffb .word 0xffff3ffb + 4027bc: ffebfdf7 .word 0xffebfdf7 + +004027c0 : + 4027c0: b5f8 push {r3, r4, r5, r6, r7, lr} + 4027c2: 4c68 ldr r4, [pc, #416] (402964 ) + 4027c4: 7860 ldrb r0, [r4, #1] + 4027c6: 0080 lsls r0, r0, #2 + 4027c8: 1821 adds r1, r4, r0 + 4027ca: 6ac8 ldr r0, [r1, #44] + 4027cc: 7802 ldrb r2, [r0, #0] + 4027ce: 08d2 lsrs r2, r2, #3 + 4027d0: d005 beq.n 4027de + 4027d2: 1e52 subs r2, r2, #1 + 4027d4: d032 beq.n 40283c + 4027d6: 1ed2 subs r2, r2, #3 + 4027d8: d100 bne.n 4027dc + 4027da: e08c b.n 4028f6 + 4027dc: e091 b.n 402902 + +004027de : + 4027de: 2100 movs r1, #0 + 4027e0: 6521 str r1, [r4, #80] + 4027e2: 7021 strb r1, [r4, #0] + 4027e4: 2607 movs r6, #7 + 4027e6: 7a01 ldrb r1, [r0, #8] + 4027e8: 2910 cmp r1, #16 + 4027ea: d221 bcs.n 402830 + 4027ec: 4669 mov r1, sp + 4027ee: 7a00 ldrb r0, [r0, #8] + 4027f0: 7008 strb r0, [r1, #0] + 4027f2: 4d5d ldr r5, [pc, #372] (402968 ) + 4027f4: 0029 lsls r1, r5, #0 + 4027f6: 3110 adds r1, #16 + 4027f8: 0028 lsls r0, r5, #0 + 4027fa: f000 fc97 bl 40312c + 4027fe: 0007 lsls r7, r0, #0 + 402800: 4668 mov r0, sp + 402802: 7800 ldrb r0, [r0, #0] + 402804: 0081 lsls r1, r0, #2 + 402806: 1869 adds r1, r5, r1 + 402808: 690a ldr r2, [r1, #16] + 40280a: 5c29 ldrb r1, [r5, r0] + 40280c: 4668 mov r0, sp + 40280e: 7800 ldrb r0, [r0, #0] + 402810: f000 fc6c bl 4030ec + 402814: 4855 ldr r0, [pc, #340] (40296c ) + 402816: 4956 ldr r1, [pc, #344] (402970 ) + 402818: 6001 str r1, [r0, #0] + 40281a: 65a7 str r7, [r4, #88] + 40281c: 7860 ldrb r0, [r4, #1] + 40281e: 0080 lsls r0, r0, #2 + 402820: 1820 adds r0, r4, r0 + 402822: 6ac0 ldr r0, [r0, #44] + 402824: 7801 ldrb r1, [r0, #0] + 402826: 400e ands r6, r1 + 402828: 2108 movs r1, #8 + 40282a: 4331 orrs r1, r6 + 40282c: 7001 strb r1, [r0, #0] + 40282e: e06a b.n 402906 + +00402830 : + 402830: 7801 ldrb r1, [r0, #0] + 402832: 400e ands r6, r1 + 402834: 2118 movs r1, #24 + 402836: 4331 orrs r1, r6 + 402838: 7001 strb r1, [r0, #0] + 40283a: e062 b.n 402902 + +0040283c : + 40283c: 6d22 ldr r2, [r4, #80] + 40283e: 2320 movs r3, #32 + 402840: 4013 ands r3, r2 + 402842: 095a lsrs r2, r3, #5 + 402844: 2a01 cmp r2, #1 + 402846: d15e bne.n 402906 + 402848: 6d22 ldr r2, [r4, #80] + 40284a: 2320 movs r3, #32 + 40284c: 439a bics r2, r3 + 40284e: 6522 str r2, [r4, #80] + 402850: 2340 movs r3, #64 + 402852: 4013 ands r3, r2 + 402854: 099a lsrs r2, r3, #6 + 402856: 2a01 cmp r2, #1 + 402858: d124 bne.n 4028a4 + 40285a: 6d22 ldr r2, [r4, #80] + 40285c: 2340 movs r3, #64 + 40285e: 439a bics r2, r3 + 402860: 6522 str r2, [r4, #80] + 402862: 7802 ldrb r2, [r0, #0] + 402864: 0752 lsls r2, r2, #29 + 402866: 0f52 lsrs r2, r2, #29 + 402868: 2310 movs r3, #16 + 40286a: 4313 orrs r3, r2 + 40286c: 7003 strb r3, [r0, #0] + 40286e: 4841 ldr r0, [pc, #260] (402974 ) + 402870: 6800 ldr r0, [r0, #0] + 402872: 22ff movs r2, #255 + 402874: 4010 ands r0, r2 + 402876: 280f cmp r0, #15 + 402878: d201 bcs.n 40287e + 40287a: 2200 movs r2, #0 + 40287c: e004 b.n 402888 + +0040287e : + 40287e: 2865 cmp r0, #101 + 402880: d202 bcs.n 402888 + 402882: 0042 lsls r2, r0, #1 + 402884: 1812 adds r2, r2, r0 + 402886: 3a2d subs r2, #45 + +00402888 : + 402888: 6ac8 ldr r0, [r1, #44] + 40288a: 6840 ldr r0, [r0, #4] + 40288c: 7082 strb r2, [r0, #2] + 40288e: 6da0 ldr r0, [r4, #88] + 402890: 4d35 ldr r5, [pc, #212] (402968 ) + 402892: 0081 lsls r1, r0, #2 + 402894: 1869 adds r1, r5, r1 + 402896: 690a ldr r2, [r1, #16] + 402898: 5c29 ldrb r1, [r5, r0] + 40289a: 0600 lsls r0, r0, #24 + 40289c: 0e00 lsrs r0, r0, #24 + 40289e: f000 fc25 bl 4030ec + 4028a2: e02e b.n 402902 + +004028a4 : + 4028a4: 7821 ldrb r1, [r4, #0] + 4028a6: 4d30 ldr r5, [pc, #192] (402968 ) + 4028a8: 2900 cmp r1, #0 + 4028aa: d014 beq.n 4028d6 + 4028ac: 1e49 subs r1, r1, #1 + 4028ae: 7021 strb r1, [r4, #0] + 4028b0: 2100 movs r1, #0 + 4028b2: 6521 str r1, [r4, #80] + 4028b4: 7a06 ldrb r6, [r0, #8] + 4028b6: 0029 lsls r1, r5, #0 + 4028b8: 3110 adds r1, #16 + 4028ba: 0028 lsls r0, r5, #0 + 4028bc: f000 fc36 bl 40312c + 4028c0: 00b0 lsls r0, r6, #2 + 4028c2: 1828 adds r0, r5, r0 + 4028c4: 6902 ldr r2, [r0, #16] + 4028c6: 5da9 ldrb r1, [r5, r6] + 4028c8: 0030 lsls r0, r6, #0 + 4028ca: f000 fc0f bl 4030ec + 4028ce: 4827 ldr r0, [pc, #156] (40296c ) + 4028d0: 4927 ldr r1, [pc, #156] (402970 ) + 4028d2: 6001 str r1, [r0, #0] + 4028d4: e017 b.n 402906 + +004028d6 : + 4028d6: 7801 ldrb r1, [r0, #0] + 4028d8: 0749 lsls r1, r1, #29 + 4028da: 0f49 lsrs r1, r1, #29 + 4028dc: 2218 movs r2, #24 + 4028de: 430a orrs r2, r1 + 4028e0: 7002 strb r2, [r0, #0] + 4028e2: 6da0 ldr r0, [r4, #88] + 4028e4: 0081 lsls r1, r0, #2 + 4028e6: 1869 adds r1, r5, r1 + 4028e8: 690a ldr r2, [r1, #16] + 4028ea: 5c29 ldrb r1, [r5, r0] + 4028ec: 0600 lsls r0, r0, #24 + 4028ee: 0e00 lsrs r0, r0, #24 + 4028f0: f000 fbfc bl 4030ec + 4028f4: e005 b.n 402902 + +004028f6 : + 4028f6: 7801 ldrb r1, [r0, #0] + 4028f8: 0749 lsls r1, r1, #29 + 4028fa: 0f49 lsrs r1, r1, #29 + 4028fc: 2228 movs r2, #40 + 4028fe: 430a orrs r2, r1 + 402900: 7002 strb r2, [r0, #0] + +00402902 : + 402902: f7ff fd64 bl 4023ce + +00402906 : + 402906: 6d20 ldr r0, [r4, #80] + 402908: 2180 movs r1, #128 + 40290a: 0089 lsls r1, r1, #2 + 40290c: 4001 ands r1, r0 + 40290e: 0a49 lsrs r1, r1, #9 + 402910: 2901 cmp r1, #1 + 402912: d010 beq.n 402936 + 402914: 2180 movs r1, #128 + 402916: 02c9 lsls r1, r1, #11 + 402918: 4001 ands r1, r0 + 40291a: 0c89 lsrs r1, r1, #18 + 40291c: 2901 cmp r1, #1 + 40291e: d00a beq.n 402936 + 402920: 2108 movs r1, #8 + 402922: 4001 ands r1, r0 + 402924: 08c9 lsrs r1, r1, #3 + 402926: 2901 cmp r1, #1 + 402928: d005 beq.n 402936 + 40292a: 2180 movs r1, #128 + 40292c: 0349 lsls r1, r1, #13 + 40292e: 4001 ands r1, r0 + 402930: 0d08 lsrs r0, r1, #20 + 402932: 2801 cmp r0, #1 + 402934: d10f bne.n 402956 + +00402936 : + 402936: 6d20 ldr r0, [r4, #80] + 402938: 490f ldr r1, [pc, #60] (402978 ) + 40293a: 4001 ands r1, r0 + 40293c: 6521 str r1, [r4, #80] + 40293e: 7860 ldrb r0, [r4, #1] + 402940: 0080 lsls r0, r0, #2 + 402942: 1820 adds r0, r4, r0 + 402944: 6ac0 ldr r0, [r0, #44] + 402946: 7801 ldrb r1, [r0, #0] + 402948: 0749 lsls r1, r1, #29 + 40294a: 0f49 lsrs r1, r1, #29 + 40294c: 2218 movs r2, #24 + 40294e: 430a orrs r2, r1 + 402950: 7002 strb r2, [r0, #0] + 402952: f7ff fd3c bl 4023ce + +00402956 : + 402956: 2000 movs r0, #0 + 402958: b001 add sp, #4 + 40295a: 9904 ldr r1, [sp, #16] + 40295c: bcf0 pop {r4, r5, r6, r7} + 40295e: b001 add sp, #4 + 402960: 4708 bx r1 + 402962: 46c0 nop (mov r8, r8) + +00402964 : + 402964: 00405368 .word 0x00405368 + 402968: 00403c04 .word 0x00403c04 + 40296c: 8000400c .word 0x8000400c + 402970: 00000a07 .word 0x00000a07 + 402974: 80009488 .word 0x80009488 + 402978: ffebfdf7 .word 0xffebfdf7 + +0040297c : + 40297c: b510 push {r4, lr} + 40297e: 4c58 ldr r4, [pc, #352] (402ae0 ) + 402980: 7860 ldrb r0, [r4, #1] + 402982: 0080 lsls r0, r0, #2 + 402984: 1820 adds r0, r4, r0 + 402986: 6ac0 ldr r0, [r0, #44] + 402988: 7801 ldrb r1, [r0, #0] + 40298a: 08c9 lsrs r1, r1, #3 + 40298c: d004 beq.n 402998 + 40298e: 1e49 subs r1, r1, #1 + 402990: d01c beq.n 4029cc + 402992: 1ec9 subs r1, r1, #3 + 402994: d067 beq.n 402a66 + 402996: e06c b.n 402a72 + +00402998 : + 402998: 2100 movs r1, #0 + 40299a: 6521 str r1, [r4, #80] + 40299c: 7021 strb r1, [r4, #0] + 40299e: 4951 ldr r1, [pc, #324] (402ae4 ) + 4029a0: 6bc9 ldr r1, [r1, #60] + 4029a2: 6842 ldr r2, [r0, #4] + 4029a4: 7892 ldrb r2, [r2, #2] + 4029a6: 1889 adds r1, r1, r2 + 4029a8: 4a4e ldr r2, [pc, #312] (402ae4 ) + 4029aa: 6451 str r1, [r2, #68] + 4029ac: 6bd1 ldr r1, [r2, #60] + 4029ae: 6842 ldr r2, [r0, #4] + 4029b0: 7892 ldrb r2, [r2, #2] + 4029b2: 1889 adds r1, r1, r2 + 4029b4: 4a4b ldr r2, [pc, #300] (402ae4 ) + 4029b6: 6491 str r1, [r2, #72] + 4029b8: 0011 lsls r1, r2, #0 + 4029ba: 4a46 ldr r2, [pc, #280] (402ad4 ) + 4029bc: 600a str r2, [r1, #0] + 4029be: 7801 ldrb r1, [r0, #0] + 4029c0: 0749 lsls r1, r1, #29 + 4029c2: 0f49 lsrs r1, r1, #29 + 4029c4: 2208 movs r2, #8 + 4029c6: 430a orrs r2, r1 + 4029c8: 7002 strb r2, [r0, #0] + 4029ca: e054 b.n 402a76 + +004029cc : + 4029cc: 6d21 ldr r1, [r4, #80] + 4029ce: 2220 movs r2, #32 + 4029d0: 400a ands r2, r1 + 4029d2: 0951 lsrs r1, r2, #5 + 4029d4: 2901 cmp r1, #1 + 4029d6: d14e bne.n 402a76 + 4029d8: 6d21 ldr r1, [r4, #80] + 4029da: 2220 movs r2, #32 + 4029dc: 4391 bics r1, r2 + 4029de: 6521 str r1, [r4, #80] + 4029e0: 2240 movs r2, #64 + 4029e2: 400a ands r2, r1 + 4029e4: 0992 lsrs r2, r2, #6 + 4029e6: 2a01 cmp r2, #1 + 4029e8: d01f beq.n 402a2a + 4029ea: 2280 movs r2, #128 + 4029ec: 400a ands r2, r1 + 4029ee: 09d2 lsrs r2, r2, #7 + 4029f0: 2a01 cmp r2, #1 + 4029f2: d01a beq.n 402a2a + 4029f4: 2204 movs r2, #4 + 4029f6: 400a ands r2, r1 + 4029f8: 0892 lsrs r2, r2, #2 + 4029fa: 2a01 cmp r2, #1 + 4029fc: d015 beq.n 402a2a + 4029fe: 2280 movs r2, #128 + 402a00: 01d2 lsls r2, r2, #7 + 402a02: 400a ands r2, r1 + 402a04: 0b92 lsrs r2, r2, #14 + 402a06: 2a01 cmp r2, #1 + 402a08: d00f beq.n 402a2a + 402a0a: 2280 movs r2, #128 + 402a0c: 0212 lsls r2, r2, #8 + 402a0e: 400a ands r2, r1 + 402a10: 0bd1 lsrs r1, r2, #15 + 402a12: 2901 cmp r1, #1 + 402a14: d009 beq.n 402a2a + 402a16: 7821 ldrb r1, [r4, #0] + 402a18: 2900 cmp r1, #0 + 402a1a: d111 bne.n 402a40 + 402a1c: 7801 ldrb r1, [r0, #0] + 402a1e: 0749 lsls r1, r1, #29 + 402a20: 0f49 lsrs r1, r1, #29 + 402a22: 2218 movs r2, #24 + 402a24: 430a orrs r2, r1 + 402a26: 7002 strb r2, [r0, #0] + 402a28: e023 b.n 402a72 + +00402a2a : + 402a2a: 6d21 ldr r1, [r4, #80] + 402a2c: 4a2a ldr r2, [pc, #168] (402ad8 ) + 402a2e: 400a ands r2, r1 + 402a30: 6522 str r2, [r4, #80] + 402a32: 7801 ldrb r1, [r0, #0] + 402a34: 0749 lsls r1, r1, #29 + 402a36: 0f49 lsrs r1, r1, #29 + 402a38: 2210 movs r2, #16 + 402a3a: 430a orrs r2, r1 + 402a3c: 7002 strb r2, [r0, #0] + 402a3e: e018 b.n 402a72 + +00402a40 : + 402a40: 1e49 subs r1, r1, #1 + 402a42: 7021 strb r1, [r4, #0] + 402a44: 2100 movs r1, #0 + 402a46: 6521 str r1, [r4, #80] + 402a48: 4926 ldr r1, [pc, #152] (402ae4 ) + 402a4a: 6bc9 ldr r1, [r1, #60] + 402a4c: 6842 ldr r2, [r0, #4] + 402a4e: 7892 ldrb r2, [r2, #2] + 402a50: 1889 adds r1, r1, r2 + 402a52: 4a24 ldr r2, [pc, #144] (402ae4 ) + 402a54: 6451 str r1, [r2, #68] + 402a56: 6bd1 ldr r1, [r2, #60] + 402a58: 6840 ldr r0, [r0, #4] + 402a5a: 7880 ldrb r0, [r0, #2] + 402a5c: 1808 adds r0, r1, r0 + 402a5e: 6490 str r0, [r2, #72] + 402a60: 491e ldr r1, [pc, #120] (402adc ) + 402a62: 6011 str r1, [r2, #0] + 402a64: e007 b.n 402a76 + +00402a66 : + 402a66: 7801 ldrb r1, [r0, #0] + 402a68: 0749 lsls r1, r1, #29 + 402a6a: 0f49 lsrs r1, r1, #29 + 402a6c: 2228 movs r2, #40 + 402a6e: 430a orrs r2, r1 + 402a70: 7002 strb r2, [r0, #0] + +00402a72 : + 402a72: f7ff fcac bl 4023ce + +00402a76 : + 402a76: 6d20 ldr r0, [r4, #80] + 402a78: 2180 movs r1, #128 + 402a7a: 0089 lsls r1, r1, #2 + 402a7c: 4001 ands r1, r0 + 402a7e: 0a49 lsrs r1, r1, #9 + 402a80: 2901 cmp r1, #1 + 402a82: d010 beq.n 402aa6 + 402a84: 2180 movs r1, #128 + 402a86: 02c9 lsls r1, r1, #11 + 402a88: 4001 ands r1, r0 + 402a8a: 0c89 lsrs r1, r1, #18 + 402a8c: 2901 cmp r1, #1 + 402a8e: d00a beq.n 402aa6 + 402a90: 2108 movs r1, #8 + 402a92: 4001 ands r1, r0 + 402a94: 08c9 lsrs r1, r1, #3 + 402a96: 2901 cmp r1, #1 + 402a98: d005 beq.n 402aa6 + 402a9a: 2180 movs r1, #128 + 402a9c: 0349 lsls r1, r1, #13 + 402a9e: 4001 ands r1, r0 + 402aa0: 0d08 lsrs r0, r1, #20 + 402aa2: 2801 cmp r0, #1 + 402aa4: d10f bne.n 402ac6 + +00402aa6 : + 402aa6: 6d20 ldr r0, [r4, #80] + 402aa8: 490f ldr r1, [pc, #60] (402ae8 ) + 402aaa: 4001 ands r1, r0 + 402aac: 6521 str r1, [r4, #80] + 402aae: 7860 ldrb r0, [r4, #1] + 402ab0: 0080 lsls r0, r0, #2 + 402ab2: 1820 adds r0, r4, r0 + 402ab4: 6ac0 ldr r0, [r0, #44] + 402ab6: 7801 ldrb r1, [r0, #0] + 402ab8: 0749 lsls r1, r1, #29 + 402aba: 0f49 lsrs r1, r1, #29 + 402abc: 2218 movs r2, #24 + 402abe: 430a orrs r2, r1 + 402ac0: 7002 strb r2, [r0, #0] + 402ac2: f7ff fc84 bl 4023ce + +00402ac6 : + 402ac6: 46c0 nop (mov r8, r8) + +00402ac8 : + 402ac8: 2000 movs r0, #0 + 402aca: 9901 ldr r1, [sp, #4] + 402acc: bc10 pop {r4} + 402ace: b001 add sp, #4 + 402ad0: 4708 bx r1 + 402ad2: 46c0 nop (mov r8, r8) + +00402ad4 : + 402ad4: 00000a02 .word 0x00000a02 + 402ad8: ffff3f3b .word 0xffff3f3b + 402adc: 00000a02 .word 0x00000a02 + +00402ae0 : + 402ae0: 00405368 .word 0x00405368 + +00402ae4 : + 402ae4: 8000400c .word 0x8000400c + +00402ae8 : + 402ae8: ffebfdf7 .word 0xffebfdf7 + +00402aec : + 402aec: b570 push {r4, r5, r6, lr} + 402aee: 4c24 ldr r4, [pc, #144] (402b80 ) + 402af0: 7a20 ldrb r0, [r4, #8] + 402af2: 08c0 lsrs r0, r0, #3 + 402af4: 2802 cmp r0, #2 + 402af6: d135 bne.n 402b64 + 402af8: 68e0 ldr r0, [r4, #12] + 402afa: 7880 ldrb r0, [r0, #2] + 402afc: 79a5 ldrb r5, [r4, #6] + 402afe: 1961 adds r1, r4, r5 + 402b00: 7608 strb r0, [r1, #24] + 402b02: 7921 ldrb r1, [r4, #4] + 402b04: 4281 cmp r1, r0 + 402b06: d201 bcs.n 402b0c + 402b08: 7120 strb r0, [r4, #4] + 402b0a: 7165 strb r5, [r4, #5] + +00402b0c : + 402b0c: 2800 cmp r0, #0 + 402b0e: d102 bne.n 402b16 + 402b10: 79e0 ldrb r0, [r4, #7] + 402b12: 2801 cmp r0, #1 + 402b14: d110 bne.n 402b38 + +00402b16 : + 402b16: 0028 lsls r0, r5, #0 + 402b18: f000 f834 bl 402b84 + 402b1c: 71a0 strb r0, [r4, #6] + 402b1e: 2600 movs r6, #0 + 402b20: 71e6 strb r6, [r4, #7] + 402b22: 42a8 cmp r0, r5 + 402b24: d20a bcs.n 402b3c + 402b26: 70e6 strb r6, [r4, #3] + 402b28: 7960 ldrb r0, [r4, #5] + 402b2a: 6d61 ldr r1, [r4, #84] + 402b2c: f001 fa08 bl 403f40 <__iar_via_R1> + 402b30: 7126 strb r6, [r4, #4] + 402b32: 200f movs r0, #15 + 402b34: 7160 strb r0, [r4, #5] + 402b36: e001 b.n 402b3c + +00402b38 : + 402b38: 2001 movs r0, #1 + 402b3a: 71e0 strb r0, [r4, #7] + +00402b3c : + 402b3c: 2000 movs r0, #0 + 402b3e: 0021 lsls r1, r4, #0 + 402b40: 312c adds r1, #44 + +00402b42 : + 402b42: 680a ldr r2, [r1, #0] + 402b44: 0023 lsls r3, r4, #0 + 402b46: 3308 adds r3, #8 + 402b48: 429a cmp r2, r3 + 402b4a: d014 beq.n 402b76 + 402b4c: 1c40 adds r0, r0, #1 + 402b4e: 1d09 adds r1, r1, #4 + 402b50: 0602 lsls r2, r0, #24 + 402b52: 0e12 lsrs r2, r2, #24 + 402b54: 2a04 cmp r2, #4 + 402b56: d3f4 bcc.n 402b42 + 402b58: 79a1 ldrb r1, [r4, #6] + 402b5a: 3408 adds r4, #8 + 402b5c: 0020 lsls r0, r4, #0 + 402b5e: f000 ff81 bl 403a64 + 402b62: e008 b.n 402b76 + +00402b64 : + 402b64: 2805 cmp r0, #5 + 402b66: d001 beq.n 402b6c + 402b68: 2803 cmp r0, #3 + 402b6a: d104 bne.n 402b76 + +00402b6c : + 402b6c: 79a1 ldrb r1, [r4, #6] + 402b6e: 3408 adds r4, #8 + 402b70: 0020 lsls r0, r4, #0 + 402b72: f000 ff77 bl 403a64 + +00402b76 : + 402b76: 9803 ldr r0, [sp, #12] + 402b78: bc70 pop {r4, r5, r6} + 402b7a: b001 add sp, #4 + 402b7c: 4700 bx r0 + 402b7e: 46c0 nop (mov r8, r8) + +00402b80 : + 402b80: 00405368 .word 0x00405368 + +00402b84 : + 402b84: b418 push {r3, r4} + 402b86: 2200 movs r2, #0 + 402b88: 4b09 ldr r3, [pc, #36] (402bb0 ) + 402b8a: 881b ldrh r3, [r3, #0] + +00402b8c : + 402b8c: 280f cmp r0, #15 + 402b8e: d203 bcs.n 402b98 + 402b90: 1c40 adds r0, r0, #1 + 402b92: 0600 lsls r0, r0, #24 + 402b94: 0e00 lsrs r0, r0, #24 + 402b96: e000 b.n 402b9a + +00402b98 : + 402b98: 2000 movs r0, #0 + +00402b9a : + 402b9a: 2401 movs r4, #1 + 402b9c: 4084 lsls r4, r0 + 402b9e: 4223 tst r3, r4 + 402ba0: d104 bne.n 402bac + 402ba2: 1c52 adds r2, r2, #1 + 402ba4: 0614 lsls r4, r2, #24 + 402ba6: 0e24 lsrs r4, r4, #24 + 402ba8: 2c10 cmp r4, #16 + 402baa: d3ef bcc.n 402b8c + +00402bac : + 402bac: bc12 pop {r1, r4} + 402bae: 4770 bx lr + +00402bb0 : + 402bb0: 00405390 .word 0x00405390 + +00402bb4 : + 402bb4: b570 push {r4, r5, r6, lr} + 402bb6: b082 sub sp, #8 + 402bb8: 2007 movs r0, #7 + 402bba: f40d fa11 bl ffe0 + 402bbe: 481d ldr r0, [pc, #116] (402c34 ) + 402bc0: 6802 ldr r2, [r0, #0] + 402bc2: 06d0 lsls r0, r2, #27 + 402bc4: 0e40 lsrs r0, r0, #25 + 402bc6: 4b1c ldr r3, [pc, #112] (402c38 ) + 402bc8: 18c0 adds r0, r0, r3 + 402bca: 6801 ldr r1, [r0, #0] + 402bcc: 24f8 movs r4, #248 + 402bce: 0164 lsls r4, r4, #5 + 402bd0: 4014 ands r4, r2 + 402bd2: 0a22 lsrs r2, r4, #8 + 402bd4: 0092 lsls r2, r2, #2 + 402bd6: 58d2 ldr r2, [r2, r3] + 402bd8: 6002 str r2, [r0, #0] + 402bda: 4a7b ldr r2, [pc, #492] (402dc8 ) + 402bdc: 2301 movs r3, #1 + 402bde: 6013 str r3, [r2, #0] + 402be0: 6bd4 ldr r4, [r2, #60] + 402be2: 2300 movs r3, #0 + 402be4: 9300 str r3, [sp, #0] + 402be6: 2596 movs r5, #150 + 402be8: 006d lsls r5, r5, #1 + 402bea: e002 b.n 402bf2 + +00402bec : + 402bec: 9e00 ldr r6, [sp, #0] + 402bee: 1c76 adds r6, r6, #1 + 402bf0: 9600 str r6, [sp, #0] + +00402bf2 : + 402bf2: 6bd6 ldr r6, [r2, #60] + 402bf4: 1b36 subs r6, r6, r4 + 402bf6: 2e03 cmp r6, #3 + 402bf8: d202 bcs.n 402c00 + 402bfa: 9e00 ldr r6, [sp, #0] + 402bfc: 42ae cmp r6, r5 + 402bfe: d3f5 bcc.n 402bec + +00402c00 : + 402c00: 6013 str r3, [r2, #0] + 402c02: 6bd2 ldr r2, [r2, #60] + 402c04: e001 b.n 402c0a + +00402c06 : + 402c06: 9b00 ldr r3, [sp, #0] + 402c08: 1c5b adds r3, r3, #1 + +00402c0a : + 402c0a: 9300 str r3, [sp, #0] + 402c0c: 4b6e ldr r3, [pc, #440] (402dc8 ) + 402c0e: 6bdb ldr r3, [r3, #60] + 402c10: 1a9b subs r3, r3, r2 + 402c12: 2b03 cmp r3, #3 + 402c14: d202 bcs.n 402c1c + 402c16: 9b00 ldr r3, [sp, #0] + 402c18: 42ab cmp r3, r5 + 402c1a: d3f4 bcc.n 402c06 + +00402c1c : + 402c1c: 6001 str r1, [r0, #0] + 402c1e: 4807 ldr r0, [pc, #28] (402c3c ) + 402c20: 4907 ldr r1, [pc, #28] (402c40 ) + 402c22: 6001 str r1, [r0, #0] + 402c24: 2007 movs r0, #7 + 402c26: f40d f9cd bl ffc4 + 402c2a: b002 add sp, #8 + 402c2c: 9803 ldr r0, [sp, #12] + 402c2e: bc70 pop {r4, r5, r6} + 402c30: b001 add sp, #4 + 402c32: 4700 bx r0 + +00402c34 : + 402c34: 80009204 .word 0x80009204 + 402c38: 80009300 .word 0x80009300 + 402c3c: 800040c4 .word 0x800040c4 + 402c40: 0000ffff .word 0x0000ffff + +00402c44 : + 402c44: b5f8 push {r3, r4, r5, r6, r7, lr} + 402c46: 485b ldr r0, [pc, #364] (402db4 ) + 402c48: 6804 ldr r4, [r0, #0] + 402c4a: 6044 str r4, [r0, #4] + 402c4c: 4f5a ldr r7, [pc, #360] (402db8 ) + 402c4e: 7838 ldrb r0, [r7, #0] + 402c50: 1c40 adds r0, r0, #1 + 402c52: 7038 strb r0, [r7, #0] + 402c54: 2580 movs r5, #128 + 402c56: 022d lsls r5, r5, #8 + 402c58: 422c tst r4, r5 + 402c5a: d005 beq.n 402c68 + 402c5c: 4e57 ldr r6, [pc, #348] (402dbc ) + 402c5e: 6830 ldr r0, [r6, #0] + 402c60: 2101 movs r1, #1 + +00402c62 : + 402c62: 4301 orrs r1, r0 + 402c64: 6031 str r1, [r6, #0] + 402c66: e09c b.n 402da2 + +00402c68 : + 402c68: 07e0 lsls r0, r4, #31 + 402c6a: d552 bpl.n 402d12 + 402c6c: 4e53 ldr r6, [pc, #332] (402dbc ) + 402c6e: 6830 ldr r0, [r6, #0] + 402c70: 2120 movs r1, #32 + 402c72: 4301 orrs r1, r0 + 402c74: 6031 str r1, [r6, #0] + 402c76: f7ff fb7f bl 402378 + 402c7a: 4853 ldr r0, [pc, #332] (402dc8 ) + 402c7c: 6840 ldr r0, [r0, #4] + 402c7e: 0700 lsls r0, r0, #28 + 402c80: 0f00 lsrs r0, r0, #28 + 402c82: 280f cmp r0, #15 + 402c84: d900 bls.n 402c88 + 402c86: e08c b.n 402da2 + 402c88: a101 add r1, pc, #4 (adr r1, 402c90 ) + 402c8a: 5c09 ldrb r1, [r1, r0] + 402c8c: 0049 lsls r1, r1, #1 + 402c8e: 448f add pc, r1 + +00402c90 : + 402c90: 18130e07 .word 0x18130e07 + 402c94: 8888861b .word 0x8888861b + 402c98: 88882520 .word 0x88882520 + 402c9c: 3d383588 .word 0x3d383588 + +00402ca0 : + 402ca0: 6830 ldr r0, [r6, #0] + 402ca2: 2140 movs r1, #64 + 402ca4: 4301 orrs r1, r0 + 402ca6: 6031 str r1, [r6, #0] + 402ca8: 2001 movs r0, #1 + 402caa: 7078 strb r0, [r7, #1] + 402cac: e079 b.n 402da2 + +00402cae : + 402cae: f7ff ff81 bl 402bb4 + 402cb2: 6830 ldr r0, [r6, #0] + 402cb4: 2180 movs r1, #128 + 402cb6: e7d4 b.n 402c62 + +00402cb8 : + 402cb8: 6830 ldr r0, [r6, #0] + 402cba: 09e9 lsrs r1, r5, #7 + +00402cbc : + 402cbc: 4301 orrs r1, r0 + 402cbe: 6031 str r1, [r6, #0] + 402cc0: e06f b.n 402da2 + +00402cc2 : + 402cc2: 6830 ldr r0, [r6, #0] + 402cc4: 09a9 lsrs r1, r5, #6 + 402cc6: e7cc b.n 402c62 + +00402cc8 : + 402cc8: 6830 ldr r0, [r6, #0] + 402cca: 0969 lsrs r1, r5, #5 + 402ccc: 4301 orrs r1, r0 + 402cce: 6031 str r1, [r6, #0] + 402cd0: e065 b.n 402d9e + +00402cd2 : + 402cd2: f7ff ff6f bl 402bb4 + 402cd6: 6830 ldr r0, [r6, #0] + 402cd8: 0869 lsrs r1, r5, #1 + 402cda: e7c2 b.n 402c62 + +00402cdc : + 402cdc: f7ff ff6a bl 402bb4 + 402ce0: 20c0 movs r0, #192 + 402ce2: 0140 lsls r0, r0, #5 + 402ce4: 4204 tst r4, r0 + 402ce6: d005 beq.n 402cf4 + 402ce8: f7ff ff64 bl 402bb4 + 402cec: 6830 ldr r0, [r6, #0] + 402cee: 2180 movs r1, #128 + 402cf0: 4301 orrs r1, r0 + 402cf2: 6031 str r1, [r6, #0] + +00402cf4 : + 402cf4: 6830 ldr r0, [r6, #0] + 402cf6: 4305 orrs r5, r0 + 402cf8: 6035 str r5, [r6, #0] + 402cfa: e052 b.n 402da2 + +00402cfc : + 402cfc: 6830 ldr r0, [r6, #0] + 402cfe: 00a9 lsls r1, r5, #2 + 402d00: e7af b.n 402c62 + +00402d02 : + 402d02: f7ff ff57 bl 402bb4 + 402d06: 6830 ldr r0, [r6, #0] + 402d08: 00e9 lsls r1, r5, #3 + 402d0a: e7d7 b.n 402cbc + +00402d0c : + 402d0c: 6830 ldr r0, [r6, #0] + 402d0e: 0129 lsls r1, r5, #4 + 402d10: e7a7 b.n 402c62 + +00402d12 : + 402d12: 482b ldr r0, [pc, #172] (402dc0 ) + 402d14: 4020 ands r0, r4 + 402d16: 08e9 lsrs r1, r5, #3 + 402d18: 4288 cmp r0, r1 + 402d1a: d105 bne.n 402d28 + 402d1c: 4e27 ldr r6, [pc, #156] (402dbc ) + 402d1e: 6830 ldr r0, [r6, #0] + 402d20: 2108 movs r1, #8 + 402d22: 4301 orrs r1, r0 + 402d24: 6031 str r1, [r6, #0] + 402d26: e03a b.n 402d9e + +00402d28 : + 402d28: 2004 movs r0, #4 + 402d2a: 4204 tst r4, r0 + 402d2c: d01c beq.n 402d68 + 402d2e: 4826 ldr r0, [pc, #152] (402dc8 ) + 402d30: 4924 ldr r1, [pc, #144] (402dc4 ) + 402d32: 6001 str r1, [r0, #0] + 402d34: f000 fdc8 bl 4038c8 + 402d38: 2800 cmp r0, #0 + 402d3a: d109 bne.n 402d50 + 402d3c: 4822 ldr r0, [pc, #136] (402dc8 ) + 402d3e: 6f40 ldr r0, [r0, #116] + 402d40: 7840 ldrb r0, [r0, #1] + 402d42: 287e cmp r0, #126 + 402d44: d10c bne.n 402d60 + 402d46: 4820 ldr r0, [pc, #128] (402dc8 ) + 402d48: 6f40 ldr r0, [r0, #116] + 402d4a: 7880 ldrb r0, [r0, #2] + 402d4c: 28ff cmp r0, #255 + 402d4e: d107 bne.n 402d60 + +00402d50 : + 402d50: 4e1a ldr r6, [pc, #104] (402dbc ) + 402d52: 6830 ldr r0, [r6, #0] + 402d54: 2170 movs r1, #112 + 402d56: 4301 orrs r1, r0 + 402d58: 6031 str r1, [r6, #0] + 402d5a: f7ff fb0d bl 402378 + 402d5e: e020 b.n 402da2 + +00402d60 : + 402d60: 4e16 ldr r6, [pc, #88] (402dbc ) + 402d62: 6830 ldr r0, [r6, #0] + 402d64: 00e9 lsls r1, r5, #3 + 402d66: e77c b.n 402c62 + +00402d68 : + 402d68: 0521 lsls r1, r4, #20 + 402d6a: d505 bpl.n 402d78 + 402d6c: f7ff ff22 bl 402bb4 + 402d70: 4e12 ldr r6, [pc, #72] (402dbc ) + 402d72: 6830 ldr r0, [r6, #0] + 402d74: 0169 lsls r1, r5, #5 + 402d76: e7a1 b.n 402cbc + +00402d78 : + 402d78: 0301 lsls r1, r0, #12 + 402d7a: 420c tst r4, r1 + 402d7c: d003 beq.n 402d86 + 402d7e: 4e0f ldr r6, [pc, #60] (402dbc ) + 402d80: 6830 ldr r0, [r6, #0] + 402d82: 2102 movs r1, #2 + 402d84: e76d b.n 402c62 + +00402d86 : + 402d86: 2190 movs r1, #144 + 402d88: 0189 lsls r1, r1, #6 + 402d8a: 420c tst r4, r1 + 402d8c: d004 beq.n 402d98 + 402d8e: 4e0b ldr r6, [pc, #44] (402dbc ) + 402d90: 6831 ldr r1, [r6, #0] + 402d92: 4308 orrs r0, r1 + 402d94: 6030 str r0, [r6, #0] + 402d96: e004 b.n 402da2 + +00402d98 : + 402d98: 01c0 lsls r0, r0, #7 + 402d9a: 4204 tst r4, r0 + 402d9c: d001 beq.n 402da2 + +00402d9e : + 402d9e: f7ff ff09 bl 402bb4 + +00402da2 : + 402da2: 7838 ldrb r0, [r7, #0] + 402da4: 1e40 subs r0, r0, #1 + 402da6: 7038 strb r0, [r7, #0] + 402da8: b001 add sp, #4 + 402daa: 9804 ldr r0, [sp, #16] + 402dac: bcf0 pop {r4, r5, r6, r7} + 402dae: b001 add sp, #4 + 402db0: 4700 bx r0 + 402db2: 46c0 nop (mov r8, r8) + +00402db4 : + 402db4: 800040c0 .word 0x800040c0 + 402db8: 004052ab .word 0x004052ab + 402dbc: 004053b8 .word 0x004053b8 + 402dc0: 00001001 .word 0x00001001 + 402dc4: 00000201 .word 0x00000201 + +00402dc8 : + 402dc8: 8000400c .word 0x8000400c + +00402dcc : + 402dcc: 80003000 .word 0x80003000 + 402dd0: 00000019 .word 0x00000019 + 402dd4: 80003048 .word 0x80003048 + 402dd8: 00000ffb .word 0x00000ffb + +00402ddc : + 402ddc: 80003000 .word 0x80003000 + 402de0: 00000018 .word 0x00000018 + 402de4: 80003048 .word 0x80003048 + 402de8: 00000f04 .word 0x00000f04 + 402dec: 00000000 .word 0x00000000 + 402df0: 000161a8 .word 0x000161a8 + 402df4: 80003048 .word 0x80003048 + 402df8: 00000ffc .word 0x00000ffc + +00402dfc : + 402dfc: 80009000 .word 0x80009000 + 402e00: 80050100 .word 0x80050100 + +00402e04 : + 402e04: 80009400 .word 0x80009400 + 402e08: 00020017 .word 0x00020017 + 402e0c: 80009a04 .word 0x80009a04 + 402e10: 8185a0a4 .word 0x8185a0a4 + 402e14: 80009a00 .word 0x80009a00 + 402e18: 8c900025 .word 0x8c900025 + 402e1c: 00000000 .word 0x00000000 + 402e20: 00011194 .word 0x00011194 + 402e24: 80009a00 .word 0x80009a00 + 402e28: 8c900021 .word 0x8c900021 + 402e2c: 80009a00 .word 0x80009a00 + 402e30: 8c900027 .word 0x8c900027 + 402e34: 00000000 .word 0x00000000 + 402e38: 00011194 .word 0x00011194 + 402e3c: 80009a00 .word 0x80009a00 + 402e40: 8c90002b .word 0x8c90002b + 402e44: 80009a00 .word 0x80009a00 + 402e48: 8c90002f .word 0x8c90002f + 402e4c: 00000000 .word 0x00000000 + 402e50: 00011194 .word 0x00011194 + 402e54: 80009a00 .word 0x80009a00 + 402e58: 8c900000 .word 0x8c900000 + +00402e5c : + 402e5c: 80009000 .word 0x80009000 + 402e60: 80050300 .word 0x80050300 + +00402e64 : + 402e64: 80004118 .word 0x80004118 + 402e68: 00180012 .word 0x00180012 + 402e6c: 80009204 .word 0x80009204 + 402e70: 00000605 .word 0x00000605 + 402e74: 80009208 .word 0x80009208 + 402e78: 00000504 .word 0x00000504 + 402e7c: 8000920c .word 0x8000920c + 402e80: 00001111 .word 0x00001111 + 402e84: 80009210 .word 0x80009210 + 402e88: 0fc40000 .word 0x0fc40000 + 402e8c: 80009300 .word 0x80009300 + 402e90: 20046000 .word 0x20046000 + 402e94: 80009304 .word 0x80009304 + 402e98: 4005580c .word 0x4005580c + 402e9c: 80009308 .word 0x80009308 + 402ea0: 40075801 .word 0x40075801 + 402ea4: 8000930c .word 0x8000930c + 402ea8: 4005d801 .word 0x4005d801 + 402eac: 80009310 .word 0x80009310 + 402eb0: 5a45d800 .word 0x5a45d800 + 402eb4: 80009314 .word 0x80009314 + 402eb8: 4a45d800 .word 0x4a45d800 + 402ebc: 80009318 .word 0x80009318 + 402ec0: 40044000 .word 0x40044000 + 402ec4: 80009380 .word 0x80009380 + 402ec8: 00106000 .word 0x00106000 + 402ecc: 80009384 .word 0x80009384 + 402ed0: 00083806 .word 0x00083806 + 402ed4: 80009388 .word 0x80009388 + 402ed8: 00093807 .word 0x00093807 + 402edc: 8000938c .word 0x8000938c + 402ee0: 0009b804 .word 0x0009b804 + 402ee4: 80009390 .word 0x80009390 + 402ee8: 000db800 .word 0x000db800 + 402eec: 80009394 .word 0x80009394 + 402ef0: 00093802 .word 0x00093802 + 402ef4: 8000a008 .word 0x8000a008 + 402ef8: 00000015 .word 0x00000015 + 402efc: 8000a018 .word 0x8000a018 + 402f00: 00000002 .word 0x00000002 + 402f04: 8000a01c .word 0x8000a01c + 402f08: 0000000f .word 0x0000000f + 402f0c: 80009424 .word 0x80009424 + 402f10: 0000aaa0 .word 0x0000aaa0 + 402f14: 80009434 .word 0x80009434 + 402f18: 01002020 .word 0x01002020 + 402f1c: 80009438 .word 0x80009438 + 402f20: 016800fe .word 0x016800fe + 402f24: 8000943c .word 0x8000943c + 402f28: 8e578248 .word 0x8e578248 + 402f2c: 80009440 .word 0x80009440 + 402f30: 000000dd .word 0x000000dd + 402f34: 80009444 .word 0x80009444 + 402f38: 00000946 .word 0x00000946 + 402f3c: 80009448 .word 0x80009448 + 402f40: 0000035a .word 0x0000035a + 402f44: 8000944c .word 0x8000944c + 402f48: 00100010 .word 0x00100010 + 402f4c: 80009450 .word 0x80009450 + 402f50: 00000515 .word 0x00000515 + 402f54: 80009460 .word 0x80009460 + 402f58: 00397feb .word 0x00397feb + 402f5c: 80009464 .word 0x80009464 + 402f60: 00180358 .word 0x00180358 + 402f64: 8000947c .word 0x8000947c + 402f68: 00000455 .word 0x00000455 + 402f6c: 800094e0 .word 0x800094e0 + 402f70: 00000001 .word 0x00000001 + 402f74: 800094e4 .word 0x800094e4 + 402f78: 00020003 .word 0x00020003 + 402f7c: 800094e8 .word 0x800094e8 + 402f80: 00040014 .word 0x00040014 + 402f84: 800094ec .word 0x800094ec + 402f88: 00240034 .word 0x00240034 + 402f8c: 800094f0 .word 0x800094f0 + 402f90: 00440144 .word 0x00440144 + 402f94: 800094f4 .word 0x800094f4 + 402f98: 02440344 .word 0x02440344 + 402f9c: 800094f8 .word 0x800094f8 + 402fa0: 04440544 .word 0x04440544 + 402fa4: 80009470 .word 0x80009470 + 402fa8: 0ee7fc00 .word 0x0ee7fc00 + 402fac: 8000981c .word 0x8000981c + 402fb0: 00000082 .word 0x00000082 + 402fb4: 80009828 .word 0x80009828 + 402fb8: 0000002a .word 0x0000002a + +00402fbc : + 402fbc: b5f8 push {r3, r4, r5, r6, r7, lr} + 402fbe: 0006 lsls r6, r0, #0 //maybe platform clock 24000000 + 402fc0: 000c lsls r4, r1, #0 //maybe dig clock pn + 402fc2: 0015 lsls r5, r2, #0 //maybe loop div + 402fc4: 4f39 ldr r7, [pc, #228] (4030ac ) // set r7 to *(4030ac: .word 0x004053f0) 004053f0 : + 402fc6: 21fa movs r1, #250 // r1 gets 250 + 402fc8: 0089 lsls r1, r1, #2 // r1 is 0x1f4 (does this divide 24000000 by 500?) + 402fca: f7fd fcc1 bl 400950 + 402fce: 65b8 str r0, [r7, #88] // gRadioTOCCal2_N[88] 0x58 + 402fd0: 4837 ldr r0, [pc, #220] (4030b0 ) // r0 gets 4030b0: 016e3600 .word 0x016e3600 = 240000000 + 402fd2: 4286 cmp r6, r0 + 402fd4: d001 beq.n 402fda // if 24 MHz test for 24MHZ skips to endif + 402fd6: 617c str r4, [r7, #20] // gRadioTOCCal2_N[20] 0x14 + 402fd8: 61fd str r5, [r7, #28] // gRadioTOCCal2_N[28] 0x1c + 402fda: 4c36 ldr r4, [pc, #216] (4030b4 ) // else endif 4030b4: .word 0x00402dcc buck_enable + 402fdc: 4d70 ldr r5, [pc, #448] (4031a0 ) // 0x0040544c ram_init_val + 402fde: 7928 ldrb r0, [r5, #4] // r0 gets 0 + 402fe0: 2801 cmp r0, #1 // check if its 1 (it's not, it's 0) + 402fe2: d106 bne.n 402ff2 // and skip stuff (to 2ff2,HERE) assume skip we have 24MHz + 402fe4: 4834 ldr r0, [pc, #208] (4030b8 ) // 4030b8: .word 0x00000f7b + 402fe6: 6378 str r0, [r7, #52] // what's r7? put f7b into gRadioTOCCal2_None24Mhz_c[52] 0x34 + 402fe8: 3858 subs r0, #88 + 402fea: 6368 str r0, [r5, #52] // what's r5? maybe ram_init_val[52] 0x34 + 402fec: 2110 movs r1, #16 + 402fee: 0020 lsls r0, r4, #0 + 402ff0: e009 b.n 403006 + 402ff2: 7968 ldrb r0, [r5, #5] // HERE: what's r5? looks like ram_init_val[5] i + 402ff4: 2801 cmp r0, #1 // another test. not one. (it's 0) skip to THERE + 402ff6: d108 bne.n 40300a // skip to THERE + 402ff8: 4830 ldr r0, [pc, #192] (4030bc ) // 4030bc: 00000f7c .word 0x00000f7c + 402ffa: 6378 str r0, [r7, #52] // put f7c into gRadioTOCCal2_None24Mhz_c[52] 0x34 + 402ffc: 3878 subs r0, #120 + 402ffe: 6368 str r0, [r5, #52] // subtract 120 and put it into ram_init_val[52] 0x34 + 403000: 2120 movs r1, #32 + 403002: 0020 lsls r0, r4, #0 + 403004: 3010 adds r0, #16 + 403006: f000 f96d bl 4032e4 // call InitFromMemory with setup vals? 32 bytes of buck_enable+16? + 40300a: 2128 movs r1, #40 // THERE: chould have come from a skip r1 gets 40 + 40300c: 0038 lsls r0, r7, #0 // r0 is r7 (cal2) r7 base + 40300e: 3030 adds r0, #48 // now its cal2+48 which is Cal1 + 403010: f000 f968 bl 4032e4 // 40 entries of gRadioTOCCal2_None24Mhz+48?//i think this bombs b/c zero... + 403014: 4826 ldr r0, [pc, #152] (4030b0 ) // 4030b0: 016e3600 .word 0x016e3600 + 403016: 4286 cmp r6, r0 + 403018: d103 bne.n 403022 // another test for 24MHz branch to NEXT: if !=, but they are + 40301a: 2108 movs r1, #8 // 8 bytes = 1 entry + 40301c: 0020 lsls r0, r4, #0 // r4 base + 40301e: 3030 adds r0, #48 // r4 base+48 (gRadioTOCCal2_24MHz_c) + 403020: e001 b.n 403026 // goto endif + 403022: 2130 movs r1, #48 // NEXT: + 403024: 0038 lsls r0, r7, #0 // 48 bytes = 6 entries of r7+0 + 403026: f000 f95d bl 4032e4 // endif do the init + 40302a: 2158 movs r1, #88 // do 11 entries + 40302c: 0020 lsls r0, r4, #0 // of r4 base + 56 + 40302e: 3038 adds r0, #56 + 403030: f000 f958 bl 4032e4 // do another then do 11 entries from r4+56 0x2e14 (in cal 3) + 403034: 481e ldr r0, [pc, #120] (4030b0 ) + 403036: 4286 cmp r6, r0 // check for 24MHZ + 403038: d004 beq.n 403044 // branch they are equal + 40303a: 2108 movs r1, #8 // skip + 40303c: 0020 lsls r0, r4, #0 // skip + 40303e: 3090 adds r0, #144 // skip + 403040: f000 f950 bl 4032e4 + 403044: 2120 movs r1, #32 // endif: four entries of + 403046: 0028 lsls r0, r5, #0 + 403048: 3018 adds r0, #24 // r5+24 RadioCal5 + 40304a: f000 f94b bl 4032e4 // do 32 entries in r5+24 this might be zero... + 40304e: 21ac movs r1, #172 + 403050: 0049 lsls r1, r1, #1 // r1 gets 344 + 403052: 0020 lsls r0, r4, #0 + 403054: 3098 adds r0, #152 + 403056: f000 f945 bl 4032e4 // do 344 entries from r4+152 0x2e74 (in reg replacment) + 40305a: 20f8 movs r0, #248 // r0 gets 0xf8 + 40305c: 0240 lsls r0, r0, #9 // r0 is now 0x1F000 + 40305e: f000 f8db bl 403218 // from flash --- this might be the regreplacment since that's in codespace... luckly we can call it directly and IAR links it in. looks like it sets a lot of the ram values that aren't getting set without it + 403062: f000 f82f bl 4030c4 // looks like this happens... + 403066: 7928 ldrb r0, [r5, #4] // need a dump of r5 ram_init_val now appears to be 0 + 403068: 2801 cmp r0, #1 + 40306a: d101 bne.n 403070 // branches + 40306c: 2110 movs r1, #16 + 40306e: e004 b.n 40307a + 403070: 7968 ldrb r0, [r5, #5] // appears to be 0 + 403072: 2801 cmp r0, #1 + 403074: d104 bne.n 403080 // branches to 6: + 403076: 2120 movs r1, #32 + 403078: 3410 adds r4, #16 + 40307a: 0020 lsls r0, r4, #0 // 5: + 40307c: f000 f932 bl 4032e4 // do 4 entries but from r4 of buck bypass + 403080: 480f ldr r0, [pc, #60] (4030c0 ) // 6: + 403082: f000 f881 bl 403188 // and a call to fill ram struct --- maybe important to the program? + 403086: 2400 movs r4, #0 + 403088: 78e9 ldrb r1, [r5, #3] // appears to be 0x4c + 40308a: 0620 lsls r0, r4, #24 // clobber high 24 bits + 40308c: 0e00 lsrs r0, r0, #24 + 40308e: f000 f86d bl 40316c //v=get_ctov(0,0x4c) + 403092: 1929 adds r1, r5, r4 // r4 = 0, r5 is &ram_init_val + 403094: 7208 strb r0, [r1, #8] + 403096: 1c64 adds r4, r4, #1 // r4 = r4+1 + 403098: 0620 lsls r0, r4, #24 // clobber high 24 bits + 40309a: 0e00 lsrs r0, r0, #24 + 40309c: 2810 cmp r0, #16 + 40309e: d3f3 bcc.n 403088 // branch if 16 > r0 + 4030a0: b001 add sp, #4 // return? + 4030a2: 9804 ldr r0, [sp, #16] + 4030a4: bcf0 pop {r4, r5, r6, r7} + 4030a6: b001 add sp, #4 + 4030a8: 4700 bx r0 + 4030aa: 46c0 nop (mov r8, r8) + 4030ac: 004053f0 .word 0x004053f0 + 4030b0: 016e3600 .word 0x016e3600 + 4030b4: 00402dcc .word 0x00402dcc + 4030b8: 00000f7b .word 0x00000f7b + 4030bc: 00000f7c .word 0x00000f7c + 4030c0: 004052a0 .word 0x004052a0 + +004030c4 : + 4030c4: 4806 ldr r0, [pc, #24] (4030e0 ) // r0 gets base 0x80009a00 + 4030c6: 6881 ldr r1, [r0, #8] // r1 gets *(0x80009a08) + 4030c8: 4806 ldr r0, [pc, #24] (4030e4 ) // r0 gets 0x0000f7df + 4030ca: 4308 orrs r0, r1 // or them, r0 has it + 4030cc: 4904 ldr r1, [pc, #16] (4030e0 ) // r1 gets base 0x80009a00 + 4030ce: 6088 str r0, [r1, #8] // put r0 into 0x80009a08 + 4030d0: 0008 lsls r0, r1, #0 // r0 gets r1, r0 is the base now + 4030d2: 4905 ldr r1, [pc, #20] (4030e8 ) // r1 gets 0x00ffffff + 4030d4: 60c1 str r1, [r0, #12] // r1 gets base+12 + 4030d6: 0b09 lsrs r1, r1, #12 // r1 << 12 + 4030d8: 6101 str r1, [r0, #16] // put r1 base+16 + 4030da: 2110 movs r1, #16 // r1 gets 16 + 4030dc: 6001 str r1, [r0, #0] // put r1 in the base + 4030de: 4770 bx lr // return + 4030e0: 80009a00 .word 0x80009a00 + 4030e4: 0000f7df .word 0x0000f7df + 4030e8: 00ffffff .word 0x00ffffff + +004030ec : + 4030ec: b430 push {r4, r5} //r0 = chan_num r1=vcodivI r2=vcodivF + 4030ee: 4b1d ldr r3, [pc, #116] (403164 ) + 4030f0: 681c ldr r4, [r3, #0] //r4 = *0x80009800 + 4030f2: 4d1d ldr r5, [pc, #116] (403168 ) //0xbfffffff + 4030f4: 4025 ands r5, r4 // r5 = *0x80009800 & 0xbfffffff + 4030f6: 601d str r5, [r3, #0] // *0x80009800 = r5 + 4030f8: 60d9 str r1, [r3, #12] // *0x80009800+12 = r3 + 4030fa: 611a str r2, [r3, #16] // *0x80009800+16 = r2 + 4030fc: 6b19 ldr r1, [r3, #48] // r1 = *0x80009800+48 + 4030fe: 2202 movs r2, #2 // r2 = 2 + 403100: 430a orrs r2, r1 // r2 = r1 | 2 + 403102: 631a str r2, [r3, #48] // *0x80009800+48 = r2 + 403104: 6b19 ldr r1, [r3, #48] // r1 = *0x80009800+48 + 403106: 2204 movs r2, #4 // r2 = 4; + 403108: 430a orrs r2, r1 // r2 = r1 | 4 + 40310a: 631a str r2, [r3, #48] // // *0x80009800+48 = r2 + 40310c: 0011 lsls r1, r2, #0 // r1 = r2 + 40310e: 4a06 ldr r2, [pc, #24] (403128 ) r2 = 0xffffe0ff; + 403110: 400a ands r2, r1 // r2 = r1 & 0xffffe0ff; + 403112: 4923 ldr r1, [pc, #140] (4031a0 ) // r1 gets &ram_init_val + 403114: 1808 adds r0, r1, r0 // offset + 403116: 7a00 ldrb r0, [r0, #8] // r0 gets ram_init_val+8+offset = buffer_radio_init[offset] + 403118: 0200 lsls r0, r0, #8 // shift that left 8 + 40311a: 21f8 movs r1, #248 // r1 = 248 + 40311c: 0149 lsls r1, r1, #5 // r1 = 0x1F00 + 40311e: 4001 ands r1, r0 // r1 gets r0 & 0x1F00 + 403120: 4311 orrs r1, r2 // ored with r2 + 403122: 6319 str r1, [r3, #48] // r3+48 gets r1... 0x80009800+48 + 403124: bc30 pop {r4, r5} + 403126: 4770 bx lr + 403128: ffffe0ff .word 0xffffe0ff + +0040312c : + 40312c: b430 push {r4, r5} + 40312e: 0002 lsls r2, r0, #0 + 403130: 20ff movs r0, #255 + 403132: 2300 movs r3, #0 + 403134: 5cd4 ldrb r4, [r2, r3] + 403136: 4d0a ldr r5, [pc, #40] (403160 ) + 403138: 682d ldr r5, [r5, #0] + 40313a: 42ac cmp r4, r5 + 40313c: d107 bne.n 40314e + 40313e: 009c lsls r4, r3, #2 + 403140: 590c ldr r4, [r1, r4] + 403142: 4d07 ldr r5, [pc, #28] (403160 ) + 403144: 686d ldr r5, [r5, #4] + 403146: 42ac cmp r4, r5 + 403148: d101 bne.n 40314e + 40314a: 0018 lsls r0, r3, #0 + 40314c: e004 b.n 403158 + 40314e: 1c5b adds r3, r3, #1 + 403150: 061c lsls r4, r3, #24 + 403152: 0e24 lsrs r4, r4, #24 + 403154: 2c10 cmp r4, #16 + 403156: d3ed bcc.n 403134 + 403158: 0600 lsls r0, r0, #24 + 40315a: 0e00 lsrs r0, r0, #24 + 40315c: bc30 pop {r4, r5} + 40315e: 4770 bx lr + 403160: 8000980c .word 0x8000980c + 403164: 80009800 .word 0x80009800 + 403168: bfffffff .wor 0xbfffffff + +0040316c : + 40316c: 4a04 ldr r2, [pc, #16] (403180 ) r2=0x00dfbe77 + 40316e: 4350 muls r0, r2 + 403170: 0589 lsls r1, r1, #22 + 403172: 1840 adds r0, r0, r1 + 403174: 4903 ldr r1, [pc, #12] (403184 ) + 403176: 1840 adds r0, r0, r1 + 403178: 1640 asrs r0, r0, #25 + 40317a: 0600 lsls r0, r0, #24 + 40317c: 0e00 lsrs r0, r0, #24 + 40317e: 4770 bx lr + 403180: 00dfbe77 .word 0x00dfbe77 + 403184: 023126e9 .word 0x023126e9 + +00403188 : + 403188: 4905 ldr r1, [pc, #20] (4031a0 ) + 40318a: 7802 ldrb r2, [r0, #0] + 40318c: 700a strb r2, [r1, #0] + 40318e: 7842 ldrb r2, [r0, #1] + 403190: 704a strb r2, [r1, #1] + 403192: 7882 ldrb r2, [r0, #2] + 403194: 708a strb r2, [r1, #2] + 403196: 1cc0 adds r0, r0, #3 + 403198: 7800 ldrb r0, [r0, #0] + 40319a: 70c8 strb r0, [r1, #3] + 40319c: 4770 bx lr + 40319e: 0000 lsls r0, r0, #0 + 4031a0: 0040544c .word 0x0040544c + +004031a4 : + 4031a4: 6801 ldr r1, [r0, #0] // r1 gets where r0 points + 4031a6: 1d00 adds r0, r0, #4 // increment pointer by 4 bytes + 4031a8: 4a17 ldr r2, [pc, #92] (403208 ) //r2 gets 403208: 00140001 .word 0x00140001 + 4031aa: 4291 cmp r1, r2 // compare r1 with r2 + 4031ac: d303 bcc.n 4031b6 //branch to 1: if lower + 4031ae: 6800 ldr r0, [r0, #0] // get where r0+4 points + 4031b0: 6008 str r0, [r1, #0] // store that where r1 points (load an addr/data pair like 80009000 aabbccddeeff) + 4031b2: 2002 movs r0, #2 // r0 gets 2 + 4031b4: 4770 bx lr // return + 4031b6: 2910 cmp r1, #16 // 1: compare r1 and 16 + 4031b8: d215 bcs.n 4031e6 // branch to 2: if high or equal + 4031ba: 2900 cmp r1, #0 // check if zero (r1 is address?) + 4031bc: d106 bne.n 4031cc // branch to 3: to if != 0 + 4031be: 6800 ldr r0, [r0, #0] + 4031c0: 0880 lsrs r0, r0, #2 + 4031c2: 0001 lsls r1, r0, #0 + 4031c4: 1e48 subs r0, r1, #1 + 4031c6: 2900 cmp r1, #0 + 4031c8: d1fb bne.n 4031c2 + 4031ca: e7f2 b.n 4031b2 + 4031cc: 2901 cmp r1, #1 // 3: + 4031ce: d118 bne.n 403202 + 4031d0: 6802 ldr r2, [r0, #0] + 4031d2: 6841 ldr r1, [r0, #4] + 4031d4: 3008 adds r0, #8 + 4031d6: 680b ldr r3, [r1, #0] + 4031d8: 4393 bics r3, r2 + 4031da: 6800 ldr r0, [r0, #0] + 4031dc: 4002 ands r2, r0 + 4031de: 431a orrs r2, r3 + 4031e0: 600a str r2, [r1, #0] + 4031e2: 2004 movs r0, #4 + 4031e4: 4770 bx lr + 4031e6: 4a09 ldr r2, [pc, #36] (40320c ) //2: + 4031e8: 4291 cmp r1, r2 + 4031ea: d20a bcs.n 403202 + 4031ec: 4a08 ldr r2, [pc, #32] (403210 ) + 4031ee: 4291 cmp r1, r2 + 4031f0: d007 beq.n 403202 + 4031f2: 0909 lsrs r1, r1, #4 + 4031f4: 1e49 subs r1, r1, #1 + 4031f6: 0609 lsls r1, r1, #24 + 4031f8: 0e09 lsrs r1, r1, #24 + 4031fa: 4a06 ldr r2, [pc, #24] (403214 ) + 4031fc: 6800 ldr r0, [r0, #0] + 4031fe: 5450 strb r0, [r2, r1] + 403200: e7d7 b.n 4031b2 + 403202: 2000 movs r0, #0 + 403204: 4770 bx lr + 403206: 46c0 nop (mov r8, r8) + 403208: 00140001 .word 0x00140001 + 40320c: 0000fff1 .word 0x0000fff1 + 403210: 00000e0f .word 0x00000e0f + 403214: 004052a0 .word 0x004052a0 + +00403218 : + 403218: b570 push {r4, r5, r6, lr} + 40321a: b08a sub sp, #40 + 40321c: 0006 lsls r6, r0, #0 // r0 has 0x1F000 from call in radioinit + 40321e: a804 add r0, sp, #16 + 403220: 2102 movs r1, #2 + 403222: 7001 strb r1, [r0, #0] // *0x1F000 = 2; + 403224: 2101 movs r1, #1 + 403226: 7101 strb r1, [r0, #4] // *0x1F000 = 1; + 403228: f400 fce4 bl 3bf4 // call to ROM: I assume this turns on the NVM reg + 40322c: 482b ldr r0, [pc, #172] (4032dc ) r0 = &u32SystemClock + 40322e: 6800 ldr r0, [r0, #0] // r0 = u32SystemClock + 403230: 2107 movs r1, #7 // r1 = 7 + 403232: f7fd fb8d bl 400950 //divide clock by 7? + 403236: 9001 str r0, [sp, #4] + 403238: 9801 ldr r0, [sp, #4] // loop: r0 has result + 40323a: 1e41 subs r1, r0, #1 // r1 = result - 1 + 40323c: 9101 str r1, [sp, #4] // r1 goes on the stack + 40323e: 2800 cmp r0, #0 // check if it's 0 + 403240: d1fa bne.n 403238 //go to loop if not zero, delay for vreg + 403242: 4669 mov r1, sp + 403244: f403 fd38 bl 6cb8 //call to ROM, looks like it returns 0 on fail and a pointer otherwise + 403248: 2800 cmp r0, #0 //0? + 40324a: d103 bne.n 403254 // branch to return0: + 40324c: 4668 mov r0, sp + 40324e: 7800 ldrb r0, [r0, #0] // r0 gets where the return value points + 403250: 2800 cmp r0, #0 // return 0 if 0 + 403252: d101 bne.n 403258 //otherwise branch to 1: + 403254: 2000 movs r0, #0 //return0: + 403256: e03e b.n 4032d6 // branch to exit: + 403258: 2000 movs r0, #0 //1: r0 = 0 + 40325a: f403 ff13 bl 7084 //call to ROM: might need to dump this one... + 40325e: 2008 movs r0, #8 // r0 gets 8; + 403260: b501 push {r0, lr} // looks like stack setup for call to NVM_Read + 403262: 0033 lsls r3, r6, #0 + 403264: aa04 add r2, sp, #16 //pDest dump this! + 403266: a802 add r0, sp, #8 + 403268: 7801 ldrb r1, [r0, #0] //nvmType + 40326a: 2000 movs r0, #0 //nvmInterface +//extern nvmErr_t NVM_Read(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes); + 40326c: f403 fd7c bl 6d68 + 403270: b002 add sp, #8 + 403272: 2800 cmp r0, #0 // did it return 0? + 403274: d109 bne.n 40328a //if != branch to 2: + 403276: 9802 ldr r0, [sp, #8] //r0 gets something on the stack + 403278: 4919 ldr r1, [pc, #100] (4032e0 ) //r1 = 0x00000abc + 40327a: 4288 cmp r0, r1 + 40327c: d105 bne.n 40328a //branch to 2: if != + 40327e: a802 add r0, sp, #8 + 403280: 88c1 ldrh r1, [r0, #6] + 403282: 22ff movs r2, #255 + 403284: 1c92 adds r2, r2, #2 + 403286: 4291 cmp r1, r2 + 403288: d303 bcc.n 403292 + 40328a: 2001 movs r0, #1 // 2: + 40328c: f403 fefa bl 7084 + 403290: e7e0 b.n 403254 + 403292: 2408 movs r4, #8 + 403294: 8885 ldrh r5, [r0, #4] + 403296: 1f2d subs r5, r5, #4 + 403298: e006 b.n 4032a8 + 40329a: a806 add r0, sp, #24 + 40329c: f7ff ff82 bl 4031a4 // so it looks like flash has entries it exectues... + 4032a0: 2800 cmp r0, #0 + 4032a2: d00f beq.n 4032c4 + 4032a4: 0080 lsls r0, r0, #2 + 4032a6: 1824 adds r4, r4, r0 + 4032a8: 42ac cmp r4, r5 + 4032aa: d210 bcs.n 4032ce + 4032ac: 2010 movs r0, #16 + 4032ae: b501 push {r0, lr} + 4032b0: 1933 adds r3, r6, r4 + 4032b2: aa08 add r2, sp, #32 + 4032b4: a802 add r0, sp, #8 + 4032b6: 7801 ldrb r1, [r0, #0] + 4032b8: 2000 movs r0, #0 + 4032ba: f403 fd55 bl 6d68 + 4032be: b002 add sp, #8 + 4032c0: 2800 cmp r0, #0 + 4032c2: d0ea beq.n 40329a + 4032c4: 2001 movs r0, #1 + 4032c6: f403 fedd bl 7084 + 4032ca: 0020 lsls r0, r4, #0 + 4032cc: e003 b.n 4032d6 + 4032ce: 2001 movs r0, #1 + 4032d0: f403 fed8 bl 7084 + 4032d4: 1d20 adds r0, r4, #4 + 4032d6: b00a add sp, #40 //exit: + 4032d8: e01c b.n 403314 + 4032da: 46c0 nop (mov r8, r8) + 4032dc: 00405448 .word 0x00405448 + 4032e0: 00000abc .word 0x00000abc + +// 000 entries exit initfrom memory + +004032e4 : + 4032e4: b570 push {r4, r5, r6, lr} + 4032e6: 0005 lsls r5, r0, #0 // r5 is first arg + 4032e8: 000c lsls r4, r1, #0 // r4 is second arg + 4032ea: 2600 movs r6, #0 // r6 gets 0 + 4032ec: 2d00 cmp r5, #0 // if r5 is zero + 4032ee: d001 beq.n 4032f4 // then branch to 1 + 4032f0: 0760 lsls r0, r4, #29 // else r4<<29 what does this do to z? some kind of bounds check? max size check? + 4032f2: d002 beq.n 4032fa // branch to 2: if z is set + 4032f4: 2000 movs r0, #0 // 1: r0 get 0 + 4032f6: e00c b.n 403312 // goto end: + 4032f8: 1836 adds r6, r6, r0 // loop: r6 = r6 + r0 + 4032fa: 08a0 lsrs r0, r4, #2 // 2: r0 = r4 >> 2 r0 has the size/4? + 4032fc: 4286 cmp r6, r0 // compare r6 and r0 + 4032fe: d207 bcs.n 403310 // branch to 3: if higher or same //another bounds check? + 403300: 00b0 lsls r0, r6, #2 // r0 = r6 << 2 //align check? + 403302: 1828 adds r0, r5, r0 // r0 = r5 + r0 //r0 has base plus current offset.. maybe + 403304: f7ff ff4e bl 4031a4 // call InitExecturEntry (maybe this does the copy?) //do the entry + 403308: 2800 cmp r0, #0 // compare r0 to 0 + 40330a: d1f5 bne.n 4032f8 // if not 0 branch to loop: + 40330c: 0030 lsls r0, r6, #0 // r0 = r6 + 40330e: e000 b.n 403312 // goto end: + 403310: 00b0 lsls r0, r6, #2 // 3: r0 = r6 << 2 + 403312: 46c0 nop (mov r8, r8) // end: + 403314: 9903 ldr r1, [sp, #12] + 403316: bc70 pop {r4, r5, r6} + 403318: b001 add sp, #4 + 40331a: 4708 bx r1 + +0040331c : + 40331c: b408 push {r3} + 40331e: 4b02 ldr r3, [pc, #8] (403328 ) + 403320: 469c mov ip, r3 + 403322: bc08 pop {r3} + 403324: 4760 bx ip + 403326: 46c0 nop (mov r8, r8) + 403328: 00002c4d .word 0x00002c4d + +0040332c : + 40332c: b408 push {r3} + 40332e: 4b02 ldr r3, [pc, #8] (403338 ) + 403330: 469c mov ip, r3 + 403332: bc08 pop {r3} + 403334: 4760 bx ip + 403336: 46c0 nop (mov r8, r8) + 403338: 00002ccd .word 0x00002ccd + +0040333c : + 40333c: b408 push {r3} + 40333e: 4b02 ldr r3, [pc, #8] (403348 ) + 403340: 469c mov ip, r3 + 403342: bc08 pop {r3} + 403344: 4760 bx ip + 403346: 46c0 nop (mov r8, r8) + 403348: 00002f21 .word 0x00002f21 + +0040334c : + 40334c: b408 push {r3} + 40334e: 4b02 ldr r3, [pc, #8] (403358 ) + 403350: 469c mov ip, r3 + 403352: bc08 pop {r3} + 403354: 4760 bx ip + 403356: 46c0 nop (mov r8, r8) + 403358: 00002e59 .word 0x00002e59 + +0040335c : + 40335c: b408 push {r3} + 40335e: 4b02 ldr r3, [pc, #8] (403368 ) + 403360: 469c mov ip, r3 + 403362: bc08 pop {r3} + 403364: 4760 bx ip + 403366: 46c0 nop (mov r8, r8) + 403368: 00002f71 .word 0x00002f71 + +0040336c : + 40336c: b408 push {r3} + 40336e: 4b02 ldr r3, [pc, #8] (403378 ) + 403370: 469c mov ip, r3 + 403372: bc08 pop {r3} + 403374: 4760 bx ip + 403376: 46c0 nop (mov r8, r8) + 403378: 00002fb9 .word 0x00002fb9 + +0040337c : + 40337c: b408 push {r3} + 40337e: 4b02 ldr r3, [pc, #8] (403388 ) + 403380: 469c mov ip, r3 + 403382: bc08 pop {r3} + 403384: 4760 bx ip + 403386: 46c0 nop (mov r8, r8) + 403388: 00003079 .word 0x00003079 + +0040338c : + 40338c: b510 push {r4, lr} + 40338e: b084 sub sp, #16 + 403390: 0004 lsls r4, r0, #0 + 403392: f000 f841 bl 403418 + 403396: 2000 movs r0, #0 + 403398: a902 add r1, sp, #8 + 40339a: 8088 strh r0, [r1, #4] + 40339c: 2296 movs r2, #150 + 40339e: 0212 lsls r2, r2, #8 + 4033a0: 9202 str r2, [sp, #8] + 4033a2: 80c8 strh r0, [r1, #6] + 4033a4: 4918 ldr r1, [pc, #96] (403408 ) + 4033a6: 2001 movs r0, #1 + 4033a8: f40c fdbc bl ff24 + 4033ac: 2100 movs r1, #0 + 4033ae: 2001 movs r0, #1 + 4033b0: f40c fd9a bl fee8 + 4033b4: 2001 movs r0, #1 + 4033b6: f40c fe05 bl ffc4 + 4033ba: 4914 ldr r1, [pc, #80] (40340c ) + 4033bc: 2000 movs r0, #0 + 4033be: f7ff ffad bl 40331c + 4033c2: a902 add r1, sp, #8 + 4033c4: 2000 movs r0, #0 + 4033c6: f7ff ffb1 bl 40332c + 4033ca: 2105 movs r1, #5 + 4033cc: 2000 movs r0, #0 + 4033ce: f7ff ffb5 bl 40333c + 4033d2: 2105 movs r1, #5 + 4033d4: 2000 movs r0, #0 + 4033d6: f7ff ffb9 bl 40334c + 4033da: 480d ldr r0, [pc, #52] (403410 ) + 4033dc: 9001 str r0, [sp, #4] + 4033de: 480d ldr r0, [pc, #52] (403414 ) + 4033e0: 9000 str r0, [sp, #0] + 4033e2: 4669 mov r1, sp + 4033e4: 2000 movs r0, #0 + 4033e6: f7ff ffb9 bl 40335c + 4033ea: 2000 movs r0, #0 + 4033ec: f7fd fa90 bl 400910 + 4033f0: 2301 movs r3, #1 + 4033f2: 2204 movs r2, #4 + 4033f4: 0021 lsls r1, r4, #0 + 4033f6: 2000 movs r0, #0 + 4033f8: f7ff ffb8 bl 40336c + 4033fc: b004 add sp, #16 + 4033fe: 9801 ldr r0, [sp, #4] + 403400: bc10 pop {r4} + 403402: b001 add sp, #4 + 403404: 4700 bx r0 + 403406: 46c0 nop (mov r8, r8) + +00403408 : + 403408: 00003275 .word 0x00003275 + 40340c: 00005dc0 .word 0x00005dc0 + 403410: 0040346f .word 0x0040346f + 403414: 0040346d .word 0x0040346d + +00403418 : + 403418: 20a0 movs r0, #160 + 40341a: 0280 lsls r0, r0, #10 + 40341c: 4912 ldr r1, [pc, #72] (403468 ) + 40341e: 6a09 ldr r1, [r1, #32] + 403420: 4301 orrs r1, r0 + 403422: 4a11 ldr r2, [pc, #68] (403468 ) + 403424: 6211 str r1, [r2, #32] + 403426: 0011 lsls r1, r2, #0 + 403428: 680a ldr r2, [r1, #0] + 40342a: 4302 orrs r2, r0 + 40342c: 600a str r2, [r1, #0] + 40342e: 6989 ldr r1, [r1, #24] + 403430: 4a0c ldr r2, [pc, #48] (403464 ) + 403432: 400a ands r2, r1 + 403434: 490c ldr r1, [pc, #48] (403468 ) + 403436: 618a str r2, [r1, #24] + 403438: 6508 str r0, [r1, #80] + 40343a: 0008 lsls r0, r1, #0 + 40343c: 21a0 movs r1, #160 + 40343e: 0249 lsls r1, r1, #9 + 403440: 6481 str r1, [r0, #72] + 403442: 6880 ldr r0, [r0, #8] + 403444: 0100 lsls r0, r0, #4 + 403446: 0900 lsrs r0, r0, #4 + 403448: 4907 ldr r1, [pc, #28] (403468 ) + 40344a: 22a0 movs r2, #160 + 40344c: 05d2 lsls r2, r2, #23 + 40344e: 4302 orrs r2, r0 + 403450: 608a str r2, [r1, #8] + 403452: 68c8 ldr r0, [r1, #12] + 403454: 210f movs r1, #15 + 403456: 4388 bics r0, r1 + 403458: 4903 ldr r1, [pc, #12] (403468 ) + 40345a: 2205 movs r2, #5 + 40345c: 4302 orrs r2, r0 + 40345e: 60ca str r2, [r1, #12] + 403460: 4770 bx lr + 403462: 46c0 nop (mov r8, r8) + +00403464 : + 403464: fffd7fff .word 0xfffd7fff + +00403468 : + 403468: 80000010 .word 0x80000010 + +0040346c : + 40346c: e000 b.n 403470 + +0040346e : + 40346e: 4770 bx lr + +00403470 : + 403470: 4915 ldr r1, [pc, #84] (4034c8 ) + 403472: 2201 movs r2, #1 + 403474: 704a strb r2, [r1, #1] + 403476: 8842 ldrh r2, [r0, #2] + 403478: 804a strh r2, [r1, #2] + 40347a: 7800 ldrb r0, [r0, #0] + 40347c: 7008 strb r0, [r1, #0] + 40347e: 4770 bx lr + +00403480 : + 403480: b579 push {r0, r3, r4, r5, r6, lr} + 403482: b082 sub sp, #8 + 403484: 2500 movs r5, #0 + 403486: 2696 movs r6, #150 + 403488: 0076 lsls r6, r6, #1 + +0040348a : + 40348a: 9902 ldr r1, [sp, #8] + 40348c: 1948 adds r0, r1, r5 + 40348e: 7801 ldrb r1, [r0, #0] + 403490: 2900 cmp r1, #0 + 403492: d013 beq.n 4034bc + 403494: 4669 mov r1, sp + 403496: 7800 ldrb r0, [r0, #0] + 403498: 7008 strb r0, [r1, #0] + 40349a: 1c6d adds r5, r5, #1 + 40349c: 062d lsls r5, r5, #24 + 40349e: 0e2d lsrs r5, r5, #24 + 4034a0: 2400 movs r4, #0 + +004034a2 : + 4034a2: 2201 movs r2, #1 + 4034a4: 4669 mov r1, sp + 4034a6: 2000 movs r0, #0 + 4034a8: f7ff ff68 bl 40337c + 4034ac: 2800 cmp r0, #0 + 4034ae: d0ec beq.n 40348a + 4034b0: 42b4 cmp r4, r6 + 4034b2: d2ea bcs.n 40348a + 4034b4: 1c64 adds r4, r4, #1 + 4034b6: 0424 lsls r4, r4, #16 + 4034b8: 0c24 lsrs r4, r4, #16 + 4034ba: e7f2 b.n 4034a2 + +004034bc : + 4034bc: b004 add sp, #16 + 4034be: 9803 ldr r0, [sp, #12] + 4034c0: bc70 pop {r4, r5, r6} + 4034c2: b001 add sp, #4 + 4034c4: 4700 bx r0 + ... + +004034c8 : + 4034c8: 004052a4 .word 0x004052a4 + +004034cc : + 4034cc: e59fc000 ldr ip, [pc, #0] ; 4034d4 + 4034d0: e12fff1c bx ip + 4034d4: 00403f3d .word 0x00403f3d + +004034d8 : + 4034d8: e59fc000 ldr ip, [pc, #0] ; 4034e0 + 4034dc: e12fff1c bx ip + 4034e0: 00400a29 .word 0x00400a29 + +004034e4 <__start_>: + 4034e4: e59f1100 ldr r1, [pc, #256] ; 4035ec <_?0> + 4034e8: e3a000d3 mov r0, #211 ; 0xd3 + 4034ec: e121f000 msr CPSR_c, r0 + 4034f0: e2811f40 add r1, r1, #256 ; 0x100 + 4034f4: e1a0d001 mov sp, r1 + 4034f8: e3a000d2 mov r0, #210 ; 0xd2 + 4034fc: e121f000 msr CPSR_c, r0 + 403500: e2811e40 add r1, r1, #1024 ; 0x400 + 403504: e1a0d001 mov sp, r1 + 403508: e3a000d1 mov r0, #209 ; 0xd1 + 40350c: e121f000 msr CPSR_c, r0 + 403510: e2811e40 add r1, r1, #1024 ; 0x400 + 403514: e1a0d001 mov sp, r1 + 403518: e3a000db mov r0, #219 ; 0xdb + 40351c: e121f000 msr CPSR_c, r0 + 403520: e2811f40 add r1, r1, #256 ; 0x100 + 403524: e1a0d001 mov sp, r1 + 403528: e3a000d7 mov r0, #215 ; 0xd7 + 40352c: e121f000 msr CPSR_c, r0 + 403530: e2811f40 add r1, r1, #256 ; 0x100 + 403534: e1a0d001 mov sp, r1 + 403538: e3a000df mov r0, #223 ; 0xdf + 40353c: e121f000 msr CPSR_c, r0 + 403540: e2811e80 add r1, r1, #2048 ; 0x800 + 403544: e1a0d001 mov sp, r1 + 403548: eb00023b bl 403e3c <__iar_data_init2> + 40354c: e59f009c ldr r0, [pc, #156] ; 4035f0 <_?1> + 403550: e59f309c ldr r3, [pc, #156] ; 4035f4 <_?2> + 403554: e1500003 cmp r0, r3 + 403558: 0a000000 beq 403560 <__call_main> + 40355c: ebf034db bl 108d0 <__rom_data_init> + +00403560 <__call_main>: + 403560: ebffffd9 bl 4034cc + 403564: eaffffdb b 4034d8 + +00403568 <__reserved_>: + 403568: e1b0f00e movs pc, lr + +0040356c <__UndefInstructionHndlr_>: + 40356c: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 403570: e59f0080 ldr r0, [pc, #128] ; 4035f8 <_?3> + 403574: e5900000 ldr r0, [r0] + 403578: e3500000 cmp r0, #0 ; 0x0 + 40357c: 11a0e00f movne lr, pc + 403580: 112fff10 bxne r0 + 403584: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 403588: e1b0f00e movs pc, lr + +0040358c <__SupervisorHndlr_>: + 40358c: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 403590: e59f0064 ldr r0, [pc, #100] ; 4035fc <_?4> + 403594: e5900000 ldr r0, [r0] + 403598: e3500000 cmp r0, #0 ; 0x0 + 40359c: 11a0e00f movne lr, pc + 4035a0: 112fff10 bxne r0 + 4035a4: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 4035a8: e1b0f00e movs pc, lr + +004035ac <__PrefetchAbtHndlr_>: + 4035ac: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 4035b0: e59f0048 ldr r0, [pc, #72] ; 403600 <_?5> + 4035b4: e5900000 ldr r0, [r0] + 4035b8: e3500000 cmp r0, #0 ; 0x0 + 4035bc: 11a0e00f movne lr, pc + 4035c0: 112fff10 bxne r0 + 4035c4: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 4035c8: e25ef004 subs pc, lr, #4 ; 0x4 + +004035cc <__DataAbtHndlr_>: + 4035cc: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 4035d0: e59f002c ldr r0, [pc, #44] ; 403604 <_?6> + 4035d4: e5900000 ldr r0, [r0] + 4035d8: e3500000 cmp r0, #0 ; 0x0 + 4035dc: 11a0e00f movne lr, pc + 4035e0: 112fff10 bxne r0 + 4035e4: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} + 4035e8: e25ef004 subs pc, lr, #4 ; 0x4 + +004035ec <_?0>: + 4035ec: 00403f44 .word 0x00403f44 + +004035f0 <_?1>: + 4035f0: 00011788 .word 0x00011788 + +004035f4 <_?2>: + 4035f4: 000117a8 .word 0x000117a8 + +004035f8 <_?3>: + 4035f8: 0040014c .word 0x0040014c + +004035fc <_?4>: + 4035fc: 00400150 .word 0x00400150 + +00403600 <_?5>: + 403600: 00400154 .word 0x00400154 + +00403604 <_?6>: + 403604: 00400158 .word 0x00400158 + +00403608 : + 403608: b580 push {r7, lr} + 40360a: 200f movs r0, #15 + 40360c: f000 f80a bl 403624 + 403610: 200f movs r0, #15 + 403612: f000 f855 bl 4036c0 + 403616: 2100 movs r1, #0 + 403618: 2019 movs r0, #25 + 40361a: f404 ff31 bl 8480 + 40361e: 9801 ldr r0, [sp, #4] + 403620: b002 add sp, #8 + 403622: 4700 bx r0 + +00403624 : + 403624: b510 push {r4, lr} + 403626: 0004 lsls r4, r0, #0 + 403628: 07e0 lsls r0, r4, #31 + 40362a: d50f bpl.n 40364c + 40362c: 2100 movs r1, #0 + 40362e: 2017 movs r0, #23 + 403630: f405 f89c bl 876c + 403634: 2101 movs r1, #1 + 403636: 2017 movs r0, #23 + 403638: f404 ff9c bl 8574 + 40363c: 2101 movs r1, #1 + 40363e: 2017 movs r0, #23 + 403640: f404 feb2 bl 83a8 + 403644: 2101 movs r1, #1 + 403646: 2017 movs r0, #23 + 403648: f404 ff1a bl 8480 + +0040364c : + 40364c: 07a0 lsls r0, r4, #30 + 40364e: d50f bpl.n 403670 + 403650: 2100 movs r1, #0 + 403652: 2018 movs r0, #24 + 403654: f405 f88a bl 876c + 403658: 2101 movs r1, #1 + 40365a: 2018 movs r0, #24 + 40365c: f404 ff8a bl 8574 + 403660: 2101 movs r1, #1 + 403662: 2018 movs r0, #24 + 403664: f404 fea0 bl 83a8 + 403668: 2101 movs r1, #1 + 40366a: 2018 movs r0, #24 + 40366c: f404 ff08 bl 8480 + +00403670 : + 403670: 0760 lsls r0, r4, #29 + 403672: d50f bpl.n 403694 + 403674: 2100 movs r1, #0 + 403676: 2019 movs r0, #25 + 403678: f405 f878 bl 876c + 40367c: 2101 movs r1, #1 + 40367e: 2019 movs r0, #25 + 403680: f404 ff78 bl 8574 + 403684: 2101 movs r1, #1 + 403686: 2019 movs r0, #25 + 403688: f404 fe8e bl 83a8 + 40368c: 2101 movs r1, #1 + 40368e: 2019 movs r0, #25 + 403690: f404 fef6 bl 8480 + +00403694 : + 403694: 0720 lsls r0, r4, #28 + 403696: d50f bpl.n 4036b8 + 403698: 2100 movs r1, #0 + 40369a: 202c movs r0, #44 + 40369c: f405 f866 bl 876c + 4036a0: 2101 movs r1, #1 + 4036a2: 202c movs r0, #44 + 4036a4: f404 ff66 bl 8574 + 4036a8: 2101 movs r1, #1 + 4036aa: 202c movs r0, #44 + 4036ac: f404 fe7c bl 83a8 + 4036b0: 2101 movs r1, #1 + 4036b2: 202c movs r0, #44 + 4036b4: f404 fee4 bl 8480 + +004036b8 : + 4036b8: 9801 ldr r0, [sp, #4] + 4036ba: bc10 pop {r4} + 4036bc: b001 add sp, #4 + 4036be: 4700 bx r0 + +004036c0 : + 4036c0: b510 push {r4, lr} + 4036c2: 0004 lsls r4, r0, #0 + 4036c4: 07e0 lsls r0, r4, #31 + 4036c6: d503 bpl.n 4036d0 + 4036c8: 2100 movs r1, #0 + 4036ca: 2017 movs r0, #23 + 4036cc: f404 fed8 bl 8480 + +004036d0 : + 4036d0: 07a0 lsls r0, r4, #30 + 4036d2: d503 bpl.n 4036dc + 4036d4: 2100 movs r1, #0 + 4036d6: 2018 movs r0, #24 + 4036d8: f404 fed2 bl 8480 + +004036dc : + 4036dc: 0760 lsls r0, r4, #29 + 4036de: d503 bpl.n 4036e8 + 4036e0: 2100 movs r1, #0 + 4036e2: 2019 movs r0, #25 + 4036e4: f404 fecc bl 8480 + +004036e8 : + 4036e8: 0720 lsls r0, r4, #28 + 4036ea: d503 bpl.n 4036f4 + 4036ec: 2100 movs r1, #0 + 4036ee: 202c movs r0, #44 + 4036f0: f404 fec6 bl 8480 + +004036f4 : + 4036f4: 9801 ldr r0, [sp, #4] + 4036f6: bc10 pop {r4} + 4036f8: b001 add sp, #4 + 4036fa: 4700 bx r0 + +004036fc <__iar_packbits_init2>: + 4036fc: e92d43f8 push {r3, r4, r5, r6, r7, r8, r9, lr} + 403700: e5902000 ldr r2, [r0] + 403704: e2801008 add r1, r0, #8 ; 0x8 + 403708: e5900004 ldr r0, [r0, #4] + 40370c: e0812182 add r2, r1, r2, lsl #3 + 403710: e0820180 add r0, r2, r0, lsl #3 + 403714: e3a06000 mov r6, #0 ; 0x0 + 403718: e3a07000 mov r7, #0 ; 0x0 + 40371c: e3a04000 mov r4, #0 ; 0x0 + 403720: e3a05001 mov r5, #1 ; 0x1 + 403724: ea00000a b 403754 <__iar_packbits_init2+0x58> + 403728: e4d68001 ldrb r8, [r6], #1 + 40372c: e15e0009 cmp lr, r9 + 403730: 0a000005 beq 40374c <__iar_packbits_init2+0x50> + 403734: e2844001 add r4, r4, #1 ; 0x1 + 403738: e1a04804 lsl r4, r4, #16 + 40373c: e4ce8001 strb r8, [lr], #1 + 403740: e1b04844 asrs r4, r4, #16 + 403744: 4afffff8 bmi 40372c <__iar_packbits_init2+0x30> + 403748: e3a05001 mov r5, #1 ; 0x1 + 40374c: e15e0009 cmp lr, r9 + 403750: 1a00000a bne 403780 <__iar_packbits_init2+0x84> + 403754: e1520000 cmp r2, r0 + 403758: 1a000001 bne 403764 <__iar_packbits_init2+0x68> + 40375c: e8bd43f2 pop {r1, r4, r5, r6, r7, r8, r9, lr} + 403760: e12fff1e bx lr + 403764: e492e004 ldr lr, [r2], #4 + 403768: e4928004 ldr r8, [r2], #4 + 40376c: e088900e add r9, r8, lr + 403770: eafffff5 b 40374c <__iar_packbits_init2+0x50> + 403774: e4916004 ldr r6, [r1], #4 + 403778: e4917004 ldr r7, [r1], #4 + 40377c: e0877006 add r7, r7, r6 + 403780: e1560007 cmp r6, r7 + 403784: 0afffffa beq 403774 <__iar_packbits_init2+0x78> + 403788: e3550000 cmp r5, #0 ; 0x0 + 40378c: 0a000007 beq 4037b0 <__iar_packbits_init2+0xb4> + 403790: e0d640d1 ldrsb r4, [r6], #1 + 403794: e3a05000 mov r5, #0 ; 0x0 + 403798: ea000002 b 4037a8 <__iar_packbits_init2+0xac> + 40379c: e4916004 ldr r6, [r1], #4 + 4037a0: e4917004 ldr r7, [r1], #4 + 4037a4: e0877006 add r7, r7, r6 + 4037a8: e1560007 cmp r6, r7 + 4037ac: 0afffffa beq 40379c <__iar_packbits_init2+0xa0> + 4037b0: e3540000 cmp r4, #0 ; 0x0 + 4037b4: 4affffdb bmi 403728 <__iar_packbits_init2+0x2c> + 4037b8: e3540000 cmp r4, #0 ; 0x0 + 4037bc: 4affffe1 bmi 403748 <__iar_packbits_init2+0x4c> + 4037c0: e15e0009 cmp lr, r9 + 4037c4: 11560007 cmpne r6, r7 + 4037c8: 0affffdf beq 40374c <__iar_packbits_init2+0x50> + 4037cc: e4d68001 ldrb r8, [r6], #1 + 4037d0: e2444001 sub r4, r4, #1 ; 0x1 + 4037d4: e1a04804 lsl r4, r4, #16 + 4037d8: e4ce8001 strb r8, [lr], #1 + 4037dc: e1a04844 asr r4, r4, #16 + 4037e0: eafffff4 b 4037b8 <__iar_packbits_init2+0xbc> + +004037e4 : + 4037e4: 0000080f .word 0x0000080f + 4037e8: 0000080f .word 0x0000080f + 4037ec: 0000080f .word 0x0000080f + 4037f0: 0000080f .word 0x0000080f + 4037f4: 0000081f .word 0x0000081f + 4037f8: 0000081f .word 0x0000081f + 4037fc: 0000081f .word 0x0000081f + 403800: 0000080f .word 0x0000080f + 403804: 0000080f .word 0x0000080f + 403808: 0000080f .word 0x0000080f + 40380c: 0000001f .word 0x0000001f + 403810: 0000000f .word 0x0000000f + 403814: 0000000f .word 0x0000000f + 403818: 00000816 .word 0x00000816 + 40381c: 0000001b .word 0x0000001b + 403820: 0000000b .word 0x0000000b + 403824: 00000802 .word 0x00000802 + 403828: 00000817 .word 0x00000817 + 40382c: 00000003 .word 0x00000003 + +00403830 : + 403830: 000022c0 .word 0x000022c0 + 403834: 000022c0 .word 0x000022c0 + 403838: 000022c0 .word 0x000022c0 + 40383c: 00002280 .word 0x00002280 + 403840: 00002303 .word 0x00002303 + 403844: 000023c0 .word 0x000023c0 + 403848: 00002880 .word 0x00002880 + 40384c: 000029f0 .word 0x000029f0 + 403850: 000029f0 .word 0x000029f0 + 403854: 000029f0 .word 0x000029f0 + 403858: 000029c0 .word 0x000029c0 + 40385c: 00002bf0 .word 0x00002bf0 + 403860: 000029f0 .word 0x000029f0 + 403864: 000028a0 .word 0x000028a0 + 403868: 00002800 .word 0x00002800 + 40386c: 00002ac0 .word 0x00002ac0 + 403870: 00002880 .word 0x00002880 + 403874: 00002a00 .word 0x00002a00 + 403878: 00002b00 .word 0x00002b00 + +0040387c : + 40387c: 000123a0 .word 0x000123a0 + 403880: 000163a0 .word 0x000163a0 + 403884: 0001a3a0 .word 0x0001a3a0 + 403888: 0001e3a0 .word 0x0001e3a0 + 40388c: 000223a0 .word 0x000223a0 + 403890: 000263a0 .word 0x000263a0 + 403894: 0002a3a0 .word 0x0002a3a0 + 403898: 0002e3a0 .word 0x0002e3a0 + 40389c: 000323a0 .word 0x000323a0 + 4038a0: 000363a0 .word 0x000363a0 + 4038a4: 0003a3a0 .word 0x0003a3a0 + 4038a8: 0003a3a0 .word 0x0003a3a0 + 4038ac: 0003e3a0 .word 0x0003e3a0 + 4038b0: 000423a0 .word 0x000423a0 + 4038b4: 000523a0 .word 0x000523a0 + 4038b8: 000423a0 .word 0x000423a0 + 4038bc: 0004e3a0 .word 0x0004e3a0 + 4038c0: 0004e3a0 .word 0x0004e3a0 + 4038c4: 0004e3a0 .word 0x0004e3a0 + +004038c8 : + 4038c8: 482a ldr r0, [pc, #168] (403974 ) + 4038ca: 7800 ldrb r0, [r0, #0] + 4038cc: 4770 bx lr + ... + +004038d0 : + 4038d0: b570 push {r4, r5, r6, lr} + 4038d2: b082 sub sp, #8 + 4038d4: 2500 movs r5, #0 + 4038d6: 2601 movs r6, #1 + 4038d8: 4c26 ldr r4, [pc, #152] (403974 ) + 4038da: 7860 ldrb r0, [r4, #1] + 4038dc: 2800 cmp r0, #0 + 4038de: d109 bne.n 4038f4 + 4038e0: 7066 strb r6, [r4, #1] + 4038e2: 22a8 movs r2, #168 + 4038e4: 0592 lsls r2, r2, #22 + 4038e6: 2118 movs r1, #24 + 4038e8: 481b ldr r0, [pc, #108] (403958 ) + 4038ea: f7ff fb67 bl 402fbc + 4038ee: 7025 strb r5, [r4, #0] + 4038f0: f7fe fd80 bl 4023f4 + +004038f4 : + 4038f4: 4819 ldr r0, [pc, #100] (40395c ) + 4038f6: 6006 str r6, [r0, #0] + 4038f8: 4669 mov r1, sp + 4038fa: 700d strb r5, [r1, #0] + 4038fc: 466a mov r2, sp + 4038fe: e003 b.n 403908 + +00403900 : + 403900: 4669 mov r1, sp + 403902: 7809 ldrb r1, [r1, #0] + 403904: 1c49 adds r1, r1, #1 + 403906: 7011 strb r1, [r2, #0] + +00403908 : + 403908: 4669 mov r1, sp + 40390a: 7809 ldrb r1, [r1, #0] + 40390c: 2964 cmp r1, #100 + 40390e: d3f7 bcc.n 403900 + 403910: 2102 movs r1, #2 + 403912: 6001 str r1, [r0, #0] + 403914: 6085 str r5, [r0, #8] + 403916: 2103 movs r1, #3 + 403918: 63c1 str r1, [r0, #60] + 40391a: 4811 ldr r0, [pc, #68] (403960 ) + 40391c: 215f movs r1, #95 + 40391e: 6481 str r1, [r0, #72] + 403920: 4910 ldr r1, [pc, #64] (403964 ) + 403922: 64c1 str r1, [r0, #76] + 403924: 2104 movs r1, #4 + 403926: 67c1 str r1, [r0, #124] + 403928: 480f ldr r0, [pc, #60] (403968 ) + 40392a: 4910 ldr r1, [pc, #64] (40396c ) + 40392c: 6001 str r1, [r0, #0] + 40392e: 2125 movs r1, #37 + 403930: 6081 str r1, [r0, #8] + 403932: 480b ldr r0, [pc, #44] (403960 ) + 403934: 21a7 movs r1, #167 + 403936: 6581 str r1, [r0, #88] + 403938: 4808 ldr r0, [pc, #32] (40395c ) + 40393a: 2108 movs r1, #8 + 40393c: 6441 str r1, [r0, #68] + 40393e: 4808 ldr r0, [pc, #32] (403960 ) + 403940: 490b ldr r1, [pc, #44] (403970 ) + 403942: 6001 str r1, [r0, #0] + 403944: 4805 ldr r0, [pc, #20] (40395c ) + 403946: 21d4 movs r1, #212 + 403948: 0389 lsls r1, r1, #14 + 40394a: 6601 str r1, [r0, #96] + 40394c: 2000 movs r0, #0 + 40394e: b002 add sp, #8 + 403950: 9903 ldr r1, [sp, #12] + 403952: bc70 pop {r4, r5, r6} + 403954: b001 add sp, #4 + 403956: 4708 bx r1 + +00403958 : + 403958: 016e3600 .word 0x016e3600 + 40395c: 80004004 .word 0x80004004 + 403960: 800040cc .word 0x800040cc + 403964: 00180012 .word 0x00180012 + 403968: 8000414c .word 0x8000414c + 40396c: 001a0022 .word 0x001a0022 + 403970: 00003815 .word 0x00003815 + +00403974 : + 403974: 004052ad .word 0x004052ad + +00403978 : + 403978: b408 push {r3} + 40397a: 4b02 ldr r3, [pc, #8] (403984 ) + 40397c: 469c mov ip, r3 + 40397e: bc08 pop {r3} + 403980: 4760 bx ip + 403982: 46c0 nop (mov r8, r8) + 403984: 000036d9 .word 0x000036d9 + +00403988 : + 403988: b5f0 push {r4, r5, r6, r7, lr} + 40398a: b083 sub sp, #12 + 40398c: 000f lsls r7, r1, #0 + 40398e: 0014 lsls r4, r2, #0 + 403990: 25f3 movs r5, #243 + 403992: 4005 ands r5, r0 + 403994: 2603 movs r6, #3 + 403996: 2003 movs r0, #3 + 403998: 07e9 lsls r1, r5, #31 + 40399a: d509 bpl.n 4039b0 + 40399c: 4668 mov r0, sp + 40399e: 2101 movs r1, #1 + 4039a0: 7001 strb r1, [r0, #0] + 4039a2: 9801 ldr r0, [sp, #4] + 4039a4: 4330 orrs r0, r6 + 4039a6: 9001 str r0, [sp, #4] + 4039a8: 4668 mov r0, sp + 4039aa: f7ff ffe5 bl 403978 + 4039ae: 2000 movs r0, #0 + +004039b0 : + 4039b0: 2102 movs r1, #2 + 4039b2: 420d tst r5, r1 + 4039b4: d008 beq.n 4039c8 + 4039b6: 4668 mov r0, sp + 4039b8: 7001 strb r1, [r0, #0] + 4039ba: 9801 ldr r0, [sp, #4] + 4039bc: 4306 orrs r6, r0 + 4039be: 9601 str r6, [sp, #4] + 4039c0: 4668 mov r0, sp + 4039c2: f7ff ffd9 bl 403978 + 4039c6: 2000 movs r0, #0 + +004039c8 : + 4039c8: 21f0 movs r1, #240 + 4039ca: 420d tst r5, r1 + 4039cc: d01c beq.n 403a08 + 4039ce: 0028 lsls r0, r5, #0 + 4039d0: 25f0 movs r5, #240 + 4039d2: 4005 ands r5, r0 + 4039d4: 2600 movs r6, #0 + 4039d6: 4668 mov r0, sp + 4039d8: 7006 strb r6, [r0, #0] + 4039da: 0928 lsrs r0, r5, #4 + 4039dc: 9a01 ldr r2, [sp, #4] + 4039de: 230f movs r3, #15 + 4039e0: 439a bics r2, r3 + 4039e2: 4302 orrs r2, r0 + 4039e4: 4b0b ldr r3, [pc, #44] (403a14 ) + 4039e6: 4013 ands r3, r2 + 4039e8: 0300 lsls r0, r0, #12 + 4039ea: 4318 orrs r0, r3 + 4039ec: 4a0a ldr r2, [pc, #40] (403a18 ) + 4039ee: 4002 ands r2, r0 + 4039f0: 0238 lsls r0, r7, #8 + 4039f2: 010b lsls r3, r1, #4 + 4039f4: 4003 ands r3, r0 + 4039f6: 4313 orrs r3, r2 + 4039f8: 0120 lsls r0, r4, #4 + 4039fa: 4001 ands r1, r0 + 4039fc: 4319 orrs r1, r3 + 4039fe: 9101 str r1, [sp, #4] + 403a00: 4668 mov r0, sp + 403a02: f7ff ffb9 bl 403978 + 403a06: 2000 movs r0, #0 + +00403a08 : + 403a08: b003 add sp, #12 + 403a0a: 9904 ldr r1, [sp, #16] + 403a0c: bcf0 pop {r4, r5, r6, r7} + 403a0e: b001 add sp, #4 + 403a10: 4708 bx r1 + 403a12: 46c0 nop (mov r8, r8) + +00403a14 : + 403a14: ffff0fff .word 0xffff0fff + 403a18: fffff00f .word 0xfffff00f + +00403a1c : + 403a1c: b580 push {r7, lr} + 403a1e: 2100 movs r1, #0 + 403a20: 7001 strb r1, [r0, #0] + 403a22: 6841 ldr r1, [r0, #4] + 403a24: 227e movs r2, #126 + 403a26: 700a strb r2, [r1, #0] + 403a28: 6841 ldr r1, [r0, #4] + 403a2a: 22ff movs r2, #255 + 403a2c: 704a strb r2, [r1, #1] + 403a2e: e027 b.n 403a80 + +00403a30 : + 403a30: b580 push {r7, lr} + 403a32: 2810 cmp r0, #16 + 403a34: d301 bcc.n 403a3a + 403a36: 2001 movs r0, #1 + 403a38: e026 b.n 403a88 + +00403a3a : + 403a3a: 0081 lsls r1, r0, #2 r0 is channel number, r1 is offset in words + 403a3c: 4a03 ldr r2, [pc, #12] (403a4c ) r2=0x00403c14 (gaRFSynVCODivF_c) + 403a3e: 5852 ldr r2, [r2, r1] r2 gets gaRFSynVCODivF_c[r1] + 403a40: 4903 ldr r1, [pc, #12] (403a50 ) r1=0x00403c04 (gaRFSynVCODivI_c) + 403a42: 5c09 ldrb r1, [r1, r0] r1 gets gaRFSynVCODivI_c[r0] + 403a44: f7ff fb52 bl 4030ec // SetChannel(chan,gaRFSynVCODivI_c[chan],gaRFSynVCODivF_c[chan]) + 403a48: 2000 movs r0, #0 + 403a4a: e01d b.n 403a88 + +00403a4c : + 403a4c: 00403c14 .word 0x00403c14 + +00403a50 : + 403a50: 00403c04 .word 0x00403c04 + +00403a54 : + 403a54: b580 push {r7, lr} + 403a56: 7802 ldrb r2, [r0, #0] + 403a58: 23f8 movs r3, #248 + 403a5a: 4013 ands r3, r2 + 403a5c: 2201 movs r2, #1 + 403a5e: 431a orrs r2, r3 + 403a60: 7002 strb r2, [r0, #0] + 403a62: e00f b.n 403a84 + +00403a64 : + 403a64: b580 push {r7, lr} + 403a66: 6842 ldr r2, [r0, #4] + 403a68: 2a00 cmp r2, #0 + 403a6a: d101 bne.n 403a70 + 403a6c: 2001 movs r0, #1 + 403a6e: e00b b.n 403a88 + +00403a70 : + 403a70: 7802 ldrb r2, [r0, #0] + 403a72: 23f8 movs r3, #248 + 403a74: 4013 ands r3, r2 + 403a76: 2202 movs r2, #2 + 403a78: 431a orrs r2, r3 + 403a7a: 7002 strb r2, [r0, #0] + 403a7c: 7201 strb r1, [r0, #8] + 403a7e: 46c0 nop (mov r8, r8) + +00403a80 : + 403a80: 2100 movs r1, #0 + 403a82: 46c0 nop (mov r8, r8) + +00403a84 : + 403a84: f7fe fc89 bl 40239a + +00403a88 : + 403a88: 9901 ldr r1, [sp, #4] + 403a8a: b002 add sp, #8 + 403a8c: 4708 bx r1 + +00403a8e : + 403a8e: b580 push {r7, lr} + 403a90: 2813 cmp r0, #19 + 403a92: d301 bcc.n 403a98 + 403a94: 2001 movs r0, #1 + 403a96: e7f7 b.n 403a88 + +00403a98 : + 403a98: 2100 movs r1, #0 + 403a9a: f000 f995 bl 403dc8 + 403a9e: 2000 movs r0, #0 + 403aa0: e7f2 b.n 403a88 + ... + +00403aa4 >: + 403aa4: 41455720 .word 0x41455720 + 403aa8: 52454854 .word 0x52454854 + 403aac: 41545320 .word 0x41545320 + 403ab0: 4e4f4954 .word 0x4e4f4954 + 403ab4: 00000000 .word 0x00000000 + +00403ab8 >: + 403ab8: 6e695720 .word 0x6e695720 + 403abc: 69442064 .word 0x69442064 + 403ac0: 74636572 .word 0x74636572 + 403ac4: 206e6f69 .word 0x206e6f69 + 403ac8: 00000000 .word 0x00000000 + +00403acc >: + 403acc: 20202020 .word 0x20202020 + 403ad0: 646e6957 .word 0x646e6957 + 403ad4: 65705320 .word 0x65705320 + 403ad8: 20206465 .word 0x20206465 + 403adc: 00002020 .word 0x00002020 + +00403ae0 >: + 403ae0: 20202020 .word 0x20202020 + 403ae4: 00000000 .word 0x00000000 + +00403ae8 >: + 403ae8: 20202020 .word 0x20202020 + 403aec: 73657250 .word 0x73657250 + 403af0: 65727573 .word 0x65727573 + 403af4: 00202020 .word 0x00202020 + +00403af8 >: + 403af8: 54202020 .word 0x54202020 + 403afc: 65706d65 .word 0x65706d65 + 403b00: 75746172 .word 0x75746172 + 403b04: 20206572 .word 0x20206572 + 403b08: 00002020 .word 0x00002020 + +00403b0c >: + 403b0c: 74614220 .word 0x74614220 + 403b10: 79726574 .word 0x79726574 + 403b14: 6c6f5620 .word 0x6c6f5620 + 403b18: 65676174 .word 0x65676174 + 403b1c: 00000000 .word 0x00000000 + +00403b20 >: + 403b20: 20202020 .word 0x20202020 + 403b24: 00000020 .word 0x00000020 + +00403b28 >: + 403b28: 6f666542 .word 0x6f666542 + 403b2c: 72206572 .word 0x72206572 + 403b30: 6f696461 .word 0x6f696461 + 403b34: 74657320 .word 0x74657320 + 403b38: 0d0a7075 .word 0x0d0a7075 + 403b3c: 00000000 .word 0x00000000 + +00403b40 >: + 403b40: 6163616d .word 0x6163616d + 403b44: 7361625f .word 0x7361625f + 403b48: 000d0a65 .word 0x000d0a65 + +00403b4c >: + 403b4c: 65646f6d .word 0x65646f6d + 403b50: 7277206d .word 0x7277206d + 403b54: 20657469 .word 0x20657469 + 403b58: 65736162 .word 0x65736162 + 403b5c: 00000d0a .word 0x00000d0a + +00403b60 >: + 403b60: 65646f6d .word 0x65646f6d + 403b64: 6572206d .word 0x6572206d + 403b68: 62206461 .word 0x62206461 + 403b6c: 0a657361 .word 0x0a657361 + 403b70: 0000000d .word 0x0000000d + +00403b74 >: + 403b74: 0a4d5243 .word 0x0a4d5243 + 403b78: 0000000d .word 0x0000000d + +00403b7c >: + 403b7c: 65736572 .word 0x65736572 + 403b80: 64657672 .word 0x64657672 + 403b84: 646f6d20 .word 0x646f6d20 + 403b88: 625f6d65 .word 0x625f6d65 + 403b8c: 0a657361 .word 0x0a657361 + 403b90: 0000000d .word 0x0000000d + +00403b94 >: + 403b94: 65746641 .word 0x65746641 + 403b98: 61722072 .word 0x61722072 + 403b9c: 206f6964 .word 0x206f6964 + 403ba0: 75746573 .word 0x75746573 + 403ba4: 000d0a70 .word 0x000d0a70 + +00403ba8 >: + 403ba8: 20202020 .word 0x20202020 + 403bac: 00204e20 .word 0x00204e20 + +00403bb0 >: + 403bb0: 20202020 .word 0x20202020 + 403bb4: 20204e20 .word 0x20204e20 + 403bb8: 00000000 .word 0x00000000 + +00403bbc >: + 403bbc: 20202020 .word 0x20202020 + 403bc0: 2020454e .word 0x2020454e + 403bc4: 00000000 .word 0x00000000 + +00403bc8 >: + 403bc8: 20202020 .word 0x20202020 + 403bcc: 00204520 .word 0x00204520 + +00403bd0 >: + 403bd0: 20202020 .word 0x20202020 + 403bd4: 20204520 .word 0x20204520 + 403bd8: 00000000 .word 0x00000000 + +00403bdc >: + 403bdc: 20202020 .word 0x20202020 + 403be0: 00204553 .word 0x00204553 + +00403be4 >: + 403be4: 20202020 .word 0x20202020 + 403be8: 00205320 .word 0x00205320 + +00403bec >: + 403bec: 20202020 .word 0x20202020 + 403bf0: 00205753 .word 0x00205753 + +00403bf4 >: + 403bf4: 20202020 .word 0x20202020 + 403bf8: 00205720 .word 0x00205720 + +00403bfc >: + 403bfc: 20202020 .word 0x20202020 + 403c00: 0020574e .word 0x0020574e + +00403c04 : + 403c04: 2f2f2f2f .word 0x2f2f2f2f + 403c08: 2f2f2f2f .word 0x2f2f2f2f + 403c0c: 3030302f .word 0x3030302f + 403c10: 30303030 .word 0x30303030 + +00403c14 : + 403c14: 00355555 .word 0x00355555 + 403c18: 006aaaaa .word 0x006aaaaa + 403c1c: 00a00000 .word 0x00a00000 + 403c20: 00d55555 .word 0x00d55555 + 403c24: 010aaaaa .word 0x010aaaaa + 403c28: 01400000 .word 0x01400000 + 403c2c: 01755555 .word 0x01755555 + 403c30: 01aaaaaa .word 0x01aaaaaa + 403c34: 01e00000 .word 0x01e00000 + 403c38: 00155555 .word 0x00155555 + 403c3c: 004aaaaa .word 0x004aaaaa + 403c40: 00800000 .word 0x00800000 + 403c44: 00b55555 .word 0x00b55555 + 403c48: 00eaaaaa .word 0x00eaaaaa + 403c4c: 01200000 .word 0x01200000 + 403c50: 01555555 .word 0x01555555 + +00403c54 >: + 403c54: 65736162 .word 0x65736162 + 403c58: 20302b20 .word 0x20302b20 + 403c5c: 20202020 .word 0x20202020 + 403c60: 342b2020 .word 0x342b2020 + 403c64: 20202020 .word 0x20202020 + 403c68: 2b202020 .word 0x2b202020 + 403c6c: 20202038 .word 0x20202038 + 403c70: 20202020 .word 0x20202020 + 403c74: 2020632b .word 0x2020632b + 403c78: 20202020 .word 0x20202020 + 403c7c: 30312b20 .word 0x30312b20 + 403c80: 20202020 .word 0x20202020 + 403c84: 312b2020 .word 0x312b2020 + 403c88: 20202034 .word 0x20202034 + 403c8c: 2b202020 .word 0x2b202020 + 403c90: 20203831 .word 0x20203831 + 403c94: 20202020 .word 0x20202020 + 403c98: 2063312b .word 0x2063312b + 403c9c: 20202020 .word 0x20202020 + 403ca0: 000d0a20 .word 0x000d0a20 + +00403ca4 : + 403ca4: 21f0 movs r1, #240 + 403ca6: 0489 lsls r1, r1, #18 + 403ca8: 2080 movs r0, #128 + 403caa: 0600 lsls r0, r0, #24 + 403cac: 6081 str r1, [r0, #8] + 403cae: 2000 movs r0, #0 + 403cb0: 2280 movs r2, #128 + 403cb2: 0612 lsls r2, r2, #24 + 403cb4: 60d0 str r0, [r2, #12] + 403cb6: 6011 str r1, [r2, #0] + 403cb8: 6050 str r0, [r2, #4] + 403cba: 2100 movs r1, #0 + 403cbc: 43c9 mvns r1, r1 + 403cbe: 6111 str r1, [r2, #16] + 403cc0: 6151 str r1, [r2, #20] + 403cc2: 0011 lsls r1, r2, #0 + 403cc4: 6188 str r0, [r1, #24] + 403cc6: 61c8 str r0, [r1, #28] + 403cc8: 6208 str r0, [r1, #32] + 403cca: 6248 str r0, [r1, #36] + 403ccc: 6288 str r0, [r1, #40] + 403cce: 62c8 str r0, [r1, #44] + 403cd0: 22c0 movs r2, #192 + 403cd2: 0192 lsls r2, r2, #6 + 403cd4: 630a str r2, [r1, #48] + 403cd6: 4a05 ldr r2, [pc, #20] (403cec ) + 403cd8: 634a str r2, [r1, #52] + 403cda: 6388 str r0, [r1, #56] + 403cdc: 63c8 str r0, [r1, #60] + 403cde: 0008 lsls r0, r1, #0 + 403ce0: 21c0 movs r1, #192 + 403ce2: 0609 lsls r1, r1, #24 + 403ce4: 6401 str r1, [r0, #64] + 403ce6: 21df movs r1, #223 + 403ce8: 6441 str r1, [r0, #68] + 403cea: 4770 bx lr + +00403cec : + 403cec: 8001c000 .word 0x8001c000 + +00403cf0 : + 403cf0: b538 push {r3, r4, r5, lr} + 403cf2: 24f1 movs r4, #241 + 403cf4: 05a4 lsls r4, r4, #22 + 403cf6: 0022 lsls r2, r4, #0 + 403cf8: 2100 movs r1, #0 + 403cfa: 2000 movs r0, #0 + 403cfc: f404 fb3e bl 837c + 403d00: 2500 movs r5, #0 + 403d02: 43ed mvns r5, r5 + 403d04: 0023 lsls r3, r4, #0 + 403d06: 002a lsls r2, r5, #0 + 403d08: 2103 movs r1, #3 + 403d0a: 2000 movs r0, #0 + 403d0c: f404 fae4 bl 82d8 + 403d10: 0023 lsls r3, r4, #0 + 403d12: 002a lsls r2, r5, #0 + 403d14: 2104 movs r1, #4 + 403d16: 2000 movs r0, #0 + 403d18: f404 fade bl 82d8 + 403d1c: 0023 lsls r3, r4, #0 + 403d1e: 2200 movs r2, #0 + 403d20: 2102 movs r1, #2 + 403d22: 2000 movs r0, #0 + 403d24: f404 fad8 bl 82d8 + 403d28: 0022 lsls r2, r4, #0 + 403d2a: 2100 movs r1, #0 + 403d2c: 2000 movs r0, #0 + 403d2e: f404 fcd9 bl 86e4 + 403d32: b001 add sp, #4 + 403d34: 9802 ldr r0, [sp, #8] + 403d36: bc30 pop {r4, r5} + 403d38: b001 add sp, #4 + 403d3a: 4700 bx r0 + +00403d3c <__aeabi_memset4>: + 403d3c: e1b02c02 lsls r2, r2, #24 + 403d40: e1822422 orr r2, r2, r2, lsr #8 + 403d44: e1822822 orr r2, r2, r2, lsr #16 + +00403d48 <__iar_Memset4_word>: + 403d48: e92d4004 push {r2, lr} + 403d4c: e1a03002 mov r3, r2 + 403d50: e1a0e002 mov lr, r2 + 403d54: e1a0c002 mov ip, r2 + 403d58: e2511010 subs r1, r1, #16 ; 0x10 + 403d5c: 28a0500c stmiacs r0!, {r2, r3, ip, lr} + 403d60: 8afffffc bhi 403d58 <__iar_Memset4_word+0x10> + 403d64: e1b0ce81 lsls ip, r1, #29 + 403d68: 28a0000c stmiacs r0!, {r2, r3} + 403d6c: 44802004 strmi r2, [r0], #4 + 403d70: e1b01f81 lsls r1, r1, #31 + 403d74: 20c020b2 strhcs r2, [r0], #2 + 403d78: 44c02001 strbmi r2, [r0], #1 + 403d7c: e8bd4004 pop {r2, lr} + 403d80: e12fff1e bx lr + +00403d84 : + 403d84: b082 sub sp, #8 + 403d86: 2800 cmp r0, #0 + 403d88: d009 beq.n 403d9e + 403d8a: 4906 ldr r1, [pc, #24] (403da4 ) + +00403d8c : + 403d8c: 1e40 subs r0, r0, #1 + 403d8e: 9100 str r1, [sp, #0] + +00403d90 : + 403d90: 9a00 ldr r2, [sp, #0] + 403d92: 1e53 subs r3, r2, #1 + 403d94: 9300 str r3, [sp, #0] + 403d96: 2a00 cmp r2, #0 + 403d98: d1fa bne.n 403d90 + 403d9a: 2800 cmp r0, #0 + 403d9c: d1f6 bne.n 403d8c + +00403d9e : + 403d9e: b002 add sp, #8 + 403da0: 4770 bx lr + 403da2: 46c0 nop (mov r8, r8) + +00403da4 : + 403da4: 00000d64 .word 0x00000d64 + +00403da8 : + 403da8: b082 sub sp, #8 + 403daa: 2800 cmp r0, #0 + 403dac: d009 beq.n 403dc2 + 403dae: 2103 movs r1, #3 + +00403db0 : + 403db0: 1e40 subs r0, r0, #1 + 403db2: 9100 str r1, [sp, #0] + +00403db4 : + 403db4: 9a00 ldr r2, [sp, #0] + 403db6: 1e53 subs r3, r2, #1 + 403db8: 9300 str r3, [sp, #0] + 403dba: 2a00 cmp r2, #0 + 403dbc: d1fa bne.n 403db4 + 403dbe: 2800 cmp r0, #0 + 403dc0: d1f6 bne.n 403db0 + +00403dc2 : + 403dc2: b002 add sp, #8 + 403dc4: 4770 bx lr + ... + +00403dc8 : + 403dc8: b418 push {r3, r4} + 403dca: 0080 lsls r0, r0, #2 // r0 = r0 * 4 + 403dcc: 4a0a ldr r2, [pc, #40] (403df8 ) // r2 = 0x004037e4 : + 403dce: 5813 ldr r3, [r2, r0] // r3 gets gPSMVAL_c[r0] + 403dd0: 4c0a ldr r4, [pc, #40] (403dfc ) //r4 = 0x8000a014 + 403dd2: 6023 str r3, [r4, #0] // *0x8000a014 = r3 + 403dd4: 1810 adds r0, r2, r0 // add the offset to gPSMVAL_c pointer + 403dd6: 304c adds r0, #76 // point to gPSMVAL_c+76+offset (gPAVAL_c[offset]) + 403dd8: 6802 ldr r2, [r0, #0] // r2 = gPAVAL_c[offset] + 403dda: 2901 cmp r1, #1 // 1 mode? (what's 1 mode?) don't know MLMEPAOutputPower sets r1 to 0 + 403ddc: d103 bne.n 403de6 // branch to 1: + 403dde: 0021 lsls r1, r4, #0 + 403de0: 4b07 ldr r3, [pc, #28] (403e00 ) + 403de2: 4013 ands r3, r2 + 403de4: e002 b.n 403dec + 403de6: 0021 lsls r1, r4, #0 // 1: r1 = r4 = 0x8000a014 + 403de8: 0c8b lsrs r3, r1, #18 // r3 = 0x8000a014 >> 18 + 403dea: 4313 orrs r3, r2 // r3 = (0x8000a014 >> 18) | gPAVAL_c[offset] + 403dec: 60cb str r3, [r1, #12] // *(0x8000a014 + 12) = r3 + 403dee: 6cc0 ldr r0, [r0, #76] // r0 = gPAVAL_c[offset]+76 (gAIMVAL_c) + 403df0: 6408 str r0, [r1, #64] // *(0x8000a014 + 64) = gAIMVAL_c[offset] + 403df2: bc11 pop {r0, r4} + 403df4: 4770 bx lr + 403df6: 46c0 nop (mov r8, r8) + 403df8: 004037e4 .word 0x004037e4 + 403dfc: 8000a014 .word 0x8000a014 + 403e00: ffffdfff .word 0xffffdfff + +00403e04 >: + ... + +00403e18 : + 403e18: 33323130 .word 0x33323130 + 403e1c: 37363534 .word 0x37363534 + 403e20: 42413938 .word 0x42413938 + 403e24: 46454443 .word 0x46454443 + 403e28: 00000000 .word 0x00000000 + +00403e2c >: + 403e2c: 6d726f46 .word 0x6d726f46 + 403e30: 75207461 .word 0x75207461 + 403e34: 6f6e6b6e .word 0x6f6e6b6e + 403e38: 00000077 .word 0x00000077 + +00403e3c <__iar_data_init2>: + 403e3c: e59f0024 ldr r0, [pc, #36] ; 403e68 <__iar_data_init2+0x2c> + 403e40: e92d4010 push {r4, lr} + 403e44: e59f4020 ldr r4, [pc, #32] ; 403e6c <__iar_data_init2+0x30> + 403e48: ea000002 b 403e58 <__iar_data_init2+0x1c> + 403e4c: e4901004 ldr r1, [r0], #4 + 403e50: e1a0e00f mov lr, pc + 403e54: e12fff11 bx r1 + 403e58: e1500004 cmp r0, r4 + 403e5c: 1afffffa bne 403e4c <__iar_data_init2+0x10> + 403e60: e8bd4010 pop {r4, lr} + 403e64: e12fff1e bx lr + 403e68: 00403ec0 .word 0x00403ec0 + 403e6c: 00403eec .word 0x00403eec + +00403e70 : + 403e70: 4806 ldr r0, [pc, #24] (403e8c ) + 403e72: 2100 movs r1, #0 + 403e74: 6001 str r1, [r0, #0] + 403e76: 200f movs r0, #15 + +00403e78 : + 403e78: 4904 ldr r1, [pc, #16] (403e8c ) + 403e7a: 6849 ldr r1, [r1, #4] + 403e7c: 4001 ands r1, r0 + 403e7e: 290e cmp r1, #14 + 403e80: d0fa beq.n 403e78 + 403e82: 4803 ldr r0, [pc, #12] (403e90 ) + 403e84: 4903 ldr r1, [pc, #12] (403e94 ) + 403e86: 6001 str r1, [r0, #0] + 403e88: 4770 bx lr + 403e8a: 46c0 nop (mov r8, r8) + +00403e8c : + 403e8c: 8000400c .word 0x8000400c + 403e90: 800040c4 .word 0x800040c4 + 403e94: 0000ffff .word 0x0000ffff + +00403e98 <__iar_zero_init2>: + 403e98: e3a01000 mov r1, #0 ; 0x0 + 403e9c: ea000003 b 403eb0 <__iar_zero_init2+0x18> + 403ea0: e4902004 ldr r2, [r0], #4 + 403ea4: e2533004 subs r3, r3, #4 ; 0x4 + 403ea8: e4821004 str r1, [r2], #4 + 403eac: 1afffffc bne 403ea4 <__iar_zero_init2+0xc> + 403eb0: e4903004 ldr r3, [r0], #4 + 403eb4: e3530000 cmp r3, #0 ; 0x0 + 403eb8: 1afffff8 bne 403ea0 <__iar_zero_init2+0x8> + 403ebc: e12fff1e bx lr + +00403ec0 : + 403ec0: 00403e98 .word 0x00403e98 + 403ec4: 0000006c .word 0x0000006c + 403ec8: 00405244 .word 0x00405244 + 403ecc: 00000000 .word 0x00000000 + 403ed0: 004036fc .word 0x004036fc + 403ed4: 00000001 .word 0x00000001 + 403ed8: 00000001 .word 0x00000001 + 403edc: 004054a1 .word 0x004054a1 + 403ee0: 00000096 .word 0x00000096 + 403ee4: 004052b0 .word 0x004052b0 + 403ee8: 000001f1 .word 0x000001f1 + +00403eec : + 403eec: 000113ac .word 0x000113ac + 403ef0: 00011028 .word 0x00011028 + 403ef4: 00000001 .word 0x00000001 + 403ef8: 0001146c .word 0x0001146c + 403efc: 00010b74 .word 0x00010b74 + 403f00: 00000002 .word 0x00000002 + +00403f04 : + 403f04: 00402461 .word 0x00402461 + 403f08: 004025c1 .word 0x004025c1 + 403f0c: 004027c1 .word 0x004027c1 + 403f10: 0040297d .word 0x0040297d + +00403f14 : + 403f14: 33323130 .word 0x33323130 + 403f18: 37363534 .word 0x37363534 + 403f1c: 62613938 .word 0x62613938 + 403f20: 66656463 .word 0x66656463 + +00403f24 : + 403f24: 65657266 .word 0x65657266 + 403f28: 6c616373 .word 0x6c616373 + 403f2c: 00000065 .word 0x00000065 + +00403f30 : + 403f30: 4778 bx pc + 403f32: 46c0 nop (mov r8, r8) + +00403f34 <__aeabi_memclr4>: + 403f34: e3b02000 movs r2, #0 ; 0x0 + 403f38: eaffff82 b 403d48 <__iar_Memset4_word> + +00403f3c : + 403f3c: 4770 bx lr + +00403f3e <__iar_via_R0>: + 403f3e: 4700 bx r0 + +00403f40 <__iar_via_R1>: + 403f40: 4708 bx r1 + +Disassembly of section P3: + +00403f44 : + ... + +Disassembly of section P3 zi: + +00405244 : + ... + +00405254 : + ... + +00405255 : + ... + +00405256 : + ... + +00405257 : + ... + +00405258 : + ... + +00405259 : + ... + +0040525a : + ... + +0040525b : + ... + +0040525c : + ... + +0040525d : + ... + +0040525e : + ... + +0040525f : + ... + +00405260 : + ... + +00405262 : + ... + +00405264 : + ... + +00405266 : + ... + +00405268 : + ... + +0040526a : + ... + +0040526c : + ... + +0040526e : + ... + +00405270 : + 405270: 00000000 .word 0x00000000 + +00405274 : + ... + +00405280 : + ... + +00405290 : + ... + +004052a0 : + 4052a0: 00000000 .word 0x00000000 + +004052a4 : + ... + +004052a5 : + ... + +004052a6 : + ... + +004052a8 : + ... + +004052a9 : + ... + +004052aa : + ... + +004052ab : + ... + +004052ac : + ... + +004052ad : + ... + +004052ae : + ... + +Disassembly of section P3 s0: + +004052b0 : + ... + +00405368 : + ... + +00405369 : + ... + +0040536a : + ... + +0040536b : + ... + +0040536c : + ... + +0040536d : + ... + +0040536e : + ... + +0040536f : + ... + +00405370 : + ... + +00405380 : + ... + +00405390 : + 405390: 00000000 .word 0x00000000 + +00405394 : + ... + +004053a4 : + ... + +004053b4 : + 4053b4: 00000000 .word 0x00000000 + +004053b8 : + 4053b8: 00000000 .word 0x00000000 + +004053bc : + 4053bc: 00000000 .word 0x00000000 + +004053c0 : + 4053c0: 00000000 .word 0x00000000 + +004053c4 : + 4053c4: 00000000 .word 0x00000000 + +004053c8 : + ... + +004053f0 : + ... + +00405420 : + ... + +00405448 : + 405448: 00000000 .word 0x00000000 + +0040544c : + 40544c: 00000000 .word 0x00000000 + +00405450 : + ... + +00405451 : + 405451: 00 .byte 0x00 + ... + +00405454 : + ... + +00405464 : + ... + +00405484 : + 405484: 00000000 .word 0x00000000 + +00405488 : + ... + +004054a0 : + ... + +Disassembly of section P2 b0: + +004054a1 : + 4054a1: fd .byte 0xfd + 4054a2: 0000 .short 0x0000 + 4054a4: c60081ff .word 0xc60081ff + 4054a8: b90f0000 .word 0xb90f0000 + 4054ac: c51e0000 .word 0xc51e0000 + 4054b0: 00901200 .word 0x00901200 + 4054b4: 05030080 .word 0x05030080 + 4054b8: 00900480 .word 0x00900480 + 4054bc: 00010180 .word 0x00010180 + 4054c0: 00900800 .word 0x00900800 + 4054c4: 0300fc80 .word 0x0300fc80 + 4054c8: 8000900c .word 0x8000900c + 4054cc: 200400fc .word 0x200400fc + 4054d0: 0c800090 .word 0x0c800090 + 4054d4: 901500fc .word 0x901500fc + 4054d8: 03008000 .word 0x03008000 + 4054dc: 3048c005 .word 0x3048c005 + 4054e0: 0f788000 .word 0x0f788000 + 4054e4: 304c0000 .word 0x304c0000 + 4054e8: 77078000 .word 0x77078000 + 4054ec: 1000fb60 .word 0x1000fb60 + 4054f0: 000161a8 .word 0x000161a8 + 4054f4: 8000a050 .word 0x8000a050 + 4054f8: 0000047b .word 0x0000047b + 4054fc: 8000a054 .word 0x8000a054 + 405500: 0300e07b .word 0x0300e07b + 405504: 17800094 .word 0x17800094 + 405508: 500300fd .word 0x500300fd + 40550c: fc8000a0 .word 0xfc8000a0 + 405510: a0540300 .word 0xa0540300 + 405514: 00fc8000 .word 0x00fc8000 + 405518: 00304805 .word 0x00304805 + 40551c: f60f0080 .word 0xf60f0080 + 405520: 01081400 .word 0x01081400 + 405524: 00021000 .word 0x00021000 + 405528: 20000318 .word 0x20000318 + 40552c: 05280004 .word 0x05280004 + 405530: 00063000 .word 0x00063000 + 405534: Address 0x0000000000405534 is out of bounds. + + +Disassembly of section .debug_abbrev: + +00000000 <.debug_abbrev>: + 0: 03000506 movweq r0, #1286 ; 0x506 + 4: 3b0f3a08 blcc 3ce82c + 8: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + c: 00060216 andeq r0, r6, r6, lsl r2 + 10: 01110100 tsteq r1, r0, lsl #2 + 14: 08250803 stmdaeq r5!, {r0, r1, fp} + 18: 06100b13 undefined + 1c: 00000643 andeq r0, r0, r3, asr #12 + 20: 03011102 movweq r1, #4354 ; 0x1102 + 24: 13082508 movwne r2, #34056 ; 0x8508 + 28: 1201110b andne r1, r1, #-1073741822 ; 0xc0000002 + 2c: e6061001 str r1, [r6], -r1 + 30: 4ee7064e cdpmi 6, 14, cr0, cr7, cr14, {2} + 34: 08000016 stmdaeq r0, {r1, r2, r4} + 38: 08030016 stmdaeq r3, {r1, r2, r4} + 3c: 0f3a1649 svceq 0x003a1649 + 40: 0f390f3b svceq 0x00390f3b + 44: 24030000 strcs r0, [r3] + 48: 0b080300 bleq 200c50 + 4c: 000b3e0f andeq r3, fp, pc, lsl #28 + 50: 012e0500 teqeq lr, r0, lsl #10 + 54: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 58: 0f3b0f3a svceq 0x003b0f3a + 5c: 0b3f0f39 bleq fc3d48 + 60: 01110640 tsteq r1, r0, asr #12 + 64: 00000112 andeq r0, r0, r2, lsl r1 + 68: 03003407 movweq r3, #1031 ; 0x407 + 6c: 3b0f3a08 blcc 3ce894 + 70: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 74: 00060216 andeq r0, r6, r6, lsl r2 + 78: 00350400 eorseq r0, r5, r0, lsl #8 + 7c: 00001649 andeq r1, r0, r9, asr #12 + 80: 00000000 andeq r0, r0, r0 + 84: 01010117 tsteq r1, r7, lsl r1 + 88: 00164913 andseq r4, r6, r3, lsl r9 + 8c: 01041600 tsteq r4, r0, lsl #12 + 90: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 94: 00000f0b andeq r0, r0, fp, lsl #30 + 98: 01010414 tsteq r1, r4, lsl r4 + 9c: 000f0b13 andeq r0, pc, r3, lsl fp + a0: 00051100 andeq r1, r5, r0, lsl #2 + a4: 0f3a0803 svceq 0x003a0803 + a8: 0f390f3b svceq 0x00390f3b + ac: 00001649 andeq r1, r0, r9, asr #12 + b0: 0300050b movweq r0, #1291 ; 0x50b + b4: 3b0f3a08 blcc 3ce8dc + b8: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + bc: 00060216 andeq r0, r6, r6, lsl r2 + c0: 00050d00 andeq r0, r5, r0, lsl #26 + c4: 06021631 undefined + c8: 0b0a0000 bleq 2800d0 + cc: 11130101 tstne r3, r1, lsl #2 + d0: 00011201 andeq r1, r1, r1, lsl #4 + d4: 000d1a00 andeq r1, sp, r0, lsl #20 + d8: 0b321649 bleq c85a04 + dc: 09380803 ldmdbeq r8!, {r0, r1, fp} + e0: 0f040000 svceq 0x00040000 + e4: 00164900 andseq r4, r6, r0, lsl #18 + e8: 01110100 tsteq r1, r0, lsl #2 + ec: 08250803 stmdaeq r5!, {r0, r1, fp} + f0: 06100b13 undefined + f4: 00000643 andeq r0, r0, r3, asr #12 + f8: 03011107 movweq r1, #4359 ; 0x1107 + fc: 13082508 movwne r2, #34056 ; 0x8508 + 100: 1201110b andne r1, r1, #-1073741822 ; 0xc0000002 + 104: e6061001 str r1, [r6], -r1 + 108: 4ee7064e cdpmi 6, 14, cr0, cr7, cr14, {2} + 10c: 1b000016 blne 16c <__ABT_stack_size+0x6c> + 110: 13010113 movwne r0, #4371 ; 0x1113 + 114: 0f0b0803 svceq 0x000b0803 + 118: 13190000 tstne r9, #0 ; 0x0 + 11c: 0b130101 bleq 4c0528 + 120: 1c00000f stcne 0, cr0, [r0], {15} + 124: 08030016 stmdaeq r3, {r1, r2, r4} + 128: 0f3a1649 svceq 0x003a1649 + 12c: 0f390f3b svceq 0x00390f3b + 130: 1d0c0000 stcne 0, cr0, [ip] + 134: 31130101 tstcc r3, r1, lsl #2 + 138: 12011116 andne r1, r1, #-2147483643 ; 0x80000005 + 13c: 18000001 stmdane r0, {r0} + 140: 0f2f0021 svceq 0x002f0021 + 144: 24020000 strcs r0, [r2] + 148: 0b080300 bleq 200d50 + 14c: 000b3e0f andeq r3, fp, pc, lsl #28 + 150: 00260300 eoreq r0, r6, r0, lsl #6 + 154: 00001649 andeq r1, r0, r9, asr #12 + 158: 03002815 movweq r2, #2069 ; 0x815 + 15c: 000f1c08 andeq r1, pc, r8, lsl #24 + 160: 012e1300 teqeq lr, r0, lsl #6 + 164: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 168: 0f3b0f3a svceq 0x003b0f3a + 16c: 0b3f0f39 bleq fc3e58 + 170: 00000b20 andeq r0, r0, r0, lsr #22 + 174: 01012e08 tsteq r1, r8, lsl #28 + 178: 3a080313 bcc 200dcc + 17c: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 180: 400b3f0f andmi r3, fp, pc, lsl #30 + 184: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 188: 10000001 andne r0, r0, r1 + 18c: 1301012e movwne r0, #4398 ; 0x112e + 190: 0f3a0803 svceq 0x003a0803 + 194: 0f390f3b svceq 0x00390f3b + 198: 16490b3f undefined + 19c: 00000b20 andeq r0, r0, r0, lsr #22 + 1a0: 01012e0f tsteq r1, pc, lsl #28 + 1a4: 3a080313 bcc 200df8 + 1a8: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 1ac: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} + 1b0: 11064016 tstne r6, r6, lsl r0 + 1b4: 00011201 andeq r1, r1, r1, lsl #4 + 1b8: 00341200 eorseq r1, r4, r0, lsl #4 + 1bc: 0f3a0803 svceq 0x003a0803 + 1c0: 0f390f3b svceq 0x00390f3b + 1c4: 00001649 andeq r1, r0, r9, asr #12 + 1c8: 03003409 movweq r3, #1033 ; 0x409 + 1cc: 3b0f3a08 blcc 3ce9f4 + 1d0: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 1d4: 00060216 andeq r0, r6, r6, lsl r2 + 1d8: 00340500 eorseq r0, r4, r0, lsl #10 + 1dc: 16490803 strbne r0, [r9], -r3, lsl #16 + 1e0: 0f3b0f3a svceq 0x003b0f3a + 1e4: 0b3f0f39 bleq fc3ed0 + 1e8: 00000902 andeq r0, r0, r2, lsl #18 + 1ec: 3100340e tstcc r0, lr, lsl #8 + 1f0: 00060216 andeq r0, r6, r6, lsl r2 + 1f4: 00350600 eorseq r0, r5, r0, lsl #12 + 1f8: 00001649 andeq r1, r0, r9, asr #12 + 1fc: 00000000 andeq r0, r0, r0 + 200: 01010409 tsteq r1, r9, lsl #8 + 204: 0b080313 bleq 200e58 + 208: 0700000f streq r0, [r0, -pc] + 20c: 13010104 movwne r0, #4356 ; 0x1104 + 210: 00000f0b andeq r0, r0, fp, lsl #30 + 214: 03000506 movweq r0, #1286 ; 0x506 + 218: 3b0f3a08 blcc 3cea40 + 21c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 220: 00060216 andeq r0, r6, r6, lsl r2 + 224: 000d0d00 andeq r0, sp, r0, lsl #26 + 228: 0b321649 bleq c85b54 + 22c: 09380803 ldmdbeq r8!, {r0, r1, fp} + 230: 0d0c0000 stceq 0, cr0, [ip] + 234: 32164900 andscc r4, r6, #0 ; 0x0 + 238: 3808030b stmdacc r8, {r0, r1, r3, r8, r9} + 23c: 0d0f0b09 vstreq d0, [pc, #-36] ; 220 <__ABT_stack_size+0x120> + 240: 000f0c0f andeq r0, pc, pc, lsl #24 + 244: 000f0400 andeq r0, pc, r0, lsl #8 + 248: 00001649 andeq r1, r0, r9, asr #12 + 24c: 03011101 movweq r1, #4353 ; 0x1101 + 250: 13082508 movwne r2, #34056 ; 0x8508 + 254: 4306100b movwmi r1, #24587 ; 0x600b + 258: 02000006 andeq r0, r0, #6 ; 0x6 + 25c: 08030111 stmdaeq r3, {r0, r4, r8} + 260: 0b130825 bleq 4c22fc + 264: 01120111 tsteq r2, r1, lsl r1 + 268: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + 26c: 164ee706 strbne lr, [lr], -r6, lsl #14 + 270: 130b0000 movwne r0, #45056 ; 0xb000 + 274: 0b130101 bleq 4c0680 + 278: 0a00000f beq 2bc <__ABT_stack_size+0x1bc> + 27c: 13010115 movwne r0, #4373 ; 0x1115 + 280: 160f0000 strne r0, [pc], -r0 + 284: 49080300 stmdbmi r8, {r8, r9} + 288: 3b0f3a16 blcc 3ceae8 + 28c: 000f390f andeq r3, pc, pc, lsl #18 + 290: 01170e00 tsteq r7, r0, lsl #28 + 294: 0f0b1301 svceq 0x000b1301 + 298: 24030000 strcs r0, [r3] + 29c: 0b080300 bleq 200ea4 + 2a0: 000b3e0f andeq r3, fp, pc, lsl #28 + 2a4: 00280800 eoreq r0, r8, r0, lsl #16 + 2a8: 0f1c0803 svceq 0x001c0803 + 2ac: 2e050000 cdpcs 0, 0, cr0, cr5, cr0, {0} + 2b0: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 2b4: 3b0f3a08 blcc 3ceadc + 2b8: 3f0f390f svccc 0x000f390f + 2bc: 4016490b andsmi r4, r6, fp, lsl #18 + 2c0: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 2c4: 00000001 andeq r0, r0, r1 + 2c8: 03011101 movweq r1, #4353 ; 0x1101 + 2cc: 11082508 tstne r8, r8, lsl #10 + 2d0: 10011201 andne r1, r1, r1, lsl #4 + 2d4: 00000006 andeq r0, r0, r6 + 2d8: 03011101 movweq r1, #4353 ; 0x1101 + 2dc: 13082508 movwne r2, #34056 ; 0x8508 + 2e0: 4306100b movwmi r1, #24587 ; 0x600b + 2e4: 02000006 andeq r0, r0, #6 ; 0x6 + 2e8: 08030111 stmdaeq r3, {r0, r4, r8} + 2ec: 0b130825 bleq 4c2388 + 2f0: 01120111 tsteq r2, r1, lsl r1 + 2f4: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + 2f8: 164ee706 strbne lr, [lr], -r6, lsl #14 + 2fc: 2e030000 cdpcs 0, 0, cr0, cr3, cr0, {0} + 300: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 304: 3b0f3a08 blcc 3ceb2c + 308: 3f0f390f svccc 0x000f390f + 30c: 1106400b tstne r6, fp + 310: 00011201 andeq r1, r1, r1, lsl #4 + 314: 00000000 andeq r0, r0, r0 + 318: 0101040a tsteq r1, sl, lsl #8 + 31c: 000f0b13 andeq r0, pc, r3, lsl fp + 320: 00050600 andeq r0, r5, r0, lsl #12 + 324: 0f3a0803 svceq 0x003a0803 + 328: 0f390f3b svceq 0x00390f3b + 32c: 06021649 streq r1, [r2], -r9, asr #12 + 330: 11010000 tstne r1, r0 + 334: 25080301 strcs r0, [r8, #-769] + 338: 100b1308 andne r1, fp, r8, lsl #6 + 33c: 00064306 andeq r4, r6, r6, lsl #6 + 340: 01110200 tsteq r1, r0, lsl #4 + 344: 08250803 stmdaeq r5!, {r0, r1, fp} + 348: 01110b13 tsteq r1, r3, lsl fp + 34c: 06100112 undefined + 350: e7064ee6 str r4, [r6, -r6, ror #29] + 354: 0000164e andeq r1, r0, lr, asr #12 + 358: 0300160c movweq r1, #1548 ; 0x60c + 35c: 3a164908 bcc 592784 + 360: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 364: 0500000f streq r0, [r0, #-15] + 368: 1301011d movwne r0, #4381 ; 0x111d + 36c: 01111631 tsteq r1, r1, lsr r6 + 370: 00000112 andeq r0, r0, r2, lsl r1 + 374: 03002403 movweq r2, #1027 ; 0x403 + 378: 3e0f0b08 fmacdcc d0, d15, d8 + 37c: 0b00000b bleq 3b0 <__ABT_stack_size+0x2b0> + 380: 08030028 stmdaeq r3, {r3, r5} + 384: 00000f1c andeq r0, r0, ip, lsl pc + 388: 01012e09 tsteq r1, r9, lsl #28 + 38c: 3a080313 bcc 200fe0 + 390: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 394: 200b3f0f andcs r3, fp, pc, lsl #30 + 398: 0400000b streq r0, [r0], #-11 + 39c: 1301012e movwne r0, #4398 ; 0x112e + 3a0: 0f3a0803 svceq 0x003a0803 + 3a4: 0f390f3b svceq 0x00390f3b + 3a8: 06400b3f undefined + 3ac: 01120111 tsteq r2, r1, lsl r1 + 3b0: 2e070000 cdpcs 0, 0, cr0, cr7, cr0, {0} + 3b4: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 3b8: 3b0f3a08 blcc 3cebe0 + 3bc: 3f0f390f svccc 0x000f390f + 3c0: 4016490b andsmi r4, r6, fp, lsl #18 + 3c4: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 3c8: 08000001 stmdaeq r0, {r0} + 3cc: 08030034 stmdaeq r3, {r2, r4, r5} + 3d0: 0f3b0f3a svceq 0x003b0f3a + 3d4: 16490f39 undefined + 3d8: 00000602 andeq r0, r0, r2, lsl #12 + 3dc: 00000000 andeq r0, r0, r0 + 3e0: 01010b08 tsteq r1, r8, lsl #22 + 3e4: 12011113 andne r1, r1, #-1073741820 ; 0xc0000004 + 3e8: 01000001 tsteq r0, r1 + 3ec: 08030111 stmdaeq r3, {r0, r4, r8} + 3f0: 0b130825 bleq 4c248c + 3f4: 06430610 undefined + 3f8: 11040000 tstne r4, r0 + 3fc: 25080301 strcs r0, [r8, #-769] + 400: 110b1308 tstne fp, r8, lsl #6 + 404: 10011201 andne r1, r1, r1, lsl #4 + 408: 064ee606 strbeq lr, [lr], -r6, lsl #12 + 40c: 00164ee7 andseq r4, r6, r7, ror #29 + 410: 00160900 andseq r0, r6, r0, lsl #18 + 414: 16490803 strbne r0, [r9], -r3, lsl #16 + 418: 0f3b0f3a svceq 0x003b0f3a + 41c: 00000f39 andeq r0, r0, r9, lsr pc + 420: 03002402 movweq r2, #1026 ; 0x402 + 424: 3e0f0b08 fmacdcc d0, d15, d8 + 428: 0600000b streq r0, [r0], -fp + 42c: 1301012e movwne r0, #4398 ; 0x112e + 430: 0f3a0803 svceq 0x003a0803 + 434: 0f390f3b svceq 0x00390f3b + 438: 06400b3f undefined + 43c: 01120111 tsteq r2, r1, lsl r1 + 440: 34070000 strcc r0, [r7] + 444: 3a080300 bcc 20104c + 448: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 44c: 0216490f andseq r4, r6, #245760 ; 0x3c000 + 450: 03000006 movweq r0, #6 ; 0x6 + 454: 08030034 stmdaeq r3, {r2, r4, r5} + 458: 0f3a1649 svceq 0x003a1649 + 45c: 0f390f3b svceq 0x00390f3b + 460: 09020b3f stmdbeq r2, {r0, r1, r2, r3, r4, r5, r8, r9, fp} + 464: 35050000 strcc r0, [r5] + 468: 00164900 andseq r4, r6, r0, lsl #18 + 46c: 00000000 andeq r0, r0, r0 + 470: 03011101 movweq r1, #4353 ; 0x1101 + 474: 13082508 movwne r2, #34056 ; 0x8508 + 478: 4306100b movwmi r1, #24587 ; 0x600b + 47c: 02000006 andeq r0, r0, #6 ; 0x6 + 480: 08030111 stmdaeq r3, {r0, r4, r8} + 484: 0b130825 bleq 4c2520 + 488: 01120111 tsteq r2, r1, lsl r1 + 48c: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + 490: 164ee706 strbne lr, [lr], -r6, lsl #14 + 494: 16090000 strne r0, [r9], -r0 + 498: 49080300 stmdbmi r8, {r8, r9} + 49c: 3b0f3a16 blcc 3cecfc + 4a0: 000f390f andeq r3, pc, pc, lsl #18 + 4a4: 011d0600 tsteq sp, r0, lsl #12 + 4a8: 16311301 ldrtne r1, [r1], -r1, lsl #6 + 4ac: 01120111 tsteq r2, r1, lsl r1 + 4b0: 24030000 strcs r0, [r3] + 4b4: 0b080300 bleq 2010bc + 4b8: 000b3e0f andeq r3, fp, pc, lsl #28 + 4bc: 012e0800 teqeq lr, r0, lsl #16 + 4c0: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 4c4: 0f3b0f3a svceq 0x003b0f3a + 4c8: 0b3f0f39 bleq fc41b4 + 4cc: 00000b20 andeq r0, r0, r0, lsr #22 + 4d0: 01012e05 tsteq r1, r5, lsl #28 + 4d4: 3a080313 bcc 201128 + 4d8: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 4dc: 400b3f0f andmi r3, fp, pc, lsl #30 + 4e0: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 4e4: 07000001 streq r0, [r0, -r1] + 4e8: 08030034 stmdaeq r3, {r2, r4, r5} + 4ec: 0f3b0f3a svceq 0x003b0f3a + 4f0: 16490f39 undefined + 4f4: 00000602 andeq r0, r0, r2, lsl #12 + 4f8: 49003504 stmdbmi r0, {r2, r8, sl, ip, sp} + 4fc: 00000016 andeq r0, r0, r6, lsl r0 + 500: 01010116 tsteq r1, r6, lsl r1 + 504: 00164913 andseq r4, r6, r3, lsl r9 + 508: 01041200 tsteq r4, r0, lsl #4 + 50c: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 510: 00000f0b andeq r0, r0, fp, lsl #30 + 514: 03000510 movweq r0, #1296 ; 0x510 + 518: 3b0f3a08 blcc 3ced40 + 51c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 520: 08000016 stmdaeq r0, {r1, r2, r4} + 524: 08030005 stmdaeq r3, {r0, r2} + 528: 0f3b0f3a svceq 0x003b0f3a + 52c: 16490f39 undefined + 530: 00000602 andeq r0, r0, r2, lsl #12 + 534: 3100050d tstcc r0, sp, lsl #10 + 538: 00060216 andeq r0, r6, r6, lsl r2 + 53c: 00051500 andeq r1, r5, r0, lsl #10 + 540: 00001649 andeq r1, r0, r9, asr #12 + 544: 01010b09 tsteq r1, r9, lsl #22 + 548: 12011113 andne r1, r1, #-1073741820 ; 0xc0000004 + 54c: 1b000001 blne 558 <__FIQ_stack_size+0x158> + 550: 1649000d strbne r0, [r9], -sp + 554: 08030b32 stmdaeq r3, {r1, r4, r5, r8, r9, fp} + 558: 00000938 andeq r0, r0, r8, lsr r9 + 55c: 49000d19 stmdbmi r0, {r0, r3, r4, r8, sl, fp} + 560: 030b3216 movweq r3, #45590 ; 0xb216 + 564: 0b093808 bleq 24e58c + 568: 0c0f0d0f stceq 13, cr0, [pc], {15} + 56c: 0300000f movweq r0, #15 ; 0xf + 570: 1649000f strbne r0, [r9], -pc + 574: 11010000 tstne r1, r0 + 578: 25080301 strcs r0, [r8, #-769] + 57c: 100b1308 andne r1, fp, r8, lsl #6 + 580: 00064306 andeq r4, r6, r6, lsl #6 + 584: 01110600 tsteq r1, r0, lsl #12 + 588: 08250803 stmdaeq r5!, {r0, r1, fp} + 58c: 01110b13 tsteq r1, r3, lsl fp + 590: 06100112 undefined + 594: e7064ee6 str r4, [r6, -r6, ror #29] + 598: 0000164e andeq r1, r0, lr, asr #12 + 59c: 0101131a tsteq r1, sl, lsl r3 + 5a0: 0b080313 bleq 2011f4 + 5a4: 1800000f stmdane r0, {r0, r1, r2, r3} + 5a8: 13010113 movwne r0, #4371 ; 0x1113 + 5ac: 00000f0b andeq r0, r0, fp, lsl #30 + 5b0: 01011514 tsteq r1, r4, lsl r5 + 5b4: 1d000013 stcne 0, cr0, [r0, #-76] + 5b8: 08030016 stmdaeq r3, {r1, r2, r4} + 5bc: 0f3a1649 svceq 0x003a1649 + 5c0: 0f390f3b svceq 0x00390f3b + 5c4: 171c0000 ldrne r0, [ip, -r0] + 5c8: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 5cc: 000f0b08 andeq r0, pc, r8, lsl #22 + 5d0: 011d0c00 tsteq sp, r0, lsl #24 + 5d4: 16311301 ldrtne r1, [r1], -r1, lsl #6 + 5d8: 01120111 tsteq r2, r1, lsl r1 + 5dc: 21170000 tstcs r7, r0 + 5e0: 000f2f00 andeq r2, pc, r0, lsl #30 + 5e4: 00240200 eoreq r0, r4, r0, lsl #4 + 5e8: 0f0b0803 svceq 0x000b0803 + 5ec: 00000b3e andeq r0, r0, lr, lsr fp + 5f0: 49002605 stmdbmi r0, {r0, r2, r9, sl, sp} + 5f4: 13000016 movwne r0, #22 ; 0x16 + 5f8: 08030028 stmdaeq r3, {r3, r5} + 5fc: 00000f1c andeq r0, r0, ip, lsl pc + 600: 01012e0a tsteq r1, sl, lsl #28 + 604: 3a080313 bcc 201258 + 608: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 60c: 400b3f0f andmi r3, fp, pc, lsl #30 + 610: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 614: 0f000001 svceq 0x00000001 + 618: 1301012e movwne r0, #4398 ; 0x112e + 61c: 0f3a0803 svceq 0x003a0803 + 620: 0f390f3b svceq 0x00390f3b + 624: 16490b3f undefined + 628: 00000b20 andeq r0, r0, r0, lsr #22 + 62c: 01012e07 tsteq r1, r7, lsl #28 + 630: 3a080313 bcc 201284 + 634: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 638: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} + 63c: 11064016 tstne r6, r6, lsl r0 + 640: 00011201 andeq r1, r1, r1, lsl #4 + 644: 00341100 eorseq r1, r4, r0, lsl #2 + 648: 0f3a0803 svceq 0x003a0803 + 64c: 0f390f3b svceq 0x00390f3b + 650: 00001649 andeq r1, r0, r9, asr #12 + 654: 0300340b movweq r3, #1035 ; 0x40b + 658: 3b0f3a08 blcc 3cee80 + 65c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 660: 00060216 andeq r0, r6, r6, lsl r2 + 664: 00340400 eorseq r0, r4, r0, lsl #8 + 668: 16490803 strbne r0, [r9], -r3, lsl #16 + 66c: 0f3b0f3a svceq 0x003b0f3a + 670: 0b3f0f39 bleq fc435c + 674: 00000902 andeq r0, r0, r2, lsl #18 + 678: 3100340e tstcc r0, lr, lsl #8 + 67c: 00060216 andeq r0, r6, r6, lsl r2 + 680: 00000000 andeq r0, r0, r0 + 684: 01010116 tsteq r1, r6, lsl r1 + 688: 00164913 andseq r4, r6, r3, lsl r9 + 68c: 01041400 tsteq r4, r0, lsl #8 + 690: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 694: 00000f0b andeq r0, r0, fp, lsl #30 + 698: 03000511 movweq r0, #1297 ; 0x511 + 69c: 3b0f3a08 blcc 3ceec4 + 6a0: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 6a4: 0a000016 beq 704 <__FIQ_stack_size+0x304> + 6a8: 08030005 stmdaeq r3, {r0, r2} + 6ac: 0f3b0f3a svceq 0x003b0f3a + 6b0: 16490f39 undefined + 6b4: 00000602 andeq r0, r0, r2, lsl #12 + 6b8: 3100050e tstcc r0, lr, lsl #10 + 6bc: 00060216 andeq r0, r6, r6, lsl r2 + 6c0: 010b0c00 tsteq fp, r0, lsl #24 + 6c4: 01111301 tsteq r1, r1, lsl #6 + 6c8: 00000112 andeq r0, r0, r2, lsl r1 + 6cc: 49000d19 stmdbmi r0, {r0, r3, r4, r8, sl, fp} + 6d0: 030b3216 movweq r3, #45590 ; 0xb216 + 6d4: 00093808 andeq r3, r9, r8, lsl #16 + 6d8: 000f0500 andeq r0, pc, r0, lsl #10 + 6dc: 00001649 andeq r1, r0, r9, asr #12 + 6e0: 03011101 movweq r1, #4353 ; 0x1101 + 6e4: 13082508 movwne r2, #34056 ; 0x8508 + 6e8: 4306100b movwmi r1, #24587 ; 0x600b + 6ec: 06000006 streq r0, [r0], -r6 + 6f0: 08030111 stmdaeq r3, {r0, r4, r8} + 6f4: 0b130825 bleq 4c2790 + 6f8: 01120111 tsteq r2, r1, lsl r1 + 6fc: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + 700: 164ee706 strbne lr, [lr], -r6, lsl #14 + 704: 13180000 tstne r8, #0 ; 0x0 + 708: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 70c: 000f0b08 andeq r0, pc, r8, lsl #22 + 710: 00161a00 andseq r1, r6, r0, lsl #20 + 714: 16490803 strbne r0, [r9], -r3, lsl #16 + 718: 0f3b0f3a svceq 0x003b0f3a + 71c: 00000f39 andeq r0, r0, r9, lsr pc + 720: 01011d0d tsteq r1, sp, lsl #26 + 724: 11163113 tstne r6, r3, lsl r1 + 728: 00011201 andeq r1, r1, r1, lsl #4 + 72c: 00211700 eoreq r1, r1, r0, lsl #14 + 730: 00000f2f andeq r0, r0, pc, lsr #30 + 734: 03002402 movweq r2, #1026 ; 0x402 + 738: 3e0f0b08 fmacdcc d0, d15, d8 + 73c: 0300000b movweq r0, #11 ; 0xb + 740: 16490026 strbne r0, [r9], -r6, lsr #32 + 744: 28150000 ldmdacs r5, {} + 748: 1c080300 stcne 3, cr0, [r8], {0} + 74c: 1200000f andne r0, r0, #15 ; 0xf + 750: 1301012e movwne r0, #4398 ; 0x112e + 754: 0f3a0803 svceq 0x003a0803 + 758: 0f390f3b svceq 0x00390f3b + 75c: 0b200b3f bleq 803460 + 760: 2e080000 cdpcs 0, 0, cr0, cr8, cr0, {0} + 764: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 768: 3b0f3a08 blcc 3cef90 + 76c: 3f0f390f svccc 0x000f390f + 770: 1106400b tstne r6, fp + 774: 00011201 andeq r1, r1, r1, lsl #4 + 778: 012e1000 teqeq lr, r0 + 77c: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 780: 0f3b0f3a svceq 0x003b0f3a + 784: 0b3f0f39 bleq fc4470 + 788: 0b201649 bleq 8060b4 + 78c: 2e090000 cdpcs 0, 0, cr0, cr9, cr0, {0} + 790: 03130101 tsteq r3, #1073741824 ; 0x40000000 + 794: 3b0f3a08 blcc 3cefbc + 798: 3f0f390f svccc 0x000f390f + 79c: 4016490b andsmi r4, r6, fp, lsl #18 + 7a0: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + 7a4: 13000001 movwne r0, #1 ; 0x1 + 7a8: 08030034 stmdaeq r3, {r2, r4, r5} + 7ac: 0f3b0f3a svceq 0x003b0f3a + 7b0: 16490f39 undefined + 7b4: 340b0000 strcc r0, [fp] + 7b8: 3a080300 bcc 2013c0 + 7bc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 7c0: 0216490f andseq r4, r6, #245760 ; 0x3c000 + 7c4: 04000006 streq r0, [r0], #-6 + 7c8: 08030034 stmdaeq r3, {r2, r4, r5} + 7cc: 0f3a1649 svceq 0x003a1649 + 7d0: 0f390f3b svceq 0x00390f3b + 7d4: 09020b3f stmdbeq r2, {r0, r1, r2, r3, r4, r5, r8, r9, fp} + 7d8: 340f0000 strcc r0, [pc], #0 ; 7e0 <__FIQ_stack_size+0x3e0> + 7dc: 02163100 andseq r3, r6, #0 ; 0x0 + 7e0: 07000006 streq r0, [r0, -r6] + 7e4: 16490035 undefined + 7e8: 00000000 andeq r0, r0, r0 + 7ec: 01010408 tsteq r1, r8, lsl #8 + 7f0: 0b080313 bleq 201444 + 7f4: 0a00000f beq 838 <__USR_stack_size+0x38> + 7f8: 13010104 movwne r0, #4356 ; 0x1104 + 7fc: 00000f0b andeq r0, r0, fp, lsl #30 + 800: 03000505 movweq r0, #1285 ; 0x505 + 804: 3b0f3a08 blcc 3cf02c + 808: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 80c: 00060216 andeq r0, r6, r6, lsl r2 + 810: 010b0700 tsteq fp, r0, lsl #14 + 814: 01111301 tsteq r1, r1, lsl #6 + 818: 00000112 andeq r0, r0, r2, lsl r1 + 81c: 49000d0d stmdbmi r0, {r0, r2, r3, r8, sl, fp} + 820: 030b3216 movweq r3, #45590 ; 0xb216 + 824: 00093808 andeq r3, r9, r8, lsl #16 + 828: 000d0c00 andeq r0, sp, r0, lsl #24 + 82c: 0b321649 bleq c86158 + 830: 09380803 ldmdbeq r8!, {r0, r1, fp} + 834: 0f0d0f0b svceq 0x000d0f0b + 838: 00000f0c andeq r0, r0, ip, lsl #30 + 83c: 03011101 movweq r1, #4353 ; 0x1101 + 840: 13082508 movwne r2, #34056 ; 0x8508 + 844: 4306100b movwmi r1, #24587 ; 0x600b + 848: 02000006 andeq r0, r0, #6 ; 0x6 + 84c: 08030111 stmdaeq r3, {r0, r4, r8} + 850: 0b130825 bleq 4c28ec + 854: 01120111 tsteq r2, r1, lsl r1 + 858: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + 85c: 164ee706 strbne lr, [lr], -r6, lsl #14 + 860: 130b0000 movwne r0, #45056 ; 0xb000 + 864: 0b130101 bleq 4c0c70 + 868: 0f00000f svceq 0x0000000f + 86c: 08030016 stmdaeq r3, {r1, r2, r4} + 870: 0f3a1649 svceq 0x003a1649 + 874: 0f390f3b svceq 0x00390f3b + 878: 170e0000 strne r0, [lr, -r0] + 87c: 0b130101 bleq 4c0c88 + 880: 0300000f movweq r0, #15 ; 0xf + 884: 08030024 stmdaeq r3, {r2, r5} + 888: 0b3e0f0b bleq f844bc + 88c: 28090000 stmdacs r9, {} + 890: 1c080300 stcne 3, cr0, [r8], {0} + 894: 0400000f streq r0, [r0], #-15 + 898: 1301012e movwne r0, #4398 ; 0x112e + 89c: 0f3a0803 svceq 0x003a0803 + 8a0: 0f390f3b svceq 0x00390f3b + 8a4: 16490b3f undefined + 8a8: 01110640 tsteq r1, r0, asr #12 + 8ac: 00000112 andeq r0, r0, r2, lsl r1 + 8b0: 03003406 movweq r3, #1030 ; 0x406 + 8b4: 3b0f3a08 blcc 3cf0dc + 8b8: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + 8bc: 00060216 andeq r0, r6, r6, lsl r2 + 8c0: 00000000 andeq r0, r0, r0 + 8c4: 01010116 tsteq r1, r6, lsl r1 + 8c8: 00164913 andseq r4, r6, r3, lsl r9 + 8cc: 01041200 tsteq r4, r0, lsl #4 + 8d0: 0f0b1301 svceq 0x000b1301 + 8d4: 05110000 ldreq r0, [r1] + 8d8: 3a080300 bcc 2014e0 + 8dc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 8e0: 0016490f andseq r4, r6, pc, lsl #18 + 8e4: 00050900 andeq r0, r5, r0, lsl #18 + 8e8: 0f3a0803 svceq 0x003a0803 + 8ec: 0f390f3b svceq 0x00390f3b + 8f0: 06021649 streq r1, [r2], -r9, asr #12 + 8f4: 050b0000 streq r0, [fp] + 8f8: 3a080300 bcc 201500 + 8fc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 900: 0216490f andseq r4, r6, #245760 ; 0x3c000 + 904: 0f000009 svceq 0x00000009 + 908: 16310005 ldrtne r0, [r1], -r5 + 90c: 00000602 andeq r0, r0, r2, lsl #12 + 910: 49000515 stmdbmi r0, {r0, r2, r4, r8, sl} + 914: 0c000016 stceq 0, cr0, [r0], {22} + 918: 1301010b movwne r0, #4363 ; 0x110b + 91c: 01120111 tsteq r2, r1, lsl r1 + 920: 0d190000 ldceq 0, cr0, [r9] + 924: 32164900 andscc r4, r6, #0 ; 0x0 + 928: 3808030b stmdacc r8, {r0, r1, r3, r8, r9} + 92c: 1a000009 bne 958 <__USR_stack_size+0x158> + 930: 1649000d strbne r0, [r9], -sp + 934: 08030b32 stmdaeq r3, {r1, r4, r5, r8, r9, fp} + 938: 0f0b0938 svceq 0x000b0938 + 93c: 0f0c0f0d svceq 0x000c0f0d + 940: 0f060000 svceq 0x00060000 + 944: 00164900 andseq r4, r6, r0, lsl #18 + 948: 01110100 tsteq r1, r0, lsl #2 + 94c: 08250803 stmdaeq r5!, {r0, r1, fp} + 950: 06100b13 undefined + 954: 00000643 andeq r0, r0, r3, asr #12 + 958: 03011105 movweq r1, #4357 ; 0x1105 + 95c: 13082508 movwne r2, #34056 ; 0x8508 + 960: 1201110b andne r1, r1, #-1073741822 ; 0xc0000002 + 964: e6061001 str r1, [r6], -r1 + 968: 4ee7064e cdpmi 6, 14, cr0, cr7, cr14, {2} + 96c: 18000016 stmdane r0, {r1, r2, r4} + 970: 13010113 movwne r0, #4371 ; 0x1113 + 974: 00000f0b andeq r0, r0, fp, lsl #30 + 978: 01011514 tsteq r1, r4, lsl r5 + 97c: 1b000013 blne 9d0 <__USR_stack_size+0x1d0> + 980: 08030016 stmdaeq r3, {r1, r2, r4} + 984: 0f3a1649 svceq 0x003a1649 + 988: 0f390f3b svceq 0x00390f3b + 98c: 1d0e0000 stcne 0, cr0, [lr] + 990: 31130101 tstcc r3, r1, lsl #2 + 994: 12011116 andne r1, r1, #-2147483643 ; 0x80000005 + 998: 17000001 strne r0, [r0, -r1] + 99c: 0f2f0021 svceq 0x002f0021 + 9a0: 24020000 strcs r0, [r2] + 9a4: 0b080300 bleq 2015ac + 9a8: 000b3e0f andeq r3, fp, pc, lsl #28 + 9ac: 00260700 eoreq r0, r6, r0, lsl #14 + 9b0: 00001649 andeq r1, r0, r9, asr #12 + 9b4: 03002813 movweq r2, #2067 ; 0x813 + 9b8: 000f1c08 andeq r1, pc, r8, lsl #24 + 9bc: 012e0800 teqeq lr, r0, lsl #16 + 9c0: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 9c4: 0f3b0f3a svceq 0x003b0f3a + 9c8: 0b3f0f39 bleq fc46b4 + 9cc: 01110640 tsteq r1, r0, asr #12 + 9d0: 00000112 andeq r0, r0, r2, lsl r1 + 9d4: 01012e10 tsteq r1, r0, lsl lr + 9d8: 3a080313 bcc 20162c + 9dc: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + 9e0: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} + 9e4: 000b2016 andeq r2, fp, r6, lsl r0 + 9e8: 012e0d00 teqeq lr, r0, lsl #26 + 9ec: 08031301 stmdaeq r3, {r0, r8, r9, ip} + 9f0: 0f3b0f3a svceq 0x003b0f3a + 9f4: 0b3f0f39 bleq fc46e0 + 9f8: 06401649 strbeq r1, [r0], -r9, asr #12 + 9fc: 01120111 tsteq r2, r1, lsl r1 + a00: 340a0000 strcc r0, [sl] + a04: 3a080300 bcc 20160c + a08: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + a0c: 0216490f andseq r4, r6, #245760 ; 0x3c000 + a10: 03000006 movweq r0, #6 ; 0x6 + a14: 08030034 stmdaeq r3, {r2, r4, r5} + a18: 0f3a1649 svceq 0x003a1649 + a1c: 0f390f3b svceq 0x00390f3b + a20: 09020b3f stmdbeq r2, {r0, r1, r2, r3, r4, r5, r8, r9, fp} + a24: 35040000 strcc r0, [r4] + a28: 00164900 andseq r4, r6, r0, lsl #18 + a2c: 00000000 andeq r0, r0, r0 + a30: 0101010c tsteq r1, ip, lsl #2 + a34: 00164913 andseq r4, r6, r3, lsl r9 + a38: 01040800 tsteq r4, r0, lsl #16 + a3c: 08031301 stmdaeq r3, {r0, r8, r9, ip} + a40: 00000f0b andeq r0, r0, fp, lsl #30 + a44: 03000506 movweq r0, #1286 ; 0x506 + a48: 3b0f3a08 blcc 3cf270 + a4c: 490f390f stmdbmi pc, {r0, r1, r2, r3, r8, fp, ip, sp} + a50: 00060216 andeq r0, r6, r6, lsl r2 + a54: 00050b00 andeq r0, r5, r0, lsl #22 + a58: 00001649 andeq r1, r0, r9, asr #12 + a5c: 01010b07 tsteq r1, r7, lsl #22 + a60: 12011113 andne r1, r1, #-1073741820 ; 0xc0000004 + a64: 0f000001 svceq 0x00000001 + a68: 1649000d strbne r0, [r9], -sp + a6c: 08030b32 stmdaeq r3, {r1, r4, r5, r8, r9, fp} + a70: 00000938 andeq r0, r0, r8, lsr r9 + a74: 49000d10 stmdbmi r0, {r4, r8, sl, fp} + a78: 030b3216 movweq r3, #45590 ; 0xb216 + a7c: 0b093808 bleq 24eaa4 + a80: 0c0f0d0f stceq 13, cr0, [pc], {15} + a84: 0400000f streq r0, [r0], #-15 + a88: 1649000f strbne r0, [r9], -pc + a8c: 11010000 tstne r1, r0 + a90: 25080301 strcs r0, [r8, #-769] + a94: 100b1308 andne r1, fp, r8, lsl #6 + a98: 00064306 andeq r4, r6, r6, lsl #6 + a9c: 01110200 tsteq r1, r0, lsl #4 + aa0: 08250803 stmdaeq r5!, {r0, r1, fp} + aa4: 01110b13 tsteq r1, r3, lsl fp + aa8: 06100112 undefined + aac: e7064ee6 str r4, [r6, -r6, ror #29] + ab0: 0000164e andeq r1, r0, lr, asr #12 + ab4: 0101130e tsteq r1, lr, lsl #6 + ab8: 0b080313 bleq 20170c + abc: 0a00000f beq b00 <__USR_stack_size+0x300> + ac0: 13010115 movwne r0, #4373 ; 0x1115 + ac4: 16110000 ldrne r0, [r1], -r0 + ac8: 49080300 stmdbmi r8, {r8, r9} + acc: 3b0f3a16 blcc 3cf32c + ad0: 000f390f andeq r3, pc, pc, lsl #18 + ad4: 00210d00 eoreq r0, r1, r0, lsl #26 + ad8: 00000f2f andeq r0, r0, pc, lsr #30 + adc: 03002403 movweq r2, #1027 ; 0x403 + ae0: 3e0f0b08 fmacdcc d0, d15, d8 + ae4: 0900000b stmdbeq r0, {r0, r1, r3} + ae8: 08030028 stmdaeq r3, {r3, r5} + aec: 00000f1c andeq r0, r0, ip, lsl pc + af0: 01012e05 tsteq r1, r5, lsl #28 + af4: 3a080313 bcc 201748 + af8: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + afc: 490b3f0f stmdbmi fp, {r0, r1, r2, r3, r8, r9, sl, fp, ip, sp} + b00: 11064016 tstne r6, r6, lsl r0 + b04: 00011201 andeq r1, r1, r1, lsl #4 + b08: 00000000 andeq r0, r0, r0 + b0c: 03011101 movweq r1, #4353 ; 0x1101 + b10: 13082508 movwne r2, #34056 ; 0x8508 + b14: 4306100b movwmi r1, #24587 ; 0x600b + b18: 02000006 andeq r0, r0, #6 ; 0x6 + b1c: 08030111 stmdaeq r3, {r0, r4, r8} + b20: 0b130825 bleq 4c2bbc + b24: 01120111 tsteq r2, r1, lsl r1 + b28: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + b2c: 164ee706 strbne lr, [lr], -r6, lsl #14 + b30: 16060000 strne r0, [r6], -r0 + b34: 49080300 stmdbmi r8, {r8, r9} + b38: 3b0f3a16 blcc 3cf398 + b3c: 000f390f andeq r3, pc, pc, lsl #18 + b40: 00240300 eoreq r0, r4, r0, lsl #6 + b44: 0f0b0803 svceq 0x000b0803 + b48: 00000b3e andeq r0, r0, lr, lsr fp + b4c: 01012e04 tsteq r1, r4, lsl #28 + b50: 3a080313 bcc 2017a4 + b54: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + b58: 400b3f0f andmi r3, fp, pc, lsl #30 + b5c: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + b60: 05000001 streq r0, [r0, #-1] + b64: 08030034 stmdaeq r3, {r2, r4, r5} + b68: 0f3b0f3a svceq 0x003b0f3a + b6c: 16490f39 undefined + b70: 00000602 andeq r0, r0, r2, lsl #12 + b74: 00000000 andeq r0, r0, r0 + b78: 01010111 tsteq r1, r1, lsl r1 + b7c: 00164913 andseq r4, r6, r3, lsl r9 + b80: 01040f00 tsteq r4, r0, lsl #30 + b84: 08031301 stmdaeq r3, {r0, r8, r9, ip} + b88: 00000f0b andeq r0, r0, fp, lsl #30 + b8c: 0101040d tsteq r1, sp, lsl #8 + b90: 000f0b13 andeq r0, pc, r3, lsl fp + b94: 00050900 andeq r0, r5, r0, lsl #18 + b98: 0f3a0803 svceq 0x003a0803 + b9c: 0f390f3b svceq 0x00390f3b + ba0: 06021649 streq r1, [r2], -r9, asr #12 + ba4: 0b0b0000 bleq 2c0bac + ba8: 11130101 tstne r3, r1, lsl #2 + bac: 00011201 andeq r1, r1, r1, lsl #4 + bb0: 000d1500 andeq r1, sp, r0, lsl #10 + bb4: 0b321649 bleq c864e0 + bb8: 09380803 ldmdbeq r8!, {r0, r1, fp} + bbc: 0d140000 ldceq 0, cr0, [r4] + bc0: 32164900 andscc r4, r6, #0 ; 0x0 + bc4: 3808030b stmdacc r8, {r0, r1, r3, r8, r9} + bc8: 0d0f0b09 vstreq d0, [pc, #-36] ; bac <__USR_stack_size+0x3ac> + bcc: 000f0c0f andeq r0, pc, pc, lsl #24 + bd0: 000f0300 andeq r0, pc, r0, lsl #6 + bd4: 00001649 andeq r1, r0, r9, asr #12 + bd8: 03011101 movweq r1, #4353 ; 0x1101 + bdc: 13082508 movwne r2, #34056 ; 0x8508 + be0: 4306100b movwmi r1, #24587 ; 0x600b + be4: 06000006 streq r0, [r0], -r6 + be8: 08030111 stmdaeq r3, {r0, r4, r8} + bec: 0b130825 bleq 4c2c88 + bf0: 01120111 tsteq r2, r1, lsl r1 + bf4: 4ee60610 mcrmi 6, 7, r0, cr6, cr0, {0} + bf8: 164ee706 strbne lr, [lr], -r6, lsl #14 + bfc: 13160000 tstne r6, #0 ; 0x0 + c00: 03130101 tsteq r3, #1073741824 ; 0x40000000 + c04: 000f0b08 andeq r0, pc, r8, lsl #22 + c08: 01131300 tsteq r3, r0, lsl #6 + c0c: 0f0b1301 svceq 0x000b1301 + c10: 15100000 ldrne r0, [r0] + c14: 00130101 andseq r0, r3, r1, lsl #2 + c18: 00161800 andseq r1, r6, r0, lsl #16 + c1c: 16490803 strbne r0, [r9], -r3, lsl #16 + c20: 0f3b0f3a svceq 0x003b0f3a + c24: 00000f39 andeq r0, r0, r9, lsr pc + c28: 01011717 tsteq r1, r7, lsl r7 + c2c: 000f0b13 andeq r0, pc, r3, lsl fp + c30: 00211200 eoreq r1, r1, r0, lsl #4 + c34: 00000f2f andeq r0, r0, pc, lsr #30 + c38: 03002402 movweq r2, #1026 ; 0x402 + c3c: 3e0f0b08 fmacdcc d0, d15, d8 + c40: 0500000b streq r0, [r0, #-11] + c44: 16490026 strbne r0, [r9], -r6, lsr #32 + c48: 280e0000 stmdacs lr, {} + c4c: 1c080300 stcne 3, cr0, [r8], {0} + c50: 0800000f stmdaeq r0, {r0, r1, r2, r3} + c54: 1301012e movwne r0, #4398 ; 0x112e + c58: 0f3a0803 svceq 0x003a0803 + c5c: 0f390f3b svceq 0x00390f3b + c60: 06400b3f undefined + c64: 01120111 tsteq r2, r1, lsl r1 + c68: 2e0c0000 cdpcs 0, 0, cr0, cr12, cr0, {0} + c6c: 03130101 tsteq r3, #1073741824 ; 0x40000000 + c70: 3b0f3a08 blcc 3cf498 + c74: 3f0f390f svccc 0x000f390f + c78: 4016490b andsmi r4, r6, fp, lsl #18 + c7c: 12011106 andne r1, r1, #-2147483647 ; 0x80000001 + c80: 0a000001 beq c8c <__USR_stack_size+0x48c> + c84: 08030034 stmdaeq r3, {r2, r4, r5} + c88: 0f3b0f3a svceq 0x003b0f3a + c8c: 16490f39 undefined + c90: 00000602 andeq r0, r0, r2, lsl #12 + c94: 03003404 movweq r3, #1028 ; 0x404 + c98: 3a164908 bcc 5930c0 + c9c: 390f3b0f stmdbcc pc, {r0, r1, r2, r3, r8, r9, fp, ip, sp} + ca0: 020b3f0f andeq r3, fp, #60 ; 0x3c + ca4: 07000009 streq r0, [r0, -r9] + ca8: 16490035 undefined + cac: 00000000 andeq r0, r0, r0 + +Disassembly of section .debug_frame: + +00000000 <.debug_frame>: + 0: 00000028 andeq r0, r0, r8, lsr #32 + 4: ffffffff undefined instruction 0xffffffff + 8: 7c020003 stcvc 0, cr0, [r2], {3} + c: 000d0c0e andeq r0, sp, lr, lsl #24 + 10: 01070007 tsteq r7, r7 + 14: 03070207 movweq r0, #29191 ; 0x7207 + 18: 05080408 streq r0, [r8, #-1032] + 1c: 07080608 streq r0, [r8, -r8, lsl #12] + 20: 09080808 stmdbeq r8, {r3, fp} + 24: 0b080a08 bleq 20284c + 28: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 2c: 00000014 andeq r0, r0, r4, lsl r0 + 30: 00000000 andeq r0, r0, r0 + 34: 00403d84 subeq r3, r0, r4, lsl #27 + 38: 00000024 andeq r0, r0, r4, lsr #32 + 3c: 4d080e41 stcmi 14, cr0, [r8, #-260] + 40: 0000000e andeq r0, r0, lr + 44: 00000028 andeq r0, r0, r8, lsr #32 + 48: ffffffff undefined instruction 0xffffffff + 4c: 7c020003 stcvc 0, cr0, [r2], {3} + 50: 000d0c0e andeq r0, sp, lr, lsl #24 + 54: 01070007 tsteq r7, r7 + 58: 03070207 movweq r0, #29191 ; 0x7207 + 5c: 05080408 streq r0, [r8, #-1032] + 60: 07080608 streq r0, [r8, -r8, lsl #12] + 64: 09080808 stmdbeq r8, {r3, fp} + 68: 0b080a08 bleq 202890 + 6c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 70: 00000014 andeq r0, r0, r4, lsl r0 + 74: 00000044 andeq r0, r0, r4, asr #32 + 78: 00403da8 subeq r3, r0, r8, lsr #27 + 7c: 0000001e andeq r0, r0, lr, lsl r0 + 80: 4d080e41 stcmi 14, cr0, [r8, #-260] + 84: 0000000e andeq r0, r0, lr + 88: 00000028 andeq r0, r0, r8, lsr #32 + 8c: ffffffff undefined instruction 0xffffffff + 90: 7c020003 stcvc 0, cr0, [r2], {3} + 94: 000d0c0e andeq r0, sp, lr, lsl #24 + 98: 01070007 tsteq r7, r7 + 9c: 03070207 movweq r0, #29191 ; 0x7207 + a0: 05080408 streq r0, [r8, #-1032] + a4: 07080608 streq r0, [r8, -r8, lsl #12] + a8: 09080808 stmdbeq r8, {r3, fp} + ac: 0b080a08 bleq 2028d4 + b0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + b4: 00000028 andeq r0, r0, r8, lsr #32 + b8: 00000088 andeq r0, r0, r8, lsl #1 + bc: 00401964 subeq r1, r0, r4, ror #18 + c0: 000001f2 strdeq r0, [r0], -r2 + c4: 84100e41 ldrhi r0, [r0], #-3649 + c8: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + cc: 0ef40201 cdpeq 2, 15, cr0, cr4, cr1, {0} + d0: 0e09410c adfeqe f4, f1, #4.0 + d4: 040e4100 streq r4, [lr], #-256 + d8: 0e41c5c4 cdpeq 5, 4, cr12, cr1, cr4, {6} + dc: 00000000 andeq r0, r0, r0 + e0: 00000028 andeq r0, r0, r8, lsr #32 + e4: ffffffff undefined instruction 0xffffffff + e8: 7c020003 stcvc 0, cr0, [r2], {3} + ec: 000d0c0e andeq r0, sp, lr, lsl #24 + f0: 01070007 tsteq r7, r7 + f4: 03070207 movweq r0, #29191 ; 0x7207 + f8: 05080408 streq r0, [r8, #-1032] + fc: 07080608 streq r0, [r8, -r8, lsl #12] + 100: 09080808 stmdbeq r8, {r3, fp} + 104: 0b080a08 bleq 20292c + 108: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 10c: 00000024 andeq r0, r0, r4, lsr #32 + 110: 000000e0 andeq r0, r0, r0, ror #1 + 114: 00401b56 subeq r1, r0, r6, asr fp + 118: 00000058 andeq r0, r0, r8, asr r0 + 11c: 84100e41 ldrhi r0, [r0], #-3649 + 120: 86038504 strhi r8, [r3], -r4, lsl #10 + 124: 68018e02 stmdavs r1, {r1, r9, sl, fp, pc} + 128: 41000e09 tstmi r0, r9, lsl #28 + 12c: c5c4040e strbgt r0, [r4, #1038] + 130: 000e41c6 andeq r4, lr, r6, asr #3 + 134: 00000028 andeq r0, r0, r8, lsr #32 + 138: ffffffff undefined instruction 0xffffffff + 13c: 7c020003 stcvc 0, cr0, [r2], {3} + 140: 000d0c0e andeq r0, sp, lr, lsl #24 + 144: 01070007 tsteq r7, r7 + 148: 03070207 movweq r0, #29191 ; 0x7207 + 14c: 05080408 streq r0, [r8, #-1032] + 150: 07080608 streq r0, [r8, -r8, lsl #12] + 154: 09080808 stmdbeq r8, {r3, fp} + 158: 0b080a08 bleq 202980 + 15c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 160: 0000001c andeq r0, r0, ip, lsl r0 + 164: 00000134 andeq r0, r0, r4, lsr r1 + 168: 00401bb4 strheq r1, [r0], #-180 + 16c: 00000068 andeq r0, r0, r8, rrx + 170: 84180e41 ldrhi r0, [r8], #-3649 + 174: 86048505 strhi r8, [r4], -r5, lsl #10 + 178: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 17c: 140e7201 strne r7, [lr], #-513 + 180: 00000028 andeq r0, r0, r8, lsr #32 + 184: ffffffff undefined instruction 0xffffffff + 188: 7c020003 stcvc 0, cr0, [r2], {3} + 18c: 000d0c0e andeq r0, sp, lr, lsl #24 + 190: 01070007 tsteq r7, r7 + 194: 03070207 movweq r0, #29191 ; 0x7207 + 198: 05080408 streq r0, [r8, #-1032] + 19c: 07080608 streq r0, [r8, -r8, lsl #12] + 1a0: 09080808 stmdbeq r8, {r3, fp} + 1a4: 0b080a08 bleq 2029cc + 1a8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1ac: 00000020 andeq r0, r0, r0, lsr #32 + 1b0: 00000180 andeq r0, r0, r0, lsl #3 + 1b4: 00401c24 subeq r1, r0, r4, lsr #24 + 1b8: 00000194 muleq r0, r4, r1 + 1bc: 841c0e41 ldrhi r0, [ip], #-3649 + 1c0: 86048505 strhi r8, [r4], -r5, lsl #10 + 1c4: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1c8: 500e4101 andpl r4, lr, r1, lsl #2 + 1cc: 140ec202 strne ip, [lr], #-514 + 1d0: 00000028 andeq r0, r0, r8, lsr #32 + 1d4: ffffffff undefined instruction 0xffffffff + 1d8: 7c020003 stcvc 0, cr0, [r2], {3} + 1dc: 000d0c0e andeq r0, sp, lr, lsl #24 + 1e0: 01070007 tsteq r7, r7 + 1e4: 03070207 movweq r0, #29191 ; 0x7207 + 1e8: 05080408 streq r0, [r8, #-1032] + 1ec: 07080608 streq r0, [r8, -r8, lsl #12] + 1f0: 09080808 stmdbeq r8, {r3, fp} + 1f4: 0b080a08 bleq 202a1c + 1f8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1fc: 00000024 andeq r0, r0, r4, lsr #32 + 200: 000001d0 ldrdeq r0, [r0], -r0 + 204: 00401dbc strheq r1, [r0], #-220 + 208: 000001f0 strdeq r0, [r0], -r0 + 20c: 84240e41 strthi r0, [r4], #-3649 + 210: 86048505 strhi r8, [r4], -r5, lsl #10 + 214: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 218: 680e4101 stmdavs lr, {r0, r8, lr} + 21c: 140ee602 strne lr, [lr], #-1538 + 220: 00680e41 rsbeq r0, r8, r1, asr #28 + 224: 00000028 andeq r0, r0, r8, lsr #32 + 228: ffffffff undefined instruction 0xffffffff + 22c: 7c020003 stcvc 0, cr0, [r2], {3} + 230: 000d0c0e andeq r0, sp, lr, lsl #24 + 234: 01070007 tsteq r7, r7 + 238: 03070207 movweq r0, #29191 ; 0x7207 + 23c: 05080408 streq r0, [r8, #-1032] + 240: 07080608 streq r0, [r8, -r8, lsl #12] + 244: 09080808 stmdbeq r8, {r3, fp} + 248: 0b080a08 bleq 202a70 + 24c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 250: 00000014 andeq r0, r0, r4, lsl r0 + 254: 00000224 andeq r0, r0, r4, lsr #4 + 258: 00401fac subeq r1, r0, ip, lsr #31 + 25c: 00000050 andeq r0, r0, r0, asr r0 + 260: 84080e41 strhi r0, [r8], #-3649 + 264: 00018e02 andeq r8, r1, r2, lsl #28 + 268: 00000028 andeq r0, r0, r8, lsr #32 + 26c: ffffffff undefined instruction 0xffffffff + 270: 7c020003 stcvc 0, cr0, [r2], {3} + 274: 000d0c0e andeq r0, sp, lr, lsl #24 + 278: 01070007 tsteq r7, r7 + 27c: 03070207 movweq r0, #29191 ; 0x7207 + 280: 05080408 streq r0, [r8, #-1032] + 284: 07080608 streq r0, [r8, -r8, lsl #12] + 288: 09080808 stmdbeq r8, {r3, fp} + 28c: 0b080a08 bleq 202ab4 + 290: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 294: 00000014 andeq r0, r0, r4, lsl r0 + 298: 00000268 andeq r0, r0, r8, ror #4 + 29c: 00401ffc strdeq r1, [r0], #-252 + 2a0: 00000048 andeq r0, r0, r8, asr #32 + 2a4: 84080e41 strhi r0, [r8], #-3649 + 2a8: 00018e02 andeq r8, r1, r2, lsl #28 + 2ac: 00000028 andeq r0, r0, r8, lsr #32 + 2b0: ffffffff undefined instruction 0xffffffff + 2b4: 7c020003 stcvc 0, cr0, [r2], {3} + 2b8: 000d0c0e andeq r0, sp, lr, lsl #24 + 2bc: 01070007 tsteq r7, r7 + 2c0: 03070207 movweq r0, #29191 ; 0x7207 + 2c4: 05080408 streq r0, [r8, #-1032] + 2c8: 07080608 streq r0, [r8, -r8, lsl #12] + 2cc: 09080808 stmdbeq r8, {r3, fp} + 2d0: 0b080a08 bleq 202af8 + 2d4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 2d8: 00000020 andeq r0, r0, r0, lsr #32 + 2dc: 000002ac andeq r0, r0, ip, lsr #5 + 2e0: 00402044 subeq r2, r0, r4, asr #32 + 2e4: 0000003c andeq r0, r0, ip, lsr r0 + 2e8: 0284080e addeq r0, r4, #917504 ; 0xe0000 + 2ec: 095b018e ldmdbeq fp, {r1, r2, r3, r7, r8}^ + 2f0: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} + 2f4: 0e41c404 cdpeq 4, 4, cr12, cr1, cr4, {0} + 2f8: 00000000 andeq r0, r0, r0 + 2fc: 00000028 andeq r0, r0, r8, lsr #32 + 300: ffffffff undefined instruction 0xffffffff + 304: 7c020003 stcvc 0, cr0, [r2], {3} + 308: 000d0c0e andeq r0, sp, lr, lsl #24 + 30c: 01070007 tsteq r7, r7 + 310: 03070207 movweq r0, #29191 ; 0x7207 + 314: 05080408 streq r0, [r8, #-1032] + 318: 07080608 streq r0, [r8, -r8, lsl #12] + 31c: 09080808 stmdbeq r8, {r3, fp} + 320: 0b080a08 bleq 202b48 + 324: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 328: 0000000c andeq r0, r0, ip + 32c: 000002fc strdeq r0, [r0], -ip + 330: 00402084 subeq r2, r0, r4, lsl #1 + 334: 00000020 andeq r0, r0, r0, lsr #32 + 338: 00000028 andeq r0, r0, r8, lsr #32 + 33c: ffffffff undefined instruction 0xffffffff + 340: 7c020003 stcvc 0, cr0, [r2], {3} + 344: 000d0c0e andeq r0, sp, lr, lsl #24 + 348: 01070007 tsteq r7, r7 + 34c: 03070207 movweq r0, #29191 ; 0x7207 + 350: 05080408 streq r0, [r8, #-1032] + 354: 07080608 streq r0, [r8, -r8, lsl #12] + 358: 09080808 stmdbeq r8, {r3, fp} + 35c: 0b080a08 bleq 202b84 + 360: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 364: 00000018 andeq r0, r0, r8, lsl r0 + 368: 00000338 andeq r0, r0, r8, lsr r3 + 36c: 004020a4 subeq r2, r0, r4, lsr #1 + 370: 00000016 andeq r0, r0, r6, lsl r0 + 374: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 378: 0e094801 cdpeq 8, 0, cr4, cr9, cr1, {0} + 37c: 000e4100 andeq r4, lr, r0, lsl #2 + 380: 00000028 andeq r0, r0, r8, lsr #32 + 384: ffffffff undefined instruction 0xffffffff + 388: 7c020003 stcvc 0, cr0, [r2], {3} + 38c: 000d0c0e andeq r0, sp, lr, lsl #24 + 390: 01070007 tsteq r7, r7 + 394: 03070207 movweq r0, #29191 ; 0x7207 + 398: 05080408 streq r0, [r8, #-1032] + 39c: 07080608 streq r0, [r8, -r8, lsl #12] + 3a0: 09080808 stmdbeq r8, {r3, fp} + 3a4: 0b080a08 bleq 202bcc + 3a8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 3ac: 0000001c andeq r0, r0, ip, lsl r0 + 3b0: 00000380 andeq r0, r0, r0, lsl #7 + 3b4: 004020ba strheq r2, [r0], #-10 + 3b8: 00000128 andeq r0, r0, r8, lsr #2 + 3bc: 84140e41 ldrhi r0, [r4], #-3649 + 3c0: 86048505 strhi r8, [r4], -r5, lsl #10 + 3c4: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 3c8: 200e4101 andcs r4, lr, r1, lsl #2 + 3cc: 00000028 andeq r0, r0, r8, lsr #32 + 3d0: ffffffff undefined instruction 0xffffffff + 3d4: 7c020003 stcvc 0, cr0, [r2], {3} + 3d8: 000d0c0e andeq r0, sp, lr, lsl #24 + 3dc: 01070007 tsteq r7, r7 + 3e0: 03070207 movweq r0, #29191 ; 0x7207 + 3e4: 05080408 streq r0, [r8, #-1032] + 3e8: 07080608 streq r0, [r8, -r8, lsl #12] + 3ec: 09080808 stmdbeq r8, {r3, fp} + 3f0: 0b080a08 bleq 202c18 + 3f4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 3f8: 0000001c andeq r0, r0, ip, lsl r0 + 3fc: 000003cc andeq r0, r0, ip, asr #7 + 400: 004021e4 subeq r2, r0, r4, ror #3 + 404: 000000c8 andeq r0, r0, r8, asr #1 + 408: 84180e41 ldrhi r0, [r8], #-3649 + 40c: 86048505 strhi r8, [r4], -r5, lsl #10 + 410: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 414: 200e4101 andcs r4, lr, r1, lsl #2 + 418: 00000028 andeq r0, r0, r8, lsr #32 + 41c: ffffffff undefined instruction 0xffffffff + 420: 7c020003 stcvc 0, cr0, [r2], {3} + 424: 000d0c0e andeq r0, sp, lr, lsl #24 + 428: 01070007 tsteq r7, r7 + 42c: 03070207 movweq r0, #29191 ; 0x7207 + 430: 05080408 streq r0, [r8, #-1032] + 434: 07080608 streq r0, [r8, -r8, lsl #12] + 438: 09080808 stmdbeq r8, {r3, fp} + 43c: 0b080a08 bleq 202c64 + 440: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 444: 0000001c andeq r0, r0, ip, lsl r0 + 448: 00000418 andeq r0, r0, r8, lsl r4 + 44c: 004022ac subeq r2, r0, ip, lsr #5 + 450: 00000004 andeq r0, r0, r4 + 454: 0584200e streq r2, [r4, #14] + 458: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 + 45c: 018e0287 orreq r0, lr, r7, lsl #5 + 460: 00140e41 andseq r0, r4, r1, asr #28 + 464: 00000028 andeq r0, r0, r8, lsr #32 + 468: ffffffff undefined instruction 0xffffffff + 46c: 7c020003 stcvc 0, cr0, [r2], {3} + 470: 000d0c0e andeq r0, sp, lr, lsl #24 + 474: 01070007 tsteq r7, r7 + 478: 03070207 movweq r0, #29191 ; 0x7207 + 47c: 05080408 streq r0, [r8, #-1032] + 480: 07080608 streq r0, [r8, -r8, lsl #12] + 484: 09080808 stmdbeq r8, {r3, fp} + 488: 0b080a08 bleq 202cb0 + 48c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 490: 00000028 andeq r0, r0, r8, lsr #32 + 494: 00000464 andeq r0, r0, r4, ror #8 + 498: 004022b0 strheq r2, [r0], #-32 + 49c: 0000001c andeq r0, r0, ip, lsl r0 + 4a0: 0584140e streq r1, [r4, #1038] + 4a4: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 + 4a8: 018e0287 orreq r0, lr, r7, lsl #5 + 4ac: 000e0941 andeq r0, lr, r1, asr #18 + 4b0: c4040e41 strgt r0, [r4], #-3649 + 4b4: 41c7c6c5 bicmi ip, r7, r5, asr #13 + 4b8: 0000000e andeq r0, r0, lr + 4bc: 00000028 andeq r0, r0, r8, lsr #32 + 4c0: ffffffff undefined instruction 0xffffffff + 4c4: 7c020003 stcvc 0, cr0, [r2], {3} + 4c8: 000d0c0e andeq r0, sp, lr, lsl #24 + 4cc: 01070007 tsteq r7, r7 + 4d0: 03070207 movweq r0, #29191 ; 0x7207 + 4d4: 05080408 streq r0, [r8, #-1032] + 4d8: 07080608 streq r0, [r8, -r8, lsl #12] + 4dc: 09080808 stmdbeq r8, {r3, fp} + 4e0: 0b080a08 bleq 202d08 + 4e4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 4e8: 00000024 andeq r0, r0, r4, lsr #32 + 4ec: 000004bc strheq r0, [r0], -ip + 4f0: 004022d0 ldrdeq r2, [r0], #-32 + 4f4: 00000046 andeq r0, r0, r6, asr #32 + 4f8: 84100e41 ldrhi r0, [r0], #-3649 + 4fc: 86038504 strhi r8, [r3], -r4, lsl #10 + 500: 5f018e02 svcpl 0x00018e02 + 504: 41000e09 tstmi r0, r9, lsl #28 + 508: c5c4040e strbgt r0, [r4, #1038] + 50c: 000e41c6 andeq r4, lr, r6, asr #3 + 510: 00000028 andeq r0, r0, r8, lsr #32 + 514: ffffffff undefined instruction 0xffffffff + 518: 7c020003 stcvc 0, cr0, [r2], {3} + 51c: 000d0c0e andeq r0, sp, lr, lsl #24 + 520: 01070007 tsteq r7, r7 + 524: 03070207 movweq r0, #29191 ; 0x7207 + 528: 05080408 streq r0, [r8, #-1032] + 52c: 07080608 streq r0, [r8, -r8, lsl #12] + 530: 09080808 stmdbeq r8, {r3, fp} + 534: 0b080a08 bleq 202d5c + 538: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 53c: 00000028 andeq r0, r0, r8, lsr #32 + 540: 00000510 andeq r0, r0, r0, lsl r5 + 544: 00402318 subeq r2, r0, r8, lsl r3 + 548: 00000060 andeq r0, r0, r0, rrx + 54c: 84080e41 strhi r0, [r8], #-3649 + 550: 68018e02 stmdavs r1, {r1, r9, sl, fp, pc} + 554: 41010e09 tstmi r1, r9, lsl #28 + 558: 41c4040e bicmi r0, r4, lr, lsl #8 + 55c: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} + 560: 8e028408 cdphi 4, 0, cr8, cr2, cr8, {0} + 564: 00000001 andeq r0, r0, r1 + 568: 00000028 andeq r0, r0, r8, lsr #32 + 56c: ffffffff undefined instruction 0xffffffff + 570: 7c020003 stcvc 0, cr0, [r2], {3} + 574: 000d0c0e andeq r0, sp, lr, lsl #24 + 578: 01070007 tsteq r7, r7 + 57c: 03070207 movweq r0, #29191 ; 0x7207 + 580: 05080408 streq r0, [r8, #-1032] + 584: 07080608 streq r0, [r8, -r8, lsl #12] + 588: 09080808 stmdbeq r8, {r3, fp} + 58c: 0b080a08 bleq 202db4 + 590: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 594: 00000024 andeq r0, r0, r4, lsr #32 + 598: 00000568 andeq r0, r0, r8, ror #10 + 59c: 00403cf0 strdeq r3, [r0], #-192 + 5a0: 0000004c andeq r0, r0, ip, asr #32 + 5a4: 84100e41 ldrhi r0, [r0], #-3649 + 5a8: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + 5ac: 0c0e6101 stfeqs f6, [lr], {1} + 5b0: 000e0941 andeq r0, lr, r1, asr #18 + 5b4: c4040e41 strgt r0, [r4], #-3649 + 5b8: 000e41c5 andeq r4, lr, r5, asr #3 + 5bc: 00000028 andeq r0, r0, r8, lsr #32 + 5c0: ffffffff undefined instruction 0xffffffff + 5c4: 7c020003 stcvc 0, cr0, [r2], {3} + 5c8: 000d0c0e andeq r0, sp, lr, lsl #24 + 5cc: 01070007 tsteq r7, r7 + 5d0: 03070207 movweq r0, #29191 ; 0x7207 + 5d4: 05080408 streq r0, [r8, #-1032] + 5d8: 07080608 streq r0, [r8, -r8, lsl #12] + 5dc: 09080808 stmdbeq r8, {r3, fp} + 5e0: 0b080a08 bleq 202e08 + 5e4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 5e8: 00000018 andeq r0, r0, r8, lsl r0 + 5ec: 000005bc strheq r0, [r0], -ip + 5f0: 00403608 subeq r3, r0, r8, lsl #12 + 5f4: 0000001c andeq r0, r0, ip, lsl r0 + 5f8: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 5fc: 0e094b01 fmacdeq d4, d9, d1 + 600: 000e4100 andeq r4, lr, r0, lsl #2 + 604: 00000028 andeq r0, r0, r8, lsr #32 + 608: ffffffff undefined instruction 0xffffffff + 60c: 7c020003 stcvc 0, cr0, [r2], {3} + 610: 000d0c0e andeq r0, sp, lr, lsl #24 + 614: 01070007 tsteq r7, r7 + 618: 03070207 movweq r0, #29191 ; 0x7207 + 61c: 05080408 streq r0, [r8, #-1032] + 620: 07080608 streq r0, [r8, -r8, lsl #12] + 624: 09080808 stmdbeq r8, {r3, fp} + 628: 0b080a08 bleq 202e50 + 62c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 630: 00000020 andeq r0, r0, r0, lsr #32 + 634: 00000604 andeq r0, r0, r4, lsl #12 + 638: 00403624 subeq r3, r0, r4, lsr #12 + 63c: 0000009c muleq r0, ip, r0 + 640: 84080e41 strhi r0, [r8], #-3649 + 644: 02018e02 andeq r8, r1, #32 ; 0x20 + 648: 000e094a andeq r0, lr, sl, asr #18 + 64c: c4040e41 strgt r0, [r4], #-3649 + 650: 00000e41 andeq r0, r0, r1, asr #28 + 654: 00000028 andeq r0, r0, r8, lsr #32 + 658: ffffffff undefined instruction 0xffffffff + 65c: 7c020003 stcvc 0, cr0, [r2], {3} + 660: 000d0c0e andeq r0, sp, lr, lsl #24 + 664: 01070007 tsteq r7, r7 + 668: 03070207 movweq r0, #29191 ; 0x7207 + 66c: 05080408 streq r0, [r8, #-1032] + 670: 07080608 streq r0, [r8, -r8, lsl #12] + 674: 09080808 stmdbeq r8, {r3, fp} + 678: 0b080a08 bleq 202ea0 + 67c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 680: 00000020 andeq r0, r0, r0, lsr #32 + 684: 00000654 andeq r0, r0, r4, asr r6 + 688: 004036c0 subeq r3, r0, r0, asr #13 + 68c: 0000003c andeq r0, r0, ip, lsr r0 + 690: 84080e41 strhi r0, [r8], #-3649 + 694: 5a018e02 bpl 63ea4 + 698: 41000e09 tstmi r0, r9, lsl #28 + 69c: 41c4040e bicmi r0, r4, lr, lsl #8 + 6a0: 0000000e andeq r0, r0, lr + 6a4: 00000028 andeq r0, r0, r8, lsr #32 + 6a8: ffffffff undefined instruction 0xffffffff + 6ac: 7c020003 stcvc 0, cr0, [r2], {3} + 6b0: 000d0c0e andeq r0, sp, lr, lsl #24 + 6b4: 01070007 tsteq r7, r7 + 6b8: 03070207 movweq r0, #29191 ; 0x7207 + 6bc: 05080408 streq r0, [r8, #-1032] + 6c0: 07080608 streq r0, [r8, -r8, lsl #12] + 6c4: 09080808 stmdbeq r8, {r3, fp} + 6c8: 0b080a08 bleq 202ef0 + 6cc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 6d0: 0000002c andeq r0, r0, ip, lsr #32 + 6d4: 000006a4 andeq r0, r0, r4, lsr #13 + 6d8: 00402bb4 strheq r2, [r0], #-180 + 6dc: 00000090 muleq r0, r0, r0 + 6e0: 84100e41 ldrhi r0, [r0], #-3649 + 6e4: 86038504 strhi r8, [r3], -r4, lsl #10 + 6e8: 41018e02 tstmi r1, r2, lsl #28 + 6ec: 0e7a180e cdpeq 8, 7, cr1, cr10, cr14, {0} + 6f0: 0e094110 flteqe f1, r4 + 6f4: 040e4100 streq r4, [lr], #-256 + 6f8: 41c6c5c4 bicmi ip, r6, r4, asr #11 + 6fc: 0000000e andeq r0, r0, lr + 700: 00000028 andeq r0, r0, r8, lsr #32 + 704: ffffffff undefined instruction 0xffffffff + 708: 7c020003 stcvc 0, cr0, [r2], {3} + 70c: 000d0c0e andeq r0, sp, lr, lsl #24 + 710: 01070007 tsteq r7, r7 + 714: 03070207 movweq r0, #29191 ; 0x7207 + 718: 05080408 streq r0, [r8, #-1032] + 71c: 07080608 streq r0, [r8, -r8, lsl #12] + 720: 09080808 stmdbeq r8, {r3, fp} + 724: 0b080a08 bleq 202f4c + 728: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 72c: 0000002c andeq r0, r0, ip, lsr #32 + 730: 00000700 andeq r0, r0, r0, lsl #14 + 734: 00402c44 subeq r2, r0, r4, asr #24 + 738: 00000184 andeq r0, r0, r4, lsl #3 + 73c: 84180e41 ldrhi r0, [r8], #-3649 + 740: 86048505 strhi r8, [r4], -r5, lsl #10 + 744: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 748: 0eb20201 cdpeq 2, 11, cr0, cr2, cr1, {0} + 74c: 0e094114 mcreq 1, 0, r4, cr9, cr4, {0} + 750: 040e4100 streq r4, [lr], #-256 + 754: c7c6c5c4 strbgt ip, [r6, r4, asr #11] + 758: 00000e41 andeq r0, r0, r1, asr #28 + 75c: 00000028 andeq r0, r0, r8, lsr #32 + 760: ffffffff undefined instruction 0xffffffff + 764: 7c020003 stcvc 0, cr0, [r2], {3} + 768: 000d0c0e andeq r0, sp, lr, lsl #24 + 76c: 01070007 tsteq r7, r7 + 770: 03070207 movweq r0, #29191 ; 0x7207 + 774: 05080408 streq r0, [r8, #-1032] + 778: 07080608 streq r0, [r8, -r8, lsl #12] + 77c: 09080808 stmdbeq r8, {r3, fp} + 780: 0b080a08 bleq 202fa8 + 784: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 788: 0000000c andeq r0, r0, ip + 78c: 0000075c andeq r0, r0, ip, asr r7 + 790: 00403ca4 subeq r3, r0, r4, lsr #25 + 794: 0000004c andeq r0, r0, ip, asr #32 + 798: 00000028 andeq r0, r0, r8, lsr #32 + 79c: ffffffff undefined instruction 0xffffffff + 7a0: 7c020003 stcvc 0, cr0, [r2], {3} + 7a4: 000d0c0e andeq r0, sp, lr, lsl #24 + 7a8: 01070007 tsteq r7, r7 + 7ac: 03070207 movweq r0, #29191 ; 0x7207 + 7b0: 05080408 streq r0, [r8, #-1032] + 7b4: 07080608 streq r0, [r8, -r8, lsl #12] + 7b8: 09080808 stmdbeq r8, {r3, fp} + 7bc: 0b080a08 bleq 202fe4 + 7c0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 7c4: 00000018 andeq r0, r0, r8, lsl r0 + 7c8: 00000798 muleq r0, r8, r7 + 7cc: 00402378 subeq r2, r0, r8, ror r3 + 7d0: 00000022 andeq r0, r0, r2, lsr #32 + 7d4: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 7d8: 0e094e01 cdpeq 14, 0, cr4, cr9, cr1, {0} + 7dc: 000e4100 andeq r4, lr, r0, lsl #2 + 7e0: 00000028 andeq r0, r0, r8, lsr #32 + 7e4: ffffffff undefined instruction 0xffffffff + 7e8: 7c020003 stcvc 0, cr0, [r2], {3} + 7ec: 000d0c0e andeq r0, sp, lr, lsl #24 + 7f0: 01070007 tsteq r7, r7 + 7f4: 03070207 movweq r0, #29191 ; 0x7207 + 7f8: 05080408 streq r0, [r8, #-1032] + 7fc: 07080608 streq r0, [r8, -r8, lsl #12] + 800: 09080808 stmdbeq r8, {r3, fp} + 804: 0b080a08 bleq 20302c + 808: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 80c: 00000024 andeq r0, r0, r4, lsr #32 + 810: 000007e0 andeq r0, r0, r0, ror #15 + 814: 0040239a umaaleq r2, r0, sl, r3 + 818: 00000034 andeq r0, r0, r4, lsr r0 + 81c: 84080e41 strhi r0, [r8], #-3649 + 820: 49018502 stmdbmi r1, {r1, r8, sl, pc} + 824: c5c4000e strbgt r0, [r4, #14] + 828: 84080e41 strhi r0, [r8], #-3649 + 82c: 4e018502 cfsh32mi mvfx8, mvfx1, #2 + 830: c5c4000e strbgt r0, [r4, #14] + 834: 00000028 andeq r0, r0, r8, lsr #32 + 838: ffffffff undefined instruction 0xffffffff + 83c: 7c020003 stcvc 0, cr0, [r2], {3} + 840: 000d0c0e andeq r0, sp, lr, lsl #24 + 844: 01070007 tsteq r7, r7 + 848: 03070207 movweq r0, #29191 ; 0x7207 + 84c: 05080408 streq r0, [r8, #-1032] + 850: 07080608 streq r0, [r8, -r8, lsl #12] + 854: 09080808 stmdbeq r8, {r3, fp} + 858: 0b080a08 bleq 203080 + 85c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 860: 0000000c andeq r0, r0, ip + 864: 00000834 andeq r0, r0, r4, lsr r8 + 868: 004023ce subeq r2, r0, lr, asr #7 + 86c: 00000024 andeq r0, r0, r4, lsr #32 + 870: 00000028 andeq r0, r0, r8, lsr #32 + 874: ffffffff undefined instruction 0xffffffff + 878: 7c020003 stcvc 0, cr0, [r2], {3} + 87c: 000d0c0e andeq r0, sp, lr, lsl #24 + 880: 01070007 tsteq r7, r7 + 884: 03070207 movweq r0, #29191 ; 0x7207 + 888: 05080408 streq r0, [r8, #-1032] + 88c: 07080608 streq r0, [r8, -r8, lsl #12] + 890: 09080808 stmdbeq r8, {r3, fp} + 894: 0b080a08 bleq 2030bc + 898: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 89c: 0000000c andeq r0, r0, ip + 8a0: 00000870 andeq r0, r0, r0, ror r8 + 8a4: 004023f4 strdeq r2, [r0], #-52 + 8a8: 00000034 andeq r0, r0, r4, lsr r0 + 8ac: 00000028 andeq r0, r0, r8, lsr #32 + 8b0: ffffffff undefined instruction 0xffffffff + 8b4: 7c020003 stcvc 0, cr0, [r2], {3} + 8b8: 000d0c0e andeq r0, sp, lr, lsl #24 + 8bc: 01070007 tsteq r7, r7 + 8c0: 03070207 movweq r0, #29191 ; 0x7207 + 8c4: 05080408 streq r0, [r8, #-1032] + 8c8: 07080608 streq r0, [r8, -r8, lsl #12] + 8cc: 09080808 stmdbeq r8, {r3, fp} + 8d0: 0b080a08 bleq 2030f8 + 8d4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 8d8: 00000014 andeq r0, r0, r4, lsl r0 + 8dc: 000008ac andeq r0, r0, ip, lsr #17 + 8e0: 00402428 subeq r2, r0, r8, lsr #8 + 8e4: 00000038 andeq r0, r0, r8, lsr r0 + 8e8: 84080e41 strhi r0, [r8], #-3649 + 8ec: 00018e02 andeq r8, r1, r2, lsl #28 + 8f0: 00000028 andeq r0, r0, r8, lsr #32 + 8f4: ffffffff undefined instruction 0xffffffff + 8f8: 7c020003 stcvc 0, cr0, [r2], {3} + 8fc: 000d0c0e andeq r0, sp, lr, lsl #24 + 900: 01070007 tsteq r7, r7 + 904: 03070207 movweq r0, #29191 ; 0x7207 + 908: 05080408 streq r0, [r8, #-1032] + 90c: 07080608 streq r0, [r8, -r8, lsl #12] + 910: 09080808 stmdbeq r8, {r3, fp} + 914: 0b080a08 bleq 20313c + 918: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 91c: 00000028 andeq r0, r0, r8, lsr #32 + 920: 000008f0 strdeq r0, [r0], -r0 + 924: 00402460 subeq r2, r0, r0, ror #8 + 928: 00000150 andeq r0, r0, r0, asr r1 + 92c: 84100e41 ldrhi r0, [r0], #-3649 + 930: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + 934: 0ea00201 cdpeq 2, 10, cr0, cr0, cr1, {0} + 938: 0e09410c adfeqe f4, f1, #4.0 + 93c: 040e4101 streq r4, [lr], #-257 + 940: 0e41c5c4 cdpeq 5, 4, cr12, cr1, cr4, {6} + 944: 00000000 andeq r0, r0, r0 + 948: 00000028 andeq r0, r0, r8, lsr #32 + 94c: ffffffff undefined instruction 0xffffffff + 950: 7c020003 stcvc 0, cr0, [r2], {3} + 954: 000d0c0e andeq r0, sp, lr, lsl #24 + 958: 01070007 tsteq r7, r7 + 95c: 03070207 movweq r0, #29191 ; 0x7207 + 960: 05080408 streq r0, [r8, #-1032] + 964: 07080608 streq r0, [r8, -r8, lsl #12] + 968: 09080808 stmdbeq r8, {r3, fp} + 96c: 0b080a08 bleq 203194 + 970: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 974: 00000028 andeq r0, r0, r8, lsr #32 + 978: 00000948 andeq r0, r0, r8, asr #18 + 97c: 004025c0 subeq r2, r0, r0, asr #11 + 980: 00000200 andeq r0, r0, r0, lsl #4 + 984: 84100e41 ldrhi r0, [r0], #-3649 + 988: 86038504 strhi r8, [r3], -r4, lsl #10 + 98c: 02018e02 andeq r8, r1, #32 ; 0x20 + 990: 010e09ef smlatteq lr, pc, r9, r0 + 994: c4040e41 strgt r0, [r4], #-3649 + 998: 0e41c6c5 cdpeq 6, 4, cr12, cr1, cr5, {6} + 99c: 00000000 andeq r0, r0, r0 + 9a0: 00000028 andeq r0, r0, r8, lsr #32 + 9a4: ffffffff undefined instruction 0xffffffff + 9a8: 7c020003 stcvc 0, cr0, [r2], {3} + 9ac: 000d0c0e andeq r0, sp, lr, lsl #24 + 9b0: 01070007 tsteq r7, r7 + 9b4: 03070207 movweq r0, #29191 ; 0x7207 + 9b8: 05080408 streq r0, [r8, #-1032] + 9bc: 07080608 streq r0, [r8, -r8, lsl #12] + 9c0: 09080808 stmdbeq r8, {r3, fp} + 9c4: 0b080a08 bleq 2031ec + 9c8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 9cc: 0000002c andeq r0, r0, ip, lsr #32 + 9d0: 000009a0 andeq r0, r0, r0, lsr #19 + 9d4: 004027c0 subeq r2, r0, r0, asr #15 + 9d8: 000001bc strheq r0, [r0], -ip + 9dc: 84180e41 ldrhi r0, [r8], #-3649 + 9e0: 86048505 strhi r8, [r4], -r5, lsl #10 + 9e4: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 9e8: 0ecc0201 cdpeq 2, 12, cr0, cr12, cr1, {0} + 9ec: 0e094114 mcreq 1, 0, r4, cr9, cr4, {0} + 9f0: 040e4101 streq r4, [lr], #-257 + 9f4: c7c6c5c4 strbgt ip, [r6, r4, asr #11] + 9f8: 00000e41 andeq r0, r0, r1, asr #28 + 9fc: 00000028 andeq r0, r0, r8, lsr #32 + a00: ffffffff undefined instruction 0xffffffff + a04: 7c020003 stcvc 0, cr0, [r2], {3} + a08: 000d0c0e andeq r0, sp, lr, lsl #24 + a0c: 01070007 tsteq r7, r7 + a10: 03070207 movweq r0, #29191 ; 0x7207 + a14: 05080408 streq r0, [r8, #-1032] + a18: 07080608 streq r0, [r8, -r8, lsl #12] + a1c: 09080808 stmdbeq r8, {r3, fp} + a20: 0b080a08 bleq 203248 + a24: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + a28: 00000014 andeq r0, r0, r4, lsl r0 + a2c: 000009fc strdeq r0, [r0], -ip + a30: 0040297c subeq r2, r0, ip, ror r9 + a34: 0000014c andeq r0, r0, ip, asr #2 + a38: 84080e41 strhi r0, [r8], #-3649 + a3c: 00018e02 andeq r8, r1, r2, lsl #28 + a40: 00000028 andeq r0, r0, r8, lsr #32 + a44: ffffffff undefined instruction 0xffffffff + a48: 7c020003 stcvc 0, cr0, [r2], {3} + a4c: 000d0c0e andeq r0, sp, lr, lsl #24 + a50: 01070007 tsteq r7, r7 + a54: 03070207 movweq r0, #29191 ; 0x7207 + a58: 05080408 streq r0, [r8, #-1032] + a5c: 07080608 streq r0, [r8, -r8, lsl #12] + a60: 09080808 stmdbeq r8, {r3, fp} + a64: 0b080a08 bleq 20328c + a68: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + a6c: 00000020 andeq r0, r0, r0, lsr #32 + a70: 00000a40 andeq r0, r0, r0, asr #20 + a74: 00402ac8 subeq r2, r0, r8, asr #21 + a78: 00000018 andeq r0, r0, r8, lsl r0 + a7c: 0284080e addeq r0, r4, #917504 ; 0xe0000 + a80: 0942018e stmdbeq r2, {r1, r2, r3, r7, r8}^ + a84: 0e41010e dvfeqs f0, f1, #0.5 + a88: 0e41c404 cdpeq 4, 4, cr12, cr1, cr4, {0} + a8c: 00000000 andeq r0, r0, r0 + a90: 00000028 andeq r0, r0, r8, lsr #32 + a94: ffffffff undefined instruction 0xffffffff + a98: 7c020003 stcvc 0, cr0, [r2], {3} + a9c: 000d0c0e andeq r0, sp, lr, lsl #24 + aa0: 01070007 tsteq r7, r7 + aa4: 03070207 movweq r0, #29191 ; 0x7207 + aa8: 05080408 streq r0, [r8, #-1032] + aac: 07080608 streq r0, [r8, -r8, lsl #12] + ab0: 09080808 stmdbeq r8, {r3, fp} + ab4: 0b080a08 bleq 2032dc + ab8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + abc: 00000028 andeq r0, r0, r8, lsr #32 + ac0: 00000a90 muleq r0, r0, sl + ac4: 00402aec subeq r2, r0, ip, ror #21 + ac8: 00000098 muleq r0, r8, r0 + acc: 84100e41 ldrhi r0, [r0], #-3649 + ad0: 86038504 strhi r8, [r3], -r4, lsl #10 + ad4: 02018e02 andeq r8, r1, #32 ; 0x20 + ad8: 000e0945 andeq r0, lr, r5, asr #18 + adc: c4040e41 strgt r0, [r4], #-3649 + ae0: 0e41c6c5 cdpeq 6, 4, cr12, cr1, cr5, {6} + ae4: 00000000 andeq r0, r0, r0 + ae8: 00000028 andeq r0, r0, r8, lsr #32 + aec: ffffffff undefined instruction 0xffffffff + af0: 7c020003 stcvc 0, cr0, [r2], {3} + af4: 000d0c0e andeq r0, sp, lr, lsl #24 + af8: 01070007 tsteq r7, r7 + afc: 03070207 movweq r0, #29191 ; 0x7207 + b00: 05080408 streq r0, [r8, #-1032] + b04: 07080608 streq r0, [r8, -r8, lsl #12] + b08: 09080808 stmdbeq r8, {r3, fp} + b0c: 0b080a08 bleq 203334 + b10: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + b14: 00000018 andeq r0, r0, r8, lsl r0 + b18: 00000ae8 andeq r0, r0, r8, ror #21 + b1c: 00402b84 subeq r2, r0, r4, lsl #23 + b20: 00000030 andeq r0, r0, r0, lsr r0 + b24: 84080e41 strhi r0, [r8], #-3649 + b28: 040e5401 streq r5, [lr], #-1025 + b2c: 000000c4 andeq r0, r0, r4, asr #1 + b30: 00000028 andeq r0, r0, r8, lsr #32 + b34: ffffffff undefined instruction 0xffffffff + b38: 7c020003 stcvc 0, cr0, [r2], {3} + b3c: 000d0c0e andeq r0, sp, lr, lsl #24 + b40: 01070007 tsteq r7, r7 + b44: 03070207 movweq r0, #29191 ; 0x7207 + b48: 05080408 streq r0, [r8, #-1032] + b4c: 07080608 streq r0, [r8, -r8, lsl #12] + b50: 09080808 stmdbeq r8, {r3, fp} + b54: 0b080a08 bleq 20337c + b58: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + b5c: 0000000c andeq r0, r0, ip + b60: 00000b30 andeq r0, r0, r0, lsr fp + b64: 00403f3e subeq r3, r0, lr, lsr pc + b68: 00000002 andeq r0, r0, r2 + b6c: 00000028 andeq r0, r0, r8, lsr #32 + b70: ffffffff undefined instruction 0xffffffff + b74: 7c020003 stcvc 0, cr0, [r2], {3} + b78: 000d0c0e andeq r0, sp, lr, lsl #24 + b7c: 01070007 tsteq r7, r7 + b80: 03070207 movweq r0, #29191 ; 0x7207 + b84: 05080408 streq r0, [r8, #-1032] + b88: 07080608 streq r0, [r8, -r8, lsl #12] + b8c: 09080808 stmdbeq r8, {r3, fp} + b90: 0b080a08 bleq 2033b8 + b94: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + b98: 0000000c andeq r0, r0, ip + b9c: 00000b6c andeq r0, r0, ip, ror #22 + ba0: 00403f40 subeq r3, r0, r0, asr #30 + ba4: 00000002 andeq r0, r0, r2 + ba8: 00000028 andeq r0, r0, r8, lsr #32 + bac: ffffffff undefined instruction 0xffffffff + bb0: 7c020003 stcvc 0, cr0, [r2], {3} + bb4: 000d0c0e andeq r0, sp, lr, lsl #24 + bb8: 01070007 tsteq r7, r7 + bbc: 03070207 movweq r0, #29191 ; 0x7207 + bc0: 05080408 streq r0, [r8, #-1032] + bc4: 07080608 streq r0, [r8, -r8, lsl #12] + bc8: 09080808 stmdbeq r8, {r3, fp} + bcc: 0b080a08 bleq 2033f4 + bd0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + bd4: 0000000c andeq r0, r0, ip + bd8: 00000ba8 andeq r0, r0, r8, lsr #23 + bdc: 004038c8 subeq r3, r0, r8, asr #17 + be0: 00000006 andeq r0, r0, r6 + be4: 00000028 andeq r0, r0, r8, lsr #32 + be8: ffffffff undefined instruction 0xffffffff + bec: 7c020003 stcvc 0, cr0, [r2], {3} + bf0: 000d0c0e andeq r0, sp, lr, lsl #24 + bf4: 01070007 tsteq r7, r7 + bf8: 03070207 movweq r0, #29191 ; 0x7207 + bfc: 05080408 streq r0, [r8, #-1032] + c00: 07080608 streq r0, [r8, -r8, lsl #12] + c04: 09080808 stmdbeq r8, {r3, fp} + c08: 0b080a08 bleq 203430 + c0c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + c10: 0000002c andeq r0, r0, ip, lsr #32 + c14: 00000be4 andeq r0, r0, r4, ror #23 + c18: 004038d0 ldrdeq r3, [r0], #-128 + c1c: 000000a4 andeq r0, r0, r4, lsr #1 + c20: 84100e41 ldrhi r0, [r0], #-3649 + c24: 86038504 strhi r8, [r3], -r4, lsl #10 + c28: 41018e02 tstmi r1, r2, lsl #28 + c2c: 0e7e180e cdpeq 8, 7, cr1, cr14, cr14, {0} + c30: 0e094110 flteqe f1, r4 + c34: 040e4101 streq r4, [lr], #-257 + c38: 41c6c5c4 bicmi ip, r6, r4, asr #11 + c3c: 0000000e andeq r0, r0, lr + c40: 00000028 andeq r0, r0, r8, lsr #32 + c44: ffffffff undefined instruction 0xffffffff + c48: 7c020003 stcvc 0, cr0, [r2], {3} + c4c: 000d0c0e andeq r0, sp, lr, lsl #24 + c50: 01070007 tsteq r7, r7 + c54: 03070207 movweq r0, #29191 ; 0x7207 + c58: 05080408 streq r0, [r8, #-1032] + c5c: 07080608 streq r0, [r8, -r8, lsl #12] + c60: 09080808 stmdbeq r8, {r3, fp} + c64: 0b080a08 bleq 20348c + c68: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + c6c: 00000030 andeq r0, r0, r0, lsr r0 + c70: 00000c40 andeq r0, r0, r0, asr #24 + c74: 00403988 subeq r3, r0, r8, lsl #19 + c78: 00000094 muleq r0, r4, r0 + c7c: 84140e41 ldrhi r0, [r4], #-3649 + c80: 86048505 strhi r8, [r4], -r5, lsl #10 + c84: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + c88: 200e4101 andcs r4, lr, r1, lsl #2 + c8c: 41140e7f tstmi r4, pc, ror lr + c90: 41010e09 tstmi r1, r9, lsl #28 + c94: c5c4040e strbgt r0, [r4, #1038] + c98: 0e41c7c6 cdpeq 7, 4, cr12, cr1, cr6, {6} + c9c: 00000000 andeq r0, r0, r0 + ca0: 00000028 andeq r0, r0, r8, lsr #32 + ca4: ffffffff undefined instruction 0xffffffff + ca8: 7c020003 stcvc 0, cr0, [r2], {3} + cac: 000d0c0e andeq r0, sp, lr, lsl #24 + cb0: 01070007 tsteq r7, r7 + cb4: 03070207 movweq r0, #29191 ; 0x7207 + cb8: 05080408 streq r0, [r8, #-1032] + cbc: 07080608 streq r0, [r8, -r8, lsl #12] + cc0: 09080808 stmdbeq r8, {r3, fp} + cc4: 0b080a08 bleq 2034ec + cc8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + ccc: 00000024 andeq r0, r0, r4, lsr #32 + cd0: 00000ca0 andeq r0, r0, r0, lsr #25 + cd4: 0040338c subeq r3, r0, ip, lsl #7 + cd8: 0000008c andeq r0, r0, ip, lsl #1 + cdc: 84080e41 strhi r0, [r8], #-3649 + ce0: 41018e02 tstmi r1, r2, lsl #28 + ce4: 0e77180e cdpeq 8, 7, cr1, cr7, cr14, {0} + ce8: 0e094108 adfeqe f4, f1, #0.0 + cec: 040e4100 streq r4, [lr], #-256 + cf0: 000e41c4 andeq r4, lr, r4, asr #3 + cf4: 00000028 andeq r0, r0, r8, lsr #32 + cf8: ffffffff undefined instruction 0xffffffff + cfc: 7c020003 stcvc 0, cr0, [r2], {3} + d00: 000d0c0e andeq r0, sp, lr, lsl #24 + d04: 01070007 tsteq r7, r7 + d08: 03070207 movweq r0, #29191 ; 0x7207 + d0c: 05080408 streq r0, [r8, #-1032] + d10: 07080608 streq r0, [r8, -r8, lsl #12] + d14: 09080808 stmdbeq r8, {r3, fp} + d18: 0b080a08 bleq 203540 + d1c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + d20: 0000000c andeq r0, r0, ip + d24: 00000cf4 strdeq r0, [r0], -r4 + d28: 00403418 subeq r3, r0, r8, lsl r4 + d2c: 00000050 andeq r0, r0, r0, asr r0 + d30: 00000028 andeq r0, r0, r8, lsr #32 + d34: ffffffff undefined instruction 0xffffffff + d38: 7c020003 stcvc 0, cr0, [r2], {3} + d3c: 000d0c0e andeq r0, sp, lr, lsl #24 + d40: 01070007 tsteq r7, r7 + d44: 03070207 movweq r0, #29191 ; 0x7207 + d48: 05080408 streq r0, [r8, #-1032] + d4c: 07080608 streq r0, [r8, -r8, lsl #12] + d50: 09080808 stmdbeq r8, {r3, fp} + d54: 0b080a08 bleq 20357c + d58: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + d5c: 0000000c andeq r0, r0, ip + d60: 00000d30 andeq r0, r0, r0, lsr sp + d64: 0040346c subeq r3, r0, ip, ror #8 + d68: 00000002 andeq r0, r0, r2 + d6c: 00000028 andeq r0, r0, r8, lsr #32 + d70: ffffffff undefined instruction 0xffffffff + d74: 7c020003 stcvc 0, cr0, [r2], {3} + d78: 000d0c0e andeq r0, sp, lr, lsl #24 + d7c: 01070007 tsteq r7, r7 + d80: 03070207 movweq r0, #29191 ; 0x7207 + d84: 05080408 streq r0, [r8, #-1032] + d88: 07080608 streq r0, [r8, -r8, lsl #12] + d8c: 09080808 stmdbeq r8, {r3, fp} + d90: 0b080a08 bleq 2035b8 + d94: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + d98: 0000000c andeq r0, r0, ip + d9c: 00000d6c andeq r0, r0, ip, ror #26 + da0: 0040346e subeq r3, r0, lr, ror #8 + da4: 00000002 andeq r0, r0, r2 + da8: 00000028 andeq r0, r0, r8, lsr #32 + dac: ffffffff undefined instruction 0xffffffff + db0: 7c020003 stcvc 0, cr0, [r2], {3} + db4: 000d0c0e andeq r0, sp, lr, lsl #24 + db8: 01070007 tsteq r7, r7 + dbc: 03070207 movweq r0, #29191 ; 0x7207 + dc0: 05080408 streq r0, [r8, #-1032] + dc4: 07080608 streq r0, [r8, -r8, lsl #12] + dc8: 09080808 stmdbeq r8, {r3, fp} + dcc: 0b080a08 bleq 2035f4 + dd0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + dd4: 0000000c andeq r0, r0, ip + dd8: 00000da8 andeq r0, r0, r8, lsr #27 + ddc: 00403470 subeq r3, r0, r0, ror r4 + de0: 00000010 andeq r0, r0, r0, lsl r0 + de4: 00000028 andeq r0, r0, r8, lsr #32 + de8: ffffffff undefined instruction 0xffffffff + dec: 7c020003 stcvc 0, cr0, [r2], {3} + df0: 000d0c0e andeq r0, sp, lr, lsl #24 + df4: 01070007 tsteq r7, r7 + df8: 03070207 movweq r0, #29191 ; 0x7207 + dfc: 05080408 streq r0, [r8, #-1032] + e00: 07080608 streq r0, [r8, -r8, lsl #12] + e04: 09080808 stmdbeq r8, {r3, fp} + e08: 0b080a08 bleq 203630 + e0c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + e10: 0000002c andeq r0, r0, ip, lsr #32 + e14: 00000de4 andeq r0, r0, r4, ror #27 + e18: 00403480 subeq r3, r0, r0, lsl #9 + e1c: 00000046 andeq r0, r0, r6, asr #32 + e20: 84180e41 ldrhi r0, [r8], #-3649 + e24: 86038504 strhi r8, [r3], -r4, lsl #10 + e28: 41018e02 tstmi r1, r2, lsl #28 + e2c: 0e5d200e cdpeq 0, 5, cr2, cr13, cr14, {0} + e30: 0e094110 flteqe f1, r4 + e34: 040e4100 streq r4, [lr], #-256 + e38: 41c6c5c4 bicmi ip, r6, r4, asr #11 + e3c: 0000000e andeq r0, r0, lr + e40: 00000028 andeq r0, r0, r8, lsr #32 + e44: ffffffff undefined instruction 0xffffffff + e48: 7c020003 stcvc 0, cr0, [r2], {3} + e4c: 000d0c0e andeq r0, sp, lr, lsl #24 + e50: 01070007 tsteq r7, r7 + e54: 03070207 movweq r0, #29191 ; 0x7207 + e58: 05080408 streq r0, [r8, #-1032] + e5c: 07080608 streq r0, [r8, -r8, lsl #12] + e60: 09080808 stmdbeq r8, {r3, fp} + e64: 0b080a08 bleq 20368c + e68: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + e6c: 00000014 andeq r0, r0, r4, lsl r0 + e70: 00000e40 andeq r0, r0, r0, asr #28 + e74: 00403a1c subeq r3, r0, ip, lsl sl + e78: 00000014 andeq r0, r0, r4, lsl r0 + e7c: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + e80: 00000001 andeq r0, r0, r1 + e84: 00000028 andeq r0, r0, r8, lsr #32 + e88: ffffffff undefined instruction 0xffffffff + e8c: 7c020003 stcvc 0, cr0, [r2], {3} + e90: 000d0c0e andeq r0, sp, lr, lsl #24 + e94: 01070007 tsteq r7, r7 + e98: 03070207 movweq r0, #29191 ; 0x7207 + e9c: 05080408 streq r0, [r8, #-1032] + ea0: 07080608 streq r0, [r8, -r8, lsl #12] + ea4: 09080808 stmdbeq r8, {r3, fp} + ea8: 0b080a08 bleq 2036d0 + eac: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + eb0: 00000014 andeq r0, r0, r4, lsl r0 + eb4: 00000e84 andeq r0, r0, r4, lsl #29 + eb8: 00403a30 subeq r3, r0, r0, lsr sl + ebc: 0000001c andeq r0, r0, ip, lsl r0 + ec0: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + ec4: 00000001 andeq r0, r0, r1 + ec8: 00000028 andeq r0, r0, r8, lsr #32 + ecc: ffffffff undefined instruction 0xffffffff + ed0: 7c020003 stcvc 0, cr0, [r2], {3} + ed4: 000d0c0e andeq r0, sp, lr, lsl #24 + ed8: 01070007 tsteq r7, r7 + edc: 03070207 movweq r0, #29191 ; 0x7207 + ee0: 05080408 streq r0, [r8, #-1032] + ee4: 07080608 streq r0, [r8, -r8, lsl #12] + ee8: 09080808 stmdbeq r8, {r3, fp} + eec: 0b080a08 bleq 203714 + ef0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + ef4: 00000014 andeq r0, r0, r4, lsl r0 + ef8: 00000ec8 andeq r0, r0, r8, asr #29 + efc: 00403a54 subeq r3, r0, r4, asr sl + f00: 00000010 andeq r0, r0, r0, lsl r0 + f04: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + f08: 00000001 andeq r0, r0, r1 + f0c: 00000028 andeq r0, r0, r8, lsr #32 + f10: ffffffff undefined instruction 0xffffffff + f14: 7c020003 stcvc 0, cr0, [r2], {3} + f18: 000d0c0e andeq r0, sp, lr, lsl #24 + f1c: 01070007 tsteq r7, r7 + f20: 03070207 movweq r0, #29191 ; 0x7207 + f24: 05080408 streq r0, [r8, #-1032] + f28: 07080608 streq r0, [r8, -r8, lsl #12] + f2c: 09080808 stmdbeq r8, {r3, fp} + f30: 0b080a08 bleq 203758 + f34: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + f38: 00000014 andeq r0, r0, r4, lsl r0 + f3c: 00000f0c andeq r0, r0, ip, lsl #30 + f40: 00403a64 subeq r3, r0, r4, ror #20 + f44: 0000001c andeq r0, r0, ip, lsl r0 + f48: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + f4c: 00000001 andeq r0, r0, r1 + f50: 00000028 andeq r0, r0, r8, lsr #32 + f54: ffffffff undefined instruction 0xffffffff + f58: 7c020003 stcvc 0, cr0, [r2], {3} + f5c: 000d0c0e andeq r0, sp, lr, lsl #24 + f60: 01070007 tsteq r7, r7 + f64: 03070207 movweq r0, #29191 ; 0x7207 + f68: 05080408 streq r0, [r8, #-1032] + f6c: 07080608 streq r0, [r8, -r8, lsl #12] + f70: 09080808 stmdbeq r8, {r3, fp} + f74: 0b080a08 bleq 20379c + f78: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + f7c: 00000010 andeq r0, r0, r0, lsl r0 + f80: 00000f50 andeq r0, r0, r0, asr pc + f84: 00403a80 subeq r3, r0, r0, lsl #21 + f88: 00000004 andeq r0, r0, r4 + f8c: 018e080e orreq r0, lr, lr, lsl #16 + f90: 00000028 andeq r0, r0, r8, lsr #32 + f94: ffffffff undefined instruction 0xffffffff + f98: 7c020003 stcvc 0, cr0, [r2], {3} + f9c: 000d0c0e andeq r0, sp, lr, lsl #24 + fa0: 01070007 tsteq r7, r7 + fa4: 03070207 movweq r0, #29191 ; 0x7207 + fa8: 05080408 streq r0, [r8, #-1032] + fac: 07080608 streq r0, [r8, -r8, lsl #12] + fb0: 09080808 stmdbeq r8, {r3, fp} + fb4: 0b080a08 bleq 2037dc + fb8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + fbc: 00000010 andeq r0, r0, r0, lsl r0 + fc0: 00000f90 muleq r0, r0, pc + fc4: 00403a84 subeq r3, r0, r4, lsl #21 + fc8: 00000004 andeq r0, r0, r4 + fcc: 018e080e orreq r0, lr, lr, lsl #16 + fd0: 00000028 andeq r0, r0, r8, lsr #32 + fd4: ffffffff undefined instruction 0xffffffff + fd8: 7c020003 stcvc 0, cr0, [r2], {3} + fdc: 000d0c0e andeq r0, sp, lr, lsl #24 + fe0: 01070007 tsteq r7, r7 + fe4: 03070207 movweq r0, #29191 ; 0x7207 + fe8: 05080408 streq r0, [r8, #-1032] + fec: 07080608 streq r0, [r8, -r8, lsl #12] + ff0: 09080808 stmdbeq r8, {r3, fp} + ff4: 0b080a08 bleq 20381c + ff8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + ffc: 00000018 andeq r0, r0, r8, lsl r0 + 1000: 00000fd0 ldrdeq r0, [r0], -r0 + 1004: 00403a88 subeq r3, r0, r8, lsl #21 + 1008: 00000006 andeq r0, r0, r6 + 100c: 018e080e orreq r0, lr, lr, lsl #16 + 1010: 010e0941 tsteq lr, r1, asr #18 + 1014: 00000e41 andeq r0, r0, r1, asr #28 + 1018: 00000028 andeq r0, r0, r8, lsr #32 + 101c: ffffffff undefined instruction 0xffffffff + 1020: 7c020003 stcvc 0, cr0, [r2], {3} + 1024: 000d0c0e andeq r0, sp, lr, lsl #24 + 1028: 01070007 tsteq r7, r7 + 102c: 03070207 movweq r0, #29191 ; 0x7207 + 1030: 05080408 streq r0, [r8, #-1032] + 1034: 07080608 streq r0, [r8, -r8, lsl #12] + 1038: 09080808 stmdbeq r8, {r3, fp} + 103c: 0b080a08 bleq 203864 + 1040: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1044: 00000014 andeq r0, r0, r4, lsl r0 + 1048: 00001018 andeq r1, r0, r8, lsl r0 + 104c: 00403a8e subeq r3, r0, lr, lsl #21 + 1050: 00000014 andeq r0, r0, r4, lsl r0 + 1054: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 1058: 00000001 andeq r0, r0, r1 + 105c: 00000028 andeq r0, r0, r8, lsr #32 + 1060: ffffffff undefined instruction 0xffffffff + 1064: 7c020003 stcvc 0, cr0, [r2], {3} + 1068: 000d0c0e andeq r0, sp, lr, lsl #24 + 106c: 01070007 tsteq r7, r7 + 1070: 03070207 movweq r0, #29191 ; 0x7207 + 1074: 05080408 streq r0, [r8, #-1032] + 1078: 07080608 streq r0, [r8, -r8, lsl #12] + 107c: 09080808 stmdbeq r8, {r3, fp} + 1080: 0b080a08 bleq 2038a8 + 1084: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1088: 0000000c andeq r0, r0, ip + 108c: 0000105c andeq r1, r0, ip, asr r0 + 1090: 00403e70 subeq r3, r0, r0, ror lr + 1094: 00000028 andeq r0, r0, r8, lsr #32 + 1098: 00000028 andeq r0, r0, r8, lsr #32 + 109c: ffffffff undefined instruction 0xffffffff + 10a0: 7c020003 stcvc 0, cr0, [r2], {3} + 10a4: 000d0c0e andeq r0, sp, lr, lsl #24 + 10a8: 01070007 tsteq r7, r7 + 10ac: 03070207 movweq r0, #29191 ; 0x7207 + 10b0: 05080408 streq r0, [r8, #-1032] + 10b4: 07080608 streq r0, [r8, -r8, lsl #12] + 10b8: 09080808 stmdbeq r8, {r3, fp} + 10bc: 0b080a08 bleq 2038e4 + 10c0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 10c4: 00000014 andeq r0, r0, r4, lsl r0 + 10c8: 00001098 muleq r0, r8, r0 + 10cc: 00400960 subeq r0, r0, r0, ror #18 + 10d0: 00000024 andeq r0, r0, r4, lsr #32 + 10d4: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 10d8: 00000001 andeq r0, r0, r1 + 10dc: 00000028 andeq r0, r0, r8, lsr #32 + 10e0: ffffffff undefined instruction 0xffffffff + 10e4: 7c020003 stcvc 0, cr0, [r2], {3} + 10e8: 000d0c0e andeq r0, sp, lr, lsl #24 + 10ec: 01070007 tsteq r7, r7 + 10f0: 03070207 movweq r0, #29191 ; 0x7207 + 10f4: 05080408 streq r0, [r8, #-1032] + 10f8: 07080608 streq r0, [r8, -r8, lsl #12] + 10fc: 09080808 stmdbeq r8, {r3, fp} + 1100: 0b080a08 bleq 203928 + 1104: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1108: 00000014 andeq r0, r0, r4, lsl r0 + 110c: 000010dc ldrdeq r1, [r0], -ip + 1110: 00400984 subeq r0, r0, r4, lsl #19 + 1114: 00000008 andeq r0, r0, r8 + 1118: 84080e41 strhi r0, [r8], #-3649 + 111c: 00018e02 andeq r8, r1, r2, lsl #28 + 1120: 00000028 andeq r0, r0, r8, lsr #32 + 1124: ffffffff undefined instruction 0xffffffff + 1128: 7c020003 stcvc 0, cr0, [r2], {3} + 112c: 000d0c0e andeq r0, sp, lr, lsl #24 + 1130: 01070007 tsteq r7, r7 + 1134: 03070207 movweq r0, #29191 ; 0x7207 + 1138: 05080408 streq r0, [r8, #-1032] + 113c: 07080608 streq r0, [r8, -r8, lsl #12] + 1140: 09080808 stmdbeq r8, {r3, fp} + 1144: 0b080a08 bleq 20396c + 1148: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 114c: 00000014 andeq r0, r0, r4, lsl r0 + 1150: 00001120 andeq r1, r0, r0, lsr #2 + 1154: 0040098c subeq r0, r0, ip, lsl #19 + 1158: 0000001c andeq r0, r0, ip, lsl r0 + 115c: 84080e41 strhi r0, [r8], #-3649 + 1160: 00018e02 andeq r8, r1, r2, lsl #28 + 1164: 00000028 andeq r0, r0, r8, lsr #32 + 1168: ffffffff undefined instruction 0xffffffff + 116c: 7c020003 stcvc 0, cr0, [r2], {3} + 1170: 000d0c0e andeq r0, sp, lr, lsl #24 + 1174: 01070007 tsteq r7, r7 + 1178: 03070207 movweq r0, #29191 ; 0x7207 + 117c: 05080408 streq r0, [r8, #-1032] + 1180: 07080608 streq r0, [r8, -r8, lsl #12] + 1184: 09080808 stmdbeq r8, {r3, fp} + 1188: 0b080a08 bleq 2039b0 + 118c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1190: 00000020 andeq r0, r0, r0, lsr #32 + 1194: 00001164 andeq r1, r0, r4, ror #2 + 1198: 004009a8 subeq r0, r0, r8, lsr #19 + 119c: 00000014 andeq r0, r0, r4, lsl r0 + 11a0: 0284080e addeq r0, r4, #917504 ; 0xe0000 + 11a4: 0947018e stmdbeq r7, {r1, r2, r3, r7, r8}^ + 11a8: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} + 11ac: 0e41c404 cdpeq 4, 4, cr12, cr1, cr4, {0} + 11b0: 00000000 andeq r0, r0, r0 + 11b4: 00000028 andeq r0, r0, r8, lsr #32 + 11b8: ffffffff undefined instruction 0xffffffff + 11bc: 7c020003 stcvc 0, cr0, [r2], {3} + 11c0: 000d0c0e andeq r0, sp, lr, lsl #24 + 11c4: 01070007 tsteq r7, r7 + 11c8: 03070207 movweq r0, #29191 ; 0x7207 + 11cc: 05080408 streq r0, [r8, #-1032] + 11d0: 07080608 streq r0, [r8, -r8, lsl #12] + 11d4: 09080808 stmdbeq r8, {r3, fp} + 11d8: 0b080a08 bleq 203a00 + 11dc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 11e0: 0000001c andeq r0, r0, ip, lsl r0 + 11e4: 000011b4 strheq r1, [r0], -r4 + 11e8: 004009bc strheq r0, [r0], #-156 + 11ec: 0000006c andeq r0, r0, ip, rrx + 11f0: 84180e41 ldrhi r0, [r8], #-3649 + 11f4: 86048505 strhi r8, [r4], -r5, lsl #10 + 11f8: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 11fc: 200e4101 andcs r4, lr, r1, lsl #2 + 1200: 00000028 andeq r0, r0, r8, lsr #32 + 1204: ffffffff undefined instruction 0xffffffff + 1208: 7c020003 stcvc 0, cr0, [r2], {3} + 120c: 000d0c0e andeq r0, sp, lr, lsl #24 + 1210: 01070007 tsteq r7, r7 + 1214: 03070207 movweq r0, #29191 ; 0x7207 + 1218: 05080408 streq r0, [r8, #-1032] + 121c: 07080608 streq r0, [r8, -r8, lsl #12] + 1220: 09080808 stmdbeq r8, {r3, fp} + 1224: 0b080a08 bleq 203a4c + 1228: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 122c: 00000014 andeq r0, r0, r4, lsl r0 + 1230: 00001200 andeq r1, r0, r0, lsl #4 + 1234: 00400a28 subeq r0, r0, r8, lsr #20 + 1238: 0000002c andeq r0, r0, ip, lsr #32 + 123c: 8e040e41 cdphi 14, 0, cr0, cr4, cr1, {2} + 1240: 680e4101 stmdavs lr, {r0, r8, lr} + 1244: 00000028 andeq r0, r0, r8, lsr #32 + 1248: ffffffff undefined instruction 0xffffffff + 124c: 7c020003 stcvc 0, cr0, [r2], {3} + 1250: 000d0c0e andeq r0, sp, lr, lsl #24 + 1254: 01070007 tsteq r7, r7 + 1258: 03070207 movweq r0, #29191 ; 0x7207 + 125c: 05080408 streq r0, [r8, #-1032] + 1260: 07080608 streq r0, [r8, -r8, lsl #12] + 1264: 09080808 stmdbeq r8, {r3, fp} + 1268: 0b080a08 bleq 203a90 + 126c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1270: 00000020 andeq r0, r0, r0, lsr #32 + 1274: 00001244 andeq r1, r0, r4, asr #4 + 1278: 00400a58 subeq r0, r0, r8, asr sl + 127c: 000001f4 strdeq r0, [r0], -r4 + 1280: 84180e41 ldrhi r0, [r8], #-3649 + 1284: 86048505 strhi r8, [r4], -r5, lsl #10 + 1288: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 128c: 0edd0201 cdpeq 2, 13, cr0, cr13, cr1, {0} + 1290: 00000014 andeq r0, r0, r4, lsl r0 + 1294: 00000028 andeq r0, r0, r8, lsr #32 + 1298: ffffffff undefined instruction 0xffffffff + 129c: 7c020003 stcvc 0, cr0, [r2], {3} + 12a0: 000d0c0e andeq r0, sp, lr, lsl #24 + 12a4: 01070007 tsteq r7, r7 + 12a8: 03070207 movweq r0, #29191 ; 0x7207 + 12ac: 05080408 streq r0, [r8, #-1032] + 12b0: 07080608 streq r0, [r8, -r8, lsl #12] + 12b4: 09080808 stmdbeq r8, {r3, fp} + 12b8: 0b080a08 bleq 203ae0 + 12bc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 12c0: 0000000c andeq r0, r0, ip + 12c4: 00001294 muleq r0, r4, r2 + 12c8: 00400c50 subeq r0, r0, r0, asr ip + 12cc: 00000028 andeq r0, r0, r8, lsr #32 + 12d0: 00000028 andeq r0, r0, r8, lsr #32 + 12d4: ffffffff undefined instruction 0xffffffff + 12d8: 7c020003 stcvc 0, cr0, [r2], {3} + 12dc: 000d0c0e andeq r0, sp, lr, lsl #24 + 12e0: 01070007 tsteq r7, r7 + 12e4: 03070207 movweq r0, #29191 ; 0x7207 + 12e8: 05080408 streq r0, [r8, #-1032] + 12ec: 07080608 streq r0, [r8, -r8, lsl #12] + 12f0: 09080808 stmdbeq r8, {r3, fp} + 12f4: 0b080a08 bleq 203b1c + 12f8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 12fc: 00000038 andeq r0, r0, r8, lsr r0 + 1300: 000012d0 ldrdeq r1, [r0], -r0 + 1304: 00400c78 subeq r0, r0, r8, ror ip + 1308: 000001ac andeq r0, r0, ip, lsr #3 + 130c: 84100e41 ldrhi r0, [r0], #-3649 + 1310: 86038504 strhi r8, [r3], -r4, lsl #10 + 1314: 41018e02 tstmi r1, r2, lsl #28 + 1318: 9002200e andls r2, r2, lr + 131c: 0941100e stmdbeq r1, {r1, r2, r3, ip}^ + 1320: 0e41000e cdpeq 0, 4, cr0, cr1, cr14, {0} + 1324: c6c5c404 strbgt ip, [r5], r4, lsl #8 + 1328: 41000e41 tstmi r0, r1, asr #28 + 132c: 0484200e streq r2, [r4], #14 + 1330: 02860385 addeq r0, r6, #335544322 ; 0x14000002 + 1334: 0000018e andeq r0, r0, lr, lsl #3 + 1338: 00000028 andeq r0, r0, r8, lsr #32 + 133c: ffffffff undefined instruction 0xffffffff + 1340: 7c020003 stcvc 0, cr0, [r2], {3} + 1344: 000d0c0e andeq r0, sp, lr, lsl #24 + 1348: 01070007 tsteq r7, r7 + 134c: 03070207 movweq r0, #29191 ; 0x7207 + 1350: 05080408 streq r0, [r8, #-1032] + 1354: 07080608 streq r0, [r8, -r8, lsl #12] + 1358: 09080808 stmdbeq r8, {r3, fp} + 135c: 0b080a08 bleq 203b84 + 1360: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1364: 00000014 andeq r0, r0, r4, lsl r0 + 1368: 00001338 andeq r1, r0, r8, lsr r3 + 136c: 00400e24 subeq r0, r0, r4, lsr #28 + 1370: 00000014 andeq r0, r0, r4, lsl r0 + 1374: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 1378: 00000001 andeq r0, r0, r1 + 137c: 00000028 andeq r0, r0, r8, lsr #32 + 1380: ffffffff undefined instruction 0xffffffff + 1384: 7c020003 stcvc 0, cr0, [r2], {3} + 1388: 000d0c0e andeq r0, sp, lr, lsl #24 + 138c: 01070007 tsteq r7, r7 + 1390: 03070207 movweq r0, #29191 ; 0x7207 + 1394: 05080408 streq r0, [r8, #-1032] + 1398: 07080608 streq r0, [r8, -r8, lsl #12] + 139c: 09080808 stmdbeq r8, {r3, fp} + 13a0: 0b080a08 bleq 203bc8 + 13a4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 13a8: 00000014 andeq r0, r0, r4, lsl r0 + 13ac: 0000137c andeq r1, r0, ip, ror r3 + 13b0: 00400e38 subeq r0, r0, r8, lsr lr + 13b4: 00000010 andeq r0, r0, r0, lsl r0 + 13b8: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 13bc: 00000001 andeq r0, r0, r1 + 13c0: 00000028 andeq r0, r0, r8, lsr #32 + 13c4: ffffffff undefined instruction 0xffffffff + 13c8: 7c020003 stcvc 0, cr0, [r2], {3} + 13cc: 000d0c0e andeq r0, sp, lr, lsl #24 + 13d0: 01070007 tsteq r7, r7 + 13d4: 03070207 movweq r0, #29191 ; 0x7207 + 13d8: 05080408 streq r0, [r8, #-1032] + 13dc: 07080608 streq r0, [r8, -r8, lsl #12] + 13e0: 09080808 stmdbeq r8, {r3, fp} + 13e4: 0b080a08 bleq 203c0c + 13e8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 13ec: 00000010 andeq r0, r0, r0, lsl r0 + 13f0: 000013c0 andeq r1, r0, r0, asr #7 + 13f4: 00400e48 subeq r0, r0, r8, asr #28 + 13f8: 00000004 andeq r0, r0, r4 + 13fc: 018e080e orreq r0, lr, lr, lsl #16 + 1400: 00000028 andeq r0, r0, r8, lsr #32 + 1404: ffffffff undefined instruction 0xffffffff + 1408: 7c020003 stcvc 0, cr0, [r2], {3} + 140c: 000d0c0e andeq r0, sp, lr, lsl #24 + 1410: 01070007 tsteq r7, r7 + 1414: 03070207 movweq r0, #29191 ; 0x7207 + 1418: 05080408 streq r0, [r8, #-1032] + 141c: 07080608 streq r0, [r8, -r8, lsl #12] + 1420: 09080808 stmdbeq r8, {r3, fp} + 1424: 0b080a08 bleq 203c4c + 1428: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 142c: 00000018 andeq r0, r0, r8, lsl r0 + 1430: 00001400 andeq r1, r0, r0, lsl #8 + 1434: 00400e4c subeq r0, r0, ip, asr #28 + 1438: 00000006 andeq r0, r0, r6 + 143c: 018e080e orreq r0, lr, lr, lsl #16 + 1440: 000e0941 andeq r0, lr, r1, asr #18 + 1444: 00000e41 andeq r0, r0, r1, asr #28 + 1448: 00000028 andeq r0, r0, r8, lsr #32 + 144c: ffffffff undefined instruction 0xffffffff + 1450: 7c020003 stcvc 0, cr0, [r2], {3} + 1454: 000d0c0e andeq r0, sp, lr, lsl #24 + 1458: 01070007 tsteq r7, r7 + 145c: 03070207 movweq r0, #29191 ; 0x7207 + 1460: 05080408 streq r0, [r8, #-1032] + 1464: 07080608 streq r0, [r8, -r8, lsl #12] + 1468: 09080808 stmdbeq r8, {r3, fp} + 146c: 0b080a08 bleq 203c94 + 1470: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1474: 00000014 andeq r0, r0, r4, lsl r0 + 1478: 00001448 andeq r1, r0, r8, asr #8 + 147c: 00400e58 subeq r0, r0, r8, asr lr + 1480: 00000014 andeq r0, r0, r4, lsl r0 + 1484: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 1488: 00000001 andeq r0, r0, r1 + 148c: 00000028 andeq r0, r0, r8, lsr #32 + 1490: ffffffff undefined instruction 0xffffffff + 1494: 7c020003 stcvc 0, cr0, [r2], {3} + 1498: 000d0c0e andeq r0, sp, lr, lsl #24 + 149c: 01070007 tsteq r7, r7 + 14a0: 03070207 movweq r0, #29191 ; 0x7207 + 14a4: 05080408 streq r0, [r8, #-1032] + 14a8: 07080608 streq r0, [r8, -r8, lsl #12] + 14ac: 09080808 stmdbeq r8, {r3, fp} + 14b0: 0b080a08 bleq 203cd8 + 14b4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 14b8: 00000014 andeq r0, r0, r4, lsl r0 + 14bc: 0000148c andeq r1, r0, ip, lsl #9 + 14c0: 00400e6c subeq r0, r0, ip, ror #28 + 14c4: 00000014 andeq r0, r0, r4, lsl r0 + 14c8: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 14cc: 00000001 andeq r0, r0, r1 + 14d0: 00000028 andeq r0, r0, r8, lsr #32 + 14d4: ffffffff undefined instruction 0xffffffff + 14d8: 7c020003 stcvc 0, cr0, [r2], {3} + 14dc: 000d0c0e andeq r0, sp, lr, lsl #24 + 14e0: 01070007 tsteq r7, r7 + 14e4: 03070207 movweq r0, #29191 ; 0x7207 + 14e8: 05080408 streq r0, [r8, #-1032] + 14ec: 07080608 streq r0, [r8, -r8, lsl #12] + 14f0: 09080808 stmdbeq r8, {r3, fp} + 14f4: 0b080a08 bleq 203d1c + 14f8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 14fc: 0000003c andeq r0, r0, ip, lsr r0 + 1500: 000014d0 ldrdeq r1, [r0], -r0 + 1504: 00400e80 subeq r0, r0, r0, lsl #29 + 1508: 0000015c andeq r0, r0, ip, asr r1 + 150c: 84180e41 ldrhi r0, [r8], #-3649 + 1510: 86048505 strhi r8, [r4], -r5, lsl #10 + 1514: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1518: 200e6d01 andcs r6, lr, r1, lsl #26 + 151c: 5d180e46 ldcpl 14, cr0, [r8, #-280] + 1520: 0e46200e cdpeq 0, 4, cr2, cr6, cr14, {0} + 1524: 200e6a18 andcs r6, lr, r8, lsl sl + 1528: 59180e46 ldmdbpl r8, {r1, r2, r6, r9, sl, fp} + 152c: 0941140e stmdbeq r1, {r1, r2, r3, sl, ip}^ + 1530: 0e41010e dvfeqs f0, f1, #0.5 + 1534: c6c5c404 strbgt ip, [r5], r4, lsl #8 + 1538: 000e41c7 andeq r4, lr, r7, asr #3 + 153c: 00000028 andeq r0, r0, r8, lsr #32 + 1540: ffffffff undefined instruction 0xffffffff + 1544: 7c020003 stcvc 0, cr0, [r2], {3} + 1548: 000d0c0e andeq r0, sp, lr, lsl #24 + 154c: 01070007 tsteq r7, r7 + 1550: 03070207 movweq r0, #29191 ; 0x7207 + 1554: 05080408 streq r0, [r8, #-1032] + 1558: 07080608 streq r0, [r8, -r8, lsl #12] + 155c: 09080808 stmdbeq r8, {r3, fp} + 1560: 0b080a08 bleq 203d88 + 1564: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1568: 00000020 andeq r0, r0, r0, lsr #32 + 156c: 0000153c andeq r1, r0, ip, lsr r5 + 1570: 00400fdc ldrdeq r0, [r0], #-252 + 1574: 000000b0 strheq r0, [r0], -r0 + 1578: 84140e41 ldrhi r0, [r4], #-3649 + 157c: 86048505 strhi r8, [r4], -r5, lsl #10 + 1580: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1584: 280e4101 stmdacs lr, {r0, r8, lr} + 1588: 140e4902 strne r4, [lr], #-2306 + 158c: 00000028 andeq r0, r0, r8, lsr #32 + 1590: ffffffff undefined instruction 0xffffffff + 1594: 7c020003 stcvc 0, cr0, [r2], {3} + 1598: 000d0c0e andeq r0, sp, lr, lsl #24 + 159c: 01070007 tsteq r7, r7 + 15a0: 03070207 movweq r0, #29191 ; 0x7207 + 15a4: 05080408 streq r0, [r8, #-1032] + 15a8: 07080608 streq r0, [r8, -r8, lsl #12] + 15ac: 09080808 stmdbeq r8, {r3, fp} + 15b0: 0b080a08 bleq 203dd8 + 15b4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 15b8: 0000001c andeq r0, r0, ip, lsl r0 + 15bc: 0000158c andeq r1, r0, ip, lsl #11 + 15c0: 0040108c subeq r1, r0, ip, lsl #1 + 15c4: 000001e4 andeq r0, r0, r4, ror #3 + 15c8: 84140e41 ldrhi r0, [r4], #-3649 + 15cc: 86048505 strhi r8, [r4], -r5, lsl #10 + 15d0: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 15d4: 200e4101 andcs r4, lr, r1, lsl #2 + 15d8: 00000028 andeq r0, r0, r8, lsr #32 + 15dc: ffffffff undefined instruction 0xffffffff + 15e0: 7c020003 stcvc 0, cr0, [r2], {3} + 15e4: 000d0c0e andeq r0, sp, lr, lsl #24 + 15e8: 01070007 tsteq r7, r7 + 15ec: 03070207 movweq r0, #29191 ; 0x7207 + 15f0: 05080408 streq r0, [r8, #-1032] + 15f4: 07080608 streq r0, [r8, -r8, lsl #12] + 15f8: 09080808 stmdbeq r8, {r3, fp} + 15fc: 0b080a08 bleq 203e24 + 1600: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1604: 0000001c andeq r0, r0, ip, lsl r0 + 1608: 000015d8 ldrdeq r1, [r0], -r8 + 160c: 00401270 subeq r1, r0, r0, ror r2 + 1610: 00000004 andeq r0, r0, r4 + 1614: 0584200e streq r2, [r4, #14] + 1618: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 + 161c: 018e0287 orreq r0, lr, r7, lsl #5 + 1620: 00140e41 andseq r0, r4, r1, asr #28 + 1624: 00000028 andeq r0, r0, r8, lsr #32 + 1628: ffffffff undefined instruction 0xffffffff + 162c: 7c020003 stcvc 0, cr0, [r2], {3} + 1630: 000d0c0e andeq r0, sp, lr, lsl #24 + 1634: 01070007 tsteq r7, r7 + 1638: 03070207 movweq r0, #29191 ; 0x7207 + 163c: 05080408 streq r0, [r8, #-1032] + 1640: 07080608 streq r0, [r8, -r8, lsl #12] + 1644: 09080808 stmdbeq r8, {r3, fp} + 1648: 0b080a08 bleq 203e70 + 164c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1650: 00000028 andeq r0, r0, r8, lsr #32 + 1654: 00001624 andeq r1, r0, r4, lsr #12 + 1658: 00401274 subeq r1, r0, r4, ror r2 + 165c: 0000000c andeq r0, r0, ip + 1660: 0584140e streq r1, [r4, #1038] + 1664: 03860485 orreq r0, r6, #-2063597568 ; 0x85000000 + 1668: 018e0287 orreq r0, lr, r7, lsl #5 + 166c: 000e0941 andeq r0, lr, r1, asr #18 + 1670: c4040e41 strgt r0, [r4], #-3649 + 1674: 41c7c6c5 bicmi ip, r7, r5, asr #13 + 1678: 0000000e andeq r0, r0, lr + 167c: 00000028 andeq r0, r0, r8, lsr #32 + 1680: ffffffff undefined instruction 0xffffffff + 1684: 7c020003 stcvc 0, cr0, [r2], {3} + 1688: 000d0c0e andeq r0, sp, lr, lsl #24 + 168c: 01070007 tsteq r7, r7 + 1690: 03070207 movweq r0, #29191 ; 0x7207 + 1694: 05080408 streq r0, [r8, #-1032] + 1698: 07080608 streq r0, [r8, -r8, lsl #12] + 169c: 09080808 stmdbeq r8, {r3, fp} + 16a0: 0b080a08 bleq 203ec8 + 16a4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 16a8: 00000020 andeq r0, r0, r0, lsr #32 + 16ac: 0000167c andeq r1, r0, ip, ror r6 + 16b0: 00401280 subeq r1, r0, r0, lsl #5 + 16b4: 000001b2 strheq r0, [r0], -r2 + 16b8: 84180e41 ldrhi r0, [r8], #-3649 + 16bc: 86048505 strhi r8, [r4], -r5, lsl #10 + 16c0: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 16c4: 0ed70201 cdpeq 2, 13, cr0, cr7, cr1, {0} + 16c8: 00000014 andeq r0, r0, r4, lsl r0 + 16cc: 00000028 andeq r0, r0, r8, lsr #32 + 16d0: ffffffff undefined instruction 0xffffffff + 16d4: 7c020003 stcvc 0, cr0, [r2], {3} + 16d8: 000d0c0e andeq r0, sp, lr, lsl #24 + 16dc: 01070007 tsteq r7, r7 + 16e0: 03070207 movweq r0, #29191 ; 0x7207 + 16e4: 05080408 streq r0, [r8, #-1032] + 16e8: 07080608 streq r0, [r8, -r8, lsl #12] + 16ec: 09080808 stmdbeq r8, {r3, fp} + 16f0: 0b080a08 bleq 203f18 + 16f4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 16f8: 00000020 andeq r0, r0, r0, lsr #32 + 16fc: 000016cc andeq r1, r0, ip, asr #13 + 1700: 00401434 subeq r1, r0, r4, lsr r4 + 1704: 00000278 andeq r0, r0, r8, ror r2 + 1708: 84180e41 ldrhi r0, [r8], #-3649 + 170c: 86048505 strhi r8, [r4], -r5, lsl #10 + 1710: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1714: 0e860201 cdpeq 2, 8, cr0, cr6, cr1, {0} + 1718: 180e4114 stmdane lr, {r2, r4, r8, lr} + 171c: 00000028 andeq r0, r0, r8, lsr #32 + 1720: ffffffff undefined instruction 0xffffffff + 1724: 7c020003 stcvc 0, cr0, [r2], {3} + 1728: 000d0c0e andeq r0, sp, lr, lsl #24 + 172c: 01070007 tsteq r7, r7 + 1730: 03070207 movweq r0, #29191 ; 0x7207 + 1734: 05080408 streq r0, [r8, #-1032] + 1738: 07080608 streq r0, [r8, -r8, lsl #12] + 173c: 09080808 stmdbeq r8, {r3, fp} + 1740: 0b080a08 bleq 203f68 + 1744: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1748: 00000020 andeq r0, r0, r0, lsr #32 + 174c: 0000171c andeq r1, r0, ip, lsl r7 + 1750: 004016ac subeq r1, r0, ip, lsr #13 + 1754: 00000134 andeq r0, r0, r4, lsr r1 + 1758: 84180e41 ldrhi r0, [r8], #-3649 + 175c: 86048505 strhi r8, [r4], -r5, lsl #10 + 1760: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1764: 0e870201 cdpeq 2, 8, cr0, cr7, cr1, {0} + 1768: 00000014 andeq r0, r0, r4, lsl r0 + 176c: 00000028 andeq r0, r0, r8, lsr #32 + 1770: ffffffff undefined instruction 0xffffffff + 1774: 7c020003 stcvc 0, cr0, [r2], {3} + 1778: 000d0c0e andeq r0, sp, lr, lsl #24 + 177c: 01070007 tsteq r7, r7 + 1780: 03070207 movweq r0, #29191 ; 0x7207 + 1784: 05080408 streq r0, [r8, #-1032] + 1788: 07080608 streq r0, [r8, -r8, lsl #12] + 178c: 09080808 stmdbeq r8, {r3, fp} + 1790: 0b080a08 bleq 203fb8 + 1794: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1798: 0000001c andeq r0, r0, ip, lsl r0 + 179c: 0000176c andeq r1, r0, ip, ror #14 + 17a0: 004017e0 subeq r1, r0, r0, ror #15 + 17a4: 0000002c andeq r0, r0, ip, lsr #32 + 17a8: 8e040e41 cdphi 14, 0, cr0, cr4, cr1, {2} + 17ac: 100e4101 andne r4, lr, r1, lsl #2 + 17b0: 000e094f andeq r0, lr, pc, asr #18 + 17b4: 00000e41 andeq r0, r0, r1, asr #28 + 17b8: 00000028 andeq r0, r0, r8, lsr #32 + 17bc: ffffffff undefined instruction 0xffffffff + 17c0: 7c020003 stcvc 0, cr0, [r2], {3} + 17c4: 000d0c0e andeq r0, sp, lr, lsl #24 + 17c8: 01070007 tsteq r7, r7 + 17cc: 03070207 movweq r0, #29191 ; 0x7207 + 17d0: 05080408 streq r0, [r8, #-1032] + 17d4: 07080608 streq r0, [r8, -r8, lsl #12] + 17d8: 09080808 stmdbeq r8, {r3, fp} + 17dc: 0b080a08 bleq 204004 + 17e0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 17e4: 0000001c andeq r0, r0, ip, lsl r0 + 17e8: 000017b8 strheq r1, [r0], -r8 + 17ec: 0040180c subeq r1, r0, ip, lsl #16 + 17f0: 00000038 andeq r0, r0, r8, lsr r0 + 17f4: 84100e41 ldrhi r0, [r0], #-3649 + 17f8: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + 17fc: 180e5201 stmdane lr, {r0, r9, ip, lr} + 1800: 00100e48 andseq r0, r0, r8, asr #28 + 1804: 00000028 andeq r0, r0, r8, lsr #32 + 1808: ffffffff undefined instruction 0xffffffff + 180c: 7c020003 stcvc 0, cr0, [r2], {3} + 1810: 000d0c0e andeq r0, sp, lr, lsl #24 + 1814: 01070007 tsteq r7, r7 + 1818: 03070207 movweq r0, #29191 ; 0x7207 + 181c: 05080408 streq r0, [r8, #-1032] + 1820: 07080608 streq r0, [r8, -r8, lsl #12] + 1824: 09080808 stmdbeq r8, {r3, fp} + 1828: 0b080a08 bleq 204050 + 182c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1830: 00000024 andeq r0, r0, r4, lsr #32 + 1834: 00001804 andeq r1, r0, r4, lsl #16 + 1838: 00401844 subeq r1, r0, r4, asr #16 + 183c: 0000000a andeq r0, r0, sl + 1840: 0384100e orreq r1, r4, #14 ; 0xe + 1844: 018e0285 orreq r0, lr, r5, lsl #5 + 1848: 410c0e41 tstmi ip, r1, asr #28 + 184c: 41000e09 tstmi r0, r9, lsl #28 + 1850: c5c4040e strbgt r0, [r4, #1038] + 1854: 00000e41 andeq r0, r0, r1, asr #28 + 1858: 00000028 andeq r0, r0, r8, lsr #32 + 185c: ffffffff undefined instruction 0xffffffff + 1860: 7c020003 stcvc 0, cr0, [r2], {3} + 1864: 000d0c0e andeq r0, sp, lr, lsl #24 + 1868: 01070007 tsteq r7, r7 + 186c: 03070207 movweq r0, #29191 ; 0x7207 + 1870: 05080408 streq r0, [r8, #-1032] + 1874: 07080608 streq r0, [r8, -r8, lsl #12] + 1878: 09080808 stmdbeq r8, {r3, fp} + 187c: 0b080a08 bleq 2040a4 + 1880: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1884: 00000018 andeq r0, r0, r8, lsl r0 + 1888: 00001858 andeq r1, r0, r8, asr r8 + 188c: 00401854 subeq r1, r0, r4, asr r8 + 1890: 00000020 andeq r0, r0, r0, lsr #32 + 1894: 8e080e41 cdphi 14, 0, cr0, cr8, cr1, {2} + 1898: 100e4301 andne r4, lr, r1, lsl #6 + 189c: 00080e48 andeq r0, r8, r8, asr #28 + 18a0: 00000028 andeq r0, r0, r8, lsr #32 + 18a4: ffffffff undefined instruction 0xffffffff + 18a8: 7c020003 stcvc 0, cr0, [r2], {3} + 18ac: 000d0c0e andeq r0, sp, lr, lsl #24 + 18b0: 01070007 tsteq r7, r7 + 18b4: 03070207 movweq r0, #29191 ; 0x7207 + 18b8: 05080408 streq r0, [r8, #-1032] + 18bc: 07080608 streq r0, [r8, -r8, lsl #12] + 18c0: 09080808 stmdbeq r8, {r3, fp} + 18c4: 0b080a08 bleq 2040ec + 18c8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 18cc: 00000018 andeq r0, r0, r8, lsl r0 + 18d0: 000018a0 andeq r1, r0, r0, lsr #17 + 18d4: 00401874 subeq r1, r0, r4, ror r8 + 18d8: 000000c4 andeq r0, r0, r4, asr #1 + 18dc: 84100e41 ldrhi r0, [r0], #-3649 + 18e0: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + 18e4: 00000001 andeq r0, r0, r1 + 18e8: 00000028 andeq r0, r0, r8, lsr #32 + 18ec: ffffffff undefined instruction 0xffffffff + 18f0: 7c020003 stcvc 0, cr0, [r2], {3} + 18f4: 000d0c0e andeq r0, sp, lr, lsl #24 + 18f8: 01070007 tsteq r7, r7 + 18fc: 03070207 movweq r0, #29191 ; 0x7207 + 1900: 05080408 streq r0, [r8, #-1032] + 1904: 07080608 streq r0, [r8, -r8, lsl #12] + 1908: 09080808 stmdbeq r8, {r3, fp} + 190c: 0b080a08 bleq 204134 + 1910: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1914: 00000024 andeq r0, r0, r4, lsr #32 + 1918: 000018e8 andeq r1, r0, r8, ror #17 + 191c: 00401938 subeq r1, r0, r8, lsr r9 + 1920: 0000002a andeq r0, r0, sl, lsr #32 + 1924: 84100e41 ldrhi r0, [r0], #-3649 + 1928: 8e028503 cfsh32hi mvfx8, mvfx2, #3 + 192c: 0c0e5001 stceq 0, cr5, [lr], {1} + 1930: 010e0941 tsteq lr, r1, asr #18 + 1934: c4040e41 strgt r0, [r4], #-3649 + 1938: 000e41c5 andeq r4, lr, r5, asr #3 + 193c: 00000028 andeq r0, r0, r8, lsr #32 + 1940: ffffffff undefined instruction 0xffffffff + 1944: 7c020003 stcvc 0, cr0, [r2], {3} + 1948: 000d0c0e andeq r0, sp, lr, lsl #24 + 194c: 01070007 tsteq r7, r7 + 1950: 03070207 movweq r0, #29191 ; 0x7207 + 1954: 05080408 streq r0, [r8, #-1032] + 1958: 07080608 streq r0, [r8, -r8, lsl #12] + 195c: 09080808 stmdbeq r8, {r3, fp} + 1960: 0b080a08 bleq 204188 + 1964: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1968: 0000002c andeq r0, r0, ip, lsr #32 + 196c: 0000193c andeq r1, r0, ip, lsr r9 + 1970: 00402fbc strheq r2, [r0], #-252 + 1974: 00000108 andeq r0, r0, r8, lsl #2 + 1978: 84180e41 ldrhi r0, [r8], #-3649 + 197c: 86048505 strhi r8, [r4], -r5, lsl #10 + 1980: 8e028703 cdphi 7, 0, cr8, cr2, cr3, {0} + 1984: 0e720201 cdpeq 2, 7, cr0, cr2, cr1, {0} + 1988: 0e094114 mcreq 1, 0, r4, cr9, cr4, {0} + 198c: 040e4100 streq r4, [lr], #-256 + 1990: c7c6c5c4 strbgt ip, [r6, r4, asr #11] + 1994: 00000e41 andeq r0, r0, r1, asr #28 + 1998: 00000028 andeq r0, r0, r8, lsr #32 + 199c: ffffffff undefined instruction 0xffffffff + 19a0: 7c020003 stcvc 0, cr0, [r2], {3} + 19a4: 000d0c0e andeq r0, sp, lr, lsl #24 + 19a8: 01070007 tsteq r7, r7 + 19ac: 03070207 movweq r0, #29191 ; 0x7207 + 19b0: 05080408 streq r0, [r8, #-1032] + 19b4: 07080608 streq r0, [r8, -r8, lsl #12] + 19b8: 09080808 stmdbeq r8, {r3, fp} + 19bc: 0b080a08 bleq 2041e4 + 19c0: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 19c4: 0000000c andeq r0, r0, ip + 19c8: 00001998 muleq r0, r8, r9 + 19cc: 004030c4 subeq r3, r0, r4, asr #1 + 19d0: 00000028 andeq r0, r0, r8, lsr #32 + 19d4: 00000028 andeq r0, r0, r8, lsr #32 + 19d8: ffffffff undefined instruction 0xffffffff + 19dc: 7c020003 stcvc 0, cr0, [r2], {3} + 19e0: 000d0c0e andeq r0, sp, lr, lsl #24 + 19e4: 01070007 tsteq r7, r7 + 19e8: 03070207 movweq r0, #29191 ; 0x7207 + 19ec: 05080408 streq r0, [r8, #-1032] + 19f0: 07080608 streq r0, [r8, -r8, lsl #12] + 19f4: 09080808 stmdbeq r8, {r3, fp} + 19f8: 0b080a08 bleq 204220 + 19fc: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1a00: 00000018 andeq r0, r0, r8, lsl r0 + 1a04: 000019d4 ldrdeq r1, [r0], -r4 + 1a08: 004030ec subeq r3, r0, ip, ror #1 + 1a0c: 00000040 andeq r0, r0, r0, asr #32 + 1a10: 84080e41 strhi r0, [r8], #-3649 + 1a14: 5c018502 cfstr32pl mvfx8, [r1], {2} + 1a18: c5c4000e strbgt r0, [r4, #14] + 1a1c: 00000028 andeq r0, r0, r8, lsr #32 + 1a20: ffffffff undefined instruction 0xffffffff + 1a24: 7c020003 stcvc 0, cr0, [r2], {3} + 1a28: 000d0c0e andeq r0, sp, lr, lsl #24 + 1a2c: 01070007 tsteq r7, r7 + 1a30: 03070207 movweq r0, #29191 ; 0x7207 + 1a34: 05080408 streq r0, [r8, #-1032] + 1a38: 07080608 streq r0, [r8, -r8, lsl #12] + 1a3c: 09080808 stmdbeq r8, {r3, fp} + 1a40: 0b080a08 bleq 204268 + 1a44: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1a48: 00000018 andeq r0, r0, r8, lsl r0 + 1a4c: 00001a1c andeq r1, r0, ip, lsl sl + 1a50: 0040312c subeq r3, r0, ip, lsr #2 + 1a54: 00000038 andeq r0, r0, r8, lsr r0 + 1a58: 84080e41 strhi r0, [r8], #-3649 + 1a5c: 58018502 stmdapl r1, {r1, r8, sl, pc} + 1a60: c5c4000e strbgt r0, [r4, #14] + 1a64: 00000028 andeq r0, r0, r8, lsr #32 + 1a68: ffffffff undefined instruction 0xffffffff + 1a6c: 7c020003 stcvc 0, cr0, [r2], {3} + 1a70: 000d0c0e andeq r0, sp, lr, lsl #24 + 1a74: 01070007 tsteq r7, r7 + 1a78: 03070207 movweq r0, #29191 ; 0x7207 + 1a7c: 05080408 streq r0, [r8, #-1032] + 1a80: 07080608 streq r0, [r8, -r8, lsl #12] + 1a84: 09080808 stmdbeq r8, {r3, fp} + 1a88: 0b080a08 bleq 2042b0 + 1a8c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1a90: 0000000c andeq r0, r0, ip + 1a94: 00001a64 andeq r1, r0, r4, ror #20 + 1a98: 0040316c subeq r3, r0, ip, ror #2 + 1a9c: 0000001c andeq r0, r0, ip, lsl r0 + 1aa0: 00000028 andeq r0, r0, r8, lsr #32 + 1aa4: ffffffff undefined instruction 0xffffffff + 1aa8: 7c020003 stcvc 0, cr0, [r2], {3} + 1aac: 000d0c0e andeq r0, sp, lr, lsl #24 + 1ab0: 01070007 tsteq r7, r7 + 1ab4: 03070207 movweq r0, #29191 ; 0x7207 + 1ab8: 05080408 streq r0, [r8, #-1032] + 1abc: 07080608 streq r0, [r8, -r8, lsl #12] + 1ac0: 09080808 stmdbeq r8, {r3, fp} + 1ac4: 0b080a08 bleq 2042ec + 1ac8: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1acc: 0000000c andeq r0, r0, ip + 1ad0: 00001aa0 andeq r1, r0, r0, lsr #21 + 1ad4: 00403188 subeq r3, r0, r8, lsl #3 + 1ad8: 00000016 andeq r0, r0, r6, lsl r0 + 1adc: 00000028 andeq r0, r0, r8, lsr #32 + 1ae0: ffffffff undefined instruction 0xffffffff + 1ae4: 7c020003 stcvc 0, cr0, [r2], {3} + 1ae8: 000d0c0e andeq r0, sp, lr, lsl #24 + 1aec: 01070007 tsteq r7, r7 + 1af0: 03070207 movweq r0, #29191 ; 0x7207 + 1af4: 05080408 streq r0, [r8, #-1032] + 1af8: 07080608 streq r0, [r8, -r8, lsl #12] + 1afc: 09080808 stmdbeq r8, {r3, fp} + 1b00: 0b080a08 bleq 204328 + 1b04: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1b08: 00000018 andeq r0, r0, r8, lsl r0 + 1b0c: 00001adc ldrdeq r1, [r0], -ip + 1b10: 00403dc8 subeq r3, r0, r8, asr #27 + 1b14: 0000003c andeq r0, r0, ip, lsr r0 + 1b18: 84080e41 strhi r0, [r8], #-3649 + 1b1c: 040e5501 streq r5, [lr], #-1281 + 1b20: 000000c4 andeq r0, r0, r4, asr #1 + 1b24: 00000028 andeq r0, r0, r8, lsr #32 + 1b28: ffffffff undefined instruction 0xffffffff + 1b2c: 7c020003 stcvc 0, cr0, [r2], {3} + 1b30: 000d0c0e andeq r0, sp, lr, lsl #24 + 1b34: 01070007 tsteq r7, r7 + 1b38: 03070207 movweq r0, #29191 ; 0x7207 + 1b3c: 05080408 streq r0, [r8, #-1032] + 1b40: 07080608 streq r0, [r8, -r8, lsl #12] + 1b44: 09080808 stmdbeq r8, {r3, fp} + 1b48: 0b080a08 bleq 204370 + 1b4c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1b50: 0000000c andeq r0, r0, ip + 1b54: 00001b24 andeq r1, r0, r4, lsr #22 + 1b58: 004031a4 subeq r3, r0, r4, lsr #3 + 1b5c: 00000074 andeq r0, r0, r4, ror r0 + 1b60: 00000028 andeq r0, r0, r8, lsr #32 + 1b64: ffffffff undefined instruction 0xffffffff + 1b68: 7c020003 stcvc 0, cr0, [r2], {3} + 1b6c: 000d0c0e andeq r0, sp, lr, lsl #24 + 1b70: 01070007 tsteq r7, r7 + 1b74: 03070207 movweq r0, #29191 ; 0x7207 + 1b78: 05080408 streq r0, [r8, #-1032] + 1b7c: 07080608 streq r0, [r8, -r8, lsl #12] + 1b80: 09080808 stmdbeq r8, {r3, fp} + 1b84: 0b080a08 bleq 2043ac + 1b88: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1b8c: 0000002c andeq r0, r0, ip, lsr #32 + 1b90: 00001b60 andeq r1, r0, r0, ror #22 + 1b94: 00403218 subeq r3, r0, r8, lsl r2 + 1b98: 000000cc andeq r0, r0, ip, asr #1 + 1b9c: 84100e41 ldrhi r0, [r0], #-3649 + 1ba0: 86038504 strhi r8, [r3], -r4, lsl #10 + 1ba4: 41018e02 tstmi r1, r2, lsl #28 + 1ba8: 0e63380e cdpeq 8, 6, cr3, cr3, cr14, {0} + 1bac: 380e4840 stmdacc lr, {r6, fp, lr} + 1bb0: 48400e5f stmdami r0, {r0, r1, r2, r3, r4, r6, r9, sl, fp}^ + 1bb4: 0e4c380e cdpeq 8, 4, cr3, cr12, cr14, {0} + 1bb8: 00000010 andeq r0, r0, r0, lsl r0 + 1bbc: 00000028 andeq r0, r0, r8, lsr #32 + 1bc0: ffffffff undefined instruction 0xffffffff + 1bc4: 7c020003 stcvc 0, cr0, [r2], {3} + 1bc8: 000d0c0e andeq r0, sp, lr, lsl #24 + 1bcc: 01070007 tsteq r7, r7 + 1bd0: 03070207 movweq r0, #29191 ; 0x7207 + 1bd4: 05080408 streq r0, [r8, #-1032] + 1bd8: 07080608 streq r0, [r8, -r8, lsl #12] + 1bdc: 09080808 stmdbeq r8, {r3, fp} + 1be0: 0b080a08 bleq 204408 + 1be4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1be8: 00000018 andeq r0, r0, r8, lsl r0 + 1bec: 00001bbc strheq r1, [r0], -ip + 1bf0: 004032e4 subeq r3, r0, r4, ror #5 + 1bf4: 00000030 andeq r0, r0, r0, lsr r0 + 1bf8: 84100e41 ldrhi r0, [r0], #-3649 + 1bfc: 86038504 strhi r8, [r3], -r4, lsl #10 + 1c00: 00018e02 andeq r8, r1, r2, lsl #28 + 1c04: 00000028 andeq r0, r0, r8, lsr #32 + 1c08: ffffffff undefined instruction 0xffffffff + 1c0c: 7c020003 stcvc 0, cr0, [r2], {3} + 1c10: 000d0c0e andeq r0, sp, lr, lsl #24 + 1c14: 01070007 tsteq r7, r7 + 1c18: 03070207 movweq r0, #29191 ; 0x7207 + 1c1c: 05080408 streq r0, [r8, #-1032] + 1c20: 07080608 streq r0, [r8, -r8, lsl #12] + 1c24: 09080808 stmdbeq r8, {r3, fp} + 1c28: 0b080a08 bleq 204450 + 1c2c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1c30: 00000024 andeq r0, r0, r4, lsr #32 + 1c34: 00001c04 andeq r1, r0, r4, lsl #24 + 1c38: 00403314 subeq r3, r0, r4, lsl r3 + 1c3c: 00000008 andeq r0, r0, r8 + 1c40: 0484100e streq r1, [r4], #14 + 1c44: 02860385 addeq r0, r6, #335544322 ; 0x14000002 + 1c48: 0941018e stmdbeq r1, {r1, r2, r3, r7, r8}^ + 1c4c: 0e41010e dvfeqs f0, f1, #0.5 + 1c50: c6c5c404 strbgt ip, [r5], r4, lsl #8 + 1c54: 00000e41 andeq r0, r0, r1, asr #28 + 1c58: 00000028 andeq r0, r0, r8, lsr #32 + 1c5c: ffffffff undefined instruction 0xffffffff + 1c60: 7c040003 stcvc 0, cr0, [r4], {3} + 1c64: 000d0c0e andeq r0, sp, lr, lsl #24 + 1c68: 01080008 tsteq r8, r8 + 1c6c: 03080208 movweq r0, #33288 ; 0x8208 + 1c70: 05080408 streq r0, [r8, #-1032] + 1c74: 07080608 streq r0, [r8, -r8, lsl #12] + 1c78: 09080808 stmdbeq r8, {r3, fp} + 1c7c: 0b080a08 bleq 2044a4 + 1c80: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1c84: 00000014 andeq r0, r0, r4, lsl r0 + 1c88: 00001c58 andeq r1, r0, r8, asr ip + 1c8c: 00403f34 subeq r3, r0, r4, lsr pc + 1c90: 00000008 andeq r0, r0, r8 + 1c94: 01070007 tsteq r7, r7 + 1c98: 03070207 movweq r0, #29191 ; 0x7207 + 1c9c: 00000028 andeq r0, r0, r8, lsr #32 + 1ca0: ffffffff undefined instruction 0xffffffff + 1ca4: 7c040003 stcvc 0, cr0, [r4], {3} + 1ca8: 000d0c0e andeq r0, sp, lr, lsl #24 + 1cac: 01070007 tsteq r7, r7 + 1cb0: 03070207 movweq r0, #29191 ; 0x7207 + 1cb4: 05080408 streq r0, [r8, #-1032] + 1cb8: 07080608 streq r0, [r8, -r8, lsl #12] + 1cbc: 09080808 stmdbeq r8, {r3, fp} + 1cc0: 0b080a08 bleq 2044e8 + 1cc4: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1cc8: 00000018 andeq r0, r0, r8, lsl r0 + 1ccc: 00001c9c muleq r0, ip, ip + 1cd0: 00403e3c subeq r3, r0, ip, lsr lr + 1cd4: 00000034 andeq r0, r0, r4, lsr r0 + 1cd8: 84080e42 strhi r0, [r8], #-3650 + 1cdc: 48018e02 stmdami r1, {r1, r9, sl, fp, pc} + 1ce0: cec4000e cdpgt 0, 12, cr0, cr4, cr14, {0} + 1ce4: 00000028 andeq r0, r0, r8, lsr #32 + 1ce8: ffffffff undefined instruction 0xffffffff + 1cec: 7c040003 stcvc 0, cr0, [r4], {3} + 1cf0: 000d0c0e andeq r0, sp, lr, lsl #24 + 1cf4: 01080008 tsteq r8, r8 + 1cf8: 03080208 movweq r0, #33288 ; 0x8208 + 1cfc: 05080408 streq r0, [r8, #-1032] + 1d00: 07080608 streq r0, [r8, -r8, lsl #12] + 1d04: 09080808 stmdbeq r8, {r3, fp} + 1d08: 0b080a08 bleq 204530 + 1d0c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1d10: 00000014 andeq r0, r0, r4, lsl r0 + 1d14: 00001ce4 andeq r1, r0, r4, ror #25 + 1d18: 00403d3c subeq r3, r0, ip, lsr sp + 1d1c: 00000048 andeq r0, r0, r8, asr #32 + 1d20: 01070007 tsteq r7, r7 + 1d24: 03070207 movweq r0, #29191 ; 0x7207 + 1d28: 00000028 andeq r0, r0, r8, lsr #32 + 1d2c: ffffffff undefined instruction 0xffffffff + 1d30: 7c040003 stcvc 0, cr0, [r4], {3} + 1d34: 000d0c0e andeq r0, sp, lr, lsl #24 + 1d38: 01070007 tsteq r7, r7 + 1d3c: 03070207 movweq r0, #29191 ; 0x7207 + 1d40: 05080408 streq r0, [r8, #-1032] + 1d44: 07080608 streq r0, [r8, -r8, lsl #12] + 1d48: 09080808 stmdbeq r8, {r3, fp} + 1d4c: 0b080a08 bleq 204574 + 1d50: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1d54: 0000000c andeq r0, r0, ip + 1d58: 00001d28 andeq r1, r0, r8, lsr #26 + 1d5c: 00403e98 umaaleq r3, r0, r8, lr + 1d60: 00000028 andeq r0, r0, r8, lsr #32 + 1d64: 00000028 andeq r0, r0, r8, lsr #32 + 1d68: ffffffff undefined instruction 0xffffffff + 1d6c: 7c040003 stcvc 0, cr0, [r4], {3} + 1d70: 000d0c0e andeq r0, sp, lr, lsl #24 + 1d74: 01070007 tsteq r7, r7 + 1d78: 03070207 movweq r0, #29191 ; 0x7207 + 1d7c: 05080408 streq r0, [r8, #-1032] + 1d80: 07080608 streq r0, [r8, -r8, lsl #12] + 1d84: 09080808 stmdbeq r8, {r3, fp} + 1d88: 0b080a08 bleq 2045b0 + 1d8c: 0e080c07 cdpeq 12, 0, cr0, cr8, cr7, {0} + 1d90: 00000038 andeq r0, r0, r8, lsr r0 + 1d94: 00001d64 andeq r1, r0, r4, ror #26 + 1d98: 004036fc strdeq r3, [r0], #-108 + 1d9c: 000000e8 andeq r0, r0, r8, ror #1 + 1da0: 84200e41 strthi r0, [r0], #-3649 + 1da4: 86068507 strhi r8, [r6], -r7, lsl #10 + 1da8: 88048705 stmdahi r4, {r0, r2, r8, r9, sl, pc} + 1dac: 8e028903 cdphi 9, 0, cr8, cr2, cr3, {0} + 1db0: 040e5801 streq r5, [lr], #-2049 + 1db4: c7c6c5c4 strbgt ip, [r6, r4, asr #11] + 1db8: 41cec9c8 bicmi ip, lr, r8, asr #19 + 1dbc: 0784200e streq r2, [r4, lr] + 1dc0: 05860685 streq r0, [r6, #1669] + 1dc4: 03880487 orreq r0, r8, #-2030043136 ; 0x87000000 + 1dc8: 018e0289 orreq r0, lr, r9, lsl #5 + +Disassembly of section .debug_info: + +00000000 <.debug_info>: + 0: 000000e8 andeq r0, r0, r8, ror #1 + 4: 00000003 andeq r0, r0, r3 + 8: 01040000 tsteq r4, r0 + c: 445c3a43 ldrbmi r3, [ip], #-2627 + 10: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 14: 73746e65 cmnvc r4, #1616 ; 0x650 + 18: 646e6120 strbtvs r6, [lr], #-288 + 1c: 74655320 strbtvc r5, [r5], #-800 + 20: 676e6974 undefined + 24: 616d5c73 smcvs 54723 + 28: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 30: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 34: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 38: 775c7374 undefined + 3c: 6f632d73 svcvs 0x00632d73 + 40: 6f72746e svcvs 0x0072746e + 44: 65575c6c ldrbvs r5, [r7, #-3180] + 48: 65687461 strbvs r7, [r8, #-1121]! + 4c: 74532072 ldrbvc r2, [r3], #-114 + 50: 6f697461 svcvs 0x00697461 + 54: 6f43206e svcvs 0x0043206e + 58: 6f72746e svcvs 0x0072746e + 5c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 60: 414d535c cmpmi sp, ip, asr r3 + 64: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 68: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 6c: 6f535c73 svcvs 0x00535c73 + 70: 65637275 strbvs r7, [r3, #-629]! + 74: 6c65445c cfstrdvs mvd4, [r5], #-368 + 78: 632e7961 teqvs lr, #1589248 ; 0x184000 + 7c: 52414900 subpl r4, r1, #0 ; 0x0 + 80: 534e4120 movtpl r4, #57632 ; 0xe120 + 84: 2f432049 svccs 0x00432049 + 88: 202b2b43 eorcs r2, fp, r3, asr #22 + 8c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 90: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 94: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 98: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a0: 572f3539 undefined + a4: 4b203233 blmi 80c978 + a8: 534b4349 movtpl r4, #45897 ; 0xb349 + ac: 54524154 ldrbpl r4, [r2], #-340 + b0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b4: 4d524120 ldfmie f4, [r2, #-128] + b8: 00000100 andeq r0, r0, r0, lsl #2 + bc: 00000000 andeq r0, r0, r0 + c0: 75030000 strvc r0, [r3] + c4: 6769736e strbvs r7, [r9, -lr, ror #6]! + c8: 2064656e rsbcs r6, r4, lr, ror #10 + cc: 676e6f6c strbvs r6, [lr, -ip, ror #30]! + d0: 04070400 streq r0, [r7], #-1024 + d4: 0000d913 andeq sp, r0, r3, lsl r9 + d8: 69750800 ldmdbvs r5!, {fp}^ + dc: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 + e0: 1500745f strne r7, [r0, #-1119] + e4: 1e0101c2 adfnedm f0, f1, f2 + e8: 00000019 andeq r0, r0, r9, lsl r0 + ec: 0000010c andeq r0, r0, ip, lsl #2 + f0: 00000003 andeq r0, r0, r3 + f4: 02040000 andeq r0, r4, #0 ; 0x0 + f8: 445c3a43 ldrbmi r3, [ip], #-2627 + fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 100: 73746e65 cmnvc r4, #1616 ; 0x650 + 104: 646e6120 strbtvs r6, [lr], #-288 + 108: 74655320 strbtvc r5, [r5], #-800 + 10c: 676e6974 undefined + 110: 616d5c73 smcvs 54723 + 114: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 118: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 11c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 120: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 124: 775c7374 undefined + 128: 6f632d73 svcvs 0x00632d73 + 12c: 6f72746e svcvs 0x0072746e + 130: 65575c6c ldrbvs r5, [r7, #-3180] + 134: 65687461 strbvs r7, [r8, #-1121]! + 138: 74532072 ldrbvc r2, [r3], #-114 + 13c: 6f697461 svcvs 0x00697461 + 140: 6f43206e svcvs 0x0043206e + 144: 6f72746e svcvs 0x0072746e + 148: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 14c: 414d535c cmpmi sp, ip, asr r3 + 150: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 154: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 158: 6f535c73 svcvs 0x00535c73 + 15c: 65637275 strbvs r7, [r3, #-629]! + 160: 6c65445c cfstrdvs mvd4, [r5], #-368 + 164: 632e7961 teqvs lr, #1589248 ; 0x184000 + 168: 52414900 subpl r4, r1, #0 ; 0x0 + 16c: 534e4120 movtpl r4, #57632 ; 0xe120 + 170: 2f432049 svccs 0x00432049 + 174: 202b2b43 eorcs r2, fp, r3, asr #22 + 178: 706d6f43 rsbvc r6, sp, r3, asr #30 + 17c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 180: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 184: 322e3033 eorcc r3, lr, #51 ; 0x33 + 188: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 18c: 572f3539 undefined + 190: 4b203233 blmi 80ca64 + 194: 534b4349 movtpl r4, #45897 ; 0xb349 + 198: 54524154 ldrbpl r4, [r2], #-340 + 19c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1a0: 4d524120 ldfmie f4, [r2, #-128] + 1a4: 3d840100 stfccs f0, [r4] + 1a8: 3da80040 stccc 0, cr0, [r8, #256]! + 1ac: 02180040 andseq r0, r8, #64 ; 0x40 + 1b0: 00000000 andeq r0, r0, r0 + 1b4: 0b100000 bleq 4001bc + 1b8: 05000000 streq r0, [r0] + 1bc: 0000010c andeq r0, r0, ip, lsl #2 + 1c0: 616c6544 cmnvs ip, r4, asr #10 + 1c4: 00734d79 rsbseq r4, r3, r9, ror sp + 1c8: 01061401 tsteq r6, r1, lsl #8 + 1cc: 00000000 andeq r0, r0, r0 + 1d0: 00403d84 subeq r3, r0, r4, lsl #27 + 1d4: 00403da8 subeq r3, r0, r8, lsr #27 + 1d8: 00736d06 rsbseq r6, r3, r6, lsl #26 + 1dc: 10171401 andsne r1, r7, r1, lsl #8 + 1e0: 000000d9 ldrdeq r0, [r0], -r9 + 1e4: 0000002c andeq r0, r0, ip, lsr #32 + 1e8: 01006907 tsteq r0, r7, lsl #18 + 1ec: d3101516 tstle r0, #92274688 ; 0x5800000 + 1f0: 49000000 stmdbmi r0, {} + ... + 1fc: 0000010c andeq r0, r0, ip, lsl #2 + 200: 00000003 andeq r0, r0, r3 + 204: 02040000 andeq r0, r4, #0 ; 0x0 + 208: 445c3a43 ldrbmi r3, [ip], #-2627 + 20c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 210: 73746e65 cmnvc r4, #1616 ; 0x650 + 214: 646e6120 strbtvs r6, [lr], #-288 + 218: 74655320 strbtvc r5, [r5], #-800 + 21c: 676e6974 undefined + 220: 616d5c73 smcvs 54723 + 224: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 228: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 22c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 230: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 234: 775c7374 undefined + 238: 6f632d73 svcvs 0x00632d73 + 23c: 6f72746e svcvs 0x0072746e + 240: 65575c6c ldrbvs r5, [r7, #-3180] + 244: 65687461 strbvs r7, [r8, #-1121]! + 248: 74532072 ldrbvc r2, [r3], #-114 + 24c: 6f697461 svcvs 0x00697461 + 250: 6f43206e svcvs 0x0043206e + 254: 6f72746e svcvs 0x0072746e + 258: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 25c: 414d535c cmpmi sp, ip, asr r3 + 260: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 264: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 268: 6f535c73 svcvs 0x00535c73 + 26c: 65637275 strbvs r7, [r3, #-629]! + 270: 6c65445c cfstrdvs mvd4, [r5], #-368 + 274: 632e7961 teqvs lr, #1589248 ; 0x184000 + 278: 52414900 subpl r4, r1, #0 ; 0x0 + 27c: 534e4120 movtpl r4, #57632 ; 0xe120 + 280: 2f432049 svccs 0x00432049 + 284: 202b2b43 eorcs r2, fp, r3, asr #22 + 288: 706d6f43 rsbvc r6, sp, r3, asr #30 + 28c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 290: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 294: 322e3033 eorcc r3, lr, #51 ; 0x33 + 298: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 29c: 572f3539 undefined + 2a0: 4b203233 blmi 80cb74 + 2a4: 534b4349 movtpl r4, #45897 ; 0xb349 + 2a8: 54524154 ldrbpl r4, [r2], #-340 + 2ac: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2b0: 4d524120 ldfmie f4, [r2, #-128] + 2b4: 3da80100 stfccs f0, [r8] + 2b8: 3dc60040 stclcc 0, cr0, [r6, #256] + 2bc: 02cc0040 sbceq r0, ip, #64 ; 0x40 + 2c0: 00660000 rsbeq r0, r6, r0 + 2c4: 0b100000 bleq 4002cc + 2c8: 05000000 streq r0, [r0] + 2cc: 0000010c andeq r0, r0, ip, lsl #2 + 2d0: 616c6544 cmnvs ip, r4, asr #10 + 2d4: 00735579 rsbseq r5, r3, r9, ror r5 + 2d8: 01062001 tsteq r6, r1 + 2dc: 00000067 andeq r0, r0, r7, rrx + 2e0: 00403da8 subeq r3, r0, r8, lsr #27 + 2e4: 00403dc6 subeq r3, r0, r6, asr #27 + 2e8: 00737506 rsbseq r7, r3, r6, lsl #10 + 2ec: 10172001 andsne r2, r7, r1 + 2f0: 000000d9 ldrdeq r0, [r0], -r9 + 2f4: 00000093 muleq r0, r3, r0 + 2f8: 01006907 tsteq r0, r7, lsl #18 + 2fc: d3101522 tstle r0, #142606336 ; 0x8800000 + 300: b0000000 andlt r0, r0, r0 + ... + 30c: 00000574 andeq r0, r0, r4, ror r5 + 310: 00840003 addeq r0, r4, r3 + 314: 01040000 tsteq r4, r0 + 318: 445c3a43 ldrbmi r3, [ip], #-2627 + 31c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 320: 73746e65 cmnvc r4, #1616 ; 0x650 + 324: 646e6120 strbtvs r6, [lr], #-288 + 328: 74655320 strbtvc r5, [r5], #-800 + 32c: 676e6974 undefined + 330: 616d5c73 smcvs 54723 + 334: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 338: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 33c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 340: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 344: 775c7374 undefined + 348: 6f632d73 svcvs 0x00632d73 + 34c: 6f72746e svcvs 0x0072746e + 350: 65575c6c ldrbvs r5, [r7, #-3180] + 354: 65687461 strbvs r7, [r8, #-1121]! + 358: 74532072 ldrbvc r2, [r3], #-114 + 35c: 6f697461 svcvs 0x00697461 + 360: 6f43206e svcvs 0x0043206e + 364: 6f72746e svcvs 0x0072746e + 368: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 36c: 7070415c rsbsvc r4, r0, ip, asr r1 + 370: 6163696c cmnvs r3, ip, ror #18 + 374: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 378: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 37c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 380: 445c7365 ldrbmi r7, [ip], #-869 + 384: 6c707369 ldclvs 3, cr7, [r0], #-420 + 388: 632e7961 teqvs lr, #1589248 ; 0x184000 + 38c: 52414900 subpl r4, r1, #0 ; 0x0 + 390: 534e4120 movtpl r4, #57632 ; 0xe120 + 394: 2f432049 svccs 0x00432049 + 398: 202b2b43 eorcs r2, fp, r3, asr #22 + 39c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 3a0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 3a4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 3a8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 3ac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 3b0: 572f3539 undefined + 3b4: 4b203233 blmi 80cc88 + 3b8: 534b4349 movtpl r4, #45897 ; 0xb349 + 3bc: 54524154 ldrbpl r4, [r2], #-340 + 3c0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 3c4: 4d524120 ldfmie f4, [r2, #-128] + 3c8: 03800100 orreq r0, r0, #0 ; 0x0 + 3cc: 00140000 andseq r0, r4, r0 + 3d0: 75020000 strvc r0, [r2] + 3d4: 6769736e strbvs r7, [r9, -lr, ror #6]! + 3d8: 2064656e rsbcs r6, r4, lr, ror #10 + 3dc: 726f6873 rsbvc r6, pc, #7536640 ; 0x730000 + 3e0: 07020074 smlsdxeq r2, r4, r0, r0 + 3e4: 05131303 ldreq r1, [r3, #-771] + 3e8: 15040000 strne r0, [r4] + 3ec: 750201d8 strvc r0, [r2, #-472] + 3f0: 6769736e strbvs r7, [r9, -lr, ror #6]! + 3f4: 2064656e rsbcs r6, r4, lr, ror #10 + 3f8: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 + 3fc: 03080100 movweq r0, #33024 ; 0x8100 + 400: 0004e713 andeq lr, r4, r3, lsl r7 + 404: f3150400 vshl.u16 d0, d0, d5 + 408: 42130301 andsmi r0, r3, #67108864 ; 0x4000000 + 40c: 03000002 movweq r0, #2 ; 0x2 + 410: 00028313 andeq r8, r2, r3, lsl r3 + 414: c7130600 ldrgt r0, [r3, -r0, lsl #12] + 418: 02000004 andeq r0, r0, #4 ; 0x4 + 41c: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} + 420: 63206465 teqvs r0, #1694498816 ; 0x65000000 + 424: 00726168 rsbseq r6, r2, r8, ror #2 + 428: 13040601 movwne r0, #17921 ; 0x4601 + 42c: 000004e7 andeq r0, r0, r7, ror #9 + 430: 67697302 strbvs r7, [r9, -r2, lsl #6]! + 434: 2064656e rsbcs r6, r4, lr, ror #10 + 438: 726f6873 rsbvc r6, pc, #7536640 ; 0x730000 + 43c: 05020074 streq r0, [r2, #-116] + 440: 736e7502 cmnvc lr, #8388608 ; 0x800000 + 444: 656e6769 strbvs r6, [lr, #-1897]! + 448: 6f6c2064 svcvs 0x006c2064 + 44c: 0400676e streq r6, [r0], #-1902 + 450: 018c1407 orreq r1, ip, r7, lsl #8 + 454: 15010000 strne r0, [r1] + 458: 69704767 ldmdbvs r0!, {r0, r1, r2, r5, r6, r8, r9, sl, lr}^ + 45c: 6e69506f cdpvs 0, 6, cr5, cr9, cr15, {3} + 460: 74617453 strbtvc r7, [r1], #-1107 + 464: 776f4c65 strbvc r4, [pc, -r5, ror #24]! + 468: 0000635f andeq r6, r0, pc, asr r3 + 46c: 70476715 subvc r6, r7, r5, lsl r7 + 470: 69506f69 ldmdbvs r0, {r0, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 474: 6174536e cmnvs r4, lr, ror #6 + 478: 69486574 stmdbvs r8, {r2, r4, r5, r6, r8, sl, sp, lr}^ + 47c: 635f6867 cmpvs pc, #6750208 ; 0x670000 + 480: 67150100 ldrvs r0, [r5, -r0, lsl #2] + 484: 6f697047 svcvs 0x00697047 + 488: 536e6950 cmnpl lr, #1310720 ; 0x140000 + 48c: 65746174 ldrbvs r6, [r4, #-372]! + 490: 5f78614d svcpl 0x0078614d + 494: 00020063 andeq r0, r2, r3, rrx + 498: 0001b914 andeq fp, r1, r4, lsl r9 + 49c: 67150100 ldrvs r0, [r5, -r0, lsl #2] + 4a0: 5f44434c svcpl 0x0044434c + 4a4: 46786548 ldrbtmi r6, [r8], -r8, asr #10 + 4a8: 616d726f cmnvs sp, pc, ror #4 + 4ac: 00635f74 rsbeq r5, r3, r4, ror pc + 4b0: 4c671500 cfstr64mi mvdx1, [r7] + 4b4: 445f4443 ldrbmi r4, [pc], #1091 ; 4bc <__FIQ_stack_size+0xbc> + 4b8: 6f466365 svcvs 0x00466365 + 4bc: 74616d72 strbtvc r6, [r1], #-3442 + 4c0: 0100635f tsteq r0, pc, asr r3 + 4c4: 020a1600 andeq r1, sl, #0 ; 0x0 + 4c8: 636c0000 cmnvs ip, #0 ; 0x0 + 4cc: 6e6f4664 cdpvs 6, 6, cr4, cr15, cr4, {3} + 4d0: 70795474 rsbsvc r5, r9, r4, ror r4 + 4d4: 61745f65 cmnvs r4, r5, ror #30 + 4d8: 15010067 strne r0, [r1, #-103] + 4dc: 44434c67 strbmi r4, [r3], #-3175 + 4e0: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 + 4e4: 466c616d strbtmi r6, [ip], -sp, ror #2 + 4e8: 5f746e6f svcpl 0x00746e6f + 4ec: 15000063 strne r0, [r0, #-99] + 4f0: 44434c67 strbmi r4, [r3], #-3175 + 4f4: 7265565f rsbvc r5, r5, #99614720 ; 0x5f00000 + 4f8: 616e6164 cmnvs lr, r4, ror #2 + 4fc: 746e6f46 strbtvc r6, [lr], #-3910 + 500: 0100635f tsteq r0, pc, asr r3 + 504: 434c6715 movtmi r6, #50965 ; 0xc715 + 508: 614d5f44 cmpvs sp, r4, asr #30 + 50c: 6e6f4678 mcrvs 6, 3, r4, cr15, cr8, {3} + 510: 00635f74 rsbeq r5, r3, r4, ror pc + 514: 42160002 andsmi r0, r6, #2 ; 0x2 + 518: 6c000002 stcvs 0, cr0, [r0], {2} + 51c: 72456463 subvc r6, r5, #1660944384 ; 0x63000000 + 520: 5f726f72 svcpl 0x00726f72 + 524: 00676174 rsbeq r6, r7, r4, ror r1 + 528: 4c671501 cfstr64mi mvdx1, [r7], #-4 + 52c: 4e5f4443 cdpmi 4, 5, cr4, cr15, cr3, {2} + 530: 7272456f rsbsvc r4, r2, #465567744 ; 0x1bc00000 + 534: 635f726f cmpvs pc, #-268435450 ; 0xf0000006 + 538: 67150000 ldrvs r0, [r5, -r0] + 53c: 5f44434c svcpl 0x0044434c + 540: 75657551 strbvc r7, [r5, #-1361]! + 544: 6c754665 ldclvs 6, cr4, [r5], #-404 + 548: 00635f6c rsbeq r5, r3, ip, ror #30 + 54c: 4f170001 svcmi 0x00170001 + 550: 13000002 movwne r0, #2 ; 0x2 + 554: 000002a8 andeq r0, r0, r8, lsr #5 + 558: 17000118 smladne r0, r8, r1, r0 + 55c: 0000025c andeq r0, r0, ip, asr r2 + 560: 0004e713 andeq lr, r4, r3, lsl r7 + 564: 00051800 andeq r1, r5, r0, lsl #16 + 568: 00026917 andeq r6, r2, r7, lsl r9 + 56c: 029b1300 addseq r1, fp, #0 ; 0x0 + 570: 07180000 ldreq r0, [r8, -r0] + 574: 02761700 rsbseq r1, r6, #0 ; 0x0 + 578: e7130000 ldr r0, [r3, -r0] + 57c: 18000004 stmdane r0, {r2} + 580: 83170007 tsthi r7, #7 ; 0x7 + 584: 13000002 movwne r0, #2 ; 0x2 + 588: 0000054a andeq r0, r0, sl, asr #10 + 58c: 17000718 smladne r0, r8, r7, r0 + 590: 0000028e andeq r0, r0, lr, lsl #5 + 594: 1801e215 stmdane r1, {r0, r2, r4, r9, sp, lr, pc} + 598: 9b170010 blls 5c05e0 + 59c: 13000002 movwne r0, #2 ; 0x2 + 5a0: 000004e7 andeq r0, r0, r7, ror #9 + 5a4: 17001018 smladne r0, r8, r0, r1 + 5a8: 000002a8 andeq r0, r0, r8, lsr #5 + 5ac: 0004e713 andeq lr, r4, r3, lsl r7 + 5b0: 00141800 andseq r1, r4, r0, lsl #16 + 5b4: 0002f319 andeq pc, r2, r9, lsl r3 + 5b8: 151a0c00 ldrne r0, [sl, #-3072] + 5bc: 700101de ldrdvc r0, [r1], -lr + 5c0: 746e6f46 strbtvc r6, [lr], #-3910 + 5c4: 65646e49 strbvs r6, [r4, #-3657]! + 5c8: 62615478 rsbvs r5, r1, #2013265920 ; 0x78000000 + 5cc: 0200656c andeq r6, r0, #452984832 ; 0x1b000000 + 5d0: 151a0023 ldrne r0, [sl, #-35] + 5d4: 700101f9 strdvc r0, [r1], -r9 + 5d8: 746e6f46 strbtvc r6, [lr], #-3910 + 5dc: 72616843 rsbvc r6, r1, #4390912 ; 0x430000 + 5e0: 6c626154 stfvse f6, [r2], #-336 + 5e4: 23020065 movwcs r0, #8293 ; 0x2065 + 5e8: e7131a04 ldr r1, [r3, -r4, lsl #20] + 5ec: 01000004 tsteq r0, r4 + 5f0: 746e6f66 strbtvc r6, [lr], #-3942 + 5f4: 67696548 strbvs r6, [r9, -r8, asr #10]! + 5f8: 02007468 andeq r7, r0, #1744830464 ; 0x68000000 + 5fc: 1b000823 blne 2690 <__USR_stack_size+0x1e90> + 600: 000003e8 andeq r0, r0, r8, ror #7 + 604: 70736964 rsbsvc r6, r3, r4, ror #18 + 608: 5079616c rsbspl r6, r9, ip, ror #2 + 60c: 6d617261 sfmvs f7, 2, [r1, #-388]! + 610: 61745f73 cmnvs r4, r3, ror pc + 614: 01b70067 undefined instruction 0x01b70067 + 618: 04e7131a strbteq r1, [r7], #794 + 61c: 63010000 movwvs r0, #4096 ; 0x1000 + 620: 65727275 ldrbvs r7, [r2, #-629]! + 624: 4358746e cmpmi r8, #1845493760 ; 0x6e000000 + 628: 64726f6f ldrbtvs r6, [r2], #-3951 + 62c: 00230200 eoreq r0, r3, r0, lsl #4 + 630: 04e7131a strbteq r1, [r7], #794 + 634: 63010000 movwvs r0, #4096 ; 0x1000 + 638: 65727275 ldrbvs r7, [r2, #-629]! + 63c: 4359746e cmpmi r9, #1845493760 ; 0x6e000000 + 640: 64726f6f ldrbtvs r6, [r2], #-3951 + 644: 01230200 teqeq r3, r0, lsl #4 + 648: 04e7131a strbteq r1, [r7], #794 + 64c: 63010000 movwvs r0, #4096 ; 0x1000 + 650: 65727275 ldrbvs r7, [r2, #-629]! + 654: 694c746e stmdbvs ip, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ + 658: 0200656e andeq r6, r0, #461373440 ; 0x1b800000 + 65c: 131a0223 tstne sl, #805306370 ; 0x30000002 + 660: 000004e7 andeq r0, r0, r7, ror #9 + 664: 69727701 ldmdbvs r2!, {r0, r8, r9, sl, ip, sp, lr}^ + 668: 6e657474 mcrvs 4, 3, r7, cr5, cr4, {3} + 66c: 656e694c strbvs r6, [lr, #-2380]! + 670: 23020073 movwcs r0, #8307 ; 0x2073 + 674: e7131a03 ldr r1, [r3, -r3, lsl #20] + 678: 01000004 tsteq r0, r4 + 67c: 656e696c strbvs r6, [lr, #-2412]! + 680: 576f5473 undefined + 684: 65746972 ldrbvs r6, [r4, #-2418]! + 688: 04230200 strteq r0, [r3], #-512 + 68c: 04e9151a strbteq r1, [r9], #1306 + 690: 6e696c01 cdpvs 12, 6, cr6, cr9, cr1, {0} + 694: 69577365 ldmdbvs r7, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 698: 57687464 strbpl r7, [r8, -r4, ror #8]! + 69c: 74746972 ldrbtvc r6, [r4], #-2418 + 6a0: 02006e65 andeq r6, r0, #1616 ; 0x650 + 6a4: 131a0523 tstne sl, #146800640 ; 0x8c00000 + 6a8: 000004e7 andeq r0, r0, r7, ror #9 + 6ac: 72756301 rsbsvc r6, r5, #67108864 ; 0x4000000 + 6b0: 746e6572 strbtvc r6, [lr], #-1394 + 6b4: 746e6f46 strbtvc r6, [lr], #-3910 + 6b8: 65707954 ldrbvs r7, [r0, #-2388]! + 6bc: 0d230200 sfmeq f0, 4, [r3] + 6c0: 04e7131a strbteq r1, [r7], #794 + 6c4: 63010000 movwvs r0, #4096 ; 0x1000 + 6c8: 65727275 ldrbvs r7, [r2, #-629]! + 6cc: 7453746e ldrbvc r7, [r3], #-1134 + 6d0: 676e6972 undefined + 6d4: 65646e49 strbvs r6, [r4, #-3657]! + 6d8: 23020078 movwcs r0, #8312 ; 0x2078 + 6dc: dc151a0e ldcle 10, cr1, [r5], {14} + 6e0: 75630104 strbvc r0, [r3, #-260]! + 6e4: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 6e8: 72745374 rsbsvc r5, r4, #-805306367 ; 0xd0000001 + 6ec: 00676e69 rsbeq r6, r7, r9, ror #28 + 6f0: 000f2302 andeq r2, pc, r2, lsl #6 + 6f4: 00042f1b andeq r2, r4, fp, lsl pc + 6f8: 6e696c00 cdpvs 12, 6, cr6, cr9, cr0, {0} + 6fc: 72615065 rsbvc r5, r1, #101 ; 0x65 + 700: 5f736d61 svcpl 0x00736d61 + 704: 00676174 rsbeq r6, r7, r4, ror r1 + 708: e7131a03 ldr r1, [r3, -r3, lsl #20] + 70c: 01000004 tsteq r0, r4 + 710: 6f6f4378 svcvs 0x006f4378 + 714: 02006472 andeq r6, r0, #1912602624 ; 0x72000000 + 718: 131a0023 tstne sl, #35 ; 0x23 + 71c: 000004e7 andeq r0, r0, r7, ror #9 + 720: 6f437901 svcvs 0x00437901 + 724: 0064726f rsbeq r7, r4, pc, ror #4 + 728: 1a012302 bne 49338 + 72c: 0004e713 andeq lr, r4, r3, lsl r7 + 730: 61700100 cmnvs r0, r0, lsl #2 + 734: 02006567 andeq r6, r0, #432013312 ; 0x19c00000 + 738: 1b000223 blne fcc <__USR_stack_size+0x7cc> + 73c: 0000048f andeq r0, r0, pc, lsl #9 + 740: 65676170 strbvs r6, [r7, #-368]! + 744: 61726150 cmnvs r2, r0, asr r1 + 748: 745f736d ldrbvc r7, [pc], #877 ; 750 <__FIQ_stack_size+0x350> + 74c: 04006761 streq r6, [r0], #-1889 + 750: 04e7131a strbteq r1, [r7], #794 + 754: 78010000 stmdavc r1, {} + 758: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 + 75c: 6f6f4374 svcvs 0x006f4374 + 760: 02006472 andeq r6, r0, #1912602624 ; 0x72000000 + 764: 131a0023 tstne sl, #35 ; 0x23 + 768: 000004e7 andeq r0, r0, r7, ror #9 + 76c: 6e457801 cdpvs 8, 4, cr7, cr5, cr1, {0} + 770: 6f6f4364 svcvs 0x006f4364 + 774: 02006472 andeq r6, r0, #1912602624 ; 0x72000000 + 778: 131a0123 tstne sl, #-1073741816 ; 0xc0000008 + 77c: 000004e7 andeq r0, r0, r7, ror #9 + 780: 6f437901 svcvs 0x00437901 + 784: 0064726f rsbeq r7, r4, pc, ror #4 + 788: 1a022302 bne 89398 + 78c: 0004e713 andeq lr, r4, r3, lsl r7 + 790: 696c0100 stmdbvs ip!, {r8}^ + 794: 0200656e andeq r6, r0, #461373440 ; 0x1b800000 + 798: 1c000323 stcne 3, cr0, [r0], {35} + 79c: 6f697047 svcvs 0x00697047 + 7a0: 536e6950 cmnpl lr, #1310720 ; 0x140000 + 7a4: 65746174 ldrbvs r6, [r4, #-372]! + 7a8: 1500745f strne r7, [r0, #-1119] + 7ac: 390602c5 stmdbcc r6, {r0, r2, r6, r7, r9} + 7b0: 434c1c03 movtmi r1, #52227 ; 0xcc03 + 7b4: 00745f44 rsbseq r5, r4, r4, asr #30 + 7b8: 02038c15 andeq r8, r3, #5376 ; 0x1500 + 7bc: 6c1c0271 lfmvs f0, 4, [ip], {113} + 7c0: 6f466463 svcvs 0x00466463 + 7c4: 7954746e ldmdbvc r4, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ + 7c8: 745f6570 ldrbvc r6, [pc], #1392 ; 7d0 <__FIQ_stack_size+0x3d0> + 7cc: 03b91500 undefined instruction 0x03b91500 + 7d0: 1c027802 stcne 8, cr7, [r2], {2} + 7d4: 4564636c strbmi r6, [r4, #-876]! + 7d8: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 7dc: 1500745f strne r7, [r0, #-1119] + 7e0: 7e02048a cdpvc 4, 0, cr0, cr2, cr10, {4} + 7e4: 6e691c02 cdpvs 12, 6, cr1, cr9, cr2, {0} + 7e8: 745f3874 ldrbvc r3, [pc], #2164 ; 7f0 <__FIQ_stack_size+0x3f0> + 7ec: 028f1500 addeq r1, pc, #0 ; 0x0 + 7f0: 1c191904 ldcne 9, cr1, [r9], {4} + 7f4: 746e6975 strbtvc r6, [lr], #-2421 + 7f8: 00745f38 rsbseq r5, r4, r8, lsr pc + 7fc: 0401e215 streq lr, [r1], #-533 + 800: 621c191a andsvs r1, ip, #425984 ; 0x68000 + 804: 5f6c6f6f svcpl 0x006c6f6f + 808: e7150074 undefined + 80c: 132c0409 teqne ip, #150994944 ; 0x9000000 + 810: 746e691c strbtvc r6, [lr], #-2332 + 814: 745f3631 ldrbvc r3, [pc], #1585 ; 81c <__USR_stack_size+0x1c> + 818: 02a41500 adceq r1, r4, #0 ; 0x0 + 81c: 1c191b04 ldcne 11, cr1, [r9], {4} + 820: 746e6975 strbtvc r6, [lr], #-2421 + 824: 745f3631 ldrbvc r3, [pc], #1585 ; 82c <__USR_stack_size+0x2c> + 828: 01c61500 biceq r1, r6, r0, lsl #10 + 82c: 1c191c04 ldcne 12, cr1, [r9], {4} + 830: 746e6975 strbtvc r6, [lr], #-2421 + 834: 745f3233 ldrbvc r3, [pc], #563 ; 83c <__USR_stack_size+0x3c> + 838: 02b41500 adcseq r1, r4, #0 ; 0x0 + 83c: 1c191e04 ldcne 14, cr1, [r9], {4} + 840: 70736964 rsbsvc r6, r3, r4, ror #18 + 844: 5079616c rsbspl r6, r9, ip, ror #2 + 848: 6d617261 sfmvs f7, 2, [r1, #-388]! + 84c: 00745f73 rsbseq r5, r4, r3, ror pc + 850: 0105f315 tstpeq r5, r5, lsl r3 + 854: 6c1c027e lfmvs f0, 4, [ip], {126} + 858: 50656e69 rsbpl r6, r5, r9, ror #28 + 85c: 6d617261 sfmvs f7, 2, [r1, #-388]! + 860: 00745f73 rsbseq r5, r4, r3, ror pc + 864: 0107e815 tsteq r7, r5, lsl r8 + 868: 1c020184 stfnes f0, [r2], {132} + 86c: 65676170 strbvs r6, [r7, #-368]! + 870: 61726150 cmnvs r2, r0, asr r1 + 874: 745f736d ldrbvc r7, [pc], #877 ; 87c <__USR_stack_size+0x7c> + 878: 08af1500 stmiaeq pc!, {r8, sl, ip} + 87c: 02018b01 andeq r8, r1, #1024 ; 0x400 + 880: 00000000 andeq r0, r0, r0 + 884: 000000e0 andeq r0, r0, r0, ror #1 + 888: 00840003 addeq r0, r4, r3 + 88c: 01040000 tsteq r4, r0 + 890: 445c3a43 ldrbmi r3, [ip], #-2627 + 894: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 898: 73746e65 cmnvc r4, #1616 ; 0x650 + 89c: 646e6120 strbtvs r6, [lr], #-288 + 8a0: 74655320 strbtvc r5, [r5], #-800 + 8a4: 676e6974 undefined + 8a8: 616d5c73 smcvs 54723 + 8ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8bc: 775c7374 undefined + 8c0: 6f632d73 svcvs 0x00632d73 + 8c4: 6f72746e svcvs 0x0072746e + 8c8: 65575c6c ldrbvs r5, [r7, #-3180] + 8cc: 65687461 strbvs r7, [r8, #-1121]! + 8d0: 74532072 ldrbvc r2, [r3], #-114 + 8d4: 6f697461 svcvs 0x00697461 + 8d8: 6f43206e svcvs 0x0043206e + 8dc: 6f72746e svcvs 0x0072746e + 8e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8e4: 7070415c rsbsvc r4, r0, ip, asr r1 + 8e8: 6163696c cmnvs r3, ip, ror #18 + 8ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 8f0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 8f4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 8f8: 445c7365 ldrbmi r7, [ip], #-869 + 8fc: 6c707369 ldclvs 3, cr7, [r0], #-420 + 900: 632e7961 teqvs lr, #1589248 ; 0x184000 + 904: 52414900 subpl r4, r1, #0 ; 0x0 + 908: 534e4120 movtpl r4, #57632 ; 0xe120 + 90c: 2f432049 svccs 0x00432049 + 910: 202b2b43 eorcs r2, fp, r3, asr #22 + 914: 706d6f43 rsbvc r6, sp, r3, asr #30 + 918: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 91c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 920: 322e3033 eorcc r3, lr, #51 ; 0x33 + 924: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 928: 572f3539 undefined + 92c: 4b203233 blmi 80d200 + 930: 534b4349 movtpl r4, #45897 ; 0xb349 + 934: 54524154 ldrbpl r4, [r2], #-340 + 938: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 93c: 4d524120 ldfmie f4, [r2, #-128] + 940: 03800100 orreq r0, r0, #0 ; 0x0 + 944: 00140000 andseq r0, r4, r0 + 948: 61050000 tstvs r5, r0 + 94c: 4644434c strbmi r4, [r4], -ip, asr #6 + 950: 00746e6f rsbseq r6, r4, pc, ror #28 + 954: 00040910 andeq r0, r4, r0, lsl r9 + 958: 01e80100 mvneq r0, r0, lsl #2 + 95c: 0305010e movweq r0, #20750 ; 0x510e + 960: 00403eec subeq r3, r0, ip, ror #29 + 964: 00000000 andeq r0, r0, r0 + 968: 000000e0 andeq r0, r0, r0, ror #1 + 96c: 00840003 addeq r0, r4, r3 + 970: 01040000 tsteq r4, r0 + 974: 445c3a43 ldrbmi r3, [ip], #-2627 + 978: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 97c: 73746e65 cmnvc r4, #1616 ; 0x650 + 980: 646e6120 strbtvs r6, [lr], #-288 + 984: 74655320 strbtvc r5, [r5], #-800 + 988: 676e6974 undefined + 98c: 616d5c73 smcvs 54723 + 990: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 994: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 998: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 99c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9a0: 775c7374 undefined + 9a4: 6f632d73 svcvs 0x00632d73 + 9a8: 6f72746e svcvs 0x0072746e + 9ac: 65575c6c ldrbvs r5, [r7, #-3180] + 9b0: 65687461 strbvs r7, [r8, #-1121]! + 9b4: 74532072 ldrbvc r2, [r3], #-114 + 9b8: 6f697461 svcvs 0x00697461 + 9bc: 6f43206e svcvs 0x0043206e + 9c0: 6f72746e svcvs 0x0072746e + 9c4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9c8: 7070415c rsbsvc r4, r0, ip, asr r1 + 9cc: 6163696c cmnvs r3, ip, ror #18 + 9d0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9d4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 9d8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 9dc: 445c7365 ldrbmi r7, [ip], #-869 + 9e0: 6c707369 ldclvs 3, cr7, [r0], #-420 + 9e4: 632e7961 teqvs lr, #1589248 ; 0x184000 + 9e8: 52414900 subpl r4, r1, #0 ; 0x0 + 9ec: 534e4120 movtpl r4, #57632 ; 0xe120 + 9f0: 2f432049 svccs 0x00432049 + 9f4: 202b2b43 eorcs r2, fp, r3, asr #22 + 9f8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9fc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a00: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a04: 322e3033 eorcc r3, lr, #51 ; 0x33 + a08: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a0c: 572f3539 undefined + a10: 4b203233 blmi 80d2e4 + a14: 534b4349 movtpl r4, #45897 ; 0xb349 + a18: 54524154 ldrbpl r4, [r2], #-340 + a1c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a20: 4d524120 ldfmie f4, [r2, #-128] + a24: 03800100 orreq r0, r0, #0 ; 0x0 + a28: 00140000 andseq r0, r4, r0 + a2c: 67050000 strvs r0, [r5, -r0] + a30: 78654861 stmdavc r5!, {r0, r5, r6, fp, lr}^ + a34: 756c6156 strbvc r6, [ip, #-342]! + a38: 0f100065 svceq 0x00100065 + a3c: 01000004 tsteq r0, r4 + a40: 010f01e6 smlatteq pc, r6, r1, r0 + a44: 3e180305 cdpcc 3, 1, cr0, cr8, cr5, {0} + a48: 00000040 andeq r0, r0, r0, asr #32 + a4c: 000000e4 andeq r0, r0, r4, ror #1 + a50: 00840003 addeq r0, r4, r3 + a54: 01040000 tsteq r4, r0 + a58: 445c3a43 ldrbmi r3, [ip], #-2627 + a5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a60: 73746e65 cmnvc r4, #1616 ; 0x650 + a64: 646e6120 strbtvs r6, [lr], #-288 + a68: 74655320 strbtvc r5, [r5], #-800 + a6c: 676e6974 undefined + a70: 616d5c73 smcvs 54723 + a74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a84: 775c7374 undefined + a88: 6f632d73 svcvs 0x00632d73 + a8c: 6f72746e svcvs 0x0072746e + a90: 65575c6c ldrbvs r5, [r7, #-3180] + a94: 65687461 strbvs r7, [r8, #-1121]! + a98: 74532072 ldrbvc r2, [r3], #-114 + a9c: 6f697461 svcvs 0x00697461 + aa0: 6f43206e svcvs 0x0043206e + aa4: 6f72746e svcvs 0x0072746e + aa8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + aac: 7070415c rsbsvc r4, r0, ip, asr r1 + ab0: 6163696c cmnvs r3, ip, ror #18 + ab4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + ab8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + abc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + ac0: 445c7365 ldrbmi r7, [ip], #-869 + ac4: 6c707369 ldclvs 3, cr7, [r0], #-420 + ac8: 632e7961 teqvs lr, #1589248 ; 0x184000 + acc: 52414900 subpl r4, r1, #0 ; 0x0 + ad0: 534e4120 movtpl r4, #57632 ; 0xe120 + ad4: 2f432049 svccs 0x00432049 + ad8: 202b2b43 eorcs r2, fp, r3, asr #22 + adc: 706d6f43 rsbvc r6, sp, r3, asr #30 + ae0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + ae4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + ae8: 322e3033 eorcc r3, lr, #51 ; 0x33 + aec: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + af0: 572f3539 undefined + af4: 4b203233 blmi 80d3c8 + af8: 534b4349 movtpl r4, #45897 ; 0xb349 + afc: 54524154 ldrbpl r4, [r2], #-340 + b00: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b04: 4d524120 ldfmie f4, [r2, #-128] + b08: 03800100 orreq r0, r0, #0 ; 0x0 + b0c: 00140000 andseq r0, r4, r0 + b10: 6d050000 stcvs 0, cr0, [r5] + b14: 70736944 rsbsvc r6, r3, r4, asr #18 + b18: 5079616c rsbspl r6, r9, ip, ror #2 + b1c: 6d617261 sfmvs f7, 2, [r1, #-388]! + b20: 3f100073 svccc 0x00100073 + b24: 01000008 tsteq r0, r8 + b28: 001801b9 ldrheq r0, [r8], -r9 + b2c: 52b00305 adcspl r0, r0, #335544320 ; 0x14000000 + b30: 00000040 andeq r0, r0, r0, asr #32 + b34: 00000108 andeq r0, r0, r8, lsl #2 + b38: 00840003 addeq r0, r4, r3 + b3c: 01040000 tsteq r4, r0 + b40: 445c3a43 ldrbmi r3, [ip], #-2627 + b44: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b48: 73746e65 cmnvc r4, #1616 ; 0x650 + b4c: 646e6120 strbtvs r6, [lr], #-288 + b50: 74655320 strbtvc r5, [r5], #-800 + b54: 676e6974 undefined + b58: 616d5c73 smcvs 54723 + b5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b6c: 775c7374 undefined + b70: 6f632d73 svcvs 0x00632d73 + b74: 6f72746e svcvs 0x0072746e + b78: 65575c6c ldrbvs r5, [r7, #-3180] + b7c: 65687461 strbvs r7, [r8, #-1121]! + b80: 74532072 ldrbvc r2, [r3], #-114 + b84: 6f697461 svcvs 0x00697461 + b88: 6f43206e svcvs 0x0043206e + b8c: 6f72746e svcvs 0x0072746e + b90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b94: 7070415c rsbsvc r4, r0, ip, asr r1 + b98: 6163696c cmnvs r3, ip, ror #18 + b9c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + ba0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + ba4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + ba8: 445c7365 ldrbmi r7, [ip], #-869 + bac: 6c707369 ldclvs 3, cr7, [r0], #-420 + bb0: 632e7961 teqvs lr, #1589248 ; 0x184000 + bb4: 52414900 subpl r4, r1, #0 ; 0x0 + bb8: 534e4120 movtpl r4, #57632 ; 0xe120 + bbc: 2f432049 svccs 0x00432049 + bc0: 202b2b43 eorcs r2, fp, r3, asr #22 + bc4: 706d6f43 rsbvc r6, sp, r3, asr #30 + bc8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + bcc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + bd0: 322e3033 eorcc r3, lr, #51 ; 0x33 + bd4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + bd8: 572f3539 undefined + bdc: 4b203233 blmi 80d4b0 + be0: 534b4349 movtpl r4, #45897 ; 0xb349 + be4: 54524154 ldrbpl r4, [r2], #-340 + be8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + bec: 4d524120 ldfmie f4, [r2, #-128] + bf0: 03800100 orreq r0, r0, #0 ; 0x0 + bf4: 00140000 andseq r0, r4, r0 + bf8: 6d050000 stcvs 0, cr0, [r5] + bfc: 6f727245 svcvs 0x00727245 + c00: 646e4972 strbtvs r4, [lr], #-2418 + c04: 74616369 strbtvc r6, [r1], #-873 + c08: 1000726f andne r7, r0, pc, ror #4 + c0c: 00000415 andeq r0, r0, r5, lsl r4 + c10: 1c01de01 stcne 14, cr13, [r1], {1} + c14: a9030500 stmdbge r3, {r8, sl} + c18: 05004052 streq r4, [r0, #-82] + c1c: 4c73496d ldclmi 9, cr4, [r3], #-436 + c20: 6e496463 cdpvs 4, 4, cr6, cr9, cr3, {3} + c24: 61697469 cmnvs r9, r9, ror #8 + c28: 657a696c ldrbvs r6, [sl, #-2412]! + c2c: 02100064 andseq r0, r0, #100 ; 0x64 + c30: 01000008 tsteq r0, r8 + c34: 000f01db ldrdeq r0, [pc], -fp + c38: 52a80305 adcpl r0, r8, #335544320 ; 0x14000000 + c3c: 00000040 andeq r0, r0, r0, asr #32 + c40: 000000e0 andeq r0, r0, r0, ror #1 + c44: 00840003 addeq r0, r4, r3 + c48: 01040000 tsteq r4, r0 + c4c: 445c3a43 ldrbmi r3, [ip], #-2627 + c50: 6d75636f ldclvs 3, cr6, [r5, #-444]! + c54: 73746e65 cmnvc r4, #1616 ; 0x650 + c58: 646e6120 strbtvs r6, [lr], #-288 + c5c: 74655320 strbtvc r5, [r5], #-800 + c60: 676e6974 undefined + c64: 616d5c73 smcvs 54723 + c68: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + c6c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + c70: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + c74: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + c78: 775c7374 undefined + c7c: 6f632d73 svcvs 0x00632d73 + c80: 6f72746e svcvs 0x0072746e + c84: 65575c6c ldrbvs r5, [r7, #-3180] + c88: 65687461 strbvs r7, [r8, #-1121]! + c8c: 74532072 ldrbvc r2, [r3], #-114 + c90: 6f697461 svcvs 0x00697461 + c94: 6f43206e svcvs 0x0043206e + c98: 6f72746e svcvs 0x0072746e + c9c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ca0: 7070415c rsbsvc r4, r0, ip, asr r1 + ca4: 6163696c cmnvs r3, ip, ror #18 + ca8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + cac: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + cb0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + cb4: 445c7365 ldrbmi r7, [ip], #-869 + cb8: 6c707369 ldclvs 3, cr7, [r0], #-420 + cbc: 632e7961 teqvs lr, #1589248 ; 0x184000 + cc0: 52414900 subpl r4, r1, #0 ; 0x0 + cc4: 534e4120 movtpl r4, #57632 ; 0xe120 + cc8: 2f432049 svccs 0x00432049 + ccc: 202b2b43 eorcs r2, fp, r3, asr #22 + cd0: 706d6f43 rsbvc r6, sp, r3, asr #30 + cd4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + cd8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + cdc: 322e3033 eorcc r3, lr, #51 ; 0x33 + ce0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ce4: 572f3539 undefined + ce8: 4b203233 blmi 80d5bc + cec: 534b4349 movtpl r4, #45897 ; 0xb349 + cf0: 54524154 ldrbpl r4, [r2], #-340 + cf4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + cf8: 4d524120 ldfmie f4, [r2, #-128] + cfc: 03800100 orreq r0, r0, #0 ; 0x0 + d00: 00140000 andseq r0, r4, r0 + d04: 6d050000 stcvs 0, cr0, [r5] + d08: 656e694c strbvs r6, [lr, #-2380]! + d0c: 61726150 cmnvs r2, r0, asr r1 + d10: 1000736d andne r7, r0, sp, ror #6 + d14: 00000582 andeq r0, r0, r2, lsl #11 + d18: 1501ce01 strne ip, [r1, #-3585] + d1c: 88030500 stmdahi r3, {r8, sl} + d20: 00004054 andeq r4, r0, r4, asr r0 + d24: 000000f0 strdeq r0, [r0], -r0 + d28: 00840003 addeq r0, r4, r3 + d2c: 07040000 streq r0, [r4, -r0] + d30: 445c3a43 ldrbmi r3, [ip], #-2627 + d34: 6d75636f ldclvs 3, cr6, [r5, #-444]! + d38: 73746e65 cmnvc r4, #1616 ; 0x650 + d3c: 646e6120 strbtvs r6, [lr], #-288 + d40: 74655320 strbtvc r5, [r5], #-800 + d44: 676e6974 undefined + d48: 616d5c73 smcvs 54723 + d4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + d50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + d54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + d58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + d5c: 775c7374 undefined + d60: 6f632d73 svcvs 0x00632d73 + d64: 6f72746e svcvs 0x0072746e + d68: 65575c6c ldrbvs r5, [r7, #-3180] + d6c: 65687461 strbvs r7, [r8, #-1121]! + d70: 74532072 ldrbvc r2, [r3], #-114 + d74: 6f697461 svcvs 0x00697461 + d78: 6f43206e svcvs 0x0043206e + d7c: 6f72746e svcvs 0x0072746e + d80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + d84: 7070415c rsbsvc r4, r0, ip, asr r1 + d88: 6163696c cmnvs r3, ip, ror #18 + d8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + d90: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + d94: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + d98: 445c7365 ldrbmi r7, [ip], #-869 + d9c: 6c707369 ldclvs 3, cr7, [r0], #-420 + da0: 632e7961 teqvs lr, #1589248 ; 0x184000 + da4: 52414900 subpl r4, r1, #0 ; 0x0 + da8: 534e4120 movtpl r4, #57632 ; 0xe120 + dac: 2f432049 svccs 0x00432049 + db0: 202b2b43 eorcs r2, fp, r3, asr #22 + db4: 706d6f43 rsbvc r6, sp, r3, asr #30 + db8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + dbc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + dc0: 322e3033 eorcc r3, lr, #51 ; 0x33 + dc4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + dc8: 572f3539 undefined + dcc: 4b203233 blmi 80d6a0 + dd0: 534b4349 movtpl r4, #45897 ; 0xb349 + dd4: 54524154 ldrbpl r4, [r2], #-340 + dd8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + ddc: 4d524120 ldfmie f4, [r2, #-128] + de0: 19640100 stmdbne r4!, {r8}^ + de4: 1b560040 blne 1580eec + de8: 05ec0040 strbeq r0, [ip, #64]! + dec: 00cc0000 sbceq r0, ip, r0 + df0: 17100000 ldrne r0, [r0, -r0] + df4: 08000003 stmdaeq r0, {r0, r1} + df8: 000000f3 strdeq r0, [r0], -r3 + dfc: 5f44434c svcpl 0x0044434c + e00: 74696e49 strbtvc r6, [r9], #-3657 + e04: 02800100 addeq r0, r0, #0 ; 0x0 + e08: 00ce0106 sbceq r0, lr, r6, lsl #2 + e0c: 19640000 stmdbne r4!, {}^ + e10: 1b560040 blne 1580f18 + e14: 00000040 andeq r0, r0, r0, asr #32 + e18: 00000174 andeq r0, r0, r4, ror r1 + e1c: 00840003 addeq r0, r4, r3 + e20: 07040000 streq r0, [r4, -r0] + e24: 445c3a43 ldrbmi r3, [ip], #-2627 + e28: 6d75636f ldclvs 3, cr6, [r5, #-444]! + e2c: 73746e65 cmnvc r4, #1616 ; 0x650 + e30: 646e6120 strbtvs r6, [lr], #-288 + e34: 74655320 strbtvc r5, [r5], #-800 + e38: 676e6974 undefined + e3c: 616d5c73 smcvs 54723 + e40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + e44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + e48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + e4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + e50: 775c7374 undefined + e54: 6f632d73 svcvs 0x00632d73 + e58: 6f72746e svcvs 0x0072746e + e5c: 65575c6c ldrbvs r5, [r7, #-3180] + e60: 65687461 strbvs r7, [r8, #-1121]! + e64: 74532072 ldrbvc r2, [r3], #-114 + e68: 6f697461 svcvs 0x00697461 + e6c: 6f43206e svcvs 0x0043206e + e70: 6f72746e svcvs 0x0072746e + e74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + e78: 7070415c rsbsvc r4, r0, ip, asr r1 + e7c: 6163696c cmnvs r3, ip, ror #18 + e80: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + e84: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + e88: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + e8c: 445c7365 ldrbmi r7, [ip], #-869 + e90: 6c707369 ldclvs 3, cr7, [r0], #-420 + e94: 632e7961 teqvs lr, #1589248 ; 0x184000 + e98: 52414900 subpl r4, r1, #0 ; 0x0 + e9c: 534e4120 movtpl r4, #57632 ; 0xe120 + ea0: 2f432049 svccs 0x00432049 + ea4: 202b2b43 eorcs r2, fp, r3, asr #22 + ea8: 706d6f43 rsbvc r6, sp, r3, asr #30 + eac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + eb0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + eb4: 322e3033 eorcc r3, lr, #51 ; 0x33 + eb8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ebc: 572f3539 undefined + ec0: 4b203233 blmi 80d794 + ec4: 534b4349 movtpl r4, #45897 ; 0xb349 + ec8: 54524154 ldrbpl r4, [r2], #-340 + ecc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + ed0: 4d524120 ldfmie f4, [r2, #-128] + ed4: 1b560100 blne 15812dc + ed8: 1bae0040 blne feb80fe0 + edc: 06e00040 strbteq r0, [r0], r0, asr #32 + ee0: 03c60000 biceq r0, r6, #0 ; 0x0 + ee4: 17100000 ldrne r0, [r0, -r0] + ee8: 08000003 stmdaeq r0, {r0, r1} + eec: 00000175 andeq r0, r0, r5, ror r1 + ef0: 5f44434c svcpl 0x0044434c + ef4: 61656c43 cmnvs r5, r3, asr #24 + ef8: 73694472 cmnvc r9, #1912602624 ; 0x72000000 + efc: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + f00: 03c10100 biceq r0, r1, #0 ; 0x0 + f04: 01120106 tsteq r2, r6, lsl #2 + f08: 1b560000 blne 1580f10 + f0c: 1bae0040 blne feb81014 + f10: 6c050040 stcvs 0, cr0, [r5], {64} + f14: 73656e69 cmnvc r5, #1680 ; 0x690 + f18: 6c436f54 mcrrvs 15, 5, r6, r3, cr4 + f1c: 00726165 rsbseq r6, r2, r5, ror #2 + f20: 0007f310 andeq pc, r7, r0, lsl r3 + f24: 03c40100 biceq r0, r4, #0 ; 0x0 + f28: 03050012 movweq r0, #20498 ; 0x5012 + f2c: 004052aa subeq r5, r0, sl, lsr #5 + f30: 6e696c09 cdpvs 12, 6, cr6, cr9, cr9, {0} + f34: c5010065 strgt r0, [r1, #-101] + f38: f3100b03 vqrdmulh.s16 d0, d0, d3 + f3c: 4a000007 bmi f60 <__USR_stack_size+0x760> + f40: 09000001 stmdbeq r0, {r0} + f44: 656c6564 strbvs r6, [ip, #-1380]! + f48: 72576574 subsvc r6, r7, #486539264 ; 0x1d000000 + f4c: 4c657469 cfstrdmi mvd7, [r5], #-420 + f50: 73656e69 cmnvc r5, #1680 ; 0x690 + f54: 03c50100 biceq r0, r5, #0 ; 0x0 + f58: 07f31011 undefined + f5c: 01670000 cmneq r7, r0 + f60: 580a0000 stmdapl sl, {} + f64: 68000001 stmdavs r0, {r0} + f68: 7200401b andvc r4, r0, #27 ; 0x1b + f6c: 0000401b andeq r4, r0, fp, lsl r0 + f70: 0001740a andeq r7, r1, sl, lsl #8 + f74: 401b7400 andsmi r7, fp, r0, lsl #8 + f78: 401ba600 andsmi sl, fp, r0, lsl #12 + f7c: 01730a00 cmneq r3, r0, lsl #20 + f80: 1b8c0000 blne fe300f88 + f84: 1ba60040 blne fe98108c + f88: 00000040 andeq r0, r0, r0, asr #32 + f8c: 00000000 andeq r0, r0, r0 + f90: 0000018c andeq r0, r0, ip, lsl #3 + f94: 00840003 addeq r0, r4, r3 + f98: 07040000 streq r0, [r4, -r0] + f9c: 445c3a43 ldrbmi r3, [ip], #-2627 + fa0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + fa4: 73746e65 cmnvc r4, #1616 ; 0x650 + fa8: 646e6120 strbtvs r6, [lr], #-288 + fac: 74655320 strbtvc r5, [r5], #-800 + fb0: 676e6974 undefined + fb4: 616d5c73 smcvs 54723 + fb8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + fbc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + fc0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + fc4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + fc8: 775c7374 undefined + fcc: 6f632d73 svcvs 0x00632d73 + fd0: 6f72746e svcvs 0x0072746e + fd4: 65575c6c ldrbvs r5, [r7, #-3180] + fd8: 65687461 strbvs r7, [r8, #-1121]! + fdc: 74532072 ldrbvc r2, [r3], #-114 + fe0: 6f697461 svcvs 0x00697461 + fe4: 6f43206e svcvs 0x0043206e + fe8: 6f72746e svcvs 0x0072746e + fec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ff0: 7070415c rsbsvc r4, r0, ip, asr r1 + ff4: 6163696c cmnvs r3, ip, ror #18 + ff8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + ffc: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1000: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1004: 445c7365 ldrbmi r7, [ip], #-869 + 1008: 6c707369 ldclvs 3, cr7, [r0], #-420 + 100c: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1010: 52414900 subpl r4, r1, #0 ; 0x0 + 1014: 534e4120 movtpl r4, #57632 ; 0xe120 + 1018: 2f432049 svccs 0x00432049 + 101c: 202b2b43 eorcs r2, fp, r3, asr #22 + 1020: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1024: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1028: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 102c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1030: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1034: 572f3539 undefined + 1038: 4b203233 blmi 80d90c + 103c: 534b4349 movtpl r4, #45897 ; 0xb349 + 1040: 54524154 ldrbpl r4, [r2], #-340 + 1044: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1048: 4d524120 ldfmie f4, [r2, #-128] + 104c: 1bb40100 blne fed01454 + 1050: 1c1c0040 ldcne 0, cr0, [ip], {64} + 1054: 07b80040 ldreq r0, [r8, r0, asr #32]! + 1058: 046d0000 strbteq r0, [sp] + 105c: 17100000 ldrne r0, [r0, -r0] + 1060: 08000003 stmdaeq r0, {r0, r1} + 1064: 0000018c andeq r0, r0, ip, lsl #3 + 1068: 5f44434c svcpl 0x0044434c + 106c: 74697257 strbtvc r7, [r9], #-599 + 1070: 72745365 rsbsvc r5, r4, #-1811939327 ; 0x94000001 + 1074: 5f676e69 svcpl 0x00676e69 + 1078: 6d726f4e ldclvs 15, cr6, [r2, #-312]! + 107c: 6f466c61 svcvs 0x00466c61 + 1080: 0100746e tsteq r0, lr, ror #8 + 1084: 010603fc strdeq r0, [r6, -ip] + 1088: 00000184 andeq r0, r0, r4, lsl #3 + 108c: 00401bb4 strheq r1, [r0], #-180 + 1090: 00401c1c subeq r1, r0, ip, lsl ip + 1094: 6e696c0b cdpvs 12, 6, cr6, cr9, cr11, {0} + 1098: fc010065 stc2 0, cr0, [r1], {101} + 109c: f3102903 vmls.i16 d2, d0, d3 + 10a0: b0000007 andlt r0, r0, r7 + 10a4: 0b000001 bleq 10b0 <__USR_stack_size+0x8b0> + 10a8: 72747370 rsbsvc r7, r4, #-1073741823 ; 0xc0000001 + 10ac: 03fc0100 mvnseq r0, #0 ; 0x0 + 10b0: 042a1038 strteq r1, [sl], #-56 + 10b4: 01cd0000 biceq r0, sp, r0 + 10b8: 6c090000 stcvs 0, cr0, [r9], {0} + 10bc: 01006e65 tsteq r0, r5, ror #28 + 10c0: 100a03fe strdne r0, [sl], -lr + 10c4: 000007f3 strdeq r0, [r0], -r3 + 10c8: 000001ea andeq r0, r0, sl, ror #3 + 10cc: 00016d0c andeq r6, r1, ip, lsl #26 + 10d0: 24f61000 ldrbtcs r1, [r6] + 10d4: 1bcc0000 blne ff3010dc + 10d8: 1bf20040 blne ffc811e0 + 10dc: 100d0040 andne r0, sp, r0, asr #32 + 10e0: 00002510 andeq r2, r0, r0, lsl r5 + 10e4: 00000207 andeq r0, r0, r7, lsl #4 + 10e8: 2522100e strcs r1, [r2, #-14]! + 10ec: 02240000 eoreq r0, r4, #0 ; 0x0 + 10f0: 100e0000 andne r0, lr, r0 + 10f4: 00002532 andeq r2, r0, r2, lsr r5 + 10f8: 00000241 andeq r0, r0, r1, asr #4 + 10fc: 018b0a00 orreq r0, fp, r0, lsl #20 + 1100: 1bf60000 blne ffd81108 + 1104: 1c180040 ldcne 0, cr0, [r8], {64} + 1108: 69090040 stmdbvs r9, {r6} + 110c: 04830100 streq r0, [r3], #256 + 1110: 07f3100e ldrbeq r1, [r3, lr]! + 1114: 025e0000 subseq r0, lr, #0 ; 0x0 + ... + 1120: 0000022c andeq r0, r0, ip, lsr #4 + 1124: 00840003 addeq r0, r4, r3 + 1128: 07040000 streq r0, [r4, -r0] + 112c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1130: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1134: 73746e65 cmnvc r4, #1616 ; 0x650 + 1138: 646e6120 strbtvs r6, [lr], #-288 + 113c: 74655320 strbtvc r5, [r5], #-800 + 1140: 676e6974 undefined + 1144: 616d5c73 smcvs 54723 + 1148: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 114c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1150: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1154: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1158: 775c7374 undefined + 115c: 6f632d73 svcvs 0x00632d73 + 1160: 6f72746e svcvs 0x0072746e + 1164: 65575c6c ldrbvs r5, [r7, #-3180] + 1168: 65687461 strbvs r7, [r8, #-1121]! + 116c: 74532072 ldrbvc r2, [r3], #-114 + 1170: 6f697461 svcvs 0x00697461 + 1174: 6f43206e svcvs 0x0043206e + 1178: 6f72746e svcvs 0x0072746e + 117c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1180: 7070415c rsbsvc r4, r0, ip, asr r1 + 1184: 6163696c cmnvs r3, ip, ror #18 + 1188: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 118c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1190: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1194: 445c7365 ldrbmi r7, [ip], #-869 + 1198: 6c707369 ldclvs 3, cr7, [r0], #-420 + 119c: 632e7961 teqvs lr, #1589248 ; 0x184000 + 11a0: 52414900 subpl r4, r1, #0 ; 0x0 + 11a4: 534e4120 movtpl r4, #57632 ; 0xe120 + 11a8: 2f432049 svccs 0x00432049 + 11ac: 202b2b43 eorcs r2, fp, r3, asr #22 + 11b0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 11b4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 11b8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 11bc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 11c0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 11c4: 572f3539 undefined + 11c8: 4b203233 blmi 80da9c + 11cc: 534b4349 movtpl r4, #45897 ; 0xb349 + 11d0: 54524154 ldrbpl r4, [r2], #-340 + 11d4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 11d8: 4d524120 ldfmie f4, [r2, #-128] + 11dc: 1c240100 stfnes f0, [r4] + 11e0: 1db80040 ldcne 0, cr0, [r8, #256]! + 11e4: 08a00040 stmiaeq r0!, {r6} + 11e8: 05590000 ldrbeq r0, [r9] + 11ec: 17100000 ldrne r0, [r0, -r0] + 11f0: 08000003 stmdaeq r0, {r0, r1} + 11f4: 0000022e andeq r0, r0, lr, lsr #4 + 11f8: 5f44434c svcpl 0x0044434c + 11fc: 74697257 strbtvc r7, [r9], #-599 + 1200: 72745365 rsbsvc r5, r4, #-1811939327 ; 0x94000001 + 1204: 56676e69 strbtpl r6, [r7], -r9, ror #28 + 1208: 65756c61 ldrbvs r6, [r5, #-3169]! + 120c: 04970100 ldreq r0, [r7], #256 + 1210: 02710106 rsbseq r0, r1, #-2147483647 ; 0x80000001 + 1214: 1c240000 stcne 0, cr0, [r4] + 1218: 1db80040 ldcne 0, cr0, [r8, #256]! + 121c: 700b0040 andvc r0, fp, r0, asr #32 + 1220: 00727473 rsbseq r7, r2, r3, ror r4 + 1224: 0c049901 stceq 9, cr9, [r4], {1} + 1228: 00042a10 andeq r2, r4, r0, lsl sl + 122c: 0002aa00 andeq sl, r2, r0, lsl #20 + 1230: 61760b00 cmnvs r6, r0, lsl #22 + 1234: 0065756c rsbeq r7, r5, ip, ror #10 + 1238: 0c049a01 stceq 10, cr9, [r4], {1} + 123c: 00081f10 andeq r1, r8, r0, lsl pc + 1240: 0002de00 andeq sp, r2, r0, lsl #28 + 1244: 696c0b00 stmdbvs ip!, {r8, r9, fp}^ + 1248: 0100656e tsteq r0, lr, ror #10 + 124c: 100b049b mulne fp, fp, r4 + 1250: 000007f3 strdeq r0, [r0], -r3 + 1254: 00000325 andeq r0, r0, r5, lsr #6 + 1258: 6d756e0b ldclvs 14, cr6, [r5, #-44]! + 125c: 46726562 ldrbtmi r6, [r2], -r2, ror #10 + 1260: 616d726f cmnvs sp, pc, ror #4 + 1264: 9c010074 stcls 0, cr0, [r1], {116} + 1268: b1100904 tstlt r0, r4, lsl #18 + 126c: 59000007 stmdbpl r0, {r0, r1, r2} + 1270: 09000003 stmdbeq r0, {r0, r1} + 1274: 44766964 ldrbtmi r6, [r6], #-2404 + 1278: 01006365 tsteq r0, r5, ror #6 + 127c: 100b04a0 andne r0, fp, r0, lsr #9 + 1280: 00000810 andeq r0, r0, r0, lsl r8 + 1284: 0000038b andeq r0, r0, fp, lsl #7 + 1288: 76696409 strbtvc r6, [r9], -r9, lsl #8 + 128c: 00786548 rsbseq r6, r8, r8, asr #10 + 1290: 1904a001 stmdbne r4, {r0, sp, pc} + 1294: 00081010 andeq r1, r8, r0, lsl r0 + 1298: 0003e700 andeq lr, r3, r0, lsl #14 + 129c: 6f6c0900 svcvs 0x006c0900 + 12a0: 0100706f tsteq r0, pc, rrx + 12a4: 100b04a1 andne r0, fp, r1, lsr #9 + 12a8: 000007f3 strdeq r0, [r0], -r3 + 12ac: 000003ef andeq r0, r0, pc, ror #7 + 12b0: 01006909 tsteq r0, r9, lsl #18 + 12b4: 101304a1 andsne r0, r3, r1, lsr #9 + 12b8: 000007f3 strdeq r0, [r0], -r3 + 12bc: 00000453 andeq r0, r0, r3, asr r4 + 12c0: 756f6309 strbvc r6, [pc, #-777]! ; fbf <__USR_stack_size+0x7bf> + 12c4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 12c8: 04a10100 strteq r0, [r1], #256 + 12cc: 07f31017 undefined + 12d0: 04af0000 strteq r0, [pc], #0 ; 12d8 <__USR_stack_size+0xad8> + 12d4: 61090000 tstvs r9, r0 + 12d8: a1010048 tstge r1, r8, asr #32 + 12dc: 5b102204 blpl 409af4 + 12e0: 4a000005 bmi 12fc <__USR_stack_size+0xafc> + 12e4: 09000005 stmdbeq r0, {r0, r2} + 12e8: 78654861 stmdavc r5!, {r0, r5, r6, fp, lr}^ + 12ec: 04a10100 strteq r0, [r1], #256 + 12f0: 055b1029 ldrbeq r1, [fp, #-41] + 12f4: 05680000 strbeq r0, [r8]! + 12f8: 61090000 tstvs r9, r0 + 12fc: 00636544 rsbeq r6, r3, r4, asr #10 + 1300: 0b04a201 bleq 129b0c + 1304: 00055b10 andeq r5, r5, r0, lsl fp + 1308: 00058600 andeq r8, r5, r0, lsl #12 + 130c: 53610900 cmnpl r1, #0 ; 0x0 + 1310: 6e697274 mcrvs 2, 3, r7, cr9, cr4, {3} + 1314: a2010067 andge r0, r1, #103 ; 0x67 + 1318: 9a101404 bls 406330 + 131c: a5000005 strge r0, [r0, #-5] + 1320: 0a000005 beq 133c <__USR_stack_size+0xb3c> + 1324: 0000021f andeq r0, r0, pc, lsl r2 + 1328: 00401c3e subeq r1, r0, lr, lsr ip + 132c: 00401d18 subeq r1, r0, r8, lsl sp + 1330: 00021e0a andeq r1, r2, sl, lsl #28 + 1334: 401c6c00 andsmi r6, ip, r0, lsl #24 + 1338: 401cb200 andsmi fp, ip, r0, lsl #4 + 133c: 0a000000 beq 1344 <__USR_stack_size+0xb44> + 1340: 0000022d andeq r0, r0, sp, lsr #4 + 1344: 00401d20 subeq r1, r0, r0, lsr #26 + 1348: 00401da0 subeq r1, r0, r0, lsr #27 + 134c: 00000000 andeq r0, r0, r0 + 1350: 0000026c andeq r0, r0, ip, ror #4 + 1354: 00840003 addeq r0, r4, r3 + 1358: 07040000 streq r0, [r4, -r0] + 135c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1360: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1364: 73746e65 cmnvc r4, #1616 ; 0x650 + 1368: 646e6120 strbtvs r6, [lr], #-288 + 136c: 74655320 strbtvc r5, [r5], #-800 + 1370: 676e6974 undefined + 1374: 616d5c73 smcvs 54723 + 1378: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 137c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1380: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1384: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1388: 775c7374 undefined + 138c: 6f632d73 svcvs 0x00632d73 + 1390: 6f72746e svcvs 0x0072746e + 1394: 65575c6c ldrbvs r5, [r7, #-3180] + 1398: 65687461 strbvs r7, [r8, #-1121]! + 139c: 74532072 ldrbvc r2, [r3], #-114 + 13a0: 6f697461 svcvs 0x00697461 + 13a4: 6f43206e svcvs 0x0043206e + 13a8: 6f72746e svcvs 0x0072746e + 13ac: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 13b0: 7070415c rsbsvc r4, r0, ip, asr r1 + 13b4: 6163696c cmnvs r3, ip, ror #18 + 13b8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 13bc: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 13c0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 13c4: 445c7365 ldrbmi r7, [ip], #-869 + 13c8: 6c707369 ldclvs 3, cr7, [r0], #-420 + 13cc: 632e7961 teqvs lr, #1589248 ; 0x184000 + 13d0: 52414900 subpl r4, r1, #0 ; 0x0 + 13d4: 534e4120 movtpl r4, #57632 ; 0xe120 + 13d8: 2f432049 svccs 0x00432049 + 13dc: 202b2b43 eorcs r2, fp, r3, asr #22 + 13e0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 13e4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 13e8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 13ec: 322e3033 eorcc r3, lr, #51 ; 0x33 + 13f0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 13f4: 572f3539 undefined + 13f8: 4b203233 blmi 80dccc + 13fc: 534b4349 movtpl r4, #45897 ; 0xb349 + 1400: 54524154 ldrbpl r4, [r2], #-340 + 1404: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1408: 4d524120 ldfmie f4, [r2, #-128] + 140c: 1dbc0100 ldfnes f0, [ip] + 1410: 1fac0040 svcne 0x00ac0040 + 1414: 09d00040 ldmibeq r0, {r6}^ + 1418: 06ac0000 strteq r0, [ip], r0 + 141c: 17100000 ldrne r0, [r0, -r0] + 1420: 08000003 stmdaeq r0, {r0, r1} + 1424: 0000026d andeq r0, r0, sp, ror #4 + 1428: 5f44434c svcpl 0x0044434c + 142c: 74697257 strbtvc r7, [r9], #-599 + 1430: 72745365 rsbsvc r5, r4, #-1811939327 ; 0x94000001 + 1434: 44676e69 strbtmi r6, [r7], #-3689 + 1438: 61566365 cmpvs r6, r5, ror #6 + 143c: 0065756c rsbeq r7, r5, ip, ror #10 + 1440: 0604ed01 streq lr, [r4], -r1, lsl #26 + 1444: 0005c301 andeq ip, r5, r1, lsl #6 + 1448: 401dbc00 andsmi fp, sp, r0, lsl #24 + 144c: 401fac00 andsmi sl, pc, r0, lsl #24 + 1450: 73700b00 cmnvc r0, #0 ; 0x0 + 1454: 01007274 tsteq r0, r4, ror r2 + 1458: 100c04ef andne r0, ip, pc, ror #9 + 145c: 0000042a andeq r0, r0, sl, lsr #8 + 1460: 00000609 andeq r0, r0, r9, lsl #12 + 1464: 6c61760b stclvs 6, cr7, [r1], #-44 + 1468: 01006575 tsteq r0, r5, ror r5 + 146c: 100c04f0 strdne r0, [ip], -r0 + 1470: 0000081f andeq r0, r0, pc, lsl r8 + 1474: 0000063d andeq r0, r0, sp, lsr r6 + 1478: 6e696c0b cdpvs 12, 6, cr6, cr9, cr11, {0} + 147c: f1010065 setend le + 1480: f3100b04 vqrdmulh.s16 d0, d0, d4 + 1484: 71000007 tstvc r0, r7 + 1488: 0b000006 bleq 14a8 <__USR_stack_size+0xca8> + 148c: 626d756e rsbvs r7, sp, #461373440 ; 0x1b800000 + 1490: 6f467265 svcvs 0x00467265 + 1494: 74616d72 strbtvc r6, [r1], #-3442 + 1498: 04f20100 ldrbteq r0, [r2], #256 + 149c: 07b11009 ldreq r1, [r1, r9]! + 14a0: 06a50000 strteq r0, [r5], r0 + 14a4: 64090000 strvs r0, [r9] + 14a8: 65447669 strbvs r7, [r4, #-1641] + 14ac: f6010063 undefined instruction 0xf6010063 + 14b0: 10100b04 andsne r0, r0, r4, lsl #22 + 14b4: d9000008 stmdble r0, {r3} + 14b8: 09000006 stmdbeq r0, {r1, r2} + 14bc: 48766964 ldmdami r6!, {r2, r5, r6, r8, fp, sp, lr}^ + 14c0: 01007865 tsteq r0, r5, ror #16 + 14c4: 101904f6 ldrshne r0, [r9], -r6 + 14c8: 00000810 andeq r0, r0, r0, lsl r8 + 14cc: 00000720 andeq r0, r0, r0, lsr #14 + 14d0: 6f6f6c09 svcvs 0x006f6c09 + 14d4: f7010070 undefined instruction 0xf7010070 + 14d8: f3100b04 vqrdmulh.s16 d0, d0, d4 + 14dc: 28000007 stmdacs r0, {r0, r1, r2} + 14e0: 09000007 stmdbeq r0, {r0, r1, r2} + 14e4: f7010069 undefined instruction 0xf7010069 + 14e8: f3101304 vcgt.u16 d1, d0, d4 + 14ec: 75000007 strvc r0, [r0, #-7] + 14f0: 09000007 stmdbeq r0, {r0, r1, r2} + 14f4: 6e756f63 cdpvs 15, 7, cr6, cr5, cr3, {3} + 14f8: 00726574 rsbseq r6, r2, r4, ror r5 + 14fc: 1704f701 strne pc, [r4, -r1, lsl #14] + 1500: 0007f310 andeq pc, r7, r0, lsl r3 + 1504: 0007bc00 andeq fp, r7, r0, lsl #24 + 1508: 48610900 stmdami r1!, {r8, fp}^ + 150c: 04f70100 ldrbteq r0, [r7], #256 + 1510: 055b1022 ldrbeq r1, [fp, #-34] + 1514: 08570000 ldmdaeq r7, {}^ + 1518: 61090000 tstvs r9, r0 + 151c: 00786548 rsbseq r6, r8, r8, asr #10 + 1520: 2904f701 stmdbcs r4, {r0, r8, r9, sl, ip, sp, lr, pc} + 1524: 00055b10 andeq r5, r5, r0, lsl fp + 1528: 00087500 andeq r7, r8, r0, lsl #10 + 152c: 44610900 strbtmi r0, [r1], #-2304 + 1530: 01006365 tsteq r0, r5, ror #6 + 1534: 100b04f8 strdne r0, [fp], -r8 + 1538: 0000055b andeq r0, r0, fp, asr r5 + 153c: 00000893 muleq r0, r3, r8 + 1540: 74536109 ldrbvc r6, [r3], #-265 + 1544: 676e6972 undefined + 1548: 04f80100 ldrbteq r0, [r8], #256 + 154c: 059a1014 ldreq r1, [sl, #20] + 1550: 08b20000 ldmeq r2!, {} + 1554: 75090000 strvc r0, [r9] + 1558: 6d655438 cfstrdvs mvd5, [r5, #-224]! + 155c: 6c615670 stclvs 6, cr5, [r1], #-448 + 1560: 04f90100 ldrbteq r0, [r9], #256 + 1564: 07f3100b ldrbeq r1, [r3, fp]! + 1568: 08d10000 ldmeq r1, {}^ + 156c: 75090000 strvc r0, [r9] + 1570: 756f4338 strbvc r4, [pc, #-824]! ; 1240 <__USR_stack_size+0xa40> + 1574: 0100746e tsteq r0, lr, ror #8 + 1578: 100b04fa strdne r0, [fp], -sl + 157c: 000007f3 strdeq r0, [r0], -r3 + 1580: 0000091e andeq r0, r0, lr, lsl r9 + 1584: 00025e0a andeq r5, r2, sl, lsl #28 + 1588: 401de200 andsmi lr, sp, r0, lsl #4 + 158c: 401ee000 andsmi lr, lr, r0 + 1590: 025d0a00 subseq r0, sp, #0 ; 0x0 + 1594: 1dec0000 stclne 0, cr0, [ip] + 1598: 1e8c0040 cdpne 0, 8, cr0, cr12, cr0, {2} + 159c: 5c0a0040 stcpl 0, cr0, [sl], {64} + 15a0: 1e000002 cdpne 0, 0, cr0, cr0, cr2, {0} + 15a4: 6800401e stmdavs r0, {r1, r2, r3, r4, lr} + 15a8: 0000401e andeq r4, r0, lr, lsl r0 + 15ac: 6c0a0000 stcvs 0, cr0, [sl], {0} + 15b0: ea000002 b 15c0 <__USR_stack_size+0xdc0> + 15b4: 8c00401e stchi 0, cr4, [r0], {30} + 15b8: 0000401f andeq r4, r0, pc, lsl r0 + 15bc: 00000000 andeq r0, r0, r0 + 15c0: 00000140 andeq r0, r0, r0, asr #2 + 15c4: 00840003 addeq r0, r4, r3 + 15c8: 07040000 streq r0, [r4, -r0] + 15cc: 445c3a43 ldrbmi r3, [ip], #-2627 + 15d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 15d4: 73746e65 cmnvc r4, #1616 ; 0x650 + 15d8: 646e6120 strbtvs r6, [lr], #-288 + 15dc: 74655320 strbtvc r5, [r5], #-800 + 15e0: 676e6974 undefined + 15e4: 616d5c73 smcvs 54723 + 15e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 15ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 15f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 15f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 15f8: 775c7374 undefined + 15fc: 6f632d73 svcvs 0x00632d73 + 1600: 6f72746e svcvs 0x0072746e + 1604: 65575c6c ldrbvs r5, [r7, #-3180] + 1608: 65687461 strbvs r7, [r8, #-1121]! + 160c: 74532072 ldrbvc r2, [r3], #-114 + 1610: 6f697461 svcvs 0x00697461 + 1614: 6f43206e svcvs 0x0043206e + 1618: 6f72746e svcvs 0x0072746e + 161c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1620: 7070415c rsbsvc r4, r0, ip, asr r1 + 1624: 6163696c cmnvs r3, ip, ror #18 + 1628: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 162c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1630: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1634: 445c7365 ldrbmi r7, [ip], #-869 + 1638: 6c707369 ldclvs 3, cr7, [r0], #-420 + 163c: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1640: 52414900 subpl r4, r1, #0 ; 0x0 + 1644: 534e4120 movtpl r4, #57632 ; 0xe120 + 1648: 2f432049 svccs 0x00432049 + 164c: 202b2b43 eorcs r2, fp, r3, asr #22 + 1650: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1654: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1658: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 165c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1660: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1664: 572f3539 undefined + 1668: 4b203233 blmi 80df3c + 166c: 534b4349 movtpl r4, #45897 ; 0xb349 + 1670: 54524154 ldrbpl r4, [r2], #-340 + 1674: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1678: 4d524120 ldfmie f4, [r2, #-128] + 167c: 1fac0100 svcne 0x00ac0100 + 1680: 1ffc0040 svcne 0x00fc0040 + 1684: 0b1c0040 bleq 70178c + 1688: 08220000 stmdaeq r2!, {} + 168c: 17100000 ldrne r0, [r0, -r0] + 1690: 08000003 stmdaeq r0, {r0, r1} + 1694: 00000141 andeq r0, r0, r1, asr #2 + 1698: 5f44434c svcpl 0x0044434c + 169c: 74697257 strbtvc r7, [r9], #-599 + 16a0: 6d6f4365 stclvs 3, cr4, [pc, #-404]! + 16a4: 646e616d strbtvs r6, [lr], #-365 + 16a8: 069c0100 ldreq r0, [ip], r0, lsl #2 + 16ac: 093d0106 ldmdbeq sp!, {r1, r2, r8} + 16b0: 1fac0000 svcne 0x00ac0000 + 16b4: 1ffc0040 svcne 0x00fc0040 + 16b8: 630b0040 movwvs r0, #45120 ; 0xb040 + 16bc: 616d6d6f cmnvs sp, pc, ror #26 + 16c0: 0100646e tsteq r0, lr, ror #8 + 16c4: 101f069c mulsne pc, ip, r6 + 16c8: 000007f3 strdeq r0, [r0], -r3 + 16cc: 0000095d andeq r0, r0, sp, asr r9 + 16d0: 0001230c andeq r2, r1, ip, lsl #6 + 16d4: 260e1000 strcs r1, [lr], -r0 + 16d8: 1fbe0000 svcne 0x00be0000 + 16dc: 1fd20040 svcne 0x00d20040 + 16e0: 0c000040 stceq 0, cr0, [r0], {64} + 16e4: 00000140 andeq r0, r0, r0, asr #2 + 16e8: 0026ee10 eoreq lr, r6, r0, lsl lr + 16ec: 401fe200 andsmi lr, pc, r0, lsl #4 + 16f0: 401ff600 andsmi pc, pc, r0, lsl #12 + 16f4: 02100d00 andseq r0, r0, #0 ; 0x0 + 16f8: 7a000027 bvc 179c <__USR_stack_size+0xf9c> + 16fc: 00000009 andeq r0, r0, r9 + 1700: 00000000 andeq r0, r0, r0 + 1704: 00000138 andeq r0, r0, r8, lsr r1 + 1708: 00840003 addeq r0, r4, r3 + 170c: 07040000 streq r0, [r4, -r0] + 1710: 445c3a43 ldrbmi r3, [ip], #-2627 + 1714: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1718: 73746e65 cmnvc r4, #1616 ; 0x650 + 171c: 646e6120 strbtvs r6, [lr], #-288 + 1720: 74655320 strbtvc r5, [r5], #-800 + 1724: 676e6974 undefined + 1728: 616d5c73 smcvs 54723 + 172c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1730: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1734: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1738: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 173c: 775c7374 undefined + 1740: 6f632d73 svcvs 0x00632d73 + 1744: 6f72746e svcvs 0x0072746e + 1748: 65575c6c ldrbvs r5, [r7, #-3180] + 174c: 65687461 strbvs r7, [r8, #-1121]! + 1750: 74532072 ldrbvc r2, [r3], #-114 + 1754: 6f697461 svcvs 0x00697461 + 1758: 6f43206e svcvs 0x0043206e + 175c: 6f72746e svcvs 0x0072746e + 1760: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1764: 7070415c rsbsvc r4, r0, ip, asr r1 + 1768: 6163696c cmnvs r3, ip, ror #18 + 176c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1770: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1774: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1778: 445c7365 ldrbmi r7, [ip], #-869 + 177c: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1780: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1784: 52414900 subpl r4, r1, #0 ; 0x0 + 1788: 534e4120 movtpl r4, #57632 ; 0xe120 + 178c: 2f432049 svccs 0x00432049 + 1790: 202b2b43 eorcs r2, fp, r3, asr #22 + 1794: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1798: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 179c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 17a0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 17a4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 17a8: 572f3539 undefined + 17ac: 4b203233 blmi 80e080 + 17b0: 534b4349 movtpl r4, #45897 ; 0xb349 + 17b4: 54524154 ldrbpl r4, [r2], #-340 + 17b8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 17bc: 4d524120 ldfmie f4, [r2, #-128] + 17c0: 1ffc0100 svcne 0x00fc0100 + 17c4: 20440040 subcs r0, r4, r0, asr #32 + 17c8: 0c040040 stceq 0, cr0, [r4], {64} + 17cc: 094e0000 stmdbeq lr, {}^ + 17d0: 17100000 ldrne r0, [r0, -r0] + 17d4: 08000003 stmdaeq r0, {r0, r1} + 17d8: 0000013b andeq r0, r0, fp, lsr r1 + 17dc: 5f44434c svcpl 0x0044434c + 17e0: 74697257 strbtvc r7, [r9], #-599 + 17e4: 74614465 strbtvc r4, [r1], #-1125 + 17e8: b8010061 stmdalt r1, {r0, r5, r6} + 17ec: 82010606 andhi r0, r1, #6291456 ; 0x600000 + 17f0: fc000009 stc2 0, cr0, [r0], {9} + 17f4: 4400401f strmi r4, [r0], #-31 + 17f8: 0b004020 bleq 11880 + 17fc: 61746164 cmnvs r4, r4, ror #2 + 1800: 06b80100 ldrteq r0, [r8], r0, lsl #2 + 1804: 07f3101c undefined + 1808: 09a20000 stmibeq r2!, {} + 180c: 1d0c0000 stcne 0, cr0, [ip] + 1810: 10000001 andne r0, r0, r1 + 1814: 0000260e andeq r2, r0, lr, lsl #12 + 1818: 00402014 subeq r2, r0, r4, lsl r0 + 181c: 00402028 subeq r2, r0, r8, lsr #32 + 1820: 013a0c00 teqeq sl, r0, lsl #24 + 1824: ee100000 wxor wr0, wr0, wr0 + 1828: 28000026 stmdacs r0, {r1, r2, r5} + 182c: 3c004020 stccc 0, cr4, [r0], {32} + 1830: 0d004020 stceq 0, cr4, [r0, #-128] + 1834: 00270210 eoreq r0, r7, r0, lsl r2 + 1838: 0009bf00 andeq fp, r9, r0, lsl #30 + 183c: 00000000 andeq r0, r0, r0 + 1840: 000000d0 ldrdeq r0, [r0], -r0 + 1844: 00840003 addeq r0, r4, r3 + 1848: 07040000 streq r0, [r4, -r0] + 184c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1850: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1854: 73746e65 cmnvc r4, #1616 ; 0x650 + 1858: 646e6120 strbtvs r6, [lr], #-288 + 185c: 74655320 strbtvc r5, [r5], #-800 + 1860: 676e6974 undefined + 1864: 616d5c73 smcvs 54723 + 1868: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 186c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1870: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1874: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1878: 775c7374 undefined + 187c: 6f632d73 svcvs 0x00632d73 + 1880: 6f72746e svcvs 0x0072746e + 1884: 65575c6c ldrbvs r5, [r7, #-3180] + 1888: 65687461 strbvs r7, [r8, #-1121]! + 188c: 74532072 ldrbvc r2, [r3], #-114 + 1890: 6f697461 svcvs 0x00697461 + 1894: 6f43206e svcvs 0x0043206e + 1898: 6f72746e svcvs 0x0072746e + 189c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 18a0: 7070415c rsbsvc r4, r0, ip, asr r1 + 18a4: 6163696c cmnvs r3, ip, ror #18 + 18a8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 18ac: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 18b0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 18b4: 445c7365 ldrbmi r7, [ip], #-869 + 18b8: 6c707369 ldclvs 3, cr7, [r0], #-420 + 18bc: 632e7961 teqvs lr, #1589248 ; 0x184000 + 18c0: 52414900 subpl r4, r1, #0 ; 0x0 + 18c4: 534e4120 movtpl r4, #57632 ; 0xe120 + 18c8: 2f432049 svccs 0x00432049 + 18cc: 202b2b43 eorcs r2, fp, r3, asr #22 + 18d0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 18d4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 18d8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 18dc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 18e0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 18e4: 572f3539 undefined + 18e8: 4b203233 blmi 80e1bc + 18ec: 534b4349 movtpl r4, #45897 ; 0xb349 + 18f0: 54524154 ldrbpl r4, [r2], #-340 + 18f4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 18f8: 4d524120 ldfmie f4, [r2, #-128] + 18fc: 20440100 subcs r0, r4, r0, lsl #2 + 1900: 20800040 addcs r0, r0, r0, asr #32 + 1904: 0ce80040 stcleq 0, cr0, [r8], #256 + 1908: 0a700000 beq 1c01910 + 190c: 17100000 ldrne r0, [r0, -r0] + 1910: 00000003 andeq r0, r0, r3 + 1914: 0000010c andeq r0, r0, ip, lsl #2 + 1918: 00840003 addeq r0, r4, r3 + 191c: 07040000 streq r0, [r4, -r0] + 1920: 445c3a43 ldrbmi r3, [ip], #-2627 + 1924: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1928: 73746e65 cmnvc r4, #1616 ; 0x650 + 192c: 646e6120 strbtvs r6, [lr], #-288 + 1930: 74655320 strbtvc r5, [r5], #-800 + 1934: 676e6974 undefined + 1938: 616d5c73 smcvs 54723 + 193c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1940: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1944: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1948: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 194c: 775c7374 undefined + 1950: 6f632d73 svcvs 0x00632d73 + 1954: 6f72746e svcvs 0x0072746e + 1958: 65575c6c ldrbvs r5, [r7, #-3180] + 195c: 65687461 strbvs r7, [r8, #-1121]! + 1960: 74532072 ldrbvc r2, [r3], #-114 + 1964: 6f697461 svcvs 0x00697461 + 1968: 6f43206e svcvs 0x0043206e + 196c: 6f72746e svcvs 0x0072746e + 1970: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1974: 7070415c rsbsvc r4, r0, ip, asr r1 + 1978: 6163696c cmnvs r3, ip, ror #18 + 197c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1980: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1984: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1988: 445c7365 ldrbmi r7, [ip], #-869 + 198c: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1990: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1994: 52414900 subpl r4, r1, #0 ; 0x0 + 1998: 534e4120 movtpl r4, #57632 ; 0xe120 + 199c: 2f432049 svccs 0x00432049 + 19a0: 202b2b43 eorcs r2, fp, r3, asr #22 + 19a4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 19a8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 19ac: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 19b0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 19b4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 19b8: 572f3539 undefined + 19bc: 4b203233 blmi 80e290 + 19c0: 534b4349 movtpl r4, #45897 ; 0xb349 + 19c4: 54524154 ldrbpl r4, [r2], #-340 + 19c8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 19cc: 4d524120 ldfmie f4, [r2, #-128] + 19d0: 20840100 addcs r0, r4, r0, lsl #2 + 19d4: 20a40040 adccs r0, r4, r0, asr #32 + 19d8: 0dd00040 ldcleq 0, cr0, [r0, #256] + 19dc: 0bc70000 bleq ff1c19e4 + 19e0: 17100000 ldrne r0, [r0, -r0] + 19e4: 0f000003 svceq 0x00000003 + 19e8: 0000010e andeq r0, r0, lr, lsl #2 + 19ec: 5f44434c svcpl 0x0044434c + 19f0: 46746553 undefined + 19f4: 00746e6f rsbseq r6, r4, pc, ror #28 + 19f8: 0806d701 stmdaeq r6, {r0, r8, r9, sl, ip, lr, pc} + 19fc: 08021001 stmdaeq r2, {r0, ip} + 1a00: 09c70000 stmibeq r7, {}^ + 1a04: 20840000 addcs r0, r4, r0 + 1a08: 20a40040 adccs r0, r4, r0, asr #32 + 1a0c: 660b0040 strvs r0, [fp], -r0, asr #32 + 1a10: 00746e6f rsbseq r6, r4, pc, ror #28 + 1a14: 2206d701 andcs sp, r6, #262144 ; 0x40000 + 1a18: 0007be10 andeq fp, r7, r0, lsl lr + 1a1c: 0009db00 andeq sp, r9, r0, lsl #22 + 1a20: 00000000 andeq r0, r0, r0 + 1a24: 00000134 andeq r0, r0, r4, lsr r1 + 1a28: 00840003 addeq r0, r4, r3 + 1a2c: 07040000 streq r0, [r4, -r0] + 1a30: 445c3a43 ldrbmi r3, [ip], #-2627 + 1a34: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1a38: 73746e65 cmnvc r4, #1616 ; 0x650 + 1a3c: 646e6120 strbtvs r6, [lr], #-288 + 1a40: 74655320 strbtvc r5, [r5], #-800 + 1a44: 676e6974 undefined + 1a48: 616d5c73 smcvs 54723 + 1a4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1a50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1a54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1a58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1a5c: 775c7374 undefined + 1a60: 6f632d73 svcvs 0x00632d73 + 1a64: 6f72746e svcvs 0x0072746e + 1a68: 65575c6c ldrbvs r5, [r7, #-3180] + 1a6c: 65687461 strbvs r7, [r8, #-1121]! + 1a70: 74532072 ldrbvc r2, [r3], #-114 + 1a74: 6f697461 svcvs 0x00697461 + 1a78: 6f43206e svcvs 0x0043206e + 1a7c: 6f72746e svcvs 0x0072746e + 1a80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1a84: 7070415c rsbsvc r4, r0, ip, asr r1 + 1a88: 6163696c cmnvs r3, ip, ror #18 + 1a8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1a90: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1a94: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1a98: 445c7365 ldrbmi r7, [ip], #-869 + 1a9c: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1aa0: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1aa4: 52414900 subpl r4, r1, #0 ; 0x0 + 1aa8: 534e4120 movtpl r4, #57632 ; 0xe120 + 1aac: 2f432049 svccs 0x00432049 + 1ab0: 202b2b43 eorcs r2, fp, r3, asr #22 + 1ab4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1ab8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1abc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 1ac0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1ac4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1ac8: 572f3539 undefined + 1acc: 4b203233 blmi 80e3a0 + 1ad0: 534b4349 movtpl r4, #45897 ; 0xb349 + 1ad4: 54524154 ldrbpl r4, [r2], #-340 + 1ad8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1adc: 4d524120 ldfmie f4, [r2, #-128] + 1ae0: 20a40100 adccs r0, r4, r0, lsl #2 + 1ae4: 20ba0040 adcscs r0, sl, r0, asr #32 + 1ae8: 0e840040 cdpeq 0, 8, cr0, cr4, cr0, {2} + 1aec: 0c280000 stceq 0, cr0, [r8] + 1af0: 17100000 ldrne r0, [r0, -r0] + 1af4: 08000003 stmdaeq r0, {r0, r1} + 1af8: 00000136 andeq r0, r0, r6, lsr r1 + 1afc: 5f44434c svcpl 0x0044434c + 1b00: 42746553 rsbsmi r6, r4, #348127232 ; 0x14c00000 + 1b04: 6c6b6361 stclvs 3, cr6, [fp], #-388 + 1b08: 74686769 strbtvc r6, [r8], #-1897 + 1b0c: 078e0100 streq r0, [lr, r0, lsl #2] + 1b10: 09f80106 ldmibeq r8!, {r1, r2, r8}^ + 1b14: 20a40000 adccs r0, r4, r0 + 1b18: 20ba0040 adcscs r0, sl, r0, asr #32 + 1b1c: 620b0040 andvs r0, fp, #64 ; 0x40 + 1b20: 68676972 stmdavs r7!, {r1, r4, r5, r6, r8, fp, sp, lr}^ + 1b24: 73656e74 cmnvc r5, #1856 ; 0x740 + 1b28: 6c615673 stclvs 6, cr5, [r1], #-460 + 1b2c: 01006575 tsteq r0, r5, ror r5 + 1b30: 101f078e andsne r0, pc, lr, lsl #15 + 1b34: 000007f3 strdeq r0, [r0], -r3 + 1b38: 00000a24 andeq r0, r0, r4, lsr #20 + 1b3c: 63616209 cmnvs r1, #-1879048192 ; 0x90000000 + 1b40: 67694c6b strbvs r4, [r9, -fp, ror #24]! + 1b44: 74537468 ldrbvc r7, [r3], #-1128 + 1b48: 00657461 rsbeq r7, r5, r1, ror #8 + 1b4c: 14079001 strne r9, [r7], #-1 + 1b50: 00079b10 andeq r9, r7, r0, lsl fp + 1b54: 000a4100 andeq r4, sl, r0, lsl #2 + 1b58: 00000000 andeq r0, r0, r0 + 1b5c: 000001ec andeq r0, r0, ip, ror #3 + 1b60: 00840003 addeq r0, r4, r3 + 1b64: 07040000 streq r0, [r4, -r0] + 1b68: 445c3a43 ldrbmi r3, [ip], #-2627 + 1b6c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1b70: 73746e65 cmnvc r4, #1616 ; 0x650 + 1b74: 646e6120 strbtvs r6, [lr], #-288 + 1b78: 74655320 strbtvc r5, [r5], #-800 + 1b7c: 676e6974 undefined + 1b80: 616d5c73 smcvs 54723 + 1b84: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1b88: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1b8c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1b90: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1b94: 775c7374 undefined + 1b98: 6f632d73 svcvs 0x00632d73 + 1b9c: 6f72746e svcvs 0x0072746e + 1ba0: 65575c6c ldrbvs r5, [r7, #-3180] + 1ba4: 65687461 strbvs r7, [r8, #-1121]! + 1ba8: 74532072 ldrbvc r2, [r3], #-114 + 1bac: 6f697461 svcvs 0x00697461 + 1bb0: 6f43206e svcvs 0x0043206e + 1bb4: 6f72746e svcvs 0x0072746e + 1bb8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1bbc: 7070415c rsbsvc r4, r0, ip, asr r1 + 1bc0: 6163696c cmnvs r3, ip, ror #18 + 1bc4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1bc8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1bcc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1bd0: 445c7365 ldrbmi r7, [ip], #-869 + 1bd4: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1bd8: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1bdc: 52414900 subpl r4, r1, #0 ; 0x0 + 1be0: 534e4120 movtpl r4, #57632 ; 0xe120 + 1be4: 2f432049 svccs 0x00432049 + 1be8: 202b2b43 eorcs r2, fp, r3, asr #22 + 1bec: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1bf0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1bf4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 1bf8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1bfc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1c00: 572f3539 undefined + 1c04: 4b203233 blmi 80e4d8 + 1c08: 534b4349 movtpl r4, #45897 ; 0xb349 + 1c0c: 54524154 ldrbpl r4, [r2], #-340 + 1c10: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1c14: 4d524120 ldfmie f4, [r2, #-128] + 1c18: 20ba0100 adcscs r0, sl, r0, lsl #2 + 1c1c: 21e20040 mvncs r0, r0, asr #32 + 1c20: 0f380040 svceq 0x00380040 + 1c24: 0c900000 ldceq 0, cr0, [r0], {0} + 1c28: 17100000 ldrne r0, [r0, -r0] + 1c2c: 08000003 stmdaeq r0, {r0, r1} + 1c30: 000001ee andeq r0, r0, lr, ror #3 + 1c34: 5f44434c svcpl 0x0044434c + 1c38: 74697257 strbtvc r7, [r9], #-599 + 1c3c: 78695065 stmdavc r9!, {r0, r2, r5, r6, ip, lr}^ + 1c40: 01006c65 tsteq r0, r5, ror #24 + 1c44: 010607a0 smlatbeq r6, r0, r7, r0 + 1c48: 00000a5e andeq r0, r0, lr, asr sl + 1c4c: 004020ba strheq r2, [r0], #-10 + 1c50: 004021e2 subeq r2, r0, r2, ror #3 + 1c54: 7453780b ldrbvc r7, [r3], #-2059 + 1c58: 43747261 cmnmi r4, #268435462 ; 0x10000006 + 1c5c: 64726f6f ldrbtvs r6, [r2], #-3951 + 1c60: 07a00100 streq r0, [r0, r0, lsl #2]! + 1c64: 07f3101d undefined + 1c68: 0a8a0000 beq fe281c70 + 1c6c: 790b0000 stmdbvc fp, {} + 1c70: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 + 1c74: 6f6f4374 svcvs 0x006f4374 + 1c78: 01006472 tsteq r0, r2, ror r4 + 1c7c: 103207a0 eorsne r0, r2, r0, lsr #15 + 1c80: 000007f3 strdeq r0, [r0], -r3 + 1c84: 00000aa7 andeq r0, r0, r7, lsr #21 + 1c88: 646f6d0b strbtvs r6, [pc], #3339 ; 1c90 <__USR_stack_size+0x1490> + 1c8c: a0010065 andge r0, r1, r5, rrx + 1c90: 02104607 andseq r4, r0, #7340032 ; 0x700000 + 1c94: c4000008 strgt r0, [r0], #-8 + 1c98: 0900000a stmdbeq r0, {r1, r3} + 1c9c: 65676170 strbvs r6, [r7, #-368]! + 1ca0: 07a20100 streq r0, [r2, r0, lsl #2]! + 1ca4: 07f3100b ldrbeq r1, [r3, fp]! + 1ca8: 0ae10000 beq ff841cb0 + 1cac: 72090000 andvc r0, r9, #0 ; 0x0 + 1cb0: 00646165 rsbeq r6, r4, r5, ror #2 + 1cb4: 0b07a301 bleq 1ea8c0 + 1cb8: 0007f310 andeq pc, r7, r0, lsl r3 + 1cbc: 000afe00 andeq pc, sl, r0, lsl #28 + 1cc0: 01a90c00 undefined instruction 0x01a90c00 + 1cc4: da100000 ble 401ccc + 1cc8: 02000027 andeq r0, r0, #39 ; 0x27 + 1ccc: 4c004021 stcmi 0, cr4, [r0], {33} + 1cd0: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} + 1cd4: 0027f310 eoreq pc, r7, r0, lsl r3 + 1cd8: 000b3000 andeq r3, fp, r0 + 1cdc: 01a80c00 undefined instruction 0x01a80c00 + 1ce0: d2100000 andsle r0, r0, #0 ; 0x0 + 1ce4: 26000028 strcs r0, [r0], -r8, lsr #32 + 1ce8: 36004021 strcc r4, [r0], -r1, lsr #32 + 1cec: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} + 1cf0: 0028ea10 eoreq lr, r8, r0, lsl sl + 1cf4: 000b3800 andeq r3, fp, r0, lsl #16 + 1cf8: 00100e00 andseq r0, r0, r0, lsl #28 + 1cfc: 40000029 andmi r0, r0, r9, lsr #32 + 1d00: 0000000b andeq r0, r0, fp + 1d04: 01ed0c00 mvneq r0, r0, lsl #24 + 1d08: da100000 ble 401d10 + 1d0c: 4c000027 stcmi 0, cr0, [r0], {39} + 1d10: 9e004021 cdpls 0, 0, cr4, cr0, cr1, {1} + 1d14: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} + 1d18: 0027f310 eoreq pc, r7, r0, lsl r3 + 1d1c: 000b5400 andeq r5, fp, r0, lsl #8 + 1d20: 01ec0c00 mvneq r0, r0, lsl #24 + 1d24: d2100000 andsle r0, r0, #0 ; 0x0 + 1d28: 70000028 andvc r0, r0, r8, lsr #32 + 1d2c: 88004021 stmdahi r0, {r0, r5, lr} + 1d30: 0e004021 cdpeq 0, 0, cr4, cr0, cr1, {1} + 1d34: 0028ea10 eoreq lr, r8, r0, lsl sl + 1d38: 000b5c00 andeq r5, fp, r0, lsl #24 + 1d3c: 00100e00 andseq r0, r0, r0, lsl #28 + 1d40: 6f000029 svcvs 0x00000029 + 1d44: 0000000b andeq r0, r0, fp + 1d48: 00000000 andeq r0, r0, r0 + 1d4c: 000001bc strheq r0, [r0], -ip + 1d50: 00840003 addeq r0, r4, r3 + 1d54: 07040000 streq r0, [r4, -r0] + 1d58: 445c3a43 ldrbmi r3, [ip], #-2627 + 1d5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1d60: 73746e65 cmnvc r4, #1616 ; 0x650 + 1d64: 646e6120 strbtvs r6, [lr], #-288 + 1d68: 74655320 strbtvc r5, [r5], #-800 + 1d6c: 676e6974 undefined + 1d70: 616d5c73 smcvs 54723 + 1d74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1d78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1d7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1d80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1d84: 775c7374 undefined + 1d88: 6f632d73 svcvs 0x00632d73 + 1d8c: 6f72746e svcvs 0x0072746e + 1d90: 65575c6c ldrbvs r5, [r7, #-3180] + 1d94: 65687461 strbvs r7, [r8, #-1121]! + 1d98: 74532072 ldrbvc r2, [r3], #-114 + 1d9c: 6f697461 svcvs 0x00697461 + 1da0: 6f43206e svcvs 0x0043206e + 1da4: 6f72746e svcvs 0x0072746e + 1da8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1dac: 7070415c rsbsvc r4, r0, ip, asr r1 + 1db0: 6163696c cmnvs r3, ip, ror #18 + 1db4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1db8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1dbc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1dc0: 445c7365 ldrbmi r7, [ip], #-869 + 1dc4: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1dc8: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1dcc: 52414900 subpl r4, r1, #0 ; 0x0 + 1dd0: 534e4120 movtpl r4, #57632 ; 0xe120 + 1dd4: 2f432049 svccs 0x00432049 + 1dd8: 202b2b43 eorcs r2, fp, r3, asr #22 + 1ddc: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1de0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1de4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 1de8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1dec: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1df0: 572f3539 undefined + 1df4: 4b203233 blmi 80e6c8 + 1df8: 534b4349 movtpl r4, #45897 ; 0xb349 + 1dfc: 54524154 ldrbpl r4, [r2], #-340 + 1e00: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1e04: 4d524120 ldfmie f4, [r2, #-128] + 1e08: 21e40100 mvncs r0, r0, lsl #2 + 1e0c: 22ac0040 adccs r0, ip, #64 ; 0x40 + 1e10: 10600040 rsbne r0, r0, r0, asr #32 + 1e14: 0f3d0000 svceq 0x003d0000 + 1e18: 17100000 ldrne r0, [r0, -r0] + 1e1c: 08000003 stmdaeq r0, {r0, r1} + 1e20: 000001bf strheq r0, [r0], -pc + 1e24: 5f44434c svcpl 0x0044434c + 1e28: 74697257 strbtvc r7, [r9], #-599 + 1e2c: 61684365 cmnvs r8, r5, ror #6 + 1e30: 74636172 strbtvc r6, [r3], #-370 + 1e34: 01007265 tsteq r0, r5, ror #4 + 1e38: 010607d0 ldrdeq r0, [r6, -r0] + 1e3c: 00000b83 andeq r0, r0, r3, lsl #23 + 1e40: 004021e4 subeq r2, r0, r4, ror #3 + 1e44: 004022ac subeq r2, r0, ip, lsr #5 + 1e48: 6d79730b ldclvs 3, cr7, [r9, #-44]! + 1e4c: 006c6f62 rsbeq r6, ip, r2, ror #30 + 1e50: 2107d001 tstcs r7, r1 + 1e54: 0007f310 andeq pc, r7, r0, lsl r3 + 1e58: 000baf00 andeq sl, fp, r0, lsl #30 + 1e5c: 43780b00 cmnmi r8, #0 ; 0x0 + 1e60: 64726f6f ldrbtvs r6, [r2], #-3951 + 1e64: 07d00100 ldrbeq r0, [r0, r0, lsl #2] + 1e68: 07f31031 undefined + 1e6c: 0bcc0000 bleq ff301e74 + 1e70: 790b0000 stmdbvc fp, {} + 1e74: 726f6f43 rsbvc r6, pc, #268 ; 0x10c + 1e78: d0010064 andle r0, r1, r4, rrx + 1e7c: f3104107 vrhadd.u16 d4, d0, d7 + 1e80: e0000007 and r0, r0, r7 + 1e84: 0900000b stmdbeq r0, {r0, r1, r3} + 1e88: 61727261 cmnvs r2, r1, ror #4 + 1e8c: 636f4c79 cmnvs pc, #30976 ; 0x7900 + 1e90: 6f697461 svcvs 0x00697461 + 1e94: d201006e andle r0, r1, #110 ; 0x6e + 1e98: 1f100c07 svcne 0x00100c07 + 1e9c: f3000008 vhadd.u8 d0, d0, d8 + 1ea0: 0900000b stmdbeq r0, {r0, r1, r3} + 1ea4: d3010069 movwle r0, #4201 ; 0x1069 + 1ea8: f3100b07 vqrdmulh.s16 d0, d0, d7 + 1eac: 05000007 streq r0, [r0, #-7] + 1eb0: 0900000c stmdbeq r0, {r2, r3} + 1eb4: 4c78616d ldfmie f6, [r8], #-436 + 1eb8: 74676e65 strbtvc r6, [r7], #-3685 + 1ebc: d3010068 movwle r0, #4200 ; 0x1068 + 1ec0: f3100e07 vcge.f d0, d0, d7 + 1ec4: 22000007 andcs r0, r0, #7 ; 0x7 + 1ec8: 0a00000c beq 1f00 <__USR_stack_size+0x1700> + 1ecc: 000001be strheq r0, [r0], -lr + 1ed0: 0040221c subeq r2, r0, ip, lsl r2 + 1ed4: 004022ac subeq r2, r0, ip, lsr #5 + 1ed8: 0001bd0c andeq fp, r1, ip, lsl #26 + 1edc: 29da1000 ldmibcs sl, {ip}^ + 1ee0: 22700000 rsbscs r0, r0, #0 ; 0x0 + 1ee4: 229a0040 addscs r0, sl, #64 ; 0x40 + 1ee8: 100d0040 andne r0, sp, r0, asr #32 + 1eec: 000029f6 strdeq r2, [r0], -r6 + 1ef0: 00000c35 andeq r0, r0, r5, lsr ip + 1ef4: 2a0c100d bcs 305f30 + 1ef8: 0c3d0000 ldceq 0, cr0, [sp] + 1efc: 100e0000 andne r0, lr, r0 + 1f00: 00002a22 andeq r2, r0, r2, lsr #20 + 1f04: 00000c45 andeq r0, r0, r5, asr #24 + 1f08: 00000000 andeq r0, r0, r0 + 1f0c: 000000d0 ldrdeq r0, [r0], -r0 + 1f10: 00840003 addeq r0, r4, r3 + 1f14: 07040000 streq r0, [r4, -r0] + 1f18: 445c3a43 ldrbmi r3, [ip], #-2627 + 1f1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1f20: 73746e65 cmnvc r4, #1616 ; 0x650 + 1f24: 646e6120 strbtvs r6, [lr], #-288 + 1f28: 74655320 strbtvc r5, [r5], #-800 + 1f2c: 676e6974 undefined + 1f30: 616d5c73 smcvs 54723 + 1f34: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1f38: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1f3c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1f40: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1f44: 775c7374 undefined + 1f48: 6f632d73 svcvs 0x00632d73 + 1f4c: 6f72746e svcvs 0x0072746e + 1f50: 65575c6c ldrbvs r5, [r7, #-3180] + 1f54: 65687461 strbvs r7, [r8, #-1121]! + 1f58: 74532072 ldrbvc r2, [r3], #-114 + 1f5c: 6f697461 svcvs 0x00697461 + 1f60: 6f43206e svcvs 0x0043206e + 1f64: 6f72746e svcvs 0x0072746e + 1f68: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1f6c: 7070415c rsbsvc r4, r0, ip, asr r1 + 1f70: 6163696c cmnvs r3, ip, ror #18 + 1f74: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1f78: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1f7c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1f80: 445c7365 ldrbmi r7, [ip], #-869 + 1f84: 6c707369 ldclvs 3, cr7, [r0], #-420 + 1f88: 632e7961 teqvs lr, #1589248 ; 0x184000 + 1f8c: 52414900 subpl r4, r1, #0 ; 0x0 + 1f90: 534e4120 movtpl r4, #57632 ; 0xe120 + 1f94: 2f432049 svccs 0x00432049 + 1f98: 202b2b43 eorcs r2, fp, r3, asr #22 + 1f9c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1fa0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1fa4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 1fa8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1fac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1fb0: 572f3539 undefined + 1fb4: 4b203233 blmi 80e888 + 1fb8: 534b4349 movtpl r4, #45897 ; 0xb349 + 1fbc: 54524154 ldrbpl r4, [r2], #-340 + 1fc0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1fc4: 4d524120 ldfmie f4, [r2, #-128] + 1fc8: 22ac0100 adccs r0, ip, #0 ; 0x0 + 1fcc: 22b00040 adcscs r0, r0, #64 ; 0x40 + 1fd0: 11500040 cmpne r0, r0, asr #32 + 1fd4: 105f0000 subsne r0, pc, r0 + 1fd8: 17100000 ldrne r0, [r0, -r0] + 1fdc: 00000003 andeq r0, r0, r3 + 1fe0: 00000180 andeq r0, r0, r0, lsl #3 + 1fe4: 00840003 addeq r0, r4, r3 + 1fe8: 07040000 streq r0, [r4, -r0] + 1fec: 445c3a43 ldrbmi r3, [ip], #-2627 + 1ff0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1ff4: 73746e65 cmnvc r4, #1616 ; 0x650 + 1ff8: 646e6120 strbtvs r6, [lr], #-288 + 1ffc: 74655320 strbtvc r5, [r5], #-800 + 2000: 676e6974 undefined + 2004: 616d5c73 smcvs 54723 + 2008: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 200c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2010: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2014: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2018: 775c7374 undefined + 201c: 6f632d73 svcvs 0x00632d73 + 2020: 6f72746e svcvs 0x0072746e + 2024: 65575c6c ldrbvs r5, [r7, #-3180] + 2028: 65687461 strbvs r7, [r8, #-1121]! + 202c: 74532072 ldrbvc r2, [r3], #-114 + 2030: 6f697461 svcvs 0x00697461 + 2034: 6f43206e svcvs 0x0043206e + 2038: 6f72746e svcvs 0x0072746e + 203c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2040: 7070415c rsbsvc r4, r0, ip, asr r1 + 2044: 6163696c cmnvs r3, ip, ror #18 + 2048: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 204c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2050: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2054: 445c7365 ldrbmi r7, [ip], #-869 + 2058: 6c707369 ldclvs 3, cr7, [r0], #-420 + 205c: 632e7961 teqvs lr, #1589248 ; 0x184000 + 2060: 52414900 subpl r4, r1, #0 ; 0x0 + 2064: 534e4120 movtpl r4, #57632 ; 0xe120 + 2068: 2f432049 svccs 0x00432049 + 206c: 202b2b43 eorcs r2, fp, r3, asr #22 + 2070: 706d6f43 rsbvc r6, sp, r3, asr #30 + 2074: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 2078: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 207c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 2080: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 2084: 572f3539 undefined + 2088: 4b203233 blmi 80e95c + 208c: 534b4349 movtpl r4, #45897 ; 0xb349 + 2090: 54524154 ldrbpl r4, [r2], #-340 + 2094: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2098: 4d524120 ldfmie f4, [r2, #-128] + 209c: 22d00100 sbcscs r0, r0, #0 ; 0x0 + 20a0: 23160040 tstcs r6, #64 ; 0x40 + 20a4: 11780040 cmnne r8, r0, asr #32 + 20a8: 11140000 tstne r4, r0 + 20ac: 17100000 ldrne r0, [r0, -r0] + 20b0: 08000003 stmdaeq r0, {r0, r1} + 20b4: 00000180 andeq r0, r0, r0, lsl #3 + 20b8: 5f44434c svcpl 0x0044434c + 20bc: 61656c43 cmnvs r5, r3, asr #24 + 20c0: 67615072 undefined + 20c4: 84010065 strhi r0, [r1], #-101 + 20c8: 4d010608 stcmi 6, cr0, [r1, #-32] + 20cc: d000000c andle r0, r0, ip + 20d0: 16004022 strne r4, [r0], -r2, lsr #32 + 20d4: 0b004023 bleq 12168 + 20d8: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 20dc: 6f435874 svcvs 0x00435874 + 20e0: 0064726f rsbeq r7, r4, pc, ror #4 + 20e4: 1c088401 cfstrsne mvf8, [r8], {1} + 20e8: 0007f310 andeq pc, r7, r0, lsl r3 + 20ec: 000c8500 andeq r8, ip, r0, lsl #10 + 20f0: 6e650b00 fmuldvs d16, d5, d0 + 20f4: 6f435864 svcvs 0x00435864 + 20f8: 0064726f rsbeq r7, r4, pc, ror #4 + 20fc: 31088401 tstcc r8, r1, lsl #8 + 2100: 0007f310 andeq pc, r7, r0, lsl r3 + 2104: 000ca200 andeq sl, ip, r0, lsl #4 + 2108: 43790b00 cmnmi r9, #0 ; 0x0 + 210c: 64726f6f ldrbtvs r6, [r2], #-3951 + 2110: 08840100 stmeq r4, {r8} + 2114: 07f31044 ldrbeq r1, [r3, r4, asr #32]! + 2118: 0cbf0000 ldceq 0, cr0, [pc] + 211c: 69090000 stmdbvs r9, {} + 2120: 08860100 stmeq r6, {r8} + 2124: 07f3100b ldrbeq r1, [r3, fp]! + 2128: 0cdc0000 ldcleq 0, cr0, [ip], {0} + 212c: 7f0c0000 svcvc 0x000c0000 + 2130: 10000001 andne r0, r0, r1 + 2134: 000029da ldrdeq r2, [r0], -sl + 2138: 004022d8 ldrdeq r2, [r0], #-40 + 213c: 004022fc strdeq r2, [r0], #-44 + 2140: 29f6100d ldmibcs r6!, {r0, r2, r3, ip}^ + 2144: 0cf90000 ldcleq 0, cr0, [r9] + 2148: 100d0000 andne r0, sp, r0 + 214c: 00002a0c andeq r2, r0, ip, lsl #20 + 2150: 00000d01 andeq r0, r0, r1, lsl #26 + 2154: 2a22100e bcs 886194 + 2158: 0d090000 stceq 0, cr0, [r9] + ... + 2164: 00000158 andeq r0, r0, r8, asr r1 + 2168: 00840003 addeq r0, r4, r3 + 216c: 07040000 streq r0, [r4, -r0] + 2170: 445c3a43 ldrbmi r3, [ip], #-2627 + 2174: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2178: 73746e65 cmnvc r4, #1616 ; 0x650 + 217c: 646e6120 strbtvs r6, [lr], #-288 + 2180: 74655320 strbtvc r5, [r5], #-800 + 2184: 676e6974 undefined + 2188: 616d5c73 smcvs 54723 + 218c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2190: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2194: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2198: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 219c: 775c7374 undefined + 21a0: 6f632d73 svcvs 0x00632d73 + 21a4: 6f72746e svcvs 0x0072746e + 21a8: 65575c6c ldrbvs r5, [r7, #-3180] + 21ac: 65687461 strbvs r7, [r8, #-1121]! + 21b0: 74532072 ldrbvc r2, [r3], #-114 + 21b4: 6f697461 svcvs 0x00697461 + 21b8: 6f43206e svcvs 0x0043206e + 21bc: 6f72746e svcvs 0x0072746e + 21c0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 21c4: 7070415c rsbsvc r4, r0, ip, asr r1 + 21c8: 6163696c cmnvs r3, ip, ror #18 + 21cc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 21d0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 21d4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 21d8: 445c7365 ldrbmi r7, [ip], #-869 + 21dc: 6c707369 ldclvs 3, cr7, [r0], #-420 + 21e0: 632e7961 teqvs lr, #1589248 ; 0x184000 + 21e4: 52414900 subpl r4, r1, #0 ; 0x0 + 21e8: 534e4120 movtpl r4, #57632 ; 0xe120 + 21ec: 2f432049 svccs 0x00432049 + 21f0: 202b2b43 eorcs r2, fp, r3, asr #22 + 21f4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 21f8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 21fc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 2200: 322e3033 eorcc r3, lr, #51 ; 0x33 + 2204: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 2208: 572f3539 undefined + 220c: 4b203233 blmi 80eae0 + 2210: 534b4349 movtpl r4, #45897 ; 0xb349 + 2214: 54524154 ldrbpl r4, [r2], #-340 + 2218: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 221c: 4d524120 ldfmie f4, [r2, #-128] + 2220: 23180100 tstcs r8, #0 ; 0x0 + 2224: 23780040 cmncs r8, #64 ; 0x40 + 2228: 12500040 subsne r0, r0, #64 ; 0x40 + 222c: 11ef0000 mvnne r0, r0 + 2230: 17100000 ldrne r0, [r0, -r0] + 2234: 0f000003 svceq 0x00000003 + 2238: 0000015b andeq r0, r0, fp, asr r1 + 223c: 5f44434c svcpl 0x0044434c + 2240: 61656c43 cmnvs r5, r3, asr #24 + 2244: 6e694c72 mcrvs 12, 3, r4, cr9, cr2, {3} + 2248: 9e010065 cdpls 0, 0, cr0, cr1, cr5, {3} + 224c: 10010908 andne r0, r1, r8, lsl #18 + 2250: 000007f3 strdeq r0, [r0], -r3 + 2254: 00000d11 andeq r0, r0, r1, lsl sp + 2258: 00402318 subeq r2, r0, r8, lsl r3 + 225c: 00402378 subeq r2, r0, r8, ror r3 + 2260: 6e696c0b cdpvs 12, 6, cr6, cr9, cr11, {0} + 2264: 9e010065 cdpls 0, 0, cr0, cr1, cr5, {3} + 2268: f3101f08 vpmax.f d1, d0, d8 + 226c: 55000007 strpl r0, [r0, #-7] + 2270: 0500000d streq r0, [r0, #-13] + 2274: 65676170 strbvs r6, [r7, #-368]! + 2278: 65446f54 strbvs r6, [r4, #-3924] + 227c: 6574656c ldrbvs r6, [r4, #-1388]! + 2280: 086b1000 stmdaeq fp!, {ip}^ + 2284: a0010000 andge r0, r1, r0 + 2288: 05001708 streq r1, [r0, #-1800] + 228c: 40548403 subsmi r8, r4, r3, lsl #8 + 2290: 73690500 cmnvc r9, #0 ; 0x0 + 2294: 65676150 strbvs r6, [r7, #-336]! + 2298: 656c6544 strbvs r6, [ip, #-1348]! + 229c: 00646574 rsbeq r6, r4, r4, ror r5 + 22a0: 00080210 andeq r0, r8, r0, lsl r2 + 22a4: 08a10100 stmiaeq r1!, {r8} + 22a8: 03050011 movweq r0, #20497 ; 0x5011 + 22ac: 004054a0 subeq r5, r0, r0, lsr #9 + 22b0: 00015a0a andeq r5, r1, sl, lsl #20 + 22b4: 40231e00 eormi r1, r3, r0, lsl #28 + 22b8: 40237000 eormi r7, r3, r0 + 22bc: 00000000 andeq r0, r0, r0 + 22c0: 0000016c andeq r0, r0, ip, ror #2 + 22c4: 00840003 addeq r0, r4, r3 + 22c8: 07040000 streq r0, [r4, -r0] + 22cc: 445c3a43 ldrbmi r3, [ip], #-2627 + 22d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 22d4: 73746e65 cmnvc r4, #1616 ; 0x650 + 22d8: 646e6120 strbtvs r6, [lr], #-288 + 22dc: 74655320 strbtvc r5, [r5], #-800 + 22e0: 676e6974 undefined + 22e4: 616d5c73 smcvs 54723 + 22e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 22ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 22f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 22f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 22f8: 775c7374 undefined + 22fc: 6f632d73 svcvs 0x00632d73 + 2300: 6f72746e svcvs 0x0072746e + 2304: 65575c6c ldrbvs r5, [r7, #-3180] + 2308: 65687461 strbvs r7, [r8, #-1121]! + 230c: 74532072 ldrbvc r2, [r3], #-114 + 2310: 6f697461 svcvs 0x00697461 + 2314: 6f43206e svcvs 0x0043206e + 2318: 6f72746e svcvs 0x0072746e + 231c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2320: 7070415c rsbsvc r4, r0, ip, asr r1 + 2324: 6163696c cmnvs r3, ip, ror #18 + 2328: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 232c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2330: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2334: 445c7365 ldrbmi r7, [ip], #-869 + 2338: 6c707369 ldclvs 3, cr7, [r0], #-420 + 233c: 632e7961 teqvs lr, #1589248 ; 0x184000 + 2340: 52414900 subpl r4, r1, #0 ; 0x0 + 2344: 534e4120 movtpl r4, #57632 ; 0xe120 + 2348: 2f432049 svccs 0x00432049 + 234c: 202b2b43 eorcs r2, fp, r3, asr #22 + 2350: 706d6f43 rsbvc r6, sp, r3, asr #30 + 2354: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 2358: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 235c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 2360: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 2364: 572f3539 undefined + 2368: 4b203233 blmi 80ec3c + 236c: 534b4349 movtpl r4, #45897 ; 0xb349 + 2370: 54524154 ldrbpl r4, [r2], #-340 + 2374: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2378: 4d524120 ldfmie f4, [r2, #-128] + 237c: 00000100 andeq r0, r0, r0, lsl #2 + 2380: 00600000 rsbeq r0, r0, r0 + 2384: 13180000 tstne r8, #0 ; 0x0 + 2388: 129a0000 addsne r0, sl, #0 ; 0x0 + 238c: 17100000 ldrne r0, [r0, -r0] + 2390: 08000003 stmdaeq r0, {r0, r1} + 2394: 0000016c andeq r0, r0, ip, ror #2 + 2398: 5f44434c svcpl 0x0044434c + 239c: 77617244 strbvc r7, [r1, -r4, asr #4]! + 23a0: 6e6f6349 cdpvs 3, 6, cr6, cr15, cr9, {2} + 23a4: 0abf0100 beq fefc27ac + 23a8: 0d720106 ldfeqe f0, [r2, #-24]! + 23ac: 00000000 andeq r0, r0, r0 + 23b0: 00600000 rsbeq r0, r0, r0 + 23b4: 750b0000 strvc r0, [fp] + 23b8: 6f435838 svcvs 0x00435838 + 23bc: 0064726f rsbeq r7, r4, pc, ror #4 + 23c0: 1b0abf01 blne 2b1fcc + 23c4: 0007f310 andeq pc, r7, r0, lsl r3 + 23c8: 000d9e00 andeq r9, sp, r0, lsl #28 + 23cc: 38750b00 ldmdacc r5!, {r8, r9, fp}^ + 23d0: 67615059 undefined + 23d4: bf010065 svclt 0x00010065 + 23d8: f3102d0a vpadd.f d2, d0, d10 + 23dc: b2000007 andlt r0, r0, #7 ; 0x7 + 23e0: 0b00000d bleq 241c <__USR_stack_size+0x1c1c> + 23e4: 49387570 ldmdbmi r8!, {r4, r5, r6, r8, sl, ip, sp, lr} + 23e8: 006e6f63 rsbeq r6, lr, r3, ror #30 + 23ec: 400abf01 andmi fp, sl, r1, lsl #30 + 23f0: 00042a10 andeq r2, r4, r0, lsl sl + 23f4: 000dc500 andeq ip, sp, r0, lsl #10 + 23f8: 38750900 ldmdacc r5!, {r8, fp}^ + 23fc: c1010069 tstgt r1, r9, rrx + 2400: f3100b0a vqrdmulh.s16 d0, d0, d10 + 2404: d8000007 stmdale r0, {r0, r1, r2} + 2408: 0900000d stmdbeq r0, {r0, r2, r3} + 240c: 006a3875 rsbeq r3, sl, r5, ror r8 + 2410: 0b0ac201 bleq 2b2c1c + 2414: 0007f310 andeq pc, r7, r0, lsl r3 + 2418: 000de000 andeq lr, sp, r0 + 241c: 016b0a00 cmneq fp, r0, lsl #20 + 2420: 00240000 eoreq r0, r4, r0 + 2424: 005a0000 subseq r0, sl, r0 + ... + 2430: 00000114 andeq r0, r0, r4, lsl r1 + 2434: 00840003 addeq r0, r4, r3 + 2438: 01040000 tsteq r4, r0 + 243c: 445c3a43 ldrbmi r3, [ip], #-2627 + 2440: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2444: 73746e65 cmnvc r4, #1616 ; 0x650 + 2448: 646e6120 strbtvs r6, [lr], #-288 + 244c: 74655320 strbtvc r5, [r5], #-800 + 2450: 676e6974 undefined + 2454: 616d5c73 smcvs 54723 + 2458: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 245c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2460: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2464: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2468: 775c7374 undefined + 246c: 6f632d73 svcvs 0x00632d73 + 2470: 6f72746e svcvs 0x0072746e + 2474: 65575c6c ldrbvs r5, [r7, #-3180] + 2478: 65687461 strbvs r7, [r8, #-1121]! + 247c: 74532072 ldrbvc r2, [r3], #-114 + 2480: 6f697461 svcvs 0x00697461 + 2484: 6f43206e svcvs 0x0043206e + 2488: 6f72746e svcvs 0x0072746e + 248c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2490: 7070415c rsbsvc r4, r0, ip, asr r1 + 2494: 6163696c cmnvs r3, ip, ror #18 + 2498: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 249c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 24a0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 24a4: 445c7365 ldrbmi r7, [ip], #-869 + 24a8: 6c707369 ldclvs 3, cr7, [r0], #-420 + 24ac: 632e7961 teqvs lr, #1589248 ; 0x184000 + 24b0: 52414900 subpl r4, r1, #0 ; 0x0 + 24b4: 534e4120 movtpl r4, #57632 ; 0xe120 + 24b8: 2f432049 svccs 0x00432049 + 24bc: 202b2b43 eorcs r2, fp, r3, asr #22 + 24c0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 24c4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 24c8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 24cc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 24d0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 24d4: 572f3539 undefined + 24d8: 4b203233 blmi 80edac + 24dc: 534b4349 movtpl r4, #45897 ; 0xb349 + 24e0: 54524154 ldrbpl r4, [r2], #-340 + 24e4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 24e8: 4d524120 ldfmie f4, [r2, #-128] + 24ec: 03800100 orreq r0, r0, #0 ; 0x0 + 24f0: 00140000 andseq r0, r4, r0 + 24f4: 14100000 ldrne r0, [r0] + 24f8: 47000001 strmi r0, [r0, -r1] + 24fc: 74537465 ldrbvc r7, [r3], #-1125 + 2500: 6e656c72 mcrvs 12, 3, r6, cr5, cr2, {3} + 2504: 0a9f0100 beq fe7c290c + 2508: f3100010 vqadd.u16 d0, d0, d0 + 250c: 00000007 andeq r0, r0, r7 + 2510: 74537011 ldrbvc r7, [r3], #-17 + 2514: 676e6972 undefined + 2518: 0aa10100 beq fe842920 + 251c: 04051012 streq r1, [r5], #-18 + 2520: 63120000 tstvs r2, #0 ; 0x0 + 2524: 746e756f strbtvc r7, [lr], #-1391 + 2528: 0aa40100 beq fe902930 + 252c: 07e5100a strbeq r1, [r5, sl]! + 2530: 6c120000 ldcvs 0, cr0, [r2], {0} + 2534: 74676e65 strbtvc r6, [r7], #-3685 + 2538: a4010068 strge r0, [r1], #-104 + 253c: e510130a ldr r1, [r0, #-778] + 2540: 00000007 andeq r0, r0, r7 + 2544: 00000000 andeq r0, r0, r0 + 2548: 000000dc ldrdeq r0, [r0], -ip + 254c: 00840003 addeq r0, r4, r3 + 2550: 01040000 tsteq r4, r0 + 2554: 445c3a43 ldrbmi r3, [ip], #-2627 + 2558: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 255c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2560: 646e6120 strbtvs r6, [lr], #-288 + 2564: 74655320 strbtvc r5, [r5], #-800 + 2568: 676e6974 undefined + 256c: 616d5c73 smcvs 54723 + 2570: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2574: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2578: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 257c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2580: 775c7374 undefined + 2584: 6f632d73 svcvs 0x00632d73 + 2588: 6f72746e svcvs 0x0072746e + 258c: 65575c6c ldrbvs r5, [r7, #-3180] + 2590: 65687461 strbvs r7, [r8, #-1121]! + 2594: 74532072 ldrbvc r2, [r3], #-114 + 2598: 6f697461 svcvs 0x00697461 + 259c: 6f43206e svcvs 0x0043206e + 25a0: 6f72746e svcvs 0x0072746e + 25a4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 25a8: 7070415c rsbsvc r4, r0, ip, asr r1 + 25ac: 6163696c cmnvs r3, ip, ror #18 + 25b0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 25b4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 25b8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 25bc: 445c7365 ldrbmi r7, [ip], #-869 + 25c0: 6c707369 ldclvs 3, cr7, [r0], #-420 + 25c4: 632e7961 teqvs lr, #1589248 ; 0x184000 + 25c8: 52414900 subpl r4, r1, #0 ; 0x0 + 25cc: 534e4120 movtpl r4, #57632 ; 0xe120 + 25d0: 2f432049 svccs 0x00432049 + 25d4: 202b2b43 eorcs r2, fp, r3, asr #22 + 25d8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 25dc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 25e0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 25e4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 25e8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 25ec: 572f3539 undefined + 25f0: 4b203233 blmi 80eec4 + 25f4: 534b4349 movtpl r4, #45897 ; 0xb349 + 25f8: 54524154 ldrbpl r4, [r2], #-340 + 25fc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2600: 4d524120 ldfmie f4, [r2, #-128] + 2604: 03800100 orreq r0, r0, #0 ; 0x0 + 2608: 00140000 andseq r0, r4, r0 + 260c: dc130000 ldcle 0, cr0, [r3], {0} + 2610: 53000000 movwpl r0, #0 ; 0x0 + 2614: 754f7465 strbvc r7, [pc, #-1125] ; 21b7 <__USR_stack_size+0x19b7> + 2618: 74757074 ldrbtvc r7, [r5], #-116 + 261c: 099e0100 ldmibeq lr, {r8} + 2620: 0000000d andeq r0, r0, sp + 2624: 00000000 andeq r0, r0, r0 + 2628: 000000e8 andeq r0, r0, r8, ror #1 + 262c: 00840003 addeq r0, r4, r3 + 2630: 01040000 tsteq r4, r0 + 2634: 445c3a43 ldrbmi r3, [ip], #-2627 + 2638: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 263c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2640: 646e6120 strbtvs r6, [lr], #-288 + 2644: 74655320 strbtvc r5, [r5], #-800 + 2648: 676e6974 undefined + 264c: 616d5c73 smcvs 54723 + 2650: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2654: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2658: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 265c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2660: 775c7374 undefined + 2664: 6f632d73 svcvs 0x00632d73 + 2668: 6f72746e svcvs 0x0072746e + 266c: 65575c6c ldrbvs r5, [r7, #-3180] + 2670: 65687461 strbvs r7, [r8, #-1121]! + 2674: 74532072 ldrbvc r2, [r3], #-114 + 2678: 6f697461 svcvs 0x00697461 + 267c: 6f43206e svcvs 0x0043206e + 2680: 6f72746e svcvs 0x0072746e + 2684: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2688: 7070415c rsbsvc r4, r0, ip, asr r1 + 268c: 6163696c cmnvs r3, ip, ror #18 + 2690: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2694: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2698: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 269c: 445c7365 ldrbmi r7, [ip], #-869 + 26a0: 6c707369 ldclvs 3, cr7, [r0], #-420 + 26a4: 632e7961 teqvs lr, #1589248 ; 0x184000 + 26a8: 52414900 subpl r4, r1, #0 ; 0x0 + 26ac: 534e4120 movtpl r4, #57632 ; 0xe120 + 26b0: 2f432049 svccs 0x00432049 + 26b4: 202b2b43 eorcs r2, fp, r3, asr #22 + 26b8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 26bc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 26c0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 26c4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 26c8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 26cc: 572f3539 undefined + 26d0: 4b203233 blmi 80efa4 + 26d4: 534b4349 movtpl r4, #45897 ; 0xb349 + 26d8: 54524154 ldrbpl r4, [r2], #-340 + 26dc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 26e0: 4d524120 ldfmie f4, [r2, #-128] + 26e4: 03800100 orreq r0, r0, #0 ; 0x0 + 26e8: 00140000 andseq r0, r4, r0 + 26ec: ea130000 b 4c26f4 + 26f0: 53000000 movwpl r0, #0 ; 0x0 + 26f4: 44646e65 strbtmi r6, [r4], #-3685 + 26f8: 00617461 rsbeq r7, r1, r1, ror #8 + 26fc: 0d08e101 stfeqd f6, [r8, #-4] + 2700: 64110000 ldrvs r0, [r1] + 2704: 00617461 rsbeq r7, r1, r1, ror #8 + 2708: 1e08e101 mvfnee f6, f1 + 270c: 0007f310 andeq pc, r7, r0, lsl r3 + 2710: 00000000 andeq r0, r0, r0 + 2714: 000000f4 strdeq r0, [r0], -r4 + 2718: 00840003 addeq r0, r4, r3 + 271c: 01040000 tsteq r4, r0 + 2720: 445c3a43 ldrbmi r3, [ip], #-2627 + 2724: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2728: 73746e65 cmnvc r4, #1616 ; 0x650 + 272c: 646e6120 strbtvs r6, [lr], #-288 + 2730: 74655320 strbtvc r5, [r5], #-800 + 2734: 676e6974 undefined + 2738: 616d5c73 smcvs 54723 + 273c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2740: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2744: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2748: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 274c: 775c7374 undefined + 2750: 6f632d73 svcvs 0x00632d73 + 2754: 6f72746e svcvs 0x0072746e + 2758: 65575c6c ldrbvs r5, [r7, #-3180] + 275c: 65687461 strbvs r7, [r8, #-1121]! + 2760: 74532072 ldrbvc r2, [r3], #-114 + 2764: 6f697461 svcvs 0x00697461 + 2768: 6f43206e svcvs 0x0043206e + 276c: 6f72746e svcvs 0x0072746e + 2770: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2774: 7070415c rsbsvc r4, r0, ip, asr r1 + 2778: 6163696c cmnvs r3, ip, ror #18 + 277c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2780: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2784: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2788: 445c7365 ldrbmi r7, [ip], #-869 + 278c: 6c707369 ldclvs 3, cr7, [r0], #-420 + 2790: 632e7961 teqvs lr, #1589248 ; 0x184000 + 2794: 52414900 subpl r4, r1, #0 ; 0x0 + 2798: 534e4120 movtpl r4, #57632 ; 0xe120 + 279c: 2f432049 svccs 0x00432049 + 27a0: 202b2b43 eorcs r2, fp, r3, asr #22 + 27a4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 27a8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 27ac: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 27b0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 27b4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 27b8: 572f3539 undefined + 27bc: 4b203233 blmi 80f090 + 27c0: 534b4349 movtpl r4, #45897 ; 0xb349 + 27c4: 54524154 ldrbpl r4, [r2], #-340 + 27c8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 27cc: 4d524120 ldfmie f4, [r2, #-128] + 27d0: 03800100 orreq r0, r0, #0 ; 0x0 + 27d4: 00140000 andseq r0, r4, r0 + 27d8: f6100000 undefined instruction 0xf6100000 + 27dc: 52000000 andpl r0, r0, #0 ; 0x0 + 27e0: 44646165 strbtmi r6, [r4], #-357 + 27e4: 00617461 rsbeq r7, r1, r1, ror #8 + 27e8: 1009d601 andne sp, r9, r1, lsl #12 + 27ec: 07f31000 ldrbeq r1, [r3, r0]! + 27f0: 12000000 andne r0, r0, #0 ; 0x0 + 27f4: 75746552 ldrbvc r6, [r4, #-1362]! + 27f8: 61566e72 cmpvs r6, r2, ror lr + 27fc: 0065756c rsbeq r7, r5, ip, ror #10 + 2800: 0b09d801 bleq 27880c + 2804: 0007f310 andeq pc, r7, r0, lsl r3 + 2808: 00000000 andeq r0, r0, r0 + 280c: 00000104 andeq r0, r0, r4, lsl #2 + 2810: 00840003 addeq r0, r4, r3 + 2814: 01040000 tsteq r4, r0 + 2818: 445c3a43 ldrbmi r3, [ip], #-2627 + 281c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2820: 73746e65 cmnvc r4, #1616 ; 0x650 + 2824: 646e6120 strbtvs r6, [lr], #-288 + 2828: 74655320 strbtvc r5, [r5], #-800 + 282c: 676e6974 undefined + 2830: 616d5c73 smcvs 54723 + 2834: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2838: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 283c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2840: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2844: 775c7374 undefined + 2848: 6f632d73 svcvs 0x00632d73 + 284c: 6f72746e svcvs 0x0072746e + 2850: 65575c6c ldrbvs r5, [r7, #-3180] + 2854: 65687461 strbvs r7, [r8, #-1121]! + 2858: 74532072 ldrbvc r2, [r3], #-114 + 285c: 6f697461 svcvs 0x00697461 + 2860: 6f43206e svcvs 0x0043206e + 2864: 6f72746e svcvs 0x0072746e + 2868: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 286c: 7070415c rsbsvc r4, r0, ip, asr r1 + 2870: 6163696c cmnvs r3, ip, ror #18 + 2874: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2878: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 287c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2880: 445c7365 ldrbmi r7, [ip], #-869 + 2884: 6c707369 ldclvs 3, cr7, [r0], #-420 + 2888: 632e7961 teqvs lr, #1589248 ; 0x184000 + 288c: 52414900 subpl r4, r1, #0 ; 0x0 + 2890: 534e4120 movtpl r4, #57632 ; 0xe120 + 2894: 2f432049 svccs 0x00432049 + 2898: 202b2b43 eorcs r2, fp, r3, asr #22 + 289c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 28a0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 28a4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 28a8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 28ac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 28b0: 572f3539 undefined + 28b4: 4b203233 blmi 80f188 + 28b8: 534b4349 movtpl r4, #45897 ; 0xb349 + 28bc: 54524154 ldrbpl r4, [r2], #-340 + 28c0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 28c4: 4d524120 ldfmie f4, [r2, #-128] + 28c8: 03800100 orreq r0, r0, #0 ; 0x0 + 28cc: 00140000 andseq r0, r4, r0 + 28d0: 04100000 ldreq r0, [r0] + 28d4: 47000001 strmi r0, [r0, -r1] + 28d8: 61447465 cmpvs r4, r5, ror #8 + 28dc: 01006174 tsteq r0, r4, ror r1 + 28e0: 001009f1 ldrsheq r0, [r0], -r1 + 28e4: 0007f310 andeq pc, r7, r0, lsl r3 + 28e8: 52120000 andspl r0, r2, #0 ; 0x0 + 28ec: 72757465 rsbsvc r7, r5, #1694498816 ; 0x65000000 + 28f0: 6c61566e stclvs 6, cr5, [r1], #-440 + 28f4: 01006575 tsteq r0, r5, ror r5 + 28f8: 101409f3 ldrshne r0, [r4], -r3 + 28fc: 000007f3 strdeq r0, [r0], -r3 + 2900: 6d657412 cfstrdvs mvd7, [r5, #-72]! + 2904: 89010070 stmdbhi r1, {r4, r5, r6} + 2908: 2f100e0a svccs 0x00100e0a + 290c: 00000008 andeq r0, r0, r8 + 2910: 00000000 andeq r0, r0, r0 + 2914: 0000011c andeq r0, r0, ip, lsl r1 + 2918: 00840003 addeq r0, r4, r3 + 291c: 01040000 tsteq r4, r0 + 2920: 445c3a43 ldrbmi r3, [ip], #-2627 + 2924: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2928: 73746e65 cmnvc r4, #1616 ; 0x650 + 292c: 646e6120 strbtvs r6, [lr], #-288 + 2930: 74655320 strbtvc r5, [r5], #-800 + 2934: 676e6974 undefined + 2938: 616d5c73 smcvs 54723 + 293c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2940: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2944: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2948: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 294c: 775c7374 undefined + 2950: 6f632d73 svcvs 0x00632d73 + 2954: 6f72746e svcvs 0x0072746e + 2958: 65575c6c ldrbvs r5, [r7, #-3180] + 295c: 65687461 strbvs r7, [r8, #-1121]! + 2960: 74532072 ldrbvc r2, [r3], #-114 + 2964: 6f697461 svcvs 0x00697461 + 2968: 6f43206e svcvs 0x0043206e + 296c: 6f72746e svcvs 0x0072746e + 2970: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2974: 7070415c rsbsvc r4, r0, ip, asr r1 + 2978: 6163696c cmnvs r3, ip, ror #18 + 297c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2980: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2984: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2988: 445c7365 ldrbmi r7, [ip], #-869 + 298c: 6c707369 ldclvs 3, cr7, [r0], #-420 + 2990: 632e7961 teqvs lr, #1589248 ; 0x184000 + 2994: 52414900 subpl r4, r1, #0 ; 0x0 + 2998: 534e4120 movtpl r4, #57632 ; 0xe120 + 299c: 2f432049 svccs 0x00432049 + 29a0: 202b2b43 eorcs r2, fp, r3, asr #22 + 29a4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 29a8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 29ac: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 29b0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 29b4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 29b8: 572f3539 undefined + 29bc: 4b203233 blmi 80f290 + 29c0: 534b4349 movtpl r4, #45897 ; 0xb349 + 29c4: 54524154 ldrbpl r4, [r2], #-340 + 29c8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 29cc: 4d524120 ldfmie f4, [r2, #-128] + 29d0: 03800100 orreq r0, r0, #0 ; 0x0 + 29d4: 00140000 andseq r0, r4, r0 + 29d8: 1e130000 wxorne wr0, wr3, wr0 + 29dc: 49000001 stmdbmi r0, {r0} + 29e0: 4474696e ldrbtmi r6, [r4], #-2414 + 29e4: 6c707369 ldclvs 3, cr7, [r0], #-420 + 29e8: 72577961 subsvc r7, r7, #1589248 ; 0x184000 + 29ec: 00657469 rsbeq r7, r5, r9, ror #8 + 29f0: 0d09be01 stceq 14, cr11, [r9, #-4] + 29f4: 78110000 ldmdavc r1, {} + 29f8: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 + 29fc: 6f6f4374 svcvs 0x006f4374 + 2a00: 01006472 tsteq r0, r2, ror r4 + 2a04: 102609be strhne r0, [r6], -lr + 2a08: 000007f3 strdeq r0, [r0], -r3 + 2a0c: 74537911 ldrbvc r7, [r3], #-2321 + 2a10: 43747261 cmnmi r4, #268435462 ; 0x10000006 + 2a14: 64726f6f ldrbtvs r6, [r2], #-3951 + 2a18: 09be0100 ldmibeq lr!, {r8} + 2a1c: 07f3103b undefined + 2a20: 70120000 andsvc r0, r2, r0 + 2a24: 00656761 rsbeq r6, r5, r1, ror #14 + 2a28: 0b09c101 bleq 272e34 + 2a2c: 0007f310 andeq pc, r7, r0, lsl r3 + 2a30: 00000000 andeq r0, r0, r0 + 2a34: 0000019c muleq r0, ip, r1 + 2a38: 02000003 andeq r0, r0, #3 ; 0x3 + 2a3c: 01040000 tsteq r4, r0 + 2a40: 445c3a43 ldrbmi r3, [ip], #-2627 + 2a44: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2a48: 73746e65 cmnvc r4, #1616 ; 0x650 + 2a4c: 646e6120 strbtvs r6, [lr], #-288 + 2a50: 74655320 strbtvc r5, [r5], #-800 + 2a54: 676e6974 undefined + 2a58: 616d5c73 smcvs 54723 + 2a5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2a60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2a64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2a68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2a6c: 775c7374 undefined + 2a70: 6f632d73 svcvs 0x00632d73 + 2a74: 6f72746e svcvs 0x0072746e + 2a78: 65575c6c ldrbvs r5, [r7, #-3180] + 2a7c: 65687461 strbvs r7, [r8, #-1121]! + 2a80: 74532072 ldrbvc r2, [r3], #-114 + 2a84: 6f697461 svcvs 0x00697461 + 2a88: 6f43206e svcvs 0x0043206e + 2a8c: 6f72746e svcvs 0x0072746e + 2a90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2a94: 414d535c cmpmi sp, ip, asr r3 + 2a98: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} + 2a9c: 66726574 undefined + 2aa0: 5c656361 stclpl 3, cr6, [r5], #-388 + 2aa4: 626f6c47 rsbvs r6, pc, #18176 ; 0x4700 + 2aa8: 65446c61 strbvs r6, [r4, #-3169] + 2aac: 682e7366 stmdavs lr!, {r1, r2, r5, r6, r8, r9, ip, sp, lr} + 2ab0: 52414900 subpl r4, r1, #0 ; 0x0 + 2ab4: 534e4120 movtpl r4, #57632 ; 0xe120 + 2ab8: 2f432049 svccs 0x00432049 + 2abc: 202b2b43 eorcs r2, fp, r3, asr #22 + 2ac0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 2ac4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 2ac8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 2acc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 2ad0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 2ad4: 572f3539 undefined + 2ad8: 4b203233 blmi 80f3ac + 2adc: 534b4349 movtpl r4, #45897 ; 0xb349 + 2ae0: 54524154 ldrbpl r4, [r2], #-340 + 2ae4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2ae8: 4d524120 ldfmie f4, [r2, #-128] + 2aec: 13e40100 mvnne r0, #0 ; 0x0 + 2af0: 003c0000 eorseq r0, ip, r0 + 2af4: 9c090000 stcls 0, cr0, [r9], {0} + 2af8: 46000001 strmi r0, [r0], -r1 + 2afc: 52636e75 rsbpl r6, r3, #1872 ; 0x750 + 2b00: 72757465 rsbsvc r7, r5, #1694498816 ; 0x65000000 + 2b04: 61745f6e cmnvs r4, lr, ror #30 + 2b08: 08010067 stmdaeq r1, {r0, r1, r2, r5, r6} + 2b0c: 63755367 cmnvs r5, #-1677721599 ; 0x9c000001 + 2b10: 73736563 cmnvc r3, #415236096 ; 0x18c00000 + 2b14: 0000635f andeq r6, r0, pc, asr r3 + 2b18: 61466708 cmpvs r6, r8, lsl #14 + 2b1c: 754f6c69 strbvc r6, [pc, #-3177] ; 1ebb <__USR_stack_size+0x16bb> + 2b20: 52664f74 rsbpl r4, r6, #464 ; 0x1d0 + 2b24: 65676e61 strbvs r6, [r7, #-3681]! + 2b28: 0100635f tsteq r0, pc, asr r3 + 2b2c: 61466708 cmpvs r6, r8, lsl #14 + 2b30: 6f4e6c69 svcvs 0x004e6c69 + 2b34: 6f736552 svcvs 0x00736552 + 2b38: 65637275 strbvs r7, [r3, #-629]! + 2b3c: 61764173 cmnvs r6, r3, ror r1 + 2b40: 62616c69 rsbvs r6, r1, #26880 ; 0x6900 + 2b44: 635f656c cmpvs pc, #452984832 ; 0x1b000000 + 2b48: 67080200 strvs r0, [r8, -r0, lsl #4] + 2b4c: 6c696146 stfvse f6, [r9], #-280 + 2b50: 61566f4e cmpvs r6, lr, asr #30 + 2b54: 4364696c cmnmi r4, #1769472 ; 0x1b0000 + 2b58: 69646e6f stmdbvs r4!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 2b5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2b60: 0300635f movweq r6, #863 ; 0x35f + 2b64: 61466708 cmpvs r6, r8, lsl #14 + 2b68: 75426c69 strbvc r6, [r2, #-3177] + 2b6c: 635f7973 cmpvs pc, #1884160 ; 0x1cc000 + 2b70: 67080400 strvs r0, [r8, -r0, lsl #8] + 2b74: 6c696146 stfvse f6, [r9], #-280 + 2b78: 72726f43 rsbsvc r6, r2, #268 ; 0x10c + 2b7c: 65747075 ldrbvs r7, [r4, #-117]! + 2b80: 08050064 stmdaeq r5, {r2, r5, r6} + 2b84: 69614667 stmdbvs r1!, {r0, r1, r2, r5, r6, r9, sl, lr}^ + 2b88: 7365546c cmnvc r5, #1811939328 ; 0x6c000000 + 2b8c: 00635f74 rsbeq r5, r3, r4, ror pc + 2b90: 41670806 cmnmi r7, r6, lsl #16 + 2b94: 65687475 strbvs r7, [r8, #-1141]! + 2b98: 6369746e cmnvs r9, #1845493760 ; 0x6e000000 + 2b9c: 6f697461 svcvs 0x00697461 + 2ba0: 6961466e stmdbvs r1!, {r1, r2, r3, r5, r6, r9, sl, lr}^ + 2ba4: 5f64656c svcpl 0x0064656c + 2ba8: 08070063 stmdaeq r7, {r0, r1, r5, r6} + 2bac: 74754167 ldrbtvc r4, [r5], #-359 + 2bb0: 746e6568 strbtvc r6, [lr], #-1384 + 2bb4: 74616369 strbtvc r6, [r1], #-873 + 2bb8: 506e6f69 rsbpl r6, lr, r9, ror #30 + 2bbc: 65737361 ldrbvs r7, [r3, #-865]! + 2bc0: 00635f64 rsbeq r5, r3, r4, ror #30 + 2bc4: 46670808 strbtmi r0, [r7], -r8, lsl #16 + 2bc8: 5f6c6961 svcpl 0x006c6961 + 2bcc: 00090063 andeq r0, r9, r3, rrx + 2bd0: 00000000 andeq r0, r0, r0 + 2bd4: 00000048 andeq r0, r0, r8, asr #32 + 2bd8: 02c80003 sbceq r0, r8, #3 ; 0x3 + 2bdc: 01040000 tsteq r4, r0 + 2be0: 74696e49 strbtvc r6, [r9], #-3657 + 2be4: 5241492d subpl r4, r1, #737280 ; 0xb4000 + 2be8: 52414900 subpl r4, r1, #0 ; 0x0 + 2bec: 73734120 cmnvc r3, #8 ; 0x8 + 2bf0: 6c626d65 stclvs 13, cr6, [r2], #-404 + 2bf4: 56207265 strtpl r7, [r0], -r5, ror #4 + 2bf8: 30332e35 eorscc r2, r3, r5, lsr lr + 2bfc: 352e322e strcc r3, [lr, #-558]! + 2c00: 35393231 ldrcc r3, [r9, #-561]! + 2c04: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 2c08: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2c0c: 4d524120 ldfmie f4, [r2, #-128] + 2c10: 40000000 andmi r0, r0, r0 + 2c14: 40002000 andmi r2, r0, r0 + 2c18: 00162400 andseq r2, r6, r0, lsl #8 + 2c1c: 00000000 andeq r0, r0, r0 + 2c20: 00000048 andeq r0, r0, r8, asr #32 + 2c24: 02c80003 sbceq r0, r8, #3 ; 0x3 + 2c28: 01040000 tsteq r4, r0 + 2c2c: 74696e49 strbtvc r6, [r9], #-3657 + 2c30: 5241492d subpl r4, r1, #737280 ; 0xb4000 + 2c34: 52414900 subpl r4, r1, #0 ; 0x0 + 2c38: 73734120 cmnvc r3, #8 ; 0x8 + 2c3c: 6c626d65 stclvs 13, cr6, [r2], #-404 + 2c40: 56207265 strtpl r7, [r0], -r5, ror #4 + 2c44: 30332e35 eorscc r2, r3, r5, lsr lr + 2c48: 352e322e strcc r3, [lr, #-558]! + 2c4c: 35393231 ldrcc r3, [r9, #-561]! + 2c50: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 2c54: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 2c58: 4d524120 ldfmie f4, [r2, #-128] + 2c5c: 4034e400 eorsmi lr, r4, r0, lsl #8 + 2c60: 40360800 eorsmi r0, r6, r0, lsl #16 + 2c64: 0016d800 andseq sp, r6, r0, lsl #16 + 2c68: 00000000 andeq r0, r0, r0 + 2c6c: 000000c4 andeq r0, r0, r4, asr #1 + 2c70: 02d80003 sbcseq r0, r8, #3 ; 0x3 + 2c74: 01040000 tsteq r4, r0 + 2c78: 445c3a43 ldrbmi r3, [ip], #-2627 + 2c7c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2c80: 73746e65 cmnvc r4, #1616 ; 0x650 + 2c84: 646e6120 strbtvs r6, [lr], #-288 + 2c88: 74655320 strbtvc r5, [r5], #-800 + 2c8c: 676e6974 undefined + 2c90: 616d5c73 smcvs 54723 + 2c94: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2c98: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2c9c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2ca0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2ca4: 775c7374 undefined + 2ca8: 6f632d73 svcvs 0x00632d73 + 2cac: 6f72746e svcvs 0x0072746e + 2cb0: 65575c6c ldrbvs r5, [r7, #-3180] + 2cb4: 65687461 strbvs r7, [r8, #-1121]! + 2cb8: 74532072 ldrbvc r2, [r3], #-114 + 2cbc: 6f697461 svcvs 0x00697461 + 2cc0: 6f43206e svcvs 0x0043206e + 2cc4: 6f72746e svcvs 0x0072746e + 2cc8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2ccc: 7070415c rsbsvc r4, r0, ip, asr r1 + 2cd0: 6163696c cmnvs r3, ip, ror #18 + 2cd4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2cd8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2cdc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2ce0: 4b5c7365 blmi 171fa7c + 2ce4: 6f627965 svcvs 0x00627965 + 2ce8: 2e647261 cdpcs 2, 6, cr7, cr4, cr1, {3} + 2cec: 41490063 cmpmi r9, r3, rrx + 2cf0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 2cf4: 43204953 teqmi r0, #1359872 ; 0x14c000 + 2cf8: 2b2b432f blcs ad39bc + 2cfc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 2d00: 656c6970 strbvs r6, [ip, #-2416]! + 2d04: 35562072 ldrbcc r2, [r6, #-114] + 2d08: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 2d0c: 31332e32 teqcc r3, r2, lsr lr + 2d10: 2f353932 svccs 0x00353932 + 2d14: 20323357 eorscs r3, r2, r7, asr r3 + 2d18: 4b43494b blmi 10d524c + 2d1c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 2d20: 6f662054 svcvs 0x00662054 + 2d24: 52412072 subpl r2, r1, #114 ; 0x72 + 2d28: c801004d stmdagt r1, {r0, r2, r3, r6} + 2d2c: 60000017 andvs r0, r0, r7, lsl r0 + 2d30: 00000000 andeq r0, r0, r0 + 2d34: 000000f4 strdeq r0, [r0], -r4 + 2d38: 02d80003 sbcseq r0, r8, #3 ; 0x3 + 2d3c: 02040000 andeq r0, r4, #0 ; 0x0 + 2d40: 445c3a43 ldrbmi r3, [ip], #-2627 + 2d44: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2d48: 73746e65 cmnvc r4, #1616 ; 0x650 + 2d4c: 646e6120 strbtvs r6, [lr], #-288 + 2d50: 74655320 strbtvc r5, [r5], #-800 + 2d54: 676e6974 undefined + 2d58: 616d5c73 smcvs 54723 + 2d5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2d60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2d64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2d68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2d6c: 775c7374 undefined + 2d70: 6f632d73 svcvs 0x00632d73 + 2d74: 6f72746e svcvs 0x0072746e + 2d78: 65575c6c ldrbvs r5, [r7, #-3180] + 2d7c: 65687461 strbvs r7, [r8, #-1121]! + 2d80: 74532072 ldrbvc r2, [r3], #-114 + 2d84: 6f697461 svcvs 0x00697461 + 2d88: 6f43206e svcvs 0x0043206e + 2d8c: 6f72746e svcvs 0x0072746e + 2d90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2d94: 7070415c rsbsvc r4, r0, ip, asr r1 + 2d98: 6163696c cmnvs r3, ip, ror #18 + 2d9c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2da0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2da4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2da8: 4b5c7365 blmi 171fb44 + 2dac: 6f627965 svcvs 0x00627965 + 2db0: 2e647261 cdpcs 2, 6, cr7, cr4, cr1, {3} + 2db4: 41490063 cmpmi r9, r3, rrx + 2db8: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 2dbc: 43204953 teqmi r0, #1359872 ; 0x14c000 + 2dc0: 2b2b432f blcs ad3a84 + 2dc4: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 2dc8: 656c6970 strbvs r6, [ip, #-2416]! + 2dcc: 35562072 ldrbcc r2, [r6, #-114] + 2dd0: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 2dd4: 31332e32 teqcc r3, r2, lsr lr + 2dd8: 2f353932 svccs 0x00353932 + 2ddc: 20323357 eorscs r3, r2, r7, asr r3 + 2de0: 4b43494b blmi 10d5314 + 2de4: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 2de8: 6f662054 svcvs 0x00662054 + 2dec: 52412072 subpl r2, r1, #114 ; 0x72 + 2df0: f001004d undefined instruction 0xf001004d + 2df4: 3c00403c stccc 0, cr4, [r0], {60} + 2df8: b400403d strlt r4, [r0], #-61 + 2dfc: 64000019 strvs r0, [r0], #-25 + 2e00: 10000013 andne r0, r0, r3, lsl r0 + 2e04: 00002c77 andeq r2, r0, r7, ror ip + 2e08: 0000f503 andeq pc, r0, r3, lsl #10 + 2e0c: 47624b00 strbmi r4, [r2, -r0, lsl #22]! + 2e10: 496f6970 stmdbmi pc!, {r4, r5, r6, r8, fp, sp, lr}^ + 2e14: 0074696e rsbseq r6, r4, lr, ror #18 + 2e18: 01063d01 tsteq r6, r1, lsl #26 + 2e1c: 00000de8 andeq r0, r0, r8, ror #27 + 2e20: 00403cf0 strdeq r3, [r0], #-192 + 2e24: 00403d3c subeq r3, r0, ip, lsr sp + 2e28: 00000000 andeq r0, r0, r0 + 2e2c: 0000017c andeq r0, r0, ip, ror r1 + 2e30: 03180003 tsteq r8, #3 ; 0x3 + 2e34: 01040000 tsteq r4, r0 + 2e38: 445c3a43 ldrbmi r3, [ip], #-2627 + 2e3c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2e40: 73746e65 cmnvc r4, #1616 ; 0x650 + 2e44: 646e6120 strbtvs r6, [lr], #-288 + 2e48: 74655320 strbtvc r5, [r5], #-800 + 2e4c: 676e6974 undefined + 2e50: 616d5c73 smcvs 54723 + 2e54: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2e58: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2e5c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2e60: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2e64: 775c7374 undefined + 2e68: 6f632d73 svcvs 0x00632d73 + 2e6c: 6f72746e svcvs 0x0072746e + 2e70: 65575c6c ldrbvs r5, [r7, #-3180] + 2e74: 65687461 strbvs r7, [r8, #-1121]! + 2e78: 74532072 ldrbvc r2, [r3], #-114 + 2e7c: 6f697461 svcvs 0x00697461 + 2e80: 6f43206e svcvs 0x0043206e + 2e84: 6f72746e svcvs 0x0072746e + 2e88: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2e8c: 7070415c rsbsvc r4, r0, ip, asr r1 + 2e90: 6163696c cmnvs r3, ip, ror #18 + 2e94: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2e98: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 2e9c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 2ea0: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 + 2ea4: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 2ea8: 41490063 cmpmi r9, r3, rrx + 2eac: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 2eb0: 43204953 teqmi r0, #1359872 ; 0x14c000 + 2eb4: 2b2b432f blcs ad3b78 + 2eb8: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 2ebc: 656c6970 strbvs r6, [ip, #-2416]! + 2ec0: 35562072 ldrbcc r2, [r6, #-114] + 2ec4: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 2ec8: 31332e32 teqcc r3, r2, lsr lr + 2ecc: 2f353932 svccs 0x00353932 + 2ed0: 20323357 eorscs r3, r2, r7, asr r3 + 2ed4: 4b43494b blmi 10d5408 + 2ed8: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 2edc: 6f662054 svcvs 0x00662054 + 2ee0: 52412072 subpl r2, r1, #114 ; 0x72 + 2ee4: 6801004d stmdavs r1, {r0, r2, r3, r6} + 2ee8: 8400001a strhi r0, [r0], #-26 + 2eec: 03000000 movweq r0, #0 ; 0x0 + 2ef0: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 2ef4: 64656e67 strbtvs r6, [r5], #-3687 + 2ef8: 61686320 cmnvs r8, r0, lsr #6 + 2efc: 08010072 stmdaeq r1, {r1, r4, r5, r6} + 2f00: 67697303 strbvs r7, [r9, -r3, lsl #6]! + 2f04: 2064656e rsbcs r6, r4, lr, ror #10 + 2f08: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 + 2f0c: 0a060100 beq 183314 + 2f10: 0000012a andeq r0, r0, sl, lsr #2 + 2f14: 47670b01 strbmi r0, [r7, -r1, lsl #22]! + 2f18: 506f6970 rsbpl r6, pc, r0, ror r9 + 2f1c: 74536e69 ldrbvc r6, [r3], #-3689 + 2f20: 4c657461 cfstrdmi mvd7, [r5], #-388 + 2f24: 635f776f cmpvs pc, #29097984 ; 0x1bc0000 + 2f28: 670b0000 strvs r0, [fp, -r0] + 2f2c: 6f697047 svcvs 0x00697047 + 2f30: 536e6950 cmnpl lr, #1310720 ; 0x140000 + 2f34: 65746174 ldrbvs r6, [r4, #-372]! + 2f38: 68676948 stmdavs r7!, {r3, r6, r8, fp, sp, lr}^ + 2f3c: 0100635f tsteq r0, pc, asr r3 + 2f40: 7047670b subvc r6, r7, fp, lsl #14 + 2f44: 69506f69 ldmdbvs r0, {r0, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 2f48: 6174536e cmnvs r4, lr, ror #6 + 2f4c: 614d6574 cmpvs sp, r4, ror r5 + 2f50: 00635f78 rsbeq r5, r3, r8, ror pc + 2f54: 470c0002 strmi r0, [ip, -r2] + 2f58: 506f6970 rsbpl r6, pc, r0, ror r9 + 2f5c: 74536e69 ldrbvc r6, [r3], #-3689 + 2f60: 5f657461 svcpl 0x00657461 + 2f64: e3150074 tst r5, #116 ; 0x74 + 2f68: 03390501 teqeq r9, #4194304 ; 0x400000 + 2f6c: 746e690c strbtvc r6, [lr], #-2316 + 2f70: 00745f38 rsbseq r5, r4, r8, lsr pc + 2f74: 0301d415 movweq sp, #5141 ; 0x1415 + 2f78: 750c1919 strvc r1, [ip, #-2329] + 2f7c: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ + 2f80: 1500745f strne r7, [r0, #-1119] + 2f84: 1a0301c3 bne c3698 + 2f88: 454c0c19 strbmi r0, [ip, #-3097] + 2f8c: 00745f44 rsbseq r5, r4, r4, asr #30 + 2f90: 0202ce15 andeq ip, r2, #336 ; 0x150 + 2f94: 4c0c113a stfmis f1, [ip], {58} + 2f98: 74536465 ldrbvc r6, [r3], #-1125 + 2f9c: 5f657461 svcpl 0x00657461 + 2fa0: ce150074 mrcgt 0, 0, r0, cr5, cr4, {3} + 2fa4: 11470202 cmpne r7, r2, lsl #4 + 2fa8: 00000000 andeq r0, r0, r0 + 2fac: 00000100 andeq r0, r0, r0, lsl #2 + 2fb0: 03180003 tsteq r8, #3 ; 0x3 + 2fb4: 02040000 andeq r0, r4, #0 ; 0x0 + 2fb8: 445c3a43 ldrbmi r3, [ip], #-2627 + 2fbc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2fc0: 73746e65 cmnvc r4, #1616 ; 0x650 + 2fc4: 646e6120 strbtvs r6, [lr], #-288 + 2fc8: 74655320 strbtvc r5, [r5], #-800 + 2fcc: 676e6974 undefined + 2fd0: 616d5c73 smcvs 54723 + 2fd4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2fd8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2fdc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2fe0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2fe4: 775c7374 undefined + 2fe8: 6f632d73 svcvs 0x00632d73 + 2fec: 6f72746e svcvs 0x0072746e + 2ff0: 65575c6c ldrbvs r5, [r7, #-3180] + 2ff4: 65687461 strbvs r7, [r8, #-1121]! + 2ff8: 74532072 ldrbvc r2, [r3], #-114 + 2ffc: 6f697461 svcvs 0x00697461 + 3000: 6f43206e svcvs 0x0043206e + 3004: 6f72746e svcvs 0x0072746e + 3008: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 300c: 7070415c rsbsvc r4, r0, ip, asr r1 + 3010: 6163696c cmnvs r3, ip, ror #18 + 3014: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3018: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 301c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 3020: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 + 3024: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 3028: 41490063 cmpmi r9, r3, rrx + 302c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3030: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3034: 2b2b432f blcs ad3cf8 + 3038: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 303c: 656c6970 strbvs r6, [ip, #-2416]! + 3040: 35562072 ldrbcc r2, [r6, #-114] + 3044: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3048: 31332e32 teqcc r3, r2, lsr lr + 304c: 2f353932 svccs 0x00353932 + 3050: 20323357 eorscs r3, r2, r7, asr r3 + 3054: 4b43494b blmi 10d5588 + 3058: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 305c: 6f662054 svcvs 0x00662054 + 3060: 52412072 subpl r2, r1, #114 ; 0x72 + 3064: 0801004d stmdaeq r1, {r0, r2, r3, r6} + 3068: 24004036 strcs r4, [r0], #-54 + 306c: 4c004036 stcmi 0, cr4, [r0], {54} + 3070: fd00001d stc2 0, cr0, [r0, #-116] + 3074: 10000013 andne r0, r0, r3, lsl r0 + 3078: 00002e37 andeq r2, r0, r7, lsr lr + 307c: 00010204 andeq r0, r1, r4, lsl #4 + 3080: 44454c00 strbmi r4, [r5], #-3072 + 3084: 696e495f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, lr}^ + 3088: 3c010074 stccc 0, cr0, [r1], {116} + 308c: 0e2c0106 sufeqe f0, f4, f6 + 3090: 36080000 strcc r0, [r8], -r0 + 3094: 36240040 strtcc r0, [r4], -r0, asr #32 + 3098: 01050040 tsteq r5, r0, asr #32 + 309c: 10000001 andne r0, r0, r1 + 30a0: 00003383 andeq r3, r0, r3, lsl #7 + 30a4: 00403610 subeq r3, r0, r0, lsl r6 + 30a8: 00403616 subeq r3, r0, r6, lsl r6 + 30ac: 00000000 andeq r0, r0, r0 + 30b0: 00000100 andeq r0, r0, r0, lsl #2 + 30b4: 03180003 tsteq r8, #3 ; 0x3 + 30b8: 02040000 andeq r0, r4, #0 ; 0x0 + 30bc: 445c3a43 ldrbmi r3, [ip], #-2627 + 30c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 30c4: 73746e65 cmnvc r4, #1616 ; 0x650 + 30c8: 646e6120 strbtvs r6, [lr], #-288 + 30cc: 74655320 strbtvc r5, [r5], #-800 + 30d0: 676e6974 undefined + 30d4: 616d5c73 smcvs 54723 + 30d8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 30dc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 30e0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 30e4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 30e8: 775c7374 undefined + 30ec: 6f632d73 svcvs 0x00632d73 + 30f0: 6f72746e svcvs 0x0072746e + 30f4: 65575c6c ldrbvs r5, [r7, #-3180] + 30f8: 65687461 strbvs r7, [r8, #-1121]! + 30fc: 74532072 ldrbvc r2, [r3], #-114 + 3100: 6f697461 svcvs 0x00697461 + 3104: 6f43206e svcvs 0x0043206e + 3108: 6f72746e svcvs 0x0072746e + 310c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3110: 7070415c rsbsvc r4, r0, ip, asr r1 + 3114: 6163696c cmnvs r3, ip, ror #18 + 3118: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 311c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 3120: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 3124: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 + 3128: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 312c: 41490063 cmpmi r9, r3, rrx + 3130: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3134: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3138: 2b2b432f blcs ad3dfc + 313c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3140: 656c6970 strbvs r6, [ip, #-2416]! + 3144: 35562072 ldrbcc r2, [r6, #-114] + 3148: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 314c: 31332e32 teqcc r3, r2, lsr lr + 3150: 2f353932 svccs 0x00353932 + 3154: 20323357 eorscs r3, r2, r7, asr r3 + 3158: 4b43494b blmi 10d568c + 315c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3160: 6f662054 svcvs 0x00662054 + 3164: 52412072 subpl r2, r1, #114 ; 0x72 + 3168: 2401004d strcs r0, [r1], #-77 + 316c: c0004036 andgt r4, r0, r6, lsr r0 + 3170: 10004036 andne r4, r0, r6, lsr r0 + 3174: a900001e stmdbge r0, {r1, r2, r3, r4} + 3178: 10000014 andne r0, r0, r4, lsl r0 + 317c: 00002e37 andeq r2, r0, r7, lsr lr + 3180: 00010204 andeq r0, r1, r4, lsl #4 + 3184: 74655300 strbtvc r5, [r5], #-768 + 3188: 6e69505f mcrvs 0, 3, r5, cr9, cr15, {2} + 318c: 49010073 stmdbmi r1, {r0, r1, r4, r5, r6} + 3190: 0e580106 rdfeqe f0, f0, f6 + 3194: 36240000 strtcc r0, [r4], -r0 + 3198: 36c00040 strbcc r0, [r0], r0, asr #32 + 319c: 4c060040 stcmi 0, cr0, [r6], {64} + 31a0: 724e4445 subvc r4, lr, #1157627904 ; 0x45000000 + 31a4: 16490100 strbne r0, [r9], -r0, lsl #2 + 31a8: 002f8910 eoreq r8, pc, r0, lsl r9 + 31ac: 000e9000 andeq r9, lr, r0 + 31b0: 00000000 andeq r0, r0, r0 + 31b4: 00000108 andeq r0, r0, r8, lsl #2 + 31b8: 03180003 tsteq r8, #3 ; 0x3 + 31bc: 02040000 andeq r0, r4, #0 ; 0x0 + 31c0: 445c3a43 ldrbmi r3, [ip], #-2627 + 31c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 31c8: 73746e65 cmnvc r4, #1616 ; 0x650 + 31cc: 646e6120 strbtvs r6, [lr], #-288 + 31d0: 74655320 strbtvc r5, [r5], #-800 + 31d4: 676e6974 undefined + 31d8: 616d5c73 smcvs 54723 + 31dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 31e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 31e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 31e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 31ec: 775c7374 undefined + 31f0: 6f632d73 svcvs 0x00632d73 + 31f4: 6f72746e svcvs 0x0072746e + 31f8: 65575c6c ldrbvs r5, [r7, #-3180] + 31fc: 65687461 strbvs r7, [r8, #-1121]! + 3200: 74532072 ldrbvc r2, [r3], #-114 + 3204: 6f697461 svcvs 0x00697461 + 3208: 6f43206e svcvs 0x0043206e + 320c: 6f72746e svcvs 0x0072746e + 3210: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3214: 7070415c rsbsvc r4, r0, ip, asr r1 + 3218: 6163696c cmnvs r3, ip, ror #18 + 321c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3220: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 3224: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 3228: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 + 322c: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 3230: 41490063 cmpmi r9, r3, rrx + 3234: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3238: 43204953 teqmi r0, #1359872 ; 0x14c000 + 323c: 2b2b432f blcs ad3f00 + 3240: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3244: 656c6970 strbvs r6, [ip, #-2416]! + 3248: 35562072 ldrbcc r2, [r6, #-114] + 324c: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3250: 31332e32 teqcc r3, r2, lsr lr + 3254: 2f353932 svccs 0x00353932 + 3258: 20323357 eorscs r3, r2, r7, asr r3 + 325c: 4b43494b blmi 10d5790 + 3260: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3264: 6f662054 svcvs 0x00662054 + 3268: 52412072 subpl r2, r1, #114 ; 0x72 + 326c: c001004d andgt r0, r1, sp, asr #32 + 3270: fc004036 stc2 0, cr4, [r0], {54} + 3274: e0004036 and r4, r0, r6, lsr r0 + 3278: ce00001e mcrgt 0, 0, r0, cr0, cr14, {0} + 327c: 10000015 andne r0, r0, r5, lsl r0 + 3280: 00002e37 andeq r2, r0, r7, lsr lr + 3284: 00010a04 andeq r0, r1, r4, lsl #20 + 3288: 44454c00 strbmi r4, [r5], #-3072 + 328c: 7275545f rsbsvc r5, r5, #1593835520 ; 0x5f000000 + 3290: 66664f6e strbtvs r4, [r6], -lr, ror #30 + 3294: 0064654c rsbeq r6, r4, ip, asr #10 + 3298: 0601b301 streq fp, [r1], -r1, lsl #6 + 329c: 000ead01 andeq sl, lr, r1, lsl #26 + 32a0: 4036c000 eorsmi ip, r6, r0 + 32a4: 4036fc00 eorsmi pc, r6, r0, lsl #24 + 32a8: 454c0600 strbmi r0, [ip, #-1536] + 32ac: 00724e44 rsbseq r4, r2, r4, asr #28 + 32b0: 1b01b301 blne 6febc + 32b4: 002f8910 eoreq r8, pc, r0, lsl r9 + 32b8: 000ee500 andeq lr, lr, r0, lsl #10 + 32bc: 00000000 andeq r0, r0, r0 + 32c0: 000000e0 andeq r0, r0, r0, ror #1 + 32c4: 03180003 tsteq r8, #3 ; 0x3 + 32c8: 01040000 tsteq r4, r0 + 32cc: 445c3a43 ldrbmi r3, [ip], #-2627 + 32d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 32d4: 73746e65 cmnvc r4, #1616 ; 0x650 + 32d8: 646e6120 strbtvs r6, [lr], #-288 + 32dc: 74655320 strbtvc r5, [r5], #-800 + 32e0: 676e6974 undefined + 32e4: 616d5c73 smcvs 54723 + 32e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 32ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 32f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 32f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 32f8: 775c7374 undefined + 32fc: 6f632d73 svcvs 0x00632d73 + 3300: 6f72746e svcvs 0x0072746e + 3304: 65575c6c ldrbvs r5, [r7, #-3180] + 3308: 65687461 strbvs r7, [r8, #-1121]! + 330c: 74532072 ldrbvc r2, [r3], #-114 + 3310: 6f697461 svcvs 0x00697461 + 3314: 6f43206e svcvs 0x0043206e + 3318: 6f72746e svcvs 0x0072746e + 331c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3320: 7070415c rsbsvc r4, r0, ip, asr r1 + 3324: 6163696c cmnvs r3, ip, ror #18 + 3328: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 332c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 3330: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 3334: 4c5c7365 mrrcmi 3, 6, r7, ip, cr5 + 3338: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 333c: 41490063 cmpmi r9, r3, rrx + 3340: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3344: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3348: 2b2b432f blcs ad400c + 334c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3350: 656c6970 strbvs r6, [ip, #-2416]! + 3354: 35562072 ldrbcc r2, [r6, #-114] + 3358: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 335c: 31332e32 teqcc r3, r2, lsr lr + 3360: 2f353932 svccs 0x00353932 + 3364: 20323357 eorscs r3, r2, r7, asr r3 + 3368: 4b43494b blmi 10d589c + 336c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3370: 6f662054 svcvs 0x00662054 + 3374: 52412072 subpl r2, r1, #114 ; 0x72 + 3378: 6801004d stmdavs r1, {r0, r2, r3, r6} + 337c: 8400001a strhi r0, [r0], #-26 + 3380: 09000000 stmdbeq r0, {} + 3384: 000000e2 andeq r0, r0, r2, ror #1 + 3388: 5f44454c svcpl 0x0044454c + 338c: 6e727554 mrcvs 5, 3, r7, cr2, cr4, {2} + 3390: 4166664f cmnmi r6, pc, asr #12 + 3394: 654c6c6c strbvs r6, [ip, #-3180] + 3398: 01007364 tsteq r0, r4, ror #6 + 339c: 010601d5 ldrdeq r0, [r6, -r5] + 33a0: 00000000 andeq r0, r0, r0 + 33a4: 0000011c andeq r0, r0, ip, lsl r1 + 33a8: 03e00003 mvneq r0, #3 ; 0x3 + 33ac: 01040000 tsteq r4, r0 + 33b0: 445c3a43 ldrbmi r3, [ip], #-2627 + 33b4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 33b8: 73746e65 cmnvc r4, #1616 ; 0x650 + 33bc: 646e6120 strbtvs r6, [lr], #-288 + 33c0: 74655320 strbtvc r5, [r5], #-800 + 33c4: 676e6974 undefined + 33c8: 616d5c73 smcvs 54723 + 33cc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 33d0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 33d4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 33d8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 33dc: 775c7374 undefined + 33e0: 6f632d73 svcvs 0x00632d73 + 33e4: 6f72746e svcvs 0x0072746e + 33e8: 65575c6c ldrbvs r5, [r7, #-3180] + 33ec: 65687461 strbvs r7, [r8, #-1121]! + 33f0: 74532072 ldrbvc r2, [r3], #-114 + 33f4: 6f697461 svcvs 0x00697461 + 33f8: 6f43206e svcvs 0x0043206e + 33fc: 6f72746e svcvs 0x0072746e + 3400: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3404: 414d535c cmpmi sp, ip, asr r3 + 3408: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 340c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3410: 6f535c73 svcvs 0x00535c73 + 3414: 65637275 strbvs r7, [r3, #-629]! + 3418: 63614d5c cmnvs r1, #5888 ; 0x1700 + 341c: 746e4961 strbtvc r4, [lr], #-2401 + 3420: 75727265 ldrbvc r7, [r2, #-613]! + 3424: 632e7470 teqvs lr, #1879048192 ; 0x70000000 + 3428: 52414900 subpl r4, r1, #0 ; 0x0 + 342c: 534e4120 movtpl r4, #57632 ; 0xe120 + 3430: 2f432049 svccs 0x00432049 + 3434: 202b2b43 eorcs r2, fp, r3, asr #22 + 3438: 706d6f43 rsbvc r6, sp, r3, asr #30 + 343c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 3440: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 3444: 322e3033 eorcc r3, lr, #51 ; 0x33 + 3448: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 344c: 572f3539 undefined + 3450: 4b203233 blmi 80fd24 + 3454: 534b4349 movtpl r4, #45897 ; 0xb349 + 3458: 54524154 ldrbpl r4, [r2], #-340 + 345c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 3460: 4d524120 ldfmie f4, [r2, #-128] + 3464: 1fa40100 svcne 0x00a40100 + 3468: 00ac0000 adceq r0, ip, r0 + 346c: 75020000 strvc r0, [r2] + 3470: 6769736e strbvs r7, [r9, -lr, ror #6]! + 3474: 2064656e rsbcs r6, r4, lr, ror #10 + 3478: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 + 347c: 02080100 andeq r0, r8, #0 ; 0x0 + 3480: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 3484: 64656e67 strbtvs r6, [r5], #-3687 + 3488: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} + 348c: 07040067 streq r0, [r4, -r7, rrx] + 3490: 010f1305 tsteq pc, r5, lsl #6 + 3494: 75090000 strvc r0, [r9] + 3498: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ + 349c: 1500745f strne r7, [r0, #-1119] + 34a0: 1a0101ca bne 43bd0 + 34a4: 6f620919 svcvs 0x00620919 + 34a8: 745f6c6f ldrbvc r6, [pc], #3183 ; 34b0 + 34ac: 01f21500 mvnseq r1, r0, lsl #10 + 34b0: 09132c01 ldmdbeq r3, {r0, sl, fp, sp} + 34b4: 746e6975 strbtvc r6, [lr], #-2421 + 34b8: 745f3233 ldrbvc r3, [pc], #563 ; 34c0 + 34bc: 01db1500 bicseq r1, fp, r0, lsl #10 + 34c0: 00191e01 andseq r1, r9, r1, lsl #28 + 34c4: 00000104 andeq r0, r0, r4, lsl #2 + 34c8: 03e00003 mvneq r0, #3 ; 0x3 + 34cc: 01040000 tsteq r4, r0 + 34d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 34d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 34d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 34dc: 646e6120 strbtvs r6, [lr], #-288 + 34e0: 74655320 strbtvc r5, [r5], #-800 + 34e4: 676e6974 undefined + 34e8: 616d5c73 smcvs 54723 + 34ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 34f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 34f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 34f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 34fc: 775c7374 undefined + 3500: 6f632d73 svcvs 0x00632d73 + 3504: 6f72746e svcvs 0x0072746e + 3508: 65575c6c ldrbvs r5, [r7, #-3180] + 350c: 65687461 strbvs r7, [r8, #-1121]! + 3510: 74532072 ldrbvc r2, [r3], #-114 + 3514: 6f697461 svcvs 0x00697461 + 3518: 6f43206e svcvs 0x0043206e + 351c: 6f72746e svcvs 0x0072746e + 3520: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3524: 414d535c cmpmi sp, ip, asr r3 + 3528: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 352c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3530: 6f535c73 svcvs 0x00535c73 + 3534: 65637275 strbvs r7, [r3, #-629]! + 3538: 63614d5c cmnvs r1, #5888 ; 0x1700 + 353c: 746e4961 strbtvc r4, [lr], #-2401 + 3540: 75727265 ldrbvc r7, [r2, #-613]! + 3544: 632e7470 teqvs lr, #1879048192 ; 0x70000000 + 3548: 52414900 subpl r4, r1, #0 ; 0x0 + 354c: 534e4120 movtpl r4, #57632 ; 0xe120 + 3550: 2f432049 svccs 0x00432049 + 3554: 202b2b43 eorcs r2, fp, r3, asr #22 + 3558: 706d6f43 rsbvc r6, sp, r3, asr #30 + 355c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 3560: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 3564: 322e3033 eorcc r3, lr, #51 ; 0x33 + 3568: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 356c: 572f3539 undefined + 3570: 4b203233 blmi 80fe44 + 3574: 534b4349 movtpl r4, #45897 ; 0xb349 + 3578: 54524154 ldrbpl r4, [r2], #-340 + 357c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 3580: 4d524120 ldfmie f4, [r2, #-128] + 3584: 1fa40100 svcne 0x00a40100 + 3588: 00ac0000 adceq r0, ip, r0 + 358c: 66030000 strvs r0, [r3], -r0 + 3590: 0067616c rsbeq r6, r7, ip, ror #2 + 3594: 0034a510 eorseq sl, r4, r0, lsl r5 + 3598: 08520a00 ldmdaeq r2, {r9, fp}^ + 359c: ac030501 cfstr32ge mvfx0, [r3], {1} + 35a0: 03004052 movweq r4, #82 ; 0x52 + 35a4: 63614d6d cmnvs r1, #6976 ; 0x1b40 + 35a8: 72734961 rsbsvc r4, r3, #1589248 ; 0x184000 + 35ac: 72746e45 rsbsvc r6, r4, #1104 ; 0x450 + 35b0: 756f4379 strbvc r4, [pc, #-889]! ; 323f + 35b4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 35b8: 34961000 ldrcc r1, [r6] + 35bc: 4a0a0000 bmi 2835c4 + 35c0: 03050010 movweq r0, #20496 ; 0x5010 + 35c4: 004052ab subeq r5, r0, fp, lsr #5 + 35c8: 00000000 andeq r0, r0, r0 + 35cc: 000001a8 andeq r0, r0, r8, lsr #3 + 35d0: 03e00003 mvneq r0, #3 ; 0x3 + 35d4: 04040000 streq r0, [r4] + 35d8: 445c3a43 ldrbmi r3, [ip], #-2627 + 35dc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 35e0: 73746e65 cmnvc r4, #1616 ; 0x650 + 35e4: 646e6120 strbtvs r6, [lr], #-288 + 35e8: 74655320 strbtvc r5, [r5], #-800 + 35ec: 676e6974 undefined + 35f0: 616d5c73 smcvs 54723 + 35f4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 35f8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 35fc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3600: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3604: 775c7374 undefined + 3608: 6f632d73 svcvs 0x00632d73 + 360c: 6f72746e svcvs 0x0072746e + 3610: 65575c6c ldrbvs r5, [r7, #-3180] + 3614: 65687461 strbvs r7, [r8, #-1121]! + 3618: 74532072 ldrbvc r2, [r3], #-114 + 361c: 6f697461 svcvs 0x00697461 + 3620: 6f43206e svcvs 0x0043206e + 3624: 6f72746e svcvs 0x0072746e + 3628: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 362c: 414d535c cmpmi sp, ip, asr r3 + 3630: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 3634: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3638: 6f535c73 svcvs 0x00535c73 + 363c: 65637275 strbvs r7, [r3, #-629]! + 3640: 63614d5c cmnvs r1, #5888 ; 0x1700 + 3644: 746e4961 strbtvc r4, [lr], #-2401 + 3648: 75727265 ldrbvc r7, [r2, #-613]! + 364c: 632e7470 teqvs lr, #1879048192 ; 0x70000000 + 3650: 52414900 subpl r4, r1, #0 ; 0x0 + 3654: 534e4120 movtpl r4, #57632 ; 0xe120 + 3658: 2f432049 svccs 0x00432049 + 365c: 202b2b43 eorcs r2, fp, r3, asr #22 + 3660: 706d6f43 rsbvc r6, sp, r3, asr #30 + 3664: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 3668: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 366c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 3670: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 3674: 572f3539 undefined + 3678: 4b203233 blmi 80ff4c + 367c: 534b4349 movtpl r4, #45897 ; 0xb349 + 3680: 54524154 ldrbpl r4, [r2], #-340 + 3684: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 3688: 4d524120 ldfmie f4, [r2, #-128] + 368c: 2bb40100 blcs fed03a94 + 3690: 2c440040 mcrrcs 0, 4, r0, r4, cr0 + 3694: 23d40040 bicscs r0, r4, #64 ; 0x40 + 3698: 165b0000 ldrbne r0, [fp], -r0 + 369c: af100000 svcge 0x00100000 + 36a0: 06000033 undefined + 36a4: 000001a8 andeq r0, r0, r8, lsr #3 + 36a8: 75736552 ldrbvc r6, [r3, #-1362]! + 36ac: 414d656d cmpmi sp, sp, ror #10 + 36b0: 79534143 ldmdbvc r3, {r0, r1, r6, r8, lr}^ + 36b4: 0100636e tsteq r0, lr, ror #6 + 36b8: 02010661 andeq r0, r1, #101711872 ; 0x6100000 + 36bc: b400000f strlt r0, [r0], #-15 + 36c0: 4400402b strmi r4, [r0], #-43 + 36c4: 0700402c streq r4, [r0, -ip, lsr #32] + 36c8: 006b6c63 rsbeq r6, fp, r3, ror #24 + 36cc: 100c6301 andne r6, ip, r1, lsl #6 + 36d0: 000034b3 strheq r3, [r0], -r3 + 36d4: 00000f52 andeq r0, r0, r2, asr pc + 36d8: 6d735407 cfldrdvs mvd5, [r3, #-28]! + 36dc: 74537852 ldrbvc r7, [r3], #-2130 + 36e0: 00737065 rsbseq r7, r3, r5, rrx + 36e4: 10116301 andsne r6, r1, r1, lsl #6 + 36e8: 000034b3 strheq r3, [r0], -r3 + 36ec: 00000f84 andeq r0, r0, r4, lsl #31 + 36f0: 73614c07 cmnvc r1, #1792 ; 0x700 + 36f4: 72615774 rsbvc r5, r1, #30408704 ; 0x1d00000 + 36f8: 5370756d cmnpl r0, #457179136 ; 0x1b400000 + 36fc: 00706574 rsbseq r6, r0, r4, ror r5 + 3700: 101d6301 andsne r6, sp, r1, lsl #6 + 3704: 000034b3 strheq r3, [r0], -r3 + 3708: 00000fa1 andeq r0, r0, r1, lsr #31 + 370c: 73614c07 cmnvc r1, #1792 ; 0x700 + 3710: 72615774 rsbvc r5, r1, #30408704 ; 0x1d00000 + 3714: 4470756d ldrbtmi r7, [r0], #-1389 + 3718: 00617461 rsbeq r7, r1, r1, ror #8 + 371c: 102d6301 eorne r6, sp, r1, lsl #6 + 3720: 000034b3 strheq r3, [r0], -r3 + 3724: 00000fbe strheq r0, [r0], -lr + 3728: 73614c07 cmnvc r1, #1792 ; 0x700 + 372c: 72615774 rsbvc r5, r1, #30408704 ; 0x1d00000 + 3730: 776f646d strbvc r6, [pc, -sp, ror #8]! + 3734: 6574536e ldrbvs r5, [r4, #-878]! + 3738: 63010070 movwvs r0, #4208 ; 0x1070 + 373c: 34b3103d ldrtcc r1, [r3], #61 + 3740: 0fdb0000 svceq 0x00db0000 + 3744: 4c070000 stcmi 0, cr0, [r7], {0} + 3748: 57747361 ldrbpl r7, [r4, -r1, ror #6]! + 374c: 646d7261 strbtvs r7, [sp], #-609 + 3750: 446e776f strbtmi r7, [lr], #-1903 + 3754: 00617461 rsbeq r7, r1, r1, ror #8 + 3758: 104f6301 subne r6, pc, r1, lsl #6 + 375c: 000034b3 strheq r3, [r0], -r3 + 3760: 00000fe3 andeq r0, r0, r3, ror #31 + 3764: 01006907 tsteq r0, r7, lsl #18 + 3768: 90101565 andsls r1, r0, r5, ror #10 + 376c: 00000034 andeq r0, r0, r4, lsr r0 + 3770: 00000010 andeq r0, r0, r0, lsl r0 + 3774: 00000000 andeq r0, r0, r0 + 3778: 00000158 andeq r0, r0, r8, asr r1 + 377c: 03e00003 mvneq r0, #3 ; 0x3 + 3780: 04040000 streq r0, [r4] + 3784: 445c3a43 ldrbmi r3, [ip], #-2627 + 3788: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 378c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3790: 646e6120 strbtvs r6, [lr], #-288 + 3794: 74655320 strbtvc r5, [r5], #-800 + 3798: 676e6974 undefined + 379c: 616d5c73 smcvs 54723 + 37a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 37a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 37a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 37ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 37b0: 775c7374 undefined + 37b4: 6f632d73 svcvs 0x00632d73 + 37b8: 6f72746e svcvs 0x0072746e + 37bc: 65575c6c ldrbvs r5, [r7, #-3180] + 37c0: 65687461 strbvs r7, [r8, #-1121]! + 37c4: 74532072 ldrbvc r2, [r3], #-114 + 37c8: 6f697461 svcvs 0x00697461 + 37cc: 6f43206e svcvs 0x0043206e + 37d0: 6f72746e svcvs 0x0072746e + 37d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 37d8: 414d535c cmpmi sp, ip, asr r3 + 37dc: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 37e0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 37e4: 6f535c73 svcvs 0x00535c73 + 37e8: 65637275 strbvs r7, [r3, #-629]! + 37ec: 63614d5c cmnvs r1, #5888 ; 0x1700 + 37f0: 746e4961 strbtvc r4, [lr], #-2401 + 37f4: 75727265 ldrbvc r7, [r2, #-613]! + 37f8: 632e7470 teqvs lr, #1879048192 ; 0x70000000 + 37fc: 52414900 subpl r4, r1, #0 ; 0x0 + 3800: 534e4120 movtpl r4, #57632 ; 0xe120 + 3804: 2f432049 svccs 0x00432049 + 3808: 202b2b43 eorcs r2, fp, r3, asr #22 + 380c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 3810: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 3814: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 3818: 322e3033 eorcc r3, lr, #51 ; 0x33 + 381c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 3820: 572f3539 undefined + 3824: 4b203233 blmi 8100f8 + 3828: 534b4349 movtpl r4, #45897 ; 0xb349 + 382c: 54524154 ldrbpl r4, [r2], #-340 + 3830: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 3834: 4d524120 ldfmie f4, [r2, #-128] + 3838: 2c440100 stfcse f0, [r4], {0} + 383c: 2dc80040 stclcs 0, cr0, [r8, #256] + 3840: 24b00040 ldrtcs r0, [r0], #64 + 3844: 171b0000 ldrne r0, [fp, -r0] + 3848: af100000 svcge 0x00100000 + 384c: 06000033 undefined + 3850: 00000158 andeq r0, r0, r8, asr r1 + 3854: 4143414d cmpmi r3, sp, asr #2 + 3858: 746e495f strbtvc r4, [lr], #-2399 + 385c: 75727265 ldrbvc r7, [r2, #-613]! + 3860: 01007470 tsteq r0, r0, ror r4 + 3864: 010601a5 smlatbeq r6, r5, r1, r0 + 3868: 00001034 andeq r1, r0, r4, lsr r0 + 386c: 00402c44 subeq r2, r0, r4, asr #24 + 3870: 00402dc8 subeq r2, r0, r8, asr #27 + 3874: 71726907 cmnvc r2, r7, lsl #18 + 3878: 00637253 rsbeq r7, r3, r3, asr r2 + 387c: 0c01a701 stceq 7, cr10, [r1], {1} + 3880: 0034b310 eorseq fp, r4, r0, lsl r3 + 3884: 00107800 andseq r7, r0, r0, lsl #16 + 3888: 013b0800 teqeq fp, r0, lsl #16 + 388c: 2c6c0000 stclcs 0, cr0, [ip] + 3890: 2d120040 ldccs 0, cr0, [r2, #-256] + 3894: 3a080040 bcc 20399c + 3898: a0000001 andge r0, r0, r1 + 389c: 1200402c andne r4, r0, #44 ; 0x2c + 38a0: 0800402d stmdaeq r0, {r0, r2, r3, r5, lr} + 38a4: 00000139 andeq r0, r0, r9, lsr r1 + 38a8: 00402cdc ldrdeq r2, [r0], #-204 + 38ac: 00402cfc strdeq r2, [r0], #-204 + 38b0: 08000000 stmdaeq r0, {} + 38b4: 00000157 andeq r0, r0, r7, asr r1 + 38b8: 00402d2e subeq r2, r0, lr, lsr #26 + 38bc: 00402d68 subeq r2, r0, r8, ror #26 + 38c0: 00015608 andeq r5, r1, r8, lsl #12 + 38c4: 402d3c00 eormi r3, sp, r0, lsl #24 + 38c8: 402d6800 eormi r6, sp, r0, lsl #16 + ... + 38d4: 000000f0 strdeq r0, [r0], -r0 + 38d8: 04700003 ldrbteq r0, [r0], #-3 + 38dc: 01040000 tsteq r4, r0 + 38e0: 445c3a43 ldrbmi r3, [ip], #-2627 + 38e4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 38e8: 73746e65 cmnvc r4, #1616 ; 0x650 + 38ec: 646e6120 strbtvs r6, [lr], #-288 + 38f0: 74655320 strbtvc r5, [r5], #-800 + 38f4: 676e6974 undefined + 38f8: 616d5c73 smcvs 54723 + 38fc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3900: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3904: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3908: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 390c: 775c7374 undefined + 3910: 6f632d73 svcvs 0x00632d73 + 3914: 6f72746e svcvs 0x0072746e + 3918: 65575c6c ldrbvs r5, [r7, #-3180] + 391c: 65687461 strbvs r7, [r8, #-1121]! + 3920: 74532072 ldrbvc r2, [r3], #-114 + 3924: 6f697461 svcvs 0x00697461 + 3928: 6f43206e svcvs 0x0043206e + 392c: 6f72746e svcvs 0x0072746e + 3930: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3934: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3938: 756f535c strbvc r5, [pc, #-860]! ; 35e4 + 393c: 5c656372 stclpl 3, cr6, [r5], #-456 + 3940: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 3944: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 3948: 505c7379 subspl r7, ip, r9, ror r3 + 394c: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 3950: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 3954: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 3958: 41490063 cmpmi r9, r3, rrx + 395c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3960: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3964: 2b2b432f blcs ad4628 + 3968: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 396c: 656c6970 strbvs r6, [ip, #-2416]! + 3970: 35562072 ldrbcc r2, [r6, #-114] + 3974: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3978: 31332e32 teqcc r3, r2, lsr lr + 397c: 2f353932 svccs 0x00353932 + 3980: 20323357 eorscs r3, r2, r7, asr r3 + 3984: 4b43494b blmi 10d5eb8 + 3988: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 398c: 6f662054 svcvs 0x00662054 + 3990: 52412072 subpl r2, r1, #114 ; 0x72 + 3994: dc01004d stcle 0, cr0, [r1], {77} + 3998: e4000025 str r0, [r0], #-37 + 399c: 03000000 movweq r0, #0 ; 0x0 + 39a0: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 39a4: 64656e67 strbtvs r6, [r5], #-3687 + 39a8: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} + 39ac: 07040067 streq r0, [r4, -r7, rrx] + 39b0: 00e21304 rsceq r1, r2, r4, lsl #6 + 39b4: 75090000 strvc r0, [r9] + 39b8: 33746e69 cmncc r4, #1680 ; 0x690 + 39bc: 00745f32 rsbseq r5, r4, r2, lsr pc + 39c0: 0101cb15 tsteq r1, r5, lsl fp + 39c4: 0000191e andeq r1, r0, lr, lsl r9 + 39c8: 00000110 andeq r0, r0, r0, lsl r1 + 39cc: 04700003 ldrbteq r0, [r0], #-3 + 39d0: 02040000 andeq r0, r4, #0 ; 0x0 + 39d4: 445c3a43 ldrbmi r3, [ip], #-2627 + 39d8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 39dc: 73746e65 cmnvc r4, #1616 ; 0x650 + 39e0: 646e6120 strbtvs r6, [lr], #-288 + 39e4: 74655320 strbtvc r5, [r5], #-800 + 39e8: 676e6974 undefined + 39ec: 616d5c73 smcvs 54723 + 39f0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 39f4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 39f8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 39fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3a00: 775c7374 undefined + 3a04: 6f632d73 svcvs 0x00632d73 + 3a08: 6f72746e svcvs 0x0072746e + 3a0c: 65575c6c ldrbvs r5, [r7, #-3180] + 3a10: 65687461 strbvs r7, [r8, #-1121]! + 3a14: 74532072 ldrbvc r2, [r3], #-114 + 3a18: 6f697461 svcvs 0x00697461 + 3a1c: 6f43206e svcvs 0x0043206e + 3a20: 6f72746e svcvs 0x0072746e + 3a24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3a28: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3a2c: 756f535c strbvc r5, [pc, #-860]! ; 36d8 + 3a30: 5c656372 stclpl 3, cr6, [r5], #-456 + 3a34: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 3a38: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 3a3c: 505c7379 subspl r7, ip, r9, ror r3 + 3a40: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 3a44: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 3a48: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 3a4c: 41490063 cmpmi r9, r3, rrx + 3a50: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3a54: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3a58: 2b2b432f blcs ad471c + 3a5c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3a60: 656c6970 strbvs r6, [ip, #-2416]! + 3a64: 35562072 ldrbcc r2, [r6, #-114] + 3a68: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3a6c: 31332e32 teqcc r3, r2, lsr lr + 3a70: 2f353932 svccs 0x00353932 + 3a74: 20323357 eorscs r3, r2, r7, asr r3 + 3a78: 4b43494b blmi 10d5fac + 3a7c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3a80: 6f662054 svcvs 0x00662054 + 3a84: 52412072 subpl r2, r1, #114 ; 0x72 + 3a88: a401004d strge r0, [r1], #-77 + 3a8c: f000403c undefined instruction 0xf000403c + 3a90: ec00403c stc 0, cr4, [r0], {60} + 3a94: db000027 blle 3b38 + 3a98: 10000018 andne r0, r0, r8, lsl r0 + 3a9c: 000038df ldrdeq r3, [r0], -pc + 3aa0: 00011205 andeq r1, r1, r5, lsl #4 + 3aa4: 616c5000 cmnvs ip, r0 + 3aa8: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 + 3aac: 726f506d rsbvc r5, pc, #109 ; 0x6d + 3ab0: 696e4974 stmdbvs lr!, {r2, r4, r5, r6, r8, fp, lr}^ + 3ab4: 1e010074 mcrne 0, 0, r0, cr1, cr4, {3} + 3ab8: 113d0106 teqne sp, r6, lsl #2 + 3abc: 3ca40000 stccc 0, cr0, [r4] + 3ac0: 3cf00040 ldclcc 0, cr0, [r0], #256 + 3ac4: 11060040 tstne r6, r0, asr #32 + 3ac8: 10000001 andne r0, r0, r1 + 3acc: 00003ba7 andeq r3, r0, r7, lsr #23 + 3ad0: 00403ca4 subeq r3, r0, r4, lsr #25 + 3ad4: 00403cea subeq r3, r0, sl, ror #25 + 3ad8: 00000000 andeq r0, r0, r0 + 3adc: 000000e4 andeq r0, r0, r4, ror #1 + 3ae0: 04700003 ldrbteq r0, [r0], #-3 + 3ae4: 01040000 tsteq r4, r0 + 3ae8: 445c3a43 ldrbmi r3, [ip], #-2627 + 3aec: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3af0: 73746e65 cmnvc r4, #1616 ; 0x650 + 3af4: 646e6120 strbtvs r6, [lr], #-288 + 3af8: 74655320 strbtvc r5, [r5], #-800 + 3afc: 676e6974 undefined + 3b00: 616d5c73 smcvs 54723 + 3b04: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3b08: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3b0c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3b10: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3b14: 775c7374 undefined + 3b18: 6f632d73 svcvs 0x00632d73 + 3b1c: 6f72746e svcvs 0x0072746e + 3b20: 65575c6c ldrbvs r5, [r7, #-3180] + 3b24: 65687461 strbvs r7, [r8, #-1121]! + 3b28: 74532072 ldrbvc r2, [r3], #-114 + 3b2c: 6f697461 svcvs 0x00697461 + 3b30: 6f43206e svcvs 0x0043206e + 3b34: 6f72746e svcvs 0x0072746e + 3b38: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3b3c: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3b40: 756f535c strbvc r5, [pc, #-860]! ; 37ec + 3b44: 5c656372 stclpl 3, cr6, [r5], #-456 + 3b48: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 3b4c: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 3b50: 505c7379 subspl r7, ip, r9, ror r3 + 3b54: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 3b58: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 3b5c: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 3b60: 41490063 cmpmi r9, r3, rrx + 3b64: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3b68: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3b6c: 2b2b432f blcs ad4830 + 3b70: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3b74: 656c6970 strbvs r6, [ip, #-2416]! + 3b78: 35562072 ldrbcc r2, [r6, #-114] + 3b7c: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3b80: 31332e32 teqcc r3, r2, lsr lr + 3b84: 2f353932 svccs 0x00353932 + 3b88: 20323357 eorscs r3, r2, r7, asr r3 + 3b8c: 4b43494b blmi 10d60c0 + 3b90: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3b94: 6f662054 svcvs 0x00662054 + 3b98: 52412072 subpl r2, r1, #114 ; 0x72 + 3b9c: dc01004d stcle 0, cr0, [r1], {77} + 3ba0: e4000025 str r0, [r0], #-37 + 3ba4: 08000000 stmdaeq r0, {} + 3ba8: 000000e7 andeq r0, r0, r7, ror #1 + 3bac: 74616c50 strbtvc r6, [r1], #-3152 + 3bb0: 6d726f66 ldclvs 15, cr6, [r2, #-408]! + 3bb4: 74696e49 strbtvc r6, [r9], #-3657 + 3bb8: 6f697047 svcvs 0x00697047 + 3bbc: 0d450900 stcleq 9, cr0, [r5] + 3bc0: 00000000 andeq r0, r0, r0 + 3bc4: 00000af4 strdeq r0, [r0], -r4 + 3bc8: 05000003 streq r0, [r0, #-3] + 3bcc: 01040000 tsteq r4, r0 + 3bd0: 445c3a43 ldrbmi r3, [ip], #-2627 + 3bd4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3bd8: 73746e65 cmnvc r4, #1616 ; 0x650 + 3bdc: 646e6120 strbtvs r6, [lr], #-288 + 3be0: 74655320 strbtvc r5, [r5], #-800 + 3be4: 676e6974 undefined + 3be8: 616d5c73 smcvs 54723 + 3bec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3bf0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3bf4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3bf8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3bfc: 775c7374 undefined + 3c00: 6f632d73 svcvs 0x00632d73 + 3c04: 6f72746e svcvs 0x0072746e + 3c08: 65575c6c ldrbvs r5, [r7, #-3180] + 3c0c: 65687461 strbvs r7, [r8, #-1121]! + 3c10: 74532072 ldrbvc r2, [r3], #-114 + 3c14: 6f697461 svcvs 0x00697461 + 3c18: 6f43206e svcvs 0x0043206e + 3c1c: 6f72746e svcvs 0x0072746e + 3c20: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3c24: 414d535c cmpmi sp, ip, asr r3 + 3c28: 6f535c43 svcvs 0x00535c43 + 3c2c: 65637275 strbvs r7, [r3, #-629]! + 3c30: 6461525c strbtvs r5, [r1], #-604 + 3c34: 614d6f69 cmpvs sp, r9, ror #30 + 3c38: 6567616e strbvs r6, [r7, #-366]! + 3c3c: 746e656d strbtvc r6, [lr], #-1389 + 3c40: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 3c44: 41205241 teqmi r0, r1, asr #4 + 3c48: 2049534e subcs r5, r9, lr, asr #6 + 3c4c: 2b432f43 blcs 10cf960 + 3c50: 6f43202b svcvs 0x0043202b + 3c54: 6c69706d stclvs 0, cr7, [r9], #-436 + 3c58: 56207265 strtpl r7, [r0], -r5, ror #4 + 3c5c: 30332e35 eorscc r2, r3, r5, lsr lr + 3c60: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 3c64: 35393231 ldrcc r3, [r9, #-561]! + 3c68: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 3c6c: 43494b20 movtmi r4, #39712 ; 0x9b20 + 3c70: 4154534b cmpmi r4, fp, asr #6 + 3c74: 66205452 undefined + 3c78: 4120726f teqmi r0, pc, ror #4 + 3c7c: 01004d52 tsteq r0, r2, asr sp + 3c80: 000028c4 andeq r2, r0, r4, asr #17 + 3c84: 0000010c andeq r0, r0, ip, lsl #2 + 3c88: 736e7502 cmnvc lr, #8388608 ; 0x800000 + 3c8c: 656e6769 strbvs r6, [lr, #-1897]! + 3c90: 68632064 stmdavs r3!, {r2, r5, r6, sp}^ + 3c94: 01007261 tsteq r0, r1, ror #4 + 3c98: 8e130308 cdphi 3, 1, cr0, cr3, cr8, {0} + 3c9c: 0200000a andeq r0, r0, #10 ; 0xa + 3ca0: 64696f76 strbtvs r6, [r9], #-3958 + 3ca4: 03050000 movweq r0, #20480 ; 0x5000 + 3ca8: 0003c813 andeq ip, r3, r3, lsl r8 + 3cac: 6e750200 cdpvs 2, 7, cr0, cr5, cr0, {0} + 3cb0: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} + 3cb4: 6c206465 cfstrsvs mvf6, [r0], #-404 + 3cb8: 00676e6f rsbeq r6, r7, pc, ror #28 + 3cbc: 13050704 movwne r0, #22276 ; 0x5704 + 3cc0: 0000040a andeq r0, r0, sl, lsl #8 + 3cc4: 043a1305 ldrteq r1, [sl], #-773 + 3cc8: 13050000 movwne r0, #20480 ; 0x5000 + 3ccc: 0000042f andeq r0, r0, pc, lsr #8 + 3cd0: 03f41305 mvnseq r1, #335544320 ; 0x14000000 + 3cd4: 13030000 movwne r0, #12288 ; 0x3000 + 3cd8: 00000891 muleq r0, r1, r8 + 3cdc: 736e7502 cmnvc lr, #8388608 ; 0x800000 + 3ce0: 656e6769 strbvs r6, [lr, #-1897]! + 3ce4: 68732064 ldmdavs r3!, {r2, r5, r6, sp}^ + 3ce8: 0074726f rsbseq r7, r4, pc, ror #4 + 3cec: 13030702 movwne r0, #14082 ; 0x3702 + 3cf0: 000003ce andeq r0, r0, lr, asr #7 + 3cf4: 00022312 andeq r2, r2, r2, lsl r3 + 3cf8: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! + 3cfc: 5f78745f svcpl 0x0078745f + 3d00: 74617473 strbtvc r7, [r1], #-1139 + 3d04: 61745f65 cmnvs r4, r5, ror #30 + 3d08: 13010067 movwne r0, #4199 ; 0x1067 + 3d0c: 5f47534d svcpl 0x0047534d + 3d10: 525f5854 subspl r5, pc, #5505024 ; 0x540000 + 3d14: 00545351 subseq r5, r4, r1, asr r3 + 3d18: 534d1300 movtpl r1, #54016 ; 0xd300 + 3d1c: 58545f47 ldmdapl r4, {r0, r1, r2, r6, r8, r9, sl, fp, ip, lr}^ + 3d20: 5341505f movtpl r5, #4191 ; 0x105f + 3d24: 5f444553 svcpl 0x00444553 + 3d28: 445f4f54 ldrbmi r4, [pc], #3924 ; 3d30 + 3d2c: 43495645 movtmi r5, #38469 ; 0x9645 + 3d30: 13010045 movwne r0, #4165 ; 0x1045 + 3d34: 5f47534d svcpl 0x0047534d + 3d38: 415f5854 cmpmi pc, r4, asr r8 + 3d3c: 4f495443 svcmi 0x00495443 + 3d40: 54535f4e ldrbpl r5, [r3], #-3918 + 3d44: 45545241 ldrbmi r5, [r4, #-577] + 3d48: 13020044 movwne r0, #8260 ; 0x2044 + 3d4c: 5f47534d svcpl 0x0047534d + 3d50: 415f5854 cmpmi pc, r4, asr r8 + 3d54: 4f495443 svcmi 0x00495443 + 3d58: 4f435f4e svcmi 0x00435f4e + 3d5c: 454c504d strbmi r5, [ip, #-77] + 3d60: 435f4554 cmpmi pc, #352321536 ; 0x15000000 + 3d64: 4e4e4148 dvfmiem f4, f6, #0.0 + 3d68: 5355425f cmppl r5, #-268435451 ; 0xf0000005 + 3d6c: 13030059 movwne r0, #12377 ; 0x3059 + 3d70: 5f47534d svcpl 0x0047534d + 3d74: 415f5854 cmpmi pc, r4, asr r8 + 3d78: 4f495443 svcmi 0x00495443 + 3d7c: 4f435f4e svcmi 0x00435f4e + 3d80: 454c504d strbmi r5, [ip, #-77] + 3d84: 535f4554 cmppl pc, #352321536 ; 0x15000000 + 3d88: 45434355 strbmi r4, [r3, #-853] + 3d8c: 04005353 streq r5, [r0], #-851 + 3d90: 47534d13 smmlami r3, r3, sp, r4 + 3d94: 5f58545f svcpl 0x0058545f + 3d98: 49544341 ldmdbmi r4, {r0, r6, r8, r9, lr}^ + 3d9c: 435f4e4f cmpmi pc, #1264 ; 0x4f0 + 3da0: 4c504d4f mrrcmi 13, 4, r4, r0, cr15 + 3da4: 5f455445 svcpl 0x00455445 + 3da8: 4c494146 stfmie f4, [r9], {70} + 3dac: 4d130500 cfldr32mi mvfx0, [r3] + 3db0: 545f4753 ldrbpl r4, [pc], #1875 ; 3db8 + 3db4: 51525f58 cmppl r2, r8, asr pc + 3db8: 415f5453 cmpmi pc, r3, asr r4 + 3dbc: 54524f42 ldrbpl r4, [r2], #-3906 + 3dc0: 4d130600 ldcmi 6, cr0, [r3] + 3dc4: 545f4753 ldrbpl r4, [pc], #1875 ; 3dcc + 3dc8: 42415f58 submi r5, r1, #352 ; 0x160 + 3dcc: 4554524f ldrbmi r5, [r4, #-591] + 3dd0: 13070044 movwne r0, #28740 ; 0x7044 + 3dd4: 5f58414d svcpl 0x0058414d + 3dd8: 5f47534d svcpl 0x0047534d + 3ddc: 535f5854 cmppl pc, #5505024 ; 0x540000 + 3de0: 45544154 ldrbmi r4, [r4, #-340] + 3de4: 12000800 andne r0, r0, #0 ; 0x0 + 3de8: 000002da ldrdeq r0, [r0], -sl + 3dec: 5f67736d svcpl 0x0067736d + 3df0: 735f6465 cmpvc pc, #1694498816 ; 0x65000000 + 3df4: 65746174 ldrbvs r6, [r4, #-372]! + 3df8: 6761745f undefined + 3dfc: 4d130100 ldfmis f0, [r3] + 3e00: 455f4753 ldrbmi r4, [pc, #-1875] ; 36b5 + 3e04: 51525f44 cmppl r2, r4, asr #30 + 3e08: 00005453 andeq r5, r0, r3, asr r4 + 3e0c: 47534d13 smmlami r3, r3, sp, r4 + 3e10: 5f44455f svcpl 0x0044455f + 3e14: 53534150 cmppl r3, #20 ; 0x14 + 3e18: 545f4445 ldrbpl r4, [pc], #1093 ; 3e20 + 3e1c: 45445f4f strbmi r5, [r4, #-3919] + 3e20: 45434956 strbmi r4, [r3, #-2390] + 3e24: 4d130100 ldfmis f0, [r3] + 3e28: 455f4753 ldrbmi r4, [pc, #-1875] ; 36dd + 3e2c: 43415f44 movtmi r5, #8004 ; 0x1f44 + 3e30: 4e4f4954 mcrmi 9, 2, r4, cr15, cr4, {2} + 3e34: 4d4f435f stclmi 3, cr4, [pc, #-380] + 3e38: 54454c50 strbpl r4, [r5], #-3152 + 3e3c: 55535f45 ldrbpl r5, [r3, #-3909] + 3e40: 53454343 movtpl r4, #21315 ; 0x5343 + 3e44: 13020053 movwne r0, #8275 ; 0x2053 + 3e48: 5f47534d svcpl 0x0047534d + 3e4c: 415f4445 cmpmi pc, r5, asr #8 + 3e50: 4f495443 svcmi 0x00495443 + 3e54: 4f435f4e svcmi 0x00435f4e + 3e58: 454c504d strbmi r5, [ip, #-77] + 3e5c: 465f4554 undefined + 3e60: 004c4941 subeq r4, ip, r1, asr #18 + 3e64: 534d1303 movtpl r1, #54019 ; 0xd303 + 3e68: 44455f47 strbmi r5, [r5], #-3911 + 3e6c: 5351525f cmppl r1, #-268435451 ; 0xf0000005 + 3e70: 42415f54 submi r5, r1, #336 ; 0x150 + 3e74: 0054524f subseq r5, r4, pc, asr #4 + 3e78: 534d1304 movtpl r1, #54020 ; 0xd304 + 3e7c: 44455f47 strbmi r5, [r5], #-3911 + 3e80: 4f42415f svcmi 0x0042415f + 3e84: 44455452 strbmi r5, [r5], #-1106 + 3e88: 4d130500 cfldr32mi mvfx0, [r3] + 3e8c: 4d5f5841 ldclmi 8, cr5, [pc, #-260] + 3e90: 455f4753 ldrbmi r4, [pc, #-1875] ; 3745 + 3e94: 54535f44 ldrbpl r5, [r3], #-3908 + 3e98: 00455441 subeq r5, r5, r1, asr #8 + 3e9c: 91120006 tstls r2, r6 + 3ea0: 6d000003 stcvs 0, cr0, [r0, #-12] + 3ea4: 745f6773 ldrbvc r6, [pc], #1907 ; 3eac + 3ea8: 74735f6f ldrbtvc r5, [r3], #-3951 + 3eac: 5f657461 svcpl 0x00657461 + 3eb0: 00676174 rsbeq r6, r7, r4, ror r1 + 3eb4: 534d1301 movtpl r1, #54017 ; 0xd301 + 3eb8: 4f545f47 svcmi 0x00545f47 + 3ebc: 5351525f cmppl r1, #-268435451 ; 0xf0000005 + 3ec0: 13000054 movwne r0, #84 ; 0x54 + 3ec4: 5f47534d svcpl 0x0047534d + 3ec8: 505f4f54 subspl r4, pc, r4, asr pc + 3ecc: 45535341 ldrbmi r5, [r3, #-833] + 3ed0: 4f545f44 svcmi 0x00545f44 + 3ed4: 5645445f undefined + 3ed8: 00454349 subeq r4, r5, r9, asr #6 + 3edc: 534d1301 movtpl r1, #54017 ; 0xd301 + 3ee0: 4f545f47 svcmi 0x00545f47 + 3ee4: 5443415f strbpl r4, [r3], #-351 + 3ee8: 5f4e4f49 svcpl 0x004e4f49 + 3eec: 504d4f43 subpl r4, sp, r3, asr #30 + 3ef0: 4554454c ldrbmi r4, [r4, #-1356] + 3ef4: 4355535f cmpmi r5, #2080374785 ; 0x7c000001 + 3ef8: 53534543 cmppl r3, #281018368 ; 0x10c00000 + 3efc: 4d130200 lfmmi f0, 4, [r3] + 3f00: 545f4753 ldrbpl r4, [pc], #1875 ; 3f08 + 3f04: 43415f4f movtmi r5, #8015 ; 0x1f4f + 3f08: 4e4f4954 mcrmi 9, 2, r4, cr15, cr4, {2} + 3f0c: 4d4f435f stclmi 3, cr4, [pc, #-380] + 3f10: 54454c50 strbpl r4, [r5], #-3152 + 3f14: 41465f45 cmpmi r6, r5, asr #30 + 3f18: 03004c49 movweq r4, #3145 ; 0xc49 + 3f1c: 47534d13 smmlami r3, r3, sp, r4 + 3f20: 5f4f545f svcpl 0x004f545f + 3f24: 54535152 ldrbpl r5, [r3], #-338 + 3f28: 4f42415f svcmi 0x0042415f + 3f2c: 04005452 streq r5, [r0], #-1106 + 3f30: 47534d13 smmlami r3, r3, sp, r4 + 3f34: 5f4f545f svcpl 0x004f545f + 3f38: 524f4241 subpl r4, pc, #268435460 ; 0x10000004 + 3f3c: 00444554 subeq r4, r4, r4, asr r5 + 3f40: 414d1305 cmpmi sp, r5, lsl #6 + 3f44: 534d5f58 movtpl r5, #57176 ; 0xdf58 + 3f48: 4f545f47 svcmi 0x00545f47 + 3f4c: 4154535f cmpmi r4, pc, asr r3 + 3f50: 06004554 undefined + 3f54: 03c81200 biceq r1, r8, #0 ; 0x0 + 3f58: 736d0000 cmnvc sp, #0 ; 0x0 + 3f5c: 79745f67 ldmdbvc r4!, {r0, r1, r2, r5, r6, r8, r9, sl, fp, ip, lr}^ + 3f60: 745f6570 ldrbvc r6, [pc], #1392 ; 3f68 + 3f64: 01006761 tsteq r0, r1, ror #14 + 3f68: 00585413 subseq r5, r8, r3, lsl r4 + 3f6c: 58521300 ldmdapl r2, {r8, r9, ip}^ + 3f70: 45130100 ldrmi r0, [r3, #-256] + 3f74: 13020044 movwne r0, #8260 ; 0x2044 + 3f78: 03004f54 movweq r4, #3924 ; 0xf54 + 3f7c: 58414d13 stmdapl r1, {r0, r1, r4, r8, sl, fp, lr}^ + 3f80: 47534d5f undefined + 3f84: 5059545f subspl r5, r9, pc, asr r4 + 3f88: 00040045 andeq r0, r4, r5, asr #32 + 3f8c: 0003ce14 andeq ip, r3, r4, lsl lr + 3f90: da140000 ble 503f98 + 3f94: 15000003 strne r0, [r0, #-3] + 3f98: 000a2813 andeq r2, sl, r3, lsl r8 + 3f9c: e7160000 ldr r0, [r6, -r0] + 3fa0: 13000003 movwne r0, #3 ; 0x3 + 3fa4: 00000a28 andeq r0, r0, r8, lsr #20 + 3fa8: 16000017 undefined + 3fac: 000003f4 strdeq r0, [r0], -r4 + 3fb0: 000a2813 andeq r2, sl, r3, lsl r8 + 3fb4: 00011700 andeq r1, r1, r0, lsl #14 + 3fb8: 0003ff16 andeq pc, r3, r6, lsl pc + 3fbc: 01c41500 biceq r1, r4, r0, lsl #10 + 3fc0: 16000317 undefined + 3fc4: 0000040a andeq r0, r0, sl, lsl #8 + 3fc8: 17029215 smladne r2, r5, r2, r9 + 3fcc: 15160003 ldrne r0, [r6, #-3] + 3fd0: 15000004 strne r0, [r0, #-4] + 3fd4: 031701e3 tsteq r7, #-1073741768 ; 0xc0000038 + 3fd8: 04221600 strteq r1, [r2], #-1536 + 3fdc: 55130000 ldrpl r0, [r3] + 3fe0: 1700000a strne r0, [r0, -sl] + 3fe4: 2f160003 svccs 0x00160003 + 3fe8: 13000004 movwne r0, #4 ; 0x4 + 3fec: 00000a55 andeq r0, r0, r5, asr sl + 3ff0: 16000917 undefined + 3ff4: 0000043a andeq r0, r0, sl, lsr r4 + 3ff8: 1701c415 smladne r1, r5, r4, ip + 3ffc: 4516000f ldrmi r0, [r6, #-15] + 4000: 15000004 strne r0, [r0, #-4] + 4004: 0f1701e9 svceq 0x001701e9 + 4008: 04521600 ldrbeq r1, [r2], #-1536 + 400c: 28130000 ldmdacs r3, {} + 4010: 1700000a strne r0, [r0, -sl] + 4014: 1a18000f bne 604058 + 4018: 04000008 streq r0, [r0], #-8 + 401c: 0a551319 beq 1548c88 + 4020: 61010000 tstvs r1, r0 + 4024: 6f697463 svcvs 0x00697463 + 4028: 74735f6e ldrbtvc r5, [r3], #-3950 + 402c: 65747261 ldrbvs r7, [r4, #-609]! + 4030: 6c665f64 stclvs 15, cr5, [r6], #-400 + 4034: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4038: 01040023 tsteq r4, r3, lsr #32 + 403c: 5513191f ldrpl r1, [r3, #-2335] + 4040: 0100000a tsteq r0, sl + 4044: 636e7973 cmnvs lr, #1884160 ; 0x1cc000 + 4048: 7465645f strbtvc r6, [r5], #-1119 + 404c: 65746365 ldrbvs r6, [r4, #-869]! + 4050: 6c665f64 stclvs 15, cr5, [r6], #-400 + 4054: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4058: 01040023 tsteq r4, r3, lsr #32 + 405c: 5513191e ldrpl r1, [r3, #-2334] + 4060: 0100000a tsteq r0, sl + 4064: 656d6974 strbvs r6, [sp, #-2420]! + 4068: 5f74756f svcpl 0x0074756f + 406c: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 4070: 00230200 eoreq r0, r3, r0, lsl #4 + 4074: 191d0104 ldmdbne sp, {r2, r8} + 4078: 000a5513 andeq r5, sl, r3, lsl r5 + 407c: 68630100 stmdavs r3!, {r8}^ + 4080: 736b6365 cmnvc fp, #-1811939327 ; 0x94000001 + 4084: 665f6d75 undefined + 4088: 656c6961 strbvs r6, [ip, #-2401]! + 408c: 6c665f64 stclvs 15, cr5, [r6], #-400 + 4090: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4094: 01040023 tsteq r4, r3, lsr #32 + 4098: 5513191c ldrpl r1, [r3, #-2332] + 409c: 0100000a tsteq r0, sl + 40a0: 61746164 cmnvs r4, r4, ror #2 + 40a4: 646e695f strbtvs r6, [lr], #-2399 + 40a8: 74616369 strbtvc r6, [r1], #-873 + 40ac: 5f6e6f69 svcpl 0x006e6f69 + 40b0: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 40b4: 00230200 eoreq r0, r3, r0, lsl #4 + 40b8: 191b0104 ldmdbne fp, {r2, r8} + 40bc: 000a5513 andeq r5, sl, r3, lsl r5 + 40c0: 63610100 cmnvs r1, #0 ; 0x0 + 40c4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 40c8: 6d6f635f stclvs 3, cr6, [pc, #-380]! + 40cc: 74656c70 strbtvc r6, [r5], #-3184 + 40d0: 6c665f65 stclvs 15, cr5, [r6], #-404 + 40d4: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 40d8: 01040023 tsteq r4, r3, lsr #32 + 40dc: 5513191a ldrpl r1, [r3, #-2330] + 40e0: 0100000a tsteq r0, sl + 40e4: 735f6361 cmpvc pc, #-2080374783 ; 0x84000001 + 40e8: 65636375 strbvs r6, [r3, #-885]! + 40ec: 665f7373 undefined + 40f0: 0067616c rsbeq r6, r7, ip, ror #2 + 40f4: 04002302 streq r2, [r0], #-770 + 40f8: 13191901 tstne r9, #16384 ; 0x4000 + 40fc: 00000a55 andeq r0, r0, r5, asr sl + 4100: 5f636101 svcpl 0x00636101 + 4104: 656d6974 strbvs r6, [sp, #-2420]! + 4108: 5f74756f svcpl 0x0074756f + 410c: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 4110: 00230200 eoreq r0, r3, r0, lsl #4 + 4114: 19180104 ldmdbne r8, {r2, r8} + 4118: 000a5513 andeq r5, sl, r3, lsl r5 + 411c: 63610100 cmnvs r1, #0 ; 0x0 + 4120: 6168635f cmnvs r8, pc, asr r3 + 4124: 6c656e6e stclvs 14, cr6, [r5], #-440 + 4128: 7375625f cmnvc r5, #-268435451 ; 0xf0000005 + 412c: 6c665f79 stclvs 15, cr5, [r6], #-484 + 4130: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4134: 01040023 tsteq r4, r3, lsr #32 + 4138: 55131917 ldrpl r1, [r3, #-2327] + 413c: 0100000a tsteq r0, sl + 4140: 635f6361 cmpvs pc, #-2080374783 ; 0x84000001 + 4144: 665f6372 undefined + 4148: 656c6961 strbvs r6, [ip, #-2401]! + 414c: 6c665f64 stclvs 15, cr5, [r6], #-400 + 4150: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4154: 01040023 tsteq r4, r3, lsr #32 + 4158: 55131916 ldrpl r1, [r3, #-2326] + 415c: 0100000a tsteq r0, sl + 4160: 615f6361 cmpvs pc, r1, ror #6 + 4164: 74726f62 ldrbtvc r6, [r2], #-3938 + 4168: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 416c: 0067616c rsbeq r6, r7, ip, ror #2 + 4170: 04002302 streq r2, [r0], #-770 + 4174: 13191501 tstne r9, #4194304 ; 0x400000 + 4178: 00000a55 andeq r0, r0, r5, asr sl + 417c: 5f636101 svcpl 0x00636101 + 4180: 615f6f6e cmpvs pc, lr, ror #30 + 4184: 665f6b63 ldrbvs r6, [pc], -r3, ror #22 + 4188: 0067616c rsbeq r6, r7, ip, ror #2 + 418c: 04002302 streq r2, [r0], #-770 + 4190: 13191401 tstne r9, #16777216 ; 0x1000000 + 4194: 00000a55 andeq r0, r0, r5, asr sl + 4198: 5f636101 svcpl 0x00636101 + 419c: 645f6f6e ldrbvs r6, [pc], #3950 ; 41a4 + 41a0: 5f617461 svcpl 0x00617461 + 41a4: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 41a8: 00230200 eoreq r0, r3, r0, lsl #4 + 41ac: 19130104 ldmdbne r3, {r2, r8} + 41b0: 000a5513 andeq r5, sl, r3, lsl r5 + 41b4: 63610100 cmnvs r1, #0 ; 0x0 + 41b8: 74616c5f strbtvc r6, [r1], #-3167 + 41bc: 74735f65 ldrbtvc r5, [r3], #-3941 + 41c0: 5f747261 svcpl 0x00747261 + 41c4: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 41c8: 00230200 eoreq r0, r3, r0, lsl #4 + 41cc: 19120104 ldmdbne r2, {r2, r8} + 41d0: 000a5513 andeq r5, sl, r3, lsl r5 + 41d4: 63610100 cmnvs r1, #0 ; 0x0 + 41d8: 7478655f ldrbtvc r6, [r8], #-1375 + 41dc: 6d69745f cfstrdvs mvd7, [r9, #-380]! + 41e0: 74756f65 ldrbtvc r6, [r5], #-3941 + 41e4: 616c665f cmnvs ip, pc, asr r6 + 41e8: 23020067 movwcs r0, #8295 ; 0x2067 + 41ec: 11010400 tstne r1, r0, lsl #8 + 41f0: 0a551319 beq 1548e5c + 41f4: 61010000 tstvs r1, r0 + 41f8: 78655f63 stmdavc r5!, {r0, r1, r5, r6, r8, r9, sl, fp, ip, lr}^ + 41fc: 6e705f74 mrcvs 15, 3, r5, cr0, cr4, {3} + 4200: 69745f64 ldmdbvs r4!, {r2, r5, r6, r8, r9, sl, fp, ip, lr}^ + 4204: 756f656d strbvc r6, [pc, #-1389]! ; 3c9f + 4208: 6c665f74 stclvs 15, cr5, [r6], #-464 + 420c: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4210: 01040023 tsteq r4, r3, lsr #32 + 4214: 55131910 ldrpl r1, [r3, #-2320] + 4218: 0100000a tsteq r0, sl + 421c: 705f6361 subsvc r6, pc, r1, ror #6 + 4220: 755f6c6c ldrbvc r6, [pc, #-3180] ; 35bc + 4224: 636f6c6e cmnvs pc, #28160 ; 0x6e00 + 4228: 6c665f6b stclvs 15, cr5, [r6], #-428 + 422c: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4230: 01040023 tsteq r4, r3, lsr #32 + 4234: 5513190f ldrpl r1, [r3, #-2319] + 4238: 0100000a tsteq r0, sl + 423c: 655f6361 ldrbvs r6, [pc, #-865] ; 3ee3 + 4240: 72657478 rsbvc r7, r5, #2013265920 ; 0x78000000 + 4244: 5f6c616e svcpl 0x006c616e + 4248: 726f6261 rsbvc r6, pc, #268435462 ; 0x10000006 + 424c: 6c665f74 stclvs 15, cr5, [r6], #-464 + 4250: 02006761 andeq r6, r0, #25427968 ; 0x1840000 + 4254: 01040023 tsteq r4, r3, lsr #32 + 4258: 5513190e ldrpl r1, [r3, #-2318] + 425c: 0100000a tsteq r0, sl + 4260: 6e5f6361 cdpvs 3, 5, cr6, cr15, cr1, {3} + 4264: 635f746f cmpvs pc, #1862270976 ; 0x6f000000 + 4268: 6c706d6f ldclvs 13, cr6, [r0], #-444 + 426c: 64657465 strbtvs r7, [r5], #-1125 + 4270: 616c665f cmnvs ip, pc, asr r6 + 4274: 23020067 movwcs r0, #8295 ; 0x2067 + 4278: 0d010400 cfstrseq mvf0, [r1] + 427c: 0a551319 beq 1548ee8 + 4280: 61010000 tstvs r1, r0 + 4284: 6d645f63 stclvs 15, cr5, [r4, #-396]! + 4288: 75625f61 strbvc r5, [r2, #-3937]! + 428c: 72655f73 rsbvc r5, r5, #460 ; 0x1cc + 4290: 5f726f72 svcpl 0x00726f72 + 4294: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 4298: 00230200 eoreq r0, r3, r0, lsl #4 + 429c: 190c0104 stmdbne ip, {r2, r8} + 42a0: 000a5513 andeq r5, sl, r3, lsl r5 + 42a4: 69660100 stmdbvs r6!, {r8}^ + 42a8: 7265746c rsbvc r7, r5, #1811939328 ; 0x6c000000 + 42ac: 6961665f stmdbvs r1!, {r0, r1, r2, r3, r4, r6, r9, sl, sp, lr}^ + 42b0: 5f64656c svcpl 0x0064656c + 42b4: 67616c66 strbvs r6, [r1, -r6, ror #24]! + 42b8: 00230200 eoreq r0, r3, r0, lsl #4 + 42bc: 190b0104 stmdbne fp, {r2, r8} + 42c0: 000a5513 andeq r5, sl, r3, lsl r5 + 42c4: 6f6e0100 svcvs 0x006e0100 + 42c8: 73755f74 cmnvc r5, #464 ; 0x1d0 + 42cc: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 42d0: 02003130 andeq r3, r0, #12 ; 0xc + 42d4: 01040023 tsteq r4, r3, lsr #32 + 42d8: 5513190a ldrpl r1, [r3, #-2314] + 42dc: 0100000a tsteq r0, sl + 42e0: 5f746f6e svcpl 0x00746f6e + 42e4: 64657375 strbtvs r7, [r5], #-885 + 42e8: 3230665f eorscc r6, r0, #99614720 ; 0x5f00000 + 42ec: 00230200 eoreq r0, r3, r0, lsl #4 + 42f0: 19090104 stmdbne r9, {r2, r8} + 42f4: 000a5513 andeq r5, sl, r3, lsl r5 + 42f8: 6f6e0100 svcvs 0x006e0100 + 42fc: 73755f74 cmnvc r5, #464 ; 0x1d0 + 4300: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 4304: 02003330 andeq r3, r0, #-1073741824 ; 0xc0000000 + 4308: 01040023 tsteq r4, r3, lsr #32 + 430c: 55131908 ldrpl r1, [r3, #-2312] + 4310: 0100000a tsteq r0, sl + 4314: 5f746f6e svcpl 0x00746f6e + 4318: 64657375 strbtvs r7, [r5], #-885 + 431c: 3430665f ldrtcc r6, [r0], #-1631 + 4320: 00230200 eoreq r0, r3, r0, lsl #4 + 4324: 19070104 stmdbne r7, {r2, r8} + 4328: 000a5513 andeq r5, sl, r3, lsl r5 + 432c: 6f6e0100 svcvs 0x006e0100 + 4330: 73755f74 cmnvc r5, #464 ; 0x1d0 + 4334: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 4338: 02003530 andeq r3, r0, #201326592 ; 0xc000000 + 433c: 01040023 tsteq r4, r3, lsr #32 + 4340: 55131906 ldrpl r1, [r3, #-2310] + 4344: 0100000a tsteq r0, sl + 4348: 5f746f6e svcpl 0x00746f6e + 434c: 64657375 strbtvs r7, [r5], #-885 + 4350: 3630665f undefined + 4354: 00230200 eoreq r0, r3, r0, lsl #4 + 4358: 19050104 stmdbne r5, {r2, r8} + 435c: 000a5513 andeq r5, sl, r3, lsl r5 + 4360: 6f6e0100 svcvs 0x006e0100 + 4364: 73755f74 cmnvc r5, #464 ; 0x1d0 + 4368: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 436c: 02003730 andeq r3, r0, #12582912 ; 0xc00000 + 4370: 01040023 tsteq r4, r3, lsr #32 + 4374: 55131904 ldrpl r1, [r3, #-2308] + 4378: 0100000a tsteq r0, sl + 437c: 5f746f6e svcpl 0x00746f6e + 4380: 64657375 strbtvs r7, [r5], #-885 + 4384: 3830665f ldmdacc r0!, {r0, r1, r2, r3, r4, r6, r9, sl, sp, lr} + 4388: 00230200 eoreq r0, r3, r0, lsl #4 + 438c: 19030104 stmdbne r3, {r2, r8} + 4390: 000a5513 andeq r5, sl, r3, lsl r5 + 4394: 6f6e0100 svcvs 0x006e0100 + 4398: 73755f74 cmnvc r5, #464 ; 0x1d0 + 439c: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 43a0: 02003930 andeq r3, r0, #786432 ; 0xc0000 + 43a4: 01040023 tsteq r4, r3, lsr #32 + 43a8: 55131902 ldrpl r1, [r3, #-2306] + 43ac: 0100000a tsteq r0, sl + 43b0: 5f746f6e svcpl 0x00746f6e + 43b4: 64657375 strbtvs r7, [r5], #-885 + 43b8: 3031665f eorscc r6, r1, pc, asr r6 + 43bc: 00230200 eoreq r0, r3, r0, lsl #4 + 43c0: 19010104 stmdbne r1, {r2, r8} + 43c4: 000a5513 andeq r5, sl, r3, lsl r5 + 43c8: 6f6e0100 svcvs 0x006e0100 + 43cc: 73755f74 cmnvc r5, #464 ; 0x1d0 + 43d0: 665f6465 ldrbvs r6, [pc], -r5, ror #8 + 43d4: 02003131 andeq r3, r0, #1073741836 ; 0x4000000c + 43d8: 01040023 tsteq r4, r3, lsr #32 + 43dc: 4e1a0000 wxormi wr0, wr10, wr0 + 43e0: 73000008 movwvc r0, #8 ; 0x8 + 43e4: 5f63616d svcpl 0x0063616d + 43e8: 5f756470 svcpl 0x00756470 + 43ec: 00676174 rsbeq r6, r7, r4, ror r1 + 43f0: e7151b03 ldr r1, [r5, -r3, lsl #22] + 43f4: 65720107 ldrbvs r0, [r2, #-263]! + 43f8: 76726573 undefined + 43fc: 02006465 andeq r6, r0, #1694498816 ; 0x65000000 + 4400: 151b0023 ldrne r0, [fp, #-35] + 4404: 750107da strvc r0, [r1, #-2010] + 4408: 74614438 strbtvc r4, [r1], #-1080 + 440c: 23020061 movwcs r0, #8289 ; 0x2061 + 4410: 911a0002 tstls sl, r2 + 4414: 6d000008 stcvs 0, cr0, [r0, #-32] + 4418: 735f6773 cmpvc pc, #30146560 ; 0x1cc0000 + 441c: 75746174 ldrbvc r6, [r4, #-372]! + 4420: 61745f73 cmnvs r4, r3, ror pc + 4424: 19010067 stmdbne r1, {r0, r1, r2, r5, r6} + 4428: 000a1513 andeq r1, sl, r3, lsl r5 + 442c: 736d0100 cmnvc sp, #0 ; 0x0 + 4430: 79745f67 ldmdbvc r4!, {r0, r1, r2, r5, r6, r8, r9, sl, fp, ip, lr}^ + 4434: 02006570 andeq r6, r0, #469762048 ; 0x1c000000 + 4438: 03010023 movweq r0, #4131 ; 0x1023 + 443c: 28131905 ldmdacs r3, {r0, r2, r8, fp, ip} + 4440: 0100000a tsteq r0, sl + 4444: 5f67736d svcpl 0x0067736d + 4448: 74617473 strbtvc r7, [r1], #-1139 + 444c: 23020065 movwcs r0, #8293 ; 0x2065 + 4450: 00050100 andeq r0, r5, r0, lsl #2 + 4454: 08f81a00 ldmeq r8!, {r9, fp, ip}^ + 4458: 656d0000 strbvs r0, [sp]! + 445c: 67617373 undefined + 4460: 61745f65 cmnvs r4, r5, ror #30 + 4464: 1b100067 blne 404608 + 4468: 000aa113 andeq sl, sl, r3, lsl r1 + 446c: 38750100 ldmdacc r5!, {r8}^ + 4470: 74617453 strbtvc r7, [r1], #-1107 + 4474: 02007375 andeq r7, r0, #-738197503 ; 0xd4000001 + 4478: 151b0023 ldrne r0, [fp, #-35] + 447c: 700101d5 ldrdvc r0, [r1], -r5 + 4480: 75423875 strbvc r3, [r2, #-2165] + 4484: 72656666 rsbvc r6, r5, #106954752 ; 0x6600000 + 4488: 04230200 strteq r0, [r3], #-512 + 448c: 0a28131b beq a09100 + 4490: 75010000 strvc r0, [r1] + 4494: 66754238 undefined + 4498: 657a6953 ldrbvs r6, [sl, #-2387]! + 449c: 08230200 stmdaeq r3!, {r9} + 44a0: 0a65131b beq 1949114 + 44a4: 63010000 movwvs r0, #4096 ; 0x1000 + 44a8: 74614462 strbtvc r4, [r1], #-1122 + 44ac: 646e4961 strbtvs r4, [lr], #-2401 + 44b0: 74616369 strbtvc r6, [r1], #-873 + 44b4: 006e6f69 rsbeq r6, lr, r9, ror #30 + 44b8: 000c2302 andeq r2, ip, r2, lsl #6 + 44bc: 0009291c andeq r2, r9, ip, lsl r9 + 44c0: 6e766500 cdpvs 5, 7, cr6, cr6, cr0, {0} + 44c4: 6c665f74 stclvs 15, cr5, [r6], #-464 + 44c8: 5f736761 svcpl 0x00736761 + 44cc: 00676174 rsbeq r6, r7, r4, ror r1 + 44d0: d2151b04 andsle r1, r5, #4096 ; 0x1000 + 44d4: 69420108 stmdbvs r2, {r3, r8}^ + 44d8: 02007374 andeq r7, r0, #-805306367 ; 0xd0000001 + 44dc: 131b0023 tstne fp, #35 ; 0x23 + 44e0: 00000a55 andeq r0, r0, r5, asr sl + 44e4: 67655201 strbvs r5, [r5, -r1, lsl #4]! + 44e8: 00230200 eoreq r0, r3, r0, lsl #4 + 44ec: 098a1c00 stmibeq sl, {sl, fp, ip} + 44f0: 6e610000 cdpvs 0, 6, cr0, cr1, cr0, {0} + 44f4: 736d5f79 cmnvc sp, #484 ; 0x1e4 + 44f8: 735f6773 cmpvc pc, #30146560 ; 0x1cc0000 + 44fc: 65746174 ldrbvs r6, [r4, #-372]! + 4500: 6761745f undefined + 4504: 131b0100 tstne fp, #0 ; 0x0 + 4508: 000009b7 strheq r0, [r0], -r7 + 450c: 00787401 rsbseq r7, r8, r1, lsl #8 + 4510: 1b002302 blne d120 + 4514: 0009ce13 andeq ip, r9, r3, lsl lr + 4518: 78720100 ldmdavc r2!, {r8}^ + 451c: 00230200 eoreq r0, r3, r0, lsl #4 + 4520: 09e7131b stmibeq r7!, {r0, r1, r3, r4, r8, r9, ip}^ + 4524: 65010000 strvs r0, [r1] + 4528: 23020064 movwcs r0, #8292 ; 0x2064 + 452c: fe131b00 cdp2 11, 1, cr1, cr3, cr0, {0} + 4530: 01000009 tsteq r0, r9 + 4534: 02006f74 andeq r6, r0, #464 ; 0x1d0 + 4538: 131b0023 tstne fp, #35 ; 0x23 + 453c: 00000a28 andeq r0, r0, r8, lsr #20 + 4540: 796e6101 stmdbvc lr!, {r0, r8, sp, lr}^ + 4544: 7079745f rsbsvc r7, r9, pc, asr r4 + 4548: 23020065 movwcs r0, #8293 ; 0x2065 + 454c: 461d0000 ldrmi r0, [sp], -r0 + 4550: 52636e75 rsbpl r6, r3, #1872 ; 0x750 + 4554: 72757465 rsbsvc r7, r5, #1694498816 ; 0x65000000 + 4558: 00745f6e rsbseq r5, r4, lr, ror #30 + 455c: 002af610 eoreq pc, sl, r0, lsl r6 + 4560: 03500800 cmpeq r0, #0 ; 0x0 + 4564: 6168631d cmnvs r8, sp, lsl r3 + 4568: 6c656e6e stclvs 14, cr6, [r5], #-440 + 456c: 6d756e5f ldclvs 14, cr6, [r5, #-380]! + 4570: 1000745f andne r7, r0, pc, asr r4 + 4574: 00005bde ldrdeq r5, [r0], -lr + 4578: 1d036508 cfstr32ne mvfx6, [r3, #-32] + 457c: 5f67736d svcpl 0x0067736d + 4580: 735f7874 cmpvc pc, #7602176 ; 0x740000 + 4584: 65746174 ldrbvs r6, [r4, #-372]! + 4588: 1500745f strne r7, [r0, #-1119] + 458c: ac0902b0 sfmge f0, 4, [r9], {176} + 4590: 6d1d0201 lfmvs f0, 4, [sp, #-4] + 4594: 725f6773 subsvc r6, pc, #30146560 ; 0x1cc0000 + 4598: 74735f78 ldrbtvc r5, [r3], #-3960 + 459c: 5f657461 svcpl 0x00657461 + 45a0: d7100074 undefined + 45a4: 0900004b stmdbeq r0, {r0, r1, r3, r6} + 45a8: 1d0201ba stfnes f0, [r2, #-744] + 45ac: 5f67736d svcpl 0x0067736d + 45b0: 735f6465 cmpvc pc, #1694498816 ; 0x65000000 + 45b4: 65746174 ldrbvs r6, [r4, #-372]! + 45b8: 1500745f strne r7, [r0, #-1119] + 45bc: c50904a3 strgt r0, [r9, #-1187] + 45c0: 6d1d0201 lfmvs f0, 4, [sp, #-4] + 45c4: 745f6773 ldrbvc r6, [pc], #1907 ; 45cc + 45c8: 74735f6f ldrbtvc r5, [r3], #-3951 + 45cc: 5f657461 svcpl 0x00657461 + 45d0: da150074 ble 5447a8 + 45d4: 01d00905 bicseq r0, r0, r5, lsl #18 + 45d8: 736d1d02 cmnvc sp, #128 ; 0x80 + 45dc: 79745f67 ldmdbvc r4!, {r0, r1, r2, r5, r6, r8, r9, sl, fp, ip, lr}^ + 45e0: 745f6570 ldrbvc r6, [pc], #1392 ; 45e8 + 45e4: 07911500 ldreq r1, [r1, r0, lsl #10] + 45e8: 0301d909 movweq sp, #6409 ; 0x1909 + 45ec: 6e69751d mcrvs 5, 3, r7, cr9, cr13, {0} + 45f0: 745f3874 ldrbvc r3, [pc], #2164 ; 45f8 + 45f4: 01c41500 biceq r1, r4, r0, lsl #10 + 45f8: 1d191a01 fldsne s2, [r9, #-4] + 45fc: 6c6f6f62 stclvs 15, cr6, [pc], #-392 + 4600: 1500745f strne r7, [r0, #-1119] + 4604: 2c0114a8 cfstrscs mvf1, [r1], {168} + 4608: 69751d13 ldmdbvs r5!, {r0, r1, r4, r8, sl, fp, ip}^ + 460c: 3631746e ldrtcc r7, [r1], -lr, ror #8 + 4610: 1500745f strne r7, [r0, #-1119] + 4614: 1c010298 sfmne f0, 4, [r1], {152} + 4618: 69751d19 ldmdbvs r5!, {r0, r3, r4, r8, sl, fp, ip}^ + 461c: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 + 4620: 1500745f strne r7, [r0, #-1119] + 4624: 1e0101e9 adfnedz f0, f1, #1.0 + 4628: 61631d19 cmnvs r3, r9, lsl sp + 462c: 61626c6c cmnvs r2, ip, ror #24 + 4630: 745f6b63 ldrbvc r6, [pc], #2915 ; 4638 + 4634: 01e31500 mvneq r1, r0, lsl #10 + 4638: 1d0f1608 stcne 6, cr1, [pc, #-32] + 463c: 61635376 smcvs 13622 + 4640: 6c61436e stclvs 3, cr4, [r1], #-440 + 4644: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 4648: 00745f6b rsbseq r5, r4, fp, ror #30 + 464c: 0802aa15 stmdaeq r2, {r0, r2, r4, r9, fp, sp, pc} + 4650: 731d0f17 tstvc sp, #92 ; 0x5c + 4654: 5f63616d svcpl 0x0063616d + 4658: 5f756470 svcpl 0x00756470 + 465c: 9a150074 bls 544834 + 4660: 01960910 orrseq r0, r6, r0, lsl r9 + 4664: 736d1d03 cmnvc sp, #192 ; 0xc0 + 4668: 74735f67 ldrbtvc r5, [r3], #-3943 + 466c: 73757461 cmnvc r5, #1627389952 ; 0x61000000 + 4670: 1500745f strne r7, [r0, #-1119] + 4674: df0910ce svcle 0x000910ce + 4678: 6d1d0301 ldcvs 3, cr0, [sp, #-4] + 467c: 61737365 cmnvs r3, r5, ror #6 + 4680: 745f6567 ldrbvc r6, [pc], #1383 ; 4688 + 4684: 11911500 orrsne r1, r1, r0, lsl #10 + 4688: 03028309 movweq r8, #8969 ; 0x2309 + 468c: 6e76651d mrcvs 5, 3, r6, cr6, cr13, {0} + 4690: 6c665f74 stclvs 15, cr5, [r6], #-464 + 4694: 5f736761 svcpl 0x00736761 + 4698: f8150074 undefined instruction 0xf8150074 + 469c: 01910911 orrseq r0, r1, r1, lsl r9 + 46a0: 6e611d02 cdpvs 13, 6, cr1, cr1, cr2, {0} + 46a4: 736d5f79 cmnvc sp, #484 ; 0x1e4 + 46a8: 735f6773 cmpvc pc, #30146560 ; 0x1cc0000 + 46ac: 65746174 ldrbvs r6, [r4, #-372]! + 46b0: 1500745f strne r7, [r0, #-1119] + 46b4: e80912a9 stmda r9, {r0, r3, r5, r7, r9, ip} + 46b8: 00000201 andeq r0, r0, r1, lsl #4 + 46bc: 00000264 andeq r0, r0, r4, ror #4 + 46c0: 05000003 streq r0, [r0, #-3] + 46c4: 01040000 tsteq r4, r0 + 46c8: 445c3a43 ldrbmi r3, [ip], #-2627 + 46cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 46d0: 73746e65 cmnvc r4, #1616 ; 0x650 + 46d4: 646e6120 strbtvs r6, [lr], #-288 + 46d8: 74655320 strbtvc r5, [r5], #-800 + 46dc: 676e6974 undefined + 46e0: 616d5c73 smcvs 54723 + 46e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 46e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 46ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 46f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 46f4: 775c7374 undefined + 46f8: 6f632d73 svcvs 0x00632d73 + 46fc: 6f72746e svcvs 0x0072746e + 4700: 65575c6c ldrbvs r5, [r7, #-3180] + 4704: 65687461 strbvs r7, [r8, #-1121]! + 4708: 74532072 ldrbvc r2, [r3], #-114 + 470c: 6f697461 svcvs 0x00697461 + 4710: 6f43206e svcvs 0x0043206e + 4714: 6f72746e svcvs 0x0072746e + 4718: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 471c: 414d535c cmpmi sp, ip, asr r3 + 4720: 6f535c43 svcvs 0x00535c43 + 4724: 65637275 strbvs r7, [r3, #-629]! + 4728: 6461525c strbtvs r5, [r1], #-604 + 472c: 614d6f69 cmpvs sp, r9, ror #30 + 4730: 6567616e strbvs r6, [r7, #-366]! + 4734: 746e656d strbtvc r6, [lr], #-1389 + 4738: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 473c: 41205241 teqmi r0, r1, asr #4 + 4740: 2049534e subcs r5, r9, lr, asr #6 + 4744: 2b432f43 blcs 10d0458 + 4748: 6f43202b svcvs 0x0043202b + 474c: 6c69706d stclvs 0, cr7, [r9], #-436 + 4750: 56207265 strtpl r7, [r0], -r5, ror #4 + 4754: 30332e35 eorscc r2, r3, r5, lsr lr + 4758: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 475c: 35393231 ldrcc r3, [r9, #-561]! + 4760: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4764: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4768: 4154534b cmpmi r4, fp, asr #6 + 476c: 66205452 undefined + 4770: 4120726f teqmi r0, pc, ror #4 + 4774: 01004d52 tsteq r0, r2, asr sp + 4778: 000028c4 andeq r2, r0, r4, asr #17 + 477c: 0000010c andeq r0, r0, ip, lsl #2 + 4780: 61635304 cmnvs r3, r4, lsl #6 + 4784: 736d5f6e cmnvc sp, #440 ; 0x1b8 + 4788: 7a100067 bvc 40492c + 478c: 0b000046 bleq 48ac + 4790: 05010b6c streq r0, [r1, #-2924] + 4794: 40537003 subsmi r7, r3, r3 + 4798: 63610400 cmnvs r1, #0 ; 0x0 + 479c: 786f426b stmdavc pc!, {r0, r1, r3, r5, r6, r9, lr}^ + 47a0: 3fe61000 svccc 0x00e61000 + 47a4: 6a0b0000 bvs 2c47ac + 47a8: 0305010a movweq r0, #20746 ; 0x510a + 47ac: 004053c8 subeq r5, r0, r8, asr #7 + 47b0: 63536204 cmpvs r3, #1073741824 ; 0x40000000 + 47b4: 65526e61 ldrbvs r6, [r2, #-3681] + 47b8: 616c4671 smcvs 50273 + 47bc: fb100067 blx 404962 + 47c0: 0b000045 bleq 48dc + 47c4: 05010871 streq r0, [r1, #-2161] + 47c8: 40536b03 subsmi r6, r3, r3, lsl #22 + 47cc: 75630400 strbvc r0, [r3, #-1024]! + 47d0: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 47d4: 736d5f74 cmnvc sp, #464 ; 0x1d0 + 47d8: ec100067 ldc 0, cr0, [r0], {103} + 47dc: 0b000045 bleq 48f8 + 47e0: 05001045 streq r1, [r0, #-69] + 47e4: 40536903 subsmi r6, r3, r3, lsl #18 + 47e8: 61640400 cmnvs r4, r0, lsl #8 + 47ec: 63536174 cmpvs r3, #29 ; 0x1d + 47f0: 10006e61 andne r6, r0, r1, ror #28 + 47f4: 00003f9e muleq r0, lr, pc + 47f8: 0109700b tsteq r9, fp + 47fc: 53c40305 bicpl r0, r4, #335544320 ; 0x14000000 + 4800: 67040040 strvs r0, [r4, -r0, asr #32] + 4804: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 4808: 6e76456f cdpvs 5, 7, cr4, cr6, cr15, {3} + 480c: 616c4674 smcvs 50276 + 4810: 10007367 andne r7, r0, r7, ror #6 + 4814: 0000468c andeq r4, r0, ip, lsl #13 + 4818: 010e660b tsteq lr, fp, lsl #12 + 481c: 53b80305 undefined instruction 0x53b80305 + 4820: 6d040040 stcvs 0, cr0, [r4, #-256] + 4824: 636c7043 cmnvs ip, #67 ; 0x43 + 4828: 6f5f6b6c svcvs 0x005f6b6c + 482c: 65736666 ldrbvs r6, [r3, #-1638]! + 4830: 19100074 ldmdbne r0, {r2, r4, r5, r6} + 4834: 0b000046 bleq 4954 + 4838: 0500114b streq r1, [r0, #-331] + 483c: 4053b403 subsmi fp, r3, r3, lsl #8 + 4840: 526d0400 rsbpl r0, sp, #0 ; 0x0 + 4844: 69727465 ldmdbvs r2!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4848: 745f7365 ldrbvc r7, [pc], #869 ; 4850 + 484c: 656d6d69 strbvs r6, [sp, #-3433]! + 4850: ec100072 ldc 0, cr0, [r0], {114} + 4854: 0b000045 bleq 4970 + 4858: 05001042 streq r1, [r0, #-66] + 485c: 40536803 subsmi r6, r3, r3, lsl #16 + 4860: 616d0400 cmnvs sp, r0, lsl #8 + 4864: 7373654d cmnvc r3, #322961408 ; 0x13400000 + 4868: 54656761 strbtpl r6, [r5], #-1889 + 486c: d910004f ldmdble r0, {r0, r1, r2, r3, r6} + 4870: 0b00003f bleq 4974 + 4874: 05001148 streq r1, [r0, #-328] + 4878: 4053a403 subsmi sl, r3, r3, lsl #8 + 487c: 616d0400 cmnvs sp, r0, lsl #8 + 4880: 7373654d cmnvc r3, #322961408 ; 0x13400000 + 4884: 5f656761 svcpl 0x00656761 + 4888: 75657551 strbvc r7, [r5, #-1361]! + 488c: 3fc31000 svccc 0x00c31000 + 4890: 470b0000 strmi r0, [fp, -r0] + 4894: 03050013 movweq r0, #20499 ; 0x5013 + 4898: 00405394 umaaleq r5, r0, r4, r3 + 489c: 78656e04 stmdavc r5!, {r2, r9, sl, fp, sp, lr}^ + 48a0: 736d5f74 cmnvc sp, #464 ; 0x1d0 + 48a4: 6f745f67 svcvs 0x00745f67 + 48a8: 6f74735f svcvs 0x0074735f + 48ac: 10006572 andne r6, r0, r2, ror r5 + 48b0: 000045ec andeq r4, r0, ip, ror #11 + 48b4: 0010460b andseq r4, r0, fp, lsl #12 + 48b8: 536a0305 cmnpl sl, #335544320 ; 0x14000000 + 48bc: 75040040 strvc r0, [r4, #-64] + 48c0: 68433631 stmdavs r3, {r0, r4, r5, r9, sl, ip, sp}^ + 48c4: 546e6e61 strbtpl r6, [lr], #-3681 + 48c8: 6163536f cmnvs r3, pc, ror #6 + 48cc: 0910006e ldmdbeq r0, {r1, r2, r3, r5, r6} + 48d0: 0b000046 bleq 49f0 + 48d4: 05010a6e streq r0, [r1, #-2670] + 48d8: 40539003 subsmi r9, r3, r3 + 48dc: 38750400 ldmdacc r5!, {sl}^ + 48e0: 6e616353 mcrvs 3, 3, r6, cr1, cr3, {2} + 48e4: 506c6156 rsbpl r6, ip, r6, asr r1 + 48e8: 68437265 stmdavs r3, {r0, r2, r5, r6, r9, ip, sp, lr}^ + 48ec: 006e6e61 rsbeq r6, lr, r1, ror #28 + 48f0: 00400910 subeq r0, r0, r0, lsl r9 + 48f4: 096f0b00 stmdbeq pc!, {r8, r9, fp}^ + 48f8: 80030501 andhi r0, r3, r1, lsl #10 + 48fc: 04004053 streq r4, [r0], #-83 + 4900: 61635376 smcvs 13622 + 4904: 7165526e cmnvc r5, lr, ror #4 + 4908: 6c6c6143 stfvse f6, [ip], #-268 + 490c: 6b636142 blvs 18dce1c + 4910: 463b1000 ldrtmi r1, [fp], -r0 + 4914: 6d0b0000 stcvs 0, cr0, [fp] + 4918: 03050111 movweq r0, #20753 ; 0x5111 + 491c: 004053bc strheq r5, [r0], #-60 + 4920: 00000000 andeq r0, r0, r0 + 4924: 000000e0 andeq r0, r0, r0, ror #1 + 4928: 05000003 streq r0, [r0, #-3] + 492c: 01040000 tsteq r4, r0 + 4930: 445c3a43 ldrbmi r3, [ip], #-2627 + 4934: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4938: 73746e65 cmnvc r4, #1616 ; 0x650 + 493c: 646e6120 strbtvs r6, [lr], #-288 + 4940: 74655320 strbtvc r5, [r5], #-800 + 4944: 676e6974 undefined + 4948: 616d5c73 smcvs 54723 + 494c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4950: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4954: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4958: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 495c: 775c7374 undefined + 4960: 6f632d73 svcvs 0x00632d73 + 4964: 6f72746e svcvs 0x0072746e + 4968: 65575c6c ldrbvs r5, [r7, #-3180] + 496c: 65687461 strbvs r7, [r8, #-1121]! + 4970: 74532072 ldrbvc r2, [r3], #-114 + 4974: 6f697461 svcvs 0x00697461 + 4978: 6f43206e svcvs 0x0043206e + 497c: 6f72746e svcvs 0x0072746e + 4980: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4984: 414d535c cmpmi sp, ip, asr r3 + 4988: 6f535c43 svcvs 0x00535c43 + 498c: 65637275 strbvs r7, [r3, #-629]! + 4990: 6461525c strbtvs r5, [r1], #-604 + 4994: 614d6f69 cmpvs sp, r9, ror #30 + 4998: 6567616e strbvs r6, [r7, #-366]! + 499c: 746e656d strbtvc r6, [lr], #-1389 + 49a0: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 49a4: 41205241 teqmi r0, r1, asr #4 + 49a8: 2049534e subcs r5, r9, lr, asr #6 + 49ac: 2b432f43 blcs 10d06c0 + 49b0: 6f43202b svcvs 0x0043202b + 49b4: 6c69706d stclvs 0, cr7, [r9], #-436 + 49b8: 56207265 strtpl r7, [r0], -r5, ror #4 + 49bc: 30332e35 eorscc r2, r3, r5, lsr lr + 49c0: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 49c4: 35393231 ldrcc r3, [r9, #-561]! + 49c8: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 49cc: 43494b20 movtmi r4, #39712 ; 0x9b20 + 49d0: 4154534b cmpmi r4, fp, asr #6 + 49d4: 66205452 undefined + 49d8: 4120726f teqmi r0, pc, ror #4 + 49dc: 01004d52 tsteq r0, r2, asr sp + 49e0: 000028c4 andeq r2, r0, r4, asr #17 + 49e4: 0000010c andeq r0, r0, ip, lsl #2 + 49e8: 50626304 rsbpl r6, r2, r4, lsl #6 + 49ec: 65636f72 strbvs r6, [r3, #-3954]! + 49f0: 734d7373 movtvc r7, #54131 ; 0xd373 + 49f4: 00635f67 rsbeq r5, r3, r7, ror #30 + 49f8: 003cbe10 eorseq fp, ip, r0, lsl lr + 49fc: 19540b00 ldmdbne r4, {r8, r9, fp}^ + 4a00: 04030500 streq r0, [r3], #-1280 + 4a04: 0000403f andeq r4, r0, pc, lsr r0 + 4a08: 00000104 andeq r0, r0, r4, lsl #2 + 4a0c: 05000003 streq r0, [r0, #-3] + 4a10: 01040000 tsteq r4, r0 + 4a14: 445c3a43 ldrbmi r3, [ip], #-2627 + 4a18: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4a1c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4a20: 646e6120 strbtvs r6, [lr], #-288 + 4a24: 74655320 strbtvc r5, [r5], #-800 + 4a28: 676e6974 undefined + 4a2c: 616d5c73 smcvs 54723 + 4a30: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4a34: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4a38: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4a3c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4a40: 775c7374 undefined + 4a44: 6f632d73 svcvs 0x00632d73 + 4a48: 6f72746e svcvs 0x0072746e + 4a4c: 65575c6c ldrbvs r5, [r7, #-3180] + 4a50: 65687461 strbvs r7, [r8, #-1121]! + 4a54: 74532072 ldrbvc r2, [r3], #-114 + 4a58: 6f697461 svcvs 0x00697461 + 4a5c: 6f43206e svcvs 0x0043206e + 4a60: 6f72746e svcvs 0x0072746e + 4a64: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4a68: 414d535c cmpmi sp, ip, asr r3 + 4a6c: 6f535c43 svcvs 0x00535c43 + 4a70: 65637275 strbvs r7, [r3, #-629]! + 4a74: 6461525c strbtvs r5, [r1], #-604 + 4a78: 614d6f69 cmpvs sp, r9, ror #30 + 4a7c: 6567616e strbvs r6, [r7, #-366]! + 4a80: 746e656d strbtvc r6, [lr], #-1389 + 4a84: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 4a88: 41205241 teqmi r0, r1, asr #4 + 4a8c: 2049534e subcs r5, r9, lr, asr #6 + 4a90: 2b432f43 blcs 10d07a4 + 4a94: 6f43202b svcvs 0x0043202b + 4a98: 6c69706d stclvs 0, cr7, [r9], #-436 + 4a9c: 56207265 strtpl r7, [r0], -r5, ror #4 + 4aa0: 30332e35 eorscc r2, r3, r5, lsr lr + 4aa4: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 4aa8: 35393231 ldrcc r3, [r9, #-561]! + 4aac: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4ab0: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4ab4: 4154534b cmpmi r4, fp, asr #6 + 4ab8: 66205452 undefined + 4abc: 4120726f teqmi r0, pc, ror #4 + 4ac0: 01004d52 tsteq r0, r2, asr sp + 4ac4: 000028c4 andeq r2, r0, r4, asr #17 + 4ac8: 0000010c andeq r0, r0, ip, lsl #2 + 4acc: 52616704 rsbpl r6, r1, #1048576 ; 0x100000 + 4ad0: 6e795346 cdpvs 3, 7, cr5, cr9, cr6, {2} + 4ad4: 444f4356 strbmi r4, [pc], #854 ; 4adc + 4ad8: 5f467669 svcpl 0x00467669 + 4adc: c4100063 ldrgt r0, [r0], #-99 + 4ae0: 0b00003c bleq 4bd8 + 4ae4: 05011030 streq r1, [r1, #-48] + 4ae8: 403c1403 eorsmi r1, ip, r3, lsl #8 + 4aec: 61670400 cmnvs r7, r0, lsl #8 + 4af0: 79534652 ldmdbvc r3, {r1, r4, r6, r9, sl, lr}^ + 4af4: 4f43566e svcmi 0x0043566e + 4af8: 49766944 ldmdbmi r6!, {r2, r6, r8, fp, sp, lr}^ + 4afc: 1000635f andne r6, r0, pc, asr r3 + 4b00: 00003cca andeq r3, r0, sl, asr #25 + 4b04: 010f2f0b tsteq pc, fp, lsl #30 + 4b08: 3c040305 stccc 3, cr0, [r4], {5} + 4b0c: 00000040 andeq r0, r0, r0, asr #32 + 4b10: 000001c0 andeq r0, r0, r0, asr #3 + 4b14: 05000003 streq r0, [r0, #-3] + 4b18: 01040000 tsteq r4, r0 + 4b1c: 445c3a43 ldrbmi r3, [ip], #-2627 + 4b20: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4b24: 73746e65 cmnvc r4, #1616 ; 0x650 + 4b28: 646e6120 strbtvs r6, [lr], #-288 + 4b2c: 74655320 strbtvc r5, [r5], #-800 + 4b30: 676e6974 undefined + 4b34: 616d5c73 smcvs 54723 + 4b38: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4b3c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4b40: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4b44: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4b48: 775c7374 undefined + 4b4c: 6f632d73 svcvs 0x00632d73 + 4b50: 6f72746e svcvs 0x0072746e + 4b54: 65575c6c ldrbvs r5, [r7, #-3180] + 4b58: 65687461 strbvs r7, [r8, #-1121]! + 4b5c: 74532072 ldrbvc r2, [r3], #-114 + 4b60: 6f697461 svcvs 0x00697461 + 4b64: 6f43206e svcvs 0x0043206e + 4b68: 6f72746e svcvs 0x0072746e + 4b6c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4b70: 414d535c cmpmi sp, ip, asr r3 + 4b74: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} + 4b78: 66726574 undefined + 4b7c: 5c656361 stclpl 3, cr6, [r5], #-388 + 4b80: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 4b84: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 4b88: 6d656761 stclvs 7, cr6, [r5, #-388]! + 4b8c: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 4b90: 41490068 cmpmi r9, r8, rrx + 4b94: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 4b98: 43204953 teqmi r0, #1359872 ; 0x14c000 + 4b9c: 2b2b432f blcs ad5860 + 4ba0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 4ba4: 656c6970 strbvs r6, [ip, #-2416]! + 4ba8: 35562072 ldrbcc r2, [r6, #-114] + 4bac: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 4bb0: 31332e32 teqcc r3, r2, lsr lr + 4bb4: 2f353932 svccs 0x00353932 + 4bb8: 20323357 eorscs r3, r2, r7, asr r3 + 4bbc: 4b43494b blmi 10d70f0 + 4bc0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 4bc4: 6f662054 svcvs 0x00662054 + 4bc8: 52412072 subpl r2, r1, #114 ; 0x72 + 4bcc: c401004d strgt r0, [r1], #-77 + 4bd0: 0c000028 stceq 0, cr0, [r0], {40} + 4bd4: 12000001 andne r0, r0, #1 ; 0x1 + 4bd8: 000001c0 andeq r0, r0, r0, asr #3 + 4bdc: 5f67736d svcpl 0x0067736d + 4be0: 735f7872 cmpvc pc, #7471104 ; 0x720000 + 4be4: 65746174 ldrbvs r6, [r4, #-372]! + 4be8: 6761745f undefined + 4bec: 4d130100 ldfmis f0, [r3] + 4bf0: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 + 4bf4: 51525f58 cmppl r2, r8, asr pc + 4bf8: 00005453 andeq r5, r0, r3, asr r4 + 4bfc: 47534d13 smmlami r3, r3, sp, r4 + 4c00: 5f58525f svcpl 0x0058525f + 4c04: 53534150 cmppl r3, #20 ; 0x14 + 4c08: 545f4445 ldrbpl r4, [pc], #1093 ; 4c10 + 4c0c: 45445f4f strbmi r5, [r4, #-3919] + 4c10: 45434956 strbmi r4, [r3, #-2390] + 4c14: 4d130100 ldfmis f0, [r3] + 4c18: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 + 4c1c: 43415f58 movtmi r5, #8024 ; 0x1f58 + 4c20: 4e4f4954 mcrmi 9, 2, r4, cr15, cr4, {2} + 4c24: 4154535f cmpmi r4, pc, asr r3 + 4c28: 44455452 strbmi r5, [r5], #-1106 + 4c2c: 4d130200 lfmmi f0, 4, [r3] + 4c30: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 + 4c34: 59535f58 ldmdbpl r3, {r3, r4, r6, r8, r9, sl, fp, ip, lr}^ + 4c38: 465f434e ldrbmi r4, [pc], -lr, asr #6 + 4c3c: 444e554f strbmi r5, [lr], #-1359 + 4c40: 4d130300 ldcmi 3, cr0, [r3] + 4c44: 525f4753 subspl r4, pc, #21757952 ; 0x14c0000 + 4c48: 49545f58 ldmdbmi r4, {r3, r4, r6, r8, r9, sl, fp, ip, lr}^ + 4c4c: 554f454d strbpl r4, [pc, #-1357] ; 4707 + 4c50: 41465f54 cmpmi r6, r4, asr pc + 4c54: 04004c49 streq r4, [r0], #-3145 + 4c58: 47534d13 smmlami r3, r3, sp, r4 + 4c5c: 5f58525f svcpl 0x0058525f + 4c60: 49544341 ldmdbmi r4, {r0, r6, r8, r9, lr}^ + 4c64: 435f4e4f cmpmi pc, #1264 ; 0x4f0 + 4c68: 4c504d4f mrrcmi 13, 4, r4, r0, cr15 + 4c6c: 5f455445 svcpl 0x00455445 + 4c70: 43435553 movtmi r5, #13651 ; 0x3553 + 4c74: 00535345 subseq r5, r3, r5, asr #6 + 4c78: 534d1305 movtpl r1, #54021 ; 0xd305 + 4c7c: 58525f47 ldmdapl r2, {r0, r1, r2, r6, r8, r9, sl, fp, ip, lr}^ + 4c80: 5443415f strbpl r4, [r3], #-351 + 4c84: 5f4e4f49 svcpl 0x004e4f49 + 4c88: 504d4f43 subpl r4, sp, r3, asr #30 + 4c8c: 4554454c ldrbmi r4, [r4, #-1356] + 4c90: 4941465f stmdbmi r1, {r0, r1, r2, r3, r4, r6, r9, sl, lr}^ + 4c94: 1306004c movwne r0, #24652 ; 0x604c + 4c98: 5f47534d svcpl 0x0047534d + 4c9c: 525f5852 subspl r5, pc, #5373952 ; 0x520000 + 4ca0: 5f545351 svcpl 0x00545351 + 4ca4: 524f4241 subpl r4, pc, #268435460 ; 0x10000004 + 4ca8: 13070054 movwne r0, #28756 ; 0x7054 + 4cac: 5f47534d svcpl 0x0047534d + 4cb0: 415f5852 cmpmi pc, r2, asr r8 + 4cb4: 54524f42 ldrbpl r4, [r2], #-3906 + 4cb8: 08004445 stmdaeq r0, {r0, r2, r6, sl, lr} + 4cbc: 58414d13 stmdapl r1, {r0, r1, r4, r8, sl, fp, lr}^ + 4cc0: 47534d5f undefined + 4cc4: 5f58525f svcpl 0x0058525f + 4cc8: 54415453 strbpl r5, [r1], #-1107 + 4ccc: 00090045 andeq r0, r9, r5, asr #32 + 4cd0: 00000000 andeq r0, r0, r0 + 4cd4: 00000114 andeq r0, r0, r4, lsl r1 + 4cd8: 05000003 streq r0, [r0, #-3] + 4cdc: 06040000 streq r0, [r4], -r0 + 4ce0: 445c3a43 ldrbmi r3, [ip], #-2627 + 4ce4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4ce8: 73746e65 cmnvc r4, #1616 ; 0x650 + 4cec: 646e6120 strbtvs r6, [lr], #-288 + 4cf0: 74655320 strbtvc r5, [r5], #-800 + 4cf4: 676e6974 undefined + 4cf8: 616d5c73 smcvs 54723 + 4cfc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4d00: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4d04: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4d08: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4d0c: 775c7374 undefined + 4d10: 6f632d73 svcvs 0x00632d73 + 4d14: 6f72746e svcvs 0x0072746e + 4d18: 65575c6c ldrbvs r5, [r7, #-3180] + 4d1c: 65687461 strbvs r7, [r8, #-1121]! + 4d20: 74532072 ldrbvc r2, [r3], #-114 + 4d24: 6f697461 svcvs 0x00697461 + 4d28: 6f43206e svcvs 0x0043206e + 4d2c: 6f72746e svcvs 0x0072746e + 4d30: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4d34: 414d535c cmpmi sp, ip, asr r3 + 4d38: 6f535c43 svcvs 0x00535c43 + 4d3c: 65637275 strbvs r7, [r3, #-629]! + 4d40: 6461525c strbtvs r5, [r1], #-604 + 4d44: 614d6f69 cmpvs sp, r9, ror #30 + 4d48: 6567616e strbvs r6, [r7, #-366]! + 4d4c: 746e656d strbtvc r6, [lr], #-1389 + 4d50: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 4d54: 41205241 teqmi r0, r1, asr #4 + 4d58: 2049534e subcs r5, r9, lr, asr #6 + 4d5c: 2b432f43 blcs 10d0a70 + 4d60: 6f43202b svcvs 0x0043202b + 4d64: 6c69706d stclvs 0, cr7, [r9], #-436 + 4d68: 56207265 strtpl r7, [r0], -r5, ror #4 + 4d6c: 30332e35 eorscc r2, r3, r5, lsr lr + 4d70: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 4d74: 35393231 ldrcc r3, [r9, #-561]! + 4d78: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4d7c: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4d80: 4154534b cmpmi r4, fp, asr #6 + 4d84: 66205452 undefined + 4d88: 4120726f teqmi r0, pc, ror #4 + 4d8c: 01004d52 tsteq r0, r2, asr sp + 4d90: 00402378 subeq r2, r0, r8, ror r3 + 4d94: 0040239a umaaleq r2, r0, sl, r3 + 4d98: 00002d48 andeq r2, r0, r8, asr #26 + 4d9c: 00001988 andeq r1, r0, r8, lsl #19 + 4da0: 003bcf10 eorseq ip, fp, r0, lsl pc + 4da4: 01170a00 tsteq r7, r0, lsl #20 + 4da8: 78650000 stmdavc r5!, {}^ + 4dac: 74756365 ldrbtvc r6, [r5], #-869 + 4db0: 75635f65 strbvc r5, [r3, #-3941]! + 4db4: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 4db8: 656d5f74 strbvs r5, [sp, #-3956]! + 4dbc: 67617373 undefined + 4dc0: 61635f65 cmnvs r3, r5, ror #30 + 4dc4: 61626c6c cmnvs r2, ip, ror #24 + 4dc8: 01006b63 tsteq r0, r3, ror #22 + 4dcc: 010601be strheq r0, [r6, -lr] + 4dd0: 00001151 andeq r1, r0, r1, asr r1 + 4dd4: 00402378 subeq r2, r0, r8, ror r3 + 4dd8: 0040239a umaaleq r2, r0, sl, r3 + 4ddc: 00011609 andeq r1, r1, r9, lsl #12 + 4de0: 40238800 eormi r8, r3, r0, lsl #16 + 4de4: 40239400 eormi r9, r3, r0, lsl #8 + 4de8: 00000000 andeq r0, r0, r0 + 4dec: 00000128 andeq r0, r0, r8, lsr #2 + 4df0: 05000003 streq r0, [r0, #-3] + 4df4: 06040000 streq r0, [r4], -r0 + 4df8: 445c3a43 ldrbmi r3, [ip], #-2627 + 4dfc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4e00: 73746e65 cmnvc r4, #1616 ; 0x650 + 4e04: 646e6120 strbtvs r6, [lr], #-288 + 4e08: 74655320 strbtvc r5, [r5], #-800 + 4e0c: 676e6974 undefined + 4e10: 616d5c73 smcvs 54723 + 4e14: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4e18: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4e1c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4e20: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4e24: 775c7374 undefined + 4e28: 6f632d73 svcvs 0x00632d73 + 4e2c: 6f72746e svcvs 0x0072746e + 4e30: 65575c6c ldrbvs r5, [r7, #-3180] + 4e34: 65687461 strbvs r7, [r8, #-1121]! + 4e38: 74532072 ldrbvc r2, [r3], #-114 + 4e3c: 6f697461 svcvs 0x00697461 + 4e40: 6f43206e svcvs 0x0043206e + 4e44: 6f72746e svcvs 0x0072746e + 4e48: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4e4c: 414d535c cmpmi sp, ip, asr r3 + 4e50: 6f535c43 svcvs 0x00535c43 + 4e54: 65637275 strbvs r7, [r3, #-629]! + 4e58: 6461525c strbtvs r5, [r1], #-604 + 4e5c: 614d6f69 cmpvs sp, r9, ror #30 + 4e60: 6567616e strbvs r6, [r7, #-366]! + 4e64: 746e656d strbtvc r6, [lr], #-1389 + 4e68: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 4e6c: 41205241 teqmi r0, r1, asr #4 + 4e70: 2049534e subcs r5, r9, lr, asr #6 + 4e74: 2b432f43 blcs 10d0b88 + 4e78: 6f43202b svcvs 0x0043202b + 4e7c: 6c69706d stclvs 0, cr7, [r9], #-436 + 4e80: 56207265 strtpl r7, [r0], -r5, ror #4 + 4e84: 30332e35 eorscc r2, r3, r5, lsr lr + 4e88: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 4e8c: 35393231 ldrcc r3, [r9, #-561]! + 4e90: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4e94: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4e98: 4154534b cmpmi r4, fp, asr #6 + 4e9c: 66205452 undefined + 4ea0: 4120726f teqmi r0, pc, ror #4 + 4ea4: 01004d52 tsteq r0, r2, asr sp + 4ea8: 0040239a umaaleq r2, r0, sl, r3 + 4eac: 004023ce subeq r2, r0, lr, asr #7 + 4eb0: 00002e00 andeq r2, r0, r0, lsl #28 + 4eb4: 000019f6 strdeq r1, [r0], -r6 + 4eb8: 003bcf10 eorseq ip, fp, r0, lsl pc + 4ebc: 01280700 teqeq r8, r0, lsl #14 + 4ec0: 61680000 cmnvs r8, r0 + 4ec4: 656c646e strbvs r6, [ip, #-1134]! + 4ec8: 77656e5f undefined + 4ecc: 73656d5f cmnvc r5, #6080 ; 0x17c0 + 4ed0: 65676173 strbvs r6, [r7, #-371]! + 4ed4: 01de0100 bicseq r0, lr, r0, lsl #2 + 4ed8: 4e10010e mufmis f0, f0, #0.5 + 4edc: 7d000045 stcvc 0, cr0, [r0, #-276] + 4ee0: 9a000011 bls 4f2c + 4ee4: ce004023 cdpgt 0, 0, cr4, cr0, cr3, {1} + 4ee8: 08004023 stmdaeq r0, {r0, r1, r5, lr} + 4eec: 0067736d rsbeq r7, r7, sp, ror #6 + 4ef0: 2e01de01 cdpcs 14, 0, cr13, cr1, cr1, {0} + 4ef4: 003cd610 eorseq sp, ip, r0, lsl r6 + 4ef8: 0011c100 andseq ip, r1, r0, lsl #2 + 4efc: 69740800 ldmdbvs r4!, {fp}^ + 4f00: 756f656d strbvc r6, [pc, #-1389]! ; 499b + 4f04: de010074 mcrle 0, 0, r0, cr1, cr4, {3} + 4f08: 19103c01 ldmdbne r0, {r0, sl, fp, ip, sp} + 4f0c: f3000046 vhadd.u8 q0, q0, q3 + 4f10: 00000011 andeq r0, r0, r1, lsl r0 + 4f14: 00000000 andeq r0, r0, r0 + 4f18: 00000104 andeq r0, r0, r4, lsl #2 + 4f1c: 05000003 streq r0, [r0, #-3] + 4f20: 06040000 streq r0, [r4], -r0 + 4f24: 445c3a43 ldrbmi r3, [ip], #-2627 + 4f28: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4f2c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4f30: 646e6120 strbtvs r6, [lr], #-288 + 4f34: 74655320 strbtvc r5, [r5], #-800 + 4f38: 676e6974 undefined + 4f3c: 616d5c73 smcvs 54723 + 4f40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4f44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4f48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4f4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4f50: 775c7374 undefined + 4f54: 6f632d73 svcvs 0x00632d73 + 4f58: 6f72746e svcvs 0x0072746e + 4f5c: 65575c6c ldrbvs r5, [r7, #-3180] + 4f60: 65687461 strbvs r7, [r8, #-1121]! + 4f64: 74532072 ldrbvc r2, [r3], #-114 + 4f68: 6f697461 svcvs 0x00697461 + 4f6c: 6f43206e svcvs 0x0043206e + 4f70: 6f72746e svcvs 0x0072746e + 4f74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4f78: 414d535c cmpmi sp, ip, asr r3 + 4f7c: 6f535c43 svcvs 0x00535c43 + 4f80: 65637275 strbvs r7, [r3, #-629]! + 4f84: 6461525c strbtvs r5, [r1], #-604 + 4f88: 614d6f69 cmpvs sp, r9, ror #30 + 4f8c: 6567616e strbvs r6, [r7, #-366]! + 4f90: 746e656d strbtvc r6, [lr], #-1389 + 4f94: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 4f98: 41205241 teqmi r0, r1, asr #4 + 4f9c: 2049534e subcs r5, r9, lr, asr #6 + 4fa0: 2b432f43 blcs 10d0cb4 + 4fa4: 6f43202b svcvs 0x0043202b + 4fa8: 6c69706d stclvs 0, cr7, [r9], #-436 + 4fac: 56207265 strtpl r7, [r0], -r5, ror #4 + 4fb0: 30332e35 eorscc r2, r3, r5, lsr lr + 4fb4: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 4fb8: 35393231 ldrcc r3, [r9, #-561]! + 4fbc: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4fc0: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4fc4: 4154534b cmpmi r4, fp, asr #6 + 4fc8: 66205452 undefined + 4fcc: 4120726f teqmi r0, pc, ror #4 + 4fd0: 01004d52 tsteq r0, r2, asr sp + 4fd4: 004023ce subeq r2, r0, lr, asr #7 + 4fd8: 004023f2 strdeq r2, [r0], #-50 + 4fdc: 00002eb8 strheq r2, [r0], -r8 + 4fe0: 00001a5b andeq r1, r0, fp, asr sl + 4fe4: 003bcf10 eorseq ip, fp, r0, lsl pc + 4fe8: 01050700 tsteq r5, r0, lsl #14 + 4fec: 65720000 ldrbvs r0, [r2]! + 4ff0: 7361656c cmnvc r1, #452984832 ; 0x1b000000 + 4ff4: 75635f65 strbvc r5, [r3, #-3941]! + 4ff8: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 4ffc: 656d5f74 strbvs r5, [sp, #-3956]! + 5000: 67617373 undefined + 5004: f2010065 vhadd.s8 q0, , + 5008: 10010e01 andne r0, r1, r1, lsl #28 + 500c: 0000454e andeq r4, r0, lr, asr #10 + 5010: 00001225 andeq r1, r0, r5, lsr #4 + 5014: 004023ce subeq r2, r0, lr, asr #7 + 5018: 004023f2 strdeq r2, [r0], #-50 + 501c: 00000000 andeq r0, r0, r0 + 5020: 00000118 andeq r0, r0, r8, lsl r1 + 5024: 05000003 streq r0, [r0, #-3] + 5028: 06040000 streq r0, [r4], -r0 + 502c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5030: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5034: 73746e65 cmnvc r4, #1616 ; 0x650 + 5038: 646e6120 strbtvs r6, [lr], #-288 + 503c: 74655320 strbtvc r5, [r5], #-800 + 5040: 676e6974 undefined + 5044: 616d5c73 smcvs 54723 + 5048: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 504c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5050: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5054: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5058: 775c7374 undefined + 505c: 6f632d73 svcvs 0x00632d73 + 5060: 6f72746e svcvs 0x0072746e + 5064: 65575c6c ldrbvs r5, [r7, #-3180] + 5068: 65687461 strbvs r7, [r8, #-1121]! + 506c: 74532072 ldrbvc r2, [r3], #-114 + 5070: 6f697461 svcvs 0x00697461 + 5074: 6f43206e svcvs 0x0043206e + 5078: 6f72746e svcvs 0x0072746e + 507c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5080: 414d535c cmpmi sp, ip, asr r3 + 5084: 6f535c43 svcvs 0x00535c43 + 5088: 65637275 strbvs r7, [r3, #-629]! + 508c: 6461525c strbtvs r5, [r1], #-604 + 5090: 614d6f69 cmpvs sp, r9, ror #30 + 5094: 6567616e strbvs r6, [r7, #-366]! + 5098: 746e656d strbtvc r6, [lr], #-1389 + 509c: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 50a0: 41205241 teqmi r0, r1, asr #4 + 50a4: 2049534e subcs r5, r9, lr, asr #6 + 50a8: 2b432f43 blcs 10d0dbc + 50ac: 6f43202b svcvs 0x0043202b + 50b0: 6c69706d stclvs 0, cr7, [r9], #-436 + 50b4: 56207265 strtpl r7, [r0], -r5, ror #4 + 50b8: 30332e35 eorscc r2, r3, r5, lsr lr + 50bc: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 50c0: 35393231 ldrcc r3, [r9, #-561]! + 50c4: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 50c8: 43494b20 movtmi r4, #39712 ; 0x9b20 + 50cc: 4154534b cmpmi r4, fp, asr #6 + 50d0: 66205452 undefined + 50d4: 4120726f teqmi r0, pc, ror #4 + 50d8: 01004d52 tsteq r0, r2, asr sp + 50dc: 004023f4 strdeq r2, [r0], #-52 + 50e0: 00402428 subeq r2, r0, r8, lsr #8 + 50e4: 00002f70 andeq r2, r0, r0, ror pc + 50e8: 00001ab7 strheq r1, [r0], -r7 + 50ec: 003bcf10 eorseq ip, fp, r0, lsl pc + 50f0: 01190700 tsteq r9, r0, lsl #14 + 50f4: 61720000 cmnvs r2, r0 + 50f8: 5f6f6964 svcpl 0x006f6964 + 50fc: 616e616d cmnvs lr, sp, ror #2 + 5100: 5f726567 svcpl 0x00726567 + 5104: 74696e69 strbtvc r6, [r9], #-3689 + 5108: 02850100 addeq r0, r5, #0 ; 0x0 + 510c: 4e10010e mufmis f0, f0, #0.5 + 5110: 39000045 stmdbcc r0, {r0, r2, r6} + 5114: f4000012 vst4.8 {d0-d3}, [r0, :64], r2 + 5118: 28004023 stmdacs r0, {r0, r1, r5, lr} + 511c: 0b004024 bleq 151b4 + 5120: 75657571 strbvc r7, [r5, #-1393]! + 5124: 756f635f strbvc r6, [pc, #-863]! ; 4dcd + 5128: 0100746e tsteq r0, lr, ror #8 + 512c: 100b0286 andne r0, fp, r6, lsl #5 + 5130: 000045ec andeq r4, r0, ip, ror #11 + 5134: 0000124d andeq r1, r0, sp, asr #4 + 5138: 00000000 andeq r0, r0, r0 + 513c: 0000010c andeq r0, r0, ip, lsl #2 + 5140: 05000003 streq r0, [r0, #-3] + 5144: 06040000 streq r0, [r4], -r0 + 5148: 445c3a43 ldrbmi r3, [ip], #-2627 + 514c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5150: 73746e65 cmnvc r4, #1616 ; 0x650 + 5154: 646e6120 strbtvs r6, [lr], #-288 + 5158: 74655320 strbtvc r5, [r5], #-800 + 515c: 676e6974 undefined + 5160: 616d5c73 smcvs 54723 + 5164: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5168: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 516c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5170: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5174: 775c7374 undefined + 5178: 6f632d73 svcvs 0x00632d73 + 517c: 6f72746e svcvs 0x0072746e + 5180: 65575c6c ldrbvs r5, [r7, #-3180] + 5184: 65687461 strbvs r7, [r8, #-1121]! + 5188: 74532072 ldrbvc r2, [r3], #-114 + 518c: 6f697461 svcvs 0x00697461 + 5190: 6f43206e svcvs 0x0043206e + 5194: 6f72746e svcvs 0x0072746e + 5198: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 519c: 414d535c cmpmi sp, ip, asr r3 + 51a0: 6f535c43 svcvs 0x00535c43 + 51a4: 65637275 strbvs r7, [r3, #-629]! + 51a8: 6461525c strbtvs r5, [r1], #-604 + 51ac: 614d6f69 cmpvs sp, r9, ror #30 + 51b0: 6567616e strbvs r6, [r7, #-366]! + 51b4: 746e656d strbtvc r6, [lr], #-1389 + 51b8: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 51bc: 41205241 teqmi r0, r1, asr #4 + 51c0: 2049534e subcs r5, r9, lr, asr #6 + 51c4: 2b432f43 blcs 10d0ed8 + 51c8: 6f43202b svcvs 0x0043202b + 51cc: 6c69706d stclvs 0, cr7, [r9], #-436 + 51d0: 56207265 strtpl r7, [r0], -r5, ror #4 + 51d4: 30332e35 eorscc r2, r3, r5, lsr lr + 51d8: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 51dc: 35393231 ldrcc r3, [r9, #-561]! + 51e0: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 51e4: 43494b20 movtmi r4, #39712 ; 0x9b20 + 51e8: 4154534b cmpmi r4, fp, asr #6 + 51ec: 66205452 undefined + 51f0: 4120726f teqmi r0, pc, ror #4 + 51f4: 01004d52 tsteq r0, r2, asr sp + 51f8: 00402428 subeq r2, r0, r8, lsr #8 + 51fc: 00402460 subeq r2, r0, r0, ror #8 + 5200: 00003050 andeq r3, r0, r0, asr r0 + 5204: 00001b65 andeq r1, r0, r5, ror #22 + 5208: 003bcf10 eorseq ip, fp, r0, lsl pc + 520c: 010d0700 tsteq sp, r0, lsl #14 + 5210: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 5214: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 5218: 61725f73 cmnvs r2, r3, ror pc + 521c: 5f6f6964 svcpl 0x006f6964 + 5220: 0067736d rsbeq r7, r7, sp, ror #6 + 5224: 0e029c01 cdpeq 12, 0, cr9, cr2, cr1, {0} + 5228: 454e1001 strbmi r1, [lr, #-1] + 522c: 12550000 subsne r0, r5, #0 ; 0x0 + 5230: 24280000 strtcs r0, [r8] + 5234: 24600040 strbtcs r0, [r0], #-64 + 5238: 0c090040 stceq 0, cr0, [r9], {64} + 523c: 38000001 stmdacc r0, {r0} + 5240: 50004024 andpl r4, r0, r4, lsr #32 + 5244: 00004024 andeq r4, r0, r4, lsr #32 + 5248: 00000000 andeq r0, r0, r0 + 524c: 0000019c muleq r0, ip, r1 + 5250: 05000003 streq r0, [r0, #-3] + 5254: 06040000 streq r0, [r4], -r0 + 5258: 445c3a43 ldrbmi r3, [ip], #-2627 + 525c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5260: 73746e65 cmnvc r4, #1616 ; 0x650 + 5264: 646e6120 strbtvs r6, [lr], #-288 + 5268: 74655320 strbtvc r5, [r5], #-800 + 526c: 676e6974 undefined + 5270: 616d5c73 smcvs 54723 + 5274: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5278: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 527c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5280: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5284: 775c7374 undefined + 5288: 6f632d73 svcvs 0x00632d73 + 528c: 6f72746e svcvs 0x0072746e + 5290: 65575c6c ldrbvs r5, [r7, #-3180] + 5294: 65687461 strbvs r7, [r8, #-1121]! + 5298: 74532072 ldrbvc r2, [r3], #-114 + 529c: 6f697461 svcvs 0x00697461 + 52a0: 6f43206e svcvs 0x0043206e + 52a4: 6f72746e svcvs 0x0072746e + 52a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 52ac: 414d535c cmpmi sp, ip, asr r3 + 52b0: 6f535c43 svcvs 0x00535c43 + 52b4: 65637275 strbvs r7, [r3, #-629]! + 52b8: 6461525c strbtvs r5, [r1], #-604 + 52bc: 614d6f69 cmpvs sp, r9, ror #30 + 52c0: 6567616e strbvs r6, [r7, #-366]! + 52c4: 746e656d strbtvc r6, [lr], #-1389 + 52c8: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 52cc: 41205241 teqmi r0, r1, asr #4 + 52d0: 2049534e subcs r5, r9, lr, asr #6 + 52d4: 2b432f43 blcs 10d0fe8 + 52d8: 6f43202b svcvs 0x0043202b + 52dc: 6c69706d stclvs 0, cr7, [r9], #-436 + 52e0: 56207265 strtpl r7, [r0], -r5, ror #4 + 52e4: 30332e35 eorscc r2, r3, r5, lsr lr + 52e8: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 52ec: 35393231 ldrcc r3, [r9, #-561]! + 52f0: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 52f4: 43494b20 movtmi r4, #39712 ; 0x9b20 + 52f8: 4154534b cmpmi r4, fp, asr #6 + 52fc: 66205452 undefined + 5300: 4120726f teqmi r0, pc, ror #4 + 5304: 01004d52 tsteq r0, r2, asr sp + 5308: 00402460 subeq r2, r0, r0, ror #8 + 530c: 004025b0 strheq r2, [r0], #-80 + 5310: 0000310c andeq r3, r0, ip, lsl #2 + 5314: 00001bf7 strdeq r1, [r0], -r7 + 5318: 003bcf10 eorseq ip, fp, r0, lsl pc + 531c: 019c0700 orrseq r0, ip, r0, lsl #14 + 5320: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 5324: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 5328: 78745f73 ldmdavc r4!, {r0, r1, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 532c: 67736d5f undefined + 5330: 02bf0100 adcseq r0, pc, #0 ; 0x0 + 5334: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} + 5338: 75000045 strvc r0, [r0, #-69] + 533c: 60000012 andvs r0, r0, r2, lsl r0 + 5340: b0004024 andlt r4, r0, r4, lsr #32 + 5344: 0b004025 bleq 153e0 + 5348: 74617473 strbtvc r7, [r1], #-1139 + 534c: c0010065 andgt r0, r1, r5, rrx + 5350: 7b101202 blvc 409b60 + 5354: b9000045 stmdblt r0, {r0, r2, r6} + 5358: 09000012 stmdbeq r0, {r1, r4} + 535c: 0000018d andeq r0, r0, sp, lsl #3 + 5360: 00402480 subeq r2, r0, r0, lsl #9 + 5364: 0040254e subeq r2, r0, lr, asr #10 + 5368: 00012a09 andeq r2, r1, r9, lsl #20 + 536c: 40248000 eormi r8, r4, r0 + 5370: 4024ac00 eormi sl, r4, r0, lsl #24 + 5374: 46090000 strmi r0, [r9], -r0 + 5378: ac000001 stcge 0, cr0, [r0], {1} + 537c: ce004024 cdpgt 0, 0, cr4, cr0, cr4, {1} + 5380: 09004024 stmdbeq r0, {r2, r5, lr} + 5384: 00000145 andeq r0, r0, r5, asr #2 + 5388: 004024bc strheq r2, [r0], #-76 + 538c: 004024ce subeq r2, r0, lr, asr #9 + 5390: 8c090000 stchi 0, cr0, [r9], {0} + 5394: ce000001 cdpgt 0, 0, cr0, cr0, cr1, {0} + 5398: 3e004024 cdpcc 0, 0, cr4, cr0, cr4, {1} + 539c: 09004025 stmdbeq r0, {r0, r2, r5, lr} + 53a0: 0000018b andeq r0, r0, fp, lsl #3 + 53a4: 004024da ldrdeq r2, [r0], #-74 + 53a8: 0040253e subeq r2, r0, lr, lsr r5 + 53ac: 00016e09 andeq r6, r1, r9, lsl #28 + 53b0: 4024ee00 eormi lr, r4, r0, lsl #28 + 53b4: 40250000 eormi r0, r5, r0 + 53b8: 8a090000 bhi 2453c0 + 53bc: 00000001 andeq r0, r0, r1 + 53c0: 3e004025 cdpcc 0, 0, cr4, cr0, cr5, {1} + 53c4: 09004025 stmdbeq r0, {r0, r2, r5, lr} + 53c8: 00000189 andeq r0, r0, r9, lsl #3 + 53cc: 00402506 subeq r2, r0, r6, lsl #10 + 53d0: 00402532 subeq r2, r0, r2, lsr r5 + 53d4: 00000000 andeq r0, r0, r0 + 53d8: 019b0900 orrseq r0, fp, r0, lsl #18 + 53dc: 257e0000 ldrbcs r0, [lr]! + 53e0: 259e0040 ldrcs r0, [lr, #64] + 53e4: 00000040 andeq r0, r0, r0, asr #32 + 53e8: 00000000 andeq r0, r0, r0 + 53ec: 000001d4 ldrdeq r0, [r0], -r4 + 53f0: 05000003 streq r0, [r0, #-3] + 53f4: 06040000 streq r0, [r4], -r0 + 53f8: 445c3a43 ldrbmi r3, [ip], #-2627 + 53fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5400: 73746e65 cmnvc r4, #1616 ; 0x650 + 5404: 646e6120 strbtvs r6, [lr], #-288 + 5408: 74655320 strbtvc r5, [r5], #-800 + 540c: 676e6974 undefined + 5410: 616d5c73 smcvs 54723 + 5414: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5418: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 541c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5420: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5424: 775c7374 undefined + 5428: 6f632d73 svcvs 0x00632d73 + 542c: 6f72746e svcvs 0x0072746e + 5430: 65575c6c ldrbvs r5, [r7, #-3180] + 5434: 65687461 strbvs r7, [r8, #-1121]! + 5438: 74532072 ldrbvc r2, [r3], #-114 + 543c: 6f697461 svcvs 0x00697461 + 5440: 6f43206e svcvs 0x0043206e + 5444: 6f72746e svcvs 0x0072746e + 5448: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 544c: 414d535c cmpmi sp, ip, asr r3 + 5450: 6f535c43 svcvs 0x00535c43 + 5454: 65637275 strbvs r7, [r3, #-629]! + 5458: 6461525c strbtvs r5, [r1], #-604 + 545c: 614d6f69 cmpvs sp, r9, ror #30 + 5460: 6567616e strbvs r6, [r7, #-366]! + 5464: 746e656d strbtvc r6, [lr], #-1389 + 5468: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 546c: 41205241 teqmi r0, r1, asr #4 + 5470: 2049534e subcs r5, r9, lr, asr #6 + 5474: 2b432f43 blcs 10d1188 + 5478: 6f43202b svcvs 0x0043202b + 547c: 6c69706d stclvs 0, cr7, [r9], #-436 + 5480: 56207265 strtpl r7, [r0], -r5, ror #4 + 5484: 30332e35 eorscc r2, r3, r5, lsr lr + 5488: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 548c: 35393231 ldrcc r3, [r9, #-561]! + 5490: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5494: 43494b20 movtmi r4, #39712 ; 0x9b20 + 5498: 4154534b cmpmi r4, fp, asr #6 + 549c: 66205452 undefined + 54a0: 4120726f teqmi r0, pc, ror #4 + 54a4: 01004d52 tsteq r0, r2, asr sp + 54a8: 004025c0 subeq r2, r0, r0, asr #11 + 54ac: 004027c0 subeq r2, r0, r0, asr #15 + 54b0: 00003204 andeq r3, r0, r4, lsl #4 + 54b4: 00001d06 andeq r1, r0, r6, lsl #26 + 54b8: 003bcf10 eorseq ip, fp, r0, lsl pc + 54bc: 01d40700 bicseq r0, r4, r0, lsl #14 + 54c0: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 54c4: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 54c8: 78725f73 ldmdavc r2!, {r0, r1, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 54cc: 67736d5f undefined + 54d0: 03930100 orrseq r0, r3, #0 ; 0x0 + 54d4: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} + 54d8: c1000045 tstgt r0, r5, asr #32 + 54dc: c0000012 andgt r0, r0, r2, lsl r0 + 54e0: c0004025 andgt r4, r0, r5, lsr #32 + 54e4: 0b004027 bleq 15588 + 54e8: 74617473 strbtvc r7, [r1], #-1139 + 54ec: 94010065 strls r0, [r1], #-101 + 54f0: 92101203 andsls r1, r0, #805306368 ; 0x30000000 + 54f4: f9000045 undefined instruction 0xf9000045 + 54f8: 09000012 stmdbeq r0, {r1, r4} + 54fc: 000001c5 andeq r0, r0, r5, asr #3 + 5500: 004025e8 subeq r2, r0, r8, ror #11 + 5504: 0040274c subeq r2, r0, ip, asr #14 + 5508: 00013809 andeq r3, r1, r9, lsl #16 + 550c: 4025e800 eormi lr, r5, r0, lsl #16 + 5510: 40263600 eormi r3, r6, r0, lsl #12 + 5514: 01370900 teqeq r7, r0, lsl #18 + 5518: 25f20000 ldrbcs r0, [r2]! + 551c: 26280040 strtcs r0, [r8], -r0, asr #32 + 5520: 00000040 andeq r0, r0, r0, asr #32 + 5524: 00015409 andeq r5, r1, r9, lsl #8 + 5528: 40263600 eormi r3, r6, r0, lsl #12 + 552c: 40265a00 eormi r5, r6, r0, lsl #20 + 5530: 01530900 cmpeq r3, r0, lsl #18 + 5534: 26480000 strbcs r0, [r8], -r0 + 5538: 265a0040 ldrbcs r0, [sl], -r0, asr #32 + 553c: 00000040 andeq r0, r0, r0, asr #32 + 5540: 0001c409 andeq ip, r1, r9, lsl #8 + 5544: 40265a00 eormi r5, r6, r0, lsl #20 + 5548: 40273c00 eormi r3, r7, r0, lsl #24 + 554c: 01c30900 biceq r0, r3, r0, lsl #18 + 5550: 26660000 strbtcs r0, [r6], -r0 + 5554: 273c0040 ldrcs r0, [ip, -r0, asr #32]! + 5558: 7c090040 stcvc 0, cr0, [r9], {64} + 555c: 76000001 strvc r0, [r0], -r1 + 5560: 96004026 strls r4, [r0], -r6, lsr #32 + 5564: 00004026 andeq r4, r0, r6, lsr #32 + 5568: 0001c209 andeq ip, r1, r9, lsl #4 + 556c: 40269600 eormi r9, r6, r0, lsl #12 + 5570: 40273c00 eormi r3, r7, r0, lsl #24 + 5574: 01b30900 undefined instruction 0x01b30900 + 5578: 26b40000 ldrtcs r0, [r4], r0 + 557c: 273c0040 ldrcs r0, [ip, -r0, asr #32]! + 5580: b2090040 andlt r0, r9, #64 ; 0x40 + 5584: ba000001 blt 5590 + 5588: 28004026 stmdacs r0, {r1, r2, r5, lr} + 558c: 09004027 stmdbeq r0, {r0, r1, r2, r5, lr} + 5590: 000001b1 strheq r0, [r0], -r1 + 5594: 004026c4 subeq r2, r0, r4, asr #13 + 5598: 0040271c subeq r2, r0, ip, lsl r7 + 559c: 09000000 stmdbeq r0, {} + 55a0: 000001c1 andeq r0, r0, r1, asr #3 + 55a4: 004026fe strdeq r2, [r0], #-110 + 55a8: 00402712 subeq r2, r0, r2, lsl r7 + 55ac: 00000000 andeq r0, r0, r0 + 55b0: 01d30900 bicseq r0, r3, r0, lsl #18 + 55b4: 277c0000 ldrbcs r0, [ip, -r0]! + 55b8: 279c0040 ldrcs r0, [ip, r0, asr #32] + 55bc: 00000040 andeq r0, r0, r0, asr #32 + 55c0: 00000000 andeq r0, r0, r0 + 55c4: 0000022c andeq r0, r0, ip, lsr #4 + 55c8: 05000003 streq r0, [r0, #-3] + 55cc: 06040000 streq r0, [r4], -r0 + 55d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 55d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 55d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 55dc: 646e6120 strbtvs r6, [lr], #-288 + 55e0: 74655320 strbtvc r5, [r5], #-800 + 55e4: 676e6974 undefined + 55e8: 616d5c73 smcvs 54723 + 55ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 55f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 55f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 55f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 55fc: 775c7374 undefined + 5600: 6f632d73 svcvs 0x00632d73 + 5604: 6f72746e svcvs 0x0072746e + 5608: 65575c6c ldrbvs r5, [r7, #-3180] + 560c: 65687461 strbvs r7, [r8, #-1121]! + 5610: 74532072 ldrbvc r2, [r3], #-114 + 5614: 6f697461 svcvs 0x00697461 + 5618: 6f43206e svcvs 0x0043206e + 561c: 6f72746e svcvs 0x0072746e + 5620: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5624: 414d535c cmpmi sp, ip, asr r3 + 5628: 6f535c43 svcvs 0x00535c43 + 562c: 65637275 strbvs r7, [r3, #-629]! + 5630: 6461525c strbtvs r5, [r1], #-604 + 5634: 614d6f69 cmpvs sp, r9, ror #30 + 5638: 6567616e strbvs r6, [r7, #-366]! + 563c: 746e656d strbtvc r6, [lr], #-1389 + 5640: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 5644: 41205241 teqmi r0, r1, asr #4 + 5648: 2049534e subcs r5, r9, lr, asr #6 + 564c: 2b432f43 blcs 10d1360 + 5650: 6f43202b svcvs 0x0043202b + 5654: 6c69706d stclvs 0, cr7, [r9], #-436 + 5658: 56207265 strtpl r7, [r0], -r5, ror #4 + 565c: 30332e35 eorscc r2, r3, r5, lsr lr + 5660: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 5664: 35393231 ldrcc r3, [r9, #-561]! + 5668: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 566c: 43494b20 movtmi r4, #39712 ; 0x9b20 + 5670: 4154534b cmpmi r4, fp, asr #6 + 5674: 66205452 undefined + 5678: 4120726f teqmi r0, pc, ror #4 + 567c: 01004d52 tsteq r0, r2, asr sp + 5680: 004027c0 subeq r2, r0, r0, asr #15 + 5684: 0040297c subeq r2, r0, ip, ror r9 + 5688: 0000331c andeq r3, r0, ip, lsl r3 + 568c: 00001e67 andeq r1, r0, r7, ror #28 + 5690: 003bcf10 eorseq ip, fp, r0, lsl pc + 5694: 022d0700 eoreq r0, sp, #0 ; 0x0 + 5698: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 569c: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 56a0: 64655f73 strbtvs r5, [r5], #-3955 + 56a4: 67736d5f undefined + 56a8: 04800100 streq r0, [r0], #256 + 56ac: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} + 56b0: 01000045 tsteq r0, r5, asr #32 + 56b4: c0000013 andgt r0, r0, r3, lsl r0 + 56b8: 7c004027 stcvc 0, cr4, [r0], {39} + 56bc: 04004029 streq r4, [r0], #-41 + 56c0: 76657270 undefined + 56c4: 6168635f cmnvs r8, pc, asr r3 + 56c8: 10006e6e andne r6, r0, lr, ror #28 + 56cc: 00004619 andeq r4, r0, r9, lsl r6 + 56d0: 13048101 movwne r8, #16641 ; 0x4101 + 56d4: c0030500 andgt r0, r3, r0, lsl #10 + 56d8: 0b004053 bleq 1582c + 56dc: 74617473 strbtvc r7, [r1], #-1139 + 56e0: 82010065 andhi r0, r1, #101 ; 0x65 + 56e4: ab101204 blge 409efc + 56e8: 45000045 strmi r0, [r0, #-69] + 56ec: 09000013 stmdbeq r0, {r0, r1, r4} + 56f0: 0000021e andeq r0, r0, lr, lsl r2 + 56f4: 004027de ldrdeq r2, [r0], #-126 + 56f8: 00402906 subeq r2, r0, r6, lsl #18 + 56fc: 00017b09 andeq r7, r1, r9, lsl #22 + 5700: 4027de00 eormi sp, r7, r0, lsl #28 + 5704: 40283c00 eormi r3, r8, r0, lsl #24 + 5708: 017a0900 cmneq sl, r0, lsl #18 + 570c: 27ec0000 strbcs r0, [ip, r0]! + 5710: 28300040 ldmdacs r0!, {r6} + 5714: 790c0040 stmdbvc ip, {r6} + 5718: 10000001 andne r0, r0, r1 + 571c: 00005f1c andeq r5, r0, ip, lsl pc + 5720: 004027f2 strdeq r2, [r0], #-114 + 5724: 0040281a subeq r2, r0, sl, lsl r8 + 5728: 5f3b100d svcpl 0x003b100d + 572c: 134d0000 movtne r0, #53248 ; 0xd000 + 5730: 100e0000 andne r0, lr, r0 + 5734: 00005f4a andeq r5, r0, sl, asr #30 + 5738: 0000136b andeq r1, r0, fp, ror #6 + 573c: 09000000 stmdbeq r0, {} + 5740: 0000021d andeq r0, r0, sp, lsl r2 + 5744: 0040283c subeq r2, r0, ip, lsr r8 + 5748: 004028f6 strdeq r2, [r0], #-134 + 574c: 00021c09 andeq r1, r2, r9, lsl #24 + 5750: 40284800 eormi r4, r8, r0, lsl #16 + 5754: 4028f600 eormi pc, r8, r0, lsl #12 + 5758: 01ca0900 biceq r0, sl, r0, lsl #18 + 575c: 285a0000 ldmdacs sl, {}^ + 5760: 28a40040 stmiacs r4!, {r6} + 5764: c90c0040 stmdbgt ip, {r6} + 5768: 10000001 andne r0, r0, r1 + 576c: 00006024 andeq r6, r0, r4, lsr #32 + 5770: 00402872 subeq r2, r0, r2, ror r8 + 5774: 00402888 subeq r2, r0, r8, lsl #17 + 5778: 6047100d subvs r1, r7, sp + 577c: 137e0000 cmnne lr, #0 ; 0x0 + 5780: 100e0000 andne r0, lr, r0 + 5784: 00006062 andeq r6, r0, r2, rrx + 5788: 0000139b muleq r0, fp, r3 + 578c: 1b090000 blne 245794 + 5790: a4000002 strge r0, [r0], #-2 + 5794: f6004028 undefined instruction 0xf6004028 + 5798: 09004028 stmdbeq r0, {r3, r5, lr} + 579c: 0000020c andeq r0, r0, ip, lsl #4 + 57a0: 004028ac subeq r2, r0, ip, lsr #17 + 57a4: 004028d4 ldrdeq r2, [r0], #-132 + 57a8: 00020b0c andeq r0, r2, ip, lsl #22 + 57ac: 5f1c1000 svcpl 0x001c1000 + 57b0: 28b60000 ldmcs r6!, {} + 57b4: 28d40040 ldmcs r4, {r6}^ + 57b8: 100d0040 andne r0, sp, r0, asr #32 + 57bc: 00005f3b andeq r5, r0, fp, lsr pc + 57c0: 000013d8 ldrdeq r1, [r0], -r8 + 57c4: 5f4a100e svcpl 0x004a100e + 57c8: 13f50000 mvnsne r0, #0 ; 0x0 + 57cc: 00000000 andeq r0, r0, r0 + 57d0: 00021a09 andeq r1, r2, r9, lsl #20 + 57d4: 4028d600 eormi sp, r8, r0, lsl #12 + 57d8: 4028f600 eormi pc, r8, r0, lsl #12 + 57dc: 00000000 andeq r0, r0, r0 + 57e0: 2c090000 stccs 0, cr0, [r9], {0} + 57e4: 36000002 strcc r0, [r0], -r2 + 57e8: 56004029 strpl r4, [r0], -r9, lsr #32 + 57ec: 00004029 andeq r4, r0, r9, lsr #32 + 57f0: 00000000 andeq r0, r0, r0 + 57f4: 00000180 andeq r0, r0, r0, lsl #3 + 57f8: 05000003 streq r0, [r0, #-3] + 57fc: 06040000 streq r0, [r4], -r0 + 5800: 445c3a43 ldrbmi r3, [ip], #-2627 + 5804: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5808: 73746e65 cmnvc r4, #1616 ; 0x650 + 580c: 646e6120 strbtvs r6, [lr], #-288 + 5810: 74655320 strbtvc r5, [r5], #-800 + 5814: 676e6974 undefined + 5818: 616d5c73 smcvs 54723 + 581c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5820: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5824: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5828: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 582c: 775c7374 undefined + 5830: 6f632d73 svcvs 0x00632d73 + 5834: 6f72746e svcvs 0x0072746e + 5838: 65575c6c ldrbvs r5, [r7, #-3180] + 583c: 65687461 strbvs r7, [r8, #-1121]! + 5840: 74532072 ldrbvc r2, [r3], #-114 + 5844: 6f697461 svcvs 0x00697461 + 5848: 6f43206e svcvs 0x0043206e + 584c: 6f72746e svcvs 0x0072746e + 5850: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5854: 414d535c cmpmi sp, ip, asr r3 + 5858: 6f535c43 svcvs 0x00535c43 + 585c: 65637275 strbvs r7, [r3, #-629]! + 5860: 6461525c strbtvs r5, [r1], #-604 + 5864: 614d6f69 cmpvs sp, r9, ror #30 + 5868: 6567616e strbvs r6, [r7, #-366]! + 586c: 746e656d strbtvc r6, [lr], #-1389 + 5870: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 5874: 41205241 teqmi r0, r1, asr #4 + 5878: 2049534e subcs r5, r9, lr, asr #6 + 587c: 2b432f43 blcs 10d1590 + 5880: 6f43202b svcvs 0x0043202b + 5884: 6c69706d stclvs 0, cr7, [r9], #-436 + 5888: 56207265 strtpl r7, [r0], -r5, ror #4 + 588c: 30332e35 eorscc r2, r3, r5, lsr lr + 5890: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 5894: 35393231 ldrcc r3, [r9, #-561]! + 5898: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 589c: 43494b20 movtmi r4, #39712 ; 0x9b20 + 58a0: 4154534b cmpmi r4, fp, asr #6 + 58a4: 66205452 undefined + 58a8: 4120726f teqmi r0, pc, ror #4 + 58ac: 01004d52 tsteq r0, r2, asr sp + 58b0: 0040297c subeq r2, r0, ip, ror r9 + 58b4: 00402ac8 subeq r2, r0, r8, asr #21 + 58b8: 00003470 andeq r3, r0, r0, ror r4 + 58bc: 00002066 andeq r2, r0, r6, rrx + 58c0: 003bcf10 eorseq ip, fp, r0, lsl pc + 58c4: 01800700 orreq r0, r0, r0, lsl #14 + 58c8: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 58cc: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 58d0: 6f745f73 svcvs 0x00745f73 + 58d4: 67736d5f undefined + 58d8: 04d60100 ldrbeq r0, [r6], #256 + 58dc: 4e100015 mrcmi 0, 0, r0, cr0, cr5, {0} + 58e0: fd000045 stc2 0, cr0, [r0, #-276] + 58e4: 7c000013 stcvc 0, cr0, [r0], {19} + 58e8: c8004029 stmdagt r0, {r0, r3, r5, lr} + 58ec: 0b00402a bleq 1599c + 58f0: 74617473 strbtvc r7, [r1], #-1139 + 58f4: d7010065 strle r0, [r1, -r5, rrx] + 58f8: c2101204 andsgt r1, r0, #1073741824 ; 0x40000000 + 58fc: 1d000045 stcne 0, cr0, [r0, #-276] + 5900: 09000014 stmdbeq r0, {r2, r4} + 5904: 00000171 andeq r0, r0, r1, ror r1 + 5908: 00402998 umaaleq r2, r0, r8, r9 + 590c: 00402a76 subeq r2, r0, r6, ror sl + 5910: 00012a09 andeq r2, r1, r9, lsl #20 + 5914: 40299800 eormi r9, r9, r0, lsl #16 + 5918: 4029cc00 eormi ip, r9, r0, lsl #24 + 591c: 70090000 andvc r0, r9, r0 + 5920: cc000001 stcgt 0, cr0, [r0], {1} + 5924: 66004029 strvs r4, [r0], -r9, lsr #32 + 5928: 0900402a stmdbeq r0, {r1, r3, r5, lr} + 592c: 0000016f andeq r0, r0, pc, ror #2 + 5930: 004029d8 ldrdeq r2, [r0], #-152 + 5934: 00402a66 subeq r2, r0, r6, ror #20 + 5938: 00016009 andeq r6, r1, r9 + 593c: 402a1600 eormi r1, sl, r0, lsl #12 + 5940: 402a6600 eormi r6, sl, r0, lsl #12 + 5944: 015f0900 cmpeq pc, r0, lsl #18 + 5948: 2a400000 bcs 1005950 + 594c: 2a660040 bcs 1985a54 + 5950: 00000040 andeq r0, r0, r0, asr #32 + 5954: 00016e09 andeq r6, r1, r9, lsl #28 + 5958: 402a2a00 eormi r2, sl, r0, lsl #20 + 595c: 402a4000 eormi r4, sl, r0 + 5960: 00000000 andeq r0, r0, r0 + 5964: 017f0900 cmneq pc, r0, lsl #18 + 5968: 2aa60000 bcs fe985970 + 596c: 2ac80040 bcs ff205a74 + 5970: 00000040 andeq r0, r0, r0, asr #32 + 5974: 00000000 andeq r0, r0, r0 + 5978: 000001a0 andeq r0, r0, r0, lsr #3 + 597c: 05000003 streq r0, [r0, #-3] + 5980: 06040000 streq r0, [r4], -r0 + 5984: 445c3a43 ldrbmi r3, [ip], #-2627 + 5988: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 598c: 73746e65 cmnvc r4, #1616 ; 0x650 + 5990: 646e6120 strbtvs r6, [lr], #-288 + 5994: 74655320 strbtvc r5, [r5], #-800 + 5998: 676e6974 undefined + 599c: 616d5c73 smcvs 54723 + 59a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 59a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 59a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 59ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 59b0: 775c7374 undefined + 59b4: 6f632d73 svcvs 0x00632d73 + 59b8: 6f72746e svcvs 0x0072746e + 59bc: 65575c6c ldrbvs r5, [r7, #-3180] + 59c0: 65687461 strbvs r7, [r8, #-1121]! + 59c4: 74532072 ldrbvc r2, [r3], #-114 + 59c8: 6f697461 svcvs 0x00697461 + 59cc: 6f43206e svcvs 0x0043206e + 59d0: 6f72746e svcvs 0x0072746e + 59d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 59d8: 414d535c cmpmi sp, ip, asr r3 + 59dc: 6f535c43 svcvs 0x00535c43 + 59e0: 65637275 strbvs r7, [r3, #-629]! + 59e4: 6461525c strbtvs r5, [r1], #-604 + 59e8: 614d6f69 cmpvs sp, r9, ror #30 + 59ec: 6567616e strbvs r6, [r7, #-366]! + 59f0: 746e656d strbtvc r6, [lr], #-1389 + 59f4: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 59f8: 41205241 teqmi r0, r1, asr #4 + 59fc: 2049534e subcs r5, r9, lr, asr #6 + 5a00: 2b432f43 blcs 10d1714 + 5a04: 6f43202b svcvs 0x0043202b + 5a08: 6c69706d stclvs 0, cr7, [r9], #-436 + 5a0c: 56207265 strtpl r7, [r0], -r5, ror #4 + 5a10: 30332e35 eorscc r2, r3, r5, lsr lr + 5a14: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 5a18: 35393231 ldrcc r3, [r9, #-561]! + 5a1c: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5a20: 43494b20 movtmi r4, #39712 ; 0x9b20 + 5a24: 4154534b cmpmi r4, fp, asr #6 + 5a28: 66205452 undefined + 5a2c: 4120726f teqmi r0, pc, ror #4 + 5a30: 01004d52 tsteq r0, r2, asr sp + 5a34: 00402aec subeq r2, r0, ip, ror #21 + 5a38: 00402b84 subeq r2, r0, r4, lsl #23 + 5a3c: 0000356c andeq r3, r0, ip, ror #10 + 5a40: 00002180 andeq r2, r0, r0, lsl #3 + 5a44: 003bcf10 eorseq ip, fp, r0, lsl pc + 5a48: 01a00a00 lsleq r0, r0, #20 + 5a4c: 72700000 rsbsvc r0, r0, #0 ; 0x0 + 5a50: 7365636f cmnvc r5, #-1140850687 ; 0xbc000001 + 5a54: 63735f73 cmnvs r3, #460 ; 0x1cc + 5a58: 725f6e61 subsvc r6, pc, #1552 ; 0x610 + 5a5c: 01007165 tsteq r0, r5, ror #2 + 5a60: 010605c1 smlabteq r6, r1, r5, r0 + 5a64: 00001425 andeq r1, r0, r5, lsr #8 + 5a68: 00402aec subeq r2, r0, ip, ror #21 + 5a6c: 00402b84 subeq r2, r0, r4, lsl #23 + 5a70: 42387504 eorsmi r7, r8, #16777216 ; 0x1000000 + 5a74: 56747365 ldrbtpl r7, [r4], -r5, ror #6 + 5a78: 10006c61 andne r6, r0, r1, ror #24 + 5a7c: 000045ec andeq r4, r0, ip, ror #11 + 5a80: 1205c401 andne ip, r5, #16777216 ; 0x1000000 + 5a84: 6c030500 cfstr32vs mvfx0, [r3], {0} + 5a88: 04004053 streq r4, [r0], #-83 + 5a8c: 74736562 ldrbtvc r6, [r3], #-1378 + 5a90: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5a94: 6410006e ldrvs r0, [r0], #-110 + 5a98: 01000045 tsteq r0, r5, asr #32 + 5a9c: 001805c5 andseq r0, r8, r5, asr #11 + 5aa0: 536d0305 cmnpl sp, #335544320 ; 0x14000000 + 5aa4: 45040040 strmi r0, [r4, #-64] + 5aa8: 32684364 rsbcc r4, r8, #-1879048191 ; 0x90000001 + 5aac: 6c617645 stclvs 6, cr7, [r1], #-276 + 5ab0: 65746175 ldrbvs r6, [r4, #-373]! + 5ab4: 45641000 strbmi r1, [r4]! + 5ab8: c6010000 strgt r0, [r1], -r0 + 5abc: 05001805 streq r1, [r0, #-2053] + 5ac0: 40536e03 subsmi r6, r3, r3, lsl #28 + 5ac4: 73690400 cmnvc r9, #0 ; 0x0 + 5ac8: 6f636553 svcvs 0x00636553 + 5acc: 6150646e cmpvs r0, lr, ror #8 + 5ad0: 10007373 andne r7, r0, r3, ror r3 + 5ad4: 000045fb strdeq r4, [r0], -fp + 5ad8: 1105c701 tstne r5, r1, lsl #14 + 5adc: 6f030500 svcvs 0x00030500 + 5ae0: 0b004053 bleq 15c34 + 5ae4: 76657270 undefined + 5ae8: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5aec: c301006e movwgt r0, #4206 ; 0x106e + 5af0: 64101105 ldrvs r1, [r0], #-261 + 5af4: 5d000045 stcpl 0, cr0, [r0, #-276] + 5af8: 09000014 stmdbeq r0, {r2, r4} + 5afc: 0000019f muleq r0, pc, r1 + 5b00: 00402af8 strdeq r2, [r0], #-168 + 5b04: 00402b64 subeq r2, r0, r4, ror #22 + 5b08: 00019e09 andeq r9, r1, r9, lsl #28 + 5b0c: 402b1600 eormi r1, fp, r0, lsl #12 + 5b10: 402b3800 eormi r3, fp, r0, lsl #16 + ... + 5b1c: 000001dc ldrdeq r0, [r0], -ip + 5b20: 05000003 streq r0, [r0, #-3] + 5b24: 01040000 tsteq r4, r0 + 5b28: 445c3a43 ldrbmi r3, [ip], #-2627 + 5b2c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5b30: 73746e65 cmnvc r4, #1616 ; 0x650 + 5b34: 646e6120 strbtvs r6, [lr], #-288 + 5b38: 74655320 strbtvc r5, [r5], #-800 + 5b3c: 676e6974 undefined + 5b40: 616d5c73 smcvs 54723 + 5b44: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5b48: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5b4c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5b50: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5b54: 775c7374 undefined + 5b58: 6f632d73 svcvs 0x00632d73 + 5b5c: 6f72746e svcvs 0x0072746e + 5b60: 65575c6c ldrbvs r5, [r7, #-3180] + 5b64: 65687461 strbvs r7, [r8, #-1121]! + 5b68: 74532072 ldrbvc r2, [r3], #-114 + 5b6c: 6f697461 svcvs 0x00697461 + 5b70: 6f43206e svcvs 0x0043206e + 5b74: 6f72746e svcvs 0x0072746e + 5b78: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5b7c: 414d535c cmpmi sp, ip, asr r3 + 5b80: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} + 5b84: 66726574 undefined + 5b88: 5c656361 stclpl 3, cr6, [r5], #-388 + 5b8c: 626f6c47 rsbvs r6, pc, #18176 ; 0x4700 + 5b90: 65446c61 strbvs r6, [r4, #-3169] + 5b94: 682e7366 stmdavs lr!, {r1, r2, r5, r6, r8, r9, ip, sp, lr} + 5b98: 52414900 subpl r4, r1, #0 ; 0x0 + 5b9c: 534e4120 movtpl r4, #57632 ; 0xe120 + 5ba0: 2f432049 svccs 0x00432049 + 5ba4: 202b2b43 eorcs r2, fp, r3, asr #22 + 5ba8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 5bac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 5bb0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 5bb4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 5bb8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 5bbc: 572f3539 undefined + 5bc0: 4b203233 blmi 812494 + 5bc4: 534b4349 movtpl r4, #45897 ; 0xb349 + 5bc8: 54524154 ldrbpl r4, [r2], #-340 + 5bcc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 5bd0: 4d524120 ldfmie f4, [r2, #-128] + 5bd4: 28c40100 stmiacs r4, {r8}^ + 5bd8: 010c0000 tsteq ip, r0 + 5bdc: dc120000 ldcle 0, cr0, [r2], {0} + 5be0: 63000001 movwvs r0, #1 ; 0x1 + 5be4: 6e6e6168 powvsez f6, f6, #0.0 + 5be8: 6e5f6c65 cdpvs 12, 5, cr6, cr15, cr5, {3} + 5bec: 745f6d75 ldrbvc r6, [pc], #3445 ; 5bf4 + 5bf0: 01006761 tsteq r0, r1, ror #14 + 5bf4: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ + 5bf8: 656e6e61 strbvs r6, [lr, #-3681]! + 5bfc: 5f31316c svcpl 0x0031316c + 5c00: 13000063 movwne r0, #99 ; 0x63 + 5c04: 61684367 cmnvs r8, r7, ror #6 + 5c08: 6c656e6e stclvs 14, cr6, [r5], #-440 + 5c0c: 635f3231 cmpvs pc, #268435459 ; 0x10000003 + 5c10: 67130100 ldrvs r0, [r3, -r0, lsl #2] + 5c14: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5c18: 316c656e cmncc ip, lr, ror #10 + 5c1c: 00635f33 rsbeq r5, r3, r3, lsr pc + 5c20: 43671302 cmnmi r7, #134217728 ; 0x8000000 + 5c24: 6e6e6168 powvsez f6, f6, #0.0 + 5c28: 34316c65 ldrtcc r6, [r1], #-3173 + 5c2c: 0300635f movweq r6, #863 ; 0x35f + 5c30: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ + 5c34: 656e6e61 strbvs r6, [lr, #-3681]! + 5c38: 5f35316c svcpl 0x0035316c + 5c3c: 13040063 movwne r0, #16483 ; 0x4063 + 5c40: 61684367 cmnvs r8, r7, ror #6 + 5c44: 6c656e6e stclvs 14, cr6, [r5], #-440 + 5c48: 635f3631 cmpvs pc, #51380224 ; 0x3100000 + 5c4c: 67130500 ldrvs r0, [r3, -r0, lsl #10] + 5c50: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5c54: 316c656e cmncc ip, lr, ror #10 + 5c58: 00635f37 rsbeq r5, r3, r7, lsr pc + 5c5c: 43671306 cmnmi r7, #402653184 ; 0x18000000 + 5c60: 6e6e6168 powvsez f6, f6, #0.0 + 5c64: 38316c65 ldmdacc r1!, {r0, r2, r5, r6, sl, fp, sp, lr} + 5c68: 0700635f smlsdeq r0, pc, r3, r6 + 5c6c: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ + 5c70: 656e6e61 strbvs r6, [lr, #-3681]! + 5c74: 5f39316c svcpl 0x0039316c + 5c78: 13080063 movwne r0, #32867 ; 0x8063 + 5c7c: 61684367 cmnvs r8, r7, ror #6 + 5c80: 6c656e6e stclvs 14, cr6, [r5], #-440 + 5c84: 635f3032 cmpvs pc, #50 ; 0x32 + 5c88: 67130900 ldrvs r0, [r3, -r0, lsl #18] + 5c8c: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5c90: 326c656e rsbcc r6, ip, #461373440 ; 0x1b800000 + 5c94: 00635f31 rsbeq r5, r3, r1, lsr pc + 5c98: 4367130a cmnmi r7, #671088640 ; 0x28000000 + 5c9c: 6e6e6168 powvsez f6, f6, #0.0 + 5ca0: 32326c65 eorscc r6, r2, #25856 ; 0x6500 + 5ca4: 0b00635f bleq 1ea28 + 5ca8: 68436713 stmdavs r3, {r0, r1, r4, r8, r9, sl, sp, lr}^ + 5cac: 656e6e61 strbvs r6, [lr, #-3681]! + 5cb0: 5f33326c svcpl 0x0033326c + 5cb4: 130c0063 movwne r0, #49251 ; 0xc063 + 5cb8: 61684367 cmnvs r8, r7, ror #6 + 5cbc: 6c656e6e stclvs 14, cr6, [r5], #-440 + 5cc0: 635f3432 cmpvs pc, #838860800 ; 0x32000000 + 5cc4: 67130d00 ldrvs r0, [r3, -r0, lsl #26] + 5cc8: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5ccc: 326c656e rsbcc r6, ip, #461373440 ; 0x1b800000 + 5cd0: 00635f35 rsbeq r5, r3, r5, lsr pc + 5cd4: 4367130e cmnmi r7, #939524096 ; 0x38000000 + 5cd8: 6e6e6168 powvsez f6, f6, #0.0 + 5cdc: 36326c65 ldrtcc r6, [r2], -r5, ror #24 + 5ce0: 0f00635f svceq 0x0000635f + 5ce4: 6f546713 svcvs 0x00546713 + 5ce8: 436c6174 cmnmi ip, #29 ; 0x1d + 5cec: 6e6e6168 powvsez f6, f6, #0.0 + 5cf0: 5f736c65 svcpl 0x00736c65 + 5cf4: 00100063 andseq r0, r0, r3, rrx + 5cf8: 00000000 andeq r0, r0, r0 + 5cfc: 00000158 andeq r0, r0, r8, asr r1 + 5d00: 05000003 streq r0, [r0, #-3] + 5d04: 06040000 streq r0, [r4], -r0 + 5d08: 445c3a43 ldrbmi r3, [ip], #-2627 + 5d0c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5d10: 73746e65 cmnvc r4, #1616 ; 0x650 + 5d14: 646e6120 strbtvs r6, [lr], #-288 + 5d18: 74655320 strbtvc r5, [r5], #-800 + 5d1c: 676e6974 undefined + 5d20: 616d5c73 smcvs 54723 + 5d24: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5d28: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5d2c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5d30: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5d34: 775c7374 undefined + 5d38: 6f632d73 svcvs 0x00632d73 + 5d3c: 6f72746e svcvs 0x0072746e + 5d40: 65575c6c ldrbvs r5, [r7, #-3180] + 5d44: 65687461 strbvs r7, [r8, #-1121]! + 5d48: 74532072 ldrbvc r2, [r3], #-114 + 5d4c: 6f697461 svcvs 0x00697461 + 5d50: 6f43206e svcvs 0x0043206e + 5d54: 6f72746e svcvs 0x0072746e + 5d58: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5d5c: 414d535c cmpmi sp, ip, asr r3 + 5d60: 6f535c43 svcvs 0x00535c43 + 5d64: 65637275 strbvs r7, [r3, #-629]! + 5d68: 6461525c strbtvs r5, [r1], #-604 + 5d6c: 614d6f69 cmpvs sp, r9, ror #30 + 5d70: 6567616e strbvs r6, [r7, #-366]! + 5d74: 746e656d strbtvc r6, [lr], #-1389 + 5d78: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 5d7c: 41205241 teqmi r0, r1, asr #4 + 5d80: 2049534e subcs r5, r9, lr, asr #6 + 5d84: 2b432f43 blcs 10d1a98 + 5d88: 6f43202b svcvs 0x0043202b + 5d8c: 6c69706d stclvs 0, cr7, [r9], #-436 + 5d90: 56207265 strtpl r7, [r0], -r5, ror #4 + 5d94: 30332e35 eorscc r2, r3, r5, lsr lr + 5d98: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 5d9c: 35393231 ldrcc r3, [r9, #-561]! + 5da0: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5da4: 43494b20 movtmi r4, #39712 ; 0x9b20 + 5da8: 4154534b cmpmi r4, fp, asr #6 + 5dac: 66205452 undefined + 5db0: 4120726f teqmi r0, pc, ror #4 + 5db4: 01004d52 tsteq r0, r2, asr sp + 5db8: 00402b84 subeq r2, r0, r4, lsl #23 + 5dbc: 00402bb4 strheq r2, [r0], #-180 + 5dc0: 00003644 andeq r3, r0, r4, asr #12 + 5dc4: 00002255 andeq r2, r0, r5, asr r2 + 5dc8: 003bcf10 eorseq ip, fp, r0, lsl pc + 5dcc: 01580700 cmpeq r8, r0, lsl #14 + 5dd0: 65670000 strbvs r0, [r7]! + 5dd4: 656e5f74 strbvs r5, [lr, #-3956]! + 5dd8: 635f7478 cmpvs pc, #2013265920 ; 0x78000000 + 5ddc: 6e6e6168 powvsez f6, f6, #0.0 + 5de0: 5f6f745f svcpl 0x006f745f + 5de4: 6e616373 mcrvs 3, 3, r6, cr1, cr3, {3} + 5de8: 05f60100 ldrbeq r0, [r6, #256]! + 5dec: 6410010f ldrvs r0, [r0], #-271 + 5df0: 7a000045 bvc 5f0c + 5df4: 84000014 strhi r0, [r0], #-20 + 5df8: b400402b strlt r4, [r0], #-43 + 5dfc: 0800402b stmdaeq r0, {r0, r1, r3, r5, lr} + 5e00: 72727563 rsbsvc r7, r2, #415236096 ; 0x18c00000 + 5e04: 43746e65 cmnmi r4, #1616 ; 0x650 + 5e08: f6010068 undefined instruction 0xf6010068 + 5e0c: 64103405 ldrvs r3, [r0], #-1029 + 5e10: a6000045 strge r0, [r0], -r5, asr #32 + 5e14: 0b000014 bleq 5e6c + 5e18: 7478656e ldrbtvc r6, [r8], #-1390 + 5e1c: 6e616843 cdpvs 8, 6, cr6, cr1, cr3, {2} + 5e20: f801006e undefined instruction 0xf801006e + 5e24: 64101105 ldrvs r1, [r0], #-261 + 5e28: c3000045 movwgt r0, #69 ; 0x45 + 5e2c: 0b000014 bleq 5e84 + 5e30: 656d6974 strbvs r6, [sp, #-2420]! + 5e34: 0074754f rsbseq r7, r4, pc, asr #10 + 5e38: 0b05f901 bleq 184244 + 5e3c: 0045ec10 subeq lr, r5, r0, lsl ip + 5e40: 0014eb00 andseq lr, r4, r0, lsl #22 + 5e44: 01570900 cmpeq r7, r0, lsl #18 + 5e48: 2b8c0000 blcs fe305e50 + 5e4c: 2ba40040 blcs fe905f54 + 5e50: 00000040 andeq r0, r0, r0, asr #32 + 5e54: 00000000 andeq r0, r0, r0 + 5e58: 00000104 andeq r0, r0, r4, lsl #2 + 5e5c: 05000003 streq r0, [r0, #-3] + 5e60: 01040000 tsteq r4, r0 + 5e64: 445c3a43 ldrbmi r3, [ip], #-2627 + 5e68: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5e6c: 73746e65 cmnvc r4, #1616 ; 0x650 + 5e70: 646e6120 strbtvs r6, [lr], #-288 + 5e74: 74655320 strbtvc r5, [r5], #-800 + 5e78: 676e6974 undefined + 5e7c: 616d5c73 smcvs 54723 + 5e80: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5e84: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5e88: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5e8c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5e90: 775c7374 undefined + 5e94: 6f632d73 svcvs 0x00632d73 + 5e98: 6f72746e svcvs 0x0072746e + 5e9c: 65575c6c ldrbvs r5, [r7, #-3180] + 5ea0: 65687461 strbvs r7, [r8, #-1121]! + 5ea4: 74532072 ldrbvc r2, [r3], #-114 + 5ea8: 6f697461 svcvs 0x00697461 + 5eac: 6f43206e svcvs 0x0043206e + 5eb0: 6f72746e svcvs 0x0072746e + 5eb4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5eb8: 414d535c cmpmi sp, ip, asr r3 + 5ebc: 6f535c43 svcvs 0x00535c43 + 5ec0: 65637275 strbvs r7, [r3, #-629]! + 5ec4: 6461525c strbtvs r5, [r1], #-604 + 5ec8: 614d6f69 cmpvs sp, r9, ror #30 + 5ecc: 6567616e strbvs r6, [r7, #-366]! + 5ed0: 746e656d strbtvc r6, [lr], #-1389 + 5ed4: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 5ed8: 41205241 teqmi r0, r1, asr #4 + 5edc: 2049534e subcs r5, r9, lr, asr #6 + 5ee0: 2b432f43 blcs 10d1bf4 + 5ee4: 6f43202b svcvs 0x0043202b + 5ee8: 6c69706d stclvs 0, cr7, [r9], #-436 + 5eec: 56207265 strtpl r7, [r0], -r5, ror #4 + 5ef0: 30332e35 eorscc r2, r3, r5, lsr lr + 5ef4: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 5ef8: 35393231 ldrcc r3, [r9, #-561]! + 5efc: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5f00: 43494b20 movtmi r4, #39712 ; 0x9b20 + 5f04: 4154534b cmpmi r4, fp, asr #6 + 5f08: 66205452 undefined + 5f0c: 4120726f teqmi r0, pc, ror #4 + 5f10: 01004d52 tsteq r0, r2, asr sp + 5f14: 000028c4 andeq r2, r0, r4, asr #17 + 5f18: 0000010c andeq r0, r0, ip, lsl #2 + 5f1c: 0001070f andeq r0, r1, pc, lsl #14 + 5f20: 6d6f6300 stclvs 3, cr6, [pc] + 5f24: 646e616d strbtvs r6, [lr], #-365 + 5f28: 7663785f undefined + 5f2c: 64655f72 strbtvs r5, [r5], #-3954 + 5f30: 113e0c00 teqne lr, r0, lsl #24 + 5f34: 46191001 ldrmi r1, [r9], -r1 + 5f38: 10020000 andne r0, r2, r0 + 5f3c: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + 5f40: 3e0c006e cdpcc 0, 0, cr0, cr12, cr14, {3} + 5f44: 45ec102a strbmi r1, [ip, #42]! + 5f48: 74110000 ldrvc r0, [r1] + 5f4c: 6843706d stmdavs r3, {r0, r2, r3, r5, r6, ip, sp, lr}^ + 5f50: 656e6e61 strbvs r6, [lr, #-3681]! + 5f54: 400c006c andmi r0, ip, ip, rrx + 5f58: 46191014 undefined + 5f5c: 00000000 andeq r0, r0, r0 + 5f60: 00000114 andeq r0, r0, r4, lsl r1 + 5f64: 05000003 streq r0, [r0, #-3] + 5f68: 01040000 tsteq r4, r0 + 5f6c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5f70: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5f74: 73746e65 cmnvc r4, #1616 ; 0x650 + 5f78: 646e6120 strbtvs r6, [lr], #-288 + 5f7c: 74655320 strbtvc r5, [r5], #-800 + 5f80: 676e6974 undefined + 5f84: 616d5c73 smcvs 54723 + 5f88: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5f8c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5f90: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5f94: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5f98: 775c7374 undefined + 5f9c: 6f632d73 svcvs 0x00632d73 + 5fa0: 6f72746e svcvs 0x0072746e + 5fa4: 65575c6c ldrbvs r5, [r7, #-3180] + 5fa8: 65687461 strbvs r7, [r8, #-1121]! + 5fac: 74532072 ldrbvc r2, [r3], #-114 + 5fb0: 6f697461 svcvs 0x00697461 + 5fb4: 6f43206e svcvs 0x0043206e + 5fb8: 6f72746e svcvs 0x0072746e + 5fbc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5fc0: 414d535c cmpmi sp, ip, asr r3 + 5fc4: 6f535c43 svcvs 0x00535c43 + 5fc8: 65637275 strbvs r7, [r3, #-629]! + 5fcc: 6461525c strbtvs r5, [r1], #-604 + 5fd0: 614d6f69 cmpvs sp, r9, ror #30 + 5fd4: 6567616e strbvs r6, [r7, #-366]! + 5fd8: 746e656d strbtvc r6, [lr], #-1389 + 5fdc: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 5fe0: 41205241 teqmi r0, r1, asr #4 + 5fe4: 2049534e subcs r5, r9, lr, asr #6 + 5fe8: 2b432f43 blcs 10d1cfc + 5fec: 6f43202b svcvs 0x0043202b + 5ff0: 6c69706d stclvs 0, cr7, [r9], #-436 + 5ff4: 56207265 strtpl r7, [r0], -r5, ror #4 + 5ff8: 30332e35 eorscc r2, r3, r5, lsr lr + 5ffc: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 6000: 35393231 ldrcc r3, [r9, #-561]! + 6004: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 6008: 43494b20 movtmi r4, #39712 ; 0x9b20 + 600c: 4154534b cmpmi r4, fp, asr #6 + 6010: 66205452 undefined + 6014: 4120726f teqmi r0, pc, ror #4 + 6018: 01004d52 tsteq r0, r2, asr sp + 601c: 000028c4 andeq r2, r0, r4, asr #17 + 6020: 0000010c andeq r0, r0, ip, lsl #2 + 6024: 0001160f andeq r1, r1, pc, lsl #12 + 6028: 6c616300 stclvs 3, cr6, [r1] + 602c: 616c7563 cmnvs ip, r3, ror #10 + 6030: 655f6574 ldrbvs r6, [pc, #-1396] ; 5ac4 + 6034: 61765f64 cmnvs r6, r4, ror #30 + 6038: 0065756c rsbeq r7, r5, ip, ror #10 + 603c: 0905a50b stmdbeq r5, {r0, r1, r3, r8, sl, sp, pc} + 6040: 45ec1000 strbmi r1, [ip]! + 6044: 10000000 andne r0, r0, r0 + 6048: 67615f78 undefined + 604c: 63635f63 cmnvs r3, #396 ; 0x18c + 6050: 64655f61 strbtvs r5, [r5], #-3937 + 6054: 74756f5f ldrbtvc r6, [r5], #-3935 + 6058: 05a50b00 streq r0, [r5, #2816]! + 605c: 46191025 ldrmi r1, [r9], -r5, lsr #32 + 6060: 75110000 ldrvc r0, [r1] + 6064: 64453233 strbvs r3, [r5], #-563 + 6068: 006c6156 rsbeq r6, ip, r6, asr r1 + 606c: 0c05a70b stceq 7, cr10, [r5], {11} + 6070: 00461910 subeq r1, r6, r0, lsl r9 + 6074: 00000000 andeq r0, r0, r0 + 6078: 00000348 andeq r0, r0, r8, asr #6 + 607c: 06840003 streq r0, [r4], r3 + 6080: 01040000 tsteq r4, r0 + 6084: 445c3a43 ldrbmi r3, [ip], #-2627 + 6088: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 608c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6090: 646e6120 strbtvs r6, [lr], #-288 + 6094: 74655320 strbtvc r5, [r5], #-800 + 6098: 676e6974 undefined + 609c: 616d5c73 smcvs 54723 + 60a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 60a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 60a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 60ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 60b0: 775c7374 undefined + 60b4: 6f632d73 svcvs 0x00632d73 + 60b8: 6f72746e svcvs 0x0072746e + 60bc: 65575c6c ldrbvs r5, [r7, #-3180] + 60c0: 65687461 strbvs r7, [r8, #-1121]! + 60c4: 74532072 ldrbvc r2, [r3], #-114 + 60c8: 6f697461 svcvs 0x00697461 + 60cc: 6f43206e svcvs 0x0043206e + 60d0: 6f72746e svcvs 0x0072746e + 60d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 60d8: 414d535c cmpmi sp, ip, asr r3 + 60dc: 6f535c43 svcvs 0x00535c43 + 60e0: 65637275 strbvs r7, [r3, #-629]! + 60e4: 6172545c cmnvs r2, ip, asr r4 + 60e8: 6563736e strbvs r7, [r3, #-878]! + 60ec: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 60f0: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 60f4: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 60f8: 746e6d67 strbtvc r6, [lr], #-3431 + 60fc: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 6100: 41205241 teqmi r0, r1, asr #4 + 6104: 2049534e subcs r5, r9, lr, asr #6 + 6108: 2b432f43 blcs 10d1e1c + 610c: 6f43202b svcvs 0x0043202b + 6110: 6c69706d stclvs 0, cr7, [r9], #-436 + 6114: 56207265 strtpl r7, [r0], -r5, ror #4 + 6118: 30332e35 eorscc r2, r3, r5, lsr lr + 611c: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 6120: 35393231 ldrcc r3, [r9, #-561]! + 6124: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 6128: 43494b20 movtmi r4, #39712 ; 0x9b20 + 612c: 4154534b cmpmi r4, fp, asr #6 + 6130: 66205452 undefined + 6134: 4120726f teqmi r0, pc, ror #4 + 6138: 01004d52 tsteq r0, r2, asr sp + 613c: 00003704 andeq r3, r0, r4, lsl #14 + 6140: 00000140 andeq r0, r0, r0, asr #2 + 6144: 736e7502 cmnvc lr, #8388608 ; 0x800000 + 6148: 656e6769 strbvs r6, [lr, #-1897]! + 614c: 6f6c2064 svcvs 0x006c2064 + 6150: 0400676e streq r6, [r0], #-1902 + 6154: 8a130307 bhi 4c6d78 + 6158: 02000002 andeq r0, r0, #2 ; 0x2 + 615c: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 6160: 64656e67 strbtvs r6, [r5], #-3687 + 6164: 61686320 cmnvs r8, r0, lsr #6 + 6168: 08010072 stmdaeq r1, {r1, r4, r5, r6} + 616c: 03391303 teqeq r9, #201326592 ; 0xc000000 + 6170: 13050000 movwne r0, #20480 ; 0x5000 + 6174: 00000339 andeq r0, r0, r9, lsr r3 + 6178: 027d1303 rsbseq r1, sp, #201326592 ; 0xc000000 + 617c: 13070000 movwne r0, #28672 ; 0x7000 + 6180: 0000031c andeq r0, r0, ip, lsl r3 + 6184: 00020f14 andeq r0, r2, r4, lsl pc + 6188: 73655400 cmnvc r5, #0 ; 0x0 + 618c: 6f4d5f74 svcvs 0x004d5f74 + 6190: 745f6564 ldrbvc r6, [pc], #1380 ; 6198 + 6194: 01006761 tsteq r0, r1, ror #14 + 6198: 414d5315 cmpmi sp, r5, lsl r3 + 619c: 45545f43 ldrbmi r5, [r4, #-3907] + 61a0: 4d5f5453 cfldrdmi mvd5, [pc, #-332] + 61a4: 5f45444f svcpl 0x0045444f + 61a8: 454c4449 strbmi r4, [ip, #-1097] + 61ac: 53150000 tstpl r5, #0 ; 0x0 + 61b0: 5f43414d svcpl 0x0043414d + 61b4: 54534554 ldrbpl r4, [r3], #-1364 + 61b8: 444f4d5f strbmi r4, [pc], #3423 ; 61c0 + 61bc: 55505f45 ldrbpl r5, [r0, #-3909] + 61c0: 5f45534c svcpl 0x0045534c + 61c4: 53425250 movtpl r5, #8784 ; 0x2250 + 61c8: 58545f39 ldmdapl r4, {r0, r3, r4, r5, r8, r9, sl, fp, ip, lr}^ + 61cc: 0058525f subseq r5, r8, pc, asr r2 + 61d0: 4d531501 cfldr64mi mvdx1, [r3, #-4] + 61d4: 545f4341 ldrbpl r4, [pc], #833 ; 61dc + 61d8: 5f545345 svcpl 0x00545345 + 61dc: 45444f4d strbmi r4, [r4, #-3917] + 61e0: 5245505f subpl r5, r5, #95 ; 0x5f + 61e4: 5f58545f svcpl 0x0058545f + 61e8: 02005852 andeq r5, r0, #5373952 ; 0x520000 + 61ec: 414d5315 cmpmi sp, r5, lsl r3 + 61f0: 45545f43 ldrbmi r5, [r4, #-3907] + 61f4: 4d5f5453 cfldrdmi mvd5, [pc, #-332] + 61f8: 5f45444f svcpl 0x0045444f + 61fc: 474e4152 smlsldmi r4, lr, r2, r1 + 6200: 58545f45 ldmdapl r4, {r0, r2, r6, r8, r9, sl, fp, ip, lr}^ + 6204: 0058525f subseq r5, r8, pc, asr r2 + 6208: 4d531503 cfldr64mi mvdx1, [r3, #-12] + 620c: 545f4341 ldrbpl r4, [pc], #833 ; 6214 + 6210: 5f545345 svcpl 0x00545345 + 6214: 45444f4d strbmi r4, [r4, #-3917] + 6218: 4e4f435f mcrmi 3, 2, r4, cr15, cr15, {2} + 621c: 554e4954 strbpl r4, [lr, #-2388] + 6220: 5f53554f svcpl 0x0053554f + 6224: 4d5f5854 ldclmi 8, cr5, [pc, #-336] + 6228: 0400444f streq r4, [r0], #-1103 + 622c: 414d5315 cmpmi sp, r5, lsl r3 + 6230: 45545f43 ldrbmi r5, [r4, #-3907] + 6234: 4d5f5453 cfldrdmi mvd5, [pc, #-332] + 6238: 5f45444f svcpl 0x0045444f + 623c: 544e4f43 strbpl r4, [lr], #-3907 + 6240: 4f554e49 svcmi 0x00554e49 + 6244: 545f5355 ldrbpl r5, [pc], #853 ; 624c + 6248: 4f4e5f58 svcmi 0x004e5f58 + 624c: 00444f4d subeq r4, r4, sp, asr #30 + 6250: 4d531505 cfldr64mi mvdx1, [r3, #-20] + 6254: 545f4341 ldrbpl r4, [pc], #833 ; 625c + 6258: 5f545345 svcpl 0x00545345 + 625c: 45444f4d strbmi r4, [r4, #-3917] + 6260: 4e4f435f mcrmi 3, 2, r4, cr15, cr15, {2} + 6264: 554e4954 strbpl r4, [lr, #-2388] + 6268: 5f53554f svcpl 0x0053554f + 626c: 06005852 undefined + 6270: 414d5315 cmpmi sp, r5, lsl r3 + 6274: 414d5f43 cmpmi sp, r3, asr #30 + 6278: 45545f58 ldrbmi r5, [r4, #-3928] + 627c: 4d5f5453 cfldrdmi mvd5, [pc, #-332] + 6280: 5345444f movtpl r4, #21583 ; 0x544f + 6284: 14000700 strne r0, [r0], #-1792 + 6288: 0000027d andeq r0, r0, sp, ror r2 + 628c: 73726556 cmnvc r2, #360710144 ; 0x15800000 + 6290: 656e6f69 strbvs r6, [lr, #-3945]! + 6294: 6e455f64 cdpvs 15, 4, cr5, cr5, cr4, {3} + 6298: 79746974 ldmdbvc r4!, {r2, r4, r5, r6, r8, fp, sp, lr}^ + 629c: 6761745f undefined + 62a0: 48150100 ldmdami r5, {r8} + 62a4: 414d5f57 cmpmi sp, r7, asr pc + 62a8: 565f4143 ldrbpl r4, [pc], -r3, asr #2 + 62ac: 49535245 ldmdbmi r3, {r0, r2, r6, r9, ip, lr}^ + 62b0: 00004e4f andeq r4, r0, pc, asr #28 + 62b4: 5f575315 svcpl 0x00575315 + 62b8: 43414d53 movtmi r4, #7507 ; 0x1d53 + 62bc: 5245565f subpl r5, r5, #99614720 ; 0x5f00000 + 62c0: 4e4f4953 mcrmi 9, 2, r4, cr15, cr3, {2} + 62c4: 53150100 tstpl r5, #0 ; 0x0 + 62c8: 4f425f57 svcmi 0x00425f57 + 62cc: 5453544f ldrbpl r5, [r3], #-1103 + 62d0: 5f504152 svcpl 0x00504152 + 62d4: 53524556 cmppl r2, #360710144 ; 0x15800000 + 62d8: 004e4f49 subeq r4, lr, r9, asr #30 + 62dc: 414d1502 cmpmi sp, r2, lsl #10 + 62e0: 45565f58 ldrbmi r5, [r6, #-3928] + 62e4: 4f495352 svcmi 0x00495352 + 62e8: 5f44454e svcpl 0x0044454e + 62ec: 49544e45 ldmdbmi r4, {r0, r2, r6, r9, sl, fp, lr}^ + 62f0: 03005954 movweq r5, #2388 ; 0x954 + 62f4: 028a1600 addeq r1, sl, #0 ; 0x0 + 62f8: 95130000 ldrls r0, [r3] + 62fc: 17000002 strne r0, [r0, -r2] + 6300: 95160002 ldrls r0, [r6, #-2] + 6304: 15000002 strne r0, [r0, #-2] + 6308: 2a1701cc bcs 5c6a40 + 630c: 02d91800 sbcseq r1, r9, #0 ; 0x0 + 6310: 65760000 ldrbvs r0, [r6]! + 6314: 6f697372 svcvs 0x00697372 + 6318: 6e615f6e cdpvs 15, 6, cr5, cr1, cr14, {3} + 631c: 69735f64 ldmdbvs r3!, {r2, r5, r6, r8, r9, sl, fp, ip, lr}^ + 6320: 745f657a ldrbvc r6, [pc], #1402 ; 6328 + 6324: 08006761 stmdaeq r0, {r0, r5, r6, r8, r9, sl, sp, lr} + 6328: 01fa1519 mvnseq r1, r9, lsl r5 + 632c: 72657601 rsbvc r7, r5, #1048576 ; 0x100000 + 6330: 6e6f6973 mcrvs 9, 3, r6, cr15, cr3, {3} + 6334: 6464615f strbtvs r6, [r4], #-351 + 6338: 00230200 eoreq r0, r3, r0, lsl #4 + 633c: 031c1319 tsteq ip, #1677721600 ; 0x64000000 + 6340: 77010000 strvc r0, [r1, -r0] + 6344: 5f64726f svcpl 0x0064726f + 6348: 657a6973 ldrbvs r6, [sl, #-2419]! + 634c: 04230200 strteq r0, [r3], #-512 + 6350: 75461a00 strbvc r1, [r6, #-2560] + 6354: 6552636e ldrbvs r6, [r2, #-878] + 6358: 6e727574 mrcvs 5, 3, r7, cr2, cr4, {3} + 635c: 1000745f andne r7, r0, pc, asr r4 + 6360: 00002af6 strdeq r2, [r0], -r6 + 6364: 1a03500c bne da39c + 6368: 74736554 ldrbtvc r6, [r3], #-1364 + 636c: 646f4d5f strbtvs r4, [pc], #3423 ; 6374 + 6370: 00745f65 rsbseq r5, r4, r5, ror #30 + 6374: 0e028c15 mcreq 12, 0, r8, cr2, cr5, {0} + 6378: 561a032e ldrpl r0, [sl], -lr, lsr #6 + 637c: 69737265 ldmdbvs r3!, {r0, r2, r5, r6, r9, ip, sp, lr}^ + 6380: 64656e6f strbtvs r6, [r5], #-3695 + 6384: 746e455f strbtvc r4, [lr], #-1375 + 6388: 5f797469 svcpl 0x00797469 + 638c: 8f150074 svchi 0x00150074 + 6390: 02400e04 subeq r0, r0, #64 ; 0x40 + 6394: 6e69751a mcrvs 5, 3, r7, cr9, cr10, {0} + 6398: 745f3874 ldrbvc r3, [pc], #2164 ; 63a0 + 639c: 01e31500 mvneq r1, r0, lsl #10 + 63a0: 1a191a01 bne 64cbac + 63a4: 6c6f6f62 stclvs 15, cr6, [pc], #-392 + 63a8: 1500745f strne r7, [r0, #-1119] + 63ac: 2c01069c stccs 6, cr0, [r1], {156} + 63b0: 69751a13 ldmdbvs r5!, {r0, r1, r4, r9, fp, ip}^ + 63b4: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 + 63b8: 1500745f strne r7, [r0, #-1119] + 63bc: 1e0101cc adfnedm f0, f1, #4.0 + 63c0: 00000019 andeq r0, r0, r9, lsl r0 + 63c4: 000000ec andeq r0, r0, ip, ror #1 + 63c8: 06840003 streq r0, [r4], r3 + 63cc: 01040000 tsteq r4, r0 + 63d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 63d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 63d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 63dc: 646e6120 strbtvs r6, [lr], #-288 + 63e0: 74655320 strbtvc r5, [r5], #-800 + 63e4: 676e6974 undefined + 63e8: 616d5c73 smcvs 54723 + 63ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 63f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 63f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 63f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 63fc: 775c7374 undefined + 6400: 6f632d73 svcvs 0x00632d73 + 6404: 6f72746e svcvs 0x0072746e + 6408: 65575c6c ldrbvs r5, [r7, #-3180] + 640c: 65687461 strbvs r7, [r8, #-1121]! + 6410: 74532072 ldrbvc r2, [r3], #-114 + 6414: 6f697461 svcvs 0x00697461 + 6418: 6f43206e svcvs 0x0043206e + 641c: 6f72746e svcvs 0x0072746e + 6420: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6424: 414d535c cmpmi sp, ip, asr r3 + 6428: 6f535c43 svcvs 0x00535c43 + 642c: 65637275 strbvs r7, [r3, #-629]! + 6430: 6172545c cmnvs r2, ip, asr r4 + 6434: 6563736e strbvs r7, [r3, #-878]! + 6438: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 643c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 6440: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 6444: 746e6d67 strbtvc r6, [lr], #-3431 + 6448: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 644c: 41205241 teqmi r0, r1, asr #4 + 6450: 2049534e subcs r5, r9, lr, asr #6 + 6454: 2b432f43 blcs 10d2168 + 6458: 6f43202b svcvs 0x0043202b + 645c: 6c69706d stclvs 0, cr7, [r9], #-436 + 6460: 56207265 strtpl r7, [r0], -r5, ror #4 + 6464: 30332e35 eorscc r2, r3, r5, lsr lr + 6468: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 646c: 35393231 ldrcc r3, [r9, #-561]! + 6470: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 6474: 43494b20 movtmi r4, #39712 ; 0x9b20 + 6478: 4154534b cmpmi r4, fp, asr #6 + 647c: 66205452 undefined + 6480: 4120726f teqmi r0, pc, ror #4 + 6484: 01004d52 tsteq r0, r2, asr sp + 6488: 00003704 andeq r3, r0, r4, lsl #14 + 648c: 00000140 andeq r0, r0, r0, asr #2 + 6490: 73496d04 movtvc r6, #40196 ; 0x9d04 + 6494: 6d6f7250 sfmvs f7, 2, [pc, #-320]! + 6498: 6f637369 svcvs 0x00637369 + 649c: 6f4d7375 svcvs 0x004d7375 + 64a0: 10006564 andne r6, r0, r4, ror #10 + 64a4: 000063a3 andeq r6, r0, r3, lsr #7 + 64a8: 000f7a0f andeq r7, pc, pc, lsl #20 + 64ac: 52ad0305 adcpl r0, sp, #335544320 ; 0x14000000 + 64b0: 00000040 andeq r0, r0, r0, asr #32 + 64b4: 0000010c andeq r0, r0, ip, lsl #2 + 64b8: 06840003 streq r0, [r4], r3 + 64bc: 06040000 streq r0, [r4], -r0 + 64c0: 445c3a43 ldrbmi r3, [ip], #-2627 + 64c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 64c8: 73746e65 cmnvc r4, #1616 ; 0x650 + 64cc: 646e6120 strbtvs r6, [lr], #-288 + 64d0: 74655320 strbtvc r5, [r5], #-800 + 64d4: 676e6974 undefined + 64d8: 616d5c73 smcvs 54723 + 64dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 64e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 64e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 64e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 64ec: 775c7374 undefined + 64f0: 6f632d73 svcvs 0x00632d73 + 64f4: 6f72746e svcvs 0x0072746e + 64f8: 65575c6c ldrbvs r5, [r7, #-3180] + 64fc: 65687461 strbvs r7, [r8, #-1121]! + 6500: 74532072 ldrbvc r2, [r3], #-114 + 6504: 6f697461 svcvs 0x00697461 + 6508: 6f43206e svcvs 0x0043206e + 650c: 6f72746e svcvs 0x0072746e + 6510: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6514: 414d535c cmpmi sp, ip, asr r3 + 6518: 6f535c43 svcvs 0x00535c43 + 651c: 65637275 strbvs r7, [r3, #-629]! + 6520: 6172545c cmnvs r2, ip, asr r4 + 6524: 6563736e strbvs r7, [r3, #-878]! + 6528: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 652c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 6530: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 6534: 746e6d67 strbtvc r6, [lr], #-3431 + 6538: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 653c: 41205241 teqmi r0, r1, asr #4 + 6540: 2049534e subcs r5, r9, lr, asr #6 + 6544: 2b432f43 blcs 10d2258 + 6548: 6f43202b svcvs 0x0043202b + 654c: 6c69706d stclvs 0, cr7, [r9], #-436 + 6550: 56207265 strtpl r7, [r0], -r5, ror #4 + 6554: 30332e35 eorscc r2, r3, r5, lsr lr + 6558: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 655c: 35393231 ldrcc r3, [r9, #-561]! + 6560: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 6564: 43494b20 movtmi r4, #39712 ; 0x9b20 + 6568: 4154534b cmpmi r4, fp, asr #6 + 656c: 66205452 undefined + 6570: 4120726f teqmi r0, pc, ror #4 + 6574: 01004d52 tsteq r0, r2, asr sp + 6578: 004038c8 subeq r3, r0, r8, asr #17 + 657c: 004038ce subeq r3, r0, lr, asr #17 + 6580: 00003c28 andeq r3, r0, r8, lsr #24 + 6584: 000022c6 andeq r2, r0, r6, asr #5 + 6588: 00608310 rsbeq r8, r0, r0, lsl r3 + 658c: 010c0900 tsteq ip, r0, lsl #18 + 6590: 4c4d0000 marmi acc0, r0, sp + 6594: 6547454d strbvs r4, [r7, #-1357] + 6598: 6f725074 svcvs 0x00725074 + 659c: 6373696d cmnvs r3, #1785856 ; 0x1b4000 + 65a0: 73756f75 cmnvc r5, #468 ; 0x1d4 + 65a4: 65646f4d strbvs r6, [r4, #-3917]! + 65a8: 029f0100 addseq r0, pc, #0 ; 0x0 + 65ac: a3100108 tstge r0, #2 ; 0x2 + 65b0: 08000063 stmdaeq r0, {r0, r1, r5, r6} + 65b4: c8000015 stmdagt r0, {r0, r2, r4} + 65b8: ce004038 mcrgt 0, 0, r4, cr0, cr8, {1} + 65bc: 00004038 andeq r4, r0, r8, lsr r0 + 65c0: 00000000 andeq r0, r0, r0 + 65c4: 00000174 andeq r0, r0, r4, ror r1 + 65c8: 06840003 streq r0, [r4], r3 + 65cc: 06040000 streq r0, [r4], -r0 + 65d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 65d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 65d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 65dc: 646e6120 strbtvs r6, [lr], #-288 + 65e0: 74655320 strbtvc r5, [r5], #-800 + 65e4: 676e6974 undefined + 65e8: 616d5c73 smcvs 54723 + 65ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 65f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 65f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 65f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 65fc: 775c7374 undefined + 6600: 6f632d73 svcvs 0x00632d73 + 6604: 6f72746e svcvs 0x0072746e + 6608: 65575c6c ldrbvs r5, [r7, #-3180] + 660c: 65687461 strbvs r7, [r8, #-1121]! + 6610: 74532072 ldrbvc r2, [r3], #-114 + 6614: 6f697461 svcvs 0x00697461 + 6618: 6f43206e svcvs 0x0043206e + 661c: 6f72746e svcvs 0x0072746e + 6620: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6624: 414d535c cmpmi sp, ip, asr r3 + 6628: 6f535c43 svcvs 0x00535c43 + 662c: 65637275 strbvs r7, [r3, #-629]! + 6630: 6172545c cmnvs r2, ip, asr r4 + 6634: 6563736e strbvs r7, [r3, #-878]! + 6638: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 663c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 6640: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 6644: 746e6d67 strbtvc r6, [lr], #-3431 + 6648: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 664c: 41205241 teqmi r0, r1, asr #4 + 6650: 2049534e subcs r5, r9, lr, asr #6 + 6654: 2b432f43 blcs 10d2368 + 6658: 6f43202b svcvs 0x0043202b + 665c: 6c69706d stclvs 0, cr7, [r9], #-436 + 6660: 56207265 strtpl r7, [r0], -r5, ror #4 + 6664: 30332e35 eorscc r2, r3, r5, lsr lr + 6668: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 666c: 35393231 ldrcc r3, [r9, #-561]! + 6670: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 6674: 43494b20 movtmi r4, #39712 ; 0x9b20 + 6678: 4154534b cmpmi r4, fp, asr #6 + 667c: 66205452 undefined + 6680: 4120726f teqmi r0, pc, ror #4 + 6684: 01004d52 tsteq r0, r2, asr sp + 6688: 004038d0 ldrdeq r3, [r0], #-128 + 668c: 00403974 subeq r3, r0, r4, ror r9 + 6690: 00003cdc ldrdeq r3, [r0], -ip + 6694: 00002318 andeq r2, r0, r8, lsl r3 + 6698: 00608310 rsbeq r8, r0, r0, lsl r3 + 669c: 01770900 cmneq r7, r0, lsl #18 + 66a0: 4c4d0000 marmi acc0, r0, sp + 66a4: 6152454d cmpvs r2, sp, asr #10 + 66a8: 496f6964 stmdbmi pc!, {r2, r5, r6, r8, fp, sp, lr}^ + 66ac: 0074696e rsbseq r6, r4, lr, ror #18 + 66b0: 0e02be01 cdpeq 14, 0, cr11, cr2, cr1, {0} + 66b4: 63511001 cmpvs r1, #1 ; 0x1 + 66b8: 151c0000 ldrne r0, [ip] + 66bc: 38d00000 ldmcc r0, {}^ + 66c0: 39740040 ldmdbcc r4!, {r6}^ + 66c4: 69040040 stmdbvs r4, {r6} + 66c8: 63941000 orrsvs r1, r4, #0 ; 0x0 + 66cc: c0010000 andgt r0, r1, r0 + 66d0: 05001202 streq r1, [r0, #-514] + 66d4: 4052ae03 subsmi sl, r2, r3, lsl #28 + 66d8: 33750b00 cmncc r5, #0 ; 0x0 + 66dc: 6f6f4c32 svcvs 0x006f4c32 + 66e0: 76694470 undefined + 66e4: 02c10100 sbceq r0, r1, #0 ; 0x0 + 66e8: 63b1100c undefined instruction 0x63b1100c + 66ec: 156c0000 strbne r0, [ip]! + 66f0: 590c0000 stmdbpl ip, {} + 66f4: e0000001 and r0, r0, r1 + 66f8: f4004038 vst4.8 {d4-d7}, [r0, :256], r8 + 66fc: 0d004038 stceq 0, cr4, [r0, #-224] + 6700: 00000158 andeq r0, r0, r8, asr r1 + 6704: 00680810 rsbeq r0, r8, r0, lsl r8 + 6708: 4038ee00 eorsmi lr, r8, r0, lsl #28 + 670c: 4038f000 eorsmi pc, r8, r0 + 6710: 2f100e00 svccs 0x00100e00 + 6714: 74000068 strvc r0, [r0], #-104 + 6718: 00000015 andeq r0, r0, r5, lsl r0 + 671c: 01760d00 cmneq r6, r0, lsl #26 + 6720: 18100000 ldmdane r0, {} + 6724: f4000069 vst4.16 {d0-d3}, [r0, :128], r9 + 6728: 4c004038 stcmi 0, cr4, [r0], {56} + 672c: 0f004039 svceq 0x00004039 + 6730: 00693110 rsbeq r3, r9, r0, lsl r1 + 6734: 00157c00 andseq r7, r5, r0, lsl #24 + 6738: 00000000 andeq r0, r0, r0 + 673c: 0000010c andeq r0, r0, ip, lsl #2 + 6740: 06840003 streq r0, [r4], r3 + 6744: 01040000 tsteq r4, r0 + 6748: 445c3a43 ldrbmi r3, [ip], #-2627 + 674c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6750: 73746e65 cmnvc r4, #1616 ; 0x650 + 6754: 646e6120 strbtvs r6, [lr], #-288 + 6758: 74655320 strbtvc r5, [r5], #-800 + 675c: 676e6974 undefined + 6760: 616d5c73 smcvs 54723 + 6764: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6768: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 676c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6770: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6774: 775c7374 undefined + 6778: 6f632d73 svcvs 0x00632d73 + 677c: 6f72746e svcvs 0x0072746e + 6780: 65575c6c ldrbvs r5, [r7, #-3180] + 6784: 65687461 strbvs r7, [r8, #-1121]! + 6788: 74532072 ldrbvc r2, [r3], #-114 + 678c: 6f697461 svcvs 0x00697461 + 6790: 6f43206e svcvs 0x0043206e + 6794: 6f72746e svcvs 0x0072746e + 6798: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 679c: 414d535c cmpmi sp, ip, asr r3 + 67a0: 6f535c43 svcvs 0x00535c43 + 67a4: 65637275 strbvs r7, [r3, #-629]! + 67a8: 6172545c cmnvs r2, ip, asr r4 + 67ac: 6563736e strbvs r7, [r3, #-878]! + 67b0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 67b4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 67b8: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 67bc: 746e6d67 strbtvc r6, [lr], #-3431 + 67c0: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 67c4: 41205241 teqmi r0, r1, asr #4 + 67c8: 2049534e subcs r5, r9, lr, asr #6 + 67cc: 2b432f43 blcs 10d24e0 + 67d0: 6f43202b svcvs 0x0043202b + 67d4: 6c69706d stclvs 0, cr7, [r9], #-436 + 67d8: 56207265 strtpl r7, [r0], -r5, ror #4 + 67dc: 30332e35 eorscc r2, r3, r5, lsr lr + 67e0: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 67e4: 35393231 ldrcc r3, [r9, #-561]! + 67e8: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 67ec: 43494b20 movtmi r4, #39712 ; 0x9b20 + 67f0: 4154534b cmpmi r4, fp, asr #6 + 67f4: 66205452 undefined + 67f8: 4120726f teqmi r0, pc, ror #4 + 67fc: 01004d52 tsteq r0, r2, asr sp + 6800: 00003704 andeq r3, r0, r4, lsl #14 + 6804: 00000140 andeq r0, r0, r0, asr #2 + 6808: 00010f10 andeq r0, r1, r0, lsl pc + 680c: 4d4c4d00 stclmi 13, cr4, [ip] + 6810: 74655345 strbtvc r5, [r5], #-837 + 6814: 6d6f7250 sfmvs f7, 2, [pc, #-320]! + 6818: 75637369 strbvc r7, [r3, #-873]! + 681c: 4d73756f cfldr64mi mvdx7, [r3, #-444]! + 6820: 0065646f rsbeq r6, r5, pc, ror #8 + 6824: 0e02930f cdpeq 3, 0, cr9, cr2, cr15, {0} + 6828: 63511001 cmpvs r1, #1 ; 0x1 + 682c: 11000000 tstne r0, r0 + 6830: 72507369 subsvc r7, r0, #-1543503871 ; 0xa4000001 + 6834: 73696d6f cmnvc r9, #7104 ; 0x1bc0 + 6838: 73756f63 cmnvc r5, #396 ; 0x18c + 683c: 65646f4d strbvs r6, [r4, #-3917]! + 6840: 02930f00 addseq r0, r3, #0 ; 0x0 + 6844: 63a3102c undefined instruction 0x63a3102c + 6848: 00000000 andeq r0, r0, r0 + 684c: 000000f4 strdeq r0, [r0], -r4 + 6850: 06840003 streq r0, [r4], r3 + 6854: 01040000 tsteq r4, r0 + 6858: 445c3a43 ldrbmi r3, [ip], #-2627 + 685c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6860: 73746e65 cmnvc r4, #1616 ; 0x650 + 6864: 646e6120 strbtvs r6, [lr], #-288 + 6868: 74655320 strbtvc r5, [r5], #-800 + 686c: 676e6974 undefined + 6870: 616d5c73 smcvs 54723 + 6874: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6878: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 687c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6880: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6884: 775c7374 undefined + 6888: 6f632d73 svcvs 0x00632d73 + 688c: 6f72746e svcvs 0x0072746e + 6890: 65575c6c ldrbvs r5, [r7, #-3180] + 6894: 65687461 strbvs r7, [r8, #-1121]! + 6898: 74532072 ldrbvc r2, [r3], #-114 + 689c: 6f697461 svcvs 0x00697461 + 68a0: 6f43206e svcvs 0x0043206e + 68a4: 6f72746e svcvs 0x0072746e + 68a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 68ac: 414d535c cmpmi sp, ip, asr r3 + 68b0: 6f535c43 svcvs 0x00535c43 + 68b4: 65637275 strbvs r7, [r3, #-629]! + 68b8: 6172545c cmnvs r2, ip, asr r4 + 68bc: 6563736e strbvs r7, [r3, #-878]! + 68c0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 68c4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 68c8: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 68cc: 746e6d67 strbtvc r6, [lr], #-3431 + 68d0: 4900632e stmdbmi r0, {r1, r2, r3, r5, r8, r9, sp, lr} + 68d4: 41205241 teqmi r0, r1, asr #4 + 68d8: 2049534e subcs r5, r9, lr, asr #6 + 68dc: 2b432f43 blcs 10d25f0 + 68e0: 6f43202b svcvs 0x0043202b + 68e4: 6c69706d stclvs 0, cr7, [r9], #-436 + 68e8: 56207265 strtpl r7, [r0], -r5, ror #4 + 68ec: 30332e35 eorscc r2, r3, r5, lsr lr + 68f0: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 68f4: 35393231 ldrcc r3, [r9, #-561]! + 68f8: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 68fc: 43494b20 movtmi r4, #39712 ; 0x9b20 + 6900: 4154534b cmpmi r4, fp, asr #6 + 6904: 66205452 undefined + 6908: 4120726f teqmi r0, pc, ror #4 + 690c: 01004d52 tsteq r0, r2, asr sp + 6910: 00003704 andeq r3, r0, r4, lsl #14 + 6914: 00000140 andeq r0, r0, r0, asr #2 + 6918: 0000f412 andeq pc, r0, r2, lsl r4 + 691c: 696e4900 stmdbvs lr!, {r8, fp, lr}^ + 6920: 6c616974 stclvs 9, cr6, [r1], #-464 + 6924: 50657a69 rsbpl r7, r5, r9, ror #20 + 6928: 0f007968 svceq 0x00007968 + 692c: 000d02e7 andeq r0, sp, r7, ror #5 + 6930: 6e631300 cdpvs 3, 6, cr1, cr3, cr0, {0} + 6934: e90f0074 stmdb pc, {r2, r4, r5, r6} + 6938: 7e101402 cfmulsvc mvf1, mvf0, mvf2 + 693c: 00000061 andeq r0, r0, r1, rrx + 6940: 00000000 andeq r0, r0, r0 + 6944: 00000514 andeq r0, r0, r4, lsl r5 + 6948: 07ec0003 strbeq r0, [ip, r3]! + 694c: 01040000 tsteq r4, r0 + 6950: 445c3a43 ldrbmi r3, [ip], #-2627 + 6954: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6958: 73746e65 cmnvc r4, #1616 ; 0x650 + 695c: 646e6120 strbtvs r6, [lr], #-288 + 6960: 74655320 strbtvc r5, [r5], #-800 + 6964: 676e6974 undefined + 6968: 616d5c73 smcvs 54723 + 696c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6970: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6974: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6978: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 697c: 775c7374 undefined + 6980: 6f632d73 svcvs 0x00632d73 + 6984: 6f72746e svcvs 0x0072746e + 6988: 65575c6c ldrbvs r5, [r7, #-3180] + 698c: 65687461 strbvs r7, [r8, #-1121]! + 6990: 74532072 ldrbvc r2, [r3], #-114 + 6994: 6f697461 svcvs 0x00697461 + 6998: 6f43206e svcvs 0x0043206e + 699c: 6f72746e svcvs 0x0072746e + 69a0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 69a4: 414d535c cmpmi sp, ip, asr r3 + 69a8: 6f535c43 svcvs 0x00535c43 + 69ac: 65637275 strbvs r7, [r3, #-629]! + 69b0: 6172545c cmnvs r2, ip, asr r4 + 69b4: 6563736e strbvs r7, [r3, #-878]! + 69b8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 69bc: 65776f50 ldrbvs r6, [r7, #-3920]! + 69c0: 676e4d72 undefined + 69c4: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 69c8: 41490063 cmpmi r9, r3, rrx + 69cc: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 69d0: 43204953 teqmi r0, #1359872 ; 0x14c000 + 69d4: 2b2b432f blcs ad7698 + 69d8: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 69dc: 656c6970 strbvs r6, [ip, #-2416]! + 69e0: 35562072 ldrbcc r2, [r6, #-114] + 69e4: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 69e8: 31332e32 teqcc r3, r2, lsr lr + 69ec: 2f353932 svccs 0x00353932 + 69f0: 20323357 eorscs r3, r2, r7, asr r3 + 69f4: 4b43494b blmi 10d8f28 + 69f8: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 69fc: 6f662054 svcvs 0x00662054 + 6a00: 52412072 subpl r2, r1, #114 ; 0x72 + 6a04: d401004d strle r0, [r1], #-77 + 6a08: 8000003d andhi r0, r0, sp, lsr r0 + 6a0c: 03000001 movweq r0, #1 ; 0x1 + 6a10: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 6a14: 64656e67 strbtvs r6, [r5], #-3687 + 6a18: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} + 6a1c: 07040067 streq r0, [r4, -r7, rrx] + 6a20: 736e7503 cmnvc lr, #12582912 ; 0xc00000 + 6a24: 656e6769 strbvs r6, [lr, #-1897]! + 6a28: 68632064 stmdavs r3!, {r2, r5, r6, sp}^ + 6a2c: 01007261 tsteq r0, r1, ror #4 + 6a30: 01170a08 tsteq r7, r8, lsl #20 + 6a34: 09010000 stmdbeq r1, {} + 6a38: 74784567 ldrbtvc r4, [r8], #-1383 + 6a3c: 635f7557 cmpvs pc, #364904448 ; 0x15c00000 + 6a40: 67090000 strvs r0, [r9, -r0] + 6a44: 656d6954 strbvs r6, [sp, #-2388]! + 6a48: 5f755772 svcpl 0x00755772 + 6a4c: 09010063 stmdbeq r1, {r0, r1, r5, r6} + 6a50: 63745267 cmnvs r4, #1879048198 ; 0x70000006 + 6a54: 635f7557 cmpvs pc, #364904448 ; 0x15c00000 + 6a58: 08000200 stmdaeq r0, {r9} + 6a5c: 00000160 andeq r0, r0, r0, ror #2 + 6a60: 636f6c63 cmnvs pc, #25344 ; 0x6300 + 6a64: 6f635f6b svcvs 0x00635f6b + 6a68: 6769666e strbvs r6, [r9, -lr, ror #12]! + 6a6c: 6761745f undefined + 6a70: 67090100 strvs r0, [r9, -r0, lsl #2] + 6a74: 656d6954 strbvs r6, [sp, #-2388]! + 6a78: 6b615772 blvs 185c848 + 6a7c: 5f707565 svcpl 0x00707565 + 6a80: 09000063 stmdbeq r0, {r0, r1, r5, r6} + 6a84: 43545267 cmpmi r4, #1879048198 ; 0x70000006 + 6a88: 656b6157 strbvs r6, [fp, #-343]! + 6a8c: 635f7075 cmpvs pc, #117 ; 0x75 + 6a90: 67090100 strvs r0, [r9, -r0, lsl #2] + 6a94: 4e78614d rpwmiem f6, f0, #5.0 + 6a98: 6c436d75 mcrrvs 13, 7, r6, r3, cr5 + 6a9c: 5f6b636f svcpl 0x006b636f + 6aa0: 00020063 andeq r0, r2, r3, rrx + 6aa4: 0002db0b andeq sp, r2, fp, lsl #22 + 6aa8: 130c0400 movwne r0, #50176 ; 0xc400 + 6aac: 000004a9 andeq r0, r0, r9, lsr #9 + 6ab0: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6ab4: 45755734 ldrbmi r5, [r5, #-1844]! + 6ab8: 2302006e movwcs r0, #8302 ; 0x206e + 6abc: 1f010400 svcne 0x00010400 + 6ac0: 04a9130c strteq r1, [r9], #780 + 6ac4: 6b010000 blvs 46acc + 6ac8: 57356962 ldrpl r6, [r5, -r2, ror #18]! + 6acc: 006e4575 rsbeq r4, lr, r5, ror r5 + 6ad0: 04002302 streq r2, [r0], #-770 + 6ad4: 130c1e01 movwne r1, #52737 ; 0xce01 + 6ad8: 000004a9 andeq r0, r0, r9, lsr #9 + 6adc: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6ae0: 45755736 ldrbmi r5, [r5, #-1846]! + 6ae4: 2302006e movwcs r0, #8302 ; 0x206e + 6ae8: 1d010400 cfstrsne mvf0, [r1] + 6aec: 04a9130c strteq r1, [r9], #780 + 6af0: 6b010000 blvs 46af8 + 6af4: 57376962 ldrpl r6, [r7, -r2, ror #18]! + 6af8: 006e4575 rsbeq r4, lr, r5, ror r5 + 6afc: 04002302 streq r2, [r0], #-770 + 6b00: 130c1c01 movwne r1, #52225 ; 0xcc01 + 6b04: 000004a9 andeq r0, r0, r9, lsr #9 + 6b08: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6b0c: 45755734 ldrbmi r5, [r5, #-1844]! + 6b10: 746e6576 strbtvc r6, [lr], #-1398 + 6b14: 00230200 eoreq r0, r3, r0, lsl #4 + 6b18: 0c1b0104 ldfeqs f0, [fp], {4} + 6b1c: 0004a913 andeq sl, r4, r3, lsl r9 + 6b20: 626b0100 rsbvs r0, fp, #0 ; 0x0 + 6b24: 75573569 ldrbvc r3, [r7, #-1385] + 6b28: 6e657645 cdpvs 6, 6, cr7, cr5, cr5, {2} + 6b2c: 23020074 movwcs r0, #8308 ; 0x2074 + 6b30: 1a010400 bne 47b38 + 6b34: 04a9130c strteq r1, [r9], #780 + 6b38: 6b010000 blvs 46b40 + 6b3c: 57366962 ldrpl r6, [r6, -r2, ror #18]! + 6b40: 65764575 ldrbvs r4, [r6, #-1397]! + 6b44: 0200746e andeq r7, r0, #1845493760 ; 0x6e000000 + 6b48: 01040023 tsteq r4, r3, lsr #32 + 6b4c: a9130c19 ldmdbge r3, {r0, r3, r4, sl, fp} + 6b50: 01000004 tsteq r0, r4 + 6b54: 3769626b strbcc r6, [r9, -fp, ror #4]! + 6b58: 76457557 undefined + 6b5c: 00746e65 rsbseq r6, r4, r5, ror #28 + 6b60: 04002302 streq r2, [r0], #-770 + 6b64: 130c1801 movwne r1, #51201 ; 0xc801 + 6b68: 000004a9 andeq r0, r0, r9, lsr #9 + 6b6c: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6b70: 50755734 rsbspl r5, r5, r4, lsr r7 + 6b74: 02006c6f andeq r6, r0, #28416 ; 0x6f00 + 6b78: 01040023 tsteq r4, r3, lsr #32 + 6b7c: a9130c17 ldmdbge r3, {r0, r1, r2, r4, sl, fp} + 6b80: 01000004 tsteq r0, r4 + 6b84: 3569626b strbcc r6, [r9, #-619]! + 6b88: 6f507557 svcvs 0x00507557 + 6b8c: 2302006c movwcs r0, #8300 ; 0x206c + 6b90: 16010400 strne r0, [r1], -r0, lsl #8 + 6b94: 04a9130c strteq r1, [r9], #780 + 6b98: 6b010000 blvs 46ba0 + 6b9c: 57366962 ldrpl r6, [r6, -r2, ror #18]! + 6ba0: 6c6f5075 stclvs 0, cr5, [pc], #-468 + 6ba4: 00230200 eoreq r0, r3, r0, lsl #4 + 6ba8: 0c150104 ldfeqs f0, [r5], {4} + 6bac: 0004a913 andeq sl, r4, r3, lsl r9 + 6bb0: 626b0100 rsbvs r0, fp, #0 ; 0x0 + 6bb4: 75573769 ldrbvc r3, [r7, #-1897] + 6bb8: 006c6f50 rsbeq r6, ip, r0, asr pc + 6bbc: 04002302 streq r2, [r0], #-770 + 6bc0: 130c1401 movwne r1, #50177 ; 0xc401 + 6bc4: 000004a9 andeq r0, r0, r9, lsr #9 + 6bc8: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6bcc: 746e4934 strbtvc r4, [lr], #-2356 + 6bd0: 02006e45 andeq r6, r0, #1104 ; 0x450 + 6bd4: 01040023 tsteq r4, r3, lsr #32 + 6bd8: a9130c13 ldmdbge r3, {r0, r1, r4, sl, fp} + 6bdc: 01000004 tsteq r0, r4 + 6be0: 3569626b strbcc r6, [r9, #-619]! + 6be4: 45746e49 ldrbmi r6, [r4, #-3657]! + 6be8: 2302006e movwcs r0, #8302 ; 0x206e + 6bec: 12010400 andne r0, r1, #0 ; 0x0 + 6bf0: 04a9130c strteq r1, [r9], #780 + 6bf4: 6b010000 blvs 46bfc + 6bf8: 49366962 ldmdbmi r6!, {r1, r5, r6, r8, fp, sp, lr} + 6bfc: 6e45746e cdpvs 4, 4, cr7, cr5, cr14, {3} + 6c00: 00230200 eoreq r0, r3, r0, lsl #4 + 6c04: 0c110104 ldfeqs f0, [r1], {4} + 6c08: 0004a913 andeq sl, r4, r3, lsl r9 + 6c0c: 626b0100 rsbvs r0, fp, #0 ; 0x0 + 6c10: 6e493769 cdpvs 7, 4, cr3, cr9, cr9, {3} + 6c14: 006e4574 rsbeq r4, lr, r4, ror r5 + 6c18: 04002302 streq r2, [r0], #-770 + 6c1c: 0b001001 bleq ac28 + 6c20: 0000033b andeq r0, r0, fp, lsr r3 + 6c24: a9130c04 ldmdbge r3, {r2, sl, fp} + 6c28: 01000004 tsteq r0, r4 + 6c2c: 5769626b strbpl r6, [r9, -fp, ror #4]! + 6c30: 006e4575 rsbeq r4, lr, r5, ror r5 + 6c34: 04002302 streq r2, [r0], #-770 + 6c38: 130c1c04 movwne r1, #52228 ; 0xcc04 + 6c3c: 000004a9 andeq r0, r0, r9, lsr #9 + 6c40: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6c44: 76457557 undefined + 6c48: 00746e65 rsbseq r6, r4, r5, ror #28 + 6c4c: 04002302 streq r2, [r0], #-770 + 6c50: 130c1804 movwne r1, #51204 ; 0xc804 + 6c54: 000004a9 andeq r0, r0, r9, lsr #9 + 6c58: 69626b01 stmdbvs r2!, {r0, r8, r9, fp, sp, lr}^ + 6c5c: 6f507557 svcvs 0x00507557 + 6c60: 2302006c movwcs r0, #8300 ; 0x206c + 6c64: 14040400 strne r0, [r4], #-1024 + 6c68: 04a9130c strteq r1, [r9], #780 + 6c6c: 6b010000 blvs 46c74 + 6c70: 6e496962 cdpvs 9, 4, cr6, cr9, cr2, {3} + 6c74: 006e4574 rsbeq r4, lr, r4, ror r5 + 6c78: 04002302 streq r2, [r0], #-770 + 6c7c: 0b001004 bleq ac94 + 6c80: 00000385 andeq r0, r0, r5, lsl #7 + 6c84: a9130c08 ldmdbge r3, {r3, sl, fp} + 6c88: 01000004 tsteq r0, r4 + 6c8c: 656d6974 strbvs r6, [sp, #-2420]! + 6c90: 45755772 ldrbmi r5, [r5, #-1906]! + 6c94: 2302006e movwcs r0, #8302 ; 0x206e + 6c98: 1f010400 svcne 0x00010400 + 6c9c: 04a9130c strteq r1, [r9], #780 + 6ca0: 74010000 strvc r0, [r1] + 6ca4: 72656d69 rsbvc r6, r5, #6720 ; 0x1a40 + 6ca8: 6e497557 mcrvs 5, 2, r7, cr9, cr7, {2} + 6cac: 006e4574 rsbeq r4, lr, r4, ror r5 + 6cb0: 04002302 streq r2, [r0], #-770 + 6cb4: 130d1e01 movwne r1, #56833 ; 0xde01 + 6cb8: 000004a9 andeq r0, r0, r9, lsr #9 + 6cbc: 6d697401 cfstrdvs mvd7, [r9, #-4]! + 6cc0: 74754f65 ldrbtvc r4, [r5], #-3941 + 6cc4: 04230200 strteq r0, [r3], #-512 + 6cc8: 03cb0b00 biceq r0, fp, #0 ; 0x0 + 6ccc: 0c080000 stceq 0, cr0, [r8], {0} + 6cd0: 0004a913 andeq sl, r4, r3, lsl r9 + 6cd4: 74720100 ldrbtvc r0, [r2], #-256 + 6cd8: 45755763 ldrbmi r5, [r5, #-1891]! + 6cdc: 2302006e movwcs r0, #8302 ; 0x206e + 6ce0: 1f010400 svcne 0x00010400 + 6ce4: 04a9130c strteq r1, [r9], #780 + 6ce8: 72010000 andvc r0, r1, #0 ; 0x0 + 6cec: 75576374 ldrbvc r6, [r7, #-884] + 6cf0: 45746e49 ldrbmi r6, [r4, #-3657]! + 6cf4: 2302006e movwcs r0, #8302 ; 0x206e + 6cf8: 1e010400 cfcpysne mvf0, mvf1 + 6cfc: 04a9130d strteq r1, [r9], #781 + 6d00: 74010000 strvc r0, [r1] + 6d04: 4f656d69 svcmi 0x00656d69 + 6d08: 02007475 andeq r7, r0, #1962934272 ; 0x75000000 + 6d0c: 0b000423 bleq 7da0 + 6d10: 000003f4 strdeq r0, [r0], -r4 + 6d14: 6e130d0c cdpvs 13, 1, cr0, cr3, cr12, {0} + 6d18: 01000004 tsteq r0, r4 + 6d1c: 6f537577 svcvs 0x00537577 + 6d20: 65637275 strbvs r7, [r3, #-629]! + 6d24: 00230200 eoreq r0, r3, r0, lsl #4 + 6d28: 0425130d strteq r1, [r5], #-781 + 6d2c: 63010000 movwvs r0, #4096 ; 0x1000 + 6d30: 006c7274 rsbeq r7, ip, r4, ror r2 + 6d34: 00042302 andeq r2, r4, r2, lsl #6 + 6d38: 0004250e andeq r2, r4, lr, lsl #10 + 6d3c: 130d0400 movwne r0, #54272 ; 0xd400 + 6d40: 000004a9 andeq r0, r0, r9, lsr #9 + 6d44: 726f7701 rsbvc r7, pc, #262144 ; 0x40000 + 6d48: 23020064 movwcs r0, #8292 ; 0x2064 + 6d4c: e0150d00 ands r0, r5, r0, lsl #26 + 6d50: 69620102 stmdbvs r2!, {r1, r8}^ + 6d54: 23020074 movwcs r0, #8308 ; 0x2074 + 6d58: db150d00 blle 54a160 + 6d5c: 696e0105 stmdbvs lr!, {r0, r2, r8}^ + 6d60: 656c6262 strbvs r6, [ip, #-610]! + 6d64: 00230200 eoreq r0, r3, r0, lsl #4 + 6d68: 04580e00 ldrbeq r0, [r8], #-3584 + 6d6c: 0d080000 stceq 0, cr0, [r8] + 6d70: 0004fd13 andeq pc, r4, r3, lsl sp + 6d74: 78650100 stmdavc r5!, {r8}^ + 6d78: 23020074 movwcs r0, #8308 ; 0x2074 + 6d7c: b9130d00 ldmdblt r3, {r8, sl, fp} + 6d80: 01000004 tsteq r0, r4 + 6d84: 656d6974 strbvs r6, [sp, #-2420]! + 6d88: 23020072 movwcs r0, #8306 ; 0x2072 + 6d8c: d2130d00 andsle r0, r3, #0 ; 0x0 + 6d90: 01000004 tsteq r0, r4 + 6d94: 00637472 rsbeq r7, r3, r2, ror r4 + 6d98: 00002302 andeq r2, r0, r2, lsl #6 + 6d9c: 6e75460f cdpvs 6, 7, cr4, cr5, cr15, {0} + 6da0: 74655263 strbtvc r5, [r5], #-611 + 6da4: 5f6e7275 svcpl 0x006e7275 + 6da8: f6100074 undefined instruction 0xf6100074 + 6dac: 0800002a stmdaeq r0, {r1, r3, r5} + 6db0: 630f0350 movwvs r0, #62288 ; 0xf350 + 6db4: 75576d72 ldrbvc r6, [r7, #-3442] + 6db8: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 6dbc: 745f6563 ldrbvc r6, [pc], #1379 ; 6dc4 + 6dc0: 01ed1500 mvneq r1, r0, lsl #10 + 6dc4: 0302e904 movweq lr, #10500 ; 0x2904 + 6dc8: 6f6c630f svcvs 0x006c630f + 6dcc: 635f6b63 cmpvs pc, #101376 ; 0x18c00 + 6dd0: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 6dd4: 00745f67 rsbseq r5, r4, r7, ror #30 + 6dd8: 09029715 stmdbeq r2, {r0, r2, r4, r8, r9, sl, ip, pc} + 6ddc: 750f0338 strvc r0, [pc, #-824] ; 6aac + 6de0: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ + 6de4: 1500745f strne r7, [r0, #-1119] + 6de8: 1a0101dc bne 47560 + 6dec: 69750f19 ldmdbvs r5!, {r0, r3, r4, r8, r9, sl, fp}^ + 6df0: 3233746e eorscc r7, r3, #1845493760 ; 0x6e000000 + 6df4: 1500745f strne r7, [r0, #-1119] + 6df8: 1e0101cb adfnedm f0, f1, #3.0 + 6dfc: 72630f19 rsbvc r0, r3, #100 ; 0x64 + 6e00: 6d69546d cfstrdvs mvd5, [r9, #-436]! + 6e04: 75577265 ldrbvc r7, [r7, #-613] + 6e08: 6c727443 cfldrdvs mvd7, [r2], #-268 + 6e0c: 1500745f strne r7, [r0, #-1119] + 6e10: b40406bb strlt r0, [r4], #-1723 + 6e14: 630f0203 movwvs r0, #61955 ; 0xf203 + 6e18: 74526d72 ldrbvc r6, [r2], #-3442 + 6e1c: 43755763 cmnmi r5, #25952256 ; 0x18c0000 + 6e20: 5f6c7274 svcpl 0x006c7274 + 6e24: 85150074 ldrhi r0, [r5, #-116] + 6e28: 03bf0407 undefined instruction 0x03bf0407 + 6e2c: 72630f02 rsbvc r0, r3, #8 ; 0x8 + 6e30: 4375576d cmnmi r5, #28573696 ; 0x1b40000 + 6e34: 5f6c7274 svcpl 0x006c7274 + 6e38: cb150074 blgt 547010 + 6e3c: 03cd0407 biceq r0, sp, #117440512 ; 0x7000000 + 6e40: 72630f02 rsbvc r0, r3, #8 ; 0x8 + 6e44: 7478456d ldrbtvc r4, [r8], #-1389 + 6e48: 74437557 strbvc r7, [r3], #-1367 + 6e4c: 745f6c72 ldrbvc r6, [pc], #3186 ; 6e54 + 6e50: 07f41500 ldrbeq r1, [r4, r0, lsl #10]! + 6e54: 02039404 andeq r9, r3, #67108864 ; 0x4000000 + 6e58: 00000000 andeq r0, r0, r0 + 6e5c: 00000170 andeq r0, r0, r0, ror r1 + 6e60: 07ec0003 strbeq r0, [ip, r3]! + 6e64: 02040000 andeq r0, r4, #0 ; 0x0 + 6e68: 445c3a43 ldrbmi r3, [ip], #-2627 + 6e6c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6e70: 73746e65 cmnvc r4, #1616 ; 0x650 + 6e74: 646e6120 strbtvs r6, [lr], #-288 + 6e78: 74655320 strbtvc r5, [r5], #-800 + 6e7c: 676e6974 undefined + 6e80: 616d5c73 smcvs 54723 + 6e84: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6e88: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6e8c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6e90: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6e94: 775c7374 undefined + 6e98: 6f632d73 svcvs 0x00632d73 + 6e9c: 6f72746e svcvs 0x0072746e + 6ea0: 65575c6c ldrbvs r5, [r7, #-3180] + 6ea4: 65687461 strbvs r7, [r8, #-1121]! + 6ea8: 74532072 ldrbvc r2, [r3], #-114 + 6eac: 6f697461 svcvs 0x00697461 + 6eb0: 6f43206e svcvs 0x0043206e + 6eb4: 6f72746e svcvs 0x0072746e + 6eb8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6ebc: 414d535c cmpmi sp, ip, asr r3 + 6ec0: 6f535c43 svcvs 0x00535c43 + 6ec4: 65637275 strbvs r7, [r3, #-629]! + 6ec8: 6172545c cmnvs r2, ip, asr r4 + 6ecc: 6563736e strbvs r7, [r3, #-878]! + 6ed0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 6ed4: 65776f50 ldrbvs r6, [r7, #-3920]! + 6ed8: 676e4d72 undefined + 6edc: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 6ee0: 41490063 cmpmi r9, r3, rrx + 6ee4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 6ee8: 43204953 teqmi r0, #1359872 ; 0x14c000 + 6eec: 2b2b432f blcs ad7bb0 + 6ef0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 6ef4: 656c6970 strbvs r6, [ip, #-2416]! + 6ef8: 35562072 ldrbcc r2, [r6, #-114] + 6efc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 6f00: 31332e32 teqcc r3, r2, lsr lr + 6f04: 2f353932 svccs 0x00353932 + 6f08: 20323357 eorscs r3, r2, r7, asr r3 + 6f0c: 4b43494b blmi 10d9440 + 6f10: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 6f14: 6f662054 svcvs 0x00662054 + 6f18: 52412072 subpl r2, r1, #114 ; 0x72 + 6f1c: 8801004d stmdahi r1, {r0, r2, r3, r6} + 6f20: 1c004039 stcne 0, cr4, [r0], {57} + 6f24: cc00403a stcgt 0, cr4, [r0], {58} + 6f28: 33000040 movwcc r0, #64 ; 0x40 + 6f2c: 10000024 andne r0, r0, r4, lsr #32 + 6f30: 0000694f andeq r6, r0, pc, asr #18 + 6f34: 00017304 andeq r7, r1, r4, lsl #6 + 6f38: 4d4c4d00 stclmi 13, cr4, [ip] + 6f3c: 74655345 strbtvc r5, [r5], #-837 + 6f40: 656b6157 strbvs r6, [fp, #-343]! + 6f44: 6f537075 svcvs 0x00537075 + 6f48: 65637275 strbvs r7, [r3, #-629]! + 6f4c: 0e670100 poweqs f0, f7, f0 + 6f50: 6d9c1001 ldcvs 0, cr1, [ip, #4] + 6f54: 159a0000 ldrne r0, [sl] + 6f58: 39880000 stmibcc r8, {} + 6f5c: 3a1c0040 bcc 707064 + 6f60: 75050040 strvc r0, [r5, #-64] + 6f64: 646f4d38 strbtvs r4, [pc], #3384 ; 6f6c + 6f68: 67010065 strvs r0, [r1, -r5, rrx] + 6f6c: 6dde102a ldclvs 0, cr1, [lr, #168] + 6f70: 15ea0000 strbne r0, [sl]! + 6f74: 75050000 strvc r0, [r5] + 6f78: 49424b38 stmdbmi r2, {r3, r4, r5, r8, r9, fp, lr}^ + 6f7c: 006c6f50 rsbeq r6, ip, r0, asr pc + 6f80: 103a6701 eorsne r6, sl, r1, lsl #14 + 6f84: 00006dde ldrdeq r6, [r0], -lr + 6f88: 00001612 andeq r1, r0, r2, lsl r6 + 6f8c: 4b387505 blmi e243a8 + 6f90: 64454942 strbvs r4, [r5], #-2370 + 6f94: 01006567 tsteq r0, r7, ror #10 + 6f98: de104b67 fnmscdle d4, d0, d23 + 6f9c: 2f00006d svccs 0x0000006d + 6fa0: 06000016 undefined + 6fa4: 52706d74 rsbspl r6, r0, #7424 ; 0x1d00 + 6fa8: 72756574 rsbsvc r6, r5, #486539264 ; 0x1d000000 + 6fac: 6901006e stmdbvs r1, {r1, r2, r3, r5, r6} + 6fb0: 6d9c1010 ldcvs 0, cr1, [ip, #64] + 6fb4: 164c0000 strbne r0, [ip], -r0 + 6fb8: 57060000 strpl r0, [r6, -r0] + 6fbc: 72744375 rsbsvc r4, r4, #-738197503 ; 0xd4000001 + 6fc0: 6a01006c bvs 47178 + 6fc4: 6e2d100f cdpvs 0, 2, cr1, cr13, cr15, {0} + 6fc8: 169e0000 ldrne r0, [lr], r0 + 6fcc: 00000000 andeq r0, r0, r0 + 6fd0: 000005e8 andeq r0, r0, r8, ror #11 + 6fd4: 08c40003 stmiaeq r4, {r0, r1}^ + 6fd8: 01040000 tsteq r4, r0 + 6fdc: 445c3a43 ldrbmi r3, [ip], #-2627 + 6fe0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6fe4: 73746e65 cmnvc r4, #1616 ; 0x650 + 6fe8: 646e6120 strbtvs r6, [lr], #-288 + 6fec: 74655320 strbtvc r5, [r5], #-800 + 6ff0: 676e6974 undefined + 6ff4: 616d5c73 smcvs 54723 + 6ff8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6ffc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7000: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7004: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7008: 775c7374 undefined + 700c: 6f632d73 svcvs 0x00632d73 + 7010: 6f72746e svcvs 0x0072746e + 7014: 65575c6c ldrbvs r5, [r7, #-3180] + 7018: 65687461 strbvs r7, [r8, #-1121]! + 701c: 74532072 ldrbvc r2, [r3], #-114 + 7020: 6f697461 svcvs 0x00697461 + 7024: 6f43206e svcvs 0x0043206e + 7028: 6f72746e svcvs 0x0072746e + 702c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7030: 7070415c rsbsvc r4, r0, ip, asr r1 + 7034: 6163696c cmnvs r3, ip, ror #18 + 7038: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 703c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7040: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7044: 555c7365 ldrbpl r7, [ip, #-869] + 7048: 55747261 ldrbpl r7, [r4, #-609]! + 704c: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 7050: 41490063 cmpmi r9, r3, rrx + 7054: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 7058: 43204953 teqmi r0, #1359872 ; 0x14c000 + 705c: 2b2b432f blcs ad7d20 + 7060: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7064: 656c6970 strbvs r6, [ip, #-2416]! + 7068: 35562072 ldrbcc r2, [r6, #-114] + 706c: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 7070: 31332e32 teqcc r3, r2, lsr lr + 7074: 2f353932 svccs 0x00353932 + 7078: 20323357 eorscs r3, r2, r7, asr r3 + 707c: 4b43494b blmi 10d95b0 + 7080: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7084: 6f662054 svcvs 0x00662054 + 7088: 52412072 subpl r2, r1, #114 ; 0x72 + 708c: a801004d stmdage r1, {r0, r2, r3, r6} + 7090: ac000041 stcge 0, cr0, [r0], {65} + 7094: 02000001 andeq r0, r0, #1 ; 0x1 + 7098: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 709c: 64656e67 strbtvs r6, [r5], #-3687 + 70a0: 6f687320 svcvs 0x00687320 + 70a4: 02007472 andeq r7, r0, #1912602624 ; 0x72000000 + 70a8: 6e750207 cdpvs 2, 7, cr0, cr5, cr7, {0} + 70ac: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} + 70b0: 63206465 teqvs r0, #1694498816 ; 0x65000000 + 70b4: 00726168 rsbseq r6, r2, r8, ror #2 + 70b8: 13040801 movwne r0, #18433 ; 0x4801 + 70bc: 0000051e andeq r0, r0, lr, lsl r5 + 70c0: 051e1306 ldreq r1, [lr, #-774] + 70c4: 75020000 strvc r0, [r2] + 70c8: 6769736e strbvs r7, [r9, -lr, ror #6]! + 70cc: 2064656e rsbcs r6, r4, lr, ror #10 + 70d0: 676e6f6c strbvs r6, [lr, -ip, ror #30]! + 70d4: 06070400 streq r0, [r7], -r0, lsl #8 + 70d8: 00058c13 andeq r8, r5, r3, lsl ip + 70dc: 6f760200 svcvs 0x00760200 + 70e0: 00006469 andeq r6, r0, r9, ror #8 + 70e4: 98130605 ldmdals r3, {r0, r2, r9, sl} + 70e8: 06000002 streq r0, [r0], -r2 + 70ec: 0005ab13 andeq sl, r5, r3, lsl fp + 70f0: a2130600 andsge r0, r3, #0 ; 0x0 + 70f4: 07000002 streq r0, [r0, -r2] + 70f8: 00051e13 andeq r1, r5, r3, lsl lr + 70fc: a7150600 ldrge r0, [r5, -r0, lsl #12] + 7100: 68630202 stmdavs r3!, {r1, r9}^ + 7104: 01007261 tsteq r0, r1, ror #4 + 7108: 01a81208 undefined instruction 0x01a81208 + 710c: 13010000 movwne r0, #4096 ; 0x1000 + 7110: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 7114: 61655274 smcvs 21796 + 7118: 61745364 cmnvs r4, r4, ror #6 + 711c: 43737574 cmnmi r3, #486539264 ; 0x1d000000 + 7120: 6c706d6f ldclvs 13, cr6, [r0], #-444 + 7124: 5f657465 svcpl 0x00657465 + 7128: 13000063 movwne r0, #99 ; 0x63 + 712c: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 7130: 61655274 smcvs 21796 + 7134: 61745364 cmnvs r4, r4, ror #6 + 7138: 43737574 cmnmi r3, #486539264 ; 0x1d000000 + 713c: 65636e61 strbvs r6, [r3, #-3681]! + 7140: 5f64656c svcpl 0x0064656c + 7144: 13010063 movwne r0, #4195 ; 0x1063 + 7148: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 714c: 61655274 smcvs 21796 + 7150: 61745364 cmnvs r4, r4, ror #6 + 7154: 45737574 ldrbmi r7, [r3, #-1396]! + 7158: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 715c: 0200635f andeq r6, r0, #2080374785 ; 0x7c000001 + 7160: 61556713 cmpvs r5, r3, lsl r7 + 7164: 65527472 ldrbvs r7, [r2, #-1138] + 7168: 74536461 ldrbvc r6, [r3], #-1121 + 716c: 73757461 cmnvc r5, #1627389952 ; 0x61000000 + 7170: 5f78614d svcpl 0x0078614d + 7174: 00030063 andeq r0, r3, r3, rrx + 7178: 00020112 andeq r0, r2, r2, lsl r1 + 717c: 67130100 ldrvs r0, [r3, -r0, lsl #2] + 7180: 74726155 ldrbtvc r6, [r2], #-341 + 7184: 74697257 strbtvc r7, [r9], #-599 + 7188: 61745365 cmnvs r4, r5, ror #6 + 718c: 43737574 cmnmi r3, #486539264 ; 0x1d000000 + 7190: 6c706d6f ldclvs 13, cr6, [r0], #-444 + 7194: 5f657465 svcpl 0x00657465 + 7198: 13000063 movwne r0, #99 ; 0x63 + 719c: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 71a0: 69725774 ldmdbvs r2!, {r2, r4, r5, r6, r8, r9, sl, ip, lr}^ + 71a4: 74536574 ldrbvc r6, [r3], #-1396 + 71a8: 73757461 cmnvc r5, #1627389952 ; 0x61000000 + 71ac: 636e6143 cmnvs lr, #-1073741808 ; 0xc0000010 + 71b0: 64656c65 strbtvs r6, [r5], #-3173 + 71b4: 0100635f tsteq r0, pc, asr r3 + 71b8: 61556713 cmpvs r5, r3, lsl r7 + 71bc: 72577472 subsvc r7, r7, #1912602624 ; 0x72000000 + 71c0: 53657469 cmnpl r5, #1761607680 ; 0x69000000 + 71c4: 75746174 ldrbvc r6, [r4, #-372]! + 71c8: 78614d73 stmdavc r1!, {r0, r1, r4, r5, r6, r8, sl, fp, lr}^ + 71cc: 0200635f andeq r6, r0, #2080374785 ; 0x7c000001 + 71d0: 02561200 subseq r1, r6, #0 ; 0x0 + 71d4: 13010000 movwne r0, #4096 ; 0x1000 + 71d8: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 71dc: 72615074 rsbvc r5, r1, #116 ; 0x74 + 71e0: 4e797469 cdpmi 4, 7, cr7, cr9, cr9, {3} + 71e4: 5f656e6f svcpl 0x00656e6f + 71e8: 13000063 movwne r0, #99 ; 0x63 + 71ec: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 71f0: 72615074 rsbvc r5, r1, #116 ; 0x74 + 71f4: 45797469 ldrbmi r7, [r9, #-1129]! + 71f8: 5f6e6576 svcpl 0x006e6576 + 71fc: 13010063 movwne r0, #4195 ; 0x1063 + 7200: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 7204: 72615074 rsbvc r5, r1, #116 ; 0x74 + 7208: 4f797469 svcmi 0x00797469 + 720c: 635f6464 cmpvs pc, #1677721600 ; 0x64000000 + 7210: 67130200 ldrvs r0, [r3, -r0, lsl #4] + 7214: 74726155 ldrbtvc r6, [r2], #-341 + 7218: 69726150 ldmdbvs r2!, {r4, r6, r8, sp, lr}^ + 721c: 614d7974 cmpvs sp, r4, ror r9 + 7220: 00635f78 rsbeq r5, r3, r8, ror pc + 7224: 98120003 ldmdals r2, {r0, r1} + 7228: 01000002 tsteq r0, r2 + 722c: 61556713 cmpvs r5, r3, lsl r7 + 7230: 74537472 ldrbvc r7, [r3], #-1138 + 7234: 6942706f stmdbvs r2, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ + 7238: 5f317374 svcpl 0x00317374 + 723c: 13000063 movwne r0, #99 ; 0x63 + 7240: 72615567 rsbvc r5, r1, #432013312 ; 0x19c00000 + 7244: 6f745374 svcvs 0x00745374 + 7248: 74694270 strbtvc r4, [r9], #-624 + 724c: 635f3273 cmpvs pc, #805306375 ; 0x30000007 + 7250: 67130100 ldrvs r0, [r3, -r0, lsl #2] + 7254: 74726155 ldrbtvc r6, [r2], #-341 + 7258: 706f7453 rsbvc r7, pc, r3, asr r4 + 725c: 73746942 cmnvc r4, #1081344 ; 0x108000 + 7260: 5f78614d svcpl 0x0078614d + 7264: 00020063 andeq r0, r2, r3, rrx + 7268: 0002a214 andeq sl, r2, r4, lsl r2 + 726c: 87151500 ldrhi r1, [r5, -r0, lsl #10] + 7270: ac140002 ldcge 0, cr0, [r4], {2} + 7274: 15000002 strne r0, [r0, #-2] + 7278: 00029b15 andeq r9, r2, r5, lsl fp + 727c: 0002b916 andeq fp, r2, r6, lsl r9 + 7280: 051e1300 ldreq r1, [lr, #-768] + 7284: 00170000 andseq r0, r7, r0 + 7288: 02c61600 sbceq r1, r6, #0 ; 0x0 + 728c: 1e130000 wxorne wr0, wr3, wr0 + 7290: 17000005 strne r0, [r0, -r5] + 7294: d3160002 tstle r6, #2 ; 0x2 + 7298: 13000002 movwne r0, #2 ; 0x2 + 729c: 0000051e andeq r0, r0, lr, lsl r5 + 72a0: 18000517 stmdane r0, {r0, r1, r2, r4, r8, sl} + 72a4: 0000035a andeq r0, r0, sl, asr r3 + 72a8: 4b131908 blmi 4cd6d0 + 72ac: 01000005 tsteq r0, r5 + 72b0: 74726155 ldrbtvc r6, [r2], #-341 + 72b4: 64756142 ldrbtvs r6, [r5], #-322 + 72b8: 65746172 ldrbvs r6, [r4, #-370]! + 72bc: 00230200 eoreq r0, r3, r0, lsl #4 + 72c0: 04f01319 ldrbteq r1, [r0], #793 + 72c4: 55010000 strpl r0, [r1] + 72c8: 50747261 rsbspl r7, r4, r1, ror #4 + 72cc: 74697261 strbtvc r7, [r9], #-609 + 72d0: 23020079 movwcs r0, #8313 ; 0x2079 + 72d4: 08131904 ldmdaeq r3, {r2, r8, fp, ip} + 72d8: 01000005 tsteq r0, r5 + 72dc: 74726155 ldrbtvc r6, [r2], #-341 + 72e0: 706f7453 rsbvc r7, pc, r3, asr r4 + 72e4: 73746942 cmnvc r4, #1081344 ; 0x108000 + 72e8: 05230200 streq r0, [r3, #-512]! + 72ec: 052d1319 streq r1, [sp, #-793]! + 72f0: 55010000 strpl r0, [r1] + 72f4: 46747261 ldrbtmi r7, [r4], -r1, ror #4 + 72f8: 43776f6c cmnmi r7, #432 ; 0x1b0 + 72fc: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 7300: 6e456c6f cdpvs 12, 4, cr6, cr5, cr15, {3} + 7304: 656c6261 strbvs r6, [ip, #-609]! + 7308: 23020064 movwcs r0, #8292 ; 0x2064 + 730c: 2d131906 ldccs 9, cr1, [r3, #-24] + 7310: 01000005 tsteq r0, r5 + 7314: 74726155 ldrbtvc r6, [r2], #-341 + 7318: 41535452 cmpmi r3, r2, asr r4 + 731c: 76697463 strbtvc r7, [r9], -r3, ror #8 + 7320: 67694865 strbvs r4, [r9, -r5, ror #16]! + 7324: 23020068 movwcs r0, #8296 ; 0x2068 + 7328: f1180007 undefined instruction 0xf1180007 + 732c: 04000003 streq r0, [r0], #-3 + 7330: 054b131a strbeq r1, [fp, #-794] + 7334: 55010000 strpl r0, [r1] + 7338: 52747261 rsbspl r7, r4, #268435462 ; 0x10000006 + 733c: 4f646165 svcmi 0x00646165 + 7340: 72726576 rsbsvc r6, r2, #494927872 ; 0x1d800000 + 7344: 72456e75 subvc r6, r5, #1872 ; 0x750 + 7348: 00726f72 rsbseq r6, r2, r2, ror pc + 734c: 04002302 streq r2, [r0], #-770 + 7350: 131a1f01 tstne sl, #4 ; 0x4 + 7354: 0000054b andeq r0, r0, fp, asr #10 + 7358: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 + 735c: 72615074 rsbvc r5, r1, #116 ; 0x74 + 7360: 45797469 ldrbmi r7, [r9, #-1129]! + 7364: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 7368: 00230200 eoreq r0, r3, r0, lsl #4 + 736c: 1a1e0104 bne 787784 + 7370: 00054b13 andeq r4, r5, r3, lsl fp + 7374: 61550100 cmpvs r5, r0, lsl #2 + 7378: 72467472 subvc r7, r6, #1912602624 ; 0x72000000 + 737c: 45656d61 strbmi r6, [r5, #-3425]! + 7380: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 7384: 00230200 eoreq r0, r3, r0, lsl #4 + 7388: 1a1d0104 bne 7477a0 + 738c: 00054b13 andeq r4, r5, r3, lsl fp + 7390: 61550100 cmpvs r5, r0, lsl #2 + 7394: 74537472 ldrbvc r7, [r3], #-1138 + 7398: 42747261 rsbsmi r7, r4, #268435462 ; 0x10000006 + 739c: 72457469 subvc r7, r5, #1761607680 ; 0x69000000 + 73a0: 00726f72 rsbseq r6, r2, r2, ror pc + 73a4: 04002302 streq r2, [r0], #-770 + 73a8: 131a1c01 tstne sl, #256 ; 0x100 + 73ac: 0000054b andeq r0, r0, fp, asr #10 + 73b0: 73655201 cmnvc r5, #268435456 ; 0x10000000 + 73b4: 65767265 ldrbvs r7, [r6, #-613]! + 73b8: 23020064 movwcs r0, #8292 ; 0x2064 + 73bc: 18040400 stmdane r4, {sl} + 73c0: 04471800 strbeq r1, [r7], #-2048 + 73c4: 19080000 stmdbne r8, {} + 73c8: 0004bf13 andeq fp, r4, r3, lsl pc + 73cc: 61550100 cmpvs r5, r0, lsl #2 + 73d0: 74537472 ldrbvc r7, [r3], #-1138 + 73d4: 73757461 cmnvc r5, #1627389952 ; 0x61000000 + 73d8: 00230200 eoreq r0, r3, r0, lsl #4 + 73dc: 053b1319 ldreq r1, [fp, #-793]! + 73e0: 55010000 strpl r0, [r1] + 73e4: 4e747261 cdpmi 2, 7, cr7, cr4, cr1, {3} + 73e8: 65626d75 strbvs r6, [r2, #-3445]! + 73ec: 74794272 ldrbtvc r4, [r9], #-626 + 73f0: 65527365 ldrbvs r7, [r2, #-869] + 73f4: 76696563 strbtvc r6, [r9], -r3, ror #10 + 73f8: 02006465 andeq r6, r0, #1694498816 ; 0x65000000 + 73fc: 13190223 tstne r9, #805306370 ; 0x30000002 + 7400: 0000056f andeq r0, r0, pc, ror #10 + 7404: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 + 7408: 61655274 smcvs 21796 + 740c: 72724564 rsbsvc r4, r2, #419430400 ; 0x19000000 + 7410: 0200726f andeq r7, r0, #-268435450 ; 0xf0000006 + 7414: 18000423 stmdane r0, {r0, r1, r5, sl} + 7418: 00000481 andeq r0, r0, r1, lsl #9 + 741c: d7131904 ldrle r1, [r3, -r4, lsl #18] + 7420: 01000004 tsteq r0, r4 + 7424: 74726155 ldrbtvc r6, [r2], #-341 + 7428: 74617453 strbtvc r7, [r1], #-1107 + 742c: 02007375 andeq r7, r0, #-738197503 ; 0xd4000001 + 7430: 13190023 tstne r9, #35 ; 0x23 + 7434: 0000053b andeq r0, r0, fp, lsr r5 + 7438: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 + 743c: 6d754e74 ldclvs 14, cr4, [r5, #-464]! + 7440: 42726562 rsbsmi r6, r2, #411041792 ; 0x18800000 + 7444: 73657479 cmnvc r5, #2030043136 ; 0x79000000 + 7448: 746e6553 strbtvc r6, [lr], #-1363 + 744c: 02230200 eoreq r0, r3, #0 ; 0x0 + 7450: 04bf1800 ldrteq r1, [pc], #2048 ; 7458 + 7454: 19080000 stmdbne r8, {} + 7458: 01029515 tsteq r2, r5, lsl r5 + 745c: 61556670 cmpvs r5, r0, ror r6 + 7460: 65527472 ldrbvs r7, [r2, #-1138] + 7464: 61436461 cmpvs r3, r1, ror #8 + 7468: 61626c6c cmnvs r2, ip, ror #24 + 746c: 02006b63 andeq r6, r0, #101376 ; 0x18c00 + 7470: 15190023 ldrne r0, [r9, #-35] + 7474: 700102a1 andvc r0, r1, r1, lsr #5 + 7478: 72615566 rsbvc r5, r1, #427819008 ; 0x19800000 + 747c: 69725774 ldmdbvs r2!, {r2, r4, r5, r6, r8, r9, sl, ip, lr}^ + 7480: 61436574 cmpvs r3, r4, ror r5 + 7484: 61626c6c cmnvs r2, ip, ror #24 + 7488: 02006b63 andeq r6, r0, #101376 ; 0x18c00 + 748c: 1b000423 blne 8520 + 7490: 74726155 ldrbtvc r6, [r2], #-341 + 7494: 64616552 strbtvs r6, [r1], #-1362 + 7498: 74617453 strbtvc r7, [r1], #-1107 + 749c: 745f7375 ldrbvc r7, [pc], #885 ; 74a4 + 74a0: 02b91500 adcseq r1, r9, #0 ; 0x0 + 74a4: 1b035c09 blne de4d0 + 74a8: 74726155 ldrbtvc r6, [r2], #-341 + 74ac: 74697257 strbtvc r7, [r9], #-599 + 74b0: 61745365 cmnvs r4, r5, ror #6 + 74b4: 5f737574 svcpl 0x00737574 + 74b8: a8150074 ldmdage r5, {r2, r4, r5, r6} + 74bc: 03630903 cmneq r3, #49152 ; 0xc000 + 74c0: 7261551b rsbvc r5, r1, #113246208 ; 0x6c00000 + 74c4: 72615074 rsbvc r5, r1, #116 ; 0x74 + 74c8: 4d797469 cfldrdmi mvd7, [r9, #-420]! + 74cc: 5f65646f svcpl 0x0065646f + 74d0: 81150074 tsthi r5, r4, ror r0 + 74d4: 036b0904 cmneq fp, #65536 ; 0x10000 + 74d8: 7261551b rsbvc r5, r1, #113246208 ; 0x6c00000 + 74dc: 6f745374 svcvs 0x00745374 + 74e0: 74694270 strbtvc r4, [r9], #-624 + 74e4: 00745f73 rsbseq r5, r4, r3, ror pc + 74e8: 0904d615 stmdbeq r4, {r0, r2, r4, r9, sl, ip, lr, pc} + 74ec: 751b0372 ldrvc r0, [fp, #-882] + 74f0: 38746e69 ldmdacc r4!, {r0, r3, r5, r6, r9, sl, fp, sp, lr}^ + 74f4: 1500745f strne r7, [r0, #-1119] + 74f8: 1a0301d9 bne c7c64 + 74fc: 6f621b19 svcvs 0x00621b19 + 7500: 745f6c6f ldrbvc r6, [pc], #3183 ; 7508 + 7504: 0a9e1500 beq fe78c90c + 7508: 1b132c03 blne 4d251c + 750c: 746e6975 strbtvc r6, [lr], #-2421 + 7510: 745f3631 ldrbvc r3, [pc], #1585 ; 7518 + 7514: 01c71500 biceq r1, r7, r0, lsl #10 + 7518: 1b191c03 blne 64e52c + 751c: 746e6975 strbtvc r6, [lr], #-2421 + 7520: 745f3233 ldrbvc r3, [pc], #563 ; 7528 + 7524: 01f61500 mvnseq r1, r0, lsl #10 + 7528: 1b191e03 blne 64ed3c + 752c: 74726155 ldrbtvc r6, [r2], #-341 + 7530: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 7534: 745f6769 ldrbvc r6, [pc], #1897 ; 753c + 7538: 05d31500 ldrbeq r1, [r3, #1280] + 753c: 1b037b09 blne e6168 + 7540: 74726155 ldrbtvc r6, [r2], #-341 + 7544: 64616552 strbtvs r6, [r1], #-1362 + 7548: 6f727245 svcvs 0x00727245 + 754c: 616c4672 smcvs 50274 + 7550: 745f7367 ldrbvc r7, [pc], #871 ; 7558 + 7554: 06da1500 ldrbeq r1, [sl], r0, lsl #10 + 7558: 03018409 movweq r8, #5129 ; 0x1409 + 755c: 7261551b rsbvc r5, r1, #113246208 ; 0x6c00000 + 7560: 61655274 smcvs 21796 + 7564: 6c614364 stclvs 3, cr4, [r1], #-400 + 7568: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 756c: 6772416b ldrbvs r4, [r2, -fp, ror #2]! + 7570: 00745f73 rsbseq r5, r4, r3, ror pc + 7574: 0907f115 stmdbeq r7, {r0, r2, r4, r8, ip, sp, lr, pc} + 7578: 1b03018c blne c7bb0 + 757c: 74726155 ldrbtvc r6, [r2], #-341 + 7580: 74697257 strbtvc r7, [r9], #-599 + 7584: 6c614365 stclvs 3, cr4, [r1], #-404 + 7588: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 758c: 6772416b ldrbvs r4, [r2, -fp, ror #2]! + 7590: 00745f73 rsbseq r5, r4, r3, ror pc + 7594: 0908c715 stmdbeq r8, {r0, r2, r4, r8, r9, sl, lr, pc} + 7598: 1b030192 blne c7be8 + 759c: 74726155 ldrbtvc r6, [r2], #-341 + 75a0: 6c6c6143 stfvse f6, [ip], #-268 + 75a4: 6b636162 blvs 18dfb34 + 75a8: 636e7546 cmnvs lr, #293601280 ; 0x11800000 + 75ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 75b0: 00745f73 rsbseq r5, r4, r3, ror pc + 75b4: 09098115 stmdbeq r9, {r0, r2, r4, r8, pc} + 75b8: 00030198 muleq r3, r8, r1 + 75bc: 00000124 andeq r0, r0, r4, lsr #2 + 75c0: 08c40003 stmiaeq r4, {r0, r1}^ + 75c4: 01040000 tsteq r4, r0 + 75c8: 445c3a43 ldrbmi r3, [ip], #-2627 + 75cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 75d0: 73746e65 cmnvc r4, #1616 ; 0x650 + 75d4: 646e6120 strbtvs r6, [lr], #-288 + 75d8: 74655320 strbtvc r5, [r5], #-800 + 75dc: 676e6974 undefined + 75e0: 616d5c73 smcvs 54723 + 75e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 75e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 75ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 75f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 75f4: 775c7374 undefined + 75f8: 6f632d73 svcvs 0x00632d73 + 75fc: 6f72746e svcvs 0x0072746e + 7600: 65575c6c ldrbvs r5, [r7, #-3180] + 7604: 65687461 strbvs r7, [r8, #-1121]! + 7608: 74532072 ldrbvc r2, [r3], #-114 + 760c: 6f697461 svcvs 0x00697461 + 7610: 6f43206e svcvs 0x0043206e + 7614: 6f72746e svcvs 0x0072746e + 7618: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 761c: 7070415c rsbsvc r4, r0, ip, asr r1 + 7620: 6163696c cmnvs r3, ip, ror #18 + 7624: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7628: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 762c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7630: 555c7365 ldrbpl r7, [ip, #-869] + 7634: 55747261 ldrbpl r7, [r4, #-609]! + 7638: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 763c: 41490063 cmpmi r9, r3, rrx + 7640: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 7644: 43204953 teqmi r0, #1359872 ; 0x14c000 + 7648: 2b2b432f blcs ad830c + 764c: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7650: 656c6970 strbvs r6, [ip, #-2416]! + 7654: 35562072 ldrbcc r2, [r6, #-114] + 7658: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 765c: 31332e32 teqcc r3, r2, lsr lr + 7660: 2f353932 svccs 0x00353932 + 7664: 20323357 eorscs r3, r2, r7, asr r3 + 7668: 4b43494b blmi 10d9b9c + 766c: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7670: 6f662054 svcvs 0x00662054 + 7674: 52412072 subpl r2, r1, #114 ; 0x72 + 7678: a801004d stmdage r1, {r0, r2, r3, r6} + 767c: ac000041 stcge 0, cr0, [r0], {65} + 7680: 03000001 movweq r0, #1 ; 0x1 + 7684: 36317567 ldrtcc r7, [r1], -r7, ror #10 + 7688: 4e494353 mcrmi 3, 2, r4, cr9, cr3, {2} + 768c: 664f6d75 undefined + 7690: 65747942 ldrbvs r7, [r4, #-2370]! + 7694: 0b100073 bleq 407868 + 7698: 01000075 tsteq r0, r5, ror r0 + 769c: 05010a3b streq r0, [r1, #-2619] + 76a0: 4052a603 subsmi sl, r2, r3, lsl #12 + 76a4: 75670300 strbvc r0, [r7, #-768]! + 76a8: 49435338 stmdbmi r3, {r3, r4, r5, r8, r9, ip, lr}^ + 76ac: 61746144 cmnvs r4, r4, asr #2 + 76b0: 67616c46 strbvs r6, [r1, -r6, asr #24]! + 76b4: 70ba1000 adcsvc r1, sl, r0 + 76b8: 3a010000 bcc 476c0 + 76bc: 03050112 movweq r0, #20754 ; 0x5112 + 76c0: 004052a5 subeq r5, r0, r5, lsr #5 + 76c4: 38756703 ldmdacc r5!, {r0, r1, r8, r9, sl, sp, lr}^ + 76c8: 53494353 movtpl r4, #37715 ; 0x9353 + 76cc: 75746174 ldrbvc r6, [r4, #-372]! + 76d0: 8f100073 svchi 0x00100073 + 76d4: 01000074 tsteq r0, r4, ror r0 + 76d8: 05011239 streq r1, [r1, #-569] + 76dc: 4052a403 subsmi sl, r2, r3, lsl #8 + 76e0: 00000000 andeq r0, r0, r0 + 76e4: 00000138 andeq r0, r0, r8, lsr r1 + 76e8: 08c40003 stmiaeq r4, {r0, r1}^ + 76ec: 05040000 streq r0, [r4] + 76f0: 445c3a43 ldrbmi r3, [ip], #-2627 + 76f4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 76f8: 73746e65 cmnvc r4, #1616 ; 0x650 + 76fc: 646e6120 strbtvs r6, [lr], #-288 + 7700: 74655320 strbtvc r5, [r5], #-800 + 7704: 676e6974 undefined + 7708: 616d5c73 smcvs 54723 + 770c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7710: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7714: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7718: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 771c: 775c7374 undefined + 7720: 6f632d73 svcvs 0x00632d73 + 7724: 6f72746e svcvs 0x0072746e + 7728: 65575c6c ldrbvs r5, [r7, #-3180] + 772c: 65687461 strbvs r7, [r8, #-1121]! + 7730: 74532072 ldrbvc r2, [r3], #-114 + 7734: 6f697461 svcvs 0x00697461 + 7738: 6f43206e svcvs 0x0043206e + 773c: 6f72746e svcvs 0x0072746e + 7740: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7744: 7070415c rsbsvc r4, r0, ip, asr r1 + 7748: 6163696c cmnvs r3, ip, ror #18 + 774c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7750: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7754: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7758: 555c7365 ldrbpl r7, [ip, #-869] + 775c: 55747261 ldrbpl r7, [r4, #-609]! + 7760: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 7764: 41490063 cmpmi r9, r3, rrx + 7768: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 776c: 43204953 teqmi r0, #1359872 ; 0x14c000 + 7770: 2b2b432f blcs ad8434 + 7774: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7778: 656c6970 strbvs r6, [ip, #-2416]! + 777c: 35562072 ldrbcc r2, [r6, #-114] + 7780: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 7784: 31332e32 teqcc r3, r2, lsr lr + 7788: 2f353932 svccs 0x00353932 + 778c: 20323357 eorscs r3, r2, r7, asr r3 + 7790: 4b43494b blmi 10d9cc4 + 7794: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7798: 6f662054 svcvs 0x00662054 + 779c: 52412072 subpl r2, r1, #114 ; 0x72 + 77a0: 8c01004d stchi 0, cr0, [r1], {77} + 77a4: 18004033 stmdane r0, {r0, r1, r4, r5, lr} + 77a8: 4c004034 stcmi 0, cr4, [r0], {52} + 77ac: df000045 svcle 0x00000045 + 77b0: 10000024 andne r0, r0, r4, lsr #32 + 77b4: 00006fdb ldrdeq r6, [r0], -fp + 77b8: 00013b08 andeq r3, r1, r8, lsl #22 + 77bc: 72615500 rsbvc r5, r1, #0 ; 0x0 + 77c0: 6e495f74 mcrvs 15, 2, r5, cr9, cr4, {3} + 77c4: 01007469 tsteq r0, r9, ror #8 + 77c8: bc010648 stclt 6, cr0, [r1], {72} + 77cc: 8c000016 stchi 0, cr0, [r0], {22} + 77d0: 18004033 stmdane r0, {r0, r1, r4, r5, lr} + 77d4: 09004034 stmdbeq r0, {r2, r4, r5, lr} + 77d8: 5241556d subpl r5, r1, #457179136 ; 0x1b400000 + 77dc: 42785254 rsbsmi r5, r8, #1073741829 ; 0x40000005 + 77e0: 65666675 strbvs r6, [r6, #-1653]! + 77e4: 48010072 stmdami r1, {r1, r4, r5, r6} + 77e8: 70c01019 sbcvc r1, r0, r9, lsl r0 + 77ec: 170c0000 strne r0, [ip, -r0] + 77f0: 700a0000 andvc r0, sl, r0 + 77f4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 77f8: 01006769 tsteq r0, r9, ror #14 + 77fc: 2b10104a blcs 40b92c + 7800: 29000075 stmdbcs r0, {r0, r2, r4, r5, r6} + 7804: 0a000017 beq 7868 + 7808: 6c614370 stclvs 3, cr4, [r1], #-448 + 780c: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 7810: 4b01006b blmi 479c4 + 7814: 759b101b ldrvc r1, [fp, #27] + 7818: 173d0000 ldrne r0, [sp, -r0]! + 781c: 00000000 andeq r0, r0, r0 + 7820: 0000010c andeq r0, r0, ip, lsl #2 + 7824: 08c40003 stmiaeq r4, {r0, r1}^ + 7828: 05040000 streq r0, [r4] + 782c: 445c3a43 ldrbmi r3, [ip], #-2627 + 7830: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7834: 73746e65 cmnvc r4, #1616 ; 0x650 + 7838: 646e6120 strbtvs r6, [lr], #-288 + 783c: 74655320 strbtvc r5, [r5], #-800 + 7840: 676e6974 undefined + 7844: 616d5c73 smcvs 54723 + 7848: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 784c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7850: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7854: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7858: 775c7374 undefined + 785c: 6f632d73 svcvs 0x00632d73 + 7860: 6f72746e svcvs 0x0072746e + 7864: 65575c6c ldrbvs r5, [r7, #-3180] + 7868: 65687461 strbvs r7, [r8, #-1121]! + 786c: 74532072 ldrbvc r2, [r3], #-114 + 7870: 6f697461 svcvs 0x00697461 + 7874: 6f43206e svcvs 0x0043206e + 7878: 6f72746e svcvs 0x0072746e + 787c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7880: 7070415c rsbsvc r4, r0, ip, asr r1 + 7884: 6163696c cmnvs r3, ip, ror #18 + 7888: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 788c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7890: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7894: 555c7365 ldrbpl r7, [ip, #-869] + 7898: 55747261 ldrbpl r7, [r4, #-609]! + 789c: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 78a0: 41490063 cmpmi r9, r3, rrx + 78a4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 78a8: 43204953 teqmi r0, #1359872 ; 0x14c000 + 78ac: 2b2b432f blcs ad8570 + 78b0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 78b4: 656c6970 strbvs r6, [ip, #-2416]! + 78b8: 35562072 ldrbcc r2, [r6, #-114] + 78bc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 78c0: 31332e32 teqcc r3, r2, lsr lr + 78c4: 2f353932 svccs 0x00353932 + 78c8: 20323357 eorscs r3, r2, r7, asr r3 + 78cc: 4b43494b blmi 10d9e00 + 78d0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 78d4: 6f662054 svcvs 0x00662054 + 78d8: 52412072 subpl r2, r1, #114 ; 0x72 + 78dc: 1801004d stmdane r1, {r0, r2, r3, r6} + 78e0: 68004034 stmdavs r0, {r2, r4, r5, lr} + 78e4: 14004034 strne r4, [r0], #-52 + 78e8: f5000046 undefined instruction 0xf5000046 + 78ec: 10000025 andne r0, r0, r5, lsr #32 + 78f0: 00006fdb ldrdeq r6, [r0], -fp + 78f4: 00010e08 andeq r0, r1, r8, lsl #28 + 78f8: 69704700 ldmdbvs r0!, {r8, r9, sl, lr}^ + 78fc: 7261556f rsbvc r5, r1, #465567744 ; 0x1bc00000 + 7900: 6e493174 mcrvs 1, 2, r3, cr9, cr4, {3} + 7904: 01007469 tsteq r0, r9, ror #8 + 7908: 010601a1 smlatbeq r6, r1, r1, r0 + 790c: 00001751 andeq r1, r0, r1, asr r7 + 7910: 00403418 subeq r3, r0, r8, lsl r4 + 7914: 00403468 subeq r3, r0, r8, ror #8 + 7918: 706d740a rsbvc r7, sp, sl, lsl #8 + 791c: 00676552 rsbeq r6, r7, r2, asr r5 + 7920: 1501a301 strne sl, [r1, #-769] + 7924: 00751b10 rsbseq r1, r5, r0, lsl fp + 7928: 00176500 andseq r6, r7, r0, lsl #10 + 792c: 00000000 andeq r0, r0, r0 + 7930: 00000108 andeq r0, r0, r8, lsl #2 + 7934: 08c40003 stmiaeq r4, {r0, r1}^ + 7938: 05040000 streq r0, [r4] + 793c: 445c3a43 ldrbmi r3, [ip], #-2627 + 7940: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7944: 73746e65 cmnvc r4, #1616 ; 0x650 + 7948: 646e6120 strbtvs r6, [lr], #-288 + 794c: 74655320 strbtvc r5, [r5], #-800 + 7950: 676e6974 undefined + 7954: 616d5c73 smcvs 54723 + 7958: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 795c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7960: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7964: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7968: 775c7374 undefined + 796c: 6f632d73 svcvs 0x00632d73 + 7970: 6f72746e svcvs 0x0072746e + 7974: 65575c6c ldrbvs r5, [r7, #-3180] + 7978: 65687461 strbvs r7, [r8, #-1121]! + 797c: 74532072 ldrbvc r2, [r3], #-114 + 7980: 6f697461 svcvs 0x00697461 + 7984: 6f43206e svcvs 0x0043206e + 7988: 6f72746e svcvs 0x0072746e + 798c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7990: 7070415c rsbsvc r4, r0, ip, asr r1 + 7994: 6163696c cmnvs r3, ip, ror #18 + 7998: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 799c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 79a0: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 79a4: 555c7365 ldrbpl r7, [ip, #-869] + 79a8: 55747261 ldrbpl r7, [r4, #-609]! + 79ac: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 79b0: 41490063 cmpmi r9, r3, rrx + 79b4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 79b8: 43204953 teqmi r0, #1359872 ; 0x14c000 + 79bc: 2b2b432f blcs ad8680 + 79c0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 79c4: 656c6970 strbvs r6, [ip, #-2416]! + 79c8: 35562072 ldrbcc r2, [r6, #-114] + 79cc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 79d0: 31332e32 teqcc r3, r2, lsr lr + 79d4: 2f353932 svccs 0x00353932 + 79d8: 20323357 eorscs r3, r2, r7, asr r3 + 79dc: 4b43494b blmi 10d9f10 + 79e0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 79e4: 6f662054 svcvs 0x00662054 + 79e8: 52412072 subpl r2, r1, #114 ; 0x72 + 79ec: 6c01004d stcvs 0, cr0, [r1], {77} + 79f0: 6e004034 mcrvs 0, 0, r4, cr0, cr4, {1} + 79f4: d0004034 andle r4, r0, r4, lsr r0 + 79f8: 5e000046 cdppl 0, 0, cr0, cr0, cr6, {2} + 79fc: 10000026 andne r0, r0, r6, lsr #32 + 7a00: 00006fdb ldrdeq r6, [r0], -fp + 7a04: 00010b08 andeq r0, r1, r8, lsl #22 + 7a08: 72615500 rsbvc r5, r1, #0 ; 0x0 + 7a0c: 65764574 ldrbvs r4, [r6, #-1396]! + 7a10: 6552746e ldrbvs r7, [r2, #-1134] + 7a14: 00316461 eorseq r6, r1, r1, ror #8 + 7a18: 0601cb01 streq ip, [r1], -r1, lsl #22 + 7a1c: 00179701 andseq r9, r7, r1, lsl #14 + 7a20: 40346c00 eorsmi r6, r4, r0, lsl #24 + 7a24: 40346e00 eorsmi r6, r4, r0, lsl #28 + 7a28: 72610b00 rsbvc r0, r1, #0 ; 0x0 + 7a2c: 01007367 tsteq r0, r7, ror #6 + 7a30: 102d01cb eorne r0, sp, fp, asr #3 + 7a34: 000070d7 ldrdeq r7, [r0], -r7 + 7a38: 00005001 andeq r5, r0, r1 + 7a3c: 0000010c andeq r0, r0, ip, lsl #2 + 7a40: 08c40003 stmiaeq r4, {r0, r1}^ + 7a44: 05040000 streq r0, [r4] + 7a48: 445c3a43 ldrbmi r3, [ip], #-2627 + 7a4c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7a50: 73746e65 cmnvc r4, #1616 ; 0x650 + 7a54: 646e6120 strbtvs r6, [lr], #-288 + 7a58: 74655320 strbtvc r5, [r5], #-800 + 7a5c: 676e6974 undefined + 7a60: 616d5c73 smcvs 54723 + 7a64: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7a68: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7a6c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7a70: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7a74: 775c7374 undefined + 7a78: 6f632d73 svcvs 0x00632d73 + 7a7c: 6f72746e svcvs 0x0072746e + 7a80: 65575c6c ldrbvs r5, [r7, #-3180] + 7a84: 65687461 strbvs r7, [r8, #-1121]! + 7a88: 74532072 ldrbvc r2, [r3], #-114 + 7a8c: 6f697461 svcvs 0x00697461 + 7a90: 6f43206e svcvs 0x0043206e + 7a94: 6f72746e svcvs 0x0072746e + 7a98: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7a9c: 7070415c rsbsvc r4, r0, ip, asr r1 + 7aa0: 6163696c cmnvs r3, ip, ror #18 + 7aa4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7aa8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7aac: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7ab0: 555c7365 ldrbpl r7, [ip, #-869] + 7ab4: 55747261 ldrbpl r7, [r4, #-609]! + 7ab8: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 7abc: 41490063 cmpmi r9, r3, rrx + 7ac0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 7ac4: 43204953 teqmi r0, #1359872 ; 0x14c000 + 7ac8: 2b2b432f blcs ad878c + 7acc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7ad0: 656c6970 strbvs r6, [ip, #-2416]! + 7ad4: 35562072 ldrbcc r2, [r6, #-114] + 7ad8: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 7adc: 31332e32 teqcc r3, r2, lsr lr + 7ae0: 2f353932 svccs 0x00353932 + 7ae4: 20323357 eorscs r3, r2, r7, asr r3 + 7ae8: 4b43494b blmi 10da01c + 7aec: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7af0: 6f662054 svcvs 0x00662054 + 7af4: 52412072 subpl r2, r1, #114 ; 0x72 + 7af8: 6e01004d cdpvs 0, 0, cr0, cr1, cr13, {2} + 7afc: 70004034 andvc r4, r0, r4, lsr r0 + 7b00: 80004034 andhi r4, r0, r4, lsr r0 + 7b04: c1000047 tstgt r0, r7, asr #32 + 7b08: 10000026 andne r0, r0, r6, lsr #32 + 7b0c: 00006fdb ldrdeq r6, [r0], -fp + 7b10: 00010e08 andeq r0, r1, r8, lsl #28 + 7b14: 72615500 rsbvc r5, r1, #0 ; 0x0 + 7b18: 65764574 ldrbvs r4, [r6, #-1396]! + 7b1c: 7257746e subsvc r7, r7, #1845493760 ; 0x6e000000 + 7b20: 31657469 cmncc r5, r9, ror #8 + 7b24: 01d70100 bicseq r0, r7, r0, lsl #2 + 7b28: 17ab0106 strne r0, [fp, r6, lsl #2]! + 7b2c: 346e0000 strbtcc r0, [lr] + 7b30: 34700040 ldrbtcc r0, [r0], #-64 + 7b34: 61090040 tstvs r9, r0, asr #32 + 7b38: 00736772 rsbseq r6, r3, r2, ror r7 + 7b3c: 2f01d701 svccs 0x0001d701 + 7b40: 0070eb10 rsbseq lr, r0, r0, lsl fp + 7b44: 0017bf00 andseq fp, r7, r0, lsl #30 + 7b48: 00000000 andeq r0, r0, r0 + 7b4c: 000000d4 ldrdeq r0, [r0], -r4 + 7b50: 08c40003 stmiaeq r4, {r0, r1}^ + 7b54: 05040000 streq r0, [r4] + 7b58: 445c3a43 ldrbmi r3, [ip], #-2627 + 7b5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7b60: 73746e65 cmnvc r4, #1616 ; 0x650 + 7b64: 646e6120 strbtvs r6, [lr], #-288 + 7b68: 74655320 strbtvc r5, [r5], #-800 + 7b6c: 676e6974 undefined + 7b70: 616d5c73 smcvs 54723 + 7b74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7b78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7b7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7b80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7b84: 775c7374 undefined + 7b88: 6f632d73 svcvs 0x00632d73 + 7b8c: 6f72746e svcvs 0x0072746e + 7b90: 65575c6c ldrbvs r5, [r7, #-3180] + 7b94: 65687461 strbvs r7, [r8, #-1121]! + 7b98: 74532072 ldrbvc r2, [r3], #-114 + 7b9c: 6f697461 svcvs 0x00697461 + 7ba0: 6f43206e svcvs 0x0043206e + 7ba4: 6f72746e svcvs 0x0072746e + 7ba8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7bac: 7070415c rsbsvc r4, r0, ip, asr r1 + 7bb0: 6163696c cmnvs r3, ip, ror #18 + 7bb4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7bb8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7bbc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7bc0: 555c7365 ldrbpl r7, [ip, #-869] + 7bc4: 55747261 ldrbpl r7, [r4, #-609]! + 7bc8: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 7bcc: 41490063 cmpmi r9, r3, rrx + 7bd0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 7bd4: 43204953 teqmi r0, #1359872 ; 0x14c000 + 7bd8: 2b2b432f blcs ad889c + 7bdc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7be0: 656c6970 strbvs r6, [ip, #-2416]! + 7be4: 35562072 ldrbcc r2, [r6, #-114] + 7be8: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 7bec: 31332e32 teqcc r3, r2, lsr lr + 7bf0: 2f353932 svccs 0x00353932 + 7bf4: 20323357 eorscs r3, r2, r7, asr r3 + 7bf8: 4b43494b blmi 10da12c + 7bfc: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7c00: 6f662054 svcvs 0x00662054 + 7c04: 52412072 subpl r2, r1, #114 ; 0x72 + 7c08: 7001004d andvc r0, r1, sp, asr #32 + 7c0c: 80004034 andhi r4, r0, r4, lsr r0 + 7c10: 2c004034 stccs 0, cr4, [r0], {52} + 7c14: 11000048 tstne r0, r8, asr #32 + 7c18: 10000027 andne r0, r0, r7, lsr #32 + 7c1c: 00006fdb ldrdeq r6, [r0], -fp + 7c20: 00000000 andeq r0, r0, r0 + 7c24: 00000160 andeq r0, r0, r0, ror #2 + 7c28: 08c40003 stmiaeq r4, {r0, r1}^ + 7c2c: 05040000 streq r0, [r4] + 7c30: 445c3a43 ldrbmi r3, [ip], #-2627 + 7c34: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7c38: 73746e65 cmnvc r4, #1616 ; 0x650 + 7c3c: 646e6120 strbtvs r6, [lr], #-288 + 7c40: 74655320 strbtvc r5, [r5], #-800 + 7c44: 676e6974 undefined + 7c48: 616d5c73 smcvs 54723 + 7c4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7c50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7c54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7c58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7c5c: 775c7374 undefined + 7c60: 6f632d73 svcvs 0x00632d73 + 7c64: 6f72746e svcvs 0x0072746e + 7c68: 65575c6c ldrbvs r5, [r7, #-3180] + 7c6c: 65687461 strbvs r7, [r8, #-1121]! + 7c70: 74532072 ldrbvc r2, [r3], #-114 + 7c74: 6f697461 svcvs 0x00697461 + 7c78: 6f43206e svcvs 0x0043206e + 7c7c: 6f72746e svcvs 0x0072746e + 7c80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7c84: 7070415c rsbsvc r4, r0, ip, asr r1 + 7c88: 6163696c cmnvs r3, ip, ror #18 + 7c8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7c90: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 7c94: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 7c98: 555c7365 ldrbpl r7, [ip, #-869] + 7c9c: 55747261 ldrbpl r7, [r4, #-609]! + 7ca0: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 7ca4: 41490063 cmpmi r9, r3, rrx + 7ca8: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 7cac: 43204953 teqmi r0, #1359872 ; 0x14c000 + 7cb0: 2b2b432f blcs ad8974 + 7cb4: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 7cb8: 656c6970 strbvs r6, [ip, #-2416]! + 7cbc: 35562072 ldrbcc r2, [r6, #-114] + 7cc0: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 7cc4: 31332e32 teqcc r3, r2, lsr lr + 7cc8: 2f353932 svccs 0x00353932 + 7ccc: 20323357 eorscs r3, r2, r7, asr r3 + 7cd0: 4b43494b blmi 10da204 + 7cd4: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 7cd8: 6f662054 svcvs 0x00662054 + 7cdc: 52412072 subpl r2, r1, #114 ; 0x72 + 7ce0: 8001004d andhi r0, r1, sp, asr #32 + 7ce4: c6004034 undefined + 7ce8: e8004034 stmda r0, {r2, r4, r5, lr} + 7cec: 94000048 strls r0, [r0], #-72 + 7cf0: 10000027 andne r0, r0, r7, lsr #32 + 7cf4: 00006fdb ldrdeq r6, [r0], -fp + 7cf8: 00016108 andeq r6, r1, r8, lsl #2 + 7cfc: 72615500 rsbvc r5, r1, #0 ; 0x0 + 7d00: 72505f74 subsvc r5, r0, #464 ; 0x1d0 + 7d04: 00746e69 rsbseq r6, r4, r9, ror #28 + 7d08: 06028b01 streq r8, [r2], -r1, lsl #22 + 7d0c: 0017c701 andseq ip, r7, r1, lsl #14 + 7d10: 40348000 eorsmi r8, r4, r0 + 7d14: 4034c600 eorsmi ip, r4, r0, lsl #12 + 7d18: 53700900 cmnpl r0, #0 ; 0x0 + 7d1c: 6e697274 mcrvs 2, 3, r7, cr9, cr4, {3} + 7d20: 8b010067 blhi 47ec4 + 7d24: c0101a02 andsgt r1, r0, r2, lsl #20 + 7d28: 17000070 smlsdxne r0, r0, r0, r0 + 7d2c: 0a000018 beq 7d94 + 7d30: 74697257 strbtvc r7, [r9], #-599 + 7d34: 66754265 ldrbtvs r4, [r5], -r5, ror #4 + 7d38: 00726566 rsbseq r6, r2, r6, ror #10 + 7d3c: 0b028d01 bleq ab148 + 7d40: 00727c10 rsbseq r7, r2, r0, lsl ip + 7d44: 00183500 andseq r3, r8, r0, lsl #10 + 7d48: 656c0a00 strbvs r0, [ip, #-2560]! + 7d4c: 6874676e ldmdavs r4!, {r1, r2, r3, r5, r6, r8, r9, sl, sp, lr}^ + 7d50: 028e0100 addeq r0, lr, #0 ; 0x0 + 7d54: 74ee100b strbtvc r1, [lr], #11 + 7d58: 18530000 ldmdane r3, {}^ + 7d5c: 750a0000 strvc r0, [sl] + 7d60: 6d695438 cfstrdvs mvd5, [r9, #-224]! + 7d64: 74756f65 ldrbtvc r6, [r5], #-3941 + 7d68: 028f0100 addeq r0, pc, #0 ; 0x0 + 7d6c: 750b100c strvc r1, [fp, #-12] + 7d70: 18700000 ldmdane r0!, {}^ + 7d74: 600c0000 andvs r0, ip, r0 + 7d78: 94000001 strls r0, [r0], #-1 + 7d7c: bc004034 stclt 0, cr4, [r0], {52} + 7d80: 00004034 andeq r4, r0, r4, lsr r0 + 7d84: 00000000 andeq r0, r0, r0 + 7d88: 00000320 andeq r0, r0, r0, lsr #6 + 7d8c: 0a300003 beq c07da0 + 7d90: 01040000 tsteq r4, r0 + 7d94: 445c3a43 ldrbmi r3, [ip], #-2627 + 7d98: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7d9c: 73746e65 cmnvc r4, #1616 ; 0x650 + 7da0: 646e6120 strbtvs r6, [lr], #-288 + 7da4: 74655320 strbtvc r5, [r5], #-800 + 7da8: 676e6974 undefined + 7dac: 616d5c73 smcvs 54723 + 7db0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7db4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7db8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7dbc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7dc0: 775c7374 undefined + 7dc4: 6f632d73 svcvs 0x00632d73 + 7dc8: 6f72746e svcvs 0x0072746e + 7dcc: 65575c6c ldrbvs r5, [r7, #-3180] + 7dd0: 65687461 strbvs r7, [r8, #-1121]! + 7dd4: 74532072 ldrbvc r2, [r3], #-114 + 7dd8: 6f697461 svcvs 0x00697461 + 7ddc: 6f43206e svcvs 0x0043206e + 7de0: 6f72746e svcvs 0x0072746e + 7de4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7de8: 414d535c cmpmi sp, ip, asr r3 + 7dec: 6f535c43 svcvs 0x00535c43 + 7df0: 65637275 strbvs r7, [r3, #-629]! + 7df4: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 7df8: 73656c65 cmnvc r5, #25856 ; 0x6500 + 7dfc: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 7e00: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 7e04: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 7e08: 52414900 subpl r4, r1, #0 ; 0x0 + 7e0c: 534e4120 movtpl r4, #57632 ; 0xe120 + 7e10: 2f432049 svccs 0x00432049 + 7e14: 202b2b43 eorcs r2, fp, r3, asr #22 + 7e18: 706d6f43 rsbvc r6, sp, r3, asr #30 + 7e1c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 7e20: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 7e24: 322e3033 eorcc r3, lr, #51 ; 0x33 + 7e28: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 7e2c: 572f3539 undefined + 7e30: 4b203233 blmi 814704 + 7e34: 534b4349 movtpl r4, #45897 ; 0xb349 + 7e38: 54524154 ldrbpl r4, [r2], #-340 + 7e3c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 7e40: 4d524120 ldfmie f4, [r2, #-128] + 7e44: 49a80100 stmibmi r8!, {r8} + 7e48: 01e40000 mvneq r0, r0 + 7e4c: 75030000 strvc r0, [r3] + 7e50: 6769736e strbvs r7, [r9, -lr, ror #6]! + 7e54: 2064656e rsbcs r6, r4, lr, ror #10 + 7e58: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 + 7e5c: 04080100 streq r0, [r8], #-256 + 7e60: 0002f913 andeq pc, r2, r3, lsl r9 + 7e64: 6f760300 svcvs 0x00760300 + 7e68: 00006469 andeq r6, r0, r9, ror #8 + 7e6c: 57130405 ldrpl r0, [r3, -r5, lsl #8] + 7e70: 04000001 streq r0, [r0], #-1 + 7e74: 0001fa13 andeq pc, r1, r3, lsl sl + 7e78: 6e750300 cdpvs 3, 7, cr0, cr5, cr0, {0} + 7e7c: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} + 7e80: 6c206465 cfstrsvs mvf6, [r0], #-404 + 7e84: 00676e6f rsbeq r6, r7, pc, ror #28 + 7e88: 13040704 movwne r0, #18180 ; 0x4704 + 7e8c: 000002a1 andeq r0, r0, r1, lsr #5 + 7e90: 736e7503 cmnvc lr, #12582912 ; 0xc00000 + 7e94: 656e6769 strbvs r6, [lr, #-1897]! + 7e98: 68732064 ldmdavs r3!, {r2, r5, r6, sp}^ + 7e9c: 0074726f rsbseq r7, r4, pc, ror #4 + 7ea0: 13040702 movwne r0, #18178 ; 0x4702 + 7ea4: 0000015d andeq r0, r0, sp, asr r1 + 7ea8: 00015708 andeq r5, r1, r8, lsl #14 + 7eac: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! + 7eb0: 7079745f rsbsvc r7, r9, pc, asr r4 + 7eb4: 61745f65 cmnvs r4, r5, ror #30 + 7eb8: 09010067 stmdbeq r1, {r0, r1, r2, r5, r6} + 7ebc: 00005854 andeq r5, r0, r4, asr r8 + 7ec0: 00585209 subseq r5, r8, r9, lsl #4 + 7ec4: 44450901 strbmi r0, [r5], #-2305 + 7ec8: 54090200 strpl r0, [r9], #-512 + 7ecc: 0903004f stmdbeq r3, {r0, r1, r2, r3, r6} + 7ed0: 5f58414d svcpl 0x0058414d + 7ed4: 5f47534d svcpl 0x0047534d + 7ed8: 45505954 ldrbmi r5, [r0, #-2388] + 7edc: 0a000400 beq 8ee4 + 7ee0: 0000015d andeq r0, r0, sp, asr r1 + 7ee4: 01690a00 cmneq r9, r0, lsl #20 + 7ee8: 130b0000 movwne r0, #45056 ; 0xb000 + 7eec: 000002a1 andeq r0, r0, r1, lsr #5 + 7ef0: 01760c00 cmneq r6, r0, lsl #24 + 7ef4: a1130000 tstge r3, r0 + 7ef8: 0d000002 stceq 0, cr0, [r0, #-8] + 7efc: 830c0000 movwhi r0, #49152 ; 0xc000 + 7f00: 13000001 movwne r0, #1 ; 0x1 + 7f04: 000002a1 andeq r0, r0, r1, lsr #5 + 7f08: 0e00010d adfeqs f0, f0, #5.0 + 7f0c: 000001b7 strheq r0, [r0], -r7 + 7f10: 63616d73 cmnvs r1, #7360 ; 0x1cc0 + 7f14: 7564705f strbvc r7, [r4, #-95]! + 7f18: 6761745f undefined + 7f1c: 150f0300 strne r0, [pc, #-768] ; 7c24 + 7f20: 720102f6 andvc r0, r1, #1610612751 ; 0x6000000f + 7f24: 72657365 rsbvc r7, r5, #-1811939327 ; 0x94000001 + 7f28: 00646576 rsbeq r6, r4, r6, ror r5 + 7f2c: 0f002302 svceq 0x00002302 + 7f30: 0102e915 tsteq r2, r5, lsl r9 + 7f34: 61443875 cmpvs r4, r5, ror r8 + 7f38: 02006174 andeq r6, r0, #29 ; 0x1d + 7f3c: 0e000223 cdpeq 2, 0, cr0, cr0, cr3, {1} + 7f40: 000001fa strdeq r0, [r0], -sl + 7f44: 5f67736d svcpl 0x0067736d + 7f48: 74617473 strbtvc r7, [r1], #-1139 + 7f4c: 745f7375 ldrbvc r7, [pc], #885 ; 7f54 + 7f50: 01006761 tsteq r0, r1, ror #14 + 7f54: 028e1310 addeq r1, lr, #1073741824 ; 0x40000000 + 7f58: 6d010000 stcvs 0, cr0, [r1] + 7f5c: 745f6773 ldrbvc r6, [pc], #1907 ; 7f64 + 7f60: 00657079 rsbeq r7, r5, r9, ror r0 + 7f64: 01002302 tsteq r0, r2, lsl #6 + 7f68: 13100503 tstne r0, #12582912 ; 0xc00000 + 7f6c: 000002a1 andeq r0, r0, r1, lsr #5 + 7f70: 67736d01 ldrbvs r6, [r3, -r1, lsl #26]! + 7f74: 6174735f cmnvs r4, pc, asr r3 + 7f78: 02006574 andeq r6, r0, #486539264 ; 0x1d000000 + 7f7c: 05010023 streq r0, [r1, #-35] + 7f80: 610e0000 tstvs lr, r0 + 7f84: 6d000002 stcvs 0, cr0, [r0, #-8] + 7f88: 61737365 cmnvs r3, r5, ror #6 + 7f8c: 745f6567 ldrbvc r6, [pc], #1383 ; 7f94 + 7f90: 10006761 andne r6, r0, r1, ror #14 + 7f94: 030c130f movweq r1, #49935 ; 0xc30f + 7f98: 75010000 strvc r0, [r1] + 7f9c: 61745338 cmnvs r4, r8, lsr r3 + 7fa0: 00737574 rsbseq r7, r3, r4, ror r5 + 7fa4: 0f002302 svceq 0x00002302 + 7fa8: 0101d715 tsteq r1, r5, lsl r7 + 7fac: 42387570 eorsmi r7, r8, #469762048 ; 0x1c000000 + 7fb0: 65666675 strbvs r6, [r6, #-1653]! + 7fb4: 23020072 movwcs r0, #8306 ; 0x2072 + 7fb8: a1130f04 tstge r3, r4, lsl #30 + 7fbc: 01000002 tsteq r0, r2 + 7fc0: 75423875 strbvc r3, [r2, #-2165] + 7fc4: 7a695366 bvc 1a5cd64 + 7fc8: 23020065 movwcs r0, #8293 ; 0x2065 + 7fcc: d0130f08 andsle r0, r3, r8, lsl #30 + 7fd0: 01000002 tsteq r0, r2 + 7fd4: 61446263 cmpvs r4, r3, ror #4 + 7fd8: 6e496174 mcrvs 1, 2, r6, cr9, cr4, {3} + 7fdc: 61636964 cmnvs r3, r4, ror #18 + 7fe0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7fe4: 0c230200 sfmeq f0, 4, [r3] + 7fe8: 75461100 strbvc r1, [r6, #-256] + 7fec: 6552636e ldrbvs r6, [r2, #-878] + 7ff0: 6e727574 mrcvs 5, 3, r7, cr2, cr4, {3} + 7ff4: 1000745f andne r7, r0, pc, asr r4 + 7ff8: 00002af6 strdeq r2, [r0], -r6 + 7ffc: 1103500b tstne r3, fp + 8000: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + 8004: 5f6c656e svcpl 0x006c656e + 8008: 5f6d756e svcpl 0x006d756e + 800c: de100074 mrcle 0, 0, r0, cr0, cr4, {3} + 8010: 0b00005b bleq 8184 + 8014: 6d110365 ldcvs 3, cr0, [r1, #-404] + 8018: 745f6773 ldrbvc r6, [pc], #1907 ; 8020 + 801c: 5f657079 svcpl 0x00657079 + 8020: a0150074 andsge r0, r5, r4, ror r0 + 8024: 01d90c02 bicseq r0, r9, r2, lsl #24 + 8028: 69751103 ldmdbvs r5!, {r0, r1, r8, ip}^ + 802c: 5f38746e svcpl 0x0038746e + 8030: c6150074 undefined + 8034: 191a0101 ldmdbne sl, {r0, r8} + 8038: 6e697511 mcrvs 5, 3, r7, cr9, cr1, {0} + 803c: 5f363174 svcpl 0x00363174 + 8040: 88150074 ldmdahi r5, {r2, r4, r5, r6} + 8044: 191c0102 ldmdbne ip, {r1, r8} + 8048: 6e697511 mcrvs 5, 3, r7, cr9, cr1, {0} + 804c: 5f323374 svcpl 0x00323374 + 8050: f1150074 undefined instruction 0xf1150074 + 8054: 191e0101 ldmdbne lr, {r0, r8} + 8058: 6c616311 stclvs 3, cr6, [r1], #-68 + 805c: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 8060: 00745f6b rsbseq r5, r4, fp, ror #30 + 8064: 0b01e515 bleq 814c0 + 8068: 76110f16 sadd16vc r0, r1, r6 + 806c: 6e616353 mcrvs 3, 3, r6, cr1, cr3, {2} + 8070: 6c6c6143 stfvse f6, [ip], #-268 + 8074: 6b636162 blvs 18e0604 + 8078: 1500745f strne r7, [r0, #-1119] + 807c: 170b029a undefined + 8080: 6d73110f ldfvse f1, [r3, #-60]! + 8084: 705f6361 subsvc r6, pc, r1, ror #6 + 8088: 745f7564 ldrbvc r7, [pc], #1380 ; 8090 + 808c: 03831500 orreq r1, r3, #0 ; 0x0 + 8090: 0301960c movweq r9, #5644 ; 0x160c + 8094: 67736d11 undefined + 8098: 6174735f cmnvs r4, pc, asr r3 + 809c: 5f737574 svcpl 0x00737574 + 80a0: b7150074 undefined + 80a4: 01df0c03 bicseq r0, pc, r3, lsl #24 + 80a8: 00000003 andeq r0, r0, r3 + 80ac: 0000010c andeq r0, r0, ip, lsl #2 + 80b0: 0a300003 beq c080c4 + 80b4: 02040000 andeq r0, r4, #0 ; 0x0 + 80b8: 445c3a43 ldrbmi r3, [ip], #-2627 + 80bc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 80c0: 73746e65 cmnvc r4, #1616 ; 0x650 + 80c4: 646e6120 strbtvs r6, [lr], #-288 + 80c8: 74655320 strbtvc r5, [r5], #-800 + 80cc: 676e6974 undefined + 80d0: 616d5c73 smcvs 54723 + 80d4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 80d8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 80dc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 80e0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 80e4: 775c7374 undefined + 80e8: 6f632d73 svcvs 0x00632d73 + 80ec: 6f72746e svcvs 0x0072746e + 80f0: 65575c6c ldrbvs r5, [r7, #-3180] + 80f4: 65687461 strbvs r7, [r8, #-1121]! + 80f8: 74532072 ldrbvc r2, [r3], #-114 + 80fc: 6f697461 svcvs 0x00697461 + 8100: 6f43206e svcvs 0x0043206e + 8104: 6f72746e svcvs 0x0072746e + 8108: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 810c: 414d535c cmpmi sp, ip, asr r3 + 8110: 6f535c43 svcvs 0x00535c43 + 8114: 65637275 strbvs r7, [r3, #-629]! + 8118: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 811c: 73656c65 cmnvc r5, #25856 ; 0x6500 + 8120: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8124: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 8128: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 812c: 52414900 subpl r4, r1, #0 ; 0x0 + 8130: 534e4120 movtpl r4, #57632 ; 0xe120 + 8134: 2f432049 svccs 0x00432049 + 8138: 202b2b43 eorcs r2, fp, r3, asr #22 + 813c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 8140: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 8144: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 8148: 322e3033 eorcc r3, lr, #51 ; 0x33 + 814c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 8150: 572f3539 undefined + 8154: 4b203233 blmi 814a28 + 8158: 534b4349 movtpl r4, #45897 ; 0xb349 + 815c: 54524154 ldrbpl r4, [r2], #-340 + 8160: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 8164: 4d524120 ldfmie f4, [r2, #-128] + 8168: 3a1c0100 bcc 708570 + 816c: 3a300040 bcc c08274 + 8170: 4e880040 cdpmi 0, 8, cr0, cr8, cr0, {2} + 8174: 28110000 ldmdacs r1, {} + 8178: 93100000 tstls r0, #0 ; 0x0 + 817c: 0500007d streq r0, [r0, #-125] + 8180: 0000010f andeq r0, r0, pc, lsl #2 + 8184: 5350434d cmppl r0, #872415233 ; 0x34000001 + 8188: 61746144 cmnvs r4, r4, asr #2 + 818c: 75716552 ldrbvc r6, [r1, #-1362]! + 8190: 00747365 rsbseq r7, r4, r5, ror #6 + 8194: 010e3b01 tsteq lr, r1, lsl #22 + 8198: 007fe910 rsbseq lr, pc, r0, lsl r9 + 819c: 00188d00 andseq r8, r8, r0, lsl #26 + 81a0: 403a1c00 eorsmi r1, sl, r0, lsl #24 + 81a4: 403a3000 eorsmi r3, sl, r0 + 81a8: 736d0600 cmnvc sp, #0 ; 0x0 + 81ac: 3b010067 blcc 48350 + 81b0: 7e73102a cdpvc 0, 7, cr1, cr3, cr10, {1} + 81b4: 18ad0000 stmiane sp!, {} + 81b8: 00000000 andeq r0, r0, r0 + 81bc: 00000128 andeq r0, r0, r8, lsr #2 + 81c0: 0a300003 beq c081d4 + 81c4: 02040000 andeq r0, r4, #0 ; 0x0 + 81c8: 445c3a43 ldrbmi r3, [ip], #-2627 + 81cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 81d0: 73746e65 cmnvc r4, #1616 ; 0x650 + 81d4: 646e6120 strbtvs r6, [lr], #-288 + 81d8: 74655320 strbtvc r5, [r5], #-800 + 81dc: 676e6974 undefined + 81e0: 616d5c73 smcvs 54723 + 81e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 81e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 81ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 81f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 81f4: 775c7374 undefined + 81f8: 6f632d73 svcvs 0x00632d73 + 81fc: 6f72746e svcvs 0x0072746e + 8200: 65575c6c ldrbvs r5, [r7, #-3180] + 8204: 65687461 strbvs r7, [r8, #-1121]! + 8208: 74532072 ldrbvc r2, [r3], #-114 + 820c: 6f697461 svcvs 0x00697461 + 8210: 6f43206e svcvs 0x0043206e + 8214: 6f72746e svcvs 0x0072746e + 8218: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 821c: 414d535c cmpmi sp, ip, asr r3 + 8220: 6f535c43 svcvs 0x00535c43 + 8224: 65637275 strbvs r7, [r3, #-629]! + 8228: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 822c: 73656c65 cmnvc r5, #25856 ; 0x6500 + 8230: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8234: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 8238: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 823c: 52414900 subpl r4, r1, #0 ; 0x0 + 8240: 534e4120 movtpl r4, #57632 ; 0xe120 + 8244: 2f432049 svccs 0x00432049 + 8248: 202b2b43 eorcs r2, fp, r3, asr #22 + 824c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 8250: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 8254: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 8258: 322e3033 eorcc r3, lr, #51 ; 0x33 + 825c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 8260: 572f3539 undefined + 8264: 4b203233 blmi 814b38 + 8268: 534b4349 movtpl r4, #45897 ; 0xb349 + 826c: 54524154 ldrbpl r4, [r2], #-340 + 8270: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 8274: 4d524120 ldfmie f4, [r2, #-128] + 8278: 3a300100 bcc c08680 + 827c: 3a4c0040 bcc 1308384 + 8280: 4f3c0040 svcmi 0x003c0040 + 8284: 287e0000 ldmdacs lr!, {}^ + 8288: 93100000 tstls r0, #0 ; 0x0 + 828c: 0500007d streq r0, [r0, #-125] + 8290: 00000129 andeq r0, r0, r9, lsr #2 + 8294: 454d4c4d strbmi r4, [sp, #-3149] + 8298: 43746553 cmnmi r4, #348127232 ; 0x14c00000 + 829c: 6e6e6168 powvsez f6, f6, #0.0 + 82a0: 65526c65 ldrbvs r6, [r2, #-3173] + 82a4: 73657571 cmnvc r5, #473956352 ; 0x1c400000 + 82a8: 49010074 stmdbmi r1, {r2, r4, r5, r6} + 82ac: e910010e ldmdb r0, {r1, r2, r3, r8} + 82b0: c000007f andgt r0, r0, pc, ror r0 + 82b4: 30000018 andcc r0, r0, r8, lsl r0 + 82b8: 4c00403a stcmi 0, cr4, [r0], {58} + 82bc: 0600403a undefined + 82c0: 68633875 stmdavs r3!, {r0, r2, r4, r5, r6, fp, ip, sp}^ + 82c4: 656e6e61 strbvs r6, [lr, #-3681]! + 82c8: 4901006c stmdbmi r1, {r2, r3, r5, r6} + 82cc: 7fff1033 svcvc 0x00ff1033 + 82d0: 18e00000 stmiane r0!, {}^ + 82d4: 28070000 stmdacs r7, {} + 82d8: 3a000001 bcc 82e4 + 82dc: 4800403a stmdami r0, {r1, r3, r4, r5, lr} + 82e0: 0000403a andeq r4, r0, sl, lsr r0 + 82e4: 00000000 andeq r0, r0, r0 + 82e8: 00000104 andeq r0, r0, r4, lsl #2 + 82ec: 0a300003 beq c08300 + 82f0: 02040000 andeq r0, r4, #0 ; 0x0 + 82f4: 445c3a43 ldrbmi r3, [ip], #-2627 + 82f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 82fc: 73746e65 cmnvc r4, #1616 ; 0x650 + 8300: 646e6120 strbtvs r6, [lr], #-288 + 8304: 74655320 strbtvc r5, [r5], #-800 + 8308: 676e6974 undefined + 830c: 616d5c73 smcvs 54723 + 8310: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8314: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8318: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 831c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8320: 775c7374 undefined + 8324: 6f632d73 svcvs 0x00632d73 + 8328: 6f72746e svcvs 0x0072746e + 832c: 65575c6c ldrbvs r5, [r7, #-3180] + 8330: 65687461 strbvs r7, [r8, #-1121]! + 8334: 74532072 ldrbvc r2, [r3], #-114 + 8338: 6f697461 svcvs 0x00697461 + 833c: 6f43206e svcvs 0x0043206e + 8340: 6f72746e svcvs 0x0072746e + 8344: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8348: 414d535c cmpmi sp, ip, asr r3 + 834c: 6f535c43 svcvs 0x00535c43 + 8350: 65637275 strbvs r7, [r3, #-629]! + 8354: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 8358: 73656c65 cmnvc r5, #25856 ; 0x6500 + 835c: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8360: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 8364: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 8368: 52414900 subpl r4, r1, #0 ; 0x0 + 836c: 534e4120 movtpl r4, #57632 ; 0xe120 + 8370: 2f432049 svccs 0x00432049 + 8374: 202b2b43 eorcs r2, fp, r3, asr #22 + 8378: 706d6f43 rsbvc r6, sp, r3, asr #30 + 837c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 8380: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 8384: 322e3033 eorcc r3, lr, #51 ; 0x33 + 8388: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 838c: 572f3539 undefined + 8390: 4b203233 blmi 814c64 + 8394: 534b4349 movtpl r4, #45897 ; 0xb349 + 8398: 54524154 ldrbpl r4, [r2], #-340 + 839c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 83a0: 4d524120 ldfmie f4, [r2, #-128] + 83a4: 00000100 andeq r0, r0, r0, lsl #2 + 83a8: 000c0000 andeq r0, ip, r0 + 83ac: 4ff40000 svcmi 0x00f40000 + 83b0: 29060000 stmdbcs r6, {} + 83b4: 93100000 tstls r0, #0 ; 0x0 + 83b8: 0500007d streq r0, [r0, #-125] + 83bc: 00000104 andeq r0, r0, r4, lsl #2 + 83c0: 454d4c4d strbmi r4, [sp, #-3149] + 83c4: 43746547 cmnmi r4, #297795584 ; 0x11c00000 + 83c8: 6e6e6168 powvsez f6, f6, #0.0 + 83cc: 65526c65 ldrbvs r6, [r2, #-3173] + 83d0: 73657571 cmnvc r5, #473956352 ; 0x1c400000 + 83d4: 5e010074 mcrpl 0, 0, r0, cr1, cr4, {3} + 83d8: 29100109 ldmdbcs r0, {r0, r3, r8} + 83dc: 12000080 andne r0, r0, #128 ; 0x80 + 83e0: 00000019 andeq r0, r0, r9, lsl r0 + 83e4: 0c000000 stceq 0, cr0, [r0], {0} + ... + 83f0: 00000128 andeq r0, r0, r8, lsr #2 + 83f4: 0a300003 beq c08408 + 83f8: 02040000 andeq r0, r4, #0 ; 0x0 + 83fc: 445c3a43 ldrbmi r3, [ip], #-2627 + 8400: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8404: 73746e65 cmnvc r4, #1616 ; 0x650 + 8408: 646e6120 strbtvs r6, [lr], #-288 + 840c: 74655320 strbtvc r5, [r5], #-800 + 8410: 676e6974 undefined + 8414: 616d5c73 smcvs 54723 + 8418: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 841c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8420: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8424: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8428: 775c7374 undefined + 842c: 6f632d73 svcvs 0x00632d73 + 8430: 6f72746e svcvs 0x0072746e + 8434: 65575c6c ldrbvs r5, [r7, #-3180] + 8438: 65687461 strbvs r7, [r8, #-1121]! + 843c: 74532072 ldrbvc r2, [r3], #-114 + 8440: 6f697461 svcvs 0x00697461 + 8444: 6f43206e svcvs 0x0043206e + 8448: 6f72746e svcvs 0x0072746e + 844c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8450: 414d535c cmpmi sp, ip, asr r3 + 8454: 6f535c43 svcvs 0x00535c43 + 8458: 65637275 strbvs r7, [r3, #-629]! + 845c: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 8460: 73656c65 cmnvc r5, #25856 ; 0x6500 + 8464: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8468: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 846c: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 8470: 52414900 subpl r4, r1, #0 ; 0x0 + 8474: 534e4120 movtpl r4, #57632 ; 0xe120 + 8478: 2f432049 svccs 0x00432049 + 847c: 202b2b43 eorcs r2, fp, r3, asr #22 + 8480: 706d6f43 rsbvc r6, sp, r3, asr #30 + 8484: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 8488: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 848c: 322e3033 eorcc r3, lr, #51 ; 0x33 + 8490: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 8494: 572f3539 undefined + 8498: 4b203233 blmi 814d6c + 849c: 534b4349 movtpl r4, #45897 ; 0xb349 + 84a0: 54524154 ldrbpl r4, [r2], #-340 + 84a4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 84a8: 4d524120 ldfmie f4, [r2, #-128] + 84ac: 3a540100 bcc 15088b4 + 84b0: 3a640040 bcc 19085b8 + 84b4: 50a40040 adcpl r0, r4, r0, asr #32 + 84b8: 29760000 ldmdbcs r6!, {}^ + 84bc: 93100000 tstls r0, #0 ; 0x0 + 84c0: 0500007d streq r0, [r0, #-125] + 84c4: 00000128 andeq r0, r0, r8, lsr #2 + 84c8: 454d4c4d strbmi r4, [sp, #-3149] + 84cc: 6e455852 mcrvs 8, 2, r5, cr5, cr2, {2} + 84d0: 656c6261 strbvs r6, [ip, #-609]! + 84d4: 75716552 ldrbvc r6, [r1, #-1362]! + 84d8: 00747365 rsbseq r7, r4, r5, ror #6 + 84dc: 010e6a01 tsteq lr, r1, lsl #20 + 84e0: 007fe910 rsbseq lr, pc, r0, lsl r9 + 84e4: 00193200 andseq r3, r9, r0, lsl #4 + 84e8: 403a5400 eorsmi r5, sl, r0, lsl #8 + 84ec: 403a6400 eorsmi r6, sl, r0, lsl #8 + 84f0: 736d0600 cmnvc sp, #0 ; 0x0 + 84f4: 6a010067 bvs 48698 + 84f8: 7e73102e cdpvc 0, 7, cr1, cr3, cr14, {1} + 84fc: 19520000 ldmdbne r2, {}^ + 8500: 74060000 strvc r0, [r6] + 8504: 6f656d69 svcvs 0x00656d69 + 8508: 01007475 tsteq r0, r5, ror r4 + 850c: 48103c6a ldmdami r0, {r1, r3, r5, r6, sl, fp, ip, sp} + 8510: 65000080 strvs r0, [r0, #-128] + 8514: 00000019 andeq r0, r0, r9, lsl r0 + 8518: 00000000 andeq r0, r0, r0 + 851c: 00000114 andeq r0, r0, r4, lsl r1 + 8520: 0a300003 beq c08534 + 8524: 02040000 andeq r0, r4, #0 ; 0x0 + 8528: 445c3a43 ldrbmi r3, [ip], #-2627 + 852c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8530: 73746e65 cmnvc r4, #1616 ; 0x650 + 8534: 646e6120 strbtvs r6, [lr], #-288 + 8538: 74655320 strbtvc r5, [r5], #-800 + 853c: 676e6974 undefined + 8540: 616d5c73 smcvs 54723 + 8544: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8548: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 854c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8550: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8554: 775c7374 undefined + 8558: 6f632d73 svcvs 0x00632d73 + 855c: 6f72746e svcvs 0x0072746e + 8560: 65575c6c ldrbvs r5, [r7, #-3180] + 8564: 65687461 strbvs r7, [r8, #-1121]! + 8568: 74532072 ldrbvc r2, [r3], #-114 + 856c: 6f697461 svcvs 0x00697461 + 8570: 6f43206e svcvs 0x0043206e + 8574: 6f72746e svcvs 0x0072746e + 8578: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 857c: 414d535c cmpmi sp, ip, asr r3 + 8580: 6f535c43 svcvs 0x00535c43 + 8584: 65637275 strbvs r7, [r3, #-629]! + 8588: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 858c: 73656c65 cmnvc r5, #25856 ; 0x6500 + 8590: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8594: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 8598: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 859c: 52414900 subpl r4, r1, #0 ; 0x0 + 85a0: 534e4120 movtpl r4, #57632 ; 0xe120 + 85a4: 2f432049 svccs 0x00432049 + 85a8: 202b2b43 eorcs r2, fp, r3, asr #22 + 85ac: 706d6f43 rsbvc r6, sp, r3, asr #30 + 85b0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 85b4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 85b8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 85bc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 85c0: 572f3539 undefined + 85c4: 4b203233 blmi 814e98 + 85c8: 534b4349 movtpl r4, #45897 ; 0xb349 + 85cc: 54524154 ldrbpl r4, [r2], #-340 + 85d0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 85d4: 4d524120 ldfmie f4, [r2, #-128] + 85d8: 00000100 andeq r0, r0, r0, lsl #2 + 85dc: 00160000 andseq r0, r6, r0 + 85e0: 51540000 cmppl r4, r0 + 85e4: 29db0000 ldmibcs fp, {}^ + 85e8: 93100000 tstls r0, #0 ; 0x0 + 85ec: 0500007d streq r0, [r0, #-125] + 85f0: 00000114 andeq r0, r0, r4, lsl r1 + 85f4: 454d4c4d strbmi r4, [sp, #-3149] + 85f8: 69445852 stmdbvs r4, {r1, r4, r6, fp, ip, lr}^ + 85fc: 6c626173 stfvse f6, [r2], #-460 + 8600: 71655265 cmnvc r5, r5, ror #4 + 8604: 74736575 ldrbtvc r6, [r3], #-1397 + 8608: 0e770100 rpweqs f0, f7, f0 + 860c: 7fe91001 svcvc 0x00e91001 + 8610: 19780000 ldmdbne r8!, {}^ + 8614: 00000000 andeq r0, r0, r0 + 8618: 00160000 andseq r0, r6, r0 + 861c: 6d060000 stcvs 0, cr0, [r6] + 8620: 01006773 tsteq r0, r3, ror r7 + 8624: 73102f77 tstvc r0, #476 ; 0x1dc + 8628: 9800007e stmdals r0, {r1, r2, r3, r4, r5, r6} + 862c: 00000019 andeq r0, r0, r9, lsl r0 + 8630: 00000000 andeq r0, r0, r0 + 8634: 00000128 andeq r0, r0, r8, lsr #2 + 8638: 0a300003 beq c0864c + 863c: 02040000 andeq r0, r4, #0 ; 0x0 + 8640: 445c3a43 ldrbmi r3, [ip], #-2627 + 8644: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8648: 73746e65 cmnvc r4, #1616 ; 0x650 + 864c: 646e6120 strbtvs r6, [lr], #-288 + 8650: 74655320 strbtvc r5, [r5], #-800 + 8654: 676e6974 undefined + 8658: 616d5c73 smcvs 54723 + 865c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8660: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8664: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8668: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 866c: 775c7374 undefined + 8670: 6f632d73 svcvs 0x00632d73 + 8674: 6f72746e svcvs 0x0072746e + 8678: 65575c6c ldrbvs r5, [r7, #-3180] + 867c: 65687461 strbvs r7, [r8, #-1121]! + 8680: 74532072 ldrbvc r2, [r3], #-114 + 8684: 6f697461 svcvs 0x00697461 + 8688: 6f43206e svcvs 0x0043206e + 868c: 6f72746e svcvs 0x0072746e + 8690: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8694: 414d535c cmpmi sp, ip, asr r3 + 8698: 6f535c43 svcvs 0x00535c43 + 869c: 65637275 strbvs r7, [r3, #-629]! + 86a0: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 86a4: 73656c65 cmnvc r5, #25856 ; 0x6500 + 86a8: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 86ac: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 86b0: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 86b4: 52414900 subpl r4, r1, #0 ; 0x0 + 86b8: 534e4120 movtpl r4, #57632 ; 0xe120 + 86bc: 2f432049 svccs 0x00432049 + 86c0: 202b2b43 eorcs r2, fp, r3, asr #22 + 86c4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 86c8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 86cc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 86d0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 86d4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 86d8: 572f3539 undefined + 86dc: 4b203233 blmi 814fb0 + 86e0: 534b4349 movtpl r4, #45897 ; 0xb349 + 86e4: 54524154 ldrbpl r4, [r2], #-340 + 86e8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 86ec: 4d524120 ldfmie f4, [r2, #-128] + 86f0: 3a640100 bcc 1908af8 + 86f4: 3a800040 bcc fe0087fc + 86f8: 52080040 andpl r0, r8, #64 ; 0x40 + 86fc: 2a5d0000 bcs 1748704 + 8700: 93100000 tstls r0, #0 ; 0x0 + 8704: 0500007d streq r0, [r0, #-125] + 8708: 0000012a andeq r0, r0, sl, lsr #2 + 870c: 454d4c4d strbmi r4, [sp, #-3149] + 8710: 72656e45 rsbvc r6, r5, #1104 ; 0x450 + 8714: 65447967 strbvs r7, [r4, #-2407] + 8718: 74636574 strbtvc r6, [r3], #-1396 + 871c: 01880100 orreq r0, r8, r0, lsl #2 + 8720: e910010e ldmdb r0, {r1, r2, r3, r8} + 8724: ca00007f bgt 8928 + 8728: 64000019 strvs r0, [r0], #-25 + 872c: 8000403a andhi r4, r0, sl, lsr r0 + 8730: 0600403a undefined + 8734: 0067736d rsbeq r7, r7, sp, ror #6 + 8738: 2c018801 stccs 8, cr8, [r1], {1} + 873c: 007e7310 rsbseq r7, lr, r0, lsl r3 + 8740: 0019ea00 andseq lr, r9, r0, lsl #20 + 8744: 38750600 ldmdacc r5!, {r9, sl}^ + 8748: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + 874c: 006c656e rsbeq r6, ip, lr, ror #10 + 8750: 3f018801 svccc 0x00018801 + 8754: 007fff10 rsbseq pc, pc, r0, lsl pc + 8758: 001a1200 andseq r1, sl, r0, lsl #4 + 875c: 00000000 andeq r0, r0, r0 + 8760: 000000d0 ldrdeq r0, [r0], -r0 + 8764: 0a300003 beq c08778 + 8768: 02040000 andeq r0, r4, #0 ; 0x0 + 876c: 445c3a43 ldrbmi r3, [ip], #-2627 + 8770: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8774: 73746e65 cmnvc r4, #1616 ; 0x650 + 8778: 646e6120 strbtvs r6, [lr], #-288 + 877c: 74655320 strbtvc r5, [r5], #-800 + 8780: 676e6974 undefined + 8784: 616d5c73 smcvs 54723 + 8788: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 878c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8790: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8794: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8798: 775c7374 undefined + 879c: 6f632d73 svcvs 0x00632d73 + 87a0: 6f72746e svcvs 0x0072746e + 87a4: 65575c6c ldrbvs r5, [r7, #-3180] + 87a8: 65687461 strbvs r7, [r8, #-1121]! + 87ac: 74532072 ldrbvc r2, [r3], #-114 + 87b0: 6f697461 svcvs 0x00697461 + 87b4: 6f43206e svcvs 0x0043206e + 87b8: 6f72746e svcvs 0x0072746e + 87bc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 87c0: 414d535c cmpmi sp, ip, asr r3 + 87c4: 6f535c43 svcvs 0x00535c43 + 87c8: 65637275 strbvs r7, [r3, #-629]! + 87cc: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 87d0: 73656c65 cmnvc r5, #25856 ; 0x6500 + 87d4: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 87d8: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 87dc: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 87e0: 52414900 subpl r4, r1, #0 ; 0x0 + 87e4: 534e4120 movtpl r4, #57632 ; 0xe120 + 87e8: 2f432049 svccs 0x00432049 + 87ec: 202b2b43 eorcs r2, fp, r3, asr #22 + 87f0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 87f4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 87f8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 87fc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 8800: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 8804: 572f3539 undefined + 8808: 4b203233 blmi 8150dc + 880c: 534b4349 movtpl r4, #45897 ; 0xb349 + 8810: 54524154 ldrbpl r4, [r2], #-340 + 8814: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 8818: 4d524120 ldfmie f4, [r2, #-128] + 881c: 3a800100 bcc fe008c24 + 8820: 3a840040 bcc fe108928 + 8824: 52bc0040 adcspl r0, ip, #64 ; 0x40 + 8828: 2ada0000 bcs ff688830 + 882c: 93100000 tstls r0, #0 ; 0x0 + 8830: 0000007d andeq r0, r0, sp, ror r0 + 8834: 000000d0 ldrdeq r0, [r0], -r0 + 8838: 0a300003 beq c0884c + 883c: 02040000 andeq r0, r4, #0 ; 0x0 + 8840: 445c3a43 ldrbmi r3, [ip], #-2627 + 8844: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8848: 73746e65 cmnvc r4, #1616 ; 0x650 + 884c: 646e6120 strbtvs r6, [lr], #-288 + 8850: 74655320 strbtvc r5, [r5], #-800 + 8854: 676e6974 undefined + 8858: 616d5c73 smcvs 54723 + 885c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8860: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8864: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8868: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 886c: 775c7374 undefined + 8870: 6f632d73 svcvs 0x00632d73 + 8874: 6f72746e svcvs 0x0072746e + 8878: 65575c6c ldrbvs r5, [r7, #-3180] + 887c: 65687461 strbvs r7, [r8, #-1121]! + 8880: 74532072 ldrbvc r2, [r3], #-114 + 8884: 6f697461 svcvs 0x00697461 + 8888: 6f43206e svcvs 0x0043206e + 888c: 6f72746e svcvs 0x0072746e + 8890: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8894: 414d535c cmpmi sp, ip, asr r3 + 8898: 6f535c43 svcvs 0x00535c43 + 889c: 65637275 strbvs r7, [r3, #-629]! + 88a0: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 88a4: 73656c65 cmnvc r5, #25856 ; 0x6500 + 88a8: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 88ac: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 88b0: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 88b4: 52414900 subpl r4, r1, #0 ; 0x0 + 88b8: 534e4120 movtpl r4, #57632 ; 0xe120 + 88bc: 2f432049 svccs 0x00432049 + 88c0: 202b2b43 eorcs r2, fp, r3, asr #22 + 88c4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 88c8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 88cc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 88d0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 88d4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 88d8: 572f3539 undefined + 88dc: 4b203233 blmi 8151b0 + 88e0: 534b4349 movtpl r4, #45897 ; 0xb349 + 88e4: 54524154 ldrbpl r4, [r2], #-340 + 88e8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 88ec: 4d524120 ldfmie f4, [r2, #-128] + 88f0: 3a840100 bcc fe108cf8 + 88f4: 3a880040 bcc fe2089fc + 88f8: 52e40040 rscpl r0, r4, #64 ; 0x40 + 88fc: 2b7b0000 blcs 1ec8904 + 8900: 93100000 tstls r0, #0 ; 0x0 + 8904: 0000007d andeq r0, r0, sp, ror r0 + 8908: 00000118 andeq r0, r0, r8, lsl r1 + 890c: 0a300003 beq c08920 + 8910: 02040000 andeq r0, r4, #0 ; 0x0 + 8914: 445c3a43 ldrbmi r3, [ip], #-2627 + 8918: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 891c: 73746e65 cmnvc r4, #1616 ; 0x650 + 8920: 646e6120 strbtvs r6, [lr], #-288 + 8924: 74655320 strbtvc r5, [r5], #-800 + 8928: 676e6974 undefined + 892c: 616d5c73 smcvs 54723 + 8930: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8934: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8938: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 893c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8940: 775c7374 undefined + 8944: 6f632d73 svcvs 0x00632d73 + 8948: 6f72746e svcvs 0x0072746e + 894c: 65575c6c ldrbvs r5, [r7, #-3180] + 8950: 65687461 strbvs r7, [r8, #-1121]! + 8954: 74532072 ldrbvc r2, [r3], #-114 + 8958: 6f697461 svcvs 0x00697461 + 895c: 6f43206e svcvs 0x0043206e + 8960: 6f72746e svcvs 0x0072746e + 8964: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8968: 414d535c cmpmi sp, ip, asr r3 + 896c: 6f535c43 svcvs 0x00535c43 + 8970: 65637275 strbvs r7, [r3, #-629]! + 8974: 7269575c rsbvc r5, r9, #24117248 ; 0x1700000 + 8978: 73656c65 cmnvc r5, #25856 ; 0x6500 + 897c: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 8980: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 8984: 632e746d teqvs lr, #1828716544 ; 0x6d000000 + 8988: 52414900 subpl r4, r1, #0 ; 0x0 + 898c: 534e4120 movtpl r4, #57632 ; 0xe120 + 8990: 2f432049 svccs 0x00432049 + 8994: 202b2b43 eorcs r2, fp, r3, asr #22 + 8998: 706d6f43 rsbvc r6, sp, r3, asr #30 + 899c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 89a0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 89a4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 89a8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 89ac: 572f3539 undefined + 89b0: 4b203233 blmi 815284 + 89b4: 534b4349 movtpl r4, #45897 ; 0xb349 + 89b8: 54524154 ldrbpl r4, [r2], #-340 + 89bc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 89c0: 4d524120 ldfmie f4, [r2, #-128] + 89c4: 3a8e0100 bcc fe388dcc + 89c8: 3aa20040 bcc fe888ad0 + 89cc: 530c0040 movwpl r0, #49216 ; 0xc040 + 89d0: 2c950000 ldccs 0, cr0, [r5], {0} + 89d4: 93100000 tstls r0, #0 ; 0x0 + 89d8: 0500007d streq r0, [r0, #-125] + 89dc: 00000118 andeq r0, r0, r8, lsl r1 + 89e0: 454d4c4d strbmi r4, [sp, #-3149] + 89e4: 754f4150 strbvc r4, [pc, #-336] ; 889c + 89e8: 74757074 ldrbtvc r7, [r5], #-116 + 89ec: 756a6441 strbvc r6, [sl, #-1089]! + 89f0: 01007473 tsteq r0, r3, ror r4 + 89f4: 010e01b1 strheq r0, [lr, -r1] + 89f8: 007fe910 rsbseq lr, pc, r0, lsl r9 + 89fc: 001a3a00 andseq r3, sl, r0, lsl #20 + 8a00: 403a8e00 eorsmi r8, sl, r0, lsl #28 + 8a04: 403aa200 eorsmi sl, sl, r0, lsl #4 + 8a08: 38750600 ldmdacc r5!, {r9, sl}^ + 8a0c: 65776f50 ldrbvs r6, [r7, #-3920]! + 8a10: b1010072 tstlt r1, r2, ror r0 + 8a14: 29102a01 ldmdbcs r0, {r0, r9, fp, sp} + 8a18: 5a000080 bpl 8c20 + 8a1c: 0000001a andeq r0, r0, sl, lsl r0 + 8a20: 00000000 andeq r0, r0, r0 + 8a24: 000000e0 andeq r0, r0, r0, ror #1 + 8a28: 0b0c0003 bleq 308a3c + 8a2c: 01040000 tsteq r4, r0 + 8a30: 445c3a43 ldrbmi r3, [ip], #-2627 + 8a34: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8a38: 73746e65 cmnvc r4, #1616 ; 0x650 + 8a3c: 646e6120 strbtvs r6, [lr], #-288 + 8a40: 74655320 strbtvc r5, [r5], #-800 + 8a44: 676e6974 undefined + 8a48: 616d5c73 smcvs 54723 + 8a4c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8a50: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8a54: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8a58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8a5c: 775c7374 undefined + 8a60: 6f632d73 svcvs 0x00632d73 + 8a64: 6f72746e svcvs 0x0072746e + 8a68: 65575c6c ldrbvs r5, [r7, #-3180] + 8a6c: 65687461 strbvs r7, [r8, #-1121]! + 8a70: 74532072 ldrbvc r2, [r3], #-114 + 8a74: 6f697461 svcvs 0x00697461 + 8a78: 6f43206e svcvs 0x0043206e + 8a7c: 6f72746e svcvs 0x0072746e + 8a80: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8a84: 414d535c cmpmi sp, ip, asr r3 + 8a88: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 8a8c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 8a90: 6f535c73 svcvs 0x00535c73 + 8a94: 65637275 strbvs r7, [r3, #-629]! + 8a98: 63616d5c cmnvs r1, #5888 ; 0x1700 + 8a9c: 00632e61 rsbeq r2, r3, r1, ror #28 + 8aa0: 20524149 subscs r4, r2, r9, asr #2 + 8aa4: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 8aa8: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 8aac: 43202b2b teqmi r0, #44032 ; 0xac00 + 8ab0: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 8ab4: 2072656c rsbscs r6, r2, ip, ror #10 + 8ab8: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 8abc: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 8ac0: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 8ac4: 33572f35 cmpcc r7, #212 ; 0xd4 + 8ac8: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 8acc: 54534b43 ldrbpl r4, [r3], #-2883 + 8ad0: 20545241 subscs r5, r4, r1, asr #4 + 8ad4: 20726f66 rsbscs r6, r2, r6, ror #30 + 8ad8: 004d5241 subeq r5, sp, r1, asr #4 + 8adc: 0053c001 subseq ip, r3, r1 + 8ae0: 00022800 andeq r2, r2, r0, lsl #16 + 8ae4: 6e750300 cdpvs 3, 7, cr0, cr5, cr0, {0} + 8ae8: 6e676973 mcrvs 9, 3, r6, cr7, cr3, {3} + 8aec: 6c206465 cfstrsvs mvf6, [r0], #-404 + 8af0: 00676e6f rsbeq r6, r7, pc, ror #28 + 8af4: 75060704 strvc r0, [r6, #-1796] + 8af8: 33746e69 cmncc r4, #1680 ; 0x690 + 8afc: 00745f32 rsbseq r5, r4, r2, lsr pc + 8b00: 0101c115 tsteq r1, r5, lsl r1 + 8b04: 0000191e andeq r1, r0, lr, lsl r9 + 8b08: 000000fc strdeq r0, [r0], -ip + 8b0c: 0b0c0003 bleq 308b20 + 8b10: 02040000 andeq r0, r4, #0 ; 0x0 + 8b14: 445c3a43 ldrbmi r3, [ip], #-2627 + 8b18: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8b1c: 73746e65 cmnvc r4, #1616 ; 0x650 + 8b20: 646e6120 strbtvs r6, [lr], #-288 + 8b24: 74655320 strbtvc r5, [r5], #-800 + 8b28: 676e6974 undefined + 8b2c: 616d5c73 smcvs 54723 + 8b30: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8b34: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8b38: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8b3c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8b40: 775c7374 undefined + 8b44: 6f632d73 svcvs 0x00632d73 + 8b48: 6f72746e svcvs 0x0072746e + 8b4c: 65575c6c ldrbvs r5, [r7, #-3180] + 8b50: 65687461 strbvs r7, [r8, #-1121]! + 8b54: 74532072 ldrbvc r2, [r3], #-114 + 8b58: 6f697461 svcvs 0x00697461 + 8b5c: 6f43206e svcvs 0x0043206e + 8b60: 6f72746e svcvs 0x0072746e + 8b64: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8b68: 414d535c cmpmi sp, ip, asr r3 + 8b6c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 8b70: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 8b74: 6f535c73 svcvs 0x00535c73 + 8b78: 65637275 strbvs r7, [r3, #-629]! + 8b7c: 63616d5c cmnvs r1, #5888 ; 0x1700 + 8b80: 00632e61 rsbeq r2, r3, r1, ror #28 + 8b84: 20524149 subscs r4, r2, r9, asr #2 + 8b88: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 8b8c: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 8b90: 43202b2b teqmi r0, #44032 ; 0xac00 + 8b94: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 8b98: 2072656c rsbscs r6, r2, ip, ror #10 + 8b9c: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 8ba0: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 8ba4: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 8ba8: 33572f35 cmpcc r7, #212 ; 0xd4 + 8bac: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 8bb0: 54534b43 ldrbpl r4, [r3], #-2883 + 8bb4: 20545241 subscs r5, r4, r1, asr #4 + 8bb8: 20726f66 rsbscs r6, r2, r6, ror #30 + 8bbc: 004d5241 subeq r5, sp, r1, asr #4 + 8bc0: 403e7001 eorsmi r7, lr, r1 + 8bc4: 403e9800 eorsmi r9, lr, r0, lsl #16 + 8bc8: 00555000 subseq r5, r5, r0 + 8bcc: 002d1b00 eoreq r1, sp, r0, lsl #22 + 8bd0: 8a2f1000 bhi bccbd8 + 8bd4: ff040000 undefined instruction 0xff040000 + 8bd8: 52000000 andpl r0, r0, #0 ; 0x0 + 8bdc: 74657365 strbtvc r7, [r5], #-869 + 8be0: 6163614d cmnvs r3, sp, asr #2 + 8be4: 06360100 ldrteq r0, [r6], -r0, lsl #2 + 8be8: 001a8c01 andseq r8, sl, r1, lsl #24 + 8bec: 403e7000 eorsmi r7, lr, r0 + 8bf0: 403e9800 eorsmi r9, lr, r0, lsl #16 + 8bf4: 6d740500 cfldr64vs mvdx0, [r4] + 8bf8: 38010070 stmdacc r1, {r4, r5, r6} + 8bfc: 8af6100c bhi ffd8cc34 + 8c00: 1aa00000 bne fe808c08 + 8c04: 00000000 andeq r0, r0, r0 + 8c08: 00000748 andeq r0, r0, r8, asr #14 + 8c0c: 0b780003 bleq 1e08c20 + 8c10: 01040000 tsteq r4, r0 + 8c14: 445c3a43 ldrbmi r3, [ip], #-2627 + 8c18: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8c1c: 73746e65 cmnvc r4, #1616 ; 0x650 + 8c20: 646e6120 strbtvs r6, [lr], #-288 + 8c24: 74655320 strbtvc r5, [r5], #-800 + 8c28: 676e6974 undefined + 8c2c: 616d5c73 smcvs 54723 + 8c30: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8c34: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8c38: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8c3c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8c40: 775c7374 undefined + 8c44: 6f632d73 svcvs 0x00632d73 + 8c48: 6f72746e svcvs 0x0072746e + 8c4c: 65575c6c ldrbvs r5, [r7, #-3180] + 8c50: 65687461 strbvs r7, [r8, #-1121]! + 8c54: 74532072 ldrbvc r2, [r3], #-114 + 8c58: 6f697461 svcvs 0x00697461 + 8c5c: 6f43206e svcvs 0x0043206e + 8c60: 6f72746e svcvs 0x0072746e + 8c64: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 8c68: 7070415c rsbsvc r4, r0, ip, asr r1 + 8c6c: 6163696c cmnvs r3, ip, ror #18 + 8c70: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 8c74: 756f535c strbvc r5, [pc, #-860]! ; 8920 + 8c78: 5c656372 stclpl 3, cr6, [r5], #-456 + 8c7c: 74616577 strbtvc r6, [r1], #-1399 + 8c80: 5f726568 svcpl 0x00726568 + 8c84: 74617473 strbtvc r7, [r1], #-1139 + 8c88: 5f6e6f69 svcpl 0x006e6f69 + 8c8c: 746e6f63 strbtvc r6, [lr], #-3939 + 8c90: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 8c94: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 8c98: 52414900 subpl r4, r1, #0 ; 0x0 + 8c9c: 534e4120 movtpl r4, #57632 ; 0xe120 + 8ca0: 2f432049 svccs 0x00432049 + 8ca4: 202b2b43 eorcs r2, fp, r3, asr #22 + 8ca8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 8cac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 8cb0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 8cb4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 8cb8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 8cbc: 572f3539 undefined + 8cc0: 4b203233 blmi 815594 + 8cc4: 534b4349 movtpl r4, #45897 ; 0xb349 + 8cc8: 54524154 ldrbpl r4, [r2], #-340 + 8ccc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 8cd0: 4d524120 ldfmie f4, [r2, #-128] + 8cd4: 56040100 strpl r0, [r4], -r0, lsl #2 + 8cd8: 02380000 eorseq r0, r8, #0 ; 0x0 + 8cdc: 75020000 strvc r0, [r2] + 8ce0: 6769736e strbvs r7, [r9, -lr, ror #6]! + 8ce4: 2064656e rsbcs r6, r4, lr, ror #10 + 8ce8: 72616863 rsbvc r6, r1, #6488064 ; 0x630000 + 8cec: 03080100 movweq r0, #33024 ; 0x8100 + 8cf0: 00071013 andeq r1, r7, r3, lsl r0 + 8cf4: 6f760200 svcvs 0x00760200 + 8cf8: 00006469 andeq r6, r0, r9, ror #8 + 8cfc: 5b130305 blpl 4c9918 + 8d00: 02000003 andeq r0, r0, #3 ; 0x3 + 8d04: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 8d08: 64656e67 strbtvs r6, [r5], #-3687 + 8d0c: 6f687320 svcvs 0x00687320 + 8d10: 02007472 andeq r7, r0, #1912602624 ; 0x72000000 + 8d14: bc130507 cfldr32lt mvfx0, [r3], {7} + 8d18: 02000003 andeq r0, r0, #3 ; 0x3 + 8d1c: 69736e75 ldmdbvs r3!, {r0, r2, r4, r5, r6, r9, sl, fp, sp, lr}^ + 8d20: 64656e67 strbtvs r6, [r5], #-3687 + 8d24: 6e6f6c20 cdpvs 12, 6, cr6, cr15, cr0, {1} + 8d28: 07040067 streq r0, [r4, -r7, rrx] + 8d2c: 06a81307 strteq r1, [r8], r7, lsl #6 + 8d30: 13030000 movwne r0, #12288 ; 0x3000 + 8d34: 0000067b andeq r0, r0, fp, ror r6 + 8d38: 00016c0d andeq r6, r1, sp, lsl #24 + 8d3c: 670e0100 strvs r0, [lr, -r0, lsl #2] + 8d40: 6b637542 blvs 18e6250 + 8d44: 67655256 undefined + 8d48: 0000635f andeq r6, r0, pc, asr r3 + 8d4c: 5031670e eorspl r6, r1, lr, lsl #14 + 8d50: 65525635 ldrbvs r5, [r2, #-1589] + 8d54: 00635f67 rsbeq r5, r3, r7, ror #30 + 8d58: 31670e01 cmncc r7, r1, lsl #28 + 8d5c: 52563850 subspl r3, r6, #5242880 ; 0x500000 + 8d60: 635f6765 cmpvs pc, #26476544 ; 0x1940000 + 8d64: 670e0200 strvs r0, [lr, -r0, lsl #4] + 8d68: 5678614d ldrbtpl r6, [r8], -sp, asr #2 + 8d6c: 5f676552 svcpl 0x00676552 + 8d70: 00030063 andeq r0, r3, r3, rrx + 8d74: 0001a30f andeq sl, r1, pc, lsl #6 + 8d78: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! + 8d7c: 7079745f rsbsvc r7, r9, pc, asr r4 + 8d80: 61745f65 cmnvs r4, r5, ror #30 + 8d84: 0e010067 cdpeq 0, 0, cr0, cr1, cr7, {3} + 8d88: 00005854 andeq r5, r0, r4, asr r8 + 8d8c: 0058520e subseq r5, r8, lr, lsl #4 + 8d90: 44450e01 strbmi r0, [r5], #-3585 + 8d94: 540e0200 strpl r0, [lr], #-512 + 8d98: 0e03004f cdpeq 0, 0, cr0, cr3, cr15, {2} + 8d9c: 5f58414d svcpl 0x0058414d + 8da0: 5f47534d svcpl 0x0047534d + 8da4: 45505954 ldrbmi r5, [r0, #-2388] + 8da8: 0d000400 cfstrseq mvf0, [r0] + 8dac: 00000200 andeq r0, r0, r0, lsl #4 + 8db0: 4e670e01 cdpmi 14, 6, cr0, cr7, cr1, {0} + 8db4: 79546d76 ldmdbvc r4, {r1, r2, r4, r5, r6, r8, sl, fp, sp, lr}^ + 8db8: 4e5f6570 mrcmi 5, 2, r6, cr15, cr0, {3} + 8dbc: 6d764e6f ldclvs 14, cr4, [r6, #-444]! + 8dc0: 0000635f andeq r6, r0, pc, asr r3 + 8dc4: 764e670e strbvc r6, [lr], -lr, lsl #14 + 8dc8: 7079546d rsbsvc r5, r9, sp, ror #8 + 8dcc: 53535f65 cmppl r3, #404 ; 0x194 + 8dd0: 00635f54 rsbeq r5, r3, r4, asr pc + 8dd4: 4e670e01 cdpmi 14, 6, cr0, cr7, cr1, {0} + 8dd8: 79546d76 ldmdbvc r4, {r1, r2, r4, r5, r6, r8, sl, fp, sp, lr}^ + 8ddc: 535f6570 cmppl pc, #469762048 ; 0x1c000000 + 8de0: 00635f54 rsbeq r5, r3, r4, asr pc + 8de4: 4e670e02 cdpmi 14, 6, cr0, cr7, cr2, {0} + 8de8: 79546d76 ldmdbvc r4, {r1, r2, r4, r5, r6, r8, sl, fp, sp, lr}^ + 8dec: 415f6570 cmpmi pc, r0, ror r5 + 8df0: 635f4d54 cmpvs pc, #5376 ; 0x1500 + 8df4: 670e0300 strvs r0, [lr, -r0, lsl #6] + 8df8: 546d764e strbtpl r7, [sp], #-1614 + 8dfc: 5f657079 svcpl 0x00657079 + 8e00: 5f78614d svcpl 0x0078614d + 8e04: 00040063 andeq r0, r4, r3, rrx + 8e08: 0002b20f andeq fp, r2, pc, lsl #4 + 8e0c: 61657700 cmnvs r5, r0, lsl #14 + 8e10: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 8e14: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 8e18: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 8e1c: 5f72656c svcpl 0x0072656c + 8e20: 74617473 strbtvc r7, [r1], #-1139 + 8e24: 745f7365 ldrbvc r7, [pc], #869 ; 8e2c + 8e28: 01006761 tsteq r0, r1, ror #14 + 8e2c: 4c44490e mcrrmi 9, 0, r4, r4, cr14 + 8e30: 4f435f45 svcmi 0x00435f45 + 8e34: 4f52544e svcmi 0x0052544e + 8e38: 52454c4c subpl r4, r5, #19456 ; 0x4c00 + 8e3c: 0054535f subseq r5, r4, pc, asr r3 + 8e40: 4e490e00 cdpmi 14, 4, cr0, cr9, cr0, {0} + 8e44: 435f5449 cmpmi pc, #1224736768 ; 0x49000000 + 8e48: 52544e4f subspl r4, r4, #1264 ; 0x4f0 + 8e4c: 454c4c4f strbmi r4, [ip, #-3151] + 8e50: 54535f52 ldrbpl r5, [r3], #-3922 + 8e54: 570e0100 strpl r0, [lr, -r0, lsl #2] + 8e58: 49544941 ldmdbmi r4, {r0, r6, r8, fp, lr}^ + 8e5c: 435f474e cmpmi pc, #20447232 ; 0x1380000 + 8e60: 52544e4f subspl r4, r4, #1264 ; 0x4f0 + 8e64: 454c4c4f strbmi r4, [ip, #-3151] + 8e68: 54535f52 ldrbpl r5, [r3], #-3922 + 8e6c: 4c0e0200 sfmmi f0, 4, [lr], {0} + 8e70: 45545349 ldrbmi r5, [r4, #-841] + 8e74: 4f435f4e svcmi 0x00435f4e + 8e78: 4f52544e svcmi 0x0052544e + 8e7c: 52454c4c subpl r4, r5, #19456 ; 0x4c00 + 8e80: 0054535f subseq r5, r4, pc, asr r3 + 8e84: 52540e03 subspl r0, r4, #48 ; 0x30 + 8e88: 4d534e41 ldclmi 14, cr4, [r3, #-260] + 8e8c: 415f5449 cmpmi pc, r9, asr #8 + 8e90: 435f4b43 cmpmi pc, #68608 ; 0x10c00 + 8e94: 52544e4f subspl r4, r4, #1264 ; 0x4f0 + 8e98: 454c4c4f strbmi r4, [ip, #-3151] + 8e9c: 54535f52 ldrbpl r5, [r3], #-3922 + 8ea0: 460e0400 strmi r0, [lr], -r0, lsl #8 + 8ea4: 53494e49 movtpl r4, #40521 ; 0x9e49 + 8ea8: 4f435f48 svcmi 0x00435f48 + 8eac: 4f52544e svcmi 0x0052544e + 8eb0: 52454c4c subpl r4, r5, #19456 ; 0x4c00 + 8eb4: 0054535f subseq r5, r4, pc, asr r3 + 8eb8: 150f0005 strne r0, [pc, #-5] ; 8ebb + 8ebc: 73000003 movwvc r0, #3 ; 0x3 + 8ec0: 6f736e65 svcvs 0x00736e65 + 8ec4: 656d5f72 strbvs r5, [sp, #-3954]! + 8ec8: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 + 8ecc: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} + 8ed0: 61745f74 cmnvs r4, r4, ror pc + 8ed4: 0e010067 cdpeq 0, 0, cr0, cr1, cr7, {3} + 8ed8: 444e4957 strbmi r4, [lr], #-2391 + 8edc: 5249445f subpl r4, r9, #1593835520 ; 0x5f000000 + 8ee0: 570e0500 strpl r0, [lr, -r0, lsl #10] + 8ee4: 5f444e49 svcpl 0x00444e49 + 8ee8: 45455053 strbmi r5, [r5, #-83] + 8eec: 0e070044 cdpeq 0, 0, cr0, cr7, cr4, {2} + 8ef0: 53455250 movtpl r5, #21072 ; 0x5250 + 8ef4: 45525553 ldrbmi r5, [r2, #-1363] + 8ef8: 540e0900 strpl r0, [lr], #-2304 + 8efc: 45504d45 ldrbmi r4, [r0, #-3397] + 8f00: 55544152 ldrbpl r4, [r4, #-338] + 8f04: 0b004552 bleq 1a454 + 8f08: 4142560e cmpmi r2, lr, lsl #12 + 8f0c: 0e0d0054 mcreq 0, 0, r0, cr13, cr4, {2} + 8f10: 5f58414d svcpl 0x0058414d + 8f14: 534e4553 movtpl r4, #58707 ; 0xe553 + 8f18: 0e00524f cdpeq 2, 0, cr5, cr0, cr15, {2} + 8f1c: 035b0f00 cmpeq fp, #0 ; 0x0 + 8f20: 656d0000 strbvs r0, [sp]! + 8f24: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 + 8f28: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} + 8f2c: 79735f74 ldmdbvc r3!, {r2, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 8f30: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 8f34: 6761745f undefined + 8f38: 490e0100 stmdbmi lr, {r8} + 8f3c: 5245544e subpl r5, r5, #1308622848 ; 0x4e000000 + 8f40: 4954414e ldmdbmi r4, {r1, r2, r3, r6, r8, lr}^ + 8f44: 4c414e4f mcrrmi 14, 4, r4, r1, cr15 + 8f48: 5359535f cmppl r9, #2080374785 ; 0x7c000001 + 8f4c: 004d4554 subeq r4, sp, r4, asr r5 + 8f50: 4e450e00 cdpmi 14, 4, cr0, cr5, cr0, {0} + 8f54: 53494c47 movtpl r4, #40007 ; 0x9c47 + 8f58: 59535f48 ldmdbpl r3, {r3, r6, r8, r9, sl, fp, ip, lr}^ + 8f5c: 4d455453 cfstrdmi mvd5, [r5, #-332] + 8f60: 10000100 andne r0, r0, r0, lsl #2 + 8f64: 00000361 andeq r0, r0, r1, ror #6 + 8f68: 036e1100 cmneq lr, #0 ; 0x0 + 8f6c: 7b130000 blvc 4c8f74 + 8f70: 12000006 andne r0, r0, #6 ; 0x6 + 8f74: 7b110000 blvc 448f7c + 8f78: 13000003 movwne r0, #3 ; 0x3 + 8f7c: 0000067b andeq r0, r0, fp, ror r6 + 8f80: 11000112 tstne r0, r2, lsl r1 + 8f84: 00000388 andeq r0, r0, r8, lsl #7 + 8f88: 00067b13 andeq r7, r6, r3, lsl fp + 8f8c: 00021200 andeq r1, r2, r0, lsl #4 + 8f90: 00039511 andeq r9, r3, r1, lsl r5 + 8f94: 067b1300 ldrbteq r1, [fp], -r0, lsl #6 + 8f98: 03120000 tsteq r2, #0 ; 0x0 + 8f9c: 03a21100 undefined instruction 0x03a21100 + 8fa0: 7b130000 blvc 4c8fa8 + 8fa4: 12000006 andne r0, r0, #6 ; 0x6 + 8fa8: af110007 svcge 0x00110007 + 8fac: 13000003 movwne r0, #3 ; 0x3 + 8fb0: 0000067b andeq r0, r0, fp, ror r6 + 8fb4: 11000812 tstne r0, r2, lsl r8 + 8fb8: 000003bc strheq r0, [r0], -ip + 8fbc: 00067b13 andeq r7, r6, r3, lsl fp + 8fc0: 000b1200 andeq r1, fp, r0, lsl #4 + 8fc4: 0003c711 andeq ip, r3, r1, lsl r7 + 8fc8: 01d61500 bicseq r1, r6, r0, lsl #10 + 8fcc: 11000f12 tstne r0, r2, lsl pc + 8fd0: 000003d4 ldrdeq r0, [r0], -r4 + 8fd4: 00067b13 andeq r7, r6, r3, lsl fp + 8fd8: 00101200 andseq r1, r0, r0, lsl #4 + 8fdc: 0003e111 andeq lr, r3, r1, lsl r1 + 8fe0: 067b1300 ldrbteq r1, [fp], -r0, lsl #6 + 8fe4: 12120000 andsne r0, r2, #0 ; 0x0 + 8fe8: 03ee1100 mvneq r1, #0 ; 0x0 + 8fec: 7b130000 blvc 4c8ff4 + 8ff0: 12000006 andne r0, r0, #6 ; 0x6 + 8ff4: 56130042 ldrpl r0, [r3], -r2, asr #32 + 8ff8: 04000004 streq r0, [r0], #-4 + 8ffc: 06a81314 ssateq r1, #9, r4, lsl #6 + 9000: 62010000 andvs r0, r1, #0 ; 0x0 + 9004: 456b6375 strbmi r6, [fp, #-885]! + 9008: 2302006e movwcs r0, #8302 ; 0x206e + 900c: 1f010400 svcne 0x00010400 + 9010: 06a81314 ssateq r1, #9, r4, lsl #6 + 9014: 62010000 andvs r0, r1, #0 ; 0x0 + 9018: 536b6375 cmnpl fp, #-738197503 ; 0xd4000001 + 901c: 52636e79 rsbpl r6, r3, #1936 ; 0x790 + 9020: 6e456365 cdpvs 3, 4, cr6, cr5, cr5, {3} + 9024: 00230200 eoreq r0, r3, r0, lsl #4 + 9028: 141e0104 ldrne r0, [lr], #-260 + 902c: 0006a813 andeq sl, r6, r3, lsl r8 + 9030: 75620100 strbvc r0, [r2, #-256]! + 9034: 79426b63 stmdbvc r2, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ + 9038: 73736170 cmnvc r3, #28 ; 0x1c + 903c: 02006e45 andeq r6, r0, #1104 ; 0x450 + 9040: 01040023 tsteq r4, r3, lsr #32 + 9044: a813141d ldmdage r3, {r0, r2, r3, r4, sl, ip} + 9048: 01000006 tsteq r0, r6 + 904c: 6b637562 blvs 18e65dc + 9050: 446b6c43 strbtmi r6, [fp], #-3139 + 9054: 02007669 andeq r7, r0, #110100480 ; 0x6900000 + 9058: 04040023 streq r0, [r4], #-35 + 905c: 8f130019 svchi 0x00130019 + 9060: 04000004 streq r0, [r0], #-4 + 9064: 06a81314 ssateq r1, #9, r4, lsl #6 + 9068: 76010000 strvc r0, [r1], -r0 + 906c: 31676552 cmncc r7, r2, asr r5 + 9070: 45563550 ldrbmi r3, [r6, #-1360] + 9074: 2302006e movwcs r0, #8302 ; 0x206e + 9078: 1e020400 cfcpysne mvf0, mvf2 + 907c: 06a81314 ssateq r1, #9, r4, lsl #6 + 9080: 76010000 strvc r0, [r1], -r0 + 9084: 31676552 cmncc r7, r2, asr r5 + 9088: 49563550 ldmdbmi r6, {r4, r6, r8, sl, ip, sp}^ + 908c: 006c6553 rsbeq r6, ip, r3, asr r5 + 9090: 04002302 streq r2, [r0], #-770 + 9094: 13001c02 movwne r1, #3074 ; 0xc02 + 9098: 000004b4 strheq r0, [r0], -r4 + 909c: d8131508 ldmdale r3, {r3, r8, sl, ip} + 90a0: 01000005 tsteq r0, r5 + 90a4: 67655276 undefined + 90a8: 00230200 eoreq r0, r3, r0, lsl #4 + 90ac: 05921315 ldreq r1, [r2, #789] + 90b0: 63010000 movwvs r0, #4096 ; 0x1000 + 90b4: 006c746e rsbeq r7, ip, lr, ror #8 + 90b8: 00042302 andeq r2, r4, r2, lsl #6 + 90bc: 0004e816 andeq lr, r4, r6, lsl r8 + 90c0: 616d7300 cmnvs sp, r0, lsl #6 + 90c4: 64705f63 ldrbtvs r5, [r0], #-3939 + 90c8: 61745f75 cmnvs r4, r5, ror pc + 90cc: 15030067 strne r0, [r3, #-103] + 90d0: 0106ee15 tsteq r6, r5, lsl lr + 90d4: 65736572 ldrbvs r6, [r3, #-1394]! + 90d8: 64657672 strbtvs r7, [r5], #-1650 + 90dc: 00230200 eoreq r0, r3, r0, lsl #4 + 90e0: 06e11515 usateq r1, #1, r5, lsl #10 + 90e4: 44387501 ldrtmi r7, [r8], #-1281 + 90e8: 00617461 rsbeq r7, r1, r1, ror #8 + 90ec: 00022302 andeq r2, r2, r2, lsl #6 + 90f0: 00052b16 andeq r2, r5, r6, lsl fp + 90f4: 67736d00 ldrbvs r6, [r3, -r0, lsl #26]! + 90f8: 6174735f cmnvs r4, pc, asr r3 + 90fc: 5f737574 svcpl 0x00737574 + 9100: 00676174 rsbeq r6, r7, r4, ror r1 + 9104: ea131401 b 4ce110 + 9108: 01000005 tsteq r0, r5 + 910c: 5f67736d svcpl 0x0067736d + 9110: 65707974 ldrbvs r7, [r0, #-2420]! + 9114: 00230200 eoreq r0, r3, r0, lsl #4 + 9118: 14050301 strne r0, [r5], #-769 + 911c: 00067b13 andeq r7, r6, r3, lsl fp + 9120: 736d0100 cmnvc sp, #0 ; 0x0 + 9124: 74735f67 ldrbtvc r5, [r3], #-3943 + 9128: 00657461 rsbeq r7, r5, r1, ror #8 + 912c: 01002302 tsteq r0, r2, lsl #6 + 9130: 16000005 strne r0, [r0], -r5 + 9134: 00000592 muleq r0, r2, r5 + 9138: 7373656d cmnvc r3, #457179136 ; 0x1b400000 + 913c: 5f656761 svcpl 0x00656761 + 9140: 00676174 rsbeq r6, r7, r4, ror r1 + 9144: 23131510 tstcs r3, #67108864 ; 0x4000000 + 9148: 01000007 tsteq r0, r7 + 914c: 74533875 ldrbvc r3, [r3], #-2165 + 9150: 73757461 cmnvc r5, #1627389952 ; 0x61000000 + 9154: 00230200 eoreq r0, r3, r0, lsl #4 + 9158: 01e71515 mvneq r1, r5, lsl r5 + 915c: 38757001 ldmdacc r5!, {r0, ip, sp, lr}^ + 9160: 66667542 strbtvs r7, [r6], -r2, asr #10 + 9164: 02007265 andeq r7, r0, #1342177286 ; 0x50000006 + 9168: 13150423 tstne r5, #587202560 ; 0x23000000 + 916c: 0000067b andeq r0, r0, fp, ror r6 + 9170: 42387501 eorsmi r7, r8, #4194304 ; 0x400000 + 9174: 69536675 ldmdbvs r3, {r0, r2, r4, r5, r6, r9, sl, sp, lr}^ + 9178: 0200657a andeq r6, r0, #511705088 ; 0x1e800000 + 917c: 13150823 tstne r5, #2293760 ; 0x230000 + 9180: 000006b8 strheq r0, [r0], -r8 + 9184: 44626301 strbtmi r6, [r2], #-769 + 9188: 49617461 stmdbmi r1!, {r0, r5, r6, sl, ip, sp, lr}^ + 918c: 6369646e cmnvs r9, #1845493760 ; 0x6e000000 + 9190: 6f697461 svcvs 0x00697461 + 9194: 2302006e movwcs r0, #8302 ; 0x206e + 9198: d817000c ldmdale r7, {r2, r3} + 919c: 04000005 streq r0, [r0], #-5 + 91a0: 06ca1315 undefined + 91a4: 62010000 andvs r0, r1, #0 ; 0x0 + 91a8: 436b6375 cmnmi fp, #-738197503 ; 0xd4000001 + 91ac: 006c746e rsbeq r7, ip, lr, ror #8 + 91b0: 15002302 strne r2, [r0, #-770] + 91b4: 0006e013 andeq lr, r6, r3, lsl r0 + 91b8: 52760100 rsbspl r0, r6, #0 ; 0x0 + 91bc: 50316765 eorspl r6, r1, r5, ror #14 + 91c0: 6e435635 mcrvs 6, 2, r5, cr3, cr5, {1} + 91c4: 02006c74 andeq r6, r0, #29696 ; 0x7400 + 91c8: 13150023 tstne r5, #35 ; 0x23 + 91cc: 0000068a andeq r0, r0, sl, lsl #13 + 91d0: 65527601 ldrbvs r7, [r2, #-1537] + 91d4: 38503167 ldmdacc r0, {r0, r1, r2, r5, r6, r8, ip, sp}^ + 91d8: 006e4556 rsbeq r4, lr, r6, asr r5 + 91dc: 00002302 andeq r2, r0, r2, lsl #6 + 91e0: 6d726318 ldclvs 3, cr6, [r2, #-96]! + 91e4: 67655256 undefined + 91e8: 1500745f strne r7, [r0, #-1119] + 91ec: d21002b0 andsle r0, r0, #11 ; 0xb + 91f0: 6d180201 lfmvs f0, 4, [r8, #-4] + 91f4: 745f6773 ldrbvc r6, [pc], #1907 ; 91fc + 91f8: 5f657079 svcpl 0x00657079 + 91fc: ec150074 ldc 0, cr0, [r5], {116} + 9200: 01d92402 bicseq r2, r9, r2, lsl #8 + 9204: 766e1803 strbtvc r1, [lr], -r3, lsl #16 + 9208: 7079546d rsbsvc r5, r9, sp, ror #8 + 920c: 00745f65 rsbseq r5, r4, r5, ror #30 + 9210: 1703a315 smladne r3, r5, r3, sl + 9214: 6e18032d cdpvs 3, 1, cr0, cr8, cr13, {1} + 9218: 72456d76 subvc r6, r5, #7552 ; 0x1d80 + 921c: 00745f72 rsbseq r5, r4, r2, ror pc + 9220: 00b76110 adcseq r6, r7, r0, lsl r1 + 9224: 033b1700 teqeq fp, #0 ; 0x0 + 9228: 61657718 cmnvs r5, r8, lsl r7 + 922c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 9230: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 9234: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 9238: 5f72656c svcpl 0x0072656c + 923c: 74617473 strbtvc r7, [r1], #-1139 + 9240: 745f7365 ldrbvc r7, [pc], #869 ; 9248 + 9244: 04801500 streq r1, [r0], #1280 + 9248: 18023903 stmdane r2, {r0, r1, r8, fp, ip, sp} + 924c: 736e6573 cmnvc lr, #482344960 ; 0x1cc00000 + 9250: 6d5f726f lfmvs f7, 2, [pc, #-444] + 9254: 75736165 ldrbvc r6, [r3, #-357]! + 9258: 656d6572 strbvs r6, [sp, #-1394]! + 925c: 745f746e ldrbvc r7, [pc], #1134 ; 9264 + 9260: 05b21500 ldreq r1, [r2, #1280]! + 9264: 18024303 stmdane r2, {r0, r1, r8, r9, lr} + 9268: 7361656d cmnvc r1, #457179136 ; 0x1b400000 + 926c: 6d657275 sfmvs f7, 2, [r5, #-468]! + 9270: 5f746e65 svcpl 0x00746e65 + 9274: 74737973 ldrbtvc r7, [r3], #-2419 + 9278: 745f6d65 ldrbvc r6, [pc], #3429 ; 9280 + 927c: 06951500 ldreq r1, [r5], r0, lsl #10 + 9280: 18024903 stmdane r2, {r0, r1, r8, fp, lr} + 9284: 746e6975 strbtvc r6, [lr], #-2421 + 9288: 00745f38 rsbseq r5, r4, r8, lsr pc + 928c: 0a01d615 beq 7eae8 + 9290: 6218191a andsvs r1, r8, #425984 ; 0x68000 + 9294: 5f6c6f6f svcpl 0x006c6f6f + 9298: fb150074 blx 549472 + 929c: 132c0a0c teqne ip, #49152 ; 0xc000 + 92a0: 6e697518 mcrvs 5, 3, r7, cr9, cr8, {0} + 92a4: 5f363174 svcpl 0x00363174 + 92a8: fb150074 blx 549482 + 92ac: 191c0a01 ldmdbne ip, {r0, r9, fp} + 92b0: 6e697518 mcrvs 5, 3, r7, cr9, cr8, {0} + 92b4: 5f323374 svcpl 0x00323374 + 92b8: 93150074 tstls r5, #116 ; 0x74 + 92bc: 191e0a02 ldmdbne lr, {r1, r9, fp} + 92c0: 6c616318 stclvs 3, cr6, [r1], #-96 + 92c4: 6361626c cmnvs r1, #-1073741818 ; 0xc0000006 + 92c8: 00745f6b rsbseq r5, r4, fp, ror #30 + 92cc: 2201f515 andcs pc, r1, #88080384 ; 0x5400000 + 92d0: 63180f16 tstvs r8, #88 ; 0x58 + 92d4: 75426d72 strbvc r6, [r2, #-3442] + 92d8: 6e436b63 fnmacdvs d22, d3, d19 + 92dc: 745f6c74 ldrbvc r6, [pc], #3188 ; 92e4 + 92e0: 07ee1500 strbeq r1, [lr, r0, lsl #10]! + 92e4: 0201e710 andeq lr, r1, #4194304 ; 0x400000 + 92e8: 6d726318 ldclvs 3, cr6, [r2, #-96]! + 92ec: 67655256 undefined + 92f0: 56355031 undefined + 92f4: 6c746e43 ldclvs 14, cr6, [r4], #-268 + 92f8: 1500745f strne r7, [r0, #-1119] + 92fc: ed1008d6 ldc 8, cr0, [r0, #-856] + 9300: 63180201 tstvs r8, #268435456 ; 0x10000000 + 9304: 52566d72 subspl r6, r6, #7296 ; 0x1c80 + 9308: 6e436765 cdpvs 7, 4, cr6, cr3, cr5, {3} + 930c: 745f6c74 ldrbvc r6, [pc], #3188 ; 9314 + 9310: 098f1500 stmibeq pc, {r8, sl, ip} + 9314: 0201f810 andeq pc, r1, #1048576 ; 0x100000 + 9318: 616d7318 cmnvs sp, r8, lsl r3 + 931c: 64705f63 ldrbtvs r5, [r0], #-3939 + 9320: 00745f75 rsbseq r5, r4, r5, ror pc + 9324: 2409b415 strcs fp, [r9], #-1045 + 9328: 18030196 stmdane r3, {r1, r2, r4, r7, r8} + 932c: 5f67736d svcpl 0x0067736d + 9330: 74617473 strbtvc r7, [r1], #-1139 + 9334: 745f7375 ldrbvc r7, [pc], #885 ; 933c + 9338: 09e81500 stmibeq r8!, {r8, sl, ip}^ + 933c: 0301df24 movweq sp, #7972 ; 0x1f24 + 9340: 73656d18 cmnvc r5, #1536 ; 0x600 + 9344: 65676173 strbvs r6, [r7, #-371]! + 9348: 1500745f strne r7, [r0, #-1119] + 934c: 83240aab teqhi r4, #700416 ; 0xab000 + 9350: 00000302 andeq r0, r0, r2, lsl #6 + 9354: 000003c8 andeq r0, r0, r8, asr #7 + 9358: 0b780003 bleq 1e0936c + 935c: 01040000 tsteq r4, r0 + 9360: 445c3a43 ldrbmi r3, [ip], #-2627 + 9364: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9368: 73746e65 cmnvc r4, #1616 ; 0x650 + 936c: 646e6120 strbtvs r6, [lr], #-288 + 9370: 74655320 strbtvc r5, [r5], #-800 + 9374: 676e6974 undefined + 9378: 616d5c73 smcvs 54723 + 937c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9380: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9384: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9388: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 938c: 775c7374 undefined + 9390: 6f632d73 svcvs 0x00632d73 + 9394: 6f72746e svcvs 0x0072746e + 9398: 65575c6c ldrbvs r5, [r7, #-3180] + 939c: 65687461 strbvs r7, [r8, #-1121]! + 93a0: 74532072 ldrbvc r2, [r3], #-114 + 93a4: 6f697461 svcvs 0x00697461 + 93a8: 6f43206e svcvs 0x0043206e + 93ac: 6f72746e svcvs 0x0072746e + 93b0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 93b4: 7070415c rsbsvc r4, r0, ip, asr r1 + 93b8: 6163696c cmnvs r3, ip, ror #18 + 93bc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 93c0: 756f535c strbvc r5, [pc, #-860]! ; 906c + 93c4: 5c656372 stclpl 3, cr6, [r5], #-456 + 93c8: 74616577 strbtvc r6, [r1], #-1399 + 93cc: 5f726568 svcpl 0x00726568 + 93d0: 74617473 strbtvc r7, [r1], #-1139 + 93d4: 5f6e6f69 svcpl 0x006e6f69 + 93d8: 746e6f63 strbtvc r6, [lr], #-3939 + 93dc: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 93e0: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 93e4: 52414900 subpl r4, r1, #0 ; 0x0 + 93e8: 534e4120 movtpl r4, #57632 ; 0xe120 + 93ec: 2f432049 svccs 0x00432049 + 93f0: 202b2b43 eorcs r2, fp, r3, asr #22 + 93f4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 93f8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 93fc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9400: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9404: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9408: 572f3539 undefined + 940c: 4b203233 blmi 815ce0 + 9410: 534b4349 movtpl r4, #45897 ; 0xb349 + 9414: 54524154 ldrbpl r4, [r2], #-340 + 9418: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 941c: 4d524120 ldfmie f4, [r2, #-128] + 9420: 56040100 strpl r0, [r4], -r0, lsl #2 + 9424: 02380000 eorseq r0, r8, #0 ; 0x0 + 9428: 41040000 tstmi r4, r0 + 942c: 6d5f4b43 vldrvs d20, [pc, #-268] ; 9328 + 9430: 10006773 andne r6, r0, r3, ror r7 + 9434: 00009340 andeq r9, r0, r0, asr #6 + 9438: 0b019c03 bleq 7044c + 943c: 44030501 strmi r0, [r3], #-1281 + 9440: 04004052 streq r4, [r0], #-82 + 9444: 546d764e strbtpl r7, [sp], #-1614 + 9448: 00657079 rsbeq r7, r5, r9, ror r0 + 944c: 00920510 addseq r0, r2, r0, lsl r5 + 9450: 01b20300 undefined instruction 0x01b20300 + 9454: 0305010b movweq r0, #20747 ; 0x510b + 9458: 0040525c subeq r5, r0, ip, asr r2 + 945c: 75436704 strbvc r6, [r3, #-1796] + 9460: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 9464: 6e655374 mcrvs 3, 3, r5, cr5, cr4, {3} + 9468: 00726f73 rsbseq r6, r2, r3, ror pc + 946c: 00924b10 addseq r4, r2, r0, lsl fp + 9470: 01a60300 undefined instruction 0x01a60300 + 9474: 03050116 movweq r0, #20758 ; 0x5116 + 9478: 00405258 subeq r5, r0, r8, asr r2 + 947c: 44626704 strbtmi r6, [r2], #-1796 + 9480: 49617461 stmdbmi r1!, {r0, r5, r6, sl, ip, sp, lr}^ + 9484: 6369646e cmnvs r9, #1845493760 ; 0x6e000000 + 9488: 6f697461 svcvs 0x00697461 + 948c: 616c466e cmnvs ip, lr, ror #12 + 9490: 92100067 andsls r0, r0, #103 ; 0x67 + 9494: 03000092 movweq r0, #146 ; 0x92 + 9498: 010801a0 smlatbeq r8, r0, r1, r0 + 949c: 52540305 subspl r0, r4, #335544320 ; 0x14000000 + 94a0: 67040040 strvs r0, [r4, -r0, asr #32] + 94a4: 43363175 teqmi r6, #1073741853 ; 0x4000001d + 94a8: 65727275 ldrbvs r7, [r2, #-629]! + 94ac: 7250746e subsvc r7, r0, #1845493760 ; 0x6e000000 + 94b0: 75737365 ldrbvc r7, [r3, #-869]! + 94b4: 6e456572 mcrvs 5, 2, r6, cr5, cr2, {3} + 94b8: a0100067 andsge r0, r0, r7, rrx + 94bc: 03000092 movweq r0, #146 ; 0x92 + 94c0: 010a01ab smlatbeq sl, fp, r1, r0 + 94c4: 526a0305 rsbpl r0, sl, #335544320 ; 0x14000000 + 94c8: 67040040 strvs r0, [r4, -r0, asr #32] + 94cc: 43363175 teqmi r6, #1073741853 ; 0x4000001d + 94d0: 65727275 ldrbvs r7, [r2, #-629]! + 94d4: 7250746e subsvc r7, r0, #1845493760 ; 0x6e000000 + 94d8: 75737365 ldrbvc r7, [r3, #-869]! + 94dc: 6e496572 mcrvs 5, 2, r6, cr9, cr2, {3} + 94e0: a0100074 andsge r0, r0, r4, ror r0 + 94e4: 03000092 movweq r0, #146 ; 0x92 + 94e8: 010a01a8 smlatbeq sl, r8, r1, r0 + 94ec: 52640305 rsbpl r0, r4, #335544320 ; 0x14000000 + 94f0: 67040040 strvs r0, [r4, -r0, asr #32] + 94f4: 43363175 teqmi r6, #1073741853 ; 0x4000001d + 94f8: 65727275 ldrbvs r7, [r2, #-629]! + 94fc: 6554746e ldrbvs r7, [r4, #-1134] + 9500: 7265706d rsbvc r7, r5, #109 ; 0x6d + 9504: 72757461 rsbsvc r7, r5, #1627389952 ; 0x61000000 + 9508: 676e4565 strbvs r4, [lr, -r5, ror #10]! + 950c: 92a01000 adcls r1, r0, #0 ; 0x0 + 9510: aa030000 bge c9518 + 9514: 05010a01 streq r0, [r1, #-2561] + 9518: 40526803 subsmi r6, r2, r3, lsl #16 + 951c: 75670400 strbvc r0, [r7, #-1024]! + 9520: 75433631 strbvc r3, [r3, #-1585] + 9524: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 9528: 6d655474 cfstrdvs mvd5, [r5, #-464]! + 952c: 61726570 cmnvs r2, r0, ror r5 + 9530: 65727574 ldrbvs r7, [r2, #-1396]! + 9534: 00746e49 rsbseq r6, r4, r9, asr #28 + 9538: 0092a010 addseq sl, r2, r0, lsl r0 + 953c: 01a70300 undefined instruction 0x01a70300 + 9540: 0305010a movweq r0, #20746 ; 0x510a + 9544: 00405262 subeq r5, r0, r2, ror #4 + 9548: 31756704 cmncc r5, r4, lsl #14 + 954c: 72754336 rsbsvc r4, r5, #-671088640 ; 0xd8000000 + 9550: 746e6572 strbtvc r6, [lr], #-1394 + 9554: 74614256 strbtvc r4, [r1], #-598 + 9558: 92a01000 adcls r1, r0, #0 ; 0x0 + 955c: ad030000 stcge 0, cr0, [r3] + 9560: 05010a01 streq r0, [r1, #-2561] + 9564: 40526e03 subsmi r6, r2, r3, lsl #28 + 9568: 75670400 strbvc r0, [r7, #-1024]! + 956c: 75433631 strbvc r3, [r3, #-1585] + 9570: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 9574: 6e695774 mcrvs 7, 3, r5, cr9, cr4, {3} + 9578: 72694464 rsbvc r4, r9, #1677721600 ; 0x64000000 + 957c: 92a01000 adcls r1, r0, #0 ; 0x0 + 9580: ae030000 cdpge 0, 0, cr0, cr3, cr0, {0} + 9584: 05010a01 streq r0, [r1, #-2561] + 9588: 40527003 subsmi r7, r2, r3 + 958c: 75670400 strbvc r0, [r7, #-1024]! + 9590: 75433631 strbvc r3, [r3, #-1585] + 9594: 6e657272 mcrvs 2, 3, r7, cr5, cr2, {3} + 9598: 6e695774 mcrvs 7, 3, r5, cr9, cr4, {3} + 959c: 65705364 ldrbvs r5, [r0, #-868]! + 95a0: 6e456465 cdpvs 4, 4, cr6, cr5, cr5, {3} + 95a4: a0100067 andsge r0, r0, r7, rrx + 95a8: 03000092 movweq r0, #146 ; 0x92 + 95ac: 010a01ac smlatbeq sl, ip, r1, r0 + 95b0: 526c0305 rsbpl r0, ip, #335544320 ; 0x14000000 + 95b4: 67040040 strvs r0, [r4, -r0, asr #32] + 95b8: 43363175 teqmi r6, #1073741853 ; 0x4000001d + 95bc: 65727275 ldrbvs r7, [r2, #-629]! + 95c0: 6957746e ldmdbvs r7, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ + 95c4: 7053646e subsvc r6, r3, lr, ror #8 + 95c8: 49646565 stmdbmi r4!, {r0, r2, r5, r6, r8, sl, sp, lr}^ + 95cc: 1000746e andne r7, r0, lr, ror #8 + 95d0: 000092a0 andeq r9, r0, r0, lsr #5 + 95d4: 0a01a903 beq 739e8 + 95d8: 66030501 strvs r0, [r3], -r1, lsl #10 + 95dc: 04004052 streq r4, [r0], #-82 + 95e0: 43387567 teqmi r8, #432013312 ; 0x19c00000 + 95e4: 65727275 ldrbvs r7, [r2, #-629]! + 95e8: 6142746e cmpvs r2, lr, ror #8 + 95ec: 694c6b63 stmdbvs ip, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ + 95f0: 00746867 rsbseq r6, r4, r7, ror #16 + 95f4: 00928310 addseq r8, r2, r0, lsl r3 + 95f8: 01b00300 lslseq r0, r0, #6 + 95fc: 03050109 movweq r0, #20745 ; 0x5109 + 9600: 0040525a subeq r5, r0, sl, asr r2 + 9604: 38756704 ldmdacc r5!, {r2, r8, r9, sl, sp, lr}^ + 9608: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 + 960c: 43746e65 cmnmi r4, #1616 ; 0x650 + 9610: 6e6e6168 powvsez f6, f6, #0.0 + 9614: 10006c65 andne r6, r0, r5, ror #24 + 9618: 00009283 andeq r9, r0, r3, lsl #5 + 961c: 0901af03 stmdbeq r1, {r0, r1, r8, r9, sl, fp, sp, pc} + 9620: 59030501 stmdbpl r3, {r0, r8, sl} + 9624: 04004052 streq r4, [r0], #-82 + 9628: 43387567 teqmi r8, #432013312 ; 0x19c00000 + 962c: 65727275 ldrbvs r7, [r2, #-629]! + 9630: 654d746e strbvs r7, [sp, #-1134] + 9634: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 + 9638: 73795365 cmnvc r9, #-1811939327 ; 0x94000001 + 963c: 006d6574 rsbeq r6, sp, r4, ror r5 + 9640: 00926710 addseq r6, r2, r0, lsl r7 + 9644: 01a50300 undefined instruction 0x01a50300 + 9648: 03050116 movweq r0, #20758 ; 0x5116 + 964c: 00405257 subeq r5, r0, r7, asr r2 + 9650: 38756704 ldmdacc r5!, {r2, r8, r9, sl, sp, lr}^ + 9654: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 + 9658: 50746e65 rsbspl r6, r4, r5, ror #28 + 965c: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 + 9660: 6576654c ldrbvs r6, [r6, #-1356]! + 9664: 8310006c tsthi r0, #108 ; 0x6c + 9668: 03000092 movweq r0, #146 ; 0x92 + 966c: 010901b4 strheq r0, [r9, -r4] + 9670: 525e0305 subspl r0, lr, #335544320 ; 0x14000000 + 9674: 67040040 strvs r0, [r4, -r0, asr #32] + 9678: 43503875 cmpmi r0, #7667712 ; 0x750000 + 967c: 65746e49 ldrbvs r6, [r4, #-3657]! + 9680: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 9684: 61655265 cmnvs r5, r5, ror #4 + 9688: 10007964 andne r7, r0, r4, ror #18 + 968c: 00009283 andeq r9, r0, r3, lsl #5 + 9690: 0901b303 stmdbeq r1, {r0, r1, r8, r9, ip, sp, pc} + 9694: 5d030501 cfstr32pl mvfx0, [r3, #-4] + 9698: 04004052 streq r4, [r0], #-82 + 969c: 54387567 ldrtpl r7, [r8], #-1383 + 96a0: 53706d65 cmnpl r0, #6464 ; 0x1940 + 96a4: 006e6769 rsbeq r6, lr, r9, ror #14 + 96a8: 00928310 addseq r8, r2, r0, lsl r3 + 96ac: 01b10300 undefined instruction 0x01b10300 + 96b0: 03050109 movweq r0, #20745 ; 0x5109 + 96b4: 0040525b subeq r5, r0, fp, asr r2 + 96b8: 38756704 ldmdacc r5!, {r2, r8, r9, sl, sp, lr}^ + 96bc: 696c6156 stmdbvs ip!, {r1, r2, r4, r6, r8, sp, lr}^ + 96c0: 74654e64 strbtvc r4, [r5], #-3684 + 96c4: 6b636150 blvs 18e1c0c + 96c8: 10007465 andne r7, r0, r5, ror #8 + 96cc: 00009283 andeq r9, r0, r3, lsl #5 + 96d0: 0901a403 stmdbeq r1, {r0, r1, sl, sp, pc} + 96d4: 56030501 strpl r0, [r3], -r1, lsl #10 + 96d8: 04004052 streq r4, [r0], #-82 + 96dc: 57387567 ldrpl r7, [r8, -r7, ror #10]! + 96e0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 96e4: 76457265 strbvc r7, [r5], -r5, ror #4 + 96e8: 73746e65 cmnvc r4, #1616 ; 0x650 + 96ec: 92831000 addls r1, r3, #0 ; 0x0 + 96f0: a3030000 movwge r0, #12288 ; 0x3000 + 96f4: 05010901 streq r0, [r1, #-2305] + 96f8: 40525503 subsmi r5, r2, r3, lsl #10 + 96fc: 38750400 ldmdacc r5!, {sl}^ + 9700: 54524155 ldrbpl r4, [r2], #-341 + 9704: 75427852 strbvc r7, [r2, #-2130] + 9708: 72656666 rsbvc r6, r5, #106954752 ; 0x6600000 + 970c: 8fb71000 svchi 0x00b71000 + 9710: a1030000 tstge r3, r0 + 9714: 05010901 streq r0, [r1, #-2305] + 9718: 40527403 subsmi r7, r2, r3, lsl #8 + 971c: 00000000 andeq r0, r0, r0 + 9720: 00000104 andeq r0, r0, r4, lsl #2 + 9724: 0b780003 bleq 1e09738 + 9728: 01040000 tsteq r4, r0 + 972c: 445c3a43 ldrbmi r3, [ip], #-2627 + 9730: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9734: 73746e65 cmnvc r4, #1616 ; 0x650 + 9738: 646e6120 strbtvs r6, [lr], #-288 + 973c: 74655320 strbtvc r5, [r5], #-800 + 9740: 676e6974 undefined + 9744: 616d5c73 smcvs 54723 + 9748: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 974c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9750: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9754: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9758: 775c7374 undefined + 975c: 6f632d73 svcvs 0x00632d73 + 9760: 6f72746e svcvs 0x0072746e + 9764: 65575c6c ldrbvs r5, [r7, #-3180] + 9768: 65687461 strbvs r7, [r8, #-1121]! + 976c: 74532072 ldrbvc r2, [r3], #-114 + 9770: 6f697461 svcvs 0x00697461 + 9774: 6f43206e svcvs 0x0043206e + 9778: 6f72746e svcvs 0x0072746e + 977c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9780: 7070415c rsbsvc r4, r0, ip, asr r1 + 9784: 6163696c cmnvs r3, ip, ror #18 + 9788: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 978c: 756f535c strbvc r5, [pc, #-860]! ; 9438 + 9790: 5c656372 stclpl 3, cr6, [r5], #-456 + 9794: 74616577 strbtvc r6, [r1], #-1399 + 9798: 5f726568 svcpl 0x00726568 + 979c: 74617473 strbtvc r7, [r1], #-1139 + 97a0: 5f6e6f69 svcpl 0x006e6f69 + 97a4: 746e6f63 strbtvc r6, [lr], #-3939 + 97a8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 97ac: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 97b0: 52414900 subpl r4, r1, #0 ; 0x0 + 97b4: 534e4120 movtpl r4, #57632 ; 0xe120 + 97b8: 2f432049 svccs 0x00432049 + 97bc: 202b2b43 eorcs r2, fp, r3, asr #22 + 97c0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 97c4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 97c8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 97cc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 97d0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 97d4: 572f3539 undefined + 97d8: 4b203233 blmi 8160ac + 97dc: 534b4349 movtpl r4, #45897 ; 0xb349 + 97e0: 54524154 ldrbpl r4, [r2], #-340 + 97e4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 97e8: 4d524120 ldfmie f4, [r2, #-128] + 97ec: 56040100 strpl r0, [r4], -r0, lsl #2 + 97f0: 02380000 eorseq r0, r8, #0 ; 0x0 + 97f4: 52040000 andpl r0, r4, #0 ; 0x0 + 97f8: 736d5f58 cmnvc sp, #352 ; 0x160 + 97fc: 40100067 andsmi r0, r0, r7, rrx + 9800: 03000093 movweq r0, #147 ; 0x93 + 9804: 010b019e strbeq r0, [fp, -lr] + 9808: 52800305 addpl r0, r0, #335544320 ; 0x14000000 + 980c: 54040040 strpl r0, [r4], #-64 + 9810: 736d5f58 cmnvc sp, #352 ; 0x160 + 9814: 40100067 andsmi r0, r0, r7, rrx + 9818: 03000093 movweq r0, #147 ; 0x93 + 981c: 010b019d strbeq r0, [fp, -sp] + 9820: 52900305 addspl r0, r0, #335544320 ; 0x14000000 + 9824: 00000040 andeq r0, r0, r0, asr #32 + 9828: 000000e8 andeq r0, r0, r8, ror #1 + 982c: 0b780003 bleq 1e09840 + 9830: 01040000 tsteq r4, r0 + 9834: 445c3a43 ldrbmi r3, [ip], #-2627 + 9838: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 983c: 73746e65 cmnvc r4, #1616 ; 0x650 + 9840: 646e6120 strbtvs r6, [lr], #-288 + 9844: 74655320 strbtvc r5, [r5], #-800 + 9848: 676e6974 undefined + 984c: 616d5c73 smcvs 54723 + 9850: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9854: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9858: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 985c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9860: 775c7374 undefined + 9864: 6f632d73 svcvs 0x00632d73 + 9868: 6f72746e svcvs 0x0072746e + 986c: 65575c6c ldrbvs r5, [r7, #-3180] + 9870: 65687461 strbvs r7, [r8, #-1121]! + 9874: 74532072 ldrbvc r2, [r3], #-114 + 9878: 6f697461 svcvs 0x00697461 + 987c: 6f43206e svcvs 0x0043206e + 9880: 6f72746e svcvs 0x0072746e + 9884: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9888: 7070415c rsbsvc r4, r0, ip, asr r1 + 988c: 6163696c cmnvs r3, ip, ror #18 + 9890: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9894: 756f535c strbvc r5, [pc, #-860]! ; 9540 + 9898: 5c656372 stclpl 3, cr6, [r5], #-456 + 989c: 74616577 strbtvc r6, [r1], #-1399 + 98a0: 5f726568 svcpl 0x00726568 + 98a4: 74617473 strbtvc r7, [r1], #-1139 + 98a8: 5f6e6f69 svcpl 0x006e6f69 + 98ac: 746e6f63 strbtvc r6, [lr], #-3939 + 98b0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 98b4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 98b8: 52414900 subpl r4, r1, #0 ; 0x0 + 98bc: 534e4120 movtpl r4, #57632 ; 0xe120 + 98c0: 2f432049 svccs 0x00432049 + 98c4: 202b2b43 eorcs r2, fp, r3, asr #22 + 98c8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 98cc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 98d0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 98d4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 98d8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 98dc: 572f3539 undefined + 98e0: 4b203233 blmi 8161b4 + 98e4: 534b4349 movtpl r4, #45897 ; 0xb349 + 98e8: 54524154 ldrbpl r4, [r2], #-340 + 98ec: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 98f0: 4d524120 ldfmie f4, [r2, #-128] + 98f4: 56040100 strpl r0, [r4], -r0, lsl #2 + 98f8: 02380000 eorseq r0, r8, #0 ; 0x0 + 98fc: 68040000 stmdavs r4, {} + 9900: 10007865 andne r7, r0, r5, ror #16 + 9904: 00008d15 andeq r8, r0, r5, lsl sp + 9908: 0f01d203 svceq 0x0001d203 + 990c: 14030501 strne r0, [r3], #-1281 + 9910: 0000403f andeq r4, r0, pc, lsr r0 + 9914: 00000120 andeq r0, r0, r0, lsr #2 + 9918: 0b780003 bleq 1e0992c + 991c: 06040000 streq r0, [r4], -r0 + 9920: 445c3a43 ldrbmi r3, [ip], #-2627 + 9924: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9928: 73746e65 cmnvc r4, #1616 ; 0x650 + 992c: 646e6120 strbtvs r6, [lr], #-288 + 9930: 74655320 strbtvc r5, [r5], #-800 + 9934: 676e6974 undefined + 9938: 616d5c73 smcvs 54723 + 993c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9940: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9944: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9948: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 994c: 775c7374 undefined + 9950: 6f632d73 svcvs 0x00632d73 + 9954: 6f72746e svcvs 0x0072746e + 9958: 65575c6c ldrbvs r5, [r7, #-3180] + 995c: 65687461 strbvs r7, [r8, #-1121]! + 9960: 74532072 ldrbvc r2, [r3], #-114 + 9964: 6f697461 svcvs 0x00697461 + 9968: 6f43206e svcvs 0x0043206e + 996c: 6f72746e svcvs 0x0072746e + 9970: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9974: 7070415c rsbsvc r4, r0, ip, asr r1 + 9978: 6163696c cmnvs r3, ip, ror #18 + 997c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9980: 756f535c strbvc r5, [pc, #-860]! ; 962c + 9984: 5c656372 stclpl 3, cr6, [r5], #-456 + 9988: 74616577 strbtvc r6, [r1], #-1399 + 998c: 5f726568 svcpl 0x00726568 + 9990: 74617473 strbtvc r7, [r1], #-1139 + 9994: 5f6e6f69 svcpl 0x006e6f69 + 9998: 746e6f63 strbtvc r6, [lr], #-3939 + 999c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 99a0: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 99a4: 52414900 subpl r4, r1, #0 ; 0x0 + 99a8: 534e4120 movtpl r4, #57632 ; 0xe120 + 99ac: 2f432049 svccs 0x00432049 + 99b0: 202b2b43 eorcs r2, fp, r3, asr #22 + 99b4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 99b8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 99bc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 99c0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 99c4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 99c8: 572f3539 undefined + 99cc: 4b203233 blmi 8162a0 + 99d0: 534b4349 movtpl r4, #45897 ; 0xb349 + 99d4: 54524154 ldrbpl r4, [r2], #-340 + 99d8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 99dc: 4d524120 ldfmie f4, [r2, #-128] + 99e0: 09600100 stmdbeq r0!, {r8}^ + 99e4: 09840040 stmibeq r4, {r6} + 99e8: 5ed80040 cdppl 0, 13, cr0, cr8, cr0, {2} + 99ec: 2d7d0000 ldclcs 0, cr0, [sp] + 99f0: 13100000 tstne r0, #0 ; 0x0 + 99f4: 0800008c stmdaeq r0, {r2, r3, r7} + 99f8: 00000122 andeq r0, r0, r2, lsr #2 + 99fc: 5f747570 svcpl 0x00747570 + 9a00: 00786568 rsbseq r6, r8, r8, ror #10 + 9a04: 0601d501 streq sp, [r1], -r1, lsl #10 + 9a08: 001abd01 andseq fp, sl, r1, lsl #26 + 9a0c: 40096000 andmi r6, r9, r0 + 9a10: 40098400 andmi r8, r9, r0, lsl #8 + 9a14: 00780900 rsbseq r0, r8, r0, lsl #18 + 9a18: 1601d501 strne sp, [r1], -r1, lsl #10 + 9a1c: 00928310 addseq r8, r2, r0, lsl r3 + 9a20: 001add00 andseq sp, sl, r0, lsl #26 + 9a24: 00730a00 rsbseq r0, r3, r0, lsl #20 + 9a28: 0b01d701 bleq 7f634 + 9a2c: 008f8310 addeq r8, pc, r0, lsl r3 + 9a30: 001afa00 andseq pc, sl, r0, lsl #20 + 9a34: 00000000 andeq r0, r0, r0 + 9a38: 00000114 andeq r0, r0, r4, lsl r1 + 9a3c: 0b780003 bleq 1e09a50 + 9a40: 06040000 streq r0, [r4], -r0 + 9a44: 445c3a43 ldrbmi r3, [ip], #-2627 + 9a48: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9a4c: 73746e65 cmnvc r4, #1616 ; 0x650 + 9a50: 646e6120 strbtvs r6, [lr], #-288 + 9a54: 74655320 strbtvc r5, [r5], #-800 + 9a58: 676e6974 undefined + 9a5c: 616d5c73 smcvs 54723 + 9a60: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9a64: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9a68: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9a6c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9a70: 775c7374 undefined + 9a74: 6f632d73 svcvs 0x00632d73 + 9a78: 6f72746e svcvs 0x0072746e + 9a7c: 65575c6c ldrbvs r5, [r7, #-3180] + 9a80: 65687461 strbvs r7, [r8, #-1121]! + 9a84: 74532072 ldrbvc r2, [r3], #-114 + 9a88: 6f697461 svcvs 0x00697461 + 9a8c: 6f43206e svcvs 0x0043206e + 9a90: 6f72746e svcvs 0x0072746e + 9a94: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9a98: 7070415c rsbsvc r4, r0, ip, asr r1 + 9a9c: 6163696c cmnvs r3, ip, ror #18 + 9aa0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9aa4: 756f535c strbvc r5, [pc, #-860]! ; 9750 + 9aa8: 5c656372 stclpl 3, cr6, [r5], #-456 + 9aac: 74616577 strbtvc r6, [r1], #-1399 + 9ab0: 5f726568 svcpl 0x00726568 + 9ab4: 74617473 strbtvc r7, [r1], #-1139 + 9ab8: 5f6e6f69 svcpl 0x006e6f69 + 9abc: 746e6f63 strbtvc r6, [lr], #-3939 + 9ac0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 9ac4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 9ac8: 52414900 subpl r4, r1, #0 ; 0x0 + 9acc: 534e4120 movtpl r4, #57632 ; 0xe120 + 9ad0: 2f432049 svccs 0x00432049 + 9ad4: 202b2b43 eorcs r2, fp, r3, asr #22 + 9ad8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9adc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 9ae0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9ae4: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9ae8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9aec: 572f3539 undefined + 9af0: 4b203233 blmi 8163c4 + 9af4: 534b4349 movtpl r4, #45897 ; 0xb349 + 9af8: 54524154 ldrbpl r4, [r2], #-340 + 9afc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 9b00: 4d524120 ldfmie f4, [r2, #-128] + 9b04: 09840100 stmibeq r4, {r8} + 9b08: 098c0040 stmibeq ip, {r6} + 9b0c: 5f9c0040 svcpl 0x009c0040 + 9b10: 2df60000 ldclcs 0, cr0, [r6] + 9b14: 13100000 tstne r0, #0 ; 0x0 + 9b18: 0800008c stmdaeq r0, {r2, r3, r7} + 9b1c: 00000114 andeq r0, r0, r4, lsl r1 + 9b20: 5f747570 svcpl 0x00747570 + 9b24: 31786568 cmncc r8, r8, ror #10 + 9b28: e0010036 and r0, r1, r6, lsr r0 + 9b2c: 0e010601 cfmadd32eq mvax0, mvfx0, mvfx1, mvfx1 + 9b30: 8400001b strhi r0, [r0], #-27 + 9b34: 8c004009 stchi 0, cr4, [r0], {9} + 9b38: 09004009 stmdbeq r0, {r0, r3, lr} + 9b3c: e0010078 and r0, r1, r8, ror r0 + 9b40: a0101901 andsge r1, r0, r1, lsl #18 + 9b44: 2e000092 mcrcs 0, 0, r0, cr0, cr2, {4} + 9b48: 0000001b andeq r0, r0, fp, lsl r0 + 9b4c: 00000000 andeq r0, r0, r0 + 9b50: 00000114 andeq r0, r0, r4, lsl r1 + 9b54: 0b780003 bleq 1e09b68 + 9b58: 06040000 streq r0, [r4], -r0 + 9b5c: 445c3a43 ldrbmi r3, [ip], #-2627 + 9b60: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9b64: 73746e65 cmnvc r4, #1616 ; 0x650 + 9b68: 646e6120 strbtvs r6, [lr], #-288 + 9b6c: 74655320 strbtvc r5, [r5], #-800 + 9b70: 676e6974 undefined + 9b74: 616d5c73 smcvs 54723 + 9b78: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9b7c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9b80: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9b84: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9b88: 775c7374 undefined + 9b8c: 6f632d73 svcvs 0x00632d73 + 9b90: 6f72746e svcvs 0x0072746e + 9b94: 65575c6c ldrbvs r5, [r7, #-3180] + 9b98: 65687461 strbvs r7, [r8, #-1121]! + 9b9c: 74532072 ldrbvc r2, [r3], #-114 + 9ba0: 6f697461 svcvs 0x00697461 + 9ba4: 6f43206e svcvs 0x0043206e + 9ba8: 6f72746e svcvs 0x0072746e + 9bac: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9bb0: 7070415c rsbsvc r4, r0, ip, asr r1 + 9bb4: 6163696c cmnvs r3, ip, ror #18 + 9bb8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9bbc: 756f535c strbvc r5, [pc, #-860]! ; 9868 + 9bc0: 5c656372 stclpl 3, cr6, [r5], #-456 + 9bc4: 74616577 strbtvc r6, [r1], #-1399 + 9bc8: 5f726568 svcpl 0x00726568 + 9bcc: 74617473 strbtvc r7, [r1], #-1139 + 9bd0: 5f6e6f69 svcpl 0x006e6f69 + 9bd4: 746e6f63 strbtvc r6, [lr], #-3939 + 9bd8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 9bdc: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 9be0: 52414900 subpl r4, r1, #0 ; 0x0 + 9be4: 534e4120 movtpl r4, #57632 ; 0xe120 + 9be8: 2f432049 svccs 0x00432049 + 9bec: 202b2b43 eorcs r2, fp, r3, asr #22 + 9bf0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9bf4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 9bf8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9bfc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9c00: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9c04: 572f3539 undefined + 9c08: 4b203233 blmi 8164dc + 9c0c: 534b4349 movtpl r4, #45897 ; 0xb349 + 9c10: 54524154 ldrbpl r4, [r2], #-340 + 9c14: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 9c18: 4d524120 ldfmie f4, [r2, #-128] + 9c1c: 098c0100 stmibeq ip, {r8} + 9c20: 09a80040 stmibeq r8!, {r6} + 9c24: 605c0040 subsvs r0, ip, r0, asr #32 + 9c28: 2e5a0000 cdpcs 0, 5, cr0, cr10, cr0, {0} + 9c2c: 13100000 tstne r0, #0 ; 0x0 + 9c30: 0800008c stmdaeq r0, {r2, r3, r7} + 9c34: 00000114 andeq r0, r0, r4, lsl r1 + 9c38: 5f747570 svcpl 0x00747570 + 9c3c: 33786568 cmncc r8, #436207616 ; 0x1a000000 + 9c40: e6010032 undefined + 9c44: 41010601 tstmi r1, r1, lsl #12 + 9c48: 8c00001b stchi 0, cr0, [r0], {27} + 9c4c: a8004009 stmdage r0, {r0, r3, lr} + 9c50: 09004009 stmdbeq r0, {r0, r3, lr} + 9c54: e6010078 undefined + 9c58: b0101901 andslt r1, r0, r1, lsl #18 + 9c5c: 61000092 swpvs r0, r2, [r0] + 9c60: 0000001b andeq r0, r0, fp, lsl r0 + 9c64: 00000000 andeq r0, r0, r0 + 9c68: 000000e0 andeq r0, r0, r0, ror #1 + 9c6c: 0b780003 bleq 1e09c80 + 9c70: 06040000 streq r0, [r4], -r0 + 9c74: 445c3a43 ldrbmi r3, [ip], #-2627 + 9c78: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9c7c: 73746e65 cmnvc r4, #1616 ; 0x650 + 9c80: 646e6120 strbtvs r6, [lr], #-288 + 9c84: 74655320 strbtvc r5, [r5], #-800 + 9c88: 676e6974 undefined + 9c8c: 616d5c73 smcvs 54723 + 9c90: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9c94: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9c98: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9c9c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9ca0: 775c7374 undefined + 9ca4: 6f632d73 svcvs 0x00632d73 + 9ca8: 6f72746e svcvs 0x0072746e + 9cac: 65575c6c ldrbvs r5, [r7, #-3180] + 9cb0: 65687461 strbvs r7, [r8, #-1121]! + 9cb4: 74532072 ldrbvc r2, [r3], #-114 + 9cb8: 6f697461 svcvs 0x00697461 + 9cbc: 6f43206e svcvs 0x0043206e + 9cc0: 6f72746e svcvs 0x0072746e + 9cc4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9cc8: 7070415c rsbsvc r4, r0, ip, asr r1 + 9ccc: 6163696c cmnvs r3, ip, ror #18 + 9cd0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9cd4: 756f535c strbvc r5, [pc, #-860]! ; 9980 + 9cd8: 5c656372 stclpl 3, cr6, [r5], #-456 + 9cdc: 74616577 strbtvc r6, [r1], #-1399 + 9ce0: 5f726568 svcpl 0x00726568 + 9ce4: 74617473 strbtvc r7, [r1], #-1139 + 9ce8: 5f6e6f69 svcpl 0x006e6f69 + 9cec: 746e6f63 strbtvc r6, [lr], #-3939 + 9cf0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 9cf4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 9cf8: 52414900 subpl r4, r1, #0 ; 0x0 + 9cfc: 534e4120 movtpl r4, #57632 ; 0xe120 + 9d00: 2f432049 svccs 0x00432049 + 9d04: 202b2b43 eorcs r2, fp, r3, asr #22 + 9d08: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9d0c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 9d10: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9d14: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9d18: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9d1c: 572f3539 undefined + 9d20: 4b203233 blmi 8165f4 + 9d24: 534b4349 movtpl r4, #45897 ; 0xb349 + 9d28: 54524154 ldrbpl r4, [r2], #-340 + 9d2c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 9d30: 4d524120 ldfmie f4, [r2, #-128] + 9d34: 09a80100 stmibeq r8!, {r8} + 9d38: 09bc0040 ldmibeq ip!, {r6} + 9d3c: 611c0040 tstvs ip, r0, asr #32 + 9d40: 2ed70000 cdpcs 0, 13, cr0, cr7, cr0, {0} + 9d44: 13100000 tstne r0, #0 ; 0x0 + 9d48: 0000008c andeq r0, r0, ip, lsl #1 + 9d4c: 00000144 andeq r0, r0, r4, asr #2 + 9d50: 0b780003 bleq 1e09d64 + 9d54: 06040000 streq r0, [r4], -r0 + 9d58: 445c3a43 ldrbmi r3, [ip], #-2627 + 9d5c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9d60: 73746e65 cmnvc r4, #1616 ; 0x650 + 9d64: 646e6120 strbtvs r6, [lr], #-288 + 9d68: 74655320 strbtvc r5, [r5], #-800 + 9d6c: 676e6974 undefined + 9d70: 616d5c73 smcvs 54723 + 9d74: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9d78: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9d7c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9d80: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9d84: 775c7374 undefined + 9d88: 6f632d73 svcvs 0x00632d73 + 9d8c: 6f72746e svcvs 0x0072746e + 9d90: 65575c6c ldrbvs r5, [r7, #-3180] + 9d94: 65687461 strbvs r7, [r8, #-1121]! + 9d98: 74532072 ldrbvc r2, [r3], #-114 + 9d9c: 6f697461 svcvs 0x00697461 + 9da0: 6f43206e svcvs 0x0043206e + 9da4: 6f72746e svcvs 0x0072746e + 9da8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9dac: 7070415c rsbsvc r4, r0, ip, asr r1 + 9db0: 6163696c cmnvs r3, ip, ror #18 + 9db4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9db8: 756f535c strbvc r5, [pc, #-860]! ; 9a64 + 9dbc: 5c656372 stclpl 3, cr6, [r5], #-456 + 9dc0: 74616577 strbtvc r6, [r1], #-1399 + 9dc4: 5f726568 svcpl 0x00726568 + 9dc8: 74617473 strbtvc r7, [r1], #-1139 + 9dcc: 5f6e6f69 svcpl 0x006e6f69 + 9dd0: 746e6f63 strbtvc r6, [lr], #-3939 + 9dd4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 9dd8: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 9ddc: 52414900 subpl r4, r1, #0 ; 0x0 + 9de0: 534e4120 movtpl r4, #57632 ; 0xe120 + 9de4: 2f432049 svccs 0x00432049 + 9de8: 202b2b43 eorcs r2, fp, r3, asr #22 + 9dec: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9df0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 9df4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9df8: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9dfc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9e00: 572f3539 undefined + 9e04: 4b203233 blmi 8166d8 + 9e08: 534b4349 movtpl r4, #45897 ; 0xb349 + 9e0c: 54524154 ldrbpl r4, [r2], #-340 + 9e10: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 9e14: 4d524120 ldfmie f4, [r2, #-128] + 9e18: 09bc0100 ldmibeq ip!, {r8} + 9e1c: 0a280040 beq a09f24 + 9e20: 61e40040 mvnvs r0, r0, asr #32 + 9e24: 2f7d0000 svccs 0x007d0000 + 9e28: 13100000 tstne r0, #0 ; 0x0 + 9e2c: 0800008c stmdaeq r0, {r2, r3, r7} + 9e30: 00000147 andeq r0, r0, r7, asr #2 + 9e34: 706d7564 rsbvc r7, sp, r4, ror #10 + 9e38: 6765725f undefined + 9e3c: ef010073 svc 0x00010073 + 9e40: 74010701 strvc r0, [r1], #-1793 + 9e44: bc00001b stclt 0, cr0, [r0], {27} + 9e48: 28004009 stmdacs r0, {r0, r3, lr} + 9e4c: 0900400a stmdbeq r0, {r1, r3, lr} + 9e50: 65736162 ldrbvs r6, [r3, #-354]! + 9e54: 01ef0100 mvneq r0, r0, lsl #2 + 9e58: 92b0101a adcsls r1, r0, #26 ; 0x1a + 9e5c: 1ba00000 blne fe809e64 + 9e60: 6c090000 stcvs 0, cr0, [r9], {0} + 9e64: 01006e65 tsteq r0, r5, ror #28 + 9e68: 102901ef eorne r0, r9, pc, ror #3 + 9e6c: 000092b0 strheq r9, [r0], -r0 + 9e70: 00001bbd strheq r1, [r0], -sp + 9e74: 0100690a tsteq r0, sl, lsl #18 + 9e78: 101801f0 ldrshne r0, [r8], -r0 + 9e7c: 00008d2c andeq r8, r0, ip, lsr #26 + 9e80: 00001bdb ldrdeq r1, [r0], -fp + 9e84: 0001460b andeq r4, r1, fp, lsl #12 + 9e88: 4009d400 andmi sp, r9, r0, lsl #8 + 9e8c: 400a0200 andmi r0, sl, r0, lsl #4 + 9e90: 00000000 andeq r0, r0, r0 + 9e94: 0000013c andeq r0, r0, ip, lsr r1 + 9e98: 0b780003 bleq 1e09eac + 9e9c: 06040000 streq r0, [r4], -r0 + 9ea0: 445c3a43 ldrbmi r3, [ip], #-2627 + 9ea4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9ea8: 73746e65 cmnvc r4, #1616 ; 0x650 + 9eac: 646e6120 strbtvs r6, [lr], #-288 + 9eb0: 74655320 strbtvc r5, [r5], #-800 + 9eb4: 676e6974 undefined + 9eb8: 616d5c73 smcvs 54723 + 9ebc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9ec0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 9ec4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 9ec8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 9ecc: 775c7374 undefined + 9ed0: 6f632d73 svcvs 0x00632d73 + 9ed4: 6f72746e svcvs 0x0072746e + 9ed8: 65575c6c ldrbvs r5, [r7, #-3180] + 9edc: 65687461 strbvs r7, [r8, #-1121]! + 9ee0: 74532072 ldrbvc r2, [r3], #-114 + 9ee4: 6f697461 svcvs 0x00697461 + 9ee8: 6f43206e svcvs 0x0043206e + 9eec: 6f72746e svcvs 0x0072746e + 9ef0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 9ef4: 7070415c rsbsvc r4, r0, ip, asr r1 + 9ef8: 6163696c cmnvs r3, ip, ror #18 + 9efc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 9f00: 756f535c strbvc r5, [pc, #-860]! ; 9bac + 9f04: 5c656372 stclpl 3, cr6, [r5], #-456 + 9f08: 74616577 strbtvc r6, [r1], #-1399 + 9f0c: 5f726568 svcpl 0x00726568 + 9f10: 74617473 strbtvc r7, [r1], #-1139 + 9f14: 5f6e6f69 svcpl 0x006e6f69 + 9f18: 746e6f63 strbtvc r6, [lr], #-3939 + 9f1c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 9f20: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 9f24: 52414900 subpl r4, r1, #0 ; 0x0 + 9f28: 534e4120 movtpl r4, #57632 ; 0xe120 + 9f2c: 2f432049 svccs 0x00432049 + 9f30: 202b2b43 eorcs r2, fp, r3, asr #22 + 9f34: 706d6f43 rsbvc r6, sp, r3, asr #30 + 9f38: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 9f3c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 9f40: 322e3033 eorcc r3, lr, #51 ; 0x33 + 9f44: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 9f48: 572f3539 undefined + 9f4c: 4b203233 blmi 816820 + 9f50: 534b4349 movtpl r4, #45897 ; 0xb349 + 9f54: 54524154 ldrbpl r4, [r2], #-340 + 9f58: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 9f5c: 4d524120 ldfmie f4, [r2, #-128] + 9f60: 0a280100 beq a0a368 + 9f64: 0a540040 beq 150a06c + 9f68: 62c40040 sbcvs r0, r4, #64 ; 0x40 + 9f6c: 30530000 subscc r0, r3, r0 + 9f70: 13100000 tstne r0, #0 ; 0x0 + 9f74: 0800008c stmdaeq r0, {r2, r3, r7} + 9f78: 0000013f andeq r0, r0, pc, lsr r1 + 9f7c: 6e69614d powvsem f6, f1, #5.0 + 9f80: 028b0100 addeq r0, fp, #0 ; 0x0 + 9f84: 1bf90106 blne ffe4a3a4 + 9f88: 0a280000 beq a09f90 + 9f8c: 0a540040 beq 150a094 + 9f90: 640a0040 strvs r0, [sl], #-64 + 9f94: 54617461 strbtpl r7, [r1], #-1121 + 9f98: 8e010058 mcrhi 0, 0, r0, cr1, cr8, {2} + 9f9c: dc100b02 ldcle 11, cr0, [r0], {2} + 9fa0: 2600008f strcs r0, [r0], -pc, lsl #1 + 9fa4: 0a00001c beq a01c + 9fa8: 61746164 cmnvs r4, r4, ror #2 + 9fac: 01005852 tsteq r0, r2, asr r8 + 9fb0: 100b028f andne r0, fp, pc, lsl #5 + 9fb4: 00008fe9 andeq r8, r0, r9, ror #31 + 9fb8: 00001c3a andeq r1, r0, sl, lsr ip + 9fbc: 7461640a strbtvc r6, [r1], #-1034 + 9fc0: 4b434161 blmi 10da54c + 9fc4: 02900100 addseq r0, r0, #0 ; 0x0 + 9fc8: 8f9d100b svchi 0x009d100b + 9fcc: 1c4f0000 marne acc0, r0, pc + 9fd0: 00000000 andeq r0, r0, r0 + 9fd4: 00000110 andeq r0, r0, r0, lsl r1 + 9fd8: 0b780003 bleq 1e09fec + 9fdc: 06040000 streq r0, [r4], -r0 + 9fe0: 445c3a43 ldrbmi r3, [ip], #-2627 + 9fe4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9fe8: 73746e65 cmnvc r4, #1616 ; 0x650 + 9fec: 646e6120 strbtvs r6, [lr], #-288 + 9ff0: 74655320 strbtvc r5, [r5], #-800 + 9ff4: 676e6974 undefined + 9ff8: 616d5c73 smcvs 54723 + 9ffc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a000: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a004: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a008: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a00c: 775c7374 undefined + a010: 6f632d73 svcvs 0x00632d73 + a014: 6f72746e svcvs 0x0072746e + a018: 65575c6c ldrbvs r5, [r7, #-3180] + a01c: 65687461 strbvs r7, [r8, #-1121]! + a020: 74532072 ldrbvc r2, [r3], #-114 + a024: 6f697461 svcvs 0x00697461 + a028: 6f43206e svcvs 0x0043206e + a02c: 6f72746e svcvs 0x0072746e + a030: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a034: 7070415c rsbsvc r4, r0, ip, asr r1 + a038: 6163696c cmnvs r3, ip, ror #18 + a03c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a040: 756f535c strbvc r5, [pc, #-860]! ; 9cec + a044: 5c656372 stclpl 3, cr6, [r5], #-456 + a048: 74616577 strbtvc r6, [r1], #-1399 + a04c: 5f726568 svcpl 0x00726568 + a050: 74617473 strbtvc r7, [r1], #-1139 + a054: 5f6e6f69 svcpl 0x006e6f69 + a058: 746e6f63 strbtvc r6, [lr], #-3939 + a05c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a060: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a064: 52414900 subpl r4, r1, #0 ; 0x0 + a068: 534e4120 movtpl r4, #57632 ; 0xe120 + a06c: 2f432049 svccs 0x00432049 + a070: 202b2b43 eorcs r2, fp, r3, asr #22 + a074: 706d6f43 rsbvc r6, sp, r3, asr #30 + a078: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a07c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a080: 322e3033 eorcc r3, lr, #51 ; 0x33 + a084: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a088: 572f3539 undefined + a08c: 4b203233 blmi 816960 + a090: 534b4349 movtpl r4, #45897 ; 0xb349 + a094: 54524154 ldrbpl r4, [r2], #-340 + a098: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a09c: 4d524120 ldfmie f4, [r2, #-128] + a0a0: 0a580100 beq 160a4a8 + a0a4: 0c4c0040 mcrreq 0, 4, r0, ip, cr0 + a0a8: 63900040 orrsvs r0, r0, #64 ; 0x40 + a0ac: 30d60000 sbcscc r0, r6, r0 + a0b0: 13100000 tstne r0, #0 ; 0x0 + a0b4: 0800008c stmdaeq r0, {r2, r3, r7} + a0b8: 00000113 andeq r0, r0, r3, lsl r1 + a0bc: 74616577 strbtvc r6, [r1], #-1399 + a0c0: 5f726568 svcpl 0x00726568 + a0c4: 74617473 strbtvc r7, [r1], #-1139 + a0c8: 5f6e6f69 svcpl 0x006e6f69 + a0cc: 5f707061 svcpl 0x00707061 + a0d0: 74696e69 strbtvc r6, [r9], #-3689 + a0d4: 02ab0100 adceq r0, fp, #0 ; 0x0 + a0d8: 1c640106 stfnee f0, [r4], #-24 + a0dc: 0a580000 beq 160a0e4 + a0e0: 0c4c0040 mcrreq 0, 4, r0, ip, cr0 + a0e4: 00000040 andeq r0, r0, r0, asr #32 + a0e8: 00000110 andeq r0, r0, r0, lsl r1 + a0ec: 0b780003 bleq 1e0a100 + a0f0: 06040000 streq r0, [r4], -r0 + a0f4: 445c3a43 ldrbmi r3, [ip], #-2627 + a0f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a0fc: 73746e65 cmnvc r4, #1616 ; 0x650 + a100: 646e6120 strbtvs r6, [lr], #-288 + a104: 74655320 strbtvc r5, [r5], #-800 + a108: 676e6974 undefined + a10c: 616d5c73 smcvs 54723 + a110: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a114: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a118: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a11c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a120: 775c7374 undefined + a124: 6f632d73 svcvs 0x00632d73 + a128: 6f72746e svcvs 0x0072746e + a12c: 65575c6c ldrbvs r5, [r7, #-3180] + a130: 65687461 strbvs r7, [r8, #-1121]! + a134: 74532072 ldrbvc r2, [r3], #-114 + a138: 6f697461 svcvs 0x00697461 + a13c: 6f43206e svcvs 0x0043206e + a140: 6f72746e svcvs 0x0072746e + a144: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a148: 7070415c rsbsvc r4, r0, ip, asr r1 + a14c: 6163696c cmnvs r3, ip, ror #18 + a150: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a154: 756f535c strbvc r5, [pc, #-860]! ; 9e00 + a158: 5c656372 stclpl 3, cr6, [r5], #-456 + a15c: 74616577 strbtvc r6, [r1], #-1399 + a160: 5f726568 svcpl 0x00726568 + a164: 74617473 strbtvc r7, [r1], #-1139 + a168: 5f6e6f69 svcpl 0x006e6f69 + a16c: 746e6f63 strbtvc r6, [lr], #-3939 + a170: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a174: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a178: 52414900 subpl r4, r1, #0 ; 0x0 + a17c: 534e4120 movtpl r4, #57632 ; 0xe120 + a180: 2f432049 svccs 0x00432049 + a184: 202b2b43 eorcs r2, fp, r3, asr #22 + a188: 706d6f43 rsbvc r6, sp, r3, asr #30 + a18c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a190: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a194: 322e3033 eorcc r3, lr, #51 ; 0x33 + a198: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a19c: 572f3539 undefined + a1a0: 4b203233 blmi 816a74 + a1a4: 534b4349 movtpl r4, #45897 ; 0xb349 + a1a8: 54524154 ldrbpl r4, [r2], #-340 + a1ac: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a1b0: 4d524120 ldfmie f4, [r2, #-128] + a1b4: 0c500100 ldfeqe f0, [r0], {0} + a1b8: 0c780040 ldcleq 0, cr0, [r8], #-256 + a1bc: 64ac0040 strtvs r0, [ip], #64 + a1c0: 344a0000 strbcc r0, [sl] + a1c4: 13100000 tstne r0, #0 ; 0x0 + a1c8: 0800008c stmdaeq r0, {r2, r3, r7} + a1cc: 00000110 andeq r0, r0, r0, lsl r1 + a1d0: 74616577 strbtvc r6, [r1], #-1399 + a1d4: 5f726568 svcpl 0x00726568 + a1d8: 74617473 strbtvc r7, [r1], #-1139 + a1dc: 5f6e6f69 svcpl 0x006e6f69 + a1e0: 635f7872 cmpvs pc, #7471104 ; 0x720000 + a1e4: 96010062 strls r0, [r1], -r2, rrx + a1e8: 90010603 andls r0, r1, r3, lsl #12 + a1ec: 5000001c andpl r0, r0, ip, lsl r0 + a1f0: 7800400c stmdavc r0, {r2, r3, lr} + a1f4: 0000400c andeq r4, r0, ip + a1f8: 00000000 andeq r0, r0, r0 + a1fc: 000001d4 ldrdeq r0, [r0], -r4 + a200: 0b780003 bleq 1e0a214 + a204: 06040000 streq r0, [r4], -r0 + a208: 445c3a43 ldrbmi r3, [ip], #-2627 + a20c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a210: 73746e65 cmnvc r4, #1616 ; 0x650 + a214: 646e6120 strbtvs r6, [lr], #-288 + a218: 74655320 strbtvc r5, [r5], #-800 + a21c: 676e6974 undefined + a220: 616d5c73 smcvs 54723 + a224: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a228: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a22c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a230: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a234: 775c7374 undefined + a238: 6f632d73 svcvs 0x00632d73 + a23c: 6f72746e svcvs 0x0072746e + a240: 65575c6c ldrbvs r5, [r7, #-3180] + a244: 65687461 strbvs r7, [r8, #-1121]! + a248: 74532072 ldrbvc r2, [r3], #-114 + a24c: 6f697461 svcvs 0x00697461 + a250: 6f43206e svcvs 0x0043206e + a254: 6f72746e svcvs 0x0072746e + a258: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a25c: 7070415c rsbsvc r4, r0, ip, asr r1 + a260: 6163696c cmnvs r3, ip, ror #18 + a264: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a268: 756f535c strbvc r5, [pc, #-860]! ; 9f14 + a26c: 5c656372 stclpl 3, cr6, [r5], #-456 + a270: 74616577 strbtvc r6, [r1], #-1399 + a274: 5f726568 svcpl 0x00726568 + a278: 74617473 strbtvc r7, [r1], #-1139 + a27c: 5f6e6f69 svcpl 0x006e6f69 + a280: 746e6f63 strbtvc r6, [lr], #-3939 + a284: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a288: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a28c: 52414900 subpl r4, r1, #0 ; 0x0 + a290: 534e4120 movtpl r4, #57632 ; 0xe120 + a294: 2f432049 svccs 0x00432049 + a298: 202b2b43 eorcs r2, fp, r3, asr #22 + a29c: 706d6f43 rsbvc r6, sp, r3, asr #30 + a2a0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a2a4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a2a8: 322e3033 eorcc r3, lr, #51 ; 0x33 + a2ac: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a2b0: 572f3539 undefined + a2b4: 4b203233 blmi 816b88 + a2b8: 534b4349 movtpl r4, #45897 ; 0xb349 + a2bc: 54524154 ldrbpl r4, [r2], #-340 + a2c0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a2c4: 4d524120 ldfmie f4, [r2, #-128] + a2c8: 0c780100 ldfeqe f0, [r8] + a2cc: 0e240040 cdpeq 0, 2, cr0, cr4, cr0, {2} + a2d0: 65740040 ldrbvs r0, [r4, #-64]! + a2d4: 34ab0000 strtcc r0, [fp] + a2d8: 13100000 tstne r0, #0 ; 0x0 + a2dc: 0800008c stmdaeq r0, {r2, r3, r7} + a2e0: 000001d6 ldrdeq r0, [r0], -r6 + a2e4: 74616577 strbtvc r6, [r1], #-1399 + a2e8: 5f726568 svcpl 0x00726568 + a2ec: 746e6f63 strbtvc r6, [lr], #-3939 + a2f0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a2f4: 705f7265 subsvc r7, pc, r5, ror #4 + a2f8: 65636f72 strbvs r6, [r3, #-3954]! + a2fc: 01007373 tsteq r0, r3, ror r3 + a300: 010603a8 smlatbeq r6, r8, r3, r0 + a304: 00001ca4 andeq r1, r0, r4, lsr #25 + a308: 00400c78 subeq r0, r0, r8, ror ip + a30c: 00400e24 subeq r0, r0, r4, lsr #28 + a310: 41387504 teqmi r8, r4, lsl #10 + a314: 74537070 ldrbvc r7, [r3], #-112 + a318: 00657461 rsbeq r7, r5, r1, ror #8 + a31c: 00922810 addseq r2, r2, r0, lsl r8 + a320: 03aa0100 undefined instruction 0x03aa0100 + a324: 03050026 movweq r0, #20518 ; 0x5026 + a328: 0040525f subeq r5, r0, pc, asr r2 + a32c: 5438750a ldrtpl r7, [r8], #-1290 + a330: 44706d65 ldrbtmi r6, [r0], #-3429 + a334: 00617461 rsbeq r7, r1, r1, ror #8 + a338: 0b03ab01 bleq f4f44 + a33c: 008fb710 addeq fp, pc, r0, lsl r7 + a340: 001d0000 andseq r0, sp, r0 + a344: 01d50b00 bicseq r0, r5, r0, lsl #22 + a348: 0c900000 ldceq 0, cr0, [r0], {0} + a34c: 0e120040 cdpeq 0, 1, cr0, cr2, cr0, {2} + a350: 720b0040 andvc r0, fp, #64 ; 0x40 + a354: 98000001 stmdals r0, {r0} + a358: ba00400c blt 1a390 + a35c: 0b00400c bleq 1a394 + a360: 00000171 andeq r0, r0, r1, ror r1 + a364: 00400ca0 subeq r0, r0, r0, lsr #25 + a368: 00400cba strheq r0, [r0], #-202 + a36c: 800b0000 andhi r0, fp, r0 + a370: e6000001 str r0, [r0], -r1 + a374: 0c00400c stceq 0, cr4, [r0], {12} + a378: 0000400d andeq r4, r0, sp + a37c: 00018e0b andeq r8, r1, fp, lsl #28 + a380: 400d1400 andmi r1, sp, r0, lsl #8 + a384: 400d3200 andmi r3, sp, r0, lsl #4 + a388: 9c0b0000 stcls 0, cr0, [fp], {0} + a38c: 38000001 stmdacc r0, {r0} + a390: 5400400d strpl r4, [r0], #-13 + a394: 0000400d andeq r4, r0, sp + a398: 0001d40b andeq sp, r1, fp, lsl #8 + a39c: 400d6800 andmi r6, sp, r0, lsl #16 + a3a0: 400e1200 andmi r1, lr, r0, lsl #4 + a3a4: 01b70b00 undefined instruction 0x01b70b00 + a3a8: 0da40000 stceq 0, cr0, [r4] + a3ac: 0dca0040 stcleq 0, cr0, [sl, #256] + a3b0: 0b000040 bleq a4b8 + a3b4: 000001c5 andeq r0, r0, r5, asr #3 + a3b8: 00400dca subeq r0, r0, sl, asr #27 + a3bc: 00400df2 strdeq r0, [r0], #-210 + a3c0: 01d30b00 bicseq r0, r3, r0, lsl #22 + a3c4: 0df20000 ldcleq 0, cr0, [r2] + a3c8: 0e120040 cdpeq 0, 1, cr0, cr2, cr0, {2} + a3cc: 00000040 andeq r0, r0, r0, asr #32 + a3d0: 00000000 andeq r0, r0, r0 + a3d4: 00000118 andeq r0, r0, r8, lsl r1 + a3d8: 0b780003 bleq 1e0a3ec + a3dc: 06040000 streq r0, [r4], -r0 + a3e0: 445c3a43 ldrbmi r3, [ip], #-2627 + a3e4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a3e8: 73746e65 cmnvc r4, #1616 ; 0x650 + a3ec: 646e6120 strbtvs r6, [lr], #-288 + a3f0: 74655320 strbtvc r5, [r5], #-800 + a3f4: 676e6974 undefined + a3f8: 616d5c73 smcvs 54723 + a3fc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a400: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a404: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a408: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a40c: 775c7374 undefined + a410: 6f632d73 svcvs 0x00632d73 + a414: 6f72746e svcvs 0x0072746e + a418: 65575c6c ldrbvs r5, [r7, #-3180] + a41c: 65687461 strbvs r7, [r8, #-1121]! + a420: 74532072 ldrbvc r2, [r3], #-114 + a424: 6f697461 svcvs 0x00697461 + a428: 6f43206e svcvs 0x0043206e + a42c: 6f72746e svcvs 0x0072746e + a430: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a434: 7070415c rsbsvc r4, r0, ip, asr r1 + a438: 6163696c cmnvs r3, ip, ror #18 + a43c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a440: 756f535c strbvc r5, [pc, #-860]! ; a0ec + a444: 5c656372 stclpl 3, cr6, [r5], #-456 + a448: 74616577 strbtvc r6, [r1], #-1399 + a44c: 5f726568 svcpl 0x00726568 + a450: 74617473 strbtvc r7, [r1], #-1139 + a454: 5f6e6f69 svcpl 0x006e6f69 + a458: 746e6f63 strbtvc r6, [lr], #-3939 + a45c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a460: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a464: 52414900 subpl r4, r1, #0 ; 0x0 + a468: 534e4120 movtpl r4, #57632 ; 0xe120 + a46c: 2f432049 svccs 0x00432049 + a470: 202b2b43 eorcs r2, fp, r3, asr #22 + a474: 706d6f43 rsbvc r6, sp, r3, asr #30 + a478: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a47c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a480: 322e3033 eorcc r3, lr, #51 ; 0x33 + a484: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a488: 572f3539 undefined + a48c: 4b203233 blmi 816d60 + a490: 534b4349 movtpl r4, #45897 ; 0xb349 + a494: 54524154 ldrbpl r4, [r2], #-340 + a498: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a49c: 4d524120 ldfmie f4, [r2, #-128] + a4a0: 0e240100 sufeqs f0, f4, f0 + a4a4: 0e380040 cdpeq 0, 3, cr0, cr8, cr0, {2} + a4a8: 66b80040 ldrtvs r0, [r8], r0, asr #32 + a4ac: 368b0000 strcc r0, [fp], r0 + a4b0: 13100000 tstne r0, #0 ; 0x0 + a4b4: 0800008c stmdaeq r0, {r2, r3, r7} + a4b8: 00000118 andeq r0, r0, r8, lsl r1 + a4bc: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + a4c0: 6d5f6567 cfldr64vs mvdx6, [pc, #-412] + a4c4: 75736165 ldrbvc r6, [r3, #-357]! + a4c8: 656d6572 strbvs r6, [sp, #-1394]! + a4cc: 735f746e cmpvc pc, #1845493760 ; 0x6e000000 + a4d0: 65747379 ldrbvs r7, [r4, #-889]! + a4d4: 73695f6d cmnvc r9, #436 ; 0x1b4 + a4d8: da010072 ble 4a6a8 + a4dc: 4a010604 bmi 4bcf4 + a4e0: 2400001d strcs r0, [r0], #-29 + a4e4: 3800400e stmdacc r0, {r1, r2, r3, lr} + a4e8: 0000400e andeq r4, r0, lr + a4ec: 00000000 andeq r0, r0, r0 + a4f0: 0000010c andeq r0, r0, ip, lsl #2 + a4f4: 0b780003 bleq 1e0a508 + a4f8: 06040000 streq r0, [r4], -r0 + a4fc: 445c3a43 ldrbmi r3, [ip], #-2627 + a500: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a504: 73746e65 cmnvc r4, #1616 ; 0x650 + a508: 646e6120 strbtvs r6, [lr], #-288 + a50c: 74655320 strbtvc r5, [r5], #-800 + a510: 676e6974 undefined + a514: 616d5c73 smcvs 54723 + a518: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a51c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a520: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a524: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a528: 775c7374 undefined + a52c: 6f632d73 svcvs 0x00632d73 + a530: 6f72746e svcvs 0x0072746e + a534: 65575c6c ldrbvs r5, [r7, #-3180] + a538: 65687461 strbvs r7, [r8, #-1121]! + a53c: 74532072 ldrbvc r2, [r3], #-114 + a540: 6f697461 svcvs 0x00697461 + a544: 6f43206e svcvs 0x0043206e + a548: 6f72746e svcvs 0x0072746e + a54c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a550: 7070415c rsbsvc r4, r0, ip, asr r1 + a554: 6163696c cmnvs r3, ip, ror #18 + a558: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a55c: 756f535c strbvc r5, [pc, #-860]! ; a208 + a560: 5c656372 stclpl 3, cr6, [r5], #-456 + a564: 74616577 strbtvc r6, [r1], #-1399 + a568: 5f726568 svcpl 0x00726568 + a56c: 74617473 strbtvc r7, [r1], #-1139 + a570: 5f6e6f69 svcpl 0x006e6f69 + a574: 746e6f63 strbtvc r6, [lr], #-3939 + a578: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a57c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a580: 52414900 subpl r4, r1, #0 ; 0x0 + a584: 534e4120 movtpl r4, #57632 ; 0xe120 + a588: 2f432049 svccs 0x00432049 + a58c: 202b2b43 eorcs r2, fp, r3, asr #22 + a590: 706d6f43 rsbvc r6, sp, r3, asr #30 + a594: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a598: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a59c: 322e3033 eorcc r3, lr, #51 ; 0x33 + a5a0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a5a4: 572f3539 undefined + a5a8: 4b203233 blmi 816e7c + a5ac: 534b4349 movtpl r4, #45897 ; 0xb349 + a5b0: 54524154 ldrbpl r4, [r2], #-340 + a5b4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a5b8: 4d524120 ldfmie f4, [r2, #-128] + a5bc: 0e380100 rsfeqe f0, f0, f0 + a5c0: 0e480040 cdpeq 0, 4, cr0, cr8, cr0, {2} + a5c4: 67780040 ldrbvs r0, [r8, -r0, asr #32]! + a5c8: 37000000 strcc r0, [r0, -r0] + a5cc: 13100000 tstne r0, #0 ; 0x0 + a5d0: 0800008c stmdaeq r0, {r2, r3, r7} + a5d4: 0000010d andeq r0, r0, sp, lsl #2 + a5d8: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + a5dc: 645f6567 ldrbvs r6, [pc], #1383 ; a5e4 + a5e0: 6c707369 ldclvs 3, cr7, [r0], #-420 + a5e4: 695f7961 ldmdbvs pc, {r0, r5, r6, r8, fp, ip, sp, lr}^ + a5e8: 01007273 tsteq r0, r3, ror r2 + a5ec: 010604e6 smlatteq r6, r6, r4, r0 + a5f0: 00001d6a andeq r1, r0, sl, ror #26 + a5f4: 00400e38 subeq r0, r0, r8, lsr lr + a5f8: 00400e48 subeq r0, r0, r8, asr #28 + a5fc: 00000000 andeq r0, r0, r0 + a600: 000000e0 andeq r0, r0, r0, ror #1 + a604: 0b780003 bleq 1e0a618 + a608: 06040000 streq r0, [r4], -r0 + a60c: 445c3a43 ldrbmi r3, [ip], #-2627 + a610: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a614: 73746e65 cmnvc r4, #1616 ; 0x650 + a618: 646e6120 strbtvs r6, [lr], #-288 + a61c: 74655320 strbtvc r5, [r5], #-800 + a620: 676e6974 undefined + a624: 616d5c73 smcvs 54723 + a628: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a62c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a630: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a634: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a638: 775c7374 undefined + a63c: 6f632d73 svcvs 0x00632d73 + a640: 6f72746e svcvs 0x0072746e + a644: 65575c6c ldrbvs r5, [r7, #-3180] + a648: 65687461 strbvs r7, [r8, #-1121]! + a64c: 74532072 ldrbvc r2, [r3], #-114 + a650: 6f697461 svcvs 0x00697461 + a654: 6f43206e svcvs 0x0043206e + a658: 6f72746e svcvs 0x0072746e + a65c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a660: 7070415c rsbsvc r4, r0, ip, asr r1 + a664: 6163696c cmnvs r3, ip, ror #18 + a668: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a66c: 756f535c strbvc r5, [pc, #-860]! ; a318 + a670: 5c656372 stclpl 3, cr6, [r5], #-456 + a674: 74616577 strbtvc r6, [r1], #-1399 + a678: 5f726568 svcpl 0x00726568 + a67c: 74617473 strbtvc r7, [r1], #-1139 + a680: 5f6e6f69 svcpl 0x006e6f69 + a684: 746e6f63 strbtvc r6, [lr], #-3939 + a688: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a68c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a690: 52414900 subpl r4, r1, #0 ; 0x0 + a694: 534e4120 movtpl r4, #57632 ; 0xe120 + a698: 2f432049 svccs 0x00432049 + a69c: 202b2b43 eorcs r2, fp, r3, asr #22 + a6a0: 706d6f43 rsbvc r6, sp, r3, asr #30 + a6a4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a6a8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a6ac: 322e3033 eorcc r3, lr, #51 ; 0x33 + a6b0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a6b4: 572f3539 undefined + a6b8: 4b203233 blmi 816f8c + a6bc: 534b4349 movtpl r4, #45897 ; 0xb349 + a6c0: 54524154 ldrbpl r4, [r2], #-340 + a6c4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a6c8: 4d524120 ldfmie f4, [r2, #-128] + a6cc: 0e480100 dvfeqe f0, f0, f0 + a6d0: 0e4c0040 cdpeq 0, 4, cr0, cr12, cr0, {2} + a6d4: 68380040 ldmdavs r8!, {r6} + a6d8: 37750000 ldrbcc r0, [r5, -r0]! + a6dc: 13100000 tstne r0, #0 ; 0x0 + a6e0: 0000008c andeq r0, r0, ip, lsl #1 + a6e4: 0000010c andeq r0, r0, ip, lsl #2 + a6e8: 0b780003 bleq 1e0a6fc + a6ec: 06040000 streq r0, [r4], -r0 + a6f0: 445c3a43 ldrbmi r3, [ip], #-2627 + a6f4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a6f8: 73746e65 cmnvc r4, #1616 ; 0x650 + a6fc: 646e6120 strbtvs r6, [lr], #-288 + a700: 74655320 strbtvc r5, [r5], #-800 + a704: 676e6974 undefined + a708: 616d5c73 smcvs 54723 + a70c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a710: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a714: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a718: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a71c: 775c7374 undefined + a720: 6f632d73 svcvs 0x00632d73 + a724: 6f72746e svcvs 0x0072746e + a728: 65575c6c ldrbvs r5, [r7, #-3180] + a72c: 65687461 strbvs r7, [r8, #-1121]! + a730: 74532072 ldrbvc r2, [r3], #-114 + a734: 6f697461 svcvs 0x00697461 + a738: 6f43206e svcvs 0x0043206e + a73c: 6f72746e svcvs 0x0072746e + a740: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a744: 7070415c rsbsvc r4, r0, ip, asr r1 + a748: 6163696c cmnvs r3, ip, ror #18 + a74c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a750: 756f535c strbvc r5, [pc, #-860]! ; a3fc + a754: 5c656372 stclpl 3, cr6, [r5], #-456 + a758: 74616577 strbtvc r6, [r1], #-1399 + a75c: 5f726568 svcpl 0x00726568 + a760: 74617473 strbtvc r7, [r1], #-1139 + a764: 5f6e6f69 svcpl 0x006e6f69 + a768: 746e6f63 strbtvc r6, [lr], #-3939 + a76c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a770: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a774: 52414900 subpl r4, r1, #0 ; 0x0 + a778: 534e4120 movtpl r4, #57632 ; 0xe120 + a77c: 2f432049 svccs 0x00432049 + a780: 202b2b43 eorcs r2, fp, r3, asr #22 + a784: 706d6f43 rsbvc r6, sp, r3, asr #30 + a788: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a78c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a790: 322e3033 eorcc r3, lr, #51 ; 0x33 + a794: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a798: 572f3539 undefined + a79c: 4b203233 blmi 817070 + a7a0: 534b4349 movtpl r4, #45897 ; 0xb349 + a7a4: 54524154 ldrbpl r4, [r2], #-340 + a7a8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a7ac: 4d524120 ldfmie f4, [r2, #-128] + a7b0: 0e580100 rdfeqe f0, f0, f0 + a7b4: 0e6c0040 cdpeq 0, 6, cr0, cr12, cr0, {2} + a7b8: 68fc0040 ldmvs ip!, {r6}^ + a7bc: 38660000 stmdacc r6!, {}^ + a7c0: 13100000 tstne r0, #0 ; 0x0 + a7c4: 0800008c stmdaeq r0, {r2, r3, r7} + a7c8: 0000010d andeq r0, r0, sp, lsl #2 + a7cc: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + a7d0: 635f6567 cmpvs pc, #432013312 ; 0x19c00000 + a7d4: 6e6e6168 powvsez f6, f6, #0.0 + a7d8: 695f6c65 ldmdbvs pc, {r0, r2, r5, r6, sl, fp, sp, lr}^ + a7dc: 01007273 tsteq r0, r3, ror r2 + a7e0: 010604f2 strdeq r0, [r6, -r2] + a7e4: 00001d8a andeq r1, r0, sl, lsl #27 + a7e8: 00400e58 subeq r0, r0, r8, asr lr + a7ec: 00400e6c subeq r0, r0, ip, ror #28 + a7f0: 00000000 andeq r0, r0, r0 + a7f4: 00000110 andeq r0, r0, r0, lsl r1 + a7f8: 0b780003 bleq 1e0a80c + a7fc: 06040000 streq r0, [r4], -r0 + a800: 445c3a43 ldrbmi r3, [ip], #-2627 + a804: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a808: 73746e65 cmnvc r4, #1616 ; 0x650 + a80c: 646e6120 strbtvs r6, [lr], #-288 + a810: 74655320 strbtvc r5, [r5], #-800 + a814: 676e6974 undefined + a818: 616d5c73 smcvs 54723 + a81c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a820: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a824: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a828: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a82c: 775c7374 undefined + a830: 6f632d73 svcvs 0x00632d73 + a834: 6f72746e svcvs 0x0072746e + a838: 65575c6c ldrbvs r5, [r7, #-3180] + a83c: 65687461 strbvs r7, [r8, #-1121]! + a840: 74532072 ldrbvc r2, [r3], #-114 + a844: 6f697461 svcvs 0x00697461 + a848: 6f43206e svcvs 0x0043206e + a84c: 6f72746e svcvs 0x0072746e + a850: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a854: 7070415c rsbsvc r4, r0, ip, asr r1 + a858: 6163696c cmnvs r3, ip, ror #18 + a85c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a860: 756f535c strbvc r5, [pc, #-860]! ; a50c + a864: 5c656372 stclpl 3, cr6, [r5], #-456 + a868: 74616577 strbtvc r6, [r1], #-1399 + a86c: 5f726568 svcpl 0x00726568 + a870: 74617473 strbtvc r7, [r1], #-1139 + a874: 5f6e6f69 svcpl 0x006e6f69 + a878: 746e6f63 strbtvc r6, [lr], #-3939 + a87c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a880: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a884: 52414900 subpl r4, r1, #0 ; 0x0 + a888: 534e4120 movtpl r4, #57632 ; 0xe120 + a88c: 2f432049 svccs 0x00432049 + a890: 202b2b43 eorcs r2, fp, r3, asr #22 + a894: 706d6f43 rsbvc r6, sp, r3, asr #30 + a898: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a89c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a8a0: 322e3033 eorcc r3, lr, #51 ; 0x33 + a8a4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a8a8: 572f3539 undefined + a8ac: 4b203233 blmi 817180 + a8b0: 534b4349 movtpl r4, #45897 ; 0xb349 + a8b4: 54524154 ldrbpl r4, [r2], #-340 + a8b8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a8bc: 4d524120 ldfmie f4, [r2, #-128] + a8c0: 0e6c0100 poweqe f0, f4, f0 + a8c4: 0e800040 cdpeq 0, 8, cr0, cr0, cr0, {2} + a8c8: 69bc0040 ldmibvs ip!, {r6} + a8cc: 38db0000 ldmcc fp, {}^ + a8d0: 13100000 tstne r0, #0 ; 0x0 + a8d4: 0800008c stmdaeq r0, {r2, r3, r7} + a8d8: 00000110 andeq r0, r0, r0, lsl r1 + a8dc: 6e616863 cdpvs 8, 6, cr6, cr1, cr3, {3} + a8e0: 625f6567 subsvs r6, pc, #432013312 ; 0x19c00000 + a8e4: 5f6b6361 svcpl 0x006b6361 + a8e8: 6867696c stmdavs r7!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + a8ec: 73695f74 cmnvc r9, #464 ; 0x1d0 + a8f0: fe010072 mcr2 0, 0, r0, cr1, cr2, {3} + a8f4: aa010604 bge 4c10c + a8f8: 6c00001d stcvs 0, cr0, [r0], {29} + a8fc: 8000400e andhi r4, r0, lr + a900: 0000400e andeq r4, r0, lr + a904: 00000000 andeq r0, r0, r0 + a908: 000001c0 andeq r0, r0, r0, asr #3 + a90c: 0b780003 bleq 1e0a920 + a910: 06040000 streq r0, [r4], -r0 + a914: 445c3a43 ldrbmi r3, [ip], #-2627 + a918: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a91c: 73746e65 cmnvc r4, #1616 ; 0x650 + a920: 646e6120 strbtvs r6, [lr], #-288 + a924: 74655320 strbtvc r5, [r5], #-800 + a928: 676e6974 undefined + a92c: 616d5c73 smcvs 54723 + a930: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a934: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a938: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a93c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a940: 775c7374 undefined + a944: 6f632d73 svcvs 0x00632d73 + a948: 6f72746e svcvs 0x0072746e + a94c: 65575c6c ldrbvs r5, [r7, #-3180] + a950: 65687461 strbvs r7, [r8, #-1121]! + a954: 74532072 ldrbvc r2, [r3], #-114 + a958: 6f697461 svcvs 0x00697461 + a95c: 6f43206e svcvs 0x0043206e + a960: 6f72746e svcvs 0x0072746e + a964: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a968: 7070415c rsbsvc r4, r0, ip, asr r1 + a96c: 6163696c cmnvs r3, ip, ror #18 + a970: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a974: 756f535c strbvc r5, [pc, #-860]! ; a620 + a978: 5c656372 stclpl 3, cr6, [r5], #-456 + a97c: 74616577 strbtvc r6, [r1], #-1399 + a980: 5f726568 svcpl 0x00726568 + a984: 74617473 strbtvc r7, [r1], #-1139 + a988: 5f6e6f69 svcpl 0x006e6f69 + a98c: 746e6f63 strbtvc r6, [lr], #-3939 + a990: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + a994: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + a998: 52414900 subpl r4, r1, #0 ; 0x0 + a99c: 534e4120 movtpl r4, #57632 ; 0xe120 + a9a0: 2f432049 svccs 0x00432049 + a9a4: 202b2b43 eorcs r2, fp, r3, asr #22 + a9a8: 706d6f43 rsbvc r6, sp, r3, asr #30 + a9ac: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + a9b0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + a9b4: 322e3033 eorcc r3, lr, #51 ; 0x33 + a9b8: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + a9bc: 572f3539 undefined + a9c0: 4b203233 blmi 817294 + a9c4: 534b4349 movtpl r4, #45897 ; 0xb349 + a9c8: 54524154 ldrbpl r4, [r2], #-340 + a9cc: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + a9d0: 4d524120 ldfmie f4, [r2, #-128] + a9d4: 0e800100 rmfeqs f0, f0, f0 + a9d8: 0fdc0040 svceq 0x00dc0040 + a9dc: 6a7c0040 bvs 1f0aae4 + a9e0: 39500000 ldmdbcc r0, {}^ + a9e4: 13100000 tstne r0, #0 ; 0x0 + a9e8: 0c00008c stceq 0, cr0, [r0], {140} + a9ec: 000001c1 andeq r0, r0, r1, asr #3 + a9f0: 756a6461 strbvc r6, [sl, #-1121]! + a9f4: 735f7473 cmpvc pc, #1929379840 ; 0x73000000 + a9f8: 6f736e65 svcvs 0x00736e65 + a9fc: 6f745f72 svcvs 0x00745f72 + aa00: 7275635f rsbsvc r6, r5, #2080374785 ; 0x7c000001 + aa04: 746e6572 strbtvc r6, [lr], #-1394 + aa08: 61656d5f cmnvs r5, pc, asr sp + aa0c: 65727573 ldrbvs r7, [r2, #-1395]! + aa10: 7379735f cmnvc r9, #2080374785 ; 0x7c000001 + aa14: 006d6574 rsbeq r6, sp, r4, ror r5 + aa18: 0a058b01 beq 16d624 + aa1c: 92a01001 adcls r1, r0, #1 ; 0x1 + aa20: 1dca0000 stclne 0, cr0, [sl] + aa24: 0e800000 cdpeq 0, 8, cr0, cr0, cr0, {0} + aa28: 0fdc0040 svceq 0x00dc0040 + aa2c: 75090040 strvc r0, [r9, #-64] + aa30: 65533631 ldrbvs r3, [r3, #-1585] + aa34: 726f736e rsbvc r7, pc, #-1207959551 ; 0xb8000001 + aa38: 756c6156 strbvc r6, [ip, #-342]! + aa3c: 8b010065 blhi 4abd8 + aa40: a0103b05 andsge r3, r0, r5, lsl #22 + aa44: 56000092 undefined + aa48: 0900001e stmdbeq r0, {r1, r2, r3, r4} + aa4c: 736e6553 cmnvc lr, #348127232 ; 0x14c00000 + aa50: 654d726f strbvs r7, [sp, #-623] + aa54: 72757361 rsbsvc r7, r5, #-2080374783 ; 0x84000001 + aa58: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} + aa5c: 8b010074 blhi 4ac34 + aa60: 4b106005 blmi 422a7c + aa64: b2000092 andlt r0, r0, #146 ; 0x92 + aa68: 0a00001e beq aae8 + aa6c: 54323375 ldrtpl r3, [r2], #-885 + aa70: 6553706d ldrbvs r7, [r3, #-109] + aa74: 726f736e rsbvc r7, pc, #-1207959551 ; 0xb8000001 + aa78: 006c6156 rsbeq r6, ip, r6, asr r1 + aa7c: 0c058d01 stceq 13, cr8, [r5], {1} + aa80: 0092b010 addseq fp, r2, r0, lsl r0 + aa84: 001ecf00 andseq ip, lr, r0, lsl #30 + aa88: 31750a00 cmncc r5, r0, lsl #20 + aa8c: 6a644136 bvs 191af6c + aa90: 65747375 ldrbvs r7, [r4, #-885]! + aa94: 6e655364 cdpvs 3, 6, cr5, cr5, cr4, {3} + aa98: 56726f73 uhsub16pl r6, r2, r3 + aa9c: 01006c61 tsteq r0, r1, ror #24 + aaa0: 100c058e andne r0, ip, lr, lsl #11 + aaa4: 000092a0 andeq r9, r0, r0, lsr #5 + aaa8: 00001f16 andeq r1, r0, r6, lsl pc + aaac: 0001c00b andeq ip, r1, fp + aab0: 400e9a00 andmi r9, lr, r0, lsl #20 + aab4: 400fba00 andmi fp, pc, r0, lsl #20 + aab8: 01bf0b00 undefined instruction 0x01bf0b00 + aabc: 0f340000 svceq 0x00340000 + aac0: 0fa00040 svceq 0x00a00040 + aac4: 00000040 andeq r0, r0, r0, asr #32 + aac8: 00000000 andeq r0, r0, r0 + aacc: 000001b0 strheq r0, [r0], -r0 + aad0: 0b780003 bleq 1e0aae4 + aad4: 06040000 streq r0, [r4], -r0 + aad8: 445c3a43 ldrbmi r3, [ip], #-2627 + aadc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + aae0: 73746e65 cmnvc r4, #1616 ; 0x650 + aae4: 646e6120 strbtvs r6, [lr], #-288 + aae8: 74655320 strbtvc r5, [r5], #-800 + aaec: 676e6974 undefined + aaf0: 616d5c73 smcvs 54723 + aaf4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + aaf8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + aafc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + ab00: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + ab04: 775c7374 undefined + ab08: 6f632d73 svcvs 0x00632d73 + ab0c: 6f72746e svcvs 0x0072746e + ab10: 65575c6c ldrbvs r5, [r7, #-3180] + ab14: 65687461 strbvs r7, [r8, #-1121]! + ab18: 74532072 ldrbvc r2, [r3], #-114 + ab1c: 6f697461 svcvs 0x00697461 + ab20: 6f43206e svcvs 0x0043206e + ab24: 6f72746e svcvs 0x0072746e + ab28: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ab2c: 7070415c rsbsvc r4, r0, ip, asr r1 + ab30: 6163696c cmnvs r3, ip, ror #18 + ab34: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + ab38: 756f535c strbvc r5, [pc, #-860]! ; a7e4 + ab3c: 5c656372 stclpl 3, cr6, [r5], #-456 + ab40: 74616577 strbtvc r6, [r1], #-1399 + ab44: 5f726568 svcpl 0x00726568 + ab48: 74617473 strbtvc r7, [r1], #-1139 + ab4c: 5f6e6f69 svcpl 0x006e6f69 + ab50: 746e6f63 strbtvc r6, [lr], #-3939 + ab54: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + ab58: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + ab5c: 52414900 subpl r4, r1, #0 ; 0x0 + ab60: 534e4120 movtpl r4, #57632 ; 0xe120 + ab64: 2f432049 svccs 0x00432049 + ab68: 202b2b43 eorcs r2, fp, r3, asr #22 + ab6c: 706d6f43 rsbvc r6, sp, r3, asr #30 + ab70: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + ab74: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + ab78: 322e3033 eorcc r3, lr, #51 ; 0x33 + ab7c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ab80: 572f3539 undefined + ab84: 4b203233 blmi 817458 + ab88: 534b4349 movtpl r4, #45897 ; 0xb349 + ab8c: 54524154 ldrbpl r4, [r2], #-340 + ab90: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + ab94: 4d524120 ldfmie f4, [r2, #-128] + ab98: 0fdc0100 svceq 0x00dc0100 + ab9c: 108c0040 addne r0, ip, r0, asr #32 + aba0: 6b740040 blvs 1d0aca8 + aba4: 3a120000 bcc 48abac + aba8: 13100000 tstne r0, #0 ; 0x0 + abac: 0800008c stmdaeq r0, {r2, r3, r7} + abb0: 000001b2 strheq r0, [r0], -r2 + abb4: 636f7270 cmnvs pc, #7 ; 0x7 + abb8: 5f737365 svcpl 0x00737365 + abbc: 6f636e69 svcvs 0x00636e69 + abc0: 676e696d strbvs r6, [lr, -sp, ror #18]! + abc4: 67736d5f undefined + abc8: 05dd0100 ldrbeq r0, [sp, #256] + abcc: 1f3e0106 svcne 0x003e0106 + abd0: 0fdc0000 svceq 0x00dc0000 + abd4: 108c0040 addne r0, ip, r0, asr #32 + abd8: 75040040 strvc r0, [r4, #-64] + abdc: 65725038 ldrbvs r5, [r2, #-56]! + abe0: 71655376 smcvc 21814 + abe4: 626d754e rsbvs r7, sp, #327155712 ; 0x13800000 + abe8: 10007265 andne r7, r0, r5, ror #4 + abec: 00009283 andeq r9, r0, r3, lsl #5 + abf0: 1205e201 andne lr, r5, #268435456 ; 0x10000000 + abf4: 60030500 andvs r0, r3, r0, lsl #10 + abf8: 0a004052 beq 1ad48 + abfc: 65533875 ldrbvs r3, [r3, #-2165] + ac00: 6c616972 stclvs 9, cr6, [r1], #-456 + ac04: 6d617246 sfmvs f7, 2, [r1, #-280]! + ac08: df010065 svcle 0x00010065 + ac0c: cf100b05 svcgt 0x00100b05 + ac10: 7600008f strvc r0, [r0], -pc, lsl #1 + ac14: 0a00001f beq ac98 + ac18: 43363175 teqmi r6, #1073741853 ; 0x4000001d + ac1c: 65727275 ldrbvs r7, [r2, #-629]! + ac20: 6553746e ldrbvs r7, [r3, #-1134] + ac24: 726f736e rsbvc r7, pc, #-1207959551 ; 0xb8000001 + ac28: 756c6156 strbvc r6, [ip, #-342]! + ac2c: e0010065 and r0, r1, r5, rrx + ac30: a0100c05 andsge r0, r0, r5, lsl #24 + ac34: 94000092 strls r0, [r0], #-146 + ac38: 0a00001f beq acbc + ac3c: 6f433875 svcvs 0x00433875 + ac40: 65746e75 ldrbvs r6, [r4, #-3701]! + ac44: e1010072 tst r1, r2, ror r0 + ac48: 83100b05 tsthi r0, #5120 ; 0x1400 + ac4c: b1000092 swplt r0, r2, [r0] + ac50: 0b00001f bleq acd4 + ac54: 000001b1 strheq r0, [r0], -r1 + ac58: 00400fe0 subeq r0, r0, r0, ror #31 + ac5c: 00401070 subeq r1, r0, r0, ror r0 + ac60: 0001b00b andeq fp, r1, fp + ac64: 400fea00 andmi lr, pc, r0, lsl #20 + ac68: 40107000 andsmi r7, r0, r0 + ac6c: 01af0b00 undefined instruction 0x01af0b00 + ac70: 10500000 subsne r0, r0, r0 + ac74: 10680040 rsbne r0, r8, r0, asr #32 + ac78: 00000040 andeq r0, r0, r0, asr #32 + ac7c: 00000000 andeq r0, r0, r0 + ac80: 000001a8 andeq r0, r0, r8, lsr #3 + ac84: 0b780003 bleq 1e0ac98 + ac88: 06040000 streq r0, [r4], -r0 + ac8c: 445c3a43 ldrbmi r3, [ip], #-2627 + ac90: 6d75636f ldclvs 3, cr6, [r5, #-444]! + ac94: 73746e65 cmnvc r4, #1616 ; 0x650 + ac98: 646e6120 strbtvs r6, [lr], #-288 + ac9c: 74655320 strbtvc r5, [r5], #-800 + aca0: 676e6974 undefined + aca4: 616d5c73 smcvs 54723 + aca8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + acac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + acb0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + acb4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + acb8: 775c7374 undefined + acbc: 6f632d73 svcvs 0x00632d73 + acc0: 6f72746e svcvs 0x0072746e + acc4: 65575c6c ldrbvs r5, [r7, #-3180] + acc8: 65687461 strbvs r7, [r8, #-1121]! + accc: 74532072 ldrbvc r2, [r3], #-114 + acd0: 6f697461 svcvs 0x00697461 + acd4: 6f43206e svcvs 0x0043206e + acd8: 6f72746e svcvs 0x0072746e + acdc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ace0: 7070415c rsbsvc r4, r0, ip, asr r1 + ace4: 6163696c cmnvs r3, ip, ror #18 + ace8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + acec: 756f535c strbvc r5, [pc, #-860]! ; a998 + acf0: 5c656372 stclpl 3, cr6, [r5], #-456 + acf4: 74616577 strbtvc r6, [r1], #-1399 + acf8: 5f726568 svcpl 0x00726568 + acfc: 74617473 strbtvc r7, [r1], #-1139 + ad00: 5f6e6f69 svcpl 0x006e6f69 + ad04: 746e6f63 strbtvc r6, [lr], #-3939 + ad08: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + ad0c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + ad10: 52414900 subpl r4, r1, #0 ; 0x0 + ad14: 534e4120 movtpl r4, #57632 ; 0xe120 + ad18: 2f432049 svccs 0x00432049 + ad1c: 202b2b43 eorcs r2, fp, r3, asr #22 + ad20: 706d6f43 rsbvc r6, sp, r3, asr #30 + ad24: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + ad28: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + ad2c: 322e3033 eorcc r3, lr, #51 ; 0x33 + ad30: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ad34: 572f3539 undefined + ad38: 4b203233 blmi 81760c + ad3c: 534b4349 movtpl r4, #45897 ; 0xb349 + ad40: 54524154 ldrbpl r4, [r2], #-340 + ad44: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + ad48: 4d524120 ldfmie f4, [r2, #-128] + ad4c: 108c0100 addne r0, ip, r0, lsl #2 + ad50: 12700040 rsbsne r0, r0, #64 ; 0x40 + ad54: 6c5c0040 mrrcvs 0, 4, r0, ip, cr0 + ad58: 3af00000 bcc ffc0ad60 + ad5c: 13100000 tstne r0, #0 ; 0x0 + ad60: 0800008c stmdaeq r0, {r2, r3, r7} + ad64: 000001aa andeq r0, r0, sl, lsr #3 + ad68: 70736944 rsbsvc r6, r3, r4, asr #18 + ad6c: 4679616c ldrbtmi r6, [r9], -ip, ror #2 + ad70: 73656572 cmnvc r5, #478150656 ; 0x1c800000 + ad74: 656c6163 strbvs r6, [ip, #-355]! + ad78: 6f676f4c svcvs 0x00676f4c + ad7c: 06990100 ldreq r0, [r9], r0, lsl #2 + ad80: 1fce0106 svcne 0x00ce0106 + ad84: 108c0000 addne r0, ip, r0 + ad88: 12700040 rsbsne r0, r0, #64 ; 0x40 + ad8c: 78090040 stmdavc r9, {r6} + ad90: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 + ad94: 6f6f4374 svcvs 0x006f4374 + ad98: 01006472 tsteq r0, r2, ror r4 + ad9c: 10230699 mlane r3, r9, r6, r0 + ada0: 00009283 andeq r9, r0, r3, lsl #5 + ada4: 00001ffa strdeq r1, [r0], -sl + ada8: 74537909 ldrbvc r7, [r3], #-2313 + adac: 43747261 cmnmi r4, #268435462 ; 0x10000006 + adb0: 64726f6f ldrbtvs r6, [r2], #-3951 + adb4: 06990100 ldreq r0, [r9], r0, lsl #2 + adb8: 92831038 addls r1, r3, #56 ; 0x38 + adbc: 20170000 andscs r0, r7, r0 + adc0: 750a0000 strvc r0, [sl] + adc4: 756f4338 strbvc r4, [pc, #-824]! ; aa94 + adc8: 0100746e tsteq r0, lr, ror #8 + adcc: 100b069b mulne fp, fp, r6 + add0: 00009283 andeq r9, r0, r3, lsl #5 + add4: 00002054 andeq r2, r0, r4, asr r0 + add8: 5338750a teqpl r8, #41943040 ; 0x2800000 + addc: 6e697274 mcrvs 2, 3, r7, cr9, cr4, {3} + ade0: 9c010067 stcls 0, cr0, [r1], {103} + ade4: aa100b06 bge 40da04 + ade8: 5c00008f stcpl 0, cr0, [r0], {143} + adec: 0b000020 bleq ae74 + adf0: 000001a9 andeq r0, r0, r9, lsr #3 + adf4: 0040109c umaaleq r1, r0, ip, r0 + adf8: 00401244 subeq r1, r0, r4, asr #4 + adfc: 0100690a tsteq r0, sl, lsl #18 + ae00: 100f069e mulne pc, lr, r6 + ae04: 00009283 andeq r9, r0, r3, lsl #5 + ae08: 00002070 andeq r2, r0, r0, ror r0 + ae0c: 0001a80b andeq sl, r1, fp, lsl #16 + ae10: 40109e00 andsmi r9, r0, r0, lsl #28 + ae14: 40123800 andsmi r3, r2, r0, lsl #16 + ae18: 01a70b00 undefined instruction 0x01a70b00 + ae1c: 12280000 eorne r0, r8, #0 ; 0x0 + ae20: 12340040 eorsne r0, r4, #64 ; 0x40 + ae24: 00000040 andeq r0, r0, r0, asr #32 + ae28: 00000000 andeq r0, r0, r0 + ae2c: 000000e0 andeq r0, r0, r0, ror #1 + ae30: 0b780003 bleq 1e0ae44 + ae34: 06040000 streq r0, [r4], -r0 + ae38: 445c3a43 ldrbmi r3, [ip], #-2627 + ae3c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + ae40: 73746e65 cmnvc r4, #1616 ; 0x650 + ae44: 646e6120 strbtvs r6, [lr], #-288 + ae48: 74655320 strbtvc r5, [r5], #-800 + ae4c: 676e6974 undefined + ae50: 616d5c73 smcvs 54723 + ae54: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + ae58: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + ae5c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + ae60: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + ae64: 775c7374 undefined + ae68: 6f632d73 svcvs 0x00632d73 + ae6c: 6f72746e svcvs 0x0072746e + ae70: 65575c6c ldrbvs r5, [r7, #-3180] + ae74: 65687461 strbvs r7, [r8, #-1121]! + ae78: 74532072 ldrbvc r2, [r3], #-114 + ae7c: 6f697461 svcvs 0x00697461 + ae80: 6f43206e svcvs 0x0043206e + ae84: 6f72746e svcvs 0x0072746e + ae88: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ae8c: 7070415c rsbsvc r4, r0, ip, asr r1 + ae90: 6163696c cmnvs r3, ip, ror #18 + ae94: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + ae98: 756f535c strbvc r5, [pc, #-860]! ; ab44 + ae9c: 5c656372 stclpl 3, cr6, [r5], #-456 + aea0: 74616577 strbtvc r6, [r1], #-1399 + aea4: 5f726568 svcpl 0x00726568 + aea8: 74617473 strbtvc r7, [r1], #-1139 + aeac: 5f6e6f69 svcpl 0x006e6f69 + aeb0: 746e6f63 strbtvc r6, [lr], #-3939 + aeb4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + aeb8: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + aebc: 52414900 subpl r4, r1, #0 ; 0x0 + aec0: 534e4120 movtpl r4, #57632 ; 0xe120 + aec4: 2f432049 svccs 0x00432049 + aec8: 202b2b43 eorcs r2, fp, r3, asr #22 + aecc: 706d6f43 rsbvc r6, sp, r3, asr #30 + aed0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + aed4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + aed8: 322e3033 eorcc r3, lr, #51 ; 0x33 + aedc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + aee0: 572f3539 undefined + aee4: 4b203233 blmi 8177b8 + aee8: 534b4349 movtpl r4, #45897 ; 0xb349 + aeec: 54524154 ldrbpl r4, [r2], #-340 + aef0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + aef4: 4d524120 ldfmie f4, [r2, #-128] + aef8: 12700100 rsbsne r0, r0, #0 ; 0x0 + aefc: 12740040 rsbsne r0, r4, #64 ; 0x40 + af00: 6d700040 ldclvs 0, cr0, [r0, #-256]! + af04: 3cc60000 stclcc 0, cr0, [r6], {0} + af08: 13100000 tstne r0, #0 ; 0x0 + af0c: 0000008c andeq r0, r0, ip, lsl #1 + af10: 00000178 andeq r0, r0, r8, ror r1 + af14: 0b780003 bleq 1e0af28 + af18: 06040000 streq r0, [r4], -r0 + af1c: 445c3a43 ldrbmi r3, [ip], #-2627 + af20: 6d75636f ldclvs 3, cr6, [r5, #-444]! + af24: 73746e65 cmnvc r4, #1616 ; 0x650 + af28: 646e6120 strbtvs r6, [lr], #-288 + af2c: 74655320 strbtvc r5, [r5], #-800 + af30: 676e6974 undefined + af34: 616d5c73 smcvs 54723 + af38: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + af3c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + af40: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + af44: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + af48: 775c7374 undefined + af4c: 6f632d73 svcvs 0x00632d73 + af50: 6f72746e svcvs 0x0072746e + af54: 65575c6c ldrbvs r5, [r7, #-3180] + af58: 65687461 strbvs r7, [r8, #-1121]! + af5c: 74532072 ldrbvc r2, [r3], #-114 + af60: 6f697461 svcvs 0x00697461 + af64: 6f43206e svcvs 0x0043206e + af68: 6f72746e svcvs 0x0072746e + af6c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + af70: 7070415c rsbsvc r4, r0, ip, asr r1 + af74: 6163696c cmnvs r3, ip, ror #18 + af78: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + af7c: 756f535c strbvc r5, [pc, #-860]! ; ac28 + af80: 5c656372 stclpl 3, cr6, [r5], #-456 + af84: 74616577 strbtvc r6, [r1], #-1399 + af88: 5f726568 svcpl 0x00726568 + af8c: 74617473 strbtvc r7, [r1], #-1139 + af90: 5f6e6f69 svcpl 0x006e6f69 + af94: 746e6f63 strbtvc r6, [lr], #-3939 + af98: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + af9c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + afa0: 52414900 subpl r4, r1, #0 ; 0x0 + afa4: 534e4120 movtpl r4, #57632 ; 0xe120 + afa8: 2f432049 svccs 0x00432049 + afac: 202b2b43 eorcs r2, fp, r3, asr #22 + afb0: 706d6f43 rsbvc r6, sp, r3, asr #30 + afb4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + afb8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + afbc: 322e3033 eorcc r3, lr, #51 ; 0x33 + afc0: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + afc4: 572f3539 undefined + afc8: 4b203233 blmi 81789c + afcc: 534b4349 movtpl r4, #45897 ; 0xb349 + afd0: 54524154 ldrbpl r4, [r2], #-340 + afd4: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + afd8: 4d524120 ldfmie f4, [r2, #-128] + afdc: 12800100 addne r0, r0, #0 ; 0x0 + afe0: 14320040 ldrtne r0, [r2], #-64 + afe4: 6d980040 ldcvs 0, cr0, [r8, #256] + afe8: 3d4d0000 stclcc 0, cr0, [sp] + afec: 13100000 tstne r0, #0 ; 0x0 + aff0: 0800008c stmdaeq r0, {r2, r3, r7} + aff4: 0000017b andeq r0, r0, fp, ror r1 + aff8: 61656c43 cmnvs r5, r3, asr #24 + affc: 65724672 ldrbvs r4, [r2, #-1650]! + b000: 61637365 cmnvs r3, r5, ror #6 + b004: 6f4c656c svcvs 0x004c656c + b008: 01006f67 tsteq r0, r7, ror #30 + b00c: 010606e3 smlatteq r6, r3, r6, r0 + b010: 00002083 andeq r2, r0, r3, lsl #1 + b014: 00401280 subeq r1, r0, r0, lsl #5 + b018: 00401432 subeq r1, r0, r2, lsr r4 + b01c: 74537809 ldrbvc r7, [r3], #-2057 + b020: 43747261 cmnmi r4, #268435462 ; 0x10000006 + b024: 64726f6f ldrbtvs r6, [r2], #-3951 + b028: 06e30100 strbteq r0, [r3], r0, lsl #2 + b02c: 92831021 addls r1, r3, #33 ; 0x21 + b030: 20af0000 adccs r0, pc, r0 + b034: 79090000 stmdbvc r9, {} + b038: 72617453 rsbvc r7, r1, #1392508928 ; 0x53000000 + b03c: 6f6f4374 svcvs 0x006f4374 + b040: 01006472 tsteq r0, r2, ror r4 + b044: 103606e3 eorsne r0, r6, r3, ror #13 + b048: 00009283 andeq r9, r0, r3, lsl #5 + b04c: 000020cc andeq r2, r0, ip, asr #1 + b050: 00017a0b andeq r7, r1, fp, lsl #20 + b054: 40128600 andsmi r8, r2, r0, lsl #12 + b058: 40142e00 andsmi r2, r4, r0, lsl #28 + b05c: 00690a00 rsbeq r0, r9, r0, lsl #20 + b060: 0f06e501 svceq 0x0006e501 + b064: 00928310 addseq r8, r2, r0, lsl r3 + b068: 0020fe00 eoreq pc, r0, r0, lsl #28 + b06c: 01790b00 cmneq r9, r0, lsl #22 + b070: 12880000 addne r0, r8, #0 ; 0x0 + b074: 14220040 strtne r0, [r2], #-64 + b078: 780b0040 stmdavc fp, {r6} + b07c: 12000001 andne r0, r0, #1 ; 0x1 + b080: 1e004014 mcrne 0, 0, r4, cr0, cr4, {0} + b084: 00004014 andeq r4, r0, r4, lsl r0 + b088: 00000000 andeq r0, r0, r0 + b08c: 00000234 andeq r0, r0, r4, lsr r2 + b090: 0b780003 bleq 1e0b0a4 + b094: 06040000 streq r0, [r4], -r0 + b098: 445c3a43 ldrbmi r3, [ip], #-2627 + b09c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b0a0: 73746e65 cmnvc r4, #1616 ; 0x650 + b0a4: 646e6120 strbtvs r6, [lr], #-288 + b0a8: 74655320 strbtvc r5, [r5], #-800 + b0ac: 676e6974 undefined + b0b0: 616d5c73 smcvs 54723 + b0b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b0b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b0bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b0c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b0c4: 775c7374 undefined + b0c8: 6f632d73 svcvs 0x00632d73 + b0cc: 6f72746e svcvs 0x0072746e + b0d0: 65575c6c ldrbvs r5, [r7, #-3180] + b0d4: 65687461 strbvs r7, [r8, #-1121]! + b0d8: 74532072 ldrbvc r2, [r3], #-114 + b0dc: 6f697461 svcvs 0x00697461 + b0e0: 6f43206e svcvs 0x0043206e + b0e4: 6f72746e svcvs 0x0072746e + b0e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b0ec: 7070415c rsbsvc r4, r0, ip, asr r1 + b0f0: 6163696c cmnvs r3, ip, ror #18 + b0f4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b0f8: 756f535c strbvc r5, [pc, #-860]! ; ada4 + b0fc: 5c656372 stclpl 3, cr6, [r5], #-456 + b100: 74616577 strbtvc r6, [r1], #-1399 + b104: 5f726568 svcpl 0x00726568 + b108: 74617473 strbtvc r7, [r1], #-1139 + b10c: 5f6e6f69 svcpl 0x006e6f69 + b110: 746e6f63 strbtvc r6, [lr], #-3939 + b114: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b118: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + b11c: 52414900 subpl r4, r1, #0 ; 0x0 + b120: 534e4120 movtpl r4, #57632 ; 0xe120 + b124: 2f432049 svccs 0x00432049 + b128: 202b2b43 eorcs r2, fp, r3, asr #22 + b12c: 706d6f43 rsbvc r6, sp, r3, asr #30 + b130: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + b134: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + b138: 322e3033 eorcc r3, lr, #51 ; 0x33 + b13c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + b140: 572f3539 undefined + b144: 4b203233 blmi 817a18 + b148: 534b4349 movtpl r4, #45897 ; 0xb349 + b14c: 54524154 ldrbpl r4, [r2], #-340 + b150: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b154: 4d524120 ldfmie f4, [r2, #-128] + b158: 14340100 ldrtne r0, [r4], #-256 + b15c: 16ac0040 strtne r0, [ip], r0, asr #32 + b160: 6e900040 cdpvs 0, 9, cr0, cr0, cr0, {2} + b164: 3ed70000 cdpcc 0, 13, cr0, cr7, cr0, {0} + b168: 13100000 tstne r0, #0 ; 0x0 + b16c: 0800008c stmdaeq r0, {r2, r3, r7} + b170: 00000237 andeq r0, r0, r7, lsr r2 + b174: 70736944 rsbsvc r6, r3, r4, asr #18 + b178: 5379616c cmnpl r9, #27 ; 0x1b + b17c: 6f736e65 svcvs 0x00736e65 + b180: 6c615672 stclvs 6, cr5, [r1], #-456 + b184: 01006575 tsteq r0, r5, ror r5 + b188: 0106079d strbeq r0, [r6, -sp] + b18c: 00002111 andeq r2, r0, r1, lsl r1 + b190: 00401434 subeq r1, r0, r4, lsr r4 + b194: 004016ac subeq r1, r0, ip, lsr #13 + b198: 53387509 teqpl r8, #37748736 ; 0x2400000 + b19c: 6f736e65 svcvs 0x00736e65 + b1a0: 9d010072 stcls 0, cr0, [r1, #-456] + b1a4: 4b102e07 blmi 4169c8 + b1a8: 49000092 stmdbmi r0, {r1, r4, r7} + b1ac: 0a000021 beq b238 + b1b0: 6f6f4378 svcvs 0x006f4378 + b1b4: 01006472 tsteq r0, r2, ror r4 + b1b8: 100b079f mulne fp, pc, r7 + b1bc: 00009283 andeq r9, r0, r3, lsl #5 + b1c0: 00002166 andeq r2, r0, r6, ror #2 + b1c4: 6f43790a svcvs 0x0043790a + b1c8: 0064726f rsbeq r7, r4, pc, ror #4 + b1cc: 13079f01 movwne r9, #32513 ; 0x7f01 + b1d0: 00928310 addseq r8, r2, r0, lsl r3 + b1d4: 00216e00 eoreq r6, r1, r0, lsl #28 + b1d8: 696c0a00 stmdbvs ip!, {r9, fp}^ + b1dc: 0100656e tsteq r0, lr, ror #10 + b1e0: 100b07a0 andne r0, fp, r0, lsr #15 + b1e4: 00009283 andeq r9, r0, r3, lsl #5 + b1e8: 00002176 andeq r2, r0, r6, ror r1 + b1ec: 00017e0b andeq r7, r1, fp, lsl #28 + b1f0: 40144200 andsmi r4, r4, r0, lsl #4 + b1f4: 40146600 andsmi r6, r4, r0, lsl #12 + b1f8: 00690a00 rsbeq r0, r9, r0, lsl #20 + b1fc: 0f07a401 svceq 0x0007a401 + b200: 00928310 addseq r8, r2, r0, lsl r3 + b204: 00217e00 eoreq r7, r1, r0, lsl #28 + b208: 360b0000 strcc r0, [fp], -r0 + b20c: 94000002 strls r0, [r0], #-2 + b210: ac004014 stcge 0, cr4, [r0], {20} + b214: 0b004016 bleq 1b274 + b218: 000001b5 strheq r0, [r0], -r5 + b21c: 004014a6 subeq r1, r0, r6, lsr #9 + b220: 00401542 subeq r1, r0, r2, asr #10 + b224: 0001a60b andeq sl, r1, fp, lsl #12 + b228: 4014b600 andsmi fp, r4, r0, lsl #12 + b22c: 4014d000 andsmi sp, r4, r0 + b230: b40b0000 strlt r0, [fp] + b234: d0000001 andle r0, r0, r1 + b238: ec004014 stc 0, cr4, [r0], {20} + b23c: 00004014 andeq r4, r0, r4, lsl r0 + b240: 01df0b00 bicseq r0, pc, r0, lsl #22 + b244: 15440000 strbne r0, [r4] + b248: 15d20040 ldrbne r0, [r2, #64] + b24c: d00b0040 andle r0, fp, r0, asr #32 + b250: 54000001 strpl r0, [r0], #-1 + b254: 6e004015 mcrvs 0, 0, r4, cr0, cr5, {0} + b258: 00004015 andeq r4, r0, r5, lsl r0 + b25c: 0001de0b andeq sp, r1, fp, lsl #28 + b260: 40156e00 andsmi r6, r5, r0, lsl #28 + b264: 40158a00 andsmi r8, r5, r0, lsl #20 + b268: 0b000000 bleq b270 + b26c: 00000235 andeq r0, r0, r5, lsr r2 + b270: 004015d2 ldrdeq r1, [r0], #-82 + b274: 0040167a subeq r1, r0, sl, ror r6 + b278: 0001fa0b andeq pc, r1, fp, lsl #20 + b27c: 4015e200 andsmi lr, r5, r0, lsl #4 + b280: 4015fc00 andsmi pc, r5, r0, lsl #24 + b284: 080b0000 stmdaeq fp, {} + b288: fc000002 stc2 0, cr0, [r0], {2} + b28c: 18004015 stmdane r0, {r0, r2, r4, lr} + b290: 00004016 andeq r4, r0, r6, lsl r0 + b294: 0002340b andeq r3, r2, fp, lsl #8 + b298: 40162800 andsmi r2, r6, r0, lsl #16 + b29c: 40166400 andsmi r6, r6, r0, lsl #8 + b2a0: 00690a00 rsbeq r0, r9, r0, lsl #20 + b2a4: 1308ad01 movwne sl, #36097 ; 0x8d01 + b2a8: 00928310 addseq r8, r2, r0, lsl r3 + b2ac: 00219100 eoreq r9, r1, r0, lsl #2 + b2b0: 02330b00 eorseq r0, r3, #0 ; 0x0 + b2b4: 162a0000 strtne r0, [sl], -r0 + b2b8: 165a0040 ldrbne r0, [sl], -r0, asr #32 + b2bc: 00000040 andeq r0, r0, r0, asr #32 + b2c0: 00000000 andeq r0, r0, r0 + b2c4: 00000190 muleq r0, r0, r1 + b2c8: 0b780003 bleq 1e0b2dc + b2cc: 06040000 streq r0, [r4], -r0 + b2d0: 445c3a43 ldrbmi r3, [ip], #-2627 + b2d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b2d8: 73746e65 cmnvc r4, #1616 ; 0x650 + b2dc: 646e6120 strbtvs r6, [lr], #-288 + b2e0: 74655320 strbtvc r5, [r5], #-800 + b2e4: 676e6974 undefined + b2e8: 616d5c73 smcvs 54723 + b2ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b2f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b2f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b2f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b2fc: 775c7374 undefined + b300: 6f632d73 svcvs 0x00632d73 + b304: 6f72746e svcvs 0x0072746e + b308: 65575c6c ldrbvs r5, [r7, #-3180] + b30c: 65687461 strbvs r7, [r8, #-1121]! + b310: 74532072 ldrbvc r2, [r3], #-114 + b314: 6f697461 svcvs 0x00697461 + b318: 6f43206e svcvs 0x0043206e + b31c: 6f72746e svcvs 0x0072746e + b320: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b324: 7070415c rsbsvc r4, r0, ip, asr r1 + b328: 6163696c cmnvs r3, ip, ror #18 + b32c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b330: 756f535c strbvc r5, [pc, #-860]! ; afdc + b334: 5c656372 stclpl 3, cr6, [r5], #-456 + b338: 74616577 strbtvc r6, [r1], #-1399 + b33c: 5f726568 svcpl 0x00726568 + b340: 74617473 strbtvc r7, [r1], #-1139 + b344: 5f6e6f69 svcpl 0x006e6f69 + b348: 746e6f63 strbtvc r6, [lr], #-3939 + b34c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b350: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + b354: 52414900 subpl r4, r1, #0 ; 0x0 + b358: 534e4120 movtpl r4, #57632 ; 0xe120 + b35c: 2f432049 svccs 0x00432049 + b360: 202b2b43 eorcs r2, fp, r3, asr #22 + b364: 706d6f43 rsbvc r6, sp, r3, asr #30 + b368: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + b36c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + b370: 322e3033 eorcc r3, lr, #51 ; 0x33 + b374: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + b378: 572f3539 undefined + b37c: 4b203233 blmi 817c50 + b380: 534b4349 movtpl r4, #45897 ; 0xb349 + b384: 54524154 ldrbpl r4, [r2], #-340 + b388: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b38c: 4d524120 ldfmie f4, [r2, #-128] + b390: 16ac0100 strtne r0, [ip], r0, lsl #2 + b394: 17e00040 strbne r0, [r0, r0, asr #32]! + b398: 70000040 andvc r0, r0, r0, asr #32 + b39c: 41ba0000 undefined instruction 0x41ba0000 + b3a0: 13100000 tstne r0, #0 ; 0x0 + b3a4: 0800008c stmdaeq r0, {r2, r3, r7} + b3a8: 00000190 muleq r0, r0, r1 + b3ac: 70736944 rsbsvc r6, r3, r4, asr #18 + b3b0: 5779616c ldrbpl r6, [r9, -ip, ror #2]! + b3b4: 44646e69 strbtmi r6, [r4], #-3689 + b3b8: 01007269 tsteq r0, r9, ror #4 + b3bc: 010608df ldrdeq r0, [r6, -pc] + b3c0: 000021a4 andeq r2, r0, r4, lsr #3 + b3c4: 004016ac subeq r1, r0, ip, lsr #13 + b3c8: 004017e0 subeq r1, r0, r0, ror #15 + b3cc: 6c387509 cfldr32vs mvfx7, [r8], #-36 + b3d0: 00656e69 rsbeq r6, r5, r9, ror #28 + b3d4: 1d08df01 stcne 15, cr13, [r8, #-4] + b3d8: 00928310 addseq r8, r2, r0, lsl r3 + b3dc: 0021d000 eoreq sp, r1, r0 + b3e0: 43790a00 cmnmi r9, #0 ; 0x0 + b3e4: 64726f6f ldrbtvs r6, [r2], #-3951 + b3e8: 08e10100 stmiaeq r1!, {r8}^ + b3ec: 9283100b addls r1, r3, #11 ; 0xb + b3f0: 21ed0000 mvncs r0, r0 + b3f4: 780a0000 stmdavc sl, {} + b3f8: 726f6f43 rsbvc r6, pc, #268 ; 0x10c + b3fc: e2010064 and r0, r1, #100 ; 0x64 + b400: 83100b08 tsthi r0, #8192 ; 0x2000 + b404: 0a000092 beq b654 + b408: 0b000022 bleq b498 + b40c: 00000155 andeq r0, r0, r5, asr r1 + b410: 004016c4 subeq r1, r0, r4, asr #13 + b414: 004016da ldrdeq r1, [r0], #-106 + b418: 01630b00 cmneq r3, r0, lsl #22 + b41c: 16f80000 ldrbtne r0, [r8], r0 + b420: 17100040 ldrne r0, [r0, -r0, asr #32] + b424: 0b000040 bleq b52c + b428: 0000018f andeq r0, r0, pc, lsl #3 + b42c: 00401782 subeq r1, r0, r2, lsl #15 + b430: 004017ba strheq r1, [r0], #-122 + b434: 0100690a tsteq r0, sl, lsl #18 + b438: 100f0995 mulne pc, r5, r9 + b43c: 00009283 andeq r9, r0, r3, lsl #5 + b440: 00002212 andeq r2, r0, r2, lsl r2 + b444: 00018e0b andeq r8, r1, fp, lsl #28 + b448: 40178a00 andsmi r8, r7, r0, lsl #20 + b44c: 4017ba00 andsmi fp, r7, r0, lsl #20 + ... + b458: 00000118 andeq r0, r0, r8, lsl r1 + b45c: 0b780003 bleq 1e0b470 + b460: 06040000 streq r0, [r4], -r0 + b464: 445c3a43 ldrbmi r3, [ip], #-2627 + b468: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b46c: 73746e65 cmnvc r4, #1616 ; 0x650 + b470: 646e6120 strbtvs r6, [lr], #-288 + b474: 74655320 strbtvc r5, [r5], #-800 + b478: 676e6974 undefined + b47c: 616d5c73 smcvs 54723 + b480: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b484: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b488: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b48c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b490: 775c7374 undefined + b494: 6f632d73 svcvs 0x00632d73 + b498: 6f72746e svcvs 0x0072746e + b49c: 65575c6c ldrbvs r5, [r7, #-3180] + b4a0: 65687461 strbvs r7, [r8, #-1121]! + b4a4: 74532072 ldrbvc r2, [r3], #-114 + b4a8: 6f697461 svcvs 0x00697461 + b4ac: 6f43206e svcvs 0x0043206e + b4b0: 6f72746e svcvs 0x0072746e + b4b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b4b8: 7070415c rsbsvc r4, r0, ip, asr r1 + b4bc: 6163696c cmnvs r3, ip, ror #18 + b4c0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b4c4: 756f535c strbvc r5, [pc, #-860]! ; b170 + b4c8: 5c656372 stclpl 3, cr6, [r5], #-456 + b4cc: 74616577 strbtvc r6, [r1], #-1399 + b4d0: 5f726568 svcpl 0x00726568 + b4d4: 74617473 strbtvc r7, [r1], #-1139 + b4d8: 5f6e6f69 svcpl 0x006e6f69 + b4dc: 746e6f63 strbtvc r6, [lr], #-3939 + b4e0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b4e4: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + b4e8: 52414900 subpl r4, r1, #0 ; 0x0 + b4ec: 534e4120 movtpl r4, #57632 ; 0xe120 + b4f0: 2f432049 svccs 0x00432049 + b4f4: 202b2b43 eorcs r2, fp, r3, asr #22 + b4f8: 706d6f43 rsbvc r6, sp, r3, asr #30 + b4fc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + b500: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + b504: 322e3033 eorcc r3, lr, #51 ; 0x33 + b508: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + b50c: 572f3539 undefined + b510: 4b203233 blmi 817de4 + b514: 534b4349 movtpl r4, #45897 ; 0xb349 + b518: 54524154 ldrbpl r4, [r2], #-340 + b51c: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b520: 4d524120 ldfmie f4, [r2, #-128] + b524: 17e00100 strbne r0, [r0, r0, lsl #2]! + b528: 180c0040 stmdane ip, {r6} + b52c: 711c0040 tstvc ip, r0, asr #32 + b530: 431f0000 tstmi pc, #0 ; 0x0 + b534: 13100000 tstne r0, #0 ; 0x0 + b538: 0800008c stmdaeq r0, {r2, r3, r7} + b53c: 0000011a andeq r0, r0, sl, lsl r1 + b540: 534d564e movtpl r5, #54862 ; 0xd64e + b544: 70757465 rsbsvc r7, r5, r5, ror #8 + b548: 09ab0100 stmibeq fp!, {r8} + b54c: 22250106 eorcs r0, r5, #-2147483647 ; 0x80000001 + b550: 17e00000 strbne r0, [r0, r0]! + b554: 180c0040 stmdane ip, {r6} + b558: 560a0040 strpl r0, [sl], -r0, asr #32 + b55c: 43676552 cmnmi r7, #343932928 ; 0x14800000 + b560: 006c746e rsbeq r7, ip, lr, ror #8 + b564: 1109ad01 tstne r9, r1, lsl #26 + b568: 00930210 addseq r0, r3, r0, lsl r2 + b56c: 00225d00 eoreq r5, r2, r0, lsl #26 + b570: 00000000 andeq r0, r0, r0 + b574: 0000012c andeq r0, r0, ip, lsr #2 + b578: 0b780003 bleq 1e0b58c + b57c: 06040000 streq r0, [r4], -r0 + b580: 445c3a43 ldrbmi r3, [ip], #-2627 + b584: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b588: 73746e65 cmnvc r4, #1616 ; 0x650 + b58c: 646e6120 strbtvs r6, [lr], #-288 + b590: 74655320 strbtvc r5, [r5], #-800 + b594: 676e6974 undefined + b598: 616d5c73 smcvs 54723 + b59c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b5a0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b5a4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b5a8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b5ac: 775c7374 undefined + b5b0: 6f632d73 svcvs 0x00632d73 + b5b4: 6f72746e svcvs 0x0072746e + b5b8: 65575c6c ldrbvs r5, [r7, #-3180] + b5bc: 65687461 strbvs r7, [r8, #-1121]! + b5c0: 74532072 ldrbvc r2, [r3], #-114 + b5c4: 6f697461 svcvs 0x00697461 + b5c8: 6f43206e svcvs 0x0043206e + b5cc: 6f72746e svcvs 0x0072746e + b5d0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b5d4: 7070415c rsbsvc r4, r0, ip, asr r1 + b5d8: 6163696c cmnvs r3, ip, ror #18 + b5dc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b5e0: 756f535c strbvc r5, [pc, #-860]! ; b28c + b5e4: 5c656372 stclpl 3, cr6, [r5], #-456 + b5e8: 74616577 strbtvc r6, [r1], #-1399 + b5ec: 5f726568 svcpl 0x00726568 + b5f0: 74617473 strbtvc r7, [r1], #-1139 + b5f4: 5f6e6f69 svcpl 0x006e6f69 + b5f8: 746e6f63 strbtvc r6, [lr], #-3939 + b5fc: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b600: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + b604: 52414900 subpl r4, r1, #0 ; 0x0 + b608: 534e4120 movtpl r4, #57632 ; 0xe120 + b60c: 2f432049 svccs 0x00432049 + b610: 202b2b43 eorcs r2, fp, r3, asr #22 + b614: 706d6f43 rsbvc r6, sp, r3, asr #30 + b618: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + b61c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + b620: 322e3033 eorcc r3, lr, #51 ; 0x33 + b624: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + b628: 572f3539 undefined + b62c: 4b203233 blmi 817f00 + b630: 534b4349 movtpl r4, #45897 ; 0xb349 + b634: 54524154 ldrbpl r4, [r2], #-340 + b638: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b63c: 4d524120 ldfmie f4, [r2, #-128] + b640: 180c0100 stmdane ip, {r8} + b644: 18440040 stmdane r4, {r6}^ + b648: 71e00040 mvnvc r0, r0, asr #32 + b64c: 43a70000 undefined instruction 0x43a70000 + b650: 13100000 tstne r0, #0 ; 0x0 + b654: 0800008c stmdaeq r0, {r2, r3, r7} + b658: 0000012e andeq r0, r0, lr, lsr #2 + b65c: 64616f4c strbtvs r6, [r1], #-3916 + b660: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 + b664: 4d746e65 ldclmi 14, cr6, [r4, #-404]! + b668: 75736165 ldrbvc r6, [r3, #-357]! + b66c: 656d6572 strbvs r6, [sp, #-1394]! + b670: 7953746e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ + b674: 6d657473 cfstrdvs mvd7, [r5, #-460]! + b678: 09bc0100 ldmibeq ip!, {r8} + b67c: 22710106 rsbscs r0, r1, #-2147483647 ; 0x80000001 + b680: 180c0000 stmdane ip, {} + b684: 18440040 stmdane r4, {r6}^ + b688: 6e0a0040 cdpvs 0, 0, cr0, cr10, cr0, {2} + b68c: 72456d76 subvc r6, r5, #7552 ; 0x1d80 + b690: 00726f72 rsbseq r6, r2, r2, ror pc + b694: 0d09be01 stceq 14, cr11, [r9, #-4] + b698: 00921610 addseq r1, r2, r0, lsl r6 + b69c: 0022a900 eoreq sl, r2, r0, lsl #18 + b6a0: 00000000 andeq r0, r0, r0 + b6a4: 000001bc strheq r0, [r0], -ip + b6a8: 0b780003 bleq 1e0b6bc + b6ac: 01040000 tsteq r4, r0 + b6b0: 445c3a43 ldrbmi r3, [ip], #-2627 + b6b4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b6b8: 73746e65 cmnvc r4, #1616 ; 0x650 + b6bc: 646e6120 strbtvs r6, [lr], #-288 + b6c0: 74655320 strbtvc r5, [r5], #-800 + b6c4: 676e6974 undefined + b6c8: 616d5c73 smcvs 54723 + b6cc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b6d0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b6d4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b6d8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b6dc: 775c7374 undefined + b6e0: 6f632d73 svcvs 0x00632d73 + b6e4: 6f72746e svcvs 0x0072746e + b6e8: 65575c6c ldrbvs r5, [r7, #-3180] + b6ec: 65687461 strbvs r7, [r8, #-1121]! + b6f0: 74532072 ldrbvc r2, [r3], #-114 + b6f4: 6f697461 svcvs 0x00697461 + b6f8: 6f43206e svcvs 0x0043206e + b6fc: 6f72746e svcvs 0x0072746e + b700: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b704: 4d4c505c stclmi 0, cr5, [ip, #-368] + b708: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + b70c: 65746e49 ldrbvs r6, [r4, #-3657]! + b710: 63616672 cmnvs r1, #119537664 ; 0x7200000 + b714: 564e5c65 strbpl r5, [lr], -r5, ror #24 + b718: 00682e4d rsbeq r2, r8, sp, asr #28 + b71c: 20524149 subscs r4, r2, r9, asr #2 + b720: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + b724: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + b728: 43202b2b teqmi r0, #44032 ; 0xac00 + b72c: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + b730: 2072656c rsbscs r6, r2, ip, ror #10 + b734: 332e3556 teqcc lr, #360710144 ; 0x15800000 + b738: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + b73c: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + b740: 33572f35 cmpcc r7, #212 ; 0xd4 + b744: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + b748: 54534b43 ldrbpl r4, [r3], #-2883 + b74c: 20545241 subscs r5, r4, r1, asr #4 + b750: 20726f66 rsbscs r6, r2, r6, ror #30 + b754: 004d5241 subeq r5, sp, r1, asr #4 + b758: 00560401 subseq r0, r6, r1, lsl #8 + b75c: 00023800 andeq r3, r2, r0, lsl #16 + b760: 01bf0d00 undefined instruction 0x01bf0d00 + b764: 0e010000 cdpeq 0, 0, cr0, cr1, cr0, {0} + b768: 6d764e67 ldclvs 14, cr4, [r6, #-412]! + b76c: 4e727245 cdpmi 2, 7, cr7, cr2, cr5, {2} + b770: 7272456f rsbsvc r4, r2, #465567744 ; 0x1bc00000 + b774: 635f726f cmpvs pc, #-268435450 ; 0xf0000006 + b778: 670e0000 strvs r0, [lr, -r0] + b77c: 456d764e strbmi r7, [sp, #-1614]! + b780: 6e497272 mcrvs 2, 2, r7, cr9, cr2, {3} + b784: 696c6176 stmdbvs ip!, {r1, r2, r4, r5, r6, r8, sp, lr}^ + b788: 746e4964 strbtvc r4, [lr], #-2404 + b78c: 61667265 cmnvs r6, r5, ror #4 + b790: 635f6563 cmpvs pc, #415236096 ; 0x18c00000 + b794: 670e0100 strvs r0, [lr, -r0, lsl #2] + b798: 456d764e strbmi r7, [sp, #-1614]! + b79c: 6e497272 mcrvs 2, 2, r7, cr9, cr2, {3} + b7a0: 696c6176 stmdbvs ip!, {r1, r2, r4, r5, r6, r8, sp, lr}^ + b7a4: 6d764e64 ldclvs 14, cr4, [r6, #-400]! + b7a8: 65707954 ldrbvs r7, [r0, #-2388]! + b7ac: 0200635f andeq r6, r0, #2080374785 ; 0x7c000001 + b7b0: 764e670e strbvc r6, [lr], -lr, lsl #14 + b7b4: 7272456d rsbsvc r4, r2, #457179136 ; 0x1b400000 + b7b8: 61766e49 cmnvs r6, r9, asr #28 + b7bc: 5064696c rsbpl r6, r4, ip, ror #18 + b7c0: 746e696f strbtvc r6, [lr], #-2415 + b7c4: 635f7265 cmpvs pc, #1342177286 ; 0x50000006 + b7c8: 670e0300 strvs r0, [lr, -r0, lsl #6] + b7cc: 456d764e strbmi r7, [sp, #-1614]! + b7d0: 72577272 subsvc r7, r7, #536870919 ; 0x20000007 + b7d4: 50657469 rsbpl r7, r5, r9, ror #8 + b7d8: 65746f72 ldrbvs r6, [r4, #-3954]! + b7dc: 635f7463 cmpvs pc, #1660944384 ; 0x63000000 + b7e0: 670e0400 strvs r0, [lr, -r0, lsl #8] + b7e4: 456d764e strbmi r7, [sp, #-1614]! + b7e8: 65567272 ldrbvs r7, [r6, #-626] + b7ec: 79666972 stmdbvc r6!, {r1, r4, r5, r6, r8, fp, sp, lr}^ + b7f0: 6f727245 svcvs 0x00727245 + b7f4: 00635f72 rsbeq r5, r3, r2, ror pc + b7f8: 4e670e05 cdpmi 14, 6, cr0, cr7, cr5, {0} + b7fc: 72456d76 subvc r6, r5, #7552 ; 0x1d80 + b800: 64644172 strbtvs r4, [r4], #-370 + b804: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + b808: 63617053 cmnvs r1, #83 ; 0x53 + b80c: 65764f65 ldrbvs r4, [r6, #-3941]! + b810: 6f6c6672 svcvs 0x006c6672 + b814: 00635f77 rsbeq r5, r3, r7, ror pc + b818: 4e670e06 cdpmi 14, 6, cr0, cr7, cr6, {0} + b81c: 72456d76 subvc r6, r5, #7552 ; 0x1d80 + b820: 616c4272 smcvs 50210 + b824: 68436b6e stmdavs r3, {r1, r2, r3, r5, r6, r8, r9, fp, sp, lr}^ + b828: 456b6365 strbmi r6, [fp, #-869]! + b82c: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + b830: 0700635f smlsdeq r0, pc, r3, r6 + b834: 764e670e strbvc r6, [lr], -lr, lsl #14 + b838: 7272456d rsbsvc r4, r2, #457179136 ; 0x1b400000 + b83c: 74736552 ldrbtvc r6, [r3], #-1362 + b840: 74636972 strbtvc r6, [r3], #-2418 + b844: 72416465 subvc r6, r1, #1694498816 ; 0x65000000 + b848: 635f6165 cmpvs pc, #1073741849 ; 0x40000019 + b84c: 670e0800 strvs r0, [lr, -r0, lsl #16] + b850: 456d764e strbmi r7, [sp, #-1614]! + b854: 614d7272 cmpvs sp, r2, ror r2 + b858: 72724578 rsbsvc r4, r2, #503316480 ; 0x1e000000 + b85c: 635f726f cmpvs pc, #-268435450 ; 0xf0000006 + b860: 00000900 andeq r0, r0, r0, lsl #18 + b864: 00000114 andeq r0, r0, r4, lsl r1 + b868: 0b780003 bleq 1e0b87c + b86c: 06040000 streq r0, [r4], -r0 + b870: 445c3a43 ldrbmi r3, [ip], #-2627 + b874: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b878: 73746e65 cmnvc r4, #1616 ; 0x650 + b87c: 646e6120 strbtvs r6, [lr], #-288 + b880: 74655320 strbtvc r5, [r5], #-800 + b884: 676e6974 undefined + b888: 616d5c73 smcvs 54723 + b88c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b890: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b894: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b898: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b89c: 775c7374 undefined + b8a0: 6f632d73 svcvs 0x00632d73 + b8a4: 6f72746e svcvs 0x0072746e + b8a8: 65575c6c ldrbvs r5, [r7, #-3180] + b8ac: 65687461 strbvs r7, [r8, #-1121]! + b8b0: 74532072 ldrbvc r2, [r3], #-114 + b8b4: 6f697461 svcvs 0x00697461 + b8b8: 6f43206e svcvs 0x0043206e + b8bc: 6f72746e svcvs 0x0072746e + b8c0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b8c4: 7070415c rsbsvc r4, r0, ip, asr r1 + b8c8: 6163696c cmnvs r3, ip, ror #18 + b8cc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b8d0: 756f535c strbvc r5, [pc, #-860]! ; b57c + b8d4: 5c656372 stclpl 3, cr6, [r5], #-456 + b8d8: 74616577 strbtvc r6, [r1], #-1399 + b8dc: 5f726568 svcpl 0x00726568 + b8e0: 74617473 strbtvc r7, [r1], #-1139 + b8e4: 5f6e6f69 svcpl 0x006e6f69 + b8e8: 746e6f63 strbtvc r6, [lr], #-3939 + b8ec: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b8f0: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + b8f4: 52414900 subpl r4, r1, #0 ; 0x0 + b8f8: 534e4120 movtpl r4, #57632 ; 0xe120 + b8fc: 2f432049 svccs 0x00432049 + b900: 202b2b43 eorcs r2, fp, r3, asr #22 + b904: 706d6f43 rsbvc r6, sp, r3, asr #30 + b908: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + b90c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + b910: 322e3033 eorcc r3, lr, #51 ; 0x33 + b914: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + b918: 572f3539 undefined + b91c: 4b203233 blmi 8181f0 + b920: 534b4349 movtpl r4, #45897 ; 0xb349 + b924: 54524154 ldrbpl r4, [r2], #-340 + b928: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + b92c: 4d524120 ldfmie f4, [r2, #-128] + b930: 18540100 ldmdane r4, {r8}^ + b934: 18740040 ldmdane r4!, {r6}^ + b938: 72a40040 adcvc r0, r4, #64 ; 0x40 + b93c: 444f0000 strbmi r0, [pc], #0 ; b944 + b940: 13100000 tstne r0, #0 ; 0x0 + b944: 0800008c stmdaeq r0, {r2, r3, r7} + b948: 00000117 andeq r0, r0, r7, lsl r1 + b94c: 64616552 strbtvs r6, [r1], #-1362 + b950: 72727543 rsbsvc r7, r2, #281018368 ; 0x10c00000 + b954: 4d746e65 ldclmi 14, cr6, [r4, #-404]! + b958: 75736165 ldrbvc r6, [r3, #-357]! + b95c: 656d6572 strbvs r6, [sp, #-1394]! + b960: 7953746e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, ip, sp, lr}^ + b964: 6d657473 cfstrdvs mvd7, [r5, #-460]! + b968: 09ce0100 stmibeq lr, {r8}^ + b96c: 22b10106 adcscs r0, r1, #-2147483647 ; 0x80000001 + b970: 18540000 ldmdane r4, {}^ + b974: 18740040 ldmdane r4!, {r6}^ + b978: 00000040 andeq r0, r0, r0, asr #32 + b97c: 00000174 andeq r0, r0, r4, ror r1 + b980: 0b780003 bleq 1e0b994 + b984: 06040000 streq r0, [r4], -r0 + b988: 445c3a43 ldrbmi r3, [ip], #-2627 + b98c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b990: 73746e65 cmnvc r4, #1616 ; 0x650 + b994: 646e6120 strbtvs r6, [lr], #-288 + b998: 74655320 strbtvc r5, [r5], #-800 + b99c: 676e6974 undefined + b9a0: 616d5c73 smcvs 54723 + b9a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b9a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b9ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b9b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b9b4: 775c7374 undefined + b9b8: 6f632d73 svcvs 0x00632d73 + b9bc: 6f72746e svcvs 0x0072746e + b9c0: 65575c6c ldrbvs r5, [r7, #-3180] + b9c4: 65687461 strbvs r7, [r8, #-1121]! + b9c8: 74532072 ldrbvc r2, [r3], #-114 + b9cc: 6f697461 svcvs 0x00697461 + b9d0: 6f43206e svcvs 0x0043206e + b9d4: 6f72746e svcvs 0x0072746e + b9d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b9dc: 7070415c rsbsvc r4, r0, ip, asr r1 + b9e0: 6163696c cmnvs r3, ip, ror #18 + b9e4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b9e8: 756f535c strbvc r5, [pc, #-860]! ; b694 + b9ec: 5c656372 stclpl 3, cr6, [r5], #-456 + b9f0: 74616577 strbtvc r6, [r1], #-1399 + b9f4: 5f726568 svcpl 0x00726568 + b9f8: 74617473 strbtvc r7, [r1], #-1139 + b9fc: 5f6e6f69 svcpl 0x006e6f69 + ba00: 746e6f63 strbtvc r6, [lr], #-3939 + ba04: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + ba08: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + ba0c: 52414900 subpl r4, r1, #0 ; 0x0 + ba10: 534e4120 movtpl r4, #57632 ; 0xe120 + ba14: 2f432049 svccs 0x00432049 + ba18: 202b2b43 eorcs r2, fp, r3, asr #22 + ba1c: 706d6f43 rsbvc r6, sp, r3, asr #30 + ba20: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + ba24: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + ba28: 322e3033 eorcc r3, lr, #51 ; 0x33 + ba2c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ba30: 572f3539 undefined + ba34: 4b203233 blmi 818308 + ba38: 534b4349 movtpl r4, #45897 ; 0xb349 + ba3c: 54524154 ldrbpl r4, [r2], #-340 + ba40: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + ba44: 4d524120 ldfmie f4, [r2, #-128] + ba48: 18740100 ldmdane r4!, {r8}^ + ba4c: 19380040 ldmdbne r8!, {r6} + ba50: 73640040 cmnvc r4, #64 ; 0x40 + ba54: 44c60000 strbmi r0, [r6] + ba58: 13100000 tstne r0, #0 ; 0x0 + ba5c: 0800008c stmdaeq r0, {r2, r3, r7} + ba60: 00000176 andeq r0, r0, r6, ror r1 + ba64: 63657865 cmnvs r5, #6619136 ; 0x650000 + ba68: 5f657475 svcpl 0x00657475 + ba6c: 74726175 ldrbtvc r6, [r2], #-373 + ba70: 6d6f635f stclvs 3, cr6, [pc, #-380]! + ba74: 646e616d strbtvs r6, [lr], #-365 + ba78: 09d30100 ldmibeq r3, {r8}^ + ba7c: 22e90106 rsccs r0, r9, #-2147483647 ; 0x80000001 + ba80: 18740000 ldmdane r4!, {}^ + ba84: 19380040 ldmdbne r8!, {r6} + ba88: 75090040 strvc r0, [r9, #-64] + ba8c: 6d6f4338 stclvs 3, cr4, [pc, #-224]! + ba90: 646e616d strbtvs r6, [lr], #-365 + ba94: 09d30100 ldmibeq r3, {r8}^ + ba98: 92831023 addls r1, r3, #35 ; 0x23 + ba9c: 23090000 movwcs r0, #36864 ; 0x9000 + baa0: 75090000 strvc r0, [r9] + baa4: 6c615638 stclvs 6, cr5, [r1], #-224 + baa8: 01006575 tsteq r0, r5, ror r5 + baac: 103609d3 ldrsbtne r0, [r6], -r3 + bab0: 00009283 andeq r9, r0, r3, lsl #5 + bab4: 0000238f andeq r2, r0, pc, lsl #7 + bab8: 4338750a teqmi r8, #41943040 ; 0x2800000 + babc: 616d6d6f cmnvs sp, pc, ror #26 + bac0: 7246646e subvc r6, r6, #1845493760 ; 0x6e000000 + bac4: 00656d61 rsbeq r6, r5, r1, ror #26 + bac8: 0b09d501 bleq 280ed4 + bacc: 008f9010 addeq r9, pc, r0, lsl r0 + bad0: 00240000 eoreq r0, r4, r0 + bad4: 01670b00 cmneq r7, r0, lsl #22 + bad8: 188c0000 stmne ip, {} + badc: 18be0040 ldmne lr!, {r6} + bae0: 0b000040 bleq bbe8 + bae4: 00000175 andeq r0, r0, r5, ror r1 + bae8: 004018c2 subeq r1, r0, r2, asr #17 + baec: 004018e4 subeq r1, r0, r4, ror #17 + baf0: 00000000 andeq r0, r0, r0 + baf4: 0000013c andeq r0, r0, ip, lsr r1 + baf8: 0b780003 bleq 1e0bb0c + bafc: 06040000 streq r0, [r4], -r0 + bb00: 445c3a43 ldrbmi r3, [ip], #-2627 + bb04: 6d75636f ldclvs 3, cr6, [r5, #-444]! + bb08: 73746e65 cmnvc r4, #1616 ; 0x650 + bb0c: 646e6120 strbtvs r6, [lr], #-288 + bb10: 74655320 strbtvc r5, [r5], #-800 + bb14: 676e6974 undefined + bb18: 616d5c73 smcvs 54723 + bb1c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + bb20: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + bb24: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + bb28: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + bb2c: 775c7374 undefined + bb30: 6f632d73 svcvs 0x00632d73 + bb34: 6f72746e svcvs 0x0072746e + bb38: 65575c6c ldrbvs r5, [r7, #-3180] + bb3c: 65687461 strbvs r7, [r8, #-1121]! + bb40: 74532072 ldrbvc r2, [r3], #-114 + bb44: 6f697461 svcvs 0x00697461 + bb48: 6f43206e svcvs 0x0043206e + bb4c: 6f72746e svcvs 0x0072746e + bb50: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + bb54: 7070415c rsbsvc r4, r0, ip, asr r1 + bb58: 6163696c cmnvs r3, ip, ror #18 + bb5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + bb60: 756f535c strbvc r5, [pc, #-860]! ; b80c + bb64: 5c656372 stclpl 3, cr6, [r5], #-456 + bb68: 74616577 strbtvc r6, [r1], #-1399 + bb6c: 5f726568 svcpl 0x00726568 + bb70: 74617473 strbtvc r7, [r1], #-1139 + bb74: 5f6e6f69 svcpl 0x006e6f69 + bb78: 746e6f63 strbtvc r6, [lr], #-3939 + bb7c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + bb80: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + bb84: 52414900 subpl r4, r1, #0 ; 0x0 + bb88: 534e4120 movtpl r4, #57632 ; 0xe120 + bb8c: 2f432049 svccs 0x00432049 + bb90: 202b2b43 eorcs r2, fp, r3, asr #22 + bb94: 706d6f43 rsbvc r6, sp, r3, asr #30 + bb98: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + bb9c: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + bba0: 322e3033 eorcc r3, lr, #51 ; 0x33 + bba4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + bba8: 572f3539 undefined + bbac: 4b203233 blmi 818480 + bbb0: 534b4349 movtpl r4, #45897 ; 0xb349 + bbb4: 54524154 ldrbpl r4, [r2], #-340 + bbb8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + bbbc: 4d524120 ldfmie f4, [r2, #-128] + bbc0: 19380100 ldmdbne r8!, {r8} + bbc4: 19620040 stmdbne r2!, {r6}^ + bbc8: 746c0040 strbtvc r0, [ip], #-64 + bbcc: 45ee0000 strbmi r0, [lr]! + bbd0: 13100000 tstne r0, #0 ; 0x0 + bbd4: 0c00008c stceq 0, cr0, [r0], {140} + bbd8: 0000013e andeq r0, r0, lr, lsr r1 + bbdc: 5f797063 svcpl 0x00797063 + bbe0: 74726175 ldrbtvc r6, [r2], #-373 + bbe4: 5f6f745f svcpl 0x006f745f + bbe8: 61746164 cmnvs r4, r4, ror #2 + bbec: 6675625f undefined + bbf0: a8010066 stmdage r1, {r1, r2, r5, r6} + bbf4: 1001090a andne r0, r1, sl, lsl #18 + bbf8: 00009283 andeq r9, r0, r3, lsl #5 + bbfc: 0000241e andeq r2, r0, lr, lsl r4 + bc00: 00401938 subeq r1, r0, r8, lsr r9 + bc04: 00401962 subeq r1, r0, r2, ror #18 + bc08: 38757009 ldmdacc r5!, {r0, r3, ip, sp, lr}^ + bc0c: 61746144 cmnvs r4, r4, asr #2 + bc10: 00667542 rsbeq r7, r6, r2, asr #10 + bc14: 2a0aa801 bcs 2b5c20 + bc18: 008d3210 addeq r3, sp, r0, lsl r2 + bc1c: 00246200 eoreq r6, r4, r0, lsl #4 + bc20: 00690a00 rsbeq r0, r9, r0, lsl #20 + bc24: 0b0aaa01 bleq 2b6430 + bc28: 00928310 addseq r8, r2, r0, lsl r3 + bc2c: 00247f00 eoreq r7, r4, r0, lsl #30 + bc30: 00000000 andeq r0, r0, r0 + +Disassembly of section .debug_line: + +00000000 <.debug_line>: + 0: 00000213 andeq r0, r0, r3, lsl r2 + 4: 020d0002 andeq r0, sp, #2 ; 0x2 + 8: 01010000 tsteq r1, r0 + c: 000a0500 andeq r0, sl, r0, lsl #10 + 10: 01010101 tsteq r1, r1, lsl #2 + 14: 00000000 andeq r0, r0, r0 + 18: 445c3a43 ldrbmi r3, [ip], #-2627 + 1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 20: 73746e65 cmnvc r4, #1616 ; 0x650 + 24: 646e6120 strbtvs r6, [lr], #-288 + 28: 74655320 strbtvc r5, [r5], #-800 + 2c: 676e6974 undefined + 30: 616d5c73 smcvs 54723 + 34: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 38: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 40: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 44: 775c7374 undefined + 48: 6f632d73 svcvs 0x00632d73 + 4c: 6f72746e svcvs 0x0072746e + 50: 65575c6c ldrbvs r5, [r7, #-3180] + 54: 65687461 strbvs r7, [r8, #-1121]! + 58: 74532072 ldrbvc r2, [r3], #-114 + 5c: 6f697461 svcvs 0x00697461 + 60: 6f43206e svcvs 0x0043206e + 64: 6f72746e svcvs 0x0072746e + 68: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6c: 4d4c505c stclmi 0, cr5, [ip, #-368] + 70: 746e495c strbtvc r4, [lr], #-2396 + 74: 61667265 cmnvs r6, r5, ror #4 + 78: 005c6563 subseq r6, ip, r3, ror #10 + 7c: 445c3a43 ldrbmi r3, [ip], #-2627 + 80: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 84: 73746e65 cmnvc r4, #1616 ; 0x650 + 88: 646e6120 strbtvs r6, [lr], #-288 + 8c: 74655320 strbtvc r5, [r5], #-800 + 90: 676e6974 undefined + 94: 616d5c73 smcvs 54723 + 98: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 9c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a8: 775c7374 undefined + ac: 6f632d73 svcvs 0x00632d73 + b0: 6f72746e svcvs 0x0072746e + b4: 65575c6c ldrbvs r5, [r7, #-3180] + b8: 65687461 strbvs r7, [r8, #-1121]! + bc: 74532072 ldrbvc r2, [r3], #-114 + c0: 6f697461 svcvs 0x00697461 + c4: 6f43206e svcvs 0x0043206e + c8: 6f72746e svcvs 0x0072746e + cc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + d0: 414d535c cmpmi sp, ip, asr r3 + d4: 72445c43 subvc r5, r4, #17152 ; 0x4300 + d8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + dc: 6f435c73 svcvs 0x00435c73 + e0: 6769666e strbvs r6, [r9, -lr, ror #12]! + e4: 5c657275 sfmpl f7, 2, [r5], #-468 + e8: 5c3a4300 ldcpl 3, cr4, [sl] + ec: 75636f44 strbvc r6, [r3, #-3908]! + f0: 746e656d strbtvc r6, [lr], #-1389 + f4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + f8: 65532064 ldrbvs r2, [r3, #-100] + fc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 100: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 104: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 108: 4d5c6172 ldfmie f6, [ip, #-456] + 10c: 6f442079 svcvs 0x00442079 + 110: 656d7563 strbvs r7, [sp, #-1379]! + 114: 5c73746e cfldrdpl mvd7, [r3], #-440 + 118: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 11c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 120: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 124: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 128: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 12c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 130: 43206e6f teqmi r0, #1776 ; 0x6f0 + 134: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 138: 656c6c6f strbvs r6, [ip, #-3183]! + 13c: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 140: 445c4341 ldrbmi r4, [ip], #-833 + 144: 65766972 ldrbvs r6, [r6, #-2418]! + 148: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 14c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 150: 65636166 strbvs r6, [r3, #-358]! + 154: 3a43005c bcc 10c02cc + 158: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 15c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 160: 61207374 teqvs r0, r4, ror r3 + 164: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 168: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 16c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 170: 766c616d strbtvc r6, [ip], -sp, ror #2 + 174: 5c617269 sfmpl f7, 2, [r1], #-420 + 178: 4420794d strtmi r7, [r0], #-2381 + 17c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 180: 73746e65 cmnvc r4, #1616 ; 0x650 + 184: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 188: 746e6f63 strbtvc r6, [lr], #-3939 + 18c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 190: 74616557 strbtvc r6, [r1], #-1367 + 194: 20726568 rsbscs r6, r2, r8, ror #10 + 198: 74617453 strbtvc r7, [r1], #-1107 + 19c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 1a0: 746e6f43 strbtvc r6, [lr], #-3907 + 1a4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 1a8: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 1ac: 5c43414d stfple f4, [r3], {77} + 1b0: 76697244 strbtvc r7, [r9], -r4, asr #4 + 1b4: 5c737265 lfmpl f7, 2, [r3], #-404 + 1b8: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 1bc: 005c6563 subseq r6, ip, r3, ror #10 + 1c0: 626d4500 rsbvs r4, sp, #0 ; 0x0 + 1c4: 65646465 strbvs r6, [r4, #-1125]! + 1c8: 70795464 rsbsvc r5, r9, r4, ror #8 + 1cc: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 1d0: 9d9e0100 ldflss f0, [lr] + 1d4: 7704c0d7 undefined + 1d8: 72616f62 rsbvc r6, r1, #392 ; 0x188 + 1dc: 6f635f64 svcvs 0x00635f64 + 1e0: 6769666e strbvs r6, [r9, -lr, ror #12]! + 1e4: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 1e8: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 1ec: 72463d04 subvc r3, r6, #256 ; 0x100 + 1f0: 65447165 strbvs r7, [r4, #-357] + 1f4: 74655370 strbtvc r5, [r5], #-880 + 1f8: 676e6974 undefined + 1fc: 00682e73 rsbeq r2, r8, r3, ror lr + 200: edfbf703 ldcl 7, cr15, [fp, #12]! + 204: 443704ce ldrtmi r0, [r7], #-1230 + 208: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + 20c: 0400632e streq r6, [r0], #-814 + 210: c5d0bea8 ldrbgt fp, [r0, #3752] + 214: 00002a04 andeq r2, r0, r4, lsl #20 + 218: 000000ae andeq r0, r0, lr, lsr #1 + 21c: 00890002 addeq r0, r9, r2 + 220: 01020000 tsteq r2, r0 + 224: 000a0500 andeq r0, sl, r0, lsl #10 + 228: 01010101 tsteq r1, r1, lsl #2 + 22c: 00000000 andeq r0, r0, r0 + 230: 445c3a43 ldrbmi r3, [ip], #-2627 + 234: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 238: 73746e65 cmnvc r4, #1616 ; 0x650 + 23c: 646e6120 strbtvs r6, [lr], #-288 + 240: 74655320 strbtvc r5, [r5], #-800 + 244: 676e6974 undefined + 248: 616d5c73 smcvs 54723 + 24c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 250: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 254: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 258: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 25c: 775c7374 undefined + 260: 6f632d73 svcvs 0x00632d73 + 264: 6f72746e svcvs 0x0072746e + 268: 65575c6c ldrbvs r5, [r7, #-3180] + 26c: 65687461 strbvs r7, [r8, #-1121]! + 270: 74532072 ldrbvc r2, [r3], #-114 + 274: 6f697461 svcvs 0x00697461 + 278: 6f43206e svcvs 0x0043206e + 27c: 6f72746e svcvs 0x0072746e + 280: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 284: 414d535c cmpmi sp, ip, asr r3 + 288: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 28c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 290: 6f535c73 svcvs 0x00535c73 + 294: 65637275 strbvs r7, [r3, #-629]! + 298: 4400005c strmi r0, [r0], #-92 + 29c: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + 2a0: 0100632e tsteq r0, lr, lsr #6 + 2a4: c5d0bea8 ldrbgt fp, [r0, #3752] + 2a8: 00002a04 andeq r2, r0, r4, lsl #20 + 2ac: 3d840205 sfmcc f0, 4, [r4, #20] + 2b0: 01050040 tsteq r5, r0, asr #32 + 2b4: 050e1003 streq r1, [lr, #-3] + 2b8: 05102705 ldreq r2, [r0, #-1797] + 2bc: 237d0303 cmncs sp, #201326592 ; 0xc000000 + 2c0: 01030105 tsteq r3, r5, lsl #2 + 2c4: 00050218 andeq r0, r5, r8, lsl r2 + 2c8: 00000101 andeq r0, r0, r1, lsl #2 + 2cc: 000000ae andeq r0, r0, lr, lsr #1 + 2d0: 00890002 addeq r0, r9, r2 + 2d4: 01020000 tsteq r2, r0 + 2d8: 000a0500 andeq r0, sl, r0, lsl #10 + 2dc: 01010101 tsteq r1, r1, lsl #2 + 2e0: 00000000 andeq r0, r0, r0 + 2e4: 445c3a43 ldrbmi r3, [ip], #-2627 + 2e8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2ec: 73746e65 cmnvc r4, #1616 ; 0x650 + 2f0: 646e6120 strbtvs r6, [lr], #-288 + 2f4: 74655320 strbtvc r5, [r5], #-800 + 2f8: 676e6974 undefined + 2fc: 616d5c73 smcvs 54723 + 300: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 304: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 308: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 30c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 310: 775c7374 undefined + 314: 6f632d73 svcvs 0x00632d73 + 318: 6f72746e svcvs 0x0072746e + 31c: 65575c6c ldrbvs r5, [r7, #-3180] + 320: 65687461 strbvs r7, [r8, #-1121]! + 324: 74532072 ldrbvc r2, [r3], #-114 + 328: 6f697461 svcvs 0x00697461 + 32c: 6f43206e svcvs 0x0043206e + 330: 6f72746e svcvs 0x0072746e + 334: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 338: 414d535c cmpmi sp, ip, asr r3 + 33c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 340: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 344: 6f535c73 svcvs 0x00535c73 + 348: 65637275 strbvs r7, [r3, #-629]! + 34c: 4400005c strmi r0, [r0], #-92 + 350: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + 354: 0100632e tsteq r0, lr, lsr #6 + 358: c5d0bea8 ldrbgt fp, [r0, #3752] + 35c: 00002a04 andeq r2, r0, r4, lsl #20 + 360: 3da80205 sfmcc f0, 4, [r8, #20]! + 364: 01050040 tsteq r5, r0, asr #32 + 368: 050e1c03 streq r1, [lr, #-3075] + 36c: 05102705 ldreq r2, [r0, #-1797] + 370: 237d0303 cmncs sp, #201326592 ; 0xc000000 + 374: 01030105 tsteq r3, r5, lsl #2 + 378: 00020218 andeq r0, r2, r8, lsl r2 + 37c: 00000101 andeq r0, r0, r1, lsl #2 + 380: 00000268 andeq r0, r0, r8, ror #4 + 384: 02620002 rsbeq r0, r2, #2 ; 0x2 + 388: 01010000 tsteq r1, r0 + 38c: 000a0500 andeq r0, sl, r0, lsl #10 + 390: 01010101 tsteq r1, r1, lsl #2 + 394: 00000000 andeq r0, r0, r0 + 398: 445c3a43 ldrbmi r3, [ip], #-2627 + 39c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3a0: 73746e65 cmnvc r4, #1616 ; 0x650 + 3a4: 646e6120 strbtvs r6, [lr], #-288 + 3a8: 74655320 strbtvc r5, [r5], #-800 + 3ac: 676e6974 undefined + 3b0: 616d5c73 smcvs 54723 + 3b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3c4: 775c7374 undefined + 3c8: 6f632d73 svcvs 0x00632d73 + 3cc: 6f72746e svcvs 0x0072746e + 3d0: 65575c6c ldrbvs r5, [r7, #-3180] + 3d4: 65687461 strbvs r7, [r8, #-1121]! + 3d8: 74532072 ldrbvc r2, [r3], #-114 + 3dc: 6f697461 svcvs 0x00697461 + 3e0: 6f43206e svcvs 0x0043206e + 3e4: 6f72746e svcvs 0x0072746e + 3e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3ec: 7070415c rsbsvc r4, r0, ip, asr r1 + 3f0: 6163696c cmnvs r3, ip, ror #18 + 3f4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3f8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 3fc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 400: 005c7365 subseq r7, ip, r5, ror #6 + 404: 445c3a43 ldrbmi r3, [ip], #-2627 + 408: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 40c: 73746e65 cmnvc r4, #1616 ; 0x650 + 410: 646e6120 strbtvs r6, [lr], #-288 + 414: 74655320 strbtvc r5, [r5], #-800 + 418: 676e6974 undefined + 41c: 616d5c73 smcvs 54723 + 420: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 424: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 428: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 42c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 430: 775c7374 undefined + 434: 6f632d73 svcvs 0x00632d73 + 438: 6f72746e svcvs 0x0072746e + 43c: 65575c6c ldrbvs r5, [r7, #-3180] + 440: 65687461 strbvs r7, [r8, #-1121]! + 444: 74532072 ldrbvc r2, [r3], #-114 + 448: 6f697461 svcvs 0x00697461 + 44c: 6f43206e svcvs 0x0043206e + 450: 6f72746e svcvs 0x0072746e + 454: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 458: 4d4c505c stclmi 0, cr5, [ip, #-368] + 45c: 746e495c strbtvc r4, [lr], #-2396 + 460: 61667265 cmnvs r6, r5, ror #4 + 464: 005c6563 subseq r6, ip, r3, ror #10 + 468: 445c3a43 ldrbmi r3, [ip], #-2627 + 46c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 470: 73746e65 cmnvc r4, #1616 ; 0x650 + 474: 646e6120 strbtvs r6, [lr], #-288 + 478: 74655320 strbtvc r5, [r5], #-800 + 47c: 676e6974 undefined + 480: 616d5c73 smcvs 54723 + 484: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 488: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 48c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 490: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 494: 775c7374 undefined + 498: 6f632d73 svcvs 0x00632d73 + 49c: 6f72746e svcvs 0x0072746e + 4a0: 65575c6c ldrbvs r5, [r7, #-3180] + 4a4: 65687461 strbvs r7, [r8, #-1121]! + 4a8: 74532072 ldrbvc r2, [r3], #-114 + 4ac: 6f697461 svcvs 0x00697461 + 4b0: 6f43206e svcvs 0x0043206e + 4b4: 6f72746e svcvs 0x0072746e + 4b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4bc: 4d4c505c stclmi 0, cr5, [ip, #-368] + 4c0: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 4c4: 65746e49 ldrbvs r6, [r4, #-3657]! + 4c8: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 4cc: 43005c65 movwmi r5, #3173 ; 0xc65 + 4d0: 6f445c3a svcvs 0x00445c3a + 4d4: 656d7563 strbvs r7, [sp, #-1379]! + 4d8: 2073746e rsbscs r7, r3, lr, ror #8 + 4dc: 20646e61 rsbcs r6, r4, r1, ror #28 + 4e0: 74746553 ldrbtvc r6, [r4], #-1363 + 4e4: 73676e69 cmnvc r7, #1680 ; 0x690 + 4e8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 4ec: 61726976 cmnvs r2, r6, ror r9 + 4f0: 20794d5c rsbscs r4, r9, ip, asr sp + 4f4: 75636f44 strbvc r6, [r3, #-3908]! + 4f8: 746e656d strbtvc r6, [lr], #-1389 + 4fc: 73775c73 cmnvc r7, #29440 ; 0x7300 + 500: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 504: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 508: 6165575c cmnvs r5, ip, asr r7 + 50c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 510: 61745320 cmnvs r4, r0, lsr #6 + 514: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 518: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 51c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 520: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 524: 43414d53 movtmi r4, #7507 ; 0x1d53 + 528: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 52c: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 530: 746e495c strbtvc r4, [lr], #-2396 + 534: 61667265 cmnvs r6, r5, ror #4 + 538: 005c6563 subseq r6, ip, r3, ror #10 + 53c: 73694400 cmnvc r9, #0 ; 0x0 + 540: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 544: 0100632e tsteq r0, lr, lsr #6 + 548: c5d0bea8 ldrbgt fp, [r0, #3752] + 54c: 440ad804 strmi sp, [sl], #-2052 + 550: 6c707369 ldclvs 3, cr7, [r0], #-420 + 554: 682e7961 stmdavs lr!, {r0, r5, r6, r8, fp, ip, sp, lr} + 558: bea80100 fdvlte f0, f0, f0 + 55c: bd04c5d0 cfstr32lt mvfx12, [r4, #-832] + 560: 44434c02 strbmi r4, [r3], #-3074 + 564: 6e6f465f mcrvs 6, 3, r4, cr15, cr15, {2} + 568: 00682e74 rsbeq r2, r8, r4, ror lr + 56c: d0bea801 adcsle sl, lr, r1, lsl #16 + 570: 453504c5 ldrmi r0, [r5, #-1221]! + 574: 6465626d strbtvs r6, [r5], #-621 + 578: 54646564 strbtpl r6, [r4], #-1380 + 57c: 73657079 cmnvc r5, #121 ; 0x79 + 580: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 584: c0d79d9e smullsgt r9, r7, lr, sp + 588: 52437704 subpl r7, r3, #1048576 ; 0x100000 + 58c: 65525f4d ldrbvs r5, [r2, #-3917] + 590: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 594: 8ff80300 svchi 0x00f80300 + 598: 8104c0d7 ldrdhi ip, [r4, -r7] + 59c: 49504702 ldmdbmi r0, {r1, r8, r9, sl, lr}^ + 5a0: 6e495f4f cdpvs 15, 4, cr5, cr9, cr15, {2} + 5a4: 66726574 undefined + 5a8: 2e656361 cdpcs 3, 6, cr6, cr5, cr1, {3} + 5ac: f8030068 undefined instruction 0xf8030068 + 5b0: 04c0d78f strbeq sp, [r0], #1935 + 5b4: 6c50069e mrrcvs 6, 9, r0, r0, cr14 + 5b8: 6f667461 svcvs 0x00667461 + 5bc: 682e6d72 stmdavs lr!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} + 5c0: 94f20300 ldrbtls r0, [r2], #768 + 5c4: be04c0d7 mcrlt 0, 0, ip, cr4, cr7, {6} + 5c8: 69735303 ldmdbvs r3!, {r0, r1, r8, r9, ip, lr}^ + 5cc: 6765525f undefined + 5d0: 00682e73 rsbeq r2, r8, r3, ror lr + 5d4: 9196cc03 orrsls ip, r6, r3, lsl #24 + 5d8: 01c504ba strheq r0, [r5, #74] + 5dc: 616c6544 cmnvs ip, r4, asr #10 + 5e0: 00682e79 rsbeq r2, r8, r9, ror lr + 5e4: d0bea804 adcsle sl, lr, r4, lsl #16 + 5e8: 001904c5 andseq r0, r9, r5, asr #9 + 5ec: 000000ee andeq r0, r0, lr, ror #1 + 5f0: 008e0002 addeq r0, lr, r2 + 5f4: 01020000 tsteq r2, r0 + 5f8: 000a0500 andeq r0, sl, r0, lsl #10 + 5fc: 01010101 tsteq r1, r1, lsl #2 + 600: 00000000 andeq r0, r0, r0 + 604: 445c3a43 ldrbmi r3, [ip], #-2627 + 608: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 60c: 73746e65 cmnvc r4, #1616 ; 0x650 + 610: 646e6120 strbtvs r6, [lr], #-288 + 614: 74655320 strbtvc r5, [r5], #-800 + 618: 676e6974 undefined + 61c: 616d5c73 smcvs 54723 + 620: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 624: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 628: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 62c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 630: 775c7374 undefined + 634: 6f632d73 svcvs 0x00632d73 + 638: 6f72746e svcvs 0x0072746e + 63c: 65575c6c ldrbvs r5, [r7, #-3180] + 640: 65687461 strbvs r7, [r8, #-1121]! + 644: 74532072 ldrbvc r2, [r3], #-114 + 648: 6f697461 svcvs 0x00697461 + 64c: 6f43206e svcvs 0x0043206e + 650: 6f72746e svcvs 0x0072746e + 654: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 658: 7070415c rsbsvc r4, r0, ip, asr r1 + 65c: 6163696c cmnvs r3, ip, ror #18 + 660: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 664: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 668: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 66c: 005c7365 subseq r7, ip, r5, ror #6 + 670: 73694400 cmnvc r9, #0 ; 0x0 + 674: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 678: 0100632e tsteq r0, lr, lsr #6 + 67c: c5d0bea8 ldrbgt fp, [r0, #3752] + 680: 000ad804 andeq sp, sl, r4, lsl #16 + 684: 64020500 strvs r0, [r2], #-1280 + 688: 05004019 streq r4, [r0, #-25] + 68c: 01fc0301 mvnseq r0, r1, lsl #6 + 690: 1105050e tstne r5, lr, lsl #10 + 694: 1f1f1f1f svcne 0x001f1f1f + 698: 1f1f201f svcne 0x001f201f + 69c: 211f1f1f tstcs pc, pc, lsl pc + 6a0: 1f1f1f1f svcne 0x001f1f1f + 6a4: 1f201f1f svcne 0x00201f1f + 6a8: 1f1f1f1f svcne 0x001f1f1f + 6ac: 2237031f eorscs r0, r7, #2080374784 ; 0x7c000000 + 6b0: 2a292524 bcs a49b48 + 6b4: 2a292a29 bcs a4af60 + 6b8: 05243433 streq r3, [r4, #-1075]! + 6bc: 1f1f2703 svcne 0x001f2703 + 6c0: 051f1f1a ldreq r1, [pc, #-3866] ; fffff7ae + 6c4: 1d170305 ldcne 3, cr0, [r7, #-20] + 6c8: 1c1d1c1a ldcne 12, cr1, [sp], {26} + 6cc: 1d1b1d1c ldcne 13, cr1, [fp, #-112] + 6d0: 1c1a1b1a ldcne 11, cr1, [sl], {26} + 6d4: 01051b1c tsteq r5, ip, lsl fp + 6d8: 0005021a andeq r0, r5, sl, lsl r2 + 6dc: 00000101 andeq r0, r0, r1, lsl #2 + 6e0: 000000d1 ldrdeq r0, [r0], -r1 + 6e4: 008e0002 addeq r0, lr, r2 + 6e8: 01020000 tsteq r2, r0 + 6ec: 000a0500 andeq r0, sl, r0, lsl #10 + 6f0: 01010101 tsteq r1, r1, lsl #2 + 6f4: 00000000 andeq r0, r0, r0 + 6f8: 445c3a43 ldrbmi r3, [ip], #-2627 + 6fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 700: 73746e65 cmnvc r4, #1616 ; 0x650 + 704: 646e6120 strbtvs r6, [lr], #-288 + 708: 74655320 strbtvc r5, [r5], #-800 + 70c: 676e6974 undefined + 710: 616d5c73 smcvs 54723 + 714: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 718: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 71c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 720: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 724: 775c7374 undefined + 728: 6f632d73 svcvs 0x00632d73 + 72c: 6f72746e svcvs 0x0072746e + 730: 65575c6c ldrbvs r5, [r7, #-3180] + 734: 65687461 strbvs r7, [r8, #-1121]! + 738: 74532072 ldrbvc r2, [r3], #-114 + 73c: 6f697461 svcvs 0x00697461 + 740: 6f43206e svcvs 0x0043206e + 744: 6f72746e svcvs 0x0072746e + 748: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 74c: 7070415c rsbsvc r4, r0, ip, asr r1 + 750: 6163696c cmnvs r3, ip, ror #18 + 754: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 758: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 75c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 760: 005c7365 subseq r7, ip, r5, ror #6 + 764: 73694400 cmnvc r9, #0 ; 0x0 + 768: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 76c: 0100632e tsteq r0, lr, lsr #6 + 770: c5d0bea8 ldrbgt fp, [r0, #3752] + 774: 000ad804 andeq sp, sl, r4, lsl #16 + 778: 56020500 strpl r0, [r2], -r0, lsl #10 + 77c: 0500401b streq r4, [r0, #-27] + 780: 03bd0301 undefined instruction 0x03bd0301 + 784: 1211050e andsne r0, r1, #58720256 ; 0x3800000 + 788: 1d0d0305 stcne 3, cr0, [sp, #-20] + 78c: 1c050515 cfstr32ne mvfx0, [r5], {21} + 790: 12070515 andne r0, r7, #88080384 ; 0x5400000 + 794: 05170405 ldreq r0, [r7, #-1029] + 798: 13030307 movwne r0, #13063 ; 0x3307 + 79c: 7e030505 cfsh32vc mvfx0, mvfx3, #5 + 7a0: 2c010319 stccs 3, cr0, [r1], {25} + 7a4: 051c0705 ldreq r0, [ip, #-1797] + 7a8: 05292109 streq r2, [r9, #-265]! + 7ac: 1d010301 stcne 3, cr0, [r1, #-4] + 7b0: 01000702 tsteq r0, r2, lsl #14 + 7b4: 00000001 andeq r0, r0, r1 + 7b8: 000000e4 andeq r0, r0, r4, ror #1 + 7bc: 008e0002 addeq r0, lr, r2 + 7c0: 01020000 tsteq r2, r0 + 7c4: 000a0500 andeq r0, sl, r0, lsl #10 + 7c8: 01010101 tsteq r1, r1, lsl #2 + 7cc: 00000000 andeq r0, r0, r0 + 7d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 7d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 7dc: 646e6120 strbtvs r6, [lr], #-288 + 7e0: 74655320 strbtvc r5, [r5], #-800 + 7e4: 676e6974 undefined + 7e8: 616d5c73 smcvs 54723 + 7ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7fc: 775c7374 undefined + 800: 6f632d73 svcvs 0x00632d73 + 804: 6f72746e svcvs 0x0072746e + 808: 65575c6c ldrbvs r5, [r7, #-3180] + 80c: 65687461 strbvs r7, [r8, #-1121]! + 810: 74532072 ldrbvc r2, [r3], #-114 + 814: 6f697461 svcvs 0x00697461 + 818: 6f43206e svcvs 0x0043206e + 81c: 6f72746e svcvs 0x0072746e + 820: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 824: 7070415c rsbsvc r4, r0, ip, asr r1 + 828: 6163696c cmnvs r3, ip, ror #18 + 82c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 830: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 834: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 838: 005c7365 subseq r7, ip, r5, ror #6 + 83c: 73694400 cmnvc r9, #0 ; 0x0 + 840: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 844: 0100632e tsteq r0, lr, lsr #6 + 848: c5d0bea8 ldrbgt fp, [r0, #3752] + 84c: 000ad804 andeq sp, sl, r4, lsl #16 + 850: b4020500 strlt r0, [r2], #-1280 + 854: 0500401b streq r4, [r0, #-27] + 858: 03f7033d mvnseq r0, #-201326592 ; 0xf4000000 + 85c: 1702050e strne r0, [r2, -lr, lsl #10] + 860: 0105152e tsteq r5, lr, lsr #10 + 864: 13069e03 movwne r9, #28163 ; 0x6e03 + 868: 050b0a05 streq r0, [fp, #-2565] + 86c: 05051413 streq r1, [r5, #-1043] + 870: 051a1a17 ldreq r1, [sl, #-2583] + 874: 0f7d0303 svceq 0x007d0303 + 878: 05270303 streq r0, [r7, #-771]! + 87c: 03051505 movweq r1, #21765 ; 0x5505 + 880: 030e0512 movweq r0, #58642 ; 0xe512 + 884: 051479d2 ldreq r7, [r4, #-2514] + 888: 05241104 streq r1, [r4, #-260]! + 88c: 39051a03 stmdbcc r5, {r0, r1, r9, fp, ip} + 890: 050f7c03 streq r7, [pc, #-3075] ; fffffc95 + 894: 01050f13 tsteq r5, r3, lsl pc + 898: 022c0203 eoreq r0, ip, #805306368 ; 0x30000000 + 89c: 01010006 tsteq r1, r6 + 8a0: 0000012b andeq r0, r0, fp, lsr #2 + 8a4: 008e0002 addeq r0, lr, r2 + 8a8: 01020000 tsteq r2, r0 + 8ac: 000a0500 andeq r0, sl, r0, lsl #10 + 8b0: 01010101 tsteq r1, r1, lsl #2 + 8b4: 00000000 andeq r0, r0, r0 + 8b8: 445c3a43 ldrbmi r3, [ip], #-2627 + 8bc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 8c0: 73746e65 cmnvc r4, #1616 ; 0x650 + 8c4: 646e6120 strbtvs r6, [lr], #-288 + 8c8: 74655320 strbtvc r5, [r5], #-800 + 8cc: 676e6974 undefined + 8d0: 616d5c73 smcvs 54723 + 8d4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 8d8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 8dc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 8e0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 8e4: 775c7374 undefined + 8e8: 6f632d73 svcvs 0x00632d73 + 8ec: 6f72746e svcvs 0x0072746e + 8f0: 65575c6c ldrbvs r5, [r7, #-3180] + 8f4: 65687461 strbvs r7, [r8, #-1121]! + 8f8: 74532072 ldrbvc r2, [r3], #-114 + 8fc: 6f697461 svcvs 0x00697461 + 900: 6f43206e svcvs 0x0043206e + 904: 6f72746e svcvs 0x0072746e + 908: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 90c: 7070415c rsbsvc r4, r0, ip, asr r1 + 910: 6163696c cmnvs r3, ip, ror #18 + 914: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 918: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 91c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 920: 005c7365 subseq r7, ip, r5, ror #6 + 924: 73694400 cmnvc r9, #0 ; 0x0 + 928: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 92c: 0100632e tsteq r0, lr, lsr #6 + 930: c5d0bea8 ldrbgt fp, [r0, #3752] + 934: 000ad804 andeq sp, sl, r4, lsl #16 + 938: 24020500 strcs r0, [r2], #-1280 + 93c: 0500401c streq r4, [r0, #-28] + 940: 04990301 ldreq r0, [r9], #769 + 944: 1b0b050e blne 2c1d84 + 948: 050f1905 streq r1, [pc, #-2309] ; 4b + 94c: 13050b0b movwne r0, #23307 ; 0x5b0b + 950: 0a17051e beq 5c1dd0 + 954: 05130305 ldreq r0, [r3, #-773] + 958: 05051602 streq r1, [r5, #-1538] + 95c: 15070515 strne r0, [r7, #-1301] + 960: 160a051a undefined + 964: 1a1f0705 bne 7c2580 + 968: 05160a05 ldreq r0, [r6, #-2565] + 96c: 131a1a07 tstne sl, #28672 ; 0x7000 + 970: 1f5b0905 svcne 0x005b0905 + 974: 2007052b andcs r0, r7, fp, lsr #10 + 978: 78031605 stmdavc r3, {r0, r2, r9, sl, ip} + 97c: 190e0523 stmdbne lr, {r0, r1, r5, r8, sl} + 980: 06030505 streq r0, [r3], -r5, lsl #10 + 984: 07052422 streq r2, [r5, -r2, lsr #8] + 988: 05051f1b streq r1, [r5, #-3867] + 98c: 2c197e03 ldccs 14, cr7, [r9], {3} + 990: 05160705 ldreq r0, [r6, #-1797] + 994: 2d7f0305 ldclcs 3, cr0, [pc, #-20]! + 998: 0805152b stmdaeq r5, {r0, r1, r3, r5, r8, sl, ip} + 99c: 2007052a andcs r0, r7, sl, lsr #10 + 9a0: 0a051029 beq 144a4c + 9a4: 1a05051b bne 141e18 + 9a8: 1607051a undefined + 9ac: 7f030505 svcvc 0x00030505 + 9b0: 20151d2d andscs r1, r5, sp, lsr #26 + 9b4: 1f1b0705 svcne 0x001b0705 + 9b8: 7e030505 cfsh32vc mvfx0, mvfx3, #5 + 9bc: 05102c19 ldreq r2, [r0, #-3097] + 9c0: 05052407 streq r2, [r5, #-1031] + 9c4: 05360203 ldreq r0, [r6, #-515]! + 9c8: 09022501 stmdbeq r2, {r0, r8, sl, sp} + 9cc: 00010100 andeq r0, r1, r0, lsl #2 + 9d0: 00000148 andeq r0, r0, r8, asr #2 + 9d4: 008e0002 addeq r0, lr, r2 + 9d8: 01020000 tsteq r2, r0 + 9dc: 000a0500 andeq r0, sl, r0, lsl #10 + 9e0: 01010101 tsteq r1, r1, lsl #2 + 9e4: 00000000 andeq r0, r0, r0 + 9e8: 445c3a43 ldrbmi r3, [ip], #-2627 + 9ec: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 9f0: 73746e65 cmnvc r4, #1616 ; 0x650 + 9f4: 646e6120 strbtvs r6, [lr], #-288 + 9f8: 74655320 strbtvc r5, [r5], #-800 + 9fc: 676e6974 undefined + a00: 616d5c73 smcvs 54723 + a04: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a08: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a0c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a10: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a14: 775c7374 undefined + a18: 6f632d73 svcvs 0x00632d73 + a1c: 6f72746e svcvs 0x0072746e + a20: 65575c6c ldrbvs r5, [r7, #-3180] + a24: 65687461 strbvs r7, [r8, #-1121]! + a28: 74532072 ldrbvc r2, [r3], #-114 + a2c: 6f697461 svcvs 0x00697461 + a30: 6f43206e svcvs 0x0043206e + a34: 6f72746e svcvs 0x0072746e + a38: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + a3c: 7070415c rsbsvc r4, r0, ip, asr r1 + a40: 6163696c cmnvs r3, ip, ror #18 + a44: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + a48: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + a4c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + a50: 005c7365 subseq r7, ip, r5, ror #6 + a54: 73694400 cmnvc r9, #0 ; 0x0 + a58: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + a5c: 0100632e tsteq r0, lr, lsr #6 + a60: c5d0bea8 ldrbgt fp, [r0, #3752] + a64: 000ad804 andeq sp, sl, r4, lsl #16 + a68: bc020500 cfstr32lt mvfx0, [r2], {0} + a6c: 0500401d streq r4, [r0, #-29] + a70: 04ef0301 strbteq r0, [pc], #769 ; a78 <__USR_stack_size+0x278> + a74: 160b050e strne r0, [fp], -lr, lsl #10 + a78: 050f1905 streq r1, [pc, #-2309] ; 17b <__ABT_stack_size+0x7b> + a7c: 13050b0b movwne r0, #23307 ; 0x5b0b + a80: 0a17051e beq 5c1f00 + a84: 05241405 streq r1, [r4, #-1029]! + a88: 0e020303 cdpeq 3, 0, cr0, cr2, cr3, {0} + a8c: 05160205 ldreq r0, [r6, #-517] + a90: 05202405 streq r2, [r0, #-1029]! + a94: 09051107 stmdbeq r5, {r0, r1, r2, r8, ip} + a98: 0c051a25 stceq 10, cr1, [r5], {37} + a9c: 29090516 stmdbcs r9, {r1, r2, r4, r8, sl} + aa0: 16070515 undefined + aa4: 05240905 streq r0, [r4, #-2309]! + aa8: 351f570b ldrcc r5, [pc, #-1803] ; 3a5 <__ABT_stack_size+0x2a5> + aac: 05200905 streq r0, [r0, #-2309]! + ab0: 28770318 ldmdacs r7!, {r3, r4, r8, r9}^ + ab4: 050f1005 streq r1, [pc, #-5] ; ab7 <__USR_stack_size+0x2b7> + ab8: 13070307 movwne r0, #29447 ; 0x7307 + abc: 051b0905 ldreq r0, [fp, #-2309] + ac0: 25053407 strcs r3, [r5, #-1031] + ac4: 05236603 streq r6, [r3, #-1539]! + ac8: 05051917 streq r1, [r5, #-2327] + acc: 0b361903 bleq d86ee0 + ad0: 1f1d0705 svcne 0x001d0705 + ad4: 7d030505 cfstr32vc mvfx0, [r3, #-20] + ad8: 2c010319 stccs 3, cr0, [r1], {25} + adc: 05120705 ldreq r0, [r2, #-1797] + ae0: 2d7f0305 ldclcs 3, cr0, [pc, #-20]! + ae4: 1208052b andne r0, r8, #180355072 ; 0xac00000 + ae8: 38250705 stmdacc r5!, {r0, r2, r8, r9, sl} + aec: 1b0a0524 blne 281f84 + af0: 24150505 ldrcs r0, [r5], #-1285 + af4: 05160705 ldreq r0, [r6, #-1797] + af8: 2d7f0305 ldclcs 3, cr0, [pc, #-20]! + afc: 0520151d streq r1, [r0, #-1309]! + b00: 051f1b07 ldreq r1, [pc, #-2823] ; 1 + b04: 197e0305 ldmdbne lr!, {r0, r2, r8, r9}^ + b08: 1607052c strne r0, [r7], -ip, lsr #10 + b0c: 7f030505 svcvc 0x00030505 + b10: 301a262d andscc r2, sl, sp, lsr #12 + b14: 02250105 eoreq r0, r5, #1073741825 ; 0x40000001 + b18: 0101000a tsteq r1, sl + b1c: 000000e2 andeq r0, r0, r2, ror #1 + b20: 008e0002 addeq r0, lr, r2 + b24: 01020000 tsteq r2, r0 + b28: 000a0500 andeq r0, sl, r0, lsl #10 + b2c: 01010101 tsteq r1, r1, lsl #2 + b30: 00000000 andeq r0, r0, r0 + b34: 445c3a43 ldrbmi r3, [ip], #-2627 + b38: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b3c: 73746e65 cmnvc r4, #1616 ; 0x650 + b40: 646e6120 strbtvs r6, [lr], #-288 + b44: 74655320 strbtvc r5, [r5], #-800 + b48: 676e6974 undefined + b4c: 616d5c73 smcvs 54723 + b50: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + b54: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + b58: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + b5c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b60: 775c7374 undefined + b64: 6f632d73 svcvs 0x00632d73 + b68: 6f72746e svcvs 0x0072746e + b6c: 65575c6c ldrbvs r5, [r7, #-3180] + b70: 65687461 strbvs r7, [r8, #-1121]! + b74: 74532072 ldrbvc r2, [r3], #-114 + b78: 6f697461 svcvs 0x00697461 + b7c: 6f43206e svcvs 0x0043206e + b80: 6f72746e svcvs 0x0072746e + b84: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + b88: 7070415c rsbsvc r4, r0, ip, asr r1 + b8c: 6163696c cmnvs r3, ip, ror #18 + b90: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + b94: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + b98: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + b9c: 005c7365 subseq r7, ip, r5, ror #6 + ba0: 73694400 cmnvc r9, #0 ; 0x0 + ba4: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + ba8: 0100632e tsteq r0, lr, lsr #6 + bac: c5d0bea8 ldrbgt fp, [r0, #3752] + bb0: 000ad804 andeq sp, sl, r4, lsl #16 + bb4: ac020500 cfstr32ge mvfx0, [r2], {0} + bb8: 0500401f streq r4, [r0, #-31] + bbc: 06980301 ldreq r0, [r8], r1, lsl #6 + bc0: 1603050e strne r0, [r3], -lr, lsl #10 + bc4: 01051f1b tsteq r5, fp, lsl pc + bc8: 0e02f903 cdpeq 9, 0, cr15, cr2, cr3, {0} + bcc: 09030505 stmdbeq r3, {r0, r2, r8, sl} + bd0: 0305240e movweq r2, #21518 ; 0x540e + bd4: 237cf603 cmnpcs ip, #3145728 ; 0x300000 + bd8: 8a030105 bhi c0ff4 + bdc: 03050e03 movweq r0, #24067 ; 0x5e03 + be0: 1e7cf303 cdpne 3, 7, cr15, cr12, cr3, {0} + be4: 0301051f movweq r0, #5407 ; 0x151f + be8: 050e02b9 streq r0, [lr, #-697] + bec: 0e080305 cdpeq 3, 0, cr0, cr8, cr5, {0} + bf0: 03030524 movweq r0, #13604 ; 0x3524 + bf4: 05237db7 streq r7, [r3, #-3511]! + bf8: 02c80301 sbceq r0, r8, #67108864 ; 0x4000000 + bfc: 0003020e andeq r0, r3, lr, lsl #4 + c00: 00000101 andeq r0, r0, r1, lsl #2 + c04: 000000de ldrdeq r0, [r0], -lr + c08: 008e0002 addeq r0, lr, r2 + c0c: 01020000 tsteq r2, r0 + c10: 000a0500 andeq r0, sl, r0, lsl #10 + c14: 01010101 tsteq r1, r1, lsl #2 + c18: 00000000 andeq r0, r0, r0 + c1c: 445c3a43 ldrbmi r3, [ip], #-2627 + c20: 6d75636f ldclvs 3, cr6, [r5, #-444]! + c24: 73746e65 cmnvc r4, #1616 ; 0x650 + c28: 646e6120 strbtvs r6, [lr], #-288 + c2c: 74655320 strbtvc r5, [r5], #-800 + c30: 676e6974 undefined + c34: 616d5c73 smcvs 54723 + c38: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + c3c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + c40: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + c44: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + c48: 775c7374 undefined + c4c: 6f632d73 svcvs 0x00632d73 + c50: 6f72746e svcvs 0x0072746e + c54: 65575c6c ldrbvs r5, [r7, #-3180] + c58: 65687461 strbvs r7, [r8, #-1121]! + c5c: 74532072 ldrbvc r2, [r3], #-114 + c60: 6f697461 svcvs 0x00697461 + c64: 6f43206e svcvs 0x0043206e + c68: 6f72746e svcvs 0x0072746e + c6c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + c70: 7070415c rsbsvc r4, r0, ip, asr r1 + c74: 6163696c cmnvs r3, ip, ror #18 + c78: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + c7c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + c80: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + c84: 005c7365 subseq r7, ip, r5, ror #6 + c88: 73694400 cmnvc r9, #0 ; 0x0 + c8c: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + c90: 0100632e tsteq r0, lr, lsr #6 + c94: c5d0bea8 ldrbgt fp, [r0, #3752] + c98: 000ad804 andeq sp, sl, r4, lsl #16 + c9c: fc020500 stc2 5, cr0, [r2], {0} + ca0: 0500401f streq r4, [r0, #-31] + ca4: 06b40301 ldrteq r0, [r4], r1, lsl #6 + ca8: 1603050e strne r0, [r3], -lr, lsl #10 + cac: 051f1a1b ldreq r1, [pc, #-2587] ; 299 <__ABT_stack_size+0x199> + cb0: 02dc0301 sbcseq r0, ip, #67108864 ; 0x4000000 + cb4: 0305050e movweq r0, #21774 ; 0x550e + cb8: 05240e09 streq r0, [r4, #-3593]! + cbc: 7d930303 ldcvc 3, cr0, [r3, #12] + cc0: 03010523 movweq r0, #5411 ; 0x1523 + cc4: 030e02ed movweq r0, #58093 ; 0xe2ed + cc8: 050a7fb1 streq r7, [sl, #-4017] + ccc: 0e080305 cdpeq 3, 0, cr0, cr8, cr5, {0} + cd0: 03030524 movweq r0, #13604 ; 0x3524 + cd4: 05237dd2 streq r7, [r3, #-3538]! + cd8: 02ad0301 adceq r0, sp, #67108864 ; 0x4000000 + cdc: 0303050e movweq r0, #13582 ; 0x350e + ce0: 001e7dd0 ldrsbeq r7, [lr], -r0 + ce4: 00000101 andeq r0, r0, r1, lsl #2 + ce8: 000000e3 andeq r0, r0, r3, ror #1 + cec: 008e0002 addeq r0, lr, r2 + cf0: 01020000 tsteq r2, r0 + cf4: 000a0500 andeq r0, sl, r0, lsl #10 + cf8: 01010101 tsteq r1, r1, lsl #2 + cfc: 00000000 andeq r0, r0, r0 + d00: 445c3a43 ldrbmi r3, [ip], #-2627 + d04: 6d75636f ldclvs 3, cr6, [r5, #-444]! + d08: 73746e65 cmnvc r4, #1616 ; 0x650 + d0c: 646e6120 strbtvs r6, [lr], #-288 + d10: 74655320 strbtvc r5, [r5], #-800 + d14: 676e6974 undefined + d18: 616d5c73 smcvs 54723 + d1c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + d20: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + d24: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + d28: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + d2c: 775c7374 undefined + d30: 6f632d73 svcvs 0x00632d73 + d34: 6f72746e svcvs 0x0072746e + d38: 65575c6c ldrbvs r5, [r7, #-3180] + d3c: 65687461 strbvs r7, [r8, #-1121]! + d40: 74532072 ldrbvc r2, [r3], #-114 + d44: 6f697461 svcvs 0x00697461 + d48: 6f43206e svcvs 0x0043206e + d4c: 6f72746e svcvs 0x0072746e + d50: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + d54: 7070415c rsbsvc r4, r0, ip, asr r1 + d58: 6163696c cmnvs r3, ip, ror #18 + d5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + d60: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + d64: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + d68: 005c7365 subseq r7, ip, r5, ror #6 + d6c: 73694400 cmnvc r9, #0 ; 0x0 + d70: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + d74: 0100632e tsteq r0, lr, lsr #6 + d78: c5d0bea8 ldrbgt fp, [r0, #3752] + d7c: 000ad804 andeq sp, sl, r4, lsl #16 + d80: 44020500 strmi r0, [r2], #-1280 + d84: 05004020 streq r4, [r0, #-32] + d88: 06be0303 ldrteq r0, [lr], r3, lsl #6 + d8c: 0a64031d beq 1901a08 + d90: 03221903 teqeq r2, #49152 ; 0xc000 + d94: 19030a64 stmdbne r3, {r2, r5, r6, r9, fp} + d98: 0a640322 beq 1901a28 + d9c: d3030105 movwle r0, #12549 ; 0x3105 + da0: 05050e02 streq r0, [r5, #-3586] + da4: 050e0803 streq r0, [lr, #-2051] + da8: 0a740301 beq 1d019b4 + dac: 08030505 stmdaeq r3, {r0, r2, r8, sl} + db0: 050a290e streq r2, [sl, #-2318] + db4: 7db90303 ldcvc 3, cr0, [r9, #12]! + db8: 0a640328 beq 1901a60 + dbc: e3030105 movw r0, #12549 ; 0x3105 + dc0: 030a0e02 movweq r0, #44546 ; 0xae02 + dc4: 03197db7 tsteq r9, #11712 ; 0x2dc0 + dc8: 06020a63 streq r0, [r2], -r3, ror #20 + dcc: 00010100 andeq r0, r1, r0, lsl #2 + dd0: 000000af andeq r0, r0, pc, lsr #1 + dd4: 008e0002 addeq r0, lr, r2 + dd8: 01020000 tsteq r2, r0 + ddc: 000a0500 andeq r0, sl, r0, lsl #10 + de0: 01010101 tsteq r1, r1, lsl #2 + de4: 00000000 andeq r0, r0, r0 + de8: 445c3a43 ldrbmi r3, [ip], #-2627 + dec: 6d75636f ldclvs 3, cr6, [r5, #-444]! + df0: 73746e65 cmnvc r4, #1616 ; 0x650 + df4: 646e6120 strbtvs r6, [lr], #-288 + df8: 74655320 strbtvc r5, [r5], #-800 + dfc: 676e6974 undefined + e00: 616d5c73 smcvs 54723 + e04: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + e08: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + e0c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + e10: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + e14: 775c7374 undefined + e18: 6f632d73 svcvs 0x00632d73 + e1c: 6f72746e svcvs 0x0072746e + e20: 65575c6c ldrbvs r5, [r7, #-3180] + e24: 65687461 strbvs r7, [r8, #-1121]! + e28: 74532072 ldrbvc r2, [r3], #-114 + e2c: 6f697461 svcvs 0x00697461 + e30: 6f43206e svcvs 0x0043206e + e34: 6f72746e svcvs 0x0072746e + e38: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + e3c: 7070415c rsbsvc r4, r0, ip, asr r1 + e40: 6163696c cmnvs r3, ip, ror #18 + e44: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + e48: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + e4c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + e50: 005c7365 subseq r7, ip, r5, ror #6 + e54: 73694400 cmnvc r9, #0 ; 0x0 + e58: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + e5c: 0100632e tsteq r0, lr, lsr #6 + e60: c5d0bea8 ldrbgt fp, [r0, #3752] + e64: 000ad804 andeq sp, sl, r4, lsl #16 + e68: 84020500 strhi r0, [r2], #-1280 + e6c: 05004020 streq r4, [r0, #-32] + e70: 06d30301 ldrbeq r0, [r3], r1, lsl #6 + e74: 0c03050e cfstr32eq mvfx0, [r3], {14} + e78: 1605051b undefined + e7c: 07021815 smladeq r2, r5, r8, r1 + e80: 00010100 andeq r0, r1, r0, lsl #2 + e84: 000000ad andeq r0, r0, sp, lsr #1 + e88: 008e0002 addeq r0, lr, r2 + e8c: 01020000 tsteq r2, r0 + e90: 000a0500 andeq r0, sl, r0, lsl #10 + e94: 01010101 tsteq r1, r1, lsl #2 + e98: 00000000 andeq r0, r0, r0 + e9c: 445c3a43 ldrbmi r3, [ip], #-2627 + ea0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + ea4: 73746e65 cmnvc r4, #1616 ; 0x650 + ea8: 646e6120 strbtvs r6, [lr], #-288 + eac: 74655320 strbtvc r5, [r5], #-800 + eb0: 676e6974 undefined + eb4: 616d5c73 smcvs 54723 + eb8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + ebc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + ec0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + ec4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + ec8: 775c7374 undefined + ecc: 6f632d73 svcvs 0x00632d73 + ed0: 6f72746e svcvs 0x0072746e + ed4: 65575c6c ldrbvs r5, [r7, #-3180] + ed8: 65687461 strbvs r7, [r8, #-1121]! + edc: 74532072 ldrbvc r2, [r3], #-114 + ee0: 6f697461 svcvs 0x00697461 + ee4: 6f43206e svcvs 0x0043206e + ee8: 6f72746e svcvs 0x0072746e + eec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ef0: 7070415c rsbsvc r4, r0, ip, asr r1 + ef4: 6163696c cmnvs r3, ip, ror #18 + ef8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + efc: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + f00: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + f04: 005c7365 subseq r7, ip, r5, ror #6 + f08: 73694400 cmnvc r9, #0 ; 0x0 + f0c: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + f10: 0100632e tsteq r0, lr, lsr #6 + f14: c5d0bea8 ldrbgt fp, [r0, #3752] + f18: 000ad804 andeq sp, sl, r4, lsl #16 + f1c: a4020500 strge r0, [r2], #-1280 + f20: 05004020 streq r4, [r0, #-32] + f24: 078a0301 streq r0, [sl, r1, lsl #6] + f28: 1105050e tstne r5, lr, lsl #10 + f2c: 1a01051f bne 423b0 + f30: 01000302 tsteq r0, r2, lsl #6 + f34: 00000001 andeq r0, r0, r1 + f38: 00000122 andeq r0, r0, r2, lsr #2 + f3c: 008e0002 addeq r0, lr, r2 + f40: 01020000 tsteq r2, r0 + f44: 000a0500 andeq r0, sl, r0, lsl #10 + f48: 01010101 tsteq r1, r1, lsl #2 + f4c: 00000000 andeq r0, r0, r0 + f50: 445c3a43 ldrbmi r3, [ip], #-2627 + f54: 6d75636f ldclvs 3, cr6, [r5, #-444]! + f58: 73746e65 cmnvc r4, #1616 ; 0x650 + f5c: 646e6120 strbtvs r6, [lr], #-288 + f60: 74655320 strbtvc r5, [r5], #-800 + f64: 676e6974 undefined + f68: 616d5c73 smcvs 54723 + f6c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + f70: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + f74: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + f78: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + f7c: 775c7374 undefined + f80: 6f632d73 svcvs 0x00632d73 + f84: 6f72746e svcvs 0x0072746e + f88: 65575c6c ldrbvs r5, [r7, #-3180] + f8c: 65687461 strbvs r7, [r8, #-1121]! + f90: 74532072 ldrbvc r2, [r3], #-114 + f94: 6f697461 svcvs 0x00697461 + f98: 6f43206e svcvs 0x0043206e + f9c: 6f72746e svcvs 0x0072746e + fa0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + fa4: 7070415c rsbsvc r4, r0, ip, asr r1 + fa8: 6163696c cmnvs r3, ip, ror #18 + fac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + fb0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + fb4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + fb8: 005c7365 subseq r7, ip, r5, ror #6 + fbc: 73694400 cmnvc r9, #0 ; 0x0 + fc0: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + fc4: 0100632e tsteq r0, lr, lsr #6 + fc8: c5d0bea8 ldrbgt fp, [r0, #3752] + fcc: 000ad804 andeq sp, sl, r4, lsl #16 + fd0: ba020500 blt 823d8 + fd4: 05004020 streq r4, [r0, #-32] + fd8: 079c0301 ldreq r0, [ip, r1, lsl #6] + fdc: 2203050e andcs r0, r3, #58720256 ; 0x3800000 + fe0: 152c0103 strne r0, [ip, #-259]! + fe4: 42291a16 eormi r1, r9, #90112 ; 0x16000 + fe8: 03010516 movweq r0, #5398 ; 0x1516 + fec: 050e02a1 streq r0, [lr, #-673] + ff0: 1f1f0c03 svcne 0x001f0c03 + ff4: 051a1f1a ldreq r1, [sl, #-3866] + ff8: 0e100301 cdpeq 3, 1, cr0, cr0, cr1, {0} + ffc: 050b1405 streq r1, [fp, #-1029] + 1000: 0e130305 cdpeq 3, 1, cr0, cr3, cr5, {0} + 1004: 03050b1f movweq r0, #23327 ; 0x5b1f + 1008: 051e5303 ldreq r5, [lr, #-771] + 100c: 0e2a0305 cdpeq 3, 2, cr0, cr10, cr5, {0} + 1010: 0303050e movweq r0, #13582 ; 0x350e + 1014: 031f1e4f tsteq pc, #1264 ; 0x4f0 + 1018: 03197dd2 tsteq r9, #13440 ; 0x3480 + 101c: 050e02ab streq r0, [lr, #-683] + 1020: 0a750301 beq 1d41c2c + 1024: 1f0c0305 svcne 0x000c0305 + 1028: 1a1f1a1f bne 7c78ac + 102c: 10030105 andne r0, r3, r5, lsl #2 + 1030: 0b14050e bleq 502470 + 1034: 13030505 movwne r0, #13573 ; 0x3505 + 1038: 051f1f0e ldreq r1, [pc, #-3854] ; 132 <__ABT_stack_size+0x32> + 103c: 1e530303 cdpne 3, 5, cr0, cr3, cr3, {0} + 1040: 2a030505 bcs c245c + 1044: 03050e0e movweq r0, #24078 ; 0x5e0e + 1048: 1f1e4f03 svcne 0x001e4f03 + 104c: 7dd3031a ldclvc 3, cr0, [r3, #104] + 1050: 1f1f1a23 svcne 0x001f1a23 + 1054: 0c05052f cfstr32eq mvfx0, [r5], {47} + 1058: 0006022c andeq r0, r6, ip, lsr #4 + 105c: 00000101 andeq r0, r0, r1, lsl #2 + 1060: 000000ea andeq r0, r0, sl, ror #1 + 1064: 008e0002 addeq r0, lr, r2 + 1068: 01020000 tsteq r2, r0 + 106c: 000a0500 andeq r0, sl, r0, lsl #10 + 1070: 01010101 tsteq r1, r1, lsl #2 + 1074: 00000000 andeq r0, r0, r0 + 1078: 445c3a43 ldrbmi r3, [ip], #-2627 + 107c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1080: 73746e65 cmnvc r4, #1616 ; 0x650 + 1084: 646e6120 strbtvs r6, [lr], #-288 + 1088: 74655320 strbtvc r5, [r5], #-800 + 108c: 676e6974 undefined + 1090: 616d5c73 smcvs 54723 + 1094: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1098: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 109c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 10a0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 10a4: 775c7374 undefined + 10a8: 6f632d73 svcvs 0x00632d73 + 10ac: 6f72746e svcvs 0x0072746e + 10b0: 65575c6c ldrbvs r5, [r7, #-3180] + 10b4: 65687461 strbvs r7, [r8, #-1121]! + 10b8: 74532072 ldrbvc r2, [r3], #-114 + 10bc: 6f697461 svcvs 0x00697461 + 10c0: 6f43206e svcvs 0x0043206e + 10c4: 6f72746e svcvs 0x0072746e + 10c8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 10cc: 7070415c rsbsvc r4, r0, ip, asr r1 + 10d0: 6163696c cmnvs r3, ip, ror #18 + 10d4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 10d8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 10dc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 10e0: 005c7365 subseq r7, ip, r5, ror #6 + 10e4: 73694400 cmnvc r9, #0 ; 0x0 + 10e8: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 10ec: 0100632e tsteq r0, lr, lsr #6 + 10f0: c5d0bea8 ldrbgt fp, [r0, #3752] + 10f4: 000ad804 andeq sp, sl, r4, lsl #16 + 10f8: e4020500 str r0, [r2], #-1280 + 10fc: 05004021 streq r4, [r0, #-33] + 1100: 07cc0301 strbeq r0, [ip, r1, lsl #6] + 1104: 1a0c050e bne 302544 + 1108: 030e0305 movweq r0, #58117 ; 0xe305 + 110c: 056a2c01 strbeq r2, [sl, #-3073]! + 1110: 0e120307 cdpeq 3, 1, cr0, cr2, cr7, {0} + 1114: 7a030905 bvc c3530 + 1118: 417d0337 cmnmi sp, r7, lsr r3 + 111c: 07030505 streq r0, [r3, -r5, lsl #10] + 1120: 0303055e movweq r0, #13662 ; 0x355e + 1124: 05050f6e streq r0, [r5, #-3950] + 1128: 01051a16 tsteq r5, r6, lsl sl + 112c: 0e01d603 cfmadd32eq mvax0, mvfx13, mvfx1, mvfx3 + 1130: 0c0e0305 stceq 3, cr0, [lr], {5} + 1134: 051f331a ldreq r3, [pc, #-794] ; e22 <__USR_stack_size+0x622> + 1138: 7e9f0305 cdpvc 3, 9, cr0, cr15, cr5, {0} + 113c: 03010528 movweq r0, #5416 ; 0x1528 + 1140: 050e01de streq r0, [lr, #-478] + 1144: 7e9f0305 cdpvc 3, 9, cr0, cr15, cr5, {0} + 1148: 0002022d andeq r0, r2, sp, lsr #4 + 114c: 00000101 andeq r0, r0, r1, lsl #2 + 1150: 00000022 andeq r0, r0, r2, lsr #32 + 1154: 00100002 andseq r0, r0, r2 + 1158: 01020000 tsteq r2, r0 + 115c: 000a0500 andeq r0, sl, r0, lsl #10 + 1160: 01010101 tsteq r1, r1, lsl #2 + 1164: 00000000 andeq r0, r0, r0 + 1168: 05000000 streq r0, [r0] + 116c: 4022ac02 eormi sl, r2, r2, lsl #24 + 1170: 00120200 andseq r0, r2, r0, lsl #4 + 1174: 00000101 andeq r0, r0, r1, lsl #2 + 1178: 000000d1 ldrdeq r0, [r0], -r1 + 117c: 008e0002 addeq r0, lr, r2 + 1180: 01020000 tsteq r2, r0 + 1184: 000a0500 andeq r0, sl, r0, lsl #10 + 1188: 01010101 tsteq r1, r1, lsl #2 + 118c: 00000000 andeq r0, r0, r0 + 1190: 445c3a43 ldrbmi r3, [ip], #-2627 + 1194: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1198: 73746e65 cmnvc r4, #1616 ; 0x650 + 119c: 646e6120 strbtvs r6, [lr], #-288 + 11a0: 74655320 strbtvc r5, [r5], #-800 + 11a4: 676e6974 undefined + 11a8: 616d5c73 smcvs 54723 + 11ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 11b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 11b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 11b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 11bc: 775c7374 undefined + 11c0: 6f632d73 svcvs 0x00632d73 + 11c4: 6f72746e svcvs 0x0072746e + 11c8: 65575c6c ldrbvs r5, [r7, #-3180] + 11cc: 65687461 strbvs r7, [r8, #-1121]! + 11d0: 74532072 ldrbvc r2, [r3], #-114 + 11d4: 6f697461 svcvs 0x00697461 + 11d8: 6f43206e svcvs 0x0043206e + 11dc: 6f72746e svcvs 0x0072746e + 11e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 11e4: 7070415c rsbsvc r4, r0, ip, asr r1 + 11e8: 6163696c cmnvs r3, ip, ror #18 + 11ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 11f0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 11f4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 11f8: 005c7365 subseq r7, ip, r5, ror #6 + 11fc: 73694400 cmnvc r9, #0 ; 0x0 + 1200: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 1204: 0100632e tsteq r0, lr, lsr #6 + 1208: c5d0bea8 ldrbgt fp, [r0, #3752] + 120c: 000ad804 andeq sp, sl, r4, lsl #16 + 1210: d0020500 andle r0, r2, r0, lsl #10 + 1214: 05004022 streq r4, [r0, #-34] + 1218: 08800301 stmeq r0, {r0, r8, r9} + 121c: 2103050e tstcs r3, lr, lsl #10 + 1220: b3030105 movwlt r0, #12549 ; 0x3105 + 1224: 03050e01 movweq r0, #24065 ; 0x5e01 + 1228: 291a0c0e ldmdbcs sl, {r1, r2, r3, sl, fp} + 122c: 7ec10324 cdpvc 3, 12, cr0, cr1, cr4, {1} + 1230: 0301051e movweq r0, #5406 ; 0x151e + 1234: 050e01bc streq r0, [lr, #-444] + 1238: 7ec20305 cdpvc 3, 12, cr0, cr2, cr5, {0} + 123c: 0327050f teqeq r7, #62914560 ; 0x3c00000 + 1240: 1805197e stmdane r5, {r1, r2, r3, r4, r5, r6, r8, fp, ip} + 1244: 18010519 stmdane r1, {r0, r3, r4, r8, sl} + 1248: 01000502 tsteq r0, r2, lsl #10 + 124c: 00000001 andeq r0, r0, r1 + 1250: 000000c3 andeq r0, r0, r3, asr #1 + 1254: 008e0002 addeq r0, lr, r2 + 1258: 01020000 tsteq r2, r0 + 125c: 000a0500 andeq r0, sl, r0, lsl #10 + 1260: 01010101 tsteq r1, r1, lsl #2 + 1264: 00000000 andeq r0, r0, r0 + 1268: 445c3a43 ldrbmi r3, [ip], #-2627 + 126c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1270: 73746e65 cmnvc r4, #1616 ; 0x650 + 1274: 646e6120 strbtvs r6, [lr], #-288 + 1278: 74655320 strbtvc r5, [r5], #-800 + 127c: 676e6974 undefined + 1280: 616d5c73 smcvs 54723 + 1284: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1288: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 128c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1290: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1294: 775c7374 undefined + 1298: 6f632d73 svcvs 0x00632d73 + 129c: 6f72746e svcvs 0x0072746e + 12a0: 65575c6c ldrbvs r5, [r7, #-3180] + 12a4: 65687461 strbvs r7, [r8, #-1121]! + 12a8: 74532072 ldrbvc r2, [r3], #-114 + 12ac: 6f697461 svcvs 0x00697461 + 12b0: 6f43206e svcvs 0x0043206e + 12b4: 6f72746e svcvs 0x0072746e + 12b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 12bc: 7070415c rsbsvc r4, r0, ip, asr r1 + 12c0: 6163696c cmnvs r3, ip, ror #18 + 12c4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 12c8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 12cc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 12d0: 005c7365 subseq r7, ip, r5, ror #6 + 12d4: 73694400 cmnvc r9, #0 ; 0x0 + 12d8: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 12dc: 0100632e tsteq r0, lr, lsr #6 + 12e0: c5d0bea8 ldrbgt fp, [r0, #3752] + 12e4: 000ad804 andeq sp, sl, r4, lsl #16 + 12e8: 18020500 stmdane r2, {r8, sl} + 12ec: 05004023 streq r4, [r0, #-35] + 12f0: 089a0301 ldmeq sl, {r0, r8, r9} + 12f4: 1303050e movwne r0, #13582 ; 0x350e + 12f8: 05170505 ldreq r0, [r7, #-1285] + 12fc: 15242007 strne r2, [r4, #-7]! + 1300: 13050515 movwne r0, #21781 ; 0x5515 + 1304: 152b0705 strne r0, [fp, #-1797]! + 1308: 17181a2c ldrne r1, [r8, -ip, lsr #20] + 130c: 03050515 movweq r0, #21781 ; 0x5515 + 1310: 04022201 streq r2, [r2], #-513 + 1314: 00010100 andeq r0, r1, r0, lsl #2 + 1318: 000000c7 andeq r0, r0, r7, asr #1 + 131c: 008e0002 addeq r0, lr, r2 + 1320: 01020000 tsteq r2, r0 + 1324: 000a0500 andeq r0, sl, r0, lsl #10 + 1328: 01010101 tsteq r1, r1, lsl #2 + 132c: 00000000 andeq r0, r0, r0 + 1330: 445c3a43 ldrbmi r3, [ip], #-2627 + 1334: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1338: 73746e65 cmnvc r4, #1616 ; 0x650 + 133c: 646e6120 strbtvs r6, [lr], #-288 + 1340: 74655320 strbtvc r5, [r5], #-800 + 1344: 676e6974 undefined + 1348: 616d5c73 smcvs 54723 + 134c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1350: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1354: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1358: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 135c: 775c7374 undefined + 1360: 6f632d73 svcvs 0x00632d73 + 1364: 6f72746e svcvs 0x0072746e + 1368: 65575c6c ldrbvs r5, [r7, #-3180] + 136c: 65687461 strbvs r7, [r8, #-1121]! + 1370: 74532072 ldrbvc r2, [r3], #-114 + 1374: 6f697461 svcvs 0x00697461 + 1378: 6f43206e svcvs 0x0043206e + 137c: 6f72746e svcvs 0x0072746e + 1380: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1384: 7070415c rsbsvc r4, r0, ip, asr r1 + 1388: 6163696c cmnvs r3, ip, ror #18 + 138c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1390: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1394: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1398: 005c7365 subseq r7, ip, r5, ror #6 + 139c: 73694400 cmnvc r9, #0 ; 0x0 + 13a0: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 13a4: 0100632e tsteq r0, lr, lsr #6 + 13a8: c5d0bea8 ldrbgt fp, [r0, #3752] + 13ac: 000ad804 andeq sp, sl, r4, lsl #16 + 13b0: 00020500 andeq r0, r2, r0, lsl #10 + 13b4: 05000000 streq r0, [r0] + 13b8: 0abb0301 beq feec1fc4 + 13bc: 2203050e andcs r0, r3, #58720256 ; 0x3800000 + 13c0: 052c0103 streq r0, [ip, #-259]! + 13c4: 2e1a3405 cfmulscs mvf3, mvf10, mvf5 + 13c8: 0705291f smladeq r5, pc, r9, r2 + 13cc: 1c051a11 stcne 10, cr1, [r5], {17} + 13d0: 050f7d03 streq r7, [pc, #-3331] ; 6d5 <__FIQ_stack_size+0x2d5> + 13d4: 19050f12 stmdbne r5, {r1, r4, r8, r9, sl, fp} + 13d8: 050f7a03 streq r7, [pc, #-2563] ; 9dd <__USR_stack_size+0x1dd> + 13dc: 02020f10 andeq r0, r2, #64 ; 0x40 + 13e0: 00010100 andeq r0, r1, r0, lsl #2 + 13e4: 0000023b andeq r0, r0, fp, lsr r2 + 13e8: 02350002 eorseq r0, r5, #2 ; 0x2 + 13ec: 01010000 tsteq r1, r0 + 13f0: 000a0500 andeq r0, sl, r0, lsl #10 + 13f4: 01010101 tsteq r1, r1, lsl #2 + 13f8: 00000000 andeq r0, r0, r0 + 13fc: 445c3a43 ldrbmi r3, [ip], #-2627 + 1400: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1404: 73746e65 cmnvc r4, #1616 ; 0x650 + 1408: 646e6120 strbtvs r6, [lr], #-288 + 140c: 74655320 strbtvc r5, [r5], #-800 + 1410: 676e6974 undefined + 1414: 616d5c73 smcvs 54723 + 1418: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 141c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1420: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1424: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1428: 775c7374 undefined + 142c: 6f632d73 svcvs 0x00632d73 + 1430: 6f72746e svcvs 0x0072746e + 1434: 65575c6c ldrbvs r5, [r7, #-3180] + 1438: 65687461 strbvs r7, [r8, #-1121]! + 143c: 74532072 ldrbvc r2, [r3], #-114 + 1440: 6f697461 svcvs 0x00697461 + 1444: 6f43206e svcvs 0x0043206e + 1448: 6f72746e svcvs 0x0072746e + 144c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1450: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1454: 746e495c strbtvc r4, [lr], #-2396 + 1458: 61667265 cmnvs r6, r5, ror #4 + 145c: 005c6563 subseq r6, ip, r3, ror #10 + 1460: 445c3a43 ldrbmi r3, [ip], #-2627 + 1464: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1468: 73746e65 cmnvc r4, #1616 ; 0x650 + 146c: 646e6120 strbtvs r6, [lr], #-288 + 1470: 74655320 strbtvc r5, [r5], #-800 + 1474: 676e6974 undefined + 1478: 616d5c73 smcvs 54723 + 147c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1480: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1484: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1488: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 148c: 775c7374 undefined + 1490: 6f632d73 svcvs 0x00632d73 + 1494: 6f72746e svcvs 0x0072746e + 1498: 65575c6c ldrbvs r5, [r7, #-3180] + 149c: 65687461 strbvs r7, [r8, #-1121]! + 14a0: 74532072 ldrbvc r2, [r3], #-114 + 14a4: 6f697461 svcvs 0x00697461 + 14a8: 6f43206e svcvs 0x0043206e + 14ac: 6f72746e svcvs 0x0072746e + 14b0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 14b4: 4d4c505c stclmi 0, cr5, [ip, #-368] + 14b8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 14bc: 65746e49 ldrbvs r6, [r4, #-3657]! + 14c0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 14c4: 43005c65 movwmi r5, #3173 ; 0xc65 + 14c8: 6f445c3a svcvs 0x00445c3a + 14cc: 656d7563 strbvs r7, [sp, #-1379]! + 14d0: 2073746e rsbscs r7, r3, lr, ror #8 + 14d4: 20646e61 rsbcs r6, r4, r1, ror #28 + 14d8: 74746553 ldrbtvc r6, [r4], #-1363 + 14dc: 73676e69 cmnvc r7, #1680 ; 0x690 + 14e0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 14e4: 61726976 cmnvs r2, r6, ror r9 + 14e8: 20794d5c rsbscs r4, r9, ip, asr sp + 14ec: 75636f44 strbvc r6, [r3, #-3908]! + 14f0: 746e656d strbtvc r6, [lr], #-1389 + 14f4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 14f8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 14fc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1500: 6165575c cmnvs r5, ip, asr r7 + 1504: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1508: 61745320 cmnvs r4, r0, lsr #6 + 150c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1510: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1514: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1518: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 151c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 1520: 746e495c strbtvc r4, [lr], #-2396 + 1524: 61667265 cmnvs r6, r5, ror #4 + 1528: 005c6563 subseq r6, ip, r3, ror #10 + 152c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1530: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1534: 73746e65 cmnvc r4, #1616 ; 0x650 + 1538: 646e6120 strbtvs r6, [lr], #-288 + 153c: 74655320 strbtvc r5, [r5], #-800 + 1540: 676e6974 undefined + 1544: 616d5c73 smcvs 54723 + 1548: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 154c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1550: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1554: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1558: 775c7374 undefined + 155c: 6f632d73 svcvs 0x00632d73 + 1560: 6f72746e svcvs 0x0072746e + 1564: 65575c6c ldrbvs r5, [r7, #-3180] + 1568: 65687461 strbvs r7, [r8, #-1121]! + 156c: 74532072 ldrbvc r2, [r3], #-114 + 1570: 6f697461 svcvs 0x00697461 + 1574: 6f43206e svcvs 0x0043206e + 1578: 6f72746e svcvs 0x0072746e + 157c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1580: 414d535c cmpmi sp, ip, asr r3 + 1584: 6f535c43 svcvs 0x00535c43 + 1588: 65637275 strbvs r7, [r3, #-629]! + 158c: 4500005c strmi r0, [r0, #-92] + 1590: 6465626d strbtvs r6, [r5], #-621 + 1594: 54646564 strbtpl r6, [r4], #-1380 + 1598: 73657079 cmnvc r5, #121 ; 0x79 + 159c: 0100682e tsteq r0, lr, lsr #16 + 15a0: c0d79d9e smullsgt r9, r7, lr, sp + 15a4: 52437704 subpl r7, r3, #1048576 ; 0x100000 + 15a8: 65525f4d ldrbvs r5, [r2, #-3917] + 15ac: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 15b0: 8ff80200 svchi 0x00f80200 + 15b4: 8104c0d7 ldrdhi ip, [r4, -r7] + 15b8: 6d724302 ldclvs 3, cr4, [r2, #-8]! + 15bc: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 15c0: c0d794f2 ldrshgt r9, [r7], #66 + 15c4: 5005cb04 andpl ip, r5, r4, lsl #22 + 15c8: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 15cc: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} + 15d0: f2020068 vhadd.s8 q0, q1, q12 + 15d4: 04c0d794 strbeq sp, [r0], #1940 + 15d8: 735303be cmpvc r3, #-134217726 ; 0xf8000002 + 15dc: 65525f69 ldrbvs r5, [r2, #-3945] + 15e0: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 15e4: 96cc0200 strbls r0, [ip], r0, lsl #4 + 15e8: c504ba91 strgt fp, [r4, #-2705] + 15ec: 6f6c4701 svcvs 0x006c4701 + 15f0: 446c6162 strbtmi r6, [ip], #-354 + 15f4: 2e736665 cdpcs 6, 7, cr6, cr3, cr5, {3} + 15f8: ba030068 blt c17a0 + 15fc: 04c5eea2 strbeq lr, [r5], #3746 + 1600: 4c480191 stfmie f0, [r8], {145} + 1604: 2e767244 cdpcs 2, 7, cr7, cr6, cr4, {2} + 1608: 88030068 stmdahi r3, {r3, r5, r6} + 160c: 04c1eef5 strbeq lr, [r1], #3829 + 1610: 4c48019a stfmie f0, [r8], {154} + 1614: 2e767244 cdpcs 2, 7, cr7, cr6, cr4, {2} + 1618: 80040063 andhi r0, r4, r3, rrx + 161c: 04c0d683 strbeq sp, [r0], #1667 + 1620: 000001a2 andeq r0, r0, r2, lsr #3 + 1624: 000000af andeq r0, r0, pc, lsr #1 + 1628: 008e0002 addeq r0, lr, r2 + 162c: 01010000 tsteq r1, r0 + 1630: 000a0500 andeq r0, sl, r0, lsl #10 + 1634: 01010101 tsteq r1, r1, lsl #2 + 1638: 00000000 andeq r0, r0, r0 + 163c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1640: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1644: 73746e65 cmnvc r4, #1616 ; 0x650 + 1648: 646e6120 strbtvs r6, [lr], #-288 + 164c: 74655320 strbtvc r5, [r5], #-800 + 1650: 676e6974 undefined + 1654: 616d5c73 smcvs 54723 + 1658: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 165c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1660: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1664: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1668: 775c7374 undefined + 166c: 6f632d73 svcvs 0x00632d73 + 1670: 6f72746e svcvs 0x0072746e + 1674: 65575c6c ldrbvs r5, [r7, #-3180] + 1678: 65687461 strbvs r7, [r8, #-1121]! + 167c: 74532072 ldrbvc r2, [r3], #-114 + 1680: 6f697461 svcvs 0x00697461 + 1684: 6f43206e svcvs 0x0043206e + 1688: 6f72746e svcvs 0x0072746e + 168c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1690: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1694: 756f535c strbvc r5, [pc, #-860]! ; 1340 <__USR_stack_size+0xb40> + 1698: 5c656372 stclpl 3, cr6, [r5], #-456 + 169c: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 16a0: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 16a4: 005c7379 subseq r7, ip, r9, ror r3 + 16a8: 696e4900 stmdbvs lr!, {r8, fp, lr}^ + 16ac: 41492d74 cmpmi r9, r4, ror sp + 16b0: 00532e52 subseq r2, r3, r2, asr lr + 16b4: f2cff901 vqdmlal.s , d15, d1 + 16b8: 000004ce andeq r0, r0, lr, asr #9 + 16bc: 00020500 andeq r0, r2, r0, lsl #10 + 16c0: 03004000 movweq r4, #0 ; 0x0 + 16c4: 030e00c2 movweq r0, #57538 ; 0xe0c2 + 16c8: 1f1f2204 svcne 0x001f2204 + 16cc: 0103201f tsteq r3, pc, lsl r0 + 16d0: 04021f22 streq r1, [r2], #-3874 + 16d4: 00010100 andeq r0, r1, r0, lsl #2 + 16d8: 000000eb andeq r0, r0, fp, ror #1 + 16dc: 008e0002 addeq r0, lr, r2 + 16e0: 01010000 tsteq r1, r0 + 16e4: 000a0500 andeq r0, sl, r0, lsl #10 + 16e8: 01010101 tsteq r1, r1, lsl #2 + 16ec: 00000000 andeq r0, r0, r0 + 16f0: 445c3a43 ldrbmi r3, [ip], #-2627 + 16f4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 16f8: 73746e65 cmnvc r4, #1616 ; 0x650 + 16fc: 646e6120 strbtvs r6, [lr], #-288 + 1700: 74655320 strbtvc r5, [r5], #-800 + 1704: 676e6974 undefined + 1708: 616d5c73 smcvs 54723 + 170c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1710: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1714: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1718: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 171c: 775c7374 undefined + 1720: 6f632d73 svcvs 0x00632d73 + 1724: 6f72746e svcvs 0x0072746e + 1728: 65575c6c ldrbvs r5, [r7, #-3180] + 172c: 65687461 strbvs r7, [r8, #-1121]! + 1730: 74532072 ldrbvc r2, [r3], #-114 + 1734: 6f697461 svcvs 0x00697461 + 1738: 6f43206e svcvs 0x0043206e + 173c: 6f72746e svcvs 0x0072746e + 1740: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1744: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1748: 756f535c strbvc r5, [pc, #-860]! ; 13f4 <__USR_stack_size+0xbf4> + 174c: 5c656372 stclpl 3, cr6, [r5], #-456 + 1750: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 1754: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 1758: 005c7379 subseq r7, ip, r9, ror r3 + 175c: 696e4900 stmdbvs lr!, {r8, fp, lr}^ + 1760: 41492d74 cmpmi r9, r4, ror sp + 1764: 00532e52 subseq r2, r3, r2, asr lr + 1768: f2cff901 vqdmlal.s , d15, d1 + 176c: 000004ce andeq r0, r0, lr, asr #9 + 1770: e4020500 str r0, [r2], #-1280 + 1774: 03004034 movweq r4, #52 ; 0x34 + 1778: 1f0e00db svcne 0x000e00db + 177c: 201f1f1f andscs r1, pc, pc, lsl pc + 1780: 201f1f1f andscs r1, pc, pc, lsl pc + 1784: 201f1f1f andscs r1, pc, pc, lsl pc + 1788: 201f1f1f andscs r1, pc, pc, lsl pc + 178c: 201f1f1f andscs r1, pc, pc, lsl pc + 1790: 031f1f1f tsteq pc, #124 ; 0x7c + 1794: 01032202 tsteq r3, r2, lsl #4 + 1798: 211f1f22 tstcs pc, r2, lsr #30 + 179c: 211f221f tstcs pc, pc, lsl r2 + 17a0: 1f220103 svcne 0x00220103 + 17a4: 1f1f1f1f svcne 0x001f1f1f + 17a8: 1f211f1f svcne 0x00211f1f + 17ac: 1f1f1f1f svcne 0x001f1f1f + 17b0: 1f211f1f svcne 0x00211f1f + 17b4: 1f1f1f1f svcne 0x001f1f1f + 17b8: 1f211f1f svcne 0x00211f1f + 17bc: 1f1f1f1f svcne 0x001f1f1f + 17c0: 20021f1f andcs r1, r2, pc, lsl pc + 17c4: 00010100 andeq r0, r1, r0, lsl #2 + 17c8: 000001e8 andeq r0, r0, r8, ror #3 + 17cc: 01e20002 mvneq r0, r2 + 17d0: 01010000 tsteq r1, r0 + 17d4: 000a0500 andeq r0, sl, r0, lsl #10 + 17d8: 01010101 tsteq r1, r1, lsl #2 + 17dc: 00000000 andeq r0, r0, r0 + 17e0: 445c3a43 ldrbmi r3, [ip], #-2627 + 17e4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 17e8: 73746e65 cmnvc r4, #1616 ; 0x650 + 17ec: 646e6120 strbtvs r6, [lr], #-288 + 17f0: 74655320 strbtvc r5, [r5], #-800 + 17f4: 676e6974 undefined + 17f8: 616d5c73 smcvs 54723 + 17fc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1800: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1804: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1808: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 180c: 775c7374 undefined + 1810: 6f632d73 svcvs 0x00632d73 + 1814: 6f72746e svcvs 0x0072746e + 1818: 65575c6c ldrbvs r5, [r7, #-3180] + 181c: 65687461 strbvs r7, [r8, #-1121]! + 1820: 74532072 ldrbvc r2, [r3], #-114 + 1824: 6f697461 svcvs 0x00697461 + 1828: 6f43206e svcvs 0x0043206e + 182c: 6f72746e svcvs 0x0072746e + 1830: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1834: 7070415c rsbsvc r4, r0, ip, asr r1 + 1838: 6163696c cmnvs r3, ip, ror #18 + 183c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1840: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1844: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1848: 005c7365 subseq r7, ip, r5, ror #6 + 184c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1850: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1854: 73746e65 cmnvc r4, #1616 ; 0x650 + 1858: 646e6120 strbtvs r6, [lr], #-288 + 185c: 74655320 strbtvc r5, [r5], #-800 + 1860: 676e6974 undefined + 1864: 616d5c73 smcvs 54723 + 1868: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 186c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1870: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1874: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1878: 775c7374 undefined + 187c: 6f632d73 svcvs 0x00632d73 + 1880: 6f72746e svcvs 0x0072746e + 1884: 65575c6c ldrbvs r5, [r7, #-3180] + 1888: 65687461 strbvs r7, [r8, #-1121]! + 188c: 74532072 ldrbvc r2, [r3], #-114 + 1890: 6f697461 svcvs 0x00697461 + 1894: 6f43206e svcvs 0x0043206e + 1898: 6f72746e svcvs 0x0072746e + 189c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 18a0: 4d4c505c stclmi 0, cr5, [ip, #-368] + 18a4: 746e495c strbtvc r4, [lr], #-2396 + 18a8: 61667265 cmnvs r6, r5, ror #4 + 18ac: 005c6563 subseq r6, ip, r3, ror #10 + 18b0: 445c3a43 ldrbmi r3, [ip], #-2627 + 18b4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 18b8: 73746e65 cmnvc r4, #1616 ; 0x650 + 18bc: 646e6120 strbtvs r6, [lr], #-288 + 18c0: 74655320 strbtvc r5, [r5], #-800 + 18c4: 676e6974 undefined + 18c8: 616d5c73 smcvs 54723 + 18cc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 18d0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 18d4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 18d8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 18dc: 775c7374 undefined + 18e0: 6f632d73 svcvs 0x00632d73 + 18e4: 6f72746e svcvs 0x0072746e + 18e8: 65575c6c ldrbvs r5, [r7, #-3180] + 18ec: 65687461 strbvs r7, [r8, #-1121]! + 18f0: 74532072 ldrbvc r2, [r3], #-114 + 18f4: 6f697461 svcvs 0x00697461 + 18f8: 6f43206e svcvs 0x0043206e + 18fc: 6f72746e svcvs 0x0072746e + 1900: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1904: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1908: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 190c: 65746e49 ldrbvs r6, [r4, #-3657]! + 1910: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 1914: 00005c65 andeq r5, r0, r5, ror #24 + 1918: 6279654b rsbsvs r6, r9, #314572800 ; 0x12c00000 + 191c: 6472616f ldrbtvs r6, [r2], #-367 + 1920: 0100632e tsteq r0, lr, lsr #6 + 1924: c5d0bea8 ldrbgt fp, [r0, #3752] + 1928: 654b5a04 strbvs r5, [fp, #-2564] + 192c: 616f6279 smcvs 63017 + 1930: 682e6472 stmdavs lr!, {r1, r4, r5, r6, sl, sp, lr} + 1934: fbf70100 blx ffdc1d3e + 1938: 7e04ceed cdpvc 14, 0, cr12, cr4, cr13, {7} + 193c: 65626d45 strbvs r6, [r2, #-3397]! + 1940: 64656464 strbtvs r6, [r5], #-1124 + 1944: 65707954 ldrbvs r7, [r0, #-2388]! + 1948: 00682e73 rsbeq r2, r8, r3, ror lr + 194c: d79d9e02 ldrle r9, [sp, r2, lsl #28] + 1950: 437704c0 cmnmi r7, #-1073741824 ; 0xc0000000 + 1954: 525f4d52 subspl r4, pc, #5248 ; 0x1480 + 1958: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} + 195c: f8030068 undefined instruction 0xf8030068 + 1960: 04c0d78f strbeq sp, [r0], #1935 + 1964: 72430281 subvc r0, r3, #268435464 ; 0x10000008 + 1968: 00682e6d rsbeq r2, r8, sp, ror #28 + 196c: d794f203 ldrle pc, [r4, r3, lsl #4] + 1970: 05cb04c0 strbeq r0, [fp, #1216] + 1974: 4f495047 svcmi 0x00495047 + 1978: 746e495f strbtvc r4, [lr], #-2399 + 197c: 61667265 cmnvs r6, r5, ror #4 + 1980: 682e6563 stmdavs lr!, {r0, r1, r5, r6, r8, sl, sp, lr} + 1984: 8ff80300 svchi 0x00f80300 + 1988: 9e04c0d7 mcrls 0, 0, ip, cr4, cr7, {6} + 198c: 616c5006 cmnvs ip, r6 + 1990: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 + 1994: 00682e6d rsbeq r2, r8, sp, ror #28 + 1998: d794f203 ldrle pc, [r4, r3, lsl #4] + 199c: 03be04c0 undefined instruction 0x03be04c0 + 19a0: 5f697353 svcpl 0x00697353 + 19a4: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 19a8: 0300682e movweq r6, #2094 ; 0x82e + 19ac: ba9196cc blt fe4674e4 + 19b0: 0001c504 andeq ip, r1, r4, lsl #10 + 19b4: 000000af andeq r0, r0, pc, lsr #1 + 19b8: 008e0002 addeq r0, lr, r2 + 19bc: 01020000 tsteq r2, r0 + 19c0: 000a0500 andeq r0, sl, r0, lsl #10 + 19c4: 01010101 tsteq r1, r1, lsl #2 + 19c8: 00000000 andeq r0, r0, r0 + 19cc: 445c3a43 ldrbmi r3, [ip], #-2627 + 19d0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 19d4: 73746e65 cmnvc r4, #1616 ; 0x650 + 19d8: 646e6120 strbtvs r6, [lr], #-288 + 19dc: 74655320 strbtvc r5, [r5], #-800 + 19e0: 676e6974 undefined + 19e4: 616d5c73 smcvs 54723 + 19e8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 19ec: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 19f0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 19f4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 19f8: 775c7374 undefined + 19fc: 6f632d73 svcvs 0x00632d73 + 1a00: 6f72746e svcvs 0x0072746e + 1a04: 65575c6c ldrbvs r5, [r7, #-3180] + 1a08: 65687461 strbvs r7, [r8, #-1121]! + 1a0c: 74532072 ldrbvc r2, [r3], #-114 + 1a10: 6f697461 svcvs 0x00697461 + 1a14: 6f43206e svcvs 0x0043206e + 1a18: 6f72746e svcvs 0x0072746e + 1a1c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1a20: 7070415c rsbsvc r4, r0, ip, asr r1 + 1a24: 6163696c cmnvs r3, ip, ror #18 + 1a28: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1a2c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1a30: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1a34: 005c7365 subseq r7, ip, r5, ror #6 + 1a38: 79654b00 stmdbvc r5!, {r8, r9, fp, lr}^ + 1a3c: 72616f62 rsbvc r6, r1, #392 ; 0x188 + 1a40: 00632e64 rsbeq r2, r3, r4, ror #28 + 1a44: d0bea801 adcsle sl, lr, r1, lsl #16 + 1a48: 005a04c5 subseq r0, sl, r5, asr #9 + 1a4c: f0020500 undefined instruction 0xf0020500 + 1a50: 0500403c streq r4, [r0, #-60] + 1a54: 0e390301 cdpeq 3, 3, cr0, cr9, cr1, {0} + 1a58: 2f110305 svccs 0x00110305 + 1a5c: 052a2a33 streq r2, [sl, #-2611]! + 1a60: 05022501 streq r2, [r2, #-1281] + 1a64: 00010100 andeq r0, r1, r0, lsl #2 + 1a68: 000002dd ldrdeq r0, [r0], -sp + 1a6c: 02d70002 sbcseq r0, r7, #2 ; 0x2 + 1a70: 01010000 tsteq r1, r0 + 1a74: 000a0500 andeq r0, sl, r0, lsl #10 + 1a78: 01010101 tsteq r1, r1, lsl #2 + 1a7c: 00000000 andeq r0, r0, r0 + 1a80: 445c3a43 ldrbmi r3, [ip], #-2627 + 1a84: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1a88: 73746e65 cmnvc r4, #1616 ; 0x650 + 1a8c: 646e6120 strbtvs r6, [lr], #-288 + 1a90: 74655320 strbtvc r5, [r5], #-800 + 1a94: 676e6974 undefined + 1a98: 616d5c73 smcvs 54723 + 1a9c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1aa0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1aa4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1aa8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1aac: 775c7374 undefined + 1ab0: 6f632d73 svcvs 0x00632d73 + 1ab4: 6f72746e svcvs 0x0072746e + 1ab8: 65575c6c ldrbvs r5, [r7, #-3180] + 1abc: 65687461 strbvs r7, [r8, #-1121]! + 1ac0: 74532072 ldrbvc r2, [r3], #-114 + 1ac4: 6f697461 svcvs 0x00697461 + 1ac8: 6f43206e svcvs 0x0043206e + 1acc: 6f72746e svcvs 0x0072746e + 1ad0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1ad4: 7070415c rsbsvc r4, r0, ip, asr r1 + 1ad8: 6163696c cmnvs r3, ip, ror #18 + 1adc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1ae0: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1ae4: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1ae8: 005c7365 subseq r7, ip, r5, ror #6 + 1aec: 445c3a43 ldrbmi r3, [ip], #-2627 + 1af0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1af4: 73746e65 cmnvc r4, #1616 ; 0x650 + 1af8: 646e6120 strbtvs r6, [lr], #-288 + 1afc: 74655320 strbtvc r5, [r5], #-800 + 1b00: 676e6974 undefined + 1b04: 616d5c73 smcvs 54723 + 1b08: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1b0c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1b10: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1b14: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1b18: 775c7374 undefined + 1b1c: 6f632d73 svcvs 0x00632d73 + 1b20: 6f72746e svcvs 0x0072746e + 1b24: 65575c6c ldrbvs r5, [r7, #-3180] + 1b28: 65687461 strbvs r7, [r8, #-1121]! + 1b2c: 74532072 ldrbvc r2, [r3], #-114 + 1b30: 6f697461 svcvs 0x00697461 + 1b34: 6f43206e svcvs 0x0043206e + 1b38: 6f72746e svcvs 0x0072746e + 1b3c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1b40: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1b44: 746e495c strbtvc r4, [lr], #-2396 + 1b48: 61667265 cmnvs r6, r5, ror #4 + 1b4c: 005c6563 subseq r6, ip, r3, ror #10 + 1b50: 445c3a43 ldrbmi r3, [ip], #-2627 + 1b54: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1b58: 73746e65 cmnvc r4, #1616 ; 0x650 + 1b5c: 646e6120 strbtvs r6, [lr], #-288 + 1b60: 74655320 strbtvc r5, [r5], #-800 + 1b64: 676e6974 undefined + 1b68: 616d5c73 smcvs 54723 + 1b6c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1b70: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1b74: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1b78: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1b7c: 775c7374 undefined + 1b80: 6f632d73 svcvs 0x00632d73 + 1b84: 6f72746e svcvs 0x0072746e + 1b88: 65575c6c ldrbvs r5, [r7, #-3180] + 1b8c: 65687461 strbvs r7, [r8, #-1121]! + 1b90: 74532072 ldrbvc r2, [r3], #-114 + 1b94: 6f697461 svcvs 0x00697461 + 1b98: 6f43206e svcvs 0x0043206e + 1b9c: 6f72746e svcvs 0x0072746e + 1ba0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1ba4: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1ba8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 1bac: 65746e49 ldrbvs r6, [r4, #-3657]! + 1bb0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 1bb4: 43005c65 movwmi r5, #3173 ; 0xc65 + 1bb8: 6f445c3a svcvs 0x00445c3a + 1bbc: 656d7563 strbvs r7, [sp, #-1379]! + 1bc0: 2073746e rsbscs r7, r3, lr, ror #8 + 1bc4: 20646e61 rsbcs r6, r4, r1, ror #28 + 1bc8: 74746553 ldrbtvc r6, [r4], #-1363 + 1bcc: 73676e69 cmnvc r7, #1680 ; 0x690 + 1bd0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1bd4: 61726976 cmnvs r2, r6, ror r9 + 1bd8: 20794d5c rsbscs r4, r9, ip, asr sp + 1bdc: 75636f44 strbvc r6, [r3, #-3908]! + 1be0: 746e656d strbtvc r6, [lr], #-1389 + 1be4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1be8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1bec: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1bf0: 6165575c cmnvs r5, ip, asr r7 + 1bf4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1bf8: 61745320 cmnvs r4, r0, lsr #6 + 1bfc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1c00: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1c04: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1c08: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1c0c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 1c10: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 1c14: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 1c18: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} + 1c1c: 75676966 strbvc r6, [r7, #-2406]! + 1c20: 005c6572 subseq r6, ip, r2, ror r5 + 1c24: 445c3a43 ldrbmi r3, [ip], #-2627 + 1c28: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1c2c: 73746e65 cmnvc r4, #1616 ; 0x650 + 1c30: 646e6120 strbtvs r6, [lr], #-288 + 1c34: 74655320 strbtvc r5, [r5], #-800 + 1c38: 676e6974 undefined + 1c3c: 616d5c73 smcvs 54723 + 1c40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1c44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1c48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1c4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1c50: 775c7374 undefined + 1c54: 6f632d73 svcvs 0x00632d73 + 1c58: 6f72746e svcvs 0x0072746e + 1c5c: 65575c6c ldrbvs r5, [r7, #-3180] + 1c60: 65687461 strbvs r7, [r8, #-1121]! + 1c64: 74532072 ldrbvc r2, [r3], #-114 + 1c68: 6f697461 svcvs 0x00697461 + 1c6c: 6f43206e svcvs 0x0043206e + 1c70: 6f72746e svcvs 0x0072746e + 1c74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1c78: 414d535c cmpmi sp, ip, asr r3 + 1c7c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 1c80: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 1c84: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 1c88: 66726574 undefined + 1c8c: 5c656361 stclpl 3, cr6, [r5], #-388 + 1c90: 654c0000 strbvs r0, [ip] + 1c94: 632e7364 teqvs lr, #-1879048191 ; 0x90000001 + 1c98: f7920100 undefined instruction 0xf7920100 + 1c9c: 9104c7b8 strhls ip, [r4, -r8] + 1ca0: 64654c02 strbtvs r4, [r5], #-3074 + 1ca4: 00682e73 rsbeq r2, r8, r3, ror lr + 1ca8: edfbf701 ldcl 7, cr15, [fp, #4]! + 1cac: 02c404ce sbceq r0, r4, #-838860800 ; 0xce000000 + 1cb0: 65626d45 strbvs r6, [r2, #-3397]! + 1cb4: 64656464 strbtvs r6, [r5], #-1124 + 1cb8: 65707954 ldrbvs r7, [r0, #-2388]! + 1cbc: 00682e73 rsbeq r2, r8, r3, ror lr + 1cc0: d79d9e02 ldrle r9, [sp, r2, lsl #28] + 1cc4: 437704c0 cmnmi r7, #-1073741824 ; 0xc0000000 + 1cc8: 525f4d52 subspl r4, pc, #5248 ; 0x1480 + 1ccc: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} + 1cd0: f8030068 undefined instruction 0xf8030068 + 1cd4: 04c0d78f strbeq sp, [r0], #1935 + 1cd8: 50470281 subpl r0, r7, r1, lsl #5 + 1cdc: 495f4f49 ldmdbmi pc, {r0, r3, r6, r8, r9, sl, fp, lr}^ + 1ce0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 1ce4: 65636166 strbvs r6, [r3, #-358]! + 1ce8: 0300682e movweq r6, #2094 ; 0x82e + 1cec: c0d78ff8 ldrshgt r8, [r7], #248 + 1cf0: 50069e04 andpl r9, r6, r4, lsl #28 + 1cf4: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 1cf8: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} + 1cfc: f2030068 vhadd.s8 q0, , q12 + 1d00: 04c0d794 strbeq sp, [r0], #1940 + 1d04: 735303be cmpvc r3, #-134217726 ; 0xf8000002 + 1d08: 65525f69 ldrbvs r5, [r2, #-3945] + 1d0c: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 1d10: 96cc0300 strbls r0, [ip], r0, lsl #6 + 1d14: c504ba91 strgt fp, [r4, #-2705] + 1d18: 616f6201 cmnvs pc, r1, lsl #4 + 1d1c: 635f6472 cmpvs pc, #1912602624 ; 0x72000000 + 1d20: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 1d24: 00682e67 rsbeq r2, r8, r7, ror #28 + 1d28: edfbf704 ldcl 7, cr15, [fp, #16]! + 1d2c: 463d04ce ldrtmi r0, [sp], -lr, asr #9 + 1d30: 44716572 ldrbtmi r6, [r1], #-1394 + 1d34: 65537065 ldrbvs r7, [r3, #-101] + 1d38: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 1d3c: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 1d40: fbf70500 blx ffdc314a + 1d44: 3704ceed strcc ip, [r4, -sp, ror #29] + 1d48: 00000000 andeq r0, r0, r0 + 1d4c: 000000bd strheq r0, [r0], -sp + 1d50: 008b0002 addeq r0, fp, r2 + 1d54: 01020000 tsteq r2, r0 + 1d58: 000a0500 andeq r0, sl, r0, lsl #10 + 1d5c: 01010101 tsteq r1, r1, lsl #2 + 1d60: 00000000 andeq r0, r0, r0 + 1d64: 445c3a43 ldrbmi r3, [ip], #-2627 + 1d68: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1d6c: 73746e65 cmnvc r4, #1616 ; 0x650 + 1d70: 646e6120 strbtvs r6, [lr], #-288 + 1d74: 74655320 strbtvc r5, [r5], #-800 + 1d78: 676e6974 undefined + 1d7c: 616d5c73 smcvs 54723 + 1d80: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1d84: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1d88: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1d8c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1d90: 775c7374 undefined + 1d94: 6f632d73 svcvs 0x00632d73 + 1d98: 6f72746e svcvs 0x0072746e + 1d9c: 65575c6c ldrbvs r5, [r7, #-3180] + 1da0: 65687461 strbvs r7, [r8, #-1121]! + 1da4: 74532072 ldrbvc r2, [r3], #-114 + 1da8: 6f697461 svcvs 0x00697461 + 1dac: 6f43206e svcvs 0x0043206e + 1db0: 6f72746e svcvs 0x0072746e + 1db4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1db8: 7070415c rsbsvc r4, r0, ip, asr r1 + 1dbc: 6163696c cmnvs r3, ip, ror #18 + 1dc0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1dc4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1dc8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1dcc: 005c7365 subseq r7, ip, r5, ror #6 + 1dd0: 64654c00 strbtvs r4, [r5], #-3072 + 1dd4: 00632e73 rsbeq r2, r3, r3, ror lr + 1dd8: b8f79201 ldmlt r7!, {r0, r9, ip, pc}^ + 1ddc: 029104c7 addseq r0, r1, #-956301312 ; 0xc7000000 + 1de0: 02050000 andeq r0, r5, #0 ; 0x0 + 1de4: 00403608 subeq r3, r0, r8, lsl #12 + 1de8: 38030105 stmdacc r3, {r0, r2, r8} + 1dec: 1003050e andne r0, r3, lr, lsl #10 + 1df0: 0301051a movweq r0, #5402 ; 0x151a + 1df4: 050e0193 streq r0, [lr, #-403] + 1df8: e9030b03 stmdb r3, {r0, r1, r8, r9, fp} + 1dfc: 0105197e tsteq r5, lr, ror r9 + 1e00: 0e019403 cdpeq 4, 0, cr9, cr1, cr3, {0} + 1e04: 1e7ee903 cdpne 9, 7, cr14, cr14, cr3, {0} + 1e08: 01000302 tsteq r0, r2, lsl #6 + 1e0c: 00000001 andeq r0, r0, r1 + 1e10: 000000ca andeq r0, r0, sl, asr #1 + 1e14: 008b0002 addeq r0, fp, r2 + 1e18: 01020000 tsteq r2, r0 + 1e1c: 000a0500 andeq r0, sl, r0, lsl #10 + 1e20: 01010101 tsteq r1, r1, lsl #2 + 1e24: 00000000 andeq r0, r0, r0 + 1e28: 445c3a43 ldrbmi r3, [ip], #-2627 + 1e2c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1e30: 73746e65 cmnvc r4, #1616 ; 0x650 + 1e34: 646e6120 strbtvs r6, [lr], #-288 + 1e38: 74655320 strbtvc r5, [r5], #-800 + 1e3c: 676e6974 undefined + 1e40: 616d5c73 smcvs 54723 + 1e44: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1e48: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1e4c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1e50: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1e54: 775c7374 undefined + 1e58: 6f632d73 svcvs 0x00632d73 + 1e5c: 6f72746e svcvs 0x0072746e + 1e60: 65575c6c ldrbvs r5, [r7, #-3180] + 1e64: 65687461 strbvs r7, [r8, #-1121]! + 1e68: 74532072 ldrbvc r2, [r3], #-114 + 1e6c: 6f697461 svcvs 0x00697461 + 1e70: 6f43206e svcvs 0x0043206e + 1e74: 6f72746e svcvs 0x0072746e + 1e78: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1e7c: 7070415c rsbsvc r4, r0, ip, asr r1 + 1e80: 6163696c cmnvs r3, ip, ror #18 + 1e84: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1e88: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1e8c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1e90: 005c7365 subseq r7, ip, r5, ror #6 + 1e94: 64654c00 strbtvs r4, [r5], #-3072 + 1e98: 00632e73 rsbeq r2, r3, r3, ror lr + 1e9c: b8f79201 ldmlt r7!, {r0, r9, ip, pc}^ + 1ea0: 029104c7 addseq r0, r1, #-956301312 ; 0xc7000000 + 1ea4: 02050000 andeq r0, r5, #0 ; 0x0 + 1ea8: 00403624 subeq r3, r0, r4, lsr #12 + 1eac: c5030105 strgt r0, [r3, #-261] + 1eb0: 03050e00 movweq r0, #24064 ; 0x5e00 + 1eb4: 15050515 strne r0, [r5, #-1301] + 1eb8: 03051f1f movweq r1, #24351 ; 0x5f1f + 1ebc: 0505201f streq r2, [r5, #-31] + 1ec0: 1f1f1f15 svcne 0x001f1f15 + 1ec4: 05200305 streq r0, [r0, #-773]! + 1ec8: 1f1f1505 svcne 0x001f1505 + 1ecc: 2003051f andcs r0, r3, pc, lsl r5 + 1ed0: 1f150505 svcne 0x00150505 + 1ed4: 01051f1f tsteq r5, pc, lsl pc + 1ed8: 00040220 andeq r0, r4, r0, lsr #4 + 1edc: 00000101 andeq r0, r0, r1, lsl #2 + 1ee0: 000000be strheq r0, [r0], -lr + 1ee4: 008b0002 addeq r0, fp, r2 + 1ee8: 01020000 tsteq r2, r0 + 1eec: 000a0500 andeq r0, sl, r0, lsl #10 + 1ef0: 01010101 tsteq r1, r1, lsl #2 + 1ef4: 00000000 andeq r0, r0, r0 + 1ef8: 445c3a43 ldrbmi r3, [ip], #-2627 + 1efc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1f00: 73746e65 cmnvc r4, #1616 ; 0x650 + 1f04: 646e6120 strbtvs r6, [lr], #-288 + 1f08: 74655320 strbtvc r5, [r5], #-800 + 1f0c: 676e6974 undefined + 1f10: 616d5c73 smcvs 54723 + 1f14: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1f18: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1f1c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1f20: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1f24: 775c7374 undefined + 1f28: 6f632d73 svcvs 0x00632d73 + 1f2c: 6f72746e svcvs 0x0072746e + 1f30: 65575c6c ldrbvs r5, [r7, #-3180] + 1f34: 65687461 strbvs r7, [r8, #-1121]! + 1f38: 74532072 ldrbvc r2, [r3], #-114 + 1f3c: 6f697461 svcvs 0x00697461 + 1f40: 6f43206e svcvs 0x0043206e + 1f44: 6f72746e svcvs 0x0072746e + 1f48: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1f4c: 7070415c rsbsvc r4, r0, ip, asr r1 + 1f50: 6163696c cmnvs r3, ip, ror #18 + 1f54: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1f58: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 1f5c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 1f60: 005c7365 subseq r7, ip, r5, ror #6 + 1f64: 64654c00 strbtvs r4, [r5], #-3072 + 1f68: 00632e73 rsbeq r2, r3, r3, ror lr + 1f6c: b8f79201 ldmlt r7!, {r0, r9, ip, pc}^ + 1f70: 029104c7 addseq r0, r1, #-956301312 ; 0xc7000000 + 1f74: 02050000 andeq r0, r5, #0 ; 0x0 + 1f78: 004036c0 subeq r3, r0, r0, asr #13 + 1f7c: af030105 svcge 0x00030105 + 1f80: 03050e01 movweq r0, #24065 ; 0x5e01 + 1f84: 15050515 strne r0, [r5, #-1301] + 1f88: 051f0305 ldreq r0, [pc, #-773] ; 1c8b <__USR_stack_size+0x148b> + 1f8c: 03051505 movweq r1, #21765 ; 0x5505 + 1f90: 1505051f strne r0, [r5, #-1311] + 1f94: 051f0305 ldreq r0, [pc, #-773] ; 1c97 <__USR_stack_size+0x1497> + 1f98: 01051505 tsteq r5, r5, lsl #10 + 1f9c: 0004021f andeq r0, r4, pc, lsl r2 + 1fa0: 00000101 andeq r0, r0, r1, lsl #2 + 1fa4: 00000429 andeq r0, r0, r9, lsr #8 + 1fa8: 04230002 strteq r0, [r3], #-2 + 1fac: 01010000 tsteq r1, r0 + 1fb0: 000a0500 andeq r0, sl, r0, lsl #10 + 1fb4: 01010101 tsteq r1, r1, lsl #2 + 1fb8: 00000000 andeq r0, r0, r0 + 1fbc: 445c3a43 ldrbmi r3, [ip], #-2627 + 1fc0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1fc4: 73746e65 cmnvc r4, #1616 ; 0x650 + 1fc8: 646e6120 strbtvs r6, [lr], #-288 + 1fcc: 74655320 strbtvc r5, [r5], #-800 + 1fd0: 676e6974 undefined + 1fd4: 616d5c73 smcvs 54723 + 1fd8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1fdc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1fe0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1fe4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1fe8: 775c7374 undefined + 1fec: 6f632d73 svcvs 0x00632d73 + 1ff0: 6f72746e svcvs 0x0072746e + 1ff4: 65575c6c ldrbvs r5, [r7, #-3180] + 1ff8: 65687461 strbvs r7, [r8, #-1121]! + 1ffc: 74532072 ldrbvc r2, [r3], #-114 + 2000: 6f697461 svcvs 0x00697461 + 2004: 6f43206e svcvs 0x0043206e + 2008: 6f72746e svcvs 0x0072746e + 200c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2010: 4d4c505c stclmi 0, cr5, [ip, #-368] + 2014: 746e495c strbtvc r4, [lr], #-2396 + 2018: 61667265 cmnvs r6, r5, ror #4 + 201c: 005c6563 subseq r6, ip, r3, ror #10 + 2020: 445c3a43 ldrbmi r3, [ip], #-2627 + 2024: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2028: 73746e65 cmnvc r4, #1616 ; 0x650 + 202c: 646e6120 strbtvs r6, [lr], #-288 + 2030: 74655320 strbtvc r5, [r5], #-800 + 2034: 676e6974 undefined + 2038: 616d5c73 smcvs 54723 + 203c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2040: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2044: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2048: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 204c: 775c7374 undefined + 2050: 6f632d73 svcvs 0x00632d73 + 2054: 6f72746e svcvs 0x0072746e + 2058: 65575c6c ldrbvs r5, [r7, #-3180] + 205c: 65687461 strbvs r7, [r8, #-1121]! + 2060: 74532072 ldrbvc r2, [r3], #-114 + 2064: 6f697461 svcvs 0x00697461 + 2068: 6f43206e svcvs 0x0043206e + 206c: 6f72746e svcvs 0x0072746e + 2070: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2074: 4d4c505c stclmi 0, cr5, [ip, #-368] + 2078: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 207c: 65746e49 ldrbvs r6, [r4, #-3657]! + 2080: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 2084: 43005c65 movwmi r5, #3173 ; 0xc65 + 2088: 6f445c3a svcvs 0x00445c3a + 208c: 656d7563 strbvs r7, [sp, #-1379]! + 2090: 2073746e rsbscs r7, r3, lr, ror #8 + 2094: 20646e61 rsbcs r6, r4, r1, ror #28 + 2098: 74746553 ldrbtvc r6, [r4], #-1363 + 209c: 73676e69 cmnvc r7, #1680 ; 0x690 + 20a0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 20a4: 61726976 cmnvs r2, r6, ror r9 + 20a8: 20794d5c rsbscs r4, r9, ip, asr sp + 20ac: 75636f44 strbvc r6, [r3, #-3908]! + 20b0: 746e656d strbtvc r6, [lr], #-1389 + 20b4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 20b8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 20bc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 20c0: 6165575c cmnvs r5, ip, asr r7 + 20c4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 20c8: 61745320 cmnvs r4, r0, lsr #6 + 20cc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 20d0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 20d4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 20d8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 20dc: 43414d53 movtmi r4, #7507 ; 0x1d53 + 20e0: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 20e4: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 20e8: 746e495c strbtvc r4, [lr], #-2396 + 20ec: 61667265 cmnvs r6, r5, ror #4 + 20f0: 005c6563 subseq r6, ip, r3, ror #10 + 20f4: 445c3a43 ldrbmi r3, [ip], #-2627 + 20f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 20fc: 73746e65 cmnvc r4, #1616 ; 0x650 + 2100: 646e6120 strbtvs r6, [lr], #-288 + 2104: 74655320 strbtvc r5, [r5], #-800 + 2108: 676e6974 undefined + 210c: 616d5c73 smcvs 54723 + 2110: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2114: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2118: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 211c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2120: 775c7374 undefined + 2124: 6f632d73 svcvs 0x00632d73 + 2128: 6f72746e svcvs 0x0072746e + 212c: 65575c6c ldrbvs r5, [r7, #-3180] + 2130: 65687461 strbvs r7, [r8, #-1121]! + 2134: 74532072 ldrbvc r2, [r3], #-114 + 2138: 6f697461 svcvs 0x00697461 + 213c: 6f43206e svcvs 0x0043206e + 2140: 6f72746e svcvs 0x0072746e + 2144: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2148: 414d535c cmpmi sp, ip, asr r3 + 214c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 2150: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 2154: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 2158: 66726574 undefined + 215c: 5c656361 stclpl 3, cr6, [r5], #-388 + 2160: 72646867 rsbvc r6, r4, #6750208 ; 0x670000 + 2164: 3a43005c bcc 10c22dc + 2168: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 216c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2170: 61207374 teqvs r0, r4, ror r3 + 2174: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 2178: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 217c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 2180: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2184: 5c617269 sfmpl f7, 2, [r1], #-420 + 2188: 4420794d strtmi r7, [r0], #-2381 + 218c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2190: 73746e65 cmnvc r4, #1616 ; 0x650 + 2194: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2198: 746e6f63 strbtvc r6, [lr], #-3939 + 219c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 21a0: 74616557 strbtvc r6, [r1], #-1367 + 21a4: 20726568 rsbscs r6, r2, r8, ror #10 + 21a8: 74617453 strbtvc r7, [r1], #-1107 + 21ac: 206e6f69 rsbcs r6, lr, r9, ror #30 + 21b0: 746e6f43 strbtvc r6, [lr], #-3907 + 21b4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 21b8: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 21bc: 5c43414d stfple f4, [r3], {77} + 21c0: 76697244 strbtvc r7, [r9], -r4, asr #4 + 21c4: 5c737265 lfmpl f7, 2, [r3], #-404 + 21c8: 4962694c stmdbmi r2!, {r2, r3, r6, r8, fp, sp, lr}^ + 21cc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 21d0: 65636166 strbvs r6, [r3, #-358]! + 21d4: 3a43005c bcc 10c234c + 21d8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 21dc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 21e0: 61207374 teqvs r0, r4, ror r3 + 21e4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 21e8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 21ec: 5c73676e ldclpl 7, cr6, [r3], #-440 + 21f0: 766c616d strbtvc r6, [ip], -sp, ror #2 + 21f4: 5c617269 sfmpl f7, 2, [r1], #-420 + 21f8: 4420794d strtmi r7, [r0], #-2381 + 21fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2200: 73746e65 cmnvc r4, #1616 ; 0x650 + 2204: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2208: 746e6f63 strbtvc r6, [lr], #-3939 + 220c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 2210: 74616557 strbtvc r6, [r1], #-1367 + 2214: 20726568 rsbscs r6, r2, r8, ror #10 + 2218: 74617453 strbtvc r7, [r1], #-1107 + 221c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 2220: 746e6f43 strbtvc r6, [lr], #-3907 + 2224: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2228: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 222c: 5c43414d stfple f4, [r3], {77} + 2230: 76697244 strbtvc r7, [r9], -r4, asr #4 + 2234: 5c737265 lfmpl f7, 2, [r3], #-404 + 2238: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 223c: 005c6563 subseq r6, ip, r3, ror #10 + 2240: 445c3a43 ldrbmi r3, [ip], #-2627 + 2244: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2248: 73746e65 cmnvc r4, #1616 ; 0x650 + 224c: 646e6120 strbtvs r6, [lr], #-288 + 2250: 74655320 strbtvc r5, [r5], #-800 + 2254: 676e6974 undefined + 2258: 616d5c73 smcvs 54723 + 225c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2260: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2264: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2268: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 226c: 775c7374 undefined + 2270: 6f632d73 svcvs 0x00632d73 + 2274: 6f72746e svcvs 0x0072746e + 2278: 65575c6c ldrbvs r5, [r7, #-3180] + 227c: 65687461 strbvs r7, [r8, #-1121]! + 2280: 74532072 ldrbvc r2, [r3], #-114 + 2284: 6f697461 svcvs 0x00697461 + 2288: 6f43206e svcvs 0x0043206e + 228c: 6f72746e svcvs 0x0072746e + 2290: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2294: 414d535c cmpmi sp, ip, asr r3 + 2298: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} + 229c: 66726574 undefined + 22a0: 5c656361 stclpl 3, cr6, [r5], #-388 + 22a4: 6d450000 stclvs 0, cr0, [r5] + 22a8: 64646562 strbtvs r6, [r4], #-1378 + 22ac: 79546465 ldmdbvc r4, {r0, r2, r5, r6, sl, sp, lr}^ + 22b0: 2e736570 mrccs 5, 3, r6, cr3, cr0, {3} + 22b4: 9e010068 cdpls 0, 0, cr0, cr1, cr8, {3} + 22b8: 04c0d79d strbeq sp, [r0], #1949 + 22bc: 4d524377 ldclmi 3, cr4, [r2, #-476] + 22c0: 6765525f undefined + 22c4: 00682e73 rsbeq r2, r8, r3, ror lr + 22c8: d78ff802 strle pc, [pc, r2, lsl #16] + 22cc: 028104c0 addeq r0, r1, #-1073741824 ; 0xc0000000 + 22d0: 5f435449 svcpl 0x00435449 + 22d4: 65746e49 ldrbvs r6, [r4, #-3657]! + 22d8: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 22dc: 00682e65 rsbeq r2, r8, r5, ror #28 + 22e0: d78ff802 strle pc, [pc, r2, lsl #16] + 22e4: 02c404c0 sbceq r0, r4, #-1073741824 ; 0xc0000000 + 22e8: 5f697353 svcpl 0x00697353 + 22ec: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 22f0: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 22f4: ba9196cc blt fe467e2c + 22f8: 7001c504 andvc ip, r1, r4, lsl #10 + 22fc: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 2300: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} + 2304: f2020068 vhadd.s8 q0, q1, q12 + 2308: 04c0d794 strbeq sp, [r0], #1940 + 230c: 724603be subvc r0, r6, #-134217726 ; 0xf8000002 + 2310: 65447165 strbvs r7, [r4, #-357] + 2314: 74655370 strbtvc r5, [r5], #-880 + 2318: 676e6974 undefined + 231c: 00682e73 rsbeq r2, r8, r3, ror lr + 2320: edfbf703 ldcl 7, cr15, [fp, #12]! + 2324: 4d3704ce cfldrsmi mvf0, [r7, #-824]! + 2328: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ + 232c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2330: 74707572 ldrbtvc r7, [r0], #-1394 + 2334: 0300682e movweq r6, #2094 ; 0x82e + 2338: c5d0bea8 ldrbgt fp, [r0, #3752] + 233c: 616d5d04 cmnvs sp, r4, lsl #26 + 2340: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} + 2344: adc20400 cfstrdge mvd0, [r2] + 2348: 8c04c49d cfstrshi mvf12, [r4], {157} + 234c: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} + 2350: 73656874 cmnvc r5, #7602176 ; 0x740000 + 2354: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 + 2358: 636e695f cmnvs lr, #1556480 ; 0x17c000 + 235c: 0500682e streq r6, [r0, #-2094] + 2360: cc8199fa stcgt 9, cr9, [r1], {250} + 2364: 4d01a004 stcmi 0, cr10, [r1, #-16] + 2368: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ + 236c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2370: 74707572 ldrbtvc r7, [r0], #-1394 + 2374: 0600632e streq r6, [r0], -lr, lsr #6 + 2378: cbe6d898 blgt ff9b85e0 + 237c: 4702e204 strmi lr, [r2, -r4, lsl #4] + 2380: 61626f6c cmnvs r2, ip, ror #30 + 2384: 6665446c strbtvs r4, [r5], -ip, ror #8 + 2388: 00682e73 rsbeq r2, r8, r3, ror lr + 238c: eea2ba07 cdp 10, 10, cr11, cr2, cr7, {0} + 2390: 019104c5 orrseq r0, r1, r5, asr #9 + 2394: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 2398: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 239c: 6d656761 stclvs 7, cr6, [r5, #-388]! + 23a0: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 23a4: a6070068 strge r0, [r7], -r8, rrx + 23a8: 04cbe6d8 strbeq lr, [fp], #1752 + 23ac: 725403d1 subsvc r0, r4, #1140850691 ; 0x44000003 + 23b0: 63736e61 cmnvs r3, #1552 ; 0x610 + 23b4: 65766965 ldrbvs r6, [r6, #-2405]! + 23b8: 6e6f4372 mcrvs 3, 3, r4, cr15, cr2, {3} + 23bc: 4d676966 stclmi 9, cr6, [r7, #-408]! + 23c0: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 23c4: 00682e74 rsbeq r2, r8, r4, ror lr + 23c8: eea0a207 cdp 2, 10, cr10, cr0, cr7, {0} + 23cc: 01e604c5 mvneq r0, r5, asr #9 + 23d0: 00000000 andeq r0, r0, r0 + 23d4: 000000d7 ldrdeq r0, [r0], -r7 + 23d8: 00920002 addseq r0, r2, r2 + 23dc: 01020000 tsteq r2, r0 + 23e0: 000a0500 andeq r0, sl, r0, lsl #10 + 23e4: 01010101 tsteq r1, r1, lsl #2 + 23e8: 00000000 andeq r0, r0, r0 + 23ec: 445c3a43 ldrbmi r3, [ip], #-2627 + 23f0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 23f4: 73746e65 cmnvc r4, #1616 ; 0x650 + 23f8: 646e6120 strbtvs r6, [lr], #-288 + 23fc: 74655320 strbtvc r5, [r5], #-800 + 2400: 676e6974 undefined + 2404: 616d5c73 smcvs 54723 + 2408: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 240c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2410: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2414: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2418: 775c7374 undefined + 241c: 6f632d73 svcvs 0x00632d73 + 2420: 6f72746e svcvs 0x0072746e + 2424: 65575c6c ldrbvs r5, [r7, #-3180] + 2428: 65687461 strbvs r7, [r8, #-1121]! + 242c: 74532072 ldrbvc r2, [r3], #-114 + 2430: 6f697461 svcvs 0x00697461 + 2434: 6f43206e svcvs 0x0043206e + 2438: 6f72746e svcvs 0x0072746e + 243c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2440: 414d535c cmpmi sp, ip, asr r3 + 2444: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 2448: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 244c: 6f535c73 svcvs 0x00535c73 + 2450: 65637275 strbvs r7, [r3, #-629]! + 2454: 4d00005c stcmi 0, cr0, [r0, #-368] + 2458: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ + 245c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2460: 74707572 ldrbtvc r7, [r0], #-1394 + 2464: 0100632e tsteq r0, lr, lsr #6 + 2468: cbe6d898 blgt ff9b86d0 + 246c: 0002e204 andeq lr, r2, r4, lsl #4 + 2470: b4020500 strlt r0, [r2], #-1280 + 2474: 0500402b streq r4, [r0, #-43] + 2478: 00dd0301 sbcseq r0, sp, r1, lsl #6 + 247c: 0303050e movweq r0, #13582 ; 0x350e + 2480: 02031801 andeq r1, r3, #65536 ; 0x10000 + 2484: 0316181d tsteq r6, #1900544 ; 0x1d0000 + 2488: 290c1d01 stmdbcs ip, {r0, r8, sl, fp, ip} + 248c: 3e051c12 mcrcc 12, 0, r1, cr5, cr2, {0} + 2490: 191f0528 ldmdbne pc, {r3, r5, r8, sl} + 2494: 12310305 eorsne r0, r1, #335544320 ; 0x14000000 + 2498: 05143e05 ldreq r3, [r4, #-3589] + 249c: 0305191f movweq r1, #22815 ; 0x591f + 24a0: 03360103 teqeq r6, #-1073741824 ; 0xc0000000 + 24a4: 051c1301 ldreq r1, [ip, #-769] + 24a8: 0d021a01 fstseq s2, [r2, #-4] + 24ac: 00010100 andeq r0, r1, r0, lsl #2 + 24b0: 00000127 andeq r0, r0, r7, lsr #2 + 24b4: 00920002 addseq r0, r2, r2 + 24b8: 01020000 tsteq r2, r0 + 24bc: 000a0500 andeq r0, sl, r0, lsl #10 + 24c0: 01010101 tsteq r1, r1, lsl #2 + 24c4: 00000000 andeq r0, r0, r0 + 24c8: 445c3a43 ldrbmi r3, [ip], #-2627 + 24cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 24d0: 73746e65 cmnvc r4, #1616 ; 0x650 + 24d4: 646e6120 strbtvs r6, [lr], #-288 + 24d8: 74655320 strbtvc r5, [r5], #-800 + 24dc: 676e6974 undefined + 24e0: 616d5c73 smcvs 54723 + 24e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 24e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 24ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 24f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 24f4: 775c7374 undefined + 24f8: 6f632d73 svcvs 0x00632d73 + 24fc: 6f72746e svcvs 0x0072746e + 2500: 65575c6c ldrbvs r5, [r7, #-3180] + 2504: 65687461 strbvs r7, [r8, #-1121]! + 2508: 74532072 ldrbvc r2, [r3], #-114 + 250c: 6f697461 svcvs 0x00697461 + 2510: 6f43206e svcvs 0x0043206e + 2514: 6f72746e svcvs 0x0072746e + 2518: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 251c: 414d535c cmpmi sp, ip, asr r3 + 2520: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 2524: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 2528: 6f535c73 svcvs 0x00535c73 + 252c: 65637275 strbvs r7, [r3, #-629]! + 2530: 4d00005c stcmi 0, cr0, [r0, #-368] + 2534: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ + 2538: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 253c: 74707572 ldrbtvc r7, [r0], #-1394 + 2540: 0100632e tsteq r0, lr, lsr #6 + 2544: cbe6d898 blgt ff9b87ac + 2548: 0002e204 andeq lr, r2, r4, lsl #4 + 254c: 44020500 strmi r0, [r2], #-1280 + 2550: 0500402c streq r4, [r0, #-44] + 2554: 01a10301 undefined instruction 0x01a10301 + 2558: 1103050e tstne r3, lr, lsl #10 + 255c: 05201015 streq r1, [r0, #-21]! + 2560: 08052005 stmdaeq r5, {r0, r2, sp} + 2564: 1505052c strne r0, [r5, #-1324] + 2568: 0b051524 bleq 147a00 + 256c: 0203216c andeq r2, r3, #27 ; 0x1b + 2570: 0103151d tsteq r3, sp, lsl r5 + 2574: 2701031d smladcs r1, sp, r3, r0 + 2578: 1f1d0103 svcne 0x001d0103 + 257c: 15131303 ldrne r1, [r3, #-771] + 2580: 151d0203 ldrne r0, [sp, #-515] + 2584: 15200d05 strne r0, [r0, #-3333]! + 2588: 03200b05 teqeq r0, #5120 ; 0x1400 + 258c: 0303220d movweq r2, #12813 ; 0x320d + 2590: 0103151d tsteq r3, sp, lsl r5 + 2594: 0308051d movweq r0, #34077 ; 0x851d + 2598: 05051d06 streq r1, [r5, #-3334] + 259c: 08052525 stmdaeq r5, {r0, r2, r5, r8, sl, sp} + 25a0: 1a050512 bne 1439f0 + 25a4: 2007051a andcs r0, r7, sl, lsl r5 + 25a8: 02030905 andeq r0, r3, #81920 ; 0x14000 + 25ac: 240b0b40 strcs r0, [fp], #-2880 + 25b0: 0308051c movweq r0, #34076 ; 0x851c + 25b4: 05052206 streq r2, [r5, #-518] + 25b8: 08051517 stmdaeq r5, {r0, r1, r2, r4, r8, sl, ip} + 25bc: 1a050521 bne 143a48 + 25c0: 05200805 streq r0, [r0, #-2053]! + 25c4: 08051f05 stmdaeq r5, {r0, r2, r8, r9, sl, fp, ip} + 25c8: 1a050525 bne 143a64 + 25cc: 0c160305 ldceq 3, cr0, [r6], {5} + 25d0: 050e0203 streq r0, [lr, #-515] + 25d4: 12021a01 andne r1, r2, #4096 ; 0x1000 + 25d8: 00010100 andeq r0, r1, r0, lsl #2 + 25dc: 00000209 andeq r0, r0, r9, lsl #4 + 25e0: 02030002 andeq r0, r3, #2 ; 0x2 + 25e4: 01010000 tsteq r1, r0 + 25e8: 000a0500 andeq r0, sl, r0, lsl #10 + 25ec: 01010101 tsteq r1, r1, lsl #2 + 25f0: 00000000 andeq r0, r0, r0 + 25f4: 445c3a43 ldrbmi r3, [ip], #-2627 + 25f8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 25fc: 73746e65 cmnvc r4, #1616 ; 0x650 + 2600: 646e6120 strbtvs r6, [lr], #-288 + 2604: 74655320 strbtvc r5, [r5], #-800 + 2608: 676e6974 undefined + 260c: 616d5c73 smcvs 54723 + 2610: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2614: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2618: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 261c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2620: 775c7374 undefined + 2624: 6f632d73 svcvs 0x00632d73 + 2628: 6f72746e svcvs 0x0072746e + 262c: 65575c6c ldrbvs r5, [r7, #-3180] + 2630: 65687461 strbvs r7, [r8, #-1121]! + 2634: 74532072 ldrbvc r2, [r3], #-114 + 2638: 6f697461 svcvs 0x00697461 + 263c: 6f43206e svcvs 0x0043206e + 2640: 6f72746e svcvs 0x0072746e + 2644: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2648: 4d4c505c stclmi 0, cr5, [ip, #-368] + 264c: 746e495c strbtvc r4, [lr], #-2396 + 2650: 61667265 cmnvs r6, r5, ror #4 + 2654: 005c6563 subseq r6, ip, r3, ror #10 + 2658: 445c3a43 ldrbmi r3, [ip], #-2627 + 265c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2660: 73746e65 cmnvc r4, #1616 ; 0x650 + 2664: 646e6120 strbtvs r6, [lr], #-288 + 2668: 74655320 strbtvc r5, [r5], #-800 + 266c: 676e6974 undefined + 2670: 616d5c73 smcvs 54723 + 2674: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2678: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 267c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2680: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2684: 775c7374 undefined + 2688: 6f632d73 svcvs 0x00632d73 + 268c: 6f72746e svcvs 0x0072746e + 2690: 65575c6c ldrbvs r5, [r7, #-3180] + 2694: 65687461 strbvs r7, [r8, #-1121]! + 2698: 74532072 ldrbvc r2, [r3], #-114 + 269c: 6f697461 svcvs 0x00697461 + 26a0: 6f43206e svcvs 0x0043206e + 26a4: 6f72746e svcvs 0x0072746e + 26a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 26ac: 4d4c505c stclmi 0, cr5, [ip, #-368] + 26b0: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 26b4: 65746e49 ldrbvs r6, [r4, #-3657]! + 26b8: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 26bc: 43005c65 movwmi r5, #3173 ; 0xc65 + 26c0: 6f445c3a svcvs 0x00445c3a + 26c4: 656d7563 strbvs r7, [sp, #-1379]! + 26c8: 2073746e rsbscs r7, r3, lr, ror #8 + 26cc: 20646e61 rsbcs r6, r4, r1, ror #28 + 26d0: 74746553 ldrbtvc r6, [r4], #-1363 + 26d4: 73676e69 cmnvc r7, #1680 ; 0x690 + 26d8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 26dc: 61726976 cmnvs r2, r6, ror r9 + 26e0: 20794d5c rsbscs r4, r9, ip, asr sp + 26e4: 75636f44 strbvc r6, [r3, #-3908]! + 26e8: 746e656d strbtvc r6, [lr], #-1389 + 26ec: 73775c73 cmnvc r7, #29440 ; 0x7300 + 26f0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 26f4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 26f8: 6165575c cmnvs r5, ip, asr r7 + 26fc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2700: 61745320 cmnvs r4, r0, lsr #6 + 2704: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2708: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 270c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2710: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2714: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 2718: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 271c: 435c6563 cmpmi ip, #415236096 ; 0x18c00000 + 2720: 6f6d6d6f svcvs 0x006d6d6f + 2724: 79535c6e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, fp, ip, lr}^ + 2728: 00005c73 andeq r5, r0, r3, ror ip + 272c: 65626d45 strbvs r6, [r2, #-3397]! + 2730: 64656464 strbtvs r6, [r5], #-1124 + 2734: 65707954 ldrbvs r7, [r0, #-2388]! + 2738: 00682e73 rsbeq r2, r8, r3, ror lr + 273c: d79d9e01 ldrle r9, [sp, r1, lsl #28] + 2740: 507704c0 rsbspl r0, r7, r0, asr #9 + 2744: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 2748: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 274c: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 2750: a6010068 strge r0, [r1], -r8, rrx + 2754: 04c5d0be strbeq sp, [r5], #190 + 2758: 726f502e rsbvc r5, pc, #46 ; 0x2e + 275c: 6e6f4374 mcrvs 3, 3, r4, cr15, cr4, {3} + 2760: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} + 2764: f7010068 undefined instruction 0xf7010068 + 2768: 04ceedfb strbeq lr, [lr], #3579 + 276c: 5f465243 svcpl 0x00465243 + 2770: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 2774: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} + 2778: fbf70100 blx ffdc2b82 + 277c: 3204ceed andcc ip, r4, #3792 ; 0xed0 + 2780: 5f4d5243 svcpl 0x004d5243 + 2784: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 2788: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 278c: c0d78ff8 ldrshgt r8, [r7], #248 + 2790: 47028104 strmi r8, [r2, -r4, lsl #2] + 2794: 5f4f4950 svcpl 0x004f4950 + 2798: 65746e49 ldrbvs r6, [r4, #-3657]! + 279c: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 27a0: 00682e65 rsbeq r2, r8, r5, ror #28 + 27a4: d78ff802 strle pc, [pc, r2, lsl #16] + 27a8: 069e04c0 ldreq r0, [lr], r0, asr #9 + 27ac: 74616c50 strbtvc r6, [r1], #-3152 + 27b0: 6d726f66 ldclvs 15, cr6, [r2, #-408]! + 27b4: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 27b8: c0d794f2 ldrshgt r9, [r7], #66 + 27bc: 5303be04 movwpl fp, #15876 ; 0x3e04 + 27c0: 525f6973 subspl r6, pc, #1884160 ; 0x1cc000 + 27c4: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} + 27c8: cc020068 stcgt 0, cr0, [r2], {104} + 27cc: 04ba9196 ldrteq r9, [sl], #406 + 27d0: 6c5001c5 ldfvse f0, [r0], {197} + 27d4: 6f667461 svcvs 0x00667461 + 27d8: 6e496d72 mcrvs 13, 2, r6, cr9, cr2, {3} + 27dc: 632e7469 teqvs lr, #1761607680 ; 0x69000000 + 27e0: 8ad40300 bhi ff5033e8 + 27e4: 6004c789 andvs ip, r4, r9, lsl #15 + 27e8: 00000000 andeq r0, r0, r0 + 27ec: 000000d4 ldrdeq r0, [r0], -r4 + 27f0: 00920002 addseq r0, r2, r2 + 27f4: 01020000 tsteq r2, r0 + 27f8: 000a0500 andeq r0, sl, r0, lsl #10 + 27fc: 01010101 tsteq r1, r1, lsl #2 + 2800: 00000000 andeq r0, r0, r0 + 2804: 445c3a43 ldrbmi r3, [ip], #-2627 + 2808: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 280c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2810: 646e6120 strbtvs r6, [lr], #-288 + 2814: 74655320 strbtvc r5, [r5], #-800 + 2818: 676e6974 undefined + 281c: 616d5c73 smcvs 54723 + 2820: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2824: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2828: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 282c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2830: 775c7374 undefined + 2834: 6f632d73 svcvs 0x00632d73 + 2838: 6f72746e svcvs 0x0072746e + 283c: 65575c6c ldrbvs r5, [r7, #-3180] + 2840: 65687461 strbvs r7, [r8, #-1121]! + 2844: 74532072 ldrbvc r2, [r3], #-114 + 2848: 6f697461 svcvs 0x00697461 + 284c: 6f43206e svcvs 0x0043206e + 2850: 6f72746e svcvs 0x0072746e + 2854: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2858: 4d4c505c stclmi 0, cr5, [ip, #-368] + 285c: 756f535c strbvc r5, [pc, #-860]! ; 2508 <__USR_stack_size+0x1d08> + 2860: 5c656372 stclpl 3, cr6, [r5], #-456 + 2864: 6d6d6f43 stclvs 15, cr6, [sp, #-268]! + 2868: 535c6e6f cmppl ip, #1776 ; 0x6f0 + 286c: 005c7379 subseq r7, ip, r9, ror r3 + 2870: 616c5000 cmnvs ip, r0 + 2874: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 + 2878: 696e496d stmdbvs lr!, {r0, r2, r3, r5, r6, r8, fp, lr}^ + 287c: 00632e74 rsbeq r2, r3, r4, ror lr + 2880: 898ad401 stmibhi sl, {r0, sl, ip, lr, pc} + 2884: 006004c7 rsbeq r0, r0, r7, asr #9 + 2888: a4020500 strge r0, [r2], #-1280 + 288c: 0500403c streq r4, [r0, #-60] + 2890: 0e1a0301 cdpeq 3, 1, cr0, cr10, cr1, {0} + 2894: 050b0305 streq r0, [fp, #-773] + 2898: 0e220301 cdpeq 3, 2, cr0, cr2, cr1, {0} + 289c: 240b0305 strcs r0, [fp], #-773 + 28a0: 1a111020 bne 446928 + 28a4: 10101510 andsne r1, r0, r0, lsl r5 + 28a8: 1a101010 bne 4068f0 + 28ac: 1f101015 svcne 0x00101015 + 28b0: 47030105 strmi r0, [r3, -r5, lsl #2] + 28b4: 03030514 movweq r0, #13588 ; 0x3514 + 28b8: 01050e36 tsteq r5, r6, lsr lr + 28bc: 020e0103 andeq r0, lr, #-1073741824 ; 0xc0000000 + 28c0: 01010003 tsteq r1, r3 + 28c4: 00000480 andeq r0, r0, r0, lsl #9 + 28c8: 047a0002 ldrbteq r0, [sl], #-2 + 28cc: 01010000 tsteq r1, r0 + 28d0: 000a0500 andeq r0, sl, r0, lsl #10 + 28d4: 01010101 tsteq r1, r1, lsl #2 + 28d8: 00000000 andeq r0, r0, r0 + 28dc: 445c3a43 ldrbmi r3, [ip], #-2627 + 28e0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 28e4: 73746e65 cmnvc r4, #1616 ; 0x650 + 28e8: 646e6120 strbtvs r6, [lr], #-288 + 28ec: 74655320 strbtvc r5, [r5], #-800 + 28f0: 676e6974 undefined + 28f4: 616d5c73 smcvs 54723 + 28f8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 28fc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2900: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2904: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2908: 775c7374 undefined + 290c: 6f632d73 svcvs 0x00632d73 + 2910: 6f72746e svcvs 0x0072746e + 2914: 65575c6c ldrbvs r5, [r7, #-3180] + 2918: 65687461 strbvs r7, [r8, #-1121]! + 291c: 74532072 ldrbvc r2, [r3], #-114 + 2920: 6f697461 svcvs 0x00697461 + 2924: 6f43206e svcvs 0x0043206e + 2928: 6f72746e svcvs 0x0072746e + 292c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2930: 4d4c505c stclmi 0, cr5, [ip, #-368] + 2934: 746e495c strbtvc r4, [lr], #-2396 + 2938: 61667265 cmnvs r6, r5, ror #4 + 293c: 005c6563 subseq r6, ip, r3, ror #10 + 2940: 445c3a43 ldrbmi r3, [ip], #-2627 + 2944: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2948: 73746e65 cmnvc r4, #1616 ; 0x650 + 294c: 646e6120 strbtvs r6, [lr], #-288 + 2950: 74655320 strbtvc r5, [r5], #-800 + 2954: 676e6974 undefined + 2958: 616d5c73 smcvs 54723 + 295c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2960: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2964: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2968: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 296c: 775c7374 undefined + 2970: 6f632d73 svcvs 0x00632d73 + 2974: 6f72746e svcvs 0x0072746e + 2978: 65575c6c ldrbvs r5, [r7, #-3180] + 297c: 65687461 strbvs r7, [r8, #-1121]! + 2980: 74532072 ldrbvc r2, [r3], #-114 + 2984: 6f697461 svcvs 0x00697461 + 2988: 6f43206e svcvs 0x0043206e + 298c: 6f72746e svcvs 0x0072746e + 2990: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2994: 414d535c cmpmi sp, ip, asr r3 + 2998: 6f435c43 svcvs 0x00435c43 + 299c: 6769666e strbvs r6, [r9, -lr, ror #12]! + 29a0: 5c657275 sfmpl f7, 2, [r5], #-468 + 29a4: 5c3a4300 ldcpl 3, cr4, [sl] + 29a8: 75636f44 strbvc r6, [r3, #-3908]! + 29ac: 746e656d strbtvc r6, [lr], #-1389 + 29b0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 29b4: 65532064 ldrbvs r2, [r3, #-100] + 29b8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 29bc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 29c0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 29c4: 4d5c6172 ldfmie f6, [ip, #-456] + 29c8: 6f442079 svcvs 0x00442079 + 29cc: 656d7563 strbvs r7, [sp, #-1379]! + 29d0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 29d4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 29d8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 29dc: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 29e0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 29e4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 29e8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 29ec: 43206e6f teqmi r0, #1776 ; 0x6f0 + 29f0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 29f4: 656c6c6f strbvs r6, [ip, #-3183]! + 29f8: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 29fc: 445c4341 ldrbmi r4, [ip], #-833 + 2a00: 65766972 ldrbvs r6, [r6, #-2418]! + 2a04: 435c7372 cmpmi ip, #-939524095 ; 0xc8000001 + 2a08: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 2a0c: 65727567 ldrbvs r7, [r2, #-1383]! + 2a10: 3a43005c bcc 10c2b88 + 2a14: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 2a18: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2a1c: 61207374 teqvs r0, r4, ror r3 + 2a20: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 2a24: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 2a28: 5c73676e ldclpl 7, cr6, [r3], #-440 + 2a2c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2a30: 5c617269 sfmpl f7, 2, [r1], #-420 + 2a34: 4420794d strtmi r7, [r0], #-2381 + 2a38: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2a3c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2a40: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2a44: 746e6f63 strbtvc r6, [lr], #-3939 + 2a48: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 2a4c: 74616557 strbtvc r6, [r1], #-1367 + 2a50: 20726568 rsbscs r6, r2, r8, ror #10 + 2a54: 74617453 strbtvc r7, [r1], #-1107 + 2a58: 206e6f69 rsbcs r6, lr, r9, ror #30 + 2a5c: 746e6f43 strbtvc r6, [lr], #-3907 + 2a60: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2a64: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 2a68: 5c43414d stfple f4, [r3], {77} + 2a6c: 76697244 strbtvc r7, [r9], -r4, asr #4 + 2a70: 5c737265 lfmpl f7, 2, [r3], #-404 + 2a74: 65746e49 ldrbvs r6, [r4, #-3657]! + 2a78: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 2a7c: 43005c65 movwmi r5, #3173 ; 0xc65 + 2a80: 6f445c3a svcvs 0x00445c3a + 2a84: 656d7563 strbvs r7, [sp, #-1379]! + 2a88: 2073746e rsbscs r7, r3, lr, ror #8 + 2a8c: 20646e61 rsbcs r6, r4, r1, ror #28 + 2a90: 74746553 ldrbtvc r6, [r4], #-1363 + 2a94: 73676e69 cmnvc r7, #1680 ; 0x690 + 2a98: 6c616d5c stclvs 13, cr6, [r1], #-368 + 2a9c: 61726976 cmnvs r2, r6, ror r9 + 2aa0: 20794d5c rsbscs r4, r9, ip, asr sp + 2aa4: 75636f44 strbvc r6, [r3, #-3908]! + 2aa8: 746e656d strbtvc r6, [lr], #-1389 + 2aac: 73775c73 cmnvc r7, #29440 ; 0x7300 + 2ab0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 2ab4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2ab8: 6165575c cmnvs r5, ip, asr r7 + 2abc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2ac0: 61745320 cmnvs r4, r0, lsr #6 + 2ac4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2ac8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2acc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2ad0: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2ad4: 43414d53 movtmi r4, #7507 ; 0x1d53 + 2ad8: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 2adc: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 2ae0: 746e495c strbtvc r4, [lr], #-2396 + 2ae4: 61667265 cmnvs r6, r5, ror #4 + 2ae8: 675c6563 ldrbvs r6, [ip, -r3, ror #10] + 2aec: 5c726468 cfldrdpl mvd6, [r2], #-416 + 2af0: 5c3a4300 ldcpl 3, cr4, [sl] + 2af4: 75636f44 strbvc r6, [r3, #-3908]! + 2af8: 746e656d strbtvc r6, [lr], #-1389 + 2afc: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2b00: 65532064 ldrbvs r2, [r3, #-100] + 2b04: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2b08: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2b0c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2b10: 4d5c6172 ldfmie f6, [ip, #-456] + 2b14: 6f442079 svcvs 0x00442079 + 2b18: 656d7563 strbvs r7, [sp, #-1379]! + 2b1c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2b20: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2b24: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2b28: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2b2c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2b30: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2b34: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2b38: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2b3c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2b40: 656c6c6f strbvs r6, [ip, #-3183]! + 2b44: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 2b48: 445c4341 ldrbmi r4, [ip], #-833 + 2b4c: 65766972 ldrbvs r6, [r6, #-2418]! + 2b50: 4c5c7372 mrrcmi 3, 7, r7, ip, cr2 + 2b54: 6e496269 cdpvs 2, 4, cr6, cr9, cr9, {3} + 2b58: 66726574 undefined + 2b5c: 5c656361 stclpl 3, cr6, [r5], #-388 + 2b60: 5c3a4300 ldcpl 3, cr4, [sl] + 2b64: 75636f44 strbvc r6, [r3, #-3908]! + 2b68: 746e656d strbtvc r6, [lr], #-1389 + 2b6c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2b70: 65532064 ldrbvs r2, [r3, #-100] + 2b74: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2b78: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2b7c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2b80: 4d5c6172 ldfmie f6, [ip, #-456] + 2b84: 6f442079 svcvs 0x00442079 + 2b88: 656d7563 strbvs r7, [sp, #-1379]! + 2b8c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2b90: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2b94: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2b98: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2b9c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2ba0: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2ba4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2ba8: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2bac: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2bb0: 656c6c6f strbvs r6, [ip, #-3183]! + 2bb4: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 2bb8: 495c4341 ldmdbmi ip, {r0, r6, r8, r9, lr}^ + 2bbc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2bc0: 65636166 strbvs r6, [r3, #-358]! + 2bc4: 3a43005c bcc 10c2d3c + 2bc8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 2bcc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2bd0: 61207374 teqvs r0, r4, ror r3 + 2bd4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 2bd8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 2bdc: 5c73676e ldclpl 7, cr6, [r3], #-440 + 2be0: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2be4: 5c617269 sfmpl f7, 2, [r1], #-420 + 2be8: 4420794d strtmi r7, [r0], #-2381 + 2bec: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2bf0: 73746e65 cmnvc r4, #1616 ; 0x650 + 2bf4: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2bf8: 746e6f63 strbtvc r6, [lr], #-3939 + 2bfc: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 2c00: 74616557 strbtvc r6, [r1], #-1367 + 2c04: 20726568 rsbscs r6, r2, r8, ror #10 + 2c08: 74617453 strbtvc r7, [r1], #-1107 + 2c0c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 2c10: 746e6f43 strbtvc r6, [lr], #-3907 + 2c14: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2c18: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 2c1c: 5c43414d stfple f4, [r3], {77} + 2c20: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 2c24: 005c6563 subseq r6, ip, r3, ror #10 + 2c28: 626d4500 rsbvs r4, sp, #0 ; 0x0 + 2c2c: 65646465 strbvs r6, [r4, #-1125]! + 2c30: 70795464 rsbsvc r5, r9, r4, ror #8 + 2c34: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 2c38: 9d9e0100 ldflss f0, [lr] + 2c3c: 7704c0d7 undefined + 2c40: 6974706f ldmdbvs r4!, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ + 2c44: 5f736e6f svcpl 0x00736e6f + 2c48: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 2c4c: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} + 2c50: 8e8e0200 cdphi 2, 8, cr0, cr14, cr0, {0} + 2c54: 1f04c1d5 svcne 0x0004c1d5 + 2c58: 72616f62 rsbvc r6, r1, #392 ; 0x188 + 2c5c: 6f635f64 svcvs 0x00635f64 + 2c60: 6769666e strbvs r6, [r9, -lr, ror #12]! + 2c64: 0300682e movweq r6, #2094 ; 0x82e + 2c68: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 2c6c: 65443d04 strbvs r3, [r4, #-3332] + 2c70: 2e79616c rpwcsez f6, f1, #4.0 + 2c74: a8040068 stmdage r4, {r3, r5, r6} + 2c78: 04c5d0be strbeq sp, [r5], #190 + 2c7c: 65724619 ldrbvs r4, [r2, #-1561]! + 2c80: 70654471 rsbvc r4, r5, r1, ror r4 + 2c84: 74746553 ldrbtvc r6, [r4], #-1363 + 2c88: 73676e69 cmnvc r7, #1680 ; 0x690 + 2c8c: 0400682e streq r6, [r0], #-2094 + 2c90: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 2c94: 616d3704 cmnvs sp, r4, lsl #14 + 2c98: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} + 2c9c: adc20500 cfstr64ge mvdx0, [r2] + 2ca0: 8c04c49d cfstrshi mvf12, [r4], {157} + 2ca4: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} + 2ca8: 73656874 cmnvc r5, #7602176 ; 0x740000 + 2cac: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 + 2cb0: 636e695f cmnvs lr, #1556480 ; 0x17c000 + 2cb4: 0600682e streq r6, [r0], -lr, lsr #16 + 2cb8: cc8199fa stcgt 9, cr9, [r1], {250} + 2cbc: 4701a004 strmi sl, [r1, -r4] + 2cc0: 61626f6c cmnvs r2, ip, ror #30 + 2cc4: 6665446c strbtvs r4, [r5], -ip, ror #8 + 2cc8: 00682e73 rsbeq r2, r8, r3, ror lr + 2ccc: eea2ba07 cdp 10, 10, cr11, cr2, cr7, {0} + 2cd0: 019104c5 orrseq r0, r1, r5, asr #9 + 2cd4: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 2cd8: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 2cdc: 6d656761 stclvs 7, cr6, [r5, #-388]! + 2ce0: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 2ce4: a6070068 strge r0, [r7], -r8, rrx + 2ce8: 04cbe6d8 strbeq lr, [fp], #1752 + 2cec: 725403d1 subsvc r0, r4, #1140850691 ; 0x44000003 + 2cf0: 63736e61 cmnvs r3, #1552 ; 0x610 + 2cf4: 65766965 ldrbvs r6, [r6, #-2405]! + 2cf8: 6e6f4372 mcrvs 3, 3, r4, cr15, cr2, {3} + 2cfc: 4d676966 stclmi 9, cr6, [r7, #-408]! + 2d00: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 2d04: 00682e74 rsbeq r2, r8, r4, ror lr + 2d08: eea0a207 cdp 2, 10, cr10, cr0, cr7, {0} + 2d0c: 01e604c5 mvneq r0, r5, asr #9 + 2d10: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 2d14: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 2d18: 6d656761 stclvs 7, cr6, [r5, #-388]! + 2d1c: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 2d20: a6080063 strge r0, [r8], -r3, rrx + 2d24: 04cbe6d8 strbeq lr, [fp], #1752 + 2d28: 61520694 ldrbvs r0, [r2, #-100] + 2d2c: 4d6f6964 stclmi 9, cr6, [pc, #-400]! + 2d30: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 2d34: 61725774 cmnvs r2, r4, ror r7 + 2d38: 72657070 rsbvc r7, r5, #112 ; 0x70 + 2d3c: 0800682e stmdaeq r0, {r1, r2, r3, r5, fp, sp, lr} + 2d40: cbe6d8a6 blgt ff9b8fe0 + 2d44: 0001e604 andeq lr, r1, r4, lsl #12 + 2d48: 000000b2 strheq r0, [r0], -r2 + 2d4c: 008c0002 addeq r0, ip, r2 + 2d50: 01020000 tsteq r2, r0 + 2d54: 000a0500 andeq r0, sl, r0, lsl #10 + 2d58: 01010101 tsteq r1, r1, lsl #2 + 2d5c: 00000000 andeq r0, r0, r0 + 2d60: 445c3a43 ldrbmi r3, [ip], #-2627 + 2d64: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2d68: 73746e65 cmnvc r4, #1616 ; 0x650 + 2d6c: 646e6120 strbtvs r6, [lr], #-288 + 2d70: 74655320 strbtvc r5, [r5], #-800 + 2d74: 676e6974 undefined + 2d78: 616d5c73 smcvs 54723 + 2d7c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2d80: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2d84: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2d88: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2d8c: 775c7374 undefined + 2d90: 6f632d73 svcvs 0x00632d73 + 2d94: 6f72746e svcvs 0x0072746e + 2d98: 65575c6c ldrbvs r5, [r7, #-3180] + 2d9c: 65687461 strbvs r7, [r8, #-1121]! + 2da0: 74532072 ldrbvc r2, [r3], #-114 + 2da4: 6f697461 svcvs 0x00697461 + 2da8: 6f43206e svcvs 0x0043206e + 2dac: 6f72746e svcvs 0x0072746e + 2db0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2db4: 414d535c cmpmi sp, ip, asr r3 + 2db8: 6f535c43 svcvs 0x00535c43 + 2dbc: 65637275 strbvs r7, [r3, #-629]! + 2dc0: 5200005c andpl r0, r0, #92 ; 0x5c + 2dc4: 6f696461 svcvs 0x00696461 + 2dc8: 616e614d cmnvs lr, sp, asr #2 + 2dcc: 656d6567 strbvs r6, [sp, #-1383]! + 2dd0: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 2dd4: d8a60100 stmiale r6!, {r8} + 2dd8: 9404cbe6 strls ip, [r4], #-3046 + 2ddc: 05000006 streq r0, [r0, #-6] + 2de0: 40237802 eormi r7, r3, r2, lsl #16 + 2de4: 032d0500 teqeq sp, #0 ; 0x0 + 2de8: 050e01b9 streq r0, [lr, #-441] + 2dec: 05051003 streq r1, [r5, #-3] + 2df0: 1a07052e bne 1c42b0 + 2df4: 05030105 streq r0, [r3, #-261] + 2df8: 0003021d andeq r0, r3, sp, lsl r2 + 2dfc: 00000101 andeq r0, r0, r1, lsl #2 + 2e00: 000000b1 strheq r0, [r0], -r1 + 2e04: 008c0002 addeq r0, ip, r2 + 2e08: 01020000 tsteq r2, r0 + 2e0c: 000a0500 andeq r0, sl, r0, lsl #10 + 2e10: 01010101 tsteq r1, r1, lsl #2 + 2e14: 00000000 andeq r0, r0, r0 + 2e18: 445c3a43 ldrbmi r3, [ip], #-2627 + 2e1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2e20: 73746e65 cmnvc r4, #1616 ; 0x650 + 2e24: 646e6120 strbtvs r6, [lr], #-288 + 2e28: 74655320 strbtvc r5, [r5], #-800 + 2e2c: 676e6974 undefined + 2e30: 616d5c73 smcvs 54723 + 2e34: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2e38: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2e3c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2e40: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2e44: 775c7374 undefined + 2e48: 6f632d73 svcvs 0x00632d73 + 2e4c: 6f72746e svcvs 0x0072746e + 2e50: 65575c6c ldrbvs r5, [r7, #-3180] + 2e54: 65687461 strbvs r7, [r8, #-1121]! + 2e58: 74532072 ldrbvc r2, [r3], #-114 + 2e5c: 6f697461 svcvs 0x00697461 + 2e60: 6f43206e svcvs 0x0043206e + 2e64: 6f72746e svcvs 0x0072746e + 2e68: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2e6c: 414d535c cmpmi sp, ip, asr r3 + 2e70: 6f535c43 svcvs 0x00535c43 + 2e74: 65637275 strbvs r7, [r3, #-629]! + 2e78: 5200005c andpl r0, r0, #92 ; 0x5c + 2e7c: 6f696461 svcvs 0x00696461 + 2e80: 616e614d cmnvs lr, sp, asr #2 + 2e84: 656d6567 strbvs r6, [sp, #-1383]! + 2e88: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 2e8c: d8a60100 stmiale r6!, {r8} + 2e90: 9404cbe6 strls ip, [r4], #-3046 + 2e94: 05000006 streq r0, [r0, #-6] + 2e98: 40239a02 eormi r9, r3, r2, lsl #20 + 2e9c: 03440500 movteq r0, #17664 ; 0x4500 + 2ea0: 050e01d9 streq r0, [lr, #-473] + 2ea4: 05051003 streq r1, [r5, #-3] + 2ea8: 101f1c2e andsne r1, pc, lr, lsr #24 + 2eac: 2a030510 bcs c42f4 + 2eb0: 01000302 tsteq r0, r2, lsl #6 + 2eb4: 00000001 andeq r0, r0, r1 + 2eb8: 000000b1 strheq r0, [r0], -r1 + 2ebc: 008c0002 addeq r0, ip, r2 + 2ec0: 01020000 tsteq r2, r0 + 2ec4: 000a0500 andeq r0, sl, r0, lsl #10 + 2ec8: 01010101 tsteq r1, r1, lsl #2 + 2ecc: 00000000 andeq r0, r0, r0 + 2ed0: 445c3a43 ldrbmi r3, [ip], #-2627 + 2ed4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2ed8: 73746e65 cmnvc r4, #1616 ; 0x650 + 2edc: 646e6120 strbtvs r6, [lr], #-288 + 2ee0: 74655320 strbtvc r5, [r5], #-800 + 2ee4: 676e6974 undefined + 2ee8: 616d5c73 smcvs 54723 + 2eec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2ef0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2ef4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2ef8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2efc: 775c7374 undefined + 2f00: 6f632d73 svcvs 0x00632d73 + 2f04: 6f72746e svcvs 0x0072746e + 2f08: 65575c6c ldrbvs r5, [r7, #-3180] + 2f0c: 65687461 strbvs r7, [r8, #-1121]! + 2f10: 74532072 ldrbvc r2, [r3], #-114 + 2f14: 6f697461 svcvs 0x00697461 + 2f18: 6f43206e svcvs 0x0043206e + 2f1c: 6f72746e svcvs 0x0072746e + 2f20: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2f24: 414d535c cmpmi sp, ip, asr r3 + 2f28: 6f535c43 svcvs 0x00535c43 + 2f2c: 65637275 strbvs r7, [r3, #-629]! + 2f30: 5200005c andpl r0, r0, #92 ; 0x5c + 2f34: 6f696461 svcvs 0x00696461 + 2f38: 616e614d cmnvs lr, sp, asr #2 + 2f3c: 656d6567 strbvs r6, [sp, #-1383]! + 2f40: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 2f44: d8a60100 stmiale r6!, {r8} + 2f48: 9404cbe6 strls ip, [r4], #-3046 + 2f4c: 05000006 streq r0, [r0, #-6] + 2f50: 4023ce02 eormi ip, r3, r2, lsl #28 + 2f54: 032c0500 teqeq ip, #0 ; 0x0 + 2f58: 050e01ed streq r0, [lr, #-493] + 2f5c: 05050b03 streq r0, [r5, #-2819] + 2f60: 0510152e ldreq r1, [r0, #-1326] + 2f64: 2c010303 stccs 3, cr0, [r1], {3} + 2f68: 01000202 tsteq r0, r2, lsl #4 + 2f6c: 00000001 andeq r0, r0, r1 + 2f70: 000000dc ldrdeq r0, [r0], -ip + 2f74: 008c0002 addeq r0, ip, r2 + 2f78: 01020000 tsteq r2, r0 + 2f7c: 000a0500 andeq r0, sl, r0, lsl #10 + 2f80: 01010101 tsteq r1, r1, lsl #2 + 2f84: 00000000 andeq r0, r0, r0 + 2f88: 445c3a43 ldrbmi r3, [ip], #-2627 + 2f8c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2f90: 73746e65 cmnvc r4, #1616 ; 0x650 + 2f94: 646e6120 strbtvs r6, [lr], #-288 + 2f98: 74655320 strbtvc r5, [r5], #-800 + 2f9c: 676e6974 undefined + 2fa0: 616d5c73 smcvs 54723 + 2fa4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2fa8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2fac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2fb0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2fb4: 775c7374 undefined + 2fb8: 6f632d73 svcvs 0x00632d73 + 2fbc: 6f72746e svcvs 0x0072746e + 2fc0: 65575c6c ldrbvs r5, [r7, #-3180] + 2fc4: 65687461 strbvs r7, [r8, #-1121]! + 2fc8: 74532072 ldrbvc r2, [r3], #-114 + 2fcc: 6f697461 svcvs 0x00697461 + 2fd0: 6f43206e svcvs 0x0043206e + 2fd4: 6f72746e svcvs 0x0072746e + 2fd8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2fdc: 414d535c cmpmi sp, ip, asr r3 + 2fe0: 6f535c43 svcvs 0x00535c43 + 2fe4: 65637275 strbvs r7, [r3, #-629]! + 2fe8: 5200005c andpl r0, r0, #92 ; 0x5c + 2fec: 6f696461 svcvs 0x00696461 + 2ff0: 616e614d cmnvs lr, sp, asr #2 + 2ff4: 656d6567 strbvs r6, [sp, #-1383]! + 2ff8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 2ffc: d8a60100 stmiale r6!, {r8} + 3000: 9404cbe6 strls ip, [r4], #-3046 + 3004: 05000006 streq r0, [r0, #-6] + 3008: 4023f402 eormi pc, r3, r2, lsl #8 + 300c: 03270500 teqeq r7, #0 ; 0x0 + 3010: 050e0280 streq r0, [lr, #-640] + 3014: 15050c03 strne r0, [r5, #-3075] + 3018: 0b05050a bleq 144448 + 301c: 032d051a teqeq sp, #109051904 ; 0x6800000 + 3020: 05050f7e streq r0, [r5, #-3966] + 3024: 2d05100b stccs 0, cr1, [r5, #-44] + 3028: 050f7e03 streq r7, [pc, #-3587] ; 222d <__USR_stack_size+0x1a2d> + 302c: 05100b05 ldreq r0, [r0, #-2821] + 3030: 0f7e032d svceq 0x007e032d + 3034: 100b0505 andne r0, fp, r5, lsl #10 + 3038: 7e032d05 cdpvc 13, 0, cr2, cr3, cr5, {0} + 303c: 0e03050f cfsh32eq mvfx0, mvfx3, #15 + 3040: 0b0f1010 bleq 3c7088 + 3044: 0b0f1910 bleq 3c948c + 3048: 0215150b andseq r1, r5, #46137344 ; 0x2c00000 + 304c: 01010004 tsteq r1, r4 + 3050: 000000b8 strheq r0, [r0], -r8 + 3054: 008c0002 addeq r0, ip, r2 + 3058: 01020000 tsteq r2, r0 + 305c: 000a0500 andeq r0, sl, r0, lsl #10 + 3060: 01010101 tsteq r1, r1, lsl #2 + 3064: 00000000 andeq r0, r0, r0 + 3068: 445c3a43 ldrbmi r3, [ip], #-2627 + 306c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3070: 73746e65 cmnvc r4, #1616 ; 0x650 + 3074: 646e6120 strbtvs r6, [lr], #-288 + 3078: 74655320 strbtvc r5, [r5], #-800 + 307c: 676e6974 undefined + 3080: 616d5c73 smcvs 54723 + 3084: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3088: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 308c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3090: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3094: 775c7374 undefined + 3098: 6f632d73 svcvs 0x00632d73 + 309c: 6f72746e svcvs 0x0072746e + 30a0: 65575c6c ldrbvs r5, [r7, #-3180] + 30a4: 65687461 strbvs r7, [r8, #-1121]! + 30a8: 74532072 ldrbvc r2, [r3], #-114 + 30ac: 6f697461 svcvs 0x00697461 + 30b0: 6f43206e svcvs 0x0043206e + 30b4: 6f72746e svcvs 0x0072746e + 30b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 30bc: 414d535c cmpmi sp, ip, asr r3 + 30c0: 6f535c43 svcvs 0x00535c43 + 30c4: 65637275 strbvs r7, [r3, #-629]! + 30c8: 5200005c andpl r0, r0, #92 ; 0x5c + 30cc: 6f696461 svcvs 0x00696461 + 30d0: 616e614d cmnvs lr, sp, asr #2 + 30d4: 656d6567 strbvs r6, [sp, #-1383]! + 30d8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 30dc: d8a60100 stmiale r6!, {r8} + 30e0: 9404cbe6 strls ip, [r4], #-3046 + 30e4: 05000006 streq r0, [r0, #-6] + 30e8: 40242802 eormi r2, r4, r2, lsl #16 + 30ec: 03260500 teqeq r6, #0 ; 0x0 + 30f0: 050e0297 streq r0, [lr, #-663] + 30f4: 05051103 streq r1, [r5, #-259] + 30f8: 2407052e strcs r0, [r7], #-1326 + 30fc: 06030305 streq r0, [r3], -r5, lsl #6 + 3100: 1b050531 blne 1445cc + 3104: 02170305 andseq r0, r7, #335544320 ; 0x14000000 + 3108: 01010003 tsteq r1, r3 + 310c: 000000f1 strdeq r0, [r0], -r1 + 3110: 008c0002 addeq r0, ip, r2 + 3114: 01020000 tsteq r2, r0 + 3118: 000a0500 andeq r0, sl, r0, lsl #10 + 311c: 01010101 tsteq r1, r1, lsl #2 + 3120: 00000000 andeq r0, r0, r0 + 3124: 445c3a43 ldrbmi r3, [ip], #-2627 + 3128: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 312c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3130: 646e6120 strbtvs r6, [lr], #-288 + 3134: 74655320 strbtvc r5, [r5], #-800 + 3138: 676e6974 undefined + 313c: 616d5c73 smcvs 54723 + 3140: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3144: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3148: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 314c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3150: 775c7374 undefined + 3154: 6f632d73 svcvs 0x00632d73 + 3158: 6f72746e svcvs 0x0072746e + 315c: 65575c6c ldrbvs r5, [r7, #-3180] + 3160: 65687461 strbvs r7, [r8, #-1121]! + 3164: 74532072 ldrbvc r2, [r3], #-114 + 3168: 6f697461 svcvs 0x00697461 + 316c: 6f43206e svcvs 0x0043206e + 3170: 6f72746e svcvs 0x0072746e + 3174: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3178: 414d535c cmpmi sp, ip, asr r3 + 317c: 6f535c43 svcvs 0x00535c43 + 3180: 65637275 strbvs r7, [r3, #-629]! + 3184: 5200005c andpl r0, r0, #92 ; 0x5c + 3188: 6f696461 svcvs 0x00696461 + 318c: 616e614d cmnvs lr, sp, asr #2 + 3190: 656d6567 strbvs r6, [sp, #-1383]! + 3194: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 3198: d8a60100 stmiale r6!, {r8} + 319c: 9404cbe6 strls ip, [r4], #-3046 + 31a0: 05000006 streq r0, [r0, #-6] + 31a4: 40246002 eormi r6, r4, r2 + 31a8: 032a0500 teqeq sl, #0 ; 0x0 + 31ac: 050e02ba streq r0, [lr, #-698] + 31b0: 050b1103 streq r1, [fp, #-259] + 31b4: 0b145909 bleq 5195e0 + 31b8: 19191e11 ldmdbne r9, {r0, r4, r9, sl, fp, ip} + 31bc: 01030b14 tsteq r3, r4, lsl fp + 31c0: 330b0531 movwcc r0, #46385 ; 0xb531 + 31c4: 09050b1e stmdbeq r5, {r1, r2, r3, r4, r8, r9, fp} + 31c8: 05270503 streq r0, [r7, #-1283]! + 31cc: 0b19290b bleq 64d600 + 31d0: 1e2e0d05 cdpne 13, 2, cr0, cr14, cr5, {0} + 31d4: 0512200b ldreq r2, [r2, #-11] + 31d8: 14151a0f ldrne r1, [r5], #-2575 + 31dc: 19191e0b ldmdbne r9, {r0, r1, r3, r9, sl, fp, ip} + 31e0: 252c0b14 strcs r0, [ip, #-2836]! + 31e4: 06030905 streq r0, [r3], -r5, lsl #18 + 31e8: 04032913 streq r2, [r3], #-2323 + 31ec: 1803050e stmdane r3, {r1, r2, r3, r8, sl} + 31f0: 0a840505 beq fe10460c + 31f4: 0b500a0a bleq 1405a24 + 31f8: 1603050b strne r0, [r3], -fp, lsl #10 + 31fc: 01001102 tsteq r0, r2, lsl #2 + 3200: 00000001 andeq r0, r0, r1 + 3204: 00000114 andeq r0, r0, r4, lsl r1 + 3208: 008c0002 addeq r0, ip, r2 + 320c: 01020000 tsteq r2, r0 + 3210: 000a0500 andeq r0, sl, r0, lsl #10 + 3214: 01010101 tsteq r1, r1, lsl #2 + 3218: 00000000 andeq r0, r0, r0 + 321c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3220: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3224: 73746e65 cmnvc r4, #1616 ; 0x650 + 3228: 646e6120 strbtvs r6, [lr], #-288 + 322c: 74655320 strbtvc r5, [r5], #-800 + 3230: 676e6974 undefined + 3234: 616d5c73 smcvs 54723 + 3238: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 323c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3240: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3244: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3248: 775c7374 undefined + 324c: 6f632d73 svcvs 0x00632d73 + 3250: 6f72746e svcvs 0x0072746e + 3254: 65575c6c ldrbvs r5, [r7, #-3180] + 3258: 65687461 strbvs r7, [r8, #-1121]! + 325c: 74532072 ldrbvc r2, [r3], #-114 + 3260: 6f697461 svcvs 0x00697461 + 3264: 6f43206e svcvs 0x0043206e + 3268: 6f72746e svcvs 0x0072746e + 326c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3270: 414d535c cmpmi sp, ip, asr r3 + 3274: 6f535c43 svcvs 0x00535c43 + 3278: 65637275 strbvs r7, [r3, #-629]! + 327c: 5200005c andpl r0, r0, #92 ; 0x5c + 3280: 6f696461 svcvs 0x00696461 + 3284: 616e614d cmnvs lr, sp, asr #2 + 3288: 656d6567 strbvs r6, [sp, #-1383]! + 328c: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 3290: d8a60100 stmiale r6!, {r8} + 3294: 9404cbe6 strls ip, [r4], #-3046 + 3298: 05000006 streq r0, [r0, #-6] + 329c: 4025c002 eormi ip, r5, r2 + 32a0: 032a0500 teqeq sl, #0 ; 0x0 + 32a4: 050e038e streq r0, [lr, #-910] + 32a8: 050b1103 streq r1, [fp, #-259] + 32ac: 0b146d09 bleq 51e6d8 + 32b0: 1e1e1511 mrcne 5, 0, r1, cr14, cr1, {0} + 32b4: 23191414 tstcs r9, #335544320 ; 0x14000000 + 32b8: 0b141419 bleq 508324 + 32bc: 05310103 ldreq r0, [r1, #-259]! + 32c0: 0b1e380b bleq 7912f4 + 32c4: 05030905 streq r0, [r3, #-2309] + 32c8: 290b0527 stmdbcs fp, {r0, r1, r2, r5, r8, sl} + 32cc: 0d050b19 vstreq d0, [r5, #-100] + 32d0: 1f0b1e24 svcne 0x000b1e24 + 32d4: 0f05132f svceq 0x0005132f + 32d8: 05590203 ldrbeq r0, [r9, #-515] + 32dc: 14151a11 ldrne r1, [r5], #-2577 + 32e0: 1e23100b cdpne 0, 2, cr1, cr3, cr11, {0} + 32e4: 28231914 stmdacs r3!, {r2, r4, r8, fp, ip} + 32e8: 0a1e7703 beq 7a0efc + 32ec: 240b1e0a strcs r1, [fp], #-3594 + 32f0: 14130303 ldrne r0, [r3], #-771 + 32f4: 0f050b19 svceq 0x00050b19 + 32f8: 1611052c ldrne r0, [r1], -ip, lsr #10 + 32fc: 03090530 movweq r0, #38192 ; 0x9530 + 3300: 0329130f teqeq r9, #1006632960 ; 0x3c000000 + 3304: 03050e05 movweq r0, #24069 ; 0x5e05 + 3308: 05180103 ldreq r0, [r8, #-259] + 330c: 0a0a8405 beq 2a4328 + 3310: 0b0b500a bleq 2d7340 + 3314: 02170305 andseq r0, r7, #335544320 ; 0x14000000 + 3318: 01010012 tsteq r1, r2, lsl r0 + 331c: 0000014f andeq r0, r0, pc, asr #2 + 3320: 00a90002 adceq r0, r9, r2 + 3324: 01020000 tsteq r2, r0 + 3328: 000a0500 andeq r0, sl, r0, lsl #10 + 332c: 01010101 tsteq r1, r1, lsl #2 + 3330: 00000000 andeq r0, r0, r0 + 3334: 445c3a43 ldrbmi r3, [ip], #-2627 + 3338: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 333c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3340: 646e6120 strbtvs r6, [lr], #-288 + 3344: 74655320 strbtvc r5, [r5], #-800 + 3348: 676e6974 undefined + 334c: 616d5c73 smcvs 54723 + 3350: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3354: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3358: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 335c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3360: 775c7374 undefined + 3364: 6f632d73 svcvs 0x00632d73 + 3368: 6f72746e svcvs 0x0072746e + 336c: 65575c6c ldrbvs r5, [r7, #-3180] + 3370: 65687461 strbvs r7, [r8, #-1121]! + 3374: 74532072 ldrbvc r2, [r3], #-114 + 3378: 6f697461 svcvs 0x00697461 + 337c: 6f43206e svcvs 0x0043206e + 3380: 6f72746e svcvs 0x0072746e + 3384: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3388: 414d535c cmpmi sp, ip, asr r3 + 338c: 6f535c43 svcvs 0x00535c43 + 3390: 65637275 strbvs r7, [r3, #-629]! + 3394: 5200005c andpl r0, r0, #92 ; 0x5c + 3398: 6f696461 svcvs 0x00696461 + 339c: 616e614d cmnvs lr, sp, asr #2 + 33a0: 656d6567 strbvs r6, [sp, #-1383]! + 33a4: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 33a8: d8a60100 stmiale r6!, {r8} + 33ac: 9404cbe6 strls ip, [r4], #-3046 + 33b0: 64615206 strbtvs r5, [r1], #-518 + 33b4: 6e4d6f69 cdpvs 15, 4, cr6, cr13, cr9, {3} + 33b8: 746e6d67 strbtvc r6, [lr], #-3431 + 33bc: 70617257 rsbvc r7, r1, r7, asr r2 + 33c0: 2e726570 mrccs 5, 3, r6, cr2, cr0, {3} + 33c4: a6010068 strge r0, [r1], -r8, rrx + 33c8: 04cbe6d8 strbeq lr, [fp], #1752 + 33cc: 000001e6 andeq r0, r0, r6, ror #3 + 33d0: 27c00205 strbcs r0, [r0, r5, lsl #4] + 33d4: 2a050040 bcs 1434dc + 33d8: 0e03fb03 fmacdeq d15, d3, d3 + 33dc: 0b120305 bleq 483ff8 + 33e0: 14540905 ldrbne r0, [r4], #-2309 + 33e4: 0b05120b bleq 147c18 + 33e8: 0502041f streq r0, [r2, #-1055] + 33ec: 7cb20303 ldcvc 3, cr0, [r2], #12 + 33f0: 0c0b0519 cfstr32eq mvfx0, [fp], {25} + 33f4: 1a0b3c2e bne 2d24b4 + 33f8: c6030104 strgt r0, [r3], -r4, lsl #2 + 33fc: 250d4503 strcs r4, [sp, #-1283] + 3400: 02030905 andeq r0, r3, #81920 ; 0x14000 + 3404: 290b0513 stmdbcs fp, {r0, r1, r4, r8, sl} + 3408: 0d050b1e vstreq d0, [r5, #-120] + 340c: 2a0b1e24 bcs 2caca4 + 3410: 83030105 movwhi r0, #12549 ; 0x3105 + 3414: 03051801 movweq r1, #22529 ; 0x5801 + 3418: 0505160d streq r1, [r5, #-1549] + 341c: 16080516 undefined + 3420: 0e160505 cfmul32eq mvfx0, mvfx6, mvfx5 + 3424: 051c0305 ldreq r0, [ip, #-773] + 3428: 7ee8030d cdpvc 3, 14, cr0, cr8, cr13, {0} + 342c: 120b3c19 andne r3, fp, #6400 ; 0x1900 + 3430: 151f0f05 ldrne r0, [pc, #-3845] ; 2533 <__USR_stack_size+0x1d33> + 3434: 02040b14 andeq r0, r4, #20480 ; 0x5000 + 3438: 98030305 stmdals r3, {r0, r2, r8, r9} + 343c: 0b050f7c bleq 147234 + 3440: 0b2d240c bleq b4c478 + 3444: 0501041a streq r0, [r1, #-1050] + 3448: 03e2030f mvneq r0, #1006632960 ; 0x3c000000 + 344c: 0b372a13 bleq dcdca0 + 3450: 07030905 streq r0, [r3, -r5, lsl #18] + 3454: 04032913 streq r2, [r3], #-2323 + 3458: 0303050e movweq r0, #13582 ; 0x350e + 345c: 05051801 streq r1, [r5, #-2049] + 3460: 0a0a0a84 beq 285e78 + 3464: 050b0b50 streq r0, [fp, #-2896] + 3468: 13021703 movwne r1, #9987 ; 0x2703 + 346c: 00010100 andeq r0, r1, r0, lsl #2 + 3470: 000000f6 strdeq r0, [r0], -r6 + 3474: 008c0002 addeq r0, ip, r2 + 3478: 01020000 tsteq r2, r0 + 347c: 000a0500 andeq r0, sl, r0, lsl #10 + 3480: 01010101 tsteq r1, r1, lsl #2 + 3484: 00000000 andeq r0, r0, r0 + 3488: 445c3a43 ldrbmi r3, [ip], #-2627 + 348c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3490: 73746e65 cmnvc r4, #1616 ; 0x650 + 3494: 646e6120 strbtvs r6, [lr], #-288 + 3498: 74655320 strbtvc r5, [r5], #-800 + 349c: 676e6974 undefined + 34a0: 616d5c73 smcvs 54723 + 34a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 34a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 34ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 34b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 34b4: 775c7374 undefined + 34b8: 6f632d73 svcvs 0x00632d73 + 34bc: 6f72746e svcvs 0x0072746e + 34c0: 65575c6c ldrbvs r5, [r7, #-3180] + 34c4: 65687461 strbvs r7, [r8, #-1121]! + 34c8: 74532072 ldrbvc r2, [r3], #-114 + 34cc: 6f697461 svcvs 0x00697461 + 34d0: 6f43206e svcvs 0x0043206e + 34d4: 6f72746e svcvs 0x0072746e + 34d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 34dc: 414d535c cmpmi sp, ip, asr r3 + 34e0: 6f535c43 svcvs 0x00535c43 + 34e4: 65637275 strbvs r7, [r3, #-629]! + 34e8: 5200005c andpl r0, r0, #92 ; 0x5c + 34ec: 6f696461 svcvs 0x00696461 + 34f0: 616e614d cmnvs lr, sp, asr #2 + 34f4: 656d6567 strbvs r6, [sp, #-1383]! + 34f8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 34fc: d8a60100 stmiale r6!, {r8} + 3500: 9404cbe6 strls ip, [r4], #-3046 + 3504: 05000006 streq r0, [r0, #-6] + 3508: 40297c02 eormi r7, r9, r2, lsl #24 + 350c: 032a0500 teqeq sl, #0 ; 0x0 + 3510: 050e04d1 streq r0, [lr, #-1233] + 3514: 050b1103 streq r1, [fp, #-259] + 3518: 0b144f09 bleq 517144 + 351c: 19282d11 stmdbne r8!, {r0, r4, r8, sl, fp, sp} + 3520: 3101030b tstcc r1, fp, lsl #6 + 3524: 1e290b05 fmuldne d0, d9, d5 + 3528: 030d050b movweq r0, #54539 ; 0xd50b + 352c: 0f059507 svceq 0x00059507 + 3530: 2a1d0203 bcs 743d44 + 3534: 70030d05 andvc r0, r3, r5, lsl #26 + 3538: 0a0b0a0f beq 2c5d7c + 353c: 1e0a0a0b fmacsne s0, s20, s22 + 3540: 0f052a0b svceq 0x00052a0b + 3544: 0b141513 bleq 508998 + 3548: 0514232d ldreq r2, [r4, #-813] + 354c: 130c0309 movwne r0, #49929 ; 0xc309 + 3550: 0e040329 cdpeq 3, 0, cr0, cr4, cr9, {1} + 3554: 01030305 tsteq r3, r5, lsl #6 + 3558: 84050518 strhi r0, [r5], #-1304 + 355c: 500a0a0a andpl r0, sl, sl, lsl #20 + 3560: 03050b0b movweq r0, #23307 ; 0x5b0b + 3564: 0012021d andseq r0, r2, sp, lsl r2 + 3568: 00000101 andeq r0, r0, r1, lsl #2 + 356c: 000000d4 ldrdeq r0, [r0], -r4 + 3570: 008c0002 addeq r0, ip, r2 + 3574: 01020000 tsteq r2, r0 + 3578: 000a0500 andeq r0, sl, r0, lsl #10 + 357c: 01010101 tsteq r1, r1, lsl #2 + 3580: 00000000 andeq r0, r0, r0 + 3584: 445c3a43 ldrbmi r3, [ip], #-2627 + 3588: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 358c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3590: 646e6120 strbtvs r6, [lr], #-288 + 3594: 74655320 strbtvc r5, [r5], #-800 + 3598: 676e6974 undefined + 359c: 616d5c73 smcvs 54723 + 35a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 35a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 35a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 35ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 35b0: 775c7374 undefined + 35b4: 6f632d73 svcvs 0x00632d73 + 35b8: 6f72746e svcvs 0x0072746e + 35bc: 65575c6c ldrbvs r5, [r7, #-3180] + 35c0: 65687461 strbvs r7, [r8, #-1121]! + 35c4: 74532072 ldrbvc r2, [r3], #-114 + 35c8: 6f697461 svcvs 0x00697461 + 35cc: 6f43206e svcvs 0x0043206e + 35d0: 6f72746e svcvs 0x0072746e + 35d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 35d8: 414d535c cmpmi sp, ip, asr r3 + 35dc: 6f535c43 svcvs 0x00535c43 + 35e0: 65637275 strbvs r7, [r3, #-629]! + 35e4: 5200005c andpl r0, r0, #92 ; 0x5c + 35e8: 6f696461 svcvs 0x00696461 + 35ec: 616e614d cmnvs lr, sp, asr #2 + 35f0: 656d6567 strbvs r6, [sp, #-1383]! + 35f4: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 35f8: d8a60100 stmiale r6!, {r8} + 35fc: 9404cbe6 strls ip, [r4], #-3046 + 3600: 05000006 streq r0, [r0, #-6] + 3604: 402aec02 eormi lr, sl, r2, lsl #24 + 3608: 03010500 movweq r0, #5376 ; 0x1500 + 360c: 050e05bd streq r0, [lr, #-1469] + 3610: 13030303 movwne r0, #13059 ; 0x3303 + 3614: 24250505 strtcs r0, [r5], #-1285 + 3618: 101b0705 andsne r0, fp, r5, lsl #14 + 361c: 05110505 ldreq r0, [r1, #-1285] + 3620: 1f0b2607 svcne 0x000b2607 + 3624: 16090515 undefined + 3628: 05101f10 ldreq r1, [r0, #-3856] + 362c: 1d010307 stcne 3, cr0, [r1, #-28] + 3630: 05160505 ldreq r0, [r6, #-1285] + 3634: 08055207 stmdaeq r5, {r0, r1, r2, r9, ip, lr} + 3638: 2105052b tstcs r5, fp, lsr #10 + 363c: 02250105 eoreq r0, r5, #1073741825 ; 0x40000001 + 3640: 01010007 tsteq r1, r7 + 3644: 000000bb strheq r0, [r0], -fp + 3648: 008c0002 addeq r0, ip, r2 + 364c: 01020000 tsteq r2, r0 + 3650: 000a0500 andeq r0, sl, r0, lsl #10 + 3654: 01010101 tsteq r1, r1, lsl #2 + 3658: 00000000 andeq r0, r0, r0 + 365c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3660: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3664: 73746e65 cmnvc r4, #1616 ; 0x650 + 3668: 646e6120 strbtvs r6, [lr], #-288 + 366c: 74655320 strbtvc r5, [r5], #-800 + 3670: 676e6974 undefined + 3674: 616d5c73 smcvs 54723 + 3678: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 367c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3680: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3684: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3688: 775c7374 undefined + 368c: 6f632d73 svcvs 0x00632d73 + 3690: 6f72746e svcvs 0x0072746e + 3694: 65575c6c ldrbvs r5, [r7, #-3180] + 3698: 65687461 strbvs r7, [r8, #-1121]! + 369c: 74532072 ldrbvc r2, [r3], #-114 + 36a0: 6f697461 svcvs 0x00697461 + 36a4: 6f43206e svcvs 0x0043206e + 36a8: 6f72746e svcvs 0x0072746e + 36ac: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 36b0: 414d535c cmpmi sp, ip, asr r3 + 36b4: 6f535c43 svcvs 0x00535c43 + 36b8: 65637275 strbvs r7, [r3, #-629]! + 36bc: 5200005c andpl r0, r0, #92 ; 0x5c + 36c0: 6f696461 svcvs 0x00696461 + 36c4: 616e614d cmnvs lr, sp, asr #2 + 36c8: 656d6567 strbvs r6, [sp, #-1383]! + 36cc: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 36d0: d8a60100 stmiale r6!, {r8} + 36d4: 9404cbe6 strls ip, [r4], #-3046 + 36d8: 05000006 streq r0, [r0, #-6] + 36dc: 402b8402 eormi r8, fp, r2, lsl #8 + 36e0: 03010500 movweq r0, #5376 ; 0x1500 + 36e4: 050e05f2 streq r0, [lr, #-1522] + 36e8: 050c1203 streq r1, [ip, #-515] + 36ec: 07051c05 streq r1, [r5, -r5, lsl #24] + 36f0: 05052216 streq r2, [r5, #-534] + 36f4: 03052011 movweq r2, #20497 ; 0x5011 + 36f8: 030f7403 movweq r7, #62467 ; 0xf403 + 36fc: 0402220a streq r2, [r2], #-522 + 3700: 00010100 andeq r0, r1, r0, lsl #2 + 3704: 0000051d andeq r0, r0, sp, lsl r5 + 3708: 05170002 ldreq r0, [r7, #-2] + 370c: 01010000 tsteq r1, r0 + 3710: 000a0500 andeq r0, sl, r0, lsl #10 + 3714: 01010101 tsteq r1, r1, lsl #2 + 3718: 00000000 andeq r0, r0, r0 + 371c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3720: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3724: 73746e65 cmnvc r4, #1616 ; 0x650 + 3728: 646e6120 strbtvs r6, [lr], #-288 + 372c: 74655320 strbtvc r5, [r5], #-800 + 3730: 676e6974 undefined + 3734: 616d5c73 smcvs 54723 + 3738: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 373c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3740: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3744: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3748: 775c7374 undefined + 374c: 6f632d73 svcvs 0x00632d73 + 3750: 6f72746e svcvs 0x0072746e + 3754: 65575c6c ldrbvs r5, [r7, #-3180] + 3758: 65687461 strbvs r7, [r8, #-1121]! + 375c: 74532072 ldrbvc r2, [r3], #-114 + 3760: 6f697461 svcvs 0x00697461 + 3764: 6f43206e svcvs 0x0043206e + 3768: 6f72746e svcvs 0x0072746e + 376c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3770: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3774: 746e495c strbtvc r4, [lr], #-2396 + 3778: 61667265 cmnvs r6, r5, ror #4 + 377c: 005c6563 subseq r6, ip, r3, ror #10 + 3780: 445c3a43 ldrbmi r3, [ip], #-2627 + 3784: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3788: 73746e65 cmnvc r4, #1616 ; 0x650 + 378c: 646e6120 strbtvs r6, [lr], #-288 + 3790: 74655320 strbtvc r5, [r5], #-800 + 3794: 676e6974 undefined + 3798: 616d5c73 smcvs 54723 + 379c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 37a0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 37a4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 37a8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 37ac: 775c7374 undefined + 37b0: 6f632d73 svcvs 0x00632d73 + 37b4: 6f72746e svcvs 0x0072746e + 37b8: 65575c6c ldrbvs r5, [r7, #-3180] + 37bc: 65687461 strbvs r7, [r8, #-1121]! + 37c0: 74532072 ldrbvc r2, [r3], #-114 + 37c4: 6f697461 svcvs 0x00697461 + 37c8: 6f43206e svcvs 0x0043206e + 37cc: 6f72746e svcvs 0x0072746e + 37d0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 37d4: 4d4c505c stclmi 0, cr5, [ip, #-368] + 37d8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 37dc: 65746e49 ldrbvs r6, [r4, #-3657]! + 37e0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 37e4: 43005c65 movwmi r5, #3173 ; 0xc65 + 37e8: 6f445c3a svcvs 0x00445c3a + 37ec: 656d7563 strbvs r7, [sp, #-1379]! + 37f0: 2073746e rsbscs r7, r3, lr, ror #8 + 37f4: 20646e61 rsbcs r6, r4, r1, ror #28 + 37f8: 74746553 ldrbtvc r6, [r4], #-1363 + 37fc: 73676e69 cmnvc r7, #1680 ; 0x690 + 3800: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3804: 61726976 cmnvs r2, r6, ror r9 + 3808: 20794d5c rsbscs r4, r9, ip, asr sp + 380c: 75636f44 strbvc r6, [r3, #-3908]! + 3810: 746e656d strbtvc r6, [lr], #-1389 + 3814: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3818: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 381c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3820: 6165575c cmnvs r5, ip, asr r7 + 3824: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3828: 61745320 cmnvs r4, r0, lsr #6 + 382c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3830: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 3834: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3838: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 383c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 3840: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} + 3844: 75676966 strbvc r6, [r7, #-2406]! + 3848: 005c6572 subseq r6, ip, r2, ror r5 + 384c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3850: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3854: 73746e65 cmnvc r4, #1616 ; 0x650 + 3858: 646e6120 strbtvs r6, [lr], #-288 + 385c: 74655320 strbtvc r5, [r5], #-800 + 3860: 676e6974 undefined + 3864: 616d5c73 smcvs 54723 + 3868: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 386c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3870: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3874: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3878: 775c7374 undefined + 387c: 6f632d73 svcvs 0x00632d73 + 3880: 6f72746e svcvs 0x0072746e + 3884: 65575c6c ldrbvs r5, [r7, #-3180] + 3888: 65687461 strbvs r7, [r8, #-1121]! + 388c: 74532072 ldrbvc r2, [r3], #-114 + 3890: 6f697461 svcvs 0x00697461 + 3894: 6f43206e svcvs 0x0043206e + 3898: 6f72746e svcvs 0x0072746e + 389c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 38a0: 414d535c cmpmi sp, ip, asr r3 + 38a4: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 38a8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 38ac: 6f435c73 svcvs 0x00435c73 + 38b0: 6769666e strbvs r6, [r9, -lr, ror #12]! + 38b4: 5c657275 sfmpl f7, 2, [r5], #-468 + 38b8: 5c3a4300 ldcpl 3, cr4, [sl] + 38bc: 75636f44 strbvc r6, [r3, #-3908]! + 38c0: 746e656d strbtvc r6, [lr], #-1389 + 38c4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 38c8: 65532064 ldrbvs r2, [r3, #-100] + 38cc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 38d0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 38d4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 38d8: 4d5c6172 ldfmie f6, [ip, #-456] + 38dc: 6f442079 svcvs 0x00442079 + 38e0: 656d7563 strbvs r7, [sp, #-1379]! + 38e4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 38e8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 38ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 38f0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 38f4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 38f8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 38fc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3900: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3904: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3908: 656c6c6f strbvs r6, [ip, #-3183]! + 390c: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 3910: 445c4341 ldrbmi r4, [ip], #-833 + 3914: 65766972 ldrbvs r6, [r6, #-2418]! + 3918: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 391c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 3920: 65636166 strbvs r6, [r3, #-358]! + 3924: 3a43005c bcc 10c3a9c + 3928: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 392c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3930: 61207374 teqvs r0, r4, ror r3 + 3934: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3938: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 393c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3940: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3944: 5c617269 sfmpl f7, 2, [r1], #-420 + 3948: 4420794d strtmi r7, [r0], #-2381 + 394c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3950: 73746e65 cmnvc r4, #1616 ; 0x650 + 3954: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3958: 746e6f63 strbtvc r6, [lr], #-3939 + 395c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3960: 74616557 strbtvc r6, [r1], #-1367 + 3964: 20726568 rsbscs r6, r2, r8, ror #10 + 3968: 74617453 strbtvc r7, [r1], #-1107 + 396c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3970: 746e6f43 strbtvc r6, [lr], #-3907 + 3974: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3978: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 397c: 5c43414d stfple f4, [r3], {77} + 3980: 76697244 strbtvc r7, [r9], -r4, asr #4 + 3984: 5c737265 lfmpl f7, 2, [r3], #-404 + 3988: 65746e49 ldrbvs r6, [r4, #-3657]! + 398c: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 3990: 68675c65 stmdavs r7!, {r0, r2, r5, r6, sl, fp, ip, lr}^ + 3994: 005c7264 subseq r7, ip, r4, ror #4 + 3998: 445c3a43 ldrbmi r3, [ip], #-2627 + 399c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 39a0: 73746e65 cmnvc r4, #1616 ; 0x650 + 39a4: 646e6120 strbtvs r6, [lr], #-288 + 39a8: 74655320 strbtvc r5, [r5], #-800 + 39ac: 676e6974 undefined + 39b0: 616d5c73 smcvs 54723 + 39b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 39b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 39bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 39c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 39c4: 775c7374 undefined + 39c8: 6f632d73 svcvs 0x00632d73 + 39cc: 6f72746e svcvs 0x0072746e + 39d0: 65575c6c ldrbvs r5, [r7, #-3180] + 39d4: 65687461 strbvs r7, [r8, #-1121]! + 39d8: 74532072 ldrbvc r2, [r3], #-114 + 39dc: 6f697461 svcvs 0x00697461 + 39e0: 6f43206e svcvs 0x0043206e + 39e4: 6f72746e svcvs 0x0072746e + 39e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 39ec: 414d535c cmpmi sp, ip, asr r3 + 39f0: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 39f4: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 39f8: 694c5c73 stmdbvs ip, {r0, r1, r4, r5, r6, sl, fp, ip, lr}^ + 39fc: 746e4962 strbtvc r4, [lr], #-2402 + 3a00: 61667265 cmnvs r6, r5, ror #4 + 3a04: 005c6563 subseq r6, ip, r3, ror #10 + 3a08: 445c3a43 ldrbmi r3, [ip], #-2627 + 3a0c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3a10: 73746e65 cmnvc r4, #1616 ; 0x650 + 3a14: 646e6120 strbtvs r6, [lr], #-288 + 3a18: 74655320 strbtvc r5, [r5], #-800 + 3a1c: 676e6974 undefined + 3a20: 616d5c73 smcvs 54723 + 3a24: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3a28: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3a2c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3a30: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3a34: 775c7374 undefined + 3a38: 6f632d73 svcvs 0x00632d73 + 3a3c: 6f72746e svcvs 0x0072746e + 3a40: 65575c6c ldrbvs r5, [r7, #-3180] + 3a44: 65687461 strbvs r7, [r8, #-1121]! + 3a48: 74532072 ldrbvc r2, [r3], #-114 + 3a4c: 6f697461 svcvs 0x00697461 + 3a50: 6f43206e svcvs 0x0043206e + 3a54: 6f72746e svcvs 0x0072746e + 3a58: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3a5c: 414d535c cmpmi sp, ip, asr r3 + 3a60: 6e495c43 cdpvs 12, 4, cr5, cr9, cr3, {2} + 3a64: 66726574 undefined + 3a68: 5c656361 stclpl 3, cr6, [r5], #-388 + 3a6c: 5c3a4300 ldcpl 3, cr4, [sl] + 3a70: 75636f44 strbvc r6, [r3, #-3908]! + 3a74: 746e656d strbtvc r6, [lr], #-1389 + 3a78: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3a7c: 65532064 ldrbvs r2, [r3, #-100] + 3a80: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3a84: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3a88: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3a8c: 4d5c6172 ldfmie f6, [ip, #-456] + 3a90: 6f442079 svcvs 0x00442079 + 3a94: 656d7563 strbvs r7, [sp, #-1379]! + 3a98: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3a9c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 3aa0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3aa4: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3aa8: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3aac: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 3ab0: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3ab4: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3ab8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3abc: 656c6c6f strbvs r6, [ip, #-3183]! + 3ac0: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 3ac4: 535c4341 cmppl ip, #67108865 ; 0x4000001 + 3ac8: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 + 3acc: 00005c65 andeq r5, r0, r5, ror #24 + 3ad0: 65626d45 strbvs r6, [r2, #-3397]! + 3ad4: 64656464 strbtvs r6, [r5], #-1124 + 3ad8: 65707954 ldrbvs r7, [r0, #-2388]! + 3adc: 00682e73 rsbeq r2, r8, r3, ror lr + 3ae0: d79d9e01 ldrle r9, [sp, r1, lsl #28] + 3ae4: 437704c0 cmnmi r7, #-1073741824 ; 0xc0000000 + 3ae8: 525f4d52 subspl r4, pc, #5248 ; 0x1480 + 3aec: 2e736765 cdpcs 7, 7, cr6, cr3, cr5, {3} + 3af0: f8020068 undefined instruction 0xf8020068 + 3af4: 04c0d78f strbeq sp, [r0], #1935 + 3af8: 6c500281 lfmvs f0, 2, [r0], {129} + 3afc: 6f667461 svcvs 0x00667461 + 3b00: 682e6d72 stmdavs lr!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} + 3b04: 94f20200 ldrbtls r0, [r2], #512 + 3b08: be04c0d7 mcrlt 0, 0, ip, cr4, cr7, {6} + 3b0c: 69735303 ldmdbvs r3!, {r0, r1, r8, r9, ip, lr}^ + 3b10: 6765525f undefined + 3b14: 00682e73 rsbeq r2, r8, r3, ror lr + 3b18: 9196cc02 orrsls ip, r6, r2, lsl #24 + 3b1c: 01c504ba strheq r0, [r5, #74] + 3b20: 6974706f ldmdbvs r4!, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ + 3b24: 5f736e6f svcpl 0x00736e6f + 3b28: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 3b2c: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} + 3b30: 8e8e0300 cdphi 3, 8, cr0, cr14, cr0, {0} + 3b34: 1f04c1d5 svcne 0x0004c1d5 + 3b38: 72616f62 rsbvc r6, r1, #392 ; 0x188 + 3b3c: 6f635f64 svcvs 0x00635f64 + 3b40: 6769666e strbvs r6, [r9, -lr, ror #12]! + 3b44: 0400682e streq r6, [r0], #-2094 + 3b48: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 3b4c: 65443d04 strbvs r3, [r4, #-3332] + 3b50: 2e79616c rpwcsez f6, f1, #4.0 + 3b54: a8050068 stmdage r5, {r3, r5, r6} + 3b58: 04c5d0be strbeq sp, [r5], #190 + 3b5c: 65724619 ldrbvs r4, [r2, #-1561]! + 3b60: 70654471 rsbvc r4, r5, r1, ror r4 + 3b64: 74746553 ldrbtvc r6, [r4], #-1363 + 3b68: 73676e69 cmnvc r7, #1680 ; 0x690 + 3b6c: 0500682e streq r6, [r0, #-2094] + 3b70: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 3b74: 616d3704 cmnvs sp, r4, lsl #14 + 3b78: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} + 3b7c: adc20600 stclge 6, cr0, [r2] + 3b80: 8c04c49d cfstrshi mvf12, [r4], {157} + 3b84: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} + 3b88: 73656874 cmnvc r5, #7602176 ; 0x740000 + 3b8c: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 + 3b90: 636e695f cmnvs lr, #1556480 ; 0x17c000 + 3b94: 0700682e streq r6, [r0, -lr, lsr #16] + 3b98: cc8199fa stcgt 9, cr9, [r1], {250} + 3b9c: 7201a004 andvc sl, r1, #4 ; 0x4 + 3ba0: 695f6669 ldmdbvs pc, {r0, r3, r5, r6, r9, sl, sp, lr}^ + 3ba4: 682e636e stmdavs lr!, {r1, r2, r3, r5, r6, r8, r9, sp, lr} + 3ba8: ca820700 bgt fe0857b0 + 3bac: 9204c5ff andls ip, r4, #1069547520 ; 0x3fc00000 + 3bb0: 6f6c4701 svcvs 0x006c4701 + 3bb4: 446c6162 strbtmi r6, [ip], #-354 + 3bb8: 2e736665 cdpcs 6, 7, cr6, cr3, cr5, {3} + 3bbc: ba080068 blt 203d64 + 3bc0: 04c5eea2 strbeq lr, [r5], #3746 + 3bc4: 61520191 ldrbvs r0, [r2, #-17] + 3bc8: 4d6f6964 stclmi 9, cr6, [pc, #-400]! + 3bcc: 67616e61 strbvs r6, [r1, -r1, ror #28]! + 3bd0: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} + 3bd4: 00682e74 rsbeq r2, r8, r4, ror lr + 3bd8: e6d8a608 ldrb sl, [r8], r8, lsl #12 + 3bdc: 03d104cb bicseq r0, r1, #-889192448 ; 0xcb000000 + 3be0: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} + 3be4: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ + 3be8: 43726576 cmnmi r2, #494927872 ; 0x1d800000 + 3bec: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 3bf0: 676e4d67 strbvs r4, [lr, -r7, ror #26]! + 3bf4: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 3bf8: a2080068 andge r0, r8, #104 ; 0x68 + 3bfc: 04c5eea0 strbeq lr, [r5], #3744 + 3c00: 725401e6 subsvc r0, r4, #-2147483591 ; 0x80000039 + 3c04: 63736e61 cmnvs r3, #1552 ; 0x610 + 3c08: 65766965 ldrbvs r6, [r6, #-2405]! + 3c0c: 6e6f4372 mcrvs 3, 3, r4, cr15, cr2, {3} + 3c10: 4d676966 stclmi 9, cr6, [r7, #-408]! + 3c14: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 3c18: 00632e74 rsbeq r2, r3, r4, ror lr + 3c1c: efbae409 svc 0x00bae409 + 3c20: 038804ce orreq r0, r8, #-838860800 ; 0xce000000 + 3c24: 00000000 andeq r0, r0, r0 + 3c28: 000000af andeq r0, r0, pc, lsr #1 + 3c2c: 00940002 addseq r0, r4, r2 + 3c30: 01020000 tsteq r2, r0 + 3c34: 000a0500 andeq r0, sl, r0, lsl #10 + 3c38: 01010101 tsteq r1, r1, lsl #2 + 3c3c: 00000000 andeq r0, r0, r0 + 3c40: 445c3a43 ldrbmi r3, [ip], #-2627 + 3c44: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3c48: 73746e65 cmnvc r4, #1616 ; 0x650 + 3c4c: 646e6120 strbtvs r6, [lr], #-288 + 3c50: 74655320 strbtvc r5, [r5], #-800 + 3c54: 676e6974 undefined + 3c58: 616d5c73 smcvs 54723 + 3c5c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3c60: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3c64: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3c68: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3c6c: 775c7374 undefined + 3c70: 6f632d73 svcvs 0x00632d73 + 3c74: 6f72746e svcvs 0x0072746e + 3c78: 65575c6c ldrbvs r5, [r7, #-3180] + 3c7c: 65687461 strbvs r7, [r8, #-1121]! + 3c80: 74532072 ldrbvc r2, [r3], #-114 + 3c84: 6f697461 svcvs 0x00697461 + 3c88: 6f43206e svcvs 0x0043206e + 3c8c: 6f72746e svcvs 0x0072746e + 3c90: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3c94: 414d535c cmpmi sp, ip, asr r3 + 3c98: 6f535c43 svcvs 0x00535c43 + 3c9c: 65637275 strbvs r7, [r3, #-629]! + 3ca0: 5400005c strpl r0, [r0], #-92 + 3ca4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 3ca8: 76696563 strbtvc r6, [r9], -r3, ror #10 + 3cac: 6f437265 svcvs 0x00437265 + 3cb0: 6769666e strbvs r6, [r9, -lr, ror #12]! + 3cb4: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 3cb8: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 3cbc: bae40100 blt ff9040c4 + 3cc0: 8804ceef stmdahi r4, {r0, r1, r2, r3, r5, r6, r7, r9, sl, fp, lr, pc} + 3cc4: 05000003 streq r0, [r0, #-3] + 3cc8: 4038c802 eorsmi ip, r8, r2, lsl #16 + 3ccc: 03010500 movweq r0, #5376 ; 0x1500 + 3cd0: 050e029b streq r0, [lr, #-667] + 3cd4: 04020b03 streq r0, [r2], #-2819 + 3cd8: 00010100 andeq r0, r1, r0, lsl #2 + 3cdc: 000000f2 strdeq r0, [r0], -r2 + 3ce0: 00940002 addseq r0, r4, r2 + 3ce4: 01020000 tsteq r2, r0 + 3ce8: 000a0500 andeq r0, sl, r0, lsl #10 + 3cec: 01010101 tsteq r1, r1, lsl #2 + 3cf0: 00000000 andeq r0, r0, r0 + 3cf4: 445c3a43 ldrbmi r3, [ip], #-2627 + 3cf8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3cfc: 73746e65 cmnvc r4, #1616 ; 0x650 + 3d00: 646e6120 strbtvs r6, [lr], #-288 + 3d04: 74655320 strbtvc r5, [r5], #-800 + 3d08: 676e6974 undefined + 3d0c: 616d5c73 smcvs 54723 + 3d10: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3d14: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3d18: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3d1c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3d20: 775c7374 undefined + 3d24: 6f632d73 svcvs 0x00632d73 + 3d28: 6f72746e svcvs 0x0072746e + 3d2c: 65575c6c ldrbvs r5, [r7, #-3180] + 3d30: 65687461 strbvs r7, [r8, #-1121]! + 3d34: 74532072 ldrbvc r2, [r3], #-114 + 3d38: 6f697461 svcvs 0x00697461 + 3d3c: 6f43206e svcvs 0x0043206e + 3d40: 6f72746e svcvs 0x0072746e + 3d44: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3d48: 414d535c cmpmi sp, ip, asr r3 + 3d4c: 6f535c43 svcvs 0x00535c43 + 3d50: 65637275 strbvs r7, [r3, #-629]! + 3d54: 5400005c strpl r0, [r0], #-92 + 3d58: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 3d5c: 76696563 strbtvc r6, [r9], -r3, ror #10 + 3d60: 6f437265 svcvs 0x00437265 + 3d64: 6769666e strbvs r6, [r9, -lr, ror #12]! + 3d68: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 3d6c: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 3d70: bae40100 blt ff904178 + 3d74: 8804ceef stmdahi r4, {r0, r1, r2, r3, r5, r6, r7, r9, sl, fp, lr, pc} + 3d78: 05000003 streq r0, [r0, #-3] + 3d7c: 4038d002 eorsmi sp, r8, r2 + 3d80: 03010500 movweq r0, #5376 ; 0x1500 + 3d84: 050e02ba streq r0, [lr, #-698] + 3d88: 050c1803 streq r1, [ip, #-2051] + 3d8c: 2c102905 ldccs 9, cr2, [r0], {5} + 3d90: 49030105 stmdbmi r3, {r0, r2, r8} + 3d94: 0b03050a bleq c51c4 + 3d98: 33030505 movwcc r0, #13573 ; 0x3505 + 3d9c: 03030513 movweq r0, #13587 ; 0x3513 + 3da0: 35030a4a strcc r0, [r3, #-2634] + 3da4: 0e010318 mcreq 3, 0, r0, cr1, cr8, {0} + 3da8: 10030105 andne r0, r3, r5, lsl #2 + 3dac: 0d03050e cfstr32eq mvfx0, [r3, #-56] + 3db0: 1e190516 mrcne 5, 0, r0, cr9, cr6, {0} + 3db4: 051e0e05 ldreq r0, [lr, #-3589] + 3db8: 10152003 andsne r2, r5, r3 + 3dbc: 15151a15 ldrne r1, [r5, #-2581] + 3dc0: 1a1a151a bne 689230 + 3dc4: 1e5b031b mrcne 3, 2, r0, cr11, cr11, {0} + 3dc8: 24030105 strcs r0, [r3], #-261 + 3dcc: 0016020e andseq r0, r6, lr, lsl #4 + 3dd0: 00000101 andeq r0, r0, r1, lsl #2 + 3dd4: 000002f3 strdeq r0, [r0], -r3 + 3dd8: 02ed0002 rsceq r0, sp, #2 ; 0x2 + 3ddc: 01010000 tsteq r1, r0 + 3de0: 000a0500 andeq r0, sl, r0, lsl #10 + 3de4: 01010101 tsteq r1, r1, lsl #2 + 3de8: 00000000 andeq r0, r0, r0 + 3dec: 445c3a43 ldrbmi r3, [ip], #-2627 + 3df0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3df4: 73746e65 cmnvc r4, #1616 ; 0x650 + 3df8: 646e6120 strbtvs r6, [lr], #-288 + 3dfc: 74655320 strbtvc r5, [r5], #-800 + 3e00: 676e6974 undefined + 3e04: 616d5c73 smcvs 54723 + 3e08: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3e0c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3e10: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3e14: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3e18: 775c7374 undefined + 3e1c: 6f632d73 svcvs 0x00632d73 + 3e20: 6f72746e svcvs 0x0072746e + 3e24: 65575c6c ldrbvs r5, [r7, #-3180] + 3e28: 65687461 strbvs r7, [r8, #-1121]! + 3e2c: 74532072 ldrbvc r2, [r3], #-114 + 3e30: 6f697461 svcvs 0x00697461 + 3e34: 6f43206e svcvs 0x0043206e + 3e38: 6f72746e svcvs 0x0072746e + 3e3c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3e40: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3e44: 746e495c strbtvc r4, [lr], #-2396 + 3e48: 61667265 cmnvs r6, r5, ror #4 + 3e4c: 005c6563 subseq r6, ip, r3, ror #10 + 3e50: 445c3a43 ldrbmi r3, [ip], #-2627 + 3e54: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3e58: 73746e65 cmnvc r4, #1616 ; 0x650 + 3e5c: 646e6120 strbtvs r6, [lr], #-288 + 3e60: 74655320 strbtvc r5, [r5], #-800 + 3e64: 676e6974 undefined + 3e68: 616d5c73 smcvs 54723 + 3e6c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3e70: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3e74: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3e78: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3e7c: 775c7374 undefined + 3e80: 6f632d73 svcvs 0x00632d73 + 3e84: 6f72746e svcvs 0x0072746e + 3e88: 65575c6c ldrbvs r5, [r7, #-3180] + 3e8c: 65687461 strbvs r7, [r8, #-1121]! + 3e90: 74532072 ldrbvc r2, [r3], #-114 + 3e94: 6f697461 svcvs 0x00697461 + 3e98: 6f43206e svcvs 0x0043206e + 3e9c: 6f72746e svcvs 0x0072746e + 3ea0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3ea4: 4d4c505c stclmi 0, cr5, [ip, #-368] + 3ea8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 3eac: 65746e49 ldrbvs r6, [r4, #-3657]! + 3eb0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 3eb4: 43005c65 movwmi r5, #3173 ; 0xc65 + 3eb8: 6f445c3a svcvs 0x00445c3a + 3ebc: 656d7563 strbvs r7, [sp, #-1379]! + 3ec0: 2073746e rsbscs r7, r3, lr, ror #8 + 3ec4: 20646e61 rsbcs r6, r4, r1, ror #28 + 3ec8: 74746553 ldrbtvc r6, [r4], #-1363 + 3ecc: 73676e69 cmnvc r7, #1680 ; 0x690 + 3ed0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3ed4: 61726976 cmnvs r2, r6, ror r9 + 3ed8: 20794d5c rsbscs r4, r9, ip, asr sp + 3edc: 75636f44 strbvc r6, [r3, #-3908]! + 3ee0: 746e656d strbtvc r6, [lr], #-1389 + 3ee4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3ee8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 3eec: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3ef0: 6165575c cmnvs r5, ip, asr r7 + 3ef4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3ef8: 61745320 cmnvs r4, r0, lsr #6 + 3efc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3f00: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 3f04: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3f08: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 3f0c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 3f10: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 3f14: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 3f18: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 3f1c: 65746e49 ldrbvs r6, [r4, #-3657]! + 3f20: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 3f24: 43005c65 movwmi r5, #3173 ; 0xc65 + 3f28: 6f445c3a svcvs 0x00445c3a + 3f2c: 656d7563 strbvs r7, [sp, #-1379]! + 3f30: 2073746e rsbscs r7, r3, lr, ror #8 + 3f34: 20646e61 rsbcs r6, r4, r1, ror #28 + 3f38: 74746553 ldrbtvc r6, [r4], #-1363 + 3f3c: 73676e69 cmnvc r7, #1680 ; 0x690 + 3f40: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3f44: 61726976 cmnvs r2, r6, ror r9 + 3f48: 20794d5c rsbscs r4, r9, ip, asr sp + 3f4c: 75636f44 strbvc r6, [r3, #-3908]! + 3f50: 746e656d strbtvc r6, [lr], #-1389 + 3f54: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3f58: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 3f5c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3f60: 6165575c cmnvs r5, ip, asr r7 + 3f64: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3f68: 61745320 cmnvs r4, r0, lsr #6 + 3f6c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3f70: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 3f74: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3f78: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 3f7c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 3f80: 746e495c strbtvc r4, [lr], #-2396 + 3f84: 61667265 cmnvs r6, r5, ror #4 + 3f88: 005c6563 subseq r6, ip, r3, ror #10 + 3f8c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3f90: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3f94: 73746e65 cmnvc r4, #1616 ; 0x650 + 3f98: 646e6120 strbtvs r6, [lr], #-288 + 3f9c: 74655320 strbtvc r5, [r5], #-800 + 3fa0: 676e6974 undefined + 3fa4: 616d5c73 smcvs 54723 + 3fa8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3fac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3fb0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3fb4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3fb8: 775c7374 undefined + 3fbc: 6f632d73 svcvs 0x00632d73 + 3fc0: 6f72746e svcvs 0x0072746e + 3fc4: 65575c6c ldrbvs r5, [r7, #-3180] + 3fc8: 65687461 strbvs r7, [r8, #-1121]! + 3fcc: 74532072 ldrbvc r2, [r3], #-114 + 3fd0: 6f697461 svcvs 0x00697461 + 3fd4: 6f43206e svcvs 0x0043206e + 3fd8: 6f72746e svcvs 0x0072746e + 3fdc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3fe0: 414d535c cmpmi sp, ip, asr r3 + 3fe4: 6f535c43 svcvs 0x00535c43 + 3fe8: 65637275 strbvs r7, [r3, #-629]! + 3fec: 4500005c strmi r0, [r0, #-92] + 3ff0: 6465626d strbtvs r6, [r5], #-621 + 3ff4: 54646564 strbtpl r6, [r4], #-1380 + 3ff8: 73657079 cmnvc r5, #121 ; 0x79 + 3ffc: 0100682e tsteq r0, lr, lsr #16 + 4000: c0d79d9e smullsgt r9, r7, lr, sp + 4004: 57507704 ldrbpl r7, [r0, -r4, lsl #14] + 4008: 6f435f52 svcvs 0x00435f52 + 400c: 6769666e strbvs r6, [r9, -lr, ror #12]! + 4010: 0100682e tsteq r0, lr, lsr #16 + 4014: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 4018: 52433104 subpl r3, r3, #1 ; 0x1 + 401c: 65525f4d ldrbvs r5, [r2, #-3917] + 4020: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 4024: 8ff80200 svchi 0x00f80200 + 4028: 8104c0d7 ldrdhi ip, [r4, -r7] + 402c: 6d724302 ldclvs 3, cr4, [r2, #-8]! + 4030: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 4034: c0d794f2 ldrshgt r9, [r7], #66 + 4038: 5005cb04 andpl ip, r5, r4, lsl #22 + 403c: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 4040: 2e6d726f cdpcs 2, 6, cr7, cr13, cr15, {3} + 4044: f2020068 vhadd.s8 q0, q1, q12 + 4048: 04c0d794 strbeq sp, [r0], #1940 + 404c: 735303be cmpvc r3, #-134217726 ; 0xf8000002 + 4050: 65525f69 ldrbvs r5, [r2, #-3945] + 4054: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 4058: 96cc0200 strbls r0, [ip], r0, lsl #4 + 405c: c504ba91 strgt fp, [r4, #-2705] + 4060: 66697201 strbtvs r7, [r9], -r1, lsl #4 + 4064: 636e695f cmnvs lr, #1556480 ; 0x17c000 + 4068: 0300682e movweq r6, #2094 ; 0x82e + 406c: c5ffca82 ldrbgt ip, [pc, #2690]! ; 4af6 + 4070: 47019204 strmi r9, [r1, -r4, lsl #4] + 4074: 61626f6c cmnvs r2, ip, ror #30 + 4078: 6665446c strbtvs r4, [r5], -ip, ror #8 + 407c: 00682e73 rsbeq r2, r8, r3, ror lr + 4080: eea2ba04 cdp 10, 10, cr11, cr2, cr4, {0} + 4084: 019104c5 orrseq r0, r1, r5, asr #9 + 4088: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} + 408c: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ + 4090: 50726576 rsbspl r6, r2, r6, ror r5 + 4094: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 + 4098: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 409c: 682e746e stmdavs lr!, {r1, r2, r3, r5, r6, sl, ip, sp, lr} + 40a0: a9960400 ldmibge r6, {sl} + 40a4: ca04c5fa bgt 135894 + 40a8: 61725401 cmnvs r2, r1, lsl #8 + 40ac: 6563736e strbvs r7, [r3, #-878]! + 40b0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 40b4: 65776f50 ldrbvs r6, [r7, #-3920]! + 40b8: 676e4d72 undefined + 40bc: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 40c0: 96050063 strls r0, [r5], -r3, rrx + 40c4: 04c5faa9 strbeq pc, [r5], #2729 + 40c8: 000001ee andeq r0, r0, lr, ror #3 + 40cc: 000000d7 ldrdeq r0, [r0], -r7 + 40d0: 00930002 addseq r0, r3, r2 + 40d4: 01020000 tsteq r2, r0 + 40d8: 000a0500 andeq r0, sl, r0, lsl #10 + 40dc: 01010101 tsteq r1, r1, lsl #2 + 40e0: 00000000 andeq r0, r0, r0 + 40e4: 445c3a43 ldrbmi r3, [ip], #-2627 + 40e8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 40ec: 73746e65 cmnvc r4, #1616 ; 0x650 + 40f0: 646e6120 strbtvs r6, [lr], #-288 + 40f4: 74655320 strbtvc r5, [r5], #-800 + 40f8: 676e6974 undefined + 40fc: 616d5c73 smcvs 54723 + 4100: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4104: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4108: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 410c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4110: 775c7374 undefined + 4114: 6f632d73 svcvs 0x00632d73 + 4118: 6f72746e svcvs 0x0072746e + 411c: 65575c6c ldrbvs r5, [r7, #-3180] + 4120: 65687461 strbvs r7, [r8, #-1121]! + 4124: 74532072 ldrbvc r2, [r3], #-114 + 4128: 6f697461 svcvs 0x00697461 + 412c: 6f43206e svcvs 0x0043206e + 4130: 6f72746e svcvs 0x0072746e + 4134: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4138: 414d535c cmpmi sp, ip, asr r3 + 413c: 6f535c43 svcvs 0x00535c43 + 4140: 65637275 strbvs r7, [r3, #-629]! + 4144: 5400005c strpl r0, [r0], #-92 + 4148: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 414c: 76696563 strbtvc r6, [r9], -r3, ror #10 + 4150: 6f507265 svcvs 0x00507265 + 4154: 4d726577 cfldr64mi mvdx6, [r2, #-476]! + 4158: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 415c: 00632e74 rsbeq r2, r3, r4, ror lr + 4160: faa99601 blx fea6996c + 4164: 01ee04c5 mvneq r0, r5, asr #9 + 4168: 02050000 andeq r0, r5, #0 ; 0x0 + 416c: 00403988 subeq r3, r0, r8, lsl #19 + 4170: e3030105 movw r0, #12549 ; 0x3105 + 4174: 03050e00 movweq r0, #24064 ; 0x5e00 + 4178: 05161621 ldreq r1, [r6, #-1569] + 417c: 0b1a1608 bleq 6899a4 + 4180: 03051a1a movweq r1, #23066 ; 0x5a1a + 4184: 05130303 ldreq r0, [r3, #-771] + 4188: 0b151b06 bleq 54ada8 + 418c: 03051a1a movweq r1, #23066 ; 0x5a1a + 4190: 05130203 ldreq r0, [r3, #-515] + 4194: 791a1b06 ldmdbvc sl, {r1, r2, r8, r9, fp, ip} + 4198: 0b0b0b0b bleq 2c6dcc + 419c: 0303051a movweq r0, #13594 ; 0x351a + 41a0: 0a021302 beq 88db0 + 41a4: 00010100 andeq r0, r1, r0, lsl #2 + 41a8: 000003a0 andeq r0, r0, r0, lsr #7 + 41ac: 039a0002 orrseq r0, sl, #2 ; 0x2 + 41b0: 01010000 tsteq r1, r0 + 41b4: 000a0500 andeq r0, sl, r0, lsl #10 + 41b8: 01010101 tsteq r1, r1, lsl #2 + 41bc: 00000000 andeq r0, r0, r0 + 41c0: 445c3a43 ldrbmi r3, [ip], #-2627 + 41c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 41c8: 73746e65 cmnvc r4, #1616 ; 0x650 + 41cc: 646e6120 strbtvs r6, [lr], #-288 + 41d0: 74655320 strbtvc r5, [r5], #-800 + 41d4: 676e6974 undefined + 41d8: 616d5c73 smcvs 54723 + 41dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 41e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 41e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 41e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 41ec: 775c7374 undefined + 41f0: 6f632d73 svcvs 0x00632d73 + 41f4: 6f72746e svcvs 0x0072746e + 41f8: 65575c6c ldrbvs r5, [r7, #-3180] + 41fc: 65687461 strbvs r7, [r8, #-1121]! + 4200: 74532072 ldrbvc r2, [r3], #-114 + 4204: 6f697461 svcvs 0x00697461 + 4208: 6f43206e svcvs 0x0043206e + 420c: 6f72746e svcvs 0x0072746e + 4210: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4214: 7070415c rsbsvc r4, r0, ip, asr r1 + 4218: 6163696c cmnvs r3, ip, ror #18 + 421c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4220: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 4224: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 4228: 005c7365 subseq r7, ip, r5, ror #6 + 422c: 445c3a43 ldrbmi r3, [ip], #-2627 + 4230: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4234: 73746e65 cmnvc r4, #1616 ; 0x650 + 4238: 646e6120 strbtvs r6, [lr], #-288 + 423c: 74655320 strbtvc r5, [r5], #-800 + 4240: 676e6974 undefined + 4244: 616d5c73 smcvs 54723 + 4248: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 424c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4250: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4254: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4258: 775c7374 undefined + 425c: 6f632d73 svcvs 0x00632d73 + 4260: 6f72746e svcvs 0x0072746e + 4264: 65575c6c ldrbvs r5, [r7, #-3180] + 4268: 65687461 strbvs r7, [r8, #-1121]! + 426c: 74532072 ldrbvc r2, [r3], #-114 + 4270: 6f697461 svcvs 0x00697461 + 4274: 6f43206e svcvs 0x0043206e + 4278: 6f72746e svcvs 0x0072746e + 427c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4280: 4d4c505c stclmi 0, cr5, [ip, #-368] + 4284: 746e495c strbtvc r4, [lr], #-2396 + 4288: 61667265 cmnvs r6, r5, ror #4 + 428c: 005c6563 subseq r6, ip, r3, ror #10 + 4290: 445c3a43 ldrbmi r3, [ip], #-2627 + 4294: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4298: 73746e65 cmnvc r4, #1616 ; 0x650 + 429c: 646e6120 strbtvs r6, [lr], #-288 + 42a0: 74655320 strbtvc r5, [r5], #-800 + 42a4: 676e6974 undefined + 42a8: 616d5c73 smcvs 54723 + 42ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 42b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 42b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 42b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 42bc: 775c7374 undefined + 42c0: 6f632d73 svcvs 0x00632d73 + 42c4: 6f72746e svcvs 0x0072746e + 42c8: 65575c6c ldrbvs r5, [r7, #-3180] + 42cc: 65687461 strbvs r7, [r8, #-1121]! + 42d0: 74532072 ldrbvc r2, [r3], #-114 + 42d4: 6f697461 svcvs 0x00697461 + 42d8: 6f43206e svcvs 0x0043206e + 42dc: 6f72746e svcvs 0x0072746e + 42e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 42e4: 4d4c505c stclmi 0, cr5, [ip, #-368] + 42e8: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 42ec: 65746e49 ldrbvs r6, [r4, #-3657]! + 42f0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 42f4: 43005c65 movwmi r5, #3173 ; 0xc65 + 42f8: 6f445c3a svcvs 0x00445c3a + 42fc: 656d7563 strbvs r7, [sp, #-1379]! + 4300: 2073746e rsbscs r7, r3, lr, ror #8 + 4304: 20646e61 rsbcs r6, r4, r1, ror #28 + 4308: 74746553 ldrbtvc r6, [r4], #-1363 + 430c: 73676e69 cmnvc r7, #1680 ; 0x690 + 4310: 6c616d5c stclvs 13, cr6, [r1], #-368 + 4314: 61726976 cmnvs r2, r6, ror r9 + 4318: 20794d5c rsbscs r4, r9, ip, asr sp + 431c: 75636f44 strbvc r6, [r3, #-3908]! + 4320: 746e656d strbtvc r6, [lr], #-1389 + 4324: 73775c73 cmnvc r7, #29440 ; 0x7300 + 4328: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 432c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 4330: 6165575c cmnvs r5, ip, asr r7 + 4334: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 4338: 61745320 cmnvs r4, r0, lsr #6 + 433c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4340: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 4344: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 4348: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 434c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 4350: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 4354: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 4358: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} + 435c: 75676966 strbvc r6, [r7, #-2406]! + 4360: 005c6572 subseq r6, ip, r2, ror r5 + 4364: 445c3a43 ldrbmi r3, [ip], #-2627 + 4368: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 436c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4370: 646e6120 strbtvs r6, [lr], #-288 + 4374: 74655320 strbtvc r5, [r5], #-800 + 4378: 676e6974 undefined + 437c: 616d5c73 smcvs 54723 + 4380: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4384: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4388: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 438c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4390: 775c7374 undefined + 4394: 6f632d73 svcvs 0x00632d73 + 4398: 6f72746e svcvs 0x0072746e + 439c: 65575c6c ldrbvs r5, [r7, #-3180] + 43a0: 65687461 strbvs r7, [r8, #-1121]! + 43a4: 74532072 ldrbvc r2, [r3], #-114 + 43a8: 6f697461 svcvs 0x00697461 + 43ac: 6f43206e svcvs 0x0043206e + 43b0: 6f72746e svcvs 0x0072746e + 43b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 43b8: 414d535c cmpmi sp, ip, asr r3 + 43bc: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 43c0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 43c4: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 43c8: 66726574 undefined + 43cc: 5c656361 stclpl 3, cr6, [r5], #-388 + 43d0: 5c3a4300 ldcpl 3, cr4, [sl] + 43d4: 75636f44 strbvc r6, [r3, #-3908]! + 43d8: 746e656d strbtvc r6, [lr], #-1389 + 43dc: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 43e0: 65532064 ldrbvs r2, [r3, #-100] + 43e4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 43e8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 43ec: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 43f0: 4d5c6172 ldfmie f6, [ip, #-456] + 43f4: 6f442079 svcvs 0x00442079 + 43f8: 656d7563 strbvs r7, [sp, #-1379]! + 43fc: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4400: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4404: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4408: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 440c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4410: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4414: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4418: 43206e6f teqmi r0, #1776 ; 0x6f0 + 441c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4420: 656c6c6f strbvs r6, [ip, #-3183]! + 4424: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 4428: 495c4341 ldmdbmi ip, {r0, r6, r8, r9, lr}^ + 442c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 4430: 65636166 strbvs r6, [r3, #-358]! + 4434: 5500005c strpl r0, [r0, #-92] + 4438: 55747261 ldrbpl r7, [r4, #-609]! + 443c: 2e6c6974 mcrcs 9, 3, r6, cr12, cr4, {3} + 4440: a6010063 strge r0, [r1], -r3, rrx + 4444: 04c9def8 strbeq sp, [r9], #3832 + 4448: 615503cd cmpvs r5, sp, asr #7 + 444c: 74557472 ldrbvc r7, [r5], #-1138 + 4450: 682e6c69 stmdavs lr!, {r0, r3, r5, r6, sl, fp, sp, lr} + 4454: d7c00100 strble r0, [r0, r0, lsl #2] + 4458: b404c8e6 strlt ip, [r4], #-2278 + 445c: 626d4502 rsbvs r4, sp, #8388608 ; 0x800000 + 4460: 65646465 strbvs r6, [r4, #-1125]! + 4464: 70795464 rsbsvc r5, r9, r4, ror #8 + 4468: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 446c: 9d9e0200 lfmls f0, 4, [lr] + 4470: 7704c0d7 undefined + 4474: 54524155 ldrbpl r4, [r2], #-341 + 4478: 746e495f strbtvc r4, [lr], #-2399 + 447c: 61667265 cmnvs r6, r5, ror #4 + 4480: 682e6563 stmdavs lr!, {r0, r1, r5, r6, r8, sl, sp, lr} + 4484: a3d70200 bicsge r0, r7, #0 ; 0x0 + 4488: 7f04ceee svcvc 0x0004ceee + 448c: 5f4d5243 svcpl 0x004d5243 + 4490: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 4494: 0300682e movweq r6, #2094 ; 0x82e + 4498: c0d78ff8 ldrshgt r8, [r7], #248 + 449c: 49028104 stmdbmi r2, {r2, r8, pc} + 44a0: 495f4354 ldmdbmi pc, {r2, r4, r6, r8, r9, lr}^ + 44a4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 44a8: 65636166 strbvs r6, [r3, #-358]! + 44ac: 0300682e movweq r6, #2094 ; 0x82e + 44b0: c0d78ff8 ldrshgt r8, [r7], #248 + 44b4: 4902c404 stmdbmi r2, {r2, sl, lr, pc} + 44b8: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 44bc: 74707572 ldrbtvc r7, [r0], #-1394 + 44c0: 0300682e movweq r6, #2094 ; 0x82e + 44c4: c0d794f2 ldrshgt r9, [r7], #66 + 44c8: 73531d04 cmpvc r3, #256 ; 0x100 + 44cc: 65525f69 ldrbvs r5, [r2, #-3945] + 44d0: 682e7367 stmdavs lr!, {r0, r1, r2, r5, r6, r8, r9, ip, sp, lr} + 44d4: 96cc0300 strbls r0, [ip], r0, lsl #6 + 44d8: c504ba91 strgt fp, [r4, #-2705] + 44dc: 72615501 rsbvc r5, r1, #4194304 ; 0x400000 + 44e0: 776f4c74 undefined + 44e4: 6576654c ldrbvs r6, [r6, #-1356]! + 44e8: 00682e6c rsbeq r2, r8, ip, ror #28 + 44ec: d794f203 ldrle pc, [r4, r3, lsl #4] + 44f0: 04fd04c0 ldrbteq r0, [sp], #1216 + 44f4: 74616c70 strbtvc r6, [r1], #-3184 + 44f8: 6d726f66 ldclvs 15, cr6, [r2, #-408]! + 44fc: 0300682e movweq r6, #2094 ; 0x82e + 4500: c0d794f2 ldrshgt r9, [r7], #66 + 4504: 6203be04 andvs fp, r3, #64 ; 0x40 + 4508: 6472616f ldrbtvs r6, [r2], #-367 + 450c: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 4510: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} + 4514: f7040068 undefined instruction 0xf7040068 + 4518: 04ceedfb strbeq lr, [lr], #3579 + 451c: 6572463d ldrbvs r4, [r2, #-1597]! + 4520: 70654471 rsbvc r4, r5, r1, ror r4 + 4524: 74746553 ldrbtvc r6, [r4], #-1363 + 4528: 73676e69 cmnvc r7, #1680 ; 0x690 + 452c: 0500682e streq r6, [r0, #-2094] + 4530: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 4534: 6c473704 mcrrvs 7, 0, r3, r7, cr4 + 4538: 6c61626f sfmvs f6, 2, [r1], #-444 + 453c: 73666544 cmnvc r6, #285212672 ; 0x11000000 + 4540: 0600682e streq r6, [r0], -lr, lsr #16 + 4544: c5eea2ba strbgt sl, [lr, #698]! + 4548: 00019104 andeq r9, r1, r4, lsl #2 + 454c: 000000c4 andeq r0, r0, r4, asr #1 + 4550: 008f0002 addeq r0, pc, r2 + 4554: 01020000 tsteq r2, r0 + 4558: 000a0500 andeq r0, sl, r0, lsl #10 + 455c: 01010101 tsteq r1, r1, lsl #2 + 4560: 00000000 andeq r0, r0, r0 + 4564: 445c3a43 ldrbmi r3, [ip], #-2627 + 4568: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 456c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4570: 646e6120 strbtvs r6, [lr], #-288 + 4574: 74655320 strbtvc r5, [r5], #-800 + 4578: 676e6974 undefined + 457c: 616d5c73 smcvs 54723 + 4580: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4584: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4588: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 458c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4590: 775c7374 undefined + 4594: 6f632d73 svcvs 0x00632d73 + 4598: 6f72746e svcvs 0x0072746e + 459c: 65575c6c ldrbvs r5, [r7, #-3180] + 45a0: 65687461 strbvs r7, [r8, #-1121]! + 45a4: 74532072 ldrbvc r2, [r3], #-114 + 45a8: 6f697461 svcvs 0x00697461 + 45ac: 6f43206e svcvs 0x0043206e + 45b0: 6f72746e svcvs 0x0072746e + 45b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 45b8: 7070415c rsbsvc r4, r0, ip, asr r1 + 45bc: 6163696c cmnvs r3, ip, ror #18 + 45c0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 45c4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 45c8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 45cc: 005c7365 subseq r7, ip, r5, ror #6 + 45d0: 72615500 rsbvc r5, r1, #0 ; 0x0 + 45d4: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 45d8: 00632e6c rsbeq r2, r3, ip, ror #28 + 45dc: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 45e0: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 45e4: 02050000 andeq r0, r5, #0 ; 0x0 + 45e8: 0040338c subeq r3, r0, ip, lsl #7 + 45ec: c4030105 strgt r0, [r3], #-261 + 45f0: 03050e00 movweq r0, #24064 ; 0x5e00 + 45f4: 171d0303 ldrne r0, [sp, -r3, lsl #6] + 45f8: 101a0b1a andsne r0, sl, sl, lsl fp + 45fc: 1c201f0e stcne 15, cr1, [r0], #-56 + 4600: 2203031f andcs r0, r3, #2080374784 ; 0x7c000000 + 4604: 1515211f ldrne r2, [r5, #-287] + 4608: 1b222303 blne 88d21c + 460c: 022a0105 eoreq r0, sl, #1073741825 ; 0x40000001 + 4610: 0101000e tsteq r1, lr + 4614: 000000b5 strheq r0, [r0], -r5 + 4618: 008f0002 addeq r0, pc, r2 + 461c: 01020000 tsteq r2, r0 + 4620: 000a0500 andeq r0, sl, r0, lsl #10 + 4624: 01010101 tsteq r1, r1, lsl #2 + 4628: 00000000 andeq r0, r0, r0 + 462c: 445c3a43 ldrbmi r3, [ip], #-2627 + 4630: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4634: 73746e65 cmnvc r4, #1616 ; 0x650 + 4638: 646e6120 strbtvs r6, [lr], #-288 + 463c: 74655320 strbtvc r5, [r5], #-800 + 4640: 676e6974 undefined + 4644: 616d5c73 smcvs 54723 + 4648: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 464c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4650: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4654: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4658: 775c7374 undefined + 465c: 6f632d73 svcvs 0x00632d73 + 4660: 6f72746e svcvs 0x0072746e + 4664: 65575c6c ldrbvs r5, [r7, #-3180] + 4668: 65687461 strbvs r7, [r8, #-1121]! + 466c: 74532072 ldrbvc r2, [r3], #-114 + 4670: 6f697461 svcvs 0x00697461 + 4674: 6f43206e svcvs 0x0043206e + 4678: 6f72746e svcvs 0x0072746e + 467c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4680: 7070415c rsbsvc r4, r0, ip, asr r1 + 4684: 6163696c cmnvs r3, ip, ror #18 + 4688: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 468c: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 4690: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 4694: 005c7365 subseq r7, ip, r5, ror #6 + 4698: 72615500 rsbvc r5, r1, #0 ; 0x0 + 469c: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 46a0: 00632e6c rsbeq r2, r3, ip, ror #28 + 46a4: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 46a8: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 46ac: 02050000 andeq r0, r5, #0 ; 0x0 + 46b0: 00403418 subeq r3, r0, r8, lsl r4 + 46b4: 9d030105 stflss f0, [r3, #-20] + 46b8: 03050e01 movweq r0, #24065 ; 0x5e01 + 46bc: 241f2e0d ldrcs r2, [pc], #3597 ; 46c4 + 46c0: 241a2010 ldrcs r2, [sl], #-16 + 46c4: 1f01051a svcne 0x0001051a + 46c8: 01000402 tsteq r0, r2, lsl #8 + 46cc: 00000001 andeq r0, r0, r1 + 46d0: 000000aa andeq r0, r0, sl, lsr #1 + 46d4: 008f0002 addeq r0, pc, r2 + 46d8: 01020000 tsteq r2, r0 + 46dc: 000a0500 andeq r0, sl, r0, lsl #10 + 46e0: 01010101 tsteq r1, r1, lsl #2 + 46e4: 00000000 andeq r0, r0, r0 + 46e8: 445c3a43 ldrbmi r3, [ip], #-2627 + 46ec: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 46f0: 73746e65 cmnvc r4, #1616 ; 0x650 + 46f4: 646e6120 strbtvs r6, [lr], #-288 + 46f8: 74655320 strbtvc r5, [r5], #-800 + 46fc: 676e6974 undefined + 4700: 616d5c73 smcvs 54723 + 4704: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4708: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 470c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4710: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4714: 775c7374 undefined + 4718: 6f632d73 svcvs 0x00632d73 + 471c: 6f72746e svcvs 0x0072746e + 4720: 65575c6c ldrbvs r5, [r7, #-3180] + 4724: 65687461 strbvs r7, [r8, #-1121]! + 4728: 74532072 ldrbvc r2, [r3], #-114 + 472c: 6f697461 svcvs 0x00697461 + 4730: 6f43206e svcvs 0x0043206e + 4734: 6f72746e svcvs 0x0072746e + 4738: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 473c: 7070415c rsbsvc r4, r0, ip, asr r1 + 4740: 6163696c cmnvs r3, ip, ror #18 + 4744: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4748: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 474c: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 4750: 005c7365 subseq r7, ip, r5, ror #6 + 4754: 72615500 rsbvc r5, r1, #0 ; 0x0 + 4758: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 475c: 00632e6c rsbeq r2, r3, ip, ror #28 + 4760: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 4764: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 4768: 02050000 andeq r0, r5, #0 ; 0x0 + 476c: 0040346c subeq r3, r0, ip, ror #8 + 4770: c7030105 strgt r0, [r3, -r5, lsl #2] + 4774: 03050e01 movweq r0, #24065 ; 0x5e01 + 4778: 0001020b andeq r0, r1, fp, lsl #4 + 477c: 00000101 andeq r0, r0, r1, lsl #2 + 4780: 000000a8 andeq r0, r0, r8, lsr #1 + 4784: 008f0002 addeq r0, pc, r2 + 4788: 01020000 tsteq r2, r0 + 478c: 000a0500 andeq r0, sl, r0, lsl #10 + 4790: 01010101 tsteq r1, r1, lsl #2 + 4794: 00000000 andeq r0, r0, r0 + 4798: 445c3a43 ldrbmi r3, [ip], #-2627 + 479c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 47a0: 73746e65 cmnvc r4, #1616 ; 0x650 + 47a4: 646e6120 strbtvs r6, [lr], #-288 + 47a8: 74655320 strbtvc r5, [r5], #-800 + 47ac: 676e6974 undefined + 47b0: 616d5c73 smcvs 54723 + 47b4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 47b8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 47bc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 47c0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 47c4: 775c7374 undefined + 47c8: 6f632d73 svcvs 0x00632d73 + 47cc: 6f72746e svcvs 0x0072746e + 47d0: 65575c6c ldrbvs r5, [r7, #-3180] + 47d4: 65687461 strbvs r7, [r8, #-1121]! + 47d8: 74532072 ldrbvc r2, [r3], #-114 + 47dc: 6f697461 svcvs 0x00697461 + 47e0: 6f43206e svcvs 0x0043206e + 47e4: 6f72746e svcvs 0x0072746e + 47e8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 47ec: 7070415c rsbsvc r4, r0, ip, asr r1 + 47f0: 6163696c cmnvs r3, ip, ror #18 + 47f4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 47f8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 47fc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 4800: 005c7365 subseq r7, ip, r5, ror #6 + 4804: 72615500 rsbvc r5, r1, #0 ; 0x0 + 4808: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 480c: 00632e6c rsbeq r2, r3, ip, ror #28 + 4810: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 4814: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 4818: 02050000 andeq r0, r5, #0 ; 0x0 + 481c: 0040346e subeq r3, r0, lr, ror #8 + 4820: d3030105 movwle r0, #12549 ; 0x3105 + 4824: 020b0e01 andeq r0, fp, #16 ; 0x10 + 4828: 01010001 tsteq r1, r1 + 482c: 000000b8 strheq r0, [r0], -r8 + 4830: 008f0002 addeq r0, pc, r2 + 4834: 01020000 tsteq r2, r0 + 4838: 000a0500 andeq r0, sl, r0, lsl #10 + 483c: 01010101 tsteq r1, r1, lsl #2 + 4840: 00000000 andeq r0, r0, r0 + 4844: 445c3a43 ldrbmi r3, [ip], #-2627 + 4848: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 484c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4850: 646e6120 strbtvs r6, [lr], #-288 + 4854: 74655320 strbtvc r5, [r5], #-800 + 4858: 676e6974 undefined + 485c: 616d5c73 smcvs 54723 + 4860: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4864: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4868: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 486c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4870: 775c7374 undefined + 4874: 6f632d73 svcvs 0x00632d73 + 4878: 6f72746e svcvs 0x0072746e + 487c: 65575c6c ldrbvs r5, [r7, #-3180] + 4880: 65687461 strbvs r7, [r8, #-1121]! + 4884: 74532072 ldrbvc r2, [r3], #-114 + 4888: 6f697461 svcvs 0x00697461 + 488c: 6f43206e svcvs 0x0043206e + 4890: 6f72746e svcvs 0x0072746e + 4894: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4898: 7070415c rsbsvc r4, r0, ip, asr r1 + 489c: 6163696c cmnvs r3, ip, ror #18 + 48a0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 48a4: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 48a8: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 48ac: 005c7365 subseq r7, ip, r5, ror #6 + 48b0: 72615500 rsbvc r5, r1, #0 ; 0x0 + 48b4: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 48b8: 00632e6c rsbeq r2, r3, ip, ror #28 + 48bc: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 48c0: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 48c4: 02050000 andeq r0, r5, #0 ; 0x0 + 48c8: 00403470 subeq r3, r0, r0, ror r4 + 48cc: de030305 cdple 3, 0, cr0, cr3, cr5, {0} + 48d0: 6b031d01 blvs cbcdc + 48d4: 1812030a ldmdane r2, {r1, r3, r8, r9} + 48d8: 050a6b03 streq r6, [sl, #-2819] + 48dc: 18120301 ldmdane r2, {r0, r8, r9} + 48e0: 020a6b03 andeq r6, sl, #3072 ; 0xc00 + 48e4: 01010001 tsteq r1, r1 + 48e8: 000000b9 strheq r0, [r0], -r9 + 48ec: 008f0002 addeq r0, pc, r2 + 48f0: 01020000 tsteq r2, r0 + 48f4: 000a0500 andeq r0, sl, r0, lsl #10 + 48f8: 01010101 tsteq r1, r1, lsl #2 + 48fc: 00000000 andeq r0, r0, r0 + 4900: 445c3a43 ldrbmi r3, [ip], #-2627 + 4904: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4908: 73746e65 cmnvc r4, #1616 ; 0x650 + 490c: 646e6120 strbtvs r6, [lr], #-288 + 4910: 74655320 strbtvc r5, [r5], #-800 + 4914: 676e6974 undefined + 4918: 616d5c73 smcvs 54723 + 491c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4920: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4924: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4928: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 492c: 775c7374 undefined + 4930: 6f632d73 svcvs 0x00632d73 + 4934: 6f72746e svcvs 0x0072746e + 4938: 65575c6c ldrbvs r5, [r7, #-3180] + 493c: 65687461 strbvs r7, [r8, #-1121]! + 4940: 74532072 ldrbvc r2, [r3], #-114 + 4944: 6f697461 svcvs 0x00697461 + 4948: 6f43206e svcvs 0x0043206e + 494c: 6f72746e svcvs 0x0072746e + 4950: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4954: 7070415c rsbsvc r4, r0, ip, asr r1 + 4958: 6163696c cmnvs r3, ip, ror #18 + 495c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4960: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 4964: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 4968: 005c7365 subseq r7, ip, r5, ror #6 + 496c: 72615500 rsbvc r5, r1, #0 ; 0x0 + 4970: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 4974: 00632e6c rsbeq r2, r3, ip, ror #28 + 4978: def8a601 cdple 6, 15, cr10, cr8, cr1, {0} + 497c: 03cd04c9 biceq r0, sp, #-922746880 ; 0xc9000000 + 4980: 02050000 andeq r0, r5, #0 ; 0x0 + 4984: 00403480 subeq r3, r0, r0, lsl #9 + 4988: 87030105 strhi r0, [r3, -r5, lsl #2] + 498c: 0b050e02 bleq 14819c + 4990: 1b030516 blne c5df0 + 4994: 1a240505 bne 905db0 + 4998: 0705101a smladeq r5, sl, r0, r1 + 499c: 21010539 tstcs r1, r9, lsr r5 + 49a0: 01000502 tsteq r0, r2, lsl #10 + 49a4: 00000001 andeq r0, r0, r1 + 49a8: 000004db ldrdeq r0, [r0], -fp + 49ac: 04d50002 ldrbeq r0, [r5], #2 + 49b0: 01010000 tsteq r1, r0 + 49b4: 000a0500 andeq r0, sl, r0, lsl #10 + 49b8: 01010101 tsteq r1, r1, lsl #2 + 49bc: 00000000 andeq r0, r0, r0 + 49c0: 445c3a43 ldrbmi r3, [ip], #-2627 + 49c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 49c8: 73746e65 cmnvc r4, #1616 ; 0x650 + 49cc: 646e6120 strbtvs r6, [lr], #-288 + 49d0: 74655320 strbtvc r5, [r5], #-800 + 49d4: 676e6974 undefined + 49d8: 616d5c73 smcvs 54723 + 49dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 49e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 49e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 49e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 49ec: 775c7374 undefined + 49f0: 6f632d73 svcvs 0x00632d73 + 49f4: 6f72746e svcvs 0x0072746e + 49f8: 65575c6c ldrbvs r5, [r7, #-3180] + 49fc: 65687461 strbvs r7, [r8, #-1121]! + 4a00: 74532072 ldrbvc r2, [r3], #-114 + 4a04: 6f697461 svcvs 0x00697461 + 4a08: 6f43206e svcvs 0x0043206e + 4a0c: 6f72746e svcvs 0x0072746e + 4a10: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4a14: 4d4c505c stclmi 0, cr5, [ip, #-368] + 4a18: 746e495c strbtvc r4, [lr], #-2396 + 4a1c: 61667265 cmnvs r6, r5, ror #4 + 4a20: 005c6563 subseq r6, ip, r3, ror #10 + 4a24: 445c3a43 ldrbmi r3, [ip], #-2627 + 4a28: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4a2c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4a30: 646e6120 strbtvs r6, [lr], #-288 + 4a34: 74655320 strbtvc r5, [r5], #-800 + 4a38: 676e6974 undefined + 4a3c: 616d5c73 smcvs 54723 + 4a40: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4a44: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4a48: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4a4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4a50: 775c7374 undefined + 4a54: 6f632d73 svcvs 0x00632d73 + 4a58: 6f72746e svcvs 0x0072746e + 4a5c: 65575c6c ldrbvs r5, [r7, #-3180] + 4a60: 65687461 strbvs r7, [r8, #-1121]! + 4a64: 74532072 ldrbvc r2, [r3], #-114 + 4a68: 6f697461 svcvs 0x00697461 + 4a6c: 6f43206e svcvs 0x0043206e + 4a70: 6f72746e svcvs 0x0072746e + 4a74: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4a78: 414d535c cmpmi sp, ip, asr r3 + 4a7c: 6f435c43 svcvs 0x00435c43 + 4a80: 6769666e strbvs r6, [r9, -lr, ror #12]! + 4a84: 5c657275 sfmpl f7, 2, [r5], #-468 + 4a88: 5c3a4300 ldcpl 3, cr4, [sl] + 4a8c: 75636f44 strbvc r6, [r3, #-3908]! + 4a90: 746e656d strbtvc r6, [lr], #-1389 + 4a94: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4a98: 65532064 ldrbvs r2, [r3, #-100] + 4a9c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4aa0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4aa4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4aa8: 4d5c6172 ldfmie f6, [ip, #-456] + 4aac: 6f442079 svcvs 0x00442079 + 4ab0: 656d7563 strbvs r7, [sp, #-1379]! + 4ab4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4ab8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4abc: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4ac0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4ac4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4ac8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4acc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4ad0: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4ad4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4ad8: 656c6c6f strbvs r6, [ip, #-3183]! + 4adc: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 4ae0: 445c4341 ldrbmi r4, [ip], #-833 + 4ae4: 65766972 ldrbvs r6, [r6, #-2418]! + 4ae8: 435c7372 cmpmi ip, #-939524095 ; 0xc8000001 + 4aec: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 4af0: 65727567 ldrbvs r7, [r2, #-1383]! + 4af4: 3a43005c bcc 10c4c6c + 4af8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 4afc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4b00: 61207374 teqvs r0, r4, ror r3 + 4b04: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 4b08: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4b0c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 4b10: 766c616d strbtvc r6, [ip], -sp, ror #2 + 4b14: 5c617269 sfmpl f7, 2, [r1], #-420 + 4b18: 4420794d strtmi r7, [r0], #-2381 + 4b1c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4b20: 73746e65 cmnvc r4, #1616 ; 0x650 + 4b24: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 4b28: 746e6f63 strbtvc r6, [lr], #-3939 + 4b2c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 4b30: 74616557 strbtvc r6, [r1], #-1367 + 4b34: 20726568 rsbscs r6, r2, r8, ror #10 + 4b38: 74617453 strbtvc r7, [r1], #-1107 + 4b3c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 4b40: 746e6f43 strbtvc r6, [lr], #-3907 + 4b44: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4b48: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 4b4c: 5c43414d stfple f4, [r3], {77} + 4b50: 76697244 strbtvc r7, [r9], -r4, asr #4 + 4b54: 5c737265 lfmpl f7, 2, [r3], #-404 + 4b58: 65746e49 ldrbvs r6, [r4, #-3657]! + 4b5c: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 4b60: 43005c65 movwmi r5, #3173 ; 0xc65 + 4b64: 6f445c3a svcvs 0x00445c3a + 4b68: 656d7563 strbvs r7, [sp, #-1379]! + 4b6c: 2073746e rsbscs r7, r3, lr, ror #8 + 4b70: 20646e61 rsbcs r6, r4, r1, ror #28 + 4b74: 74746553 ldrbtvc r6, [r4], #-1363 + 4b78: 73676e69 cmnvc r7, #1680 ; 0x690 + 4b7c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 4b80: 61726976 cmnvs r2, r6, ror r9 + 4b84: 20794d5c rsbscs r4, r9, ip, asr sp + 4b88: 75636f44 strbvc r6, [r3, #-3908]! + 4b8c: 746e656d strbtvc r6, [lr], #-1389 + 4b90: 73775c73 cmnvc r7, #29440 ; 0x7300 + 4b94: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 4b98: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 4b9c: 6165575c cmnvs r5, ip, asr r7 + 4ba0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 4ba4: 61745320 cmnvs r4, r0, lsr #6 + 4ba8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4bac: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 4bb0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 4bb4: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 4bb8: 43414d53 movtmi r4, #7507 ; 0x1d53 + 4bbc: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 4bc0: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 4bc4: 746e495c strbtvc r4, [lr], #-2396 + 4bc8: 61667265 cmnvs r6, r5, ror #4 + 4bcc: 675c6563 ldrbvs r6, [ip, -r3, ror #10] + 4bd0: 5c726468 cfldrdpl mvd6, [r2], #-416 + 4bd4: 5c3a4300 ldcpl 3, cr4, [sl] + 4bd8: 75636f44 strbvc r6, [r3, #-3908]! + 4bdc: 746e656d strbtvc r6, [lr], #-1389 + 4be0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4be4: 65532064 ldrbvs r2, [r3, #-100] + 4be8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4bec: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4bf0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4bf4: 4d5c6172 ldfmie f6, [ip, #-456] + 4bf8: 6f442079 svcvs 0x00442079 + 4bfc: 656d7563 strbvs r7, [sp, #-1379]! + 4c00: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4c04: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4c08: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c0c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4c10: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4c14: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4c18: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4c1c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4c20: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c24: 656c6c6f strbvs r6, [ip, #-3183]! + 4c28: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 4c2c: 445c4341 ldrbmi r4, [ip], #-833 + 4c30: 65766972 ldrbvs r6, [r6, #-2418]! + 4c34: 4c5c7372 mrrcmi 3, 7, r7, ip, cr2 + 4c38: 6e496269 cdpvs 2, 4, cr6, cr9, cr9, {3} + 4c3c: 66726574 undefined + 4c40: 5c656361 stclpl 3, cr6, [r5], #-388 + 4c44: 5c3a4300 ldcpl 3, cr4, [sl] + 4c48: 75636f44 strbvc r6, [r3, #-3908]! + 4c4c: 746e656d strbtvc r6, [lr], #-1389 + 4c50: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4c54: 65532064 ldrbvs r2, [r3, #-100] + 4c58: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4c5c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4c60: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4c64: 4d5c6172 ldfmie f6, [ip, #-456] + 4c68: 6f442079 svcvs 0x00442079 + 4c6c: 656d7563 strbvs r7, [sp, #-1379]! + 4c70: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4c74: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4c78: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c7c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4c80: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4c84: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4c88: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4c8c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4c90: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c94: 656c6c6f strbvs r6, [ip, #-3183]! + 4c98: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 4c9c: 495c4341 ldmdbmi ip, {r0, r6, r8, r9, lr}^ + 4ca0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 4ca4: 65636166 strbvs r6, [r3, #-358]! + 4ca8: 3a43005c bcc 10c4e20 + 4cac: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 4cb0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4cb4: 61207374 teqvs r0, r4, ror r3 + 4cb8: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 4cbc: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4cc0: 5c73676e ldclpl 7, cr6, [r3], #-440 + 4cc4: 766c616d strbtvc r6, [ip], -sp, ror #2 + 4cc8: 5c617269 sfmpl f7, 2, [r1], #-420 + 4ccc: 4420794d strtmi r7, [r0], #-2381 + 4cd0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4cd4: 73746e65 cmnvc r4, #1616 ; 0x650 + 4cd8: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 4cdc: 746e6f63 strbtvc r6, [lr], #-3939 + 4ce0: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 4ce4: 74616557 strbtvc r6, [r1], #-1367 + 4ce8: 20726568 rsbscs r6, r2, r8, ror #10 + 4cec: 74617453 strbtvc r7, [r1], #-1107 + 4cf0: 206e6f69 rsbcs r6, lr, r9, ror #30 + 4cf4: 746e6f43 strbtvc r6, [lr], #-3907 + 4cf8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4cfc: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 4d00: 5c43414d stfple f4, [r3], {77} + 4d04: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 4d08: 005c6563 subseq r6, ip, r3, ror #10 + 4d0c: 626d4500 rsbvs r4, sp, #0 ; 0x0 + 4d10: 65646465 strbvs r6, [r4, #-1125]! + 4d14: 70795464 rsbsvc r5, r9, r4, ror #8 + 4d18: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 4d1c: 9d9e0100 ldflss f0, [lr] + 4d20: 7704c0d7 undefined + 4d24: 435f4652 cmpmi pc, #85983232 ; 0x5200000 + 4d28: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 4d2c: 00682e67 rsbeq r2, r8, r7, ror #28 + 4d30: edfbf701 ldcl 7, cr15, [fp, #4]! + 4d34: 6f3204ce svcvs 0x003204ce + 4d38: 6f697470 svcvs 0x00697470 + 4d3c: 635f736e cmpvs pc, #-1207959551 ; 0xb8000001 + 4d40: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 4d44: 00682e67 rsbeq r2, r8, r7, ror #28 + 4d48: d58e8e02 strle r8, [lr, #3586] + 4d4c: 621f04c1 andsvs r0, pc, #-1056964608 ; 0xc1000000 + 4d50: 6472616f ldrbtvs r6, [r2], #-367 + 4d54: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 4d58: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} + 4d5c: f7030068 undefined instruction 0xf7030068 + 4d60: 04ceedfb strbeq lr, [lr], #3579 + 4d64: 6572463d ldrbvs r4, [r2, #-1597]! + 4d68: 70654471 rsbvc r4, r5, r1, ror r4 + 4d6c: 74746553 ldrbtvc r6, [r4], #-1363 + 4d70: 73676e69 cmnvc r7, #1680 ; 0x690 + 4d74: 0400682e streq r6, [r0], #-2094 + 4d78: ceedfbf7 mcrgt 11, 7, pc, cr13, cr7, {7} + 4d7c: 616d3704 cmnvs sp, r4, lsl #14 + 4d80: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} + 4d84: adc20500 cfstr64ge mvdx0, [r2] + 4d88: 8c04c49d cfstrshi mvf12, [r4], {157} + 4d8c: 76637203 strbtvc r7, [r3], -r3, lsl #4 + 4d90: 6970735f ldmdbvs r0!, {r0, r1, r2, r3, r4, r6, r8, r9, ip, sp, lr}^ + 4d94: 6765725f undefined + 4d98: 00682e73 rsbeq r2, r8, r3, ror lr + 4d9c: f2c0e405 vaddhn.i16 d30, q0, + 4da0: 522404b8 eorpl r0, r4, #-1207959552 ; 0xb8000000 + 4da4: 505f6d6f subspl r6, pc, pc, ror #26 + 4da8: 682e7968 stmdavs lr!, {r3, r5, r6, r8, fp, ip, sp, lr} + 4dac: 89e20600 stmibhi r2!, {r9, sl}^ + 4db0: 3404c0dc strcc ip, [r4], #-220 + 4db4: 746e7953 strbtvc r7, [lr], #-2387 + 4db8: 69736568 ldmdbvs r3!, {r3, r5, r6, r8, sl, sp, lr}^ + 4dbc: 5f72657a svcpl 0x0072657a + 4dc0: 2e636e69 cdpcs 14, 6, cr6, cr3, cr9, {3} + 4dc4: fa060068 blx 184f6c + 4dc8: 04cc8199 strbeq r8, [ip], #409 + 4dcc: 697201a0 ldmdbvs r2!, {r5, r7, r8}^ + 4dd0: 6e695f66 cdpvs 15, 6, cr5, cr9, cr6, {3} + 4dd4: 00682e63 rsbeq r2, r8, r3, ror #28 + 4dd8: ffca8206 undefined instruction 0xffca8206 + 4ddc: 019204c5 orrseq r0, r2, r5, asr #9 + 4de0: 626f6c47 rsbvs r6, pc, #18176 ; 0x4700 + 4de4: 65446c61 strbvs r6, [r4, #-3169] + 4de8: 682e7366 stmdavs lr!, {r1, r2, r5, r6, r8, r9, ip, sp, lr} + 4dec: a2ba0700 adcsge r0, sl, #0 ; 0x0 + 4df0: 9104c5ee smlattls r4, lr, r5, ip + 4df4: 64615201 strbtvs r5, [r1], #-513 + 4df8: 614d6f69 cmpvs sp, r9, ror #30 + 4dfc: 6567616e strbvs r6, [r7, #-366]! + 4e00: 746e656d strbtvc r6, [lr], #-1389 + 4e04: 0700682e streq r6, [r0, -lr, lsr #16] + 4e08: cbe6d8a6 blgt ff9bb0a8 + 4e0c: 5403d104 strpl sp, [r3], #-260 + 4e10: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 4e14: 76696563 strbtvc r6, [r9], -r3, ror #10 + 4e18: 6f437265 svcvs 0x00437265 + 4e1c: 6769666e strbvs r6, [r9, -lr, ror #12]! + 4e20: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 4e24: 682e746e stmdavs lr!, {r1, r2, r3, r5, r6, sl, ip, sp, lr} + 4e28: a0a20700 adcge r0, r2, r0, lsl #14 + 4e2c: e604c5ee str ip, [r4], -lr, ror #11 + 4e30: 72695701 rsbvc r5, r9, #262144 ; 0x40000 + 4e34: 73656c65 cmnvc r5, #25856 ; 0x6500 + 4e38: 6e694c73 mcrvs 12, 3, r4, cr9, cr3, {3} + 4e3c: 676e4d6b strbvs r4, [lr, -fp, ror #26]! + 4e40: 682e746d stmdavs lr!, {r0, r2, r3, r5, r6, sl, ip, sp, lr} + 4e44: 98a60700 stmials r6!, {r8, r9, sl} + 4e48: 9704cbf7 undefined + 4e4c: 64615202 strbtvs r5, [r1], #-514 + 4e50: 6e4d6f69 cdpvs 15, 4, cr6, cr13, cr9, {3} + 4e54: 746e6d67 strbtvc r6, [lr], #-3431 + 4e58: 70617257 rsbvc r7, r1, r7, asr r2 + 4e5c: 2e726570 mrccs 5, 3, r6, cr2, cr0, {3} + 4e60: a6080068 strge r0, [r8], -r8, rrx + 4e64: 04cbe6d8 strbeq lr, [fp], #1752 + 4e68: 695701e6 ldmdbvs r7, {r1, r2, r5, r6, r7, r8}^ + 4e6c: 656c6572 strbvs r6, [ip, #-1394]! + 4e70: 694c7373 stmdbvs ip, {r0, r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 4e74: 6e4d6b6e fnmacdvs d22, d13, d30 + 4e78: 2e746d67 cdpcs 13, 7, cr6, cr4, cr7, {3} + 4e7c: a6080063 strge r0, [r8], -r3, rrx + 4e80: 04cbf798 strbeq pc, [fp], #1944 + 4e84: 000001d6 ldrdeq r0, [r0], -r6 + 4e88: 000000ad andeq r0, r0, sp, lsr #1 + 4e8c: 008e0002 addeq r0, lr, r2 + 4e90: 01020000 tsteq r2, r0 + 4e94: 000a0500 andeq r0, sl, r0, lsl #10 + 4e98: 01010101 tsteq r1, r1, lsl #2 + 4e9c: 00000000 andeq r0, r0, r0 + 4ea0: 445c3a43 ldrbmi r3, [ip], #-2627 + 4ea4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4ea8: 73746e65 cmnvc r4, #1616 ; 0x650 + 4eac: 646e6120 strbtvs r6, [lr], #-288 + 4eb0: 74655320 strbtvc r5, [r5], #-800 + 4eb4: 676e6974 undefined + 4eb8: 616d5c73 smcvs 54723 + 4ebc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4ec0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4ec4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4ec8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4ecc: 775c7374 undefined + 4ed0: 6f632d73 svcvs 0x00632d73 + 4ed4: 6f72746e svcvs 0x0072746e + 4ed8: 65575c6c ldrbvs r5, [r7, #-3180] + 4edc: 65687461 strbvs r7, [r8, #-1121]! + 4ee0: 74532072 ldrbvc r2, [r3], #-114 + 4ee4: 6f697461 svcvs 0x00697461 + 4ee8: 6f43206e svcvs 0x0043206e + 4eec: 6f72746e svcvs 0x0072746e + 4ef0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4ef4: 414d535c cmpmi sp, ip, asr r3 + 4ef8: 6f535c43 svcvs 0x00535c43 + 4efc: 65637275 strbvs r7, [r3, #-629]! + 4f00: 5700005c smlsdpl r0, ip, r0, r0 + 4f04: 6c657269 sfmvs f7, 2, [r5], #-420 + 4f08: 4c737365 ldclmi 3, cr7, [r3], #-404 + 4f0c: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 4f10: 746d676e strbtvc r6, [sp], #-1902 + 4f14: 0100632e tsteq r0, lr, lsr #6 + 4f18: cbf798a6 blgt ffdeb1b8 + 4f1c: 0001d604 andeq sp, r1, r4, lsl #12 + 4f20: 1c020500 cfstr32ne mvfx0, [r2], {0} + 4f24: 0500403a streq r4, [r0, #-58] + 4f28: 0e370301 cdpeq 3, 3, cr0, cr7, cr1, {0} + 4f2c: 0b100305 bleq 405b48 + 4f30: 0b191915 bleq 64b38c + 4f34: 01000102 tsteq r0, r2, lsl #2 + 4f38: 00000001 andeq r0, r0, r1 + 4f3c: 000000b1 strheq r0, [r0], -r1 + 4f40: 008e0002 addeq r0, lr, r2 + 4f44: 01020000 tsteq r2, r0 + 4f48: 000a0500 andeq r0, sl, r0, lsl #10 + 4f4c: 01010101 tsteq r1, r1, lsl #2 + 4f50: 00000000 andeq r0, r0, r0 + 4f54: 445c3a43 ldrbmi r3, [ip], #-2627 + 4f58: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4f5c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4f60: 646e6120 strbtvs r6, [lr], #-288 + 4f64: 74655320 strbtvc r5, [r5], #-800 + 4f68: 676e6974 undefined + 4f6c: 616d5c73 smcvs 54723 + 4f70: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4f74: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4f78: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4f7c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4f80: 775c7374 undefined + 4f84: 6f632d73 svcvs 0x00632d73 + 4f88: 6f72746e svcvs 0x0072746e + 4f8c: 65575c6c ldrbvs r5, [r7, #-3180] + 4f90: 65687461 strbvs r7, [r8, #-1121]! + 4f94: 74532072 ldrbvc r2, [r3], #-114 + 4f98: 6f697461 svcvs 0x00697461 + 4f9c: 6f43206e svcvs 0x0043206e + 4fa0: 6f72746e svcvs 0x0072746e + 4fa4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4fa8: 414d535c cmpmi sp, ip, asr r3 + 4fac: 6f535c43 svcvs 0x00535c43 + 4fb0: 65637275 strbvs r7, [r3, #-629]! + 4fb4: 5700005c smlsdpl r0, ip, r0, r0 + 4fb8: 6c657269 sfmvs f7, 2, [r5], #-420 + 4fbc: 4c737365 ldclmi 3, cr7, [r3], #-404 + 4fc0: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 4fc4: 746d676e strbtvc r6, [sp], #-1902 + 4fc8: 0100632e tsteq r0, lr, lsr #6 + 4fcc: cbf798a6 blgt ffdeb26c + 4fd0: 0001d604 andeq sp, r1, r4, lsl #12 + 4fd4: 30020500 andcc r0, r2, r0, lsl #10 + 4fd8: 0500403a streq r4, [r0, #-58] + 4fdc: 00c50301 sbceq r0, r5, r1, lsl #6 + 4fe0: 1303050e movwne r0, #13582 ; 0x350e + 4fe4: 17160505 ldrne r0, [r6, -r5, lsl #10] + 4fe8: 0c03052d cfstr32eq mvfx0, [r3], {45} + 4fec: 01000202 tsteq r0, r2, lsl #4 + 4ff0: 00000001 andeq r0, r0, r1 + 4ff4: 000000a9 andeq r0, r0, r9, lsr #1 + 4ff8: 008e0002 addeq r0, lr, r2 + 4ffc: 01020000 tsteq r2, r0 + 5000: 000a0500 andeq r0, sl, r0, lsl #10 + 5004: 01010101 tsteq r1, r1, lsl #2 + 5008: 00000000 andeq r0, r0, r0 + 500c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5010: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5014: 73746e65 cmnvc r4, #1616 ; 0x650 + 5018: 646e6120 strbtvs r6, [lr], #-288 + 501c: 74655320 strbtvc r5, [r5], #-800 + 5020: 676e6974 undefined + 5024: 616d5c73 smcvs 54723 + 5028: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 502c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5030: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5034: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5038: 775c7374 undefined + 503c: 6f632d73 svcvs 0x00632d73 + 5040: 6f72746e svcvs 0x0072746e + 5044: 65575c6c ldrbvs r5, [r7, #-3180] + 5048: 65687461 strbvs r7, [r8, #-1121]! + 504c: 74532072 ldrbvc r2, [r3], #-114 + 5050: 6f697461 svcvs 0x00697461 + 5054: 6f43206e svcvs 0x0043206e + 5058: 6f72746e svcvs 0x0072746e + 505c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5060: 414d535c cmpmi sp, ip, asr r3 + 5064: 6f535c43 svcvs 0x00535c43 + 5068: 65637275 strbvs r7, [r3, #-629]! + 506c: 5700005c smlsdpl r0, ip, r0, r0 + 5070: 6c657269 sfmvs f7, 2, [r5], #-420 + 5074: 4c737365 ldclmi 3, cr7, [r3], #-404 + 5078: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 507c: 746d676e strbtvc r6, [sp], #-1902 + 5080: 0100632e tsteq r0, lr, lsr #6 + 5084: cbf798a6 blgt ffdeb324 + 5088: 0001d604 andeq sp, r1, r4, lsl #12 + 508c: 00020500 andeq r0, r2, r0, lsl #10 + 5090: 05000000 streq r0, [r0] + 5094: 00da0301 sbcseq r0, sl, r1, lsl #6 + 5098: 1003050e andne r0, r3, lr, lsl #10 + 509c: 01000902 tsteq r0, r2, lsl #18 + 50a0: 00000001 andeq r0, r0, r1 + 50a4: 000000aa andeq r0, r0, sl, lsr #1 + 50a8: 008e0002 addeq r0, lr, r2 + 50ac: 01020000 tsteq r2, r0 + 50b0: 000a0500 andeq r0, sl, r0, lsl #10 + 50b4: 01010101 tsteq r1, r1, lsl #2 + 50b8: 00000000 andeq r0, r0, r0 + 50bc: 445c3a43 ldrbmi r3, [ip], #-2627 + 50c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 50c4: 73746e65 cmnvc r4, #1616 ; 0x650 + 50c8: 646e6120 strbtvs r6, [lr], #-288 + 50cc: 74655320 strbtvc r5, [r5], #-800 + 50d0: 676e6974 undefined + 50d4: 616d5c73 smcvs 54723 + 50d8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 50dc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 50e0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 50e4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 50e8: 775c7374 undefined + 50ec: 6f632d73 svcvs 0x00632d73 + 50f0: 6f72746e svcvs 0x0072746e + 50f4: 65575c6c ldrbvs r5, [r7, #-3180] + 50f8: 65687461 strbvs r7, [r8, #-1121]! + 50fc: 74532072 ldrbvc r2, [r3], #-114 + 5100: 6f697461 svcvs 0x00697461 + 5104: 6f43206e svcvs 0x0043206e + 5108: 6f72746e svcvs 0x0072746e + 510c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5110: 414d535c cmpmi sp, ip, asr r3 + 5114: 6f535c43 svcvs 0x00535c43 + 5118: 65637275 strbvs r7, [r3, #-629]! + 511c: 5700005c smlsdpl r0, ip, r0, r0 + 5120: 6c657269 sfmvs f7, 2, [r5], #-420 + 5124: 4c737365 ldclmi 3, cr7, [r3], #-404 + 5128: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 512c: 746d676e strbtvc r6, [sp], #-1902 + 5130: 0100632e tsteq r0, lr, lsr #6 + 5134: cbf798a6 blgt ffdeb3d4 + 5138: 0001d604 andeq sp, r1, r4, lsl #12 + 513c: 54020500 strpl r0, [r2], #-1280 + 5140: 0500403a streq r4, [r0, #-58] + 5144: 00e60301 rsceq r0, r6, r1, lsl #6 + 5148: 1003050e andne r0, r3, lr, lsl #10 + 514c: 00010229 andeq r0, r1, r9, lsr #4 + 5150: 00000101 andeq r0, r0, r1, lsl #2 + 5154: 000000ad andeq r0, r0, sp, lsr #1 + 5158: 008e0002 addeq r0, lr, r2 + 515c: 01020000 tsteq r2, r0 + 5160: 000a0500 andeq r0, sl, r0, lsl #10 + 5164: 01010101 tsteq r1, r1, lsl #2 + 5168: 00000000 andeq r0, r0, r0 + 516c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5170: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5174: 73746e65 cmnvc r4, #1616 ; 0x650 + 5178: 646e6120 strbtvs r6, [lr], #-288 + 517c: 74655320 strbtvc r5, [r5], #-800 + 5180: 676e6974 undefined + 5184: 616d5c73 smcvs 54723 + 5188: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 518c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5190: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5194: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5198: 775c7374 undefined + 519c: 6f632d73 svcvs 0x00632d73 + 51a0: 6f72746e svcvs 0x0072746e + 51a4: 65575c6c ldrbvs r5, [r7, #-3180] + 51a8: 65687461 strbvs r7, [r8, #-1121]! + 51ac: 74532072 ldrbvc r2, [r3], #-114 + 51b0: 6f697461 svcvs 0x00697461 + 51b4: 6f43206e svcvs 0x0043206e + 51b8: 6f72746e svcvs 0x0072746e + 51bc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 51c0: 414d535c cmpmi sp, ip, asr r3 + 51c4: 6f535c43 svcvs 0x00535c43 + 51c8: 65637275 strbvs r7, [r3, #-629]! + 51cc: 5700005c smlsdpl r0, ip, r0, r0 + 51d0: 6c657269 sfmvs f7, 2, [r5], #-420 + 51d4: 4c737365 ldclmi 3, cr7, [r3], #-404 + 51d8: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 51dc: 746d676e strbtvc r6, [sp], #-1902 + 51e0: 0100632e tsteq r0, lr, lsr #6 + 51e4: cbf798a6 blgt ffdeb484 + 51e8: 0001d604 andeq sp, r1, r4, lsl #12 + 51ec: 00020500 andeq r0, r2, r0, lsl #10 + 51f0: 05000000 streq r0, [r0] + 51f4: 00f30301 rscseq r0, r3, r1, lsl #6 + 51f8: 1003050e andne r0, r3, lr, lsl #10 + 51fc: 17240505 strne r0, [r4, -r5, lsl #10]! + 5200: 01000402 tsteq r0, r2, lsl #8 + 5204: 00000001 andeq r0, r0, r1 + 5208: 000000af andeq r0, r0, pc, lsr #1 + 520c: 008e0002 addeq r0, lr, r2 + 5210: 01020000 tsteq r2, r0 + 5214: 000a0500 andeq r0, sl, r0, lsl #10 + 5218: 01010101 tsteq r1, r1, lsl #2 + 521c: 00000000 andeq r0, r0, r0 + 5220: 445c3a43 ldrbmi r3, [ip], #-2627 + 5224: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5228: 73746e65 cmnvc r4, #1616 ; 0x650 + 522c: 646e6120 strbtvs r6, [lr], #-288 + 5230: 74655320 strbtvc r5, [r5], #-800 + 5234: 676e6974 undefined + 5238: 616d5c73 smcvs 54723 + 523c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5240: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5244: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5248: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 524c: 775c7374 undefined + 5250: 6f632d73 svcvs 0x00632d73 + 5254: 6f72746e svcvs 0x0072746e + 5258: 65575c6c ldrbvs r5, [r7, #-3180] + 525c: 65687461 strbvs r7, [r8, #-1121]! + 5260: 74532072 ldrbvc r2, [r3], #-114 + 5264: 6f697461 svcvs 0x00697461 + 5268: 6f43206e svcvs 0x0043206e + 526c: 6f72746e svcvs 0x0072746e + 5270: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5274: 414d535c cmpmi sp, ip, asr r3 + 5278: 6f535c43 svcvs 0x00535c43 + 527c: 65637275 strbvs r7, [r3, #-629]! + 5280: 5700005c smlsdpl r0, ip, r0, r0 + 5284: 6c657269 sfmvs f7, 2, [r5], #-420 + 5288: 4c737365 ldclmi 3, cr7, [r3], #-404 + 528c: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 5290: 746d676e strbtvc r6, [sp], #-1902 + 5294: 0100632e tsteq r0, lr, lsr #6 + 5298: cbf798a6 blgt ffdeb538 + 529c: 0001d604 andeq sp, r1, r4, lsl #12 + 52a0: 64020500 strvs r0, [r2], #-1280 + 52a4: 0500403a streq r4, [r0, #-58] + 52a8: 01840301 orreq r0, r4, r1, lsl #6 + 52ac: 1103050e tstne r3, lr, lsl #10 + 52b0: 051a0505 ldreq r0, [sl, #-1285] + 52b4: 15291706 strne r1, [r9, #-1798]! + 52b8: 00010100 andeq r0, r1, r0, lsl #2 + 52bc: 00000022 andeq r0, r0, r2, lsr #32 + 52c0: 00100002 andseq r0, r0, r2 + 52c4: 01020000 tsteq r2, r0 + 52c8: 000a0500 andeq r0, sl, r0, lsl #10 + 52cc: 01010101 tsteq r1, r1, lsl #2 + 52d0: 00000000 andeq r0, r0, r0 + 52d4: 05000000 streq r0, [r0] + 52d8: 403a8002 eorsmi r8, sl, r2 + 52dc: 00020200 andeq r0, r2, r0, lsl #4 + 52e0: 00000101 andeq r0, r0, r1, lsl #2 + 52e4: 00000022 andeq r0, r0, r2, lsr #32 + 52e8: 00100002 andseq r0, r0, r2 + 52ec: 01040000 tsteq r4, r0 + 52f0: 000a0500 andeq r0, sl, r0, lsl #10 + 52f4: 01010101 tsteq r1, r1, lsl #2 + 52f8: 00000000 andeq r0, r0, r0 + 52fc: 05000000 streq r0, [r0] + 5300: 403a8402 eorsmi r8, sl, r2, lsl #8 + 5304: 00020200 andeq r0, r2, r0, lsl #4 + 5308: 00000101 andeq r0, r0, r1, lsl #2 + 530c: 000000b0 strheq r0, [r0], -r0 + 5310: 008e0002 addeq r0, lr, r2 + 5314: 01020000 tsteq r2, r0 + 5318: 000a0500 andeq r0, sl, r0, lsl #10 + 531c: 01010101 tsteq r1, r1, lsl #2 + 5320: 00000000 andeq r0, r0, r0 + 5324: 445c3a43 ldrbmi r3, [ip], #-2627 + 5328: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 532c: 73746e65 cmnvc r4, #1616 ; 0x650 + 5330: 646e6120 strbtvs r6, [lr], #-288 + 5334: 74655320 strbtvc r5, [r5], #-800 + 5338: 676e6974 undefined + 533c: 616d5c73 smcvs 54723 + 5340: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5344: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5348: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 534c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5350: 775c7374 undefined + 5354: 6f632d73 svcvs 0x00632d73 + 5358: 6f72746e svcvs 0x0072746e + 535c: 65575c6c ldrbvs r5, [r7, #-3180] + 5360: 65687461 strbvs r7, [r8, #-1121]! + 5364: 74532072 ldrbvc r2, [r3], #-114 + 5368: 6f697461 svcvs 0x00697461 + 536c: 6f43206e svcvs 0x0043206e + 5370: 6f72746e svcvs 0x0072746e + 5374: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5378: 414d535c cmpmi sp, ip, asr r3 + 537c: 6f535c43 svcvs 0x00535c43 + 5380: 65637275 strbvs r7, [r3, #-629]! + 5384: 5700005c smlsdpl r0, ip, r0, r0 + 5388: 6c657269 sfmvs f7, 2, [r5], #-420 + 538c: 4c737365 ldclmi 3, cr7, [r3], #-404 + 5390: 4d6b6e69 stclmi 14, cr6, [fp, #-420]! + 5394: 746d676e strbtvc r6, [sp], #-1902 + 5398: 0100632e tsteq r0, lr, lsr #6 + 539c: cbf798a6 blgt ffdeb63c + 53a0: 0001d604 andeq sp, r1, r4, lsl #12 + 53a4: 8e020500 cfsh32hi mvfx0, mvfx2, #0 + 53a8: 0500403a streq r4, [r0, #-58] + 53ac: 01ad0301 undefined instruction 0x01ad0301 + 53b0: 1103050e tstne r3, lr, lsl #10 + 53b4: 17150505 ldrne r0, [r5, -r5, lsl #10] + 53b8: 021b0305 andseq r0, fp, #335544320 ; 0x14000000 + 53bc: 01010003 tsteq r1, r3 + 53c0: 0000018a andeq r0, r0, sl, lsl #3 + 53c4: 01840002 orreq r0, r4, r2 + 53c8: 01010000 tsteq r1, r0 + 53cc: 000a0500 andeq r0, sl, r0, lsl #10 + 53d0: 01010101 tsteq r1, r1, lsl #2 + 53d4: 00000000 andeq r0, r0, r0 + 53d8: 445c3a43 ldrbmi r3, [ip], #-2627 + 53dc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 53e0: 73746e65 cmnvc r4, #1616 ; 0x650 + 53e4: 646e6120 strbtvs r6, [lr], #-288 + 53e8: 74655320 strbtvc r5, [r5], #-800 + 53ec: 676e6974 undefined + 53f0: 616d5c73 smcvs 54723 + 53f4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 53f8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 53fc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5400: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5404: 775c7374 undefined + 5408: 6f632d73 svcvs 0x00632d73 + 540c: 6f72746e svcvs 0x0072746e + 5410: 65575c6c ldrbvs r5, [r7, #-3180] + 5414: 65687461 strbvs r7, [r8, #-1121]! + 5418: 74532072 ldrbvc r2, [r3], #-114 + 541c: 6f697461 svcvs 0x00697461 + 5420: 6f43206e svcvs 0x0043206e + 5424: 6f72746e svcvs 0x0072746e + 5428: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 542c: 4d4c505c stclmi 0, cr5, [ip, #-368] + 5430: 746e495c strbtvc r4, [lr], #-2396 + 5434: 61667265 cmnvs r6, r5, ror #4 + 5438: 005c6563 subseq r6, ip, r3, ror #10 + 543c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5440: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5444: 73746e65 cmnvc r4, #1616 ; 0x650 + 5448: 646e6120 strbtvs r6, [lr], #-288 + 544c: 74655320 strbtvc r5, [r5], #-800 + 5450: 676e6974 undefined + 5454: 616d5c73 smcvs 54723 + 5458: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 545c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5460: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5464: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5468: 775c7374 undefined + 546c: 6f632d73 svcvs 0x00632d73 + 5470: 6f72746e svcvs 0x0072746e + 5474: 65575c6c ldrbvs r5, [r7, #-3180] + 5478: 65687461 strbvs r7, [r8, #-1121]! + 547c: 74532072 ldrbvc r2, [r3], #-114 + 5480: 6f697461 svcvs 0x00697461 + 5484: 6f43206e svcvs 0x0043206e + 5488: 6f72746e svcvs 0x0072746e + 548c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5490: 414d535c cmpmi sp, ip, asr r3 + 5494: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 5498: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 549c: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 54a0: 66726574 undefined + 54a4: 5c656361 stclpl 3, cr6, [r5], #-388 + 54a8: 72646867 rsbvc r6, r4, #6750208 ; 0x670000 + 54ac: 3a43005c bcc 10c5624 + 54b0: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 54b4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 54b8: 61207374 teqvs r0, r4, ror r3 + 54bc: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 54c0: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 54c4: 5c73676e ldclpl 7, cr6, [r3], #-440 + 54c8: 766c616d strbtvc r6, [ip], -sp, ror #2 + 54cc: 5c617269 sfmpl f7, 2, [r1], #-420 + 54d0: 4420794d strtmi r7, [r0], #-2381 + 54d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 54d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 54dc: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 54e0: 746e6f63 strbtvc r6, [lr], #-3939 + 54e4: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 54e8: 74616557 strbtvc r6, [r1], #-1367 + 54ec: 20726568 rsbscs r6, r2, r8, ror #10 + 54f0: 74617453 strbtvc r7, [r1], #-1107 + 54f4: 206e6f69 rsbcs r6, lr, r9, ror #30 + 54f8: 746e6f43 strbtvc r6, [lr], #-3907 + 54fc: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 5500: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 5504: 5c43414d stfple f4, [r3], {77} + 5508: 76697244 strbtvc r7, [r9], -r4, asr #4 + 550c: 5c737265 lfmpl f7, 2, [r3], #-404 + 5510: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 5514: 005c6563 subseq r6, ip, r3, ror #10 + 5518: 626d4500 rsbvs r4, sp, #0 ; 0x0 + 551c: 65646465 strbvs r6, [r4, #-1125]! + 5520: 70795464 rsbsvc r5, r9, r4, ror #8 + 5524: 682e7365 stmdavs lr!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 5528: 9d9e0100 ldflss f0, [lr] + 552c: 7704c0d7 undefined + 5530: 6163616d cmnvs r3, sp, ror #2 + 5534: 0200682e andeq r6, r0, #3014656 ; 0x2e0000 + 5538: c49dadc2 ldrgt sl, [sp], #3522 + 553c: 6d038c04 stcvs 12, cr8, [r3, #-16] + 5540: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} + 5544: a8030063 stmdage r3, {r0, r1, r5, r6} + 5548: 04c5d0be strbeq sp, [r5], #190 + 554c: 00000043 andeq r0, r0, r3, asr #32 + 5550: 000000ae andeq r0, r0, lr, lsr #1 + 5554: 00880002 addeq r0, r8, r2 + 5558: 01020000 tsteq r2, r0 + 555c: 000a0500 andeq r0, sl, r0, lsl #10 + 5560: 01010101 tsteq r1, r1, lsl #2 + 5564: 00000000 andeq r0, r0, r0 + 5568: 445c3a43 ldrbmi r3, [ip], #-2627 + 556c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5570: 73746e65 cmnvc r4, #1616 ; 0x650 + 5574: 646e6120 strbtvs r6, [lr], #-288 + 5578: 74655320 strbtvc r5, [r5], #-800 + 557c: 676e6974 undefined + 5580: 616d5c73 smcvs 54723 + 5584: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5588: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 558c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5590: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5594: 775c7374 undefined + 5598: 6f632d73 svcvs 0x00632d73 + 559c: 6f72746e svcvs 0x0072746e + 55a0: 65575c6c ldrbvs r5, [r7, #-3180] + 55a4: 65687461 strbvs r7, [r8, #-1121]! + 55a8: 74532072 ldrbvc r2, [r3], #-114 + 55ac: 6f697461 svcvs 0x00697461 + 55b0: 6f43206e svcvs 0x0043206e + 55b4: 6f72746e svcvs 0x0072746e + 55b8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 55bc: 414d535c cmpmi sp, ip, asr r3 + 55c0: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 55c4: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 55c8: 6f535c73 svcvs 0x00535c73 + 55cc: 65637275 strbvs r7, [r3, #-629]! + 55d0: 6d00005c stcvs 0, cr0, [r0, #-368] + 55d4: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} + 55d8: a8010063 stmdage r1, {r0, r1, r5, r6} + 55dc: 04c5d0be strbeq sp, [r5], #190 + 55e0: 05000043 streq r0, [r0, #-67] + 55e4: 403e7002 eorsmi r7, lr, r2 + 55e8: 03010500 movweq r0, #5376 ; 0x1500 + 55ec: 03050e32 movweq r0, #24114 ; 0x5e32 + 55f0: 2105050c tstcs r5, ip, lsl #10 + 55f4: 05160905 ldreq r0, [r6, #-2309] + 55f8: 01051c03 tsteq r5, r3, lsl #24 + 55fc: 0008021a andeq r0, r8, sl, lsl r2 + 5600: 00000101 andeq r0, r0, r1, lsl #2 + 5604: 000008cf andeq r0, r0, pc, asr #17 + 5608: 08c90002 stmiaeq r9, {r1}^ + 560c: 01010000 tsteq r1, r0 + 5610: 000a0500 andeq r0, sl, r0, lsl #10 + 5614: 01010101 tsteq r1, r1, lsl #2 + 5618: 00000000 andeq r0, r0, r0 + 561c: 445c3a43 ldrbmi r3, [ip], #-2627 + 5620: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5624: 73746e65 cmnvc r4, #1616 ; 0x650 + 5628: 646e6120 strbtvs r6, [lr], #-288 + 562c: 74655320 strbtvc r5, [r5], #-800 + 5630: 676e6974 undefined + 5634: 616d5c73 smcvs 54723 + 5638: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 563c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5640: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5644: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5648: 775c7374 undefined + 564c: 6f632d73 svcvs 0x00632d73 + 5650: 6f72746e svcvs 0x0072746e + 5654: 65575c6c ldrbvs r5, [r7, #-3180] + 5658: 65687461 strbvs r7, [r8, #-1121]! + 565c: 74532072 ldrbvc r2, [r3], #-114 + 5660: 6f697461 svcvs 0x00697461 + 5664: 6f43206e svcvs 0x0043206e + 5668: 6f72746e svcvs 0x0072746e + 566c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5670: 7070415c rsbsvc r4, r0, ip, asr r1 + 5674: 6163696c cmnvs r3, ip, ror #18 + 5678: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 567c: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} + 5680: 75676966 strbvc r6, [r7, #-2406]! + 5684: 005c6572 subseq r6, ip, r2, ror r5 + 5688: 445c3a43 ldrbmi r3, [ip], #-2627 + 568c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5690: 73746e65 cmnvc r4, #1616 ; 0x650 + 5694: 646e6120 strbtvs r6, [lr], #-288 + 5698: 74655320 strbtvc r5, [r5], #-800 + 569c: 676e6974 undefined + 56a0: 616d5c73 smcvs 54723 + 56a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 56a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 56ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 56b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 56b4: 775c7374 undefined + 56b8: 6f632d73 svcvs 0x00632d73 + 56bc: 6f72746e svcvs 0x0072746e + 56c0: 65575c6c ldrbvs r5, [r7, #-3180] + 56c4: 65687461 strbvs r7, [r8, #-1121]! + 56c8: 74532072 ldrbvc r2, [r3], #-114 + 56cc: 6f697461 svcvs 0x00697461 + 56d0: 6f43206e svcvs 0x0043206e + 56d4: 6f72746e svcvs 0x0072746e + 56d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 56dc: 7070415c rsbsvc r4, r0, ip, asr r1 + 56e0: 6163696c cmnvs r3, ip, ror #18 + 56e4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 56e8: 61744f5c cmnvs r4, ip, asr pc + 56ec: 43005c70 movwmi r5, #3184 ; 0xc70 + 56f0: 6f445c3a svcvs 0x00445c3a + 56f4: 656d7563 strbvs r7, [sp, #-1379]! + 56f8: 2073746e rsbscs r7, r3, lr, ror #8 + 56fc: 20646e61 rsbcs r6, r4, r1, ror #28 + 5700: 74746553 ldrbtvc r6, [r4], #-1363 + 5704: 73676e69 cmnvc r7, #1680 ; 0x690 + 5708: 6c616d5c stclvs 13, cr6, [r1], #-368 + 570c: 61726976 cmnvs r2, r6, ror r9 + 5710: 20794d5c rsbscs r4, r9, ip, asr sp + 5714: 75636f44 strbvc r6, [r3, #-3908]! + 5718: 746e656d strbtvc r6, [lr], #-1389 + 571c: 73775c73 cmnvc r7, #29440 ; 0x7300 + 5720: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 5724: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5728: 6165575c cmnvs r5, ip, asr r7 + 572c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 5730: 61745320 cmnvs r4, r0, lsr #6 + 5734: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5738: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 573c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5740: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 5744: 6c707041 ldclvs 0, cr7, [r0], #-260 + 5748: 74616369 strbtvc r6, [r1], #-873 + 574c: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 5750: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 5754: 005c6563 subseq r6, ip, r3, ror #10 + 5758: 445c3a43 ldrbmi r3, [ip], #-2627 + 575c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5760: 73746e65 cmnvc r4, #1616 ; 0x650 + 5764: 646e6120 strbtvs r6, [lr], #-288 + 5768: 74655320 strbtvc r5, [r5], #-800 + 576c: 676e6974 undefined + 5770: 616d5c73 smcvs 54723 + 5774: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5778: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 577c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5780: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5784: 775c7374 undefined + 5788: 6f632d73 svcvs 0x00632d73 + 578c: 6f72746e svcvs 0x0072746e + 5790: 65575c6c ldrbvs r5, [r7, #-3180] + 5794: 65687461 strbvs r7, [r8, #-1121]! + 5798: 74532072 ldrbvc r2, [r3], #-114 + 579c: 6f697461 svcvs 0x00697461 + 57a0: 6f43206e svcvs 0x0043206e + 57a4: 6f72746e svcvs 0x0072746e + 57a8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 57ac: 7070415c rsbsvc r4, r0, ip, asr r1 + 57b0: 6163696c cmnvs r3, ip, ror #18 + 57b4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 57b8: 6974555c ldmdbvs r4!, {r2, r3, r4, r6, r8, sl, ip, lr}^ + 57bc: 6974696c ldmdbvs r4!, {r2, r3, r5, r6, r8, fp, sp, lr}^ + 57c0: 005c7365 subseq r7, ip, r5, ror #6 + 57c4: 445c3a43 ldrbmi r3, [ip], #-2627 + 57c8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 57cc: 73746e65 cmnvc r4, #1616 ; 0x650 + 57d0: 646e6120 strbtvs r6, [lr], #-288 + 57d4: 74655320 strbtvc r5, [r5], #-800 + 57d8: 676e6974 undefined + 57dc: 616d5c73 smcvs 54723 + 57e0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 57e4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 57e8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 57ec: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 57f0: 775c7374 undefined + 57f4: 6f632d73 svcvs 0x00632d73 + 57f8: 6f72746e svcvs 0x0072746e + 57fc: 65575c6c ldrbvs r5, [r7, #-3180] + 5800: 65687461 strbvs r7, [r8, #-1121]! + 5804: 74532072 ldrbvc r2, [r3], #-114 + 5808: 6f697461 svcvs 0x00697461 + 580c: 6f43206e svcvs 0x0043206e + 5810: 6f72746e svcvs 0x0072746e + 5814: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5818: 4d4c505c stclmi 0, cr5, [ip, #-368] + 581c: 746e495c strbtvc r4, [lr], #-2396 + 5820: 61667265 cmnvs r6, r5, ror #4 + 5824: 005c6563 subseq r6, ip, r3, ror #10 + 5828: 445c3a43 ldrbmi r3, [ip], #-2627 + 582c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5830: 73746e65 cmnvc r4, #1616 ; 0x650 + 5834: 646e6120 strbtvs r6, [lr], #-288 + 5838: 74655320 strbtvc r5, [r5], #-800 + 583c: 676e6974 undefined + 5840: 616d5c73 smcvs 54723 + 5844: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5848: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 584c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5850: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5854: 775c7374 undefined + 5858: 6f632d73 svcvs 0x00632d73 + 585c: 6f72746e svcvs 0x0072746e + 5860: 65575c6c ldrbvs r5, [r7, #-3180] + 5864: 65687461 strbvs r7, [r8, #-1121]! + 5868: 74532072 ldrbvc r2, [r3], #-114 + 586c: 6f697461 svcvs 0x00697461 + 5870: 6f43206e svcvs 0x0043206e + 5874: 6f72746e svcvs 0x0072746e + 5878: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 587c: 4d4c505c stclmi 0, cr5, [ip, #-368] + 5880: 42494c5c submi r4, r9, #23552 ; 0x5c00 + 5884: 65746e49 ldrbvs r6, [r4, #-3657]! + 5888: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 588c: 43005c65 movwmi r5, #3173 ; 0xc65 + 5890: 6f445c3a svcvs 0x00445c3a + 5894: 656d7563 strbvs r7, [sp, #-1379]! + 5898: 2073746e rsbscs r7, r3, lr, ror #8 + 589c: 20646e61 rsbcs r6, r4, r1, ror #28 + 58a0: 74746553 ldrbtvc r6, [r4], #-1363 + 58a4: 73676e69 cmnvc r7, #1680 ; 0x690 + 58a8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 58ac: 61726976 cmnvs r2, r6, ror r9 + 58b0: 20794d5c rsbscs r4, r9, ip, asr sp + 58b4: 75636f44 strbvc r6, [r3, #-3908]! + 58b8: 746e656d strbtvc r6, [lr], #-1389 + 58bc: 73775c73 cmnvc r7, #29440 ; 0x7300 + 58c0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 58c4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 58c8: 6165575c cmnvs r5, ip, asr r7 + 58cc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 58d0: 61745320 cmnvs r4, r0, lsr #6 + 58d4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 58d8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 58dc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 58e0: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 58e4: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 58e8: 4962694c stmdbmi r2!, {r2, r3, r6, r8, fp, sp, lr}^ + 58ec: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 58f0: 65636166 strbvs r6, [r3, #-358]! + 58f4: 3a43005c bcc 10c5a6c + 58f8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 58fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5900: 61207374 teqvs r0, r4, ror r3 + 5904: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 5908: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 590c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 5910: 766c616d strbtvc r6, [ip], -sp, ror #2 + 5914: 5c617269 sfmpl f7, 2, [r1], #-420 + 5918: 4420794d strtmi r7, [r0], #-2381 + 591c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5920: 73746e65 cmnvc r4, #1616 ; 0x650 + 5924: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 5928: 746e6f63 strbtvc r6, [lr], #-3939 + 592c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 5930: 74616557 strbtvc r6, [r1], #-1367 + 5934: 20726568 rsbscs r6, r2, r8, ror #10 + 5938: 74617453 strbtvc r7, [r1], #-1107 + 593c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 5940: 746e6f43 strbtvc r6, [lr], #-3907 + 5944: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 5948: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 594c: 5c43414d stfple f4, [r3], {77} + 5950: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 5954: 72756769 rsbsvc r6, r5, #27525120 ; 0x1a40000 + 5958: 43005c65 movwmi r5, #3173 ; 0xc65 + 595c: 6f445c3a svcvs 0x00445c3a + 5960: 656d7563 strbvs r7, [sp, #-1379]! + 5964: 2073746e rsbscs r7, r3, lr, ror #8 + 5968: 20646e61 rsbcs r6, r4, r1, ror #28 + 596c: 74746553 ldrbtvc r6, [r4], #-1363 + 5970: 73676e69 cmnvc r7, #1680 ; 0x690 + 5974: 6c616d5c stclvs 13, cr6, [r1], #-368 + 5978: 61726976 cmnvs r2, r6, ror r9 + 597c: 20794d5c rsbscs r4, r9, ip, asr sp + 5980: 75636f44 strbvc r6, [r3, #-3908]! + 5984: 746e656d strbtvc r6, [lr], #-1389 + 5988: 73775c73 cmnvc r7, #29440 ; 0x7300 + 598c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 5990: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5994: 6165575c cmnvs r5, ip, asr r7 + 5998: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 599c: 61745320 cmnvs r4, r0, lsr #6 + 59a0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 59a4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 59a8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 59ac: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 59b0: 43414d53 movtmi r4, #7507 ; 0x1d53 + 59b4: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 59b8: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 59bc: 6e6f435c mcrvs 3, 3, r4, cr15, cr12, {2} + 59c0: 75676966 strbvc r6, [r7, #-2406]! + 59c4: 005c6572 subseq r6, ip, r2, ror r5 + 59c8: 445c3a43 ldrbmi r3, [ip], #-2627 + 59cc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 59d0: 73746e65 cmnvc r4, #1616 ; 0x650 + 59d4: 646e6120 strbtvs r6, [lr], #-288 + 59d8: 74655320 strbtvc r5, [r5], #-800 + 59dc: 676e6974 undefined + 59e0: 616d5c73 smcvs 54723 + 59e4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 59e8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 59ec: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 59f0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 59f4: 775c7374 undefined + 59f8: 6f632d73 svcvs 0x00632d73 + 59fc: 6f72746e svcvs 0x0072746e + 5a00: 65575c6c ldrbvs r5, [r7, #-3180] + 5a04: 65687461 strbvs r7, [r8, #-1121]! + 5a08: 74532072 ldrbvc r2, [r3], #-114 + 5a0c: 6f697461 svcvs 0x00697461 + 5a10: 6f43206e svcvs 0x0043206e + 5a14: 6f72746e svcvs 0x0072746e + 5a18: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5a1c: 414d535c cmpmi sp, ip, asr r3 + 5a20: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 5a24: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 5a28: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 5a2c: 66726574 undefined + 5a30: 5c656361 stclpl 3, cr6, [r5], #-388 + 5a34: 5c3a4300 ldcpl 3, cr4, [sl] + 5a38: 75636f44 strbvc r6, [r3, #-3908]! + 5a3c: 746e656d strbtvc r6, [lr], #-1389 + 5a40: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 5a44: 65532064 ldrbvs r2, [r3, #-100] + 5a48: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 5a4c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 5a50: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 5a54: 4d5c6172 ldfmie f6, [ip, #-456] + 5a58: 6f442079 svcvs 0x00442079 + 5a5c: 656d7563 strbvs r7, [sp, #-1379]! + 5a60: 5c73746e cfldrdpl mvd7, [r3], #-440 + 5a64: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 5a68: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 5a6c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 5a70: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 5a74: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 5a78: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 5a7c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 5a80: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 5a84: 656c6c6f strbvs r6, [ip, #-3183]! + 5a88: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 5a8c: 445c4341 ldrbmi r4, [ip], #-833 + 5a90: 65766972 ldrbvs r6, [r6, #-2418]! + 5a94: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 5a98: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 5a9c: 65636166 strbvs r6, [r3, #-358]! + 5aa0: 6468675c strbtvs r6, [r8], #-1884 + 5aa4: 43005c72 movwmi r5, #3186 ; 0xc72 + 5aa8: 6f445c3a svcvs 0x00445c3a + 5aac: 656d7563 strbvs r7, [sp, #-1379]! + 5ab0: 2073746e rsbscs r7, r3, lr, ror #8 + 5ab4: 20646e61 rsbcs r6, r4, r1, ror #28 + 5ab8: 74746553 ldrbtvc r6, [r4], #-1363 + 5abc: 73676e69 cmnvc r7, #1680 ; 0x690 + 5ac0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 5ac4: 61726976 cmnvs r2, r6, ror r9 + 5ac8: 20794d5c rsbscs r4, r9, ip, asr sp + 5acc: 75636f44 strbvc r6, [r3, #-3908]! + 5ad0: 746e656d strbtvc r6, [lr], #-1389 + 5ad4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 5ad8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 5adc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5ae0: 6165575c cmnvs r5, ip, asr r7 + 5ae4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 5ae8: 61745320 cmnvs r4, r0, lsr #6 + 5aec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5af0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 5af4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5af8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 5afc: 43414d53 movtmi r4, #7507 ; 0x1d53 + 5b00: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 5b04: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 5b08: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 5b0c: 65746e49 ldrbvs r6, [r4, #-3657]! + 5b10: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 5b14: 43005c65 movwmi r5, #3173 ; 0xc65 + 5b18: 6f445c3a svcvs 0x00445c3a + 5b1c: 656d7563 strbvs r7, [sp, #-1379]! + 5b20: 2073746e rsbscs r7, r3, lr, ror #8 + 5b24: 20646e61 rsbcs r6, r4, r1, ror #28 + 5b28: 74746553 ldrbtvc r6, [r4], #-1363 + 5b2c: 73676e69 cmnvc r7, #1680 ; 0x690 + 5b30: 6c616d5c stclvs 13, cr6, [r1], #-368 + 5b34: 61726976 cmnvs r2, r6, ror r9 + 5b38: 20794d5c rsbscs r4, r9, ip, asr sp + 5b3c: 75636f44 strbvc r6, [r3, #-3908]! + 5b40: 746e656d strbtvc r6, [lr], #-1389 + 5b44: 73775c73 cmnvc r7, #29440 ; 0x7300 + 5b48: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 5b4c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5b50: 6165575c cmnvs r5, ip, asr r7 + 5b54: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 5b58: 61745320 cmnvs r4, r0, lsr #6 + 5b5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5b60: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 5b64: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 5b68: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 5b6c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 5b70: 746e495c strbtvc r4, [lr], #-2396 + 5b74: 61667265 cmnvs r6, r5, ror #4 + 5b78: 005c6563 subseq r6, ip, r3, ror #10 + 5b7c: 70706100 rsbsvc r6, r0, r0, lsl #2 + 5b80: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 5b84: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} + 5b88: c8010068 stmdagt r1, {r3, r5, r6} + 5b8c: 04c5d0be strbeq sp, [r5], #190 + 5b90: 61744f1c cmnvs r4, ip, lsl pc + 5b94: 00682e70 rsbeq r2, r8, r0, ror lr + 5b98: 88c29e02 stmiahi r2, {r1, r9, sl, fp, ip, pc}^ + 5b9c: 01a704c7 undefined instruction 0x01a704c7 + 5ba0: 74616577 strbtvc r6, [r1], #-1399 + 5ba4: 5f726568 svcpl 0x00726568 + 5ba8: 74617473 strbtvc r7, [r1], #-1139 + 5bac: 5f6e6f69 svcpl 0x006e6f69 + 5bb0: 746e6f63 strbtvc r6, [lr], #-3939 + 5bb4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 5bb8: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 5bbc: c9e20300 stmibgt r2!, {r8, r9}^ + 5bc0: be04cef2 mcrlt 14, 0, ip, cr4, cr2, {7} + 5bc4: 7369440a cmnvc r9, #167772160 ; 0xa000000 + 5bc8: 79616c70 stmdbvc r1!, {r4, r5, r6, sl, fp, sp, lr}^ + 5bcc: 0400682e streq r6, [r0], #-2094 + 5bd0: c5d0bea8 ldrbgt fp, [r0, #3752] + 5bd4: 4b02bd04 blmi b4fec + 5bd8: 6f627965 svcvs 0x00627965 + 5bdc: 2e647261 cdpcs 2, 6, cr7, cr4, cr1, {3} + 5be0: f7040068 undefined instruction 0xf7040068 + 5be4: 04ceedfb strbeq lr, [lr], #3579 + 5be8: 44434c7e strbmi r4, [r3], #-3198 + 5bec: 6e6f465f mcrvs 6, 3, r4, cr15, cr15, {2} + 5bf0: 00682e74 rsbeq r2, r8, r4, ror lr + 5bf4: d0bea804 adcsle sl, lr, r4, lsl #16 + 5bf8: 4c3504c5 cfldrsmi mvf0, [r5], #-788 + 5bfc: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 5c00: f7040068 undefined instruction 0xf7040068 + 5c04: 04ceedfb strbeq lr, [lr], #3579 + 5c08: 6f5302c4 svcvs 0x005302c4 + 5c0c: 2e646e75 mcrcs 14, 3, r6, cr4, cr5, {3} + 5c10: f7040068 undefined instruction 0xf7040068 + 5c14: 04ceedfb strbeq lr, [lr], #3579 + 5c18: 7261552f rsbvc r5, r1, #197132288 ; 0xbc00000 + 5c1c: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 5c20: 00682e6c rsbeq r2, r8, ip, ror #28 + 5c24: e6d7c004 ldrb ip, [r7], r4 + 5c28: 02b404c8 adcseq r0, r4, #-939524096 ; 0xc8000000 + 5c2c: 65626d45 strbvs r6, [r2, #-3397]! + 5c30: 64656464 strbtvs r6, [r5], #-1124 + 5c34: 65707954 ldrbvs r7, [r0, #-2388]! + 5c38: 00682e73 rsbeq r2, r8, r3, ror lr + 5c3c: d79d9e05 ldrle r9, [sp, r5, lsl #28] + 5c40: 507704c0 rsbspl r0, r7, r0, asr #9 + 5c44: 435f5257 cmpmi pc, #1879048197 ; 0x70000005 + 5c48: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 5c4c: 00682e67 rsbeq r2, r8, r7, ror #28 + 5c50: edfbf705 ldcl 7, cr15, [fp, #20]! + 5c54: 503104ce eorspl r0, r1, lr, asr #9 + 5c58: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 5c5c: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 5c60: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 5c64: a6050068 strge r0, [r5], -r8, rrx + 5c68: 04c5d0be strbeq sp, [r5], #190 + 5c6c: 5f46522e svcpl 0x0046522e + 5c70: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 5c74: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} + 5c78: fbf70500 blx ffdc7082 + 5c7c: 3204ceed andcc ip, r4, #3792 ; 0xed0 + 5c80: 54524155 ldrbpl r4, [r2], #-341 + 5c84: 746e495f strbtvc r4, [lr], #-2399 + 5c88: 61667265 cmnvs r6, r5, ror #4 + 5c8c: 682e6563 stmdavs lr!, {r0, r1, r5, r6, r8, sl, sp, lr} + 5c90: a3d70500 bicsge r0, r7, #0 ; 0x0 + 5c94: 7f04ceee svcvc 0x0004ceee + 5c98: 5f4d5243 svcpl 0x004d5243 + 5c9c: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 5ca0: 0600682e streq r6, [r0], -lr, lsr #16 + 5ca4: c0d78ff8 ldrshgt r8, [r7], #248 + 5ca8: 43028104 movwmi r8, #8452 ; 0x2104 + 5cac: 682e6d72 stmdavs lr!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} + 5cb0: 94f20600 ldrbtls r0, [r2], #1536 + 5cb4: cb04c0d7 blgt 136018 + 5cb8: 616c5005 cmnvs ip, r5 + 5cbc: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 + 5cc0: 00682e6d rsbeq r2, r8, sp, ror #28 + 5cc4: d794f206 ldrle pc, [r4, r6, lsl #4] + 5cc8: 03be04c0 undefined instruction 0x03be04c0 + 5ccc: 5f697353 svcpl 0x00697353 + 5cd0: 73676552 cmnvc r7, #343932928 ; 0x14800000 + 5cd4: 0600682e streq r6, [r0], -lr, lsr #16 + 5cd8: ba9196cc blt fe46b810 + 5cdc: 4101c504 tstmi r1, r4, lsl #10 + 5ce0: 495f4344 ldmdbmi pc, {r2, r6, r8, r9, lr}^ + 5ce4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 5ce8: 65636166 strbvs r6, [r3, #-358]! + 5cec: 0700682e streq r6, [r0, -lr, lsr #16] + 5cf0: c0d68482 sbcsgt r8, r6, r2, lsl #9 + 5cf4: 4703a604 strmi sl, [r3, -r4, lsl #12] + 5cf8: 5f4f4950 svcpl 0x004f4950 + 5cfc: 65746e49 ldrbvs r6, [r4, #-3657]! + 5d00: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 5d04: 00682e65 rsbeq r2, r8, r5, ror #28 + 5d08: d78ff807 strle pc, [pc, r7, lsl #16] + 5d0c: 069e04c0 ldreq r0, [lr], r0, asr #9 + 5d10: 5f435449 svcpl 0x00435449 + 5d14: 65746e49 ldrbvs r6, [r4, #-3657]! + 5d18: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 5d1c: 00682e65 rsbeq r2, r8, r5, ror #28 + 5d20: d78ff807 strle pc, [pc, r7, lsl #16] + 5d24: 02c404c0 sbceq r0, r4, #-1073741824 ; 0xc0000000 + 5d28: 65746e49 ldrbvs r6, [r4, #-3657]! + 5d2c: 70757272 rsbsvc r7, r5, r2, ror r2 + 5d30: 00682e74 rsbeq r2, r8, r4, ror lr + 5d34: d794f207 ldrle pc, [r4, r7, lsl #4] + 5d38: 4e1d04c0 cfmv64ami mvdx0, mvax13 + 5d3c: 682e4d56 stmdavs lr!, {r1, r2, r4, r6, r8, sl, fp, lr} + 5d40: 94f20700 ldrbtls r0, [r2], #1792 + 5d44: e504c0d7 str ip, [r4, #-215] + 5d48: 6d695401 cfstrdvs mvd5, [r9, #-4]! + 5d4c: 682e7265 stmdavs lr!, {r0, r2, r5, r6, r9, ip, sp, lr} + 5d50: 94f20700 ldrbtls r0, [r2], #1792 + 5d54: a404c0d7 strge ip, [r4], #-215 + 5d58: 72615504 rsbvc r5, r1, #16777216 ; 0x1000000 + 5d5c: 776f4c74 undefined + 5d60: 6576654c ldrbvs r6, [r6, #-1356]! + 5d64: 00682e6c rsbeq r2, r8, ip, ror #28 + 5d68: d794f207 ldrle pc, [r4, r7, lsl #4] + 5d6c: 04fd04c0 ldrbteq r0, [sp], #1216 + 5d70: 6974706f ldmdbvs r4!, {r0, r1, r2, r3, r5, r6, ip, sp, lr}^ + 5d74: 5f736e6f svcpl 0x00736e6f + 5d78: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 5d7c: 682e6769 stmdavs lr!, {r0, r3, r5, r6, r8, r9, sl, sp, lr} + 5d80: 8e8e0800 cdphi 8, 8, cr0, cr14, cr0, {0} + 5d84: 1f04c1d5 svcne 0x0004c1d5 + 5d88: 75636573 strbvc r6, [r3, #-1395]! + 5d8c: 79746972 ldmdbvc r4!, {r1, r4, r5, r6, r8, fp, sp, lr}^ + 5d90: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 5d94: 2e676966 cdpcs 9, 6, cr6, cr7, cr6, {3} + 5d98: f8080068 undefined instruction 0xf8080068 + 5d9c: 04ceedfb strbeq lr, [lr], #3579 + 5da0: 616f6224 cmnvs pc, r4, lsr #4 + 5da4: 635f6472 cmpvs pc, #1912602624 ; 0x72000000 + 5da8: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 5dac: 00682e67 rsbeq r2, r8, r7, ror #28 + 5db0: edfbf709 ldcl 7, cr15, [fp, #36]! + 5db4: 443d04ce ldrtmi r0, [sp], #-1230 + 5db8: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + 5dbc: 0a00682e beq 1fe7c + 5dc0: c5d0bea8 ldrbgt fp, [r0, #3752] + 5dc4: 72461904 subvc r1, r6, #65536 ; 0x10000 + 5dc8: 65447165 strbvs r7, [r4, #-357] + 5dcc: 74655370 strbtvc r5, [r5], #-880 + 5dd0: 676e6974 undefined + 5dd4: 00682e73 rsbeq r2, r8, r3, ror lr + 5dd8: edfbf70a ldcl 7, cr15, [fp, #40]! + 5ddc: 4d3704ce cfldrsmi mvf0, [r7, #-824]! + 5de0: 49616361 stmdbmi r1!, {r0, r5, r6, r8, r9, sp, lr}^ + 5de4: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 5de8: 74707572 ldrbtvc r7, [r0], #-1394 + 5dec: 0a00682e beq 1feac + 5df0: c5d0bea8 ldrbgt fp, [r0, #3752] + 5df4: 616d5d04 cmnvs sp, r4, lsl #26 + 5df8: 682e6163 stmdavs lr!, {r0, r1, r5, r6, r8, sp, lr} + 5dfc: adc20b00 vstrge d16, [r2] + 5e00: 8c04c49d cfstrshi mvf12, [r4], {157} + 5e04: 6e795303 cdpvs 3, 7, cr5, cr9, cr3, {0} + 5e08: 73656874 cmnvc r5, #7602176 ; 0x740000 + 5e0c: 72657a69 rsbvc r7, r5, #430080 ; 0x69000 + 5e10: 636e695f cmnvs lr, #1556480 ; 0x17c000 + 5e14: 0c00682e stceq 8, cr6, [r0], {46} + 5e18: cc8199fa stcgt 9, cr9, [r1], {250} + 5e1c: 4701a004 strmi sl, [r1, -r4] + 5e20: 61626f6c cmnvs r2, ip, ror #30 + 5e24: 6665446c strbtvs r4, [r5], -ip, ror #8 + 5e28: 00682e73 rsbeq r2, r8, r3, ror lr + 5e2c: eea2ba0d cdp 10, 10, cr11, cr2, cr13, {0} + 5e30: 019104c5 orrseq r0, r1, r5, asr #9 + 5e34: 72444c48 subvc r4, r4, #18432 ; 0x4800 + 5e38: 00682e76 rsbeq r2, r8, r6, ror lr + 5e3c: eef5880d cdp 8, 15, cr8, cr5, cr13, {0} + 5e40: 019a04c1 orrseq r0, sl, r1, asr #9 + 5e44: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 5e48: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 5e4c: 6d656761 stclvs 7, cr6, [r5, #-388]! + 5e50: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 5e54: a60d0068 strge r0, [sp], -r8, rrx + 5e58: 04cbe6d8 strbeq lr, [fp], #1752 + 5e5c: 655303d1 ldrbvs r0, [r3, #-977] + 5e60: 69727563 ldmdbvs r2!, {r0, r1, r5, r6, r8, sl, ip, sp, lr}^ + 5e64: 6e4d7974 mcrvs 9, 2, r7, cr13, cr4, {3} + 5e68: 746e6d67 strbtvc r6, [lr], #-3431 + 5e6c: 0d00682e stceq 8, cr6, [r0, #-184] + 5e70: c0d68380 sbcsgt r8, r6, r0, lsl #7 + 5e74: 5401df04 strpl sp, [r1], #-3844 + 5e78: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5e7c: 76696563 strbtvc r6, [r9], -r3, ror #10 + 5e80: 6f437265 svcvs 0x00437265 + 5e84: 6769666e strbvs r6, [r9, -lr, ror #12]! + 5e88: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 5e8c: 682e746e stmdavs lr!, {r1, r2, r3, r5, r6, sl, ip, sp, lr} + 5e90: a0a20d00 adcge r0, r2, r0, lsl #26 + 5e94: e604c5ee str ip, [r4], -lr, ror #11 + 5e98: 61725401 cmnvs r2, r1, lsl #8 + 5e9c: 6563736e strbvs r7, [r3, #-878]! + 5ea0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 5ea4: 65776f50 ldrbvs r6, [r7, #-3920]! + 5ea8: 676e4d72 undefined + 5eac: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 5eb0: 960d0068 strls r0, [sp], -r8, rrx + 5eb4: 04c5faa9 strbeq pc, [r5], #2729 + 5eb8: 695701ca ldmdbvs r7, {r1, r3, r6, r7, r8}^ + 5ebc: 656c6572 strbvs r6, [ip, #-1394]! + 5ec0: 694c7373 stmdbvs ip, {r0, r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 5ec4: 6e4d6b6e fnmacdvs d22, d13, d30 + 5ec8: 2e746d67 cdpcs 13, 7, cr6, cr4, cr7, {3} + 5ecc: a60d0068 strge r0, [sp], -r8, rrx + 5ed0: 04cbf798 strbeq pc, [fp], #1944 + 5ed4: 00000297 muleq r0, r7, r2 + 5ed8: 000000bf strheq r0, [r0], -pc + 5edc: 009e0002 addseq r0, lr, r2 + 5ee0: 01020000 tsteq r2, r0 + 5ee4: 000a0500 andeq r0, sl, r0, lsl #10 + 5ee8: 01010101 tsteq r1, r1, lsl #2 + 5eec: 00000000 andeq r0, r0, r0 + 5ef0: 445c3a43 ldrbmi r3, [ip], #-2627 + 5ef4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5ef8: 73746e65 cmnvc r4, #1616 ; 0x650 + 5efc: 646e6120 strbtvs r6, [lr], #-288 + 5f00: 74655320 strbtvc r5, [r5], #-800 + 5f04: 676e6974 undefined + 5f08: 616d5c73 smcvs 54723 + 5f0c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5f10: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5f14: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5f18: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5f1c: 775c7374 undefined + 5f20: 6f632d73 svcvs 0x00632d73 + 5f24: 6f72746e svcvs 0x0072746e + 5f28: 65575c6c ldrbvs r5, [r7, #-3180] + 5f2c: 65687461 strbvs r7, [r8, #-1121]! + 5f30: 74532072 ldrbvc r2, [r3], #-114 + 5f34: 6f697461 svcvs 0x00697461 + 5f38: 6f43206e svcvs 0x0043206e + 5f3c: 6f72746e svcvs 0x0072746e + 5f40: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5f44: 7070415c rsbsvc r4, r0, ip, asr r1 + 5f48: 6163696c cmnvs r3, ip, ror #18 + 5f4c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5f50: 756f535c strbvc r5, [pc, #-860]! ; 5bfc + 5f54: 5c656372 stclpl 3, cr6, [r5], #-456 + 5f58: 65770000 ldrbvs r0, [r7]! + 5f5c: 65687461 strbvs r7, [r8, #-1121]! + 5f60: 74735f72 ldrbtvc r5, [r3], #-3954 + 5f64: 6f697461 svcvs 0x00697461 + 5f68: 6f635f6e svcvs 0x00635f6e + 5f6c: 6f72746e svcvs 0x0072746e + 5f70: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 5f74: 0100632e tsteq r0, lr, lsr #6 + 5f78: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 5f7c: 000abe04 andeq fp, sl, r4, lsl #28 + 5f80: 60020500 andvs r0, r2, r0, lsl #10 + 5f84: 05004009 streq r4, [r0, #-9] + 5f88: 01d10301 bicseq r0, r1, r1, lsl #6 + 5f8c: 1105050e tstne r5, lr, lsl #10 + 5f90: 05151f24 ldreq r1, [r5, #-3876] + 5f94: 03021c01 movweq r1, #11265 ; 0x2c01 + 5f98: 00010100 andeq r0, r1, r0, lsl #2 + 5f9c: 000000b9 strheq r0, [r0], -r9 + 5fa0: 009e0002 addseq r0, lr, r2 + 5fa4: 01020000 tsteq r2, r0 + 5fa8: 000a0500 andeq r0, sl, r0, lsl #10 + 5fac: 01010101 tsteq r1, r1, lsl #2 + 5fb0: 00000000 andeq r0, r0, r0 + 5fb4: 445c3a43 ldrbmi r3, [ip], #-2627 + 5fb8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 5fbc: 73746e65 cmnvc r4, #1616 ; 0x650 + 5fc0: 646e6120 strbtvs r6, [lr], #-288 + 5fc4: 74655320 strbtvc r5, [r5], #-800 + 5fc8: 676e6974 undefined + 5fcc: 616d5c73 smcvs 54723 + 5fd0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 5fd4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 5fd8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 5fdc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 5fe0: 775c7374 undefined + 5fe4: 6f632d73 svcvs 0x00632d73 + 5fe8: 6f72746e svcvs 0x0072746e + 5fec: 65575c6c ldrbvs r5, [r7, #-3180] + 5ff0: 65687461 strbvs r7, [r8, #-1121]! + 5ff4: 74532072 ldrbvc r2, [r3], #-114 + 5ff8: 6f697461 svcvs 0x00697461 + 5ffc: 6f43206e svcvs 0x0043206e + 6000: 6f72746e svcvs 0x0072746e + 6004: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6008: 7070415c rsbsvc r4, r0, ip, asr r1 + 600c: 6163696c cmnvs r3, ip, ror #18 + 6010: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6014: 756f535c strbvc r5, [pc, #-860]! ; 5cc0 + 6018: 5c656372 stclpl 3, cr6, [r5], #-456 + 601c: 65770000 ldrbvs r0, [r7]! + 6020: 65687461 strbvs r7, [r8, #-1121]! + 6024: 74735f72 ldrbtvc r5, [r3], #-3954 + 6028: 6f697461 svcvs 0x00697461 + 602c: 6f635f6e svcvs 0x00635f6e + 6030: 6f72746e svcvs 0x0072746e + 6034: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6038: 0100632e tsteq r0, lr, lsr #6 + 603c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6040: 000abe04 andeq fp, sl, r4, lsl #28 + 6044: 84020500 strhi r0, [r2], #-1280 + 6048: 05004009 streq r4, [r0, #-9] + 604c: 01dc0301 bicseq r0, ip, r1, lsl #6 + 6050: 1509050e strne r0, [r9, #-1294] + 6054: 01000202 tsteq r0, r2, lsl #4 + 6058: 00000001 andeq r0, r0, r1 + 605c: 000000bb strheq r0, [r0], -fp + 6060: 009e0002 addseq r0, lr, r2 + 6064: 01020000 tsteq r2, r0 + 6068: 000a0500 andeq r0, sl, r0, lsl #10 + 606c: 01010101 tsteq r1, r1, lsl #2 + 6070: 00000000 andeq r0, r0, r0 + 6074: 445c3a43 ldrbmi r3, [ip], #-2627 + 6078: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 607c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6080: 646e6120 strbtvs r6, [lr], #-288 + 6084: 74655320 strbtvc r5, [r5], #-800 + 6088: 676e6974 undefined + 608c: 616d5c73 smcvs 54723 + 6090: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6094: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6098: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 609c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 60a0: 775c7374 undefined + 60a4: 6f632d73 svcvs 0x00632d73 + 60a8: 6f72746e svcvs 0x0072746e + 60ac: 65575c6c ldrbvs r5, [r7, #-3180] + 60b0: 65687461 strbvs r7, [r8, #-1121]! + 60b4: 74532072 ldrbvc r2, [r3], #-114 + 60b8: 6f697461 svcvs 0x00697461 + 60bc: 6f43206e svcvs 0x0043206e + 60c0: 6f72746e svcvs 0x0072746e + 60c4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 60c8: 7070415c rsbsvc r4, r0, ip, asr r1 + 60cc: 6163696c cmnvs r3, ip, ror #18 + 60d0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 60d4: 756f535c strbvc r5, [pc, #-860]! ; 5d80 + 60d8: 5c656372 stclpl 3, cr6, [r5], #-456 + 60dc: 65770000 ldrbvs r0, [r7]! + 60e0: 65687461 strbvs r7, [r8, #-1121]! + 60e4: 74735f72 ldrbtvc r5, [r3], #-3954 + 60e8: 6f697461 svcvs 0x00697461 + 60ec: 6f635f6e svcvs 0x00635f6e + 60f0: 6f72746e svcvs 0x0072746e + 60f4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 60f8: 0100632e tsteq r0, lr, lsr #6 + 60fc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6100: 000abe04 andeq fp, sl, r4, lsl #28 + 6104: 8c020500 cfstr32hi mvfx0, [r2], {0} + 6108: 05004009 streq r4, [r0, #-9] + 610c: 01e20301 mvneq r0, r1, lsl #6 + 6110: 1509050e strne r0, [r9, #-1294] + 6114: 0402241a streq r2, [r2], #-1050 + 6118: 00010100 andeq r0, r1, r0, lsl #2 + 611c: 000000c1 andeq r0, r0, r1, asr #1 + 6120: 009e0002 addseq r0, lr, r2 + 6124: 01020000 tsteq r2, r0 + 6128: 000a0500 andeq r0, sl, r0, lsl #10 + 612c: 01010101 tsteq r1, r1, lsl #2 + 6130: 00000000 andeq r0, r0, r0 + 6134: 445c3a43 ldrbmi r3, [ip], #-2627 + 6138: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 613c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6140: 646e6120 strbtvs r6, [lr], #-288 + 6144: 74655320 strbtvc r5, [r5], #-800 + 6148: 676e6974 undefined + 614c: 616d5c73 smcvs 54723 + 6150: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6154: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6158: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 615c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6160: 775c7374 undefined + 6164: 6f632d73 svcvs 0x00632d73 + 6168: 6f72746e svcvs 0x0072746e + 616c: 65575c6c ldrbvs r5, [r7, #-3180] + 6170: 65687461 strbvs r7, [r8, #-1121]! + 6174: 74532072 ldrbvc r2, [r3], #-114 + 6178: 6f697461 svcvs 0x00697461 + 617c: 6f43206e svcvs 0x0043206e + 6180: 6f72746e svcvs 0x0072746e + 6184: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6188: 7070415c rsbsvc r4, r0, ip, asr r1 + 618c: 6163696c cmnvs r3, ip, ror #18 + 6190: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6194: 756f535c strbvc r5, [pc, #-860]! ; 5e40 + 6198: 5c656372 stclpl 3, cr6, [r5], #-456 + 619c: 65770000 ldrbvs r0, [r7]! + 61a0: 65687461 strbvs r7, [r8, #-1121]! + 61a4: 74735f72 ldrbtvc r5, [r3], #-3954 + 61a8: 6f697461 svcvs 0x00697461 + 61ac: 6f635f6e svcvs 0x00635f6e + 61b0: 6f72746e svcvs 0x0072746e + 61b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 61b8: 0100632e tsteq r0, lr, lsr #6 + 61bc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 61c0: 000abe04 andeq fp, sl, r4, lsl #28 + 61c4: a8020500 stmdage r2, {r8, sl} + 61c8: 05004009 streq r4, [r0, #-9] + 61cc: 01e60309 mvneq r0, r9, lsl #6 + 61d0: 0a780318 beq 1e06e38 + 61d4: 05030105 streq r0, [r3, #-261] + 61d8: 0a780322 beq 1e06e68 + 61dc: 01000402 tsteq r0, r2, lsl #8 + 61e0: 00000001 andeq r0, r0, r1 + 61e4: 000000da ldrdeq r0, [r0], -sl + 61e8: 009e0002 addseq r0, lr, r2 + 61ec: 01020000 tsteq r2, r0 + 61f0: 000a0500 andeq r0, sl, r0, lsl #10 + 61f4: 01010101 tsteq r1, r1, lsl #2 + 61f8: 00000000 andeq r0, r0, r0 + 61fc: 445c3a43 ldrbmi r3, [ip], #-2627 + 6200: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6204: 73746e65 cmnvc r4, #1616 ; 0x650 + 6208: 646e6120 strbtvs r6, [lr], #-288 + 620c: 74655320 strbtvc r5, [r5], #-800 + 6210: 676e6974 undefined + 6214: 616d5c73 smcvs 54723 + 6218: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 621c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6220: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6224: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6228: 775c7374 undefined + 622c: 6f632d73 svcvs 0x00632d73 + 6230: 6f72746e svcvs 0x0072746e + 6234: 65575c6c ldrbvs r5, [r7, #-3180] + 6238: 65687461 strbvs r7, [r8, #-1121]! + 623c: 74532072 ldrbvc r2, [r3], #-114 + 6240: 6f697461 svcvs 0x00697461 + 6244: 6f43206e svcvs 0x0043206e + 6248: 6f72746e svcvs 0x0072746e + 624c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6250: 7070415c rsbsvc r4, r0, ip, asr r1 + 6254: 6163696c cmnvs r3, ip, ror #18 + 6258: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 625c: 756f535c strbvc r5, [pc, #-860]! ; 5f08 + 6260: 5c656372 stclpl 3, cr6, [r5], #-456 + 6264: 65770000 ldrbvs r0, [r7]! + 6268: 65687461 strbvs r7, [r8, #-1121]! + 626c: 74735f72 ldrbtvc r5, [r3], #-3954 + 6270: 6f697461 svcvs 0x00697461 + 6274: 6f635f6e svcvs 0x00635f6e + 6278: 6f72746e svcvs 0x0072746e + 627c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6280: 0100632e tsteq r0, lr, lsr #6 + 6284: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6288: 000abe04 andeq fp, sl, r4, lsl #28 + 628c: bc020500 cfstr32lt mvfx0, [r2], {0} + 6290: 05004009 streq r4, [r0, #-9] + 6294: 01ea032e mvneq r0, lr, lsr #6 + 6298: 1c1b050e cfldr32ne mvfx0, [fp], {14} + 629c: 051a1105 ldreq r1, [sl, #-261] + 62a0: 21052919 tstcs r5, r9, lsl r9 + 62a4: 2519051a ldrcs r0, [r9, #-1306] + 62a8: 2105241a tstcs r5, sl, lsl r4 + 62ac: 0326051f teqeq r6, #130023424 ; 0x7c00000 + 62b0: 1d051979 stcne 9, cr1, [r5, #-484] + 62b4: 03110519 tsteq r1, #104857600 ; 0x6400000 + 62b8: 03052205 movweq r2, #20997 ; 0x5205 + 62bc: 0009021a andeq r0, r9, sl, lsl r2 + 62c0: 00000101 andeq r0, r0, r1, lsl #2 + 62c4: 000000c7 andeq r0, r0, r7, asr #1 + 62c8: 009e0002 addseq r0, lr, r2 + 62cc: 01020000 tsteq r2, r0 + 62d0: 000a0500 andeq r0, sl, r0, lsl #10 + 62d4: 01010101 tsteq r1, r1, lsl #2 + 62d8: 00000000 andeq r0, r0, r0 + 62dc: 445c3a43 ldrbmi r3, [ip], #-2627 + 62e0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 62e4: 73746e65 cmnvc r4, #1616 ; 0x650 + 62e8: 646e6120 strbtvs r6, [lr], #-288 + 62ec: 74655320 strbtvc r5, [r5], #-800 + 62f0: 676e6974 undefined + 62f4: 616d5c73 smcvs 54723 + 62f8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 62fc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6300: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6304: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6308: 775c7374 undefined + 630c: 6f632d73 svcvs 0x00632d73 + 6310: 6f72746e svcvs 0x0072746e + 6314: 65575c6c ldrbvs r5, [r7, #-3180] + 6318: 65687461 strbvs r7, [r8, #-1121]! + 631c: 74532072 ldrbvc r2, [r3], #-114 + 6320: 6f697461 svcvs 0x00697461 + 6324: 6f43206e svcvs 0x0043206e + 6328: 6f72746e svcvs 0x0072746e + 632c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6330: 7070415c rsbsvc r4, r0, ip, asr r1 + 6334: 6163696c cmnvs r3, ip, ror #18 + 6338: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 633c: 756f535c strbvc r5, [pc, #-860]! ; 5fe8 + 6340: 5c656372 stclpl 3, cr6, [r5], #-456 + 6344: 65770000 ldrbvs r0, [r7]! + 6348: 65687461 strbvs r7, [r8, #-1121]! + 634c: 74735f72 ldrbtvc r5, [r3], #-3954 + 6350: 6f697461 svcvs 0x00697461 + 6354: 6f635f6e svcvs 0x00635f6e + 6358: 6f72746e svcvs 0x0072746e + 635c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6360: 0100632e tsteq r0, lr, lsr #6 + 6364: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6368: 000abe04 andeq fp, sl, r4, lsl #28 + 636c: 28020500 stmdacs r2, {r8, sl} + 6370: 0500400a streq r4, [r0, #-10] + 6374: 02870301 addeq r0, r7, #67108864 ; 0x4000000 + 6378: 0303050e movweq r0, #13582 ; 0x350e + 637c: 14191802 ldrne r1, [r9], #-2050 + 6380: 0b14140b bleq 50b3b4 + 6384: 050c0f19 streq r0, [ip, #-3865] + 6388: 07021804 streq r1, [r2, -r4, lsl #16] + 638c: 00010100 andeq r0, r1, r0, lsl #2 + 6390: 00000115 andeq r0, r0, r5, lsl r1 + 6394: 009e0002 addseq r0, lr, r2 + 6398: 01020000 tsteq r2, r0 + 639c: 000a0500 andeq r0, sl, r0, lsl #10 + 63a0: 01010101 tsteq r1, r1, lsl #2 + 63a4: 00000000 andeq r0, r0, r0 + 63a8: 445c3a43 ldrbmi r3, [ip], #-2627 + 63ac: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 63b0: 73746e65 cmnvc r4, #1616 ; 0x650 + 63b4: 646e6120 strbtvs r6, [lr], #-288 + 63b8: 74655320 strbtvc r5, [r5], #-800 + 63bc: 676e6974 undefined + 63c0: 616d5c73 smcvs 54723 + 63c4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 63c8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 63cc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 63d0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 63d4: 775c7374 undefined + 63d8: 6f632d73 svcvs 0x00632d73 + 63dc: 6f72746e svcvs 0x0072746e + 63e0: 65575c6c ldrbvs r5, [r7, #-3180] + 63e4: 65687461 strbvs r7, [r8, #-1121]! + 63e8: 74532072 ldrbvc r2, [r3], #-114 + 63ec: 6f697461 svcvs 0x00697461 + 63f0: 6f43206e svcvs 0x0043206e + 63f4: 6f72746e svcvs 0x0072746e + 63f8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 63fc: 7070415c rsbsvc r4, r0, ip, asr r1 + 6400: 6163696c cmnvs r3, ip, ror #18 + 6404: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6408: 756f535c strbvc r5, [pc, #-860]! ; 60b4 + 640c: 5c656372 stclpl 3, cr6, [r5], #-456 + 6410: 65770000 ldrbvs r0, [r7]! + 6414: 65687461 strbvs r7, [r8, #-1121]! + 6418: 74735f72 ldrbtvc r5, [r3], #-3954 + 641c: 6f697461 svcvs 0x00697461 + 6420: 6f635f6e svcvs 0x00635f6e + 6424: 6f72746e svcvs 0x0072746e + 6428: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 642c: 0100632e tsteq r0, lr, lsr #6 + 6430: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6434: 000abe04 andeq fp, sl, r4, lsl #28 + 6438: 58020500 stmdapl r2, {r8, sl} + 643c: 0500400a streq r4, [r0, #-10] + 6440: 02a70301 adceq r0, r7, #67108864 ; 0x4000000 + 6444: 1203050e andne r0, r3, #58720256 ; 0x3800000 + 6448: 140a0f19 strne r0, [sl], #-3865 + 644c: 150f140f strne r1, [pc, #-1039] ; 6045 + 6450: 1b1f1f16 blne 7ce0b0 + 6454: 1f1b1f1f svcne 0x001b1f1f + 6458: 1f1f1b1f svcne 0x001f1b1f + 645c: 1615201f undefined + 6460: 05292022 streq r2, [r9, #-34]! + 6464: 03051504 movweq r1, #21764 ; 0x5504 + 6468: 15291529 strne r1, [r9, #-1321]! + 646c: 2405051f strcs r0, [r5], #-1311 + 6470: 261f0305 ldrcs r0, [pc], -r5, lsl #6 + 6474: 02051515 andeq r1, r5, #88080384 ; 0x5400000 + 6478: 1f030516 svcne 0x00030516 + 647c: 04051f20 streq r1, [r5], #-3872 + 6480: 1f03051f svcne 0x0003051f + 6484: 1f1f1f1f svcne 0x001f1f1f + 6488: 051f0505 ldreq r0, [pc, #-1285] ; 5f8b + 648c: 1a211f03 bne 84e0a0 + 6490: 1617171b undefined + 6494: 27030317 smladcs r3, r7, r3, r0 + 6498: 1a171a1a bne 5ccd08 + 649c: 1f1f1f15 svcne 0x001f1f15 + 64a0: 1b010515 blne 478fc + 64a4: 01001f02 tsteq r0, r2, lsl #30 + 64a8: 00000001 andeq r0, r0, r1 + 64ac: 000000c2 andeq r0, r0, r2, asr #1 + 64b0: 009e0002 addseq r0, lr, r2 + 64b4: 01020000 tsteq r2, r0 + 64b8: 000a0500 andeq r0, sl, r0, lsl #10 + 64bc: 01010101 tsteq r1, r1, lsl #2 + 64c0: 00000000 andeq r0, r0, r0 + 64c4: 445c3a43 ldrbmi r3, [ip], #-2627 + 64c8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 64cc: 73746e65 cmnvc r4, #1616 ; 0x650 + 64d0: 646e6120 strbtvs r6, [lr], #-288 + 64d4: 74655320 strbtvc r5, [r5], #-800 + 64d8: 676e6974 undefined + 64dc: 616d5c73 smcvs 54723 + 64e0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 64e4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 64e8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 64ec: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 64f0: 775c7374 undefined + 64f4: 6f632d73 svcvs 0x00632d73 + 64f8: 6f72746e svcvs 0x0072746e + 64fc: 65575c6c ldrbvs r5, [r7, #-3180] + 6500: 65687461 strbvs r7, [r8, #-1121]! + 6504: 74532072 ldrbvc r2, [r3], #-114 + 6508: 6f697461 svcvs 0x00697461 + 650c: 6f43206e svcvs 0x0043206e + 6510: 6f72746e svcvs 0x0072746e + 6514: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6518: 7070415c rsbsvc r4, r0, ip, asr r1 + 651c: 6163696c cmnvs r3, ip, ror #18 + 6520: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6524: 756f535c strbvc r5, [pc, #-860]! ; 61d0 + 6528: 5c656372 stclpl 3, cr6, [r5], #-456 + 652c: 65770000 ldrbvs r0, [r7]! + 6530: 65687461 strbvs r7, [r8, #-1121]! + 6534: 74735f72 ldrbtvc r5, [r3], #-3954 + 6538: 6f697461 svcvs 0x00697461 + 653c: 6f635f6e svcvs 0x00635f6e + 6540: 6f72746e svcvs 0x0072746e + 6544: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6548: 0100632e tsteq r0, lr, lsr #6 + 654c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6550: 000abe04 andeq fp, sl, r4, lsl #28 + 6554: 50020500 andpl r0, r2, r0, lsl #10 + 6558: 0500400c streq r4, [r0, #-12] + 655c: 03920301 orrseq r0, r2, #67108864 ; 0x4000000 + 6560: 0b03050e bleq c79a0 + 6564: 1f2f0505 svcne 0x002f0505 + 6568: 02030105 andeq r0, r3, #1073741825 ; 0x40000001 + 656c: 0006021d andeq r0, r6, sp, lsl r2 + 6570: 00000101 andeq r0, r0, r1, lsl #2 + 6574: 0000013f andeq r0, r0, pc, lsr r1 + 6578: 009e0002 addseq r0, lr, r2 + 657c: 01020000 tsteq r2, r0 + 6580: 000a0500 andeq r0, sl, r0, lsl #10 + 6584: 01010101 tsteq r1, r1, lsl #2 + 6588: 00000000 andeq r0, r0, r0 + 658c: 445c3a43 ldrbmi r3, [ip], #-2627 + 6590: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6594: 73746e65 cmnvc r4, #1616 ; 0x650 + 6598: 646e6120 strbtvs r6, [lr], #-288 + 659c: 74655320 strbtvc r5, [r5], #-800 + 65a0: 676e6974 undefined + 65a4: 616d5c73 smcvs 54723 + 65a8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 65ac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 65b0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 65b4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 65b8: 775c7374 undefined + 65bc: 6f632d73 svcvs 0x00632d73 + 65c0: 6f72746e svcvs 0x0072746e + 65c4: 65575c6c ldrbvs r5, [r7, #-3180] + 65c8: 65687461 strbvs r7, [r8, #-1121]! + 65cc: 74532072 ldrbvc r2, [r3], #-114 + 65d0: 6f697461 svcvs 0x00697461 + 65d4: 6f43206e svcvs 0x0043206e + 65d8: 6f72746e svcvs 0x0072746e + 65dc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 65e0: 7070415c rsbsvc r4, r0, ip, asr r1 + 65e4: 6163696c cmnvs r3, ip, ror #18 + 65e8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 65ec: 756f535c strbvc r5, [pc, #-860]! ; 6298 + 65f0: 5c656372 stclpl 3, cr6, [r5], #-456 + 65f4: 65770000 ldrbvs r0, [r7]! + 65f8: 65687461 strbvs r7, [r8, #-1121]! + 65fc: 74735f72 ldrbtvc r5, [r3], #-3954 + 6600: 6f697461 svcvs 0x00697461 + 6604: 6f635f6e svcvs 0x00635f6e + 6608: 6f72746e svcvs 0x0072746e + 660c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6610: 0100632e tsteq r0, lr, lsr #6 + 6614: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6618: 000abe04 andeq fp, sl, r4, lsl #28 + 661c: 78020500 stmdavc r2, {r8, sl} + 6620: 0500400c streq r4, [r0, #-12] + 6624: 03a40301 undefined instruction 0x03a40301 + 6628: 1703050e strne r0, [r3, -lr, lsl #10] + 662c: 20050515 andcs r0, r5, r5, lsl r5 + 6630: 180a0315 stmdane sl, {r0, r2, r4, r8, r9} + 6634: 05200705 streq r0, [r0, #-1797]! + 6638: 1a152009 bne 54e664 + 663c: 05200b05 streq r0, [r0, #-2821]! + 6640: 22010305 andcs r0, r1, #335544320 ; 0x14000000 + 6644: 1a200705 bne 808260 + 6648: 16270403 strtne r0, [r7], -r3, lsl #8 + 664c: 1d050515 cfstr32ne mvfx0, [r5, #-84] + 6650: 1f1b0705 svcne 0x001b0705 + 6654: 181b0905 ldmdane fp, {r0, r2, r8, fp} + 6658: 1b160705 blne 588274 + 665c: 1d050515 cfstr32ne mvfx0, [r5, #-84] + 6660: 1a200705 bne 80827c + 6664: 181b0905 ldmdane fp, {r0, r2, r8, fp} + 6668: 15170705 ldrne r0, [r7, #-1797] + 666c: 051d0505 ldreq r0, [sp, #-1285] + 6670: 051f1b07 ldreq r1, [pc, #-2823] ; 5b71 + 6674: 05171b09 ldreq r1, [r7, #-2825] + 6678: 05051707 streq r1, [r5, #-1799] + 667c: 051d0103 ldreq r0, [sp, #-259] + 6680: 01034009 tsteq r3, r9 + 6684: 1a242e18 bne 911eec + 6688: 02031b1a andeq r1, r3, #26624 ; 0x6800 + 668c: 430b0531 movwmi r0, #46385 ; 0xb531 + 6690: 09051f15 stmdbeq r5, {r0, r2, r4, r8, r9, sl, fp, ip} + 6694: 05180303 ldreq r0, [r8, #-771] + 6698: 0905430b stmdbeq r5, {r0, r1, r3, r8, r9, lr} + 669c: 1b0b0516 blne 2c7afc + 66a0: 03090515 movweq r0, #38165 ; 0x9515 + 66a4: 0b051803 bleq 14c6b8 + 66a8: 0905153e stmdbeq r5, {r1, r2, r3, r4, r5, r8, sl, ip} + 66ac: 0301051b movweq r0, #5403 ; 0x151b + 66b0: 0902130b stmdbeq r2, {r0, r1, r3, r8, r9, ip} + 66b4: 00010100 andeq r0, r1, r0, lsl #2 + 66b8: 000000ba strheq r0, [r0], -sl + 66bc: 009e0002 addseq r0, lr, r2 + 66c0: 01020000 tsteq r2, r0 + 66c4: 000a0500 andeq r0, sl, r0, lsl #10 + 66c8: 01010101 tsteq r1, r1, lsl #2 + 66cc: 00000000 andeq r0, r0, r0 + 66d0: 445c3a43 ldrbmi r3, [ip], #-2627 + 66d4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 66d8: 73746e65 cmnvc r4, #1616 ; 0x650 + 66dc: 646e6120 strbtvs r6, [lr], #-288 + 66e0: 74655320 strbtvc r5, [r5], #-800 + 66e4: 676e6974 undefined + 66e8: 616d5c73 smcvs 54723 + 66ec: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 66f0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 66f4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 66f8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 66fc: 775c7374 undefined + 6700: 6f632d73 svcvs 0x00632d73 + 6704: 6f72746e svcvs 0x0072746e + 6708: 65575c6c ldrbvs r5, [r7, #-3180] + 670c: 65687461 strbvs r7, [r8, #-1121]! + 6710: 74532072 ldrbvc r2, [r3], #-114 + 6714: 6f697461 svcvs 0x00697461 + 6718: 6f43206e svcvs 0x0043206e + 671c: 6f72746e svcvs 0x0072746e + 6720: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6724: 7070415c rsbsvc r4, r0, ip, asr r1 + 6728: 6163696c cmnvs r3, ip, ror #18 + 672c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6730: 756f535c strbvc r5, [pc, #-860]! ; 63dc + 6734: 5c656372 stclpl 3, cr6, [r5], #-456 + 6738: 65770000 ldrbvs r0, [r7]! + 673c: 65687461 strbvs r7, [r8, #-1121]! + 6740: 74735f72 ldrbtvc r5, [r3], #-3954 + 6744: 6f697461 svcvs 0x00697461 + 6748: 6f635f6e svcvs 0x00635f6e + 674c: 6f72746e svcvs 0x0072746e + 6750: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6754: 0100632e tsteq r0, lr, lsr #6 + 6758: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 675c: 000abe04 andeq fp, sl, r4, lsl #28 + 6760: 24020500 strcs r0, [r2], #-1280 + 6764: 0500400e streq r4, [r0, #-14] + 6768: 04d60301 ldrbeq r0, [r6], #769 + 676c: 1003050e andne r0, r3, lr, lsl #10 + 6770: 0006021a andeq r0, r6, sl, lsl r2 + 6774: 00000101 andeq r0, r0, r1, lsl #2 + 6778: 000000ba strheq r0, [r0], -sl + 677c: 009e0002 addseq r0, lr, r2 + 6780: 01020000 tsteq r2, r0 + 6784: 000a0500 andeq r0, sl, r0, lsl #10 + 6788: 01010101 tsteq r1, r1, lsl #2 + 678c: 00000000 andeq r0, r0, r0 + 6790: 445c3a43 ldrbmi r3, [ip], #-2627 + 6794: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6798: 73746e65 cmnvc r4, #1616 ; 0x650 + 679c: 646e6120 strbtvs r6, [lr], #-288 + 67a0: 74655320 strbtvc r5, [r5], #-800 + 67a4: 676e6974 undefined + 67a8: 616d5c73 smcvs 54723 + 67ac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 67b0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 67b4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 67b8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 67bc: 775c7374 undefined + 67c0: 6f632d73 svcvs 0x00632d73 + 67c4: 6f72746e svcvs 0x0072746e + 67c8: 65575c6c ldrbvs r5, [r7, #-3180] + 67cc: 65687461 strbvs r7, [r8, #-1121]! + 67d0: 74532072 ldrbvc r2, [r3], #-114 + 67d4: 6f697461 svcvs 0x00697461 + 67d8: 6f43206e svcvs 0x0043206e + 67dc: 6f72746e svcvs 0x0072746e + 67e0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 67e4: 7070415c rsbsvc r4, r0, ip, asr r1 + 67e8: 6163696c cmnvs r3, ip, ror #18 + 67ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 67f0: 756f535c strbvc r5, [pc, #-860]! ; 649c + 67f4: 5c656372 stclpl 3, cr6, [r5], #-456 + 67f8: 65770000 ldrbvs r0, [r7]! + 67fc: 65687461 strbvs r7, [r8, #-1121]! + 6800: 74735f72 ldrbtvc r5, [r3], #-3954 + 6804: 6f697461 svcvs 0x00697461 + 6808: 6f635f6e svcvs 0x00635f6e + 680c: 6f72746e svcvs 0x0072746e + 6810: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6814: 0100632e tsteq r0, lr, lsr #6 + 6818: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 681c: 000abe04 andeq fp, sl, r4, lsl #28 + 6820: 38020500 stmdacc r2, {r8, sl} + 6824: 0500400e streq r4, [r0, #-14] + 6828: 04e20301 strbteq r0, [r2], #769 + 682c: 1003050e andne r0, r3, lr, lsl #10 + 6830: 0004021a andeq r0, r4, sl, lsl r2 + 6834: 00000101 andeq r0, r0, r1, lsl #2 + 6838: 000000bf strheq r0, [r0], -pc + 683c: 009e0002 addseq r0, lr, r2 + 6840: 01020000 tsteq r2, r0 + 6844: 000a0500 andeq r0, sl, r0, lsl #10 + 6848: 01010101 tsteq r1, r1, lsl #2 + 684c: 00000000 andeq r0, r0, r0 + 6850: 445c3a43 ldrbmi r3, [ip], #-2627 + 6854: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6858: 73746e65 cmnvc r4, #1616 ; 0x650 + 685c: 646e6120 strbtvs r6, [lr], #-288 + 6860: 74655320 strbtvc r5, [r5], #-800 + 6864: 676e6974 undefined + 6868: 616d5c73 smcvs 54723 + 686c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6870: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6874: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6878: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 687c: 775c7374 undefined + 6880: 6f632d73 svcvs 0x00632d73 + 6884: 6f72746e svcvs 0x0072746e + 6888: 65575c6c ldrbvs r5, [r7, #-3180] + 688c: 65687461 strbvs r7, [r8, #-1121]! + 6890: 74532072 ldrbvc r2, [r3], #-114 + 6894: 6f697461 svcvs 0x00697461 + 6898: 6f43206e svcvs 0x0043206e + 689c: 6f72746e svcvs 0x0072746e + 68a0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 68a4: 7070415c rsbsvc r4, r0, ip, asr r1 + 68a8: 6163696c cmnvs r3, ip, ror #18 + 68ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 68b0: 756f535c strbvc r5, [pc, #-860]! ; 655c + 68b4: 5c656372 stclpl 3, cr6, [r5], #-456 + 68b8: 65770000 ldrbvs r0, [r7]! + 68bc: 65687461 strbvs r7, [r8, #-1121]! + 68c0: 74735f72 ldrbtvc r5, [r3], #-3954 + 68c4: 6f697461 svcvs 0x00697461 + 68c8: 6f635f6e svcvs 0x00635f6e + 68cc: 6f72746e svcvs 0x0072746e + 68d0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 68d4: 0100632e tsteq r0, lr, lsr #6 + 68d8: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 68dc: 000abe04 andeq fp, sl, r4, lsl #28 + 68e0: 48020500 stmdami r2, {r8, sl} + 68e4: 0500400e streq r4, [r0, #-14] + 68e8: 04fd0301 ldrbteq r0, [sp], #769 + 68ec: 0a740318 beq 1d07554 + 68f0: 030a7403 movweq r7, #41987 ; 0xa403 + 68f4: 06020a74 undefined + 68f8: 00010100 andeq r0, r1, r0, lsl #2 + 68fc: 000000ba strheq r0, [r0], -sl + 6900: 009e0002 addseq r0, lr, r2 + 6904: 01020000 tsteq r2, r0 + 6908: 000a0500 andeq r0, sl, r0, lsl #10 + 690c: 01010101 tsteq r1, r1, lsl #2 + 6910: 00000000 andeq r0, r0, r0 + 6914: 445c3a43 ldrbmi r3, [ip], #-2627 + 6918: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 691c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6920: 646e6120 strbtvs r6, [lr], #-288 + 6924: 74655320 strbtvc r5, [r5], #-800 + 6928: 676e6974 undefined + 692c: 616d5c73 smcvs 54723 + 6930: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6934: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6938: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 693c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6940: 775c7374 undefined + 6944: 6f632d73 svcvs 0x00632d73 + 6948: 6f72746e svcvs 0x0072746e + 694c: 65575c6c ldrbvs r5, [r7, #-3180] + 6950: 65687461 strbvs r7, [r8, #-1121]! + 6954: 74532072 ldrbvc r2, [r3], #-114 + 6958: 6f697461 svcvs 0x00697461 + 695c: 6f43206e svcvs 0x0043206e + 6960: 6f72746e svcvs 0x0072746e + 6964: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6968: 7070415c rsbsvc r4, r0, ip, asr r1 + 696c: 6163696c cmnvs r3, ip, ror #18 + 6970: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6974: 756f535c strbvc r5, [pc, #-860]! ; 6620 + 6978: 5c656372 stclpl 3, cr6, [r5], #-456 + 697c: 65770000 ldrbvs r0, [r7]! + 6980: 65687461 strbvs r7, [r8, #-1121]! + 6984: 74735f72 ldrbtvc r5, [r3], #-3954 + 6988: 6f697461 svcvs 0x00697461 + 698c: 6f635f6e svcvs 0x00635f6e + 6990: 6f72746e svcvs 0x0072746e + 6994: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6998: 0100632e tsteq r0, lr, lsr #6 + 699c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 69a0: 000abe04 andeq fp, sl, r4, lsl #28 + 69a4: 58020500 stmdapl r2, {r8, sl} + 69a8: 0500400e streq r4, [r0, #-14] + 69ac: 04ee0301 strbteq r0, [lr], #769 + 69b0: 1003050e andne r0, r3, lr, lsl #10 + 69b4: 0006021a andeq r0, r6, sl, lsl r2 + 69b8: 00000101 andeq r0, r0, r1, lsl #2 + 69bc: 000000ba strheq r0, [r0], -sl + 69c0: 009e0002 addseq r0, lr, r2 + 69c4: 01020000 tsteq r2, r0 + 69c8: 000a0500 andeq r0, sl, r0, lsl #10 + 69cc: 01010101 tsteq r1, r1, lsl #2 + 69d0: 00000000 andeq r0, r0, r0 + 69d4: 445c3a43 ldrbmi r3, [ip], #-2627 + 69d8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 69dc: 73746e65 cmnvc r4, #1616 ; 0x650 + 69e0: 646e6120 strbtvs r6, [lr], #-288 + 69e4: 74655320 strbtvc r5, [r5], #-800 + 69e8: 676e6974 undefined + 69ec: 616d5c73 smcvs 54723 + 69f0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 69f4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 69f8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 69fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6a00: 775c7374 undefined + 6a04: 6f632d73 svcvs 0x00632d73 + 6a08: 6f72746e svcvs 0x0072746e + 6a0c: 65575c6c ldrbvs r5, [r7, #-3180] + 6a10: 65687461 strbvs r7, [r8, #-1121]! + 6a14: 74532072 ldrbvc r2, [r3], #-114 + 6a18: 6f697461 svcvs 0x00697461 + 6a1c: 6f43206e svcvs 0x0043206e + 6a20: 6f72746e svcvs 0x0072746e + 6a24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6a28: 7070415c rsbsvc r4, r0, ip, asr r1 + 6a2c: 6163696c cmnvs r3, ip, ror #18 + 6a30: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6a34: 756f535c strbvc r5, [pc, #-860]! ; 66e0 + 6a38: 5c656372 stclpl 3, cr6, [r5], #-456 + 6a3c: 65770000 ldrbvs r0, [r7]! + 6a40: 65687461 strbvs r7, [r8, #-1121]! + 6a44: 74735f72 ldrbtvc r5, [r3], #-3954 + 6a48: 6f697461 svcvs 0x00697461 + 6a4c: 6f635f6e svcvs 0x00635f6e + 6a50: 6f72746e svcvs 0x0072746e + 6a54: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6a58: 0100632e tsteq r0, lr, lsr #6 + 6a5c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6a60: 000abe04 andeq fp, sl, r4, lsl #28 + 6a64: 6c020500 cfstr32vs mvfx0, [r2], {0} + 6a68: 0500400e streq r4, [r0, #-14] + 6a6c: 04fa0301 ldrbteq r0, [sl], #769 + 6a70: 1003050e andne r0, r3, lr, lsl #10 + 6a74: 0006021a andeq r0, r6, sl, lsl r2 + 6a78: 00000101 andeq r0, r0, r1, lsl #2 + 6a7c: 000000f1 strdeq r0, [r0], -r1 + 6a80: 009e0002 addseq r0, lr, r2 + 6a84: 01020000 tsteq r2, r0 + 6a88: 000a0500 andeq r0, sl, r0, lsl #10 + 6a8c: 01010101 tsteq r1, r1, lsl #2 + 6a90: 00000000 andeq r0, r0, r0 + 6a94: 445c3a43 ldrbmi r3, [ip], #-2627 + 6a98: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6a9c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6aa0: 646e6120 strbtvs r6, [lr], #-288 + 6aa4: 74655320 strbtvc r5, [r5], #-800 + 6aa8: 676e6974 undefined + 6aac: 616d5c73 smcvs 54723 + 6ab0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6ab4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6ab8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6abc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6ac0: 775c7374 undefined + 6ac4: 6f632d73 svcvs 0x00632d73 + 6ac8: 6f72746e svcvs 0x0072746e + 6acc: 65575c6c ldrbvs r5, [r7, #-3180] + 6ad0: 65687461 strbvs r7, [r8, #-1121]! + 6ad4: 74532072 ldrbvc r2, [r3], #-114 + 6ad8: 6f697461 svcvs 0x00697461 + 6adc: 6f43206e svcvs 0x0043206e + 6ae0: 6f72746e svcvs 0x0072746e + 6ae4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6ae8: 7070415c rsbsvc r4, r0, ip, asr r1 + 6aec: 6163696c cmnvs r3, ip, ror #18 + 6af0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6af4: 756f535c strbvc r5, [pc, #-860]! ; 67a0 + 6af8: 5c656372 stclpl 3, cr6, [r5], #-456 + 6afc: 65770000 ldrbvs r0, [r7]! + 6b00: 65687461 strbvs r7, [r8, #-1121]! + 6b04: 74735f72 ldrbtvc r5, [r3], #-3954 + 6b08: 6f697461 svcvs 0x00697461 + 6b0c: 6f635f6e svcvs 0x00635f6e + 6b10: 6f72746e svcvs 0x0072746e + 6b14: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6b18: 0100632e tsteq r0, lr, lsr #6 + 6b1c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6b20: 000abe04 andeq fp, sl, r4, lsl #28 + 6b24: 80020500 andhi r0, r2, r0, lsl #10 + 6b28: 0500400e streq r4, [r0, #-14] + 6b2c: 05870301 streq r0, [r7, #769] + 6b30: 1303050e movwne r0, #13582 ; 0x350e + 6b34: 24490705 strbcs r0, [r9], #-1797 + 6b38: 0b180103 bleq 606f4c + 6b3c: 4c0b334c stcmi 3, cr3, [fp], {76} + 6b40: 0b180203 bleq 607354 + 6b44: 4c0b2e4c stcmi 14, cr2, [fp], {76} + 6b48: 05130203 ldreq r0, [r3, #-515] + 6b4c: 05151b09 ldreq r1, [r5, #-2825] + 6b50: 0905180a stmdbeq r5, {r1, r3, fp, ip} + 6b54: 0b510b1c bleq 14497cc + 6b58: 08050b38 stmdaeq r5, {r3, r4, r5, r8, r9, fp} + 6b5c: 1b0a0551 blne 2880a8 + 6b60: 06030705 streq r0, [r3], -r5, lsl #14 + 6b64: 05470b22 strbeq r0, [r7, #-2850] + 6b68: 13020303 movwne r0, #8963 ; 0x2303 + 6b6c: 01001102 tsteq r0, r2, lsl #2 + 6b70: 00000001 andeq r0, r0, r1 + 6b74: 000000e4 andeq r0, r0, r4, ror #1 + 6b78: 009e0002 addseq r0, lr, r2 + 6b7c: 01020000 tsteq r2, r0 + 6b80: 000a0500 andeq r0, sl, r0, lsl #10 + 6b84: 01010101 tsteq r1, r1, lsl #2 + 6b88: 00000000 andeq r0, r0, r0 + 6b8c: 445c3a43 ldrbmi r3, [ip], #-2627 + 6b90: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6b94: 73746e65 cmnvc r4, #1616 ; 0x650 + 6b98: 646e6120 strbtvs r6, [lr], #-288 + 6b9c: 74655320 strbtvc r5, [r5], #-800 + 6ba0: 676e6974 undefined + 6ba4: 616d5c73 smcvs 54723 + 6ba8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6bac: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6bb0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6bb4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6bb8: 775c7374 undefined + 6bbc: 6f632d73 svcvs 0x00632d73 + 6bc0: 6f72746e svcvs 0x0072746e + 6bc4: 65575c6c ldrbvs r5, [r7, #-3180] + 6bc8: 65687461 strbvs r7, [r8, #-1121]! + 6bcc: 74532072 ldrbvc r2, [r3], #-114 + 6bd0: 6f697461 svcvs 0x00697461 + 6bd4: 6f43206e svcvs 0x0043206e + 6bd8: 6f72746e svcvs 0x0072746e + 6bdc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6be0: 7070415c rsbsvc r4, r0, ip, asr r1 + 6be4: 6163696c cmnvs r3, ip, ror #18 + 6be8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6bec: 756f535c strbvc r5, [pc, #-860]! ; 6898 + 6bf0: 5c656372 stclpl 3, cr6, [r5], #-456 + 6bf4: 65770000 ldrbvs r0, [r7]! + 6bf8: 65687461 strbvs r7, [r8, #-1121]! + 6bfc: 74735f72 ldrbtvc r5, [r3], #-3954 + 6c00: 6f697461 svcvs 0x00697461 + 6c04: 6f635f6e svcvs 0x00635f6e + 6c08: 6f72746e svcvs 0x0072746e + 6c0c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6c10: 0100632e tsteq r0, lr, lsr #6 + 6c14: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6c18: 000abe04 andeq fp, sl, r4, lsl #28 + 6c1c: dc020500 cfstr32le mvfx0, [r2], {0} + 6c20: 0500400f streq r4, [r0, #-15] + 6c24: 05d90301 ldrbeq r0, [r9, #769] + 6c28: 0305050e movweq r0, #21774 ; 0x550e + 6c2c: 07051808 streq r1, [r5, -r8, lsl #16] + 6c30: 1a261524 bne 98c0c8 + 6c34: 1b1a1a10 blne 68d47c + 6c38: 0b1c0905 bleq 709054 + 6c3c: 10153e0b andsne r3, r5, fp, lsl #28 + 6c40: 78030705 stmdavc r3, {r0, r2, r8, r9, sl} + 6c44: 22070314 andcs r0, r7, #1342177280 ; 0x50000000 + 6c48: 0805161a stmdaeq r5, {r1, r3, r4, r9, sl, ip} + 6c4c: 250b0520 strcs r0, [fp, #-1312] + 6c50: 27070515 smladcs r7, r5, r5, r0 + 6c54: 02220105 eoreq r0, r2, #1073741825 ; 0x40000001 + 6c58: 0101000e tsteq r1, lr + 6c5c: 00000110 andeq r0, r0, r0, lsl r1 + 6c60: 009e0002 addseq r0, lr, r2 + 6c64: 01020000 tsteq r2, r0 + 6c68: 000a0500 andeq r0, sl, r0, lsl #10 + 6c6c: 01010101 tsteq r1, r1, lsl #2 + 6c70: 00000000 andeq r0, r0, r0 + 6c74: 445c3a43 ldrbmi r3, [ip], #-2627 + 6c78: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6c7c: 73746e65 cmnvc r4, #1616 ; 0x650 + 6c80: 646e6120 strbtvs r6, [lr], #-288 + 6c84: 74655320 strbtvc r5, [r5], #-800 + 6c88: 676e6974 undefined + 6c8c: 616d5c73 smcvs 54723 + 6c90: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6c94: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6c98: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6c9c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6ca0: 775c7374 undefined + 6ca4: 6f632d73 svcvs 0x00632d73 + 6ca8: 6f72746e svcvs 0x0072746e + 6cac: 65575c6c ldrbvs r5, [r7, #-3180] + 6cb0: 65687461 strbvs r7, [r8, #-1121]! + 6cb4: 74532072 ldrbvc r2, [r3], #-114 + 6cb8: 6f697461 svcvs 0x00697461 + 6cbc: 6f43206e svcvs 0x0043206e + 6cc0: 6f72746e svcvs 0x0072746e + 6cc4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6cc8: 7070415c rsbsvc r4, r0, ip, asr r1 + 6ccc: 6163696c cmnvs r3, ip, ror #18 + 6cd0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6cd4: 756f535c strbvc r5, [pc, #-860]! ; 6980 + 6cd8: 5c656372 stclpl 3, cr6, [r5], #-456 + 6cdc: 65770000 ldrbvs r0, [r7]! + 6ce0: 65687461 strbvs r7, [r8, #-1121]! + 6ce4: 74735f72 ldrbtvc r5, [r3], #-3954 + 6ce8: 6f697461 svcvs 0x00697461 + 6cec: 6f635f6e svcvs 0x00635f6e + 6cf0: 6f72746e svcvs 0x0072746e + 6cf4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6cf8: 0100632e tsteq r0, lr, lsr #6 + 6cfc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6d00: 000abe04 andeq fp, sl, r4, lsl #28 + 6d04: 8c020500 cfstr32hi mvfx0, [r2], {0} + 6d08: 05004010 streq r4, [r0, #-16] + 6d0c: 06950301 ldreq r0, [r5], r1, lsl #6 + 6d10: 200b050e andcs r0, fp, lr, lsl #10 + 6d14: 05200f05 streq r0, [r0, #-3845]! + 6d18: 512e1105 teqpl lr, r5, lsl #2 + 6d1c: 33153833 tstcc r5, #3342336 ; 0x330000 + 6d20: 1556332e ldrbne r3, [r6, #-814] + 6d24: 38333838 ldmdacc r3!, {r3, r4, r5, fp, ip, sp} + 6d28: 33333338 teqcc r3, #-536870912 ; 0xe0000000 + 6d2c: 3333382e teqcc r3, #3014656 ; 0x2e0000 + 6d30: 053a0405 ldreq r0, [sl, #-1029]! + 6d34: 36050308 strcc r0, [r5], -r8, lsl #6 + 6d38: 147a0310 ldrbtne r0, [sl], #-784 + 6d3c: 03050510 movweq r0, #21776 ; 0x5510 + 6d40: 05101806 ldreq r1, [r0, #-2054] + 6d44: 0f55031b svceq 0x0055031b + 6d48: 050f1405 streq r1, [pc, #-1029] ; 694b + 6d4c: 272b0302 strcs r0, [fp, -r2, lsl #6]! + 6d50: 151a0305 ldrne r0, [sl, #-773] + 6d54: 16050511 undefined + 6d58: 0321052e teqeq r1, #192937984 ; 0xb800000 + 6d5c: 14050f7d strne r0, [r5], #-3965 + 6d60: 03020514 movweq r0, #9492 ; 0x2514 + 6d64: 03051302 movweq r1, #21250 ; 0x5302 + 6d68: 01050b1a tsteq r5, sl, lsl fp + 6d6c: 0101000b tsteq r1, fp + 6d70: 00000022 andeq r0, r0, r2, lsr #32 + 6d74: 00100002 andseq r0, r0, r2 + 6d78: 01020000 tsteq r2, r0 + 6d7c: 000a0500 andeq r0, sl, r0, lsl #10 + 6d80: 01010101 tsteq r1, r1, lsl #2 + 6d84: 00000000 andeq r0, r0, r0 + 6d88: 05000000 streq r0, [r0] + 6d8c: 40127002 andsmi r7, r2, r2 + 6d90: 00080200 andeq r0, r8, r0, lsl #4 + 6d94: 00000101 andeq r0, r0, r1, lsl #2 + 6d98: 000000f2 strdeq r0, [r0], -r2 + 6d9c: 009e0002 addseq r0, lr, r2 + 6da0: 01020000 tsteq r2, r0 + 6da4: 000a0500 andeq r0, sl, r0, lsl #10 + 6da8: 01010101 tsteq r1, r1, lsl #2 + 6dac: 00000000 andeq r0, r0, r0 + 6db0: 445c3a43 ldrbmi r3, [ip], #-2627 + 6db4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6db8: 73746e65 cmnvc r4, #1616 ; 0x650 + 6dbc: 646e6120 strbtvs r6, [lr], #-288 + 6dc0: 74655320 strbtvc r5, [r5], #-800 + 6dc4: 676e6974 undefined + 6dc8: 616d5c73 smcvs 54723 + 6dcc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6dd0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6dd4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6dd8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6ddc: 775c7374 undefined + 6de0: 6f632d73 svcvs 0x00632d73 + 6de4: 6f72746e svcvs 0x0072746e + 6de8: 65575c6c ldrbvs r5, [r7, #-3180] + 6dec: 65687461 strbvs r7, [r8, #-1121]! + 6df0: 74532072 ldrbvc r2, [r3], #-114 + 6df4: 6f697461 svcvs 0x00697461 + 6df8: 6f43206e svcvs 0x0043206e + 6dfc: 6f72746e svcvs 0x0072746e + 6e00: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6e04: 7070415c rsbsvc r4, r0, ip, asr r1 + 6e08: 6163696c cmnvs r3, ip, ror #18 + 6e0c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6e10: 756f535c strbvc r5, [pc, #-860]! ; 6abc + 6e14: 5c656372 stclpl 3, cr6, [r5], #-456 + 6e18: 65770000 ldrbvs r0, [r7]! + 6e1c: 65687461 strbvs r7, [r8, #-1121]! + 6e20: 74735f72 ldrbtvc r5, [r3], #-3954 + 6e24: 6f697461 svcvs 0x00697461 + 6e28: 6f635f6e svcvs 0x00635f6e + 6e2c: 6f72746e svcvs 0x0072746e + 6e30: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6e34: 0100632e tsteq r0, lr, lsr #6 + 6e38: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6e3c: 000abe04 andeq fp, sl, r4, lsl #28 + 6e40: 80020500 andhi r0, r2, r0, lsl #10 + 6e44: 05004012 streq r4, [r0, #-18] + 6e48: 06de0342 ldrbeq r0, [lr], r2, asr #6 + 6e4c: 1b0f050e blne 3c828c + 6e50: 2e110505 cfmul32cs mvfx0, mvfx1, mvfx5 + 6e54: 15383351 ldrne r3, [r8, #-849]! + 6e58: 56332e33 undefined + 6e5c: 33383815 teqcc r8, #1376256 ; 0x150000 + 6e60: 33333838 teqcc r3, #3670016 ; 0x380000 + 6e64: 33382e33 teqcc r8, #816 ; 0x330 + 6e68: 3a040533 bcc 10833c + 6e6c: 05030805 streq r0, [r3, #-2053] + 6e70: 7a031036 bvc caf50 + 6e74: 05051014 streq r1, [r5, #-20] + 6e78: 10180603 andsne r0, r8, r3, lsl #12 + 6e7c: 55031b05 strpl r1, [r3, #-2821] + 6e80: 0f14050f svceq 0x0014050f + 6e84: 2b030105 blcs c72a0 + 6e88: 00030227 andeq r0, r3, r7, lsr #4 + 6e8c: 00000101 andeq r0, r0, r1, lsl #2 + 6e90: 0000016a andeq r0, r0, sl, ror #2 + 6e94: 009e0002 addseq r0, lr, r2 + 6e98: 01020000 tsteq r2, r0 + 6e9c: 000a0500 andeq r0, sl, r0, lsl #10 + 6ea0: 01010101 tsteq r1, r1, lsl #2 + 6ea4: 00000000 andeq r0, r0, r0 + 6ea8: 445c3a43 ldrbmi r3, [ip], #-2627 + 6eac: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6eb0: 73746e65 cmnvc r4, #1616 ; 0x650 + 6eb4: 646e6120 strbtvs r6, [lr], #-288 + 6eb8: 74655320 strbtvc r5, [r5], #-800 + 6ebc: 676e6974 undefined + 6ec0: 616d5c73 smcvs 54723 + 6ec4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6ec8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6ecc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6ed0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6ed4: 775c7374 undefined + 6ed8: 6f632d73 svcvs 0x00632d73 + 6edc: 6f72746e svcvs 0x0072746e + 6ee0: 65575c6c ldrbvs r5, [r7, #-3180] + 6ee4: 65687461 strbvs r7, [r8, #-1121]! + 6ee8: 74532072 ldrbvc r2, [r3], #-114 + 6eec: 6f697461 svcvs 0x00697461 + 6ef0: 6f43206e svcvs 0x0043206e + 6ef4: 6f72746e svcvs 0x0072746e + 6ef8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6efc: 7070415c rsbsvc r4, r0, ip, asr r1 + 6f00: 6163696c cmnvs r3, ip, ror #18 + 6f04: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6f08: 756f535c strbvc r5, [pc, #-860]! ; 6bb4 + 6f0c: 5c656372 stclpl 3, cr6, [r5], #-456 + 6f10: 65770000 ldrbvs r0, [r7]! + 6f14: 65687461 strbvs r7, [r8, #-1121]! + 6f18: 74735f72 ldrbtvc r5, [r3], #-3954 + 6f1c: 6f697461 svcvs 0x00697461 + 6f20: 6f635f6e svcvs 0x00635f6e + 6f24: 6f72746e svcvs 0x0072746e + 6f28: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 6f2c: 0100632e tsteq r0, lr, lsr #6 + 6f30: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 6f34: 000abe04 andeq fp, sl, r4, lsl #28 + 6f38: 34020500 strcc r0, [r2], #-1280 + 6f3c: 05004014 streq r4, [r0, #-20] + 6f40: 07990301 ldreq r0, [r9, r1, lsl #6] + 6f44: 160b050e strne r0, [fp], -lr, lsl #10 + 6f48: 050c0305 streq r0, [ip, #-773] + 6f4c: 0505250f streq r2, [r5, #-1295] + 6f50: 1f052911 svcne 0x00052911 + 6f54: 05287d03 streq r7, [r8, #-3331]! + 6f58: 03050f16 movweq r0, #24342 ; 0x5f16 + 6f5c: 3d220203 sfmcc f0, 4, [r2, #-12]! + 6f60: 4e08050c cfsh32mi mvfx0, mvfx8, #12 + 6f64: 07050b24 streq r0, [r5, -r4, lsr #22] + 6f68: 24220103 strtcs r0, [r2], #-259 + 6f6c: 1b09050b blne 2483a0 + 6f70: 27200b05 strcs r0, [r0, -r5, lsl #22]! + 6f74: 01030905 tsteq r3, r5, lsl #18 + 6f78: 200b0522 andcs r0, fp, r2, lsr #10 + 6f7c: 26070527 strcs r0, [r7], -r7, lsr #10 + 6f80: 09050b0b stmdbeq r5, {r0, r1, r3, r8, r9, fp} + 6f84: 2424241b strtcs r2, [r4], #-1051 + 6f88: 24242422 strtcs r2, [r4], #-1058 + 6f8c: 03030705 movweq r0, #14085 ; 0x3705 + 6f90: 050b2431 streq r2, [fp, #-1073] + 6f94: 0b051b09 bleq 14dbc0 + 6f98: 09052720 stmdbeq r5, {r5, r8, r9, sl, sp} + 6f9c: 05220103 streq r0, [r2, #-259]! + 6fa0: 0526200b streq r2, [r6, #-11]! + 6fa4: 0b0b2707 bleq 2d0bc8 + 6fa8: 241b0905 ldrcs r0, [fp], #-2309 + 6fac: 24242224 strtcs r2, [r4], #-548 + 6fb0: 03070524 movweq r0, #29988 ; 0x7524 + 6fb4: 0b242203 bleq 90f7c8 + 6fb8: 051b0905 ldreq r0, [fp, #-2309] + 6fbc: 0527200c streq r2, [r7, #-12]! + 6fc0: 22010309 andcs r0, r1, #603979776 ; 0x24000000 + 6fc4: 27200b05 strcs r0, [r0, -r5, lsl #22]! + 6fc8: 0b260705 bleq 988be4 + 6fcc: 051b0905 ldreq r0, [fp, #-2309] + 6fd0: 09052513 stmdbeq r5, {r0, r1, r4, r8, sl, sp} + 6fd4: 052a0b11 streq r0, [sl, #-2833]! + 6fd8: 0517200b ldreq r2, [r7, #-11] + 6fdc: 34052a09 strcc r2, [r5], #-2569 + 6fe0: 05287403 streq r7, [r8, #-1027]! + 6fe4: 07050f21 streq r0, [r5, -r1, lsr #30] + 6fe8: 05220a03 streq r0, [r2, #-2563]! + 6fec: 05221b09 streq r1, [r2, #-2825]! + 6ff0: 22030307 andcs r0, r3, #469762048 ; 0x1c000000 + 6ff4: 0b2e0b24 bleq b89c8c + 6ff8: 000d020b andeq r0, sp, fp, lsl #4 + 6ffc: 00000101 andeq r0, r0, r1, lsl #2 + 7000: 00000116 andeq r0, r0, r6, lsl r1 + 7004: 009e0002 addseq r0, lr, r2 + 7008: 01020000 tsteq r2, r0 + 700c: 000a0500 andeq r0, sl, r0, lsl #10 + 7010: 01010101 tsteq r1, r1, lsl #2 + 7014: 00000000 andeq r0, r0, r0 + 7018: 445c3a43 ldrbmi r3, [ip], #-2627 + 701c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7020: 73746e65 cmnvc r4, #1616 ; 0x650 + 7024: 646e6120 strbtvs r6, [lr], #-288 + 7028: 74655320 strbtvc r5, [r5], #-800 + 702c: 676e6974 undefined + 7030: 616d5c73 smcvs 54723 + 7034: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7038: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 703c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7040: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7044: 775c7374 undefined + 7048: 6f632d73 svcvs 0x00632d73 + 704c: 6f72746e svcvs 0x0072746e + 7050: 65575c6c ldrbvs r5, [r7, #-3180] + 7054: 65687461 strbvs r7, [r8, #-1121]! + 7058: 74532072 ldrbvc r2, [r3], #-114 + 705c: 6f697461 svcvs 0x00697461 + 7060: 6f43206e svcvs 0x0043206e + 7064: 6f72746e svcvs 0x0072746e + 7068: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 706c: 7070415c rsbsvc r4, r0, ip, asr r1 + 7070: 6163696c cmnvs r3, ip, ror #18 + 7074: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7078: 756f535c strbvc r5, [pc, #-860]! ; 6d24 + 707c: 5c656372 stclpl 3, cr6, [r5], #-456 + 7080: 65770000 ldrbvs r0, [r7]! + 7084: 65687461 strbvs r7, [r8, #-1121]! + 7088: 74735f72 ldrbtvc r5, [r3], #-3954 + 708c: 6f697461 svcvs 0x00697461 + 7090: 6f635f6e svcvs 0x00635f6e + 7094: 6f72746e svcvs 0x0072746e + 7098: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 709c: 0100632e tsteq r0, lr, lsr #6 + 70a0: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 70a4: 000abe04 andeq fp, sl, r4, lsl #28 + 70a8: ac020500 cfstr32ge mvfx0, [r2], {0} + 70ac: 05004016 streq r4, [r0, #-22] + 70b0: 08db0301 ldmeq fp, {r0, r8, r9}^ + 70b4: 1803050e stmdane r3, {r1, r2, r3, r8, sl} + 70b8: 34050515 strcc r0, [r5], #-1301 + 70bc: 051b0605 ldreq r0, [fp, #-1541] + 70c0: 03051d07 movweq r1, #23815 ; 0x5d07 + 70c4: 25050526 strcs r0, [r5, #-1318] + 70c8: 05250305 streq r0, [r5, #-773]! + 70cc: 06052505 streq r2, [r5], -r5, lsl #10 + 70d0: 2207051b andcs r0, r7, #113246208 ; 0x6c00000 + 70d4: 05260305 streq r0, [r6, #-773]! + 70d8: 03052505 movweq r2, #21765 ; 0x5505 + 70dc: 25050525 strcs r0, [r5, #-1317] + 70e0: 05250305 streq r0, [r5, #-773]! + 70e4: 03052505 movweq r2, #21765 ; 0x5505 + 70e8: 2f050525 svccs 0x00050525 + 70ec: 05250305 streq r0, [r5, #-773]! + 70f0: 03052f05 movweq r2, #24325 ; 0x5f05 + 70f4: 1a0f0526 bne 3c8594 + 70f8: 07030705 streq r0, [r3, -r5, lsl #14] + 70fc: 25050522 strcs r0, [r5, #-1314] + 7100: 73033005 movwvc r3, #12293 ; 0x3005 + 7104: 191d0523 ldmdbne sp, {r0, r1, r5, r8, sl} + 7108: 0b160505 bleq 588524 + 710c: 16070525 strne r0, [r7], -r5, lsr #10 + 7110: 04030105 streq r0, [r3], #-261 + 7114: 00130218 andseq r0, r3, r8, lsl r2 + 7118: 00000101 andeq r0, r0, r1, lsl #2 + 711c: 000000c0 andeq r0, r0, r0, asr #1 + 7120: 009e0002 addseq r0, lr, r2 + 7124: 01020000 tsteq r2, r0 + 7128: 000a0500 andeq r0, sl, r0, lsl #10 + 712c: 01010101 tsteq r1, r1, lsl #2 + 7130: 00000000 andeq r0, r0, r0 + 7134: 445c3a43 ldrbmi r3, [ip], #-2627 + 7138: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 713c: 73746e65 cmnvc r4, #1616 ; 0x650 + 7140: 646e6120 strbtvs r6, [lr], #-288 + 7144: 74655320 strbtvc r5, [r5], #-800 + 7148: 676e6974 undefined + 714c: 616d5c73 smcvs 54723 + 7150: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7154: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 7158: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 715c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7160: 775c7374 undefined + 7164: 6f632d73 svcvs 0x00632d73 + 7168: 6f72746e svcvs 0x0072746e + 716c: 65575c6c ldrbvs r5, [r7, #-3180] + 7170: 65687461 strbvs r7, [r8, #-1121]! + 7174: 74532072 ldrbvc r2, [r3], #-114 + 7178: 6f697461 svcvs 0x00697461 + 717c: 6f43206e svcvs 0x0043206e + 7180: 6f72746e svcvs 0x0072746e + 7184: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7188: 7070415c rsbsvc r4, r0, ip, asr r1 + 718c: 6163696c cmnvs r3, ip, ror #18 + 7190: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7194: 756f535c strbvc r5, [pc, #-860]! ; 6e40 + 7198: 5c656372 stclpl 3, cr6, [r5], #-456 + 719c: 65770000 ldrbvs r0, [r7]! + 71a0: 65687461 strbvs r7, [r8, #-1121]! + 71a4: 74735f72 ldrbtvc r5, [r3], #-3954 + 71a8: 6f697461 svcvs 0x00697461 + 71ac: 6f635f6e svcvs 0x00635f6e + 71b0: 6f72746e svcvs 0x0072746e + 71b4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 71b8: 0100632e tsteq r0, lr, lsr #6 + 71bc: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 71c0: 000abe04 andeq fp, sl, r4, lsl #28 + 71c4: e0020500 and r0, r2, r0, lsl #10 + 71c8: 05004017 streq r4, [r0, #-23] + 71cc: 09a70301 stmibeq r7!, {r0, r8, r9} + 71d0: 1603050e strne r0, [r3], -lr, lsl #10 + 71d4: 1a15151a bne 54c644 + 71d8: 02200105 eoreq r0, r0, #1073741825 ; 0x40000001 + 71dc: 01010006 tsteq r1, r6 + 71e0: 000000c0 andeq r0, r0, r0, asr #1 + 71e4: 009e0002 addseq r0, lr, r2 + 71e8: 01020000 tsteq r2, r0 + 71ec: 000a0500 andeq r0, sl, r0, lsl #10 + 71f0: 01010101 tsteq r1, r1, lsl #2 + 71f4: 00000000 andeq r0, r0, r0 + 71f8: 445c3a43 ldrbmi r3, [ip], #-2627 + 71fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7200: 73746e65 cmnvc r4, #1616 ; 0x650 + 7204: 646e6120 strbtvs r6, [lr], #-288 + 7208: 74655320 strbtvc r5, [r5], #-800 + 720c: 676e6974 undefined + 7210: 616d5c73 smcvs 54723 + 7214: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 7218: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 721c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 7220: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 7224: 775c7374 undefined + 7228: 6f632d73 svcvs 0x00632d73 + 722c: 6f72746e svcvs 0x0072746e + 7230: 65575c6c ldrbvs r5, [r7, #-3180] + 7234: 65687461 strbvs r7, [r8, #-1121]! + 7238: 74532072 ldrbvc r2, [r3], #-114 + 723c: 6f697461 svcvs 0x00697461 + 7240: 6f43206e svcvs 0x0043206e + 7244: 6f72746e svcvs 0x0072746e + 7248: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 724c: 7070415c rsbsvc r4, r0, ip, asr r1 + 7250: 6163696c cmnvs r3, ip, ror #18 + 7254: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7258: 756f535c strbvc r5, [pc, #-860]! ; 6f04 + 725c: 5c656372 stclpl 3, cr6, [r5], #-456 + 7260: 65770000 ldrbvs r0, [r7]! + 7264: 65687461 strbvs r7, [r8, #-1121]! + 7268: 74735f72 ldrbtvc r5, [r3], #-3954 + 726c: 6f697461 svcvs 0x00697461 + 7270: 6f635f6e svcvs 0x00635f6e + 7274: 6f72746e svcvs 0x0072746e + 7278: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 727c: 0100632e tsteq r0, lr, lsr #6 + 7280: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 7284: 000abe04 andeq fp, sl, r4, lsl #28 + 7288: 0c020500 cfstr32eq mvfx0, [r2], {0} + 728c: 05004018 streq r4, [r0, #-24] + 7290: 09b80301 ldmibeq r8!, {r0, r8, r9} + 7294: 1203050e andne r0, r3, #58720256 ; 0x3800000 + 7298: 35050533 strcc r0, [r5, #-1331] + 729c: 02430105 subeq r0, r3, #1073741825 ; 0x40000001 + 72a0: 01010008 tsteq r1, r8 + 72a4: 000000bc strheq r0, [r0], -ip + 72a8: 009e0002 addseq r0, lr, r2 + 72ac: 01020000 tsteq r2, r0 + 72b0: 000a0500 andeq r0, sl, r0, lsl #10 + 72b4: 01010101 tsteq r1, r1, lsl #2 + 72b8: 00000000 andeq r0, r0, r0 + 72bc: 445c3a43 ldrbmi r3, [ip], #-2627 + 72c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 72c4: 73746e65 cmnvc r4, #1616 ; 0x650 + 72c8: 646e6120 strbtvs r6, [lr], #-288 + 72cc: 74655320 strbtvc r5, [r5], #-800 + 72d0: 676e6974 undefined + 72d4: 616d5c73 smcvs 54723 + 72d8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 72dc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 72e0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 72e4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 72e8: 775c7374 undefined + 72ec: 6f632d73 svcvs 0x00632d73 + 72f0: 6f72746e svcvs 0x0072746e + 72f4: 65575c6c ldrbvs r5, [r7, #-3180] + 72f8: 65687461 strbvs r7, [r8, #-1121]! + 72fc: 74532072 ldrbvc r2, [r3], #-114 + 7300: 6f697461 svcvs 0x00697461 + 7304: 6f43206e svcvs 0x0043206e + 7308: 6f72746e svcvs 0x0072746e + 730c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7310: 7070415c rsbsvc r4, r0, ip, asr r1 + 7314: 6163696c cmnvs r3, ip, ror #18 + 7318: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 731c: 756f535c strbvc r5, [pc, #-860]! ; 6fc8 + 7320: 5c656372 stclpl 3, cr6, [r5], #-456 + 7324: 65770000 ldrbvs r0, [r7]! + 7328: 65687461 strbvs r7, [r8, #-1121]! + 732c: 74735f72 ldrbtvc r5, [r3], #-3954 + 7330: 6f697461 svcvs 0x00697461 + 7334: 6f635f6e svcvs 0x00635f6e + 7338: 6f72746e svcvs 0x0072746e + 733c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7340: 0100632e tsteq r0, lr, lsr #6 + 7344: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 7348: 000abe04 andeq fp, sl, r4, lsl #28 + 734c: 54020500 strpl r0, [r2], #-1280 + 7350: 05004018 streq r4, [r0, #-24] + 7354: 09ca0301 stmibeq sl, {r0, r8, r9}^ + 7358: 1003050e andne r0, r3, lr, lsl #10 + 735c: 02420105 subeq r0, r2, #1073741825 ; 0x40000001 + 7360: 01010004 tsteq r1, r4 + 7364: 00000102 andeq r0, r0, r2, lsl #2 + 7368: 009e0002 addseq r0, lr, r2 + 736c: 01020000 tsteq r2, r0 + 7370: 000a0500 andeq r0, sl, r0, lsl #10 + 7374: 01010101 tsteq r1, r1, lsl #2 + 7378: 00000000 andeq r0, r0, r0 + 737c: 445c3a43 ldrbmi r3, [ip], #-2627 + 7380: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7384: 73746e65 cmnvc r4, #1616 ; 0x650 + 7388: 646e6120 strbtvs r6, [lr], #-288 + 738c: 74655320 strbtvc r5, [r5], #-800 + 7390: 676e6974 undefined + 7394: 616d5c73 smcvs 54723 + 7398: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 739c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 73a0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 73a4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 73a8: 775c7374 undefined + 73ac: 6f632d73 svcvs 0x00632d73 + 73b0: 6f72746e svcvs 0x0072746e + 73b4: 65575c6c ldrbvs r5, [r7, #-3180] + 73b8: 65687461 strbvs r7, [r8, #-1121]! + 73bc: 74532072 ldrbvc r2, [r3], #-114 + 73c0: 6f697461 svcvs 0x00697461 + 73c4: 6f43206e svcvs 0x0043206e + 73c8: 6f72746e svcvs 0x0072746e + 73cc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 73d0: 7070415c rsbsvc r4, r0, ip, asr r1 + 73d4: 6163696c cmnvs r3, ip, ror #18 + 73d8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 73dc: 756f535c strbvc r5, [pc, #-860]! ; 7088 + 73e0: 5c656372 stclpl 3, cr6, [r5], #-456 + 73e4: 65770000 ldrbvs r0, [r7]! + 73e8: 65687461 strbvs r7, [r8, #-1121]! + 73ec: 74735f72 ldrbtvc r5, [r3], #-3954 + 73f0: 6f697461 svcvs 0x00697461 + 73f4: 6f635f6e svcvs 0x00635f6e + 73f8: 6f72746e svcvs 0x0072746e + 73fc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7400: 0100632e tsteq r0, lr, lsr #6 + 7404: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 7408: 000abe04 andeq fp, sl, r4, lsl #28 + 740c: 74020500 strvc r0, [r2], #-1280 + 7410: 05004018 streq r4, [r0, #-24] + 7414: 09cf0301 stmibeq pc, {r0, r8, r9}^ + 7418: 1203050e andne r0, r3, #58720256 ; 0x3800000 + 741c: 1a160505 bne 588838 + 7420: 03030515 movweq r0, #13589 ; 0x3515 + 7424: 05051801 streq r1, [r5, #-2049] + 7428: 15151a16 ldrne r1, [r5, #-2582] + 742c: 1d160705 ldcne 7, cr0, [r6, #-20] + 7430: 15161a15 ldrne r1, [r6, #-2581] + 7434: 051c0505 ldreq r0, [ip, #-1285] + 7438: 05051203 streq r1, [r5, #-515] + 743c: 15151a16 ldrne r1, [r5, #-2582] + 7440: 0e160705 cdpeq 7, 1, cr0, cr6, cr5, {0} + 7444: 03051a15 movweq r1, #23061 ; 0x5a15 + 7448: 051d0203 ldreq r0, [sp, #-515] + 744c: 151a1605 ldrne r1, [sl, #-1541] + 7450: 01030305 tsteq r3, r5, lsl #6 + 7454: 16050518 undefined + 7458: 151a151a ldrne r1, [sl, #-1306] + 745c: 052c0305 streq r0, [ip, #-773]! + 7460: 01051605 tsteq r5, r5, lsl #12 + 7464: 000a021b andeq r0, sl, fp, lsl r2 + 7468: 00000101 andeq r0, r0, r1, lsl #2 + 746c: 000000c2 andeq r0, r0, r2, asr #1 + 7470: 009e0002 addseq r0, lr, r2 + 7474: 01020000 tsteq r2, r0 + 7478: 000a0500 andeq r0, sl, r0, lsl #10 + 747c: 01010101 tsteq r1, r1, lsl #2 + 7480: 00000000 andeq r0, r0, r0 + 7484: 445c3a43 ldrbmi r3, [ip], #-2627 + 7488: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 748c: 73746e65 cmnvc r4, #1616 ; 0x650 + 7490: 646e6120 strbtvs r6, [lr], #-288 + 7494: 74655320 strbtvc r5, [r5], #-800 + 7498: 676e6974 undefined + 749c: 616d5c73 smcvs 54723 + 74a0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 74a4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 74a8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 74ac: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 74b0: 775c7374 undefined + 74b4: 6f632d73 svcvs 0x00632d73 + 74b8: 6f72746e svcvs 0x0072746e + 74bc: 65575c6c ldrbvs r5, [r7, #-3180] + 74c0: 65687461 strbvs r7, [r8, #-1121]! + 74c4: 74532072 ldrbvc r2, [r3], #-114 + 74c8: 6f697461 svcvs 0x00697461 + 74cc: 6f43206e svcvs 0x0043206e + 74d0: 6f72746e svcvs 0x0072746e + 74d4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 74d8: 7070415c rsbsvc r4, r0, ip, asr r1 + 74dc: 6163696c cmnvs r3, ip, ror #18 + 74e0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 74e4: 756f535c strbvc r5, [pc, #-860]! ; 7190 + 74e8: 5c656372 stclpl 3, cr6, [r5], #-456 + 74ec: 65770000 ldrbvs r0, [r7]! + 74f0: 65687461 strbvs r7, [r8, #-1121]! + 74f4: 74735f72 ldrbtvc r5, [r3], #-3954 + 74f8: 6f697461 svcvs 0x00697461 + 74fc: 6f635f6e svcvs 0x00635f6e + 7500: 6f72746e svcvs 0x0072746e + 7504: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 7508: 0100632e tsteq r0, lr, lsr #6 + 750c: cef2c9e2 cdpgt 9, 15, cr12, cr2, cr2, {7} + 7510: 000abe04 andeq fp, sl, r4, lsl #28 + 7514: 38020500 stmdacc r2, {r8, sl} + 7518: 05004019 streq r4, [r0, #-25] + 751c: 0aa40301 beq fe908128 + 7520: 1603050e strne r0, [r3], -lr, lsl #10 + 7524: 05170505 ldreq r0, [r7, #-1285] + 7528: 197e0303 ldmdbne lr!, {r0, r1, r8, r9}^ + 752c: 00060236 andeq r0, r6, r6, lsr r2 + 7530: 00000101 andeq r0, r0, r1, lsl #2 + +Disassembly of section .debug_loc: + +00000000 <.debug_loc>: + 0: 00000000 andeq r0, r0, r0 + 4: 00000002 andeq r0, r0, r2 + 8: 007d0002 rsbseq r0, sp, r2 + c: 00000002 andeq r0, r0, r2 + 10: 0000001c andeq r0, r0, ip, lsl r0 + 14: 087d0002 ldmdaeq sp!, {r1}^ + 18: 0000001c andeq r0, r0, ip, lsl r0 + 1c: 00000024 andeq r0, r0, r4, lsr #32 + 20: 007d0002 rsbseq r0, sp, r2 + ... + 2c: 0000000a andeq r0, r0, sl + 30: 0000001a andeq r0, r0, sl, lsl r0 + 34: 1a500001 bne 1400040 + 38: 24000000 strcs r0, [r0] + ... + 48: 00000c00 andeq r0, r0, r0, lsl #24 + 4c: 00001600 andeq r1, r0, r0, lsl #12 + 50: 91000200 tstls r0, r0, lsl #4 + 54: 00001678 andeq r1, r0, r8, ror r6 + 58: 00002400 andeq r2, r0, r0, lsl #8 + ... + 68: 02000000 andeq r0, r0, #0 ; 0x0 + 6c: 02000000 andeq r0, r0, #0 ; 0x0 + 70: 02007d00 andeq r7, r0, #0 ; 0x0 + 74: 1c000000 stcne 0, cr0, [r0], {0} + 78: 02000000 andeq r0, r0, #0 ; 0x0 + 7c: 1c087d00 stcne 13, cr7, [r8], {0} + 80: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} + 84: 02000000 andeq r0, r0, #0 ; 0x0 + 88: 00007d00 andeq r7, r0, r0, lsl #26 + 8c: 00000000 andeq r0, r0, r0 + 90: 0a000000 beq 98 + 94: 1a000000 bne 9c + 98: 01000000 tsteq r0, r0 + 9c: 001a5000 andseq r5, sl, r0 + a0: 001e0000 andseq r0, lr, r0 + ... + b0: 0000000c andeq r0, r0, ip + b4: 00000016 andeq r0, r0, r6, lsl r0 + b8: 78910002 ldmvc r1, {r1} + bc: 00000016 andeq r0, r0, r6, lsl r0 + c0: 0000001e andeq r0, r0, lr, lsl r0 + ... + d0: 00020000 andeq r0, r2, r0 + d4: 00020000 andeq r0, r2, r0 + d8: 0002007d andeq r0, r2, sp, ror r0 + dc: 01ea0000 mvneq r0, r0 + e0: 00020000 andeq r0, r2, r0 + e4: 01ea107d mvneq r1, sp, ror r0 + e8: 01ec0000 mvneq r0, r0 + ec: 00020000 andeq r0, r2, r0 + f0: 01ec0c7d mvneq r0, sp, ror ip + f4: 01f00000 mvnseq r0, r0 + f8: 00020000 andeq r0, r2, r0 + fc: 01f0047d mvnseq r0, sp, ror r4 + 100: 01f20000 mvnseq r0, r0 + 104: 00020000 andeq r0, r2, r0 + 108: 0000007d andeq r0, r0, sp, ror r0 + ... + 114: 00020000 andeq r0, r2, r0 + 118: 00020000 andeq r0, r2, r0 + 11c: 0002007d andeq r0, r2, sp, ror r0 + 120: 00520000 subseq r0, r2, r0 + 124: 00020000 andeq r0, r2, r0 + 128: 0052107d subseq r1, r2, sp, ror r0 + 12c: 00560000 subseq r0, r6, r0 + 130: 00020000 andeq r0, r2, r0 + 134: 0056047d subseq r0, r6, sp, ror r4 + 138: 00580000 subseq r0, r8, r0 + 13c: 00020000 andeq r0, r2, r0 + 140: 0000007d andeq r0, r0, sp, ror r0 + 144: 00000000 andeq r0, r0, r0 + 148: 001e0000 andseq r0, lr, r0 + 14c: 00500000 subseq r0, r0, r0 + 150: 00010000 andeq r0, r1, r0 + 154: 00005056 andeq r5, r0, r6, asr r0 + 158: 00005800 andeq r5, r0, r0, lsl #16 + ... + 164: 16000000 strne r0, [r0], -r0 + 168: 1c000000 stcne 0, cr0, [r0], {0} + 16c: 01000000 tsteq r0, r0 + 170: 001c5100 andseq r5, ip, r0, lsl #2 + 174: 00580000 subseq r0, r8, r0 + ... + 188: 00000002 andeq r0, r0, r2 + 18c: 007d0002 rsbseq r0, sp, r2 + 190: 00000002 andeq r0, r0, r2 + 194: 00000066 andeq r0, r0, r6, rrx + 198: 187d0002 ldmdane sp!, {r1}^ + 19c: 00000066 andeq r0, r0, r6, rrx + 1a0: 00000068 andeq r0, r0, r8, rrx + 1a4: 147d0002 ldrbtne r0, [sp], #-2 + ... + 1b0: 00000004 andeq r0, r0, r4 + 1b4: 00000012 andeq r0, r0, r2, lsl r0 + 1b8: 12500001 subsne r0, r0, #1 ; 0x1 + 1bc: 68000000 stmdavs r0, {} + ... + 1cc: 00000400 andeq r0, r0, r0, lsl #8 + 1d0: 00006400 andeq r6, r0, r0, lsl #8 + 1d4: 55000100 strpl r0, [r0, #-256] + 1d8: 00000064 andeq r0, r0, r4, rrx + 1dc: 00000068 andeq r0, r0, r8, rrx + ... + 1e8: 00420000 subeq r0, r2, r0 + 1ec: 00640000 rsbeq r0, r4, r0 + 1f0: 00010000 andeq r0, r1, r0 + 1f4: 00006457 andeq r6, r0, r7, asr r4 + 1f8: 00006800 andeq r6, r0, r0, lsl #16 + ... + 204: 18000000 stmdane r0, {} + 208: 38000000 stmdacc r0, {} + 20c: 01000000 tsteq r0, r0 + 210: 00385000 eorseq r5, r8, r0 + 214: 003e0000 eorseq r0, lr, r0 + ... + 224: 0000001c andeq r0, r0, ip, lsl r0 + 228: 00000038 andeq r0, r0, r8, lsr r0 + 22c: 38510001 ldmdacc r1, {r0}^ + 230: 3e000000 cdpcc 0, 0, cr0, cr0, cr0, {0} + ... + 240: 00002000 andeq r2, r0, r0 + 244: 00003c00 andeq r3, r0, r0, lsl #24 + 248: 57000100 strpl r0, [r0, -r0, lsl #2] + 24c: 0000003c andeq r0, r0, ip, lsr r0 + 250: 0000003e andeq r0, r0, lr, lsr r0 + ... + 25c: 00440000 subeq r0, r4, r0 + 260: 00640000 rsbeq r0, r4, r0 + 264: 00010000 andeq r0, r1, r0 + 268: 00000054 andeq r0, r0, r4, asr r0 + ... + 274: 00000200 andeq r0, r0, r0, lsl #4 + 278: 7d000200 sfmvc f0, 4, [r0] + 27c: 00000200 andeq r0, r0, r0, lsl #4 + 280: 00000400 andeq r0, r0, r0, lsl #8 + 284: 7d000200 sfmvc f0, 4, [r0] + 288: 0000041c andeq r0, r0, ip, lsl r4 + 28c: 00018800 andeq r8, r1, r0, lsl #16 + 290: 7d000300 stcvc 3, cr0, [r0] + 294: 018800d0 ldrdeq r0, [r8, r0] + 298: 01940000 orrseq r0, r4, r0 + 29c: 00020000 andeq r0, r2, r0 + 2a0: 0000147d andeq r1, r0, sp, ror r4 + 2a4: 00000000 andeq r0, r0, r0 + 2a8: 00060000 andeq r0, r6, r0 + 2ac: 00c60000 sbceq r0, r6, r0 + 2b0: 00020000 andeq r0, r2, r0 + 2b4: 00c66491 smulleq r6, r6, r1, r4 + 2b8: 00f40000 rscseq r0, r4, r0 + 2bc: 00000000 andeq r0, r0, r0 + 2c0: 000000f4 strdeq r0, [r0], -r4 + 2c4: 00000160 andeq r0, r0, r0, ror #2 + 2c8: 64910002 ldrvs r0, [r1], #2 + 2cc: 00000160 andeq r0, r0, r0, ror #2 + 2d0: 00000194 muleq r0, r4, r1 + ... + 2dc: 00060000 andeq r0, r6, r0 + 2e0: 00680000 rsbeq r0, r8, r0 + 2e4: 00010000 andeq r0, r1, r0 + 2e8: 00006854 andeq r6, r0, r4, asr r8 + 2ec: 00007c00 andeq r7, r0, r0, lsl #24 + 2f0: 7c000000 stcvc 0, cr0, [r0], {0} + 2f4: 9c000000 stcls 0, cr0, [r0], {0} + 2f8: 01000000 tsteq r0, r0 + 2fc: 009c5400 addseq r5, ip, r0, lsl #8 + 300: 00f40000 rscseq r0, r4, r0 + 304: 00000000 andeq r0, r0, r0 + 308: 000000f4 strdeq r0, [r0], -r4 + 30c: 0000011c andeq r0, r0, ip, lsl r1 + 310: 1c540001 mrrcne 0, 0, r0, r4, cr1 + 314: 94000001 strls r0, [r0], #-1 + 318: 00000001 andeq r0, r0, r1 + ... + 324: 00000600 andeq r0, r0, r0, lsl #12 + 328: 0000ee00 andeq lr, r0, r0, lsl #28 + 32c: 91000200 tstls r0, r0, lsl #4 + 330: 0000ee68 andeq lr, r0, r8, ror #28 + 334: 0000f400 andeq pc, r0, r0, lsl #8 + 338: f4000000 vst4.8 {d0-d3}, [r0], r0 + 33c: 82000000 andhi r0, r0, #0 ; 0x0 + 340: 02000001 andeq r0, r0, #1 ; 0x1 + 344: 82689100 rsbhi r9, r8, #0 ; 0x0 + 348: 94000001 strls r0, [r0], #-1 + 34c: 00000001 andeq r0, r0, r1 + ... + 358: 00000600 andeq r0, r0, r0, lsl #12 + 35c: 00001a00 andeq r1, r0, r0, lsl #20 + 360: 53000100 movwpl r0, #256 ; 0x100 + 364: 0000001a andeq r0, r0, sl, lsl r0 + 368: 000000f4 strdeq r0, [r0], -r4 + 36c: 00f40000 rscseq r0, r4, r0 + 370: 00fc0000 rscseq r0, ip, r0 + 374: 00010000 andeq r0, r1, r0 + 378: 0000fc53 andeq pc, r0, r3, asr ip + 37c: 00019400 andeq r9, r1, r0, lsl #8 + ... + 388: 08000000 stmdaeq r0, {} + 38c: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} + 390: 01000000 tsteq r0, r0 + 394: 001e5500 andseq r5, lr, r0, lsl #10 + 398: 00280000 eoreq r0, r8, r0 + 39c: 00000000 andeq r0, r0, r0 + 3a0: 00000028 andeq r0, r0, r8, lsr #32 + 3a4: 00000030 andeq r0, r0, r0, lsr r0 + 3a8: 30550001 subscc r0, r5, r1 + 3ac: 3a000000 bcc 3b4 <__ABT_stack_size+0x2b4> + 3b0: 00000000 andeq r0, r0, r0 + 3b4: 00003a00 andeq r3, r0, r0, lsl #20 + 3b8: 00004000 andeq r4, r0, r0 + 3bc: 55000100 strpl r0, [r0, #-256] + 3c0: 00000040 andeq r0, r0, r0, asr #32 + 3c4: 00000048 andeq r0, r0, r8, asr #32 + 3c8: 00480000 subeq r0, r8, r0 + 3cc: 009c0000 addseq r0, ip, r0 + 3d0: 00010000 andeq r0, r1, r0 + 3d4: 00009c55 andeq r9, r0, r5, asr ip + 3d8: 00019400 andeq r9, r1, r0, lsl #8 + ... + 3ec: 10000000 andne r0, r0, r0 + 3f0: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} + 3f4: 03000000 movweq r0, #0 ; 0x0 + 3f8: 7fb09100 svcvc 0x00b09100 + 3fc: 0000001e andeq r0, r0, lr, lsl r0 + 400: 00000024 andeq r0, r0, r4, lsr #32 + 404: 00240000 eoreq r0, r4, r0 + 408: 00300000 eorseq r0, r0, r0 + 40c: 00030000 andeq r0, r3, r0 + 410: 307fb091 ldrbtcc fp, [pc, #-1] ; 417 <__FIQ_stack_size+0x17> + 414: 36000000 strcc r0, [r0], -r0 + 418: 00000000 andeq r0, r0, r0 + 41c: 00003600 andeq r3, r0, r0, lsl #12 + 420: 00004000 andeq r4, r0, r0 + 424: 91000300 tstls r0, r0, lsl #6 + 428: 00407fb0 strheq r7, [r0], #-240 + 42c: 00460000 subeq r0, r6, r0 + 430: 00000000 andeq r0, r0, r0 + 434: 00000046 andeq r0, r0, r6, asr #32 + 438: 0000009c muleq r0, ip, r0 + 43c: b0910003 addslt r0, r1, r3 + 440: 00009c7f andeq r9, r0, pc, ror ip + 444: 00019400 andeq r9, r1, r0, lsl #8 + ... + 450: 10000000 andne r0, r0, r0 + 454: 9c000000 stcls 0, cr0, [r0], {0} + 458: 01000000 tsteq r0, r0 + 45c: 009c5600 addseq r5, ip, r0, lsl #12 + 460: 00ca0000 sbceq r0, sl, r0 + 464: 00000000 andeq r0, r0, r0 + 468: 000000ca andeq r0, r0, sl, asr #1 + 46c: 000000e4 andeq r0, r0, r4, ror #1 + 470: e4560001 ldrb r0, [r6], #-1 + 474: f4000000 vst4.8 {d0-d3}, [r0], r0 + 478: 00000000 andeq r0, r0, r0 + 47c: 0000f400 andeq pc, r0, r0, lsl #8 + 480: 00013400 andeq r3, r1, r0, lsl #8 + 484: 56000100 strpl r0, [r0], -r0, lsl #2 + 488: 00000134 andeq r0, r0, r4, lsr r1 + 48c: 00000162 andeq r0, r0, r2, ror #2 + 490: 01620000 cmneq r2, r0 + 494: 017c0000 cmneq ip, r0 + 498: 00010000 andeq r0, r1, r0 + 49c: 00017c56 andeq r7, r1, r6, asr ip + 4a0: 00019400 andeq r9, r1, r0, lsl #8 + ... + 4ac: 12000000 andne r0, r0, #0 ; 0x0 + 4b0: 68000000 stmdavs r0, {} + 4b4: 01000000 tsteq r0, r0 + 4b8: 00685700 rsbeq r5, r8, r0, lsl #14 + 4bc: 00700000 rsbseq r0, r0, r0 + 4c0: 00000000 andeq r0, r0, r0 + 4c4: 00000070 andeq r0, r0, r0, ror r0 + 4c8: 0000007c andeq r0, r0, ip, ror r0 + 4cc: 7c570001 mrrcvc 0, 0, r0, r7, cr1 + 4d0: 84000000 strhi r0, [r0] + 4d4: 00000000 andeq r0, r0, r0 + 4d8: 00008400 andeq r8, r0, r0, lsl #8 + 4dc: 0000a600 andeq sl, r0, r0, lsl #12 + 4e0: 57000100 strpl r0, [r0, -r0, lsl #2] + 4e4: 000000a6 andeq r0, r0, r6, lsr #1 + 4e8: 000000ac andeq r0, r0, ip, lsr #1 + 4ec: 00ac0000 adceq r0, ip, r0 + 4f0: 00e80000 rsceq r0, r8, r0 + 4f4: 00010000 andeq r0, r1, r0 + 4f8: 0000e857 andeq lr, r0, r7, asr r8 + 4fc: 0000f400 andeq pc, r0, r0, lsl #8 + 500: f4000000 vst4.8 {d0-d3}, [r0], r0 + 504: 20000000 andcs r0, r0, r0 + 508: 01000001 tsteq r0, r1 + 50c: 01205700 teqeq r0, r0, lsl #14 + 510: 012e0000 teqeq lr, r0 + 514: 00000000 andeq r0, r0, r0 + 518: 0000012e andeq r0, r0, lr, lsr #2 + 51c: 00000134 andeq r0, r0, r4, lsr r1 + 520: 34570001 ldrbcc r0, [r7], #-1 + 524: 46000001 strmi r0, [r0], -r1 + 528: 00000001 andeq r0, r0, r1 + 52c: 00014600 andeq r4, r1, r0, lsl #12 + 530: 00017c00 andeq r7, r1, r0, lsl #24 + 534: 57000100 strpl r0, [r0, -r0, lsl #2] + 538: 0000017c andeq r0, r0, ip, ror r1 + 53c: 00000194 muleq r0, r4, r1 + ... + 548: 00060000 andeq r0, r6, r0 + 54c: 01860000 orreq r0, r6, r0 + 550: 00020000 andeq r0, r2, r0 + 554: 01865c91 strbeq r5, [r6, r1] + 558: 01940000 orrseq r0, r4, r0 + ... + 568: 00000006 andeq r0, r0, r6 + 56c: 00000186 andeq r0, r0, r6, lsl #3 + 570: 54910002 ldrpl r0, [r1], #2 + 574: 00000186 andeq r0, r0, r6, lsl #3 + 578: 00000194 muleq r0, r4, r1 + ... + 584: 00060000 andeq r0, r6, r0 + 588: 01860000 orreq r0, r6, r0 + 58c: 00030000 andeq r0, r3, r0 + 590: 867fb891 undefined + 594: 94000001 strls r0, [r0], #-1 + 598: 00000001 andeq r0, r0, r1 + ... + 5a4: 00000600 andeq r0, r0, r0, lsl #12 + 5a8: 00018600 andeq r8, r1, r0, lsl #12 + 5ac: 91000200 tstls r0, r0, lsl #4 + 5b0: 00018640 andeq r8, r1, r0, asr #12 + 5b4: 00019400 andeq r9, r1, r0, lsl #8 + ... + 5c4: 02000000 andeq r0, r0, #0 ; 0x0 + 5c8: 02000000 andeq r0, r0, #0 ; 0x0 + 5cc: 02007d00 andeq r7, r0, #0 ; 0x0 + 5d0: 04000000 streq r0, [r0] + 5d4: 02000000 andeq r0, r0, #0 ; 0x0 + 5d8: 04247d00 strteq r7, [r4], #-3328 + 5dc: d0000000 andle r0, r0, r0 + 5e0: 03000001 movweq r0, #1 ; 0x1 + 5e4: 00e87d00 rsceq r7, r8, r0, lsl #26 + 5e8: 000001d0 ldrdeq r0, [r0], -r0 + 5ec: 000001d2 ldrdeq r0, [r0], -r2 + 5f0: 147d0002 ldrbtne r0, [sp], #-2 + 5f4: 000001d2 ldrdeq r0, [r0], -r2 + 5f8: 000001f0 strdeq r0, [r0], -r0 + 5fc: e87d0003 ldmda sp!, {r0, r1}^ + ... + 608: 00000400 andeq r0, r0, r0, lsl #8 + 60c: 00010600 andeq r0, r1, r0, lsl #12 + 610: 91000200 tstls r0, r0, lsl #4 + 614: 0001065c andeq r0, r1, ip, asr r6 + 618: 00012400 andeq r2, r1, r0, lsl #8 + 61c: 24000000 strcs r0, [r0] + 620: a2000001 andge r0, r0, #1 ; 0x1 + 624: 02000001 andeq r0, r0, #1 ; 0x1 + 628: a25c9100 subsge r9, ip, #0 ; 0x0 + 62c: f0000001 undefined instruction 0xf0000001 + 630: 00000001 andeq r0, r0, r1 + ... + 63c: 00000400 andeq r0, r0, r0, lsl #8 + 640: 0000e600 andeq lr, r0, r0, lsl #12 + 644: 91000200 tstls r0, r0, lsl #4 + 648: 0000e660 andeq lr, r0, r0, ror #12 + 64c: 00012400 andeq r2, r1, r0, lsl #8 + 650: 24000000 strcs r0, [r0] + 654: 5e000001 cdppl 0, 0, cr0, cr0, cr1, {0} + 658: 02000001 andeq r0, r0, #1 ; 0x1 + 65c: 5e609100 lgnpls f1, f0 + 660: f0000001 undefined instruction 0xf0000001 + 664: 00000001 andeq r0, r0, r1 + ... + 670: 00000400 andeq r0, r0, r0, lsl #8 + 674: 0001ca00 andeq ip, r1, r0, lsl #20 + 678: 91000200 tstls r0, r0, lsl #4 + 67c: 0001ca64 andeq ip, r1, r4, ror #20 + 680: 0001d200 andeq sp, r1, r0, lsl #4 + 684: d2000000 andle r0, r0, #0 ; 0x0 + 688: d8000001 stmdale r0, {r0} + 68c: 02000001 andeq r0, r0, #1 ; 0x1 + 690: d8649100 stmdale r4!, {r8, ip, pc}^ + 694: f0000001 undefined instruction 0xf0000001 + 698: 00000001 andeq r0, r0, r1 + ... + 6a4: 00000400 andeq r0, r0, r0, lsl #8 + 6a8: 00002600 andeq r2, r0, r0, lsl #12 + 6ac: 91000200 tstls r0, r0, lsl #4 + 6b0: 00002668 andeq r2, r0, r8, ror #12 + 6b4: 00012400 andeq r2, r1, r0, lsl #8 + 6b8: 24000000 strcs r0, [r0] + 6bc: 2e000001 cdpcs 0, 0, cr0, cr0, cr1, {0} + 6c0: 02000001 andeq r0, r0, #1 ; 0x1 + 6c4: 2e689100 lgncse f1, f0 + 6c8: f0000001 undefined instruction 0xf0000001 + 6cc: 00000001 andeq r0, r0, r1 + ... + 6d8: 00000600 andeq r0, r0, r0, lsl #12 + 6dc: 00003a00 andeq r3, r0, r0, lsl #20 + 6e0: 56000100 strpl r0, [r0], -r0, lsl #2 + 6e4: 0000003a andeq r0, r0, sl, lsr r0 + 6e8: 00000044 andeq r0, r0, r4, asr #32 + 6ec: 00440000 subeq r0, r4, r0 + 6f0: 00500000 subseq r0, r0, r0 + 6f4: 00010000 andeq r0, r1, r0 + 6f8: 00005056 andeq r5, r0, r6, asr r0 + 6fc: 00005800 andeq r5, r0, r0, lsl #16 + 700: 58000000 stmdapl r0, {} + 704: e6000000 str r0, [r0], -r0 + 708: 01000000 tsteq r0, r0 + 70c: 00e65600 rsceq r5, r6, r0, lsl #12 + 710: 01f00000 mvnseq r0, r0 + ... + 728: 0000000e andeq r0, r0, lr + 72c: 0000003a andeq r0, r0, sl, lsr r0 + 730: a0910003 addsge r0, r1, r3 + 734: 00003a7f andeq r3, r0, pc, ror sl + 738: 00004000 andeq r4, r0, r0 + 73c: 40000000 andmi r0, r0, r0 + 740: 50000000 andpl r0, r0, r0 + 744: 03000000 movweq r0, #0 ; 0x0 + 748: 7fa09100 svcvc 0x00a09100 + 74c: 00000050 andeq r0, r0, r0, asr r0 + 750: 00000054 andeq r0, r0, r4, asr r0 + 754: 00540000 subseq r0, r4, r0 + 758: 00e60000 rsceq r0, r6, r0 + 75c: 00030000 andeq r0, r3, r0 + 760: e67fa091 undefined + 764: f0000000 undefined instruction 0xf0000000 + 768: 00000001 andeq r0, r0, r1 + ... + 774: 00000e00 andeq r0, r0, r0, lsl #28 + 778: 00012200 andeq r2, r1, r0, lsl #4 + 77c: 54000100 strpl r0, [r0], #-256 + 780: 00000122 andeq r0, r0, r2, lsr #2 + 784: 00000124 andeq r0, r0, r4, lsr #2 + 788: 01240000 teqeq r4, r0 + 78c: 01760000 cmneq r6, r0 + 790: 00010000 andeq r0, r1, r0 + 794: 00017654 andeq r7, r1, r4, asr r6 + 798: 0001a600 andeq sl, r1, r0, lsl #12 + 79c: a6000000 strge r0, [r0], -r0 + 7a0: be000001 cdplt 0, 0, cr0, cr0, cr1, {0} + 7a4: 01000001 tsteq r0, r1 + 7a8: 01be5400 undefined instruction 0x01be5400 + 7ac: 01f00000 mvnseq r0, r0 + ... + 7bc: 00000018 andeq r0, r0, r8, lsl r0 + 7c0: 00000080 andeq r0, r0, r0, lsl #1 + 7c4: 80550001 subshi r0, r5, r1 + 7c8: 88000000 stmdahi r0, {} + 7cc: 00000000 andeq r0, r0, r0 + 7d0: 00008800 andeq r8, r0, r0, lsl #16 + 7d4: 00009800 andeq r9, r0, r0, lsl #16 + 7d8: 55000100 strpl r0, [r0, #-256] + 7dc: 00000098 muleq r0, r8, r0 + 7e0: 000000a0 andeq r0, r0, r0, lsr #1 + 7e4: 00a00000 adceq r0, r0, r0 + 7e8: 00e60000 rsceq r0, r6, r0 + 7ec: 00010000 andeq r0, r1, r0 + 7f0: 0000e655 andeq lr, r0, r5, asr r6 + 7f4: 0000ec00 andeq lr, r0, r0, lsl #24 + 7f8: ec000000 stc 0, cr0, [r0], {0} + 7fc: 22000000 andcs r0, r0, #0 ; 0x0 + 800: 01000001 tsteq r0, r1 + 804: 01225500 teqeq r2, r0, lsl #10 + 808: 01240000 teqeq r4, r0 + 80c: 00000000 andeq r0, r0, r0 + 810: 00000124 andeq r0, r0, r4, lsr #2 + 814: 00000162 andeq r0, r0, r2, ror #2 + 818: 62550001 subsvs r0, r5, #1 ; 0x1 + 81c: 70000001 andvc r0, r0, r1 + 820: 00000001 andeq r0, r0, r1 + 824: 00017000 andeq r7, r1, r0 + 828: 00017600 andeq r7, r1, r0, lsl #12 + 82c: 55000100 strpl r0, [r0, #-256] + 830: 00000176 andeq r0, r0, r6, ror r1 + 834: 00000188 andeq r0, r0, r8, lsl #3 + 838: 01880000 orreq r0, r8, r0 + 83c: 01c40000 biceq r0, r4, r0 + 840: 00010000 andeq r0, r1, r0 + 844: 0001c455 andeq ip, r1, r5, asr r4 + 848: 0001f000 andeq pc, r1, r0 + ... + 854: 04000000 streq r0, [r0] + 858: dc000000 stcle 0, cr0, [r0], {0} + 85c: 02000001 andeq r0, r0, #1 ; 0x1 + 860: dc509100 ldflep f1, [r0], {0} + 864: f0000001 undefined instruction 0xf0000001 + 868: 00000001 andeq r0, r0, r1 + ... + 874: 00000400 andeq r0, r0, r0, lsl #8 + 878: 0001dc00 andeq sp, r1, r0, lsl #24 + 87c: 91000200 tstls r0, r0, lsl #4 + 880: 0001dc48 andeq sp, r1, r8, asr #24 + 884: 0001f000 andeq pc, r1, r0 + ... + 890: 04000000 streq r0, [r0] + 894: dc000000 stcle 0, cr0, [r0], {0} + 898: 03000001 movweq r0, #1 ; 0x1 + 89c: 7fac9100 svcvc 0x00ac9100 + 8a0: 000001dc ldrdeq r0, [r0], -ip + 8a4: 000001f0 strdeq r0, [r0], -r0 + ... + 8b0: 00180000 andseq r0, r8, r0 + 8b4: 01dc0000 bicseq r0, ip, r0 + 8b8: 00030000 andeq r0, r3, r0 + 8bc: dc7fb491 cfldrdle mvd11, [pc], #-580 + 8c0: f0000001 undefined instruction 0xf0000001 + 8c4: 00000001 andeq r0, r0, r1 + ... + 8d0: 00002e00 andeq r2, r0, r0, lsl #28 + 8d4: 00008000 andeq r8, r0, r0 + 8d8: 91000300 tstls r0, r0, lsl #6 + 8dc: 00807f98 umulleq r7, r0, r8, pc + 8e0: 00980000 addseq r0, r8, r0 + 8e4: 00000000 andeq r0, r0, r0 + 8e8: 00000098 muleq r0, r8, r0 + 8ec: 000000b0 strheq r0, [r0], -r0 + 8f0: 98910003 ldmls r1, {r0, r1} + 8f4: 0000b07f andeq fp, r0, pc, ror r0 + 8f8: 0000d000 andeq sp, r0, r0 + 8fc: d0000000 andle r0, r0, r0 + 900: e6000000 str r0, [r0], -r0 + 904: 03000000 movweq r0, #0 ; 0x0 + 908: 7f989100 svcvc 0x00989100 + 90c: 000000e6 andeq r0, r0, r6, ror #1 + 910: 000001f0 strdeq r0, [r0], -r0 + ... + 91c: 00300000 eorseq r0, r0, r0 + 920: 00e60000 rsceq r0, r6, r0 + 924: 00030000 andeq r0, r3, r0 + 928: e67f9c91 undefined + 92c: f0000000 undefined instruction 0xf0000000 + 930: 00000001 andeq r0, r0, r1 + ... + 940: 00000200 andeq r0, r0, r0, lsl #4 + 944: 7d000200 sfmvc f0, 4, [r0] + 948: 00000200 andeq r0, r0, r0, lsl #4 + 94c: 00005000 andeq r5, r0, r0 + 950: 7d000200 sfmvc f0, 4, [r0] + 954: 00000008 andeq r0, r0, r8 + 958: 00000000 andeq r0, r0, r0 + 95c: 00000400 andeq r0, r0, r0, lsl #8 + 960: 00004600 andeq r4, r0, r0, lsl #12 + 964: 54000100 strpl r0, [r0], #-256 + 968: 00000046 andeq r0, r0, r6, asr #32 + 96c: 00000050 andeq r0, r0, r0, asr r0 + ... + 984: 00020000 andeq r0, r2, r0 + 988: 00020000 andeq r0, r2, r0 + 98c: 0002007d andeq r0, r2, sp, ror r0 + 990: 00480000 subeq r0, r8, r0 + 994: 00020000 andeq r0, r2, r0 + 998: 0000087d andeq r0, r0, sp, ror r8 + 99c: 00000000 andeq r0, r0, r0 + 9a0: 00040000 andeq r0, r4, r0 + 9a4: 003c0000 eorseq r0, ip, r0 + 9a8: 00010000 andeq r0, r1, r0 + 9ac: 00003c54 andeq r3, r0, r4, asr ip + 9b0: 00004800 andeq r4, r0, r0, lsl #16 + ... + 9c8: 20000000 andcs r0, r0, r0 + 9cc: 02000000 andeq r0, r0, #0 ; 0x0 + 9d0: 00007d00 andeq r7, r0, r0, lsl #26 + ... + 9dc: 0e000000 cdpeq 0, 0, cr0, cr0, cr0, {0} + 9e0: 01000000 tsteq r0, r0 + 9e4: 000e5000 andeq r5, lr, r0 + 9e8: 00200000 eoreq r0, r0, r0 + ... + 9fc: 00000002 andeq r0, r0, r2 + a00: 007d0002 rsbseq r0, sp, r2 + a04: 00000002 andeq r0, r0, r2 + a08: 00000012 andeq r0, r0, r2, lsl r0 + a0c: 087d0002 ldmdaeq sp!, {r1}^ + a10: 00000012 andeq r0, r0, r2, lsl r0 + a14: 00000016 andeq r0, r0, r6, lsl r0 + a18: 007d0002 rsbseq r0, sp, r2 + ... + a24: 00000002 andeq r0, r0, r2 + a28: 0000000a andeq r0, r0, sl + a2c: 0a500001 beq 1400a38 + a30: 16000000 strne r0, [r0], -r0 + ... + a40: 00000a00 andeq r0, r0, r0, lsl #20 + a44: 00000c00 andeq r0, r0, r0, lsl #24 + a48: 51000100 tstpl r0, r0, lsl #2 + a4c: 0000000c andeq r0, r0, ip + a50: 00000016 andeq r0, r0, r6, lsl r0 + ... + a60: 00020000 andeq r0, r2, r0 + a64: 00020000 andeq r0, r2, r0 + a68: 0002007d andeq r0, r2, sp, ror r0 + a6c: 00040000 andeq r0, r4, r0 + a70: 00020000 andeq r0, r2, r0 + a74: 0004147d andeq r1, r4, sp, ror r4 + a78: 01280000 teqeq r8, r0 + a7c: 00020000 andeq r0, r2, r0 + a80: 0000207d andeq r2, r0, sp, ror r0 + a84: 00000000 andeq r0, r0, r0 + a88: 00080000 andeq r0, r8, r0 + a8c: 00440000 subeq r0, r4, r0 + a90: 00010000 andeq r0, r1, r0 + a94: 00004455 andeq r4, r0, r5, asr r4 + a98: 00012800 andeq r2, r1, r0, lsl #16 + ... + aa4: 08000000 stmdaeq r0, {} + aa8: 12000000 andne r0, r0, #0 ; 0x0 + aac: 01000001 tsteq r0, r1 + ab0: 01125400 tsteq r2, r0, lsl #8 + ab4: 01280000 teqeq r8, r0 + ... + ac4: 00000008 andeq r0, r0, r8 + ac8: 00000112 andeq r0, r0, r2, lsl r1 + acc: 12570001 subsne r0, r7, #1 ; 0x1 + ad0: 28000001 stmdacs r0, {r0} + ad4: 00000001 andeq r0, r0, r1 + ... + ae0: 00001800 andeq r1, r0, r0, lsl #16 + ae4: 00002a00 andeq r2, r0, r0, lsl #20 + ae8: 56000100 strpl r0, [r0], -r0, lsl #2 + aec: 0000002a andeq r0, r0, sl, lsr #32 + af0: 00000128 andeq r0, r0, r8, lsr #2 + ... + afc: 00ee0000 rsceq r0, lr, r0 + b00: 01180000 tsteq r8, r0 + b04: 00010000 andeq r0, r1, r0 + b08: 00011855 andeq r1, r1, r5, asr r8 + b0c: 00011e00 andeq r1, r1, r0, lsl #28 + b10: 1e000000 cdpne 0, 0, cr0, cr0, cr0, {0} + b14: 22000001 andcs r0, r0, #1 ; 0x1 + b18: 01000001 tsteq r0, r1 + b1c: 01225500 teqeq r2, r0, lsl #10 + b20: 01280000 teqeq r8, r0 + ... + b40: 0000006c andeq r0, r0, ip, rrx + b44: 0000007c andeq r0, r0, ip, ror r0 + b48: 68910002 ldmvs r1, {r1} + ... + b5c: 000000c6 andeq r0, r0, r6, asr #1 + b60: 000000ce andeq r0, r0, lr, asr #1 + b64: 00550001 subseq r0, r5, r1 + b68: 00000000 andeq r0, r0, r0 + b6c: b6000000 strlt r0, [r0], -r0 + b70: ce000000 cdpgt 0, 0, cr0, cr0, cr0, {0} + b74: 02000000 andeq r0, r0, #0 ; 0x0 + b78: 00649100 rsbeq r9, r4, r0, lsl #2 + ... + b84: 02000000 andeq r0, r0, #0 ; 0x0 + b88: 02000000 andeq r0, r0, #0 ; 0x0 + b8c: 02007d00 andeq r7, r0, #0 ; 0x0 + b90: 04000000 streq r0, [r0] + b94: 02000000 andeq r0, r0, #0 ; 0x0 + b98: 04187d00 ldreq r7, [r8], #-3328 + b9c: c8000000 stmdagt r0, {} + ba0: 02000000 andeq r0, r0, #0 ; 0x0 + ba4: 00207d00 eoreq r7, r0, r0, lsl #26 + ba8: 00000000 andeq r0, r0, r0 + bac: 06000000 streq r0, [r0], -r0 + bb0: 38000000 stmdacc r0, {} + bb4: 01000000 tsteq r0, r0 + bb8: 00385000 eorseq r5, r8, r0 + bbc: 00c80000 sbceq r0, r8, r0 + ... + bcc: 00000006 andeq r0, r0, r6 + bd0: 000000c8 andeq r0, r0, r8, asr #1 + bd4: 68910002 ldmvs r1, {r1} + ... + be0: 00000006 andeq r0, r0, r6 + be4: 000000c8 andeq r0, r0, r8, asr #1 + be8: 00540001 subseq r0, r4, r1 + bec: 00000000 andeq r0, r0, r0 + bf0: 38000000 stmdacc r0, {} + bf4: c8000000 stmdagt r0, {} + ... + c04: 00003800 andeq r3, r0, r0, lsl #16 + c08: 00008000 andeq r8, r0, r0 + c0c: 56000100 strpl r0, [r0], -r0, lsl #2 + c10: 00000080 andeq r0, r0, r0, lsl #1 + c14: 000000c8 andeq r0, r0, r8, asr #1 + ... + c20: 00380000 eorseq r0, r8, r0 + c24: 00c80000 sbceq r0, r8, r0 + c28: 00010000 andeq r0, r1, r0 + c2c: 00000055 andeq r0, r0, r5, asr r0 + ... + c50: 00000200 andeq r0, r0, r0, lsl #4 + c54: 7d000200 sfmvc f0, 4, [r0] + c58: 00000200 andeq r0, r0, r0, lsl #4 + c5c: 00004000 andeq r4, r0, r0 + c60: 7d000200 sfmvc f0, 4, [r0] + c64: 00004010 andeq r4, r0, r0, lsl r0 + c68: 00004400 andeq r4, r0, r0, lsl #8 + c6c: 7d000200 sfmvc f0, 4, [r0] + c70: 00004404 andeq r4, r0, r4, lsl #8 + c74: 00004600 andeq r4, r0, r0, lsl #12 + c78: 7d000200 sfmvc f0, 4, [r0] + ... + c84: 00000800 andeq r0, r0, r0, lsl #16 + c88: 00002e00 andeq r2, r0, r0, lsl #28 + c8c: 54000100 strpl r0, [r0], #-256 + c90: 0000002e andeq r0, r0, lr, lsr #32 + c94: 00000046 andeq r0, r0, r6, asr #32 + ... + ca0: 00080000 andeq r0, r8, r0 + ca4: 003e0000 eorseq r0, lr, r0 + ca8: 00010000 andeq r0, r1, r0 + cac: 00003e55 andeq r3, r0, r5, asr lr + cb0: 00004600 andeq r4, r0, r0, lsl #12 + ... + cbc: 08000000 stmdaeq r0, {} + cc0: 16000000 strne r0, [r0], -r0 + cc4: 01000000 tsteq r0, r0 + cc8: 00165600 andseq r5, r6, r0, lsl #12 + ccc: 00460000 subeq r0, r6, r0 + ... + cdc: 0000002e andeq r0, r0, lr, lsr #32 + ce0: 0000003e andeq r0, r0, lr, lsr r0 + ce4: 3e540001 cdpcc 0, 5, cr0, cr4, cr1, {0} + ce8: 46000000 strmi r0, [r0], -r0 + ... + d14: 00000200 andeq r0, r0, r0, lsl #4 + d18: 7d000200 sfmvc f0, 4, [r0] + d1c: 00000200 andeq r0, r0, r0, lsl #4 + d20: 00005200 andeq r5, r0, r0, lsl #4 + d24: 7d000200 sfmvc f0, 4, [r0] + d28: 00005208 andeq r5, r0, r8, lsl #4 + d2c: 00005600 andeq r5, r0, r0, lsl #12 + d30: 7d000200 sfmvc f0, 4, [r0] + d34: 00005604 andeq r5, r0, r4, lsl #12 + d38: 00005800 andeq r5, r0, r0, lsl #16 + d3c: 7d000200 sfmvc f0, 4, [r0] + d40: 00005800 andeq r5, r0, r0, lsl #16 + d44: 00006000 andeq r6, r0, r0 + d48: 7d000200 sfmvc f0, 4, [r0] + d4c: 00000008 andeq r0, r0, r8 + d50: 00000000 andeq r0, r0, r0 + d54: 00000200 andeq r0, r0, r0, lsl #4 + d58: 00002200 andeq r2, r0, r0, lsl #4 + d5c: 50000100 andpl r0, r0, r0, lsl #2 + d60: 00000022 andeq r0, r0, r2, lsr #32 + d64: 00000060 andeq r0, r0, r0, rrx + ... + d74: 00020000 andeq r0, r2, r0 + d78: 00020000 andeq r0, r2, r0 + d7c: 0002007d andeq r0, r2, sp, ror r0 + d80: 00040000 andeq r0, r4, r0 + d84: 00020000 andeq r0, r2, r0 + d88: 0004187d andeq r1, r4, sp, ror r8 + d8c: 00600000 rsbeq r0, r0, r0 + d90: 00020000 andeq r0, r2, r0 + d94: 0000207d andeq r2, r0, sp, ror r0 + d98: 00000000 andeq r0, r0, r0 + d9c: 00080000 andeq r0, r8, r0 + da0: 00600000 rsbeq r0, r0, r0 + da4: 00020000 andeq r0, r2, r0 + da8: 00006891 muleq r0, r1, r8 + dac: 00000000 andeq r0, r0, r0 + db0: 00080000 andeq r0, r8, r0 + db4: 00600000 rsbeq r0, r0, r0 + db8: 00010000 andeq r0, r1, r0 + dbc: 00000057 andeq r0, r0, r7, asr r0 + dc0: 00000000 andeq r0, r0, r0 + dc4: 00000800 andeq r0, r0, r0, lsl #16 + dc8: 00006000 andeq r6, r0, r0 + dcc: 54000100 strpl r0, [r0], #-256 + ... + dec: 00000002 andeq r0, r0, r2 + df0: 007d0002 rsbseq r0, sp, r2 + df4: 00000002 andeq r0, r0, r2 + df8: 00000044 andeq r0, r0, r4, asr #32 + dfc: 107d0002 rsbsne r0, sp, r2 + e00: 00000044 andeq r0, r0, r4, asr #32 + e04: 00000046 andeq r0, r0, r6, asr #32 + e08: 0c7d0002 ldcleq 0, cr0, [sp], #-8 + e0c: 00000046 andeq r0, r0, r6, asr #32 + e10: 0000004a andeq r0, r0, sl, asr #32 + e14: 047d0002 ldrbteq r0, [sp], #-2 + e18: 0000004a andeq r0, r0, sl, asr #32 + e1c: 0000004c andeq r0, r0, ip, asr #32 + e20: 007d0002 rsbseq r0, sp, r2 + ... + e30: 00000002 andeq r0, r0, r2 + e34: 007d0002 rsbseq r0, sp, r2 + e38: 00000002 andeq r0, r0, r2 + e3c: 00000018 andeq r0, r0, r8, lsl r0 + e40: 087d0002 ldmdaeq sp!, {r1}^ + e44: 00000018 andeq r0, r0, r8, lsl r0 + e48: 0000001c andeq r0, r0, ip, lsl r0 + e4c: 007d0002 rsbseq r0, sp, r2 + ... + e5c: 00000002 andeq r0, r0, r2 + e60: 007d0002 rsbseq r0, sp, r2 + e64: 00000002 andeq r0, r0, r2 + e68: 00000096 muleq r0, r6, r0 + e6c: 087d0002 ldmdaeq sp!, {r1}^ + e70: 00000096 muleq r0, r6, r0 + e74: 0000009a muleq r0, sl, r0 + e78: 047d0002 ldrbteq r0, [sp], #-2 + e7c: 0000009a muleq r0, sl, r0 + e80: 0000009c muleq r0, ip, r0 + e84: 007d0002 rsbseq r0, sp, r2 + ... + e90: 00000004 andeq r0, r0, r4 + e94: 00000074 andeq r0, r0, r4, ror r0 + e98: 74540001 ldrbvc r0, [r4], #-1 + e9c: 9c000000 stcls 0, cr0, [r0], {0} + ... + eb0: 00000200 andeq r0, r0, r0, lsl #4 + eb4: 7d000200 sfmvc f0, 4, [r0] + eb8: 00000200 andeq r0, r0, r0, lsl #4 + ebc: 00003600 andeq r3, r0, r0, lsl #12 + ec0: 7d000200 sfmvc f0, 4, [r0] + ec4: 00003608 andeq r3, r0, r8, lsl #12 + ec8: 00003a00 andeq r3, r0, r0, lsl #20 + ecc: 7d000200 sfmvc f0, 4, [r0] + ed0: 00003a04 andeq r3, r0, r4, lsl #20 + ed4: 00003c00 andeq r3, r0, r0, lsl #24 + ed8: 7d000200 sfmvc f0, 4, [r0] + ... + ee4: 00000400 andeq r0, r0, r0, lsl #8 + ee8: 00002c00 andeq r2, r0, r0, lsl #24 + eec: 54000100 strpl r0, [r0], #-256 + ef0: 0000002c andeq r0, r0, ip, lsr #32 + ef4: 0000003c andeq r0, r0, ip, lsr r0 + ... + f04: 00020000 andeq r0, r2, r0 + f08: 00020000 andeq r0, r2, r0 + f0c: 0002007d andeq r0, r2, sp, ror r0 + f10: 00040000 andeq r0, r4, r0 + f14: 00020000 andeq r0, r2, r0 + f18: 0004107d andeq r1, r4, sp, ror r0 + f1c: 00780000 rsbseq r0, r8, r0 + f20: 00020000 andeq r0, r2, r0 + f24: 0078187d rsbseq r1, r8, sp, ror r8 + f28: 007a0000 rsbseq r0, sl, r0 + f2c: 00020000 andeq r0, r2, r0 + f30: 007a107d rsbseq r1, sl, sp, ror r0 + f34: 007e0000 rsbseq r0, lr, r0 + f38: 00020000 andeq r0, r2, r0 + f3c: 007e047d rsbseq r0, lr, sp, ror r4 + f40: 00900000 addseq r0, r0, r0 + f44: 00020000 andeq r0, r2, r0 + f48: 0000007d andeq r0, r0, sp, ror r0 + f4c: 00000000 andeq r0, r0, r0 + f50: 00380000 eorseq r0, r8, r0 + f54: 004c0000 subeq r0, ip, r0 + f58: 00010000 andeq r0, r1, r0 + f5c: 00004c54 andeq r4, r0, r4, asr ip + f60: 00005200 andeq r5, r0, r0, lsl #4 + f64: 52000000 andpl r0, r0, #0 ; 0x0 + f68: 68000000 stmdavs r0, {} + f6c: 01000000 tsteq r0, r0 + f70: 00685200 rsbeq r5, r8, r0, lsl #4 + f74: 00900000 addseq r0, r0, r0 + ... + f84: 0000000e andeq r0, r0, lr + f88: 00000024 andeq r0, r0, r4, lsr #32 + f8c: 24520001 ldrbcs r0, [r2], #-1 + f90: 90000000 andls r0, r0, r0 + ... + fa0: 00001200 andeq r1, r0, r0, lsl #4 + fa4: 00001800 andeq r1, r0, r0, lsl #16 + fa8: 50000100 andpl r0, r0, r0, lsl #2 + fac: 00000018 andeq r0, r0, r8, lsl r0 + fb0: 00000090 muleq r0, r0, r0 + ... + fbc: 00180000 andseq r0, r8, r0 + fc0: 006a0000 rsbeq r0, sl, r0 + fc4: 00010000 andeq r0, r1, r0 + fc8: 00006a51 andeq r6, r0, r1, asr sl + fcc: 00009000 andeq r9, r0, r0 + ... + fe0: 24000000 strcs r0, [r0] + fe4: 26000000 strcs r0, [r0], -r0 + fe8: 01000000 tsteq r0, r0 + fec: 00265200 eoreq r5, r6, r0, lsl #4 + ff0: 00900000 addseq r0, r0, r0 + ... + 1000: 00000038 andeq r0, r0, r8, lsr r0 + 1004: 0000004c andeq r0, r0, ip, asr #32 + 1008: 68910002 ldmvs r1, {r1} + 100c: 0000004c andeq r0, r0, ip, asr #32 + 1010: 00000052 andeq r0, r0, r2, asr r0 + 1014: 00520000 subseq r0, r2, r0 + 1018: 00680000 rsbeq r0, r8, r0 + 101c: 00020000 andeq r0, r2, r0 + 1020: 00686891 mlseq r8, r1, r8, r6 + 1024: 00900000 addseq r0, r0, r0 + ... + 1038: 00000002 andeq r0, r0, r2 + 103c: 007d0002 rsbseq r0, sp, r2 + 1040: 00000002 andeq r0, r0, r2 + 1044: 00000166 andeq r0, r0, r6, ror #2 + 1048: 187d0002 ldmdane sp!, {r1}^ + 104c: 00000166 andeq r0, r0, r6, ror #2 + 1050: 00000168 andeq r0, r0, r8, ror #2 + 1054: 147d0002 ldrbtne r0, [sp], #-2 + 1058: 00000168 andeq r0, r0, r8, ror #2 + 105c: 0000016c andeq r0, r0, ip, ror #2 + 1060: 047d0002 ldrbteq r0, [sp], #-2 + 1064: 0000016c andeq r0, r0, ip, ror #2 + 1068: 00000184 andeq r0, r0, r4, lsl #3 + 106c: 007d0002 rsbseq r0, sp, r2 + ... + 1078: 00000006 andeq r0, r0, r6 + 107c: 00000018 andeq r0, r0, r8, lsl r0 + 1080: 18540001 ldmdane r4, {r0}^ + 1084: 24000000 strcs r0, [r0] + 1088: 00000000 andeq r0, r0, r0 + 108c: 00002400 andeq r2, r0, r0, lsl #8 + 1090: 00005c00 andeq r5, r0, r0, lsl #24 + 1094: 54000100 strpl r0, [r0], #-256 + 1098: 0000005c andeq r0, r0, ip, asr r0 + 109c: 00000098 muleq r0, r8, r0 + 10a0: 00980000 addseq r0, r8, r0 + 10a4: 00a40000 adceq r0, r4, r0 + 10a8: 00010000 andeq r0, r1, r0 + 10ac: 0000a454 andeq sl, r0, r4, asr r4 + 10b0: 0000ce00 andeq ip, r0, r0, lsl #28 + 10b4: ce000000 cdpgt 0, 0, cr0, cr0, cr0, {0} + 10b8: d8000000 stmdale r0, {} + 10bc: 01000000 tsteq r0, r0 + 10c0: 00d85400 sbcseq r5, r8, r0, lsl #8 + 10c4: 00e40000 rsceq r0, r4, r0 + 10c8: 00000000 andeq r0, r0, r0 + 10cc: 000000e4 andeq r0, r0, r4, ror #1 + 10d0: 000000ea andeq r0, r0, sl, ror #1 + 10d4: ea540001 b 15010e0 + 10d8: 24000000 strcs r0, [r0] + 10dc: 00000001 andeq r0, r0, r1 + 10e0: 00012400 andeq r2, r1, r0, lsl #8 + 10e4: 00012800 andeq r2, r1, r0, lsl #16 + 10e8: 54000100 strpl r0, [r0], #-256 + 10ec: 00000128 andeq r0, r0, r8, lsr #2 + 10f0: 00000134 andeq r0, r0, r4, lsr r1 + 10f4: 01340000 teqeq r4, r0 + 10f8: 013a0000 teqeq sl, r0 + 10fc: 00010000 andeq r0, r1, r0 + 1100: 00013a54 andeq r3, r1, r4, asr sl + 1104: 00014200 andeq r4, r1, r0, lsl #4 + 1108: 42000000 andmi r0, r0, #0 ; 0x0 + 110c: 4a000001 bmi 1118 <__USR_stack_size+0x918> + 1110: 01000001 tsteq r0, r1 + 1114: 014a5400 cmpeq sl, r0, lsl #8 + 1118: 01540000 cmpeq r4, r0 + 111c: 00000000 andeq r0, r0, r0 + 1120: 00000154 andeq r0, r0, r4, asr r1 + 1124: 0000015a andeq r0, r0, sl, asr r1 + 1128: 5a540001 bpl 1501134 + 112c: 84000001 strhi r0, [r0], #-1 + 1130: 00000001 andeq r0, r0, r1 + ... + 1140: 00004c00 andeq r4, r0, r0, lsl #24 + 1144: 7d000200 sfmvc f0, 4, [r0] + ... + 1154: 00000200 andeq r0, r0, r0, lsl #4 + 1158: 7d000200 sfmvc f0, 4, [r0] + 115c: 00000200 andeq r0, r0, r0, lsl #4 + 1160: 00001e00 andeq r1, r0, r0, lsl #28 + 1164: 7d000200 sfmvc f0, 4, [r0] + 1168: 00001e08 andeq r1, r0, r8, lsl #28 + 116c: 00002200 andeq r2, r0, r0, lsl #4 + 1170: 7d000200 sfmvc f0, 4, [r0] + ... + 1180: 00000200 andeq r0, r0, r0, lsl #4 + 1184: 7d000200 sfmvc f0, 4, [r0] + 1188: 00000200 andeq r0, r0, r0, lsl #4 + 118c: 00001400 andeq r1, r0, r0, lsl #8 + 1190: 7d000200 sfmvc f0, 4, [r0] + 1194: 00001408 andeq r1, r0, r8, lsl #8 + 1198: 00001600 andeq r1, r0, r0, lsl #12 + 119c: 7d000200 sfmvc f0, 4, [r0] + 11a0: 00001600 andeq r1, r0, r0, lsl #12 + 11a4: 00003200 andeq r3, r0, r0, lsl #4 + 11a8: 7d000200 sfmvc f0, 4, [r0] + 11ac: 00003208 andeq r3, r0, r8, lsl #4 + 11b0: 00003400 andeq r3, r0, r0, lsl #8 + 11b4: 7d000200 sfmvc f0, 4, [r0] + ... + 11c0: 00000200 andeq r0, r0, r0, lsl #4 + 11c4: 00001000 andeq r1, r0, r0 + 11c8: 50000100 andpl r0, r0, r0, lsl #2 + 11cc: 00000010 andeq r0, r0, r0, lsl r0 + 11d0: 00000016 andeq r0, r0, r6, lsl r0 + 11d4: 00160000 andseq r0, r6, r0 + 11d8: 00200000 eoreq r0, r0, r0 + 11dc: 00010000 andeq r0, r1, r0 + 11e0: 00002050 andeq r2, r0, r0, asr r0 + 11e4: 00003400 andeq r3, r0, r0, lsl #8 + ... + 11f0: 02000000 andeq r0, r0, #0 ; 0x0 + 11f4: 10000000 andne r0, r0, r0 + 11f8: 01000000 tsteq r0, r0 + 11fc: 00105100 andseq r5, r0, r0, lsl #2 + 1200: 00160000 andseq r0, r6, r0 + 1204: 00000000 andeq r0, r0, r0 + 1208: 00000016 andeq r0, r0, r6, lsl r0 + 120c: 00000022 andeq r0, r0, r2, lsr #32 + 1210: 22510001 subscs r0, r1, #1 ; 0x1 + 1214: 34000000 strcc r0, [r0] + ... + 1228: 00002400 andeq r2, r0, r0, lsl #8 + 122c: 7d000200 sfmvc f0, 4, [r0] + ... + 123c: 00003400 andeq r3, r0, r0, lsl #8 + 1240: 7d000200 sfmvc f0, 4, [r0] + ... + 1258: 00000200 andeq r0, r0, r0, lsl #4 + 125c: 7d000200 sfmvc f0, 4, [r0] + 1260: 00000200 andeq r0, r0, r0, lsl #4 + 1264: 00003800 andeq r3, r0, r0, lsl #16 + 1268: 7d000200 sfmvc f0, 4, [r0] + 126c: 00000008 andeq r0, r0, r8 + ... + 1278: 00000200 andeq r0, r0, r0, lsl #4 + 127c: 7d000200 sfmvc f0, 4, [r0] + 1280: 00000200 andeq r0, r0, r0, lsl #4 + 1284: 00014200 andeq r4, r1, r0, lsl #4 + 1288: 7d000200 sfmvc f0, 4, [r0] + 128c: 00014210 andeq r4, r1, r0, lsl r2 + 1290: 00014400 andeq r4, r1, r0, lsl #8 + 1294: 7d000200 sfmvc f0, 4, [r0] + 1298: 0001440c andeq r4, r1, ip, lsl #8 + 129c: 00014800 andeq r4, r1, r0, lsl #16 + 12a0: 7d000200 sfmvc f0, 4, [r0] + 12a4: 00014804 andeq r4, r1, r4, lsl #16 + 12a8: 00015000 andeq r5, r1, r0 + 12ac: 7d000200 sfmvc f0, 4, [r0] + ... + 12c4: 00000200 andeq r0, r0, r0, lsl #4 + 12c8: 7d000200 sfmvc f0, 4, [r0] + 12cc: 00000200 andeq r0, r0, r0, lsl #4 + 12d0: 0001e000 andeq lr, r1, r0 + 12d4: 7d000200 sfmvc f0, 4, [r0] + 12d8: 0001e010 andeq lr, r1, r0, lsl r0 + 12dc: 0001e400 andeq lr, r1, r0, lsl #8 + 12e0: 7d000200 sfmvc f0, 4, [r0] + 12e4: 0001e404 andeq lr, r1, r4, lsl #8 + 12e8: 00020000 andeq r0, r2, r0 + 12ec: 7d000200 sfmvc f0, 4, [r0] + ... + 1304: 00000200 andeq r0, r0, r0, lsl #4 + 1308: 7d000200 sfmvc f0, 4, [r0] + 130c: 00000200 andeq r0, r0, r0, lsl #4 + 1310: 00019a00 andeq r9, r1, r0, lsl #20 + 1314: 7d000200 sfmvc f0, 4, [r0] + 1318: 00019a18 andeq r9, r1, r8, lsl sl + 131c: 00019c00 andeq r9, r1, r0, lsl #24 + 1320: 7d000200 sfmvc f0, 4, [r0] + 1324: 00019c14 andeq r9, r1, r4, lsl ip + 1328: 0001a000 andeq sl, r1, r0 + 132c: 7d000200 sfmvc f0, 4, [r0] + 1330: 0001a004 andeq sl, r1, r4 + 1334: 0001bc00 andeq fp, r1, r0, lsl #24 + 1338: 7d000200 sfmvc f0, 4, [r0] + ... + 134c: 00003200 andeq r3, r0, r0, lsl #4 + 1350: 00005000 andeq r5, r0, r0 + 1354: 91000200 tstls r0, r0, lsl #4 + 1358: 00005068 andeq r5, r0, r8, rrx + 135c: 00005a00 andeq r5, r0, r0, lsl #20 + ... + 1368: 40000000 andmi r0, r0, r0 + 136c: 5a000000 bpl 1374 <__USR_stack_size+0xb74> + 1370: 01000000 tsteq r0, r0 + 1374: 00005700 andeq r5, r0, r0, lsl #14 + 1378: 00000000 andeq r0, r0, r0 + 137c: 00b20000 adcseq r0, r2, r0 + 1380: 00b60000 adcseq r0, r6, r0 + 1384: 00010000 andeq r0, r1, r0 + 1388: 0000b650 andeq fp, r0, r0, asr r6 + 138c: 0000c800 andeq ip, r0, r0, lsl #16 + ... + 1398: b6000000 strlt r0, [r0], -r0 + 139c: ba000000 blt 13a4 <__USR_stack_size+0xba4> + 13a0: 01000000 tsteq r0, r0 + 13a4: 00ba5000 adcseq r5, sl, r0 + 13a8: 00be0000 adcseq r0, lr, r0 + 13ac: 00000000 andeq r0, r0, r0 + 13b0: 000000be strheq r0, [r0], -lr + 13b4: 000000c2 andeq r0, r0, r2, asr #1 + 13b8: c2500001 subsgt r0, r0, #1 ; 0x1 + 13bc: c2000000 andgt r0, r0, #0 ; 0x0 + 13c0: 00000000 andeq r0, r0, r0 + 13c4: 0000c200 andeq ip, r0, r0, lsl #4 + 13c8: 0000c800 andeq ip, r0, r0, lsl #16 + 13cc: 50000100 andpl r0, r0, r0, lsl #2 + ... + 13d8: 000000f6 strdeq r0, [r0], -r6 + 13dc: 0000010a andeq r0, r0, sl, lsl #2 + 13e0: 0a560001 beq 15813ec + 13e4: 14000001 strne r0, [r0], #-1 + 13e8: 00000001 andeq r0, r0, r1 + ... + 1400: 00000200 andeq r0, r0, r0, lsl #4 + 1404: 7d000200 sfmvc f0, 4, [r0] + 1408: 00000200 andeq r0, r0, r0, lsl #4 + 140c: 00014c00 andeq r4, r1, r0, lsl #24 + 1410: 7d000200 sfmvc f0, 4, [r0] + 1414: 00000008 andeq r0, r0, r8 + ... + 1428: 00000200 andeq r0, r0, r0, lsl #4 + 142c: 7d000200 sfmvc f0, 4, [r0] + 1430: 00000200 andeq r0, r0, r0, lsl #4 + 1434: 00008c00 andeq r8, r0, r0, lsl #24 + 1438: 7d000200 sfmvc f0, 4, [r0] + 143c: 00008c10 andeq r8, r0, r0, lsl ip + 1440: 00009000 andeq r9, r0, r0 + 1444: 7d000200 sfmvc f0, 4, [r0] + 1448: 00009004 andeq r9, r0, r4 + 144c: 00009800 andeq r9, r0, r0, lsl #16 + 1450: 7d000200 sfmvc f0, 4, [r0] + ... + 145c: 00002a00 andeq r2, r0, r0, lsl #20 + 1460: 00003a00 andeq r3, r0, r0, lsl #20 + 1464: 55000100 strpl r0, [r0, #-256] + 1468: 0000003a andeq r0, r0, sl, lsr r0 + 146c: 00000098 muleq r0, r8, r0 + ... + 147c: 00020000 andeq r0, r2, r0 + 1480: 00020000 andeq r0, r2, r0 + 1484: 0002007d andeq r0, r2, sp, ror r0 + 1488: 002a0000 eoreq r0, sl, r0 + 148c: 00020000 andeq r0, r2, r0 + 1490: 002a087d eoreq r0, sl, sp, ror r8 + 1494: 00300000 eorseq r0, r0, r0 + 1498: 00020000 andeq r0, r2, r0 + 149c: 0000047d andeq r0, r0, sp, ror r4 + 14a0: 00000000 andeq r0, r0, r0 + 14a4: 00020000 andeq r0, r2, r0 + 14a8: 00020000 andeq r0, r2, r0 + 14ac: 00010000 andeq r0, r1, r0 + 14b0: 00000250 andeq r0, r0, r0, asr r2 + 14b4: 00003000 andeq r3, r0, r0 + ... + 14c0: 02000000 andeq r0, r0, #0 ; 0x0 + 14c4: 14000000 strne r0, [r0] + 14c8: 01000000 tsteq r0, r0 + 14cc: 00145000 andseq r5, r4, r0 + 14d0: 00160000 andseq r0, r6, r0 + 14d4: 00000000 andeq r0, r0, r0 + 14d8: 00000016 andeq r0, r0, r6, lsl r0 + 14dc: 00000030 andeq r0, r0, r0, lsr r0 + 14e0: 00500001 subseq r0, r0, r1 + 14e4: 00000000 andeq r0, r0, r0 + 14e8: 08000000 stmdaeq r0, {} + 14ec: 28000000 stmdacs r0, {} + 14f0: 01000000 tsteq r0, r0 + 14f4: 00285200 eoreq r5, r8, r0, lsl #4 + 14f8: 00300000 eorseq r0, r0, r0 + ... + 150c: 00000006 andeq r0, r0, r6 + 1510: 007d0002 rsbseq r0, sp, r2 + ... + 1520: 00000002 andeq r0, r0, r2 + 1524: 007d0002 rsbseq r0, sp, r2 + 1528: 00000002 andeq r0, r0, r2 + 152c: 00000004 andeq r0, r0, r4 + 1530: 107d0002 rsbsne r0, sp, r2 + 1534: 00000004 andeq r0, r0, r4 + 1538: 00000080 andeq r0, r0, r0, lsl #1 + 153c: 187d0002 ldmdane sp!, {r1}^ + 1540: 00000080 andeq r0, r0, r0, lsl #1 + 1544: 00000082 andeq r0, r0, r2, lsl #1 + 1548: 107d0002 rsbsne r0, sp, r2 + 154c: 00000082 andeq r0, r0, r2, lsl #1 + 1550: 00000086 andeq r0, r0, r6, lsl #1 + 1554: 047d0002 ldrbteq r0, [sp], #-2 + 1558: 00000086 andeq r0, r0, r6, lsl #1 + 155c: 000000a4 andeq r0, r0, r4, lsr #1 + 1560: 007d0002 rsbseq r0, sp, r2 + ... + 157c: 00000030 andeq r0, r0, r0, lsr r0 + 1580: 00000040 andeq r0, r0, r0, asr #32 + 1584: 68910002 ldmvs r1, {r1} + 1588: 00000040 andeq r0, r0, r0, asr #32 + 158c: 0000007c andeq r0, r0, ip, ror r0 + ... + 159c: 00020000 andeq r0, r2, r0 + 15a0: 00020000 andeq r0, r2, r0 + 15a4: 0002007d andeq r0, r2, sp, ror r0 + 15a8: 00040000 andeq r0, r4, r0 + 15ac: 00020000 andeq r0, r2, r0 + 15b0: 0004147d andeq r1, r4, sp, ror r4 + 15b4: 00820000 addeq r0, r2, r0 + 15b8: 00020000 andeq r0, r2, r0 + 15bc: 0082207d addeq r2, r2, sp, ror r0 + 15c0: 00840000 addeq r0, r4, r0 + 15c4: 00020000 andeq r0, r2, r0 + 15c8: 0084147d addeq r1, r4, sp, ror r4 + 15cc: 00880000 addeq r0, r8, r0 + 15d0: 00020000 andeq r0, r2, r0 + 15d4: 0088047d addeq r0, r8, sp, ror r4 + 15d8: 00940000 addseq r0, r4, r0 + 15dc: 00020000 andeq r0, r2, r0 + 15e0: 0000007d andeq r0, r0, sp, ror r0 + 15e4: 00000000 andeq r0, r0, r0 + 15e8: 00080000 andeq r0, r8, r0 + 15ec: 000c0000 andeq r0, ip, r0 + 15f0: 00010000 andeq r0, r1, r0 + 15f4: 00000c50 andeq r0, r0, r0, asr ip + 15f8: 00007800 andeq r7, r0, r0, lsl #16 + 15fc: 55000100 strpl r0, [r0, #-256] + 1600: 00000078 andeq r0, r0, r8, ror r0 + 1604: 00000094 muleq r0, r4, r0 + ... + 1610: 00080000 andeq r0, r8, r0 + 1614: 00780000 rsbseq r0, r8, r0 + 1618: 00010000 andeq r0, r1, r0 + 161c: 00007857 andeq r7, r0, r7, asr r8 + 1620: 00009400 andeq r9, r0, r0, lsl #8 + ... + 162c: 08000000 stmdaeq r0, {} + 1630: 78000000 stmdavc r0, {} + 1634: 01000000 tsteq r0, r0 + 1638: 00785400 rsbseq r5, r8, r0, lsl #8 + 163c: 00940000 addseq r0, r4, r0 + ... + 164c: 00000010 andeq r0, r0, r0, lsl r0 + 1650: 00000014 andeq r0, r0, r4, lsl r0 + 1654: 14500001 ldrbne r0, [r0], #-1 + 1658: 28000000 stmdacs r0, {} + 165c: 00000000 andeq r0, r0, r0 + 1660: 00002800 andeq r2, r0, r0, lsl #16 + 1664: 00002e00 andeq r2, r0, r0, lsl #28 + 1668: 50000100 andpl r0, r0, r0, lsl #2 + 166c: 0000002e andeq r0, r0, lr, lsr #32 + 1670: 00000040 andeq r0, r0, r0, asr #32 + 1674: 00400000 subeq r0, r0, r0 + 1678: 00460000 subeq r0, r6, r0 + 167c: 00010000 andeq r0, r1, r0 + 1680: 00004650 andeq r4, r0, r0, asr r6 + 1684: 00008000 andeq r8, r0, r0 + 1688: 80000000 andhi r0, r0, r0 + 168c: 94000000 strls r0, [r0] + 1690: 01000000 tsteq r0, r0 + 1694: 00005000 andeq r5, r0, r0 + 1698: 00000000 andeq r0, r0, r0 + 169c: 00080000 andeq r0, r8, r0 + 16a0: 00800000 addeq r0, r0, r0 + 16a4: 00020000 andeq r0, r2, r0 + 16a8: 00806091 umulleq r6, r0, r1, r0 + 16ac: 00940000 addseq r0, r4, r0 + ... + 16c0: 00000002 andeq r0, r0, r2 + 16c4: 007d0002 rsbseq r0, sp, r2 + 16c8: 00000002 andeq r0, r0, r2 + 16cc: 00000004 andeq r0, r0, r4 + 16d0: 087d0002 ldmdaeq sp!, {r1}^ + 16d4: 00000004 andeq r0, r0, r4 + 16d8: 00000072 andeq r0, r0, r2, ror r0 + 16dc: 187d0002 ldmdane sp!, {r1}^ + 16e0: 00000072 andeq r0, r0, r2, ror r0 + 16e4: 00000074 andeq r0, r0, r4, ror r0 + 16e8: 087d0002 ldmdaeq sp!, {r1}^ + 16ec: 00000074 andeq r0, r0, r4, ror r0 + 16f0: 00000078 andeq r0, r0, r8, ror r0 + 16f4: 047d0002 ldrbteq r0, [sp], #-2 + 16f8: 00000078 andeq r0, r0, r8, ror r0 + 16fc: 0000008c andeq r0, r0, ip, lsl #1 + 1700: 007d0002 rsbseq r0, sp, r2 + ... + 170c: 00000006 andeq r0, r0, r6 + 1710: 0000006c andeq r0, r0, ip, rrx + 1714: 6c540001 mrrcvs 0, 0, r0, r4, cr1 + 1718: 8c000000 stchi 0, cr0, [r0], {0} + ... + 1728: 00000600 andeq r0, r0, r0, lsl #12 + 172c: 00008c00 andeq r8, r0, r0, lsl #24 + 1730: 91000200 tstls r0, r0, lsl #4 + 1734: 00000070 andeq r0, r0, r0, ror r0 + 1738: 00000000 andeq r0, r0, r0 + 173c: 00000600 andeq r0, r0, r0, lsl #12 + 1740: 00008c00 andeq r8, r0, r0, lsl #24 + 1744: 91000200 tstls r0, r0, lsl #4 + 1748: 00000068 andeq r0, r0, r8, rrx + ... + 1754: 00005000 andeq r5, r0, r0 + 1758: 7d000200 sfmvc f0, 4, [r0] + ... + 1764: 00003000 andeq r3, r0, r0 + 1768: 00003a00 andeq r3, r0, r0, lsl #20 + 176c: 50000100 andpl r0, r0, r0, lsl #2 + 1770: 0000003a andeq r0, r0, sl, lsr r0 + 1774: 00000040 andeq r0, r0, r0, asr #32 + 1778: 00400000 subeq r0, r0, r0 + 177c: 00480000 subeq r0, r8, r0 + 1780: 00010000 andeq r0, r1, r0 + 1784: 00004850 andeq r4, r0, r0, asr r8 + 1788: 00005000 andeq r5, r0, r0 + ... + 1798: 02000000 andeq r0, r0, #0 ; 0x0 + 179c: 02000000 andeq r0, r0, #0 ; 0x0 + 17a0: 00007d00 andeq r7, r0, r0, lsl #26 + ... + 17ac: 02000000 andeq r0, r0, #0 ; 0x0 + 17b0: 02000000 andeq r0, r0, #0 ; 0x0 + 17b4: 00007d00 andeq r7, r0, r0, lsl #26 + ... + 17c8: 02000000 andeq r0, r0, #0 ; 0x0 + 17cc: 02000000 andeq r0, r0, #0 ; 0x0 + 17d0: 02007d00 andeq r7, r0, #0 ; 0x0 + 17d4: 04000000 streq r0, [r0] + 17d8: 02000000 andeq r0, r0, #0 ; 0x0 + 17dc: 04187d00 ldreq r7, [r8], #-3328 + 17e0: 3e000000 cdpcc 0, 0, cr0, cr0, cr0, {0} + 17e4: 02000000 andeq r0, r0, #0 ; 0x0 + 17e8: 3e207d00 cdpcc 13, 2, cr7, cr0, cr0, {0} + 17ec: 40000000 andmi r0, r0, r0 + 17f0: 02000000 andeq r0, r0, #0 ; 0x0 + 17f4: 40107d00 andsmi r7, r0, r0, lsl #26 + 17f8: 44000000 strmi r0, [r0] + 17fc: 02000000 andeq r0, r0, #0 ; 0x0 + 1800: 44047d00 strmi r7, [r4], #-3328 + 1804: 46000000 strmi r0, [r0], -r0 + 1808: 02000000 andeq r0, r0, #0 ; 0x0 + 180c: 00007d00 andeq r7, r0, r0, lsl #26 + 1810: 00000000 andeq r0, r0, r0 + 1814: 04000000 streq r0, [r0] + 1818: 3c000000 stccc 0, cr0, [r0], {0} + 181c: 02000000 andeq r0, r0, #0 ; 0x0 + 1820: 3c689100 stfccp f1, [r8] + 1824: 46000000 strmi r0, [r0], -r0 + ... + 1834: 00000400 andeq r0, r0, r0, lsl #8 + 1838: 00003c00 andeq r3, r0, r0, lsl #24 + 183c: 91000200 tstls r0, r0, lsl #4 + 1840: 00003c60 andeq r3, r0, r0, ror #24 + 1844: 00004600 andeq r4, r0, r0, lsl #12 + ... + 1850: 0a000000 beq 1858 <__USR_stack_size+0x1058> + 1854: 3c000000 stccc 0, cr0, [r0], {0} + 1858: 01000000 tsteq r0, r0 + 185c: 003c5500 eorseq r5, ip, r0, lsl #10 + 1860: 00460000 subeq r0, r6, r0 + ... + 1870: 00000022 andeq r0, r0, r2, lsr #32 + 1874: 0000003c andeq r0, r0, ip, lsr r0 + 1878: 3c540001 mrrccc 0, 0, r0, r4, cr1 + 187c: 46000000 strmi r0, [r0], -r0 + ... + 1890: 00000200 andeq r0, r0, r0, lsl #4 + 1894: 7d000200 sfmvc f0, 4, [r0] + 1898: 00000200 andeq r0, r0, r0, lsl #4 + 189c: 00001400 andeq r1, r0, r0, lsl #8 + 18a0: 7d000200 sfmvc f0, 4, [r0] + 18a4: 00000008 andeq r0, r0, r8 + 18a8: 00000000 andeq r0, r0, r0 + 18ac: 00000200 andeq r0, r0, r0, lsl #4 + 18b0: 00001400 andeq r1, r0, r0, lsl #8 + 18b4: 50000100 andpl r0, r0, r0, lsl #2 + ... + 18c4: 00000002 andeq r0, r0, r2 + 18c8: 007d0002 rsbseq r0, sp, r2 + 18cc: 00000002 andeq r0, r0, r2 + 18d0: 0000001c andeq r0, r0, ip, lsl r0 + 18d4: 087d0002 ldmdaeq sp!, {r1}^ + ... + 18e0: 00000002 andeq r0, r0, r2 + 18e4: 00000006 andeq r0, r0, r6 + 18e8: 06500001 ldrbeq r0, [r0], -r1 + 18ec: 0a000000 beq 18f4 <__USR_stack_size+0x10f4> + 18f0: 00000000 andeq r0, r0, r0 + 18f4: 00000a00 andeq r0, r0, r0, lsl #20 + 18f8: 00001400 andeq r1, r0, r0, lsl #8 + 18fc: 50000100 andpl r0, r0, r0, lsl #2 + 1900: 00000014 andeq r0, r0, r4, lsl r0 + 1904: 0000001c andeq r0, r0, ip, lsl r0 + ... + 1914: 00020000 andeq r0, r2, r0 + 1918: 00020000 andeq r0, r2, r0 + 191c: 0002007d andeq r0, r2, sp, ror r0 + 1920: 000c0000 andeq r0, ip, r0 + 1924: 00020000 andeq r0, r2, r0 + 1928: 0000087d andeq r0, r0, sp, ror r8 + ... + 1934: 00020000 andeq r0, r2, r0 + 1938: 00020000 andeq r0, r2, r0 + 193c: 0002007d andeq r0, r2, sp, ror r0 + 1940: 00100000 andseq r0, r0, r0 + 1944: 00020000 andeq r0, r2, r0 + 1948: 0000087d andeq r0, r0, sp, ror r8 + 194c: 00000000 andeq r0, r0, r0 + 1950: 00020000 andeq r0, r2, r0 + 1954: 00100000 andseq r0, r0, r0 + 1958: 00010000 andeq r0, r1, r0 + 195c: 00000050 andeq r0, r0, r0, asr r0 + 1960: 00000000 andeq r0, r0, r0 + 1964: 00000200 andeq r0, r0, r0, lsl #4 + 1968: 00001000 andeq r1, r0, r0 + 196c: 51000100 tstpl r0, r0, lsl #2 + ... + 197c: 00000002 andeq r0, r0, r2 + 1980: 007d0002 rsbseq r0, sp, r2 + 1984: 00000002 andeq r0, r0, r2 + 1988: 00000016 andeq r0, r0, r6, lsl r0 + 198c: 087d0002 ldmdaeq sp!, {r1}^ + ... + 1998: 00000002 andeq r0, r0, r2 + 199c: 0000000c andeq r0, r0, ip + 19a0: 0c500001 mrrceq 0, 0, r0, r0, cr1 + 19a4: 10000000 andne r0, r0, r0 + 19a8: 00000000 andeq r0, r0, r0 + 19ac: 00001000 andeq r1, r0, r0 + 19b0: 00001000 andeq r1, r0, r0 + 19b4: 50000100 andpl r0, r0, r0, lsl #2 + 19b8: 00000010 andeq r0, r0, r0, lsl r0 + 19bc: 00000016 andeq r0, r0, r6, lsl r0 + ... + 19cc: 00020000 andeq r0, r2, r0 + 19d0: 00020000 andeq r0, r2, r0 + 19d4: 0002007d andeq r0, r2, sp, ror r0 + 19d8: 001c0000 andseq r0, ip, r0 + 19dc: 00020000 andeq r0, r2, r0 + 19e0: 0000087d andeq r0, r0, sp, ror r8 + 19e4: 00000000 andeq r0, r0, r0 + 19e8: 00020000 andeq r0, r2, r0 + 19ec: 00080000 andeq r0, r8, r0 + 19f0: 00010000 andeq r0, r1, r0 + 19f4: 00000850 andeq r0, r0, r0, asr r8 + 19f8: 00000c00 andeq r0, r0, r0, lsl #24 + 19fc: 0c000000 stceq 0, cr0, [r0], {0} + 1a00: 1c000000 stcne 0, cr0, [r0], {0} + 1a04: 01000000 tsteq r0, r0 + 1a08: 00005000 andeq r5, r0, r0 + 1a0c: 00000000 andeq r0, r0, r0 + 1a10: 00020000 andeq r0, r2, r0 + 1a14: 00080000 andeq r0, r8, r0 + 1a18: 00010000 andeq r0, r1, r0 + 1a1c: 00000851 andeq r0, r0, r1, asr r8 + 1a20: 00000c00 andeq r0, r0, r0, lsl #24 + 1a24: 0c000000 stceq 0, cr0, [r0], {0} + 1a28: 1c000000 stcne 0, cr0, [r0], {0} + 1a2c: 01000000 tsteq r0, r0 + 1a30: 00005100 andeq r5, r0, r0, lsl #2 + ... + 1a3c: 00020000 andeq r0, r2, r0 + 1a40: 00020000 andeq r0, r2, r0 + 1a44: 0002007d andeq r0, r2, sp, ror r0 + 1a48: 00140000 andseq r0, r4, r0 + 1a4c: 00020000 andeq r0, r2, r0 + 1a50: 0000087d andeq r0, r0, sp, ror r8 + 1a54: 00000000 andeq r0, r0, r0 + 1a58: 00020000 andeq r0, r2, r0 + 1a5c: 00060000 andeq r0, r6, r0 + 1a60: 00010000 andeq r0, r1, r0 + 1a64: 00000650 andeq r0, r0, r0, asr r6 + 1a68: 00000a00 andeq r0, r0, r0, lsl #20 + 1a6c: 0a000000 beq 1a74 <__USR_stack_size+0x1274> + 1a70: 0c000000 stceq 0, cr0, [r0], {0} + 1a74: 01000000 tsteq r0, r0 + 1a78: 000c5000 andeq r5, ip, r0 + 1a7c: 00140000 andseq r0, r4, r0 + ... + 1a90: 00000028 andeq r0, r0, r8, lsr #32 + 1a94: 007d0002 rsbseq r0, sp, r2 + ... + 1aa0: 0000000c andeq r0, r0, ip + 1aa4: 00000012 andeq r0, r0, r2, lsl r0 + 1aa8: 12510001 subsne r0, r1, #1 ; 0x1 + 1aac: 28000000 stmdacs r0, {} + ... + 1ac0: 00000200 andeq r0, r0, r0, lsl #4 + 1ac4: 7d000200 sfmvc f0, 4, [r0] + 1ac8: 00000200 andeq r0, r0, r0, lsl #4 + 1acc: 00002400 andeq r2, r0, r0, lsl #8 + 1ad0: 7d000200 sfmvc f0, 4, [r0] + 1ad4: 00000008 andeq r0, r0, r8 + 1ad8: 00000000 andeq r0, r0, r0 + 1adc: 00000200 andeq r0, r0, r0, lsl #4 + 1ae0: 00000c00 andeq r0, r0, r0, lsl #24 + 1ae4: 50000100 andpl r0, r0, r0, lsl #2 + 1ae8: 0000000c andeq r0, r0, ip + 1aec: 00000024 andeq r0, r0, r4, lsr #32 + ... + 1af8: 00020000 andeq r0, r2, r0 + 1afc: 00240000 eoreq r0, r4, r0 + 1b00: 00020000 andeq r0, r2, r0 + 1b04: 00007891 muleq r0, r1, r8 + ... + 1b10: 00020000 andeq r0, r2, r0 + 1b14: 00020000 andeq r0, r2, r0 + 1b18: 0002007d andeq r0, r2, sp, ror r0 + 1b1c: 00080000 andeq r0, r8, r0 + 1b20: 00020000 andeq r0, r2, r0 + 1b24: 0000087d andeq r0, r0, sp, ror r8 + 1b28: 00000000 andeq r0, r0, r0 + 1b2c: 00040000 andeq r0, r4, r0 + 1b30: 00080000 andeq r0, r8, r0 + 1b34: 00010000 andeq r0, r1, r0 + 1b38: 00000054 andeq r0, r0, r4, asr r0 + ... + 1b44: 00000200 andeq r0, r0, r0, lsl #4 + 1b48: 7d000200 sfmvc f0, 4, [r0] + 1b4c: 00000200 andeq r0, r0, r0, lsl #4 + 1b50: 00001c00 andeq r1, r0, r0, lsl #24 + 1b54: 7d000200 sfmvc f0, 4, [r0] + 1b58: 00000008 andeq r0, r0, r8 + 1b5c: 00000000 andeq r0, r0, r0 + 1b60: 00000400 andeq r0, r0, r0, lsl #8 + 1b64: 00001c00 andeq r1, r0, r0, lsl #24 + 1b68: 54000100 strpl r0, [r0], #-256 + ... + 1b78: 00000002 andeq r0, r0, r2 + 1b7c: 007d0002 rsbseq r0, sp, r2 + 1b80: 00000002 andeq r0, r0, r2 + 1b84: 00000004 andeq r0, r0, r4 + 1b88: 187d0002 ldmdane sp!, {r1}^ + 1b8c: 00000004 andeq r0, r0, r4 + 1b90: 0000006c andeq r0, r0, ip, rrx + 1b94: 207d0002 rsbscs r0, sp, r2 + ... + 1ba0: 00000006 andeq r0, r0, r6 + 1ba4: 00000054 andeq r0, r0, r4, asr r0 + 1ba8: 54570001 ldrbpl r0, [r7], #-1 + 1bac: 6c000000 stcvs 0, cr0, [r0], {0} + ... + 1bbc: 00000600 andeq r0, r0, r0, lsl #12 + 1bc0: 00005400 andeq r5, r0, r0, lsl #8 + 1bc4: 91000200 tstls r0, r0, lsl #4 + 1bc8: 00005468 andeq r5, r0, r8, ror #8 + 1bcc: 00006c00 andeq r6, r0, r0, lsl #24 + ... + 1bd8: 18000000 stmdane r0, {} + 1bdc: 54000000 strpl r0, [r0] + 1be0: 02000000 andeq r0, r0, #0 ; 0x0 + 1be4: 54609100 strbtpl r9, [r0], #-256 + 1be8: 6c000000 stcvs 0, cr0, [r0], {0} + ... + 1bfc: 00000200 andeq r0, r0, r0, lsl #4 + 1c00: 7d000200 sfmvc f0, 4, [r0] + 1c04: 00000200 andeq r0, r0, r0, lsl #4 + 1c08: 00000400 andeq r0, r0, r0, lsl #8 + 1c0c: 7d000200 sfmvc f0, 4, [r0] + 1c10: 00000404 andeq r0, r0, r4, lsl #8 + 1c14: 00002c00 andeq r2, r0, r0, lsl #24 + 1c18: 7d000300 stcvc 3, cr0, [r0] + 1c1c: 000000e8 andeq r0, r0, r8, ror #1 + 1c20: 00000000 andeq r0, r0, r0 + 1c24: 00040000 andeq r0, r4, r0 + 1c28: 002c0000 eoreq r0, ip, r0 + 1c2c: 00020000 andeq r0, r2, r0 + 1c30: 00006491 muleq r0, r1, r4 + 1c34: 00000000 andeq r0, r0, r0 + 1c38: 00040000 andeq r0, r4, r0 + 1c3c: 002c0000 eoreq r0, ip, r0 + 1c40: 00030000 andeq r0, r3, r0 + 1c44: 007fa091 ldrbteq sl, [pc, #-1] ; 1c4b <__USR_stack_size+0x144b> + 1c48: 00000000 andeq r0, r0, r0 + 1c4c: 04000000 streq r0, [r0] + 1c50: 2c000000 stccs 0, cr0, [r0], {0} + 1c54: 03000000 movweq r0, #0 ; 0x0 + 1c58: 7f989100 svcvc 0x00989100 + ... + 1c68: 00000002 andeq r0, r0, r2 + 1c6c: 007d0002 rsbseq r0, sp, r2 + 1c70: 00000002 andeq r0, r0, r2 + 1c74: 000001bc strheq r0, [r0], -ip + 1c78: 187d0002 ldmdane sp!, {r1}^ + 1c7c: 000001bc strheq r0, [r0], -ip + 1c80: 000001f4 strdeq r0, [r0], -r4 + 1c84: 147d0002 ldrbtne r0, [sp], #-2 + ... + 1c94: 00000028 andeq r0, r0, r8, lsr #32 + 1c98: 007d0002 rsbseq r0, sp, r2 + ... + 1ca8: 00000002 andeq r0, r0, r2 + 1cac: 007d0002 rsbseq r0, sp, r2 + 1cb0: 00000002 andeq r0, r0, r2 + 1cb4: 00000004 andeq r0, r0, r4 + 1cb8: 107d0002 rsbsne r0, sp, r2 + 1cbc: 00000004 andeq r0, r0, r4 + 1cc0: 00000124 andeq r0, r0, r4, lsr #2 + 1cc4: 207d0002 rsbscs r0, sp, r2 + 1cc8: 00000124 andeq r0, r0, r4, lsr #2 + 1ccc: 00000126 andeq r0, r0, r6, lsr #2 + 1cd0: 107d0002 rsbsne r0, sp, r2 + 1cd4: 00000126 andeq r0, r0, r6, lsr #2 + 1cd8: 0000012a andeq r0, r0, sl, lsr #2 + 1cdc: 047d0002 ldrbteq r0, [sp], #-2 + 1ce0: 0000012a andeq r0, r0, sl, lsr #2 + 1ce4: 0000012c andeq r0, r0, ip, lsr #2 + 1ce8: 007d0002 rsbseq r0, sp, r2 + 1cec: 0000012c andeq r0, r0, ip, lsr #2 + 1cf0: 000001ac andeq r0, r0, ip, lsr #3 + 1cf4: 207d0002 rsbscs r0, sp, r2 + ... + 1d00: 00000004 andeq r0, r0, r4 + 1d04: 000000f0 strdeq r0, [r0], -r0 + 1d08: 60910002 addsvs r0, r1, r2 + 1d0c: 000000f0 strdeq r0, [r0], -r0 + 1d10: 000000f4 strdeq r0, [r0], -r4 + 1d14: 00f40000 rscseq r0, r4, r0 + 1d18: 01520000 cmpeq r2, r0 + 1d1c: 00020000 andeq r0, r2, r0 + 1d20: 01526091 ldrbeq r6, [r2, #-1] + 1d24: 017a0000 cmneq sl, r0 + 1d28: 00000000 andeq r0, r0, r0 + 1d2c: 0000017a andeq r0, r0, sl, ror r1 + 1d30: 00000198 muleq r0, r8, r1 + 1d34: 60910002 addsvs r0, r1, r2 + 1d38: 00000198 muleq r0, r8, r1 + 1d3c: 000001ac andeq r0, r0, ip, lsr #3 + ... + 1d4c: 00020000 andeq r0, r2, r0 + 1d50: 00020000 andeq r0, r2, r0 + 1d54: 0002007d andeq r0, r2, sp, ror r0 + 1d58: 00140000 andseq r0, r4, r0 + 1d5c: 00020000 andeq r0, r2, r0 + 1d60: 0000087d andeq r0, r0, sp, ror r8 + ... + 1d6c: 00020000 andeq r0, r2, r0 + 1d70: 00020000 andeq r0, r2, r0 + 1d74: 0002007d andeq r0, r2, sp, ror r0 + 1d78: 00100000 andseq r0, r0, r0 + 1d7c: 00020000 andeq r0, r2, r0 + 1d80: 0000087d andeq r0, r0, sp, ror r8 + ... + 1d8c: 00020000 andeq r0, r2, r0 + 1d90: 00020000 andeq r0, r2, r0 + 1d94: 0002007d andeq r0, r2, sp, ror r0 + 1d98: 00140000 andseq r0, r4, r0 + 1d9c: 00020000 andeq r0, r2, r0 + 1da0: 0000087d andeq r0, r0, sp, ror r8 + ... + 1dac: 00020000 andeq r0, r2, r0 + 1db0: 00020000 andeq r0, r2, r0 + 1db4: 0002007d andeq r0, r2, sp, ror r0 + 1db8: 00140000 andseq r0, r4, r0 + 1dbc: 00020000 andeq r0, r2, r0 + 1dc0: 0000087d andeq r0, r0, sp, ror r8 + ... + 1dcc: 00020000 andeq r0, r2, r0 + 1dd0: 00020000 andeq r0, r2, r0 + 1dd4: 0002007d andeq r0, r2, sp, ror r0 + 1dd8: 005c0000 subseq r0, ip, r0 + 1ddc: 00020000 andeq r0, r2, r0 + 1de0: 005c187d subseq r1, ip, sp, ror r8 + 1de4: 00680000 rsbeq r0, r8, r0 + 1de8: 00020000 andeq r0, r2, r0 + 1dec: 0068207d rsbeq r2, r8, sp, ror r0 + 1df0: 00a20000 adceq r0, r2, r0 + 1df4: 00020000 andeq r0, r2, r0 + 1df8: 00a2187d adceq r1, r2, sp, ror r8 + 1dfc: 00ae0000 adceq r0, lr, r0 + 1e00: 00020000 andeq r0, r2, r0 + 1e04: 00ae207d adceq r2, lr, sp, ror r0 + 1e08: 01020000 tsteq r2, r0 + 1e0c: 00020000 andeq r0, r2, r0 + 1e10: 0102187d tsteq r2, sp, ror r8 + 1e14: 010e0000 tsteq lr, r0 + 1e18: 00020000 andeq r0, r2, r0 + 1e1c: 010e207d tsteq lr, sp, ror r0 + 1e20: 01400000 cmpeq r0, r0 + 1e24: 00020000 andeq r0, r2, r0 + 1e28: 0140187d cmpeq r0, sp, ror r8 + 1e2c: 01420000 cmpeq r2, r0 + 1e30: 00020000 andeq r0, r2, r0 + 1e34: 0142147d cmpeq r2, sp, ror r4 + 1e38: 01460000 cmpeq r6, r0 + 1e3c: 00020000 andeq r0, r2, r0 + 1e40: 0146047d cmpeq r6, sp, ror r4 + 1e44: 015c0000 cmpeq ip, r0 + 1e48: 00020000 andeq r0, r2, r0 + 1e4c: 0000007d andeq r0, r0, sp, ror r0 + 1e50: 00000000 andeq r0, r0, r0 + 1e54: 00020000 andeq r0, r2, r0 + 1e58: 00420000 subeq r0, r2, r0 + 1e5c: 00010000 andeq r0, r1, r0 + 1e60: 00004250 andeq r4, r0, r0, asr r2 + 1e64: 00007000 andeq r7, r0, r0 + 1e68: 70000000 andvc r0, r0, r0 + 1e6c: 8a000000 bhi 1e74 <__USR_stack_size+0x1674> + 1e70: 01000000 tsteq r0, r0 + 1e74: 008a5000 addeq r5, sl, r0 + 1e78: 00b40000 adcseq r0, r4, r0 + 1e7c: 00000000 andeq r0, r0, r0 + 1e80: 000000b4 strheq r0, [r0], -r4 + 1e84: 000000e4 andeq r0, r0, r4, ror #1 + 1e88: e4500001 ldrb r0, [r0], #-1 + 1e8c: 20000000 andcs r0, r0, r0 + 1e90: 00000001 andeq r0, r0, r1 + 1e94: 00012000 andeq r2, r1, r0 + 1e98: 00013800 andeq r3, r1, r0, lsl #16 + 1e9c: 50000100 andpl r0, r0, r0, lsl #2 + 1ea0: 00000138 andeq r0, r0, r8, lsr r1 + 1ea4: 0000015c andeq r0, r0, ip, asr r1 + ... + 1eb0: 00020000 andeq r0, r2, r0 + 1eb4: 001a0000 andseq r0, sl, r0 + 1eb8: 00010000 andeq r0, r1, r0 + 1ebc: 00001a51 andeq r1, r0, r1, asr sl + 1ec0: 00015c00 andeq r5, r1, r0, lsl #24 + ... + 1ecc: 52000000 andpl r0, r0, #0 ; 0x0 + 1ed0: 6c000000 stcvs 0, cr0, [r0], {0} + 1ed4: 01000000 tsteq r0, r0 + 1ed8: 006c5700 rsbeq r5, ip, r0, lsl #14 + 1edc: 00980000 addseq r0, r8, r0 + 1ee0: 00000000 andeq r0, r0, r0 + 1ee4: 00000098 muleq r0, r8, r0 + 1ee8: 000000b2 strheq r0, [r0], -r2 + 1eec: b2570001 subslt r0, r7, #1 ; 0x1 + 1ef0: f6000000 undefined instruction 0xf6000000 + 1ef4: 00000000 andeq r0, r0, r0 + 1ef8: 0000f600 andeq pc, r0, r0, lsl #12 + 1efc: 00011200 andeq r1, r1, r0, lsl #4 + 1f00: 57000100 strpl r0, [r0, -r0, lsl #2] + 1f04: 00000112 andeq r0, r0, r2, lsl r1 + 1f08: 0000015c andeq r0, r0, ip, asr r1 + ... + 1f14: 00020000 andeq r0, r2, r0 + 1f18: 001a0000 andseq r0, sl, r0 + 1f1c: 00010000 andeq r0, r1, r0 + 1f20: 00001a52 andeq r1, r0, r2, asr sl + 1f24: 00013a00 andeq r3, r1, r0, lsl #20 + 1f28: 3a000000 bcc 1f30 <__USR_stack_size+0x1730> + 1f2c: 5c000001 stcpl 0, cr0, [r0], {1} + 1f30: 01000001 tsteq r0, r1 + 1f34: 00005200 andeq r5, r0, r0, lsl #4 + ... + 1f40: 00020000 andeq r0, r2, r0 + 1f44: 00020000 andeq r0, r2, r0 + 1f48: 0002007d andeq r0, r2, sp, ror r0 + 1f4c: 00040000 andeq r0, r4, r0 + 1f50: 00020000 andeq r0, r2, r0 + 1f54: 0004147d andeq r1, r4, sp, ror r4 + 1f58: 00960000 addseq r0, r6, r0 + 1f5c: 00020000 andeq r0, r2, r0 + 1f60: 0096287d addseq r2, r6, sp, ror r8 + 1f64: 00b00000 adcseq r0, r0, r0 + 1f68: 00020000 andeq r0, r2, r0 + 1f6c: 0000147d andeq r1, r0, sp, ror r4 + 1f70: 00000000 andeq r0, r0, r0 + 1f74: 00040000 andeq r0, r4, r0 + 1f78: 00940000 addseq r0, r4, r0 + 1f7c: 00020000 andeq r0, r2, r0 + 1f80: 00945891 umullseq r5, r4, r1, r8 + 1f84: 00b00000 adcseq r0, r0, r0 + ... + 1f94: 00000050 andeq r0, r0, r0, asr r0 + 1f98: 00000056 andeq r0, r0, r6, asr r0 + 1f9c: 56500001 ldrbpl r0, [r0], -r1 + 1fa0: b0000000 andlt r0, r0, r0 + ... + 1fb0: 00003c00 andeq r3, r0, r0, lsl #24 + 1fb4: 00006200 andeq r6, r0, r0, lsl #4 + 1fb8: 54000100 strpl r0, [r0], #-256 + 1fbc: 00000062 andeq r0, r0, r2, rrx + 1fc0: 000000b0 strheq r0, [r0], -r0 + ... + 1fd0: 00020000 andeq r0, r2, r0 + 1fd4: 00020000 andeq r0, r2, r0 + 1fd8: 0002007d andeq r0, r2, sp, ror r0 + 1fdc: 00040000 andeq r0, r4, r0 + 1fe0: 00020000 andeq r0, r2, r0 + 1fe4: 0004147d andeq r1, r4, sp, ror r4 + 1fe8: 01e40000 mvneq r0, r0 + 1fec: 00020000 andeq r0, r2, r0 + 1ff0: 0000207d andeq r2, r0, sp, ror r0 + 1ff4: 00000000 andeq r0, r0, r0 + 1ff8: 00080000 andeq r0, r8, r0 + 1ffc: 01de0000 bicseq r0, lr, r0 + 2000: 00010000 andeq r0, r1, r0 + 2004: 0001de55 andeq sp, r1, r5, asr lr + 2008: 0001e400 andeq lr, r1, r0, lsl #8 + ... + 2014: 08000000 stmdaeq r0, {} + 2018: 9c000000 stcls 0, cr0, [r0], {0} + 201c: 01000001 tsteq r0, r1 + 2020: 019c5400 orrseq r5, ip, r0, lsl #8 + 2024: 019e0000 orrseq r0, lr, r0 + 2028: 00000000 andeq r0, r0, r0 + 202c: 0000019e muleq r0, lr, r1 + 2030: 000001c2 andeq r0, r0, r2, asr #3 + 2034: c2540001 subsgt r0, r4, #1 ; 0x1 + 2038: de000001 cdple 0, 0, cr0, cr0, cr1, {0} + 203c: 01000001 tsteq r0, r1 + 2040: 01de5700 bicseq r5, lr, r0, lsl #14 + 2044: 01e40000 mvneq r0, r0 + ... + 205c: 00000010 andeq r0, r0, r0, lsl r0 + 2060: 000001e4 andeq r0, r0, r4, ror #3 + 2064: 60910002 addsvs r0, r1, r2 + ... + 2070: 00000012 andeq r0, r0, r2, lsl r0 + 2074: 000001b8 strheq r0, [r0], -r8 + 2078: 00560001 subseq r0, r6, r1 + ... + 2084: 02000000 andeq r0, r0, #0 ; 0x0 + 2088: 02000000 andeq r0, r0, #0 ; 0x0 + 208c: 02007d00 andeq r7, r0, #0 ; 0x0 + 2090: b0000000 andlt r0, r0, r0 + 2094: 02000001 andeq r0, r0, #1 ; 0x1 + 2098: b0187d00 andslt r7, r8, r0, lsl #26 + 209c: b2000001 andlt r0, r0, #1 ; 0x1 + 20a0: 02000001 andeq r0, r0, #1 ; 0x1 + 20a4: 00147d00 andseq r7, r4, r0, lsl #26 + 20a8: 00000000 andeq r0, r0, r0 + 20ac: 06000000 streq r0, [r0], -r0 + 20b0: ae000000 cdpge 0, 0, cr0, cr0, cr0, {0} + 20b4: 01000001 tsteq r0, r1 + 20b8: 01ae5500 undefined instruction 0x01ae5500 + 20bc: 01b20000 undefined instruction 0x01b20000 + ... + 20cc: 00000006 andeq r0, r0, r6 + 20d0: 00000192 muleq r0, r2, r1 + 20d4: 92540001 subsls r0, r4, #1 ; 0x1 + 20d8: 94000001 strls r0, [r0], #-1 + 20dc: 00000001 andeq r0, r0, r1 + 20e0: 00019400 andeq r9, r1, r0, lsl #8 + 20e4: 0001ae00 andeq sl, r1, r0, lsl #28 + 20e8: 54000100 strpl r0, [r0], #-256 + 20ec: 000001ae andeq r0, r0, lr, lsr #3 + 20f0: 000001b2 strheq r0, [r0], -r2 + ... + 20fc: 00080000 andeq r0, r8, r0 + 2100: 01ae0000 undefined instruction 0x01ae0000 + 2104: 00010000 andeq r0, r1, r0 + 2108: 00000056 andeq r0, r0, r6, asr r0 + ... + 2114: 00000200 andeq r0, r0, r0, lsl #4 + 2118: 7d000200 sfmvc f0, 4, [r0] + 211c: 00000200 andeq r0, r0, r0, lsl #4 + 2120: 00010e00 andeq r0, r1, r0, lsl #28 + 2124: 7d000200 sfmvc f0, 4, [r0] + 2128: 00010e18 andeq r0, r1, r8, lsl lr + 212c: 00011000 andeq r1, r1, r0 + 2130: 7d000200 sfmvc f0, 4, [r0] + 2134: 00011014 andeq r1, r1, r4, lsl r0 + 2138: 00027800 andeq r7, r2, r0, lsl #16 + 213c: 7d000200 sfmvc f0, 4, [r0] + 2140: 00000018 andeq r0, r0, r8, lsl r0 + 2144: 00000000 andeq r0, r0, r0 + 2148: 00000400 andeq r0, r0, r0, lsl #8 + 214c: 00006000 andeq r6, r0, r0 + 2150: 57000100 strpl r0, [r0, -r0, lsl #2] + 2154: 00000060 andeq r0, r0, r0, rrx + 2158: 00000278 andeq r0, r0, r8, ror r2 + ... + 217c: 00100000 andseq r0, r0, r0 + 2180: 00320000 eorseq r0, r2, r0 + 2184: 00010000 andeq r0, r1, r0 + 2188: 00000054 andeq r0, r0, r4, asr r0 + 218c: 00000000 andeq r0, r0, r0 + 2190: 0001f600 andeq pc, r1, r0, lsl #12 + 2194: 00023000 andeq r3, r2, r0 + 2198: 54000100 strpl r0, [r0], #-256 + ... + 21a8: 00000002 andeq r0, r0, r2 + 21ac: 007d0002 rsbseq r0, sp, r2 + 21b0: 00000002 andeq r0, r0, r2 + 21b4: 00000110 andeq r0, r0, r0, lsl r1 + 21b8: 187d0002 ldmdane sp!, {r1}^ + 21bc: 00000110 andeq r0, r0, r0, lsl r1 + 21c0: 00000134 andeq r0, r0, r4, lsr r1 + 21c4: 147d0002 ldrbtne r0, [sp], #-2 + ... + 21d0: 00000004 andeq r0, r0, r4 + 21d4: 000000d6 ldrdeq r0, [r0], -r6 + 21d8: d6540001 ldrble r0, [r4], -r1 + 21dc: 34000000 strcc r0, [r0] + 21e0: 00000001 andeq r0, r0, r1 + ... + 21ec: 0000d600 andeq sp, r0, r0, lsl #12 + 21f0: 0000de00 andeq sp, r0, r0, lsl #28 + 21f4: 57000100 strpl r0, [r0, -r0, lsl #2] + 21f8: 000000de ldrdeq r0, [r0], -lr + 21fc: 00000134 andeq r0, r0, r4, lsr r1 + ... + 2210: 00de0000 sbcseq r0, lr, r0 + 2214: 010e0000 tsteq lr, r0 + 2218: 00010000 andeq r0, r1, r0 + 221c: 00000054 andeq r0, r0, r4, asr r0 + ... + 2228: 00000200 andeq r0, r0, r0, lsl #4 + 222c: 7d000200 sfmvc f0, 4, [r0] + 2230: 00000200 andeq r0, r0, r0, lsl #4 + 2234: 00000400 andeq r0, r0, r0, lsl #8 + 2238: 7d000200 sfmvc f0, 4, [r0] + 223c: 00000404 andeq r0, r0, r4, lsl #8 + 2240: 00002200 andeq r2, r0, r0, lsl #4 + 2244: 7d000200 sfmvc f0, 4, [r0] + 2248: 00002210 andeq r2, r0, r0, lsl r2 + 224c: 00002c00 andeq r2, r0, r0, lsl #24 + 2250: 7d000200 sfmvc f0, 4, [r0] + ... + 225c: 00000400 andeq r0, r0, r0, lsl #8 + 2260: 00002c00 andeq r2, r0, r0, lsl #24 + 2264: 91000200 tstls r0, r0, lsl #4 + 2268: 00000070 andeq r0, r0, r0, ror r0 + ... + 2274: 00000200 andeq r0, r0, r0, lsl #4 + 2278: 7d000200 sfmvc f0, 4, [r0] + 227c: 00000200 andeq r0, r0, r0, lsl #4 + 2280: 00002600 andeq r2, r0, r0, lsl #12 + 2284: 7d000200 sfmvc f0, 4, [r0] + 2288: 00002610 andeq r2, r0, r0, lsl r6 + 228c: 00003600 andeq r3, r0, r0, lsl #12 + 2290: 7d000200 sfmvc f0, 4, [r0] + 2294: 00003618 andeq r3, r0, r8, lsl r6 + 2298: 00003800 andeq r3, r0, r0, lsl #16 + 229c: 7d000200 sfmvc f0, 4, [r0] + 22a0: 00000010 andeq r0, r0, r0, lsl r0 + ... + 22b4: 00000200 andeq r0, r0, r0, lsl #4 + 22b8: 7d000200 sfmvc f0, 4, [r0] + 22bc: 00000200 andeq r0, r0, r0, lsl #4 + 22c0: 00000800 andeq r0, r0, r0, lsl #16 + 22c4: 7d000200 sfmvc f0, 4, [r0] + 22c8: 00000808 andeq r0, r0, r8, lsl #16 + 22cc: 00001800 andeq r1, r0, r0, lsl #16 + 22d0: 7d000200 sfmvc f0, 4, [r0] + 22d4: 00001810 andeq r1, r0, r0, lsl r8 + 22d8: 00002000 andeq r2, r0, r0 + 22dc: 7d000200 sfmvc f0, 4, [r0] + 22e0: 00000008 andeq r0, r0, r8 + ... + 22ec: 00000200 andeq r0, r0, r0, lsl #4 + 22f0: 7d000200 sfmvc f0, 4, [r0] + 22f4: 00000200 andeq r0, r0, r0, lsl #4 + 22f8: 0000c400 andeq ip, r0, r0, lsl #8 + 22fc: 7d000200 sfmvc f0, 4, [r0] + 2300: 00000010 andeq r0, r0, r0, lsl r0 + 2304: 00000000 andeq r0, r0, r0 + 2308: 00000200 andeq r0, r0, r0, lsl #4 + 230c: 00000600 andeq r0, r0, r0, lsl #12 + 2310: 50000100 andpl r0, r0, r0, lsl #2 + 2314: 00000006 andeq r0, r0, r6 + 2318: 00000014 andeq r0, r0, r4, lsl r0 + 231c: 00140000 andseq r0, r4, r0 + 2320: 00180000 andseq r0, r8, r0 + 2324: 00010000 andeq r0, r1, r0 + 2328: 00001850 andeq r1, r0, r0, asr r8 + 232c: 00004a00 andeq r4, r0, r0, lsl #20 + 2330: 4a000000 bmi 2338 <__USR_stack_size+0x1b38> + 2334: 4e000000 cdpmi 0, 0, cr0, cr0, cr0, {0} + 2338: 01000000 tsteq r0, r0 + 233c: 004e5000 subeq r5, lr, r0 + 2340: 00700000 rsbseq r0, r0, r0 + 2344: 00000000 andeq r0, r0, r0 + 2348: 00000070 andeq r0, r0, r0, ror r0 + 234c: 00000074 andeq r0, r0, r4, ror r0 + 2350: 74500001 ldrbvc r0, [r0], #-1 + 2354: 82000000 andhi r0, r0, #0 ; 0x0 + 2358: 00000000 andeq r0, r0, r0 + 235c: 00008200 andeq r8, r0, r0, lsl #4 + 2360: 00008600 andeq r8, r0, r0, lsl #12 + 2364: 50000100 andpl r0, r0, r0, lsl #2 + 2368: 00000086 andeq r0, r0, r6, lsl #1 + 236c: 000000a6 andeq r0, r0, r6, lsr #1 + 2370: 00a60000 adceq r0, r6, r0 + 2374: 00aa0000 adceq r0, sl, r0 + 2378: 00010000 andeq r0, r1, r0 + 237c: 0000aa50 andeq sl, r0, r0, asr sl + 2380: 0000c400 andeq ip, r0, r0, lsl #8 + ... + 238c: 02000000 andeq r0, r0, #0 ; 0x0 + 2390: 06000000 streq r0, [r0], -r0 + 2394: 01000000 tsteq r0, r0 + 2398: 00065100 andeq r5, r6, r0, lsl #2 + 239c: 00140000 andseq r0, r4, r0 + 23a0: 00000000 andeq r0, r0, r0 + 23a4: 00000014 andeq r0, r0, r4, lsl r0 + 23a8: 0000002a andeq r0, r0, sl, lsr #32 + 23ac: 2a510001 bcs 14423b8 + 23b0: 30000000 andcc r0, r0, r0 + 23b4: 00000000 andeq r0, r0, r0 + 23b8: 00003000 andeq r3, r0, r0 + 23bc: 00003400 andeq r3, r0, r0, lsl #8 + 23c0: 51000100 tstpl r0, r0, lsl #2 + 23c4: 00000034 andeq r0, r0, r4, lsr r0 + 23c8: 0000004a andeq r0, r0, sl, asr #32 + 23cc: 004a0000 subeq r0, sl, r0 + 23d0: 00600000 rsbeq r0, r0, r0 + 23d4: 00010000 andeq r0, r1, r0 + 23d8: 00006051 andeq r6, r0, r1, asr r0 + 23dc: 00006000 andeq r6, r0, r0 + 23e0: 60000000 andvs r0, r0, r0 + 23e4: 64000000 strvs r0, [r0] + 23e8: 01000000 tsteq r0, r0 + 23ec: 00645100 rsbeq r5, r4, r0, lsl #2 + 23f0: 00c40000 sbceq r0, r4, r0 + ... + 2400: 00000002 andeq r0, r0, r2 + 2404: 000000a6 andeq r0, r0, r6, lsr #1 + 2408: 70910002 addsvc r0, r1, r2 + 240c: 000000a6 andeq r0, r0, r6, lsr #1 + 2410: 000000c4 andeq r0, r0, r4, asr #1 + ... + 2420: 00020000 andeq r0, r2, r0 + 2424: 00020000 andeq r0, r2, r0 + 2428: 0002007d andeq r0, r2, sp, ror r0 + 242c: 00220000 eoreq r0, r2, r0 + 2430: 00020000 andeq r0, r2, r0 + 2434: 0022107d eoreq r1, r2, sp, ror r0 + 2438: 00240000 eoreq r0, r4, r0 + 243c: 00020000 andeq r0, r2, r0 + 2440: 00240c7d eoreq r0, r4, sp, ror ip + 2444: 00280000 eoreq r0, r8, r0 + 2448: 00020000 andeq r0, r2, r0 + 244c: 0028047d eoreq r0, r8, sp, ror r4 + 2450: 002a0000 eoreq r0, sl, r0 + 2454: 00020000 andeq r0, r2, r0 + 2458: 0000007d andeq r0, r0, sp, ror r0 + 245c: 00000000 andeq r0, r0, r0 + 2460: 00040000 andeq r0, r4, r0 + 2464: 001e0000 andseq r0, lr, r0 + 2468: 00010000 andeq r0, r1, r0 + 246c: 00001e54 andeq r1, r0, r4, asr lr + 2470: 00002a00 andeq r2, r0, r0, lsl #20 + ... + 247c: 08000000 stmdaeq r0, {} + 2480: 2a000000 bcs 2488 <__USR_stack_size+0x1c88> + 2484: 01000000 tsteq r0, r0 + 2488: 00005500 andeq r5, r0, r0, lsl #10 + 248c: 00000000 andeq r0, r0, r0 + ... + +Disassembly of section .debug_macinfo: + +00000000 <.debug_macinfo>: + 0: 03040003 movweq r0, #16387 ; 0x4003 + 4: 0304010d movweq r0, #16653 ; 0x410d + 8: 1103020e tstne r3, lr, lsl #4 + c: 04040403 streq r0, [r4], #-1027 + 10: 00000000 andeq r0, r0, r0 + 14: 03010003 movweq r0, #4099 ; 0x1003 + 18: 0304040d movweq r0, #17421 ; 0x440d + 1c: 1403060e strne r0, [r3], #-1550 + 20: 05190307 ldreq r0, [r9, #-775] + 24: 081a0304 ldmdaeq sl, {r2, r8, r9} + 28: 03040404 movweq r0, #17412 ; 0x4404 + 2c: 0304090f movweq r0, #18703 ; 0x490f + 30: 11030210 tstne r3, r0, lsl r2 + 34: 04040403 streq r0, [r4], #-1027 + 38: 00000000 andeq r0, r0, r0 + 3c: 03080003 movweq r0, #32771 ; 0x8003 + 40: 1703030e strne r0, [r3, -lr, lsl #6] + 44: 02190304 andseq r0, r9, #268435456 ; 0x10000000 + 48: 04011203 streq r1, [r1], #-515 + 4c: 051a0304 ldreq r0, [sl, #-772] + 50: 03040404 movweq r0, #17412 ; 0x4404 + 54: 1003070f andne r0, r3, pc, lsl #14 + 58: 04040406 streq r0, [r4], #-1030 + 5c: 00000000 andeq r0, r0, r0 + 60: 03010003 movweq r0, #4099 ; 0x1003 + 64: 0f030213 svceq 0x00030213 + 68: 07140306 ldreq r0, [r4, -r6, lsl #6] + 6c: 03041903 movweq r1, #18691 ; 0x4903 + 70: 04040312 streq r0, [r4], #-786 + 74: 04081a03 streq r1, [r8], #-2563 + 78: 10030404 andne r0, r3, r4, lsl #8 + 7c: 04040405 streq r0, [r4], #-1029 + 80: 00000000 andeq r0, r0, r0 + 84: 03010003 movweq r0, #4099 ; 0x1003 + 88: 15030213 strne r0, [r3, #-531] + 8c: 16030403 strne r0, [r3], -r3, lsl #8 + 90: 06140305 ldreq r0, [r4], -r5, lsl #6 + 94: 04041903 streq r1, [r4], #-2307 + 98: 04071a03 streq r1, [r7], #-2563 + 9c: 17030404 strne r0, [r3, -r4, lsl #8] + a0: 09110308 ldmdbeq r1, {r3, r8, r9} + a4: 04040404 streq r0, [r4], #-1028 + a8: 00000000 andeq r0, r0, r0 + ac: 030a0003 movweq r0, #40963 ; 0xa003 + b0: 0304010d movweq r0, #16653 ; 0x410d + b4: 1103030e tstne r3, lr, lsl #6 + b8: 02190305 andseq r0, r9, #335544320 ; 0x14000000 + bc: 041a0304 ldreq r0, [sl], #-772 + c0: 03040404 movweq r0, #17412 ; 0x4404 + c4: 03040810 movweq r0, #18448 ; 0x4810 + c8: 0e030c12 mcreq 12, 0, r0, cr3, cr2, {0} + cc: 0304040b movweq r0, #17419 ; 0x440b + d0: 11030d13 tstne r3, r3, lsl sp + d4: 060f0309 streq r0, [pc], -r9, lsl #6 + d8: 03040404 movweq r0, #17412 ; 0x4404 + dc: 04040714 streq r0, [r4], #-1812 + e0: 00000000 andeq r0, r0, r0 + e4: 03090003 movweq r0, #36867 ; 0x9003 + e8: 0304030c movweq r0, #17164 ; 0x430c + ec: 0304020d movweq r0, #16909 ; 0x420d + f0: 0304010e movweq r0, #16654 ; 0x410e + f4: 1403060f strne r0, [r3], #-1551 + f8: 05190307 ldreq r0, [r9, #-775] + fc: 081a0304 ldmdaeq sl, {r2, r8, r9} + 100: 03040404 movweq r0, #17412 ; 0x4404 + 104: 04040410 streq r0, [r4], #-1040 + 108: 00000000 andeq r0, r0, r0 + 10c: 030b0003 movweq r0, #45059 ; 0xb003 + 110: 0e03090e cdpeq 9, 0, cr0, cr3, cr14, {0} + 114: 010f0308 tsteq pc, r8, lsl #6 + 118: 03040404 movweq r0, #17412 ; 0x4404 + 11c: 0304040f movweq r0, #17423 ; 0x440f + 120: 11030c10 tstne r3, r0, lsl ip + 124: 12030406 andne r0, r3, #100663296 ; 0x6000000 + 128: 050f0307 streq r0, [pc, #-775] ; fffffe29 + 12c: 13030404 movwne r0, #13316 ; 0x3404 + 130: 1403040a strne r0, [r3], #-1034 + 134: 15030402 strne r0, [r3, #-1026] + 138: 04040403 streq r0, [r4], #-1027 + 13c: 00000000 andeq r0, r0, r0 + 140: 030f0003 movweq r0, #61443 ; 0xf003 + 144: 1903030e stmdbne r3, {r1, r2, r3, r8, r9} + 148: 01120302 tsteq r2, r2, lsl #6 + 14c: 1a030404 bne c1164 + 150: 03040404 movweq r0, #17412 ; 0x4404 + 154: 03040510 movweq r0, #17680 ; 0x4510 + 158: 11030611 tstne r3, r1, lsl r6 + 15c: 03040408 movweq r0, #17416 ; 0x4408 + 160: 03040712 movweq r0, #18194 ; 0x4712 + 164: 03040913 movweq r0, #18707 ; 0x4913 + 168: 03040b14 movweq r0, #19220 ; 0x4b14 + 16c: 0f030e15 svceq 0x00030e15 + 170: 1003040c andne r0, r3, ip, lsl #8 + 174: 1103040d tstne r3, sp, lsl #8 + 178: 0404040a streq r0, [r4], #-1034 + 17c: 00000000 andeq r0, r0, r0 + 180: 030a0003 movweq r0, #40963 ; 0xa003 + 184: 0f03090e svceq 0x0003090e + 188: 010f0308 tsteq pc, r8, lsl #6 + 18c: 10030404 andne r0, r3, r4, lsl #8 + 190: 05170304 ldreq r0, [r7, #-772] + 194: 04031903 streq r1, [r3], #-2307 + 198: 04061a03 streq r1, [r6], #-2563 + 19c: 11030404 tstne r3, r4, lsl #8 + 1a0: 03040402 movweq r0, #17410 ; 0x4402 + 1a4: 0404070f streq r0, [r4], #-1807 + 1a8: 00000000 andeq r0, r0, r0 + 1ac: 03010003 movweq r0, #4099 ; 0x1003 + 1b0: 0304030e movweq r0, #17166 ; 0x430e + 1b4: 0e03070f cdpeq 7, 0, cr0, cr3, cr15, {0} + 1b8: 0a110306 beq 440dd8 + 1bc: 04051903 streq r1, [r5], #-2307 + 1c0: 04081a03 streq r1, [r8], #-2563 + 1c4: 03040404 movweq r0, #17412 ; 0x4404 + 1c8: 03040d10 movweq r0, #19728 ; 0x4d10 + 1cc: 12030211 andne r0, r3, #268435457 ; 0x10000001 + 1d0: 13030409 movwne r0, #13321 ; 0x3409 + 1d4: 0c11030b ldceq 3, cr0, [r1], {11} + 1d8: 14030404 strne r0, [r3], #-1028 + 1dc: 04040404 streq r0, [r4], #-1028 + 1e0: 00000000 andeq r0, r0, r0 + 1e4: 03100003 tsteq r0, #3 ; 0x3 + 1e8: 0e030e0e cdpeq 14, 0, cr0, cr3, cr14, {0} + 1ec: 010f030b tsteq pc, fp, lsl #6 + 1f0: 0f030404 svceq 0x00030404 + 1f4: 0304040c movweq r0, #17420 ; 0x440c + 1f8: 11030f10 tstne r3, r0, lsl pc + 1fc: 12030406 andne r0, r3, #100663296 ; 0x6000000 + 200: 050f0309 streq r0, [pc, #-777] ; fffffeff + 204: 13030404 movwne r0, #13316 ; 0x3404 + 208: 1403040d strne r0, [r3], #-1037 + 20c: 15030403 strne r0, [r3, #-1027] + 210: 03040404 movweq r0, #17412 ; 0x4404 + 214: 03040711 movweq r0, #18193 ; 0x4711 + 218: 03040a12 movweq r0, #18962 ; 0x4a12 + 21c: 03040813 movweq r0, #18451 ; 0x4813 + 220: 04040214 streq r0, [r4], #-532 + 224: 00000000 andeq r0, r0, r0 + 228: 03030003 movweq r0, #12291 ; 0x3003 + 22c: 0503020e streq r0, [r3, #-526] + 230: 04040401 streq r0, [r4], #-1025 + 234: 00000000 andeq r0, r0, r0 + 238: 03030003 movweq r0, #12291 ; 0x3003 + 23c: 03041a0e movweq r1, #18958 ; 0x4a0e + 240: 03041b0f movweq r1, #19215 ; 0x4b0f + 244: 11031c10 tstne r3, r0, lsl ip + 248: 0304041e movweq r0, #17438 ; 0x441e + 24c: 12031d11 andne r1, r3, #1088 ; 0x440 + 250: 0304040a movweq r0, #17418 ; 0x440a + 254: 03042012 movweq r2, #16402 ; 0x4012 + 258: 03041f13 movweq r1, #20243 ; 0x4f13 + 25c: 03042214 movweq r2, #16916 ; 0x4214 + 260: 11032315 tstne r3, r5, lsl r3 + 264: 11170310 tstne r7, r0, lsl r3 + 268: 040f1903 streq r1, [pc], #2307 ; 270 <__ABT_stack_size+0x170> + 26c: 04121a03 ldreq r1, [r2], #-2563 + 270: 03040404 movweq r0, #17412 ; 0x4404 + 274: 03042516 movweq r2, #17686 ; 0x4516 + 278: 11032717 tstne r3, r7, lsl r7 + 27c: 0304040b movweq r0, #17419 ; 0x440b + 280: 10032618 andne r2, r3, r8, lsl r6 + 284: 11030424 tstne r3, r4, lsr #8 + 288: 03040421 movweq r0, #17441 ; 0x4421 + 28c: 03042819 movweq r2, #18457 ; 0x4819 + 290: 0304131a movweq r1, #17178 ; 0x431a + 294: 0304141c movweq r1, #17436 ; 0x441c + 298: 0e03161d mcreq 6, 0, r1, cr3, cr13, {0} + 29c: 03040415 movweq r0, #17429 ; 0x4415 + 2a0: 0304171f movweq r1, #18207 ; 0x471f + 2a4: 03041821 movweq r1, #18465 ; 0x4821 + 2a8: 03040d22 movweq r0, #19746 ; 0x4d22 + 2ac: 03040c23 movweq r0, #19491 ; 0x4c23 + 2b0: 12030924 andne r0, r3, #589824 ; 0x90000 + 2b4: 14030419 strne r0, [r3], #-1049 + 2b8: 0304040e movweq r0, #17422 ; 0x440e + 2bc: 03040525 movweq r0, #17701 ; 0x4525 + 2c0: 03040726 movweq r0, #18214 ; 0x4726 + 2c4: 11030427 tstne r3, r7, lsr #8 + 2c8: 03040406 movweq r0, #17414 ; 0x4406 + 2cc: 03040828 movweq r0, #18472 ; 0x4828 + 2d0: 24030229 strcs r0, [r3], #-553 + 2d4: 04040401 streq r0, [r4], #-1025 + 2d8: 00000000 andeq r0, r0, r0 + +Disassembly of section .iar.debug_line: + +00000000 <.iar.debug_line>: + 0: 00000062 andeq r0, r0, r2, rrx + 4: 3d840001 stccc 0, cr0, [r4, #4] + 8: 00010040 andeq r0, r1, r0, asr #32 + c: bb020000 bllt 80014 + 10: 00000001 andeq r0, r0, r1 + 14: 51000000 tstpl r0, r0 + 18: 19d50001 ldmibne r5, {r0}^ + 1c: 02010001 andeq r0, r1, #1 ; 0x1 + 20: 11780500 cmnne r8, r0, lsl #10 + 24: 000e296c andeq r2, lr, ip, ror #18 + 28: 01010100 tsteq r1, r0, lsl #2 + 2c: 01000101 tsteq r0, r1, lsl #2 + 30: 01010100 tsteq r1, r0, lsl #2 + 34: 022fd501 eoreq sp, pc, #4194304 ; 0x400000 + 38: 02021200 andeq r1, r2, #0 ; 0x0 + 3c: 0101ff00 tstpeq r1, r0, lsl #30 + 40: 040a0108 streq r0, [sl], #-264 + 44: 01040308 tsteq r4, r8, lsl #6 + 48: 1501fb03 strne pc, [r1, #-2819] + 4c: 0601032a streq r0, [r1], -sl, lsr #6 + 50: 0a995f0e beq fe657c90 + 54: 1b7f0600 blne 1fc185c + 58: 037e0ac6 cmneq lr, #811008 ; 0xc6000 + 5c: 097e587d ldmdbeq lr!, {r0, r2, r3, r4, r5, r6, fp, ip, lr}^ + 60: 01037b0a tsteq r3, sl, lsl #22 + 64: 0062042c rsbeq r0, r2, ip, lsr #8 + 68: 00010000 andeq r0, r1, r0 + 6c: 00403da8 subeq r3, r0, r8, lsr #27 + 70: 00000001 andeq r0, r0, r1 + 74: 0002cb02 andeq ip, r2, r2, lsl #22 + 78: 00000000 andeq r0, r0, r0 + 7c: 00015100 andeq r5, r1, r0, lsl #2 + 80: 000119d5 ldrdeq r1, [r1], -r5 + 84: 05000201 streq r0, [r0, #-513] + 88: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 8c: 0100000e tsteq r0, lr + 90: 01010101 tsteq r1, r1, lsl #2 + 94: 01000100 tsteq r0, r0, lsl #2 + 98: d5010101 strle r0, [r1, #-257] + 9c: 0f00022f svceq 0x0000022f + a0: 8b010202 blhi 408b0 + a4: 01080102 tsteq r8, r2, lsl #2 + a8: 0308040a movweq r0, #33802 ; 0x840a + ac: 87030104 strhi r0, [r3, -r4, lsl #2] + b0: 032a1502 teqeq sl, #8388608 ; 0x800000 + b4: 5f110601 svcpl 0x00110601 + b8: 06000a99 undefined + bc: 0ac61b7c beq ff186eb4 + c0: 587d037e ldmdapl sp!, {r1, r2, r3, r4, r5, r6, r8, r9}^ + c4: 7b0a097e blvc 2826c4 + c8: 042c0103 strteq r0, [ip], #-259 + cc: 000002f6 strdeq r0, [r0], -r6 + d0: 19640001 stmdbne r4!, {r0}^ + d4: 000d0040 andeq r0, sp, r0, asr #32 + d8: f7020000 undefined instruction 0xf7020000 + dc: 0100000d tsteq r0, sp + e0: 0000876d andeq r8, r0, sp, ror #14 + e4: 00848101 addeq r8, r4, r1, lsl #2 + e8: 85750100 ldrbhi r0, [r5, #-256]! + ec: a9010000 stmdbge r1, {} + f0: 01000083 smlabbeq r0, r3, r0, r0 + f4: 000086e5 andeq r8, r0, r5, ror #13 + f8: 0082d901 addeq sp, r2, r1, lsl #18 + fc: 837d0100 cmnhi sp, #0 ; 0x0 + 100: a9010000 stmdbge r1, {} + 104: 0100403d tsteq r0, sp, lsr r0 + 108: 00403d85 subeq r3, r0, r5, lsl #27 + 10c: 00169302 andseq r9, r6, r2, lsl #6 + 110: 1af70200 bne ffdc0918 + 114: e7020000 str r0, [r2, -r0] + 118: 00000019 andeq r0, r0, r9, lsl r0 + 11c: 51000000 tstpl r0, r0 + 120: 19d50001 ldmibne r5, {r0}^ + 124: 02010001 andeq r0, r1, #1 ; 0x1 + 128: 11780500 cmnne r8, r0, lsl #10 + 12c: 000e296c andeq r2, lr, ip, ror #18 + 130: 01010100 tsteq r1, r0, lsl #2 + 134: 01000101 tsteq r0, r1, lsl #2 + 138: 01010100 tsteq r1, r0, lsl #2 + 13c: 0586d501 streq sp, [r6, #1281] + 140: 01f90002 mvnseq r0, r2 + 144: a4000202 strge r0, [r0], #-514 + 148: 01b40113 undefined instruction 0x01b40113 + 14c: 04030801 streq r0, [r3], #-2049 + 150: 13a00301 movne r0, #67108864 ; 0x4000000 + 154: 1e062a15 mcrne 10, 0, r2, cr6, cr5, {0} + 158: 020d2429 andeq r2, sp, #687865856 ; 0x29000000 + 15c: 0c08b12f stfeqd f3, [r8], {47} + 160: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 164: b12f0408 teqlt pc, r8, lsl #8 + 168: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 16c: 04082215 streq r2, [r8], #-533 + 170: 0c08b12f stfeqd f3, [r8], {47} + 174: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 178: b12f0408 teqlt pc, r8, lsl #8 + 17c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 180: 0408cc15 streq ip, [r8], #-3093 + 184: 0c08b12f stfeqd f3, [r8], {47} + 188: 20170630 andscs r0, r7, r0, lsr r6 + 18c: b12f0408 teqlt pc, r8, lsl #8 + 190: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 194: 030d7d10 movweq r7, #56592 ; 0xdd10 + 198: 0c08b12f stfeqd f3, [r8], {47} + 19c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 1a0: b12f0408 teqlt pc, r8, lsl #8 + 1a4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1a8: 04082215 streq r2, [r8], #-533 + 1ac: 0c08b12f stfeqd f3, [r8], {47} + 1b0: cd140630 ldcgt 6, cr0, [r4, #-192] + 1b4: b12f0408 teqlt pc, r8, lsl #8 + 1b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1bc: 04087715 streq r7, [r8], #-1813 + 1c0: 0c08b12f stfeqd f3, [r8], {47} + 1c4: 20170630 andscs r0, r7, r0, lsr r6 + 1c8: b12f0408 teqlt pc, r8, lsl #8 + 1cc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1d0: 040d2019 streq r2, [sp], #-25 + 1d4: 0c08cf2f stceq 15, cr12, [r8], {47} + 1d8: 04150630 ldreq r0, [r5], #-1584 + 1dc: cf2f0408 svcgt 0x002f0408 + 1e0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1e4: 04080415 streq r0, [r8], #-1045 + 1e8: 0c08cf2f stceq 15, cr12, [r8], {47} + 1ec: 04150630 ldreq r0, [r5], #-1584 + 1f0: cf2f0408 svcgt 0x002f0408 + 1f4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1f8: 04080415 streq r0, [r8], #-1045 + 1fc: 0c08cf2f stceq 15, cr12, [r8], {47} + 200: 04150630 ldreq r0, [r5], #-1584 + 204: cf2f0408 svcgt 0x002f0408 + 208: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 20c: 04080217 streq r0, [r8], #-535 + 210: 0c08cf2f stceq 15, cr12, [r8], {47} + 214: 600f0630 andvs r0, pc, r0, lsr r6 + 218: cf2f050d svcgt 0x002f050d + 21c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 220: 04080415 streq r0, [r8], #-1045 + 224: 0c08cf2f stceq 15, cr12, [r8], {47} + 228: 04150630 ldreq r0, [r5], #-1584 + 22c: cf2f0408 svcgt 0x002f0408 + 230: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 234: 04080415 streq r0, [r8], #-1045 + 238: 0c08cf2f stceq 15, cr12, [r8], {47} + 23c: 04150630 ldreq r0, [r5], #-1584 + 240: cf2f0408 svcgt 0x002f0408 + 244: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 248: 04080415 streq r0, [r8], #-1045 + 24c: 0c08cf2f stceq 15, cr12, [r8], {47} + 250: 02170630 andseq r0, r7, #50331648 ; 0x3000000 + 254: cf2f0408 svcgt 0x002f0408 + 258: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 25c: 03063703 movweq r3, #26371 ; 0x6703 + 260: 060d561b undefined + 264: 0c084e3d stceq 14, cr4, [r8], {61} + 268: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 26c: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} + 270: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 274: 070d1d1b smladeq sp, fp, sp, r1 + 278: 0c08eb4a stceq 11, cr14, [r8], {74} + 27c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 280: eb4a0408 bl 12812a8 + 284: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 288: 04087815 streq r7, [r8], #-2069 + 28c: 0c08eb4a stceq 11, cr14, [r8], {74} + 290: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 294: eb4a0408 bl 12812bc + 298: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 29c: 04087815 streq r7, [r8], #-2069 + 2a0: 0c08eb4a stceq 11, cr14, [r8], {74} + 2a4: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 2a8: eb4a0408 bl 12812d0 + 2ac: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2b0: 04082216 streq r2, [r8], #-534 + 2b4: 0c082566 cfstr32eq mvfx2, [r8], {102} + 2b8: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 2bc: 25660408 strbcs r0, [r6, #-1032]! + 2c0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2c4: 2a0e7906 bcs 39e6e4 + 2c8: 4e3d080d cdpmi 8, 3, cr0, cr13, cr13, {0} + 2cc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2d0: 04082215 streq r2, [r8], #-533 + 2d4: 0c084e3d stceq 14, cr4, [r8], {61} + 2d8: 76060630 undefined + 2dc: 030d220e movweq r2, #53774 ; 0xd20e + 2e0: 0c08b12f stfeqd f3, [r8], {47} + 2e4: 20170630 andscs r0, r7, r0, lsr r6 + 2e8: b12f0408 teqlt pc, r8, lsl #8 + 2ec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2f0: 290e7106 stmdbcs lr, {r1, r2, r8, ip, sp, lr} + 2f4: 1422090d strtne r0, [r2], #-2317 + 2f8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2fc: 711b0a06 tstvc fp, r6, lsl #20 + 300: b12f030d teqlt pc, sp, lsl #6 + 304: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 308: 04082017 streq r2, [r8], #-23 + 30c: 0c08b12f stfeqd f3, [r8], {47} + 310: 71060630 tstvc r6, r0, lsr r6 + 314: 0a0d290e beq 34a754 + 318: 0c081422 cfstrseq mvf1, [r8], {34} + 31c: 17030630 smladxne r3, r0, r6, r0 + 320: 7e1b0906 cdpvc 9, 1, cr0, cr11, cr6, {0} + 324: 14220b0d strtne r0, [r2], #-2829 + 328: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 32c: 290e7c06 stmdbcs lr, {r1, r2, sl, fp, ip, sp, lr} + 330: 1422090d strtne r0, [r2], #-2317 + 334: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 338: 731b0706 tstvc fp, #1572864 ; 0x180000 + 33c: 14220b0d strtne r0, [r2], #-2829 + 340: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 344: 04087916 streq r7, [r8], #-2326 + 348: 0c081422 cfstrseq mvf1, [r8], {34} + 34c: cf140630 svcgt 0x00140630 + 350: 14220408 strtne r0, [r2], #-1032 + 354: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 358: 731b0e06 tstvc fp, #96 ; 0x60 + 35c: 14220408 strtne r0, [r2], #-1032 + 360: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 364: 0408d60e streq sp, [r8], #-1550 + 368: 0c081422 cfstrseq mvf1, [r8], {34} + 36c: 24140630 ldrcs r0, [r4], #-1584 + 370: 14220408 strtne r0, [r2], #-1032 + 374: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 378: 2c0e7806 stccs 8, cr7, [lr], {6} + 37c: 14220408 strtne r0, [r2], #-1032 + 380: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 384: 090d7b11 stmdbeq sp, {r0, r4, r8, r9, fp, ip, sp, lr} + 388: 0c081422 cfstrseq mvf1, [r8], {34} + 38c: 0a060630 beq 181c54 + 390: 0b0d721b bleq 35cc04 + 394: 0c081422 cfstrseq mvf1, [r8], {34} + 398: 78060630 stmdavc r6, {r4, r5, r9, sl} + 39c: 090d290e stmdbeq sp, {r1, r2, r3, r8, fp, sp} + 3a0: 0c081422 cfstrseq mvf1, [r8], {34} + 3a4: 10060630 andne r0, r6, r0, lsr r6 + 3a8: 0c0d731b stceq 3, cr7, [sp], {27} + 3ac: 0c081422 cfstrseq mvf1, [r8], {34} + 3b0: d2110630 andsle r0, r1, #50331648 ; 0x3000000 + 3b4: 32220d0d eorcc r0, r2, #832 ; 0x340 + 3b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3bc: 0a095e11 beq 257c08 + 3c0: 77067ecf strvc r7, [r6, -pc, asr #29] + 3c4: 00a3ec36 adceq lr, r3, r6, lsr ip + 3c8: 00010000 andeq r0, r1, r0 + 3cc: 00401b56 subeq r1, r0, r6, asr fp + 3d0: 00000002 andeq r0, r0, r2 + 3d4: 000eeb02 andeq lr, lr, r2, lsl #22 + 3d8: 22370200 eorscs r0, r7, #0 ; 0x0 + 3dc: 00000000 andeq r0, r0, r0 + 3e0: 01510000 cmpeq r1, r0 + 3e4: 0119d500 tsteq r9, r0, lsl #10 + 3e8: 00020100 andeq r0, r2, r0, lsl #2 + 3ec: 6c117805 ldcvs 8, cr7, [r1], {5} + 3f0: 00000e29 andeq r0, r0, r9, lsr #28 + 3f4: 01010101 tsteq r1, r1, lsl #2 + 3f8: 00010001 andeq r0, r1, r1 + 3fc: 01010101 tsteq r1, r1, lsl #2 + 400: 00026bd5 ldrdeq r6, [r2], -r5 + 404: 0102022c tsteq r2, ip, lsr #4 + 408: 2c0114e5 cfstrscs mvf1, [r1], {229} + 40c: 04030801 streq r0, [r3], #-2049 + 410: 14e10301 strbtne r0, [r1], #769 + 414: 08052a15 stmdaeq r5, {r0, r2, r4, r9, fp, sp} + 418: 39291306 stmdbcc r9!, {r1, r2, r8, r9, ip} + 41c: fe127a05 cdp2 10, 1, cr7, cr2, cr5, {0} + 420: 040af940 streq pc, [sl], #-2368 + 424: 0f06612b svceq 0x0006612b + 428: 020a5444 andeq r5, sl, #1140850688 ; 0x44000000 + 42c: 63296a06 teqvs r9, #24576 ; 0x6000 + 430: 0a097028 beq 25c4d8 + 434: 29760602 ldmdbcs r6!, {r1, r9, sl}^ + 438: 22030356 andcs r0, r3, #1476395009 ; 0x58000001 + 43c: 037f0ad1 cmneq pc, #856064 ; 0xd1000 + 440: 4421067e strtmi r0, [r1], #-1662 + 444: 03060a3d movweq r0, #27197 ; 0x6a3d + 448: 5f710601 svcpl 0x00710601 + 44c: 0dae3fda stceq 15, cr3, [lr, #872]! + 450: 14030502 strne r0, [r3], #-1282 + 454: 087c0a9f ldmdaeq ip!, {r0, r1, r2, r3, r4, r7, r9, fp}^ + 458: 0506300c streq r3, [r6, #-12] + 45c: 0931357f ldmdbeq r1!, {r0, r1, r2, r3, r4, r5, r6, r8, sl, ip, sp} + 460: 8061780a rsbhi r7, r1, sl, lsl #16 + 464: 036e0a09 cmneq lr, #36864 ; 0x9000 + 468: 36700601 ldrbtcc r0, [r0], -r1, lsl #12 + 46c: 0000e8db ldrdeq lr, [r0], -fp + 470: b4000200 strlt r0, [r0], #-512 + 474: 0300401b movweq r4, #27 ; 0x1b + 478: 02000000 andeq r0, r0, #0 ; 0x0 + 47c: 00001063 andeq r1, r0, r3, rrx + 480: 0024f602 eoreq pc, r4, r2, lsl #12 + 484: 1e1f0200 cdpne 2, 1, cr0, cr15, cr0, {0} + 488: 00000000 andeq r0, r0, r0 + 48c: 00010000 andeq r0, r1, r0 + 490: 22b00000 adcscs r0, r0, #0 ; 0x0 + 494: 01510040 cmpeq r1, r0, asr #32 + 498: 0119d500 tsteq r9, r0, lsl #10 + 49c: 00020100 andeq r0, r2, r0, lsl #2 + 4a0: 6c117805 ldcvs 8, cr7, [r1], {5} + 4a4: 00000e29 andeq r0, r0, r9, lsr #28 + 4a8: 01010101 tsteq r1, r1, lsl #2 + 4ac: 00010001 andeq r0, r1, r1 + 4b0: 01010101 tsteq r1, r1, lsl #2 + 4b4: 000260d5 ldrdeq r6, [r2], -r5 + 4b8: 02020234 andeq r0, r2, #1073741827 ; 0x40000003 + 4bc: 0d0115a0 cfstr32eq mvfx1, [r1, #-640] + 4c0: 03030801 movweq r0, #14337 ; 0x3801 + 4c4: 2906159c stmdbcs r6, {r2, r3, r4, r7, r8, sl, ip} + 4c8: ba2e791b blt b9e93c + 4cc: 72061874 andvc r1, r6, #7602176 ; 0x740000 + 4d0: 06086329 streq r6, [r8], -r9, lsr #6 + 4d4: 3222020c eorcc r0, r2, #-1073741824 ; 0xc0000000 + 4d8: 07070a09 streq r0, [r7, -r9, lsl #20] + 4dc: 7e05b749 cdpvc 7, 0, cr11, cr5, cr9, {2} + 4e0: e7283306 str r3, [r8, -r6, lsl #6]! + 4e4: 4e3d030d cdpmi 3, 3, cr0, cr13, cr13, {0} + 4e8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4ec: 290e6206 stmdbcs lr, {r1, r2, r9, sp, lr} + 4f0: fb367806 blx d9e512 + 4f4: 2e057c03 cdpcs 12, 0, cr7, cr5, cr3, {0} + 4f8: 35291f06 strcc r1, [r9, #-3846]! + 4fc: 62057a0a andvs r7, r5, #40960 ; 0xa000 + 500: 02039820 andeq r9, r3, #2097152 ; 0x200000 + 504: 5e067605 cfmadd32pl mvax0, mvfx7, mvfx6, mvfx5 + 508: 0009b25f andeq fp, r9, pc, asr r2 + 50c: 00010405 andeq r0, r1, r5, lsl #8 + 510: 0b081401 bleq 20551c + 514: 01516922 cmpeq r1, r2, lsr #18 + 518: 023ed518 eorseq sp, lr, #100663296 ; 0x6000000 + 51c: 03031300 movweq r1, #13056 ; 0x3300 + 520: 011bc302 tsteq fp, r2, lsl #6 + 524: 03081012 movweq r1, #32786 ; 0x8012 + 528: bf030404 svclt 0x00030404 + 52c: 032a151b teqeq sl, #113246208 ; 0x6c00000 + 530: 1a010501 bne 4193c + 534: 040a0948 streq r0, [sl], #-2376 + 538: 80330105 eorshi r0, r3, r5, lsl #2 + 53c: e62a7a05 strt r7, [sl], -r5, lsl #20 + 540: f93df93d undefined instruction 0xf93df93d + 544: 7d037d0a stcvc 13, cr7, [r3, #-40] + 548: 03291406 teqeq r9, #100663296 ; 0x6000000 + 54c: 0303020a movweq r0, #12810 ; 0x320a + 550: bd2e3d52 stclt 13, cr3, [lr, #-328]! + 554: 1d760a09 fldmdbsne r6!, {s1-s9} + 558: 00014fbc strheq r4, [r1], -ip + 55c: 24000200 strcs r0, [r0], #-512 + 560: 0200401c andeq r4, r0, #28 ; 0x1c + 564: 02000000 andeq r0, r0, #0 ; 0x0 + 568: 000011f3 strdeq r1, [r0], -r3 + 56c: 00106302 andseq r6, r0, r2, lsl #6 + 570: 00000000 andeq r0, r0, r0 + 574: 00000100 andeq r0, r0, r0, lsl #2 + 578: 4022b000 eormi fp, r2, r0 + 57c: 00015100 andeq r5, r1, r0, lsl #2 + 580: 000119d5 ldrdeq r1, [r1], -r5 + 584: 05000201 streq r0, [r0, #-513] + 588: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 58c: 0100000e tsteq r0, lr + 590: 01010101 tsteq r1, r1, lsl #2 + 594: 01000100 tsteq r0, r0, lsl #2 + 598: d5010101 strle r0, [r1, #-257] + 59c: 0002028e andeq r0, r2, lr, lsl #5 + 5a0: 020201ca andeq r0, r2, #-2147483598 ; 0x80000032 + 5a4: 0115bb03 tsteq r5, r3, lsl #22 + 5a8: 03080154 movweq r0, #33108 ; 0x8154 + 5ac: b7030704 strlt r0, [r3, -r4, lsl #14] + 5b0: 032a1515 teqeq sl, #88080384 ; 0x5400000 + 5b4: 06020505 streq r0, [r2], -r5, lsl #10 + 5b8: 05734402 ldrbeq r4, [r3, #-1026]! + 5bc: 05382606 ldreq r2, [r8, #-1542]! + 5c0: 4d000f7a stcmi 15, cr0, [r0, #-488] + 5c4: 05321811 ldreq r1, [r2, #-2065]! + 5c8: 0a442374 beq 11093a0 + 5cc: 0aad301d beq feb4c648 + 5d0: 2e1c2a03 fmscscs s4, s24, s6 + 5d4: 070a09bd undefined + 5d8: 030aa33e movweq sl, #41790 ; 0xa33e + 5dc: bb360206 bllt d80dfc + 5e0: 8e447b06 fmacdhi d23, d4, d6 + 5e4: 3e040a09 fmacscc s0, s8, s18 + 5e8: 06030af8 undefined + 5ec: 06bb3602 ldrteq r3, [fp], r2, lsl #12 + 5f0: 3ff1367a svccc 0x00f1367a + 5f4: 25030a4d strcs r0, [r3, #-2637] + 5f8: 094bf515 stmdbeq fp, {r0, r2, r4, r8, sl, ip, sp, lr, pc}^ + 5fc: 9c45020a sfmls f0, 2, [r5], {10} + 600: 3a497d66 bcc 125fba0 + 604: 07057803 streq r7, [r5, -r3, lsl #16] + 608: 7a0a0559 bvc 281b74 + 60c: 0603d23b undefined + 610: 1b4c7f05 blne 132022c + 614: 55030a09 strpl r0, [r3, #-2569] + 618: 455443e1 ldrbmi r4, [r4, #-993] + 61c: 037e0a47 cmneq lr, #290816 ; 0x47000 + 620: 4416067e ldrmi r0, [r6], #-1662 + 624: 020a093d andeq r0, sl, #999424 ; 0xf4000 + 628: da5f6506 ble 17d9a48 + 62c: b6360706 ldrtlt r0, [r6], -r6, lsl #14 + 630: 7f037f0a svcvc 0x00037f0a + 634: b17a0206 cmnlt sl, r6, lsl #4 + 638: d95f7506 ldmdble pc, {r1, r2, r8, sl, ip, sp, lr}^ + 63c: ab360206 blge d80e5c + 640: 4e3d020d cdpmi 2, 3, cr0, cr13, cr13, {0} + 644: 08170a09 ldmdaeq r7, {r0, r3, r9, fp} + 648: 0a06300c beq 18c680 + 64c: 49262112 stmdbmi r6!, {r1, r4, r8, sp} + 650: 1c7f62e9 lfmne f6, 2, [pc], #-932 + 654: 417d0ac5 cmnmi sp, r5, asr #21 + 658: 09893fb0 stmibeq r9, {r4, r5, r7, r8, r9, sl, fp, ip, sp} + 65c: fe38020a cdp2 2, 3, cr0, cr8, cr10, {0} + 660: 7f0a6235 svcvc 0x000a6235 + 664: 676f7f03 strbvs r7, [pc, -r3, lsl #30]! + 668: 082ff940 stmdaeq pc!, {r6, r8, fp, ip, sp, lr, pc} + 66c: 48030a09 stmdami r3, {r0, r3, r9, fp} + 670: 45544345 ldrbmi r4, [r4, #-837] + 674: 037e0a47 cmneq lr, #290816 ; 0x47000 + 678: 4416067e ldrmi r0, [r6], #-1662 + 67c: 5f65063d svcpl 0x0065063d + 680: 066c0ada undefined + 684: 090e291d stmdbeq lr, {r0, r2, r3, r4, r8, fp, sp} + 688: 7e067f0a cdpvc 15, 0, cr7, cr6, cr10, {0} + 68c: 02034452 andeq r4, r3, #1375731712 ; 0x52000000 + 690: 52880106 addpl r0, r8, #-2147483647 ; 0x80000001 + 694: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} + 698: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 69c: 160e5e06 strne r5, [lr], -r6, lsl #28 + 6a0: 04050009 streq r0, [r5], #-9 + 6a4: 15010001 strne r0, [r1, #-1] + 6a8: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} + 6ac: 00000172 andeq r0, r0, r2, ror r1 + 6b0: 1dbc0002 ldcne 0, cr0, [ip, #8]! + 6b4: 00020040 andeq r0, r2, r0, asr #32 + 6b8: 23020000 movwcs r0, #8192 ; 0x2000 + 6bc: 02000014 andeq r0, r0, #20 ; 0x14 + 6c0: 00001063 andeq r1, r0, r3, rrx + 6c4: 00000000 andeq r0, r0, r0 + 6c8: 00000001 andeq r0, r0, r1 + 6cc: 004022b0 strheq r2, [r0], #-32 + 6d0: d5000151 strle r0, [r0, #-337] + 6d4: 01000119 tsteq r0, r9, lsl r1 + 6d8: 78050002 stmdavc r5, {r1} + 6dc: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 6e0: 01010000 tsteq r1, r0 + 6e4: 00010101 andeq r0, r1, r1, lsl #2 + 6e8: 01010001 tsteq r1, r1 + 6ec: b1d50101 bicslt r0, r5, r1, lsl #2 + 6f0: f8000202 undefined instruction 0xf8000202 + 6f4: 04020201 streq r0, [r2], #-513 + 6f8: 62011691 andvs r1, r1, #152043520 ; 0x9100000 + 6fc: 04030801 streq r0, [r3], #-2049 + 700: 168d0307 strne r0, [sp], r7, lsl #6 + 704: 05032a15 streq r2, [r3, #-2581] + 708: 02060205 andeq r0, r6, #1342177280 ; 0x50000000 + 70c: 0605d636 undefined + 710: 7a053826 bvc 14e7b0 + 714: 114d000f cmpne sp, pc + 718: 785a3218 ldmdavc sl, {r3, r4, r9, ip, sp}^ + 71c: 77050203 strvc r0, [r5, -r3, lsl #4] + 720: 1f0afe13 svcne 0x000afe13 + 724: 4556ad30 ldrbmi sl, [r6, #-3376] + 728: 030a4548 movweq r4, #42312 ; 0xa548 + 72c: 41561e24 cmpmi r6, r4, lsr #28 + 730: 3e050a09 fmacscc s0, s10, s18 + 734: 06030aa3 streq r0, [r3], -r3, lsr #21 + 738: 06bb360a ldrteq r3, [fp], sl, lsl #12 + 73c: 09c85f73 stmibeq r8, {r0, r1, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 740: 5b31020a blpl c40f70 + 744: ab2d080a blge b42774 + 748: 8c5f030a mrrchi 3, 0, r0, pc, cr10 + 74c: 0a09afe7 beq 26c6f0 + 750: 7ff04602 svcvc 0x00f04602 + 754: 033a490f teqeq sl, #245760 ; 0x3c000 + 758: 66070577 undefined + 75c: 207a0aa2 rsbscs r0, sl, r2, lsr #21 + 760: 03020a98 movweq r0, #10904 ; 0x2a98 + 764: 217f0507 cmncs pc, r7, lsl #10 + 768: 7fac40f0 svcvc 0x00ac40f0 + 76c: 056603ae strbeq r0, [r6, #-942]! + 770: 5f020616 svcpl 0x00020616 + 774: 056e0aa9 strbeq r0, [lr, #-2729]! + 778: 037f397a cmneq pc, #1998848 ; 0x1e8000 + 77c: 7d760519 cfldr64vc mvdx0, [r6, #-100]! + 780: 030a09e9 movweq r0, #43497 ; 0xa9e9 + 784: 5643d011 undefined + 788: 7e0a4745 cdpvc 7, 0, cr4, cr10, cr5, {2} + 78c: 7d03030a stcvc 3, cr0, [r3, #-40] + 790: 3d441606 stclcc 6, cr1, [r4, #-24] + 794: 03020a09 movweq r0, #10761 ; 0x2a09 + 798: 5f650601 svcpl 0x00650601 + 79c: 290706da stmdbcs r7, {r1, r3, r4, r6, r7, r9, sl} + 7a0: 0a7f0a1a beq 1fc3010 + 7a4: 067f0316 undefined + 7a8: 09b17a02 ldmibeq r1!, {r1, r9, fp, ip, sp, lr} + 7ac: 8063150a rsbhi r1, r3, sl, lsl #10 + 7b0: d220170a eorle r1, r0, #2621440 ; 0x280000 + 7b4: 568b8657 pkhtbpl r8, fp, r7, asr #12 + 7b8: 7d0a3953 stcvc 9, cr3, [sl, #-332] + 7bc: ec31b041 ldc 0, cr11, [r1], #-260 + 7c0: 54020a09 strpl r0, [r2], #-2569 + 7c4: 0a623538 beq 188dcac + 7c8: 6f7f037f svcvs 0x007f037f + 7cc: 2ff94067 svccs 0x00f94067 + 7d0: 030a0908 movweq r0, #43272 ; 0xa908 + 7d4: 54434548 strbpl r4, [r3], #-1352 + 7d8: 7e0a4745 cdpvc 7, 0, cr4, cr10, cr5, {2} + 7dc: 16067e03 strne r7, [r6], -r3, lsl #28 + 7e0: 0a093d44 beq 24fcf8 + 7e4: 5f650602 svcpl 0x00650602 + 7e8: 360706da undefined + 7ec: 037f0ab6 cmneq pc, #745472 ; 0xb6000 + 7f0: 7a02067f bvc 821f4 + 7f4: 527506b1 rsbspl r0, r5, #185597952 ; 0xb100000 + 7f8: 4402063c strmi r0, [r2], #-1596 + 7fc: 3d020d48 stccc 13, cr0, [r2, #-288] + 800: 300c084e andcc r0, ip, lr, asr #16 + 804: 05000906 streq r0, [r0, #-2310] + 808: 01000104 tsteq r0, r4, lsl #2 + 80c: 220b0816 andcs r0, fp, #1441792 ; 0x160000 + 810: 08bf2469 ldmeq pc!, {r0, r3, r5, r6, sl, sp} + 814: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 818: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 81c: 60067c0a andvs r7, r6, sl, lsl #24 + 820: 0128160e teqeq r8, lr, lsl #12 + 824: 00020000 andeq r0, r2, r0 + 828: 00401fac subeq r1, r0, ip, lsr #31 + 82c: 00000006 andeq r0, r0, r6 + 830: 00169302 andseq r9, r6, r2, lsl #6 + 834: 84810100 strhi r0, [r1], #256 + 838: 0e020000 cdpeq 0, 0, cr0, cr2, cr0, {0} + 83c: 02000026 andeq r0, r0, #38 ; 0x26 + 840: 000026ee andeq r2, r0, lr, ror #13 + 844: 00837d01 addeq r7, r3, r1, lsl #26 + 848: 84350100 ldrthi r0, [r5], #-256 + 84c: 00000000 andeq r0, r0, r0 + 850: 00010000 andeq r0, r1, r0 + 854: 20440000 subcs r0, r4, r0 + 858: 01510040 cmpeq r1, r0, asr #32 + 85c: 0119d500 tsteq r9, r0, lsl #10 + 860: 00020100 andeq r0, r2, r0, lsl #2 + 864: 6c117805 ldcvs 8, cr7, [r1], {5} + 868: 00000e29 andeq r0, r0, r9, lsr #28 + 86c: 01010101 tsteq r1, r1, lsl #2 + 870: 00010001 andeq r0, r1, r1 + 874: 01010101 tsteq r1, r1, lsl #2 + 878: 000258d5 ldrdeq r5, [r2], -r5 + 87c: 06020228 streq r0, [r2], -r8, lsr #4 + 880: 0a0117c0 beq 46788 + 884: 0403080d streq r0, [r3], #-2061 + 888: 17bc0301 ldrne r0, [ip, r1, lsl #6]! + 88c: 0e062a15 mcreq 10, 0, r2, cr6, cr5, {0} + 890: f83fb736 undefined instruction 0xf83fb736 + 894: b12f020d teqlt pc, sp, lsl #4 + 898: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 89c: 290e7906 stmdbcs lr, {r1, r2, r8, fp, ip, sp, lr} + 8a0: 030c0608 movweq r0, #50696 ; 0xc608 + 8a4: 08067714 stmdaeq r6, {r2, r4, r8, r9, sl, ip, sp, lr} + 8a8: 020d93a3 andeq r9, sp, #-1946157054 ; 0x8c000002 + 8ac: 0c08b12f stfeqd f3, [r8], {47} + 8b0: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 8b4: b12f0408 teqlt pc, r8, lsl #8 + 8b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 8bc: 0608290e streq r2, [r8], -lr, lsl #18 + 8c0: 7714040c ldrvc r0, [r4, -ip, lsl #8] + 8c4: 0009f19a muleq r9, sl, r1 + 8c8: 00010405 andeq r0, r1, r5, lsl #8 + 8cc: 0b081001 bleq 2048d8 + 8d0: 0151cc14 cmpeq r1, r4, lsl ip + 8d4: 0233d512 eorseq sp, r3, #75497472 ; 0x4800000 + 8d8: 03040a00 movweq r0, #18944 ; 0x4a00 + 8dc: 011ac206 tsteq sl, r6, lsl #4 + 8e0: 03080113 movweq r0, #33043 ; 0x8113 + 8e4: be030104 adflts f0, f3, f4 + 8e8: 032a151a teqeq sl, #109051904 ; 0x6800000 + 8ec: 1b35060a blne d4211c + 8f0: 3d050d88 stccc 13, cr0, [r5, #-544] + 8f4: 300c084e andcc r0, ip, lr, asr #16 + 8f8: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 8fc: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 900: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 904: 4c06780a stcmi 8, cr7, [r6], {10} + 908: 0151180e cmpeq r1, lr, lsl #16 + 90c: 023fd536 eorseq sp, pc, #226492416 ; 0xd800000 + 910: 03050a00 movweq r0, #23040 ; 0x5a00 + 914: 011a8506 tsteq sl, r6, lsl #10 + 918: 03080111 movweq r0, #33041 ; 0x8111 + 91c: 81030104 tsthi r3, r4, lsl #2 + 920: 032a151a teqeq sl, #109051904 ; 0x6800000 + 924: 1b3d0609 blne f42150 + 928: 3d060d88 stccc 13, cr0, [r6, #-544] + 92c: 300c084e andcc r0, ip, lr, asr #16 + 930: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 934: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 938: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 93c: 4406780a strmi r7, [r6], #-2058 + 940: 0009170e andeq r1, r9, lr, lsl #14 + 944: 00010405 andeq r0, r1, r5, lsl #8 + 948: 0b081001 bleq 204954 + 94c: 011ecc14 tsteq lr, r4, lsl ip + 950: 00020000 andeq r0, r2, r0 + 954: 00401ffc strdeq r1, [r0], #-252 + 958: 00000006 andeq r0, r0, r6 + 95c: 0017d702 andseq sp, r7, r2, lsl #14 + 960: 84810100 strhi r0, [r1], #256 + 964: 0e020000 cdpeq 0, 0, cr0, cr2, cr0, {0} + 968: 02000026 andeq r0, r0, #38 ; 0x26 + 96c: 000026ee andeq r2, r0, lr, ror #13 + 970: 00837d01 addeq r7, r3, r1, lsl #26 + 974: 84350100 ldrthi r0, [r5], #-256 + 978: 00000000 andeq r0, r0, r0 + 97c: 00010000 andeq r0, r1, r0 + 980: 20440000 subcs r0, r4, r0 + 984: 01510040 cmpeq r1, r0, asr #32 + 988: 0119d500 tsteq r9, r0, lsl #10 + 98c: 00020100 andeq r0, r2, r0, lsl #2 + 990: 6c117805 ldcvs 8, cr7, [r1], {5} + 994: 00000e29 andeq r0, r0, r9, lsr #28 + 998: 01010101 tsteq r1, r1, lsl #2 + 99c: 00010001 andeq r0, r1, r1 + 9a0: 01010101 tsteq r1, r1, lsl #2 + 9a4: 00025ad5 ldrdeq r5, [r2], -r5 + 9a8: 07020224 streq r0, [r2, -r4, lsr #4] + 9ac: 0a0117dc beq 46924 + 9b0: 0403080d streq r0, [r3], #-2061 + 9b4: 17d80301 ldrbne r0, [r8, r1, lsl #6] + 9b8: 0e062a15 mcreq 10, 0, r2, cr6, cr5, {0} + 9bc: f93eb736 undefined instruction 0xf93eb736 + 9c0: 1422020d strtne r0, [r2], #-525 + 9c4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 9c8: 0408cc15 streq ip, [r8], #-3093 + 9cc: 0c08b12f stfeqd f3, [r8], {47} + 9d0: 7a060630 bvc 182298 + 9d4: 0608290e streq r2, [r8], -lr, lsl #18 + 9d8: 7714030c ldrvc r0, [r4, -ip, lsl #6] + 9dc: 0608439e undefined + 9e0: 7714040c ldrvc r0, [r4, -ip, lsl #8] + 9e4: 93a30506 undefined instruction 0x93a30506 + 9e8: b12f020d teqlt pc, sp, lsl #4 + 9ec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 9f0: 290e7906 stmdbcs lr, {r1, r2, r8, fp, ip, sp, lr} + 9f4: 04050009 streq r0, [r5], #-9 + 9f8: 11010001 tstne r1, r1 + 9fc: cc140b08 ldcgt 11, cr0, [r4], {8} + a00: d5180151 ldrle r0, [r8, #-337] + a04: 0a000233 beq 12d8 <__USR_stack_size+0xad8> + a08: c2070304 andgt r0, r7, #268435456 ; 0x10000000 + a0c: 0113011a tsteq r3, sl, lsl r1 + a10: 01040308 tsteq r4, r8, lsl #6 + a14: 151abe03 ldrne fp, [sl, #-3587] + a18: 060a032a streq r0, [sl], -sl, lsr #6 + a1c: 0d881b35 vstreq d1, [r8, #212] + a20: 084e3d05 stmdaeq lr, {r0, r2, r8, sl, fp, ip, sp}^ + a24: 1506300c strne r3, [r6, #-12] + a28: 3d040822 stccc 8, cr0, [r4, #-136] + a2c: 300c084e andcc r0, ip, lr, asr #16 + a30: 780a0906 stmdavc sl, {r1, r2, r8, fp} + a34: 180e4c06 stmdane lr, {r1, r2, sl, fp, lr} + a38: d52c0151 strle r0, [ip, #-337]! + a3c: 0a000233 beq 1310 <__USR_stack_size+0xb10> + a40: 85070305 strhi r0, [r7, #-773] + a44: 0111011a tsteq r1, sl, lsl r1 + a48: 01040308 tsteq r4, r8, lsl #6 + a4c: 151a8103 ldrne r8, [sl, #-259] + a50: 0609032a streq r0, [r9], -sl, lsr #6 + a54: 0d881b3d vstreq d1, [r8, #244] + a58: 084e3d06 stmdaeq lr, {r1, r2, r8, sl, fp, ip, sp}^ + a5c: 1506300c strne r3, [r6, #-12] + a60: 3d040822 stccc 8, cr0, [r4, #-136] + a64: 300c084e andcc r0, ip, lr, asr #16 + a68: 780a0906 stmdavc sl, {r1, r2, r8, fp} + a6c: 170e4406 strne r4, [lr, -r6, lsl #8] + a70: 00000153 andeq r0, r0, r3, asr r1 + a74: 20440001 subcs r0, r4, r1 + a78: 00060040 andeq r0, r6, r0, asr #32 + a7c: d7020000 strle r0, [r2, -r0] + a80: 01000017 tsteq r0, r7, lsl r0 + a84: 00403da9 subeq r3, r0, r9, lsr #27 + a88: 00848101 addeq r8, r4, r1, lsl #2 + a8c: 00000100 andeq r0, r0, r0, lsl #2 + a90: 93020000 movwls r0, #8192 ; 0x2000 + a94: 01000016 tsteq r0, r6, lsl r0 + a98: 0000837d andeq r8, r0, sp, ror r3 + a9c: 00000000 andeq r0, r0, r0 + aa0: d5000151 strle r0, [r0, #-337] + aa4: 01000119 tsteq r0, r9, lsl r1 + aa8: 78050002 stmdavc r5, {r1} + aac: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + ab0: 01010000 tsteq r1, r0 + ab4: 00010101 andeq r0, r1, r1, lsl #2 + ab8: 01010001 tsteq r1, r1 + abc: 49d50101 ldmibmi r5, {r0, r8}^ + ac0: 021e0002 andseq r0, lr, #2 ; 0x2 + ac4: 17e61100 strbne r1, [r6, r0, lsl #2]! + ac8: 08010603 stmdaeq r1, {r0, r1, r9, sl} + acc: 17e2030a strbne r0, [r2, sl, lsl #6]! + ad0: 020d3019 andeq r3, sp, #25 ; 0x19 + ad4: 0c081422 cfstrseq mvf1, [r8], {34} + ad8: 0b060630 bleq 1823a0 + adc: 030d711b movweq r7, #53531 ; 0xd11b + ae0: 0c08b12f stfeqd f3, [r8], {47} + ae4: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + ae8: b12f0408 teqlt pc, r8, lsl #8 + aec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + af0: 290e7506 stmdbcs lr, {r1, r2, r8, sl, ip, sp, lr} + af4: 040c0608 streq r0, [ip], #-1544 + af8: 28b97714 ldmcs r9!, {r2, r4, r8, r9, sl, ip, sp, lr} + afc: 1422020d strtne r0, [r2], #-525 + b00: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + b04: 11710a09 cmnne r1, r9, lsl #20 + b08: 0001511d andeq r5, r1, sp, lsl r1 + b0c: 000249d5 ldrdeq r4, [r2], -r5 + b10: 1000061e andne r0, r0, lr, lsl r6 + b14: 050317ca streq r1, [r3, #-1994] + b18: 030a0801 movweq r0, #43009 ; 0xa801 + b1c: 301917c6 andscc r1, r9, r6, asr #15 + b20: 1422020d strtne r0, [r2], #-525 + b24: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + b28: 711b0b06 tstvc fp, r6, lsl #22 + b2c: b12f030d teqlt pc, sp, lsl #6 + b30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + b34: 04082215 streq r2, [r8], #-533 + b38: 0c08b12f stfeqd f3, [r8], {47} + b3c: 75060630 strvc r0, [r6, #-1584] + b40: 0608290e streq r2, [r8], -lr, lsl #18 + b44: 7714040c ldrvc r0, [r4, -ip, lsl #8] + b48: 020d28b9 andeq r2, sp, #12124160 ; 0xb90000 + b4c: 0c081422 cfstrseq mvf1, [r8], {34} + b50: 0a090630 beq 242418 + b54: 511c1171 tstpl ip, r1, ror r1 + b58: 33d51601 bicscc r1, r5, #1048576 ; 0x100000 + b5c: 050c0002 streq r0, [ip, #-2] + b60: 1aa31001 bne fe8c4b6c + b64: 08011201 stmdaeq r1, {r0, r9, ip} + b68: 03010403 movweq r0, #5123 ; 0x1403 + b6c: 2a151a9f bcs 5475f0 + b70: 36060903 strcc r0, [r6], -r3, lsl #18 + b74: 060d881b undefined + b78: 0c08eb4a stceq 11, cr14, [r8], {74} + b7c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + b80: eb4a0408 bl 1281ba8 + b84: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + b88: 06780a09 ldrbteq r0, [r8], -r9, lsl #20 + b8c: 51180e4b tstpl r8, fp, asr #28 + b90: 33d51601 bicscc r1, r5, #1048576 ; 0x100000 + b94: 050c0002 streq r0, [ip, #-2] + b98: 1aa31101 bne fe8c4fa4 + b9c: 08011201 stmdaeq r1, {r0, r9, ip} + ba0: 03010403 movweq r0, #5123 ; 0x1403 + ba4: 2a151a9f bcs 547628 + ba8: 36060903 strcc r0, [r6], -r3, lsl #18 + bac: 060d881b undefined + bb0: 0c08eb4a stceq 11, cr14, [r8], {74} + bb4: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + bb8: eb4a0408 bl 1281be0 + bbc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + bc0: 06780a09 ldrbteq r0, [r8], -r9, lsl #20 + bc4: 5d180e4b ldcpl 14, cr0, [r8, #-300] + bc8: 01000000 tsteq r0, r0 + bcc: 40208400 eormi r8, r0, r0, lsl #8 + bd0: 00000100 andeq r0, r0, r0, lsl #2 + bd4: 19e70200 stmibne r7!, {r9}^ + bd8: 00000000 andeq r0, r0, r0 + bdc: 01510000 cmpeq r1, r0 + be0: 0119d500 tsteq r9, r0, lsl #10 + be4: 00020100 andeq r0, r2, r0, lsl #2 + be8: 6c117805 ldcvs 8, cr7, [r1], {5} + bec: 00000e29 andeq r0, r0, r9, lsr #28 + bf0: 01010101 tsteq r1, r1, lsl #2 + bf4: 00010001 andeq r0, r1, r1 + bf8: 01010101 tsteq r1, r1, lsl #2 + bfc: 00022ad5 ldrdeq r2, [r2], -r5 + c00: 08020210 stmdaeq r2, {r4, r9} + c04: 0c0117fb stceq 7, cr1, [r1], {251} + c08: 04030811 streq r0, [r3], #-2065 + c0c: 17f70301 ldrbne r0, [r7, r1, lsl #6]! + c10: 0e062a15 mcreq 10, 0, r2, cr6, cr5, {0} + c14: 030a7d1b movweq r7, #44315 ; 0xad1b + c18: 0d35fd3a ldceq 13, cr15, [r5, #-232]! + c1c: 067b0a09 ldrbteq r0, [fp], -r9, lsl #20 + c20: 0963297a stmdbeq r3!, {r1, r3, r4, r5, r6, r8, fp, sp}^ + c24: 5f307a0a svcpl 0x00307a0a + c28: 00000064 andeq r0, r0, r4, rrx + c2c: 20a40001 adccs r0, r4, r1 + c30: 00020040 andeq r0, r2, r0, asr #32 + c34: f7020000 undefined instruction 0xf7020000 + c38: 0100001a tsteq r0, sl, lsl r0 + c3c: 00008481 andeq r8, r0, r1, lsl #9 + c40: 00000000 andeq r0, r0, r0 + c44: d5000151 strle r0, [r0, #-337] + c48: 01000119 tsteq r0, r9, lsl r1 + c4c: 78050002 stmdavc r5, {r1} + c50: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + c54: 01010000 tsteq r1, r0 + c58: 00010101 andeq r0, r1, r1, lsl #2 + c5c: 01010001 tsteq r1, r1 + c60: 2cd50101 ldfcse f0, [r5], {1} + c64: 020b0002 andeq r0, fp, #2 ; 0x2 + c68: 18b20a02 ldmne r2!, {r1, r9, fp} + c6c: 08010501 stmdaeq r1, {r0, r8, sl} + c70: 03010403 movweq r0, #5123 ; 0x1403 + c74: 2a1518ae bcs 546f34 + c78: 2900c206 stmdbcs r0, {r1, r2, r9, lr, pc} + c7c: 446e0624 strbtmi r0, [lr], #-1572 + c80: 22020d9d andcs r0, r2, #10048 ; 0x2740 + c84: 300c0814 andcc r0, ip, r4, lsl r8 + c88: 7a0a0906 bvc 2830a8 + c8c: 150e6506 strne r6, [lr, #-1286] + c90: 000002a9 andeq r0, r0, r9, lsr #5 + c94: 20ba0002 adcscs r0, sl, r2 + c98: 00080040 andeq r0, r8, r0, asr #32 + c9c: 2f020000 svccs 0x00020000 + ca0: 0200001c andeq r0, r0, #28 ; 0x1c + ca4: 00001693 muleq r0, r3, r6 + ca8: 0027da02 eoreq sp, r7, r2, lsl #20 + cac: 17d70200 ldrbne r0, [r7, r0, lsl #4] + cb0: 81010000 tsthi r1, r0 + cb4: 01000084 smlabbeq r0, r4, r0, r0 + cb8: 00403da9 subeq r3, r0, r9, lsr #27 + cbc: 0028d202 eoreq sp, r8, r2, lsl #4 + cc0: 84610100 strbthi r0, [r1], #-256 + cc4: 00000000 andeq r0, r0, r0 + cc8: 00010000 andeq r0, r1, r0 + ccc: 22ac0000 adccs r0, ip, #0 ; 0x0 + cd0: 01510040 cmpeq r1, r0, asr #32 + cd4: 0119d500 tsteq r9, r0, lsl #10 + cd8: 00020100 andeq r0, r2, r0, lsl #2 + cdc: 6c117805 ldcvs 8, cr7, [r1], {5} + ce0: 00000e29 andeq r0, r0, r9, lsr #28 + ce4: 01010101 tsteq r1, r1, lsl #2 + ce8: 00010001 andeq r0, r1, r1 + cec: 01010101 tsteq r1, r1, lsl #2 + cf0: 0201bcd5 andeq fp, r1, #54528 ; 0xd500 + cf4: 02019400 andeq r9, r1, #0 ; 0x0 + cf8: 18c40b02 stmiane r4, {r1, r8, r9, fp}^ + cfc: 08302001 ldmdaeq r0!, {r0, sp} + d00: 03010403 movweq r0, #5123 ; 0x1403 + d04: 2a1518c0 bcs 54700c + d08: 0103260a tsteq r3, sl, lsl #12 + d0c: f2512e06 vceq.f d18, d1, d6 + d10: 6b060103 blvs 181124 + d14: b42dda5f strtlt sp, [sp], #-2655 + d18: ac361206 lfmge f1, 4, [r6], #-24 + d1c: 1422020d strtne r0, [r2], #-525 + d20: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + d24: 0408cc15 streq ip, [r8], #-3093 + d28: 0c08eb4a stceq 11, cr14, [r8], {74} + d2c: 0b060630 bleq 1825f4 + d30: 0408711b streq r7, [r8], #-283 + d34: 0c082566 cfstr32eq mvfx2, [r8], {102} + d38: 503c0630 eorspl r0, ip, r0, lsr r6 + d3c: 77140408 ldrvc r0, [r4, -r8, lsl #8] + d40: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + d44: 2a0e5506 bcs 396164 + d48: 030c0608 movweq r0, #50696 ; 0xc608 + d4c: 14029a14 strne r9, [r2], #-2580 + d50: 06086cfc undefined + d54: 12069a14 andne r9, r6, #81920 ; 0x14000 + d58: 1ff51e02 svcne 0x00f51e02 + d5c: 1422020d strtne r0, [r2], #-525 + d60: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + d64: 0408cc15 streq ip, [r8], #-3093 + d68: 0c08b12f stfeqd f3, [r8], {47} + d6c: 0b060630 bleq 182634 + d70: 0408711b streq r7, [r8], #-283 + d74: 0c08b12f stfeqd f3, [r8], {47} + d78: 79130630 ldmdbvc r3, {r4, r5, r9, sl} + d7c: 14220408 strtne r0, [r2], #-1032 + d80: 0c08050a cfstr32eq mvfx0, [r8], {10} + d84: 55060630 strpl r0, [r6, #-1584] + d88: 07069e44 streq r9, [r6, -r4, asr #28] + d8c: 040d7c1b streq r7, [sp], #-3099 + d90: 0a094e3d beq 25468c + d94: 300c0804 andcc r0, ip, r4, lsl #16 + d98: 08172306 ldmdaeq r7, {r1, r2, r8, r9, sp} + d9c: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + da0: 0906300c stmdbeq r6, {r2, r3, ip, sp} + da4: 01040500 tsteq r4, r0, lsl #10 + da8: 08170100 ldmdaeq r7, {r8} + dac: 51cc140b bicpl r1, ip, fp, lsl #8 + db0: 7fd54801 svcvc 0x00d54801 + db4: 04250002 strteq r0, [r5], #-2 + db8: 1afa0b03 bne ffe839cc + dbc: 08150c01 ldmdaeq r5, {r0, sl, fp} + dc0: 03010403 movweq r0, #5123 ; 0x1403 + dc4: 2a151af6 bcs 5479a4 + dc8: 7d1b1206 lfmvc f1, 4, [fp, #-24] + dcc: b12f050d teqlt pc, sp, lsl #10 + dd0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + dd4: 0408cc15 streq ip, [r8], #-3093 + dd8: 0c08b12f stfeqd f3, [r8], {47} + ddc: 79060630 stmdbvc r6, {r4, r5, r9, sl} + de0: 060d290e streq r2, [sp], -lr, lsl #18 + de4: 0c081422 cfstrseq mvf1, [r8], {34} + de8: 09060630 stmdbeq r6, {r4, r5, r9, sl} + dec: 050d711b streq r7, [sp, #-283] + df0: 0c08b12f stfeqd f3, [r8], {47} + df4: 79060630 stmdbvc r6, {r4, r5, r9, sl} + df8: 060d290e streq r2, [sp], -lr, lsl #18 + dfc: 0c081422 cfstrseq mvf1, [r8], {34} + e00: 73190630 tstvc r9, #50331648 ; 0x3000000 + e04: 070c0608 streq r0, [ip, -r8, lsl #12] + e08: 9f140605 svcls 0x00140605 + e0c: 87877a05 strhi r7, [r7, r5, lsl #20] + e10: b12f050d teqlt pc, sp, lsl #10 + e14: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + e18: 04082215 streq r2, [r8], #-533 + e1c: 0c08b12f stfeqd f3, [r8], {47} + e20: 77060630 smladxvc r6, r0, r6, r0 + e24: 060d290e streq r2, [sp], -lr, lsl #18 + e28: 0c081422 cfstrseq mvf1, [r8], {34} + e2c: 0a090630 beq 2426f4 + e30: 51ca1764 bicpl r1, sl, r4, ror #14 + e34: 3dd56c01 ldclcc 12, cr6, [r5, #4] + e38: 08080002 stmdaeq r8, {r1} + e3c: 1b950b03 blne fe543a50 + e40: 08172001 ldmdaeq r7, {r0, sp} + e44: 03010403 movweq r0, #5123 ; 0x1403 + e48: 2a151b91 bcs 547c94 + e4c: 0e060b05 fmacdeq d0, d6, d5 + e50: 13039a1b movwne r9, #14875 ; 0x3a1b + e54: 4f187905 svcmi 0x00187905 + e58: b12f080d teqlt pc, sp, lsl #16 + e5c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + e60: 2710c819 undefined + e64: b12f0408 teqlt pc, r8, lsl #8 + e68: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + e6c: 0a091d1a beq 2482dc + e70: 0e6e0675 mcreq 6, 3, r0, cr14, cr5, {3} + e74: 9201512c andls r5, r1, #11 ; 0xb + e78: 027fd501 rsbseq sp, pc, #4194304 ; 0x400000 + e7c: 03042900 movweq r2, #18688 ; 0x4900 + e80: 011afa0b tstpeq sl, fp, lsl #20 + e84: 0308150c movweq r1, #34060 ; 0x850c + e88: f6030104 undefined instruction 0xf6030104 + e8c: 062a151a undefined + e90: 0d7d1b12 vldmdbeq sp!, {d17-d25} + e94: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + e98: 1506300c strne r3, [r6, #-12] + e9c: 2f0408cc svccs 0x000408cc + ea0: 300c08b1 strhcc r0, [ip], -r1 + ea4: 0e790606 cdpeq 6, 7, cr0, cr9, cr6, {0} + ea8: 22060d29 andcs r0, r6, #2624 ; 0xa40 + eac: 300c0814 andcc r0, ip, r4, lsl r8 + eb0: 1b090606 blne 2426d0 + eb4: 2f050d71 svccs 0x00050d71 + eb8: 300c08b1 strhcc r0, [ip], -r1 + ebc: 0e790606 cdpeq 6, 7, cr0, cr9, cr6, {0} + ec0: 22060d29 andcs r0, r6, #2624 ; 0xa40 + ec4: 300c0814 andcc r0, ip, r4, lsl r8 + ec8: 08731906 ldmdaeq r3!, {r1, r2, r8, fp, ip}^ + ecc: 05070c06 streq r0, [r7, #-3078] + ed0: 059f1406 ldreq r1, [pc, #1030] ; 12de <__USR_stack_size+0xade> + ed4: 0dfbbd7a ldcleq 13, cr11, [fp, #488]! + ed8: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + edc: 1506300c strne r3, [r6, #-12] + ee0: 2f040822 svccs 0x00040822 + ee4: 300c08b1 strhcc r0, [ip], -r1 + ee8: 0e770606 cdpeq 6, 7, cr0, cr7, cr6, {0} + eec: 22060d29 andcs r0, r6, #2624 ; 0xa40 + ef0: 300c0814 andcc r0, ip, r4, lsl r8 + ef4: 640a0906 strvs r0, [sl], #-2310 + ef8: 0151ca17 cmpeq r1, r7, lsl sl + efc: 3dd501b6 ldfcce f0, [r5, #728] + f00: 080c0002 stmdaeq ip, {r1} + f04: 1b950b03 blne fe543b18 + f08: 08172001 ldmdaeq r7, {r0, sp} + f0c: 03010403 movweq r0, #5123 ; 0x1403 + f10: 2a151b91 bcs 547d5c + f14: 0e060b05 fmacdeq d0, d6, d5 + f18: 13039a1b movwne r9, #14875 ; 0x3a1b + f1c: 4f187905 svcmi 0x00187905 + f20: b12f080d teqlt pc, sp, lsl #16 + f24: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + f28: 9b46c819 blls 11b2f94 + f2c: b12f0408 teqlt pc, r8, lsl #8 + f30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + f34: 0a091d1a beq 2483a4 + f38: 0e6e0675 mcreq 6, 3, r0, cr14, cr5, {3} + f3c: 00011e2c andeq r1, r1, ip, lsr #28 + f40: e4000200 str r0, [r0], #-512 + f44: 04004021 streq r4, [r0], #-33 + f48: 02000000 andeq r0, r0, #0 ; 0x0 + f4c: 00001e1f andeq r1, r0, pc, lsl lr + f50: 0017d702 andseq sp, r7, r2, lsl #14 + f54: 29da0200 ldmibcs sl, {r9}^ + f58: 93020000 movwls r0, #8192 ; 0x2000 + f5c: 00000016 andeq r0, r0, r6, lsl r0 + f60: 01000000 tsteq r0, r0 + f64: ac000000 stcge 0, cr0, [r0], {0} + f68: 51004022 tstpl r0, r2, lsr #32 + f6c: 19d50001 ldmibne r5, {r0}^ + f70: 02010001 andeq r0, r1, #1 ; 0x1 + f74: 11780500 cmnne r8, r0, lsl #10 + f78: 000e296c andeq r2, lr, ip, ror #18 + f7c: 01010100 tsteq r1, r0, lsl #2 + f80: 01000101 tsteq r0, r1, lsl #2 + f84: 01010100 tsteq r1, r0, lsl #2 + f88: 0180d501 orreq sp, r0, r1, lsl #10 + f8c: 02640002 rsbeq r0, r4, #2 ; 0x2 + f90: 18f40c02 ldmne r4!, {r1, sl, fp}^ + f94: 08102401 ldmdaeq r0, {r0, sl, sp} + f98: 03010403 movweq r0, #5123 ; 0x1403 + f9c: 2a1518f0 bcs 547364 + fa0: 06060305 streq r0, [r6], -r5, lsl #6 + fa4: 0f0a7144 svceq 0x000a7144 + fa8: 11067f05 tstne r6, r5, lsl #30 + fac: 0a094c1b beq 254020 + fb0: 06010308 streq r0, [r1], -r8, lsl #6 + fb4: 06da5f7d undefined + fb8: ab360705 blge d82bd4 + fbc: 84061203 strhi r1, [r6], #-515 + fc0: 0d881b01 vstreq d1, [r8, #4] + fc4: 08c27302 stmiaeq r2, {r1, r8, r9, ip, sp, lr}^ + fc8: 0306300c movweq r3, #24588 ; 0x600c + fcc: 7efc067a mrcvc 6, 7, r0, cr12, cr10, {3} + fd0: 7b0a320e blvc 28d810 + fd4: 7d030204 sfmvc f0, 4, [r3, #-16] + fd8: 070335ab streq r3, [r3, -fp, lsr #11] + fdc: e8e76106 stmia r7!, {r1, r2, r8, sp, lr}^ + fe0: 6e03060a cfmadd32vs mvax0, mvfx0, mvfx3, mvfx10 + fe4: 142e5d24 strtne r5, [lr], #-3364 + fe8: 06084844 streq r4, [r8], -r4, asr #16 + fec: 7714030c ldrvc r0, [r4, -ip, lsl #6] + ff0: 09e75007 stmibeq r7!, {r0, r1, r2, ip, lr}^ + ff4: 6e06790a cdpvs 9, 0, cr7, cr6, cr10, {0} + ff8: 0a08746d beq 21e1b4 + ffc: a4327a03 ldrtge r7, [r2], #-2563 + 1000: 04050009 streq r0, [r5], #-9 + 1004: 18010001 stmdane r1, {r0} + 1008: cc140b08 ldcgt 11, cr0, [r4], {8} + 100c: 018c0151 orreq r0, ip, r1, asr r1 + 1010: 00024dd5 ldrdeq r4, [r2], -r5 + 1014: 0c030415 cfstrseq mvf0, [r3], {21} + 1018: 0b011ae2 bleq 47ba8 + 101c: 04030801 streq r0, [r3], #-2049 + 1020: 1ade0301 bne ff781c2c + 1024: 01032a15 tsteq r3, r5, lsl sl + 1028: 7e1b0506 cfmul32vc mvfx0, mvfx11, mvfx6 + 102c: 721b0b06 andsvc r0, fp, #6144 ; 0x1800 + 1030: 1422040d strtne r0, [r2], #-1037 + 1034: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1038: 0408cc15 streq ip, [r8], #-3093 + 103c: 0c082566 cfstr32eq mvfx2, [r8], {102} + 1040: 0b060630 bleq 182908 + 1044: 0408711b streq r7, [r8], #-283 + 1048: 0c08b12f stfeqd f3, [r8], {47} + 104c: 79130630 ldmdbvc r3, {r4, r5, r9, sl} + 1050: eb4a0408 bl 1282078 + 1054: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1058: 06710a09 ldrbteq r0, [r1], -r9, lsl #20 + 105c: b11f0e42 tstlt pc, r2, asr #28 + 1060: 02000000 andeq r0, r0, #0 ; 0x0 + 1064: 4022ac00 eormi sl, r2, r0, lsl #24 + 1068: 00000300 andeq r0, r0, r0, lsl #6 + 106c: 23930200 orrscs r0, r3, #0 ; 0x0 + 1070: 1f020000 svcne 0x00020000 + 1074: 0200001e andeq r0, r0, #30 ; 0x1e + 1078: 00001c2f andeq r1, r0, pc, lsr #24 + 107c: 00000000 andeq r0, r0, r0 + 1080: 00000001 andeq r0, r0, r1 + 1084: 004022b0 strheq r2, [r0], #-32 + 1088: d5000151 strle r0, [r0, #-337] + 108c: 01000119 tsteq r0, r9, lsl r1 + 1090: 78050002 stmdavc r5, {r1} + 1094: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 1098: 01010000 tsteq r1, r0 + 109c: 00010101 andeq r0, r1, r1, lsl #2 + 10a0: 01010001 tsteq r1, r1 + 10a4: 22d50101 sbcscs r0, r5, #1073741824 ; 0x40000000 + 10a8: 02020002 andeq r0, r2, #2 ; 0x2 + 10ac: 1bed1900 blne ffb474b4 + 10b0: 08170010 ldmdaeq r7, {r4} + 10b4: 1be9030a blne ffa41ce4 + 10b8: 03060805 movweq r0, #26629 ; 0x6805 + 10bc: 00099c1b andeq r9, r9, fp, lsl ip + 10c0: 00010405 andeq r0, r1, r5, lsl #8 + 10c4: 0b081c01 bleq 2080d0 + 10c8: 01510630 cmpeq r1, r0, lsr r6 + 10cc: 0220d500 eoreq sp, r0, #0 ; 0x0 + 10d0: 00030200 andeq r0, r3, r0, lsl #4 + 10d4: 03198618 tsteq r9, #25165824 ; 0x1800000 + 10d8: 0a081600 beq 2068e0 + 10dc: 06198203 ldreq r8, [r9], -r3, lsl #4 + 10e0: 09831b02 stmibeq r3, {r1, r8, r9, fp, ip} + 10e4: 01040500 tsteq r4, r0, lsl #10 + 10e8: 081b0100 ldmdaeq fp, {r8} + 10ec: 5106300b tstpl r6, fp + 10f0: 20d50001 sbcscs r0, r5, r1 + 10f4: 04020002 streq r0, [r2], #-2 + 10f8: 18e41700 stmiane r4!, {r8, r9, sl, ip}^ + 10fc: 08300005 ldmdaeq r0!, {r0, r2} + 1100: 18e0030a stmiane r0!, {r1, r3, r8, r9}^ + 1104: 8d1b1c06 ldchi 12, cr1, [fp, #-24] + 1108: 04050009 streq r0, [r5], #-9 + 110c: 1a010001 bne 41118 + 1110: 06300b08 ldrteq r0, [r0], -r8, lsl #22 + 1114: 000000d7 ldrdeq r0, [r0], -r7 + 1118: 22d00001 sbcscs r0, r0, #1 ; 0x1 + 111c: 00040040 andeq r0, r4, r0, asr #32 + 1120: b3020000 movwlt r0, #8192 ; 0x2000 + 1124: 02000020 andeq r0, r0, #32 ; 0x20 + 1128: 000029da ldrdeq r2, [r0], -sl + 112c: 0017d702 andseq sp, r7, r2, lsl #14 + 1130: 16930200 ldrne r0, [r3], r0, lsl #4 + 1134: 00000000 andeq r0, r0, r0 + 1138: 01510000 cmpeq r1, r0 + 113c: 0119d500 tsteq r9, r0, lsl #10 + 1140: 00020100 andeq r0, r2, r0, lsl #2 + 1144: 6c117805 ldcvs 8, cr7, [r1], {5} + 1148: 00000e29 andeq r0, r0, r9, lsr #28 + 114c: 01010101 tsteq r1, r1, lsl #2 + 1150: 00010001 andeq r0, r1, r1 + 1154: 01010101 tsteq r1, r1, lsl #2 + 1158: 000243d5 ldrdeq r4, [r2], -r5 + 115c: 0d020223 sfmeq f0, 4, [r2, #-140] + 1160: 090119a8 stmdbeq r1, {r3, r5, r7, r8, fp, ip} + 1164: 04030801 streq r0, [r3], #-2049 + 1168: 19a40301 stmibne r4!, {r0, r8, r9} + 116c: 13062a15 movwne r2, #27157 ; 0x6a15 + 1170: 0608f251 undefined + 1174: 7714020c ldrvc r0, [r4, -ip, lsl #4] + 1178: 07050a09 streq r0, [r5, -r9, lsl #20] + 117c: ca22c51c bgt 8b25f4 + 1180: 1422030d strtne r0, [r2], #-781 + 1184: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1188: 1a057e03 bne 16099c + 118c: 7c0a981b stcvc 8, cr9, [sl], {27} + 1190: d23b7905 eorsle r7, fp, #81920 ; 0x14000 + 1194: 05760a09 ldrbeq r0, [r6, #-2569]! + 1198: 29700671 ldmdbcs r0!, {r0, r4, r5, r6, r9, sl}^ + 119c: 0801513e stmdaeq r1, {r1, r2, r3, r4, r5, r8, ip, lr} + 11a0: 00024dd5 ldrdeq r4, [r2], -r5 + 11a4: 0d030312 stceq 3, cr0, [r3, #-72] + 11a8: 0b011ae2 bleq 47d38 + 11ac: 04030801 streq r0, [r3], #-2049 + 11b0: 1ade0301 bne ff781dbc + 11b4: 01032a15 tsteq r3, r5, lsl sl + 11b8: 7e1b0506 cfmul32vc mvfx0, mvfx11, mvfx6 + 11bc: 721b0b06 andsvc r0, fp, #6144 ; 0x1800 + 11c0: 1422040d strtne r0, [r2], #-1037 + 11c4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 11c8: 0408cc15 streq ip, [r8], #-3093 + 11cc: 0c08eb4a stceq 11, cr14, [r8], {74} + 11d0: 0b060630 bleq 182a98 + 11d4: 0408711b streq r7, [r8], #-283 + 11d8: 0c084e3d stceq 14, cr4, [r8], {61} + 11dc: 79130630 ldmdbvc r3, {r4, r5, r9, sl} + 11e0: b12f0408 teqlt pc, r8, lsl #8 + 11e4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 11e8: 06710a09 ldrbteq r0, [r1], -r9, lsl #20 + 11ec: a71f0e42 ldrge r0, [pc, -r2, asr #28] + 11f0: 01000000 tsteq r0, r0 + 11f4: 40231800 eormi r1, r3, r0, lsl #16 + 11f8: 00000200 andeq r0, r0, r0, lsl #4 + 11fc: 22370200 eorscs r0, r7, #0 ; 0x0 + 1200: b3020000 movwlt r0, #8192 ; 0x2000 + 1204: 00000020 andeq r0, r0, r0, lsr #32 + 1208: 51000000 tstpl r0, r0 + 120c: 19d50001 ldmibne r5, {r0}^ + 1210: 02010001 andeq r0, r1, #1 ; 0x1 + 1214: 11780500 cmnne r8, r0, lsl #10 + 1218: 000e296c andeq r2, lr, ip, ror #18 + 121c: 01010100 tsteq r1, r0, lsl #2 + 1220: 01000101 tsteq r0, r1, lsl #2 + 1224: 01010100 tsteq r1, r0, lsl #2 + 1228: 026fd501 rsbeq sp, pc, #4194304 ; 0x400000 + 122c: 02023000 andeq r3, r2, #0 ; 0x0 + 1230: 0119c20e tsteq r9, lr, lsl #4 + 1234: 03081027 movweq r1, #32807 ; 0x8027 + 1238: be030104 adflts f0, f3, f4 + 123c: 0a2a1519 beq a866a8 + 1240: 06010312 undefined + 1244: 0a1b290d beq 6cb680 + 1248: 06c22b05 strbeq r2, [r2], r5, lsl #22 + 124c: 56f05111 usatpl r5, #16, r1, lsl #2 + 1250: 29af3236 stmibcs pc!, {r1, r2, r4, r5, r9, ip, sp} + 1254: 06070a63 streq r0, [r7], -r3, ror #20 + 1258: 0607291a undefined + 125c: 04e35f67 strbteq r5, [r3], #3943 + 1260: 0db13002 ldceq 0, cr3, [r1, #8]! + 1264: 4a020402 bmi 82274 + 1268: 040c08eb streq r0, [ip], #-2283 + 126c: 06063002 streq r3, [r6], -r2 + 1270: 09741b14 ldmdbeq r4!, {r2, r4, r8, r9, fp, ip}^ + 1274: 5706720a strpl r7, [r6, -sl, lsl #4] + 1278: 02040037 andeq r0, r4, #55 ; 0x37 + 127c: ae360206 cdpge 2, 3, cr0, cr6, cr6, {0} + 1280: 02040408 andeq r0, r4, #134217728 ; 0x8000000 + 1284: 0c087714 stceq 7, cr7, [r8], {20} + 1288: 06300204 ldrteq r0, [r0], -r4, lsl #4 + 128c: 0a092514 beq 24a6e4 + 1290: 0963296d stmdbeq r3!, {r0, r2, r3, r5, r6, r8, fp, sp}^ + 1294: 01036c0a tsteq r3, sl, lsl #24 + 1298: 00c6904a sbceq r9, r6, sl, asr #32 + 129c: 00020000 andeq r0, r2, r0 + 12a0: 00000000 andeq r0, r0, r0 + 12a4: 00000003 andeq r0, r0, r3 + 12a8: 00239302 eoreq r9, r3, r2, lsl #6 + 12ac: 16930200 ldrne r0, [r3], r0, lsl #4 + 12b0: d7020000 strle r0, [r2, -r0] + 12b4: 00000017 andeq r0, r0, r7, lsl r0 + 12b8: 01000000 tsteq r0, r0 + 12bc: ac000000 stcge 0, cr0, [r0], {0} + 12c0: 51004022 tstpl r0, r2, lsr #32 + 12c4: 19d50001 ldmibne r5, {r0}^ + 12c8: 02010001 andeq r0, r1, #1 ; 0x1 + 12cc: 11780500 cmnne r8, r0, lsl #10 + 12d0: 000e296c andeq r2, lr, ip, ror #18 + 12d4: 01010100 tsteq r1, r0, lsl #2 + 12d8: 01000101 tsteq r0, r1, lsl #2 + 12dc: 01010100 tsteq r1, r0, lsl #2 + 12e0: 0180d501 orreq sp, r0, r1, lsl #10 + 12e4: 02300002 eorseq r0, r0, #2 ; 0x2 + 12e8: 1be30f02 blne ff8c4ef8 + 12ec: 08101301 ldmdaeq r0, {r0, r8, r9, ip} + 12f0: 03010403 movweq r0, #5123 ; 0x1403 + 12f4: 2a151bdf bcs 548278 + 12f8: 0103170a tsteq r3, sl, lsl #14 + 12fc: f2513206 vhsub.s16 d19, d1, d6 + 1300: 5b060103 blpl 181714 + 1304: 1906da5f stmdbne r6, {r0, r1, r2, r3, r4, r6, r9, fp, ip, lr, pc} + 1308: 020d6488 andeq r6, sp, #-2013265920 ; 0x88000000 + 130c: 0c081422 cfstrseq mvf1, [r8], {34} + 1310: 75170630 ldrvc r0, [r7, #-1584] + 1314: eb4a0408 bl 128233c + 1318: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 131c: 0e290306 cdpeq 3, 2, cr0, cr9, cr6, {0} + 1320: b12f0408 teqlt pc, r8, lsl #8 + 1324: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1328: 04087913 streq r7, [r8], #-2323 + 132c: 0c08eb4a stceq 11, cr14, [r8], {74} + 1330: 52060630 andpl r0, r6, #50331648 ; 0x3000000 + 1334: 1b27290e blne 9cb774 + 1338: 1422030d strtne r0, [r2], #-781 + 133c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1340: 7d037c10 stcvc 12, cr7, [r3, #-64] + 1344: 36280d05 strtcc r0, [r8], -r5, lsl #26 + 1348: 7e057b0a fmacdvc d7, d5, d10 + 134c: 7a03ee1f bvc fcbd0 + 1350: 6c0ae023 stcvs 0, cr14, [sl], {35} + 1354: ee1f7f05 cdp 15, 1, cr7, cr15, cr5, {0} + 1358: 04050009 streq r0, [r5], #-9 + 135c: 19010001 stmdbne r1, {r0} + 1360: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} + 1364: 00000095 muleq r0, r5, r0 + 1368: 3cf00001 ldclcc 0, cr0, [r0], #4 + 136c: 00040040 andeq r0, r4, r0, asr #32 + 1370: 08020000 stmdaeq r2, {} + 1374: 0100002e tsteq r0, lr, lsr #32 + 1378: 0000837d andeq r8, r0, sp, ror r3 + 137c: 0082d901 addeq sp, r2, r1, lsl #18 + 1380: 86e50100 strbthi r0, [r5], r0, lsl #2 + 1384: 00000000 andeq r0, r0, r0 + 1388: 01510000 cmpeq r1, r0 + 138c: 0119d500 tsteq r9, r0, lsl #10 + 1390: 00020100 andeq r0, r2, r0, lsl #2 + 1394: 6c117805 ldcvs 8, cr7, [r1], {5} + 1398: 00000e29 andeq r0, r0, r9, lsr #28 + 139c: 01010101 tsteq r1, r1, lsl #2 + 13a0: 00010001 andeq r0, r1, r1 + 13a4: 01010101 tsteq r1, r1, lsl #2 + 13a8: 000253d5 ldrdeq r5, [r2], -r5 + 13ac: 00020226 andeq r0, r2, r6, lsr #4 + 13b0: 0c01159f cfstr32eq mvfx1, [r1], {159} + 13b4: 04030801 streq r0, [r3], #-2049 + 13b8: 159b0301 ldrne r0, [fp, #769] + 13bc: 34062a15 strcc r2, [r6], #-2581 + 13c0: 020d1a29 andeq r1, sp, #167936 ; 0x29000 + 13c4: 0c08a658 stceq 6, cr10, [r8], {88} + 13c8: 04060630 streq r0, [r6], #-1584 + 13cc: 030d541b movweq r5, #54299 ; 0xd41b + 13d0: 0c084366 stceq 3, cr4, [r8], {102} + 13d4: 59150630 ldmdbpl r5, {r4, r5, r9, sl} + 13d8: 094b0408 stmdbeq fp, {r3, sl}^ + 13dc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 13e0: 04085916 streq r5, [r8], #-2326 + 13e4: 0c08094b stceq 9, cr0, [r8], {75} + 13e8: 78060630 stmdavc r6, {r4, r5, r9, sl} + 13ec: 040d0c0e streq r0, [sp], #-3086 + 13f0: 0c084e3d stceq 14, cr4, [r8], {61} + 13f4: 0a090630 beq 242cbc + 13f8: 0e4e066f cdpeq 6, 4, cr0, cr14, cr15, {3} + 13fc: 0000a820 andeq sl, r0, r0, lsr #16 + 1400: 08000100 stmdaeq r0, {r8} + 1404: 05004036 streq r4, [r0, #-54] + 1408: 02000000 andeq r0, r0, #0 ; 0x0 + 140c: 0000307c andeq r3, r0, ip, ror r0 + 1410: 00318002 eorseq r8, r1, r2 + 1414: 33830200 orrcc r0, r3, #0 ; 0x0 + 1418: 81010000 tsthi r1, r0 + 141c: 02000084 andeq r0, r0, #132 ; 0x84 + 1420: 00003284 andeq r3, r0, r4, lsl #5 + 1424: 00000000 andeq r0, r0, r0 + 1428: d5000151 strle r0, [r0, #-337] + 142c: 01000119 tsteq r0, r9, lsl r1 + 1430: 78050002 stmdavc r5, {r1} + 1434: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 1438: 01010000 tsteq r1, r0 + 143c: 00010101 andeq r0, r1, r1, lsl #2 + 1440: 01010001 tsteq r1, r1 + 1444: 35d50101 ldrbcc r0, [r5, #257] + 1448: 020e0002 andeq r0, lr, #2 ; 0x2 + 144c: 128d0002 addne r0, sp, #2 ; 0x2 + 1450: 08010501 stmdaeq r1, {r0, r8, sl} + 1454: 03010403 movweq r0, #5123 ; 0x1403 + 1458: 2a151289 bcs 545e84 + 145c: 020dc725 andeq ip, sp, #9699328 ; 0x940000 + 1460: 0c086922 stceq 9, cr6, [r8], {34} + 1464: 76160630 undefined + 1468: 030c0608 movweq r0, #50696 ; 0xc608 + 146c: a53c7714 ldrge r7, [ip, #-1812]! + 1470: b12f040d teqlt pc, sp, lsl #8 + 1474: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1478: 11760a09 cmnne r6, r9, lsl #20 + 147c: 08015171 stmdaeq r1, {r0, r4, r5, r6, r8, ip, lr} + 1480: 000227d5 ldrdeq r2, [r2], -r5 + 1484: 00030403 andeq r0, r3, r3, lsl #8 + 1488: 030113a6 movweq r1, #5030 ; 0x13a6 + 148c: 04030801 streq r0, [r3], #-2049 + 1490: 13a20301 undefined instruction 0x13a20301 + 1494: 05062a15 streq r2, [r6, #-2581] + 1498: 050d7c1b streq r7, [sp, #-3099] + 149c: 0c081422 cfstrseq mvf1, [r8], {34} + 14a0: 0a090630 beq 242d68 + 14a4: 0e7c067b mrceq 6, 3, r0, cr12, cr11, {3} + 14a8: 0001211f andeq r2, r1, pc, lsl r1 + 14ac: 24000100 strcs r0, [r0], #-256 + 14b0: 05004036 streq r4, [r0, #-54] + 14b4: 02000000 andeq r0, r0, #0 ; 0x0 + 14b8: 00003180 andeq r3, r0, r0, lsl #3 + 14bc: 00876d01 addeq r6, r7, r1, lsl #26 + 14c0: 85750100 ldrbhi r0, [r5, #-256]! + 14c4: a9010000 stmdbge r1, {} + 14c8: 01000083 smlabbeq r0, r3, r0, r0 + 14cc: 00008481 andeq r8, r0, r1, lsl #9 + 14d0: 00000000 andeq r0, r0, r0 + 14d4: d5000151 strle r0, [r0, #-337] + 14d8: 01000119 tsteq r0, r9, lsl r1 + 14dc: 78050002 stmdavc r5, {r1} + 14e0: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 14e4: 01010000 tsteq r1, r0 + 14e8: 00010101 andeq r0, r1, r1, lsl #2 + 14ec: 01010001 tsteq r1, r1 + 14f0: d9d50101 ldmible r5, {r0, r8}^ + 14f4: 4e000201 cdpmi 2, 0, cr0, cr0, cr1, {0} + 14f8: 9a010202 bls 41d08 + 14fc: 011a0112 tsteq sl, r2, lsl r1 + 1500: 01040308 tsteq r4, r8, lsl #6 + 1504: 15129603 ldrne r9, [r2, #-1539] + 1508: 360d0a2a strcc r0, [sp], -sl, lsr #20 + 150c: 360e060c strcc r0, [lr], -ip, lsl #12 + 1510: 2f020db5 svccs 0x00020db5 + 1514: 300c08b1 strhcc r0, [ip], -r1 + 1518: 0dcc1506 cfstr64eq mvdx1, [ip, #24] + 151c: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} + 1520: 1106300c tstne r6, ip + 1524: 2f040d7b svccs 0x00040d7b + 1528: 300c08b1 strhcc r0, [ip], -r1 + 152c: 0dc11606 stcleq 6, cr1, [r1, #24] + 1530: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + 1534: 0a06300c beq 18d56c + 1538: 0e77060d cdpeq 6, 7, cr0, cr7, cr13, {0} + 153c: 360e062a strcc r0, [lr], -sl, lsr #12 + 1540: 2f020db5 svccs 0x00020db5 + 1544: 300c08b1 strhcc r0, [ip], -r1 + 1548: 0dcc1506 cfstr64eq mvdx1, [ip, #24] + 154c: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} + 1550: 1106300c tstne r6, ip + 1554: 2f040d7b svccs 0x00040d7b + 1558: 300c08b1 strhcc r0, [ip], -r1 + 155c: 0d751706 ldcleq 7, cr1, [r5, #-24]! + 1560: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + 1564: 0a06300c beq 18d59c + 1568: 0e75060d cdpeq 6, 7, cr0, cr5, cr13, {0} + 156c: 360e0620 strcc r0, [lr], -r0, lsr #12 + 1570: 2f020db5 svccs 0x00020db5 + 1574: 300c08b1 strhcc r0, [ip], -r1 + 1578: 0dcc1506 cfstr64eq mvdx1, [ip, #24] + 157c: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} + 1580: 1106300c tstne r6, ip + 1584: 2f040d7b svccs 0x00040d7b + 1588: 300c08b1 strhcc r0, [ip], -r1 + 158c: 0d751706 ldcleq 7, cr1, [r5, #-24]! + 1590: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + 1594: 0a06300c beq 18d5cc + 1598: 0e75060d cdpeq 6, 7, cr0, cr5, cr13, {0} + 159c: 360e0620 strcc r0, [lr], -r0, lsr #12 + 15a0: 2f020db5 svccs 0x00020db5 + 15a4: 300c08b1 strhcc r0, [ip], -r1 + 15a8: 0dcc1506 cfstr64eq mvdx1, [ip, #24] + 15ac: 08b12f03 ldmeq r1!, {r0, r1, r8, r9, sl, fp, sp} + 15b0: 1106300c tstne r6, ip + 15b4: 2f040d7b svccs 0x00040d7b + 15b8: 300c08b1 strhcc r0, [ip], -r1 + 15bc: 0d751706 ldcleq 7, cr1, [r5, #-24]! + 15c0: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + 15c4: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 15c8: 63064a0a movwvs r4, #27146 ; 0x6a0a + 15cc: 0089160e addeq r1, r9, lr, lsl #12 + 15d0: 00010000 andeq r0, r1, r0 + 15d4: 004036c0 subeq r3, r0, r0, asr #13 + 15d8: 00000002 andeq r0, r0, r2 + 15dc: 00328402 eorseq r8, r2, r2, lsl #8 + 15e0: 84810100 strhi r0, [r1], #256 + 15e4: 00000000 andeq r0, r0, r0 + 15e8: 01510000 cmpeq r1, r0 + 15ec: 0119d500 tsteq r9, r0, lsl #10 + 15f0: 00020100 andeq r0, r2, r0, lsl #2 + 15f4: 6c117805 ldcvs 8, cr7, [r1], {5} + 15f8: 00000e29 andeq r0, r0, r9, lsr #28 + 15fc: 01010101 tsteq r1, r1, lsl #2 + 1600: 00010001 andeq r0, r1, r1 + 1604: 01010101 tsteq r1, r1, lsl #2 + 1608: 000251d5 ldrdeq r5, [r2], -r5 + 160c: 0402021e streq r0, [r2], #-542 + 1610: 0a011384 beq 46428 + 1614: 04030801 streq r0, [r3], #-2049 + 1618: 13800301 orrne r0, r0, #67108864 ; 0x4000000 + 161c: 040a2a15 streq r2, [sl], #-2581 + 1620: 682e0c36 stmdavs lr!, {r1, r2, r4, r5, sl, fp} + 1624: b12f020d teqlt pc, sp, lsl #4 + 1628: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 162c: c116040a tstgt r6, sl, lsl #8 + 1630: 0408682e streq r6, [r8], #-2094 + 1634: 0c08b12f stfeqd f3, [r8], {47} + 1638: 040a0630 streq r0, [sl], #-1584 + 163c: 682ec116 stmdavs lr!, {r1, r2, r4, r8, lr, pc} + 1640: b12f0408 teqlt pc, r8, lsl #8 + 1644: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1648: c116040a tstgt r6, sl, lsl #8 + 164c: 0408682e streq r6, [r8], #-2094 + 1650: 0c08b12f stfeqd f3, [r8], {47} + 1654: 0a090630 beq 242f1c + 1658: bcbd106e ldclt 0, cr1, [sp], #440 + 165c: 01000000 tsteq r0, r0 + 1660: 402bb400 eormi fp, fp, r0, lsl #8 + 1664: 00000300 andeq r0, r0, r0, lsl #6 + 1668: 36a30200 strtcc r0, [r3], r0, lsl #4 + 166c: e1010000 tst r1, r0 + 1670: 010000ff strdeq r0, [r0, -pc] + 1674: 0000ffc5 andeq pc, r0, r5, asr #31 + 1678: 00000000 andeq r0, r0, r0 + 167c: d5000151 strle r0, [r0, #-337] + 1680: 01000119 tsteq r0, r9, lsl r1 + 1684: 78050002 stmdavc r5, {r1} + 1688: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 168c: 01010000 tsteq r1, r0 + 1690: 00010101 andeq r0, r1, r1, lsl #2 + 1694: 01010001 tsteq r1, r1 + 1698: 7fd50101 svcvc 0x00d50101 + 169c: 02480002 subeq r0, r8, #2 ; 0x2 + 16a0: 17a80002 strne r0, [r8, r2]! + 16a4: 08013501 stmdaeq r1, {r0, r8, sl, ip, sp} + 16a8: 03010403 movweq r0, #5123 ; 0x1403 + 16ac: 2a1517a4 bcs 547544 + 16b0: 0e060203 cdpeq 2, 0, cr0, cr6, cr3, {0} + 16b4: 020db836 andeq fp, sp, #3538944 ; 0x360000 + 16b8: 0c081422 cfstrseq mvf1, [r8], {34} + 16bc: 02030630 andeq r0, r3, #50331648 ; 0x3000000 + 16c0: b82c741b stmdalt ip!, {r0, r1, r3, r4, sl, ip, sp, lr} + 16c4: ac360b06 ldcge 11, cr0, [r6], #-24 + 16c8: 03370103 teqeq r7, #-1073741824 ; 0xc0000000 + 16cc: 721b0406 andsvc r0, fp, #100663296 ; 0x6000000 + 16d0: 6506d165 strvs sp, [r6, #-357] + 16d4: 0a09c81b beq 273748 + 16d8: 05513d02 ldrbeq r3, [r1, #-3330] + 16dc: 6d100633 ldcvs 6, cr0, [r0, #-204] + 16e0: 057f0a46 ldrbeq r0, [pc, #-2630]! ; ca2 <__USR_stack_size+0x4a2> + 16e4: 05d23b69 ldrbeq r3, [r2, #2921] + 16e8: 6d76066c ldclvs 6, cr0, [r6, #-432]! + 16ec: 020a094f andeq r0, sl, #1294336 ; 0x13c000 + 16f0: 33051722 movwcc r1, #22306 ; 0x5722 + 16f4: d2361006 eorsle r1, r6, #6 ; 0x6 + 16f8: 69057f0a stmdbvs r5, {r1, r3, r8, r9, sl, fp, ip, sp, lr} + 16fc: 0103d23b tsteq r3, fp, lsr r2 + 1700: 8b866c05 blhi fe19c71c + 1704: 6b060103 blvs 181b18 + 1708: a63dc91b undefined + 170c: 1422030d strtne r0, [r2], #-781 + 1710: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1714: 06680a09 strbteq r0, [r8], -r9, lsl #20 + 1718: bc1f0e74 ldclt 14, cr0, [pc], {116} + 171c: 01000001 tsteq r0, r1 + 1720: 402c4400 eormi r4, ip, r0, lsl #8 + 1724: 00000400 andeq r0, r0, r0, lsl #8 + 1728: 384f0200 stmdacc pc, {r9}^ + 172c: 79010000 stmdbvc r1, {} + 1730: 02004023 andeq r4, r0, #35 ; 0x23 + 1734: 000036a3 andeq r3, r0, r3, lsr #13 + 1738: 4038c901 eorsmi ip, r8, r1, lsl #18 + 173c: 00000000 andeq r0, r0, r0 + 1740: 00015100 andeq r5, r1, r0, lsl #2 + 1744: 000119d5 ldrdeq r1, [r1], -r5 + 1748: 05000201 streq r0, [r0, #-513] + 174c: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 1750: 0100000e tsteq r0, lr + 1754: 01010101 tsteq r1, r1, lsl #2 + 1758: 01000100 tsteq r0, r0, lsl #2 + 175c: d5010101 strle r0, [r1, #-257] + 1760: 000202f9 strdeq r0, [r2], -r9 + 1764: 020201c2 andeq r0, r2, #-2147483600 ; 0x80000030 + 1768: 0117ec01 tsteq r7, r1, lsl #24 + 176c: 080101b3 stmdaeq r1, {r0, r1, r4, r5, r7, r8} + 1770: 03010403 movweq r0, #5123 ; 0x1403 + 1774: 2a1517e8 bcs 54771c + 1778: 0631c528 ldrteq ip, [r1], -r8, lsr #10 + 177c: 020a1423 andeq r1, sl, #587202560 ; 0x23000000 + 1780: 0a099151 beq 265ccc + 1784: f44d00c1 vst4. {d16-d19}, [sp], r1 + 1788: 3965230a stmdbcc r5!, {r1, r3, r8, r9, sp}^ + 178c: 3854a131 ldmdacc r4, {r0, r4, r5, r8, sp, pc}^ + 1790: 7714020d ldrvc r0, [r4, -sp, lsl #4] + 1794: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1798: 070a030a streq r0, [sl, -sl, lsl #6] + 179c: 090a080a stmdbeq sl, {r1, r3, fp} + 17a0: 0f0a0b0a svceq 0x000a0b0a + 17a4: 190a180a stmdbne sl, {r1, r3, fp, ip} + 17a8: 390a1d0a stmdbcc sl, {r1, r3, r8, sl, fp, ip} + 17ac: 23143b0a tstcs r4, #10240 ; 0x2800 + 17b0: 09213607 stmdbeq r1!, {r0, r1, r2, r9, sl, ip, sp} + 17b4: 7406390a strvc r3, [r6], #-2314 + 17b8: 02039f44 andeq r9, r3, #272 ; 0x110 + 17bc: 030d503f movweq r5, #53311 ; 0xd03f + 17c0: 0c087714 stceq 7, cr7, [r8], {20} + 17c4: 0a090630 beq 24308c + 17c8: 1b080635 blne 2030a4 + 17cc: 340a0971 strcc r0, [sl], #-2417 + 17d0: 503f0103 eorspl r0, pc, r3, lsl #2 + 17d4: 03330a09 teqeq r3, #36864 ; 0x9000 + 17d8: 03375801 teqeq r7, #65536 ; 0x10000 + 17dc: 09a83c01 stmibeq r8!, {r0, sl, fp, ip, sp} + 17e0: 79062f0a stmdbvc r6, {r1, r3, r8, r9, sl, fp, sp} + 17e4: 13039d44 movwne r9, #15684 ; 0x3d44 + 17e8: 04086d22 streq r6, [r8], #-3362 + 17ec: 0c087714 stceq 7, cr7, [r8], {20} + 17f0: 0a090630 beq 2430b8 + 17f4: 1b0c062d blne 3030b0 + 17f8: 06020371 undefined + 17fc: 08033775 stmdaeq r3, {r0, r2, r4, r5, r6, r8, r9, sl, ip, sp} + 1800: 08771404 ldmdaeq r7!, {r2, sl, ip}^ + 1804: 0a06300c beq 18d83c + 1808: 1b140605 blne 503024 + 180c: 446f0671 strbtmi r0, [pc], #1649 ; 1814 <__USR_stack_size+0x1014> + 1810: 140408a8 strne r0, [r4], #-2216 + 1814: 300c0877 andcc r0, ip, r7, ror r8 + 1818: 1b080606 blne 203038 + 181c: 240a0971 strcs r0, [sl], #-2417 + 1820: 0a09364d beq 24f15c + 1824: 4a0d0323 bmi 3424b8 + 1828: 060303ef streq r0, [r3], -pc, ror #7 + 182c: 08033772 stmdaeq r3, {r1, r4, r5, r6, r8, r9, sl, ip, sp} + 1830: 08771404 ldmdaeq r7!, {r2, sl, ip}^ + 1834: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 1838: 0e061f0a cdpeq 15, 0, cr1, cr6, cr10, {0} + 183c: 0a09711b beq 25dcb0 + 1840: 3d01031e stccc 3, cr0, [r1, #-120] + 1844: 03030aa7 movweq r0, #15015 ; 0x3aa7 + 1848: 440a0606 strmi r0, [sl], #-1542 + 184c: 526f063c rsbpl r0, pc, #62914560 ; 0x3c00000 + 1850: 190a092c stmdbne sl, {r2, r3, r5, r8, fp} + 1854: 3b527406 blcc 149e874 + 1858: 07060d0a streq r0, [r6, -sl, lsl #26] + 185c: 933f1f29 teqls pc, #164 ; 0xa4 + 1860: 040d5339 streq r5, [sp], #-825 + 1864: 9f140405 svcls 0x00140405 + 1868: 0c08020a sfmeq f0, 4, [r8], {10} + 186c: 070a0630 smladxeq sl, r0, r6, r0 + 1870: 7e050104 adfvcs f0, f5, f4 + 1874: 02038733 andeq r8, r3, #13369344 ; 0xcc0000 + 1878: cd14fa9e fldsgt s30, [r4, #-632] + 187c: e1552413 cmp r5, r3, lsl r4 + 1880: 7714020d ldrvc r0, [r4, -sp, lsl #4] + 1884: 080f0a09 stmdaeq pc, {r0, r3, r9, fp} + 1888: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 188c: bc270e0a stclt 14, cr0, [r7], #-40 + 1890: 0603050a streq r0, [r3], -sl, lsl #10 + 1894: 7a069847 bvc 1a79b8 + 1898: 030d5629 movweq r5, #54825 ; 0xd629 + 189c: 0c087714 stceq 7, cr7, [r8], {20} + 18a0: 0a090630 beq 243168 + 18a4: 1b0b0609 blne 2c30d0 + 18a8: 49020a71 stmdbmi r2, {r0, r4, r5, r6, r9, fp} + 18ac: 070a09a9 streq r0, [sl, -r9, lsr #19] + 18b0: 020a3e3f andeq r3, sl, #1008 ; 0x3f0 + 18b4: 0a095448 beq 2569dc + 18b8: 0a314c05 beq c548d4 + 18bc: 06445804 strbeq r5, [r4], -r4, lsl #16 + 18c0: 08f1367e ldmeq r1!, {r1, r2, r3, r4, r5, r6, r9, sl, ip, sp}^ + 18c4: 08771404 ldmdaeq r7!, {r2, sl, ip}^ + 18c8: 1906300c stmdbne r6, {r2, r3, ip, sp} + 18cc: 03221615 teqeq r2, #22020096 ; 0x1500000 + 18d0: 09d41002 ldmibeq r4, {r1, ip}^ + 18d4: 067fb60a ldrbteq fp, [pc], -sl, lsl #12 + 18d8: a9f6367c ldmibge r6!, {r2, r3, r4, r5, r6, r9, sl, ip, sp}^ + 18dc: 01000000 tsteq r0, r0 + 18e0: 403ca400 eorsmi sl, ip, r0, lsl #8 + 18e4: 00000200 andeq r0, r0, r0, lsl #4 + 18e8: 3aa00200 bcc fe8020f0 + 18ec: a7020000 strge r0, [r2, -r0] + 18f0: 0000003b andeq r0, r0, fp, lsr r0 + 18f4: 51000000 tstpl r0, r0 + 18f8: 19d50001 ldmibne r5, {r0}^ + 18fc: 02010001 andeq r0, r1, #1 ; 0x1 + 1900: 11780500 cmnne r8, r0, lsl #10 + 1904: 000e296c andeq r2, lr, ip, ror #18 + 1908: 01010100 tsteq r1, r0, lsl #2 + 190c: 01000101 tsteq r0, r1, lsl #2 + 1910: 01010100 tsteq r1, r0, lsl #2 + 1914: 0225d501 eoreq sp, r5, #4194304 ; 0x400000 + 1918: 02022600 andeq r2, r2, #0 ; 0x0 + 191c: 010fda00 tsteq pc, r0, lsl #20 + 1920: 03080103 movweq r0, #33027 ; 0x8103 + 1924: d6030104 strle r0, [r3], -r4, lsl #2 + 1928: 1b2a150f blne a86d6c + 192c: 087d0a7c ldmdaeq sp!, {r2, r3, r4, r5, r6, r9, fp}^ + 1930: 14020c06 strne r0, [r2], #-3078 + 1934: 7c0a0977 stcvc 9, cr0, [sl], {119} + 1938: e1f51202 mvns r1, r2, lsl #4 + 193c: d5000151 strle r0, [r0, #-337] + 1940: 23000247 movwcs r0, #583 ; 0x247 + 1944: 81000303 tsthi r0, r3, lsl #6 + 1948: 011b0110 tsteq fp, r0, lsl r1 + 194c: 01040308 tsteq r4, r8, lsl #6 + 1950: 150ffd03 strne pc, [pc, #-3331] ; c55 <__USR_stack_size+0x455> + 1954: 1b12062a blne 483204 + 1958: 4ade587c bmi ff797b50 + 195c: 226a22ed rsbcs r2, sl, #-805306354 ; 0xd000000e + 1960: 23a43dc0 undefined instruction 0x23a43dc0 + 1964: 220730be andcs r3, r7, #190 ; 0xbe + 1968: 266a226a strbtcs r2, [sl], -sl, ror #4 + 196c: 1d6a2266 sfmne f2, 2, [sl, #-408]! + 1970: 30a43dc4 adccc r3, r4, r4, asr #27 + 1974: 226a22b1 rsbcs r2, sl, #268435467 ; 0x1000000b + 1978: 0a414b6a beq 1054728 + 197c: 09b42d6c ldmibeq r4!, {r2, r3, r5, r6, r8, sl, fp, sp} + 1980: 01036b0a tsteq r3, sl, lsl #22 + 1984: 220e7106 andcs r7, lr, #-2147483647 ; 0x80000001 + 1988: 0000006a andeq r0, r0, sl, rrx + 198c: 23780001 cmncs r8, #1 ; 0x1 + 1990: 00010040 andeq r0, r1, r0, asr #32 + 1994: a5020000 strge r0, [r2] + 1998: 0100004d tsteq r0, sp, asr #32 + 199c: 8c000000 stchi 0, cr0, [r0], {0} + 19a0: 5100003f tstpl r0, pc, lsr r0 + 19a4: 19d50001 ldmibne r5, {r0}^ + 19a8: 02010001 andeq r0, r1, #1 ; 0x1 + 19ac: 11780500 cmnne r8, r0, lsl #10 + 19b0: 000e296c andeq r2, lr, ip, ror #18 + 19b4: 01010100 tsteq r1, r0, lsl #2 + 19b8: 01000101 tsteq r0, r1, lsl #2 + 19bc: 01010100 tsteq r1, r0, lsl #2 + 19c0: 0233d501 eorseq sp, r3, #4194304 ; 0x400000 + 19c4: 02021100 andeq r1, r2, #0 ; 0x0 + 19c8: 0110bb02 tsteq r0, r2, lsl #22 + 19cc: 0308010c movweq r0, #33036 ; 0x810c + 19d0: 0610b703 ldreq fp, [r0], -r3, lsl #14 + 19d4: 0a791b19 beq 1e48640 + 19d8: 0a202105 beq 809df4 + 19dc: 7a040604 bvc 1031f4 + 19e0: 08b13ac6 ldmeq r1!, {r1, r2, r6, r7, r9, fp, ip, sp} + 19e4: 22010b05 andcs r0, r1, #5120 ; 0x1400 + 19e8: 300c0814 andcc r0, ip, r4, lsl r8 + 19ec: 790a0906 stmdbvc sl, {r1, r2, r8, fp} + 19f0: 5e060503 cfsh32pl mvfx0, mvfx6, #3 + 19f4: 00610e0e rsbeq r0, r1, lr, lsl #28 + 19f8: 00010000 andeq r0, r1, r0 + 19fc: 0040239a umaaleq r2, r0, sl, r3 + 1a00: 00000001 andeq r0, r0, r1 + 1a04: 004ebd02 subeq fp, lr, r2, lsl #26 + 1a08: 00000000 andeq r0, r0, r0 + 1a0c: 00015100 andeq r5, r1, r0, lsl #2 + 1a10: 000119d5 ldrdeq r1, [r1], -r5 + 1a14: 05000201 streq r0, [r0, #-513] + 1a18: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 1a1c: 0100000e tsteq r0, lr + 1a20: 01010101 tsteq r1, r1, lsl #2 + 1a24: 01000100 tsteq r0, r0, lsl #2 + 1a28: d5010101 strle r0, [r1, #-257] + 1a2c: 1a00022e bne 22ec <__USR_stack_size+0x1aec> + 1a30: db040202 blle 102240 + 1a34: 140a0110 strne r0, [sl], #-272 + 1a38: d7030308 strle r0, [r3, -r8, lsl #6] + 1a3c: 1b300610 blne c03284 + 1a40: 06020a79 undefined + 1a44: 09d01b7f ldmibeq r0, {r0, r1, r2, r3, r4, r5, r6, r8, r9, fp, ip}^ + 1a48: 7a717d0a bvc 1c60e78 + 1a4c: 974af93f smlaldxls pc, sl, pc, r9 + 1a50: 12256a22 eorne r6, r5, #139264 ; 0x22000 + 1a54: 06780a09 ldrbteq r0, [r8], -r9, lsl #20 + 1a58: 58ce5f74 stmiapl lr, {r2, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 1a5c: 01000000 tsteq r0, r0 + 1a60: 4023ce00 eormi ip, r3, r0, lsl #28 + 1a64: 00000100 andeq r0, r0, r0, lsl #2 + 1a68: 4fe90200 svcmi 0x00e90200 + 1a6c: 00000000 andeq r0, r0, r0 + 1a70: 01510000 cmpeq r1, r0 + 1a74: 0119d500 tsteq r9, r0, lsl #10 + 1a78: 00020100 andeq r0, r2, r0, lsl #2 + 1a7c: 6c117805 ldcvs 8, cr7, [r1], {5} + 1a80: 00000e29 andeq r0, r0, r9, lsr #28 + 1a84: 01010101 tsteq r1, r1, lsl #2 + 1a88: 00010001 andeq r0, r1, r1 + 1a8c: 01010101 tsteq r1, r1, lsl #2 + 1a90: 000225d5 ldrdeq r2, [r2], -r5 + 1a94: 05020212 streq r0, [r2, #-530] + 1a98: 090110ef stmdbeq r1, {r0, r1, r2, r3, r5, r6, r7, ip} + 1a9c: 03030814 movweq r0, #14356 ; 0x3814 + 1aa0: 180610eb stmdane r6, {r0, r1, r3, r5, r6, r7, ip} + 1aa4: 040a791b streq r7, [sl], #-2331 + 1aa8: 7873d813 ldmdavc r3!, {r0, r1, r4, fp, ip, lr, pc}^ + 1aac: bd24092e stclt 9, cr0, [r4, #-184]! + 1ab0: 037a0a09 cmneq sl, #36864 ; 0x9000 + 1ab4: aad05f01 bge ff4196c0 + 1ab8: 01000000 tsteq r0, r0 + 1abc: 4023f400 eormi pc, r3, r0, lsl #8 + 1ac0: 00000100 andeq r0, r0, r0, lsl #2 + 1ac4: 50f10200 rscspl r0, r1, r0, lsl #4 + 1ac8: 00000000 andeq r0, r0, r0 + 1acc: 01510000 cmpeq r1, r0 + 1ad0: 0119d500 tsteq r9, r0, lsl #10 + 1ad4: 00020100 andeq r0, r2, r0, lsl #2 + 1ad8: 6c117805 ldcvs 8, cr7, [r1], {5} + 1adc: 00000e29 andeq r0, r0, r9, lsr #28 + 1ae0: 01010101 tsteq r1, r1, lsl #2 + 1ae4: 00010001 andeq r0, r1, r1 + 1ae8: 01010101 tsteq r1, r1, lsl #2 + 1aec: 000277d5 ldrdeq r7, [r2], -r5 + 1af0: 0602021a undefined + 1af4: 0e011182 adfeqd f1, f1, f2 + 1af8: 03030814 movweq r0, #14356 ; 0x3814 + 1afc: 130610fe movwne r1, #24830 ; 0x60fe + 1b00: 340e791b strcc r7, [lr], #-2331 + 1b04: 04060a05 streq r0, [r6], #-2565 + 1b08: 7805981b stmdavc r5, {r0, r1, r3, r4, fp, ip, pc} + 1b0c: a63bfc12 undefined + 1b10: 20057e03 andcs r7, r5, r3, lsl #28 + 1b14: 35290506 strcc r0, [r9, #-1286]! + 1b18: 560e6005 strpl r6, [lr], -r5 + 1b1c: 7e036c20 cdpvc 12, 0, cr6, cr3, cr0, {1} + 1b20: 05062005 streq r2, [r6, #-5] + 1b24: 60053529 andvs r3, r5, r9, lsr #10 + 1b28: 6c20560e stcvs 6, cr5, [r0], #-56 + 1b2c: 20057e03 andcs r7, r5, r3, lsl #28 + 1b30: 35290506 strcc r0, [r9, #-1286]! + 1b34: 560e6005 strpl r6, [lr], -r5 + 1b38: 7e036c20 cdpvc 12, 0, cr6, cr3, cr0, {1} + 1b3c: 05062005 streq r2, [r6, #-5] + 1b40: 5e053529 cfsh32pl mvfx3, mvfx5, #25 + 1b44: 040e6d06 streq r6, [lr], #-3334 + 1b48: 14236824 strtne r6, [r3], #-2084 + 1b4c: 7913be22 ldmdbvc r3, {r1, r5, r9, sl, fp, ip, sp, pc} + 1b50: a33d1027 teqge sp, #39 ; 0x27 + 1b54: 0206be22 andeq fp, r6, #544 ; 0x220 + 1b58: 7a06711b bvc 19dfcc + 1b5c: 5f2d290e svcpl 0x002d290e + 1b60: 2e650a09 fmulscs s1, s10, s18 + 1b64: 00008e09 andeq r8, r0, r9, lsl #28 + 1b68: 28000200 stmdacs r0, {r9} + 1b6c: 02004024 andeq r4, r0, #36 ; 0x24 + 1b70: 02000000 andeq r0, r0, #0 ; 0x0 + 1b74: 0000520d andeq r5, r0, sp, lsl #4 + 1b78: 005a4902 subseq r4, sl, r2, lsl #18 + 1b7c: 00000100 andeq r0, r0, r0, lsl #2 + 1b80: 003f8c00 eorseq r8, pc, r0, lsl #24 + 1b84: 00000100 andeq r0, r0, r0, lsl #2 + 1b88: 402ac800 eormi ip, sl, r0, lsl #16 + 1b8c: 00015100 andeq r5, r1, r0, lsl #2 + 1b90: 000119d5 ldrdeq r1, [r1], -r5 + 1b94: 05000201 streq r0, [r0, #-513] + 1b98: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 1b9c: 0100000e tsteq r0, lr + 1ba0: 01010101 tsteq r1, r1, lsl #2 + 1ba4: 01000100 tsteq r0, r0, lsl #2 + 1ba8: d5010101 strle r0, [r1, #-257] + 1bac: 1c00024a sfmne f0, 4, [r0], {74} + 1bb0: 99070202 stmdbls r7, {r1, r9} + 1bb4: 14130111 ldrne r0, [r3], #-273 + 1bb8: 95030308 strls r0, [r3, #-776] + 1bbc: 1b120611 blne 483408 + 1bc0: 23050a79 movwcs r0, #23161 ; 0x5a79 + 1bc4: 06040a74 undefined + 1bc8: 59c67a0a stmibpl r6, {r1, r3, r9, fp, ip, sp, lr}^ + 1bcc: 0b050892 bleq 143e1c + 1bd0: 08885801 stmeq r8, {r0, fp, ip, lr} + 1bd4: 0a06300c beq 18dc0c + 1bd8: 06060304 streq r0, [r6], -r4, lsl #6 + 1bdc: 3c180e66 ldccc 14, cr0, [r8], {102} + 1be0: 14020db0 strne r0, [r2], #-3504 + 1be4: 300c0877 andcc r0, ip, r7, ror r8 + 1be8: 091b1406 ldmdbeq fp, {r1, r2, sl, ip} + 1bec: 01040500 tsteq r4, r0, lsl #10 + 1bf0: 080e0100 stmdaeq lr, {r8} + 1bf4: 0bcc140b bleq ff306c28 + 1bf8: 01000001 tsteq r0, r1 + 1bfc: 40246000 eormi r6, r4, r0 + 1c00: 00000200 andeq r0, r0, r0, lsl #4 + 1c04: 531d0200 tstpl sp, #0 ; 0x0 + 1c08: e9020000 stmdb r2, {} + 1c0c: 0000004f andeq r0, r0, pc, asr #32 + 1c10: 51000000 tstpl r0, r0 + 1c14: 19d50001 ldmibne r5, {r0}^ + 1c18: 02010001 andeq r0, r1, #1 ; 0x1 + 1c1c: 11780500 cmnne r8, r0, lsl #10 + 1c20: 000e296c andeq r2, lr, ip, ror #18 + 1c24: 01010100 tsteq r1, r0, lsl #2 + 1c28: 01000101 tsteq r0, r1, lsl #2 + 1c2c: 01010100 tsteq r1, r0, lsl #2 + 1c30: 01d2d501 bicseq sp, r2, r1, lsl #10 + 1c34: 01a80002 undefined instruction 0x01a80002 + 1c38: bc080202 sfmlt f0, 4, [r8], {2} + 1c3c: 144b0111 strbne r0, [fp], #-273 + 1c40: b8030308 stmdalt r3, {r3, r8, r9} + 1c44: 1b160611 blne 583490 + 1c48: 29100679 ldmdbcs r0, {r0, r3, r4, r5, r6, r9, sl} + 1c4c: 0a0a0a19 beq 2844b8 + 1c50: 0a220a0e beq 884490 + 1c54: 0e550624 cdpeq 6, 5, cr0, cr5, cr4, {1} + 1c58: 30c6e629 sbccc lr, r6, r9, lsr #12 + 1c5c: 1d75175b ldclne 7, cr1, [r5, #-364]! + 1c60: 3d404b1b vstrcc d20, [r0, #-108] + 1c64: 30a33da3 adccc r3, r3, r3, lsr #27 + 1c68: 1e0a095b mcrne 9, 0, r0, cr10, cr11, {2} + 1c6c: 711b2606 tstvc fp, r6, lsl #12 + 1c70: 01031d0a tsteq r3, sl, lsl #26 + 1c74: 776d6406 strbvc r6, [sp, -r6, lsl #8]! + 1c78: 954b1482 strbls r1, [fp, #-1154] + 1c7c: 061a0a09 ldreq r0, [sl], -r9, lsl #20 + 1c80: 0a711b1a beq 1c488f0 + 1c84: 06050319 undefined + 1c88: 66335269 ldrtvs r5, [r3], -r9, ror #4 + 1c8c: 0af83dda beq ffe113fc + 1c90: 74cf1205 strbvc r1, [pc], #517 ; 1c98 <__USR_stack_size+0x1498> + 1c94: 04954b77 ldreq r4, [r5], #2935 + 1c98: 1b1b0601 blne 6c34a4 + 1c9c: 0f0a0971 svceq 0x000a0971 + 1ca0: 9e446406 cdpls 4, 4, cr6, cr4, cr6, {0} + 1ca4: c0230a0a eorgt r0, r3, sl, lsl #20 + 1ca8: 07305a3c undefined + 1cac: 25125b30 ldrcs r5, [r2, #-2864] + 1cb0: a33d404b teqge sp, #75 ; 0x4b + 1cb4: 5b30a33d blpl c2a9b0 + 1cb8: 04080a09 streq r0, [r8], #-2569 + 1cbc: 1b220601 blne 8834c8 + 1cc0: 66010471 undefined + 1cc4: 030a097e movweq r0, #43390 ; 0xa97e + 1cc8: 3b526606 blcc 149b4e8 + 1ccc: 0f060603 svceq 0x00060603 + 1cd0: 6b06f328 blvs 1be978 + 1cd4: 0403d75f streq sp, [r3], #-1887 + 1cd8: 020dd014 andeq sp, sp, #20 ; 0x14 + 1cdc: 0c087714 stceq 7, cr7, [r8], {20} + 1ce0: 0a0a0630 beq 2835a8 + 1ce4: 73075d14 movwvc r5, #32020 ; 0x7d14 + 1ce8: 14cc1479 strbne r1, [ip], #1145 + 1cec: d3cc14cc bicle r1, ip, #-872415232 ; 0xcc000000 + 1cf0: 1b2106b7 blne 8437d4 + 1cf4: 0e5e0671 mrceq 6, 2, r0, cr14, cr1, {3} + 1cf8: 14040829 strne r0, [r4], #-2089 + 1cfc: 300c0877 andcc r0, ip, r7, ror r8 + 1d00: 4c0a0906 stcmi 9, cr0, [sl], {6} + 1d04: 015dc711 cmpeq sp, r1, lsl r7 + 1d08: 00010000 andeq r0, r1, r0 + 1d0c: 004025c0 subeq r2, r0, r0, asr #11 + 1d10: 00000002 andeq r0, r0, r2 + 1d14: 0054bd02 subseq fp, r4, r2, lsl #26 + 1d18: 4fe90200 svcmi 0x00e90200 + 1d1c: 00000000 andeq r0, r0, r0 + 1d20: 01510000 cmpeq r1, r0 + 1d24: 0119d500 tsteq r9, r0, lsl #10 + 1d28: 00020100 andeq r0, r2, r0, lsl #2 + 1d2c: 6c117805 ldcvs 8, cr7, [r1], {5} + 1d30: 00000e29 andeq r0, r0, r9, lsr #28 + 1d34: 01010101 tsteq r1, r1, lsl #2 + 1d38: 00010001 andeq r0, r1, r1 + 1d3c: 01010101 tsteq r1, r1, lsl #2 + 1d40: 0202a4d5 andeq sl, r2, #-721420288 ; 0xd5000000 + 1d44: 02028000 andeq r8, r2, #0 ; 0x0 + 1d48: 12900902 addsne r0, r0, #32768 ; 0x8000 + 1d4c: 08146401 ldmdaeq r4, {r0, sl, sp, lr} + 1d50: 128c0303 addne r0, ip, #201326592 ; 0xc000000 + 1d54: 791b1606 ldmdbvc fp, {r1, r2, r9, sl, ip} + 1d58: 19291006 stmdbne r9!, {r1, r2, ip} + 1d5c: 140a100a strne r1, [sl], #-10 + 1d60: 390a370a stmdbcc sl, {r1, r3, r8, r9, sl, ip, sp} + 1d64: 55063c0a strpl r3, [r6, #-3082] + 1d68: 3507290e strcc r2, [r7, #-2318] + 1d6c: 175b30cd ldrbne r3, [fp, -sp, asr #1] + 1d70: 06672675 undefined + 1d74: 4b632978 blmi 18cc35c + 1d78: 0a404b40 beq 1014a80 + 1d7c: 30063004 andcc r3, r6, r4 + 1d80: 09a33d06 stmibeq r3!, {r1, r2, r8, sl, fp, ip, sp} + 1d84: dd58020a lfmle f0, 2, [r8, #-40] + 1d88: 0630a33d undefined + 1d8c: 0a095b30 beq 258a54 + 1d90: 1b26062d blne 98364c + 1d94: 032c0a71 teqeq ip, #462848 ; 0x71000 + 1d98: 6d640601 stclvs 6, cr0, [r4, #-4]! + 1d9c: 4bb18f77 blmi fec65b80 + 1da0: 290a0995 stmdbcs sl, {r0, r2, r4, r7, r8, fp} + 1da4: 711b1a06 tstvc fp, r6, lsl #20 + 1da8: 0503280a streq r2, [r3, #-2058] + 1dac: 33526906 cmpcc r2, #98304 ; 0x18000 + 1db0: f83dda66 undefined instruction 0xf83dda66 + 1db4: cf12060a svcgt 0x0012060a + 1db8: 954b3d59 strbls r3, [fp, #-3417] + 1dbc: 711b0f06 tstvc fp, r6, lsl #30 + 1dc0: 3d4f0104 stfcce f0, [pc, #-16] + 1dc4: 061d0a09 ldreq r0, [sp], -r9, lsl #20 + 1dc8: 0a756d64 beq 1d5d360 + 1dcc: 0ac4200d beq ff109e08 + 1dd0: e4020317 str r0, [r2], #-791 + 1dd4: 305a3cb4 ldrhcc r3, [sl], #-196 + 1dd8: 065b3007 ldrbeq r3, [fp], -r7 + 1ddc: 06711b05 ldrbteq r1, [r1], -r5, lsl #22 + 1de0: 58c61b73 stmiapl r6, {r0, r1, r4, r5, r6, r8, r9, fp, ip}^ + 1de4: 0a404bdd beq 1014d60 + 1de8: 3d06300a stccc 0, cr3, [r6, #-40] + 1dec: 09dd58a3 ldmibeq sp, {r0, r1, r5, r7, fp, ip, lr}^ + 1df0: 7a66080a bvc 1983e20 + 1df4: 3f4c7703 svccc 0x004c7703 + 1df8: cc14cc14 ldcgt 12, cr12, [r4], {20} + 1dfc: 1f06954b svcne 0x0006954b + 1e00: 0a09711b beq 25e274 + 1e04: 5266060a rsbpl r0, r6, #10485760 ; 0xa00000 + 1e08: 1f03033a svcne 0x0003033a + 1e0c: 3d063070 stccc 0, cr3, [r6, #-448] + 1e10: 060104f8 undefined + 1e14: 0a711b20 beq 1c48a9c + 1e18: 5f6a0608 svcpl 0x006a0608 + 1e1c: 060104d0 undefined + 1e20: 09b63616 ldmibeq r6!, {r1, r2, r4, r9, sl, ip, sp} + 1e24: 6806030a stmdavs r6, {r1, r3, r8, r9} + 1e28: 0f03766d svceq 0x0003766d + 1e2c: e9280d06 stmdb r8!, {r1, r2, r8, sl, fp} + 1e30: d75f6b06 ldrble r6, [pc, -r6, lsl #22] + 1e34: d0140503 andsle r0, r4, r3, lsl #10 + 1e38: 7714020d ldrvc r0, [r4, -sp, lsl #4] + 1e3c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1e40: 01030a0a tsteq r3, sl, lsl #20 + 1e44: 73075d14 movwvc r5, #32020 ; 0x7d14 + 1e48: 14cc1479 strbne r1, [ip], #1145 + 1e4c: d3cc14cc bicle r1, ip, #-872415232 ; 0xcc000000 + 1e50: 1b2106b7 blne 843934 + 1e54: 0e5e0671 mrceq 6, 2, r0, cr14, cr1, {3} + 1e58: 14040829 strne r0, [r4], #-2089 + 1e5c: 300c0877 andcc r0, ip, r7, ror r8 + 1e60: b70a0906 strlt r0, [sl, -r6, lsl #18] + 1e64: fbc8117f blx ff20646a + 1e68: 01000001 tsteq r0, r1 + 1e6c: 4027c000 eormi ip, r7, r0 + 1e70: 00000600 andeq r0, r0, r0, lsl #12 + 1e74: 56950200 ldrpl r0, [r5], r0, lsl #4 + 1e78: 1c020000 stcne 0, cr0, [r2], {0} + 1e7c: 0200005f andeq r0, r0, #95 ; 0x5f + 1e80: 00006024 andeq r6, r0, r4, lsr #32 + 1e84: 4030ed01 eorsmi lr, r0, r1, lsl #26 + 1e88: 4fe90200 svcmi 0x00e90200 + 1e8c: 2d010000 stccs 0, cr0, [r1] + 1e90: 00004031 andeq r4, r0, r1, lsr r0 + 1e94: 51000000 tstpl r0, r0 + 1e98: 19d50001 ldmibne r5, {r0}^ + 1e9c: 02010001 andeq r0, r1, #1 ; 0x1 + 1ea0: 11780500 cmnne r8, r0, lsl #10 + 1ea4: 000e296c andeq r2, lr, ip, ror #18 + 1ea8: 01010100 tsteq r1, r0, lsl #2 + 1eac: 01000101 tsteq r0, r1, lsl #2 + 1eb0: 01010100 tsteq r1, r0, lsl #2 + 1eb4: 01edd501 mvneq sp, r1, lsl #10 + 1eb8: 01de0002 bicseq r0, lr, r2 + 1ebc: fd0a0202 stc2 2, cr0, [sl, #-8] + 1ec0: 144d0112 strbne r0, [sp], #-274 + 1ec4: f9030308 undefined instruction 0xf9030308 + 1ec8: 1b160612 blne 583718 + 1ecc: 29100679 ldmdbcs r0, {r0, r3, r4, r5, r6, r9, sl} + 1ed0: 0a0a0a1a beq 284740 + 1ed4: 06260a24 strteq r0, [r6], -r4, lsr #20 + 1ed8: d9290e55 stmdble r9!, {r0, r2, r4, r6, r9, sl, fp} + 1edc: 175b3029 ldrbne r3, [fp, -r9, lsr #32] + 1ee0: 06030a75 undefined + 1ee4: 4a102917 bmi 40c348 + 1ee8: 230a094c movwcs r0, #43340 ; 0xa94c + 1eec: 020c0608 andeq r0, ip, #8388608 ; 0x800000 + 1ef0: 763d0505 ldrtvc r0, [sp], -r5, lsl #10 + 1ef4: d5077b05 strle r7, [r7, #-2821] + 1ef8: 14010439 strne r0, [r1], #-1081 + 1efc: 1d0a09cf stcne 9, cr0, [sl, #-828] + 1f00: 3b526206 blcc 149a720 + 1f04: 02031f0a andeq r1, r3, #40 ; 0x28 + 1f08: da660d23 ble 198539c + 1f0c: 0b0a954b bleq 2a7440 + 1f10: 3d59cf12 ldclcc 15, cr12, [r9, #-72] + 1f14: 0104954b tsteq r4, fp, asr #10 + 1f18: 711b1e06 tstvc fp, r6, lsl #28 + 1f1c: 0608cc6b streq ip, [r8], -fp, ror #24 + 1f20: 2e05030c cdpcs 3, 0, cr0, cr5, cr12, {0} + 1f24: 5205d92f andpl sp, r5, #770048 ; 0xbc000 + 1f28: 97cc5306 strbls r5, [ip, r6, lsl #6] + 1f2c: b481040d strlt r0, [r1], #1037 + 1f30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1f34: 0a092115 beq 24a390 + 1f38: 0a22150f beq 88737c + 1f3c: 49c02306 stmibmi r0, {r1, r2, r8, r9, sp}^ + 1f40: 300730f7 strdcc r3, [r7], -r7 + 1f44: 1b13065b blne 4c38b8 + 1f48: 0c0a0971 stceq 9, cr0, [sl], {113} + 1f4c: 020c0608 andeq r0, ip, #8388608 ; 0x800000 + 1f50: 01043222 tsteq r4, r2, lsr #4 + 1f54: 64067ef1 strvs r7, [r6], #-3825 + 1f58: 040dd85f streq sp, [sp], #-2143 + 1f5c: 0c081774 stceq 7, cr1, [r8], {116} + 1f60: 21150630 tstcs r5, r0, lsr r6 + 1f64: 15030a09 strne r0, [r3, #-2569] + 1f68: 06070322 streq r0, [r7], -r2, lsr #6 + 1f6c: 06f3280f ldrbteq r2, [r3], pc, lsl #16 + 1f70: 03d75f6b bicseq r5, r7, #428 ; 0x1ac + 1f74: 0dd01404 cfldrdeq mvd1, [r0, #16] + 1f78: 08771405 ldmdaeq r7!, {r0, r2, sl, ip}^ + 1f7c: 0a06300c beq 18dfb4 + 1f80: 1401030a strne r0, [r1], #-778 + 1f84: 7973075d ldmdbvc r3!, {r0, r2, r3, r4, r6, r8, r9, sl}^ + 1f88: cc14cc14 ldcgt 12, cr12, [r4], {20} + 1f8c: b7d3cc14 bfilt ip, r4, (invalid: 24:19) + 1f90: 711b2106 tstvc fp, r6, lsl #2 + 1f94: 290e5e06 stmdbcs lr, {r1, r2, r9, sl, fp, ip, lr} + 1f98: 77140408 ldrvc r0, [r4, -r8, lsl #8] + 1f9c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1fa0: 114a0a09 cmpne sl, r9, lsl #20 + 1fa4: 320151c8 andcc r5, r1, #50 ; 0x32 + 1fa8: 00023fd5 ldrdeq r3, [r2], -r5 + 1fac: 0a030314 beq c2c04 + 1fb0: 06010de5 streq r0, [r1], -r5, ror #27 + 1fb4: 0403081c streq r0, [r3], #-2076 + 1fb8: 0de10301 stcleq 3, cr0, [r1, #4]! + 1fbc: 0205d415 andeq sp, r5, #352321536 ; 0x15000000 + 1fc0: 9b1b3606 blls 6cf7e0 + 1fc4: 0505060d streq r0, [r5, #-1549] + 1fc8: 0c08134b stceq 3, cr1, [r8], {75} + 1fcc: 7b050630 blvc 143894 + 1fd0: 9e1b6506 cfmul32ls mvfx6, mvfx11, mvfx6 + 1fd4: b481040d strlt r0, [r1], #1037 + 1fd8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 1fdc: 16062115 undefined + 1fe0: 0a09711b beq 25e454 + 1fe4: 37680676 undefined + 1fe8: b2015100 andlt r5, r1, #0 ; 0x0 + 1fec: 0232d501 eorseq sp, r2, #4194304 ; 0x400000 + 1ff0: 03040b00 movweq r0, #19200 ; 0x4b00 + 1ff4: 0114a20a tsteq r4, sl, lsl #4 + 1ff8: 03081d13 movweq r1, #36115 ; 0x8d13 + 1ffc: 9e030104 adflss f0, f3, f4 + 2000: 062a1514 undefined + 2004: 0a7e1b16 beq 1f88c64 + 2008: 297c0602 ldmdbcs ip!, {r1, r9, sl}^ + 200c: 040a0964 streq r0, [sl], #-2404 + 2010: 030a6730 movweq r6, #42800 ; 0xa730 + 2014: a52e6b31 strge r6, [lr, #-2865]! + 2018: 741b0506 ldrvc r0, [fp], #-1286 + 201c: 38780a09 ldmdacc r8!, {r0, r3, r9, fp}^ + 2020: f601514c undefined instruction 0xf601514c + 2024: 023fd501 eorseq sp, pc, #4194304 ; 0x400000 + 2028: 03030f00 movweq r0, #16128 ; 0x3f00 + 202c: 010de50a tsteq sp, sl, lsl #10 + 2030: 03081c06 movweq r1, #35846 ; 0x8c06 + 2034: e1030104 tst r3, r4, lsl #2 + 2038: 05d4150d ldrbeq r1, [r4, #1293] + 203c: 1b360602 blne d8384c + 2040: 05060d9b streq r0, [r6, #-3483] + 2044: 08763d05 ldmdaeq r6!, {r0, r2, r8, sl, fp, ip, sp}^ + 2048: 0506300c streq r3, [r6, #-12] + 204c: 0e65067b mcreq 6, 3, r0, cr5, cr11, {3} + 2050: 58040d01 stmdapl r4, {r0, r8, sl, fp} + 2054: 300c08dd ldrdcc r0, [ip], -sp + 2058: 06211506 strteq r1, [r1], -r6, lsl #10 + 205c: 09711b16 ldmdbeq r1!, {r1, r2, r4, r8, r9, fp, ip}^ + 2060: 6806760a stmdavs r6, {r1, r3, r9, sl, ip, sp, lr} + 2064: 01160037 tsteq r6, r7, lsr r0 + 2068: 00020000 andeq r0, r2, r0 + 206c: 0040297c subeq r2, r0, ip, ror r9 + 2070: 00000002 andeq r0, r0, r2 + 2074: 0058c502 subseq ip, r8, r2, lsl #10 + 2078: 4fe90200 svcmi 0x00e90200 + 207c: 00000000 andeq r0, r0, r0 + 2080: 00010000 andeq r0, r1, r0 + 2084: 2ac80000 bcs ff20208c + 2088: 01510040 cmpeq r1, r0, asr #32 + 208c: 0119d500 tsteq r9, r0, lsl #10 + 2090: 00020100 andeq r0, r2, r0, lsl #2 + 2094: 6c117805 ldcvs 8, cr7, [r1], {5} + 2098: 00000e29 andeq r0, r0, r9, lsr #28 + 209c: 01010101 tsteq r1, r1, lsl #2 + 20a0: 00010001 andeq r0, r1, r1 + 20a4: 01010101 tsteq r1, r1, lsl #2 + 20a8: 0201d5d5 andeq sp, r1, #893386752 ; 0x35400000 + 20ac: 0201a600 andeq sl, r1, #0 ; 0x0 + 20b0: 13d30b02 bicsne r0, r3, #2048 ; 0x800 + 20b4: 08144601 ldmdaeq r4, {r0, r9, sl, lr} + 20b8: 13cf0303 bicne r0, pc, #201326592 ; 0xc000000 + 20bc: 791b1606 ldmdbvc fp, {r1, r2, r9, sl, ip} + 20c0: 19291006 stmdbne r9!, {r1, r2, ip} + 20c4: 210a090a tstcs sl, sl, lsl #18 + 20c8: 5506230a strpl r2, [r6, #-778] + 20cc: 8ccb290e stclhi 9, cr2, [fp], {14} + 20d0: 75175b30 ldrvc r5, [r7, #-2864] + 20d4: 17741b1d undefined + 20d8: f83d7a66 undefined instruction 0xf83d7a66 + 20dc: 061e0a09 ldreq r0, [lr], -r9, lsl #20 + 20e0: 0a711b26 beq 1c48d80 + 20e4: 0601031d undefined + 20e8: 66776d66 ldrbtvs r6, [r7], -r6, ror #26 + 20ec: 0a954bda beq fe55505c + 20f0: 12020404 andne r0, r2, #67108864 ; 0x4000000 + 20f4: 030d0acf movweq r0, #56015 ; 0xdacf + 20f8: a49f0707 ldrge r0, [pc], #1799 ; 2100 <__USR_stack_size+0x1900> + 20fc: 02030104 andeq r0, r3, #1 ; 0x1 + 2100: 55441806 strbpl r1, [r4, #-2054] + 2104: 06140a09 ldreq r0, [r4], -r9, lsl #20 + 2108: 03d85f66 bicseq r5, r8, #408 ; 0x198 + 210c: 15b62070 ldrne r2, [r6, #112]! + 2110: 15781421 ldrbne r1, [r8, #-1057]! + 2114: 14791321 ldrbtne r1, [r9], #-801 + 2118: 4bcc14cc blmi ff307450 + 211c: 06010495 undefined + 2120: 09711b21 ldmdbeq r1!, {r0, r5, r8, r9, fp, ip}^ + 2124: 64060a0a strvs r0, [r6], #-2570 + 2128: 7722d85f undefined + 212c: 5b300730 blpl c03df4 + 2130: 17742512 undefined + 2134: 0a09dd58 beq 27969c + 2138: 035b3006 cmpeq fp, #6 ; 0x6 + 213c: 2817060c ldmdacs r7, {r2, r3, r9, sl} + 2140: 5f6b06f3 svcpl 0x006b06f3 + 2144: 140403d7 strne r0, [r4], #-983 + 2148: 14020dd0 strne r0, [r2], #-3536 + 214c: 300c0877 andcc r0, ip, r7, ror r8 + 2150: 030a0a06 movweq r0, #43526 ; 0xaa06 + 2154: 075d1401 ldrbeq r1, [sp, -r1, lsl #8] + 2158: cc147973 ldcgt 9, cr7, [r4], {115} + 215c: cc14cc14 ldcgt 12, cr12, [r4], {20} + 2160: 2106b7d3 ldrdcs fp, [r6, -r3] + 2164: 5e06711b mcrpl 1, 0, r7, cr6, cr11, {0} + 2168: 0408290e streq r2, [r8], #-2318 + 216c: 0c087714 stceq 7, cr7, [r8], {20} + 2170: 661f0630 undefined + 2174: 04050009 streq r0, [r5], #-9 + 2178: 0f010001 svceq 0x00010001 + 217c: cc140b08 ldcgt 11, cr0, [r4], {8} + 2180: 000000d1 ldrdeq r0, [r0], -r1 + 2184: 2aec0001 bcs ffb02190 + 2188: 00030040 andeq r0, r3, r0, asr #32 + 218c: 49020000 stmdbmi r2, {} + 2190: 0200005a andeq r0, r0, #90 ; 0x5a + 2194: 00005dcd andeq r5, r0, sp, asr #27 + 2198: 403a6501 eorsmi r6, sl, r1, lsl #10 + 219c: 00000100 andeq r0, r0, r0, lsl #2 + 21a0: 003f9200 eorseq r9, pc, r0, lsl #4 + 21a4: 00015100 andeq r5, r1, r0, lsl #2 + 21a8: 000119d5 ldrdeq r1, [r1], -r5 + 21ac: 05000201 streq r0, [r0, #-513] + 21b0: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 21b4: 0100000e tsteq r0, lr + 21b8: 01010101 tsteq r1, r1, lsl #2 + 21bc: 01000100 tsteq r0, r0, lsl #2 + 21c0: d5010101 strle r0, [r1, #-257] + 21c4: 0002018f andeq r0, r2, pc, lsl #3 + 21c8: 0c02024c sfmeq f0, 4, [r2], {76} + 21cc: 2c0114be cfstrscs mvf1, [r1], {190} + 21d0: 04030801 streq r0, [r3], #-2049 + 21d4: 14ba0301 ldrtne r0, [sl], #769 + 21d8: 170a2a15 smladne sl, r5, sl, r2 + 21dc: 2e060403 cdpcs 4, 0, cr0, cr6, cr3, {0} + 21e0: 93591b29 cmpls r9, #41984 ; 0xa400 + 21e4: 3953030a ldmdbcc r3, {r1, r3, r8, r9}^ + 21e8: 1b1c5a3d blne 718ae4 + 21ec: 01040d0a tsteq r4, sl, lsl #26 + 21f0: 3f590c22 svccc 0x00590c22 + 21f4: 711b0806 tstvc fp, r6, lsl #16 + 21f8: 0805020d stmdaeq r5, {r0, r2, r3, r9} + 21fc: 0c083c22 stceq 12, cr3, [r8], {34} + 2200: 78050630 stmdavc r5, {r4, r5, r9, sl} + 2204: 9e1b7406 cfmulsls mvf7, mvf11, mvf6 + 2208: af32080a svcge 0x0032080a + 220c: 6428142e strtvs r1, [r8], #-1070 + 2210: 010b0508 tsteq fp, r8, lsl #10 + 2214: 0c08b12f stfeqd f3, [r8], {47} + 2218: 7c060630 stcvc 6, cr0, [r6], {48} + 221c: 0a09290e beq 24c65c + 2220: 03122502 tsteq r2, #8388608 ; 0x800000 + 2224: 0a493c01 beq 1251230 + 2228: 36020608 strcc r0, [r2], -r8, lsl #12 + 222c: 0dc3d3a2 stcleq 3, cr13, [r3, #648] + 2230: 094e3d03 stmdbeq lr, {r0, r1, r8, sl, fp, ip, sp}^ + 2234: 0c08050a cfstr32eq mvfx0, [r8], {10} + 2238: 040a0630 streq r0, [sl], #-1584 + 223c: 05060104 streq r0, [r6, #-260] + 2240: 7a061529 bvc 1876ec + 2244: 04089044 streq r9, [r8], #-68 + 2248: 0c084e3d stceq 14, cr4, [r8], {61} + 224c: 0a090630 beq 243b14 + 2250: 0e670663 cdpeq 6, 6, cr0, cr7, cr3, {3} + 2254: 00006d16 andeq r6, r0, r6, lsl sp + 2258: 84000100 strhi r0, [r0], #-256 + 225c: 0100402b tsteq r0, fp, lsr #32 + 2260: 02000000 andeq r0, r0, #0 ; 0x0 + 2264: 00005dcd andeq r5, r0, sp, asr #27 + 2268: 00000000 andeq r0, r0, r0 + 226c: d5000151 strle r0, [r0, #-337] + 2270: 01000119 tsteq r0, r9, lsl r1 + 2274: 78050002 stmdavc r5, {r1} + 2278: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 227c: 01010000 tsteq r1, r0 + 2280: 00010101 andeq r0, r1, r1, lsl #2 + 2284: 01010001 tsteq r1, r1 + 2288: 3ad50101 bcc ff542694 + 228c: 02180002 andseq r0, r8, #2 ; 0x2 + 2290: 14f30d02 ldrbtne r0, [r3], #3330 + 2294: 08131501 ldmdaeq r3, {r0, r8, sl, ip} + 2298: 03010403 movweq r0, #5123 ; 0x1403 + 229c: 2a1514ef bcs 547660 + 22a0: 1b290306 blne a42ec0 + 22a4: 020a7c11 andeq r7, sl, #4352 ; 0x1100 + 22a8: 0a09ab42 beq 26cfb8 + 22ac: 4e6b2c02 cdpmi 12, 6, cr2, cr11, cr2, {0} + 22b0: 27030a96 undefined + 22b4: 44780607 ldrbtmi r0, [r8], #-1543 + 22b8: 037b0a9e cmneq fp, #647168 ; 0x9e000 + 22bc: 09af2774 stmibeq pc!, {r2, r4, r5, r6, r8, r9, sl, sp} + 22c0: 0a03760a beq dfaf0 + 22c4: 004e9d47 subeq r9, lr, r7, asr #26 + 22c8: 00010000 andeq r0, r1, r0 + 22cc: 004038c8 subeq r3, r0, r8, asr #17 + 22d0: 00000001 andeq r0, r0, r1 + 22d4: 00658d02 rsbeq r8, r5, r2, lsl #26 + 22d8: 00000000 andeq r0, r0, r0 + 22dc: 00015100 andeq r5, r1, r0, lsl #2 + 22e0: 000119d5 ldrdeq r1, [r1], -r5 + 22e4: 05000201 streq r0, [r0, #-513] + 22e8: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 22ec: 0100000e tsteq r0, lr + 22f0: 01010101 tsteq r1, r1, lsl #2 + 22f4: 01000100 tsteq r0, r0, lsl #2 + 22f8: d5010101 strle r0, [r1, #-257] + 22fc: 0300021b movweq r0, #539 ; 0x21b + 2300: cc060202 sfmgt f0, 4, [r6], {2} + 2304: 1b020117 blne 82768 + 2308: 01040308 tsteq r4, r8, lsl #6 + 230c: 1517c803 ldrne ip, [r7, #-2051] + 2310: 7e0a092a cdpvc 9, 0, cr0, cr10, cr10, {1} + 2314: 7c1b0606 ldcvc 6, cr0, [fp], {6} + 2318: 00000117 andeq r0, r0, r7, lsl r1 + 231c: 38d00001 ldmcc r0, {r0}^ + 2320: 00050040 andeq r0, r5, r0, asr #32 + 2324: 9d020000 stcls 0, cr0, [r2] + 2328: 01000066 tsteq r0, r6, rrx + 232c: 00402fbd strheq r2, [r0], #-253 + 2330: 00680802 rsbeq r0, r8, r2, lsl #16 + 2334: 23f50100 mvnscs r0, #0 ; 0x0 + 2338: 18020040 stmdane r2, {r6} + 233c: 00000069 andeq r0, r0, r9, rrx + 2340: 51000000 tstpl r0, r0 + 2344: 19d50001 ldmibne r5, {r0}^ + 2348: 02010001 andeq r0, r1, #1 ; 0x1 + 234c: 11780500 cmnne r8, r0, lsl #10 + 2350: 000e296c andeq r2, lr, ip, ror #18 + 2354: 01010100 tsteq r1, r0, lsl #2 + 2358: 01000101 tsteq r0, r1, lsl #2 + 235c: 01010100 tsteq r1, r0, lsl #2 + 2360: 0257d501 subseq sp, r7, #4194304 ; 0x400000 + 2364: 02025200 andeq r5, r2, #0 ; 0x0 + 2368: 0117eb08 tsteq r7, r8, lsl #22 + 236c: 03081418 movweq r1, #33816 ; 0x8418 + 2370: e7030104 str r0, [r3, -r4, lsl #2] + 2374: 032a1517 teqeq sl, #96468992 ; 0x5c00000 + 2378: 362c0601 strtcc r0, [ip], -r1, lsl #12 + 237c: 060a0ab8 undefined + 2380: 662a0e5e undefined + 2384: 29200630 stmdbcs r0!, {r4, r5, r9, sl} + 2388: 4a020d0e bmi 857c8 + 238c: 300c08eb andcc r0, ip, fp, ror #17 + 2390: 08291106 stmdaeq r9!, {r1, r2, r8, ip} + 2394: 14030c06 strne r0, [r3], #-3078 + 2398: 1b7c0677 blne 1f03d7c + 239c: 14040dc6 strne r0, [r4], #-3526 + 23a0: 300c0877 andcc r0, ip, r7, ror r8 + 23a4: 036d1706 cmneq sp, #1572864 ; 0x180000 + 23a8: 0a2a1001 beq a863b4 + 23ac: 0c060871 stceq 8, cr0, [r6], {113} + 23b0: 09771405 ldmdbeq r7!, {r0, r2, sl, ip}^ + 23b4: 1b02700a blne 9e3e4 + 23b8: 01513afd ldrsheq r3, [r1, #-173] + 23bc: 021dd51e andseq sp, sp, #125829120 ; 0x7800000 + 23c0: 03040100 movweq r0, #16640 ; 0x4100 + 23c4: 0117c008 tsteq r7, r8 + 23c8: 03081403 movweq r1, #33795 ; 0x8403 + 23cc: bc030104 stflts f0, [r3], {4} + 23d0: 062a1517 undefined + 23d4: 097c1b12 ldmdbeq ip!, {r1, r4, r8, r9, fp, ip}^ + 23d8: 1b1c7d0a blne 721808 + 23dc: d5240151 strle r0, [r4, #-337]! + 23e0: 2c000252 sfmcs f0, 4, [r0], {82} + 23e4: 94080306 strls r0, [r8], #-774 + 23e8: 01170118 tsteq r7, r8, lsl r1 + 23ec: 01040308 tsteq r4, r8, lsl #6 + 23f0: 15189003 ldrne r9, [r8, #-3] + 23f4: 1b14062a blne 503ca4 + 23f8: 020a097e andeq r0, sl, #2064384 ; 0x1f8000 + 23fc: 64297706 strtvs r7, [r9], #-1798 + 2400: 62510e05 subsvs r0, r1, #80 ; 0x50 + 2404: 7d057f0a stcvc 15, cr7, [r5, #-40] + 2408: 7d05c548 cfstr32vc mvfx12, [r5, #-288] + 240c: be510706 cdplt 7, 5, cr0, cr1, cr6, {0} + 2410: 10275d2f eorne r5, r7, pc, lsr #26 + 2414: 513b0b2c teqpl fp, ip, lsr #22 + 2418: 07300730 undefined + 241c: 0730a43d undefined + 2420: 0104a43d tsteq r4, sp, lsr r4 + 2424: 48441e06 stmdami r4, {r1, r2, r9, sl, fp, ip}^ + 2428: 01376206 teqeq r7, r6, lsl #4 + 242c: 066e0a09 strbteq r0, [lr], -r9, lsl #20 + 2430: a895446a ldmge r5, {r1, r3, r5, r6, sl, lr} + 2434: 01000000 tsteq r0, r0 + 2438: 40398800 eorsmi r8, r9, r0, lsl #16 + 243c: 00000200 andeq r0, r0, r0, lsl #4 + 2440: 6f340200 svcvs 0x00340200 + 2444: d9010000 stmdble r1, {} + 2448: 00000036 andeq r0, r0, r6, lsr r0 + 244c: 51000000 tstpl r0, r0 + 2450: 19d50001 ldmibne r5, {r0}^ + 2454: 02010001 andeq r0, r1, #1 ; 0x1 + 2458: 11780500 cmnne r8, r0, lsl #10 + 245c: 000e296c andeq r2, lr, ip, ror #18 + 2460: 01010100 tsteq r1, r0, lsl #2 + 2464: 01000101 tsteq r0, r1, lsl #2 + 2468: 01010100 tsteq r1, r0, lsl #2 + 246c: 0270d501 rsbseq sp, r0, #4194304 ; 0x400000 + 2470: 02024a00 andeq r4, r2, #0 ; 0x0 + 2474: 0112cb01 tsteq r2, r1, lsl #22 + 2478: 03081330 movweq r1, #33584 ; 0x8330 + 247c: c7030104 strgt r0, [r3, -r4, lsl #2] + 2480: 062a1512 undefined + 2484: 32f2510a rscscc r5, r2, #-2147483646 ; 0x80000002 + 2488: 30080a5b andcc r0, r8, fp, asr sl + 248c: 3bcd2eb2 blcc ff34df5c + 2490: 3b2116a6 blcc 847f30 + 2494: 22020d51 andcs r0, r2, #5184 ; 0x1440 + 2498: 300c0814 andcc r0, ip, r4, lsl r8 + 249c: 0a211606 beq 847cbc + 24a0: 24030308 strcs r0, [r3], #-776 + 24a4: 2eb63bfc vmovcs.u16 r3, d22[3] + 24a8: 3b211609 blcc 847cd4 + 24ac: 220408fb andcs r0, r4, #16449536 ; 0xfb0000 + 24b0: 300c0814 andcc r0, ip, r4, lsl r8 + 24b4: 0a211606 beq 847cd4 + 24b8: 2602030b strcs r0, [r2], -fp, lsl #6 + 24bc: 3fb83905 svccc 0x00b83905 + 24c0: dc5a074d mrrcle 7, 4, r0, sl, cr13 + 24c4: ca172215 bgt 5cad20 + 24c8: 7b067715 blvc 1a0124 + 24cc: 0408290e streq r2, [r8], #-2318 + 24d0: 0c081422 cfstrseq mvf1, [r8], {34} + 24d4: 21160630 tstcs r6, r0, lsr r6 + 24d8: 03610a09 cmneq r1, #36864 ; 0x9000 + 24dc: 12611f02 rsbne r1, r1, #8 ; 0x8 + 24e0: 01000001 tsteq r0, r1 + 24e4: 40338c00 eorsmi r8, r3, r0, lsl #24 + 24e8: 00000c00 andeq r0, r0, r0, lsl #24 + 24ec: 77b80200 ldrvc r0, [r8, r0, lsl #4]! + 24f0: f4020000 vst4.8 {d0-d3}, [r2], r0 + 24f4: 01000078 tsteq r0, r8, ror r0 + 24f8: 0000ff25 andeq pc, r0, r5, lsr #30 + 24fc: 00fee901 rscseq lr, lr, r1, lsl #18 + 2500: ffc50100 undefined instruction 0xffc50100 + 2504: 4d010000 stcmi 0, cr0, [r1] + 2508: 0100002c tsteq r0, ip, lsr #32 + 250c: 00002ccd andeq r2, r0, sp, asr #25 + 2510: 002f2101 eoreq r2, pc, r1, lsl #2 + 2514: 2e590100 rdfcse f0, f1, f0 + 2518: 71010000 tstvc r1, r0 + 251c: 0100002f tsteq r0, pc, lsr #32 + 2520: 00010798 muleq r1, r8, r7 + 2524: 002fb901 eoreq fp, pc, r1, lsl #18 + 2528: 00000000 andeq r0, r0, r0 + 252c: 00015100 andeq r5, r1, r0, lsl #2 + 2530: 000119d5 ldrdeq r1, [r1], -r5 + 2534: 05000201 streq r0, [r0, #-513] + 2538: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 253c: 0100000e tsteq r0, lr + 2540: 01010101 tsteq r1, r1, lsl #2 + 2544: 01000100 tsteq r0, r0, lsl #2 + 2548: d5010101 strle r0, [r1, #-257] + 254c: 000201a7 andeq r0, r2, r7, lsr #3 + 2550: 00020246 andeq r0, r2, r6, asr #4 + 2554: 520115d9 andpl r1, r1, #910163968 ; 0x36400000 + 2558: 04030801 streq r0, [r3], #-2049 + 255c: 15d50301 ldrbne r0, [r5, #769] + 2560: 04032a15 streq r2, [r3], #-2581 + 2564: 020d5643 andeq r5, sp, #70254592 ; 0x4300000 + 2568: 0c087714 stceq 7, cr7, [r8], {20} + 256c: 04060630 streq r0, [r6], #-1584 + 2570: f93d731b undefined instruction 0xf93d731b + 2574: 48447715 stmdami r4, {r0, r2, r4, r8, r9, sl, ip, sp, lr}^ + 2578: c61b7806 ldrgt r7, [fp], -r6, lsl #16 + 257c: 741b0406 ldrvc r0, [fp], #-1030 + 2580: b12f030d teqlt pc, sp, lsl #6 + 2584: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2588: 040dcf12 streq ip, [sp], #-3858 + 258c: 0c08b12f stfeqd f3, [r8], {47} + 2590: 290f0630 stmdbcs pc, {r4, r5, r9, sl} + 2594: 1422050d strtne r0, [r2], #-1293 + 2598: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 259c: 060d7915 undefined + 25a0: 0c08b12f stfeqd f3, [r8], {47} + 25a4: 78140630 ldmdavc r4, {r4, r5, r9, sl} + 25a8: b12f070d teqlt pc, sp, lsl #14 + 25ac: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 25b0: 78170303 ldmdavc r7, {r0, r1, r8, r9} + 25b4: b12f080d teqlt pc, sp, lsl #16 + 25b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 25bc: 090d2314 stmdbeq sp, {r2, r4, r8, r9, sp} + 25c0: 0c08b12f stfeqd f3, [r8], {47} + 25c4: 20190630 andscs r0, r9, r0, lsr r6 + 25c8: b22f5d2f eorlt r5, pc, #3008 ; 0xbc0 + 25cc: b12f0a0d teqlt pc, sp, lsl #20 + 25d0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 25d4: 77062303 strvc r2, [r6, -r3, lsl #6] + 25d8: 0b0d2c0e bleq 34d618 + 25dc: 0c081422 cfstrseq mvf1, [r8], {34} + 25e0: 29060630 stmdbcs r6, {r4, r5, r9, sl} + 25e4: 0c0d721b sfmeq f7, 4, [sp], {27} + 25e8: 0c08eb4a stceq 11, cr14, [r8], {74} + 25ec: 0a090630 beq 243eb4 + 25f0: 0e490656 mcreq 6, 2, r0, cr9, cr6, {2} + 25f4: 00006520 andeq r6, r0, r0, lsr #10 + 25f8: 18000100 stmdane r0, {r8} + 25fc: 01004034 tsteq r0, r4, lsr r0 + 2600: 02000000 andeq r0, r0, #0 ; 0x0 + 2604: 000078f4 strdeq r7, [r0], -r4 + 2608: 00000000 andeq r0, r0, r0 + 260c: d5000151 strle r0, [r0, #-337] + 2610: 01000119 tsteq r0, r9, lsl r1 + 2614: 78050002 stmdavc r5, {r1} + 2618: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 261c: 01010000 tsteq r1, r0 + 2620: 00010101 andeq r0, r1, r1, lsl #2 + 2624: 01010001 tsteq r1, r1 + 2628: 32d50101 sbcscc r0, r5, #1073741824 ; 0x40000000 + 262c: 02280002 eoreq r0, r8, #2 ; 0x2 + 2630: 16b20102 ldrtne r0, [r2], r2, lsl #2 + 2634: 08010e01 stmdaeq r1, {r0, r9, sl, fp} + 2638: 03010403 movweq r0, #5123 ; 0x1403 + 263c: 2a1516ae bcs 5480fc + 2640: 7e1b2606 cfmsub32vc mvax0, mvfx2, mvfx11, mvfx6 + 2644: e94d1874 stmdb sp, {r2, r4, r5, r6, fp, ip}^ + 2648: c021e056 eorgt lr, r1, r6, asr r0 + 264c: e6511306 ldrb r1, [r1], -r6, lsl #6 + 2650: 875aa53c smmlarhi sl, ip, r5, sl + 2654: 0a09a53c beq 26bb4c + 2658: 7fb40675 svcvc 0x00b40675 + 265c: 005f9344 subseq r9, pc, r4, asr #6 + 2660: 00020000 andeq r0, r2, r0 + 2664: 0040346c subeq r3, r0, ip, ror #8 + 2668: 00000001 andeq r0, r0, r1 + 266c: 007a0402 rsbseq r0, sl, r2, lsl #8 + 2670: 00000000 andeq r0, r0, r0 + 2674: 00000100 andeq r0, r0, r0, lsl #2 + 2678: 40347000 eorsmi r7, r4, r0 + 267c: 00015100 andeq r5, r1, r0, lsl #2 + 2680: 000119d5 ldrdeq r1, [r1], -r5 + 2684: 05000201 streq r0, [r0, #-513] + 2688: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 268c: 0100000e tsteq r0, lr + 2690: 01010101 tsteq r1, r1, lsl #2 + 2694: 01000100 tsteq r0, r0, lsl #2 + 2698: d5010101 strle r0, [r1, #-257] + 269c: 01000224 tsteq r0, r4, lsr #4 + 26a0: dc030202 sfmle f0, 4, [r3], {2} + 26a4: 18020116 stmdane r2, {r1, r2, r4, r8} + 26a8: 01040308 tsteq r4, r8, lsl #6 + 26ac: 1516d803 ldrne sp, [r6, #-2051] + 26b0: 1b03062a blne c3f60 + 26b4: 0500097c streq r0, [r0, #-2428] + 26b8: 01000104 tsteq r0, r4, lsl #2 + 26bc: 140b0811 strne r0, [fp], #-2065 + 26c0: 00004ccc andeq r4, r0, ip, asr #25 + 26c4: 6e000100 adfvss f0, f0, f0 + 26c8: 01004034 tsteq r0, r4, lsr r0 + 26cc: 02000000 andeq r0, r0, #0 ; 0x0 + 26d0: 00007b10 andeq r7, r0, r0, lsl fp + 26d4: 00000000 andeq r0, r0, r0 + 26d8: d5000151 strle r0, [r0, #-337] + 26dc: 01000119 tsteq r0, r9, lsl r1 + 26e0: 78050002 stmdavc r5, {r1} + 26e4: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 26e8: 01010000 tsteq r1, r0 + 26ec: 00010101 andeq r0, r1, r1, lsl #2 + 26f0: 01010001 tsteq r1, r1 + 26f4: 19d50101 ldmibne r5, {r0, r8}^ + 26f8: 02010002 andeq r0, r1, #2 ; 0x2 + 26fc: 16e80402 strbtne r0, [r8], r2, lsl #8 + 2700: 08010201 stmdaeq r1, {r0, r9} + 2704: 03010403 movweq r0, #5123 ; 0x1403 + 2708: 2a1516e4 bcs 5482a0 + 270c: 147e0a09 ldrbtne r0, [lr], #-2569 + 2710: 00007fce andeq r7, r0, lr, asr #31 + 2714: 70000100 andvc r0, r0, r0, lsl #2 + 2718: 02004034 andeq r4, r0, #52 ; 0x34 + 271c: 01000000 tsteq r0, r0 + 2720: 00403471 subeq r3, r0, r1, ror r4 + 2724: 007a0402 rsbseq r0, sl, r2, lsl #8 + 2728: 00000000 andeq r0, r0, r0 + 272c: 00015100 andeq r5, r1, r0, lsl #2 + 2730: 000119d5 ldrdeq r1, [r1], -r5 + 2734: 05000201 streq r0, [r0, #-513] + 2738: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 273c: 0100000e tsteq r0, lr + 2740: 01010101 tsteq r1, r1, lsl #2 + 2744: 01000100 tsteq r0, r0, lsl #2 + 2748: d5010101 strle r0, [r1, #-257] + 274c: 08000221 stmdaeq r0, {r0, r5, r9} + 2750: f3120002 vhadd.u16 d0, d2, d2 + 2754: 01030316 tsteq r3, r6, lsl r3 + 2758: ef030a08 svc 0x00030a08 + 275c: 1b040616 blne 103fbc + 2760: 44080683 strmi r0, [r8], #-1667 + 2764: 090d2a48 stmdbeq sp, {r3, r6, r9, fp, sp} + 2768: 73067c0a movwvc r7, #27658 ; 0x6c0a + 276c: 01515929 cmpeq r1, r9, lsr #18 + 2770: 0221d500 eoreq sp, r1, #0 ; 0x0 + 2774: 00030800 andeq r0, r3, r0, lsl #16 + 2778: 0316de11 tsteq r6, #272 ; 0x110 + 277c: 0a080103 beq 202b90 + 2780: 0616da03 ldreq sp, [r6], -r3, lsl #20 + 2784: 06831b04 streq r1, [r3], r4, lsl #22 + 2788: 2a484408 bcs 12137b0 + 278c: 7c0a090d stcvc 9, cr0, [sl], {13} + 2790: 59297306 stmdbpl r9!, {r1, r2, r8, r9, ip, sp, lr} + 2794: 00000079 andeq r0, r0, r9, ror r0 + 2798: 34800001 strcc r0, [r0], #1 + 279c: 00020040 andeq r0, r2, r0, asr #32 + 27a0: f8020000 undefined instruction 0xf8020000 + 27a4: 0100007c tsteq r0, ip, ror r0 + 27a8: 00003079 andeq r3, r0, r9, ror r0 + 27ac: 00000000 andeq r0, r0, r0 + 27b0: d5000151 strle r0, [r0, #-337] + 27b4: 01000119 tsteq r0, r9, lsl r1 + 27b8: 78050002 stmdavc r5, {r1} + 27bc: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 27c0: 01010000 tsteq r1, r0 + 27c4: 00010101 andeq r0, r1, r1, lsl #2 + 27c8: 01010001 tsteq r1, r1 + 27cc: 41d50101 bicsmi r0, r5, r1, lsl #2 + 27d0: 02230002 eoreq r0, r3, #2 ; 0x2 + 27d4: 179c0802 ldrne r0, [ip, r2, lsl #16] + 27d8: 08010e01 stmdaeq r1, {r0, r9, sl, fp} + 27dc: 03010403 movweq r0, #5123 ; 0x1403 + 27e0: 2a151798 bcs 548648 + 27e4: d5360205 ldrle r0, [r6, #-517]! + 27e8: 2441080a strbcs r0, [r1], #-2058 + 27ec: 7c06915a stfvcd f1, [r6], {90} + 27f0: 4d3f0037 ldcmi 0, cr0, [pc, #-220]! + 27f4: 2900cc06 stmdbcs r0, {r1, r2, sl, fp, lr, pc} + 27f8: 06020d0e streq r0, [r2], -lr, lsl #26 + 27fc: 0a22375d beq 890578 + 2800: 300c087a andcc r0, ip, sl, ror r8 + 2804: 7d0a0906 stcvc 9, cr0, [sl, #-24] + 2808: 85446c06 strbhi r6, [r4, #-3078] + 280c: 45750a09 ldrbmi r0, [r5, #-2569]! + 2810: 0000692b andeq r6, r0, fp, lsr #18 + 2814: 1c000200 sfmne f0, 4, [r0], {0} + 2818: 0100403a tsteq r0, sl, lsr r0 + 281c: 02000000 andeq r0, r0, #0 ; 0x0 + 2820: 0000817f andeq r8, r0, pc, ror r1 + 2824: 00000000 andeq r0, r0, r0 + 2828: 00000001 andeq r0, r0, r1 + 282c: 00403a80 subeq r3, r0, r0, lsl #21 + 2830: d5000151 strle r0, [r0, #-337] + 2834: 01000119 tsteq r0, r9, lsl r1 + 2838: 78050002 stmdavc r5, {r1} + 283c: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 2840: 01010000 tsteq r1, r0 + 2844: 00010101 andeq r0, r1, r1, lsl #2 + 2848: 01010001 tsteq r1, r1 + 284c: 2ed50101 cdpcs 1, 13, cr0, cr5, cr1, {0} + 2850: 020a0002 andeq r0, sl, #2 ; 0x2 + 2854: 13d20002 bicsne r0, r2, #2 ; 0x2 + 2858: 082a0501 stmdaeq sl!, {r0, r8, sl} + 285c: 03010403 movweq r0, #5123 ; 0x1403 + 2860: 2a1513ce bcs 5477a0 + 2864: 19290b06 stmdbne r9!, {r1, r2, r8, r9, fp} + 2868: b32ecc15 teqlt lr, #5376 ; 0x1500 + 286c: f83da33d undefined instruction 0xf83da33d + 2870: 00091f18 andeq r1, r9, r8, lsl pc + 2874: 00010405 andeq r0, r1, r5, lsl #8 + 2878: 0b080901 bleq 204c84 + 287c: 0084cc14 addeq ip, r4, r4, lsl ip + 2880: 00020000 andeq r0, r2, r0 + 2884: 00403a30 subeq r3, r0, r0, lsr sl + 2888: 00000002 andeq r0, r0, r2 + 288c: 00828f02 addeq r8, r2, r2, lsl #30 + 2890: 30ed0100 rsccc r0, sp, r0, lsl #2 + 2894: 00000040 andeq r0, r0, r0, asr #32 + 2898: 00010000 andeq r0, r1, r0 + 289c: 3a880000 bcc fe2028a4 + 28a0: 01510040 cmpeq r1, r0, asr #32 + 28a4: 0119d500 tsteq r9, r0, lsl #10 + 28a8: 00020100 andeq r0, r2, r0, lsl #2 + 28ac: 6c117805 ldcvs 8, cr7, [r1], {5} + 28b0: 00000e29 andeq r0, r0, r9, lsr #28 + 28b4: 01010101 tsteq r1, r1, lsl #2 + 28b8: 00010001 andeq r0, r1, r1 + 28bc: 01010101 tsteq r1, r1, lsl #2 + 28c0: 000244d5 ldrdeq r4, [r2], -r5 + 28c4: 0102020e tsteq r2, lr, lsl #4 + 28c8: 0c0113e0 stceq 3, cr1, [r1], {224} + 28cc: 04030814 streq r0, [r3], #-2068 + 28d0: 13dc0301 bicsne r0, ip, #67108864 ; 0x4000000 + 28d4: 030a2a15 movweq r2, #43541 ; 0xaa15 + 28d8: 09060103 stmdbeq r6, {r0, r1, r8} + 28dc: bd2f1b29 fstmdbxlt pc!, {d1-d20} + 28e0: 04050009 streq r0, [r5], #-9 + 28e4: 13010001 movwne r0, #4097 ; 0x1001 + 28e8: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} + 28ec: 020dc221 andeq ip, sp, #268435458 ; 0x10000002 + 28f0: 0c08dd58 stceq 13, cr13, [r8], {88} + 28f4: 21150630 tstcs r5, r0, lsr r6 + 28f8: 00091c12 andeq r1, r9, r2, lsl ip + 28fc: 00010405 andeq r0, r1, r5, lsl #8 + 2900: 0b081401 bleq 20790c + 2904: 006c6922 rsbeq r6, ip, r2, lsr #18 + 2908: 00020000 andeq r0, r2, r0 + 290c: 00000000 andeq r0, r0, r0 + 2910: 00000002 andeq r0, r0, r2 + 2914: 0083bb02 addeq fp, r3, r2, lsl #22 + 2918: 312d0100 teqcc sp, r0, lsl #2 + 291c: 00000040 andeq r0, r0, r0, asr #32 + 2920: 00010000 andeq r0, r1, r0 + 2924: 3a880000 bcc fe20292c + 2928: 01510040 cmpeq r1, r0, asr #32 + 292c: 0119d500 tsteq r9, r0, lsl #10 + 2930: 00020100 andeq r0, r2, r0, lsl #2 + 2934: 6c117805 ldcvs 8, cr7, [r1], {5} + 2938: 00000e29 andeq r0, r0, r9, lsr #28 + 293c: 01010101 tsteq r1, r1, lsl #2 + 2940: 00010001 andeq r0, r1, r1 + 2944: 01010101 tsteq r1, r1, lsl #2 + 2948: 00022cd5 ldrdeq r2, [r2], -r5 + 294c: 02020206 andeq r0, r2, #1610612736 ; 0x60000000 + 2950: 020113f5 andeq r1, r1, #-738197501 ; 0xd4000003 + 2954: 0403083f streq r0, [r3], #-2111 + 2958: 13f10301 mvnsne r0, #67108864 ; 0x4000000 + 295c: 2a062a15 bcs 18d1b8 + 2960: 020d1929 andeq r1, sp, #671744 ; 0xa4000 + 2964: 0c08d42f cfstrseq mvf13, [r8], {47} + 2968: 00090630 andeq r0, r9, r0, lsr r6 + 296c: 00010405 andeq r0, r1, r5, lsl #8 + 2970: 0b081501 bleq 207d7c + 2974: 0061cc14 rsbeq ip, r1, r4, lsl ip + 2978: 00020000 andeq r0, r2, r0 + 297c: 00403a54 subeq r3, r0, r4, asr sl + 2980: 00000001 andeq r0, r0, r1 + 2984: 0084c302 addeq ip, r4, r2, lsl #6 + 2988: 00000000 andeq r0, r0, r0 + 298c: 00000100 andeq r0, r0, r0, lsl #2 + 2990: 403a8400 eorsmi r8, sl, r0, lsl #8 + 2994: 00015100 andeq r5, r1, r0, lsl #2 + 2998: 000119d5 ldrdeq r1, [r1], -r5 + 299c: 05000201 streq r0, [r0, #-513] + 29a0: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 29a4: 0100000e tsteq r0, lr + 29a8: 01010101 tsteq r1, r1, lsl #2 + 29ac: 01000100 tsteq r0, r0, lsl #2 + 29b0: d5010101 strle r0, [r1, #-257] + 29b4: 08000226 stmdaeq r0, {r1, r2, r5, r9} + 29b8: 81030202 tsthi r3, r2, lsl #4 + 29bc: 2a030114 bcs c2e14 + 29c0: 01040308 tsteq r4, r8, lsl #6 + 29c4: 1513fd03 ldrne pc, [r3, #-3331] + 29c8: 2908062a stmdbcs r8, {r1, r3, r5, r9, sl} + 29cc: 09cc6a19 stmibeq ip, {r0, r3, r4, r9, fp, sp, lr}^ + 29d0: 01040500 tsteq r4, r0, lsl #10 + 29d4: 080b0100 stmdaeq fp, {r8} + 29d8: 7ecc140b cdpvc 4, 12, cr1, cr12, cr11, {0} + 29dc: 02000000 andeq r0, r0, #0 ; 0x0 + 29e0: 00000000 andeq r0, r0, r0 + 29e4: 00000200 andeq r0, r0, r0, lsl #4 + 29e8: 85ef0200 strbhi r0, [pc, #512]! ; 2bf0 <__USR_stack_size+0x23f0> + 29ec: 00010000 andeq r0, r1, r0 + 29f0: 00000000 andeq r0, r0, r0 + 29f4: 01000000 tsteq r0, r0 + 29f8: 88000000 stmdahi r0, {} + 29fc: 5100403a tstpl r0, sl, lsr r0 + 2a00: 19d50001 ldmibne r5, {r0}^ + 2a04: 02010001 andeq r0, r1, #1 ; 0x1 + 2a08: 11780500 cmnne r8, r0, lsl #10 + 2a0c: 000e296c andeq r2, lr, ip, ror #18 + 2a10: 01010100 tsteq r1, r0, lsl #2 + 2a14: 01000101 tsteq r0, r1, lsl #2 + 2a18: 01010100 tsteq r1, r0, lsl #2 + 2a1c: 023ed501 eorseq sp, lr, #4194304 ; 0x400000 + 2a20: 02020b00 andeq r0, r2, #0 ; 0x0 + 2a24: 01148e04 tsteq r4, r4, lsl #28 + 2a28: 03081e06 movweq r1, #36358 ; 0x8e06 + 2a2c: 8a030104 bhi c2e44 + 2a30: 0a2a1514 beq a87e88 + 2a34: 29090603 stmdbcs r9, {r0, r1, r9, sl} + 2a38: 09915a19 ldmibeq r1, {r0, r3, r4, r9, fp, ip, lr} + 2a3c: 01040500 tsteq r4, r0, lsl #10 + 2a40: 08160100 ldmdaeq r6, {r8} + 2a44: 2069220b rsbcs r2, r9, fp, lsl #4 + 2a48: 14020dc3 strne r0, [r2], #-3523 + 2a4c: 300c089a mulcc ip, sl, r8 + 2a50: 05000906 streq r0, [r0, #-2310] + 2a54: 01000104 tsteq r0, r4, lsl #2 + 2a58: 140b0817 strne r0, [fp], #-2071 + 2a5c: 000079cc andeq r7, r0, ip, asr #19 + 2a60: 64000200 strvs r0, [r0], #-512 + 2a64: 0100403a tsteq r0, sl, lsr r0 + 2a68: 02000000 andeq r0, r0, #0 ; 0x0 + 2a6c: 00008707 andeq r8, r0, r7, lsl #14 + 2a70: 00000000 andeq r0, r0, r0 + 2a74: 00000002 andeq r0, r0, r2 + 2a78: 00403a88 subeq r3, r0, r8, lsl #21 + 2a7c: 00403a80 subeq r3, r0, r0, lsl #21 + 2a80: d5000151 strle r0, [r0, #-337] + 2a84: 01000119 tsteq r0, r9, lsl r1 + 2a88: 78050002 stmdavc r5, {r1} + 2a8c: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 2a90: 01010000 tsteq r1, r0 + 2a94: 00010101 andeq r0, r1, r1, lsl #2 + 2a98: 01010001 tsteq r1, r1 + 2a9c: 3ad50101 bcc ff542ea8 + 2aa0: 020e0002 andeq r0, lr, #2 ; 0x2 + 2aa4: 149f0502 ldrne r0, [pc], #1282 ; 2aac <__USR_stack_size+0x22ac> + 2aa8: 082c0901 stmdaeq ip!, {r0, r8, fp} + 2aac: 03010403 movweq r0, #5123 ; 0x1403 + 2ab0: 2a15149b bcs 547d24 + 2ab4: 0806030a stmdaeq r6, {r1, r3, r8, r9} + 2ab8: ae3d1a29 faddsge s2, s26, s19 + 2abc: 04050009 streq r0, [r5], #-9 + 2ac0: 18010001 stmdane r1, {r0} + 2ac4: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} + 2ac8: cf676f24 svcgt 0x00676f24 + 2acc: 0009b031 andeq fp, r9, r1, lsr r0 + 2ad0: 01010405 tsteq r1, r5, lsl #8 + 2ad4: 0b080a01 bleq 2052e0 + 2ad8: 009dcc14 addseq ip, sp, r4, lsl ip + 2adc: 00020000 andeq r0, r2, r0 + 2ae0: 00403a80 subeq r3, r0, r0, lsl #21 + 2ae4: 00000002 andeq r0, r0, r2 + 2ae8: 00870702 addeq r0, r7, r2, lsl #14 + 2aec: 817f0200 cmnhi pc, r0, lsl #4 + 2af0: 00000000 andeq r0, r0, r0 + 2af4: 00010000 andeq r0, r1, r0 + 2af8: 3a840000 bcc fe102b00 + 2afc: 01510040 cmpeq r1, r0, asr #32 + 2b00: 0119d500 tsteq r9, r0, lsl #10 + 2b04: 00020100 andeq r0, r2, r0, lsl #2 + 2b08: 6c117805 ldcvs 8, cr7, [r1], {5} + 2b0c: 00000e29 andeq r0, r0, r9, lsr #28 + 2b10: 01010101 tsteq r1, r1, lsl #2 + 2b14: 00010001 andeq r0, r1, r1 + 2b18: 01010101 tsteq r1, r1, lsl #2 + 2b1c: 00022cd5 ldrdeq r2, [r2], -r5 + 2b20: 0a000202 beq 3330 + 2b24: 000614a8 andeq r1, r6, r8, lsr #9 + 2b28: 030a082c movweq r0, #43052 ; 0xa82c + 2b2c: 180614a4 stmdane r6, {r2, r5, r7, sl, ip} + 2b30: 0009921b andeq r9, r9, fp, lsl r2 + 2b34: 00010405 andeq r0, r1, r5, lsl #8 + 2b38: 0b080e01 bleq 206344 + 2b3c: 00096922 andeq r6, r9, r2, lsr #18 + 2b40: 00010405 andeq r0, r1, r5, lsl #8 + 2b44: 0b081c01 bleq 209b50 + 2b48: 01516922 cmpeq r1, r2, lsr #18 + 2b4c: 022cd500 eoreq sp, ip, #0 ; 0x0 + 2b50: 00030200 andeq r0, r3, r0, lsl #4 + 2b54: 0313d709 tsteq r3, #2359296 ; 0x240000 + 2b58: 0a082a00 beq 20d360 + 2b5c: 0613d303 ldreq sp, [r3], -r3, lsl #6 + 2b60: 09831b16 stmibeq r3, {r1, r2, r4, r8, r9, fp, ip} + 2b64: 01040500 tsteq r4, r0, lsl #10 + 2b68: 080d0100 stmdaeq sp, {r8} + 2b6c: 0969220b stmdbeq r9!, {r0, r1, r3, r9, sp}^ + 2b70: 01040500 tsteq r4, r0, lsl #10 + 2b74: 081b0100 ldmdaeq fp, {r8} + 2b78: 1669220b strbtne r2, [r9], -fp, lsl #4 + 2b7c: 02000001 andeq r0, r0, #1 ; 0x1 + 2b80: 403a8400 eorsmi r8, sl, r0, lsl #8 + 2b84: 00000400 andeq r0, r0, r0, lsl #8 + 2b88: 817f0200 cmnhi pc, r0, lsl #4 + 2b8c: 07020000 streq r0, [r2, -r0] + 2b90: 01000087 smlabbeq r0, r7, r0, r0 + 2b94: 0040239b umaaleq r2, r0, fp, r3 + 2b98: 0084c302 addeq ip, r4, r2, lsl #6 + 2b9c: 00000000 andeq r0, r0, r0 + 2ba0: 00000100 andeq r0, r0, r0, lsl #2 + 2ba4: 403a8800 eorsmi r8, sl, r0, lsl #16 + 2ba8: 00015100 andeq r5, r1, r0, lsl #2 + 2bac: 000119d5 ldrdeq r1, [r1], -r5 + 2bb0: 05000401 streq r0, [r0, #-1025] + 2bb4: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 2bb8: 0100000e tsteq r0, lr + 2bbc: 01010101 tsteq r1, r1, lsl #2 + 2bc0: 01000100 tsteq r0, r0, lsl #2 + 2bc4: d5010101 strle r0, [r1, #-257] + 2bc8: 01000220 tsteq r0, r0, lsr #4 + 2bcc: d71b0002 ldrle r0, [fp, -r2] + 2bd0: 2a000313 bcs 3824 + 2bd4: d3030a08 movwle r0, #14856 ; 0x3a08 + 2bd8: 1b160613 blne 58442c + 2bdc: 05000983 streq r0, [r0, #-2435] + 2be0: 01000104 tsteq r0, r4, lsl #2 + 2be4: 220b081d andcs r0, fp, #1900544 ; 0x1d0000 + 2be8: 00015169 andeq r5, r1, r9, ror #2 + 2bec: 000220d5 ldrdeq r2, [r2], -r5 + 2bf0: 1c000301 stcne 3, cr0, [r0], {1} + 2bf4: 000614a8 andeq r1, r6, r8, lsr #9 + 2bf8: 030a082c movweq r0, #43052 ; 0xa82c + 2bfc: 180614a4 stmdane r6, {r2, r5, r7, sl, ip} + 2c00: 0009921b andeq r9, r9, fp, lsl r2 + 2c04: 00010405 andeq r0, r1, r5, lsl #8 + 2c08: 0b081e01 bleq 20a414 + 2c0c: 01516922 cmpeq r1, r2, lsr #18 + 2c10: 0228d500 eoreq sp, r8, #0 ; 0x0 + 2c14: 00030100 andeq r0, r3, r0, lsl #2 + 2c18: 0614a80e ldreq sl, [r4], -lr, lsl #16 + 2c1c: 0a082c00 beq 20dc24 + 2c20: 0614a403 ldreq sl, [r4], -r3, lsl #8 + 2c24: 0d921b18 vldreq d1, [r2, #96] + 2c28: 089a1403 ldmeq sl, {r0, r1, sl, ip} + 2c2c: 0969220c stmdbeq r9!, {r2, r3, r9, sp}^ + 2c30: 01040500 tsteq r4, r0, lsl #10 + 2c34: 08120100 ldmdaeq r2, {r8} + 2c38: 51cc140b bicpl r1, ip, fp, lsl #8 + 2c3c: 28d50001 ldmcs r5, {r0}^ + 2c40: 02010002 andeq r0, r1, #2 ; 0x2 + 2c44: 13d70d00 bicsne r0, r7, #0 ; 0x0 + 2c48: 082a0003 stmdaeq sl!, {r0, r1} + 2c4c: 13d3030a bicsne r0, r3, #671088640 ; 0x28000000 + 2c50: 831b1606 tsthi fp, #6291456 ; 0x600000 + 2c54: 9a14030d bls 503890 + 2c58: 69220c08 stmdbvs r2!, {r3, sl, fp} + 2c5c: 04050009 streq r0, [r5], #-9 + 2c60: 11010001 tstne r1, r1 + 2c64: cc140b08 ldcgt 11, cr0, [r4], {8} + 2c68: d5000151 strle r0, [r0, #-337] + 2c6c: 01000228 tsteq r0, r8, lsr #4 + 2c70: 840b0005 strhi r0, [fp], #-5 + 2c74: 2a000314 bcs 38cc + 2c78: 80030a08 andhi r0, r3, r8, lsl #20 + 2c7c: 1b160614 blne 5844d4 + 2c80: 14030d83 strne r0, [r3], #-3459 + 2c84: 220c089a andcs r0, ip, #10092544 ; 0x9a0000 + 2c88: 05000969 streq r0, [r0, #-2409] + 2c8c: 01000104 tsteq r0, r4, lsl #2 + 2c90: 140b0810 strne r0, [fp], #-2064 + 2c94: 000082cc andeq r8, r0, ip, asr #5 + 2c98: 8e000200 cdphi 2, 0, cr0, cr0, cr0, {0} + 2c9c: 0200403a andeq r4, r0, #58 ; 0x3a + 2ca0: 02000000 andeq r0, r0, #0 ; 0x0 + 2ca4: 000089db ldrdeq r8, [r0], -fp + 2ca8: 403dc901 eorsmi ip, sp, r1, lsl #18 + 2cac: 00000000 andeq r0, r0, r0 + 2cb0: 00000100 andeq r0, r0, r0, lsl #2 + 2cb4: 403a8800 eorsmi r8, sl, r0, lsl #16 + 2cb8: 00015100 andeq r5, r1, r0, lsl #2 + 2cbc: 000119d5 ldrdeq r1, [r1], -r5 + 2cc0: 05000201 streq r0, [r0, #-513] + 2cc4: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 2cc8: 0100000e tsteq r0, lr + 2ccc: 01010101 tsteq r1, r1, lsl #2 + 2cd0: 01000100 tsteq r0, r0, lsl #2 + 2cd4: d5010101 strle r0, [r1, #-257] + 2cd8: 0a000242 beq 35e8 + 2cdc: c8070202 stmdagt r7, {r1, r9} + 2ce0: 14090114 strne r0, [r9], #-276 + 2ce4: 01040308 tsteq r4, r8, lsl #6 + 2ce8: 1514c403 ldrne ip, [r4, #-1027] + 2cec: 06030a2a streq r0, [r3], -sl, lsr #20 + 2cf0: 311a2905 tstcc sl, r5, lsl #18 + 2cf4: 05000910 streq r0, [r0, #-2320] + 2cf8: 01000104 tsteq r0, r4, lsl #2 + 2cfc: 220b0819 andcs r0, fp, #1638400 ; 0x190000 + 2d00: 0d112869 ldceq 8, cr2, [r1, #-420] + 2d04: 08142202 ldmdaeq r4, {r1, r9, sp} + 2d08: 0606300c streq r3, [r6], -ip + 2d0c: 09200e7b stmdbeq r0!, {r0, r1, r3, r4, r5, r6, r9, sl, fp} + 2d10: 01040500 tsteq r4, r0, lsl #10 + 2d14: 081a0100 ldmdaeq sl, {r8} + 2d18: 5e69220b cdppl 2, 6, cr2, cr9, cr11, {0} + 2d1c: 01000000 tsteq r0, r0 + 2d20: 403e7000 eorsmi r7, lr, r0 + 2d24: 00000100 andeq r0, r0, r0, lsl #2 + 2d28: 8bd60200 blhi ff583530 + 2d2c: 00000000 andeq r0, r0, r0 + 2d30: 01510000 cmpeq r1, r0 + 2d34: 0119d500 tsteq r9, r0, lsl #10 + 2d38: 00020100 andeq r0, r2, r0, lsl #2 + 2d3c: 6c117805 ldcvs 8, cr7, [r1], {5} + 2d40: 00000e29 andeq r0, r0, r9, lsr #28 + 2d44: 01010101 tsteq r1, r1, lsl #2 + 2d48: 00010001 andeq r0, r1, r1 + 2d4c: 01010101 tsteq r1, r1, lsl #2 + 2d50: 00022bd5 ldrdeq r2, [r2], -r5 + 2d54: 00020214 andeq r0, r2, r4, lsl r2 + 2d58: 0c0104b9 cfstrseq mvf0, [r1], {185} + 2d5c: 04030801 streq r0, [r3], #-2049 + 2d60: 04b50301 ldrteq r0, [r5], #769 + 2d64: 17062a15 smladne r6, r5, sl, r2 + 2d68: a6477d1b undefined + 2d6c: 05067f0a streq r7, [r6, #-3850] + 2d70: 7e06c036 mcrvc 0, 0, ip, cr6, cr6, {1} + 2d74: 0a09e436 beq 27be54 + 2d78: 3671067a undefined + 2d7c: 000075f6 strdeq r7, [r0], -r6 + 2d80: 60000200 andvs r0, r0, r0, lsl #4 + 2d84: 02004009 andeq r4, r0, #9 ; 0x9 + 2d88: 02000000 andeq r0, r0, #0 ; 0x0 + 2d8c: 000099f7 strdeq r9, [r0], -r7 + 2d90: 40348101 eorsmi r8, r4, r1, lsl #2 + 2d94: 00000000 andeq r0, r0, r0 + 2d98: 00000100 andeq r0, r0, r0, lsl #2 + 2d9c: 400e4c00 andmi r4, lr, r0, lsl #24 + 2da0: 00015100 andeq r5, r1, r0, lsl #2 + 2da4: 000119d5 ldrdeq r1, [r1], -r5 + 2da8: 05000201 streq r0, [r0, #-513] + 2dac: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 2db0: 0100000e tsteq r0, lr + 2db4: 01010101 tsteq r1, r1, lsl #2 + 2db8: 01000100 tsteq r0, r0, lsl #2 + 2dbc: d5010101 strle r0, [r1, #-257] + 2dc0: 12000235 andne r0, r0, #1342177283 ; 0x50000003 + 2dc4: ab000202 blge 35d4 + 2dc8: 01090147 tsteq r9, r7, asr #2 + 2dcc: 01040308 tsteq r4, r8, lsl #6 + 2dd0: 00c7a703 sbceq sl, r7, r3, lsl #14 + 2dd4: 02062a15 andeq r2, r6, #86016 ; 0x15000 + 2dd8: de582429 cdple 4, 5, cr2, cr8, cr9, {1} + 2ddc: b031ef47 eorslt lr, r1, r7, asr #30 + 2de0: 1422020d strtne r0, [r2], #-525 + 2de4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2de8: 00096b0f andeq r6, r9, pc, lsl #22 + 2dec: 00010405 andeq r0, r1, r5, lsl #8 + 2df0: 0b082401 bleq 20bdfc + 2df4: 0060cc14 rsbeq ip, r0, r4, lsl ip + 2df8: 00020000 andeq r0, r2, r0 + 2dfc: 00400984 subeq r0, r0, r4, lsl #19 + 2e00: 00000001 andeq r0, r0, r1 + 2e04: 009b1b02 addseq r1, fp, r2, lsl #22 + 2e08: 00000000 andeq r0, r0, r0 + 2e0c: 00000100 andeq r0, r0, r0, lsl #2 + 2e10: 4009a800 andmi sl, r9, r0, lsl #16 + 2e14: 00015100 andeq r5, r1, r0, lsl #2 + 2e18: 000119d5 ldrdeq r1, [r1], -r5 + 2e1c: 05000201 streq r0, [r0, #-513] + 2e20: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 2e24: 0100000e tsteq r0, lr + 2e28: 01010101 tsteq r1, r1, lsl #2 + 2e2c: 01000100 tsteq r0, r0, lsl #2 + 2e30: d5010101 strle r0, [r1, #-257] + 2e34: 04000225 streq r0, [r0], #-549 + 2e38: b6010202 strlt r0, [r1], -r2, lsl #4 + 2e3c: 21020147 tstcs r2, r7, asr #2 + 2e40: 01040308 tsteq r4, r8, lsl #6 + 2e44: 00c7b203 sbceq fp, r7, r3, lsl #4 + 2e48: 0c062a15 stceq 10, cr2, [r6], {21} + 2e4c: 0009d436 andeq sp, r9, r6, lsr r4 + 2e50: 00010405 andeq r0, r1, r5, lsl #8 + 2e54: 0b081701 bleq 208a60 + 2e58: 00796922 rsbseq r6, r9, r2, lsr #18 + 2e5c: 00020000 andeq r0, r2, r0 + 2e60: 0040098c subeq r0, r0, ip, lsl #19 + 2e64: 00000002 andeq r0, r0, r2 + 2e68: 009c3302 addseq r3, ip, r2, lsl #6 + 2e6c: 99f70200 ldmibls r7!, {r9}^ + 2e70: 00000000 andeq r0, r0, r0 + 2e74: 00010000 andeq r0, r1, r0 + 2e78: 09a80000 stmibeq r8!, {} + 2e7c: 01510040 cmpeq r1, r0, asr #32 + 2e80: 0119d500 tsteq r9, r0, lsl #10 + 2e84: 00020100 andeq r0, r2, r0, lsl #2 + 2e88: 6c117805 ldcvs 8, cr7, [r1], {5} + 2e8c: 00000e29 andeq r0, r0, r9, lsr #28 + 2e90: 01010101 tsteq r1, r1, lsl #2 + 2e94: 00010001 andeq r0, r1, r1 + 2e98: 01010101 tsteq r1, r1, lsl #2 + 2e9c: 000239d5 ldrdeq r3, [r2], -r5 + 2ea0: 0202020e andeq r0, r2, #-536870912 ; 0xe0000000 + 2ea4: 040147bc streq r4, [r1], #-1980 + 2ea8: 04030821 streq r0, [r3], #-2081 + 2eac: c7b80301 ldrgt r0, [r8, r1, lsl #6]! + 2eb0: 062a1500 strteq r1, [sl], -r0, lsl #10 + 2eb4: 0dd4360d ldcleq 6, cr3, [r4, #52] + 2eb8: 08142202 ldmdaeq r4, {r1, r9, sp} + 2ebc: 1506300c strne r3, [r6, #-12] + 2ec0: 3d040822 stccc 8, cr0, [r4, #-136] + 2ec4: 300c084e andcc r0, ip, lr, asr #16 + 2ec8: 09cd1406 stmibeq sp, {r1, r2, sl, ip}^ + 2ecc: 01040500 tsteq r4, r0, lsl #10 + 2ed0: 08180100 ldmdaeq r8, {r8} + 2ed4: a2404b0b subge r4, r0, #11264 ; 0x2c00 + 2ed8: 01000000 tsteq r0, r0 + 2edc: 4009a800 andmi sl, r9, r0, lsl #16 + 2ee0: 00000300 andeq r0, r0, r0, lsl #6 + 2ee4: 9c330200 lfmls f0, 4, [r3] + 2ee8: f7020000 undefined instruction 0xf7020000 + 2eec: 02000099 andeq r0, r0, #153 ; 0x99 + 2ef0: 00009b1b andeq r9, r0, fp, lsl fp + 2ef4: 00000000 andeq r0, r0, r0 + 2ef8: d5000151 strle r0, [r0, #-337] + 2efc: 01000119 tsteq r0, r9, lsl r1 + 2f00: 78050002 stmdavc r5, {r1} + 2f04: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 2f08: 01010000 tsteq r1, r0 + 2f0c: 00010101 andeq r0, r1, r1, lsl #2 + 2f10: 01010001 tsteq r1, r1 + 2f14: 30d50101 sbcscc r0, r5, r1, lsl #2 + 2f18: 020a0002 andeq r0, sl, #2 ; 0x2 + 2f1c: 47c01800 strbmi r1, [r0, r0, lsl #16] + 2f20: 08010209 stmdaeq r1, {r0, r3, r9} + 2f24: c7bc030a ldrgt r0, [ip, sl, lsl #6]! + 2f28: 06010500 streq r0, [r1], -r0, lsl #10 + 2f2c: 0d9c1b0d vldreq d1, [ip, #52] + 2f30: 08771402 ldmdaeq r7!, {r1, sl, ip}^ + 2f34: 1306300c movwne r3, #24588 ; 0x600c + 2f38: 2f040879 svccs 0x00040879 + 2f3c: 300c08b1 strhcc r0, [ip], -r1 + 2f40: 790a0906 stmdbvc sl, {r1, r2, r8, fp} + 2f44: 010e7a06 tsteq lr, r6, lsl #20 + 2f48: d5000151 strle r0, [r0, #-337] + 2f4c: 0a000230 beq 3814 + 2f50: b8170004 ldmdalt r7, {r2} + 2f54: 01020947 tsteq r2, r7, asr #18 + 2f58: b4030a08 strlt r0, [r3], #-2568 + 2f5c: 010500c7 smlabteq r5, r7, r0, r0 + 2f60: 9c1b0d06 ldcls 13, cr0, [fp], {6} + 2f64: 7714020d ldrvc r0, [r4, -sp, lsl #4] + 2f68: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 2f6c: 04087913 streq r7, [r8], #-2323 + 2f70: 0c08b12f stfeqd f3, [r8], {47} + 2f74: 0a090630 beq 24483c + 2f78: 0e7a0679 mrceq 6, 3, r0, cr10, cr9, {3} + 2f7c: 0000d201 andeq sp, r0, r1, lsl #4 + 2f80: bc000200 sfmlt f0, 4, [r0], {0} + 2f84: 04004009 streq r4, [r0], #-9 + 2f88: 02000000 andeq r0, r0, #0 ; 0x0 + 2f8c: 00009e2f andeq r9, r0, pc, lsr #28 + 2f90: 40348101 eorsmi r8, r4, r1, lsl #2 + 2f94: 9b1b0200 blls 6c379c + 2f98: 33020000 movwcc r0, #8192 ; 0x2000 + 2f9c: 0000009c muleq r0, ip, r0 + 2fa0: 01000000 tsteq r0, r0 + 2fa4: 70000000 andvc r0, r0, r0 + 2fa8: 51004012 tstpl r0, r2, lsl r0 + 2fac: 19d50001 ldmibne r5, {r0}^ + 2fb0: 02010001 andeq r0, r1, #1 ; 0x1 + 2fb4: 11780500 cmnne r8, r0, lsl #10 + 2fb8: 000e296c andeq r2, lr, ip, ror #18 + 2fbc: 01010100 tsteq r1, r0, lsl #2 + 2fc0: 01000101 tsteq r0, r1, lsl #2 + 2fc4: 01010100 tsteq r1, r0, lsl #2 + 2fc8: 0187d501 orreq sp, r7, r1, lsl #10 + 2fcc: 02360002 eorseq r0, r6, #2 ; 0x2 + 2fd0: 47c50302 strbmi r0, [r5, r2, lsl #6] + 2fd4: 08030e02 stmdaeq r3, {r1, r9, sl, fp} + 2fd8: c7c10303 strbgt r0, [r1, r3, lsl #6] + 2fdc: 1b1a0600 blne 6847e4 + 2fe0: 0611057e undefined + 2fe4: 0d724438 cfldrdeq mvd4, [r2, #-224]! + 2fe8: 08142202 ldmdaeq r4, {r1, r9, sp} + 2fec: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 2ff0: 7e05100a cdpvc 0, 0, cr1, cr5, cr10, {0} + 2ff4: 0e7fb606 cdpeq 6, 7, cr11, cr15, cr6, {0} + 2ff8: 6b040a01 blvs 105804 + 2ffc: 0d744049 ldcleq 0, cr4, [r4, #-292]! + 3000: 084e3d03 stmdaeq lr, {r0, r1, r8, sl, fp, ip, sp}^ + 3004: 1106300c tstne r6, ip + 3008: 22020dfe andcs r0, r2, #16256 ; 0x3f80 + 300c: 300c0814 andcc r0, ip, r4, lsl r8 + 3010: 0dc91806 stcleq 8, cr1, [r9, #24] + 3014: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 3018: 0a06300c beq 18f050 + 301c: 4ed01104 cdpmi 1, 13, cr1, cr0, cr4, {0} + 3020: 22020dbb andcs r0, r2, #11968 ; 0x2ec0 + 3024: 300c0814 andcc r0, ip, r4, lsl r8 + 3028: 12790306 rsbsne r0, r9, #402653184 ; 0x18000000 + 302c: 05710a3d ldrbeq r0, [r1, #-2621]! + 3030: 037d3b7f cmneq sp, #130048 ; 0x1fc00 + 3034: 4a7c0505 bmi 1f04450 + 3038: 220408c7 andcs r0, r4, #13041664 ; 0xc70000 + 303c: 300c0814 andcc r0, ip, r4, lsl r8 + 3040: 067a0506 ldrbteq r0, [sl], -r6, lsl #10 + 3044: 09010e75 stmdbeq r1, {r0, r2, r4, r5, r6, r9, sl, fp} + 3048: 01040500 tsteq r4, r0, lsl #10 + 304c: 08250100 stmdaeq r5!, {r8} + 3050: 7fcc140b svcvc 0x00cc140b + 3054: 01000000 tsteq r0, r0 + 3058: 400a2800 andmi r2, sl, r0, lsl #16 + 305c: 00000300 andeq r0, r0, r0, lsl #6 + 3060: 9f770200 svcls 0x00770200 + 3064: b7020000 strlt r0, [r2, -r0] + 3068: 020000a0 andeq r0, r0, #160 ; 0xa0 + 306c: 0000a2df ldrdeq sl, [r0], -pc + 3070: 00000000 andeq r0, r0, r0 + 3074: d5000151 strle r0, [r0, #-337] + 3078: 01000119 tsteq r0, r9, lsl r1 + 307c: 78050002 stmdavc r5, {r1} + 3080: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 3084: 01010000 tsteq r1, r0 + 3088: 00010101 andeq r0, r1, r1, lsl #2 + 308c: 01010001 tsteq r1, r1 + 3090: 42d50101 sbcsmi r0, r5, #1073741824 ; 0x40000000 + 3094: 02160002 andseq r0, r6, #2 ; 0x2 + 3098: 47e10402 strbmi r0, [r1, r2, lsl #8]! + 309c: 08200f01 stmdaeq r0!, {r0, r8, r9, sl, fp} + 30a0: 03010403 movweq r0, #5123 ; 0x1403 + 30a4: 1500c7dd strne ip, [r0, #-2013] + 30a8: 0603032a streq r0, [r3], -sl, lsr #6 + 30ac: 3db8360c ldccc 6, cr3, [r8, #48]! + 30b0: 1a5b30a3 bne 16cf344 + 30b4: 3006301d andcc r3, r6, sp, lsl r0 + 30b8: 3d7d0f5b ldclcc 15, cr0, [sp, #-364]! + 30bc: 12be22a3 adcsne r2, lr, #805306378 ; 0x3000000a + 30c0: 14020d7b strne r0, [r2], #-3451 + 30c4: 300c0877 andcc r0, ip, r7, ror r8 + 30c8: 0d291606 stceq 6, cr1, [r9, #-24]! + 30cc: 09771403 ldmdbeq r7!, {r0, r1, sl, ip}^ + 30d0: 0c087e0a stceq 14, cr7, [r8], {10} + 30d4: 03700630 cmneq r0, #50331648 ; 0x3000000 + 30d8: 00020000 andeq r0, r2, r0 + 30dc: 00400a58 subeq r0, r0, r8, asr sl + 30e0: 0000001e andeq r0, r0, lr, lsl r0 + 30e4: 00a0b702 adceq fp, r0, r2, lsl #14 + 30e8: fe9d0100 cdp2 1, 9, cr0, cr13, cr0, {0} + 30ec: 25010000 strcs r0, [r1] + 30f0: 010000ff strdeq r0, [r0, -pc] + 30f4: 0000fee9 andeq pc, r0, r9, ror #29 + 30f8: 00ffc501 rscseq ip, pc, r1, lsl #10 + 30fc: 3ec90100 polcce f0, f1, f0 + 3100: c8010000 stmdagt r1, {} + 3104: 01000107 tsteq r0, r7, lsl #2 + 3108: 000107e0 andeq r0, r1, r0, ror #15 + 310c: 40338d01 eorsmi r8, r3, r1, lsl #26 + 3110: 34810100 strcc r0, [r1], #256 + 3114: 2f020040 svccs 0x00020040 + 3118: 0100009e swpeq r0, lr, [r0] + 311c: 00403e71 subeq r3, r0, r1, ror lr + 3120: 4038d101 eorsmi sp, r8, r1, lsl #2 + 3124: 3ca50100 stfccs f0, [r5] + 3128: 98010040 stmdals r1, {r6} + 312c: 01000107 tsteq r0, r7, lsl #2 + 3130: 00010780 andeq r0, r1, r0, lsl #15 + 3134: 40360901 eorsmi r0, r6, r1, lsl #18 + 3138: 3cf10100 ldfcce f0, [r1] + 313c: 3b020040 blcc 83244 + 3140: 010000b5 strheq r0, [r0, -r5] + 3144: 00401965 subeq r1, r0, r5, ror #18 + 3148: 40398901 eorsmi r8, r9, r1, lsl #18 + 314c: 3a8f0100 bcc fe3c3554 + 3150: 31010040 tstcc r1, r0, asr #32 + 3154: 0200403a andeq r4, r0, #58 ; 0x3a + 3158: 0000b947 andeq fp, r0, r7, asr #18 + 315c: 4020a501 eormi sl, r0, r1, lsl #10 + 3160: 1b570100 blne 15c3568 + 3164: 63020040 movwvs r0, #8256 ; 0x2040 + 3168: 010000ad smlatbeq r0, sp, r0, r0 + 316c: 00403d85 subeq r3, r0, r5, lsl #27 + 3170: 00aff302 adceq pc, pc, r2, lsl #6 + 3174: b16f0200 cmnlt pc, r0, lsl #4 + 3178: 00000000 andeq r0, r0, r0 + 317c: 00010000 andeq r0, r1, r0 + 3180: 12740000 rsbsne r0, r4, #0 ; 0x0 + 3184: 01510040 cmpeq r1, r0, asr #32 + 3188: 0119d500 tsteq r9, r0, lsl #10 + 318c: 00020100 andeq r0, r2, r0, lsl #2 + 3190: 6c117805 ldcvs 8, cr7, [r1], {5} + 3194: 00000e29 andeq r0, r0, r9, lsr #28 + 3198: 01010101 tsteq r1, r1, lsl #2 + 319c: 00010001 andeq r0, r1, r1 + 31a0: 01010101 tsteq r1, r1, lsl #2 + 31a4: 0205a3d5 andeq sl, r5, #1409286147 ; 0x54000003 + 31a8: 0201fa00 andeq pc, r1, #0 ; 0x0 + 31ac: 48810502 stmmi r1, {r1, r8, sl} + 31b0: 08016201 stmdaeq r1, {r0, r9, sp, lr} + 31b4: 03010403 movweq r0, #5123 ; 0x1403 + 31b8: 1500c7fd strne ip, [r0, #-2045] + 31bc: 290b062a stmdbcs fp, {r1, r3, r5, r9, sl} + 31c0: 22a33d1b adccs r3, r3, #1728 ; 0x6c0 + 31c4: 30cc1469 sbccc r1, ip, r9, ror #8 + 31c8: 30692206 rsbcc r2, r9, r6, lsl #4 + 31cc: 29692206 stmdbcs r9!, {r1, r2, r9, sp}^ + 31d0: 14020db8 strne r0, [r2], #-3512 + 31d4: 300c0877 andcc r0, ip, r7, ror r8 + 31d8: 1b210606 blne 8449f8 + 31dc: 2f030d72 svccs 0x00030d72 + 31e0: 300c08b1 strhcc r0, [ip], -r1 + 31e4: 0dd11006 ldcleq 0, cr1, [r1, #24] + 31e8: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 31ec: 0f06300c svceq 0x0006300c + 31f0: 22050d28 andcs r0, r5, #2560 ; 0xa00 + 31f4: 300c0814 andcc r0, ip, r4, lsl r8 + 31f8: 1b040606 blne 104a18 + 31fc: 2f030d72 svccs 0x00030d72 + 3200: 300c08b1 strhcc r0, [ip], -r1 + 3204: 0d241306 stceq 3, cr1, [r4, #-24]! + 3208: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 320c: 0f06300c svceq 0x0006300c + 3210: 22050d28 andcs r0, r5, #2560 ; 0xa00 + 3214: 300c0814 andcc r0, ip, r4, lsl r8 + 3218: 1b040606 blne 104a38 + 321c: 2f030d72 svccs 0x00030d72 + 3220: 300c08b1 strhcc r0, [ip], -r1 + 3224: 0d791306 ldcleq 3, cr1, [r9, #-24]! + 3228: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 322c: 0f06300c svceq 0x0006300c + 3230: 22050d28 andcs r0, r5, #2560 ; 0xa00 + 3234: 300c0814 andcc r0, ip, r4, lsl r8 + 3238: 1b0e0606 blne 384a58 + 323c: 2f060d72 svccs 0x00060d72 + 3240: 300c08b1 strhcc r0, [ip], -r1 + 3244: 087b1106 ldmdaeq fp!, {r1, r2, r8, ip}^ + 3248: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 324c: 1606300c strne r3, [r6], -ip + 3250: 2f040821 svccs 0x00040821 + 3254: 300c08b1 strhcc r0, [ip], -r1 + 3258: 08231406 stmdaeq r3!, {r1, r2, sl, ip} + 325c: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 3260: 0606300c streq r3, [r6], -ip + 3264: 0d2a0e70 stceq 14, cr0, [sl, #-448]! + 3268: 08771407 ldmdaeq r7!, {r0, r1, r2, sl, ip}^ + 326c: 1506300c strne r3, [r6, #-12] + 3270: 14080d22 strne r0, [r8], #-3362 + 3274: 300c0877 andcc r0, ip, r7, ror r8 + 3278: 0d751806 ldcleq 8, cr1, [r5, #-24]! + 327c: 08b12f09 ldmeq r1!, {r0, r3, r8, r9, sl, fp, sp} + 3280: 1806300c stmdane r6, {r2, r3, ip, sp} + 3284: 2f0a0dcc svccs 0x000a0dcc + 3288: 300c08b1 strhcc r0, [ip], -r1 + 328c: 08261206 stmdaeq r6!, {r1, r2, r9, ip} + 3290: 08b12f04 ldmeq r1!, {r2, r8, r9, sl, fp, sp} + 3294: 2f06300c svccs 0x0006300c + 3298: 140b0d5d strne r0, [fp], #-3421 + 329c: 300c0877 andcc r0, ip, r7, ror r8 + 32a0: 0dce1806 stcleq 8, cr1, [lr, #24] + 32a4: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} + 32a8: 2d06300c stccs 0, cr3, [r6, #-48] + 32ac: 140b0d05 strne r0, [fp], #-3333 + 32b0: 300c0877 andcc r0, ip, r7, ror r8 + 32b4: 0dca1706 stcleq 7, cr1, [sl, #24] + 32b8: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} + 32bc: 2d06300c stccs 0, cr3, [r6, #-48] + 32c0: 140b0db4 strne r0, [fp], #-3508 + 32c4: 300c0877 andcc r0, ip, r7, ror r8 + 32c8: 0dce1306 stcleq 3, cr1, [lr, #24] + 32cc: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} + 32d0: 1606300c strne r3, [r6], -ip + 32d4: 3d0b0d76 stccc 13, cr0, [fp, #-472] + 32d8: 300c084e andcc r0, ip, lr, asr #16 + 32dc: 0dd21906 ldcleq 9, cr1, [r2, #24] + 32e0: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} + 32e4: 1006300c andne r3, r6, ip + 32e8: 3d0b0dc7 stccc 13, cr0, [fp, #-796] + 32ec: 300c084e andcc r0, ip, lr, asr #16 + 32f0: 0d291006 stceq 0, cr1, [r9, #-24]! + 32f4: 0877140c ldmdaeq r7!, {r2, r3, sl, ip}^ + 32f8: 1606300c strne r3, [r6], -ip + 32fc: 140d0d76 strne r0, [sp], #-3446 + 3300: 300c0877 andcc r0, ip, r7, ror r8 + 3304: 0d211606 stceq 6, cr1, [r1, #-24]! + 3308: 0877140e ldmdaeq r7!, {r1, r2, r3, sl, ip}^ + 330c: 1706300c strne r3, [r6, -ip] + 3310: 2f090d1c svccs 0x00090d1c + 3314: 300c08b1 strhcc r0, [ip], -r1 + 3318: 0dce1806 stcleq 8, cr1, [lr, #24] + 331c: 08b12f0a ldmeq r1!, {r1, r3, r8, r9, sl, fp, sp} + 3320: 1206300c andne r3, r6, #12 ; 0xc + 3324: 2f04087b svccs 0x0004087b + 3328: 300c08b1 strhcc r0, [ip], -r1 + 332c: 0d231406 cfstrseq mvf1, [r3, #-24]! + 3330: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} + 3334: 1806300c stmdane r6, {r2, r3, ip, sp} + 3338: 2f0a0dce svccs 0x000a0dce + 333c: 300c08b1 strhcc r0, [ip], -r1 + 3340: 0dcb1106 stfeqe f1, [fp, #24] + 3344: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} + 3348: 1706300c strne r3, [r6, -ip] + 334c: 2f0a0dca svccs 0x000a0dca + 3350: 300c08b1 strhcc r0, [ip], -r1 + 3354: 0d7a1206 lfmeq f1, 2, [sl, #-24]! + 3358: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} + 335c: 1306300c movwne r3, #24588 ; 0x600c + 3360: 2f0a0dce svccs 0x000a0dce + 3364: 300c08b1 strhcc r0, [ip], -r1 + 3368: 0d761606 ldcleq 6, cr1, [r6, #-24]! + 336c: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} + 3370: 1906300c stmdbne r6, {r2, r3, ip, sp} + 3374: 2f0a0dd2 svccs 0x000a0dd2 + 3378: 300c08b1 strhcc r0, [ip], -r1 + 337c: 0dc71006 stcleq 0, cr1, [r7, #24] + 3380: 08b12f0b ldmeq r1!, {r0, r1, r3, r8, r9, sl, fp, sp} + 3384: 1106300c tstne r6, ip + 3388: 220f0d28 andcs r0, pc, #2560 ; 0xa00 + 338c: 300c0814 andcc r0, ip, r4, lsl r8 + 3390: 0d221506 cfstr32eq mvfx1, [r2, #-24]! + 3394: 08142210 ldmdaeq r4, {r4, r9, sp} + 3398: 1306300c movwne r3, #24588 ; 0x600c + 339c: 14110dcf ldrne r0, [r1], #-3535 + 33a0: 300c0877 andcc r0, ip, r7, ror r8 + 33a4: 0dce1506 cfstr64eq mvdx1, [lr, #24] + 33a8: 08771412 ldmdaeq r7!, {r1, r4, sl, ip}^ + 33ac: 1406300c strne r3, [r6], #-12 + 33b0: 14130d7a ldrne r0, [r3], #-3450 + 33b4: 300c0877 andcc r0, ip, r7, ror r8 + 33b8: 0d231506 cfstr32eq mvfx1, [r3, #-24]! + 33bc: 08771414 ldmdaeq r7!, {r2, r4, sl, ip}^ + 33c0: 0606300c streq r3, [r6], -ip + 33c4: 731b00c5 tstvc fp, #197 ; 0xc5 + 33c8: 4e3d150d cdpmi 5, 3, cr1, cr13, cr13, {0} + 33cc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 33d0: 61060303 tstvs r6, r3, lsl #6 + 33d4: 160d2c0e strne r2, [sp], -lr, lsl #24 + 33d8: 0c083222 sfmeq f3, 4, [r8], {34} + 33dc: 01180630 tsteq r8, r0, lsr r6 + 33e0: 1422170d strtne r1, [r2], #-1805 + 33e4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 33e8: 290e7c06 stmdbcs lr, {r1, r2, sl, fp, ip, sp, lr} + 33ec: 7714180d ldrvc r1, [r4, -sp, lsl #16] + 33f0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 33f4: 190d7717 stmdbne sp, {r0, r1, r2, r4, r8, r9, sl, ip, sp, lr} + 33f8: 0c081422 cfstrseq mvf1, [r8], {34} + 33fc: d30e0630 movwle r0, #58928 ; 0xe630 + 3400: 77141a0d ldrvc r1, [r4, -sp, lsl #20] + 3404: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3408: 1b0d7319 blne 360074 + 340c: 0c08b12f stfeqd f3, [r8], {47} + 3410: 280f0630 stmdacs pc, {r4, r5, r9, sl} + 3414: b12f1c0d teqlt pc, sp, lsl #24 + 3418: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 341c: 1d0d721a sfmne f7, 4, [sp, #-104] + 3420: 0c08b12f stfeqd f3, [r8], {47} + 3424: 7b110630 blvc 444cec + 3428: 77141a0d ldrvc r1, [r4, -sp, lsl #20] + 342c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3430: 1e0d721a mcrne 2, 0, r7, cr13, cr10, {0} + 3434: 0c081422 cfstrseq mvf1, [r8], {34} + 3438: 71060630 tstvc r6, r0, lsr r6 + 343c: 0009200e andeq r2, r9, lr + 3440: 00010405 andeq r0, r1, r5, lsl #8 + 3444: 0b082601 bleq 20cc50 + 3448: 005d6922 subseq r6, sp, r2, lsr #18 + 344c: 00010000 andeq r0, r1, r0 + 3450: 00400c50 subeq r0, r0, r0, asr ip + 3454: 00000001 andeq r0, r0, r1 + 3458: 00a1cb02 adceq ip, r1, r2, lsl #22 + 345c: 00000000 andeq r0, r0, r0 + 3460: 00015100 andeq r5, r1, r0, lsl #2 + 3464: 000119d5 ldrdeq r1, [r1], -r5 + 3468: 05000201 streq r0, [r0, #-513] + 346c: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 3470: 0100000e tsteq r0, lr + 3474: 01010101 tsteq r1, r1, lsl #2 + 3478: 01000100 tsteq r0, r0, lsl #2 + 347c: d5010101 strle r0, [r1, #-257] + 3480: 1400022a strne r0, [r0], #-554 + 3484: ec060202 sfm f0, 4, [r6], {2} + 3488: 010b0148 tsteq fp, r8, asr #2 + 348c: 01040308 tsteq r4, r8, lsl #6 + 3490: 00c8e803 sbceq lr, r8, r3, lsl #16 + 3494: 030a2a15 movweq r2, #43541 ; 0xaa15 + 3498: 7c1b2206 lfmvc f2, 4, [fp], {6} + 349c: 7e06ce73 mcrvc 14, 0, ip, cr6, cr3, {3} + 34a0: 0a099d44 beq 26a9b8 + 34a4: 0602037b undefined + 34a8: dcef3675 stclle 6, cr3, [pc], #468 + 34ac: 01000001 tsteq r0, r1 + 34b0: 400c7800 andmi r7, ip, r0, lsl #16 + 34b4: 00000c00 andeq r0, r0, r0, lsl #24 + 34b8: a2df0200 sbcsge r0, pc, #0 ; 0x0 + 34bc: 29010000 stmdbcs r1, {} + 34c0: 02004024 andeq r4, r0, #36 ; 0x24 + 34c4: 0000abaf andeq sl, r0, pc, lsr #23 + 34c8: 00bbd702 adcseq sp, fp, r2, lsl #14 + 34cc: ba5f0200 blt 17c3cd4 + 34d0: 57020000 strpl r0, [r2, -r0] + 34d4: 010000b6 strheq r0, [r0, -r6] + 34d8: 00401b57 subeq r1, r0, r7, asr fp + 34dc: 00b16f02 adcseq r6, r1, r2, lsl #30 + 34e0: 3a310100 bcc c438e8 + 34e4: a5010040 strge r0, [r1, #-64] + 34e8: 01004020 tsteq r0, r0, lsr #32 + 34ec: 00403a55 subeq r3, r0, r5, asr sl + 34f0: 403a1d01 eorsmi r1, sl, r1, lsl #26 + 34f4: 00000000 andeq r0, r0, r0 + 34f8: 00015100 andeq r5, r1, r0, lsl #2 + 34fc: 000119d5 ldrdeq r1, [r1], -r5 + 3500: 05000201 streq r0, [r0, #-513] + 3504: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 3508: 0100000e tsteq r0, lr + 350c: 01010101 tsteq r1, r1, lsl #2 + 3510: 01000100 tsteq r0, r0, lsl #2 + 3514: d5010101 strle r0, [r1, #-257] + 3518: 000202f1 strdeq r0, [r2], -r1 + 351c: 020201d6 andeq r0, r2, #-2147483595 ; 0x80000035 + 3520: 0148fe07 cmppeq r8, r7, lsl #28 + 3524: 080101aa stmdaeq r1, {r1, r3, r5, r7, r8} + 3528: 03010403 movweq r0, #5123 ; 0x1403 + 352c: 1500c8fa strne ip, [r0, #-2298] + 3530: 3607062a strcc r0, [r7], -sl, lsr #12 + 3534: 14020db8 strne r0, [r2], #-3512 + 3538: 300c0895 mulcc ip, r5, r8 + 353c: 17050a06 strne r0, [r5, -r6, lsl #20] + 3540: 2ef74a02 fconstscs s9, #114 + 3544: 14030d09 strne r0, [r3], #-3337 + 3548: 300c0877 andcc r0, ip, r7, ror r8 + 354c: 030a0a06 movweq r0, #43526 ; 0xaa06 + 3550: 1b03060a blne c4d80 + 3554: 45090a74 strmi r0, [r9, #-2676] + 3558: 34a24aa7 strtcc r4, [r2], #2727 + 355c: 22040d03 andcs r0, r4, #192 ; 0xc0 + 3560: 300c0814 andcc r0, ip, r4, lsl r8 + 3564: 17040a06 strne r0, [r4, -r6, lsl #20] + 3568: 0d484f20 stcleq 15, cr4, [r8, #-128] + 356c: 08b12f05 ldmeq r1!, {r0, r2, r8, r9, sl, fp, sp} + 3570: 0a06300c beq 18f5a8 + 3574: 1401030c strne r0, [r1], #-780 + 3578: 3a9e4e08 bcc fe796da0 + 357c: 52040352 andpl r0, r4, #1207959553 ; 0x48000001 + 3580: 14060d3d strne r0, [r6], #-3389 + 3584: 300c0877 andcc r0, ip, r7, ror r8 + 3588: 0d271106 stfeqs f1, [r7, #-24]! + 358c: 08771407 ldmdaeq r7!, {r0, r1, r2, sl, ip}^ + 3590: 1a06300c bne 18f5c8 + 3594: 22080d72 andcs r0, r8, #7296 ; 0x1c80 + 3598: 300c0814 andcc r0, ip, r4, lsl r8 + 359c: 180e0a06 stmdane lr, {r1, r2, r9, fp} + 35a0: 0a01416d beq 53b5c + 35a4: 447f0602 ldrbtmi r0, [pc], #1538 ; 35ac + 35a8: 020a099d andeq r0, sl, #2572288 ; 0x274000 + 35ac: 0d2d053d cfstr32eq mvfx0, [sp, #-244]! + 35b0: a2360d06 eorsge r0, r6, #384 ; 0x180 + 35b4: 1422090d strtne r0, [r2], #-2317 + 35b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 35bc: 2a0e7006 bcs 39f5dc + 35c0: 7714070d ldrvc r0, [r4, -sp, lsl #14] + 35c4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 35c8: 080d721a stmdaeq sp, {r1, r3, r4, r9, ip, sp, lr} + 35cc: 0c081422 cfstrseq mvf1, [r8], {34} + 35d0: 0b0a0630 bleq 284e98 + 35d4: 9e4e6d18 mcrls 13, 2, r6, cr14, cr8, {0} + 35d8: 5438020a ldrtpl r0, [r8], #-522 + 35dc: 3a020a09 bcc 85e08 + 35e0: 2f0c2e08 svccs 0x000c2e08 + 35e4: 14070d00 strne r0, [r7], #-3328 + 35e8: 300c0877 andcc r0, ip, r7, ror r8 + 35ec: 0d721a06 fldmdbseq r2!, {s3-s8} + 35f0: 08142208 ldmdaeq r4, {r3, r9, sp} + 35f4: 0a06300c beq 18f62c + 35f8: 416c1908 cmnmi ip, r8, lsl #18 + 35fc: 44020a01 strmi r0, [r2], #-2561 + 3600: 020a099d andeq r0, sl, #2572288 ; 0x274000 + 3604: b42f053d strtlt r0, [pc], #1341 ; 360c + 3608: 0a0dfe30 beq 382ed0 + 360c: 0c081422 cfstrseq mvf1, [r8], {34} + 3610: 020a0630 andeq r0, sl, #50331648 ; 0x3000000 + 3614: 0e0a080a cdpeq 8, 0, cr0, cr10, cr10, {0} + 3618: bf0a130a svclt 0x000a130a + 361c: 0601037f undefined + 3620: 09220e7f stmdbeq r2!, {r0, r1, r2, r3, r4, r5, r6, r9, sl, fp} + 3624: a37fbe0a cmnge pc, #160 ; 0xa0 + 3628: 06010300 streq r0, [r1], -r0, lsl #6 + 362c: 74ae3607 strtvc r3, [lr], #1543 + 3630: 527b066d rsbspl r0, fp, #114294784 ; 0x6d00000 + 3634: 3da43d3a stccc 13, cr3, [r4, #232]! + 3638: b80a09a4 stmdalt sl, {r2, r5, r7, r8, fp} + 363c: 0a503d7f beq 1412c40 + 3640: 02037fb7 andeq r7, r3, #732 ; 0x2dc + 3644: 43a9c673 undefined instruction 0x43a9c673 + 3648: 0b0dad34 bleq 36eb20 + 364c: 0c08b12f stfeqd f3, [r8], {47} + 3650: 0a090630 beq 244f18 + 3654: 79137fb2 ldmdbvc r3, {r1, r4, r5, r7, r8, r9, sl, fp, ip, sp, lr} + 3658: 0303020a movweq r0, #12810 ; 0x320a + 365c: 96ab572e strtls r5, [fp], lr, lsr #14 + 3660: 2d7faf0a ldclcs 15, cr10, [pc, #-40]! + 3664: 095a3dab ldmdbeq sl, {r0, r1, r3, r5, r7, r8, sl, fp, ip, sp}^ + 3668: 347fad0a ldrbtcc sl, [pc], #3338 ; 3670 + 366c: 03050aad movweq r0, #23213 ; 0x5aad + 3670: 99582d03 ldmdbls r8, {r0, r1, r8, sl, fp, sp}^ + 3674: 0d5b31a8 ldfeqe f3, [fp, #-672] + 3678: 0814220c ldmdaeq r4, {r2, r3, r9, sp} + 367c: 1706300c strne r3, [r6, -ip] + 3680: a60a096c strge r0, [sl], -ip, ror #18 + 3684: 060b037f undefined + 3688: 71a11b6a undefined instruction 0x71a11b6a + 368c: 02000000 andeq r0, r0, #0 ; 0x0 + 3690: 400e2400 andmi r2, lr, r0, lsl #8 + 3694: 00000200 andeq r0, r0, r0, lsl #4 + 3698: a4b70200 ldrtge r0, [r7], #512 + 369c: 85010000 strhi r0, [r1] + 36a0: 0000403d andeq r4, r0, sp, lsr r0 + 36a4: 01000000 tsteq r0, r0 + 36a8: 48000000 stmdami r0, {} + 36ac: 5100400e tstpl r0, lr + 36b0: 19d50001 ldmibne r5, {r0}^ + 36b4: 02010001 andeq r0, r1, #1 ; 0x1 + 36b8: 11780500 cmnne r8, r0, lsl #10 + 36bc: 000e296c andeq r2, lr, ip, ror #18 + 36c0: 01010100 tsteq r1, r0, lsl #2 + 36c4: 01000101 tsteq r0, r1, lsl #2 + 36c8: 01010100 tsteq r1, r0, lsl #2 + 36cc: 0231d501 eorseq sp, r1, #4194304 ; 0x400000 + 36d0: 02020a00 andeq r0, r2, #0 ; 0x0 + 36d4: 014ab008 cmpeq sl, r8 + 36d8: 03083503 movweq r3, #34051 ; 0x8503 + 36dc: ac030104 stfges f0, [r3], {4} + 36e0: 2a1500ca bcs 543a10 + 36e4: 19290206 stmdbne r9!, {r1, r2, r9} + 36e8: 1422020d strtne r0, [r2], #-525 + 36ec: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 36f0: 711b0b06 tstvc fp, r6, lsl #22 + 36f4: 04050009 streq r0, [r5], #-9 + 36f8: 19010001 stmdbne r1, {r0} + 36fc: a33d0b08 teqge sp, #8192 ; 0x2000 + 3700: 00000071 andeq r0, r0, r1, ror r0 + 3704: 0e380002 cdpeq 0, 3, cr0, cr8, cr2, {0} + 3708: 00020040 andeq r0, r2, r0, asr #32 + 370c: d3020000 movwle r0, #8192 ; 0x2000 + 3710: 010000a5 smlatbeq r0, r5, r0, r0 + 3714: 00403d85 subeq r3, r0, r5, lsl #27 + 3718: 00000000 andeq r0, r0, r0 + 371c: 00000001 andeq r0, r0, r1 + 3720: 00400e48 subeq r0, r0, r8, asr #28 + 3724: d5000151 strle r0, [r0, #-337] + 3728: 01000119 tsteq r0, r9, lsl r1 + 372c: 78050002 stmdavc r5, {r1} + 3730: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 3734: 01010000 tsteq r1, r0 + 3738: 00010101 andeq r0, r1, r1, lsl #2 + 373c: 01010001 tsteq r1, r1 + 3740: 31d50101 bicscc r0, r5, r1, lsl #2 + 3744: 02080002 andeq r0, r8, #2 ; 0x2 + 3748: 4abc0902 bmi fef05b58 + 374c: 082f0301 stmdaeq pc!, {r0, r8, r9} + 3750: 03010403 movweq r0, #5123 ; 0x1403 + 3754: 1500cab8 strne ip, [r0, #-2744] + 3758: 2902062a stmdbcs r2, {r1, r3, r5, r9, sl} + 375c: 22020d19 andcs r0, r2, #1600 ; 0x640 + 3760: 300c0814 andcc r0, ip, r4, lsl r8 + 3764: 1b050606 blne 144f84 + 3768: 05000971 streq r0, [r0, #-2417] + 376c: 01000104 tsteq r0, r4, lsl #2 + 3770: 4b0b081a blmi 2c57e0 + 3774: 0000ed40 andeq lr, r0, r0, asr #26 + 3778: 48000200 stmdami r0, {r9} + 377c: 0400400e streq r4, [r0], #-14 + 3780: 02000000 andeq r0, r0, #0 ; 0x0 + 3784: 0000a8d7 ldrdeq sl, [r0], -r7 + 3788: 00a7c702 adceq ip, r7, r2, lsl #14 + 378c: a5d30200 ldrbge r0, [r3, #512] + 3790: b7020000 strlt r0, [r2, -r0] + 3794: 000000a4 andeq r0, r0, r4, lsr #1 + 3798: 01000000 tsteq r0, r0 + 379c: 4c000000 stcmi 0, cr0, [r0], {0} + 37a0: 5100400e tstpl r0, lr + 37a4: 19d50001 ldmibne r5, {r0}^ + 37a8: 02010001 andeq r0, r1, #1 ; 0x1 + 37ac: 11780500 cmnne r8, r0, lsl #10 + 37b0: 000e296c andeq r2, lr, ip, ror #18 + 37b4: 01010100 tsteq r1, r0, lsl #2 + 37b8: 01000101 tsteq r0, r1, lsl #2 + 37bc: 01010100 tsteq r1, r0, lsl #2 + 37c0: 0225d501 eoreq sp, r5, #4194304 ; 0x400000 + 37c4: 00020200 andeq r0, r2, r0, lsl #4 + 37c8: 034ad71c movteq sp, #42780 ; 0xa71c + 37cc: 0a080101 beq 203bd8 + 37d0: 00cad303 sbceq sp, sl, r3, lsl #6 + 37d4: 831b1e06 tsthi fp, #96 ; 0x60 + 37d8: 59296306 stmdbpl r9!, {r1, r2, r8, r9, sp, lr} + 37dc: 04050009 streq r0, [r5], #-9 + 37e0: 21010001 tstcs r1, r1 + 37e4: cc140b08 ldcgt 11, cr0, [r4], {8} + 37e8: d5000151 strle r0, [r0, #-337] + 37ec: 02000225 andeq r0, r0, #1342177282 ; 0x50000002 + 37f0: cb1b0003 blgt 6c3804 + 37f4: 0101034a tsteq r1, sl, asr #6 + 37f8: c7030a08 strgt r0, [r3, -r8, lsl #20] + 37fc: 1b0600ca blne 183b2c + 3800: 6606831b undefined + 3804: 00095929 andeq r5, r9, r9, lsr #18 + 3808: 00010405 andeq r0, r1, r5, lsl #8 + 380c: 0b082001 bleq 20b818 + 3810: 0151cc14 cmpeq r1, r4, lsl ip + 3814: 0225d500 eoreq sp, r5, #0 ; 0x0 + 3818: 00040200 andeq r0, r4, r0, lsl #4 + 381c: 034abf1a movteq fp, #44826 ; 0xaf1a + 3820: 0a080101 beq 203c2c + 3824: 00cabb03 sbceq fp, sl, r3, lsl #22 + 3828: 831b1b06 tsthi fp, #6144 ; 0x1800 + 382c: 59296606 stmdbpl r9!, {r1, r2, r9, sl, sp, lr} + 3830: 04050009 streq r0, [r5], #-9 + 3834: 1f010001 svcne 0x00010001 + 3838: cc140b08 ldcgt 11, cr0, [r4], {8} + 383c: d5000151 strle r0, [r0, #-337] + 3840: 02000225 andeq r0, r0, #1342177282 ; 0x50000002 + 3844: b3190005 tstlt r9, #5 ; 0x5 + 3848: 0101034a tsteq r1, sl, asr #6 + 384c: af030a08 svcge 0x00030a08 + 3850: 210600ca smlabtcs r6, sl, r0, r0 + 3854: 6006831b andvs r8, r6, fp, lsl r3 + 3858: 00095929 andeq r5, r9, r9, lsr #18 + 385c: 00010405 andeq r0, r1, r5, lsl #8 + 3860: 0b081e01 bleq 20b06c + 3864: 0071cc14 rsbseq ip, r1, r4, lsl ip + 3868: 00020000 andeq r0, r2, r0 + 386c: 00400e58 subeq r0, r0, r8, asr lr + 3870: 00000002 andeq r0, r0, r2 + 3874: 00a7c702 adceq ip, r7, r2, lsl #14 + 3878: 3d850100 stfccs f0, [r5] + 387c: 00000040 andeq r0, r0, r0, asr #32 + 3880: 00010000 andeq r0, r1, r0 + 3884: 0e480000 cdpeq 0, 4, cr0, cr8, cr0, {0} + 3888: 01510040 cmpeq r1, r0, asr #32 + 388c: 0119d500 tsteq r9, r0, lsl #10 + 3890: 00020100 andeq r0, r2, r0, lsl #2 + 3894: 6c117805 ldcvs 8, cr7, [r1], {5} + 3898: 00000e29 andeq r0, r0, r9, lsr #28 + 389c: 01010101 tsteq r1, r1, lsl #2 + 38a0: 00010001 andeq r0, r1, r1 + 38a4: 01010101 tsteq r1, r1, lsl #2 + 38a8: 000231d5 ldrdeq r3, [r2], -r5 + 38ac: 0a02020a beq 840dc + 38b0: 03014ac8 movweq r4, #6856 ; 0x1ac8 + 38b4: 0403082f streq r0, [r3], #-2095 + 38b8: cac40301 bgt ff1044c4 + 38bc: 062a1500 strteq r1, [sl], -r0, lsl #10 + 38c0: 0d192902 ldceq 9, cr2, [r9, #-8] + 38c4: 08142202 ldmdaeq r4, {r1, r9, sp} + 38c8: 0606300c streq r3, [r6], -ip + 38cc: 09711b05 ldmdbeq r1!, {r0, r2, r8, r9, fp, ip}^ + 38d0: 01040500 tsteq r4, r0, lsl #10 + 38d4: 081b0100 ldmdaeq fp, {r8} + 38d8: 71a33d0b undefined instruction 0x71a33d0b + 38dc: 02000000 andeq r0, r0, #0 ; 0x0 + 38e0: 400e6c00 andmi r6, lr, r0, lsl #24 + 38e4: 00000200 andeq r0, r0, r0, lsl #4 + 38e8: a8d70200 ldmge r7, {r9}^ + 38ec: 85010000 strhi r0, [r1] + 38f0: 0000403d andeq r4, r0, sp, lsr r0 + 38f4: 01000000 tsteq r0, r0 + 38f8: 48000000 stmdami r0, {} + 38fc: 5100400e tstpl r0, lr + 3900: 19d50001 ldmibne r5, {r0}^ + 3904: 02010001 andeq r0, r1, #1 ; 0x1 + 3908: 11780500 cmnne r8, r0, lsl #10 + 390c: 000e296c andeq r2, lr, ip, ror #18 + 3910: 01010100 tsteq r1, r0, lsl #2 + 3914: 01000101 tsteq r0, r1, lsl #2 + 3918: 01010100 tsteq r1, r0, lsl #2 + 391c: 0231d501 eorseq sp, r1, #4194304 ; 0x400000 + 3920: 02020a00 andeq r0, r2, #0 ; 0x0 + 3924: 014ad40b cmpeq sl, fp, lsl #8 + 3928: 03083203 movweq r3, #33283 ; 0x8203 + 392c: d0030104 andle r0, r3, r4, lsl #2 + 3930: 2a1500ca bcs 543c60 + 3934: 19290206 stmdbne r9!, {r1, r2, r9} + 3938: 1422020d strtne r0, [r2], #-525 + 393c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3940: 711b0806 tstvc fp, r6, lsl #16 + 3944: 04050009 streq r0, [r5], #-9 + 3948: 1c010001 stcne 0, cr0, [r1], {1} + 394c: a33d0b08 teqge sp, #8192 ; 0x2000 + 3950: 000000be strheq r0, [r0], -lr + 3954: 0e800001 cdpeq 0, 8, cr0, cr0, cr1, {0} + 3958: 00010040 andeq r0, r1, r0, asr #32 + 395c: eb020000 bl 83964 + 3960: 000000a9 andeq r0, r0, r9, lsr #1 + 3964: 51000000 tstpl r0, r0 + 3968: 19d50001 ldmibne r5, {r0}^ + 396c: 02010001 andeq r0, r1, #1 ; 0x1 + 3970: 11780500 cmnne r8, r0, lsl #10 + 3974: 000e296c andeq r2, lr, ip, ror #18 + 3978: 01010100 tsteq r1, r0, lsl #2 + 397c: 01000101 tsteq r0, r1, lsl #2 + 3980: 01010100 tsteq r1, r0, lsl #2 + 3984: 018ad501 orreq sp, sl, r1, lsl #10 + 3988: 01ae0002 undefined instruction 0x01ae0002 + 398c: e10c0202 tst ip, r2, lsl #4 + 3990: 1e48014a dvfneem f0, f0, #2.0 + 3994: 01040308 tsteq r4, r8, lsl #6 + 3998: 00cadd03 sbceq sp, sl, r3, lsl #26 + 399c: 030a2a15 movweq r2, #43541 ; 0xaa15 + 39a0: 0f0a090a svceq 0x000a090a + 39a4: 1e0a1b0a fmacdne d1, d10, d10 + 39a8: 06060103 streq r0, [r6], -r3, lsl #2 + 39ac: 03061b29 movweq r1, #27433 ; 0x6b29 + 39b0: 0a09e3be beq 27c8b0 + 39b4: 03e0561c mvneq r5, #29360128 ; 0x1c00000 + 39b8: 12043601 andne r3, r4, #1048576 ; 0x100000 + 39bc: 841cc5cf ldrhi ip, [ip], #-1487 + 39c0: 09cf12b2 stmibeq pc, {r1, r4, r5, r7, r9, ip}^ + 39c4: 72c4160a sbcvc r1, r4, #10485760 ; 0xa00000 + 39c8: b2320203 eorslt r0, r2, #805306368 ; 0x30000000 + 39cc: 71c5cf12 bicvc ip, r5, r2, lsl pc + 39d0: cf12c076 svcgt 0x0012c076 + 39d4: c4100a09 ldrgt r0, [r0], #-2569 + 39d8: 03030a72 movweq r0, #14962 ; 0x3a72 + 39dc: 41c81c02 bicmi r1, r8, r2, lsl #24 + 39e0: 020a09ab andeq r0, sl, #2801664 ; 0x2ac000 + 39e4: b9306329 ldmdblt r0!, {r0, r3, r5, r8, r9, sp, lr} + 39e8: 45441106 strbmi r1, [r4, #-262] + 39ec: 10d1cf12 sbcsne ip, r1, r2, lsl pc + 39f0: a2942314 addsge r2, r4, #1342177280 ; 0x50000000 + 39f4: 050acf12 streq ip, [sl, #-3858] + 39f8: bacc6d06 blt ff31ee18 + 39fc: 06040a09 streq r0, [r4], -r9, lsl #20 + 3a00: 0353441e cmpeq r3, #503316480 ; 0x1e000000 + 3a04: 123b4506 eorsne r4, fp, #25165824 ; 0x1800000 + 3a08: 092ab7cf stmdbeq sl!, {r0, r1, r2, r3, r6, r7, r8, r9, sl, ip, sp, pc} + 3a0c: 0203600a andeq r6, r3, #10 ; 0xa + 3a10: 00da5e1d sbcseq r5, sl, sp, lsl lr + 3a14: 00020000 andeq r0, r2, r0 + 3a18: 00400fdc ldrdeq r0, [r0], #-252 + 3a1c: 00000004 andeq r0, r0, r4 + 3a20: 00abaf02 adceq sl, fp, r2, lsl #30 + 3a24: a9eb0200 stmibge fp!, {r9}^ + 3a28: 79010000 stmdbvc r1, {} + 3a2c: 02000030 andeq r0, r0, #48 ; 0x30 + 3a30: 0000b16f andeq fp, r0, pc, ror #2 + 3a34: 00000000 andeq r0, r0, r0 + 3a38: 00000001 andeq r0, r0, r1 + 3a3c: 00401274 subeq r1, r0, r4, ror r2 + 3a40: d5000151 strle r0, [r0, #-337] + 3a44: 01000119 tsteq r0, r9, lsl r1 + 3a48: 78050002 stmdavc r5, {r1} + 3a4c: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 3a50: 01010000 tsteq r1, r0 + 3a54: 00010101 andeq r0, r1, r1, lsl #2 + 3a58: 01010001 tsteq r1, r1 + 3a5c: 8fd50101 svchi 0x00d50101 + 3a60: 58000201 stmdapl r0, {r0, r9} + 3a64: b30d0202 movwlt r0, #53762 ; 0xd202 + 3a68: 0134014b teqeq r4, fp, asr #2 + 3a6c: 01040308 tsteq r4, r8, lsl #6 + 3a70: 00cbaf03 sbceq sl, fp, r3, lsl #30 + 3a74: 1d0a2a15 fstsne s4, [sl, #-84] + 3a78: 18060903 stmdane r6, {r0, r1, r8, fp} + 3a7c: 4254c236 subsmi ip, r4, #1610612739 ; 0x60000003 + 3a80: ab360e06 blge d872a0 + 3a84: 53393c52 teqpl r9, #20992 ; 0x5200 + 3a88: 0e290106 sufeqe f0, f1, f6 + 3a8c: a43da43d ldrtge sl, [sp], #-1085 + 3a90: 01377306 teqeq r7, r6, lsl #6 + 3a94: 54442506 strbpl r2, [r4], #-1286 + 3a98: 22067913 andcs r7, r6, #311296 ; 0x4c000 + 3a9c: 020d711b andeq r7, sp, #-1073741818 ; 0xc0000006 + 3aa0: 87811005 strhi r1, [r1, r5] + 3aa4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3aa8: 56067005 strpl r7, [r6], -r5 + 3aac: 082f020e stmdaeq pc!, {r1, r2, r3, r9} + 3ab0: c61b6e06 ldrgt r6, [fp], -r6, lsl #28 + 3ab4: 7803780a stmdavc r3, {r1, r3, fp, ip, sp, lr} + 3ab8: 07035031 smladxeq r3, r1, r0, r5 + 3abc: e8510806 ldmda r1, {r1, r2, fp}^ + 3ac0: 060a5438 undefined + 3ac4: 050a5e2f streq r5, [sl, #-3631] + 3ac8: 9958444e ldmdbls r8, {r1, r2, r3, r6, sl, lr}^ + 3acc: 030dac35 movweq sl, #56373 ; 0xdc35 + 3ad0: 0c084e3d stceq 14, cr4, [r8], {61} + 3ad4: 180e0630 stmdane lr, {r4, r5, r9, sl} + 3ad8: b12f040d teqlt pc, sp, lsl #8 + 3adc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3ae0: 0e0e6d06 cdpeq 13, 0, cr6, cr14, cr6, {0} + 3ae4: 04050009 streq r0, [r5], #-9 + 3ae8: 27010001 strcs r0, [r1, -r1] + 3aec: 69220b08 stmdbvs r2!, {r3, r8, r9, fp} + 3af0: 000001d2 ldrdeq r0, [r0], -r2 + 3af4: 108c0002 addne r0, ip, r2 + 3af8: 00040040 andeq r0, r4, r0, asr #32 + 3afc: 63020000 movwvs r0, #8192 ; 0x2000 + 3b00: 010000ad smlatbeq r0, sp, r0, r0 + 3b04: 004020bb strheq r2, [r0], #-11 + 3b08: 40208501 eormi r8, r0, r1, lsl #10 + 3b0c: 21e50100 mvncs r0, r0, lsl #2 + 3b10: 00000040 andeq r0, r0, r0, asr #32 + 3b14: 00010000 andeq r0, r1, r0 + 3b18: 12700000 rsbsne r0, r0, #0 ; 0x0 + 3b1c: 01510040 cmpeq r1, r0, asr #32 + 3b20: 0119d500 tsteq r9, r0, lsl #10 + 3b24: 00020100 andeq r0, r2, r0, lsl #2 + 3b28: 6c117805 ldcvs 8, cr7, [r1], {5} + 3b2c: 00000e29 andeq r0, r0, r9, lsr #28 + 3b30: 01010101 tsteq r1, r1, lsl #2 + 3b34: 00010001 andeq r0, r1, r1 + 3b38: 01010101 tsteq r1, r1, lsl #2 + 3b3c: 020387d5 andeq r8, r3, #55836672 ; 0x3540000 + 3b40: 0201f200 andeq pc, r1, #0 ; 0x0 + 3b44: 4bef0e02 blmi ffbc7354 + 3b48: 08014101 stmdaeq r1, {r0, r8, lr} + 3b4c: 03010403 movweq r0, #5123 ; 0x1403 + 3b50: 1500cbeb strne ip, [r0, #-3051] + 3b54: 0602052a streq r0, [r2], -sl, lsr #10 + 3b58: 060f5229 streq r5, [pc], -r9, lsr #4 + 3b5c: 05b24468 ldreq r4, [r2, #1128]! + 3b60: 280a067e stmdacs sl, {r1, r2, r3, r4, r5, r6, r9, sl} + 3b64: 58020de7 stmdapl r2, {r0, r1, r2, r5, r6, r7, r8, sl, fp} + 3b68: 300c0888 andcc r0, ip, r8, lsl #17 + 3b6c: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ + 3b70: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3b74: 6806300c stmdavs r6, {r2, r3, ip, sp} + 3b78: 14040824 strne r0, [r4], #-2084 + 3b7c: 300c0877 andcc r0, ip, r7, ror r8 + 3b80: 08d06606 ldmeq r0, {r1, r2, r9, sl, sp, lr}^ + 3b84: 08771404 ldmdaeq r7!, {r2, sl, ip}^ + 3b88: 7406300c strvc r3, [r6], #-12 + 3b8c: 1404086d strne r0, [r4], #-2157 + 3b90: 300c0877 andcc r0, ip, r7, ror r8 + 3b94: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 3b98: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3b9c: 1306300c movwne r3, #24588 ; 0x600c + 3ba0: 580408ce stmdapl r4, {r1, r2, r3, r6, r7, fp} + 3ba4: 300c0888 andcc r0, ip, r8, lsl #17 + 3ba8: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ + 3bac: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3bb0: 1506300c strne r3, [r6, #-12] + 3bb4: 66040822 strvs r0, [r4], -r2, lsr #16 + 3bb8: 300c0825 andcc r0, ip, r5, lsr #16 + 3bbc: 086d7406 stmdaeq sp!, {r1, r2, sl, ip, sp, lr}^ + 3bc0: 08771404 ldmdaeq r7!, {r2, sl, ip}^ + 3bc4: 1506300c strne r3, [r6, #-12] + 3bc8: 73040822 movwvc r0, #18466 ; 0x4822 + 3bcc: 300c08c2 andcc r0, ip, r2, asr #17 + 3bd0: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 3bd4: 08c27304 stmiaeq r2, {r2, r8, r9, ip, sp, lr}^ + 3bd8: 1406300c strne r3, [r6], #-12 + 3bdc: 66040823 strvs r0, [r4], -r3, lsr #16 + 3be0: 300c0825 andcc r0, ip, r5, lsr #16 + 3be4: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ + 3be8: 08c27304 stmiaeq r2, {r2, r8, r9, ip, sp, lr}^ + 3bec: 1406300c strne r3, [r6], #-12 + 3bf0: 730408cd movwvc r0, #18637 ; 0x48cd + 3bf4: 300c08c2 andcc r0, ip, r2, asr #17 + 3bf8: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 3bfc: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3c00: 1506300c strne r3, [r6, #-12] + 3c04: 66040822 strvs r0, [r4], -r2, lsr #16 + 3c08: 300c0825 andcc r0, ip, r5, lsr #16 + 3c0c: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 3c10: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3c14: 1306300c movwne r3, #24588 ; 0x600c + 3c18: 580408ce stmdapl r4, {r1, r2, r3, r6, r7, fp} + 3c1c: 300c0888 andcc r0, ip, r8, lsl #17 + 3c20: 08761606 ldmdaeq r6!, {r1, r2, r9, sl, ip}^ + 3c24: 08c27304 stmiaeq r2, {r2, r8, r9, ip, sp, lr}^ + 3c28: 1506300c strne r3, [r6, #-12] + 3c2c: 66040822 strvs r0, [r4], -r2, lsr #16 + 3c30: 300c0825 andcc r0, ip, r5, lsr #16 + 3c34: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 3c38: 08256604 stmdaeq r5!, {r2, r9, sl, sp, lr} + 3c3c: 1506300c strne r3, [r6, #-12] + 3c40: 73040822 movwvc r0, #18466 ; 0x4822 + 3c44: 300c08c2 andcc r0, ip, r2, asr #17 + 3c48: 0a030a06 beq c6468 + 3c4c: 0e7e0605 cdpeq 6, 7, cr0, cr14, cr5, {0} + 3c50: 7e050326 cdpvc 3, 0, cr0, cr5, cr6, {1} + 3c54: 050a09cf streq r0, [sl, #-2511] + 3c58: 7a036a22 bvc de4e8 + 3c5c: 0a090630 beq 245524 + 3c60: 036a2203 cmneq sl, #805306368 ; 0x30000000 + 3c64: 22fc2e06 rscscs r2, ip, #96 ; 0x60 + 3c68: 0555036a ldrbeq r0, [r5, #-874] + 3c6c: 0a8e250e beq fe38d0ac + 3c70: 9d207fb3 stcls 15, cr7, [r0, #-716]! + 3c74: 76052b03 strvc r2, [r5], -r3, lsl #22 + 3c78: 030d5f5d movweq r5, #57181 ; 0xdf5d + 3c7c: 0c083222 sfmeq f3, 4, [r8], {34} + 3c80: ba0e0630 blt 385548 + 3c84: c1210730 teqgt r1, r0, lsr r7 + 3c88: b6361d06 ldrtlt r1, [r6], -r6, lsl #26 + 3c8c: 8858040d ldmdahi r8, {r0, r2, r3, sl}^ + 3c90: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3c94: 290e6706 stmdbcs lr, {r1, r2, r8, r9, sl, sp, lr} + 3c98: 14057d03 strne r7, [r5], #-3331 + 3c9c: 35290106 strcc r0, [r9, #-262]! + 3ca0: 7b057b0a blvc 1628d0 + 3ca4: 0203372c andeq r3, r3, #11534336 ; 0xb00000 + 3ca8: 98247605 stmdals r4!, {r0, r2, r9, sl, ip, sp, lr} + 3cac: 3222030d eorcc r0, r2, #872415232 ; 0x34000000 + 3cb0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3cb4: cd140f0f ldcgt 15, cr0, [r4, #-60] + 3cb8: 0009740e andeq r7, r9, lr, lsl #8 + 3cbc: 00010405 andeq r0, r1, r5, lsl #8 + 3cc0: 0b082801 bleq 20dccc + 3cc4: 0083cc14 addeq ip, r3, r4, lsl ip + 3cc8: 00020000 andeq r0, r2, r0 + 3ccc: 00401270 subeq r1, r0, r0, ror r2 + 3cd0: 00000002 andeq r0, r0, r2 + 3cd4: 00ad6302 adceq r6, sp, r2, lsl #6 + 3cd8: 9e2f0200 cdpls 2, 2, cr0, cr15, cr0, {0} + 3cdc: 00000000 andeq r0, r0, r0 + 3ce0: 00010000 andeq r0, r1, r0 + 3ce4: 12740000 rsbsne r0, r4, #0 ; 0x0 + 3ce8: 01510040 cmpeq r1, r0, asr #32 + 3cec: 0119d500 tsteq r9, r0, lsl #10 + 3cf0: 00020100 andeq r0, r2, r0, lsl #2 + 3cf4: 6c117805 ldcvs 8, cr7, [r1], {5} + 3cf8: 00000e29 andeq r0, r0, r9, lsr #28 + 3cfc: 01010101 tsteq r1, r1, lsl #2 + 3d00: 00010001 andeq r0, r1, r1 + 3d04: 01010101 tsteq r1, r1, lsl #2 + 3d08: 00021fd5 ldrdeq r1, [r2], -r5 + 3d0c: 28000202 stmdacs r0, {r1, r9} + 3d10: 00014cb0 strheq r4, [r1], -r0 + 3d14: 030a0801 movweq r0, #43009 ; 0xa801 + 3d18: 1500ccac strne ip, [r0, #-3244] + 3d1c: 0500092a streq r0, [r0, #-2346] + 3d20: 01000104 tsteq r0, r4, lsl #2 + 3d24: 300b0830 andcc r0, fp, r0, lsr r8 + 3d28: 00015106 andeq r5, r1, r6, lsl #2 + 3d2c: 00021fd5 ldrdeq r1, [r2], -r5 + 3d30: 25000302 strcs r0, [r0, #-770] + 3d34: 000347d3 ldrdeq r4, [r3], -r3 + 3d38: 030a0803 movweq r0, #43011 ; 0xa803 + 3d3c: 1500c7cf strne ip, [r0, #-1999] + 3d40: 050009de streq r0, [r0, #-2526] + 3d44: 01000104 tsteq r0, r4, lsl #2 + 3d48: 300b082f andcc r0, fp, pc, lsr #16 + 3d4c: 00018606 andeq r8, r1, r6, lsl #12 + 3d50: 80000200 andhi r0, r0, r0, lsl #4 + 3d54: 02004012 andeq r4, r0, #18 ; 0x12 + 3d58: 02000000 andeq r0, r0, #0 ; 0x0 + 3d5c: 0000aff3 strdeq sl, [r0], -r3 + 3d60: 4020bb01 eormi fp, r0, r1, lsl #22 + 3d64: 00000000 andeq r0, r0, r0 + 3d68: 00000100 andeq r0, r0, r0, lsl #2 + 3d6c: 40127400 andsmi r7, r2, r0, lsl #8 + 3d70: 00015100 andeq r5, r1, r0, lsl #2 + 3d74: 000119d5 ldrdeq r1, [r1], -r5 + 3d78: 05000201 streq r0, [r0, #-513] + 3d7c: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 3d80: 0100000e tsteq r0, lr + 3d84: 01010101 tsteq r1, r1, lsl #2 + 3d88: 01000100 tsteq r0, r0, lsl #2 + 3d8c: d5010101 strle r0, [r1, #-257] + 3d90: 000202c5 andeq r0, r2, r5, asr #5 + 3d94: 020201d9 andeq r0, r2, #1073741878 ; 0x40000036 + 3d98: 014cb90f cmpeq ip, pc, lsl #18 + 3d9c: 03080131 movweq r0, #33073 ; 0x8131 + 3da0: 00ccb503 sbceq fp, ip, r3, lsl #10 + 3da4: 791b2e06 ldmdbvc fp, {r1, r2, r9, sl, fp, sp} + 3da8: 64060605 strvs r0, [r6], #-1541 + 3dac: 7e052937 mcrvc 9, 0, r2, cr5, cr7, {1} + 3db0: e7280a06 str r0, [r8, -r6, lsl #20]! + 3db4: 8858020d ldmdahi r8, {r0, r2, r3, r9}^ + 3db8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3dbc: 04087616 streq r7, [r8], #-1558 + 3dc0: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3dc4: 24680630 strbtcs r0, [r8], #-1584 + 3dc8: 77140408 ldrvc r0, [r4, -r8, lsl #8] + 3dcc: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3dd0: 0408d066 streq sp, [r8], #-102 + 3dd4: 0c087714 stceq 7, cr7, [r8], {20} + 3dd8: 6d740630 ldclvs 6, cr0, [r4, #-192]! + 3ddc: 77140408 ldrvc r0, [r4, -r8, lsl #8] + 3de0: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3de4: 04082215 streq r2, [r8], #-533 + 3de8: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3dec: ce130630 mrcgt 6, 0, r0, cr3, cr0, {1} + 3df0: 88580408 ldmdahi r8, {r3, sl}^ + 3df4: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3df8: 04087616 streq r7, [r8], #-1558 + 3dfc: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3e00: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3e04: 25660408 strbcs r0, [r6, #-1032]! + 3e08: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e0c: 04086d74 streq r6, [r8], #-3444 + 3e10: 0c087714 stceq 7, cr7, [r8], {20} + 3e14: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3e18: c2730408 rsbsgt r0, r3, #134217728 ; 0x8000000 + 3e1c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e20: 04082215 streq r2, [r8], #-533 + 3e24: 0c08c273 sfmeq f4, 1, [r8], {115} + 3e28: 23140630 tstcs r4, #50331648 ; 0x3000000 + 3e2c: 25660408 strbcs r0, [r6, #-1032]! + 3e30: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e34: 04087616 streq r7, [r8], #-1558 + 3e38: 0c08c273 sfmeq f4, 1, [r8], {115} + 3e3c: cd140630 ldcgt 6, cr0, [r4, #-192] + 3e40: c2730408 rsbsgt r0, r3, #134217728 ; 0x8000000 + 3e44: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e48: 04082215 streq r2, [r8], #-533 + 3e4c: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3e50: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3e54: 25660408 strbcs r0, [r6, #-1032]! + 3e58: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e5c: 04082215 streq r2, [r8], #-533 + 3e60: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3e64: ce130630 mrcgt 6, 0, r0, cr3, cr0, {1} + 3e68: 88580408 ldmdahi r8, {r3, sl}^ + 3e6c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e70: 04087616 streq r7, [r8], #-1558 + 3e74: 0c08c273 sfmeq f4, 1, [r8], {115} + 3e78: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3e7c: 25660408 strbcs r0, [r6, #-1032]! + 3e80: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e84: 04082215 streq r2, [r8], #-533 + 3e88: 0c082566 cfstr32eq mvfx2, [r8], {102} + 3e8c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3e90: c2730408 rsbsgt r0, r3, #134217728 ; 0x8000000 + 3e94: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3e98: 050a030a streq r0, [sl, #-778] + 3e9c: 260e7e06 strcs r7, [lr], -r6, lsl #28 + 3ea0: cf7e0503 svcgt 0x007e0503 + 3ea4: 22050a09 andcs r0, r5, #36864 ; 0x9000 + 3ea8: 307a036a rsbscc r0, sl, sl, ror #6 + 3eac: 030a0906 movweq r0, #43270 ; 0xa906 + 3eb0: 06036a22 streq r6, [r3], -r2, lsr #20 + 3eb4: 6a22fc2e bvs 8c2f74 + 3eb8: 0e055503 cfsh32eq mvfx5, mvfx5, #3 + 3ebc: b30a8e25 movwlt r8, #44581 ; 0xae25 + 3ec0: 039d207f orrseq r2, sp, #127 ; 0x7f + 3ec4: 0675052b ldrbteq r0, [r5], -fp, lsr #10 + 3ec8: 0915527c ldmdbeq r5, {r2, r3, r4, r5, r6, r9, ip, lr} + 3ecc: 01040500 tsteq r4, r0, lsl #10 + 3ed0: 08290100 stmdaeq r9!, {r8} + 3ed4: df69220b svcle 0x0069220b + 3ed8: 02000002 andeq r0, r0, #2 ; 0x2 + 3edc: 40143400 andsmi r3, r4, r0, lsl #8 + 3ee0: 00000700 andeq r0, r0, r0, lsl #14 + 3ee4: b16f0200 cmnlt pc, r0, lsl #4 + 3ee8: b5010000 strlt r0, [r1] + 3eec: 0100401b tsteq r0, fp, lsl r0 + 3ef0: 004020bb strheq r2, [r0], #-11 + 3ef4: 401c2501 andsmi r2, ip, r1, lsl #10 + 3ef8: b3a70200 undefined instruction 0xb3a70200 + 3efc: bd010000 stclt 0, cr0, [r1] + 3f00: 0100401d tsteq r0, sp, lsl r0 + 3f04: 004021e5 subeq r2, r0, r5, ror #3 + 3f08: 00000000 andeq r0, r0, r0 + 3f0c: 00000001 andeq r0, r0, r1 + 3f10: 00401274 subeq r1, r0, r4, ror r2 + 3f14: d5000151 strle r0, [r0, #-337] + 3f18: 01000119 tsteq r0, r9, lsl r1 + 3f1c: 78050002 stmdavc r5, {r1} + 3f20: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 3f24: 01010000 tsteq r1, r0 + 3f28: 00010101 andeq r0, r1, r1, lsl #2 + 3f2c: 01010001 tsteq r1, r1 + 3f30: 85d50101 ldrbhi r0, [r5, #257] + 3f34: bc000205 sfmlt f0, 4, [r0], {5} + 3f38: 10020202 andne r0, r2, r2, lsl #4 + 3f3c: b0014cf3 strdlt r4, [r1], -r3 + 3f40: 03082d01 movweq r2, #36097 ; 0x8d01 + 3f44: ef030104 svc 0x00030104 + 3f48: 2a1500cc bcs 544280 + 3f4c: 2b360205 blcs d84768 + 3f50: 4a1b0f06 bmi 6c7b70 + 3f54: 4e3d020d cdpmi 2, 3, cr0, cr13, cr13, {0} + 3f58: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3f5c: 73060405 movwvc r0, #25605 ; 0x6405 + 3f60: 7e05520e cdpvc 2, 0, cr5, cr5, cr14, {0} + 3f64: 030d9624 movweq r9, #54820 ; 0xd624 + 3f68: 0c08eb4a stceq 11, cr14, [r8], {74} + 3f6c: 22150630 andscs r0, r5, #50331648 ; 0x3000000 + 3f70: eb4a0408 bl 1284f98 + 3f74: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3f78: 12057d03 andne r7, r5, #192 ; 0xc0 + 3f7c: 790a9c17 stmdbvc sl, {r0, r1, r2, r4, sl, fp, ip, pc} + 3f80: 98207f05 stmdals r0!, {r0, r2, r8, r9, sl, fp, ip, sp, lr} + 3f84: 75050203 strvc r0, [r5, #-515] + 3f88: c0511906 subsgt r1, r1, r6, lsl #18 + 3f8c: 5f81040d svcpl 0x0081040d + 3f90: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 3f94: 290e5706 stmdbcs lr, {r1, r2, r8, r9, sl, ip, lr} + 3f98: 2e0a080a cdpcs 8, 0, cr0, cr10, cr10, {0} + 3f9c: d00a2f0a andle r2, sl, sl, lsl #30 + 3fa0: 00f40a00 rscseq r0, r4, r0, lsl #20 + 3fa4: 1506cc16 strne ip, [r6, #-3094] + 3fa8: 020d85cc andeq r8, sp, #855638016 ; 0x33000000 + 3fac: 0c084e3d stceq 14, cr4, [r8], {61} + 3fb0: 6c060630 stcvs 6, cr0, [r6], {48} + 3fb4: 1f18290e svcne 0x0018290e + 3fb8: 1422050d strtne r0, [r2], #-1293 + 3fbc: 08270a09 stmdaeq r7!, {r0, r3, r9, fp} + 3fc0: 0306300c movweq r3, #24588 ; 0x600c + 3fc4: 290d0601 stmdbcs sp, {r0, r9, sl} + 3fc8: 3d020d0c stccc 13, cr0, [r2, #-48] + 3fcc: 300c084e andcc r0, ip, lr, asr #16 + 3fd0: 0e690606 cdpeq 6, 6, cr0, cr9, cr6, {0} + 3fd4: 06040a29 streq r0, [r4], -r9, lsr #20 + 3fd8: 0a711b0f beq 1c4ac1c + 3fdc: 09b03c02 ldmibeq r0!, {r1, sl, fp, ip, sp} + 3fe0: 1406050a strne r0, [r6], #-1290 + 3fe4: 0a09f051 beq 280130 + 3fe8: 0a8c5804 beq fe31a000 + 3fec: 06010302 streq r0, [r1], -r2, lsl #6 + 3ff0: 0996446d ldmibeq r6, {r0, r2, r3, r5, r6, sl, lr} + 3ff4: 1406020a strne r0, [r6], #-522 + 3ff8: 8c58f051 mrrchi 0, 5, pc, r8, cr1 + 3ffc: 4e3d060d cfmsuba32mi mvax0, mvax0, mvfx13, mvfx13 + 4000: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4004: 170e5006 strne r5, [lr, -r6] + 4008: 0b0a7517 bleq 2a146c + 400c: 711b0506 tstvc fp, r6, lsl #10 + 4010: 070db03c smladxeq sp, ip, r0, fp + 4014: 0c084e3d stceq 14, cr4, [r8], {61} + 4018: 20170630 andscs r0, r7, r0, lsr r6 + 401c: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} + 4020: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4024: 04087715 streq r7, [r8], #-1813 + 4028: 0c084e3d stceq 14, cr4, [r8], {61} + 402c: 0a090630 beq 2458f4 + 4030: 4822150b stmdami r2!, {r0, r1, r3, r8, sl, ip} + 4034: 3d0408f1 stccc 8, cr0, [r4, #-964] + 4038: 300c084e andcc r0, ip, lr, asr #16 + 403c: 08201706 stmdaeq r0!, {r1, r2, r8, r9, sl, ip} + 4040: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 4044: 1506300c strne r3, [r6, #-12] + 4048: 3d040877 stccc 8, cr0, [r4, #-476] + 404c: 300c084e andcc r0, ip, lr, asr #16 + 4050: 08221506 stmdaeq r2!, {r1, r2, r8, sl, ip} + 4054: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 4058: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 405c: 01040500 tsteq r4, r0, lsl #10 + 4060: 082a0100 stmdaeq sl!, {r8} + 4064: 0369220b cmneq r9, #-1342177280 ; 0xb0000000 + 4068: 0d622303 stcleq 3, cr2, [r2, #-12]! + 406c: 084e3d02 stmdaeq lr, {r1, r8, sl, fp, ip, sp}^ + 4070: 0606300c streq r3, [r6], -ip + 4074: 0a290e6c beq a47a2c + 4078: 1b0f0604 blne 3c5890 + 407c: 3c020a71 stccc 10, cr0, [r2], {113} + 4080: 050a095b streq r0, [sl, #-2395] + 4084: f0511406 undefined instruction 0xf0511406 + 4088: 58040a09 stmdapl r4, {r0, r3, r9, fp} + 408c: 03020a8c movweq r0, #10892 ; 0x2a8c + 4090: 446d0601 strbtmi r0, [sp], #-1537 + 4094: 020a0996 andeq r0, sl, #2457600 ; 0x258000 + 4098: f0511406 undefined instruction 0xf0511406 + 409c: 060d8b58 undefined + 40a0: 0c084e3d stceq 14, cr4, [r8], {61} + 40a4: 51060630 tstpl r6, r0, lsr r6 + 40a8: 7517180e ldrvc r1, [r7, #-2062] + 40ac: 0506080a streq r0, [r6, #-2058] + 40b0: 053d711b ldreq r7, [sp, #-283]! + 40b4: 4e3d070d cdpmi 7, 3, cr0, cr13, cr13, {0} + 40b8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 40bc: 0408cb16 streq ip, [r8], #-2838 + 40c0: 0c084e3d stceq 14, cr4, [r8], {61} + 40c4: 0a090630 beq 24598c + 40c8: 49771567 ldmdbmi r7!, {r0, r1, r2, r5, r6, r8, sl, ip}^ + 40cc: 3d040846 stccc 8, cr0, [r4, #-280] + 40d0: 300c084e andcc r0, ip, lr, asr #16 + 40d4: 08cb1606 stmiaeq fp, {r1, r2, r9, sl, ip}^ + 40d8: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 40dc: 1506300c strne r3, [r6, #-12] + 40e0: 3d040877 stccc 8, cr0, [r4, #-476] + 40e4: 300c084e andcc r0, ip, lr, asr #16 + 40e8: 5d0a0906 stcpl 9, cr0, [sl, #-24] + 40ec: 03032215 movweq r2, #12821 ; 0x3215 + 40f0: 020de34c andeq lr, sp, #805306369 ; 0x30000001 + 40f4: 0c084e3d stceq 14, cr4, [r8], {61} + 40f8: 69060630 stmdbvs r6, {r4, r5, r9, sl} + 40fc: 040a290e streq r2, [sl], #-2318 + 4100: 711b0f06 tstvc fp, r6, lsl #30 + 4104: 5a3d020a bpl f44934 + 4108: 06050a09 streq r0, [r5], -r9, lsl #20 + 410c: 09f55115 ldmibeq r5!, {r0, r2, r4, r8, ip, lr}^ + 4110: 8c58040a cfldrdhi mvd0, [r8], {10} + 4114: 0103020a tsteq r3, sl, lsl #4 + 4118: 91446c06 cmpls r4, r6, lsl #24 + 411c: 06020a09 streq r0, [r2], -r9, lsl #20 + 4120: 58f05114 ldmpl r0!, {r2, r4, r8, ip, lr}^ + 4124: 3d060d8c stccc 13, cr0, [r6, #-560] + 4128: 300c084e andcc r0, ip, lr, asr #16 + 412c: 0e560606 cdpeq 6, 5, cr0, cr6, cr6, {0} + 4130: 13040a17 movwne r0, #18967 ; 0x4a17 + 4134: 44040624 strmi r0, [r4], #-1572 + 4138: 3d070d53 stccc 13, cr0, [r7, #-332] + 413c: 300c084e andcc r0, ip, lr, asr #16 + 4140: 10020506 andne r0, r2, r6, lsl #10 + 4144: 1e7e05a5 cdpne 5, 7, cr0, cr14, cr5, {5} + 4148: 0d721a9c fldmdbseq r2!, {s3-s158} + 414c: 08eb4a03 stmiaeq fp!, {r0, r1, r9, fp, lr}^ + 4150: 0a06300c beq 190188 + 4154: 091f1902 ldmdbeq pc, {r1, r8, fp, ip} + 4158: 4f48020a svcmi 0x0048020a + 415c: 04080930 streq r0, [r8], #-2352 + 4160: 0c08eb4a stceq 11, cr14, [r8], {74} + 4164: 70130630 andsvc r0, r3, r0, lsr r6 + 4168: eb4a0408 bl 1285190 + 416c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4170: 23057403 movwcs r7, #21507 ; 0x5403 + 4174: 981b0106 ldmdals fp, {r1, r2, r8} + 4178: 7505730a strvc r7, [r5, #-778] + 417c: 020a9820 andeq r9, sl, #2097152 ; 0x200000 + 4180: 6e050a03 fmacsvs s0, s10, s6 + 4184: 0a09714b beq 2606b8 + 4188: 033f7fba teqeq pc, #744 ; 0x2e8 + 418c: 7fb90a09 svcvc 0x00b90a09 + 4190: 0303ef4a movweq lr, #16202 ; 0x3f4a + 4194: 020d8e4c andeq r8, sp, #1216 ; 0x4c0 + 4198: 0c084e3d stceq 14, cr4, [r8], {61} + 419c: 6b060630 blvs 185a64 + 41a0: 2906290e stmdbcs r6, {r1, r2, r3, r8, fp, sp} + 41a4: 060d711b undefined + 41a8: 0c088858 stceq 8, cr8, [r8], {88} + 41ac: 5a060630 bpl 185a74 + 41b0: 7517290e ldrvc r2, [r7, #-2318] + 41b4: 7faf0a09 svcvc 0x00af0a09 + 41b8: 01611c1b cmneq r1, fp, lsl ip + 41bc: 00020000 andeq r0, r2, r0 + 41c0: 004016ac subeq r1, r0, ip, lsr #13 + 41c4: 00000004 andeq r0, r0, r4 + 41c8: 00b3a702 adcseq sl, r3, r2, lsl #14 + 41cc: 23190100 tstcs r9, #0 ; 0x0 + 41d0: 25010040 strcs r0, [r1, #-64] + 41d4: 0100401c tsteq r0, ip, lsl r0 + 41d8: 004020bb strheq r2, [r0], #-11 + 41dc: 00000000 andeq r0, r0, r0 + 41e0: 00000001 andeq r0, r0, r1 + 41e4: 00401274 subeq r1, r0, r4, ror r2 + 41e8: d5000151 strle r0, [r0, #-337] + 41ec: 01000119 tsteq r0, r9, lsl r1 + 41f0: 78050002 stmdavc r5, {r1} + 41f4: 0e296c11 mcreq 12, 1, r6, cr9, cr1, {0} + 41f8: 01010000 tsteq r1, r0 + 41fc: 00010101 andeq r0, r1, r1, lsl #2 + 4200: 01010001 tsteq r1, r1 + 4204: 96d50101 ldrbls r0, [r5], r1, lsl #2 + 4208: 9a000202 bls 4a18 + 420c: 11020201 tstne r2, r1, lsl #4 + 4210: 45014eb5 strmi r4, [r1, #-3765] + 4214: 04030801 streq r0, [r3], #-2049 + 4218: ceb10301 cdpgt 3, 11, cr0, cr1, cr1, {0} + 421c: 032a1500 teqeq sl, #0 ; 0x0 + 4220: 36030601 strcc r0, [r3], -r1, lsl #12 + 4224: 14020db8 strne r0, [r2], #-3512 + 4228: 300c0877 andcc r0, ip, r7, ror r8 + 422c: 06060a06 streq r0, [r6], -r6, lsl #20 + 4230: 0a711b13 beq 1c4ae84 + 4234: 7b770602 blvc 1dc5a44 + 4238: 020a091c andeq r0, sl, #458752 ; 0x70000 + 423c: 4e441b06 fmacdmi d17, d4, d6 + 4240: 030d563e movweq r5, #54846 ; 0xd63e + 4244: 0c084e3d stceq 14, cr4, [r8], {61} + 4248: 040a0630 streq r0, [sl], #-1584 + 424c: 170e1e0a strne r1, [lr, -sl, lsl #28] + 4250: 0408385f streq r3, [r8], #-2143 + 4254: 0c084e3d stceq 14, cr4, [r8], {61} + 4258: 060a0630 undefined + 425c: 1f0f1a0a svcne 0x000f1a0a + 4260: 7706020a strvc r0, [r6, -sl, lsl #4] + 4264: 0a094552 beq 2557b4 + 4268: 441b0602 ldrmi r0, [fp], #-1538 + 426c: 08f34b4e ldmeq r3!, {r1, r2, r3, r6, r8, r9, fp, lr}^ + 4270: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 4274: 0a06300c beq 1902ac + 4278: 0e140a04 fmscseq s0, s8, s8 + 427c: 08395ec1 ldmdaeq r9!, {r0, r6, r7, r9, sl, fp, ip, lr} + 4280: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 4284: 0a06300c beq 1902bc + 4288: 0f100a04 svceq 0x00100a04 + 428c: 08395ec9 ldmdaeq r9!, {r0, r3, r6, r7, r9, sl, fp, ip, lr} + 4290: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 4294: 0a06300c beq 1902cc + 4298: 0f0c0a04 svceq 0x000c0a04 + 429c: 08395ec9 ldmdaeq r9!, {r0, r3, r6, r7, r9, sl, fp, ip, lr} + 42a0: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 42a4: 0a06300c beq 1902dc + 42a8: 0f080a04 svceq 0x00080a04 + 42ac: 087379c9 ldmdaeq r3!, {r0, r3, r6, r7, r8, fp, ip, sp, lr}^ + 42b0: 084e3d04 stmdaeq lr, {r2, r8, sl, fp, ip, sp}^ + 42b4: 0a06300c beq 1902ec + 42b8: 79c90f04 stmibvc r9, {r2, r8, r9, sl, fp}^ + 42bc: 3d040873 stccc 8, cr0, [r4, #-460] + 42c0: 300c084e andcc r0, ip, lr, asr #16 + 42c4: 0e5e0606 cdpeq 6, 5, cr0, cr14, cr6, {0} + 42c8: 080a0921 stmdaeq sl, {r0, r5, r8, fp} + 42cc: cb3e0405 blgt f852e8 + 42d0: 194e0703 stmdbne lr, {r0, r1, r8, r9, sl}^ + 42d4: 4e3d040d cdpmi 4, 3, cr0, cr13, cr13, {0} + 42d8: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 42dc: 04087013 streq r7, [r8], #-19 + 42e0: 0c084e3d stceq 14, cr4, [r8], {61} + 42e4: 73030630 movwvc r0, #13872 ; 0x3630 + 42e8: 01062305 tsteq r6, r5, lsl #6 + 42ec: 070a981b smladeq sl, fp, r8, r9 + 42f0: d23b7505 eorsle r7, fp, #20971520 ; 0x1400000 + 42f4: 76067005 strvc r7, [r6], -r5 + 42f8: 721a3c29 andsvc r3, sl, #10496 ; 0x2900 + 42fc: 4e3d0408 cdpmi 4, 3, cr0, cr13, cr8, {0} + 4300: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4304: 1f19740a svcne 0x0019740a + 4308: 2d740a09 fldmdbscs r4!, {s1-s9} + 430c: 06040315 undefined + 4310: 09482971 stmdbeq r8, {r0, r4, r5, r6, r8, fp, sp}^ + 4314: 01040500 tsteq r4, r0, lsl #10 + 4318: 082b0100 stmdaeq fp!, {r8} + 431c: 8469220b strbthi r2, [r9], #-523 + 4320: 01000000 tsteq r0, r0 + 4324: 4017e000 andsmi lr, r7, r0 + 4328: 00000400 andeq r0, r0, r0, lsl #8 + 432c: b53b0200 ldrlt r0, [fp, #-512]! + 4330: f5010000 undefined instruction 0xf5010000 + 4334: 0100003b tsteq r0, fp, lsr r0 + 4338: 00403d85 subeq r3, r0, r5, lsl #27 + 433c: 006cb901 rsbeq fp, ip, r1, lsl #18 + 4340: 00000000 andeq r0, r0, r0 + 4344: 00015100 andeq r5, r1, r0, lsl #2 + 4348: 000119d5 ldrdeq r1, [r1], -r5 + 434c: 05000201 streq r0, [r0, #-513] + 4350: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 4354: 0100000e tsteq r0, lr + 4358: 01010101 tsteq r1, r1, lsl #2 + 435c: 01000100 tsteq r0, r0, lsl #2 + 4360: d5010101 strle r0, [r1, #-257] + 4364: 16000242 strne r0, [r0], -r2, asr #4 + 4368: 81120202 tsthi r2, r2, lsl #4 + 436c: 0109014f tsteq r9, pc, asr #2 + 4370: 01040308 tsteq r4, r8, lsl #6 + 4374: 00cefd03 sbceq pc, lr, r3, lsl #26 + 4378: 08062a15 stmdaeq r6, {r0, r2, r4, r9, fp, sp} + 437c: 4d3fb736 ldcmi 7, cr11, [pc, #-216]! + 4380: 020d5f2d andeq r5, sp, #180 ; 0xb4 + 4384: 0c087714 stceq 7, cr7, [r8], {20} + 4388: 26110630 undefined + 438c: 1422030d strtne r0, [r2], #-781 + 4390: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4394: 711b0f06 tstvc fp, r6, lsl #30 + 4398: b12f040d teqlt pc, sp, lsl #8 + 439c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 43a0: 06730a09 ldrbteq r0, [r3], -r9, lsl #20 + 43a4: a4200e66 strtge r0, [r0], #-3686 + 43a8: 02000000 andeq r0, r0, #0 ; 0x0 + 43ac: 40180c00 andsmi r0, r8, r0, lsl #24 + 43b0: 00000400 andeq r0, r0, r0, lsl #8 + 43b4: b6570200 ldrblt r0, [r7], -r0, lsl #4 + 43b8: 05010000 streq r0, [r1] + 43bc: 0100006e tsteq r0, lr, rrx + 43c0: 0000701d andeq r7, r0, sp, lsl r0 + 43c4: 006ec501 rsbeq ip, lr, r1, lsl #10 + 43c8: 00000000 andeq r0, r0, r0 + 43cc: 00000100 andeq r0, r0, r0, lsl #2 + 43d0: 40184400 andsmi r4, r8, r0, lsl #8 + 43d4: 00015100 andeq r5, r1, r0, lsl #2 + 43d8: 000119d5 ldrdeq r1, [r1], -r5 + 43dc: 05000201 streq r0, [r0, #-513] + 43e0: 296c1178 stmdbcs ip!, {r3, r4, r5, r6, r8, ip}^ + 43e4: 0100000e tsteq r0, lr + 43e8: 01010101 tsteq r1, r1, lsl #2 + 43ec: 01000100 tsteq r0, r0, lsl #2 + 43f0: d5010101 strle r0, [r1, #-257] + 43f4: 1c00025a sfmne f0, 4, [r0], {90} + 43f8: 92130202 andsls r0, r3, #536870912 ; 0x20000000 + 43fc: 010a014f tsteq sl, pc, asr #2 + 4400: 01040308 tsteq r4, r8, lsl #6 + 4404: 00cf8e03 sbceq r8, pc, r3, lsl #28 + 4408: 30062a15 andcc r2, r6, r5, lsl sl + 440c: 020d1b29 andeq r1, sp, #41984 ; 0xa400 + 4410: 4d660305 stclmi 3, cr0, [r6, #-20]! + 4414: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4418: 98030600 stmdals r3, {r9, sl} + 441c: 2200034f andcs r0, r0, #1006632961 ; 0x3c000001 + 4420: a2177d05 andsge r7, r7, #320 ; 0x140 + 4424: 0305030d movweq r0, #21261 ; 0x530d + 4428: 040a134b streq r1, [sl], #-843 + 442c: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4430: 02067f05 andeq r7, r6, #20 ; 0x14 + 4434: 040d8536 streq r8, [sp], #-1334 + 4438: 0c08c273 sfmeq f4, 1, [r8], {115} + 443c: b4060630 strlt r0, [r6], #-1584 + 4440: 0950297f ldmdbeq r0, {r0, r1, r2, r3, r4, r5, r6, r8, fp, sp}^ + 4444: 01040500 tsteq r4, r0, lsl #10 + 4448: 082c0100 stmdaeq ip!, {r8} + 444c: 73cc140b bicvc r1, ip, #184549376 ; 0xb000000 + 4450: 02000000 andeq r0, r0, #0 ; 0x0 + 4454: 40185400 andsmi r5, r8, r0, lsl #8 + 4458: 00000200 andeq r0, r0, r0, lsl #4 + 445c: b9470200 stmdblt r7, {r9}^ + 4460: 69010000 stmdbvs r1, {} + 4464: 0000006d andeq r0, r0, sp, rrx + 4468: 01000000 tsteq r0, r0 + 446c: 4c000000 stcmi 0, cr0, [r0], {0} + 4470: 5100400e tstpl r0, lr + 4474: 19d50001 ldmibne r5, {r0}^ + 4478: 02010001 andeq r0, r1, #1 ; 0x1 + 447c: 11780500 cmnne r8, r0, lsl #10 + 4480: 000e296c andeq r2, lr, ip, ror #18 + 4484: 01010100 tsteq r1, r0, lsl #2 + 4488: 01000101 tsteq r0, r1, lsl #2 + 448c: 01010100 tsteq r1, r0, lsl #2 + 4490: 0233d501 eorseq sp, r3, #4194304 ; 0x400000 + 4494: 02021000 andeq r1, r2, #0 ; 0x0 + 4498: 014fa414 cmpeq pc, r4, lsl r4 + 449c: 03080103 movweq r0, #33027 ; 0x8103 + 44a0: a0030104 andge r0, r3, r4, lsl #2 + 44a4: 2a1500cf bcs 5447e8 + 44a8: 2900cb06 stmdbcs r0, {r1, r2, r8, r9, fp, lr, pc} + 44ac: 81020d19 tsthi r2, r9, lsl sp + 44b0: 300c085f andcc r0, ip, pc, asr r8 + 44b4: 7fb60606 svcvc 0x00b60606 + 44b8: 0009bc1b andeq fp, r9, fp, lsl ip + 44bc: 00010405 andeq r0, r1, r5, lsl #8 + 44c0: 0b082d01 bleq 20f8cc + 44c4: 0124cc14 teqeq r4, r4, lsl ip + 44c8: 00020000 andeq r0, r2, r0 + 44cc: 00401874 subeq r1, r0, r4, ror r8 + 44d0: 00000006 andeq r0, r0, r6 + 44d4: 00ba5f02 adcseq r5, sl, r2, lsl #30 + 44d8: 3a310100 bcc c448e0 + 44dc: 57010040 strpl r0, [r1, -r0, asr #32] + 44e0: 0200401b andeq r4, r0, #27 ; 0x1b + 44e4: 0000b16f andeq fp, r0, pc, ror #2 + 44e8: 403a8f01 eorsmi r8, sl, r1, lsl #30 + 44ec: 30790100 rsbscc r0, r9, r0, lsl #2 + 44f0: 00000000 andeq r0, r0, r0 + 44f4: 00010000 andeq r0, r1, r0 + 44f8: 18440000 stmdane r4, {}^ + 44fc: 01510040 cmpeq r1, r0, asr #32 + 4500: 0119d500 tsteq r9, r0, lsl #10 + 4504: 00020100 andeq r0, r2, r0, lsl #2 + 4508: 6c117805 ldcvs 8, cr7, [r1], {5} + 450c: 00000e29 andeq r0, r0, r9, lsr #28 + 4510: 01010101 tsteq r1, r1, lsl #2 + 4514: 00010001 andeq r0, r1, r1 + 4518: 01010101 tsteq r1, r1, lsl #2 + 451c: 0201cfd5 andeq ip, r1, #852 ; 0x354 + 4520: 02026200 andeq r6, r2, #0 ; 0x0 + 4524: 014fa915 cmpeq pc, r5, lsl r9 + 4528: 0308014d movweq r0, #33101 ; 0x814d + 452c: a5030104 strge r0, [r3, #-260] + 4530: 2a1500cf bcs 544874 + 4534: 0906040a stmdbeq r6, {r1, r3, sl} + 4538: b8341b29 ldmdalt r4!, {r0, r3, r5, r8, r9, fp, ip} + 453c: 0a09523a beq 258e2c + 4540: 0a092e26 beq 24fde0 + 4544: 30010312 andcc r0, r1, r2, lsl r3 + 4548: 3ab834aa bcc fee117f8 + 454c: 0a063152 beq 190a9c + 4550: 09b42d02 ldmibeq r4!, {r1, r8, sl, fp, sp} + 4554: 1230220a eorsne r2, r0, #-1610612736 ; 0xa0000000 + 4558: 0806fb3e stmdaeq r6, {r1, r2, r3, r4, r5, r8, r9, fp, ip, sp, lr, pc} + 455c: 020dab36 andeq sl, sp, #55296 ; 0xd800 + 4560: 0c081422 cfstrseq mvf1, [r8], {34} + 4564: 75060630 strvc r0, [r6, #-1584] + 4568: 5f2e290e svcpl 0x002e290e + 456c: 7714030d ldrvc r0, [r4, -sp, lsl #6] + 4570: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4574: 040d721a streq r7, [sp], #-538 + 4578: 0c081422 cfstrseq mvf1, [r8], {34} + 457c: 0a090630 beq 245e44 + 4580: 1b110616 blne 445de0 + 4584: 060b0a69 streq r0, [fp], -r9, ror #20 + 4588: 35be1b63 ldrcc r1, [lr, #2915]! + 458c: 31523a62 cmpcc r2, r2, ror #20 + 4590: 2c110a06 ldccs 10, cr0, [r1], {6} + 4594: 171131b5 undefined + 4598: 0d573523 cfldr64eq mvdx3, [r7, #-140] + 459c: 08322205 ldmdaeq r2!, {r0, r2, r9, sp} + 45a0: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 45a4: 7e060b0a fmacdvc d0, d6, d10 + 45a8: 040a0b0e streq r0, [sl], #-2830 + 45ac: e73e0203 ldr r0, [lr, -r3, lsl #4]! + 45b0: 523a6433 eorspl r6, sl, #855638016 ; 0x33000000 + 45b4: 32050a09 andcc r0, r5, #36864 ; 0x9000 + 45b8: 03090aaf movweq r0, #39599 ; 0x9aaf + 45bc: 34ae2c01 strtcc r2, [lr], #3073 + 45c0: 33523a0e cmpcc r2, #57344 ; 0xe000 + 45c4: 06fc3aae ldrbteq r3, [ip], lr, lsr #21 + 45c8: 0dab3614 stceq 6, cr3, [fp, #80]! + 45cc: 084e3d06 stmdaeq lr, {r1, r2, r8, sl, fp, ip, sp}^ + 45d0: 0906300c stmdbeq r6, {r2, r3, ip, sp} + 45d4: 01040500 tsteq r4, r0, lsl #10 + 45d8: 082e0100 stmdaeq lr!, {r8} + 45dc: 0acc140b beq ff309610 + 45e0: 1b6d067f blne 1b45fe4 + 45e4: 09142ebf ldmdbeq r4, {r0, r1, r2, r3, r4, r5, r7, r9, sl, fp, sp} + 45e8: 76067d0a strvc r7, [r6], -sl, lsl #26 + 45ec: 006ded36 rsbeq lr, sp, r6, lsr sp + 45f0: 00010000 andeq r0, r1, r0 + 45f4: 00401938 subeq r1, r0, r8, lsr r9 + 45f8: 00000002 andeq r0, r0, r2 + 45fc: 00bbd702 adcseq sp, fp, r2, lsl #14 + 4600: 32fd0100 rscscc r0, sp, #0 ; 0x0 + 4604: 00000000 andeq r0, r0, r0 + 4608: 01510000 cmpeq r1, r0 + 460c: 0119d500 tsteq r9, r0, lsl #10 + 4610: 00020100 andeq r0, r2, r0, lsl #2 + 4614: 6c117805 ldcvs 8, cr7, [r1], {5} + 4618: 00000e29 andeq r0, r0, r9, lsr #28 + 461c: 01010101 tsteq r1, r1, lsl #2 + 4620: 00010001 andeq r0, r1, r1 + 4624: 01010101 tsteq r1, r1, lsl #2 + 4628: 000235d5 ldrdeq r3, [r2], -r5 + 462c: 16020215 undefined + 4630: 08014ffe stmdaeq r1, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} + 4634: 0403080b streq r0, [r3], #-2059 + 4638: cffa0301 svcgt 0x00fa0301 + 463c: 092a1500 stmdbeq sl!, {r8, sl, ip} + 4640: bc31020a lfmlt f0, 4, [r1], #-40 + 4644: 7e03bd30 mcrvc 13, 0, fp, cr3, cr0, {1} + 4648: 3d443106 stfcce f3, [r4, #-24] + 464c: 7f06020d svcvc 0x0006020d + 4650: 7d0a8029 stcvc 0, cr8, [sl, #-164] + 4654: 06300c08 ldrteq r0, [r0], -r8, lsl #24 + 4658: 06790a09 ldrbteq r0, [r9], -r9, lsl #20 + 465c: Address 0x000000000000465c is out of bounds. + + +Disassembly of section .comment: + +00000000 <.comment>: + 0: 20524149 subscs r4, r2, r9, asr #2 + 4: 20464c45 subcs r4, r6, r5, asr #24 + 8: 6b6e694c blvs 1b9a540 + c: 56207265 strtpl r7, [r0], -r5, ror #4 + 10: 30332e35 eorscc r2, r3, r5, lsr lr + 14: 352e322e strcc r3, [lr, #-558]! + 18: 35393231 ldrcc r3, [r9, #-561]! + 1c: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 20: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 24: 4d524120 ldfmie f4, [r2, #-128] + 28: 3a432200 bcc 10c8830 + 2c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 30: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 34: 61207374 teqvs r0, r4, ror r3 + 38: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 40: 5c73676e ldclpl 7, cr6, [r3], #-440 + 44: 766c616d strbtvc r6, [ip], -sp, ror #2 + 48: 5c617269 sfmpl f7, 2, [r1], #-420 + 4c: 4420794d strtmi r7, [r0], #-2381 + 50: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 54: 73746e65 cmnvc r4, #1616 ; 0x650 + 58: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 5c: 746e6f63 strbtvc r6, [lr], #-3939 + 60: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 64: 74616557 strbtvc r6, [r1], #-1367 + 68: 20726568 rsbscs r6, r2, r8, ror #10 + 6c: 74617453 strbtvc r7, [r1], #-1107 + 70: 206e6f69 rsbcs r6, lr, r9, ror #30 + 74: 746e6f43 strbtvc r6, [lr], #-3907 + 78: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 7c: 445c7265 ldrbmi r7, [ip], #-613 + 80: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 84: 6a624f5c bvs 1893dfc + 88: 6c65445c cfstrdvs mvd4, [r5], #-368 + 8c: 6f2e7961 svcvs 0x002e7961 + 90: 43222022 teqmi r2, #34 ; 0x22 + 94: 6f445c3a svcvs 0x00445c3a + 98: 656d7563 strbvs r7, [sp, #-1379]! + 9c: 2073746e rsbscs r7, r3, lr, ror #8 + a0: 20646e61 rsbcs r6, r4, r1, ror #28 + a4: 74746553 ldrbtvc r6, [r4], #-1363 + a8: 73676e69 cmnvc r7, #1680 ; 0x690 + ac: 6c616d5c stclvs 13, cr6, [r1], #-368 + b0: 61726976 cmnvs r2, r6, ror r9 + b4: 20794d5c rsbscs r4, r9, ip, asr sp + b8: 75636f44 strbvc r6, [r3, #-3908]! + bc: 746e656d strbtvc r6, [lr], #-1389 + c0: 73775c73 cmnvc r7, #29440 ; 0x7300 + c4: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + c8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + cc: 6165575c cmnvs r5, ip, asr r7 + d0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + d4: 61745320 cmnvs r4, r0, lsr #6 + d8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + dc: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + e0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + e4: 5c72656c cfldr64pl mvdx6, [r2], #-432 + e8: 75626544 strbvc r6, [r2, #-1348]! + ec: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + f0: 69445c6a stmdbvs r4, {r1, r3, r5, r6, sl, fp, ip, lr}^ + f4: 616c7073 smcvs 50947 + f8: 226f2e79 rsbcs r2, pc, #1936 ; 0x790 + fc: 3a432220 bcc 10c8984 + 100: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 104: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 108: 61207374 teqvs r0, r4, ror r3 + 10c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 110: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 114: 5c73676e ldclpl 7, cr6, [r3], #-440 + 118: 766c616d strbtvc r6, [ip], -sp, ror #2 + 11c: 5c617269 sfmpl f7, 2, [r1], #-420 + 120: 4420794d strtmi r7, [r0], #-2381 + 124: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 128: 73746e65 cmnvc r4, #1616 ; 0x650 + 12c: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 130: 746e6f63 strbtvc r6, [lr], #-3939 + 134: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 138: 74616557 strbtvc r6, [r1], #-1367 + 13c: 20726568 rsbscs r6, r2, r8, ror #10 + 140: 74617453 strbtvc r7, [r1], #-1107 + 144: 206e6f69 rsbcs r6, lr, r9, ror #30 + 148: 746e6f43 strbtvc r6, [lr], #-3907 + 14c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 150: 445c7265 ldrbmi r7, [ip], #-613 + 154: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 158: 6a624f5c bvs 1893ed0 + 15c: 444c485c strbmi r4, [ip], #-2140 + 160: 6f2e7672 svcvs 0x002e7672 + 164: 43222022 teqmi r2, #34 ; 0x22 + 168: 6f445c3a svcvs 0x00445c3a + 16c: 656d7563 strbvs r7, [sp, #-1379]! + 170: 2073746e rsbscs r7, r3, lr, ror #8 + 174: 20646e61 rsbcs r6, r4, r1, ror #28 + 178: 74746553 ldrbtvc r6, [r4], #-1363 + 17c: 73676e69 cmnvc r7, #1680 ; 0x690 + 180: 6c616d5c stclvs 13, cr6, [r1], #-368 + 184: 61726976 cmnvs r2, r6, ror r9 + 188: 20794d5c rsbscs r4, r9, ip, asr sp + 18c: 75636f44 strbvc r6, [r3, #-3908]! + 190: 746e656d strbtvc r6, [lr], #-1389 + 194: 73775c73 cmnvc r7, #29440 ; 0x7300 + 198: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 19c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1a0: 6165575c cmnvs r5, ip, asr r7 + 1a4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1a8: 61745320 cmnvs r4, r0, lsr #6 + 1ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1b0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1b4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1b8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1bc: 75626544 strbvc r6, [r2, #-1348]! + 1c0: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 1c4: 6e495c6a cdpvs 12, 4, cr5, cr9, cr10, {3} + 1c8: 492d7469 pushmi {r0, r3, r5, r6, sl, ip, sp, lr} + 1cc: 6f2e5241 svcvs 0x002e5241 + 1d0: 43222022 teqmi r2, #34 ; 0x22 + 1d4: 6f445c3a svcvs 0x00445c3a + 1d8: 656d7563 strbvs r7, [sp, #-1379]! + 1dc: 2073746e rsbscs r7, r3, lr, ror #8 + 1e0: 20646e61 rsbcs r6, r4, r1, ror #28 + 1e4: 74746553 ldrbtvc r6, [r4], #-1363 + 1e8: 73676e69 cmnvc r7, #1680 ; 0x690 + 1ec: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1f0: 61726976 cmnvs r2, r6, ror r9 + 1f4: 20794d5c rsbscs r4, r9, ip, asr sp + 1f8: 75636f44 strbvc r6, [r3, #-3908]! + 1fc: 746e656d strbtvc r6, [lr], #-1389 + 200: 73775c73 cmnvc r7, #29440 ; 0x7300 + 204: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 208: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 20c: 6165575c cmnvs r5, ip, asr r7 + 210: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 214: 61745320 cmnvs r4, r0, lsr #6 + 218: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 21c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 220: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 224: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 228: 75626544 strbvc r6, [r2, #-1348]! + 22c: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 230: 654b5c6a strbvs r5, [fp, #-3178] + 234: 616f6279 smcvs 63017 + 238: 6f2e6472 svcvs 0x002e6472 + 23c: 43222022 teqmi r2, #34 ; 0x22 + 240: 6f445c3a svcvs 0x00445c3a + 244: 656d7563 strbvs r7, [sp, #-1379]! + 248: 2073746e rsbscs r7, r3, lr, ror #8 + 24c: 20646e61 rsbcs r6, r4, r1, ror #28 + 250: 74746553 ldrbtvc r6, [r4], #-1363 + 254: 73676e69 cmnvc r7, #1680 ; 0x690 + 258: 6c616d5c stclvs 13, cr6, [r1], #-368 + 25c: 61726976 cmnvs r2, r6, ror r9 + 260: 20794d5c rsbscs r4, r9, ip, asr sp + 264: 75636f44 strbvc r6, [r3, #-3908]! + 268: 746e656d strbtvc r6, [lr], #-1389 + 26c: 73775c73 cmnvc r7, #29440 ; 0x7300 + 270: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 274: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 278: 6165575c cmnvs r5, ip, asr r7 + 27c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 280: 61745320 cmnvs r4, r0, lsr #6 + 284: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 288: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 28c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 290: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 294: 75626544 strbvc r6, [r2, #-1348]! + 298: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 29c: 654c5c6a strbvs r5, [ip, #-3178] + 2a0: 6f2e7364 svcvs 0x002e7364 + 2a4: 43222022 teqmi r2, #34 ; 0x22 + 2a8: 6f445c3a svcvs 0x00445c3a + 2ac: 656d7563 strbvs r7, [sp, #-1379]! + 2b0: 2073746e rsbscs r7, r3, lr, ror #8 + 2b4: 20646e61 rsbcs r6, r4, r1, ror #28 + 2b8: 74746553 ldrbtvc r6, [r4], #-1363 + 2bc: 73676e69 cmnvc r7, #1680 ; 0x690 + 2c0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 2c4: 61726976 cmnvs r2, r6, ror r9 + 2c8: 20794d5c rsbscs r4, r9, ip, asr sp + 2cc: 75636f44 strbvc r6, [r3, #-3908]! + 2d0: 746e656d strbtvc r6, [lr], #-1389 + 2d4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 2d8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 2dc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2e0: 6165575c cmnvs r5, ip, asr r7 + 2e4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2e8: 61745320 cmnvs r4, r0, lsr #6 + 2ec: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2f0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2f4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2f8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2fc: 75626544 strbvc r6, [r2, #-1348]! + 300: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 304: 614d5c6a cmpvs sp, sl, ror #24 + 308: 6e496163 dvfvsez f6, f1, f3 + 30c: 72726574 rsbsvc r6, r2, #486539264 ; 0x1d000000 + 310: 2e747075 mrccs 0, 3, r7, cr4, cr5, {3} + 314: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 + 318: 445c3a43 ldrbmi r3, [ip], #-2627 + 31c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 320: 73746e65 cmnvc r4, #1616 ; 0x650 + 324: 646e6120 strbtvs r6, [lr], #-288 + 328: 74655320 strbtvc r5, [r5], #-800 + 32c: 676e6974 undefined + 330: 616d5c73 smcvs 54723 + 334: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 338: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 33c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 340: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 344: 775c7374 undefined + 348: 6f632d73 svcvs 0x00632d73 + 34c: 6f72746e svcvs 0x0072746e + 350: 65575c6c ldrbvs r5, [r7, #-3180] + 354: 65687461 strbvs r7, [r8, #-1121]! + 358: 74532072 ldrbvc r2, [r3], #-114 + 35c: 6f697461 svcvs 0x00697461 + 360: 6f43206e svcvs 0x0043206e + 364: 6f72746e svcvs 0x0072746e + 368: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 36c: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 370: 4f5c6775 svcmi 0x005c6775 + 374: 505c6a62 subspl r6, ip, r2, ror #20 + 378: 6674616c ldrbtvs r6, [r4], -ip, ror #2 + 37c: 496d726f stmdbmi sp!, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 380: 2e74696e cdpcs 9, 7, cr6, cr4, cr14, {3} + 384: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 + 388: 445c3a43 ldrbmi r3, [ip], #-2627 + 38c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 390: 73746e65 cmnvc r4, #1616 ; 0x650 + 394: 646e6120 strbtvs r6, [lr], #-288 + 398: 74655320 strbtvc r5, [r5], #-800 + 39c: 676e6974 undefined + 3a0: 616d5c73 smcvs 54723 + 3a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3b4: 775c7374 undefined + 3b8: 6f632d73 svcvs 0x00632d73 + 3bc: 6f72746e svcvs 0x0072746e + 3c0: 65575c6c ldrbvs r5, [r7, #-3180] + 3c4: 65687461 strbvs r7, [r8, #-1121]! + 3c8: 74532072 ldrbvc r2, [r3], #-114 + 3cc: 6f697461 svcvs 0x00697461 + 3d0: 6f43206e svcvs 0x0043206e + 3d4: 6f72746e svcvs 0x0072746e + 3d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3dc: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 3e0: 4f5c6775 svcmi 0x005c6775 + 3e4: 525c6a62 subspl r6, ip, #401408 ; 0x62000 + 3e8: 6f696461 svcvs 0x00696461 + 3ec: 616e614d cmnvs lr, sp, asr #2 + 3f0: 656d6567 strbvs r6, [sp, #-1383]! + 3f4: 6f2e746e svcvs 0x002e746e + 3f8: 43222022 teqmi r2, #34 ; 0x22 + 3fc: 6f445c3a svcvs 0x00445c3a + 400: 656d7563 strbvs r7, [sp, #-1379]! + 404: 2073746e rsbscs r7, r3, lr, ror #8 + 408: 20646e61 rsbcs r6, r4, r1, ror #28 + 40c: 74746553 ldrbtvc r6, [r4], #-1363 + 410: 73676e69 cmnvc r7, #1680 ; 0x690 + 414: 6c616d5c stclvs 13, cr6, [r1], #-368 + 418: 61726976 cmnvs r2, r6, ror r9 + 41c: 20794d5c rsbscs r4, r9, ip, asr sp + 420: 75636f44 strbvc r6, [r3, #-3908]! + 424: 746e656d strbtvc r6, [lr], #-1389 + 428: 73775c73 cmnvc r7, #29440 ; 0x7300 + 42c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 430: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 434: 6165575c cmnvs r5, ip, asr r7 + 438: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 43c: 61745320 cmnvs r4, r0, lsr #6 + 440: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 444: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 448: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 44c: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 450: 75626544 strbvc r6, [r2, #-1348]! + 454: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 458: 65535c6a ldrbvs r5, [r3, #-3178] + 45c: 69727563 ldmdbvs r2!, {r0, r1, r5, r6, r8, sl, ip, sp, lr}^ + 460: 6e4d7974 mcrvs 9, 2, r7, cr13, cr4, {3} + 464: 746e6d67 strbtvc r6, [lr], #-3431 + 468: 20226f2e eorcs r6, r2, lr, lsr #30 + 46c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 470: 75636f44 strbvc r6, [r3, #-3908]! + 474: 746e656d strbtvc r6, [lr], #-1389 + 478: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 47c: 65532064 ldrbvs r2, [r3, #-100] + 480: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 484: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 488: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 48c: 4d5c6172 ldfmie f6, [ip, #-456] + 490: 6f442079 svcvs 0x00442079 + 494: 656d7563 strbvs r7, [sp, #-1379]! + 498: 5c73746e cfldrdpl mvd7, [r3], #-440 + 49c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4a0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4a4: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4a8: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4ac: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4b0: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4b4: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4b8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4bc: 656c6c6f strbvs r6, [ip, #-3183]! + 4c0: 65445c72 strbvs r5, [r4, #-3186] + 4c4: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4c8: 5c6a624f sfmpl f6, 2, [sl], #-316 + 4cc: 6e756f53 mrcvs 15, 3, r6, cr5, cr3, {2} + 4d0: 226f2e64 rsbcs r2, pc, #1600 ; 0x640 + 4d4: 3a432220 bcc 10c8d5c + 4d8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 4dc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4e0: 61207374 teqvs r0, r4, ror r3 + 4e4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 4e8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4ec: 5c73676e ldclpl 7, cr6, [r3], #-440 + 4f0: 766c616d strbtvc r6, [ip], -sp, ror #2 + 4f4: 5c617269 sfmpl f7, 2, [r1], #-420 + 4f8: 4420794d strtmi r7, [r0], #-2381 + 4fc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 500: 73746e65 cmnvc r4, #1616 ; 0x650 + 504: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 508: 746e6f63 strbtvc r6, [lr], #-3939 + 50c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 510: 74616557 strbtvc r6, [r1], #-1367 + 514: 20726568 rsbscs r6, r2, r8, ror #10 + 518: 74617453 strbtvc r7, [r1], #-1107 + 51c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 520: 746e6f43 strbtvc r6, [lr], #-3907 + 524: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 528: 445c7265 ldrbmi r7, [ip], #-613 + 52c: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 530: 6a624f5c bvs 18942a8 + 534: 6172545c cmnvs r2, ip, asr r4 + 538: 6563736e strbvs r7, [r3, #-878]! + 53c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 540: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 544: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 548: 746e6d67 strbtvc r6, [lr], #-3431 + 54c: 20226f2e eorcs r6, r2, lr, lsr #30 + 550: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 554: 75636f44 strbvc r6, [r3, #-3908]! + 558: 746e656d strbtvc r6, [lr], #-1389 + 55c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 560: 65532064 ldrbvs r2, [r3, #-100] + 564: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 568: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 56c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 570: 4d5c6172 ldfmie f6, [ip, #-456] + 574: 6f442079 svcvs 0x00442079 + 578: 656d7563 strbvs r7, [sp, #-1379]! + 57c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 580: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 584: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 588: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 58c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 590: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 594: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 598: 43206e6f teqmi r0, #1776 ; 0x6f0 + 59c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 5a0: 656c6c6f strbvs r6, [ip, #-3183]! + 5a4: 65445c72 strbvs r5, [r4, #-3186] + 5a8: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 5ac: 5c6a624f sfmpl f6, 2, [sl], #-316 + 5b0: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} + 5b4: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ + 5b8: 50726576 rsbspl r6, r2, r6, ror r5 + 5bc: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 + 5c0: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 5c4: 6f2e746e svcvs 0x002e746e + 5c8: 43222022 teqmi r2, #34 ; 0x22 + 5cc: 6f445c3a svcvs 0x00445c3a + 5d0: 656d7563 strbvs r7, [sp, #-1379]! + 5d4: 2073746e rsbscs r7, r3, lr, ror #8 + 5d8: 20646e61 rsbcs r6, r4, r1, ror #28 + 5dc: 74746553 ldrbtvc r6, [r4], #-1363 + 5e0: 73676e69 cmnvc r7, #1680 ; 0x690 + 5e4: 6c616d5c stclvs 13, cr6, [r1], #-368 + 5e8: 61726976 cmnvs r2, r6, ror r9 + 5ec: 20794d5c rsbscs r4, r9, ip, asr sp + 5f0: 75636f44 strbvc r6, [r3, #-3908]! + 5f4: 746e656d strbtvc r6, [lr], #-1389 + 5f8: 73775c73 cmnvc r7, #29440 ; 0x7300 + 5fc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 600: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 604: 6165575c cmnvs r5, ip, asr r7 + 608: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 60c: 61745320 cmnvs r4, r0, lsr #6 + 610: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 614: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 618: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 61c: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 620: 75626544 strbvc r6, [r2, #-1348]! + 624: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 628: 61555c6a cmpvs r5, sl, ror #24 + 62c: 74557472 ldrbvc r7, [r5], #-1138 + 630: 6f2e6c69 svcvs 0x002e6c69 + 634: 43222022 teqmi r2, #34 ; 0x22 + 638: 6f445c3a svcvs 0x00445c3a + 63c: 656d7563 strbvs r7, [sp, #-1379]! + 640: 2073746e rsbscs r7, r3, lr, ror #8 + 644: 20646e61 rsbcs r6, r4, r1, ror #28 + 648: 74746553 ldrbtvc r6, [r4], #-1363 + 64c: 73676e69 cmnvc r7, #1680 ; 0x690 + 650: 6c616d5c stclvs 13, cr6, [r1], #-368 + 654: 61726976 cmnvs r2, r6, ror r9 + 658: 20794d5c rsbscs r4, r9, ip, asr sp + 65c: 75636f44 strbvc r6, [r3, #-3908]! + 660: 746e656d strbtvc r6, [lr], #-1389 + 664: 73775c73 cmnvc r7, #29440 ; 0x7300 + 668: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 66c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 670: 6165575c cmnvs r5, ip, asr r7 + 674: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 678: 61745320 cmnvs r4, r0, lsr #6 + 67c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 680: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 684: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 688: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 68c: 75626544 strbvc r6, [r2, #-1348]! + 690: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 694: 69575c6a ldmdbvs r7, {r1, r3, r5, r6, sl, fp, ip, lr}^ + 698: 656c6572 strbvs r6, [ip, #-1394]! + 69c: 694c7373 stmdbvs ip, {r0, r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 6a0: 6e4d6b6e fnmacdvs d22, d13, d30 + 6a4: 2e746d67 cdpcs 13, 7, cr6, cr4, cr7, {3} + 6a8: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 + 6ac: 445c3a43 ldrbmi r3, [ip], #-2627 + 6b0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 6b4: 73746e65 cmnvc r4, #1616 ; 0x650 + 6b8: 646e6120 strbtvs r6, [lr], #-288 + 6bc: 74655320 strbtvc r5, [r5], #-800 + 6c0: 676e6974 undefined + 6c4: 616d5c73 smcvs 54723 + 6c8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 6cc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 6d0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 6d4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 6d8: 775c7374 undefined + 6dc: 6f632d73 svcvs 0x00632d73 + 6e0: 6f72746e svcvs 0x0072746e + 6e4: 65575c6c ldrbvs r5, [r7, #-3180] + 6e8: 65687461 strbvs r7, [r8, #-1121]! + 6ec: 74532072 ldrbvc r2, [r3], #-114 + 6f0: 6f697461 svcvs 0x00697461 + 6f4: 6f43206e svcvs 0x0043206e + 6f8: 6f72746e svcvs 0x0072746e + 6fc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 700: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 704: 4f5c6775 svcmi 0x005c6775 + 708: 6d5c6a62 fldsvs s13, [ip, #-392] + 70c: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} + 710: 2220226f eorcs r2, r0, #-268435450 ; 0xf0000006 + 714: 445c3a43 ldrbmi r3, [ip], #-2627 + 718: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 71c: 73746e65 cmnvc r4, #1616 ; 0x650 + 720: 646e6120 strbtvs r6, [lr], #-288 + 724: 74655320 strbtvc r5, [r5], #-800 + 728: 676e6974 undefined + 72c: 616d5c73 smcvs 54723 + 730: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 734: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 738: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 73c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 740: 775c7374 undefined + 744: 6f632d73 svcvs 0x00632d73 + 748: 6f72746e svcvs 0x0072746e + 74c: 65575c6c ldrbvs r5, [r7, #-3180] + 750: 65687461 strbvs r7, [r8, #-1121]! + 754: 74532072 ldrbvc r2, [r3], #-114 + 758: 6f697461 svcvs 0x00697461 + 75c: 6f43206e svcvs 0x0043206e + 760: 6f72746e svcvs 0x0072746e + 764: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 768: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 76c: 4f5c6775 svcmi 0x005c6775 + 770: 775c6a62 ldrbvc r6, [ip, -r2, ror #20] + 774: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 778: 735f7265 cmpvc pc, #1342177286 ; 0x50000006 + 77c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 780: 635f6e6f cmpvs pc, #1776 ; 0x6f0 + 784: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 788: 656c6c6f strbvs r6, [ip, #-3183]! + 78c: 226f2e72 rsbcs r2, pc, #1824 ; 0x720 + 790: 3a432220 bcc 10c9018 + 794: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 798: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 79c: 61207374 teqvs r0, r4, ror r3 + 7a0: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 7a4: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 7a8: 5c73676e ldclpl 7, cr6, [r3], #-440 + 7ac: 766c616d strbtvc r6, [ip], -sp, ror #2 + 7b0: 5c617269 sfmpl f7, 2, [r1], #-420 + 7b4: 4420794d strtmi r7, [r0], #-2381 + 7b8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 7bc: 73746e65 cmnvc r4, #1616 ; 0x650 + 7c0: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 7c4: 746e6f63 strbtvc r6, [lr], #-3939 + 7c8: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 7cc: 74616557 strbtvc r6, [r1], #-1367 + 7d0: 20726568 rsbscs r6, r2, r8, ror #10 + 7d4: 74617453 strbtvc r7, [r1], #-1107 + 7d8: 206e6f69 rsbcs r6, lr, r9, ror #30 + 7dc: 746e6f43 strbtvc r6, [lr], #-3907 + 7e0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 7e4: 505c7265 subspl r7, ip, r5, ror #4 + 7e8: 4c5c4d4c mrrcmi 13, 4, r4, ip, cr12 + 7ec: 4c5c6269 lfmmi f6, 2, [ip], {105} + 7f0: 612e434c teqvs lr, ip, asr #6 + 7f4: 43222022 teqmi r2, #34 ; 0x22 + 7f8: 6f445c3a svcvs 0x00445c3a + 7fc: 656d7563 strbvs r7, [sp, #-1379]! + 800: 2073746e rsbscs r7, r3, lr, ror #8 + 804: 20646e61 rsbcs r6, r4, r1, ror #28 + 808: 74746553 ldrbtvc r6, [r4], #-1363 + 80c: 73676e69 cmnvc r7, #1680 ; 0x690 + 810: 6c616d5c stclvs 13, cr6, [r1], #-368 + 814: 61726976 cmnvs r2, r6, ror r9 + 818: 20794d5c rsbscs r4, r9, ip, asr sp + 81c: 75636f44 strbvc r6, [r3, #-3908]! + 820: 746e656d strbtvc r6, [lr], #-1389 + 824: 73775c73 cmnvc r7, #29440 ; 0x7300 + 828: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 82c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 830: 6165575c cmnvs r5, ip, asr r7 + 834: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 838: 61745320 cmnvs r4, r0, lsr #6 + 83c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 840: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 844: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 848: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 84c: 43414d53 movtmi r4, #7507 ; 0x1d53 + 850: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 854: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 858: 62694c5c rsbvs r4, r9, #23552 ; 0x5c00 + 85c: 31434d5c cmpcc r3, ip, asr sp + 860: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 864: 2022612e eorcs r6, r2, lr, lsr #2 + 868: 65722d2d ldrbvs r2, [r2, #-3373]! + 86c: 65726964 ldrbvs r6, [r2, #-2404]! + 870: 5f207463 svcpl 0x00207463 + 874: 6e697250 mcrvs 2, 3, r7, cr9, cr0, {2} + 878: 5f3d6674 svcpl 0x003d6674 + 87c: 6e697250 mcrvs 2, 3, r7, cr9, cr0, {2} + 880: 69546674 ldmdbvs r4, {r2, r4, r5, r6, r9, sl, sp, lr}^ + 884: 2d20796e stccs 9, cr7, [r0, #-440]! + 888: 6465722d strbtvs r7, [r5], #-557 + 88c: 63657269 cmnvs r5, #-1879048186 ; 0x90000006 + 890: 535f2074 cmppl pc, #116 ; 0x74 + 894: 666e6163 strbtvs r6, [lr], -r3, ror #2 + 898: 63535f3d cmpvs r3, #244 ; 0xf4 + 89c: 53666e61 cmnpl r6, #1552 ; 0x610 + 8a0: 6c6c616d stfvse f6, [ip], #-436 + 8a4: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 8a8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 8ac: 75636f44 strbvc r6, [r3, #-3908]! + 8b0: 746e656d strbtvc r6, [lr], #-1389 + 8b4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 8b8: 65532064 ldrbvs r2, [r3, #-100] + 8bc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 8c0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 8c4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 8c8: 4d5c6172 ldfmie f6, [ip, #-456] + 8cc: 6f442079 svcvs 0x00442079 + 8d0: 656d7563 strbvs r7, [sp, #-1379]! + 8d4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 8d8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 8dc: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 8e0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 8e4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 8e8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 8ec: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 8f0: 43206e6f teqmi r0, #1776 ; 0x6f0 + 8f4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 8f8: 656c6c6f strbvs r6, [ip, #-3183]! + 8fc: 65445c72 strbvs r5, [r4, #-3186] + 900: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 904: 5c657845 stclpl 8, cr7, [r5], #-276 + 908: 74616557 strbtvc r6, [r1], #-1367 + 90c: 20726568 rsbscs r6, r2, r8, ror #10 + 910: 74617453 strbtvc r7, [r1], #-1107 + 914: 206e6f69 rsbcs r6, lr, r9, ror #30 + 918: 746e6f43 strbtvc r6, [lr], #-3907 + 91c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 920: 6f2e7265 svcvs 0x002e7265 + 924: 20227475 eorcs r7, r2, r5, ror r4 + 928: 616d2d2d cmnvs sp, sp, lsr #26 + 92c: 43222070 teqmi r2, #112 ; 0x70 + 930: 6f445c3a svcvs 0x00445c3a + 934: 656d7563 strbvs r7, [sp, #-1379]! + 938: 2073746e rsbscs r7, r3, lr, ror #8 + 93c: 20646e61 rsbcs r6, r4, r1, ror #28 + 940: 74746553 ldrbtvc r6, [r4], #-1363 + 944: 73676e69 cmnvc r7, #1680 ; 0x690 + 948: 6c616d5c stclvs 13, cr6, [r1], #-368 + 94c: 61726976 cmnvs r2, r6, ror r9 + 950: 20794d5c rsbscs r4, r9, ip, asr sp + 954: 75636f44 strbvc r6, [r3, #-3908]! + 958: 746e656d strbtvc r6, [lr], #-1389 + 95c: 73775c73 cmnvc r7, #29440 ; 0x7300 + 960: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 964: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 968: 6165575c cmnvs r5, ip, asr r7 + 96c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 970: 61745320 cmnvs r4, r0, lsr #6 + 974: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 978: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 97c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 980: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 984: 75626544 strbvc r6, [r2, #-1348]! + 988: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ + 98c: 575c7473 undefined + 990: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 994: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 998: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 99c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 9a0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 9a4: 656c6c6f strbvs r6, [ip, #-3183]! + 9a8: 616d2e72 smcvs 53986 + 9ac: 2d202270 sfmcs f2, 4, [r0, #-448]! + 9b0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 9b4: 20676966 rsbcs r6, r7, r6, ror #18 + 9b8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 9bc: 75636f44 strbvc r6, [r3, #-3908]! + 9c0: 746e656d strbtvc r6, [lr], #-1389 + 9c4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 9c8: 65532064 ldrbvs r2, [r3, #-100] + 9cc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 9d0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 9d4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 9d8: 4d5c6172 ldfmie f6, [ip, #-456] + 9dc: 6f442079 svcvs 0x00442079 + 9e0: 656d7563 strbvs r7, [sp, #-1379]! + 9e4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 9e8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 9ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 9f0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 9f4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 9f8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 9fc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + a00: 43206e6f teqmi r0, #1776 ; 0x6f0 + a04: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + a08: 656c6c6f strbvs r6, [ip, #-3183]! + a0c: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 + a10: 63495c4d movtvs r5, #40013 ; 0x9c4d + a14: 434d5c66 movtmi r5, #56422 ; 0xdc66 + a18: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + a1c: 41522d78 cmpmi r2, r8, ror sp + a20: 4f522d4d svcmi 0x00522d4d + a24: 63692e4d cmnvs r9, #1232 ; 0x4d0 + a28: 2d202266 sfmcs f2, 4, [r0, #-408]! + a2c: 746e652d strbtvc r6, [lr], #-1325 + a30: 5f207972 svcpl 0x00207972 + a34: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + a38: 65765f74 ldrbvs r5, [r6, #-3956]! + a3c: 726f7463 rsbvc r7, pc, #1660944384 ; 0x63000000 + a40: 4900005f stmdbmi r0, {r0, r1, r2, r3, r4, r6} + a44: 7475706e ldrbtvc r7, [r5], #-110 + a48: 6d6f6320 stclvs 3, cr6, [pc, #-128]! + a4c: 746e656d strbtvc r6, [lr], #-1389 + a50: 00003a73 andeq r3, r0, r3, ror sl + a54: 445c3a43 ldrbmi r3, [ip], #-2627 + a58: 6d75636f ldclvs 3, cr6, [r5, #-444]! + a5c: 73746e65 cmnvc r4, #1616 ; 0x650 + a60: 646e6120 strbtvs r6, [lr], #-288 + a64: 74655320 strbtvc r5, [r5], #-800 + a68: 676e6974 undefined + a6c: 616d5c73 smcvs 54723 + a70: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + a74: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + a78: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + a7c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + a80: 775c7374 undefined + a84: 6f632d73 svcvs 0x00632d73 + a88: 6f72746e svcvs 0x0072746e + a8c: 65575c6c ldrbvs r5, [r7, #-3180] + a90: 65687461 strbvs r7, [r8, #-1121]! + a94: 74532072 ldrbvc r2, [r3], #-114 + a98: 6f697461 svcvs 0x00697461 + a9c: 6f43206e svcvs 0x0043206e + aa0: 6f72746e svcvs 0x0072746e + aa4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + aa8: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + aac: 4f5c6775 svcmi 0x005c6775 + ab0: 445c6a62 ldrbmi r6, [ip], #-2658 + ab4: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + ab8: 003a6f2e eorseq r6, sl, lr, lsr #30 + abc: 52414900 subpl r4, r1, #0 ; 0x0 + ac0: 534e4120 movtpl r4, #57632 ; 0xe120 + ac4: 2f432049 svccs 0x00432049 + ac8: 202b2b43 eorcs r2, fp, r3, asr #22 + acc: 706d6f43 rsbvc r6, sp, r3, asr #30 + ad0: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + ad4: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + ad8: 322e3033 eorcc r3, lr, #51 ; 0x33 + adc: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + ae0: 572f3539 undefined + ae4: 4b203233 blmi 80d3b8 + ae8: 534b4349 movtpl r4, #45897 ; 0xb349 + aec: 54524154 ldrbpl r4, [r2], #-340 + af0: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + af4: 4d524120 ldfmie f4, [r2, #-128] + af8: 3a432200 bcc 10c9300 + afc: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + b00: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + b04: 61207374 teqvs r0, r4, ror r3 + b08: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + b0c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + b10: 5c73676e ldclpl 7, cr6, [r3], #-440 + b14: 766c616d strbtvc r6, [ip], -sp, ror #2 + b18: 5c617269 sfmpl f7, 2, [r1], #-420 + b1c: 4420794d strtmi r7, [r0], #-2381 + b20: 6d75636f ldclvs 3, cr6, [r5, #-444]! + b24: 73746e65 cmnvc r4, #1616 ; 0x650 + b28: 2d73775c ldclcs 7, cr7, [r3, #-368]! + b2c: 746e6f63 strbtvc r6, [lr], #-3939 + b30: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + b34: 74616557 strbtvc r6, [r1], #-1367 + b38: 20726568 rsbscs r6, r2, r8, ror #10 + b3c: 74617453 strbtvc r7, [r1], #-1107 + b40: 206e6f69 rsbcs r6, lr, r9, ror #30 + b44: 746e6f43 strbtvc r6, [lr], #-3907 + b48: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + b4c: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + b50: 5c43414d stfple f4, [r3], {77} + b54: 76697244 strbtvc r7, [r9], -r4, asr #4 + b58: 5c737265 lfmpl f7, 2, [r3], #-404 + b5c: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + b60: 445c6563 ldrbmi r6, [ip], #-1379 + b64: 79616c65 stmdbvc r1!, {r0, r2, r5, r6, sl, fp, sp, lr}^ + b68: 2022632e eorcs r6, r2, lr, lsr #6 + b6c: 4620442d strtmi r4, [r0], -sp, lsr #8 + b70: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + b74: 442d205a strtmi r2, [sp], #-90 + b78: 43455320 movtmi r5, #21280 ; 0x5320 + b7c: 54495255 strbpl r5, [r9], #-597 + b80: 4e455f59 mcrmi 15, 2, r5, cr5, cr9, {2} + b84: 454c4241 strbmi r4, [ip, #-577] + b88: 6c2d2044 stcvs 0, cr2, [sp], #-272 + b8c: 43222043 teqmi r2, #67 ; 0x43 + b90: 6f445c3a svcvs 0x00445c3a + b94: 656d7563 strbvs r7, [sp, #-1379]! + b98: 2073746e rsbscs r7, r3, lr, ror #8 + b9c: 20646e61 rsbcs r6, r4, r1, ror #28 + ba0: 74746553 ldrbtvc r6, [r4], #-1363 + ba4: 73676e69 cmnvc r7, #1680 ; 0x690 + ba8: 6c616d5c stclvs 13, cr6, [r1], #-368 + bac: 61726976 cmnvs r2, r6, ror r9 + bb0: 20794d5c rsbscs r4, r9, ip, asr sp + bb4: 75636f44 strbvc r6, [r3, #-3908]! + bb8: 746e656d strbtvc r6, [lr], #-1389 + bbc: 73775c73 cmnvc r7, #29440 ; 0x7300 + bc0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + bc4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + bc8: 6165575c cmnvs r5, ip, asr r7 + bcc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + bd0: 61745320 cmnvs r4, r0, lsr #6 + bd4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + bd8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + bdc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + be0: 5c72656c cfldr64pl mvdx6, [r2], #-432 + be4: 75626544 strbvc r6, [r2, #-1348]! + be8: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ + bec: 225c7473 subscs r7, ip, #1929379840 ; 0x73000000 + bf0: 642d2d20 strtvs r2, [sp], #-3360 + bf4: 5f676169 svcpl 0x00676169 + bf8: 70707573 rsbsvc r7, r0, r3, ror r5 + bfc: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + c00: 39655020 stmdbcc r5!, {r5, ip, lr}^ + c04: 502c3135 eorpl r3, ip, r5, lsr r1 + c08: 31313165 teqcc r1, r5, ror #2 + c0c: 3965502c stmdbcc r5!, {r2, r3, r5, ip, lr}^ + c10: 2d203034 stccs 0, cr3, [r0, #-208]! + c14: 4322206f teqmi r2, #111 ; 0x6f + c18: 6f445c3a svcvs 0x00445c3a + c1c: 656d7563 strbvs r7, [sp, #-1379]! + c20: 2073746e rsbscs r7, r3, lr, ror #8 + c24: 20646e61 rsbcs r6, r4, r1, ror #28 + c28: 74746553 ldrbtvc r6, [r4], #-1363 + c2c: 73676e69 cmnvc r7, #1680 ; 0x690 + c30: 6c616d5c stclvs 13, cr6, [r1], #-368 + c34: 61726976 cmnvs r2, r6, ror r9 + c38: 20794d5c rsbscs r4, r9, ip, asr sp + c3c: 75636f44 strbvc r6, [r3, #-3908]! + c40: 746e656d strbtvc r6, [lr], #-1389 + c44: 73775c73 cmnvc r7, #29440 ; 0x7300 + c48: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + c4c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + c50: 6165575c cmnvs r5, ip, asr r7 + c54: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + c58: 61745320 cmnvs r4, r0, lsr #6 + c5c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + c60: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + c64: 6c6f7274 sfmvs f7, 2, [pc], #-464 + c68: 5c72656c cfldr64pl mvdx6, [r2], #-432 + c6c: 75626544 strbvc r6, [r2, #-1348]! + c70: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + c74: 20225c6a eorcs r5, r2, sl, ror #24 + c78: 65642d2d strbvs r2, [r4, #-3373]! + c7c: 20677562 rsbcs r7, r7, r2, ror #10 + c80: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} + c84: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} + c88: 74696c3d strbtvc r6, [r9], #-3133 + c8c: 20656c74 rsbcs r6, r5, r4, ror ip + c90: 70632d2d rsbvc r2, r3, sp, lsr #26 + c94: 52413d75 subpl r3, r1, #7488 ; 0x1d40 + c98: 4454374d ldrbmi r3, [r4], #-1869 + c9c: 532d494d teqpl sp, #1261568 ; 0x134000 + ca0: 20652d20 rsbcs r2, r5, r0, lsr #26 + ca4: 70662d2d rsbvc r2, r6, sp, lsr #26 + ca8: 6f4e3d75 svcvs 0x004e3d75 + cac: 2d20656e cfstr32cs mvfx6, [r0, #-440]! + cb0: 696c642d stmdbvs ip!, {r0, r2, r3, r5, sl, sp, lr}^ + cb4: 6f635f62 svcvs 0x00635f62 + cb8: 6769666e strbvs r6, [r9, -lr, ror #12]! + cbc: 3a432220 bcc 10c9544 + cc0: 6f72505c svcvs 0x0072505c + cc4: 6d617267 sfmvs f7, 2, [r1, #-412]! + cc8: 6c694620 stclvs 6, cr4, [r9], #-128 + ccc: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + cd0: 53205241 teqpl r0, #268435460 ; 0x10000004 + cd4: 65747379 ldrbvs r7, [r4, #-889]! + cd8: 455c736d ldrbmi r7, [ip, #-877] + cdc: 6465626d strbtvs r6, [r5], #-621 + ce0: 20646564 rsbcs r6, r4, r4, ror #10 + ce4: 6b726f57 blvs 1c9ca48 + ce8: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + cec: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + cf0: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + cf4: 74736b63 ldrbtvc r6, [r3], #-2915 + cf8: 5c747261 lfmpl f7, 2, [r4], #-388 + cfc: 5c6d7261 sfmpl f7, 2, [sp], #-388 + d00: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + d04: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + d08: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} + d0c: 5f676966 svcpl 0x00676966 + d10: 6d726f4e ldclvs 15, cr6, [r2, #-312]! + d14: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} + d18: 492d2022 pushmi {r1, r5, sp} + d1c: 3a432220 bcc 10c95a4 + d20: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + d24: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + d28: 61207374 teqvs r0, r4, ror r3 + d2c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + d30: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + d34: 5c73676e ldclpl 7, cr6, [r3], #-440 + d38: 766c616d strbtvc r6, [ip], -sp, ror #2 + d3c: 5c617269 sfmpl f7, 2, [r1], #-420 + d40: 4420794d strtmi r7, [r0], #-2381 + d44: 6d75636f ldclvs 3, cr6, [r5, #-444]! + d48: 73746e65 cmnvc r4, #1616 ; 0x650 + d4c: 2d73775c ldclcs 7, cr7, [r3, #-368]! + d50: 746e6f63 strbtvc r6, [lr], #-3939 + d54: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + d58: 74616557 strbtvc r6, [r1], #-1367 + d5c: 20726568 rsbscs r6, r2, r8, ror #10 + d60: 74617453 strbtvc r7, [r1], #-1107 + d64: 206e6f69 rsbcs r6, lr, r9, ror #30 + d68: 746e6f43 strbtvc r6, [lr], #-3907 + d6c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + d70: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + d74: 5c43414d stfple f4, [r3], {77} + d78: 76697244 strbtvc r7, [r9], -r4, asr #4 + d7c: 5c737265 lfmpl f7, 2, [r3], #-404 + d80: 65746e49 ldrbvs r6, [r4, #-3657]! + d84: 63616672 cmnvs r1, #119537664 ; 0x7200000 + d88: 20225c65 eorcs r5, r2, r5, ror #24 + d8c: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + d90: 445c3a43 ldrbmi r3, [ip], #-2627 + d94: 6d75636f ldclvs 3, cr6, [r5, #-444]! + d98: 73746e65 cmnvc r4, #1616 ; 0x650 + d9c: 646e6120 strbtvs r6, [lr], #-288 + da0: 74655320 strbtvc r5, [r5], #-800 + da4: 676e6974 undefined + da8: 616d5c73 smcvs 54723 + dac: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + db0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + db4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + db8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + dbc: 775c7374 undefined + dc0: 6f632d73 svcvs 0x00632d73 + dc4: 6f72746e svcvs 0x0072746e + dc8: 65575c6c ldrbvs r5, [r7, #-3180] + dcc: 65687461 strbvs r7, [r8, #-1121]! + dd0: 74532072 ldrbvc r2, [r3], #-114 + dd4: 6f697461 svcvs 0x00697461 + dd8: 6f43206e svcvs 0x0043206e + ddc: 6f72746e svcvs 0x0072746e + de0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + de4: 4d4c505c stclmi 0, cr5, [ip, #-368] + de8: 746e495c strbtvc r4, [lr], #-2396 + dec: 61667265 cmnvs r6, r5, ror #4 + df0: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + df4: 20492d20 subcs r2, r9, r0, lsr #26 + df8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + dfc: 676f7250 undefined + e00: 206d6172 rsbcs r6, sp, r2, ror r1 + e04: 656c6946 strbvs r6, [ip, #-2374]! + e08: 41495c73 cmpmi r9, r3, ror ip + e0c: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + e10: 6d657473 cfstrdvs mvd7, [r5, #-460]! + e14: 6d455c73 stclvs 12, cr5, [r5, #-460] + e18: 64646562 strbtvs r6, [r4], #-1378 + e1c: 57206465 strpl r6, [r0, -r5, ror #8]! + e20: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + e24: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + e28: 342e3520 strtcc r3, [lr], #-1312 + e2c: 63694b20 cmnvs r9, #32768 ; 0x8000 + e30: 6174736b cmnvs r4, fp, ror #6 + e34: 615c7472 cmpvs ip, r2, ror r4 + e38: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + e3c: 225c434e subscs r4, ip, #939524097 ; 0x38000001 + e40: 692d2d20 pushvs {r5, r8, sl, fp, sp} + e44: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + e48: 6b726f77 blvs 1c9cc2c + e4c: 632d2d20 teqvs sp, #2048 ; 0x800 + e50: 6d5f7570 cfldr64vs mvdx7, [pc, #-448] + e54: 2065646f rsbcs r6, r5, pc, ror #8 + e58: 6d756874 ldclvs 8, cr6, [r5, #-464]! + e5c: 4f2d2062 svcmi 0x002d2062 + e60: 43000068 movwmi r0, #104 ; 0x68 + e64: 6f445c3a svcvs 0x00445c3a + e68: 656d7563 strbvs r7, [sp, #-1379]! + e6c: 2073746e rsbscs r7, r3, lr, ror #8 + e70: 20646e61 rsbcs r6, r4, r1, ror #28 + e74: 74746553 ldrbtvc r6, [r4], #-1363 + e78: 73676e69 cmnvc r7, #1680 ; 0x690 + e7c: 6c616d5c stclvs 13, cr6, [r1], #-368 + e80: 61726976 cmnvs r2, r6, ror r9 + e84: 20794d5c rsbscs r4, r9, ip, asr sp + e88: 75636f44 strbvc r6, [r3, #-3908]! + e8c: 746e656d strbtvc r6, [lr], #-1389 + e90: 73775c73 cmnvc r7, #29440 ; 0x7300 + e94: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + e98: 6c6f7274 sfmvs f7, 2, [pc], #-464 + e9c: 6165575c cmnvs r5, ip, asr r7 + ea0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + ea4: 61745320 cmnvs r4, r0, lsr #6 + ea8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + eac: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + eb0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + eb4: 5c72656c cfldr64pl mvdx6, [r2], #-432 + eb8: 75626544 strbvc r6, [r2, #-1348]! + ebc: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + ec0: 69445c6a stmdbvs r4, {r1, r3, r5, r6, sl, fp, ip, lr}^ + ec4: 616c7073 smcvs 50947 + ec8: 3a6f2e79 bcc 1bcc8b4 + ecc: 41490000 cmpmi r9, r0 + ed0: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + ed4: 43204953 teqmi r0, #1359872 ; 0x14c000 + ed8: 2b2b432f blcs ad1b9c + edc: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + ee0: 656c6970 strbvs r6, [ip, #-2416]! + ee4: 35562072 ldrbcc r2, [r6, #-114] + ee8: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + eec: 31332e32 teqcc r3, r2, lsr lr + ef0: 2f353932 svccs 0x00353932 + ef4: 20323357 eorscs r3, r2, r7, asr r3 + ef8: 4b43494b blmi 10d342c + efc: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + f00: 6f662054 svcvs 0x00662054 + f04: 52412072 subpl r2, r1, #114 ; 0x72 + f08: 4322004d teqmi r2, #77 ; 0x4d + f0c: 6f445c3a svcvs 0x00445c3a + f10: 656d7563 strbvs r7, [sp, #-1379]! + f14: 2073746e rsbscs r7, r3, lr, ror #8 + f18: 20646e61 rsbcs r6, r4, r1, ror #28 + f1c: 74746553 ldrbtvc r6, [r4], #-1363 + f20: 73676e69 cmnvc r7, #1680 ; 0x690 + f24: 6c616d5c stclvs 13, cr6, [r1], #-368 + f28: 61726976 cmnvs r2, r6, ror r9 + f2c: 20794d5c rsbscs r4, r9, ip, asr sp + f30: 75636f44 strbvc r6, [r3, #-3908]! + f34: 746e656d strbtvc r6, [lr], #-1389 + f38: 73775c73 cmnvc r7, #29440 ; 0x7300 + f3c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + f40: 6c6f7274 sfmvs f7, 2, [pc], #-464 + f44: 6165575c cmnvs r5, ip, asr r7 + f48: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + f4c: 61745320 cmnvs r4, r0, lsr #6 + f50: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + f54: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + f58: 6c6f7274 sfmvs f7, 2, [pc], #-464 + f5c: 5c72656c cfldr64pl mvdx6, [r2], #-432 + f60: 6c707041 ldclvs 0, cr7, [r0], #-260 + f64: 74616369 strbtvc r6, [r1], #-873 + f68: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + f6c: 6c697455 cfstrdvs mvd7, [r9], #-340 + f70: 65697469 strbvs r7, [r9, #-1129]! + f74: 69445c73 stmdbvs r4, {r0, r1, r4, r5, r6, sl, fp, ip, lr}^ + f78: 616c7073 smcvs 50947 + f7c: 22632e79 rsbcs r2, r3, #1936 ; 0x790 + f80: 20442d20 subcs r2, r4, r0, lsr #26 + f84: 4d343246 lfmmi f3, 4, [r4, #-280]! + f88: 2d205a48 fstmdbscs r0!, {s10-s81} + f8c: 45532044 ldrbmi r2, [r3, #-68] + f90: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ + f94: 455f5954 ldrbmi r5, [pc, #-2388] ; 648 <__FIQ_stack_size+0x248> + f98: 4c42414e stfmie f4, [r2], {78} + f9c: 2d204445 cfstrscs mvf4, [r0, #-276]! + fa0: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 + fa4: 445c3a43 ldrbmi r3, [ip], #-2627 + fa8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + fac: 73746e65 cmnvc r4, #1616 ; 0x650 + fb0: 646e6120 strbtvs r6, [lr], #-288 + fb4: 74655320 strbtvc r5, [r5], #-800 + fb8: 676e6974 undefined + fbc: 616d5c73 smcvs 54723 + fc0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + fc4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + fc8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + fcc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + fd0: 775c7374 undefined + fd4: 6f632d73 svcvs 0x00632d73 + fd8: 6f72746e svcvs 0x0072746e + fdc: 65575c6c ldrbvs r5, [r7, #-3180] + fe0: 65687461 strbvs r7, [r8, #-1121]! + fe4: 74532072 ldrbvc r2, [r3], #-114 + fe8: 6f697461 svcvs 0x00697461 + fec: 6f43206e svcvs 0x0043206e + ff0: 6f72746e svcvs 0x0072746e + ff4: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + ff8: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + ffc: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 + 1000: 5c747369 ldclpl 3, cr7, [r4], #-420 + 1004: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 1008: 67616964 strbvs r6, [r1, -r4, ror #18]! + 100c: 7075735f rsbsvc r7, r5, pc, asr r3 + 1010: 73657270 cmnvc r5, #7 ; 0x7 + 1014: 65502073 ldrbvs r2, [r0, #-115] + 1018: 2c313539 cfldr32cs mvfx3, [r1], #-228 + 101c: 31316550 teqcc r1, r0, asr r5 + 1020: 65502c31 ldrbvs r2, [r0, #-3121] + 1024: 20303439 eorscs r3, r0, r9, lsr r4 + 1028: 22206f2d eorcs r6, r0, #180 ; 0xb4 + 102c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1030: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1034: 73746e65 cmnvc r4, #1616 ; 0x650 + 1038: 646e6120 strbtvs r6, [lr], #-288 + 103c: 74655320 strbtvc r5, [r5], #-800 + 1040: 676e6974 undefined + 1044: 616d5c73 smcvs 54723 + 1048: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 104c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1050: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1054: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1058: 775c7374 undefined + 105c: 6f632d73 svcvs 0x00632d73 + 1060: 6f72746e svcvs 0x0072746e + 1064: 65575c6c ldrbvs r5, [r7, #-3180] + 1068: 65687461 strbvs r7, [r8, #-1121]! + 106c: 74532072 ldrbvc r2, [r3], #-114 + 1070: 6f697461 svcvs 0x00697461 + 1074: 6f43206e svcvs 0x0043206e + 1078: 6f72746e svcvs 0x0072746e + 107c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1080: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 1084: 4f5c6775 svcmi 0x005c6775 + 1088: 225c6a62 subscs r6, ip, #401408 ; 0x62000 + 108c: 642d2d20 strtvs r2, [sp], #-3360 + 1090: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 1094: 652d2d20 strvs r2, [sp, #-3360]! + 1098: 6169646e cmnvs r9, lr, ror #8 + 109c: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ + 10a0: 656c7474 strbvs r7, [ip, #-1140]! + 10a4: 632d2d20 teqvs sp, #2048 ; 0x800 + 10a8: 413d7570 teqmi sp, r0, ror r5 + 10ac: 54374d52 ldrtpl r4, [r7], #-3410 + 10b0: 2d494d44 stclcs 13, cr4, [r9, #-272] + 10b4: 652d2053 strvs r2, [sp, #-83]! + 10b8: 662d2d20 strtvs r2, [sp], -r0, lsr #26 + 10bc: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} + 10c0: 20656e6f rsbcs r6, r5, pc, ror #28 + 10c4: 6c642d2d stclvs 13, cr2, [r4], #-180 + 10c8: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 + 10cc: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 10d0: 43222067 teqmi r2, #103 ; 0x67 + 10d4: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 10d8: 6172676f cmnvs r2, pc, ror #14 + 10dc: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 10e0: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 10e4: 20524149 subscs r4, r2, r9, asr #2 + 10e8: 74737953 ldrbtvc r7, [r3], #-2387 + 10ec: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 10f0: 65626d45 strbvs r6, [r2, #-3397]! + 10f4: 64656464 strbtvs r6, [r5], #-1124 + 10f8: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 10fc: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 1100: 35206863 strcc r6, [r0, #-2147]! + 1104: 4b20342e blmi 80e1c4 + 1108: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 110c: 74726174 ldrbtvc r6, [r2], #-372 + 1110: 6d72615c ldfvse f6, [r2, #-368]! + 1114: 434e495c movtmi r4, #59740 ; 0xe95c + 1118: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ + 111c: 6f435f62 svcvs 0x00435f62 + 1120: 6769666e strbvs r6, [r9, -lr, ror #12]! + 1124: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 + 1128: 2e6c616d powcsez f6, f4, #5.0 + 112c: 2d202268 sfmcs f2, 4, [r0, #-416]! + 1130: 43222049 teqmi r2, #73 ; 0x49 + 1134: 6f445c3a svcvs 0x00445c3a + 1138: 656d7563 strbvs r7, [sp, #-1379]! + 113c: 2073746e rsbscs r7, r3, lr, ror #8 + 1140: 20646e61 rsbcs r6, r4, r1, ror #28 + 1144: 74746553 ldrbtvc r6, [r4], #-1363 + 1148: 73676e69 cmnvc r7, #1680 ; 0x690 + 114c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1150: 61726976 cmnvs r2, r6, ror r9 + 1154: 20794d5c rsbscs r4, r9, ip, asr sp + 1158: 75636f44 strbvc r6, [r3, #-3908]! + 115c: 746e656d strbtvc r6, [lr], #-1389 + 1160: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1164: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1168: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 116c: 6165575c cmnvs r5, ip, asr r7 + 1170: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1174: 61745320 cmnvs r4, r0, lsr #6 + 1178: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 117c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1180: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1184: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1188: 43414d53 movtmi r4, #7507 ; 0x1d53 + 118c: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 1190: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 1194: 746e495c strbtvc r4, [lr], #-2396 + 1198: 61667265 cmnvs r6, r5, ror #4 + 119c: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 11a0: 20492d20 subcs r2, r9, r0, lsr #26 + 11a4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 11a8: 75636f44 strbvc r6, [r3, #-3908]! + 11ac: 746e656d strbtvc r6, [lr], #-1389 + 11b0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 11b4: 65532064 ldrbvs r2, [r3, #-100] + 11b8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 11bc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 11c0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 11c4: 4d5c6172 ldfmie f6, [ip, #-456] + 11c8: 6f442079 svcvs 0x00442079 + 11cc: 656d7563 strbvs r7, [sp, #-1379]! + 11d0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 11d4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 11d8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 11dc: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 11e0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 11e4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 11e8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 11ec: 43206e6f teqmi r0, #1776 ; 0x6f0 + 11f0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 11f4: 656c6c6f strbvs r6, [ip, #-3183]! + 11f8: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 + 11fc: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} + 1200: 66726574 undefined + 1204: 5c656361 stclpl 3, cr6, [r5], #-388 + 1208: 492d2022 pushmi {r1, r5, sp} + 120c: 3a432220 bcc 10c9a94 + 1210: 6f72505c svcvs 0x0072505c + 1214: 6d617267 sfmvs f7, 2, [r1, #-412]! + 1218: 6c694620 stclvs 6, cr4, [r9], #-128 + 121c: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 1220: 53205241 teqpl r0, #268435460 ; 0x10000004 + 1224: 65747379 ldrbvs r7, [r4, #-889]! + 1228: 455c736d ldrbmi r7, [ip, #-877] + 122c: 6465626d strbtvs r6, [r5], #-621 + 1230: 20646564 rsbcs r6, r4, r4, ror #10 + 1234: 6b726f57 blvs 1c9cf98 + 1238: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 123c: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 1240: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 1244: 74736b63 ldrbtvc r6, [r3], #-2915 + 1248: 5c747261 lfmpl f7, 2, [r4], #-388 + 124c: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 1250: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 1254: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 1258: 65746e69 ldrbvs r6, [r4, #-3689]! + 125c: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 1260: 2d2d206b stccs 0, cr2, [sp, #-428]! + 1264: 5f757063 svcpl 0x00757063 + 1268: 65646f6d strbvs r6, [r4, #-3949]! + 126c: 75687420 strbvc r7, [r8, #-1056]! + 1270: 2d20626d sfmcs f6, 4, [r0, #-436]! + 1274: 0000684f andeq r6, r0, pc, asr #16 + 1278: 445c3a43 ldrbmi r3, [ip], #-2627 + 127c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1280: 73746e65 cmnvc r4, #1616 ; 0x650 + 1284: 646e6120 strbtvs r6, [lr], #-288 + 1288: 74655320 strbtvc r5, [r5], #-800 + 128c: 676e6974 undefined + 1290: 616d5c73 smcvs 54723 + 1294: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1298: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 129c: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 12a0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 12a4: 775c7374 undefined + 12a8: 6f632d73 svcvs 0x00632d73 + 12ac: 6f72746e svcvs 0x0072746e + 12b0: 65575c6c ldrbvs r5, [r7, #-3180] + 12b4: 65687461 strbvs r7, [r8, #-1121]! + 12b8: 74532072 ldrbvc r2, [r3], #-114 + 12bc: 6f697461 svcvs 0x00697461 + 12c0: 6f43206e svcvs 0x0043206e + 12c4: 6f72746e svcvs 0x0072746e + 12c8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 12cc: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 12d0: 4f5c6775 svcmi 0x005c6775 + 12d4: 485c6a62 ldmdami ip, {r1, r5, r6, r9, fp, sp, lr}^ + 12d8: 7672444c ldrbtvc r4, [r2], -ip, asr #8 + 12dc: 003a6f2e eorseq r6, sl, lr, lsr #30 + 12e0: 52414900 subpl r4, r1, #0 ; 0x0 + 12e4: 534e4120 movtpl r4, #57632 ; 0xe120 + 12e8: 2f432049 svccs 0x00432049 + 12ec: 202b2b43 eorcs r2, fp, r3, asr #22 + 12f0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 12f4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 12f8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 12fc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1300: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1304: 572f3539 undefined + 1308: 4b203233 blmi 80dbdc + 130c: 534b4349 movtpl r4, #45897 ; 0xb349 + 1310: 54524154 ldrbpl r4, [r2], #-340 + 1314: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1318: 4d524120 ldfmie f4, [r2, #-128] + 131c: 3a432200 bcc 10c9b24 + 1320: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 1324: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1328: 61207374 teqvs r0, r4, ror r3 + 132c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 1330: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 1334: 5c73676e ldclpl 7, cr6, [r3], #-440 + 1338: 766c616d strbtvc r6, [ip], -sp, ror #2 + 133c: 5c617269 sfmpl f7, 2, [r1], #-420 + 1340: 4420794d strtmi r7, [r0], #-2381 + 1344: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1348: 73746e65 cmnvc r4, #1616 ; 0x650 + 134c: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 1350: 746e6f63 strbtvc r6, [lr], #-3939 + 1354: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 1358: 74616557 strbtvc r6, [r1], #-1367 + 135c: 20726568 rsbscs r6, r2, r8, ror #10 + 1360: 74617453 strbtvc r7, [r1], #-1107 + 1364: 206e6f69 rsbcs r6, lr, r9, ror #30 + 1368: 746e6f43 strbtvc r6, [lr], #-3907 + 136c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 1370: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 1374: 5c43414d stfple f4, [r3], {77} + 1378: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 137c: 485c6563 ldmdami ip, {r0, r1, r5, r6, r8, sl, sp, lr}^ + 1380: 7672444c ldrbtvc r4, [r2], -ip, asr #8 + 1384: 2022632e eorcs r6, r2, lr, lsr #6 + 1388: 4620442d strtmi r4, [r0], -sp, lsr #8 + 138c: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + 1390: 442d205a strtmi r2, [sp], #-90 + 1394: 43455320 movtmi r5, #21280 ; 0x5320 + 1398: 54495255 strbpl r5, [r9], #-597 + 139c: 4e455f59 mcrmi 15, 2, r5, cr5, cr9, {2} + 13a0: 454c4241 strbmi r4, [ip, #-577] + 13a4: 6c2d2044 stcvs 0, cr2, [sp], #-272 + 13a8: 43222043 teqmi r2, #67 ; 0x43 + 13ac: 6f445c3a svcvs 0x00445c3a + 13b0: 656d7563 strbvs r7, [sp, #-1379]! + 13b4: 2073746e rsbscs r7, r3, lr, ror #8 + 13b8: 20646e61 rsbcs r6, r4, r1, ror #28 + 13bc: 74746553 ldrbtvc r6, [r4], #-1363 + 13c0: 73676e69 cmnvc r7, #1680 ; 0x690 + 13c4: 6c616d5c stclvs 13, cr6, [r1], #-368 + 13c8: 61726976 cmnvs r2, r6, ror r9 + 13cc: 20794d5c rsbscs r4, r9, ip, asr sp + 13d0: 75636f44 strbvc r6, [r3, #-3908]! + 13d4: 746e656d strbtvc r6, [lr], #-1389 + 13d8: 73775c73 cmnvc r7, #29440 ; 0x7300 + 13dc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 13e0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 13e4: 6165575c cmnvs r5, ip, asr r7 + 13e8: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 13ec: 61745320 cmnvs r4, r0, lsr #6 + 13f0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 13f4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 13f8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 13fc: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1400: 75626544 strbvc r6, [r2, #-1348]! + 1404: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ + 1408: 225c7473 subscs r7, ip, #1929379840 ; 0x73000000 + 140c: 642d2d20 strtvs r2, [sp], #-3360 + 1410: 5f676169 svcpl 0x00676169 + 1414: 70707573 rsbsvc r7, r0, r3, ror r5 + 1418: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 141c: 39655020 stmdbcc r5!, {r5, ip, lr}^ + 1420: 502c3135 eorpl r3, ip, r5, lsr r1 + 1424: 31313165 teqcc r1, r5, ror #2 + 1428: 3965502c stmdbcc r5!, {r2, r3, r5, ip, lr}^ + 142c: 2d203034 stccs 0, cr3, [r0, #-208]! + 1430: 4322206f teqmi r2, #111 ; 0x6f + 1434: 6f445c3a svcvs 0x00445c3a + 1438: 656d7563 strbvs r7, [sp, #-1379]! + 143c: 2073746e rsbscs r7, r3, lr, ror #8 + 1440: 20646e61 rsbcs r6, r4, r1, ror #28 + 1444: 74746553 ldrbtvc r6, [r4], #-1363 + 1448: 73676e69 cmnvc r7, #1680 ; 0x690 + 144c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1450: 61726976 cmnvs r2, r6, ror r9 + 1454: 20794d5c rsbscs r4, r9, ip, asr sp + 1458: 75636f44 strbvc r6, [r3, #-3908]! + 145c: 746e656d strbtvc r6, [lr], #-1389 + 1460: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1464: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1468: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 146c: 6165575c cmnvs r5, ip, asr r7 + 1470: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1474: 61745320 cmnvs r4, r0, lsr #6 + 1478: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 147c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1480: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1484: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1488: 75626544 strbvc r6, [r2, #-1348]! + 148c: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 1490: 20225c6a eorcs r5, r2, sl, ror #24 + 1494: 65642d2d strbvs r2, [r4, #-3373]! + 1498: 20677562 rsbcs r7, r7, r2, ror #10 + 149c: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} + 14a0: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} + 14a4: 74696c3d strbtvc r6, [r9], #-3133 + 14a8: 20656c74 rsbcs r6, r5, r4, ror ip + 14ac: 70632d2d rsbvc r2, r3, sp, lsr #26 + 14b0: 52413d75 subpl r3, r1, #7488 ; 0x1d40 + 14b4: 4454374d ldrbmi r3, [r4], #-1869 + 14b8: 532d494d teqpl sp, #1261568 ; 0x134000 + 14bc: 20652d20 rsbcs r2, r5, r0, lsr #26 + 14c0: 70662d2d rsbvc r2, r6, sp, lsr #26 + 14c4: 6f4e3d75 svcvs 0x004e3d75 + 14c8: 2d20656e cfstr32cs mvfx6, [r0, #-440]! + 14cc: 696c642d stmdbvs ip!, {r0, r2, r3, r5, sl, sp, lr}^ + 14d0: 6f635f62 svcvs 0x00635f62 + 14d4: 6769666e strbvs r6, [r9, -lr, ror #12]! + 14d8: 3a432220 bcc 10c9d60 + 14dc: 6f72505c svcvs 0x0072505c + 14e0: 6d617267 sfmvs f7, 2, [r1, #-412]! + 14e4: 6c694620 stclvs 6, cr4, [r9], #-128 + 14e8: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 14ec: 53205241 teqpl r0, #268435460 ; 0x10000004 + 14f0: 65747379 ldrbvs r7, [r4, #-889]! + 14f4: 455c736d ldrbmi r7, [ip, #-877] + 14f8: 6465626d strbtvs r6, [r5], #-621 + 14fc: 20646564 rsbcs r6, r4, r4, ror #10 + 1500: 6b726f57 blvs 1c9d264 + 1504: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 1508: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 150c: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 1510: 74736b63 ldrbtvc r6, [r3], #-2915 + 1514: 5c747261 lfmpl f7, 2, [r4], #-388 + 1518: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 151c: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 1520: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 1524: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} + 1528: 5f676966 svcpl 0x00676966 + 152c: 6d726f4e ldclvs 15, cr6, [r2, #-312]! + 1530: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} + 1534: 492d2022 pushmi {r1, r5, sp} + 1538: 3a432220 bcc 10c9dc0 + 153c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 1540: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1544: 61207374 teqvs r0, r4, ror r3 + 1548: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 154c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 1550: 5c73676e ldclpl 7, cr6, [r3], #-440 + 1554: 766c616d strbtvc r6, [ip], -sp, ror #2 + 1558: 5c617269 sfmpl f7, 2, [r1], #-420 + 155c: 4420794d strtmi r7, [r0], #-2381 + 1560: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1564: 73746e65 cmnvc r4, #1616 ; 0x650 + 1568: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 156c: 746e6f63 strbtvc r6, [lr], #-3939 + 1570: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 1574: 74616557 strbtvc r6, [r1], #-1367 + 1578: 20726568 rsbscs r6, r2, r8, ror #10 + 157c: 74617453 strbtvc r7, [r1], #-1107 + 1580: 206e6f69 rsbcs r6, lr, r9, ror #30 + 1584: 746e6f43 strbtvc r6, [lr], #-3907 + 1588: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 158c: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 1590: 5c43414d stfple f4, [r3], {77} + 1594: 76697244 strbtvc r7, [r9], -r4, asr #4 + 1598: 5c737265 lfmpl f7, 2, [r3], #-404 + 159c: 65746e49 ldrbvs r6, [r4, #-3657]! + 15a0: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 15a4: 20225c65 eorcs r5, r2, r5, ror #24 + 15a8: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 15ac: 445c3a43 ldrbmi r3, [ip], #-2627 + 15b0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 15b4: 73746e65 cmnvc r4, #1616 ; 0x650 + 15b8: 646e6120 strbtvs r6, [lr], #-288 + 15bc: 74655320 strbtvc r5, [r5], #-800 + 15c0: 676e6974 undefined + 15c4: 616d5c73 smcvs 54723 + 15c8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 15cc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 15d0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 15d4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 15d8: 775c7374 undefined + 15dc: 6f632d73 svcvs 0x00632d73 + 15e0: 6f72746e svcvs 0x0072746e + 15e4: 65575c6c ldrbvs r5, [r7, #-3180] + 15e8: 65687461 strbvs r7, [r8, #-1121]! + 15ec: 74532072 ldrbvc r2, [r3], #-114 + 15f0: 6f697461 svcvs 0x00697461 + 15f4: 6f43206e svcvs 0x0043206e + 15f8: 6f72746e svcvs 0x0072746e + 15fc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1600: 4d4c505c stclmi 0, cr5, [ip, #-368] + 1604: 746e495c strbtvc r4, [lr], #-2396 + 1608: 61667265 cmnvs r6, r5, ror #4 + 160c: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 1610: 20492d20 subcs r2, r9, r0, lsr #26 + 1614: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 1618: 676f7250 undefined + 161c: 206d6172 rsbcs r6, sp, r2, ror r1 + 1620: 656c6946 strbvs r6, [ip, #-2374]! + 1624: 41495c73 cmpmi r9, r3, ror ip + 1628: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + 162c: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 1630: 6d455c73 stclvs 12, cr5, [r5, #-460] + 1634: 64646562 strbtvs r6, [r4], #-1378 + 1638: 57206465 strpl r6, [r0, -r5, ror #8]! + 163c: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + 1640: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 1644: 342e3520 strtcc r3, [lr], #-1312 + 1648: 63694b20 cmnvs r9, #32768 ; 0x8000 + 164c: 6174736b cmnvs r4, fp, ror #6 + 1650: 615c7472 cmpvs ip, r2, ror r4 + 1654: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 1658: 225c434e subscs r4, ip, #939524097 ; 0x38000001 + 165c: 692d2d20 pushvs {r5, r8, sl, fp, sp} + 1660: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 1664: 6b726f77 blvs 1c9d448 + 1668: 632d2d20 teqvs sp, #2048 ; 0x800 + 166c: 6d5f7570 cfldr64vs mvdx7, [pc, #-448] + 1670: 2065646f rsbcs r6, r5, pc, ror #8 + 1674: 6d756874 ldclvs 8, cr6, [r5, #-464]! + 1678: 4f2d2062 svcmi 0x002d2062 + 167c: 43000068 movwmi r0, #104 ; 0x68 + 1680: 6f445c3a svcvs 0x00445c3a + 1684: 656d7563 strbvs r7, [sp, #-1379]! + 1688: 2073746e rsbscs r7, r3, lr, ror #8 + 168c: 20646e61 rsbcs r6, r4, r1, ror #28 + 1690: 74746553 ldrbtvc r6, [r4], #-1363 + 1694: 73676e69 cmnvc r7, #1680 ; 0x690 + 1698: 6c616d5c stclvs 13, cr6, [r1], #-368 + 169c: 61726976 cmnvs r2, r6, ror r9 + 16a0: 20794d5c rsbscs r4, r9, ip, asr sp + 16a4: 75636f44 strbvc r6, [r3, #-3908]! + 16a8: 746e656d strbtvc r6, [lr], #-1389 + 16ac: 73775c73 cmnvc r7, #29440 ; 0x7300 + 16b0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 16b4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 16b8: 6165575c cmnvs r5, ip, asr r7 + 16bc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 16c0: 61745320 cmnvs r4, r0, lsr #6 + 16c4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 16c8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 16cc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 16d0: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 16d4: 75626544 strbvc r6, [r2, #-1348]! + 16d8: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 16dc: 6e495c6a cdpvs 12, 4, cr5, cr9, cr10, {3} + 16e0: 492d7469 pushmi {r0, r3, r5, r6, sl, ip, sp, lr} + 16e4: 6f2e5241 svcvs 0x002e5241 + 16e8: 4900003a stmdbmi r0, {r1, r3, r4, r5} + 16ec: 41205241 teqmi r0, r1, asr #4 + 16f0: 6d657373 stclvs 3, cr7, [r5, #-460]! + 16f4: 72656c62 rsbvc r6, r5, #25088 ; 0x6200 + 16f8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 16fc: 322e3033 eorcc r3, lr, #51 ; 0x33 + 1700: 3231352e eorscc r3, r1, #192937984 ; 0xb800000 + 1704: 572f3539 undefined + 1708: 66203233 undefined + 170c: 4120726f teqmi r0, pc, ror #4 + 1710: 43004d52 movwmi r4, #3410 ; 0xd52 + 1714: 6f445c3a svcvs 0x00445c3a + 1718: 656d7563 strbvs r7, [sp, #-1379]! + 171c: 2073746e rsbscs r7, r3, lr, ror #8 + 1720: 20646e61 rsbcs r6, r4, r1, ror #28 + 1724: 74746553 ldrbtvc r6, [r4], #-1363 + 1728: 73676e69 cmnvc r7, #1680 ; 0x690 + 172c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1730: 61726976 cmnvs r2, r6, ror r9 + 1734: 20794d5c rsbscs r4, r9, ip, asr sp + 1738: 75636f44 strbvc r6, [r3, #-3908]! + 173c: 746e656d strbtvc r6, [lr], #-1389 + 1740: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1744: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1748: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 174c: 6165575c cmnvs r5, ip, asr r7 + 1750: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1754: 61745320 cmnvs r4, r0, lsr #6 + 1758: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 175c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1760: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1764: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1768: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 176c: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 1770: 435c6563 cmpmi ip, #415236096 ; 0x18c00000 + 1774: 6f6d6d6f svcvs 0x006d6d6f + 1778: 79535c6e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, fp, ip, lr}^ + 177c: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 1780: 492d7469 pushmi {r0, r3, r5, r6, sl, ip, sp, lr} + 1784: 532e5241 teqpl lr, #268435460 ; 0x10000004 + 1788: 434f2d20 movtmi r2, #64800 ; 0xfd20 + 178c: 6f445c3a svcvs 0x00445c3a + 1790: 656d7563 strbvs r7, [sp, #-1379]! + 1794: 2073746e rsbscs r7, r3, lr, ror #8 + 1798: 20646e61 rsbcs r6, r4, r1, ror #28 + 179c: 74746553 ldrbtvc r6, [r4], #-1363 + 17a0: 73676e69 cmnvc r7, #1680 ; 0x690 + 17a4: 6c616d5c stclvs 13, cr6, [r1], #-368 + 17a8: 61726976 cmnvs r2, r6, ror r9 + 17ac: 20794d5c rsbscs r4, r9, ip, asr sp + 17b0: 75636f44 strbvc r6, [r3, #-3908]! + 17b4: 746e656d strbtvc r6, [lr], #-1389 + 17b8: 73775c73 cmnvc r7, #29440 ; 0x7300 + 17bc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 17c0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 17c4: 6165575c cmnvs r5, ip, asr r7 + 17c8: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 17cc: 61745320 cmnvs r4, r0, lsr #6 + 17d0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 17d4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 17d8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 17dc: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 17e0: 75626544 strbvc r6, [r2, #-1348]! + 17e4: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 17e8: 2d205c6a stccs 12, cr5, [r0, #-424]! + 17ec: 2d202b73 fstmdbxcs r0!, {d2-d58} + 17f0: 203e3c4d eorscs r3, lr, sp, asr #24 + 17f4: 202b772d eorcs r7, fp, sp, lsr #14 + 17f8: 2d20722d sfmcs f7, 4, [r0, #-180]! + 17fc: 45535544 ldrbmi r5, [r3, #-1348] + 1800: 544e495f strbpl r4, [lr], #-2399 + 1804: 55525245 ldrbpl r5, [r2, #-581] + 1808: 20535450 subscs r5, r3, r0, asr r4 + 180c: 5355442d cmppl r5, #754974720 ; 0x2d000000 + 1810: 58455f45 stmdapl r5, {r0, r2, r6, r8, r9, sl, fp, ip, lr}^ + 1814: 54504543 ldrbpl r4, [r0], #-1347 + 1818: 534e4f49 movtpl r4, #61257 ; 0xef49 + 181c: 434c2d20 movtmi r2, #52512 ; 0xcd20 + 1820: 6f445c3a svcvs 0x00445c3a + 1824: 656d7563 strbvs r7, [sp, #-1379]! + 1828: 2073746e rsbscs r7, r3, lr, ror #8 + 182c: 20646e61 rsbcs r6, r4, r1, ror #28 + 1830: 74746553 ldrbtvc r6, [r4], #-1363 + 1834: 73676e69 cmnvc r7, #1680 ; 0x690 + 1838: 6c616d5c stclvs 13, cr6, [r1], #-368 + 183c: 61726976 cmnvs r2, r6, ror r9 + 1840: 20794d5c rsbscs r4, r9, ip, asr sp + 1844: 75636f44 strbvc r6, [r3, #-3908]! + 1848: 746e656d strbtvc r6, [lr], #-1389 + 184c: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1850: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1854: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1858: 6165575c cmnvs r5, ip, asr r7 + 185c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1860: 61745320 cmnvs r4, r0, lsr #6 + 1864: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1868: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 186c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1870: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1874: 75626544 strbvc r6, [r2, #-1348]! + 1878: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ + 187c: 205c7473 subscs r7, ip, r3, ror r4 + 1880: 2038742d eorscs r7, r8, sp, lsr #8 + 1884: 70632d2d rsbvc r2, r3, sp, lsr #26 + 1888: 52412075 subpl r2, r1, #117 ; 0x75 + 188c: 4454374d ldrbmi r3, [r4], #-1869 + 1890: 532d494d teqpl sp, #1261568 ; 0x134000 + 1894: 662d2d20 strtvs r2, [sp], -r0, lsr #26 + 1898: 4e207570 mcrmi 5, 1, r7, cr0, cr0, {3} + 189c: 00656e6f rsbeq r6, r5, pc, ror #28 + 18a0: 5c3a4300 ldcpl 3, cr4, [sl] + 18a4: 75636f44 strbvc r6, [r3, #-3908]! + 18a8: 746e656d strbtvc r6, [lr], #-1389 + 18ac: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 18b0: 65532064 ldrbvs r2, [r3, #-100] + 18b4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 18b8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 18bc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 18c0: 4d5c6172 ldfmie f6, [ip, #-456] + 18c4: 6f442079 svcvs 0x00442079 + 18c8: 656d7563 strbvs r7, [sp, #-1379]! + 18cc: 5c73746e cfldrdpl mvd7, [r3], #-440 + 18d0: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 18d4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 18d8: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 18dc: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 18e0: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 18e4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 18e8: 43206e6f teqmi r0, #1776 ; 0x6f0 + 18ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 18f0: 656c6c6f strbvs r6, [ip, #-3183]! + 18f4: 65445c72 strbvs r5, [r4, #-3186] + 18f8: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 18fc: 5c6a624f sfmpl f6, 2, [sl], #-316 + 1900: 6279654b rsbsvs r6, r9, #314572800 ; 0x12c00000 + 1904: 6472616f ldrbtvs r6, [r2], #-367 + 1908: 003a6f2e eorseq r6, sl, lr, lsr #30 + 190c: 52414900 subpl r4, r1, #0 ; 0x0 + 1910: 534e4120 movtpl r4, #57632 ; 0xe120 + 1914: 2f432049 svccs 0x00432049 + 1918: 202b2b43 eorcs r2, fp, r3, asr #22 + 191c: 706d6f43 rsbvc r6, sp, r3, asr #30 + 1920: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 1924: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 1928: 322e3033 eorcc r3, lr, #51 ; 0x33 + 192c: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 1930: 572f3539 undefined + 1934: 4b203233 blmi 80e208 + 1938: 534b4349 movtpl r4, #45897 ; 0xb349 + 193c: 54524154 ldrbpl r4, [r2], #-340 + 1940: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 1944: 4d524120 ldfmie f4, [r2, #-128] + 1948: 3a432200 bcc 10ca150 + 194c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 1950: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1954: 61207374 teqvs r0, r4, ror r3 + 1958: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 195c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 1960: 5c73676e ldclpl 7, cr6, [r3], #-440 + 1964: 766c616d strbtvc r6, [ip], -sp, ror #2 + 1968: 5c617269 sfmpl f7, 2, [r1], #-420 + 196c: 4420794d strtmi r7, [r0], #-2381 + 1970: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1974: 73746e65 cmnvc r4, #1616 ; 0x650 + 1978: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 197c: 746e6f63 strbtvc r6, [lr], #-3939 + 1980: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 1984: 74616557 strbtvc r6, [r1], #-1367 + 1988: 20726568 rsbscs r6, r2, r8, ror #10 + 198c: 74617453 strbtvc r7, [r1], #-1107 + 1990: 206e6f69 rsbcs r6, lr, r9, ror #30 + 1994: 746e6f43 strbtvc r6, [lr], #-3907 + 1998: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 199c: 415c7265 cmpmi ip, r5, ror #4 + 19a0: 696c7070 stmdbvs ip!, {r4, r5, r6, ip, sp, lr}^ + 19a4: 69746163 ldmdbvs r4!, {r0, r1, r5, r6, r8, sp, lr}^ + 19a8: 555c6e6f ldrbpl r6, [ip, #-3695] + 19ac: 696c6974 stmdbvs ip!, {r2, r4, r5, r6, r8, fp, sp, lr}^ + 19b0: 73656974 cmnvc r5, #1900544 ; 0x1d0000 + 19b4: 79654b5c stmdbvc r5!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 19b8: 72616f62 rsbvc r6, r1, #392 ; 0x188 + 19bc: 22632e64 rsbcs r2, r3, #1600 ; 0x640 + 19c0: 20442d20 subcs r2, r4, r0, lsr #26 + 19c4: 4d343246 lfmmi f3, 4, [r4, #-280]! + 19c8: 2d205a48 fstmdbscs r0!, {s10-s81} + 19cc: 45532044 ldrbmi r2, [r3, #-68] + 19d0: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ + 19d4: 455f5954 ldrbmi r5, [pc, #-2388] ; 1088 <__USR_stack_size+0x888> + 19d8: 4c42414e stfmie f4, [r2], {78} + 19dc: 2d204445 cfstrscs mvf4, [r0, #-276]! + 19e0: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 + 19e4: 445c3a43 ldrbmi r3, [ip], #-2627 + 19e8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 19ec: 73746e65 cmnvc r4, #1616 ; 0x650 + 19f0: 646e6120 strbtvs r6, [lr], #-288 + 19f4: 74655320 strbtvc r5, [r5], #-800 + 19f8: 676e6974 undefined + 19fc: 616d5c73 smcvs 54723 + 1a00: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1a04: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1a08: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1a0c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1a10: 775c7374 undefined + 1a14: 6f632d73 svcvs 0x00632d73 + 1a18: 6f72746e svcvs 0x0072746e + 1a1c: 65575c6c ldrbvs r5, [r7, #-3180] + 1a20: 65687461 strbvs r7, [r8, #-1121]! + 1a24: 74532072 ldrbvc r2, [r3], #-114 + 1a28: 6f697461 svcvs 0x00697461 + 1a2c: 6f43206e svcvs 0x0043206e + 1a30: 6f72746e svcvs 0x0072746e + 1a34: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1a38: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 1a3c: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 + 1a40: 5c747369 ldclpl 3, cr7, [r4], #-420 + 1a44: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 1a48: 67616964 strbvs r6, [r1, -r4, ror #18]! + 1a4c: 7075735f rsbsvc r7, r5, pc, asr r3 + 1a50: 73657270 cmnvc r5, #7 ; 0x7 + 1a54: 65502073 ldrbvs r2, [r0, #-115] + 1a58: 2c313539 cfldr32cs mvfx3, [r1], #-228 + 1a5c: 31316550 teqcc r1, r0, asr r5 + 1a60: 65502c31 ldrbvs r2, [r0, #-3121] + 1a64: 20303439 eorscs r3, r0, r9, lsr r4 + 1a68: 22206f2d eorcs r6, r0, #180 ; 0xb4 + 1a6c: 445c3a43 ldrbmi r3, [ip], #-2627 + 1a70: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1a74: 73746e65 cmnvc r4, #1616 ; 0x650 + 1a78: 646e6120 strbtvs r6, [lr], #-288 + 1a7c: 74655320 strbtvc r5, [r5], #-800 + 1a80: 676e6974 undefined + 1a84: 616d5c73 smcvs 54723 + 1a88: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1a8c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1a90: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1a94: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1a98: 775c7374 undefined + 1a9c: 6f632d73 svcvs 0x00632d73 + 1aa0: 6f72746e svcvs 0x0072746e + 1aa4: 65575c6c ldrbvs r5, [r7, #-3180] + 1aa8: 65687461 strbvs r7, [r8, #-1121]! + 1aac: 74532072 ldrbvc r2, [r3], #-114 + 1ab0: 6f697461 svcvs 0x00697461 + 1ab4: 6f43206e svcvs 0x0043206e + 1ab8: 6f72746e svcvs 0x0072746e + 1abc: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1ac0: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 1ac4: 4f5c6775 svcmi 0x005c6775 + 1ac8: 225c6a62 subscs r6, ip, #401408 ; 0x62000 + 1acc: 642d2d20 strtvs r2, [sp], #-3360 + 1ad0: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 1ad4: 652d2d20 strvs r2, [sp, #-3360]! + 1ad8: 6169646e cmnvs r9, lr, ror #8 + 1adc: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ + 1ae0: 656c7474 strbvs r7, [ip, #-1140]! + 1ae4: 632d2d20 teqvs sp, #2048 ; 0x800 + 1ae8: 413d7570 teqmi sp, r0, ror r5 + 1aec: 54374d52 ldrtpl r4, [r7], #-3410 + 1af0: 2d494d44 stclcs 13, cr4, [r9, #-272] + 1af4: 652d2053 strvs r2, [sp, #-83]! + 1af8: 662d2d20 strtvs r2, [sp], -r0, lsr #26 + 1afc: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} + 1b00: 20656e6f rsbcs r6, r5, pc, ror #28 + 1b04: 6c642d2d stclvs 13, cr2, [r4], #-180 + 1b08: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 + 1b0c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 1b10: 43222067 teqmi r2, #103 ; 0x67 + 1b14: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 1b18: 6172676f cmnvs r2, pc, ror #14 + 1b1c: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 1b20: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 1b24: 20524149 subscs r4, r2, r9, asr #2 + 1b28: 74737953 ldrbtvc r7, [r3], #-2387 + 1b2c: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 1b30: 65626d45 strbvs r6, [r2, #-3397]! + 1b34: 64656464 strbtvs r6, [r5], #-1124 + 1b38: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 1b3c: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 1b40: 35206863 strcc r6, [r0, #-2147]! + 1b44: 4b20342e blmi 80ec04 + 1b48: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 1b4c: 74726174 ldrbtvc r6, [r2], #-372 + 1b50: 6d72615c ldfvse f6, [r2, #-368]! + 1b54: 434e495c movtmi r4, #59740 ; 0xe95c + 1b58: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ + 1b5c: 6f435f62 svcvs 0x00435f62 + 1b60: 6769666e strbvs r6, [r9, -lr, ror #12]! + 1b64: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 + 1b68: 2e6c616d powcsez f6, f4, #5.0 + 1b6c: 2d202268 sfmcs f2, 4, [r0, #-416]! + 1b70: 43222049 teqmi r2, #73 ; 0x49 + 1b74: 6f445c3a svcvs 0x00445c3a + 1b78: 656d7563 strbvs r7, [sp, #-1379]! + 1b7c: 2073746e rsbscs r7, r3, lr, ror #8 + 1b80: 20646e61 rsbcs r6, r4, r1, ror #28 + 1b84: 74746553 ldrbtvc r6, [r4], #-1363 + 1b88: 73676e69 cmnvc r7, #1680 ; 0x690 + 1b8c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1b90: 61726976 cmnvs r2, r6, ror r9 + 1b94: 20794d5c rsbscs r4, r9, ip, asr sp + 1b98: 75636f44 strbvc r6, [r3, #-3908]! + 1b9c: 746e656d strbtvc r6, [lr], #-1389 + 1ba0: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1ba4: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1ba8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1bac: 6165575c cmnvs r5, ip, asr r7 + 1bb0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1bb4: 61745320 cmnvs r4, r0, lsr #6 + 1bb8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1bbc: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1bc0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1bc4: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1bc8: 43414d53 movtmi r4, #7507 ; 0x1d53 + 1bcc: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 1bd0: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 1bd4: 746e495c strbtvc r4, [lr], #-2396 + 1bd8: 61667265 cmnvs r6, r5, ror #4 + 1bdc: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 1be0: 20492d20 subcs r2, r9, r0, lsr #26 + 1be4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 1be8: 75636f44 strbvc r6, [r3, #-3908]! + 1bec: 746e656d strbtvc r6, [lr], #-1389 + 1bf0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 1bf4: 65532064 ldrbvs r2, [r3, #-100] + 1bf8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 1bfc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 1c00: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 1c04: 4d5c6172 ldfmie f6, [ip, #-456] + 1c08: 6f442079 svcvs 0x00442079 + 1c0c: 656d7563 strbvs r7, [sp, #-1379]! + 1c10: 5c73746e cfldrdpl mvd7, [r3], #-440 + 1c14: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 1c18: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 1c1c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 1c20: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 1c24: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 1c28: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 1c2c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 1c30: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 1c34: 656c6c6f strbvs r6, [ip, #-3183]! + 1c38: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 + 1c3c: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} + 1c40: 66726574 undefined + 1c44: 5c656361 stclpl 3, cr6, [r5], #-388 + 1c48: 492d2022 pushmi {r1, r5, sp} + 1c4c: 3a432220 bcc 10ca4d4 + 1c50: 6f72505c svcvs 0x0072505c + 1c54: 6d617267 sfmvs f7, 2, [r1, #-412]! + 1c58: 6c694620 stclvs 6, cr4, [r9], #-128 + 1c5c: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 1c60: 53205241 teqpl r0, #268435460 ; 0x10000004 + 1c64: 65747379 ldrbvs r7, [r4, #-889]! + 1c68: 455c736d ldrbmi r7, [ip, #-877] + 1c6c: 6465626d strbtvs r6, [r5], #-621 + 1c70: 20646564 rsbcs r6, r4, r4, ror #10 + 1c74: 6b726f57 blvs 1c9d9d8 + 1c78: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 1c7c: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 1c80: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 1c84: 74736b63 ldrbtvc r6, [r3], #-2915 + 1c88: 5c747261 lfmpl f7, 2, [r4], #-388 + 1c8c: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 1c90: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 1c94: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 1c98: 65746e69 ldrbvs r6, [r4, #-3689]! + 1c9c: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 1ca0: 2d2d206b stccs 0, cr2, [sp, #-428]! + 1ca4: 5f757063 svcpl 0x00757063 + 1ca8: 65646f6d strbvs r6, [r4, #-3949]! + 1cac: 75687420 strbvc r7, [r8, #-1056]! + 1cb0: 2d20626d sfmcs f6, 4, [r0, #-436]! + 1cb4: 0000684f andeq r6, r0, pc, asr #16 + 1cb8: 445c3a43 ldrbmi r3, [ip], #-2627 + 1cbc: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1cc0: 73746e65 cmnvc r4, #1616 ; 0x650 + 1cc4: 646e6120 strbtvs r6, [lr], #-288 + 1cc8: 74655320 strbtvc r5, [r5], #-800 + 1ccc: 676e6974 undefined + 1cd0: 616d5c73 smcvs 54723 + 1cd4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 1cd8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 1cdc: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 1ce0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1ce4: 775c7374 undefined + 1ce8: 6f632d73 svcvs 0x00632d73 + 1cec: 6f72746e svcvs 0x0072746e + 1cf0: 65575c6c ldrbvs r5, [r7, #-3180] + 1cf4: 65687461 strbvs r7, [r8, #-1121]! + 1cf8: 74532072 ldrbvc r2, [r3], #-114 + 1cfc: 6f697461 svcvs 0x00697461 + 1d00: 6f43206e svcvs 0x0043206e + 1d04: 6f72746e svcvs 0x0072746e + 1d08: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 1d0c: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 1d10: 4f5c6775 svcmi 0x005c6775 + 1d14: 4c5c6a62 mrrcmi 10, 6, r6, ip, cr2 + 1d18: 2e736465 cdpcs 4, 7, cr6, cr3, cr5, {3} + 1d1c: 00003a6f andeq r3, r0, pc, ror #20 + 1d20: 20524149 subscs r4, r2, r9, asr #2 + 1d24: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 1d28: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 1d2c: 43202b2b teqmi r0, #44032 ; 0xac00 + 1d30: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 1d34: 2072656c rsbscs r6, r2, ip, ror #10 + 1d38: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 1d3c: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 1d40: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 1d44: 33572f35 cmpcc r7, #212 ; 0xd4 + 1d48: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 1d4c: 54534b43 ldrbpl r4, [r3], #-2883 + 1d50: 20545241 subscs r5, r4, r1, asr #4 + 1d54: 20726f66 rsbscs r6, r2, r6, ror #30 + 1d58: 004d5241 subeq r5, sp, r1, asr #4 + 1d5c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 1d60: 75636f44 strbvc r6, [r3, #-3908]! + 1d64: 746e656d strbtvc r6, [lr], #-1389 + 1d68: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 1d6c: 65532064 ldrbvs r2, [r3, #-100] + 1d70: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 1d74: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 1d78: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 1d7c: 4d5c6172 ldfmie f6, [ip, #-456] + 1d80: 6f442079 svcvs 0x00442079 + 1d84: 656d7563 strbvs r7, [sp, #-1379]! + 1d88: 5c73746e cfldrdpl mvd7, [r3], #-440 + 1d8c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 1d90: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 1d94: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 1d98: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 1d9c: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 1da0: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 1da4: 43206e6f teqmi r0, #1776 ; 0x6f0 + 1da8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 1dac: 656c6c6f strbvs r6, [ip, #-3183]! + 1db0: 70415c72 subvc r5, r1, r2, ror ip + 1db4: 63696c70 cmnvs r9, #28672 ; 0x7000 + 1db8: 6f697461 svcvs 0x00697461 + 1dbc: 74555c6e ldrbvc r5, [r5], #-3182 + 1dc0: 74696c69 strbtvc r6, [r9], #-3177 + 1dc4: 5c736569 cfldr64pl mvdx6, [r3], #-420 + 1dc8: 7364654c cmnvc r4, #318767104 ; 0x13000000 + 1dcc: 2022632e eorcs r6, r2, lr, lsr #6 + 1dd0: 4620442d strtmi r4, [r0], -sp, lsr #8 + 1dd4: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + 1dd8: 442d205a strtmi r2, [sp], #-90 + 1ddc: 43455320 movtmi r5, #21280 ; 0x5320 + 1de0: 54495255 strbpl r5, [r9], #-597 + 1de4: 4e455f59 mcrmi 15, 2, r5, cr5, cr9, {2} + 1de8: 454c4241 strbmi r4, [ip, #-577] + 1dec: 6c2d2044 stcvs 0, cr2, [sp], #-272 + 1df0: 43222043 teqmi r2, #67 ; 0x43 + 1df4: 6f445c3a svcvs 0x00445c3a + 1df8: 656d7563 strbvs r7, [sp, #-1379]! + 1dfc: 2073746e rsbscs r7, r3, lr, ror #8 + 1e00: 20646e61 rsbcs r6, r4, r1, ror #28 + 1e04: 74746553 ldrbtvc r6, [r4], #-1363 + 1e08: 73676e69 cmnvc r7, #1680 ; 0x690 + 1e0c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1e10: 61726976 cmnvs r2, r6, ror r9 + 1e14: 20794d5c rsbscs r4, r9, ip, asr sp + 1e18: 75636f44 strbvc r6, [r3, #-3908]! + 1e1c: 746e656d strbtvc r6, [lr], #-1389 + 1e20: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1e24: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1e28: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1e2c: 6165575c cmnvs r5, ip, asr r7 + 1e30: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1e34: 61745320 cmnvs r4, r0, lsr #6 + 1e38: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1e3c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1e40: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1e44: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1e48: 75626544 strbvc r6, [r2, #-1348]! + 1e4c: 694c5c67 stmdbvs ip, {r0, r1, r2, r5, r6, sl, fp, ip, lr}^ + 1e50: 225c7473 subscs r7, ip, #1929379840 ; 0x73000000 + 1e54: 642d2d20 strtvs r2, [sp], #-3360 + 1e58: 5f676169 svcpl 0x00676169 + 1e5c: 70707573 rsbsvc r7, r0, r3, ror r5 + 1e60: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 1e64: 39655020 stmdbcc r5!, {r5, ip, lr}^ + 1e68: 502c3135 eorpl r3, ip, r5, lsr r1 + 1e6c: 31313165 teqcc r1, r5, ror #2 + 1e70: 3965502c stmdbcc r5!, {r2, r3, r5, ip, lr}^ + 1e74: 2d203034 stccs 0, cr3, [r0, #-208]! + 1e78: 4322206f teqmi r2, #111 ; 0x6f + 1e7c: 6f445c3a svcvs 0x00445c3a + 1e80: 656d7563 strbvs r7, [sp, #-1379]! + 1e84: 2073746e rsbscs r7, r3, lr, ror #8 + 1e88: 20646e61 rsbcs r6, r4, r1, ror #28 + 1e8c: 74746553 ldrbtvc r6, [r4], #-1363 + 1e90: 73676e69 cmnvc r7, #1680 ; 0x690 + 1e94: 6c616d5c stclvs 13, cr6, [r1], #-368 + 1e98: 61726976 cmnvs r2, r6, ror r9 + 1e9c: 20794d5c rsbscs r4, r9, ip, asr sp + 1ea0: 75636f44 strbvc r6, [r3, #-3908]! + 1ea4: 746e656d strbtvc r6, [lr], #-1389 + 1ea8: 73775c73 cmnvc r7, #29440 ; 0x7300 + 1eac: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 1eb0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1eb4: 6165575c cmnvs r5, ip, asr r7 + 1eb8: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 1ebc: 61745320 cmnvs r4, r0, lsr #6 + 1ec0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 1ec4: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 1ec8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 1ecc: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 1ed0: 75626544 strbvc r6, [r2, #-1348]! + 1ed4: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 1ed8: 20225c6a eorcs r5, r2, sl, ror #24 + 1edc: 65642d2d strbvs r2, [r4, #-3373]! + 1ee0: 20677562 rsbcs r7, r7, r2, ror #10 + 1ee4: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} + 1ee8: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} + 1eec: 74696c3d strbtvc r6, [r9], #-3133 + 1ef0: 20656c74 rsbcs r6, r5, r4, ror ip + 1ef4: 70632d2d rsbvc r2, r3, sp, lsr #26 + 1ef8: 52413d75 subpl r3, r1, #7488 ; 0x1d40 + 1efc: 4454374d ldrbmi r3, [r4], #-1869 + 1f00: 532d494d teqpl sp, #1261568 ; 0x134000 + 1f04: 20652d20 rsbcs r2, r5, r0, lsr #26 + 1f08: 70662d2d rsbvc r2, r6, sp, lsr #26 + 1f0c: 6f4e3d75 svcvs 0x004e3d75 + 1f10: 2d20656e cfstr32cs mvfx6, [r0, #-440]! + 1f14: 696c642d stmdbvs ip!, {r0, r2, r3, r5, sl, sp, lr}^ + 1f18: 6f635f62 svcvs 0x00635f62 + 1f1c: 6769666e strbvs r6, [r9, -lr, ror #12]! + 1f20: 3a432220 bcc 10ca7a8 + 1f24: 6f72505c svcvs 0x0072505c + 1f28: 6d617267 sfmvs f7, 2, [r1, #-412]! + 1f2c: 6c694620 stclvs 6, cr4, [r9], #-128 + 1f30: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 1f34: 53205241 teqpl r0, #268435460 ; 0x10000004 + 1f38: 65747379 ldrbvs r7, [r4, #-889]! + 1f3c: 455c736d ldrbmi r7, [ip, #-877] + 1f40: 6465626d strbtvs r6, [r5], #-621 + 1f44: 20646564 rsbcs r6, r4, r4, ror #10 + 1f48: 6b726f57 blvs 1c9dcac + 1f4c: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 1f50: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 1f54: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 1f58: 74736b63 ldrbtvc r6, [r3], #-2915 + 1f5c: 5c747261 lfmpl f7, 2, [r4], #-388 + 1f60: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 1f64: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 1f68: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 1f6c: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} + 1f70: 5f676966 svcpl 0x00676966 + 1f74: 6d726f4e ldclvs 15, cr6, [r2, #-312]! + 1f78: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} + 1f7c: 492d2022 pushmi {r1, r5, sp} + 1f80: 3a432220 bcc 10ca808 + 1f84: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 1f88: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 1f8c: 61207374 teqvs r0, r4, ror r3 + 1f90: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 1f94: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 1f98: 5c73676e ldclpl 7, cr6, [r3], #-440 + 1f9c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 1fa0: 5c617269 sfmpl f7, 2, [r1], #-420 + 1fa4: 4420794d strtmi r7, [r0], #-2381 + 1fa8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1fac: 73746e65 cmnvc r4, #1616 ; 0x650 + 1fb0: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 1fb4: 746e6f63 strbtvc r6, [lr], #-3939 + 1fb8: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 1fbc: 74616557 strbtvc r6, [r1], #-1367 + 1fc0: 20726568 rsbscs r6, r2, r8, ror #10 + 1fc4: 74617453 strbtvc r7, [r1], #-1107 + 1fc8: 206e6f69 rsbcs r6, lr, r9, ror #30 + 1fcc: 746e6f43 strbtvc r6, [lr], #-3907 + 1fd0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 1fd4: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 1fd8: 5c43414d stfple f4, [r3], {77} + 1fdc: 76697244 strbtvc r7, [r9], -r4, asr #4 + 1fe0: 5c737265 lfmpl f7, 2, [r3], #-404 + 1fe4: 65746e49 ldrbvs r6, [r4, #-3657]! + 1fe8: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 1fec: 20225c65 eorcs r5, r2, r5, ror #24 + 1ff0: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 1ff4: 445c3a43 ldrbmi r3, [ip], #-2627 + 1ff8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 1ffc: 73746e65 cmnvc r4, #1616 ; 0x650 + 2000: 646e6120 strbtvs r6, [lr], #-288 + 2004: 74655320 strbtvc r5, [r5], #-800 + 2008: 676e6974 undefined + 200c: 616d5c73 smcvs 54723 + 2010: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2014: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2018: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 201c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2020: 775c7374 undefined + 2024: 6f632d73 svcvs 0x00632d73 + 2028: 6f72746e svcvs 0x0072746e + 202c: 65575c6c ldrbvs r5, [r7, #-3180] + 2030: 65687461 strbvs r7, [r8, #-1121]! + 2034: 74532072 ldrbvc r2, [r3], #-114 + 2038: 6f697461 svcvs 0x00697461 + 203c: 6f43206e svcvs 0x0043206e + 2040: 6f72746e svcvs 0x0072746e + 2044: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2048: 4d4c505c stclmi 0, cr5, [ip, #-368] + 204c: 746e495c strbtvc r4, [lr], #-2396 + 2050: 61667265 cmnvs r6, r5, ror #4 + 2054: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 2058: 20492d20 subcs r2, r9, r0, lsr #26 + 205c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2060: 676f7250 undefined + 2064: 206d6172 rsbcs r6, sp, r2, ror r1 + 2068: 656c6946 strbvs r6, [ip, #-2374]! + 206c: 41495c73 cmpmi r9, r3, ror ip + 2070: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + 2074: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 2078: 6d455c73 stclvs 12, cr5, [r5, #-460] + 207c: 64646562 strbtvs r6, [r4], #-1378 + 2080: 57206465 strpl r6, [r0, -r5, ror #8]! + 2084: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + 2088: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 208c: 342e3520 strtcc r3, [lr], #-1312 + 2090: 63694b20 cmnvs r9, #32768 ; 0x8000 + 2094: 6174736b cmnvs r4, fp, ror #6 + 2098: 615c7472 cmpvs ip, r2, ror r4 + 209c: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 20a0: 225c434e subscs r4, ip, #939524097 ; 0x38000001 + 20a4: 692d2d20 pushvs {r5, r8, sl, fp, sp} + 20a8: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 20ac: 6b726f77 blvs 1c9de90 + 20b0: 632d2d20 teqvs sp, #2048 ; 0x800 + 20b4: 6d5f7570 cfldr64vs mvdx7, [pc, #-448] + 20b8: 2065646f rsbcs r6, r5, pc, ror #8 + 20bc: 6d756874 ldclvs 8, cr6, [r5, #-464]! + 20c0: 4f2d2062 svcmi 0x002d2062 + 20c4: 43000068 movwmi r0, #104 ; 0x68 + 20c8: 6f445c3a svcvs 0x00445c3a + 20cc: 656d7563 strbvs r7, [sp, #-1379]! + 20d0: 2073746e rsbscs r7, r3, lr, ror #8 + 20d4: 20646e61 rsbcs r6, r4, r1, ror #28 + 20d8: 74746553 ldrbtvc r6, [r4], #-1363 + 20dc: 73676e69 cmnvc r7, #1680 ; 0x690 + 20e0: 6c616d5c stclvs 13, cr6, [r1], #-368 + 20e4: 61726976 cmnvs r2, r6, ror r9 + 20e8: 20794d5c rsbscs r4, r9, ip, asr sp + 20ec: 75636f44 strbvc r6, [r3, #-3908]! + 20f0: 746e656d strbtvc r6, [lr], #-1389 + 20f4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 20f8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 20fc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2100: 6165575c cmnvs r5, ip, asr r7 + 2104: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2108: 61745320 cmnvs r4, r0, lsr #6 + 210c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2110: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2114: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2118: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 211c: 75626544 strbvc r6, [r2, #-1348]! + 2120: 624f5c67 subvs r5, pc, #26368 ; 0x6700 + 2124: 614d5c6a cmpvs sp, sl, ror #24 + 2128: 6e496163 dvfvsez f6, f1, f3 + 212c: 72726574 rsbsvc r6, r2, #486539264 ; 0x1d000000 + 2130: 2e747075 mrccs 0, 3, r7, cr4, cr5, {3} + 2134: 00003a6f andeq r3, r0, pc, ror #20 + 2138: 20524149 subscs r4, r2, r9, asr #2 + 213c: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 2140: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 2144: 43202b2b teqmi r0, #44032 ; 0xac00 + 2148: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 214c: 2072656c rsbscs r6, r2, ip, ror #10 + 2150: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 2154: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 2158: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 215c: 33572f35 cmpcc r7, #212 ; 0xd4 + 2160: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 2164: 54534b43 ldrbpl r4, [r3], #-2883 + 2168: 20545241 subscs r5, r4, r1, asr #4 + 216c: 20726f66 rsbscs r6, r2, r6, ror #30 + 2170: 004d5241 subeq r5, sp, r1, asr #4 + 2174: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2178: 75636f44 strbvc r6, [r3, #-3908]! + 217c: 746e656d strbtvc r6, [lr], #-1389 + 2180: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2184: 65532064 ldrbvs r2, [r3, #-100] + 2188: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 218c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2190: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2194: 4d5c6172 ldfmie f6, [ip, #-456] + 2198: 6f442079 svcvs 0x00442079 + 219c: 656d7563 strbvs r7, [sp, #-1379]! + 21a0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 21a4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 21a8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 21ac: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 21b0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 21b4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 21b8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 21bc: 43206e6f teqmi r0, #1776 ; 0x6f0 + 21c0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 21c4: 656c6c6f strbvs r6, [ip, #-3183]! + 21c8: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 21cc: 445c4341 ldrbmi r4, [ip], #-833 + 21d0: 65766972 ldrbvs r6, [r6, #-2418]! + 21d4: 535c7372 cmppl ip, #-939524095 ; 0xc8000001 + 21d8: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 + 21dc: 614d5c65 cmpvs sp, r5, ror #24 + 21e0: 6e496163 dvfvsez f6, f1, f3 + 21e4: 72726574 rsbsvc r6, r2, #486539264 ; 0x1d000000 + 21e8: 2e747075 mrccs 0, 3, r7, cr4, cr5, {3} + 21ec: 2d202263 sfmcs f2, 4, [r0, #-396]! + 21f0: 32462044 subcc r2, r6, #68 ; 0x44 + 21f4: 5a484d34 bpl 12156cc + 21f8: 20442d20 subcs r2, r4, r0, lsr #26 + 21fc: 55434553 strbpl r4, [r3, #-1363] + 2200: 59544952 ldmdbpl r4, {r1, r4, r6, r8, fp, lr}^ + 2204: 414e455f cmpmi lr, pc, asr r5 + 2208: 44454c42 strbmi r4, [r5], #-3138 + 220c: 436c2d20 cmnmi ip, #2048 ; 0x800 + 2210: 3a432220 bcc 10caa98 + 2214: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 2218: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 221c: 61207374 teqvs r0, r4, ror r3 + 2220: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 2224: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 2228: 5c73676e ldclpl 7, cr6, [r3], #-440 + 222c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2230: 5c617269 sfmpl f7, 2, [r1], #-420 + 2234: 4420794d strtmi r7, [r0], #-2381 + 2238: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 223c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2240: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2244: 746e6f63 strbtvc r6, [lr], #-3939 + 2248: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 224c: 74616557 strbtvc r6, [r1], #-1367 + 2250: 20726568 rsbscs r6, r2, r8, ror #10 + 2254: 74617453 strbtvc r7, [r1], #-1107 + 2258: 206e6f69 rsbcs r6, lr, r9, ror #30 + 225c: 746e6f43 strbtvc r6, [lr], #-3907 + 2260: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2264: 445c7265 ldrbmi r7, [ip], #-613 + 2268: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 226c: 73694c5c cmnvc r9, #23552 ; 0x5c00 + 2270: 20225c74 eorcs r5, r2, r4, ror ip + 2274: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 2278: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 227c: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 2280: 20737365 rsbscs r7, r3, r5, ror #6 + 2284: 35396550 ldrcc r6, [r9, #-1360]! + 2288: 65502c31 ldrbvs r2, [r0, #-3121] + 228c: 2c313131 ldfcss f3, [r1], #-196 + 2290: 34396550 ldrtcc r6, [r9], #-1360 + 2294: 6f2d2030 svcvs 0x002d2030 + 2298: 3a432220 bcc 10cab20 + 229c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 22a0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 22a4: 61207374 teqvs r0, r4, ror r3 + 22a8: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 22ac: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 22b0: 5c73676e ldclpl 7, cr6, [r3], #-440 + 22b4: 766c616d strbtvc r6, [ip], -sp, ror #2 + 22b8: 5c617269 sfmpl f7, 2, [r1], #-420 + 22bc: 4420794d strtmi r7, [r0], #-2381 + 22c0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 22c4: 73746e65 cmnvc r4, #1616 ; 0x650 + 22c8: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 22cc: 746e6f63 strbtvc r6, [lr], #-3939 + 22d0: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 22d4: 74616557 strbtvc r6, [r1], #-1367 + 22d8: 20726568 rsbscs r6, r2, r8, ror #10 + 22dc: 74617453 strbtvc r7, [r1], #-1107 + 22e0: 206e6f69 rsbcs r6, lr, r9, ror #30 + 22e4: 746e6f43 strbtvc r6, [lr], #-3907 + 22e8: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 22ec: 445c7265 ldrbmi r7, [ip], #-613 + 22f0: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 22f4: 6a624f5c bvs 189606c + 22f8: 2d20225c sfmcs f2, 4, [r0, #-368]! + 22fc: 6265642d rsbvs r6, r5, #754974720 ; 0x2d000000 + 2300: 2d206775 stccs 7, cr6, [r0, #-468]! + 2304: 646e652d strbtvs r6, [lr], #-1325 + 2308: 3d6e6169 stfcce f6, [lr, #-420]! + 230c: 7474696c ldrbtvc r6, [r4], #-2412 + 2310: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 2314: 7570632d ldrbvc r6, [r0, #-813]! + 2318: 4d52413d ldfmie f4, [r2, #-244] + 231c: 4d445437 cfstrdmi mvd5, [r4, #-220] + 2320: 20532d49 subscs r2, r3, r9, asr #26 + 2324: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 2328: 7570662d ldrbvc r6, [r0, #-1581]! + 232c: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 2330: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 2334: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 2338: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 233c: 20676966 rsbcs r6, r7, r6, ror #18 + 2340: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2344: 676f7250 undefined + 2348: 206d6172 rsbcs r6, sp, r2, ror r1 + 234c: 656c6946 strbvs r6, [ip, #-2374]! + 2350: 41495c73 cmpmi r9, r3, ror ip + 2354: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + 2358: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 235c: 6d455c73 stclvs 12, cr5, [r5, #-460] + 2360: 64646562 strbtvs r6, [r4], #-1378 + 2364: 57206465 strpl r6, [r0, -r5, ror #8]! + 2368: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + 236c: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 2370: 342e3520 strtcc r3, [lr], #-1312 + 2374: 63694b20 cmnvs r9, #32768 ; 0x8000 + 2378: 6174736b cmnvs r4, fp, ror #6 + 237c: 615c7472 cmpvs ip, r2, ror r4 + 2380: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 2384: 445c434e ldrbmi r4, [ip], #-846 + 2388: 5f62694c svcpl 0x0062694c + 238c: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 2390: 4e5f6769 cdpmi 7, 5, cr6, cr15, cr9, {3} + 2394: 616d726f cmnvs sp, pc, ror #4 + 2398: 22682e6c rsbcs r2, r8, #1728 ; 0x6c0 + 239c: 20492d20 subcs r2, r9, r0, lsr #26 + 23a0: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 23a4: 75636f44 strbvc r6, [r3, #-3908]! + 23a8: 746e656d strbtvc r6, [lr], #-1389 + 23ac: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 23b0: 65532064 ldrbvs r2, [r3, #-100] + 23b4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 23b8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 23bc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 23c0: 4d5c6172 ldfmie f6, [ip, #-456] + 23c4: 6f442079 svcvs 0x00442079 + 23c8: 656d7563 strbvs r7, [sp, #-1379]! + 23cc: 5c73746e cfldrdpl mvd7, [r3], #-440 + 23d0: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 23d4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 23d8: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 23dc: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 23e0: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 23e4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 23e8: 43206e6f teqmi r0, #1776 ; 0x6f0 + 23ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 23f0: 656c6c6f strbvs r6, [ip, #-3183]! + 23f4: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 23f8: 445c4341 ldrbmi r4, [ip], #-833 + 23fc: 65766972 ldrbvs r6, [r6, #-2418]! + 2400: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 2404: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2408: 65636166 strbvs r6, [r3, #-358]! + 240c: 2d20225c sfmcs f2, 4, [r0, #-368]! + 2410: 43222049 teqmi r2, #73 ; 0x49 + 2414: 6f445c3a svcvs 0x00445c3a + 2418: 656d7563 strbvs r7, [sp, #-1379]! + 241c: 2073746e rsbscs r7, r3, lr, ror #8 + 2420: 20646e61 rsbcs r6, r4, r1, ror #28 + 2424: 74746553 ldrbtvc r6, [r4], #-1363 + 2428: 73676e69 cmnvc r7, #1680 ; 0x690 + 242c: 6c616d5c stclvs 13, cr6, [r1], #-368 + 2430: 61726976 cmnvs r2, r6, ror r9 + 2434: 20794d5c rsbscs r4, r9, ip, asr sp + 2438: 75636f44 strbvc r6, [r3, #-3908]! + 243c: 746e656d strbtvc r6, [lr], #-1389 + 2440: 73775c73 cmnvc r7, #29440 ; 0x7300 + 2444: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 2448: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 244c: 6165575c cmnvs r5, ip, asr r7 + 2450: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2454: 61745320 cmnvs r4, r0, lsr #6 + 2458: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 245c: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2460: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2464: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2468: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 246c: 65746e49 ldrbvs r6, [r4, #-3657]! + 2470: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 2474: 20225c65 eorcs r5, r2, r5, ror #24 + 2478: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 247c: 505c3a43 subspl r3, ip, r3, asr #20 + 2480: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 2484: 46206d61 strtmi r6, [r0], -r1, ror #26 + 2488: 73656c69 cmnvc r5, #26880 ; 0x6900 + 248c: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 2490: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 2494: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 2498: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 249c: 65646465 strbvs r6, [r4, #-1125]! + 24a0: 6f572064 svcvs 0x00572064 + 24a4: 65626b72 strbvs r6, [r2, #-2930]! + 24a8: 2068636e rsbcs r6, r8, lr, ror #6 + 24ac: 20342e35 eorscs r2, r4, r5, lsr lr + 24b0: 6b63694b blvs 18dc9e4 + 24b4: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 24b8: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 24bc: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 24c0: 20225c43 eorcs r5, r2, r3, asr #24 + 24c4: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 24c8: 77726574 undefined + 24cc: 206b726f rsbcs r7, fp, pc, ror #4 + 24d0: 70632d2d rsbvc r2, r3, sp, lsr #26 + 24d4: 6f6d5f75 svcvs 0x006d5f75 + 24d8: 74206564 strtvc r6, [r0], #-1380 + 24dc: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 24e0: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 24e4: 3a430000 bcc 10c24ec + 24e8: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 24ec: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 24f0: 61207374 teqvs r0, r4, ror r3 + 24f4: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 24f8: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 24fc: 5c73676e ldclpl 7, cr6, [r3], #-440 + 2500: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2504: 5c617269 sfmpl f7, 2, [r1], #-420 + 2508: 4420794d strtmi r7, [r0], #-2381 + 250c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2510: 73746e65 cmnvc r4, #1616 ; 0x650 + 2514: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2518: 746e6f63 strbtvc r6, [lr], #-3939 + 251c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 2520: 74616557 strbtvc r6, [r1], #-1367 + 2524: 20726568 rsbscs r6, r2, r8, ror #10 + 2528: 74617453 strbtvc r7, [r1], #-1107 + 252c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 2530: 746e6f43 strbtvc r6, [lr], #-3907 + 2534: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2538: 445c7265 ldrbmi r7, [ip], #-613 + 253c: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 2540: 6a624f5c bvs 18962b8 + 2544: 616c505c qdsubvs r5, ip, ip + 2548: 726f6674 rsbvc r6, pc, #121634816 ; 0x7400000 + 254c: 696e496d stmdbvs lr!, {r0, r2, r3, r5, r6, r8, fp, lr}^ + 2550: 3a6f2e74 bcc 1bcdf28 + 2554: 41490000 cmpmi r9, r0 + 2558: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 255c: 43204953 teqmi r0, #1359872 ; 0x14c000 + 2560: 2b2b432f blcs ad3224 + 2564: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 2568: 656c6970 strbvs r6, [ip, #-2416]! + 256c: 35562072 ldrbcc r2, [r6, #-114] + 2570: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 2574: 31332e32 teqcc r3, r2, lsr lr + 2578: 2f353932 svccs 0x00353932 + 257c: 20323357 eorscs r3, r2, r7, asr r3 + 2580: 4b43494b blmi 10d4ab4 + 2584: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 2588: 6f662054 svcvs 0x00662054 + 258c: 52412072 subpl r2, r1, #114 ; 0x72 + 2590: 4322004d teqmi r2, #77 ; 0x4d + 2594: 6f445c3a svcvs 0x00445c3a + 2598: 656d7563 strbvs r7, [sp, #-1379]! + 259c: 2073746e rsbscs r7, r3, lr, ror #8 + 25a0: 20646e61 rsbcs r6, r4, r1, ror #28 + 25a4: 74746553 ldrbtvc r6, [r4], #-1363 + 25a8: 73676e69 cmnvc r7, #1680 ; 0x690 + 25ac: 6c616d5c stclvs 13, cr6, [r1], #-368 + 25b0: 61726976 cmnvs r2, r6, ror r9 + 25b4: 20794d5c rsbscs r4, r9, ip, asr sp + 25b8: 75636f44 strbvc r6, [r3, #-3908]! + 25bc: 746e656d strbtvc r6, [lr], #-1389 + 25c0: 73775c73 cmnvc r7, #29440 ; 0x7300 + 25c4: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 25c8: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 25cc: 6165575c cmnvs r5, ip, asr r7 + 25d0: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 25d4: 61745320 cmnvs r4, r0, lsr #6 + 25d8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 25dc: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 25e0: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 25e4: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 25e8: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 25ec: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 25f0: 435c6563 cmpmi ip, #415236096 ; 0x18c00000 + 25f4: 6f6d6d6f svcvs 0x006d6d6f + 25f8: 79535c6e ldmdbvc r3, {r1, r2, r3, r5, r6, sl, fp, ip, lr}^ + 25fc: 6c505c73 mrrcvs 12, 7, r5, r0, cr3 + 2600: 6f667461 svcvs 0x00667461 + 2604: 6e496d72 mcrvs 13, 2, r6, cr9, cr2, {3} + 2608: 632e7469 teqvs lr, #1761607680 ; 0x69000000 + 260c: 442d2022 strtmi r2, [sp], #-34 + 2610: 34324620 ldrtcc r4, [r2], #-1568 + 2614: 205a484d subscs r4, sl, sp, asr #16 + 2618: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 261c: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 2620: 5f595449 svcpl 0x00595449 + 2624: 42414e45 submi r4, r1, #1104 ; 0x450 + 2628: 2044454c subcs r4, r4, ip, asr #10 + 262c: 20436c2d subcs r6, r3, sp, lsr #24 + 2630: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2634: 75636f44 strbvc r6, [r3, #-3908]! + 2638: 746e656d strbtvc r6, [lr], #-1389 + 263c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2640: 65532064 ldrbvs r2, [r3, #-100] + 2644: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2648: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 264c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2650: 4d5c6172 ldfmie f6, [ip, #-456] + 2654: 6f442079 svcvs 0x00442079 + 2658: 656d7563 strbvs r7, [sp, #-1379]! + 265c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2660: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2664: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2668: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 266c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2670: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2674: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2678: 43206e6f teqmi r0, #1776 ; 0x6f0 + 267c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2680: 656c6c6f strbvs r6, [ip, #-3183]! + 2684: 65445c72 strbvs r5, [r4, #-3186] + 2688: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 268c: 7473694c ldrbtvc r6, [r3], #-2380 + 2690: 2d20225c sfmcs f2, 4, [r0, #-368]! + 2694: 6169642d cmnvs r9, sp, lsr #8 + 2698: 75735f67 ldrbvc r5, [r3, #-3943]! + 269c: 65727070 ldrbvs r7, [r2, #-112]! + 26a0: 50207373 eorpl r7, r0, r3, ror r3 + 26a4: 31353965 teqcc r5, r5, ror #18 + 26a8: 3165502c cmncc r5, ip, lsr #32 + 26ac: 502c3131 eorpl r3, ip, r1, lsr r1 + 26b0: 30343965 eorscc r3, r4, r5, ror #18 + 26b4: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 26b8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 26bc: 75636f44 strbvc r6, [r3, #-3908]! + 26c0: 746e656d strbtvc r6, [lr], #-1389 + 26c4: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 26c8: 65532064 ldrbvs r2, [r3, #-100] + 26cc: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 26d0: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 26d4: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 26d8: 4d5c6172 ldfmie f6, [ip, #-456] + 26dc: 6f442079 svcvs 0x00442079 + 26e0: 656d7563 strbvs r7, [sp, #-1379]! + 26e4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 26e8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 26ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 26f0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 26f4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 26f8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 26fc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2700: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2704: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2708: 656c6c6f strbvs r6, [ip, #-3183]! + 270c: 65445c72 strbvs r5, [r4, #-3186] + 2710: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 2714: 5c6a624f sfmpl f6, 2, [sl], #-316 + 2718: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 271c: 75626564 strbvc r6, [r2, #-1380]! + 2720: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 2724: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 2728: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 272c: 6c747469 cfldrdvs mvd7, [r4], #-420 + 2730: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 2734: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 2738: 374d5241 strbcc r5, [sp, -r1, asr #4] + 273c: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 2740: 2d20532d stccs 3, cr5, [r0, #-180]! + 2744: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 2748: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 274c: 656e6f4e strbvs r6, [lr, #-3918]! + 2750: 642d2d20 strtvs r2, [sp], #-3360 + 2754: 5f62696c svcpl 0x0062696c + 2758: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 275c: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 2760: 505c3a43 subspl r3, ip, r3, asr #20 + 2764: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 2768: 46206d61 strtmi r6, [r0], -r1, ror #26 + 276c: 73656c69 cmnvc r5, #26880 ; 0x6900 + 2770: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 2774: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 2778: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 277c: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 2780: 65646465 strbvs r6, [r4, #-1125]! + 2784: 6f572064 svcvs 0x00572064 + 2788: 65626b72 strbvs r6, [r2, #-2930]! + 278c: 2068636e rsbcs r6, r8, lr, ror #6 + 2790: 20342e35 eorscs r2, r4, r5, lsr lr + 2794: 6b63694b blvs 18dccc8 + 2798: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 279c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 27a0: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 27a4: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 27a8: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 27ac: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 27b0: 6f4e5f67 svcvs 0x004e5f67 + 27b4: 6c616d72 stclvs 13, cr6, [r1], #-456 + 27b8: 2022682e eorcs r6, r2, lr, lsr #16 + 27bc: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 27c0: 445c3a43 ldrbmi r3, [ip], #-2627 + 27c4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 27c8: 73746e65 cmnvc r4, #1616 ; 0x650 + 27cc: 646e6120 strbtvs r6, [lr], #-288 + 27d0: 74655320 strbtvc r5, [r5], #-800 + 27d4: 676e6974 undefined + 27d8: 616d5c73 smcvs 54723 + 27dc: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 27e0: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 27e4: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 27e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 27ec: 775c7374 undefined + 27f0: 6f632d73 svcvs 0x00632d73 + 27f4: 6f72746e svcvs 0x0072746e + 27f8: 65575c6c ldrbvs r5, [r7, #-3180] + 27fc: 65687461 strbvs r7, [r8, #-1121]! + 2800: 74532072 ldrbvc r2, [r3], #-114 + 2804: 6f697461 svcvs 0x00697461 + 2808: 6f43206e svcvs 0x0043206e + 280c: 6f72746e svcvs 0x0072746e + 2810: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2814: 414d535c cmpmi sp, ip, asr r3 + 2818: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 281c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 2820: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 2824: 66726574 undefined + 2828: 5c656361 stclpl 3, cr6, [r5], #-388 + 282c: 492d2022 pushmi {r1, r5, sp} + 2830: 3a432220 bcc 10cb0b8 + 2834: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 2838: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 283c: 61207374 teqvs r0, r4, ror r3 + 2840: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 2844: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 2848: 5c73676e ldclpl 7, cr6, [r3], #-440 + 284c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 2850: 5c617269 sfmpl f7, 2, [r1], #-420 + 2854: 4420794d strtmi r7, [r0], #-2381 + 2858: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 285c: 73746e65 cmnvc r4, #1616 ; 0x650 + 2860: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 2864: 746e6f63 strbtvc r6, [lr], #-3939 + 2868: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 286c: 74616557 strbtvc r6, [r1], #-1367 + 2870: 20726568 rsbscs r6, r2, r8, ror #10 + 2874: 74617453 strbtvc r7, [r1], #-1107 + 2878: 206e6f69 rsbcs r6, lr, r9, ror #30 + 287c: 746e6f43 strbtvc r6, [lr], #-3907 + 2880: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 2884: 505c7265 subspl r7, ip, r5, ror #4 + 2888: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 288c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 2890: 65636166 strbvs r6, [r3, #-358]! + 2894: 2d20225c sfmcs f2, 4, [r0, #-368]! + 2898: 43222049 teqmi r2, #73 ; 0x49 + 289c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 28a0: 6172676f cmnvs r2, pc, ror #14 + 28a4: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 28a8: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 28ac: 20524149 subscs r4, r2, r9, asr #2 + 28b0: 74737953 ldrbtvc r7, [r3], #-2387 + 28b4: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 28b8: 65626d45 strbvs r6, [r2, #-3397]! + 28bc: 64656464 strbtvs r6, [r5], #-1124 + 28c0: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 28c4: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 28c8: 35206863 strcc r6, [r0, #-2147]! + 28cc: 4b20342e blmi 80f98c + 28d0: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 28d4: 74726174 ldrbtvc r6, [r2], #-372 + 28d8: 6d72615c ldfvse f6, [r2, #-368]! + 28dc: 434e495c movtmi r4, #59740 ; 0xe95c + 28e0: 2d20225c sfmcs f2, 4, [r0, #-368]! + 28e4: 746e692d strbtvc r6, [lr], #-2349 + 28e8: 6f777265 svcvs 0x00777265 + 28ec: 2d206b72 vstmdbcs r0!, {d6-} + 28f0: 7570632d ldrbvc r6, [r0, #-813]! + 28f4: 646f6d5f strbtvs r6, [pc], #3423 ; 28fc <__USR_stack_size+0x20fc> + 28f8: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 28fc: 20626d75 rsbcs r6, r2, r5, ror sp + 2900: 00684f2d rsbeq r4, r8, sp, lsr #30 + 2904: 5c3a4300 ldcpl 3, cr4, [sl] + 2908: 75636f44 strbvc r6, [r3, #-3908]! + 290c: 746e656d strbtvc r6, [lr], #-1389 + 2910: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2914: 65532064 ldrbvs r2, [r3, #-100] + 2918: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 291c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2920: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2924: 4d5c6172 ldfmie f6, [ip, #-456] + 2928: 6f442079 svcvs 0x00442079 + 292c: 656d7563 strbvs r7, [sp, #-1379]! + 2930: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2934: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2938: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 293c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2940: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2944: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2948: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 294c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2950: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2954: 656c6c6f strbvs r6, [ip, #-3183]! + 2958: 65445c72 strbvs r5, [r4, #-3186] + 295c: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 2960: 5c6a624f sfmpl f6, 2, [sl], #-316 + 2964: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 2968: 6e614d6f cdpvs 13, 6, cr4, cr1, cr15, {3} + 296c: 6d656761 stclvs 7, cr6, [r5, #-388]! + 2970: 2e746e65 cdpcs 14, 7, cr6, cr4, cr5, {3} + 2974: 00003a6f andeq r3, r0, pc, ror #20 + 2978: 20524149 subscs r4, r2, r9, asr #2 + 297c: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 2980: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 2984: 43202b2b teqmi r0, #44032 ; 0xac00 + 2988: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 298c: 2072656c rsbscs r6, r2, ip, ror #10 + 2990: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 2994: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 2998: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 299c: 33572f35 cmpcc r7, #212 ; 0xd4 + 29a0: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 29a4: 54534b43 ldrbpl r4, [r3], #-2883 + 29a8: 20545241 subscs r5, r4, r1, asr #4 + 29ac: 20726f66 rsbscs r6, r2, r6, ror #30 + 29b0: 004d5241 subeq r5, sp, r1, asr #4 + 29b4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 29b8: 75636f44 strbvc r6, [r3, #-3908]! + 29bc: 746e656d strbtvc r6, [lr], #-1389 + 29c0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 29c4: 65532064 ldrbvs r2, [r3, #-100] + 29c8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 29cc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 29d0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 29d4: 4d5c6172 ldfmie f6, [ip, #-456] + 29d8: 6f442079 svcvs 0x00442079 + 29dc: 656d7563 strbvs r7, [sp, #-1379]! + 29e0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 29e4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 29e8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 29ec: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 29f0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 29f4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 29f8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 29fc: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2a00: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2a04: 656c6c6f strbvs r6, [ip, #-3183]! + 2a08: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 2a0c: 535c4341 cmppl ip, #67108865 ; 0x4000001 + 2a10: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 + 2a14: 61525c65 cmpvs r2, r5, ror #24 + 2a18: 4d6f6964 stclmi 9, cr6, [pc, #-400]! + 2a1c: 67616e61 strbvs r6, [r1, -r1, ror #28]! + 2a20: 6e656d65 cdpvs 13, 6, cr6, cr5, cr5, {3} + 2a24: 22632e74 rsbcs r2, r3, #1856 ; 0x740 + 2a28: 20442d20 subcs r2, r4, r0, lsr #26 + 2a2c: 4d343246 lfmmi f3, 4, [r4, #-280]! + 2a30: 2d205a48 fstmdbscs r0!, {s10-s81} + 2a34: 45532044 ldrbmi r2, [r3, #-68] + 2a38: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ + 2a3c: 455f5954 ldrbmi r5, [pc, #-2388] ; 20f0 <__USR_stack_size+0x18f0> + 2a40: 4c42414e stfmie f4, [r2], {78} + 2a44: 2d204445 cfstrscs mvf4, [r0, #-276]! + 2a48: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 + 2a4c: 445c3a43 ldrbmi r3, [ip], #-2627 + 2a50: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2a54: 73746e65 cmnvc r4, #1616 ; 0x650 + 2a58: 646e6120 strbtvs r6, [lr], #-288 + 2a5c: 74655320 strbtvc r5, [r5], #-800 + 2a60: 676e6974 undefined + 2a64: 616d5c73 smcvs 54723 + 2a68: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2a6c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2a70: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2a74: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2a78: 775c7374 undefined + 2a7c: 6f632d73 svcvs 0x00632d73 + 2a80: 6f72746e svcvs 0x0072746e + 2a84: 65575c6c ldrbvs r5, [r7, #-3180] + 2a88: 65687461 strbvs r7, [r8, #-1121]! + 2a8c: 74532072 ldrbvc r2, [r3], #-114 + 2a90: 6f697461 svcvs 0x00697461 + 2a94: 6f43206e svcvs 0x0043206e + 2a98: 6f72746e svcvs 0x0072746e + 2a9c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2aa0: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 2aa4: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 + 2aa8: 5c747369 ldclpl 3, cr7, [r4], #-420 + 2aac: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 2ab0: 67616964 strbvs r6, [r1, -r4, ror #18]! + 2ab4: 7075735f rsbsvc r7, r5, pc, asr r3 + 2ab8: 73657270 cmnvc r5, #7 ; 0x7 + 2abc: 65502073 ldrbvs r2, [r0, #-115] + 2ac0: 2c313539 cfldr32cs mvfx3, [r1], #-228 + 2ac4: 31316550 teqcc r1, r0, asr r5 + 2ac8: 65502c31 ldrbvs r2, [r0, #-3121] + 2acc: 20303439 eorscs r3, r0, r9, lsr r4 + 2ad0: 22206f2d eorcs r6, r0, #180 ; 0xb4 + 2ad4: 445c3a43 ldrbmi r3, [ip], #-2627 + 2ad8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2adc: 73746e65 cmnvc r4, #1616 ; 0x650 + 2ae0: 646e6120 strbtvs r6, [lr], #-288 + 2ae4: 74655320 strbtvc r5, [r5], #-800 + 2ae8: 676e6974 undefined + 2aec: 616d5c73 smcvs 54723 + 2af0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2af4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2af8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2afc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2b00: 775c7374 undefined + 2b04: 6f632d73 svcvs 0x00632d73 + 2b08: 6f72746e svcvs 0x0072746e + 2b0c: 65575c6c ldrbvs r5, [r7, #-3180] + 2b10: 65687461 strbvs r7, [r8, #-1121]! + 2b14: 74532072 ldrbvc r2, [r3], #-114 + 2b18: 6f697461 svcvs 0x00697461 + 2b1c: 6f43206e svcvs 0x0043206e + 2b20: 6f72746e svcvs 0x0072746e + 2b24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2b28: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 2b2c: 4f5c6775 svcmi 0x005c6775 + 2b30: 225c6a62 subscs r6, ip, #401408 ; 0x62000 + 2b34: 642d2d20 strtvs r2, [sp], #-3360 + 2b38: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 2b3c: 652d2d20 strvs r2, [sp, #-3360]! + 2b40: 6169646e cmnvs r9, lr, ror #8 + 2b44: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ + 2b48: 656c7474 strbvs r7, [ip, #-1140]! + 2b4c: 632d2d20 teqvs sp, #2048 ; 0x800 + 2b50: 413d7570 teqmi sp, r0, ror r5 + 2b54: 54374d52 ldrtpl r4, [r7], #-3410 + 2b58: 2d494d44 stclcs 13, cr4, [r9, #-272] + 2b5c: 652d2053 strvs r2, [sp, #-83]! + 2b60: 662d2d20 strtvs r2, [sp], -r0, lsr #26 + 2b64: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} + 2b68: 20656e6f rsbcs r6, r5, pc, ror #28 + 2b6c: 6c642d2d stclvs 13, cr2, [r4], #-180 + 2b70: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 + 2b74: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 2b78: 43222067 teqmi r2, #103 ; 0x67 + 2b7c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 2b80: 6172676f cmnvs r2, pc, ror #14 + 2b84: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 2b88: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 2b8c: 20524149 subscs r4, r2, r9, asr #2 + 2b90: 74737953 ldrbtvc r7, [r3], #-2387 + 2b94: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 2b98: 65626d45 strbvs r6, [r2, #-3397]! + 2b9c: 64656464 strbtvs r6, [r5], #-1124 + 2ba0: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 2ba4: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 2ba8: 35206863 strcc r6, [r0, #-2147]! + 2bac: 4b20342e blmi 80fc6c + 2bb0: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 2bb4: 74726174 ldrbtvc r6, [r2], #-372 + 2bb8: 6d72615c ldfvse f6, [r2, #-368]! + 2bbc: 434e495c movtmi r4, #59740 ; 0xe95c + 2bc0: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ + 2bc4: 6f435f62 svcvs 0x00435f62 + 2bc8: 6769666e strbvs r6, [r9, -lr, ror #12]! + 2bcc: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 + 2bd0: 2e6c616d powcsez f6, f4, #5.0 + 2bd4: 2d202268 sfmcs f2, 4, [r0, #-416]! + 2bd8: 43222049 teqmi r2, #73 ; 0x49 + 2bdc: 6f445c3a svcvs 0x00445c3a + 2be0: 656d7563 strbvs r7, [sp, #-1379]! + 2be4: 2073746e rsbscs r7, r3, lr, ror #8 + 2be8: 20646e61 rsbcs r6, r4, r1, ror #28 + 2bec: 74746553 ldrbtvc r6, [r4], #-1363 + 2bf0: 73676e69 cmnvc r7, #1680 ; 0x690 + 2bf4: 6c616d5c stclvs 13, cr6, [r1], #-368 + 2bf8: 61726976 cmnvs r2, r6, ror r9 + 2bfc: 20794d5c rsbscs r4, r9, ip, asr sp + 2c00: 75636f44 strbvc r6, [r3, #-3908]! + 2c04: 746e656d strbtvc r6, [lr], #-1389 + 2c08: 73775c73 cmnvc r7, #29440 ; 0x7300 + 2c0c: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 2c10: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2c14: 6165575c cmnvs r5, ip, asr r7 + 2c18: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2c1c: 61745320 cmnvs r4, r0, lsr #6 + 2c20: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2c24: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2c28: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2c2c: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2c30: 43414d53 movtmi r4, #7507 ; 0x1d53 + 2c34: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 2c38: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 2c3c: 746e495c strbtvc r4, [lr], #-2396 + 2c40: 61667265 cmnvs r6, r5, ror #4 + 2c44: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 2c48: 20492d20 subcs r2, r9, r0, lsr #26 + 2c4c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2c50: 75636f44 strbvc r6, [r3, #-3908]! + 2c54: 746e656d strbtvc r6, [lr], #-1389 + 2c58: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2c5c: 65532064 ldrbvs r2, [r3, #-100] + 2c60: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2c64: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2c68: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2c6c: 4d5c6172 ldfmie f6, [ip, #-456] + 2c70: 6f442079 svcvs 0x00442079 + 2c74: 656d7563 strbvs r7, [sp, #-1379]! + 2c78: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2c7c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2c80: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2c84: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2c88: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2c8c: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2c90: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2c94: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2c98: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2c9c: 656c6c6f strbvs r6, [ip, #-3183]! + 2ca0: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 + 2ca4: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} + 2ca8: 66726574 undefined + 2cac: 5c656361 stclpl 3, cr6, [r5], #-388 + 2cb0: 492d2022 pushmi {r1, r5, sp} + 2cb4: 3a432220 bcc 10cb53c + 2cb8: 6f72505c svcvs 0x0072505c + 2cbc: 6d617267 sfmvs f7, 2, [r1, #-412]! + 2cc0: 6c694620 stclvs 6, cr4, [r9], #-128 + 2cc4: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 2cc8: 53205241 teqpl r0, #268435460 ; 0x10000004 + 2ccc: 65747379 ldrbvs r7, [r4, #-889]! + 2cd0: 455c736d ldrbmi r7, [ip, #-877] + 2cd4: 6465626d strbtvs r6, [r5], #-621 + 2cd8: 20646564 rsbcs r6, r4, r4, ror #10 + 2cdc: 6b726f57 blvs 1c9ea40 + 2ce0: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 2ce4: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 2ce8: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 2cec: 74736b63 ldrbtvc r6, [r3], #-2915 + 2cf0: 5c747261 lfmpl f7, 2, [r4], #-388 + 2cf4: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 2cf8: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 2cfc: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 2d00: 65746e69 ldrbvs r6, [r4, #-3689]! + 2d04: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 2d08: 2d2d206b stccs 0, cr2, [sp, #-428]! + 2d0c: 5f757063 svcpl 0x00757063 + 2d10: 65646f6d strbvs r6, [r4, #-3949]! + 2d14: 75687420 strbvc r7, [r8, #-1056]! + 2d18: 2d20626d sfmcs f6, 4, [r0, #-436]! + 2d1c: 0000684f andeq r6, r0, pc, asr #16 + 2d20: 445c3a43 ldrbmi r3, [ip], #-2627 + 2d24: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2d28: 73746e65 cmnvc r4, #1616 ; 0x650 + 2d2c: 646e6120 strbtvs r6, [lr], #-288 + 2d30: 74655320 strbtvc r5, [r5], #-800 + 2d34: 676e6974 undefined + 2d38: 616d5c73 smcvs 54723 + 2d3c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 2d40: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 2d44: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 2d48: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 2d4c: 775c7374 undefined + 2d50: 6f632d73 svcvs 0x00632d73 + 2d54: 6f72746e svcvs 0x0072746e + 2d58: 65575c6c ldrbvs r5, [r7, #-3180] + 2d5c: 65687461 strbvs r7, [r8, #-1121]! + 2d60: 74532072 ldrbvc r2, [r3], #-114 + 2d64: 6f697461 svcvs 0x00697461 + 2d68: 6f43206e svcvs 0x0043206e + 2d6c: 6f72746e svcvs 0x0072746e + 2d70: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 2d74: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 2d78: 4f5c6775 svcmi 0x005c6775 + 2d7c: 535c6a62 cmppl ip, #401408 ; 0x62000 + 2d80: 72756365 rsbsvc r6, r5, #-1811939327 ; 0x94000001 + 2d84: 4d797469 cfldrdmi mvd7, [r9, #-420]! + 2d88: 6e6d676e cdpvs 7, 6, cr6, cr13, cr14, {3} + 2d8c: 3a6f2e74 bcc 1bce764 + 2d90: 41490000 cmpmi r9, r0 + 2d94: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 2d98: 43204953 teqmi r0, #1359872 ; 0x14c000 + 2d9c: 2b2b432f blcs ad3a60 + 2da0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 2da4: 656c6970 strbvs r6, [ip, #-2416]! + 2da8: 35562072 ldrbcc r2, [r6, #-114] + 2dac: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 2db0: 31332e32 teqcc r3, r2, lsr lr + 2db4: 2f353932 svccs 0x00353932 + 2db8: 20323357 eorscs r3, r2, r7, asr r3 + 2dbc: 4b43494b blmi 10d52f0 + 2dc0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 2dc4: 6f662054 svcvs 0x00662054 + 2dc8: 52412072 subpl r2, r1, #114 ; 0x72 + 2dcc: 4322004d teqmi r2, #77 ; 0x4d + 2dd0: 6f445c3a svcvs 0x00445c3a + 2dd4: 656d7563 strbvs r7, [sp, #-1379]! + 2dd8: 2073746e rsbscs r7, r3, lr, ror #8 + 2ddc: 20646e61 rsbcs r6, r4, r1, ror #28 + 2de0: 74746553 ldrbtvc r6, [r4], #-1363 + 2de4: 73676e69 cmnvc r7, #1680 ; 0x690 + 2de8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 2dec: 61726976 cmnvs r2, r6, ror r9 + 2df0: 20794d5c rsbscs r4, r9, ip, asr sp + 2df4: 75636f44 strbvc r6, [r3, #-3908]! + 2df8: 746e656d strbtvc r6, [lr], #-1389 + 2dfc: 73775c73 cmnvc r7, #29440 ; 0x7300 + 2e00: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 2e04: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2e08: 6165575c cmnvs r5, ip, asr r7 + 2e0c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 2e10: 61745320 cmnvs r4, r0, lsr #6 + 2e14: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 2e18: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 2e1c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 2e20: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 2e24: 43414d53 movtmi r4, #7507 ; 0x1d53 + 2e28: 756f535c strbvc r5, [pc, #-860]! ; 2ad4 <__USR_stack_size+0x22d4> + 2e2c: 5c656372 stclpl 3, cr6, [r5], #-456 + 2e30: 75636553 strbvc r6, [r3, #-1363]! + 2e34: 79746972 ldmdbvc r4!, {r1, r4, r5, r6, r8, fp, sp, lr}^ + 2e38: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 2e3c: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 2e40: 442d2022 strtmi r2, [sp], #-34 + 2e44: 34324620 ldrtcc r4, [r2], #-1568 + 2e48: 205a484d subscs r4, sl, sp, asr #16 + 2e4c: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 2e50: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 2e54: 5f595449 svcpl 0x00595449 + 2e58: 42414e45 submi r4, r1, #1104 ; 0x450 + 2e5c: 2044454c subcs r4, r4, ip, asr #10 + 2e60: 20436c2d subcs r6, r3, sp, lsr #24 + 2e64: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2e68: 75636f44 strbvc r6, [r3, #-3908]! + 2e6c: 746e656d strbtvc r6, [lr], #-1389 + 2e70: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2e74: 65532064 ldrbvs r2, [r3, #-100] + 2e78: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2e7c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2e80: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2e84: 4d5c6172 ldfmie f6, [ip, #-456] + 2e88: 6f442079 svcvs 0x00442079 + 2e8c: 656d7563 strbvs r7, [sp, #-1379]! + 2e90: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2e94: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2e98: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2e9c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2ea0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2ea4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2ea8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2eac: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2eb0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2eb4: 656c6c6f strbvs r6, [ip, #-3183]! + 2eb8: 65445c72 strbvs r5, [r4, #-3186] + 2ebc: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 2ec0: 7473694c ldrbtvc r6, [r3], #-2380 + 2ec4: 2d20225c sfmcs f2, 4, [r0, #-368]! + 2ec8: 6169642d cmnvs r9, sp, lsr #8 + 2ecc: 75735f67 ldrbvc r5, [r3, #-3943]! + 2ed0: 65727070 ldrbvs r7, [r2, #-112]! + 2ed4: 50207373 eorpl r7, r0, r3, ror r3 + 2ed8: 31353965 teqcc r5, r5, ror #18 + 2edc: 3165502c cmncc r5, ip, lsr #32 + 2ee0: 502c3131 eorpl r3, ip, r1, lsr r1 + 2ee4: 30343965 eorscc r3, r4, r5, ror #18 + 2ee8: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 2eec: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 2ef0: 75636f44 strbvc r6, [r3, #-3908]! + 2ef4: 746e656d strbtvc r6, [lr], #-1389 + 2ef8: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 2efc: 65532064 ldrbvs r2, [r3, #-100] + 2f00: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 2f04: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 2f08: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 2f0c: 4d5c6172 ldfmie f6, [ip, #-456] + 2f10: 6f442079 svcvs 0x00442079 + 2f14: 656d7563 strbvs r7, [sp, #-1379]! + 2f18: 5c73746e cfldrdpl mvd7, [r3], #-440 + 2f1c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 2f20: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2f24: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 2f28: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 2f2c: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 2f30: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 2f34: 43206e6f teqmi r0, #1776 ; 0x6f0 + 2f38: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 2f3c: 656c6c6f strbvs r6, [ip, #-3183]! + 2f40: 65445c72 strbvs r5, [r4, #-3186] + 2f44: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 2f48: 5c6a624f sfmpl f6, 2, [sl], #-316 + 2f4c: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 2f50: 75626564 strbvc r6, [r2, #-1380]! + 2f54: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 2f58: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 2f5c: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 2f60: 6c747469 cfldrdvs mvd7, [r4], #-420 + 2f64: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 2f68: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 2f6c: 374d5241 strbcc r5, [sp, -r1, asr #4] + 2f70: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 2f74: 2d20532d stccs 3, cr5, [r0, #-180]! + 2f78: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 2f7c: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 2f80: 656e6f4e strbvs r6, [lr, #-3918]! + 2f84: 642d2d20 strtvs r2, [sp], #-3360 + 2f88: 5f62696c svcpl 0x0062696c + 2f8c: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 2f90: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 2f94: 505c3a43 subspl r3, ip, r3, asr #20 + 2f98: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 2f9c: 46206d61 strtmi r6, [r0], -r1, ror #26 + 2fa0: 73656c69 cmnvc r5, #26880 ; 0x6900 + 2fa4: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 2fa8: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 2fac: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 2fb0: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 2fb4: 65646465 strbvs r6, [r4, #-1125]! + 2fb8: 6f572064 svcvs 0x00572064 + 2fbc: 65626b72 strbvs r6, [r2, #-2930]! + 2fc0: 2068636e rsbcs r6, r8, lr, ror #6 + 2fc4: 20342e35 eorscs r2, r4, r5, lsr lr + 2fc8: 6b63694b blvs 18dd4fc + 2fcc: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 2fd0: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 2fd4: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 2fd8: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 2fdc: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 2fe0: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 2fe4: 6f4e5f67 svcvs 0x004e5f67 + 2fe8: 6c616d72 stclvs 13, cr6, [r1], #-456 + 2fec: 2022682e eorcs r6, r2, lr, lsr #16 + 2ff0: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 2ff4: 445c3a43 ldrbmi r3, [ip], #-2627 + 2ff8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 2ffc: 73746e65 cmnvc r4, #1616 ; 0x650 + 3000: 646e6120 strbtvs r6, [lr], #-288 + 3004: 74655320 strbtvc r5, [r5], #-800 + 3008: 676e6974 undefined + 300c: 616d5c73 smcvs 54723 + 3010: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3014: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3018: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 301c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3020: 775c7374 undefined + 3024: 6f632d73 svcvs 0x00632d73 + 3028: 6f72746e svcvs 0x0072746e + 302c: 65575c6c ldrbvs r5, [r7, #-3180] + 3030: 65687461 strbvs r7, [r8, #-1121]! + 3034: 74532072 ldrbvc r2, [r3], #-114 + 3038: 6f697461 svcvs 0x00697461 + 303c: 6f43206e svcvs 0x0043206e + 3040: 6f72746e svcvs 0x0072746e + 3044: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3048: 414d535c cmpmi sp, ip, asr r3 + 304c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 3050: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3054: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 3058: 66726574 undefined + 305c: 5c656361 stclpl 3, cr6, [r5], #-388 + 3060: 492d2022 pushmi {r1, r5, sp} + 3064: 3a432220 bcc 10cb8ec + 3068: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 306c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3070: 61207374 teqvs r0, r4, ror r3 + 3074: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3078: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 307c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3080: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3084: 5c617269 sfmpl f7, 2, [r1], #-420 + 3088: 4420794d strtmi r7, [r0], #-2381 + 308c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3090: 73746e65 cmnvc r4, #1616 ; 0x650 + 3094: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3098: 746e6f63 strbtvc r6, [lr], #-3939 + 309c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 30a0: 74616557 strbtvc r6, [r1], #-1367 + 30a4: 20726568 rsbscs r6, r2, r8, ror #10 + 30a8: 74617453 strbtvc r7, [r1], #-1107 + 30ac: 206e6f69 rsbcs r6, lr, r9, ror #30 + 30b0: 746e6f43 strbtvc r6, [lr], #-3907 + 30b4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 30b8: 505c7265 subspl r7, ip, r5, ror #4 + 30bc: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 30c0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 30c4: 65636166 strbvs r6, [r3, #-358]! + 30c8: 2d20225c sfmcs f2, 4, [r0, #-368]! + 30cc: 43222049 teqmi r2, #73 ; 0x49 + 30d0: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 30d4: 6172676f cmnvs r2, pc, ror #14 + 30d8: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 30dc: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 30e0: 20524149 subscs r4, r2, r9, asr #2 + 30e4: 74737953 ldrbtvc r7, [r3], #-2387 + 30e8: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 30ec: 65626d45 strbvs r6, [r2, #-3397]! + 30f0: 64656464 strbtvs r6, [r5], #-1124 + 30f4: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 30f8: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 30fc: 35206863 strcc r6, [r0, #-2147]! + 3100: 4b20342e blmi 8101c0 + 3104: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 3108: 74726174 ldrbtvc r6, [r2], #-372 + 310c: 6d72615c ldfvse f6, [r2, #-368]! + 3110: 434e495c movtmi r4, #59740 ; 0xe95c + 3114: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3118: 746e692d strbtvc r6, [lr], #-2349 + 311c: 6f777265 svcvs 0x00777265 + 3120: 2d206b72 vstmdbcs r0!, {d6-} + 3124: 7570632d ldrbvc r6, [r0, #-813]! + 3128: 646f6d5f strbtvs r6, [pc], #3423 ; 3130 + 312c: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 3130: 20626d75 rsbcs r6, r2, r5, ror sp + 3134: 00684f2d rsbeq r4, r8, sp, lsr #30 + 3138: 5c3a4300 ldcpl 3, cr4, [sl] + 313c: 75636f44 strbvc r6, [r3, #-3908]! + 3140: 746e656d strbtvc r6, [lr], #-1389 + 3144: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3148: 65532064 ldrbvs r2, [r3, #-100] + 314c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3150: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3154: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3158: 4d5c6172 ldfmie f6, [ip, #-456] + 315c: 6f442079 svcvs 0x00442079 + 3160: 656d7563 strbvs r7, [sp, #-1379]! + 3164: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3168: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 316c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3170: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3174: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3178: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 317c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3180: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3184: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3188: 656c6c6f strbvs r6, [ip, #-3183]! + 318c: 65445c72 strbvs r5, [r4, #-3186] + 3190: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 3194: 5c6a624f sfmpl f6, 2, [sl], #-316 + 3198: 6e756f53 mrcvs 15, 3, r6, cr5, cr3, {2} + 319c: 3a6f2e64 bcc 1bceb34 + 31a0: 41490000 cmpmi r9, r0 + 31a4: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 31a8: 43204953 teqmi r0, #1359872 ; 0x14c000 + 31ac: 2b2b432f blcs ad3e70 + 31b0: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 31b4: 656c6970 strbvs r6, [ip, #-2416]! + 31b8: 35562072 ldrbcc r2, [r6, #-114] + 31bc: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 31c0: 31332e32 teqcc r3, r2, lsr lr + 31c4: 2f353932 svccs 0x00353932 + 31c8: 20323357 eorscs r3, r2, r7, asr r3 + 31cc: 4b43494b blmi 10d5700 + 31d0: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 31d4: 6f662054 svcvs 0x00662054 + 31d8: 52412072 subpl r2, r1, #114 ; 0x72 + 31dc: 4322004d teqmi r2, #77 ; 0x4d + 31e0: 6f445c3a svcvs 0x00445c3a + 31e4: 656d7563 strbvs r7, [sp, #-1379]! + 31e8: 2073746e rsbscs r7, r3, lr, ror #8 + 31ec: 20646e61 rsbcs r6, r4, r1, ror #28 + 31f0: 74746553 ldrbtvc r6, [r4], #-1363 + 31f4: 73676e69 cmnvc r7, #1680 ; 0x690 + 31f8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 31fc: 61726976 cmnvs r2, r6, ror r9 + 3200: 20794d5c rsbscs r4, r9, ip, asr sp + 3204: 75636f44 strbvc r6, [r3, #-3908]! + 3208: 746e656d strbtvc r6, [lr], #-1389 + 320c: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3210: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 3214: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3218: 6165575c cmnvs r5, ip, asr r7 + 321c: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3220: 61745320 cmnvs r4, r0, lsr #6 + 3224: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3228: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 322c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3230: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 3234: 6c707041 ldclvs 0, cr7, [r0], #-260 + 3238: 74616369 strbtvc r6, [r1], #-873 + 323c: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 3240: 6c697455 cfstrdvs mvd7, [r9], #-340 + 3244: 65697469 strbvs r7, [r9, #-1129]! + 3248: 6f535c73 svcvs 0x00535c73 + 324c: 2e646e75 mcrcs 14, 3, r6, cr4, cr5, {3} + 3250: 2d202263 sfmcs f2, 4, [r0, #-396]! + 3254: 32462044 subcc r2, r6, #68 ; 0x44 + 3258: 5a484d34 bpl 1216730 + 325c: 20442d20 subcs r2, r4, r0, lsr #26 + 3260: 55434553 strbpl r4, [r3, #-1363] + 3264: 59544952 ldmdbpl r4, {r1, r4, r6, r8, fp, lr}^ + 3268: 414e455f cmpmi lr, pc, asr r5 + 326c: 44454c42 strbmi r4, [r5], #-3138 + 3270: 436c2d20 cmnmi ip, #2048 ; 0x800 + 3274: 3a432220 bcc 10cbafc + 3278: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 327c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3280: 61207374 teqvs r0, r4, ror r3 + 3284: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3288: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 328c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3290: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3294: 5c617269 sfmpl f7, 2, [r1], #-420 + 3298: 4420794d strtmi r7, [r0], #-2381 + 329c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 32a0: 73746e65 cmnvc r4, #1616 ; 0x650 + 32a4: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 32a8: 746e6f63 strbtvc r6, [lr], #-3939 + 32ac: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 32b0: 74616557 strbtvc r6, [r1], #-1367 + 32b4: 20726568 rsbscs r6, r2, r8, ror #10 + 32b8: 74617453 strbtvc r7, [r1], #-1107 + 32bc: 206e6f69 rsbcs r6, lr, r9, ror #30 + 32c0: 746e6f43 strbtvc r6, [lr], #-3907 + 32c4: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 32c8: 445c7265 ldrbmi r7, [ip], #-613 + 32cc: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 32d0: 73694c5c cmnvc r9, #23552 ; 0x5c00 + 32d4: 20225c74 eorcs r5, r2, r4, ror ip + 32d8: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 32dc: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 32e0: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 32e4: 20737365 rsbscs r7, r3, r5, ror #6 + 32e8: 35396550 ldrcc r6, [r9, #-1360]! + 32ec: 65502c31 ldrbvs r2, [r0, #-3121] + 32f0: 2c313131 ldfcss f3, [r1], #-196 + 32f4: 34396550 ldrtcc r6, [r9], #-1360 + 32f8: 6f2d2030 svcvs 0x002d2030 + 32fc: 3a432220 bcc 10cbb84 + 3300: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3304: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3308: 61207374 teqvs r0, r4, ror r3 + 330c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3310: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3314: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3318: 766c616d strbtvc r6, [ip], -sp, ror #2 + 331c: 5c617269 sfmpl f7, 2, [r1], #-420 + 3320: 4420794d strtmi r7, [r0], #-2381 + 3324: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3328: 73746e65 cmnvc r4, #1616 ; 0x650 + 332c: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3330: 746e6f63 strbtvc r6, [lr], #-3939 + 3334: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3338: 74616557 strbtvc r6, [r1], #-1367 + 333c: 20726568 rsbscs r6, r2, r8, ror #10 + 3340: 74617453 strbtvc r7, [r1], #-1107 + 3344: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3348: 746e6f43 strbtvc r6, [lr], #-3907 + 334c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3350: 445c7265 ldrbmi r7, [ip], #-613 + 3354: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 3358: 6a624f5c bvs 18970d0 + 335c: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3360: 6265642d rsbvs r6, r5, #754974720 ; 0x2d000000 + 3364: 2d206775 stccs 7, cr6, [r0, #-468]! + 3368: 646e652d strbtvs r6, [lr], #-1325 + 336c: 3d6e6169 stfcce f6, [lr, #-420]! + 3370: 7474696c ldrbtvc r6, [r4], #-2412 + 3374: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 3378: 7570632d ldrbvc r6, [r0, #-813]! + 337c: 4d52413d ldfmie f4, [r2, #-244] + 3380: 4d445437 cfstrdmi mvd5, [r4, #-220] + 3384: 20532d49 subscs r2, r3, r9, asr #26 + 3388: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 338c: 7570662d ldrbvc r6, [r0, #-1581]! + 3390: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 3394: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 3398: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 339c: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 33a0: 20676966 rsbcs r6, r7, r6, ror #18 + 33a4: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 33a8: 676f7250 undefined + 33ac: 206d6172 rsbcs r6, sp, r2, ror r1 + 33b0: 656c6946 strbvs r6, [ip, #-2374]! + 33b4: 41495c73 cmpmi r9, r3, ror ip + 33b8: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + 33bc: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 33c0: 6d455c73 stclvs 12, cr5, [r5, #-460] + 33c4: 64646562 strbtvs r6, [r4], #-1378 + 33c8: 57206465 strpl r6, [r0, -r5, ror #8]! + 33cc: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + 33d0: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 33d4: 342e3520 strtcc r3, [lr], #-1312 + 33d8: 63694b20 cmnvs r9, #32768 ; 0x8000 + 33dc: 6174736b cmnvs r4, fp, ror #6 + 33e0: 615c7472 cmpvs ip, r2, ror r4 + 33e4: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 33e8: 445c434e ldrbmi r4, [ip], #-846 + 33ec: 5f62694c svcpl 0x0062694c + 33f0: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 33f4: 4e5f6769 cdpmi 7, 5, cr6, cr15, cr9, {3} + 33f8: 616d726f cmnvs sp, pc, ror #4 + 33fc: 22682e6c rsbcs r2, r8, #1728 ; 0x6c0 + 3400: 20492d20 subcs r2, r9, r0, lsr #26 + 3404: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 3408: 75636f44 strbvc r6, [r3, #-3908]! + 340c: 746e656d strbtvc r6, [lr], #-1389 + 3410: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3414: 65532064 ldrbvs r2, [r3, #-100] + 3418: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 341c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3420: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3424: 4d5c6172 ldfmie f6, [ip, #-456] + 3428: 6f442079 svcvs 0x00442079 + 342c: 656d7563 strbvs r7, [sp, #-1379]! + 3430: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3434: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 3438: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 343c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3440: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3444: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 3448: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 344c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3450: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3454: 656c6c6f strbvs r6, [ip, #-3183]! + 3458: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 345c: 445c4341 ldrbmi r4, [ip], #-833 + 3460: 65766972 ldrbvs r6, [r6, #-2418]! + 3464: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 3468: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 346c: 65636166 strbvs r6, [r3, #-358]! + 3470: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3474: 43222049 teqmi r2, #73 ; 0x49 + 3478: 6f445c3a svcvs 0x00445c3a + 347c: 656d7563 strbvs r7, [sp, #-1379]! + 3480: 2073746e rsbscs r7, r3, lr, ror #8 + 3484: 20646e61 rsbcs r6, r4, r1, ror #28 + 3488: 74746553 ldrbtvc r6, [r4], #-1363 + 348c: 73676e69 cmnvc r7, #1680 ; 0x690 + 3490: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3494: 61726976 cmnvs r2, r6, ror r9 + 3498: 20794d5c rsbscs r4, r9, ip, asr sp + 349c: 75636f44 strbvc r6, [r3, #-3908]! + 34a0: 746e656d strbtvc r6, [lr], #-1389 + 34a4: 73775c73 cmnvc r7, #29440 ; 0x7300 + 34a8: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 34ac: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 34b0: 6165575c cmnvs r5, ip, asr r7 + 34b4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 34b8: 61745320 cmnvs r4, r0, lsr #6 + 34bc: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 34c0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 34c4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 34c8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 34cc: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 34d0: 65746e49 ldrbvs r6, [r4, #-3657]! + 34d4: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 34d8: 20225c65 eorcs r5, r2, r5, ror #24 + 34dc: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 34e0: 505c3a43 subspl r3, ip, r3, asr #20 + 34e4: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 34e8: 46206d61 strtmi r6, [r0], -r1, ror #26 + 34ec: 73656c69 cmnvc r5, #26880 ; 0x6900 + 34f0: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 34f4: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 34f8: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 34fc: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 3500: 65646465 strbvs r6, [r4, #-1125]! + 3504: 6f572064 svcvs 0x00572064 + 3508: 65626b72 strbvs r6, [r2, #-2930]! + 350c: 2068636e rsbcs r6, r8, lr, ror #6 + 3510: 20342e35 eorscs r2, r4, r5, lsr lr + 3514: 6b63694b blvs 18dda48 + 3518: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 351c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 3520: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 3524: 20225c43 eorcs r5, r2, r3, asr #24 + 3528: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 352c: 77726574 undefined + 3530: 206b726f rsbcs r7, fp, pc, ror #4 + 3534: 70632d2d rsbvc r2, r3, sp, lsr #26 + 3538: 6f6d5f75 svcvs 0x006d5f75 + 353c: 74206564 strtvc r6, [r0], #-1380 + 3540: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 3544: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 3548: 3a430000 bcc 10c3550 + 354c: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3550: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3554: 61207374 teqvs r0, r4, ror r3 + 3558: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 355c: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3560: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3564: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3568: 5c617269 sfmpl f7, 2, [r1], #-420 + 356c: 4420794d strtmi r7, [r0], #-2381 + 3570: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3574: 73746e65 cmnvc r4, #1616 ; 0x650 + 3578: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 357c: 746e6f63 strbtvc r6, [lr], #-3939 + 3580: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3584: 74616557 strbtvc r6, [r1], #-1367 + 3588: 20726568 rsbscs r6, r2, r8, ror #10 + 358c: 74617453 strbtvc r7, [r1], #-1107 + 3590: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3594: 746e6f43 strbtvc r6, [lr], #-3907 + 3598: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 359c: 445c7265 ldrbmi r7, [ip], #-613 + 35a0: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 35a4: 6a624f5c bvs 189731c + 35a8: 6172545c cmnvs r2, ip, asr r4 + 35ac: 6563736e strbvs r7, [r3, #-878]! + 35b0: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 35b4: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 35b8: 6e4d6769 cdpvs 7, 4, cr6, cr13, cr9, {3} + 35bc: 746e6d67 strbtvc r6, [lr], #-3431 + 35c0: 003a6f2e eorseq r6, sl, lr, lsr #30 + 35c4: 52414900 subpl r4, r1, #0 ; 0x0 + 35c8: 534e4120 movtpl r4, #57632 ; 0xe120 + 35cc: 2f432049 svccs 0x00432049 + 35d0: 202b2b43 eorcs r2, fp, r3, asr #22 + 35d4: 706d6f43 rsbvc r6, sp, r3, asr #30 + 35d8: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 35dc: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 35e0: 322e3033 eorcc r3, lr, #51 ; 0x33 + 35e4: 3231332e eorscc r3, r1, #-1207959552 ; 0xb8000000 + 35e8: 572f3539 undefined + 35ec: 4b203233 blmi 80fec0 + 35f0: 534b4349 movtpl r4, #45897 ; 0xb349 + 35f4: 54524154 ldrbpl r4, [r2], #-340 + 35f8: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 35fc: 4d524120 ldfmie f4, [r2, #-128] + 3600: 3a432200 bcc 10cbe08 + 3604: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3608: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 360c: 61207374 teqvs r0, r4, ror r3 + 3610: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3614: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3618: 5c73676e ldclpl 7, cr6, [r3], #-440 + 361c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3620: 5c617269 sfmpl f7, 2, [r1], #-420 + 3624: 4420794d strtmi r7, [r0], #-2381 + 3628: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 362c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3630: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3634: 746e6f63 strbtvc r6, [lr], #-3939 + 3638: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 363c: 74616557 strbtvc r6, [r1], #-1367 + 3640: 20726568 rsbscs r6, r2, r8, ror #10 + 3644: 74617453 strbtvc r7, [r1], #-1107 + 3648: 206e6f69 rsbcs r6, lr, r9, ror #30 + 364c: 746e6f43 strbtvc r6, [lr], #-3907 + 3650: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3654: 535c7265 cmppl ip, #1342177286 ; 0x50000006 + 3658: 5c43414d stfple f4, [r3], {77} + 365c: 72756f53 rsbsvc r6, r5, #332 ; 0x14c + 3660: 545c6563 ldrbpl r6, [ip], #-1379 + 3664: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 3668: 76696563 strbtvc r6, [r9], -r3, ror #10 + 366c: 6f437265 svcvs 0x00437265 + 3670: 6769666e strbvs r6, [r9, -lr, ror #12]! + 3674: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 3678: 632e746e teqvs lr, #1845493760 ; 0x6e000000 + 367c: 442d2022 strtmi r2, [sp], #-34 + 3680: 34324620 ldrtcc r4, [r2], #-1568 + 3684: 205a484d subscs r4, sl, sp, asr #16 + 3688: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 368c: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 3690: 5f595449 svcpl 0x00595449 + 3694: 42414e45 submi r4, r1, #1104 ; 0x450 + 3698: 2044454c subcs r4, r4, ip, asr #10 + 369c: 20436c2d subcs r6, r3, sp, lsr #24 + 36a0: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 36a4: 75636f44 strbvc r6, [r3, #-3908]! + 36a8: 746e656d strbtvc r6, [lr], #-1389 + 36ac: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 36b0: 65532064 ldrbvs r2, [r3, #-100] + 36b4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 36b8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 36bc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 36c0: 4d5c6172 ldfmie f6, [ip, #-456] + 36c4: 6f442079 svcvs 0x00442079 + 36c8: 656d7563 strbvs r7, [sp, #-1379]! + 36cc: 5c73746e cfldrdpl mvd7, [r3], #-440 + 36d0: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 36d4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 36d8: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 36dc: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 36e0: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 36e4: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 36e8: 43206e6f teqmi r0, #1776 ; 0x6f0 + 36ec: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 36f0: 656c6c6f strbvs r6, [ip, #-3183]! + 36f4: 65445c72 strbvs r5, [r4, #-3186] + 36f8: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 36fc: 7473694c ldrbtvc r6, [r3], #-2380 + 3700: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3704: 6169642d cmnvs r9, sp, lsr #8 + 3708: 75735f67 ldrbvc r5, [r3, #-3943]! + 370c: 65727070 ldrbvs r7, [r2, #-112]! + 3710: 50207373 eorpl r7, r0, r3, ror r3 + 3714: 31353965 teqcc r5, r5, ror #18 + 3718: 3165502c cmncc r5, ip, lsr #32 + 371c: 502c3131 eorpl r3, ip, r1, lsr r1 + 3720: 30343965 eorscc r3, r4, r5, ror #18 + 3724: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 3728: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 372c: 75636f44 strbvc r6, [r3, #-3908]! + 3730: 746e656d strbtvc r6, [lr], #-1389 + 3734: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3738: 65532064 ldrbvs r2, [r3, #-100] + 373c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3740: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3744: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3748: 4d5c6172 ldfmie f6, [ip, #-456] + 374c: 6f442079 svcvs 0x00442079 + 3750: 656d7563 strbvs r7, [sp, #-1379]! + 3754: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3758: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 375c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3760: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3764: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3768: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 376c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3770: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3774: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3778: 656c6c6f strbvs r6, [ip, #-3183]! + 377c: 65445c72 strbvs r5, [r4, #-3186] + 3780: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 3784: 5c6a624f sfmpl f6, 2, [sl], #-316 + 3788: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 378c: 75626564 strbvc r6, [r2, #-1380]! + 3790: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 3794: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 3798: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 379c: 6c747469 cfldrdvs mvd7, [r4], #-420 + 37a0: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 37a4: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 37a8: 374d5241 strbcc r5, [sp, -r1, asr #4] + 37ac: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 37b0: 2d20532d stccs 3, cr5, [r0, #-180]! + 37b4: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 37b8: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 37bc: 656e6f4e strbvs r6, [lr, #-3918]! + 37c0: 642d2d20 strtvs r2, [sp], #-3360 + 37c4: 5f62696c svcpl 0x0062696c + 37c8: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 37cc: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 37d0: 505c3a43 subspl r3, ip, r3, asr #20 + 37d4: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 37d8: 46206d61 strtmi r6, [r0], -r1, ror #26 + 37dc: 73656c69 cmnvc r5, #26880 ; 0x6900 + 37e0: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 37e4: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 37e8: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 37ec: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 37f0: 65646465 strbvs r6, [r4, #-1125]! + 37f4: 6f572064 svcvs 0x00572064 + 37f8: 65626b72 strbvs r6, [r2, #-2930]! + 37fc: 2068636e rsbcs r6, r8, lr, ror #6 + 3800: 20342e35 eorscs r2, r4, r5, lsr lr + 3804: 6b63694b blvs 18ddd38 + 3808: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 380c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 3810: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 3814: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 3818: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 381c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 3820: 6f4e5f67 svcvs 0x004e5f67 + 3824: 6c616d72 stclvs 13, cr6, [r1], #-456 + 3828: 2022682e eorcs r6, r2, lr, lsr #16 + 382c: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 3830: 445c3a43 ldrbmi r3, [ip], #-2627 + 3834: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3838: 73746e65 cmnvc r4, #1616 ; 0x650 + 383c: 646e6120 strbtvs r6, [lr], #-288 + 3840: 74655320 strbtvc r5, [r5], #-800 + 3844: 676e6974 undefined + 3848: 616d5c73 smcvs 54723 + 384c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3850: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3854: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3858: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 385c: 775c7374 undefined + 3860: 6f632d73 svcvs 0x00632d73 + 3864: 6f72746e svcvs 0x0072746e + 3868: 65575c6c ldrbvs r5, [r7, #-3180] + 386c: 65687461 strbvs r7, [r8, #-1121]! + 3870: 74532072 ldrbvc r2, [r3], #-114 + 3874: 6f697461 svcvs 0x00697461 + 3878: 6f43206e svcvs 0x0043206e + 387c: 6f72746e svcvs 0x0072746e + 3880: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3884: 414d535c cmpmi sp, ip, asr r3 + 3888: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 388c: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3890: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 3894: 66726574 undefined + 3898: 5c656361 stclpl 3, cr6, [r5], #-388 + 389c: 492d2022 pushmi {r1, r5, sp} + 38a0: 3a432220 bcc 10cc128 + 38a4: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 38a8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 38ac: 61207374 teqvs r0, r4, ror r3 + 38b0: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 38b4: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 38b8: 5c73676e ldclpl 7, cr6, [r3], #-440 + 38bc: 766c616d strbtvc r6, [ip], -sp, ror #2 + 38c0: 5c617269 sfmpl f7, 2, [r1], #-420 + 38c4: 4420794d strtmi r7, [r0], #-2381 + 38c8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 38cc: 73746e65 cmnvc r4, #1616 ; 0x650 + 38d0: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 38d4: 746e6f63 strbtvc r6, [lr], #-3939 + 38d8: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 38dc: 74616557 strbtvc r6, [r1], #-1367 + 38e0: 20726568 rsbscs r6, r2, r8, ror #10 + 38e4: 74617453 strbtvc r7, [r1], #-1107 + 38e8: 206e6f69 rsbcs r6, lr, r9, ror #30 + 38ec: 746e6f43 strbtvc r6, [lr], #-3907 + 38f0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 38f4: 505c7265 subspl r7, ip, r5, ror #4 + 38f8: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 38fc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 3900: 65636166 strbvs r6, [r3, #-358]! + 3904: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3908: 43222049 teqmi r2, #73 ; 0x49 + 390c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 3910: 6172676f cmnvs r2, pc, ror #14 + 3914: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 3918: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 391c: 20524149 subscs r4, r2, r9, asr #2 + 3920: 74737953 ldrbtvc r7, [r3], #-2387 + 3924: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 3928: 65626d45 strbvs r6, [r2, #-3397]! + 392c: 64656464 strbtvs r6, [r5], #-1124 + 3930: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 3934: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 3938: 35206863 strcc r6, [r0, #-2147]! + 393c: 4b20342e blmi 8109fc + 3940: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 3944: 74726174 ldrbtvc r6, [r2], #-372 + 3948: 6d72615c ldfvse f6, [r2, #-368]! + 394c: 434e495c movtmi r4, #59740 ; 0xe95c + 3950: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3954: 746e692d strbtvc r6, [lr], #-2349 + 3958: 6f777265 svcvs 0x00777265 + 395c: 2d206b72 vstmdbcs r0!, {d6-} + 3960: 7570632d ldrbvc r6, [r0, #-813]! + 3964: 646f6d5f strbtvs r6, [pc], #3423 ; 396c + 3968: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 396c: 20626d75 rsbcs r6, r2, r5, ror sp + 3970: 00684f2d rsbeq r4, r8, sp, lsr #30 + 3974: 5c3a4300 ldcpl 3, cr4, [sl] + 3978: 75636f44 strbvc r6, [r3, #-3908]! + 397c: 746e656d strbtvc r6, [lr], #-1389 + 3980: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3984: 65532064 ldrbvs r2, [r3, #-100] + 3988: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 398c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3990: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3994: 4d5c6172 ldfmie f6, [ip, #-456] + 3998: 6f442079 svcvs 0x00442079 + 399c: 656d7563 strbvs r7, [sp, #-1379]! + 39a0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 39a4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 39a8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 39ac: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 39b0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 39b4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 39b8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 39bc: 43206e6f teqmi r0, #1776 ; 0x6f0 + 39c0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 39c4: 656c6c6f strbvs r6, [ip, #-3183]! + 39c8: 65445c72 strbvs r5, [r4, #-3186] + 39cc: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 39d0: 5c6a624f sfmpl f6, 2, [sl], #-316 + 39d4: 6e617254 mcrvs 2, 3, r7, cr1, cr4, {2} + 39d8: 69656373 stmdbvs r5!, {r0, r1, r4, r5, r6, r8, r9, sp, lr}^ + 39dc: 50726576 rsbspl r6, r2, r6, ror r5 + 39e0: 7265776f rsbvc r7, r5, #29097984 ; 0x1bc0000 + 39e4: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 39e8: 6f2e746e svcvs 0x002e746e + 39ec: 4900003a stmdbmi r0, {r1, r3, r4, r5} + 39f0: 41205241 teqmi r0, r1, asr #4 + 39f4: 2049534e subcs r5, r9, lr, asr #6 + 39f8: 2b432f43 blcs 10cf70c + 39fc: 6f43202b svcvs 0x0043202b + 3a00: 6c69706d stclvs 0, cr7, [r9], #-436 + 3a04: 56207265 strtpl r7, [r0], -r5, ror #4 + 3a08: 30332e35 eorscc r2, r3, r5, lsr lr + 3a0c: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 3a10: 35393231 ldrcc r3, [r9, #-561]! + 3a14: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 3a18: 43494b20 movtmi r4, #39712 ; 0x9b20 + 3a1c: 4154534b cmpmi r4, fp, asr #6 + 3a20: 66205452 undefined + 3a24: 4120726f teqmi r0, pc, ror #4 + 3a28: 22004d52 andcs r4, r0, #5248 ; 0x1480 + 3a2c: 445c3a43 ldrbmi r3, [ip], #-2627 + 3a30: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3a34: 73746e65 cmnvc r4, #1616 ; 0x650 + 3a38: 646e6120 strbtvs r6, [lr], #-288 + 3a3c: 74655320 strbtvc r5, [r5], #-800 + 3a40: 676e6974 undefined + 3a44: 616d5c73 smcvs 54723 + 3a48: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 3a4c: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 3a50: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 3a54: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3a58: 775c7374 undefined + 3a5c: 6f632d73 svcvs 0x00632d73 + 3a60: 6f72746e svcvs 0x0072746e + 3a64: 65575c6c ldrbvs r5, [r7, #-3180] + 3a68: 65687461 strbvs r7, [r8, #-1121]! + 3a6c: 74532072 ldrbvc r2, [r3], #-114 + 3a70: 6f697461 svcvs 0x00697461 + 3a74: 6f43206e svcvs 0x0043206e + 3a78: 6f72746e svcvs 0x0072746e + 3a7c: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 3a80: 414d535c cmpmi sp, ip, asr r3 + 3a84: 6f535c43 svcvs 0x00535c43 + 3a88: 65637275 strbvs r7, [r3, #-629]! + 3a8c: 6172545c cmnvs r2, ip, asr r4 + 3a90: 6563736e strbvs r7, [r3, #-878]! + 3a94: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 3a98: 65776f50 ldrbvs r6, [r7, #-3920]! + 3a9c: 676e4d72 undefined + 3aa0: 2e746e6d cdpcs 14, 7, cr6, cr4, cr13, {3} + 3aa4: 2d202263 sfmcs f2, 4, [r0, #-396]! + 3aa8: 32462044 subcc r2, r6, #68 ; 0x44 + 3aac: 5a484d34 bpl 1216f84 + 3ab0: 20442d20 subcs r2, r4, r0, lsr #26 + 3ab4: 55434553 strbpl r4, [r3, #-1363] + 3ab8: 59544952 ldmdbpl r4, {r1, r4, r6, r8, fp, lr}^ + 3abc: 414e455f cmpmi lr, pc, asr r5 + 3ac0: 44454c42 strbmi r4, [r5], #-3138 + 3ac4: 436c2d20 cmnmi ip, #2048 ; 0x800 + 3ac8: 3a432220 bcc 10cc350 + 3acc: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3ad0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3ad4: 61207374 teqvs r0, r4, ror r3 + 3ad8: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3adc: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3ae0: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3ae4: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3ae8: 5c617269 sfmpl f7, 2, [r1], #-420 + 3aec: 4420794d strtmi r7, [r0], #-2381 + 3af0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3af4: 73746e65 cmnvc r4, #1616 ; 0x650 + 3af8: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3afc: 746e6f63 strbtvc r6, [lr], #-3939 + 3b00: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3b04: 74616557 strbtvc r6, [r1], #-1367 + 3b08: 20726568 rsbscs r6, r2, r8, ror #10 + 3b0c: 74617453 strbtvc r7, [r1], #-1107 + 3b10: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3b14: 746e6f43 strbtvc r6, [lr], #-3907 + 3b18: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3b1c: 445c7265 ldrbmi r7, [ip], #-613 + 3b20: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 3b24: 73694c5c cmnvc r9, #23552 ; 0x5c00 + 3b28: 20225c74 eorcs r5, r2, r4, ror ip + 3b2c: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 3b30: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 3b34: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 3b38: 20737365 rsbscs r7, r3, r5, ror #6 + 3b3c: 35396550 ldrcc r6, [r9, #-1360]! + 3b40: 65502c31 ldrbvs r2, [r0, #-3121] + 3b44: 2c313131 ldfcss f3, [r1], #-196 + 3b48: 34396550 ldrtcc r6, [r9], #-1360 + 3b4c: 6f2d2030 svcvs 0x002d2030 + 3b50: 3a432220 bcc 10cc3d8 + 3b54: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3b58: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3b5c: 61207374 teqvs r0, r4, ror r3 + 3b60: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3b64: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3b68: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3b6c: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3b70: 5c617269 sfmpl f7, 2, [r1], #-420 + 3b74: 4420794d strtmi r7, [r0], #-2381 + 3b78: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3b7c: 73746e65 cmnvc r4, #1616 ; 0x650 + 3b80: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3b84: 746e6f63 strbtvc r6, [lr], #-3939 + 3b88: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3b8c: 74616557 strbtvc r6, [r1], #-1367 + 3b90: 20726568 rsbscs r6, r2, r8, ror #10 + 3b94: 74617453 strbtvc r7, [r1], #-1107 + 3b98: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3b9c: 746e6f43 strbtvc r6, [lr], #-3907 + 3ba0: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3ba4: 445c7265 ldrbmi r7, [ip], #-613 + 3ba8: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 3bac: 6a624f5c bvs 1897924 + 3bb0: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3bb4: 6265642d rsbvs r6, r5, #754974720 ; 0x2d000000 + 3bb8: 2d206775 stccs 7, cr6, [r0, #-468]! + 3bbc: 646e652d strbtvs r6, [lr], #-1325 + 3bc0: 3d6e6169 stfcce f6, [lr, #-420]! + 3bc4: 7474696c ldrbtvc r6, [r4], #-2412 + 3bc8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 3bcc: 7570632d ldrbvc r6, [r0, #-813]! + 3bd0: 4d52413d ldfmie f4, [r2, #-244] + 3bd4: 4d445437 cfstrdmi mvd5, [r4, #-220] + 3bd8: 20532d49 subscs r2, r3, r9, asr #26 + 3bdc: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 3be0: 7570662d ldrbvc r6, [r0, #-1581]! + 3be4: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 3be8: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 3bec: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 3bf0: 6e6f635f mcrvs 3, 3, r6, cr15, cr15, {2} + 3bf4: 20676966 rsbcs r6, r7, r6, ror #18 + 3bf8: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 3bfc: 676f7250 undefined + 3c00: 206d6172 rsbcs r6, sp, r2, ror r1 + 3c04: 656c6946 strbvs r6, [ip, #-2374]! + 3c08: 41495c73 cmpmi r9, r3, ror ip + 3c0c: 79532052 ldmdbvc r3, {r1, r4, r6, sp}^ + 3c10: 6d657473 cfstrdvs mvd7, [r5, #-460]! + 3c14: 6d455c73 stclvs 12, cr5, [r5, #-460] + 3c18: 64646562 strbtvs r6, [r4], #-1378 + 3c1c: 57206465 strpl r6, [r0, -r5, ror #8]! + 3c20: 626b726f rsbvs r7, fp, #-268435450 ; 0xf0000006 + 3c24: 68636e65 stmdavs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 3c28: 342e3520 strtcc r3, [lr], #-1312 + 3c2c: 63694b20 cmnvs r9, #32768 ; 0x8000 + 3c30: 6174736b cmnvs r4, fp, ror #6 + 3c34: 615c7472 cmpvs ip, r2, ror r4 + 3c38: 495c6d72 ldmdbmi ip, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 3c3c: 445c434e ldrbmi r4, [ip], #-846 + 3c40: 5f62694c svcpl 0x0062694c + 3c44: 666e6f43 strbtvs r6, [lr], -r3, asr #30 + 3c48: 4e5f6769 cdpmi 7, 5, cr6, cr15, cr9, {3} + 3c4c: 616d726f cmnvs sp, pc, ror #4 + 3c50: 22682e6c rsbcs r2, r8, #1728 ; 0x6c0 + 3c54: 20492d20 subcs r2, r9, r0, lsr #26 + 3c58: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 3c5c: 75636f44 strbvc r6, [r3, #-3908]! + 3c60: 746e656d strbtvc r6, [lr], #-1389 + 3c64: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3c68: 65532064 ldrbvs r2, [r3, #-100] + 3c6c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3c70: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3c74: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3c78: 4d5c6172 ldfmie f6, [ip, #-456] + 3c7c: 6f442079 svcvs 0x00442079 + 3c80: 656d7563 strbvs r7, [sp, #-1379]! + 3c84: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3c88: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 3c8c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3c90: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3c94: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3c98: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 3c9c: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3ca0: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3ca4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3ca8: 656c6c6f strbvs r6, [ip, #-3183]! + 3cac: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 3cb0: 445c4341 ldrbmi r4, [ip], #-833 + 3cb4: 65766972 ldrbvs r6, [r6, #-2418]! + 3cb8: 495c7372 ldmdbmi ip, {r1, r4, r5, r6, r8, r9, ip, sp, lr}^ + 3cbc: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 3cc0: 65636166 strbvs r6, [r3, #-358]! + 3cc4: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3cc8: 43222049 teqmi r2, #73 ; 0x49 + 3ccc: 6f445c3a svcvs 0x00445c3a + 3cd0: 656d7563 strbvs r7, [sp, #-1379]! + 3cd4: 2073746e rsbscs r7, r3, lr, ror #8 + 3cd8: 20646e61 rsbcs r6, r4, r1, ror #28 + 3cdc: 74746553 ldrbtvc r6, [r4], #-1363 + 3ce0: 73676e69 cmnvc r7, #1680 ; 0x690 + 3ce4: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3ce8: 61726976 cmnvs r2, r6, ror r9 + 3cec: 20794d5c rsbscs r4, r9, ip, asr sp + 3cf0: 75636f44 strbvc r6, [r3, #-3908]! + 3cf4: 746e656d strbtvc r6, [lr], #-1389 + 3cf8: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3cfc: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 3d00: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3d04: 6165575c cmnvs r5, ip, asr r7 + 3d08: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3d0c: 61745320 cmnvs r4, r0, lsr #6 + 3d10: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3d14: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 3d18: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3d1c: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 3d20: 5c4d4c50 mcrrpl 12, 5, r4, sp, cr0 + 3d24: 65746e49 ldrbvs r6, [r4, #-3657]! + 3d28: 63616672 cmnvs r1, #119537664 ; 0x7200000 + 3d2c: 20225c65 eorcs r5, r2, r5, ror #24 + 3d30: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 3d34: 505c3a43 subspl r3, ip, r3, asr #20 + 3d38: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 3d3c: 46206d61 strtmi r6, [r0], -r1, ror #26 + 3d40: 73656c69 cmnvc r5, #26880 ; 0x6900 + 3d44: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 3d48: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 3d4c: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 3d50: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 3d54: 65646465 strbvs r6, [r4, #-1125]! + 3d58: 6f572064 svcvs 0x00572064 + 3d5c: 65626b72 strbvs r6, [r2, #-2930]! + 3d60: 2068636e rsbcs r6, r8, lr, ror #6 + 3d64: 20342e35 eorscs r2, r4, r5, lsr lr + 3d68: 6b63694b blvs 18de29c + 3d6c: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 3d70: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 3d74: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 3d78: 20225c43 eorcs r5, r2, r3, asr #24 + 3d7c: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 3d80: 77726574 undefined + 3d84: 206b726f rsbcs r7, fp, pc, ror #4 + 3d88: 70632d2d rsbvc r2, r3, sp, lsr #26 + 3d8c: 6f6d5f75 svcvs 0x006d5f75 + 3d90: 74206564 strtvc r6, [r0], #-1380 + 3d94: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 3d98: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 3d9c: 3a430000 bcc 10c3da4 + 3da0: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 3da4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 3da8: 61207374 teqvs r0, r4, ror r3 + 3dac: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 3db0: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 3db4: 5c73676e ldclpl 7, cr6, [r3], #-440 + 3db8: 766c616d strbtvc r6, [ip], -sp, ror #2 + 3dbc: 5c617269 sfmpl f7, 2, [r1], #-420 + 3dc0: 4420794d strtmi r7, [r0], #-2381 + 3dc4: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 3dc8: 73746e65 cmnvc r4, #1616 ; 0x650 + 3dcc: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 3dd0: 746e6f63 strbtvc r6, [lr], #-3939 + 3dd4: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 3dd8: 74616557 strbtvc r6, [r1], #-1367 + 3ddc: 20726568 rsbscs r6, r2, r8, ror #10 + 3de0: 74617453 strbtvc r7, [r1], #-1107 + 3de4: 206e6f69 rsbcs r6, lr, r9, ror #30 + 3de8: 746e6f43 strbtvc r6, [lr], #-3907 + 3dec: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 3df0: 445c7265 ldrbmi r7, [ip], #-613 + 3df4: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 3df8: 6a624f5c bvs 1897b70 + 3dfc: 7261555c rsbvc r5, r1, #385875968 ; 0x17000000 + 3e00: 69745574 ldmdbvs r4!, {r2, r4, r5, r6, r8, sl, ip, lr}^ + 3e04: 3a6f2e6c bcc 1bcf7bc + 3e08: 41490000 cmpmi r9, r0 + 3e0c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 3e10: 43204953 teqmi r0, #1359872 ; 0x14c000 + 3e14: 2b2b432f blcs ad4ad8 + 3e18: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 3e1c: 656c6970 strbvs r6, [ip, #-2416]! + 3e20: 35562072 ldrbcc r2, [r6, #-114] + 3e24: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 3e28: 31332e32 teqcc r3, r2, lsr lr + 3e2c: 2f353932 svccs 0x00353932 + 3e30: 20323357 eorscs r3, r2, r7, asr r3 + 3e34: 4b43494b blmi 10d6368 + 3e38: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 3e3c: 6f662054 svcvs 0x00662054 + 3e40: 52412072 subpl r2, r1, #114 ; 0x72 + 3e44: 4322004d teqmi r2, #77 ; 0x4d + 3e48: 6f445c3a svcvs 0x00445c3a + 3e4c: 656d7563 strbvs r7, [sp, #-1379]! + 3e50: 2073746e rsbscs r7, r3, lr, ror #8 + 3e54: 20646e61 rsbcs r6, r4, r1, ror #28 + 3e58: 74746553 ldrbtvc r6, [r4], #-1363 + 3e5c: 73676e69 cmnvc r7, #1680 ; 0x690 + 3e60: 6c616d5c stclvs 13, cr6, [r1], #-368 + 3e64: 61726976 cmnvs r2, r6, ror r9 + 3e68: 20794d5c rsbscs r4, r9, ip, asr sp + 3e6c: 75636f44 strbvc r6, [r3, #-3908]! + 3e70: 746e656d strbtvc r6, [lr], #-1389 + 3e74: 73775c73 cmnvc r7, #29440 ; 0x7300 + 3e78: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 3e7c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3e80: 6165575c cmnvs r5, ip, asr r7 + 3e84: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 3e88: 61745320 cmnvs r4, r0, lsr #6 + 3e8c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 3e90: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 3e94: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 3e98: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 3e9c: 6c707041 ldclvs 0, cr7, [r0], #-260 + 3ea0: 74616369 strbtvc r6, [r1], #-873 + 3ea4: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 3ea8: 6c697455 cfstrdvs mvd7, [r9], #-340 + 3eac: 65697469 strbvs r7, [r9, #-1129]! + 3eb0: 61555c73 cmpvs r5, r3, ror ip + 3eb4: 74557472 ldrbvc r7, [r5], #-1138 + 3eb8: 632e6c69 teqvs lr, #26880 ; 0x6900 + 3ebc: 442d2022 strtmi r2, [sp], #-34 + 3ec0: 34324620 ldrtcc r4, [r2], #-1568 + 3ec4: 205a484d subscs r4, sl, sp, asr #16 + 3ec8: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 3ecc: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 3ed0: 5f595449 svcpl 0x00595449 + 3ed4: 42414e45 submi r4, r1, #1104 ; 0x450 + 3ed8: 2044454c subcs r4, r4, ip, asr #10 + 3edc: 20436c2d subcs r6, r3, sp, lsr #24 + 3ee0: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 3ee4: 75636f44 strbvc r6, [r3, #-3908]! + 3ee8: 746e656d strbtvc r6, [lr], #-1389 + 3eec: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3ef0: 65532064 ldrbvs r2, [r3, #-100] + 3ef4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3ef8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3efc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3f00: 4d5c6172 ldfmie f6, [ip, #-456] + 3f04: 6f442079 svcvs 0x00442079 + 3f08: 656d7563 strbvs r7, [sp, #-1379]! + 3f0c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3f10: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 3f14: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3f18: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3f1c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3f20: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 3f24: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3f28: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3f2c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3f30: 656c6c6f strbvs r6, [ip, #-3183]! + 3f34: 65445c72 strbvs r5, [r4, #-3186] + 3f38: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 3f3c: 7473694c ldrbtvc r6, [r3], #-2380 + 3f40: 2d20225c sfmcs f2, 4, [r0, #-368]! + 3f44: 6169642d cmnvs r9, sp, lsr #8 + 3f48: 75735f67 ldrbvc r5, [r3, #-3943]! + 3f4c: 65727070 ldrbvs r7, [r2, #-112]! + 3f50: 50207373 eorpl r7, r0, r3, ror r3 + 3f54: 31353965 teqcc r5, r5, ror #18 + 3f58: 3165502c cmncc r5, ip, lsr #32 + 3f5c: 502c3131 eorpl r3, ip, r1, lsr r1 + 3f60: 30343965 eorscc r3, r4, r5, ror #18 + 3f64: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 3f68: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 3f6c: 75636f44 strbvc r6, [r3, #-3908]! + 3f70: 746e656d strbtvc r6, [lr], #-1389 + 3f74: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 3f78: 65532064 ldrbvs r2, [r3, #-100] + 3f7c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 3f80: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 3f84: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 3f88: 4d5c6172 ldfmie f6, [ip, #-456] + 3f8c: 6f442079 svcvs 0x00442079 + 3f90: 656d7563 strbvs r7, [sp, #-1379]! + 3f94: 5c73746e cfldrdpl mvd7, [r3], #-440 + 3f98: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 3f9c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3fa0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 3fa4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 3fa8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 3fac: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 3fb0: 43206e6f teqmi r0, #1776 ; 0x6f0 + 3fb4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 3fb8: 656c6c6f strbvs r6, [ip, #-3183]! + 3fbc: 65445c72 strbvs r5, [r4, #-3186] + 3fc0: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 3fc4: 5c6a624f sfmpl f6, 2, [sl], #-316 + 3fc8: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 3fcc: 75626564 strbvc r6, [r2, #-1380]! + 3fd0: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 3fd4: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 3fd8: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 3fdc: 6c747469 cfldrdvs mvd7, [r4], #-420 + 3fe0: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 3fe4: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 3fe8: 374d5241 strbcc r5, [sp, -r1, asr #4] + 3fec: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 3ff0: 2d20532d stccs 3, cr5, [r0, #-180]! + 3ff4: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 3ff8: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 3ffc: 656e6f4e strbvs r6, [lr, #-3918]! + 4000: 642d2d20 strtvs r2, [sp], #-3360 + 4004: 5f62696c svcpl 0x0062696c + 4008: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 400c: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 4010: 505c3a43 subspl r3, ip, r3, asr #20 + 4014: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 4018: 46206d61 strtmi r6, [r0], -r1, ror #26 + 401c: 73656c69 cmnvc r5, #26880 ; 0x6900 + 4020: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 4024: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 4028: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 402c: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 4030: 65646465 strbvs r6, [r4, #-1125]! + 4034: 6f572064 svcvs 0x00572064 + 4038: 65626b72 strbvs r6, [r2, #-2930]! + 403c: 2068636e rsbcs r6, r8, lr, ror #6 + 4040: 20342e35 eorscs r2, r4, r5, lsr lr + 4044: 6b63694b blvs 18de578 + 4048: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 404c: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 4050: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 4054: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 4058: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 405c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 4060: 6f4e5f67 svcvs 0x004e5f67 + 4064: 6c616d72 stclvs 13, cr6, [r1], #-456 + 4068: 2022682e eorcs r6, r2, lr, lsr #16 + 406c: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 4070: 445c3a43 ldrbmi r3, [ip], #-2627 + 4074: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4078: 73746e65 cmnvc r4, #1616 ; 0x650 + 407c: 646e6120 strbtvs r6, [lr], #-288 + 4080: 74655320 strbtvc r5, [r5], #-800 + 4084: 676e6974 undefined + 4088: 616d5c73 smcvs 54723 + 408c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4090: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4094: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4098: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 409c: 775c7374 undefined + 40a0: 6f632d73 svcvs 0x00632d73 + 40a4: 6f72746e svcvs 0x0072746e + 40a8: 65575c6c ldrbvs r5, [r7, #-3180] + 40ac: 65687461 strbvs r7, [r8, #-1121]! + 40b0: 74532072 ldrbvc r2, [r3], #-114 + 40b4: 6f697461 svcvs 0x00697461 + 40b8: 6f43206e svcvs 0x0043206e + 40bc: 6f72746e svcvs 0x0072746e + 40c0: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 40c4: 414d535c cmpmi sp, ip, asr r3 + 40c8: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 40cc: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 40d0: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 40d4: 66726574 undefined + 40d8: 5c656361 stclpl 3, cr6, [r5], #-388 + 40dc: 492d2022 pushmi {r1, r5, sp} + 40e0: 3a432220 bcc 10cc968 + 40e4: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 40e8: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 40ec: 61207374 teqvs r0, r4, ror r3 + 40f0: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 40f4: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 40f8: 5c73676e ldclpl 7, cr6, [r3], #-440 + 40fc: 766c616d strbtvc r6, [ip], -sp, ror #2 + 4100: 5c617269 sfmpl f7, 2, [r1], #-420 + 4104: 4420794d strtmi r7, [r0], #-2381 + 4108: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 410c: 73746e65 cmnvc r4, #1616 ; 0x650 + 4110: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 4114: 746e6f63 strbtvc r6, [lr], #-3939 + 4118: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 411c: 74616557 strbtvc r6, [r1], #-1367 + 4120: 20726568 rsbscs r6, r2, r8, ror #10 + 4124: 74617453 strbtvc r7, [r1], #-1107 + 4128: 206e6f69 rsbcs r6, lr, r9, ror #30 + 412c: 746e6f43 strbtvc r6, [lr], #-3907 + 4130: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4134: 505c7265 subspl r7, ip, r5, ror #4 + 4138: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 413c: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 4140: 65636166 strbvs r6, [r3, #-358]! + 4144: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4148: 43222049 teqmi r2, #73 ; 0x49 + 414c: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 4150: 6172676f cmnvs r2, pc, ror #14 + 4154: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 4158: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 415c: 20524149 subscs r4, r2, r9, asr #2 + 4160: 74737953 ldrbtvc r7, [r3], #-2387 + 4164: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 4168: 65626d45 strbvs r6, [r2, #-3397]! + 416c: 64656464 strbtvs r6, [r5], #-1124 + 4170: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 4174: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 4178: 35206863 strcc r6, [r0, #-2147]! + 417c: 4b20342e blmi 81123c + 4180: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 4184: 74726174 ldrbtvc r6, [r2], #-372 + 4188: 6d72615c ldfvse f6, [r2, #-368]! + 418c: 434e495c movtmi r4, #59740 ; 0xe95c + 4190: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4194: 746e692d strbtvc r6, [lr], #-2349 + 4198: 6f777265 svcvs 0x00777265 + 419c: 2d206b72 vstmdbcs r0!, {d6-} + 41a0: 7570632d ldrbvc r6, [r0, #-813]! + 41a4: 646f6d5f strbtvs r6, [pc], #3423 ; 41ac + 41a8: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 41ac: 20626d75 rsbcs r6, r2, r5, ror sp + 41b0: 00684f2d rsbeq r4, r8, sp, lsr #30 + 41b4: 5c3a4300 ldcpl 3, cr4, [sl] + 41b8: 75636f44 strbvc r6, [r3, #-3908]! + 41bc: 746e656d strbtvc r6, [lr], #-1389 + 41c0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 41c4: 65532064 ldrbvs r2, [r3, #-100] + 41c8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 41cc: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 41d0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 41d4: 4d5c6172 ldfmie f6, [ip, #-456] + 41d8: 6f442079 svcvs 0x00442079 + 41dc: 656d7563 strbvs r7, [sp, #-1379]! + 41e0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 41e4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 41e8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 41ec: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 41f0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 41f4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 41f8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 41fc: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4200: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4204: 656c6c6f strbvs r6, [ip, #-3183]! + 4208: 65445c72 strbvs r5, [r4, #-3186] + 420c: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4210: 5c6a624f sfmpl f6, 2, [sl], #-316 + 4214: 65726957 ldrbvs r6, [r2, #-2391]! + 4218: 7373656c cmnvc r3, #452984832 ; 0x1b000000 + 421c: 6b6e694c blvs 1b9e754 + 4220: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 4224: 3a6f2e74 bcc 1bcfbfc + 4228: 41490000 cmpmi r9, r0 + 422c: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 4230: 43204953 teqmi r0, #1359872 ; 0x14c000 + 4234: 2b2b432f blcs ad4ef8 + 4238: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 423c: 656c6970 strbvs r6, [ip, #-2416]! + 4240: 35562072 ldrbcc r2, [r6, #-114] + 4244: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 4248: 31332e32 teqcc r3, r2, lsr lr + 424c: 2f353932 svccs 0x00353932 + 4250: 20323357 eorscs r3, r2, r7, asr r3 + 4254: 4b43494b blmi 10d6788 + 4258: 52415453 subpl r5, r1, #1392508928 ; 0x53000000 + 425c: 6f662054 svcvs 0x00662054 + 4260: 52412072 subpl r2, r1, #114 ; 0x72 + 4264: 4322004d teqmi r2, #77 ; 0x4d + 4268: 6f445c3a svcvs 0x00445c3a + 426c: 656d7563 strbvs r7, [sp, #-1379]! + 4270: 2073746e rsbscs r7, r3, lr, ror #8 + 4274: 20646e61 rsbcs r6, r4, r1, ror #28 + 4278: 74746553 ldrbtvc r6, [r4], #-1363 + 427c: 73676e69 cmnvc r7, #1680 ; 0x690 + 4280: 6c616d5c stclvs 13, cr6, [r1], #-368 + 4284: 61726976 cmnvs r2, r6, ror r9 + 4288: 20794d5c rsbscs r4, r9, ip, asr sp + 428c: 75636f44 strbvc r6, [r3, #-3908]! + 4290: 746e656d strbtvc r6, [lr], #-1389 + 4294: 73775c73 cmnvc r7, #29440 ; 0x7300 + 4298: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 429c: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 42a0: 6165575c cmnvs r5, ip, asr r7 + 42a4: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 42a8: 61745320 cmnvs r4, r0, lsr #6 + 42ac: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 42b0: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 42b4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 42b8: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 42bc: 43414d53 movtmi r4, #7507 ; 0x1d53 + 42c0: 756f535c strbvc r5, [pc, #-860]! ; 3f6c + 42c4: 5c656372 stclpl 3, cr6, [r5], #-456 + 42c8: 65726957 ldrbvs r6, [r2, #-2391]! + 42cc: 7373656c cmnvc r3, #452984832 ; 0x1b000000 + 42d0: 6b6e694c blvs 1b9e808 + 42d4: 6d676e4d stclvs 14, cr6, [r7, #-308]! + 42d8: 22632e74 rsbcs r2, r3, #1856 ; 0x740 + 42dc: 20442d20 subcs r2, r4, r0, lsr #26 + 42e0: 4d343246 lfmmi f3, 4, [r4, #-280]! + 42e4: 2d205a48 fstmdbscs r0!, {s10-s81} + 42e8: 45532044 ldrbmi r2, [r3, #-68] + 42ec: 49525543 ldmdbmi r2, {r0, r1, r6, r8, sl, ip, lr}^ + 42f0: 455f5954 ldrbmi r5, [pc, #-2388] ; 39a4 + 42f4: 4c42414e stfmie f4, [r2], {78} + 42f8: 2d204445 cfstrscs mvf4, [r0, #-276]! + 42fc: 2220436c eorcs r4, r0, #-1342177279 ; 0xb0000001 + 4300: 445c3a43 ldrbmi r3, [ip], #-2627 + 4304: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4308: 73746e65 cmnvc r4, #1616 ; 0x650 + 430c: 646e6120 strbtvs r6, [lr], #-288 + 4310: 74655320 strbtvc r5, [r5], #-800 + 4314: 676e6974 undefined + 4318: 616d5c73 smcvs 54723 + 431c: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4320: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4324: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4328: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 432c: 775c7374 undefined + 4330: 6f632d73 svcvs 0x00632d73 + 4334: 6f72746e svcvs 0x0072746e + 4338: 65575c6c ldrbvs r5, [r7, #-3180] + 433c: 65687461 strbvs r7, [r8, #-1121]! + 4340: 74532072 ldrbvc r2, [r3], #-114 + 4344: 6f697461 svcvs 0x00697461 + 4348: 6f43206e svcvs 0x0043206e + 434c: 6f72746e svcvs 0x0072746e + 4350: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4354: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 4358: 4c5c6775 mrrcmi 7, 7, r6, ip, cr5 + 435c: 5c747369 ldclpl 3, cr7, [r4], #-420 + 4360: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 4364: 67616964 strbvs r6, [r1, -r4, ror #18]! + 4368: 7075735f rsbsvc r7, r5, pc, asr r3 + 436c: 73657270 cmnvc r5, #7 ; 0x7 + 4370: 65502073 ldrbvs r2, [r0, #-115] + 4374: 2c313539 cfldr32cs mvfx3, [r1], #-228 + 4378: 31316550 teqcc r1, r0, asr r5 + 437c: 65502c31 ldrbvs r2, [r0, #-3121] + 4380: 20303439 eorscs r3, r0, r9, lsr r4 + 4384: 22206f2d eorcs r6, r0, #180 ; 0xb4 + 4388: 445c3a43 ldrbmi r3, [ip], #-2627 + 438c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4390: 73746e65 cmnvc r4, #1616 ; 0x650 + 4394: 646e6120 strbtvs r6, [lr], #-288 + 4398: 74655320 strbtvc r5, [r5], #-800 + 439c: 676e6974 undefined + 43a0: 616d5c73 smcvs 54723 + 43a4: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 43a8: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 43ac: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 43b0: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 43b4: 775c7374 undefined + 43b8: 6f632d73 svcvs 0x00632d73 + 43bc: 6f72746e svcvs 0x0072746e + 43c0: 65575c6c ldrbvs r5, [r7, #-3180] + 43c4: 65687461 strbvs r7, [r8, #-1121]! + 43c8: 74532072 ldrbvc r2, [r3], #-114 + 43cc: 6f697461 svcvs 0x00697461 + 43d0: 6f43206e svcvs 0x0043206e + 43d4: 6f72746e svcvs 0x0072746e + 43d8: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 43dc: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 43e0: 4f5c6775 svcmi 0x005c6775 + 43e4: 225c6a62 subscs r6, ip, #401408 ; 0x62000 + 43e8: 642d2d20 strtvs r2, [sp], #-3360 + 43ec: 67756265 ldrbvs r6, [r5, -r5, ror #4]! + 43f0: 652d2d20 strvs r2, [sp, #-3360]! + 43f4: 6169646e cmnvs r9, lr, ror #8 + 43f8: 696c3d6e stmdbvs ip!, {r1, r2, r3, r5, r6, r8, sl, fp, ip, sp}^ + 43fc: 656c7474 strbvs r7, [ip, #-1140]! + 4400: 632d2d20 teqvs sp, #2048 ; 0x800 + 4404: 413d7570 teqmi sp, r0, ror r5 + 4408: 54374d52 ldrtpl r4, [r7], #-3410 + 440c: 2d494d44 stclcs 13, cr4, [r9, #-272] + 4410: 652d2053 strvs r2, [sp, #-83]! + 4414: 662d2d20 strtvs r2, [sp], -r0, lsr #26 + 4418: 4e3d7570 mrcmi 5, 1, r7, cr13, cr0, {3} + 441c: 20656e6f rsbcs r6, r5, pc, ror #28 + 4420: 6c642d2d stclvs 13, cr2, [r4], #-180 + 4424: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 + 4428: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 442c: 43222067 teqmi r2, #103 ; 0x67 + 4430: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 4434: 6172676f cmnvs r2, pc, ror #14 + 4438: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 443c: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 4440: 20524149 subscs r4, r2, r9, asr #2 + 4444: 74737953 ldrbtvc r7, [r3], #-2387 + 4448: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 444c: 65626d45 strbvs r6, [r2, #-3397]! + 4450: 64656464 strbtvs r6, [r5], #-1124 + 4454: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 4458: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 445c: 35206863 strcc r6, [r0, #-2147]! + 4460: 4b20342e blmi 811520 + 4464: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 4468: 74726174 ldrbtvc r6, [r2], #-372 + 446c: 6d72615c ldfvse f6, [r2, #-368]! + 4470: 434e495c movtmi r4, #59740 ; 0xe95c + 4474: 694c445c stmdbvs ip, {r2, r3, r4, r6, sl, lr}^ + 4478: 6f435f62 svcvs 0x00435f62 + 447c: 6769666e strbvs r6, [r9, -lr, ror #12]! + 4480: 726f4e5f rsbvc r4, pc, #1520 ; 0x5f0 + 4484: 2e6c616d powcsez f6, f4, #5.0 + 4488: 2d202268 sfmcs f2, 4, [r0, #-416]! + 448c: 43222049 teqmi r2, #73 ; 0x49 + 4490: 6f445c3a svcvs 0x00445c3a + 4494: 656d7563 strbvs r7, [sp, #-1379]! + 4498: 2073746e rsbscs r7, r3, lr, ror #8 + 449c: 20646e61 rsbcs r6, r4, r1, ror #28 + 44a0: 74746553 ldrbtvc r6, [r4], #-1363 + 44a4: 73676e69 cmnvc r7, #1680 ; 0x690 + 44a8: 6c616d5c stclvs 13, cr6, [r1], #-368 + 44ac: 61726976 cmnvs r2, r6, ror r9 + 44b0: 20794d5c rsbscs r4, r9, ip, asr sp + 44b4: 75636f44 strbvc r6, [r3, #-3908]! + 44b8: 746e656d strbtvc r6, [lr], #-1389 + 44bc: 73775c73 cmnvc r7, #29440 ; 0x7300 + 44c0: 6e6f632d cdpvs 3, 6, cr6, cr15, cr13, {1} + 44c4: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 44c8: 6165575c cmnvs r5, ip, asr r7 + 44cc: 72656874 rsbvc r6, r5, #7602176 ; 0x740000 + 44d0: 61745320 cmnvs r4, r0, lsr #6 + 44d4: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 44d8: 6e6f4320 cdpvs 3, 6, cr4, cr15, cr0, {1} + 44dc: 6c6f7274 sfmvs f7, 2, [pc], #-464 + 44e0: 5c72656c cfldr64pl mvdx6, [r2], #-432 + 44e4: 43414d53 movtmi r4, #7507 ; 0x1d53 + 44e8: 6972445c ldmdbvs r2!, {r2, r3, r4, r6, sl, lr}^ + 44ec: 73726576 cmnvc r2, #494927872 ; 0x1d800000 + 44f0: 746e495c strbtvc r4, [lr], #-2396 + 44f4: 61667265 cmnvs r6, r5, ror #4 + 44f8: 225c6563 subscs r6, ip, #415236096 ; 0x18c00000 + 44fc: 20492d20 subcs r2, r9, r0, lsr #26 + 4500: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 4504: 75636f44 strbvc r6, [r3, #-3908]! + 4508: 746e656d strbtvc r6, [lr], #-1389 + 450c: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4510: 65532064 ldrbvs r2, [r3, #-100] + 4514: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4518: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 451c: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4520: 4d5c6172 ldfmie f6, [ip, #-456] + 4524: 6f442079 svcvs 0x00442079 + 4528: 656d7563 strbvs r7, [sp, #-1379]! + 452c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4530: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4534: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4538: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 453c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4540: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4544: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4548: 43206e6f teqmi r0, #1776 ; 0x6f0 + 454c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4550: 656c6c6f strbvs r6, [ip, #-3183]! + 4554: 4c505c72 mrrcmi 12, 7, r5, r0, cr2 + 4558: 6e495c4d cdpvs 12, 4, cr5, cr9, cr13, {2} + 455c: 66726574 undefined + 4560: 5c656361 stclpl 3, cr6, [r5], #-388 + 4564: 492d2022 pushmi {r1, r5, sp} + 4568: 3a432220 bcc 10ccdf0 + 456c: 6f72505c svcvs 0x0072505c + 4570: 6d617267 sfmvs f7, 2, [r1, #-412]! + 4574: 6c694620 stclvs 6, cr4, [r9], #-128 + 4578: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 457c: 53205241 teqpl r0, #268435460 ; 0x10000004 + 4580: 65747379 ldrbvs r7, [r4, #-889]! + 4584: 455c736d ldrbmi r7, [ip, #-877] + 4588: 6465626d strbtvs r6, [r5], #-621 + 458c: 20646564 rsbcs r6, r4, r4, ror #10 + 4590: 6b726f57 blvs 1ca02f4 + 4594: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 4598: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 459c: 694b2034 stmdbvs fp, {r2, r4, r5, sp}^ + 45a0: 74736b63 ldrbtvc r6, [r3], #-2915 + 45a4: 5c747261 lfmpl f7, 2, [r4], #-388 + 45a8: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 45ac: 5c434e49 mcrrpl 14, 4, r4, r3, cr9 + 45b0: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 45b4: 65746e69 ldrbvs r6, [r4, #-3689]! + 45b8: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 45bc: 2d2d206b stccs 0, cr2, [sp, #-428]! + 45c0: 5f757063 svcpl 0x00757063 + 45c4: 65646f6d strbvs r6, [r4, #-3949]! + 45c8: 75687420 strbvc r7, [r8, #-1056]! + 45cc: 2d20626d sfmcs f6, 4, [r0, #-436]! + 45d0: 0000684f andeq r6, r0, pc, asr #16 + 45d4: 445c3a43 ldrbmi r3, [ip], #-2627 + 45d8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 45dc: 73746e65 cmnvc r4, #1616 ; 0x650 + 45e0: 646e6120 strbtvs r6, [lr], #-288 + 45e4: 74655320 strbtvc r5, [r5], #-800 + 45e8: 676e6974 undefined + 45ec: 616d5c73 smcvs 54723 + 45f0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 45f4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 45f8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 45fc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4600: 775c7374 undefined + 4604: 6f632d73 svcvs 0x00632d73 + 4608: 6f72746e svcvs 0x0072746e + 460c: 65575c6c ldrbvs r5, [r7, #-3180] + 4610: 65687461 strbvs r7, [r8, #-1121]! + 4614: 74532072 ldrbvc r2, [r3], #-114 + 4618: 6f697461 svcvs 0x00697461 + 461c: 6f43206e svcvs 0x0043206e + 4620: 6f72746e svcvs 0x0072746e + 4624: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4628: 6265445c rsbvs r4, r5, #1543503872 ; 0x5c000000 + 462c: 4f5c6775 svcmi 0x005c6775 + 4630: 6d5c6a62 fldsvs s13, [ip, #-392] + 4634: 2e616361 cdpcs 3, 6, cr6, cr1, cr1, {3} + 4638: 00003a6f andeq r3, r0, pc, ror #20 + 463c: 20524149 subscs r4, r2, r9, asr #2 + 4640: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 4644: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 4648: 43202b2b teqmi r0, #44032 ; 0xac00 + 464c: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 4650: 2072656c rsbscs r6, r2, ip, ror #10 + 4654: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 4658: 2e322e30 mrccs 14, 1, r2, cr2, cr0, {1} + 465c: 39323133 ldmdbcc r2!, {r0, r1, r4, r5, r8, ip, sp} + 4660: 33572f35 cmpcc r7, #212 ; 0xd4 + 4664: 494b2032 stmdbmi fp, {r1, r4, r5, sp}^ + 4668: 54534b43 ldrbpl r4, [r3], #-2883 + 466c: 20545241 subscs r5, r4, r1, asr #4 + 4670: 20726f66 rsbscs r6, r2, r6, ror #30 + 4674: 004d5241 subeq r5, sp, r1, asr #4 + 4678: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 467c: 75636f44 strbvc r6, [r3, #-3908]! + 4680: 746e656d strbtvc r6, [lr], #-1389 + 4684: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4688: 65532064 ldrbvs r2, [r3, #-100] + 468c: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4690: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4694: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4698: 4d5c6172 ldfmie f6, [ip, #-456] + 469c: 6f442079 svcvs 0x00442079 + 46a0: 656d7563 strbvs r7, [sp, #-1379]! + 46a4: 5c73746e cfldrdpl mvd7, [r3], #-440 + 46a8: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 46ac: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 46b0: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 46b4: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 46b8: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 46bc: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 46c0: 43206e6f teqmi r0, #1776 ; 0x6f0 + 46c4: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 46c8: 656c6c6f strbvs r6, [ip, #-3183]! + 46cc: 4d535c72 ldclmi 12, cr5, [r3, #-456] + 46d0: 445c4341 ldrbmi r4, [ip], #-833 + 46d4: 65766972 ldrbvs r6, [r6, #-2418]! + 46d8: 535c7372 cmppl ip, #-939524095 ; 0xc8000001 + 46dc: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 + 46e0: 616d5c65 cmnvs sp, r5, ror #24 + 46e4: 632e6163 teqvs lr, #-1073741800 ; 0xc0000018 + 46e8: 442d2022 strtmi r2, [sp], #-34 + 46ec: 34324620 ldrtcc r4, [r2], #-1568 + 46f0: 205a484d subscs r4, sl, sp, asr #16 + 46f4: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 46f8: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 46fc: 5f595449 svcpl 0x00595449 + 4700: 42414e45 submi r4, r1, #1104 ; 0x450 + 4704: 2044454c subcs r4, r4, ip, asr #10 + 4708: 20436c2d subcs r6, r3, sp, lsr #24 + 470c: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 4710: 75636f44 strbvc r6, [r3, #-3908]! + 4714: 746e656d strbtvc r6, [lr], #-1389 + 4718: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 471c: 65532064 ldrbvs r2, [r3, #-100] + 4720: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4724: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4728: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 472c: 4d5c6172 ldfmie f6, [ip, #-456] + 4730: 6f442079 svcvs 0x00442079 + 4734: 656d7563 strbvs r7, [sp, #-1379]! + 4738: 5c73746e cfldrdpl mvd7, [r3], #-440 + 473c: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4740: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4744: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4748: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 474c: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4750: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4754: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4758: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 475c: 656c6c6f strbvs r6, [ip, #-3183]! + 4760: 65445c72 strbvs r5, [r4, #-3186] + 4764: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4768: 7473694c ldrbtvc r6, [r3], #-2380 + 476c: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4770: 6169642d cmnvs r9, sp, lsr #8 + 4774: 75735f67 ldrbvc r5, [r3, #-3943]! + 4778: 65727070 ldrbvs r7, [r2, #-112]! + 477c: 50207373 eorpl r7, r0, r3, ror r3 + 4780: 31353965 teqcc r5, r5, ror #18 + 4784: 3165502c cmncc r5, ip, lsr #32 + 4788: 502c3131 eorpl r3, ip, r1, lsr r1 + 478c: 30343965 eorscc r3, r4, r5, ror #18 + 4790: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 4794: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 4798: 75636f44 strbvc r6, [r3, #-3908]! + 479c: 746e656d strbtvc r6, [lr], #-1389 + 47a0: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 47a4: 65532064 ldrbvs r2, [r3, #-100] + 47a8: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 47ac: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 47b0: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 47b4: 4d5c6172 ldfmie f6, [ip, #-456] + 47b8: 6f442079 svcvs 0x00442079 + 47bc: 656d7563 strbvs r7, [sp, #-1379]! + 47c0: 5c73746e cfldrdpl mvd7, [r3], #-440 + 47c4: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 47c8: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 47cc: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 47d0: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 47d4: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 47d8: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 47dc: 43206e6f teqmi r0, #1776 ; 0x6f0 + 47e0: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 47e4: 656c6c6f strbvs r6, [ip, #-3183]! + 47e8: 65445c72 strbvs r5, [r4, #-3186] + 47ec: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 47f0: 5c6a624f sfmpl f6, 2, [sl], #-316 + 47f4: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 47f8: 75626564 strbvc r6, [r2, #-1380]! + 47fc: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 4800: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 4804: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 4808: 6c747469 cfldrdvs mvd7, [r4], #-420 + 480c: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 4810: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 4814: 374d5241 strbcc r5, [sp, -r1, asr #4] + 4818: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 481c: 2d20532d stccs 3, cr5, [r0, #-180]! + 4820: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 4824: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 4828: 656e6f4e strbvs r6, [lr, #-3918]! + 482c: 642d2d20 strtvs r2, [sp], #-3360 + 4830: 5f62696c svcpl 0x0062696c + 4834: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 4838: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 483c: 505c3a43 subspl r3, ip, r3, asr #20 + 4840: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 4844: 46206d61 strtmi r6, [r0], -r1, ror #26 + 4848: 73656c69 cmnvc r5, #26880 ; 0x6900 + 484c: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 4850: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 4854: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 4858: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 485c: 65646465 strbvs r6, [r4, #-1125]! + 4860: 6f572064 svcvs 0x00572064 + 4864: 65626b72 strbvs r6, [r2, #-2930]! + 4868: 2068636e rsbcs r6, r8, lr, ror #6 + 486c: 20342e35 eorscs r2, r4, r5, lsr lr + 4870: 6b63694b blvs 18deda4 + 4874: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 4878: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 487c: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 4880: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 4884: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 4888: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 488c: 6f4e5f67 svcvs 0x004e5f67 + 4890: 6c616d72 stclvs 13, cr6, [r1], #-456 + 4894: 2022682e eorcs r6, r2, lr, lsr #16 + 4898: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 489c: 445c3a43 ldrbmi r3, [ip], #-2627 + 48a0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 48a4: 73746e65 cmnvc r4, #1616 ; 0x650 + 48a8: 646e6120 strbtvs r6, [lr], #-288 + 48ac: 74655320 strbtvc r5, [r5], #-800 + 48b0: 676e6974 undefined + 48b4: 616d5c73 smcvs 54723 + 48b8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 48bc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 48c0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 48c4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 48c8: 775c7374 undefined + 48cc: 6f632d73 svcvs 0x00632d73 + 48d0: 6f72746e svcvs 0x0072746e + 48d4: 65575c6c ldrbvs r5, [r7, #-3180] + 48d8: 65687461 strbvs r7, [r8, #-1121]! + 48dc: 74532072 ldrbvc r2, [r3], #-114 + 48e0: 6f697461 svcvs 0x00697461 + 48e4: 6f43206e svcvs 0x0043206e + 48e8: 6f72746e svcvs 0x0072746e + 48ec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 48f0: 414d535c cmpmi sp, ip, asr r3 + 48f4: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 48f8: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 48fc: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 4900: 66726574 undefined + 4904: 5c656361 stclpl 3, cr6, [r5], #-388 + 4908: 492d2022 pushmi {r1, r5, sp} + 490c: 3a432220 bcc 10cd194 + 4910: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 4914: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4918: 61207374 teqvs r0, r4, ror r3 + 491c: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 4920: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4924: 5c73676e ldclpl 7, cr6, [r3], #-440 + 4928: 766c616d strbtvc r6, [ip], -sp, ror #2 + 492c: 5c617269 sfmpl f7, 2, [r1], #-420 + 4930: 4420794d strtmi r7, [r0], #-2381 + 4934: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4938: 73746e65 cmnvc r4, #1616 ; 0x650 + 493c: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 4940: 746e6f63 strbtvc r6, [lr], #-3939 + 4944: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 4948: 74616557 strbtvc r6, [r1], #-1367 + 494c: 20726568 rsbscs r6, r2, r8, ror #10 + 4950: 74617453 strbtvc r7, [r1], #-1107 + 4954: 206e6f69 rsbcs r6, lr, r9, ror #30 + 4958: 746e6f43 strbtvc r6, [lr], #-3907 + 495c: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4960: 505c7265 subspl r7, ip, r5, ror #4 + 4964: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 4968: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 496c: 65636166 strbvs r6, [r3, #-358]! + 4970: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4974: 43222049 teqmi r2, #73 ; 0x49 + 4978: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 497c: 6172676f cmnvs r2, pc, ror #14 + 4980: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 4984: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 4988: 20524149 subscs r4, r2, r9, asr #2 + 498c: 74737953 ldrbtvc r7, [r3], #-2387 + 4990: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 4994: 65626d45 strbvs r6, [r2, #-3397]! + 4998: 64656464 strbtvs r6, [r5], #-1124 + 499c: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 49a0: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 49a4: 35206863 strcc r6, [r0, #-2147]! + 49a8: 4b20342e blmi 811a68 + 49ac: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 49b0: 74726174 ldrbtvc r6, [r2], #-372 + 49b4: 6d72615c ldfvse f6, [r2, #-368]! + 49b8: 434e495c movtmi r4, #59740 ; 0xe95c + 49bc: 2d20225c sfmcs f2, 4, [r0, #-368]! + 49c0: 746e692d strbtvc r6, [lr], #-2349 + 49c4: 6f777265 svcvs 0x00777265 + 49c8: 2d206b72 vstmdbcs r0!, {d6-} + 49cc: 7570632d ldrbvc r6, [r0, #-813]! + 49d0: 646f6d5f strbtvs r6, [pc], #3423 ; 49d8 + 49d4: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 49d8: 20626d75 rsbcs r6, r2, r5, ror sp + 49dc: 00684f2d rsbeq r4, r8, sp, lsr #30 + 49e0: 5c3a4300 ldcpl 3, cr4, [sl] + 49e4: 75636f44 strbvc r6, [r3, #-3908]! + 49e8: 746e656d strbtvc r6, [lr], #-1389 + 49ec: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 49f0: 65532064 ldrbvs r2, [r3, #-100] + 49f4: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 49f8: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 49fc: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4a00: 4d5c6172 ldfmie f6, [ip, #-456] + 4a04: 6f442079 svcvs 0x00442079 + 4a08: 656d7563 strbvs r7, [sp, #-1379]! + 4a0c: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4a10: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4a14: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4a18: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4a1c: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4a20: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4a24: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4a28: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4a2c: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4a30: 656c6c6f strbvs r6, [ip, #-3183]! + 4a34: 65445c72 strbvs r5, [r4, #-3186] + 4a38: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4a3c: 5c6a624f sfmpl f6, 2, [sl], #-316 + 4a40: 74616577 strbtvc r6, [r1], #-1399 + 4a44: 5f726568 svcpl 0x00726568 + 4a48: 74617473 strbtvc r7, [r1], #-1139 + 4a4c: 5f6e6f69 svcpl 0x006e6f69 + 4a50: 746e6f63 strbtvc r6, [lr], #-3939 + 4a54: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4a58: 6f2e7265 svcvs 0x002e7265 + 4a5c: 4900003a stmdbmi r0, {r1, r3, r4, r5} + 4a60: 41205241 teqmi r0, r1, asr #4 + 4a64: 2049534e subcs r5, r9, lr, asr #6 + 4a68: 2b432f43 blcs 10d077c + 4a6c: 6f43202b svcvs 0x0043202b + 4a70: 6c69706d stclvs 0, cr7, [r9], #-436 + 4a74: 56207265 strtpl r7, [r0], -r5, ror #4 + 4a78: 30332e35 eorscc r2, r3, r5, lsr lr + 4a7c: 332e322e teqcc lr, #-536870910 ; 0xe0000002 + 4a80: 35393231 ldrcc r3, [r9, #-561]! + 4a84: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 4a88: 43494b20 movtmi r4, #39712 ; 0x9b20 + 4a8c: 4154534b cmpmi r4, fp, asr #6 + 4a90: 66205452 undefined + 4a94: 4120726f teqmi r0, pc, ror #4 + 4a98: 22004d52 andcs r4, r0, #5248 ; 0x1480 + 4a9c: 445c3a43 ldrbmi r3, [ip], #-2627 + 4aa0: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4aa4: 73746e65 cmnvc r4, #1616 ; 0x650 + 4aa8: 646e6120 strbtvs r6, [lr], #-288 + 4aac: 74655320 strbtvc r5, [r5], #-800 + 4ab0: 676e6974 undefined + 4ab4: 616d5c73 smcvs 54723 + 4ab8: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4abc: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4ac0: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4ac4: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4ac8: 775c7374 undefined + 4acc: 6f632d73 svcvs 0x00632d73 + 4ad0: 6f72746e svcvs 0x0072746e + 4ad4: 65575c6c ldrbvs r5, [r7, #-3180] + 4ad8: 65687461 strbvs r7, [r8, #-1121]! + 4adc: 74532072 ldrbvc r2, [r3], #-114 + 4ae0: 6f697461 svcvs 0x00697461 + 4ae4: 6f43206e svcvs 0x0043206e + 4ae8: 6f72746e svcvs 0x0072746e + 4aec: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4af0: 7070415c rsbsvc r4, r0, ip, asr r1 + 4af4: 6163696c cmnvs r3, ip, ror #18 + 4af8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4afc: 756f535c strbvc r5, [pc, #-860]! ; 47a8 + 4b00: 5c656372 stclpl 3, cr6, [r5], #-456 + 4b04: 74616577 strbtvc r6, [r1], #-1399 + 4b08: 5f726568 svcpl 0x00726568 + 4b0c: 74617473 strbtvc r7, [r1], #-1139 + 4b10: 5f6e6f69 svcpl 0x006e6f69 + 4b14: 746e6f63 strbtvc r6, [lr], #-3939 + 4b18: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4b1c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 4b20: 442d2022 strtmi r2, [sp], #-34 + 4b24: 34324620 ldrtcc r4, [r2], #-1568 + 4b28: 205a484d subscs r4, sl, sp, asr #16 + 4b2c: 5320442d teqpl r0, #754974720 ; 0x2d000000 + 4b30: 52554345 subspl r4, r5, #335544321 ; 0x14000001 + 4b34: 5f595449 svcpl 0x00595449 + 4b38: 42414e45 submi r4, r1, #1104 ; 0x450 + 4b3c: 2044454c subcs r4, r4, ip, asr #10 + 4b40: 20436c2d subcs r6, r3, sp, lsr #24 + 4b44: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 4b48: 75636f44 strbvc r6, [r3, #-3908]! + 4b4c: 746e656d strbtvc r6, [lr], #-1389 + 4b50: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4b54: 65532064 ldrbvs r2, [r3, #-100] + 4b58: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4b5c: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4b60: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4b64: 4d5c6172 ldfmie f6, [ip, #-456] + 4b68: 6f442079 svcvs 0x00442079 + 4b6c: 656d7563 strbvs r7, [sp, #-1379]! + 4b70: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4b74: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4b78: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4b7c: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4b80: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4b84: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4b88: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4b8c: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4b90: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4b94: 656c6c6f strbvs r6, [ip, #-3183]! + 4b98: 65445c72 strbvs r5, [r4, #-3186] + 4b9c: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4ba0: 7473694c ldrbtvc r6, [r3], #-2380 + 4ba4: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4ba8: 6169642d cmnvs r9, sp, lsr #8 + 4bac: 75735f67 ldrbvc r5, [r3, #-3943]! + 4bb0: 65727070 ldrbvs r7, [r2, #-112]! + 4bb4: 50207373 eorpl r7, r0, r3, ror r3 + 4bb8: 31353965 teqcc r5, r5, ror #18 + 4bbc: 3165502c cmncc r5, ip, lsr #32 + 4bc0: 502c3131 eorpl r3, ip, r1, lsr r1 + 4bc4: 30343965 eorscc r3, r4, r5, ror #18 + 4bc8: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 4bcc: 5c3a4322 ldcpl 3, cr4, [sl], #-136 + 4bd0: 75636f44 strbvc r6, [r3, #-3908]! + 4bd4: 746e656d strbtvc r6, [lr], #-1389 + 4bd8: 6e612073 mcrvs 0, 3, r2, cr1, cr3, {3} + 4bdc: 65532064 ldrbvs r2, [r3, #-100] + 4be0: 6e697474 mcrvs 4, 3, r7, cr9, cr4, {3} + 4be4: 6d5c7367 ldclvs 3, cr7, [ip, #-412] + 4be8: 69766c61 ldmdbvs r6!, {r0, r5, r6, sl, fp, sp, lr}^ + 4bec: 4d5c6172 ldfmie f6, [ip, #-456] + 4bf0: 6f442079 svcvs 0x00442079 + 4bf4: 656d7563 strbvs r7, [sp, #-1379]! + 4bf8: 5c73746e cfldrdpl mvd7, [r3], #-440 + 4bfc: 632d7377 teqvs sp, #-603979775 ; 0xdc000001 + 4c00: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c04: 575c6c6f ldrbpl r6, [ip, -pc, ror #24] + 4c08: 68746165 ldmdavs r4!, {r0, r2, r5, r6, r8, sp, lr}^ + 4c0c: 53207265 teqpl r0, #1342177286 ; 0x50000006 + 4c10: 69746174 ldmdbvs r4!, {r2, r4, r5, r6, r8, sp, lr}^ + 4c14: 43206e6f teqmi r0, #1776 ; 0x6f0 + 4c18: 72746e6f rsbsvc r6, r4, #1776 ; 0x6f0 + 4c1c: 656c6c6f strbvs r6, [ip, #-3183]! + 4c20: 65445c72 strbvs r5, [r4, #-3186] + 4c24: 5c677562 cfstr64pl mvdx7, [r7], #-392 + 4c28: 5c6a624f sfmpl f6, 2, [sl], #-316 + 4c2c: 2d2d2022 stccs 0, cr2, [sp, #-136]! + 4c30: 75626564 strbvc r6, [r2, #-1380]! + 4c34: 2d2d2067 stccs 0, cr2, [sp, #-412]! + 4c38: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 4c3c: 6c3d6e61 ldcvs 14, cr6, [sp], #-388 + 4c40: 6c747469 cfldrdvs mvd7, [r4], #-420 + 4c44: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 4c48: 3d757063 ldclcc 0, cr7, [r5, #-396]! + 4c4c: 374d5241 strbcc r5, [sp, -r1, asr #4] + 4c50: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 4c54: 2d20532d stccs 3, cr5, [r0, #-180]! + 4c58: 2d2d2065 stccs 0, cr2, [sp, #-404]! + 4c5c: 3d757066 ldclcc 0, cr7, [r5, #-408]! + 4c60: 656e6f4e strbvs r6, [lr, #-3918]! + 4c64: 642d2d20 strtvs r2, [sp], #-3360 + 4c68: 5f62696c svcpl 0x0062696c + 4c6c: 666e6f63 strbtvs r6, [lr], -r3, ror #30 + 4c70: 22206769 eorcs r6, r0, #27525120 ; 0x1a40000 + 4c74: 505c3a43 subspl r3, ip, r3, asr #20 + 4c78: 72676f72 rsbvc r6, r7, #456 ; 0x1c8 + 4c7c: 46206d61 strtmi r6, [r0], -r1, ror #26 + 4c80: 73656c69 cmnvc r5, #26880 ; 0x6900 + 4c84: 5241495c subpl r4, r1, #1507328 ; 0x170000 + 4c88: 73795320 cmnvc r9, #-2147483648 ; 0x80000000 + 4c8c: 736d6574 cmnvc sp, #486539264 ; 0x1d000000 + 4c90: 626d455c rsbvs r4, sp, #385875968 ; 0x17000000 + 4c94: 65646465 strbvs r6, [r4, #-1125]! + 4c98: 6f572064 svcvs 0x00572064 + 4c9c: 65626b72 strbvs r6, [r2, #-2930]! + 4ca0: 2068636e rsbcs r6, r8, lr, ror #6 + 4ca4: 20342e35 eorscs r2, r4, r5, lsr lr + 4ca8: 6b63694b blvs 18df1dc + 4cac: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 + 4cb0: 72615c74 rsbvc r5, r1, #29696 ; 0x7400 + 4cb4: 4e495c6d cdpmi 12, 4, cr5, cr9, cr13, {3} + 4cb8: 4c445c43 mcrrmi 12, 4, r5, r4, cr3 + 4cbc: 435f6269 cmpmi pc, #-1879048186 ; 0x90000006 + 4cc0: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 4cc4: 6f4e5f67 svcvs 0x004e5f67 + 4cc8: 6c616d72 stclvs 13, cr6, [r1], #-456 + 4ccc: 2022682e eorcs r6, r2, lr, lsr #16 + 4cd0: 2220492d eorcs r4, r0, #737280 ; 0xb4000 + 4cd4: 445c3a43 ldrbmi r3, [ip], #-2627 + 4cd8: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4cdc: 73746e65 cmnvc r4, #1616 ; 0x650 + 4ce0: 646e6120 strbtvs r6, [lr], #-288 + 4ce4: 74655320 strbtvc r5, [r5], #-800 + 4ce8: 676e6974 undefined + 4cec: 616d5c73 smcvs 54723 + 4cf0: 7269766c rsbvc r7, r9, #113246208 ; 0x6c00000 + 4cf4: 794d5c61 stmdbvc sp, {r0, r5, r6, sl, fp, ip, lr}^ + 4cf8: 636f4420 cmnvs pc, #536870912 ; 0x20000000 + 4cfc: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4d00: 775c7374 undefined + 4d04: 6f632d73 svcvs 0x00632d73 + 4d08: 6f72746e svcvs 0x0072746e + 4d0c: 65575c6c ldrbvs r5, [r7, #-3180] + 4d10: 65687461 strbvs r7, [r8, #-1121]! + 4d14: 74532072 ldrbvc r2, [r3], #-114 + 4d18: 6f697461 svcvs 0x00697461 + 4d1c: 6f43206e svcvs 0x0043206e + 4d20: 6f72746e svcvs 0x0072746e + 4d24: 72656c6c rsbvc r6, r5, #27648 ; 0x6c00 + 4d28: 414d535c cmpmi sp, ip, asr r3 + 4d2c: 72445c43 subvc r5, r4, #17152 ; 0x4300 + 4d30: 72657669 rsbvc r7, r5, #110100480 ; 0x6900000 + 4d34: 6e495c73 mcrvs 12, 2, r5, cr9, cr3, {3} + 4d38: 66726574 undefined + 4d3c: 5c656361 stclpl 3, cr6, [r5], #-388 + 4d40: 492d2022 pushmi {r1, r5, sp} + 4d44: 3a432220 bcc 10cd5cc + 4d48: 636f445c cmnvs pc, #1543503872 ; 0x5c000000 + 4d4c: 6e656d75 mcrvs 13, 3, r6, cr5, cr5, {3} + 4d50: 61207374 teqvs r0, r4, ror r3 + 4d54: 5320646e teqpl r0, #1845493760 ; 0x6e000000 + 4d58: 69747465 ldmdbvs r4!, {r0, r2, r5, r6, sl, ip, sp, lr}^ + 4d5c: 5c73676e ldclpl 7, cr6, [r3], #-440 + 4d60: 766c616d strbtvc r6, [ip], -sp, ror #2 + 4d64: 5c617269 sfmpl f7, 2, [r1], #-420 + 4d68: 4420794d strtmi r7, [r0], #-2381 + 4d6c: 6d75636f ldclvs 3, cr6, [r5, #-444]! + 4d70: 73746e65 cmnvc r4, #1616 ; 0x650 + 4d74: 2d73775c ldclcs 7, cr7, [r3, #-368]! + 4d78: 746e6f63 strbtvc r6, [lr], #-3939 + 4d7c: 5c6c6f72 stclpl 15, cr6, [ip], #-456 + 4d80: 74616557 strbtvc r6, [r1], #-1367 + 4d84: 20726568 rsbscs r6, r2, r8, ror #10 + 4d88: 74617453 strbtvc r7, [r1], #-1107 + 4d8c: 206e6f69 rsbcs r6, lr, r9, ror #30 + 4d90: 746e6f43 strbtvc r6, [lr], #-3907 + 4d94: 6c6c6f72 stclvs 15, cr6, [ip], #-456 + 4d98: 505c7265 subspl r7, ip, r5, ror #4 + 4d9c: 495c4d4c ldmdbmi ip, {r2, r3, r6, r8, sl, fp, lr}^ + 4da0: 7265746e rsbvc r7, r5, #1845493760 ; 0x6e000000 + 4da4: 65636166 strbvs r6, [r3, #-358]! + 4da8: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4dac: 43222049 teqmi r2, #73 ; 0x49 + 4db0: 72505c3a subsvc r5, r0, #14848 ; 0x3a00 + 4db4: 6172676f cmnvs r2, pc, ror #14 + 4db8: 6946206d stmdbvs r6, {r0, r2, r3, r5, r6, sp}^ + 4dbc: 5c73656c cfldr64pl mvdx6, [r3], #-432 + 4dc0: 20524149 subscs r4, r2, r9, asr #2 + 4dc4: 74737953 ldrbtvc r7, [r3], #-2387 + 4dc8: 5c736d65 ldclpl 13, cr6, [r3], #-404 + 4dcc: 65626d45 strbvs r6, [r2, #-3397]! + 4dd0: 64656464 strbtvs r6, [r5], #-1124 + 4dd4: 726f5720 rsbvc r5, pc, #8388608 ; 0x800000 + 4dd8: 6e65626b cdpvs 2, 6, cr6, cr5, cr11, {3} + 4ddc: 35206863 strcc r6, [r0, #-2147]! + 4de0: 4b20342e blmi 811ea0 + 4de4: 736b6369 cmnvc fp, #-1543503871 ; 0xa4000001 + 4de8: 74726174 ldrbtvc r6, [r2], #-372 + 4dec: 6d72615c ldfvse f6, [r2, #-368]! + 4df0: 434e495c movtmi r4, #59740 ; 0xe95c + 4df4: 2d20225c sfmcs f2, 4, [r0, #-368]! + 4df8: 746e692d strbtvc r6, [lr], #-2349 + 4dfc: 6f777265 svcvs 0x00777265 + 4e00: 2d206b72 vstmdbcs r0!, {d6-} + 4e04: 7570632d ldrbvc r6, [r0, #-813]! + 4e08: 646f6d5f strbtvs r6, [pc], #3423 ; 4e10 + 4e0c: 68742065 ldmdavs r4!, {r0, r2, r5, r6, sp}^ + 4e10: 20626d75 rsbcs r6, r2, r5, ror sp + 4e14: 00684f2d rsbeq r4, r8, sp, lsr #30 + 4e18: 6d6f7200 sfmvs f7, 2, [pc] + 4e1c: 6d79732d ldclvs 3, cr7, [r9, #-180]! + 4e20: 736c6f62 cmnvc ip, #392 ; 0x188 + 4e24: 434c4c2d movtmi r4, #52269 ; 0xcc2d + 4e28: 4c286f2e stcmi 15, cr6, [r8], #-184 + 4e2c: 612e434c teqvs lr, ip, asr #6 + 4e30: 00003a29 andeq r3, r0, r9, lsr #20 + 4e34: 204d5241 subcs r5, sp, r1, asr #4 + 4e38: 6b6e694c blvs 1b9f370 + 4e3c: 202c7265 eorcs r7, ip, r5, ror #4 + 4e40: 31534441 cmpcc r3, r1, asr #8 + 4e44: 5b20312e blpl 811304 + 4e48: 6c697542 cfstr64vs mvdx7, [r9], #-264 + 4e4c: 30372064 eorscc r2, r7, r4, rrx + 4e50: 000a5d39 andeq r5, sl, r9, lsr sp + 4e54: 75706e49 ldrbvc r6, [r0, #-3657]! + 4e58: 6f432074 svcvs 0x00432074 + 4e5c: 6e656d6d cdpvs 13, 6, cr6, cr5, cr13, {3} + 4e60: 003a7374 eorseq r7, sl, r4, ror r3 + 4e64: 00000000 andeq r0, r0, r0 + 4e68: 5f707200 svcpl 0x00707200 + 4e6c: 74636576 strbtvc r6, [r3], #-1398 + 4e70: 495f726f ldmdbmi pc, {r0, r1, r2, r3, r5, r6, r9, ip, sp, lr}^ + 4e74: 6f2e5241 svcvs 0x002e5241 + 4e78: 434c4c28 movtmi r4, #52264 ; 0xcc28 + 4e7c: 3a29612e bcc a5d33c + 4e80: 41490000 cmpmi r9, r0 + 4e84: 73412052 movtvc r2, #4178 ; 0x1052 + 4e88: 626d6573 rsbvs r6, sp, #482344960 ; 0x1cc00000 + 4e8c: 2072656c rsbscs r6, r2, ip, ror #10 + 4e90: 322e3556 eorcc r3, lr, #360710144 ; 0x15800000 + 4e94: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 4e98: 39383035 ldmdbcc r8!, {r0, r2, r4, r5, ip, sp} + 4e9c: 572f2032 undefined + 4ea0: 66203233 undefined + 4ea4: 4120726f teqmi r0, pc, ror #4 + 4ea8: 44004d52 strmi r4, [r0], #-3410 + 4eac: 43575c3a cmpmi r7, #14848 ; 0x3a00 + 4eb0: 72505f4f subsvc r5, r0, #316 ; 0x13c + 4eb4: 63656a6f cmnvs r5, #454656 ; 0x6f000 + 4eb8: 4b5c7374 blmi 1721c90 + 4ebc: 61626961 cmnvs r2, r1, ror #18 + 4ec0: 6c465c62 mcrrvs 12, 6, r5, r6, cr2 + 4ec4: 6469726f strbtvs r7, [r9], #-623 + 4ec8: 76652061 strbtvc r2, [r5], -r1, rrx + 4ecc: 61756c61 cmnvs r5, r1, ror #24 + 4ed0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 4ed4: 646f435c strbtvs r4, [pc], #860 ; 4edc + 4ed8: 73616265 cmnvc r1, #1342177286 ; 0x50000006 + 4edc: 72705c65 rsbsvc r5, r0, #25856 ; 0x6500 + 4ee0: 63656a6f cmnvs r5, #454656 ; 0x6f000 + 4ee4: 4c4c2074 mcrrmi 0, 7, r2, ip, cr4 + 4ee8: 6f662043 svcvs 0x00662043 + 4eec: 4d532072 ldclmi 0, cr2, [r3, #-456] + 4ef0: 705c4341 subsvc r4, ip, r1, asr #6 + 4ef4: 656a6f72 strbvs r6, [sl, #-3954]! + 4ef8: 4c207463 cfstrsmi mvf7, [r0], #-396 + 4efc: 6620434c strtvs r4, [r0], -ip, asr #6 + 4f00: 5320726f teqpl r0, #-268435450 ; 0xf0000006 + 4f04: 5c43414d stfple f4, [r3], {77} + 4f08: 775f6276 undefined + 4f0c: 505f6f63 subspl r6, pc, r3, ror #30 + 4f10: 53534d4c cmppl r3, #4864 ; 0x1300 + 4f14: 72615f4d rsbvc r5, r1, #308 ; 0x134 + 4f18: 4c5c376d mrrcmi 7, 6, r3, ip, cr13 + 4f1c: 535c434c cmppl ip, #805306369 ; 0x30000001 + 4f20: 6372756f cmnvs r2, #465567744 ; 0x1bc00000 + 4f24: 4f525c65 svcmi 0x00525c65 + 4f28: 61505f4d cmpvs r0, sp, asr #30 + 4f2c: 69686374 stmdbvs r8!, {r2, r4, r5, r6, r8, r9, sp, lr}^ + 4f30: 725c676e subsvc r6, ip, #28835840 ; 0x1b80000 + 4f34: 65765f70 ldrbvs r5, [r6, #-3952]! + 4f38: 726f7463 rsbvc r7, pc, #1660944384 ; 0x63000000 + 4f3c: 5241495f subpl r4, r1, #1556480 ; 0x17c000 + 4f40: 2d20532e stccs 3, cr5, [r0, #-184]! + 4f44: 5c3a444f cfldrspl mvf4, [sl], #-316 + 4f48: 5f4f4357 svcpl 0x004f4357 + 4f4c: 6a6f7250 bvs 1be1894 + 4f50: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 4f54: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 4f58: 5c626162 stfple f6, [r2], #-392 + 4f5c: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 4f60: 20616469 rsbcs r6, r1, r9, ror #8 + 4f64: 6c617665 stclvs 6, cr7, [r1], #-404 + 4f68: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 4f6c: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 4f70: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 4f74: 5c657361 stclpl 3, cr7, [r5], #-388 + 4f78: 6a6f7270 bvs 1be1940 + 4f7c: 20746365 rsbscs r6, r4, r5, ror #6 + 4f80: 20434c4c subcs r4, r3, ip, asr #24 + 4f84: 20726f66 rsbscs r6, r2, r6, ror #30 + 4f88: 43414d53 movtmi r4, #7507 ; 0x1d53 + 4f8c: 6f72705c svcvs 0x0072705c + 4f90: 7463656a strbtvc r6, [r3], #-1386 + 4f94: 434c4c20 movtmi r4, #52256 ; 0xcc20 + 4f98: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 4f9c: 414d5320 cmpmi sp, r0, lsr #6 + 4fa0: 62765c43 rsbsvs r5, r6, #17152 ; 0x4300 + 4fa4: 6f63775f svcvs 0x0063775f + 4fa8: 4d4c505f stclmi 0, cr5, [ip, #-380] + 4fac: 5f4d5353 svcpl 0x004d5353 + 4fb0: 376d7261 strbcc r7, [sp, -r1, ror #4]! + 4fb4: 6975425c ldmdbvs r5!, {r2, r3, r4, r6, r9, lr}^ + 4fb8: 6f5c646c svcvs 0x005c646c + 4fbc: 6f5c7475 svcvs 0x005c7475 + 4fc0: 535c6a62 cmppl ip, #401408 ; 0x62000 + 4fc4: 646e6174 strbtvs r6, [lr], #-372 + 4fc8: 6e6f6c61 cdpvs 12, 6, cr6, cr15, cr1, {3} + 4fcc: 4f522d65 svcmi 0x00522d65 + 4fd0: 312e324d teqcc lr, sp, asr #4 + 4fd4: 7361422d cmnvc r1, #-805306366 ; 0xd0000002 + 4fd8: 522d6465 eorpl r6, sp, #1694498816 ; 0x65000000 + 4fdc: 61656c65 cmnvs r5, r5, ror #24 + 4fe0: 205c6573 subscs r6, ip, r3, ror r5 + 4fe4: 202b732d eorcs r7, fp, sp, lsr #6 + 4fe8: 3e3c4d2d cdpcc 13, 3, cr4, cr12, cr13, {1} + 4fec: 2b772d20 blcs 1dd0474 + 4ff0: 444c2d20 strbmi r2, [ip], #-3360 + 4ff4: 43575c3a cmpmi r7, #14848 ; 0x3a00 + 4ff8: 72505f4f subsvc r5, r0, #316 ; 0x13c + 4ffc: 63656a6f cmnvs r5, #454656 ; 0x6f000 + 5000: 4b5c7374 blmi 1721dd8 + 5004: 61626961 cmnvs r2, r1, ror #18 + 5008: 6c465c62 mcrrvs 12, 6, r5, r6, cr2 + 500c: 6469726f strbtvs r7, [r9], #-623 + 5010: 76652061 strbtvc r2, [r5], -r1, rrx + 5014: 61756c61 cmnvs r5, r1, ror #24 + 5018: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 501c: 646f435c strbtvs r4, [pc], #860 ; 5024 + 5020: 73616265 cmnvc r1, #1342177286 ; 0x50000006 + 5024: 72705c65 rsbsvc r5, r0, #25856 ; 0x6500 + 5028: 63656a6f cmnvs r5, #454656 ; 0x6f000 + 502c: 4c4c2074 mcrrmi 0, 7, r2, ip, cr4 + 5030: 6f662043 svcvs 0x00662043 + 5034: 4d532072 ldclmi 0, cr2, [r3, #-456] + 5038: 705c4341 subsvc r4, ip, r1, asr #6 + 503c: 656a6f72 strbvs r6, [sl, #-3954]! + 5040: 4c207463 cfstrsmi mvf7, [r0], #-396 + 5044: 6620434c strtvs r4, [r0], -ip, asr #6 + 5048: 5320726f teqpl r0, #-268435450 ; 0xf0000006 + 504c: 5c43414d stfple f4, [r3], {77} + 5050: 775f6276 undefined + 5054: 505f6f63 subspl r6, pc, r3, ror #30 + 5058: 53534d4c cmppl r3, #4864 ; 0x1300 + 505c: 72615f4d rsbvc r5, r1, #308 ; 0x134 + 5060: 425c376d subsmi r3, ip, #28573696 ; 0x1b40000 + 5064: 646c6975 strbtvs r6, [ip], #-2421 + 5068: 74756f5c ldrbtvc r6, [r5], #-3932 + 506c: 74736c5c ldrbtvc r6, [r3], #-3164 + 5070: 6174535c cmnvs r4, ip, asr r3 + 5074: 6c61646e cfstrdvs mvd6, [r1], #-440 + 5078: 2d656e6f stclcs 14, cr6, [r5, #-444]! + 507c: 324d4f52 subcc r4, sp, #328 ; 0x148 + 5080: 422d312e eormi r3, sp, #-2147483637 ; 0x8000000b + 5084: 64657361 strbtvs r7, [r5], #-865 + 5088: 6c65522d sfmvs f5, 2, [r5], #-180 + 508c: 65736165 ldrbvs r6, [r3, #-357]! + 5090: 632d205c teqvs sp, #92 ; 0x5c + 5094: 204d4f41 subcs r4, sp, r1, asr #30 + 5098: 2d20692d stccs 9, cr6, [r0, #-180]! + 509c: 742d2042 strtvc r2, [sp], #-66 + 50a0: 2d2d2038 stccs 0, cr2, [sp, #-224]! + 50a4: 20757063 rsbscs r7, r5, r3, rrx + 50a8: 374d5241 strbcc r5, [sp, -r1, asr #4] + 50ac: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 50b0: 2d20532d stccs 3, cr5, [r0, #-180]! + 50b4: 7570662d ldrbvc r6, [r0, #-1581]! + 50b8: 6e6f4e20 cdpvs 14, 6, cr4, cr15, cr0, {1} + 50bc: 53000065 movwpl r0, #101 ; 0x65 + 50c0: 68746e79 ldmdavs r4!, {r0, r3, r4, r5, r6, r9, sl, fp, sp, lr}^ + 50c4: 7a697365 bvc 1a61e60 + 50c8: 6f2e7265 svcvs 0x002e7265 + 50cc: 31434d28 cmpcc r3, r8, lsr #26 + 50d0: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 50d4: 3a29612e bcc a5d594 + 50d8: 41490000 cmpmi r9, r0 + 50dc: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 50e0: 43204953 teqmi r0, #1359872 ; 0x14c000 + 50e4: 2b2b432f blcs ad5da8 + 50e8: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 50ec: 656c6970 strbvs r6, [ip, #-2416]! + 50f0: 35562072 ldrbcc r2, [r6, #-114] + 50f4: 2e30322e cdpcs 2, 3, cr3, cr0, cr14, {1} + 50f8: 30352e30 eorscc r2, r5, r0, lsr lr + 50fc: 2f323938 svccs 0x00323938 + 5100: 20323357 eorscs r3, r2, r7, asr r3 + 5104: 20726f66 rsbscs r6, r2, r6, ror #30 + 5108: 004d5241 subeq r5, sp, r1, asr #4 + 510c: 5c3a4422 cfldrspl mvf4, [sl], #-136 + 5110: 5f4f4357 svcpl 0x004f4357 + 5114: 6a6f7250 bvs 1be1a5c + 5118: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 511c: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 5120: 5c626162 stfple f6, [r2], #-392 + 5124: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 5128: 20616469 rsbcs r6, r1, r9, ror #8 + 512c: 6c617665 stclvs 6, cr7, [r1], #-404 + 5130: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 5134: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 5138: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 513c: 5c657361 stclpl 3, cr7, [r5], #-388 + 5140: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 5144: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5148: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 514c: 56435f79 undefined + 5150: 434d5c53 movtmi r5, #56403 ; 0xdc53 + 5154: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + 5158: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 515c: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 + 5160: 6f696461 svcvs 0x00696461 + 5164: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 5168: 6372735c cmnvs r2, #1879048193 ; 0x70000001 + 516c: 6461725c strbtvs r7, [r1], #-604 + 5170: 535c6f69 cmppl ip, #420 ; 0x1a4 + 5174: 68746e79 ldmdavs r4!, {r0, r3, r4, r5, r6, r9, sl, fp, sp, lr}^ + 5178: 7a697365 bvc 1a61f14 + 517c: 632e7265 teqvs lr, #1342177286 ; 0x50000006 + 5180: 442d2022 strtmi r2, [sp], #-34 + 5184: 45444e20 strbmi r4, [r4, #-3616] + 5188: 20475542 subcs r5, r7, r2, asr #10 + 518c: 4620442d strtmi r4, [r0], -sp, lsr #8 + 5190: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + 5194: 6c2d205a stcvs 0, cr2, [sp], #-360 + 5198: 22204e63 eorcs r4, r0, #1584 ; 0x630 + 519c: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] + 51a0: 505f4f43 subspl r4, pc, r3, asr #30 + 51a4: 656a6f72 strbvs r6, [sl, #-3954]! + 51a8: 5c737463 cfldrdpl mvd7, [r3], #-396 + 51ac: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 + 51b0: 465c6261 ldrbmi r6, [ip], -r1, ror #4 + 51b4: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 51b8: 65206164 strvs r6, [r0, #-356]! + 51bc: 756c6176 strbvc r6, [ip, #-374]! + 51c0: 6f697461 svcvs 0x00697461 + 51c4: 6f435c6e svcvs 0x00435c6e + 51c8: 61626564 cmnvs r2, r4, ror #10 + 51cc: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 + 51d0: 6f696461 svcvs 0x00696461 + 51d4: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 51d8: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 51dc: 5356435f cmppl r6, #2080374785 ; 0x7c000001 + 51e0: 31434d5c cmpcc r3, ip, asr sp + 51e4: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 51e8: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 51ec: 61525c73 cmpvs r2, r3, ror ip + 51f0: 5f6f6964 svcpl 0x006f6964 + 51f4: 5c62694c stclpl 9, cr6, [r2], #-304 + 51f8: 656c6552 strbvs r6, [ip, #-1362]! + 51fc: 5c657361 stclpl 3, cr7, [r5], #-388 + 5200: 7473694c ldrbtvc r6, [r3], #-2380 + 5204: 2d20225c sfmcs f2, 4, [r0, #-368]! + 5208: 6169642d cmnvs r9, sp, lsr #8 + 520c: 75735f67 ldrbvc r5, [r3, #-3943]! + 5210: 65727070 ldrbvs r7, [r2, #-112]! + 5214: 50207373 eorpl r7, r0, r3, ror r3 + 5218: 38363065 ldmdacc r6!, {r0, r2, r5, r6, ip, sp} + 521c: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 5220: 5c3a4422 cfldrspl mvf4, [sl], #-136 + 5224: 5f4f4357 svcpl 0x004f4357 + 5228: 6a6f7250 bvs 1be1b70 + 522c: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 5230: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 5234: 5c626162 stfple f6, [r2], #-392 + 5238: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 523c: 20616469 rsbcs r6, r1, r9, ror #8 + 5240: 6c617665 stclvs 6, cr7, [r1], #-404 + 5244: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 5248: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 524c: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 5250: 5c657361 stclpl 3, cr7, [r5], #-388 + 5254: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 5258: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 525c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5260: 56435f79 undefined + 5264: 434d5c53 movtmi r5, #56403 ; 0xdc53 + 5268: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + 526c: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5270: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 + 5274: 6f696461 svcvs 0x00696461 + 5278: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 527c: 6c65525c sfmvs f5, 2, [r5], #-368 + 5280: 65736165 ldrbvs r6, [r3, #-357]! + 5284: 6a624f5c bvs 1898ffc + 5288: 2d20225c sfmcs f2, 4, [r0, #-368]! + 528c: 646e652d strbtvs r6, [lr], #-1325 + 5290: 3d6e6169 stfcce f6, [lr, #-420]! + 5294: 7474696c ldrbtvc r6, [r4], #-2412 + 5298: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 529c: 7570632d ldrbvc r6, [r0, #-813]! + 52a0: 4d52413d ldfmie f4, [r2, #-244] + 52a4: 4d445437 cfstrdmi mvd5, [r4, #-220] + 52a8: 20532d49 subscs r2, r3, r9, asr #26 + 52ac: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 52b0: 7570662d ldrbvc r6, [r0, #-1581]! + 52b4: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 52b8: 492d2065 pushmi {r0, r2, r5, r6, sp} + 52bc: 3a432220 bcc 10cdb44 + 52c0: 6f72505c svcvs 0x0072505c + 52c4: 6d617267 sfmvs f7, 2, [r1, #-412]! + 52c8: 6c694620 stclvs 6, cr4, [r9], #-128 + 52cc: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 52d0: 53205241 teqpl r0, #268435460 ; 0x10000004 + 52d4: 65747379 ldrbvs r7, [r4, #-889]! + 52d8: 455c736d ldrbmi r7, [ip, #-877] + 52dc: 6465626d strbtvs r6, [r5], #-621 + 52e0: 20646564 rsbcs r6, r4, r4, ror #10 + 52e4: 6b726f57 blvs 1ca1048 + 52e8: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 52ec: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 52f0: 52415c30 subpl r5, r1, #12288 ; 0x3000 + 52f4: 4e495c4d cdpmi 12, 4, cr5, cr9, cr13, {2} + 52f8: 20225c43 eorcs r5, r2, r3, asr #24 + 52fc: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 5300: 77726574 undefined + 5304: 206b726f rsbcs r7, fp, pc, ror #4 + 5308: 70632d2d rsbvc r2, r3, sp, lsr #26 + 530c: 6f6d5f75 svcvs 0x006d5f75 + 5310: 74206564 strtvc r6, [r0], #-1380 + 5314: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 5318: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 531c: 7200007a andvc r0, r0, #122 ; 0x7a + 5320: 6f2e6669 svcvs 0x002e6669 + 5324: 31434d28 cmpcc r3, r8, lsr #26 + 5328: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 532c: 3a29612e bcc a5d7ec + 5330: 41490000 cmpmi r9, r0 + 5334: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 5338: 43204953 teqmi r0, #1359872 ; 0x14c000 + 533c: 2b2b432f blcs ad6000 + 5340: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 5344: 656c6970 strbvs r6, [ip, #-2416]! + 5348: 35562072 ldrbcc r2, [r6, #-114] + 534c: 2e30322e cdpcs 2, 3, cr3, cr0, cr14, {1} + 5350: 30352e30 eorscc r2, r5, r0, lsr lr + 5354: 2f323938 svccs 0x00323938 + 5358: 20323357 eorscs r3, r2, r7, asr r3 + 535c: 20726f66 rsbscs r6, r2, r6, ror #30 + 5360: 004d5241 subeq r5, sp, r1, asr #4 + 5364: 5c3a4422 cfldrspl mvf4, [sl], #-136 + 5368: 5f4f4357 svcpl 0x004f4357 + 536c: 6a6f7250 bvs 1be1cb4 + 5370: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 5374: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 5378: 5c626162 stfple f6, [r2], #-392 + 537c: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 5380: 20616469 rsbcs r6, r1, r9, ror #8 + 5384: 6c617665 stclvs 6, cr7, [r1], #-404 + 5388: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 538c: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 5390: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 5394: 5c657361 stclpl 3, cr7, [r5], #-388 + 5398: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 539c: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 53a0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 53a4: 56435f79 undefined + 53a8: 434d5c53 movtmi r5, #56403 ; 0xdc53 + 53ac: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + 53b0: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 53b4: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 + 53b8: 6f696461 svcvs 0x00696461 + 53bc: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 53c0: 6372735c cmnvs r2, #1879048193 ; 0x70000001 + 53c4: 6461725c strbtvs r7, [r1], #-604 + 53c8: 725c6f69 subsvc r6, ip, #420 ; 0x1a4 + 53cc: 632e6669 teqvs lr, #110100480 ; 0x6900000 + 53d0: 442d2022 strtmi r2, [sp], #-34 + 53d4: 45444e20 strbmi r4, [r4, #-3616] + 53d8: 20475542 subcs r5, r7, r2, asr #10 + 53dc: 4620442d strtmi r4, [r0], -sp, lsr #8 + 53e0: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + 53e4: 6c2d205a stcvs 0, cr2, [sp], #-360 + 53e8: 22204e63 eorcs r4, r0, #1584 ; 0x630 + 53ec: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] + 53f0: 505f4f43 subspl r4, pc, r3, asr #30 + 53f4: 656a6f72 strbvs r6, [sl, #-3954]! + 53f8: 5c737463 cfldrdpl mvd7, [r3], #-396 + 53fc: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 + 5400: 465c6261 ldrbmi r6, [ip], -r1, ror #4 + 5404: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 5408: 65206164 strvs r6, [r0, #-356]! + 540c: 756c6176 strbvc r6, [ip, #-374]! + 5410: 6f697461 svcvs 0x00697461 + 5414: 6f435c6e svcvs 0x00435c6e + 5418: 61626564 cmnvs r2, r4, ror #10 + 541c: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 + 5420: 6f696461 svcvs 0x00696461 + 5424: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 5428: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 542c: 5356435f cmppl r6, #2080374785 ; 0x7c000001 + 5430: 31434d5c cmpcc r3, ip, asr sp + 5434: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 5438: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 543c: 61525c73 cmpvs r2, r3, ror ip + 5440: 5f6f6964 svcpl 0x006f6964 + 5444: 5c62694c stclpl 9, cr6, [r2], #-304 + 5448: 656c6552 strbvs r6, [ip, #-1362]! + 544c: 5c657361 stclpl 3, cr7, [r5], #-388 + 5450: 7473694c ldrbtvc r6, [r3], #-2380 + 5454: 2d20225c sfmcs f2, 4, [r0, #-368]! + 5458: 6169642d cmnvs r9, sp, lsr #8 + 545c: 75735f67 ldrbvc r5, [r3, #-3943]! + 5460: 65727070 ldrbvs r7, [r2, #-112]! + 5464: 50207373 eorpl r7, r0, r3, ror r3 + 5468: 38363065 ldmdacc r6!, {r0, r2, r5, r6, ip, sp} + 546c: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 5470: 5c3a4422 cfldrspl mvf4, [sl], #-136 + 5474: 5f4f4357 svcpl 0x004f4357 + 5478: 6a6f7250 bvs 1be1dc0 + 547c: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 5480: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 5484: 5c626162 stfple f6, [r2], #-392 + 5488: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 548c: 20616469 rsbcs r6, r1, r9, ror #8 + 5490: 6c617665 stclvs 6, cr7, [r1], #-404 + 5494: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 5498: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 549c: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 54a0: 5c657361 stclpl 3, cr7, [r5], #-388 + 54a4: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 54a8: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 54ac: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 54b0: 56435f79 undefined + 54b4: 434d5c53 movtmi r5, #56403 ; 0xdc53 + 54b8: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + 54bc: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 54c0: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 + 54c4: 6f696461 svcvs 0x00696461 + 54c8: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 54cc: 6c65525c sfmvs f5, 2, [r5], #-368 + 54d0: 65736165 ldrbvs r6, [r3, #-357]! + 54d4: 6a624f5c bvs 189924c + 54d8: 2d20225c sfmcs f2, 4, [r0, #-368]! + 54dc: 646e652d strbtvs r6, [lr], #-1325 + 54e0: 3d6e6169 stfcce f6, [lr, #-420]! + 54e4: 7474696c ldrbtvc r6, [r4], #-2412 + 54e8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 54ec: 7570632d ldrbvc r6, [r0, #-813]! + 54f0: 4d52413d ldfmie f4, [r2, #-244] + 54f4: 4d445437 cfstrdmi mvd5, [r4, #-220] + 54f8: 20532d49 subscs r2, r3, r9, asr #26 + 54fc: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 5500: 7570662d ldrbvc r6, [r0, #-1581]! + 5504: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 5508: 492d2065 pushmi {r0, r2, r5, r6, sp} + 550c: 3a432220 bcc 10cdd94 + 5510: 6f72505c svcvs 0x0072505c + 5514: 6d617267 sfmvs f7, 2, [r1, #-412]! + 5518: 6c694620 stclvs 6, cr4, [r9], #-128 + 551c: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 5520: 53205241 teqpl r0, #268435460 ; 0x10000004 + 5524: 65747379 ldrbvs r7, [r4, #-889]! + 5528: 455c736d ldrbmi r7, [ip, #-877] + 552c: 6465626d strbtvs r6, [r5], #-621 + 5530: 20646564 rsbcs r6, r4, r4, ror #10 + 5534: 6b726f57 blvs 1ca1298 + 5538: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 553c: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 5540: 52415c30 subpl r5, r1, #12288 ; 0x3000 + 5544: 4e495c4d cdpmi 12, 4, cr5, cr9, cr13, {2} + 5548: 20225c43 eorcs r5, r2, r3, asr #24 + 554c: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 5550: 77726574 undefined + 5554: 206b726f rsbcs r7, fp, pc, ror #4 + 5558: 70632d2d rsbvc r2, r3, sp, lsr #26 + 555c: 6f6d5f75 svcvs 0x006d5f75 + 5560: 74206564 strtvc r6, [r0], #-1380 + 5564: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 5568: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 556c: 4900007a stmdbmi r0, {r1, r3, r4, r5, r6} + 5570: 5f74696e svcpl 0x0074696e + 5574: 6c697455 cfstrdvs mvd7, [r9], #-340 + 5578: 286f2e73 stmdacs pc!, {r0, r1, r4, r5, r6, r9, sl, fp, sp}^ + 557c: 3331434d teqcc r1, #872415233 ; 0x34000001 + 5580: 2e783232 mrccs 2, 3, r3, cr8, cr2, {1} + 5584: 003a2961 eorseq r2, sl, r1, ror #18 + 5588: 52414900 subpl r4, r1, #0 ; 0x0 + 558c: 534e4120 movtpl r4, #57632 ; 0xe120 + 5590: 2f432049 svccs 0x00432049 + 5594: 202b2b43 eorcs r2, fp, r3, asr #22 + 5598: 706d6f43 rsbvc r6, sp, r3, asr #30 + 559c: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 55a0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 55a4: 302e3032 eorcc r3, lr, r2, lsr r0 + 55a8: 3830352e ldmdacc r0!, {r1, r2, r3, r5, r8, sl, ip, sp} + 55ac: 572f3239 undefined + 55b0: 66203233 undefined + 55b4: 4120726f teqmi r0, pc, ror #4 + 55b8: 22004d52 andcs r4, r0, #5248 ; 0x1480 + 55bc: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] + 55c0: 505f4f43 subspl r4, pc, r3, asr #30 + 55c4: 656a6f72 strbvs r6, [sl, #-3954]! + 55c8: 5c737463 cfldrdpl mvd7, [r3], #-396 + 55cc: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 + 55d0: 465c6261 ldrbmi r6, [ip], -r1, ror #4 + 55d4: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 55d8: 65206164 strvs r6, [r0, #-356]! + 55dc: 756c6176 strbvc r6, [ip, #-374]! + 55e0: 6f697461 svcvs 0x00697461 + 55e4: 6f435c6e svcvs 0x00435c6e + 55e8: 61626564 cmnvs r2, r4, ror #10 + 55ec: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 + 55f0: 6f696461 svcvs 0x00696461 + 55f4: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 55f8: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 55fc: 5356435f cmppl r6, #2080374785 ; 0x7c000001 + 5600: 31434d5c cmpcc r3, ip, asr sp + 5604: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 5608: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 560c: 61525c73 cmpvs r2, r3, ror ip + 5610: 5f6f6964 svcpl 0x006f6964 + 5614: 5c62694c stclpl 9, cr6, [r2], #-304 + 5618: 5c637273 sfmpl f7, 2, [r3], #-460 + 561c: 74696e49 strbtvc r6, [r9], #-3657 + 5620: 6974555f ldmdbvs r4!, {r0, r1, r2, r3, r4, r6, r8, sl, ip, lr}^ + 5624: 632e736c teqvs lr, #-1342177279 ; 0xb0000001 + 5628: 442d2022 strtmi r2, [sp], #-34 + 562c: 45444e20 strbmi r4, [r4, #-3616] + 5630: 20475542 subcs r5, r7, r2, asr #10 + 5634: 4620442d strtmi r4, [r0], -sp, lsr #8 + 5638: 484d3432 stmdami sp, {r1, r4, r5, sl, ip, sp}^ + 563c: 6c2d205a stcvs 0, cr2, [sp], #-360 + 5640: 22204e63 eorcs r4, r0, #1584 ; 0x630 + 5644: 575c3a44 ldrbpl r3, [ip, -r4, asr #20] + 5648: 505f4f43 subspl r4, pc, r3, asr #30 + 564c: 656a6f72 strbvs r6, [sl, #-3954]! + 5650: 5c737463 cfldrdpl mvd7, [r3], #-396 + 5654: 6269614b rsbvs r6, r9, #-1073741806 ; 0xc0000012 + 5658: 465c6261 ldrbmi r6, [ip], -r1, ror #4 + 565c: 69726f6c ldmdbvs r2!, {r2, r3, r5, r6, r8, r9, sl, fp, sp, lr}^ + 5660: 65206164 strvs r6, [r0, #-356]! + 5664: 756c6176 strbvc r6, [ip, #-374]! + 5668: 6f697461 svcvs 0x00697461 + 566c: 6f435c6e svcvs 0x00435c6e + 5670: 61626564 cmnvs r2, r4, ror #10 + 5674: 525c6573 subspl r6, ip, #482344960 ; 0x1cc00000 + 5678: 6f696461 svcvs 0x00696461 + 567c: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 5680: 79726172 ldmdbvc r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 5684: 5356435f cmppl r6, #2080374785 ; 0x7c000001 + 5688: 31434d5c cmpcc r3, ip, asr sp + 568c: 78323233 ldmdavc r2!, {r0, r1, r4, r5, r9, ip, sp} + 5690: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 5694: 61525c73 cmpvs r2, r3, ror ip + 5698: 5f6f6964 svcpl 0x006f6964 + 569c: 5c62694c stclpl 9, cr6, [r2], #-304 + 56a0: 656c6552 strbvs r6, [ip, #-1362]! + 56a4: 5c657361 stclpl 3, cr7, [r5], #-388 + 56a8: 7473694c ldrbtvc r6, [r3], #-2380 + 56ac: 2d20225c sfmcs f2, 4, [r0, #-368]! + 56b0: 6169642d cmnvs r9, sp, lsr #8 + 56b4: 75735f67 ldrbvc r5, [r3, #-3943]! + 56b8: 65727070 ldrbvs r7, [r2, #-112]! + 56bc: 50207373 eorpl r7, r0, r3, ror r3 + 56c0: 38363065 ldmdacc r6!, {r0, r2, r5, r6, ip, sp} + 56c4: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 56c8: 5c3a4422 cfldrspl mvf4, [sl], #-136 + 56cc: 5f4f4357 svcpl 0x004f4357 + 56d0: 6a6f7250 bvs 1be2018 + 56d4: 73746365 cmnvc r4, #-1811939327 ; 0x94000001 + 56d8: 69614b5c stmdbvs r1!, {r2, r3, r4, r6, r8, r9, fp, lr}^ + 56dc: 5c626162 stfple f6, [r2], #-392 + 56e0: 726f6c46 rsbvc r6, pc, #17920 ; 0x4600 + 56e4: 20616469 rsbcs r6, r1, r9, ror #8 + 56e8: 6c617665 stclvs 6, cr7, [r1], #-404 + 56ec: 69746175 ldmdbvs r4!, {r0, r2, r4, r5, r6, r8, sp, lr}^ + 56f0: 435c6e6f cmpmi ip, #1776 ; 0x6f0 + 56f4: 6265646f rsbvs r6, r5, #1862270976 ; 0x6f000000 + 56f8: 5c657361 stclpl 3, cr7, [r5], #-388 + 56fc: 69646152 stmdbvs r4!, {r1, r4, r6, r8, sp, lr}^ + 5700: 694c5f6f stmdbvs ip, {r0, r1, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5704: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5708: 56435f79 undefined + 570c: 434d5c53 movtmi r5, #56403 ; 0xdc53 + 5710: 32323331 eorscc r3, r2, #-1006632960 ; 0xc4000000 + 5714: 694c5f78 stmdbvs ip, {r3, r4, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5718: 525c7362 subspl r7, ip, #-2013265919 ; 0x88000001 + 571c: 6f696461 svcvs 0x00696461 + 5720: 62694c5f rsbvs r4, r9, #24320 ; 0x5f00 + 5724: 6c65525c sfmvs f5, 2, [r5], #-368 + 5728: 65736165 ldrbvs r6, [r3, #-357]! + 572c: 6a624f5c bvs 18994a4 + 5730: 2d20225c sfmcs f2, 4, [r0, #-368]! + 5734: 646e652d strbtvs r6, [lr], #-1325 + 5738: 3d6e6169 stfcce f6, [lr, #-420]! + 573c: 7474696c ldrbtvc r6, [r4], #-2412 + 5740: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 5744: 7570632d ldrbvc r6, [r0, #-813]! + 5748: 4d52413d ldfmie f4, [r2, #-244] + 574c: 4d445437 cfstrdmi mvd5, [r4, #-220] + 5750: 20532d49 subscs r2, r3, r9, asr #26 + 5754: 2d20652d cfstr32cs mvfx6, [r0, #-180]! + 5758: 7570662d ldrbvc r6, [r0, #-1581]! + 575c: 6e6f4e3d mcrvs 14, 3, r4, cr15, cr13, {1} + 5760: 492d2065 pushmi {r0, r2, r5, r6, sp} + 5764: 3a432220 bcc 10cdfec + 5768: 6f72505c svcvs 0x0072505c + 576c: 6d617267 sfmvs f7, 2, [r1, #-412]! + 5770: 6c694620 stclvs 6, cr4, [r9], #-128 + 5774: 495c7365 ldmdbmi ip, {r0, r2, r5, r6, r8, r9, ip, sp, lr}^ + 5778: 53205241 teqpl r0, #268435460 ; 0x10000004 + 577c: 65747379 ldrbvs r7, [r4, #-889]! + 5780: 455c736d ldrbmi r7, [ip, #-877] + 5784: 6465626d strbtvs r6, [r5], #-621 + 5788: 20646564 rsbcs r6, r4, r4, ror #10 + 578c: 6b726f57 blvs 1ca14f0 + 5790: 636e6562 cmnvs lr, #411041792 ; 0x18800000 + 5794: 2e352068 cdpcs 0, 3, cr2, cr5, cr8, {3} + 5798: 52415c30 subpl r5, r1, #12288 ; 0x3000 + 579c: 4e495c4d cdpmi 12, 4, cr5, cr9, cr13, {2} + 57a0: 20225c43 eorcs r5, r2, r3, asr #24 + 57a4: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 57a8: 77726574 undefined + 57ac: 206b726f rsbcs r7, fp, pc, ror #4 + 57b0: 70632d2d rsbvc r2, r3, sp, lsr #26 + 57b4: 6f6d5f75 svcvs 0x006d5f75 + 57b8: 74206564 strtvc r6, [r0], #-1380 + 57bc: 626d7568 rsbvs r7, sp, #436207616 ; 0x1a000000 + 57c0: 684f2d20 stmdavs pc, {r5, r8, sl, fp, sp}^ + 57c4: 4100007a tstmi r0, sl, ror r0 + 57c8: 656d4942 strbvs r4, [sp, #-2370]! + 57cc: 726c636d rsbvc r6, ip, #-1275068415 ; 0xb4000001 + 57d0: 286f2e34 stmdacs pc!, {r2, r4, r5, r9, sl, fp, sp}^ + 57d4: 74347472 ldrtvc r7, [r4], #-1138 + 57d8: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} + 57dc: 003a2961 eorseq r2, sl, r1, ror #18 + 57e0: 52414900 subpl r4, r1, #0 ; 0x0 + 57e4: 73734120 cmnvc r3, #8 ; 0x8 + 57e8: 6c626d65 stclvs 13, cr6, [r2], #-404 + 57ec: 56207265 strtpl r7, [r0], -r5, ror #4 + 57f0: 30332e35 eorscc r2, r3, r5, lsr lr + 57f4: 352e302e strcc r3, [lr, #-46]! + 57f8: 34373131 ldrtcc r3, [r7], #-305 + 57fc: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5800: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 5804: 4d524120 ldfmie f4, [r2, #-128] + 5808: 46492d00 strbmi r2, [r9], -r0, lsl #26 + 580c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5810: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5814: 352f646c strcc r6, [pc, #-1132]! ; 53b0 + 5818: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 581c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5820: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5824: 6d72612f ldfvse f6, [r2, #-188]! + 5828: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 582c: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5830: 33352d62 teqcc r5, #6272 ; 0x1880 + 5834: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 5838: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 583c: 756f2f62 strbvc r2, [pc, #-3938]! ; 48e2 + 5840: 74757074 ldrbtvc r7, [r5], #-116 + 5844: 6d72612f ldfvse f6, [r2, #-188]! + 5848: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 584c: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 5850: 442f7365 strtmi r7, [pc], #869 ; 5858 + 5854: 3462694c strbtcc r6, [r2], #-2380 + 5858: 636e692f cmnvs lr, #770048 ; 0xbc000 + 585c: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 5860: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5864: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5868: 352f646c strcc r6, [pc, #-1132]! ; 5404 + 586c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 5870: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5874: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5878: 6d72612f ldfvse f6, [r2, #-188]! + 587c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 5880: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5884: 33352d62 teqcc r5, #6272 ; 0x1880 + 5888: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 588c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 5890: 756f2f62 strbvc r2, [pc, #-3938]! ; 4936 + 5894: 74757074 ldrbtvc r7, [r5], #-116 + 5898: 6d72612f ldfvse f6, [r2, #-188]! + 589c: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 58a0: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 58a4: 442f7365 strtmi r7, [pc], #869 ; 58ac + 58a8: 3462694c strbtcc r6, [r2], #-2380 + 58ac: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 58b0: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 58b4: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 58b8: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 58bc: 352f646c strcc r6, [pc, #-1132]! ; 5458 + 58c0: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 58c4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 58c8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 58cc: 6d72612f ldfvse f6, [r2, #-188]! + 58d0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 58d4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 58d8: 33352d62 teqcc r5, #6272 ; 0x1880 + 58dc: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 58e0: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 58e4: 756f2f62 strbvc r2, [pc, #-3938]! ; 498a + 58e8: 74757074 ldrbtvc r7, [r5], #-116 + 58ec: 6d72612f ldfvse f6, [r2, #-188]! + 58f0: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 58f4: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 58f8: 612f7365 teqvs pc, r5, ror #6 + 58fc: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 5900: 6e692f62 cdpvs 15, 6, cr2, cr9, cr2, {3} + 5904: 64756c63 ldrbtvs r6, [r5], #-3171 + 5908: 492d2065 pushmi {r0, r2, r5, r6, sp} + 590c: 612f3a46 teqvs pc, r6, asr #20 + 5910: 75626d72 strbvc r6, [r2, #-3442]! + 5914: 2f646c69 svccs 0x00646c69 + 5918: 74303335 ldrtvc r3, [r0], #-821 + 591c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5920: 6f697469 svcvs 0x00697469 + 5924: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 5928: 31315f6d teqcc r1, sp, ror #30 + 592c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 5930: 352d6269 strcc r6, [sp, #-617]! + 5934: 612f3033 teqvs pc, r3, lsr r0 + 5938: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 593c: 6f2f6269 svcvs 0x002f6269 + 5940: 75707475 ldrbvc r7, [r0, #-1141]! + 5944: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 5948: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 594c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5950: 2f736569 svccs 0x00736569 + 5954: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 5958: 732f6269 teqvc pc, #-1879048186 ; 0x90000006 + 595c: 2f326372 svccs 0x00326372 + 5960: 6c636e69 stclvs 14, cr6, [r3], #-420 + 5964: 20656475 rsbcs r6, r5, r5, ror r4 + 5968: 3a46492d bcc 1197e24 + 596c: 6d72612f ldfvse f6, [r2, #-188]! + 5970: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 5974: 33352f64 teqcc r5, #400 ; 0x190 + 5978: 61727430 cmnvs r2, r0, lsr r4 + 597c: 7469736e strbtvc r7, [r9], #-878 + 5980: 2f6e6f69 svccs 0x006e6f69 + 5984: 5f6d7261 svcpl 0x006d7261 + 5988: 35393131 ldrcc r3, [r9, #-305]! + 598c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 5990: 3033352d eorscc r3, r3, sp, lsr #10 + 5994: 6d72612f ldfvse f6, [r2, #-188]! + 5998: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 599c: 706d742f rsbvc r7, sp, pc, lsr #8 + 59a0: 6975622f ldmdbvs r5!, {r0, r1, r2, r3, r5, r9, sp, lr}^ + 59a4: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 59a8: 2d2d2062 stccs 0, cr2, [sp, #-392]! + 59ac: 20757063 rsbscs r7, r5, r3, rrx + 59b0: 394d5241 stmdbcc sp, {r0, r6, r9, ip, lr}^ + 59b4: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 59b8: 652d2d20 strvs r2, [sp, #-3360]! + 59bc: 6169646e cmnvs r9, lr, ror #8 + 59c0: 696c206e stmdbvs ip!, {r1, r2, r3, r5, r6, sp}^ + 59c4: 656c7474 strbvs r7, [ip, #-1140]! + 59c8: 5f442d20 svcpl 0x00442d20 + 59cc: 464c455f undefined + 59d0: 4955425f ldmdbmi r5, {r0, r1, r2, r3, r4, r6, r9, lr}^ + 59d4: 5f5f444c svcpl 0x005f444c + 59d8: 5f442d20 svcpl 0x00442d20 + 59dc: 4d52415f ldfmie f4, [r2, #-380] + 59e0: 42494c5f submi r4, r9, #24320 ; 0x5f00 + 59e4: 59524152 ldmdbpl r2, {r1, r4, r6, r8, lr}^ + 59e8: 2d205f5f stccs 15, cr5, [r0, #-380]! + 59ec: 43455f44 movtmi r5, #24388 ; 0x5f44 + 59f0: 53554c50 cmppl r5, #20480 ; 0x5000 + 59f4: 53554c50 cmppl r5, #20480 ; 0x5000 + 59f8: 20532d20 subscs r2, r3, r0, lsr #26 + 59fc: 2073772d rsbscs r7, r3, sp, lsr #14 + 5a00: 5f5f442d svcpl 0x005f442d + 5a04: 5f54504f svcpl 0x0054504f + 5a08: 4944454d stmdbmi r4, {r0, r2, r3, r6, r8, sl, lr}^ + 5a0c: 5f5f4d55 svcpl 0x005f4d55 + 5a10: 2f3a4620 svccs 0x003a4620 + 5a14: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 5a18: 646c6975 strbtvs r6, [ip], #-2421 + 5a1c: 3033352f eorscc r3, r3, pc, lsr #10 + 5a20: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 5a24: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 5a28: 612f6e6f teqvs pc, pc, ror #28 + 5a2c: 315f6d72 cmpcc pc, r2, ror sp + 5a30: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 5a34: 2d62696c stclcs 9, cr6, [r2, #-432]! + 5a38: 2f303335 svccs 0x00303335 + 5a3c: 2f6d7261 svccs 0x006d7261 + 5a40: 2f62696c svccs 0x0062696c + 5a44: 7074756f rsbsvc r7, r4, pc, ror #10 + 5a48: 612f7475 teqvs pc, r5, ror r4 + 5a4c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 5a50: 61726269 cmnvs r2, r9, ror #4 + 5a54: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 5a58: 6d72612f ldfvse f6, [r2, #-188]! + 5a5c: 5c62696c stclpl 9, cr6, [r2], #-432 + 5a60: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 5a64: 6d72612f ldfvse f6, [r2, #-188]! + 5a68: 6474732f ldrbtvs r7, [r4], #-815 + 5a6c: 42412f63 submi r2, r1, #396 ; 0x18c + 5a70: 6d656d49 stclvs 13, cr6, [r5, #-292]! + 5a74: 34726c63 ldrbtcc r6, [r2], #-3171 + 5a78: 2d20732e stccs 3, cr7, [r0, #-184]! + 5a7c: 3a46206f bcc 118dc40 + 5a80: 6d72615c ldfvse f6, [r2, #-368]! + 5a84: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 5a88: 33355c64 teqcc r5, #25600 ; 0x6400 + 5a8c: 61727430 cmnvs r2, r0, lsr r4 + 5a90: 7469736e strbtvc r7, [r9], #-878 + 5a94: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 5a98: 5f6d7261 svcpl 0x006d7261 + 5a9c: 35393131 ldrcc r3, [r9, #-305]! + 5aa0: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 5aa4: 3033352d eorscc r3, r3, sp, lsr #10 + 5aa8: 6d72615c ldfvse f6, [r2, #-368]! + 5aac: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 5ab0: 706d745c rsbvc r7, sp, ip, asr r4 + 5ab4: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 5ab8: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 5abc: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 5ac0: 74725c6a ldrbtvc r5, [r2], #-3178 + 5ac4: 615f7434 cmpvs pc, r4, lsr r4 + 5ac8: 42415c6c submi r5, r1, #27648 ; 0x6c00 + 5acc: 6d656d49 stclvs 13, cr6, [r5, #-292]! + 5ad0: 34726c63 ldrbtcc r6, [r2], #-3171 + 5ad4: 00006f2e andeq r6, r0, lr, lsr #30 + 5ad8: 6d494241 sfmvs f4, 2, [r9, #-260] + 5adc: 70636d65 rsbvc r6, r3, r5, ror #26 + 5ae0: 286f2e79 stmdacs pc!, {r0, r3, r4, r5, r6, r9, sl, fp, sp}^ + 5ae4: 74347472 ldrtvc r7, [r4], #-1138 + 5ae8: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} + 5aec: 003a2961 eorseq r2, sl, r1, ror #18 + 5af0: 52414900 subpl r4, r1, #0 ; 0x0 + 5af4: 73734120 cmnvc r3, #8 ; 0x8 + 5af8: 6c626d65 stclvs 13, cr6, [r2], #-404 + 5afc: 56207265 strtpl r7, [r0], -r5, ror #4 + 5b00: 30332e35 eorscc r2, r3, r5, lsr lr + 5b04: 352e302e strcc r3, [lr, #-46]! + 5b08: 34373131 ldrtcc r3, [r7], #-305 + 5b0c: 3233572f eorscc r5, r3, #12320768 ; 0xbc0000 + 5b10: 726f6620 rsbvc r6, pc, #33554432 ; 0x2000000 + 5b14: 4d524120 ldfmie f4, [r2, #-128] + 5b18: 46492d00 strbmi r2, [r9], -r0, lsl #26 + 5b1c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5b20: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5b24: 352f646c strcc r6, [pc, #-1132]! ; 56c0 + 5b28: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 5b2c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5b30: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5b34: 6d72612f ldfvse f6, [r2, #-188]! + 5b38: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 5b3c: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5b40: 33352d62 teqcc r5, #6272 ; 0x1880 + 5b44: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 5b48: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 5b4c: 756f2f62 strbvc r2, [pc, #-3938]! ; 4bf2 + 5b50: 74757074 ldrbtvc r7, [r5], #-116 + 5b54: 6d72612f ldfvse f6, [r2, #-188]! + 5b58: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 5b5c: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 5b60: 442f7365 strtmi r7, [pc], #869 ; 5b68 + 5b64: 3462694c strbtcc r6, [r2], #-2380 + 5b68: 636e692f cmnvs lr, #770048 ; 0xbc000 + 5b6c: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 5b70: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5b74: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5b78: 352f646c strcc r6, [pc, #-1132]! ; 5714 + 5b7c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 5b80: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5b84: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5b88: 6d72612f ldfvse f6, [r2, #-188]! + 5b8c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 5b90: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5b94: 33352d62 teqcc r5, #6272 ; 0x1880 + 5b98: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 5b9c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 5ba0: 756f2f62 strbvc r2, [pc, #-3938]! ; 4c46 + 5ba4: 74757074 ldrbtvc r7, [r5], #-116 + 5ba8: 6d72612f ldfvse f6, [r2, #-188]! + 5bac: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 5bb0: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 5bb4: 442f7365 strtmi r7, [pc], #869 ; 5bbc + 5bb8: 3462694c strbtcc r6, [r2], #-2380 + 5bbc: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 5bc0: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 5bc4: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5bc8: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5bcc: 352f646c strcc r6, [pc, #-1132]! ; 5768 + 5bd0: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 5bd4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5bd8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5bdc: 6d72612f ldfvse f6, [r2, #-188]! + 5be0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 5be4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5be8: 33352d62 teqcc r5, #6272 ; 0x1880 + 5bec: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 5bf0: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 5bf4: 756f2f62 strbvc r2, [pc, #-3938]! ; 4c9a + 5bf8: 74757074 ldrbtvc r7, [r5], #-116 + 5bfc: 6d72612f ldfvse f6, [r2, #-188]! + 5c00: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 5c04: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 5c08: 612f7365 teqvs pc, r5, ror #6 + 5c0c: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 5c10: 6e692f62 cdpvs 15, 6, cr2, cr9, cr2, {3} + 5c14: 64756c63 ldrbtvs r6, [r5], #-3171 + 5c18: 492d2065 pushmi {r0, r2, r5, r6, sp} + 5c1c: 612f3a46 teqvs pc, r6, asr #20 + 5c20: 75626d72 strbvc r6, [r2, #-3442]! + 5c24: 2f646c69 svccs 0x00646c69 + 5c28: 74303335 ldrtvc r3, [r0], #-821 + 5c2c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5c30: 6f697469 svcvs 0x00697469 + 5c34: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 5c38: 31315f6d teqcc r1, sp, ror #30 + 5c3c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 5c40: 352d6269 strcc r6, [sp, #-617]! + 5c44: 612f3033 teqvs pc, r3, lsr r0 + 5c48: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 5c4c: 6f2f6269 svcvs 0x002f6269 + 5c50: 75707475 ldrbvc r7, [r0, #-1141]! + 5c54: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 5c58: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5c5c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5c60: 2f736569 svccs 0x00736569 + 5c64: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 5c68: 732f6269 teqvc pc, #-1879048186 ; 0x90000006 + 5c6c: 2f326372 svccs 0x00326372 + 5c70: 6c636e69 stclvs 14, cr6, [r3], #-420 + 5c74: 20656475 rsbcs r6, r5, r5, ror r4 + 5c78: 3a46492d bcc 1198134 + 5c7c: 6d72612f ldfvse f6, [r2, #-188]! + 5c80: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 5c84: 33352f64 teqcc r5, #400 ; 0x190 + 5c88: 61727430 cmnvs r2, r0, lsr r4 + 5c8c: 7469736e strbtvc r7, [r9], #-878 + 5c90: 2f6e6f69 svccs 0x006e6f69 + 5c94: 5f6d7261 svcpl 0x006d7261 + 5c98: 35393131 ldrcc r3, [r9, #-305]! + 5c9c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 5ca0: 3033352d eorscc r3, r3, sp, lsr #10 + 5ca4: 6d72612f ldfvse f6, [r2, #-188]! + 5ca8: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 5cac: 706d742f rsbvc r7, sp, pc, lsr #8 + 5cb0: 6975622f ldmdbvs r5!, {r0, r1, r2, r3, r5, r9, sp, lr}^ + 5cb4: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 5cb8: 2d2d2062 stccs 0, cr2, [sp, #-392]! + 5cbc: 20757063 rsbscs r7, r5, r3, rrx + 5cc0: 394d5241 stmdbcc sp, {r0, r6, r9, ip, lr}^ + 5cc4: 494d4454 stmdbmi sp, {r2, r4, r6, sl, lr}^ + 5cc8: 652d2d20 strvs r2, [sp, #-3360]! + 5ccc: 6169646e cmnvs r9, lr, ror #8 + 5cd0: 696c206e stmdbvs ip!, {r1, r2, r3, r5, r6, sp}^ + 5cd4: 656c7474 strbvs r7, [ip, #-1140]! + 5cd8: 5f442d20 svcpl 0x00442d20 + 5cdc: 464c455f undefined + 5ce0: 4955425f ldmdbmi r5, {r0, r1, r2, r3, r4, r6, r9, lr}^ + 5ce4: 5f5f444c svcpl 0x005f444c + 5ce8: 5f442d20 svcpl 0x00442d20 + 5cec: 4d52415f ldfmie f4, [r2, #-380] + 5cf0: 42494c5f submi r4, r9, #24320 ; 0x5f00 + 5cf4: 59524152 ldmdbpl r2, {r1, r4, r6, r8, lr}^ + 5cf8: 2d205f5f stccs 15, cr5, [r0, #-380]! + 5cfc: 43455f44 movtmi r5, #24388 ; 0x5f44 + 5d00: 53554c50 cmppl r5, #20480 ; 0x5000 + 5d04: 53554c50 cmppl r5, #20480 ; 0x5000 + 5d08: 20532d20 subscs r2, r3, r0, lsr #26 + 5d0c: 2073772d rsbscs r7, r3, sp, lsr #14 + 5d10: 5f5f442d svcpl 0x005f442d + 5d14: 5f54504f svcpl 0x0054504f + 5d18: 4944454d stmdbmi r4, {r0, r2, r3, r6, r8, sl, lr}^ + 5d1c: 5f5f4d55 svcpl 0x005f4d55 + 5d20: 2f3a4620 svccs 0x003a4620 + 5d24: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 5d28: 646c6975 strbtvs r6, [ip], #-2421 + 5d2c: 3033352f eorscc r3, r3, pc, lsr #10 + 5d30: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 5d34: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 5d38: 612f6e6f teqvs pc, pc, ror #28 + 5d3c: 315f6d72 cmpcc pc, r2, ror sp + 5d40: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 5d44: 2d62696c stclcs 9, cr6, [r2, #-432]! + 5d48: 2f303335 svccs 0x00303335 + 5d4c: 2f6d7261 svccs 0x006d7261 + 5d50: 2f62696c svccs 0x0062696c + 5d54: 7074756f rsbsvc r7, r4, pc, ror #10 + 5d58: 612f7475 teqvs pc, r5, ror r4 + 5d5c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 5d60: 61726269 cmnvs r2, r9, ror #4 + 5d64: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 5d68: 6d72612f ldfvse f6, [r2, #-188]! + 5d6c: 5c62696c stclpl 9, cr6, [r2], #-432 + 5d70: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 5d74: 6d72612f ldfvse f6, [r2, #-188]! + 5d78: 6474732f ldrbtvs r7, [r4], #-815 + 5d7c: 42412f63 submi r2, r1, #396 ; 0x18c + 5d80: 6d656d49 stclvs 13, cr6, [r5, #-292]! + 5d84: 2e797063 cdpcs 0, 7, cr7, cr9, cr3, {3} + 5d88: 6f2d2073 svcvs 0x002d2073 + 5d8c: 5c3a4620 ldcpl 6, cr4, [sl], #-128 + 5d90: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 5d94: 646c6975 strbtvs r6, [ip], #-2421 + 5d98: 3033355c eorscc r3, r3, ip, asr r5 + 5d9c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 5da0: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 5da4: 615c6e6f cmpvs ip, pc, ror #28 + 5da8: 315f6d72 cmpcc pc, r2, ror sp + 5dac: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 5db0: 2d62696c stclcs 9, cr6, [r2, #-432]! + 5db4: 5c303335 ldcpl 3, cr3, [r0], #-212 + 5db8: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 5dbc: 5c62696c stclpl 9, cr6, [r2], #-432 + 5dc0: 5c706d74 ldclpl 13, cr6, [r0], #-464 + 5dc4: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 5dc8: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 5dcc: 6a626f5c bvs 18a1b44 + 5dd0: 3474725c ldrbtcc r7, [r4], #-604 + 5dd4: 6c615f74 stclvs 15, cr5, [r1], #-464 + 5dd8: 4942415c stmdbmi r2, {r2, r3, r4, r6, r8, lr}^ + 5ddc: 636d656d cmnvs sp, #457179136 ; 0x1b400000 + 5de0: 6f2e7970 svcvs 0x002e7970 + 5de4: 61640000 cmnvs r4, r0 + 5de8: 695f6174 ldmdbvs pc, {r2, r4, r5, r6, r8, sp, lr}^ + 5dec: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 5df0: 72286f2e eorvc r6, r8, #184 ; 0xb8 + 5df4: 5f743474 svcpl 0x00743474 + 5df8: 612e6c61 teqvs lr, r1, ror #24 + 5dfc: 00003a29 andeq r3, r0, r9, lsr #20 + 5e00: 20524149 subscs r4, r2, r9, asr #2 + 5e04: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 5e08: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 5e0c: 43202b2b teqmi r0, #44032 ; 0xac00 + 5e10: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 5e14: 2072656c rsbscs r6, r2, ip, ror #10 + 5e18: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 5e1c: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 5e20: 37313135 undefined + 5e24: 33572f34 cmpcc r7, #208 ; 0xd0 + 5e28: 6f662032 svcvs 0x00662032 + 5e2c: 52412072 subpl r2, r1, #114 ; 0x72 + 5e30: 492d004d pushmi {r0, r2, r3, r6} + 5e34: 612f3a46 teqvs pc, r6, asr #20 + 5e38: 75626d72 strbvc r6, [r2, #-3442]! + 5e3c: 2f646c69 svccs 0x00646c69 + 5e40: 74303335 ldrtvc r3, [r0], #-821 + 5e44: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5e48: 6f697469 svcvs 0x00697469 + 5e4c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 5e50: 31315f6d teqcc r1, sp, ror #30 + 5e54: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 5e58: 352d6269 strcc r6, [sp, #-617]! + 5e5c: 612f3033 teqvs pc, r3, lsr r0 + 5e60: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 5e64: 6f2f6269 svcvs 0x002f6269 + 5e68: 75707475 ldrbvc r7, [r0, #-1141]! + 5e6c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 5e70: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5e74: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5e78: 2f736569 svccs 0x00736569 + 5e7c: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 5e80: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} + 5e84: 492d2063 pushmi {r0, r1, r5, r6, sp} + 5e88: 612f3a46 teqvs pc, r6, asr #20 + 5e8c: 75626d72 strbvc r6, [r2, #-3442]! + 5e90: 2f646c69 svccs 0x00646c69 + 5e94: 74303335 ldrtvc r3, [r0], #-821 + 5e98: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5e9c: 6f697469 svcvs 0x00697469 + 5ea0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 5ea4: 31315f6d teqcc r1, sp, ror #30 + 5ea8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 5eac: 352d6269 strcc r6, [sp, #-617]! + 5eb0: 612f3033 teqvs pc, r3, lsr r0 + 5eb4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 5eb8: 6f2f6269 svcvs 0x002f6269 + 5ebc: 75707475 ldrbvc r7, [r0, #-1141]! + 5ec0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 5ec4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5ec8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5ecc: 2f736569 svccs 0x00736569 + 5ed0: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 5ed4: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 + 5ed8: 492d2063 pushmi {r0, r1, r5, r6, sp} + 5edc: 612f3a46 teqvs pc, r6, asr #20 + 5ee0: 75626d72 strbvc r6, [r2, #-3442]! + 5ee4: 2f646c69 svccs 0x00646c69 + 5ee8: 74303335 ldrtvc r3, [r0], #-821 + 5eec: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 5ef0: 6f697469 svcvs 0x00697469 + 5ef4: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 5ef8: 31315f6d teqcc r1, sp, ror #30 + 5efc: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 5f00: 352d6269 strcc r6, [sp, #-617]! + 5f04: 612f3033 teqvs pc, r3, lsr r0 + 5f08: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 5f0c: 6f2f6269 svcvs 0x002f6269 + 5f10: 75707475 ldrbvc r7, [r0, #-1141]! + 5f14: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 5f18: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 5f1c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 5f20: 2f736569 svccs 0x00736569 + 5f24: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 5f28: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} + 5f2c: 756c636e strbvc r6, [ip, #-878]! + 5f30: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 5f34: 2f3a4649 svccs 0x003a4649 + 5f38: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 5f3c: 646c6975 strbtvs r6, [ip], #-2421 + 5f40: 3033352f eorscc r3, r3, pc, lsr #10 + 5f44: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 5f48: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 5f4c: 612f6e6f teqvs pc, pc, ror #28 + 5f50: 315f6d72 cmpcc pc, r2, ror sp + 5f54: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 5f58: 2d62696c stclcs 9, cr6, [r2, #-432]! + 5f5c: 2f303335 svccs 0x00303335 + 5f60: 2f6d7261 svccs 0x006d7261 + 5f64: 2f62696c svccs 0x0062696c + 5f68: 7074756f rsbsvc r7, r4, pc, ror #10 + 5f6c: 612f7475 teqvs pc, r5, ror r4 + 5f70: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 5f74: 61726269 cmnvs r2, r9, ror #4 + 5f78: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 5f7c: 6d72612f ldfvse f6, [r2, #-188]! + 5f80: 2f62696c svccs 0x0062696c + 5f84: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 5f88: 636e692f cmnvs lr, #770048 ; 0xbc000 + 5f8c: 6564756c strbvs r7, [r4, #-1388]! + 5f90: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 5f94: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 5f98: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 5f9c: 352f646c strcc r6, [pc, #-1132]! ; 5b38 + 5fa0: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 5fa4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 5fa8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 5fac: 6d72612f ldfvse f6, [r2, #-188]! + 5fb0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 5fb4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 5fb8: 33352d62 teqcc r5, #6272 ; 0x1880 + 5fbc: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 5fc0: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 5fc4: 6d742f62 ldclvs 15, cr2, [r4, #-392]! + 5fc8: 75622f70 strbvc r2, [r2, #-3952]! + 5fcc: 6c646c69 stclvs 12, cr6, [r4], #-420 + 5fd0: 2d206269 sfmcs f6, 4, [r0, #-420]! + 5fd4: 7570632d ldrbvc r6, [r0, #-813]! + 5fd8: 4d524120 ldfmie f4, [r2, #-128] + 5fdc: 4d445439 cfstrdmi mvd5, [r4, #-228] + 5fe0: 2d2d2049 stccs 0, cr2, [sp, #-292]! + 5fe4: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 5fe8: 6c206e61 stcvs 14, cr6, [r0], #-388 + 5fec: 6c747469 cfldrdvs mvd7, [r4], #-420 + 5ff0: 442d2065 strtmi r2, [sp], #-101 + 5ff4: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 + 5ff8: 55425f46 strbpl r5, [r2, #-3910] + 5ffc: 5f444c49 svcpl 0x00444c49 + 6000: 442d205f strtmi r2, [sp], #-95 + 6004: 52415f5f subpl r5, r1, #380 ; 0x17c + 6008: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ + 600c: 52415242 subpl r5, r1, #536870916 ; 0x20000004 + 6010: 205f5f59 subscs r5, pc, r9, asr pc + 6014: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 + 6018: 2d2d206d stccs 0, cr2, [sp, #-436]! + 601c: 65746e69 ldrbvs r6, [r4, #-3689]! + 6020: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 6024: 4f2d206b svcmi 0x002d206b + 6028: 2d2d2068 stccs 0, cr2, [sp, #-416]! + 602c: 656c6973 strbvs r6, [ip, #-2419]! + 6030: 2d20746e cfstrscs mvf7, [r0, #-440]! + 6034: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 + 6038: 676e696e strbvs r6, [lr, -lr, ror #18]! + 603c: 72615f73 rsbvc r5, r1, #460 ; 0x1cc + 6040: 72655f65 rsbvc r5, r5, #404 ; 0x194 + 6044: 73726f72 cmnvc r2, #456 ; 0x1c8 + 6048: 732d2d20 teqvc sp, #2048 ; 0x800 + 604c: 63697274 cmnvs r9, #1073741831 ; 0x40000007 + 6050: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} + 6054: 2d206973 stccs 9, cr6, [r0, #-460]! + 6058: 6c6e6f2d stclvs 15, cr6, [lr], #-180 + 605c: 74735f79 ldrbtvc r5, [r3], #-3961 + 6060: 74756f64 ldrbtvc r6, [r5], #-3940 + 6064: 642d2d20 strtvs r2, [sp], #-3360 + 6068: 5f676169 svcpl 0x00676169 + 606c: 70707573 rsbsvc r7, r0, r3, ror r5 + 6070: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 6074: 306f473d rsbcc r4, pc, sp, lsr r7 + 6078: 2d203530 cfstr32cs mvfx3, [r0, #-192]! + 607c: 6169642d cmnvs r9, sp, lsr #8 + 6080: 75735f67 ldrbvc r5, [r3, #-3943]! + 6084: 65727070 ldrbvs r7, [r2, #-112]! + 6088: 503d7373 eorspl r7, sp, r3, ror r3 + 608c: 30353465 eorscc r3, r5, r5, ror #8 + 6090: 642d2d20 strtvs r2, [sp], #-3360 + 6094: 5f676169 svcpl 0x00676169 + 6098: 6f727265 svcvs 0x00727265 + 609c: 65503d72 ldrbvs r3, [r0, #-3442] + 60a0: 20333931 eorscs r3, r3, r1, lsr r9 + 60a4: 612f3a46 teqvs pc, r6, asr #20 + 60a8: 75626d72 strbvc r6, [r2, #-3442]! + 60ac: 2f646c69 svccs 0x00646c69 + 60b0: 74303335 ldrtvc r3, [r0], #-821 + 60b4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 60b8: 6f697469 svcvs 0x00697469 + 60bc: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 60c0: 31315f6d teqcc r1, sp, ror #30 + 60c4: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 60c8: 352d6269 strcc r6, [sp, #-617]! + 60cc: 612f3033 teqvs pc, r3, lsr r0 + 60d0: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 60d4: 6f2f6269 svcvs 0x002f6269 + 60d8: 75707475 ldrbvc r7, [r0, #-1141]! + 60dc: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 60e0: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 60e4: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 60e8: 2f736569 svccs 0x00736569 + 60ec: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 60f0: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 + 60f4: 2f326372 svccs 0x00326372 + 60f8: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! + 60fc: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} + 6100: 2f74696e svccs 0x0074696e + 6104: 61746164 cmnvs r4, r4, ror #2 + 6108: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 610c: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 6110: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 6114: 615c3a46 cmpvs ip, r6, asr #20 + 6118: 75626d72 strbvc r6, [r2, #-3442]! + 611c: 5c646c69 stclpl 12, cr6, [r4], #-420 + 6120: 74303335 ldrtvc r3, [r0], #-821 + 6124: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6128: 6f697469 svcvs 0x00697469 + 612c: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 6130: 31315f6d teqcc r1, sp, ror #30 + 6134: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 6138: 352d6269 strcc r6, [sp, #-617]! + 613c: 615c3033 cmpvs ip, r3, lsr r0 + 6140: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 6144: 745c6269 ldrbvc r6, [ip], #-617 + 6148: 625c706d subsvs r7, ip, #109 ; 0x6d + 614c: 646c6975 strbtvs r6, [ip], #-2421 + 6150: 5c62696c stclpl 9, cr6, [r2], #-432 + 6154: 5c6a626f sfmpl f6, 2, [sl], #-444 + 6158: 74347472 ldrtvc r7, [r4], #-1138 + 615c: 5c6c615f stfple f6, [ip], #-380 + 6160: 61746164 cmnvs r4, r4, ror #2 + 6164: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 6168: 6f2e3274 svcvs 0x002e3274 + 616c: 642d2d20 strtvs r2, [sp], #-3360 + 6170: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} + 6174: 636e6564 cmnvs lr, #419430400 ; 0x19000000 + 6178: 3d736569 cfldr64cc mvdx6, [r3, #-420]! + 617c: 3a462069 bcc 118e328 + 6180: 6d72615c ldfvse f6, [r2, #-368]! + 6184: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6188: 33355c64 teqcc r5, #25600 ; 0x6400 + 618c: 61727430 cmnvs r2, r0, lsr r4 + 6190: 7469736e strbtvc r7, [r9], #-878 + 6194: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 6198: 5f6d7261 svcpl 0x006d7261 + 619c: 35393131 ldrcc r3, [r9, #-305]! + 61a0: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 61a4: 3033352d eorscc r3, r3, sp, lsr #10 + 61a8: 6d72615c ldfvse f6, [r2, #-368]! + 61ac: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 61b0: 706d745c rsbvc r7, sp, ip, asr r4 + 61b4: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 61b8: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 61bc: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 61c0: 74725c6a ldrbtvc r5, [r2], #-3178 + 61c4: 615f7434 cmpvs pc, r4, lsr r4 + 61c8: 61645c6c cmnvs r4, ip, ror #24 + 61cc: 695f6174 ldmdbvs pc, {r2, r4, r5, r6, r8, sp, lr}^ + 61d0: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 61d4: 0000642e andeq r6, r0, lr, lsr #8 + 61d8: 6d494241 sfmvs f4, 2, [r9, #-260] + 61dc: 65736d65 ldrbvs r6, [r3, #-3429]! + 61e0: 2e383474 mrccs 4, 1, r3, cr8, cr4, {3} + 61e4: 7472286f ldrbtvc r2, [r2], #-2159 + 61e8: 615f7434 cmpvs pc, r4, lsr r4 + 61ec: 29612e6c stmdbcs r1!, {r2, r3, r5, r6, r9, sl, fp, sp}^ + 61f0: 4900003a stmdbmi r0, {r1, r3, r4, r5} + 61f4: 41205241 teqmi r0, r1, asr #4 + 61f8: 6d657373 stclvs 3, cr7, [r5, #-460]! + 61fc: 72656c62 rsbvc r6, r5, #25088 ; 0x6200 + 6200: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 6204: 302e3033 eorcc r3, lr, r3, lsr r0 + 6208: 3131352e teqcc r1, lr, lsr #10 + 620c: 572f3437 undefined + 6210: 66203233 undefined + 6214: 4120726f teqmi r0, pc, ror #4 + 6218: 2d004d52 stccs 13, cr4, [r0, #-328] + 621c: 2f3a4649 svccs 0x003a4649 + 6220: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6224: 646c6975 strbtvs r6, [ip], #-2421 + 6228: 3033352f eorscc r3, r3, pc, lsr #10 + 622c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6230: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6234: 612f6e6f teqvs pc, pc, ror #28 + 6238: 315f6d72 cmpcc pc, r2, ror sp + 623c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6240: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6244: 2f303335 svccs 0x00303335 + 6248: 2f6d7261 svccs 0x006d7261 + 624c: 2f62696c svccs 0x0062696c + 6250: 7074756f rsbsvc r7, r4, pc, ror #10 + 6254: 612f7475 teqvs pc, r5, ror r4 + 6258: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 625c: 61726269 cmnvs r2, r9, ror #4 + 6260: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6264: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 6268: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} + 626c: 2d20636e stccs 3, cr6, [r0, #-440]! + 6270: 2f3a4649 svccs 0x003a4649 + 6274: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6278: 646c6975 strbtvs r6, [ip], #-2421 + 627c: 3033352f eorscc r3, r3, pc, lsr #10 + 6280: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6284: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6288: 612f6e6f teqvs pc, pc, ror #28 + 628c: 315f6d72 cmpcc pc, r2, ror sp + 6290: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6294: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6298: 2f303335 svccs 0x00303335 + 629c: 2f6d7261 svccs 0x006d7261 + 62a0: 2f62696c svccs 0x0062696c + 62a4: 7074756f rsbsvc r7, r4, pc, ror #10 + 62a8: 612f7475 teqvs pc, r5, ror r4 + 62ac: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 62b0: 61726269 cmnvs r2, r9, ror #4 + 62b4: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 62b8: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 62bc: 732f3462 teqvc pc, #1644167168 ; 0x62000000 + 62c0: 2d206372 stccs 3, cr6, [r0, #-456]! + 62c4: 2f3a4649 svccs 0x003a4649 + 62c8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 62cc: 646c6975 strbtvs r6, [ip], #-2421 + 62d0: 3033352f eorscc r3, r3, pc, lsr #10 + 62d4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 62d8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 62dc: 612f6e6f teqvs pc, pc, ror #28 + 62e0: 315f6d72 cmpcc pc, r2, ror sp + 62e4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 62e8: 2d62696c stclcs 9, cr6, [r2, #-432]! + 62ec: 2f303335 svccs 0x00303335 + 62f0: 2f6d7261 svccs 0x006d7261 + 62f4: 2f62696c svccs 0x0062696c + 62f8: 7074756f rsbsvc r7, r4, pc, ror #10 + 62fc: 612f7475 teqvs pc, r5, ror r4 + 6300: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6304: 61726269 cmnvs r2, r9, ror #4 + 6308: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 630c: 6d72612f ldfvse f6, [r2, #-188]! + 6310: 2f62696c svccs 0x0062696c + 6314: 6c636e69 stclvs 14, cr6, [r3], #-420 + 6318: 20656475 rsbcs r6, r5, r5, ror r4 + 631c: 3a46492d bcc 11987d8 + 6320: 6d72612f ldfvse f6, [r2, #-188]! + 6324: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6328: 33352f64 teqcc r5, #400 ; 0x190 + 632c: 61727430 cmnvs r2, r0, lsr r4 + 6330: 7469736e strbtvc r7, [r9], #-878 + 6334: 2f6e6f69 svccs 0x006e6f69 + 6338: 5f6d7261 svcpl 0x006d7261 + 633c: 35393131 ldrcc r3, [r9, #-305]! + 6340: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6344: 3033352d eorscc r3, r3, sp, lsr #10 + 6348: 6d72612f ldfvse f6, [r2, #-188]! + 634c: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 6350: 74756f2f ldrbtvc r6, [r5], #-3887 + 6354: 2f747570 svccs 0x00747570 + 6358: 5f6d7261 svcpl 0x006d7261 + 635c: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 6360: 65697261 strbvs r7, [r9, #-609]! + 6364: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 6368: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 636c: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 6370: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} + 6374: 64756c63 ldrbtvs r6, [r5], #-3171 + 6378: 492d2065 pushmi {r0, r2, r5, r6, sp} + 637c: 612f3a46 teqvs pc, r6, asr #20 + 6380: 75626d72 strbvc r6, [r2, #-3442]! + 6384: 2f646c69 svccs 0x00646c69 + 6388: 74303335 ldrtvc r3, [r0], #-821 + 638c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6390: 6f697469 svcvs 0x00697469 + 6394: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 6398: 31315f6d teqcc r1, sp, ror #30 + 639c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 63a0: 352d6269 strcc r6, [sp, #-617]! + 63a4: 612f3033 teqvs pc, r3, lsr r0 + 63a8: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 63ac: 742f6269 strtvc r6, [pc], #617 ; 63b4 + 63b0: 622f706d eorvs r7, pc, #109 ; 0x6d + 63b4: 646c6975 strbtvs r6, [ip], #-2421 + 63b8: 2062696c rsbcs r6, r2, ip, ror #18 + 63bc: 70632d2d rsbvc r2, r3, sp, lsr #26 + 63c0: 52412075 subpl r2, r1, #117 ; 0x75 + 63c4: 4454394d ldrbmi r3, [r4], #-2381 + 63c8: 2d20494d stccs 9, cr4, [r0, #-308]! + 63cc: 646e652d strbtvs r6, [lr], #-1325 + 63d0: 206e6169 rsbcs r6, lr, r9, ror #2 + 63d4: 7474696c ldrbtvc r6, [r4], #-2412 + 63d8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 63dc: 455f5f44 ldrbmi r5, [pc, #-3908] ; 54a0 + 63e0: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 + 63e4: 444c4955 strbmi r4, [ip], #-2389 + 63e8: 2d205f5f stccs 15, cr5, [r0, #-380]! + 63ec: 415f5f44 cmpmi pc, r4, asr #30 + 63f0: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 + 63f4: 41524249 cmpmi r2, r9, asr #4 + 63f8: 5f5f5952 svcpl 0x005f5952 + 63fc: 5f442d20 svcpl 0x00442d20 + 6400: 4c504345 mrrcmi 3, 4, r4, r0, cr5 + 6404: 4c505355 mrrcmi 3, 5, r5, r0, cr5 + 6408: 2d205355 stccs 3, cr5, [r0, #-340]! + 640c: 772d2053 undefined + 6410: 442d2073 strtmi r2, [sp], #-115 + 6414: 504f5f5f subpl r5, pc, pc, asr pc + 6418: 454d5f54 strbmi r5, [sp, #-3924] + 641c: 4d554944 ldclmi 9, cr4, [r5, #-272] + 6420: 46205f5f qsubaddxmi r5, r0, pc + 6424: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 6428: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 642c: 352f646c strcc r6, [pc, #-1132]! ; 5fc8 + 6430: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 6434: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 6438: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 643c: 6d72612f ldfvse f6, [r2, #-188]! + 6440: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 6444: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 6448: 33352d62 teqcc r5, #6272 ; 0x1880 + 644c: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 6450: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 6454: 756f2f62 strbvc r2, [pc, #-3938]! ; 54fa + 6458: 74757074 ldrbtvc r7, [r5], #-116 + 645c: 6d72612f ldfvse f6, [r2, #-188]! + 6460: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 6464: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 6468: 612f7365 teqvs pc, r5, ror #6 + 646c: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 6470: 72735c62 rsbsvc r5, r3, #25088 ; 0x6200 + 6474: 612f3263 teqvs pc, r3, ror #4 + 6478: 732f6d72 teqvc pc, #7296 ; 0x1c80 + 647c: 2f636474 svccs 0x00636474 + 6480: 6d494241 sfmvs f4, 2, [r9, #-260] + 6484: 65736d65 ldrbvs r6, [r3, #-3429]! + 6488: 2e383474 mrccs 4, 1, r3, cr8, cr4, {3} + 648c: 6f2d2073 svcvs 0x002d2073 + 6490: 5c3a4620 ldcpl 6, cr4, [sl], #-128 + 6494: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6498: 646c6975 strbtvs r6, [ip], #-2421 + 649c: 3033355c eorscc r3, r3, ip, asr r5 + 64a0: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 64a4: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 64a8: 615c6e6f cmpvs ip, pc, ror #28 + 64ac: 315f6d72 cmpcc pc, r2, ror sp + 64b0: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 64b4: 2d62696c stclcs 9, cr6, [r2, #-432]! + 64b8: 5c303335 ldcpl 3, cr3, [r0], #-212 + 64bc: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 64c0: 5c62696c stclpl 9, cr6, [r2], #-432 + 64c4: 5c706d74 ldclpl 13, cr6, [r0], #-464 + 64c8: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 64cc: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 64d0: 6a626f5c bvs 18a2248 + 64d4: 3474725c ldrbtcc r7, [r4], #-604 + 64d8: 6c615f74 stclvs 15, cr5, [r1], #-464 + 64dc: 4942415c stmdbmi r2, {r2, r3, r4, r6, r8, lr}^ + 64e0: 736d656d cmnvc sp, #457179136 ; 0x1b400000 + 64e4: 38347465 ldmdacc r4!, {r0, r2, r5, r6, sl, ip, sp, lr} + 64e8: 00006f2e andeq r6, r0, lr, lsr #30 + 64ec: 6f72657a svcvs 0x0072657a + 64f0: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 64f4: 6f2e3274 svcvs 0x002e3274 + 64f8: 34747228 ldrbtcc r7, [r4], #-552 + 64fc: 6c615f74 stclvs 15, cr5, [r1], #-464 + 6500: 3a29612e bcc a5e9c0 + 6504: 41490000 cmpmi r9, r0 + 6508: 4e412052 mcrmi 0, 2, r2, cr1, cr2, {2} + 650c: 43204953 teqmi r0, #1359872 ; 0x14c000 + 6510: 2b2b432f blcs ad71d4 + 6514: 6d6f4320 stclvs 3, cr4, [pc, #-128]! + 6518: 656c6970 strbvs r6, [ip, #-2416]! + 651c: 35562072 ldrbcc r2, [r6, #-114] + 6520: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 6524: 31352e30 teqcc r5, r0, lsr lr + 6528: 2f343731 svccs 0x00343731 + 652c: 20323357 eorscs r3, r2, r7, asr r3 + 6530: 20726f66 rsbscs r6, r2, r6, ror #30 + 6534: 004d5241 subeq r5, sp, r1, asr #4 + 6538: 3a46492d bcc 11989f4 + 653c: 6d72612f ldfvse f6, [r2, #-188]! + 6540: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6544: 33352f64 teqcc r5, #400 ; 0x190 + 6548: 61727430 cmnvs r2, r0, lsr r4 + 654c: 7469736e strbtvc r7, [r9], #-878 + 6550: 2f6e6f69 svccs 0x006e6f69 + 6554: 5f6d7261 svcpl 0x006d7261 + 6558: 35393131 ldrcc r3, [r9, #-305]! + 655c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6560: 3033352d eorscc r3, r3, sp, lsr #10 + 6564: 6d72612f ldfvse f6, [r2, #-188]! + 6568: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 656c: 74756f2f ldrbtvc r6, [r5], #-3887 + 6570: 2f747570 svccs 0x00747570 + 6574: 5f6d7261 svcpl 0x006d7261 + 6578: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 657c: 65697261 strbvs r7, [r9, #-609]! + 6580: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 + 6584: 2f346269 svccs 0x00346269 + 6588: 20636e69 rsbcs r6, r3, r9, ror #28 + 658c: 3a46492d bcc 1198a48 + 6590: 6d72612f ldfvse f6, [r2, #-188]! + 6594: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6598: 33352f64 teqcc r5, #400 ; 0x190 + 659c: 61727430 cmnvs r2, r0, lsr r4 + 65a0: 7469736e strbtvc r7, [r9], #-878 + 65a4: 2f6e6f69 svccs 0x006e6f69 + 65a8: 5f6d7261 svcpl 0x006d7261 + 65ac: 35393131 ldrcc r3, [r9, #-305]! + 65b0: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 65b4: 3033352d eorscc r3, r3, sp, lsr #10 + 65b8: 6d72612f ldfvse f6, [r2, #-188]! + 65bc: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 65c0: 74756f2f ldrbtvc r6, [r5], #-3887 + 65c4: 2f747570 svccs 0x00747570 + 65c8: 5f6d7261 svcpl 0x006d7261 + 65cc: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 65d0: 65697261 strbvs r7, [r9, #-609]! + 65d4: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 + 65d8: 2f346269 svccs 0x00346269 + 65dc: 20637273 rsbcs r7, r3, r3, ror r2 + 65e0: 3a46492d bcc 1198a9c + 65e4: 6d72612f ldfvse f6, [r2, #-188]! + 65e8: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 65ec: 33352f64 teqcc r5, #400 ; 0x190 + 65f0: 61727430 cmnvs r2, r0, lsr r4 + 65f4: 7469736e strbtvc r7, [r9], #-878 + 65f8: 2f6e6f69 svccs 0x006e6f69 + 65fc: 5f6d7261 svcpl 0x006d7261 + 6600: 35393131 ldrcc r3, [r9, #-305]! + 6604: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6608: 3033352d eorscc r3, r3, sp, lsr #10 + 660c: 6d72612f ldfvse f6, [r2, #-188]! + 6610: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 6614: 74756f2f ldrbtvc r6, [r5], #-3887 + 6618: 2f747570 svccs 0x00747570 + 661c: 5f6d7261 svcpl 0x006d7261 + 6620: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 6624: 65697261 strbvs r7, [r9, #-609]! + 6628: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 662c: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 6630: 636e692f cmnvs lr, #770048 ; 0xbc000 + 6634: 6564756c strbvs r7, [r4, #-1388]! + 6638: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 663c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 6640: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 6644: 352f646c strcc r6, [pc, #-1132]! ; 61e0 + 6648: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 664c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 6650: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6654: 6d72612f ldfvse f6, [r2, #-188]! + 6658: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 665c: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 6660: 33352d62 teqcc r5, #6272 ; 0x1880 + 6664: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 6668: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 666c: 756f2f62 strbvc r2, [pc, #-3938]! ; 5712 + 6670: 74757074 ldrbtvc r7, [r5], #-116 + 6674: 6d72612f ldfvse f6, [r2, #-188]! + 6678: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 667c: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 6680: 612f7365 teqvs pc, r5, ror #6 + 6684: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 6688: 72732f62 rsbsvc r2, r3, #392 ; 0x188 + 668c: 692f3263 stmdbvs pc!, {r0, r1, r5, r6, r9, ip, sp} + 6690: 756c636e strbvc r6, [ip, #-878]! + 6694: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 6698: 2f3a4649 svccs 0x003a4649 + 669c: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 66a0: 646c6975 strbtvs r6, [ip], #-2421 + 66a4: 3033352f eorscc r3, r3, pc, lsr #10 + 66a8: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 66ac: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 66b0: 612f6e6f teqvs pc, pc, ror #28 + 66b4: 315f6d72 cmpcc pc, r2, ror sp + 66b8: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 66bc: 2d62696c stclcs 9, cr6, [r2, #-432]! + 66c0: 2f303335 svccs 0x00303335 + 66c4: 2f6d7261 svccs 0x006d7261 + 66c8: 2f62696c svccs 0x0062696c + 66cc: 2f706d74 svccs 0x00706d74 + 66d0: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 66d4: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 66d8: 632d2d20 teqvs sp, #2048 ; 0x800 + 66dc: 41207570 teqmi r0, r0, ror r5 + 66e0: 54394d52 ldrtpl r4, [r9], #-3410 + 66e4: 20494d44 subcs r4, r9, r4, asr #26 + 66e8: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} + 66ec: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} + 66f0: 74696c20 strbtvc r6, [r9], #-3104 + 66f4: 20656c74 rsbcs r6, r5, r4, ror ip + 66f8: 5f5f442d svcpl 0x005f442d + 66fc: 5f464c45 svcpl 0x00464c45 + 6700: 4c495542 cfstr64mi mvdx5, [r9], {66} + 6704: 205f5f44 subscs r5, pc, r4, asr #30 + 6708: 5f5f442d svcpl 0x005f442d + 670c: 5f4d5241 svcpl 0x004d5241 + 6710: 5242494c subpl r4, r2, #1245184 ; 0x130000 + 6714: 5f595241 svcpl 0x00595241 + 6718: 2d2d205f stccs 0, cr2, [sp, #-380]! + 671c: 206d7261 rsbcs r7, sp, r1, ror #4 + 6720: 6e692d2d cdpvs 13, 6, cr2, cr9, cr13, {1} + 6724: 77726574 undefined + 6728: 206b726f rsbcs r7, fp, pc, ror #4 + 672c: 20684f2d rsbcs r4, r8, sp, lsr #30 + 6730: 69732d2d ldmdbvs r3!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 6734: 746e656c strbtvc r6, [lr], #-1388 + 6738: 772d2d20 strvc r2, [sp, -r0, lsr #26]! + 673c: 696e7261 stmdbvs lr!, {r0, r5, r6, r9, ip, sp, lr}^ + 6740: 5f73676e svcpl 0x0073676e + 6744: 5f657261 svcpl 0x00657261 + 6748: 6f727265 svcvs 0x00727265 + 674c: 2d207372 stccs 3, cr7, [r0, #-456]! + 6750: 7274732d rsbsvc r7, r4, #-1275068416 ; 0xb4000000 + 6754: 5f746369 svcpl 0x00746369 + 6758: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 675c: 6f2d2d20 svcvs 0x002d2d20 + 6760: 5f796c6e svcpl 0x00796c6e + 6764: 6f647473 svcvs 0x00647473 + 6768: 2d207475 cfstrscs mvf7, [r0, #-468]! + 676c: 6169642d cmnvs r9, sp, lsr #8 + 6770: 75735f67 ldrbvc r5, [r3, #-3943]! + 6774: 65727070 ldrbvs r7, [r2, #-112]! + 6778: 473d7373 undefined + 677c: 3530306f ldrcc r3, [r0, #-111]! + 6780: 642d2d20 strtvs r2, [sp], #-3360 + 6784: 5f676169 svcpl 0x00676169 + 6788: 70707573 rsbsvc r7, r0, r3, ror r5 + 678c: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 6790: 3465503d strbtcc r5, [r5], #-61 + 6794: 2d203035 stccs 0, cr3, [r0, #-212]! + 6798: 6169642d cmnvs r9, sp, lsr #8 + 679c: 72655f67 rsbvc r5, r5, #412 ; 0x19c + 67a0: 3d726f72 ldclcc 15, cr6, [r2, #-456]! + 67a4: 39316550 ldmdbcc r1!, {r4, r6, r8, sl, sp, lr} + 67a8: 3a462033 bcc 118e87c + 67ac: 6d72612f ldfvse f6, [r2, #-188]! + 67b0: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 67b4: 33352f64 teqcc r5, #400 ; 0x190 + 67b8: 61727430 cmnvs r2, r0, lsr r4 + 67bc: 7469736e strbtvc r7, [r9], #-878 + 67c0: 2f6e6f69 svccs 0x006e6f69 + 67c4: 5f6d7261 svcpl 0x006d7261 + 67c8: 35393131 ldrcc r3, [r9, #-305]! + 67cc: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 67d0: 3033352d eorscc r3, r3, sp, lsr #10 + 67d4: 6d72612f ldfvse f6, [r2, #-188]! + 67d8: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 67dc: 74756f2f ldrbtvc r6, [r5], #-3887 + 67e0: 2f747570 svccs 0x00747570 + 67e4: 5f6d7261 svcpl 0x006d7261 + 67e8: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 67ec: 65697261 strbvs r7, [r9, #-609]! + 67f0: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 67f4: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 67f8: 6372735c cmnvs r2, #1879048193 ; 0x70000001 + 67fc: 6f632f32 svcvs 0x00632f32 + 6800: 6e6f6d6d cdpvs 13, 6, cr6, cr15, cr13, {3} + 6804: 696e692f stmdbvs lr!, {r0, r1, r2, r3, r5, r8, fp, sp, lr}^ + 6808: 657a2f74 ldrbvs r2, [sl, #-3956]! + 680c: 695f6f72 ldmdbvs pc, {r1, r4, r5, r6, r8, r9, sl, fp, sp, lr}^ + 6810: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 6814: 2d20632e stccs 3, cr6, [r0, #-184]! + 6818: 3a46206f bcc 118e9dc + 681c: 6d72615c ldfvse f6, [r2, #-368]! + 6820: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6824: 33355c64 teqcc r5, #25600 ; 0x6400 + 6828: 61727430 cmnvs r2, r0, lsr r4 + 682c: 7469736e strbtvc r7, [r9], #-878 + 6830: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 6834: 5f6d7261 svcpl 0x006d7261 + 6838: 35393131 ldrcc r3, [r9, #-305]! + 683c: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6840: 3033352d eorscc r3, r3, sp, lsr #10 + 6844: 6d72615c ldfvse f6, [r2, #-368]! + 6848: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 684c: 706d745c rsbvc r7, sp, ip, asr r4 + 6850: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 6854: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 6858: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 685c: 74725c6a ldrbtvc r5, [r2], #-3178 + 6860: 615f7434 cmpvs pc, r4, lsr r4 + 6864: 657a5c6c ldrbvs r5, [sl, #-3180]! + 6868: 695f6f72 ldmdbvs pc, {r1, r4, r5, r6, r8, r9, sl, fp, sp, lr}^ + 686c: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 6870: 2d206f2e stccs 15, cr6, [r0, #-184]! + 6874: 7065642d rsbvc r6, r5, sp, lsr #8 + 6878: 65646e65 strbvs r6, [r4, #-3685]! + 687c: 6569636e strbvs r6, [r9, #-878]! + 6880: 20693d73 rsbcs r3, r9, r3, ror sp + 6884: 615c3a46 cmpvs ip, r6, asr #20 + 6888: 75626d72 strbvc r6, [r2, #-3442]! + 688c: 5c646c69 stclpl 12, cr6, [r4], #-420 + 6890: 74303335 ldrtvc r3, [r0], #-821 + 6894: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6898: 6f697469 svcvs 0x00697469 + 689c: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 68a0: 31315f6d teqcc r1, sp, ror #30 + 68a4: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 68a8: 352d6269 strcc r6, [sp, #-617]! + 68ac: 615c3033 cmpvs ip, r3, lsr r0 + 68b0: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 68b4: 745c6269 ldrbvc r6, [ip], #-617 + 68b8: 625c706d subsvs r7, ip, #109 ; 0x6d + 68bc: 646c6975 strbtvs r6, [ip], #-2421 + 68c0: 5c62696c stclpl 9, cr6, [r2], #-432 + 68c4: 5c6a626f sfmpl f6, 2, [sl], #-444 + 68c8: 74347472 ldrtvc r7, [r4], #-1138 + 68cc: 5c6c615f stfple f6, [ip], #-380 + 68d0: 6f72657a svcvs 0x0072657a + 68d4: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 68d8: 642e3274 strtvs r3, [lr], #-628 + 68dc: 6f630000 svcvs 0x00630000 + 68e0: 695f7970 ldmdbvs pc, {r4, r5, r6, r8, fp, ip, sp, lr}^ + 68e4: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 68e8: 72286f2e eorvc r6, r8, #184 ; 0xb8 + 68ec: 5f743474 svcpl 0x00743474 + 68f0: 612e6c61 teqvs lr, r1, ror #24 + 68f4: 00003a29 andeq r3, r0, r9, lsr #20 + 68f8: 20524149 subscs r4, r2, r9, asr #2 + 68fc: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 6900: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 6904: 43202b2b teqmi r0, #44032 ; 0xac00 + 6908: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 690c: 2072656c rsbscs r6, r2, ip, ror #10 + 6910: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 6914: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 6918: 37313135 undefined + 691c: 33572f34 cmpcc r7, #208 ; 0xd0 + 6920: 6f662032 svcvs 0x00662032 + 6924: 52412072 subpl r2, r1, #114 ; 0x72 + 6928: 492d004d pushmi {r0, r2, r3, r6} + 692c: 612f3a46 teqvs pc, r6, asr #20 + 6930: 75626d72 strbvc r6, [r2, #-3442]! + 6934: 2f646c69 svccs 0x00646c69 + 6938: 74303335 ldrtvc r3, [r0], #-821 + 693c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6940: 6f697469 svcvs 0x00697469 + 6944: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 6948: 31315f6d teqcc r1, sp, ror #30 + 694c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 6950: 352d6269 strcc r6, [sp, #-617]! + 6954: 612f3033 teqvs pc, r3, lsr r0 + 6958: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 695c: 6f2f6269 svcvs 0x002f6269 + 6960: 75707475 ldrbvc r7, [r0, #-1141]! + 6964: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 6968: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 696c: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 6970: 2f736569 svccs 0x00736569 + 6974: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 6978: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} + 697c: 492d2063 pushmi {r0, r1, r5, r6, sp} + 6980: 612f3a46 teqvs pc, r6, asr #20 + 6984: 75626d72 strbvc r6, [r2, #-3442]! + 6988: 2f646c69 svccs 0x00646c69 + 698c: 74303335 ldrtvc r3, [r0], #-821 + 6990: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6994: 6f697469 svcvs 0x00697469 + 6998: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 699c: 31315f6d teqcc r1, sp, ror #30 + 69a0: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 69a4: 352d6269 strcc r6, [sp, #-617]! + 69a8: 612f3033 teqvs pc, r3, lsr r0 + 69ac: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 69b0: 6f2f6269 svcvs 0x002f6269 + 69b4: 75707475 ldrbvc r7, [r0, #-1141]! + 69b8: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 69bc: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 69c0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 69c4: 2f736569 svccs 0x00736569 + 69c8: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 69cc: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 + 69d0: 492d2063 pushmi {r0, r1, r5, r6, sp} + 69d4: 612f3a46 teqvs pc, r6, asr #20 + 69d8: 75626d72 strbvc r6, [r2, #-3442]! + 69dc: 2f646c69 svccs 0x00646c69 + 69e0: 74303335 ldrtvc r3, [r0], #-821 + 69e4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 69e8: 6f697469 svcvs 0x00697469 + 69ec: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 69f0: 31315f6d teqcc r1, sp, ror #30 + 69f4: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 69f8: 352d6269 strcc r6, [sp, #-617]! + 69fc: 612f3033 teqvs pc, r3, lsr r0 + 6a00: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 6a04: 6f2f6269 svcvs 0x002f6269 + 6a08: 75707475 ldrbvc r7, [r0, #-1141]! + 6a0c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 6a10: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 6a14: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 6a18: 2f736569 svccs 0x00736569 + 6a1c: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 6a20: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} + 6a24: 756c636e strbvc r6, [ip, #-878]! + 6a28: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 6a2c: 2f3a4649 svccs 0x003a4649 + 6a30: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6a34: 646c6975 strbtvs r6, [ip], #-2421 + 6a38: 3033352f eorscc r3, r3, pc, lsr #10 + 6a3c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6a40: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6a44: 612f6e6f teqvs pc, pc, ror #28 + 6a48: 315f6d72 cmpcc pc, r2, ror sp + 6a4c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6a50: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6a54: 2f303335 svccs 0x00303335 + 6a58: 2f6d7261 svccs 0x006d7261 + 6a5c: 2f62696c svccs 0x0062696c + 6a60: 7074756f rsbsvc r7, r4, pc, ror #10 + 6a64: 612f7475 teqvs pc, r5, ror r4 + 6a68: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6a6c: 61726269 cmnvs r2, r9, ror #4 + 6a70: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6a74: 6d72612f ldfvse f6, [r2, #-188]! + 6a78: 2f62696c svccs 0x0062696c + 6a7c: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 6a80: 636e692f cmnvs lr, #770048 ; 0xbc000 + 6a84: 6564756c strbvs r7, [r4, #-1388]! + 6a88: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 6a8c: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 6a90: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 6a94: 352f646c strcc r6, [pc, #-1132]! ; 6630 + 6a98: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 6a9c: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 6aa0: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 6aa4: 6d72612f ldfvse f6, [r2, #-188]! + 6aa8: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 6aac: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 6ab0: 33352d62 teqcc r5, #6272 ; 0x1880 + 6ab4: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 6ab8: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 6abc: 6d742f62 ldclvs 15, cr2, [r4, #-392]! + 6ac0: 75622f70 strbvc r2, [r2, #-3952]! + 6ac4: 6c646c69 stclvs 12, cr6, [r4], #-420 + 6ac8: 2d206269 sfmcs f6, 4, [r0, #-420]! + 6acc: 7570632d ldrbvc r6, [r0, #-813]! + 6ad0: 4d524120 ldfmie f4, [r2, #-128] + 6ad4: 4d445439 cfstrdmi mvd5, [r4, #-228] + 6ad8: 2d2d2049 stccs 0, cr2, [sp, #-292]! + 6adc: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 6ae0: 6c206e61 stcvs 14, cr6, [r0], #-388 + 6ae4: 6c747469 cfldrdvs mvd7, [r4], #-420 + 6ae8: 442d2065 strtmi r2, [sp], #-101 + 6aec: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 + 6af0: 55425f46 strbpl r5, [r2, #-3910] + 6af4: 5f444c49 svcpl 0x00444c49 + 6af8: 442d205f strtmi r2, [sp], #-95 + 6afc: 52415f5f subpl r5, r1, #380 ; 0x17c + 6b00: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ + 6b04: 52415242 subpl r5, r1, #536870916 ; 0x20000004 + 6b08: 205f5f59 subscs r5, pc, r9, asr pc + 6b0c: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 + 6b10: 2d2d206d stccs 0, cr2, [sp, #-436]! + 6b14: 65746e69 ldrbvs r6, [r4, #-3689]! + 6b18: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 6b1c: 4f2d206b svcmi 0x002d206b + 6b20: 2d2d2068 stccs 0, cr2, [sp, #-416]! + 6b24: 656c6973 strbvs r6, [ip, #-2419]! + 6b28: 2d20746e cfstrscs mvf7, [r0, #-440]! + 6b2c: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 + 6b30: 676e696e strbvs r6, [lr, -lr, ror #18]! + 6b34: 72615f73 rsbvc r5, r1, #460 ; 0x1cc + 6b38: 72655f65 rsbvc r5, r5, #404 ; 0x194 + 6b3c: 73726f72 cmnvc r2, #456 ; 0x1c8 + 6b40: 732d2d20 teqvc sp, #2048 ; 0x800 + 6b44: 63697274 cmnvs r9, #1073741831 ; 0x40000007 + 6b48: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} + 6b4c: 2d206973 stccs 9, cr6, [r0, #-460]! + 6b50: 6c6e6f2d stclvs 15, cr6, [lr], #-180 + 6b54: 74735f79 ldrbtvc r5, [r3], #-3961 + 6b58: 74756f64 ldrbtvc r6, [r5], #-3940 + 6b5c: 642d2d20 strtvs r2, [sp], #-3360 + 6b60: 5f676169 svcpl 0x00676169 + 6b64: 70707573 rsbsvc r7, r0, r3, ror r5 + 6b68: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 6b6c: 306f473d rsbcc r4, pc, sp, lsr r7 + 6b70: 2d203530 cfstr32cs mvfx3, [r0, #-192]! + 6b74: 6169642d cmnvs r9, sp, lsr #8 + 6b78: 75735f67 ldrbvc r5, [r3, #-3943]! + 6b7c: 65727070 ldrbvs r7, [r2, #-112]! + 6b80: 503d7373 eorspl r7, sp, r3, ror r3 + 6b84: 30353465 eorscc r3, r5, r5, ror #8 + 6b88: 642d2d20 strtvs r2, [sp], #-3360 + 6b8c: 5f676169 svcpl 0x00676169 + 6b90: 6f727265 svcvs 0x00727265 + 6b94: 65503d72 ldrbvs r3, [r0, #-3442] + 6b98: 20333931 eorscs r3, r3, r1, lsr r9 + 6b9c: 612f3a46 teqvs pc, r6, asr #20 + 6ba0: 75626d72 strbvc r6, [r2, #-3442]! + 6ba4: 2f646c69 svccs 0x00646c69 + 6ba8: 74303335 ldrtvc r3, [r0], #-821 + 6bac: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6bb0: 6f697469 svcvs 0x00697469 + 6bb4: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 6bb8: 31315f6d teqcc r1, sp, ror #30 + 6bbc: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 6bc0: 352d6269 strcc r6, [sp, #-617]! + 6bc4: 612f3033 teqvs pc, r3, lsr r0 + 6bc8: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 6bcc: 6f2f6269 svcvs 0x002f6269 + 6bd0: 75707475 ldrbvc r7, [r0, #-1141]! + 6bd4: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 6bd8: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 6bdc: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 6be0: 2f736569 svccs 0x00736569 + 6be4: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 6be8: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 + 6bec: 2f326372 svccs 0x00326372 + 6bf0: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! + 6bf4: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} + 6bf8: 2f74696e svccs 0x0074696e + 6bfc: 79706f63 ldmdbvc r0!, {r0, r1, r5, r6, r8, r9, sl, fp, sp, lr}^ + 6c00: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 6c04: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 6c08: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 6c0c: 615c3a46 cmpvs ip, r6, asr #20 + 6c10: 75626d72 strbvc r6, [r2, #-3442]! + 6c14: 5c646c69 stclpl 12, cr6, [r4], #-420 + 6c18: 74303335 ldrtvc r3, [r0], #-821 + 6c1c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6c20: 6f697469 svcvs 0x00697469 + 6c24: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 6c28: 31315f6d teqcc r1, sp, ror #30 + 6c2c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 6c30: 352d6269 strcc r6, [sp, #-617]! + 6c34: 615c3033 cmpvs ip, r3, lsr r0 + 6c38: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 6c3c: 745c6269 ldrbvc r6, [ip], #-617 + 6c40: 625c706d subsvs r7, ip, #109 ; 0x6d + 6c44: 646c6975 strbtvs r6, [ip], #-2421 + 6c48: 5c62696c stclpl 9, cr6, [r2], #-432 + 6c4c: 5c6a626f sfmpl f6, 2, [sl], #-444 + 6c50: 74347472 ldrtvc r7, [r4], #-1138 + 6c54: 5c6c615f stfple f6, [ip], #-380 + 6c58: 79706f63 ldmdbvc r0!, {r0, r1, r5, r6, r8, r9, sl, fp, sp, lr}^ + 6c5c: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 6c60: 6f2e3274 svcvs 0x002e3274 + 6c64: 642d2d20 strtvs r2, [sp], #-3360 + 6c68: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} + 6c6c: 636e6564 cmnvs lr, #419430400 ; 0x19000000 + 6c70: 3d736569 cfldr64cc mvdx6, [r3, #-420]! + 6c74: 3a462069 bcc 118ee20 + 6c78: 6d72615c ldfvse f6, [r2, #-368]! + 6c7c: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6c80: 33355c64 teqcc r5, #25600 ; 0x6400 + 6c84: 61727430 cmnvs r2, r0, lsr r4 + 6c88: 7469736e strbtvc r7, [r9], #-878 + 6c8c: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 6c90: 5f6d7261 svcpl 0x006d7261 + 6c94: 35393131 ldrcc r3, [r9, #-305]! + 6c98: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6c9c: 3033352d eorscc r3, r3, sp, lsr #10 + 6ca0: 6d72615c ldfvse f6, [r2, #-368]! + 6ca4: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 6ca8: 706d745c rsbvc r7, sp, ip, asr r4 + 6cac: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 6cb0: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 6cb4: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 6cb8: 74725c6a ldrbtvc r5, [r2], #-3178 + 6cbc: 615f7434 cmpvs pc, r4, lsr r4 + 6cc0: 6f635c6c svcvs 0x00635c6c + 6cc4: 695f7970 ldmdbvs pc, {r4, r5, r6, r8, fp, ip, sp, lr}^ + 6cc8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 6ccc: 0000642e andeq r6, r0, lr, lsr #8 + 6cd0: 5f656c72 svcpl 0x00656c72 + 6cd4: 74696e69 strbtvc r6, [r9], #-3689 + 6cd8: 286f2e32 stmdacs pc!, {r1, r4, r5, r9, sl, fp, sp}^ + 6cdc: 74347472 ldrtvc r7, [r4], #-1138 + 6ce0: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} + 6ce4: 003a2961 eorseq r2, sl, r1, ror #18 + 6ce8: 52414900 subpl r4, r1, #0 ; 0x0 + 6cec: 534e4120 movtpl r4, #57632 ; 0xe120 + 6cf0: 2f432049 svccs 0x00432049 + 6cf4: 202b2b43 eorcs r2, fp, r3, asr #22 + 6cf8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 6cfc: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 6d00: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 6d04: 302e3033 eorcc r3, lr, r3, lsr r0 + 6d08: 3131352e teqcc r1, lr, lsr #10 + 6d0c: 572f3437 undefined + 6d10: 66203233 undefined + 6d14: 4120726f teqmi r0, pc, ror #4 + 6d18: 2d004d52 stccs 13, cr4, [r0, #-328] + 6d1c: 2f3a4649 svccs 0x003a4649 + 6d20: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6d24: 646c6975 strbtvs r6, [ip], #-2421 + 6d28: 3033352f eorscc r3, r3, pc, lsr #10 + 6d2c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6d30: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6d34: 612f6e6f teqvs pc, pc, ror #28 + 6d38: 315f6d72 cmpcc pc, r2, ror sp + 6d3c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6d40: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6d44: 2f303335 svccs 0x00303335 + 6d48: 2f6d7261 svccs 0x006d7261 + 6d4c: 2f62696c svccs 0x0062696c + 6d50: 7074756f rsbsvc r7, r4, pc, ror #10 + 6d54: 612f7475 teqvs pc, r5, ror r4 + 6d58: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6d5c: 61726269 cmnvs r2, r9, ror #4 + 6d60: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6d64: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 6d68: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} + 6d6c: 2d20636e stccs 3, cr6, [r0, #-440]! + 6d70: 2f3a4649 svccs 0x003a4649 + 6d74: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6d78: 646c6975 strbtvs r6, [ip], #-2421 + 6d7c: 3033352f eorscc r3, r3, pc, lsr #10 + 6d80: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6d84: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6d88: 612f6e6f teqvs pc, pc, ror #28 + 6d8c: 315f6d72 cmpcc pc, r2, ror sp + 6d90: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6d94: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6d98: 2f303335 svccs 0x00303335 + 6d9c: 2f6d7261 svccs 0x006d7261 + 6da0: 2f62696c svccs 0x0062696c + 6da4: 7074756f rsbsvc r7, r4, pc, ror #10 + 6da8: 612f7475 teqvs pc, r5, ror r4 + 6dac: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6db0: 61726269 cmnvs r2, r9, ror #4 + 6db4: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6db8: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 6dbc: 732f3462 teqvc pc, #1644167168 ; 0x62000000 + 6dc0: 2d206372 stccs 3, cr6, [r0, #-456]! + 6dc4: 2f3a4649 svccs 0x003a4649 + 6dc8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6dcc: 646c6975 strbtvs r6, [ip], #-2421 + 6dd0: 3033352f eorscc r3, r3, pc, lsr #10 + 6dd4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6dd8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6ddc: 612f6e6f teqvs pc, pc, ror #28 + 6de0: 315f6d72 cmpcc pc, r2, ror sp + 6de4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6de8: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6dec: 2f303335 svccs 0x00303335 + 6df0: 2f6d7261 svccs 0x006d7261 + 6df4: 2f62696c svccs 0x0062696c + 6df8: 7074756f rsbsvc r7, r4, pc, ror #10 + 6dfc: 612f7475 teqvs pc, r5, ror r4 + 6e00: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6e04: 61726269 cmnvs r2, r9, ror #4 + 6e08: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6e0c: 6d72612f ldfvse f6, [r2, #-188]! + 6e10: 2f62696c svccs 0x0062696c + 6e14: 6c636e69 stclvs 14, cr6, [r3], #-420 + 6e18: 20656475 rsbcs r6, r5, r5, ror r4 + 6e1c: 3a46492d bcc 11992d8 + 6e20: 6d72612f ldfvse f6, [r2, #-188]! + 6e24: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 6e28: 33352f64 teqcc r5, #400 ; 0x190 + 6e2c: 61727430 cmnvs r2, r0, lsr r4 + 6e30: 7469736e strbtvc r7, [r9], #-878 + 6e34: 2f6e6f69 svccs 0x006e6f69 + 6e38: 5f6d7261 svcpl 0x006d7261 + 6e3c: 35393131 ldrcc r3, [r9, #-305]! + 6e40: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 6e44: 3033352d eorscc r3, r3, sp, lsr #10 + 6e48: 6d72612f ldfvse f6, [r2, #-188]! + 6e4c: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 6e50: 74756f2f ldrbtvc r6, [r5], #-3887 + 6e54: 2f747570 svccs 0x00747570 + 6e58: 5f6d7261 svcpl 0x006d7261 + 6e5c: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 6e60: 65697261 strbvs r7, [r9, #-609]! + 6e64: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 6e68: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 6e6c: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 6e70: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} + 6e74: 64756c63 ldrbtvs r6, [r5], #-3171 + 6e78: 492d2065 pushmi {r0, r2, r5, r6, sp} + 6e7c: 612f3a46 teqvs pc, r6, asr #20 + 6e80: 75626d72 strbvc r6, [r2, #-3442]! + 6e84: 2f646c69 svccs 0x00646c69 + 6e88: 74303335 ldrtvc r3, [r0], #-821 + 6e8c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 6e90: 6f697469 svcvs 0x00697469 + 6e94: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 6e98: 31315f6d teqcc r1, sp, ror #30 + 6e9c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 6ea0: 352d6269 strcc r6, [sp, #-617]! + 6ea4: 612f3033 teqvs pc, r3, lsr r0 + 6ea8: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 6eac: 742f6269 strtvc r6, [pc], #617 ; 6eb4 + 6eb0: 622f706d eorvs r7, pc, #109 ; 0x6d + 6eb4: 646c6975 strbtvs r6, [ip], #-2421 + 6eb8: 2062696c rsbcs r6, r2, ip, ror #18 + 6ebc: 70632d2d rsbvc r2, r3, sp, lsr #26 + 6ec0: 52412075 subpl r2, r1, #117 ; 0x75 + 6ec4: 4454394d ldrbmi r3, [r4], #-2381 + 6ec8: 2d20494d stccs 9, cr4, [r0, #-308]! + 6ecc: 646e652d strbtvs r6, [lr], #-1325 + 6ed0: 206e6169 rsbcs r6, lr, r9, ror #2 + 6ed4: 7474696c ldrbtvc r6, [r4], #-2412 + 6ed8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 6edc: 455f5f44 ldrbmi r5, [pc, #-3908] ; 5fa0 + 6ee0: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 + 6ee4: 444c4955 strbmi r4, [ip], #-2389 + 6ee8: 2d205f5f stccs 15, cr5, [r0, #-380]! + 6eec: 415f5f44 cmpmi pc, r4, asr #30 + 6ef0: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 + 6ef4: 41524249 cmpmi r2, r9, asr #4 + 6ef8: 5f5f5952 svcpl 0x005f5952 + 6efc: 612d2d20 teqvs sp, r0, lsr #26 + 6f00: 2d206d72 stccs 13, cr6, [r0, #-456]! + 6f04: 746e692d strbtvc r6, [lr], #-2349 + 6f08: 6f777265 svcvs 0x00777265 + 6f0c: 2d206b72 vstmdbcs r0!, {d6-} + 6f10: 2d20684f stccs 8, cr6, [r0, #-316]! + 6f14: 6c69732d stclvs 3, cr7, [r9], #-180 + 6f18: 20746e65 rsbscs r6, r4, r5, ror #28 + 6f1c: 61772d2d cmnvs r7, sp, lsr #26 + 6f20: 6e696e72 mcrvs 14, 3, r6, cr9, cr2, {3} + 6f24: 615f7367 cmpvs pc, r7, ror #6 + 6f28: 655f6572 ldrbvs r6, [pc, #-1394] ; 69be + 6f2c: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 6f30: 2d2d2073 stccs 0, cr2, [sp, #-460]! + 6f34: 69727473 ldmdbvs r2!, {r0, r1, r4, r5, r6, sl, ip, sp, lr}^ + 6f38: 615f7463 cmpvs pc, r3, ror #8 + 6f3c: 2069736e rsbcs r7, r9, lr, ror #6 + 6f40: 6e6f2d2d cdpvs 13, 6, cr2, cr15, cr13, {1} + 6f44: 735f796c cmpvc pc, #1769472 ; 0x1b0000 + 6f48: 756f6474 strbvc r6, [pc, #-1140]! ; 6adc + 6f4c: 2d2d2074 stccs 0, cr2, [sp, #-464]! + 6f50: 67616964 strbvs r6, [r1, -r4, ror #18]! + 6f54: 7075735f rsbsvc r7, r5, pc, asr r3 + 6f58: 73657270 cmnvc r5, #7 ; 0x7 + 6f5c: 6f473d73 svcvs 0x00473d73 + 6f60: 20353030 eorscs r3, r5, r0, lsr r0 + 6f64: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 6f68: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 6f6c: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 6f70: 3d737365 ldclcc 3, cr7, [r3, #-404]! + 6f74: 35346550 ldrcc r6, [r4, #-1360]! + 6f78: 2d2d2030 stccs 0, cr2, [sp, #-192]! + 6f7c: 67616964 strbvs r6, [r1, -r4, ror #18]! + 6f80: 7272655f rsbsvc r6, r2, #398458880 ; 0x17c00000 + 6f84: 503d726f eorspl r7, sp, pc, ror #4 + 6f88: 33393165 teqcc r9, #1073741849 ; 0x40000019 + 6f8c: 2f3a4620 svccs 0x003a4620 + 6f90: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 6f94: 646c6975 strbtvs r6, [ip], #-2421 + 6f98: 3033352f eorscc r3, r3, pc, lsr #10 + 6f9c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 6fa0: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 6fa4: 612f6e6f teqvs pc, pc, ror #28 + 6fa8: 315f6d72 cmpcc pc, r2, ror sp + 6fac: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 6fb0: 2d62696c stclcs 9, cr6, [r2, #-432]! + 6fb4: 2f303335 svccs 0x00303335 + 6fb8: 2f6d7261 svccs 0x006d7261 + 6fbc: 2f62696c svccs 0x0062696c + 6fc0: 7074756f rsbsvc r7, r4, pc, ror #10 + 6fc4: 612f7475 teqvs pc, r5, ror r4 + 6fc8: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 6fcc: 61726269 cmnvs r2, r9, ror #4 + 6fd0: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 6fd4: 6d72612f ldfvse f6, [r2, #-188]! + 6fd8: 5c62696c stclpl 9, cr6, [r2], #-432 + 6fdc: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 6fe0: 6d6f632f stclvs 3, cr6, [pc, #-188]! + 6fe4: 2f6e6f6d svccs 0x006e6f6d + 6fe8: 74696e69 strbtvc r6, [r9], #-3689 + 6fec: 656c722f strbvs r7, [ip, #-559]! + 6ff0: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 6ff4: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 6ff8: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 6ffc: 615c3a46 cmpvs ip, r6, asr #20 + 7000: 75626d72 strbvc r6, [r2, #-3442]! + 7004: 5c646c69 stclpl 12, cr6, [r4], #-420 + 7008: 74303335 ldrtvc r3, [r0], #-821 + 700c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7010: 6f697469 svcvs 0x00697469 + 7014: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 7018: 31315f6d teqcc r1, sp, ror #30 + 701c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7020: 352d6269 strcc r6, [sp, #-617]! + 7024: 615c3033 cmpvs ip, r3, lsr r0 + 7028: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 702c: 745c6269 ldrbvc r6, [ip], #-617 + 7030: 625c706d subsvs r7, ip, #109 ; 0x6d + 7034: 646c6975 strbtvs r6, [ip], #-2421 + 7038: 5c62696c stclpl 9, cr6, [r2], #-432 + 703c: 5c6a626f sfmpl f6, 2, [sl], #-444 + 7040: 74347472 ldrtvc r7, [r4], #-1138 + 7044: 5c6c615f stfple f6, [ip], #-380 + 7048: 5f656c72 svcpl 0x00656c72 + 704c: 74696e69 strbtvc r6, [r9], #-3689 + 7050: 206f2e32 rsbcs r2, pc, r2, lsr lr + 7054: 65642d2d strbvs r2, [r4, #-3373]! + 7058: 646e6570 strbtvs r6, [lr], #-1392 + 705c: 69636e65 stmdbvs r3!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 7060: 693d7365 ldmdbvs sp!, {r0, r2, r5, r6, r8, r9, ip, sp, lr} + 7064: 5c3a4620 ldcpl 6, cr4, [sl], #-128 + 7068: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 706c: 646c6975 strbtvs r6, [ip], #-2421 + 7070: 3033355c eorscc r3, r3, ip, asr r5 + 7074: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7078: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 707c: 615c6e6f cmpvs ip, pc, ror #28 + 7080: 315f6d72 cmpcc pc, r2, ror sp + 7084: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7088: 2d62696c stclcs 9, cr6, [r2, #-432]! + 708c: 5c303335 ldcpl 3, cr3, [r0], #-212 + 7090: 5c6d7261 sfmpl f7, 2, [sp], #-388 + 7094: 5c62696c stclpl 9, cr6, [r2], #-432 + 7098: 5c706d74 ldclpl 13, cr6, [r0], #-464 + 709c: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 70a0: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 70a4: 6a626f5c bvs 18a2e1c + 70a8: 3474725c ldrbtcc r7, [r4], #-604 + 70ac: 6c615f74 stclvs 15, cr5, [r1], #-464 + 70b0: 656c725c strbvs r7, [ip, #-604]! + 70b4: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 70b8: 642e3274 strtvs r3, [lr], #-628 + 70bc: 61700000 cmnvs r0, r0 + 70c0: 69626b63 stmdbvs r2!, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ + 70c4: 695f7374 ldmdbvs pc, {r2, r4, r5, r6, r8, r9, ip, sp, lr}^ + 70c8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 70cc: 72286f2e eorvc r6, r8, #184 ; 0xb8 + 70d0: 5f743474 svcpl 0x00743474 + 70d4: 612e6c61 teqvs lr, r1, ror #24 + 70d8: 00003a29 andeq r3, r0, r9, lsr #20 + 70dc: 20524149 subscs r4, r2, r9, asr #2 + 70e0: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 70e4: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 70e8: 43202b2b teqmi r0, #44032 ; 0xac00 + 70ec: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 70f0: 2072656c rsbscs r6, r2, ip, ror #10 + 70f4: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 70f8: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 70fc: 37313135 undefined + 7100: 33572f34 cmpcc r7, #208 ; 0xd0 + 7104: 6f662032 svcvs 0x00662032 + 7108: 52412072 subpl r2, r1, #114 ; 0x72 + 710c: 492d004d pushmi {r0, r2, r3, r6} + 7110: 612f3a46 teqvs pc, r6, asr #20 + 7114: 75626d72 strbvc r6, [r2, #-3442]! + 7118: 2f646c69 svccs 0x00646c69 + 711c: 74303335 ldrtvc r3, [r0], #-821 + 7120: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7124: 6f697469 svcvs 0x00697469 + 7128: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 712c: 31315f6d teqcc r1, sp, ror #30 + 7130: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7134: 352d6269 strcc r6, [sp, #-617]! + 7138: 612f3033 teqvs pc, r3, lsr r0 + 713c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7140: 6f2f6269 svcvs 0x002f6269 + 7144: 75707475 ldrbvc r7, [r0, #-1141]! + 7148: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 714c: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 7150: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 7154: 2f736569 svccs 0x00736569 + 7158: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 715c: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} + 7160: 492d2063 pushmi {r0, r1, r5, r6, sp} + 7164: 612f3a46 teqvs pc, r6, asr #20 + 7168: 75626d72 strbvc r6, [r2, #-3442]! + 716c: 2f646c69 svccs 0x00646c69 + 7170: 74303335 ldrtvc r3, [r0], #-821 + 7174: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7178: 6f697469 svcvs 0x00697469 + 717c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7180: 31315f6d teqcc r1, sp, ror #30 + 7184: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7188: 352d6269 strcc r6, [sp, #-617]! + 718c: 612f3033 teqvs pc, r3, lsr r0 + 7190: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7194: 6f2f6269 svcvs 0x002f6269 + 7198: 75707475 ldrbvc r7, [r0, #-1141]! + 719c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 71a0: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 71a4: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 71a8: 2f736569 svccs 0x00736569 + 71ac: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 71b0: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 + 71b4: 492d2063 pushmi {r0, r1, r5, r6, sp} + 71b8: 612f3a46 teqvs pc, r6, asr #20 + 71bc: 75626d72 strbvc r6, [r2, #-3442]! + 71c0: 2f646c69 svccs 0x00646c69 + 71c4: 74303335 ldrtvc r3, [r0], #-821 + 71c8: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 71cc: 6f697469 svcvs 0x00697469 + 71d0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 71d4: 31315f6d teqcc r1, sp, ror #30 + 71d8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 71dc: 352d6269 strcc r6, [sp, #-617]! + 71e0: 612f3033 teqvs pc, r3, lsr r0 + 71e4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 71e8: 6f2f6269 svcvs 0x002f6269 + 71ec: 75707475 ldrbvc r7, [r0, #-1141]! + 71f0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 71f4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 71f8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 71fc: 2f736569 svccs 0x00736569 + 7200: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 7204: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} + 7208: 756c636e strbvc r6, [ip, #-878]! + 720c: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 7210: 2f3a4649 svccs 0x003a4649 + 7214: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7218: 646c6975 strbtvs r6, [ip], #-2421 + 721c: 3033352f eorscc r3, r3, pc, lsr #10 + 7220: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7224: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7228: 612f6e6f teqvs pc, pc, ror #28 + 722c: 315f6d72 cmpcc pc, r2, ror sp + 7230: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7234: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7238: 2f303335 svccs 0x00303335 + 723c: 2f6d7261 svccs 0x006d7261 + 7240: 2f62696c svccs 0x0062696c + 7244: 7074756f rsbsvc r7, r4, pc, ror #10 + 7248: 612f7475 teqvs pc, r5, ror r4 + 724c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 7250: 61726269 cmnvs r2, r9, ror #4 + 7254: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 7258: 6d72612f ldfvse f6, [r2, #-188]! + 725c: 2f62696c svccs 0x0062696c + 7260: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 7264: 636e692f cmnvs lr, #770048 ; 0xbc000 + 7268: 6564756c strbvs r7, [r4, #-1388]! + 726c: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 7270: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 7274: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 7278: 352f646c strcc r6, [pc, #-1132]! ; 6e14 + 727c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 7280: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 7284: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7288: 6d72612f ldfvse f6, [r2, #-188]! + 728c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 7290: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 7294: 33352d62 teqcc r5, #6272 ; 0x1880 + 7298: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 729c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 72a0: 6d742f62 ldclvs 15, cr2, [r4, #-392]! + 72a4: 75622f70 strbvc r2, [r2, #-3952]! + 72a8: 6c646c69 stclvs 12, cr6, [r4], #-420 + 72ac: 2d206269 sfmcs f6, 4, [r0, #-420]! + 72b0: 7570632d ldrbvc r6, [r0, #-813]! + 72b4: 4d524120 ldfmie f4, [r2, #-128] + 72b8: 4d445439 cfstrdmi mvd5, [r4, #-228] + 72bc: 2d2d2049 stccs 0, cr2, [sp, #-292]! + 72c0: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 72c4: 6c206e61 stcvs 14, cr6, [r0], #-388 + 72c8: 6c747469 cfldrdvs mvd7, [r4], #-420 + 72cc: 442d2065 strtmi r2, [sp], #-101 + 72d0: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 + 72d4: 55425f46 strbpl r5, [r2, #-3910] + 72d8: 5f444c49 svcpl 0x00444c49 + 72dc: 442d205f strtmi r2, [sp], #-95 + 72e0: 52415f5f subpl r5, r1, #380 ; 0x17c + 72e4: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ + 72e8: 52415242 subpl r5, r1, #536870916 ; 0x20000004 + 72ec: 205f5f59 subscs r5, pc, r9, asr pc + 72f0: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 + 72f4: 2d2d206d stccs 0, cr2, [sp, #-436]! + 72f8: 65746e69 ldrbvs r6, [r4, #-3689]! + 72fc: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 7300: 4f2d206b svcmi 0x002d206b + 7304: 2d2d2068 stccs 0, cr2, [sp, #-416]! + 7308: 656c6973 strbvs r6, [ip, #-2419]! + 730c: 2d20746e cfstrscs mvf7, [r0, #-440]! + 7310: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 + 7314: 676e696e strbvs r6, [lr, -lr, ror #18]! + 7318: 72615f73 rsbvc r5, r1, #460 ; 0x1cc + 731c: 72655f65 rsbvc r5, r5, #404 ; 0x194 + 7320: 73726f72 cmnvc r2, #456 ; 0x1c8 + 7324: 732d2d20 teqvc sp, #2048 ; 0x800 + 7328: 63697274 cmnvs r9, #1073741831 ; 0x40000007 + 732c: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} + 7330: 2d206973 stccs 9, cr6, [r0, #-460]! + 7334: 6c6e6f2d stclvs 15, cr6, [lr], #-180 + 7338: 74735f79 ldrbtvc r5, [r3], #-3961 + 733c: 74756f64 ldrbtvc r6, [r5], #-3940 + 7340: 642d2d20 strtvs r2, [sp], #-3360 + 7344: 5f676169 svcpl 0x00676169 + 7348: 70707573 rsbsvc r7, r0, r3, ror r5 + 734c: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 7350: 306f473d rsbcc r4, pc, sp, lsr r7 + 7354: 2d203530 cfstr32cs mvfx3, [r0, #-192]! + 7358: 6169642d cmnvs r9, sp, lsr #8 + 735c: 75735f67 ldrbvc r5, [r3, #-3943]! + 7360: 65727070 ldrbvs r7, [r2, #-112]! + 7364: 503d7373 eorspl r7, sp, r3, ror r3 + 7368: 30353465 eorscc r3, r5, r5, ror #8 + 736c: 642d2d20 strtvs r2, [sp], #-3360 + 7370: 5f676169 svcpl 0x00676169 + 7374: 6f727265 svcvs 0x00727265 + 7378: 65503d72 ldrbvs r3, [r0, #-3442] + 737c: 20333931 eorscs r3, r3, r1, lsr r9 + 7380: 612f3a46 teqvs pc, r6, asr #20 + 7384: 75626d72 strbvc r6, [r2, #-3442]! + 7388: 2f646c69 svccs 0x00646c69 + 738c: 74303335 ldrtvc r3, [r0], #-821 + 7390: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7394: 6f697469 svcvs 0x00697469 + 7398: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 739c: 31315f6d teqcc r1, sp, ror #30 + 73a0: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 73a4: 352d6269 strcc r6, [sp, #-617]! + 73a8: 612f3033 teqvs pc, r3, lsr r0 + 73ac: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 73b0: 6f2f6269 svcvs 0x002f6269 + 73b4: 75707475 ldrbvc r7, [r0, #-1141]! + 73b8: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 73bc: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 73c0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 73c4: 2f736569 svccs 0x00736569 + 73c8: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 73cc: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 + 73d0: 2f326372 svccs 0x00326372 + 73d4: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! + 73d8: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} + 73dc: 2f74696e svccs 0x0074696e + 73e0: 6b636170 blvs 18df9a8 + 73e4: 73746962 cmnvc r4, #1605632 ; 0x188000 + 73e8: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 73ec: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 73f0: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 73f4: 615c3a46 cmpvs ip, r6, asr #20 + 73f8: 75626d72 strbvc r6, [r2, #-3442]! + 73fc: 5c646c69 stclpl 12, cr6, [r4], #-420 + 7400: 74303335 ldrtvc r3, [r0], #-821 + 7404: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7408: 6f697469 svcvs 0x00697469 + 740c: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 7410: 31315f6d teqcc r1, sp, ror #30 + 7414: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7418: 352d6269 strcc r6, [sp, #-617]! + 741c: 615c3033 cmpvs ip, r3, lsr r0 + 7420: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 7424: 745c6269 ldrbvc r6, [ip], #-617 + 7428: 625c706d subsvs r7, ip, #109 ; 0x6d + 742c: 646c6975 strbtvs r6, [ip], #-2421 + 7430: 5c62696c stclpl 9, cr6, [r2], #-432 + 7434: 5c6a626f sfmpl f6, 2, [sl], #-444 + 7438: 74347472 ldrtvc r7, [r4], #-1138 + 743c: 5c6c615f stfple f6, [ip], #-380 + 7440: 6b636170 blvs 18dfa08 + 7444: 73746962 cmnvc r4, #1605632 ; 0x188000 + 7448: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 744c: 6f2e3274 svcvs 0x002e3274 + 7450: 642d2d20 strtvs r2, [sp], #-3360 + 7454: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} + 7458: 636e6564 cmnvs lr, #419430400 ; 0x19000000 + 745c: 3d736569 cfldr64cc mvdx6, [r3, #-420]! + 7460: 3a462069 bcc 118f60c + 7464: 6d72615c ldfvse f6, [r2, #-368]! + 7468: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 746c: 33355c64 teqcc r5, #25600 ; 0x6400 + 7470: 61727430 cmnvs r2, r0, lsr r4 + 7474: 7469736e strbtvc r7, [r9], #-878 + 7478: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 747c: 5f6d7261 svcpl 0x006d7261 + 7480: 35393131 ldrcc r3, [r9, #-305]! + 7484: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 7488: 3033352d eorscc r3, r3, sp, lsr #10 + 748c: 6d72615c ldfvse f6, [r2, #-368]! + 7490: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 7494: 706d745c rsbvc r7, sp, ip, asr r4 + 7498: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 749c: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 74a0: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 74a4: 74725c6a ldrbtvc r5, [r2], #-3178 + 74a8: 615f7434 cmpvs pc, r4, lsr r4 + 74ac: 61705c6c cmnvs r0, ip, ror #24 + 74b0: 69626b63 stmdbvs r2!, {r0, r1, r5, r6, r8, r9, fp, sp, lr}^ + 74b4: 695f7374 ldmdbvs pc, {r2, r4, r5, r6, r8, r9, ip, sp, lr}^ + 74b8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 74bc: 0000642e andeq r6, r0, lr, lsr #8 + 74c0: 5f777a6c svcpl 0x00777a6c + 74c4: 74696e69 strbtvc r6, [r9], #-3689 + 74c8: 286f2e32 stmdacs pc!, {r1, r4, r5, r9, sl, fp, sp}^ + 74cc: 74347472 ldrtvc r7, [r4], #-1138 + 74d0: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} + 74d4: 003a2961 eorseq r2, sl, r1, ror #18 + 74d8: 52414900 subpl r4, r1, #0 ; 0x0 + 74dc: 534e4120 movtpl r4, #57632 ; 0xe120 + 74e0: 2f432049 svccs 0x00432049 + 74e4: 202b2b43 eorcs r2, fp, r3, asr #22 + 74e8: 706d6f43 rsbvc r6, sp, r3, asr #30 + 74ec: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 74f0: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 74f4: 302e3033 eorcc r3, lr, r3, lsr r0 + 74f8: 3131352e teqcc r1, lr, lsr #10 + 74fc: 572f3437 undefined + 7500: 66203233 undefined + 7504: 4120726f teqmi r0, pc, ror #4 + 7508: 2d004d52 stccs 13, cr4, [r0, #-328] + 750c: 2f3a4649 svccs 0x003a4649 + 7510: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7514: 646c6975 strbtvs r6, [ip], #-2421 + 7518: 3033352f eorscc r3, r3, pc, lsr #10 + 751c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7520: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7524: 612f6e6f teqvs pc, pc, ror #28 + 7528: 315f6d72 cmpcc pc, r2, ror sp + 752c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7530: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7534: 2f303335 svccs 0x00303335 + 7538: 2f6d7261 svccs 0x006d7261 + 753c: 2f62696c svccs 0x0062696c + 7540: 7074756f rsbsvc r7, r4, pc, ror #10 + 7544: 612f7475 teqvs pc, r5, ror r4 + 7548: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 754c: 61726269 cmnvs r2, r9, ror #4 + 7550: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 7554: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 7558: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} + 755c: 2d20636e stccs 3, cr6, [r0, #-440]! + 7560: 2f3a4649 svccs 0x003a4649 + 7564: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7568: 646c6975 strbtvs r6, [ip], #-2421 + 756c: 3033352f eorscc r3, r3, pc, lsr #10 + 7570: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7574: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7578: 612f6e6f teqvs pc, pc, ror #28 + 757c: 315f6d72 cmpcc pc, r2, ror sp + 7580: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7584: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7588: 2f303335 svccs 0x00303335 + 758c: 2f6d7261 svccs 0x006d7261 + 7590: 2f62696c svccs 0x0062696c + 7594: 7074756f rsbsvc r7, r4, pc, ror #10 + 7598: 612f7475 teqvs pc, r5, ror r4 + 759c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 75a0: 61726269 cmnvs r2, r9, ror #4 + 75a4: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 75a8: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 75ac: 732f3462 teqvc pc, #1644167168 ; 0x62000000 + 75b0: 2d206372 stccs 3, cr6, [r0, #-456]! + 75b4: 2f3a4649 svccs 0x003a4649 + 75b8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 75bc: 646c6975 strbtvs r6, [ip], #-2421 + 75c0: 3033352f eorscc r3, r3, pc, lsr #10 + 75c4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 75c8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 75cc: 612f6e6f teqvs pc, pc, ror #28 + 75d0: 315f6d72 cmpcc pc, r2, ror sp + 75d4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 75d8: 2d62696c stclcs 9, cr6, [r2, #-432]! + 75dc: 2f303335 svccs 0x00303335 + 75e0: 2f6d7261 svccs 0x006d7261 + 75e4: 2f62696c svccs 0x0062696c + 75e8: 7074756f rsbsvc r7, r4, pc, ror #10 + 75ec: 612f7475 teqvs pc, r5, ror r4 + 75f0: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 75f4: 61726269 cmnvs r2, r9, ror #4 + 75f8: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 75fc: 6d72612f ldfvse f6, [r2, #-188]! + 7600: 2f62696c svccs 0x0062696c + 7604: 6c636e69 stclvs 14, cr6, [r3], #-420 + 7608: 20656475 rsbcs r6, r5, r5, ror r4 + 760c: 3a46492d bcc 1199ac8 + 7610: 6d72612f ldfvse f6, [r2, #-188]! + 7614: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 7618: 33352f64 teqcc r5, #400 ; 0x190 + 761c: 61727430 cmnvs r2, r0, lsr r4 + 7620: 7469736e strbtvc r7, [r9], #-878 + 7624: 2f6e6f69 svccs 0x006e6f69 + 7628: 5f6d7261 svcpl 0x006d7261 + 762c: 35393131 ldrcc r3, [r9, #-305]! + 7630: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 7634: 3033352d eorscc r3, r3, sp, lsr #10 + 7638: 6d72612f ldfvse f6, [r2, #-188]! + 763c: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 7640: 74756f2f ldrbtvc r6, [r5], #-3887 + 7644: 2f747570 svccs 0x00747570 + 7648: 5f6d7261 svcpl 0x006d7261 + 764c: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 7650: 65697261 strbvs r7, [r9, #-609]! + 7654: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 7658: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 765c: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 7660: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} + 7664: 64756c63 ldrbtvs r6, [r5], #-3171 + 7668: 492d2065 pushmi {r0, r2, r5, r6, sp} + 766c: 612f3a46 teqvs pc, r6, asr #20 + 7670: 75626d72 strbvc r6, [r2, #-3442]! + 7674: 2f646c69 svccs 0x00646c69 + 7678: 74303335 ldrtvc r3, [r0], #-821 + 767c: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7680: 6f697469 svcvs 0x00697469 + 7684: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7688: 31315f6d teqcc r1, sp, ror #30 + 768c: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7690: 352d6269 strcc r6, [sp, #-617]! + 7694: 612f3033 teqvs pc, r3, lsr r0 + 7698: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 769c: 742f6269 strtvc r6, [pc], #617 ; 76a4 + 76a0: 622f706d eorvs r7, pc, #109 ; 0x6d + 76a4: 646c6975 strbtvs r6, [ip], #-2421 + 76a8: 2062696c rsbcs r6, r2, ip, ror #18 + 76ac: 70632d2d rsbvc r2, r3, sp, lsr #26 + 76b0: 52412075 subpl r2, r1, #117 ; 0x75 + 76b4: 4454394d ldrbmi r3, [r4], #-2381 + 76b8: 2d20494d stccs 9, cr4, [r0, #-308]! + 76bc: 646e652d strbtvs r6, [lr], #-1325 + 76c0: 206e6169 rsbcs r6, lr, r9, ror #2 + 76c4: 7474696c ldrbtvc r6, [r4], #-2412 + 76c8: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 76cc: 455f5f44 ldrbmi r5, [pc, #-3908] ; 6790 + 76d0: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 + 76d4: 444c4955 strbmi r4, [ip], #-2389 + 76d8: 2d205f5f stccs 15, cr5, [r0, #-380]! + 76dc: 415f5f44 cmpmi pc, r4, asr #30 + 76e0: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 + 76e4: 41524249 cmpmi r2, r9, asr #4 + 76e8: 5f5f5952 svcpl 0x005f5952 + 76ec: 612d2d20 teqvs sp, r0, lsr #26 + 76f0: 2d206d72 stccs 13, cr6, [r0, #-456]! + 76f4: 746e692d strbtvc r6, [lr], #-2349 + 76f8: 6f777265 svcvs 0x00777265 + 76fc: 2d206b72 vstmdbcs r0!, {d6-} + 7700: 2d20684f stccs 8, cr6, [r0, #-316]! + 7704: 6c69732d stclvs 3, cr7, [r9], #-180 + 7708: 20746e65 rsbscs r6, r4, r5, ror #28 + 770c: 61772d2d cmnvs r7, sp, lsr #26 + 7710: 6e696e72 mcrvs 14, 3, r6, cr9, cr2, {3} + 7714: 615f7367 cmpvs pc, r7, ror #6 + 7718: 655f6572 ldrbvs r6, [pc, #-1394] ; 71ae + 771c: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 7720: 2d2d2073 stccs 0, cr2, [sp, #-460]! + 7724: 69727473 ldmdbvs r2!, {r0, r1, r4, r5, r6, sl, ip, sp, lr}^ + 7728: 615f7463 cmpvs pc, r3, ror #8 + 772c: 2069736e rsbcs r7, r9, lr, ror #6 + 7730: 6e6f2d2d cdpvs 13, 6, cr2, cr15, cr13, {1} + 7734: 735f796c cmpvc pc, #1769472 ; 0x1b0000 + 7738: 756f6474 strbvc r6, [pc, #-1140]! ; 72cc + 773c: 2d2d2074 stccs 0, cr2, [sp, #-464]! + 7740: 67616964 strbvs r6, [r1, -r4, ror #18]! + 7744: 7075735f rsbsvc r7, r5, pc, asr r3 + 7748: 73657270 cmnvc r5, #7 ; 0x7 + 774c: 6f473d73 svcvs 0x00473d73 + 7750: 20353030 eorscs r3, r5, r0, lsr r0 + 7754: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 7758: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 775c: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 7760: 3d737365 ldclcc 3, cr7, [r3, #-404]! + 7764: 35346550 ldrcc r6, [r4, #-1360]! + 7768: 2d2d2030 stccs 0, cr2, [sp, #-192]! + 776c: 67616964 strbvs r6, [r1, -r4, ror #18]! + 7770: 7272655f rsbsvc r6, r2, #398458880 ; 0x17c00000 + 7774: 503d726f eorspl r7, sp, pc, ror #4 + 7778: 33393165 teqcc r9, #1073741849 ; 0x40000019 + 777c: 2f3a4620 svccs 0x003a4620 + 7780: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7784: 646c6975 strbtvs r6, [ip], #-2421 + 7788: 3033352f eorscc r3, r3, pc, lsr #10 + 778c: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7790: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7794: 612f6e6f teqvs pc, pc, ror #28 + 7798: 315f6d72 cmpcc pc, r2, ror sp + 779c: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 77a0: 2d62696c stclcs 9, cr6, [r2, #-432]! + 77a4: 2f303335 svccs 0x00303335 + 77a8: 2f6d7261 svccs 0x006d7261 + 77ac: 2f62696c svccs 0x0062696c + 77b0: 7074756f rsbsvc r7, r4, pc, ror #10 + 77b4: 612f7475 teqvs pc, r5, ror r4 + 77b8: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 77bc: 61726269 cmnvs r2, r9, ror #4 + 77c0: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 77c4: 6d72612f ldfvse f6, [r2, #-188]! + 77c8: 5c62696c stclpl 9, cr6, [r2], #-432 + 77cc: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 77d0: 6d6f632f stclvs 3, cr6, [pc, #-188]! + 77d4: 2f6e6f6d svccs 0x006e6f6d + 77d8: 74696e69 strbtvc r6, [r9], #-3689 + 77dc: 777a6c2f ldrbvc r6, [sl, -pc, lsr #24]! + 77e0: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 77e4: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 77e8: 2d207070 stccs 0, cr7, [r0, #-448]! + 77ec: 3a46206f bcc 118f9b0 + 77f0: 6d72615c ldfvse f6, [r2, #-368]! + 77f4: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 77f8: 33355c64 teqcc r5, #25600 ; 0x6400 + 77fc: 61727430 cmnvs r2, r0, lsr r4 + 7800: 7469736e strbtvc r7, [r9], #-878 + 7804: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 7808: 5f6d7261 svcpl 0x006d7261 + 780c: 35393131 ldrcc r3, [r9, #-305]! + 7810: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 7814: 3033352d eorscc r3, r3, sp, lsr #10 + 7818: 6d72615c ldfvse f6, [r2, #-368]! + 781c: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 7820: 706d745c rsbvc r7, sp, ip, asr r4 + 7824: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 7828: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 782c: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 7830: 74725c6a ldrbtvc r5, [r2], #-3178 + 7834: 615f7434 cmpvs pc, r4, lsr r4 + 7838: 7a6c5c6c bvc 1b1e9f0 + 783c: 6e695f77 mcrvs 15, 3, r5, cr9, cr7, {3} + 7840: 2e327469 cdpcs 4, 3, cr7, cr2, cr9, {3} + 7844: 2d2d206f stccs 0, cr2, [sp, #-444]! + 7848: 2b636565 blcs 18e0de4 + 784c: 2d2d202b stccs 0, cr2, [sp, #-172]! + 7850: 65706564 ldrbvs r6, [r0, #-1380]! + 7854: 6e65646e cdpvs 4, 6, cr6, cr5, cr14, {3} + 7858: 73656963 cmnvc r5, #1622016 ; 0x18c000 + 785c: 4620693d undefined + 7860: 72615c3a rsbvc r5, r1, #14848 ; 0x3a00 + 7864: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 7868: 355c646c ldrbcc r6, [ip, #-1132] + 786c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 7870: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 7874: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7878: 6d72615c ldfvse f6, [r2, #-368]! + 787c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 7880: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 7884: 33352d62 teqcc r5, #6272 ; 0x1880 + 7888: 72615c30 rsbvc r5, r1, #12288 ; 0x3000 + 788c: 696c5c6d stmdbvs ip!, {r0, r2, r3, r5, r6, sl, fp, ip, lr}^ + 7890: 6d745c62 ldclvs 12, cr5, [r4, #-392]! + 7894: 75625c70 strbvc r5, [r2, #-3184]! + 7898: 6c646c69 stclvs 12, cr6, [r4], #-420 + 789c: 6f5c6269 svcvs 0x005c6269 + 78a0: 725c6a62 subsvc r6, ip, #401408 ; 0x62000 + 78a4: 5f743474 svcpl 0x00743474 + 78a8: 6c5c6c61 mrrcvs 12, 6, r6, ip, cr1 + 78ac: 695f777a ldmdbvs pc, {r1, r3, r4, r5, r6, r8, r9, sl, ip, sp, lr}^ + 78b0: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 78b4: 0000642e andeq r6, r0, lr, lsr #8 + 78b8: 5f747762 svcpl 0x00747762 + 78bc: 74696e69 strbtvc r6, [r9], #-3689 + 78c0: 286f2e32 stmdacs pc!, {r1, r4, r5, r9, sl, fp, sp}^ + 78c4: 74347472 ldrtvc r7, [r4], #-1138 + 78c8: 2e6c615f mcrcs 1, 3, r6, cr12, cr15, {2} + 78cc: 003a2961 eorseq r2, sl, r1, ror #18 + 78d0: 52414900 subpl r4, r1, #0 ; 0x0 + 78d4: 534e4120 movtpl r4, #57632 ; 0xe120 + 78d8: 2f432049 svccs 0x00432049 + 78dc: 202b2b43 eorcs r2, fp, r3, asr #22 + 78e0: 706d6f43 rsbvc r6, sp, r3, asr #30 + 78e4: 72656c69 rsbvc r6, r5, #26880 ; 0x6900 + 78e8: 2e355620 cfmsuba32cs mvax1, mvax5, mvfx5, mvfx0 + 78ec: 302e3033 eorcc r3, lr, r3, lsr r0 + 78f0: 3131352e teqcc r1, lr, lsr #10 + 78f4: 572f3437 undefined + 78f8: 66203233 undefined + 78fc: 4120726f teqmi r0, pc, ror #4 + 7900: 2d004d52 stccs 13, cr4, [r0, #-328] + 7904: 2f3a4649 svccs 0x003a4649 + 7908: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 790c: 646c6975 strbtvs r6, [ip], #-2421 + 7910: 3033352f eorscc r3, r3, pc, lsr #10 + 7914: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7918: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 791c: 612f6e6f teqvs pc, pc, ror #28 + 7920: 315f6d72 cmpcc pc, r2, ror sp + 7924: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7928: 2d62696c stclcs 9, cr6, [r2, #-432]! + 792c: 2f303335 svccs 0x00303335 + 7930: 2f6d7261 svccs 0x006d7261 + 7934: 2f62696c svccs 0x0062696c + 7938: 7074756f rsbsvc r7, r4, pc, ror #10 + 793c: 612f7475 teqvs pc, r5, ror r4 + 7940: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 7944: 61726269 cmnvs r2, r9, ror #4 + 7948: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 794c: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 7950: 692f3462 stmdbvs pc!, {r1, r5, r6, sl, ip, sp} + 7954: 2d20636e stccs 3, cr6, [r0, #-440]! + 7958: 2f3a4649 svccs 0x003a4649 + 795c: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7960: 646c6975 strbtvs r6, [ip], #-2421 + 7964: 3033352f eorscc r3, r3, pc, lsr #10 + 7968: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 796c: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7970: 612f6e6f teqvs pc, pc, ror #28 + 7974: 315f6d72 cmpcc pc, r2, ror sp + 7978: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 797c: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7980: 2f303335 svccs 0x00303335 + 7984: 2f6d7261 svccs 0x006d7261 + 7988: 2f62696c svccs 0x0062696c + 798c: 7074756f rsbsvc r7, r4, pc, ror #10 + 7990: 612f7475 teqvs pc, r5, ror r4 + 7994: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 7998: 61726269 cmnvs r2, r9, ror #4 + 799c: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 79a0: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 79a4: 732f3462 teqvc pc, #1644167168 ; 0x62000000 + 79a8: 2d206372 stccs 3, cr6, [r0, #-456]! + 79ac: 2f3a4649 svccs 0x003a4649 + 79b0: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 79b4: 646c6975 strbtvs r6, [ip], #-2421 + 79b8: 3033352f eorscc r3, r3, pc, lsr #10 + 79bc: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 79c0: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 79c4: 612f6e6f teqvs pc, pc, ror #28 + 79c8: 315f6d72 cmpcc pc, r2, ror sp + 79cc: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 79d0: 2d62696c stclcs 9, cr6, [r2, #-432]! + 79d4: 2f303335 svccs 0x00303335 + 79d8: 2f6d7261 svccs 0x006d7261 + 79dc: 2f62696c svccs 0x0062696c + 79e0: 7074756f rsbsvc r7, r4, pc, ror #10 + 79e4: 612f7475 teqvs pc, r5, ror r4 + 79e8: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 79ec: 61726269 cmnvs r2, r9, ror #4 + 79f0: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 79f4: 6d72612f ldfvse f6, [r2, #-188]! + 79f8: 2f62696c svccs 0x0062696c + 79fc: 6c636e69 stclvs 14, cr6, [r3], #-420 + 7a00: 20656475 rsbcs r6, r5, r5, ror r4 + 7a04: 3a46492d bcc 1199ec0 + 7a08: 6d72612f ldfvse f6, [r2, #-188]! + 7a0c: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 7a10: 33352f64 teqcc r5, #400 ; 0x190 + 7a14: 61727430 cmnvs r2, r0, lsr r4 + 7a18: 7469736e strbtvc r7, [r9], #-878 + 7a1c: 2f6e6f69 svccs 0x006e6f69 + 7a20: 5f6d7261 svcpl 0x006d7261 + 7a24: 35393131 ldrcc r3, [r9, #-305]! + 7a28: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 7a2c: 3033352d eorscc r3, r3, sp, lsr #10 + 7a30: 6d72612f ldfvse f6, [r2, #-188]! + 7a34: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 7a38: 74756f2f ldrbtvc r6, [r5], #-3887 + 7a3c: 2f747570 svccs 0x00747570 + 7a40: 5f6d7261 svcpl 0x006d7261 + 7a44: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 7a48: 65697261 strbvs r7, [r9, #-609]! + 7a4c: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 7a50: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 7a54: 6372732f cmnvs r2, #-1140850688 ; 0xbc000000 + 7a58: 6e692f32 mcrvs 15, 3, r2, cr9, cr2, {1} + 7a5c: 64756c63 ldrbtvs r6, [r5], #-3171 + 7a60: 492d2065 pushmi {r0, r2, r5, r6, sp} + 7a64: 612f3a46 teqvs pc, r6, asr #20 + 7a68: 75626d72 strbvc r6, [r2, #-3442]! + 7a6c: 2f646c69 svccs 0x00646c69 + 7a70: 74303335 ldrtvc r3, [r0], #-821 + 7a74: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7a78: 6f697469 svcvs 0x00697469 + 7a7c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7a80: 31315f6d teqcc r1, sp, ror #30 + 7a84: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7a88: 352d6269 strcc r6, [sp, #-617]! + 7a8c: 612f3033 teqvs pc, r3, lsr r0 + 7a90: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7a94: 742f6269 strtvc r6, [pc], #617 ; 7a9c + 7a98: 622f706d eorvs r7, pc, #109 ; 0x6d + 7a9c: 646c6975 strbtvs r6, [ip], #-2421 + 7aa0: 2062696c rsbcs r6, r2, ip, ror #18 + 7aa4: 70632d2d rsbvc r2, r3, sp, lsr #26 + 7aa8: 52412075 subpl r2, r1, #117 ; 0x75 + 7aac: 4454394d ldrbmi r3, [r4], #-2381 + 7ab0: 2d20494d stccs 9, cr4, [r0, #-308]! + 7ab4: 646e652d strbtvs r6, [lr], #-1325 + 7ab8: 206e6169 rsbcs r6, lr, r9, ror #2 + 7abc: 7474696c ldrbtvc r6, [r4], #-2412 + 7ac0: 2d20656c cfstr32cs mvfx6, [r0, #-432]! + 7ac4: 455f5f44 ldrbmi r5, [pc, #-3908] ; 6b88 + 7ac8: 425f464c subsmi r4, pc, #79691776 ; 0x4c00000 + 7acc: 444c4955 strbmi r4, [ip], #-2389 + 7ad0: 2d205f5f stccs 15, cr5, [r0, #-380]! + 7ad4: 415f5f44 cmpmi pc, r4, asr #30 + 7ad8: 4c5f4d52 mrrcmi 13, 5, r4, pc, cr2 + 7adc: 41524249 cmpmi r2, r9, asr #4 + 7ae0: 5f5f5952 svcpl 0x005f5952 + 7ae4: 612d2d20 teqvs sp, r0, lsr #26 + 7ae8: 2d206d72 stccs 13, cr6, [r0, #-456]! + 7aec: 746e692d strbtvc r6, [lr], #-2349 + 7af0: 6f777265 svcvs 0x00777265 + 7af4: 2d206b72 vstmdbcs r0!, {d6-} + 7af8: 2d20684f stccs 8, cr6, [r0, #-316]! + 7afc: 6c69732d stclvs 3, cr7, [r9], #-180 + 7b00: 20746e65 rsbscs r6, r4, r5, ror #28 + 7b04: 61772d2d cmnvs r7, sp, lsr #26 + 7b08: 6e696e72 mcrvs 14, 3, r6, cr9, cr2, {3} + 7b0c: 615f7367 cmpvs pc, r7, ror #6 + 7b10: 655f6572 ldrbvs r6, [pc, #-1394] ; 75a6 + 7b14: 726f7272 rsbvc r7, pc, #536870919 ; 0x20000007 + 7b18: 2d2d2073 stccs 0, cr2, [sp, #-460]! + 7b1c: 69727473 ldmdbvs r2!, {r0, r1, r4, r5, r6, sl, ip, sp, lr}^ + 7b20: 615f7463 cmpvs pc, r3, ror #8 + 7b24: 2069736e rsbcs r7, r9, lr, ror #6 + 7b28: 6e6f2d2d cdpvs 13, 6, cr2, cr15, cr13, {1} + 7b2c: 735f796c cmpvc pc, #1769472 ; 0x1b0000 + 7b30: 756f6474 strbvc r6, [pc, #-1140]! ; 76c4 + 7b34: 2d2d2074 stccs 0, cr2, [sp, #-464]! + 7b38: 67616964 strbvs r6, [r1, -r4, ror #18]! + 7b3c: 7075735f rsbsvc r7, r5, pc, asr r3 + 7b40: 73657270 cmnvc r5, #7 ; 0x7 + 7b44: 6f473d73 svcvs 0x00473d73 + 7b48: 20353030 eorscs r3, r5, r0, lsr r0 + 7b4c: 69642d2d stmdbvs r4!, {r0, r2, r3, r5, r8, sl, fp, sp}^ + 7b50: 735f6761 cmpvc pc, #25427968 ; 0x1840000 + 7b54: 72707075 rsbsvc r7, r0, #117 ; 0x75 + 7b58: 3d737365 ldclcc 3, cr7, [r3, #-404]! + 7b5c: 35346550 ldrcc r6, [r4, #-1360]! + 7b60: 2d2d2030 stccs 0, cr2, [sp, #-192]! + 7b64: 67616964 strbvs r6, [r1, -r4, ror #18]! + 7b68: 7272655f rsbsvc r6, r2, #398458880 ; 0x17c00000 + 7b6c: 503d726f eorspl r7, sp, pc, ror #4 + 7b70: 33393165 teqcc r9, #1073741849 ; 0x40000019 + 7b74: 2f3a4620 svccs 0x003a4620 + 7b78: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7b7c: 646c6975 strbtvs r6, [ip], #-2421 + 7b80: 3033352f eorscc r3, r3, pc, lsr #10 + 7b84: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7b88: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7b8c: 612f6e6f teqvs pc, pc, ror #28 + 7b90: 315f6d72 cmpcc pc, r2, ror sp + 7b94: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7b98: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7b9c: 2f303335 svccs 0x00303335 + 7ba0: 2f6d7261 svccs 0x006d7261 + 7ba4: 2f62696c svccs 0x0062696c + 7ba8: 7074756f rsbsvc r7, r4, pc, ror #10 + 7bac: 612f7475 teqvs pc, r5, ror r4 + 7bb0: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 7bb4: 61726269 cmnvs r2, r9, ror #4 + 7bb8: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 7bbc: 6d72612f ldfvse f6, [r2, #-188]! + 7bc0: 5c62696c stclpl 9, cr6, [r2], #-432 + 7bc4: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 7bc8: 6d6f632f stclvs 3, cr6, [pc, #-188]! + 7bcc: 2f6e6f6d svccs 0x006e6f6d + 7bd0: 74696e69 strbtvc r6, [r9], #-3689 + 7bd4: 7477622f ldrbtvc r6, [r7], #-559 + 7bd8: 696e695f stmdbvs lr!, {r0, r1, r2, r3, r4, r6, r8, fp, sp, lr}^ + 7bdc: 632e3274 teqvs lr, #1073741831 ; 0x40000007 + 7be0: 2d207070 stccs 0, cr7, [r0, #-448]! + 7be4: 3a46206f bcc 118fda8 + 7be8: 6d72615c ldfvse f6, [r2, #-368]! + 7bec: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 7bf0: 33355c64 teqcc r5, #25600 ; 0x6400 + 7bf4: 61727430 cmnvs r2, r0, lsr r4 + 7bf8: 7469736e strbtvc r7, [r9], #-878 + 7bfc: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 7c00: 5f6d7261 svcpl 0x006d7261 + 7c04: 35393131 ldrcc r3, [r9, #-305]! + 7c08: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 7c0c: 3033352d eorscc r3, r3, sp, lsr #10 + 7c10: 6d72615c ldfvse f6, [r2, #-368]! + 7c14: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 7c18: 706d745c rsbvc r7, sp, ip, asr r4 + 7c1c: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 7c20: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 7c24: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 7c28: 74725c6a ldrbtvc r5, [r2], #-3178 + 7c2c: 615f7434 cmpvs pc, r4, lsr r4 + 7c30: 77625c6c strbvc r5, [r2, -ip, ror #24]! + 7c34: 6e695f74 mcrvs 15, 3, r5, cr9, cr4, {3} + 7c38: 2e327469 cdpcs 4, 3, cr7, cr2, cr9, {3} + 7c3c: 2d2d206f stccs 0, cr2, [sp, #-444]! + 7c40: 2b636565 blcs 18e11dc + 7c44: 2d2d202b stccs 0, cr2, [sp, #-172]! + 7c48: 65706564 ldrbvs r6, [r0, #-1380]! + 7c4c: 6e65646e cdpvs 4, 6, cr6, cr5, cr14, {3} + 7c50: 73656963 cmnvc r5, #1622016 ; 0x18c000 + 7c54: 4620693d undefined + 7c58: 72615c3a rsbvc r5, r1, #14848 ; 0x3a00 + 7c5c: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 7c60: 355c646c ldrbcc r6, [ip, #-1132] + 7c64: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 7c68: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 7c6c: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7c70: 6d72615c ldfvse f6, [r2, #-368]! + 7c74: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 7c78: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 7c7c: 33352d62 teqcc r5, #6272 ; 0x1880 + 7c80: 72615c30 rsbvc r5, r1, #12288 ; 0x3000 + 7c84: 696c5c6d stmdbvs ip!, {r0, r2, r3, r5, r6, sl, fp, ip, lr}^ + 7c88: 6d745c62 ldclvs 12, cr5, [r4, #-392]! + 7c8c: 75625c70 strbvc r5, [r2, #-3184]! + 7c90: 6c646c69 stclvs 12, cr6, [r4], #-420 + 7c94: 6f5c6269 svcvs 0x005c6269 + 7c98: 725c6a62 subsvc r6, ip, #401408 ; 0x62000 + 7c9c: 5f743474 svcpl 0x00743474 + 7ca0: 625c6c61 subsvs r6, ip, #24832 ; 0x6100 + 7ca4: 695f7477 ldmdbvs pc, {r0, r1, r2, r4, r5, r6, sl, ip, sp, lr}^ + 7ca8: 3274696e rsbscc r6, r4, #1802240 ; 0x1b8000 + 7cac: 0000642e andeq r6, r0, lr, lsr #8 + 7cb0: 74696e69 strbtvc r6, [r9], #-3689 + 7cb4: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 + 7cb8: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 + 7cbc: 72286f2e eorvc r6, r8, #184 ; 0xb8 + 7cc0: 5f743474 svcpl 0x00743474 + 7cc4: 612e6c61 teqvs lr, r1, ror #24 + 7cc8: 00003a29 andeq r3, r0, r9, lsr #20 + 7ccc: 20524149 subscs r4, r2, r9, asr #2 + 7cd0: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 7cd4: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 7cd8: 43202b2b teqmi r0, #44032 ; 0xac00 + 7cdc: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 7ce0: 2072656c rsbscs r6, r2, ip, ror #10 + 7ce4: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 7ce8: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 7cec: 37313135 undefined + 7cf0: 33572f34 cmpcc r7, #208 ; 0xd0 + 7cf4: 6f662032 svcvs 0x00662032 + 7cf8: 52412072 subpl r2, r1, #114 ; 0x72 + 7cfc: 492d004d pushmi {r0, r2, r3, r6} + 7d00: 612f3a46 teqvs pc, r6, asr #20 + 7d04: 75626d72 strbvc r6, [r2, #-3442]! + 7d08: 2f646c69 svccs 0x00646c69 + 7d0c: 74303335 ldrtvc r3, [r0], #-821 + 7d10: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7d14: 6f697469 svcvs 0x00697469 + 7d18: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7d1c: 31315f6d teqcc r1, sp, ror #30 + 7d20: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7d24: 352d6269 strcc r6, [sp, #-617]! + 7d28: 612f3033 teqvs pc, r3, lsr r0 + 7d2c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7d30: 6f2f6269 svcvs 0x002f6269 + 7d34: 75707475 ldrbvc r7, [r0, #-1141]! + 7d38: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 7d3c: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 7d40: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 7d44: 2f736569 svccs 0x00736569 + 7d48: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 7d4c: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} + 7d50: 492d2063 pushmi {r0, r1, r5, r6, sp} + 7d54: 612f3a46 teqvs pc, r6, asr #20 + 7d58: 75626d72 strbvc r6, [r2, #-3442]! + 7d5c: 2f646c69 svccs 0x00646c69 + 7d60: 74303335 ldrtvc r3, [r0], #-821 + 7d64: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7d68: 6f697469 svcvs 0x00697469 + 7d6c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7d70: 31315f6d teqcc r1, sp, ror #30 + 7d74: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7d78: 352d6269 strcc r6, [sp, #-617]! + 7d7c: 612f3033 teqvs pc, r3, lsr r0 + 7d80: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7d84: 6f2f6269 svcvs 0x002f6269 + 7d88: 75707475 ldrbvc r7, [r0, #-1141]! + 7d8c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 7d90: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 7d94: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 7d98: 2f736569 svccs 0x00736569 + 7d9c: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 7da0: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 + 7da4: 492d2063 pushmi {r0, r1, r5, r6, sp} + 7da8: 612f3a46 teqvs pc, r6, asr #20 + 7dac: 75626d72 strbvc r6, [r2, #-3442]! + 7db0: 2f646c69 svccs 0x00646c69 + 7db4: 74303335 ldrtvc r3, [r0], #-821 + 7db8: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7dbc: 6f697469 svcvs 0x00697469 + 7dc0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7dc4: 31315f6d teqcc r1, sp, ror #30 + 7dc8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7dcc: 352d6269 strcc r6, [sp, #-617]! + 7dd0: 612f3033 teqvs pc, r3, lsr r0 + 7dd4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7dd8: 6f2f6269 svcvs 0x002f6269 + 7ddc: 75707475 ldrbvc r7, [r0, #-1141]! + 7de0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 7de4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 7de8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 7dec: 2f736569 svccs 0x00736569 + 7df0: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 7df4: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} + 7df8: 756c636e strbvc r6, [ip, #-878]! + 7dfc: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 7e00: 2f3a4649 svccs 0x003a4649 + 7e04: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 7e08: 646c6975 strbtvs r6, [ip], #-2421 + 7e0c: 3033352f eorscc r3, r3, pc, lsr #10 + 7e10: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 7e14: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 7e18: 612f6e6f teqvs pc, pc, ror #28 + 7e1c: 315f6d72 cmpcc pc, r2, ror sp + 7e20: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 7e24: 2d62696c stclcs 9, cr6, [r2, #-432]! + 7e28: 2f303335 svccs 0x00303335 + 7e2c: 2f6d7261 svccs 0x006d7261 + 7e30: 2f62696c svccs 0x0062696c + 7e34: 7074756f rsbsvc r7, r4, pc, ror #10 + 7e38: 612f7475 teqvs pc, r5, ror r4 + 7e3c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 7e40: 61726269 cmnvs r2, r9, ror #4 + 7e44: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 7e48: 6d72612f ldfvse f6, [r2, #-188]! + 7e4c: 2f62696c svccs 0x0062696c + 7e50: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 7e54: 636e692f cmnvs lr, #770048 ; 0xbc000 + 7e58: 6564756c strbvs r7, [r4, #-1388]! + 7e5c: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 7e60: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 7e64: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 7e68: 352f646c strcc r6, [pc, #-1132]! ; 7a04 + 7e6c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 7e70: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 7e74: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 7e78: 6d72612f ldfvse f6, [r2, #-188]! + 7e7c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 7e80: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 7e84: 33352d62 teqcc r5, #6272 ; 0x1880 + 7e88: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 7e8c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 7e90: 6d742f62 ldclvs 15, cr2, [r4, #-392]! + 7e94: 75622f70 strbvc r2, [r2, #-3952]! + 7e98: 6c646c69 stclvs 12, cr6, [r4], #-420 + 7e9c: 2d206269 sfmcs f6, 4, [r0, #-420]! + 7ea0: 7570632d ldrbvc r6, [r0, #-813]! + 7ea4: 4d524120 ldfmie f4, [r2, #-128] + 7ea8: 4d445439 cfstrdmi mvd5, [r4, #-228] + 7eac: 2d2d2049 stccs 0, cr2, [sp, #-292]! + 7eb0: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 7eb4: 6c206e61 stcvs 14, cr6, [r0], #-388 + 7eb8: 6c747469 cfldrdvs mvd7, [r4], #-420 + 7ebc: 442d2065 strtmi r2, [sp], #-101 + 7ec0: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 + 7ec4: 55425f46 strbpl r5, [r2, #-3910] + 7ec8: 5f444c49 svcpl 0x00444c49 + 7ecc: 442d205f strtmi r2, [sp], #-95 + 7ed0: 52415f5f subpl r5, r1, #380 ; 0x17c + 7ed4: 494c5f4d stmdbmi ip, {r0, r2, r3, r6, r8, r9, sl, fp, ip, lr}^ + 7ed8: 52415242 subpl r5, r1, #536870916 ; 0x20000004 + 7edc: 205f5f59 subscs r5, pc, r9, asr pc + 7ee0: 72612d2d rsbvc r2, r1, #2880 ; 0xb40 + 7ee4: 2d2d206d stccs 0, cr2, [sp, #-436]! + 7ee8: 65746e69 ldrbvs r6, [r4, #-3689]! + 7eec: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 7ef0: 4f2d206b svcmi 0x002d206b + 7ef4: 2d2d2068 stccs 0, cr2, [sp, #-416]! + 7ef8: 656c6973 strbvs r6, [ip, #-2419]! + 7efc: 2d20746e cfstrscs mvf7, [r0, #-440]! + 7f00: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 + 7f04: 676e696e strbvs r6, [lr, -lr, ror #18]! + 7f08: 72615f73 rsbvc r5, r1, #460 ; 0x1cc + 7f0c: 72655f65 rsbvc r5, r5, #404 ; 0x194 + 7f10: 73726f72 cmnvc r2, #456 ; 0x1c8 + 7f14: 732d2d20 teqvc sp, #2048 ; 0x800 + 7f18: 63697274 cmnvs r9, #1073741831 ; 0x40000007 + 7f1c: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} + 7f20: 2d206973 stccs 9, cr6, [r0, #-460]! + 7f24: 6c6e6f2d stclvs 15, cr6, [lr], #-180 + 7f28: 74735f79 ldrbtvc r5, [r3], #-3961 + 7f2c: 74756f64 ldrbtvc r6, [r5], #-3940 + 7f30: 642d2d20 strtvs r2, [sp], #-3360 + 7f34: 5f676169 svcpl 0x00676169 + 7f38: 70707573 rsbsvc r7, r0, r3, ror r5 + 7f3c: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 7f40: 306f473d rsbcc r4, pc, sp, lsr r7 + 7f44: 2d203530 cfstr32cs mvfx3, [r0, #-192]! + 7f48: 6169642d cmnvs r9, sp, lsr #8 + 7f4c: 75735f67 ldrbvc r5, [r3, #-3943]! + 7f50: 65727070 ldrbvs r7, [r2, #-112]! + 7f54: 503d7373 eorspl r7, sp, r3, ror r3 + 7f58: 30353465 eorscc r3, r5, r5, ror #8 + 7f5c: 642d2d20 strtvs r2, [sp], #-3360 + 7f60: 5f676169 svcpl 0x00676169 + 7f64: 6f727265 svcvs 0x00727265 + 7f68: 65503d72 ldrbvs r3, [r0, #-3442] + 7f6c: 20333931 eorscs r3, r3, r1, lsr r9 + 7f70: 612f3a46 teqvs pc, r6, asr #20 + 7f74: 75626d72 strbvc r6, [r2, #-3442]! + 7f78: 2f646c69 svccs 0x00646c69 + 7f7c: 74303335 ldrtvc r3, [r0], #-821 + 7f80: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7f84: 6f697469 svcvs 0x00697469 + 7f88: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 7f8c: 31315f6d teqcc r1, sp, ror #30 + 7f90: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 7f94: 352d6269 strcc r6, [sp, #-617]! + 7f98: 612f3033 teqvs pc, r3, lsr r0 + 7f9c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 7fa0: 6f2f6269 svcvs 0x002f6269 + 7fa4: 75707475 ldrbvc r7, [r0, #-1141]! + 7fa8: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 7fac: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 7fb0: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 7fb4: 2f736569 svccs 0x00736569 + 7fb8: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 7fbc: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 + 7fc0: 2f326372 svccs 0x00326372 + 7fc4: 6d6d6f63 stclvs 15, cr6, [sp, #-396]! + 7fc8: 692f6e6f stmdbvs pc!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr} + 7fcc: 2f74696e svccs 0x0074696e + 7fd0: 74696e69 strbtvc r6, [r9], #-3689 + 7fd4: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 + 7fd8: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 + 7fdc: 7070632e rsbsvc r6, r0, lr, lsr #6 + 7fe0: 206f2d20 rsbcs r2, pc, r0, lsr #26 + 7fe4: 615c3a46 cmpvs ip, r6, asr #20 + 7fe8: 75626d72 strbvc r6, [r2, #-3442]! + 7fec: 5c646c69 stclpl 12, cr6, [r4], #-420 + 7ff0: 74303335 ldrtvc r3, [r0], #-821 + 7ff4: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 7ff8: 6f697469 svcvs 0x00697469 + 7ffc: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 8000: 31315f6d teqcc r1, sp, ror #30 + 8004: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 8008: 352d6269 strcc r6, [sp, #-617]! + 800c: 615c3033 cmpvs ip, r3, lsr r0 + 8010: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 8014: 745c6269 ldrbvc r6, [ip], #-617 + 8018: 625c706d subsvs r7, ip, #109 ; 0x6d + 801c: 646c6975 strbtvs r6, [ip], #-2421 + 8020: 5c62696c stclpl 9, cr6, [r2], #-432 + 8024: 5c6a626f sfmpl f6, 2, [sl], #-444 + 8028: 74347472 ldrtvc r7, [r4], #-1138 + 802c: 5c6c615f stfple f6, [ip], #-380 + 8030: 74696e69 strbtvc r6, [r9], #-3689 + 8034: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 + 8038: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 + 803c: 2d206f2e stccs 15, cr6, [r0, #-184]! + 8040: 6365652d cmnvs r5, #188743680 ; 0xb400000 + 8044: 2d202b2b fstmdbxcs r0!, {d2-d22} + 8048: 7065642d rsbvc r6, r5, sp, lsr #8 + 804c: 65646e65 strbvs r6, [r4, #-3685]! + 8050: 6569636e strbvs r6, [r9, #-878]! + 8054: 20693d73 rsbcs r3, r9, r3, ror sp + 8058: 615c3a46 cmpvs ip, r6, asr #20 + 805c: 75626d72 strbvc r6, [r2, #-3442]! + 8060: 5c646c69 stclpl 12, cr6, [r4], #-420 + 8064: 74303335 ldrtvc r3, [r0], #-821 + 8068: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 806c: 6f697469 svcvs 0x00697469 + 8070: 72615c6e rsbvc r5, r1, #28160 ; 0x6e00 + 8074: 31315f6d teqcc r1, sp, ror #30 + 8078: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 807c: 352d6269 strcc r6, [sp, #-617]! + 8080: 615c3033 cmpvs ip, r3, lsr r0 + 8084: 6c5c6d72 mrrcvs 13, 7, r6, ip, cr2 + 8088: 745c6269 ldrbvc r6, [ip], #-617 + 808c: 625c706d subsvs r7, ip, #109 ; 0x6d + 8090: 646c6975 strbtvs r6, [ip], #-2421 + 8094: 5c62696c stclpl 9, cr6, [r2], #-432 + 8098: 5c6a626f sfmpl f6, 2, [sl], #-444 + 809c: 74347472 ldrtvc r7, [r4], #-1138 + 80a0: 5c6c615f stfple f6, [ip], #-380 + 80a4: 74696e69 strbtvc r6, [r9], #-3689 + 80a8: 7274735f rsbsvc r7, r4, #2080374785 ; 0x7c000001 + 80ac: 736d6165 cmnvc sp, #1073741849 ; 0x40000019 + 80b0: 0000642e andeq r6, r0, lr, lsr #8 + 80b4: 726f6261 rsbvc r6, pc, #268435462 ; 0x10000006 + 80b8: 286f2e74 stmdacs pc!, {r2, r4, r5, r6, r9, sl, fp, sp}^ + 80bc: 74346c64 ldrtvc r6, [r4], #-3172 + 80c0: 5f6c745f svcpl 0x006c745f + 80c4: 612e6e69 teqvs lr, r9, ror #28 + 80c8: 00003a29 andeq r3, r0, r9, lsr #20 + 80cc: 20524149 subscs r4, r2, r9, asr #2 + 80d0: 49534e41 ldmdbmi r3, {r0, r6, r9, sl, fp, lr}^ + 80d4: 432f4320 teqmi pc, #-2147483648 ; 0x80000000 + 80d8: 43202b2b teqmi r0, #44032 ; 0xac00 + 80dc: 69706d6f ldmdbvs r0!, {r0, r1, r2, r3, r5, r6, r8, sl, fp, sp, lr}^ + 80e0: 2072656c rsbscs r6, r2, ip, ror #10 + 80e4: 332e3556 teqcc lr, #360710144 ; 0x15800000 + 80e8: 2e302e30 mrccs 14, 1, r2, cr0, cr0, {1} + 80ec: 37313135 undefined + 80f0: 33572f34 cmpcc r7, #208 ; 0xd0 + 80f4: 6f662032 svcvs 0x00662032 + 80f8: 52412072 subpl r2, r1, #114 ; 0x72 + 80fc: 492d004d pushmi {r0, r2, r3, r6} + 8100: 612f3a46 teqvs pc, r6, asr #20 + 8104: 75626d72 strbvc r6, [r2, #-3442]! + 8108: 2f646c69 svccs 0x00646c69 + 810c: 74303335 ldrtvc r3, [r0], #-821 + 8110: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 8114: 6f697469 svcvs 0x00697469 + 8118: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 811c: 31315f6d teqcc r1, sp, ror #30 + 8120: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 8124: 352d6269 strcc r6, [sp, #-617]! + 8128: 612f3033 teqvs pc, r3, lsr r0 + 812c: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 8130: 6f2f6269 svcvs 0x002f6269 + 8134: 75707475 ldrbvc r7, [r0, #-1141]! + 8138: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 813c: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 8140: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 8144: 2f736569 svccs 0x00736569 + 8148: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 814c: 6e692f34 mcrvs 15, 3, r2, cr9, cr4, {1} + 8150: 492d2063 pushmi {r0, r1, r5, r6, sp} + 8154: 612f3a46 teqvs pc, r6, asr #20 + 8158: 75626d72 strbvc r6, [r2, #-3442]! + 815c: 2f646c69 svccs 0x00646c69 + 8160: 74303335 ldrtvc r3, [r0], #-821 + 8164: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 8168: 6f697469 svcvs 0x00697469 + 816c: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 8170: 31315f6d teqcc r1, sp, ror #30 + 8174: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 8178: 352d6269 strcc r6, [sp, #-617]! + 817c: 612f3033 teqvs pc, r3, lsr r0 + 8180: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 8184: 6f2f6269 svcvs 0x002f6269 + 8188: 75707475 ldrbvc r7, [r0, #-1141]! + 818c: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 8190: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 8194: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 8198: 2f736569 svccs 0x00736569 + 819c: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 81a0: 72732f34 rsbsvc r2, r3, #208 ; 0xd0 + 81a4: 492d2063 pushmi {r0, r1, r5, r6, sp} + 81a8: 612f3a46 teqvs pc, r6, asr #20 + 81ac: 75626d72 strbvc r6, [r2, #-3442]! + 81b0: 2f646c69 svccs 0x00646c69 + 81b4: 74303335 ldrtvc r3, [r0], #-821 + 81b8: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 81bc: 6f697469 svcvs 0x00697469 + 81c0: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 81c4: 31315f6d teqcc r1, sp, ror #30 + 81c8: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 81cc: 352d6269 strcc r6, [sp, #-617]! + 81d0: 612f3033 teqvs pc, r3, lsr r0 + 81d4: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 81d8: 6f2f6269 svcvs 0x002f6269 + 81dc: 75707475 ldrbvc r7, [r0, #-1141]! + 81e0: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 81e4: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 81e8: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 81ec: 2f736569 svccs 0x00736569 + 81f0: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 81f4: 692f6269 stmdbvs pc!, {r0, r3, r5, r6, r9, sp, lr} + 81f8: 756c636e strbvc r6, [ip, #-878]! + 81fc: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 8200: 2f3a4649 svccs 0x003a4649 + 8204: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 8208: 646c6975 strbtvs r6, [ip], #-2421 + 820c: 3033352f eorscc r3, r3, pc, lsr #10 + 8210: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 8214: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 8218: 612f6e6f teqvs pc, pc, ror #28 + 821c: 315f6d72 cmpcc pc, r2, ror sp + 8220: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 8224: 2d62696c stclcs 9, cr6, [r2, #-432]! + 8228: 2f303335 svccs 0x00303335 + 822c: 2f6d7261 svccs 0x006d7261 + 8230: 2f62696c svccs 0x0062696c + 8234: 7074756f rsbsvc r7, r4, pc, ror #10 + 8238: 612f7475 teqvs pc, r5, ror r4 + 823c: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 8240: 61726269 cmnvs r2, r9, ror #4 + 8244: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 8248: 6d72612f ldfvse f6, [r2, #-188]! + 824c: 2f62696c svccs 0x0062696c + 8250: 32637273 rsbcc r7, r3, #805306375 ; 0x30000007 + 8254: 636e692f cmnvs lr, #770048 ; 0xbc000 + 8258: 6564756c strbvs r7, [r4, #-1388]! + 825c: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 8260: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 8264: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 8268: 352f646c strcc r6, [pc, #-1132]! ; 7e04 + 826c: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 8270: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 8274: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 8278: 6d72612f ldfvse f6, [r2, #-188]! + 827c: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 8280: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 8284: 33352d62 teqcc r5, #6272 ; 0x1880 + 8288: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 828c: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 8290: 6d742f62 ldclvs 15, cr2, [r4, #-392]! + 8294: 75622f70 strbvc r2, [r2, #-3952]! + 8298: 6c646c69 stclvs 12, cr6, [r4], #-420 + 829c: 2d206269 sfmcs f6, 4, [r0, #-420]! + 82a0: 7570632d ldrbvc r6, [r0, #-813]! + 82a4: 4d524120 ldfmie f4, [r2, #-128] + 82a8: 4d445439 cfstrdmi mvd5, [r4, #-228] + 82ac: 2d2d2049 stccs 0, cr2, [sp, #-292]! + 82b0: 69646e65 stmdbvs r4!, {r0, r2, r5, r6, r9, sl, fp, sp, lr}^ + 82b4: 6c206e61 stcvs 14, cr6, [r0], #-388 + 82b8: 6c747469 cfldrdvs mvd7, [r4], #-420 + 82bc: 442d2065 strtmi r2, [sp], #-101 + 82c0: 4c455f5f mcrrmi 15, 5, r5, r5, cr15 + 82c4: 55425f46 strbpl r5, [r2, #-3910] + 82c8: 5f444c49 svcpl 0x00444c49 + 82cc: 442d205f strtmi r2, [sp], #-95 + 82d0: 48545f5f ldmdami r4, {r0, r1, r2, r3, r4, r6, r8, r9, sl, fp, ip, lr}^ + 82d4: 5f424d55 svcpl 0x00424d55 + 82d8: 5242494c subpl r4, r2, #1245184 ; 0x130000 + 82dc: 5f595241 svcpl 0x00595241 + 82e0: 2d2d205f stccs 0, cr2, [sp, #-380]! + 82e4: 6d756874 ldclvs 8, cr6, [r5, #-464]! + 82e8: 2d2d2062 stccs 0, cr2, [sp, #-392]! + 82ec: 65746e69 ldrbvs r6, [r4, #-3689]! + 82f0: 726f7772 rsbvc r7, pc, #29884416 ; 0x1c80000 + 82f4: 4f2d206b svcmi 0x002d206b + 82f8: 2d2d2068 stccs 0, cr2, [sp, #-416]! + 82fc: 656c6973 strbvs r6, [ip, #-2419]! + 8300: 2d20746e cfstrscs mvf7, [r0, #-440]! + 8304: 7261772d rsbvc r7, r1, #11796480 ; 0xb40000 + 8308: 676e696e strbvs r6, [lr, -lr, ror #18]! + 830c: 72615f73 rsbvc r5, r1, #460 ; 0x1cc + 8310: 72655f65 rsbvc r5, r5, #404 ; 0x194 + 8314: 73726f72 cmnvc r2, #456 ; 0x1c8 + 8318: 732d2d20 teqvc sp, #2048 ; 0x800 + 831c: 63697274 cmnvs r9, #1073741831 ; 0x40000007 + 8320: 6e615f74 mcrvs 15, 3, r5, cr1, cr4, {3} + 8324: 2d206973 stccs 9, cr6, [r0, #-460]! + 8328: 6c6e6f2d stclvs 15, cr6, [lr], #-180 + 832c: 74735f79 ldrbtvc r5, [r3], #-3961 + 8330: 74756f64 ldrbtvc r6, [r5], #-3940 + 8334: 642d2d20 strtvs r2, [sp], #-3360 + 8338: 5f676169 svcpl 0x00676169 + 833c: 70707573 rsbsvc r7, r0, r3, ror r5 + 8340: 73736572 cmnvc r3, #478150656 ; 0x1c800000 + 8344: 306f473d rsbcc r4, pc, sp, lsr r7 + 8348: 2d203530 cfstr32cs mvfx3, [r0, #-192]! + 834c: 6169642d cmnvs r9, sp, lsr #8 + 8350: 75735f67 ldrbvc r5, [r3, #-3943]! + 8354: 65727070 ldrbvs r7, [r2, #-112]! + 8358: 503d7373 eorspl r7, sp, r3, ror r3 + 835c: 30353465 eorscc r3, r5, r5, ror #8 + 8360: 642d2d20 strtvs r2, [sp], #-3360 + 8364: 5f676169 svcpl 0x00676169 + 8368: 6f727265 svcvs 0x00727265 + 836c: 65503d72 ldrbvs r3, [r0, #-3442] + 8370: 20333931 eorscs r3, r3, r1, lsr r9 + 8374: 6c642d2d stclvs 13, cr2, [r4], #-180 + 8378: 635f6269 cmpvs pc, #-1879048186 ; 0x90000006 + 837c: 69666e6f stmdbvs r6!, {r0, r1, r2, r3, r5, r6, r9, sl, fp, sp, lr}^ + 8380: 3a463d67 bcc 1197924 + 8384: 6d72612f ldfvse f6, [r2, #-188]! + 8388: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 838c: 33352f64 teqcc r5, #400 ; 0x190 + 8390: 61727430 cmnvs r2, r0, lsr r4 + 8394: 7469736e strbtvc r7, [r9], #-878 + 8398: 2f6e6f69 svccs 0x006e6f69 + 839c: 5f6d7261 svcpl 0x006d7261 + 83a0: 35393131 ldrcc r3, [r9, #-305]! + 83a4: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 83a8: 3033352d eorscc r3, r3, sp, lsr #10 + 83ac: 6d72612f ldfvse f6, [r2, #-188]! + 83b0: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 83b4: 74756f2f ldrbtvc r6, [r5], #-3887 + 83b8: 2f747570 svccs 0x00747570 + 83bc: 2f62696c svccs 0x0062696c + 83c0: 62694c44 rsbvs r4, r9, #17408 ; 0x4400 + 83c4: 6e6f435f mcrvs 3, 3, r4, cr15, cr15, {2} + 83c8: 5f676966 svcpl 0x00676966 + 83cc: 6d726f4e ldclvs 15, cr6, [r2, #-312]! + 83d0: 682e6c61 stmdavs lr!, {r0, r5, r6, sl, fp, sp, lr} + 83d4: 2f3a4620 svccs 0x003a4620 + 83d8: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 83dc: 646c6975 strbtvs r6, [ip], #-2421 + 83e0: 3033352f eorscc r3, r3, pc, lsr #10 + 83e4: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 83e8: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 83ec: 612f6e6f teqvs pc, pc, ror #28 + 83f0: 315f6d72 cmpcc pc, r2, ror sp + 83f4: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 83f8: 2d62696c stclcs 9, cr6, [r2, #-432]! + 83fc: 2f303335 svccs 0x00303335 + 8400: 2f6d7261 svccs 0x006d7261 + 8404: 2f62696c svccs 0x0062696c + 8408: 7074756f rsbsvc r7, r4, pc, ror #10 + 840c: 612f7475 teqvs pc, r5, ror r4 + 8410: 6c5f6d72 mrrcvs 13, 7, r6, pc, cr2 + 8414: 61726269 cmnvs r2, r9, ror #4 + 8418: 73656972 cmnvc r5, #1867776 ; 0x1c8000 + 841c: 694c442f stmdbvs ip, {r0, r1, r2, r3, r5, sl, lr}^ + 8420: 735c3462 cmpvc ip, #1644167168 ; 0x62000000 + 8424: 612f6372 teqvs pc, r2, ror r3 + 8428: 74726f62 ldrbtvc r6, [r2], #-3938 + 842c: 2d20632e stccs 3, cr6, [r0, #-184]! + 8430: 3a46206f bcc 11905f4 + 8434: 6d72615c ldfvse f6, [r2, #-368]! + 8438: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 843c: 33355c64 teqcc r5, #25600 ; 0x6400 + 8440: 61727430 cmnvs r2, r0, lsr r4 + 8444: 7469736e strbtvc r7, [r9], #-878 + 8448: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 844c: 5f6d7261 svcpl 0x006d7261 + 8450: 35393131 ldrcc r3, [r9, #-305]! + 8454: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 8458: 3033352d eorscc r3, r3, sp, lsr #10 + 845c: 6d72615c ldfvse f6, [r2, #-368]! + 8460: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 8464: 706d745c rsbvc r7, sp, ip, asr r4 + 8468: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 846c: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 8470: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 8474: 6c645c6a stclvs 12, cr5, [r4], #-424 + 8478: 745f7434 ldrbvc r7, [pc], #1076 ; 8480 + 847c: 6e695f6c cdpvs 15, 6, cr5, cr9, cr12, {3} + 8480: 6f62615c svcvs 0x0062615c + 8484: 6f2e7472 svcvs 0x002e7472 + 8488: 642d2d20 strtvs r2, [sp], #-3360 + 848c: 6e657065 cdpvs 0, 6, cr7, cr5, cr5, {3} + 8490: 636e6564 cmnvs lr, #419430400 ; 0x19000000 + 8494: 3d736569 cfldr64cc mvdx6, [r3, #-420]! + 8498: 3a462069 bcc 1190644 + 849c: 6d72615c ldfvse f6, [r2, #-368]! + 84a0: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 84a4: 33355c64 teqcc r5, #25600 ; 0x6400 + 84a8: 61727430 cmnvs r2, r0, lsr r4 + 84ac: 7469736e strbtvc r7, [r9], #-878 + 84b0: 5c6e6f69 stclpl 15, cr6, [lr], #-420 + 84b4: 5f6d7261 svcpl 0x006d7261 + 84b8: 35393131 ldrcc r3, [r9, #-305]! + 84bc: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 84c0: 3033352d eorscc r3, r3, sp, lsr #10 + 84c4: 6d72615c ldfvse f6, [r2, #-368]! + 84c8: 62696c5c rsbvs r6, r9, #23552 ; 0x5c00 + 84cc: 706d745c rsbvc r7, sp, ip, asr r4 + 84d0: 6975625c ldmdbvs r5!, {r2, r3, r4, r6, r9, sp, lr}^ + 84d4: 696c646c stmdbvs ip!, {r2, r3, r5, r6, sl, sp, lr}^ + 84d8: 626f5c62 rsbvs r5, pc, #25088 ; 0x6200 + 84dc: 6c645c6a stclvs 12, cr5, [r4], #-424 + 84e0: 745f7434 ldrbvc r7, [pc], #1076 ; 84e8 + 84e4: 6e695f6c cdpvs 15, 6, cr5, cr9, cr12, {3} + 84e8: 6f62615c svcvs 0x0062615c + 84ec: 642e7472 strtvs r7, [lr], #-1138 + 84f0: 58580000 ldmdapl r8, {}^ + 84f4: 74697865 strbtvc r7, [r9], #-2149 + 84f8: 72286f2e eorvc r6, r8, #184 ; 0xb8 + 84fc: 5f743474 svcpl 0x00743474 + 8500: 612e6c61 teqvs lr, r1, ror #24 + 8504: 00003a29 andeq r3, r0, r9, lsr #20 + 8508: 20524149 subscs r4, r2, r9, asr #2 + 850c: 65737341 ldrbvs r7, [r3, #-833]! + 8510: 656c626d strbvs r6, [ip, #-621]! + 8514: 35562072 ldrbcc r2, [r6, #-114] + 8518: 2e30332e cdpcs 3, 3, cr3, cr0, cr14, {1} + 851c: 31352e30 teqcc r5, r0, lsr lr + 8520: 2f343731 svccs 0x00343731 + 8524: 20323357 eorscs r3, r2, r7, asr r3 + 8528: 20726f66 rsbscs r6, r2, r6, ror #30 + 852c: 004d5241 subeq r5, sp, r1, asr #4 + 8530: 3a46492d bcc 119a9ec + 8534: 6d72612f ldfvse f6, [r2, #-188]! + 8538: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 853c: 33352f64 teqcc r5, #400 ; 0x190 + 8540: 61727430 cmnvs r2, r0, lsr r4 + 8544: 7469736e strbtvc r7, [r9], #-878 + 8548: 2f6e6f69 svccs 0x006e6f69 + 854c: 5f6d7261 svcpl 0x006d7261 + 8550: 35393131 ldrcc r3, [r9, #-305]! + 8554: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 8558: 3033352d eorscc r3, r3, sp, lsr #10 + 855c: 6d72612f ldfvse f6, [r2, #-188]! + 8560: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 8564: 74756f2f ldrbtvc r6, [r5], #-3887 + 8568: 2f747570 svccs 0x00747570 + 856c: 5f6d7261 svcpl 0x006d7261 + 8570: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 8574: 65697261 strbvs r7, [r9, #-609]! + 8578: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 + 857c: 2f346269 svccs 0x00346269 + 8580: 20636e69 rsbcs r6, r3, r9, ror #28 + 8584: 3a46492d bcc 119aa40 + 8588: 6d72612f ldfvse f6, [r2, #-188]! + 858c: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 8590: 33352f64 teqcc r5, #400 ; 0x190 + 8594: 61727430 cmnvs r2, r0, lsr r4 + 8598: 7469736e strbtvc r7, [r9], #-878 + 859c: 2f6e6f69 svccs 0x006e6f69 + 85a0: 5f6d7261 svcpl 0x006d7261 + 85a4: 35393131 ldrcc r3, [r9, #-305]! + 85a8: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 85ac: 3033352d eorscc r3, r3, sp, lsr #10 + 85b0: 6d72612f ldfvse f6, [r2, #-188]! + 85b4: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 85b8: 74756f2f ldrbtvc r6, [r5], #-3887 + 85bc: 2f747570 svccs 0x00747570 + 85c0: 5f6d7261 svcpl 0x006d7261 + 85c4: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 85c8: 65697261 strbvs r7, [r9, #-609]! + 85cc: 4c442f73 mcrrmi 15, 7, r2, r4, cr3 + 85d0: 2f346269 svccs 0x00346269 + 85d4: 20637273 rsbcs r7, r3, r3, ror r2 + 85d8: 3a46492d bcc 119aa94 + 85dc: 6d72612f ldfvse f6, [r2, #-188]! + 85e0: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 85e4: 33352f64 teqcc r5, #400 ; 0x190 + 85e8: 61727430 cmnvs r2, r0, lsr r4 + 85ec: 7469736e strbtvc r7, [r9], #-878 + 85f0: 2f6e6f69 svccs 0x006e6f69 + 85f4: 5f6d7261 svcpl 0x006d7261 + 85f8: 35393131 ldrcc r3, [r9, #-305]! + 85fc: 62696c2e rsbvs r6, r9, #11776 ; 0x2e00 + 8600: 3033352d eorscc r3, r3, sp, lsr #10 + 8604: 6d72612f ldfvse f6, [r2, #-188]! + 8608: 62696c2f rsbvs r6, r9, #12032 ; 0x2f00 + 860c: 74756f2f ldrbtvc r6, [r5], #-3887 + 8610: 2f747570 svccs 0x00747570 + 8614: 5f6d7261 svcpl 0x006d7261 + 8618: 7262696c rsbvc r6, r2, #1769472 ; 0x1b0000 + 861c: 65697261 strbvs r7, [r9, #-609]! + 8620: 72612f73 rsbvc r2, r1, #460 ; 0x1cc + 8624: 62696c6d rsbvs r6, r9, #27904 ; 0x6d00 + 8628: 636e692f cmnvs lr, #770048 ; 0xbc000 + 862c: 6564756c strbvs r7, [r4, #-1388]! + 8630: 46492d20 strbmi r2, [r9], -r0, lsr #26 + 8634: 72612f3a rsbvc r2, r1, #232 ; 0xe8 + 8638: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 863c: 352f646c strcc r6, [pc, #-1132]! ; 81d8 + 8640: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 8644: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 8648: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 864c: 6d72612f ldfvse f6, [r2, #-188]! + 8650: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 8654: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 8658: 33352d62 teqcc r5, #6272 ; 0x1880 + 865c: 72612f30 rsbvc r2, r1, #192 ; 0xc0 + 8660: 696c2f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, sp}^ + 8664: 756f2f62 strbvc r2, [pc, #-3938]! ; 770a + 8668: 74757074 ldrbtvc r7, [r5], #-116 + 866c: 6d72612f ldfvse f6, [r2, #-188]! + 8670: 62696c5f rsbvs r6, r9, #24320 ; 0x5f00 + 8674: 69726172 ldmdbvs r2!, {r1, r4, r5, r6, r8, sp, lr}^ + 8678: 612f7365 teqvs pc, r5, ror #6 + 867c: 696c6d72 stmdbvs ip!, {r1, r4, r5, r6, r8, sl, fp, sp, lr}^ + 8680: 72732f62 rsbsvc r2, r3, #392 ; 0x188 + 8684: 692f3263 stmdbvs pc!, {r0, r1, r5, r6, r9, ip, sp} + 8688: 756c636e strbvc r6, [ip, #-878]! + 868c: 2d206564 cfstr32cs mvfx6, [r0, #-400]! + 8690: 2f3a4649 svccs 0x003a4649 + 8694: 626d7261 rsbvs r7, sp, #268435462 ; 0x10000006 + 8698: 646c6975 strbtvs r6, [ip], #-2421 + 869c: 3033352f eorscc r3, r3, pc, lsr #10 + 86a0: 6e617274 mcrvs 2, 3, r7, cr1, cr4, {3} + 86a4: 69746973 ldmdbvs r4!, {r0, r1, r4, r5, r6, r8, fp, sp, lr}^ + 86a8: 612f6e6f teqvs pc, pc, ror #28 + 86ac: 315f6d72 cmpcc pc, r2, ror sp + 86b0: 2e353931 mrccs 9, 1, r3, cr5, cr1, {1} + 86b4: 2d62696c stclcs 9, cr6, [r2, #-432]! + 86b8: 2f303335 svccs 0x00303335 + 86bc: 2f6d7261 svccs 0x006d7261 + 86c0: 2f62696c svccs 0x0062696c + 86c4: 2f706d74 svccs 0x00706d74 + 86c8: 6c697562 cfstr64vs mvdx7, [r9], #-392 + 86cc: 62696c64 rsbvs r6, r9, #25600 ; 0x6400 + 86d0: 632d2d20 teqvs sp, #2048 ; 0x800 + 86d4: 41207570 teqmi r0, r0, ror r5 + 86d8: 54394d52 ldrtpl r4, [r9], #-3410 + 86dc: 20494d44 subcs r4, r9, r4, asr #26 + 86e0: 6e652d2d cdpvs 13, 6, cr2, cr5, cr13, {1} + 86e4: 6e616964 cdpvs 9, 6, cr6, cr1, cr4, {3} + 86e8: 74696c20 strbtvc r6, [r9], #-3104 + 86ec: 20656c74 rsbcs r6, r5, r4, ror ip + 86f0: 5f5f442d svcpl 0x005f442d + 86f4: 5f464c45 svcpl 0x00464c45 + 86f8: 4c495542 cfstr64mi mvdx5, [r9], {66} + 86fc: 205f5f44 subscs r5, pc, r4, asr #30 + 8700: 5f5f442d svcpl 0x005f442d + 8704: 5f4d5241 svcpl 0x004d5241 + 8708: 5242494c subpl r4, r2, #1245184 ; 0x130000 + 870c: 5f595241 svcpl 0x00595241 + 8710: 442d205f strtmi r2, [sp], #-95 + 8714: 5043455f subpl r4, r3, pc, asr r5 + 8718: 5053554c subspl r5, r3, ip, asr #10 + 871c: 2053554c subscs r5, r3, ip, asr #10 + 8720: 2d20532d stccs 3, cr5, [r0, #-180]! + 8724: 2d207377 stccs 3, cr7, [r0, #-476]! + 8728: 4f5f5f44 svcmi 0x005f5f44 + 872c: 4d5f5450 cfldrdmi mvd5, [pc, #-320] + 8730: 55494445 strbpl r4, [r9, #-1093] + 8734: 205f5f4d subscs r5, pc, sp, asr #30 + 8738: 612f3a46 teqvs pc, r6, asr #20 + 873c: 75626d72 strbvc r6, [r2, #-3442]! + 8740: 2f646c69 svccs 0x00646c69 + 8744: 74303335 ldrtvc r3, [r0], #-821 + 8748: 736e6172 cmnvc lr, #-2147483620 ; 0x8000001c + 874c: 6f697469 svcvs 0x00697469 + 8750: 72612f6e rsbvc r2, r1, #440 ; 0x1b8 + 8754: 31315f6d teqcc r1, sp, ror #30 + 8758: 6c2e3539 cfstr32vs mvfx3, [lr], #-228 + 875c: 352d6269 strcc r6, [sp, #-617]! + 8760: 612f3033 teqvs pc, r3, lsr r0 + 8764: 6c2f6d72 stcvs 13, cr6, [pc], #-456 + 8768: 6f2f6269 svcvs 0x002f6269 + 876c: 75707475 ldrbvc r7, [r0, #-1141]! + 8770: 72612f74 rsbvc r2, r1, #464 ; 0x1d0 + 8774: 696c5f6d stmdbvs ip!, {r0, r2, r3, r5, r6, r8, r9, sl, fp, ip, lr}^ + 8778: 72617262 rsbvc r7, r1, #536870918 ; 0x20000006 + 877c: 2f736569 svccs 0x00736569 + 8780: 6c6d7261 sfmvs f7, 2, [sp], #-388 + 8784: 735c6269 cmpvc ip, #-1879048186 ; 0x90000006 + 8788: 2f326372 svccs 0x00326372 + 878c: 74737973 ldrbtvc r7, [r3], #-2419 + 8790: 612f6d65 teqvs pc, r5, ror #26 + 8794: 582f6d72 stmdapl pc!, {r1, r4, r5, r6, r8, sl, fp, sp, lr} + 8798: 69786558 ldmdbvs r8!, {r3, r4, r6, r8, sl, sp, lr}^ + 879c: 20732e74 rsbscs r2, r3, r4, ror lr + 87a0: 46206f2d strtmi r6, [r0], -sp, lsr #30 + 87a4: 72615c3a rsbvc r5, r1, #14848 ; 0x3a00 + 87a8: 6975626d ldmdbvs r5!, {r0, r2, r3, r5, r6, r9, sp, lr}^ + 87ac: 355c646c ldrbcc r6, [ip, #-1132] + 87b0: 72743033 rsbsvc r3, r4, #51 ; 0x33 + 87b4: 69736e61 ldmdbvs r3!, {r0, r5, r6, r9, sl, fp, sp, lr}^ + 87b8: 6e6f6974 mcrvs 9, 3, r6, cr15, cr4, {3} + 87bc: 6d72615c ldfvse f6, [r2, #-368]! + 87c0: 3931315f ldmdbcc r1!, {r0, r1, r2, r3, r4, r6, r8, ip, sp} + 87c4: 696c2e35 stmdbvs ip!, {r0, r2, r4, r5, r9, sl, fp, sp}^ + 87c8: 33352d62 teqcc r5, #6272 ; 0x1880 + 87cc: 72615c30 rsbvc r5, r1, #12288 ; 0x3000 + 87d0: 696c5c6d stmdbvs ip!, {r0, r2, r3, r5, r6, sl, fp, ip, lr}^ + 87d4: 6d745c62 ldclvs 12, cr5, [r4, #-392]! + 87d8: 75625c70 strbvc r5, [r2, #-3184]! + 87dc: 6c646c69 stclvs 12, cr6, [r4], #-420 + 87e0: 6f5c6269 svcvs 0x005c6269 + 87e4: 725c6a62 subsvc r6, ip, #401408 ; 0x62000 + 87e8: 5f743474 svcpl 0x00743474 + 87ec: 585c6c61 ldmdapl ip, {r0, r5, r6, sl, fp, sp, lr}^ + 87f0: 69786558 ldmdbvs r8!, {r3, r4, r6, r8, sl, sp, lr}^ + 87f4: 006f2e74 rsbeq r2, pc, r4, ror lr From 530c54d7945bc6cd751541cd398ee67af1119fbd Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 13 Apr 2009 18:59:37 -0400 Subject: [PATCH 062/471] note about performance and suspicion that InitFromFlash is a factory trim. --- doc/radioinit | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/radioinit b/doc/radioinit index 9335b3ed5..eb7b2cb34 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -272,3 +272,10 @@ some kind of look-up table for setpower 4038bc: 0004e3a0 .word 0x0004e3a0 4038c0: 0004e3a0 .word 0x0004e3a0 4038c4: 0004e3a0 .word 0x0004e3a0 + + +Ok, rftest-rx and tx are working but the range isn't very good. I +suspect that InitFromFlash is a factory trim for each part. Since I'm +not doing that then the range and reliability are suffering. Getting +the NVM to work should probably be my next step. + From 5e64ec62f2c0569500bccd751955e3f2df270975 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 14 Apr 2009 17:43:29 -0400 Subject: [PATCH 063/471] notes about initfromflash. verified that there is important init in there. --- doc/radioinit | 3 +++ doc/ws-dis | 12 ++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/doc/radioinit b/doc/radioinit index eb7b2cb34..5aa4ad8de 100644 --- a/doc/radioinit +++ b/doc/radioinit @@ -279,3 +279,6 @@ suspect that InitFromFlash is a factory trim for each part. Since I'm not doing that then the range and reliability are suffering. Getting the NVM to work should probably be my next step. +Debugging with JLink has shown there absolutely is init entries in the +flash set in the factory that are important. e.g. this is where the +0x00607707 number get turned into something more like 0x00685... diff --git a/doc/ws-dis b/doc/ws-dis index 5be0bc013..a57a38dd4 100644 --- a/doc/ws-dis +++ b/doc/ws-dis @@ -5460,12 +5460,12 @@ Disassembly of section P2: 00403218 : 403218: b570 push {r4, r5, r6, lr} 40321a: b08a sub sp, #40 - 40321c: 0006 lsls r6, r0, #0 // r0 has 0x1F000 from call in radioinit - 40321e: a804 add r0, sp, #16 - 403220: 2102 movs r1, #2 - 403222: 7001 strb r1, [r0, #0] // *0x1F000 = 2; - 403224: 2101 movs r1, #1 - 403226: 7101 strb r1, [r0, #4] // *0x1F000 = 1; + 40321c: 0006 lsls r6, r0, #0 // r6 gets r0 has 0x1F000 from call in radioinit + 40321e: a804 add r0, sp, #16 // r0 now points sp+16 + 403220: 2102 movs r1, #2 // r1 = 2 + 403222: 7001 strb r1, [r0, #0] // put 2 on the stack + 403224: 2101 movs r1, #1 // + 403226: 7101 strb r1, [r0, #4] // put 1 on the stack 403228: f400 fce4 bl 3bf4 // call to ROM: I assume this turns on the NVM reg 40322c: 482b ldr r0, [pc, #172] (4032dc ) r0 = &u32SystemClock 40322e: 6800 ldr r0, [r0, #0] // r0 = u32SystemClock From d3fecae2554767bb211feea6b4e475f28b0c1c9b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 14 Apr 2009 17:46:35 -0400 Subject: [PATCH 064/471] template for new nvm-read test --- tests/nvm-read.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 tests/nvm-read.c diff --git a/tests/nvm-read.c b/tests/nvm-read.c new file mode 100644 index 000000000..1ef3a4e2f --- /dev/null +++ b/tests/nvm-read.c @@ -0,0 +1,103 @@ +#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ + +#define BASE_UART1 0x80005000 +#define UART1_CON 0x80005000 +#define UART1_STAT 0x80005004 +#define UART1_DATA 0x80005008 +#define UR1CON 0x8000500c +#define UT1CON 0x80005010 +#define UART1_CTS 0x80005014 +#define UART1_BR 0x80005018 + +#define GPIO_PAD_DIR0 0x80000000 +#define GPIO_DATA0 0x80000008 + +#include "embedded_types.h" + +#define reg(x) (*(volatile uint32_t *)(x)) + +#define DELAY 400000 + +void putc(uint8_t c); +void puts(uint8_t *s); +void put_hex(uint8_t x); +void put_hex16(uint16_t x); +void put_hex32(uint32_t x); + +const uint8_t hex[16]={'0','1','2','3','4','5','6','7', + '8','9','a','b','c','d','e','f'}; + + +void dump_regs(uint32_t base, uint32_t len) { + volatile uint32_t i; + + puts("base +0 +4 +8 +c +10 +14 +18 +1c \n\r"); + for (i = 0; i < len; i ++) { + if ((i & 7) == 0) { + put_hex16(4 * i); + } + puts(" "); + put_hex32(reg(base+(4*i))); + if ((i & 7) == 7) + puts(NL); + } + puts(NL); +} + +__attribute__ ((section ("startup"))) +void main(void) { + uint8_t c; + + *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; + + /* Restore UART regs. to default */ + /* in case there is still bootloader state leftover */ + + reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + + /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ + #define INC 767 + #define MOD 9999 + reg(UART1_BR) = INC<<16 | MOD; + + /* see Section 11.5.1.2 Alternate Modes */ + /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ + /* From the datasheet: "The peripheral function will control operation of the pad IF */ + /* THE PERIPHERAL IS ENABLED. */ + reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ + reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + + while(1) { + }; +} + +void putc(uint8_t c) { + while(reg(UT1CON)==31); /* wait for there to be room in the buffer */ + reg(UART1_DATA) = c; +} + +void puts(uint8_t *s) { + while(s && *s!=0) { + putc(*s++); + } +} + +void put_hex(uint8_t x) +{ + putc(hex[x >> 4]); + putc(hex[x & 15]); +} + +void put_hex16(uint16_t x) +{ + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} + +void put_hex32(uint32_t x) +{ + put_hex((x >> 24) & 0xFF); + put_hex((x >> 16) & 0xFF); + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} From 2136e0fe067f005ef3cde76e11395ef42e286e6b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 14 Apr 2009 17:47:51 -0400 Subject: [PATCH 065/471] removed dump_regs --- can add it back later if we need it. builds now. --- tests/nvm-read.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 1ef3a4e2f..cdd9f68b0 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -27,23 +27,6 @@ void put_hex32(uint32_t x); const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; - -void dump_regs(uint32_t base, uint32_t len) { - volatile uint32_t i; - - puts("base +0 +4 +8 +c +10 +14 +18 +1c \n\r"); - for (i = 0; i < len; i ++) { - if ((i & 7) == 0) { - put_hex16(4 * i); - } - puts(" "); - put_hex32(reg(base+(4*i))); - if ((i & 7) == 7) - puts(NL); - } - puts(NL); -} - __attribute__ ((section ("startup"))) void main(void) { uint8_t c; From f023a1a8f772edb1b4b80864fbd9a8098ca13e2a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 15 Apr 2009 11:58:29 -0400 Subject: [PATCH 066/471] turn on thumb. untested. make system still links in a lot of unnecessary stuff. --- config.mk | 2 +- tests/nvm-read.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/config.mk b/config.mk index 5ed41231c..5aa77d34e 100644 --- a/config.mk +++ b/config.mk @@ -26,7 +26,7 @@ # clean the slate ... PLATFORM_LDFLAGS = PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -msoft-float -PLATFORM_CPPFLAGS = -march=armv4 -mtune=arm7tdmi -DCONFIG_ARM -D__ARM__ +PLATFORM_CPPFLAGS = -march=armv4t -mthumb -mtune=arm7tdmi-s -mthumb-interwork -DCONFIG_ARM -D__ARM__ TEXT_BASE = 0x00400000 ######################################################################### diff --git a/tests/nvm-read.c b/tests/nvm-read.c index cdd9f68b0..3bf208aff 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -13,6 +13,7 @@ #define GPIO_DATA0 0x80000008 #include "embedded_types.h" +#include "nvm.h" #define reg(x) (*(volatile uint32_t *)(x)) @@ -30,6 +31,8 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', __attribute__ ((section ("startup"))) void main(void) { uint8_t c; + nvmType_t type; + nvmErr_t err; *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; @@ -50,6 +53,16 @@ void main(void) { reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + puts("Detecting internal nvm\n\r"); + + err = nvm_detect(gNvmInternalInterface_c, &type); + + puts("nvm_detect returned: "); + putc(err); + puts(" type is: "); + putc(type); + puts("\n\r"); + while(1) { }; } From 02dfccee4428f93e81ea93e9395408d9b4cfb453 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 15 Apr 2009 12:20:21 -0400 Subject: [PATCH 067/471] thumb code starts up properly now. --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index 5aa77d34e..7352f6d74 100644 --- a/config.mk +++ b/config.mk @@ -26,7 +26,7 @@ # clean the slate ... PLATFORM_LDFLAGS = PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -msoft-float -PLATFORM_CPPFLAGS = -march=armv4t -mthumb -mtune=arm7tdmi-s -mthumb-interwork -DCONFIG_ARM -D__ARM__ +PLATFORM_CPPFLAGS = -march=armv4t -mcallee-super-interworking -mthumb -mtune=arm7tdmi-s -mthumb-interwork -DCONFIG_ARM -D__ARM__ TEXT_BASE = 0x00400000 ######################################################################### From d75d9d98f59898a206e173854f1b24eb92083302 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 15 Apr 2009 13:40:21 -0400 Subject: [PATCH 068/471] This makefile seems to do better. --- Makefile | 10 +++++----- tests/nvm-read.c | 16 +++++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index dba449c52..ef7d7d188 100644 --- a/Makefile +++ b/Makefile @@ -46,7 +46,7 @@ AOBJS = COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) TESTS = $(wildcard tests/*.c) TARGETS = $(patsubst %.c,%.o,$(TESTS)) - +#TARGETS = tests/blink-white.o # Add GCC lib PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc @@ -54,11 +54,11 @@ PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-l ######################################################################### #ALL = blink.srec blink.bin blink.dis blink.System.map -ALL = $(TARGETS) $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) +ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) .PRECIOUS: $(COBJS) $(TARGETS) $(TESTS:.c=.obj) -all: $(COBJS) $(ALL) +all: $(ALL) %.srec: %.obj $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ @@ -73,9 +73,9 @@ all: $(COBJS) $(ALL) $(OBJDUMP) -DS $< > $@ %.obj: $(AOBJS) $(COBJS) $(TARGETS) $(LDSCRIPT) - $(LD) $(LDFLAGS) $(AOBJS) $(COBJS) \ + $(LD) $(LDFLAGS) $(AOBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ - -Map $*.map $*.o -o $@ + -Map $*.map $*.o $< -o $@ %.System.map: %.obj diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 3bf208aff..b14677663 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -31,7 +31,7 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', __attribute__ ((section ("startup"))) void main(void) { uint8_t c; - nvmType_t type; + uint32_t type; nvmErr_t err; *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; @@ -53,14 +53,20 @@ void main(void) { reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + vreg_init(); + + puts("CRM status: 0x"); + put_hex32(reg(0x80003018)); + puts("\n\r"); + puts("Detecting internal nvm\n\r"); err = nvm_detect(gNvmInternalInterface_c, &type); - puts("nvm_detect returned: "); - putc(err); - puts(" type is: "); - putc(type); + puts("nvm_detect returned: 0x"); + put_hex(err); + puts(" type is: 0x"); + put_hex(type); puts("\n\r"); while(1) { From 6c40e18b035ab4ca3017aaffad86c61178cd5a8f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 15 Apr 2009 14:02:39 -0400 Subject: [PATCH 069/471] ok. I think this is right. --- Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index ef7d7d188..a45b38e5b 100644 --- a/Makefile +++ b/Makefile @@ -60,6 +60,10 @@ ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) all: $(ALL) +tests/nvm-read.obj: src/maca.o +tests/rftest-rx.obj: src/maca.o +tests/rftest-tx.obj: src/maca.o + %.srec: %.obj $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ @@ -72,10 +76,11 @@ all: $(ALL) %.dis: %.obj $(OBJDUMP) -DS $< > $@ -%.obj: $(AOBJS) $(COBJS) $(TARGETS) $(LDSCRIPT) +%.obj: $(LDSCRIPT) %.o + echo $*.o $(LD) $(LDFLAGS) $(AOBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ - -Map $*.map $*.o $< -o $@ + -Map $*.map $^ -o $@ %.System.map: %.obj From f4312f7cf62422854cf22b003b195f885d3416bd Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 15 Apr 2009 14:15:31 -0400 Subject: [PATCH 070/471] I think this dis. output is better. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a45b38e5b..c391d6cdc 100644 --- a/Makefile +++ b/Makefile @@ -74,7 +74,7 @@ tests/rftest-tx.obj: src/maca.o $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ %.dis: %.obj - $(OBJDUMP) -DS $< > $@ + $(OBJDUMP) -d $< > $@ %.obj: $(LDSCRIPT) %.o echo $*.o From 721173449c8bb561424a48b34998cdd1ac044c3f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 15 Apr 2009 15:03:47 -0400 Subject: [PATCH 071/471] startup code --- Makefile | 11 ++- boot.lds | 2 +- include/maca.h | 1 + include/nvm.h | 40 +++++++++++ src/maca.c | 1 + src/start.S | 177 +++++++++++++++++++++++++++++++++++++++++++++++ tests/nvm-read.c | 15 ++-- 7 files changed, 232 insertions(+), 15 deletions(-) create mode 100644 include/nvm.h create mode 100644 src/start.S diff --git a/Makefile b/Makefile index c391d6cdc..3d4a2a3f2 100644 --- a/Makefile +++ b/Makefile @@ -58,11 +58,11 @@ ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) .PRECIOUS: $(COBJS) $(TARGETS) $(TESTS:.c=.obj) -all: $(ALL) +all: src/start.o $(ALL) -tests/nvm-read.obj: src/maca.o -tests/rftest-rx.obj: src/maca.o -tests/rftest-tx.obj: src/maca.o +tests/nvm-read.obj: src/maca.o +tests/rftest-rx.obj: src/maca.o +tests/rftest-tx.obj: src/maca.o %.srec: %.obj $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ @@ -74,10 +74,9 @@ tests/rftest-tx.obj: src/maca.o $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ %.dis: %.obj - $(OBJDUMP) -d $< > $@ + $(OBJDUMP) -D $< > $@ %.obj: $(LDSCRIPT) %.o - echo $*.o $(LD) $(LDFLAGS) $(AOBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ -Map $*.map $^ -o $@ diff --git a/boot.lds b/boot.lds index c9f49a561..5b6ae7aef 100644 --- a/boot.lds +++ b/boot.lds @@ -32,7 +32,7 @@ SECTIONS . = ALIGN(4); .text : { - *(startup) + src/start.o (.text) *(.text) } diff --git a/include/maca.h b/include/maca.h index ba263de5c..4be48cc06 100644 --- a/include/maca.h +++ b/include/maca.h @@ -407,6 +407,7 @@ typedef union maca_maskirq_reg_tag void reset_maca(void); void init_phy(void); +void vreg_init(void); void ResumeMACASync(void); void radio_init(void); void set_power(uint8_t power); diff --git a/include/nvm.h b/include/nvm.h new file mode 100644 index 000000000..3b30575b1 --- /dev/null +++ b/include/nvm.h @@ -0,0 +1,40 @@ +#ifndef NVM_H +#define NVM_H + +typedef enum +{ + gNvmType_NoNvm_c, + gNvmType_SST_c, + gNvmType_ST_c, + gNvmType_ATM_c, + gNvmType_Max_c +} nvmType_t; + + +typedef enum +{ + gNvmErrNoError_c = 0, + gNvmErrInvalidInterface_c, + gNvmErrInvalidNvmType_c, + gNvmErrInvalidPointer_c, + gNvmErrWriteProtect_c, + gNvmErrVerifyError_c, + gNvmErrAddressSpaceOverflow_c, + gNvmErrBlankCheckError_c, + gNvmErrRestrictedArea_c, + gNvmErrMaxError_c +} nvmErr_t; + +typedef enum +{ + gNvmInternalInterface_c, + gNvmExternalInterface_c, + gNvmInterfaceMax_c +} nvmInterface_t; + +/* ROM code seems to be THUMB */ +/* need to be in a THUMB block before calling them */ +volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType) = 0x00006cb9; +volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes); + +#endif //NVM_H diff --git a/src/maca.c b/src/maca.c index cf711c973..d24a74ffd 100644 --- a/src/maca.c +++ b/src/maca.c @@ -1,3 +1,4 @@ +#include "embedded_types.h" #include "maca.h" #define reg(x) (*(volatile uint32_t *)(x)) diff --git a/src/start.S b/src/start.S new file mode 100644 index 000000000..23ece110e --- /dev/null +++ b/src/start.S @@ -0,0 +1,177 @@ +/* + * armboot - Startup Code for ARM720 CPU-core + * + * Copyright (c) 2001 Marius Gröger + * Copyright (c) 2002 Alex Züpke + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + + +/* + ************************************************************************* + * + * Jump vector table as in table 3.1 in [1] + * + ************************************************************************* + */ + + +.globl _start +_start: b main + ldr pc, _undefined_instruction + ldr pc, _software_interrupt + ldr pc, _prefetch_abort + ldr pc, _data_abort + ldr pc, _not_used + ldr pc, _irq + ldr pc, _fiq + +_undefined_instruction: .word undefined_instruction +_software_interrupt: .word software_interrupt +_prefetch_abort: .word prefetch_abort +_data_abort: .word data_abort +_not_used: .word not_used +_irq: .word irq +_fiq: .word fiq + + .balignl 16,0xdeadbeef + + +/* + ************************************************************************* + * + * Startup Code (reset vector) + * + * do important init only if we don't start from memory! + * relocate armboot to ram + * setup stack + * jump to second stage + * + ************************************************************************* + */ + +_TEXT_BASE: + .word TEXT_BASE + +.globl _armboot_start +_armboot_start: + .word _start + +/* + * These are defined in the board-specific linker script. + */ +.globl _bss_start +_bss_start: + .word __bss_start + +.globl _bss_end +_bss_end: + .word _end + +_start_armboot: .word main + +/* + ************************************************************************* + * + * CPU_init_critical registers + * + ************************************************************************* + */ + +cpu_init_crit: + # actually do nothing for now! + mov pc, lr + + +/* + ************************************************************************* + * + * Interrupt handling + * + ************************************************************************* + */ + +@ +@ IRQ stack frame. +@ +#define S_FRAME_SIZE 72 + +#define S_OLD_R0 68 +#define S_PSR 64 +#define S_PC 60 +#define S_LR 56 +#define S_SP 52 + +#define S_IP 48 +#define S_FP 44 +#define S_R10 40 +#define S_R9 36 +#define S_R8 32 +#define S_R7 28 +#define S_R6 24 +#define S_R5 20 +#define S_R4 16 +#define S_R3 12 +#define S_R2 8 +#define S_R1 4 +#define S_R0 0 + +#define MODE_SVC 0x13 +#define I_BIT 0x80 + + + .macro get_irq_stack @ setup IRQ stack + ldr sp, IRQ_STACK_START + .endm + + .macro get_fiq_stack @ setup FIQ stack + ldr sp, FIQ_STACK_START + .endm + +/* + * exception handlers + */ + .align 5 +undefined_instruction: + + .align 5 +software_interrupt: + + .align 5 +prefetch_abort: + nop + .align 5 +data_abort: + + .align 5 +not_used: + + + .align 5 +irq: + + .align 5 +fiq: + + .align 5 + +.globl reset_cpu +reset_cpu: + mov pc, r0 diff --git a/tests/nvm-read.c b/tests/nvm-read.c index b14677663..b06829c42 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -14,6 +14,7 @@ #include "embedded_types.h" #include "nvm.h" +#include "maca.h" #define reg(x) (*(volatile uint32_t *)(x)) @@ -30,8 +31,7 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', __attribute__ ((section ("startup"))) void main(void) { - uint8_t c; - uint32_t type; + uint32_t type=0xdeadbeef; nvmErr_t err; *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; @@ -55,9 +55,9 @@ void main(void) { vreg_init(); - puts("CRM status: 0x"); - put_hex32(reg(0x80003018)); - puts("\n\r"); +// puts("CRM status: 0x"); +// put_hex32(reg(0x80003018)); +// puts("\n\r"); puts("Detecting internal nvm\n\r"); @@ -66,11 +66,10 @@ void main(void) { puts("nvm_detect returned: 0x"); put_hex(err); puts(" type is: 0x"); - put_hex(type); + put_hex32(type); puts("\n\r"); - while(1) { - }; + while(1) {continue;}; } void putc(uint8_t c) { From d76846385a123a420fb8fe7abd76c96d254862d9 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 15 Apr 2009 15:13:38 -0400 Subject: [PATCH 072/471] startup with rom reserved vars and patch tables --- src/start.S | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/start.S b/src/start.S index 23ece110e..7c367c604 100644 --- a/src/start.S +++ b/src/start.S @@ -43,6 +43,29 @@ _start: b main ldr pc, _irq ldr pc, _fiq +/* these vectors are used for rom patching */ +.org 0x20 +_RPTV_0_START: + bx lr /* do nothing */ + +.org 0x60 +_RPTV_1_START: + bx lr /* do nothing */ + +.org 0xa0 +_RPTV_2_START: + bx lr /* do nothing */ + +.org 0xe0 +_RPTV_3_START: + bx lr /* do nothing */ + +.org 0x120 +ROM_var_start: .word 0 +.org 0x7ff +ROM_var_end: .word 0 + + _undefined_instruction: .word undefined_instruction _software_interrupt: .word software_interrupt _prefetch_abort: .word prefetch_abort From 28242cc8e1221a4a2397ce94783814bb06960e88 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 15 Apr 2009 16:14:34 -0400 Subject: [PATCH 073/471] performs rom_data_init --- src/start.S | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/start.S b/src/start.S index 7c367c604..54d36f4d6 100644 --- a/src/start.S +++ b/src/start.S @@ -33,8 +33,12 @@ */ -.globl _start -_start: b main +.set base, . +.set _rom_data_init, 0x108d0 + + + .globl _start +_start: b _begin ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort @@ -42,7 +46,7 @@ _start: b main ldr pc, _not_used ldr pc, _irq ldr pc, _fiq - + /* these vectors are used for rom patching */ .org 0x20 _RPTV_0_START: @@ -64,7 +68,11 @@ _RPTV_3_START: ROM_var_start: .word 0 .org 0x7ff ROM_var_end: .word 0 - + +.align +_begin: + bl _rom_data_init+.-base + b main _undefined_instruction: .word undefined_instruction _software_interrupt: .word software_interrupt @@ -73,7 +81,6 @@ _data_abort: .word data_abort _not_used: .word not_used _irq: .word irq _fiq: .word fiq - .balignl 16,0xdeadbeef From 438c940ed7328ea97db1753326fef51b203e9370 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 15 Apr 2009 17:32:00 -0400 Subject: [PATCH 074/471] nvm read works now. --- include/nvm.h | 4 ++-- src/start.S | 3 ++- tests/nvm-read.c | 21 +++++++++++++++++++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/include/nvm.h b/include/nvm.h index 3b30575b1..edae0030d 100644 --- a/include/nvm.h +++ b/include/nvm.h @@ -35,6 +35,6 @@ typedef enum /* ROM code seems to be THUMB */ /* need to be in a THUMB block before calling them */ volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType) = 0x00006cb9; -volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes); - +volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes) = 0x00006d69; +volatile void(*nvm_setsvar)(uint32_t zero_for_awesome) = 0x00007085; #endif //NVM_H diff --git a/src/start.S b/src/start.S index 54d36f4d6..ec6f93444 100644 --- a/src/start.S +++ b/src/start.S @@ -49,6 +49,7 @@ _start: b _begin /* these vectors are used for rom patching */ .org 0x20 +.code 16 _RPTV_0_START: bx lr /* do nothing */ @@ -68,7 +69,7 @@ _RPTV_3_START: ROM_var_start: .word 0 .org 0x7ff ROM_var_end: .word 0 - +.code 32 .align _begin: bl _rom_data_init+.-base diff --git a/tests/nvm-read.c b/tests/nvm-read.c index b06829c42..75d2a6238 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -29,10 +29,13 @@ void put_hex32(uint32_t x); const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; +#define NBYTES 128 __attribute__ ((section ("startup"))) void main(void) { - uint32_t type=0xdeadbeef; + nvmType_t type=0; nvmErr_t err; + uint32_t buf[NBYTES/4]; + uint32_t i; *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; @@ -62,13 +65,27 @@ void main(void) { puts("Detecting internal nvm\n\r"); err = nvm_detect(gNvmInternalInterface_c, &type); - + puts("nvm_detect returned: 0x"); put_hex(err); puts(" type is: 0x"); put_hex32(type); puts("\n\r"); + nvm_setsvar(0); + + err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, 0x1F000, NBYTES); + puts("nvm_read returned: 0x"); + put_hex(err); + puts("\n\r"); + + for(i=0; i Date: Wed, 15 Apr 2009 19:26:49 -0400 Subject: [PATCH 075/471] full dis of init exec entry. ready to implement this now. --- doc/ws-dis | 118 ++++++++++++++++++++++++++++------------------- src/maca.c | 6 +-- tests/nvm-read.c | 2 +- 3 files changed, 74 insertions(+), 52 deletions(-) diff --git a/doc/ws-dis b/doc/ws-dis index 5be0bc013..62d579d77 100644 --- a/doc/ws-dis +++ b/doc/ws-dis @@ -5402,8 +5402,8 @@ Disassembly of section P2: 4031a0: 0040544c .word 0x0040544c 004031a4 : - 4031a4: 6801 ldr r1, [r0, #0] // r1 gets where r0 points - 4031a6: 1d00 adds r0, r0, #4 // increment pointer by 4 bytes + 4031a4: 6801 ldr r1, [r0, #0] // r1 gets where r0 points r1 = *r0 + 4031a6: 1d00 adds r0, r0, #4 // increment pointer by 4 bytes r0 += 4 4031a8: 4a17 ldr r2, [pc, #92] (403208 ) //r2 gets 403208: 00140001 .word 0x00140001 4031aa: 4291 cmp r1, r2 // compare r1 with r2 4031ac: d303 bcc.n 4031b6 //branch to 1: if lower @@ -5415,41 +5415,53 @@ Disassembly of section P2: 4031b8: d215 bcs.n 4031e6 // branch to 2: if high or equal 4031ba: 2900 cmp r1, #0 // check if zero (r1 is address?) 4031bc: d106 bne.n 4031cc // branch to 3: to if != 0 - 4031be: 6800 ldr r0, [r0, #0] + 4031be: 6800 ldr r0, [r0, #0] // if == 0 do delay 4031c0: 0880 lsrs r0, r0, #2 4031c2: 0001 lsls r1, r0, #0 4031c4: 1e48 subs r0, r1, #1 4031c6: 2900 cmp r1, #0 4031c8: d1fb bne.n 4031c2 - 4031ca: e7f2 b.n 4031b2 - 4031cc: 2901 cmp r1, #1 // 3: - 4031ce: d118 bne.n 403202 - 4031d0: 6802 ldr r2, [r0, #0] - 4031d2: 6841 ldr r1, [r0, #4] - 4031d4: 3008 adds r0, #8 - 4031d6: 680b ldr r3, [r1, #0] - 4031d8: 4393 bics r3, r2 - 4031da: 6800 ldr r0, [r0, #0] - 4031dc: 4002 ands r2, r0 - 4031de: 431a orrs r2, r3 - 4031e0: 600a str r2, [r1, #0] - 4031e2: 2004 movs r0, #4 + 4031ca: e7f2 b.n 4031b2 + 4031cc: 2901 cmp r1, #1 // at this point r1 is between 1 and 15 inclusive + 4031ce: d118 bne.n 403202 // if !=1 return + +0x00000001 command +0xaaaaaaaa +0xbbbbbbbb +0xcccccccc + + 4031d0: 6802 ldr r2, [r0, #0] // r2 = 0xaaaaaaaa + 4031d2: 6841 ldr r1, [r0, #4] // r1 = 0xbbbbbbbb + 4031d4: 3008 adds r0, #8 // r0 points to c + 4031d6: 680b ldr r3, [r1, #0] // r3 = *0xbbbbbbbb + 4031d8: 4393 bics r3, r2 // r3 = *0xbbbbbbbb & ~(0xaaaaaaaa) + 4031da: 6800 ldr r0, [r0, #0] // r0 = 0xcccccccc + 4031dc: 4002 ands r2, r0 // r2 &= r0 + 4031de: 431a orrs r2, r3 // r2 = (0xaaaaaaaa & 0xcccccccc) | (*0xbbbbbbbb & ~(0xaaaaaaaa)) + 4031e0: 600a str r2, [r1, #0] // store back in B + +uint32_t buf[] +if (buf[0] == 0x00000001) { + *buf[2] = (*buf[2] & ~buf[1]) | (buf[3] & buf[1]); +} + + 4031e2: 2004 movs r0, #4 // return 4 bytes processed 4031e4: 4770 bx lr - 4031e6: 4a09 ldr r2, [pc, #36] (40320c ) //2: - 4031e8: 4291 cmp r1, r2 - 4031ea: d20a bcs.n 403202 + 4031e6: 4a09 ldr r2, [pc, #36] (40320c ) //2: r2=0x0000fff1 + 4031e8: 4291 cmp r1, r2 // r1 >=16 + 4031ea: d20a bcs.n 403202 // if r1 >= 0xfff1 then return 0 4031ec: 4a08 ldr r2, [pc, #32] (403210 ) - 4031ee: 4291 cmp r1, r2 - 4031f0: d007 beq.n 403202 - 4031f2: 0909 lsrs r1, r1, #4 - 4031f4: 1e49 subs r1, r1, #1 - 4031f6: 0609 lsls r1, r1, #24 + 4031ee: 4291 cmp r1, r2 // + 4031f0: d007 beq.n 403202 if 0xe0f (end of file) return 0 + 4031f2: 0909 lsrs r1, r1, #4 // r1 = r1>>4 + 4031f4: 1e49 subs r1, r1, #1 // r1 = r1 - 1 + 4031f6: 0609 lsls r1, r1, #24 // mask 4031f8: 0e09 lsrs r1, r1, #24 - 4031fa: 4a06 ldr r2, [pc, #24] (403214 ) - 4031fc: 6800 ldr r0, [r0, #0] - 4031fe: 5450 strb r0, [r2, r1] + 4031fa: 4a06 ldr r2, [pc, #24] (403214 ) r2 = &u8RamValues + 4031fc: 6800 ldr r0, [r0, #0] // r0 = next value in buffer 2nd half of pair + 4031fe: 5450 strb r0, [r2, r1] // store this in u8RamValues 403200: e7d7 b.n 4031b2 - 403202: 2000 movs r0, #0 + 403202: 2000 movs r0, #0 // return 0 403204: 4770 bx lr 403206: 46c0 nop (mov r8, r8) 403208: 00140001 .word 0x00140001 @@ -5506,42 +5518,52 @@ Disassembly of section P2: 40327a: 4288 cmp r0, r1 40327c: d105 bne.n 40328a //branch to 2: if != 40327e: a802 add r0, sp, #8 - 403280: 88c1 ldrh r1, [r0, #6] + 403280: 88c1 ldrh r1, [r0, #6] // sp+8 0x00000abc sp+12 0x0100 03fc r1 = 0x0100 = 256 403282: 22ff movs r2, #255 403284: 1c92 adds r2, r2, #2 - 403286: 4291 cmp r1, r2 - 403288: d303 bcc.n 403292 - 40328a: 2001 movs r0, #1 // 2: + 403286: 4291 cmp r1, r2 // compare r1 to 257 + 403288: d303 bcc.n 403292 // if r1 < 257 (it is) goto 3: + 40328a: 2001 movs r0, #1 // 2: if r1 > 256 lock flash and return 0 40328c: f403 fefa bl 7084 403290: e7e0 b.n 403254 - 403292: 2408 movs r4, #8 - 403294: 8885 ldrh r5, [r0, #4] - 403296: 1f2d subs r5, r5, #4 - 403298: e006 b.n 4032a8 + + 403292: 2408 movs r4, #8 // 3: r4 = 8 + 403294: 8885 ldrh r5, [r0, #4] // r5 = 0x03fc + 403296: 1f2d subs r5, r5, #4 // r5 = r5 - 4 = 0x03f8 + 403298: e006 b.n 4032a8 // goto 4: + +// top of loop 40329a: a806 add r0, sp, #24 40329c: f7ff ff82 bl 4031a4 // so it looks like flash has entries it exectues... 4032a0: 2800 cmp r0, #0 - 4032a2: d00f beq.n 4032c4 - 4032a4: 0080 lsls r0, r0, #2 - 4032a6: 1824 adds r4, r4, r0 - 4032a8: 42ac cmp r4, r5 + 4032a2: d00f beq.n 4032c4 // if executeentry returned 0, goto 6: + 4032a4: 0080 lsls r0, r0, #2 // r0 = return value from executeentry * 4 + 4032a6: 1824 adds r4, r4, r0 // add number of bytes executed to r4 + + 4032a8: 42ac cmp r4, r5 // 4: if r4 >= r5 goto unlock_exit 4032aa: d210 bcs.n 4032ce - 4032ac: 2010 movs r0, #16 + + 4032ac: 2010 movs r0, #16 // 16 bytes = 4 commands 4032ae: b501 push {r0, lr} - 4032b0: 1933 adds r3, r6, r4 - 4032b2: aa08 add r2, sp, #32 + 4032b0: 1933 adds r3, r6, r4 // r6=0x1f000 + r4 offset + 4032b2: aa08 add r2, sp, #32 // buffer is on the stack 4032b4: a802 add r0, sp, #8 - 4032b6: 7801 ldrb r1, [r0, #0] - 4032b8: 2000 movs r0, #0 + 4032b6: 7801 ldrb r1, [r0, #0] // type from nv_detect + 4032b8: 2000 movs r0, #0 // arg0 4032ba: f403 fd55 bl 6d68 +// err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, 0x1F000, NBYTES); + + 4032be: b002 add sp, #8 4032c0: 2800 cmp r0, #0 - 4032c2: d0ea beq.n 40329a - 4032c4: 2001 movs r0, #1 + 4032c2: d0ea beq.n 40329a // if it worked, goto top of loop + 4032c4: 2001 movs r0, #1 // 6: lock and return 4032c6: f403 fedd bl 7084 4032ca: 0020 lsls r0, r4, #0 4032cc: e003 b.n 4032d6 - 4032ce: 2001 movs r0, #1 + + + 4032ce: 2001 movs r0, #1 // 5: 4032d0: f403 fed8 bl 7084 4032d4: 1d20 adds r0, r4, #4 4032d6: b00a add sp, #40 //exit: diff --git a/src/maca.c b/src/maca.c index d24a74ffd..558fc593e 100644 --- a/src/maca.c +++ b/src/maca.c @@ -320,9 +320,9 @@ const uint8_t ctov_4c[16] = { /* tested good */ #define ADDR_CHAN1 0x80009800 -#define ADDR_CHAN2 ADDR_CHAN1+12 -#define ADDR_CHAN3 ADDR_CHAN1+16 -#define ADDR_CHAN4 ADDR_CHAN1+48 +#define ADDR_CHAN2 (ADDR_CHAN1+12) +#define ADDR_CHAN3 (ADDR_CHAN1+16) +#define ADDR_CHAN4 (ADDR_CHAN1+48) void set_channel(uint8_t chan) { volatile uint32_t tmp; diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 75d2a6238..efbd22f64 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -29,7 +29,7 @@ void put_hex32(uint32_t x); const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; -#define NBYTES 128 +#define NBYTES 1024 __attribute__ ((section ("startup"))) void main(void) { nvmType_t type=0; From 424761f23d2a2083335d5c533e6f261d3f86fab7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 16 Apr 2009 10:51:20 -0400 Subject: [PATCH 076/471] initial try at init entry execution --- Makefile | 6 ++--- doc/ws-dis | 8 +++---- include/maca.h | 1 + include/nvm.h | 8 ++++--- src/maca.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 76 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 3d4a2a3f2..f1dc502fa 100644 --- a/Makefile +++ b/Makefile @@ -60,9 +60,9 @@ ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) all: src/start.o $(ALL) -tests/nvm-read.obj: src/maca.o -tests/rftest-rx.obj: src/maca.o -tests/rftest-tx.obj: src/maca.o +tests/nvm-read.obj: src/maca.o src/nvm.o +tests/rftest-rx.obj: src/maca.o src/nvm.o +tests/rftest-tx.obj: src/maca.o src/nvm.o %.srec: %.obj $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ diff --git a/doc/ws-dis b/doc/ws-dis index dc2808932..1ed0aa14b 100644 --- a/doc/ws-dis +++ b/doc/ws-dis @@ -5422,8 +5422,10 @@ Disassembly of section P2: 4031c6: 2900 cmp r1, #0 4031c8: d1fb bne.n 4031c2 4031ca: e7f2 b.n 4031b2 - 4031cc: 2901 cmp r1, #1 // at this point r1 is between 1 and 15 inclusive + 4031cc: 2901 cmp r1, #1 // 3: at this point r1 is between 1 and 15 inclusive 4031ce: d118 bne.n 403202 // if !=1 return + 4031e2: 2004 movs r0, #4 // return 4 bytes processed + 4031e4: 4770 bx lr 0x00000001 command 0xaaaaaaaa @@ -5445,8 +5447,6 @@ if (buf[0] == 0x00000001) { *buf[2] = (*buf[2] & ~buf[1]) | (buf[3] & buf[1]); } - 4031e2: 2004 movs r0, #4 // return 4 bytes processed - 4031e4: 4770 bx lr 4031e6: 4a09 ldr r2, [pc, #36] (40320c ) //2: r2=0x0000fff1 4031e8: 4291 cmp r1, r2 // r1 >=16 4031ea: d20a bcs.n 403202 // if r1 >= 0xfff1 then return 0 @@ -5460,7 +5460,7 @@ if (buf[0] == 0x00000001) { 4031fa: 4a06 ldr r2, [pc, #24] (403214 ) r2 = &u8RamValues 4031fc: 6800 ldr r0, [r0, #0] // r0 = next value in buffer 2nd half of pair 4031fe: 5450 strb r0, [r2, r1] // store this in u8RamValues - 403200: e7d7 b.n 4031b2 + 403200: e7d7 b.n 4031b2 // return 2 403202: 2000 movs r0, #0 // return 0 403204: 4770 bx lr 403206: 46c0 nop (mov r8, r8) diff --git a/include/maca.h b/include/maca.h index 4be48cc06..e374494c6 100644 --- a/include/maca.h +++ b/include/maca.h @@ -397,6 +397,7 @@ typedef union maca_maskirq_reg_tag uint32_t Reg; } maca_maskirq_reg_t; + #define _is_action_complete_interrupt(x) (0 != (maca_irq_acpl & x)) #define _is_filter_failed_interrupt(x) (0 != (maca_irq_flt & x)) diff --git a/include/nvm.h b/include/nvm.h index edae0030d..e76313c40 100644 --- a/include/nvm.h +++ b/include/nvm.h @@ -1,6 +1,8 @@ #ifndef NVM_H #define NVM_H +#include "embedded_types.h" + typedef enum { gNvmType_NoNvm_c, @@ -34,7 +36,7 @@ typedef enum /* ROM code seems to be THUMB */ /* need to be in a THUMB block before calling them */ -volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType) = 0x00006cb9; -volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes) = 0x00006d69; -volatile void(*nvm_setsvar)(uint32_t zero_for_awesome) = 0x00007085; +extern volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType); +extern volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes); +extern volatile void(*nvm_setsvar)(uint32_t zero_for_awesome); #endif //NVM_H diff --git a/src/maca.c b/src/maca.c index 558fc593e..0d624fd12 100644 --- a/src/maca.c +++ b/src/maca.c @@ -1,8 +1,11 @@ #include "embedded_types.h" #include "maca.h" +#include "nvm.h" #define reg(x) (*(volatile uint32_t *)(x)) +static uint8_t ram_values[4]; + void init_phy(void) { volatile uint32_t cnt; @@ -347,6 +350,66 @@ void set_channel(uint8_t chan) { /* duh! */ } +#define ROM_END 0x0013ffff +#define ENTRY_EOF 0x00000e0f +/* processes up to 4 words of initialization entries */ +/* returns the number of words processed */ +uint8_t exec_init_entry(uint32_t *entries, uint8_t *valbuf) +{ + volatile uint32_t i; + if(entries[0] <= ROM_END) { + if (entries[0] == 0) { + /* do delay command*/ + for(i=0; i= 16) && + (entries[0] < 0xfff1)) { + /* store bytes in valbuf */ + valbuf[(entries[0]>>4)-1] = entries[1]; + return 2; + } else if (entries[0] == ENTRY_EOF) { + return 0; + } else { + /* invalid command code */ + return 0; + } + + } else { /* address isn't in ROM space */ + /* do store value in address command */ + reg(entries[0]) = entries[1]; + return 2; + } +} + + +#define FLASH_INIT_MAGIC 0x00000abc +uint32_t init_from_flash(uint32_t addr) { + nvmType_t type=0; + nvmErr_t err; + uint32_t buf[4]; + uint16_t len; + uint32_t i=0; + err = nvm_detect(gNvmInternalInterface_c, &type); + nvm_setsvar(0); + err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, addr, 8); + i+=8; + if(buf[0] == FLASH_INIT_MAGIC) { + len = buf[1] & 0x0000ffff; + while(i Date: Thu, 16 Apr 2009 17:59:00 -0400 Subject: [PATCH 077/471] flash init --- makes them work much better. resumeMACAsync on each received packet --- no more lockups. --- include/maca.h | 2 ++ src/maca.c | 75 ++++++++++++++++++++++++++++++++++++----- tests/rftest-rx.c | 86 ++++------------------------------------------- tests/rftest-tx.c | 7 ++-- 4 files changed, 78 insertions(+), 92 deletions(-) diff --git a/include/maca.h b/include/maca.h index e374494c6..e9079ea9d 100644 --- a/include/maca.h +++ b/include/maca.h @@ -400,6 +400,7 @@ typedef union maca_maskirq_reg_tag #define _is_action_complete_interrupt(x) (0 != (maca_irq_acpl & x)) #define _is_filter_failed_interrupt(x) (0 != (maca_irq_flt & x)) +#define _is_checksum_failed_interrupt(x) (0 != (maca_irq_crc & x)) #define SMAC_MACA_CNTL_INIT_STATE ( control_prm | control_nofc | control_mode_non_slotted ) @@ -411,6 +412,7 @@ void init_phy(void); void vreg_init(void); void ResumeMACASync(void); void radio_init(void); +uint32_t init_from_flash(uint32_t addr); void set_power(uint8_t power); void set_channel(uint8_t chan); diff --git a/src/maca.c b/src/maca.c index 0d624fd12..2aa852f17 100644 --- a/src/maca.c +++ b/src/maca.c @@ -28,7 +28,7 @@ void init_phy(void) maca_framesync = 0x000000A7; maca_clk = 0x00000008; // maca_maskirq = 0; //(maca_irq_cm | maca_irq_acpl | maca_irq_rst | maca_irq_di | maca_irq_crc | maca_irq_flt ); - maca_maskirq = (maca_irq_rst | maca_irq_acpl | maca_irq_cm | maca_irq_flt); + maca_maskirq = (maca_irq_rst | maca_irq_acpl | maca_irq_cm | maca_irq_flt | maca_irq_crc); maca_slotoffset = 0x00350000; } @@ -149,7 +149,7 @@ void vreg_init(void) { /* radio_init has been tested to be good */ void radio_init(void) { - uint32_t i; + volatile uint32_t i; /* sequence 1 */ for(i=0; i>17) & 1) !=1) { continue; } /* wait for the bypass to take */ + *(volatile uint32_t *)(0x80003048) = 0x00000fa4; /* start the regulators */ + for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ + + init_from_flash(0x1F000); + + puts("ram_values:\n\r"); + for(i=0; i<4; i++) { + puts(" 0x"); + put_hex(ram_values[i]); + puts("\n\r"); + } + } const uint32_t PSMVAL[19] = { @@ -354,32 +372,55 @@ void set_channel(uint8_t chan) { #define ENTRY_EOF 0x00000e0f /* processes up to 4 words of initialization entries */ /* returns the number of words processed */ -uint8_t exec_init_entry(uint32_t *entries, uint8_t *valbuf) +uint32_t exec_init_entry(uint32_t *entries, uint8_t *valbuf) { volatile uint32_t i; if(entries[0] <= ROM_END) { if (entries[0] == 0) { /* do delay command*/ + puts("init_entry: delay "); + put_hex32(entries[1]); + puts("\n\r"); for(i=0; i= 16) && (entries[0] < 0xfff1)) { /* store bytes in valbuf */ + puts("init_entry: store in valbuf "); + put_hex(entries[1]); + puts(" position "); + put_hex((entries[0]>>4)-1); + puts("\n\r"); valbuf[(entries[0]>>4)-1] = entries[1]; return 2; } else if (entries[0] == ENTRY_EOF) { + puts("init_entry: eof "); return 0; } else { /* invalid command code */ + puts("init_entry: invaild code "); + put_hex32(entries[0]); + puts("\n\r"); return 0; } - } else { /* address isn't in ROM space */ /* do store value in address command */ + puts("init_entry: address value pair - *0x"); + put_hex32(entries[0]); + puts(" = "); + put_hex32(entries[1]); + puts("\n\r"); reg(entries[0]) = entries[1]; return 2; } @@ -390,18 +431,34 @@ uint8_t exec_init_entry(uint32_t *entries, uint8_t *valbuf) uint32_t init_from_flash(uint32_t addr) { nvmType_t type=0; nvmErr_t err; - uint32_t buf[4]; - uint16_t len; - uint32_t i=0; + volatile uint32_t buf[8]; + volatile uint16_t len; + volatile uint32_t i=0,j; err = nvm_detect(gNvmInternalInterface_c, &type); + puts("nvm_detect returned type "); + put_hex32(type); + puts(" err "); + put_hex(err); + puts("\n\r"); + nvm_setsvar(0); err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, addr, 8); i+=8; + puts("nvm_read returned: 0x"); + put_hex(err); + puts("\n\r"); + + for(j=0; j<4; j++) { + put_hex32(buf[j]); + puts("\n\r"); + } + if(buf[0] == FLASH_INIT_MAGIC) { len = buf[1] & 0x0000ffff; - while(i> 8) << 2; */ -/* /\* write "last warmdown data" to current TSM step to shutdown rx *\/ */ -/* LastWarmdownData = (*((volatile uint32_t *)(0x80009300 + LastWarmdownStep))); */ - -/* puts("LastWarmdownData: "); */ -/* put_hex32(LastWarmdownData); */ -/* puts(NL); */ - -/* reg(MACA_CONTROL) = 0x00031a04; /\* receive *\/ */ -/* while (((tmp = reg(MACA_STATUS)) & 15) == 14) */ -/* puts("."); */ -/* puts("complete status is "); put_hex32(tmp); puts(NL); */ -/* puts("1 status is "); put_hex32(reg(MACA_STATUS)); puts(NL); */ -/* puts("2 status is "); put_hex32(reg(MACA_STATUS)); puts(NL); */ -/* puts("3 status is "); put_hex32(reg(MACA_STATUS)); puts(NL); */ - -/* puts(NL); */ -/* for(i=0; i Date: Sat, 18 Apr 2009 15:56:49 -0400 Subject: [PATCH 078/471] added my info to the copyright. --- src/start.S | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/start.S b/src/start.S index ec6f93444..4d2b6cb68 100644 --- a/src/start.S +++ b/src/start.S @@ -4,6 +4,9 @@ * Copyright (c) 2001 Marius Gröger * Copyright (c) 2002 Alex Züpke * + * Modified for the mc13224v + * Copyright (c) 2009 Mariano Alvira + * * See file CREDITS for list of people who contributed to this * project. * From d25385d2aae709c1f9c7673cd4d03a52c35db243 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 20 Apr 2009 14:15:24 -0400 Subject: [PATCH 079/471] blink blue but with the timer. --- Makefile | 2 +- tests/tmr.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 tests/tmr.c diff --git a/Makefile b/Makefile index f1dc502fa..1932e2fef 100644 --- a/Makefile +++ b/Makefile @@ -74,7 +74,7 @@ tests/rftest-tx.obj: src/maca.o src/nvm.o $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ %.dis: %.obj - $(OBJDUMP) -D $< > $@ + $(OBJDUMP) -SD $< > $@ %.obj: $(LDSCRIPT) %.o $(LD) $(LDFLAGS) $(AOBJS) \ diff --git a/tests/tmr.c b/tests/tmr.c new file mode 100644 index 000000000..22c12a75d --- /dev/null +++ b/tests/tmr.c @@ -0,0 +1,92 @@ +/* Timer registers are all 16-bit wide with 16-bit access only */ +#define TMR_OFFSET (0x20) +#define TMR_BASE (0x80007000) +#define TMR0_BASE (TMR_BASE) +#define TMR1_BASE (TMR_BASE + TMR_OFFSET*1) +#define TMR2_BASE (TMR_BASE + TMR_OFFSET*2) +#define TMR3_BASE (TMR_BASE + TMR_OFFSET*3) + +#define TMR_REGOFF_COMP1 (0x0) +#define TMR_REGOFF_COMP2 (0x2) +#define TMR_REGOFF_CAPT (0x4) +#define TMR_REGOFF_LOAD (0x6) +#define TMR_REGOFF_HOLD (0x8) +#define TMR_REGOFF_CNTR (0xa) +#define TMR_REGOFF_CTRL (0xc) +#define TMR_REGOFF_SCTRL (0xe) +#define TMR_REGOFF_CMPLD1 (0x10) +#define TMR_REGOFF_CMPLD2 (0x12) +#define TMR_REGOFF_CSCTRL (0x14) +#define TMR_REGOFF_ENBL (0x1e) + +/* Timer 0 registers */ +#define TMR0_COMP1 (TMR0_BASE + TMR_REGOFF_COMP1) +#define TMR0_COMP_UP TMR0_COMP1 +#define TMR0_COMP2 (TMR0_BASE + TMR_REGOFF_COMP2) +#define TMR0_COMP_DOWN TMR0_COMP2 +#define TMR0_CAPT (TMR0_BASE + TMR_REGOFF_CAPT) +#define TMR0_LOAD (TMR0_BASE + TMR_REGOFF_LOAD) +#define TMR0_HOLD (TMR0_BASE + TMR_REGOFF_HOLD) +#define TMR0_CNTR (TMR0_BASE + TMR_REGOFF_CTRL) +#define TMR0_CTRL (TMR0_BASE + TMR_REGOFF_CTRL) +#define TMR0_SCTRL (TMR0_BASE + TMR_REGOFF_SCTRL) +#define TMR0_CMPLD1 (TMR0_BASE + TMR_REGOFF_CMPLD1) +#define TMR0_CMPLD2 (TMR0_BASE + TMR_REGOFF_CMPLD2) +#define TMR0_CSCTRL (TMR0_BASE + TMR_REGOFF_CSCTRL) + +/* one enable register to rule them all */ +#define TMR_ENBL TMR0_BASE + TMR_REGOFF_ENBL + +#define MBAR_GPIO 0x80000000 +#define GPIO_PAD_DIR0 0x80000000 +#define GPIO_DATA0 0x80000008 +#define UART1_DATA 0x80005008 +#define DELAY 400000 + +#define reg32(x) (*(volatile uint32_t *)(x)) +#define reg16(x) (*(volatile uint16_t *)(x)) + +#include "embedded_types.h" + +__attribute__ ((section ("startup"))) +void main(void) { + + /* pin direction */ + reg32(GPIO_PAD_DIR0) = 0x00000400; + + /* timer setup */ + /* CTRL */ +#define COUNT_MODE 1 /* use rising edge of primary source */ +#define PRIME_SRC 0xf /* Perip. clock with 128 prescale (for 24Mhz = 187500Hz)*/ +#define SEC_SRC 0 /* don't need this */ +#define ONCE 0 /* keep counting */ +#define LEN 1 /* count until compare then reload with value in LOAD */ +#define DIR 0 /* count up */ +#define CO_INIT 0 /* other counters cannot force a re-initialization of this counter */ +#define OUT_MODE 0 /* OFLAG is asserted while counter is active */ + + reg16(TMR_ENBL) = 0; /* tmrs reset to enabled */ + reg16(TMR0_SCTRL) = 0; + reg16(TMR0_LOAD) = 0; /* reload to zero */ + reg16(TMR0_COMP_UP) = 18750; /* trigger a reload at the end */ + reg16(TMR0_CMPLD1) = 18750; /* compare 1 triggered reload level, 10HZ maybe? */ + reg16(TMR0_CNTR) = 0; /* reset count register */ + reg16(TMR0_CTRL) = (COUNT_MODE<<13) | (PRIME_SRC<<9) | (SEC_SRC<<7) | (ONCE<<6) | (LEN<<5) | (DIR<<4) | (CO_INIT<<3) | (OUT_MODE); + reg16(TMR_ENBL) = 0xf; /* enable all the timers --- why not? */ + + while(1) { + + /* blink on */ + reg32(GPIO_DATA0) = 0x00000400; + + while((reg16(TMR0_SCTRL)>>15) == 0) { continue; } + reg16(TMR0_SCTRL) = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ + + /* blink off */ + reg32(GPIO_DATA0) = 0x00000000; + + while((reg16(TMR0_SCTRL)>>15) == 0) { continue; } + reg16(TMR0_SCTRL) = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ + + }; +} From e012142abe2f1bcb4870fd9c5c35329ba2ce4f61 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 20 Apr 2009 14:28:53 -0400 Subject: [PATCH 080/471] initial interrupt stuff taken from Contiki --- src/interrupt-utils.c | 84 +++++++++++++ src/interrupt-utils.h | 272 ++++++++++++++++++++++++++++++++++++++++++ src/sys-interrupt.c | 100 ++++++++++++++++ src/sys-interrupt.h | 31 +++++ tests/tmr-ints.c | 92 ++++++++++++++ 5 files changed, 579 insertions(+) create mode 100644 src/interrupt-utils.c create mode 100644 src/interrupt-utils.h create mode 100644 src/sys-interrupt.c create mode 100644 src/sys-interrupt.h create mode 100644 tests/tmr-ints.c diff --git a/src/interrupt-utils.c b/src/interrupt-utils.c new file mode 100644 index 000000000..cd3e1bd81 --- /dev/null +++ b/src/interrupt-utils.c @@ -0,0 +1,84 @@ +/****************************************************************************** + * + * $RCSfile: interrupt-utils.c,v $ + * $Revision: 1.2 $ + * + * This module provides the interface routines for setting up and + * controlling the various interrupt modes present on the ARM processor. + * Copyright 2004, R O SoftWare + * No guarantees, warrantees, or promises, implied or otherwise. + * May be used for hobby or commercial purposes provided copyright + * notice remains intact. + * + *****************************************************************************/ +#include "interrupt-utils.h" + +#define IRQ_MASK 0x00000080 +#define FIQ_MASK 0x00000040 +#define INT_MASK (IRQ_MASK | FIQ_MASK) + +static inline unsigned __get_cpsr(void) +{ + unsigned long retval; + asm volatile (" mrs %0, cpsr" : "=r" (retval) : /* no inputs */ ); + return retval; +} + +static inline void __set_cpsr(unsigned val) +{ + asm volatile (" msr cpsr_c, %0" : /* no outputs */ : "r" (val) ); +} + +unsigned disableIRQ(void) +{ + unsigned _cpsr; + + _cpsr = __get_cpsr(); + __set_cpsr(_cpsr | IRQ_MASK); + return _cpsr; +} + +unsigned restoreIRQ(unsigned oldCPSR) +{ + unsigned _cpsr; + + _cpsr = __get_cpsr(); + __set_cpsr((_cpsr & ~IRQ_MASK) | (oldCPSR & IRQ_MASK)); + return _cpsr; +} + +unsigned enableIRQ(void) +{ + unsigned _cpsr; + + _cpsr = __get_cpsr(); + __set_cpsr(_cpsr & ~IRQ_MASK); + return _cpsr; +} + +unsigned disableFIQ(void) +{ + unsigned _cpsr; + + _cpsr = __get_cpsr(); + __set_cpsr(_cpsr | FIQ_MASK); + return _cpsr; +} + +unsigned restoreFIQ(unsigned oldCPSR) +{ + unsigned _cpsr; + + _cpsr = __get_cpsr(); + __set_cpsr((_cpsr & ~FIQ_MASK) | (oldCPSR & FIQ_MASK)); + return _cpsr; +} + +unsigned enableFIQ(void) +{ + unsigned _cpsr; + + _cpsr = __get_cpsr(); + __set_cpsr(_cpsr & ~FIQ_MASK); + return _cpsr; +} diff --git a/src/interrupt-utils.h b/src/interrupt-utils.h new file mode 100644 index 000000000..29b307d88 --- /dev/null +++ b/src/interrupt-utils.h @@ -0,0 +1,272 @@ +/* + * Defines and Macros for Interrupt-Service-Routines + * collected and partly created by + * Martin Thomas + * + * Copyright 2005 M. Thomas + * No guarantees, warrantees, or promises, implied or otherwise. + * May be used for hobby or commercial purposes provided copyright + * notice remains intact. + */ + +#ifndef interrupt_utils_ +#define interrupt_utils_ + +/* + The following defines are usefull for + interrupt service routine declarations. +*/ + +/* + RAMFUNC + Attribute which defines a function to be located + in memory section .fastrun and called via "long calls". + See linker-skript and startup-code to see how the + .fastrun-section is handled. + The definition is not only useful for ISRs but since + ISRs should be executed fast the macro is defined in + this header. +*/ +#define RAMFUNC __attribute__ ((long_call, section (".fastrun"))) + + +/* + INTFUNC + standard attribute for arm-elf-gcc which marks + a function as ISR (for the VIC). Since gcc seems + to produce wrong code if this attribute is used in + thumb/thumb-interwork the attribute should only be + used for "pure ARM-mode" binaries. +*/ +#define INTFUNC __attribute__ ((interrupt("IRQ"))) + + +/* + NACKEDFUNC + gcc will not add any code to a function declared + "nacked". The user has to take care to save registers + and add the needed code for ISR functions. Some + macros for this tasks are provided below. +*/ +#define NACKEDFUNC __attribute__((naked)) + + +/****************************************************************************** + * + * MACRO Name: ISR_STORE() + * + * Description: + * This MACRO is used upon entry to an ISR with interrupt nesting. + * Should be used together with ISR_ENABLE_NEST(). The MACRO + * performs the following steps: + * + * 1 - Save the non-banked registers r0-r12 and lr onto the IRQ stack. + * + *****************************************************************************/ +#define ISR_STORE() asm volatile( \ + "STMDB SP!,{R0-R12,LR}\n" ) + + /****************************************************************************** + * + * MACRO Name: ISR_RESTORE() + * + * Description: + * This MACRO is used upon exit from an ISR with interrupt nesting. + * Should be used together with ISR_DISABLE_NEST(). The MACRO + * performs the following steps: + * + * 1 - Load the non-banked registers r0-r12 and lr from the IRQ stack. + * 2 - Adjusts resume adress + * + *****************************************************************************/ +#define ISR_RESTORE() asm volatile( \ + "LDMIA SP!,{R0-R12,LR}\n" \ + "SUBS R15,R14,#0x0004\n" ) + +/****************************************************************************** + * + * MACRO Name: ISR_ENABLE_NEST() + * + * Description: + * This MACRO is used upon entry from an ISR with interrupt nesting. + * Should be used after ISR_STORE. + * + *****************************************************************************/ + +#define ISR_ENABLE_NEST() asm volatile( \ + "MRS LR, SPSR \n" \ + "STMFD SP!, {LR} \n" \ + "MSR CPSR_c, #0x1f \n" \ + "STMFD SP!, {LR} " ) + +/****************************************************************************** + * + * MACRO Name: ISR_DISABLE_NEST() + * + * Description: + * This MACRO is used upon entry from an ISR with interrupt nesting. + * Should be used before ISR_RESTORE. + * + *****************************************************************************/ + +#define ISR_DISABLE_NEST() asm volatile( \ + "LDMFD SP!, {LR} \n" \ + "MSR CPSR_c, #0x92 \n" \ + "LDMFD SP!, {LR} \n" \ + "MSR SPSR_cxsf, LR \n" ) + + + +/* + * The following marcos are from the file "armVIC.h" by: + * + * Copyright 2004, R O SoftWare + * No guarantees, warrantees, or promises, implied or otherwise. + * May be used for hobby or commercial purposes provided copyright + * notice remains intact. + * + */ + +/****************************************************************************** + * + * MACRO Name: ISR_ENTRY() + * + * Description: + * This MACRO is used upon entry to an ISR. The current version of + * the gcc compiler for ARM does not produce correct code for + * interrupt routines to operate properly with THUMB code. The MACRO + * performs the following steps: + * + * 1 - Adjust address at which execution should resume after servicing + * ISR to compensate for IRQ entry + * 2 - Save the non-banked registers r0-r12 and lr onto the IRQ stack. + * 3 - Get the status of the interrupted program is in SPSR. + * 4 - Push it onto the IRQ stack as well. + * + *****************************************************************************/ +#define ISR_ENTRY() asm volatile(" sub lr, lr,#4\n" \ + " stmfd sp!,{r0-r12,lr}\n" \ + " mrs r1, spsr\n" \ + " stmfd sp!,{r1}") + +/****************************************************************************** + * + * MACRO Name: ISR_EXIT() + * + * Description: + * This MACRO is used to exit an ISR. The current version of the gcc + * compiler for ARM does not produce correct code for interrupt + * routines to operate properly with THUMB code. The MACRO performs + * the following steps: + * + * 1 - Recover SPSR value from stack + * 2 - and restore its value + * 3 - Pop the return address & the saved general registers from + * the IRQ stack & return + * + *****************************************************************************/ +#define ISR_EXIT() asm volatile(" ldmfd sp!,{r1}\n" \ + " msr spsr_c,r1\n" \ + " ldmfd sp!,{r0-r12,pc}^") + +/****************************************************************************** + * + * Function Name: disableIRQ() + * + * Description: + * This function sets the IRQ disable bit in the status register + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned disableIRQ(void); + +/****************************************************************************** + * + * Function Name: enableIRQ() + * + * Description: + * This function clears the IRQ disable bit in the status register + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned enableIRQ(void); + +/****************************************************************************** + * + * Function Name: restoreIRQ() + * + * Description: + * This function restores the IRQ disable bit in the status register + * to the value contained within passed oldCPSR + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned restoreIRQ(unsigned oldCPSR); + +/****************************************************************************** + * + * Function Name: disableFIQ() + * + * Description: + * This function sets the FIQ disable bit in the status register + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned disableFIQ(void); + +/****************************************************************************** + * + * Function Name: enableFIQ() + * + * Description: + * This function clears the FIQ disable bit in the status register + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned enableFIQ(void); + +/****************************************************************************** + * + * Function Name: restoreFIQ() + * + * Description: + * This function restores the FIQ disable bit in the status register + * to the value contained within passed oldCPSR + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned restoreFIQ(unsigned oldCPSR); + + +#endif + diff --git a/src/sys-interrupt.c b/src/sys-interrupt.c new file mode 100644 index 000000000..b540145cb --- /dev/null +++ b/src/sys-interrupt.c @@ -0,0 +1,100 @@ +#include +#include +#include + +#define ATTR + +#ifndef NULL +#define NULL 0 +#endif + + +static SystemInterruptHandler *handlers = NULL; + +static void +system_int_safe (void) __attribute__((noinline)); + +static void +system_int_safe (void) +{ + SystemInterruptHandler *h; + h = handlers; + while (h) { + if (h->handler()) break; + h = h->next; + } +} + +static void NACKEDFUNC ATTR +system_int (void) /* System Interrupt Handler */ +{ + ISR_ENTRY(); + system_int_safe(); + *AT91C_AIC_EOICR = 0; /* End of Interrupt */ + ISR_EXIT(); +} + +static unsigned int enabled = 0; /* Number of times the system + interrupt has been enabled */ + +#define DIS_INT *AT91C_AIC_IDCR = (1 << AT91C_ID_SYS) +#define EN_INT if (enabled > 0) *AT91C_AIC_IECR = (1 << AT91C_ID_SYS) + +void +sys_interrupt_enable() +{ + if (enabled++ == 0) { + /* Level trigged at priority 5 */ + AT91C_AIC_SMR[AT91C_ID_SYS] = AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL | 5; + /* Interrupt vector */ + AT91C_AIC_SVR[AT91C_ID_SYS] = (unsigned long) system_int; + /* Enable */ + EN_INT; + } +} + + +void +sys_interrupt_disable() +{ + if (--enabled == 0) { + DIS_INT; + } +} + +void +sys_interrupt_append_handler(SystemInterruptHandler *handler) +{ + SystemInterruptHandler **h = &handlers; + while(*h) { + h = &(*h)->next; + } + DIS_INT; + *h = handler; + handler->next = NULL; + EN_INT; +} + +void +sys_interrupt_prepend_handler(SystemInterruptHandler *handler) +{ + DIS_INT; + handler->next = handlers; + handlers = handler; + EN_INT; +} + +void +sys_interrupt_remove_handler(SystemInterruptHandler *handler) +{ + SystemInterruptHandler **h = &handlers; + while(*h) { + if (*h == handler) { + DIS_INT; + *h = handler->next; + EN_INT; + break; + } + h = &(*h)->next; + } +} diff --git a/src/sys-interrupt.h b/src/sys-interrupt.h new file mode 100644 index 000000000..433db4a0f --- /dev/null +++ b/src/sys-interrupt.h @@ -0,0 +1,31 @@ +#ifndef __SYS_INTERRUPT_H__QIHZ66NP8K__ +#define __SYS_INTERRUPT_H__QIHZ66NP8K__ + + +/* Returns true if it handled an activbe interrupt */ +typedef int (*SystemInterruptFunc)(); + +typedef struct _SystemInterruptHandler SystemInterruptHandler; +struct _SystemInterruptHandler +{ + SystemInterruptHandler *next; + SystemInterruptFunc handler; +}; + + +void +sys_interrupt_enable(); + +void +sys_interrupt_disable(); + +void +sys_interrupt_append_handler(SystemInterruptHandler *handler); + +void +sys_interrupt_prepend_handler(SystemInterruptHandler *handler); + +void +sys_interrupt_remove_handler(SystemInterruptHandler *handler); + +#endif /* __SYS_INTERRUPT_H__QIHZ66NP8K__ */ diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c new file mode 100644 index 000000000..22c12a75d --- /dev/null +++ b/tests/tmr-ints.c @@ -0,0 +1,92 @@ +/* Timer registers are all 16-bit wide with 16-bit access only */ +#define TMR_OFFSET (0x20) +#define TMR_BASE (0x80007000) +#define TMR0_BASE (TMR_BASE) +#define TMR1_BASE (TMR_BASE + TMR_OFFSET*1) +#define TMR2_BASE (TMR_BASE + TMR_OFFSET*2) +#define TMR3_BASE (TMR_BASE + TMR_OFFSET*3) + +#define TMR_REGOFF_COMP1 (0x0) +#define TMR_REGOFF_COMP2 (0x2) +#define TMR_REGOFF_CAPT (0x4) +#define TMR_REGOFF_LOAD (0x6) +#define TMR_REGOFF_HOLD (0x8) +#define TMR_REGOFF_CNTR (0xa) +#define TMR_REGOFF_CTRL (0xc) +#define TMR_REGOFF_SCTRL (0xe) +#define TMR_REGOFF_CMPLD1 (0x10) +#define TMR_REGOFF_CMPLD2 (0x12) +#define TMR_REGOFF_CSCTRL (0x14) +#define TMR_REGOFF_ENBL (0x1e) + +/* Timer 0 registers */ +#define TMR0_COMP1 (TMR0_BASE + TMR_REGOFF_COMP1) +#define TMR0_COMP_UP TMR0_COMP1 +#define TMR0_COMP2 (TMR0_BASE + TMR_REGOFF_COMP2) +#define TMR0_COMP_DOWN TMR0_COMP2 +#define TMR0_CAPT (TMR0_BASE + TMR_REGOFF_CAPT) +#define TMR0_LOAD (TMR0_BASE + TMR_REGOFF_LOAD) +#define TMR0_HOLD (TMR0_BASE + TMR_REGOFF_HOLD) +#define TMR0_CNTR (TMR0_BASE + TMR_REGOFF_CTRL) +#define TMR0_CTRL (TMR0_BASE + TMR_REGOFF_CTRL) +#define TMR0_SCTRL (TMR0_BASE + TMR_REGOFF_SCTRL) +#define TMR0_CMPLD1 (TMR0_BASE + TMR_REGOFF_CMPLD1) +#define TMR0_CMPLD2 (TMR0_BASE + TMR_REGOFF_CMPLD2) +#define TMR0_CSCTRL (TMR0_BASE + TMR_REGOFF_CSCTRL) + +/* one enable register to rule them all */ +#define TMR_ENBL TMR0_BASE + TMR_REGOFF_ENBL + +#define MBAR_GPIO 0x80000000 +#define GPIO_PAD_DIR0 0x80000000 +#define GPIO_DATA0 0x80000008 +#define UART1_DATA 0x80005008 +#define DELAY 400000 + +#define reg32(x) (*(volatile uint32_t *)(x)) +#define reg16(x) (*(volatile uint16_t *)(x)) + +#include "embedded_types.h" + +__attribute__ ((section ("startup"))) +void main(void) { + + /* pin direction */ + reg32(GPIO_PAD_DIR0) = 0x00000400; + + /* timer setup */ + /* CTRL */ +#define COUNT_MODE 1 /* use rising edge of primary source */ +#define PRIME_SRC 0xf /* Perip. clock with 128 prescale (for 24Mhz = 187500Hz)*/ +#define SEC_SRC 0 /* don't need this */ +#define ONCE 0 /* keep counting */ +#define LEN 1 /* count until compare then reload with value in LOAD */ +#define DIR 0 /* count up */ +#define CO_INIT 0 /* other counters cannot force a re-initialization of this counter */ +#define OUT_MODE 0 /* OFLAG is asserted while counter is active */ + + reg16(TMR_ENBL) = 0; /* tmrs reset to enabled */ + reg16(TMR0_SCTRL) = 0; + reg16(TMR0_LOAD) = 0; /* reload to zero */ + reg16(TMR0_COMP_UP) = 18750; /* trigger a reload at the end */ + reg16(TMR0_CMPLD1) = 18750; /* compare 1 triggered reload level, 10HZ maybe? */ + reg16(TMR0_CNTR) = 0; /* reset count register */ + reg16(TMR0_CTRL) = (COUNT_MODE<<13) | (PRIME_SRC<<9) | (SEC_SRC<<7) | (ONCE<<6) | (LEN<<5) | (DIR<<4) | (CO_INIT<<3) | (OUT_MODE); + reg16(TMR_ENBL) = 0xf; /* enable all the timers --- why not? */ + + while(1) { + + /* blink on */ + reg32(GPIO_DATA0) = 0x00000400; + + while((reg16(TMR0_SCTRL)>>15) == 0) { continue; } + reg16(TMR0_SCTRL) = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ + + /* blink off */ + reg32(GPIO_DATA0) = 0x00000000; + + while((reg16(TMR0_SCTRL)>>15) == 0) { continue; } + reg16(TMR0_SCTRL) = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ + + }; +} From 4f45e439844eca2940ebe93704c47822369d273d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 20 Apr 2009 14:29:20 -0400 Subject: [PATCH 081/471] nvm source file --- src/nvm.c | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/nvm.c diff --git a/src/nvm.c b/src/nvm.c new file mode 100644 index 000000000..c4d54d513 --- /dev/null +++ b/src/nvm.c @@ -0,0 +1,5 @@ +#include "nvm.h" + +volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType) = 0x00006cb9; +volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes) = 0x00006d69; +volatile void(*nvm_setsvar)(uint32_t zero_for_awesome) = 0x00007085; From cfd985c8371d2678de0d372f97af946b32b1accb Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 20 Apr 2009 15:42:21 -0400 Subject: [PATCH 082/471] modified at91 interrupt code from contiki to use the mc1322x registers and to produce code that works with THUMB. --- include/interrupt-utils.h | 272 ++++++++++++++++++++++++++++++++++++++ include/sys-interrupt.h | 31 +++++ src/interrupt-utils.c | 19 ++- src/sys-interrupt.c | 17 +-- 4 files changed, 325 insertions(+), 14 deletions(-) create mode 100644 include/interrupt-utils.h create mode 100644 include/sys-interrupt.h diff --git a/include/interrupt-utils.h b/include/interrupt-utils.h new file mode 100644 index 000000000..29b307d88 --- /dev/null +++ b/include/interrupt-utils.h @@ -0,0 +1,272 @@ +/* + * Defines and Macros for Interrupt-Service-Routines + * collected and partly created by + * Martin Thomas + * + * Copyright 2005 M. Thomas + * No guarantees, warrantees, or promises, implied or otherwise. + * May be used for hobby or commercial purposes provided copyright + * notice remains intact. + */ + +#ifndef interrupt_utils_ +#define interrupt_utils_ + +/* + The following defines are usefull for + interrupt service routine declarations. +*/ + +/* + RAMFUNC + Attribute which defines a function to be located + in memory section .fastrun and called via "long calls". + See linker-skript and startup-code to see how the + .fastrun-section is handled. + The definition is not only useful for ISRs but since + ISRs should be executed fast the macro is defined in + this header. +*/ +#define RAMFUNC __attribute__ ((long_call, section (".fastrun"))) + + +/* + INTFUNC + standard attribute for arm-elf-gcc which marks + a function as ISR (for the VIC). Since gcc seems + to produce wrong code if this attribute is used in + thumb/thumb-interwork the attribute should only be + used for "pure ARM-mode" binaries. +*/ +#define INTFUNC __attribute__ ((interrupt("IRQ"))) + + +/* + NACKEDFUNC + gcc will not add any code to a function declared + "nacked". The user has to take care to save registers + and add the needed code for ISR functions. Some + macros for this tasks are provided below. +*/ +#define NACKEDFUNC __attribute__((naked)) + + +/****************************************************************************** + * + * MACRO Name: ISR_STORE() + * + * Description: + * This MACRO is used upon entry to an ISR with interrupt nesting. + * Should be used together with ISR_ENABLE_NEST(). The MACRO + * performs the following steps: + * + * 1 - Save the non-banked registers r0-r12 and lr onto the IRQ stack. + * + *****************************************************************************/ +#define ISR_STORE() asm volatile( \ + "STMDB SP!,{R0-R12,LR}\n" ) + + /****************************************************************************** + * + * MACRO Name: ISR_RESTORE() + * + * Description: + * This MACRO is used upon exit from an ISR with interrupt nesting. + * Should be used together with ISR_DISABLE_NEST(). The MACRO + * performs the following steps: + * + * 1 - Load the non-banked registers r0-r12 and lr from the IRQ stack. + * 2 - Adjusts resume adress + * + *****************************************************************************/ +#define ISR_RESTORE() asm volatile( \ + "LDMIA SP!,{R0-R12,LR}\n" \ + "SUBS R15,R14,#0x0004\n" ) + +/****************************************************************************** + * + * MACRO Name: ISR_ENABLE_NEST() + * + * Description: + * This MACRO is used upon entry from an ISR with interrupt nesting. + * Should be used after ISR_STORE. + * + *****************************************************************************/ + +#define ISR_ENABLE_NEST() asm volatile( \ + "MRS LR, SPSR \n" \ + "STMFD SP!, {LR} \n" \ + "MSR CPSR_c, #0x1f \n" \ + "STMFD SP!, {LR} " ) + +/****************************************************************************** + * + * MACRO Name: ISR_DISABLE_NEST() + * + * Description: + * This MACRO is used upon entry from an ISR with interrupt nesting. + * Should be used before ISR_RESTORE. + * + *****************************************************************************/ + +#define ISR_DISABLE_NEST() asm volatile( \ + "LDMFD SP!, {LR} \n" \ + "MSR CPSR_c, #0x92 \n" \ + "LDMFD SP!, {LR} \n" \ + "MSR SPSR_cxsf, LR \n" ) + + + +/* + * The following marcos are from the file "armVIC.h" by: + * + * Copyright 2004, R O SoftWare + * No guarantees, warrantees, or promises, implied or otherwise. + * May be used for hobby or commercial purposes provided copyright + * notice remains intact. + * + */ + +/****************************************************************************** + * + * MACRO Name: ISR_ENTRY() + * + * Description: + * This MACRO is used upon entry to an ISR. The current version of + * the gcc compiler for ARM does not produce correct code for + * interrupt routines to operate properly with THUMB code. The MACRO + * performs the following steps: + * + * 1 - Adjust address at which execution should resume after servicing + * ISR to compensate for IRQ entry + * 2 - Save the non-banked registers r0-r12 and lr onto the IRQ stack. + * 3 - Get the status of the interrupted program is in SPSR. + * 4 - Push it onto the IRQ stack as well. + * + *****************************************************************************/ +#define ISR_ENTRY() asm volatile(" sub lr, lr,#4\n" \ + " stmfd sp!,{r0-r12,lr}\n" \ + " mrs r1, spsr\n" \ + " stmfd sp!,{r1}") + +/****************************************************************************** + * + * MACRO Name: ISR_EXIT() + * + * Description: + * This MACRO is used to exit an ISR. The current version of the gcc + * compiler for ARM does not produce correct code for interrupt + * routines to operate properly with THUMB code. The MACRO performs + * the following steps: + * + * 1 - Recover SPSR value from stack + * 2 - and restore its value + * 3 - Pop the return address & the saved general registers from + * the IRQ stack & return + * + *****************************************************************************/ +#define ISR_EXIT() asm volatile(" ldmfd sp!,{r1}\n" \ + " msr spsr_c,r1\n" \ + " ldmfd sp!,{r0-r12,pc}^") + +/****************************************************************************** + * + * Function Name: disableIRQ() + * + * Description: + * This function sets the IRQ disable bit in the status register + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned disableIRQ(void); + +/****************************************************************************** + * + * Function Name: enableIRQ() + * + * Description: + * This function clears the IRQ disable bit in the status register + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned enableIRQ(void); + +/****************************************************************************** + * + * Function Name: restoreIRQ() + * + * Description: + * This function restores the IRQ disable bit in the status register + * to the value contained within passed oldCPSR + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned restoreIRQ(unsigned oldCPSR); + +/****************************************************************************** + * + * Function Name: disableFIQ() + * + * Description: + * This function sets the FIQ disable bit in the status register + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned disableFIQ(void); + +/****************************************************************************** + * + * Function Name: enableFIQ() + * + * Description: + * This function clears the FIQ disable bit in the status register + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned enableFIQ(void); + +/****************************************************************************** + * + * Function Name: restoreFIQ() + * + * Description: + * This function restores the FIQ disable bit in the status register + * to the value contained within passed oldCPSR + * + * Calling Sequence: + * void + * + * Returns: + * previous value of CPSR + * + *****************************************************************************/ +unsigned restoreFIQ(unsigned oldCPSR); + + +#endif + diff --git a/include/sys-interrupt.h b/include/sys-interrupt.h new file mode 100644 index 000000000..433db4a0f --- /dev/null +++ b/include/sys-interrupt.h @@ -0,0 +1,31 @@ +#ifndef __SYS_INTERRUPT_H__QIHZ66NP8K__ +#define __SYS_INTERRUPT_H__QIHZ66NP8K__ + + +/* Returns true if it handled an activbe interrupt */ +typedef int (*SystemInterruptFunc)(); + +typedef struct _SystemInterruptHandler SystemInterruptHandler; +struct _SystemInterruptHandler +{ + SystemInterruptHandler *next; + SystemInterruptFunc handler; +}; + + +void +sys_interrupt_enable(); + +void +sys_interrupt_disable(); + +void +sys_interrupt_append_handler(SystemInterruptHandler *handler); + +void +sys_interrupt_prepend_handler(SystemInterruptHandler *handler); + +void +sys_interrupt_remove_handler(SystemInterruptHandler *handler); + +#endif /* __SYS_INTERRUPT_H__QIHZ66NP8K__ */ diff --git a/src/interrupt-utils.c b/src/interrupt-utils.c index cd3e1bd81..2e2f7c1e2 100644 --- a/src/interrupt-utils.c +++ b/src/interrupt-utils.c @@ -17,18 +17,29 @@ #define FIQ_MASK 0x00000040 #define INT_MASK (IRQ_MASK | FIQ_MASK) -static inline unsigned __get_cpsr(void) +unsigned __get_cpsr(void) { unsigned long retval; - asm volatile (" mrs %0, cpsr" : "=r" (retval) : /* no inputs */ ); + asm volatile ( + ".code 32;" + "mrs %0, cpsr;" + ".code 16;" + : "=r" (retval) : + ); return retval; } -static inline void __set_cpsr(unsigned val) +void __set_cpsr(unsigned val) { - asm volatile (" msr cpsr_c, %0" : /* no outputs */ : "r" (val) ); + asm volatile ( + ".code 32;" + "msr cpsr_c, %0;" + ".code 16;" + : : "r" (val) + ); } + unsigned disableIRQ(void) { unsigned _cpsr; diff --git a/src/sys-interrupt.c b/src/sys-interrupt.c index b540145cb..6a8b36e1d 100644 --- a/src/sys-interrupt.c +++ b/src/sys-interrupt.c @@ -1,6 +1,7 @@ -#include -#include -#include +#include "sys-interrupt.h" +#include "interrupt-utils.h" + +#include "embedded_types.h" #define ATTR @@ -30,24 +31,20 @@ system_int (void) /* System Interrupt Handler */ { ISR_ENTRY(); system_int_safe(); - *AT91C_AIC_EOICR = 0; /* End of Interrupt */ ISR_EXIT(); } static unsigned int enabled = 0; /* Number of times the system interrupt has been enabled */ -#define DIS_INT *AT91C_AIC_IDCR = (1 << AT91C_ID_SYS) -#define EN_INT if (enabled > 0) *AT91C_AIC_IECR = (1 << AT91C_ID_SYS) +#define INTCNTL 0x80020000 +#define DIS_INT *((volatile uint32_t *)INTCNTL) = 3 << 19; +#define EN_INT if (enabled > 0) *((volatile uint32_t *)INTCNTL) = 0; void sys_interrupt_enable() { if (enabled++ == 0) { - /* Level trigged at priority 5 */ - AT91C_AIC_SMR[AT91C_ID_SYS] = AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL | 5; - /* Interrupt vector */ - AT91C_AIC_SVR[AT91C_ID_SYS] = (unsigned long) system_int; /* Enable */ EN_INT; } From 28c1ed2105114f8a3e99f8cef83e08e1516a8daa Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 20 Apr 2009 15:43:24 -0400 Subject: [PATCH 083/471] added function sections and long-calls --- Makefile | 1 + config.mk | 4 +- src/interrupt-utils.h | 272 ------------------------------------------ src/sys-interrupt.h | 31 ----- 4 files changed, 3 insertions(+), 305 deletions(-) delete mode 100644 src/interrupt-utils.h delete mode 100644 src/sys-interrupt.h diff --git a/Makefile b/Makefile index 1932e2fef..563cd2a01 100644 --- a/Makefile +++ b/Makefile @@ -63,6 +63,7 @@ all: src/start.o $(ALL) tests/nvm-read.obj: src/maca.o src/nvm.o tests/rftest-rx.obj: src/maca.o src/nvm.o tests/rftest-tx.obj: src/maca.o src/nvm.o +tests/tmr-ints.c: src/interrupt-utils.o src/sys-interrupt.o %.srec: %.obj $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ diff --git a/config.mk b/config.mk index 7352f6d74..3fb973e44 100644 --- a/config.mk +++ b/config.mk @@ -25,8 +25,8 @@ # clean the slate ... PLATFORM_LDFLAGS = -PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -msoft-float -PLATFORM_CPPFLAGS = -march=armv4t -mcallee-super-interworking -mthumb -mtune=arm7tdmi-s -mthumb-interwork -DCONFIG_ARM -D__ARM__ +PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -ffunction-sections -msoft-float +PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mcallee-super-interworking -mthumb -mthumb-interwork -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ TEXT_BASE = 0x00400000 ######################################################################### diff --git a/src/interrupt-utils.h b/src/interrupt-utils.h deleted file mode 100644 index 29b307d88..000000000 --- a/src/interrupt-utils.h +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Defines and Macros for Interrupt-Service-Routines - * collected and partly created by - * Martin Thomas - * - * Copyright 2005 M. Thomas - * No guarantees, warrantees, or promises, implied or otherwise. - * May be used for hobby or commercial purposes provided copyright - * notice remains intact. - */ - -#ifndef interrupt_utils_ -#define interrupt_utils_ - -/* - The following defines are usefull for - interrupt service routine declarations. -*/ - -/* - RAMFUNC - Attribute which defines a function to be located - in memory section .fastrun and called via "long calls". - See linker-skript and startup-code to see how the - .fastrun-section is handled. - The definition is not only useful for ISRs but since - ISRs should be executed fast the macro is defined in - this header. -*/ -#define RAMFUNC __attribute__ ((long_call, section (".fastrun"))) - - -/* - INTFUNC - standard attribute for arm-elf-gcc which marks - a function as ISR (for the VIC). Since gcc seems - to produce wrong code if this attribute is used in - thumb/thumb-interwork the attribute should only be - used for "pure ARM-mode" binaries. -*/ -#define INTFUNC __attribute__ ((interrupt("IRQ"))) - - -/* - NACKEDFUNC - gcc will not add any code to a function declared - "nacked". The user has to take care to save registers - and add the needed code for ISR functions. Some - macros for this tasks are provided below. -*/ -#define NACKEDFUNC __attribute__((naked)) - - -/****************************************************************************** - * - * MACRO Name: ISR_STORE() - * - * Description: - * This MACRO is used upon entry to an ISR with interrupt nesting. - * Should be used together with ISR_ENABLE_NEST(). The MACRO - * performs the following steps: - * - * 1 - Save the non-banked registers r0-r12 and lr onto the IRQ stack. - * - *****************************************************************************/ -#define ISR_STORE() asm volatile( \ - "STMDB SP!,{R0-R12,LR}\n" ) - - /****************************************************************************** - * - * MACRO Name: ISR_RESTORE() - * - * Description: - * This MACRO is used upon exit from an ISR with interrupt nesting. - * Should be used together with ISR_DISABLE_NEST(). The MACRO - * performs the following steps: - * - * 1 - Load the non-banked registers r0-r12 and lr from the IRQ stack. - * 2 - Adjusts resume adress - * - *****************************************************************************/ -#define ISR_RESTORE() asm volatile( \ - "LDMIA SP!,{R0-R12,LR}\n" \ - "SUBS R15,R14,#0x0004\n" ) - -/****************************************************************************** - * - * MACRO Name: ISR_ENABLE_NEST() - * - * Description: - * This MACRO is used upon entry from an ISR with interrupt nesting. - * Should be used after ISR_STORE. - * - *****************************************************************************/ - -#define ISR_ENABLE_NEST() asm volatile( \ - "MRS LR, SPSR \n" \ - "STMFD SP!, {LR} \n" \ - "MSR CPSR_c, #0x1f \n" \ - "STMFD SP!, {LR} " ) - -/****************************************************************************** - * - * MACRO Name: ISR_DISABLE_NEST() - * - * Description: - * This MACRO is used upon entry from an ISR with interrupt nesting. - * Should be used before ISR_RESTORE. - * - *****************************************************************************/ - -#define ISR_DISABLE_NEST() asm volatile( \ - "LDMFD SP!, {LR} \n" \ - "MSR CPSR_c, #0x92 \n" \ - "LDMFD SP!, {LR} \n" \ - "MSR SPSR_cxsf, LR \n" ) - - - -/* - * The following marcos are from the file "armVIC.h" by: - * - * Copyright 2004, R O SoftWare - * No guarantees, warrantees, or promises, implied or otherwise. - * May be used for hobby or commercial purposes provided copyright - * notice remains intact. - * - */ - -/****************************************************************************** - * - * MACRO Name: ISR_ENTRY() - * - * Description: - * This MACRO is used upon entry to an ISR. The current version of - * the gcc compiler for ARM does not produce correct code for - * interrupt routines to operate properly with THUMB code. The MACRO - * performs the following steps: - * - * 1 - Adjust address at which execution should resume after servicing - * ISR to compensate for IRQ entry - * 2 - Save the non-banked registers r0-r12 and lr onto the IRQ stack. - * 3 - Get the status of the interrupted program is in SPSR. - * 4 - Push it onto the IRQ stack as well. - * - *****************************************************************************/ -#define ISR_ENTRY() asm volatile(" sub lr, lr,#4\n" \ - " stmfd sp!,{r0-r12,lr}\n" \ - " mrs r1, spsr\n" \ - " stmfd sp!,{r1}") - -/****************************************************************************** - * - * MACRO Name: ISR_EXIT() - * - * Description: - * This MACRO is used to exit an ISR. The current version of the gcc - * compiler for ARM does not produce correct code for interrupt - * routines to operate properly with THUMB code. The MACRO performs - * the following steps: - * - * 1 - Recover SPSR value from stack - * 2 - and restore its value - * 3 - Pop the return address & the saved general registers from - * the IRQ stack & return - * - *****************************************************************************/ -#define ISR_EXIT() asm volatile(" ldmfd sp!,{r1}\n" \ - " msr spsr_c,r1\n" \ - " ldmfd sp!,{r0-r12,pc}^") - -/****************************************************************************** - * - * Function Name: disableIRQ() - * - * Description: - * This function sets the IRQ disable bit in the status register - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned disableIRQ(void); - -/****************************************************************************** - * - * Function Name: enableIRQ() - * - * Description: - * This function clears the IRQ disable bit in the status register - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned enableIRQ(void); - -/****************************************************************************** - * - * Function Name: restoreIRQ() - * - * Description: - * This function restores the IRQ disable bit in the status register - * to the value contained within passed oldCPSR - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned restoreIRQ(unsigned oldCPSR); - -/****************************************************************************** - * - * Function Name: disableFIQ() - * - * Description: - * This function sets the FIQ disable bit in the status register - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned disableFIQ(void); - -/****************************************************************************** - * - * Function Name: enableFIQ() - * - * Description: - * This function clears the FIQ disable bit in the status register - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned enableFIQ(void); - -/****************************************************************************** - * - * Function Name: restoreFIQ() - * - * Description: - * This function restores the FIQ disable bit in the status register - * to the value contained within passed oldCPSR - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned restoreFIQ(unsigned oldCPSR); - - -#endif - diff --git a/src/sys-interrupt.h b/src/sys-interrupt.h deleted file mode 100644 index 433db4a0f..000000000 --- a/src/sys-interrupt.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __SYS_INTERRUPT_H__QIHZ66NP8K__ -#define __SYS_INTERRUPT_H__QIHZ66NP8K__ - - -/* Returns true if it handled an activbe interrupt */ -typedef int (*SystemInterruptFunc)(); - -typedef struct _SystemInterruptHandler SystemInterruptHandler; -struct _SystemInterruptHandler -{ - SystemInterruptHandler *next; - SystemInterruptFunc handler; -}; - - -void -sys_interrupt_enable(); - -void -sys_interrupt_disable(); - -void -sys_interrupt_append_handler(SystemInterruptHandler *handler); - -void -sys_interrupt_prepend_handler(SystemInterruptHandler *handler); - -void -sys_interrupt_remove_handler(SystemInterruptHandler *handler); - -#endif /* __SYS_INTERRUPT_H__QIHZ66NP8K__ */ From 09b15558a15a4c440b82cdd1070e8d54c8ef64f8 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 20 Apr 2009 18:31:13 -0400 Subject: [PATCH 084/471] preliminary interrupts. looks like it is entering the isr but isn't leaving correctly. --- Makefile | 19 +++++++++++---- boot.lds | 1 + include/sys-interrupt.h | 10 ++++---- src/start.S | 2 +- tests/blink-blue.c | 3 +++ tests/blink-green.c | 3 +++ tests/blink-red.c | 3 +++ tests/blink-white.c | 3 +++ tests/nvm-read.c | 4 ++++ tests/rftest-rx.c | 3 +++ tests/rftest-tx.c | 3 +++ tests/romimg.c | 3 +++ tests/tmr-ints.c | 52 +++++++++++++++++++++++++++++------------ tests/tmr.c | 3 +++ tests/uart1-loopback.c | 3 +++ 15 files changed, 89 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index 563cd2a01..dc29499dc 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ include $(TOPDIR)/config.mk ######################################################################### # blink objects....order is important (i.e. start must be first) -AOBJS = +AOBJS = COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) TESTS = $(wildcard tests/*.c) TARGETS = $(patsubst %.c,%.o,$(TESTS)) @@ -58,12 +58,23 @@ ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) .PRECIOUS: $(COBJS) $(TARGETS) $(TESTS:.c=.obj) -all: src/start.o $(ALL) +all: src/start.o src/isr.o $(ALL) tests/nvm-read.obj: src/maca.o src/nvm.o tests/rftest-rx.obj: src/maca.o src/nvm.o tests/rftest-tx.obj: src/maca.o src/nvm.o -tests/tmr-ints.c: src/interrupt-utils.o src/sys-interrupt.o +tests/tmr-ints.obj: src/interrupt-utils.o src/sys-interrupt.o src/isr.o + +NOTHUMB_CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ + -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ + -I$(TOPDIR)/include \ + -fno-builtin -ffreestanding -nostdinc -isystem \ + $(gccincdir) -pipe +NOTHUMB_CPPFLAGS_EXTRA = -march=armv4t -mlong-calls -mthumb-interwork -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ + + +src/isr.o: src/isr.c + $(CC) $(NOTHUMB_CPPFLAGS) $(NOTHUMB_CPPFLAGS_EXTRA) -c -o $@ $< %.srec: %.obj $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ @@ -77,7 +88,7 @@ tests/tmr-ints.c: src/interrupt-utils.o src/sys-interrupt.o %.dis: %.obj $(OBJDUMP) -SD $< > $@ -%.obj: $(LDSCRIPT) %.o +%.obj: $(LDSCRIPT) %.o src/interrupt-utils.o $(LD) $(LDFLAGS) $(AOBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ -Map $*.map $^ -o $@ diff --git a/boot.lds b/boot.lds index 5b6ae7aef..0d4bb767b 100644 --- a/boot.lds +++ b/boot.lds @@ -33,6 +33,7 @@ SECTIONS .text : { src/start.o (.text) + src/isr.o (.text) *(.text) } diff --git a/include/sys-interrupt.h b/include/sys-interrupt.h index 433db4a0f..cdaf8d2c3 100644 --- a/include/sys-interrupt.h +++ b/include/sys-interrupt.h @@ -1,8 +1,7 @@ -#ifndef __SYS_INTERRUPT_H__QIHZ66NP8K__ -#define __SYS_INTERRUPT_H__QIHZ66NP8K__ +#ifndef __SYS_INTERRUPT_H +#define __SYS_INTERRUPT_H - -/* Returns true if it handled an activbe interrupt */ +/* Returns true if it handled an active interrupt */ typedef int (*SystemInterruptFunc)(); typedef struct _SystemInterruptHandler SystemInterruptHandler; @@ -12,7 +11,6 @@ struct _SystemInterruptHandler SystemInterruptFunc handler; }; - void sys_interrupt_enable(); @@ -28,4 +26,4 @@ sys_interrupt_prepend_handler(SystemInterruptHandler *handler); void sys_interrupt_remove_handler(SystemInterruptHandler *handler); -#endif /* __SYS_INTERRUPT_H__QIHZ66NP8K__ */ +#endif /* __SYS_INTERRUPT_H */ diff --git a/src/start.S b/src/start.S index ec6f93444..2e17e424e 100644 --- a/src/start.S +++ b/src/start.S @@ -197,7 +197,7 @@ not_used: .align 5 irq: - + b isr .align 5 fiq: diff --git a/tests/blink-blue.c b/tests/blink-blue.c index dda1750bf..a0d59dee7 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -5,6 +5,9 @@ #define DELAY 400000 #include "embedded_types.h" +#include "isr.h" + +no_isrs(); __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/blink-green.c b/tests/blink-green.c index 2a7aa7add..c7bed04eb 100644 --- a/tests/blink-green.c +++ b/tests/blink-green.c @@ -5,6 +5,9 @@ #define DELAY 400000 #include "embedded_types.h" +#include "isr.h" + +no_isrs(); __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/blink-red.c b/tests/blink-red.c index 0780033e0..f1da55417 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -5,6 +5,9 @@ #define DELAY 400000 #include "embedded_types.h" +#include "isr.h" + +no_isrs(); __attribute__ ((section ("startup"))) void main(void) { *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; diff --git a/tests/blink-white.c b/tests/blink-white.c index 87a7f6720..18ba37308 100644 --- a/tests/blink-white.c +++ b/tests/blink-white.c @@ -5,6 +5,9 @@ #define DELAY 400000 #include "embedded_types.h" +#include "isr.h" + +no_isrs(); __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/nvm-read.c b/tests/nvm-read.c index efbd22f64..12c2e44cc 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -29,6 +29,10 @@ void put_hex32(uint32_t x); const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; +#include "isr.h" + +no_isrs(); + #define NBYTES 1024 __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index aeecbb35e..fb91e349e 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -77,6 +77,9 @@ void toggle_led(void) { } } +#include "isr.h" +no_isrs(); + __attribute__ ((section ("startup"))) void main(void) { uint8_t c; diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index de688bdef..b6f607934 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -112,6 +112,9 @@ void fill_data(void) { } } +#include "isr.h" +no_isrs(); + __attribute__ ((section ("startup"))) void main(void) { uint8_t c; diff --git a/tests/romimg.c b/tests/romimg.c index 51ba68d8b..5b2d346eb 100644 --- a/tests/romimg.c +++ b/tests/romimg.c @@ -28,6 +28,9 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', #define DUMP_LEN 0x00014000 //#define DUMP_LEN 16 +#include "isr.h" +no_isrs(); + __attribute__ ((section ("startup"))) void main(void) { volatile uint32_t i; diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index 22c12a75d..acb324c64 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -47,12 +47,40 @@ #define reg16(x) (*(volatile uint16_t *)(x)) #include "embedded_types.h" +#include "sys-interrupt.h" + +#include "isr.h" + +volatile uint8_t led; + +#define LED_VAL 0x00000300 +#define led_init() do { reg32(GPIO_PAD_DIR0) = LED_VAL; } while(0); +#define led_on() do { led = 1; reg32(GPIO_DATA0) = LED_VAL; } while(0); +#define led_off() do { led = 0; reg32(GPIO_DATA0) = 0x00000000; } while(0); + +void toggle_led(void) { + if(0 == led) { + led_on(); + led = 1; + + } else { + led_off(); + } +} + +void tmr_isr(void) { + + toggle_led(); + reg16(TMR0_SCTRL) = 0; + reg16(TMR0_CSCTRL) = 0x0040; /* clear compare flag */ + +} __attribute__ ((section ("startup"))) void main(void) { /* pin direction */ - reg32(GPIO_PAD_DIR0) = 0x00000400; + led_init(); /* timer setup */ /* CTRL */ @@ -66,7 +94,8 @@ void main(void) { #define OUT_MODE 0 /* OFLAG is asserted while counter is active */ reg16(TMR_ENBL) = 0; /* tmrs reset to enabled */ - reg16(TMR0_SCTRL) = 0; + reg16(TMR0_SCTRL) = 0; + reg16(TMR0_CSCTRL) =0x0040; reg16(TMR0_LOAD) = 0; /* reload to zero */ reg16(TMR0_COMP_UP) = 18750; /* trigger a reload at the end */ reg16(TMR0_CMPLD1) = 18750; /* compare 1 triggered reload level, 10HZ maybe? */ @@ -74,19 +103,12 @@ void main(void) { reg16(TMR0_CTRL) = (COUNT_MODE<<13) | (PRIME_SRC<<9) | (SEC_SRC<<7) | (ONCE<<6) | (LEN<<5) | (DIR<<4) | (CO_INIT<<3) | (OUT_MODE); reg16(TMR_ENBL) = 0xf; /* enable all the timers --- why not? */ + led_on(); + + enable_tmr_irq(); + enableIRQ(); + while(1) { - - /* blink on */ - reg32(GPIO_DATA0) = 0x00000400; - - while((reg16(TMR0_SCTRL)>>15) == 0) { continue; } - reg16(TMR0_SCTRL) = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ - - /* blink off */ - reg32(GPIO_DATA0) = 0x00000000; - - while((reg16(TMR0_SCTRL)>>15) == 0) { continue; } - reg16(TMR0_SCTRL) = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ - + /* sit here and let the interrupts do the work */ }; } diff --git a/tests/tmr.c b/tests/tmr.c index 22c12a75d..d09912e63 100644 --- a/tests/tmr.c +++ b/tests/tmr.c @@ -48,6 +48,9 @@ #include "embedded_types.h" +#include "isr.h" +no_isrs(); + __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index ce516d7ad..b3eec3940 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -11,6 +11,9 @@ #include "embedded_types.h" +#include "isr.h" +no_isrs(); + __attribute__ ((section ("startup"))) void main(void) { /* Restore UART regs. to default */ From 10fdafbcb2dfdb87af5aadea13f0138b85891d59 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 20 Apr 2009 18:38:45 -0400 Subject: [PATCH 085/471] initial isr. has problems. --- include/isr.h | 22 ++++++++++++++++++++++ src/isr.c | 20 ++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 include/isr.h create mode 100644 src/isr.c diff --git a/include/isr.h b/include/isr.h new file mode 100644 index 000000000..4939d42c4 --- /dev/null +++ b/include/isr.h @@ -0,0 +1,22 @@ +#ifndef ISR_H +#define ISR_H + +#include "embedded_types.h" + +#define INTBASE (0x80020000) +#define INTENNUM_OFF (0x8) +#define INTSRC_OFF (0x30) + +#define INTENNUM INTBASE + INTENNUM_OFF +#define INTSRC INTBASE + INTSRC_OFF + + +#define no_isrs() no_tmr_isr(); + +#define enable_tmr_irq() *(volatile uint32_t *)(INTENNUM) +#define no_tmr_isr() void tmr_isr(void) { return; } + +extern void tmr_isr(void); + +#endif + diff --git a/src/isr.c b/src/isr.c new file mode 100644 index 000000000..5b27130a0 --- /dev/null +++ b/src/isr.c @@ -0,0 +1,20 @@ +#include "embedded_types.h" +#include "interrupt-utils.h" +#include "isr.h" + +#define reg32(x) (*(volatile uint32_t *)(x)) + +__attribute__ ((interrupt("IRQ"))) +void isr(void) +{ +// ISR_ENTRY(); + /* check for TMR0 interrupt */ +// tmr_isr(); // led turns off if I have this, indicating that the isr does jump to tmr_isr +// if(reg32(INTSRC) & (1<<5)) { tmr_isr(); } +// asm("SUBS PC,R14_IRQ,#4") +// enableIRQ(); // I think this is necessary, but the LED never turns off when I have this +// ISR_EXIT(); // behavior doesn't change if I have this or not. + +/* putting anything in here breaks the other code :( */ + +} From bdbf279d0f8d9b3f470be5150f33e4c9b0bade3a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 22 Apr 2009 14:55:40 -0400 Subject: [PATCH 086/471] tmr imts works. I'm not thrilled with how the interrupts and modes are set... but I'm not sure what to do about it. The big problem is that I have to be in user mode to service irqs, but I can't enable and disable F and I in usermode. All I can do is an swi and then have handler which lets me enable or disable them (like a mini-syscall). --- Makefile | 6 +-- config.mk | 2 +- include/isr.h | 2 +- src/isr.c | 8 ++-- src/start.S | 112 +++++++++++++++++++++++++++++------------------ tests/tmr-ints.c | 22 ++++++++-- 6 files changed, 98 insertions(+), 54 deletions(-) diff --git a/Makefile b/Makefile index dc29499dc..1f12d73dd 100644 --- a/Makefile +++ b/Makefile @@ -63,14 +63,14 @@ all: src/start.o src/isr.o $(ALL) tests/nvm-read.obj: src/maca.o src/nvm.o tests/rftest-rx.obj: src/maca.o src/nvm.o tests/rftest-tx.obj: src/maca.o src/nvm.o -tests/tmr-ints.obj: src/interrupt-utils.o src/sys-interrupt.o src/isr.o +tests/tmr-ints.obj: src/isr.o NOTHUMB_CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ -I$(TOPDIR)/include \ -fno-builtin -ffreestanding -nostdinc -isystem \ $(gccincdir) -pipe -NOTHUMB_CPPFLAGS_EXTRA = -march=armv4t -mlong-calls -mthumb-interwork -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ +NOTHUMB_CPPFLAGS_EXTRA = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ #-mthumb-interwork src/isr.o: src/isr.c @@ -88,7 +88,7 @@ src/isr.o: src/isr.c %.dis: %.obj $(OBJDUMP) -SD $< > $@ -%.obj: $(LDSCRIPT) %.o src/interrupt-utils.o +%.obj: $(LDSCRIPT) %.o #src/interrupt-utils.o $(LD) $(LDFLAGS) $(AOBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ -Map $*.map $^ -o $@ diff --git a/config.mk b/config.mk index 3fb973e44..b5f092959 100644 --- a/config.mk +++ b/config.mk @@ -26,7 +26,7 @@ # clean the slate ... PLATFORM_LDFLAGS = PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -ffunction-sections -msoft-float -PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mcallee-super-interworking -mthumb -mthumb-interwork -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ +PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ #-mcallee-super-interworking -mthumb -mthumb-interwork TEXT_BASE = 0x00400000 ######################################################################### diff --git a/include/isr.h b/include/isr.h index 4939d42c4..0583ffc7e 100644 --- a/include/isr.h +++ b/include/isr.h @@ -13,7 +13,7 @@ #define no_isrs() no_tmr_isr(); -#define enable_tmr_irq() *(volatile uint32_t *)(INTENNUM) +#define enable_tmr_irq() *(volatile uint32_t *)(INTENNUM) = 5; #define no_tmr_isr() void tmr_isr(void) { return; } extern void tmr_isr(void); diff --git a/src/isr.c b/src/isr.c index 5b27130a0..913374208 100644 --- a/src/isr.c +++ b/src/isr.c @@ -1,15 +1,15 @@ #include "embedded_types.h" -#include "interrupt-utils.h" +//#include "interrupt-utils.h" #include "isr.h" #define reg32(x) (*(volatile uint32_t *)(x)) -__attribute__ ((interrupt("IRQ"))) +//__attribute__ ((interrupt("IRQ"))) void isr(void) { // ISR_ENTRY(); /* check for TMR0 interrupt */ -// tmr_isr(); // led turns off if I have this, indicating that the isr does jump to tmr_isr + tmr_isr(); // led turns off if I have this, indicating that the isr does jump to tmr_isr // if(reg32(INTSRC) & (1<<5)) { tmr_isr(); } // asm("SUBS PC,R14_IRQ,#4") // enableIRQ(); // I think this is necessary, but the LED never turns off when I have this @@ -17,4 +17,6 @@ void isr(void) /* putting anything in here breaks the other code :( */ +// asm("ldmfd sp!, {r0-r12,lr}"); +// enableIRQ(); } diff --git a/src/start.S b/src/start.S index 2e17e424e..cbed1189a 100644 --- a/src/start.S +++ b/src/start.S @@ -23,15 +23,33 @@ * MA 02111-1307 USA */ +/* Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs */ + + .equ I_BIT, 0x80 /* when I bit is set, IRQ is disabled */ + .equ F_BIT, 0x40 /* when F bit is set, FIQ is disabled */ + + .equ USR_MODE, 0x10 + .equ FIQ_MODE, 0x11 + .equ IRQ_MODE, 0x12 + .equ SVC_MODE, 0x13 + .equ ABT_MODE, 0x17 + .equ UND_MODE, 0x1B + .equ SYS_MODE, 0x1F + .equ usr_stack_size, 256*4 + .equ irq_stack_size, 128*4 + .equ fiq_stack_size, 128*4 + .equ und_stack_size, 32*4 + .equ abt_stack_size, 32*4 + .equ sup_stack_size, 32*4 + /* ************************************************************************* * * Jump vector table as in table 3.1 in [1] * ************************************************************************* - */ - + */ .set base, . .set _rom_data_init, 0x108d0 @@ -72,7 +90,37 @@ ROM_var_end: .word 0 .code 32 .align _begin: + + ldr r1,=_system_stack + msr cpsr_c,#(SVC_MODE | I_BIT | F_BIT) + add r1,r1,#sup_stack_size + mov sp,r1 + + msr cpsr_c,#(IRQ_MODE | I_BIT | F_BIT) + add r1,r1,#irq_stack_size + mov sp,r1 + + msr cpsr_c,#(FIQ_MODE | I_BIT | F_BIT) + add r1,r1,#fiq_stack_size + mov sp,r1 + + msr cpsr_c,#(ABT_MODE | I_BIT | F_BIT) + add r1,r1,#abt_stack_size + mov sp,r1 + + msr cpsr_c,#(UND_MODE | I_BIT | F_BIT) + add r1,r1,#und_stack_size + mov sp,r1 + +// msr cpsr_c,#(USR_MODE | I_BIT | F_BIT) +// add r1,r1,#usr_stack_size +// mov sp,r1 + + bl _rom_data_init+.-base + msr cpsr_c,#(SVC_MODE) // turn on interrupts --- for debug only + msr cpsr_c,#(USR_MODE) // turn on interrupts --- for debug only +// swi b main _undefined_instruction: .word undefined_instruction @@ -82,9 +130,8 @@ _data_abort: .word data_abort _not_used: .word not_used _irq: .word irq _fiq: .word fiq - .balignl 16,0xdeadbeef - - + .balignl 16,0xdeadbeef + /* ************************************************************************* * @@ -105,6 +152,10 @@ _TEXT_BASE: _armboot_start: .word _start +_system_stack: + . = . + usr_stack_size + irq_stack_size + fiq_stack_size + und_stack_size + abt_stack_size + sup_stack_size + + /* * These are defined in the board-specific linker script. */ @@ -118,6 +169,8 @@ _bss_end: _start_armboot: .word main + + /* ************************************************************************* * @@ -139,42 +192,6 @@ cpu_init_crit: ************************************************************************* */ -@ -@ IRQ stack frame. -@ -#define S_FRAME_SIZE 72 - -#define S_OLD_R0 68 -#define S_PSR 64 -#define S_PC 60 -#define S_LR 56 -#define S_SP 52 - -#define S_IP 48 -#define S_FP 44 -#define S_R10 40 -#define S_R9 36 -#define S_R8 32 -#define S_R7 28 -#define S_R6 24 -#define S_R5 20 -#define S_R4 16 -#define S_R3 12 -#define S_R2 8 -#define S_R1 4 -#define S_R0 0 - -#define MODE_SVC 0x13 -#define I_BIT 0x80 - - - .macro get_irq_stack @ setup IRQ stack - ldr sp, IRQ_STACK_START - .endm - - .macro get_fiq_stack @ setup FIQ stack - ldr sp, FIQ_STACK_START - .endm /* * exception handlers @@ -197,8 +214,18 @@ not_used: .align 5 irq: + push {lr} + movs lr,pc b isr - .align 5 + pop {lr} + subs pc,r14,#4 // suggested irq return cmd +// STMFD sp!, {r0-r12,lr} +// MOVNE lr,pc +// ldr r0, =isr +// BX r0 +// LDMFD r13!, {r0-r12,r14} +// MOVS PC, R14 +// subs pc, r14, #4 fiq: .align 5 @@ -206,3 +233,4 @@ fiq: .globl reset_cpu reset_cpu: mov pc, r0 + diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index acb324c64..1fc7fe024 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -47,7 +47,7 @@ #define reg16(x) (*(volatile uint16_t *)(x)) #include "embedded_types.h" -#include "sys-interrupt.h" +//#include "sys-interrupt.h" #include "isr.h" @@ -76,9 +76,22 @@ void tmr_isr(void) { } + +/* void enIRQ(void) { */ +/* asm volatile ( */ +/* ".code 32;" */ +/* "msr cpsr_c,#0x10;" */ +/* ".code 16;" */ +/* ); */ +/* } */ + + __attribute__ ((section ("startup"))) void main(void) { +// *(volatile uint32_t *)0x80020010 = 0x20; +// *(volatile uint32_t *)0x80020034 = 0xffff; //force an int. + /* pin direction */ led_init(); @@ -94,8 +107,8 @@ void main(void) { #define OUT_MODE 0 /* OFLAG is asserted while counter is active */ reg16(TMR_ENBL) = 0; /* tmrs reset to enabled */ - reg16(TMR0_SCTRL) = 0; - reg16(TMR0_CSCTRL) =0x0040; + reg16(TMR0_SCTRL) = 0; + reg16(TMR0_CSCTRL) =0x0040; reg16(TMR0_LOAD) = 0; /* reload to zero */ reg16(TMR0_COMP_UP) = 18750; /* trigger a reload at the end */ reg16(TMR0_CMPLD1) = 18750; /* compare 1 triggered reload level, 10HZ maybe? */ @@ -106,7 +119,8 @@ void main(void) { led_on(); enable_tmr_irq(); - enableIRQ(); + +// enIRQ(); while(1) { /* sit here and let the interrupts do the work */ From 9f31e40864c81cb018fbc60c7805cc5b6822cf31 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 22 Apr 2009 15:14:04 -0400 Subject: [PATCH 087/471] only go into usermode in the interrupt test... still sorting out the best way to handle this. --- src/start.S | 1 - tests/tmr-ints.c | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/start.S b/src/start.S index cbed1189a..683e79226 100644 --- a/src/start.S +++ b/src/start.S @@ -119,7 +119,6 @@ _begin: bl _rom_data_init+.-base msr cpsr_c,#(SVC_MODE) // turn on interrupts --- for debug only - msr cpsr_c,#(USR_MODE) // turn on interrupts --- for debug only // swi b main diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index 1fc7fe024..f72222f40 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -122,6 +122,10 @@ void main(void) { // enIRQ(); + /* go into user mode to handle IRQs */ + /* disabling interrupts is now difficult */ + asm("msr cpsr_c,#(0x10)"); + while(1) { /* sit here and let the interrupts do the work */ }; From 8964c60d9a62a93e06e6c493b9126c6cd16a678a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 22 Apr 2009 16:04:50 -0400 Subject: [PATCH 088/471] enabling thumb only enter user mode in tmr-ints. usermode breaks rftests. --- Makefile | 2 +- config.mk | 2 +- src/start.S | 10 +++++----- tests/tmr-ints.c | 6 ++++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 1f12d73dd..4803b5e1b 100644 --- a/Makefile +++ b/Makefile @@ -70,7 +70,7 @@ NOTHUMB_CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -I$(TOPDIR)/include \ -fno-builtin -ffreestanding -nostdinc -isystem \ $(gccincdir) -pipe -NOTHUMB_CPPFLAGS_EXTRA = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ #-mthumb-interwork +NOTHUMB_CPPFLAGS_EXTRA = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mthumb-interwork src/isr.o: src/isr.c diff --git a/config.mk b/config.mk index b5f092959..c21f9b280 100644 --- a/config.mk +++ b/config.mk @@ -26,7 +26,7 @@ # clean the slate ... PLATFORM_LDFLAGS = PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -ffunction-sections -msoft-float -PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ #-mcallee-super-interworking -mthumb -mthumb-interwork +PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mcallee-super-interworking -mthumb -mthumb-interwork TEXT_BASE = 0x00400000 ######################################################################### diff --git a/src/start.S b/src/start.S index 683e79226..bc991ad7d 100644 --- a/src/start.S +++ b/src/start.S @@ -113,13 +113,13 @@ _begin: mov sp,r1 // msr cpsr_c,#(USR_MODE | I_BIT | F_BIT) -// add r1,r1,#usr_stack_size -// mov sp,r1 - bl _rom_data_init+.-base - msr cpsr_c,#(SVC_MODE) // turn on interrupts --- for debug only -// swi + msr cpsr_c,#(SVC_MODE) // turn on interrupts --- for debug only +// msr cpsr_c,#(USR_MODE) // turn on interrupts --- for debug only +// add r1,r1,#usr_stack_size +// mov sp,r1 + b main _undefined_instruction: .word undefined_instruction diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index f72222f40..e93b142e1 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -124,8 +124,10 @@ void main(void) { /* go into user mode to handle IRQs */ /* disabling interrupts is now difficult */ - asm("msr cpsr_c,#(0x10)"); - + asm(".code 32;" + "msr cpsr_c,#(0x10);" + ".code 16; "); + while(1) { /* sit here and let the interrupts do the work */ }; From f421cde7f8fe94a715bf14c1c9a8fb8dc4a4387d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 22 Apr 2009 16:11:32 -0400 Subject: [PATCH 089/471] changed tmr test to blink purple --- tests/tmr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/tmr.c b/tests/tmr.c index d09912e63..f83107acb 100644 --- a/tests/tmr.c +++ b/tests/tmr.c @@ -55,7 +55,7 @@ __attribute__ ((section ("startup"))) void main(void) { /* pin direction */ - reg32(GPIO_PAD_DIR0) = 0x00000400; + reg32(GPIO_PAD_DIR0) = 0x00000500; /* timer setup */ /* CTRL */ @@ -80,7 +80,7 @@ void main(void) { while(1) { /* blink on */ - reg32(GPIO_DATA0) = 0x00000400; + reg32(GPIO_DATA0) = 0x00000500; while((reg16(TMR0_SCTRL)>>15) == 0) { continue; } reg16(TMR0_SCTRL) = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ From 2288c9e2ff93cc7e04856a01013ce231105c9133 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 24 Apr 2009 15:42:15 -0400 Subject: [PATCH 090/471] better way to do irqs --- Makefile | 2 +- boot.lds | 8 ++++---- src/isr.c | 5 +++-- src/start.S | 19 ++++++------------- 4 files changed, 14 insertions(+), 20 deletions(-) diff --git a/Makefile b/Makefile index 4803b5e1b..6ddfe5c22 100644 --- a/Makefile +++ b/Makefile @@ -88,7 +88,7 @@ src/isr.o: src/isr.c %.dis: %.obj $(OBJDUMP) -SD $< > $@ -%.obj: $(LDSCRIPT) %.o #src/interrupt-utils.o +%.obj: $(LDSCRIPT) %.o src/isr.o $(LD) $(LDFLAGS) $(AOBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ -Map $*.map $^ -o $@ diff --git a/boot.lds b/boot.lds index 0d4bb767b..c71b37ede 100644 --- a/boot.lds +++ b/boot.lds @@ -28,13 +28,13 @@ ENTRY(_start) SECTIONS { . = 0x00400000; - + . = ALIGN(4); .text : { - src/start.o (.text) - src/isr.o (.text) - *(.text) + src/start.o (.text) + *(.irq) + *(.text) } . = ALIGN(4); diff --git a/src/isr.c b/src/isr.c index 913374208..00d7c3207 100644 --- a/src/isr.c +++ b/src/isr.c @@ -4,8 +4,9 @@ #define reg32(x) (*(volatile uint32_t *)(x)) -//__attribute__ ((interrupt("IRQ"))) -void isr(void) +__attribute__ ((section (".irq"))) +__attribute__ ((interrupt("IRQ"))) +void irq(void) { // ISR_ENTRY(); /* check for TMR0 interrupt */ diff --git a/src/start.S b/src/start.S index bc991ad7d..ff6f06fcd 100644 --- a/src/start.S +++ b/src/start.S @@ -212,19 +212,12 @@ not_used: .align 5 -irq: - push {lr} - movs lr,pc - b isr - pop {lr} - subs pc,r14,#4 // suggested irq return cmd -// STMFD sp!, {r0-r12,lr} -// MOVNE lr,pc -// ldr r0, =isr -// BX r0 -// LDMFD r13!, {r0-r12,r14} -// MOVS PC, R14 -// subs pc, r14, #4 +//irq: +// push {lr} +// movs lr,pc +// b isr +// pop {lr} +// subs pc,r14,#4 // suggested irq return cmd fiq: .align 5 From d869766664cc75386c4bcc4e5ff4e28a684bbfe3 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 24 Apr 2009 16:04:04 -0400 Subject: [PATCH 091/471] using weak links for individual isrs --- include/isr.h | 6 +----- src/isr.c | 4 +++- tests/blink-blue.c | 2 -- tests/blink-green.c | 2 -- tests/blink-red.c | 2 -- tests/blink-white.c | 2 -- tests/nvm-read.c | 2 -- tests/rftest-rx.c | 4 +--- tests/rftest-tx.c | 4 +--- tests/romimg.c | 1 - tests/tmr.c | 2 -- tests/uart1-loopback.c | 2 -- 12 files changed, 6 insertions(+), 27 deletions(-) diff --git a/include/isr.h b/include/isr.h index 0583ffc7e..22e1772be 100644 --- a/include/isr.h +++ b/include/isr.h @@ -10,13 +10,9 @@ #define INTENNUM INTBASE + INTENNUM_OFF #define INTSRC INTBASE + INTSRC_OFF - -#define no_isrs() no_tmr_isr(); - #define enable_tmr_irq() *(volatile uint32_t *)(INTENNUM) = 5; -#define no_tmr_isr() void tmr_isr(void) { return; } -extern void tmr_isr(void); +extern void tmr_isr(void) __attribute__((weak)); #endif diff --git a/src/isr.c b/src/isr.c index 00d7c3207..323fd971f 100644 --- a/src/isr.c +++ b/src/isr.c @@ -10,7 +10,9 @@ void irq(void) { // ISR_ENTRY(); /* check for TMR0 interrupt */ - tmr_isr(); // led turns off if I have this, indicating that the isr does jump to tmr_isr + if(tmr_isr != NULL) { + tmr_isr(); // led turns off if I have this, indicating that the isr does jump to tmr_isr + } // if(reg32(INTSRC) & (1<<5)) { tmr_isr(); } // asm("SUBS PC,R14_IRQ,#4") // enableIRQ(); // I think this is necessary, but the LED never turns off when I have this diff --git a/tests/blink-blue.c b/tests/blink-blue.c index a0d59dee7..c732d9193 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -7,8 +7,6 @@ #include "embedded_types.h" #include "isr.h" -no_isrs(); - __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/blink-green.c b/tests/blink-green.c index c7bed04eb..3531ea4f5 100644 --- a/tests/blink-green.c +++ b/tests/blink-green.c @@ -7,8 +7,6 @@ #include "embedded_types.h" #include "isr.h" -no_isrs(); - __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/blink-red.c b/tests/blink-red.c index f1da55417..bdb9d44bf 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -7,8 +7,6 @@ #include "embedded_types.h" #include "isr.h" -no_isrs(); - __attribute__ ((section ("startup"))) void main(void) { *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; diff --git a/tests/blink-white.c b/tests/blink-white.c index 18ba37308..87d456d12 100644 --- a/tests/blink-white.c +++ b/tests/blink-white.c @@ -7,8 +7,6 @@ #include "embedded_types.h" #include "isr.h" -no_isrs(); - __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 12c2e44cc..54a912904 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -31,8 +31,6 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', #include "isr.h" -no_isrs(); - #define NBYTES 1024 __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index fb91e349e..e2c2a1491 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -14,6 +14,7 @@ #include "maca.h" #include "embedded_types.h" +#include "isr.h" #define reg(x) (*(volatile uint32_t *)(x)) @@ -77,9 +78,6 @@ void toggle_led(void) { } } -#include "isr.h" -no_isrs(); - __attribute__ ((section ("startup"))) void main(void) { uint8_t c; diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index b6f607934..485baaa5a 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -14,6 +14,7 @@ #include "maca.h" #include "embedded_types.h" +#include "isr.h" #define reg(x) (*(volatile uint32_t *)(x)) @@ -112,9 +113,6 @@ void fill_data(void) { } } -#include "isr.h" -no_isrs(); - __attribute__ ((section ("startup"))) void main(void) { uint8_t c; diff --git a/tests/romimg.c b/tests/romimg.c index 5b2d346eb..e29330e13 100644 --- a/tests/romimg.c +++ b/tests/romimg.c @@ -29,7 +29,6 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', //#define DUMP_LEN 16 #include "isr.h" -no_isrs(); __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/tmr.c b/tests/tmr.c index f83107acb..8e28ede74 100644 --- a/tests/tmr.c +++ b/tests/tmr.c @@ -47,9 +47,7 @@ #define reg16(x) (*(volatile uint16_t *)(x)) #include "embedded_types.h" - #include "isr.h" -no_isrs(); __attribute__ ((section ("startup"))) void main(void) { diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index b3eec3940..21a3bbcb5 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -10,9 +10,7 @@ #define UART1_BR 0x80005018 #include "embedded_types.h" - #include "isr.h" -no_isrs(); __attribute__ ((section ("startup"))) void main(void) { From c0bb4cb81098d57d6ebf6b2c98002d91dc140c7b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 24 Apr 2009 17:07:15 -0400 Subject: [PATCH 092/471] slight timer cleanup --- include/timer.h | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ include/utils.h | 7 +++++ tests/tmr.c | 45 ++------------------------ 3 files changed, 93 insertions(+), 43 deletions(-) create mode 100644 include/timer.h create mode 100644 include/utils.h diff --git a/include/timer.h b/include/timer.h new file mode 100644 index 000000000..1c9166dbf --- /dev/null +++ b/include/timer.h @@ -0,0 +1,84 @@ +/* Timer registers are all 16-bit wide with 16-bit access only */ +#define TMR_OFFSET (0x20) +#define TMR_BASE (0x80007000) +#define TMR0_BASE (TMR_BASE) +#define TMR1_BASE (TMR_BASE + TMR_OFFSET*1) +#define TMR2_BASE (TMR_BASE + TMR_OFFSET*2) +#define TMR3_BASE (TMR_BASE + TMR_OFFSET*3) + +#define TMR_REGOFF_COMP1 (0x0) +#define TMR_REGOFF_COMP2 (0x2) +#define TMR_REGOFF_CAPT (0x4) +#define TMR_REGOFF_LOAD (0x6) +#define TMR_REGOFF_HOLD (0x8) +#define TMR_REGOFF_CNTR (0xa) +#define TMR_REGOFF_CTRL (0xc) +#define TMR_REGOFF_SCTRL (0xe) +#define TMR_REGOFF_CMPLD1 (0x10) +#define TMR_REGOFF_CMPLD2 (0x12) +#define TMR_REGOFF_CSCTRL (0x14) +#define TMR_REGOFF_ENBL (0x1e) + +/* one enable register to rule them all */ +#define TMR_ENBL TMR0_BASE + TMR_REGOFF_ENBL + +/* Timer 0 registers */ +#define TMR0_COMP1 (TMR0_BASE + TMR_REGOFF_COMP1) +#define TMR0_COMP_UP TMR0_COMP1 +#define TMR0_COMP2 (TMR0_BASE + TMR_REGOFF_COMP2) +#define TMR0_COMP_DOWN TMR0_COMP2 +#define TMR0_CAPT (TMR0_BASE + TMR_REGOFF_CAPT) +#define TMR0_LOAD (TMR0_BASE + TMR_REGOFF_LOAD) +#define TMR0_HOLD (TMR0_BASE + TMR_REGOFF_HOLD) +#define TMR0_CNTR (TMR0_BASE + TMR_REGOFF_CTRL) +#define TMR0_CTRL (TMR0_BASE + TMR_REGOFF_CTRL) +#define TMR0_SCTRL (TMR0_BASE + TMR_REGOFF_SCTRL) +#define TMR0_CMPLD1 (TMR0_BASE + TMR_REGOFF_CMPLD1) +#define TMR0_CMPLD2 (TMR0_BASE + TMR_REGOFF_CMPLD2) +#define TMR0_CSCTRL (TMR0_BASE + TMR_REGOFF_CSCTRL) + +/* Timer 1 registers */ +#define TMR1_COMP1 (TMR1_BASE + TMR_REGOFF_COMP1) +#define TMR1_COMP_UP TMR1_COMP1 +#define TMR1_COMP2 (TMR1_BASE + TMR_REGOFF_COMP2) +#define TMR1_COMP_DOWN TMR1_COMP2 +#define TMR1_CAPT (TMR1_BASE + TMR_REGOFF_CAPT) +#define TMR1_LOAD (TMR1_BASE + TMR_REGOFF_LOAD) +#define TMR1_HOLD (TMR1_BASE + TMR_REGOFF_HOLD) +#define TMR1_CNTR (TMR1_BASE + TMR_REGOFF_CTRL) +#define TMR1_CTRL (TMR1_BASE + TMR_REGOFF_CTRL) +#define TMR1_SCTRL (TMR1_BASE + TMR_REGOFF_SCTRL) +#define TMR1_CMPLD1 (TMR1_BASE + TMR_REGOFF_CMPLD1) +#define TMR1_CMPLD2 (TMR1_BASE + TMR_REGOFF_CMPLD2) +#define TMR1_CSCTRL (TMR1_BASE + TMR_REGOFF_CSCTRL) + +/* Timer 2 registers */ +#define TMR2_COMP1 (TMR2_BASE + TMR_REGOFF_COMP1) +#define TMR2_COMP_UP TMR2_COMP1 +#define TMR2_COMP2 (TMR2_BASE + TMR_REGOFF_COMP2) +#define TMR2_COMP_DOWN TMR2_COMP2 +#define TMR2_CAPT (TMR2_BASE + TMR_REGOFF_CAPT) +#define TMR2_LOAD (TMR2_BASE + TMR_REGOFF_LOAD) +#define TMR2_HOLD (TMR2_BASE + TMR_REGOFF_HOLD) +#define TMR2_CNTR (TMR2_BASE + TMR_REGOFF_CTRL) +#define TMR2_CTRL (TMR2_BASE + TMR_REGOFF_CTRL) +#define TMR2_SCTRL (TMR2_BASE + TMR_REGOFF_SCTRL) +#define TMR2_CMPLD1 (TMR2_BASE + TMR_REGOFF_CMPLD1) +#define TMR2_CMPLD2 (TMR2_BASE + TMR_REGOFF_CMPLD2) +#define TMR2_CSCTRL (TMR2_BASE + TMR_REGOFF_CSCTRL) + +/* Timer 3 registers */ +#define TMR3_COMP1 (TMR3_BASE + TMR_REGOFF_COMP1) +#define TMR3_COMP_UP TMR3_COMP1 +#define TMR3_COMP2 (TMR3_BASE + TMR_REGOFF_COMP2) +#define TMR3_COMP_DOWN TMR3_COMP2 +#define TMR3_CAPT (TMR3_BASE + TMR_REGOFF_CAPT) +#define TMR3_LOAD (TMR3_BASE + TMR_REGOFF_LOAD) +#define TMR3_HOLD (TMR3_BASE + TMR_REGOFF_HOLD) +#define TMR3_CNTR (TMR3_BASE + TMR_REGOFF_CTRL) +#define TMR3_CTRL (TMR3_BASE + TMR_REGOFF_CTRL) +#define TMR3_SCTRL (TMR3_BASE + TMR_REGOFF_SCTRL) +#define TMR3_CMPLD1 (TMR3_BASE + TMR_REGOFF_CMPLD1) +#define TMR3_CMPLD2 (TMR3_BASE + TMR_REGOFF_CMPLD2) +#define TMR3_CSCTRL (TMR3_BASE + TMR_REGOFF_CSCTRL) + diff --git a/include/utils.h b/include/utils.h new file mode 100644 index 000000000..87bbf5bb4 --- /dev/null +++ b/include/utils.h @@ -0,0 +1,7 @@ +#ifndef UTILS_H +#define UTILS_H + +#define reg32(x) (*(volatile uint32_t *)(x)) +#define reg16(x) (*(volatile uint16_t *)(x)) + +#endif diff --git a/tests/tmr.c b/tests/tmr.c index 8e28ede74..348cc4fd0 100644 --- a/tests/tmr.c +++ b/tests/tmr.c @@ -1,53 +1,12 @@ -/* Timer registers are all 16-bit wide with 16-bit access only */ -#define TMR_OFFSET (0x20) -#define TMR_BASE (0x80007000) -#define TMR0_BASE (TMR_BASE) -#define TMR1_BASE (TMR_BASE + TMR_OFFSET*1) -#define TMR2_BASE (TMR_BASE + TMR_OFFSET*2) -#define TMR3_BASE (TMR_BASE + TMR_OFFSET*3) - -#define TMR_REGOFF_COMP1 (0x0) -#define TMR_REGOFF_COMP2 (0x2) -#define TMR_REGOFF_CAPT (0x4) -#define TMR_REGOFF_LOAD (0x6) -#define TMR_REGOFF_HOLD (0x8) -#define TMR_REGOFF_CNTR (0xa) -#define TMR_REGOFF_CTRL (0xc) -#define TMR_REGOFF_SCTRL (0xe) -#define TMR_REGOFF_CMPLD1 (0x10) -#define TMR_REGOFF_CMPLD2 (0x12) -#define TMR_REGOFF_CSCTRL (0x14) -#define TMR_REGOFF_ENBL (0x1e) - -/* Timer 0 registers */ -#define TMR0_COMP1 (TMR0_BASE + TMR_REGOFF_COMP1) -#define TMR0_COMP_UP TMR0_COMP1 -#define TMR0_COMP2 (TMR0_BASE + TMR_REGOFF_COMP2) -#define TMR0_COMP_DOWN TMR0_COMP2 -#define TMR0_CAPT (TMR0_BASE + TMR_REGOFF_CAPT) -#define TMR0_LOAD (TMR0_BASE + TMR_REGOFF_LOAD) -#define TMR0_HOLD (TMR0_BASE + TMR_REGOFF_HOLD) -#define TMR0_CNTR (TMR0_BASE + TMR_REGOFF_CTRL) -#define TMR0_CTRL (TMR0_BASE + TMR_REGOFF_CTRL) -#define TMR0_SCTRL (TMR0_BASE + TMR_REGOFF_SCTRL) -#define TMR0_CMPLD1 (TMR0_BASE + TMR_REGOFF_CMPLD1) -#define TMR0_CMPLD2 (TMR0_BASE + TMR_REGOFF_CMPLD2) -#define TMR0_CSCTRL (TMR0_BASE + TMR_REGOFF_CSCTRL) - -/* one enable register to rule them all */ -#define TMR_ENBL TMR0_BASE + TMR_REGOFF_ENBL - #define MBAR_GPIO 0x80000000 #define GPIO_PAD_DIR0 0x80000000 #define GPIO_DATA0 0x80000008 #define UART1_DATA 0x80005008 #define DELAY 400000 -#define reg32(x) (*(volatile uint32_t *)(x)) -#define reg16(x) (*(volatile uint16_t *)(x)) - #include "embedded_types.h" -#include "isr.h" +#include "utils.h" +#include "timer.h" __attribute__ ((section ("startup"))) void main(void) { From f7cc777ee177634676bcbd5e90c53c45101e3e50 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 1 May 2009 16:47:02 -0400 Subject: [PATCH 093/471] fixed typo --- everything still works. --- src/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/maca.c b/src/maca.c index 2aa852f17..6f0608aba 100644 --- a/src/maca.c +++ b/src/maca.c @@ -68,7 +68,7 @@ void reset_maca(void) */ /* tested and is good */ -#define RF_BASE 0x80009a000 +#define RF_BASE 0x80009a00 void flyback_init(void) { uint32_t val8, or; From 8b88d3467848665885f883b3354658272e963c8f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 3 May 2009 18:50:35 -0400 Subject: [PATCH 094/471] address for nvm write. --- src/nvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nvm.c b/src/nvm.c index c4d54d513..0aa5bf249 100644 --- a/src/nvm.c +++ b/src/nvm.c @@ -1,5 +1,5 @@ #include "nvm.h" - +/*NVM_Write 0x00006ec5*/ volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType) = 0x00006cb9; volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes) = 0x00006d69; volatile void(*nvm_setsvar)(uint32_t zero_for_awesome) = 0x00007085; From b6eb7ca6ff4171779b8da8aaff54d876a2584aff Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 3 May 2009 18:50:47 -0400 Subject: [PATCH 095/471] send big packets. --- tests/rftest-tx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 485baaa5a..854e946ff 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -18,7 +18,7 @@ #define reg(x) (*(volatile uint32_t *)(x)) -#define DELAY 100000 +#define DELAY 200000 #define DATA 0x00401000; #define NL "\033[K\r\n" @@ -59,7 +59,7 @@ uint32_t ackBox[10]; maca_control = (control_prm | control_asap | control_seq_rx); \ }while(FALSE) -#define PAYLOAD_LEN 8 /* not including the extra 4 bytes for len+fcs+somethingelse */ +#define PAYLOAD_LEN 96 /* not including the extra 4 bytes for len+fcs+somethingelse */ /* maca dmatx needs extra 4 bytes for checksum */ /* needs + 4 bytes for len(1 byte) + fcs(2 bytes) + somethingelse */ #define command_xcvr_tx() \ From 48732b5379975bce6cdf3fba03e79b614d90c83a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 5 May 2009 13:43:53 -0400 Subject: [PATCH 096/471] nvm write test --- Makefile | 1 + include/nvm.h | 1 + src/nvm.c | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6ddfe5c22..6337154cb 100644 --- a/Makefile +++ b/Makefile @@ -61,6 +61,7 @@ ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) all: src/start.o src/isr.o $(ALL) tests/nvm-read.obj: src/maca.o src/nvm.o +tests/nvm-write.obj: src/maca.o src/nvm.o tests/rftest-rx.obj: src/maca.o src/nvm.o tests/rftest-tx.obj: src/maca.o src/nvm.o tests/tmr-ints.obj: src/isr.o diff --git a/include/nvm.h b/include/nvm.h index e76313c40..7b31d3b1d 100644 --- a/include/nvm.h +++ b/include/nvm.h @@ -38,5 +38,6 @@ typedef enum /* need to be in a THUMB block before calling them */ extern volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType); extern volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes); +extern volatile nvmErr_t (*nvm_write)(nvmInterface_t nvmInterface, nvmType_t nvmType ,void *pSrc, uint32_t address, uint32_t numBytes); extern volatile void(*nvm_setsvar)(uint32_t zero_for_awesome); #endif //NVM_H diff --git a/src/nvm.c b/src/nvm.c index 0aa5bf249..2a4426dfe 100644 --- a/src/nvm.c +++ b/src/nvm.c @@ -1,5 +1,6 @@ #include "nvm.h" -/*NVM_Write 0x00006ec5*/ + volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType) = 0x00006cb9; volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes) = 0x00006d69; +volatile nvmErr_t (*nvm_write)(nvmInterface_t nvmInterface, nvmType_t nvmType ,void *pSrc, uint32_t address, uint32_t numBytes) = 0x00006ec5; volatile void(*nvm_setsvar)(uint32_t zero_for_awesome) = 0x00007085; From d231cd0120926c16eb4ace08301c5c09cea8c9ce Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 5 May 2009 15:18:28 -0400 Subject: [PATCH 097/471] this version of nvm-write works because it erases the sector first before writting it. --- include/nvm.h | 4 ++ src/nvm.c | 1 + tests/nvm-write.c | 147 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 152 insertions(+) create mode 100644 tests/nvm-write.c diff --git a/include/nvm.h b/include/nvm.h index 7b31d3b1d..6059bfb8f 100644 --- a/include/nvm.h +++ b/include/nvm.h @@ -39,5 +39,9 @@ typedef enum extern volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType); extern volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes); extern volatile nvmErr_t (*nvm_write)(nvmInterface_t nvmInterface, nvmType_t nvmType ,void *pSrc, uint32_t address, uint32_t numBytes); +/* sector bit field selects which sector to erase */ +/* SST flash has 32 sectors 4096 bytes each */ +/* bit 0 is the first sector, bit 31 is the last */ +extern volatile nvmErr_t (*nvm_erase)(nvmInterface_t nvmInterface, nvmType_t nvmType ,uint32_t sectorBitfield); extern volatile void(*nvm_setsvar)(uint32_t zero_for_awesome); #endif //NVM_H diff --git a/src/nvm.c b/src/nvm.c index 2a4426dfe..2f47123e1 100644 --- a/src/nvm.c +++ b/src/nvm.c @@ -3,4 +3,5 @@ volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType) = 0x00006cb9; volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes) = 0x00006d69; volatile nvmErr_t (*nvm_write)(nvmInterface_t nvmInterface, nvmType_t nvmType ,void *pSrc, uint32_t address, uint32_t numBytes) = 0x00006ec5; +volatile nvmErr_t (*nvm_erase)(nvmInterface_t nvmInterface, nvmType_t nvmType ,uint32_t sectorBitfield) = 0x00006e05; volatile void(*nvm_setsvar)(uint32_t zero_for_awesome) = 0x00007085; diff --git a/tests/nvm-write.c b/tests/nvm-write.c new file mode 100644 index 000000000..d4b0e7d28 --- /dev/null +++ b/tests/nvm-write.c @@ -0,0 +1,147 @@ +#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ + +#define BASE_UART1 0x80005000 +#define UART1_CON 0x80005000 +#define UART1_STAT 0x80005004 +#define UART1_DATA 0x80005008 +#define UR1CON 0x8000500c +#define UT1CON 0x80005010 +#define UART1_CTS 0x80005014 +#define UART1_BR 0x80005018 + +#define GPIO_PAD_DIR0 0x80000000 +#define GPIO_DATA0 0x80000008 + +#include "embedded_types.h" +#include "nvm.h" +#include "maca.h" + +#define reg(x) (*(volatile uint32_t *)(x)) + +#define DELAY 400000 + +void putc(uint8_t c); +void puts(uint8_t *s); +void put_hex(uint8_t x); +void put_hex16(uint16_t x); +void put_hex32(uint32_t x); + +const uint8_t hex[16]={'0','1','2','3','4','5','6','7', + '8','9','a','b','c','d','e','f'}; + +#include "isr.h" + +#define NBYTES 8 +#define WRITE_ADDR 0x1e000 +//#define WRITE_ADDR 0x0 +#define WRITEVAL0 0x00000004 +#define WRITEVAL1 0x00000000 + +__attribute__ ((section ("startup"))) +void main(void) { + nvmType_t type=0; + nvmErr_t err; + uint32_t buf[NBYTES/4]; + uint32_t i; + + *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; + + /* Restore UART regs. to default */ + /* in case there is still bootloader state leftover */ + + reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + + /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ + #define INC 767 + #define MOD 9999 + reg(UART1_BR) = INC<<16 | MOD; + + /* see Section 11.5.1.2 Alternate Modes */ + /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ + /* From the datasheet: "The peripheral function will control operation of the pad IF */ + /* THE PERIPHERAL IS ENABLED. */ + reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ + reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + + vreg_init(); + +// puts("CRM status: 0x"); +// put_hex32(reg(0x80003018)); +// puts("\n\r"); + + puts("Detecting internal nvm\n\r"); + + err = nvm_detect(gNvmInternalInterface_c, &type); + + puts("nvm_detect returned: 0x"); + put_hex(err); + puts(" type is: 0x"); + put_hex32(type); + puts("\n\r"); + + + buf[0] = WRITEVAL0; + buf[1] = WRITEVAL1; + + err = nvm_erase(gNvmInternalInterface_c, type, 0x40000000); /* erase sector 30 --- sector 31 is the 'secret zone' */ + puts("nvm_erase returned: 0x"); + put_hex(err); + puts("\n\r"); + + err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)buf, WRITE_ADDR, NBYTES); + puts("nvm_write returned: 0x"); + put_hex(err); + puts("\n\r"); + puts("writing\n\r"); + for(i=0; i> 4]); + putc(hex[x & 15]); +} + +void put_hex16(uint16_t x) +{ + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} + +void put_hex32(uint32_t x) +{ + put_hex((x >> 24) & 0xFF); + put_hex((x >> 16) & 0xFF); + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} From be410aceafd0a21ff27a8cce0918a8f03d54c49f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 5 May 2009 16:24:47 -0400 Subject: [PATCH 098/471] cleanup --- src/isr.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/isr.c b/src/isr.c index 323fd971f..de7c8e1b7 100644 --- a/src/isr.c +++ b/src/isr.c @@ -1,5 +1,4 @@ #include "embedded_types.h" -//#include "interrupt-utils.h" #include "isr.h" #define reg32(x) (*(volatile uint32_t *)(x)) @@ -8,18 +7,7 @@ __attribute__ ((section (".irq"))) __attribute__ ((interrupt("IRQ"))) void irq(void) { -// ISR_ENTRY(); - /* check for TMR0 interrupt */ if(tmr_isr != NULL) { - tmr_isr(); // led turns off if I have this, indicating that the isr does jump to tmr_isr + tmr_isr(); } -// if(reg32(INTSRC) & (1<<5)) { tmr_isr(); } -// asm("SUBS PC,R14_IRQ,#4") -// enableIRQ(); // I think this is necessary, but the LED never turns off when I have this -// ISR_EXIT(); // behavior doesn't change if I have this or not. - -/* putting anything in here breaks the other code :( */ - -// asm("ldmfd sp!, {r0-r12,lr}"); -// enableIRQ(); } From 102149cd91ab6e1b42a597ecb9913d7bc15aae2b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 5 May 2009 16:25:46 -0400 Subject: [PATCH 099/471] change write address to be the same as what I'm using as my RIME address. --- tests/nvm-write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/nvm-write.c b/tests/nvm-write.c index d4b0e7d28..33ddfb4ac 100644 --- a/tests/nvm-write.c +++ b/tests/nvm-write.c @@ -34,7 +34,7 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', #define NBYTES 8 #define WRITE_ADDR 0x1e000 //#define WRITE_ADDR 0x0 -#define WRITEVAL0 0x00000004 +#define WRITEVAL0 0x00000001 #define WRITEVAL1 0x00000000 __attribute__ ((section ("startup"))) From c0b912dca2b21920a0e94f9afaf4e092d68536d3 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 8 May 2009 12:32:14 -0400 Subject: [PATCH 100/471] flash and burn completely untested. --- Makefile | 1 + mc1322x-load.pl | 77 ++++++++++++++-------- tests/flasher.c | 165 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 216 insertions(+), 27 deletions(-) create mode 100644 tests/flasher.c diff --git a/Makefile b/Makefile index 6337154cb..7c3873052 100644 --- a/Makefile +++ b/Makefile @@ -60,6 +60,7 @@ ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) all: src/start.o src/isr.o $(ALL) +tests/flasher.obj: src/maca.o src/nvm.o tests/nvm-read.obj: src/maca.o src/nvm.o tests/nvm-write.obj: src/maca.o src/nvm.o tests/rftest-rx.obj: src/maca.o src/nvm.o diff --git a/mc1322x-load.pl b/mc1322x-load.pl index b5b4a5391..2863a39b3 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -7,11 +7,13 @@ use Getopt::Long; use strict; my $filename = ''; +my $second = ''; my $term = '/dev/ttyUSB0'; my $baud = '115200'; my $verbose; -GetOptions ('file=s' => \$filename, +GetOptions ('file=s' => \$filename, + 'secondfile=s' => \$second, 'terminal=s' => \$term, 'verbose' => \$verbose, 'baud=s' => \$baud); @@ -20,7 +22,9 @@ $| = 1; if($filename eq '') { print "Example usage: mc1322x-load.pl -f foo.bin -t /dev/ttyS0 -b 9600\n"; + print " or : mc1322x-load.pl -f flasher.bin -s flashme.bin\n"; print " -f required: binary file to load\n"; + print " -s optional: secondary binary file to send\n"; print " -t default: /dev/ttyUSB0\n"; print " -b default: 115200\n"; exit; @@ -29,7 +33,7 @@ if($filename eq '') { my $ob = Device::SerialPort->new ($term) or die "Can't start $term\n"; # next test will die at runtime unless $ob -$baud = 115200 if (!defined($baud)); +if(($filename eq '')) die "you must specify a file with -f\n"; $ob->baudrate($baud); $ob->parity('none'); @@ -37,36 +41,55 @@ $ob->databits(8); $ob->stopbits(1); $ob->handshake("rts"); -my $c; +my $s = 0; -$ob->write(pack('C','0')); + SEND: + do { + + my $c; -my $ret = ''; -until($ret eq 'CONNECT') { - $c = $ob->input; - $ret .= $c; -} -print $ret . "\n"; + if($s == 1) { print "performing secondary send\n"; } + + $ob->write(pack('C','0')); + + my $ret = ''; + my $test; + if($s == 1) { + $test = 'ready'; + } else { + $test = 'CONNECT'; + } -if (defined $filename) { + until($ret eq $test) { + $c = $ob->input; + $ret .= $c; + } + print $ret . "\n"; + + + if (defined $filename) { + + my $size = -s $filename; + + print ("Size: $size bytes\n"); + $ob->write(pack('V',$size)); + + open(FILE, $filename) or die($!); + print "Sending $filename\n"; + + my $i = 1; + while(read(FILE, $c, 1)) { + print unpack('H',$c) . unpack('h',$c) if $verbose; + print "\n" if ($verbose && ($i%4==0)); + $i++; + select undef, undef, undef, 0.001; + $ob->write($c); + } + } - my $size = -s $filename; - - print ("Size: $size bytes\n"); - $ob->write(pack('V',$size)); - - open(FILE, $filename) or die($!); - print "Sending $filename\n"; - - my $i = 1; - while(read(FILE, $c, 1)) { - print unpack('H',$c) . unpack('h',$c) if $verbose; - print "\n" if ($verbose && ($i%4==0)); - $i++; - select undef, undef, undef, 0.001; - $ob->write($c); - } + if(-e $second) {$s=1; $filename = $second; continue SEND; } + } print "done.\n"; diff --git a/tests/flasher.c b/tests/flasher.c new file mode 100644 index 000000000..1bd01ea77 --- /dev/null +++ b/tests/flasher.c @@ -0,0 +1,165 @@ +#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ + +#define BASE_UART1 0x80005000 +#define UART1_CON 0x80005000 +#define UART1_STAT 0x80005004 +#define UART1_DATA 0x80005008 +#define UR1CON 0x8000500c +#define UT1CON 0x80005010 +#define UART1_CTS 0x80005014 +#define UART1_BR 0x80005018 + +#define GPIO_PAD_DIR0 0x80000000 +#define GPIO_DATA0 0x80000008 + +#include "embedded_types.h" +#include "nvm.h" +#include "maca.h" + +#define reg(x) (*(volatile uint32_t *)(x)) + +#define DELAY 400000 + +void putc(uint8_t c); +void puts(uint8_t *s); +void put_hex(uint8_t x); +void put_hex16(uint16_t x); +void put_hex32(uint32_t x); +uint8_t getc(); + +const uint8_t hex[16]={'0','1','2','3','4','5','6','7', + '8','9','a','b','c','d','e','f'}; + +#include "isr.h" + +#define NBYTES 8 +#define WRITE_ADDR 0x1e000 +//#define WRITE_ADDR 0x0 +#define WRITEVAL0 0x00000001 +#define WRITEVAL1 0x00000000 + +__attribute__ ((section ("startup"))) +void main(void) { + nvmType_t type=0; + nvmErr_t err; + uint8_t c; + uint32_t buf[NBYTES/4]; + uint32_t i; + uint32_t len=0; + + *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; + + /* Restore UART regs. to default */ + /* in case there is still bootloader state leftover */ + + reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + + /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ + #define INC 767 + #define MOD 9999 + reg(UART1_BR) = INC<<16 | MOD; + + /* see Section 11.5.1.2 Alternate Modes */ + /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ + /* From the datasheet: "The peripheral function will control operation of the pad IF */ + /* THE PERIPHERAL IS ENABLED. */ + reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ + reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + + vreg_init(); + +// puts("CRM status: 0x"); +// put_hex32(reg(0x80003018)); +// puts("\n\r"); + + puts("Detecting internal nvm\n\r"); + + err = nvm_detect(gNvmInternalInterface_c, &type); + + puts("nvm_detect returned: 0x"); + put_hex(err); + puts(" type is: 0x"); + put_hex32(type); + puts("\n\r"); + + + /* erase the flash */ + err = nvm_erase(gNvmInternalInterface_c, type, 0x4fffffff); + puts("nvm_erase returned: 0x"); + put_hex(err); + puts("\n\r"); + + /* say we are ready */ +ready: + len = 0; + puts("ready"); + + /* read the length */ + for(i=0; i<4; i++) { + c = getc(); + /* bail if the first byte of the length is zero */ + if((i==0) && (c==0)) goto ready; + len += (len<<(i*8)); + puts("len: "); + put_hex32(len); + puts("\n\r"); + } + + /* write the OKOK magic */ + buf[0] = 'O'; buf[1] = 'K'; buf[2] = 'O'; buf[3] = 'K'; + err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)buf, 0, 4); + + /* read a byte, write a byte */ + /* byte at a time will make this work as a contiki process better */ + /* for OTAP */ + for(i=0; i> 4]); + putc(hex[x & 15]); +} + +void put_hex16(uint16_t x) +{ + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} + +void put_hex32(uint32_t x) +{ + put_hex((x >> 24) & 0xFF); + put_hex((x >> 16) & 0xFF); + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} From e18588dd1a720103759a52be9971a135829ad8d8 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 8 May 2009 15:10:21 -0400 Subject: [PATCH 101/471] first try at dual stage loading. --- mc1322x-load.pl | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index b5b4a5391..797119a5e 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -1,8 +1,9 @@ #!/usr/bin/perl -w -use Device::SerialPort 0.05; +use Device::SerialPort; use Term::ReadKey; use Getopt::Long; +use Time::HiRes qw(usleep); use strict; @@ -36,17 +37,30 @@ $ob->parity('none'); $ob->databits(8); $ob->stopbits(1); $ob->handshake("rts"); +$ob->read_const_time(1000); # 1 second per unfulfilled "read" call my $c; +my $count; +my $ret = ''; $ob->write(pack('C','0')); - -my $ret = ''; until($ret eq 'CONNECT') { - $c = $ob->input; + ($count,$c) = $ob->read(1); + if ($count == 0) { + print '.'; + $ob->write(pack('C','0')); + next; + } $ret .= $c; } -print $ret . "\n"; +print $ret . "\n"; + + +#until($ret eq 'CONNECT') { +# $c = $ob->input; +# $ret .= $c; +#} +#print $ret . "\n"; if (defined $filename) { @@ -62,15 +76,21 @@ if (defined $filename) { my $i = 1; while(read(FILE, $c, 1)) { print unpack('H',$c) . unpack('h',$c) if $verbose; - print "\n" if ($verbose && ($i%4==0)); +# print "\n" if ($verbose && ($i%4==0)); $i++; - select undef, undef, undef, 0.001; +# usleep(44); # this is as fast is it can go... + usleep(50); # this is as fast is it can go... +# select undef, undef, undef, 0.0001; $ob->write($c); } } print "done.\n"; +while(1) { + print $ob->input; +} + $ob -> close or die "Close failed: $!\n"; ReadMode 0; undef $ob; # closes port AND frees memory in perl From 4730dc048d49d3ecaa9ff0f9174e3fdb56aa5c2e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 8 May 2009 15:28:34 -0400 Subject: [PATCH 102/471] fixed syntax errors. --- mc1322x-load.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 2863a39b3..f454736bd 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -33,7 +33,7 @@ if($filename eq '') { my $ob = Device::SerialPort->new ($term) or die "Can't start $term\n"; # next test will die at runtime unless $ob -if(($filename eq '')) die "you must specify a file with -f\n"; +if ($filename eq '') { die "you must specify a file with -f\n"; } $ob->baudrate($baud); $ob->parity('none'); @@ -68,7 +68,7 @@ my $s = 0; print $ret . "\n"; - if (defined $filename) { + if (-e $filename) { my $size = -s $filename; @@ -88,9 +88,9 @@ my $s = 0; } } - if(-e $second) {$s=1; $filename = $second; continue SEND; } + if(-e $second) {$s=1; $filename = $second; next SEND; } -} +}; print "done.\n"; From b7b99c15f2c9a36683d7328d269e8d142d22e763 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 8 May 2009 15:10:21 -0400 Subject: [PATCH 103/471] first try at dual stage loading. --- mc1322x-load.pl | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index f454736bd..21bdd28cb 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -1,8 +1,9 @@ #!/usr/bin/perl -w -use Device::SerialPort 0.05; +use Device::SerialPort; use Term::ReadKey; use Getopt::Long; +use Time::HiRes qw(usleep); use strict; @@ -40,21 +41,25 @@ $ob->parity('none'); $ob->databits(8); $ob->stopbits(1); $ob->handshake("rts"); +$ob->read_const_time(1000); # 1 second per unfulfilled "read" call +<<<<<<< HEAD:mc1322x-load.pl my $s = 0; SEND: do { my $c; - + my $count; + my $ret = ''; + if($s == 1) { print "performing secondary send\n"; } $ob->write(pack('C','0')); my $ret = ''; my $test; - + if($s == 1) { $test = 'ready'; } else { @@ -62,11 +67,15 @@ my $s = 0; } until($ret eq $test) { - $c = $ob->input; + ($count,$c) = $ob->read(1); + if ($count == 0) { + print '.'; + $ob->write(pack('C','0')); + next; + } $ret .= $c; } - print $ret . "\n"; - + print $ret . "\n"; if (-e $filename) { @@ -81,9 +90,8 @@ my $s = 0; my $i = 1; while(read(FILE, $c, 1)) { print unpack('H',$c) . unpack('h',$c) if $verbose; - print "\n" if ($verbose && ($i%4==0)); $i++; - select undef, undef, undef, 0.001; + usleep(50); # this is as fast is it can go... $ob->write($c); } } @@ -94,6 +102,10 @@ my $s = 0; print "done.\n"; +while(1) { + print $ob->input; +} + $ob -> close or die "Close failed: $!\n"; ReadMode 0; undef $ob; # closes port AND frees memory in perl From 311b2f49c4fa83a08a9d47654bc92a645e4dac3b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 8 May 2009 15:33:05 -0400 Subject: [PATCH 104/471] finish merge of fast with repeat with second stage loading --- mc1322x-load.pl | 1 - 1 file changed, 1 deletion(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 21bdd28cb..76c852a66 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -43,7 +43,6 @@ $ob->stopbits(1); $ob->handshake("rts"); $ob->read_const_time(1000); # 1 second per unfulfilled "read" call -<<<<<<< HEAD:mc1322x-load.pl my $s = 0; SEND: From 3bea9ac2f0cdb4b6b34dc65937abcc83bf222cba Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 8 May 2009 17:27:24 -0400 Subject: [PATCH 105/471] this version of flasher works. --- tests/flasher.c | 73 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 23 deletions(-) diff --git a/tests/flasher.c b/tests/flasher.c index 1bd01ea77..ec60b0ed3 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -26,6 +26,7 @@ void put_hex(uint8_t x); void put_hex16(uint16_t x); void put_hex32(uint32_t x); uint8_t getc(); +void flushrx(); const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; @@ -42,10 +43,10 @@ __attribute__ ((section ("startup"))) void main(void) { nvmType_t type=0; nvmErr_t err; - uint8_t c; - uint32_t buf[NBYTES/4]; - uint32_t i; - uint32_t len=0; + volatile uint8_t c; + volatile uint32_t buf[NBYTES/4]; + volatile uint32_t i; + volatile uint32_t len=0; *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; @@ -72,49 +73,69 @@ void main(void) { // put_hex32(reg(0x80003018)); // puts("\n\r"); - puts("Detecting internal nvm\n\r"); +// puts("Detecting internal nvm\n\r"); err = nvm_detect(gNvmInternalInterface_c, &type); +/* puts("nvm_detect returned: 0x"); put_hex(err); puts(" type is: 0x"); put_hex32(type); puts("\n\r"); - +*/ /* erase the flash */ - err = nvm_erase(gNvmInternalInterface_c, type, 0x4fffffff); +// err = nvm_erase(gNvmInternalInterface_c, type, 0x4fffffff); + err = nvm_erase(gNvmInternalInterface_c, 1, 0x4fffffff); + +/* puts("nvm_erase returned: 0x"); put_hex(err); puts("\n\r"); +*/ /* say we are ready */ -ready: len = 0; puts("ready"); + flushrx(); /* read the length */ for(i=0; i<4; i++) { c = getc(); /* bail if the first byte of the length is zero */ - if((i==0) && (c==0)) goto ready; - len += (len<<(i*8)); - puts("len: "); - put_hex32(len); - puts("\n\r"); + len += (c<<(i*8)); } +// puts("len: "); +// put_hex32(len); +// puts("\n\r"); + /* write the OKOK magic */ - buf[0] = 'O'; buf[1] = 'K'; buf[2] = 'O'; buf[3] = 'K'; - err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)buf, 0, 4); + ((uint8_t *)buf)[0] = 'O'; ((uint8_t *)buf)[1] = 'K'; ((uint8_t *)buf)[2] = 'O'; ((uint8_t *)buf)[3] = 'K'; +// ((uint8_t *)buf)[3] = 'x'; +// err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)buf, 0, 4); + err = nvm_write(gNvmInternalInterface_c, 1, (uint8_t *)buf, 0, 4); +// puts("nvm_write returned: 0x"); +// put_hex(err); +// puts("\n\r"); + + /* write the length */ + err = nvm_write(gNvmInternalInterface_c, 1, (uint8_t *)&len, 4, 4); /* read a byte, write a byte */ /* byte at a time will make this work as a contiki process better */ /* for OTAP */ for(i=0; i Date: Fri, 8 May 2009 17:29:01 -0400 Subject: [PATCH 106/471] this version of mc1322x can flash code with flasher. --- mc1322x-load.pl | 100 +++++++++++++++++++++++++----------------------- 1 file changed, 52 insertions(+), 48 deletions(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 76c852a66..c17c005ad 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -45,59 +45,63 @@ $ob->read_const_time(1000); # 1 second per unfulfilled "read" call my $s = 0; - SEND: - do { - - my $c; - my $count; - my $ret = ''; - - if($s == 1) { print "performing secondary send\n"; } - - $ob->write(pack('C','0')); - - my $ret = ''; - my $test; - - if($s == 1) { - $test = 'ready'; - } else { - $test = 'CONNECT'; - } - - until($ret eq $test) { - ($count,$c) = $ob->read(1); - if ($count == 0) { - print '.'; - $ob->write(pack('C','0')); - next; - } - $ret .= $c; +while(1) { + + my $c; my $count; my $ret = ''; my $test=''; + + if($s == 1) { print "performing secondary send\n"; } + + $ob->write(pack('C','0')); + + if($s == 1) { + $test = 'ready'; + } else { + $test = 'CONNECT'; + } + + until($ret eq $test) { + ($count,$c) = $ob->read(1); + if ($count == 0) { + print '.'; + $ob->write(pack('C','0')); + next; } + $ret .= $c; print $ret . "\n"; + } + print $ret . "\n"; + + if (-e $filename) { - if (-e $filename) { - - my $size = -s $filename; - - print ("Size: $size bytes\n"); - $ob->write(pack('V',$size)); - - open(FILE, $filename) or die($!); - print "Sending $filename\n"; - - my $i = 1; - while(read(FILE, $c, 1)) { - print unpack('H',$c) . unpack('h',$c) if $verbose; - $i++; - usleep(50); # this is as fast is it can go... - $ob->write($c); - } - } + my $size = -s $filename; - if(-e $second) {$s=1; $filename = $second; next SEND; } + print ("Size: $size bytes\n"); + $ob->write(pack('V',$size)); + + open(FILE, $filename) or die($!); + print "Sending $filename\n"; -}; + my $i = 1; + while(read(FILE, $c, 1)) { + $i++; + usleep(50); # this is as fast is it can go... + usleep(500) if ($s==1); + $ob->write($c); +# if($s==1) { +# ($count, $c) = $ob->read(1); +# print $c; +# } + } + } + + last if ($s==1); + if((-e $second)) { + $s=1; $filename = $second; + } else { + last; + } + +} print "done.\n"; From 6b77fe8c3726fa9a138bce77ace5d2e4c0047972 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 8 May 2009 17:41:24 -0400 Subject: [PATCH 107/471] flashing needs a little more time. --- mc1322x-load.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index c17c005ad..26c1a1012 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -85,7 +85,7 @@ while(1) { while(read(FILE, $c, 1)) { $i++; usleep(50); # this is as fast is it can go... - usleep(500) if ($s==1); + usleep(25) if ($s==1); $ob->write($c); # if($s==1) { # ($count, $c) = $ob->read(1); From cd973de3350906dc170df6b1e61ef23dca38238c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 8 May 2009 18:04:55 -0400 Subject: [PATCH 108/471] catch the aux. send. still need to parse it for something like: 0x1e000,0x11223344,0x55667788 --- tests/flasher.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/flasher.c b/tests/flasher.c index ec60b0ed3..da974608e 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -140,6 +140,8 @@ void main(void) { puts("flasher done\n\r"); + while(c=getc()) {putc(c);} + while(1) {continue;}; } From 002d63056baf143bf118b8f5432fb92e5aef281b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 8 May 2009 18:06:06 -0400 Subject: [PATCH 109/471] send aux data on the command line after writing the files. --- mc1322x-load.pl | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 26c1a1012..666801a68 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -17,19 +17,24 @@ GetOptions ('file=s' => \$filename, 'secondfile=s' => \$second, 'terminal=s' => \$term, 'verbose' => \$verbose, - 'baud=s' => \$baud); + 'baud=s' => \$baud, + ); $| = 1; if($filename eq '') { print "Example usage: mc1322x-load.pl -f foo.bin -t /dev/ttyS0 -b 9600\n"; - print " or : mc1322x-load.pl -f flasher.bin -s flashme.bin\n"; + print " or : mc1322x-load.pl -f flasher.bin -s flashme.bin 0x1e000,0x11223344,0x55667788\n"; print " -f required: binary file to load\n"; print " -s optional: secondary binary file to send\n"; print " -t default: /dev/ttyUSB0\n"; print " -b default: 115200\n"; + print " anything on the command line is sent serial device\n"; + print " after all of the files have been sent\n"; exit; } + +print @ARGV; my $ob = Device::SerialPort->new ($term) or die "Can't start $term\n"; # next test will die at runtime unless $ob @@ -49,7 +54,7 @@ while(1) { my $c; my $count; my $ret = ''; my $test=''; - if($s == 1) { print "performing secondary send\n"; } + if($s == 1) { print "secondary send...\n"; } $ob->write(pack('C','0')); @@ -67,7 +72,6 @@ while(1) { next; } $ret .= $c; - print $ret . "\n"; } print $ret . "\n"; @@ -87,10 +91,6 @@ while(1) { usleep(50); # this is as fast is it can go... usleep(25) if ($s==1); $ob->write($c); -# if($s==1) { -# ($count, $c) = $ob->read(1); -# print $c; -# } } } @@ -103,7 +103,13 @@ while(1) { } -print "done.\n"; +print "done sending files.\n"; + +print "sending " ; +print @ARGV; +print "\n"; + +$ob->write(@ARGV); while(1) { print $ob->input; From 60582e33bf8f0bbbcc8c760b4aa796cd2470ec5b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 9 May 2009 13:22:14 -0400 Subject: [PATCH 110/471] changed the test condition to match the end of the captured string. this is better in case there is junk at the beginning or if the first one is incomplete. also removed the debug ARGV print --- mc1322x-load.pl | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 666801a68..4034c2191 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -34,8 +34,6 @@ if($filename eq '') { exit; } -print @ARGV; - my $ob = Device::SerialPort->new ($term) or die "Can't start $term\n"; # next test will die at runtime unless $ob @@ -64,7 +62,7 @@ while(1) { $test = 'CONNECT'; } - until($ret eq $test) { + until($ret =~ /$test$/) { ($count,$c) = $ob->read(1); if ($count == 0) { print '.'; From d60cc72ac411f528a89c0f6d383d0cf24d6a4937 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 9 May 2009 14:42:07 -0400 Subject: [PATCH 111/471] terminate extra data string with a comma for flasher.c --- mc1322x-load.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 4034c2191..413d71f91 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -108,6 +108,7 @@ print @ARGV; print "\n"; $ob->write(@ARGV); +$ob->write(','); while(1) { print $ob->input; From a0db791175e7580f37ab89834994fa22665c83b1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 9 May 2009 14:43:17 -0400 Subject: [PATCH 112/471] add support for extra write data string. --- tests/flasher.c | 121 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 110 insertions(+), 11 deletions(-) diff --git a/tests/flasher.c b/tests/flasher.c index da974608e..475cde52b 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -20,24 +20,37 @@ #define DELAY 400000 +#define DEBUG 1 +#if DEBUG void putc(uint8_t c); void puts(uint8_t *s); void put_hex(uint8_t x); void put_hex16(uint16_t x); void put_hex32(uint32_t x); -uint8_t getc(); -void flushrx(); - const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; +#else +#define putc(...) +#define puts(...) +#define put_hex(...) +#define put_hex16(...) +#define put_hex32(...) +#endif + +uint8_t getc(void); +void flushrx(void); +uint32_t to_u32(char *c); #include "isr.h" -#define NBYTES 8 -#define WRITE_ADDR 0x1e000 -//#define WRITE_ADDR 0x0 -#define WRITEVAL0 0x00000001 -#define WRITEVAL1 0x00000000 +#define NBYTES 16 + +enum parse_states { + SCAN_X, + READ_CHARS, + PROCESS, + MAX_STATE, +}; __attribute__ ((section ("startup"))) void main(void) { @@ -47,6 +60,8 @@ void main(void) { volatile uint32_t buf[NBYTES/4]; volatile uint32_t i; volatile uint32_t len=0; + volatile uint32_t state = SCAN_X; + volatile uint32_t addr,data; *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; @@ -140,12 +155,55 @@ void main(void) { puts("flasher done\n\r"); - while(c=getc()) {putc(c);} + state = SCAN_X; addr=0; + while((c=getc())) { + putc(c); + if(state == SCAN_X) { + puts("scanx\n\r"); + /* read until we see an 'x' */ + if(c==0) { break; } + if(c!='x'){ continue; } + /* go to read_chars once we have an 'x' */ + state = READ_CHARS; + i = 0; + } + if(state == READ_CHARS) { + puts("readchars i "); + put_hex(i); + puts(" c "); + putc(c); + puts("\n\r"); + /* read all the chars up to a ',' */ + ((uint8_t *)buf)[i++] = c; + /* after reading a ',' */ + /* goto PROCESS state */ + if((c == ',') || (c == 0)) { state = PROCESS; } + } + if(state == PROCESS) { + puts("process\n\r"); + if(addr==0) { + /*interpret the string as the starting address */ + addr = to_u32((uint8_t *)buf); + } else { + /* string is data to write */ + data = to_u32((uint8_t *)buf); + puts("writing addr "); + put_hex32(addr); + puts(" data "); + put_hex32(data); + puts("\n\r"); + err = nvm_write(gNvmInternalInterface_c, 1, (uint8_t *)&data, addr, 4); + addr += 4; + } + /* look for the next 'x' */ + state=SCAN_X; + } + } while(1) {continue;}; } -void flushrx() +void flushrx(void) { volatile uint8_t c; while(reg(UR1CON) !=0) { @@ -153,7 +211,48 @@ void flushrx() } } -uint8_t getc() +/* Convert from ASCII hex. Returns + the value, or 16 if it was space/newline, or + 32 if some other character. */ +uint8_t from_hex(uint8_t ch) +{ + if(ch==' ' || ch=='\r' || ch=='\n') + return 16; + + if(ch < '0') + goto bad; + if(ch <= '9') + return ch - '0'; + ch |= 0x20; + if(ch < 'a') + goto bad; + if(ch <= 'f') + return ch - 'a' + 10; +bad: + return 32; +} + +uint32_t to_u32(char *c) +{ + volatile uint32_t ret=0; + volatile uint32_t i,val; + + /* c should be /x\d+,/ */ + i=1; /* skip x */ + while(c[i] != ',') { + puts("to_u32 on "); + putc(c[i]); + puts(" with i "); + put_hex(i); + puts("\n\r"); + ret = ret<<4; + val = from_hex(c[i++]); + ret += val; + } + return ret; +} + +uint8_t getc(void) { volatile uint8_t c; while(reg(UR1CON) == 0); From c68af8819f245744c169dcbc93f953a851465b60 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 9 May 2009 14:53:27 -0400 Subject: [PATCH 113/471] print appended , to the extra data --- mc1322x-load.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 413d71f91..8bd2b8b5b 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -105,7 +105,7 @@ print "done sending files.\n"; print "sending " ; print @ARGV; -print "\n"; +print ",\n"; $ob->write(@ARGV); $ob->write(','); From 2783ad26f0e0b2d020e465cfa42cf27f315d6ab3 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 9 May 2009 14:55:48 -0400 Subject: [PATCH 114/471] clean up debug. --- tests/flasher.c | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/tests/flasher.c b/tests/flasher.c index 475cde52b..74ec3b147 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -22,20 +22,21 @@ #define DEBUG 1 #if DEBUG -void putc(uint8_t c); -void puts(uint8_t *s); -void put_hex(uint8_t x); -void put_hex16(uint16_t x); -void put_hex32(uint32_t x); +#define dbg_putc(...) putc(__VA_ARGS__) +#define dbg_puts(...) puts(__VA_ARGS__) +#define dbg_put_hex(...) put_hex(__VA_ARGS__) +#define dbg_put_hex16(...) put_hex16(__VA_ARGS__) +#define dbg_put_hex32(...) put_hex32(__VA_ARGS__) +#else +#define dbg_putc(...) +#define dbg_puts(...) +#define dbg_put_hex(...) +#define dbg_put_hex16(...) +#define dbg_put_hex32(...) +#endif + const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; -#else -#define putc(...) -#define puts(...) -#define put_hex(...) -#define put_hex16(...) -#define put_hex32(...) -#endif uint8_t getc(void); void flushrx(void); @@ -157,9 +158,7 @@ void main(void) { state = SCAN_X; addr=0; while((c=getc())) { - putc(c); if(state == SCAN_X) { - puts("scanx\n\r"); /* read until we see an 'x' */ if(c==0) { break; } if(c!='x'){ continue; } @@ -168,11 +167,6 @@ void main(void) { i = 0; } if(state == READ_CHARS) { - puts("readchars i "); - put_hex(i); - puts(" c "); - putc(c); - puts("\n\r"); /* read all the chars up to a ',' */ ((uint8_t *)buf)[i++] = c; /* after reading a ',' */ @@ -180,7 +174,6 @@ void main(void) { if((c == ',') || (c == 0)) { state = PROCESS; } } if(state == PROCESS) { - puts("process\n\r"); if(addr==0) { /*interpret the string as the starting address */ addr = to_u32((uint8_t *)buf); @@ -240,11 +233,6 @@ uint32_t to_u32(char *c) /* c should be /x\d+,/ */ i=1; /* skip x */ while(c[i] != ',') { - puts("to_u32 on "); - putc(c[i]); - puts(" with i "); - put_hex(i); - puts("\n\r"); ret = ret<<4; val = from_hex(c[i++]); ret += val; @@ -261,6 +249,7 @@ uint8_t getc(void) return c; } + void putc(uint8_t c) { while(reg(UT1CON)==31); /* wait for there to be room in the buffer */ reg(UART1_DATA) = c; @@ -291,3 +280,4 @@ void put_hex32(uint32_t x) put_hex((x >> 8) & 0xFF); put_hex((x) & 0xFF); } + From 706da178076c7df78259bde6d0eff1e7548990c2 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 9 May 2009 15:30:54 -0400 Subject: [PATCH 115/471] clean up and flash type workaround. --- tests/flasher.c | 90 ++++++++++++++++++++++++++++++------------------ tests/nvm-read.c | 4 +-- 2 files changed, 59 insertions(+), 35 deletions(-) diff --git a/tests/flasher.c b/tests/flasher.c index 74ec3b147..931b335d6 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -20,6 +20,11 @@ #define DELAY 400000 +/* if both BOOT_OK and BOOT_SECURE are 0 then flash image will not be bootable */ +/* if both are 1 then flash image will be secure */ +#define BOOT_OK 1 +#define BOOT_SECURE 0 + #define DEBUG 1 #if DEBUG #define dbg_putc(...) putc(__VA_ARGS__) @@ -85,31 +90,26 @@ void main(void) { vreg_init(); -// puts("CRM status: 0x"); -// put_hex32(reg(0x80003018)); -// puts("\n\r"); - -// puts("Detecting internal nvm\n\r"); + dbg_puts("Detecting internal nvm\n\r"); err = nvm_detect(gNvmInternalInterface_c, &type); -/* - puts("nvm_detect returned: 0x"); - put_hex(err); - puts(" type is: 0x"); - put_hex32(type); - puts("\n\r"); -*/ + dbg_puts("nvm_detect returned: 0x"); + dbg_put_hex(err); + dbg_puts(" type is: 0x"); + dbg_put_hex32(type); + dbg_puts("\n\r"); /* erase the flash */ -// err = nvm_erase(gNvmInternalInterface_c, type, 0x4fffffff); - err = nvm_erase(gNvmInternalInterface_c, 1, 0x4fffffff); + err = nvm_erase(gNvmInternalInterface_c, type, 0x4fffffff); -/* - puts("nvm_erase returned: 0x"); - put_hex(err); - puts("\n\r"); -*/ + dbg_puts("nvm_erase returned: 0x"); + dbg_put_hex(err); + dbg_puts("\n\r"); + + dbg_puts(" type is: 0x"); + dbg_put_hex32(type); + dbg_puts("\n\r"); /* say we are ready */ len = 0; @@ -123,21 +123,32 @@ void main(void) { len += (c<<(i*8)); } -// puts("len: "); -// put_hex32(len); -// puts("\n\r"); + dbg_puts("len: "); + dbg_put_hex32(len); + dbg_puts("\n\r"); /* write the OKOK magic */ - ((uint8_t *)buf)[0] = 'O'; ((uint8_t *)buf)[1] = 'K'; ((uint8_t *)buf)[2] = 'O'; ((uint8_t *)buf)[3] = 'K'; -// ((uint8_t *)buf)[3] = 'x'; -// err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)buf, 0, 4); - err = nvm_write(gNvmInternalInterface_c, 1, (uint8_t *)buf, 0, 4); -// puts("nvm_write returned: 0x"); -// put_hex(err); -// puts("\n\r"); + +#if BOOT_OK + ((uint8_t *)buf)[0] = 'O'; ((uint8_t *)buf)[1] = 'K'; ((uint8_t *)buf)[2] = 'O'; ((uint8_t *)buf)[3] = 'K'; +#elif BOOT_SECURE + ((uint8_t *)buf)[0] = 'S'; ((uint8_t *)buf)[1] = 'E'; ((uint8_t *)buf)[2] = 'C'; ((uint8_t *)buf)[3] = 'U'; +#else + ((uint8_t *)buf)[0] = 'N'; ((uint8_t *)buf)[1] = 'O'; ((uint8_t *)buf)[2] = 'N'; ((uint8_t *)buf)[3] = 'O'; +#endif + + dbg_puts(" type is: 0x"); + dbg_put_hex32(type); + dbg_puts("\n\r"); + + err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)buf, 0, 4); + + dbg_puts("nvm_write returned: 0x"); + dbg_put_hex(err); + dbg_puts("\n\r"); /* write the length */ - err = nvm_write(gNvmInternalInterface_c, 1, (uint8_t *)&len, 4, 4); + err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)&len, 4, 4); /* read a byte, write a byte */ /* byte at a time will make this work as a contiki process better */ @@ -146,9 +157,22 @@ void main(void) { c = getc(); // put_hex(c); // puts(": "); -// err = nvm_write(gNvmInternalInterface_c, type, &c, 4+i, 1); - err = nvm_write(gNvmInternalInterface_c, 1, &c, 8+i, 1); -// if(err==0) { putc('.'); } else { putc('x'); } + + /*for some reason I have to hard code the type here for it to work reliably */ +// err = nvm_write(gNvmInternalInterface_c, type, &c, 4+i, 1); + switch(type) + { + case 1: + err = nvm_write(gNvmInternalInterface_c, 1, &c, 8+i, 1); + break; + case 2: + err = nvm_write(gNvmInternalInterface_c, 2, &c, 8+i, 1); + break; + case 3: + err = nvm_write(gNvmInternalInterface_c, 3, &c, 8+i, 1); + break; + } + // puts("nvm_write returned: 0x"); // put_hex(err); // puts("\n\r"); diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 54a912904..44ed25a1e 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -31,7 +31,7 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', #include "isr.h" -#define NBYTES 1024 +#define NBYTES 16 __attribute__ ((section ("startup"))) void main(void) { nvmType_t type=0; @@ -76,7 +76,7 @@ void main(void) { nvm_setsvar(0); - err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, 0x1F000, NBYTES); + err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, 0x1e000, NBYTES); puts("nvm_read returned: 0x"); put_hex(err); puts("\n\r"); From 963d7a69de2d76cb0bf66132990723fbc7dfe23e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 9 May 2009 15:43:22 -0400 Subject: [PATCH 116/471] don't hose the cpu by using read instead of input --- mc1322x-load.pl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 8bd2b8b5b..45c13b3a8 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -110,8 +110,10 @@ print ",\n"; $ob->write(@ARGV); $ob->write(','); +my $c; my $count; while(1) { - print $ob->input; + ($count, $c) = $ob->read(1); + print $c if ($count != 0); } $ob -> close or die "Close failed: $!\n"; From cb4dd0d23efbbaf3df00bde0b470a6890f88fd13 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 9 May 2009 15:48:02 -0400 Subject: [PATCH 117/471] reverting this file back to dumping the calibration section. --- tests/nvm-read.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 44ed25a1e..54a912904 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -31,7 +31,7 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', #include "isr.h" -#define NBYTES 16 +#define NBYTES 1024 __attribute__ ((section ("startup"))) void main(void) { nvmType_t type=0; @@ -76,7 +76,7 @@ void main(void) { nvm_setsvar(0); - err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, 0x1e000, NBYTES); + err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, 0x1F000, NBYTES); puts("nvm_read returned: 0x"); put_hex(err); puts("\n\r"); From 29d8cc60353d21240e3a696155b159b047dd22e7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 9 May 2009 16:39:42 -0400 Subject: [PATCH 118/471] only send the aux string if there is one to send --- mc1322x-load.pl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 45c13b3a8..7aaefb9d3 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -103,9 +103,11 @@ while(1) { print "done sending files.\n"; -print "sending " ; -print @ARGV; -print ",\n"; +if(scalar(@ARGV)!=0) { + print "sending " ; + print @ARGV; + print ",\n"; +} $ob->write(@ARGV); $ob->write(','); From ad1927f2c8273836d06edc096f7ee4f267dca78f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 9 May 2009 16:40:43 -0400 Subject: [PATCH 119/471] send aux string only when there is one to send --- mc1322x-load.pl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 7aaefb9d3..6145768c9 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -107,10 +107,10 @@ if(scalar(@ARGV)!=0) { print "sending " ; print @ARGV; print ",\n"; -} -$ob->write(@ARGV); -$ob->write(','); + $ob->write(@ARGV); + $ob->write(','); +} my $c; my $count; while(1) { From ebee1f67d77cb217087f807033245ef3ed2c5d55 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 11 May 2009 12:01:15 -0400 Subject: [PATCH 120/471] add radio_on and radio_off. --- include/maca.h | 2 ++ src/maca.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/maca.h b/include/maca.h index e9079ea9d..3091685ce 100644 --- a/include/maca.h +++ b/include/maca.h @@ -412,6 +412,8 @@ void init_phy(void); void vreg_init(void); void ResumeMACASync(void); void radio_init(void); +void radio_off(void); +void radio_on(void); uint32_t init_from_flash(uint32_t addr); void set_power(uint8_t power); void set_channel(uint8_t chan); diff --git a/src/maca.c b/src/maca.c index 6f0608aba..9416e4dd4 100644 --- a/src/maca.c +++ b/src/maca.c @@ -146,6 +146,19 @@ void vreg_init(void) { *(volatile uint32_t *)(0x80003048) = 0x00000ff8; /* start the regulators */ } +void radio_off(void) { + /* turn off the radio regulators */ + reg(0x80003048) = 0x00000f00; + /* hold the maca in reset */ + maca_reset = maca_reset_rst; +} + +void radio_on(void) { + /* turn the radio regulators back on */ + reg(0x80003048) = 0x00000f78; + /* reinitialize the phy */ + init_phy(); +} /* radio_init has been tested to be good */ void radio_init(void) { From bc59b04bbf11b7bc655c77738f59fd646983919b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 11 May 2009 15:52:30 -0400 Subject: [PATCH 121/471] sleep tests. --- Makefile | 1 + tests/sleep.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 tests/sleep.c diff --git a/Makefile b/Makefile index 7c3873052..f664bf956 100644 --- a/Makefile +++ b/Makefile @@ -66,6 +66,7 @@ tests/nvm-write.obj: src/maca.o src/nvm.o tests/rftest-rx.obj: src/maca.o src/nvm.o tests/rftest-tx.obj: src/maca.o src/nvm.o tests/tmr-ints.obj: src/isr.o +tests/sleep.obj: src/isr.o NOTHUMB_CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ diff --git a/tests/sleep.c b/tests/sleep.c new file mode 100644 index 000000000..cd0311310 --- /dev/null +++ b/tests/sleep.c @@ -0,0 +1,62 @@ +#define GPIO_PAD_DIR0 0x80000000 +#define GPIO_DATA0 0x80000008 +#define CRM_WU_CNTL 0x80003004 +#define CRM_SLEEP_CNTL 0x80003008 +#define CRM_STATUS 0x80003018 +#define GPIO_PAD_PU_EN0 0x80000010 +#define GPIO_PAD_PU_EN1 0x80000014 +#define ADC_CONTROL 0x80000018 +#define CRM_XTAL_CNTL 0x80000040 + +#define DELAY 400000 + +#include "embedded_types.h" +#include "isr.h" +#include "utils.h" + +__attribute__ ((section ("startup"))) void main(void) { + reg32(GPIO_PAD_DIR0) = 0x00000100; + + reg32(GPIO_DATA0) = 0x00000100; + + /* disable all pullups */ + /* seems to make a slight difference (2.0uA vs 1.95uA)*/ + reg32(GPIO_PAD_PU_EN0) = 0; + reg32(GPIO_PAD_PU_EN1) = 0; + reg16(ADC_CONTROL) = 0; /* internal Vref2 */ + +// reg16(CRM_XTAL_CNTL) = 0x052; /* default is 0xf52 */ /* doesn't anything w.r.t. power */ + + /* go to sleep */ +// reg32(CRM_WU_CNTL) = 0x1; /* enable wakeup from wakeup timer */ + reg32(CRM_WU_CNTL) = 0; /* don't wake up */ + +// reg32(CRM_SLEEP_CNTL) = 1; /* hibernate, RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 2.0uA */ +// reg32(CRM_SLEEP_CNTL) = 0x41; /* hibernate, RAM page 0 only, retain state, don't power GPIO */ /* approx. 10.0uA */ +// reg32(CRM_SLEEP_CNTL) = 0x51; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 11.7uA */ +// reg32(CRM_SLEEP_CNTL) = 0x61; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 13.9uA */ +// reg32(CRM_SLEEP_CNTL) = 0x71; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ +// reg32(CRM_SLEEP_CNTL) = 0xf1; /* hibernate, RAM page 0&1 only, retain state, power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ + +// reg32(CRM_SLEEP_CNTL) = 2; /* doze , RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 69.2 uA */ +// reg32(CRM_SLEEP_CNTL) = 0x42; /* doze , RAM page 0 only, retain state, don't power GPIO */ /* approx. 77.3uA */ +// reg32(CRM_SLEEP_CNTL) = 0x52; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 78.9uA */ +// reg32(CRM_SLEEP_CNTL) = 0x62; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 81.2uA */ +// reg32(CRM_SLEEP_CNTL) = 0x72; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 83.4uA - possibly with periodic refresh*/ + reg32(CRM_SLEEP_CNTL) = 0xf2; /* doze , RAM page 0&1 only, retain state, power GPIO */ /* approx. 82.8uA - possibly with periodic refresh*/ + reg32(CRM_STATUS) = 1; /* write 1 to sleep_sync --- this totally powers down */ + + + volatile uint32_t i; + while(1) { + + reg32(GPIO_DATA0) = 0x00000100; + + for(i=0; i Date: Mon, 11 May 2009 17:01:31 -0400 Subject: [PATCH 122/471] this test demonstrates sleeping in both hibernate and doze. wake up is controlled with the wake up timer. read the comments for current measurments. --- tests/sleep.c | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/tests/sleep.c b/tests/sleep.c index cd0311310..fc621eb51 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -1,11 +1,14 @@ #define GPIO_PAD_DIR0 0x80000000 #define GPIO_DATA0 0x80000008 -#define CRM_WU_CNTL 0x80003004 -#define CRM_SLEEP_CNTL 0x80003008 -#define CRM_STATUS 0x80003018 + #define GPIO_PAD_PU_EN0 0x80000010 #define GPIO_PAD_PU_EN1 0x80000014 #define ADC_CONTROL 0x80000018 + +#define CRM_WU_CNTL 0x80003004 +#define CRM_WU_TIMEOUT 0x80003024 +#define CRM_SLEEP_CNTL 0x80003008 +#define CRM_STATUS 0x80003018 #define CRM_XTAL_CNTL 0x80000040 #define DELAY 400000 @@ -21,15 +24,17 @@ __attribute__ ((section ("startup"))) void main(void) { /* disable all pullups */ /* seems to make a slight difference (2.0uA vs 1.95uA)*/ - reg32(GPIO_PAD_PU_EN0) = 0; - reg32(GPIO_PAD_PU_EN1) = 0; - reg16(ADC_CONTROL) = 0; /* internal Vref2 */ +// reg32(GPIO_PAD_PU_EN0) = 0; +// reg32(GPIO_PAD_PU_EN1) = 0; +// reg16(ADC_CONTROL) = 0; /* internal Vref2 */ // reg16(CRM_XTAL_CNTL) = 0x052; /* default is 0xf52 */ /* doesn't anything w.r.t. power */ /* go to sleep */ -// reg32(CRM_WU_CNTL) = 0x1; /* enable wakeup from wakeup timer */ - reg32(CRM_WU_CNTL) = 0; /* don't wake up */ +// reg32(CRM_WU_CNTL) = 0; /* don't wake up */ + reg32(CRM_WU_CNTL) = 0x1; /* enable wakeup from wakeup timer */ + reg32(CRM_WU_TIMEOUT) = 1875000; /* wake 10 sec later if doze */ +// reg32(CRM_WU_TIMEOUT) = 20000; /* wake 10 sec later if hibernate w/2kHz*/ // reg32(CRM_SLEEP_CNTL) = 1; /* hibernate, RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 2.0uA */ // reg32(CRM_SLEEP_CNTL) = 0x41; /* hibernate, RAM page 0 only, retain state, don't power GPIO */ /* approx. 10.0uA */ @@ -39,13 +44,22 @@ __attribute__ ((section ("startup"))) void main(void) { // reg32(CRM_SLEEP_CNTL) = 0xf1; /* hibernate, RAM page 0&1 only, retain state, power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ // reg32(CRM_SLEEP_CNTL) = 2; /* doze , RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 69.2 uA */ -// reg32(CRM_SLEEP_CNTL) = 0x42; /* doze , RAM page 0 only, retain state, don't power GPIO */ /* approx. 77.3uA */ + reg32(CRM_SLEEP_CNTL) = 0x42; /* doze , RAM page 0 only, retain state, don't power GPIO */ /* approx. 77.3uA */ // reg32(CRM_SLEEP_CNTL) = 0x52; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 78.9uA */ // reg32(CRM_SLEEP_CNTL) = 0x62; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 81.2uA */ // reg32(CRM_SLEEP_CNTL) = 0x72; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 83.4uA - possibly with periodic refresh*/ - reg32(CRM_SLEEP_CNTL) = 0xf2; /* doze , RAM page 0&1 only, retain state, power GPIO */ /* approx. 82.8uA - possibly with periodic refresh*/ - reg32(CRM_STATUS) = 1; /* write 1 to sleep_sync --- this totally powers down */ +// reg32(CRM_SLEEP_CNTL) = 0xf2; /* doze , RAM page 0&1 only, retain state, power GPIO */ /* approx. 82.8uA - possibly with periodic refresh*/ + + while((reg32(CRM_STATUS) & 0x1) == 0) { continue; } + + reg32(CRM_STATUS) = 1; /* write 1 to sleep_sync --- this clears the bit (it's a r1wc bit) and powers down */ + /* asleep */ + + while((reg32(CRM_STATUS) & 0x1) == 0) { continue; } + + reg32(CRM_STATUS) = 1; /* write 1 to sleep_sync --- this clears the bit (it's a r1wc bit) and finishes wakeup */ + volatile uint32_t i; while(1) { From 5dbd9aa02f303fdcb1ddc1fc28406b3128ab75d7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 11 May 2009 17:03:20 -0400 Subject: [PATCH 123/471] added a few comments --- tests/sleep.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/sleep.c b/tests/sleep.c index fc621eb51..0368394e1 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -50,16 +50,17 @@ __attribute__ ((section ("startup"))) void main(void) { // reg32(CRM_SLEEP_CNTL) = 0x72; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 83.4uA - possibly with periodic refresh*/ // reg32(CRM_SLEEP_CNTL) = 0xf2; /* doze , RAM page 0&1 only, retain state, power GPIO */ /* approx. 82.8uA - possibly with periodic refresh*/ + /* wait for the sleep cycle to complete */ while((reg32(CRM_STATUS) & 0x1) == 0) { continue; } - - reg32(CRM_STATUS) = 1; /* write 1 to sleep_sync --- this clears the bit (it's a r1wc bit) and powers down */ + /* write 1 to sleep_sync --- this clears the bit (it's a r1wc bit) and powers down */ + reg32(CRM_STATUS) = 1; /* asleep */ + /* wait for the awake cycle to complete */ while((reg32(CRM_STATUS) & 0x1) == 0) { continue; } - - reg32(CRM_STATUS) = 1; /* write 1 to sleep_sync --- this clears the bit (it's a r1wc bit) and finishes wakeup */ - + /* write 1 to sleep_sync --- this clears the bit (it's a r1wc bit) and finishes wakeup */ + reg32(CRM_STATUS) = 1; volatile uint32_t i; while(1) { From 13656da889321acd63819a5e78639d66bce6847c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 11 May 2009 17:26:10 -0400 Subject: [PATCH 124/471] corrected comments about ram retention --- tests/sleep.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/sleep.c b/tests/sleep.c index 0368394e1..d223ad50b 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -39,16 +39,16 @@ __attribute__ ((section ("startup"))) void main(void) { // reg32(CRM_SLEEP_CNTL) = 1; /* hibernate, RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 2.0uA */ // reg32(CRM_SLEEP_CNTL) = 0x41; /* hibernate, RAM page 0 only, retain state, don't power GPIO */ /* approx. 10.0uA */ // reg32(CRM_SLEEP_CNTL) = 0x51; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 11.7uA */ -// reg32(CRM_SLEEP_CNTL) = 0x61; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 13.9uA */ -// reg32(CRM_SLEEP_CNTL) = 0x71; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ -// reg32(CRM_SLEEP_CNTL) = 0xf1; /* hibernate, RAM page 0&1 only, retain state, power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ +// reg32(CRM_SLEEP_CNTL) = 0x61; /* hibernate, RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 13.9uA */ +// reg32(CRM_SLEEP_CNTL) = 0x71; /* hibernate, all RAM pages, retain state, don't power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ +// reg32(CRM_SLEEP_CNTL) = 0xf1; /* hibernate, all RAM pages, retain state, power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ // reg32(CRM_SLEEP_CNTL) = 2; /* doze , RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 69.2 uA */ reg32(CRM_SLEEP_CNTL) = 0x42; /* doze , RAM page 0 only, retain state, don't power GPIO */ /* approx. 77.3uA */ // reg32(CRM_SLEEP_CNTL) = 0x52; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 78.9uA */ -// reg32(CRM_SLEEP_CNTL) = 0x62; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 81.2uA */ -// reg32(CRM_SLEEP_CNTL) = 0x72; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 83.4uA - possibly with periodic refresh*/ -// reg32(CRM_SLEEP_CNTL) = 0xf2; /* doze , RAM page 0&1 only, retain state, power GPIO */ /* approx. 82.8uA - possibly with periodic refresh*/ +// reg32(CRM_SLEEP_CNTL) = 0x62; /* doze , RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 81.2uA */ +// reg32(CRM_SLEEP_CNTL) = 0x72; /* doze , all RAM pages, retain state, don't power GPIO */ /* approx. 83.4uA - possibly with periodic refresh*/ +// reg32(CRM_SLEEP_CNTL) = 0xf2; /* doze , all RAM pages, retain state, power GPIO */ /* approx. 82.8uA - possibly with periodic refresh*/ /* wait for the sleep cycle to complete */ while((reg32(CRM_STATUS) & 0x1) == 0) { continue; } From fa91eed2a152a88f199cdced6cdbf29a5acfccc7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 11 May 2009 17:58:21 -0400 Subject: [PATCH 125/471] added crm.h from contiki --- include/crm.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 include/crm.h diff --git a/include/crm.h b/include/crm.h new file mode 100644 index 000000000..e7b80710f --- /dev/null +++ b/include/crm.h @@ -0,0 +1,36 @@ +#ifndef CRM_H +#define CRM_H + +#define CRM_BASE (0x80003000) +#define CRM_SYS_CNTL (CRM_BASE+0x00) +#define CRM_WU_CNTL (CRM_BASE+0x04) +#define CRM_SLEEP_CNTL (CRM_BASE+0x08) +#define CRM_BS_CNTL (CRM_BASE+0x0c) +#define CRM_COP_CNTL (CRM_BASE+0x10) +#define CRM_COP_SERVICE (CRM_BASE+0x14) +#define CRM_STATUS (CRM_BASE+0x18) +#define CRM_MOD_STATUS (CRM_BASE+0x1c) +#define CRM_WU_COUNT (CRM_BASE+0x20) +#define CRM_WU_TIMEOUT (CRM_BASE+0x24) +#define CRM_RTC_COUNT (CRM_BASE+0x28) +#define CRM_RTC_TIMEOUT (CRM_BASE+0x2c) +#define CRM_CAL_CNTL (CRM_BASE+0x34) +#define CRM_CAL_COUNT (CRM_BASE+0x38) +#define CRM_RINGOSC_CTNL (CRM_BASE+0x3c) +#define CRM_XTAL_CNTL (CRM_BASE+0x40) +#define CRM_XTAL32_CNTL (CRM_BASE+0x44) +#define CRM_VREG_CNTL (CRM_BASE+0x48) +#define CRM_SW_RST (CRM_BASE+0x50) + +/* wu_cntl bit locations */ +#define EXT_WU_IEN 20 /* 4 bits */ +#define EXT_WU_EN 4 /* 4 bits */ +#define EXT_WU_EDGE 8 /* 4 bits */ +#define EXT_WU_POL 12 /* 4 bits */ + +/* status bit locations */ +#define EXT_WU_EVT 4 /* 4 bits */ + +#define enable_wu_en(k) (set_bit(reg32(CRM_WU_CNTL),(EXT_WU_EN+k-4))) + +#endif From d8a8d529bc9f1366a40130b1668e287a3510a606 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 12 May 2009 17:19:57 -0400 Subject: [PATCH 126/471] Sleep works now. Make sure to turn the radio off first. --- Makefile | 2 +- include/isr.h | 2 + tests/sleep.c | 148 ++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 147 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index f664bf956..93ad8d3f5 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ tests/nvm-write.obj: src/maca.o src/nvm.o tests/rftest-rx.obj: src/maca.o src/nvm.o tests/rftest-tx.obj: src/maca.o src/nvm.o tests/tmr-ints.obj: src/isr.o -tests/sleep.obj: src/isr.o +tests/sleep.obj: src/isr.o src/maca.o src/nvm.o NOTHUMB_CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ diff --git a/include/isr.h b/include/isr.h index 22e1772be..ec4049b89 100644 --- a/include/isr.h +++ b/include/isr.h @@ -5,9 +5,11 @@ #define INTBASE (0x80020000) #define INTENNUM_OFF (0x8) +#define INTDISNUM_OFF (0xc) #define INTSRC_OFF (0x30) #define INTENNUM INTBASE + INTENNUM_OFF +#define INTDISNUM INTBASE + INTDISNUM_OFF #define INTSRC INTBASE + INTSRC_OFF #define enable_tmr_irq() *(volatile uint32_t *)(INTENNUM) = 5; diff --git a/tests/sleep.c b/tests/sleep.c index d223ad50b..e7b61b965 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -1,6 +1,8 @@ #define GPIO_PAD_DIR0 0x80000000 #define GPIO_DATA0 0x80000008 +#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ + #define GPIO_PAD_PU_EN0 0x80000010 #define GPIO_PAD_PU_EN1 0x80000014 #define ADC_CONTROL 0x80000018 @@ -11,17 +13,98 @@ #define CRM_STATUS 0x80003018 #define CRM_XTAL_CNTL 0x80000040 +#define BASE_UART1 0x80005000 +#define UART1_CON 0x80005000 +#define UART1_STAT 0x80005004 +#define UART1_DATA 0x80005008 +#define UR1CON 0x8000500c +#define UT1CON 0x80005010 +#define UART1_CTS 0x80005014 +#define UART1_BR 0x80005018 + #define DELAY 400000 #include "embedded_types.h" #include "isr.h" #include "utils.h" +#include "maca.h" + +void putc(uint8_t c); +void puts(uint8_t *s); +void put_hex(uint8_t x); +void put_hex16(uint16_t x); +void put_hex32(uint32_t x); + +const uint8_t hex[16]={'0','1','2','3','4','5','6','7', + '8','9','a','b','c','d','e','f'}; + + +typedef void (*pfCallback_t)(void); + +typedef struct +{ + uint8_t sleepType:1;// 0 hibernate / 1 doze + uint8_t ramRet:2; + uint8_t mcuRet:1; + uint8_t digPadRet:1; + pfCallback_t pfToDoBeforeSleep; +}crmSleepCtrl_t; + +void do_nothing(void) { + return; +} + +void (*crm_gotosleep)(crmSleepCtrl_t *foo) = 0x0000364d; __attribute__ ((section ("startup"))) void main(void) { + crmSleepCtrl_t crmSleepCtrl; + reg32(GPIO_PAD_DIR0) = 0x00000100; reg32(GPIO_DATA0) = 0x00000100; + + /* Restore UART regs. to default */ + /* in case there is still bootloader state leftover */ + + *(volatile uint32_t *)UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + + /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ + #define INC 767 + #define MOD 9999 + *(volatile uint32_t *)UART1_BR = INC<<16 | MOD; + + /* see Section 11.5.1.2 Alternate Modes */ + /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ + /* From the datasheet: "The peripheral function will control operation of the pad IF */ + /* THE PERIPHERAL IS ENABLED. */ + *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ + *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + + reg32(0x00401ffc) = 0x01234567; + reg32(0x00407ffc) = 0xdeadbeef; + reg32(0x0040fffc) = 0xface00ff; + reg32(0x00410000) = 0xabcd0123; + + puts("sleep test\n\r"); + puts("0x00401ffc: "); + put_hex32(reg32(0x00401ffc)); + puts("\r\n"); + puts("0x00407ffc: "); + put_hex32(reg32(0x00407ffc)); + puts("\r\n"); + puts("0x0040fffc: "); + put_hex32(reg32(0x0040fffc)); + puts("\r\n"); + puts("0x00410000: "); + put_hex32(reg32(0x00410000)); + puts("\r\n"); + + /* radio must be OFF before sleeping */ + /* otherwise MCU will not wake up properly */ + /* this is undocumented behavior */ + radio_off(); + /* disable all pullups */ /* seems to make a slight difference (2.0uA vs 1.95uA)*/ // reg32(GPIO_PAD_PU_EN0) = 0; @@ -33,23 +116,32 @@ __attribute__ ((section ("startup"))) void main(void) { /* go to sleep */ // reg32(CRM_WU_CNTL) = 0; /* don't wake up */ reg32(CRM_WU_CNTL) = 0x1; /* enable wakeup from wakeup timer */ - reg32(CRM_WU_TIMEOUT) = 1875000; /* wake 10 sec later if doze */ -// reg32(CRM_WU_TIMEOUT) = 20000; /* wake 10 sec later if hibernate w/2kHz*/ +// reg32(CRM_WU_TIMEOUT) = 1875000; /* wake 10 sec later if doze */ + reg32(CRM_WU_TIMEOUT) = 20000; /* wake 10 sec later if hibernate w/2kHz*/ // reg32(CRM_SLEEP_CNTL) = 1; /* hibernate, RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 2.0uA */ // reg32(CRM_SLEEP_CNTL) = 0x41; /* hibernate, RAM page 0 only, retain state, don't power GPIO */ /* approx. 10.0uA */ // reg32(CRM_SLEEP_CNTL) = 0x51; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 11.7uA */ // reg32(CRM_SLEEP_CNTL) = 0x61; /* hibernate, RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 13.9uA */ // reg32(CRM_SLEEP_CNTL) = 0x71; /* hibernate, all RAM pages, retain state, don't power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ -// reg32(CRM_SLEEP_CNTL) = 0xf1; /* hibernate, all RAM pages, retain state, power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ + reg32(CRM_SLEEP_CNTL) = 0xf1; /* hibernate, all RAM pages, retain state, power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ // reg32(CRM_SLEEP_CNTL) = 2; /* doze , RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 69.2 uA */ - reg32(CRM_SLEEP_CNTL) = 0x42; /* doze , RAM page 0 only, retain state, don't power GPIO */ /* approx. 77.3uA */ +// reg32(CRM_SLEEP_CNTL) = 0x42; /* doze , RAM page 0 only, retain state, don't power GPIO */ /* approx. 77.3uA */ // reg32(CRM_SLEEP_CNTL) = 0x52; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 78.9uA */ // reg32(CRM_SLEEP_CNTL) = 0x62; /* doze , RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 81.2uA */ // reg32(CRM_SLEEP_CNTL) = 0x72; /* doze , all RAM pages, retain state, don't power GPIO */ /* approx. 83.4uA - possibly with periodic refresh*/ // reg32(CRM_SLEEP_CNTL) = 0xf2; /* doze , all RAM pages, retain state, power GPIO */ /* approx. 82.8uA - possibly with periodic refresh*/ + +/* crmSleepCtrl.sleepType = 0; */ +/* crmSleepCtrl.ramRet = 3; */ +/* crmSleepCtrl.mcuRet = 1; */ +/* crmSleepCtrl.digPadRet = 1; */ +/* crmSleepCtrl.pfToDoBeforeSleep = do_nothing; */ + +/* crm_gotosleep(&crmSleepCtrl); */ + /* wait for the sleep cycle to complete */ while((reg32(CRM_STATUS) & 0x1) == 0) { continue; } /* write 1 to sleep_sync --- this clears the bit (it's a r1wc bit) and powers down */ @@ -62,6 +154,21 @@ __attribute__ ((section ("startup"))) void main(void) { /* write 1 to sleep_sync --- this clears the bit (it's a r1wc bit) and finishes wakeup */ reg32(CRM_STATUS) = 1; + puts("\n\r\n\r\n\r"); + puts("0x00401ffc: "); + put_hex32(reg32(0x00401ffc)); + puts("\r\n"); + puts("0x00407ffc: "); + put_hex32(reg32(0x00407ffc)); + puts("\r\n"); + puts("0x0040fffc: "); + put_hex32(reg32(0x0040fffc)); + puts("\r\n"); + puts("0x00410000: "); + put_hex32(reg32(0x00410000)); + puts("\r\n"); + + volatile uint32_t i; while(1) { @@ -75,3 +182,36 @@ __attribute__ ((section ("startup"))) void main(void) { }; } + + + +void putc(uint8_t c) { + while(reg32(UT1CON)==31); /* wait for there to be room in the buffer */ + reg32(UART1_DATA) = c; +} + +void puts(uint8_t *s) { + while(s && *s!=0) { + putc(*s++); + } +} + +void put_hex(uint8_t x) +{ + putc(hex[x >> 4]); + putc(hex[x & 15]); +} + +void put_hex16(uint16_t x) +{ + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} + +void put_hex32(uint32_t x) +{ + put_hex((x >> 24) & 0xFF); + put_hex((x >> 16) & 0xFF); + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} From babc6a48fc71446ec8d5fc18bd76238230d16285 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 13 May 2009 14:15:54 -0400 Subject: [PATCH 127/471] longer delay when flashing seems necessary. --- mc1322x-load.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 6145768c9..f1b98838a 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -87,7 +87,7 @@ while(1) { while(read(FILE, $c, 1)) { $i++; usleep(50); # this is as fast is it can go... - usleep(25) if ($s==1); + usleep(50) if ($s==1); $ob->write($c); } } From 998313d2120d1cd1e75210a8516a4746005cbbfd Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 17 May 2009 15:33:59 -0400 Subject: [PATCH 128/471] added a tool to enter mesh data from a RIME collect sink into rrd's --- rimecollect-rrd/collect2rrd.pl | 64 +++++++++++++++++++++++++++++++++ rimecollect-rrd/default.rrdtmpl | 1 + 2 files changed, 65 insertions(+) create mode 100755 rimecollect-rrd/collect2rrd.pl create mode 100644 rimecollect-rrd/default.rrdtmpl diff --git a/rimecollect-rrd/collect2rrd.pl b/rimecollect-rrd/collect2rrd.pl new file mode 100755 index 000000000..7460fc2de --- /dev/null +++ b/rimecollect-rrd/collect2rrd.pl @@ -0,0 +1,64 @@ +#!/usr/bin/perl -w +use strict; +my $verbose = 1; + +#### +# Feed data on stdin from a RIME collect sink +# +# Enters data into rimeaddr.rrd +# +# Creates rimeaddr.rrd from a template if data shows up from a source and +# rimeaddr.rrd doesn't exist +# +# default template is read from default.rrdtmpl +# +# if rimeaddr.rrdtmpl exisits, that is used instead. + +#### +# +# Templates are shell scripts that create the desired rrd +# + +#### +# Data messages are in the form of: +# +# Sink got message from 1.0, seqno 109, hops 0: len 12 'GPIO29-High' +# +# + +my $datapattern = 'Sink got message from ([\d\.]+), seqno \d+, hops \d+: len \d+ \'([\w\d]+-[\w\d]+)\''; + +sub rrdcreate { + my ($newrrd_filename, $tmpl_filename) = @_; + open FILE, "$tmpl_filename" or die $!; + my $tmpl = ; + print "using template $tmpl found in $tmpl_filename\n" if $verbose; + `rrdtool create $newrrd_filename $tmpl`; +} + +while(<>) { + + next if($_ !~ /$datapattern/); + print("rimeaddr $1 data $2\n") if $verbose; + + my ($ds,$data) = split(/-/,$2); + print("ds: $ds, data: $data\n") if $verbose; + + if(-e "$1.rrd") { + # an rrd already exists for this device + # do an update + `rrdtool update $1.rrd -t $ds N:$data` + } else { + # an rrd for this device doesn't exist yet + # find a template and make it + my $tmpl = "DS:speed:COUNTER:600:U:U RRA:AVERAGE:0.5:6:10"; + print "creating new rrd $1.rrd... " if $verbose; + if(-e "$1.rrdtmpl") { + rrdcreate("$1.rrd","$1.rrdtmpl"); + } elsif(-e "default.rrdtmpl") { + rrdcreate("$1.rrd","default.rrdtmpl"); + } else { + print "can't create rrd for $1: no template found\n"; + } + } +} diff --git a/rimecollect-rrd/default.rrdtmpl b/rimecollect-rrd/default.rrdtmpl new file mode 100644 index 000000000..f5cbc5e96 --- /dev/null +++ b/rimecollect-rrd/default.rrdtmpl @@ -0,0 +1 @@ +-s 1 DS:GPIO29:GAUGE:600:U:U RRA:LAST:0.99:1:3600 From 674af7704406922f12c334f2e15bf0203db626e7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 17 May 2009 18:03:12 -0400 Subject: [PATCH 129/471] update after creating a new rrd --- rimecollect-rrd/collect2rrd.pl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rimecollect-rrd/collect2rrd.pl b/rimecollect-rrd/collect2rrd.pl index 7460fc2de..197e02e3d 100755 --- a/rimecollect-rrd/collect2rrd.pl +++ b/rimecollect-rrd/collect2rrd.pl @@ -32,6 +32,7 @@ sub rrdcreate { my ($newrrd_filename, $tmpl_filename) = @_; open FILE, "$tmpl_filename" or die $!; my $tmpl = ; + chomp $tmpl; print "using template $tmpl found in $tmpl_filename\n" if $verbose; `rrdtool create $newrrd_filename $tmpl`; } @@ -55,8 +56,10 @@ while(<>) { print "creating new rrd $1.rrd... " if $verbose; if(-e "$1.rrdtmpl") { rrdcreate("$1.rrd","$1.rrdtmpl"); + `rrdtool update $1.rrd -t $ds N:$data` } elsif(-e "default.rrdtmpl") { rrdcreate("$1.rrd","default.rrdtmpl"); + `rrdtool update $1.rrd -t $ds N:$data` } else { print "can't create rrd for $1: no template found\n"; } From 6d75aa1bed9ace3a41c2262c5be94934df0ed16b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 18 May 2009 17:53:51 -0400 Subject: [PATCH 130/471] added a script that creates a webpage of all the collected data. has basic naming capabilities. --- rimecollect-rrd/meshstat.cgi | 66 ++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 rimecollect-rrd/meshstat.cgi diff --git a/rimecollect-rrd/meshstat.cgi b/rimecollect-rrd/meshstat.cgi new file mode 100755 index 000000000..c95a1b3a7 --- /dev/null +++ b/rimecollect-rrd/meshstat.cgi @@ -0,0 +1,66 @@ +#!/usr/bin/perl -w + +# CGI script that creates a fill-out form +# and echoes back its values. + +use CGI qw/:standard/; + +# configs + +# paths +my $meshpath = "/home/malvira/work"; +my $wwwpath = "/var/www"; +my $hostname = "localhost"; + +# aliases +my %aliases = ( + "2.0" => { + alias => "Lower Door", + ds=> { + "GPIO29" => "Lock", + }, + }, + "4.0" => { + alias => "Upper Door", + }, + "1.0" => { + alias => "Sink (Hotdog)", + }, + ); + +opendir(MESHDIR, $meshpath); +my @files = readdir(MESHDIR); + +print header; +print start_html('Collect Mesh'); + + +foreach my $file (@files) { + next if $file !~ /([\d\.]+)\.rrd$/; + my $addr = $1; + print hr; + print h1("$addr: $aliases{$addr}{'alias'}"); + my @info = split(/\n/,qx(rrdtool info $meshpath/$addr.rrd)); + + my %ds; + foreach my $info (@info) { + next if $info !~ /ds\[([\w\d]+)\]/; + $ds{$1}++; + } + + foreach my $ds (keys(%ds)) { + print h2("$ds: $aliases{$addr}{'ds'}{$ds}"); + qx(rrdtool graph $wwwpath/$addr-$ds.png --start end-60min DEF:$ds=$meshpath/$addr.rrd:$ds:LAST LINE2:$ds#00a000:\"$ds\"); + print img({src=>"http://$hostname/$addr-$ds.png"}); + } + +} + +print hr; + +print end_html; + +#/var/www/demo.png --title="Door" --start end-60min +# --imginfo '' +# DEF:door=/home/malvira/work/2.0.rrd:GPIO29:LAST +# LINE2:door#00a000:"Door lock"> From 6cafcc123489aee536621ead3e604696a767faf6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 18 May 2009 17:57:21 -0400 Subject: [PATCH 131/471] check if $count is defined. --- mc1322x-load.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index f1b98838a..f545ad89d 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -115,7 +115,7 @@ if(scalar(@ARGV)!=0) { my $c; my $count; while(1) { ($count, $c) = $ob->read(1); - print $c if ($count != 0); + print $c if (defined($count) && ($count != 0)); } $ob -> close or die "Close failed: $!\n"; From 9f075dcf1aa1e0ac0f76f4d61198dae5fe4e2bf7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 20 May 2009 20:12:39 -0400 Subject: [PATCH 132/471] cause TX_ON to flash when transmitting --- tests/rftest-tx.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 854e946ff..c4f609a4e 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -1,4 +1,5 @@ #define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ +#define GPIO_FUNC_SEL2 0x80000020 /* GPIO 47 - 32; 2 bit blocks */ #define BASE_UART1 0x80005000 #define UART1_CON 0x80005000 @@ -18,7 +19,7 @@ #define reg(x) (*(volatile uint32_t *)(x)) -#define DELAY 200000 +#define DELAY 100000 #define DATA 0x00401000; #define NL "\033[K\r\n" @@ -59,7 +60,7 @@ uint32_t ackBox[10]; maca_control = (control_prm | control_asap | control_seq_rx); \ }while(FALSE) -#define PAYLOAD_LEN 96 /* not including the extra 4 bytes for len+fcs+somethingelse */ +#define PAYLOAD_LEN 16 /* not including the extra 4 bytes for len+fcs+somethingelse */ /* maca dmatx needs extra 4 bytes for checksum */ /* needs + 4 bytes for len(1 byte) + fcs(2 bytes) + somethingelse */ #define command_xcvr_tx() \ @@ -168,6 +169,9 @@ void main(void) { /* puts("reserved modem_base\n\r"); */ /* dump_regs(0x80009200, 192); */ + reg(GPIO_FUNC_SEL2) = (0x01 << ((44-16*2)*2)); + reg(GPIO_PAD_DIR0) = reg(GPIO_PAD_DIR0) | (1<<(44-32)); + fill_data(); command_xcvr_tx(); From 34c91a6726f42b444955f7e148fc654c89b5898a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 21 May 2009 14:52:27 -0400 Subject: [PATCH 133/471] this code starts up the 32kHZ clock --- include/crm.h | 2 +- include/utils.h | 5 +++++ tests/sleep.c | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/include/crm.h b/include/crm.h index e7b80710f..0110074c1 100644 --- a/include/crm.h +++ b/include/crm.h @@ -16,7 +16,7 @@ #define CRM_RTC_TIMEOUT (CRM_BASE+0x2c) #define CRM_CAL_CNTL (CRM_BASE+0x34) #define CRM_CAL_COUNT (CRM_BASE+0x38) -#define CRM_RINGOSC_CTNL (CRM_BASE+0x3c) +#define CRM_RINGOSC_CNTL (CRM_BASE+0x3c) #define CRM_XTAL_CNTL (CRM_BASE+0x40) #define CRM_XTAL32_CNTL (CRM_BASE+0x44) #define CRM_VREG_CNTL (CRM_BASE+0x48) diff --git a/include/utils.h b/include/utils.h index 87bbf5bb4..21ad6f711 100644 --- a/include/utils.h +++ b/include/utils.h @@ -4,4 +4,9 @@ #define reg32(x) (*(volatile uint32_t *)(x)) #define reg16(x) (*(volatile uint16_t *)(x)) +#define bit(bit) (1<> bit) == 1) +#define clear_bit(val,bit) (val=(val & ~(1< Date: Thu, 21 May 2009 17:30:00 -0400 Subject: [PATCH 134/471] more current data with hobby board. 32kHZ mode doesn't seem to use much more power than 2kHz. --- tests/sleep.c | 60 ++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/tests/sleep.c b/tests/sleep.c index 08fbc33a0..d36befd3c 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -62,27 +62,27 @@ void (*crm_gotosleep)(crmSleepCtrl_t *foo) = 0x0000364d; __attribute__ ((section ("startup"))) void main(void) { crmSleepCtrl_t crmSleepCtrl; - reg32(GPIO_PAD_DIR0) = 0x00000100; +// reg32(GPIO_PAD_DIR0) = 0x00000100; - reg32(GPIO_DATA0) = 0x00000100; +// reg32(GPIO_DATA0) = 0x00000100; /* Restore UART regs. to default */ /* in case there is still bootloader state leftover */ - *(volatile uint32_t *)UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ +// *(volatile uint32_t *)UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ #define INC 767 #define MOD 9999 - *(volatile uint32_t *)UART1_BR = INC<<16 | MOD; +// *(volatile uint32_t *)UART1_BR = INC<<16 | MOD; /* see Section 11.5.1.2 Alternate Modes */ /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ /* From the datasheet: "The peripheral function will control operation of the pad IF */ /* THE PERIPHERAL IS ENABLED. */ - *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ - *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ +// *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ +// *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ reg32(0x00401ffc) = 0x01234567; reg32(0x00407ffc) = 0xdeadbeef; @@ -110,11 +110,11 @@ __attribute__ ((section ("startup"))) void main(void) { /* disable all pullups */ /* seems to make a slight difference (2.0uA vs 1.95uA)*/ -// reg32(GPIO_PAD_PU_EN0) = 0; -// reg32(GPIO_PAD_PU_EN1) = 0; -// reg16(ADC_CONTROL) = 0; /* internal Vref2 */ + reg32(GPIO_PAD_PU_EN0) = 0; + reg32(GPIO_PAD_PU_EN1) = 0; + reg16(ADC_CONTROL) = 0; /* internal Vref2 */ -// reg16(CRM_XTAL_CNTL) = 0x052; /* default is 0xf52 */ /* doesn't anything w.r.t. power */ + reg16(CRM_XTAL_CNTL) = 0x052; /* default is 0xf52 */ /* doesn't anything w.r.t. power */ #if USE_32KHZ /* turn on the 32kHz crystal */ @@ -125,7 +125,6 @@ __attribute__ ((section ("startup"))) void main(void) { clear_bit(reg32(CRM_RINGOSC_CNTL),0); /* enable the 32kHZ crystal */ set_bit(reg32(CRM_XTAL32_CNTL),0); -// reg32(CRM_XTAL_CNTL) = 0; /* set the XTAL32_EXISTS bit */ /* the datasheet says to do this after you've check that RTC_COUNT is changing */ @@ -136,8 +135,6 @@ __attribute__ ((section ("startup"))) void main(void) { old = reg32(CRM_RTC_COUNT); puts("waiting for xtal\n\r"); while(reg32(CRM_RTC_COUNT) == old) { -// put_hex32(reg32(CRM_RTC_COUNT)); -// puts("\n\r"); continue; } /* RTC has started up */ @@ -145,34 +142,39 @@ __attribute__ ((section ("startup"))) void main(void) { set_bit(reg32(CRM_SYS_CNTL),5); puts("32kHZ xtal started\n\r"); -/* while(1) { */ -/* put_hex32(reg32(CRM_RTC_COUNT)); */ -/* puts("\n\r"); */ -/* } */ - } #endif /* go to sleep */ -// reg32(CRM_WU_CNTL) = 0; /* don't wake up */ -// reg32(CRM_WU_CNTL) = 0x1; /* enable wakeup from wakeup timer */ -// reg32(CRM_WU_TIMEOUT) = 1875000; /* wake 10 sec later if doze */ -// reg32(CRM_WU_TIMEOUT) = 20000; /* wake 10 sec later if hibernate w/2kHz*/ -// reg32(CRM_SLEEP_CNTL) = 1; /* hibernate, RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 2.0uA */ -// reg32(CRM_SLEEP_CNTL) = 0x41; /* hibernate, RAM page 0 only, retain state, don't power GPIO */ /* approx. 10.0uA */ -// reg32(CRM_SLEEP_CNTL) = 0x51; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 11.7uA */ -// reg32(CRM_SLEEP_CNTL) = 0x61; /* hibernate, RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 13.9uA */ -// reg32(CRM_SLEEP_CNTL) = 0x71; /* hibernate, all RAM pages, retain state, don't power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ -// reg32(CRM_SLEEP_CNTL) = 0xf1; /* hibernate, all RAM pages, retain state, power GPIO */ /* approx. 16.1uA - possibly with periodic refresh*/ +// reg32(CRM_WU_CNTL) = 0; /* don't wake up */ + reg32(CRM_WU_CNTL) = 0x1; /* enable wakeup from wakeup timer */ +// reg32(CRM_WU_TIMEOUT) = 1875000; /* wake 10 sec later if doze */ +#if USE_32KHZ + reg32(CRM_WU_TIMEOUT) = 327680*2; +#else + reg32(CRM_WU_TIMEOUT) = 20000; /* wake 10 sec later if hibernate w/2kHz*/ +#endif + + /* hobby board: 2kHz = 11uA; 32kHz = 11uA */ +// reg32(CRM_SLEEP_CNTL) = 1; /* hibernate, RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 2kHz = 2.0uA */ + /* hobby board: 2kHz = 18uA; 32kHz = 19uA */ +// reg32(CRM_SLEEP_CNTL) = 0x41; /* hibernate, RAM page 0 only, retain state, don't power GPIO */ /* approx. 2kHz = 10.0uA */ + /* hobby board: 2kHz = 20uA; 32kHz = 21uA */ +// reg32(CRM_SLEEP_CNTL) = 0x51; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 2kHz = 11.7uA */ + /* hobby board: 2kHz = 22uA; 32kHz = 22.5uA */ +// reg32(CRM_SLEEP_CNTL) = 0x61; /* hibernate, RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 2kHz = 13.9uA */ + /* hobby board: 2kHz = 24uA; 32kHz = 25uA */ +// reg32(CRM_SLEEP_CNTL) = 0x71; /* hibernate, all RAM pages, retain state, don't power GPIO */ /* approx. 2kHz = 16.1uA */ +// reg32(CRM_SLEEP_CNTL) = 0xf1; /* hibernate, all RAM pages, retain state, power GPIO */ /* consumption depends on GPIO hookup */ // reg32(CRM_SLEEP_CNTL) = 2; /* doze , RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 69.2 uA */ // reg32(CRM_SLEEP_CNTL) = 0x42; /* doze , RAM page 0 only, retain state, don't power GPIO */ /* approx. 77.3uA */ // reg32(CRM_SLEEP_CNTL) = 0x52; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 78.9uA */ // reg32(CRM_SLEEP_CNTL) = 0x62; /* doze , RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 81.2uA */ // reg32(CRM_SLEEP_CNTL) = 0x72; /* doze , all RAM pages, retain state, don't power GPIO */ /* approx. 83.4uA - possibly with periodic refresh*/ -// reg32(CRM_SLEEP_CNTL) = 0xf2; /* doze , all RAM pages, retain state, power GPIO */ /* approx. 82.8uA - possibly with periodic refresh*/ +// reg32(CRM_SLEEP_CNTL) = 0xf2; /* doze , all RAM pages, retain state, power GPIO */ /* consumption depends on GPIO hookup */ /* crmSleepCtrl.sleepType = 0; */ From bf9e762a8189c3537870a48620f84b9000a4034d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 27 May 2009 15:05:25 -0400 Subject: [PATCH 135/471] moved crm addresses to crm.h --- tests/sleep.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/sleep.c b/tests/sleep.c index d36befd3c..e7e8ed6e7 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -7,12 +7,6 @@ #define GPIO_PAD_PU_EN1 0x80000014 #define ADC_CONTROL 0x80000018 -#define CRM_WU_CNTL 0x80003004 -#define CRM_WU_TIMEOUT 0x80003024 -#define CRM_SLEEP_CNTL 0x80003008 -#define CRM_STATUS 0x80003018 -#define CRM_XTAL_CNTL 0x80000040 - #define BASE_UART1 0x80005000 #define UART1_CON 0x80005000 #define UART1_STAT 0x80005004 From c419d7403bd967be110e6a147f3ff2f3e1e3cb77 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 29 May 2009 14:50:38 -0400 Subject: [PATCH 136/471] generate ctov properly. Thanks Umberto! Signed-off-by: Mariano Alvira --- src/maca.c | 71 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 20 deletions(-) diff --git a/src/maca.c b/src/maca.c index 9416e4dd4..29b8b9c3f 100644 --- a/src/maca.c +++ b/src/maca.c @@ -160,6 +160,43 @@ void radio_on(void) { init_phy(); } +/* initialized with 0x4c */ +uint8_t ctov[16] = { + 0x0b, + 0x0b, + 0x0b, + 0x0a, + 0x0d, + 0x0d, + 0x0c, + 0x0c, + 0x0f, + 0x0e, + 0x0e, + 0x0e, + 0x11, + 0x10, + 0x10, + 0x0f, +}; + +/* get_ctov thanks to Umberto */ + +#define _INIT_CTOV_WORD_1 0x00dfbe77 +#define _INIT_CTOV_WORD_2 0x023126e9 +uint8_t get_ctov( uint32_t r0, uint32_t r1 ) +{ + + r0 = r0 * _INIT_CTOV_WORD_1; + r0 += ( r1 << 22 ); + r0 += _INIT_CTOV_WORD_2; + + r0 = (uint32_t)(((int32_t)r0) >> 25); + + return (uint8_t)r0; +} + + /* radio_init has been tested to be good */ void radio_init(void) { volatile uint32_t i; @@ -217,6 +254,19 @@ void radio_init(void) { puts("\n\r"); } + puts("radio_init: ctov parameter 0x"); + put_hex(ram_values[3]); + puts("\n\r"); + for(i=0; i<16; i++) { + ctov[i] = get_ctov(i,ram_values[3]); + puts("radio_init: ctov["); + put_hex(i); + puts("] = 0x"); + put_hex(ctov[i]); + puts("\n\r"); + } + + } const uint32_t PSMVAL[19] = { @@ -333,25 +383,6 @@ const uint32_t VCODivF[16] = { 0x01555555, }; -const uint8_t ctov_4c[16] = { - 0x0b, - 0x0b, - 0x0b, - 0x0a, - 0x0d, - 0x0d, - 0x0c, - 0x0c, - 0x0f, - 0x0e, - 0x0e, - 0x0e, - 0x11, - 0x10, - 0x10, - 0x0f, -}; - /* tested good */ #define ADDR_CHAN1 0x80009800 #define ADDR_CHAN2 (ADDR_CHAN1+12) @@ -376,7 +407,7 @@ void set_channel(uint8_t chan) { reg(ADDR_CHAN4) = tmp; tmp = tmp & 0xffffe0ff; - tmp = tmp | (((ctov_4c[chan])<<8)&0x1F00); + tmp = tmp | (((ctov[chan])<<8)&0x1F00); reg(ADDR_CHAN4) = tmp; /* duh! */ } From 232faa94d24888a669f85979fb71fbefcd9ffa92 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Jun 2009 18:34:00 -0400 Subject: [PATCH 137/471] almost working. --- rftestrx2pcap.pl | 87 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100755 rftestrx2pcap.pl diff --git a/rftestrx2pcap.pl b/rftestrx2pcap.pl new file mode 100755 index 000000000..81bad3727 --- /dev/null +++ b/rftestrx2pcap.pl @@ -0,0 +1,87 @@ +#!/usr/bin/perl -w + +use Device::SerialPort; +use Term::ReadKey; +use Getopt::Long; +use Time::HiRes qw(usleep gettimeofday); + +use strict; + +my $filename = ''; +my $second = ''; +my $term = '/dev/ttyUSB0'; +my $baud = '115200'; +my $verbose; + +GetOptions ( + 'terminal=s' => \$term, + 'baud=s' => \$baud, + ); + +$| = 1; + +# TODO: add help argument +# print "Example usage: rftestrx2pcap.pl -t /dev/ttyS0 -b 9600\n"; +# exit; + +my $ob = Device::SerialPort->new ($term) or die "Can't start $term\n"; + # next test will die at runtime unless $ob + +$ob->baudrate($baud); +$ob->parity('none'); +$ob->databits(8); +$ob->stopbits(1); +$ob->read_const_time(1000); # 1 second per unfulfilled "read" call + +my $str = ''; +my ($sec, $usec, $len); +my @frame; + +my $magic = 0xa1b2c3d4; +my $major = 2; +my $minor = 4; +my $zone = 0; +my $sig = 0; +my $snaplen = 0xffff; +my $network = 195; # 802.15.4 + +print pack('LSSLLLL',($magic,$major,$minor,$zone,$sig,$snaplen,$network)); + +while(1) { + my ($count, $c) = $ob->read(1); + + if (defined($count) && ($count != 0)) { + $str .= $c; + # match if ends in \n or \r and process line + if(($str =~ /\n\r$/) || + ($str =~ /\r\n$/)) { + if($str =~ /^rftest/) { + #new packet + ($sec, $usec) = gettimeofday; +# print "rftestline: $sec $usec $str\n\r"; + } elsif($str =~ /^\s*data/) { + #packet payload + $str =~ /data: 0x\d+ (.+)/; + my @data = split(' ',$1); +# print "dataline: "; + ($len, @data) = @data; +# print "\n\r"; + #write out pcap entry + print pack('LLLL',($sec,$usec,scalar(@data),scalar(@data)+2)); + @frame = @data[0,1]; + print pack ('CC',($frame[1],$frame[0])); + foreach my $data (@data[2..scalar(@data)]) { + print pack ('C',hex($data)); + } + } + + $str = ''; + } + } +} + +$ob -> close or die "Close failed: $!\n"; +ReadMode 0; +undef $ob; # closes port AND frees memory in perl +exit; + From eb758636b385e1bdba42406623987fc8ac3f6138 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Jun 2009 19:23:20 -0400 Subject: [PATCH 138/471] there was an extra byte, proably because of a newline or something. offset by one for now. Works much better now. Needs more testing. Signed-off-by: Mariano Alvira --- rftestrx2pcap.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rftestrx2pcap.pl b/rftestrx2pcap.pl index 81bad3727..73917be9a 100755 --- a/rftestrx2pcap.pl +++ b/rftestrx2pcap.pl @@ -70,7 +70,7 @@ while(1) { print pack('LLLL',($sec,$usec,scalar(@data),scalar(@data)+2)); @frame = @data[0,1]; print pack ('CC',($frame[1],$frame[0])); - foreach my $data (@data[2..scalar(@data)]) { + foreach my $data (@data[2..scalar(@data)-1]) { print pack ('C',hex($data)); } } From e1059a9b15ec52c0605e5128adc916f2169b9d1b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 22 Jun 2009 12:35:39 -0400 Subject: [PATCH 139/471] updated to use the leds on the RedBee hardware and made it a little more general. Signed-off-by: Mariano Alvira --- include/led.h | 13 +++++++++++++ tests/blink-blue.c | 7 +++++-- tests/blink-green.c | 7 +++++-- tests/blink-red.c | 7 +++++-- tests/blink-white.c | 7 +++++-- tests/rftest-rx.c | 9 ++++++--- tests/rftest-tx.c | 8 +++++--- tests/tmr-ints.c | 3 ++- tests/tmr.c | 7 +++++-- 9 files changed, 51 insertions(+), 17 deletions(-) create mode 100644 include/led.h diff --git a/include/led.h b/include/led.h new file mode 100644 index 000000000..ce2798a48 --- /dev/null +++ b/include/led.h @@ -0,0 +1,13 @@ +#ifndef LED_H +#define LED_H + +#define LED_RED ((1 << 23) | (1 << 8)) +#define LED_GREEN ((1 << 24) | (1 << 9)) +#define LED_BLUE ((1 << 25) | (1 << 10)) + +#define LED_YELLOW (LED_RED | LED_GREEN ) +#define LED_PURPLE (LED_RED | LED_BLUE) +#define LED_CYAN ( LED_GREEN | LED_BLUE) +#define LED_WHITE (LED_RED | LED_GREEN | LED_BLUE) + +#endif diff --git a/tests/blink-blue.c b/tests/blink-blue.c index c732d9193..06699279d 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -6,17 +6,20 @@ #include "embedded_types.h" #include "isr.h" +#include "led.h" + +#define LED_BITS LED_BLUE __attribute__ ((section ("startup"))) void main(void) { - *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000400; + *(volatile uint32_t *)GPIO_PAD_DIR0 = LED_BITS; volatile uint32_t i; while(1) { - *(volatile uint32_t *)GPIO_DATA0 = 0x00000400; + *(volatile uint32_t *)GPIO_DATA0 = LED_BITS; for(i=0; i>15) == 0) { continue; } reg16(TMR0_SCTRL) = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ From 56a75f637fef6d485aeddf7ec259e49df0edff22 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 22 Jun 2009 16:22:47 -0400 Subject: [PATCH 140/471] added output of rrdtool lastupdate Signed-off-by: Mariano Alvira --- rimecollect-rrd/meshstat.cgi | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/rimecollect-rrd/meshstat.cgi b/rimecollect-rrd/meshstat.cgi index c95a1b3a7..f4ba0405e 100755 --- a/rimecollect-rrd/meshstat.cgi +++ b/rimecollect-rrd/meshstat.cgi @@ -10,21 +10,21 @@ use CGI qw/:standard/; # paths my $meshpath = "/home/malvira/work"; my $wwwpath = "/var/www"; -my $hostname = "localhost"; +my $hostname = "hotdog.redwirellc.com"; # aliases my %aliases = ( "2.0" => { alias => "Lower Door", ds=> { - "GPIO29" => "Lock", + "GPIO29" => "Lock (0 - locked, 1 - unlocked)", }, }, "4.0" => { alias => "Upper Door", }, "1.0" => { - alias => "Sink (Hotdog)", + alias => "Hotdog (datasink)", }, ); @@ -42,13 +42,17 @@ foreach my $file (@files) { print h1("$addr: $aliases{$addr}{'alias'}"); my @info = split(/\n/,qx(rrdtool info $meshpath/$addr.rrd)); - my %ds; + my %dses; foreach my $info (@info) { - next if $info !~ /ds\[([\w\d]+)\]/; - $ds{$1}++; + next if $info !~ /ds\[([\w\d]+)\]\.([\w\d_]+)\s+=\s+([\w\d]+)/; + $dses{$1}{$2} = $3; } + + my $lastupdate = qx(rrdtool lastupdate $meshpath/$addr.rrd); + $lastupdate =~ /([\w\d]+)\s+(\d+):\s+([\w\d]+)/; + print gmtime($2) . " $1 $3
"; - foreach my $ds (keys(%ds)) { + foreach my $ds (keys(%dses)) { print h2("$ds: $aliases{$addr}{'ds'}{$ds}"); qx(rrdtool graph $wwwpath/$addr-$ds.png --start end-60min DEF:$ds=$meshpath/$addr.rrd:$ds:LAST LINE2:$ds#00a000:\"$ds\"); print img({src=>"http://$hostname/$addr-$ds.png"}); From 400ea36fce4ffad822df9380b6de3ae1b08c7fba Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 22 Jun 2009 16:23:36 -0400 Subject: [PATCH 141/471] final rftest2pcap script Signed-off-by: Mariano Alvira --- rftestrx2pcap.pl | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/rftestrx2pcap.pl b/rftestrx2pcap.pl index 73917be9a..2bf58a657 100755 --- a/rftestrx2pcap.pl +++ b/rftestrx2pcap.pl @@ -53,28 +53,32 @@ while(1) { if (defined($count) && ($count != 0)) { $str .= $c; # match if ends in \n or \r and process line - if(($str =~ /\n\r$/) || - ($str =~ /\r\n$/)) { + if(($str =~ /\n$/) || + ($str =~ /\r$/)) { if($str =~ /^rftest/) { #new packet ($sec, $usec) = gettimeofday; -# print "rftestline: $sec $usec $str\n\r"; + print STDERR "rftestline: $sec $usec $str"; } elsif($str =~ /^\s*data/) { #packet payload + print STDERR "dataline: "; + print STDERR $str; $str =~ /data: 0x\d+ (.+)/; my @data = split(' ',$1); -# print "dataline: "; ($len, @data) = @data; -# print "\n\r"; #write out pcap entry print pack('LLLL',($sec,$usec,scalar(@data),scalar(@data)+2)); + print STDERR "new packet: $sec $usec " . scalar(@data) . " " . (scalar(@data)+2) . "\n\r"; @frame = @data[0,1]; - print pack ('CC',($frame[1],$frame[0])); + print pack ('CC',(hex($frame[0]),hex($frame[1]))); + print STDERR "$frame[0] $frame[1] "; foreach my $data (@data[2..scalar(@data)-1]) { print pack ('C',hex($data)); + print STDERR "$data "; } + print STDERR "\n\r"; } - + print STDERR "\n\r"; $str = ''; } } From 5830ea153ec11a2de2e84845d5b7f3e71a21c895 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 22 Jun 2009 17:06:17 -0400 Subject: [PATCH 142/471] localtime instead of gmtime Signed-off-by: Mariano Alvira --- rimecollect-rrd/meshstat.cgi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rimecollect-rrd/meshstat.cgi b/rimecollect-rrd/meshstat.cgi index f4ba0405e..498c8a4e9 100755 --- a/rimecollect-rrd/meshstat.cgi +++ b/rimecollect-rrd/meshstat.cgi @@ -50,7 +50,7 @@ foreach my $file (@files) { my $lastupdate = qx(rrdtool lastupdate $meshpath/$addr.rrd); $lastupdate =~ /([\w\d]+)\s+(\d+):\s+([\w\d]+)/; - print gmtime($2) . " $1 $3
"; + print localtime($2) . " $1 $3
"; foreach my $ds (keys(%dses)) { print h2("$ds: $aliases{$addr}{'ds'}{$ds}"); From 3d7125e2a9167c6395a0bd23303e76a8d978e5d3 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 4 Aug 2009 10:54:23 -0400 Subject: [PATCH 143/471] put rftests back to channel 11 Signed-off-by: Mariano Alvira --- tests/rftest-rx.c | 2 +- tests/rftest-tx.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 35b527d9e..0e846aba2 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -115,7 +115,7 @@ void main(void) { init_phy(); set_power(0x0f); /* 0dbm */ - set_channel(1); /* channel 11 */ + set_channel(0); /* channel 11 */ reg(MACA_CONTROL) = SMAC_MACA_CNTL_INIT_STATE; for(i=0; i Date: Thu, 6 Aug 2009 09:56:47 -0400 Subject: [PATCH 144/471] removing the old hardcoded type stuff from flasher. doesn't seem to be a problem. Signed-off-by: Mariano Alvira --- tests/flasher.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/tests/flasher.c b/tests/flasher.c index 931b335d6..cd7e9e393 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -155,27 +155,7 @@ void main(void) { /* for OTAP */ for(i=0; i Date: Mon, 10 Aug 2009 16:52:36 -0400 Subject: [PATCH 145/471] added error messages for file not found. Signed-off-by: Mariano Alvira --- mc1322x-load.pl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index f545ad89d..361e26327 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -18,7 +18,7 @@ GetOptions ('file=s' => \$filename, 'terminal=s' => \$term, 'verbose' => \$verbose, 'baud=s' => \$baud, - ); + ) or die 'bad options'; $| = 1; @@ -34,11 +34,12 @@ if($filename eq '') { exit; } +if (!(-e $filename)) { die "file $filename not found\n"; } +if (($second ne '') && !(-e $second)) { die "secondary file $second not found\n"; } + my $ob = Device::SerialPort->new ($term) or die "Can't start $term\n"; # next test will die at runtime unless $ob -if ($filename eq '') { die "you must specify a file with -f\n"; } - $ob->baudrate($baud); $ob->parity('none'); $ob->databits(8); From 16f680544c84e214e70b20b0f0389c5935082603 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 7 Sep 2009 14:39:48 -0400 Subject: [PATCH 146/471] adding a test that blinks all the GPIO --- good for testing soldering jobs. --- tests/blink-allio.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/blink-allio.c diff --git a/tests/blink-allio.c b/tests/blink-allio.c new file mode 100644 index 000000000..55c6e6eca --- /dev/null +++ b/tests/blink-allio.c @@ -0,0 +1,36 @@ +#define MBAR_GPIO 0x80000000 +#define GPIO_PAD_DIR0 0x80000000 +#define GPIO_DATA0 0x80000008 +#define GPIO_PAD_DIR1 0x80000004 +#define GPIO_DATA1 0x8000000c +#define UART1_DATA 0x80005008 +#define DELAY 400000 + +#include "embedded_types.h" +#include "isr.h" +#include "led.h" + +#define LED_BITS LED_WHITE + +__attribute__ ((section ("startup"))) +void main(void) { + + *(volatile uint32_t *)GPIO_PAD_DIR0 = 0xffffffff; + *(volatile uint32_t *)GPIO_PAD_DIR1 = 0xffffffff; + + volatile uint32_t i; + + while(1) { + + *(volatile uint32_t *)GPIO_DATA0 = 0xffffffff; + *(volatile uint32_t *)GPIO_DATA1 = 0xffffffff; + + for(i=0; i Date: Thu, 17 Sep 2009 16:11:19 -0400 Subject: [PATCH 147/471] Not all pins default to GPIO. Setting func_sel to 3 enables GPIO for each pin. Do this. --- tests/blink-allio.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/blink-allio.c b/tests/blink-allio.c index 55c6e6eca..3fee31ec7 100644 --- a/tests/blink-allio.c +++ b/tests/blink-allio.c @@ -1,4 +1,8 @@ #define MBAR_GPIO 0x80000000 +#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ +#define GPIO_FUNC_SEL1 0x8000001c +#define GPIO_FUNC_SEL2 0x80000020 +#define GPIO_FUNC_SEL3 0x80000024 #define GPIO_PAD_DIR0 0x80000000 #define GPIO_DATA0 0x80000008 #define GPIO_PAD_DIR1 0x80000004 @@ -15,6 +19,11 @@ __attribute__ ((section ("startup"))) void main(void) { + *(volatile uint32_t *)GPIO_FUNC_SEL0 = 0xffffffff; + *(volatile uint32_t *)GPIO_FUNC_SEL1 = 0xffffffff; + *(volatile uint32_t *)GPIO_FUNC_SEL2 = 0xffffffff; + *(volatile uint32_t *)GPIO_FUNC_SEL3 = 0xffffffff; + *(volatile uint32_t *)GPIO_PAD_DIR0 = 0xffffffff; *(volatile uint32_t *)GPIO_PAD_DIR1 = 0xffffffff; From c2d5ae331a4bd94b3a07c4cd8ae1b0dc892791c5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 27 Oct 2009 15:09:01 -0400 Subject: [PATCH 148/471] added TODO item for XTAL_CNTL --- TODO | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/TODO b/TODO index 53791b68f..8f733e0d9 100644 --- a/TODO +++ b/TODO @@ -1,9 +1,3 @@ -- write routine that compares registers before and after radioinit and - prints differences - -- get the simulator in IAR working (or qemu) and check out what is - going on there. - -- all of the objects in src (src/*.o) get linked into the final objects - even if they are not used. This should be fixed. +- set XTAL_CNTL. See + http://devl.org/pipermail/mc1322x/2009-October/000063.html From d74103afc557011ce0c14d4fba638cd0a6c1b724 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 2 Nov 2009 10:06:29 -0500 Subject: [PATCH 149/471] newer kernels need $ob->rts_active(1); --- mc1322x-load.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/mc1322x-load.pl b/mc1322x-load.pl index 361e26327..2ff23fd14 100755 --- a/mc1322x-load.pl +++ b/mc1322x-load.pl @@ -46,6 +46,7 @@ $ob->databits(8); $ob->stopbits(1); $ob->handshake("rts"); $ob->read_const_time(1000); # 1 second per unfulfilled "read" call +$ob->rts_active(1); my $s = 0; From 7700e7b10cbb32c144d5ba64bb52f162f2916c6c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 2 Nov 2009 17:18:02 -0500 Subject: [PATCH 150/471] invesitgated how OpenOCD flashing should work. --- TODO | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/TODO b/TODO index 8f733e0d9..eff094808 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,7 @@ +- openocd flashing + use run_algorithm to hook ROM NVM functions + see flash/stm32x.c + - set XTAL_CNTL. See http://devl.org/pipermail/mc1322x/2009-October/000063.html From a75f1c4437eb844ea4fd2d6901579d20ee4f34d4 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 4 Nov 2009 15:48:09 -0500 Subject: [PATCH 151/471] a few little cleanups to the makefile --- Makefile | 7 ------- config.mk | 4 ++-- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 93ad8d3f5..b58848070 100644 --- a/Makefile +++ b/Makefile @@ -32,28 +32,21 @@ ARCH = arm CPU = arm7tdmi-s export ARCH CPU VENDOR -#CROSS_COMPILE = arm-unknown-linux-gnu- -#CROSS_COMPILE = arm-softfloat-linux-gnu- -#export CROSS_COMPILE - # load other configuration include $(TOPDIR)/config.mk ######################################################################### -# blink objects....order is important (i.e. start must be first) AOBJS = COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) TESTS = $(wildcard tests/*.c) TARGETS = $(patsubst %.c,%.o,$(TESTS)) -#TARGETS = tests/blink-white.o # Add GCC lib PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc ######################################################################### -#ALL = blink.srec blink.bin blink.dis blink.System.map ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) .PRECIOUS: $(COBJS) $(TARGETS) $(TESTS:.c=.obj) diff --git a/config.mk b/config.mk index c21f9b280..c45de219d 100644 --- a/config.mk +++ b/config.mk @@ -25,8 +25,8 @@ # clean the slate ... PLATFORM_LDFLAGS = -PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -ffunction-sections -msoft-float -PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mcallee-super-interworking -mthumb -mthumb-interwork +PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -ffunction-sections -msoft-float -Wcast-align -Wall +PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mcallee-super-interworking -mthumb -mthumb-interwork TEXT_BASE = 0x00400000 ######################################################################### From e340e234c6cbcc282fcddfa31da9a7f1e52b0392 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 4 Nov 2009 17:30:18 -0500 Subject: [PATCH 152/471] clean up --- Makefile | 22 ++++++++++++---------- config.mk | 2 +- include/isr.h | 20 -------------------- include/led.h | 13 ------------- src/isr.c | 4 ++-- tests/blink-red.c | 28 ++++++++++++++++------------ 6 files changed, 31 insertions(+), 58 deletions(-) delete mode 100644 include/isr.h delete mode 100644 include/led.h diff --git a/Makefile b/Makefile index b58848070..a6b16c300 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,8 @@ include $(TOPDIR)/config.mk AOBJS = COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) -TESTS = $(wildcard tests/*.c) +#TESTS = $(wildcard tests/*.c) +TESTS = tests/blink-red.c TARGETS = $(patsubst %.c,%.o,$(TESTS)) # Add GCC lib @@ -53,17 +54,17 @@ ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) all: src/start.o src/isr.o $(ALL) -tests/flasher.obj: src/maca.o src/nvm.o -tests/nvm-read.obj: src/maca.o src/nvm.o -tests/nvm-write.obj: src/maca.o src/nvm.o -tests/rftest-rx.obj: src/maca.o src/nvm.o -tests/rftest-tx.obj: src/maca.o src/nvm.o -tests/tmr-ints.obj: src/isr.o -tests/sleep.obj: src/isr.o src/maca.o src/nvm.o +#tests/flasher.obj: src/maca.o src/nvm.o +#tests/nvm-read.obj: src/maca.o src/nvm.o +#tests/nvm-write.obj: src/maca.o src/nvm.o +#tests/rftest-rx.obj: src/maca.o src/nvm.o +#tests/rftest-tx.obj: src/maca.o src/nvm.o +#tests/tmr-ints.obj: src/isr.o +#tests/sleep.obj: src/isr.o src/maca.o src/nvm.o NOTHUMB_CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ - -I$(TOPDIR)/include \ + -I$(TOPDIR)/libmc1322x/include \ -fno-builtin -ffreestanding -nostdinc -isystem \ $(gccincdir) -pipe NOTHUMB_CPPFLAGS_EXTRA = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mthumb-interwork @@ -108,8 +109,9 @@ sinclude .depend clean: find . -type f \ \( -name 'core' -o -name '*.bak' -o -name '*~' \ - -o -name '*.o' -o -name '*.a' \) -print \ + -o -name '*.o' -o -name '*.a' -o -name '*.obj' \) -print \ | xargs rm -f + rm -f $(ALL) $(OBJS) clobber: clean find . -type f \ diff --git a/config.mk b/config.mk index c45de219d..853084aa2 100644 --- a/config.mk +++ b/config.mk @@ -55,7 +55,7 @@ gccincdir := $(shell $(CC) -print-file-name=include) CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ - -I$(TOPDIR)/include \ + -I$(TOPDIR)/libmc1322x/include \ -fno-builtin -ffreestanding -nostdinc -isystem \ $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) diff --git a/include/isr.h b/include/isr.h deleted file mode 100644 index ec4049b89..000000000 --- a/include/isr.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef ISR_H -#define ISR_H - -#include "embedded_types.h" - -#define INTBASE (0x80020000) -#define INTENNUM_OFF (0x8) -#define INTDISNUM_OFF (0xc) -#define INTSRC_OFF (0x30) - -#define INTENNUM INTBASE + INTENNUM_OFF -#define INTDISNUM INTBASE + INTDISNUM_OFF -#define INTSRC INTBASE + INTSRC_OFF - -#define enable_tmr_irq() *(volatile uint32_t *)(INTENNUM) = 5; - -extern void tmr_isr(void) __attribute__((weak)); - -#endif - diff --git a/include/led.h b/include/led.h deleted file mode 100644 index ce2798a48..000000000 --- a/include/led.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef LED_H -#define LED_H - -#define LED_RED ((1 << 23) | (1 << 8)) -#define LED_GREEN ((1 << 24) | (1 << 9)) -#define LED_BLUE ((1 << 25) | (1 << 10)) - -#define LED_YELLOW (LED_RED | LED_GREEN ) -#define LED_PURPLE (LED_RED | LED_BLUE) -#define LED_CYAN ( LED_GREEN | LED_BLUE) -#define LED_WHITE (LED_RED | LED_GREEN | LED_BLUE) - -#endif diff --git a/src/isr.c b/src/isr.c index de7c8e1b7..9c934f341 100644 --- a/src/isr.c +++ b/src/isr.c @@ -1,4 +1,4 @@ -#include "embedded_types.h" +#include "types.h" #include "isr.h" #define reg32(x) (*(volatile uint32_t *)(x)) @@ -7,7 +7,7 @@ __attribute__ ((section (".irq"))) __attribute__ ((interrupt("IRQ"))) void irq(void) { - if(tmr_isr != NULL) { + if(tmr_isr != 0) { tmr_isr(); } } diff --git a/tests/blink-red.c b/tests/blink-red.c index 93464601b..e8b77c7c5 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -1,29 +1,33 @@ -#define MBAR_GPIO 0x80000000 -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 -#define UART1_DATA 0x80005008 -#define DELAY 400000 - -#include "embedded_types.h" +#include "types.h" #include "isr.h" #include "led.h" +#define MBAR_GPIO 0x80000000 +#define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) +#define GPIO_DATA0 ((volatile uint32_t *) 0x80000008) +#define UART1_DATA ((volatile uint32_t *) 0x80005008) +#define DELAY 400000 + #define LED_BITS LED_RED -__attribute__ ((section ("startup"))) void main(void) { - *(volatile uint32_t *)GPIO_PAD_DIR0 = LED_BITS; - +__attribute__ ((section ("startup"))) +void main(void) { volatile uint32_t i; + + *GPIO_PAD_DIR0 = LED_BITS; + while(1) { - *(volatile uint32_t *)GPIO_DATA0 = LED_BITS; + *GPIO_DATA0 = LED_BITS; for(i=0; i Date: Tue, 15 Dec 2009 14:18:48 -0500 Subject: [PATCH 153/471] starting libmc1322x.a --- Makefile | 7 +++++++ board/boards.h | 7 +++++++ libmc1322x/include/isr.h | 18 ++++++++++++++++++ libmc1322x/include/mc1322x.h | 7 +++++++ {include => libmc1322x/include}/nvm.h | 2 +- libmc1322x/include/types.h | 13 +++++++++++++ {src => libmc1322x}/nvm.c | 0 tests/blink-red.c | 5 ++--- 8 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 board/boards.h create mode 100644 libmc1322x/include/isr.h create mode 100644 libmc1322x/include/mc1322x.h rename {include => libmc1322x/include}/nvm.h (97%) create mode 100644 libmc1322x/include/types.h rename {src => libmc1322x}/nvm.c (100%) diff --git a/Makefile b/Makefile index a6b16c300..65cbfe6fd 100644 --- a/Makefile +++ b/Makefile @@ -52,6 +52,13 @@ ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) .PRECIOUS: $(COBJS) $(TARGETS) $(TESTS:.c=.obj) +LIBOBJS = $(patsubst %.c,%.o,$(wildcard libmc1322x/*.c)) + +libmc1322x: libmc1322x.a + +libmc1322x.a: $(LIBOBJS) + $(AR) r libmc1322x.a $(LIBOBJS) + all: src/start.o src/isr.o $(ALL) #tests/flasher.obj: src/maca.o src/nvm.o diff --git a/board/boards.h b/board/boards.h new file mode 100644 index 000000000..6dfe63f53 --- /dev/null +++ b/board/boards.h @@ -0,0 +1,7 @@ +#ifdef BOARD_REDBEE_DEV +#include "redbee-dev.h" +#endif + +#ifdef BOARD_REDWIRE_R1 +#include "red-r1.h" +#endif diff --git a/libmc1322x/include/isr.h b/libmc1322x/include/isr.h new file mode 100644 index 000000000..e629f5b2f --- /dev/null +++ b/libmc1322x/include/isr.h @@ -0,0 +1,18 @@ +#ifndef ISR_H +#define ISR_H + +#define INTBASE (0x80020000) +#define INTENNUM_OFF (0x8) +#define INTDISNUM_OFF (0xc) +#define INTSRC_OFF (0x30) + +#define INTENNUM INTBASE + INTENNUM_OFF +#define INTDISNUM INTBASE + INTDISNUM_OFF +#define INTSRC INTBASE + INTSRC_OFF + +#define enable_tmr_irq() *(volatile uint32_t *)(INTENNUM) = 5; + +extern void tmr_isr(void) __attribute__((weak)); + +#endif + diff --git a/libmc1322x/include/mc1322x.h b/libmc1322x/include/mc1322x.h new file mode 100644 index 000000000..beca8e97f --- /dev/null +++ b/libmc1322x/include/mc1322x.h @@ -0,0 +1,7 @@ +#ifndef MC1322X_H +#define MC1322X_H + +#include "types.h" +#include "isr.h" + +#endif diff --git a/include/nvm.h b/libmc1322x/include/nvm.h similarity index 97% rename from include/nvm.h rename to libmc1322x/include/nvm.h index 6059bfb8f..0261f2be3 100644 --- a/include/nvm.h +++ b/libmc1322x/include/nvm.h @@ -1,7 +1,7 @@ #ifndef NVM_H #define NVM_H -#include "embedded_types.h" +#include "types.h" typedef enum { diff --git a/libmc1322x/include/types.h b/libmc1322x/include/types.h new file mode 100644 index 000000000..93bb4d9d5 --- /dev/null +++ b/libmc1322x/include/types.h @@ -0,0 +1,13 @@ +#ifndef _TYPES_H +#define _TYPES_H + +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed long int32_t; +typedef unsigned long uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; + +#endif diff --git a/src/nvm.c b/libmc1322x/nvm.c similarity index 100% rename from src/nvm.c rename to libmc1322x/nvm.c diff --git a/tests/blink-red.c b/tests/blink-red.c index e8b77c7c5..cccc1b1ca 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -1,6 +1,5 @@ -#include "types.h" -#include "isr.h" -#include "led.h" +#include "mc1322x.h" +#include "boards.h" #define MBAR_GPIO 0x80000000 #define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) From c4f6aa459ea58cb6cb292afc89d78af8fa97f55e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 20 Feb 2010 09:33:28 -0500 Subject: [PATCH 154/471] checkpoint -- reorganizing and fixing errors --- Makefile | 2 +- {include => libmc1322x/include}/maca.h | 0 libmc1322x/nvm.c | 24 +++++-- src/interrupt-utils.c | 95 ------------------------- src/maca.c | 4 +- src/sys-interrupt.c | 97 -------------------------- 6 files changed, 22 insertions(+), 200 deletions(-) rename {include => libmc1322x/include}/maca.h (100%) delete mode 100644 src/interrupt-utils.c delete mode 100644 src/sys-interrupt.c diff --git a/Makefile b/Makefile index 65cbfe6fd..3c4dd1b76 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,7 @@ include $(TOPDIR)/config.mk AOBJS = COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) #TESTS = $(wildcard tests/*.c) -TESTS = tests/blink-red.c +TESTS = tests/blink-red.c #tests/nvm-read.c TARGETS = $(patsubst %.c,%.o,$(TESTS)) # Add GCC lib diff --git a/include/maca.h b/libmc1322x/include/maca.h similarity index 100% rename from include/maca.h rename to libmc1322x/include/maca.h diff --git a/libmc1322x/nvm.c b/libmc1322x/nvm.c index 2f47123e1..15f823dd9 100644 --- a/libmc1322x/nvm.c +++ b/libmc1322x/nvm.c @@ -1,7 +1,21 @@ #include "nvm.h" -volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType) = 0x00006cb9; -volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes) = 0x00006d69; -volatile nvmErr_t (*nvm_write)(nvmInterface_t nvmInterface, nvmType_t nvmType ,void *pSrc, uint32_t address, uint32_t numBytes) = 0x00006ec5; -volatile nvmErr_t (*nvm_erase)(nvmInterface_t nvmInterface, nvmType_t nvmType ,uint32_t sectorBitfield) = 0x00006e05; -volatile void(*nvm_setsvar)(uint32_t zero_for_awesome) = 0x00007085; +volatile nvmErr_t (*nvm_detect) +(nvmInterface_t nvmInterface,nvmType_t* pNvmType) += (void *) 0x00006cb9; + +volatile nvmErr_t (*nvm_read) +(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes) += (void *) 0x00006d69; + +volatile nvmErr_t (*nvm_write) +(nvmInterface_t nvmInterface, nvmType_t nvmType ,void *pSrc, uint32_t address, uint32_t numBytes) += (void *) 0x00006ec5; + +volatile nvmErr_t (*nvm_erase) +(nvmInterface_t nvmInterface, nvmType_t nvmType ,uint32_t sectorBitfield) += (void*) 0x00006e05; + +volatile void(*nvm_setsvar) +(uint32_t zero_for_awesome) += (void *)0x00007085; diff --git a/src/interrupt-utils.c b/src/interrupt-utils.c deleted file mode 100644 index 2e2f7c1e2..000000000 --- a/src/interrupt-utils.c +++ /dev/null @@ -1,95 +0,0 @@ -/****************************************************************************** - * - * $RCSfile: interrupt-utils.c,v $ - * $Revision: 1.2 $ - * - * This module provides the interface routines for setting up and - * controlling the various interrupt modes present on the ARM processor. - * Copyright 2004, R O SoftWare - * No guarantees, warrantees, or promises, implied or otherwise. - * May be used for hobby or commercial purposes provided copyright - * notice remains intact. - * - *****************************************************************************/ -#include "interrupt-utils.h" - -#define IRQ_MASK 0x00000080 -#define FIQ_MASK 0x00000040 -#define INT_MASK (IRQ_MASK | FIQ_MASK) - -unsigned __get_cpsr(void) -{ - unsigned long retval; - asm volatile ( - ".code 32;" - "mrs %0, cpsr;" - ".code 16;" - : "=r" (retval) : - ); - return retval; -} - -void __set_cpsr(unsigned val) -{ - asm volatile ( - ".code 32;" - "msr cpsr_c, %0;" - ".code 16;" - : : "r" (val) - ); -} - - -unsigned disableIRQ(void) -{ - unsigned _cpsr; - - _cpsr = __get_cpsr(); - __set_cpsr(_cpsr | IRQ_MASK); - return _cpsr; -} - -unsigned restoreIRQ(unsigned oldCPSR) -{ - unsigned _cpsr; - - _cpsr = __get_cpsr(); - __set_cpsr((_cpsr & ~IRQ_MASK) | (oldCPSR & IRQ_MASK)); - return _cpsr; -} - -unsigned enableIRQ(void) -{ - unsigned _cpsr; - - _cpsr = __get_cpsr(); - __set_cpsr(_cpsr & ~IRQ_MASK); - return _cpsr; -} - -unsigned disableFIQ(void) -{ - unsigned _cpsr; - - _cpsr = __get_cpsr(); - __set_cpsr(_cpsr | FIQ_MASK); - return _cpsr; -} - -unsigned restoreFIQ(unsigned oldCPSR) -{ - unsigned _cpsr; - - _cpsr = __get_cpsr(); - __set_cpsr((_cpsr & ~FIQ_MASK) | (oldCPSR & FIQ_MASK)); - return _cpsr; -} - -unsigned enableFIQ(void) -{ - unsigned _cpsr; - - _cpsr = __get_cpsr(); - __set_cpsr(_cpsr & ~FIQ_MASK); - return _cpsr; -} diff --git a/src/maca.c b/src/maca.c index 29b8b9c3f..9698bf52d 100644 --- a/src/maca.c +++ b/src/maca.c @@ -1,6 +1,6 @@ -#include "embedded_types.h" +#include +#include #include "maca.h" -#include "nvm.h" #define reg(x) (*(volatile uint32_t *)(x)) diff --git a/src/sys-interrupt.c b/src/sys-interrupt.c deleted file mode 100644 index 6a8b36e1d..000000000 --- a/src/sys-interrupt.c +++ /dev/null @@ -1,97 +0,0 @@ -#include "sys-interrupt.h" -#include "interrupt-utils.h" - -#include "embedded_types.h" - -#define ATTR - -#ifndef NULL -#define NULL 0 -#endif - - -static SystemInterruptHandler *handlers = NULL; - -static void -system_int_safe (void) __attribute__((noinline)); - -static void -system_int_safe (void) -{ - SystemInterruptHandler *h; - h = handlers; - while (h) { - if (h->handler()) break; - h = h->next; - } -} - -static void NACKEDFUNC ATTR -system_int (void) /* System Interrupt Handler */ -{ - ISR_ENTRY(); - system_int_safe(); - ISR_EXIT(); -} - -static unsigned int enabled = 0; /* Number of times the system - interrupt has been enabled */ - -#define INTCNTL 0x80020000 -#define DIS_INT *((volatile uint32_t *)INTCNTL) = 3 << 19; -#define EN_INT if (enabled > 0) *((volatile uint32_t *)INTCNTL) = 0; - -void -sys_interrupt_enable() -{ - if (enabled++ == 0) { - /* Enable */ - EN_INT; - } -} - - -void -sys_interrupt_disable() -{ - if (--enabled == 0) { - DIS_INT; - } -} - -void -sys_interrupt_append_handler(SystemInterruptHandler *handler) -{ - SystemInterruptHandler **h = &handlers; - while(*h) { - h = &(*h)->next; - } - DIS_INT; - *h = handler; - handler->next = NULL; - EN_INT; -} - -void -sys_interrupt_prepend_handler(SystemInterruptHandler *handler) -{ - DIS_INT; - handler->next = handlers; - handlers = handler; - EN_INT; -} - -void -sys_interrupt_remove_handler(SystemInterruptHandler *handler) -{ - SystemInterruptHandler **h = &handlers; - while(*h) { - if (*h == handler) { - DIS_INT; - *h = handler->next; - EN_INT; - break; - } - h = &(*h)->next; - } -} From 948478193e50340a421fa17e46cbe07c97576e50 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 21 Feb 2010 10:25:22 -0500 Subject: [PATCH 155/471] checkpoint --- Makefile | 7 +++++-- config.mk | 1 + libmc1322x/include/maca.h | 2 +- tests/blink-red.c | 4 ++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 3c4dd1b76..b0a39848d 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,7 @@ include $(TOPDIR)/config.mk AOBJS = COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) #TESTS = $(wildcard tests/*.c) -TESTS = tests/blink-red.c #tests/nvm-read.c +#TESTS = tests/blink-red.c #tests/nvm-read.c TARGETS = $(patsubst %.c,%.o,$(TESTS)) # Add GCC lib @@ -54,12 +54,15 @@ ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) LIBOBJS = $(patsubst %.c,%.o,$(wildcard libmc1322x/*.c)) +include $(TOPDIR)/board/dev/Makefile +all: board + libmc1322x: libmc1322x.a libmc1322x.a: $(LIBOBJS) $(AR) r libmc1322x.a $(LIBOBJS) -all: src/start.o src/isr.o $(ALL) +#all: src/start.o src/isr.o $(ALL) #tests/flasher.obj: src/maca.o src/nvm.o #tests/nvm-read.obj: src/maca.o src/nvm.o diff --git a/config.mk b/config.mk index 853084aa2..5af284c46 100644 --- a/config.mk +++ b/config.mk @@ -56,6 +56,7 @@ gccincdir := $(shell $(CC) -print-file-name=include) CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ -I$(TOPDIR)/libmc1322x/include \ + -I$(TOPDIR)/board \ -fno-builtin -ffreestanding -nostdinc -isystem \ $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) diff --git a/libmc1322x/include/maca.h b/libmc1322x/include/maca.h index 3091685ce..15997ac1c 100644 --- a/libmc1322x/include/maca.h +++ b/libmc1322x/include/maca.h @@ -1,7 +1,7 @@ #ifndef _MACA_H_ #define _MACA_H_ -#include "embedded_types.h" +#include #define MACA_BASE 0x80004000 #define MACA_RESET 0x80004004 diff --git a/tests/blink-red.c b/tests/blink-red.c index cccc1b1ca..cde4ef6e1 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -1,5 +1,5 @@ -#include "mc1322x.h" -#include "boards.h" +#include +#include #define MBAR_GPIO 0x80000000 #define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) From 5adb6413d7c36b67fca3fa8c69b09516f44bdddb Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 21 Feb 2010 17:34:27 -0500 Subject: [PATCH 156/471] Hi Mar. --- Makefile.include | 139 +++++++++++++++++++++++++++++++++++++++++++++++ tests/Makefile | 7 +++ 2 files changed, 146 insertions(+) create mode 100644 Makefile.include create mode 100644 tests/Makefile diff --git a/Makefile.include b/Makefile.include new file mode 100644 index 000000000..38dd85d99 --- /dev/null +++ b/Makefile.include @@ -0,0 +1,139 @@ +# +# (C) Copyright 2000-2004 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +# Deal with colliding definitions from tcsh etc. +VENDOR= + +######################################################################### + +ARCH = arm +CPU = arm7tdmi-s +export ARCH CPU VENDOR + +# load other configuration +include $(LIBMC1322x)/config.mk + +######################################################################### + +AOBJS = +COBJS = $(patsubst %.c,%.o,$(wildcard $(LIBMC1322x)/src/*.c)) +#TESTS = $(wildcard tests/*.c) +#TESTS = tests/blink-red.c #tests/nvm-read.c +TARGETS = $(patsubst %.c,%.o,$(TESTS)) + +# Add GCC lib +PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc + +######################################################################### + +ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) + +.PRECIOUS: $(COBJS) $(TARGETS) $(TESTS:.c=.obj) + +LIBOBJS = $(patsubst %.c,%.o,$(wildcard libmc1322x/*.c)) + +include $(LIBMC1322x)/board/dev/Makefile + +libmc1322x: libmc1322x.a + +libmc1322x.a: $(LIBOBJS) + $(AR) r libmc1322x.a $(LIBOBJS) + +#all: src/start.o src/isr.o $(ALL) + +#tests/flasher.obj: src/maca.o src/nvm.o +#tests/nvm-read.obj: src/maca.o src/nvm.o +#tests/nvm-write.obj: src/maca.o src/nvm.o +#tests/rftest-rx.obj: src/maca.o src/nvm.o +#tests/rftest-tx.obj: src/maca.o src/nvm.o +#tests/tmr-ints.obj: src/isr.o +#tests/sleep.obj: src/isr.o src/maca.o src/nvm.o + +NOTHUMB_CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ + -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ + -I$(LIBMC1322x)/libmc1322x/include \ + -fno-builtin -ffreestanding -nostdinc -isystem \ + $(gccincdir) -pipe +NOTHUMB_CPPFLAGS_EXTRA = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mthumb-interwork + + +src/isr.o: src/isr.c + $(CC) $(NOTHUMB_CPPFLAGS) $(NOTHUMB_CPPFLAGS_EXTRA) -c -o $@ $< + +%.srec: %.obj + $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ + +%.ihex: %.obj + $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ + +%.bin: %.obj + $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ + +%.dis: %.obj + $(OBJDUMP) -SD $< > $@ + +%.obj: $(LDSCRIPT) %.o src/isr.o + $(LD) $(LDFLAGS) $(AOBJS) \ + --start-group $(PLATFORM_LIBS) --end-group \ + -Map $*.map $^ -o $@ + + +%.System.map: %.obj + @$(NM) $< | \ + grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ + sort > $*.System.map + + +######################################################################### + +.depend: Makefile $(AOBJS:.o=.S) $(COBJS:.o=.c) + $(CC) -M $(CFLAGS) $(AOBJS:.o=.S) $(COBJS:.o=.c) > $@ + +sinclude .depend + +######################################################################### + +clean: + find . -type f \ + \( -name 'core' -o -name '*.bak' -o -name '*~' \ + -o -name '*.o' -o -name '*.a' -o -name '*.obj' \) -print \ + | xargs rm -f + rm -f $(ALL) $(OBJS) + +clobber: clean + find . -type f \ + \( -name .depend -o -name '*.srec' -o -name '*.bin' -o -name '*.dis' -o -name '*.map' -o -name '*.obj' \) \ + -print \ + | xargs rm -f + rm -f $(OBJS) *.bak tags TAGS + rm -fr *.*~ + rm -f $(ALL) + +mrproper \ +distclean: clobber + +backup: + F=`basename $(LIBMC1322x)` ; cd .. ; \ + tar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F + +######################################################################### diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 000000000..e064d7352 --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,7 @@ +LIBMC1322x = .. + +BOARD=dev + +include $(LIBMC1322x)/Makefile.include + +all: blink-red \ No newline at end of file From 1759ff01a0eaf3f88a0dc8d64b0d69a34b9a65e9 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 21 Feb 2010 18:47:12 -0500 Subject: [PATCH 157/471] getting there... --- Makefile.include | 123 ++----------------- board/Makefile.board | 7 ++ board/boards.h | 7 -- board/redbee-dev.h | 4 + config.mk | 43 +------ libmc1322x/Makefile.lib | 1 + mc1322x.lds | 262 ++++++++++++++++++++++++++++++++++++++++ tests/Makefile | 6 +- tests/blink-red.c | 7 +- 9 files changed, 296 insertions(+), 164 deletions(-) create mode 100644 board/Makefile.board delete mode 100644 board/boards.h create mode 100644 board/redbee-dev.h create mode 100644 libmc1322x/Makefile.lib create mode 100644 mc1322x.lds diff --git a/Makefile.include b/Makefile.include index 38dd85d99..6f90ce88a 100644 --- a/Makefile.include +++ b/Makefile.include @@ -1,117 +1,24 @@ -# -# (C) Copyright 2000-2004 -# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -# -# See file CREDITS for list of people who contributed to this -# project. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -# MA 02111-1307 USA -# +LINKERSCRIPT = $(MC1322X)/mc1322x.lds +LIBMC1322X = $(MC1322X)/libmc1322x -# Deal with colliding definitions from tcsh etc. -VENDOR= +include $(MC1322X)/config.mk -######################################################################### +include $(MC1322X)/board/Makefile.board + +include $(MC1322X)/libmc1322x/Makefile.lib ARCH = arm CPU = arm7tdmi-s export ARCH CPU VENDOR -# load other configuration -include $(LIBMC1322x)/config.mk +$(OBJDIR)/isr.o: isr.c + $(CC) $(CFLAGS) $(ARM_FLAGS) $< -c -o $@ -######################################################################### +%.o: %.c + $(CC) $(CFLAGS) $(THUMB_FLAGS) $< -c -AOBJS = -COBJS = $(patsubst %.c,%.o,$(wildcard $(LIBMC1322x)/src/*.c)) -#TESTS = $(wildcard tests/*.c) -#TESTS = tests/blink-red.c #tests/nvm-read.c -TARGETS = $(patsubst %.c,%.o,$(TESTS)) - -# Add GCC lib -PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc - -######################################################################### - -ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) - -.PRECIOUS: $(COBJS) $(TARGETS) $(TESTS:.c=.obj) - -LIBOBJS = $(patsubst %.c,%.o,$(wildcard libmc1322x/*.c)) - -include $(LIBMC1322x)/board/dev/Makefile - -libmc1322x: libmc1322x.a - -libmc1322x.a: $(LIBOBJS) - $(AR) r libmc1322x.a $(LIBOBJS) - -#all: src/start.o src/isr.o $(ALL) - -#tests/flasher.obj: src/maca.o src/nvm.o -#tests/nvm-read.obj: src/maca.o src/nvm.o -#tests/nvm-write.obj: src/maca.o src/nvm.o -#tests/rftest-rx.obj: src/maca.o src/nvm.o -#tests/rftest-tx.obj: src/maca.o src/nvm.o -#tests/tmr-ints.obj: src/isr.o -#tests/sleep.obj: src/isr.o src/maca.o src/nvm.o - -NOTHUMB_CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ - -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ - -I$(LIBMC1322x)/libmc1322x/include \ - -fno-builtin -ffreestanding -nostdinc -isystem \ - $(gccincdir) -pipe -NOTHUMB_CPPFLAGS_EXTRA = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mthumb-interwork - - -src/isr.o: src/isr.c - $(CC) $(NOTHUMB_CPPFLAGS) $(NOTHUMB_CPPFLAGS_EXTRA) -c -o $@ $< - -%.srec: %.obj - $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ - -%.ihex: %.obj - $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ - -%.bin: %.obj - $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ - -%.dis: %.obj - $(OBJDUMP) -SD $< > $@ - -%.obj: $(LDSCRIPT) %.o src/isr.o - $(LD) $(LDFLAGS) $(AOBJS) \ - --start-group $(PLATFORM_LIBS) --end-group \ - -Map $*.map $^ -o $@ - - -%.System.map: %.obj - @$(NM) $< | \ - grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ - sort > $*.System.map - - -######################################################################### - -.depend: Makefile $(AOBJS:.o=.S) $(COBJS:.o=.c) - $(CC) -M $(CFLAGS) $(AOBJS:.o=.S) $(COBJS:.o=.c) > $@ - -sinclude .depend - -######################################################################### +$(OBJDIR)/%.o: %.c + $(CC) $(CFLAGS) $(THUMB_FLAGS) -c $< -o $@ clean: find . -type f \ @@ -131,9 +38,3 @@ clobber: clean mrproper \ distclean: clobber - -backup: - F=`basename $(LIBMC1322x)` ; cd .. ; \ - tar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F - -######################################################################### diff --git a/board/Makefile.board b/board/Makefile.board new file mode 100644 index 000000000..bcc333625 --- /dev/null +++ b/board/Makefile.board @@ -0,0 +1,7 @@ +CFLAGS += -I obj_$(BOARD)_board +OBJDIR = obj_$(BOARD)_board + +board: + @echo "setup object directory for dev board" + mkdir -p $(OBJDIR) + cp $(MC1322X)/board/$(BOARD).h $(OBJDIR) \ No newline at end of file diff --git a/board/boards.h b/board/boards.h deleted file mode 100644 index 6dfe63f53..000000000 --- a/board/boards.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifdef BOARD_REDBEE_DEV -#include "redbee-dev.h" -#endif - -#ifdef BOARD_REDWIRE_R1 -#include "red-r1.h" -#endif diff --git a/board/redbee-dev.h b/board/redbee-dev.h new file mode 100644 index 000000000..af7c38ffa --- /dev/null +++ b/board/redbee-dev.h @@ -0,0 +1,4 @@ +#ifndef BOARD_REDBEE_DEV_H +#define BOARD_REDBEE_DEV_H + +#endif diff --git a/config.mk b/config.mk index 5af284c46..a0a1533fa 100644 --- a/config.mk +++ b/config.mk @@ -1,33 +1,7 @@ -# -# (C) Copyright 2000 -# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -# -# See file CREDITS for list of people who contributed to this -# project. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -# MA 02111-1307 USA -# - -######################################################################### - -# clean the slate ... PLATFORM_LDFLAGS = PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -ffunction-sections -msoft-float -Wcast-align -Wall -PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mcallee-super-interworking -mthumb -mthumb-interwork -TEXT_BASE = 0x00400000 +PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mthumb-interwork +THUMB_FLAGS=-mthumb -mcallee-super-interworking ######################################################################### @@ -55,22 +29,15 @@ gccincdir := $(shell $(CC) -print-file-name=include) CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ - -I$(TOPDIR)/libmc1322x/include \ - -I$(TOPDIR)/board \ -fno-builtin -ffreestanding -nostdinc -isystem \ $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) -ifdef BUILD_TAG -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes \ - -DBUILD_TAG='"$(BUILD_TAG)"' -else -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -endif +CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wcast-align AFLAGS_DEBUG := -Wa,-gstabs AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) -LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) +LDFLAGS += -T $(LINKERSCRIPT) -nostartfiles -static -Wl,-Map=$@-$(BOARD).map,-export-dynamic ######################################################################### @@ -84,6 +51,6 @@ export TEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS CPPFLAGS CFLAGS AFLAGS %.o: %.S $(CC) $(AFLAGS) -c -o $@ $(CURDIR)/$< %.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< + $(CC) $(CFLAGS) $(THUMB_FLAGS) -c -o $@ $< ######################################################################### diff --git a/libmc1322x/Makefile.lib b/libmc1322x/Makefile.lib new file mode 100644 index 000000000..41076d2fb --- /dev/null +++ b/libmc1322x/Makefile.lib @@ -0,0 +1 @@ +CFLAGS += -I$(LIBMC1322X)/include diff --git a/mc1322x.lds b/mc1322x.lds new file mode 100644 index 000000000..061604a23 --- /dev/null +++ b/mc1322x.lds @@ -0,0 +1,262 @@ +/* Script for -z combreloc: combine and sort reloc sections */ +OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", + "elf32-littlearm") +OUTPUT_ARCH(arm) +ENTRY(_start) +SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); +SECTIONS +{ + +SYS_STACK_SIZE = 1024; +IRQ_STACK_SIZE = 256; +FIQ_STACK_SIZE = 256; +SVC_STACK_SIZE = 256; +ABT_STACK_SIZE = 16; +UND_STACK_SIZE = 16; +HEAP_SIZE = 1024; + + /* Read-only sections, merged into text segment: */ + PROVIDE (__executable_start = 0x00400000); . = 0x00400000; + .text : + { + *startup.o (.text) + *(.irq) + *(.text .stub .text.* .gnu.linkonce.t.*) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) + } =0 + + .stack : { + __stack_start__ = . ; + + . += IRQ_STACK_SIZE; + . = ALIGN (4); + __irq_stack_top__ = . ; + + . += FIQ_STACK_SIZE; + . = ALIGN (4); + __fiq_stack_top__ = . ; + + . += SVC_STACK_SIZE; + . = ALIGN (4); + __svc_stack_top__ = . ; + + . += ABT_STACK_SIZE; + . = ALIGN (4); + __abt_stack_top__ = . ; + + . += UND_STACK_SIZE; + . = ALIGN (4); + __und_stack_top__ = . ; + + . += SYS_STACK_SIZE; + . = ALIGN (4); + __sys_stack_top__ = . ; + + __stack_end__ = .; + } + + .interp : { *(.interp) } + .note.gnu.build-id : { *(.note.gnu.build-id) } + .hash : { *(.hash) } + .gnu.hash : { *(.gnu.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.dyn : + { + *(.rel.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rel.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rel.dtors) + *(.rel.got) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + } + .rela.dyn : + { + *(.rela.init) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rela.fini) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rela.ctors) + *(.rela.dtors) + *(.rela.got) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + } + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + .init : + { + KEEP (*(.init)) + } =0 + .plt : { *(.plt) } + .fini : + { + KEEP (*(.fini)) + } =0 + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } + .rodata1 : { *(.rodata1) } + .eh_frame_hdr : { *(.eh_frame_hdr) } + .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } + .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } + /* Adjust the address for the data segment. We want to adjust up to + the same address within the page on the next page up. */ + +/* . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); */ + + . = ALIGN(4); + . = DATA_SEGMENT_ALIGN(4,4); + + /* Exception handling */ + .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } + .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } + /* Thread Local Storage sections */ + .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } + .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + } + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + } + .ctors : + { + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin?.o(.ctors)) + /* We don't want to include the .ctor section from + the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + } + .dtors : + { + KEEP (*crtbegin.o(.dtors)) + KEEP (*crtbegin?.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + } + .jcr : { KEEP (*(.jcr)) } + .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } + .dynamic : { *(.dynamic) } + . = DATA_SEGMENT_RELRO_END (0, .); + .got : { *(.got.plt) *(.got) } + .data : + { + __data_start = . ; + *(.data .data.* .gnu.linkonce.d.*) + SORT(CONSTRUCTORS) + } + .data1 : { *(.data1) } + _edata = .; PROVIDE (edata = .); + __bss_start = .; + __bss_start__ = .; + .bss : + { + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + /* Align here to ensure that the .bss section occupies space up to + _end. Align after .bss to ensure correct alignment even if the + .bss section disappears because there are no input sections. + FIXME: Why do we need it? When there is no .bss section, we don't + pad the .data section. */ + . = ALIGN(. != 0 ? 32 / 8 : 1); + } + _bss_end__ = . ; __bss_end__ = . ; + . = ALIGN(32 / 8); + + .heap : { + __heap_start__ = . ; + *(.heap); + . += HEAP_SIZE; + . = ALIGN (4); + __heap_end__ = . ; + } + + + . = ALIGN(32 / 8); + __end__ = . ; + _end = .; PROVIDE (end = .); + . = DATA_SEGMENT_END (.); + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + /* DWARF 3 */ + .debug_pubtypes 0 : { *(.debug_pubtypes) } + .debug_ranges 0 : { *(.debug_ranges) } + .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } + .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } + /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) } +} diff --git a/tests/Makefile b/tests/Makefile index e064d7352..b360356f6 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,7 +1,5 @@ -LIBMC1322x = .. +MC1322X = .. -BOARD=dev - -include $(LIBMC1322x)/Makefile.include +include $(MC1322X)/Makefile.include all: blink-red \ No newline at end of file diff --git a/tests/blink-red.c b/tests/blink-red.c index cde4ef6e1..16a2189ee 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -1,5 +1,4 @@ #include -#include #define MBAR_GPIO 0x80000000 #define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) @@ -7,18 +6,18 @@ #define UART1_DATA ((volatile uint32_t *) 0x80005008) #define DELAY 400000 -#define LED_BITS LED_RED +//#define LED_BITS LED_RED __attribute__ ((section ("startup"))) void main(void) { volatile uint32_t i; - *GPIO_PAD_DIR0 = LED_BITS; +// *GPIO_PAD_DIR0 = LED_BITS; while(1) { - *GPIO_DATA0 = LED_BITS; +// *GPIO_DATA0 = LED_BITS; for(i=0; i Date: Mon, 22 Feb 2010 12:19:39 -0500 Subject: [PATCH 158/471] this is working kind of correctly. need to clean it up, get the different boards going and add in the lib build. --- Makefile.include | 27 +++++++++++++++++++++------ config.mk | 12 +++--------- mc1322x.lds | 2 +- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/Makefile.include b/Makefile.include index 6f90ce88a..aff77f4c1 100644 --- a/Makefile.include +++ b/Makefile.include @@ -7,18 +7,33 @@ include $(MC1322X)/board/Makefile.board include $(MC1322X)/libmc1322x/Makefile.lib +# default start and isr +ifndef START + START = $(MC1322X)/src/start.o +endif +ifndef ISR + ISR = $(MC1322X)/src/isr.o +endif + + ARCH = arm CPU = arm7tdmi-s export ARCH CPU VENDOR -$(OBJDIR)/isr.o: isr.c +%.s: %.S + $(CPP) $(AFLAGS) -o $@ $(CURDIR)/$< +%.o: %.S + $(CC) $(AFLAGS) -c -o $@ $(CURDIR)/$< +%.o: %.c + $(CC) $(CFLAGS) $(THUMB_FLAGS) -c -o $@ $< + +$(ISR): $(ISR:.o=.c) $(CC) $(CFLAGS) $(ARM_FLAGS) $< -c -o $@ -%.o: %.c - $(CC) $(CFLAGS) $(THUMB_FLAGS) $< -c - -$(OBJDIR)/%.o: %.c - $(CC) $(CFLAGS) $(THUMB_FLAGS) -c $< -o $@ +%.elf: $(START) $(ISR) %.o $(LINKERSCRIPT) + $(LD) $(LDFLAGS) $(AOBJS) \ + --start-group $(PLATFORM_LIBS) --end-group \ + $(filter %.o %.a,$+) -o $@ clean: find . -type f \ diff --git a/config.mk b/config.mk index a0a1533fa..9a6b78e7e 100644 --- a/config.mk +++ b/config.mk @@ -27,6 +27,8 @@ OBJCFLAGS += --gap-fill=0xff gccincdir := $(shell $(CC) -print-file-name=include) +PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc + CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ -fno-builtin -ffreestanding -nostdinc -isystem \ @@ -37,7 +39,7 @@ CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wcast-align AFLAGS_DEBUG := -Wa,-gstabs AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) -LDFLAGS += -T $(LINKERSCRIPT) -nostartfiles -static -Wl,-Map=$@-$(BOARD).map,-export-dynamic +LDFLAGS += -T $(LINKERSCRIPT) -nostartfiles -static #-Wl,-Map=$*-$(BOARD).map,-export-dynamic ######################################################################### @@ -46,11 +48,3 @@ export TEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS CPPFLAGS CFLAGS AFLAGS ######################################################################### -%.s: %.S - $(CPP) $(AFLAGS) -o $@ $(CURDIR)/$< -%.o: %.S - $(CC) $(AFLAGS) -c -o $@ $(CURDIR)/$< -%.o: %.c - $(CC) $(CFLAGS) $(THUMB_FLAGS) -c -o $@ $< - -######################################################################### diff --git a/mc1322x.lds b/mc1322x.lds index 061604a23..045635419 100644 --- a/mc1322x.lds +++ b/mc1322x.lds @@ -19,7 +19,7 @@ HEAP_SIZE = 1024; PROVIDE (__executable_start = 0x00400000); . = 0x00400000; .text : { - *startup.o (.text) + *start.o (.text) *(.irq) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ From afb39de8dfd16a187e7e6406fdfa4c7a6ef0cbc6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 22 Feb 2010 12:24:56 -0500 Subject: [PATCH 159/471] add new base makefile --- Makefile.include | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/Makefile.include b/Makefile.include index aff77f4c1..21c4ce08a 100644 --- a/Makefile.include +++ b/Makefile.include @@ -15,7 +15,6 @@ ifndef ISR ISR = $(MC1322X)/src/isr.o endif - ARCH = arm CPU = arm7tdmi-s export ARCH CPU VENDOR @@ -36,20 +35,12 @@ $(ISR): $(ISR:.o=.c) $(filter %.o %.a,$+) -o $@ clean: - find . -type f \ + find $(MC1322X) -type f \ \( -name 'core' -o -name '*.bak' -o -name '*~' \ - -o -name '*.o' -o -name '*.a' -o -name '*.obj' \) -print \ + -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' \) -print \ | xargs rm -f - rm -f $(ALL) $(OBJS) - -clobber: clean - find . -type f \ - \( -name .depend -o -name '*.srec' -o -name '*.bin' -o -name '*.dis' -o -name '*.map' -o -name '*.obj' \) \ - -print \ - | xargs rm -f - rm -f $(OBJS) *.bak tags TAGS - rm -fr *.*~ - rm -f $(ALL) + rm -fr *.*~ +clobber \ mrproper \ -distclean: clobber +distclean: clean From 8c6336ab520ac9a6c4651387e8664c49a46a0782 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 22 Feb 2010 12:38:25 -0500 Subject: [PATCH 160/471] fix linker flags --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index 9a6b78e7e..dd1c073c1 100644 --- a/config.mk +++ b/config.mk @@ -39,7 +39,7 @@ CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wcast-align AFLAGS_DEBUG := -Wa,-gstabs AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) -LDFLAGS += -T $(LINKERSCRIPT) -nostartfiles -static #-Wl,-Map=$*-$(BOARD).map,-export-dynamic +LDFLAGS += -T $(LINKERSCRIPT) -nostartfiles -static -Map=$*.map -export-dynamic ######################################################################### From e88fad5cddae69e6bb985dbaa7fe9a3cc7ccfa2c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 22 Feb 2010 18:58:45 -0500 Subject: [PATCH 161/471] put object files in OBJDIR --- Makefile.include | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/Makefile.include b/Makefile.include index 21c4ce08a..af7efc803 100644 --- a/Makefile.include +++ b/Makefile.include @@ -19,25 +19,34 @@ ARCH = arm CPU = arm7tdmi-s export ARCH CPU VENDOR -%.s: %.S - $(CPP) $(AFLAGS) -o $@ $(CURDIR)/$< -%.o: %.S - $(CC) $(AFLAGS) -c -o $@ $(CURDIR)/$< -%.o: %.c - $(CC) $(CFLAGS) $(THUMB_FLAGS) -c -o $@ $< +.SECONDARY: + +$(START): $(START:.o=.s) + $(CC) $(AFLAGS) -c -o $@ $< $(ISR): $(ISR:.o=.c) $(CC) $(CFLAGS) $(ARM_FLAGS) $< -c -o $@ -%.elf: $(START) $(ISR) %.o $(LINKERSCRIPT) +%_$(BOARD).elf: %.elf + mv $< $@ + +%.elf: $(START) $(ISR) $(OBJDIR)/%.o $(LINKERSCRIPT) board $(LD) $(LDFLAGS) $(AOBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ $(filter %.o %.a,$+) -o $@ +$(OBJDIR)/%.s: %.S + $(CPP) $(AFLAGS) -o $@ $< +$(OBJDIR)/%.o: %.S + $(CC) $(AFLAGS) -c -o $@ $< +$(OBJDIR)/%.o: %.c + $(CC) $(CFLAGS) $(THUMB_FLAGS) -c -o $@ $< + + clean: find $(MC1322X) -type f \ \( -name 'core' -o -name '*.bak' -o -name '*~' \ - -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' \) -print \ + -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \) -print \ | xargs rm -f rm -fr *.*~ From cad32b268bdd73cd3ba3568d73de037f176656e2 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 22 Feb 2010 19:01:18 -0500 Subject: [PATCH 162/471] clean up more --- Makefile.include | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile.include b/Makefile.include index af7efc803..7292de3a6 100644 --- a/Makefile.include +++ b/Makefile.include @@ -44,10 +44,11 @@ $(OBJDIR)/%.o: %.c clean: - find $(MC1322X) -type f \ + find $(MC1322X) \ \( -name 'core' -o -name '*.bak' -o -name '*~' \ - -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \) -print \ - | xargs rm -f + -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \ + -o -name 'obj_*_board' -o -name '.depend' \) -print \ + | xargs rm -rf rm -fr *.*~ clobber \ From dcc2d5299ca8fe51325599f1f621db00bde776cd Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 22 Feb 2010 19:18:48 -0500 Subject: [PATCH 163/471] for now you must define BOARD. I'd like it to be though that if board isn't defined then it makes everything. --- board/Makefile.board | 10 +++++++++- tests/Makefile | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/board/Makefile.board b/board/Makefile.board index bcc333625..427632085 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -1,7 +1,15 @@ +BOARDS = redbee-dev redbee-module redbee-r1 redbee-usb redbee-econotag + CFLAGS += -I obj_$(BOARD)_board OBJDIR = obj_$(BOARD)_board board: +ifndef BOARD + ${warning BOARD not defined} + ${warning echo "make BOARD=foo"} + ${warning "boards: $(BOARDS)"} + ${error you must define BOARD} +endif @echo "setup object directory for dev board" mkdir -p $(OBJDIR) - cp $(MC1322X)/board/$(BOARD).h $(OBJDIR) \ No newline at end of file + cp $(MC1322X)/board/$(BOARD).h $(OBJDIR) diff --git a/tests/Makefile b/tests/Makefile index b360356f6..d9bfdc1bc 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -2,4 +2,5 @@ MC1322X = .. include $(MC1322X)/Makefile.include -all: blink-red \ No newline at end of file +all: board blink-red_$(BOARD).elf + From 66532fd56702b6bb6aadcb37dd121bbdf4936f4f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 23 Feb 2010 15:00:57 -0500 Subject: [PATCH 164/471] don't need entry _start --- mc1322x.lds | 1 - 1 file changed, 1 deletion(-) diff --git a/mc1322x.lds b/mc1322x.lds index 045635419..88098a064 100644 --- a/mc1322x.lds +++ b/mc1322x.lds @@ -2,7 +2,6 @@ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) -ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { From cd13c5daad5ce29db33f81906c16f49fc75bd7a0 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 23 Feb 2010 15:01:19 -0500 Subject: [PATCH 165/471] set the default goal to be 'all' --- Makefile.include | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index 7292de3a6..fbc86ce6c 100644 --- a/Makefile.include +++ b/Makefile.include @@ -1,6 +1,8 @@ LINKERSCRIPT = $(MC1322X)/mc1322x.lds LIBMC1322X = $(MC1322X)/libmc1322x +.DEFAULT_GOAL = all + include $(MC1322X)/config.mk include $(MC1322X)/board/Makefile.board @@ -30,7 +32,7 @@ $(ISR): $(ISR:.o=.c) %_$(BOARD).elf: %.elf mv $< $@ -%.elf: $(START) $(ISR) $(OBJDIR)/%.o $(LINKERSCRIPT) board +%.elf: $(START) $(ISR) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/%.o $(LINKERSCRIPT) board $(LD) $(LDFLAGS) $(AOBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ $(filter %.o %.a,$+) -o $@ From e825aa8bc9abd4be186e5fc45786f40acac39a5f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 23 Feb 2010 15:01:31 -0500 Subject: [PATCH 166/471] build libmc1322x.a --- libmc1322x/Makefile.lib | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libmc1322x/Makefile.lib b/libmc1322x/Makefile.lib index 41076d2fb..129ed4ce9 100644 --- a/libmc1322x/Makefile.lib +++ b/libmc1322x/Makefile.lib @@ -1 +1,6 @@ CFLAGS += -I$(LIBMC1322X)/include + +LIBOBJS = $(patsubst %.c,%.o,$(wildcard $(LIBMC1322X)/*.c)) + +$(LIBMC1322X)/libmc1322x.a: $(LIBOBJS) + $(AR) r $(LIBMC1322X)/libmc1322x.a $(LIBOBJS) From 1522b72b1ea24797dcdb4a15f69950a3156a3cc0 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 23 Feb 2010 15:16:12 -0500 Subject: [PATCH 167/471] clean up gpio and leds --- board/redbee-dev.h | 4 ++++ board/redbee-r1.h | 8 ++++++++ libmc1322x/include/mc1322x.h | 1 + tests/blink-red.c | 7 +------ 4 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 board/redbee-r1.h diff --git a/board/redbee-dev.h b/board/redbee-dev.h index af7c38ffa..0548d0c96 100644 --- a/board/redbee-dev.h +++ b/board/redbee-dev.h @@ -1,4 +1,8 @@ #ifndef BOARD_REDBEE_DEV_H #define BOARD_REDBEE_DEV_H +#define LED_RED (1 << 23) +#define LED_GREEN (1 << 24) +#define LED_BLUE (1 << 25) + #endif diff --git a/board/redbee-r1.h b/board/redbee-r1.h new file mode 100644 index 000000000..e4a77f438 --- /dev/null +++ b/board/redbee-r1.h @@ -0,0 +1,8 @@ +#ifndef BOARD_REDBEE_R1_H +#define BOARD_REDBEE_R1_H + +#define LED_RED (1 << 8) +#define LED_GREEN (1 << 9) +#define LED_BLUE (1 << 10) + +#endif diff --git a/libmc1322x/include/mc1322x.h b/libmc1322x/include/mc1322x.h index beca8e97f..fe7653e73 100644 --- a/libmc1322x/include/mc1322x.h +++ b/libmc1322x/include/mc1322x.h @@ -3,5 +3,6 @@ #include "types.h" #include "isr.h" +#include "gpio.h" #endif diff --git a/tests/blink-red.c b/tests/blink-red.c index 16a2189ee..9f938168d 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -1,12 +1,8 @@ #include -#define MBAR_GPIO 0x80000000 -#define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) -#define GPIO_DATA0 ((volatile uint32_t *) 0x80000008) -#define UART1_DATA ((volatile uint32_t *) 0x80005008) #define DELAY 400000 -//#define LED_BITS LED_RED +#define LED_BITS LED_RED __attribute__ ((section ("startup"))) void main(void) { @@ -14,7 +10,6 @@ void main(void) { // *GPIO_PAD_DIR0 = LED_BITS; - while(1) { // *GPIO_DATA0 = LED_BITS; From 3cc6896981f96b967461c23b8cb231e26fbe111b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 23 Feb 2010 15:52:46 -0500 Subject: [PATCH 168/471] fix blink-red --- tests/blink-red.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/blink-red.c b/tests/blink-red.c index 9f938168d..8529243b7 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -1,4 +1,5 @@ #include +#include #define DELAY 400000 @@ -8,11 +9,11 @@ __attribute__ ((section ("startup"))) void main(void) { volatile uint32_t i; -// *GPIO_PAD_DIR0 = LED_BITS; + *GPIO_PAD_DIR0 = LED_BITS; while(1) { -// *GPIO_DATA0 = LED_BITS; + *GPIO_DATA0 = LED_BITS; for(i=0; i Date: Tue, 23 Feb 2010 15:53:00 -0500 Subject: [PATCH 169/471] board.h works now --- Makefile.include | 16 ++++++++++++++-- board/Makefile.board | 10 ++++++---- tests/Makefile | 4 +++- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Makefile.include b/Makefile.include index fbc86ce6c..d39710c13 100644 --- a/Makefile.include +++ b/Makefile.include @@ -32,11 +32,23 @@ $(ISR): $(ISR:.o=.c) %_$(BOARD).elf: %.elf mv $< $@ -%.elf: $(START) $(ISR) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/%.o $(LINKERSCRIPT) board +%.elf: $(START) $(ISR) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/%.o $(LINKERSCRIPT) $(LD) $(LDFLAGS) $(AOBJS) \ --start-group $(PLATFORM_LIBS) --end-group \ $(filter %.o %.a,$+) -o $@ +%.srec: %.elf + $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ + +%.ihex: %.elf + $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ + +%.bin: %.elf + $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ + +%.dis: %.elf + $(OBJDUMP) -SD $< > $@ + $(OBJDIR)/%.s: %.S $(CPP) $(AFLAGS) -o $@ $< $(OBJDIR)/%.o: %.S @@ -49,7 +61,7 @@ clean: find $(MC1322X) \ \( -name 'core' -o -name '*.bak' -o -name '*~' \ -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \ - -o -name 'obj_*_board' -o -name '.depend' \) -print \ + -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' \) -print \ | xargs rm -rf rm -fr *.*~ diff --git a/board/Makefile.board b/board/Makefile.board index 427632085..90e519e5e 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -1,9 +1,9 @@ BOARDS = redbee-dev redbee-module redbee-r1 redbee-usb redbee-econotag -CFLAGS += -I obj_$(BOARD)_board -OBJDIR = obj_$(BOARD)_board +OBJDIR = ./obj_$(BOARD)_board +CFLAGS += -I$(OBJDIR) -board: +$(OBJDIR): ifndef BOARD ${warning BOARD not defined} ${warning echo "make BOARD=foo"} @@ -12,4 +12,6 @@ ifndef BOARD endif @echo "setup object directory for dev board" mkdir -p $(OBJDIR) - cp $(MC1322X)/board/$(BOARD).h $(OBJDIR) + +$(OBJDIR)/board.h: $(OBJDIR) + ln -s ../$(MC1322X)/board/$(BOARD).h $(OBJDIR)/board.h diff --git a/tests/Makefile b/tests/Makefile index d9bfdc1bc..6bb611712 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -2,5 +2,7 @@ MC1322X = .. include $(MC1322X)/Makefile.include -all: board blink-red_$(BOARD).elf +TARGETS = blink-red_$(BOARD).bin + +all: $(OBJDIR) $(OBJDIR)/board.h $(TARGETS) $(TARGETS:.bin=.dis) From 2dcaada25a1e749759a833fd27776b3b50f6e9ab Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 23 Feb 2010 17:08:43 -0500 Subject: [PATCH 170/471] led and gpio cleanup --- libmc1322x/include/gpio.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 libmc1322x/include/gpio.h diff --git a/libmc1322x/include/gpio.h b/libmc1322x/include/gpio.h new file mode 100644 index 000000000..c91fd89fe --- /dev/null +++ b/libmc1322x/include/gpio.h @@ -0,0 +1,30 @@ +#ifndef GPIO_H +#define GPIO_H + +#define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) + +#define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) +#define GPIO_DATA0 ((volatile uint32_t *) 0x80000008) +#define GPIO_FUNC_SEL0 ((volatile uint32_t *) 0x80000018) /* GPIO 15 - 0; 2 bit blocks */ +#define GPIO_PAD_PU_SEL0 ((volatile uint32_t *) 0x80000030) +#define GPIO_PAD_PU_SEL1 ((volatile uint32_t *) 0x80000034) +#define GPIO_PAD_PU_EN0 ((volatile uint32_t *) 0x80000010) +#define GPIO_PAD_PU_EN1 ((volatile uint32_t *) 0x80000014) + +/* select pullup or pulldown for GPIO 0-31 (b=0-31) */ +#define gpio_sel0_pullup(b) (set_bit(reg32(GPIO_PAD_PU_SEL0),b)) +#define gpio_sel0_pulldown(b) (clear_bit(reg32(GPIO_PAD_PU_SEL0),b)) + +/* select pullup or pulldown for GPIO 32-63 (b=32-63) */ +#define gpio_sel1_pullup(b) (set_bit(reg32(GPIO_PAD_PU_SEL1),b-32)) +#define gpio_sel1_pulldown(b) (clear_bit(reg32(GPIO_PAD_PU_SEL1),b-32)) + +/* enable/disable pullup for GPIO 0-31 (b=0-31) */ +#define gpio_pu0_enable(b) (set_bit(reg32(GPIO_PAD_PU_EN0),b)) +#define gpio_pu0_disable(b) (clear_bit(reg32(GPIO_PAD_PU_EN0),b)) + +/* enable/disable pullup for GPIO 32-63 (b=32-63) */ +#define gpio_pu1_enable(b) (set_bit(reg32(GPIO_PAD_PU_EN1),b-32)) +#define gpio_pu1_disable(b) (clear_bit(reg32(GPIO_PAD_PU_EN1),b-32)) + +#endif From 8ca9a0269ef0ab64a6b79bcdeb3a8eaa4bcbb1b6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 23 Feb 2010 18:14:32 -0500 Subject: [PATCH 171/471] better variable defs. touch objdir to fix problem where board.h would try to get created after it's already been created. --- Makefile.include | 6 +++--- board/Makefile.board | 7 ++++--- tests/Makefile | 6 +++--- tests/blink-blue.c | 28 ++++++++++++---------------- tests/blink-green.c | 28 ++++++++++++---------------- tests/blink-white.c | 28 ++++++++++++---------------- 6 files changed, 46 insertions(+), 57 deletions(-) diff --git a/Makefile.include b/Makefile.include index d39710c13..f88a09fa7 100644 --- a/Makefile.include +++ b/Makefile.include @@ -1,7 +1,7 @@ -LINKERSCRIPT = $(MC1322X)/mc1322x.lds -LIBMC1322X = $(MC1322X)/libmc1322x +LINKERSCRIPT := $(MC1322X)/mc1322x.lds +LIBMC1322X := $(MC1322X)/libmc1322x -.DEFAULT_GOAL = all +.DEFAULT_GOAL := all include $(MC1322X)/config.mk diff --git a/board/Makefile.board b/board/Makefile.board index 90e519e5e..dd4deaa42 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -1,6 +1,6 @@ -BOARDS = redbee-dev redbee-module redbee-r1 redbee-usb redbee-econotag +BOARDS := redbee-dev redbee-module redbee-r1 redbee-usb redbee-econotag -OBJDIR = ./obj_$(BOARD)_board +OBJDIR := obj_$(BOARD)_board CFLAGS += -I$(OBJDIR) $(OBJDIR): @@ -11,7 +11,8 @@ ifndef BOARD ${error you must define BOARD} endif @echo "setup object directory for dev board" - mkdir -p $(OBJDIR) + mkdir $(OBJDIR) $(OBJDIR)/board.h: $(OBJDIR) ln -s ../$(MC1322X)/board/$(BOARD).h $(OBJDIR)/board.h + touch $(OBJDIR)/board.h \ No newline at end of file diff --git a/tests/Makefile b/tests/Makefile index 6bb611712..237e8073b 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,8 +1,8 @@ -MC1322X = .. +MC1322X := .. include $(MC1322X)/Makefile.include -TARGETS = blink-red_$(BOARD).bin +TARGETS := blink-red_$(BOARD).bin -all: $(OBJDIR) $(OBJDIR)/board.h $(TARGETS) $(TARGETS:.bin=.dis) +all: $(OBJDIR)/board.h $(TARGETS) $(TARGETS:.bin=.dis) diff --git a/tests/blink-blue.c b/tests/blink-blue.c index 06699279d..8529243b7 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -1,31 +1,27 @@ -#define MBAR_GPIO 0x80000000 -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 -#define UART1_DATA 0x80005008 +#include +#include + #define DELAY 400000 -#include "embedded_types.h" -#include "isr.h" -#include "led.h" - -#define LED_BITS LED_BLUE - -__attribute__ ((section ("startup"))) -void main(void) { - - *(volatile uint32_t *)GPIO_PAD_DIR0 = LED_BITS; +#define LED_BITS LED_RED +__attribute__ ((section ("startup"))) +void main(void) { volatile uint32_t i; + + *GPIO_PAD_DIR0 = LED_BITS; while(1) { - *(volatile uint32_t *)GPIO_DATA0 = LED_BITS; + *GPIO_DATA0 = LED_BITS; for(i=0; i +#include + #define DELAY 400000 -#include "embedded_types.h" -#include "isr.h" -#include "led.h" - -#define LED_BITS LED_GREEN - -__attribute__ ((section ("startup"))) -void main(void) { - - *(volatile uint32_t *)GPIO_PAD_DIR0 = LED_BITS; +#define LED_BITS LED_RED +__attribute__ ((section ("startup"))) +void main(void) { volatile uint32_t i; + + *GPIO_PAD_DIR0 = LED_BITS; while(1) { - *(volatile uint32_t *)GPIO_DATA0 = LED_BITS; + *GPIO_DATA0 = LED_BITS; for(i=0; i +#include + #define DELAY 400000 -#include "embedded_types.h" -#include "isr.h" -#include "led.h" - -#define LED_BITS LED_WHITE - -__attribute__ ((section ("startup"))) -void main(void) { - - *(volatile uint32_t *)GPIO_PAD_DIR0 = LED_BITS; +#define LED_BITS LED_RED +__attribute__ ((section ("startup"))) +void main(void) { volatile uint32_t i; + + *GPIO_PAD_DIR0 = LED_BITS; while(1) { - *(volatile uint32_t *)GPIO_DATA0 = LED_BITS; + *GPIO_DATA0 = LED_BITS; for(i=0; i Date: Tue, 23 Feb 2010 18:19:38 -0500 Subject: [PATCH 172/471] update blinks --- tests/blink-blue.c | 3 +-- tests/blink-green.c | 3 +-- tests/blink-red.c | 1 - tests/blink-white.c | 3 +-- tests/led.h | 9 +++++++++ 5 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 tests/led.h diff --git a/tests/blink-blue.c b/tests/blink-blue.c index 8529243b7..a5b0165c6 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -3,9 +3,8 @@ #define DELAY 400000 -#define LED_BITS LED_RED +#define LED_BITS LED_BLUE -__attribute__ ((section ("startup"))) void main(void) { volatile uint32_t i; diff --git a/tests/blink-green.c b/tests/blink-green.c index 8529243b7..01872ae89 100644 --- a/tests/blink-green.c +++ b/tests/blink-green.c @@ -3,9 +3,8 @@ #define DELAY 400000 -#define LED_BITS LED_RED +#define LED_BITS LED_GREEN -__attribute__ ((section ("startup"))) void main(void) { volatile uint32_t i; diff --git a/tests/blink-red.c b/tests/blink-red.c index 8529243b7..8070614af 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -5,7 +5,6 @@ #define LED_BITS LED_RED -__attribute__ ((section ("startup"))) void main(void) { volatile uint32_t i; diff --git a/tests/blink-white.c b/tests/blink-white.c index 8529243b7..f1d40adf3 100644 --- a/tests/blink-white.c +++ b/tests/blink-white.c @@ -3,9 +3,8 @@ #define DELAY 400000 -#define LED_BITS LED_RED +#define LED_BITS LED_WHITE -__attribute__ ((section ("startup"))) void main(void) { volatile uint32_t i; diff --git a/tests/led.h b/tests/led.h new file mode 100644 index 000000000..8e674b0a7 --- /dev/null +++ b/tests/led.h @@ -0,0 +1,9 @@ +#ifndef LED_H +#define LED_H + +#define LED_YELLOW (LED_RED | LED_GREEN ) +#define LED_PURPLE (LED_RED | LED_BLUE) +#define LED_CYAN ( LED_GREEN | LED_BLUE) +#define LED_WHITE (LED_RED | LED_GREEN | LED_BLUE) + +#endif From dc9473a228b3dbc770fbb55a90bf98a687c98c79 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 23 Feb 2010 18:27:12 -0500 Subject: [PATCH 173/471] cleanup main makefile --- Makefile.include | 7 +++++-- tests/Makefile | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Makefile.include b/Makefile.include index f88a09fa7..f097fbdb4 100644 --- a/Makefile.include +++ b/Makefile.include @@ -1,8 +1,6 @@ LINKERSCRIPT := $(MC1322X)/mc1322x.lds LIBMC1322X := $(MC1322X)/libmc1322x -.DEFAULT_GOAL := all - include $(MC1322X)/config.mk include $(MC1322X)/board/Makefile.board @@ -68,3 +66,8 @@ clean: clobber \ mrproper \ distclean: clean + +.DEFAULT_GOAL := all + +ALL := $(OBJDIR)/board.h $(TARGETS)_$(BOARD).bin +all: $(ALL) \ No newline at end of file diff --git a/tests/Makefile b/tests/Makefile index 237e8073b..5de250d14 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,8 +1,11 @@ MC1322X := .. +TARGETS := blink-red + include $(MC1322X)/Makefile.include -TARGETS := blink-red_$(BOARD).bin -all: $(OBJDIR)/board.h $(TARGETS) $(TARGETS:.bin=.dis) + + + From f79c71153afc449284e37ec18f8f569108455c47 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 23 Feb 2010 18:54:50 -0500 Subject: [PATCH 174/471] now running just 'make' builds all the targets for all the boards. --- Makefile.include | 18 +++++++++++++++--- board/Makefile.board | 3 ++- tests/Makefile | 2 +- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Makefile.include b/Makefile.include index f097fbdb4..4acaa0dc1 100644 --- a/Makefile.include +++ b/Makefile.include @@ -67,7 +67,19 @@ clobber \ mrproper \ distclean: clean -.DEFAULT_GOAL := all +#.DEFAULT_GOAL := all + +ifndef BOARD +.DEFAULT_GOAL := allboards +else +.DEFAULT_GOAL := all +endif + +all: $(OBJDIR)/board.h + for target in $(TARGETS); do make $$target\_$(BOARD).bin; done + +allboards: + for board in $(BOARDS); do make BOARD=$$board all; done + + -ALL := $(OBJDIR)/board.h $(TARGETS)_$(BOARD).bin -all: $(ALL) \ No newline at end of file diff --git a/board/Makefile.board b/board/Makefile.board index dd4deaa42..f8e293255 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -1,4 +1,5 @@ -BOARDS := redbee-dev redbee-module redbee-r1 redbee-usb redbee-econotag +#BOARDS := redbee-dev redbee-module redbee-r1 redbee-usb redbee-econotag +BOARDS := redbee-dev redbee-r1 OBJDIR := obj_$(BOARD)_board CFLAGS += -I$(OBJDIR) diff --git a/tests/Makefile b/tests/Makefile index 5de250d14..77e18bab1 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,6 +1,6 @@ MC1322X := .. -TARGETS := blink-red +TARGETS := blink-red blink-green blink-blue include $(MC1322X)/Makefile.include From 289a83916103b832bdef0a02f3263929c28fca69 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 24 Feb 2010 13:35:37 -0500 Subject: [PATCH 175/471] finish blink tests --- libmc1322x/include/gpio.h | 14 ++++++++++--- libmc1322x/include/utils.h | 13 +++++++++++++ tests/Makefile | 2 +- tests/blink-allio.c | 40 +++++++++++++------------------------- tests/blink-white.c | 2 ++ 5 files changed, 40 insertions(+), 31 deletions(-) create mode 100644 libmc1322x/include/utils.h diff --git a/libmc1322x/include/gpio.h b/libmc1322x/include/gpio.h index c91fd89fe..f1c734881 100644 --- a/libmc1322x/include/gpio.h +++ b/libmc1322x/include/gpio.h @@ -4,12 +4,20 @@ #define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) #define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) +#define GPIO_PAD_DIR1 ((volatile uint32_t *) 0x80000004) #define GPIO_DATA0 ((volatile uint32_t *) 0x80000008) -#define GPIO_FUNC_SEL0 ((volatile uint32_t *) 0x80000018) /* GPIO 15 - 0; 2 bit blocks */ -#define GPIO_PAD_PU_SEL0 ((volatile uint32_t *) 0x80000030) -#define GPIO_PAD_PU_SEL1 ((volatile uint32_t *) 0x80000034) +#define GPIO_DATA1 ((volatile uint32_t *) 0x8000000c) #define GPIO_PAD_PU_EN0 ((volatile uint32_t *) 0x80000010) #define GPIO_PAD_PU_EN1 ((volatile uint32_t *) 0x80000014) +#define GPIO_FUNC_SEL0 ((volatile uint32_t *) 0x80000018) /* GPIO 15 - 0; 2 bit blocks */ +#define GPIO_FUNC_SEL1 ((volatile uint32_t *) 0x8000001c) /* GPIO 16 - 31; 2 bit blocks */ +#define GPIO_FUNC_SEL2 ((volatile uint32_t *) 0x80000020) /* GPIO 32 - 47; 2 bit blocks */ +#define GPIO_FUNC_SEL3 ((volatile uint32_t *) 0x80000024) /* GPIO 48 - 63; 2 bit blocks */ +#define GPIO_DATA_SEL0 ((volatile uint32_t *) 0x80000028) +#define GPIO_DATA_SEL1 ((volatile uint32_t *) 0x8000002c) +#define GPIO_PAD_PU_SEL0 ((volatile uint32_t *) 0x80000030) +#define GPIO_PAD_PU_SEL1 ((volatile uint32_t *) 0x80000034) + /* select pullup or pulldown for GPIO 0-31 (b=0-31) */ #define gpio_sel0_pullup(b) (set_bit(reg32(GPIO_PAD_PU_SEL0),b)) diff --git a/libmc1322x/include/utils.h b/libmc1322x/include/utils.h new file mode 100644 index 000000000..9b47defc3 --- /dev/null +++ b/libmc1322x/include/utils.h @@ -0,0 +1,13 @@ +#ifndef UTILS_H +#define UTILS_H + +#include + +#define CAT2(x, y, z) x##y##z + +#define bit(bit) (1 << bit) +#define bit_is_set(val, bit) (((val & (1 << bit)) >> bit) == 1) +#define clear_bit(val, bit) (val = (val & ~(1 << bit))) +#define set_bit(val, bit) (val = (val | (1 << bit))) + +#endif /* UTILS_H */ diff --git a/tests/Makefile b/tests/Makefile index 77e18bab1..816083fca 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,6 +1,6 @@ MC1322X := .. -TARGETS := blink-red blink-green blink-blue +TARGETS := blink-red blink-green blink-blue blink-white blink-allio include $(MC1322X)/Makefile.include diff --git a/tests/blink-allio.c b/tests/blink-allio.c index 3fee31ec7..cb1df9a1b 100644 --- a/tests/blink-allio.c +++ b/tests/blink-allio.c @@ -1,43 +1,29 @@ -#define MBAR_GPIO 0x80000000 -#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ -#define GPIO_FUNC_SEL1 0x8000001c -#define GPIO_FUNC_SEL2 0x80000020 -#define GPIO_FUNC_SEL3 0x80000024 -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 -#define GPIO_PAD_DIR1 0x80000004 -#define GPIO_DATA1 0x8000000c -#define UART1_DATA 0x80005008 +#include +#include + #define DELAY 400000 -#include "embedded_types.h" -#include "isr.h" -#include "led.h" - -#define LED_BITS LED_WHITE - -__attribute__ ((section ("startup"))) void main(void) { - *(volatile uint32_t *)GPIO_FUNC_SEL0 = 0xffffffff; - *(volatile uint32_t *)GPIO_FUNC_SEL1 = 0xffffffff; - *(volatile uint32_t *)GPIO_FUNC_SEL2 = 0xffffffff; - *(volatile uint32_t *)GPIO_FUNC_SEL3 = 0xffffffff; + *GPIO_FUNC_SEL0 = 0xffffffff; + *GPIO_FUNC_SEL1 = 0xffffffff; + *GPIO_FUNC_SEL2 = 0xffffffff; + *GPIO_FUNC_SEL3 = 0xffffffff; - *(volatile uint32_t *)GPIO_PAD_DIR0 = 0xffffffff; - *(volatile uint32_t *)GPIO_PAD_DIR1 = 0xffffffff; + *GPIO_PAD_DIR0 = 0xffffffff; + *GPIO_PAD_DIR1 = 0xffffffff; volatile uint32_t i; while(1) { - *(volatile uint32_t *)GPIO_DATA0 = 0xffffffff; - *(volatile uint32_t *)GPIO_DATA1 = 0xffffffff; + *GPIO_DATA0 = 0xffffffff; + *GPIO_DATA1 = 0xffffffff; for(i=0; i #include +#include "led.h" + #define DELAY 400000 #define LED_BITS LED_WHITE From e38f9db224901853f1e42fe8bd361c57a1750b2c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 24 Feb 2010 13:35:46 -0500 Subject: [PATCH 176/471] force links --- board/Makefile.board | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/Makefile.board b/board/Makefile.board index f8e293255..15887a010 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -15,5 +15,5 @@ endif mkdir $(OBJDIR) $(OBJDIR)/board.h: $(OBJDIR) - ln -s ../$(MC1322X)/board/$(BOARD).h $(OBJDIR)/board.h + ln -sf ../$(MC1322X)/board/$(BOARD).h $(OBJDIR)/board.h touch $(OBJDIR)/board.h \ No newline at end of file From 3342c647d0d61d6c39e00cc9c697e623f0e0d0ce Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 24 Feb 2010 14:45:26 -0500 Subject: [PATCH 177/471] removed extra line --- libmc1322x/include/gpio.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/libmc1322x/include/gpio.h b/libmc1322x/include/gpio.h index f1c734881..89c16d623 100644 --- a/libmc1322x/include/gpio.h +++ b/libmc1322x/include/gpio.h @@ -1,8 +1,6 @@ #ifndef GPIO_H #define GPIO_H -#define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) - #define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) #define GPIO_PAD_DIR1 ((volatile uint32_t *) 0x80000004) #define GPIO_DATA0 ((volatile uint32_t *) 0x80000008) From 637c9ddab2107edd056772c5c2f01e0287072442 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 24 Feb 2010 14:45:45 -0500 Subject: [PATCH 178/471] cleaned up uart1-loopback --- tests/Makefile | 2 +- tests/uart1-loopback.c | 50 +++++++++++++++++------------------------- 2 files changed, 21 insertions(+), 31 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 816083fca..0bf132d2b 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,6 +1,6 @@ MC1322X := .. -TARGETS := blink-red blink-green blink-blue blink-white blink-allio +TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback include $(MC1322X)/Makefile.include diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index 21a3bbcb5..487c31af6 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -1,44 +1,34 @@ -#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ +#include +#include +#include -#define BASE_UART1 0x80005000 -#define UART1_CON 0x80005000 -#define UART1_STAT 0x80005004 -#define UART1_DATA 0x80005008 -#define UR1CON 0x8000500c -#define UT1CON 0x80005010 -#define UART1_CTS 0x80005014 -#define UART1_BR 0x80005018 +/* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ +#define INC 767 +#define MOD 9999 -#include "embedded_types.h" -#include "isr.h" - -__attribute__ ((section ("startup"))) void main(void) { - /* Restore UART regs. to default */ - /* in case there is still bootloader state leftover */ - - *(volatile uint32_t *)UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ - - /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ - #define INC 767 - #define MOD 9999 - *(volatile uint32_t *)UART1_BR = INC<<16 | MOD; + /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + *UART1_CON = 0x0000c800; + + + *UART1_BR = INC<<16 | MOD; + /* see Section 11.5.1.2 Alternate Modes */ /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ /* From the datasheet: "The peripheral function will control operation of the pad IF */ /* THE PERIPHERAL IS ENABLED. */ - *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ - *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ - + *UART1_CON = 0x00000003; /* enable receive and transmit */ + *GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + uint8_t c; while(1) { -// *(volatile uint32_t *)UART1_DATA = (uint8_t)'U'; - if(*(volatile uint32_t*)UR1CON > 0) { + if(*UART1_CON > 0) { /* Receive buffer isn't empty */ /* read a byte and write it to the transmit buffer */ - c = *(volatile uint32_t *)UART1_DATA; - *(volatile uint32_t *)UART1_DATA = c; + c = *UART1_DATA; + *UART1_DATA = c; } - }; + } + } From 9a4a1a04d0df36f1c3c5c34367db26c6f497de94 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 24 Feb 2010 18:47:19 -0500 Subject: [PATCH 179/471] uart1.h --- libmc1322x/include/uart1.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 libmc1322x/include/uart1.h diff --git a/libmc1322x/include/uart1.h b/libmc1322x/include/uart1.h new file mode 100644 index 000000000..4967ceb5f --- /dev/null +++ b/libmc1322x/include/uart1.h @@ -0,0 +1,16 @@ +#ifndef UART1_H +#define UART1_H + +#define UART1_CON ((volatile uint32_t *) 0x80005000) +#define UART1_STAT ((volatile uint32_t *) 0x80005004) +#define UART1_DATA ((volatile uint32_t *) 0x80005008) +#define UR1CON ((volatile uint32_t *) 0x8000500c) +#define UT1CON ((volatile uint32_t *) 0x80005010) +#define UART1_CTS ((volatile uint32_t *) 0x80005014) +#define UART1_BR ((volatile uint32_t *) 0x80005018) + +int uart1_putchar(int c); + +#define uart1_can_get() (*UR1CON > 0) + +#endif From 0c4f5c61ef139dc1bfc44f05ceb09b30ae511043 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 24 Feb 2010 18:47:53 -0500 Subject: [PATCH 180/471] need a way to run board specific lowlevel inits like for vreg. this is a start. --- board/lowlevel.c | 9 +++++++++ board/lowlevel.h | 6 ++++++ board/redbee-dev.h | 2 ++ board/std_conf.h | 8 ++++++++ tests/nvm-read.c | 35 ++++++++++------------------------- 5 files changed, 35 insertions(+), 25 deletions(-) create mode 100644 board/lowlevel.c create mode 100644 board/lowlevel.h create mode 100644 board/std_conf.h diff --git a/board/lowlevel.c b/board/lowlevel.c new file mode 100644 index 000000000..f6dc26ebc --- /dev/null +++ b/board/lowlevel.c @@ -0,0 +1,9 @@ +/* has been tested and it good */ +void default_vreg_init(void) { + volatile uint32_t i; + *(volatile uint32_t *)(0x80003000) = 0x00000018; /* set default state */ + *(volatile uint32_t *)(0x80003048) = 0x00000f04; /* bypass the buck */ + for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ +// while((((*(volatile uint32_t *)(0x80003018))>>17) & 1) !=1) { continue; } /* wait for the bypass to take */ + *(volatile uint32_t *)(0x80003048) = 0x00000ff8; /* start the regulators */ +} diff --git a/board/lowlevel.h b/board/lowlevel.h new file mode 100644 index 000000000..90400d03a --- /dev/null +++ b/board/lowlevel.h @@ -0,0 +1,6 @@ +#ifndef LOWLEVEL_H +#define LOWLEVEL_H + +void default_vreg_init(void); + +#endif diff --git a/board/redbee-dev.h b/board/redbee-dev.h index 0548d0c96..afcdc710f 100644 --- a/board/redbee-dev.h +++ b/board/redbee-dev.h @@ -1,6 +1,8 @@ #ifndef BOARD_REDBEE_DEV_H #define BOARD_REDBEE_DEV_H +#include + #define LED_RED (1 << 23) #define LED_GREEN (1 << 24) #define LED_BLUE (1 << 25) diff --git a/board/std_conf.h b/board/std_conf.h new file mode 100644 index 000000000..ee7954670 --- /dev/null +++ b/board/std_conf.h @@ -0,0 +1,8 @@ +#ifndef STDCONF_H +#define STDCONF_H + +#ifndef vreg_init() +#define vreg_init() default_vreg_init() +#endif + +#endif diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 54a912904..2bfd28fc7 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -1,24 +1,13 @@ -#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ +#include +#include +#include -#define BASE_UART1 0x80005000 -#define UART1_CON 0x80005000 -#define UART1_STAT 0x80005004 -#define UART1_DATA 0x80005008 -#define UR1CON 0x8000500c -#define UT1CON 0x80005010 -#define UART1_CTS 0x80005014 -#define UART1_BR 0x80005018 +/* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ +#define INC 767 +#define MOD 9999 -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 - -#include "embedded_types.h" -#include "nvm.h" -#include "maca.h" - -#define reg(x) (*(volatile uint32_t *)(x)) - -#define DELAY 400000 +#define READ_ADDR 0x1F000 +#define NBYTES 1024 void putc(uint8_t c); void puts(uint8_t *s); @@ -29,18 +18,14 @@ void put_hex32(uint32_t x); const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; -#include "isr.h" -#define NBYTES 1024 -__attribute__ ((section ("startup"))) + void main(void) { nvmType_t type=0; nvmErr_t err; uint32_t buf[NBYTES/4]; uint32_t i; - *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; - /* Restore UART regs. to default */ /* in case there is still bootloader state leftover */ @@ -76,7 +61,7 @@ void main(void) { nvm_setsvar(0); - err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, 0x1F000, NBYTES); + err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, READ_ADDR, NBYTES); puts("nvm_read returned: 0x"); put_hex(err); puts("\n\r"); From bfe8814c905d7b34be5ce2a65e756ffb944211f5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 07:16:06 -0500 Subject: [PATCH 181/471] makefile hints --- Makefile.include | 1 + board/Makefile.board | 4 +++- libmc1322x/Makefile.lib | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index 4acaa0dc1..4561c1a47 100644 --- a/Makefile.include +++ b/Makefile.include @@ -1,3 +1,4 @@ +# -*- makefile -*- LINKERSCRIPT := $(MC1322X)/mc1322x.lds LIBMC1322X := $(MC1322X)/libmc1322x diff --git a/board/Makefile.board b/board/Makefile.board index 15887a010..92c63c15a 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -1,3 +1,5 @@ +# -*- makefile -*- + #BOARDS := redbee-dev redbee-module redbee-r1 redbee-usb redbee-econotag BOARDS := redbee-dev redbee-r1 @@ -16,4 +18,4 @@ endif $(OBJDIR)/board.h: $(OBJDIR) ln -sf ../$(MC1322X)/board/$(BOARD).h $(OBJDIR)/board.h - touch $(OBJDIR)/board.h \ No newline at end of file + touch $(OBJDIR)/board.h diff --git a/libmc1322x/Makefile.lib b/libmc1322x/Makefile.lib index 129ed4ce9..3a5a15c32 100644 --- a/libmc1322x/Makefile.lib +++ b/libmc1322x/Makefile.lib @@ -1,3 +1,5 @@ +# -*- makefile -*- + CFLAGS += -I$(LIBMC1322X)/include LIBOBJS = $(patsubst %.c,%.o,$(wildcard $(LIBMC1322X)/*.c)) From 59dca22769b2bcd73dbfdae48db6a3c08f97d2db Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 07:30:53 -0500 Subject: [PATCH 182/471] clean up default_vreg_init --- Makefile.include | 3 +++ board/lowlevel.c | 9 +++++---- tests/Makefile | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Makefile.include b/Makefile.include index 4561c1a47..1631fa113 100644 --- a/Makefile.include +++ b/Makefile.include @@ -1,4 +1,7 @@ # -*- makefile -*- + +CROSS_COMPILE := arm-linux- + LINKERSCRIPT := $(MC1322X)/mc1322x.lds LIBMC1322X := $(MC1322X)/libmc1322x diff --git a/board/lowlevel.c b/board/lowlevel.c index f6dc26ebc..c12b96dbe 100644 --- a/board/lowlevel.c +++ b/board/lowlevel.c @@ -1,9 +1,10 @@ -/* has been tested and it good */ +#include + void default_vreg_init(void) { volatile uint32_t i; - *(volatile uint32_t *)(0x80003000) = 0x00000018; /* set default state */ - *(volatile uint32_t *)(0x80003048) = 0x00000f04; /* bypass the buck */ + *CRM_SYS_CNTL = 0x00000018; /* set default state */ + *CRM_VREG_CNTL = 0x00000f04; /* bypass the buck */ for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ // while((((*(volatile uint32_t *)(0x80003018))>>17) & 1) !=1) { continue; } /* wait for the bypass to take */ - *(volatile uint32_t *)(0x80003048) = 0x00000ff8; /* start the regulators */ + *CRM_VREG_CNTL = 0x00000ff8; /* start the regulators */ } diff --git a/tests/Makefile b/tests/Makefile index 0bf132d2b..8d588c7af 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,6 +1,6 @@ MC1322X := .. -TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback +TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read include $(MC1322X)/Makefile.include From 9a8004c177af3acd7e78890c8439430905129f76 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 12:37:13 -0500 Subject: [PATCH 183/471] working on nvm-read. fixed lib ordering on link command --- Makefile.include | 8 +- board/Makefile.board | 2 +- board/redbee-r1.h | 2 + board/std_conf.h | 4 +- config.mk | 4 +- libmc1322x/Makefile.lib | 2 +- libmc1322x/include/crm.h | 100 +++++++++++++++++++++ libmc1322x/nvm.c | 1 + board/lowlevel.c => src/default_lowlevel.c | 1 + board/lowlevel.h => src/default_lowlevel.h | 0 tests/nvm-read.c | 13 +-- 11 files changed, 122 insertions(+), 15 deletions(-) create mode 100644 libmc1322x/include/crm.h rename board/lowlevel.c => src/default_lowlevel.c (95%) rename board/lowlevel.h => src/default_lowlevel.h (100%) diff --git a/Makefile.include b/Makefile.include index 1631fa113..223372291 100644 --- a/Makefile.include +++ b/Makefile.include @@ -12,12 +12,15 @@ include $(MC1322X)/board/Makefile.board include $(MC1322X)/libmc1322x/Makefile.lib # default start and isr +CFLAGS += -I$(MC1322X)/src + ifndef START START = $(MC1322X)/src/start.o endif ifndef ISR ISR = $(MC1322X)/src/isr.o endif +SRCOBJS += $(MC1322X)/src/default_lowlevel.o ARCH = arm CPU = arm7tdmi-s @@ -34,9 +37,8 @@ $(ISR): $(ISR:.o=.c) %_$(BOARD).elf: %.elf mv $< $@ -%.elf: $(START) $(ISR) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/%.o $(LINKERSCRIPT) - $(LD) $(LDFLAGS) $(AOBJS) \ - --start-group $(PLATFORM_LIBS) --end-group \ +%.elf: $(START) $(ISR) $(SRCOBJS) $(OBJDIR)/%.o $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a + $(CC) $(LDFLAGS) $(AOBJS) \ $(filter %.o %.a,$+) -o $@ %.srec: %.elf diff --git a/board/Makefile.board b/board/Makefile.board index 92c63c15a..b187f2545 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -4,7 +4,7 @@ BOARDS := redbee-dev redbee-r1 OBJDIR := obj_$(BOARD)_board -CFLAGS += -I$(OBJDIR) +CFLAGS += -I$(OBJDIR) -I$(MC1322X)/board $(OBJDIR): ifndef BOARD diff --git a/board/redbee-r1.h b/board/redbee-r1.h index e4a77f438..79bde2d4e 100644 --- a/board/redbee-r1.h +++ b/board/redbee-r1.h @@ -1,6 +1,8 @@ #ifndef BOARD_REDBEE_R1_H #define BOARD_REDBEE_R1_H +#include + #define LED_RED (1 << 8) #define LED_GREEN (1 << 9) #define LED_BLUE (1 << 10) diff --git a/board/std_conf.h b/board/std_conf.h index ee7954670..e6376a7f9 100644 --- a/board/std_conf.h +++ b/board/std_conf.h @@ -1,7 +1,9 @@ #ifndef STDCONF_H #define STDCONF_H -#ifndef vreg_init() +#include + +#ifndef vreg_init #define vreg_init() default_vreg_init() #endif diff --git a/config.mk b/config.mk index dd1c073c1..7740c06ec 100644 --- a/config.mk +++ b/config.mk @@ -27,8 +27,6 @@ OBJCFLAGS += --gap-fill=0xff gccincdir := $(shell $(CC) -print-file-name=include) -PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc - CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ -fno-builtin -ffreestanding -nostdinc -isystem \ @@ -39,7 +37,7 @@ CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wcast-align AFLAGS_DEBUG := -Wa,-gstabs AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) -LDFLAGS += -T $(LINKERSCRIPT) -nostartfiles -static -Map=$*.map -export-dynamic +LDFLAGS += -T $(LINKERSCRIPT) -nostartfiles -static -Wl,-Map=$*.map -export-dynamic ######################################################################### diff --git a/libmc1322x/Makefile.lib b/libmc1322x/Makefile.lib index 3a5a15c32..51ce030c0 100644 --- a/libmc1322x/Makefile.lib +++ b/libmc1322x/Makefile.lib @@ -5,4 +5,4 @@ CFLAGS += -I$(LIBMC1322X)/include LIBOBJS = $(patsubst %.c,%.o,$(wildcard $(LIBMC1322X)/*.c)) $(LIBMC1322X)/libmc1322x.a: $(LIBOBJS) - $(AR) r $(LIBMC1322X)/libmc1322x.a $(LIBOBJS) + $(AR) rcs $(LIBMC1322X)/libmc1322x.a $(LIBOBJS) diff --git a/libmc1322x/include/crm.h b/libmc1322x/include/crm.h new file mode 100644 index 000000000..068b335d2 --- /dev/null +++ b/libmc1322x/include/crm.h @@ -0,0 +1,100 @@ +#ifndef CRM_H +#define CRM_H + +#include + +#define CRM_BASE (0x80003000) +#define CRM_SYS_CNTL ((volatile uint32_t *) (CRM_BASE+0x00)) +#define CRM_WU_CNTL ((volatile uint32_t *) (CRM_BASE+0x04)) +#define CRM_SLEEP_CNTL ((volatile uint32_t *) (CRM_BASE+0x08)) +#define CRM_BS_CNTL ((volatile uint32_t *) (CRM_BASE+0x0c)) +#define CRM_COP_CNTL ((volatile uint32_t *) (CRM_BASE+0x10)) +#define CRM_COP_SERVICE ((volatile uint32_t *) (CRM_BASE+0x14)) +#define CRM_STATUS ((volatile uint32_t *) (CRM_BASE+0x18)) +#define CRM_MOD_STATUS ((volatile uint32_t *) (CRM_BASE+0x1c)) +#define CRM_WU_COUNT ((volatile uint32_t *) (CRM_BASE+0x20)) +#define CRM_WU_TIMEOUT ((volatile uint32_t *) (CRM_BASE+0x24)) +#define CRM_RTC_COUNT ((volatile uint32_t *) (CRM_BASE+0x28)) +#define CRM_RTC_TIMEOUT ((volatile uint32_t *) (CRM_BASE+0x2c)) +#define CRM_CAL_CNTL ((volatile uint32_t *) (CRM_BASE+0x34)) +#define CRM_CAL_COUNT ((volatile uint32_t *) (CRM_BASE+0x38)) +#define CRM_RINGOSC_CNTL ((volatile uint32_t *) (CRM_BASE+0x3c)) +#define CRM_XTAL_CNTL ((volatile uint32_t *) (CRM_BASE+0x40)) +#define CRM_XTAL32_CNTL ((volatile uint32_t *) (CRM_BASE+0x44)) +#define CRM_VREG_CNTL ((volatile uint32_t *) (CRM_BASE+0x48)) +#define CRM_SW_RST ((volatile uint32_t *) (CRM_BASE+0x50)) + +/* CRM_SYS_CNTL bit locations */ +#define XTAL32_EXISTS 5 + +/* CRM_WU_CNTL bit locations */ +#define EXT_WU_IEN 20 /* 4 bits */ +#define EXT_WU_EN 4 /* 4 bits */ +#define EXT_WU_EDGE 8 /* 4 bits */ +#define EXT_WU_POL 12 /* 4 bits */ +#define TIMER_WU_EN 0 +#define RTC_WU_EN 1 +#define TIMER_WU_IEN 16 +#define RTC_WU_IEN 17 + +/* CRM_STATUS bit locations */ +#define EXT_WU_EVT 4 /* 4 bits, rw1c */ +#define RTC_WU_EVT 3 /* rw1c */ + +/* RINGOSC_CNTL bit locations */ +#define ROSC_CTUNE 9 /* 4 bits */ +#define ROSC_FTUNE 4 /* 4 bits */ +#define ROSC_EN 0 + +#define ring_osc_on() (set_bit(reg32(CRM_RINGOSC_CNTL),ROSC_EN)) +#define ring_osc_off() (clear_bit(reg32(CRM_RINGOSC_CNTL),ROSC_EN)) + +#define REF_OSC 24000000ULL /* reference osc. frequency */ +#define NOMINAL_RING_OSC_SEC 2000 /* nominal ring osc. frequency */ +//extern uint32_t cal_rtc_secs; /* calibrated 2khz rtc seconds */ + +/* XTAL32_CNTL bit locations */ +#define XTAL32_GAIN 4 /* 2 bits */ +#define XTAL32_EN 0 + +#define xtal32_on() (set_bit(reg32(CRM_XTAL32_CNTL),XTAL32_EN)) +#define xtal32_off() (clear_bit(reg32(CRM_XTAL32_CNTL),XTAL32_EN)) +#define xtal32_exists() (set_bit(reg32(CRM_SYS_CNTL),XTAL32_EXISTS)) + +/* enable external wake-ups on kbi 4-7 */ +/* see kbi.h for other kbi specific macros */ +#define enable_ext_wu(kbi) (set_bit(reg32(CRM_WU_CNTL),(EXT_WU_EN+kbi-4))) +#define disable_ext_wu(kbi) (clear_bit(reg32(CRM_WU_CNTL),(EXT_WU_EN+kbi-4))) + +#define is_ext_wu_evt(kbi) (bit_is_set(reg32(CRM_STATUS),(EXT_WU_EVT+kbi-4))) +#define clear_ext_wu_evt(kbi) (set_bit(reg32(CRM_STATUS),(EXT_WU_EVT+kbi-4))) /* r1wc bit */ + +/* enable wake-up timer */ +#define enable_timer_wu_irq() ((set_bit(reg32(CRM_WU_CNTL),(TIMER_WU_IEN)))) +#define disable_timer_wu_irq() ((clear_bit(reg32(CRM_WU_CNTL),(TIMER_WU_IEN)))) + +#define enable_timer_wu() ((set_bit(reg32(CRM_WU_CNTL),(TIMER_WU_EN)))) +#define disable_timer_wu() ((clear_bit(reg32(CRM_WU_CNTL),(TIMER_WU_EN)))) + +/* enable wake-up from RTC compare */ +#define enable_rtc_wu_irq() (set_bit(reg32(CRM_WU_CNTL),RTC_WU_IEN)) +#define disable_rtc_wu_irq() (clear_bit(reg32(CRM_WU_CNTL),RTC_WU_IEN)) + +#define enable_rtc_wu() ((set_bit(reg32(CRM_WU_CNTL),(RTC_WU_EN)))) +#define disable_rtc_wu() ((clear_bit(reg32(CRM_WU_CNTL),(RTC_WU_EN)))) + +#define clear_rtc_wu_evt() (set_bit(reg32(CRM_STATUS),RTC_WU_EVT)) +#define rtc_wu_evt() (bit_is_set(reg32(CRM_STATUS),RTC_WU_EVT)) + +#define SLEEP_MODE_HIBERNATE bit(0) +#define SLEEP_MODE_DOZE bit(1) + +#define SLEEP_PAD_PWR bit(7) +#define SLEEP_RETAIN_MCU bit(6) +#define sleep_ram_retain(x) (x<<4) /* 0-3 */ +#define SLEEP_RAM_8K sleep_ram_retain(0) +#define SLEEP_RAM_32K sleep_ram_retain(1) +#define SLEEP_RAM_64K sleep_ram_retain(2) +#define SLEEP_RAM_96K sleep_ram_retain(3) + +#endif diff --git a/libmc1322x/nvm.c b/libmc1322x/nvm.c index 15f823dd9..5bd902084 100644 --- a/libmc1322x/nvm.c +++ b/libmc1322x/nvm.c @@ -19,3 +19,4 @@ volatile nvmErr_t (*nvm_erase) volatile void(*nvm_setsvar) (uint32_t zero_for_awesome) = (void *)0x00007085; + diff --git a/board/lowlevel.c b/src/default_lowlevel.c similarity index 95% rename from board/lowlevel.c rename to src/default_lowlevel.c index c12b96dbe..c1df5c9fe 100644 --- a/board/lowlevel.c +++ b/src/default_lowlevel.c @@ -1,3 +1,4 @@ +#include #include void default_vreg_init(void) { diff --git a/board/lowlevel.h b/src/default_lowlevel.h similarity index 100% rename from board/lowlevel.h rename to src/default_lowlevel.h diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 2bfd28fc7..7cbbc2d4c 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -1,6 +1,7 @@ #include #include #include +#include /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ #define INC 767 @@ -29,19 +30,19 @@ void main(void) { /* Restore UART regs. to default */ /* in case there is still bootloader state leftover */ - reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + *UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ #define INC 767 #define MOD 9999 - reg(UART1_BR) = INC<<16 | MOD; + *UART1_BR = INC<<16 | MOD; /* see Section 11.5.1.2 Alternate Modes */ /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ /* From the datasheet: "The peripheral function will control operation of the pad IF */ /* THE PERIPHERAL IS ENABLED. */ - reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ - reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + *UART1_CON = 0x00000003; /* enable receive and transmit */ + *GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ vreg_init(); @@ -77,8 +78,8 @@ void main(void) { } void putc(uint8_t c) { - while(reg(UT1CON)==31); /* wait for there to be room in the buffer */ - reg(UART1_DATA) = c; + while(*UT1CON == 31); /* wait for there to be room in the buffer */ + *UART1_DATA = c; } void puts(uint8_t *s) { From 2b4ead0efe4d3bfe984607d66c7eca14443c34ed Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 12:53:04 -0500 Subject: [PATCH 184/471] turn on more warnings add -Werror --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index 7740c06ec..b0f8aa261 100644 --- a/config.mk +++ b/config.mk @@ -32,7 +32,7 @@ CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -fno-builtin -ffreestanding -nostdinc -isystem \ $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wcast-align +CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wcast-align -Wextra -Werror AFLAGS_DEBUG := -Wa,-gstabs AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) From 8f6e672cc045d632e6ab416f70c6c371102bc7f3 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 12:53:21 -0500 Subject: [PATCH 185/471] fix warnings --- libmc1322x/include/nvm.h | 10 +++++----- libmc1322x/nvm.c | 10 +++++----- tests/nvm-read.c | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/libmc1322x/include/nvm.h b/libmc1322x/include/nvm.h index 0261f2be3..15133a2f3 100644 --- a/libmc1322x/include/nvm.h +++ b/libmc1322x/include/nvm.h @@ -36,12 +36,12 @@ typedef enum /* ROM code seems to be THUMB */ /* need to be in a THUMB block before calling them */ -extern volatile nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType); -extern volatile nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes); -extern volatile nvmErr_t (*nvm_write)(nvmInterface_t nvmInterface, nvmType_t nvmType ,void *pSrc, uint32_t address, uint32_t numBytes); +extern nvmErr_t (*nvm_detect)(nvmInterface_t nvmInterface,nvmType_t* pNvmType); +extern nvmErr_t (*nvm_read)(nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes); +extern nvmErr_t (*nvm_write)(nvmInterface_t nvmInterface, nvmType_t nvmType ,void *pSrc, uint32_t address, uint32_t numBytes); /* sector bit field selects which sector to erase */ /* SST flash has 32 sectors 4096 bytes each */ /* bit 0 is the first sector, bit 31 is the last */ -extern volatile nvmErr_t (*nvm_erase)(nvmInterface_t nvmInterface, nvmType_t nvmType ,uint32_t sectorBitfield); -extern volatile void(*nvm_setsvar)(uint32_t zero_for_awesome); +extern nvmErr_t (*nvm_erase)(nvmInterface_t nvmInterface, nvmType_t nvmType ,uint32_t sectorBitfield); +extern void(*nvm_setsvar)(uint32_t zero_for_awesome); #endif //NVM_H diff --git a/libmc1322x/nvm.c b/libmc1322x/nvm.c index 5bd902084..6a9d14211 100644 --- a/libmc1322x/nvm.c +++ b/libmc1322x/nvm.c @@ -1,22 +1,22 @@ #include "nvm.h" -volatile nvmErr_t (*nvm_detect) +nvmErr_t (*nvm_detect) (nvmInterface_t nvmInterface,nvmType_t* pNvmType) = (void *) 0x00006cb9; -volatile nvmErr_t (*nvm_read) +nvmErr_t (*nvm_read) (nvmInterface_t nvmInterface , nvmType_t nvmType , void *pDest, uint32_t address, uint32_t numBytes) = (void *) 0x00006d69; -volatile nvmErr_t (*nvm_write) +nvmErr_t (*nvm_write) (nvmInterface_t nvmInterface, nvmType_t nvmType ,void *pSrc, uint32_t address, uint32_t numBytes) = (void *) 0x00006ec5; -volatile nvmErr_t (*nvm_erase) +nvmErr_t (*nvm_erase) (nvmInterface_t nvmInterface, nvmType_t nvmType ,uint32_t sectorBitfield) = (void*) 0x00006e05; -volatile void(*nvm_setsvar) +void(*nvm_setsvar) (uint32_t zero_for_awesome) = (void *)0x00007085; diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 7cbbc2d4c..9aa8509fe 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -10,8 +10,8 @@ #define READ_ADDR 0x1F000 #define NBYTES 1024 -void putc(uint8_t c); -void puts(uint8_t *s); +void putc(char c); +void puts(char *s); void put_hex(uint8_t x); void put_hex16(uint16_t x); void put_hex32(uint32_t x); @@ -77,12 +77,12 @@ void main(void) { while(1) {continue;}; } -void putc(uint8_t c) { +void putc(char c) { while(*UT1CON == 31); /* wait for there to be room in the buffer */ *UART1_DATA = c; } -void puts(uint8_t *s) { +void puts(char *s) { while(s && *s!=0) { putc(*s++); } From a791be393bae40488a16447f68a8d06f5db6cd66 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 13:03:37 -0500 Subject: [PATCH 186/471] update nvm-write --- tests/Makefile | 2 +- tests/nvm-read.c | 4 --- tests/nvm-write.c | 68 +++++++++++++++-------------------------------- 3 files changed, 22 insertions(+), 52 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 8d588c7af..f1f05af76 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,6 +1,6 @@ MC1322X := .. -TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read +TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write include $(MC1322X)/Makefile.include diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 9aa8509fe..9f81bd50f 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -46,10 +46,6 @@ void main(void) { vreg_init(); -// puts("CRM status: 0x"); -// put_hex32(reg(0x80003018)); -// puts("\n\r"); - puts("Detecting internal nvm\n\r"); err = nvm_detect(gNvmInternalInterface_c, &type); diff --git a/tests/nvm-write.c b/tests/nvm-write.c index 33ddfb4ac..e52f83fe4 100644 --- a/tests/nvm-write.c +++ b/tests/nvm-write.c @@ -1,27 +1,19 @@ -#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ +#include +#include +#include +#include -#define BASE_UART1 0x80005000 -#define UART1_CON 0x80005000 -#define UART1_STAT 0x80005004 -#define UART1_DATA 0x80005008 -#define UR1CON 0x8000500c -#define UT1CON 0x80005010 -#define UART1_CTS 0x80005014 -#define UART1_BR 0x80005018 +/* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ +#define INC 767 +#define MOD 9999 -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 +#define NBYTES 8 +#define WRITE_ADDR 0x1e000 +#define WRITEVAL0 0xdeadbeef +#define WRITEVAL1 0xdeadbeef -#include "embedded_types.h" -#include "nvm.h" -#include "maca.h" - -#define reg(x) (*(volatile uint32_t *)(x)) - -#define DELAY 400000 - -void putc(uint8_t c); -void puts(uint8_t *s); +void putc(char c); +void puts(char *s); void put_hex(uint8_t x); void put_hex16(uint16_t x); void put_hex32(uint32_t x); @@ -29,46 +21,28 @@ void put_hex32(uint32_t x); const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; -#include "isr.h" - -#define NBYTES 8 -#define WRITE_ADDR 0x1e000 -//#define WRITE_ADDR 0x0 -#define WRITEVAL0 0x00000001 -#define WRITEVAL1 0x00000000 - -__attribute__ ((section ("startup"))) void main(void) { nvmType_t type=0; nvmErr_t err; uint32_t buf[NBYTES/4]; uint32_t i; - *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; - - /* Restore UART regs. to default */ - /* in case there is still bootloader state leftover */ - - reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + *UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ #define INC 767 #define MOD 9999 - reg(UART1_BR) = INC<<16 | MOD; + *UART1_BR = INC<<16 | MOD; /* see Section 11.5.1.2 Alternate Modes */ /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ /* From the datasheet: "The peripheral function will control operation of the pad IF */ /* THE PERIPHERAL IS ENABLED. */ - reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ - reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + *UART1_CON = 0x00000003; /* enable receive and transmit */ + *GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ vreg_init(); -// puts("CRM status: 0x"); -// put_hex32(reg(0x80003018)); -// puts("\n\r"); - puts("Detecting internal nvm\n\r"); err = nvm_detect(gNvmInternalInterface_c, &type); @@ -115,12 +89,12 @@ void main(void) { while(1) {continue;}; } -void putc(uint8_t c) { - while(reg(UT1CON)==31); /* wait for there to be room in the buffer */ - reg(UART1_DATA) = c; +void putc(char c) { + while(*UT1CON == 31); /* wait for there to be room in the buffer */ + *UART1_DATA = c; } -void puts(uint8_t *s) { +void puts(char *s) { while(s && *s!=0) { putc(*s++); } From 87cd9c7a36920c5511c0fa52194d5936afc6abb9 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 14:04:10 -0500 Subject: [PATCH 187/471] update build system for board specific code that's 'local' to the program you are building. update tests to consolidate common code. --- Makefile.include | 14 +++++--- board/Makefile.board | 2 +- libmc1322x/include/mc1322x.h | 4 +++ libmc1322x/include/utils.h | 2 -- tests/Makefile | 6 ++++ tests/nvm-read.c | 62 +++--------------------------------- tests/nvm-write.c | 57 +++------------------------------ tests/put.c | 36 +++++++++++++++++++++ tests/put.h | 10 ++++++ tests/romimg.c | 42 +++++------------------- tests/tests.c | 32 +++++++++++++++++++ tests/tests.h | 9 ++++++ tests/uart1-loopback.c | 16 ++-------- 13 files changed, 126 insertions(+), 166 deletions(-) create mode 100644 tests/put.c create mode 100644 tests/put.h create mode 100644 tests/tests.c create mode 100644 tests/tests.h diff --git a/Makefile.include b/Makefile.include index 223372291..5e931066b 100644 --- a/Makefile.include +++ b/Makefile.include @@ -11,9 +11,10 @@ include $(MC1322X)/board/Makefile.board include $(MC1322X)/libmc1322x/Makefile.lib -# default start and isr -CFLAGS += -I$(MC1322X)/src +CFLAGS += -I$(MC1322X)/src -I. + +# default start and isr ifndef START START = $(MC1322X)/src/start.o endif @@ -21,6 +22,7 @@ ifndef ISR ISR = $(MC1322X)/src/isr.o endif SRCOBJS += $(MC1322X)/src/default_lowlevel.o +BOARDOBJS := $(addprefix $(OBJDIR)/,$(COBJS)) ARCH = arm CPU = arm7tdmi-s @@ -28,16 +30,20 @@ export ARCH CPU VENDOR .SECONDARY: +#.depend: Makefile $(AOBJS:.o=.S) $(COBJS:.o=.c) +# $(CC) -M $(CFLAGS) $(AOBJS:.o=.S) $(COBJS:.o=.c) > $@ +#sinclude .depend + $(START): $(START:.o=.s) $(CC) $(AFLAGS) -c -o $@ $< $(ISR): $(ISR:.o=.c) $(CC) $(CFLAGS) $(ARM_FLAGS) $< -c -o $@ -%_$(BOARD).elf: %.elf +%_$(BOARD).elf: %.elf $(BOARDOBJS) mv $< $@ -%.elf: $(START) $(ISR) $(SRCOBJS) $(OBJDIR)/%.o $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a +%.elf: $(START) $(ISR) $(SRCOBJS) $(OBJDIR)/%.o $(BOARDOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a $(CC) $(LDFLAGS) $(AOBJS) \ $(filter %.o %.a,$+) -o $@ diff --git a/board/Makefile.board b/board/Makefile.board index b187f2545..949231d05 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -4,7 +4,7 @@ BOARDS := redbee-dev redbee-r1 OBJDIR := obj_$(BOARD)_board -CFLAGS += -I$(OBJDIR) -I$(MC1322X)/board +CFLAGS += -I$(OBJDIR) -I$(MC1322X)/board -DBOARD=$(BOARD) $(OBJDIR): ifndef BOARD diff --git a/libmc1322x/include/mc1322x.h b/libmc1322x/include/mc1322x.h index fe7653e73..74041e3c9 100644 --- a/libmc1322x/include/mc1322x.h +++ b/libmc1322x/include/mc1322x.h @@ -4,5 +4,9 @@ #include "types.h" #include "isr.h" #include "gpio.h" +#include "crm.h" +#include "nvm.h" +#include "uart1.h" +#include "utils.h" #endif diff --git a/libmc1322x/include/utils.h b/libmc1322x/include/utils.h index 9b47defc3..215d3e3f9 100644 --- a/libmc1322x/include/utils.h +++ b/libmc1322x/include/utils.h @@ -1,8 +1,6 @@ #ifndef UTILS_H #define UTILS_H -#include - #define CAT2(x, y, z) x##y##z #define bit(bit) (1 << bit) diff --git a/tests/Makefile b/tests/Makefile index f1f05af76..0cb5f1daf 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,5 +1,11 @@ MC1322X := .. +# all off the common objects for each target +# a COBJ is made for EACH board and goes the obj_$(BOARD)_board directory +# board specific code is OK in these files +COBJS := tests.o put.o + +# all of the target programs to build TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write include $(MC1322X)/Makefile.include diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 9f81bd50f..53d8ac02b 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -1,7 +1,7 @@ #include #include -#include -#include + +#include "tests.h" /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ #define INC 767 @@ -10,39 +10,15 @@ #define READ_ADDR 0x1F000 #define NBYTES 1024 -void putc(char c); -void puts(char *s); -void put_hex(uint8_t x); -void put_hex16(uint16_t x); -void put_hex32(uint32_t x); - -const uint8_t hex[16]={'0','1','2','3','4','5','6','7', - '8','9','a','b','c','d','e','f'}; - - - void main(void) { nvmType_t type=0; nvmErr_t err; uint32_t buf[NBYTES/4]; uint32_t i; - /* Restore UART regs. to default */ - /* in case there is still bootloader state leftover */ + uart_init(INC, MOD); - *UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ - - /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ - #define INC 767 - #define MOD 9999 - *UART1_BR = INC<<16 | MOD; - - /* see Section 11.5.1.2 Alternate Modes */ - /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ - /* From the datasheet: "The peripheral function will control operation of the pad IF */ - /* THE PERIPHERAL IS ENABLED. */ - *UART1_CON = 0x00000003; /* enable receive and transmit */ - *GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + print_welcome("nvm-read"); vreg_init(); @@ -73,33 +49,3 @@ void main(void) { while(1) {continue;}; } -void putc(char c) { - while(*UT1CON == 31); /* wait for there to be room in the buffer */ - *UART1_DATA = c; -} - -void puts(char *s) { - while(s && *s!=0) { - putc(*s++); - } -} - -void put_hex(uint8_t x) -{ - putc(hex[x >> 4]); - putc(hex[x & 15]); -} - -void put_hex16(uint16_t x) -{ - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} - -void put_hex32(uint32_t x) -{ - put_hex((x >> 24) & 0xFF); - put_hex((x >> 16) & 0xFF); - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} diff --git a/tests/nvm-write.c b/tests/nvm-write.c index e52f83fe4..838bc51e0 100644 --- a/tests/nvm-write.c +++ b/tests/nvm-write.c @@ -1,7 +1,7 @@ #include #include -#include -#include + +#include "tests.h" /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ #define INC 767 @@ -12,34 +12,15 @@ #define WRITEVAL0 0xdeadbeef #define WRITEVAL1 0xdeadbeef -void putc(char c); -void puts(char *s); -void put_hex(uint8_t x); -void put_hex16(uint16_t x); -void put_hex32(uint32_t x); - -const uint8_t hex[16]={'0','1','2','3','4','5','6','7', - '8','9','a','b','c','d','e','f'}; - void main(void) { nvmType_t type=0; nvmErr_t err; uint32_t buf[NBYTES/4]; uint32_t i; - *UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + uart_init(INC, MOD); - /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ - #define INC 767 - #define MOD 9999 - *UART1_BR = INC<<16 | MOD; - - /* see Section 11.5.1.2 Alternate Modes */ - /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ - /* From the datasheet: "The peripheral function will control operation of the pad IF */ - /* THE PERIPHERAL IS ENABLED. */ - *UART1_CON = 0x00000003; /* enable receive and transmit */ - *GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + print_welcome("nvm-write"); vreg_init(); @@ -89,33 +70,3 @@ void main(void) { while(1) {continue;}; } -void putc(char c) { - while(*UT1CON == 31); /* wait for there to be room in the buffer */ - *UART1_DATA = c; -} - -void puts(char *s) { - while(s && *s!=0) { - putc(*s++); - } -} - -void put_hex(uint8_t x) -{ - putc(hex[x >> 4]); - putc(hex[x & 15]); -} - -void put_hex16(uint16_t x) -{ - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} - -void put_hex32(uint32_t x) -{ - put_hex((x >> 24) & 0xFF); - put_hex((x >> 16) & 0xFF); - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} diff --git a/tests/put.c b/tests/put.c new file mode 100644 index 000000000..34e336586 --- /dev/null +++ b/tests/put.c @@ -0,0 +1,36 @@ +#include +#include + +const uint8_t hex[16]={'0','1','2','3','4','5','6','7', + '8','9','a','b','c','d','e','f'}; + +void putc(char c) { + while(*UT1CON == 31); /* wait for there to be room in the buffer */ + *UART1_DATA = c; +} + +void puts(char *s) { + while(s && *s!=0) { + putc(*s++); + } +} + +void put_hex(uint8_t x) +{ + putc(hex[x >> 4]); + putc(hex[x & 15]); +} + +void put_hex16(uint16_t x) +{ + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} + +void put_hex32(uint32_t x) +{ + put_hex((x >> 24) & 0xFF); + put_hex((x >> 16) & 0xFF); + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} diff --git a/tests/put.h b/tests/put.h new file mode 100644 index 000000000..034b636ca --- /dev/null +++ b/tests/put.h @@ -0,0 +1,10 @@ +#ifndef PUT_H +#define PUT_H + +void putc(char c); +void puts(char *s); +void put_hex(uint8_t x); +void put_hex16(uint16_t x); +void put_hex32(uint32_t x); + +#endif diff --git a/tests/romimg.c b/tests/romimg.c index e29330e13..eb5af28af 100644 --- a/tests/romimg.c +++ b/tests/romimg.c @@ -1,19 +1,12 @@ -#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ +#include +#include -#define BASE_UART1 0x80005000 -#define UART1_CON 0x80005000 -#define UART1_STAT 0x80005004 -#define UART1_DATA 0x80005008 -#define UR1CON 0x8000500c -#define UT1CON 0x80005010 -#define UART1_CTS 0x80005014 -#define UART1_BR 0x80005018 +#include "tests.h" +#include "put.h" -#include "embedded_types.h" - -#define reg(x) (*(volatile uint32_t *)(x)) - -#define DELAY 400000 +/* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ +#define INC 767 +#define MOD 9999 void putc(uint8_t c); void puts(uint8_t *s); @@ -28,30 +21,11 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', #define DUMP_LEN 0x00014000 //#define DUMP_LEN 16 -#include "isr.h" - -__attribute__ ((section ("startup"))) void main(void) { volatile uint32_t i; -// volatile uint8_t *data; volatile uint8_t *data; - /* Restore UART regs. to default */ - /* in case there is still bootloader state leftover */ - - reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ - - /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ - #define INC 767 - #define MOD 9999 - reg(UART1_BR) = INC<<16 | MOD; - - /* see Section 11.5.1.2 Alternate Modes */ - /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ - /* From the datasheet: "The peripheral function will control operation of the pad IF */ - /* THE PERIPHERAL IS ENABLED. */ - reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ - reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + uart_init(inc, mod); for(data=DUMP_BASE; data<(DUMP_BASE+DUMP_LEN); data++) { putc(*data); diff --git a/tests/tests.c b/tests/tests.c new file mode 100644 index 000000000..2be580783 --- /dev/null +++ b/tests/tests.c @@ -0,0 +1,32 @@ +#include +#include "put.h" + +void uart_init(uint16_t inc, uint16_t mod) { + /* Restore UART regs. to default */ + /* in case there is still bootloader state leftover */ + + *UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ + + /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ + *UART1_BR = (inc << 16) | mod; + + /* see Section 11.5.1.2 Alternate Modes */ + /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ + /* From the datasheet: "The peripheral function will control operation of the pad IF */ + /* THE PERIPHERAL IS ENABLED. */ + *UART1_CON = 0x00000003; /* enable receive and transmit */ + *GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + +} + +void print_welcome(char* testname) { + puts("mc1322x-test: "); + puts(testname); + puts("\n\r"); + puts("board: "); +#if (BOARD == redbee-dev) + puts("redbee-dev"); +#elif (BOARD == redbee-r1) + puts("redbee-dev"); +#endif +} diff --git a/tests/tests.h b/tests/tests.h new file mode 100644 index 000000000..d3970d28a --- /dev/null +++ b/tests/tests.h @@ -0,0 +1,9 @@ +#ifndef TESTS_H +#define TESTS_H + +#include "put.h" + +void uart_init(uint16_t inc, uint16_t mod); +void print_welcome(char* testname); + +#endif diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index 487c31af6..1a12d2639 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -1,25 +1,13 @@ #include #include -#include + +#include "tests.h" /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ #define INC 767 #define MOD 9999 void main(void) { - - /* mask interrupts, 16 bit sample --- helps explain the baud rate */ - *UART1_CON = 0x0000c800; - - - *UART1_BR = INC<<16 | MOD; - - /* see Section 11.5.1.2 Alternate Modes */ - /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ - /* From the datasheet: "The peripheral function will control operation of the pad IF */ - /* THE PERIPHERAL IS ENABLED. */ - *UART1_CON = 0x00000003; /* enable receive and transmit */ - *GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ uint8_t c; while(1) { From 64824b4ebc69977d8a23e8fd23a4c715ffbdf103 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 14:21:46 -0500 Subject: [PATCH 188/471] place all the config into config.h --- tests/config.h | 26 ++++++++++++++++++++++++++ tests/nvm-read.c | 14 ++++---------- tests/nvm-write.c | 20 ++++++-------------- tests/tests.c | 3 ++- tests/tests.h | 2 +- 5 files changed, 39 insertions(+), 26 deletions(-) create mode 100644 tests/config.h diff --git a/tests/config.h b/tests/config.h new file mode 100644 index 000000000..1dafb0344 --- /dev/null +++ b/tests/config.h @@ -0,0 +1,26 @@ +#ifndef CONFIG_H +#define CONFIG_H + +/* Baud rate */ +/* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ +#define INC 767 +#define MOD 9999 + +/* use uart1 for console */ +#define uart_init uart1_init + +/* nvm-read */ +#define READ_ADDR 0x1F000 +#define READ_NBYTES 1024 + +/* nvm-write */ +#define WRITE_NBYTES 8 +#define WRITE_ADDR 0x1e000 +#define WRITEVAL0 0xdeadbeef +#define WRITEVAL1 0xdeadbeef + +/* romimg */ +#define DUMP_BASE 0x00000000 +#define DUMP_LEN 0x00014000 + +#endif diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 53d8ac02b..7b7d11981 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -2,18 +2,12 @@ #include #include "tests.h" - -/* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ -#define INC 767 -#define MOD 9999 - -#define READ_ADDR 0x1F000 -#define NBYTES 1024 +#include "config.h" void main(void) { nvmType_t type=0; nvmErr_t err; - uint32_t buf[NBYTES/4]; + uint32_t buf[READ_NBYTES/4]; uint32_t i; uart_init(INC, MOD); @@ -34,12 +28,12 @@ void main(void) { nvm_setsvar(0); - err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, READ_ADDR, NBYTES); + err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, READ_ADDR, READ_NBYTES); puts("nvm_read returned: 0x"); put_hex(err); puts("\n\r"); - for(i=0; i #include "tests.h" - -/* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ -#define INC 767 -#define MOD 9999 - -#define NBYTES 8 -#define WRITE_ADDR 0x1e000 -#define WRITEVAL0 0xdeadbeef -#define WRITEVAL1 0xdeadbeef +#include "config.h" void main(void) { nvmType_t type=0; nvmErr_t err; - uint32_t buf[NBYTES/4]; + uint32_t buf[WRITE_NBYTES/4]; uint32_t i; uart_init(INC, MOD); @@ -43,24 +35,24 @@ void main(void) { put_hex(err); puts("\n\r"); - err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)buf, WRITE_ADDR, NBYTES); + err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)buf, WRITE_ADDR, WRITE_NBYTES); puts("nvm_write returned: 0x"); put_hex(err); puts("\n\r"); puts("writing\n\r"); - for(i=0; i #include "put.h" -void uart_init(uint16_t inc, uint16_t mod) { +void uart1_init(uint16_t inc, uint16_t mod) { /* Restore UART regs. to default */ /* in case there is still bootloader state leftover */ @@ -29,4 +29,5 @@ void print_welcome(char* testname) { #elif (BOARD == redbee-r1) puts("redbee-dev"); #endif + puts("\n\r"); } diff --git a/tests/tests.h b/tests/tests.h index d3970d28a..39fe17f3c 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -3,7 +3,7 @@ #include "put.h" -void uart_init(uint16_t inc, uint16_t mod); +void uart1_init(uint16_t inc, uint16_t mod); void print_welcome(char* testname); #endif From 6309b162358ea118eb031cd4f62518442fbe880c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 14:22:28 -0500 Subject: [PATCH 189/471] config is in config.h now --- tests/uart1-loopback.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index 1a12d2639..216f65263 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -2,10 +2,7 @@ #include #include "tests.h" - -/* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ -#define INC 767 -#define MOD 9999 +#include "config.h" void main(void) { From 383a965c21884f2f24664c7cab520c59d8da3e6f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 14:22:41 -0500 Subject: [PATCH 190/471] add romimg --- tests/Makefile | 2 +- tests/romimg.c | 55 +++----------------------------------------------- 2 files changed, 4 insertions(+), 53 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 0cb5f1daf..24415e1c1 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -6,7 +6,7 @@ MC1322X := .. COBJS := tests.o put.o # all of the target programs to build -TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write +TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write romimg include $(MC1322X)/Makefile.include diff --git a/tests/romimg.c b/tests/romimg.c index eb5af28af..445206abe 100644 --- a/tests/romimg.c +++ b/tests/romimg.c @@ -2,66 +2,17 @@ #include #include "tests.h" -#include "put.h" - -/* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ -#define INC 767 -#define MOD 9999 - -void putc(uint8_t c); -void puts(uint8_t *s); -void put_hex(uint8_t x); -void put_hex16(uint16_t x); -void put_hex32(uint32_t x); - -const uint8_t hex[16]={'0','1','2','3','4','5','6','7', - '8','9','a','b','c','d','e','f'}; - -#define DUMP_BASE 0x00000000 -#define DUMP_LEN 0x00014000 -//#define DUMP_LEN 16 +#include "config.h" void main(void) { - volatile uint32_t i; volatile uint8_t *data; - uart_init(inc, mod); + uart_init(INC, MOD); - for(data=DUMP_BASE; data<(DUMP_BASE+DUMP_LEN); data++) { + for(data = DUMP_BASE; data < ((uint8_t *)(DUMP_BASE+DUMP_LEN)); data++) { putc(*data); } while(1); } - -void putc(uint8_t c) { - while(reg(UT1CON)==31); /* wait for there to be room in the buffer */ - reg(UART1_DATA) = c; -} - -void puts(uint8_t *s) { - while(s && *s!=0) { - putc(*s++); - } -} - -void put_hex(uint8_t x) -{ - putc(hex[x >> 4]); - putc(hex[x & 15]); -} - -void put_hex16(uint16_t x) -{ - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} - -void put_hex32(uint32_t x) -{ - put_hex((x >> 24) & 0xFF); - put_hex((x >> 16) & 0xFF); - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} From a2b51b0e3c831635115d321166f259c506d9fd33 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 14:51:01 -0500 Subject: [PATCH 191/471] add flasher --- tests/Makefile | 2 +- tests/config.h | 6 +++ tests/flasher.c | 111 ++++++++---------------------------------------- 3 files changed, 24 insertions(+), 95 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 24415e1c1..0df0403e1 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -6,7 +6,7 @@ MC1322X := .. COBJS := tests.o put.o # all of the target programs to build -TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write romimg +TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write romimg flasher include $(MC1322X)/Makefile.include diff --git a/tests/config.h b/tests/config.h index 1dafb0344..9ac55604a 100644 --- a/tests/config.h +++ b/tests/config.h @@ -23,4 +23,10 @@ #define DUMP_BASE 0x00000000 #define DUMP_LEN 0x00014000 +/* flasher */ +/* if both BOOT_OK and BOOT_SECURE are 0 then flash image will not be bootable */ +/* if both are 1 then flash image will be secure */ +#define BOOT_OK 1 +#define BOOT_SECURE 0 + #endif diff --git a/tests/flasher.c b/tests/flasher.c index cd7e9e393..5cbb75e02 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -1,29 +1,8 @@ -#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ +#include +#include -#define BASE_UART1 0x80005000 -#define UART1_CON 0x80005000 -#define UART1_STAT 0x80005004 -#define UART1_DATA 0x80005008 -#define UR1CON 0x8000500c -#define UT1CON 0x80005010 -#define UART1_CTS 0x80005014 -#define UART1_BR 0x80005018 - -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 - -#include "embedded_types.h" -#include "nvm.h" -#include "maca.h" - -#define reg(x) (*(volatile uint32_t *)(x)) - -#define DELAY 400000 - -/* if both BOOT_OK and BOOT_SECURE are 0 then flash image will not be bootable */ -/* if both are 1 then flash image will be secure */ -#define BOOT_OK 1 -#define BOOT_SECURE 0 +#include "tests.h" +#include "config.h" #define DEBUG 1 #if DEBUG @@ -40,16 +19,9 @@ #define dbg_put_hex32(...) #endif -const uint8_t hex[16]={'0','1','2','3','4','5','6','7', - '8','9','a','b','c','d','e','f'}; - uint8_t getc(void); void flushrx(void); -uint32_t to_u32(char *c); - -#include "isr.h" - -#define NBYTES 16 +uint32_t to_u32(volatile uint32_t *c); enum parse_states { SCAN_X, @@ -58,35 +30,18 @@ enum parse_states { MAX_STATE, }; -__attribute__ ((section ("startup"))) void main(void) { nvmType_t type=0; nvmErr_t err; volatile uint8_t c; - volatile uint32_t buf[NBYTES/4]; volatile uint32_t i; + volatile uint32_t buf[4]; volatile uint32_t len=0; volatile uint32_t state = SCAN_X; volatile uint32_t addr,data; - *(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100; - - /* Restore UART regs. to default */ - /* in case there is still bootloader state leftover */ - reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ - - /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ - #define INC 767 - #define MOD 9999 - reg(UART1_BR) = INC<<16 | MOD; - - /* see Section 11.5.1.2 Alternate Modes */ - /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ - /* From the datasheet: "The peripheral function will control operation of the pad IF */ - /* THE PERIPHERAL IS ENABLED. */ - reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ - reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + uart_init(INC, MOD); vreg_init(); @@ -155,7 +110,7 @@ void main(void) { /* for OTAP */ for(i=0; i> 4]); - putc(hex[x & 15]); -} - -void put_hex16(uint16_t x) -{ - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} - -void put_hex32(uint32_t x) -{ - put_hex((x >> 24) & 0xFF); - put_hex((x >> 16) & 0xFF); - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} - From cd5e5b1706840a159957116b9feac5c4f38ea270 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 15:35:57 -0500 Subject: [PATCH 192/471] tmr --- libmc1322x/include/mc1322x.h | 1 + libmc1322x/include/tmr.h | 92 ++++++++++++++++++++++++++++++++++++ tests/Makefile | 2 +- tests/tests.h | 1 + tests/tmr.c | 44 ++++++++--------- 5 files changed, 114 insertions(+), 26 deletions(-) create mode 100644 libmc1322x/include/tmr.h diff --git a/libmc1322x/include/mc1322x.h b/libmc1322x/include/mc1322x.h index 74041e3c9..4bfed6aa2 100644 --- a/libmc1322x/include/mc1322x.h +++ b/libmc1322x/include/mc1322x.h @@ -6,6 +6,7 @@ #include "gpio.h" #include "crm.h" #include "nvm.h" +#include "tmr.h" #include "uart1.h" #include "utils.h" diff --git a/libmc1322x/include/tmr.h b/libmc1322x/include/tmr.h new file mode 100644 index 000000000..073ed6e62 --- /dev/null +++ b/libmc1322x/include/tmr.h @@ -0,0 +1,92 @@ +#include "utils.h" + +/* Timer registers are all 16-bit wide with 16-bit access only */ +#define TMR_OFFSET (0x20) +#define TMR_BASE (0x80007000) +#define TMR0_BASE (TMR_BASE) +#define TMR1_BASE (TMR_BASE + TMR_OFFSET*1) +#define TMR2_BASE (TMR_BASE + TMR_OFFSET*2) +#define TMR3_BASE (TMR_BASE + TMR_OFFSET*3) + +#define TMR_REGOFF_COMP1 (0x0) +#define TMR_REGOFF_COMP2 (0x2) +#define TMR_REGOFF_CAPT (0x4) +#define TMR_REGOFF_LOAD (0x6) +#define TMR_REGOFF_HOLD (0x8) +#define TMR_REGOFF_CNTR (0xa) +#define TMR_REGOFF_CTRL (0xc) +#define TMR_REGOFF_SCTRL (0xe) +#define TMR_REGOFF_CMPLD1 (0x10) +#define TMR_REGOFF_CMPLD2 (0x12) +#define TMR_REGOFF_CSCTRL (0x14) +#define TMR_REGOFF_ENBL (0x1e) + +/* one enable register to rule them all */ +#define TMR_ENBL ((volatile uint16_t *) TMR0_BASE + TMR_REGOFF_ENBL) + +/* Timer 0 registers */ +#define TMR0_COMP1 ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_COMP1)) +#define TMR0_COMP_UP TMR0_COMP1 +#define TMR0_COMP2 (TMR0_BASE + TMR_REGOFF_COMP2) +#define TMR0_COMP_DOWN TMR0_COMP2 +#define TMR0_CAPT ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CAPT)) +#define TMR0_LOAD ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_LOAD)) +#define TMR0_HOLD ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_HOLD)) +#define TMR0_CNTR ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CTRL)) +#define TMR0_CTRL ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CTRL)) +#define TMR0_SCTRL ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_SCTRL)) +#define TMR0_CMPLD1 ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CMPLD1)) +#define TMR0_CMPLD2 ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CMPLD2)) +#define TMR0_CSCTRL ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CSCTRL)) + +/* Timer 1 registers */ +#define TMR1_COMP1 ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_COMP1)) +#define TMR1_COMP_UP TMR1_COMP1 +#define TMR1_COMP2 ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_COMP2)) +#define TMR1_COMP_DOWN TMR1_COMP2 +#define TMR1_CAPT ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CAPT)) +#define TMR1_LOAD ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_LOAD)) +#define TMR1_HOLD ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_HOLD)) +#define TMR1_CNTR ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CTRL)) +#define TMR1_CTRL ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CTRL)) +#define TMR1_SCTRL ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_SCTRL)) +#define TMR1_CMPLD1 ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CMPLD1)) +#define TMR1_CMPLD2 ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CMPLD2)) +#define TMR1_CSCTRL ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CSCTRL)) + +/* Timer 2 registers */ +#define TMR2_COMP1 ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_COMP1)) +#define TMR2_COMP_UP TMR2_COMP1 +#define TMR2_COMP2 ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_COMP2)) +#define TMR2_COMP_DOWN TMR2_COMP2 +#define TMR2_CAPT ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CAPT)) +#define TMR2_LOAD ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_LOAD)) +#define TMR2_HOLD ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_HOLD)) +#define TMR2_CNTR ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CTRL)) +#define TMR2_CTRL ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CTRL)) +#define TMR2_SCTRL ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_SCTRL)) +#define TMR2_CMPLD1 ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CMPLD1)) +#define TMR2_CMPLD2 ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CMPLD2)) +#define TMR2_CSCTRL ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CSCTRL)) + +/* Timer 3 registers */ +#define TMR3_COMP1 ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_COMP1)) +#define TMR3_COMP_UP TMR3_COMP1 +#define TMR3_COMP2 ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_COMP2)) +#define TMR3_COMP_DOWN TMR3_COMP2 +#define TMR3_CAPT ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CAPT)) +#define TMR3_LOAD ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_LOAD)) +#define TMR3_HOLD ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_HOLD)) +#define TMR3_CNTR ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CTRL)) +#define TMR3_CTRL ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CTRL)) +#define TMR3_SCTRL ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_SCTRL)) +#define TMR3_CMPLD1 ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CMPLD1)) +#define TMR3_CMPLD2 ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CMPLD2)) +#define TMR3_CSCTRL ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CSCTRL)) + +#define TCF 15 +#define TCF1 4 +#define TCF2 5 + +#define TMR(num, reg) CAT2(TMR,num,_##reg) + diff --git a/tests/Makefile b/tests/Makefile index 0df0403e1..9bbfbd348 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -6,7 +6,7 @@ MC1322X := .. COBJS := tests.o put.o # all of the target programs to build -TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write romimg flasher +TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write romimg flasher tmr include $(MC1322X)/Makefile.include diff --git a/tests/tests.h b/tests/tests.h index 39fe17f3c..8b27c8658 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -2,6 +2,7 @@ #define TESTS_H #include "put.h" +#include "led.h" void uart1_init(uint16_t inc, uint16_t mod); void print_welcome(char* testname); diff --git a/tests/tmr.c b/tests/tmr.c index 4cf822dc9..f5558aaf2 100644 --- a/tests/tmr.c +++ b/tests/tmr.c @@ -1,21 +1,15 @@ -#define MBAR_GPIO 0x80000000 -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 -#define UART1_DATA 0x80005008 -#define DELAY 400000 +#include +#include -#include "embedded_types.h" -#include "utils.h" -#include "timer.h" -#include "led.h" +#include "tests.h" +#include "config.h" #define LED LED_YELLOW -__attribute__ ((section ("startup"))) void main(void) { /* pin direction */ - reg32(GPIO_PAD_DIR0) = LED; + *GPIO_PAD_DIR0 = LED; /* timer setup */ /* CTRL */ @@ -28,28 +22,28 @@ void main(void) { #define CO_INIT 0 /* other counters cannot force a re-initialization of this counter */ #define OUT_MODE 0 /* OFLAG is asserted while counter is active */ - reg16(TMR_ENBL) = 0; /* tmrs reset to enabled */ - reg16(TMR0_SCTRL) = 0; - reg16(TMR0_LOAD) = 0; /* reload to zero */ - reg16(TMR0_COMP_UP) = 18750; /* trigger a reload at the end */ - reg16(TMR0_CMPLD1) = 18750; /* compare 1 triggered reload level, 10HZ maybe? */ - reg16(TMR0_CNTR) = 0; /* reset count register */ - reg16(TMR0_CTRL) = (COUNT_MODE<<13) | (PRIME_SRC<<9) | (SEC_SRC<<7) | (ONCE<<6) | (LEN<<5) | (DIR<<4) | (CO_INIT<<3) | (OUT_MODE); - reg16(TMR_ENBL) = 0xf; /* enable all the timers --- why not? */ + *TMR_ENBL = 0; /* tmrs reset to enabled */ + *TMR0_SCTRL = 0; + *TMR0_LOAD = 0; /* reload to zero */ + *TMR0_COMP_UP = 18750; /* trigger a reload at the end */ + *TMR0_CMPLD1 = 18750; /* compare 1 triggered reload level, 10HZ maybe? */ + *TMR0_CNTR = 0; /* reset count register */ + *TMR0_CTRL = (COUNT_MODE<<13) | (PRIME_SRC<<9) | (SEC_SRC<<7) | (ONCE<<6) | (LEN<<5) | (DIR<<4) | (CO_INIT<<3) | (OUT_MODE); + *TMR_ENBL = 0xf; /* enable all the timers --- why not? */ while(1) { /* blink on */ - reg32(GPIO_DATA0) = LED; + *GPIO_DATA0 = LED; - while((reg16(TMR0_SCTRL)>>15) == 0) { continue; } - reg16(TMR0_SCTRL) = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ + while((*TMR0_SCTRL >> 15) == 0) { continue; } + *TMR0_SCTRL = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ /* blink off */ - reg32(GPIO_DATA0) = 0x00000000; + *GPIO_DATA0 = 0x00000000; - while((reg16(TMR0_SCTRL)>>15) == 0) { continue; } - reg16(TMR0_SCTRL) = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ + while((*TMR0_SCTRL >> 15) == 0) { continue; } + *TMR0_SCTRL = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ }; } From d3fed9523524ad58db801a01faebee2622803d9c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 16:15:26 -0500 Subject: [PATCH 193/471] tmr-ints --- src/isr.c | 6 +-- tests/Makefile | 2 +- tests/tmr-ints.c | 99 +++++++++--------------------------------------- 3 files changed, 21 insertions(+), 86 deletions(-) diff --git a/src/isr.c b/src/isr.c index 9c934f341..1ee196328 100644 --- a/src/isr.c +++ b/src/isr.c @@ -1,7 +1,5 @@ -#include "types.h" -#include "isr.h" - -#define reg32(x) (*(volatile uint32_t *)(x)) +#include +#include __attribute__ ((section (".irq"))) __attribute__ ((interrupt("IRQ"))) diff --git a/tests/Makefile b/tests/Makefile index 9bbfbd348..4a58a3247 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -6,7 +6,7 @@ MC1322X := .. COBJS := tests.o put.o # all of the target programs to build -TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write romimg flasher tmr +TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write romimg flasher tmr tmr-ints include $(MC1322X)/Makefile.include diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index 130e31cff..17de11f16 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -1,63 +1,15 @@ -/* Timer registers are all 16-bit wide with 16-bit access only */ -#define TMR_OFFSET (0x20) -#define TMR_BASE (0x80007000) -#define TMR0_BASE (TMR_BASE) -#define TMR1_BASE (TMR_BASE + TMR_OFFSET*1) -#define TMR2_BASE (TMR_BASE + TMR_OFFSET*2) -#define TMR3_BASE (TMR_BASE + TMR_OFFSET*3) +#include +#include -#define TMR_REGOFF_COMP1 (0x0) -#define TMR_REGOFF_COMP2 (0x2) -#define TMR_REGOFF_CAPT (0x4) -#define TMR_REGOFF_LOAD (0x6) -#define TMR_REGOFF_HOLD (0x8) -#define TMR_REGOFF_CNTR (0xa) -#define TMR_REGOFF_CTRL (0xc) -#define TMR_REGOFF_SCTRL (0xe) -#define TMR_REGOFF_CMPLD1 (0x10) -#define TMR_REGOFF_CMPLD2 (0x12) -#define TMR_REGOFF_CSCTRL (0x14) -#define TMR_REGOFF_ENBL (0x1e) - -/* Timer 0 registers */ -#define TMR0_COMP1 (TMR0_BASE + TMR_REGOFF_COMP1) -#define TMR0_COMP_UP TMR0_COMP1 -#define TMR0_COMP2 (TMR0_BASE + TMR_REGOFF_COMP2) -#define TMR0_COMP_DOWN TMR0_COMP2 -#define TMR0_CAPT (TMR0_BASE + TMR_REGOFF_CAPT) -#define TMR0_LOAD (TMR0_BASE + TMR_REGOFF_LOAD) -#define TMR0_HOLD (TMR0_BASE + TMR_REGOFF_HOLD) -#define TMR0_CNTR (TMR0_BASE + TMR_REGOFF_CTRL) -#define TMR0_CTRL (TMR0_BASE + TMR_REGOFF_CTRL) -#define TMR0_SCTRL (TMR0_BASE + TMR_REGOFF_SCTRL) -#define TMR0_CMPLD1 (TMR0_BASE + TMR_REGOFF_CMPLD1) -#define TMR0_CMPLD2 (TMR0_BASE + TMR_REGOFF_CMPLD2) -#define TMR0_CSCTRL (TMR0_BASE + TMR_REGOFF_CSCTRL) - -/* one enable register to rule them all */ -#define TMR_ENBL TMR0_BASE + TMR_REGOFF_ENBL - -#define MBAR_GPIO 0x80000000 -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 -#define UART1_DATA 0x80005008 -#define DELAY 400000 - -#define reg32(x) (*(volatile uint32_t *)(x)) -#define reg16(x) (*(volatile uint16_t *)(x)) - -#include "embedded_types.h" -//#include "sys-interrupt.h" - -#include "isr.h" -#include "led.h" +#include "tests.h" +#include "config.h" volatile uint8_t led; #define LED_VAL LED_PURPLE -#define led_init() do { reg32(GPIO_PAD_DIR0) = LED_VAL; } while(0); -#define led_on() do { led = 1; reg32(GPIO_DATA0) = LED_VAL; } while(0); -#define led_off() do { led = 0; reg32(GPIO_DATA0) = 0x00000000; } while(0); +#define led_init() do { *GPIO_PAD_DIR0 = LED_VAL; } while(0); +#define led_on() do { led = 1; *GPIO_DATA0 = LED_VAL; } while(0); +#define led_off() do { led = 0; *GPIO_DATA0 = 0x00000000; } while(0); void toggle_led(void) { if(0 == led) { @@ -72,27 +24,14 @@ void toggle_led(void) { void tmr_isr(void) { toggle_led(); - reg16(TMR0_SCTRL) = 0; - reg16(TMR0_CSCTRL) = 0x0040; /* clear compare flag */ + *TMR0_SCTRL = 0; + *TMR0_CSCTRL = 0x0040; /* clear compare flag */ } -/* void enIRQ(void) { */ -/* asm volatile ( */ -/* ".code 32;" */ -/* "msr cpsr_c,#0x10;" */ -/* ".code 16;" */ -/* ); */ -/* } */ - - -__attribute__ ((section ("startup"))) void main(void) { -// *(volatile uint32_t *)0x80020010 = 0x20; -// *(volatile uint32_t *)0x80020034 = 0xffff; //force an int. - /* pin direction */ led_init(); @@ -107,22 +46,20 @@ void main(void) { #define CO_INIT 0 /* other counters cannot force a re-initialization of this counter */ #define OUT_MODE 0 /* OFLAG is asserted while counter is active */ - reg16(TMR_ENBL) = 0; /* tmrs reset to enabled */ - reg16(TMR0_SCTRL) = 0; - reg16(TMR0_CSCTRL) =0x0040; - reg16(TMR0_LOAD) = 0; /* reload to zero */ - reg16(TMR0_COMP_UP) = 18750; /* trigger a reload at the end */ - reg16(TMR0_CMPLD1) = 18750; /* compare 1 triggered reload level, 10HZ maybe? */ - reg16(TMR0_CNTR) = 0; /* reset count register */ - reg16(TMR0_CTRL) = (COUNT_MODE<<13) | (PRIME_SRC<<9) | (SEC_SRC<<7) | (ONCE<<6) | (LEN<<5) | (DIR<<4) | (CO_INIT<<3) | (OUT_MODE); - reg16(TMR_ENBL) = 0xf; /* enable all the timers --- why not? */ + *TMR_ENBL = 0; /* tmrs reset to enabled */ + *TMR0_SCTRL = 0; + *TMR0_CSCTRL = 0x0040; + *TMR0_LOAD = 0; /* reload to zero */ + *TMR0_COMP_UP = 18750; /* trigger a reload at the end */ + *TMR0_CMPLD1 = 18750; /* compare 1 triggered reload level, 10HZ maybe? */ + *TMR0_CNTR = 0; /* reset count register */ + *TMR0_CTRL = (COUNT_MODE<<13) | (PRIME_SRC<<9) | (SEC_SRC<<7) | (ONCE<<6) | (LEN<<5) | (DIR<<4) | (CO_INIT<<3) | (OUT_MODE); + *TMR_ENBL = 0xf; /* enable all the timers --- why not? */ led_on(); enable_tmr_irq(); -// enIRQ(); - /* go into user mode to handle IRQs */ /* disabling interrupts is now difficult */ asm(".code 32;" From d0f8336f132e767da9df1bb5ef0c03363186fc64 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 16:37:20 -0500 Subject: [PATCH 194/471] sleep. had to comment out radio_off since I don't have the maca stuff moved over yet. --- libmc1322x/include/utils.h | 3 + tests/Makefile | 2 +- tests/config.h | 3 + tests/sleep.c | 216 +++++++++---------------------------- 4 files changed, 57 insertions(+), 167 deletions(-) diff --git a/libmc1322x/include/utils.h b/libmc1322x/include/utils.h index 215d3e3f9..5f4c79aeb 100644 --- a/libmc1322x/include/utils.h +++ b/libmc1322x/include/utils.h @@ -1,6 +1,9 @@ #ifndef UTILS_H #define UTILS_H +#define mem32(x) ((volatile uint32_t *)(x)) +#define mem16(x) ((volatile uint16_t *)(x)) + #define CAT2(x, y, z) x##y##z #define bit(bit) (1 << bit) diff --git a/tests/Makefile b/tests/Makefile index 4a58a3247..6764e4229 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -6,7 +6,7 @@ MC1322X := .. COBJS := tests.o put.o # all of the target programs to build -TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write romimg flasher tmr tmr-ints +TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write romimg flasher tmr tmr-ints sleep include $(MC1322X)/Makefile.include diff --git a/tests/config.h b/tests/config.h index 9ac55604a..a0b7f38bb 100644 --- a/tests/config.h +++ b/tests/config.h @@ -29,4 +29,7 @@ #define BOOT_OK 1 #define BOOT_SECURE 0 +/* sleep */ +#undef USE_32KHZ /* board should have a HAS_32KHZ define */ + #endif diff --git a/tests/sleep.c b/tests/sleep.c index e7e8ed6e7..985702f57 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -1,114 +1,36 @@ -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 +#include +#include -#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ +#include "tests.h" +#include "config.h" -#define GPIO_PAD_PU_EN0 0x80000010 -#define GPIO_PAD_PU_EN1 0x80000014 -#define ADC_CONTROL 0x80000018 +void main(void) { -#define BASE_UART1 0x80005000 -#define UART1_CON 0x80005000 -#define UART1_STAT 0x80005004 -#define UART1_DATA 0x80005008 -#define UR1CON 0x8000500c -#define UT1CON 0x80005010 -#define UART1_CTS 0x80005014 -#define UART1_BR 0x80005018 + uart_init(INC,MOD); -#define DELAY 400000 - -#define USE_32KHZ 1 - -#include "embedded_types.h" -#include "isr.h" -#include "utils.h" -#include "maca.h" -#include "crm.h" - -void putc(uint8_t c); -void puts(uint8_t *s); -void put_hex(uint8_t x); -void put_hex16(uint16_t x); -void put_hex32(uint32_t x); - -const uint8_t hex[16]={'0','1','2','3','4','5','6','7', - '8','9','a','b','c','d','e','f'}; - - -typedef void (*pfCallback_t)(void); - -typedef struct -{ - uint8_t sleepType:1;// 0 hibernate / 1 doze - uint8_t ramRet:2; - uint8_t mcuRet:1; - uint8_t digPadRet:1; - pfCallback_t pfToDoBeforeSleep; -}crmSleepCtrl_t; - -void do_nothing(void) { - return; -} - -void (*crm_gotosleep)(crmSleepCtrl_t *foo) = 0x0000364d; - -__attribute__ ((section ("startup"))) void main(void) { - crmSleepCtrl_t crmSleepCtrl; - -// reg32(GPIO_PAD_DIR0) = 0x00000100; - -// reg32(GPIO_DATA0) = 0x00000100; - - - /* Restore UART regs. to default */ - /* in case there is still bootloader state leftover */ - -// *(volatile uint32_t *)UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ - - /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ - #define INC 767 - #define MOD 9999 -// *(volatile uint32_t *)UART1_BR = INC<<16 | MOD; - - /* see Section 11.5.1.2 Alternate Modes */ - /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ - /* From the datasheet: "The peripheral function will control operation of the pad IF */ - /* THE PERIPHERAL IS ENABLED. */ -// *(volatile uint32_t *)UART1_CON = 0x00000003; /* enable receive and transmit */ -// *(volatile uint32_t *)GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ - - reg32(0x00401ffc) = 0x01234567; - reg32(0x00407ffc) = 0xdeadbeef; - reg32(0x0040fffc) = 0xface00ff; - reg32(0x00410000) = 0xabcd0123; + *mem32(0x00401ffc) = 0x01234567; + *mem32(0x00407ffc) = 0xdeadbeef; + *mem32(0x0040fffc) = 0xface00ff; + *mem32(0x00410000) = 0xabcd0123; puts("sleep test\n\r"); puts("0x00401ffc: "); - put_hex32(reg32(0x00401ffc)); + put_hex32(*mem32(0x00401ffc)); puts("\r\n"); puts("0x00407ffc: "); - put_hex32(reg32(0x00407ffc)); + put_hex32(*mem32(0x00407ffc)); puts("\r\n"); puts("0x0040fffc: "); - put_hex32(reg32(0x0040fffc)); + put_hex32(*mem32(0x0040fffc)); puts("\r\n"); puts("0x00410000: "); - put_hex32(reg32(0x00410000)); + put_hex32(*mem32(0x00410000)); puts("\r\n"); /* radio must be OFF before sleeping */ /* otherwise MCU will not wake up properly */ /* this is undocumented behavior */ - radio_off(); - - /* disable all pullups */ - /* seems to make a slight difference (2.0uA vs 1.95uA)*/ - reg32(GPIO_PAD_PU_EN0) = 0; - reg32(GPIO_PAD_PU_EN1) = 0; - reg16(ADC_CONTROL) = 0; /* internal Vref2 */ - - reg16(CRM_XTAL_CNTL) = 0x052; /* default is 0xf52 */ /* doesn't anything w.r.t. power */ +// radio_off(); #if USE_32KHZ /* turn on the 32kHz crystal */ @@ -116,24 +38,24 @@ __attribute__ ((section ("startup"))) void main(void) { /* you have to hold it's hand with this on */ /* once you start the 32xHz crystal it can only be stopped with a reset (hard or soft) */ /* first, disable the ring osc */ - clear_bit(reg32(CRM_RINGOSC_CNTL),0); + clear_bit(*CRM_RINGOSC_CNTL,0); /* enable the 32kHZ crystal */ - set_bit(reg32(CRM_XTAL32_CNTL),0); + set_bit(*CRM_XTAL32_CNTL,0); /* set the XTAL32_EXISTS bit */ /* the datasheet says to do this after you've check that RTC_COUNT is changing */ /* the datasheet is not correct */ - set_bit(reg32(CRM_SYS_CNTL),5); + set_bit(*CRM_SYS_CNTL,5); { static volatile uint32_t old; - old = reg32(CRM_RTC_COUNT); + old = *CRM_RTC_COUNT; puts("waiting for xtal\n\r"); - while(reg32(CRM_RTC_COUNT) == old) { + while(*CRM_RTC_COUNT == old) { continue; } /* RTC has started up */ - set_bit(reg32(CRM_SYS_CNTL),5); + set_bit(*CRM_SYS_CNTL,5); puts("32kHZ xtal started\n\r"); } @@ -142,113 +64,75 @@ __attribute__ ((section ("startup"))) void main(void) { /* go to sleep */ -// reg32(CRM_WU_CNTL) = 0; /* don't wake up */ - reg32(CRM_WU_CNTL) = 0x1; /* enable wakeup from wakeup timer */ -// reg32(CRM_WU_TIMEOUT) = 1875000; /* wake 10 sec later if doze */ +// *CRM_WU_CNTL = 0; /* don't wake up */ + *CRM_WU_CNTL = 0x1; /* enable wakeup from wakeup timer */ +// *CRM_WU_TIMEOUT = 1875000; /* wake 10 sec later if doze */ #if USE_32KHZ - reg32(CRM_WU_TIMEOUT) = 327680*2; + *CRM_WU_TIMEOUT = 327680*2; #else - reg32(CRM_WU_TIMEOUT) = 20000; /* wake 10 sec later if hibernate w/2kHz*/ + *CRM_WU_TIMEOUT = 20000; /* wake 10 sec later if hibernate ring osc */ #endif /* hobby board: 2kHz = 11uA; 32kHz = 11uA */ -// reg32(CRM_SLEEP_CNTL) = 1; /* hibernate, RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 2kHz = 2.0uA */ +// *CRM_SLEEP_CNTL = 1; /* hibernate, RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 2kHz = 2.0uA */ /* hobby board: 2kHz = 18uA; 32kHz = 19uA */ -// reg32(CRM_SLEEP_CNTL) = 0x41; /* hibernate, RAM page 0 only, retain state, don't power GPIO */ /* approx. 2kHz = 10.0uA */ +// *CRM_SLEEP_CNTL = 0x41; /* hibernate, RAM page 0 only, retain state, don't power GPIO */ /* approx. 2kHz = 10.0uA */ /* hobby board: 2kHz = 20uA; 32kHz = 21uA */ -// reg32(CRM_SLEEP_CNTL) = 0x51; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 2kHz = 11.7uA */ +// *CRM_SLEEP_CNTL = 0x51; /* hibernate, RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 2kHz = 11.7uA */ /* hobby board: 2kHz = 22uA; 32kHz = 22.5uA */ -// reg32(CRM_SLEEP_CNTL) = 0x61; /* hibernate, RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 2kHz = 13.9uA */ +// *CRM_SLEEP_CNTL = 0x61; /* hibernate, RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 2kHz = 13.9uA */ /* hobby board: 2kHz = 24uA; 32kHz = 25uA */ -// reg32(CRM_SLEEP_CNTL) = 0x71; /* hibernate, all RAM pages, retain state, don't power GPIO */ /* approx. 2kHz = 16.1uA */ -// reg32(CRM_SLEEP_CNTL) = 0xf1; /* hibernate, all RAM pages, retain state, power GPIO */ /* consumption depends on GPIO hookup */ + *CRM_SLEEP_CNTL = 0x71; /* hibernate, all RAM pages, retain state, don't power GPIO */ /* approx. 2kHz = 16.1uA */ +// *CRM_SLEEP_CNTL = 0xf1; /* hibernate, all RAM pages, retain state, power GPIO */ /* consumption depends on GPIO hookup */ -// reg32(CRM_SLEEP_CNTL) = 2; /* doze , RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 69.2 uA */ -// reg32(CRM_SLEEP_CNTL) = 0x42; /* doze , RAM page 0 only, retain state, don't power GPIO */ /* approx. 77.3uA */ -// reg32(CRM_SLEEP_CNTL) = 0x52; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 78.9uA */ -// reg32(CRM_SLEEP_CNTL) = 0x62; /* doze , RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 81.2uA */ -// reg32(CRM_SLEEP_CNTL) = 0x72; /* doze , all RAM pages, retain state, don't power GPIO */ /* approx. 83.4uA - possibly with periodic refresh*/ -// reg32(CRM_SLEEP_CNTL) = 0xf2; /* doze , all RAM pages, retain state, power GPIO */ /* consumption depends on GPIO hookup */ +// *CRM_SLEEP_CNTL = 2; /* doze , RAM page 0 only, don't retain state, don't power GPIO */ /* approx. 69.2 uA */ +// *CRM_SLEEP_CNTL = 0x42; /* doze , RAM page 0 only, retain state, don't power GPIO */ /* approx. 77.3uA */ +// *CRM_SLEEP_CNTL = 0x52; /* doze , RAM page 0&1 only, retain state, don't power GPIO */ /* approx. 78.9uA */ +// *CRM_SLEEP_CNTL = 0x62; /* doze , RAM page 0,1,2 only, retain state, don't power GPIO */ /* approx. 81.2uA */ +// *CRM_SLEEP_CNTL = 0x72; /* doze , all RAM pages, retain state, don't power GPIO */ /* approx. 83.4uA - possibly with periodic refresh*/ +// *CRM_SLEEP_CNTL = 0xf2; /* doze , all RAM pages, retain state, power GPIO */ /* consumption depends on GPIO hookup */ -/* crmSleepCtrl.sleepType = 0; */ -/* crmSleepCtrl.ramRet = 3; */ -/* crmSleepCtrl.mcuRet = 1; */ -/* crmSleepCtrl.digPadRet = 1; */ -/* crmSleepCtrl.pfToDoBeforeSleep = do_nothing; */ - -/* crm_gotosleep(&crmSleepCtrl); */ - /* wait for the sleep cycle to complete */ - while((reg32(CRM_STATUS) & 0x1) == 0) { continue; } + while((*CRM_STATUS & 0x1) == 0) { continue; } /* write 1 to sleep_sync --- this clears the bit (it's a r1wc bit) and powers down */ - reg32(CRM_STATUS) = 1; + *CRM_STATUS = 1; /* asleep */ /* wait for the awake cycle to complete */ - while((reg32(CRM_STATUS) & 0x1) == 0) { continue; } + while((*CRM_STATUS & 0x1) == 0) { continue; } /* write 1 to sleep_sync --- this clears the bit (it's a r1wc bit) and finishes wakeup */ - reg32(CRM_STATUS) = 1; + *CRM_STATUS = 1; puts("\n\r\n\r\n\r"); puts("0x00401ffc: "); - put_hex32(reg32(0x00401ffc)); + put_hex32(*mem32(0x00401ffc)); puts("\r\n"); puts("0x00407ffc: "); - put_hex32(reg32(0x00407ffc)); + put_hex32(*mem32(0x00407ffc)); puts("\r\n"); puts("0x0040fffc: "); - put_hex32(reg32(0x0040fffc)); + put_hex32(*mem32(0x0040fffc)); puts("\r\n"); puts("0x00410000: "); - put_hex32(reg32(0x00410000)); + put_hex32(*mem32(0x00410000)); puts("\r\n"); + *GPIO_PAD_DIR0 = LED_RED; +#define DELAY 400000 volatile uint32_t i; while(1) { - reg32(GPIO_DATA0) = 0x00000100; + *GPIO_DATA0 = LED_RED; for(i=0; i> 4]); - putc(hex[x & 15]); -} - -void put_hex16(uint16_t x) -{ - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} - -void put_hex32(uint32_t x) -{ - put_hex((x >> 24) & 0xFF); - put_hex((x >> 16) & 0xFF); - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} From 205b53787e25c606a714213952201991a6f26062 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 17:44:39 -0500 Subject: [PATCH 195/471] cleaned up rftest-rx a little --- libmc1322x/include/maca.h | 20 +- libmc1322x/include/mc1322x.h | 3 + src/maca.c | 571 ----------------------------------- tests/Makefile | 8 +- tests/put.c | 36 --- tests/put.h | 10 - tests/rftest-rx.c | 141 ++------- tests/tests.c | 17 ++ tests/tests.h | 3 + 9 files changed, 58 insertions(+), 751 deletions(-) delete mode 100644 src/maca.c delete mode 100644 tests/put.c delete mode 100644 tests/put.h diff --git a/libmc1322x/include/maca.h b/libmc1322x/include/maca.h index 15997ac1c..e524b4ec4 100644 --- a/libmc1322x/include/maca.h +++ b/libmc1322x/include/maca.h @@ -3,15 +3,15 @@ #include -#define MACA_BASE 0x80004000 -#define MACA_RESET 0x80004004 -#define MACA_RANDOM 0x80004008 -#define MACA_CONTROL 0x8000400c -#define MACA_STATUS 0x80004010 -#define MACA_DMARX 0x80004080 -#define MACA_DMATX 0x80004084 -#define MACA_GETRXLVL 0x80004098 -#define MACA_PREAMBLE 0x8000411c +#define MACA_BASE ((volatile uint32_t *) 0x80004000) +#define MACA_RESET ((volatile uint32_t *) 0x80004004) +#define MACA_RANDOM ((volatile uint32_t *) 0x80004008) +#define MACA_CONTROL ((volatile uint32_t *) 0x8000400c) +#define MACA_STATUS ((volatile uint32_t *) 0x80004010) +#define MACA_DMARX ((volatile uint32_t *) 0x80004080) +#define MACA_DMATX ((volatile uint32_t *) 0x80004084) +#define MACA_GETRXLVL ((volatile uint32_t *) 0x80004098) +#define MACA_PREAMBLE ((volatile uint32_t *) 0x8000411c) #define gMACA_Clock_DIV_c 95 @@ -409,7 +409,7 @@ typedef union maca_maskirq_reg_tag void reset_maca(void); void init_phy(void); -void vreg_init(void); +void flyback_init(void); void ResumeMACASync(void); void radio_init(void); void radio_off(void); diff --git a/libmc1322x/include/mc1322x.h b/libmc1322x/include/mc1322x.h index 4bfed6aa2..b3580020e 100644 --- a/libmc1322x/include/mc1322x.h +++ b/libmc1322x/include/mc1322x.h @@ -7,7 +7,10 @@ #include "crm.h" #include "nvm.h" #include "tmr.h" +#include "maca.h" #include "uart1.h" #include "utils.h" +#include "put.h" /* this is a temp. lib */ + #endif diff --git a/src/maca.c b/src/maca.c deleted file mode 100644 index 9698bf52d..000000000 --- a/src/maca.c +++ /dev/null @@ -1,571 +0,0 @@ -#include -#include -#include "maca.h" - -#define reg(x) (*(volatile uint32_t *)(x)) - -static uint8_t ram_values[4]; - -void init_phy(void) -{ - volatile uint32_t cnt; - - maca_reset = maca_reset_rst; - - for(cnt=0; cnt < 100; cnt++); - - maca_reset = maca_reset_cln_on; - maca_control = control_seq_nop; -#define DELAY 400000 - for(cnt=0; cnt < DELAY; cnt++); - - maca_tmren = maca_start_clk | maca_cpl_clk; - maca_divider = gMACA_Clock_DIV_c; - maca_warmup = 0x00180012; - maca_eofdelay = 0x00000004; - maca_ccadelay = 0x001a0022; - maca_txccadelay = 0x00000025; - maca_framesync = 0x000000A7; - maca_clk = 0x00000008; -// maca_maskirq = 0; //(maca_irq_cm | maca_irq_acpl | maca_irq_rst | maca_irq_di | maca_irq_crc | maca_irq_flt ); - maca_maskirq = (maca_irq_rst | maca_irq_acpl | maca_irq_cm | maca_irq_flt | maca_irq_crc); - maca_slotoffset = 0x00350000; -} - -void reset_maca(void) -{ - uint32_t tmp; - MACA_WRITE(maca_control, control_seq_nop); - do - { - tmp = MACA_READ(maca_status); - } - while ((tmp & maca_status_cc_mask) == cc_not_completed); - - /* Clear all interrupts. */ - MACA_WRITE(maca_clrirq, 0xFFFF); -} - -/* - 004030c4 : - 4030c4: 4806 ldr r0, [pc, #24] (4030e0 ) // r0 gets base 0x80009a00 - 4030c6: 6881 ldr r1, [r0, #8] // r1 gets *(0x80009a08) - 4030c8: 4806 ldr r0, [pc, #24] (4030e4 ) // r0 gets 0x0000f7df - 4030ca: 4308 orrs r0, r1 // or them, r0 has it - 4030cc: 4904 ldr r1, [pc, #16] (4030e0 ) // r1 gets base 0x80009a00 - 4030ce: 6088 str r0, [r1, #8] // put r0 into 0x80009a08 - 4030d0: 0008 lsls r0, r1, #0 // r0 gets r1, r0 is the base now - 4030d2: 4905 ldr r1, [pc, #20] (4030e8 ) // r1 gets 0x00ffffff - 4030d4: 60c1 str r1, [r0, #12] // put 0x00ffffff into base+12 - 4030d6: 0b09 lsrs r1, r1, #12 // r1 = 0x00ffffff >> 12 - 4030d8: 6101 str r1, [r0, #16] // put r1 base+16 - 4030da: 2110 movs r1, #16 // r1 gets 16 - 4030dc: 6001 str r1, [r0, #0] // put r1 in the base - 4030de: 4770 bx lr // return - 4030e0: 80009a00 .word 0x80009a00 - 4030e4: 0000f7df .word 0x0000f7df - 4030e8: 00ffffff .word 0x00ffffff -*/ - -/* tested and is good */ -#define RF_BASE 0x80009a00 -void flyback_init(void) { - uint32_t val8, or; - - val8 = *(volatile uint32_t *)(RF_BASE+8); - or = val8 | 0x0000f7df; - *(volatile uint32_t *)(RF_BASE+8) = or; - *(volatile uint32_t *)(RF_BASE+12) = 0x00ffffff; - *(volatile uint32_t *)(RF_BASE+16) = (((uint32_t)0x00ffffff)>>12); - *(volatile uint32_t *)(RF_BASE) = 16; - /* good luck and godspeed */ -} - -#define MAX_SEQ1 2 -const uint32_t addr_seq1[MAX_SEQ1] = { - 0x80003048, - 0x8000304c, -}; - -const uint32_t data_seq1[MAX_SEQ1] = { - 0x00000f78, - 0x00607707, -}; - - -#define MAX_SEQ2 2 -const uint32_t addr_seq2[MAX_SEQ2] = { - 0x8000a050, - 0x8000a054, -}; - -const uint32_t data_seq2[MAX_SEQ2] = { - 0x0000047b, - 0x0000007b, -}; - -#define MAX_CAL3_SEQ1 3 -const uint32_t addr_cal3_seq1[MAX_CAL3_SEQ1] = { 0x80009400,0x80009a04,0x80009a00, }; -const uint32_t data_cal3_seq1[MAX_CAL3_SEQ1] = {0x00020017,0x8185a0a4,0x8c900025, }; - -#define MAX_CAL3_SEQ2 2 -const uint32_t addr_cal3_seq2[MAX_CAL3_SEQ2] = { 0x80009a00,0x80009a00,}; -const uint32_t data_cal3_seq2[MAX_CAL3_SEQ2] = { 0x8c900021,0x8c900027,}; - -#define MAX_CAL3_SEQ3 1 -const uint32_t addr_cal3_seq3[MAX_CAL3_SEQ3] = { 0x80009a00 }; -const uint32_t data_cal3_seq3[MAX_CAL3_SEQ3] = { 0x8c900000 }; - -#define MAX_CAL5 4 -const uint32_t addr_cal5[MAX_CAL5] = { - 0x80009400, - 0x8000a050, - 0x8000a054, - 0x80003048, -}; -const uint32_t data_cal5[MAX_CAL5] = { - 0x00000017, - 0x00000000, - 0x00000000, - 0x00000f00, -}; - -#define MAX_DATA 43 -const uint32_t addr_reg_rep[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x8000920c,0x80009210,0x80009300,0x80009304,0x80009308,0x8000930c,0x80009310,0x80009314,0x80009318,0x80009380,0x80009384,0x80009388,0x8000938c,0x80009390,0x80009394,0x8000a008,0x8000a018,0x8000a01c,0x80009424,0x80009434,0x80009438,0x8000943c,0x80009440,0x80009444,0x80009448,0x8000944c,0x80009450,0x80009460,0x80009464,0x8000947c,0x800094e0,0x800094e4,0x800094e8,0x800094ec,0x800094f0,0x800094f4,0x800094f8,0x80009470,0x8000981c,0x80009828 }; - -const uint32_t data_reg_rep[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a }; - - -/* has been tested and it good */ -void vreg_init(void) { - volatile uint32_t i; - *(volatile uint32_t *)(0x80003000) = 0x00000018; /* set default state */ - *(volatile uint32_t *)(0x80003048) = 0x00000f04; /* bypass the buck */ - for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ -// while((((*(volatile uint32_t *)(0x80003018))>>17) & 1) !=1) { continue; } /* wait for the bypass to take */ - *(volatile uint32_t *)(0x80003048) = 0x00000ff8; /* start the regulators */ -} - -void radio_off(void) { - /* turn off the radio regulators */ - reg(0x80003048) = 0x00000f00; - /* hold the maca in reset */ - maca_reset = maca_reset_rst; -} - -void radio_on(void) { - /* turn the radio regulators back on */ - reg(0x80003048) = 0x00000f78; - /* reinitialize the phy */ - init_phy(); -} - -/* initialized with 0x4c */ -uint8_t ctov[16] = { - 0x0b, - 0x0b, - 0x0b, - 0x0a, - 0x0d, - 0x0d, - 0x0c, - 0x0c, - 0x0f, - 0x0e, - 0x0e, - 0x0e, - 0x11, - 0x10, - 0x10, - 0x0f, -}; - -/* get_ctov thanks to Umberto */ - -#define _INIT_CTOV_WORD_1 0x00dfbe77 -#define _INIT_CTOV_WORD_2 0x023126e9 -uint8_t get_ctov( uint32_t r0, uint32_t r1 ) -{ - - r0 = r0 * _INIT_CTOV_WORD_1; - r0 += ( r1 << 22 ); - r0 += _INIT_CTOV_WORD_2; - - r0 = (uint32_t)(((int32_t)r0) >> 25); - - return (uint8_t)r0; -} - - -/* radio_init has been tested to be good */ -void radio_init(void) { - volatile uint32_t i; - /* sequence 1 */ - for(i=0; i>17) & 1) !=1) { continue; } /* wait for the bypass to take */ - *(volatile uint32_t *)(0x80003048) = 0x00000fa4; /* start the regulators */ - for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ - - init_from_flash(0x1F000); - - puts("ram_values:\n\r"); - for(i=0; i<4; i++) { - puts(" 0x"); - put_hex(ram_values[i]); - puts("\n\r"); - } - - puts("radio_init: ctov parameter 0x"); - put_hex(ram_values[3]); - puts("\n\r"); - for(i=0; i<16; i++) { - ctov[i] = get_ctov(i,ram_values[3]); - puts("radio_init: ctov["); - put_hex(i); - puts("] = 0x"); - put_hex(ctov[i]); - puts("\n\r"); - } - - -} - -const uint32_t PSMVAL[19] = { - 0x0000080f, - 0x0000080f, - 0x0000080f, - 0x0000080f, - 0x0000081f, - 0x0000081f, - 0x0000081f, - 0x0000080f, - 0x0000080f, - 0x0000080f, - 0x0000001f, - 0x0000000f, - 0x0000000f, - 0x00000816, - 0x0000001b, - 0x0000000b, - 0x00000802, - 0x00000817, - 0x00000003, -}; - -const uint32_t PAVAL[19] = { - 0x000022c0, - 0x000022c0, - 0x000022c0, - 0x00002280, - 0x00002303, - 0x000023c0, - 0x00002880, - 0x000029f0, - 0x000029f0, - 0x000029f0, - 0x000029c0, - 0x00002bf0, - 0x000029f0, - 0x000028a0, - 0x00002800, - 0x00002ac0, - 0x00002880, - 0x00002a00, - 0x00002b00, -}; - -const uint32_t AIMVAL[19] = { - 0x000123a0, - 0x000163a0, - 0x0001a3a0, - 0x0001e3a0, - 0x000223a0, - 0x000263a0, - 0x0002a3a0, - 0x0002e3a0, - 0x000323a0, - 0x000363a0, - 0x0003a3a0, - 0x0003a3a0, - 0x0003e3a0, - 0x000423a0, - 0x000523a0, - 0x000423a0, - 0x0004e3a0, - 0x0004e3a0, - 0x0004e3a0, -}; - -/* tested and seems to be good */ -#define ADDR_POW1 0x8000a014 -#define ADDR_POW2 ADDR_POW1 + 12 -#define ADDR_POW3 ADDR_POW1 + 64 -void set_power(uint8_t power) { - reg(ADDR_POW1) = PSMVAL[power]; - reg(ADDR_POW2) = (ADDR_POW1>>18) | PAVAL[power]; - reg(ADDR_POW3) = AIMVAL[power]; -} - -const uint8_t VCODivI[16] = { - 0x2f, - 0x2f, - 0x2f, - 0x2f, - 0x2f, - 0x2f, - 0x2f, - 0x2f, - 0x30, - 0x30, - 0x30, - 0x2f, - 0x30, - 0x30, - 0x30, - 0x30, -}; - -const uint32_t VCODivF[16] = { - 0x00355555, - 0x006aaaaa, - 0x00a00000, - 0x00d55555, - 0x010aaaaa, - 0x01400000, - 0x01755555, - 0x01aaaaaa, - 0x01e00000, - 0x00155555, - 0x004aaaaa, - 0x00800000, - 0x00b55555, - 0x00eaaaaa, - 0x01200000, - 0x01555555, -}; - -/* tested good */ -#define ADDR_CHAN1 0x80009800 -#define ADDR_CHAN2 (ADDR_CHAN1+12) -#define ADDR_CHAN3 (ADDR_CHAN1+16) -#define ADDR_CHAN4 (ADDR_CHAN1+48) -void set_channel(uint8_t chan) { - volatile uint32_t tmp; - - tmp = reg(ADDR_CHAN1); - tmp = tmp & 0xbfffffff; - reg(ADDR_CHAN1) = tmp; - - reg(ADDR_CHAN2) = VCODivI[chan]; - reg(ADDR_CHAN3) = VCODivF[chan]; - - tmp = reg(ADDR_CHAN4); - tmp = tmp | 2; - reg(ADDR_CHAN4) = tmp; - - tmp = reg(ADDR_CHAN4); - tmp = tmp | 4; - reg(ADDR_CHAN4) = tmp; - - tmp = tmp & 0xffffe0ff; - tmp = tmp | (((ctov[chan])<<8)&0x1F00); - reg(ADDR_CHAN4) = tmp; - /* duh! */ -} - -#define ROM_END 0x0013ffff -#define ENTRY_EOF 0x00000e0f -/* processes up to 4 words of initialization entries */ -/* returns the number of words processed */ -uint32_t exec_init_entry(uint32_t *entries, uint8_t *valbuf) -{ - volatile uint32_t i; - if(entries[0] <= ROM_END) { - if (entries[0] == 0) { - /* do delay command*/ - puts("init_entry: delay "); - put_hex32(entries[1]); - puts("\n\r"); - for(i=0; i= 16) && - (entries[0] < 0xfff1)) { - /* store bytes in valbuf */ - puts("init_entry: store in valbuf "); - put_hex(entries[1]); - puts(" position "); - put_hex((entries[0]>>4)-1); - puts("\n\r"); - valbuf[(entries[0]>>4)-1] = entries[1]; - return 2; - } else if (entries[0] == ENTRY_EOF) { - puts("init_entry: eof "); - return 0; - } else { - /* invalid command code */ - puts("init_entry: invaild code "); - put_hex32(entries[0]); - puts("\n\r"); - return 0; - } - } else { /* address isn't in ROM space */ - /* do store value in address command */ - puts("init_entry: address value pair - *0x"); - put_hex32(entries[0]); - puts(" = "); - put_hex32(entries[1]); - puts("\n\r"); - reg(entries[0]) = entries[1]; - return 2; - } -} - - -#define FLASH_INIT_MAGIC 0x00000abc -uint32_t init_from_flash(uint32_t addr) { - nvmType_t type=0; - nvmErr_t err; - volatile uint32_t buf[8]; - volatile uint16_t len; - volatile uint32_t i=0,j; - err = nvm_detect(gNvmInternalInterface_c, &type); - puts("nvm_detect returned type "); - put_hex32(type); - puts(" err "); - put_hex(err); - puts("\n\r"); - - nvm_setsvar(0); - err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, addr, 8); - i+=8; - puts("nvm_read returned: 0x"); - put_hex(err); - puts("\n\r"); - - for(j=0; j<4; j++) { - put_hex32(buf[j]); - puts("\n\r"); - } - - if(buf[0] == FLASH_INIT_MAGIC) { - len = buf[1] & 0x0000ffff; - while(i> 8) << 2; - /* write "last warmdown data" to current TSM step to shutdown rx */ - LastWarmdownData = (*((volatile uint32_t *)(0x80009300 + LastWarmdownStep))); - (*((volatile uint32_t *)(0x80009300 + LastWarmupStep))) = LastWarmdownData; - - /* Abort */ - MACA_WRITE(maca_control, 1); - - /* Wait ~8us */ - for (clk = maca_clk, i = 0; maca_clk - clk < 3 && i < 300; i++) - ; - - /* NOP */ - MACA_WRITE(maca_control, 0); - - /* Wait ~8us */ - for (clk = maca_clk, i = 0; maca_clk - clk < 3 && i < 300; i++) - ; - - - /* restore original "last warmup step" data to TSM (VERY IMPORTANT!!!) */ - (*((volatile uint32_t *)(0x80009300 + LastWarmupStep))) = LastWarmupData; - - - - /* Clear all MACA interrupts - we should have gotten the ABORT IRQ */ - MACA_WRITE(maca_clrirq, 0xFFFF); - -// AppInterrupts_UnprotectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented -// ITC_EnableInterrupt(gMacaInt_c); -} diff --git a/tests/Makefile b/tests/Makefile index 6764e4229..8770b2d8f 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -6,7 +6,13 @@ MC1322X := .. COBJS := tests.o put.o # all of the target programs to build -TARGETS := blink-red blink-green blink-blue blink-white blink-allio uart1-loopback nvm-read nvm-write romimg flasher tmr tmr-ints sleep +TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ + uart1-loopback \ + nvm-read nvm-write romimg flasher \ + tmr tmr-ints \ + sleep \ + rftest-rx \ + include $(MC1322X)/Makefile.include diff --git a/tests/put.c b/tests/put.c deleted file mode 100644 index 34e336586..000000000 --- a/tests/put.c +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -const uint8_t hex[16]={'0','1','2','3','4','5','6','7', - '8','9','a','b','c','d','e','f'}; - -void putc(char c) { - while(*UT1CON == 31); /* wait for there to be room in the buffer */ - *UART1_DATA = c; -} - -void puts(char *s) { - while(s && *s!=0) { - putc(*s++); - } -} - -void put_hex(uint8_t x) -{ - putc(hex[x >> 4]); - putc(hex[x & 15]); -} - -void put_hex16(uint16_t x) -{ - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} - -void put_hex32(uint32_t x) -{ - put_hex((x >> 24) & 0xFF); - put_hex((x >> 16) & 0xFF); - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} diff --git a/tests/put.h b/tests/put.h deleted file mode 100644 index 034b636ca..000000000 --- a/tests/put.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PUT_H -#define PUT_H - -void putc(char c); -void puts(char *s); -void put_hex(uint8_t x); -void put_hex16(uint16_t x); -void put_hex32(uint32_t x); - -#endif diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 0e846aba2..bb4c53df7 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -1,37 +1,12 @@ -#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ +#include +#include -#define BASE_UART1 0x80005000 -#define UART1_CON 0x80005000 -#define UART1_STAT 0x80005004 -#define UART1_DATA 0x80005008 -#define UR1CON 0x8000500c -#define UT1CON 0x80005010 -#define UART1_CTS 0x80005014 -#define UART1_BR 0x80005018 - -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 - -#include "maca.h" -#include "embedded_types.h" -#include "isr.h" - -#define reg(x) (*(volatile uint32_t *)(x)) +#include "tests.h" +#include "config.h" #define DELAY 400000 #define DATA 0x00401000; -#define NL "\033[K\r\n" - -void putc(uint8_t c); -void puts(uint8_t *s); -void put_hex(uint8_t x); -void put_hex16(uint16_t x); -void put_hex32(uint32_t x); - -const uint8_t hex[16]={'0','1','2','3','4','5','6','7', - '8','9','a','b','c','d','e','f'}; - uint32_t ackBox[10]; #define MAX_PAYLOAD 128 @@ -41,36 +16,17 @@ volatile uint8_t data[MAX_PAYLOAD]; do { \ maca_txlen = ((0xff)<<16); \ maca_dmatx = (uint32_t)&ackBox; \ - maca_dmarx = data; \ + maca_dmarx = (uint32_t)data; \ maca_tmren = (maca_cpl_clk | maca_soft_clk); \ maca_control = (control_prm | control_asap | control_seq_rx); \ - }while(FALSE) + }while(0) - -void dump_regs(uint32_t base, uint32_t len) { - volatile uint32_t i; - - puts("base +0 +4 +8 +c +10 +14 +18 +1c \n\r"); - for (i = 0; i < len; i ++) { - if ((i & 7) == 0) { - put_hex16(4 * i); - } - puts(" "); - put_hex32(reg(base+(4*i))); - if ((i & 7) == 7) - puts(NL); - } - puts(NL); -} - -volatile uint8_t led; - -#include "led.h" #define LED LED_GREEN -#define led_on() do { led = 1; reg(GPIO_DATA0) = LED; } while(0); -#define led_off() do { led = 0; reg(GPIO_DATA0) = 0x00000000; } while(0); +#define led_on() do { led = 1; *GPIO_DATA0 = LED; } while(0); +#define led_off() do { led = 0; *GPIO_DATA0 = 0x00000000; } while(0); +volatile uint8_t led; void toggle_led(void) { if(0 == led) { led_on(); @@ -81,32 +37,14 @@ void toggle_led(void) { } } -__attribute__ ((section ("startup"))) void main(void) { - uint8_t c; volatile uint32_t i; - uint32_t tmp; uint16_t status; - *(volatile uint32_t *)GPIO_PAD_DIR0 = LED; + *GPIO_PAD_DIR0 = LED; led_on(); - /* Restore UART regs. to default */ - /* in case there is still bootloader state leftover */ - - reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ - - /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ - #define INC 767 - #define MOD 9999 - reg(UART1_BR) = INC<<16 | MOD; - - /* see Section 11.5.1.2 Alternate Modes */ - /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ - /* From the datasheet: "The peripheral function will control operation of the pad IF */ - /* THE PERIPHERAL IS ENABLED. */ - reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ - reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + uart_init(INC,MOD); reset_maca(); radio_init(); @@ -117,32 +55,20 @@ void main(void) { set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ - reg(MACA_CONTROL) = SMAC_MACA_CNTL_INIT_STATE; + *MACA_CONTROL = SMAC_MACA_CNTL_INIT_STATE; for(i=0; i> 4]); - putc(hex[x & 15]); -} - -void put_hex16(uint16_t x) -{ - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} - -void put_hex32(uint32_t x) -{ - put_hex((x >> 24) & 0xFF); - put_hex((x >> 16) & 0xFF); - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} diff --git a/tests/tests.c b/tests/tests.c index 065dfa2d4..874787080 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -1,5 +1,6 @@ #include #include "put.h" +#include "tests.h" void uart1_init(uint16_t inc, uint16_t mod) { /* Restore UART regs. to default */ @@ -31,3 +32,19 @@ void print_welcome(char* testname) { #endif puts("\n\r"); } + +void dump_regs(uint32_t base, uint32_t len) { + volatile uint32_t i; + + puts("base +0 +4 +8 +c +10 +14 +18 +1c \n\r"); + for (i = 0; i < len; i ++) { + if ((i & 7) == 0) { + put_hex16(4 * i); + } + puts(" "); + put_hex32(*mem32(base+(4*i))); + if ((i & 7) == 7) + puts(NL); + } + puts(NL); +} diff --git a/tests/tests.h b/tests/tests.h index 8b27c8658..11a7bc1df 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -4,7 +4,10 @@ #include "put.h" #include "led.h" +#define NL "\033[K\r\n" + void uart1_init(uint16_t inc, uint16_t mod); void print_welcome(char* testname); +void dump_regs(uint32_t base, uint32_t len); #endif From 97bd011d2893851eb5106a172b3670abeee77576 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 18:13:21 -0500 Subject: [PATCH 196/471] forgot to add these --- libmc1322x/include/put.h | 10 + libmc1322x/maca.c | 569 +++++++++++++++++++++++++++++++++++++++ libmc1322x/put.c | 36 +++ 3 files changed, 615 insertions(+) create mode 100644 libmc1322x/include/put.h create mode 100644 libmc1322x/maca.c create mode 100644 libmc1322x/put.c diff --git a/libmc1322x/include/put.h b/libmc1322x/include/put.h new file mode 100644 index 000000000..034b636ca --- /dev/null +++ b/libmc1322x/include/put.h @@ -0,0 +1,10 @@ +#ifndef PUT_H +#define PUT_H + +void putc(char c); +void puts(char *s); +void put_hex(uint8_t x); +void put_hex16(uint16_t x); +void put_hex32(uint32_t x); + +#endif diff --git a/libmc1322x/maca.c b/libmc1322x/maca.c new file mode 100644 index 000000000..1d9e0645a --- /dev/null +++ b/libmc1322x/maca.c @@ -0,0 +1,569 @@ +#include + +#define reg(x) (*(volatile uint32_t *)(x)) + +static uint8_t ram_values[4]; + +void init_phy(void) +{ + volatile uint32_t cnt; + + maca_reset = maca_reset_rst; + + for(cnt=0; cnt < 100; cnt++); + + maca_reset = maca_reset_cln_on; + maca_control = control_seq_nop; +#define DELAY 400000 + for(cnt=0; cnt < DELAY; cnt++); + + maca_tmren = maca_start_clk | maca_cpl_clk; + maca_divider = gMACA_Clock_DIV_c; + maca_warmup = 0x00180012; + maca_eofdelay = 0x00000004; + maca_ccadelay = 0x001a0022; + maca_txccadelay = 0x00000025; + maca_framesync = 0x000000A7; + maca_clk = 0x00000008; +// maca_maskirq = 0; //(maca_irq_cm | maca_irq_acpl | maca_irq_rst | maca_irq_di | maca_irq_crc | maca_irq_flt ); + maca_maskirq = (maca_irq_rst | maca_irq_acpl | maca_irq_cm | maca_irq_flt | maca_irq_crc); + maca_slotoffset = 0x00350000; +} + +void reset_maca(void) +{ + uint32_t tmp; + MACA_WRITE(maca_control, control_seq_nop); + do + { + tmp = MACA_READ(maca_status); + } + while ((tmp & maca_status_cc_mask) == cc_not_completed); + + /* Clear all interrupts. */ + MACA_WRITE(maca_clrirq, 0xFFFF); +} + +/* + 004030c4 : + 4030c4: 4806 ldr r0, [pc, #24] (4030e0 ) // r0 gets base 0x80009a00 + 4030c6: 6881 ldr r1, [r0, #8] // r1 gets *(0x80009a08) + 4030c8: 4806 ldr r0, [pc, #24] (4030e4 ) // r0 gets 0x0000f7df + 4030ca: 4308 orrs r0, r1 // or them, r0 has it + 4030cc: 4904 ldr r1, [pc, #16] (4030e0 ) // r1 gets base 0x80009a00 + 4030ce: 6088 str r0, [r1, #8] // put r0 into 0x80009a08 + 4030d0: 0008 lsls r0, r1, #0 // r0 gets r1, r0 is the base now + 4030d2: 4905 ldr r1, [pc, #20] (4030e8 ) // r1 gets 0x00ffffff + 4030d4: 60c1 str r1, [r0, #12] // put 0x00ffffff into base+12 + 4030d6: 0b09 lsrs r1, r1, #12 // r1 = 0x00ffffff >> 12 + 4030d8: 6101 str r1, [r0, #16] // put r1 base+16 + 4030da: 2110 movs r1, #16 // r1 gets 16 + 4030dc: 6001 str r1, [r0, #0] // put r1 in the base + 4030de: 4770 bx lr // return + 4030e0: 80009a00 .word 0x80009a00 + 4030e4: 0000f7df .word 0x0000f7df + 4030e8: 00ffffff .word 0x00ffffff +*/ + +/* tested and is good */ +#define RF_BASE 0x80009a00 +void flyback_init(void) { + uint32_t val8, or; + + val8 = *(volatile uint32_t *)(RF_BASE+8); + or = val8 | 0x0000f7df; + *(volatile uint32_t *)(RF_BASE+8) = or; + *(volatile uint32_t *)(RF_BASE+12) = 0x00ffffff; + *(volatile uint32_t *)(RF_BASE+16) = (((uint32_t)0x00ffffff)>>12); + *(volatile uint32_t *)(RF_BASE) = 16; + /* good luck and godspeed */ +} + +#define MAX_SEQ1 2 +const uint32_t addr_seq1[MAX_SEQ1] = { + 0x80003048, + 0x8000304c, +}; + +const uint32_t data_seq1[MAX_SEQ1] = { + 0x00000f78, + 0x00607707, +}; + + +#define MAX_SEQ2 2 +const uint32_t addr_seq2[MAX_SEQ2] = { + 0x8000a050, + 0x8000a054, +}; + +const uint32_t data_seq2[MAX_SEQ2] = { + 0x0000047b, + 0x0000007b, +}; + +#define MAX_CAL3_SEQ1 3 +const uint32_t addr_cal3_seq1[MAX_CAL3_SEQ1] = { 0x80009400,0x80009a04,0x80009a00, }; +const uint32_t data_cal3_seq1[MAX_CAL3_SEQ1] = {0x00020017,0x8185a0a4,0x8c900025, }; + +#define MAX_CAL3_SEQ2 2 +const uint32_t addr_cal3_seq2[MAX_CAL3_SEQ2] = { 0x80009a00,0x80009a00,}; +const uint32_t data_cal3_seq2[MAX_CAL3_SEQ2] = { 0x8c900021,0x8c900027,}; + +#define MAX_CAL3_SEQ3 1 +const uint32_t addr_cal3_seq3[MAX_CAL3_SEQ3] = { 0x80009a00 }; +const uint32_t data_cal3_seq3[MAX_CAL3_SEQ3] = { 0x8c900000 }; + +#define MAX_CAL5 4 +const uint32_t addr_cal5[MAX_CAL5] = { + 0x80009400, + 0x8000a050, + 0x8000a054, + 0x80003048, +}; +const uint32_t data_cal5[MAX_CAL5] = { + 0x00000017, + 0x00000000, + 0x00000000, + 0x00000f00, +}; + +#define MAX_DATA 43 +const uint32_t addr_reg_rep[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x8000920c,0x80009210,0x80009300,0x80009304,0x80009308,0x8000930c,0x80009310,0x80009314,0x80009318,0x80009380,0x80009384,0x80009388,0x8000938c,0x80009390,0x80009394,0x8000a008,0x8000a018,0x8000a01c,0x80009424,0x80009434,0x80009438,0x8000943c,0x80009440,0x80009444,0x80009448,0x8000944c,0x80009450,0x80009460,0x80009464,0x8000947c,0x800094e0,0x800094e4,0x800094e8,0x800094ec,0x800094f0,0x800094f4,0x800094f8,0x80009470,0x8000981c,0x80009828 }; + +const uint32_t data_reg_rep[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a }; + + +/* has been tested and it good */ +void vreg_init(void) { + volatile uint32_t i; + *(volatile uint32_t *)(0x80003000) = 0x00000018; /* set default state */ + *(volatile uint32_t *)(0x80003048) = 0x00000f04; /* bypass the buck */ + for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ +// while((((*(volatile uint32_t *)(0x80003018))>>17) & 1) !=1) { continue; } /* wait for the bypass to take */ + *(volatile uint32_t *)(0x80003048) = 0x00000ff8; /* start the regulators */ +} + +void radio_off(void) { + /* turn off the radio regulators */ + reg(0x80003048) = 0x00000f00; + /* hold the maca in reset */ + maca_reset = maca_reset_rst; +} + +void radio_on(void) { + /* turn the radio regulators back on */ + reg(0x80003048) = 0x00000f78; + /* reinitialize the phy */ + init_phy(); +} + +/* initialized with 0x4c */ +uint8_t ctov[16] = { + 0x0b, + 0x0b, + 0x0b, + 0x0a, + 0x0d, + 0x0d, + 0x0c, + 0x0c, + 0x0f, + 0x0e, + 0x0e, + 0x0e, + 0x11, + 0x10, + 0x10, + 0x0f, +}; + +/* get_ctov thanks to Umberto */ + +#define _INIT_CTOV_WORD_1 0x00dfbe77 +#define _INIT_CTOV_WORD_2 0x023126e9 +uint8_t get_ctov( uint32_t r0, uint32_t r1 ) +{ + + r0 = r0 * _INIT_CTOV_WORD_1; + r0 += ( r1 << 22 ); + r0 += _INIT_CTOV_WORD_2; + + r0 = (uint32_t)(((int32_t)r0) >> 25); + + return (uint8_t)r0; +} + + +/* radio_init has been tested to be good */ +void radio_init(void) { + volatile uint32_t i; + /* sequence 1 */ + for(i=0; i>17) & 1) !=1) { continue; } /* wait for the bypass to take */ + *(volatile uint32_t *)(0x80003048) = 0x00000fa4; /* start the regulators */ + for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ + + init_from_flash(0x1F000); + + puts("ram_values:\n\r"); + for(i=0; i<4; i++) { + puts(" 0x"); + put_hex(ram_values[i]); + puts("\n\r"); + } + + puts("radio_init: ctov parameter 0x"); + put_hex(ram_values[3]); + puts("\n\r"); + for(i=0; i<16; i++) { + ctov[i] = get_ctov(i,ram_values[3]); + puts("radio_init: ctov["); + put_hex(i); + puts("] = 0x"); + put_hex(ctov[i]); + puts("\n\r"); + } + + +} + +const uint32_t PSMVAL[19] = { + 0x0000080f, + 0x0000080f, + 0x0000080f, + 0x0000080f, + 0x0000081f, + 0x0000081f, + 0x0000081f, + 0x0000080f, + 0x0000080f, + 0x0000080f, + 0x0000001f, + 0x0000000f, + 0x0000000f, + 0x00000816, + 0x0000001b, + 0x0000000b, + 0x00000802, + 0x00000817, + 0x00000003, +}; + +const uint32_t PAVAL[19] = { + 0x000022c0, + 0x000022c0, + 0x000022c0, + 0x00002280, + 0x00002303, + 0x000023c0, + 0x00002880, + 0x000029f0, + 0x000029f0, + 0x000029f0, + 0x000029c0, + 0x00002bf0, + 0x000029f0, + 0x000028a0, + 0x00002800, + 0x00002ac0, + 0x00002880, + 0x00002a00, + 0x00002b00, +}; + +const uint32_t AIMVAL[19] = { + 0x000123a0, + 0x000163a0, + 0x0001a3a0, + 0x0001e3a0, + 0x000223a0, + 0x000263a0, + 0x0002a3a0, + 0x0002e3a0, + 0x000323a0, + 0x000363a0, + 0x0003a3a0, + 0x0003a3a0, + 0x0003e3a0, + 0x000423a0, + 0x000523a0, + 0x000423a0, + 0x0004e3a0, + 0x0004e3a0, + 0x0004e3a0, +}; + +/* tested and seems to be good */ +#define ADDR_POW1 0x8000a014 +#define ADDR_POW2 ADDR_POW1 + 12 +#define ADDR_POW3 ADDR_POW1 + 64 +void set_power(uint8_t power) { + reg(ADDR_POW1) = PSMVAL[power]; + reg(ADDR_POW2) = (ADDR_POW1>>18) | PAVAL[power]; + reg(ADDR_POW3) = AIMVAL[power]; +} + +const uint8_t VCODivI[16] = { + 0x2f, + 0x2f, + 0x2f, + 0x2f, + 0x2f, + 0x2f, + 0x2f, + 0x2f, + 0x30, + 0x30, + 0x30, + 0x2f, + 0x30, + 0x30, + 0x30, + 0x30, +}; + +const uint32_t VCODivF[16] = { + 0x00355555, + 0x006aaaaa, + 0x00a00000, + 0x00d55555, + 0x010aaaaa, + 0x01400000, + 0x01755555, + 0x01aaaaaa, + 0x01e00000, + 0x00155555, + 0x004aaaaa, + 0x00800000, + 0x00b55555, + 0x00eaaaaa, + 0x01200000, + 0x01555555, +}; + +/* tested good */ +#define ADDR_CHAN1 0x80009800 +#define ADDR_CHAN2 (ADDR_CHAN1+12) +#define ADDR_CHAN3 (ADDR_CHAN1+16) +#define ADDR_CHAN4 (ADDR_CHAN1+48) +void set_channel(uint8_t chan) { + volatile uint32_t tmp; + + tmp = reg(ADDR_CHAN1); + tmp = tmp & 0xbfffffff; + reg(ADDR_CHAN1) = tmp; + + reg(ADDR_CHAN2) = VCODivI[chan]; + reg(ADDR_CHAN3) = VCODivF[chan]; + + tmp = reg(ADDR_CHAN4); + tmp = tmp | 2; + reg(ADDR_CHAN4) = tmp; + + tmp = reg(ADDR_CHAN4); + tmp = tmp | 4; + reg(ADDR_CHAN4) = tmp; + + tmp = tmp & 0xffffe0ff; + tmp = tmp | (((ctov[chan])<<8)&0x1F00); + reg(ADDR_CHAN4) = tmp; + /* duh! */ +} + +#define ROM_END 0x0013ffff +#define ENTRY_EOF 0x00000e0f +/* processes up to 4 words of initialization entries */ +/* returns the number of words processed */ +uint32_t exec_init_entry(volatile uint32_t *entries, uint8_t *valbuf) +{ + volatile uint32_t i; + if(entries[0] <= ROM_END) { + if (entries[0] == 0) { + /* do delay command*/ + puts("init_entry: delay "); + put_hex32(entries[1]); + puts("\n\r"); + for(i=0; i= 16) && + (entries[0] < 0xfff1)) { + /* store bytes in valbuf */ + puts("init_entry: store in valbuf "); + put_hex(entries[1]); + puts(" position "); + put_hex((entries[0]>>4)-1); + puts("\n\r"); + valbuf[(entries[0]>>4)-1] = entries[1]; + return 2; + } else if (entries[0] == ENTRY_EOF) { + puts("init_entry: eof "); + return 0; + } else { + /* invalid command code */ + puts("init_entry: invaild code "); + put_hex32(entries[0]); + puts("\n\r"); + return 0; + } + } else { /* address isn't in ROM space */ + /* do store value in address command */ + puts("init_entry: address value pair - *0x"); + put_hex32(entries[0]); + puts(" = "); + put_hex32(entries[1]); + puts("\n\r"); + reg(entries[0]) = entries[1]; + return 2; + } +} + + +#define FLASH_INIT_MAGIC 0x00000abc +uint32_t init_from_flash(uint32_t addr) { + nvmType_t type=0; + nvmErr_t err; + volatile uint32_t buf[8]; + volatile uint32_t len; + volatile uint32_t i=0,j; + + err = nvm_detect(gNvmInternalInterface_c, &type); + puts("nvm_detect returned type "); + put_hex32(type); + puts(" err "); + put_hex(err); + puts("\n\r"); + + nvm_setsvar(0); + err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, addr, 8); + i+=8; + puts("nvm_read returned: 0x"); + put_hex(err); + puts("\n\r"); + + for(j=0; j<4; j++) { + put_hex32(buf[j]); + puts("\n\r"); + } + + if(buf[0] == FLASH_INIT_MAGIC) { + len = buf[1] & 0x0000ffff; + while(i < (len-4)) { + err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, addr+i, 32); + i += 4*exec_init_entry(buf, ram_values); + } + return i; + } else { + return 0; + } + +} + +/* + * Do the ABORT-Wait-NOP-Wait sequence in order to prevent MACA malfunctioning. + * This seqeunce is synchronous and no interrupts should be triggered when it is done. + */ +void ResumeMACASync(void) +{ + uint32_t clk, TsmRxSteps, LastWarmupStep, LastWarmupData, LastWarmdownStep, LastWarmdownData; +// bool_t tmpIsrStatus; + volatile uint32_t i; + +// ITC_DisableInterrupt(gMacaInt_c); +// AppInterrupts_ProtectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented + + /* Manual TSM modem shutdown */ + + /* read TSM_RX_STEPS */ + TsmRxSteps = (*((volatile uint32_t *)(0x80009204))); + + /* isolate the RX_WU_STEPS */ + /* shift left to align with 32-bit addressing */ + LastWarmupStep = (TsmRxSteps & 0x1f) << 2; + /* Read "current" TSM step and save this value for later */ + LastWarmupData = (*((volatile uint32_t *)(0x80009300 + LastWarmupStep))); + + /* isolate the RX_WD_STEPS */ + /* right-shift bits down to bit 0 position */ + /* left-shift to align with 32-bit addressing */ + LastWarmdownStep = ((TsmRxSteps & 0x1f00) >> 8) << 2; + /* write "last warmdown data" to current TSM step to shutdown rx */ + LastWarmdownData = (*((volatile uint32_t *)(0x80009300 + LastWarmdownStep))); + (*((volatile uint32_t *)(0x80009300 + LastWarmupStep))) = LastWarmdownData; + + /* Abort */ + MACA_WRITE(maca_control, 1); + + /* Wait ~8us */ + for (clk = maca_clk, i = 0; maca_clk - clk < 3 && i < 300; i++) + ; + + /* NOP */ + MACA_WRITE(maca_control, 0); + + /* Wait ~8us */ + for (clk = maca_clk, i = 0; maca_clk - clk < 3 && i < 300; i++) + ; + + + /* restore original "last warmup step" data to TSM (VERY IMPORTANT!!!) */ + (*((volatile uint32_t *)(0x80009300 + LastWarmupStep))) = LastWarmupData; + + + + /* Clear all MACA interrupts - we should have gotten the ABORT IRQ */ + MACA_WRITE(maca_clrirq, 0xFFFF); + +// AppInterrupts_UnprotectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented +// ITC_EnableInterrupt(gMacaInt_c); +} diff --git a/libmc1322x/put.c b/libmc1322x/put.c new file mode 100644 index 000000000..34e336586 --- /dev/null +++ b/libmc1322x/put.c @@ -0,0 +1,36 @@ +#include +#include + +const uint8_t hex[16]={'0','1','2','3','4','5','6','7', + '8','9','a','b','c','d','e','f'}; + +void putc(char c) { + while(*UT1CON == 31); /* wait for there to be room in the buffer */ + *UART1_DATA = c; +} + +void puts(char *s) { + while(s && *s!=0) { + putc(*s++); + } +} + +void put_hex(uint8_t x) +{ + putc(hex[x >> 4]); + putc(hex[x & 15]); +} + +void put_hex16(uint16_t x) +{ + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} + +void put_hex32(uint32_t x) +{ + put_hex((x >> 24) & 0xFF); + put_hex((x >> 16) & 0xFF); + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} From d36264ef9ec4eb9cbcb520e378e91f2cff856277 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 18:19:10 -0500 Subject: [PATCH 197/471] fix broken build system (since I moved put) --- tests/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Makefile b/tests/Makefile index 8770b2d8f..ba4f1b533 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -3,7 +3,7 @@ MC1322X := .. # all off the common objects for each target # a COBJ is made for EACH board and goes the obj_$(BOARD)_board directory # board specific code is OK in these files -COBJS := tests.o put.o +COBJS := tests.o # all of the target programs to build TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ From 177606cef3cf9a3653b4ed3ae8f8de8d0a9e6241 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Feb 2010 18:27:58 -0500 Subject: [PATCH 198/471] cleaned up rftest-tx. --- tests/Makefile | 2 +- tests/rftest-tx.c | 158 ++++++---------------------------------------- 2 files changed, 19 insertions(+), 141 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index ba4f1b533..b5a2c2ea7 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -11,7 +11,7 @@ TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ nvm-read nvm-write romimg flasher \ tmr tmr-ints \ sleep \ - rftest-rx \ + rftest-rx rftest-tx \ include $(MC1322X)/Makefile.include diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index f36adbe37..117c6ff5e 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -1,54 +1,12 @@ -#define GPIO_FUNC_SEL0 0x80000018 /* GPIO 15 - 0; 2 bit blocks */ -#define GPIO_FUNC_SEL2 0x80000020 /* GPIO 47 - 32; 2 bit blocks */ +#include +#include -#define BASE_UART1 0x80005000 -#define UART1_CON 0x80005000 -#define UART1_STAT 0x80005004 -#define UART1_DATA 0x80005008 -#define UR1CON 0x8000500c -#define UT1CON 0x80005010 -#define UART1_CTS 0x80005014 -#define UART1_BR 0x80005018 - -#define GPIO_PAD_DIR0 0x80000000 -#define GPIO_DATA0 0x80000008 - -#include "maca.h" -#include "embedded_types.h" -#include "isr.h" - -#define reg(x) (*(volatile uint32_t *)(x)) +#include "tests.h" +#include "config.h" #define DELAY 100000 #define DATA 0x00401000; -#define NL "\033[K\r\n" - -void putc(uint8_t c); -void puts(uint8_t *s); -void put_hex(uint8_t x); -void put_hex16(uint16_t x); -void put_hex32(uint32_t x); - -const uint8_t hex[16]={'0','1','2','3','4','5','6','7', - '8','9','a','b','c','d','e','f'}; - -void magic(void) { -#define X 0x80009a000 -#define Y 0x80009a008 -#define VAL 0x0000f7df - volatile uint32_t x,y; - x = reg(X); /* get X */ - x &= 0xfffeffff; /* clear bit 16 */ - reg(X) = x; /* put it back */ - y = reg(Y); /* get Y */ - y |= VAL; /* or with the VAL */ - x = reg(X); /* get X again */ - x |= 16; /* or with 16 */ - reg(X) = x; /* put X back */ - reg(Y) = y; /* put Y back */ -} - uint32_t ackBox[10]; #define command_xcvr_rx() \ @@ -58,44 +16,25 @@ uint32_t ackBox[10]; maca_dmarx = DATA; \ maca_tmren = (maca_cpl_clk | maca_soft_clk); \ maca_control = (control_prm | control_asap | control_seq_rx); \ - }while(FALSE) + }while(0) #define PAYLOAD_LEN 16 /* not including the extra 4 bytes for len+fcs+somethingelse */ /* maca dmatx needs extra 4 bytes for checksum */ /* needs + 4 bytes for len(1 byte) + fcs(2 bytes) + somethingelse */ #define command_xcvr_tx() \ do { \ - maca_txlen = (uint32_t)(PAYLOAD_LEN+4); \ + maca_txlen = (uint32_t)(PAYLOAD_LEN+4); \ maca_dmatx = (uint32_t)DATA; \ maca_dmarx = (uint32_t)&ackBox; \ maca_control = (control_prm | control_mode_no_cca | \ control_asap | control_seq_tx); \ - }while(FALSE) + }while(0) - -void dump_regs(uint32_t base, uint32_t len) { - volatile uint32_t i; - - puts("base +0 +4 +8 +c +10 +14 +18 +1c \n\r"); - for (i = 0; i < len; i ++) { - if ((i & 7) == 0) { - put_hex16(4 * i); - } - puts(" "); - put_hex32(reg(base+(4*i))); - if ((i & 7) == 7) - puts(NL); - } - puts(NL); -} - volatile uint8_t led; - -#include "led.h" #define LED LED_RED -#define led_on() do { led = 1; reg(GPIO_DATA0) = LED; } while(0); -#define led_off() do { led = 0; reg(GPIO_DATA0) = 0x00000000; } while(0); +#define led_on() do { led = 1; *GPIO_DATA0 = LED; } while(0); +#define led_off() do { led = 0; *GPIO_DATA0 = 0x00000000; } while(0); void toggle_led(void) { if(0 == led) { @@ -116,33 +55,14 @@ void fill_data(void) { } } -__attribute__ ((section ("startup"))) void main(void) { - uint8_t c; volatile uint32_t i; - uint32_t tmp; uint16_t status; - *(volatile uint32_t *)GPIO_PAD_DIR0 = LED; + *GPIO_PAD_DIR0 = LED; led_on(); - /* Restore UART regs. to default */ - /* in case there is still bootloader state leftover */ - - reg(UART1_CON) = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ - - /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ - #define INC 767 - #define MOD 9999 - reg(UART1_BR) = INC<<16 | MOD; - - /* see Section 11.5.1.2 Alternate Modes */ - /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ - /* From the datasheet: "The peripheral function will control operation of the pad IF */ - /* THE PERIPHERAL IS ENABLED. */ - reg(UART1_CON) = 0x00000003; /* enable receive and transmit */ - reg(GPIO_FUNC_SEL0) = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ - + uart_init(INC,MOD); reset_maca(); radio_init(); @@ -153,37 +73,26 @@ void main(void) { set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ - reg(MACA_CONTROL) = SMAC_MACA_CNTL_INIT_STATE; + *MACA_CONTROL = SMAC_MACA_CNTL_INIT_STATE; for(i=0; i> 4]); - putc(hex[x & 15]); -} - -void put_hex16(uint16_t x) -{ - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} - -void put_hex32(uint32_t x) -{ - put_hex((x >> 24) & 0xFF); - put_hex((x >> 16) & 0xFF); - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} From cc99d5326f00918b8a5aa70d0d9ce71bb221914f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 27 Feb 2010 13:46:53 -0500 Subject: [PATCH 199/471] overall cleanup --- CREDITS | 373 +- Makefile | 142 - boot.lds | 53 - qemu/Makefile.target | 650 -- qemu/README.qemu.mc1322x | 28 - qemu/hw/boards.h | 104 - qemu/hw/mc1322x.c | 67 - qemu/hw/mc1322x.h | 37 - qemu/target-arm/helper.c | 1864 ---- qemu/vl.c | 9003 ----------------- mc1322x-load.pl => tools/mc1322x-load.pl | 0 rftestrx2pcap.pl => tools/rftestrx2pcap.pl | 0 .../rimecollect-rrd}/collect2rrd.pl | 0 .../rimecollect-rrd}/default.rrdtmpl | 0 .../rimecollect-rrd}/meshstat.cgi | 0 15 files changed, 4 insertions(+), 12317 deletions(-) delete mode 100644 Makefile delete mode 100644 boot.lds delete mode 100644 qemu/Makefile.target delete mode 100644 qemu/README.qemu.mc1322x delete mode 100644 qemu/hw/boards.h delete mode 100644 qemu/hw/mc1322x.c delete mode 100644 qemu/hw/mc1322x.h delete mode 100644 qemu/target-arm/helper.c delete mode 100644 qemu/vl.c rename mc1322x-load.pl => tools/mc1322x-load.pl (100%) rename rftestrx2pcap.pl => tools/rftestrx2pcap.pl (100%) rename {rimecollect-rrd => tools/rimecollect-rrd}/collect2rrd.pl (100%) rename {rimecollect-rrd => tools/rimecollect-rrd}/default.rrdtmpl (100%) rename {rimecollect-rrd => tools/rimecollect-rrd}/meshstat.cgi (100%) diff --git a/CREDITS b/CREDITS index be08703b9..18c817a93 100644 --- a/CREDITS +++ b/CREDITS @@ -1,373 +1,8 @@ -Dittos - -But now it's a blink led program for an mc1322x +MC13224v library code, test routines, and handy tools +http://mc1322x.devl.org Mariano Alvira mar@devl.org -#### +Parts of the build system came from U-boot and Darrel Harmon's +"darrell's loader" for the AT91RM9200. -This program started out as U-boot. I stripped most of it out -and added a few pieces to create a bootloader less than 12K for -the AT91RM9200 allowing boot from serial data flash. - - Darrell Harmon mail@dlharmon.com - -The following is the credits file included with u-boot. Much of that -code is used here. - - -# -# Parts of the development effort for this project have been -# sponsored by SIEMENS AG, Austria. Thanks to SIEMENS for -# supporting an Open Source project! -# -# -# This is at least a partial credits-file of individual people that -# have contributed to the U-Boot project. It is sorted by name and -# formatted to allow easy grepping and beautification by scripts. -# The fields are: name (N), email (E), web-address (W), PGP key ID -# and fingerprint (P), description (D), and snail-mail address (S). -# Thanks, -# -# Wolfgang Denk -#---------- - -N: Dr. Bruno Achauer -E: bruno@exet-ag.de -D: Support for NetBSD (both as host and target system) - -N: Guillaume Alexandre -E: guillaume.alexandre@gespac.ch -D: Add PCIPPC6 configuration - -N: Swen Anderson -E: sand@peppercon.de -D: ERIC Support - -N: Pantelis Antoniou -E: panto@intracom.gr -D: NETVIA & NETPHONE board support, ARTOS support. - -N: Pierre Aubert -E: -D: Support for RPXClassic board - -N: Yuli Barcohen -E: yuli@arabellasw.com -D: Unified support for Motorola MPC826xADS/MPC8272ADS/PQ2FADS boards. -D: Support for Zephyr Engineering ZPC.1900 board. -W: http://www.arabellasw.com - -N: Jerry van Baren -E: -D: BedBug port to 603e core (MPC82xx). Code for enhanced memory test. - -N: Pavel Bartusek -E: -D: Reiserfs support -W: http://www.elinos.com - -N: Andre Beaudin -E: -D: PCMCIA, Ethernet, TFTP - -N: Jon Benediktsson -E: jonb@marel.is -D: Support for Marel V37 board - -N: Raphael Bossek -E: raphael.bossek@solutions4linux.de -D: 8xxrom-0.3.0 - -N: Rick Bronson -E: rick@efn.org -D: Atmel AT91RM9200DK and NAND support - -N: David Brown -E: DBrown03@harris.com -D: Extensions to 8xxrom-0.3.0 - -N: Oliver Brown -E: obrown@adventnetworks.com -D: Port to the gw8260 board - -N: Jonathan De Bruyne -E: jonathan.debruyne@siemens.atea.be -D: Port to Siemens IAD210 board - -N: Ken Chou -E: kchou@ieee.org -D: Support for A3000 SBC board - -N: Conn Clark -E: clark@esteem.com -D: ESTEEM192E support - -N: Magnus Damm -E: damm@opensource.se -D: 8xxrom - -N: George G. Davis -E: gdavis@mvista.com -D: Board ports for ADS GraphicsClient+ and Intel Assabet - -N: Arun Dharankar -E: ADharankar@ATTBI.Com -D: threads / scheduler example code - -N: Kári Davíđsson -E: kd@flaga.is -D: FLAGA DM Support - -N: Wolfgang Denk -E: wd@denx.de -D: U-Boot initial version, continuing maintenance, ARMBoot merge -W: http://www.denx.de - -N: Dan A. Dickey -E: ddickey@charter.net -D: FADS Support - -N: James F. Dougherty -E: jfd@GigabitNetworks.COM -D: Port to the MOUSSE board - -N: Dave Ellis -E: DGE@sixnetio.com -D: EEPROM Speedup, SXNI855T port - -N: Thomas Elste -E: info@elste.org -D: Port for the ModNET50 Board, NET+50 CPU Port -W: http://www.imms.de - -N: Daniel Engström -E: daniel@omicron.se -D: x86 port, Support for sc520_cdp board - -N: Dr. Wolfgang Grandegger -E: wg@denx.de -D: Support for Interphase 4539 T1/E1/J1 PMC, PN62, CCM, SCM boards -W: www.denx.de - -N: Peter Figuli -E: peposh@etc.sk -D: Support for WEP EP250 (PXA) board - -N: Thomas Frieden -E: ThomasF@hyperion-entertainment.com -D: Support for AmigaOne - -N: Frank Gottschling -E: fgottschling@eltec.de -D: Support for ELTEC MHPC/BAB7xx/ELPPC boards, cfb-console, i8042, SMI LynxEM -W: www.eltec.de - -N: Marius Groeger -E: mgroeger@sysgo.de -D: MBX Support, board specific function interface, EST SBC8260 support; initial support for StrongARM (LART), ARM720TDMI (implementa A7) -W: www.elinos.com - -N: Kirk Haderlie -E: khaderlie@vividimage.com -D: Added TFTP to 8xxrom (-> 0.3.1) - -N: Chris Hallinan -E: clh@net1plus.com -D: DHCP Support - -N: Anne-Sophie Harnois -E: Anne-Sophie.Harnois@nextream.fr -D: Port to Walnut405 board - -N: Andreas Heppel -E: aheppel@sysgo.de -D: CPU Support for MPC 75x; board support for Eltec BAB750 [obsolete!] - -N: August Hoeraendl -E: august.hoerandl@gmx.at -D: Support for the logodl board (PXA2xx) - -N: Josh Huber -E: huber@alum.wpi.edu -D: Port to the Galileo Evaluation Board, and the MPC74xx cpu series. -W: http://www.mclx.com/ - -H: Stuart Hughes -E: stuarth@lineo.com -D: Port to MPC8260ADS board - -H: Rich Ireland -E: r.ireland@computer.org -D: FPGA device configuration driver - -N: Gary Jennejohn -E: garyj@jennejohn.org, gj@denx.de -D: Support for Samsung ARM920T S3C2400X, ARM920T "TRAB" -W: www.denx.de - -N: Murray Jensen -E: Murray.Jensen@cmst.csiro.au -D: Initial 8260 support; GDB support -D: Port to Cogent+Hymod boards; Hymod Board Database -W: http://www.msa.cmst.csiro.au/ourstaff/MurrayJensen/mjj.html - -N: Yoo. Jonghoon -E: yooth@ipone.co.kr -D: Added port to the RPXlite board - -N: Brad Kemp -E: Brad.Kemp@seranoa.com -D: Port to Windriver ppmc8260 board - -N: Sangmoon Kim -E: dogoil@etinsys.com -D: Support for debris board - -N: Thomas Koeller -E: tkoeller@gmx.net -D: Port to Motorola Sandpoint 3 (MPC8240) - -N: Raghu Krishnaprasad -E: Raghu.Krishnaprasad@fci.com -D: Support for Adder-II MPC852T evaluation board -W: http://www.forcecomputers.com - -N: Bernhard Kuhn -E: bkuhn@metrowerks.com -D Support for Coldfire CPU; Support for Motorola M5272C3 and M5282EVB boards - -N: Thomas Lange -E: thomas@corelatus.se -D: Support for GTH and dbau1x00 boards; lots of PCMCIA fixes - -N: The LEOX team -E: team@leox.org -D: Support for LEOX boards, DS164x RTC -W: http://www.leox.org - -N: Stephan Linz -E: linz@li-pro.net -D: Support for Nios Stratix Development Kit (DK-1S10) -D: Support for SSV ADNP/ESC1 (Nios Cyclone) -W: http://www.li-pro.net - -N: Raymond Lo -E: lo@routefree.com -D: Support for DOS partitions - -N: Dan Malek -E: dan@netx4.com -D: FADSROM, the grandfather of all of this - -N: Reinhard Meyer -E: r.meyer@emk-elektronik.de -D: Port to EMK TOP860 Module - -N: Jay Monkman -E: jtm@smoothsmoothie.com -D: EST SBC8260 support - -N: Frank Morauf -E: frank.morauf@salzbrenner.com -D: Support for Embedded Planet RPX Super Board - -N: David Müller -E: d.mueller@elsoft.ch -D: Support for Samsung ARM920T SMDK2410 eval board - -N: Scott McNutt -E: smcnutt@psyent.com -D: Support for Altera Nios-32 CPU, for Nios Cyclone Development Kit (DK-1C20) - -N: Rolf Offermanns -E: rof@sysgo.de -D: Initial support for SSV-DNP1110, SMC91111 driver -W: www.elinos.com - -N: Tolunay Orkun -E: torkun@nextio.com -D: Support for Cogent CSB272 board - -N: Keith Outwater -E: keith_outwater@mvis.com -D: Support for generic/custom MPC860T boards (GEN860T, GEN860T_SC) - -N: Frank Panno -E: fpanno@delphintech.com -D: Support for Embedded Planet EP8260 Board - -N: Denis Peter -E: d.peter@mpl.ch -D: Support for 4xx SCSI, floppy, CDROM, CT69000 video, ... -D: Support for PIP405 board -D: Support for MIP405 board - -N: Bill Pitts -E: wlp@mindspring.com -D: BedBug embedded debugger code - -N: Stefan Roese -E: stefan.roese@esd-electronics.com -D: IBM PPC401/403/405GP Support; Windows environment support - -N: Erwin Rol -E: erwin@muffin.org -D: boot support for RTEMS - -N: Neil Russell -E: caret@c-side.com -D: Author of LiMon-1.4.2, which contributed some ideas - -N: Travis B. Sawyer -E: travis.sawyer@sandburst.com -D: Support for IBM PPC440GX, XES XPedite1000 440GX PrPMC board. IBM 440gx Ref Platform (Ocotea) - -N: Paolo Scaffardi -E: arsenio@tin.it -D: FADS823 configuration, MPC823 video support, I2C, wireless keyboard, lots more - -N: Robert Schwebel -E: r.schwebel@pengutronix.de -D: Support for csb226, logodl and innokom boards (PXA2xx) - -N: Rob Taylor -E: robt@flyingpig.com -D: Port to MBX860T and Sandpoint8240 - -N: Erik Theisen -E: etheisen@mindspring.com -D: MBX8xx and many other patches - -N: Jim Thompson -E: jim@musenki.com -D: Support for MUSENKI board - -N: Rune Torgersen -E: -D: Support for Motorola MPC8266ADS board - -N: David Updegraff -E: dave@cray.com -D: Port to Cray L1 board; DHCP vendor extensions - -N: Martin Winistoerfer -E: martinwinistoerfer@gmx.ch -D: Port to MPC555/556 microcontrollers and support for cmi board - -N: Christian Vejlbo -E: christian.vejlbo@tellabs.com -D: FADS860T ethernet support - -N: John Zhan -E: zhanz@sinovee.com -D: Support for SinoVee Microsystems SC8xx SBC - -N: Alex Zuepke -E: azu@sysgo.de -D: Overall improvements on StrongARM, ARM720TDMI; Support for Tuxscreen; initial PCMCIA support for ARM -W: www.elinos.com - -N: Xianghua Xiao -E: x.xiao@motorola.com -D: Support for Motorola 85xx(PowerQUICC III) chip, MPC8540ADS and MPC8560ADS boards. diff --git a/Makefile b/Makefile deleted file mode 100644 index b0a39848d..000000000 --- a/Makefile +++ /dev/null @@ -1,142 +0,0 @@ -# -# (C) Copyright 2000-2004 -# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -# -# See file CREDITS for list of people who contributed to this -# project. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -# MA 02111-1307 USA -# - -# Deal with colliding definitions from tcsh etc. -VENDOR= - -######################################################################### - -TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) -export TOPDIR -ARCH = arm -CPU = arm7tdmi-s -export ARCH CPU VENDOR - -# load other configuration -include $(TOPDIR)/config.mk - -######################################################################### - -AOBJS = -COBJS = $(patsubst %.c,%.o,$(wildcard src/*.c)) -#TESTS = $(wildcard tests/*.c) -#TESTS = tests/blink-red.c #tests/nvm-read.c -TARGETS = $(patsubst %.c,%.o,$(TESTS)) - -# Add GCC lib -PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc - -######################################################################### - -ALL = $(TESTS:.c=.srec) $(TESTS:.c=.bin) $(TESTS:.c=.dis) - -.PRECIOUS: $(COBJS) $(TARGETS) $(TESTS:.c=.obj) - -LIBOBJS = $(patsubst %.c,%.o,$(wildcard libmc1322x/*.c)) - -include $(TOPDIR)/board/dev/Makefile -all: board - -libmc1322x: libmc1322x.a - -libmc1322x.a: $(LIBOBJS) - $(AR) r libmc1322x.a $(LIBOBJS) - -#all: src/start.o src/isr.o $(ALL) - -#tests/flasher.obj: src/maca.o src/nvm.o -#tests/nvm-read.obj: src/maca.o src/nvm.o -#tests/nvm-write.obj: src/maca.o src/nvm.o -#tests/rftest-rx.obj: src/maca.o src/nvm.o -#tests/rftest-tx.obj: src/maca.o src/nvm.o -#tests/tmr-ints.obj: src/isr.o -#tests/sleep.obj: src/isr.o src/maca.o src/nvm.o - -NOTHUMB_CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ - -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ - -I$(TOPDIR)/libmc1322x/include \ - -fno-builtin -ffreestanding -nostdinc -isystem \ - $(gccincdir) -pipe -NOTHUMB_CPPFLAGS_EXTRA = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mthumb-interwork - - -src/isr.o: src/isr.c - $(CC) $(NOTHUMB_CPPFLAGS) $(NOTHUMB_CPPFLAGS_EXTRA) -c -o $@ $< - -%.srec: %.obj - $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ - -%.ihex: %.obj - $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ - -%.bin: %.obj - $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ - -%.dis: %.obj - $(OBJDUMP) -SD $< > $@ - -%.obj: $(LDSCRIPT) %.o src/isr.o - $(LD) $(LDFLAGS) $(AOBJS) \ - --start-group $(PLATFORM_LIBS) --end-group \ - -Map $*.map $^ -o $@ - - -%.System.map: %.obj - @$(NM) $< | \ - grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ - sort > $*.System.map - - -######################################################################### - -.depend: Makefile $(AOBJS:.o=.S) $(COBJS:.o=.c) - $(CC) -M $(CFLAGS) $(AOBJS:.o=.S) $(COBJS:.o=.c) > $@ - -sinclude .depend - -######################################################################### - -clean: - find . -type f \ - \( -name 'core' -o -name '*.bak' -o -name '*~' \ - -o -name '*.o' -o -name '*.a' -o -name '*.obj' \) -print \ - | xargs rm -f - rm -f $(ALL) $(OBJS) - -clobber: clean - find . -type f \ - \( -name .depend -o -name '*.srec' -o -name '*.bin' -o -name '*.dis' -o -name '*.map' -o -name '*.obj' \) \ - -print \ - | xargs rm -f - rm -f $(OBJS) *.bak tags TAGS - rm -fr *.*~ - rm -f $(ALL) - -mrproper \ -distclean: clobber - -backup: - F=`basename $(TOPDIR)` ; cd .. ; \ - tar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F - -######################################################################### diff --git a/boot.lds b/boot.lds deleted file mode 100644 index c71b37ede..000000000 --- a/boot.lds +++ /dev/null @@ -1,53 +0,0 @@ -/* - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/ -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00400000; - - . = ALIGN(4); - .text : - { - src/start.o (.text) - *(.irq) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(.rodata) } - - . = ALIGN(4); - .data : { *(.data) } - - . = ALIGN(4); - .got : { *(.got) } - - . = ALIGN(4); - __bss_start = .; - .bss : { *(.bss) } - _end = .; -} diff --git a/qemu/Makefile.target b/qemu/Makefile.target deleted file mode 100644 index b8ca4b194..000000000 --- a/qemu/Makefile.target +++ /dev/null @@ -1,650 +0,0 @@ -include config.mak - -TARGET_BASE_ARCH:=$(TARGET_ARCH) -ifeq ($(TARGET_ARCH), x86_64) -TARGET_BASE_ARCH:=i386 -endif -ifeq ($(TARGET_ARCH), mipsn32) -TARGET_BASE_ARCH:=mips -endif -ifeq ($(TARGET_ARCH), mips64) -TARGET_BASE_ARCH:=mips -endif -ifeq ($(TARGET_ARCH), ppc64) -TARGET_BASE_ARCH:=ppc -endif -ifeq ($(TARGET_ARCH), ppc64h) -TARGET_BASE_ARCH:=ppc -endif -ifeq ($(TARGET_ARCH), ppcemb) -TARGET_BASE_ARCH:=ppc -endif -ifeq ($(TARGET_ARCH), sparc64) -TARGET_BASE_ARCH:=sparc -endif -TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH) -VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw -CPPFLAGS=-I. -I.. -I$(TARGET_PATH) -I$(SRC_PATH) -MMD -MP -DNEED_CPU_H -ifdef CONFIG_DARWIN_USER -VPATH+=:$(SRC_PATH)/darwin-user -CPPFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH) -endif -ifdef CONFIG_LINUX_USER -VPATH+=:$(SRC_PATH)/linux-user -ifndef TARGET_ABI_DIR - TARGET_ABI_DIR=$(TARGET_ARCH) -endif -CPPFLAGS+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -endif -BASE_CFLAGS= -BASE_LDFLAGS= -#CFLAGS+=-Werror -LIBS= -HELPER_CFLAGS=$(CFLAGS) -DYNGEN=../dyngen$(EXESUF) -# user emulator name -ifndef TARGET_ARCH2 -TARGET_ARCH2=$(TARGET_ARCH) -endif -ifeq ($(TARGET_ARCH),arm) - ifeq ($(TARGET_WORDS_BIGENDIAN),yes) - TARGET_ARCH2=armeb - endif -endif -ifeq ($(TARGET_ARCH),sh4) - ifeq ($(TARGET_WORDS_BIGENDIAN),yes) - TARGET_ARCH2=sh4eb - endif -endif -ifeq ($(TARGET_ARCH),mips) - ifneq ($(TARGET_WORDS_BIGENDIAN),yes) - TARGET_ARCH2=mipsel - endif -endif -ifeq ($(TARGET_ARCH),mipsn32) - ifneq ($(TARGET_WORDS_BIGENDIAN),yes) - TARGET_ARCH2=mipsn32el - endif -endif -ifeq ($(TARGET_ARCH),mips64) - ifneq ($(TARGET_WORDS_BIGENDIAN),yes) - TARGET_ARCH2=mips64el - endif -endif -QEMU_USER=qemu-$(TARGET_ARCH2) -# system emulator name -ifdef CONFIG_SOFTMMU -ifeq ($(TARGET_ARCH), i386) -QEMU_SYSTEM=qemu$(EXESUF) -else -QEMU_SYSTEM=qemu-system-$(TARGET_ARCH2)$(EXESUF) -endif -else -QEMU_SYSTEM=qemu-fast -endif - -ifdef CONFIG_USER_ONLY -PROGS=$(QEMU_USER) -else -PROGS+=$(QEMU_SYSTEM) -ifndef CONFIG_SOFTMMU -CONFIG_STATIC=y -endif -endif # !CONFIG_USER_ONLY - -ifdef CONFIG_STATIC -BASE_LDFLAGS+=-static -endif - -# We require -O2 to avoid the stack setup prologue in EXIT_TB -OP_CFLAGS := -Wall -O2 -g -fno-strict-aliasing - -# cc-option -# Usage: OP_CFLAGS+=$(call cc-option, -falign-functions=0, -malign-functions=0) - -cc-option = $(shell if $(CC) $(OP_CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ - > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) - -OP_CFLAGS+=$(call cc-option, -fno-reorder-blocks, "") -OP_CFLAGS+=$(call cc-option, -fno-gcse, "") -OP_CFLAGS+=$(call cc-option, -fno-tree-ch, "") -OP_CFLAGS+=$(call cc-option, -fno-optimize-sibling-calls, "") -OP_CFLAGS+=$(call cc-option, -fno-crossjumping, "") -OP_CFLAGS+=$(call cc-option, -fno-align-labels, "") -OP_CFLAGS+=$(call cc-option, -fno-align-jumps, "") -OP_CFLAGS+=$(call cc-option, -fno-align-functions, $(call cc-option, -malign-functions=0, "")) -OP_CFLAGS+=$(call cc-option, -fno-section-anchors, "") - -ifeq ($(ARCH),i386) -HELPER_CFLAGS+=-fomit-frame-pointer -OP_CFLAGS+=-mpreferred-stack-boundary=2 -fomit-frame-pointer -ifdef TARGET_GPROF -USE_I386_LD=y -endif -ifdef CONFIG_STATIC -USE_I386_LD=y -endif -ifdef USE_I386_LD -BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -else -ifdef CONFIG_LINUX_USER -# WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object -# that the kernel ELF loader considers as an executable. I think this -# is the simplest way to make it self virtualizable! -BASE_LDFLAGS+=-Wl,-shared -endif -endif -endif - -ifeq ($(ARCH),x86_64) - ifneq ($(CONFIG_SOLARIS),yes) - BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld - endif -endif - -ifeq ($(ARCH),ppc) -CPPFLAGS+= -D__powerpc__ -BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),s390) -BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),sparc) - BASE_CFLAGS+=-ffixed-g2 -ffixed-g3 - OP_CFLAGS+=-fno-delayed-branch -ffixed-i0 - ifeq ($(CONFIG_SOLARIS),yes) - OP_CFLAGS+=-fno-omit-frame-pointer - else - BASE_CFLAGS+=-ffixed-g1 -ffixed-g6 - HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 - # -static is used to avoid g1/g3 usage by the dynamic linker - BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static - endif -endif - -ifeq ($(ARCH),sparc64) - BASE_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7 - OP_CFLAGS+=-mcpu=ultrasparc -m64 -fno-delayed-branch -ffixed-i0 - ifneq ($(CONFIG_SOLARIS),yes) - BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld - OP_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7 - endif -endif - -ifeq ($(ARCH),alpha) -# -msmall-data is not used for OP_CFLAGS because we want two-instruction -# relocations for the constant constructions -# Ensure there's only a single GP -BASE_CFLAGS+=-msmall-data -BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),ia64) -BASE_CFLAGS+=-mno-sdata -OP_CFLAGS+=-mno-sdata -BASE_LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),arm) -OP_CFLAGS+=-mno-sched-prolog -fno-omit-frame-pointer -BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),m68k) -OP_CFLAGS+=-fomit-frame-pointer -BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),mips) -OP_CFLAGS+=-mabi=32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0 -ifeq ($(WORDS_BIGENDIAN),yes) -BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -else -BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld -endif -endif - -ifeq ($(ARCH),mips64) -OP_CFLAGS+=-mabi=n32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0 -ifeq ($(WORDS_BIGENDIAN),yes) -BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -else -BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld -endif -endif - -ifeq ($(CONFIG_DARWIN),yes) -LIBS+=-lmx -endif - -ifdef CONFIG_DARWIN_USER -# Leave some space for the regular program loading zone -BASE_LDFLAGS+=-Wl,-segaddr,__STD_PROG_ZONE,0x1000 -image_base 0x0e000000 -endif - -BASE_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS) -BASE_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS) -OP_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS) -OP_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS) - -######################################################### - -CPPFLAGS+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -LIBS+=-lm -ifndef CONFIG_USER_ONLY -LIBS+=-lz -endif -ifdef CONFIG_WIN32 -LIBS+=-lwinmm -lws2_32 -liphlpapi -endif -ifdef CONFIG_SOLARIS -LIBS+=-lsocket -lnsl -lresolv -ifdef NEEDS_LIBSUNMATH -LIBS+=-lsunmath -LDFLAGS+=-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib -OP_CFLAGS+=-I/opt/SUNWspro/prod/include/cc -BASE_CFLAGS+=-I/opt/SUNWspro/prod/include/cc -endif -endif - -# profiling code -ifdef TARGET_GPROF -BASE_LDFLAGS+=-p -main.o: BASE_CFLAGS+=-p -endif - -ifdef CONFIG_LINUX_USER -OBJS= main.o syscall.o strace.o mmap.o signal.o path.o osdep.o thunk.o \ - elfload.o linuxload.o uaccess.o -LIBS+= $(AIOLIBS) -ifdef TARGET_HAS_BFLT -OBJS+= flatload.o -endif -ifdef TARGET_HAS_ELFLOAD32 -OBJS+= elfload32.o -elfload32.o: elfload.c -endif - -ifeq ($(TARGET_ARCH), i386) -OBJS+= vm86.o -endif -ifeq ($(TARGET_ARCH), arm) -OBJS+=nwfpe/fpa11.o nwfpe/fpa11_cpdo.o \ -nwfpe/fpa11_cpdt.o nwfpe/fpa11_cprt.o nwfpe/fpopcode.o nwfpe/single_cpdo.o \ - nwfpe/double_cpdo.o nwfpe/extended_cpdo.o arm-semi.o -endif -ifeq ($(TARGET_ARCH), m68k) -OBJS+= m68k-sim.o m68k-semi.o -endif -endif #CONFIG_LINUX_USER - -ifdef CONFIG_DARWIN_USER -OBJS= main.o commpage.o machload.o mmap.o osdep.o signal.o syscall.o thunk.o -endif - -SRCS:= $(OBJS:.o=.c) -OBJS+= libqemu.a - -# cpu emulator library -LIBOBJS=exec.o kqemu.o translate-op.o translate-all.o cpu-exec.o\ - translate.o op.o host-utils.o -ifdef CONFIG_SOFTFLOAT -LIBOBJS+=fpu/softfloat.o -else -LIBOBJS+=fpu/softfloat-native.o -endif -CPPFLAGS+=-I$(SRC_PATH)/fpu - -ifeq ($(TARGET_ARCH), i386) -LIBOBJS+=helper.o helper2.o -endif - -ifeq ($(TARGET_ARCH), x86_64) -LIBOBJS+=helper.o helper2.o -endif - -ifeq ($(TARGET_BASE_ARCH), ppc) -LIBOBJS+= op_helper.o helper.o -endif - -ifeq ($(TARGET_BASE_ARCH), mips) -LIBOBJS+= op_helper.o helper.o -endif - -ifeq ($(TARGET_BASE_ARCH), sparc) -LIBOBJS+= op_helper.o helper.o -endif - -ifeq ($(TARGET_BASE_ARCH), arm) -LIBOBJS+= op_helper.o helper.o -endif - -ifeq ($(TARGET_BASE_ARCH), sh4) -LIBOBJS+= op_helper.o helper.o -endif - -ifeq ($(TARGET_BASE_ARCH), m68k) -LIBOBJS+= op_helper.o helper.o -endif - -ifeq ($(TARGET_BASE_ARCH), alpha) -LIBOBJS+= op_helper.o helper.o alpha_palcode.o -endif - -ifeq ($(TARGET_BASE_ARCH), cris) -LIBOBJS+= op_helper.o helper.o -LIBOBJS+= cris-dis.o - -ifndef CONFIG_USER_ONLY -LIBOBJS+= mmu.o -endif -endif - -# NOTE: the disassembler code is only needed for debugging -LIBOBJS+=disas.o -ifeq ($(findstring i386, $(TARGET_ARCH) $(ARCH)),i386) -USE_I386_DIS=y -endif -ifeq ($(findstring x86_64, $(TARGET_ARCH) $(ARCH)),x86_64) -USE_I386_DIS=y -endif -ifdef USE_I386_DIS -LIBOBJS+=i386-dis.o -endif -ifeq ($(findstring alpha, $(TARGET_ARCH) $(ARCH)),alpha) -LIBOBJS+=alpha-dis.o -endif -ifeq ($(findstring ppc, $(TARGET_BASE_ARCH) $(ARCH)),ppc) -LIBOBJS+=ppc-dis.o -endif -ifeq ($(findstring mips, $(TARGET_BASE_ARCH) $(ARCH)),mips) -LIBOBJS+=mips-dis.o -endif -ifeq ($(findstring sparc, $(TARGET_BASE_ARCH) $(ARCH)),sparc) -LIBOBJS+=sparc-dis.o -endif -ifeq ($(findstring arm, $(TARGET_ARCH) $(ARCH)),arm) -LIBOBJS+=arm-dis.o -endif -ifeq ($(findstring m68k, $(TARGET_ARCH) $(ARCH)),m68k) -LIBOBJS+=m68k-dis.o -endif -ifeq ($(findstring sh4, $(TARGET_ARCH) $(ARCH)),sh4) -LIBOBJS+=sh4-dis.o -endif -ifeq ($(findstring s390, $(TARGET_ARCH) $(ARCH)),s390) -LIBOBJS+=s390-dis.o -endif - -ifdef CONFIG_GDBSTUB -OBJS+=gdbstub.o -endif - -all: $(PROGS) - -$(QEMU_USER): $(OBJS) - $(CC) $(LDFLAGS) $(BASE_LDFLAGS) -o $@ $^ $(LIBS) -ifeq ($(ARCH),alpha) -# Mark as 32 bit binary, i. e. it will be mapped into the low 31 bit of -# the address space (31 bit so sign extending doesn't matter) - echo -ne '\001\000\000\000' | dd of=qemu bs=1 seek=48 count=4 conv=notrunc -endif - -# must use static linking to avoid leaving stuff in virtual address space -VL_OBJS=vl.o osdep.o monitor.o pci.o loader.o isa_mmio.o -# XXX: suppress QEMU_TOOL tests -ifdef CONFIG_WIN32 -VL_OBJS+=block-raw-win32.o -else -VL_OBJS+=block-raw-posix.o -endif - -ifdef CONFIG_ALSA -LIBS += -lasound -endif -ifdef CONFIG_DSOUND -LIBS += -lole32 -ldxguid -endif -ifdef CONFIG_FMOD -LIBS += $(CONFIG_FMOD_LIB) -endif - -SOUND_HW = sb16.o es1370.o -ifdef CONFIG_ADLIB -SOUND_HW += fmopl.o adlib.o -endif - -ifdef CONFIG_VNC_TLS -CPPFLAGS += $(CONFIG_VNC_TLS_CFLAGS) -LIBS += $(CONFIG_VNC_TLS_LIBS) -endif - -# SCSI layer -VL_OBJS+= lsi53c895a.o - -# USB layer -VL_OBJS+= usb-ohci.o - -# EEPROM emulation -VL_OBJS += eeprom93xx.o - -# PCI network cards -VL_OBJS += eepro100.o -VL_OBJS += ne2000.o -VL_OBJS += pcnet.o -VL_OBJS += rtl8139.o - -ifeq ($(TARGET_BASE_ARCH), i386) -# Hardware support -VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o -VL_OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o -VL_OBJS+= cirrus_vga.o apic.o parallel.o acpi.o piix_pci.o -VL_OBJS+= usb-uhci.o vmmouse.o vmport.o vmware_vga.o -CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE -endif -ifeq ($(TARGET_BASE_ARCH), ppc) -CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE -# shared objects -VL_OBJS+= ppc.o ide.o vga.o $(SOUND_HW) dma.o openpic.o -# PREP target -VL_OBJS+= pckbd.o ps2.o serial.o i8259.o i8254.o fdc.o m48t59.o mc146818rtc.o -VL_OBJS+= prep_pci.o ppc_prep.o -# Mac shared devices -VL_OBJS+= macio.o cuda.o adb.o mac_nvram.o mac_dbdma.o -# OldWorld PowerMac -VL_OBJS+= heathrow_pic.o grackle_pci.o ppc_oldworld.o -# NewWorld PowerMac -VL_OBJS+= unin_pci.o ppc_chrp.o -# PowerPC 4xx boards -VL_OBJS+= pflash_cfi02.o ppc4xx_devs.o ppc405_uc.o ppc405_boards.o -endif -ifeq ($(TARGET_BASE_ARCH), mips) -VL_OBJS+= mips_r4k.o mips_malta.o mips_pica61.o mips_mipssim.o -VL_OBJS+= mips_timer.o mips_int.o dma.o vga.o serial.o i8254.o i8259.o -VL_OBJS+= jazz_led.o -VL_OBJS+= ide.o gt64xxx.o pckbd.o ps2.o fdc.o mc146818rtc.o usb-uhci.o acpi.o ds1225y.o -VL_OBJS+= piix_pci.o parallel.o cirrus_vga.o $(SOUND_HW) -VL_OBJS+= mipsnet.o -VL_OBJS+= pflash_cfi01.o -CPPFLAGS += -DHAS_AUDIO -endif -ifeq ($(TARGET_BASE_ARCH), cris) -VL_OBJS+= etraxfs.o -VL_OBJS+= ptimer.o -VL_OBJS+= etraxfs_timer.o -VL_OBJS+= etraxfs_ser.o -endif -ifeq ($(TARGET_BASE_ARCH), sparc) -ifeq ($(TARGET_ARCH), sparc64) -VL_OBJS+= sun4u.o ide.o pckbd.o ps2.o vga.o apb_pci.o -VL_OBJS+= fdc.o mc146818rtc.o serial.o m48t59.o -VL_OBJS+= cirrus_vga.o parallel.o ptimer.o -else -VL_OBJS+= sun4m.o tcx.o pcnet.o iommu.o m48t59.o slavio_intctl.o -VL_OBJS+= slavio_timer.o slavio_serial.o slavio_misc.o fdc.o esp.o sparc32_dma.o -VL_OBJS+= cs4231.o ptimer.o eccmemctl.o sbi.o sun4c_intctl.o -endif -endif -ifeq ($(TARGET_BASE_ARCH), arm) -VL_OBJS+= integratorcp.o versatilepb.o ps2.o smc91c111.o arm_pic.o arm_timer.o -VL_OBJS+= arm_boot.o pl011.o pl031.o pl050.o pl080.o pl110.o pl181.o pl190.o -VL_OBJS+= versatile_pci.o ptimer.o -VL_OBJS+= realview_gic.o realview.o arm_sysctl.o mpcore.o -VL_OBJS+= armv7m.o armv7m_nvic.o stellaris.o pl022.o stellaris_enet.o -VL_OBJS+= pl061.o -VL_OBJS+= arm-semi.o -VL_OBJS+= pxa2xx.o pxa2xx_pic.o pxa2xx_gpio.o pxa2xx_timer.o pxa2xx_dma.o -VL_OBJS+= pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o -VL_OBJS+= pflash_cfi01.o gumstix.o -VL_OBJS+= spitz.o ide.o serial.o nand.o ecc.o -VL_OBJS+= omap.o omap_lcdc.o omap1_clk.o omap_mmc.o omap_i2c.o -VL_OBJS+= palm.o tsc210x.o -VL_OBJS+= mst_fpga.o mainstone.o -VL_OBJS+= mc1322x.o -CPPFLAGS += -DHAS_AUDIO -endif -ifeq ($(TARGET_BASE_ARCH), sh4) -VL_OBJS+= shix.o r2d.o sh7750.o sh7750_regnames.o tc58128.o -VL_OBJS+= sh_timer.o ptimer.o sh_serial.o sh_intc.o -endif -ifeq ($(TARGET_BASE_ARCH), m68k) -VL_OBJS+= an5206.o mcf5206.o ptimer.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o -VL_OBJS+= m68k-semi.o dummy_m68k.o -endif -ifdef CONFIG_GDBSTUB -VL_OBJS+=gdbstub.o -endif -ifdef CONFIG_COCOA -COCOA_LIBS=-F/System/Library/Frameworks -framework Cocoa -framework IOKit -ifdef CONFIG_COREAUDIO -COCOA_LIBS+=-framework CoreAudio -endif -endif -ifdef CONFIG_SLIRP -CPPFLAGS+=-I$(SRC_PATH)/slirp -endif - -VL_LDFLAGS=$(VL_OS_LDFLAGS) -VL_LIBS=$(AIOLIBS) -# specific flags are needed for non soft mmu emulator -ifdef CONFIG_STATIC -VL_LDFLAGS+=-static -endif -ifndef CONFIG_SOFTMMU -VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/i386-vl.ld -endif -ifndef CONFIG_DARWIN -ifndef CONFIG_WIN32 -ifndef CONFIG_SOLARIS -VL_LIBS+=-lutil -endif -endif -endif -ifdef TARGET_GPROF -vl.o: BASE_CFLAGS+=-p -VL_LDFLAGS+=-p -endif - -ifeq ($(ARCH),ia64) -VL_LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/ia64.ld -endif - -ifeq ($(ARCH),sparc64) - VL_LDFLAGS+=-m64 - ifneq ($(CONFIG_SOLARIS),yes) - VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld - endif -endif - -ifeq ($(ARCH),x86_64) - VL_LDFLAGS+=-m64 - ifneq ($(CONFIG_SOLARIS),yes) - VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld - endif -endif - -ifdef CONFIG_WIN32 -SDL_LIBS := $(filter-out -mwindows, $(SDL_LIBS)) -mconsole -endif - -$(QEMU_SYSTEM): $(VL_OBJS) ../libqemu_common.a libqemu.a - $(CC) $(VL_LDFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(VL_LIBS) - -depend: $(SRCS) - $(CC) -MM $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) $^ 1>.depend - -vldepend: $(VL_OBJS:.o=.c) - $(CC) -MM $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) $^ 1>.depend - -# libqemu - -libqemu.a: $(LIBOBJS) - rm -f $@ - $(AR) rcs $@ $(LIBOBJS) - -translate.o: translate.c gen-op.h opc.h cpu.h - -translate-all.o: translate-all.c opc.h cpu.h - -translate-op.o: translate-all.c op.h opc.h cpu.h - -op.h: op.o $(DYNGEN) - $(DYNGEN) -o $@ $< - -opc.h: op.o $(DYNGEN) - $(DYNGEN) -c -o $@ $< - -gen-op.h: op.o $(DYNGEN) - $(DYNGEN) -g -o $@ $< - -op.o: op.c - $(CC) $(OP_CFLAGS) $(CPPFLAGS) -c -o $@ $< - -# HELPER_CFLAGS is used for all the code compiled with static register -# variables -ifeq ($(TARGET_BASE_ARCH), i386) -# XXX: rename helper.c to op_helper.c -helper.o: helper.c - $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< -else -op_helper.o: op_helper.c - $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< -endif - -cpu-exec.o: cpu-exec.c - $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< - -# Note: this is a workaround. The real fix is to avoid compiling -# cpu_signal_handler() in cpu-exec.c. -signal.o: signal.c - $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< - -%.o: %.c - $(CC) $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $< - -%.o: %.S - $(CC) $(CPPFLAGS) -c -o $@ $< - -clean: - rm -f *.o *.a *~ $(PROGS) gen-op.h opc.h op.h nwfpe/*.o fpu/*.o - rm -f *.d */*.d - -install: all -ifneq ($(PROGS),) - $(INSTALL) -m 755 -s $(PROGS) "$(DESTDIR)$(bindir)" -endif - -ifneq ($(wildcard .depend),) -include .depend -endif - -ifeq (1, 0) -audio.o sdlaudio.o dsoundaudio.o ossaudio.o wavaudio.o noaudio.o \ -fmodaudio.o alsaaudio.o mixeng.o sb16.o es1370.o gus.o adlib.o: \ -CFLAGS := $(CFLAGS) -Wall -Werror -W -Wsign-compare -endif - -# Include automatically generated dependency files --include $(wildcard *.d */*.d) diff --git a/qemu/README.qemu.mc1322x b/qemu/README.qemu.mc1322x deleted file mode 100644 index 8703e0183..000000000 --- a/qemu/README.qemu.mc1322x +++ /dev/null @@ -1,28 +0,0 @@ - apt-get source qemu - -use these files in place of those in the qemu tree - -Build qemu - ./configure --target-list=arm-softmmu - make - -Run with - - arm-softmmu/qemu-system-arm -S -M mc1322x -nographic \ - foo - -which will load rom.img at 0x00000000 and ram.img at -0x00400000 --- execution will start at 0x00400000 (type c). - -I'll be adding command line options for those images soon. - -Debug with gdb: - -Build gdb for an arm target: - - apt-get source gdb - ./configure --target=arm-linux - make - ./gdb - (gdb) target remote localhost:1234 - diff --git a/qemu/hw/boards.h b/qemu/hw/boards.h deleted file mode 100644 index 6e56cb37a..000000000 --- a/qemu/hw/boards.h +++ /dev/null @@ -1,104 +0,0 @@ -/* Declarations for use by board files for creating devices. */ - -#ifndef HW_BOARDS_H -#define HW_BOARDS_H - -typedef void QEMUMachineInitFunc(int ram_size, int vga_ram_size, - const char *boot_device, DisplayState *ds, - const char *kernel_filename, - const char *kernel_cmdline, - const char *initrd_filename, - const char *cpu_model); - -typedef struct QEMUMachine { - const char *name; - const char *desc; - QEMUMachineInitFunc *init; - struct QEMUMachine *next; -} QEMUMachine; - -int qemu_register_machine(QEMUMachine *m); - -/* Axis ETRAX. */ -extern QEMUMachine bareetraxfs_machine; - -/* pc.c */ -extern QEMUMachine pc_machine; -extern QEMUMachine isapc_machine; - -/* ppc.c */ -extern QEMUMachine prep_machine; -extern QEMUMachine core99_machine; -extern QEMUMachine heathrow_machine; -extern QEMUMachine ref405ep_machine; -extern QEMUMachine taihu_machine; - -/* mips_r4k.c */ -extern QEMUMachine mips_machine; - -/* mips_malta.c */ -extern QEMUMachine mips_malta_machine; - -/* mips_pica61.c */ -extern QEMUMachine mips_pica61_machine; - -/* mips_mipssim.c */ -extern QEMUMachine mips_mipssim_machine; - -/* shix.c */ -extern QEMUMachine shix_machine; - -/* r2d.c */ -extern QEMUMachine r2d_machine; - -/* sun4m.c */ -extern QEMUMachine ss5_machine, ss10_machine, ss600mp_machine, ss20_machine; -extern QEMUMachine ss2_machine; -extern QEMUMachine ss1000_machine, ss2000_machine; - -/* sun4u.c */ -extern QEMUMachine sun4u_machine; - -/* integratorcp.c */ -extern QEMUMachine integratorcp_machine; - -/* versatilepb.c */ -extern QEMUMachine versatilepb_machine; -extern QEMUMachine versatileab_machine; - -/* realview.c */ -extern QEMUMachine realview_machine; - -/* spitz.c */ -extern QEMUMachine akitapda_machine; -extern QEMUMachine spitzpda_machine; -extern QEMUMachine borzoipda_machine; -extern QEMUMachine terrierpda_machine; - -/* palm.c */ -extern QEMUMachine palmte_machine; - -/* gumstix.c */ -extern QEMUMachine connex_machine; -extern QEMUMachine verdex_machine; - -/* mc1322x.c */ -extern QEMUMachine mc1322x_machine; - -/* stellaris.c */ -extern QEMUMachine lm3s811evb_machine; -extern QEMUMachine lm3s6965evb_machine; - -/* an5206.c */ -extern QEMUMachine an5206_machine; - -/* mcf5208.c */ -extern QEMUMachine mcf5208evb_machine; - -/* dummy_m68k.c */ -extern QEMUMachine dummy_m68k_machine; - -/* mainstone.c */ -extern QEMUMachine mainstone2_machine; - -#endif diff --git a/qemu/hw/mc1322x.c b/qemu/hw/mc1322x.c deleted file mode 100644 index d7cf600fb..000000000 --- a/qemu/hw/mc1322x.c +++ /dev/null @@ -1,67 +0,0 @@ -/* Freescale mc1322x support - * - * Copyright (c) 2009 Mariano Alvira - * Written by Mariano Alvira - * - * This code is licenced under the GPL. - */ - -#include "hw.h" -#include "mc1322x.h" -#include "sysemu.h" -#include "boards.h" -#include "flash.h" -#include "block.h" - -#include - -static const int sector_len = 128 * 1024; - -/* Initialize a MC1322x (ARM7) */ -struct mc1322x_state_s *mc1322x_init(void) -{ - struct mc1322x_state_s *s; - int index; - FILE *ram, *rom; - ram_addr_t ramoff, romoff; - - s = (struct mc1322x_state_s *) qemu_mallocz(sizeof(struct mc1322x_state_s)); - - s->env = cpu_init("mc1322x"); - if (!s->env) { - fprintf(stderr, "Unable to find CPU definition\n"); - exit(1); - } - register_savevm("cpu", 0, ARM_CPU_SAVE_VERSION, cpu_save, cpu_load, - s->env); - - /* should probably allocate memory for all the cpu registers also */ - - romoff = qemu_ram_alloc(MC1322X_ROMSIZE); - cpu_register_physical_memory(MC1322X_ROMBASE, MC1322X_ROMSIZE, - romoff | IO_MEM_RAM); - ramoff = qemu_ram_alloc(MC1322X_RAMSIZE); - cpu_register_physical_memory(MC1322X_RAMBASE, MC1322X_RAMSIZE, - ramoff | IO_MEM_RAM); - - /* need to add a way to specify these images from the command line */ - - if(rom = fopen("rom.img", "r")) { - fread(phys_ram_base,1,MC1322X_ROMSIZE,rom); - } - - if(ram = fopen("ram.img", "r")) { - fprintf(stderr, "loading ram image\n"); - fread(phys_ram_base+ramoff,1,MC1322X_RAMSIZE,ram); - } - - s->env->regs[15] = 0x00400000; - - return s; -} - -QEMUMachine mc1322x_machine = { - "mc1322x", - "mc1322x board", - mc1322x_init, -}; diff --git a/qemu/hw/mc1322x.h b/qemu/hw/mc1322x.h deleted file mode 100644 index c2a822d50..000000000 --- a/qemu/hw/mc1322x.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Freescale mc1322x support - * - * Copyright (c) 2009 Mariano Alvira - * Written by Mariano Alvira - * - * This code is licenced under the GPL. - */ - -#ifndef PXA_H -#define PXA_H "pxa.h" - -#define MC1322X_ROMBASE 0x00000000 -#define MC1322X_ROMSIZE 0x00014000 -#define MC1322X_RAMBASE 0x00400000 -#define MC1322X_RAMSIZE 0x00020000 - -/* mc1322x.c */ -struct mc1322x_state_s { - CPUState *env; - qemu_irq *pic; - qemu_irq reset; - struct mc1322x_gpio_info_s *gpio; - struct mc1322x_keypad_s *kp; - - /* Power management */ - target_phys_addr_t pm_base; - uint32_t pm_regs[0x40]; - - /* Clock management */ - target_phys_addr_t cm_base; - uint32_t cm_regs[4]; - uint32_t clkcfg; - -}; - - -#endif diff --git a/qemu/target-arm/helper.c b/qemu/target-arm/helper.c deleted file mode 100644 index 19f0a215c..000000000 --- a/qemu/target-arm/helper.c +++ /dev/null @@ -1,1864 +0,0 @@ -#include -#include -#include - -#include "cpu.h" -#include "exec-all.h" -#include "gdbstub.h" - -static uint32_t cortexa8_cp15_c0_c1[8] = -{ 0x1031, 0x11, 0x400, 0, 0x31100003, 0x20000000, 0x01202000, 0x11 }; - -static uint32_t cortexa8_cp15_c0_c2[8] = -{ 0x00101111, 0x12112111, 0x21232031, 0x11112131, 0x00111142, 0, 0, 0 }; - -static uint32_t mpcore_cp15_c0_c1[8] = -{ 0x111, 0x1, 0, 0x2, 0x01100103, 0x10020302, 0x01222000, 0 }; - -static uint32_t mpcore_cp15_c0_c2[8] = -{ 0x00100011, 0x12002111, 0x11221011, 0x01102131, 0x141, 0, 0, 0 }; - -static uint32_t arm1136_cp15_c0_c1[8] = -{ 0x111, 0x1, 0x2, 0x3, 0x01130003, 0x10030302, 0x01222110, 0 }; - -static uint32_t arm1136_cp15_c0_c2[8] = -{ 0x00140011, 0x12002111, 0x11231111, 0x01102131, 0x141, 0, 0, 0 }; - -static uint32_t cpu_arm_find_by_name(const char *name); - -static inline void set_feature(CPUARMState *env, int feature) -{ - env->features |= 1u << feature; -} - -static void cpu_reset_model_id(CPUARMState *env, uint32_t id) -{ - env->cp15.c0_cpuid = id; - switch (id) { - case ARM_CPUID_ARM926: - set_feature(env, ARM_FEATURE_VFP); - env->vfp.xregs[ARM_VFP_FPSID] = 0x41011090; - env->cp15.c0_cachetype = 0x1dd20d2; - env->cp15.c1_sys = 0x00090078; - break; - case ARM_CPUID_ARM946: - set_feature(env, ARM_FEATURE_MPU); - env->cp15.c0_cachetype = 0x0f004006; - env->cp15.c1_sys = 0x00000078; - break; - case ARM_CPUID_ARM1026: - set_feature(env, ARM_FEATURE_VFP); - set_feature(env, ARM_FEATURE_AUXCR); - env->vfp.xregs[ARM_VFP_FPSID] = 0x410110a0; - env->cp15.c0_cachetype = 0x1dd20d2; - env->cp15.c1_sys = 0x00090078; - break; - case ARM_CPUID_ARM1136: - set_feature(env, ARM_FEATURE_V6); - set_feature(env, ARM_FEATURE_VFP); - set_feature(env, ARM_FEATURE_AUXCR); - env->vfp.xregs[ARM_VFP_FPSID] = 0x410120b4; - env->vfp.xregs[ARM_VFP_MVFR0] = 0x11111111; - env->vfp.xregs[ARM_VFP_MVFR1] = 0x00000000; - memcpy(env->cp15.c0_c1, arm1136_cp15_c0_c1, 8 * sizeof(uint32_t)); - memcpy(env->cp15.c0_c1, arm1136_cp15_c0_c2, 8 * sizeof(uint32_t)); - env->cp15.c0_cachetype = 0x1dd20d2; - break; - case ARM_CPUID_ARM11MPCORE: - set_feature(env, ARM_FEATURE_V6); - set_feature(env, ARM_FEATURE_V6K); - set_feature(env, ARM_FEATURE_VFP); - set_feature(env, ARM_FEATURE_AUXCR); - env->vfp.xregs[ARM_VFP_FPSID] = 0x410120b4; - env->vfp.xregs[ARM_VFP_MVFR0] = 0x11111111; - env->vfp.xregs[ARM_VFP_MVFR1] = 0x00000000; - memcpy(env->cp15.c0_c1, mpcore_cp15_c0_c1, 8 * sizeof(uint32_t)); - memcpy(env->cp15.c0_c1, mpcore_cp15_c0_c2, 8 * sizeof(uint32_t)); - env->cp15.c0_cachetype = 0x1dd20d2; - break; - case ARM_CPUID_CORTEXA8: - set_feature(env, ARM_FEATURE_V6); - set_feature(env, ARM_FEATURE_V6K); - set_feature(env, ARM_FEATURE_V7); - set_feature(env, ARM_FEATURE_AUXCR); - set_feature(env, ARM_FEATURE_THUMB2); - set_feature(env, ARM_FEATURE_VFP); - set_feature(env, ARM_FEATURE_VFP3); - set_feature(env, ARM_FEATURE_NEON); - env->vfp.xregs[ARM_VFP_FPSID] = 0x410330c0; - env->vfp.xregs[ARM_VFP_MVFR0] = 0x11110222; - env->vfp.xregs[ARM_VFP_MVFR1] = 0x00011100; - memcpy(env->cp15.c0_c1, cortexa8_cp15_c0_c1, 8 * sizeof(uint32_t)); - memcpy(env->cp15.c0_c1, cortexa8_cp15_c0_c2, 8 * sizeof(uint32_t)); - env->cp15.c0_cachetype = 0x1dd20d2; - break; - case ARM_CPUID_CORTEXM3: - set_feature(env, ARM_FEATURE_V6); - set_feature(env, ARM_FEATURE_THUMB2); - set_feature(env, ARM_FEATURE_V7); - set_feature(env, ARM_FEATURE_M); - set_feature(env, ARM_FEATURE_DIV); - break; - case ARM_CPUID_ANY: /* For userspace emulation. */ - set_feature(env, ARM_FEATURE_V6); - set_feature(env, ARM_FEATURE_V6K); - set_feature(env, ARM_FEATURE_V7); - set_feature(env, ARM_FEATURE_THUMB2); - set_feature(env, ARM_FEATURE_VFP); - set_feature(env, ARM_FEATURE_VFP3); - set_feature(env, ARM_FEATURE_NEON); - set_feature(env, ARM_FEATURE_DIV); - break; - case ARM_CPUID_TI915T: - case ARM_CPUID_TI925T: - set_feature(env, ARM_FEATURE_OMAPCP); - env->cp15.c0_cpuid = ARM_CPUID_TI925T; /* Depends on wiring. */ - env->cp15.c0_cachetype = 0x5109149; - env->cp15.c1_sys = 0x00000070; - env->cp15.c15_i_max = 0x000; - env->cp15.c15_i_min = 0xff0; - break; - case ARM_CPUID_PXA250: - case ARM_CPUID_PXA255: - case ARM_CPUID_PXA260: - case ARM_CPUID_PXA261: - case ARM_CPUID_PXA262: - set_feature(env, ARM_FEATURE_XSCALE); - /* JTAG_ID is ((id << 28) | 0x09265013) */ - env->cp15.c0_cachetype = 0xd172172; - env->cp15.c1_sys = 0x00000078; - break; - case ARM_CPUID_PXA270_A0: - case ARM_CPUID_PXA270_A1: - case ARM_CPUID_PXA270_B0: - case ARM_CPUID_PXA270_B1: - case ARM_CPUID_PXA270_C0: - case ARM_CPUID_PXA270_C5: - set_feature(env, ARM_FEATURE_XSCALE); - /* JTAG_ID is ((id << 28) | 0x09265013) */ - set_feature(env, ARM_FEATURE_IWMMXT); - env->iwmmxt.cregs[ARM_IWMMXT_wCID] = 0x69051000 | 'Q'; - env->cp15.c0_cachetype = 0xd172172; - env->cp15.c1_sys = 0x00000078; - break; - default: - cpu_abort(env, "Bad CPU ID: %x\n", id); - break; - } -} - -void cpu_reset(CPUARMState *env) -{ - uint32_t id; - id = env->cp15.c0_cpuid; - memset(env, 0, offsetof(CPUARMState, breakpoints)); - if (id) - cpu_reset_model_id(env, id); -#if defined (CONFIG_USER_ONLY) - env->uncached_cpsr = ARM_CPU_MODE_USR; - env->vfp.xregs[ARM_VFP_FPEXC] = 1 << 30; -#else - /* SVC mode with interrupts disabled. */ - env->uncached_cpsr = ARM_CPU_MODE_SVC | CPSR_A | CPSR_F | CPSR_I; - /* On ARMv7-M the CPSR_I is the value of the PRIMASK register, and is - clear at reset. */ - if (IS_M(env)) - env->uncached_cpsr &= ~CPSR_I; - env->vfp.xregs[ARM_VFP_FPEXC] = 0; -#endif - env->regs[15] = 0; - tlb_flush(env, 1); -} - -CPUARMState *cpu_arm_init(const char *cpu_model) -{ - CPUARMState *env; - uint32_t id; - - id = cpu_arm_find_by_name(cpu_model); - if (id == 0) - return NULL; - env = qemu_mallocz(sizeof(CPUARMState)); - if (!env) - return NULL; - cpu_exec_init(env); - env->cpu_model_str = cpu_model; - env->cp15.c0_cpuid = id; - cpu_reset(env); - return env; -} - -struct arm_cpu_t { - uint32_t id; - const char *name; -}; - -static const struct arm_cpu_t arm_cpu_names[] = { - { ARM_CPUID_ARM926, "arm926"}, - { ARM_CPUID_ARM946, "arm946"}, - { ARM_CPUID_ARM1026, "arm1026"}, - { ARM_CPUID_ARM1136, "arm1136"}, - { ARM_CPUID_ARM11MPCORE, "arm11mpcore"}, - { ARM_CPUID_CORTEXM3, "cortex-m3"}, - { ARM_CPUID_CORTEXA8, "cortex-a8"}, - { ARM_CPUID_TI925T, "ti925t" }, - { ARM_CPUID_PXA250, "pxa250" }, - { ARM_CPUID_PXA255, "pxa255" }, - { ARM_CPUID_PXA260, "pxa260" }, - { ARM_CPUID_PXA261, "pxa261" }, - { ARM_CPUID_PXA262, "pxa262" }, - { ARM_CPUID_PXA270, "pxa270" }, - { ARM_CPUID_PXA270_A0, "pxa270-a0" }, - { ARM_CPUID_PXA270_A1, "pxa270-a1" }, - { ARM_CPUID_PXA270_B0, "pxa270-b0" }, - { ARM_CPUID_PXA270_B1, "pxa270-b1" }, - { ARM_CPUID_PXA270_C0, "pxa270-c0" }, - { ARM_CPUID_PXA270_C5, "pxa270-c5" }, - { ARM_CPUID_ANY, "mc1322x" }, - { ARM_CPUID_ANY, "any"}, - { 0, NULL} -}; - -void arm_cpu_list(FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...)) -{ - int i; - - (*cpu_fprintf)(f, "Available CPUs:\n"); - for (i = 0; arm_cpu_names[i].name; i++) { - (*cpu_fprintf)(f, " %s\n", arm_cpu_names[i].name); - } -} - -/* return 0 if not found */ -static uint32_t cpu_arm_find_by_name(const char *name) -{ - int i; - uint32_t id; - - id = 0; - for (i = 0; arm_cpu_names[i].name; i++) { - if (strcmp(name, arm_cpu_names[i].name) == 0) { - id = arm_cpu_names[i].id; - break; - } - } - return id; -} - -void cpu_arm_close(CPUARMState *env) -{ - free(env); -} - -/* Polynomial multiplication is like integer multiplcation except the - partial products are XORed, not added. */ -uint32_t helper_neon_mul_p8(uint32_t op1, uint32_t op2) -{ - uint32_t mask; - uint32_t result; - result = 0; - while (op1) { - mask = 0; - if (op1 & 1) - mask |= 0xff; - if (op1 & (1 << 8)) - mask |= (0xff << 8); - if (op1 & (1 << 16)) - mask |= (0xff << 16); - if (op1 & (1 << 24)) - mask |= (0xff << 24); - result ^= op2 & mask; - op1 = (op1 >> 1) & 0x7f7f7f7f; - op2 = (op2 << 1) & 0xfefefefe; - } - return result; -} - -uint32_t cpsr_read(CPUARMState *env) -{ - int ZF; - ZF = (env->NZF == 0); - return env->uncached_cpsr | (env->NZF & 0x80000000) | (ZF << 30) | - (env->CF << 29) | ((env->VF & 0x80000000) >> 3) | (env->QF << 27) - | (env->thumb << 5) | ((env->condexec_bits & 3) << 25) - | ((env->condexec_bits & 0xfc) << 8) - | (env->GE << 16); -} - -void cpsr_write(CPUARMState *env, uint32_t val, uint32_t mask) -{ - /* NOTE: N = 1 and Z = 1 cannot be stored currently */ - if (mask & CPSR_NZCV) { - env->NZF = (val & 0xc0000000) ^ 0x40000000; - env->CF = (val >> 29) & 1; - env->VF = (val << 3) & 0x80000000; - } - if (mask & CPSR_Q) - env->QF = ((val & CPSR_Q) != 0); - if (mask & CPSR_T) - env->thumb = ((val & CPSR_T) != 0); - if (mask & CPSR_IT_0_1) { - env->condexec_bits &= ~3; - env->condexec_bits |= (val >> 25) & 3; - } - if (mask & CPSR_IT_2_7) { - env->condexec_bits &= 3; - env->condexec_bits |= (val >> 8) & 0xfc; - } - if (mask & CPSR_GE) { - env->GE = (val >> 16) & 0xf; - } - - if ((env->uncached_cpsr ^ val) & mask & CPSR_M) { - switch_mode(env, val & CPSR_M); - } - mask &= ~CACHED_CPSR_BITS; - env->uncached_cpsr = (env->uncached_cpsr & ~mask) | (val & mask); -} - -#if defined(CONFIG_USER_ONLY) - -void do_interrupt (CPUState *env) -{ - env->exception_index = -1; -} - -/* Structure used to record exclusive memory locations. */ -typedef struct mmon_state { - struct mmon_state *next; - CPUARMState *cpu_env; - uint32_t addr; -} mmon_state; - -/* Chain of current locks. */ -static mmon_state* mmon_head = NULL; - -int cpu_arm_handle_mmu_fault (CPUState *env, target_ulong address, int rw, - int mmu_idx, int is_softmmu) -{ - if (rw == 2) { - env->exception_index = EXCP_PREFETCH_ABORT; - env->cp15.c6_insn = address; - } else { - env->exception_index = EXCP_DATA_ABORT; - env->cp15.c6_data = address; - } - return 1; -} - -static void allocate_mmon_state(CPUState *env) -{ - env->mmon_entry = malloc(sizeof (mmon_state)); - if (!env->mmon_entry) - abort(); - memset (env->mmon_entry, 0, sizeof (mmon_state)); - env->mmon_entry->cpu_env = env; - mmon_head = env->mmon_entry; -} - -/* Flush any monitor locks for the specified address. */ -static void flush_mmon(uint32_t addr) -{ - mmon_state *mon; - - for (mon = mmon_head; mon; mon = mon->next) - { - if (mon->addr != addr) - continue; - - mon->addr = 0; - break; - } -} - -/* Mark an address for exclusive access. */ -void helper_mark_exclusive(CPUState *env, uint32_t addr) -{ - if (!env->mmon_entry) - allocate_mmon_state(env); - /* Clear any previous locks. */ - flush_mmon(addr); - env->mmon_entry->addr = addr; -} - -/* Test if an exclusive address is still exclusive. Returns zero - if the address is still exclusive. */ -int helper_test_exclusive(CPUState *env, uint32_t addr) -{ - int res; - - if (!env->mmon_entry) - return 1; - if (env->mmon_entry->addr == addr) - res = 0; - else - res = 1; - flush_mmon(addr); - return res; -} - -void helper_clrex(CPUState *env) -{ - if (!(env->mmon_entry && env->mmon_entry->addr)) - return; - flush_mmon(env->mmon_entry->addr); -} - -target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr) -{ - return addr; -} - -/* These should probably raise undefined insn exceptions. */ -void helper_set_cp(CPUState *env, uint32_t insn, uint32_t val) -{ - int op1 = (insn >> 8) & 0xf; - cpu_abort(env, "cp%i insn %08x\n", op1, insn); - return; -} - -uint32_t helper_get_cp(CPUState *env, uint32_t insn) -{ - int op1 = (insn >> 8) & 0xf; - cpu_abort(env, "cp%i insn %08x\n", op1, insn); - return 0; -} - -void helper_set_cp15(CPUState *env, uint32_t insn, uint32_t val) -{ - cpu_abort(env, "cp15 insn %08x\n", insn); -} - -uint32_t helper_get_cp15(CPUState *env, uint32_t insn) -{ - cpu_abort(env, "cp15 insn %08x\n", insn); - return 0; -} - -/* These should probably raise undefined insn exceptions. */ -void helper_v7m_msr(CPUState *env, int reg, uint32_t val) -{ - cpu_abort(env, "v7m_mrs %d\n", reg); -} - -uint32_t helper_v7m_mrs(CPUState *env, int reg) -{ - cpu_abort(env, "v7m_mrs %d\n", reg); - return 0; -} - -void switch_mode(CPUState *env, int mode) -{ - if (mode != ARM_CPU_MODE_USR) - cpu_abort(env, "Tried to switch out of user mode\n"); -} - -void helper_set_r13_banked(CPUState *env, int mode, uint32_t val) -{ - cpu_abort(env, "banked r13 write\n"); -} - -uint32_t helper_get_r13_banked(CPUState *env, int mode) -{ - cpu_abort(env, "banked r13 read\n"); - return 0; -} - -#else - -extern int semihosting_enabled; - -/* Map CPU modes onto saved register banks. */ -static inline int bank_number (int mode) -{ - switch (mode) { - case ARM_CPU_MODE_USR: - case ARM_CPU_MODE_SYS: - return 0; - case ARM_CPU_MODE_SVC: - return 1; - case ARM_CPU_MODE_ABT: - return 2; - case ARM_CPU_MODE_UND: - return 3; - case ARM_CPU_MODE_IRQ: - return 4; - case ARM_CPU_MODE_FIQ: - return 5; - } - cpu_abort(cpu_single_env, "Bad mode %x\n", mode); - return -1; -} - -void switch_mode(CPUState *env, int mode) -{ - int old_mode; - int i; - - old_mode = env->uncached_cpsr & CPSR_M; - if (mode == old_mode) - return; - - if (old_mode == ARM_CPU_MODE_FIQ) { - memcpy (env->fiq_regs, env->regs + 8, 5 * sizeof(uint32_t)); - memcpy (env->regs + 8, env->usr_regs, 5 * sizeof(uint32_t)); - } else if (mode == ARM_CPU_MODE_FIQ) { - memcpy (env->usr_regs, env->regs + 8, 5 * sizeof(uint32_t)); - memcpy (env->regs + 8, env->fiq_regs, 5 * sizeof(uint32_t)); - } - - i = bank_number(old_mode); - env->banked_r13[i] = env->regs[13]; - env->banked_r14[i] = env->regs[14]; - env->banked_spsr[i] = env->spsr; - - i = bank_number(mode); - env->regs[13] = env->banked_r13[i]; - env->regs[14] = env->banked_r14[i]; - env->spsr = env->banked_spsr[i]; -} - -static void v7m_push(CPUARMState *env, uint32_t val) -{ - env->regs[13] -= 4; - stl_phys(env->regs[13], val); -} - -static uint32_t v7m_pop(CPUARMState *env) -{ - uint32_t val; - val = ldl_phys(env->regs[13]); - env->regs[13] += 4; - return val; -} - -/* Switch to V7M main or process stack pointer. */ -static void switch_v7m_sp(CPUARMState *env, int process) -{ - uint32_t tmp; - if (env->v7m.current_sp != process) { - tmp = env->v7m.other_sp; - env->v7m.other_sp = env->regs[13]; - env->regs[13] = tmp; - env->v7m.current_sp = process; - } -} - -static void do_v7m_exception_exit(CPUARMState *env) -{ - uint32_t type; - uint32_t xpsr; - - type = env->regs[15]; - if (env->v7m.exception != 0) - armv7m_nvic_complete_irq(env->v7m.nvic, env->v7m.exception); - - /* Switch to the target stack. */ - switch_v7m_sp(env, (type & 4) != 0); - /* Pop registers. */ - env->regs[0] = v7m_pop(env); - env->regs[1] = v7m_pop(env); - env->regs[2] = v7m_pop(env); - env->regs[3] = v7m_pop(env); - env->regs[12] = v7m_pop(env); - env->regs[14] = v7m_pop(env); - env->regs[15] = v7m_pop(env); - xpsr = v7m_pop(env); - xpsr_write(env, xpsr, 0xfffffdff); - /* Undo stack alignment. */ - if (xpsr & 0x200) - env->regs[13] |= 4; - /* ??? The exception return type specifies Thread/Handler mode. However - this is also implied by the xPSR value. Not sure what to do - if there is a mismatch. */ - /* ??? Likewise for mismatches between the CONTROL register and the stack - pointer. */ -} - -void do_interrupt_v7m(CPUARMState *env) -{ - uint32_t xpsr = xpsr_read(env); - uint32_t lr; - uint32_t addr; - - lr = 0xfffffff1; - if (env->v7m.current_sp) - lr |= 4; - if (env->v7m.exception == 0) - lr |= 8; - - /* For exceptions we just mark as pending on the NVIC, and let that - handle it. */ - /* TODO: Need to escalate if the current priority is higher than the - one we're raising. */ - switch (env->exception_index) { - case EXCP_UDEF: - armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_USAGE); - return; - case EXCP_SWI: - env->regs[15] += 2; - armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_SVC); - return; - case EXCP_PREFETCH_ABORT: - case EXCP_DATA_ABORT: - armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_MEM); - return; - case EXCP_BKPT: - if (semihosting_enabled) { - int nr; - nr = lduw_code(env->regs[15]) & 0xff; - if (nr == 0xab) { - env->regs[15] += 2; - env->regs[0] = do_arm_semihosting(env); - return; - } - } - armv7m_nvic_set_pending(env->v7m.nvic, ARMV7M_EXCP_DEBUG); - return; - case EXCP_IRQ: - env->v7m.exception = armv7m_nvic_acknowledge_irq(env->v7m.nvic); - break; - case EXCP_EXCEPTION_EXIT: - do_v7m_exception_exit(env); - return; - default: - cpu_abort(env, "Unhandled exception 0x%x\n", env->exception_index); - return; /* Never happens. Keep compiler happy. */ - } - - /* Align stack pointer. */ - /* ??? Should only do this if Configuration Control Register - STACKALIGN bit is set. */ - if (env->regs[13] & 4) { - env->regs[13] += 4; - xpsr |= 0x200; - } - /* Switch to the hander mode. */ - v7m_push(env, xpsr); - v7m_push(env, env->regs[15]); - v7m_push(env, env->regs[14]); - v7m_push(env, env->regs[12]); - v7m_push(env, env->regs[3]); - v7m_push(env, env->regs[2]); - v7m_push(env, env->regs[1]); - v7m_push(env, env->regs[0]); - switch_v7m_sp(env, 0); - env->uncached_cpsr &= ~CPSR_IT; - env->regs[14] = lr; - addr = ldl_phys(env->v7m.vecbase + env->v7m.exception * 4); - env->regs[15] = addr & 0xfffffffe; - env->thumb = addr & 1; -} - -/* Handle a CPU exception. */ -void do_interrupt(CPUARMState *env) -{ - uint32_t addr; - uint32_t mask; - int new_mode; - uint32_t offset; - - if (IS_M(env)) { - do_interrupt_v7m(env); - return; - } - /* TODO: Vectored interrupt controller. */ - switch (env->exception_index) { - case EXCP_UDEF: - new_mode = ARM_CPU_MODE_UND; - addr = 0x04; - mask = CPSR_I; - if (env->thumb) - offset = 2; - else - offset = 4; - break; - case EXCP_SWI: - if (semihosting_enabled) { - /* Check for semihosting interrupt. */ - if (env->thumb) { - mask = lduw_code(env->regs[15] - 2) & 0xff; - } else { - mask = ldl_code(env->regs[15] - 4) & 0xffffff; - } - /* Only intercept calls from privileged modes, to provide some - semblance of security. */ - if (((mask == 0x123456 && !env->thumb) - || (mask == 0xab && env->thumb)) - && (env->uncached_cpsr & CPSR_M) != ARM_CPU_MODE_USR) { - env->regs[0] = do_arm_semihosting(env); - return; - } - } - new_mode = ARM_CPU_MODE_SVC; - addr = 0x08; - mask = CPSR_I; - /* The PC already points to the next instructon. */ - offset = 0; - break; - case EXCP_BKPT: - /* See if this is a semihosting syscall. */ - if (env->thumb && semihosting_enabled) { - mask = lduw_code(env->regs[15]) & 0xff; - if (mask == 0xab - && (env->uncached_cpsr & CPSR_M) != ARM_CPU_MODE_USR) { - env->regs[15] += 2; - env->regs[0] = do_arm_semihosting(env); - return; - } - } - /* Fall through to prefetch abort. */ - case EXCP_PREFETCH_ABORT: - new_mode = ARM_CPU_MODE_ABT; - addr = 0x0c; - mask = CPSR_A | CPSR_I; - offset = 4; - break; - case EXCP_DATA_ABORT: - new_mode = ARM_CPU_MODE_ABT; - addr = 0x10; - mask = CPSR_A | CPSR_I; - offset = 8; - break; - case EXCP_IRQ: - new_mode = ARM_CPU_MODE_IRQ; - addr = 0x18; - /* Disable IRQ and imprecise data aborts. */ - mask = CPSR_A | CPSR_I; - offset = 4; - break; - case EXCP_FIQ: - new_mode = ARM_CPU_MODE_FIQ; - addr = 0x1c; - /* Disable FIQ, IRQ and imprecise data aborts. */ - mask = CPSR_A | CPSR_I | CPSR_F; - offset = 4; - break; - default: - cpu_abort(env, "Unhandled exception 0x%x\n", env->exception_index); - return; /* Never happens. Keep compiler happy. */ - } - /* High vectors. */ - if (env->cp15.c1_sys & (1 << 13)) { - addr += 0xffff0000; - } - switch_mode (env, new_mode); - env->spsr = cpsr_read(env); - /* Clear IT bits. */ - env->condexec_bits = 0; - /* Switch to the new mode, and switch to Arm mode. */ - /* ??? Thumb interrupt handlers not implemented. */ - env->uncached_cpsr = (env->uncached_cpsr & ~CPSR_M) | new_mode; - env->uncached_cpsr |= mask; - env->thumb = 0; - env->regs[14] = env->regs[15] + offset; - env->regs[15] = addr; - env->interrupt_request |= CPU_INTERRUPT_EXITTB; -} - -/* Check section/page access permissions. - Returns the page protection flags, or zero if the access is not - permitted. */ -static inline int check_ap(CPUState *env, int ap, int domain, int access_type, - int is_user) -{ - int prot_ro; - - if (domain == 3) - return PAGE_READ | PAGE_WRITE; - - if (access_type == 1) - prot_ro = 0; - else - prot_ro = PAGE_READ; - - switch (ap) { - case 0: - if (access_type == 1) - return 0; - switch ((env->cp15.c1_sys >> 8) & 3) { - case 1: - return is_user ? 0 : PAGE_READ; - case 2: - return PAGE_READ; - default: - return 0; - } - case 1: - return is_user ? 0 : PAGE_READ | PAGE_WRITE; - case 2: - if (is_user) - return prot_ro; - else - return PAGE_READ | PAGE_WRITE; - case 3: - return PAGE_READ | PAGE_WRITE; - case 4: case 7: /* Reserved. */ - return 0; - case 5: - return is_user ? 0 : prot_ro; - case 6: - return prot_ro; - default: - abort(); - } -} - -static int get_phys_addr_v5(CPUState *env, uint32_t address, int access_type, - int is_user, uint32_t *phys_ptr, int *prot) -{ - int code; - uint32_t table; - uint32_t desc; - int type; - int ap; - int domain; - uint32_t phys_addr; - - /* Pagetable walk. */ - /* Lookup l1 descriptor. */ - if (address & env->cp15.c2_mask) - table = env->cp15.c2_base1; - else - table = env->cp15.c2_base0; - table = (table & 0xffffc000) | ((address >> 18) & 0x3ffc); - desc = ldl_phys(table); - type = (desc & 3); - domain = (env->cp15.c3 >> ((desc >> 4) & 0x1e)) & 3; - if (type == 0) { - /* Secton translation fault. */ - code = 5; - goto do_fault; - } - if (domain == 0 || domain == 2) { - if (type == 2) - code = 9; /* Section domain fault. */ - else - code = 11; /* Page domain fault. */ - goto do_fault; - } - if (type == 2) { - /* 1Mb section. */ - phys_addr = (desc & 0xfff00000) | (address & 0x000fffff); - ap = (desc >> 10) & 3; - code = 13; - } else { - /* Lookup l2 entry. */ - if (type == 1) { - /* Coarse pagetable. */ - table = (desc & 0xfffffc00) | ((address >> 10) & 0x3fc); - } else { - /* Fine pagetable. */ - table = (desc & 0xfffff000) | ((address >> 8) & 0xffc); - } - desc = ldl_phys(table); - switch (desc & 3) { - case 0: /* Page translation fault. */ - code = 7; - goto do_fault; - case 1: /* 64k page. */ - phys_addr = (desc & 0xffff0000) | (address & 0xffff); - ap = (desc >> (4 + ((address >> 13) & 6))) & 3; - break; - case 2: /* 4k page. */ - phys_addr = (desc & 0xfffff000) | (address & 0xfff); - ap = (desc >> (4 + ((address >> 13) & 6))) & 3; - break; - case 3: /* 1k page. */ - if (type == 1) { - if (arm_feature(env, ARM_FEATURE_XSCALE)) { - phys_addr = (desc & 0xfffff000) | (address & 0xfff); - } else { - /* Page translation fault. */ - code = 7; - goto do_fault; - } - } else { - phys_addr = (desc & 0xfffffc00) | (address & 0x3ff); - } - ap = (desc >> 4) & 3; - break; - default: - /* Never happens, but compiler isn't smart enough to tell. */ - abort(); - } - code = 15; - } - *prot = check_ap(env, ap, domain, access_type, is_user); - if (!*prot) { - /* Access permission fault. */ - goto do_fault; - } - *phys_ptr = phys_addr; - return 0; -do_fault: - return code | (domain << 4); -} - -static int get_phys_addr_v6(CPUState *env, uint32_t address, int access_type, - int is_user, uint32_t *phys_ptr, int *prot) -{ - int code; - uint32_t table; - uint32_t desc; - uint32_t xn; - int type; - int ap; - int domain; - uint32_t phys_addr; - - /* Pagetable walk. */ - /* Lookup l1 descriptor. */ - if (address & env->cp15.c2_mask) - table = env->cp15.c2_base1; - else - table = env->cp15.c2_base0; - table = (table & 0xffffc000) | ((address >> 18) & 0x3ffc); - desc = ldl_phys(table); - type = (desc & 3); - if (type == 0) { - /* Secton translation fault. */ - code = 5; - domain = 0; - goto do_fault; - } else if (type == 2 && (desc & (1 << 18))) { - /* Supersection. */ - domain = 0; - } else { - /* Section or page. */ - domain = (desc >> 4) & 0x1e; - } - domain = (env->cp15.c3 >> domain) & 3; - if (domain == 0 || domain == 2) { - if (type == 2) - code = 9; /* Section domain fault. */ - else - code = 11; /* Page domain fault. */ - goto do_fault; - } - if (type == 2) { - if (desc & (1 << 18)) { - /* Supersection. */ - phys_addr = (desc & 0xff000000) | (address & 0x00ffffff); - } else { - /* Section. */ - phys_addr = (desc & 0xfff00000) | (address & 0x000fffff); - } - ap = ((desc >> 10) & 3) | ((desc >> 13) & 4); - xn = desc & (1 << 4); - code = 13; - } else { - /* Lookup l2 entry. */ - table = (desc & 0xfffffc00) | ((address >> 10) & 0x3fc); - desc = ldl_phys(table); - ap = ((desc >> 4) & 3) | ((desc >> 7) & 4); - switch (desc & 3) { - case 0: /* Page translation fault. */ - code = 7; - goto do_fault; - case 1: /* 64k page. */ - phys_addr = (desc & 0xffff0000) | (address & 0xffff); - xn = desc & (1 << 15); - break; - case 2: case 3: /* 4k page. */ - phys_addr = (desc & 0xfffff000) | (address & 0xfff); - xn = desc & 1; - break; - default: - /* Never happens, but compiler isn't smart enough to tell. */ - abort(); - } - code = 15; - } - if (xn && access_type == 2) - goto do_fault; - - *prot = check_ap(env, ap, domain, access_type, is_user); - if (!*prot) { - /* Access permission fault. */ - goto do_fault; - } - *phys_ptr = phys_addr; - return 0; -do_fault: - return code | (domain << 4); -} - -static int get_phys_addr_mpu(CPUState *env, uint32_t address, int access_type, - int is_user, uint32_t *phys_ptr, int *prot) -{ - int n; - uint32_t mask; - uint32_t base; - - *phys_ptr = address; - for (n = 7; n >= 0; n--) { - base = env->cp15.c6_region[n]; - if ((base & 1) == 0) - continue; - mask = 1 << ((base >> 1) & 0x1f); - /* Keep this shift separate from the above to avoid an - (undefined) << 32. */ - mask = (mask << 1) - 1; - if (((base ^ address) & ~mask) == 0) - break; - } - if (n < 0) - return 2; - - if (access_type == 2) { - mask = env->cp15.c5_insn; - } else { - mask = env->cp15.c5_data; - } - mask = (mask >> (n * 4)) & 0xf; - switch (mask) { - case 0: - return 1; - case 1: - if (is_user) - return 1; - *prot = PAGE_READ | PAGE_WRITE; - break; - case 2: - *prot = PAGE_READ; - if (!is_user) - *prot |= PAGE_WRITE; - break; - case 3: - *prot = PAGE_READ | PAGE_WRITE; - break; - case 5: - if (is_user) - return 1; - *prot = PAGE_READ; - break; - case 6: - *prot = PAGE_READ; - break; - default: - /* Bad permission. */ - return 1; - } - return 0; -} - -static inline int get_phys_addr(CPUState *env, uint32_t address, - int access_type, int is_user, - uint32_t *phys_ptr, int *prot) -{ - /* Fast Context Switch Extension. */ - if (address < 0x02000000) - address += env->cp15.c13_fcse; - - if ((env->cp15.c1_sys & 1) == 0) { - /* MMU/MPU disabled. */ - *phys_ptr = address; - *prot = PAGE_READ | PAGE_WRITE; - return 0; - } else if (arm_feature(env, ARM_FEATURE_MPU)) { - return get_phys_addr_mpu(env, address, access_type, is_user, phys_ptr, - prot); - } else if (env->cp15.c1_sys & (1 << 23)) { - return get_phys_addr_v6(env, address, access_type, is_user, phys_ptr, - prot); - } else { - return get_phys_addr_v5(env, address, access_type, is_user, phys_ptr, - prot); - } -} - -int cpu_arm_handle_mmu_fault (CPUState *env, target_ulong address, - int access_type, int mmu_idx, int is_softmmu) -{ - uint32_t phys_addr; - int prot; - int ret, is_user; - - is_user = mmu_idx == MMU_USER_IDX; - ret = get_phys_addr(env, address, access_type, is_user, &phys_addr, &prot); - if (ret == 0) { - /* Map a single [sub]page. */ - phys_addr &= ~(uint32_t)0x3ff; - address &= ~(uint32_t)0x3ff; - return tlb_set_page (env, address, phys_addr, prot, mmu_idx, - is_softmmu); - } - - if (access_type == 2) { - env->cp15.c5_insn = ret; - env->cp15.c6_insn = address; - env->exception_index = EXCP_PREFETCH_ABORT; - } else { - env->cp15.c5_data = ret; - if (access_type == 1 && arm_feature(env, ARM_FEATURE_V6)) - env->cp15.c5_data |= (1 << 11); - env->cp15.c6_data = address; - env->exception_index = EXCP_DATA_ABORT; - } - return 1; -} - -target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr) -{ - uint32_t phys_addr; - int prot; - int ret; - - ret = get_phys_addr(env, addr, 0, 0, &phys_addr, &prot); - - if (ret != 0) - return -1; - - return phys_addr; -} - -/* Not really implemented. Need to figure out a sane way of doing this. - Maybe add generic watchpoint support and use that. */ - -void helper_mark_exclusive(CPUState *env, uint32_t addr) -{ - env->mmon_addr = addr; -} - -int helper_test_exclusive(CPUState *env, uint32_t addr) -{ - return (env->mmon_addr != addr); -} - -void helper_clrex(CPUState *env) -{ - env->mmon_addr = -1; -} - -void helper_set_cp(CPUState *env, uint32_t insn, uint32_t val) -{ - int cp_num = (insn >> 8) & 0xf; - int cp_info = (insn >> 5) & 7; - int src = (insn >> 16) & 0xf; - int operand = insn & 0xf; - - if (env->cp[cp_num].cp_write) - env->cp[cp_num].cp_write(env->cp[cp_num].opaque, - cp_info, src, operand, val); -} - -uint32_t helper_get_cp(CPUState *env, uint32_t insn) -{ - int cp_num = (insn >> 8) & 0xf; - int cp_info = (insn >> 5) & 7; - int dest = (insn >> 16) & 0xf; - int operand = insn & 0xf; - - if (env->cp[cp_num].cp_read) - return env->cp[cp_num].cp_read(env->cp[cp_num].opaque, - cp_info, dest, operand); - return 0; -} - -/* Return basic MPU access permission bits. */ -static uint32_t simple_mpu_ap_bits(uint32_t val) -{ - uint32_t ret; - uint32_t mask; - int i; - ret = 0; - mask = 3; - for (i = 0; i < 16; i += 2) { - ret |= (val >> i) & mask; - mask <<= 2; - } - return ret; -} - -/* Pad basic MPU access permission bits to extended format. */ -static uint32_t extended_mpu_ap_bits(uint32_t val) -{ - uint32_t ret; - uint32_t mask; - int i; - ret = 0; - mask = 3; - for (i = 0; i < 16; i += 2) { - ret |= (val & mask) << i; - mask <<= 2; - } - return ret; -} - -void helper_set_cp15(CPUState *env, uint32_t insn, uint32_t val) -{ - int op1; - int op2; - int crm; - - op1 = (insn >> 21) & 7; - op2 = (insn >> 5) & 7; - crm = insn & 0xf; - switch ((insn >> 16) & 0xf) { - case 0: - if (((insn >> 21) & 7) == 2) { - /* ??? Select cache level. Ignore. */ - return; - } - /* ID codes. */ - if (arm_feature(env, ARM_FEATURE_XSCALE)) - break; - if (arm_feature(env, ARM_FEATURE_OMAPCP)) - break; - goto bad_reg; - case 1: /* System configuration. */ - if (arm_feature(env, ARM_FEATURE_OMAPCP)) - op2 = 0; - switch (op2) { - case 0: - if (!arm_feature(env, ARM_FEATURE_XSCALE) || crm == 0) - env->cp15.c1_sys = val; - /* ??? Lots of these bits are not implemented. */ - /* This may enable/disable the MMU, so do a TLB flush. */ - tlb_flush(env, 1); - break; - case 1: /* Auxiliary cotrol register. */ - if (arm_feature(env, ARM_FEATURE_XSCALE)) { - env->cp15.c1_xscaleauxcr = val; - break; - } - /* Not implemented. */ - break; - case 2: - if (arm_feature(env, ARM_FEATURE_XSCALE)) - goto bad_reg; - env->cp15.c1_coproc = val; - /* ??? Is this safe when called from within a TB? */ - tb_flush(env); - break; - default: - goto bad_reg; - } - break; - case 2: /* MMU Page table control / MPU cache control. */ - if (arm_feature(env, ARM_FEATURE_MPU)) { - switch (op2) { - case 0: - env->cp15.c2_data = val; - break; - case 1: - env->cp15.c2_insn = val; - break; - default: - goto bad_reg; - } - } else { - switch (op2) { - case 0: - env->cp15.c2_base0 = val; - break; - case 1: - env->cp15.c2_base1 = val; - break; - case 2: - env->cp15.c2_mask = ~(((uint32_t)0xffffffffu) >> val); - break; - default: - goto bad_reg; - } - } - break; - case 3: /* MMU Domain access control / MPU write buffer control. */ - env->cp15.c3 = val; - tlb_flush(env, 1); /* Flush TLB as domain not tracked in TLB */ - break; - case 4: /* Reserved. */ - goto bad_reg; - case 5: /* MMU Fault status / MPU access permission. */ - if (arm_feature(env, ARM_FEATURE_OMAPCP)) - op2 = 0; - switch (op2) { - case 0: - if (arm_feature(env, ARM_FEATURE_MPU)) - val = extended_mpu_ap_bits(val); - env->cp15.c5_data = val; - break; - case 1: - if (arm_feature(env, ARM_FEATURE_MPU)) - val = extended_mpu_ap_bits(val); - env->cp15.c5_insn = val; - break; - case 2: - if (!arm_feature(env, ARM_FEATURE_MPU)) - goto bad_reg; - env->cp15.c5_data = val; - break; - case 3: - if (!arm_feature(env, ARM_FEATURE_MPU)) - goto bad_reg; - env->cp15.c5_insn = val; - break; - default: - goto bad_reg; - } - break; - case 6: /* MMU Fault address / MPU base/size. */ - if (arm_feature(env, ARM_FEATURE_MPU)) { - if (crm >= 8) - goto bad_reg; - env->cp15.c6_region[crm] = val; - } else { - if (arm_feature(env, ARM_FEATURE_OMAPCP)) - op2 = 0; - switch (op2) { - case 0: - env->cp15.c6_data = val; - break; - case 1: /* ??? This is WFAR on armv6 */ - case 2: - env->cp15.c6_insn = val; - break; - default: - goto bad_reg; - } - } - break; - case 7: /* Cache control. */ - env->cp15.c15_i_max = 0x000; - env->cp15.c15_i_min = 0xff0; - /* No cache, so nothing to do. */ - /* ??? MPCore has VA to PA translation functions. */ - break; - case 8: /* MMU TLB control. */ - switch (op2) { - case 0: /* Invalidate all. */ - tlb_flush(env, 0); - break; - case 1: /* Invalidate single TLB entry. */ -#if 0 - /* ??? This is wrong for large pages and sections. */ - /* As an ugly hack to make linux work we always flush a 4K - pages. */ - val &= 0xfffff000; - tlb_flush_page(env, val); - tlb_flush_page(env, val + 0x400); - tlb_flush_page(env, val + 0x800); - tlb_flush_page(env, val + 0xc00); -#else - tlb_flush(env, 1); -#endif - break; - case 2: /* Invalidate on ASID. */ - tlb_flush(env, val == 0); - break; - case 3: /* Invalidate single entry on MVA. */ - /* ??? This is like case 1, but ignores ASID. */ - tlb_flush(env, 1); - break; - default: - goto bad_reg; - } - break; - case 9: - if (arm_feature(env, ARM_FEATURE_OMAPCP)) - break; - switch (crm) { - case 0: /* Cache lockdown. */ - switch (op1) { - case 0: /* L1 cache. */ - switch (op2) { - case 0: - env->cp15.c9_data = val; - break; - case 1: - env->cp15.c9_insn = val; - break; - default: - goto bad_reg; - } - break; - case 1: /* L2 cache. */ - /* Ignore writes to L2 lockdown/auxiliary registers. */ - break; - default: - goto bad_reg; - } - break; - case 1: /* TCM memory region registers. */ - /* Not implemented. */ - goto bad_reg; - default: - goto bad_reg; - } - break; - case 10: /* MMU TLB lockdown. */ - /* ??? TLB lockdown not implemented. */ - break; - case 12: /* Reserved. */ - goto bad_reg; - case 13: /* Process ID. */ - switch (op2) { - case 0: - /* Unlike real hardware the qemu TLB uses virtual addresses, - not modified virtual addresses, so this causes a TLB flush. - */ - if (env->cp15.c13_fcse != val) - tlb_flush(env, 1); - env->cp15.c13_fcse = val; - break; - case 1: - /* This changes the ASID, so do a TLB flush. */ - if (env->cp15.c13_context != val - && !arm_feature(env, ARM_FEATURE_MPU)) - tlb_flush(env, 0); - env->cp15.c13_context = val; - break; - case 2: - env->cp15.c13_tls1 = val; - break; - case 3: - env->cp15.c13_tls2 = val; - break; - case 4: - env->cp15.c13_tls3 = val; - break; - default: - goto bad_reg; - } - break; - case 14: /* Reserved. */ - goto bad_reg; - case 15: /* Implementation specific. */ - if (arm_feature(env, ARM_FEATURE_XSCALE)) { - if (op2 == 0 && crm == 1) { - if (env->cp15.c15_cpar != (val & 0x3fff)) { - /* Changes cp0 to cp13 behavior, so needs a TB flush. */ - tb_flush(env); - env->cp15.c15_cpar = val & 0x3fff; - } - break; - } - goto bad_reg; - } - if (arm_feature(env, ARM_FEATURE_OMAPCP)) { - switch (crm) { - case 0: - break; - case 1: /* Set TI925T configuration. */ - env->cp15.c15_ticonfig = val & 0xe7; - env->cp15.c0_cpuid = (val & (1 << 5)) ? /* OS_TYPE bit */ - ARM_CPUID_TI915T : ARM_CPUID_TI925T; - break; - case 2: /* Set I_max. */ - env->cp15.c15_i_max = val; - break; - case 3: /* Set I_min. */ - env->cp15.c15_i_min = val; - break; - case 4: /* Set thread-ID. */ - env->cp15.c15_threadid = val & 0xffff; - break; - case 8: /* Wait-for-interrupt (deprecated). */ - cpu_interrupt(env, CPU_INTERRUPT_HALT); - break; - default: - goto bad_reg; - } - } - break; - } - return; -bad_reg: - /* ??? For debugging only. Should raise illegal instruction exception. */ - cpu_abort(env, "Unimplemented cp15 register write (c%d, c%d, {%d, %d})\n", - (insn >> 16) & 0xf, crm, op1, op2); -} - -uint32_t helper_get_cp15(CPUState *env, uint32_t insn) -{ - int op1; - int op2; - int crm; - - op1 = (insn >> 21) & 7; - op2 = (insn >> 5) & 7; - crm = insn & 0xf; - switch ((insn >> 16) & 0xf) { - case 0: /* ID codes. */ - switch (op1) { - case 0: - switch (crm) { - case 0: - switch (op2) { - case 0: /* Device ID. */ - return env->cp15.c0_cpuid; - case 1: /* Cache Type. */ - return env->cp15.c0_cachetype; - case 2: /* TCM status. */ - return 0; - case 3: /* TLB type register. */ - return 0; /* No lockable TLB entries. */ - case 5: /* CPU ID */ - return env->cpu_index; - default: - goto bad_reg; - } - case 1: - if (!arm_feature(env, ARM_FEATURE_V6)) - goto bad_reg; - return env->cp15.c0_c1[op2]; - case 2: - if (!arm_feature(env, ARM_FEATURE_V6)) - goto bad_reg; - return env->cp15.c0_c2[op2]; - case 3: case 4: case 5: case 6: case 7: - return 0; - default: - goto bad_reg; - } - case 1: - /* These registers aren't documented on arm11 cores. However - Linux looks at them anyway. */ - if (!arm_feature(env, ARM_FEATURE_V6)) - goto bad_reg; - if (crm != 0) - goto bad_reg; - if (arm_feature(env, ARM_FEATURE_XSCALE)) - goto bad_reg; - return 0; - default: - goto bad_reg; - } - case 1: /* System configuration. */ - if (arm_feature(env, ARM_FEATURE_OMAPCP)) - op2 = 0; - switch (op2) { - case 0: /* Control register. */ - return env->cp15.c1_sys; - case 1: /* Auxiliary control register. */ - if (arm_feature(env, ARM_FEATURE_XSCALE)) - return env->cp15.c1_xscaleauxcr; - if (!arm_feature(env, ARM_FEATURE_AUXCR)) - goto bad_reg; - switch (ARM_CPUID(env)) { - case ARM_CPUID_ARM1026: - return 1; - case ARM_CPUID_ARM1136: - return 7; - case ARM_CPUID_ARM11MPCORE: - return 1; - case ARM_CPUID_CORTEXA8: - return 0; - default: - goto bad_reg; - } - case 2: /* Coprocessor access register. */ - if (arm_feature(env, ARM_FEATURE_XSCALE)) - goto bad_reg; - return env->cp15.c1_coproc; - default: - goto bad_reg; - } - case 2: /* MMU Page table control / MPU cache control. */ - if (arm_feature(env, ARM_FEATURE_MPU)) { - switch (op2) { - case 0: - return env->cp15.c2_data; - break; - case 1: - return env->cp15.c2_insn; - break; - default: - goto bad_reg; - } - } else { - switch (op2) { - case 0: - return env->cp15.c2_base0; - case 1: - return env->cp15.c2_base1; - case 2: - { - int n; - uint32_t mask; - n = 0; - mask = env->cp15.c2_mask; - while (mask) { - n++; - mask <<= 1; - } - return n; - } - default: - goto bad_reg; - } - } - case 3: /* MMU Domain access control / MPU write buffer control. */ - return env->cp15.c3; - case 4: /* Reserved. */ - goto bad_reg; - case 5: /* MMU Fault status / MPU access permission. */ - if (arm_feature(env, ARM_FEATURE_OMAPCP)) - op2 = 0; - switch (op2) { - case 0: - if (arm_feature(env, ARM_FEATURE_MPU)) - return simple_mpu_ap_bits(env->cp15.c5_data); - return env->cp15.c5_data; - case 1: - if (arm_feature(env, ARM_FEATURE_MPU)) - return simple_mpu_ap_bits(env->cp15.c5_data); - return env->cp15.c5_insn; - case 2: - if (!arm_feature(env, ARM_FEATURE_MPU)) - goto bad_reg; - return env->cp15.c5_data; - case 3: - if (!arm_feature(env, ARM_FEATURE_MPU)) - goto bad_reg; - return env->cp15.c5_insn; - default: - goto bad_reg; - } - case 6: /* MMU Fault address. */ - if (arm_feature(env, ARM_FEATURE_MPU)) { - if (crm >= 8) - goto bad_reg; - return env->cp15.c6_region[crm]; - } else { - if (arm_feature(env, ARM_FEATURE_OMAPCP)) - op2 = 0; - switch (op2) { - case 0: - return env->cp15.c6_data; - case 1: - if (arm_feature(env, ARM_FEATURE_V6)) { - /* Watchpoint Fault Adrress. */ - return 0; /* Not implemented. */ - } else { - /* Instruction Fault Adrress. */ - /* Arm9 doesn't have an IFAR, but implementing it anyway - shouldn't do any harm. */ - return env->cp15.c6_insn; - } - case 2: - if (arm_feature(env, ARM_FEATURE_V6)) { - /* Instruction Fault Adrress. */ - return env->cp15.c6_insn; - } else { - goto bad_reg; - } - default: - goto bad_reg; - } - } - case 7: /* Cache control. */ - /* ??? This is for test, clean and invaidate operations that set the - Z flag. We can't represent N = Z = 1, so it also clears - the N flag. Oh well. */ - env->NZF = 0; - return 0; - case 8: /* MMU TLB control. */ - goto bad_reg; - case 9: /* Cache lockdown. */ - switch (op1) { - case 0: /* L1 cache. */ - if (arm_feature(env, ARM_FEATURE_OMAPCP)) - return 0; - switch (op2) { - case 0: - return env->cp15.c9_data; - case 1: - return env->cp15.c9_insn; - default: - goto bad_reg; - } - case 1: /* L2 cache */ - if (crm != 0) - goto bad_reg; - /* L2 Lockdown and Auxiliary control. */ - return 0; - default: - goto bad_reg; - } - case 10: /* MMU TLB lockdown. */ - /* ??? TLB lockdown not implemented. */ - return 0; - case 11: /* TCM DMA control. */ - case 12: /* Reserved. */ - goto bad_reg; - case 13: /* Process ID. */ - switch (op2) { - case 0: - return env->cp15.c13_fcse; - case 1: - return env->cp15.c13_context; - case 2: - return env->cp15.c13_tls1; - case 3: - return env->cp15.c13_tls2; - case 4: - return env->cp15.c13_tls3; - default: - goto bad_reg; - } - case 14: /* Reserved. */ - goto bad_reg; - case 15: /* Implementation specific. */ - if (arm_feature(env, ARM_FEATURE_XSCALE)) { - if (op2 == 0 && crm == 1) - return env->cp15.c15_cpar; - - goto bad_reg; - } - if (arm_feature(env, ARM_FEATURE_OMAPCP)) { - switch (crm) { - case 0: - return 0; - case 1: /* Read TI925T configuration. */ - return env->cp15.c15_ticonfig; - case 2: /* Read I_max. */ - return env->cp15.c15_i_max; - case 3: /* Read I_min. */ - return env->cp15.c15_i_min; - case 4: /* Read thread-ID. */ - return env->cp15.c15_threadid; - case 8: /* TI925T_status */ - return 0; - } - goto bad_reg; - } - return 0; - } -bad_reg: - /* ??? For debugging only. Should raise illegal instruction exception. */ - cpu_abort(env, "Unimplemented cp15 register read (c%d, c%d, {%d, %d})\n", - (insn >> 16) & 0xf, crm, op1, op2); - return 0; -} - -void helper_set_r13_banked(CPUState *env, int mode, uint32_t val) -{ - env->banked_r13[bank_number(mode)] = val; -} - -uint32_t helper_get_r13_banked(CPUState *env, int mode) -{ - return env->banked_r13[bank_number(mode)]; -} - -uint32_t helper_v7m_mrs(CPUState *env, int reg) -{ - switch (reg) { - case 0: /* APSR */ - return xpsr_read(env) & 0xf8000000; - case 1: /* IAPSR */ - return xpsr_read(env) & 0xf80001ff; - case 2: /* EAPSR */ - return xpsr_read(env) & 0xff00fc00; - case 3: /* xPSR */ - return xpsr_read(env) & 0xff00fdff; - case 5: /* IPSR */ - return xpsr_read(env) & 0x000001ff; - case 6: /* EPSR */ - return xpsr_read(env) & 0x0700fc00; - case 7: /* IEPSR */ - return xpsr_read(env) & 0x0700edff; - case 8: /* MSP */ - return env->v7m.current_sp ? env->v7m.other_sp : env->regs[13]; - case 9: /* PSP */ - return env->v7m.current_sp ? env->regs[13] : env->v7m.other_sp; - case 16: /* PRIMASK */ - return (env->uncached_cpsr & CPSR_I) != 0; - case 17: /* FAULTMASK */ - return (env->uncached_cpsr & CPSR_F) != 0; - case 18: /* BASEPRI */ - case 19: /* BASEPRI_MAX */ - return env->v7m.basepri; - case 20: /* CONTROL */ - return env->v7m.control; - default: - /* ??? For debugging only. */ - cpu_abort(env, "Unimplemented system register read (%d)\n", reg); - return 0; - } -} - -void helper_v7m_msr(CPUState *env, int reg, uint32_t val) -{ - switch (reg) { - case 0: /* APSR */ - xpsr_write(env, val, 0xf8000000); - break; - case 1: /* IAPSR */ - xpsr_write(env, val, 0xf8000000); - break; - case 2: /* EAPSR */ - xpsr_write(env, val, 0xfe00fc00); - break; - case 3: /* xPSR */ - xpsr_write(env, val, 0xfe00fc00); - break; - case 5: /* IPSR */ - /* IPSR bits are readonly. */ - break; - case 6: /* EPSR */ - xpsr_write(env, val, 0x0600fc00); - break; - case 7: /* IEPSR */ - xpsr_write(env, val, 0x0600fc00); - break; - case 8: /* MSP */ - if (env->v7m.current_sp) - env->v7m.other_sp = val; - else - env->regs[13] = val; - break; - case 9: /* PSP */ - if (env->v7m.current_sp) - env->regs[13] = val; - else - env->v7m.other_sp = val; - break; - case 16: /* PRIMASK */ - if (val & 1) - env->uncached_cpsr |= CPSR_I; - else - env->uncached_cpsr &= ~CPSR_I; - break; - case 17: /* FAULTMASK */ - if (val & 1) - env->uncached_cpsr |= CPSR_F; - else - env->uncached_cpsr &= ~CPSR_F; - break; - case 18: /* BASEPRI */ - env->v7m.basepri = val & 0xff; - break; - case 19: /* BASEPRI_MAX */ - val &= 0xff; - if (val != 0 && (val < env->v7m.basepri || env->v7m.basepri == 0)) - env->v7m.basepri = val; - break; - case 20: /* CONTROL */ - env->v7m.control = val & 3; - switch_v7m_sp(env, (val & 2) != 0); - break; - default: - /* ??? For debugging only. */ - cpu_abort(env, "Unimplemented system register write (%d)\n", reg); - return; - } -} - -void cpu_arm_set_cp_io(CPUARMState *env, int cpnum, - ARMReadCPFunc *cp_read, ARMWriteCPFunc *cp_write, - void *opaque) -{ - if (cpnum < 0 || cpnum > 14) { - cpu_abort(env, "Bad coprocessor number: %i\n", cpnum); - return; - } - - env->cp[cpnum].cp_read = cp_read; - env->cp[cpnum].cp_write = cp_write; - env->cp[cpnum].opaque = opaque; -} - -#endif diff --git a/qemu/vl.c b/qemu/vl.c deleted file mode 100644 index 5430df8bf..000000000 --- a/qemu/vl.c +++ /dev/null @@ -1,9003 +0,0 @@ -/* - * QEMU System Emulator - * - * Copyright (c) 2003-2008 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#include "hw/hw.h" -#include "hw/boards.h" -#include "hw/usb.h" -#include "hw/pcmcia.h" -#include "hw/pc.h" -#include "hw/fdc.h" -#include "hw/audiodev.h" -#include "hw/isa.h" -#include "net.h" -#include "console.h" -#include "sysemu.h" -#include "gdbstub.h" -#include "qemu-timer.h" -#include "qemu-char.h" -#include "block.h" -#include "audio/audio.h" - -#include -#include -#include -#include -#include -#include -#include - -#ifndef _WIN32 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef _BSD -#include -#ifndef __APPLE__ -#include -#endif -#elif defined (__GLIBC__) && defined (__FreeBSD_kernel__) -#include -#else -#ifndef __sun__ -#include -#include -#include -#include -#include - -/* For the benefit of older linux systems which don't supply it, - we use a local copy of hpet.h. */ -/* #include */ -#include "hpet.h" - -#include -#include -#else -#include -#include -#include -#include -#include -#include -#include -#include // must come after ip.h -#include -#include -#include -#include -#include -#endif -#endif -#else -#include -int inet_aton(const char *cp, struct in_addr *ia); -#endif - -#if defined(CONFIG_SLIRP) -#include "libslirp.h" -#endif - -#ifdef _WIN32 -#include -#include -#include -#define getopt_long_only getopt_long -#define memalign(align, size) malloc(size) -#endif - -#include "qemu_socket.h" - -#ifdef CONFIG_SDL -#ifdef __APPLE__ -#include -#endif -#endif /* CONFIG_SDL */ - -#ifdef CONFIG_COCOA -#undef main -#define main qemu_main -#endif /* CONFIG_COCOA */ - -#include "disas.h" - -#include "exec-all.h" - -#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup" -#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown" -#ifdef __sun__ -#define SMBD_COMMAND "/usr/sfw/sbin/smbd" -#else -#define SMBD_COMMAND "/usr/sbin/smbd" -#endif - -//#define DEBUG_UNUSED_IOPORT -//#define DEBUG_IOPORT - -#define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024) - -#ifdef TARGET_PPC -#define DEFAULT_RAM_SIZE 144 -#else -#define DEFAULT_RAM_SIZE 128 -#endif -/* in ms */ -#define GUI_REFRESH_INTERVAL 30 - -/* Max number of USB devices that can be specified on the commandline. */ -#define MAX_USB_CMDLINE 8 - -/* XXX: use a two level table to limit memory usage */ -#define MAX_IOPORTS 65536 - -const char *bios_dir = CONFIG_QEMU_SHAREDIR; -const char *bios_name = NULL; -void *ioport_opaque[MAX_IOPORTS]; -IOPortReadFunc *ioport_read_table[3][MAX_IOPORTS]; -IOPortWriteFunc *ioport_write_table[3][MAX_IOPORTS]; -/* Note: drives_table[MAX_DRIVES] is a dummy block driver if none available - to store the VM snapshots */ -DriveInfo drives_table[MAX_DRIVES+1]; -int nb_drives; -/* point to the block driver where the snapshots are managed */ -BlockDriverState *bs_snapshots; -int vga_ram_size; -static DisplayState display_state; -int nographic; -const char* keyboard_layout = NULL; -int64_t ticks_per_sec; -int ram_size; -int pit_min_timer_count = 0; -int nb_nics; -NICInfo nd_table[MAX_NICS]; -int vm_running; -int rtc_utc = 1; -int rtc_start_date = -1; /* -1 means now */ -int cirrus_vga_enabled = 1; -int vmsvga_enabled = 0; -#ifdef TARGET_SPARC -int graphic_width = 1024; -int graphic_height = 768; -int graphic_depth = 8; -#else -int graphic_width = 800; -int graphic_height = 600; -int graphic_depth = 15; -#endif -int full_screen = 0; -int no_frame = 0; -int no_quit = 0; -CharDriverState *serial_hds[MAX_SERIAL_PORTS]; -CharDriverState *parallel_hds[MAX_PARALLEL_PORTS]; -#ifdef TARGET_I386 -int win2k_install_hack = 0; -#endif -int usb_enabled = 0; -static VLANState *first_vlan; -int smp_cpus = 1; -const char *vnc_display; -#if defined(TARGET_SPARC) -#define MAX_CPUS 16 -#elif defined(TARGET_I386) -#define MAX_CPUS 255 -#else -#define MAX_CPUS 1 -#endif -int acpi_enabled = 1; -int fd_bootchk = 1; -int no_reboot = 0; -int cursor_hide = 1; -int graphic_rotate = 0; -int daemonize = 0; -const char *option_rom[MAX_OPTION_ROMS]; -int nb_option_roms; -int semihosting_enabled = 0; -int autostart = 1; -#ifdef TARGET_ARM -int old_param = 0; -#endif -const char *qemu_name; -int alt_grab = 0; -#ifdef TARGET_SPARC -unsigned int nb_prom_envs = 0; -const char *prom_envs[MAX_PROM_ENVS]; -#endif -int nb_drives_opt; -char drives_opt[MAX_DRIVES][1024]; - -static CPUState *cur_cpu; -static CPUState *next_cpu; -static int event_pending = 1; - -#define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR) - -/***********************************************************/ -/* x86 ISA bus support */ - -target_phys_addr_t isa_mem_base = 0; -PicState2 *isa_pic; - -static uint32_t default_ioport_readb(void *opaque, uint32_t address) -{ -#ifdef DEBUG_UNUSED_IOPORT - fprintf(stderr, "unused inb: port=0x%04x\n", address); -#endif - return 0xff; -} - -static void default_ioport_writeb(void *opaque, uint32_t address, uint32_t data) -{ -#ifdef DEBUG_UNUSED_IOPORT - fprintf(stderr, "unused outb: port=0x%04x data=0x%02x\n", address, data); -#endif -} - -/* default is to make two byte accesses */ -static uint32_t default_ioport_readw(void *opaque, uint32_t address) -{ - uint32_t data; - data = ioport_read_table[0][address](ioport_opaque[address], address); - address = (address + 1) & (MAX_IOPORTS - 1); - data |= ioport_read_table[0][address](ioport_opaque[address], address) << 8; - return data; -} - -static void default_ioport_writew(void *opaque, uint32_t address, uint32_t data) -{ - ioport_write_table[0][address](ioport_opaque[address], address, data & 0xff); - address = (address + 1) & (MAX_IOPORTS - 1); - ioport_write_table[0][address](ioport_opaque[address], address, (data >> 8) & 0xff); -} - -static uint32_t default_ioport_readl(void *opaque, uint32_t address) -{ -#ifdef DEBUG_UNUSED_IOPORT - fprintf(stderr, "unused inl: port=0x%04x\n", address); -#endif - return 0xffffffff; -} - -static void default_ioport_writel(void *opaque, uint32_t address, uint32_t data) -{ -#ifdef DEBUG_UNUSED_IOPORT - fprintf(stderr, "unused outl: port=0x%04x data=0x%02x\n", address, data); -#endif -} - -static void init_ioports(void) -{ - int i; - - for(i = 0; i < MAX_IOPORTS; i++) { - ioport_read_table[0][i] = default_ioport_readb; - ioport_write_table[0][i] = default_ioport_writeb; - ioport_read_table[1][i] = default_ioport_readw; - ioport_write_table[1][i] = default_ioport_writew; - ioport_read_table[2][i] = default_ioport_readl; - ioport_write_table[2][i] = default_ioport_writel; - } -} - -/* size is the word size in byte */ -int register_ioport_read(int start, int length, int size, - IOPortReadFunc *func, void *opaque) -{ - int i, bsize; - - if (size == 1) { - bsize = 0; - } else if (size == 2) { - bsize = 1; - } else if (size == 4) { - bsize = 2; - } else { - hw_error("register_ioport_read: invalid size"); - return -1; - } - for(i = start; i < start + length; i += size) { - ioport_read_table[bsize][i] = func; - if (ioport_opaque[i] != NULL && ioport_opaque[i] != opaque) - hw_error("register_ioport_read: invalid opaque"); - ioport_opaque[i] = opaque; - } - return 0; -} - -/* size is the word size in byte */ -int register_ioport_write(int start, int length, int size, - IOPortWriteFunc *func, void *opaque) -{ - int i, bsize; - - if (size == 1) { - bsize = 0; - } else if (size == 2) { - bsize = 1; - } else if (size == 4) { - bsize = 2; - } else { - hw_error("register_ioport_write: invalid size"); - return -1; - } - for(i = start; i < start + length; i += size) { - ioport_write_table[bsize][i] = func; - if (ioport_opaque[i] != NULL && ioport_opaque[i] != opaque) - hw_error("register_ioport_write: invalid opaque"); - ioport_opaque[i] = opaque; - } - return 0; -} - -void isa_unassign_ioport(int start, int length) -{ - int i; - - for(i = start; i < start + length; i++) { - ioport_read_table[0][i] = default_ioport_readb; - ioport_read_table[1][i] = default_ioport_readw; - ioport_read_table[2][i] = default_ioport_readl; - - ioport_write_table[0][i] = default_ioport_writeb; - ioport_write_table[1][i] = default_ioport_writew; - ioport_write_table[2][i] = default_ioport_writel; - } -} - -/***********************************************************/ - -void cpu_outb(CPUState *env, int addr, int val) -{ -#ifdef DEBUG_IOPORT - if (loglevel & CPU_LOG_IOPORT) - fprintf(logfile, "outb: %04x %02x\n", addr, val); -#endif - ioport_write_table[0][addr](ioport_opaque[addr], addr, val); -#ifdef USE_KQEMU - if (env) - env->last_io_time = cpu_get_time_fast(); -#endif -} - -void cpu_outw(CPUState *env, int addr, int val) -{ -#ifdef DEBUG_IOPORT - if (loglevel & CPU_LOG_IOPORT) - fprintf(logfile, "outw: %04x %04x\n", addr, val); -#endif - ioport_write_table[1][addr](ioport_opaque[addr], addr, val); -#ifdef USE_KQEMU - if (env) - env->last_io_time = cpu_get_time_fast(); -#endif -} - -void cpu_outl(CPUState *env, int addr, int val) -{ -#ifdef DEBUG_IOPORT - if (loglevel & CPU_LOG_IOPORT) - fprintf(logfile, "outl: %04x %08x\n", addr, val); -#endif - ioport_write_table[2][addr](ioport_opaque[addr], addr, val); -#ifdef USE_KQEMU - if (env) - env->last_io_time = cpu_get_time_fast(); -#endif -} - -int cpu_inb(CPUState *env, int addr) -{ - int val; - val = ioport_read_table[0][addr](ioport_opaque[addr], addr); -#ifdef DEBUG_IOPORT - if (loglevel & CPU_LOG_IOPORT) - fprintf(logfile, "inb : %04x %02x\n", addr, val); -#endif -#ifdef USE_KQEMU - if (env) - env->last_io_time = cpu_get_time_fast(); -#endif - return val; -} - -int cpu_inw(CPUState *env, int addr) -{ - int val; - val = ioport_read_table[1][addr](ioport_opaque[addr], addr); -#ifdef DEBUG_IOPORT - if (loglevel & CPU_LOG_IOPORT) - fprintf(logfile, "inw : %04x %04x\n", addr, val); -#endif -#ifdef USE_KQEMU - if (env) - env->last_io_time = cpu_get_time_fast(); -#endif - return val; -} - -int cpu_inl(CPUState *env, int addr) -{ - int val; - val = ioport_read_table[2][addr](ioport_opaque[addr], addr); -#ifdef DEBUG_IOPORT - if (loglevel & CPU_LOG_IOPORT) - fprintf(logfile, "inl : %04x %08x\n", addr, val); -#endif -#ifdef USE_KQEMU - if (env) - env->last_io_time = cpu_get_time_fast(); -#endif - return val; -} - -/***********************************************************/ -void hw_error(const char *fmt, ...) -{ - va_list ap; - CPUState *env; - - va_start(ap, fmt); - fprintf(stderr, "qemu: hardware error: "); - vfprintf(stderr, fmt, ap); - fprintf(stderr, "\n"); - for(env = first_cpu; env != NULL; env = env->next_cpu) { - fprintf(stderr, "CPU #%d:\n", env->cpu_index); -#ifdef TARGET_I386 - cpu_dump_state(env, stderr, fprintf, X86_DUMP_FPU); -#else - cpu_dump_state(env, stderr, fprintf, 0); -#endif - } - va_end(ap); - abort(); -} - -/***********************************************************/ -/* keyboard/mouse */ - -static QEMUPutKBDEvent *qemu_put_kbd_event; -static void *qemu_put_kbd_event_opaque; -static QEMUPutMouseEntry *qemu_put_mouse_event_head; -static QEMUPutMouseEntry *qemu_put_mouse_event_current; - -void qemu_add_kbd_event_handler(QEMUPutKBDEvent *func, void *opaque) -{ - qemu_put_kbd_event_opaque = opaque; - qemu_put_kbd_event = func; -} - -QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func, - void *opaque, int absolute, - const char *name) -{ - QEMUPutMouseEntry *s, *cursor; - - s = qemu_mallocz(sizeof(QEMUPutMouseEntry)); - if (!s) - return NULL; - - s->qemu_put_mouse_event = func; - s->qemu_put_mouse_event_opaque = opaque; - s->qemu_put_mouse_event_absolute = absolute; - s->qemu_put_mouse_event_name = qemu_strdup(name); - s->next = NULL; - - if (!qemu_put_mouse_event_head) { - qemu_put_mouse_event_head = qemu_put_mouse_event_current = s; - return s; - } - - cursor = qemu_put_mouse_event_head; - while (cursor->next != NULL) - cursor = cursor->next; - - cursor->next = s; - qemu_put_mouse_event_current = s; - - return s; -} - -void qemu_remove_mouse_event_handler(QEMUPutMouseEntry *entry) -{ - QEMUPutMouseEntry *prev = NULL, *cursor; - - if (!qemu_put_mouse_event_head || entry == NULL) - return; - - cursor = qemu_put_mouse_event_head; - while (cursor != NULL && cursor != entry) { - prev = cursor; - cursor = cursor->next; - } - - if (cursor == NULL) // does not exist or list empty - return; - else if (prev == NULL) { // entry is head - qemu_put_mouse_event_head = cursor->next; - if (qemu_put_mouse_event_current == entry) - qemu_put_mouse_event_current = cursor->next; - qemu_free(entry->qemu_put_mouse_event_name); - qemu_free(entry); - return; - } - - prev->next = entry->next; - - if (qemu_put_mouse_event_current == entry) - qemu_put_mouse_event_current = prev; - - qemu_free(entry->qemu_put_mouse_event_name); - qemu_free(entry); -} - -void kbd_put_keycode(int keycode) -{ - if (qemu_put_kbd_event) { - qemu_put_kbd_event(qemu_put_kbd_event_opaque, keycode); - } -} - -void kbd_mouse_event(int dx, int dy, int dz, int buttons_state) -{ - QEMUPutMouseEvent *mouse_event; - void *mouse_event_opaque; - int width; - - if (!qemu_put_mouse_event_current) { - return; - } - - mouse_event = - qemu_put_mouse_event_current->qemu_put_mouse_event; - mouse_event_opaque = - qemu_put_mouse_event_current->qemu_put_mouse_event_opaque; - - if (mouse_event) { - if (graphic_rotate) { - if (qemu_put_mouse_event_current->qemu_put_mouse_event_absolute) - width = 0x7fff; - else - width = graphic_width; - mouse_event(mouse_event_opaque, - width - dy, dx, dz, buttons_state); - } else - mouse_event(mouse_event_opaque, - dx, dy, dz, buttons_state); - } -} - -int kbd_mouse_is_absolute(void) -{ - if (!qemu_put_mouse_event_current) - return 0; - - return qemu_put_mouse_event_current->qemu_put_mouse_event_absolute; -} - -void do_info_mice(void) -{ - QEMUPutMouseEntry *cursor; - int index = 0; - - if (!qemu_put_mouse_event_head) { - term_printf("No mouse devices connected\n"); - return; - } - - term_printf("Mouse devices available:\n"); - cursor = qemu_put_mouse_event_head; - while (cursor != NULL) { - term_printf("%c Mouse #%d: %s\n", - (cursor == qemu_put_mouse_event_current ? '*' : ' '), - index, cursor->qemu_put_mouse_event_name); - index++; - cursor = cursor->next; - } -} - -void do_mouse_set(int index) -{ - QEMUPutMouseEntry *cursor; - int i = 0; - - if (!qemu_put_mouse_event_head) { - term_printf("No mouse devices connected\n"); - return; - } - - cursor = qemu_put_mouse_event_head; - while (cursor != NULL && index != i) { - i++; - cursor = cursor->next; - } - - if (cursor != NULL) - qemu_put_mouse_event_current = cursor; - else - term_printf("Mouse at given index not found\n"); -} - -/* compute with 96 bit intermediate result: (a*b)/c */ -uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c) -{ - union { - uint64_t ll; - struct { -#ifdef WORDS_BIGENDIAN - uint32_t high, low; -#else - uint32_t low, high; -#endif - } l; - } u, res; - uint64_t rl, rh; - - u.ll = a; - rl = (uint64_t)u.l.low * (uint64_t)b; - rh = (uint64_t)u.l.high * (uint64_t)b; - rh += (rl >> 32); - res.l.high = rh / c; - res.l.low = (((rh % c) << 32) + (rl & 0xffffffff)) / c; - return res.ll; -} - -/***********************************************************/ -/* real time host monotonic timer */ - -#define QEMU_TIMER_BASE 1000000000LL - -#ifdef WIN32 - -static int64_t clock_freq; - -static void init_get_clock(void) -{ - LARGE_INTEGER freq; - int ret; - ret = QueryPerformanceFrequency(&freq); - if (ret == 0) { - fprintf(stderr, "Could not calibrate ticks\n"); - exit(1); - } - clock_freq = freq.QuadPart; -} - -static int64_t get_clock(void) -{ - LARGE_INTEGER ti; - QueryPerformanceCounter(&ti); - return muldiv64(ti.QuadPart, QEMU_TIMER_BASE, clock_freq); -} - -#else - -static int use_rt_clock; - -static void init_get_clock(void) -{ - use_rt_clock = 0; -#if defined(__linux__) - { - struct timespec ts; - if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) { - use_rt_clock = 1; - } - } -#endif -} - -static int64_t get_clock(void) -{ -#if defined(__linux__) - if (use_rt_clock) { - struct timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); - return ts.tv_sec * 1000000000LL + ts.tv_nsec; - } else -#endif - { - /* XXX: using gettimeofday leads to problems if the date - changes, so it should be avoided. */ - struct timeval tv; - gettimeofday(&tv, NULL); - return tv.tv_sec * 1000000000LL + (tv.tv_usec * 1000); - } -} - -#endif - -/***********************************************************/ -/* guest cycle counter */ - -static int64_t cpu_ticks_prev; -static int64_t cpu_ticks_offset; -static int64_t cpu_clock_offset; -static int cpu_ticks_enabled; - -/* return the host CPU cycle counter and handle stop/restart */ -int64_t cpu_get_ticks(void) -{ - if (!cpu_ticks_enabled) { - return cpu_ticks_offset; - } else { - int64_t ticks; - ticks = cpu_get_real_ticks(); - if (cpu_ticks_prev > ticks) { - /* Note: non increasing ticks may happen if the host uses - software suspend */ - cpu_ticks_offset += cpu_ticks_prev - ticks; - } - cpu_ticks_prev = ticks; - return ticks + cpu_ticks_offset; - } -} - -/* return the host CPU monotonic timer and handle stop/restart */ -static int64_t cpu_get_clock(void) -{ - int64_t ti; - if (!cpu_ticks_enabled) { - return cpu_clock_offset; - } else { - ti = get_clock(); - return ti + cpu_clock_offset; - } -} - -/* enable cpu_get_ticks() */ -void cpu_enable_ticks(void) -{ - if (!cpu_ticks_enabled) { - cpu_ticks_offset -= cpu_get_real_ticks(); - cpu_clock_offset -= get_clock(); - cpu_ticks_enabled = 1; - } -} - -/* disable cpu_get_ticks() : the clock is stopped. You must not call - cpu_get_ticks() after that. */ -void cpu_disable_ticks(void) -{ - if (cpu_ticks_enabled) { - cpu_ticks_offset = cpu_get_ticks(); - cpu_clock_offset = cpu_get_clock(); - cpu_ticks_enabled = 0; - } -} - -/***********************************************************/ -/* timers */ - -#define QEMU_TIMER_REALTIME 0 -#define QEMU_TIMER_VIRTUAL 1 - -struct QEMUClock { - int type; - /* XXX: add frequency */ -}; - -struct QEMUTimer { - QEMUClock *clock; - int64_t expire_time; - QEMUTimerCB *cb; - void *opaque; - struct QEMUTimer *next; -}; - -struct qemu_alarm_timer { - char const *name; - unsigned int flags; - - int (*start)(struct qemu_alarm_timer *t); - void (*stop)(struct qemu_alarm_timer *t); - void (*rearm)(struct qemu_alarm_timer *t); - void *priv; -}; - -#define ALARM_FLAG_DYNTICKS 0x1 -#define ALARM_FLAG_EXPIRED 0x2 - -static inline int alarm_has_dynticks(struct qemu_alarm_timer *t) -{ - return t->flags & ALARM_FLAG_DYNTICKS; -} - -static void qemu_rearm_alarm_timer(struct qemu_alarm_timer *t) -{ - if (!alarm_has_dynticks(t)) - return; - - t->rearm(t); -} - -/* TODO: MIN_TIMER_REARM_US should be optimized */ -#define MIN_TIMER_REARM_US 250 - -static struct qemu_alarm_timer *alarm_timer; - -#ifdef _WIN32 - -struct qemu_alarm_win32 { - MMRESULT timerId; - HANDLE host_alarm; - unsigned int period; -} alarm_win32_data = {0, NULL, -1}; - -static int win32_start_timer(struct qemu_alarm_timer *t); -static void win32_stop_timer(struct qemu_alarm_timer *t); -static void win32_rearm_timer(struct qemu_alarm_timer *t); - -#else - -static int unix_start_timer(struct qemu_alarm_timer *t); -static void unix_stop_timer(struct qemu_alarm_timer *t); - -#ifdef __linux__ - -static int dynticks_start_timer(struct qemu_alarm_timer *t); -static void dynticks_stop_timer(struct qemu_alarm_timer *t); -static void dynticks_rearm_timer(struct qemu_alarm_timer *t); - -static int hpet_start_timer(struct qemu_alarm_timer *t); -static void hpet_stop_timer(struct qemu_alarm_timer *t); - -static int rtc_start_timer(struct qemu_alarm_timer *t); -static void rtc_stop_timer(struct qemu_alarm_timer *t); - -#endif /* __linux__ */ - -#endif /* _WIN32 */ - -static struct qemu_alarm_timer alarm_timers[] = { -#ifndef _WIN32 -#ifdef __linux__ - {"dynticks", ALARM_FLAG_DYNTICKS, dynticks_start_timer, - dynticks_stop_timer, dynticks_rearm_timer, NULL}, - /* HPET - if available - is preferred */ - {"hpet", 0, hpet_start_timer, hpet_stop_timer, NULL, NULL}, - /* ...otherwise try RTC */ - {"rtc", 0, rtc_start_timer, rtc_stop_timer, NULL, NULL}, -#endif - {"unix", 0, unix_start_timer, unix_stop_timer, NULL, NULL}, -#else - {"dynticks", ALARM_FLAG_DYNTICKS, win32_start_timer, - win32_stop_timer, win32_rearm_timer, &alarm_win32_data}, - {"win32", 0, win32_start_timer, - win32_stop_timer, NULL, &alarm_win32_data}, -#endif - {NULL, } -}; - -static void show_available_alarms() -{ - int i; - - printf("Available alarm timers, in order of precedence:\n"); - for (i = 0; alarm_timers[i].name; i++) - printf("%s\n", alarm_timers[i].name); -} - -static void configure_alarms(char const *opt) -{ - int i; - int cur = 0; - int count = (sizeof(alarm_timers) / sizeof(*alarm_timers)) - 1; - char *arg; - char *name; - - if (!strcmp(opt, "help")) { - show_available_alarms(); - exit(0); - } - - arg = strdup(opt); - - /* Reorder the array */ - name = strtok(arg, ","); - while (name) { - struct qemu_alarm_timer tmp; - - for (i = 0; i < count && alarm_timers[i].name; i++) { - if (!strcmp(alarm_timers[i].name, name)) - break; - } - - if (i == count) { - fprintf(stderr, "Unknown clock %s\n", name); - goto next; - } - - if (i < cur) - /* Ignore */ - goto next; - - /* Swap */ - tmp = alarm_timers[i]; - alarm_timers[i] = alarm_timers[cur]; - alarm_timers[cur] = tmp; - - cur++; -next: - name = strtok(NULL, ","); - } - - free(arg); - - if (cur) { - /* Disable remaining timers */ - for (i = cur; i < count; i++) - alarm_timers[i].name = NULL; - } - - /* debug */ - show_available_alarms(); -} - -QEMUClock *rt_clock; -QEMUClock *vm_clock; - -static QEMUTimer *active_timers[2]; - -static QEMUClock *qemu_new_clock(int type) -{ - QEMUClock *clock; - clock = qemu_mallocz(sizeof(QEMUClock)); - if (!clock) - return NULL; - clock->type = type; - return clock; -} - -QEMUTimer *qemu_new_timer(QEMUClock *clock, QEMUTimerCB *cb, void *opaque) -{ - QEMUTimer *ts; - - ts = qemu_mallocz(sizeof(QEMUTimer)); - ts->clock = clock; - ts->cb = cb; - ts->opaque = opaque; - return ts; -} - -void qemu_free_timer(QEMUTimer *ts) -{ - qemu_free(ts); -} - -/* stop a timer, but do not dealloc it */ -void qemu_del_timer(QEMUTimer *ts) -{ - QEMUTimer **pt, *t; - - /* NOTE: this code must be signal safe because - qemu_timer_expired() can be called from a signal. */ - pt = &active_timers[ts->clock->type]; - for(;;) { - t = *pt; - if (!t) - break; - if (t == ts) { - *pt = t->next; - break; - } - pt = &t->next; - } -} - -/* modify the current timer so that it will be fired when current_time - >= expire_time. The corresponding callback will be called. */ -void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time) -{ - QEMUTimer **pt, *t; - - qemu_del_timer(ts); - - /* add the timer in the sorted list */ - /* NOTE: this code must be signal safe because - qemu_timer_expired() can be called from a signal. */ - pt = &active_timers[ts->clock->type]; - for(;;) { - t = *pt; - if (!t) - break; - if (t->expire_time > expire_time) - break; - pt = &t->next; - } - ts->expire_time = expire_time; - ts->next = *pt; - *pt = ts; - - /* Rearm if necessary */ - if ((alarm_timer->flags & ALARM_FLAG_EXPIRED) == 0 && - pt == &active_timers[ts->clock->type]) - qemu_rearm_alarm_timer(alarm_timer); -} - -int qemu_timer_pending(QEMUTimer *ts) -{ - QEMUTimer *t; - for(t = active_timers[ts->clock->type]; t != NULL; t = t->next) { - if (t == ts) - return 1; - } - return 0; -} - -static inline int qemu_timer_expired(QEMUTimer *timer_head, int64_t current_time) -{ - if (!timer_head) - return 0; - return (timer_head->expire_time <= current_time); -} - -static void qemu_run_timers(QEMUTimer **ptimer_head, int64_t current_time) -{ - QEMUTimer *ts; - - for(;;) { - ts = *ptimer_head; - if (!ts || ts->expire_time > current_time) - break; - /* remove timer from the list before calling the callback */ - *ptimer_head = ts->next; - ts->next = NULL; - - /* run the callback (the timer list can be modified) */ - ts->cb(ts->opaque); - } -} - -int64_t qemu_get_clock(QEMUClock *clock) -{ - switch(clock->type) { - case QEMU_TIMER_REALTIME: - return get_clock() / 1000000; - default: - case QEMU_TIMER_VIRTUAL: - return cpu_get_clock(); - } -} - -static void init_timers(void) -{ - init_get_clock(); - ticks_per_sec = QEMU_TIMER_BASE; - rt_clock = qemu_new_clock(QEMU_TIMER_REALTIME); - vm_clock = qemu_new_clock(QEMU_TIMER_VIRTUAL); -} - -/* save a timer */ -void qemu_put_timer(QEMUFile *f, QEMUTimer *ts) -{ - uint64_t expire_time; - - if (qemu_timer_pending(ts)) { - expire_time = ts->expire_time; - } else { - expire_time = -1; - } - qemu_put_be64(f, expire_time); -} - -void qemu_get_timer(QEMUFile *f, QEMUTimer *ts) -{ - uint64_t expire_time; - - expire_time = qemu_get_be64(f); - if (expire_time != -1) { - qemu_mod_timer(ts, expire_time); - } else { - qemu_del_timer(ts); - } -} - -static void timer_save(QEMUFile *f, void *opaque) -{ - if (cpu_ticks_enabled) { - hw_error("cannot save state if virtual timers are running"); - } - qemu_put_be64(f, cpu_ticks_offset); - qemu_put_be64(f, ticks_per_sec); - qemu_put_be64(f, cpu_clock_offset); -} - -static int timer_load(QEMUFile *f, void *opaque, int version_id) -{ - if (version_id != 1 && version_id != 2) - return -EINVAL; - if (cpu_ticks_enabled) { - return -EINVAL; - } - cpu_ticks_offset=qemu_get_be64(f); - ticks_per_sec=qemu_get_be64(f); - if (version_id == 2) { - cpu_clock_offset=qemu_get_be64(f); - } - return 0; -} - -#ifdef _WIN32 -void CALLBACK host_alarm_handler(UINT uTimerID, UINT uMsg, - DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) -#else -static void host_alarm_handler(int host_signum) -#endif -{ -#if 0 -#define DISP_FREQ 1000 - { - static int64_t delta_min = INT64_MAX; - static int64_t delta_max, delta_cum, last_clock, delta, ti; - static int count; - ti = qemu_get_clock(vm_clock); - if (last_clock != 0) { - delta = ti - last_clock; - if (delta < delta_min) - delta_min = delta; - if (delta > delta_max) - delta_max = delta; - delta_cum += delta; - if (++count == DISP_FREQ) { - printf("timer: min=%" PRId64 " us max=%" PRId64 " us avg=%" PRId64 " us avg_freq=%0.3f Hz\n", - muldiv64(delta_min, 1000000, ticks_per_sec), - muldiv64(delta_max, 1000000, ticks_per_sec), - muldiv64(delta_cum, 1000000 / DISP_FREQ, ticks_per_sec), - (double)ticks_per_sec / ((double)delta_cum / DISP_FREQ)); - count = 0; - delta_min = INT64_MAX; - delta_max = 0; - delta_cum = 0; - } - } - last_clock = ti; - } -#endif - if (alarm_has_dynticks(alarm_timer) || - qemu_timer_expired(active_timers[QEMU_TIMER_VIRTUAL], - qemu_get_clock(vm_clock)) || - qemu_timer_expired(active_timers[QEMU_TIMER_REALTIME], - qemu_get_clock(rt_clock))) { -#ifdef _WIN32 - struct qemu_alarm_win32 *data = ((struct qemu_alarm_timer*)dwUser)->priv; - SetEvent(data->host_alarm); -#endif - CPUState *env = next_cpu; - - alarm_timer->flags |= ALARM_FLAG_EXPIRED; - - if (env) { - /* stop the currently executing cpu because a timer occured */ - cpu_interrupt(env, CPU_INTERRUPT_EXIT); -#ifdef USE_KQEMU - if (env->kqemu_enabled) { - kqemu_cpu_interrupt(env); - } -#endif - } - event_pending = 1; - } -} - -static uint64_t qemu_next_deadline(void) -{ - int64_t nearest_delta_us = INT64_MAX; - int64_t vmdelta_us; - - if (active_timers[QEMU_TIMER_REALTIME]) - nearest_delta_us = (active_timers[QEMU_TIMER_REALTIME]->expire_time - - qemu_get_clock(rt_clock))*1000; - - if (active_timers[QEMU_TIMER_VIRTUAL]) { - /* round up */ - vmdelta_us = (active_timers[QEMU_TIMER_VIRTUAL]->expire_time - - qemu_get_clock(vm_clock)+999)/1000; - if (vmdelta_us < nearest_delta_us) - nearest_delta_us = vmdelta_us; - } - - /* Avoid arming the timer to negative, zero, or too low values */ - if (nearest_delta_us <= MIN_TIMER_REARM_US) - nearest_delta_us = MIN_TIMER_REARM_US; - - return nearest_delta_us; -} - -#ifndef _WIN32 - -#if defined(__linux__) - -#define RTC_FREQ 1024 - -static void enable_sigio_timer(int fd) -{ - struct sigaction act; - - /* timer signal */ - sigfillset(&act.sa_mask); - act.sa_flags = 0; - act.sa_handler = host_alarm_handler; - - sigaction(SIGIO, &act, NULL); - fcntl(fd, F_SETFL, O_ASYNC); - fcntl(fd, F_SETOWN, getpid()); -} - -static int hpet_start_timer(struct qemu_alarm_timer *t) -{ - struct hpet_info info; - int r, fd; - - fd = open("/dev/hpet", O_RDONLY); - if (fd < 0) - return -1; - - /* Set frequency */ - r = ioctl(fd, HPET_IRQFREQ, RTC_FREQ); - if (r < 0) { - fprintf(stderr, "Could not configure '/dev/hpet' to have a 1024Hz timer. This is not a fatal\n" - "error, but for better emulation accuracy type:\n" - "'echo 1024 > /proc/sys/dev/hpet/max-user-freq' as root.\n"); - goto fail; - } - - /* Check capabilities */ - r = ioctl(fd, HPET_INFO, &info); - if (r < 0) - goto fail; - - /* Enable periodic mode */ - r = ioctl(fd, HPET_EPI, 0); - if (info.hi_flags && (r < 0)) - goto fail; - - /* Enable interrupt */ - r = ioctl(fd, HPET_IE_ON, 0); - if (r < 0) - goto fail; - - enable_sigio_timer(fd); - t->priv = (void *)(long)fd; - - return 0; -fail: - close(fd); - return -1; -} - -static void hpet_stop_timer(struct qemu_alarm_timer *t) -{ - int fd = (long)t->priv; - - close(fd); -} - -static int rtc_start_timer(struct qemu_alarm_timer *t) -{ - int rtc_fd; - - TFR(rtc_fd = open("/dev/rtc", O_RDONLY)); - if (rtc_fd < 0) - return -1; - if (ioctl(rtc_fd, RTC_IRQP_SET, RTC_FREQ) < 0) { - fprintf(stderr, "Could not configure '/dev/rtc' to have a 1024 Hz timer. This is not a fatal\n" - "error, but for better emulation accuracy either use a 2.6 host Linux kernel or\n" - "type 'echo 1024 > /proc/sys/dev/rtc/max-user-freq' as root.\n"); - goto fail; - } - if (ioctl(rtc_fd, RTC_PIE_ON, 0) < 0) { - fail: - close(rtc_fd); - return -1; - } - - enable_sigio_timer(rtc_fd); - - t->priv = (void *)(long)rtc_fd; - - return 0; -} - -static void rtc_stop_timer(struct qemu_alarm_timer *t) -{ - int rtc_fd = (long)t->priv; - - close(rtc_fd); -} - -static int dynticks_start_timer(struct qemu_alarm_timer *t) -{ - struct sigevent ev; - timer_t host_timer; - struct sigaction act; - - sigfillset(&act.sa_mask); - act.sa_flags = 0; - act.sa_handler = host_alarm_handler; - - sigaction(SIGALRM, &act, NULL); - - ev.sigev_value.sival_int = 0; - ev.sigev_notify = SIGEV_SIGNAL; - ev.sigev_signo = SIGALRM; - - if (timer_create(CLOCK_REALTIME, &ev, &host_timer)) { - perror("timer_create"); - - /* disable dynticks */ - fprintf(stderr, "Dynamic Ticks disabled\n"); - - return -1; - } - - t->priv = (void *)host_timer; - - return 0; -} - -static void dynticks_stop_timer(struct qemu_alarm_timer *t) -{ - timer_t host_timer = (timer_t)t->priv; - - timer_delete(host_timer); -} - -static void dynticks_rearm_timer(struct qemu_alarm_timer *t) -{ - timer_t host_timer = (timer_t)t->priv; - struct itimerspec timeout; - int64_t nearest_delta_us = INT64_MAX; - int64_t current_us; - - if (!active_timers[QEMU_TIMER_REALTIME] && - !active_timers[QEMU_TIMER_VIRTUAL]) - return; - - nearest_delta_us = qemu_next_deadline(); - - /* check whether a timer is already running */ - if (timer_gettime(host_timer, &timeout)) { - perror("gettime"); - fprintf(stderr, "Internal timer error: aborting\n"); - exit(1); - } - current_us = timeout.it_value.tv_sec * 1000000 + timeout.it_value.tv_nsec/1000; - if (current_us && current_us <= nearest_delta_us) - return; - - timeout.it_interval.tv_sec = 0; - timeout.it_interval.tv_nsec = 0; /* 0 for one-shot timer */ - timeout.it_value.tv_sec = nearest_delta_us / 1000000; - timeout.it_value.tv_nsec = (nearest_delta_us % 1000000) * 1000; - if (timer_settime(host_timer, 0 /* RELATIVE */, &timeout, NULL)) { - perror("settime"); - fprintf(stderr, "Internal timer error: aborting\n"); - exit(1); - } -} - -#endif /* defined(__linux__) */ - -static int unix_start_timer(struct qemu_alarm_timer *t) -{ - struct sigaction act; - struct itimerval itv; - int err; - - /* timer signal */ - sigfillset(&act.sa_mask); - act.sa_flags = 0; - act.sa_handler = host_alarm_handler; - - sigaction(SIGALRM, &act, NULL); - - itv.it_interval.tv_sec = 0; - /* for i386 kernel 2.6 to get 1 ms */ - itv.it_interval.tv_usec = 999; - itv.it_value.tv_sec = 0; - itv.it_value.tv_usec = 10 * 1000; - - err = setitimer(ITIMER_REAL, &itv, NULL); - if (err) - return -1; - - return 0; -} - -static void unix_stop_timer(struct qemu_alarm_timer *t) -{ - struct itimerval itv; - - memset(&itv, 0, sizeof(itv)); - setitimer(ITIMER_REAL, &itv, NULL); -} - -#endif /* !defined(_WIN32) */ - -#ifdef _WIN32 - -static int win32_start_timer(struct qemu_alarm_timer *t) -{ - TIMECAPS tc; - struct qemu_alarm_win32 *data = t->priv; - UINT flags; - - data->host_alarm = CreateEvent(NULL, FALSE, FALSE, NULL); - if (!data->host_alarm) { - perror("Failed CreateEvent"); - return -1; - } - - memset(&tc, 0, sizeof(tc)); - timeGetDevCaps(&tc, sizeof(tc)); - - if (data->period < tc.wPeriodMin) - data->period = tc.wPeriodMin; - - timeBeginPeriod(data->period); - - flags = TIME_CALLBACK_FUNCTION; - if (alarm_has_dynticks(t)) - flags |= TIME_ONESHOT; - else - flags |= TIME_PERIODIC; - - data->timerId = timeSetEvent(1, // interval (ms) - data->period, // resolution - host_alarm_handler, // function - (DWORD)t, // parameter - flags); - - if (!data->timerId) { - perror("Failed to initialize win32 alarm timer"); - - timeEndPeriod(data->period); - CloseHandle(data->host_alarm); - return -1; - } - - qemu_add_wait_object(data->host_alarm, NULL, NULL); - - return 0; -} - -static void win32_stop_timer(struct qemu_alarm_timer *t) -{ - struct qemu_alarm_win32 *data = t->priv; - - timeKillEvent(data->timerId); - timeEndPeriod(data->period); - - CloseHandle(data->host_alarm); -} - -static void win32_rearm_timer(struct qemu_alarm_timer *t) -{ - struct qemu_alarm_win32 *data = t->priv; - uint64_t nearest_delta_us; - - if (!active_timers[QEMU_TIMER_REALTIME] && - !active_timers[QEMU_TIMER_VIRTUAL]) - return; - - nearest_delta_us = qemu_next_deadline(); - nearest_delta_us /= 1000; - - timeKillEvent(data->timerId); - - data->timerId = timeSetEvent(1, - data->period, - host_alarm_handler, - (DWORD)t, - TIME_ONESHOT | TIME_PERIODIC); - - if (!data->timerId) { - perror("Failed to re-arm win32 alarm timer"); - - timeEndPeriod(data->period); - CloseHandle(data->host_alarm); - exit(1); - } -} - -#endif /* _WIN32 */ - -static void init_timer_alarm(void) -{ - struct qemu_alarm_timer *t; - int i, err = -1; - - for (i = 0; alarm_timers[i].name; i++) { - t = &alarm_timers[i]; - - err = t->start(t); - if (!err) - break; - } - - if (err) { - fprintf(stderr, "Unable to find any suitable alarm timer.\n"); - fprintf(stderr, "Terminating\n"); - exit(1); - } - - alarm_timer = t; -} - -static void quit_timers(void) -{ - alarm_timer->stop(alarm_timer); - alarm_timer = NULL; -} - -/***********************************************************/ -/* character device */ - -static void qemu_chr_event(CharDriverState *s, int event) -{ - if (!s->chr_event) - return; - s->chr_event(s->handler_opaque, event); -} - -static void qemu_chr_reset_bh(void *opaque) -{ - CharDriverState *s = opaque; - qemu_chr_event(s, CHR_EVENT_RESET); - qemu_bh_delete(s->bh); - s->bh = NULL; -} - -void qemu_chr_reset(CharDriverState *s) -{ - if (s->bh == NULL) { - s->bh = qemu_bh_new(qemu_chr_reset_bh, s); - qemu_bh_schedule(s->bh); - } -} - -int qemu_chr_write(CharDriverState *s, const uint8_t *buf, int len) -{ - return s->chr_write(s, buf, len); -} - -int qemu_chr_ioctl(CharDriverState *s, int cmd, void *arg) -{ - if (!s->chr_ioctl) - return -ENOTSUP; - return s->chr_ioctl(s, cmd, arg); -} - -int qemu_chr_can_read(CharDriverState *s) -{ - if (!s->chr_can_read) - return 0; - return s->chr_can_read(s->handler_opaque); -} - -void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len) -{ - s->chr_read(s->handler_opaque, buf, len); -} - -void qemu_chr_accept_input(CharDriverState *s) -{ - if (s->chr_accept_input) - s->chr_accept_input(s); -} - -void qemu_chr_printf(CharDriverState *s, const char *fmt, ...) -{ - char buf[4096]; - va_list ap; - va_start(ap, fmt); - vsnprintf(buf, sizeof(buf), fmt, ap); - qemu_chr_write(s, (uint8_t *)buf, strlen(buf)); - va_end(ap); -} - -void qemu_chr_send_event(CharDriverState *s, int event) -{ - if (s->chr_send_event) - s->chr_send_event(s, event); -} - -void qemu_chr_add_handlers(CharDriverState *s, - IOCanRWHandler *fd_can_read, - IOReadHandler *fd_read, - IOEventHandler *fd_event, - void *opaque) -{ - s->chr_can_read = fd_can_read; - s->chr_read = fd_read; - s->chr_event = fd_event; - s->handler_opaque = opaque; - if (s->chr_update_read_handler) - s->chr_update_read_handler(s); -} - -static int null_chr_write(CharDriverState *chr, const uint8_t *buf, int len) -{ - return len; -} - -static CharDriverState *qemu_chr_open_null(void) -{ - CharDriverState *chr; - - chr = qemu_mallocz(sizeof(CharDriverState)); - if (!chr) - return NULL; - chr->chr_write = null_chr_write; - return chr; -} - -/* MUX driver for serial I/O splitting */ -static int term_timestamps; -static int64_t term_timestamps_start; -#define MAX_MUX 4 -#define MUX_BUFFER_SIZE 32 /* Must be a power of 2. */ -#define MUX_BUFFER_MASK (MUX_BUFFER_SIZE - 1) -typedef struct { - IOCanRWHandler *chr_can_read[MAX_MUX]; - IOReadHandler *chr_read[MAX_MUX]; - IOEventHandler *chr_event[MAX_MUX]; - void *ext_opaque[MAX_MUX]; - CharDriverState *drv; - unsigned char buffer[MUX_BUFFER_SIZE]; - int prod; - int cons; - int mux_cnt; - int term_got_escape; - int max_size; -} MuxDriver; - - -static int mux_chr_write(CharDriverState *chr, const uint8_t *buf, int len) -{ - MuxDriver *d = chr->opaque; - int ret; - if (!term_timestamps) { - ret = d->drv->chr_write(d->drv, buf, len); - } else { - int i; - - ret = 0; - for(i = 0; i < len; i++) { - ret += d->drv->chr_write(d->drv, buf+i, 1); - if (buf[i] == '\n') { - char buf1[64]; - int64_t ti; - int secs; - - ti = get_clock(); - if (term_timestamps_start == -1) - term_timestamps_start = ti; - ti -= term_timestamps_start; - secs = ti / 1000000000; - snprintf(buf1, sizeof(buf1), - "[%02d:%02d:%02d.%03d] ", - secs / 3600, - (secs / 60) % 60, - secs % 60, - (int)((ti / 1000000) % 1000)); - d->drv->chr_write(d->drv, (uint8_t *)buf1, strlen(buf1)); - } - } - } - return ret; -} - -static char *mux_help[] = { - "% h print this help\n\r", - "% x exit emulator\n\r", - "% s save disk data back to file (if -snapshot)\n\r", - "% t toggle console timestamps\n\r" - "% b send break (magic sysrq)\n\r", - "% c switch between console and monitor\n\r", - "% % sends %\n\r", - NULL -}; - -static int term_escape_char = 0x01; /* ctrl-a is used for escape */ -static void mux_print_help(CharDriverState *chr) -{ - int i, j; - char ebuf[15] = "Escape-Char"; - char cbuf[50] = "\n\r"; - - if (term_escape_char > 0 && term_escape_char < 26) { - sprintf(cbuf,"\n\r"); - sprintf(ebuf,"C-%c", term_escape_char - 1 + 'a'); - } else { - sprintf(cbuf,"\n\rEscape-Char set to Ascii: 0x%02x\n\r\n\r", - term_escape_char); - } - chr->chr_write(chr, (uint8_t *)cbuf, strlen(cbuf)); - for (i = 0; mux_help[i] != NULL; i++) { - for (j=0; mux_help[i][j] != '\0'; j++) { - if (mux_help[i][j] == '%') - chr->chr_write(chr, (uint8_t *)ebuf, strlen(ebuf)); - else - chr->chr_write(chr, (uint8_t *)&mux_help[i][j], 1); - } - } -} - -static int mux_proc_byte(CharDriverState *chr, MuxDriver *d, int ch) -{ - if (d->term_got_escape) { - d->term_got_escape = 0; - if (ch == term_escape_char) - goto send_char; - switch(ch) { - case '?': - case 'h': - mux_print_help(chr); - break; - case 'x': - { - char *term = "QEMU: Terminated\n\r"; - chr->chr_write(chr,(uint8_t *)term,strlen(term)); - exit(0); - break; - } - case 's': - { - int i; - for (i = 0; i < nb_drives; i++) { - bdrv_commit(drives_table[i].bdrv); - } - } - break; - case 'b': - qemu_chr_event(chr, CHR_EVENT_BREAK); - break; - case 'c': - /* Switch to the next registered device */ - chr->focus++; - if (chr->focus >= d->mux_cnt) - chr->focus = 0; - break; - case 't': - term_timestamps = !term_timestamps; - term_timestamps_start = -1; - break; - } - } else if (ch == term_escape_char) { - d->term_got_escape = 1; - } else { - send_char: - return 1; - } - return 0; -} - -static void mux_chr_accept_input(CharDriverState *chr) -{ - int m = chr->focus; - MuxDriver *d = chr->opaque; - - while (d->prod != d->cons && - d->chr_can_read[m] && - d->chr_can_read[m](d->ext_opaque[m])) { - d->chr_read[m](d->ext_opaque[m], - &d->buffer[d->cons++ & MUX_BUFFER_MASK], 1); - } -} - -static int mux_chr_can_read(void *opaque) -{ - CharDriverState *chr = opaque; - MuxDriver *d = chr->opaque; - - if ((d->prod - d->cons) < MUX_BUFFER_SIZE) - return 1; - if (d->chr_can_read[chr->focus]) - return d->chr_can_read[chr->focus](d->ext_opaque[chr->focus]); - return 0; -} - -static void mux_chr_read(void *opaque, const uint8_t *buf, int size) -{ - CharDriverState *chr = opaque; - MuxDriver *d = chr->opaque; - int m = chr->focus; - int i; - - mux_chr_accept_input (opaque); - - for(i = 0; i < size; i++) - if (mux_proc_byte(chr, d, buf[i])) { - if (d->prod == d->cons && - d->chr_can_read[m] && - d->chr_can_read[m](d->ext_opaque[m])) - d->chr_read[m](d->ext_opaque[m], &buf[i], 1); - else - d->buffer[d->prod++ & MUX_BUFFER_MASK] = buf[i]; - } -} - -static void mux_chr_event(void *opaque, int event) -{ - CharDriverState *chr = opaque; - MuxDriver *d = chr->opaque; - int i; - - /* Send the event to all registered listeners */ - for (i = 0; i < d->mux_cnt; i++) - if (d->chr_event[i]) - d->chr_event[i](d->ext_opaque[i], event); -} - -static void mux_chr_update_read_handler(CharDriverState *chr) -{ - MuxDriver *d = chr->opaque; - - if (d->mux_cnt >= MAX_MUX) { - fprintf(stderr, "Cannot add I/O handlers, MUX array is full\n"); - return; - } - d->ext_opaque[d->mux_cnt] = chr->handler_opaque; - d->chr_can_read[d->mux_cnt] = chr->chr_can_read; - d->chr_read[d->mux_cnt] = chr->chr_read; - d->chr_event[d->mux_cnt] = chr->chr_event; - /* Fix up the real driver with mux routines */ - if (d->mux_cnt == 0) { - qemu_chr_add_handlers(d->drv, mux_chr_can_read, mux_chr_read, - mux_chr_event, chr); - } - chr->focus = d->mux_cnt; - d->mux_cnt++; -} - -static CharDriverState *qemu_chr_open_mux(CharDriverState *drv) -{ - CharDriverState *chr; - MuxDriver *d; - - chr = qemu_mallocz(sizeof(CharDriverState)); - if (!chr) - return NULL; - d = qemu_mallocz(sizeof(MuxDriver)); - if (!d) { - free(chr); - return NULL; - } - - chr->opaque = d; - d->drv = drv; - chr->focus = -1; - chr->chr_write = mux_chr_write; - chr->chr_update_read_handler = mux_chr_update_read_handler; - chr->chr_accept_input = mux_chr_accept_input; - return chr; -} - - -#ifdef _WIN32 - -static void socket_cleanup(void) -{ - WSACleanup(); -} - -static int socket_init(void) -{ - WSADATA Data; - int ret, err; - - ret = WSAStartup(MAKEWORD(2,2), &Data); - if (ret != 0) { - err = WSAGetLastError(); - fprintf(stderr, "WSAStartup: %d\n", err); - return -1; - } - atexit(socket_cleanup); - return 0; -} - -static int send_all(int fd, const uint8_t *buf, int len1) -{ - int ret, len; - - len = len1; - while (len > 0) { - ret = send(fd, buf, len, 0); - if (ret < 0) { - int errno; - errno = WSAGetLastError(); - if (errno != WSAEWOULDBLOCK) { - return -1; - } - } else if (ret == 0) { - break; - } else { - buf += ret; - len -= ret; - } - } - return len1 - len; -} - -void socket_set_nonblock(int fd) -{ - unsigned long opt = 1; - ioctlsocket(fd, FIONBIO, &opt); -} - -#else - -static int unix_write(int fd, const uint8_t *buf, int len1) -{ - int ret, len; - - len = len1; - while (len > 0) { - ret = write(fd, buf, len); - if (ret < 0) { - if (errno != EINTR && errno != EAGAIN) - return -1; - } else if (ret == 0) { - break; - } else { - buf += ret; - len -= ret; - } - } - return len1 - len; -} - -static inline int send_all(int fd, const uint8_t *buf, int len1) -{ - return unix_write(fd, buf, len1); -} - -void socket_set_nonblock(int fd) -{ - fcntl(fd, F_SETFL, O_NONBLOCK); -} -#endif /* !_WIN32 */ - -#ifndef _WIN32 - -typedef struct { - int fd_in, fd_out; - int max_size; -} FDCharDriver; - -#define STDIO_MAX_CLIENTS 1 -static int stdio_nb_clients = 0; - -static int fd_chr_write(CharDriverState *chr, const uint8_t *buf, int len) -{ - FDCharDriver *s = chr->opaque; - return unix_write(s->fd_out, buf, len); -} - -static int fd_chr_read_poll(void *opaque) -{ - CharDriverState *chr = opaque; - FDCharDriver *s = chr->opaque; - - s->max_size = qemu_chr_can_read(chr); - return s->max_size; -} - -static void fd_chr_read(void *opaque) -{ - CharDriverState *chr = opaque; - FDCharDriver *s = chr->opaque; - int size, len; - uint8_t buf[1024]; - - len = sizeof(buf); - if (len > s->max_size) - len = s->max_size; - if (len == 0) - return; - size = read(s->fd_in, buf, len); - if (size == 0) { - /* FD has been closed. Remove it from the active list. */ - qemu_set_fd_handler2(s->fd_in, NULL, NULL, NULL, NULL); - return; - } - if (size > 0) { - qemu_chr_read(chr, buf, size); - } -} - -static void fd_chr_update_read_handler(CharDriverState *chr) -{ - FDCharDriver *s = chr->opaque; - - if (s->fd_in >= 0) { - if (nographic && s->fd_in == 0) { - } else { - qemu_set_fd_handler2(s->fd_in, fd_chr_read_poll, - fd_chr_read, NULL, chr); - } - } -} - -/* open a character device to a unix fd */ -static CharDriverState *qemu_chr_open_fd(int fd_in, int fd_out) -{ - CharDriverState *chr; - FDCharDriver *s; - - chr = qemu_mallocz(sizeof(CharDriverState)); - if (!chr) - return NULL; - s = qemu_mallocz(sizeof(FDCharDriver)); - if (!s) { - free(chr); - return NULL; - } - s->fd_in = fd_in; - s->fd_out = fd_out; - chr->opaque = s; - chr->chr_write = fd_chr_write; - chr->chr_update_read_handler = fd_chr_update_read_handler; - - qemu_chr_reset(chr); - - return chr; -} - -static CharDriverState *qemu_chr_open_file_out(const char *file_out) -{ - int fd_out; - - TFR(fd_out = open(file_out, O_WRONLY | O_TRUNC | O_CREAT | O_BINARY, 0666)); - if (fd_out < 0) - return NULL; - return qemu_chr_open_fd(-1, fd_out); -} - -static CharDriverState *qemu_chr_open_pipe(const char *filename) -{ - int fd_in, fd_out; - char filename_in[256], filename_out[256]; - - snprintf(filename_in, 256, "%s.in", filename); - snprintf(filename_out, 256, "%s.out", filename); - TFR(fd_in = open(filename_in, O_RDWR | O_BINARY)); - TFR(fd_out = open(filename_out, O_RDWR | O_BINARY)); - if (fd_in < 0 || fd_out < 0) { - if (fd_in >= 0) - close(fd_in); - if (fd_out >= 0) - close(fd_out); - TFR(fd_in = fd_out = open(filename, O_RDWR | O_BINARY)); - if (fd_in < 0) - return NULL; - } - return qemu_chr_open_fd(fd_in, fd_out); -} - - -/* for STDIO, we handle the case where several clients use it - (nographic mode) */ - -#define TERM_FIFO_MAX_SIZE 1 - -static uint8_t term_fifo[TERM_FIFO_MAX_SIZE]; -static int term_fifo_size; - -static int stdio_read_poll(void *opaque) -{ - CharDriverState *chr = opaque; - - /* try to flush the queue if needed */ - if (term_fifo_size != 0 && qemu_chr_can_read(chr) > 0) { - qemu_chr_read(chr, term_fifo, 1); - term_fifo_size = 0; - } - /* see if we can absorb more chars */ - if (term_fifo_size == 0) - return 1; - else - return 0; -} - -static void stdio_read(void *opaque) -{ - int size; - uint8_t buf[1]; - CharDriverState *chr = opaque; - - size = read(0, buf, 1); - if (size == 0) { - /* stdin has been closed. Remove it from the active list. */ - qemu_set_fd_handler2(0, NULL, NULL, NULL, NULL); - return; - } - if (size > 0) { - if (qemu_chr_can_read(chr) > 0) { - qemu_chr_read(chr, buf, 1); - } else if (term_fifo_size == 0) { - term_fifo[term_fifo_size++] = buf[0]; - } - } -} - -/* init terminal so that we can grab keys */ -static struct termios oldtty; -static int old_fd0_flags; - -static void term_exit(void) -{ - tcsetattr (0, TCSANOW, &oldtty); - fcntl(0, F_SETFL, old_fd0_flags); -} - -static void term_init(void) -{ - struct termios tty; - - tcgetattr (0, &tty); - oldtty = tty; - old_fd0_flags = fcntl(0, F_GETFL); - - tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP - |INLCR|IGNCR|ICRNL|IXON); - tty.c_oflag |= OPOST; - tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN); - /* if graphical mode, we allow Ctrl-C handling */ - if (nographic) - tty.c_lflag &= ~ISIG; - tty.c_cflag &= ~(CSIZE|PARENB); - tty.c_cflag |= CS8; - tty.c_cc[VMIN] = 1; - tty.c_cc[VTIME] = 0; - - tcsetattr (0, TCSANOW, &tty); - - atexit(term_exit); - - fcntl(0, F_SETFL, O_NONBLOCK); -} - -static CharDriverState *qemu_chr_open_stdio(void) -{ - CharDriverState *chr; - - if (stdio_nb_clients >= STDIO_MAX_CLIENTS) - return NULL; - chr = qemu_chr_open_fd(0, 1); - qemu_set_fd_handler2(0, stdio_read_poll, stdio_read, NULL, chr); - stdio_nb_clients++; - term_init(); - - return chr; -} - -#if defined(__linux__) || defined(__sun__) -static CharDriverState *qemu_chr_open_pty(void) -{ - struct termios tty; - char slave_name[1024]; - int master_fd, slave_fd; - -#if defined(__linux__) - /* Not satisfying */ - if (openpty(&master_fd, &slave_fd, slave_name, NULL, NULL) < 0) { - return NULL; - } -#endif - - /* Disabling local echo and line-buffered output */ - tcgetattr (master_fd, &tty); - tty.c_lflag &= ~(ECHO|ICANON|ISIG); - tty.c_cc[VMIN] = 1; - tty.c_cc[VTIME] = 0; - tcsetattr (master_fd, TCSAFLUSH, &tty); - - fprintf(stderr, "char device redirected to %s\n", slave_name); - return qemu_chr_open_fd(master_fd, master_fd); -} - -static void tty_serial_init(int fd, int speed, - int parity, int data_bits, int stop_bits) -{ - struct termios tty; - speed_t spd; - -#if 0 - printf("tty_serial_init: speed=%d parity=%c data=%d stop=%d\n", - speed, parity, data_bits, stop_bits); -#endif - tcgetattr (fd, &tty); - - switch(speed) { - case 50: - spd = B50; - break; - case 75: - spd = B75; - break; - case 300: - spd = B300; - break; - case 600: - spd = B600; - break; - case 1200: - spd = B1200; - break; - case 2400: - spd = B2400; - break; - case 4800: - spd = B4800; - break; - case 9600: - spd = B9600; - break; - case 19200: - spd = B19200; - break; - case 38400: - spd = B38400; - break; - case 57600: - spd = B57600; - break; - default: - case 115200: - spd = B115200; - break; - } - - cfsetispeed(&tty, spd); - cfsetospeed(&tty, spd); - - tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP - |INLCR|IGNCR|ICRNL|IXON); - tty.c_oflag |= OPOST; - tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN|ISIG); - tty.c_cflag &= ~(CSIZE|PARENB|PARODD|CRTSCTS|CSTOPB); - switch(data_bits) { - default: - case 8: - tty.c_cflag |= CS8; - break; - case 7: - tty.c_cflag |= CS7; - break; - case 6: - tty.c_cflag |= CS6; - break; - case 5: - tty.c_cflag |= CS5; - break; - } - switch(parity) { - default: - case 'N': - break; - case 'E': - tty.c_cflag |= PARENB; - break; - case 'O': - tty.c_cflag |= PARENB | PARODD; - break; - } - if (stop_bits == 2) - tty.c_cflag |= CSTOPB; - - tcsetattr (fd, TCSANOW, &tty); -} - -static int tty_serial_ioctl(CharDriverState *chr, int cmd, void *arg) -{ - FDCharDriver *s = chr->opaque; - - switch(cmd) { - case CHR_IOCTL_SERIAL_SET_PARAMS: - { - QEMUSerialSetParams *ssp = arg; - tty_serial_init(s->fd_in, ssp->speed, ssp->parity, - ssp->data_bits, ssp->stop_bits); - } - break; - case CHR_IOCTL_SERIAL_SET_BREAK: - { - int enable = *(int *)arg; - if (enable) - tcsendbreak(s->fd_in, 1); - } - break; - default: - return -ENOTSUP; - } - return 0; -} - -static CharDriverState *qemu_chr_open_tty(const char *filename) -{ - CharDriverState *chr; - int fd; - - TFR(fd = open(filename, O_RDWR | O_NONBLOCK)); - fcntl(fd, F_SETFL, O_NONBLOCK); - tty_serial_init(fd, 115200, 'N', 8, 1); - chr = qemu_chr_open_fd(fd, fd); - if (!chr) { - close(fd); - return NULL; - } - chr->chr_ioctl = tty_serial_ioctl; - qemu_chr_reset(chr); - return chr; -} -#else /* ! __linux__ && ! __sun__ */ -static CharDriverState *qemu_chr_open_pty(void) -{ - return NULL; -} -#endif /* __linux__ || __sun__ */ - -#if defined(__linux__) -typedef struct { - int fd; - int mode; -} ParallelCharDriver; - -static int pp_hw_mode(ParallelCharDriver *s, uint16_t mode) -{ - if (s->mode != mode) { - int m = mode; - if (ioctl(s->fd, PPSETMODE, &m) < 0) - return 0; - s->mode = mode; - } - return 1; -} - -static int pp_ioctl(CharDriverState *chr, int cmd, void *arg) -{ - ParallelCharDriver *drv = chr->opaque; - int fd = drv->fd; - uint8_t b; - - switch(cmd) { - case CHR_IOCTL_PP_READ_DATA: - if (ioctl(fd, PPRDATA, &b) < 0) - return -ENOTSUP; - *(uint8_t *)arg = b; - break; - case CHR_IOCTL_PP_WRITE_DATA: - b = *(uint8_t *)arg; - if (ioctl(fd, PPWDATA, &b) < 0) - return -ENOTSUP; - break; - case CHR_IOCTL_PP_READ_CONTROL: - if (ioctl(fd, PPRCONTROL, &b) < 0) - return -ENOTSUP; - /* Linux gives only the lowest bits, and no way to know data - direction! For better compatibility set the fixed upper - bits. */ - *(uint8_t *)arg = b | 0xc0; - break; - case CHR_IOCTL_PP_WRITE_CONTROL: - b = *(uint8_t *)arg; - if (ioctl(fd, PPWCONTROL, &b) < 0) - return -ENOTSUP; - break; - case CHR_IOCTL_PP_READ_STATUS: - if (ioctl(fd, PPRSTATUS, &b) < 0) - return -ENOTSUP; - *(uint8_t *)arg = b; - break; - case CHR_IOCTL_PP_EPP_READ_ADDR: - if (pp_hw_mode(drv, IEEE1284_MODE_EPP|IEEE1284_ADDR)) { - struct ParallelIOArg *parg = arg; - int n = read(fd, parg->buffer, parg->count); - if (n != parg->count) { - return -EIO; - } - } - break; - case CHR_IOCTL_PP_EPP_READ: - if (pp_hw_mode(drv, IEEE1284_MODE_EPP)) { - struct ParallelIOArg *parg = arg; - int n = read(fd, parg->buffer, parg->count); - if (n != parg->count) { - return -EIO; - } - } - break; - case CHR_IOCTL_PP_EPP_WRITE_ADDR: - if (pp_hw_mode(drv, IEEE1284_MODE_EPP|IEEE1284_ADDR)) { - struct ParallelIOArg *parg = arg; - int n = write(fd, parg->buffer, parg->count); - if (n != parg->count) { - return -EIO; - } - } - break; - case CHR_IOCTL_PP_EPP_WRITE: - if (pp_hw_mode(drv, IEEE1284_MODE_EPP)) { - struct ParallelIOArg *parg = arg; - int n = write(fd, parg->buffer, parg->count); - if (n != parg->count) { - return -EIO; - } - } - break; - default: - return -ENOTSUP; - } - return 0; -} - -static void pp_close(CharDriverState *chr) -{ - ParallelCharDriver *drv = chr->opaque; - int fd = drv->fd; - - pp_hw_mode(drv, IEEE1284_MODE_COMPAT); - ioctl(fd, PPRELEASE); - close(fd); - qemu_free(drv); -} - -static CharDriverState *qemu_chr_open_pp(const char *filename) -{ - CharDriverState *chr; - ParallelCharDriver *drv; - int fd; - - TFR(fd = open(filename, O_RDWR)); - if (fd < 0) - return NULL; - - if (ioctl(fd, PPCLAIM) < 0) { - close(fd); - return NULL; - } - - drv = qemu_mallocz(sizeof(ParallelCharDriver)); - if (!drv) { - close(fd); - return NULL; - } - drv->fd = fd; - drv->mode = IEEE1284_MODE_COMPAT; - - chr = qemu_mallocz(sizeof(CharDriverState)); - if (!chr) { - qemu_free(drv); - close(fd); - return NULL; - } - chr->chr_write = null_chr_write; - chr->chr_ioctl = pp_ioctl; - chr->chr_close = pp_close; - chr->opaque = drv; - - qemu_chr_reset(chr); - - return chr; -} -#endif /* __linux__ */ - -#else /* _WIN32 */ - -typedef struct { - int max_size; - HANDLE hcom, hrecv, hsend; - OVERLAPPED orecv, osend; - BOOL fpipe; - DWORD len; -} WinCharState; - -#define NSENDBUF 2048 -#define NRECVBUF 2048 -#define MAXCONNECT 1 -#define NTIMEOUT 5000 - -static int win_chr_poll(void *opaque); -static int win_chr_pipe_poll(void *opaque); - -static void win_chr_close(CharDriverState *chr) -{ - WinCharState *s = chr->opaque; - - if (s->hsend) { - CloseHandle(s->hsend); - s->hsend = NULL; - } - if (s->hrecv) { - CloseHandle(s->hrecv); - s->hrecv = NULL; - } - if (s->hcom) { - CloseHandle(s->hcom); - s->hcom = NULL; - } - if (s->fpipe) - qemu_del_polling_cb(win_chr_pipe_poll, chr); - else - qemu_del_polling_cb(win_chr_poll, chr); -} - -static int win_chr_init(CharDriverState *chr, const char *filename) -{ - WinCharState *s = chr->opaque; - COMMCONFIG comcfg; - COMMTIMEOUTS cto = { 0, 0, 0, 0, 0}; - COMSTAT comstat; - DWORD size; - DWORD err; - - s->hsend = CreateEvent(NULL, TRUE, FALSE, NULL); - if (!s->hsend) { - fprintf(stderr, "Failed CreateEvent\n"); - goto fail; - } - s->hrecv = CreateEvent(NULL, TRUE, FALSE, NULL); - if (!s->hrecv) { - fprintf(stderr, "Failed CreateEvent\n"); - goto fail; - } - - s->hcom = CreateFile(filename, GENERIC_READ|GENERIC_WRITE, 0, NULL, - OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); - if (s->hcom == INVALID_HANDLE_VALUE) { - fprintf(stderr, "Failed CreateFile (%lu)\n", GetLastError()); - s->hcom = NULL; - goto fail; - } - - if (!SetupComm(s->hcom, NRECVBUF, NSENDBUF)) { - fprintf(stderr, "Failed SetupComm\n"); - goto fail; - } - - ZeroMemory(&comcfg, sizeof(COMMCONFIG)); - size = sizeof(COMMCONFIG); - GetDefaultCommConfig(filename, &comcfg, &size); - comcfg.dcb.DCBlength = sizeof(DCB); - CommConfigDialog(filename, NULL, &comcfg); - - if (!SetCommState(s->hcom, &comcfg.dcb)) { - fprintf(stderr, "Failed SetCommState\n"); - goto fail; - } - - if (!SetCommMask(s->hcom, EV_ERR)) { - fprintf(stderr, "Failed SetCommMask\n"); - goto fail; - } - - cto.ReadIntervalTimeout = MAXDWORD; - if (!SetCommTimeouts(s->hcom, &cto)) { - fprintf(stderr, "Failed SetCommTimeouts\n"); - goto fail; - } - - if (!ClearCommError(s->hcom, &err, &comstat)) { - fprintf(stderr, "Failed ClearCommError\n"); - goto fail; - } - qemu_add_polling_cb(win_chr_poll, chr); - return 0; - - fail: - win_chr_close(chr); - return -1; -} - -static int win_chr_write(CharDriverState *chr, const uint8_t *buf, int len1) -{ - WinCharState *s = chr->opaque; - DWORD len, ret, size, err; - - len = len1; - ZeroMemory(&s->osend, sizeof(s->osend)); - s->osend.hEvent = s->hsend; - while (len > 0) { - if (s->hsend) - ret = WriteFile(s->hcom, buf, len, &size, &s->osend); - else - ret = WriteFile(s->hcom, buf, len, &size, NULL); - if (!ret) { - err = GetLastError(); - if (err == ERROR_IO_PENDING) { - ret = GetOverlappedResult(s->hcom, &s->osend, &size, TRUE); - if (ret) { - buf += size; - len -= size; - } else { - break; - } - } else { - break; - } - } else { - buf += size; - len -= size; - } - } - return len1 - len; -} - -static int win_chr_read_poll(CharDriverState *chr) -{ - WinCharState *s = chr->opaque; - - s->max_size = qemu_chr_can_read(chr); - return s->max_size; -} - -static void win_chr_readfile(CharDriverState *chr) -{ - WinCharState *s = chr->opaque; - int ret, err; - uint8_t buf[1024]; - DWORD size; - - ZeroMemory(&s->orecv, sizeof(s->orecv)); - s->orecv.hEvent = s->hrecv; - ret = ReadFile(s->hcom, buf, s->len, &size, &s->orecv); - if (!ret) { - err = GetLastError(); - if (err == ERROR_IO_PENDING) { - ret = GetOverlappedResult(s->hcom, &s->orecv, &size, TRUE); - } - } - - if (size > 0) { - qemu_chr_read(chr, buf, size); - } -} - -static void win_chr_read(CharDriverState *chr) -{ - WinCharState *s = chr->opaque; - - if (s->len > s->max_size) - s->len = s->max_size; - if (s->len == 0) - return; - - win_chr_readfile(chr); -} - -static int win_chr_poll(void *opaque) -{ - CharDriverState *chr = opaque; - WinCharState *s = chr->opaque; - COMSTAT status; - DWORD comerr; - - ClearCommError(s->hcom, &comerr, &status); - if (status.cbInQue > 0) { - s->len = status.cbInQue; - win_chr_read_poll(chr); - win_chr_read(chr); - return 1; - } - return 0; -} - -static CharDriverState *qemu_chr_open_win(const char *filename) -{ - CharDriverState *chr; - WinCharState *s; - - chr = qemu_mallocz(sizeof(CharDriverState)); - if (!chr) - return NULL; - s = qemu_mallocz(sizeof(WinCharState)); - if (!s) { - free(chr); - return NULL; - } - chr->opaque = s; - chr->chr_write = win_chr_write; - chr->chr_close = win_chr_close; - - if (win_chr_init(chr, filename) < 0) { - free(s); - free(chr); - return NULL; - } - qemu_chr_reset(chr); - return chr; -} - -static int win_chr_pipe_poll(void *opaque) -{ - CharDriverState *chr = opaque; - WinCharState *s = chr->opaque; - DWORD size; - - PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL); - if (size > 0) { - s->len = size; - win_chr_read_poll(chr); - win_chr_read(chr); - return 1; - } - return 0; -} - -static int win_chr_pipe_init(CharDriverState *chr, const char *filename) -{ - WinCharState *s = chr->opaque; - OVERLAPPED ov; - int ret; - DWORD size; - char openname[256]; - - s->fpipe = TRUE; - - s->hsend = CreateEvent(NULL, TRUE, FALSE, NULL); - if (!s->hsend) { - fprintf(stderr, "Failed CreateEvent\n"); - goto fail; - } - s->hrecv = CreateEvent(NULL, TRUE, FALSE, NULL); - if (!s->hrecv) { - fprintf(stderr, "Failed CreateEvent\n"); - goto fail; - } - - snprintf(openname, sizeof(openname), "\\\\.\\pipe\\%s", filename); - s->hcom = CreateNamedPipe(openname, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, - PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | - PIPE_WAIT, - MAXCONNECT, NSENDBUF, NRECVBUF, NTIMEOUT, NULL); - if (s->hcom == INVALID_HANDLE_VALUE) { - fprintf(stderr, "Failed CreateNamedPipe (%lu)\n", GetLastError()); - s->hcom = NULL; - goto fail; - } - - ZeroMemory(&ov, sizeof(ov)); - ov.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); - ret = ConnectNamedPipe(s->hcom, &ov); - if (ret) { - fprintf(stderr, "Failed ConnectNamedPipe\n"); - goto fail; - } - - ret = GetOverlappedResult(s->hcom, &ov, &size, TRUE); - if (!ret) { - fprintf(stderr, "Failed GetOverlappedResult\n"); - if (ov.hEvent) { - CloseHandle(ov.hEvent); - ov.hEvent = NULL; - } - goto fail; - } - - if (ov.hEvent) { - CloseHandle(ov.hEvent); - ov.hEvent = NULL; - } - qemu_add_polling_cb(win_chr_pipe_poll, chr); - return 0; - - fail: - win_chr_close(chr); - return -1; -} - - -static CharDriverState *qemu_chr_open_win_pipe(const char *filename) -{ - CharDriverState *chr; - WinCharState *s; - - chr = qemu_mallocz(sizeof(CharDriverState)); - if (!chr) - return NULL; - s = qemu_mallocz(sizeof(WinCharState)); - if (!s) { - free(chr); - return NULL; - } - chr->opaque = s; - chr->chr_write = win_chr_write; - chr->chr_close = win_chr_close; - - if (win_chr_pipe_init(chr, filename) < 0) { - free(s); - free(chr); - return NULL; - } - qemu_chr_reset(chr); - return chr; -} - -static CharDriverState *qemu_chr_open_win_file(HANDLE fd_out) -{ - CharDriverState *chr; - WinCharState *s; - - chr = qemu_mallocz(sizeof(CharDriverState)); - if (!chr) - return NULL; - s = qemu_mallocz(sizeof(WinCharState)); - if (!s) { - free(chr); - return NULL; - } - s->hcom = fd_out; - chr->opaque = s; - chr->chr_write = win_chr_write; - qemu_chr_reset(chr); - return chr; -} - -static CharDriverState *qemu_chr_open_win_con(const char *filename) -{ - return qemu_chr_open_win_file(GetStdHandle(STD_OUTPUT_HANDLE)); -} - -static CharDriverState *qemu_chr_open_win_file_out(const char *file_out) -{ - HANDLE fd_out; - - fd_out = CreateFile(file_out, GENERIC_WRITE, FILE_SHARE_READ, NULL, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - if (fd_out == INVALID_HANDLE_VALUE) - return NULL; - - return qemu_chr_open_win_file(fd_out); -} -#endif /* !_WIN32 */ - -/***********************************************************/ -/* UDP Net console */ - -typedef struct { - int fd; - struct sockaddr_in daddr; - uint8_t buf[1024]; - int bufcnt; - int bufptr; - int max_size; -} NetCharDriver; - -static int udp_chr_write(CharDriverState *chr, const uint8_t *buf, int len) -{ - NetCharDriver *s = chr->opaque; - - return sendto(s->fd, buf, len, 0, - (struct sockaddr *)&s->daddr, sizeof(struct sockaddr_in)); -} - -static int udp_chr_read_poll(void *opaque) -{ - CharDriverState *chr = opaque; - NetCharDriver *s = chr->opaque; - - s->max_size = qemu_chr_can_read(chr); - - /* If there were any stray characters in the queue process them - * first - */ - while (s->max_size > 0 && s->bufptr < s->bufcnt) { - qemu_chr_read(chr, &s->buf[s->bufptr], 1); - s->bufptr++; - s->max_size = qemu_chr_can_read(chr); - } - return s->max_size; -} - -static void udp_chr_read(void *opaque) -{ - CharDriverState *chr = opaque; - NetCharDriver *s = chr->opaque; - - if (s->max_size == 0) - return; - s->bufcnt = recv(s->fd, s->buf, sizeof(s->buf), 0); - s->bufptr = s->bufcnt; - if (s->bufcnt <= 0) - return; - - s->bufptr = 0; - while (s->max_size > 0 && s->bufptr < s->bufcnt) { - qemu_chr_read(chr, &s->buf[s->bufptr], 1); - s->bufptr++; - s->max_size = qemu_chr_can_read(chr); - } -} - -static void udp_chr_update_read_handler(CharDriverState *chr) -{ - NetCharDriver *s = chr->opaque; - - if (s->fd >= 0) { - qemu_set_fd_handler2(s->fd, udp_chr_read_poll, - udp_chr_read, NULL, chr); - } -} - -int parse_host_port(struct sockaddr_in *saddr, const char *str); -#ifndef _WIN32 -static int parse_unix_path(struct sockaddr_un *uaddr, const char *str); -#endif -int parse_host_src_port(struct sockaddr_in *haddr, - struct sockaddr_in *saddr, - const char *str); - -static CharDriverState *qemu_chr_open_udp(const char *def) -{ - CharDriverState *chr = NULL; - NetCharDriver *s = NULL; - int fd = -1; - struct sockaddr_in saddr; - - chr = qemu_mallocz(sizeof(CharDriverState)); - if (!chr) - goto return_err; - s = qemu_mallocz(sizeof(NetCharDriver)); - if (!s) - goto return_err; - - fd = socket(PF_INET, SOCK_DGRAM, 0); - if (fd < 0) { - perror("socket(PF_INET, SOCK_DGRAM)"); - goto return_err; - } - - if (parse_host_src_port(&s->daddr, &saddr, def) < 0) { - printf("Could not parse: %s\n", def); - goto return_err; - } - - if (bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) - { - perror("bind"); - goto return_err; - } - - s->fd = fd; - s->bufcnt = 0; - s->bufptr = 0; - chr->opaque = s; - chr->chr_write = udp_chr_write; - chr->chr_update_read_handler = udp_chr_update_read_handler; - return chr; - -return_err: - if (chr) - free(chr); - if (s) - free(s); - if (fd >= 0) - closesocket(fd); - return NULL; -} - -/***********************************************************/ -/* TCP Net console */ - -typedef struct { - int fd, listen_fd; - int connected; - int max_size; - int do_telnetopt; - int do_nodelay; - int is_unix; -} TCPCharDriver; - -static void tcp_chr_accept(void *opaque); - -static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len) -{ - TCPCharDriver *s = chr->opaque; - if (s->connected) { - return send_all(s->fd, buf, len); - } else { - /* XXX: indicate an error ? */ - return len; - } -} - -static int tcp_chr_read_poll(void *opaque) -{ - CharDriverState *chr = opaque; - TCPCharDriver *s = chr->opaque; - if (!s->connected) - return 0; - s->max_size = qemu_chr_can_read(chr); - return s->max_size; -} - -#define IAC 255 -#define IAC_BREAK 243 -static void tcp_chr_process_IAC_bytes(CharDriverState *chr, - TCPCharDriver *s, - uint8_t *buf, int *size) -{ - /* Handle any telnet client's basic IAC options to satisfy char by - * char mode with no echo. All IAC options will be removed from - * the buf and the do_telnetopt variable will be used to track the - * state of the width of the IAC information. - * - * IAC commands come in sets of 3 bytes with the exception of the - * "IAC BREAK" command and the double IAC. - */ - - int i; - int j = 0; - - for (i = 0; i < *size; i++) { - if (s->do_telnetopt > 1) { - if ((unsigned char)buf[i] == IAC && s->do_telnetopt == 2) { - /* Double IAC means send an IAC */ - if (j != i) - buf[j] = buf[i]; - j++; - s->do_telnetopt = 1; - } else { - if ((unsigned char)buf[i] == IAC_BREAK && s->do_telnetopt == 2) { - /* Handle IAC break commands by sending a serial break */ - qemu_chr_event(chr, CHR_EVENT_BREAK); - s->do_telnetopt++; - } - s->do_telnetopt++; - } - if (s->do_telnetopt >= 4) { - s->do_telnetopt = 1; - } - } else { - if ((unsigned char)buf[i] == IAC) { - s->do_telnetopt = 2; - } else { - if (j != i) - buf[j] = buf[i]; - j++; - } - } - } - *size = j; -} - -static void tcp_chr_read(void *opaque) -{ - CharDriverState *chr = opaque; - TCPCharDriver *s = chr->opaque; - uint8_t buf[1024]; - int len, size; - - if (!s->connected || s->max_size <= 0) - return; - len = sizeof(buf); - if (len > s->max_size) - len = s->max_size; - size = recv(s->fd, buf, len, 0); - if (size == 0) { - /* connection closed */ - s->connected = 0; - if (s->listen_fd >= 0) { - qemu_set_fd_handler(s->listen_fd, tcp_chr_accept, NULL, chr); - } - qemu_set_fd_handler(s->fd, NULL, NULL, NULL); - closesocket(s->fd); - s->fd = -1; - } else if (size > 0) { - if (s->do_telnetopt) - tcp_chr_process_IAC_bytes(chr, s, buf, &size); - if (size > 0) - qemu_chr_read(chr, buf, size); - } -} - -static void tcp_chr_connect(void *opaque) -{ - CharDriverState *chr = opaque; - TCPCharDriver *s = chr->opaque; - - s->connected = 1; - qemu_set_fd_handler2(s->fd, tcp_chr_read_poll, - tcp_chr_read, NULL, chr); - qemu_chr_reset(chr); -} - -#define IACSET(x,a,b,c) x[0] = a; x[1] = b; x[2] = c; -static void tcp_chr_telnet_init(int fd) -{ - char buf[3]; - /* Send the telnet negotion to put telnet in binary, no echo, single char mode */ - IACSET(buf, 0xff, 0xfb, 0x01); /* IAC WILL ECHO */ - send(fd, (char *)buf, 3, 0); - IACSET(buf, 0xff, 0xfb, 0x03); /* IAC WILL Suppress go ahead */ - send(fd, (char *)buf, 3, 0); - IACSET(buf, 0xff, 0xfb, 0x00); /* IAC WILL Binary */ - send(fd, (char *)buf, 3, 0); - IACSET(buf, 0xff, 0xfd, 0x00); /* IAC DO Binary */ - send(fd, (char *)buf, 3, 0); -} - -static void socket_set_nodelay(int fd) -{ - int val = 1; - setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val)); -} - -static void tcp_chr_accept(void *opaque) -{ - CharDriverState *chr = opaque; - TCPCharDriver *s = chr->opaque; - struct sockaddr_in saddr; -#ifndef _WIN32 - struct sockaddr_un uaddr; -#endif - struct sockaddr *addr; - socklen_t len; - int fd; - - for(;;) { -#ifndef _WIN32 - if (s->is_unix) { - len = sizeof(uaddr); - addr = (struct sockaddr *)&uaddr; - } else -#endif - { - len = sizeof(saddr); - addr = (struct sockaddr *)&saddr; - } - fd = accept(s->listen_fd, addr, &len); - if (fd < 0 && errno != EINTR) { - return; - } else if (fd >= 0) { - if (s->do_telnetopt) - tcp_chr_telnet_init(fd); - break; - } - } - socket_set_nonblock(fd); - if (s->do_nodelay) - socket_set_nodelay(fd); - s->fd = fd; - qemu_set_fd_handler(s->listen_fd, NULL, NULL, NULL); - tcp_chr_connect(chr); -} - -static void tcp_chr_close(CharDriverState *chr) -{ - TCPCharDriver *s = chr->opaque; - if (s->fd >= 0) - closesocket(s->fd); - if (s->listen_fd >= 0) - closesocket(s->listen_fd); - qemu_free(s); -} - -static CharDriverState *qemu_chr_open_tcp(const char *host_str, - int is_telnet, - int is_unix) -{ - CharDriverState *chr = NULL; - TCPCharDriver *s = NULL; - int fd = -1, ret, err, val; - int is_listen = 0; - int is_waitconnect = 1; - int do_nodelay = 0; - const char *ptr; - struct sockaddr_in saddr; -#ifndef _WIN32 - struct sockaddr_un uaddr; -#endif - struct sockaddr *addr; - socklen_t addrlen; - -#ifndef _WIN32 - if (is_unix) { - addr = (struct sockaddr *)&uaddr; - addrlen = sizeof(uaddr); - if (parse_unix_path(&uaddr, host_str) < 0) - goto fail; - } else -#endif - { - addr = (struct sockaddr *)&saddr; - addrlen = sizeof(saddr); - if (parse_host_port(&saddr, host_str) < 0) - goto fail; - } - - ptr = host_str; - while((ptr = strchr(ptr,','))) { - ptr++; - if (!strncmp(ptr,"server",6)) { - is_listen = 1; - } else if (!strncmp(ptr,"nowait",6)) { - is_waitconnect = 0; - } else if (!strncmp(ptr,"nodelay",6)) { - do_nodelay = 1; - } else { - printf("Unknown option: %s\n", ptr); - goto fail; - } - } - if (!is_listen) - is_waitconnect = 0; - - chr = qemu_mallocz(sizeof(CharDriverState)); - if (!chr) - goto fail; - s = qemu_mallocz(sizeof(TCPCharDriver)); - if (!s) - goto fail; - -#ifndef _WIN32 - if (is_unix) - fd = socket(PF_UNIX, SOCK_STREAM, 0); - else -#endif - fd = socket(PF_INET, SOCK_STREAM, 0); - - if (fd < 0) - goto fail; - - if (!is_waitconnect) - socket_set_nonblock(fd); - - s->connected = 0; - s->fd = -1; - s->listen_fd = -1; - s->is_unix = is_unix; - s->do_nodelay = do_nodelay && !is_unix; - - chr->opaque = s; - chr->chr_write = tcp_chr_write; - chr->chr_close = tcp_chr_close; - - if (is_listen) { - /* allow fast reuse */ -#ifndef _WIN32 - if (is_unix) { - char path[109]; - strncpy(path, uaddr.sun_path, 108); - path[108] = 0; - unlink(path); - } else -#endif - { - val = 1; - setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char *)&val, sizeof(val)); - } - - ret = bind(fd, addr, addrlen); - if (ret < 0) - goto fail; - - ret = listen(fd, 0); - if (ret < 0) - goto fail; - - s->listen_fd = fd; - qemu_set_fd_handler(s->listen_fd, tcp_chr_accept, NULL, chr); - if (is_telnet) - s->do_telnetopt = 1; - } else { - for(;;) { - ret = connect(fd, addr, addrlen); - if (ret < 0) { - err = socket_error(); - if (err == EINTR || err == EWOULDBLOCK) { - } else if (err == EINPROGRESS) { - break; -#ifdef _WIN32 - } else if (err == WSAEALREADY) { - break; -#endif - } else { - goto fail; - } - } else { - s->connected = 1; - break; - } - } - s->fd = fd; - socket_set_nodelay(fd); - if (s->connected) - tcp_chr_connect(chr); - else - qemu_set_fd_handler(s->fd, NULL, tcp_chr_connect, chr); - } - - if (is_listen && is_waitconnect) { - printf("QEMU waiting for connection on: %s\n", host_str); - tcp_chr_accept(chr); - socket_set_nonblock(s->listen_fd); - } - - return chr; - fail: - if (fd >= 0) - closesocket(fd); - qemu_free(s); - qemu_free(chr); - return NULL; -} - -CharDriverState *qemu_chr_open(const char *filename) -{ - const char *p; - - if (!strcmp(filename, "vc")) { - return text_console_init(&display_state, 0); - } else if (strstart(filename, "vc:", &p)) { - return text_console_init(&display_state, p); - } else if (!strcmp(filename, "null")) { - return qemu_chr_open_null(); - } else - if (strstart(filename, "tcp:", &p)) { - return qemu_chr_open_tcp(p, 0, 0); - } else - if (strstart(filename, "telnet:", &p)) { - return qemu_chr_open_tcp(p, 1, 0); - } else - if (strstart(filename, "udp:", &p)) { - return qemu_chr_open_udp(p); - } else - if (strstart(filename, "mon:", &p)) { - CharDriverState *drv = qemu_chr_open(p); - if (drv) { - drv = qemu_chr_open_mux(drv); - monitor_init(drv, !nographic); - return drv; - } - printf("Unable to open driver: %s\n", p); - return 0; - } else -#ifndef _WIN32 - if (strstart(filename, "unix:", &p)) { - return qemu_chr_open_tcp(p, 0, 1); - } else if (strstart(filename, "file:", &p)) { - return qemu_chr_open_file_out(p); - } else if (strstart(filename, "pipe:", &p)) { - return qemu_chr_open_pipe(p); - } else if (!strcmp(filename, "pty")) { - return qemu_chr_open_pty(); - } else if (!strcmp(filename, "stdio")) { - return qemu_chr_open_stdio(); - } else -#if defined(__linux__) - if (strstart(filename, "/dev/parport", NULL)) { - return qemu_chr_open_pp(filename); - } else -#endif -#if defined(__linux__) || defined(__sun__) - if (strstart(filename, "/dev/", NULL)) { - return qemu_chr_open_tty(filename); - } else -#endif -#else /* !_WIN32 */ - if (strstart(filename, "COM", NULL)) { - return qemu_chr_open_win(filename); - } else - if (strstart(filename, "pipe:", &p)) { - return qemu_chr_open_win_pipe(p); - } else - if (strstart(filename, "con:", NULL)) { - return qemu_chr_open_win_con(filename); - } else - if (strstart(filename, "file:", &p)) { - return qemu_chr_open_win_file_out(p); - } -#endif - { - return NULL; - } -} - -void qemu_chr_close(CharDriverState *chr) -{ - if (chr->chr_close) - chr->chr_close(chr); -} - -/***********************************************************/ -/* network device redirectors */ - -__attribute__ (( unused )) -static void hex_dump(FILE *f, const uint8_t *buf, int size) -{ - int len, i, j, c; - - for(i=0;i 16) - len = 16; - fprintf(f, "%08x ", i); - for(j=0;j<16;j++) { - if (j < len) - fprintf(f, " %02x", buf[i+j]); - else - fprintf(f, " "); - } - fprintf(f, " "); - for(j=0;j '~') - c = '.'; - fprintf(f, "%c", c); - } - fprintf(f, "\n"); - } -} - -static int parse_macaddr(uint8_t *macaddr, const char *p) -{ - int i; - char *last_char; - long int offset; - - errno = 0; - offset = strtol(p, &last_char, 0); - if (0 == errno && '\0' == *last_char && - offset >= 0 && offset <= 0xFFFFFF) { - macaddr[3] = (offset & 0xFF0000) >> 16; - macaddr[4] = (offset & 0xFF00) >> 8; - macaddr[5] = offset & 0xFF; - return 0; - } else { - for(i = 0; i < 6; i++) { - macaddr[i] = strtol(p, (char **)&p, 16); - if (i == 5) { - if (*p != '\0') - return -1; - } else { - if (*p != ':' && *p != '-') - return -1; - p++; - } - } - return 0; - } - - return -1; -} - -static int get_str_sep(char *buf, int buf_size, const char **pp, int sep) -{ - const char *p, *p1; - int len; - p = *pp; - p1 = strchr(p, sep); - if (!p1) - return -1; - len = p1 - p; - p1++; - if (buf_size > 0) { - if (len > buf_size - 1) - len = buf_size - 1; - memcpy(buf, p, len); - buf[len] = '\0'; - } - *pp = p1; - return 0; -} - -int parse_host_src_port(struct sockaddr_in *haddr, - struct sockaddr_in *saddr, - const char *input_str) -{ - char *str = strdup(input_str); - char *host_str = str; - char *src_str; - char *ptr; - - /* - * Chop off any extra arguments at the end of the string which - * would start with a comma, then fill in the src port information - * if it was provided else use the "any address" and "any port". - */ - if ((ptr = strchr(str,','))) - *ptr = '\0'; - - if ((src_str = strchr(input_str,'@'))) { - *src_str = '\0'; - src_str++; - } - - if (parse_host_port(haddr, host_str) < 0) - goto fail; - - if (!src_str || *src_str == '\0') - src_str = ":0"; - - if (parse_host_port(saddr, src_str) < 0) - goto fail; - - free(str); - return(0); - -fail: - free(str); - return -1; -} - -int parse_host_port(struct sockaddr_in *saddr, const char *str) -{ - char buf[512]; - struct hostent *he; - const char *p, *r; - int port; - - p = str; - if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) - return -1; - saddr->sin_family = AF_INET; - if (buf[0] == '\0') { - saddr->sin_addr.s_addr = 0; - } else { - if (isdigit(buf[0])) { - if (!inet_aton(buf, &saddr->sin_addr)) - return -1; - } else { - if ((he = gethostbyname(buf)) == NULL) - return - 1; - saddr->sin_addr = *(struct in_addr *)he->h_addr; - } - } - port = strtol(p, (char **)&r, 0); - if (r == p) - return -1; - saddr->sin_port = htons(port); - return 0; -} - -#ifndef _WIN32 -static int parse_unix_path(struct sockaddr_un *uaddr, const char *str) -{ - const char *p; - int len; - - len = MIN(108, strlen(str)); - p = strchr(str, ','); - if (p) - len = MIN(len, p - str); - - memset(uaddr, 0, sizeof(*uaddr)); - - uaddr->sun_family = AF_UNIX; - memcpy(uaddr->sun_path, str, len); - - return 0; -} -#endif - -/* find or alloc a new VLAN */ -VLANState *qemu_find_vlan(int id) -{ - VLANState **pvlan, *vlan; - for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { - if (vlan->id == id) - return vlan; - } - vlan = qemu_mallocz(sizeof(VLANState)); - if (!vlan) - return NULL; - vlan->id = id; - vlan->next = NULL; - pvlan = &first_vlan; - while (*pvlan != NULL) - pvlan = &(*pvlan)->next; - *pvlan = vlan; - return vlan; -} - -VLANClientState *qemu_new_vlan_client(VLANState *vlan, - IOReadHandler *fd_read, - IOCanRWHandler *fd_can_read, - void *opaque) -{ - VLANClientState *vc, **pvc; - vc = qemu_mallocz(sizeof(VLANClientState)); - if (!vc) - return NULL; - vc->fd_read = fd_read; - vc->fd_can_read = fd_can_read; - vc->opaque = opaque; - vc->vlan = vlan; - - vc->next = NULL; - pvc = &vlan->first_client; - while (*pvc != NULL) - pvc = &(*pvc)->next; - *pvc = vc; - return vc; -} - -int qemu_can_send_packet(VLANClientState *vc1) -{ - VLANState *vlan = vc1->vlan; - VLANClientState *vc; - - for(vc = vlan->first_client; vc != NULL; vc = vc->next) { - if (vc != vc1) { - if (vc->fd_can_read && vc->fd_can_read(vc->opaque)) - return 1; - } - } - return 0; -} - -void qemu_send_packet(VLANClientState *vc1, const uint8_t *buf, int size) -{ - VLANState *vlan = vc1->vlan; - VLANClientState *vc; - -#if 0 - printf("vlan %d send:\n", vlan->id); - hex_dump(stdout, buf, size); -#endif - for(vc = vlan->first_client; vc != NULL; vc = vc->next) { - if (vc != vc1) { - vc->fd_read(vc->opaque, buf, size); - } - } -} - -#if defined(CONFIG_SLIRP) - -/* slirp network adapter */ - -static int slirp_inited; -static VLANClientState *slirp_vc; - -int slirp_can_output(void) -{ - return !slirp_vc || qemu_can_send_packet(slirp_vc); -} - -void slirp_output(const uint8_t *pkt, int pkt_len) -{ -#if 0 - printf("slirp output:\n"); - hex_dump(stdout, pkt, pkt_len); -#endif - if (!slirp_vc) - return; - qemu_send_packet(slirp_vc, pkt, pkt_len); -} - -static void slirp_receive(void *opaque, const uint8_t *buf, int size) -{ -#if 0 - printf("slirp input:\n"); - hex_dump(stdout, buf, size); -#endif - slirp_input(buf, size); -} - -static int net_slirp_init(VLANState *vlan) -{ - if (!slirp_inited) { - slirp_inited = 1; - slirp_init(); - } - slirp_vc = qemu_new_vlan_client(vlan, - slirp_receive, NULL, NULL); - snprintf(slirp_vc->info_str, sizeof(slirp_vc->info_str), "user redirector"); - return 0; -} - -static void net_slirp_redir(const char *redir_str) -{ - int is_udp; - char buf[256], *r; - const char *p; - struct in_addr guest_addr; - int host_port, guest_port; - - if (!slirp_inited) { - slirp_inited = 1; - slirp_init(); - } - - p = redir_str; - if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) - goto fail; - if (!strcmp(buf, "tcp")) { - is_udp = 0; - } else if (!strcmp(buf, "udp")) { - is_udp = 1; - } else { - goto fail; - } - - if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) - goto fail; - host_port = strtol(buf, &r, 0); - if (r == buf) - goto fail; - - if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) - goto fail; - if (buf[0] == '\0') { - pstrcpy(buf, sizeof(buf), "10.0.2.15"); - } - if (!inet_aton(buf, &guest_addr)) - goto fail; - - guest_port = strtol(p, &r, 0); - if (r == p) - goto fail; - - if (slirp_redir(is_udp, host_port, guest_addr, guest_port) < 0) { - fprintf(stderr, "qemu: could not set up redirection\n"); - exit(1); - } - return; - fail: - fprintf(stderr, "qemu: syntax: -redir [tcp|udp]:host-port:[guest-host]:guest-port\n"); - exit(1); -} - -#ifndef _WIN32 - -char smb_dir[1024]; - -static void smb_exit(void) -{ - DIR *d; - struct dirent *de; - char filename[1024]; - - /* erase all the files in the directory */ - d = opendir(smb_dir); - for(;;) { - de = readdir(d); - if (!de) - break; - if (strcmp(de->d_name, ".") != 0 && - strcmp(de->d_name, "..") != 0) { - snprintf(filename, sizeof(filename), "%s/%s", - smb_dir, de->d_name); - unlink(filename); - } - } - closedir(d); - rmdir(smb_dir); -} - -/* automatic user mode samba server configuration */ -static void net_slirp_smb(const char *exported_dir) -{ - char smb_conf[1024]; - char smb_cmdline[1024]; - FILE *f; - - if (!slirp_inited) { - slirp_inited = 1; - slirp_init(); - } - - /* XXX: better tmp dir construction */ - snprintf(smb_dir, sizeof(smb_dir), "/tmp/qemu-smb.%d", getpid()); - if (mkdir(smb_dir, 0700) < 0) { - fprintf(stderr, "qemu: could not create samba server dir '%s'\n", smb_dir); - exit(1); - } - snprintf(smb_conf, sizeof(smb_conf), "%s/%s", smb_dir, "smb.conf"); - - f = fopen(smb_conf, "w"); - if (!f) { - fprintf(stderr, "qemu: could not create samba server configuration file '%s'\n", smb_conf); - exit(1); - } - fprintf(f, - "[global]\n" - "private dir=%s\n" - "smb ports=0\n" - "socket address=127.0.0.1\n" - "pid directory=%s\n" - "lock directory=%s\n" - "log file=%s/log.smbd\n" - "smb passwd file=%s/smbpasswd\n" - "security = share\n" - "[qemu]\n" - "path=%s\n" - "read only=no\n" - "guest ok=yes\n", - smb_dir, - smb_dir, - smb_dir, - smb_dir, - smb_dir, - exported_dir - ); - fclose(f); - atexit(smb_exit); - - snprintf(smb_cmdline, sizeof(smb_cmdline), "%s -s %s", - SMBD_COMMAND, smb_conf); - - slirp_add_exec(0, smb_cmdline, 4, 139); -} - -#endif /* !defined(_WIN32) */ -void do_info_slirp(void) -{ - slirp_stats(); -} - -#endif /* CONFIG_SLIRP */ - -#if !defined(_WIN32) - -typedef struct TAPState { - VLANClientState *vc; - int fd; - char down_script[1024]; -} TAPState; - -static void tap_receive(void *opaque, const uint8_t *buf, int size) -{ - TAPState *s = opaque; - int ret; - for(;;) { - ret = write(s->fd, buf, size); - if (ret < 0 && (errno == EINTR || errno == EAGAIN)) { - } else { - break; - } - } -} - -static void tap_send(void *opaque) -{ - TAPState *s = opaque; - uint8_t buf[4096]; - int size; - -#ifdef __sun__ - struct strbuf sbuf; - int f = 0; - sbuf.maxlen = sizeof(buf); - sbuf.buf = buf; - size = getmsg(s->fd, NULL, &sbuf, &f) >=0 ? sbuf.len : -1; -#else - size = read(s->fd, buf, sizeof(buf)); -#endif - if (size > 0) { - qemu_send_packet(s->vc, buf, size); - } -} - -/* fd support */ - -static TAPState *net_tap_fd_init(VLANState *vlan, int fd) -{ - TAPState *s; - - s = qemu_mallocz(sizeof(TAPState)); - if (!s) - return NULL; - s->fd = fd; - s->vc = qemu_new_vlan_client(vlan, tap_receive, NULL, s); - qemu_set_fd_handler(s->fd, tap_send, NULL, s); - snprintf(s->vc->info_str, sizeof(s->vc->info_str), "tap: fd=%d", fd); - return s; -} - -#if defined (_BSD) || defined (__FreeBSD_kernel__) -static int tap_open(char *ifname, int ifname_size) -{ - int fd; - char *dev; - struct stat s; - - TFR(fd = open("/dev/tap", O_RDWR)); - if (fd < 0) { - fprintf(stderr, "warning: could not open /dev/tap: no virtual network emulation\n"); - return -1; - } - - fstat(fd, &s); - dev = devname(s.st_rdev, S_IFCHR); - pstrcpy(ifname, ifname_size, dev); - - fcntl(fd, F_SETFL, O_NONBLOCK); - return fd; -} -#elif defined(__sun__) -#define TUNNEWPPA (('T'<<16) | 0x0001) -/* - * Allocate TAP device, returns opened fd. - * Stores dev name in the first arg(must be large enough). - */ -int tap_alloc(char *dev) -{ - int tap_fd, if_fd, ppa = -1; - static int ip_fd = 0; - char *ptr; - - static int arp_fd = 0; - int ip_muxid, arp_muxid; - struct strioctl strioc_if, strioc_ppa; - int link_type = I_PLINK;; - struct lifreq ifr; - char actual_name[32] = ""; - - memset(&ifr, 0x0, sizeof(ifr)); - - if( *dev ){ - ptr = dev; - while( *ptr && !isdigit((int)*ptr) ) ptr++; - ppa = atoi(ptr); - } - - /* Check if IP device was opened */ - if( ip_fd ) - close(ip_fd); - - TFR(ip_fd = open("/dev/udp", O_RDWR, 0)); - if (ip_fd < 0) { - syslog(LOG_ERR, "Can't open /dev/ip (actually /dev/udp)"); - return -1; - } - - TFR(tap_fd = open("/dev/tap", O_RDWR, 0)); - if (tap_fd < 0) { - syslog(LOG_ERR, "Can't open /dev/tap"); - return -1; - } - - /* Assign a new PPA and get its unit number. */ - strioc_ppa.ic_cmd = TUNNEWPPA; - strioc_ppa.ic_timout = 0; - strioc_ppa.ic_len = sizeof(ppa); - strioc_ppa.ic_dp = (char *)&ppa; - if ((ppa = ioctl (tap_fd, I_STR, &strioc_ppa)) < 0) - syslog (LOG_ERR, "Can't assign new interface"); - - TFR(if_fd = open("/dev/tap", O_RDWR, 0)); - if (if_fd < 0) { - syslog(LOG_ERR, "Can't open /dev/tap (2)"); - return -1; - } - if(ioctl(if_fd, I_PUSH, "ip") < 0){ - syslog(LOG_ERR, "Can't push IP module"); - return -1; - } - - if (ioctl(if_fd, SIOCGLIFFLAGS, &ifr) < 0) - syslog(LOG_ERR, "Can't get flags\n"); - - snprintf (actual_name, 32, "tap%d", ppa); - strncpy (ifr.lifr_name, actual_name, sizeof (ifr.lifr_name)); - - ifr.lifr_ppa = ppa; - /* Assign ppa according to the unit number returned by tun device */ - - if (ioctl (if_fd, SIOCSLIFNAME, &ifr) < 0) - syslog (LOG_ERR, "Can't set PPA %d", ppa); - if (ioctl(if_fd, SIOCGLIFFLAGS, &ifr) <0) - syslog (LOG_ERR, "Can't get flags\n"); - /* Push arp module to if_fd */ - if (ioctl (if_fd, I_PUSH, "arp") < 0) - syslog (LOG_ERR, "Can't push ARP module (2)"); - - /* Push arp module to ip_fd */ - if (ioctl (ip_fd, I_POP, NULL) < 0) - syslog (LOG_ERR, "I_POP failed\n"); - if (ioctl (ip_fd, I_PUSH, "arp") < 0) - syslog (LOG_ERR, "Can't push ARP module (3)\n"); - /* Open arp_fd */ - TFR(arp_fd = open ("/dev/tap", O_RDWR, 0)); - if (arp_fd < 0) - syslog (LOG_ERR, "Can't open %s\n", "/dev/tap"); - - /* Set ifname to arp */ - strioc_if.ic_cmd = SIOCSLIFNAME; - strioc_if.ic_timout = 0; - strioc_if.ic_len = sizeof(ifr); - strioc_if.ic_dp = (char *)𝔦 - if (ioctl(arp_fd, I_STR, &strioc_if) < 0){ - syslog (LOG_ERR, "Can't set ifname to arp\n"); - } - - if((ip_muxid = ioctl(ip_fd, I_LINK, if_fd)) < 0){ - syslog(LOG_ERR, "Can't link TAP device to IP"); - return -1; - } - - if ((arp_muxid = ioctl (ip_fd, link_type, arp_fd)) < 0) - syslog (LOG_ERR, "Can't link TAP device to ARP"); - - close (if_fd); - - memset(&ifr, 0x0, sizeof(ifr)); - strncpy (ifr.lifr_name, actual_name, sizeof (ifr.lifr_name)); - ifr.lifr_ip_muxid = ip_muxid; - ifr.lifr_arp_muxid = arp_muxid; - - if (ioctl (ip_fd, SIOCSLIFMUXID, &ifr) < 0) - { - ioctl (ip_fd, I_PUNLINK , arp_muxid); - ioctl (ip_fd, I_PUNLINK, ip_muxid); - syslog (LOG_ERR, "Can't set multiplexor id"); - } - - sprintf(dev, "tap%d", ppa); - return tap_fd; -} - -static int tap_open(char *ifname, int ifname_size) -{ - char dev[10]=""; - int fd; - if( (fd = tap_alloc(dev)) < 0 ){ - fprintf(stderr, "Cannot allocate TAP device\n"); - return -1; - } - pstrcpy(ifname, ifname_size, dev); - fcntl(fd, F_SETFL, O_NONBLOCK); - return fd; -} -#else -static int tap_open(char *ifname, int ifname_size) -{ - struct ifreq ifr; - int fd, ret; - - TFR(fd = open("/dev/net/tun", O_RDWR)); - if (fd < 0) { - fprintf(stderr, "warning: could not open /dev/net/tun: no virtual network emulation\n"); - return -1; - } - memset(&ifr, 0, sizeof(ifr)); - ifr.ifr_flags = IFF_TAP | IFF_NO_PI; - if (ifname[0] != '\0') - pstrcpy(ifr.ifr_name, IFNAMSIZ, ifname); - else - pstrcpy(ifr.ifr_name, IFNAMSIZ, "tap%d"); - ret = ioctl(fd, TUNSETIFF, (void *) &ifr); - if (ret != 0) { - fprintf(stderr, "warning: could not configure /dev/net/tun: no virtual network emulation\n"); - close(fd); - return -1; - } - pstrcpy(ifname, ifname_size, ifr.ifr_name); - fcntl(fd, F_SETFL, O_NONBLOCK); - return fd; -} -#endif - -static int launch_script(const char *setup_script, const char *ifname, int fd) -{ - int pid, status; - char *args[3]; - char **parg; - - /* try to launch network script */ - pid = fork(); - if (pid >= 0) { - if (pid == 0) { - int open_max = sysconf (_SC_OPEN_MAX), i; - for (i = 0; i < open_max; i++) - if (i != STDIN_FILENO && - i != STDOUT_FILENO && - i != STDERR_FILENO && - i != fd) - close(i); - - parg = args; - *parg++ = (char *)setup_script; - *parg++ = (char *)ifname; - *parg++ = NULL; - execv(setup_script, args); - _exit(1); - } - while (waitpid(pid, &status, 0) != pid); - if (!WIFEXITED(status) || - WEXITSTATUS(status) != 0) { - fprintf(stderr, "%s: could not launch network script\n", - setup_script); - return -1; - } - } - return 0; -} - -static int net_tap_init(VLANState *vlan, const char *ifname1, - const char *setup_script, const char *down_script) -{ - TAPState *s; - int fd; - char ifname[128]; - - if (ifname1 != NULL) - pstrcpy(ifname, sizeof(ifname), ifname1); - else - ifname[0] = '\0'; - TFR(fd = tap_open(ifname, sizeof(ifname))); - if (fd < 0) - return -1; - - if (!setup_script || !strcmp(setup_script, "no")) - setup_script = ""; - if (setup_script[0] != '\0') { - if (launch_script(setup_script, ifname, fd)) - return -1; - } - s = net_tap_fd_init(vlan, fd); - if (!s) - return -1; - snprintf(s->vc->info_str, sizeof(s->vc->info_str), - "tap: ifname=%s setup_script=%s", ifname, setup_script); - if (down_script && strcmp(down_script, "no")) - snprintf(s->down_script, sizeof(s->down_script), "%s", down_script); - return 0; -} - -#endif /* !_WIN32 */ - -/* network connection */ -typedef struct NetSocketState { - VLANClientState *vc; - int fd; - int state; /* 0 = getting length, 1 = getting data */ - int index; - int packet_len; - uint8_t buf[4096]; - struct sockaddr_in dgram_dst; /* contains inet host and port destination iff connectionless (SOCK_DGRAM) */ -} NetSocketState; - -typedef struct NetSocketListenState { - VLANState *vlan; - int fd; -} NetSocketListenState; - -/* XXX: we consider we can send the whole packet without blocking */ -static void net_socket_receive(void *opaque, const uint8_t *buf, int size) -{ - NetSocketState *s = opaque; - uint32_t len; - len = htonl(size); - - send_all(s->fd, (const uint8_t *)&len, sizeof(len)); - send_all(s->fd, buf, size); -} - -static void net_socket_receive_dgram(void *opaque, const uint8_t *buf, int size) -{ - NetSocketState *s = opaque; - sendto(s->fd, buf, size, 0, - (struct sockaddr *)&s->dgram_dst, sizeof(s->dgram_dst)); -} - -static void net_socket_send(void *opaque) -{ - NetSocketState *s = opaque; - int l, size, err; - uint8_t buf1[4096]; - const uint8_t *buf; - - size = recv(s->fd, buf1, sizeof(buf1), 0); - if (size < 0) { - err = socket_error(); - if (err != EWOULDBLOCK) - goto eoc; - } else if (size == 0) { - /* end of connection */ - eoc: - qemu_set_fd_handler(s->fd, NULL, NULL, NULL); - closesocket(s->fd); - return; - } - buf = buf1; - while (size > 0) { - /* reassemble a packet from the network */ - switch(s->state) { - case 0: - l = 4 - s->index; - if (l > size) - l = size; - memcpy(s->buf + s->index, buf, l); - buf += l; - size -= l; - s->index += l; - if (s->index == 4) { - /* got length */ - s->packet_len = ntohl(*(uint32_t *)s->buf); - s->index = 0; - s->state = 1; - } - break; - case 1: - l = s->packet_len - s->index; - if (l > size) - l = size; - memcpy(s->buf + s->index, buf, l); - s->index += l; - buf += l; - size -= l; - if (s->index >= s->packet_len) { - qemu_send_packet(s->vc, s->buf, s->packet_len); - s->index = 0; - s->state = 0; - } - break; - } - } -} - -static void net_socket_send_dgram(void *opaque) -{ - NetSocketState *s = opaque; - int size; - - size = recv(s->fd, s->buf, sizeof(s->buf), 0); - if (size < 0) - return; - if (size == 0) { - /* end of connection */ - qemu_set_fd_handler(s->fd, NULL, NULL, NULL); - return; - } - qemu_send_packet(s->vc, s->buf, size); -} - -static int net_socket_mcast_create(struct sockaddr_in *mcastaddr) -{ - struct ip_mreq imr; - int fd; - int val, ret; - if (!IN_MULTICAST(ntohl(mcastaddr->sin_addr.s_addr))) { - fprintf(stderr, "qemu: error: specified mcastaddr \"%s\" (0x%08x) does not contain a multicast address\n", - inet_ntoa(mcastaddr->sin_addr), - (int)ntohl(mcastaddr->sin_addr.s_addr)); - return -1; - - } - fd = socket(PF_INET, SOCK_DGRAM, 0); - if (fd < 0) { - perror("socket(PF_INET, SOCK_DGRAM)"); - return -1; - } - - val = 1; - ret=setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, - (const char *)&val, sizeof(val)); - if (ret < 0) { - perror("setsockopt(SOL_SOCKET, SO_REUSEADDR)"); - goto fail; - } - - ret = bind(fd, (struct sockaddr *)mcastaddr, sizeof(*mcastaddr)); - if (ret < 0) { - perror("bind"); - goto fail; - } - - /* Add host to multicast group */ - imr.imr_multiaddr = mcastaddr->sin_addr; - imr.imr_interface.s_addr = htonl(INADDR_ANY); - - ret = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, - (const char *)&imr, sizeof(struct ip_mreq)); - if (ret < 0) { - perror("setsockopt(IP_ADD_MEMBERSHIP)"); - goto fail; - } - - /* Force mcast msgs to loopback (eg. several QEMUs in same host */ - val = 1; - ret=setsockopt(fd, IPPROTO_IP, IP_MULTICAST_LOOP, - (const char *)&val, sizeof(val)); - if (ret < 0) { - perror("setsockopt(SOL_IP, IP_MULTICAST_LOOP)"); - goto fail; - } - - socket_set_nonblock(fd); - return fd; -fail: - if (fd >= 0) - closesocket(fd); - return -1; -} - -static NetSocketState *net_socket_fd_init_dgram(VLANState *vlan, int fd, - int is_connected) -{ - struct sockaddr_in saddr; - int newfd; - socklen_t saddr_len; - NetSocketState *s; - - /* fd passed: multicast: "learn" dgram_dst address from bound address and save it - * Because this may be "shared" socket from a "master" process, datagrams would be recv() - * by ONLY ONE process: we must "clone" this dgram socket --jjo - */ - - if (is_connected) { - if (getsockname(fd, (struct sockaddr *) &saddr, &saddr_len) == 0) { - /* must be bound */ - if (saddr.sin_addr.s_addr==0) { - fprintf(stderr, "qemu: error: init_dgram: fd=%d unbound, cannot setup multicast dst addr\n", - fd); - return NULL; - } - /* clone dgram socket */ - newfd = net_socket_mcast_create(&saddr); - if (newfd < 0) { - /* error already reported by net_socket_mcast_create() */ - close(fd); - return NULL; - } - /* clone newfd to fd, close newfd */ - dup2(newfd, fd); - close(newfd); - - } else { - fprintf(stderr, "qemu: error: init_dgram: fd=%d failed getsockname(): %s\n", - fd, strerror(errno)); - return NULL; - } - } - - s = qemu_mallocz(sizeof(NetSocketState)); - if (!s) - return NULL; - s->fd = fd; - - s->vc = qemu_new_vlan_client(vlan, net_socket_receive_dgram, NULL, s); - qemu_set_fd_handler(s->fd, net_socket_send_dgram, NULL, s); - - /* mcast: save bound address as dst */ - if (is_connected) s->dgram_dst=saddr; - - snprintf(s->vc->info_str, sizeof(s->vc->info_str), - "socket: fd=%d (%s mcast=%s:%d)", - fd, is_connected? "cloned" : "", - inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); - return s; -} - -static void net_socket_connect(void *opaque) -{ - NetSocketState *s = opaque; - qemu_set_fd_handler(s->fd, net_socket_send, NULL, s); -} - -static NetSocketState *net_socket_fd_init_stream(VLANState *vlan, int fd, - int is_connected) -{ - NetSocketState *s; - s = qemu_mallocz(sizeof(NetSocketState)); - if (!s) - return NULL; - s->fd = fd; - s->vc = qemu_new_vlan_client(vlan, - net_socket_receive, NULL, s); - snprintf(s->vc->info_str, sizeof(s->vc->info_str), - "socket: fd=%d", fd); - if (is_connected) { - net_socket_connect(s); - } else { - qemu_set_fd_handler(s->fd, NULL, net_socket_connect, s); - } - return s; -} - -static NetSocketState *net_socket_fd_init(VLANState *vlan, int fd, - int is_connected) -{ - int so_type=-1, optlen=sizeof(so_type); - - if(getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&so_type, - (socklen_t *)&optlen)< 0) { - fprintf(stderr, "qemu: error: getsockopt(SO_TYPE) for fd=%d failed\n", fd); - return NULL; - } - switch(so_type) { - case SOCK_DGRAM: - return net_socket_fd_init_dgram(vlan, fd, is_connected); - case SOCK_STREAM: - return net_socket_fd_init_stream(vlan, fd, is_connected); - default: - /* who knows ... this could be a eg. a pty, do warn and continue as stream */ - fprintf(stderr, "qemu: warning: socket type=%d for fd=%d is not SOCK_DGRAM or SOCK_STREAM\n", so_type, fd); - return net_socket_fd_init_stream(vlan, fd, is_connected); - } - return NULL; -} - -static void net_socket_accept(void *opaque) -{ - NetSocketListenState *s = opaque; - NetSocketState *s1; - struct sockaddr_in saddr; - socklen_t len; - int fd; - - for(;;) { - len = sizeof(saddr); - fd = accept(s->fd, (struct sockaddr *)&saddr, &len); - if (fd < 0 && errno != EINTR) { - return; - } else if (fd >= 0) { - break; - } - } - s1 = net_socket_fd_init(s->vlan, fd, 1); - if (!s1) { - closesocket(fd); - } else { - snprintf(s1->vc->info_str, sizeof(s1->vc->info_str), - "socket: connection from %s:%d", - inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); - } -} - -static int net_socket_listen_init(VLANState *vlan, const char *host_str) -{ - NetSocketListenState *s; - int fd, val, ret; - struct sockaddr_in saddr; - - if (parse_host_port(&saddr, host_str) < 0) - return -1; - - s = qemu_mallocz(sizeof(NetSocketListenState)); - if (!s) - return -1; - - fd = socket(PF_INET, SOCK_STREAM, 0); - if (fd < 0) { - perror("socket"); - return -1; - } - socket_set_nonblock(fd); - - /* allow fast reuse */ - val = 1; - setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char *)&val, sizeof(val)); - - ret = bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)); - if (ret < 0) { - perror("bind"); - return -1; - } - ret = listen(fd, 0); - if (ret < 0) { - perror("listen"); - return -1; - } - s->vlan = vlan; - s->fd = fd; - qemu_set_fd_handler(fd, net_socket_accept, NULL, s); - return 0; -} - -static int net_socket_connect_init(VLANState *vlan, const char *host_str) -{ - NetSocketState *s; - int fd, connected, ret, err; - struct sockaddr_in saddr; - - if (parse_host_port(&saddr, host_str) < 0) - return -1; - - fd = socket(PF_INET, SOCK_STREAM, 0); - if (fd < 0) { - perror("socket"); - return -1; - } - socket_set_nonblock(fd); - - connected = 0; - for(;;) { - ret = connect(fd, (struct sockaddr *)&saddr, sizeof(saddr)); - if (ret < 0) { - err = socket_error(); - if (err == EINTR || err == EWOULDBLOCK) { - } else if (err == EINPROGRESS) { - break; -#ifdef _WIN32 - } else if (err == WSAEALREADY) { - break; -#endif - } else { - perror("connect"); - closesocket(fd); - return -1; - } - } else { - connected = 1; - break; - } - } - s = net_socket_fd_init(vlan, fd, connected); - if (!s) - return -1; - snprintf(s->vc->info_str, sizeof(s->vc->info_str), - "socket: connect to %s:%d", - inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); - return 0; -} - -static int net_socket_mcast_init(VLANState *vlan, const char *host_str) -{ - NetSocketState *s; - int fd; - struct sockaddr_in saddr; - - if (parse_host_port(&saddr, host_str) < 0) - return -1; - - - fd = net_socket_mcast_create(&saddr); - if (fd < 0) - return -1; - - s = net_socket_fd_init(vlan, fd, 0); - if (!s) - return -1; - - s->dgram_dst = saddr; - - snprintf(s->vc->info_str, sizeof(s->vc->info_str), - "socket: mcast=%s:%d", - inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); - return 0; - -} - -static const char *get_word(char *buf, int buf_size, const char *p) -{ - char *q; - int substring; - - substring = 0; - q = buf; - while (*p != '\0') { - if (*p == '\\') { - p++; - if (*p == '\0') - break; - } else if (*p == '\"') { - substring = !substring; - p++; - continue; - } else if (!substring && (*p == ',' || *p == '=')) - break; - if (q && (q - buf) < buf_size - 1) - *q++ = *p; - p++; - } - if (q) - *q = '\0'; - - return p; -} - -static int get_param_value(char *buf, int buf_size, - const char *tag, const char *str) -{ - const char *p; - char option[128]; - - p = str; - for(;;) { - p = get_word(option, sizeof(option), p); - if (*p != '=') - break; - p++; - if (!strcmp(tag, option)) { - (void)get_word(buf, buf_size, p); - return strlen(buf); - } else { - p = get_word(NULL, 0, p); - } - if (*p != ',') - break; - p++; - } - return 0; -} - -static int check_params(char *buf, int buf_size, - char **params, const char *str) -{ - const char *p; - int i; - - p = str; - for(;;) { - p = get_word(buf, buf_size, p); - if (*p != '=') - return -1; - p++; - for(i = 0; params[i] != NULL; i++) - if (!strcmp(params[i], buf)) - break; - if (params[i] == NULL) - return -1; - p = get_word(NULL, 0, p); - if (*p != ',') - break; - p++; - } - return 0; -} - - -static int net_client_init(const char *str) -{ - const char *p; - char *q; - char device[64]; - char buf[1024]; - int vlan_id, ret; - VLANState *vlan; - - p = str; - q = device; - while (*p != '\0' && *p != ',') { - if ((q - device) < sizeof(device) - 1) - *q++ = *p; - p++; - } - *q = '\0'; - if (*p == ',') - p++; - vlan_id = 0; - if (get_param_value(buf, sizeof(buf), "vlan", p)) { - vlan_id = strtol(buf, NULL, 0); - } - vlan = qemu_find_vlan(vlan_id); - if (!vlan) { - fprintf(stderr, "Could not create vlan %d\n", vlan_id); - return -1; - } - if (!strcmp(device, "nic")) { - NICInfo *nd; - uint8_t *macaddr; - - if (nb_nics >= MAX_NICS) { - fprintf(stderr, "Too Many NICs\n"); - return -1; - } - nd = &nd_table[nb_nics]; - macaddr = nd->macaddr; - macaddr[0] = 0x52; - macaddr[1] = 0x54; - macaddr[2] = 0x00; - macaddr[3] = 0x12; - macaddr[4] = 0x34; - macaddr[5] = 0x56 + nb_nics; - - if (get_param_value(buf, sizeof(buf), "macaddr", p)) { - if (parse_macaddr(macaddr, buf) < 0) { - fprintf(stderr, "invalid syntax for ethernet address\n"); - return -1; - } - } - if (get_param_value(buf, sizeof(buf), "model", p)) { - nd->model = strdup(buf); - } - nd->vlan = vlan; - nb_nics++; - vlan->nb_guest_devs++; - ret = 0; - } else - if (!strcmp(device, "none")) { - /* does nothing. It is needed to signal that no network cards - are wanted */ - ret = 0; - } else -#ifdef CONFIG_SLIRP - if (!strcmp(device, "user")) { - if (get_param_value(buf, sizeof(buf), "hostname", p)) { - pstrcpy(slirp_hostname, sizeof(slirp_hostname), buf); - } - vlan->nb_host_devs++; - ret = net_slirp_init(vlan); - } else -#endif -#ifdef _WIN32 - if (!strcmp(device, "tap")) { - char ifname[64]; - if (get_param_value(ifname, sizeof(ifname), "ifname", p) <= 0) { - fprintf(stderr, "tap: no interface name\n"); - return -1; - } - vlan->nb_host_devs++; - ret = tap_win32_init(vlan, ifname); - } else -#else - if (!strcmp(device, "tap")) { - char ifname[64]; - char setup_script[1024], down_script[1024]; - int fd; - vlan->nb_host_devs++; - if (get_param_value(buf, sizeof(buf), "fd", p) > 0) { - fd = strtol(buf, NULL, 0); - ret = -1; - if (net_tap_fd_init(vlan, fd)) - ret = 0; - } else { - if (get_param_value(ifname, sizeof(ifname), "ifname", p) <= 0) { - ifname[0] = '\0'; - } - if (get_param_value(setup_script, sizeof(setup_script), "script", p) == 0) { - pstrcpy(setup_script, sizeof(setup_script), DEFAULT_NETWORK_SCRIPT); - } - if (get_param_value(down_script, sizeof(down_script), "downscript", p) == 0) { - pstrcpy(down_script, sizeof(down_script), DEFAULT_NETWORK_DOWN_SCRIPT); - } - ret = net_tap_init(vlan, ifname, setup_script, down_script); - } - } else -#endif - if (!strcmp(device, "socket")) { - if (get_param_value(buf, sizeof(buf), "fd", p) > 0) { - int fd; - fd = strtol(buf, NULL, 0); - ret = -1; - if (net_socket_fd_init(vlan, fd, 1)) - ret = 0; - } else if (get_param_value(buf, sizeof(buf), "listen", p) > 0) { - ret = net_socket_listen_init(vlan, buf); - } else if (get_param_value(buf, sizeof(buf), "connect", p) > 0) { - ret = net_socket_connect_init(vlan, buf); - } else if (get_param_value(buf, sizeof(buf), "mcast", p) > 0) { - ret = net_socket_mcast_init(vlan, buf); - } else { - fprintf(stderr, "Unknown socket options: %s\n", p); - return -1; - } - vlan->nb_host_devs++; - } else - { - fprintf(stderr, "Unknown network device: %s\n", device); - return -1; - } - if (ret < 0) { - fprintf(stderr, "Could not initialize device '%s'\n", device); - } - - return ret; -} - -void do_info_network(void) -{ - VLANState *vlan; - VLANClientState *vc; - - for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { - term_printf("VLAN %d devices:\n", vlan->id); - for(vc = vlan->first_client; vc != NULL; vc = vc->next) - term_printf(" %s\n", vc->info_str); - } -} - -#define HD_ALIAS "file=\"%s\",index=%d,media=disk" -#ifdef TARGET_PPC -#define CDROM_ALIAS "index=1,media=cdrom" -#else -#define CDROM_ALIAS "index=2,media=cdrom" -#endif -#define FD_ALIAS "index=%d,if=floppy" -#define PFLASH_ALIAS "file=\"%s\",if=pflash" -#define MTD_ALIAS "file=\"%s\",if=mtd" -#define SD_ALIAS "index=0,if=sd" - -static int drive_add(const char *fmt, ...) -{ - va_list ap; - - if (nb_drives_opt >= MAX_DRIVES) { - fprintf(stderr, "qemu: too many drives\n"); - exit(1); - } - - va_start(ap, fmt); - vsnprintf(drives_opt[nb_drives_opt], sizeof(drives_opt[0]), fmt, ap); - va_end(ap); - - return nb_drives_opt++; -} - -int drive_get_index(BlockInterfaceType type, int bus, int unit) -{ - int index; - - /* seek interface, bus and unit */ - - for (index = 0; index < nb_drives; index++) - if (drives_table[index].type == type && - drives_table[index].bus == bus && - drives_table[index].unit == unit) - return index; - - return -1; -} - -int drive_get_max_bus(BlockInterfaceType type) -{ - int max_bus; - int index; - - max_bus = -1; - for (index = 0; index < nb_drives; index++) { - if(drives_table[index].type == type && - drives_table[index].bus > max_bus) - max_bus = drives_table[index].bus; - } - return max_bus; -} - -static int drive_init(const char *str, int snapshot, QEMUMachine *machine) -{ - char buf[128]; - char file[1024]; - char devname[128]; - const char *mediastr = ""; - BlockInterfaceType type; - enum { MEDIA_DISK, MEDIA_CDROM } media; - int bus_id, unit_id; - int cyls, heads, secs, translation; - BlockDriverState *bdrv; - int max_devs; - int index; - int cache; - int bdrv_flags; - char *params[] = { "bus", "unit", "if", "index", "cyls", "heads", - "secs", "trans", "media", "snapshot", "file", - "cache", NULL }; - - if (check_params(buf, sizeof(buf), params, str) < 0) { - fprintf(stderr, "qemu: unknowm parameter '%s' in '%s'\n", - buf, str); - return -1; - } - - file[0] = 0; - cyls = heads = secs = 0; - bus_id = 0; - unit_id = -1; - translation = BIOS_ATA_TRANSLATION_AUTO; - index = -1; - cache = 1; - - if (!strcmp(machine->name, "realview") || - !strcmp(machine->name, "SS-5") || - !strcmp(machine->name, "SS-10") || - !strcmp(machine->name, "SS-600MP") || - !strcmp(machine->name, "versatilepb") || - !strcmp(machine->name, "versatileab")) { - type = IF_SCSI; - max_devs = MAX_SCSI_DEVS; - strcpy(devname, "scsi"); - } else { - type = IF_IDE; - max_devs = MAX_IDE_DEVS; - strcpy(devname, "ide"); - } - media = MEDIA_DISK; - - /* extract parameters */ - - if (get_param_value(buf, sizeof(buf), "bus", str)) { - bus_id = strtol(buf, NULL, 0); - if (bus_id < 0) { - fprintf(stderr, "qemu: '%s' invalid bus id\n", str); - return -1; - } - } - - if (get_param_value(buf, sizeof(buf), "unit", str)) { - unit_id = strtol(buf, NULL, 0); - if (unit_id < 0) { - fprintf(stderr, "qemu: '%s' invalid unit id\n", str); - return -1; - } - } - - if (get_param_value(buf, sizeof(buf), "if", str)) { - strncpy(devname, buf, sizeof(devname)); - if (!strcmp(buf, "ide")) { - type = IF_IDE; - max_devs = MAX_IDE_DEVS; - } else if (!strcmp(buf, "scsi")) { - type = IF_SCSI; - max_devs = MAX_SCSI_DEVS; - } else if (!strcmp(buf, "floppy")) { - type = IF_FLOPPY; - max_devs = 0; - } else if (!strcmp(buf, "pflash")) { - type = IF_PFLASH; - max_devs = 0; - } else if (!strcmp(buf, "mtd")) { - type = IF_MTD; - max_devs = 0; - } else if (!strcmp(buf, "sd")) { - type = IF_SD; - max_devs = 0; - } else { - fprintf(stderr, "qemu: '%s' unsupported bus type '%s'\n", str, buf); - return -1; - } - } - - if (get_param_value(buf, sizeof(buf), "index", str)) { - index = strtol(buf, NULL, 0); - if (index < 0) { - fprintf(stderr, "qemu: '%s' invalid index\n", str); - return -1; - } - } - - if (get_param_value(buf, sizeof(buf), "cyls", str)) { - cyls = strtol(buf, NULL, 0); - } - - if (get_param_value(buf, sizeof(buf), "heads", str)) { - heads = strtol(buf, NULL, 0); - } - - if (get_param_value(buf, sizeof(buf), "secs", str)) { - secs = strtol(buf, NULL, 0); - } - - if (cyls || heads || secs) { - if (cyls < 1 || cyls > 16383) { - fprintf(stderr, "qemu: '%s' invalid physical cyls number\n", str); - return -1; - } - if (heads < 1 || heads > 16) { - fprintf(stderr, "qemu: '%s' invalid physical heads number\n", str); - return -1; - } - if (secs < 1 || secs > 63) { - fprintf(stderr, "qemu: '%s' invalid physical secs number\n", str); - return -1; - } - } - - if (get_param_value(buf, sizeof(buf), "trans", str)) { - if (!cyls) { - fprintf(stderr, - "qemu: '%s' trans must be used with cyls,heads and secs\n", - str); - return -1; - } - if (!strcmp(buf, "none")) - translation = BIOS_ATA_TRANSLATION_NONE; - else if (!strcmp(buf, "lba")) - translation = BIOS_ATA_TRANSLATION_LBA; - else if (!strcmp(buf, "auto")) - translation = BIOS_ATA_TRANSLATION_AUTO; - else { - fprintf(stderr, "qemu: '%s' invalid translation type\n", str); - return -1; - } - } - - if (get_param_value(buf, sizeof(buf), "media", str)) { - if (!strcmp(buf, "disk")) { - media = MEDIA_DISK; - } else if (!strcmp(buf, "cdrom")) { - if (cyls || secs || heads) { - fprintf(stderr, - "qemu: '%s' invalid physical CHS format\n", str); - return -1; - } - media = MEDIA_CDROM; - } else { - fprintf(stderr, "qemu: '%s' invalid media\n", str); - return -1; - } - } - - if (get_param_value(buf, sizeof(buf), "snapshot", str)) { - if (!strcmp(buf, "on")) - snapshot = 1; - else if (!strcmp(buf, "off")) - snapshot = 0; - else { - fprintf(stderr, "qemu: '%s' invalid snapshot option\n", str); - return -1; - } - } - - if (get_param_value(buf, sizeof(buf), "cache", str)) { - if (!strcmp(buf, "off")) - cache = 0; - else if (!strcmp(buf, "on")) - cache = 1; - else { - fprintf(stderr, "qemu: invalid cache option\n"); - return -1; - } - } - - get_param_value(file, sizeof(file), "file", str); - - /* compute bus and unit according index */ - - if (index != -1) { - if (bus_id != 0 || unit_id != -1) { - fprintf(stderr, - "qemu: '%s' index cannot be used with bus and unit\n", str); - return -1; - } - if (max_devs == 0) - { - unit_id = index; - bus_id = 0; - } else { - unit_id = index % max_devs; - bus_id = index / max_devs; - } - } - - /* if user doesn't specify a unit_id, - * try to find the first free - */ - - if (unit_id == -1) { - unit_id = 0; - while (drive_get_index(type, bus_id, unit_id) != -1) { - unit_id++; - if (max_devs && unit_id >= max_devs) { - unit_id -= max_devs; - bus_id++; - } - } - } - - /* check unit id */ - - if (max_devs && unit_id >= max_devs) { - fprintf(stderr, "qemu: '%s' unit %d too big (max is %d)\n", - str, unit_id, max_devs - 1); - return -1; - } - - /* - * ignore multiple definitions - */ - - if (drive_get_index(type, bus_id, unit_id) != -1) - return 0; - - /* init */ - - if (type == IF_IDE || type == IF_SCSI) - mediastr = (media == MEDIA_CDROM) ? "-cd" : "-hd"; - if (max_devs) - snprintf(buf, sizeof(buf), "%s%i%s%i", - devname, bus_id, mediastr, unit_id); - else - snprintf(buf, sizeof(buf), "%s%s%i", - devname, mediastr, unit_id); - bdrv = bdrv_new(buf); - drives_table[nb_drives].bdrv = bdrv; - drives_table[nb_drives].type = type; - drives_table[nb_drives].bus = bus_id; - drives_table[nb_drives].unit = unit_id; - nb_drives++; - - switch(type) { - case IF_IDE: - case IF_SCSI: - switch(media) { - case MEDIA_DISK: - if (cyls != 0) { - bdrv_set_geometry_hint(bdrv, cyls, heads, secs); - bdrv_set_translation_hint(bdrv, translation); - } - break; - case MEDIA_CDROM: - bdrv_set_type_hint(bdrv, BDRV_TYPE_CDROM); - break; - } - break; - case IF_SD: - /* FIXME: This isn't really a floppy, but it's a reasonable - approximation. */ - case IF_FLOPPY: - bdrv_set_type_hint(bdrv, BDRV_TYPE_FLOPPY); - break; - case IF_PFLASH: - case IF_MTD: - break; - } - if (!file[0]) - return 0; - bdrv_flags = 0; - if (snapshot) - bdrv_flags |= BDRV_O_SNAPSHOT; - if (!cache) - bdrv_flags |= BDRV_O_DIRECT; - if (bdrv_open(bdrv, file, bdrv_flags) < 0 || qemu_key_check(bdrv, file)) { - fprintf(stderr, "qemu: could not open disk image %s\n", - file); - return -1; - } - return 0; -} - -/***********************************************************/ -/* USB devices */ - -static USBPort *used_usb_ports; -static USBPort *free_usb_ports; - -/* ??? Maybe change this to register a hub to keep track of the topology. */ -void qemu_register_usb_port(USBPort *port, void *opaque, int index, - usb_attachfn attach) -{ - port->opaque = opaque; - port->index = index; - port->attach = attach; - port->next = free_usb_ports; - free_usb_ports = port; -} - -static int usb_device_add(const char *devname) -{ - const char *p; - USBDevice *dev; - USBPort *port; - - if (!free_usb_ports) - return -1; - - if (strstart(devname, "host:", &p)) { - dev = usb_host_device_open(p); - } else if (!strcmp(devname, "mouse")) { - dev = usb_mouse_init(); - } else if (!strcmp(devname, "tablet")) { - dev = usb_tablet_init(); - } else if (!strcmp(devname, "keyboard")) { - dev = usb_keyboard_init(); - } else if (strstart(devname, "disk:", &p)) { - dev = usb_msd_init(p); - } else if (!strcmp(devname, "wacom-tablet")) { - dev = usb_wacom_init(); - } else { - return -1; - } - if (!dev) - return -1; - - /* Find a USB port to add the device to. */ - port = free_usb_ports; - if (!port->next) { - USBDevice *hub; - - /* Create a new hub and chain it on. */ - free_usb_ports = NULL; - port->next = used_usb_ports; - used_usb_ports = port; - - hub = usb_hub_init(VM_USB_HUB_SIZE); - usb_attach(port, hub); - port = free_usb_ports; - } - - free_usb_ports = port->next; - port->next = used_usb_ports; - used_usb_ports = port; - usb_attach(port, dev); - return 0; -} - -static int usb_device_del(const char *devname) -{ - USBPort *port; - USBPort **lastp; - USBDevice *dev; - int bus_num, addr; - const char *p; - - if (!used_usb_ports) - return -1; - - p = strchr(devname, '.'); - if (!p) - return -1; - bus_num = strtoul(devname, NULL, 0); - addr = strtoul(p + 1, NULL, 0); - if (bus_num != 0) - return -1; - - lastp = &used_usb_ports; - port = used_usb_ports; - while (port && port->dev->addr != addr) { - lastp = &port->next; - port = port->next; - } - - if (!port) - return -1; - - dev = port->dev; - *lastp = port->next; - usb_attach(port, NULL); - dev->handle_destroy(dev); - port->next = free_usb_ports; - free_usb_ports = port; - return 0; -} - -void do_usb_add(const char *devname) -{ - int ret; - ret = usb_device_add(devname); - if (ret < 0) - term_printf("Could not add USB device '%s'\n", devname); -} - -void do_usb_del(const char *devname) -{ - int ret; - ret = usb_device_del(devname); - if (ret < 0) - term_printf("Could not remove USB device '%s'\n", devname); -} - -void usb_info(void) -{ - USBDevice *dev; - USBPort *port; - const char *speed_str; - - if (!usb_enabled) { - term_printf("USB support not enabled\n"); - return; - } - - for (port = used_usb_ports; port; port = port->next) { - dev = port->dev; - if (!dev) - continue; - switch(dev->speed) { - case USB_SPEED_LOW: - speed_str = "1.5"; - break; - case USB_SPEED_FULL: - speed_str = "12"; - break; - case USB_SPEED_HIGH: - speed_str = "480"; - break; - default: - speed_str = "?"; - break; - } - term_printf(" Device %d.%d, Speed %s Mb/s, Product %s\n", - 0, dev->addr, speed_str, dev->devname); - } -} - -/***********************************************************/ -/* PCMCIA/Cardbus */ - -static struct pcmcia_socket_entry_s { - struct pcmcia_socket_s *socket; - struct pcmcia_socket_entry_s *next; -} *pcmcia_sockets = 0; - -void pcmcia_socket_register(struct pcmcia_socket_s *socket) -{ - struct pcmcia_socket_entry_s *entry; - - entry = qemu_malloc(sizeof(struct pcmcia_socket_entry_s)); - entry->socket = socket; - entry->next = pcmcia_sockets; - pcmcia_sockets = entry; -} - -void pcmcia_socket_unregister(struct pcmcia_socket_s *socket) -{ - struct pcmcia_socket_entry_s *entry, **ptr; - - ptr = &pcmcia_sockets; - for (entry = *ptr; entry; ptr = &entry->next, entry = *ptr) - if (entry->socket == socket) { - *ptr = entry->next; - qemu_free(entry); - } -} - -void pcmcia_info(void) -{ - struct pcmcia_socket_entry_s *iter; - if (!pcmcia_sockets) - term_printf("No PCMCIA sockets\n"); - - for (iter = pcmcia_sockets; iter; iter = iter->next) - term_printf("%s: %s\n", iter->socket->slot_string, - iter->socket->attached ? iter->socket->card_string : - "Empty"); -} - -/***********************************************************/ -/* dumb display */ - -static void dumb_update(DisplayState *ds, int x, int y, int w, int h) -{ -} - -static void dumb_resize(DisplayState *ds, int w, int h) -{ -} - -static void dumb_refresh(DisplayState *ds) -{ -#if defined(CONFIG_SDL) - vga_hw_update(); -#endif -} - -static void dumb_display_init(DisplayState *ds) -{ - ds->data = NULL; - ds->linesize = 0; - ds->depth = 0; - ds->dpy_update = dumb_update; - ds->dpy_resize = dumb_resize; - ds->dpy_refresh = dumb_refresh; -} - -/***********************************************************/ -/* I/O handling */ - -#define MAX_IO_HANDLERS 64 - -typedef struct IOHandlerRecord { - int fd; - IOCanRWHandler *fd_read_poll; - IOHandler *fd_read; - IOHandler *fd_write; - int deleted; - void *opaque; - /* temporary data */ - struct pollfd *ufd; - struct IOHandlerRecord *next; -} IOHandlerRecord; - -static IOHandlerRecord *first_io_handler; - -/* XXX: fd_read_poll should be suppressed, but an API change is - necessary in the character devices to suppress fd_can_read(). */ -int qemu_set_fd_handler2(int fd, - IOCanRWHandler *fd_read_poll, - IOHandler *fd_read, - IOHandler *fd_write, - void *opaque) -{ - IOHandlerRecord **pioh, *ioh; - - if (!fd_read && !fd_write) { - pioh = &first_io_handler; - for(;;) { - ioh = *pioh; - if (ioh == NULL) - break; - if (ioh->fd == fd) { - ioh->deleted = 1; - break; - } - pioh = &ioh->next; - } - } else { - for(ioh = first_io_handler; ioh != NULL; ioh = ioh->next) { - if (ioh->fd == fd) - goto found; - } - ioh = qemu_mallocz(sizeof(IOHandlerRecord)); - if (!ioh) - return -1; - ioh->next = first_io_handler; - first_io_handler = ioh; - found: - ioh->fd = fd; - ioh->fd_read_poll = fd_read_poll; - ioh->fd_read = fd_read; - ioh->fd_write = fd_write; - ioh->opaque = opaque; - ioh->deleted = 0; - } - return 0; -} - -int qemu_set_fd_handler(int fd, - IOHandler *fd_read, - IOHandler *fd_write, - void *opaque) -{ - return qemu_set_fd_handler2(fd, NULL, fd_read, fd_write, opaque); -} - -/***********************************************************/ -/* Polling handling */ - -typedef struct PollingEntry { - PollingFunc *func; - void *opaque; - struct PollingEntry *next; -} PollingEntry; - -static PollingEntry *first_polling_entry; - -int qemu_add_polling_cb(PollingFunc *func, void *opaque) -{ - PollingEntry **ppe, *pe; - pe = qemu_mallocz(sizeof(PollingEntry)); - if (!pe) - return -1; - pe->func = func; - pe->opaque = opaque; - for(ppe = &first_polling_entry; *ppe != NULL; ppe = &(*ppe)->next); - *ppe = pe; - return 0; -} - -void qemu_del_polling_cb(PollingFunc *func, void *opaque) -{ - PollingEntry **ppe, *pe; - for(ppe = &first_polling_entry; *ppe != NULL; ppe = &(*ppe)->next) { - pe = *ppe; - if (pe->func == func && pe->opaque == opaque) { - *ppe = pe->next; - qemu_free(pe); - break; - } - } -} - -#ifdef _WIN32 -/***********************************************************/ -/* Wait objects support */ -typedef struct WaitObjects { - int num; - HANDLE events[MAXIMUM_WAIT_OBJECTS + 1]; - WaitObjectFunc *func[MAXIMUM_WAIT_OBJECTS + 1]; - void *opaque[MAXIMUM_WAIT_OBJECTS + 1]; -} WaitObjects; - -static WaitObjects wait_objects = {0}; - -int qemu_add_wait_object(HANDLE handle, WaitObjectFunc *func, void *opaque) -{ - WaitObjects *w = &wait_objects; - - if (w->num >= MAXIMUM_WAIT_OBJECTS) - return -1; - w->events[w->num] = handle; - w->func[w->num] = func; - w->opaque[w->num] = opaque; - w->num++; - return 0; -} - -void qemu_del_wait_object(HANDLE handle, WaitObjectFunc *func, void *opaque) -{ - int i, found; - WaitObjects *w = &wait_objects; - - found = 0; - for (i = 0; i < w->num; i++) { - if (w->events[i] == handle) - found = 1; - if (found) { - w->events[i] = w->events[i + 1]; - w->func[i] = w->func[i + 1]; - w->opaque[i] = w->opaque[i + 1]; - } - } - if (found) - w->num--; -} -#endif - -/***********************************************************/ -/* savevm/loadvm support */ - -#define IO_BUF_SIZE 32768 - -struct QEMUFile { - FILE *outfile; - BlockDriverState *bs; - int is_file; - int is_writable; - int64_t base_offset; - int64_t buf_offset; /* start of buffer when writing, end of buffer - when reading */ - int buf_index; - int buf_size; /* 0 when writing */ - uint8_t buf[IO_BUF_SIZE]; -}; - -QEMUFile *qemu_fopen(const char *filename, const char *mode) -{ - QEMUFile *f; - - f = qemu_mallocz(sizeof(QEMUFile)); - if (!f) - return NULL; - if (!strcmp(mode, "wb")) { - f->is_writable = 1; - } else if (!strcmp(mode, "rb")) { - f->is_writable = 0; - } else { - goto fail; - } - f->outfile = fopen(filename, mode); - if (!f->outfile) - goto fail; - f->is_file = 1; - return f; - fail: - if (f->outfile) - fclose(f->outfile); - qemu_free(f); - return NULL; -} - -static QEMUFile *qemu_fopen_bdrv(BlockDriverState *bs, int64_t offset, int is_writable) -{ - QEMUFile *f; - - f = qemu_mallocz(sizeof(QEMUFile)); - if (!f) - return NULL; - f->is_file = 0; - f->bs = bs; - f->is_writable = is_writable; - f->base_offset = offset; - return f; -} - -void qemu_fflush(QEMUFile *f) -{ - if (!f->is_writable) - return; - if (f->buf_index > 0) { - if (f->is_file) { - fseek(f->outfile, f->buf_offset, SEEK_SET); - fwrite(f->buf, 1, f->buf_index, f->outfile); - } else { - bdrv_pwrite(f->bs, f->base_offset + f->buf_offset, - f->buf, f->buf_index); - } - f->buf_offset += f->buf_index; - f->buf_index = 0; - } -} - -static void qemu_fill_buffer(QEMUFile *f) -{ - int len; - - if (f->is_writable) - return; - if (f->is_file) { - fseek(f->outfile, f->buf_offset, SEEK_SET); - len = fread(f->buf, 1, IO_BUF_SIZE, f->outfile); - if (len < 0) - len = 0; - } else { - len = bdrv_pread(f->bs, f->base_offset + f->buf_offset, - f->buf, IO_BUF_SIZE); - if (len < 0) - len = 0; - } - f->buf_index = 0; - f->buf_size = len; - f->buf_offset += len; -} - -void qemu_fclose(QEMUFile *f) -{ - if (f->is_writable) - qemu_fflush(f); - if (f->is_file) { - fclose(f->outfile); - } - qemu_free(f); -} - -void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, int size) -{ - int l; - while (size > 0) { - l = IO_BUF_SIZE - f->buf_index; - if (l > size) - l = size; - memcpy(f->buf + f->buf_index, buf, l); - f->buf_index += l; - buf += l; - size -= l; - if (f->buf_index >= IO_BUF_SIZE) - qemu_fflush(f); - } -} - -void qemu_put_byte(QEMUFile *f, int v) -{ - f->buf[f->buf_index++] = v; - if (f->buf_index >= IO_BUF_SIZE) - qemu_fflush(f); -} - -int qemu_get_buffer(QEMUFile *f, uint8_t *buf, int size1) -{ - int size, l; - - size = size1; - while (size > 0) { - l = f->buf_size - f->buf_index; - if (l == 0) { - qemu_fill_buffer(f); - l = f->buf_size - f->buf_index; - if (l == 0) - break; - } - if (l > size) - l = size; - memcpy(buf, f->buf + f->buf_index, l); - f->buf_index += l; - buf += l; - size -= l; - } - return size1 - size; -} - -int qemu_get_byte(QEMUFile *f) -{ - if (f->buf_index >= f->buf_size) { - qemu_fill_buffer(f); - if (f->buf_index >= f->buf_size) - return 0; - } - return f->buf[f->buf_index++]; -} - -int64_t qemu_ftell(QEMUFile *f) -{ - return f->buf_offset - f->buf_size + f->buf_index; -} - -int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence) -{ - if (whence == SEEK_SET) { - /* nothing to do */ - } else if (whence == SEEK_CUR) { - pos += qemu_ftell(f); - } else { - /* SEEK_END not supported */ - return -1; - } - if (f->is_writable) { - qemu_fflush(f); - f->buf_offset = pos; - } else { - f->buf_offset = pos; - f->buf_index = 0; - f->buf_size = 0; - } - return pos; -} - -void qemu_put_be16(QEMUFile *f, unsigned int v) -{ - qemu_put_byte(f, v >> 8); - qemu_put_byte(f, v); -} - -void qemu_put_be32(QEMUFile *f, unsigned int v) -{ - qemu_put_byte(f, v >> 24); - qemu_put_byte(f, v >> 16); - qemu_put_byte(f, v >> 8); - qemu_put_byte(f, v); -} - -void qemu_put_be64(QEMUFile *f, uint64_t v) -{ - qemu_put_be32(f, v >> 32); - qemu_put_be32(f, v); -} - -unsigned int qemu_get_be16(QEMUFile *f) -{ - unsigned int v; - v = qemu_get_byte(f) << 8; - v |= qemu_get_byte(f); - return v; -} - -unsigned int qemu_get_be32(QEMUFile *f) -{ - unsigned int v; - v = qemu_get_byte(f) << 24; - v |= qemu_get_byte(f) << 16; - v |= qemu_get_byte(f) << 8; - v |= qemu_get_byte(f); - return v; -} - -uint64_t qemu_get_be64(QEMUFile *f) -{ - uint64_t v; - v = (uint64_t)qemu_get_be32(f) << 32; - v |= qemu_get_be32(f); - return v; -} - -typedef struct SaveStateEntry { - char idstr[256]; - int instance_id; - int version_id; - SaveStateHandler *save_state; - LoadStateHandler *load_state; - void *opaque; - struct SaveStateEntry *next; -} SaveStateEntry; - -static SaveStateEntry *first_se; - -int register_savevm(const char *idstr, - int instance_id, - int version_id, - SaveStateHandler *save_state, - LoadStateHandler *load_state, - void *opaque) -{ - SaveStateEntry *se, **pse; - - se = qemu_malloc(sizeof(SaveStateEntry)); - if (!se) - return -1; - pstrcpy(se->idstr, sizeof(se->idstr), idstr); - se->instance_id = instance_id; - se->version_id = version_id; - se->save_state = save_state; - se->load_state = load_state; - se->opaque = opaque; - se->next = NULL; - - /* add at the end of list */ - pse = &first_se; - while (*pse != NULL) - pse = &(*pse)->next; - *pse = se; - return 0; -} - -#define QEMU_VM_FILE_MAGIC 0x5145564d -#define QEMU_VM_FILE_VERSION 0x00000002 - -static int qemu_savevm_state(QEMUFile *f) -{ - SaveStateEntry *se; - int len, ret; - int64_t cur_pos, len_pos, total_len_pos; - - qemu_put_be32(f, QEMU_VM_FILE_MAGIC); - qemu_put_be32(f, QEMU_VM_FILE_VERSION); - total_len_pos = qemu_ftell(f); - qemu_put_be64(f, 0); /* total size */ - - for(se = first_se; se != NULL; se = se->next) { - /* ID string */ - len = strlen(se->idstr); - qemu_put_byte(f, len); - qemu_put_buffer(f, (uint8_t *)se->idstr, len); - - qemu_put_be32(f, se->instance_id); - qemu_put_be32(f, se->version_id); - - /* record size: filled later */ - len_pos = qemu_ftell(f); - qemu_put_be32(f, 0); - se->save_state(f, se->opaque); - - /* fill record size */ - cur_pos = qemu_ftell(f); - len = cur_pos - len_pos - 4; - qemu_fseek(f, len_pos, SEEK_SET); - qemu_put_be32(f, len); - qemu_fseek(f, cur_pos, SEEK_SET); - } - cur_pos = qemu_ftell(f); - qemu_fseek(f, total_len_pos, SEEK_SET); - qemu_put_be64(f, cur_pos - total_len_pos - 8); - qemu_fseek(f, cur_pos, SEEK_SET); - - ret = 0; - return ret; -} - -static SaveStateEntry *find_se(const char *idstr, int instance_id) -{ - SaveStateEntry *se; - - for(se = first_se; se != NULL; se = se->next) { - if (!strcmp(se->idstr, idstr) && - instance_id == se->instance_id) - return se; - } - return NULL; -} - -static int qemu_loadvm_state(QEMUFile *f) -{ - SaveStateEntry *se; - int len, ret, instance_id, record_len, version_id; - int64_t total_len, end_pos, cur_pos; - unsigned int v; - char idstr[256]; - - v = qemu_get_be32(f); - if (v != QEMU_VM_FILE_MAGIC) - goto fail; - v = qemu_get_be32(f); - if (v != QEMU_VM_FILE_VERSION) { - fail: - ret = -1; - goto the_end; - } - total_len = qemu_get_be64(f); - end_pos = total_len + qemu_ftell(f); - for(;;) { - if (qemu_ftell(f) >= end_pos) - break; - len = qemu_get_byte(f); - qemu_get_buffer(f, (uint8_t *)idstr, len); - idstr[len] = '\0'; - instance_id = qemu_get_be32(f); - version_id = qemu_get_be32(f); - record_len = qemu_get_be32(f); -#if 0 - printf("idstr=%s instance=0x%x version=%d len=%d\n", - idstr, instance_id, version_id, record_len); -#endif - cur_pos = qemu_ftell(f); - se = find_se(idstr, instance_id); - if (!se) { - fprintf(stderr, "qemu: warning: instance 0x%x of device '%s' not present in current VM\n", - instance_id, idstr); - } else { - ret = se->load_state(f, se->opaque, version_id); - if (ret < 0) { - fprintf(stderr, "qemu: warning: error while loading state for instance 0x%x of device '%s'\n", - instance_id, idstr); - } - } - /* always seek to exact end of record */ - qemu_fseek(f, cur_pos + record_len, SEEK_SET); - } - ret = 0; - the_end: - return ret; -} - -/* device can contain snapshots */ -static int bdrv_can_snapshot(BlockDriverState *bs) -{ - return (bs && - !bdrv_is_removable(bs) && - !bdrv_is_read_only(bs)); -} - -/* device must be snapshots in order to have a reliable snapshot */ -static int bdrv_has_snapshot(BlockDriverState *bs) -{ - return (bs && - !bdrv_is_removable(bs) && - !bdrv_is_read_only(bs)); -} - -static BlockDriverState *get_bs_snapshots(void) -{ - BlockDriverState *bs; - int i; - - if (bs_snapshots) - return bs_snapshots; - for(i = 0; i <= nb_drives; i++) { - bs = drives_table[i].bdrv; - if (bdrv_can_snapshot(bs)) - goto ok; - } - return NULL; - ok: - bs_snapshots = bs; - return bs; -} - -static int bdrv_snapshot_find(BlockDriverState *bs, QEMUSnapshotInfo *sn_info, - const char *name) -{ - QEMUSnapshotInfo *sn_tab, *sn; - int nb_sns, i, ret; - - ret = -ENOENT; - nb_sns = bdrv_snapshot_list(bs, &sn_tab); - if (nb_sns < 0) - return ret; - for(i = 0; i < nb_sns; i++) { - sn = &sn_tab[i]; - if (!strcmp(sn->id_str, name) || !strcmp(sn->name, name)) { - *sn_info = *sn; - ret = 0; - break; - } - } - qemu_free(sn_tab); - return ret; -} - -void do_savevm(const char *name) -{ - BlockDriverState *bs, *bs1; - QEMUSnapshotInfo sn1, *sn = &sn1, old_sn1, *old_sn = &old_sn1; - int must_delete, ret, i; - BlockDriverInfo bdi1, *bdi = &bdi1; - QEMUFile *f; - int saved_vm_running; -#ifdef _WIN32 - struct _timeb tb; -#else - struct timeval tv; -#endif - - bs = get_bs_snapshots(); - if (!bs) { - term_printf("No block device can accept snapshots\n"); - return; - } - - /* ??? Should this occur after vm_stop? */ - qemu_aio_flush(); - - saved_vm_running = vm_running; - vm_stop(0); - - must_delete = 0; - if (name) { - ret = bdrv_snapshot_find(bs, old_sn, name); - if (ret >= 0) { - must_delete = 1; - } - } - memset(sn, 0, sizeof(*sn)); - if (must_delete) { - pstrcpy(sn->name, sizeof(sn->name), old_sn->name); - pstrcpy(sn->id_str, sizeof(sn->id_str), old_sn->id_str); - } else { - if (name) - pstrcpy(sn->name, sizeof(sn->name), name); - } - - /* fill auxiliary fields */ -#ifdef _WIN32 - _ftime(&tb); - sn->date_sec = tb.time; - sn->date_nsec = tb.millitm * 1000000; -#else - gettimeofday(&tv, NULL); - sn->date_sec = tv.tv_sec; - sn->date_nsec = tv.tv_usec * 1000; -#endif - sn->vm_clock_nsec = qemu_get_clock(vm_clock); - - if (bdrv_get_info(bs, bdi) < 0 || bdi->vm_state_offset <= 0) { - term_printf("Device %s does not support VM state snapshots\n", - bdrv_get_device_name(bs)); - goto the_end; - } - - /* save the VM state */ - f = qemu_fopen_bdrv(bs, bdi->vm_state_offset, 1); - if (!f) { - term_printf("Could not open VM state file\n"); - goto the_end; - } - ret = qemu_savevm_state(f); - sn->vm_state_size = qemu_ftell(f); - qemu_fclose(f); - if (ret < 0) { - term_printf("Error %d while writing VM\n", ret); - goto the_end; - } - - /* create the snapshots */ - - for(i = 0; i < nb_drives; i++) { - bs1 = drives_table[i].bdrv; - if (bdrv_has_snapshot(bs1)) { - if (must_delete) { - ret = bdrv_snapshot_delete(bs1, old_sn->id_str); - if (ret < 0) { - term_printf("Error while deleting snapshot on '%s'\n", - bdrv_get_device_name(bs1)); - } - } - ret = bdrv_snapshot_create(bs1, sn); - if (ret < 0) { - term_printf("Error while creating snapshot on '%s'\n", - bdrv_get_device_name(bs1)); - } - } - } - - the_end: - if (saved_vm_running) - vm_start(); -} - -void do_loadvm(const char *name) -{ - BlockDriverState *bs, *bs1; - BlockDriverInfo bdi1, *bdi = &bdi1; - QEMUFile *f; - int i, ret; - int saved_vm_running; - - bs = get_bs_snapshots(); - if (!bs) { - term_printf("No block device supports snapshots\n"); - return; - } - - /* Flush all IO requests so they don't interfere with the new state. */ - qemu_aio_flush(); - - saved_vm_running = vm_running; - vm_stop(0); - - for(i = 0; i <= nb_drives; i++) { - bs1 = drives_table[i].bdrv; - if (bdrv_has_snapshot(bs1)) { - ret = bdrv_snapshot_goto(bs1, name); - if (ret < 0) { - if (bs != bs1) - term_printf("Warning: "); - switch(ret) { - case -ENOTSUP: - term_printf("Snapshots not supported on device '%s'\n", - bdrv_get_device_name(bs1)); - break; - case -ENOENT: - term_printf("Could not find snapshot '%s' on device '%s'\n", - name, bdrv_get_device_name(bs1)); - break; - default: - term_printf("Error %d while activating snapshot on '%s'\n", - ret, bdrv_get_device_name(bs1)); - break; - } - /* fatal on snapshot block device */ - if (bs == bs1) - goto the_end; - } - } - } - - if (bdrv_get_info(bs, bdi) < 0 || bdi->vm_state_offset <= 0) { - term_printf("Device %s does not support VM state snapshots\n", - bdrv_get_device_name(bs)); - return; - } - - /* restore the VM state */ - f = qemu_fopen_bdrv(bs, bdi->vm_state_offset, 0); - if (!f) { - term_printf("Could not open VM state file\n"); - goto the_end; - } - ret = qemu_loadvm_state(f); - qemu_fclose(f); - if (ret < 0) { - term_printf("Error %d while loading VM state\n", ret); - } - the_end: - if (saved_vm_running) - vm_start(); -} - -void do_delvm(const char *name) -{ - BlockDriverState *bs, *bs1; - int i, ret; - - bs = get_bs_snapshots(); - if (!bs) { - term_printf("No block device supports snapshots\n"); - return; - } - - for(i = 0; i <= nb_drives; i++) { - bs1 = drives_table[i].bdrv; - if (bdrv_has_snapshot(bs1)) { - ret = bdrv_snapshot_delete(bs1, name); - if (ret < 0) { - if (ret == -ENOTSUP) - term_printf("Snapshots not supported on device '%s'\n", - bdrv_get_device_name(bs1)); - else - term_printf("Error %d while deleting snapshot on '%s'\n", - ret, bdrv_get_device_name(bs1)); - } - } - } -} - -void do_info_snapshots(void) -{ - BlockDriverState *bs, *bs1; - QEMUSnapshotInfo *sn_tab, *sn; - int nb_sns, i; - char buf[256]; - - bs = get_bs_snapshots(); - if (!bs) { - term_printf("No available block device supports snapshots\n"); - return; - } - term_printf("Snapshot devices:"); - for(i = 0; i <= nb_drives; i++) { - bs1 = drives_table[i].bdrv; - if (bdrv_has_snapshot(bs1)) { - if (bs == bs1) - term_printf(" %s", bdrv_get_device_name(bs1)); - } - } - term_printf("\n"); - - nb_sns = bdrv_snapshot_list(bs, &sn_tab); - if (nb_sns < 0) { - term_printf("bdrv_snapshot_list: error %d\n", nb_sns); - return; - } - term_printf("Snapshot list (from %s):\n", bdrv_get_device_name(bs)); - term_printf("%s\n", bdrv_snapshot_dump(buf, sizeof(buf), NULL)); - for(i = 0; i < nb_sns; i++) { - sn = &sn_tab[i]; - term_printf("%s\n", bdrv_snapshot_dump(buf, sizeof(buf), sn)); - } - qemu_free(sn_tab); -} - -/***********************************************************/ -/* cpu save/restore */ - -#if defined(TARGET_I386) - -static void cpu_put_seg(QEMUFile *f, SegmentCache *dt) -{ - qemu_put_be32(f, dt->selector); - qemu_put_betl(f, dt->base); - qemu_put_be32(f, dt->limit); - qemu_put_be32(f, dt->flags); -} - -static void cpu_get_seg(QEMUFile *f, SegmentCache *dt) -{ - dt->selector = qemu_get_be32(f); - dt->base = qemu_get_betl(f); - dt->limit = qemu_get_be32(f); - dt->flags = qemu_get_be32(f); -} - -void cpu_save(QEMUFile *f, void *opaque) -{ - CPUState *env = opaque; - uint16_t fptag, fpus, fpuc, fpregs_format; - uint32_t hflags; - int i; - - for(i = 0; i < CPU_NB_REGS; i++) - qemu_put_betls(f, &env->regs[i]); - qemu_put_betls(f, &env->eip); - qemu_put_betls(f, &env->eflags); - hflags = env->hflags; /* XXX: suppress most of the redundant hflags */ - qemu_put_be32s(f, &hflags); - - /* FPU */ - fpuc = env->fpuc; - fpus = (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11; - fptag = 0; - for(i = 0; i < 8; i++) { - fptag |= ((!env->fptags[i]) << i); - } - - qemu_put_be16s(f, &fpuc); - qemu_put_be16s(f, &fpus); - qemu_put_be16s(f, &fptag); - -#ifdef USE_X86LDOUBLE - fpregs_format = 0; -#else - fpregs_format = 1; -#endif - qemu_put_be16s(f, &fpregs_format); - - for(i = 0; i < 8; i++) { -#ifdef USE_X86LDOUBLE - { - uint64_t mant; - uint16_t exp; - /* we save the real CPU data (in case of MMX usage only 'mant' - contains the MMX register */ - cpu_get_fp80(&mant, &exp, env->fpregs[i].d); - qemu_put_be64(f, mant); - qemu_put_be16(f, exp); - } -#else - /* if we use doubles for float emulation, we save the doubles to - avoid losing information in case of MMX usage. It can give - problems if the image is restored on a CPU where long - doubles are used instead. */ - qemu_put_be64(f, env->fpregs[i].mmx.MMX_Q(0)); -#endif - } - - for(i = 0; i < 6; i++) - cpu_put_seg(f, &env->segs[i]); - cpu_put_seg(f, &env->ldt); - cpu_put_seg(f, &env->tr); - cpu_put_seg(f, &env->gdt); - cpu_put_seg(f, &env->idt); - - qemu_put_be32s(f, &env->sysenter_cs); - qemu_put_be32s(f, &env->sysenter_esp); - qemu_put_be32s(f, &env->sysenter_eip); - - qemu_put_betls(f, &env->cr[0]); - qemu_put_betls(f, &env->cr[2]); - qemu_put_betls(f, &env->cr[3]); - qemu_put_betls(f, &env->cr[4]); - - for(i = 0; i < 8; i++) - qemu_put_betls(f, &env->dr[i]); - - /* MMU */ - qemu_put_be32s(f, &env->a20_mask); - - /* XMM */ - qemu_put_be32s(f, &env->mxcsr); - for(i = 0; i < CPU_NB_REGS; i++) { - qemu_put_be64s(f, &env->xmm_regs[i].XMM_Q(0)); - qemu_put_be64s(f, &env->xmm_regs[i].XMM_Q(1)); - } - -#ifdef TARGET_X86_64 - qemu_put_be64s(f, &env->efer); - qemu_put_be64s(f, &env->star); - qemu_put_be64s(f, &env->lstar); - qemu_put_be64s(f, &env->cstar); - qemu_put_be64s(f, &env->fmask); - qemu_put_be64s(f, &env->kernelgsbase); -#endif - qemu_put_be32s(f, &env->smbase); -} - -#ifdef USE_X86LDOUBLE -/* XXX: add that in a FPU generic layer */ -union x86_longdouble { - uint64_t mant; - uint16_t exp; -}; - -#define MANTD1(fp) (fp & ((1LL << 52) - 1)) -#define EXPBIAS1 1023 -#define EXPD1(fp) ((fp >> 52) & 0x7FF) -#define SIGND1(fp) ((fp >> 32) & 0x80000000) - -static void fp64_to_fp80(union x86_longdouble *p, uint64_t temp) -{ - int e; - /* mantissa */ - p->mant = (MANTD1(temp) << 11) | (1LL << 63); - /* exponent + sign */ - e = EXPD1(temp) - EXPBIAS1 + 16383; - e |= SIGND1(temp) >> 16; - p->exp = e; -} -#endif - -int cpu_load(QEMUFile *f, void *opaque, int version_id) -{ - CPUState *env = opaque; - int i, guess_mmx; - uint32_t hflags; - uint16_t fpus, fpuc, fptag, fpregs_format; - - if (version_id != 3 && version_id != 4) - return -EINVAL; - for(i = 0; i < CPU_NB_REGS; i++) - qemu_get_betls(f, &env->regs[i]); - qemu_get_betls(f, &env->eip); - qemu_get_betls(f, &env->eflags); - qemu_get_be32s(f, &hflags); - - qemu_get_be16s(f, &fpuc); - qemu_get_be16s(f, &fpus); - qemu_get_be16s(f, &fptag); - qemu_get_be16s(f, &fpregs_format); - - /* NOTE: we cannot always restore the FPU state if the image come - from a host with a different 'USE_X86LDOUBLE' define. We guess - if we are in an MMX state to restore correctly in that case. */ - guess_mmx = ((fptag == 0xff) && (fpus & 0x3800) == 0); - for(i = 0; i < 8; i++) { - uint64_t mant; - uint16_t exp; - - switch(fpregs_format) { - case 0: - mant = qemu_get_be64(f); - exp = qemu_get_be16(f); -#ifdef USE_X86LDOUBLE - env->fpregs[i].d = cpu_set_fp80(mant, exp); -#else - /* difficult case */ - if (guess_mmx) - env->fpregs[i].mmx.MMX_Q(0) = mant; - else - env->fpregs[i].d = cpu_set_fp80(mant, exp); -#endif - break; - case 1: - mant = qemu_get_be64(f); -#ifdef USE_X86LDOUBLE - { - union x86_longdouble *p; - /* difficult case */ - p = (void *)&env->fpregs[i]; - if (guess_mmx) { - p->mant = mant; - p->exp = 0xffff; - } else { - fp64_to_fp80(p, mant); - } - } -#else - env->fpregs[i].mmx.MMX_Q(0) = mant; -#endif - break; - default: - return -EINVAL; - } - } - - env->fpuc = fpuc; - /* XXX: restore FPU round state */ - env->fpstt = (fpus >> 11) & 7; - env->fpus = fpus & ~0x3800; - fptag ^= 0xff; - for(i = 0; i < 8; i++) { - env->fptags[i] = (fptag >> i) & 1; - } - - for(i = 0; i < 6; i++) - cpu_get_seg(f, &env->segs[i]); - cpu_get_seg(f, &env->ldt); - cpu_get_seg(f, &env->tr); - cpu_get_seg(f, &env->gdt); - cpu_get_seg(f, &env->idt); - - qemu_get_be32s(f, &env->sysenter_cs); - qemu_get_be32s(f, &env->sysenter_esp); - qemu_get_be32s(f, &env->sysenter_eip); - - qemu_get_betls(f, &env->cr[0]); - qemu_get_betls(f, &env->cr[2]); - qemu_get_betls(f, &env->cr[3]); - qemu_get_betls(f, &env->cr[4]); - - for(i = 0; i < 8; i++) - qemu_get_betls(f, &env->dr[i]); - - /* MMU */ - qemu_get_be32s(f, &env->a20_mask); - - qemu_get_be32s(f, &env->mxcsr); - for(i = 0; i < CPU_NB_REGS; i++) { - qemu_get_be64s(f, &env->xmm_regs[i].XMM_Q(0)); - qemu_get_be64s(f, &env->xmm_regs[i].XMM_Q(1)); - } - -#ifdef TARGET_X86_64 - qemu_get_be64s(f, &env->efer); - qemu_get_be64s(f, &env->star); - qemu_get_be64s(f, &env->lstar); - qemu_get_be64s(f, &env->cstar); - qemu_get_be64s(f, &env->fmask); - qemu_get_be64s(f, &env->kernelgsbase); -#endif - if (version_id >= 4) - qemu_get_be32s(f, &env->smbase); - - /* XXX: compute hflags from scratch, except for CPL and IIF */ - env->hflags = hflags; - tlb_flush(env, 1); - return 0; -} - -#elif defined(TARGET_PPC) -void cpu_save(QEMUFile *f, void *opaque) -{ -} - -int cpu_load(QEMUFile *f, void *opaque, int version_id) -{ - return 0; -} - -#elif defined(TARGET_MIPS) -void cpu_save(QEMUFile *f, void *opaque) -{ -} - -int cpu_load(QEMUFile *f, void *opaque, int version_id) -{ - return 0; -} - -#elif defined(TARGET_SPARC) -void cpu_save(QEMUFile *f, void *opaque) -{ - CPUState *env = opaque; - int i; - uint32_t tmp; - - for(i = 0; i < 8; i++) - qemu_put_betls(f, &env->gregs[i]); - for(i = 0; i < NWINDOWS * 16; i++) - qemu_put_betls(f, &env->regbase[i]); - - /* FPU */ - for(i = 0; i < TARGET_FPREGS; i++) { - union { - float32 f; - uint32_t i; - } u; - u.f = env->fpr[i]; - qemu_put_be32(f, u.i); - } - - qemu_put_betls(f, &env->pc); - qemu_put_betls(f, &env->npc); - qemu_put_betls(f, &env->y); - tmp = GET_PSR(env); - qemu_put_be32(f, tmp); - qemu_put_betls(f, &env->fsr); - qemu_put_betls(f, &env->tbr); -#ifndef TARGET_SPARC64 - qemu_put_be32s(f, &env->wim); - /* MMU */ - for(i = 0; i < 16; i++) - qemu_put_be32s(f, &env->mmuregs[i]); -#endif -} - -int cpu_load(QEMUFile *f, void *opaque, int version_id) -{ - CPUState *env = opaque; - int i; - uint32_t tmp; - - for(i = 0; i < 8; i++) - qemu_get_betls(f, &env->gregs[i]); - for(i = 0; i < NWINDOWS * 16; i++) - qemu_get_betls(f, &env->regbase[i]); - - /* FPU */ - for(i = 0; i < TARGET_FPREGS; i++) { - union { - float32 f; - uint32_t i; - } u; - u.i = qemu_get_be32(f); - env->fpr[i] = u.f; - } - - qemu_get_betls(f, &env->pc); - qemu_get_betls(f, &env->npc); - qemu_get_betls(f, &env->y); - tmp = qemu_get_be32(f); - env->cwp = 0; /* needed to ensure that the wrapping registers are - correctly updated */ - PUT_PSR(env, tmp); - qemu_get_betls(f, &env->fsr); - qemu_get_betls(f, &env->tbr); -#ifndef TARGET_SPARC64 - qemu_get_be32s(f, &env->wim); - /* MMU */ - for(i = 0; i < 16; i++) - qemu_get_be32s(f, &env->mmuregs[i]); -#endif - tlb_flush(env, 1); - return 0; -} - -#elif defined(TARGET_ARM) - -void cpu_save(QEMUFile *f, void *opaque) -{ - int i; - CPUARMState *env = (CPUARMState *)opaque; - - for (i = 0; i < 16; i++) { - qemu_put_be32(f, env->regs[i]); - } - qemu_put_be32(f, cpsr_read(env)); - qemu_put_be32(f, env->spsr); - for (i = 0; i < 6; i++) { - qemu_put_be32(f, env->banked_spsr[i]); - qemu_put_be32(f, env->banked_r13[i]); - qemu_put_be32(f, env->banked_r14[i]); - } - for (i = 0; i < 5; i++) { - qemu_put_be32(f, env->usr_regs[i]); - qemu_put_be32(f, env->fiq_regs[i]); - } - qemu_put_be32(f, env->cp15.c0_cpuid); - qemu_put_be32(f, env->cp15.c0_cachetype); - qemu_put_be32(f, env->cp15.c1_sys); - qemu_put_be32(f, env->cp15.c1_coproc); - qemu_put_be32(f, env->cp15.c1_xscaleauxcr); - qemu_put_be32(f, env->cp15.c2_base0); - qemu_put_be32(f, env->cp15.c2_base1); - qemu_put_be32(f, env->cp15.c2_mask); - qemu_put_be32(f, env->cp15.c2_data); - qemu_put_be32(f, env->cp15.c2_insn); - qemu_put_be32(f, env->cp15.c3); - qemu_put_be32(f, env->cp15.c5_insn); - qemu_put_be32(f, env->cp15.c5_data); - for (i = 0; i < 8; i++) { - qemu_put_be32(f, env->cp15.c6_region[i]); - } - qemu_put_be32(f, env->cp15.c6_insn); - qemu_put_be32(f, env->cp15.c6_data); - qemu_put_be32(f, env->cp15.c9_insn); - qemu_put_be32(f, env->cp15.c9_data); - qemu_put_be32(f, env->cp15.c13_fcse); - qemu_put_be32(f, env->cp15.c13_context); - qemu_put_be32(f, env->cp15.c13_tls1); - qemu_put_be32(f, env->cp15.c13_tls2); - qemu_put_be32(f, env->cp15.c13_tls3); - qemu_put_be32(f, env->cp15.c15_cpar); - - qemu_put_be32(f, env->features); - - if (arm_feature(env, ARM_FEATURE_VFP)) { - for (i = 0; i < 16; i++) { - CPU_DoubleU u; - u.d = env->vfp.regs[i]; - qemu_put_be32(f, u.l.upper); - qemu_put_be32(f, u.l.lower); - } - for (i = 0; i < 16; i++) { - qemu_put_be32(f, env->vfp.xregs[i]); - } - - /* TODO: Should use proper FPSCR access functions. */ - qemu_put_be32(f, env->vfp.vec_len); - qemu_put_be32(f, env->vfp.vec_stride); - - if (arm_feature(env, ARM_FEATURE_VFP3)) { - for (i = 16; i < 32; i++) { - CPU_DoubleU u; - u.d = env->vfp.regs[i]; - qemu_put_be32(f, u.l.upper); - qemu_put_be32(f, u.l.lower); - } - } - } - - if (arm_feature(env, ARM_FEATURE_IWMMXT)) { - for (i = 0; i < 16; i++) { - qemu_put_be64(f, env->iwmmxt.regs[i]); - } - for (i = 0; i < 16; i++) { - qemu_put_be32(f, env->iwmmxt.cregs[i]); - } - } - - if (arm_feature(env, ARM_FEATURE_M)) { - qemu_put_be32(f, env->v7m.other_sp); - qemu_put_be32(f, env->v7m.vecbase); - qemu_put_be32(f, env->v7m.basepri); - qemu_put_be32(f, env->v7m.control); - qemu_put_be32(f, env->v7m.current_sp); - qemu_put_be32(f, env->v7m.exception); - } -} - -int cpu_load(QEMUFile *f, void *opaque, int version_id) -{ - CPUARMState *env = (CPUARMState *)opaque; - int i; - - if (version_id != ARM_CPU_SAVE_VERSION) - return -EINVAL; - - for (i = 0; i < 16; i++) { - env->regs[i] = qemu_get_be32(f); - } - cpsr_write(env, qemu_get_be32(f), 0xffffffff); - env->spsr = qemu_get_be32(f); - for (i = 0; i < 6; i++) { - env->banked_spsr[i] = qemu_get_be32(f); - env->banked_r13[i] = qemu_get_be32(f); - env->banked_r14[i] = qemu_get_be32(f); - } - for (i = 0; i < 5; i++) { - env->usr_regs[i] = qemu_get_be32(f); - env->fiq_regs[i] = qemu_get_be32(f); - } - env->cp15.c0_cpuid = qemu_get_be32(f); - env->cp15.c0_cachetype = qemu_get_be32(f); - env->cp15.c1_sys = qemu_get_be32(f); - env->cp15.c1_coproc = qemu_get_be32(f); - env->cp15.c1_xscaleauxcr = qemu_get_be32(f); - env->cp15.c2_base0 = qemu_get_be32(f); - env->cp15.c2_base1 = qemu_get_be32(f); - env->cp15.c2_mask = qemu_get_be32(f); - env->cp15.c2_data = qemu_get_be32(f); - env->cp15.c2_insn = qemu_get_be32(f); - env->cp15.c3 = qemu_get_be32(f); - env->cp15.c5_insn = qemu_get_be32(f); - env->cp15.c5_data = qemu_get_be32(f); - for (i = 0; i < 8; i++) { - env->cp15.c6_region[i] = qemu_get_be32(f); - } - env->cp15.c6_insn = qemu_get_be32(f); - env->cp15.c6_data = qemu_get_be32(f); - env->cp15.c9_insn = qemu_get_be32(f); - env->cp15.c9_data = qemu_get_be32(f); - env->cp15.c13_fcse = qemu_get_be32(f); - env->cp15.c13_context = qemu_get_be32(f); - env->cp15.c13_tls1 = qemu_get_be32(f); - env->cp15.c13_tls2 = qemu_get_be32(f); - env->cp15.c13_tls3 = qemu_get_be32(f); - env->cp15.c15_cpar = qemu_get_be32(f); - - env->features = qemu_get_be32(f); - - if (arm_feature(env, ARM_FEATURE_VFP)) { - for (i = 0; i < 16; i++) { - CPU_DoubleU u; - u.l.upper = qemu_get_be32(f); - u.l.lower = qemu_get_be32(f); - env->vfp.regs[i] = u.d; - } - for (i = 0; i < 16; i++) { - env->vfp.xregs[i] = qemu_get_be32(f); - } - - /* TODO: Should use proper FPSCR access functions. */ - env->vfp.vec_len = qemu_get_be32(f); - env->vfp.vec_stride = qemu_get_be32(f); - - if (arm_feature(env, ARM_FEATURE_VFP3)) { - for (i = 0; i < 16; i++) { - CPU_DoubleU u; - u.l.upper = qemu_get_be32(f); - u.l.lower = qemu_get_be32(f); - env->vfp.regs[i] = u.d; - } - } - } - - if (arm_feature(env, ARM_FEATURE_IWMMXT)) { - for (i = 0; i < 16; i++) { - env->iwmmxt.regs[i] = qemu_get_be64(f); - } - for (i = 0; i < 16; i++) { - env->iwmmxt.cregs[i] = qemu_get_be32(f); - } - } - - if (arm_feature(env, ARM_FEATURE_M)) { - env->v7m.other_sp = qemu_get_be32(f); - env->v7m.vecbase = qemu_get_be32(f); - env->v7m.basepri = qemu_get_be32(f); - env->v7m.control = qemu_get_be32(f); - env->v7m.current_sp = qemu_get_be32(f); - env->v7m.exception = qemu_get_be32(f); - } - - return 0; -} - -#else - -//#warning No CPU save/restore functions - -#endif - -/***********************************************************/ -/* ram save/restore */ - -static int ram_get_page(QEMUFile *f, uint8_t *buf, int len) -{ - int v; - - v = qemu_get_byte(f); - switch(v) { - case 0: - if (qemu_get_buffer(f, buf, len) != len) - return -EIO; - break; - case 1: - v = qemu_get_byte(f); - memset(buf, v, len); - break; - default: - return -EINVAL; - } - return 0; -} - -static int ram_load_v1(QEMUFile *f, void *opaque) -{ - int i, ret; - - if (qemu_get_be32(f) != phys_ram_size) - return -EINVAL; - for(i = 0; i < phys_ram_size; i+= TARGET_PAGE_SIZE) { - ret = ram_get_page(f, phys_ram_base + i, TARGET_PAGE_SIZE); - if (ret) - return ret; - } - return 0; -} - -#define BDRV_HASH_BLOCK_SIZE 1024 -#define IOBUF_SIZE 4096 -#define RAM_CBLOCK_MAGIC 0xfabe - -typedef struct RamCompressState { - z_stream zstream; - QEMUFile *f; - uint8_t buf[IOBUF_SIZE]; -} RamCompressState; - -static int ram_compress_open(RamCompressState *s, QEMUFile *f) -{ - int ret; - memset(s, 0, sizeof(*s)); - s->f = f; - ret = deflateInit2(&s->zstream, 1, - Z_DEFLATED, 15, - 9, Z_DEFAULT_STRATEGY); - if (ret != Z_OK) - return -1; - s->zstream.avail_out = IOBUF_SIZE; - s->zstream.next_out = s->buf; - return 0; -} - -static void ram_put_cblock(RamCompressState *s, const uint8_t *buf, int len) -{ - qemu_put_be16(s->f, RAM_CBLOCK_MAGIC); - qemu_put_be16(s->f, len); - qemu_put_buffer(s->f, buf, len); -} - -static int ram_compress_buf(RamCompressState *s, const uint8_t *buf, int len) -{ - int ret; - - s->zstream.avail_in = len; - s->zstream.next_in = (uint8_t *)buf; - while (s->zstream.avail_in > 0) { - ret = deflate(&s->zstream, Z_NO_FLUSH); - if (ret != Z_OK) - return -1; - if (s->zstream.avail_out == 0) { - ram_put_cblock(s, s->buf, IOBUF_SIZE); - s->zstream.avail_out = IOBUF_SIZE; - s->zstream.next_out = s->buf; - } - } - return 0; -} - -static void ram_compress_close(RamCompressState *s) -{ - int len, ret; - - /* compress last bytes */ - for(;;) { - ret = deflate(&s->zstream, Z_FINISH); - if (ret == Z_OK || ret == Z_STREAM_END) { - len = IOBUF_SIZE - s->zstream.avail_out; - if (len > 0) { - ram_put_cblock(s, s->buf, len); - } - s->zstream.avail_out = IOBUF_SIZE; - s->zstream.next_out = s->buf; - if (ret == Z_STREAM_END) - break; - } else { - goto fail; - } - } -fail: - deflateEnd(&s->zstream); -} - -typedef struct RamDecompressState { - z_stream zstream; - QEMUFile *f; - uint8_t buf[IOBUF_SIZE]; -} RamDecompressState; - -static int ram_decompress_open(RamDecompressState *s, QEMUFile *f) -{ - int ret; - memset(s, 0, sizeof(*s)); - s->f = f; - ret = inflateInit(&s->zstream); - if (ret != Z_OK) - return -1; - return 0; -} - -static int ram_decompress_buf(RamDecompressState *s, uint8_t *buf, int len) -{ - int ret, clen; - - s->zstream.avail_out = len; - s->zstream.next_out = buf; - while (s->zstream.avail_out > 0) { - if (s->zstream.avail_in == 0) { - if (qemu_get_be16(s->f) != RAM_CBLOCK_MAGIC) - return -1; - clen = qemu_get_be16(s->f); - if (clen > IOBUF_SIZE) - return -1; - qemu_get_buffer(s->f, s->buf, clen); - s->zstream.avail_in = clen; - s->zstream.next_in = s->buf; - } - ret = inflate(&s->zstream, Z_PARTIAL_FLUSH); - if (ret != Z_OK && ret != Z_STREAM_END) { - return -1; - } - } - return 0; -} - -static void ram_decompress_close(RamDecompressState *s) -{ - inflateEnd(&s->zstream); -} - -static void ram_save(QEMUFile *f, void *opaque) -{ - int i; - RamCompressState s1, *s = &s1; - uint8_t buf[10]; - - qemu_put_be32(f, phys_ram_size); - if (ram_compress_open(s, f) < 0) - return; - for(i = 0; i < phys_ram_size; i+= BDRV_HASH_BLOCK_SIZE) { -#if 0 - if (tight_savevm_enabled) { - int64_t sector_num; - int j; - - /* find if the memory block is available on a virtual - block device */ - sector_num = -1; - for(j = 0; j < nb_drives; j++) { - sector_num = bdrv_hash_find(drives_table[j].bdrv, - phys_ram_base + i, - BDRV_HASH_BLOCK_SIZE); - if (sector_num >= 0) - break; - } - if (j == nb_drives) - goto normal_compress; - buf[0] = 1; - buf[1] = j; - cpu_to_be64wu((uint64_t *)(buf + 2), sector_num); - ram_compress_buf(s, buf, 10); - } else -#endif - { - // normal_compress: - buf[0] = 0; - ram_compress_buf(s, buf, 1); - ram_compress_buf(s, phys_ram_base + i, BDRV_HASH_BLOCK_SIZE); - } - } - ram_compress_close(s); -} - -static int ram_load(QEMUFile *f, void *opaque, int version_id) -{ - RamDecompressState s1, *s = &s1; - uint8_t buf[10]; - int i; - - if (version_id == 1) - return ram_load_v1(f, opaque); - if (version_id != 2) - return -EINVAL; - if (qemu_get_be32(f) != phys_ram_size) - return -EINVAL; - if (ram_decompress_open(s, f) < 0) - return -EINVAL; - for(i = 0; i < phys_ram_size; i+= BDRV_HASH_BLOCK_SIZE) { - if (ram_decompress_buf(s, buf, 1) < 0) { - fprintf(stderr, "Error while reading ram block header\n"); - goto error; - } - if (buf[0] == 0) { - if (ram_decompress_buf(s, phys_ram_base + i, BDRV_HASH_BLOCK_SIZE) < 0) { - fprintf(stderr, "Error while reading ram block address=0x%08x", i); - goto error; - } - } else -#if 0 - if (buf[0] == 1) { - int bs_index; - int64_t sector_num; - - ram_decompress_buf(s, buf + 1, 9); - bs_index = buf[1]; - sector_num = be64_to_cpupu((const uint64_t *)(buf + 2)); - if (bs_index >= nb_drives) { - fprintf(stderr, "Invalid block device index %d\n", bs_index); - goto error; - } - if (bdrv_read(drives_table[bs_index].bdrv, sector_num, - phys_ram_base + i, - BDRV_HASH_BLOCK_SIZE / 512) < 0) { - fprintf(stderr, "Error while reading sector %d:%" PRId64 "\n", - bs_index, sector_num); - goto error; - } - } else -#endif - { - error: - printf("Error block header\n"); - return -EINVAL; - } - } - ram_decompress_close(s); - return 0; -} - -/***********************************************************/ -/* bottom halves (can be seen as timers which expire ASAP) */ - -struct QEMUBH { - QEMUBHFunc *cb; - void *opaque; - int scheduled; - QEMUBH *next; -}; - -static QEMUBH *first_bh = NULL; - -QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque) -{ - QEMUBH *bh; - bh = qemu_mallocz(sizeof(QEMUBH)); - if (!bh) - return NULL; - bh->cb = cb; - bh->opaque = opaque; - return bh; -} - -int qemu_bh_poll(void) -{ - QEMUBH *bh, **pbh; - int ret; - - ret = 0; - for(;;) { - pbh = &first_bh; - bh = *pbh; - if (!bh) - break; - ret = 1; - *pbh = bh->next; - bh->scheduled = 0; - bh->cb(bh->opaque); - } - return ret; -} - -void qemu_bh_schedule(QEMUBH *bh) -{ - CPUState *env = cpu_single_env; - if (bh->scheduled) - return; - bh->scheduled = 1; - bh->next = first_bh; - first_bh = bh; - - /* stop the currently executing CPU to execute the BH ASAP */ - if (env) { - cpu_interrupt(env, CPU_INTERRUPT_EXIT); - } -} - -void qemu_bh_cancel(QEMUBH *bh) -{ - QEMUBH **pbh; - if (bh->scheduled) { - pbh = &first_bh; - while (*pbh != bh) - pbh = &(*pbh)->next; - *pbh = bh->next; - bh->scheduled = 0; - } -} - -void qemu_bh_delete(QEMUBH *bh) -{ - qemu_bh_cancel(bh); - qemu_free(bh); -} - -/***********************************************************/ -/* machine registration */ - -QEMUMachine *first_machine = NULL; - -int qemu_register_machine(QEMUMachine *m) -{ - QEMUMachine **pm; - pm = &first_machine; - while (*pm != NULL) - pm = &(*pm)->next; - m->next = NULL; - *pm = m; - return 0; -} - -static QEMUMachine *find_machine(const char *name) -{ - QEMUMachine *m; - - for(m = first_machine; m != NULL; m = m->next) { - if (!strcmp(m->name, name)) - return m; - } - return NULL; -} - -/***********************************************************/ -/* main execution loop */ - -static void gui_update(void *opaque) -{ - DisplayState *ds = opaque; - ds->dpy_refresh(ds); - qemu_mod_timer(ds->gui_timer, GUI_REFRESH_INTERVAL + qemu_get_clock(rt_clock)); -} - -struct vm_change_state_entry { - VMChangeStateHandler *cb; - void *opaque; - LIST_ENTRY (vm_change_state_entry) entries; -}; - -static LIST_HEAD(vm_change_state_head, vm_change_state_entry) vm_change_state_head; - -VMChangeStateEntry *qemu_add_vm_change_state_handler(VMChangeStateHandler *cb, - void *opaque) -{ - VMChangeStateEntry *e; - - e = qemu_mallocz(sizeof (*e)); - if (!e) - return NULL; - - e->cb = cb; - e->opaque = opaque; - LIST_INSERT_HEAD(&vm_change_state_head, e, entries); - return e; -} - -void qemu_del_vm_change_state_handler(VMChangeStateEntry *e) -{ - LIST_REMOVE (e, entries); - qemu_free (e); -} - -static void vm_state_notify(int running) -{ - VMChangeStateEntry *e; - - for (e = vm_change_state_head.lh_first; e; e = e->entries.le_next) { - e->cb(e->opaque, running); - } -} - -/* XXX: support several handlers */ -static VMStopHandler *vm_stop_cb; -static void *vm_stop_opaque; - -int qemu_add_vm_stop_handler(VMStopHandler *cb, void *opaque) -{ - vm_stop_cb = cb; - vm_stop_opaque = opaque; - return 0; -} - -void qemu_del_vm_stop_handler(VMStopHandler *cb, void *opaque) -{ - vm_stop_cb = NULL; -} - -void vm_start(void) -{ - if (!vm_running) { - cpu_enable_ticks(); - vm_running = 1; - vm_state_notify(1); - qemu_rearm_alarm_timer(alarm_timer); - } -} - -void vm_stop(int reason) -{ - if (vm_running) { - cpu_disable_ticks(); - vm_running = 0; - if (reason != 0) { - if (vm_stop_cb) { - vm_stop_cb(vm_stop_opaque, reason); - } - } - vm_state_notify(0); - } -} - -/* reset/shutdown handler */ - -typedef struct QEMUResetEntry { - QEMUResetHandler *func; - void *opaque; - struct QEMUResetEntry *next; -} QEMUResetEntry; - -static QEMUResetEntry *first_reset_entry; -static int reset_requested; -static int shutdown_requested; -static int powerdown_requested; - -void qemu_register_reset(QEMUResetHandler *func, void *opaque) -{ - QEMUResetEntry **pre, *re; - - pre = &first_reset_entry; - while (*pre != NULL) - pre = &(*pre)->next; - re = qemu_mallocz(sizeof(QEMUResetEntry)); - re->func = func; - re->opaque = opaque; - re->next = NULL; - *pre = re; -} - -static void qemu_system_reset(void) -{ - QEMUResetEntry *re; - - /* reset all devices */ - for(re = first_reset_entry; re != NULL; re = re->next) { - re->func(re->opaque); - } -} - -void qemu_system_reset_request(void) -{ - if (no_reboot) { - shutdown_requested = 1; - } else { - reset_requested = 1; - } - if (cpu_single_env) - cpu_interrupt(cpu_single_env, CPU_INTERRUPT_EXIT); -} - -void qemu_system_shutdown_request(void) -{ - shutdown_requested = 1; - if (cpu_single_env) - cpu_interrupt(cpu_single_env, CPU_INTERRUPT_EXIT); -} - -void qemu_system_powerdown_request(void) -{ - powerdown_requested = 1; - if (cpu_single_env) - cpu_interrupt(cpu_single_env, CPU_INTERRUPT_EXIT); -} - -void main_loop_wait(int timeout) -{ - IOHandlerRecord *ioh; - fd_set rfds, wfds, xfds; - int ret, nfds; -#ifdef _WIN32 - int ret2, i; -#endif - struct timeval tv; - PollingEntry *pe; - - - /* XXX: need to suppress polling by better using win32 events */ - ret = 0; - for(pe = first_polling_entry; pe != NULL; pe = pe->next) { - ret |= pe->func(pe->opaque); - } -#ifdef _WIN32 - if (ret == 0) { - int err; - WaitObjects *w = &wait_objects; - - ret = WaitForMultipleObjects(w->num, w->events, FALSE, timeout); - if (WAIT_OBJECT_0 + 0 <= ret && ret <= WAIT_OBJECT_0 + w->num - 1) { - if (w->func[ret - WAIT_OBJECT_0]) - w->func[ret - WAIT_OBJECT_0](w->opaque[ret - WAIT_OBJECT_0]); - - /* Check for additional signaled events */ - for(i = (ret - WAIT_OBJECT_0 + 1); i < w->num; i++) { - - /* Check if event is signaled */ - ret2 = WaitForSingleObject(w->events[i], 0); - if(ret2 == WAIT_OBJECT_0) { - if (w->func[i]) - w->func[i](w->opaque[i]); - } else if (ret2 == WAIT_TIMEOUT) { - } else { - err = GetLastError(); - fprintf(stderr, "WaitForSingleObject error %d %d\n", i, err); - } - } - } else if (ret == WAIT_TIMEOUT) { - } else { - err = GetLastError(); - fprintf(stderr, "WaitForMultipleObjects error %d %d\n", ret, err); - } - } -#endif - /* poll any events */ - /* XXX: separate device handlers from system ones */ - nfds = -1; - FD_ZERO(&rfds); - FD_ZERO(&wfds); - FD_ZERO(&xfds); - for(ioh = first_io_handler; ioh != NULL; ioh = ioh->next) { - if (ioh->deleted) - continue; - if (ioh->fd_read && - (!ioh->fd_read_poll || - ioh->fd_read_poll(ioh->opaque) != 0)) { - FD_SET(ioh->fd, &rfds); - if (ioh->fd > nfds) - nfds = ioh->fd; - } - if (ioh->fd_write) { - FD_SET(ioh->fd, &wfds); - if (ioh->fd > nfds) - nfds = ioh->fd; - } - } - - tv.tv_sec = 0; -#ifdef _WIN32 - tv.tv_usec = 0; -#else - tv.tv_usec = timeout * 1000; -#endif -#if defined(CONFIG_SLIRP) - if (slirp_inited) { - slirp_select_fill(&nfds, &rfds, &wfds, &xfds); - } -#endif - ret = select(nfds + 1, &rfds, &wfds, &xfds, &tv); - if (ret > 0) { - IOHandlerRecord **pioh; - - for(ioh = first_io_handler; ioh != NULL; ioh = ioh->next) { - if (!ioh->deleted && ioh->fd_read && FD_ISSET(ioh->fd, &rfds)) { - ioh->fd_read(ioh->opaque); - } - if (!ioh->deleted && ioh->fd_write && FD_ISSET(ioh->fd, &wfds)) { - ioh->fd_write(ioh->opaque); - } - } - - /* remove deleted IO handlers */ - pioh = &first_io_handler; - while (*pioh) { - ioh = *pioh; - if (ioh->deleted) { - *pioh = ioh->next; - qemu_free(ioh); - } else - pioh = &ioh->next; - } - } -#if defined(CONFIG_SLIRP) - if (slirp_inited) { - if (ret < 0) { - FD_ZERO(&rfds); - FD_ZERO(&wfds); - FD_ZERO(&xfds); - } - slirp_select_poll(&rfds, &wfds, &xfds); - } -#endif - qemu_aio_poll(); - - if (vm_running) { - qemu_run_timers(&active_timers[QEMU_TIMER_VIRTUAL], - qemu_get_clock(vm_clock)); - /* run dma transfers, if any */ - DMA_run(); - } - - /* real time timers */ - qemu_run_timers(&active_timers[QEMU_TIMER_REALTIME], - qemu_get_clock(rt_clock)); - - if (alarm_timer->flags & ALARM_FLAG_EXPIRED) { - alarm_timer->flags &= ~(ALARM_FLAG_EXPIRED); - qemu_rearm_alarm_timer(alarm_timer); - } - - /* Check bottom-halves last in case any of the earlier events triggered - them. */ - qemu_bh_poll(); - -} - -static int main_loop(void) -{ - int ret, timeout; -#ifdef CONFIG_PROFILER - int64_t ti; -#endif - CPUState *env; - - cur_cpu = first_cpu; - next_cpu = cur_cpu->next_cpu ?: first_cpu; - for(;;) { - if (vm_running) { - - for(;;) { - /* get next cpu */ - env = next_cpu; -#ifdef CONFIG_PROFILER - ti = profile_getclock(); -#endif - ret = cpu_exec(env); -#ifdef CONFIG_PROFILER - qemu_time += profile_getclock() - ti; -#endif - next_cpu = env->next_cpu ?: first_cpu; - if (event_pending) { - ret = EXCP_INTERRUPT; - event_pending = 0; - break; - } - if (ret == EXCP_HLT) { - /* Give the next CPU a chance to run. */ - cur_cpu = env; - continue; - } - if (ret != EXCP_HALTED) - break; - /* all CPUs are halted ? */ - if (env == cur_cpu) - break; - } - cur_cpu = env; - - if (shutdown_requested) { - ret = EXCP_INTERRUPT; - break; - } - if (reset_requested) { - reset_requested = 0; - qemu_system_reset(); - ret = EXCP_INTERRUPT; - } - if (powerdown_requested) { - powerdown_requested = 0; - qemu_system_powerdown(); - ret = EXCP_INTERRUPT; - } - if (ret == EXCP_DEBUG) { - vm_stop(EXCP_DEBUG); - } - /* If all cpus are halted then wait until the next IRQ */ - /* XXX: use timeout computed from timers */ - if (ret == EXCP_HALTED) - timeout = 10; - else - timeout = 0; - } else { - timeout = 10; - } -#ifdef CONFIG_PROFILER - ti = profile_getclock(); -#endif - main_loop_wait(timeout); -#ifdef CONFIG_PROFILER - dev_time += profile_getclock() - ti; -#endif - } - cpu_disable_ticks(); - return ret; -} - -static void help(int exitcode) -{ - printf("QEMU PC emulator version " QEMU_VERSION ", Copyright (c) 2003-2008 Fabrice Bellard\n" - "usage: %s [options] [disk_image]\n" - "\n" - "'disk_image' is a raw hard image image for IDE hard disk 0\n" - "\n" - "Standard options:\n" - "-M machine select emulated machine (-M ? for list)\n" - "-cpu cpu select CPU (-cpu ? for list)\n" - "-fda/-fdb file use 'file' as floppy disk 0/1 image\n" - "-hda/-hdb file use 'file' as IDE hard disk 0/1 image\n" - "-hdc/-hdd file use 'file' as IDE hard disk 2/3 image\n" - "-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)\n" - "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][index=i]\n" - " [,cyls=c,heads=h,secs=s[,trans=t]][snapshot=on|off]" - " [,cache=on|off]\n" - " use 'file' as a drive image\n" - "-mtdblock file use 'file' as on-board Flash memory image\n" - "-sd file use 'file' as SecureDigital card image\n" - "-pflash file use 'file' as a parallel flash image\n" - "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n" - "-snapshot write to temporary files instead of disk image files\n" -#ifdef CONFIG_SDL - "-no-frame open SDL window without a frame and window decorations\n" - "-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n" - "-no-quit disable SDL window close capability\n" -#endif -#ifdef TARGET_I386 - "-no-fd-bootchk disable boot signature checking for floppy disks\n" -#endif - "-m megs set virtual RAM size to megs MB [default=%d]\n" - "-smp n set the number of CPUs to 'n' [default=1]\n" - "-nographic disable graphical output and redirect serial I/Os to console\n" - "-portrait rotate graphical output 90 deg left (only PXA LCD)\n" -#ifndef _WIN32 - "-k language use keyboard layout (for example \"fr\" for French)\n" -#endif -#ifdef HAS_AUDIO - "-audio-help print list of audio drivers and their options\n" - "-soundhw c1,... enable audio support\n" - " and only specified sound cards (comma separated list)\n" - " use -soundhw ? to get the list of supported cards\n" - " use -soundhw all to enable all of them\n" -#endif - "-localtime set the real time clock to local time [default=utc]\n" - "-full-screen start in full screen\n" -#ifdef TARGET_I386 - "-win2k-hack use it when installing Windows 2000 to avoid a disk full bug\n" -#endif - "-usb enable the USB driver (will be the default soon)\n" - "-usbdevice name add the host or guest USB device 'name'\n" -#if defined(TARGET_PPC) || defined(TARGET_SPARC) - "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n" -#endif - "-name string set the name of the guest\n" - "\n" - "Network options:\n" - "-net nic[,vlan=n][,macaddr=addr][,model=type]\n" - " create a new Network Interface Card and connect it to VLAN 'n'\n" -#ifdef CONFIG_SLIRP - "-net user[,vlan=n][,hostname=host]\n" - " connect the user mode network stack to VLAN 'n' and send\n" - " hostname 'host' to DHCP clients\n" -#endif -#ifdef _WIN32 - "-net tap[,vlan=n],ifname=name\n" - " connect the host TAP network interface to VLAN 'n'\n" -#else - "-net tap[,vlan=n][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n" - " connect the host TAP network interface to VLAN 'n' and use the\n" - " network scripts 'file' (default=%s)\n" - " and 'dfile' (default=%s);\n" - " use '[down]script=no' to disable script execution;\n" - " use 'fd=h' to connect to an already opened TAP interface\n" -#endif - "-net socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]\n" - " connect the vlan 'n' to another VLAN using a socket connection\n" - "-net socket[,vlan=n][,fd=h][,mcast=maddr:port]\n" - " connect the vlan 'n' to multicast maddr and port\n" - "-net none use it alone to have zero network devices; if no -net option\n" - " is provided, the default is '-net nic -net user'\n" - "\n" -#ifdef CONFIG_SLIRP - "-tftp dir allow tftp access to files in dir [-net user]\n" - "-bootp file advertise file in BOOTP replies\n" -#ifndef _WIN32 - "-smb dir allow SMB access to files in 'dir' [-net user]\n" -#endif - "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n" - " redirect TCP or UDP connections from host to guest [-net user]\n" -#endif - "\n" - "Linux boot specific:\n" - "-kernel bzImage use 'bzImage' as kernel image\n" - "-append cmdline use 'cmdline' as kernel command line\n" - "-initrd file use 'file' as initial ram disk\n" - "\n" - "Debug/Expert options:\n" - "-monitor dev redirect the monitor to char device 'dev'\n" - "-serial dev redirect the serial port to char device 'dev'\n" - "-parallel dev redirect the parallel port to char device 'dev'\n" - "-pidfile file Write PID to 'file'\n" - "-S freeze CPU at startup (use 'c' to start execution)\n" - "-s wait gdb connection to port\n" - "-p port set gdb connection port [default=%s]\n" - "-d item1,... output log to %s (use -d ? for a list of log items)\n" - "-hdachs c,h,s[,t] force hard disk 0 physical geometry and the optional BIOS\n" - " translation (t=none or lba) (usually qemu can guess them)\n" - "-L path set the directory for the BIOS, VGA BIOS and keymaps\n" -#ifdef USE_KQEMU - "-kernel-kqemu enable KQEMU full virtualization (default is user mode only)\n" - "-no-kqemu disable KQEMU kernel module usage\n" -#endif -#ifdef TARGET_I386 - "-std-vga simulate a standard VGA card with VESA Bochs Extensions\n" - " (default is CL-GD5446 PCI VGA)\n" - "-no-acpi disable ACPI\n" -#endif - "-no-reboot exit instead of rebooting\n" - "-loadvm file start right away with a saved state (loadvm in monitor)\n" - "-vnc display start a VNC server on display\n" -#ifndef _WIN32 - "-daemonize daemonize QEMU after initializing\n" -#endif - "-option-rom rom load a file, rom, into the option ROM space\n" -#ifdef TARGET_SPARC - "-prom-env variable=value set OpenBIOS nvram variables\n" -#endif - "-clock force the use of the given methods for timer alarm.\n" - " To see what timers are available use -clock help\n" - "\n" - "During emulation, the following keys are useful:\n" - "ctrl-alt-f toggle full screen\n" - "ctrl-alt-n switch to virtual console 'n'\n" - "ctrl-alt toggle mouse and keyboard grab\n" - "\n" - "When using -nographic, press 'ctrl-a h' to get some help.\n" - , - "qemu", - DEFAULT_RAM_SIZE, -#ifndef _WIN32 - DEFAULT_NETWORK_SCRIPT, - DEFAULT_NETWORK_DOWN_SCRIPT, -#endif - DEFAULT_GDBSTUB_PORT, - "/tmp/qemu.log"); - exit(exitcode); -} - -#define HAS_ARG 0x0001 - -enum { - QEMU_OPTION_h, - - QEMU_OPTION_M, - QEMU_OPTION_cpu, - QEMU_OPTION_fda, - QEMU_OPTION_fdb, - QEMU_OPTION_hda, - QEMU_OPTION_hdb, - QEMU_OPTION_hdc, - QEMU_OPTION_hdd, - QEMU_OPTION_drive, - QEMU_OPTION_cdrom, - QEMU_OPTION_mtdblock, - QEMU_OPTION_sd, - QEMU_OPTION_pflash, - QEMU_OPTION_boot, - QEMU_OPTION_snapshot, -#ifdef TARGET_I386 - QEMU_OPTION_no_fd_bootchk, -#endif - QEMU_OPTION_m, - QEMU_OPTION_nographic, - QEMU_OPTION_portrait, -#ifdef HAS_AUDIO - QEMU_OPTION_audio_help, - QEMU_OPTION_soundhw, -#endif - - QEMU_OPTION_net, - QEMU_OPTION_tftp, - QEMU_OPTION_bootp, - QEMU_OPTION_smb, - QEMU_OPTION_redir, - - QEMU_OPTION_kernel, - QEMU_OPTION_append, - QEMU_OPTION_initrd, - - QEMU_OPTION_S, - QEMU_OPTION_s, - QEMU_OPTION_p, - QEMU_OPTION_d, - QEMU_OPTION_hdachs, - QEMU_OPTION_L, - QEMU_OPTION_bios, - QEMU_OPTION_no_code_copy, - QEMU_OPTION_k, - QEMU_OPTION_localtime, - QEMU_OPTION_cirrusvga, - QEMU_OPTION_vmsvga, - QEMU_OPTION_g, - QEMU_OPTION_std_vga, - QEMU_OPTION_echr, - QEMU_OPTION_monitor, - QEMU_OPTION_serial, - QEMU_OPTION_parallel, - QEMU_OPTION_loadvm, - QEMU_OPTION_full_screen, - QEMU_OPTION_no_frame, - QEMU_OPTION_alt_grab, - QEMU_OPTION_no_quit, - QEMU_OPTION_pidfile, - QEMU_OPTION_no_kqemu, - QEMU_OPTION_kernel_kqemu, - QEMU_OPTION_win2k_hack, - QEMU_OPTION_usb, - QEMU_OPTION_usbdevice, - QEMU_OPTION_smp, - QEMU_OPTION_vnc, - QEMU_OPTION_no_acpi, - QEMU_OPTION_no_reboot, - QEMU_OPTION_show_cursor, - QEMU_OPTION_daemonize, - QEMU_OPTION_option_rom, - QEMU_OPTION_semihosting, - QEMU_OPTION_name, - QEMU_OPTION_prom_env, - QEMU_OPTION_old_param, - QEMU_OPTION_clock, - QEMU_OPTION_startdate, -}; - -typedef struct QEMUOption { - const char *name; - int flags; - int index; -} QEMUOption; - -const QEMUOption qemu_options[] = { - { "h", 0, QEMU_OPTION_h }, - { "help", 0, QEMU_OPTION_h }, - - { "M", HAS_ARG, QEMU_OPTION_M }, - { "cpu", HAS_ARG, QEMU_OPTION_cpu }, - { "fda", HAS_ARG, QEMU_OPTION_fda }, - { "fdb", HAS_ARG, QEMU_OPTION_fdb }, - { "hda", HAS_ARG, QEMU_OPTION_hda }, - { "hdb", HAS_ARG, QEMU_OPTION_hdb }, - { "hdc", HAS_ARG, QEMU_OPTION_hdc }, - { "hdd", HAS_ARG, QEMU_OPTION_hdd }, - { "drive", HAS_ARG, QEMU_OPTION_drive }, - { "cdrom", HAS_ARG, QEMU_OPTION_cdrom }, - { "mtdblock", HAS_ARG, QEMU_OPTION_mtdblock }, - { "sd", HAS_ARG, QEMU_OPTION_sd }, - { "pflash", HAS_ARG, QEMU_OPTION_pflash }, - { "boot", HAS_ARG, QEMU_OPTION_boot }, - { "snapshot", 0, QEMU_OPTION_snapshot }, -#ifdef TARGET_I386 - { "no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk }, -#endif - { "m", HAS_ARG, QEMU_OPTION_m }, - { "nographic", 0, QEMU_OPTION_nographic }, - { "portrait", 0, QEMU_OPTION_portrait }, - { "k", HAS_ARG, QEMU_OPTION_k }, -#ifdef HAS_AUDIO - { "audio-help", 0, QEMU_OPTION_audio_help }, - { "soundhw", HAS_ARG, QEMU_OPTION_soundhw }, -#endif - - { "net", HAS_ARG, QEMU_OPTION_net}, -#ifdef CONFIG_SLIRP - { "tftp", HAS_ARG, QEMU_OPTION_tftp }, - { "bootp", HAS_ARG, QEMU_OPTION_bootp }, -#ifndef _WIN32 - { "smb", HAS_ARG, QEMU_OPTION_smb }, -#endif - { "redir", HAS_ARG, QEMU_OPTION_redir }, -#endif - - { "kernel", HAS_ARG, QEMU_OPTION_kernel }, - { "append", HAS_ARG, QEMU_OPTION_append }, - { "initrd", HAS_ARG, QEMU_OPTION_initrd }, - - { "S", 0, QEMU_OPTION_S }, - { "s", 0, QEMU_OPTION_s }, - { "p", HAS_ARG, QEMU_OPTION_p }, - { "d", HAS_ARG, QEMU_OPTION_d }, - { "hdachs", HAS_ARG, QEMU_OPTION_hdachs }, - { "L", HAS_ARG, QEMU_OPTION_L }, - { "bios", HAS_ARG, QEMU_OPTION_bios }, - { "no-code-copy", 0, QEMU_OPTION_no_code_copy }, -#ifdef USE_KQEMU - { "no-kqemu", 0, QEMU_OPTION_no_kqemu }, - { "kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu }, -#endif -#if defined(TARGET_PPC) || defined(TARGET_SPARC) - { "g", 1, QEMU_OPTION_g }, -#endif - { "localtime", 0, QEMU_OPTION_localtime }, - { "std-vga", 0, QEMU_OPTION_std_vga }, - { "echr", HAS_ARG, QEMU_OPTION_echr }, - { "monitor", HAS_ARG, QEMU_OPTION_monitor }, - { "serial", HAS_ARG, QEMU_OPTION_serial }, - { "parallel", HAS_ARG, QEMU_OPTION_parallel }, - { "loadvm", HAS_ARG, QEMU_OPTION_loadvm }, - { "full-screen", 0, QEMU_OPTION_full_screen }, -#ifdef CONFIG_SDL - { "no-frame", 0, QEMU_OPTION_no_frame }, - { "alt-grab", 0, QEMU_OPTION_alt_grab }, - { "no-quit", 0, QEMU_OPTION_no_quit }, -#endif - { "pidfile", HAS_ARG, QEMU_OPTION_pidfile }, - { "win2k-hack", 0, QEMU_OPTION_win2k_hack }, - { "usbdevice", HAS_ARG, QEMU_OPTION_usbdevice }, - { "smp", HAS_ARG, QEMU_OPTION_smp }, - { "vnc", HAS_ARG, QEMU_OPTION_vnc }, - - /* temporary options */ - { "usb", 0, QEMU_OPTION_usb }, - { "cirrusvga", 0, QEMU_OPTION_cirrusvga }, - { "vmwarevga", 0, QEMU_OPTION_vmsvga }, - { "no-acpi", 0, QEMU_OPTION_no_acpi }, - { "no-reboot", 0, QEMU_OPTION_no_reboot }, - { "show-cursor", 0, QEMU_OPTION_show_cursor }, - { "daemonize", 0, QEMU_OPTION_daemonize }, - { "option-rom", HAS_ARG, QEMU_OPTION_option_rom }, -#if defined(TARGET_ARM) || defined(TARGET_M68K) - { "semihosting", 0, QEMU_OPTION_semihosting }, -#endif - { "name", HAS_ARG, QEMU_OPTION_name }, -#if defined(TARGET_SPARC) - { "prom-env", HAS_ARG, QEMU_OPTION_prom_env }, -#endif -#if defined(TARGET_ARM) - { "old-param", 0, QEMU_OPTION_old_param }, -#endif - { "clock", HAS_ARG, QEMU_OPTION_clock }, - { "startdate", HAS_ARG, QEMU_OPTION_startdate }, - { NULL }, -}; - -/* password input */ - -int qemu_key_check(BlockDriverState *bs, const char *name) -{ - char password[256]; - int i; - - if (!bdrv_is_encrypted(bs)) - return 0; - - term_printf("%s is encrypted.\n", name); - for(i = 0; i < 3; i++) { - monitor_readline("Password: ", 1, password, sizeof(password)); - if (bdrv_set_key(bs, password) == 0) - return 0; - term_printf("invalid password\n"); - } - return -EPERM; -} - -static BlockDriverState *get_bdrv(int index) -{ - if (index > nb_drives) - return NULL; - return drives_table[index].bdrv; -} - -static void read_passwords(void) -{ - BlockDriverState *bs; - int i; - - for(i = 0; i < 6; i++) { - bs = get_bdrv(i); - if (bs) - qemu_key_check(bs, bdrv_get_device_name(bs)); - } -} - -/* XXX: currently we cannot use simultaneously different CPUs */ -static void register_machines(void) -{ -#if defined(TARGET_I386) - qemu_register_machine(&pc_machine); - qemu_register_machine(&isapc_machine); -#elif defined(TARGET_PPC) - qemu_register_machine(&heathrow_machine); - qemu_register_machine(&core99_machine); - qemu_register_machine(&prep_machine); - qemu_register_machine(&ref405ep_machine); - qemu_register_machine(&taihu_machine); -#elif defined(TARGET_MIPS) - qemu_register_machine(&mips_machine); - qemu_register_machine(&mips_malta_machine); - qemu_register_machine(&mips_pica61_machine); - qemu_register_machine(&mips_mipssim_machine); -#elif defined(TARGET_SPARC) -#ifdef TARGET_SPARC64 - qemu_register_machine(&sun4u_machine); -#else - qemu_register_machine(&ss5_machine); - qemu_register_machine(&ss10_machine); - qemu_register_machine(&ss600mp_machine); - qemu_register_machine(&ss20_machine); - qemu_register_machine(&ss2_machine); - qemu_register_machine(&ss1000_machine); - qemu_register_machine(&ss2000_machine); -#endif -#elif defined(TARGET_ARM) - qemu_register_machine(&integratorcp_machine); - qemu_register_machine(&versatilepb_machine); - qemu_register_machine(&versatileab_machine); - qemu_register_machine(&realview_machine); - qemu_register_machine(&akitapda_machine); - qemu_register_machine(&spitzpda_machine); - qemu_register_machine(&borzoipda_machine); - qemu_register_machine(&terrierpda_machine); - qemu_register_machine(&palmte_machine); - qemu_register_machine(&lm3s811evb_machine); - qemu_register_machine(&lm3s6965evb_machine); - qemu_register_machine(&connex_machine); - qemu_register_machine(&verdex_machine); - qemu_register_machine(&mainstone2_machine); - qemu_register_machine(&mc1322x_machine); -#elif defined(TARGET_SH4) - qemu_register_machine(&shix_machine); - qemu_register_machine(&r2d_machine); -#elif defined(TARGET_ALPHA) - /* XXX: TODO */ -#elif defined(TARGET_M68K) - qemu_register_machine(&mcf5208evb_machine); - qemu_register_machine(&an5206_machine); - qemu_register_machine(&dummy_m68k_machine); -#elif defined(TARGET_CRIS) - qemu_register_machine(&bareetraxfs_machine); -#else -#error unsupported CPU -#endif -} - -#ifdef HAS_AUDIO -struct soundhw soundhw[] = { -#ifdef HAS_AUDIO_CHOICE -#ifdef TARGET_I386 - { - "pcspk", - "PC speaker", - 0, - 1, - { .init_isa = pcspk_audio_init } - }, -#endif - { - "sb16", - "Creative Sound Blaster 16", - 0, - 1, - { .init_isa = SB16_init } - }, - -#ifdef CONFIG_ADLIB - { - "adlib", -#ifdef HAS_YMF262 - "Yamaha YMF262 (OPL3)", -#else - "Yamaha YM3812 (OPL2)", -#endif - 0, - 1, - { .init_isa = Adlib_init } - }, -#endif - -#ifdef CONFIG_GUS - { - "gus", - "Gravis Ultrasound GF1", - 0, - 1, - { .init_isa = GUS_init } - }, -#endif - - { - "es1370", - "ENSONIQ AudioPCI ES1370", - 0, - 0, - { .init_pci = es1370_init } - }, -#endif - - { NULL, NULL, 0, 0, { NULL } } -}; - -static void select_soundhw (const char *optarg) -{ - struct soundhw *c; - - if (*optarg == '?') { - show_valid_cards: - - printf ("Valid sound card names (comma separated):\n"); - for (c = soundhw; c->name; ++c) { - printf ("%-11s %s\n", c->name, c->descr); - } - printf ("\n-soundhw all will enable all of the above\n"); - exit (*optarg != '?'); - } - else { - size_t l; - const char *p; - char *e; - int bad_card = 0; - - if (!strcmp (optarg, "all")) { - for (c = soundhw; c->name; ++c) { - c->enabled = 1; - } - return; - } - - p = optarg; - while (*p) { - e = strchr (p, ','); - l = !e ? strlen (p) : (size_t) (e - p); - - for (c = soundhw; c->name; ++c) { - if (!strncmp (c->name, p, l)) { - c->enabled = 1; - break; - } - } - - if (!c->name) { - if (l > 80) { - fprintf (stderr, - "Unknown sound card name (too big to show)\n"); - } - else { - fprintf (stderr, "Unknown sound card name `%.*s'\n", - (int) l, p); - } - bad_card = 1; - } - p += l + (e != NULL); - } - - if (bad_card) - goto show_valid_cards; - } -} -#endif - -#ifdef _WIN32 -static BOOL WINAPI qemu_ctrl_handler(DWORD type) -{ - exit(STATUS_CONTROL_C_EXIT); - return TRUE; -} -#endif - -#define MAX_NET_CLIENTS 32 - -int main(int argc, char **argv) -{ -#ifdef CONFIG_GDBSTUB - int use_gdbstub; - const char *gdbstub_port; -#endif - uint32_t boot_devices_bitmap = 0; - int i; - int snapshot, linux_boot, net_boot; - const char *initrd_filename; - const char *kernel_filename, *kernel_cmdline; - const char *boot_devices = ""; - DisplayState *ds = &display_state; - int cyls, heads, secs, translation; - char net_clients[MAX_NET_CLIENTS][256]; - int nb_net_clients; - int hda_index; - int optind; - const char *r, *optarg; - CharDriverState *monitor_hd; - char monitor_device[128]; - char serial_devices[MAX_SERIAL_PORTS][128]; - int serial_device_index; - char parallel_devices[MAX_PARALLEL_PORTS][128]; - int parallel_device_index; - const char *loadvm = NULL; - QEMUMachine *machine; - const char *cpu_model; - char usb_devices[MAX_USB_CMDLINE][128]; - int usb_devices_index; - int fds[2]; - const char *pid_file = NULL; - VLANState *vlan; - - LIST_INIT (&vm_change_state_head); -#ifndef _WIN32 - { - struct sigaction act; - sigfillset(&act.sa_mask); - act.sa_flags = 0; - act.sa_handler = SIG_IGN; - sigaction(SIGPIPE, &act, NULL); - } -#else - SetConsoleCtrlHandler(qemu_ctrl_handler, TRUE); - /* Note: cpu_interrupt() is currently not SMP safe, so we force - QEMU to run on a single CPU */ - { - HANDLE h; - DWORD mask, smask; - int i; - h = GetCurrentProcess(); - if (GetProcessAffinityMask(h, &mask, &smask)) { - for(i = 0; i < 32; i++) { - if (mask & (1 << i)) - break; - } - if (i != 32) { - mask = 1 << i; - SetProcessAffinityMask(h, mask); - } - } - } -#endif - - register_machines(); - machine = first_machine; - cpu_model = NULL; - initrd_filename = NULL; - ram_size = DEFAULT_RAM_SIZE * 1024 * 1024; - vga_ram_size = VGA_RAM_SIZE; -#ifdef CONFIG_GDBSTUB - use_gdbstub = 0; - gdbstub_port = DEFAULT_GDBSTUB_PORT; -#endif - snapshot = 0; - nographic = 0; - kernel_filename = NULL; - kernel_cmdline = ""; - cyls = heads = secs = 0; - translation = BIOS_ATA_TRANSLATION_AUTO; - pstrcpy(monitor_device, sizeof(monitor_device), "vc"); - - pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "vc"); - for(i = 1; i < MAX_SERIAL_PORTS; i++) - serial_devices[i][0] = '\0'; - serial_device_index = 0; - - pstrcpy(parallel_devices[0], sizeof(parallel_devices[0]), "vc"); - for(i = 1; i < MAX_PARALLEL_PORTS; i++) - parallel_devices[i][0] = '\0'; - parallel_device_index = 0; - - usb_devices_index = 0; - - nb_net_clients = 0; - nb_drives = 0; - nb_drives_opt = 0; - hda_index = -1; - - nb_nics = 0; - /* default mac address of the first network interface */ - - optind = 1; - for(;;) { - if (optind >= argc) - break; - r = argv[optind]; - if (r[0] != '-') { - hda_index = drive_add(HD_ALIAS, argv[optind++], 0); - } else { - const QEMUOption *popt; - - optind++; - /* Treat --foo the same as -foo. */ - if (r[1] == '-') - r++; - popt = qemu_options; - for(;;) { - if (!popt->name) { - fprintf(stderr, "%s: invalid option -- '%s'\n", - argv[0], r); - exit(1); - } - if (!strcmp(popt->name, r + 1)) - break; - popt++; - } - if (popt->flags & HAS_ARG) { - if (optind >= argc) { - fprintf(stderr, "%s: option '%s' requires an argument\n", - argv[0], r); - exit(1); - } - optarg = argv[optind++]; - } else { - optarg = NULL; - } - - switch(popt->index) { - case QEMU_OPTION_M: - machine = find_machine(optarg); - if (!machine) { - QEMUMachine *m; - printf("Supported machines are:\n"); - for(m = first_machine; m != NULL; m = m->next) { - printf("%-10s %s%s\n", - m->name, m->desc, - m == first_machine ? " (default)" : ""); - } - exit(*optarg != '?'); - } - break; - case QEMU_OPTION_cpu: - /* hw initialization will check this */ - if (*optarg == '?') { -/* XXX: implement xxx_cpu_list for targets that still miss it */ -#if defined(cpu_list) - cpu_list(stdout, &fprintf); -#endif - exit(0); - } else { - cpu_model = optarg; - } - break; - case QEMU_OPTION_initrd: - initrd_filename = optarg; - break; - case QEMU_OPTION_hda: - if (cyls == 0) - hda_index = drive_add(HD_ALIAS, optarg, 0); - else - hda_index = drive_add(HD_ALIAS - ",cyls=%d,heads=%d,secs=%d%s", - optarg, 0, cyls, heads, secs, - translation == BIOS_ATA_TRANSLATION_LBA ? - ",trans=lba" : - translation == BIOS_ATA_TRANSLATION_NONE ? - ",trans=none" : ""); - break; - case QEMU_OPTION_hdb: - case QEMU_OPTION_hdc: - case QEMU_OPTION_hdd: - drive_add(HD_ALIAS, optarg, popt->index - QEMU_OPTION_hda); - break; - case QEMU_OPTION_drive: - drive_add("%s", optarg); - break; - case QEMU_OPTION_mtdblock: - drive_add(MTD_ALIAS, optarg); - break; - case QEMU_OPTION_sd: - drive_add("file=\"%s\"," SD_ALIAS, optarg); - break; - case QEMU_OPTION_pflash: - drive_add(PFLASH_ALIAS, optarg); - break; - case QEMU_OPTION_snapshot: - snapshot = 1; - break; - case QEMU_OPTION_hdachs: - { - const char *p; - p = optarg; - cyls = strtol(p, (char **)&p, 0); - if (cyls < 1 || cyls > 16383) - goto chs_fail; - if (*p != ',') - goto chs_fail; - p++; - heads = strtol(p, (char **)&p, 0); - if (heads < 1 || heads > 16) - goto chs_fail; - if (*p != ',') - goto chs_fail; - p++; - secs = strtol(p, (char **)&p, 0); - if (secs < 1 || secs > 63) - goto chs_fail; - if (*p == ',') { - p++; - if (!strcmp(p, "none")) - translation = BIOS_ATA_TRANSLATION_NONE; - else if (!strcmp(p, "lba")) - translation = BIOS_ATA_TRANSLATION_LBA; - else if (!strcmp(p, "auto")) - translation = BIOS_ATA_TRANSLATION_AUTO; - else - goto chs_fail; - } else if (*p != '\0') { - chs_fail: - fprintf(stderr, "qemu: invalid physical CHS format\n"); - exit(1); - } - if (hda_index != -1) - snprintf(drives_opt[hda_index] + - strlen(drives_opt[hda_index]), - sizeof(drives_opt[0]) - - strlen(drives_opt[hda_index]), - ",cyls=%d,heads=%d,secs=%d%s", - cyls, heads, secs, - translation == BIOS_ATA_TRANSLATION_LBA ? - ",trans=lba" : - translation == BIOS_ATA_TRANSLATION_NONE ? - ",trans=none" : ""); - } - break; - case QEMU_OPTION_nographic: - pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "stdio"); - pstrcpy(parallel_devices[0], sizeof(parallel_devices[0]), "null"); - pstrcpy(monitor_device, sizeof(monitor_device), "stdio"); - nographic = 1; - break; - case QEMU_OPTION_portrait: - graphic_rotate = 1; - break; - case QEMU_OPTION_kernel: - kernel_filename = optarg; - break; - case QEMU_OPTION_append: - kernel_cmdline = optarg; - break; - case QEMU_OPTION_cdrom: - drive_add("file=\"%s\"," CDROM_ALIAS, optarg); - break; - case QEMU_OPTION_boot: - boot_devices = optarg; - /* We just do some generic consistency checks */ - { - /* Could easily be extended to 64 devices if needed */ - const char *p; - - boot_devices_bitmap = 0; - for (p = boot_devices; *p != '\0'; p++) { - /* Allowed boot devices are: - * a b : floppy disk drives - * c ... f : IDE disk drives - * g ... m : machine implementation dependant drives - * n ... p : network devices - * It's up to each machine implementation to check - * if the given boot devices match the actual hardware - * implementation and firmware features. - */ - if (*p < 'a' || *p > 'q') { - fprintf(stderr, "Invalid boot device '%c'\n", *p); - exit(1); - } - if (boot_devices_bitmap & (1 << (*p - 'a'))) { - fprintf(stderr, - "Boot device '%c' was given twice\n",*p); - exit(1); - } - boot_devices_bitmap |= 1 << (*p - 'a'); - } - } - break; - case QEMU_OPTION_fda: - case QEMU_OPTION_fdb: - drive_add("file=\"%s\"," FD_ALIAS, optarg, - popt->index - QEMU_OPTION_fda); - break; -#ifdef TARGET_I386 - case QEMU_OPTION_no_fd_bootchk: - fd_bootchk = 0; - break; -#endif - case QEMU_OPTION_no_code_copy: - code_copy_enabled = 0; - break; - case QEMU_OPTION_net: - if (nb_net_clients >= MAX_NET_CLIENTS) { - fprintf(stderr, "qemu: too many network clients\n"); - exit(1); - } - pstrcpy(net_clients[nb_net_clients], - sizeof(net_clients[0]), - optarg); - nb_net_clients++; - break; -#ifdef CONFIG_SLIRP - case QEMU_OPTION_tftp: - tftp_prefix = optarg; - break; - case QEMU_OPTION_bootp: - bootp_filename = optarg; - break; -#ifndef _WIN32 - case QEMU_OPTION_smb: - net_slirp_smb(optarg); - break; -#endif - case QEMU_OPTION_redir: - net_slirp_redir(optarg); - break; -#endif -#ifdef HAS_AUDIO - case QEMU_OPTION_audio_help: - AUD_help (); - exit (0); - break; - case QEMU_OPTION_soundhw: - select_soundhw (optarg); - break; -#endif - case QEMU_OPTION_h: - help(0); - break; - case QEMU_OPTION_m: - ram_size = atoi(optarg) * 1024 * 1024; - if (ram_size <= 0) - help(1); - if (ram_size > PHYS_RAM_MAX_SIZE) { - fprintf(stderr, "qemu: at most %d MB RAM can be simulated\n", - PHYS_RAM_MAX_SIZE / (1024 * 1024)); - exit(1); - } - break; - case QEMU_OPTION_d: - { - int mask; - CPULogItem *item; - - mask = cpu_str_to_log_mask(optarg); - if (!mask) { - printf("Log items (comma separated):\n"); - for(item = cpu_log_items; item->mask != 0; item++) { - printf("%-10s %s\n", item->name, item->help); - } - exit(1); - } - cpu_set_log(mask); - } - break; -#ifdef CONFIG_GDBSTUB - case QEMU_OPTION_s: - use_gdbstub = 1; - break; - case QEMU_OPTION_p: - gdbstub_port = optarg; - break; -#endif - case QEMU_OPTION_L: - bios_dir = optarg; - break; - case QEMU_OPTION_bios: - bios_name = optarg; - break; - case QEMU_OPTION_S: - autostart = 0; - break; - case QEMU_OPTION_k: - keyboard_layout = optarg; - break; - case QEMU_OPTION_localtime: - rtc_utc = 0; - break; - case QEMU_OPTION_cirrusvga: - cirrus_vga_enabled = 1; - vmsvga_enabled = 0; - break; - case QEMU_OPTION_vmsvga: - cirrus_vga_enabled = 0; - vmsvga_enabled = 1; - break; - case QEMU_OPTION_std_vga: - cirrus_vga_enabled = 0; - vmsvga_enabled = 0; - break; - case QEMU_OPTION_g: - { - const char *p; - int w, h, depth; - p = optarg; - w = strtol(p, (char **)&p, 10); - if (w <= 0) { - graphic_error: - fprintf(stderr, "qemu: invalid resolution or depth\n"); - exit(1); - } - if (*p != 'x') - goto graphic_error; - p++; - h = strtol(p, (char **)&p, 10); - if (h <= 0) - goto graphic_error; - if (*p == 'x') { - p++; - depth = strtol(p, (char **)&p, 10); - if (depth != 8 && depth != 15 && depth != 16 && - depth != 24 && depth != 32) - goto graphic_error; - } else if (*p == '\0') { - depth = graphic_depth; - } else { - goto graphic_error; - } - - graphic_width = w; - graphic_height = h; - graphic_depth = depth; - } - break; - case QEMU_OPTION_echr: - { - char *r; - term_escape_char = strtol(optarg, &r, 0); - if (r == optarg) - printf("Bad argument to echr\n"); - break; - } - case QEMU_OPTION_monitor: - pstrcpy(monitor_device, sizeof(monitor_device), optarg); - break; - case QEMU_OPTION_serial: - if (serial_device_index >= MAX_SERIAL_PORTS) { - fprintf(stderr, "qemu: too many serial ports\n"); - exit(1); - } - pstrcpy(serial_devices[serial_device_index], - sizeof(serial_devices[0]), optarg); - serial_device_index++; - break; - case QEMU_OPTION_parallel: - if (parallel_device_index >= MAX_PARALLEL_PORTS) { - fprintf(stderr, "qemu: too many parallel ports\n"); - exit(1); - } - pstrcpy(parallel_devices[parallel_device_index], - sizeof(parallel_devices[0]), optarg); - parallel_device_index++; - break; - case QEMU_OPTION_loadvm: - loadvm = optarg; - break; - case QEMU_OPTION_full_screen: - full_screen = 1; - break; -#ifdef CONFIG_SDL - case QEMU_OPTION_no_frame: - no_frame = 1; - break; - case QEMU_OPTION_alt_grab: - alt_grab = 1; - break; - case QEMU_OPTION_no_quit: - no_quit = 1; - break; -#endif - case QEMU_OPTION_pidfile: - pid_file = optarg; - break; -#ifdef TARGET_I386 - case QEMU_OPTION_win2k_hack: - win2k_install_hack = 1; - break; -#endif -#ifdef USE_KQEMU - case QEMU_OPTION_no_kqemu: - kqemu_allowed = 0; - break; - case QEMU_OPTION_kernel_kqemu: - kqemu_allowed = 2; - break; -#endif - case QEMU_OPTION_usb: - usb_enabled = 1; - break; - case QEMU_OPTION_usbdevice: - usb_enabled = 1; - if (usb_devices_index >= MAX_USB_CMDLINE) { - fprintf(stderr, "Too many USB devices\n"); - exit(1); - } - pstrcpy(usb_devices[usb_devices_index], - sizeof(usb_devices[usb_devices_index]), - optarg); - usb_devices_index++; - break; - case QEMU_OPTION_smp: - smp_cpus = atoi(optarg); - if (smp_cpus < 1 || smp_cpus > MAX_CPUS) { - fprintf(stderr, "Invalid number of CPUs\n"); - exit(1); - } - break; - case QEMU_OPTION_vnc: - vnc_display = optarg; - break; - case QEMU_OPTION_no_acpi: - acpi_enabled = 0; - break; - case QEMU_OPTION_no_reboot: - no_reboot = 1; - break; - case QEMU_OPTION_show_cursor: - cursor_hide = 0; - break; - case QEMU_OPTION_daemonize: - daemonize = 1; - break; - case QEMU_OPTION_option_rom: - if (nb_option_roms >= MAX_OPTION_ROMS) { - fprintf(stderr, "Too many option ROMs\n"); - exit(1); - } - option_rom[nb_option_roms] = optarg; - nb_option_roms++; - break; - case QEMU_OPTION_semihosting: - semihosting_enabled = 1; - break; - case QEMU_OPTION_name: - qemu_name = optarg; - break; -#ifdef TARGET_SPARC - case QEMU_OPTION_prom_env: - if (nb_prom_envs >= MAX_PROM_ENVS) { - fprintf(stderr, "Too many prom variables\n"); - exit(1); - } - prom_envs[nb_prom_envs] = optarg; - nb_prom_envs++; - break; -#endif -#ifdef TARGET_ARM - case QEMU_OPTION_old_param: - old_param = 1; -#endif - case QEMU_OPTION_clock: - configure_alarms(optarg); - break; - case QEMU_OPTION_startdate: - { - struct tm tm; - if (!strcmp(optarg, "now")) { - rtc_start_date = -1; - } else { - if (sscanf(optarg, "%d-%d-%dT%d:%d:%d", - &tm.tm_year, - &tm.tm_mon, - &tm.tm_mday, - &tm.tm_hour, - &tm.tm_min, - &tm.tm_sec) == 6) { - /* OK */ - } else if (sscanf(optarg, "%d-%d-%d", - &tm.tm_year, - &tm.tm_mon, - &tm.tm_mday) == 3) { - tm.tm_hour = 0; - tm.tm_min = 0; - tm.tm_sec = 0; - } else { - goto date_fail; - } - tm.tm_year -= 1900; - tm.tm_mon--; - rtc_start_date = mktimegm(&tm); - if (rtc_start_date == -1) { - date_fail: - fprintf(stderr, "Invalid date format. Valid format are:\n" - "'now' or '2006-06-17T16:01:21' or '2006-06-17'\n"); - exit(1); - } - } - } - break; - } - } - } - -#ifndef _WIN32 - if (daemonize && !nographic && vnc_display == NULL) { - fprintf(stderr, "Can only daemonize if using -nographic or -vnc\n"); - daemonize = 0; - } - - if (daemonize) { - pid_t pid; - - if (pipe(fds) == -1) - exit(1); - - pid = fork(); - if (pid > 0) { - uint8_t status; - ssize_t len; - - close(fds[1]); - - again: - len = read(fds[0], &status, 1); - if (len == -1 && (errno == EINTR)) - goto again; - - if (len != 1) - exit(1); - else if (status == 1) { - fprintf(stderr, "Could not acquire pidfile\n"); - exit(1); - } else - exit(0); - } else if (pid < 0) - exit(1); - - setsid(); - - pid = fork(); - if (pid > 0) - exit(0); - else if (pid < 0) - exit(1); - - umask(027); - chdir("/"); - - signal(SIGTSTP, SIG_IGN); - signal(SIGTTOU, SIG_IGN); - signal(SIGTTIN, SIG_IGN); - } -#endif - - if (pid_file && qemu_create_pidfile(pid_file) != 0) { - if (daemonize) { - uint8_t status = 1; - write(fds[1], &status, 1); - } else - fprintf(stderr, "Could not acquire pid file\n"); - exit(1); - } - -#ifdef USE_KQEMU - if (smp_cpus > 1) - kqemu_allowed = 0; -#endif - linux_boot = (kernel_filename != NULL); - net_boot = (boot_devices_bitmap >> ('n' - 'a')) & 0xF; - - /* XXX: this should not be: some embedded targets just have flash */ - if (!linux_boot && net_boot == 0 && - nb_drives_opt == 0) - help(1); - - /* boot to floppy or the default cd if no hard disk defined yet */ - if (!boot_devices[0]) { - boot_devices = "cad"; - } - setvbuf(stdout, NULL, _IOLBF, 0); - - init_timers(); - init_timer_alarm(); - qemu_aio_init(); - -#ifdef _WIN32 - socket_init(); -#endif - - /* init network clients */ - if (nb_net_clients == 0) { - /* if no clients, we use a default config */ - pstrcpy(net_clients[0], sizeof(net_clients[0]), - "nic"); - pstrcpy(net_clients[1], sizeof(net_clients[0]), - "user"); - nb_net_clients = 2; - } - - for(i = 0;i < nb_net_clients; i++) { - if (net_client_init(net_clients[i]) < 0) - exit(1); - } - for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { - if (vlan->nb_guest_devs == 0 && vlan->nb_host_devs == 0) - continue; - if (vlan->nb_guest_devs == 0) { - fprintf(stderr, "Invalid vlan (%d) with no nics\n", vlan->id); - exit(1); - } - if (vlan->nb_host_devs == 0) - fprintf(stderr, - "Warning: vlan %d is not connected to host network\n", - vlan->id); - } - -#ifdef TARGET_I386 - /* XXX: this should be moved in the PC machine instantiation code */ - if (net_boot != 0) { - int netroms = 0; - for (i = 0; i < nb_nics && i < 4; i++) { - const char *model = nd_table[i].model; - char buf[1024]; - if (net_boot & (1 << i)) { - if (model == NULL) - model = "ne2k_pci"; - snprintf(buf, sizeof(buf), "%s/pxe-%s.bin", bios_dir, model); - if (get_image_size(buf) > 0) { - if (nb_option_roms >= MAX_OPTION_ROMS) { - fprintf(stderr, "Too many option ROMs\n"); - exit(1); - } - option_rom[nb_option_roms] = strdup(buf); - nb_option_roms++; - netroms++; - } - } - } - if (netroms == 0) { - fprintf(stderr, "No valid PXE rom found for network device\n"); - exit(1); - } - } -#endif - - /* init the memory */ - phys_ram_size = ram_size + vga_ram_size + MAX_BIOS_SIZE; - - phys_ram_base = qemu_vmalloc(phys_ram_size); - if (!phys_ram_base) { - fprintf(stderr, "Could not allocate physical memory\n"); - exit(1); - } - - bdrv_init(); - - /* we always create the cdrom drive, even if no disk is there */ - - if (nb_drives_opt < MAX_DRIVES) - drive_add(CDROM_ALIAS); - - /* we always create at least one floppy */ - - if (nb_drives_opt < MAX_DRIVES) - drive_add(FD_ALIAS, 0); - - /* we always create one sd slot, even if no card is in it */ - - if (nb_drives_opt < MAX_DRIVES) - drive_add(SD_ALIAS); - - /* open the virtual block devices */ - - for(i = 0; i < nb_drives_opt; i++) - if (drive_init(drives_opt[i], snapshot, machine) == -1) - exit(1); - - register_savevm("timer", 0, 2, timer_save, timer_load, NULL); - register_savevm("ram", 0, 2, ram_save, ram_load, NULL); - - init_ioports(); - - /* terminal init */ - memset(&display_state, 0, sizeof(display_state)); - if (nographic) { - /* nearly nothing to do */ - dumb_display_init(ds); - } else if (vnc_display != NULL) { - vnc_display_init(ds); - if (vnc_display_open(ds, vnc_display) < 0) - exit(1); - } else { -#if defined(CONFIG_SDL) - sdl_display_init(ds, full_screen, no_frame); -#elif defined(CONFIG_COCOA) - cocoa_display_init(ds, full_screen); -#else - dumb_display_init(ds); -#endif - } - - /* Maintain compatibility with multiple stdio monitors */ - if (!strcmp(monitor_device,"stdio")) { - for (i = 0; i < MAX_SERIAL_PORTS; i++) { - if (!strcmp(serial_devices[i],"mon:stdio")) { - monitor_device[0] = '\0'; - break; - } else if (!strcmp(serial_devices[i],"stdio")) { - monitor_device[0] = '\0'; - pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "mon:stdio"); - break; - } - } - } - if (monitor_device[0] != '\0') { - monitor_hd = qemu_chr_open(monitor_device); - if (!monitor_hd) { - fprintf(stderr, "qemu: could not open monitor device '%s'\n", monitor_device); - exit(1); - } - monitor_init(monitor_hd, !nographic); - } - - for(i = 0; i < MAX_SERIAL_PORTS; i++) { - const char *devname = serial_devices[i]; - if (devname[0] != '\0' && strcmp(devname, "none")) { - serial_hds[i] = qemu_chr_open(devname); - if (!serial_hds[i]) { - fprintf(stderr, "qemu: could not open serial device '%s'\n", - devname); - exit(1); - } - if (strstart(devname, "vc", 0)) - qemu_chr_printf(serial_hds[i], "serial%d console\r\n", i); - } - } - - for(i = 0; i < MAX_PARALLEL_PORTS; i++) { - const char *devname = parallel_devices[i]; - if (devname[0] != '\0' && strcmp(devname, "none")) { - parallel_hds[i] = qemu_chr_open(devname); - if (!parallel_hds[i]) { - fprintf(stderr, "qemu: could not open parallel device '%s'\n", - devname); - exit(1); - } - if (strstart(devname, "vc", 0)) - qemu_chr_printf(parallel_hds[i], "parallel%d console\r\n", i); - } - } - - machine->init(ram_size, vga_ram_size, boot_devices, ds, - kernel_filename, kernel_cmdline, initrd_filename, cpu_model); - - /* init USB devices */ - if (usb_enabled) { - for(i = 0; i < usb_devices_index; i++) { - if (usb_device_add(usb_devices[i]) < 0) { - fprintf(stderr, "Warning: could not add USB device %s\n", - usb_devices[i]); - } - } - } - - if (display_state.dpy_refresh) { - display_state.gui_timer = qemu_new_timer(rt_clock, gui_update, &display_state); - qemu_mod_timer(display_state.gui_timer, qemu_get_clock(rt_clock)); - } - -#ifdef CONFIG_GDBSTUB - if (use_gdbstub) { - /* XXX: use standard host:port notation and modify options - accordingly. */ - if (gdbserver_start(gdbstub_port) < 0) { - fprintf(stderr, "qemu: could not open gdbstub device on port '%s'\n", - gdbstub_port); - exit(1); - } - } -#endif - - if (loadvm) - do_loadvm(loadvm); - - { - /* XXX: simplify init */ - read_passwords(); - if (autostart) { - vm_start(); - } - } - - if (daemonize) { - uint8_t status = 0; - ssize_t len; - int fd; - - again1: - len = write(fds[1], &status, 1); - if (len == -1 && (errno == EINTR)) - goto again1; - - if (len != 1) - exit(1); - - TFR(fd = open("/dev/null", O_RDWR)); - if (fd == -1) - exit(1); - - dup2(fd, 0); - dup2(fd, 1); - dup2(fd, 2); - - close(fd); - } - - main_loop(); - quit_timers(); - -#if !defined(_WIN32) - /* close network clients */ - for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { - VLANClientState *vc; - - for(vc = vlan->first_client; vc != NULL; vc = vc->next) { - if (vc->fd_read == tap_receive) { - char ifname[64]; - TAPState *s = vc->opaque; - - if (sscanf(vc->info_str, "tap: ifname=%63s ", ifname) == 1 && - s->down_script[0]) - launch_script(s->down_script, ifname, s->fd); - } - } - } -#endif - return 0; -} diff --git a/mc1322x-load.pl b/tools/mc1322x-load.pl similarity index 100% rename from mc1322x-load.pl rename to tools/mc1322x-load.pl diff --git a/rftestrx2pcap.pl b/tools/rftestrx2pcap.pl similarity index 100% rename from rftestrx2pcap.pl rename to tools/rftestrx2pcap.pl diff --git a/rimecollect-rrd/collect2rrd.pl b/tools/rimecollect-rrd/collect2rrd.pl similarity index 100% rename from rimecollect-rrd/collect2rrd.pl rename to tools/rimecollect-rrd/collect2rrd.pl diff --git a/rimecollect-rrd/default.rrdtmpl b/tools/rimecollect-rrd/default.rrdtmpl similarity index 100% rename from rimecollect-rrd/default.rrdtmpl rename to tools/rimecollect-rrd/default.rrdtmpl diff --git a/rimecollect-rrd/meshstat.cgi b/tools/rimecollect-rrd/meshstat.cgi similarity index 100% rename from rimecollect-rrd/meshstat.cgi rename to tools/rimecollect-rrd/meshstat.cgi From ef5a7b57d56abe1eadc81eab23062d62ef7c0f4a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 27 Feb 2010 15:42:28 -0500 Subject: [PATCH 200/471] clean the current directory also (incase mc1322x is a submodule) --- Makefile.include | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile.include b/Makefile.include index 5e931066b..6dae2ebc8 100644 --- a/Makefile.include +++ b/Makefile.include @@ -74,6 +74,12 @@ clean: -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' \) -print \ | xargs rm -rf rm -fr *.*~ + find \ + \( -name 'core' -o -name '*.bak' -o -name '*~' \ + -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \ + -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' \) -print \ + | xargs rm -rf + rm -fr *.*~ clobber \ mrproper \ From 78be082b3cc689c7d7201a2b9f214158c5c28d52 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 27 Feb 2010 18:20:34 -0500 Subject: [PATCH 201/471] Add a readme to explain how to use this new build system and how to incorporate libmc1322x into your projects as a submodule. --- README | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 000000000..5151dc7d0 --- /dev/null +++ b/README @@ -0,0 +1,72 @@ +libmc1322x is a library and build system for using the mc13224v from +Freescale. + +Getting Started +--------------- +$ cd tests +$ make + +this will build all the test files in libmc1322x/tests _for each_ board +defined in libmc1322x/board. You will have programs like: + + rftest-tx_redbee-dev.bin + rftest-tx_redbee-r1.bin + + rftest-rx_redbee-dev.bin + rftest-rx_redbee-r1.bin + +if you only wanted to build binaries for one board you can do: + +$ make BOARD=redbee-dev + +You can use mc1322x-load.pl in tools to run your code: + +$ ../tools/mc1322x-load.pl -f rftest-tx_redbee-dev.bin + + +Incorporating libmc1322x into your own code +------------------------------------------- + +The best way is to incorporate libmc1322x as a git submodule in your +own code. + +$ mkdir newproject +$ cd newproject +$ git init + +Initialized empty Git repository in /home/malvira/newproject/.git/ + +$ git submodule add git://git.devl.org/git/malvira/libmc1322x.git + +This will add libmc1322x to your repository. Now to setup the +Makefile: + +$ cp libmc1322x/tests/Makefile . + +You need to edit the Makefile to point MC1322X to libmc1322x: + +Change line 1 + +MC1322X := .. + +to + +MC1322X := libmc1322x + +and edit COBJS and TARGETS accordings. COBJS are all of your common +code for any of your programs. TARGETS are the names of you programs. + +For instance, you can have a common routine that prints a welcome +message that is used by two programs a and b. You would add common.o +to COBJS and your target line would read: + +TARGETS := a b + +COBJS are made for each board --- so it is ok to have board specific +code in there. As an example, tests uses this to print which board you +are running. + + + + + From f113136745394486666091937fc8f64e2b38730e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 28 Feb 2010 09:17:58 -0500 Subject: [PATCH 202/471] small clarifications to the README. --- README | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/README b/README index 5151dc7d0..7662c1b2d 100644 --- a/README +++ b/README @@ -1,12 +1,12 @@ -libmc1322x is a library and build system for using the mc13224v from -Freescale. +libmc1322x is a library, build system, test code, and utilities for +using the mc13224v from Freescale. Getting Started --------------- $ cd tests $ make -this will build all the test files in libmc1322x/tests _for each_ board +this will build all the test files in libmc1322x/tests for each board defined in libmc1322x/board. You will have programs like: rftest-tx_redbee-dev.bin @@ -19,7 +19,7 @@ if you only wanted to build binaries for one board you can do: $ make BOARD=redbee-dev -You can use mc1322x-load.pl in tools to run your code: +You can use mc1322x-load.pl in libmc1322x/tools to run your code: $ ../tools/mc1322x-load.pl -f rftest-tx_redbee-dev.bin @@ -27,14 +27,14 @@ $ ../tools/mc1322x-load.pl -f rftest-tx_redbee-dev.bin Incorporating libmc1322x into your own code ------------------------------------------- -The best way is to incorporate libmc1322x as a git submodule in your -own code. +The best way to incorporate libmc1322x into your code is as a git +submodule: $ mkdir newproject $ cd newproject $ git init -Initialized empty Git repository in /home/malvira/newproject/.git/ + Initialized empty Git repository in /home/malvira/newproject/.git/ $ git submodule add git://git.devl.org/git/malvira/libmc1322x.git @@ -43,30 +43,32 @@ Makefile: $ cp libmc1322x/tests/Makefile . -You need to edit the Makefile to point MC1322X to libmc1322x: +You need to edit the Makefile to point MC1322X to your libmc1322x +submodule: Change line 1 -MC1322X := .. + MC1322X := .. to -MC1322X := libmc1322x + MC1322X := libmc1322x and edit COBJS and TARGETS accordings. COBJS are all of your common -code for any of your programs. TARGETS are the names of you programs. +code for any of your programs. TARGETS are the names of your programs. For instance, you can have a common routine that prints a welcome message that is used by two programs a and b. You would add common.o -to COBJS and your target line would read: +to COBJS: -TARGETS := a b + COBJS:= common.o + +and your target line would read: + + TARGETS := a b COBJS are made for each board --- so it is ok to have board specific -code in there. As an example, tests uses this to print which board you -are running. - - - - +code in there. As an example, tests uses this in tests.c to print the +name of the board in the welcome message. You could also use this to +change your GPIO mappings between boards. From eb94e7daaf6a0ac1f9ed792d7761786fb4872daa Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 13:01:51 -0500 Subject: [PATCH 203/471] add ref. crystal trimming. --- board/redbee-dev.h | 15 +++++++++++++-- board/redbee-r1.h | 15 +++++++++++++-- board/std_conf.h | 20 ++++++++++++++++++++ libmc1322x/include/crm.h | 3 +++ tests/rftest-rx.c | 3 +++ tests/rftest-tx.c | 3 +++ 6 files changed, 55 insertions(+), 4 deletions(-) diff --git a/board/redbee-dev.h b/board/redbee-dev.h index afcdc710f..d7401a60d 100644 --- a/board/redbee-dev.h +++ b/board/redbee-dev.h @@ -1,10 +1,21 @@ #ifndef BOARD_REDBEE_DEV_H #define BOARD_REDBEE_DEV_H -#include - #define LED_RED (1 << 23) #define LED_GREEN (1 << 24) #define LED_BLUE (1 << 25) +/* XTAL TUNE parameters */ +/* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ +/* for details about how to make this measurment */ + +/* Coarse tune: add 4pf */ +#define CTUNE_4PF 1 +/* Coarse tune: add 0-15 pf */ +#define CTUNE 3 +/* Fine tune: add FTUNE * 156fF (FTUNE is 4bits) */ +#define FTUNE 6 + +#include + #endif diff --git a/board/redbee-r1.h b/board/redbee-r1.h index 79bde2d4e..7737dc33b 100644 --- a/board/redbee-r1.h +++ b/board/redbee-r1.h @@ -1,10 +1,21 @@ #ifndef BOARD_REDBEE_R1_H #define BOARD_REDBEE_R1_H -#include - #define LED_RED (1 << 8) #define LED_GREEN (1 << 9) #define LED_BLUE (1 << 10) +/* XTAL TUNE parameters */ +/* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ +/* for details about how to make this measurment */ + +/* Coarse tune: add 4pf */ +#define CTUNE_4PF 1 +/* Coarse tune: add 0-15 pf */ +#define CTUNE 3 +/* Fine tune: add FTUNE * 156fF (FTUNE is 4bits) */ +#define FTUNE 2 + +#include + #endif diff --git a/board/std_conf.h b/board/std_conf.h index e6376a7f9..2559a6063 100644 --- a/board/std_conf.h +++ b/board/std_conf.h @@ -7,4 +7,24 @@ #define vreg_init() default_vreg_init() #endif +/* XTAL TUNE parameters */ +/* recommended defaults from the datasheet */ + +/* Coarse tune: add 4pf */ +#ifndef CTUNE_4PF +#define CTUNE_4PF 1 +#endif +/* Coarse tune: add 0-7 pf */ +#ifndef CTUNE +#define CTUNE 5 +#endif +/* Fine tune: add FTUNE * 156fF (FTUNE is 4bits) */ +#ifndef FTUNE +#define FTUNE 16 +#endif +/* datasheet recommends taht you don't change this */ +#ifndef IBIAS +#define IBIAS 0x1F +#endif + #endif diff --git a/libmc1322x/include/crm.h b/libmc1322x/include/crm.h index 068b335d2..274ae0021 100644 --- a/libmc1322x/include/crm.h +++ b/libmc1322x/include/crm.h @@ -97,4 +97,7 @@ #define SLEEP_RAM_64K sleep_ram_retain(2) #define SLEEP_RAM_96K sleep_ram_retain(3) +#define pack_XTAL_CNTL(ctune4pf, ctune, ftune, ibias) \ + (*CRM_XTAL_CNTL = ((ctune4pf << 25) | (ctune << 21) | ( ftune << 16) | (ibias << 8) | 0x52)) + #endif diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index bb4c53df7..b0af7a7bc 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -52,6 +52,9 @@ void main(void) { vreg_init(); init_phy(); + /* trim the reference osc. to 24MHz */ + pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); + set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 117c6ff5e..dad7c3c09 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -70,6 +70,9 @@ void main(void) { flyback_init(); init_phy(); + /* trim the reference osc. to 24MHz */ + pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); + set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ From 5f754e185ba734569102b489b9d49075e4457388 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 13:03:05 -0500 Subject: [PATCH 204/471] add econotag and usb boards --- board/Makefile.board | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/board/Makefile.board b/board/Makefile.board index 949231d05..ab21e2a8a 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -1,7 +1,6 @@ # -*- makefile -*- -#BOARDS := redbee-dev redbee-module redbee-r1 redbee-usb redbee-econotag -BOARDS := redbee-dev redbee-r1 +BOARDS := redbee-dev redbee-r1 redbee-usb redbee-econotag OBJDIR := obj_$(BOARD)_board CFLAGS += -I$(OBJDIR) -I$(MC1322X)/board -DBOARD=$(BOARD) From 0a51c610d44a77c14ddfb11757ffbd81ab03c117 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 13:04:53 -0500 Subject: [PATCH 205/471] econotag and usb boards --- board/redbee-econotag.h | 22 ++++++++++++++++++++++ board/redbee-usb.h | 21 +++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 board/redbee-econotag.h create mode 100644 board/redbee-usb.h diff --git a/board/redbee-econotag.h b/board/redbee-econotag.h new file mode 100644 index 000000000..75ac46855 --- /dev/null +++ b/board/redbee-econotag.h @@ -0,0 +1,22 @@ +#ifndef BOARD_REDBEE_DEV_H +#define BOARD_REDBEE_DEV_H + +#define LED_RED (1 << 23) +#define LED_GREEN (1 << 24) +#define LED_BLUE (1 << 25) + +/* XTAL TUNE parameters */ +/* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ +/* for details about how to make this measurment */ + +/* Econotag also needs an addtional 12pf on board */ +/* Coarse tune: add 4pf */ +#define CTUNE_4PF 1 +/* Coarse tune: add 0-15 pf (CTUNE is 4 bits) */ +#define CTUNE 11 +/* Fine tune: add FTUNE * 156fF (FTUNE is 5bits) */ +#define FTUNE 3 + +#include + +#endif diff --git a/board/redbee-usb.h b/board/redbee-usb.h new file mode 100644 index 000000000..c9d786a8b --- /dev/null +++ b/board/redbee-usb.h @@ -0,0 +1,21 @@ +#ifndef BOARD_REDBEE_DEV_H +#define BOARD_REDBEE_DEV_H + +#define LED_RED (1 << 23) +#define LED_GREEN (1 << 24) +#define LED_BLUE (1 << 25) + +/* XTAL TUNE parameters */ +/* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ +/* for details about how to make this measurment */ + +/* Coarse tune: add 4pf */ +#define CTUNE_4PF 1 +/* Coarse tune: add 0-15 pf */ +#define CTUNE 3 +/* Fine tune: add FTUNE * 156fF (FTUNE is 4bits) */ +#define FTUNE 15 + +#include + +#endif From 1cc1ec5d60ba906c50cb9974115f20885696c120 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 13:05:10 -0500 Subject: [PATCH 206/471] need to fix deps and board.h link generation --- board/Makefile.board | 1 + 1 file changed, 1 insertion(+) diff --git a/board/Makefile.board b/board/Makefile.board index ab21e2a8a..0d535bbc5 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -17,4 +17,5 @@ endif $(OBJDIR)/board.h: $(OBJDIR) ln -sf ../$(MC1322X)/board/$(BOARD).h $(OBJDIR)/board.h +# this touch is a hack --- need to sort out deps and a way to make sure the board links get made. touch $(OBJDIR)/board.h From de4080c359d039f4d3571cff1cf448628a8776e8 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 14:30:19 -0500 Subject: [PATCH 207/471] removed bad touch --- board/Makefile.board | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/board/Makefile.board b/board/Makefile.board index 0d535bbc5..bd7b93393 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -17,5 +17,4 @@ endif $(OBJDIR)/board.h: $(OBJDIR) ln -sf ../$(MC1322X)/board/$(BOARD).h $(OBJDIR)/board.h -# this touch is a hack --- need to sort out deps and a way to make sure the board links get made. - touch $(OBJDIR)/board.h + From 191e408bb718639ea60d8ad48dce017fafaf729d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 16:27:58 -0500 Subject: [PATCH 208/471] auto-gen dependencies --- Makefile.include | 35 ++++++++++++++++++++++------------- config.mk | 2 +- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/Makefile.include b/Makefile.include index 6dae2ebc8..e23947a37 100644 --- a/Makefile.include +++ b/Makefile.include @@ -30,20 +30,28 @@ export ARCH CPU VENDOR .SECONDARY: -#.depend: Makefile $(AOBJS:.o=.S) $(COBJS:.o=.c) -# $(CC) -M $(CFLAGS) $(AOBJS:.o=.S) $(COBJS:.o=.c) > $@ -#sinclude .depend + +### See http://make.paulandlesley.org/autodep.html#advanced +ifdef BOARD +-include ${addprefix $(OBJDIR)/,$(addsuffix .d,$(TARGETS))} +endif + +define FINALIZE_DEPENDENCY +cp $(@:.o=.d) $(@:.o=.$$$$); \ +sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(@:.o=.$$$$) >> $(@:.o=.d); \ +rm -f $(@:.o=.$$$$) +endef + $(START): $(START:.o=.s) $(CC) $(AFLAGS) -c -o $@ $< $(ISR): $(ISR:.o=.c) - $(CC) $(CFLAGS) $(ARM_FLAGS) $< -c -o $@ + $(CC) $(CFLAGS) $(ARM_FLAGS) -MMD $< -c -o $@ + @$(FINALIZE_DEPENDENCY) -%_$(BOARD).elf: %.elf $(BOARDOBJS) - mv $< $@ - -%.elf: $(START) $(ISR) $(SRCOBJS) $(OBJDIR)/%.o $(BOARDOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a +%_$(BOARD).elf: $(START) $(ISR) $(SRCOBJS) $(OBJDIR)/%.o $(BOARDOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a $(CC) $(LDFLAGS) $(AOBJS) \ $(filter %.o %.a,$+) -o $@ @@ -62,22 +70,23 @@ $(ISR): $(ISR:.o=.c) $(OBJDIR)/%.s: %.S $(CPP) $(AFLAGS) -o $@ $< $(OBJDIR)/%.o: %.S - $(CC) $(AFLAGS) -c -o $@ $< + $(CC) $(AFLAGS) -MMD -c -o $@ $< + @$(FINALIZE_DEPENDENCY) $(OBJDIR)/%.o: %.c - $(CC) $(CFLAGS) $(THUMB_FLAGS) -c -o $@ $< - + $(CC) $(CFLAGS) $(THUMB_FLAGS) -MMD -c -o $@ $< + @$(FINALIZE_DEPENDENCY) clean: find $(MC1322X) \ \( -name 'core' -o -name '*.bak' -o -name '*~' \ -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \ - -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' \) -print \ + -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' -o -name '*.d' \) -print \ | xargs rm -rf rm -fr *.*~ find \ \( -name 'core' -o -name '*.bak' -o -name '*~' \ -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \ - -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' \) -print \ + -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' -o -name '*.d' \) -print \ | xargs rm -rf rm -fr *.*~ diff --git a/config.mk b/config.mk index b0f8aa261..c0e31618e 100644 --- a/config.mk +++ b/config.mk @@ -37,7 +37,7 @@ CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wcast-align -Wextr AFLAGS_DEBUG := -Wa,-gstabs AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) -LDFLAGS += -T $(LINKERSCRIPT) -nostartfiles -static -Wl,-Map=$*.map -export-dynamic +LDFLAGS += -T $(LINKERSCRIPT) -nostartfiles -static -Wl,-Map=$*_$(BOARD).map -export-dynamic ######################################################################### From ac0691ea9c477cfef3532f54cf9c8b6a64946027 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 17:11:56 -0500 Subject: [PATCH 209/471] initial printf snprintf blows up the size printf isn't too small either (about 10KB now) --- config.mk | 4 +- libmc1322x/printf.c | 398 ++++++++++++++++++++++++++++++++++++++++++++ tests/Makefile | 1 + tests/printf.c | 65 ++++++++ 4 files changed, 466 insertions(+), 2 deletions(-) create mode 100644 libmc1322x/printf.c create mode 100644 tests/printf.c diff --git a/config.mk b/config.mk index c0e31618e..e44d35fcf 100644 --- a/config.mk +++ b/config.mk @@ -29,10 +29,10 @@ gccincdir := $(shell $(CC) -print-file-name=include) CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ - -fno-builtin -ffreestanding -nostdinc -isystem \ + -fno-builtin -ffreestanding -isystem \ $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wcast-align -Wextra -Werror +CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wextra #-Werror AFLAGS_DEBUG := -Wa,-gstabs AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) diff --git a/libmc1322x/printf.c b/libmc1322x/printf.c new file mode 100644 index 000000000..d2c5f727c --- /dev/null +++ b/libmc1322x/printf.c @@ -0,0 +1,398 @@ +/** + * \file printf-stdarg.c + * + * \brief sprintf functions to replace newlib for AVR32 UC3. + * + * \author $Author: umanzoli $ + * + * Created on : 17-mar-2009 + * + * $Id$ + */ + +/* + * Copyright 2001, 2002 Georges Menie (www.menie.org) + * stdarg version contributed by Christian Ettinger + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#include +#include +#include + +#include +#include + +#define __putc(x) putc(x) + +/** + * Structure to hold data to be passed to print function with format. + * Aka print context. + */ +struct __print_ctx_t +{ + //! pointer to next char to be filled. + char* _ptr; + //! maximum length of the buffer. + size_t _max_len; +}; +typedef struct __print_ctx_t _print_ctx_t; + +/** + * Pad string to right + */ +#define _PRINTFMT_PAD_RIGHT 1 + +/** + * Pad the number with zeroes + */ +#define _PRINTFMT_PAD_ZERO 2 + +/** + * The following should be enough for 32 bit int + */ +#define _PRINTFMT_INT_BUF_LEN 12 + +/** + * Print a character to stdout (if string is null) + * otherwise, put the character at the end of the provided string. + */ +static void __print_char( _print_ctx_t* ctx, char c ) +{ + if( ctx ) { + if( c == '\r' || c == '\n' ) { + if( ctx->_max_len > 1 ) { + *(ctx->_ptr)='\r'; + ctx->_max_len--; + ctx->_ptr++; + *(ctx->_ptr)='\n'; + ctx->_max_len--; + ctx->_ptr++; + } else { + *(ctx->_ptr)='\n'; + ctx->_max_len--; + ctx->_ptr++; + } + } else { + if( ctx->_max_len ) { + *(ctx->_ptr)=c; + ctx->_max_len--; + ctx->_ptr++; + } + } + } else { + __putc( (uint8_t)c ); + } +} + +/** + * Print a string to a given string. + */ +static int __print_str( _print_ctx_t* ctx, + const char *string, + int width, + int pad, + int print_limit, + bool is_number ) +{ + int pc = 0; + int padchar = ' '; + int i, len; + + if( width > 0 ) { + register int len = 0; + register const char *ptr; + for( ptr = string; *ptr; ++ptr ) + ++len; + if( len >= width ) + width = 0; + else + width -= len; + if( pad & _PRINTFMT_PAD_ZERO ) + padchar = '0'; + } + if( !( pad & _PRINTFMT_PAD_RIGHT ) ) { + for( ; width > 0; --width ) { + __print_char( ctx, padchar ); + ++pc; + } + } + + // The string to print is not the result of a number conversion to ascii. + if( false == is_number ) { + // For a string, printlimit is the max number of characters to display. + for( ; print_limit && *string; ++string, --print_limit ) { + __print_char( ctx, *string ); + ++pc; + } + } + + // The string to print represents an integer number. + if( true == is_number ) { + // In this case, printlimit is the min number of digits to print. + + // If the length of the number to print is less than the min nb of i + // digits to display, we add 0 before printing the number. + len = strlen( string ); + if( len < print_limit ) { + i = print_limit - len; + for( ; i; i-- ) { + __print_char( ctx, '0' ); + ++pc; + } + } + } + + /* + * Else: The string to print is not the result of a number conversion to ascii. + * For a string, printlimit is the max number of characters to display. + */ + for( ; print_limit && *string; ++string, --print_limit ) { + __print_char( ctx, *string ); + ++pc; + } + + for( ; width > 0; --width ) { + __print_char( ctx, padchar ); + ++pc; + } + + return pc; +} + +/** + * Print a number to the given string, with the given base. + */ +static int __print_int( _print_ctx_t* ctx, + int i, + int b, + int sg, + int width, + int pad, + int letbase, + int print_limit ) +{ + char print_buf[_PRINTFMT_INT_BUF_LEN]; + register char *s; + register int t, neg = 0, pc = 0; + register unsigned int u = i; + + if( i == 0 ) { + print_buf[0] = '0'; + print_buf[1] = '\0'; + return __print_str( ctx, print_buf, width, pad, print_limit, true ); + } + + if( sg && b == 10 && i < 0 ) { + neg = 1; + u = -i; + } + + s = print_buf + _PRINTFMT_INT_BUF_LEN - 1; + *s = '\0'; + + while( u ) { + t = u % b; + if( t >= 10 ) + t += letbase - '0' - 10; + *--s = t + '0'; + u /= b; + } + + if( neg ) { + if( width && ( pad & _PRINTFMT_PAD_ZERO ) ) { + __print_char( ctx, '-' ); + ++pc; + --width; + } else { + *--s = '-'; + } + } + + return pc + __print_str( ctx, s, width, pad, print_limit, true ); +} +/* +#if __GNUC__ +int fprintf( __FILE *stream, const char *format, ... ) +{ + return 0; +} +#endif +*/ + +/** + * Print the given arguments, with given format onto string out. + */ +static int __print_fmt( _print_ctx_t* ctx, const char *format, va_list args ) +{ + int width; + int pad; + int print_limit; + int pc = 0; + char scr[2]; + + for( ; *format != 0; ++format ) { + if( *format == '%' ) { + ++format; + width = pad = print_limit = 0; + + if( *format == '\0' ) { + break; + } + + if( *format == '%' ) { + goto out; + } + + if( *format == '-' ) { + ++format; + pad = _PRINTFMT_PAD_RIGHT; + } + + while( *format == '0' ) { + ++format; + pad |= _PRINTFMT_PAD_ZERO; + } + + for( ; *format >= '0' && *format <= '9'; ++format ) { + width *= 10; + width += *format - '0'; + } + + if( *format == '.' ) { + ++format; + for( ; *format >= '0' && *format <= '9'; ++format ) { + print_limit *= 10; + print_limit += *format - '0'; + } + } + + if( 0 == print_limit ) { + print_limit--; + } + + if( *format == 'l' ) { + ++format; + } + + if( *format == 's' ) { + register char *s = (char *) va_arg( args, int ); + pc += __print_str( ctx, + s ? s : "(null)", + width, + pad, + print_limit, + false ); + continue; + } + + if( *format == 'd' ) { + pc += __print_int( ctx, va_arg( args, int ), 10, 1, width, pad, 'a', print_limit ); + continue; + } + + if( ( *format == 'x' ) || ( *format == 'p' ) ) { + pc += __print_int( ctx, va_arg( args, int ), 16, 0, width, pad, 'a', print_limit ); + continue; + } + + if( *format == 'X' ) { + pc += __print_int( ctx, va_arg( args, int ), 16, 0, width, pad, 'A', print_limit ); + continue; + } + + if( *format == 'u' ) { + pc += __print_int( ctx, va_arg( args, int ), 10, 0, width, pad, 'a', print_limit ); + continue; + } + + if( *format == 'c' ) { + // char are converted to int then pushed on the stack + scr[0] = (char) va_arg( args, int ); + scr[1] = '\0'; + pc += __print_str( ctx, scr, width, pad, print_limit, false ); + continue; + } + } else { +out: + __print_char( ctx, *format ); + ++pc; + } + } + + if( ctx && ctx->_max_len ) { + *(ctx->_ptr) = '\0'; + } + + return pc; +} + +/* +int sprintf( char *out, const char *format, ... ) +{ + int retval = 0; + _print_ctx_t ctx; + va_list args; + + ctx._ptr = out; + ctx._max_len = BLOCK_MEM_SIZE; + + va_start( args, format ); + retval = __print_fmt( &ctx, format, args ); + va_end( args ); + + return retval; +} +*/ + +static uint8_t ll; + +int printf( const char *format, ... ) +{ + int retval = 0; +// memory_t* buf; + va_list args; + + /* + buf = memory_alloc( 10 ); + + if( buf ) { + _print_ctx_t ctx; + ctx._ptr = (char*)buf->_data; + ctx._max_len = BLOCK_MEM_SIZE; + + va_start( args, format ); + retval = __print_fmt( &ctx, format, args ); + va_end( args ); + + buf->_len = strlen( (const char*)buf->_data ); + +// LCD_WriteString( ll, buf ); + ll++; + ll &= 0x03; + if( uart_task_send( buf ) == false ) { + memory_free( buf ); + } + } + */ + + va_start( args, format ); + retval = __print_fmt( NULL, format, args ); + va_end( args ); + + return retval; +} diff --git a/tests/Makefile b/tests/Makefile index b5a2c2ea7..b1b9fc3a5 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -12,6 +12,7 @@ TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ tmr tmr-ints \ sleep \ rftest-rx rftest-tx \ + printf include $(MC1322X)/Makefile.include diff --git a/tests/printf.c b/tests/printf.c new file mode 100644 index 000000000..66630f5cb --- /dev/null +++ b/tests/printf.c @@ -0,0 +1,65 @@ +#include +#include + +#include "tests.h" +#include "config.h" + +int main(void) +{ + char *ptr = "Hello world!"; + char *np = 0; + int i = 5; + unsigned int bs = sizeof(int)*8; + int mi; + char buf[80]; + + uart_init(INC, MOD); + + mi = (1 << (bs-1)) + 1; + printf("%s\n", ptr); + printf("printf test\n"); + printf("%s is null pointer\n", np); + printf("%d = 5\n", i); + printf("%d = - max int\n", mi); + printf("char %c = 'a'\n", 'a'); + printf("hex %x = ff\n", 0xff); + printf("hex %02x = 00\n", 0); + printf("signed %d = unsigned %u = hex %x\n", -3, -3, -3); + printf("%d %s(s)%", 0, "message"); + printf("\n"); + printf("%d %s(s) with %%\n", 0, "message"); +// sprintf(buf, "justif: \"%-10s\"\n", "left"); printf("%s", buf); +// sprintf(buf, "justif: \"%10s\"\n", "right"); printf("%s", buf); +// sprintf(buf, " 3: %04d zero padded\n", 3); printf("%s", buf); +// sprintf(buf, " 3: %-4d left justif.\n", 3); printf("%s", buf); +// sprintf(buf, " 3: %4d right justif.\n", 3); printf("%s", buf); +// sprintf(buf, "-3: %04d zero padded\n", -3); printf("%s", buf); +// sprintf(buf, "-3: %-4d left justif.\n", -3); printf("%s", buf); +// sprintf(buf, "-3: %4d right justif.\n", -3); printf("%s", buf); + + return 0; +} + +/* + * this should display (on 32bit int machine) : + * + * Hello world! + * printf test + * (null) is null pointer + * 5 = 5 + * -2147483647 = - max int + * char a = 'a' + * hex ff = ff + * hex 00 = 00 + * signed -3 = unsigned 4294967293 = hex fffffffd + * 0 message(s) + * 0 message(s) with % + * justif: "left " + * justif: " right" + * 3: 0003 zero padded + * 3: 3 left justif. + * 3: 3 right justif. + * -3: -003 zero padded + * -3: -3 left justif. + * -3: -3 right justif. + */ From 58561f5b718a8407e3e353cf461c19bbf91d7f95 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 18:02:29 -0500 Subject: [PATCH 210/471] build lib with thumb --- Makefile.include | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile.include b/Makefile.include index e23947a37..1cf2476c7 100644 --- a/Makefile.include +++ b/Makefile.include @@ -67,6 +67,10 @@ $(ISR): $(ISR:.o=.c) %.dis: %.elf $(OBJDUMP) -SD $< > $@ +%.o: %.c + $(CC) $(CFLAGS) $(THUMB_FLAGS) -MMD -c -o $@ $< + @$(FINALIZE_DEPENDENCY) + $(OBJDIR)/%.s: %.S $(CPP) $(AFLAGS) -o $@ $< $(OBJDIR)/%.o: %.S From ff146c7e9ff8df6cf0187df61f25775700e15755 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 18:02:46 -0500 Subject: [PATCH 211/471] add jim's map2dot tool --- tools/map2dot.pl | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 tools/map2dot.pl diff --git a/tools/map2dot.pl b/tools/map2dot.pl new file mode 100755 index 000000000..1e834c68f --- /dev/null +++ b/tools/map2dot.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +# Try: +# gcc -static -o test test.c -Wl,--print-map | perl parse-map.pl | unflatten -l 3 | dot -Tpng > map.png +# +# This won't show all edges! An archive member is only listed the first +# time it needs to get included. But this shows at least one reason why each +# archive member appears in the final object. + +my $flag = 0; +my $line = ""; +print "digraph map {\n"; +print "rankdir = LR;"; +while(<>) +{ + $flag++ if /^Archive member included because of file \(symbol\)$/; + $flag++ if /^$/; + next unless $flag == 2; + + chomp ($line .= $_); + if ($line =~ /^(\S+)\s+(\S+)\s+\(([^)]+)\)$/s) { + $line = ""; + my $archive_member = $1; + my $because_file = $2; + my $because_symbol = $3; + $archive_member =~ s|.*/([^/]+)|$1|; + $because_file =~ s|.*/([^/]+)|$1|; + print "\"$because_file\" -> \"$archive_member\";\n"; + } +} +print "}\n"; From 8c742bc9c815f873097a8468ed3b591730681dc8 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 22:07:43 -0500 Subject: [PATCH 212/471] add -Werror back it and fix all the errors. --- config.mk | 2 +- libmc1322x/include/put.h | 4 +-- libmc1322x/maca.c | 60 ++++++++++++++++++++-------------------- libmc1322x/printf.c | 4 +-- libmc1322x/put.c | 10 +++---- tests/printf.c | 4 ++- tests/rftest-rx.c | 36 ++++++++++++------------ tests/rftest-tx.c | 32 ++++++++++----------- tests/tests.c | 38 ++++++++++++------------- 9 files changed, 95 insertions(+), 95 deletions(-) diff --git a/config.mk b/config.mk index e44d35fcf..43e232af1 100644 --- a/config.mk +++ b/config.mk @@ -32,7 +32,7 @@ CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -fno-builtin -ffreestanding -isystem \ $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wextra #-Werror +CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wextra -Werror AFLAGS_DEBUG := -Wa,-gstabs AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) diff --git a/libmc1322x/include/put.h b/libmc1322x/include/put.h index 034b636ca..f8826f622 100644 --- a/libmc1322x/include/put.h +++ b/libmc1322x/include/put.h @@ -1,8 +1,8 @@ #ifndef PUT_H #define PUT_H -void putc(char c); -void puts(char *s); +void putchr(char c); +void putstr(char *s); void put_hex(uint8_t x); void put_hex16(uint16_t x); void put_hex32(uint32_t x); diff --git a/libmc1322x/maca.c b/libmc1322x/maca.c index 1d9e0645a..4c151eaa6 100644 --- a/libmc1322x/maca.c +++ b/libmc1322x/maca.c @@ -235,7 +235,7 @@ void radio_init(void) { *(volatile uint32_t *)(addr_reg_rep[i]) = data_reg_rep[i]; } - puts("initfromflash\n\r"); + putstr("initfromflash\n\r"); *(volatile uint32_t *)(0x80003048) = 0x00000f04; /* bypass the buck */ for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ @@ -245,23 +245,23 @@ void radio_init(void) { init_from_flash(0x1F000); - puts("ram_values:\n\r"); + putstr("ram_values:\n\r"); for(i=0; i<4; i++) { - puts(" 0x"); + putstr(" 0x"); put_hex(ram_values[i]); - puts("\n\r"); + putstr("\n\r"); } - puts("radio_init: ctov parameter 0x"); + putstr("radio_init: ctov parameter 0x"); put_hex(ram_values[3]); - puts("\n\r"); + putstr("\n\r"); for(i=0; i<16; i++) { ctov[i] = get_ctov(i,ram_values[3]); - puts("radio_init: ctov["); + putstr("radio_init: ctov["); put_hex(i); - puts("] = 0x"); + putstr("] = 0x"); put_hex(ctov[i]); - puts("\n\r"); + putstr("\n\r"); } @@ -420,49 +420,49 @@ uint32_t exec_init_entry(volatile uint32_t *entries, uint8_t *valbuf) if(entries[0] <= ROM_END) { if (entries[0] == 0) { /* do delay command*/ - puts("init_entry: delay "); + putstr("init_entry: delay "); put_hex32(entries[1]); - puts("\n\r"); + putstr("\n\r"); for(i=0; i= 16) && (entries[0] < 0xfff1)) { /* store bytes in valbuf */ - puts("init_entry: store in valbuf "); + putstr("init_entry: store in valbuf "); put_hex(entries[1]); - puts(" position "); + putstr(" position "); put_hex((entries[0]>>4)-1); - puts("\n\r"); + putstr("\n\r"); valbuf[(entries[0]>>4)-1] = entries[1]; return 2; } else if (entries[0] == ENTRY_EOF) { - puts("init_entry: eof "); + putstr("init_entry: eof "); return 0; } else { /* invalid command code */ - puts("init_entry: invaild code "); + putstr("init_entry: invaild code "); put_hex32(entries[0]); - puts("\n\r"); + putstr("\n\r"); return 0; } } else { /* address isn't in ROM space */ /* do store value in address command */ - puts("init_entry: address value pair - *0x"); + putstr("init_entry: address value pair - *0x"); put_hex32(entries[0]); - puts(" = "); + putstr(" = "); put_hex32(entries[1]); - puts("\n\r"); + putstr("\n\r"); reg(entries[0]) = entries[1]; return 2; } @@ -478,22 +478,22 @@ uint32_t init_from_flash(uint32_t addr) { volatile uint32_t i=0,j; err = nvm_detect(gNvmInternalInterface_c, &type); - puts("nvm_detect returned type "); + putstr("nvm_detect returned type "); put_hex32(type); - puts(" err "); + putstr(" err "); put_hex(err); - puts("\n\r"); + putstr("\n\r"); nvm_setsvar(0); err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, addr, 8); i+=8; - puts("nvm_read returned: 0x"); + putstr("nvm_read returned: 0x"); put_hex(err); - puts("\n\r"); + putstr("\n\r"); for(j=0; j<4; j++) { put_hex32(buf[j]); - puts("\n\r"); + putstr("\n\r"); } if(buf[0] == FLASH_INIT_MAGIC) { diff --git a/libmc1322x/printf.c b/libmc1322x/printf.c index d2c5f727c..74b388fb2 100644 --- a/libmc1322x/printf.c +++ b/libmc1322x/printf.c @@ -37,7 +37,7 @@ #include #include -#define __putc(x) putc(x) +#define __putc(x) putchr(x) /** * Structure to hold data to be passed to print function with format. @@ -359,8 +359,6 @@ int sprintf( char *out, const char *format, ... ) } */ -static uint8_t ll; - int printf( const char *format, ... ) { int retval = 0; diff --git a/libmc1322x/put.c b/libmc1322x/put.c index 34e336586..348da13f0 100644 --- a/libmc1322x/put.c +++ b/libmc1322x/put.c @@ -4,21 +4,21 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; -void putc(char c) { +void putchr(char c) { while(*UT1CON == 31); /* wait for there to be room in the buffer */ *UART1_DATA = c; } -void puts(char *s) { +void putstr(char *s) { while(s && *s!=0) { - putc(*s++); + putchr(*s++); } } void put_hex(uint8_t x) { - putc(hex[x >> 4]); - putc(hex[x & 15]); + putchr(hex[x >> 4]); + putchr(hex[x & 15]); } void put_hex16(uint16_t x) diff --git a/tests/printf.c b/tests/printf.c index 66630f5cb..937e6f72e 100644 --- a/tests/printf.c +++ b/tests/printf.c @@ -1,6 +1,8 @@ #include #include +#include + #include "tests.h" #include "config.h" @@ -11,7 +13,7 @@ int main(void) int i = 5; unsigned int bs = sizeof(int)*8; int mi; - char buf[80]; +// char buf[80]; uart_init(INC, MOD); diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index b0af7a7bc..d2d0a9a53 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -76,65 +76,65 @@ void main(void) { { case(cc_aborted): { - puts("aborted\n\r"); + putstr("aborted\n\r"); ResumeMACASync(); break; } case(cc_not_completed): { - puts("not completed\n\r"); + putstr("not completed\n\r"); ResumeMACASync(); break; } case(cc_timeout): { - puts("timeout\n\r"); + putstr("timeout\n\r"); ResumeMACASync(); break; } case(cc_no_ack): { - puts("no ack\n\r"); + putstr("no ack\n\r"); ResumeMACASync(); break; } case(cc_ext_timeout): { - puts("ext timeout\n\r"); + putstr("ext timeout\n\r"); ResumeMACASync(); break; } case(cc_ext_pnd_timeout): { - puts("ext pnd timeout\n\r"); + putstr("ext pnd timeout\n\r"); ResumeMACASync(); break; } case(cc_success): { -// puts("success\n\r"); +// putstr("success\n\r"); - puts("rftest-rx --- " ); - puts(" maca_getrxlvl: 0x"); + putstr("rftest-rx --- " ); + putstr(" maca_getrxlvl: 0x"); put_hex(*MACA_GETRXLVL); - puts(" timestamp: 0x"); + putstr(" timestamp: 0x"); put_hex32(maca_timestamp); - puts("\n\r"); - puts(" data: 0x"); + putstr("\n\r"); + putstr(" data: 0x"); put_hex32((uint32_t)data); - putc(' '); + putchr(' '); for(i=0; i<=(*MACA_GETRXLVL-4); i++) { /* fcs+somethingelse is not transferred by DMA */ put_hex(data[i]); - putc(' '); + putchr(' '); } - puts("\n\r"); + putstr("\n\r"); toggle_led(); @@ -147,7 +147,7 @@ void main(void) { } default: { - puts("status: "); + putstr("status: "); put_hex16(status); ResumeMACASync(); command_xcvr_rx(); @@ -155,11 +155,11 @@ void main(void) { } } } else if (_is_filter_failed_interrupt(maca_irq)) { - puts("filter failed\n\r"); + putstr("filter failed\n\r"); ResumeMACASync(); command_xcvr_rx(); } else if (_is_checksum_failed_interrupt(maca_irq)) { - puts("crc failed\n\r"); + putstr("crc failed\n\r"); ResumeMACASync(); command_xcvr_rx(); } diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index dad7c3c09..27a7063a5 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -100,62 +100,62 @@ void main(void) { { case(cc_aborted): { - puts("aborted\n\r"); + putstr("aborted\n\r"); ResumeMACASync(); break; } case(cc_not_completed): { - puts("not completed\n\r"); + putstr("not completed\n\r"); ResumeMACASync(); break; } case(cc_timeout): { - puts("timeout\n\r"); + putstr("timeout\n\r"); ResumeMACASync(); break; } case(cc_no_ack): { - puts("no ack\n\r"); + putstr("no ack\n\r"); ResumeMACASync(); break; } case(cc_ext_timeout): { - puts("ext timeout\n\r"); + putstr("ext timeout\n\r"); ResumeMACASync(); break; } case(cc_ext_pnd_timeout): { - puts("ext pnd timeout\n\r"); + putstr("ext pnd timeout\n\r"); ResumeMACASync(); break; } case(cc_success): { -// puts("success\n\r"); +// putstr("success\n\r"); - puts("rftest-tx --- " ); - puts(" payload len+crc: 0x"); + putstr("rftest-tx --- " ); + putstr(" payload len+crc: 0x"); put_hex(PAYLOAD_LEN+4); - puts(" timestamp: 0x"); + putstr(" timestamp: 0x"); put_hex32(maca_timestamp); - puts("\n\r"); - puts(" data: "); + putstr("\n\r"); + putstr(" data: "); for(i=0; i Date: Mon, 1 Mar 2010 22:09:35 -0500 Subject: [PATCH 213/471] It would be nice to not unecessarily use rom data vars. --- TODO | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index eff094808..9a2c1e31a 100644 --- a/TODO +++ b/TODO @@ -2,6 +2,9 @@ use run_algorithm to hook ROM NVM functions see flash/stm32x.c -- set XTAL_CNTL. See - http://devl.org/pipermail/mc1322x/2009-October/000063.html +- add TARGETS which doesn't set space aside space for rom variable or + call rom_data_init and + TARGETS_WITH_ROMDATA which does what is going on now. + + From 4a42f24be55939f500497ca1302f07ca465542a0 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 1 Mar 2010 23:04:05 -0500 Subject: [PATCH 214/471] better name --- TODO | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TODO b/TODO index 9a2c1e31a..064168fd2 100644 --- a/TODO +++ b/TODO @@ -6,5 +6,7 @@ call rom_data_init and TARGETS_WITH_ROMDATA which does what is going on now. +- mv libmc1322x/libmc1322x libmc1322x/lib + From d5b20ddce54d938245a94490ee64d8d8e643d8e8 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 2 Mar 2010 09:51:58 -0500 Subject: [PATCH 215/471] renamed libmc1322x to lib --- Makefile.include | 4 ++-- {libmc1322x => lib}/Makefile.lib | 0 {libmc1322x => lib}/include/crm.h | 0 {libmc1322x => lib}/include/gpio.h | 0 {libmc1322x => lib}/include/isr.h | 0 {libmc1322x => lib}/include/maca.h | 0 {libmc1322x => lib}/include/mc1322x.h | 0 {libmc1322x => lib}/include/nvm.h | 0 {libmc1322x => lib}/include/put.h | 0 {libmc1322x => lib}/include/tmr.h | 0 {libmc1322x => lib}/include/types.h | 0 {libmc1322x => lib}/include/uart1.h | 0 {libmc1322x => lib}/include/utils.h | 0 {libmc1322x => lib}/maca.c | 0 {libmc1322x => lib}/nvm.c | 0 {libmc1322x => lib}/printf.c | 0 {libmc1322x => lib}/put.c | 0 17 files changed, 2 insertions(+), 2 deletions(-) rename {libmc1322x => lib}/Makefile.lib (100%) rename {libmc1322x => lib}/include/crm.h (100%) rename {libmc1322x => lib}/include/gpio.h (100%) rename {libmc1322x => lib}/include/isr.h (100%) rename {libmc1322x => lib}/include/maca.h (100%) rename {libmc1322x => lib}/include/mc1322x.h (100%) rename {libmc1322x => lib}/include/nvm.h (100%) rename {libmc1322x => lib}/include/put.h (100%) rename {libmc1322x => lib}/include/tmr.h (100%) rename {libmc1322x => lib}/include/types.h (100%) rename {libmc1322x => lib}/include/uart1.h (100%) rename {libmc1322x => lib}/include/utils.h (100%) rename {libmc1322x => lib}/maca.c (100%) rename {libmc1322x => lib}/nvm.c (100%) rename {libmc1322x => lib}/printf.c (100%) rename {libmc1322x => lib}/put.c (100%) diff --git a/Makefile.include b/Makefile.include index 1cf2476c7..1dbb873e6 100644 --- a/Makefile.include +++ b/Makefile.include @@ -3,13 +3,13 @@ CROSS_COMPILE := arm-linux- LINKERSCRIPT := $(MC1322X)/mc1322x.lds -LIBMC1322X := $(MC1322X)/libmc1322x +LIBMC1322X := $(MC1322X)/lib include $(MC1322X)/config.mk include $(MC1322X)/board/Makefile.board -include $(MC1322X)/libmc1322x/Makefile.lib +include $(LIBMC1322X)/Makefile.lib CFLAGS += -I$(MC1322X)/src -I. diff --git a/libmc1322x/Makefile.lib b/lib/Makefile.lib similarity index 100% rename from libmc1322x/Makefile.lib rename to lib/Makefile.lib diff --git a/libmc1322x/include/crm.h b/lib/include/crm.h similarity index 100% rename from libmc1322x/include/crm.h rename to lib/include/crm.h diff --git a/libmc1322x/include/gpio.h b/lib/include/gpio.h similarity index 100% rename from libmc1322x/include/gpio.h rename to lib/include/gpio.h diff --git a/libmc1322x/include/isr.h b/lib/include/isr.h similarity index 100% rename from libmc1322x/include/isr.h rename to lib/include/isr.h diff --git a/libmc1322x/include/maca.h b/lib/include/maca.h similarity index 100% rename from libmc1322x/include/maca.h rename to lib/include/maca.h diff --git a/libmc1322x/include/mc1322x.h b/lib/include/mc1322x.h similarity index 100% rename from libmc1322x/include/mc1322x.h rename to lib/include/mc1322x.h diff --git a/libmc1322x/include/nvm.h b/lib/include/nvm.h similarity index 100% rename from libmc1322x/include/nvm.h rename to lib/include/nvm.h diff --git a/libmc1322x/include/put.h b/lib/include/put.h similarity index 100% rename from libmc1322x/include/put.h rename to lib/include/put.h diff --git a/libmc1322x/include/tmr.h b/lib/include/tmr.h similarity index 100% rename from libmc1322x/include/tmr.h rename to lib/include/tmr.h diff --git a/libmc1322x/include/types.h b/lib/include/types.h similarity index 100% rename from libmc1322x/include/types.h rename to lib/include/types.h diff --git a/libmc1322x/include/uart1.h b/lib/include/uart1.h similarity index 100% rename from libmc1322x/include/uart1.h rename to lib/include/uart1.h diff --git a/libmc1322x/include/utils.h b/lib/include/utils.h similarity index 100% rename from libmc1322x/include/utils.h rename to lib/include/utils.h diff --git a/libmc1322x/maca.c b/lib/maca.c similarity index 100% rename from libmc1322x/maca.c rename to lib/maca.c diff --git a/libmc1322x/nvm.c b/lib/nvm.c similarity index 100% rename from libmc1322x/nvm.c rename to lib/nvm.c diff --git a/libmc1322x/printf.c b/lib/printf.c similarity index 100% rename from libmc1322x/printf.c rename to lib/printf.c diff --git a/libmc1322x/put.c b/lib/put.c similarity index 100% rename from libmc1322x/put.c rename to lib/put.c From 0187cfbf93067f6ab7a2797bece956808d6a3582 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 2 Mar 2010 10:38:32 -0500 Subject: [PATCH 216/471] Now you can build targets with or without the reserved ROM var space. --- Makefile.include | 14 ++++++++++++-- mc1322x.lds | 2 +- src/start.S | 5 +++++ tests/Makefile | 5 ++++- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Makefile.include b/Makefile.include index 1dbb873e6..92b565b06 100644 --- a/Makefile.include +++ b/Makefile.include @@ -11,9 +11,12 @@ include $(MC1322X)/board/Makefile.board include $(LIBMC1322X)/Makefile.lib - CFLAGS += -I$(MC1322X)/src -I. +ifdef USE_ROM_VARS + START = $(MC1322X)/src/start-romvars.o +endif + # default start and isr ifndef START START = $(MC1322X)/src/start.o @@ -43,9 +46,10 @@ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ rm -f $(@:.o=.$$$$) endef - $(START): $(START:.o=.s) $(CC) $(AFLAGS) -c -o $@ $< +$(MC1322X)/src/start-romvars.s: $(MC1322X)/src/start.S + $(CPP) $(AFLAGS) -DUSE_ROM_VARS -o $@ $< $(ISR): $(ISR:.o=.c) $(CC) $(CFLAGS) $(ARM_FLAGS) -MMD $< -c -o $@ @@ -67,6 +71,11 @@ $(ISR): $(ISR:.o=.c) %.dis: %.elf $(OBJDUMP) -SD $< > $@ +%.s: %.S + $(CPP) $(AFLAGS) -o $@ $< +%.o: %.S + $(CC) $(AFLAGS) -MMD -c -o $@ $< + @$(FINALIZE_DEPENDENCY) %.o: %.c $(CC) $(CFLAGS) $(THUMB_FLAGS) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) @@ -108,6 +117,7 @@ endif all: $(OBJDIR)/board.h for target in $(TARGETS); do make $$target\_$(BOARD).bin; done + for target in $(TARGETS_WITH_ROM_VARS); do make USE_ROM_VARS=1 $$target\_$(BOARD).bin; done allboards: for board in $(BOARDS); do make BOARD=$$board all; done diff --git a/mc1322x.lds b/mc1322x.lds index 88098a064..2b233bf64 100644 --- a/mc1322x.lds +++ b/mc1322x.lds @@ -18,7 +18,7 @@ HEAP_SIZE = 1024; PROVIDE (__executable_start = 0x00400000); . = 0x00400000; .text : { - *start.o (.text) + *start*.o (.text) *(.irq) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ diff --git a/src/start.S b/src/start.S index e9ebd561d..2474a4ead 100644 --- a/src/start.S +++ b/src/start.S @@ -86,10 +86,13 @@ _RPTV_2_START: _RPTV_3_START: bx lr /* do nothing */ +#ifdef USE_ROM_VARS .org 0x120 ROM_var_start: .word 0 .org 0x7ff ROM_var_end: .word 0 +#endif + .code 32 .align _begin: @@ -117,7 +120,9 @@ _begin: // msr cpsr_c,#(USR_MODE | I_BIT | F_BIT) +#ifdef USE_ROM_VARS bl _rom_data_init+.-base +#endif msr cpsr_c,#(SVC_MODE) // turn on interrupts --- for debug only // msr cpsr_c,#(USR_MODE) // turn on interrupts --- for debug only // add r1,r1,#usr_stack_size diff --git a/tests/Makefile b/tests/Makefile index b1b9fc3a5..95f2a3afc 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -6,7 +6,7 @@ MC1322X := .. COBJS := tests.o # all of the target programs to build -TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ +TARGETS := blink-green blink-blue blink-white blink-allio \ uart1-loopback \ nvm-read nvm-write romimg flasher \ tmr tmr-ints \ @@ -14,6 +14,9 @@ TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ rftest-rx rftest-tx \ printf +# these targets are built with space reserved for variables needed by ROM services +# this space is initialized with a rom call to rom_data_init +TARGETS_WITH_ROM_VARS := blink-red include $(MC1322X)/Makefile.include From 52bd134d4a31e3667f4db84aaea01a7dc40cb183 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 2 Mar 2010 10:39:23 -0500 Subject: [PATCH 217/471] Added ROM_VAR targets --- tests/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 95f2a3afc..b646a7da7 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -6,7 +6,7 @@ MC1322X := .. COBJS := tests.o # all of the target programs to build -TARGETS := blink-green blink-blue blink-white blink-allio \ +TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ uart1-loopback \ nvm-read nvm-write romimg flasher \ tmr tmr-ints \ @@ -16,7 +16,7 @@ TARGETS := blink-green blink-blue blink-white blink-allio \ # these targets are built with space reserved for variables needed by ROM services # this space is initialized with a rom call to rom_data_init -TARGETS_WITH_ROM_VARS := blink-red +TARGETS_WITH_ROM_VARS := include $(MC1322X)/Makefile.include From 225fb3e55360f027b6f5e30b57a7af3988399c99 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 2 Mar 2010 10:39:47 -0500 Subject: [PATCH 218/471] fix these for the putchr and putstr name changes --- tests/flasher.c | 46 +++++++++++++++++++++++----------------------- tests/nvm-read.c | 16 ++++++++-------- tests/nvm-write.c | 32 ++++++++++++++++---------------- tests/romimg.c | 2 +- tests/sleep.c | 42 +++++++++++++++++++++--------------------- 5 files changed, 69 insertions(+), 69 deletions(-) diff --git a/tests/flasher.c b/tests/flasher.c index 5cbb75e02..25e2d3419 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -6,14 +6,14 @@ #define DEBUG 1 #if DEBUG -#define dbg_putc(...) putc(__VA_ARGS__) -#define dbg_puts(...) puts(__VA_ARGS__) +#define dbg_putchr(...) putchr(__VA_ARGS__) +#define dbg_putstr(...) putstr(__VA_ARGS__) #define dbg_put_hex(...) put_hex(__VA_ARGS__) #define dbg_put_hex16(...) put_hex16(__VA_ARGS__) #define dbg_put_hex32(...) put_hex32(__VA_ARGS__) #else -#define dbg_putc(...) -#define dbg_puts(...) +#define dbg_putchr(...) +#define dbg_putstr(...) #define dbg_put_hex(...) #define dbg_put_hex16(...) #define dbg_put_hex32(...) @@ -45,30 +45,30 @@ void main(void) { vreg_init(); - dbg_puts("Detecting internal nvm\n\r"); + dbg_putstr("Detecting internal nvm\n\r"); err = nvm_detect(gNvmInternalInterface_c, &type); - dbg_puts("nvm_detect returned: 0x"); + dbg_putstr("nvm_detect returned: 0x"); dbg_put_hex(err); - dbg_puts(" type is: 0x"); + dbg_putstr(" type is: 0x"); dbg_put_hex32(type); - dbg_puts("\n\r"); + dbg_putstr("\n\r"); /* erase the flash */ err = nvm_erase(gNvmInternalInterface_c, type, 0x4fffffff); - dbg_puts("nvm_erase returned: 0x"); + dbg_putstr("nvm_erase returned: 0x"); dbg_put_hex(err); - dbg_puts("\n\r"); + dbg_putstr("\n\r"); - dbg_puts(" type is: 0x"); + dbg_putstr(" type is: 0x"); dbg_put_hex32(type); - dbg_puts("\n\r"); + dbg_putstr("\n\r"); /* say we are ready */ len = 0; - puts("ready"); + putstr("ready"); flushrx(); /* read the length */ @@ -78,9 +78,9 @@ void main(void) { len += (c<<(i*8)); } - dbg_puts("len: "); + dbg_putstr("len: "); dbg_put_hex32(len); - dbg_puts("\n\r"); + dbg_putstr("\n\r"); /* write the OKOK magic */ @@ -92,15 +92,15 @@ void main(void) { ((uint8_t *)buf)[0] = 'N'; ((uint8_t *)buf)[1] = 'O'; ((uint8_t *)buf)[2] = 'N'; ((uint8_t *)buf)[3] = 'O'; #endif - dbg_puts(" type is: 0x"); + dbg_putstr(" type is: 0x"); dbg_put_hex32(type); - dbg_puts("\n\r"); + dbg_putstr("\n\r"); err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)buf, 0, 4); - dbg_puts("nvm_write returned: 0x"); + dbg_putstr("nvm_write returned: 0x"); dbg_put_hex(err); - dbg_puts("\n\r"); + dbg_putstr("\n\r"); /* write the length */ err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)&len, 4, 4); @@ -113,7 +113,7 @@ void main(void) { err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)&c, 8+i, 1); } - puts("flasher done\n\r"); + putstr("flasher done\n\r"); state = SCAN_X; addr=0; while((c=getc())) { @@ -139,11 +139,11 @@ void main(void) { } else { /* string is data to write */ data = to_u32(buf); - puts("writing addr "); + putstr("writing addr "); put_hex32(addr); - puts(" data "); + putstr(" data "); put_hex32(data); - puts("\n\r"); + putstr("\n\r"); err = nvm_write(gNvmInternalInterface_c, 1, (uint8_t *)&data, addr, 4); addr += 4; } diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 7b7d11981..60ee5692e 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -16,27 +16,27 @@ void main(void) { vreg_init(); - puts("Detecting internal nvm\n\r"); + putstr("Detecting internal nvm\n\r"); err = nvm_detect(gNvmInternalInterface_c, &type); - puts("nvm_detect returned: 0x"); + putstr("nvm_detect returned: 0x"); put_hex(err); - puts(" type is: 0x"); + putstr(" type is: 0x"); put_hex32(type); - puts("\n\r"); + putstr("\n\r"); nvm_setsvar(0); err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, READ_ADDR, READ_NBYTES); - puts("nvm_read returned: 0x"); + putstr("nvm_read returned: 0x"); put_hex(err); - puts("\n\r"); + putstr("\n\r"); for(i=0; i Date: Tue, 2 Mar 2010 10:40:34 -0500 Subject: [PATCH 219/471] updated todo list --- TODO | 5 ----- 1 file changed, 5 deletions(-) diff --git a/TODO b/TODO index 064168fd2..b9bdd0f79 100644 --- a/TODO +++ b/TODO @@ -2,11 +2,6 @@ use run_algorithm to hook ROM NVM functions see flash/stm32x.c -- add TARGETS which doesn't set space aside space for rom variable or - call rom_data_init and - TARGETS_WITH_ROMDATA which does what is going on now. - -- mv libmc1322x/libmc1322x libmc1322x/lib From 8bd9f182d403f1839db4724800674bbdb74900e4 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 2 Mar 2010 14:32:34 -0500 Subject: [PATCH 220/471] link objects in as archives so only what we need gets linked. Add an option to build objects without space resevered for rom calls. --- Makefile.include | 19 ++++++++++++------- src/start.S | 33 +++++---------------------------- tests/Makefile | 6 ++---- 3 files changed, 19 insertions(+), 39 deletions(-) diff --git a/Makefile.include b/Makefile.include index 92b565b06..dd5cbd5b5 100644 --- a/Makefile.include +++ b/Makefile.include @@ -13,7 +13,7 @@ include $(LIBMC1322X)/Makefile.lib CFLAGS += -I$(MC1322X)/src -I. -ifdef USE_ROM_VARS +ifdef TARGET_ROM_VARS START = $(MC1322X)/src/start-romvars.o endif @@ -24,7 +24,7 @@ endif ifndef ISR ISR = $(MC1322X)/src/isr.o endif -SRCOBJS += $(MC1322X)/src/default_lowlevel.o +SRCOBJS += $(MC1322X)/src/default_lowlevel.o $(ISR) $(START) BOARDOBJS := $(addprefix $(OBJDIR)/,$(COBJS)) ARCH = arm @@ -49,15 +49,20 @@ endef $(START): $(START:.o=.s) $(CC) $(AFLAGS) -c -o $@ $< $(MC1322X)/src/start-romvars.s: $(MC1322X)/src/start.S - $(CPP) $(AFLAGS) -DUSE_ROM_VARS -o $@ $< + $(CPP) $(AFLAGS) -DUSE_INTS -DUSE_ROM_VECTS -DUSE_ROM_VARS -o $@ $< +$(MC1322X)/src/start-romvects.s: $(MC1322X)/src/start.S + $(CPP) $(AFLAGS) -DUSE_INTS -DUSE_ROM_VECTS -o $@ $< $(ISR): $(ISR:.o=.c) $(CC) $(CFLAGS) $(ARM_FLAGS) -MMD $< -c -o $@ @$(FINALIZE_DEPENDENCY) -%_$(BOARD).elf: $(START) $(ISR) $(SRCOBJS) $(OBJDIR)/%.o $(BOARDOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a - $(CC) $(LDFLAGS) $(AOBJS) \ - $(filter %.o %.a,$+) -o $@ +$(OBJDIR)/board.a: $(OBJDIR)/board.a($(OBJDIR)/$(COBJS)) +$(MC1322X)/src/src.a: $(MC1322X)/src/src.a($(SRCOBJS)) + +%_$(BOARD).elf: $(OBJDIR)/%.o $(START) $(ISR) $(SRCOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/board.a $(MC1322X)/src/src.a + $(CC) $(LDFLAGS) \ + -L $(LIBMC1322X) -L $(MC1322X)/src -L $(OBJDIR) $< -o $@ $(START) $(MC1322X)/src/src.a $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/board.a %.srec: %.elf $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ @@ -117,7 +122,7 @@ endif all: $(OBJDIR)/board.h for target in $(TARGETS); do make $$target\_$(BOARD).bin; done - for target in $(TARGETS_WITH_ROM_VARS); do make USE_ROM_VARS=1 $$target\_$(BOARD).bin; done + for target in $(TARGETS_WITH_ROM_VARS); do make TARGET_ROM_VARS=1 $$target\_$(BOARD).bin; done allboards: for board in $(BOARDS); do make BOARD=$$board all; done diff --git a/src/start.S b/src/start.S index 2474a4ead..5944d6713 100644 --- a/src/start.S +++ b/src/start.S @@ -57,7 +57,6 @@ .set base, . .set _rom_data_init, 0x108d0 - .globl _start _start: b _begin ldr pc, _undefined_instruction @@ -67,7 +66,8 @@ _start: b _begin ldr pc, _not_used ldr pc, _irq ldr pc, _fiq - + +#ifdef USE_ROM_VARS /* these vectors are used for rom patching */ .org 0x20 .code 16 @@ -85,13 +85,13 @@ _RPTV_2_START: .org 0xe0 _RPTV_3_START: bx lr /* do nothing */ + -#ifdef USE_ROM_VARS .org 0x120 ROM_var_start: .word 0 .org 0x7ff ROM_var_end: .word 0 -#endif +#endif /*USE_ROM_VARS*/ .code 32 .align @@ -129,6 +129,7 @@ _begin: // mov sp,r1 b main + _undefined_instruction: .word undefined_instruction _software_interrupt: .word software_interrupt @@ -177,29 +178,6 @@ _bss_end: _start_armboot: .word main - -/* - ************************************************************************* - * - * CPU_init_critical registers - * - ************************************************************************* - */ - -cpu_init_crit: - # actually do nothing for now! - mov pc, lr - - -/* - ************************************************************************* - * - * Interrupt handling - * - ************************************************************************* - */ - - /* * exception handlers */ @@ -233,4 +211,3 @@ fiq: .globl reset_cpu reset_cpu: mov pc, r0 - diff --git a/tests/Makefile b/tests/Makefile index b646a7da7..a7a79c989 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -8,15 +8,13 @@ COBJS := tests.o # all of the target programs to build TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ uart1-loopback \ - nvm-read nvm-write romimg flasher \ tmr tmr-ints \ sleep \ - rftest-rx rftest-tx \ - printf + printf # these targets are built with space reserved for variables needed by ROM services # this space is initialized with a rom call to rom_data_init -TARGETS_WITH_ROM_VARS := +TARGETS_WITH_ROM_VARS := nvm-read nvm-write romimg flasher rftest-rx rftest-tx include $(MC1322X)/Makefile.include From 9b05f055033564f58d9b6fcf9f67bd9c5370fbb2 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 2 Mar 2010 16:08:36 -0500 Subject: [PATCH 221/471] add uart1_init to loopback test --- tests/uart1-loopback.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index 216f65263..dfa51356c 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -5,6 +5,8 @@ #include "config.h" void main(void) { + + uart1_init(INC,MOD); uint8_t c; while(1) { From a00b9f7bd08833318e137e88c4b2273fe14c55e4 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 2 Mar 2010 16:26:42 -0500 Subject: [PATCH 222/471] better start file removed unnecessary line from tmr-int test --- src/start.S | 129 ++++++++++++++++++++++++++++++----------------- tests/tmr-ints.c | 6 --- 2 files changed, 82 insertions(+), 53 deletions(-) diff --git a/src/start.S b/src/start.S index 5944d6713..f89ae0f21 100644 --- a/src/start.S +++ b/src/start.S @@ -4,9 +4,6 @@ * Copyright (c) 2001 Marius Gröger * Copyright (c) 2002 Alex Züpke * - * Modified for the mc13224v - * Copyright (c) 2009 Mariano Alvira - * * See file CREDITS for list of people who contributed to this * project. * @@ -26,10 +23,11 @@ * MA 02111-1307 USA */ + /* Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs */ - .equ I_BIT, 0x80 /* when I bit is set, IRQ is disabled */ - .equ F_BIT, 0x40 /* when F bit is set, FIQ is disabled */ + .equ IRQ_DISABLE, 0x80 /* when I bit is set, IRQ is disabled */ + .equ FIQ_DISABLE, 0x40 /* when F bit is set, FIQ is disabled */ .equ USR_MODE, 0x10 .equ FIQ_MODE, 0x11 @@ -39,12 +37,13 @@ .equ UND_MODE, 0x1B .equ SYS_MODE, 0x1F - .equ usr_stack_size, 256*4 - .equ irq_stack_size, 128*4 - .equ fiq_stack_size, 128*4 - .equ und_stack_size, 32*4 - .equ abt_stack_size, 32*4 - .equ sup_stack_size, 32*4 + .equ usr_stack_size, 1024 + .equ irq_stack_size, 256 + .equ fiq_stack_size, 256 + .equ und_stack_size, 256 + .equ abt_stack_size, 16 + .equ sup_stack_size, 16 + /* ************************************************************************* @@ -52,11 +51,13 @@ * Jump vector table as in table 3.1 in [1] * ************************************************************************* - */ + */ + .set base, . .set _rom_data_init, 0x108d0 + .globl _start _start: b _begin ldr pc, _undefined_instruction @@ -67,7 +68,7 @@ _start: b _begin ldr pc, _irq ldr pc, _fiq -#ifdef USE_ROM_VARS +#ifdef USE_ROM_VARS /* these vectors are used for rom patching */ .org 0x20 .code 16 @@ -85,7 +86,6 @@ _RPTV_2_START: .org 0xe0 _RPTV_3_START: bx lr /* do nothing */ - .org 0x120 ROM_var_start: .word 0 @@ -96,41 +96,66 @@ ROM_var_end: .word 0 .code 32 .align _begin: + /* FIQ mode stack */ + msr CPSR_c, #(FIQ_MODE | IRQ_DISABLE | FIQ_DISABLE) + ldr sp, =__fiq_stack_top__ /* set the FIQ stack pointer */ - ldr r1,=_system_stack - msr cpsr_c,#(SVC_MODE | I_BIT | F_BIT) - add r1,r1,#sup_stack_size - mov sp,r1 + /* IRQ mode stack */ + msr CPSR_c, #(IRQ_MODE | IRQ_DISABLE | FIQ_DISABLE) + ldr sp, =__irq_stack_top__ /* set the IRQ stack pointer */ - msr cpsr_c,#(IRQ_MODE | I_BIT | F_BIT) - add r1,r1,#irq_stack_size - mov sp,r1 + /* Supervisor mode stack */ + msr CPSR_c, #(SVC_MODE | IRQ_DISABLE | FIQ_DISABLE) + ldr sp, =__svc_stack_top__ /* set the SVC stack pointer */ - msr cpsr_c,#(FIQ_MODE | I_BIT | F_BIT) - add r1,r1,#fiq_stack_size - mov sp,r1 - - msr cpsr_c,#(ABT_MODE | I_BIT | F_BIT) - add r1,r1,#abt_stack_size - mov sp,r1 + /* Undefined mode stack */ + msr CPSR_c, #(UND_MODE | IRQ_DISABLE | FIQ_DISABLE) + ldr sp, =__und_stack_top__ /* set the UND stack pointer */ - msr cpsr_c,#(UND_MODE | I_BIT | F_BIT) - add r1,r1,#und_stack_size - mov sp,r1 + /* Abort mode stack */ + msr CPSR_c, #(ABT_MODE | IRQ_DISABLE | FIQ_DISABLE) + ldr sp, =__abt_stack_top__ /* set the ABT stack pointer */ -// msr cpsr_c,#(USR_MODE | I_BIT | F_BIT) + /* System mode stack */ + msr CPSR_c, #(SYS_MODE | IRQ_DISABLE | FIQ_DISABLE) + ldr sp, =__sys_stack_top__ /* set the SYS stack pointer */ #ifdef USE_ROM_VARS bl _rom_data_init+.-base #endif - msr cpsr_c,#(SVC_MODE) // turn on interrupts --- for debug only + msr CPSR_c, #(SYS_MODE) + + b main + +// ldr r1,=_system_stack +// msr cpsr_c,#(SVC_MODE | I_BIT | F_BIT) +// add r1,r1,#sup_stack_size +// mov sp,r1 + +// msr cpsr_c,#(IRQ_MODE | I_BIT | F_BIT) +// add r1,r1,#irq_stack_size +// mov sp,r1 + +// msr cpsr_c,#(FIQ_MODE | I_BIT | F_BIT) +// add r1,r1,#fiq_stack_size +// mov sp,r1 + +// msr cpsr_c,#(ABT_MODE | I_BIT | F_BIT) +// add r1,r1,#abt_stack_size +// mov sp,r1 + +// msr cpsr_c,#(UND_MODE | I_BIT | F_BIT) +// add r1,r1,#und_stack_size +// mov sp,r1 + +// msr cpsr_c,#(USR_MODE | I_BIT | F_BIT) + +// bl _rom_data_init+.-base +// msr cpsr_c,#(SVC_MODE) // turn on interrupts --- for debug only // msr cpsr_c,#(USR_MODE) // turn on interrupts --- for debug only // add r1,r1,#usr_stack_size // mov sp,r1 - b main - - _undefined_instruction: .word undefined_instruction _software_interrupt: .word software_interrupt _prefetch_abort: .word prefetch_abort @@ -138,8 +163,9 @@ _data_abort: .word data_abort _not_used: .word not_used _irq: .word irq _fiq: .word fiq - .balignl 16,0xdeadbeef - + .balignl 16,0xdeadbeef + + /* ************************************************************************* * @@ -160,10 +186,6 @@ _TEXT_BASE: _armboot_start: .word _start -_system_stack: - . = . + usr_stack_size + irq_stack_size + fiq_stack_size + und_stack_size + abt_stack_size + sup_stack_size - - /* * These are defined in the board-specific linker script. */ @@ -177,6 +199,22 @@ _bss_end: _start_armboot: .word main +_system_stack: + . = . + usr_stack_size + irq_stack_size + fiq_stack_size + und_stack_size + abt_stack_size + sup_stack_size + + +/* + ************************************************************************* + * + * CPU_init_critical registers + * + ************************************************************************* + */ + +cpu_init_crit: + # actually do nothing for now! + mov pc, lr + /* * exception handlers @@ -199,11 +237,8 @@ not_used: .align 5 //irq: -// push {lr} -// movs lr,pc -// b isr -// pop {lr} -// subs pc,r14,#4 // suggested irq return cmd +// +// .align 5 fiq: .align 5 diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index 17de11f16..d33d82d4d 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -60,12 +60,6 @@ void main(void) { enable_tmr_irq(); - /* go into user mode to handle IRQs */ - /* disabling interrupts is now difficult */ - asm(".code 32;" - "msr cpsr_c,#(0x10);" - ".code 16; "); - while(1) { /* sit here and let the interrupts do the work */ }; From bec0f1d47757706ef0a153621b341ad930d506bc Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 2 Mar 2010 17:09:20 -0500 Subject: [PATCH 223/471] correctly order the libs --- Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index dd5cbd5b5..16e42dc2e 100644 --- a/Makefile.include +++ b/Makefile.include @@ -62,7 +62,7 @@ $(MC1322X)/src/src.a: $(MC1322X)/src/src.a($(SRCOBJS)) %_$(BOARD).elf: $(OBJDIR)/%.o $(START) $(ISR) $(SRCOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/board.a $(MC1322X)/src/src.a $(CC) $(LDFLAGS) \ - -L $(LIBMC1322X) -L $(MC1322X)/src -L $(OBJDIR) $< -o $@ $(START) $(MC1322X)/src/src.a $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/board.a + -L $(LIBMC1322X) -L $(MC1322X)/src -L $(OBJDIR) $< -o $@ $(START) $(MC1322X)/src/src.a $(OBJDIR)/board.a $(LIBMC1322X)/libmc1322x.a %.srec: %.elf $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ From 1b4dd3b4dcc2e51e22e8f3cea3355d5429f733ed Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 2 Mar 2010 17:52:31 -0500 Subject: [PATCH 224/471] use printf instead of put --- tests/rftest-tx.c | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 27a7063a5..15e6abb19 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -1,5 +1,6 @@ #include #include +#include #include "tests.h" #include "config.h" @@ -100,62 +101,56 @@ void main(void) { { case(cc_aborted): { - putstr("aborted\n\r"); + printf("aborted\n\r"); ResumeMACASync(); break; } case(cc_not_completed): { - putstr("not completed\n\r"); + printf("not completed\n\r"); ResumeMACASync(); break; } case(cc_timeout): { - putstr("timeout\n\r"); + printf("timeout\n\r"); ResumeMACASync(); break; } case(cc_no_ack): { - putstr("no ack\n\r"); + printf("no ack\n\r"); ResumeMACASync(); break; } case(cc_ext_timeout): { - putstr("ext timeout\n\r"); + printf("ext timeout\n\r"); ResumeMACASync(); break; } case(cc_ext_pnd_timeout): { - putstr("ext pnd timeout\n\r"); + printf("ext pnd timeout\n\r"); ResumeMACASync(); break; } case(cc_success): { -// putstr("success\n\r"); +// printf("success\n\r"); - putstr("rftest-tx --- " ); - putstr(" payload len+crc: 0x"); - put_hex(PAYLOAD_LEN+4); - putstr(" timestamp: 0x"); - put_hex32(maca_timestamp); - putstr("\n\r"); - putstr(" data: "); + printf("rftest-tx --- payload len+crc: 0x%02x timestamp: 0x%08x\n\r", PAYLOAD_LEN+4, maca_timestamp); + printf(" data: "); for(i=0; i Date: Tue, 2 Mar 2010 17:53:09 -0500 Subject: [PATCH 225/471] removed old include directory. --- include/crm.h | 36 ----- include/embedded_types.h | 143 -------------------- include/interrupt-utils.h | 272 -------------------------------------- include/sys-interrupt.h | 29 ---- include/timer.h | 84 ------------ include/utils.h | 12 -- 6 files changed, 576 deletions(-) delete mode 100644 include/crm.h delete mode 100644 include/embedded_types.h delete mode 100644 include/interrupt-utils.h delete mode 100644 include/sys-interrupt.h delete mode 100644 include/timer.h delete mode 100644 include/utils.h diff --git a/include/crm.h b/include/crm.h deleted file mode 100644 index 0110074c1..000000000 --- a/include/crm.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef CRM_H -#define CRM_H - -#define CRM_BASE (0x80003000) -#define CRM_SYS_CNTL (CRM_BASE+0x00) -#define CRM_WU_CNTL (CRM_BASE+0x04) -#define CRM_SLEEP_CNTL (CRM_BASE+0x08) -#define CRM_BS_CNTL (CRM_BASE+0x0c) -#define CRM_COP_CNTL (CRM_BASE+0x10) -#define CRM_COP_SERVICE (CRM_BASE+0x14) -#define CRM_STATUS (CRM_BASE+0x18) -#define CRM_MOD_STATUS (CRM_BASE+0x1c) -#define CRM_WU_COUNT (CRM_BASE+0x20) -#define CRM_WU_TIMEOUT (CRM_BASE+0x24) -#define CRM_RTC_COUNT (CRM_BASE+0x28) -#define CRM_RTC_TIMEOUT (CRM_BASE+0x2c) -#define CRM_CAL_CNTL (CRM_BASE+0x34) -#define CRM_CAL_COUNT (CRM_BASE+0x38) -#define CRM_RINGOSC_CNTL (CRM_BASE+0x3c) -#define CRM_XTAL_CNTL (CRM_BASE+0x40) -#define CRM_XTAL32_CNTL (CRM_BASE+0x44) -#define CRM_VREG_CNTL (CRM_BASE+0x48) -#define CRM_SW_RST (CRM_BASE+0x50) - -/* wu_cntl bit locations */ -#define EXT_WU_IEN 20 /* 4 bits */ -#define EXT_WU_EN 4 /* 4 bits */ -#define EXT_WU_EDGE 8 /* 4 bits */ -#define EXT_WU_POL 12 /* 4 bits */ - -/* status bit locations */ -#define EXT_WU_EVT 4 /* 4 bits */ - -#define enable_wu_en(k) (set_bit(reg32(CRM_WU_CNTL),(EXT_WU_EN+k-4))) - -#endif diff --git a/include/embedded_types.h b/include/embedded_types.h deleted file mode 100644 index 8d061d860..000000000 --- a/include/embedded_types.h +++ /dev/null @@ -1,143 +0,0 @@ -/************************************************************************************ -* This file holds type definitions that maps the standard c-types into types -* with guaranteed sizes. The types are target/platform specific and must be edited -* for each new target/platform. -* -* The header file also provides definitions for TRUE, FALSE and NULL. -* -* (c) Copyright 2006, Freescale Semiconductor, Inc. All rights reserved. -* -* -* No part of this document must be reproduced in any form - including copied, -* transcribed, printed or by any electronic means - without specific written -* permission from Freescale Semiconductor. -*************************************************************************************/ - -#ifndef _EMBEDDEDTYPES_H_ -#define _EMBEDDEDTYPES_H_ -/************************************************************************************ -* -* TYPE DEFINITIONS -* -************************************************************************************/ - -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed long int32_t; -typedef unsigned long uint32_t; -typedef signed long long int64_t; -typedef unsigned long long uint64_t; - -typedef signed char intn8_t; -typedef unsigned char uintn8_t; -typedef signed short intn16_t; -typedef unsigned short uintn16_t; -typedef signed long intn32_t; -typedef unsigned long uintn32_t; -typedef signed long long intn64_t; -typedef unsigned long long uintn64_t; - -/* boolean types */ -typedef uint8_t bool_t; -typedef uintn8_t booln_t; -/* used for indexing into an array in the most efficient manner for the platform */ -typedef uint8_t index_t; - -#define BIT0 0x00000001UL -#define BIT1 0x00000002UL -#define BIT2 0x00000004UL -#define BIT3 0x00000008UL -#define BIT4 0x00000010UL -#define BIT5 0x00000020UL -#define BIT6 0x00000040UL -#define BIT7 0x00000080UL -#define BIT8 0x00000100UL -#define BIT9 0x00000200UL -#define BIT10 0x00000400UL -#define BIT11 0x00000800UL -#define BIT12 0x00001000UL -#define BIT13 0x00002000UL -#define BIT14 0x00004000UL -#define BIT15 0x00008000UL -#define BIT16 0x00010000UL -#define BIT17 0x00020000UL -#define BIT18 0x00040000UL -#define BIT19 0x00080000UL -#define BIT20 0x00100000UL -#define BIT21 0x00200000UL -#define BIT22 0x00400000UL -#define BIT23 0x00800000UL -#define BIT24 0x01000000UL -#define BIT25 0x02000000UL -#define BIT26 0x04000000UL -#define BIT27 0x08000000UL -#define BIT28 0x10000000UL -#define BIT29 0x20000000UL -#define BIT30 0x40000000UL -#define BIT31 0x80000000UL - - -#define TRUE 1 -#define FALSE 0 - -#ifndef NULL -#define NULL (( void * )( 0 )) -#endif - -/* indicate endian-ness of this MCU */ -#define gBigEndian_c FALSE - -typedef uint32_t zbClock32_t; -typedef uint32_t zbClock24_t; -typedef uint16_t zbClock16_t; - -/* common macros to reduce code size in S08 */ -#if (gBigEndian_c) - -#define IsEqual2Bytes(aVal1, aVal2) (*((uint16_t *)(aVal1)) == *((uint16_t *)(aVal2))) -#define Copy2Bytes(aVal1, aVal2) (*((uint16_t *)(aVal1)) = *((uint16_t *)(aVal2))) -#define Set2Bytes(aVal1, iVal2) (*((uint16_t *)(aVal1)) = (iVal2)) -#define IsEqual2BytesInt(aVal1, iVal2) (*((uint16_t *)(aVal1)) == (iVal2)) -#define TwoBytesToUint16(aVal) ( *((uint16_t *)(aVal)) ) -#define FourBytesToUint32(aVal) ( *((uint32_t *)(aVal)) ) -#define TwoBytes2Byte(aVal) ( (uint8_t)( *( ( uint16_t * )(aVal) ) ) ) -#define Cmp2BytesToZero(aVal) (!( TwoBytesToUint16(aVal) )) -#define Inc4Bytes(aVal1, iVal2) ( *((uint32_t *)(aVal1)) += (iVal2)) - -#else - -#define Copy2Bytes(aVal1, aVal2) (FLib_MemCpy((void *)aVal1,(void *) aVal2, 2)) -void Set2Bytes(void *ptr, uint16_t val); -bool_t IsEqual2BytesInt(void *ptr, uint16_t val); -//#define Set2Bytes(aVal1, iVal2) (*((uint16_t *)(aVal1)) = (iVal2)) -//#define IsEqual2BytesInt(aVal1, iVal2) (*((uint16_t *)(aVal1)) == (iVal2)) -#define TwoBytesToUint16(aVal) ( ((uint16_t)(*((uint8_t *)(aVal))))|(((uint16_t)(*(((uint8_t *)(aVal))+1)))<<8) ) -#define FourBytesToUint32(aVal) ( ((uint32_t)TwoBytesToUint16(aVal))|(((uint32_t)TwoBytesToUint16(((uint8_t*)aVal)+2))<<16) ) -#define TwoBytes2Byte(aVal) ( (uint8_t)( *( ( uint8_t * )(aVal) ) ) ) -#define Cmp2BytesToZero(aVal) (!( TwoBytesToUint16(aVal) )) -void Inc4Bytes(uint8_t* aVal1, uint32_t Val2); -#define IsEqual2Bytes(aVal1, aVal2) (TwoBytesToUint16(aVal1) == TwoBytesToUint16(aVal2)) - -#endif /* #if (gBigEndian_c) */ - - -/* allow for routines/variables to be static or not at compile-time. */ -#define STATIC - -/* add assert codes if needed. Calls assert function. */ -typedef uint8_t assertCode_t; - -void BeeAppAssert(assertCode_t code); - - - -#define gAssertCode_NoTasks_c 0x01 /* not enough tasks. Increase gTsMaxTasks_c */ -#define gAssertCode_NoTimers_c 0x02 /* not enough timers. Increase gTmrApplicationTimers_c */ -#define gAssertCode_PageTooBig_c 0x04 /* An NVM page is to big to be stored. */ - - -#define gMaxIndex_c 0xfe - -#endif /* _EMBEDDEDTYPES_H_ */ diff --git a/include/interrupt-utils.h b/include/interrupt-utils.h deleted file mode 100644 index 29b307d88..000000000 --- a/include/interrupt-utils.h +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Defines and Macros for Interrupt-Service-Routines - * collected and partly created by - * Martin Thomas - * - * Copyright 2005 M. Thomas - * No guarantees, warrantees, or promises, implied or otherwise. - * May be used for hobby or commercial purposes provided copyright - * notice remains intact. - */ - -#ifndef interrupt_utils_ -#define interrupt_utils_ - -/* - The following defines are usefull for - interrupt service routine declarations. -*/ - -/* - RAMFUNC - Attribute which defines a function to be located - in memory section .fastrun and called via "long calls". - See linker-skript and startup-code to see how the - .fastrun-section is handled. - The definition is not only useful for ISRs but since - ISRs should be executed fast the macro is defined in - this header. -*/ -#define RAMFUNC __attribute__ ((long_call, section (".fastrun"))) - - -/* - INTFUNC - standard attribute for arm-elf-gcc which marks - a function as ISR (for the VIC). Since gcc seems - to produce wrong code if this attribute is used in - thumb/thumb-interwork the attribute should only be - used for "pure ARM-mode" binaries. -*/ -#define INTFUNC __attribute__ ((interrupt("IRQ"))) - - -/* - NACKEDFUNC - gcc will not add any code to a function declared - "nacked". The user has to take care to save registers - and add the needed code for ISR functions. Some - macros for this tasks are provided below. -*/ -#define NACKEDFUNC __attribute__((naked)) - - -/****************************************************************************** - * - * MACRO Name: ISR_STORE() - * - * Description: - * This MACRO is used upon entry to an ISR with interrupt nesting. - * Should be used together with ISR_ENABLE_NEST(). The MACRO - * performs the following steps: - * - * 1 - Save the non-banked registers r0-r12 and lr onto the IRQ stack. - * - *****************************************************************************/ -#define ISR_STORE() asm volatile( \ - "STMDB SP!,{R0-R12,LR}\n" ) - - /****************************************************************************** - * - * MACRO Name: ISR_RESTORE() - * - * Description: - * This MACRO is used upon exit from an ISR with interrupt nesting. - * Should be used together with ISR_DISABLE_NEST(). The MACRO - * performs the following steps: - * - * 1 - Load the non-banked registers r0-r12 and lr from the IRQ stack. - * 2 - Adjusts resume adress - * - *****************************************************************************/ -#define ISR_RESTORE() asm volatile( \ - "LDMIA SP!,{R0-R12,LR}\n" \ - "SUBS R15,R14,#0x0004\n" ) - -/****************************************************************************** - * - * MACRO Name: ISR_ENABLE_NEST() - * - * Description: - * This MACRO is used upon entry from an ISR with interrupt nesting. - * Should be used after ISR_STORE. - * - *****************************************************************************/ - -#define ISR_ENABLE_NEST() asm volatile( \ - "MRS LR, SPSR \n" \ - "STMFD SP!, {LR} \n" \ - "MSR CPSR_c, #0x1f \n" \ - "STMFD SP!, {LR} " ) - -/****************************************************************************** - * - * MACRO Name: ISR_DISABLE_NEST() - * - * Description: - * This MACRO is used upon entry from an ISR with interrupt nesting. - * Should be used before ISR_RESTORE. - * - *****************************************************************************/ - -#define ISR_DISABLE_NEST() asm volatile( \ - "LDMFD SP!, {LR} \n" \ - "MSR CPSR_c, #0x92 \n" \ - "LDMFD SP!, {LR} \n" \ - "MSR SPSR_cxsf, LR \n" ) - - - -/* - * The following marcos are from the file "armVIC.h" by: - * - * Copyright 2004, R O SoftWare - * No guarantees, warrantees, or promises, implied or otherwise. - * May be used for hobby or commercial purposes provided copyright - * notice remains intact. - * - */ - -/****************************************************************************** - * - * MACRO Name: ISR_ENTRY() - * - * Description: - * This MACRO is used upon entry to an ISR. The current version of - * the gcc compiler for ARM does not produce correct code for - * interrupt routines to operate properly with THUMB code. The MACRO - * performs the following steps: - * - * 1 - Adjust address at which execution should resume after servicing - * ISR to compensate for IRQ entry - * 2 - Save the non-banked registers r0-r12 and lr onto the IRQ stack. - * 3 - Get the status of the interrupted program is in SPSR. - * 4 - Push it onto the IRQ stack as well. - * - *****************************************************************************/ -#define ISR_ENTRY() asm volatile(" sub lr, lr,#4\n" \ - " stmfd sp!,{r0-r12,lr}\n" \ - " mrs r1, spsr\n" \ - " stmfd sp!,{r1}") - -/****************************************************************************** - * - * MACRO Name: ISR_EXIT() - * - * Description: - * This MACRO is used to exit an ISR. The current version of the gcc - * compiler for ARM does not produce correct code for interrupt - * routines to operate properly with THUMB code. The MACRO performs - * the following steps: - * - * 1 - Recover SPSR value from stack - * 2 - and restore its value - * 3 - Pop the return address & the saved general registers from - * the IRQ stack & return - * - *****************************************************************************/ -#define ISR_EXIT() asm volatile(" ldmfd sp!,{r1}\n" \ - " msr spsr_c,r1\n" \ - " ldmfd sp!,{r0-r12,pc}^") - -/****************************************************************************** - * - * Function Name: disableIRQ() - * - * Description: - * This function sets the IRQ disable bit in the status register - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned disableIRQ(void); - -/****************************************************************************** - * - * Function Name: enableIRQ() - * - * Description: - * This function clears the IRQ disable bit in the status register - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned enableIRQ(void); - -/****************************************************************************** - * - * Function Name: restoreIRQ() - * - * Description: - * This function restores the IRQ disable bit in the status register - * to the value contained within passed oldCPSR - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned restoreIRQ(unsigned oldCPSR); - -/****************************************************************************** - * - * Function Name: disableFIQ() - * - * Description: - * This function sets the FIQ disable bit in the status register - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned disableFIQ(void); - -/****************************************************************************** - * - * Function Name: enableFIQ() - * - * Description: - * This function clears the FIQ disable bit in the status register - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned enableFIQ(void); - -/****************************************************************************** - * - * Function Name: restoreFIQ() - * - * Description: - * This function restores the FIQ disable bit in the status register - * to the value contained within passed oldCPSR - * - * Calling Sequence: - * void - * - * Returns: - * previous value of CPSR - * - *****************************************************************************/ -unsigned restoreFIQ(unsigned oldCPSR); - - -#endif - diff --git a/include/sys-interrupt.h b/include/sys-interrupt.h deleted file mode 100644 index cdaf8d2c3..000000000 --- a/include/sys-interrupt.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __SYS_INTERRUPT_H -#define __SYS_INTERRUPT_H - -/* Returns true if it handled an active interrupt */ -typedef int (*SystemInterruptFunc)(); - -typedef struct _SystemInterruptHandler SystemInterruptHandler; -struct _SystemInterruptHandler -{ - SystemInterruptHandler *next; - SystemInterruptFunc handler; -}; - -void -sys_interrupt_enable(); - -void -sys_interrupt_disable(); - -void -sys_interrupt_append_handler(SystemInterruptHandler *handler); - -void -sys_interrupt_prepend_handler(SystemInterruptHandler *handler); - -void -sys_interrupt_remove_handler(SystemInterruptHandler *handler); - -#endif /* __SYS_INTERRUPT_H */ diff --git a/include/timer.h b/include/timer.h deleted file mode 100644 index 1c9166dbf..000000000 --- a/include/timer.h +++ /dev/null @@ -1,84 +0,0 @@ -/* Timer registers are all 16-bit wide with 16-bit access only */ -#define TMR_OFFSET (0x20) -#define TMR_BASE (0x80007000) -#define TMR0_BASE (TMR_BASE) -#define TMR1_BASE (TMR_BASE + TMR_OFFSET*1) -#define TMR2_BASE (TMR_BASE + TMR_OFFSET*2) -#define TMR3_BASE (TMR_BASE + TMR_OFFSET*3) - -#define TMR_REGOFF_COMP1 (0x0) -#define TMR_REGOFF_COMP2 (0x2) -#define TMR_REGOFF_CAPT (0x4) -#define TMR_REGOFF_LOAD (0x6) -#define TMR_REGOFF_HOLD (0x8) -#define TMR_REGOFF_CNTR (0xa) -#define TMR_REGOFF_CTRL (0xc) -#define TMR_REGOFF_SCTRL (0xe) -#define TMR_REGOFF_CMPLD1 (0x10) -#define TMR_REGOFF_CMPLD2 (0x12) -#define TMR_REGOFF_CSCTRL (0x14) -#define TMR_REGOFF_ENBL (0x1e) - -/* one enable register to rule them all */ -#define TMR_ENBL TMR0_BASE + TMR_REGOFF_ENBL - -/* Timer 0 registers */ -#define TMR0_COMP1 (TMR0_BASE + TMR_REGOFF_COMP1) -#define TMR0_COMP_UP TMR0_COMP1 -#define TMR0_COMP2 (TMR0_BASE + TMR_REGOFF_COMP2) -#define TMR0_COMP_DOWN TMR0_COMP2 -#define TMR0_CAPT (TMR0_BASE + TMR_REGOFF_CAPT) -#define TMR0_LOAD (TMR0_BASE + TMR_REGOFF_LOAD) -#define TMR0_HOLD (TMR0_BASE + TMR_REGOFF_HOLD) -#define TMR0_CNTR (TMR0_BASE + TMR_REGOFF_CTRL) -#define TMR0_CTRL (TMR0_BASE + TMR_REGOFF_CTRL) -#define TMR0_SCTRL (TMR0_BASE + TMR_REGOFF_SCTRL) -#define TMR0_CMPLD1 (TMR0_BASE + TMR_REGOFF_CMPLD1) -#define TMR0_CMPLD2 (TMR0_BASE + TMR_REGOFF_CMPLD2) -#define TMR0_CSCTRL (TMR0_BASE + TMR_REGOFF_CSCTRL) - -/* Timer 1 registers */ -#define TMR1_COMP1 (TMR1_BASE + TMR_REGOFF_COMP1) -#define TMR1_COMP_UP TMR1_COMP1 -#define TMR1_COMP2 (TMR1_BASE + TMR_REGOFF_COMP2) -#define TMR1_COMP_DOWN TMR1_COMP2 -#define TMR1_CAPT (TMR1_BASE + TMR_REGOFF_CAPT) -#define TMR1_LOAD (TMR1_BASE + TMR_REGOFF_LOAD) -#define TMR1_HOLD (TMR1_BASE + TMR_REGOFF_HOLD) -#define TMR1_CNTR (TMR1_BASE + TMR_REGOFF_CTRL) -#define TMR1_CTRL (TMR1_BASE + TMR_REGOFF_CTRL) -#define TMR1_SCTRL (TMR1_BASE + TMR_REGOFF_SCTRL) -#define TMR1_CMPLD1 (TMR1_BASE + TMR_REGOFF_CMPLD1) -#define TMR1_CMPLD2 (TMR1_BASE + TMR_REGOFF_CMPLD2) -#define TMR1_CSCTRL (TMR1_BASE + TMR_REGOFF_CSCTRL) - -/* Timer 2 registers */ -#define TMR2_COMP1 (TMR2_BASE + TMR_REGOFF_COMP1) -#define TMR2_COMP_UP TMR2_COMP1 -#define TMR2_COMP2 (TMR2_BASE + TMR_REGOFF_COMP2) -#define TMR2_COMP_DOWN TMR2_COMP2 -#define TMR2_CAPT (TMR2_BASE + TMR_REGOFF_CAPT) -#define TMR2_LOAD (TMR2_BASE + TMR_REGOFF_LOAD) -#define TMR2_HOLD (TMR2_BASE + TMR_REGOFF_HOLD) -#define TMR2_CNTR (TMR2_BASE + TMR_REGOFF_CTRL) -#define TMR2_CTRL (TMR2_BASE + TMR_REGOFF_CTRL) -#define TMR2_SCTRL (TMR2_BASE + TMR_REGOFF_SCTRL) -#define TMR2_CMPLD1 (TMR2_BASE + TMR_REGOFF_CMPLD1) -#define TMR2_CMPLD2 (TMR2_BASE + TMR_REGOFF_CMPLD2) -#define TMR2_CSCTRL (TMR2_BASE + TMR_REGOFF_CSCTRL) - -/* Timer 3 registers */ -#define TMR3_COMP1 (TMR3_BASE + TMR_REGOFF_COMP1) -#define TMR3_COMP_UP TMR3_COMP1 -#define TMR3_COMP2 (TMR3_BASE + TMR_REGOFF_COMP2) -#define TMR3_COMP_DOWN TMR3_COMP2 -#define TMR3_CAPT (TMR3_BASE + TMR_REGOFF_CAPT) -#define TMR3_LOAD (TMR3_BASE + TMR_REGOFF_LOAD) -#define TMR3_HOLD (TMR3_BASE + TMR_REGOFF_HOLD) -#define TMR3_CNTR (TMR3_BASE + TMR_REGOFF_CTRL) -#define TMR3_CTRL (TMR3_BASE + TMR_REGOFF_CTRL) -#define TMR3_SCTRL (TMR3_BASE + TMR_REGOFF_SCTRL) -#define TMR3_CMPLD1 (TMR3_BASE + TMR_REGOFF_CMPLD1) -#define TMR3_CMPLD2 (TMR3_BASE + TMR_REGOFF_CMPLD2) -#define TMR3_CSCTRL (TMR3_BASE + TMR_REGOFF_CSCTRL) - diff --git a/include/utils.h b/include/utils.h deleted file mode 100644 index 21ad6f711..000000000 --- a/include/utils.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef UTILS_H -#define UTILS_H - -#define reg32(x) (*(volatile uint32_t *)(x)) -#define reg16(x) (*(volatile uint16_t *)(x)) - -#define bit(bit) (1<> bit) == 1) -#define clear_bit(val,bit) (val=(val & ~(1< Date: Tue, 2 Mar 2010 18:23:23 -0500 Subject: [PATCH 226/471] changed maca.c over to printf --- lib/maca.c | 71 ++++++++++++++++------------------------------- tests/rftest-tx.c | 3 +- 2 files changed, 26 insertions(+), 48 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 4c151eaa6..72292eac8 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -1,4 +1,14 @@ #include +#include + +#ifndef DEBUG_MACA +#define DEBUG_MACA 0 +#endif +#if (DEBUG_MACA == 0) +#define PRINTF(...) printf(__VA_ARGS__) +#else +#define PRINTF(...) +#endif #define reg(x) (*(volatile uint32_t *)(x)) @@ -235,7 +245,7 @@ void radio_init(void) { *(volatile uint32_t *)(addr_reg_rep[i]) = data_reg_rep[i]; } - putstr("initfromflash\n\r"); + PRINTF("initfromflash\n\r"); *(volatile uint32_t *)(0x80003048) = 0x00000f04; /* bypass the buck */ for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ @@ -245,23 +255,15 @@ void radio_init(void) { init_from_flash(0x1F000); - putstr("ram_values:\n\r"); + PRINTF("ram_values:\n\r"); for(i=0; i<4; i++) { - putstr(" 0x"); - put_hex(ram_values[i]); - putstr("\n\r"); + PRINTF(" 0x%02x\n\r",ram_values[i]); } - putstr("radio_init: ctov parameter 0x"); - put_hex(ram_values[3]); - putstr("\n\r"); + PRINTF("radio_init: ctov parameter 0x%02x\n\r",ram_values[3]); for(i=0; i<16; i++) { ctov[i] = get_ctov(i,ram_values[3]); - putstr("radio_init: ctov["); - put_hex(i); - putstr("] = 0x"); - put_hex(ctov[i]); - putstr("\n\r"); + PRINTF("radio_init: ctov[%d] = 0x%02x\n\r",i,ctov[i]); } @@ -420,49 +422,31 @@ uint32_t exec_init_entry(volatile uint32_t *entries, uint8_t *valbuf) if(entries[0] <= ROM_END) { if (entries[0] == 0) { /* do delay command*/ - putstr("init_entry: delay "); - put_hex32(entries[1]); - putstr("\n\r"); + PRINTF("init_entry: delay 0x%08x\n\r", entries[1]); for(i=0; i= 16) && (entries[0] < 0xfff1)) { /* store bytes in valbuf */ - putstr("init_entry: store in valbuf "); - put_hex(entries[1]); - putstr(" position "); - put_hex((entries[0]>>4)-1); - putstr("\n\r"); + PRINTF("init_entry: store in valbuf 0x%02x position %d\n\r", entries[1],(entries[0]>>4)-1); valbuf[(entries[0]>>4)-1] = entries[1]; return 2; } else if (entries[0] == ENTRY_EOF) { - putstr("init_entry: eof "); + PRINTF("init_entry: eof "); return 0; } else { /* invalid command code */ - putstr("init_entry: invaild code "); - put_hex32(entries[0]); - putstr("\n\r"); + PRINTF("init_entry: invaild code 0x%08x\n\r",entries[0]); return 0; } } else { /* address isn't in ROM space */ /* do store value in address command */ - putstr("init_entry: address value pair - *0x"); - put_hex32(entries[0]); - putstr(" = "); - put_hex32(entries[1]); - putstr("\n\r"); + PRINTF("init_entry: address value pair - *0x%08x = 0x%08x\n\r",entries[0],entries[1]); reg(entries[0]) = entries[1]; return 2; } @@ -478,22 +462,15 @@ uint32_t init_from_flash(uint32_t addr) { volatile uint32_t i=0,j; err = nvm_detect(gNvmInternalInterface_c, &type); - putstr("nvm_detect returned type "); - put_hex32(type); - putstr(" err "); - put_hex(err); - putstr("\n\r"); + PRINTF("nvm_detect returned type 0x%08x err 0x%02x\n\r", type, err); nvm_setsvar(0); err = nvm_read(gNvmInternalInterface_c, type, (uint8_t *)buf, addr, 8); i+=8; - putstr("nvm_read returned: 0x"); - put_hex(err); - putstr("\n\r"); + PRINTF("nvm_read returned: 0x%02x\n\r",err); for(j=0; j<4; j++) { - put_hex32(buf[j]); - putstr("\n\r"); + PRINTF("0x%08x\n\r",buf[j]); } if(buf[0] == FLASH_INIT_MAGIC) { diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 15e6abb19..9be9d5e4a 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -6,7 +6,8 @@ #include "config.h" #define DELAY 100000 -#define DATA 0x00401000; +#define DATA 0x00401000 +#define DEBUG_MACA 1 uint32_t ackBox[10]; From 00224dd7ebf77b2a490046ee529d38bbd06db53e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 3 Mar 2010 08:09:19 -0500 Subject: [PATCH 227/471] pulled put out of lib still need set __putc as a fuction pointer to the uart_putc --- lib/include/uart1.h | 4 +++- lib/printf.c | 2 +- lib/uart1.c | 6 ++++++ tests/Makefile | 2 +- tests/put.c | 36 ++++++++++++++++++++++++++++++++++++ tests/put.h | 10 ++++++++++ tests/tests.c | 25 +++++++++---------------- 7 files changed, 66 insertions(+), 19 deletions(-) create mode 100644 lib/uart1.c create mode 100644 tests/put.c create mode 100644 tests/put.h diff --git a/lib/include/uart1.h b/lib/include/uart1.h index 4967ceb5f..ee8337ef6 100644 --- a/lib/include/uart1.h +++ b/lib/include/uart1.h @@ -1,6 +1,8 @@ #ifndef UART1_H #define UART1_H +#include + #define UART1_CON ((volatile uint32_t *) 0x80005000) #define UART1_STAT ((volatile uint32_t *) 0x80005004) #define UART1_DATA ((volatile uint32_t *) 0x80005008) @@ -9,7 +11,7 @@ #define UART1_CTS ((volatile uint32_t *) 0x80005014) #define UART1_BR ((volatile uint32_t *) 0x80005018) -int uart1_putchar(int c); +void uart1_putc(char c); #define uart1_can_get() (*UR1CON > 0) diff --git a/lib/printf.c b/lib/printf.c index 74b388fb2..46cae36f2 100644 --- a/lib/printf.c +++ b/lib/printf.c @@ -37,7 +37,7 @@ #include #include -#define __putc(x) putchr(x) +#define __putc(x) uart1_putc(x) /** * Structure to hold data to be passed to print function with format. diff --git a/lib/uart1.c b/lib/uart1.c new file mode 100644 index 000000000..3d821b3cd --- /dev/null +++ b/lib/uart1.c @@ -0,0 +1,6 @@ +#include + +void uart1_putc(char c) { + while(*UT1CON == 31); /* wait for there to be room in the buffer */ + *UART1_DATA = c; +} diff --git a/tests/Makefile b/tests/Makefile index a7a79c989..3bb939f1c 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -3,7 +3,7 @@ MC1322X := .. # all off the common objects for each target # a COBJ is made for EACH board and goes the obj_$(BOARD)_board directory # board specific code is OK in these files -COBJS := tests.o +COBJS := tests.o put.o # all of the target programs to build TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ diff --git a/tests/put.c b/tests/put.c new file mode 100644 index 000000000..348da13f0 --- /dev/null +++ b/tests/put.c @@ -0,0 +1,36 @@ +#include +#include + +const uint8_t hex[16]={'0','1','2','3','4','5','6','7', + '8','9','a','b','c','d','e','f'}; + +void putchr(char c) { + while(*UT1CON == 31); /* wait for there to be room in the buffer */ + *UART1_DATA = c; +} + +void putstr(char *s) { + while(s && *s!=0) { + putchr(*s++); + } +} + +void put_hex(uint8_t x) +{ + putchr(hex[x >> 4]); + putchr(hex[x & 15]); +} + +void put_hex16(uint16_t x) +{ + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} + +void put_hex32(uint32_t x) +{ + put_hex((x >> 24) & 0xFF); + put_hex((x >> 16) & 0xFF); + put_hex((x >> 8) & 0xFF); + put_hex((x) & 0xFF); +} diff --git a/tests/put.h b/tests/put.h new file mode 100644 index 000000000..f8826f622 --- /dev/null +++ b/tests/put.h @@ -0,0 +1,10 @@ +#ifndef PUT_H +#define PUT_H + +void putchr(char c); +void putstr(char *s); +void put_hex(uint8_t x); +void put_hex16(uint16_t x); +void put_hex32(uint32_t x); + +#endif diff --git a/tests/tests.c b/tests/tests.c index e1da61cd4..770d67997 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -1,4 +1,6 @@ #include +#include + #include "put.h" #include "tests.h" @@ -21,30 +23,21 @@ void uart1_init(uint16_t inc, uint16_t mod) { } void print_welcome(char* testname) { - putstr("mc1322x-test: "); - putstr(testname); - putstr("\n\r"); - putstr("board: "); -#if (BOARD == redbee-dev) - putstr("redbee-dev"); -#elif (BOARD == redbee-r1) - putstr("redbee-dev"); -#endif - putstr("\n\r"); + printf("mc1322x-test: %s\n\r",testname); + printf("board: %s\n\r", "fix print welcom"); } void dump_regs(uint32_t base, uint32_t len) { volatile uint32_t i; - putstr("base +0 +4 +8 +c +10 +14 +18 +1c \n\r"); + printf("base +0 +4 +8 +c +10 +14 +18 +1c \n\r"); for (i = 0; i < len; i ++) { if ((i & 7) == 0) { - put_hex16(4 * i); + printf("%02x",4 * i); } - putstr(" "); - put_hex32(*mem32(base+(4*i))); + printf(" %08x",*mem32(base+(4*i))); if ((i & 7) == 7) - putstr(NL); + printf(NL); } - putstr(NL); + printf(NL); } From 8abb7baabe63c7035d4ab85e1c203da46bc81cfc Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 3 Mar 2010 08:10:35 -0500 Subject: [PATCH 228/471] add command line option to set flow control mode --- tools/mc1322x-load.pl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/mc1322x-load.pl b/tools/mc1322x-load.pl index 2ff23fd14..2c2517dec 100755 --- a/tools/mc1322x-load.pl +++ b/tools/mc1322x-load.pl @@ -12,12 +12,14 @@ my $second = ''; my $term = '/dev/ttyUSB0'; my $baud = '115200'; my $verbose; +my $rts = 'rts'; GetOptions ('file=s' => \$filename, 'secondfile=s' => \$second, 'terminal=s' => \$term, 'verbose' => \$verbose, 'baud=s' => \$baud, + 'rts=s' => \$rts, ) or die 'bad options'; $| = 1; @@ -44,7 +46,11 @@ $ob->baudrate($baud); $ob->parity('none'); $ob->databits(8); $ob->stopbits(1); -$ob->handshake("rts"); +if($rts eq 'rts') { + $ob->handshake('rts'); +} else { + $ob->handshake('none'); +} $ob->read_const_time(1000); # 1 second per unfulfilled "read" call $ob->rts_active(1); From 3969c56a0fa7873a9efe203f74302e57f6c85fbb Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 3 Mar 2010 08:10:53 -0500 Subject: [PATCH 229/471] remove put from lib --- lib/include/put.h | 10 ---------- lib/put.c | 36 ------------------------------------ 2 files changed, 46 deletions(-) delete mode 100644 lib/include/put.h delete mode 100644 lib/put.c diff --git a/lib/include/put.h b/lib/include/put.h deleted file mode 100644 index f8826f622..000000000 --- a/lib/include/put.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PUT_H -#define PUT_H - -void putchr(char c); -void putstr(char *s); -void put_hex(uint8_t x); -void put_hex16(uint16_t x); -void put_hex32(uint32_t x); - -#endif diff --git a/lib/put.c b/lib/put.c deleted file mode 100644 index 348da13f0..000000000 --- a/lib/put.c +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -const uint8_t hex[16]={'0','1','2','3','4','5','6','7', - '8','9','a','b','c','d','e','f'}; - -void putchr(char c) { - while(*UT1CON == 31); /* wait for there to be room in the buffer */ - *UART1_DATA = c; -} - -void putstr(char *s) { - while(s && *s!=0) { - putchr(*s++); - } -} - -void put_hex(uint8_t x) -{ - putchr(hex[x >> 4]); - putchr(hex[x & 15]); -} - -void put_hex16(uint16_t x) -{ - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} - -void put_hex32(uint32_t x) -{ - put_hex((x >> 24) & 0xFF); - put_hex((x >> 16) & 0xFF); - put_hex((x >> 8) & 0xFF); - put_hex((x) & 0xFF); -} From d4cd92141eb7f08a6e5493bd2f7bd46371711b8e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 3 Mar 2010 13:39:14 -0500 Subject: [PATCH 230/471] convert to printf --- tests/rftest-rx.c | 43 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index d2d0a9a53..99e8cd9ef 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -1,5 +1,6 @@ #include #include +#include #include "tests.h" #include "config.h" @@ -76,65 +77,56 @@ void main(void) { { case(cc_aborted): { - putstr("aborted\n\r"); + printf("aborted\n\r"); ResumeMACASync(); break; } case(cc_not_completed): { - putstr("not completed\n\r"); + printf("not completed\n\r"); ResumeMACASync(); break; } case(cc_timeout): { - putstr("timeout\n\r"); + printf("timeout\n\r"); ResumeMACASync(); break; } case(cc_no_ack): { - putstr("no ack\n\r"); + printf("no ack\n\r"); ResumeMACASync(); break; } case(cc_ext_timeout): { - putstr("ext timeout\n\r"); + printf("ext timeout\n\r"); ResumeMACASync(); break; } case(cc_ext_pnd_timeout): { - putstr("ext pnd timeout\n\r"); + printf("ext pnd timeout\n\r"); ResumeMACASync(); break; } case(cc_success): { -// putstr("success\n\r"); - - putstr("rftest-rx --- " ); - putstr(" maca_getrxlvl: 0x"); - put_hex(*MACA_GETRXLVL); - putstr(" timestamp: 0x"); - put_hex32(maca_timestamp); - putstr("\n\r"); - putstr(" data: 0x"); - put_hex32((uint32_t)data); - putchr(' '); - for(i=0; i<=(*MACA_GETRXLVL-4); i++) { /* fcs+somethingelse is not transferred by DMA */ - put_hex(data[i]); - putchr(' '); - } +// printf("success\n\r"); - putstr("\n\r"); + printf("rftest-rx --- maca_getrxlvl: 0x%02x timestamp: 0x%08x\n\r", maca_getrxlvl, maca_timestamp); + printf(" data: 0x%08x ", (uint32_t)data); + for(i=0; i<=(*MACA_GETRXLVL-4); i++) { /* fcs+somethingelse is not transferred by DMA */ + printf("%02x ", data[i]); + } + printf("\n\r"); toggle_led(); @@ -147,19 +139,18 @@ void main(void) { } default: { - putstr("status: "); - put_hex16(status); + printf("status: %04x\n\r",status); ResumeMACASync(); command_xcvr_rx(); } } } else if (_is_filter_failed_interrupt(maca_irq)) { - putstr("filter failed\n\r"); + printf("filter failed\n\r"); ResumeMACASync(); command_xcvr_rx(); } else if (_is_checksum_failed_interrupt(maca_irq)) { - putstr("crc failed\n\r"); + printf("crc failed\n\r"); ResumeMACASync(); command_xcvr_rx(); } From 664a0588842644266316552359f934f7395a933a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 3 Mar 2010 13:39:22 -0500 Subject: [PATCH 231/471] status is 16-bit --- tests/rftest-tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 9be9d5e4a..6b16a265a 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -163,7 +163,7 @@ void main(void) { } default: { - printf("status: 0x%02x",status); + printf("status: 0x%04x",status); ResumeMACASync(); } From 43b57ea41ae4019e2f01e88087d502e9937cd5e6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 3 Mar 2010 14:07:00 -0500 Subject: [PATCH 232/471] fix board message --- lib/include/utils.h | 3 +++ tests/tests.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/include/utils.h b/lib/include/utils.h index 5f4c79aeb..3f5f10838 100644 --- a/lib/include/utils.h +++ b/lib/include/utils.h @@ -6,6 +6,9 @@ #define CAT2(x, y, z) x##y##z +#define STR(x) #x +#define STR2(x) STR(x) + #define bit(bit) (1 << bit) #define bit_is_set(val, bit) (((val & (1 << bit)) >> bit) == 1) #define clear_bit(val, bit) (val = (val & ~(1 << bit))) diff --git a/tests/tests.c b/tests/tests.c index 770d67997..ad9607554 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -24,7 +24,7 @@ void uart1_init(uint16_t inc, uint16_t mod) { void print_welcome(char* testname) { printf("mc1322x-test: %s\n\r",testname); - printf("board: %s\n\r", "fix print welcom"); + printf("board: %s\n\r", STR2(BOARD)); } void dump_regs(uint32_t base, uint32_t len) { From 80c25e2602402208d9b8377af605359dc32ab15a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 3 Mar 2010 18:46:23 -0500 Subject: [PATCH 233/471] add bitfield macros --- lib/include/utils.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/include/utils.h b/lib/include/utils.h index 3f5f10838..5c985feab 100644 --- a/lib/include/utils.h +++ b/lib/include/utils.h @@ -14,4 +14,10 @@ #define clear_bit(val, bit) (val = (val & ~(1 << bit))) #define set_bit(val, bit) (val = (val | (1 << bit))) +#define ones(num) ( (1<> field) +//#define bitfield(name, length, shift) ( #define #name length #define #name##_MASK bit_mask(length, shift)) +#define bitfield(name, length, shift) ( define #name length ) + #endif /* UTILS_H */ From 02c0442d84fad14605f329583b5a1062088f1fca Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 3 Mar 2010 18:46:39 -0500 Subject: [PATCH 234/471] fill out MACA_CONTROL fields --- lib/include/maca.h | 122 ++++++++++++++++++++++++++++----------------- 1 file changed, 77 insertions(+), 45 deletions(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index e524b4ec4..665b972d3 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -2,17 +2,70 @@ #define _MACA_H_ #include +#include #define MACA_BASE ((volatile uint32_t *) 0x80004000) #define MACA_RESET ((volatile uint32_t *) 0x80004004) #define MACA_RANDOM ((volatile uint32_t *) 0x80004008) -#define MACA_CONTROL ((volatile uint32_t *) 0x8000400c) + +#define MACA_CONTROL ((volatile uint32_t *) 0x8000400c) /* write only, reads as 0 */ + +#define ISM 20 +#define PRECOUNT 16 /* preamble reapeat counter */ +#define PRECOUNT_MASK bit_mask(4,PRECOUNT) +#define RTSO 15 /* reset slot counter */ +#define ROLE 13 /* set if PAN coordinator */ +#define NOFC 12 /* set to disable FCS */ +#define PRM 11 /* set for promiscuous mode */ +#define REL 10 /* 1 for relative, 0 for absolute */ +#define ASAP 9 /* 1 start now, 0 timer start */ +#define BCN 8 /* 1 beacon only, 0 for a */ +#define AUTO 7 /* 1 continuous rx, rx only once */ +#define LFSR 6 /* 1 use polynomial for Turbolink */ +#define TM 5 + +#define MODE 3 +#define MODE_MASK bit_mask(2,MODE) +#define NO_CCA 0 +#define NO_SLOT_CCA 1 +#define SLOT_CCA 2 + +#define SEQUENCE 0 +#define SEQUENCE_MASK bit_mask(3,SEQUENCE) + #define MACA_STATUS ((volatile uint32_t *) 0x80004010) #define MACA_DMARX ((volatile uint32_t *) 0x80004080) #define MACA_DMATX ((volatile uint32_t *) 0x80004084) #define MACA_GETRXLVL ((volatile uint32_t *) 0x80004098) #define MACA_PREAMBLE ((volatile uint32_t *) 0x8000411c) +void reset_maca(void); +void init_phy(void); +void flyback_init(void); +void ResumeMACASync(void); +void radio_init(void); +void radio_off(void); +void radio_on(void); +uint32_t init_from_flash(uint32_t addr); +void set_power(uint8_t power); +void set_channel(uint8_t chan); + +/******************************************************************************/ +/* everything under this comment is messy, needs cleaning, and will */ +/* probably change in the future */ +/******************************************************************************/ + +#define control_pre_count (7<<16) /* preamble reapeat counter */ +#define control_rst_slot (1<<15) /* reset slot counter */ +#define control_role (1<<13) /* set if PAN coordinator */ +#define control_nofc (1<<12) /* set to disable FCS */ +#define control_prm (1<<11) /* set for promiscuous mode */ +#define control_relative (1<<10) /* 1 for relative, 0 for absolute */ +#define control_asap (1<<9) /* 1 start now, 0 timer start */ +#define control_bcn (1<<8) /* 1 beacon only, 0 for a */ +#define control_auto (1<<7) /* 1 continuous rx, rx only once */ +#define control_lfsr (1<<6) /* 1 use polynomial for Turbolink */ + #define gMACA_Clock_DIV_c 95 //rom_base_adr equ 0x00000000 ; rom base address @@ -75,16 +128,6 @@ enum { #define max_rx_ackwnd_normal_mode (0xFFF) -#define control_pre_count (7<<16) /* preamble reapeat counter */ -#define control_rst_slot (1<<15) /* reset slot counter */ -#define control_role (1<<13) /* set if PAN coordinator */ -#define control_nofc (1<<12) /* set to disable FCS */ -#define control_prm (1<<11) /* set for promiscuous mode */ -#define control_relative (1<<10) /* 1 for relative, 0 for absolute */ -#define control_asap (1<<9) /* 1 start now, 0 timer start */ -#define control_bcn (1<<8) /* 1 beacon only, 0 for a */ -#define control_auto (1<<7) /* 1 continuous rx, rx only once */ -#define control_lfsr (1<<6) /* 1 use polynomial for Turbolink */ #define maca_irq_strt (1<<15) /* STRT @@ -290,29 +333,29 @@ typedef union maca_reset_reg_tag #define maca_reset_reg_st ((maca_reset_reg_t)(maca_reset)) -typedef union maca_ctrl_reg_tag -{ - struct - { - uint32_t RESERVED:11; - uint32_t ISM:1; - uint32_t PRE_COUNT:4; - uint32_t RSTO:1; - uint32_t RSV:1; - uint32_t ROLE:1; - uint32_t NOFC:1; - uint32_t PRM:1; - uint32_t rel:1; - uint32_t ASAP:1; - uint32_t BCN:1; - uint32_t AUTO:1; - uint32_t LFSR:1; - uint32_t TM:1; - uint32_t MODE:2; - uint32_t SEQUENCE:3; - } Bits; - uint32_t Reg; -} maca_ctrl_reg_t; +/* typedef union maca_ctrl_reg_tag */ +/* { */ +/* struct */ +/* { */ +/* uint32_t RESERVED:11; */ +/* uint32_t ISM:1; */ +/* uint32_t PRE_COUNT:4; */ +/* uint32_t RSTO:1; */ +/* uint32_t RSV:1; */ +/* uint32_t ROLE:1; */ +/* uint32_t NOFC:1; */ +/* uint32_t PRM:1; */ +/* uint32_t rel:1; */ +/* uint32_t ASAP:1; */ +/* uint32_t BCN:1; */ +/* uint32_t AUTO:1; */ +/* uint32_t LFSR:1; */ +/* uint32_t TM:1; */ +/* uint32_t MODE:2; */ +/* uint32_t SEQUENCE:3; */ +/* } Bits; */ +/* uint32_t Reg; */ +/* } maca_ctrl_reg_t; */ #define maca_control_ism (1<<20) #define maca_control_zigbee (~maca_control_ism) @@ -407,15 +450,4 @@ typedef union maca_maskirq_reg_tag #define MACA_WRITE(reg, src) (reg = src) #define MACA_READ(reg) reg -void reset_maca(void); -void init_phy(void); -void flyback_init(void); -void ResumeMACASync(void); -void radio_init(void); -void radio_off(void); -void radio_on(void); -uint32_t init_from_flash(uint32_t addr); -void set_power(uint8_t power); -void set_channel(uint8_t chan); - #endif // _MACA_H_ From 46e25b463f435ddb1ccfc96037395d2bb095cd3e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 3 Mar 2010 18:47:22 -0500 Subject: [PATCH 235/471] change rf_tests over to using new MACA_CONTROL fields. --- tests/rftest-rx.c | 2 +- tests/rftest-tx.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 99e8cd9ef..ec1e6c231 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -59,7 +59,7 @@ void main(void) { set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ - *MACA_CONTROL = SMAC_MACA_CNTL_INIT_STATE; + *MACA_CONTROL = (1 << PRM) | (NO_CCA << MODE); for(i=0; i Date: Wed, 3 Mar 2010 18:48:29 -0500 Subject: [PATCH 236/471] initial packet error rate test skeleton --- config.mk | 2 +- tests/Makefile | 4 ++- tests/per.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 tests/per.c diff --git a/config.mk b/config.mk index 43e232af1..e44d35fcf 100644 --- a/config.mk +++ b/config.mk @@ -32,7 +32,7 @@ CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -fno-builtin -ffreestanding -isystem \ $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wextra -Werror +CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wextra #-Werror AFLAGS_DEBUG := -Wa,-gstabs AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) diff --git a/tests/Makefile b/tests/Makefile index 3bb939f1c..3c7c8cd5b 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -14,7 +14,9 @@ TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ # these targets are built with space reserved for variables needed by ROM services # this space is initialized with a rom call to rom_data_init -TARGETS_WITH_ROM_VARS := nvm-read nvm-write romimg flasher rftest-rx rftest-tx +TARGETS_WITH_ROM_VARS := nvm-read nvm-write romimg flasher \ + rftest-rx rftest-tx \ + per include $(MC1322X)/Makefile.include diff --git a/tests/per.c b/tests/per.c new file mode 100644 index 000000000..aa0aa78a9 --- /dev/null +++ b/tests/per.c @@ -0,0 +1,82 @@ +#include +#include +#include + +#include "tests.h" +#include "config.h" + +/* This program communicates with itself and determines the packet */ +/* error rate (PER) under a variety of powers and packet sizes */ +/* Each test the packets are sent and received as fast as possible */ + +/* The program first scans on channel 11 and attempts to open a test */ +/* session with a node. After opening a session, the nodes begin the */ +/* test sequence */ + +#define DEBUG_MACA 1 + +typedef struct { + int type; +} packet_t; + +enum STATES { + SCANNING, + MAX_STATE +}; + +enum PACKET_TYPE { + PACKET_PERTEST, + MAX_PACKET_TYPE +}; + +int get_packet(packet_t *p) { return 0; } +void print_packet(packet_t p) { return; } + +void main(void) { + uint32_t state; + packet_t p; + + uart_init(INC,MOD); + + print_welcome("Packet error test"); + + /* standard radio initialization */ + reset_maca(); + radio_init(); + vreg_init(); + flyback_init(); + init_phy(); + + /* trim the reference osc. to 24MHz */ + pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); + + set_power(0x0f); /* 0dbm */ + set_channel(0); /* channel 11 */ + + /* initial radio command */ + /* nop, promiscuous, no cca */ + *MACA_CONTROL = (1 << PRM) | (NO_CCA << MODE); + + state = SCANNING; + while(1) { + + switch(state) { + case SCANNING: + if(get_packet(&p)) { + print_packet(p); + /* if we have a packet */ + /* check if it's a pertest beacon */ + if(p.type == PACKET_PERTEST) { + /* try to start a session */ + } + } + break; + default: + break; + } + + + } + +} + From 0037fd95272b4eec11c4eed63b5f1b560e88864d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 4 Mar 2010 18:51:27 -0500 Subject: [PATCH 237/471] general header updates --- lib/include/crm.h | 38 ++++++++++++++--------------- lib/include/isr.h | 57 ++++++++++++++++++++++++++++++++++++------- lib/include/kbi.h | 19 +++++++++++++++ lib/include/mc1322x.h | 4 +-- 4 files changed, 88 insertions(+), 30 deletions(-) create mode 100644 lib/include/kbi.h diff --git a/lib/include/crm.h b/lib/include/crm.h index 274ae0021..f9ae86396 100644 --- a/lib/include/crm.h +++ b/lib/include/crm.h @@ -46,8 +46,8 @@ #define ROSC_FTUNE 4 /* 4 bits */ #define ROSC_EN 0 -#define ring_osc_on() (set_bit(reg32(CRM_RINGOSC_CNTL),ROSC_EN)) -#define ring_osc_off() (clear_bit(reg32(CRM_RINGOSC_CNTL),ROSC_EN)) +#define ring_osc_on() (set_bit(*CRM_RINGOSC_CNTL,ROSC_EN)) +#define ring_osc_off() (clear_bit(*CRM_RINGOSC_CNTL,ROSC_EN)) #define REF_OSC 24000000ULL /* reference osc. frequency */ #define NOMINAL_RING_OSC_SEC 2000 /* nominal ring osc. frequency */ @@ -57,34 +57,34 @@ #define XTAL32_GAIN 4 /* 2 bits */ #define XTAL32_EN 0 -#define xtal32_on() (set_bit(reg32(CRM_XTAL32_CNTL),XTAL32_EN)) -#define xtal32_off() (clear_bit(reg32(CRM_XTAL32_CNTL),XTAL32_EN)) -#define xtal32_exists() (set_bit(reg32(CRM_SYS_CNTL),XTAL32_EXISTS)) +#define xtal32_on() (set_bit(*CRM_XTAL32_CNTL,XTAL32_EN)) +#define xtal32_off() (clear_bit(*CRM_XTAL32_CNTL,XTAL32_EN)) +#define xtal32_exists() (set_bit(*CRM_SYS_CNTL,XTAL32_EXISTS)) /* enable external wake-ups on kbi 4-7 */ /* see kbi.h for other kbi specific macros */ -#define enable_ext_wu(kbi) (set_bit(reg32(CRM_WU_CNTL),(EXT_WU_EN+kbi-4))) -#define disable_ext_wu(kbi) (clear_bit(reg32(CRM_WU_CNTL),(EXT_WU_EN+kbi-4))) +#define enable_ext_wu(kbi) (set_bit(*CRM_WU_CNTL,(EXT_WU_EN+kbi-4))) +#define disable_ext_wu(kbi) (clear_bit(*CRM_WU_CNTL,(EXT_WU_EN+kbi-4))) -#define is_ext_wu_evt(kbi) (bit_is_set(reg32(CRM_STATUS),(EXT_WU_EVT+kbi-4))) -#define clear_ext_wu_evt(kbi) (set_bit(reg32(CRM_STATUS),(EXT_WU_EVT+kbi-4))) /* r1wc bit */ +#define is_ext_wu_evt(kbi) (bit_is_set(*CRM_STATUS,(EXT_WU_EVT+kbi-4))) +#define clear_ext_wu_evt(kbi) (set_bit(*CRM_STATUS,(EXT_WU_EVT+kbi-4))) /* r1wc bit */ /* enable wake-up timer */ -#define enable_timer_wu_irq() ((set_bit(reg32(CRM_WU_CNTL),(TIMER_WU_IEN)))) -#define disable_timer_wu_irq() ((clear_bit(reg32(CRM_WU_CNTL),(TIMER_WU_IEN)))) +#define enable_timer_wu_irq() ((set_bit(*CRM_WU_CNTL,(TIMER_WU_IEN)))) +#define disable_timer_wu_irq() ((clear_bit(*CRM_WU_CNTL,(TIMER_WU_IEN)))) -#define enable_timer_wu() ((set_bit(reg32(CRM_WU_CNTL),(TIMER_WU_EN)))) -#define disable_timer_wu() ((clear_bit(reg32(CRM_WU_CNTL),(TIMER_WU_EN)))) +#define enable_timer_wu() ((set_bit(*CRM_WU_CNTL,(TIMER_WU_EN)))) +#define disable_timer_wu() ((clear_bit(*CRM_WU_CNTL,(TIMER_WU_EN)))) /* enable wake-up from RTC compare */ -#define enable_rtc_wu_irq() (set_bit(reg32(CRM_WU_CNTL),RTC_WU_IEN)) -#define disable_rtc_wu_irq() (clear_bit(reg32(CRM_WU_CNTL),RTC_WU_IEN)) +#define enable_rtc_wu_irq() (set_bit(*CRM_WU_CNTL,RTC_WU_IEN)) +#define disable_rtc_wu_irq() (clear_bit(*CRM_WU_CNTL,RTC_WU_IEN)) -#define enable_rtc_wu() ((set_bit(reg32(CRM_WU_CNTL),(RTC_WU_EN)))) -#define disable_rtc_wu() ((clear_bit(reg32(CRM_WU_CNTL),(RTC_WU_EN)))) +#define enable_rtc_wu() ((set_bit(*CRM_WU_CNTL,(RTC_WU_EN)))) +#define disable_rtc_wu() ((clear_bit(*CRM_WU_CNTL,(RTC_WU_EN)))) -#define clear_rtc_wu_evt() (set_bit(reg32(CRM_STATUS),RTC_WU_EVT)) -#define rtc_wu_evt() (bit_is_set(reg32(CRM_STATUS),RTC_WU_EVT)) +#define clear_rtc_wu_evt() (set_bit(*CRM_STATUS,RTC_WU_EVT)) +#define rtc_wu_evt() (bit_is_set(*CRM_STATUS,RTC_WU_EVT)) #define SLEEP_MODE_HIBERNATE bit(0) #define SLEEP_MODE_DOZE bit(1) diff --git a/lib/include/isr.h b/lib/include/isr.h index e629f5b2f..554410b96 100644 --- a/lib/include/isr.h +++ b/lib/include/isr.h @@ -1,18 +1,57 @@ #ifndef ISR_H #define ISR_H -#define INTBASE (0x80020000) -#define INTENNUM_OFF (0x8) -#define INTDISNUM_OFF (0xc) -#define INTSRC_OFF (0x30) +#define INTBASE (0x80020000) +#define INTCNTL_OFF (0x0) +#define INTENNUM_OFF (0x8) +#define INTDISNUM_OFF (0xC) +#define INTENABLE_OFF (0x10) +#define INTSRC_OFF (0x30) +#define NIPEND_OFF (0x38) -#define INTENNUM INTBASE + INTENNUM_OFF -#define INTDISNUM INTBASE + INTDISNUM_OFF -#define INTSRC INTBASE + INTSRC_OFF +#define INTCNTL ((volatile uint32_t *) (INTBASE + INTCNTL_OFF)) +#define INTENNUM ((volatile uint32_t *) (INTBASE + INTENNUM_OFF)) +#define INTDISNUM ((volatile uint32_t *) (INTBASE + INTDISNUM_OFF)) +#define INTENABLE ((volatile uint32_t *) (INTBASE + INTENABLE_OFF)) +#define INTSRC ((volatile uint32_t *) (INTBASE + INTSRC_OFF)) +#define NIPEND ((volatile uint32_t *) (INTBASE + NIPEND_OFF)) -#define enable_tmr_irq() *(volatile uint32_t *)(INTENNUM) = 5; +enum interrupt_nums { + INT_NUM_ASM = 0, + INT_NUM_UART1, + INT_NUM_UART2, + INT_NUM_CRM, + INT_NUM_I2C, + INT_NUM_TMR, + INT_NUM_SPIF, + INT_NUM_MACA, + INT_NUM_SSI, + INT_NUM_ADC, + INT_NUM_SPI, +}; + +#define global_irq_disable() (set_bit(*INTCNTL,20)) +#define global_irq_enable() (clear_bit(*INTCNTL,20)) + +#define enable_irq(irq) (*INTENNUM = INT_NUM_##irq) +#define disable_irq(irq) (*INTDISNUM = INT_NUM_##irq) + + +extern void tmr0_isr(void) __attribute__((weak)); +extern void tmr1_isr(void) __attribute__((weak)); +extern void tmr2_isr(void) __attribute__((weak)); +extern void tmr3_isr(void) __attribute__((weak)); + +extern void rtc_isr(void) __attribute__((weak)); +extern void kbi4_isr(void) __attribute__((weak)); +extern void kbi5_isr(void) __attribute__((weak)); +extern void kbi6_isr(void) __attribute__((weak)); +extern void kbi7_isr(void) __attribute__((weak)); + +extern void uart1_isr(void) __attribute__((weak)); + +extern void maca_isr(void) __attribute__((weak)); -extern void tmr_isr(void) __attribute__((weak)); #endif diff --git a/lib/include/kbi.h b/lib/include/kbi.h new file mode 100644 index 000000000..85b35c724 --- /dev/null +++ b/lib/include/kbi.h @@ -0,0 +1,19 @@ +#ifndef KBI_H +#define KBI_H + +#define enable_irq_kbi(k) (set_bit(*CRM_WU_CNTL,(EXT_WU_IEN+k-4))) +#define disable_irq_kbi(k) (clear_bit(*CRM_WU_CNTL,(EXT_WU_IEN+k-4))) + +#define kbi_evnt(k) (bit_is_set(*CRM_STATUS,(EXT_WU_EVT+k-4))) + +#define kbi_edge(k) (set_bit(*CRM_WU_CNTL,(EXT_WU_EDGE+k-4))) +#define kbi_level(k) (clear_bit(*CRM_WU_CNTL,(EXT_WU_EDGE+k-4))) + +#define kbi_pol_neg(k) (clear_bit(*CRM_WU_CNTL,(EXT_WU_POL+k-4))) +#define kbi_pol_pos(k) (set_bit(*CRM_WU_CNTL,(EXT_WU_POL+k-4))) + +/* you have to clear these events by writing a one to them */ + +#define clear_kbi_evnt(k) (set_bit(*CRM_STATUS,(EXT_WU_EVT+k-4))) + +#endif diff --git a/lib/include/mc1322x.h b/lib/include/mc1322x.h index b3580020e..61ed3c71a 100644 --- a/lib/include/mc1322x.h +++ b/lib/include/mc1322x.h @@ -7,10 +7,10 @@ #include "crm.h" #include "nvm.h" #include "tmr.h" +#include "kbi.h" #include "maca.h" +#include "packet.h" #include "uart1.h" #include "utils.h" -#include "put.h" /* this is a temp. lib */ - #endif From 20f6a749d14f53a7e93b7e6d77d22fdebbf50091 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 4 Mar 2010 18:52:04 -0500 Subject: [PATCH 238/471] isr updates --- src/isr.c | 31 ++++++++++++++++++++++++++++--- tests/tmr-ints.c | 7 ++++--- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/isr.c b/src/isr.c index 1ee196328..2cedfd59a 100644 --- a/src/isr.c +++ b/src/isr.c @@ -5,7 +5,32 @@ __attribute__ ((section (".irq"))) __attribute__ ((interrupt("IRQ"))) void irq(void) { - if(tmr_isr != 0) { - tmr_isr(); - } + uint32_t pending; + + while (pending = *NIPEND) { + + if(bit_is_set(pending, INT_NUM_TMR)) { + /* dispatch to individual timer isrs if they exist */ + /* timer isrs are responsible for determining if they + * caused an interrupt */ + /* and clearing their own interrupt flags */ + if(tmr0_isr != 0) { tmr0_isr(); } + if(tmr1_isr != 0) { tmr1_isr(); } + if(tmr2_isr != 0) { tmr2_isr(); } + if(tmr3_isr != 0) { tmr3_isr(); } + } + if(bit_is_set(pending, INT_NUM_MACA)) { + if(maca_isr != 0) { maca_isr(); } + } + if(bit_is_set(pending, INT_NUM_UART1)) { + if(uart1_isr != 0) { uart1_isr(); } + } + if(bit_is_set(pending, INT_NUM_CRM)) { + if(rtc_wu_evt() && (rtc_isr != 0)) { rtc_isr(); } + if(kbi_evnt(4) && (kbi4_isr != 0)) { kbi4_isr(); } + if(kbi_evnt(5) && (kbi5_isr != 0)) { kbi5_isr(); } + if(kbi_evnt(6) && (kbi6_isr != 0)) { kbi6_isr(); } + if(kbi_evnt(7) && (kbi7_isr != 0)) { kbi7_isr(); } + } + } } diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index d33d82d4d..29d5b406d 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -21,7 +21,7 @@ void toggle_led(void) { } } -void tmr_isr(void) { +void tmr0_isr(void) { toggle_led(); *TMR0_SCTRL = 0; @@ -58,9 +58,10 @@ void main(void) { led_on(); - enable_tmr_irq(); + enable_irq(TMR); - while(1) { + while(1) { /* sit here and let the interrupts do the work */ + continue; }; } From b92dec6ee8de6fa71b225128963b8bb96a04bba5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 4 Mar 2010 18:52:22 -0500 Subject: [PATCH 239/471] disable thumb for now (gdb isn't working with thumb) --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index e44d35fcf..7506f0cf1 100644 --- a/config.mk +++ b/config.mk @@ -1,7 +1,7 @@ PLATFORM_LDFLAGS = PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -ffunction-sections -msoft-float -Wcast-align -Wall PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mthumb-interwork -THUMB_FLAGS=-mthumb -mcallee-super-interworking +THUMB_FLAGS= #-mthumb -mcallee-super-interworking ######################################################################### From 5bda57ed39b41df2434cf666a66a98659284391d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 4 Mar 2010 18:52:42 -0500 Subject: [PATCH 240/471] progress on maca overhaul --- lib/include/maca.h | 371 ++++++++++++++++++++++----------------------- lib/maca.c | 307 +++++++++++++++++++++++++++++++++---- tests/per.c | 92 +++++++++-- 3 files changed, 535 insertions(+), 235 deletions(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index 665b972d3..c6fe8e438 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -1,15 +1,16 @@ #ifndef _MACA_H_ #define _MACA_H_ +#include #include #include -#define MACA_BASE ((volatile uint32_t *) 0x80004000) -#define MACA_RESET ((volatile uint32_t *) 0x80004004) -#define MACA_RANDOM ((volatile uint32_t *) 0x80004008) - -#define MACA_CONTROL ((volatile uint32_t *) 0x8000400c) /* write only, reads as 0 */ +#define MACA_BASE (0x80004000) +#define MACA_RESET ((volatile uint32_t *) (MACA_BASE+0x04)) +#define MACA_RANDOM ((volatile uint32_t *) (MACA_BASE+0x08)) +#define MACA_CONTROL ((volatile uint32_t *) (MACA_BASE+0x0c)) +/* MACA_CONTROL bits and fields */ #define ISM 20 #define PRECOUNT 16 /* preamble reapeat counter */ #define PRECOUNT_MASK bit_mask(4,PRECOUNT) @@ -32,12 +33,78 @@ #define SEQUENCE 0 #define SEQUENCE_MASK bit_mask(3,SEQUENCE) +/* end of MACA_CONTROL bits and fields */ -#define MACA_STATUS ((volatile uint32_t *) 0x80004010) -#define MACA_DMARX ((volatile uint32_t *) 0x80004080) -#define MACA_DMATX ((volatile uint32_t *) 0x80004084) -#define MACA_GETRXLVL ((volatile uint32_t *) 0x80004098) -#define MACA_PREAMBLE ((volatile uint32_t *) 0x8000411c) +#define MACA_STATUS ((volatile uint32_t *) (MACA_BASE+0x10)) +/* MACA_STATUS bits and fields */ +#define STATUS_TIMEOUT 15 +#define CRC 14 +#define BUSY 13 +#define OVR 12 +#define CODE 0 +#define CODE_MASK bit_mask(4,CODE) +/* status codes */ +#define SUCCESS 0 +#define CODE_TIMEOUT 1 +#define CHANNEL_BUSY 2 +#define CRC_FAILED 3 +#define ABORTED 4 +#define NO_ACK 5 +#define NO_DATA 6 +#define LATE_START 7 +#define EXT_TIMEOUT 8 +#define EXT_PND_TIMEOUT 9 +#define PLL_UNLOCK 12 +#define EXTERNAL_ABORT 13 +#define NOT_COMPLETED 14 +#define DMA_BUS_ERROR 15 +/* end of MACA_CONTROL bits and fields */ + +#define MACA_FRMPND ((volatile uint32_t *) (MACA_BASE+0x14)) +#define MACA_TMREN ((volatile uint32_t *) (MACA_BASE+0x40)) +#define MACA_TMRDIS ((volatile uint32_t *) (MACA_BASE+0x44)) +#define MACA_CLK ((volatile uint32_t *) (MACA_BASE+0x48)) +#define MACA_STARTCLK ((volatile uint32_t *) (MACA_BASE+0x4c)) +#define MACA_CPLCLK ((volatile uint32_t *) (MACA_BASE+0x50)) +#define MACA_SFTCLK ((volatile uint32_t *) (MACA_BASE+0x54)) +#define MACA_CLKOFFSET ((volatile uint32_t *) (MACA_BASE+0x58)) +#define MACA_RELCLK ((volatile uint32_t *) (MACA_BASE+0x5c)) +#define MACA_CPLTIM ((volatile uint32_t *) (MACA_BASE+0x60)) +#define MACA_SLOTOFFSET ((volatile uint32_t *) (MACA_BASE+0x64)) +#define MACA_TIMESTAMP ((volatile uint32_t *) (MACA_BASE+0x68)) +#define MACA_DMARX ((volatile uint32_t *) (MACA_BASE+0x80)) +#define MACA_DMATX ((volatile uint32_t *) (MACA_BASE+0x84)) +#define MACA_DMAPOLL ((volatile uint32_t *) (MACA_BASE+0x88)) +#define MACA_TXLEN ((volatile uint32_t *) (MACA_BASE+0x8c)) +#define MACA_TXSEQNR ((volatile uint32_t *) (MACA_BASE+0x90)) +#define MACA_SETRXLVL ((volatile uint32_t *) (MACA_BASE+0x94)) +#define MACA_GETRXLVL ((volatile uint32_t *) (MACA_BASE+0x98)) +#define MACA_IRQ ((volatile uint32_t *) (MACA_BASE+0xc0)) +#define MACA_CLRIRQ ((volatile uint32_t *) (MACA_BASE+0xc4)) +#define MACA_SETIRQ ((volatile uint32_t *) (MACA_BASE+0xc8)) +#define MACA_MASKIRQ ((volatile uint32_t *) (MACA_BASE+0xcc)) +#define MACA_MACPANID ((volatile uint32_t *) (MACA_BASE+0x100)) +#define MACA_MAC16ADDR ((volatile uint32_t *) (MACA_BASE+0x104)) +#define MACA_MAC64HI ((volatile uint32_t *) (MACA_BASE+0x108)) +#define MACA_MAC64LO ((volatile uint32_t *) (MACA_BASE+0x10c)) +#define MACA_FLTREJ ((volatile uint32_t *) (MACA_BASE+0x110)) +#define MACA_CLKDIV ((volatile uint32_t *) (MACA_BASE+0x114)) +#define MACA_WARMUP ((volatile uint32_t *) (MACA_BASE+0x118)) +#define MACA_PREAMBLE ((volatile uint32_t *) (MACA_BASE+0x11c)) +#define MACA_WHITESEED ((volatile uint32_t *) (MACA_BASE+0x120)) +#define MACA_FRAMESYNC0 ((volatile uint32_t *) (MACA_BASE+0x124)) +#define MACA_FRAMESYNC1 ((volatile uint32_t *) (MACA_BASE+0x128)) +#define MACA_TXACKDELAY ((volatile uint32_t *) (MACA_BASE+0x140)) +#define MACA_RXACKDELAY ((volatile uint32_t *) (MACA_BASE+0x144)) +#define MACA_EOFDELAY ((volatile uint32_t *) (MACA_BASE+0x148)) +#define MACA_CCADELAY ((volatile uint32_t *) (MACA_BASE+0x14c)) +#define MACA_RXEND ((volatile uint32_t *) (MACA_BASE+0x150)) +#define MACA_TXCCADELAY ((volatile uint32_t *) (MACA_BASE+0x154)) +#define MACA_KEY3 ((volatile uint32_t *) (MACA_BASE+0x158)) +#define MACA_KEY2 ((volatile uint32_t *) (MACA_BASE+0x15c)) +#define MACA_KEY1 ((volatile uint32_t *) (MACA_BASE+0x160)) +#define MACA_KEY0 ((volatile uint32_t *) (MACA_BASE+0x164)) +#define MACA_OPTIONS ((volatile uint32_t *) (MACA_BASE+0x180)) void reset_maca(void); void init_phy(void); @@ -50,6 +117,12 @@ uint32_t init_from_flash(uint32_t addr); void set_power(uint8_t power); void set_channel(uint8_t chan); +void tx_packet(volatile packet_t *p); +volatile packet_t* rx_packet(void); +volatile packet_t* get_free_packet(void); +void free_packet(volatile packet_t *p); +void free_all_packets(void); + /******************************************************************************/ /* everything under this comment is messy, needs cleaning, and will */ /* probably change in the future */ @@ -113,143 +186,6 @@ enum { control_seq_cca = 6, control_seq_ed = 7 }; - -#define maca_status_cc_mask (0x0F) - -#define maca_reset_rst (1<<0) -#define maca_reset_cln_on (1<<1) - -#define maca_frmpnd_data_pending (1<<0) -#define maca_frmpnd_no_data_pending (0x00) - -#define maca_txlen_max_rxlen (127<<16) - -#define max_rx_ackwnd_slotted_mode (0xFFF<<16) -#define max_rx_ackwnd_normal_mode (0xFFF) - - - -#define maca_irq_strt (1<<15) /* - STRT - Bit 15 - Action Started Interrupt—An auto-sequence is started, either - immediately or by timer trigger. - 1 = Clear interrupt source - 0 = Leave source untouched - */ -#define maca_irq_sync (1<<14) /* - SYNC - Bit 14 - Sync Detected Interrupt—The modem has detected the beginning - of a new packet - 1 = Clear interrupt source - 0 = Leave source untouched - */ -#define maca_irq_cm (1<<13) /* - CM - Bit 13 - Complete Clock Interrupt—The complete clock has generated a - trigger. - 1 = Clear interrupt source - 0 = Leave source untouched - */ -#define maca_irq_crc (1<<12) /* - CRC - Bit 12 - Checksum Failed Interrupt—The checksum failed for the received - packet. - 1 = Clear interrupt source - 0 = Leave source untouched - */ -#define maca_irq_flt (1<<11) /* - FLT - Bit 11 - Filter Failed Interrupt—The receive header filter failed. 1 = Clear interrupt source - 0 = Leave source untouched - SFT - Bit 10 - Soft Complete Clock Interrupt—The soft complete clock has - generated a trigger. - 1 = Clear interrupt source - 0 = Leave source untouched - */ -#define maca_irq_sftclk (1<<10) - -#define maca_irq_lvl (1<<9) /* - LVL - Bit 9 - FIFO Level interrupt—The receive FIFO level is reached or - exceeded. - 1 = Clear interrupt source - 0 = Leave source untouched - Bit 8-5 Reserved bits—Read as zero and written with zero for future - compatibility. N/A - */ -#define maca_irq_rst (1<<4) /* - RST - Bit 4 - Reset Interrupt—A non maskable reset interrupt detected (TBD!!!) 1 = Clear interrupt source - 0 = Leave source untouched - WU - Bit 3 - Wake-up Interrupt—Low power mode has been exited (TBD in - connection with CCM module). - 1 = Clear interrupt source - 0 = Leave source untouched - */ -#define maca_irq_wu (1<<3) - -#define maca_irq_di (1<<2) /* - DI - Bit 2 - Data Indication Interrupt—During receive, a packet has been - successfully received. - 1 = Clear interrupt source - 0 = Leave source untouched - */ -#define maca_irq_poll (1<<1) /* - POLL - Bit 1 - Poll Indication Interrupt—Issued when data request received (and - before ACK transmitted). MCU may then set MACA_FRMPND and - prepare fast response. TBD: Shall this be skipped if - MACA_FRMPND is clear? - 1 = Clear interrupt source - 0 = Leave source untouched - */ -#define maca_irq_acpl (1<<0) /* - ACPL - Action Complete Interrupt—Marks the completion of a complete - auto-sequence. - 1 = Clear interrupt source - 0 = Leave source untouched - */ - - -#define maca_start_clk (1<<0)/* - TMREN & TMRDIS enable/disable start clock - */ - -#define maca_cpl_clk (1<<1)/* - TMREN & TMRDIS enable/disable complete clock - */ - -#define maca_soft_clk (1<<2)/* - TMREN & TMRDIS enable/disable soft complete clock - */ - -#define maca_abort_start_clk (1<<3)/* - TMRDIS abort start clock - */ - -#define maca_abort_cpl_clk (1<<4)/* - TMRDIS abort complete clock - */ - -#define maca_abort_soft_clk (1<<5)/* - TMRDIS abort soft complete clock - */ - #define maca_version (*((volatile uint32_t *)(0x80004000))) #define maca_reset (*((volatile uint32_t *)(0x80004004))) @@ -378,24 +314,6 @@ typedef union maca_reset_reg_tag #define MACA_CTRL_MODE_NON_SLOTTED (1) #define MACA_CTRL_MODE_SLOTTED (2) - -typedef union maca_status_reg_tag -{ - struct - { - uint32_t RESERVED:16; - uint32_t TO:1; - uint32_t CRC:1; - uint32_t BUSY:1; - uint32_t OVR:1; - uint32_t zigbee:1; - uint32_t :7; - uint32_t COMPLETE_CODE:4; - } Bits; - uint32_t Reg; -} maca_status_reg_t; - - typedef enum maca_freq_chann_tag { SMAC_CHANN_11 = 0, @@ -418,32 +336,107 @@ typedef enum maca_freq_chann_tag } maca_freq_chann_t; -typedef union maca_maskirq_reg_tag -{ - struct - { - uint32_t RESERVED1:16; - uint32_t STRT:1; - uint32_t SYNC:1; - uint32_t CM:1; - uint32_t CRC:1; - uint32_t FLT:1; - uint32_t SFT:1; - uint32_t LVL:1; - uint32_t RESERVED0:4; - uint32_t NOT_USED1:1; - uint32_t NOT_USED0:1; - uint32_t DI:1; - uint32_t POLL:1; - uint32_t ACPL:1; - } Bits; - uint32_t Reg; -} maca_maskirq_reg_t; +/* Sequence complete codes */ +enum maca_complete_code { + maca_cc_success = 0, + maca_cc_timeout = 1, + maca_cc_channel_busy = 2, + maca_cc_crc_fail = 3, + maca_cc_aborted = 4, + maca_cc_no_ack = 5, + maca_cc_no_data = 6, + maca_cc_late_start = 7, + maca_cc_ext_timeout = 8, + maca_cc_ext_pnd_timeout = 9, + maca_cc_nc1 = 10, + maca_cc_nc2 = 11, + maca_cc_nc3 = 12, + maca_cc_cc_external_abort= 13, + maca_cc_not_completed = 14, + maca_cc_bus_error = 15 +}; +/* control sequence codes */ +enum maca_ctrl_seq { + maca_ctrl_seq_nop = 0, + maca_ctrl_seq_abort = 1, + maca_ctrl_seq_wait = 2, + maca_ctrl_seq_tx = 3, + maca_ctrl_seq_rx = 4, + maca_ctrl_seq_txpoll = 5, + maca_ctrl_seq_cca = 6, + maca_ctrl_seq_ed = 7 +}; -#define _is_action_complete_interrupt(x) (0 != (maca_irq_acpl & x)) -#define _is_filter_failed_interrupt(x) (0 != (maca_irq_flt & x)) -#define _is_checksum_failed_interrupt(x) (0 != (maca_irq_crc & x)) +/* transmission modes */ +enum maca_ctrl_modes { + maca_ctrl_mode_no_cca = 0, + maca_ctrl_mode_non_slotted_csma_ca = 1, + maca_ctrl_mode_slotted_csma_ca = 2, +}; + +/* MACA_CONTROL bits */ +enum maca_ctrl_bits { + maca_ctrl_seq = 0, /* 3 bits */ + maca_ctrl_mode = 3, /* 2 bits */ + maca_ctrl_tm = 5, + maca_ctrl_lfsr = 6, + maca_ctrl_auto = 7, + maca_ctrl_bcn = 8, + maca_ctrl_asap = 9, + maca_ctrl_rel = 10, + maca_ctrl_prm = 11, + maca_ctrl_nofc = 12, + maca_ctrl_role = 13, + /* 14 reserved */ + maca_ctrl_rsto = 15, + maca_ctrl_pre_count = 16, /* 4 bits */ + maca_ctrl_ism = 20, +}; + +/* MACA_IRQ bits */ +enum maca_irqs { + maca_irq_acpl = 0, + maca_irq_poll = 1, + maca_irq_di = 2, + maca_irq_wu = 3, + maca_irq_rst = 4, + maca_irq_lvl = 9, + maca_irq_sftclk = 10, + maca_irq_flt = 11, + maca_irq_crc = 12, + maca_irq_cm = 13, + maca_irq_sync = 14, + maca_irq_strt = 15, +}; + +/* MACA_RESET bits */ +enum maca_reset_bits { + maca_reset_rst = 0, + maca_reset_clkon = 1, +}; + +/* MACA_TMREN bits */ +enum maca_tmren_bits { + maca_tmren_strt = 0, + maca_tmren_cpl = 1, + maca_tmren_sft = 2, +}; + +enum maca_status_bits { + maca_status_ovr = 12, + maca_status_busy = 13, + maca_status_crc = 14, + maca_status_to = 15, +}; + +#define action_complete_irq() bit_is_set(*MACA_IRQ,maca_irq_acpl) +#define filter_failed_irq() bit_is_set(*MACA_IRQ,maca_irq_flt) +#define checksum_failed_irq() bit_is_set(*MACA_IRQ,maca_irq_crc) +#define data_indication_irq() bit_is_set(*MACA_IRQ,maca_irq_di) + +#define status_is_not_completed() ((*MACA_STATUS & 0xffff) == maca_cc_not_completed) +#define status_is_success() ((*MACA_STATUS & 0xffff) == maca_cc_success) #define SMAC_MACA_CNTL_INIT_STATE ( control_prm | control_nofc | control_mode_non_slotted ) diff --git a/lib/maca.c b/lib/maca.c index 72292eac8..eb4f22f94 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -10,50 +10,289 @@ #define PRINTF(...) #endif +#ifndef NUM_PACKETS +#define NUM_PACKETS 8 +#endif + +#define MACA_CLOCK_DIV 95 + #define reg(x) (*(volatile uint32_t *)(x)) +static volatile packet_t packet_pool[NUM_PACKETS]; +static volatile packet_t *free_head, *rx_head, *rx_end, *tx_head, *tx_end, *dma_tx, *dma_rx = 0; + +enum posts { + TX, + RX, + MAX_POST, +}; +static volatile uint8_t last_post = MAX_POST; + +/* public packet routines */ +/* heads are to the right */ +/* ends are to the left */ +void free_packet(volatile packet_t *p) { + p->length = 0; + p->left = free_head; p->right = 0; + free_head = p; + return; +} + +volatile packet_t* get_free_packet(void) { + volatile packet_t *p; + p = free_head; + if( p != 0 ) { + free_head = p->left; + free_head->right = 0; + } + return p; +} + +volatile packet_t* rx_packet(void) { + volatile packet_t *p; + p = rx_head; + if( p != 0 ) { + rx_head = p->left; + rx_head->right = 0; + } + return p; +} + +void tx_packet(volatile packet_t *p) { + tx_end->left = p; + p->right = tx_end; + tx_end = p; tx_end->left = 0; + if(tx_head == 0) { tx_head = tx_end; } + if(get_field(*MACA_STATUS,CODE) != NOT_COMPLETED) { post_tx(); } + return; +} + +void free_all_packets(void) { + volatile int i; + free_head = 0; + for(i=0; ileft; + free_packet(p); + return; +} + +void add_to_rx(packet_t *p) { + rx_end->left = p; + p->right = rx_end; + rx_end = p; rx_end->left = 0; + return; +} + +void post_receive(void) { + /* this sets the rxlen field */ + /* this is undocumented but very important */ + /* you will not receive anything without setting it */ + last_post = RX; + *MACA_TXLEN = (MAX_PACKET_SIZE << 16); + if(dma_rx == 0) { + dma_rx = get_free_packet(); + if (dma_rx == 0) + printf("out of packet buffers\n"); + } + *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); + /* with timeout */ + *MACA_SFTCLK = *MACA_CLK - 1; + *MACA_TMREN = (1 << maca_tmren_sft); + /* start the receive sequence */ + *MACA_CONTROL = ( (1 << maca_ctrl_asap) | + (1 << maca_ctrl_auto) | + (1 << maca_ctrl_prm) | + (maca_ctrl_seq_rx)); +} + +void post_tx(void) { + /* set dma tx pointer to the payload */ + /* and set the tx len */ + last_post = TX; + dma_tx = tx_head; + *MACA_TXLEN = (uint32_t)(dma_tx->length + 2); + *MACA_DMATX = (uint32_t)&(dma_tx->data[0]); + dma_rx = get_free_packet(); + *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); + *MACA_TMREN = 0; + /* do the transmit */ + *MACA_CONTROL = ( (1 << maca_ctrl_prm) | + (maca_ctrl_mode_no_cca << maca_ctrl_mode) | + (1 << maca_ctrl_asap) | + (maca_ctrl_seq_tx)); +} + + +static void decode_status(int status) { + switch(status) + { + case maca_cc_aborted: + { + PRINTF("maca: aborted\n\r"); + ResumeMACASync(); + break; + + } + case maca_cc_not_completed: + { +// PRINTF("maca: not completed\n\r"); + ResumeMACASync(); + break; + + } + case maca_cc_timeout: + { + PRINTF("maca: timeout\n\r"); + ResumeMACASync(); + break; + + } + case maca_cc_no_ack: + { + PRINTF("maca: no ack\n\r"); + ResumeMACASync(); + break; + + } + case maca_cc_ext_timeout: + { +// PRINTF("maca: ext timeout\n\r"); + ResumeMACASync(); + break; + + } + case maca_cc_ext_pnd_timeout: + { + PRINTF("maca: ext pnd timeout\n\r"); + ResumeMACASync(); + break; + } + case maca_cc_success: + { + //PRINTF("maca: success\n\r"); + break; + } + default: + { + PRINTF("status: %x", status); + ResumeMACASync(); + + } + } +} + +void maca_isr(void) { + int i, status; + struct packet_t *packet; + + status = *MACA_STATUS; + + if (data_indication_irq()) { + *MACA_CLRIRQ = (1 << maca_irq_di); + dma_rx->length = *MACA_GETRXLVL - 2; + PRINTF("data ind %x %d\n", dma_rx, dma_rx->length); + add_to_rx(dma_rx); + dma_rx = 0; + } + if (filter_failed_irq()) { + PRINTF("filter failed\n"); + ResumeMACASync(); + *MACA_CLRIRQ = (1 << maca_irq_flt); + } + if (checksum_failed_irq()) { + PRINTF("checksum failed\n"); + ResumeMACASync(); + *MACA_CLRIRQ = (1 << maca_irq_crc); + } + if(action_complete_irq()) { + PRINTF("action complete %d\n", get_field(*MACA_CONTROL,SEQUENCE)); + if(last_post == TX) { + free_packet(dma_tx); + } + + *MACA_CLRIRQ = (1 << maca_irq_acpl); + status &= 0x0000ffff; + decode_status(status); + } + if (bit_is_set(status, maca_status_ovr)) + PRINTF("ISR overrun\n"); + if (bit_is_set(status, maca_status_busy)) + PRINTF("ISR busy\n"); + if (bit_is_set(status, maca_status_crc)) + PRINTF("ISR crc\n"); + if (bit_is_set(status, maca_status_to)) + PRINTF("ISR timeout\n"); + + i = *MACA_IRQ; + if (i != 0) + PRINTF("MACA IRQ %x\n", i); + + if(tx_head != 0) { + post_tx(); + } else { + post_receive(); + } +} + + static uint8_t ram_values[4]; + void init_phy(void) { volatile uint32_t cnt; - - maca_reset = maca_reset_rst; - - for(cnt=0; cnt < 100; cnt++); - - maca_reset = maca_reset_cln_on; - maca_control = control_seq_nop; -#define DELAY 400000 - for(cnt=0; cnt < DELAY; cnt++); - maca_tmren = maca_start_clk | maca_cpl_clk; - maca_divider = gMACA_Clock_DIV_c; - maca_warmup = 0x00180012; - maca_eofdelay = 0x00000004; - maca_ccadelay = 0x001a0022; - maca_txccadelay = 0x00000025; - maca_framesync = 0x000000A7; - maca_clk = 0x00000008; -// maca_maskirq = 0; //(maca_irq_cm | maca_irq_acpl | maca_irq_rst | maca_irq_di | maca_irq_crc | maca_irq_flt ); - maca_maskirq = (maca_irq_rst | maca_irq_acpl | maca_irq_cm | maca_irq_flt | maca_irq_crc); - maca_slotoffset = 0x00350000; + *MACA_RESET = (1 << maca_reset_rst); + + for(cnt = 0; cnt < 100; cnt++) {}; + + *MACA_RESET = (1 << maca_reset_clkon); + + *MACA_CONTROL = maca_ctrl_seq_nop; + + for(cnt = 0; cnt < 400000; cnt++) {}; + + *MACA_TMREN = (1 << maca_tmren_strt) | (1 << maca_tmren_cpl); + *MACA_CLKDIV = MACA_CLOCK_DIV; + *MACA_WARMUP = 0x00180012; + *MACA_EOFDELAY = 0x00000004; + *MACA_CCADELAY = 0x001a0022; + *MACA_TXCCADELAY = 0x00000025; + *MACA_FRAMESYNC0 = 0x000000A7; + *MACA_CLK = 0x00000008; + *MACA_MASKIRQ = ((1 << maca_irq_rst) | (1 << maca_irq_acpl) | (1 << maca_irq_cm) | + (1 << maca_irq_flt) | (1 << maca_irq_crc) | (1 << maca_irq_di)); + *MACA_SLOTOFFSET = 0x00350000; + } void reset_maca(void) { uint32_t tmp; - MACA_WRITE(maca_control, control_seq_nop); - do - { - tmp = MACA_READ(maca_status); - } - while ((tmp & maca_status_cc_mask) == cc_not_completed); - - /* Clear all interrupts. */ - MACA_WRITE(maca_clrirq, 0xFFFF); + *MACA_CONTROL = maca_ctrl_seq_nop; + do { + tmp = *MACA_STATUS; + } while ((tmp & 0xf) == maca_cc_not_completed); + + /* Clear all interrupts. */ + *MACA_CLRIRQ = 0xffff; } + /* 004030c4 : 4030c4: 4806 ldr r0, [pc, #24] (4030e0 ) // r0 gets base 0x80009a00 @@ -341,7 +580,15 @@ const uint32_t AIMVAL[19] = { #define ADDR_POW3 ADDR_POW1 + 64 void set_power(uint8_t power) { reg(ADDR_POW1) = PSMVAL[power]; - reg(ADDR_POW2) = (ADDR_POW1>>18) | PAVAL[power]; + +/* see http://devl.org/pipermail/mc1322x/2009-October/000065.html */ +/* reg(ADDR_POW2) = (ADDR_POW1>>18) | PAVAL[power]; */ +#ifdef USE_PA + reg(ADDR_POW2) = 0xffffdfff & PAVAL[power]; /* single port */ +#else + reg(ADDR_POW2) = 0x00002000 | PAVAL[power]; /* dual port */ +#endif + reg(ADDR_POW3) = AIMVAL[power]; } diff --git a/tests/per.c b/tests/per.c index aa0aa78a9..82727c964 100644 --- a/tests/per.c +++ b/tests/per.c @@ -15,27 +15,69 @@ #define DEBUG_MACA 1 -typedef struct { - int type; -} packet_t; +/* how long to wait between session requests */ +#define SESSION_REQ_TIMEOUT 10 /* phony seconds */ enum STATES { SCANNING, MAX_STATE }; +typedef uint32_t ptype_t; enum PACKET_TYPE { - PACKET_PERTEST, + PACKET_SESS_REQ, MAX_PACKET_TYPE }; +/* get protocol level packet type */ +/* this is not 802.15.4 packet type */ +ptype_t get_packet_type(packet_t *p) { + return MAX_PACKET_TYPE; +} -int get_packet(packet_t *p) { return 0; } -void print_packet(packet_t p) { return; } +typedef uint32_t session_id_t; + +/* phony get_time */ +uint32_t get_time(void) { + static volatile int32_t cur_time = 0; + cur_time++; + return cur_time; +} + + +#define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8)) + +void build_session_req(volatile packet_t *p) { + p->length = 4; + p->data[0] = 0xff; + p->data[1] = 0x01; + p->data[2] = 0x23; + p->data[3] = 0x45; + return; +} + +void session_req(short_addr_t addr) { + static volatile int time = 0; + volatile packet_t *p; + +// if((get_time() - time) > SESSION_REQ_TIMEOUT) { +// time = get_time(); + p = get_free_packet(); + build_session_req(p); + tx_packet(p); +// } + return; +} + +void print_packet(packet_t *p) { return; } +session_id_t open_session(short_addr_t addr) { return 0; } void main(void) { uint32_t state; - packet_t p; - + volatile packet_t *p; + session_id_t sesid; + ptype_t type; + short_addr_t addr, my_addr; + uart_init(INC,MOD); print_welcome("Packet error test"); @@ -46,29 +88,47 @@ void main(void) { vreg_init(); flyback_init(); init_phy(); - + free_all_packets(); + /* trim the reference osc. to 24MHz */ pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ + enable_irq(MACA); + /* initial radio command */ /* nop, promiscuous, no cca */ *MACA_CONTROL = (1 << PRM) | (NO_CCA << MODE); + /* generate a random short address */ + my_addr = random_short_addr(); + state = SCANNING; while(1) { - + switch(state) { case SCANNING: - if(get_packet(&p)) { - print_packet(p); - /* if we have a packet */ - /* check if it's a pertest beacon */ - if(p.type == PACKET_PERTEST) { - /* try to start a session */ + if((p = rx_packet())) { + /* extract what we need and free the packet */ + print_packet(p); + type = get_packet_type(p); + addr = p->addr; + free_packet(p); + /* pick a new address if someone else is using ours */ + if(addr == my_addr) { + my_addr = random_short_addr(); + printf("DUP addr received, changing to new addr 0x%x02\n\r",my_addr); } + /* if we have a packet */ + /* check if it's a session request beacon */ + if(type == PACKET_SESS_REQ) { + /* try to start a session */ + sesid = open_session(p->addr); + } + } else { + session_req(my_addr); } break; default: From 3955bbd3557b10e2058d00482e46d34ee6059520 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 4 Mar 2010 20:50:16 -0500 Subject: [PATCH 241/471] more TODO items --- TODO | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/TODO b/TODO index b9bdd0f79..57eec8e7b 100644 --- a/TODO +++ b/TODO @@ -2,6 +2,14 @@ use run_algorithm to hook ROM NVM functions see flash/stm32x.c +- receive callback in the isr + +- callback for each packet the gets transmitted + +- beacon sync + +- CCA and ED. + From 0c3947ddd6f8a9f65f340811418301730088b15f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 5 Mar 2010 06:59:51 -0500 Subject: [PATCH 242/471] forgot to add packet.h --- lib/include/packet.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lib/include/packet.h diff --git a/lib/include/packet.h b/lib/include/packet.h new file mode 100644 index 000000000..8cbecc8ac --- /dev/null +++ b/lib/include/packet.h @@ -0,0 +1,19 @@ +#ifndef PACKET_H +#define PACKET_H + +#ifndef MAX_PACKET_SIZE +#define MAX_PACKET_SIZE 127 +#endif + +typedef uint16_t short_addr_t; + +struct packet { + short_addr_t addr; + uint8_t length; + volatile struct packet * left; + volatile struct packet * right; + uint8_t data[MAX_PACKET_SIZE]; +}; +typedef struct packet packet_t; + +#endif From 8e3c2a8622795b07f05b38da0e02df659c3891f3 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 5 Mar 2010 17:06:08 -0500 Subject: [PATCH 243/471] added locking and interrupt disables. transmit looks pretty good. --- lib/maca.c | 250 ++++++++++++++++++++++++++++++++++++++-------------- tests/per.c | 6 +- 2 files changed, 189 insertions(+), 67 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index eb4f22f94..ffcd00963 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -14,6 +14,10 @@ #define NUM_PACKETS 8 #endif +#ifndef RECV_SOFTIMEOUT +#define RECV_SOFTIMEOUT 2500000 /* 10 sec */ +#endif + #define MACA_CLOCK_DIV 95 #define reg(x) (*(volatile uint32_t *)(x)) @@ -22,53 +26,144 @@ static volatile packet_t packet_pool[NUM_PACKETS]; static volatile packet_t *free_head, *rx_head, *rx_end, *tx_head, *tx_end, *dma_tx, *dma_rx = 0; enum posts { - TX, - RX, + NO_POST = 0, + TX_POST, + RX_POST, MAX_POST, }; -static volatile uint8_t last_post = MAX_POST; +static volatile uint8_t last_post = NO_POST; + +#define safe_irq_disable(x) volatile uint32_t saved_irq; saved_irq = *INTENABLE; disable_irq(x) +#define irq_restore() *INTENABLE = saved_irq + +void print_packets(char *s) { + volatile packet_t *p; + int i = 0; + printf("packet pool after %s:\n\r",s); + p = free_head; + printf("free_head: 0x%x ",free_head); + while(p != 0) { + i++; + p = p->left; + printf("->0x%x",p); + } + printf("\n\r"); + + p = tx_head; + printf("tx_head: 0x%x ",tx_head); + while(p != 0) { + i++; + p = p->left; + printf("->0x%x",p); + } + printf("\n\r"); + + p = rx_head; + printf("rx_head: 0x%x ",rx_head); + while(p != 0) { + i++; + p = p->left; + printf("->0x%x",p); + } + printf("\n\r"); + printf("found %d packets\n\r",i); +} + /* public packet routines */ /* heads are to the right */ /* ends are to the left */ void free_packet(volatile packet_t *p) { + safe_irq_disable(MACA); + + if(!p) { PRINTF("free_packet passed packet 0\n\r"); return; } p->length = 0; p->left = free_head; p->right = 0; free_head = p; + + irq_restore(); return; } volatile packet_t* get_free_packet(void) { volatile packet_t *p; + safe_irq_disable(MACA); + p = free_head; if( p != 0 ) { free_head = p->left; free_head->right = 0; } + + print_packets("get_free_packet"); + irq_restore(); return p; } volatile packet_t* rx_packet(void) { volatile packet_t *p; + safe_irq_disable(MACA); + p = rx_head; if( p != 0 ) { rx_head = p->left; rx_head->right = 0; } + + print_packets("rx_packet"); + irq_restore(); return p; } +void post_tx(void) { + /* set dma tx pointer to the payload */ + /* and set the tx len */ + disable_irq(MACA); + last_post = TX_POST; + dma_tx = tx_head; + *MACA_TXLEN = (uint32_t)(dma_tx->length + 2); + *MACA_DMATX = (uint32_t)&(dma_tx->data[0]); + if(dma_rx == 0) { + dma_rx = get_free_packet(); + if (dma_rx == 0) + printf("trying to fill MACA_DMARX but out of packet buffers\n"); + } + *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); + *MACA_TMREN = 0; + /* do the transmit */ + enable_irq(MACA); + *MACA_CONTROL = ( (1 << maca_ctrl_prm) | + (maca_ctrl_mode_no_cca << maca_ctrl_mode) | + (1 << maca_ctrl_asap) | + (maca_ctrl_seq_tx)); +} + void tx_packet(volatile packet_t *p) { - tx_end->left = p; - p->right = tx_end; - tx_end = p; tx_end->left = 0; - if(tx_head == 0) { tx_head = tx_end; } + safe_irq_disable(MACA); + + if(!p) { PRINTF("tx_packet passed packet 0\n\r"); return; } + if(tx_head == 0) { + /* start a new queue if empty */ + tx_end = p; + tx_end->left = 0; tx_end->right = 0; + tx_head = tx_end; + } else { + /* add p to the end of the queue */ + tx_end->left = p; + p->right = tx_end; + /* move the queue */ + tx_end = p; tx_end->left = 0; + } + print_packets("tx packet"); + irq_restore(); if(get_field(*MACA_STATUS,CODE) != NOT_COMPLETED) { post_tx(); } return; } void free_all_packets(void) { volatile int i; + safe_irq_disable(MACA); + free_head = 0; for(i=0; ileft; + if(tx_head == 0) { tx_end = 0; } free_packet(p); + + print_packets("free tx head"); + irq_restore(); return; } -void add_to_rx(packet_t *p) { - rx_end->left = p; - p->right = rx_end; - rx_end = p; rx_end->left = 0; +void add_to_rx(volatile packet_t *p) { + safe_irq_disable(MACA); + + if(!p) { PRINTF("add_to_rx passed packet 0\n\r"); return; } + if(rx_head == 0) { + /* start a new queue if empty */ + rx_end = p; + rx_end->left = 0; rx_end->right = 0; + rx_head = rx_end; + } else { + rx_end->left = p; + p->right = rx_end; + rx_end = p; rx_end->left = 0; + } + + print_packets("add to tx"); + irq_restore(); return; } void post_receive(void) { + disable_irq(MACA); + last_post = RX_POST; /* this sets the rxlen field */ /* this is undocumented but very important */ /* you will not receive anything without setting it */ - last_post = RX; *MACA_TXLEN = (MAX_PACKET_SIZE << 16); if(dma_rx == 0) { dma_rx = get_free_packet(); if (dma_rx == 0) - printf("out of packet buffers\n"); + printf("trying to fill MACA_DMARX but out of packet buffers\n"); } *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); /* with timeout */ - *MACA_SFTCLK = *MACA_CLK - 1; + *MACA_SFTCLK = *MACA_CLK + RECV_SOFTIMEOUT; /* soft timeout */ *MACA_TMREN = (1 << maca_tmren_sft); /* start the receive sequence */ - *MACA_CONTROL = ( (1 << maca_ctrl_asap) | + enable_irq(MACA); +/* *MACA_CONTROL = ( (1 << maca_ctrl_asap) | (1 << maca_ctrl_auto) | (1 << maca_ctrl_prm) | (maca_ctrl_seq_rx)); -} - -void post_tx(void) { - /* set dma tx pointer to the payload */ - /* and set the tx len */ - last_post = TX; - dma_tx = tx_head; - *MACA_TXLEN = (uint32_t)(dma_tx->length + 2); - *MACA_DMATX = (uint32_t)&(dma_tx->data[0]); - dma_rx = get_free_packet(); - *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); - *MACA_TMREN = 0; - /* do the transmit */ - *MACA_CONTROL = ( (1 << maca_ctrl_prm) | - (maca_ctrl_mode_no_cca << maca_ctrl_mode) | - (1 << maca_ctrl_asap) | - (maca_ctrl_seq_tx)); +*/ + *MACA_CONTROL = ( + (1 << maca_ctrl_asap) | + (1 << maca_ctrl_prm) | + (maca_ctrl_seq_rx)); } -static void decode_status(int status) { - switch(status) +void decode_status(volatile uint32_t status) { + volatile uint32_t code; + + code = get_field(status,CODE); + PRINTF("status code 0x%x\n\r",code); + + switch(code) { - case maca_cc_aborted: + case ABORTED: { PRINTF("maca: aborted\n\r"); ResumeMACASync(); break; } - case maca_cc_not_completed: + case NOT_COMPLETED: { // PRINTF("maca: not completed\n\r"); ResumeMACASync(); break; } - case maca_cc_timeout: + case CODE_TIMEOUT: { PRINTF("maca: timeout\n\r"); ResumeMACASync(); break; } - case maca_cc_no_ack: + case NO_ACK: { PRINTF("maca: no ack\n\r"); ResumeMACASync(); break; } - case maca_cc_ext_timeout: + case EXT_TIMEOUT: { -// PRINTF("maca: ext timeout\n\r"); + PRINTF("maca: ext timeout\n\r"); ResumeMACASync(); break; } - case maca_cc_ext_pnd_timeout: + case EXT_PND_TIMEOUT: { PRINTF("maca: ext pnd timeout\n\r"); ResumeMACASync(); break; } - case maca_cc_success: + case SUCCESS: { //PRINTF("maca: success\n\r"); break; @@ -196,54 +308,55 @@ static void decode_status(int status) { } void maca_isr(void) { - int i, status; - struct packet_t *packet; + volatile uint32_t i, status; + + print_packets("maca_isr"); status = *MACA_STATUS; if (data_indication_irq()) { *MACA_CLRIRQ = (1 << maca_irq_di); dma_rx->length = *MACA_GETRXLVL - 2; - PRINTF("data ind %x %d\n", dma_rx, dma_rx->length); + PRINTF("maca data ind %x %d\n\r", dma_rx, dma_rx->length); add_to_rx(dma_rx); dma_rx = 0; } if (filter_failed_irq()) { - PRINTF("filter failed\n"); + PRINTF("maca filter failed\n\r"); ResumeMACASync(); *MACA_CLRIRQ = (1 << maca_irq_flt); } if (checksum_failed_irq()) { - PRINTF("checksum failed\n"); + PRINTF("maca checksum failed\n\r"); ResumeMACASync(); *MACA_CLRIRQ = (1 << maca_irq_crc); } if(action_complete_irq()) { - PRINTF("action complete %d\n", get_field(*MACA_CONTROL,SEQUENCE)); - if(last_post == TX) { - free_packet(dma_tx); + PRINTF("maca action complete %d\n\r", get_field(*MACA_CONTROL,SEQUENCE)); + if(last_post == TX_POST) { + free_tx_head(); + last_post = NO_POST; } - *MACA_CLRIRQ = (1 << maca_irq_acpl); - status &= 0x0000ffff; - decode_status(status); } - if (bit_is_set(status, maca_status_ovr)) - PRINTF("ISR overrun\n"); - if (bit_is_set(status, maca_status_busy)) - PRINTF("ISR busy\n"); - if (bit_is_set(status, maca_status_crc)) - PRINTF("ISR crc\n"); - if (bit_is_set(status, maca_status_to)) - PRINTF("ISR timeout\n"); - i = *MACA_IRQ; if (i != 0) - PRINTF("MACA IRQ %x\n", i); + PRINTF("*MACA_IRQ %x\n\r", i); + + + if (bit_is_set(status, maca_status_ovr)) + PRINTF("maca overrun\n\r"); + if (bit_is_set(status, maca_status_busy)) + PRINTF("maca busy\n\r"); + if (bit_is_set(*MACA_STATUS, maca_status_crc)) + PRINTF("maca crc error\n\r"); + if (bit_is_set(*MACA_STATUS, maca_status_to)) + PRINTF("maca timeout\n\r"); + decode_status(status); if(tx_head != 0) { post_tx(); - } else { + } else if(last_post != TX_POST) { post_receive(); } } @@ -739,10 +852,12 @@ uint32_t init_from_flash(uint32_t addr) { */ void ResumeMACASync(void) { - uint32_t clk, TsmRxSteps, LastWarmupStep, LastWarmupData, LastWarmdownStep, LastWarmdownData; + volatile uint32_t clk, TsmRxSteps, LastWarmupStep, LastWarmupData, LastWarmdownStep, LastWarmdownData; // bool_t tmpIsrStatus; - volatile uint32_t i; + volatile uint32_t i, saved_irq; + disable_irq(MACA); + saved_irq = *MACA_IRQ; // ITC_DisableInterrupt(gMacaInt_c); // AppInterrupts_ProtectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented @@ -790,4 +905,7 @@ void ResumeMACASync(void) // AppInterrupts_UnprotectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented // ITC_EnableInterrupt(gMacaInt_c); + *MACA_IRQ = saved_irq; + enable_irq(MACA); + } diff --git a/tests/per.c b/tests/per.c index 82727c964..d584ce54f 100644 --- a/tests/per.c +++ b/tests/per.c @@ -61,9 +61,13 @@ void session_req(short_addr_t addr) { // if((get_time() - time) > SESSION_REQ_TIMEOUT) { // time = get_time(); - p = get_free_packet(); + if((p = get_free_packet())) { build_session_req(p); tx_packet(p); + } else { + printf("session_req: could not get free packet for transmit\n\r"); + } + // } return; } From 5c2031274488c13501fe0cf57d0ee27383a12236 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 5 Mar 2010 19:25:38 -0500 Subject: [PATCH 244/471] this does 127 B packets as fast as possible (with these settings). Transmitts are every 5.8ms and are 4.48ms long --- lib/maca.c | 100 +++++++++++++++++++++++++++++----------------------- tests/per.c | 8 +++-- 2 files changed, 62 insertions(+), 46 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index ffcd00963..fdf9510d2 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -15,7 +15,8 @@ #endif #ifndef RECV_SOFTIMEOUT -#define RECV_SOFTIMEOUT 2500000 /* 10 sec */ +//#define RECV_SOFTIMEOUT 4096 /* about 3.5 128 byte packets */ +#define RECV_SOFTIMEOUT 10000 /* about 3.5 128 byte packets */ #endif #define MACA_CLOCK_DIV 95 @@ -36,7 +37,9 @@ static volatile uint8_t last_post = NO_POST; #define safe_irq_disable(x) volatile uint32_t saved_irq; saved_irq = *INTENABLE; disable_irq(x) #define irq_restore() *INTENABLE = saved_irq -void print_packets(char *s) { +#define print_packets(x) Print_Packets(x) + +void Print_Packets(char *s) { volatile packet_t *p; int i = 0; printf("packet pool after %s:\n\r",s); @@ -87,6 +90,8 @@ void free_packet(volatile packet_t *p) { volatile packet_t* get_free_packet(void) { volatile packet_t *p; + volatile uint32_t i; + safe_irq_disable(MACA); p = free_head; @@ -95,11 +100,44 @@ volatile packet_t* get_free_packet(void) { free_head->right = 0; } - print_packets("get_free_packet"); + + for(i=0; i<9783; i++) { continue; } + +// print_packets("get_free_packet"); irq_restore(); return p; } +void post_receive(void) { + disable_irq(MACA); + last_post = RX_POST; + /* this sets the rxlen field */ + /* this is undocumented but very important */ + /* you will not receive anything without setting it */ + *MACA_TXLEN = (MAX_PACKET_SIZE << 16); + if(dma_rx == 0) { + dma_rx = get_free_packet(); + if (dma_rx == 0) + printf("trying to fill MACA_DMARX but out of packet buffers\n"); + } + *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); + /* with timeout */ + *MACA_SFTCLK = *MACA_CLK + RECV_SOFTIMEOUT; /* soft timeout */ + *MACA_TMREN = (1 << maca_tmren_sft); + /* start the receive sequence */ + enable_irq(MACA); +/* *MACA_CONTROL = ( (1 << maca_ctrl_asap) | + (1 << maca_ctrl_auto) | + (1 << maca_ctrl_prm) | + (maca_ctrl_seq_rx)); +*/ + *MACA_CONTROL = ( + (1 << maca_ctrl_asap) | + (1 << maca_ctrl_prm) | + (maca_ctrl_seq_rx)); +} + + volatile packet_t* rx_packet(void) { volatile packet_t *p; safe_irq_disable(MACA); @@ -110,14 +148,16 @@ volatile packet_t* rx_packet(void) { rx_head->right = 0; } - print_packets("rx_packet"); +// print_packets("rx_packet"); irq_restore(); + if(get_field(*MACA_STATUS,CODE) != NOT_COMPLETED) { post_receive(); } return p; } void post_tx(void) { /* set dma tx pointer to the payload */ /* and set the tx len */ + disable_irq(MACA); last_post = TX_POST; dma_tx = tx_head; @@ -154,7 +194,7 @@ void tx_packet(volatile packet_t *p) { /* move the queue */ tx_end = p; tx_end->left = 0; } - print_packets("tx packet"); +// print_packets("tx packet"); irq_restore(); if(get_field(*MACA_STATUS,CODE) != NOT_COMPLETED) { post_tx(); } return; @@ -189,7 +229,7 @@ void free_tx_head(void) { if(tx_head == 0) { tx_end = 0; } free_packet(p); - print_packets("free tx head"); +// print_packets("free tx head"); irq_restore(); return; } @@ -209,46 +249,16 @@ void add_to_rx(volatile packet_t *p) { rx_end = p; rx_end->left = 0; } - print_packets("add to tx"); +// print_packets("add to rx"); irq_restore(); return; } -void post_receive(void) { - disable_irq(MACA); - last_post = RX_POST; - /* this sets the rxlen field */ - /* this is undocumented but very important */ - /* you will not receive anything without setting it */ - *MACA_TXLEN = (MAX_PACKET_SIZE << 16); - if(dma_rx == 0) { - dma_rx = get_free_packet(); - if (dma_rx == 0) - printf("trying to fill MACA_DMARX but out of packet buffers\n"); - } - *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); - /* with timeout */ - *MACA_SFTCLK = *MACA_CLK + RECV_SOFTIMEOUT; /* soft timeout */ - *MACA_TMREN = (1 << maca_tmren_sft); - /* start the receive sequence */ - enable_irq(MACA); -/* *MACA_CONTROL = ( (1 << maca_ctrl_asap) | - (1 << maca_ctrl_auto) | - (1 << maca_ctrl_prm) | - (maca_ctrl_seq_rx)); -*/ - *MACA_CONTROL = ( - (1 << maca_ctrl_asap) | - (1 << maca_ctrl_prm) | - (maca_ctrl_seq_rx)); -} - - void decode_status(volatile uint32_t status) { volatile uint32_t code; code = get_field(status,CODE); - PRINTF("status code 0x%x\n\r",code); + /* PRINTF("status code 0x%x\n\r",code); */ switch(code) { @@ -296,6 +306,7 @@ void decode_status(volatile uint32_t status) { case SUCCESS: { //PRINTF("maca: success\n\r"); + ResumeMACASync(); break; } default: @@ -310,7 +321,7 @@ void decode_status(volatile uint32_t status) { void maca_isr(void) { volatile uint32_t i, status; - print_packets("maca_isr"); +// print_packets("maca_isr"); status = *MACA_STATUS; @@ -332,11 +343,12 @@ void maca_isr(void) { *MACA_CLRIRQ = (1 << maca_irq_crc); } if(action_complete_irq()) { - PRINTF("maca action complete %d\n\r", get_field(*MACA_CONTROL,SEQUENCE)); + /* PRINTF("maca action complete %d\n\r", get_field(*MACA_CONTROL,SEQUENCE)); */ if(last_post == TX_POST) { free_tx_head(); last_post = NO_POST; } + ResumeMACASync(); *MACA_CLRIRQ = (1 << maca_irq_acpl); } i = *MACA_IRQ; @@ -856,8 +868,8 @@ void ResumeMACASync(void) // bool_t tmpIsrStatus; volatile uint32_t i, saved_irq; - disable_irq(MACA); - saved_irq = *MACA_IRQ; +// disable_irq(MACA); +// saved_irq = *MACA_IRQ; // ITC_DisableInterrupt(gMacaInt_c); // AppInterrupts_ProtectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented @@ -905,7 +917,7 @@ void ResumeMACASync(void) // AppInterrupts_UnprotectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented // ITC_EnableInterrupt(gMacaInt_c); - *MACA_IRQ = saved_irq; - enable_irq(MACA); +// *MACA_IRQ = saved_irq; +// enable_irq(MACA); } diff --git a/tests/per.c b/tests/per.c index d584ce54f..09b5230d2 100644 --- a/tests/per.c +++ b/tests/per.c @@ -47,7 +47,7 @@ uint32_t get_time(void) { #define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8)) void build_session_req(volatile packet_t *p) { - p->length = 4; + p->length = 127; p->data[0] = 0xff; p->data[1] = 0x01; p->data[2] = 0x23; @@ -65,7 +65,7 @@ void session_req(short_addr_t addr) { build_session_req(p); tx_packet(p); } else { - printf("session_req: could not get free packet for transmit\n\r"); +// printf("session_req: could not get free packet for transmit\n\r"); } // } @@ -109,6 +109,10 @@ void main(void) { /* generate a random short address */ my_addr = random_short_addr(); +/* sets up tx_on, should be a board specific item */ + *GPIO_FUNC_SEL2 = (0x01 << ((44-16*2)*2)); + *GPIO_PAD_DIR0 = *GPIO_PAD_DIR0 | (1<<(44-32)); + state = SCANNING; while(1) { From 0f400b43416f01e7c3505eeab6cbda09f8ef2daf Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 6 Mar 2010 17:58:49 -0500 Subject: [PATCH 245/471] lots of fixes. major fix is adding a completion counter based on packet length to restart the MACA when it freezes on transmit. --- lib/maca.c | 54 +++++++++++++++++++++++++++++++---------------------- tests/per.c | 33 ++++++++++++++++++++------------ 2 files changed, 53 insertions(+), 34 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index fdf9510d2..f4b180872 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -15,10 +15,14 @@ #endif #ifndef RECV_SOFTIMEOUT -//#define RECV_SOFTIMEOUT 4096 /* about 3.5 128 byte packets */ -#define RECV_SOFTIMEOUT 10000 /* about 3.5 128 byte packets */ +#define RECV_SOFTIMEOUT 4096 /* about 3.5 128 byte packets */ #endif +/* for 250kHz clock */ +/* (32 chips/sym) * (sym/4bits) * (8bits/byte) = (64 chips/byte) */ +/* (8 chips/clk) * (byte/64 chips) = byte/8clks */ +#define CLK_PER_BYTE 8 + #define MACA_CLOCK_DIV 95 #define reg(x) (*(volatile uint32_t *)(x)) @@ -100,9 +104,6 @@ volatile packet_t* get_free_packet(void) { free_head->right = 0; } - - for(i=0; i<9783; i++) { continue; } - // print_packets("get_free_packet"); irq_restore(); return p; @@ -117,8 +118,10 @@ void post_receive(void) { *MACA_TXLEN = (MAX_PACKET_SIZE << 16); if(dma_rx == 0) { dma_rx = get_free_packet(); - if (dma_rx == 0) + if (dma_rx == 0) { printf("trying to fill MACA_DMARX but out of packet buffers\n"); + return; + } } *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); /* with timeout */ @@ -132,7 +135,7 @@ void post_receive(void) { (maca_ctrl_seq_rx)); */ *MACA_CONTROL = ( - (1 << maca_ctrl_asap) | + (1 << maca_ctrl_asap) | ( 4 << PRECOUNT) | (1 << maca_ctrl_prm) | (maca_ctrl_seq_rx)); } @@ -157,7 +160,7 @@ volatile packet_t* rx_packet(void) { void post_tx(void) { /* set dma tx pointer to the payload */ /* and set the tx len */ - + volatile uint32_t i; disable_irq(MACA); last_post = TX_POST; dma_tx = tx_head; @@ -169,13 +172,22 @@ void post_tx(void) { printf("trying to fill MACA_DMARX but out of packet buffers\n"); } *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); - *MACA_TMREN = 0; + /* disable soft timeout clock */ + /* disable start clock */ + *MACA_TMRDIS = (1 << maca_tmren_sft) | ( 1 << maca_tmren_strt ) ; + /* set complete clock to long value */ + /* acts like a watchdog incase the MACA locks up */ + *MACA_CPLCLK = *MACA_CLK + (CLK_PER_BYTE * dma_tx->length+6) + (CLK_PER_BYTE * 0); + /* enable complete clock */ + *MACA_TMREN = (1 << maca_tmren_cpl); /* do the transmit */ enable_irq(MACA); - *MACA_CONTROL = ( (1 << maca_ctrl_prm) | + *MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) | (maca_ctrl_mode_no_cca << maca_ctrl_mode) | (1 << maca_ctrl_asap) | (maca_ctrl_seq_tx)); + + for(i=0; i<10; i++) { continue; } } void tx_packet(volatile packet_t *p) { @@ -196,7 +208,7 @@ void tx_packet(volatile packet_t *p) { } // print_packets("tx packet"); irq_restore(); - if(get_field(*MACA_STATUS,CODE) != NOT_COMPLETED) { post_tx(); } + if(get_field(*MACA_STATUS,CODE) != NOT_COMPLETED) { post_tx(); } return; } @@ -254,17 +266,17 @@ void add_to_rx(volatile packet_t *p) { return; } -void decode_status(volatile uint32_t status) { +void decode_status(void) { volatile uint32_t code; - code = get_field(status,CODE); + code = get_field(*MACA_STATUS,CODE); /* PRINTF("status code 0x%x\n\r",code); */ switch(code) { case ABORTED: { - PRINTF("maca: aborted\n\r"); +// PRINTF("maca: aborted\n\r"); ResumeMACASync(); break; @@ -278,7 +290,7 @@ void decode_status(volatile uint32_t status) { } case CODE_TIMEOUT: { - PRINTF("maca: timeout\n\r"); +// PRINTF("maca: timeout\n\r"); ResumeMACASync(); break; @@ -292,7 +304,7 @@ void decode_status(volatile uint32_t status) { } case EXT_TIMEOUT: { - PRINTF("maca: ext timeout\n\r"); +// PRINTF("maca: ext timeout\n\r"); ResumeMACASync(); break; @@ -311,7 +323,7 @@ void decode_status(volatile uint32_t status) { } default: { - PRINTF("status: %x", status); + PRINTF("status: %x", *MACA_STATUS); ResumeMACASync(); } @@ -323,8 +335,6 @@ void maca_isr(void) { // print_packets("maca_isr"); - status = *MACA_STATUS; - if (data_indication_irq()) { *MACA_CLRIRQ = (1 << maca_irq_di); dma_rx->length = *MACA_GETRXLVL - 2; @@ -356,15 +366,15 @@ void maca_isr(void) { PRINTF("*MACA_IRQ %x\n\r", i); - if (bit_is_set(status, maca_status_ovr)) + if (bit_is_set(*MACA_STATUS, maca_status_ovr)) PRINTF("maca overrun\n\r"); - if (bit_is_set(status, maca_status_busy)) + if (bit_is_set(*MACA_STATUS, maca_status_busy)) PRINTF("maca busy\n\r"); if (bit_is_set(*MACA_STATUS, maca_status_crc)) PRINTF("maca crc error\n\r"); if (bit_is_set(*MACA_STATUS, maca_status_to)) PRINTF("maca timeout\n\r"); - decode_status(status); + decode_status(); if(tx_head != 0) { post_tx(); diff --git a/tests/per.c b/tests/per.c index 09b5230d2..a7e7d0239 100644 --- a/tests/per.c +++ b/tests/per.c @@ -47,7 +47,7 @@ uint32_t get_time(void) { #define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8)) void build_session_req(volatile packet_t *p) { - p->length = 127; + p->length = 4; p->data[0] = 0xff; p->data[1] = 0x01; p->data[2] = 0x23; @@ -59,20 +59,28 @@ void session_req(short_addr_t addr) { static volatile int time = 0; volatile packet_t *p; -// if((get_time() - time) > SESSION_REQ_TIMEOUT) { -// time = get_time(); - if((p = get_free_packet())) { - build_session_req(p); - tx_packet(p); - } else { -// printf("session_req: could not get free packet for transmit\n\r"); + if((get_time() - time) > SESSION_REQ_TIMEOUT) { + time = get_time(); + if((p = get_free_packet())) { + build_session_req(p); + tx_packet(p); + } } - -// } return; } -void print_packet(packet_t *p) { return; } +void print_packet(packet_t *p) { + volatile uint8_t i,j; + if(p) { + for(j=0; j < (p->length)%16; j++) { + for(i=0; ilength; i++) { + printf("%x02 ",p->data[i]); + } + printf("\n\r"); + } + } + return; +} session_id_t open_session(short_addr_t addr) { return 0; } void main(void) { @@ -120,7 +128,8 @@ void main(void) { case SCANNING: if((p = rx_packet())) { /* extract what we need and free the packet */ - print_packet(p); + printf("Recv: "); + print_packet(p); type = get_packet_type(p); addr = p->addr; free_packet(p); From 2d68c30934c496f9ff414f12725c507ed03cc40d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 6 Mar 2010 18:48:13 -0500 Subject: [PATCH 246/471] this receive works --- lib/maca.c | 18 ++++++++++++------ tests/per.c | 11 ++++++----- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index f4b180872..a54830751 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -110,6 +110,7 @@ volatile packet_t* get_free_packet(void) { } void post_receive(void) { + volatile uint32_t i; disable_irq(MACA); last_post = RX_POST; /* this sets the rxlen field */ @@ -119,7 +120,7 @@ void post_receive(void) { if(dma_rx == 0) { dma_rx = get_free_packet(); if (dma_rx == 0) { - printf("trying to fill MACA_DMARX but out of packet buffers\n"); + printf("trying to fill MACA_DMARX but out of packet buffers\n\r"); return; } } @@ -129,15 +130,16 @@ void post_receive(void) { *MACA_TMREN = (1 << maca_tmren_sft); /* start the receive sequence */ enable_irq(MACA); -/* *MACA_CONTROL = ( (1 << maca_ctrl_asap) | + *MACA_CONTROL = ( (1 << maca_ctrl_asap) | (1 << maca_ctrl_auto) | (1 << maca_ctrl_prm) | (maca_ctrl_seq_rx)); -*/ - *MACA_CONTROL = ( + +/* *MACA_CONTROL = ( (1 << maca_ctrl_asap) | ( 4 << PRECOUNT) | (1 << maca_ctrl_prm) | - (maca_ctrl_seq_rx)); + (maca_ctrl_seq_rx));*/ + for(i=0; i<1000; i++) { continue; } } @@ -182,7 +184,11 @@ void post_tx(void) { *MACA_TMREN = (1 << maca_tmren_cpl); /* do the transmit */ enable_irq(MACA); - *MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) | +/* *MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) | + (maca_ctrl_mode_no_cca << maca_ctrl_mode) | + (1 << maca_ctrl_asap) | + (maca_ctrl_seq_tx)); */ + *MACA_CONTROL = ( (1 << maca_ctrl_prm) | (maca_ctrl_mode_no_cca << maca_ctrl_mode) | (1 << maca_ctrl_asap) | (maca_ctrl_seq_tx)); diff --git a/tests/per.c b/tests/per.c index a7e7d0239..c2fcd4989 100644 --- a/tests/per.c +++ b/tests/per.c @@ -16,7 +16,7 @@ #define DEBUG_MACA 1 /* how long to wait between session requests */ -#define SESSION_REQ_TIMEOUT 10 /* phony seconds */ +#define SESSION_REQ_TIMEOUT 10000 /* phony seconds */ enum STATES { SCANNING, @@ -47,7 +47,7 @@ uint32_t get_time(void) { #define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8)) void build_session_req(volatile packet_t *p) { - p->length = 4; + p->length = 16; p->data[0] = 0xff; p->data[1] = 0x01; p->data[2] = 0x23; @@ -72,9 +72,10 @@ void session_req(short_addr_t addr) { void print_packet(packet_t *p) { volatile uint8_t i,j; if(p) { - for(j=0; j < (p->length)%16; j++) { + printf("len 0x%02x:",p->length); + for(j=0; j < ((p->length)%16)-1; j++) { for(i=0; ilength; i++) { - printf("%x02 ",p->data[i]); + printf("%02x ",p->data[j*16+i]); } printf("\n\r"); } @@ -145,7 +146,7 @@ void main(void) { sesid = open_session(p->addr); } } else { - session_req(my_addr); + // session_req(my_addr); } break; default: From cca5e572614b5fb7ca3cca3a8a0c279fe540b1d1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 6 Mar 2010 18:49:08 -0500 Subject: [PATCH 247/471] add timestamps someday --- TODO | 1 + 1 file changed, 1 insertion(+) diff --git a/TODO b/TODO index b9bdd0f79..a6d4afad7 100644 --- a/TODO +++ b/TODO @@ -2,6 +2,7 @@ use run_algorithm to hook ROM NVM functions see flash/stm32x.c +- add timestamp to received packets From f5391e88dc6325776c5a9eafefc3314bfe865333 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 6 Mar 2010 18:50:47 -0500 Subject: [PATCH 248/471] commented the data indication printf --- lib/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index a54830751..28dc8af57 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -344,7 +344,7 @@ void maca_isr(void) { if (data_indication_irq()) { *MACA_CLRIRQ = (1 << maca_irq_di); dma_rx->length = *MACA_GETRXLVL - 2; - PRINTF("maca data ind %x %d\n\r", dma_rx, dma_rx->length); +// PRINTF("maca data ind %x %d\n\r", dma_rx, dma_rx->length); add_to_rx(dma_rx); dma_rx = 0; } From e8550f26ba54e6d8ef03d59ee774e210776a2454 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 6 Mar 2010 19:14:55 -0500 Subject: [PATCH 249/471] this receive seems to work well. It has checksum errors at 123 byte payloads, but this was tested with the old rftest-tx --- so the transmit side could be the problem. --- lib/include/packet.h | 2 +- lib/maca.c | 10 +++++----- tests/per.c | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/include/packet.h b/lib/include/packet.h index 8cbecc8ac..cf336458f 100644 --- a/lib/include/packet.h +++ b/lib/include/packet.h @@ -12,7 +12,7 @@ struct packet { uint8_t length; volatile struct packet * left; volatile struct packet * right; - uint8_t data[MAX_PACKET_SIZE]; + uint8_t data[MAX_PACKET_SIZE+1]; /* + 1 since maca returns the length as the first byte */ }; typedef struct packet packet_t; diff --git a/lib/maca.c b/lib/maca.c index 28dc8af57..38fe0ce4e 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -14,16 +14,16 @@ #define NUM_PACKETS 8 #endif -#ifndef RECV_SOFTIMEOUT -#define RECV_SOFTIMEOUT 4096 /* about 3.5 128 byte packets */ -#endif - /* for 250kHz clock */ +#define MACA_CLOCK_DIV 95 /* (32 chips/sym) * (sym/4bits) * (8bits/byte) = (64 chips/byte) */ /* (8 chips/clk) * (byte/64 chips) = byte/8clks */ #define CLK_PER_BYTE 8 -#define MACA_CLOCK_DIV 95 +#ifndef RECV_SOFTIMEOUT +#define RECV_SOFTIMEOUT 4*128*CLK_PER_BYTE /* 4 128 byte packets */ +#endif + #define reg(x) (*(volatile uint32_t *)(x)) diff --git a/tests/per.c b/tests/per.c index c2fcd4989..ac7f562d4 100644 --- a/tests/per.c +++ b/tests/per.c @@ -70,15 +70,18 @@ void session_req(short_addr_t addr) { } void print_packet(packet_t *p) { - volatile uint8_t i,j; + volatile uint8_t i,j,k; +#define PER_ROW 16 if(p) { - printf("len 0x%02x:",p->length); - for(j=0; j < ((p->length)%16)-1; j++) { - for(i=0; ilength; i++) { - printf("%02x ",p->data[j*16+i]); + printf("len 0x%02x\n\r",p->length); + for(j=0, k=0; j < ((p->length)%PER_ROW)-1; j++) { + for(i=0; i < PER_ROW; i++, k++) { + if(k>=p->length) { break; } + printf("%02x ",p->data[j*PER_ROW+i]); } printf("\n\r"); } + printf("\n\r"); } return; } From 0dac24e1eb2e08e3eaa733b3dfae24bd1ad1e1c5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 6 Mar 2010 19:54:55 -0500 Subject: [PATCH 250/471] this is pretty close to working together. --- lib/maca.c | 7 ++++--- tests/per.c | 12 ++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 38fe0ce4e..341d12b97 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -166,7 +166,7 @@ void post_tx(void) { disable_irq(MACA); last_post = TX_POST; dma_tx = tx_head; - *MACA_TXLEN = (uint32_t)(dma_tx->length + 2); + *MACA_TXLEN = (uint32_t)((dma_tx->length) + 2); *MACA_DMATX = (uint32_t)&(dma_tx->data[0]); if(dma_rx == 0) { dma_rx = get_free_packet(); @@ -183,17 +183,18 @@ void post_tx(void) { /* enable complete clock */ *MACA_TMREN = (1 << maca_tmren_cpl); /* do the transmit */ + for(i=0; i<1000; i++) { continue; } enable_irq(MACA); /* *MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) | (maca_ctrl_mode_no_cca << maca_ctrl_mode) | (1 << maca_ctrl_asap) | (maca_ctrl_seq_tx)); */ +// for(i=0; i<1000; i++) { continue; } *MACA_CONTROL = ( (1 << maca_ctrl_prm) | (maca_ctrl_mode_no_cca << maca_ctrl_mode) | (1 << maca_ctrl_asap) | (maca_ctrl_seq_tx)); - - for(i=0; i<10; i++) { continue; } + for(i=0; i<1000; i++) { continue; } } void tx_packet(volatile packet_t *p) { diff --git a/tests/per.c b/tests/per.c index ac7f562d4..d34ea84f1 100644 --- a/tests/per.c +++ b/tests/per.c @@ -47,11 +47,11 @@ uint32_t get_time(void) { #define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8)) void build_session_req(volatile packet_t *p) { - p->length = 16; - p->data[0] = 0xff; - p->data[1] = 0x01; - p->data[2] = 0x23; - p->data[3] = 0x45; + p->length = 4; + p->data[0] = 0x01; + p->data[1] = 0x02; + p->data[2] = 0x03; + p->data[3] = 0x04; return; } @@ -149,7 +149,7 @@ void main(void) { sesid = open_session(p->addr); } } else { - // session_req(my_addr); + session_req(my_addr); } break; default: From c218d1bffaf4a15e4fb65a5ad2fe844e83cf1ad0 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 6 Mar 2010 21:47:22 -0500 Subject: [PATCH 251/471] update rftest-rx to use new maca. --- tests/per.c | 16 ----- tests/rftest-rx.c | 146 +++++----------------------------------------- tests/tests.c | 17 ++++++ tests/tests.h | 1 + 4 files changed, 33 insertions(+), 147 deletions(-) diff --git a/tests/per.c b/tests/per.c index d34ea84f1..826ba640f 100644 --- a/tests/per.c +++ b/tests/per.c @@ -69,22 +69,6 @@ void session_req(short_addr_t addr) { return; } -void print_packet(packet_t *p) { - volatile uint8_t i,j,k; -#define PER_ROW 16 - if(p) { - printf("len 0x%02x\n\r",p->length); - for(j=0, k=0; j < ((p->length)%PER_ROW)-1; j++) { - for(i=0; i < PER_ROW; i++, k++) { - if(k>=p->length) { break; } - printf("%02x ",p->data[j*PER_ROW+i]); - } - printf("\n\r"); - } - printf("\n\r"); - } - return; -} session_id_t open_session(short_addr_t addr) { return 0; } void main(void) { diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index ec1e6c231..ba64afef0 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -5,53 +5,21 @@ #include "tests.h" #include "config.h" -#define DELAY 400000 -#define DATA 0x00401000; - -uint32_t ackBox[10]; - -#define MAX_PAYLOAD 128 -volatile uint8_t data[MAX_PAYLOAD]; -/* maca_rxlen is very important */ -#define command_xcvr_rx() \ - do { \ - maca_txlen = ((0xff)<<16); \ - maca_dmatx = (uint32_t)&ackBox; \ - maca_dmarx = (uint32_t)data; \ - maca_tmren = (maca_cpl_clk | maca_soft_clk); \ - maca_control = (control_prm | control_asap | control_seq_rx); \ - }while(0) - -#define LED LED_GREEN - -#define led_on() do { led = 1; *GPIO_DATA0 = LED; } while(0); -#define led_off() do { led = 0; *GPIO_DATA0 = 0x00000000; } while(0); - -volatile uint8_t led; -void toggle_led(void) { - if(0 == led) { - led_on(); - led = 1; - - } else { - led_off(); - } -} +#define DEBUG_MACA 1 void main(void) { - volatile uint32_t i; - uint16_t status; + volatile packet_t *p; - *GPIO_PAD_DIR0 = LED; - led_on(); - uart_init(INC,MOD); + print_welcome("rftest-rx"); + reset_maca(); radio_init(); flyback_init(); vreg_init(); init_phy(); + free_all_packets(); /* trim the reference osc. to 24MHz */ pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); @@ -59,102 +27,18 @@ void main(void) { set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ - *MACA_CONTROL = (1 << PRM) | (NO_CCA << MODE); - for(i=0; ilength); + for(j=0, k=0; j < ((p->length)%PER_ROW)-1; j++) { + for(i=0; i < PER_ROW; i++, k++) { + if(k>=p->length) { break; } + printf("%02x ",p->data[j*PER_ROW+i]); + } + printf("\n\r"); + } + printf("\n\r"); + } + return; +} + void dump_regs(uint32_t base, uint32_t len) { volatile uint32_t i; diff --git a/tests/tests.h b/tests/tests.h index 11a7bc1df..d3b7f48f4 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -9,5 +9,6 @@ void uart1_init(uint16_t inc, uint16_t mod); void print_welcome(char* testname); void dump_regs(uint32_t base, uint32_t len); +void print_packet(packet_t *p); #endif From 4b17c144d00640bb9e29af083b973dc21a4d8fa5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 7 Mar 2010 15:39:56 -0500 Subject: [PATCH 252/471] LEDs now indicate bit position (instead of (1 << pos)) which is more consistent with how everything else works --- board/redbee-dev.h | 6 +++--- board/redbee-econotag.h | 6 +++--- board/redbee-r1.h | 6 +++--- lib/include/gpio.h | 5 +++++ tests/blink-blue.c | 6 +++--- tests/blink-green.c | 6 +++--- tests/blink-red.c | 6 +++--- tests/blink-white.c | 8 +++----- tests/led.h | 8 ++++---- tests/rftest-rx.c | 9 ++++++++- tests/rftest-tx.c | 15 --------------- tests/tests.c | 5 +++-- tests/tests.h | 10 +++++++++- 13 files changed, 50 insertions(+), 46 deletions(-) diff --git a/board/redbee-dev.h b/board/redbee-dev.h index d7401a60d..4dd761c0d 100644 --- a/board/redbee-dev.h +++ b/board/redbee-dev.h @@ -1,9 +1,9 @@ #ifndef BOARD_REDBEE_DEV_H #define BOARD_REDBEE_DEV_H -#define LED_RED (1 << 23) -#define LED_GREEN (1 << 24) -#define LED_BLUE (1 << 25) +#define LED_RED 23 +#define LED_GREEN 24 +#define LED_BLUE 25 /* XTAL TUNE parameters */ /* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ diff --git a/board/redbee-econotag.h b/board/redbee-econotag.h index 75ac46855..6838dae93 100644 --- a/board/redbee-econotag.h +++ b/board/redbee-econotag.h @@ -1,9 +1,9 @@ #ifndef BOARD_REDBEE_DEV_H #define BOARD_REDBEE_DEV_H -#define LED_RED (1 << 23) -#define LED_GREEN (1 << 24) -#define LED_BLUE (1 << 25) +#define LED_RED 12 +#define LED_GREEN 21 +#define LED_BLUE 35 /* XTAL TUNE parameters */ /* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ diff --git a/board/redbee-r1.h b/board/redbee-r1.h index 7737dc33b..698a02549 100644 --- a/board/redbee-r1.h +++ b/board/redbee-r1.h @@ -1,9 +1,9 @@ #ifndef BOARD_REDBEE_R1_H #define BOARD_REDBEE_R1_H -#define LED_RED (1 << 8) -#define LED_GREEN (1 << 9) -#define LED_BLUE (1 << 10) +#define LED_RED 8 +#define LED_GREEN 9 +#define LED_BLUE 10 /* XTAL TUNE parameters */ /* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ diff --git a/lib/include/gpio.h b/lib/include/gpio.h index 89c16d623..5d79253a8 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -16,6 +16,11 @@ #define GPIO_PAD_PU_SEL0 ((volatile uint32_t *) 0x80000030) #define GPIO_PAD_PU_SEL1 ((volatile uint32_t *) 0x80000034) +#define GPIO_DATA_SET0 ((volatile uint32_t *) 0x80000048) +#define GPIO_DATA_SET1 ((volatile uint32_t *) 0x8000004c) +#define GPIO_DATA_RESET0 ((volatile uint32_t *) 0x80000050) +#define GPIO_DATA_RESET1 ((volatile uint32_t *) 0x80000054) + /* select pullup or pulldown for GPIO 0-31 (b=0-31) */ #define gpio_sel0_pullup(b) (set_bit(reg32(GPIO_PAD_PU_SEL0),b)) diff --git a/tests/blink-blue.c b/tests/blink-blue.c index a5b0165c6..a9410cd01 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -3,16 +3,16 @@ #define DELAY 400000 -#define LED_BITS LED_BLUE +#define LED LED_BLUE void main(void) { volatile uint32_t i; - *GPIO_PAD_DIR0 = LED_BITS; + *GPIO_PAD_DIR0 = ( 1<< LED ); while(1) { - *GPIO_DATA0 = LED_BITS; + *GPIO_DATA0 = (1 << LED ); for(i=0; i #include -#include "led.h" - #define DELAY 400000 -#define LED_BITS LED_WHITE +#define LED LED_WHITE void main(void) { volatile uint32_t i; - *GPIO_PAD_DIR0 = LED_BITS; + *GPIO_PAD_DIR0 = ( 1<< LED ); while(1) { - *GPIO_DATA0 = LED_BITS; + *GPIO_DATA0 = (1 << LED ); for(i=0; ilength); for(j=0, k=0; j < ((p->length)%PER_ROW)-1; j++) { for(i=0; i < PER_ROW; i++, k++) { - if(k>=p->length) { break; } + if(k >= (p->length + 1) ) { goto out; } /* + 1 since first byte is len+2 */ printf("%02x ",p->data[j*PER_ROW+i]); } printf("\n\r"); } + out: printf("\n\r"); } return; diff --git a/tests/tests.h b/tests/tests.h index d3b7f48f4..29158c330 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -9,6 +9,14 @@ void uart1_init(uint16_t inc, uint16_t mod); void print_welcome(char* testname); void dump_regs(uint32_t base, uint32_t len); -void print_packet(packet_t *p); +void print_packet(volatile packet_t *p); + +#define toggle_gpio0(x) do { \ + if(bit_is_set(*GPIO_DATA0,x)) { \ + *GPIO_DATA_RESET0 = (1 << x); \ + } else { \ + *GPIO_DATA_SET0 = (1 << x) ; \ + } \ + } while(0); #endif From 667b238148fb8b877fda411a134fc0b9cb443620 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 7 Mar 2010 16:49:57 -0500 Subject: [PATCH 253/471] rftest-tx and refine post_tx for fast transmission --- lib/maca.c | 14 ++-- tests/rftest-tx.c | 160 ++++++++++------------------------------------ 2 files changed, 40 insertions(+), 134 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 341d12b97..93e216c2f 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -177,24 +177,24 @@ void post_tx(void) { /* disable soft timeout clock */ /* disable start clock */ *MACA_TMRDIS = (1 << maca_tmren_sft) | ( 1 << maca_tmren_strt ) ; - /* set complete clock to long value */ + + /* this doesn't work right */ + /* lock up seems to happen when switching from receive to transmitt */ + /* set complete clock to long value */ /* acts like a watchdog incase the MACA locks up */ - *MACA_CPLCLK = *MACA_CLK + (CLK_PER_BYTE * dma_tx->length+6) + (CLK_PER_BYTE * 0); +// *MACA_CPLCLK = *MACA_CLK + (CLK_PER_BYTE * dma_tx->length+6) + (CLK_PER_BYTE * 0); /* enable complete clock */ - *MACA_TMREN = (1 << maca_tmren_cpl); - /* do the transmit */ - for(i=0; i<1000; i++) { continue; } +// *MACA_TMREN = (1 << maca_tmren_cpl); + enable_irq(MACA); /* *MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) | (maca_ctrl_mode_no_cca << maca_ctrl_mode) | (1 << maca_ctrl_asap) | (maca_ctrl_seq_tx)); */ -// for(i=0; i<1000; i++) { continue; } *MACA_CONTROL = ( (1 << maca_ctrl_prm) | (maca_ctrl_mode_no_cca << maca_ctrl_mode) | (1 << maca_ctrl_asap) | (maca_ctrl_seq_tx)); - for(i=0; i<1000; i++) { continue; } } void tx_packet(volatile packet_t *p) { diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index c6d3484a9..fb5b3dbe1 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -5,57 +5,40 @@ #include "tests.h" #include "config.h" -#define DELAY 100000 -#define DATA 0x00401000 -#define DEBUG_MACA 1 +#define LED LED_RED -uint32_t ackBox[10]; +#define PAYLOAD_LEN 16 +#define DELAY 400000 -#define command_xcvr_rx() \ - do { \ - maca_txlen = (uint32_t)1<<16; \ - maca_dmatx = (uint32_t)&ackBox; \ - maca_dmarx = DATA; \ - maca_tmren = (maca_cpl_clk | maca_soft_clk); \ - maca_control = (control_prm | control_asap | control_seq_rx); \ - }while(0) - -#define PAYLOAD_LEN 16 /* not including the extra 4 bytes for len+fcs+somethingelse */ -/* maca dmatx needs extra 4 bytes for checksum */ -/* needs + 4 bytes for len(1 byte) + fcs(2 bytes) + somethingelse */ -#define command_xcvr_tx() \ - do { \ - maca_txlen = (uint32_t)(PAYLOAD_LEN+4); \ - maca_dmatx = (uint32_t)DATA; \ - maca_dmarx = (uint32_t)&ackBox; \ - maca_control = (control_prm | control_mode_no_cca | \ - control_asap | control_seq_tx); \ - }while(0) - - -volatile uint8_t *data; -uint8_t count=0; -void fill_data(void) { - uint8_t i; +void fill_packet(volatile packet_t *p) { + static volatile uint8_t count=0; + volatile uint8_t i; + p->length = PAYLOAD_LEN; for(i=0; idata[i] = count++; } } void main(void) { volatile uint32_t i; - uint16_t status; + volatile packet_t *p; + + *GPIO_DATA0 = 0x00000000; + *GPIO_PAD_DIR0 = ( 1 << LED ); + /* read from the data register instead of the pad */ + /* this is needed because the led clamps the voltage low */ + *GPIO_DATA_SEL0 = ( 1 << LED ); - *GPIO_PAD_DIR0 = LED; - led_on(); - uart_init(INC,MOD); + print_welcome("rftest-tx"); + reset_maca(); radio_init(); vreg_init(); flyback_init(); init_phy(); + free_all_packets(); /* trim the reference osc. to 24MHz */ pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); @@ -63,102 +46,25 @@ void main(void) { set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ - *MACA_CONTROL = (1 << PRM) | (NO_CCA << MODE); - for(i=0; i Date: Sun, 7 Mar 2010 16:50:32 -0500 Subject: [PATCH 254/471] condense print_packet output --- tests/tests.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/tests.c b/tests/tests.c index 56fa157aa..f9a56eeef 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -32,16 +32,15 @@ void print_packet(volatile packet_t *p) { #define PER_ROW 16 if(p) { printf("len 0x%02x\n\r",p->length); - for(j=0, k=0; j < ((p->length)%PER_ROW)-1; j++) { + for(j=0, k=0; j <= ((p->length)%PER_ROW); j++) { for(i=0; i < PER_ROW; i++, k++) { if(k >= (p->length + 1) ) { goto out; } /* + 1 since first byte is len+2 */ printf("%02x ",p->data[j*PER_ROW+i]); } printf("\n\r"); } - out: - printf("\n\r"); } + out: return; } From 024448e65eac3de19702ebf49daf77cbe49aa437 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 7 Mar 2010 17:04:30 -0500 Subject: [PATCH 255/471] add an offset to packet_t to compensate for the added length byte on reception --- lib/include/packet.h | 4 ++++ lib/maca.c | 5 +++-- tests/per.c | 2 +- tests/rftest-tx.c | 1 + tests/tests.c | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/include/packet.h b/lib/include/packet.h index cf336458f..ea9fb0ca0 100644 --- a/lib/include/packet.h +++ b/lib/include/packet.h @@ -12,6 +12,10 @@ struct packet { uint8_t length; volatile struct packet * left; volatile struct packet * right; + /* offset into data for first byte of the packet payload */ + /* On TX this should be 0 */ + /* On RX this should be 1 since the maca puts the length as the first byte*/ + uint8_t offset; uint8_t data[MAX_PACKET_SIZE+1]; /* + 1 since maca returns the length as the first byte */ }; typedef struct packet packet_t; diff --git a/lib/maca.c b/lib/maca.c index 93e216c2f..fe0d54ab2 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -167,7 +167,7 @@ void post_tx(void) { last_post = TX_POST; dma_tx = tx_head; *MACA_TXLEN = (uint32_t)((dma_tx->length) + 2); - *MACA_DMATX = (uint32_t)&(dma_tx->data[0]); + *MACA_DMATX = (uint32_t)&(dma_tx->data[ 0 + dma_tx->offset]); if(dma_rx == 0) { dma_rx = get_free_packet(); if (dma_rx == 0) @@ -255,8 +255,9 @@ void free_tx_head(void) { void add_to_rx(volatile packet_t *p) { safe_irq_disable(MACA); - + if(!p) { PRINTF("add_to_rx passed packet 0\n\r"); return; } + p->offset = 1; /* first byte is the length */ if(rx_head == 0) { /* start a new queue if empty */ rx_end = p; diff --git a/tests/per.c b/tests/per.c index 826ba640f..82e9f8ffb 100644 --- a/tests/per.c +++ b/tests/per.c @@ -47,7 +47,7 @@ uint32_t get_time(void) { #define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8)) void build_session_req(volatile packet_t *p) { - p->length = 4; + p->length = 4; p->offset = 0; p->data[0] = 0x01; p->data[1] = 0x02; p->data[2] = 0x03; diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index fb5b3dbe1..84bdfb638 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -14,6 +14,7 @@ void fill_packet(volatile packet_t *p) { static volatile uint8_t count=0; volatile uint8_t i; p->length = PAYLOAD_LEN; + p->offset = 0; for(i=0; idata[i] = count++; } diff --git a/tests/tests.c b/tests/tests.c index f9a56eeef..e5442ed3a 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -35,7 +35,7 @@ void print_packet(volatile packet_t *p) { for(j=0, k=0; j <= ((p->length)%PER_ROW); j++) { for(i=0; i < PER_ROW; i++, k++) { if(k >= (p->length + 1) ) { goto out; } /* + 1 since first byte is len+2 */ - printf("%02x ",p->data[j*PER_ROW+i]); + printf("%02x ",p->data[j*PER_ROW + i + p->offset]); } printf("\n\r"); } From a04a69480b0c0f572d3b04136f7f5497aae40cd3 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 7 Mar 2010 17:07:54 -0500 Subject: [PATCH 256/471] add the 4 byte preamble --- lib/maca.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index fe0d54ab2..1123d4274 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -130,7 +130,7 @@ void post_receive(void) { *MACA_TMREN = (1 << maca_tmren_sft); /* start the receive sequence */ enable_irq(MACA); - *MACA_CONTROL = ( (1 << maca_ctrl_asap) | + *MACA_CONTROL = ( (1 << maca_ctrl_asap) | ( 4 << PRECOUNT) | (1 << maca_ctrl_auto) | (1 << maca_ctrl_prm) | (maca_ctrl_seq_rx)); @@ -187,14 +187,14 @@ void post_tx(void) { // *MACA_TMREN = (1 << maca_tmren_cpl); enable_irq(MACA); -/* *MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) | - (maca_ctrl_mode_no_cca << maca_ctrl_mode) | - (1 << maca_ctrl_asap) | - (maca_ctrl_seq_tx)); */ - *MACA_CONTROL = ( (1 << maca_ctrl_prm) | + *MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) | (maca_ctrl_mode_no_cca << maca_ctrl_mode) | (1 << maca_ctrl_asap) | (maca_ctrl_seq_tx)); +/* *MACA_CONTROL = ( (1 << maca_ctrl_prm) | + (maca_ctrl_mode_no_cca << maca_ctrl_mode) | + (1 << maca_ctrl_asap) | + (maca_ctrl_seq_tx)); */ } void tx_packet(volatile packet_t *p) { From fece5269c7999c8d1f1558bac2f59b80dc28b397 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 7 Mar 2010 17:14:00 -0500 Subject: [PATCH 257/471] get the newlines straight in packet_print --- tests/rftest-tx.c | 2 +- tests/tests.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 84bdfb638..aec89e159 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -7,7 +7,7 @@ #define LED LED_RED -#define PAYLOAD_LEN 16 +#define PAYLOAD_LEN 120 #define DELAY 400000 void fill_packet(volatile packet_t *p) { diff --git a/tests/tests.c b/tests/tests.c index e5442ed3a..71fa01fce 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -31,16 +31,17 @@ void print_packet(volatile packet_t *p) { volatile uint8_t i,j,k; #define PER_ROW 16 if(p) { - printf("len 0x%02x\n\r",p->length); + printf("len 0x%02x",p->length); for(j=0, k=0; j <= ((p->length)%PER_ROW); j++) { + printf("\n\r"); for(i=0; i < PER_ROW; i++, k++) { if(k >= (p->length + 1) ) { goto out; } /* + 1 since first byte is len+2 */ printf("%02x ",p->data[j*PER_ROW + i + p->offset]); } - printf("\n\r"); } } out: + printf("\n\r"); return; } From e8eaece25aea204a59b19cb671c5bee1a728658c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 7 Mar 2010 17:28:40 -0500 Subject: [PATCH 258/471] fix print_packet so that it doesn't break everything --- tests/tests.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/tests.c b/tests/tests.c index 71fa01fce..b4d42d6d7 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -35,12 +35,14 @@ void print_packet(volatile packet_t *p) { for(j=0, k=0; j <= ((p->length)%PER_ROW); j++) { printf("\n\r"); for(i=0; i < PER_ROW; i++, k++) { - if(k >= (p->length + 1) ) { goto out; } /* + 1 since first byte is len+2 */ + if(k >= (p->length + 1) ) { /* + 1 since first byte is len+2 */ + printf("\n\r"); + return; + } printf("%02x ",p->data[j*PER_ROW + i + p->offset]); } } } - out: printf("\n\r"); return; } From fb922c0ab9a8d04151da78d5c135b2043893c0c5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 7 Mar 2010 18:48:36 -0500 Subject: [PATCH 259/471] transmit at max power --- tests/rftest-tx.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index aec89e159..aed10db8e 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -7,15 +7,19 @@ #define LED LED_RED -#define PAYLOAD_LEN 120 -#define DELAY 400000 +/* 802.15.4 PSDU is 127 MAX */ +/* 2 bytes are the FCS */ +/* therefore 125 is the max payload length */ +#define PAYLOAD_LEN 16 +#define DELAY 1 void fill_packet(volatile packet_t *p) { static volatile uint8_t count=0; volatile uint8_t i; p->length = PAYLOAD_LEN; p->offset = 0; - for(i=0; idata[0] = 0xff; + for(i=1; idata[i] = count++; } } @@ -44,7 +48,9 @@ void main(void) { /* trim the reference osc. to 24MHz */ pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); - set_power(0x0f); /* 0dbm */ +// set_power(0x0f); /* 0xf = -1dbm, see 3-22 */ +// set_power(0x11); /* 0x11 = 3dbm, see 3-22 */ + set_power(0x12); /* 0x12 is the highest, not documented*/ set_channel(0); /* channel 11 */ /* initial radio command */ From d3f6ef07f2c4d70c37d49bc211e61094d04c4285 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 7 Mar 2010 18:48:47 -0500 Subject: [PATCH 260/471] sort out the length details. --- lib/include/packet.h | 9 +++++---- lib/maca.c | 5 +++-- tests/tests.c | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/include/packet.h b/lib/include/packet.h index ea9fb0ca0..4b5443235 100644 --- a/lib/include/packet.h +++ b/lib/include/packet.h @@ -1,22 +1,23 @@ #ifndef PACKET_H #define PACKET_H -#ifndef MAX_PACKET_SIZE -#define MAX_PACKET_SIZE 127 +/* does not include 2 byte FCS checksum */ +#ifndef MAX_PAYLOAD_SIZE +#define MAX_PAYLOAD_SIZE 125 #endif typedef uint16_t short_addr_t; struct packet { short_addr_t addr; - uint8_t length; + uint8_t length; /* does not include FCS checksum */ volatile struct packet * left; volatile struct packet * right; /* offset into data for first byte of the packet payload */ /* On TX this should be 0 */ /* On RX this should be 1 since the maca puts the length as the first byte*/ uint8_t offset; - uint8_t data[MAX_PACKET_SIZE+1]; /* + 1 since maca returns the length as the first byte */ + uint8_t data[MAX_PAYLOAD_SIZE+2+1]; /* +2 for FCS; + 1 since maca returns the length as the first byte */ }; typedef struct packet packet_t; diff --git a/lib/maca.c b/lib/maca.c index 1123d4274..ca80e6131 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -21,9 +21,10 @@ #define CLK_PER_BYTE 8 #ifndef RECV_SOFTIMEOUT -#define RECV_SOFTIMEOUT 4*128*CLK_PER_BYTE /* 4 128 byte packets */ +#define RECV_SOFTIMEOUT (8*128*CLK_PER_BYTE) /* 4 128 byte packets */ #endif +#define MAX_PACKET_SIZE (MAX_PAYLOAD_SIZE + 2) /* packet includes 2 bytes of checksum */ #define reg(x) (*(volatile uint32_t *)(x)) @@ -345,7 +346,7 @@ void maca_isr(void) { if (data_indication_irq()) { *MACA_CLRIRQ = (1 << maca_irq_di); - dma_rx->length = *MACA_GETRXLVL - 2; + dma_rx->length = *MACA_GETRXLVL - 2; /* packet length does not include FCS */ // PRINTF("maca data ind %x %d\n\r", dma_rx, dma_rx->length); add_to_rx(dma_rx); dma_rx = 0; diff --git a/tests/tests.c b/tests/tests.c index b4d42d6d7..9bb300ce2 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -35,7 +35,7 @@ void print_packet(volatile packet_t *p) { for(j=0, k=0; j <= ((p->length)%PER_ROW); j++) { printf("\n\r"); for(i=0; i < PER_ROW; i++, k++) { - if(k >= (p->length + 1) ) { /* + 1 since first byte is len+2 */ + if(k >= p->length ) { printf("\n\r"); return; } From 2a07cbe66589a594e9d6546afc359980e579b3d2 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 12:03:20 -0500 Subject: [PATCH 261/471] enabled softclk timeouts fixed post interleaving problem fixed interrupts in ResumeMACASync. This seems quite solid now. --- lib/include/maca.h | 2 ++ lib/maca.c | 74 +++++++++++++++++++++++++++------------------- tests/per.c | 5 +++- 3 files changed, 49 insertions(+), 32 deletions(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index c6fe8e438..0bdd8fc8c 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -434,6 +434,8 @@ enum maca_status_bits { #define filter_failed_irq() bit_is_set(*MACA_IRQ,maca_irq_flt) #define checksum_failed_irq() bit_is_set(*MACA_IRQ,maca_irq_crc) #define data_indication_irq() bit_is_set(*MACA_IRQ,maca_irq_di) +#define softclock_irq() bit_is_set(*MACA_IRQ,maca_irq_sftclk) +#define poll_irq() bit_is_set(*MACA_IRQ,maca_irq_poll) #define status_is_not_completed() ((*MACA_STATUS & 0xffff) == maca_cc_not_completed) #define status_is_success() ((*MACA_STATUS & 0xffff) == maca_cc_success) diff --git a/lib/maca.c b/lib/maca.c index ca80e6131..a885c9769 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -21,7 +21,7 @@ #define CLK_PER_BYTE 8 #ifndef RECV_SOFTIMEOUT -#define RECV_SOFTIMEOUT (8*128*CLK_PER_BYTE) /* 4 128 byte packets */ +#define RECV_SOFTIMEOUT (8*128*CLK_PER_BYTE) #endif #define MAX_PACKET_SIZE (MAX_PAYLOAD_SIZE + 2) /* packet includes 2 bytes of checksum */ @@ -140,7 +140,9 @@ void post_receive(void) { (1 << maca_ctrl_asap) | ( 4 << PRECOUNT) | (1 << maca_ctrl_prm) | (maca_ctrl_seq_rx));*/ - for(i=0; i<1000; i++) { continue; } + /* status bit 10 is set immediately */ + /* then 11, 10, and 9 get set */ + /* they are cleared once we get back to maca_isr */ } @@ -156,7 +158,6 @@ volatile packet_t* rx_packet(void) { // print_packets("rx_packet"); irq_restore(); - if(get_field(*MACA_STATUS,CODE) != NOT_COMPLETED) { post_receive(); } return p; } @@ -177,15 +178,13 @@ void post_tx(void) { *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); /* disable soft timeout clock */ /* disable start clock */ - *MACA_TMRDIS = (1 << maca_tmren_sft) | ( 1 << maca_tmren_strt ) ; + *MACA_TMRDIS = (1 << maca_tmren_sft) | ( 1<< maca_tmren_cpl) | ( 1 << maca_tmren_strt ) ; - /* this doesn't work right */ - /* lock up seems to happen when switching from receive to transmitt */ /* set complete clock to long value */ - /* acts like a watchdog incase the MACA locks up */ -// *MACA_CPLCLK = *MACA_CLK + (CLK_PER_BYTE * dma_tx->length+6) + (CLK_PER_BYTE * 0); + /* acts like a watchdog in case the MACA locks up */ + *MACA_CPLCLK = *MACA_CLK + (CLK_PER_BYTE * 256); /* enable complete clock */ -// *MACA_TMREN = (1 << maca_tmren_cpl); + *MACA_TMREN = (1 << maca_tmren_cpl); enable_irq(MACA); *MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) | @@ -196,6 +195,9 @@ void post_tx(void) { (maca_ctrl_mode_no_cca << maca_ctrl_mode) | (1 << maca_ctrl_asap) | (maca_ctrl_seq_tx)); */ + /* status bit 10 is set immediately */ + /* then 11, 10, and 9 get set */ + /* they are cleared once we get back to maca_isr */ } void tx_packet(volatile packet_t *p) { @@ -216,7 +218,6 @@ void tx_packet(volatile packet_t *p) { } // print_packets("tx packet"); irq_restore(); - if(get_field(*MACA_STATUS,CODE) != NOT_COMPLETED) { post_tx(); } return; } @@ -344,6 +345,15 @@ void maca_isr(void) { // print_packets("maca_isr"); + if (bit_is_set(*MACA_STATUS, maca_status_ovr)) + PRINTF("maca overrun\n\r"); + if (bit_is_set(*MACA_STATUS, maca_status_busy)) + PRINTF("maca busy\n\r"); + if (bit_is_set(*MACA_STATUS, maca_status_crc)) + PRINTF("maca crc error\n\r"); + if (bit_is_set(*MACA_STATUS, maca_status_to)) + PRINTF("maca timeout\n\r"); + if (data_indication_irq()) { *MACA_CLRIRQ = (1 << maca_irq_di); dma_rx->length = *MACA_GETRXLVL - 2; /* packet length does not include FCS */ @@ -361,6 +371,12 @@ void maca_isr(void) { ResumeMACASync(); *MACA_CLRIRQ = (1 << maca_irq_crc); } + if (softclock_irq()) { + *MACA_CLRIRQ = (1 << maca_irq_sftclk); + } + if (poll_irq()) { + *MACA_CLRIRQ = (1 << maca_irq_poll); + } if(action_complete_irq()) { /* PRINTF("maca action complete %d\n\r", get_field(*MACA_CONTROL,SEQUENCE)); */ if(last_post == TX_POST) { @@ -370,26 +386,17 @@ void maca_isr(void) { ResumeMACASync(); *MACA_CLRIRQ = (1 << maca_irq_acpl); } - i = *MACA_IRQ; - if (i != 0) - PRINTF("*MACA_IRQ %x\n\r", i); - - if (bit_is_set(*MACA_STATUS, maca_status_ovr)) - PRINTF("maca overrun\n\r"); - if (bit_is_set(*MACA_STATUS, maca_status_busy)) - PRINTF("maca busy\n\r"); - if (bit_is_set(*MACA_STATUS, maca_status_crc)) - PRINTF("maca crc error\n\r"); - if (bit_is_set(*MACA_STATUS, maca_status_to)) - PRINTF("maca timeout\n\r"); decode_status(); + if (*MACA_IRQ != 0) + PRINTF("*MACA_IRQ %x\n\r", *MACA_IRQ); + if(tx_head != 0) { post_tx(); - } else if(last_post != TX_POST) { + } else { post_receive(); - } + } } @@ -410,7 +417,7 @@ void init_phy(void) for(cnt = 0; cnt < 400000; cnt++) {}; - *MACA_TMREN = (1 << maca_tmren_strt) | (1 << maca_tmren_cpl); +// *MACA_TMREN = (1 << maca_tmren_strt) | (1 << maca_tmren_cpl); *MACA_CLKDIV = MACA_CLOCK_DIV; *MACA_WARMUP = 0x00180012; *MACA_EOFDELAY = 0x00000004; @@ -418,8 +425,14 @@ void init_phy(void) *MACA_TXCCADELAY = 0x00000025; *MACA_FRAMESYNC0 = 0x000000A7; *MACA_CLK = 0x00000008; - *MACA_MASKIRQ = ((1 << maca_irq_rst) | (1 << maca_irq_acpl) | (1 << maca_irq_cm) | - (1 << maca_irq_flt) | (1 << maca_irq_crc) | (1 << maca_irq_di)); + *MACA_MASKIRQ = ((1 << maca_irq_rst) | + (1 << maca_irq_acpl) | + (1 << maca_irq_cm) | + (1 << maca_irq_flt) | + (1 << maca_irq_crc) | + (1 << maca_irq_di) | + (1 << maca_irq_sftclk) + ); *MACA_SLOTOFFSET = 0x00350000; } @@ -885,10 +898,9 @@ void ResumeMACASync(void) { volatile uint32_t clk, TsmRxSteps, LastWarmupStep, LastWarmupData, LastWarmdownStep, LastWarmdownData; // bool_t tmpIsrStatus; - volatile uint32_t i, saved_irq; + volatile uint32_t i, macairq; + safe_irq_disable(MACA); -// disable_irq(MACA); -// saved_irq = *MACA_IRQ; // ITC_DisableInterrupt(gMacaInt_c); // AppInterrupts_ProtectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented @@ -936,7 +948,7 @@ void ResumeMACASync(void) // AppInterrupts_UnprotectFromMACAIrq(tmpIsrStatus); <- Original from MAC code, but not sure how is it implemented // ITC_EnableInterrupt(gMacaInt_c); -// *MACA_IRQ = saved_irq; // enable_irq(MACA); + irq_restore(); } diff --git a/tests/per.c b/tests/per.c index 82e9f8ffb..a65f01d4d 100644 --- a/tests/per.c +++ b/tests/per.c @@ -47,7 +47,7 @@ uint32_t get_time(void) { #define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8)) void build_session_req(volatile packet_t *p) { - p->length = 4; p->offset = 0; + p->length = 125; p->offset = 0; p->data[0] = 0x01; p->data[1] = 0x02; p->data[2] = 0x03; @@ -96,7 +96,10 @@ void main(void) { set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ + /* enable MACA interrupts */ + /* call the handler once to start the maca cycle */ enable_irq(MACA); + maca_isr(); /* initial radio command */ /* nop, promiscuous, no cca */ From 571861c6ea1418d5a121a6ea0e5fd9ab71b0380c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 12:29:49 -0500 Subject: [PATCH 262/471] post_receive still needs to timeout if it can't find any free bufferes. --- lib/maca.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/maca.c b/lib/maca.c index a885c9769..844839dbe 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -122,6 +122,11 @@ void post_receive(void) { dma_rx = get_free_packet(); if (dma_rx == 0) { printf("trying to fill MACA_DMARX but out of packet buffers\n\r"); + /* set the sftclock so that we return to the maca_isr */ + *MACA_SFTCLK = *MACA_CLK + RECV_SOFTIMEOUT; /* soft timeout */ + *MACA_TMREN = (1 << maca_tmren_sft); + /* no free buffers, so don't start a reception */ + enable_irq(MACA); return; } } From 362cfe43eb732753513cffac1362caf31f6614b7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 12:30:25 -0500 Subject: [PATCH 263/471] add starting maca_isr call. need to put all this into maca_init() --- tests/rftest-rx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index a566800e2..cb97d2940 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -34,6 +34,7 @@ void main(void) { set_channel(0); /* channel 11 */ enable_irq(MACA); + maca_isr(); /* initial radio command */ /* nop, promiscuous, no cca */ From 386f19072018a1ccfb4b7585c7742f241188fe37 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 12:42:37 -0500 Subject: [PATCH 264/471] first byte can't be anything you want it to be. --- tests/per.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/per.c b/tests/per.c index a65f01d4d..d24c2bd72 100644 --- a/tests/per.c +++ b/tests/per.c @@ -16,7 +16,7 @@ #define DEBUG_MACA 1 /* how long to wait between session requests */ -#define SESSION_REQ_TIMEOUT 10000 /* phony seconds */ +#define SESSION_REQ_TIMEOUT 10000 /* phony seconds */ enum STATES { SCANNING, @@ -36,6 +36,8 @@ ptype_t get_packet_type(packet_t *p) { typedef uint32_t session_id_t; + + /* phony get_time */ uint32_t get_time(void) { static volatile int32_t cur_time = 0; @@ -47,11 +49,12 @@ uint32_t get_time(void) { #define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8)) void build_session_req(volatile packet_t *p) { - p->length = 125; p->offset = 0; - p->data[0] = 0x01; - p->data[1] = 0x02; - p->data[2] = 0x03; - p->data[3] = 0x04; + static uint8_t count = 0; + p->length = 4; p->offset = 0; + p->data[0] = 0xff; + p->data[1] = 0x01; + p->data[2] = 0x02; + p->data[3] = count++; return; } From 06e3e0b2072967ed5d1121d745ae80013aa011f5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 14:49:31 -0500 Subject: [PATCH 265/471] add maca_init() changed tests to use it. --- lib/include/maca.h | 1 + lib/maca.c | 20 ++++++++++++++++---- tests/per.c | 33 +++++++++------------------------ tests/rftest-rx.c | 25 +++++++------------------ tests/rftest-tx.c | 39 ++++++++++++++++++--------------------- 5 files changed, 51 insertions(+), 67 deletions(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index 0bdd8fc8c..c2c5c26c8 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -106,6 +106,7 @@ #define MACA_KEY0 ((volatile uint32_t *) (MACA_BASE+0x164)) #define MACA_OPTIONS ((volatile uint32_t *) (MACA_BASE+0x180)) +void maca_init(void); void reset_maca(void); void init_phy(void); void flyback_init(void); diff --git a/lib/maca.c b/lib/maca.c index 844839dbe..f295f56c7 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -42,8 +42,23 @@ static volatile uint8_t last_post = NO_POST; #define safe_irq_disable(x) volatile uint32_t saved_irq; saved_irq = *INTENABLE; disable_irq(x) #define irq_restore() *INTENABLE = saved_irq -#define print_packets(x) Print_Packets(x) +void maca_init(void) { + reset_maca(); + radio_init(); + flyback_init(); + init_phy(); + free_all_packets(); + + /* initial radio command */ + /* nop, promiscuous, no cca */ + *MACA_CONTROL = (1 << PRM) | (NO_CCA << MODE); + + enable_irq(MACA); + maca_isr(); + +} +#define print_packets(x) Print_Packets(x) void Print_Packets(char *s) { volatile packet_t *p; int i = 0; @@ -232,11 +247,8 @@ void free_all_packets(void) { free_head = 0; for(i=0; i Date: Mon, 8 Mar 2010 14:49:58 -0500 Subject: [PATCH 266/471] use thumb again. --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index 7506f0cf1..a6156ec45 100644 --- a/config.mk +++ b/config.mk @@ -1,7 +1,7 @@ PLATFORM_LDFLAGS = PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -ffunction-sections -msoft-float -Wcast-align -Wall PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mthumb-interwork -THUMB_FLAGS= #-mthumb -mcallee-super-interworking +THUMB_FLAGS= -mthumb -mcallee-super-interworking ######################################################################### From 6ab2c0e69a45768b08b41750fa6013d9d3f90fc1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 15:22:37 -0500 Subject: [PATCH 267/471] don't send ack's in rftest-tx --- tests/rftest-tx.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 16fa0cb02..862b8ed52 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -11,17 +11,21 @@ /* 2 bytes are the FCS */ /* therefore 125 is the max payload length */ #define PAYLOAD_LEN 16 -#define DELAY 400000 +#define DELAY 100000 void fill_packet(volatile packet_t *p) { static volatile uint8_t count=0; volatile uint8_t i; p->length = PAYLOAD_LEN; p->offset = 0; - p->data[0] = 0xff; - for(i=1; idata[i] = count++; - } + } + + /* acks get treated differently, even in promiscuous mode */ + /* setting the second bit makes sure that we never send an ack */ + /* or any valid 802.15.4-2006 packet */ + p->data[0] |= (1 << 2); } void main(void) { From 0f9f67d002922874904ad6bc11af8f708ca1eb79 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 17:35:34 -0500 Subject: [PATCH 268/471] add dir set and reset --- lib/include/gpio.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/include/gpio.h b/lib/include/gpio.h index 5d79253a8..1eeda2609 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -16,10 +16,14 @@ #define GPIO_PAD_PU_SEL0 ((volatile uint32_t *) 0x80000030) #define GPIO_PAD_PU_SEL1 ((volatile uint32_t *) 0x80000034) -#define GPIO_DATA_SET0 ((volatile uint32_t *) 0x80000048) -#define GPIO_DATA_SET1 ((volatile uint32_t *) 0x8000004c) -#define GPIO_DATA_RESET0 ((volatile uint32_t *) 0x80000050) -#define GPIO_DATA_RESET1 ((volatile uint32_t *) 0x80000054) +#define GPIO_DATA_SET0 ((volatile uint32_t *) 0x80000048) +#define GPIO_DATA_SET1 ((volatile uint32_t *) 0x8000004c) +#define GPIO_DATA_RESET0 ((volatile uint32_t *) 0x80000050) +#define GPIO_DATA_RESET1 ((volatile uint32_t *) 0x80000054) +#define GPIO_PAD_DIR_SET0 ((volatile uint32_t *) 0x80000058) +#define GPIO_PAD_DIR_SET1 ((volatile uint32_t *) 0x8000005c) +#define GPIO_PAD_DIR_RESET0 ((volatile uint32_t *) 0x80000060) +#define GPIO_PAD_DIR_RESET1 ((volatile uint32_t *) 0x80000064) /* select pullup or pulldown for GPIO 0-31 (b=0-31) */ From d097647edd45f718aff1a53f050ab1676e8cb145 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 17:36:42 -0500 Subject: [PATCH 269/471] turn on tx_on --- tests/rftest-rx.c | 4 ++++ tests/rftest-tx.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 5837608c1..f6de78361 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -25,6 +25,10 @@ void main(void) { maca_init(); + /* sets up tx_on, should be a board specific item */ + *GPIO_FUNC_SEL2 = (0x01 << ((44-16*2)*2)); + *GPIO_PAD_DIR_SET1 = (1 << (44-32)); + set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 862b8ed52..ee9d4d55c 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -11,7 +11,7 @@ /* 2 bytes are the FCS */ /* therefore 125 is the max payload length */ #define PAYLOAD_LEN 16 -#define DELAY 100000 +#define DELAY 1000000 void fill_packet(volatile packet_t *p) { static volatile uint8_t count=0; @@ -54,7 +54,7 @@ void main(void) { /* sets up tx_on, should be a board specific item */ *GPIO_FUNC_SEL2 = (0x01 << ((44-16*2)*2)); - *GPIO_PAD_DIR0 = *GPIO_PAD_DIR0 | (1<<(44-32)); + *GPIO_PAD_DIR_SET1 = (1 << (44-32)); print_welcome("rftest-tx"); From 761d2c4cbffa0be9016884907d1873959af0bd9d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 17:37:35 -0500 Subject: [PATCH 270/471] handle case when buffers are full and we need to transmit. this is a problem because there won't be a buffer available for the acknowledgment. In this case use the dummy_ack packet which is always free for this purpose. --- lib/maca.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index f295f56c7..ed46b1fd9 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -31,6 +31,10 @@ static volatile packet_t packet_pool[NUM_PACKETS]; static volatile packet_t *free_head, *rx_head, *rx_end, *tx_head, *tx_end, *dma_tx, *dma_rx = 0; +/* used for ack recpetion if the packet_pool goes empty */ +/* doesn't go back into the pool when freed */ +static volatile packet_t dummy_ack; + enum posts { NO_POST = 0, TX_POST, @@ -100,6 +104,8 @@ void free_packet(volatile packet_t *p) { safe_irq_disable(MACA); if(!p) { PRINTF("free_packet passed packet 0\n\r"); return; } + if(p == &dummy_ack) { return; } + p->length = 0; p->left = free_head; p->right = 0; free_head = p; @@ -136,7 +142,7 @@ void post_receive(void) { if(dma_rx == 0) { dma_rx = get_free_packet(); if (dma_rx == 0) { - printf("trying to fill MACA_DMARX but out of packet buffers\n\r"); + printf("trying to fill MACA_DMARX in post_receieve but out of packet buffers\n\r"); /* set the sftclock so that we return to the maca_isr */ *MACA_SFTCLK = *MACA_CLK + RECV_SOFTIMEOUT; /* soft timeout */ *MACA_TMREN = (1 << maca_tmren_sft); @@ -192,9 +198,12 @@ void post_tx(void) { *MACA_DMATX = (uint32_t)&(dma_tx->data[ 0 + dma_tx->offset]); if(dma_rx == 0) { dma_rx = get_free_packet(); - if (dma_rx == 0) - printf("trying to fill MACA_DMARX but out of packet buffers\n"); - } + if (dma_rx == 0) { + dma_rx = &dummy_ack; + printf("trying to fill MACA_DMARX on post_tx but out of packet buffers\n\r"); + } + + } *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); /* disable soft timeout clock */ /* disable start clock */ From 8b73c61175b22b74613dbc63b4fa36ac10e48f2f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 17:39:04 -0500 Subject: [PATCH 271/471] change the receive timeout to be 32 large packets --- lib/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index ed46b1fd9..6816c001f 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -21,7 +21,7 @@ #define CLK_PER_BYTE 8 #ifndef RECV_SOFTIMEOUT -#define RECV_SOFTIMEOUT (8*128*CLK_PER_BYTE) +#define RECV_SOFTIMEOUT (32*128*CLK_PER_BYTE) #endif #define MAX_PACKET_SIZE (MAX_PAYLOAD_SIZE + 2) /* packet includes 2 bytes of checksum */ From ea2646e5ecd8b98a0beb4728144c65a729024cbb Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 18:12:31 -0500 Subject: [PATCH 272/471] implement rx callback --- lib/maca.c | 22 +++++++++++----------- tests/rftest-rx.c | 7 ++++++- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 6816c001f..869be4827 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -116,7 +116,6 @@ void free_packet(volatile packet_t *p) { volatile packet_t* get_free_packet(void) { volatile packet_t *p; - volatile uint32_t i; safe_irq_disable(MACA); @@ -132,7 +131,6 @@ volatile packet_t* get_free_packet(void) { } void post_receive(void) { - volatile uint32_t i; disable_irq(MACA); last_post = RX_POST; /* this sets the rxlen field */ @@ -157,15 +155,18 @@ void post_receive(void) { *MACA_TMREN = (1 << maca_tmren_sft); /* start the receive sequence */ enable_irq(MACA); - *MACA_CONTROL = ( (1 << maca_ctrl_asap) | ( 4 << PRECOUNT) | - (1 << maca_ctrl_auto) | - (1 << maca_ctrl_prm) | - (maca_ctrl_seq_rx)); + *MACA_CONTROL = ( (1 << maca_ctrl_asap) | + ( 4 << PRECOUNT) | + (1 << maca_ctrl_auto) | + (1 << maca_ctrl_prm) | + (maca_ctrl_seq_rx)); + /* *MACA_CONTROL = ( - (1 << maca_ctrl_asap) | ( 4 << PRECOUNT) | + (1 << maca_ctrl_asap) | + ( 4 << PRECOUNT) | (1 << maca_ctrl_prm) | - (maca_ctrl_seq_rx));*/ + (maca_ctrl_seq_rx)); */ /* status bit 10 is set immediately */ /* then 11, 10, and 9 get set */ /* they are cleared once we get back to maca_isr */ @@ -190,7 +191,6 @@ volatile packet_t* rx_packet(void) { void post_tx(void) { /* set dma tx pointer to the payload */ /* and set the tx len */ - volatile uint32_t i; disable_irq(MACA); last_post = TX_POST; dma_tx = tx_head; @@ -367,7 +367,6 @@ void decode_status(void) { } void maca_isr(void) { - volatile uint32_t i, status; // print_packets("maca_isr"); @@ -384,6 +383,7 @@ void maca_isr(void) { *MACA_CLRIRQ = (1 << maca_irq_di); dma_rx->length = *MACA_GETRXLVL - 2; /* packet length does not include FCS */ // PRINTF("maca data ind %x %d\n\r", dma_rx, dma_rx->length); + if(maca_rx_callback != 0) { maca_rx_callback(dma_rx); } add_to_rx(dma_rx); dma_rx = 0; } @@ -924,7 +924,7 @@ void ResumeMACASync(void) { volatile uint32_t clk, TsmRxSteps, LastWarmupStep, LastWarmupData, LastWarmdownStep, LastWarmdownData; // bool_t tmpIsrStatus; - volatile uint32_t i, macairq; + volatile uint32_t i; safe_irq_disable(MACA); // ITC_DisableInterrupt(gMacaInt_c); diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index f6de78361..9c14bdb3c 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -7,6 +7,12 @@ #define LED LED_GREEN +void maca_rx_callback(volatile packet_t *p) +{ + (void)p; /* surpress unused warning */ + toggle_gpio0(LED); +} + void main(void) { volatile packet_t *p; @@ -35,7 +41,6 @@ void main(void) { print_welcome("rftest-rx"); while(1) { if((p = rx_packet())) { - toggle_gpio0(LED); /* print and free the packet */ printf("rftest-rx --- "); print_packet(p); From eed8544a0d6ab5e909ed5603c6e988190adca3c7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 18:12:59 -0500 Subject: [PATCH 273/471] rx callback --- lib/include/maca.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/include/maca.h b/lib/include/maca.h index c2c5c26c8..4abbdd788 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -124,6 +124,8 @@ volatile packet_t* get_free_packet(void); void free_packet(volatile packet_t *p); void free_all_packets(void); +extern void maca_rx_callback(volatile packet_t *p) __attribute__((weak)); + /******************************************************************************/ /* everything under this comment is messy, needs cleaning, and will */ /* probably change in the future */ From 3178906b43b1608a385c7f096e21661b9e5d54c5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 18:13:19 -0500 Subject: [PATCH 274/471] surpress warning. --- src/isr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/isr.c b/src/isr.c index 2cedfd59a..283eb985f 100644 --- a/src/isr.c +++ b/src/isr.c @@ -7,7 +7,7 @@ void irq(void) { uint32_t pending; - while (pending = *NIPEND) { + while ((pending = *NIPEND)) { if(bit_is_set(pending, INT_NUM_TMR)) { /* dispatch to individual timer isrs if they exist */ From 650e9e7f2fc9f4e31511dd8c0b186bbc273e5546 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 18:13:48 -0500 Subject: [PATCH 275/471] faster transmit delay --- tests/rftest-tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index ee9d4d55c..df1bb01ff 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -11,7 +11,7 @@ /* 2 bytes are the FCS */ /* therefore 125 is the max payload length */ #define PAYLOAD_LEN 16 -#define DELAY 1000000 +#define DELAY 100000 void fill_packet(volatile packet_t *p) { static volatile uint8_t count=0; From f64e689d2c9b57e8209df566493c401b3f2f36ca Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 18:27:52 -0500 Subject: [PATCH 276/471] set the third bit to avoid acks. --- tests/rftest-tx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index df1bb01ff..78c4182f6 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -23,9 +23,9 @@ void fill_packet(volatile packet_t *p) { } /* acks get treated differently, even in promiscuous mode */ - /* setting the second bit makes sure that we never send an ack */ + /* setting the third bit makes sure that we never send an ack */ /* or any valid 802.15.4-2006 packet */ - p->data[0] |= (1 << 2); + p->data[0] |= (1 << 3); } void main(void) { From 1ca5cf698a5c9ea22306316226f3c80501f562a6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 8 Mar 2010 18:39:08 -0500 Subject: [PATCH 277/471] did something sensible to the leds The buffered packets made the indirect indicators misleading --- now they match. --- tests/rftest-rx.c | 12 ++++++++---- tests/rftest-tx.c | 3 +-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 9c14bdb3c..401f17b28 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -7,11 +7,11 @@ #define LED LED_GREEN -void maca_rx_callback(volatile packet_t *p) -{ - (void)p; /* surpress unused warning */ +void maca_rx_callback(volatile packet_t *p) { + (void)p; toggle_gpio0(LED); -} + toggle_gpio0(LED); +} void main(void) { volatile packet_t *p; @@ -35,6 +35,10 @@ void main(void) { *GPIO_FUNC_SEL2 = (0x01 << ((44-16*2)*2)); *GPIO_PAD_DIR_SET1 = (1 << (44-32)); + /* sets up rx_on, should be a board specific item */ + *GPIO_FUNC_SEL2 = (0x02 << ((45-16*2)*2)); + *GPIO_PAD_DIR_SET1 = (1 << (45-32)); + set_power(0x0f); /* 0dbm */ set_channel(0); /* channel 11 */ diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 78c4182f6..f0825ea9a 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -64,10 +64,9 @@ void main(void) { if(p) { fill_packet(p); - toggle_gpio0(LED); printf("rftest-tx --- "); print_packet(p); - + tx_packet(p); for(i=0; i Date: Mon, 8 Mar 2010 18:45:26 -0500 Subject: [PATCH 278/471] removed some stale comments --- lib/maca.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 869be4827..343d45bc2 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -160,13 +160,6 @@ void post_receive(void) { (1 << maca_ctrl_auto) | (1 << maca_ctrl_prm) | (maca_ctrl_seq_rx)); - - -/* *MACA_CONTROL = ( - (1 << maca_ctrl_asap) | - ( 4 << PRECOUNT) | - (1 << maca_ctrl_prm) | - (maca_ctrl_seq_rx)); */ /* status bit 10 is set immediately */ /* then 11, 10, and 9 get set */ /* they are cleared once we get back to maca_isr */ @@ -220,10 +213,6 @@ void post_tx(void) { (maca_ctrl_mode_no_cca << maca_ctrl_mode) | (1 << maca_ctrl_asap) | (maca_ctrl_seq_tx)); -/* *MACA_CONTROL = ( (1 << maca_ctrl_prm) | - (maca_ctrl_mode_no_cca << maca_ctrl_mode) | - (1 << maca_ctrl_asap) | - (maca_ctrl_seq_tx)); */ /* status bit 10 is set immediately */ /* then 11, 10, and 9 get set */ /* they are cleared once we get back to maca_isr */ From 67aed03b1ddca94196685d90ddaa7026bbafd0f6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 9 Mar 2010 18:23:40 -0500 Subject: [PATCH 279/471] added interrupt based uarts. --- lib/include/uart1.h | 43 ++++++++++++++++++++++++++++++++++-------- lib/uart1.c | 37 +++++++++++++++++++++++++++++++++--- src/default_lowlevel.c | 25 +++++++++++++++++++++++- src/default_lowlevel.h | 2 ++ tests/config.h | 9 +++++++-- tests/flasher.c | 29 +++++++++++++++------------- tests/nvm-read.c | 2 +- tests/nvm-write.c | 2 +- tests/printf.c | 2 +- tests/put.c | 6 ++++-- tests/rftest-rx.c | 2 +- tests/rftest-tx.c | 2 +- tests/romimg.c | 4 ++-- tests/sleep.c | 2 +- tests/tests.c | 18 ------------------ tests/tests.h | 1 - tests/uart1-loopback.c | 9 ++++----- 17 files changed, 134 insertions(+), 61 deletions(-) diff --git a/lib/include/uart1.h b/lib/include/uart1.h index ee8337ef6..b45866a71 100644 --- a/lib/include/uart1.h +++ b/lib/include/uart1.h @@ -3,16 +3,43 @@ #include -#define UART1_CON ((volatile uint32_t *) 0x80005000) -#define UART1_STAT ((volatile uint32_t *) 0x80005004) -#define UART1_DATA ((volatile uint32_t *) 0x80005008) -#define UR1CON ((volatile uint32_t *) 0x8000500c) -#define UT1CON ((volatile uint32_t *) 0x80005010) -#define UART1_CTS ((volatile uint32_t *) 0x80005014) -#define UART1_BR ((volatile uint32_t *) 0x80005018) +#define UCON (0) +/* UCON bits */ +#define UCON_SAMP 10 +#define UCON_SAMP_8X 0 +#define UCON_SAMP_16X 1 +#define USTAT (0x04) +#define UDATA (0x08) +#define URXCON (0x0c) +#define UTXCON (0x10) +#define UCTS (0x14) +#define UBRCNT (0x18) + +#define UART1_BASE (0x80005000) +#define UART2_BASE (0x8000b000) + +#define UART1_UCON ((volatile uint32_t *) ( UART1_BASE + UCON )) +#define UART1_USTAT ((volatile uint32_t *) ( UART1_BASE + USTAT )) +#define UART1_UDATA ((volatile uint32_t *) ( UART1_BASE + UDATA )) +#define UART1_URXCON ((volatile uint32_t *) ( UART1_BASE + URXCON )) +#define UART1_UTXCON ((volatile uint32_t *) ( UART1_BASE + UTXCON )) +#define UART1_UCTS ((volatile uint32_t *) ( UART1_BASE + UCTS )) +#define UART1_UBRCNT ((volatile uint32_t *) ( UART1_BASE + UBRCNT )) + +#define UART2_UCON ((volatile uint32_t *) ( UART2_BASE + UCON )) +#define UART2_USTAT ((volatile uint32_t *) ( UART2_BASE + USTAT )) +#define UART2_UDATA ((volatile uint32_t *) ( UART2_BASE + UDATA )) +#define UART2_URXCON ((volatile uint32_t *) ( UART2_BASE + URXCON )) +#define UART2_UTXCON ((volatile uint32_t *) ( UART2_BASE + UTXCON )) +#define UART2_UCTS ((volatile uint32_t *) ( UART2_BASE + UCTS )) +#define UART2_UBRCNT ((volatile uint32_t *) ( UART2_BASE + UBRCNT )) + +extern volatile uint32_t u1_head, u1_tail; void uart1_putc(char c); +#define uart1_can_get() (*UART1_URXCON > 0) +uint8_t uart1_getc(void); + -#define uart1_can_get() (*UR1CON > 0) #endif diff --git a/lib/uart1.c b/lib/uart1.c index 3d821b3cd..8d650784c 100644 --- a/lib/uart1.c +++ b/lib/uart1.c @@ -1,6 +1,37 @@ -#include +#include +#include + +volatile char u1_tx_buf[1024]; +volatile uint32_t u1_head, u1_tail; + +void uart1_isr(void) { + while( *UART1_UTXCON != 0 ) { + if (u1_head == u1_tail) { + disable_irq(UART1); + return; + } + *UART1_UDATA = u1_tx_buf[u1_tail]; + u1_tail++; + if (u1_tail >= sizeof(u1_tx_buf)) + u1_tail = 0; + } + enable_irq(UART1); +} void uart1_putc(char c) { - while(*UT1CON == 31); /* wait for there to be room in the buffer */ - *UART1_DATA = c; + uint32_t h = u1_head; + h = u1_head + 1; + if (h >= sizeof(u1_tx_buf)) + h = 0; + if (h == u1_tail) /* drop chars when no room */ + return; + u1_tx_buf[u1_head] = c; + u1_head = h; + + uart1_isr(); +} + +uint8_t uart1_getc(void) { + while(uart1_can_get() == 0) { continue; } + return *UART1_UDATA; } diff --git a/src/default_lowlevel.c b/src/default_lowlevel.c index c1df5c9fe..33b9928d0 100644 --- a/src/default_lowlevel.c +++ b/src/default_lowlevel.c @@ -1,5 +1,5 @@ +#include #include -#include void default_vreg_init(void) { volatile uint32_t i; @@ -9,3 +9,26 @@ void default_vreg_init(void) { // while((((*(volatile uint32_t *)(0x80003018))>>17) & 1) !=1) { continue; } /* wait for the bypass to take */ *CRM_VREG_CNTL = 0x00000ff8; /* start the regulators */ } + +void uart1_init(uint16_t inc, uint16_t mod, uint8_t samp) { + uint8_t i; + + /* UART must be disabled to set the baudrate */ + *UART1_UCON = 0; + *UART1_UBRCNT = ( inc << 16 ) | mod; + + /* see Section 11.5.1.2 Alternate Modes */ + /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ + /* From the datasheet: "The peripheral function will control operation of the pad IF */ + /* THE PERIPHERAL IS ENABLED. */ + *UART1_UCON = (1 << 0) | (1 << 1); /* enable receive, transmit */ + if(samp == UCON_SAMP_16X) + set_bit(*UART1_UCON,UCON_SAMP); + *GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ + + /* interrupt when 28 bytes are free */ + *UART1_UTXCON = 28; + + u1_head = 0; u1_tail = 0; + enable_irq(UART1); +} diff --git a/src/default_lowlevel.h b/src/default_lowlevel.h index 90400d03a..fc58c9cb8 100644 --- a/src/default_lowlevel.h +++ b/src/default_lowlevel.h @@ -3,4 +3,6 @@ void default_vreg_init(void); +void uart1_init(uint16_t inc, uint16_t mod, uint8_t samp); + #endif diff --git a/tests/config.h b/tests/config.h index a0b7f38bb..73a4bb4da 100644 --- a/tests/config.h +++ b/tests/config.h @@ -2,9 +2,14 @@ #define CONFIG_H /* Baud rate */ -/* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ -#define INC 767 #define MOD 9999 +/* 230400 bps, INC=767, MOD=9999, 24Mhz 16x samp */ +/* 115200 bps, INC=767, MOD=9999, 24Mhz 8x samp */ +#define INC 767 +/* 921600 bps, MOD=9999, 24Mhz 16x samp */ +//#define INC 3071 +#define SAMP UCON_SAMP_8X +//#define SAMP UCON_SAMP_16X /* use uart1 for console */ #define uart_init uart1_init diff --git a/tests/flasher.c b/tests/flasher.c index 25e2d3419..7deabafb1 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -19,7 +19,16 @@ #define dbg_put_hex32(...) #endif -uint8_t getc(void); +uint8_t getc(void) +{ + volatile uint8_t c; + while(*UART1_URXCON == 0); + + c = *UART1_UDATA; + return c; +} + + void flushrx(void); uint32_t to_u32(volatile uint32_t *c); @@ -41,7 +50,8 @@ void main(void) { volatile uint32_t addr,data; - uart_init(INC, MOD); + uart_init(INC, MOD, SAMP); + disable_irq(UART1); vreg_init(); @@ -73,7 +83,7 @@ void main(void) { /* read the length */ for(i=0; i<4; i++) { - c = getc(); + c = uart1_getc(); /* bail if the first byte of the length is zero */ len += (c<<(i*8)); } @@ -158,8 +168,8 @@ void main(void) { void flushrx(void) { volatile uint8_t c; - while(*UR1CON !=0) { - c = *UART1_DATA; + while(*UART1_URXCON !=0) { + c = *UART1_UDATA; } } @@ -199,12 +209,5 @@ uint32_t to_u32(volatile uint32_t *c) return ret; } -uint8_t getc(void) -{ - volatile uint8_t c; - while(*UR1CON == 0); - - c = *UART1_DATA; - return c; -} + diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 60ee5692e..40939aac4 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -10,7 +10,7 @@ void main(void) { uint32_t buf[READ_NBYTES/4]; uint32_t i; - uart_init(INC, MOD); + uart_init(INC, MOD, SAMP); print_welcome("nvm-read"); diff --git a/tests/nvm-write.c b/tests/nvm-write.c index 880525767..260580417 100644 --- a/tests/nvm-write.c +++ b/tests/nvm-write.c @@ -10,7 +10,7 @@ void main(void) { uint32_t buf[WRITE_NBYTES/4]; uint32_t i; - uart_init(INC, MOD); + uart_init(INC, MOD, SAMP); print_welcome("nvm-write"); diff --git a/tests/printf.c b/tests/printf.c index 937e6f72e..10cbd4d1c 100644 --- a/tests/printf.c +++ b/tests/printf.c @@ -15,7 +15,7 @@ int main(void) int mi; // char buf[80]; - uart_init(INC, MOD); + uart_init(INC, MOD, SAMP); mi = (1 << (bs-1)) + 1; printf("%s\n", ptr); diff --git a/tests/put.c b/tests/put.c index 348da13f0..15dfec507 100644 --- a/tests/put.c +++ b/tests/put.c @@ -5,8 +5,10 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'}; void putchr(char c) { - while(*UT1CON == 31); /* wait for there to be room in the buffer */ - *UART1_DATA = c; + while(*UART1_UTXCON == 31); + /* wait for there to be room in the buffer */ +// while( *UART1_UTXCON == 0 ) { continue; } + *UART1_UDATA = c; } void putstr(char *s) { diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 401f17b28..20550a044 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -25,7 +25,7 @@ void main(void) { /* trim the reference osc. to 24MHz */ pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); - uart_init(INC,MOD); + uart_init(INC, MOD, SAMP); vreg_init(); diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index f0825ea9a..b77f84679 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -35,7 +35,7 @@ void main(void) { /* trim the reference osc. to 24MHz */ pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); - uart_init(INC,MOD); + uart_init(INC, MOD, SAMP); vreg_init(); diff --git a/tests/romimg.c b/tests/romimg.c index 3b50ddab9..8e651ed34 100644 --- a/tests/romimg.c +++ b/tests/romimg.c @@ -7,10 +7,10 @@ void main(void) { volatile uint8_t *data; - uart_init(INC, MOD); + uart_init(INC, MOD, SAMP); for(data = DUMP_BASE; data < ((uint8_t *)(DUMP_BASE+DUMP_LEN)); data++) { - putchr(*data); + uart1_putc(*data); } while(1); diff --git a/tests/sleep.c b/tests/sleep.c index b7f2b9bb3..03444e2c7 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -6,7 +6,7 @@ void main(void) { - uart_init(INC,MOD); + uart_init(INC,MOD,SAMP); *mem32(0x00401ffc) = 0x01234567; *mem32(0x00407ffc) = 0xdeadbeef; diff --git a/tests/tests.c b/tests/tests.c index 9bb300ce2..bd64642c6 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -4,24 +4,6 @@ #include "put.h" #include "tests.h" -void uart1_init(uint16_t inc, uint16_t mod) { - /* Restore UART regs. to default */ - /* in case there is still bootloader state leftover */ - - *UART1_CON = 0x0000c800; /* mask interrupts, 16 bit sample --- helps explain the baud rate */ - - /* INC = 767; MOD = 9999 works: 115200 @ 24 MHz 16 bit sample */ - *UART1_BR = (inc << 16) | mod; - - /* see Section 11.5.1.2 Alternate Modes */ - /* you must enable the peripheral first BEFORE setting the function in GPIO_FUNC_SEL */ - /* From the datasheet: "The peripheral function will control operation of the pad IF */ - /* THE PERIPHERAL IS ENABLED. */ - *UART1_CON = 0x00000003; /* enable receive and transmit */ - *GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ - -} - void print_welcome(char* testname) { printf("mc1322x-test: %s\n\r",testname); printf("board: %s\n\r", STR2(BOARD)); diff --git a/tests/tests.h b/tests/tests.h index 29158c330..bcd75ef00 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -6,7 +6,6 @@ #define NL "\033[K\r\n" -void uart1_init(uint16_t inc, uint16_t mod); void print_welcome(char* testname); void dump_regs(uint32_t base, uint32_t len); void print_packet(volatile packet_t *p); diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index dfa51356c..38d135427 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -5,16 +5,15 @@ #include "config.h" void main(void) { + volatile char c; - uart1_init(INC,MOD); + uart1_init(INC,MOD,SAMP); - uint8_t c; while(1) { - if(*UART1_CON > 0) { + if(uart1_can_get()) { /* Receive buffer isn't empty */ /* read a byte and write it to the transmit buffer */ - c = *UART1_DATA; - *UART1_DATA = c; + uart1_putc(uart1_getc()); } } From 1d1317a13617bc969a47f5ceac37febeb8a006be Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 9 Mar 2010 18:46:37 -0500 Subject: [PATCH 280/471] trim values for the production econotags --- board/redbee-econotag.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/redbee-econotag.h b/board/redbee-econotag.h index 6838dae93..fb095faf1 100644 --- a/board/redbee-econotag.h +++ b/board/redbee-econotag.h @@ -15,7 +15,7 @@ /* Coarse tune: add 0-15 pf (CTUNE is 4 bits) */ #define CTUNE 11 /* Fine tune: add FTUNE * 156fF (FTUNE is 5bits) */ -#define FTUNE 3 +#define FTUNE 7 #include From 017172577cf908a56ea18949d58977115a1aaf6a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 10 Mar 2010 11:19:43 -0500 Subject: [PATCH 281/471] make an empty board.a this fixes errors when trying to build board.a when COBJS is empty. --- Makefile.include | 4 +++- config.mk | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index 16e42dc2e..84bb5c012 100644 --- a/Makefile.include +++ b/Makefile.include @@ -57,7 +57,9 @@ $(ISR): $(ISR:.o=.c) $(CC) $(CFLAGS) $(ARM_FLAGS) -MMD $< -c -o $@ @$(FINALIZE_DEPENDENCY) -$(OBJDIR)/board.a: $(OBJDIR)/board.a($(OBJDIR)/$(COBJS)) +empty-board-a: + $(AR) $(ARFLAGS) $(OBJDIR)/board.a +$(OBJDIR)/board.a: empty-board-a $(filter $(OBJDIR)/%.o, $(OBJDIR)/board.a($(OBJDIR)/$(COBJS))) $(MC1322X)/src/src.a: $(MC1322X)/src/src.a($(SRCOBJS)) %_$(BOARD).elf: $(OBJDIR)/%.o $(START) $(ISR) $(SRCOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/board.a $(MC1322X)/src/src.a diff --git a/config.mk b/config.mk index a6156ec45..1b13d3667 100644 --- a/config.mk +++ b/config.mk @@ -24,6 +24,7 @@ DBGFLAGS= -g -DDEBUG OPTFLAGS= -Os #-fomit-frame-pointer LDSCRIPT := boot.lds OBJCFLAGS += --gap-fill=0xff +ARFLAGS = cru gccincdir := $(shell $(CC) -print-file-name=include) From 6fa57c8e9f87f030e561e2d04f68d8bf44c6906f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 10 Mar 2010 11:20:39 -0500 Subject: [PATCH 282/471] remove unused variable --- src/default_lowlevel.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/default_lowlevel.c b/src/default_lowlevel.c index 33b9928d0..7c1ef4dc7 100644 --- a/src/default_lowlevel.c +++ b/src/default_lowlevel.c @@ -11,7 +11,6 @@ void default_vreg_init(void) { } void uart1_init(uint16_t inc, uint16_t mod, uint8_t samp) { - uint8_t i; /* UART must be disabled to set the baudrate */ *UART1_UCON = 0; From 680a028799679eca1de94dc434c6a611bc98ab14 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 10 Mar 2010 11:21:05 -0500 Subject: [PATCH 283/471] turn on -Werror --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index 1b13d3667..52e5a5421 100644 --- a/config.mk +++ b/config.mk @@ -33,7 +33,7 @@ CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ -fno-builtin -ffreestanding -isystem \ $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wextra #-Werror +CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wextra -Werror AFLAGS_DEBUG := -Wa,-gstabs AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) From ecebd094bfb5bc3584cc245f6134723aa0ce816f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 10 Mar 2010 15:33:16 -0500 Subject: [PATCH 284/471] fix radio_off for interrupts --- lib/maca.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/maca.c b/lib/maca.c index 343d45bc2..099aae7bb 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -566,6 +566,7 @@ void vreg_init(void) { } void radio_off(void) { + disable_irq(MACA); /* turn off the radio regulators */ reg(0x80003048) = 0x00000f00; /* hold the maca in reset */ @@ -577,6 +578,9 @@ void radio_on(void) { reg(0x80003048) = 0x00000f78; /* reinitialize the phy */ init_phy(); + + enable_irq(MACA); + maca_isr(); } /* initialized with 0x4c */ From a5f8b58e077999f0ffbd85b2985f3ede07626268 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 10 Mar 2010 15:34:24 -0500 Subject: [PATCH 285/471] debug PRINTF fixes --- lib/maca.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 099aae7bb..9817cedac 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -5,9 +5,9 @@ #define DEBUG_MACA 0 #endif #if (DEBUG_MACA == 0) -#define PRINTF(...) printf(__VA_ARGS__) +#define PRINTF(...) #else -#define PRINTF(...) +#define PRINTF(...) printf(__VA_ARGS__) #endif #ifndef NUM_PACKETS @@ -140,7 +140,7 @@ void post_receive(void) { if(dma_rx == 0) { dma_rx = get_free_packet(); if (dma_rx == 0) { - printf("trying to fill MACA_DMARX in post_receieve but out of packet buffers\n\r"); + PRINTF("trying to fill MACA_DMARX in post_receieve but out of packet buffers\n\r"); /* set the sftclock so that we return to the maca_isr */ *MACA_SFTCLK = *MACA_CLK + RECV_SOFTIMEOUT; /* soft timeout */ *MACA_TMREN = (1 << maca_tmren_sft); @@ -193,7 +193,7 @@ void post_tx(void) { dma_rx = get_free_packet(); if (dma_rx == 0) { dma_rx = &dummy_ack; - printf("trying to fill MACA_DMARX on post_tx but out of packet buffers\n\r"); + PRINTF("trying to fill MACA_DMARX on post_tx but out of packet buffers\n\r"); } } @@ -360,13 +360,13 @@ void maca_isr(void) { // print_packets("maca_isr"); if (bit_is_set(*MACA_STATUS, maca_status_ovr)) - PRINTF("maca overrun\n\r"); + { PRINTF("maca overrun\n\r"); } if (bit_is_set(*MACA_STATUS, maca_status_busy)) - PRINTF("maca busy\n\r"); + { PRINTF("maca busy\n\r"); } if (bit_is_set(*MACA_STATUS, maca_status_crc)) - PRINTF("maca crc error\n\r"); + { PRINTF("maca crc error\n\r"); } if (bit_is_set(*MACA_STATUS, maca_status_to)) - PRINTF("maca timeout\n\r"); + { PRINTF("maca timeout\n\r"); } if (data_indication_irq()) { *MACA_CLRIRQ = (1 << maca_irq_di); @@ -405,7 +405,7 @@ void maca_isr(void) { decode_status(); if (*MACA_IRQ != 0) - PRINTF("*MACA_IRQ %x\n\r", *MACA_IRQ); + { PRINTF("*MACA_IRQ %x\n\r", *MACA_IRQ); } if(tx_head != 0) { post_tx(); From 3cd4bf5768bb3583688b3b63b26589b9dd90f259 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 10 Mar 2010 17:59:04 -0500 Subject: [PATCH 286/471] clear the offset when freeing a packet --- lib/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index 9817cedac..0305ef828 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -106,7 +106,7 @@ void free_packet(volatile packet_t *p) { if(!p) { PRINTF("free_packet passed packet 0\n\r"); return; } if(p == &dummy_ack) { return; } - p->length = 0; + p->length = 0; p->offset = 0; p->left = free_head; p->right = 0; free_head = p; From da7898557d9b0ca36a35b23adcf67a5a086d4904 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 11 Mar 2010 12:22:47 -0500 Subject: [PATCH 287/471] fix how board.a is created and linked --- Makefile.include | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.include b/Makefile.include index 84bb5c012..fb8e8715e 100644 --- a/Makefile.include +++ b/Makefile.include @@ -59,12 +59,12 @@ $(ISR): $(ISR:.o=.c) empty-board-a: $(AR) $(ARFLAGS) $(OBJDIR)/board.a -$(OBJDIR)/board.a: empty-board-a $(filter $(OBJDIR)/%.o, $(OBJDIR)/board.a($(OBJDIR)/$(COBJS))) +$(OBJDIR)/board.a: empty-board-a $(OBJDIR)/board.a(${filter $(OBJDIR)/%.o,$(OBJDIR)/$(COBJS)}) #$(filter $(OBJDIR)/%.o), $(OBJDIR)/board.a($(OBJDIR)/$(COBJS))) $(MC1322X)/src/src.a: $(MC1322X)/src/src.a($(SRCOBJS)) %_$(BOARD).elf: $(OBJDIR)/%.o $(START) $(ISR) $(SRCOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/board.a $(MC1322X)/src/src.a $(CC) $(LDFLAGS) \ - -L $(LIBMC1322X) -L $(MC1322X)/src -L $(OBJDIR) $< -o $@ $(START) $(MC1322X)/src/src.a $(OBJDIR)/board.a $(LIBMC1322X)/libmc1322x.a + -L $(LIBMC1322X) -L $(MC1322X)/src -L $(OBJDIR) $< -o $@ $(START) $(MC1322X)/src/src.a --start-group $(OBJDIR)/board.a $(LIBMC1322X)/libmc1322x.a --end-group %.srec: %.elf $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ From a61deb78f44309b995efca72c189112a905842c7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 11 Mar 2010 15:18:29 -0500 Subject: [PATCH 288/471] add a way to disable FCS checking. --- lib/include/maca.h | 8 ++++++++ lib/maca.c | 3 +++ 2 files changed, 11 insertions(+) diff --git a/lib/include/maca.h b/lib/include/maca.h index 4abbdd788..1dcb72ef2 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -17,6 +17,10 @@ #define RTSO 15 /* reset slot counter */ #define ROLE 13 /* set if PAN coordinator */ #define NOFC 12 /* set to disable FCS */ +enum { + USE_FCS = 0, + NO_FCS = 1, +}; #define PRM 11 /* set for promiscuous mode */ #define REL 10 /* 1 for relative, 0 for absolute */ #define ASAP 9 /* 1 start now, 0 timer start */ @@ -124,6 +128,10 @@ volatile packet_t* get_free_packet(void); void free_packet(volatile packet_t *p); void free_all_packets(void); +/* set_fcs_mode(NO_FCS) to disable checksum filtering */ +extern volatile uint8_t fcs_mode; +#define set_fcs_mode(x) fcs_mode = (x) + extern void maca_rx_callback(volatile packet_t *p) __attribute__((weak)); /******************************************************************************/ diff --git a/lib/maca.c b/lib/maca.c index 0305ef828..094724e9b 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -46,6 +46,8 @@ static volatile uint8_t last_post = NO_POST; #define safe_irq_disable(x) volatile uint32_t saved_irq; saved_irq = *INTENABLE; disable_irq(x) #define irq_restore() *INTENABLE = saved_irq +volatile uint8_t fcs_mode = USE_FCS; + void maca_init(void) { reset_maca(); radio_init(); @@ -157,6 +159,7 @@ void post_receive(void) { enable_irq(MACA); *MACA_CONTROL = ( (1 << maca_ctrl_asap) | ( 4 << PRECOUNT) | + ( fcs_mode << NOFC ) | (1 << maca_ctrl_auto) | (1 << maca_ctrl_prm) | (maca_ctrl_seq_rx)); From e06e2143d72c56cd10bb1a52341902d7c4eff0b5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 11 Mar 2010 16:17:18 -0500 Subject: [PATCH 289/471] handle empty COBJS --- Makefile.include | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index fb8e8715e..29cc02ea1 100644 --- a/Makefile.include +++ b/Makefile.include @@ -57,9 +57,13 @@ $(ISR): $(ISR:.o=.c) $(CC) $(CFLAGS) $(ARM_FLAGS) -MMD $< -c -o $@ @$(FINALIZE_DEPENDENCY) + +ifdef $(COBJS) +BOARDARCS := $(OBJDIR)/board.a(${filter $(OBJDIR)/%.o,$(OBJDIR)/$(COBJS)}) +endif empty-board-a: $(AR) $(ARFLAGS) $(OBJDIR)/board.a -$(OBJDIR)/board.a: empty-board-a $(OBJDIR)/board.a(${filter $(OBJDIR)/%.o,$(OBJDIR)/$(COBJS)}) #$(filter $(OBJDIR)/%.o), $(OBJDIR)/board.a($(OBJDIR)/$(COBJS))) +$(OBJDIR)/board.a: empty-board-a $(BOARDARCS) $(MC1322X)/src/src.a: $(MC1322X)/src/src.a($(SRCOBJS)) %_$(BOARD).elf: $(OBJDIR)/%.o $(START) $(ISR) $(SRCOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/board.a $(MC1322X)/src/src.a From 73b2a0dfdeb16abb4ef14088d9feba871e86389a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 11 Mar 2010 16:31:21 -0500 Subject: [PATCH 290/471] make it work when COBJS is defined. --- Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index 29cc02ea1..37322751d 100644 --- a/Makefile.include +++ b/Makefile.include @@ -58,7 +58,7 @@ $(ISR): $(ISR:.o=.c) @$(FINALIZE_DEPENDENCY) -ifdef $(COBJS) +ifdef COBJS BOARDARCS := $(OBJDIR)/board.a(${filter $(OBJDIR)/%.o,$(OBJDIR)/$(COBJS)}) endif empty-board-a: From 0c0f1ab7cac1a53fedaee544a40ba62368cb48ce Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 11 Mar 2010 16:31:47 -0500 Subject: [PATCH 291/471] add the submodule init. We don't need it, but people are suppose to use this Makefile as a template for there own projects. --- tests/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/Makefile b/tests/Makefile index 3c7c8cd5b..f544da56a 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -18,7 +18,11 @@ TARGETS_WITH_ROM_VARS := nvm-read nvm-write romimg flasher \ rftest-rx rftest-tx \ per -include $(MC1322X)/Makefile.include +submodule: + git submodule update --init + $(MAKE) + +-include $(MC1322X)/Makefile.include From 61ef7083420dd3a3c8d69162b53b2dc0d8ba959b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 12 Mar 2010 16:43:21 -0500 Subject: [PATCH 292/471] new Makefile with errorchecks for make version number and checks that $(MC1322X) exists. --- tests/Makefile | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/tests/Makefile b/tests/Makefile index f544da56a..652ae8387 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -18,8 +18,25 @@ TARGETS_WITH_ROM_VARS := nvm-read nvm-write romimg flasher \ rftest-rx rftest-tx \ per -submodule: +################################################## +# you shouldn't need to edit anything below here # +################################################## + +need := 3.81 +ok := $(filter $(need),$(firstword $(sort $(MAKE_VERSION) \ + $(need)))) + +ifdef $(need) +$(error You need to use version 3.81 of Make or later) +endif + +# this rule will become the default_goal if +# $(MC1322X)/Makefile.include doesn't exist it will try to update the +# submodule, check if $(MC1322X) exists, and if it does +# try make again +submodule: git submodule update --init + if [ ! -d $(MC1322X) ] ; then echo "*** cannot find MC1322X directory $(MC1322X)" ; exit 2; fi $(MAKE) -include $(MC1322X)/Makefile.include From d0ea93c7415fc91698978e9088f520588a26b9c4 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 12 Mar 2010 16:51:49 -0500 Subject: [PATCH 293/471] Workaround DEFAULT_GOAL so that you can use older versions of make. From Jim. --- Makefile.include | 14 ++++++-------- tests/Makefile | 12 ++++-------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/Makefile.include b/Makefile.include index 37322751d..a0669c9f2 100644 --- a/Makefile.include +++ b/Makefile.include @@ -1,5 +1,11 @@ # -*- makefile -*- +ifndef BOARD +default: allboards +else +default: all +endif + CROSS_COMPILE := arm-linux- LINKERSCRIPT := $(MC1322X)/mc1322x.lds @@ -118,14 +124,6 @@ clobber \ mrproper \ distclean: clean -#.DEFAULT_GOAL := all - -ifndef BOARD -.DEFAULT_GOAL := allboards -else -.DEFAULT_GOAL := all -endif - all: $(OBJDIR)/board.h for target in $(TARGETS); do make $$target\_$(BOARD).bin; done for target in $(TARGETS_WITH_ROM_VARS); do make TARGET_ROM_VARS=1 $$target\_$(BOARD).bin; done diff --git a/tests/Makefile b/tests/Makefile index 652ae8387..bcce0cce8 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -22,13 +22,9 @@ TARGETS_WITH_ROM_VARS := nvm-read nvm-write romimg flasher \ # you shouldn't need to edit anything below here # ################################################## -need := 3.81 -ok := $(filter $(need),$(firstword $(sort $(MAKE_VERSION) \ - $(need)))) - -ifdef $(need) -$(error You need to use version 3.81 of Make or later) -endif +# This Makefile includes the default rule at the top +# it needs to be included first +-include $(MC1322X)/Makefile.include # this rule will become the default_goal if # $(MC1322X)/Makefile.include doesn't exist it will try to update the @@ -39,7 +35,7 @@ submodule: if [ ! -d $(MC1322X) ] ; then echo "*** cannot find MC1322X directory $(MC1322X)" ; exit 2; fi $(MAKE) --include $(MC1322X)/Makefile.include + From 85e26336a4fc9306dd88805a5570a39d28d1acc4 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 12 Mar 2010 17:00:53 -0500 Subject: [PATCH 294/471] add PHONYs --- Makefile.include | 7 ++++++- tests/Makefile | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile.include b/Makefile.include index a0669c9f2..ee3cd797e 100644 --- a/Makefile.include +++ b/Makefile.include @@ -5,6 +5,7 @@ default: allboards else default: all endif +.PHONY: default CROSS_COMPILE := arm-linux- @@ -39,7 +40,6 @@ export ARCH CPU VENDOR .SECONDARY: - ### See http://make.paulandlesley.org/autodep.html#advanced ifdef BOARD -include ${addprefix $(OBJDIR)/,$(addsuffix .d,$(TARGETS))} @@ -69,6 +69,8 @@ BOARDARCS := $(OBJDIR)/board.a(${filter $(OBJDIR)/%.o,$(OBJDIR)/$(COBJS)}) endif empty-board-a: $(AR) $(ARFLAGS) $(OBJDIR)/board.a +.PHONY: empty-board-a + $(OBJDIR)/board.a: empty-board-a $(BOARDARCS) $(MC1322X)/src/src.a: $(MC1322X)/src/src.a($(SRCOBJS)) @@ -124,6 +126,8 @@ clobber \ mrproper \ distclean: clean +.PHONY: clean clobber mrproper distclean + all: $(OBJDIR)/board.h for target in $(TARGETS); do make $$target\_$(BOARD).bin; done for target in $(TARGETS_WITH_ROM_VARS); do make TARGET_ROM_VARS=1 $$target\_$(BOARD).bin; done @@ -131,5 +135,6 @@ all: $(OBJDIR)/board.h allboards: for board in $(BOARDS); do make BOARD=$$board all; done +.PHONY: all allboards diff --git a/tests/Makefile b/tests/Makefile index bcce0cce8..5e8dff878 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -35,7 +35,7 @@ submodule: if [ ! -d $(MC1322X) ] ; then echo "*** cannot find MC1322X directory $(MC1322X)" ; exit 2; fi $(MAKE) - +.PHONY: submodule From 7df1e11fe018b1e2c96a6d05fdfb1123c44aac0d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 12 Mar 2010 18:06:09 -0500 Subject: [PATCH 295/471] TODO: set radio modes --- TODO | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/TODO b/TODO index e3cf8bb01..86e8aba4f 100644 --- a/TODO +++ b/TODO @@ -4,14 +4,13 @@ - add timestamp to received packets -- receive callback in the isr +- transmit callback in the isr + +- add a way to set modes: tx_only, rx_only, txrx. (so you can be lazy + and have blocks of code that don't need to handle rx packets) - callback for each packet the gets transmitted - beacon sync - CCA and ED. - - - - From fecb5e7bdb9b8d93460cb7120578cbe5418ad5a7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 13 Mar 2010 07:30:47 -0500 Subject: [PATCH 296/471] many warning cleanups. Contributed by Clive Stubbings. --- board/redbee-econotag.h | 2 +- board/redbee-usb.h | 6 +++--- lib/maca.c | 12 ++++++------ tests/blink-blue.c | 4 ++-- tests/blink-green.c | 4 ++-- tests/blink-red.c | 4 ++-- tests/blink-white.c | 5 +++-- tests/per.c | 10 +++++----- tests/printf.c | 2 +- tests/tests.c | 4 ++-- tests/uart1-loopback.c | 1 - 11 files changed, 27 insertions(+), 27 deletions(-) diff --git a/board/redbee-econotag.h b/board/redbee-econotag.h index fb095faf1..4975a898c 100644 --- a/board/redbee-econotag.h +++ b/board/redbee-econotag.h @@ -3,7 +3,7 @@ #define LED_RED 12 #define LED_GREEN 21 -#define LED_BLUE 35 +#define LED_BLUE 0 /* FIXME: Was 35 - in high GPIO bank so it doesn't work */ /* XTAL TUNE parameters */ /* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ diff --git a/board/redbee-usb.h b/board/redbee-usb.h index c9d786a8b..893eaa5fa 100644 --- a/board/redbee-usb.h +++ b/board/redbee-usb.h @@ -1,9 +1,9 @@ #ifndef BOARD_REDBEE_DEV_H #define BOARD_REDBEE_DEV_H -#define LED_RED (1 << 23) -#define LED_GREEN (1 << 24) -#define LED_BLUE (1 << 25) +#define LED_RED 23 +#define LED_GREEN 24 +#define LED_BLUE 25 /* XTAL TUNE parameters */ /* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ diff --git a/lib/maca.c b/lib/maca.c index 094724e9b..a25b820cd 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -70,29 +70,29 @@ void Print_Packets(char *s) { int i = 0; printf("packet pool after %s:\n\r",s); p = free_head; - printf("free_head: 0x%x ",free_head); + printf("free_head: 0x%x ", (uint32_t) free_head); while(p != 0) { i++; p = p->left; - printf("->0x%x",p); + printf("->0x%x", (uint32_t) p); } printf("\n\r"); p = tx_head; - printf("tx_head: 0x%x ",tx_head); + printf("tx_head: 0x%x ", (uint32_t) tx_head); while(p != 0) { i++; p = p->left; - printf("->0x%x",p); + printf("->0x%x", (uint32_t) p); } printf("\n\r"); p = rx_head; - printf("rx_head: 0x%x ",rx_head); + printf("rx_head: 0x%x ", (uint32_t) rx_head); while(p != 0) { i++; p = p->left; - printf("->0x%x",p); + printf("->0x%x", (uint32_t) p); } printf("\n\r"); printf("found %d packets\n\r",i); diff --git a/tests/blink-blue.c b/tests/blink-blue.c index a9410cd01..34f78e558 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -8,11 +8,11 @@ void main(void) { volatile uint32_t i; - *GPIO_PAD_DIR0 = ( 1<< LED ); + *GPIO_PAD_DIR0 = LED; while(1) { - *GPIO_DATA0 = (1 << LED ); + *GPIO_DATA0 = LED; for(i=0; i #include +#include "led.h" #define DELAY 400000 @@ -8,11 +9,11 @@ void main(void) { volatile uint32_t i; - *GPIO_PAD_DIR0 = ( 1<< LED ); + *GPIO_PAD_DIR0 = LED; while(1) { - *GPIO_DATA0 = (1 << LED ); + *GPIO_DATA0 = LED; for(i=0; iaddr; free_packet(p); /* pick a new address if someone else is using ours */ diff --git a/tests/printf.c b/tests/printf.c index 10cbd4d1c..7208bdb55 100644 --- a/tests/printf.c +++ b/tests/printf.c @@ -27,7 +27,7 @@ int main(void) printf("hex %x = ff\n", 0xff); printf("hex %02x = 00\n", 0); printf("signed %d = unsigned %u = hex %x\n", -3, -3, -3); - printf("%d %s(s)%", 0, "message"); + printf("%d %s(s)", 0, "message"); printf("\n"); printf("%d %s(s) with %%\n", 0, "message"); // sprintf(buf, "justif: \"%-10s\"\n", "left"); printf("%s", buf); diff --git a/tests/tests.c b/tests/tests.c index bd64642c6..5d6639d96 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -35,9 +35,9 @@ void dump_regs(uint32_t base, uint32_t len) { printf("base +0 +4 +8 +c +10 +14 +18 +1c \n\r"); for (i = 0; i < len; i ++) { if ((i & 7) == 0) { - printf("%02x",4 * i); + printf("%02x",(uint32_t)(4 * i)); } - printf(" %08x",*mem32(base+(4*i))); + printf(" %08x",(uint32_t)*mem32(base+(4*i))); if ((i & 7) == 7) printf(NL); } diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index 38d135427..e8d63b0ef 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -5,7 +5,6 @@ #include "config.h" void main(void) { - volatile char c; uart1_init(INC,MOD,SAMP); From 6bf05a928015bac61dbcb8312cffb71f55e552f6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 13 Mar 2010 07:43:44 -0500 Subject: [PATCH 297/471] fix board.a creation: only the first COBJ would get built and added to board.a. --- Makefile.include | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.include b/Makefile.include index ee3cd797e..7ae85e8ca 100644 --- a/Makefile.include +++ b/Makefile.include @@ -65,13 +65,13 @@ $(ISR): $(ISR:.o=.c) ifdef COBJS -BOARDARCS := $(OBJDIR)/board.a(${filter $(OBJDIR)/%.o,$(OBJDIR)/$(COBJS)}) +BOARDARCS := $(OBJDIR)/board.a(${filter $(OBJDIR)/%.o,$(BOARDOBJS)}) endif empty-board-a: $(AR) $(ARFLAGS) $(OBJDIR)/board.a .PHONY: empty-board-a -$(OBJDIR)/board.a: empty-board-a $(BOARDARCS) +$(OBJDIR)/board.a: empty-board-a $(BOARDARCS) $(BOARDOBJS) $(MC1322X)/src/src.a: $(MC1322X)/src/src.a($(SRCOBJS)) %_$(BOARD).elf: $(OBJDIR)/%.o $(START) $(ISR) $(SRCOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/board.a $(MC1322X)/src/src.a From 97f3b885820a12ce63101f2a95d1f4bdc7bf1f28 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 14 Mar 2010 17:42:52 -0400 Subject: [PATCH 298/471] add ftditools and Bit-Bang-MC. Right now bbmc can toggle reset on the econotag. --- tools/ftditools/Makefile | 10 ++ tools/ftditools/bbmc.c | 242 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 252 insertions(+) create mode 100644 tools/ftditools/Makefile create mode 100644 tools/ftditools/bbmc.c diff --git a/tools/ftditools/Makefile b/tools/ftditools/Makefile new file mode 100644 index 000000000..d52b445e1 --- /dev/null +++ b/tools/ftditools/Makefile @@ -0,0 +1,10 @@ +LDFLAGS = -lftdi + +TARGETS = bbmc + +CFLAGS = -Wall -Wextra #-Werror + +all: $(TARGETS) + +clean: + rm $(TARGETS) diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c new file mode 100644 index 000000000..675a6d27b --- /dev/null +++ b/tools/ftditools/bbmc.c @@ -0,0 +1,242 @@ +/* control reset and VREF2 lines */ + +#include +#include +#include + +#define low(x) (1 << x) +#define high(x) (1 << (x + 8)) + +#define REDBEE_ECONOTAG_RESET high(2) +#define REDBEE_ECONOTAG_VREF2L high(7) +#define REDBEE_ECONOTAG_VREF2H high(6) +#define REDBEE_ECONOTAG_INTERFACE INTERFACE_A + +#define REDBEE_USB_RESET high(2) +#define REDBEE_USB_VREF2L low(5) +#define REDBEE_USB_VREF2H low(6) +#define REDBEE_USB_INTERFACE INTERFACE_B + +#define BOARD REDBEE_ECONOTAG + +#define STR(x) #x +#define STR2(x) STR(x) +#define CAT(x,y) x##y +#define CAT2(x, y, z) x##y##z + +#define dir(x) ( CAT(x,_RESET) | CAT(x,_VREF2L) | CAT(x,_VREF2H)) +#define interface(x) ( CAT(x,_INTERFACE) ) +#define reset_release(x) ( CAT(x,_RESET) ) +#define reset_set(x) ( 0 ) +#define vref2_normal(x) ( CAT(x,_VREF2H) ) +#define vref2_erase(x) ( CAT(x,_VREF2L) ) + +int print_and_prompt(struct ftdi_device_list *devlist); +void toggle_reset(struct ftdi_context *ftdic); + +int main(int argc, char **argv) +{ + int ret; + struct ftdi_context ftdic; + struct ftdi_device_list *devlist; + uint32_t vendid = 0x0403; uint32_t prodid = 0x6010; + int devindex = 0; + + while (1) { + int c; + int option_index = 0; + static struct option long_options[] = { + {"index", required_argument, 0, 'i'}, + {"help", no_argument, 0, '?'}, + {0, 0, 0, 0} + }; + + c = getopt_long (argc, argv, "i:", + long_options, &option_index); + if (c == -1) + break; + + switch (c) { + /* process long opts */ + case 'i': + devindex = atoi(optarg); + printf("index %d\n", devindex); + default: + printf("Usage: don't know yet\n"); + } + } + + if ((ret = ftdi_usb_find_all(&ftdic, &devlist, vendid, prodid)) < 0) + { + fprintf(stderr, "ftdi_usb_find_all failed: %d (%s)\n", ret, ftdi_get_error_string(&ftdic)); + return EXIT_FAILURE; + } + + printf("Number of FTDI devices found: %d\n", ret); + + if (ftdi_init(&ftdic) < 0) + { + fprintf(stderr, "ftdi_init failed\n"); + return EXIT_FAILURE; + } + + if (ftdi_set_interface(&ftdic, interface(BOARD)) < 0) { + fprintf(stderr, "couldn't set interface %d\n", interface(BOARD)); + return EXIT_FAILURE; + } + + if( (ret == 1) /*|| device number passed on cmdline */ ) { + if( (ret = ftdi_usb_open_desc_index( + &ftdic, + vendid, + prodid, + NULL, + NULL, + devindex)) < 0) { + fprintf(stderr, "couldn't open devindex %d\n", devindex); + return EXIT_FAILURE; + } + toggle_reset(&ftdic); + } else { + print_and_prompt(devlist); + } + + ftdi_list_free(&devlist); + ftdi_deinit(&ftdic); + + return EXIT_SUCCESS; +} + +int print_and_prompt( struct ftdi_device_list *devlist ) +{ + int i, ret; + struct ftdi_context ftdic; + struct ftdi_device_list *curdev; + char manufacturer[128], description[128]; + + i = 0; + for (curdev = devlist; curdev != NULL; i++) + { + printf("Checking device: %d\n", i); + if (0 > (ret = ftdi_usb_get_strings(&ftdic, + curdev->dev, + manufacturer, 128, + description, 128, + NULL, 0))) + { + fprintf(stderr, "ftdi_usb_get_strings failed: %d (%s)\n", + ret, ftdi_get_error_string(&ftdic)); + return EXIT_FAILURE; + } + printf("Manufacturer: %s, Description: %s\n\n", manufacturer, description); + curdev = curdev->next; + } + + return EXIT_SUCCESS; +} + +void toggle_reset(struct ftdi_context *ftdic) +{ + uint8_t buf[3], size; + int ret; + + printf("toggle reset\n"); + + /* using MPSSE since it give access to high GPIO*/ + /* set as inputs for now */ + ftdi_set_bitmode(ftdic, 0 , BITMODE_MPSSE); + + size = 3; + + /* RESET RELEASE */ + + /* initialize low byte */ + /* command "set data bits low byte" */ + buf[0] = 0x80; + buf[1] = ((reset_release(BOARD) | vref2_normal(BOARD)) & 0xff); + buf[2] = dir(BOARD) & 0xff; + fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); + + + if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) + { + perror("ft2232_write error"); + fprintf(stderr, "ft2232_write command %x\n", buf[0]); + return; + } + + + /* command "set data bits high byte" */ + buf[0] = 0x82; + buf[1] = ((reset_release(BOARD) | vref2_normal(BOARD)) >> 8); + buf[2] = dir(BOARD) >> 8; + fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); + + if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) + { + perror("ft2232_write error"); + fprintf(stderr, "ft2232_write command %x\n", buf[0]); + return; + } + + /* RESET HOLD */ + + /* initialize low byte */ + /* command "set data bits low byte" */ + buf[0] = 0x80; + buf[1] = ((reset_set(BOARD) | vref2_normal(BOARD)) & 0xff); + buf[2] = dir(BOARD) & 0xff; + fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); + + if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) + { + perror("ft2232_write error"); + fprintf(stderr, "ft2232_write command %x\n", buf[0]); + return; + } + + /* command "set data bits high byte" */ + buf[0] = 0x82; + buf[1] = ((reset_set(BOARD) | vref2_normal(BOARD)) >> 8); + buf[2] = dir(BOARD) >> 8; + fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); + + if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) + { + perror("ft2232_write error"); + fprintf(stderr, "ft2232_write command %x\n", buf[0]); + return; + } + + /* RESET RELEASE */ + + /* initialize low byte */ + /* command "set data bits low byte" */ + buf[0] = 0x80; + buf[1] = ((reset_release(BOARD) | vref2_normal(BOARD)) & 0xff); + buf[2] = dir(BOARD) & 0xff; + fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); + + if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) + { + perror("ft2232_write error"); + fprintf(stderr, "ft2232_write command %x\n", buf[0]); + return; + } + + /* command "set data bits high byte" */ + buf[0] = 0x82; + buf[1] = ((reset_release(BOARD) | vref2_normal(BOARD)) >> 8); + buf[2] = dir(BOARD) >> 8; + fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); + + if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) + { + perror("ft2232_write error"); + fprintf(stderr, "ft2232_write command %x\n", buf[0]); + return; + } + + return; + +} From 537ceafe2fd433782dff9b4a4c66984fd6d11420 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 14 Mar 2010 18:08:13 -0400 Subject: [PATCH 299/471] update usage for flow control switch --- tools/mc1322x-load.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/mc1322x-load.pl b/tools/mc1322x-load.pl index 2c2517dec..c56aef892 100755 --- a/tools/mc1322x-load.pl +++ b/tools/mc1322x-load.pl @@ -31,8 +31,9 @@ if($filename eq '') { print " -s optional: secondary binary file to send\n"; print " -t default: /dev/ttyUSB0\n"; print " -b default: 115200\n"; - print " anything on the command line is sent serial device\n"; - print " after all of the files have been sent\n"; + print " -r [none|rts] flow control default: rts\n"; + print " anything on the command line is sent\n"; + print " after all of the files.\n"; exit; } From 44a1c7b1fb0869e35843b0c0ff5753305982b75f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 14 Mar 2010 18:08:13 -0400 Subject: [PATCH 300/471] update usage for flow control switch --- tools/mc1322x-load.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/mc1322x-load.pl b/tools/mc1322x-load.pl index 2c2517dec..c56aef892 100755 --- a/tools/mc1322x-load.pl +++ b/tools/mc1322x-load.pl @@ -31,8 +31,9 @@ if($filename eq '') { print " -s optional: secondary binary file to send\n"; print " -t default: /dev/ttyUSB0\n"; print " -b default: 115200\n"; - print " anything on the command line is sent serial device\n"; - print " after all of the files have been sent\n"; + print " -r [none|rts] flow control default: rts\n"; + print " anything on the command line is sent\n"; + print " after all of the files.\n"; exit; } From 8a7b50176ebe2170f2c71a4ee131597b04c6545e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 14 Mar 2010 19:09:33 -0400 Subject: [PATCH 301/471] finish up print and prompt device selection. --- tools/ftditools/bbmc.c | 227 ++++++++++++++++++----------------------- 1 file changed, 102 insertions(+), 125 deletions(-) diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c index 675a6d27b..96632ef0a 100644 --- a/tools/ftditools/bbmc.c +++ b/tools/ftditools/bbmc.c @@ -1,9 +1,12 @@ /* control reset and VREF2 lines */ #include +#include #include #include +#define DEBUG 0 + #define low(x) (1 << x) #define high(x) (1 << (x + 8)) @@ -17,7 +20,7 @@ #define REDBEE_USB_VREF2H low(6) #define REDBEE_USB_INTERFACE INTERFACE_B -#define BOARD REDBEE_ECONOTAG +#define BOARD REDBEE_USB #define STR(x) #x #define STR2(x) STR(x) @@ -31,16 +34,21 @@ #define vref2_normal(x) ( CAT(x,_VREF2H) ) #define vref2_erase(x) ( CAT(x,_VREF2L) ) -int print_and_prompt(struct ftdi_device_list *devlist); +/* fgets input buffer length: for prompts and such */ +#define BUF_LEN 32 + +int print_and_prompt( struct ftdi_device_list *devlist, int num_devs); +int bb_mpsee(struct ftdi_context *ftdic, uint16_t dir, uint16_t val); void toggle_reset(struct ftdi_context *ftdic); +static uint32_t vendid = 0x0403; uint32_t prodid = 0x6010; + int main(int argc, char **argv) { - int ret; struct ftdi_context ftdic; struct ftdi_device_list *devlist; - uint32_t vendid = 0x0403; uint32_t prodid = 0x6010; - int devindex = 0; + int dev_index = -1; int num_devs; + int ret; while (1) { int c; @@ -59,21 +67,21 @@ int main(int argc, char **argv) switch (c) { /* process long opts */ case 'i': - devindex = atoi(optarg); - printf("index %d\n", devindex); + dev_index = atoi(optarg); + printf("index %d\n", dev_index); default: printf("Usage: don't know yet\n"); } } - if ((ret = ftdi_usb_find_all(&ftdic, &devlist, vendid, prodid)) < 0) + if ((num_devs = ftdi_usb_find_all(&ftdic, &devlist, vendid, prodid)) < 0) { - fprintf(stderr, "ftdi_usb_find_all failed: %d (%s)\n", ret, ftdi_get_error_string(&ftdic)); + fprintf(stderr, "ftdi_usb_find_all failed: %d (%s)\n", + num_devs, + ftdi_get_error_string(&ftdic)); return EXIT_FAILURE; } - printf("Number of FTDI devices found: %d\n", ret); - if (ftdi_init(&ftdic) < 0) { fprintf(stderr, "ftdi_init failed\n"); @@ -84,159 +92,128 @@ int main(int argc, char **argv) fprintf(stderr, "couldn't set interface %d\n", interface(BOARD)); return EXIT_FAILURE; } - - if( (ret == 1) /*|| device number passed on cmdline */ ) { - if( (ret = ftdi_usb_open_desc_index( - &ftdic, - vendid, - prodid, - NULL, - NULL, - devindex)) < 0) { - fprintf(stderr, "couldn't open devindex %d\n", devindex); - return EXIT_FAILURE; - } - toggle_reset(&ftdic); - } else { - print_and_prompt(devlist); + + if(num_devs == 1) { dev_index = 0; } + while( (dev_index < 0) || (dev_index >= num_devs)){ + dev_index = print_and_prompt(devlist, num_devs); } + if( (ret = ftdi_usb_open_desc_index( + &ftdic, + vendid, + prodid, + NULL, + NULL, + dev_index)) < 0) { + fprintf(stderr, "couldn't open dev_index %d\n", dev_index); + return EXIT_FAILURE; + } + toggle_reset(&ftdic); + ftdi_list_free(&devlist); ftdi_deinit(&ftdic); return EXIT_SUCCESS; } -int print_and_prompt( struct ftdi_device_list *devlist ) +int print_and_prompt( struct ftdi_device_list *devlist, int num_devs) { int i, ret; struct ftdi_context ftdic; struct ftdi_device_list *curdev; - char manufacturer[128], description[128]; + char manufacturer[128], description[128], serial[128]; + char input[BUF_LEN]; char *s; + int sel = -1; + + printf("Found %d devices with vendor id 0x%04x product id 0x%04x\n\n", + num_devs, vendid, prodid); + i = 0; for (curdev = devlist; curdev != NULL; i++) { - printf("Checking device: %d\n", i); + printf(" [%d] ", i); if (0 > (ret = ftdi_usb_get_strings(&ftdic, curdev->dev, manufacturer, 128, description, 128, - NULL, 0))) + serial, 128))) { fprintf(stderr, "ftdi_usb_get_strings failed: %d (%s)\n", ret, ftdi_get_error_string(&ftdic)); return EXIT_FAILURE; } - printf("Manufacturer: %s, Description: %s\n\n", manufacturer, description); + printf("Manufacturer: %s, Description: %s, Serial %s\n", + manufacturer, description, serial); curdev = curdev->next; } - return EXIT_SUCCESS; + printf("\nUse which device? "); + + s = fgets(input, BUF_LEN, stdin); + if (s != NULL) { + size_t last = strlen (input) - 1; + if (input[last] == '\n') input[last] = '\0'; + } + + sscanf(s, "%i",&sel); + + return sel; } void toggle_reset(struct ftdi_context *ftdic) { - uint8_t buf[3], size; - int ret; - printf("toggle reset\n"); /* using MPSSE since it give access to high GPIO*/ /* set as inputs for now */ ftdi_set_bitmode(ftdic, 0 , BITMODE_MPSSE); - size = 3; - - /* RESET RELEASE */ - - /* initialize low byte */ - /* command "set data bits low byte" */ - buf[0] = 0x80; - buf[1] = ((reset_release(BOARD) | vref2_normal(BOARD)) & 0xff); - buf[2] = dir(BOARD) & 0xff; - fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); - - - if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) - { - perror("ft2232_write error"); - fprintf(stderr, "ft2232_write command %x\n", buf[0]); - return; - } - - - /* command "set data bits high byte" */ - buf[0] = 0x82; - buf[1] = ((reset_release(BOARD) | vref2_normal(BOARD)) >> 8); - buf[2] = dir(BOARD) >> 8; - fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); - - if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) - { - perror("ft2232_write error"); - fprintf(stderr, "ft2232_write command %x\n", buf[0]); - return; - } - - /* RESET HOLD */ - - /* initialize low byte */ - /* command "set data bits low byte" */ - buf[0] = 0x80; - buf[1] = ((reset_set(BOARD) | vref2_normal(BOARD)) & 0xff); - buf[2] = dir(BOARD) & 0xff; - fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); - - if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) - { - perror("ft2232_write error"); - fprintf(stderr, "ft2232_write command %x\n", buf[0]); - return; - } - - /* command "set data bits high byte" */ - buf[0] = 0x82; - buf[1] = ((reset_set(BOARD) | vref2_normal(BOARD)) >> 8); - buf[2] = dir(BOARD) >> 8; - fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); - - if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) - { - perror("ft2232_write error"); - fprintf(stderr, "ft2232_write command %x\n", buf[0]); - return; - } - - /* RESET RELEASE */ - - /* initialize low byte */ - /* command "set data bits low byte" */ - buf[0] = 0x80; - buf[1] = ((reset_release(BOARD) | vref2_normal(BOARD)) & 0xff); - buf[2] = dir(BOARD) & 0xff; - fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); - - if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) - { - perror("ft2232_write error"); - fprintf(stderr, "ft2232_write command %x\n", buf[0]); - return; - } - - /* command "set data bits high byte" */ - buf[0] = 0x82; - buf[1] = ((reset_release(BOARD) | vref2_normal(BOARD)) >> 8); - buf[2] = dir(BOARD) >> 8; - fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); - - if ((ret = (ftdi_write_data(ftdic, buf, size))) < 0) - { - perror("ft2232_write error"); - fprintf(stderr, "ft2232_write command %x\n", buf[0]); - return; - } + bb_mpsee(ftdic, dir(BOARD), (reset_release(BOARD) | vref2_normal(BOARD))); + bb_mpsee(ftdic, dir(BOARD), (reset_set(BOARD) | vref2_normal(BOARD))); + bb_mpsee(ftdic, dir(BOARD), (reset_release(BOARD) | vref2_normal(BOARD))); return; } + + +int bb_mpsee(struct ftdi_context *ftdic, uint16_t dir, uint16_t val) +{ + uint8_t buf[3]; + int ret; + + /* command "set data bits low byte" */ + buf[0] = 0x80; + buf[1] = (val & 0xff); + buf[2] = dir & 0xff; +#if DEBUG + fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); +#endif + + if ((ret = (ftdi_write_data(ftdic, buf, 3))) < 0) + { + perror("ft2232_write error"); + fprintf(stderr, "ft2232_write command %x\n", buf[0]); + return EXIT_FAILURE; + } + + + /* command "set data bits high byte" */ + buf[0] = 0x82; + buf[1] = (val >> 8); + buf[2] = dir >> 8; +#if DEBUG + fprintf(stderr,"write %x %x %x\n",buf[0],buf[1],buf[2]); +#endif + + if ((ret = (ftdi_write_data(ftdic, buf, 3))) < 0) + { + perror("ft2232_write error"); + fprintf(stderr, "ft2232_write command %x\n", buf[0]); + return EXIT_FAILURE; + } + + return 0; + +} From 07e6b65182de0129d8a9ad2d6b98143f5b3ab09f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 15 Mar 2010 07:24:48 -0400 Subject: [PATCH 302/471] fix up long types in printfs from Clive Stubbings. --- lib/maca.c | 12 ++++++------ tests/tests.c | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index a25b820cd..97cc18564 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -70,29 +70,29 @@ void Print_Packets(char *s) { int i = 0; printf("packet pool after %s:\n\r",s); p = free_head; - printf("free_head: 0x%x ", (uint32_t) free_head); + printf("free_head: 0x%lx ", (uint32_t) free_head); while(p != 0) { i++; p = p->left; - printf("->0x%x", (uint32_t) p); + printf("->0x%lx", (uint32_t) p); } printf("\n\r"); p = tx_head; - printf("tx_head: 0x%x ", (uint32_t) tx_head); + printf("tx_head: 0x%lx ", (uint32_t) tx_head); while(p != 0) { i++; p = p->left; - printf("->0x%x", (uint32_t) p); + printf("->0x%lx", (uint32_t) p); } printf("\n\r"); p = rx_head; - printf("rx_head: 0x%x ", (uint32_t) rx_head); + printf("rx_head: 0x%lx ", (uint32_t) rx_head); while(p != 0) { i++; p = p->left; - printf("->0x%x", (uint32_t) p); + printf("->0x%lx", (uint32_t) p); } printf("\n\r"); printf("found %d packets\n\r",i); diff --git a/tests/tests.c b/tests/tests.c index 5d6639d96..ba6765693 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -35,9 +35,9 @@ void dump_regs(uint32_t base, uint32_t len) { printf("base +0 +4 +8 +c +10 +14 +18 +1c \n\r"); for (i = 0; i < len; i ++) { if ((i & 7) == 0) { - printf("%02x",(uint32_t)(4 * i)); + printf("%02lx",(uint32_t)(4 * i)); } - printf(" %08x",(uint32_t)*mem32(base+(4*i))); + printf(" %08lx",(uint32_t)*mem32(base+(4*i))); if ((i & 7) == 7) printf(NL); } From 5751beb9357315b8920ed6be72b54ee0ca510b4c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 15 Mar 2010 19:01:07 -0400 Subject: [PATCH 303/471] add a way to switch layouts --- tools/ftditools/bbmc.c | 106 +++++++++++++++++++++++++++++++++-------- 1 file changed, 86 insertions(+), 20 deletions(-) diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c index 96632ef0a..44e497e6b 100644 --- a/tools/ftditools/bbmc.c +++ b/tools/ftditools/bbmc.c @@ -34,12 +34,55 @@ #define vref2_normal(x) ( CAT(x,_VREF2H) ) #define vref2_erase(x) ( CAT(x,_VREF2L) ) +struct layout { + char *name; + enum ftdi_interface interface; + uint16_t dir; + uint16_t reset_release; + uint16_t reset_set; + uint16_t vref2_normal; + uint16_t vref2_erase; +}; + +#define std_layout(x) \ + .interface = interface(x), \ + .dir = dir(x), \ + .reset_release = reset_release(x), \ + .reset_set = reset_set(x), \ + .vref2_normal = vref2_normal(x), \ + .vref2_erase = vref2_erase(x), + +static const struct layout layouts[] = +{ + { .name = "redbee_econotag", + std_layout(REDBEE_ECONOTAG) + }, + { .name = "redbee_usb", + std_layout(REDBEE_USB) + }, + { .name = NULL, /* end of table */ }, +}; + + /* fgets input buffer length: for prompts and such */ #define BUF_LEN 32 -int print_and_prompt( struct ftdi_device_list *devlist, int num_devs); +int print_and_prompt( struct ftdi_device_list *devlist ); int bb_mpsee(struct ftdi_context *ftdic, uint16_t dir, uint16_t val); -void toggle_reset(struct ftdi_context *ftdic); +void toggle_reset(struct ftdi_context *ftdic, const struct layout * l); +void usage(void); + +const struct layout * find_layout(char * str) +{ + uint32_t i = 0; + + while(layouts[i].name != NULL) { + if(strcmp(layouts[i].name, str) == 0) { return &layouts[i]; } + i++; + } + + return NULL; +} static uint32_t vendid = 0x0403; uint32_t prodid = 0x6010; @@ -48,39 +91,52 @@ int main(int argc, char **argv) struct ftdi_context ftdic; struct ftdi_device_list *devlist; int dev_index = -1; int num_devs; + char layout_str[BUF_LEN]; + const struct layout *layout; int ret; while (1) { int c; int option_index = 0; static struct option long_options[] = { - {"index", required_argument, 0, 'i'}, - {"help", no_argument, 0, '?'}, + {"layout", required_argument, 0, 'l'}, + {"index", required_argument, 0, 'i'}, + {"help", no_argument, 0, '?'}, {0, 0, 0, 0} }; - c = getopt_long (argc, argv, "i:", + c = getopt_long (argc, argv, "i:l:", long_options, &option_index); if (c == -1) break; switch (c) { /* process long opts */ + case 'l': + strncpy(layout_str, optarg, BUF_LEN); + break; case 'i': dev_index = atoi(optarg); - printf("index %d\n", dev_index); + break; default: - printf("Usage: don't know yet\n"); + usage(); + break; } } + if( !(layout = find_layout(layout_str))) { + usage(); + printf("You must specify a layout\n"); + return EXIT_FAILURE; + } + if ((num_devs = ftdi_usb_find_all(&ftdic, &devlist, vendid, prodid)) < 0) { fprintf(stderr, "ftdi_usb_find_all failed: %d (%s)\n", num_devs, ftdi_get_error_string(&ftdic)); return EXIT_FAILURE; - } + } if (ftdi_init(&ftdic) < 0) { @@ -88,16 +144,23 @@ int main(int argc, char **argv) return EXIT_FAILURE; } - if (ftdi_set_interface(&ftdic, interface(BOARD)) < 0) { - fprintf(stderr, "couldn't set interface %d\n", interface(BOARD)); + if (ftdi_set_interface(&ftdic, layout->interface) < 0) { + fprintf(stderr, "couldn't set interface %d\n", layout->interface); return EXIT_FAILURE; } + printf("Found %d devices with vendor id 0x%04x product id 0x%04x\n", + num_devs, vendid, prodid); + + if(num_devs == 0) { return EXIT_SUCCESS; } + if(num_devs == 1) { dev_index = 0; } while( (dev_index < 0) || (dev_index >= num_devs)){ - dev_index = print_and_prompt(devlist, num_devs); + dev_index = print_and_prompt(devlist); } + printf("Opening device %d using layout %s\n", dev_index, layout->name); + if( (ret = ftdi_usb_open_desc_index( &ftdic, vendid, @@ -108,7 +171,7 @@ int main(int argc, char **argv) fprintf(stderr, "couldn't open dev_index %d\n", dev_index); return EXIT_FAILURE; } - toggle_reset(&ftdic); + toggle_reset(&ftdic, layout); ftdi_list_free(&devlist); ftdi_deinit(&ftdic); @@ -116,7 +179,12 @@ int main(int argc, char **argv) return EXIT_SUCCESS; } -int print_and_prompt( struct ftdi_device_list *devlist, int num_devs) +void usage(void) +{ + printf("Usage: don't know yet\n"); +} + +int print_and_prompt( struct ftdi_device_list *devlist ) { int i, ret; struct ftdi_context ftdic; @@ -125,9 +193,7 @@ int print_and_prompt( struct ftdi_device_list *devlist, int num_devs) char input[BUF_LEN]; char *s; int sel = -1; - printf("Found %d devices with vendor id 0x%04x product id 0x%04x\n\n", - num_devs, vendid, prodid); - + printf("\n"); i = 0; for (curdev = devlist; curdev != NULL; i++) @@ -161,7 +227,7 @@ int print_and_prompt( struct ftdi_device_list *devlist, int num_devs) return sel; } -void toggle_reset(struct ftdi_context *ftdic) +void toggle_reset(struct ftdi_context *ftdic, const struct layout * l) { printf("toggle reset\n"); @@ -169,9 +235,9 @@ void toggle_reset(struct ftdi_context *ftdic) /* set as inputs for now */ ftdi_set_bitmode(ftdic, 0 , BITMODE_MPSSE); - bb_mpsee(ftdic, dir(BOARD), (reset_release(BOARD) | vref2_normal(BOARD))); - bb_mpsee(ftdic, dir(BOARD), (reset_set(BOARD) | vref2_normal(BOARD))); - bb_mpsee(ftdic, dir(BOARD), (reset_release(BOARD) | vref2_normal(BOARD))); + bb_mpsee(ftdic, l->dir, (l->reset_release | l->vref2_normal)); + bb_mpsee(ftdic, l->dir, (l->reset_set | l->vref2_normal)); + bb_mpsee(ftdic, l->dir, (l->reset_release | l->vref2_normal)); return; From 2aa76aaacd8b7a231b522d4107945f500015cbc9 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 10:31:35 -0400 Subject: [PATCH 304/471] init_phy was doing phy initialization and maca reset. maca_reset was doing nothing useful. This patch factors init_phy and rewrites maca_reset. --- lib/maca.c | 60 ++++++++++++++++++++++++------------------------------ 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 97cc18564..72507ceba 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -423,45 +423,38 @@ static uint8_t ram_values[4]; void init_phy(void) { - volatile uint32_t cnt; - - *MACA_RESET = (1 << maca_reset_rst); - - for(cnt = 0; cnt < 100; cnt++) {}; - - *MACA_RESET = (1 << maca_reset_clkon); - - *MACA_CONTROL = maca_ctrl_seq_nop; - - for(cnt = 0; cnt < 400000; cnt++) {}; - // *MACA_TMREN = (1 << maca_tmren_strt) | (1 << maca_tmren_cpl); - *MACA_CLKDIV = MACA_CLOCK_DIV; - *MACA_WARMUP = 0x00180012; - *MACA_EOFDELAY = 0x00000004; - *MACA_CCADELAY = 0x001a0022; - *MACA_TXCCADELAY = 0x00000025; - *MACA_FRAMESYNC0 = 0x000000A7; - *MACA_CLK = 0x00000008; - *MACA_MASKIRQ = ((1 << maca_irq_rst) | - (1 << maca_irq_acpl) | - (1 << maca_irq_cm) | - (1 << maca_irq_flt) | - (1 << maca_irq_crc) | - (1 << maca_irq_di) | - (1 << maca_irq_sftclk) - ); - *MACA_SLOTOFFSET = 0x00350000; - + *MACA_CLKDIV = MACA_CLOCK_DIV; + *MACA_WARMUP = 0x00180012; + *MACA_EOFDELAY = 0x00000004; + *MACA_CCADELAY = 0x001a0022; + *MACA_TXCCADELAY = 0x00000025; + *MACA_FRAMESYNC0 = 0x000000A7; + *MACA_CLK = 0x00000008; + *MACA_MASKIRQ = ((1 << maca_irq_rst) | + (1 << maca_irq_acpl) | + (1 << maca_irq_cm) | + (1 << maca_irq_flt) | + (1 << maca_irq_crc) | + (1 << maca_irq_di) | + (1 << maca_irq_sftclk) + ); + *MACA_SLOTOFFSET = 0x00350000; } void reset_maca(void) { - uint32_t tmp; + volatile uint32_t cnt; + + *MACA_RESET = (1 << maca_reset_rst); + + for(cnt = 0; cnt < 100; cnt++) {}; + + *MACA_RESET = (1 << maca_reset_clkon); + *MACA_CONTROL = maca_ctrl_seq_nop; - do { - tmp = *MACA_STATUS; - } while ((tmp & 0xf) == maca_cc_not_completed); + + for(cnt = 0; cnt < 400000; cnt++) {}; /* Clear all interrupts. */ *MACA_CLRIRQ = 0xffff; @@ -580,6 +573,7 @@ void radio_on(void) { /* turn the radio regulators back on */ reg(0x80003048) = 0x00000f78; /* reinitialize the phy */ + reset_maca(); init_phy(); enable_irq(MACA); From 092a182a5d8341f8e52039f7012adeb423648b0e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 10:34:11 -0400 Subject: [PATCH 305/471] protect set_channel and set_power from interrupts. --- lib/maca.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/maca.c b/lib/maca.c index 72507ceba..e21bdd5c2 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -752,6 +752,8 @@ const uint32_t AIMVAL[19] = { #define ADDR_POW2 ADDR_POW1 + 12 #define ADDR_POW3 ADDR_POW1 + 64 void set_power(uint8_t power) { + safe_irq_disable(MACA); + reg(ADDR_POW1) = PSMVAL[power]; /* see http://devl.org/pipermail/mc1322x/2009-October/000065.html */ @@ -763,6 +765,8 @@ void set_power(uint8_t power) { #endif reg(ADDR_POW3) = AIMVAL[power]; + + irq_restore(); } const uint8_t VCODivI[16] = { @@ -810,6 +814,7 @@ const uint32_t VCODivF[16] = { #define ADDR_CHAN4 (ADDR_CHAN1+48) void set_channel(uint8_t chan) { volatile uint32_t tmp; + safe_irq_disable(MACA); tmp = reg(ADDR_CHAN1); tmp = tmp & 0xbfffffff; @@ -830,6 +835,7 @@ void set_channel(uint8_t chan) { tmp = tmp | (((ctov[chan])<<8)&0x1F00); reg(ADDR_CHAN4) = tmp; /* duh! */ + irq_restore(); } #define ROM_END 0x0013ffff From 334c316c0a0dd7fc0409ad018d9feb1d9812b981 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 10:40:25 -0400 Subject: [PATCH 306/471] make xtal trimming part of the lowlevel init routines. --- src/default_lowlevel.h | 2 +- tests/rftest-rx.c | 2 +- tests/rftest-tx.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/default_lowlevel.h b/src/default_lowlevel.h index fc58c9cb8..fcab1cfcb 100644 --- a/src/default_lowlevel.h +++ b/src/default_lowlevel.h @@ -1,8 +1,8 @@ #ifndef LOWLEVEL_H #define LOWLEVEL_H +#define trim_xtal() pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); void default_vreg_init(void); - void uart1_init(uint16_t inc, uint16_t mod, uint8_t samp); #endif diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 20550a044..3bf2a9f5b 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -23,7 +23,7 @@ void main(void) { *GPIO_DATA_SEL0 = ( 1 << LED ); /* trim the reference osc. to 24MHz */ - pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); + trim_xtal(); uart_init(INC, MOD, SAMP); diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index b77f84679..971f68b17 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -33,7 +33,7 @@ void main(void) { volatile packet_t *p; /* trim the reference osc. to 24MHz */ - pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); + trim_xtal(); uart_init(INC, MOD, SAMP); From 7408b71868b031f5621495f7adbff2056063db09 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 10:47:01 -0400 Subject: [PATCH 307/471] make sure any submodules are updated --- Makefile.include | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.include b/Makefile.include index 7ae85e8ca..2f3f7eefa 100644 --- a/Makefile.include +++ b/Makefile.include @@ -129,6 +129,7 @@ distclean: clean .PHONY: clean clobber mrproper distclean all: $(OBJDIR)/board.h + git submodule update for target in $(TARGETS); do make $$target\_$(BOARD).bin; done for target in $(TARGETS_WITH_ROM_VARS); do make TARGET_ROM_VARS=1 $$target\_$(BOARD).bin; done From 64e643bd0bba68effd38a2c80148b6d292ebc016 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 16:35:39 -0400 Subject: [PATCH 308/471] add erase and reset commands --- tools/ftditools/bbmc.c | 88 +++++++++++++++++++++++++++++++++++------- 1 file changed, 75 insertions(+), 13 deletions(-) diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c index 44e497e6b..3708aab8d 100644 --- a/tools/ftditools/bbmc.c +++ b/tools/ftditools/bbmc.c @@ -34,6 +34,9 @@ #define vref2_normal(x) ( CAT(x,_VREF2H) ) #define vref2_erase(x) ( CAT(x,_VREF2L) ) +/* fgets input buffer length: for prompts and such */ +#define BUF_LEN 32 + struct layout { char *name; enum ftdi_interface interface; @@ -44,6 +47,12 @@ struct layout { uint16_t vref2_erase; }; +int print_and_prompt( struct ftdi_device_list *devlist ); +int bb_mpsee(struct ftdi_context *ftdic, uint16_t dir, uint16_t val); +void reset(struct ftdi_context *ftdic, const struct layout * l); +void erase(struct ftdi_context *ftdic, const struct layout * l); +void usage(void); + #define std_layout(x) \ .interface = interface(x), \ .dir = dir(x), \ @@ -62,15 +71,24 @@ static const struct layout layouts[] = }, { .name = NULL, /* end of table */ }, }; - -/* fgets input buffer length: for prompts and such */ -#define BUF_LEN 32 - -int print_and_prompt( struct ftdi_device_list *devlist ); -int bb_mpsee(struct ftdi_context *ftdic, uint16_t dir, uint16_t val); -void toggle_reset(struct ftdi_context *ftdic, const struct layout * l); -void usage(void); +struct command { + char *name; + void (*cmd)(struct ftdi_context *ftdic, const struct layout * l); +}; + +static const struct command commands[] = +{ + { + .name = "reset", + .cmd = reset, + }, + { + .name = "erase", + .cmd = erase, + }, + { .name = NULL, /* end of table */ }, +}; const struct layout * find_layout(char * str) { @@ -93,7 +111,7 @@ int main(int argc, char **argv) int dev_index = -1; int num_devs; char layout_str[BUF_LEN]; const struct layout *layout; - int ret; + int i, ret; while (1) { int c; @@ -123,7 +141,7 @@ int main(int argc, char **argv) break; } } - + if( !(layout = find_layout(layout_str))) { usage(); printf("You must specify a layout\n"); @@ -171,7 +189,19 @@ int main(int argc, char **argv) fprintf(stderr, "couldn't open dev_index %d\n", dev_index); return EXIT_FAILURE; } - toggle_reset(&ftdic, layout); + + i = 0; + while(commands[i].name != NULL) { + if(strcmp(commands[i].name, argv[optind]) == 0) { break; } + i++; + } + if(commands[i].name != NULL) { + commands[i].cmd(&ftdic, layout); + } else { + printf("invalid command\n"); + } + + printf("done.\n"); ftdi_list_free(&devlist); ftdi_deinit(&ftdic); @@ -227,18 +257,50 @@ int print_and_prompt( struct ftdi_device_list *devlist ) return sel; } -void toggle_reset(struct ftdi_context *ftdic, const struct layout * l) +void reset(struct ftdi_context *ftdic, const struct layout * l) { + + /* using MPSSE since it give access to high GPIO*/ + /* set as inputs for now */ + ftdi_set_bitmode(ftdic, 0 , BITMODE_MPSSE); + printf("toggle reset\n"); + + bb_mpsee(ftdic, l->dir, (l->reset_release | l->vref2_normal)); + bb_mpsee(ftdic, l->dir, (l->reset_set | l->vref2_normal)); + bb_mpsee(ftdic, l->dir, (l->reset_release | l->vref2_normal)); + + return; + +} + + +void erase(struct ftdi_context *ftdic, const struct layout * l) +{ + printf("setting VREF2 erase\n"); /* using MPSSE since it give access to high GPIO*/ /* set as inputs for now */ ftdi_set_bitmode(ftdic, 0 , BITMODE_MPSSE); bb_mpsee(ftdic, l->dir, (l->reset_release | l->vref2_normal)); - bb_mpsee(ftdic, l->dir, (l->reset_set | l->vref2_normal)); + bb_mpsee(ftdic, l->dir, (l->reset_release | l->vref2_erase)); + + printf("toggle reset\n"); + + bb_mpsee(ftdic, l->dir, (l->reset_set | l->vref2_erase)); + bb_mpsee(ftdic, l->dir, (l->reset_release | l->vref2_erase)); + + printf("waiting for erase\n"); + + sleep(1); + + printf("setting VREF2 normal\n"); + bb_mpsee(ftdic, l->dir, (l->reset_release | l->vref2_normal)); + reset(ftdic, l); + return; } From d1a4d5334a27359a6537cc55d75ed98054cf0fb4 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 18:44:46 -0400 Subject: [PATCH 309/471] finished bbmc for now. complete with respectable command line options and full usage. --- tools/ftditools/bbmc.c | 155 +++++++++++++++++++++++++++++++++++------ 1 file changed, 135 insertions(+), 20 deletions(-) diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c index 3708aab8d..4388b2a66 100644 --- a/tools/ftditools/bbmc.c +++ b/tools/ftditools/bbmc.c @@ -39,6 +39,7 @@ struct layout { char *name; + char *desc; enum ftdi_interface interface; uint16_t dir; uint16_t reset_release; @@ -61,12 +62,14 @@ void usage(void); .vref2_normal = vref2_normal(x), \ .vref2_erase = vref2_erase(x), -static const struct layout layouts[] = +static struct layout layouts[] = { { .name = "redbee_econotag", + .desc = "Redbee Econotag", std_layout(REDBEE_ECONOTAG) }, { .name = "redbee_usb", + .desc = "Redbee USB stick", std_layout(REDBEE_USB) }, { .name = NULL, /* end of table */ }, @@ -74,6 +77,7 @@ static const struct layout layouts[] = struct command { char *name; + char *desc; void (*cmd)(struct ftdi_context *ftdic, const struct layout * l); }; @@ -81,16 +85,18 @@ static const struct command commands[] = { { .name = "reset", + .desc = "Toggles reset pin", .cmd = reset, }, { .name = "erase", + .desc = "Sets VREF2 erase mode; toggles reset; waits 2 sec.; sets normal; toggles reset again", .cmd = erase, }, { .name = NULL, /* end of table */ }, }; -const struct layout * find_layout(char * str) +struct layout * find_layout(char * str) { uint32_t i = 0; @@ -110,44 +116,107 @@ int main(int argc, char **argv) struct ftdi_device_list *devlist; int dev_index = -1; int num_devs; char layout_str[BUF_LEN]; - const struct layout *layout; + struct layout layout; + struct layout *l = NULL; int i, ret; + /* overrides for layout parameters */ + int interface = -1; + int dir = -1; + int reset_release = -1; + int reset_set = -1; + int vref2_normal = -1; + int vref2_erase = -1; + + layout.name = NULL; + while (1) { int c; int option_index = 0; static struct option long_options[] = { - {"layout", required_argument, 0, 'l'}, - {"index", required_argument, 0, 'i'}, - {"help", no_argument, 0, '?'}, + {"layout", required_argument, 0, 'l'}, + {"index", required_argument, 0, 'i'}, + {"vendor", required_argument, 0, 'v'}, + {"product", required_argument, 0, 'p'}, + {"dir", required_argument, 0, 0 }, + {"reset_release", required_argument, 0, 0 }, + {"reset_set", required_argument, 0, 0 }, + {"vref2_normal", required_argument, 0, 0 }, + {"vref2_erase", required_argument, 0, 0 }, + {"interface", required_argument, 0, 0 }, + {"help", no_argument, 0, '?'}, {0, 0, 0, 0} }; - - c = getopt_long (argc, argv, "i:l:", + + c = getopt_long (argc, argv, "i:l:v:p:", long_options, &option_index); if (c == -1) break; switch (c) { /* process long opts */ + case 0: + if(strcmp(long_options[option_index].name, "interface") == 0) { + sscanf(optarg, "%i", &interface); + } + if(strcmp(long_options[option_index].name, "dir") == 0) { + sscanf(optarg, "%i", &dir); + } + if (strcmp(long_options[option_index].name, "reset_release") == 0) { + sscanf(optarg, "%i", &reset_release); + } + if (strcmp(long_options[option_index].name, "reset_set") == 0) { + sscanf(optarg, "%i", &reset_set); + } + if (strcmp(long_options[option_index].name, "vref2_normal") == 0) { + sscanf(optarg, "%i", &vref2_normal); + } + if (strcmp(long_options[option_index].name, "vref2_erase") == 0) { + sscanf(optarg, "%i", &vref2_erase); + } + break; + case 'l': strncpy(layout_str, optarg, BUF_LEN); break; case 'i': dev_index = atoi(optarg); break; + case 'v': + sscanf(optarg, "%i", &vendid); + break; + case 'p': + sscanf(optarg, "%i", &prodid); + break; default: usage(); break; } } - if( !(layout = find_layout(layout_str))) { - usage(); - printf("You must specify a layout\n"); + if( !(l = find_layout(layout_str)) && + !((interface >= 0) && + (dir >= 0) && + (reset_release >= 0) && + (reset_set >= 0) && + (vref2_normal >= 0) && + (vref2_erase >= 0)) + ) { + + printf("*** You must specify a layout or a complete set of overrides\n"); return EXIT_FAILURE; } + + if(l) { + memcpy(&layout, l, sizeof(struct layout)); + } +#define override(x) if(x > 0) { layout.x = x; } + override(interface); + override(dir); + override(reset_release); override(reset_set); + override(vref2_normal); override(vref2_erase); + if ((num_devs = ftdi_usb_find_all(&ftdic, &devlist, vendid, prodid)) < 0) { fprintf(stderr, "ftdi_usb_find_all failed: %d (%s)\n", @@ -162,8 +231,8 @@ int main(int argc, char **argv) return EXIT_FAILURE; } - if (ftdi_set_interface(&ftdic, layout->interface) < 0) { - fprintf(stderr, "couldn't set interface %d\n", layout->interface); + if (ftdi_set_interface(&ftdic, layout.interface) < 0) { + fprintf(stderr, "couldn't set interface %d\n", layout.interface); return EXIT_FAILURE; } @@ -177,7 +246,13 @@ int main(int argc, char **argv) dev_index = print_and_prompt(devlist); } - printf("Opening device %d using layout %s\n", dev_index, layout->name); + if(layout.name != NULL) { + printf("Opening device %d interface %d using layout %s\n", + dev_index, layout.interface, layout.name); + } else { + printf("Opening device %d interface %d without a layout.\n", + dev_index, layout.interface); + } if( (ret = ftdi_usb_open_desc_index( &ftdic, @@ -190,15 +265,20 @@ int main(int argc, char **argv) return EXIT_FAILURE; } - i = 0; - while(commands[i].name != NULL) { - if(strcmp(commands[i].name, argv[optind]) == 0) { break; } - i++; + + for(i = 0; commands[i].name != NULL; i++) { + if( (argv[optind] != NULL) && + (strcmp(commands[i].name, argv[optind]) == 0)) { break; } } if(commands[i].name != NULL) { - commands[i].cmd(&ftdic, layout); + commands[i].cmd(&ftdic, &layout); } else { printf("invalid command\n"); + + ftdi_list_free(&devlist); + ftdi_deinit(&ftdic); + + return EXIT_FAILURE; } printf("done.\n"); @@ -211,7 +291,42 @@ int main(int argc, char **argv) void usage(void) { - printf("Usage: don't know yet\n"); + int i; + printf( "Usage: bbmc [options|overrides] -l|--layout layout command \n"); + printf( "Commands:\n"); + for(i = 0; commands[i].name != NULL; i++) { + printf( " %s: %s\n", commands[i].name, commands[i].desc); + } + printf("\n"); + printf( "Required options:\n"); + printf( " -l|--layout\t specifiy which board layout to use\n"); + printf( " \t layout is not necessary with a full\n"); + printf( " \t set of overrides\n"); + printf( "\nLayout overrides:\n"); + printf( " --interface\t\t FTDI interface to use\n"); + printf( " --dir\t\t direction (1 is output)\n"); + printf( " --reset_release\t reset release command\n"); + printf( " --reset_set\t\t reset set command\n"); + printf( " --vref2_normal\t vref2 normal\n"); + printf( " --vref2_erase\t vref2 erase\n"); + printf("\n"); + printf( "Layouts:\n"); + for(i = 0; layouts[i].name != NULL; i++) { + printf( "\t%s: %s\n", layouts[i].name, layouts[i].desc); + printf("\n"); + printf( "\t\tinterface: \t0x%04x\n", layouts[i].interface); + printf( "\t\tdir: \t\t0x%04x\n", layouts[i].dir); + printf( "\t\treset release: \t0x%04x\n", layouts[i].reset_release); + printf( "\t\treset hold: \t0x%04x\n", layouts[i].reset_set); + printf( "\t\tvref2 normal: \t0x%04x\n", layouts[i].vref2_normal); + printf( "\t\tvref2 erase: \t0x%04x\n", layouts[i].vref2_erase); + printf("\n"); + } + printf("\n"); + printf( "Options:\n"); + printf( " -i|--index specifiy which device to use (default 0)\n"); + printf( " -v|--vendor set vendor id (default 0x0403)\n"); + printf( " -p|--prodcut set vendor id (default 0x6010)\n"); } int print_and_prompt( struct ftdi_device_list *devlist ) From 0b507bb8be88ec07e2b505226471880237029118 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 20:24:32 -0400 Subject: [PATCH 310/471] don't bail on make if you can't do a submodule update. --- Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index 2f3f7eefa..e3b5aba34 100644 --- a/Makefile.include +++ b/Makefile.include @@ -129,7 +129,7 @@ distclean: clean .PHONY: clean clobber mrproper distclean all: $(OBJDIR)/board.h - git submodule update + -git submodule update for target in $(TARGETS); do make $$target\_$(BOARD).bin; done for target in $(TARGETS_WITH_ROM_VARS); do make TARGET_ROM_VARS=1 $$target\_$(BOARD).bin; done From cb46d1eed79fae6271e118533d9ad0307264683f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 21:58:27 -0400 Subject: [PATCH 311/471] clean ftditools --- Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index e3b5aba34..904a88b3d 100644 --- a/Makefile.include +++ b/Makefile.include @@ -121,7 +121,7 @@ clean: -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' -o -name '*.d' \) -print \ | xargs rm -rf rm -fr *.*~ - + make -C $(MC1322X)/tools/ftditools/ clean clobber \ mrproper \ distclean: clean From c4f438616ac0b9b9a285be3f04ae4acef0cb0ae5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 22:00:38 -0400 Subject: [PATCH 312/471] use standard types --- lib/include/types.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/include/types.h b/lib/include/types.h index 93bb4d9d5..2c08b968d 100644 --- a/lib/include/types.h +++ b/lib/include/types.h @@ -1,13 +1,13 @@ #ifndef _TYPES_H #define _TYPES_H -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed long int32_t; -typedef unsigned long uint32_t; -typedef signed long long int64_t; -typedef unsigned long long uint64_t; +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed int int16_t; +typedef unsigned int uint16_t; +typedef signed long int int32_t; +typedef unsigned long int uint32_t; +typedef signed long long int int64_t; +typedef unsigned long long int uint64_t; #endif From 716f166dd3910d796df02271540dd8a4bedf6af6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 22:01:34 -0400 Subject: [PATCH 313/471] new interface for dealing with GPIO banks --- lib/gpio.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++ lib/include/gpio.h | 9 ++++++++ 2 files changed, 65 insertions(+) create mode 100644 lib/gpio.c diff --git a/lib/gpio.c b/lib/gpio.c new file mode 100644 index 000000000..2610e80d2 --- /dev/null +++ b/lib/gpio.c @@ -0,0 +1,56 @@ +#include +#include + +inline void gpio_pad_dir(uint64_t data) +{ + *GPIO_PAD_DIR0 = (data & 0xffffffff); + *GPIO_PAD_DIR1 = (data >> 32); +} + +inline void gpio_data(uint64_t data) +{ + *GPIO_DATA0 = (data & 0xffffffff); + *GPIO_DATA1 = (data >> 32); +} + +inline void gpio_pad_pu_en(uint64_t data) +{ + *GPIO_PAD_PU_EN0 = (data & 0xffffffff); + *GPIO_PAD_PU_EN1 = (data >> 32); +} + +inline void gpio_data_sel(uint64_t data) +{ + *GPIO_DATA_SEL0 = (data & 0xffffffff); + *GPIO_DATA_SEL1 = (data >> 32); +} + +inline void gpio_pad_pu_sel(uint64_t data) +{ + *GPIO_PAD_PU_SEL0 = (data & 0xffffffff); + *GPIO_PAD_PU_SEL1 = (data >> 32); +} + +inline void gpio_data_set(uint64_t data) +{ + *GPIO_DATA_SET0 = (data & 0xffffffff); + *GPIO_DATA_SET1 = (data >> 32); +} + +inline void gpio_data_reset(uint64_t data) +{ + *GPIO_DATA_RESET0 = (data & 0xffffffff); + *GPIO_DATA_RESET1 = (data >> 32); +} + +inline void gpio_pad_dir_set(uint64_t data) +{ + *GPIO_PAD_DIR_SET0 = (data & 0xffffffff); + *GPIO_PAD_DIR_SET1 = (data >> 32); +} + +inline void gpio_pad_dir_reset(uint64_t data) +{ + *GPIO_PAD_DIR_RESET0 = (data & 0xffffffff); + *GPIO_PAD_DIR_RESET1 = (data >> 32); +} diff --git a/lib/include/gpio.h b/lib/include/gpio.h index 1eeda2609..54a6dfed8 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -25,6 +25,15 @@ #define GPIO_PAD_DIR_RESET0 ((volatile uint32_t *) 0x80000060) #define GPIO_PAD_DIR_RESET1 ((volatile uint32_t *) 0x80000064) +inline void gpio_pad_dir(uint64_t data); +inline void gpio_data(uint64_t data); +inline void gpio_pad_pu_en(uint64_t data); +inline void gpio_data_sel(uint64_t data); +inline void gpio_data_pu_sel(uint64_t data); +inline void gpio_data_set(uint64_t data); +inline void gpio_data_reset(uint64_t data); +inline void gpio_pad_dir_set(uint64_t data); +inline void gpio_pad_dir_reset(uint64_t data); /* select pullup or pulldown for GPIO 0-31 (b=0-31) */ #define gpio_sel0_pullup(b) (set_bit(reg32(GPIO_PAD_PU_SEL0),b)) From c6012611bad0585e394d8229070a224399f8e2b4 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 22:02:36 -0400 Subject: [PATCH 314/471] remove short addr from packet --- lib/include/packet.h | 3 --- tests/per.c | 14 +++++++------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/lib/include/packet.h b/lib/include/packet.h index 4b5443235..15f966c12 100644 --- a/lib/include/packet.h +++ b/lib/include/packet.h @@ -6,10 +6,7 @@ #define MAX_PAYLOAD_SIZE 125 #endif -typedef uint16_t short_addr_t; - struct packet { - short_addr_t addr; uint8_t length; /* does not include FCS checksum */ volatile struct packet * left; volatile struct packet * right; diff --git a/tests/per.c b/tests/per.c index 95fd7ac27..b5ff66e88 100644 --- a/tests/per.c +++ b/tests/per.c @@ -44,7 +44,7 @@ uint32_t get_time(void) { } -#define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8)) +#define random_short_addr() (*MACA_RANDOM & ones(sizeof(uint16_t)*8)) void build_session_req(volatile packet_t *p) { static uint8_t count = 0; @@ -56,7 +56,7 @@ void build_session_req(volatile packet_t *p) { return; } -void session_req(short_addr_t addr __attribute__((unused))) { +void session_req(uint16_t addr __attribute__((unused))) { static volatile int time = 0; volatile packet_t *p; @@ -70,14 +70,14 @@ void session_req(short_addr_t addr __attribute__((unused))) { return; } -session_id_t open_session(short_addr_t addr __attribute((unused))) { return 0; } +session_id_t open_session(uint16_t addr __attribute((unused))) { return 0; } void main(void) { uint32_t state; volatile packet_t *p; session_id_t sesid; ptype_t type; - short_addr_t addr, my_addr; + uint16_t addr, my_addr; /* trim the reference osc. to 24MHz */ pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); @@ -96,7 +96,7 @@ void main(void) { /* sets up tx_on, should be a board specific item */ *GPIO_FUNC_SEL2 = (0x01 << ((44-16*2)*2)); - *GPIO_PAD_DIR0 = *GPIO_PAD_DIR0 | (1<<(44-32)); + gpio_pad_dir_set( 1ULL << 44 ); print_welcome("Packet error test"); @@ -110,7 +110,7 @@ void main(void) { printf("Recv: "); print_packet(p); type = get_packet_type((packet_t *) p); - addr = p->addr; + addr = 0; /* FIXME */ free_packet(p); /* pick a new address if someone else is using ours */ if(addr == my_addr) { @@ -121,7 +121,7 @@ void main(void) { /* check if it's a session request beacon */ if(type == PACKET_SESS_REQ) { /* try to start a session */ - sesid = open_session(p->addr); + sesid = open_session(addr); } } else { session_req(my_addr); From 35c9c66c23fcae19b5e0631f4e73d5e9b38089f5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 22:03:38 -0400 Subject: [PATCH 315/471] use new gpio interface --- board/redbee-econotag.h | 6 +++--- lib/include/utils.h | 2 +- tests/blink-blue.c | 10 +++++----- tests/blink-green.c | 10 +++++----- tests/blink-red.c | 10 +++++----- tests/blink-white.c | 9 +++++---- tests/led.h | 8 ++++---- tests/rftest-rx.c | 19 ++++++++----------- tests/rftest-tx.c | 8 +------- tests/tests.h | 8 -------- tests/tmr-ints.c | 8 ++++---- tests/tmr.c | 6 +++--- 12 files changed, 44 insertions(+), 60 deletions(-) diff --git a/board/redbee-econotag.h b/board/redbee-econotag.h index 4975a898c..824eaade2 100644 --- a/board/redbee-econotag.h +++ b/board/redbee-econotag.h @@ -1,9 +1,9 @@ #ifndef BOARD_REDBEE_DEV_H #define BOARD_REDBEE_DEV_H -#define LED_RED 12 -#define LED_GREEN 21 -#define LED_BLUE 0 /* FIXME: Was 35 - in high GPIO bank so it doesn't work */ +#define LED_RED 44 +#define LED_GREEN 45 +#define LED_BLUE 44 /* don't have a blue LED so we reuse red */ /* XTAL TUNE parameters */ /* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ diff --git a/lib/include/utils.h b/lib/include/utils.h index 5c985feab..ca7787023 100644 --- a/lib/include/utils.h +++ b/lib/include/utils.h @@ -14,7 +14,7 @@ #define clear_bit(val, bit) (val = (val & ~(1 << bit))) #define set_bit(val, bit) (val = (val | (1 << bit))) -#define ones(num) ( (1<> field) //#define bitfield(name, length, shift) ( #define #name length #define #name##_MASK bit_mask(length, shift)) diff --git a/tests/blink-blue.c b/tests/blink-blue.c index 34f78e558..7bb490cf1 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -3,21 +3,21 @@ #define DELAY 400000 -#define LED LED_BLUE +#define LED (1ULL << LED_BLUE) void main(void) { volatile uint32_t i; - *GPIO_PAD_DIR0 = LED; + gpio_pad_dir(LED); while(1) { - *GPIO_DATA0 = LED; + gpio_data(LED); for(i=0; i #include + #include "led.h" #define DELAY 400000 @@ -9,16 +10,16 @@ void main(void) { volatile uint32_t i; - *GPIO_PAD_DIR0 = LED; + gpio_pad_dir(LED); while(1) { - *GPIO_DATA0 = LED; + gpio_data(LED); for(i=0; i> 15) == 0) { continue; } *TMR0_SCTRL = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ /* blink off */ - *GPIO_DATA0 = 0x00000000; + gpio_data_set(0); while((*TMR0_SCTRL >> 15) == 0) { continue; } *TMR0_SCTRL = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ From 9dc8f46550cdcad89c04ffee4c688dfffcb15bf0 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 22:05:40 -0400 Subject: [PATCH 316/471] ignore error if bbmc isn't there --- tools/ftditools/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ftditools/Makefile b/tools/ftditools/Makefile index d52b445e1..0e07771ae 100644 --- a/tools/ftditools/Makefile +++ b/tools/ftditools/Makefile @@ -7,4 +7,4 @@ CFLAGS = -Wall -Wextra #-Werror all: $(TARGETS) clean: - rm $(TARGETS) + -rm $(TARGETS) From 7d02575d16c4fcb0d238a7502bd93767dbc2e6b7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 16 Mar 2010 22:06:06 -0400 Subject: [PATCH 317/471] add new board for the QuahogCon badge --- board/Makefile.board | 2 +- board/quahogcon.h | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 board/quahogcon.h diff --git a/board/Makefile.board b/board/Makefile.board index bd7b93393..fa5a45140 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -1,6 +1,6 @@ # -*- makefile -*- -BOARDS := redbee-dev redbee-r1 redbee-usb redbee-econotag +BOARDS := redbee-dev redbee-r1 redbee-usb redbee-econotag quahogcon OBJDIR := obj_$(BOARD)_board CFLAGS += -I$(OBJDIR) -I$(MC1322X)/board -DBOARD=$(BOARD) diff --git a/board/quahogcon.h b/board/quahogcon.h new file mode 100644 index 000000000..fb095faf1 --- /dev/null +++ b/board/quahogcon.h @@ -0,0 +1,22 @@ +#ifndef BOARD_REDBEE_DEV_H +#define BOARD_REDBEE_DEV_H + +#define LED_RED 12 +#define LED_GREEN 21 +#define LED_BLUE 35 + +/* XTAL TUNE parameters */ +/* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ +/* for details about how to make this measurment */ + +/* Econotag also needs an addtional 12pf on board */ +/* Coarse tune: add 4pf */ +#define CTUNE_4PF 1 +/* Coarse tune: add 0-15 pf (CTUNE is 4 bits) */ +#define CTUNE 11 +/* Fine tune: add FTUNE * 156fF (FTUNE is 5bits) */ +#define FTUNE 7 + +#include + +#endif From a5eadcf5a960a26f66087eecc479b75eaca382ee Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 17 Mar 2010 15:52:04 -0400 Subject: [PATCH 318/471] Revert "use standard types" Breaks tmr tests. This reverts commit c4f438616ac0b9b9a285be3f04ae4acef0cb0ae5. --- lib/include/types.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/include/types.h b/lib/include/types.h index 2c08b968d..93bb4d9d5 100644 --- a/lib/include/types.h +++ b/lib/include/types.h @@ -1,13 +1,13 @@ #ifndef _TYPES_H #define _TYPES_H -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed int int16_t; -typedef unsigned int uint16_t; -typedef signed long int int32_t; -typedef unsigned long int uint32_t; -typedef signed long long int int64_t; -typedef unsigned long long int uint64_t; +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed long int32_t; +typedef unsigned long uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; #endif From 407fda80e0b101a795f7dd1fa6502d7fca85a908 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 17 Mar 2010 15:55:04 -0400 Subject: [PATCH 319/471] fix typo in tmr.h (which cause tmr_enable register to have the wrong address) --- lib/include/tmr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/include/tmr.h b/lib/include/tmr.h index 073ed6e62..69cbb44b4 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -22,7 +22,7 @@ #define TMR_REGOFF_ENBL (0x1e) /* one enable register to rule them all */ -#define TMR_ENBL ((volatile uint16_t *) TMR0_BASE + TMR_REGOFF_ENBL) +#define TMR_ENBL ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_ENBL)) /* Timer 0 registers */ #define TMR0_COMP1 ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_COMP1)) From a7a11f1f63567ea0fe75f333c494816ca37c1e89 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 17 Mar 2010 15:55:52 -0400 Subject: [PATCH 320/471] use reset to clear bits --- tests/tmr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tmr.c b/tests/tmr.c index d48a6d4f0..1a6ac7056 100644 --- a/tests/tmr.c +++ b/tests/tmr.c @@ -40,7 +40,7 @@ void main(void) { *TMR0_SCTRL = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ /* blink off */ - gpio_data_set(0); + gpio_data_reset(LED); while((*TMR0_SCTRL >> 15) == 0) { continue; } *TMR0_SCTRL = 0; /*clear bit 15, and all the others --- should be ok, but clearly not "the right thing to do" */ From a44e256d3d690f2ac0e1a044f506cd4d89bc7d6f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 17 Mar 2010 15:56:53 -0400 Subject: [PATCH 321/471] in tmr-ints: use reset to clear bit --- tests/tmr-ints.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index 26190c2bc..458c48765 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -9,7 +9,7 @@ volatile uint8_t led; #define LED LED_PURPLE #define led_init() do { gpio_pad_dir_set(LED); } while(0); #define led_on() do { led = 1; gpio_data_set(LED); } while(0); -#define led_off() do { led = 0; gpio_data_set(0); } while(0); +#define led_off() do { led = 0; gpio_data_reset(LED); } while(0); void toggle_led(void) { if(0 == led) { From c624e4e475081a41ebdeb4cea4afd3cc4d22a886 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 17 Mar 2010 16:41:48 -0400 Subject: [PATCH 322/471] these gpio routines should be volatile --- lib/gpio.c | 18 +++++++++--------- lib/include/gpio.h | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/gpio.c b/lib/gpio.c index 2610e80d2..878a9f795 100644 --- a/lib/gpio.c +++ b/lib/gpio.c @@ -1,55 +1,55 @@ #include #include -inline void gpio_pad_dir(uint64_t data) +inline void gpio_pad_dir(volatile uint64_t data) { *GPIO_PAD_DIR0 = (data & 0xffffffff); *GPIO_PAD_DIR1 = (data >> 32); } -inline void gpio_data(uint64_t data) +inline void gpio_data(volatile uint64_t data) { *GPIO_DATA0 = (data & 0xffffffff); *GPIO_DATA1 = (data >> 32); } -inline void gpio_pad_pu_en(uint64_t data) +inline void gpio_pad_pu_en(volatile uint64_t data) { *GPIO_PAD_PU_EN0 = (data & 0xffffffff); *GPIO_PAD_PU_EN1 = (data >> 32); } -inline void gpio_data_sel(uint64_t data) +inline void gpio_data_sel(volatile uint64_t data) { *GPIO_DATA_SEL0 = (data & 0xffffffff); *GPIO_DATA_SEL1 = (data >> 32); } -inline void gpio_pad_pu_sel(uint64_t data) +inline void gpio_pad_pu_sel(volatile uint64_t data) { *GPIO_PAD_PU_SEL0 = (data & 0xffffffff); *GPIO_PAD_PU_SEL1 = (data >> 32); } -inline void gpio_data_set(uint64_t data) +inline void gpio_data_set(volatile uint64_t data) { *GPIO_DATA_SET0 = (data & 0xffffffff); *GPIO_DATA_SET1 = (data >> 32); } -inline void gpio_data_reset(uint64_t data) +inline void gpio_data_reset(volatile uint64_t data) { *GPIO_DATA_RESET0 = (data & 0xffffffff); *GPIO_DATA_RESET1 = (data >> 32); } -inline void gpio_pad_dir_set(uint64_t data) +inline void gpio_pad_dir_set(volatile uint64_t data) { *GPIO_PAD_DIR_SET0 = (data & 0xffffffff); *GPIO_PAD_DIR_SET1 = (data >> 32); } -inline void gpio_pad_dir_reset(uint64_t data) +inline void gpio_pad_dir_reset(volatile uint64_t data) { *GPIO_PAD_DIR_RESET0 = (data & 0xffffffff); *GPIO_PAD_DIR_RESET1 = (data >> 32); diff --git a/lib/include/gpio.h b/lib/include/gpio.h index 54a6dfed8..da0a77388 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -25,15 +25,15 @@ #define GPIO_PAD_DIR_RESET0 ((volatile uint32_t *) 0x80000060) #define GPIO_PAD_DIR_RESET1 ((volatile uint32_t *) 0x80000064) -inline void gpio_pad_dir(uint64_t data); -inline void gpio_data(uint64_t data); -inline void gpio_pad_pu_en(uint64_t data); -inline void gpio_data_sel(uint64_t data); -inline void gpio_data_pu_sel(uint64_t data); -inline void gpio_data_set(uint64_t data); -inline void gpio_data_reset(uint64_t data); -inline void gpio_pad_dir_set(uint64_t data); -inline void gpio_pad_dir_reset(uint64_t data); +inline void gpio_pad_dir(volatile uint64_t data); +inline void gpio_data(volatile uint64_t data); +inline void gpio_pad_pu_en(volatile uint64_t data); +inline void gpio_data_sel(volatile uint64_t data); +inline void gpio_data_pu_sel(volatile uint64_t data); +inline void gpio_data_set(volatile uint64_t data); +inline void gpio_data_reset(volatile uint64_t data); +inline void gpio_pad_dir_set(volatile uint64_t data); +inline void gpio_pad_dir_reset(volatile uint64_t data); /* select pullup or pulldown for GPIO 0-31 (b=0-31) */ #define gpio_sel0_pullup(b) (set_bit(reg32(GPIO_PAD_PU_SEL0),b)) From ef0a0490353f55915fd8bea5431cf475a446d72a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 17 Mar 2010 17:02:07 -0400 Subject: [PATCH 323/471] need to init all led directions and turn all leds off initially --- tests/tmr-ints.c | 2 +- tests/tmr.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index 458c48765..cfe78b767 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -7,7 +7,7 @@ volatile uint8_t led; #define LED LED_PURPLE -#define led_init() do { gpio_pad_dir_set(LED); } while(0); +#define led_init() do { gpio_pad_dir_set(LED_WHITE); gpio_data_reset(LED_WHITE); } while(0); #define led_on() do { led = 1; gpio_data_set(LED); } while(0); #define led_off() do { led = 0; gpio_data_reset(LED); } while(0); diff --git a/tests/tmr.c b/tests/tmr.c index 1a6ac7056..b8ce6aca4 100644 --- a/tests/tmr.c +++ b/tests/tmr.c @@ -9,7 +9,9 @@ void main(void) { /* pin direction */ - gpio_pad_dir_set(LED); + gpio_pad_dir_set(LED_WHITE); + /* all LEDs off */ + gpio_data_reset(LED_WHITE); /* timer setup */ /* CTRL */ From 7272f9aec32e86a886da787db6faf1fbe7589ff0 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 17 Mar 2010 17:27:21 -0400 Subject: [PATCH 324/471] change types to match stdint have printf test print the sizes of these. --- lib/include/types.h | 8 ++++---- tests/printf.c | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/include/types.h b/lib/include/types.h index 93bb4d9d5..9c4eb33d5 100644 --- a/lib/include/types.h +++ b/lib/include/types.h @@ -5,9 +5,9 @@ typedef signed char int8_t; typedef unsigned char uint8_t; typedef signed short int16_t; typedef unsigned short uint16_t; -typedef signed long int32_t; -typedef unsigned long uint32_t; -typedef signed long long int64_t; -typedef unsigned long long uint64_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int int64_t; +typedef unsigned long long int uint64_t; #endif diff --git a/tests/printf.c b/tests/printf.c index 7208bdb55..0d43f061f 100644 --- a/tests/printf.c +++ b/tests/printf.c @@ -6,6 +6,12 @@ #include "tests.h" #include "config.h" +#define print_size(x) do { \ + printf("sizeof("); \ + printf(#x); \ + printf("): %d\n", sizeof(x)); \ + } while(0) + int main(void) { char *ptr = "Hello world!"; @@ -17,6 +23,15 @@ int main(void) uart_init(INC, MOD, SAMP); + print_size(int8_t); + print_size(uint8_t); + print_size(int16_t); + print_size(uint16_t); + print_size(int32_t); + print_size(uint32_t); + print_size(int64_t); + print_size(uint64_t); + mi = (1 << (bs-1)) + 1; printf("%s\n", ptr); printf("printf test\n"); @@ -39,7 +54,7 @@ int main(void) // sprintf(buf, "-3: %-4d left justif.\n", -3); printf("%s", buf); // sprintf(buf, "-3: %4d right justif.\n", -3); printf("%s", buf); - return 0; + while(1) { continue; } } /* From 7b8d97450aff5b1fbe261054289b6b00fdc24d23 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 19 Mar 2010 09:10:19 -0400 Subject: [PATCH 325/471] clean srecs --- Makefile.include | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.include b/Makefile.include index 904a88b3d..885e4a2d2 100644 --- a/Makefile.include +++ b/Makefile.include @@ -112,13 +112,13 @@ clean: find $(MC1322X) \ \( -name 'core' -o -name '*.bak' -o -name '*~' \ -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \ - -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' -o -name '*.d' \) -print \ + -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' -o -name '*.d' -o -name '*.srec' \) -print \ | xargs rm -rf rm -fr *.*~ find \ \( -name 'core' -o -name '*.bak' -o -name '*~' \ -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \ - -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' -o -name '*.d' \) -print \ + -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' -o -name '*.d' -o -name '*.srec' \) -print \ | xargs rm -rf rm -fr *.*~ make -C $(MC1322X)/tools/ftditools/ clean From 9e05acbd252954edeb6c5382a632c02dbbdf0955 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 19 Mar 2010 22:12:25 -0400 Subject: [PATCH 326/471] everywhere else uses dashes --- tests/config.h | 4 ++-- tools/ftditools/bbmc.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/config.h b/tests/config.h index 73a4bb4da..5898d12eb 100644 --- a/tests/config.h +++ b/tests/config.h @@ -15,8 +15,8 @@ #define uart_init uart1_init /* nvm-read */ -#define READ_ADDR 0x1F000 -#define READ_NBYTES 1024 +#define READ_ADDR 0x1E000 +#define READ_NBYTES 8 /* nvm-write */ #define WRITE_NBYTES 8 diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c index 4388b2a66..baa871280 100644 --- a/tools/ftditools/bbmc.c +++ b/tools/ftditools/bbmc.c @@ -64,11 +64,11 @@ void usage(void); static struct layout layouts[] = { - { .name = "redbee_econotag", + { .name = "redbee-econotag", .desc = "Redbee Econotag", std_layout(REDBEE_ECONOTAG) }, - { .name = "redbee_usb", + { .name = "redbee-usb", .desc = "Redbee USB stick", std_layout(REDBEE_USB) }, From 654a4349aff83bb0fa0943966d229e1b4cec4f3d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 19 Mar 2010 22:27:41 -0400 Subject: [PATCH 327/471] remove vreg_init from maca --- lib/maca.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index e21bdd5c2..0583bae0e 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -550,17 +550,6 @@ const uint32_t addr_reg_rep[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x800 const uint32_t data_reg_rep[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a }; - -/* has been tested and it good */ -void vreg_init(void) { - volatile uint32_t i; - *(volatile uint32_t *)(0x80003000) = 0x00000018; /* set default state */ - *(volatile uint32_t *)(0x80003048) = 0x00000f04; /* bypass the buck */ - for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */ -// while((((*(volatile uint32_t *)(0x80003018))>>17) & 1) !=1) { continue; } /* wait for the bypass to take */ - *(volatile uint32_t *)(0x80003048) = 0x00000ff8; /* start the regulators */ -} - void radio_off(void) { disable_irq(MACA); /* turn off the radio regulators */ From 5b713a1f26017a685ce4998d91819409c437c59d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 19 Mar 2010 22:29:27 -0400 Subject: [PATCH 328/471] rename radio_on off to maca_on off --- lib/include/maca.h | 4 ++-- lib/maca.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index 1dcb72ef2..a63caa6ed 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -116,8 +116,8 @@ void init_phy(void); void flyback_init(void); void ResumeMACASync(void); void radio_init(void); -void radio_off(void); -void radio_on(void); +void maca_off(void); +void maca_on(void); uint32_t init_from_flash(uint32_t addr); void set_power(uint8_t power); void set_channel(uint8_t chan); diff --git a/lib/maca.c b/lib/maca.c index 0583bae0e..090f4e6c7 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -550,7 +550,7 @@ const uint32_t addr_reg_rep[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x800 const uint32_t data_reg_rep[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a }; -void radio_off(void) { +void maca_off(void) { disable_irq(MACA); /* turn off the radio regulators */ reg(0x80003048) = 0x00000f00; @@ -558,7 +558,7 @@ void radio_off(void) { maca_reset = maca_reset_rst; } -void radio_on(void) { +void maca_on(void) { /* turn the radio regulators back on */ reg(0x80003048) = 0x00000f78; /* reinitialize the phy */ From 67db72908a2167b3fb8787f667849e3cb69d443e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 19 Mar 2010 22:31:24 -0400 Subject: [PATCH 329/471] make rx_head visible (in case you want to test if there are packets waiting) --- lib/include/maca.h | 2 ++ lib/maca.c | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index a63caa6ed..65ee3605d 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -128,6 +128,8 @@ volatile packet_t* get_free_packet(void); void free_packet(volatile packet_t *p); void free_all_packets(void); +extern volatile packet_t *rx_head; + /* set_fcs_mode(NO_FCS) to disable checksum filtering */ extern volatile uint8_t fcs_mode; #define set_fcs_mode(x) fcs_mode = (x) diff --git a/lib/maca.c b/lib/maca.c index 090f4e6c7..918d717c3 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -29,7 +29,12 @@ #define reg(x) (*(volatile uint32_t *)(x)) static volatile packet_t packet_pool[NUM_PACKETS]; -static volatile packet_t *free_head, *rx_head, *rx_end, *tx_head, *tx_end, *dma_tx, *dma_rx = 0; +static volatile packet_t *free_head, *rx_end, *tx_head, *tx_end, *dma_tx, *dma_rx = 0; + +/* rx_head is visible to the outside */ +/* so you can peek at it and see if there is data */ +/* waiting for you */ +volatile packet_t *rx_head; /* used for ack recpetion if the packet_pool goes empty */ /* doesn't go back into the pool when freed */ From b39287cc2d5bad95d5cb172d0a2cc089368f8faf Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 19 Mar 2010 22:32:55 -0400 Subject: [PATCH 330/471] move MAX_PACKET_SIZE to maca.h --- lib/include/maca.h | 2 ++ lib/maca.c | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index 65ee3605d..1540f682e 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -5,6 +5,8 @@ #include #include +#define MAX_PACKET_SIZE (MAX_PAYLOAD_SIZE + 2) /* packet includes 2 bytes of checksum */ + #define MACA_BASE (0x80004000) #define MACA_RESET ((volatile uint32_t *) (MACA_BASE+0x04)) #define MACA_RANDOM ((volatile uint32_t *) (MACA_BASE+0x08)) diff --git a/lib/maca.c b/lib/maca.c index 918d717c3..f48c7bee3 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -24,8 +24,6 @@ #define RECV_SOFTIMEOUT (32*128*CLK_PER_BYTE) #endif -#define MAX_PACKET_SIZE (MAX_PAYLOAD_SIZE + 2) /* packet includes 2 bytes of checksum */ - #define reg(x) (*(volatile uint32_t *)(x)) static volatile packet_t packet_pool[NUM_PACKETS]; From 63285015b039ad11796e0cd63b08c6535936c322 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 19 Mar 2010 22:34:59 -0400 Subject: [PATCH 331/471] remove some reg32 in gpio.h --- lib/include/gpio.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/include/gpio.h b/lib/include/gpio.h index da0a77388..80dce7a62 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -36,19 +36,19 @@ inline void gpio_pad_dir_set(volatile uint64_t data); inline void gpio_pad_dir_reset(volatile uint64_t data); /* select pullup or pulldown for GPIO 0-31 (b=0-31) */ -#define gpio_sel0_pullup(b) (set_bit(reg32(GPIO_PAD_PU_SEL0),b)) -#define gpio_sel0_pulldown(b) (clear_bit(reg32(GPIO_PAD_PU_SEL0),b)) +#define gpio_sel0_pullup(b) (set_bit(*GPIO_PAD_PU_SEL0,b)) +#define gpio_sel0_pulldown(b) (clear_bit(*GPIO_PAD_PU_SEL0,b)) /* select pullup or pulldown for GPIO 32-63 (b=32-63) */ -#define gpio_sel1_pullup(b) (set_bit(reg32(GPIO_PAD_PU_SEL1),b-32)) -#define gpio_sel1_pulldown(b) (clear_bit(reg32(GPIO_PAD_PU_SEL1),b-32)) +#define gpio_sel1_pullup(b) (set_bit(*GPIO_PAD_PU_SEL1,b-32)) +#define gpio_sel1_pulldown(b) (clear_bit(*GPIO_PAD_PU_SEL1,b-32)) /* enable/disable pullup for GPIO 0-31 (b=0-31) */ -#define gpio_pu0_enable(b) (set_bit(reg32(GPIO_PAD_PU_EN0),b)) -#define gpio_pu0_disable(b) (clear_bit(reg32(GPIO_PAD_PU_EN0),b)) +#define gpio_pu0_enable(b) (set_bit(*GPIO_PAD_PU_EN0,b)) +#define gpio_pu0_disable(b) (clear_bit(*GPIO_PAD_PU_EN0,b)) /* enable/disable pullup for GPIO 32-63 (b=32-63) */ -#define gpio_pu1_enable(b) (set_bit(reg32(GPIO_PAD_PU_EN1),b-32)) -#define gpio_pu1_disable(b) (clear_bit(reg32(GPIO_PAD_PU_EN1),b-32)) +#define gpio_pu1_enable(b) (set_bit(*GPIO_PAD_PU_EN1,b-32)) +#define gpio_pu1_disable(b) (clear_bit(*GPIO_PAD_PU_EN1,b-32)) #endif From 556477e6a051be3123eb6448f80184bb11d4c6fe Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 21 Mar 2010 16:03:48 -0400 Subject: [PATCH 332/471] very small tweak to the usb board's trim caps. --- board/redbee-usb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/redbee-usb.h b/board/redbee-usb.h index 893eaa5fa..74448333f 100644 --- a/board/redbee-usb.h +++ b/board/redbee-usb.h @@ -14,7 +14,7 @@ /* Coarse tune: add 0-15 pf */ #define CTUNE 3 /* Fine tune: add FTUNE * 156fF (FTUNE is 4bits) */ -#define FTUNE 15 +#define FTUNE 14 #include From 097922e709db1371194b5ab2b6a11c89c51c3978 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 26 Mar 2010 13:33:49 -0400 Subject: [PATCH 333/471] implement tx_callback --- lib/include/maca.h | 1 + lib/maca.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index 1540f682e..cd179e6d3 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -137,6 +137,7 @@ extern volatile uint8_t fcs_mode; #define set_fcs_mode(x) fcs_mode = (x) extern void maca_rx_callback(volatile packet_t *p) __attribute__((weak)); +extern void maca_tx_callback(volatile packet_t *p) __attribute__((weak)); /******************************************************************************/ /* everything under this comment is messy, needs cleaning, and will */ diff --git a/lib/maca.c b/lib/maca.c index f48c7bee3..804f0622c 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -2,7 +2,7 @@ #include #ifndef DEBUG_MACA -#define DEBUG_MACA 0 +#define DEBUG_MACA 1 #endif #if (DEBUG_MACA == 0) #define PRINTF(...) @@ -401,11 +401,12 @@ void maca_isr(void) { if(action_complete_irq()) { /* PRINTF("maca action complete %d\n\r", get_field(*MACA_CONTROL,SEQUENCE)); */ if(last_post == TX_POST) { + if(maca_tx_callback != 0) { maca_tx_callback(tx_head); } free_tx_head(); last_post = NO_POST; } ResumeMACASync(); - *MACA_CLRIRQ = (1 << maca_irq_acpl); + *MACA_CLRIRQ = (1 << maca_irq_acpl); } decode_status(); From c6fc0e4d022afe9a85a22c58b2b0430a8490d47d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 29 Mar 2010 11:51:06 -0400 Subject: [PATCH 334/471] pull in set_demodulator_type and clean up maca.h a little (now you can skim the top of the file and get a decent overview on how to use the thing). --- lib/include/maca.h | 67 +++++++++++++++++++++++++++------------------- lib/maca.c | 11 ++++++++ 2 files changed, 51 insertions(+), 27 deletions(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index cd179e6d3..5eda1d44a 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -5,8 +5,48 @@ #include #include +/* maca initialization and on off routines */ +void maca_init(void); +void maca_off(void); +void maca_on(void); + +/* maca configuration interface */ +void set_power(uint8_t power); +void set_channel(uint8_t chan); + +#define DEMOD_DCD 1 /* -96dBm, 22.2mA */ +#define DEMOD_NCD 0 /* -100dBm, 24.2mA */ +void set_demodulator_type(uint8_t demod); + +/* set_fcs_mode(NO_FCS) to disable checksum filtering */ +extern volatile uint8_t fcs_mode; +#define set_fcs_mode(x) fcs_mode = (x) + +/* maca packet interface */ +void tx_packet(volatile packet_t *p); +volatile packet_t* rx_packet(void); +volatile packet_t* get_free_packet(void); +void free_packet(volatile packet_t *p); +void free_all_packets(void); + +extern volatile packet_t *rx_head; + +extern void maca_rx_callback(volatile packet_t *p) __attribute__((weak)); +extern void maca_tx_callback(volatile packet_t *p) __attribute__((weak)); + +/* maca lowlevel routines */ +/* most applications won't need to use them */ +void reset_maca(void); +void init_phy(void); +void flyback_init(void); +void ResumeMACASync(void); +void radio_init(void); +uint32_t init_from_flash(uint32_t addr); + #define MAX_PACKET_SIZE (MAX_PAYLOAD_SIZE + 2) /* packet includes 2 bytes of checksum */ +/* maca register and field defines */ + #define MACA_BASE (0x80004000) #define MACA_RESET ((volatile uint32_t *) (MACA_BASE+0x04)) #define MACA_RANDOM ((volatile uint32_t *) (MACA_BASE+0x08)) @@ -112,33 +152,6 @@ enum { #define MACA_KEY0 ((volatile uint32_t *) (MACA_BASE+0x164)) #define MACA_OPTIONS ((volatile uint32_t *) (MACA_BASE+0x180)) -void maca_init(void); -void reset_maca(void); -void init_phy(void); -void flyback_init(void); -void ResumeMACASync(void); -void radio_init(void); -void maca_off(void); -void maca_on(void); -uint32_t init_from_flash(uint32_t addr); -void set_power(uint8_t power); -void set_channel(uint8_t chan); - -void tx_packet(volatile packet_t *p); -volatile packet_t* rx_packet(void); -volatile packet_t* get_free_packet(void); -void free_packet(volatile packet_t *p); -void free_all_packets(void); - -extern volatile packet_t *rx_head; - -/* set_fcs_mode(NO_FCS) to disable checksum filtering */ -extern volatile uint8_t fcs_mode; -#define set_fcs_mode(x) fcs_mode = (x) - -extern void maca_rx_callback(volatile packet_t *p) __attribute__((weak)); -extern void maca_tx_callback(volatile packet_t *p) __attribute__((weak)); - /******************************************************************************/ /* everything under this comment is messy, needs cleaning, and will */ /* probably change in the future */ diff --git a/lib/maca.c b/lib/maca.c index 804f0622c..8efc89538 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -740,6 +740,17 @@ const uint32_t AIMVAL[19] = { 0x0004e3a0, }; +#define RF_REG 0x80009400 +void set_demodulator_type(uint8_t demod) { + uint32_t val = reg(RF_REG); + if(demod == DEMOD_NCD) { + val = (val & ~1); + } else { + val = (val | 1); + } + reg(RF_REG) = val; +} + /* tested and seems to be good */ #define ADDR_POW1 0x8000a014 #define ADDR_POW2 ADDR_POW1 + 12 From c6d3073b9cc4303536415e45762cc91f99301fdd Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 29 Mar 2010 19:28:01 -0400 Subject: [PATCH 335/471] make tx_head also visible --- lib/include/maca.h | 3 ++- lib/maca.c | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index 5eda1d44a..5f3cdb788 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -29,7 +29,7 @@ volatile packet_t* get_free_packet(void); void free_packet(volatile packet_t *p); void free_all_packets(void); -extern volatile packet_t *rx_head; +extern volatile packet_t *rx_head, *tx_head; extern void maca_rx_callback(volatile packet_t *p) __attribute__((weak)); extern void maca_tx_callback(volatile packet_t *p) __attribute__((weak)); @@ -152,6 +152,7 @@ enum { #define MACA_KEY0 ((volatile uint32_t *) (MACA_BASE+0x164)) #define MACA_OPTIONS ((volatile uint32_t *) (MACA_BASE+0x180)) + /******************************************************************************/ /* everything under this comment is messy, needs cleaning, and will */ /* probably change in the future */ diff --git a/lib/maca.c b/lib/maca.c index 8efc89538..58724bac6 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -27,12 +27,12 @@ #define reg(x) (*(volatile uint32_t *)(x)) static volatile packet_t packet_pool[NUM_PACKETS]; -static volatile packet_t *free_head, *rx_end, *tx_head, *tx_end, *dma_tx, *dma_rx = 0; +static volatile packet_t *free_head, *rx_end, *tx_end, *dma_tx, *dma_rx = 0; -/* rx_head is visible to the outside */ +/* rx_head and tx_head are visible to the outside */ /* so you can peek at it and see if there is data */ -/* waiting for you */ -volatile packet_t *rx_head; +/* waiting for you, or data still to be sent */ +volatile packet_t *rx_head, *tx_head; /* used for ack recpetion if the packet_pool goes empty */ /* doesn't go back into the pool when freed */ From 605898dab2bb3a7fafa47cdb5cc42d6d4d7220b3 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 30 Mar 2010 11:50:12 -0400 Subject: [PATCH 336/471] this needs to stay off. --- lib/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index 58724bac6..9feddff9c 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -2,7 +2,7 @@ #include #ifndef DEBUG_MACA -#define DEBUG_MACA 1 +#define DEBUG_MACA 0 #endif #if (DEBUG_MACA == 0) #define PRINTF(...) From e007f7253007c0374b45a306e9ecd56d47dcc4be Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 1 Apr 2010 17:31:26 -0400 Subject: [PATCH 337/471] this mac uses seqinject in interrupt and rom resumemacasync --- doc/rf4ce-macphy.dis | 1453 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1453 insertions(+) create mode 100644 doc/rf4ce-macphy.dis diff --git a/doc/rf4ce-macphy.dis b/doc/rf4ce-macphy.dis new file mode 100644 index 000000000..47d1c61e7 --- /dev/null +++ b/doc/rf4ce-macphy.dis @@ -0,0 +1,1453 @@ +In archive MACPHY.a: + +rom-symbols-MAC.o: file format elf32-littlearm + + +ASPMain_patched.o: file format elf32-littlearm + + +Disassembly of section .text: + +00000000 : + 0: b501 push {r0, lr} + 2: 2813 cmp r0, #19 + 4: d301 bcc.n a + 6: 20e8 movs r0, #232 + 8: e030 b.n 6c + a: 4900 ldr r1, [pc, #0] (180 ) + c: 6809 ldr r1, [r1, #0] + e: 227e movs r2, #126 + 10: 5c8a ldrb r2, [r1, r2] + 12: 2a01 cmp r2, #1 + 14: d105 bne.n 22 + 16: 4082 lsls r2, r0 + 18: 4bff ldr r3, [pc, #1020] (584 ) + 1a: 421a tst r2, r3 + 1c: d101 bne.n 22 + 1e: 20e2 movs r0, #226 + 20: e024 b.n 6c + 22: 4a00 ldr r2, [pc, #0] (184 ) + 24: 7010 strb r0, [r2, #0] + 26: 4a13 ldr r2, [pc, #76] (74 ) + 28: 6812 ldr r2, [r2, #0] + 2a: 2a00 cmp r2, #0 + 2c: d00d beq.n 4a + 2e: 0043 lsls r3, r0, #1 + 30: 18d2 adds r2, r2, r3 + 32: 3122 adds r1, #34 + 34: 7809 ldrb r1, [r1, #0] + 36: 2900 cmp r1, #0 + 38: d102 bne.n 40 + 3a: 490f ldr r1, [pc, #60] (78 ) + 3c: 8812 ldrh r2, [r2, #0] + 3e: e003 b.n 48 + 40: 8811 ldrh r1, [r2, #0] + 42: 4a0e ldr r2, [pc, #56] (7c ) + 44: 400a ands r2, r1 + 46: 490c ldr r1, [pc, #48] (78 ) + 48: 60ca str r2, [r1, #12] + 4a: 490d ldr r1, [pc, #52] (80 ) + 4c: 6809 ldr r1, [r1, #0] + 4e: 2900 cmp r1, #0 + 50: d003 beq.n 5a + 52: 0042 lsls r2, r0, #1 + 54: 5a89 ldrh r1, [r1, r2] + 56: 4a08 ldr r2, [pc, #32] (78 ) + 58: 6011 str r1, [r2, #0] + 5a: 490a ldr r1, [pc, #40] (84 ) + 5c: 6809 ldr r1, [r1, #0] + 5e: 2900 cmp r1, #0 + 60: d003 beq.n 6a + 62: 0080 lsls r0, r0, #2 + 64: 5808 ldr r0, [r1, r0] + 66: 4904 ldr r1, [pc, #16] (78 ) + 68: 6408 str r0, [r1, #64] + 6a: 2000 movs r0, #0 + 6c: bc08 pop {r3} + 6e: bc02 pop {r1} + 70: 4708 bx r1 + 72: 46c0 nop (mov r8, r8) + 74: 00000000 .word 0x00000000 + 78: 8000a014 .word 0x8000a014 + 7c: ffffdfff .word 0xffffdfff + ... + +00000088 : + 88: b501 push {r0, lr} + 8a: 4907 ldr r1, [pc, #28] (a8 ) + 8c: 2800 cmp r0, #0 + 8e: 6808 ldr r0, [r1, #0] + 90: d003 beq.n 9a + 92: 2201 movs r2, #1 + 94: 4302 orrs r2, r0 + 96: 600a str r2, [r1, #0] + 98: e002 b.n a0 + 9a: 2201 movs r2, #1 + 9c: 4390 bics r0, r2 + 9e: 6008 str r0, [r1, #0] + a0: bc08 pop {r3} + a2: bc01 pop {r0} + a4: 4700 bx r0 + a6: 46c0 nop (mov r8, r8) + a8: 80009400 .word 0x80009400 + +000000ac : + ac: b501 push {r0, lr} + ae: 4900 ldr r1, [pc, #0] (180 ) + b0: 6809 ldr r1, [r1, #0] + b2: 2222 movs r2, #34 + b4: 5c8a ldrb r2, [r1, r2] + b6: 4290 cmp r0, r2 + b8: d005 beq.n c6 + ba: 3122 adds r1, #34 + bc: 7008 strb r0, [r1, #0] + be: 4800 ldr r0, [pc, #0] (184 ) + c0: 7800 ldrb r0, [r0, #0] + c2: f7ff fffe bl 0 + c6: bc08 pop {r3} + c8: bc01 pop {r0} + ca: 4700 bx r0 + +000000cc : + cc: b570 push {r4, r5, r6, lr} + ce: 0004 lsls r4, r0, #0 + d0: 0015 lsls r5, r2, #0 + d2: 001e lsls r6, r3, #0 + d4: 2c04 cmp r4, #4 + d6: d201 bcs.n dc + d8: 2903 cmp r1, #3 + da: d301 bcc.n e0 + dc: 20e8 movs r0, #232 + de: e02c b.n 13a + e0: 2c02 cmp r4, #2 + e2: d201 bcs.n e8 + e4: 2902 cmp r1, #2 + e6: d2f9 bcs.n dc + e8: 342a adds r4, #42 + ea: 2900 cmp r1, #0 + ec: d004 beq.n f8 + ee: 0620 lsls r0, r4, #24 + f0: 0e00 lsrs r0, r0, #24 + f2: f7ff fffe bl 0 + f6: e01f b.n 138 + f8: 0620 lsls r0, r4, #24 + fa: 0e00 lsrs r0, r0, #24 + fc: f7ff fffe bl 0 + 100: 2d01 cmp r5, #1 + 102: d10f bne.n 124 + 104: 2101 movs r1, #1 + 106: 0620 lsls r0, r4, #24 + 108: 0e00 lsrs r0, r0, #24 + 10a: f7ff fffe bl 0 + 10e: 2101 movs r1, #1 + 110: 0620 lsls r0, r4, #24 + 112: 0e00 lsrs r0, r0, #24 + 114: f7ff fffe bl 0 + 118: 0031 lsls r1, r6, #0 + 11a: 0620 lsls r0, r4, #24 + 11c: 0e00 lsrs r0, r0, #24 + 11e: f7ff fffe bl 0 + 122: e009 b.n 138 + 124: 2100 movs r1, #0 + 126: 0620 lsls r0, r4, #24 + 128: 0e00 lsrs r0, r0, #24 + 12a: f7ff fffe bl 0 + 12e: 2100 movs r1, #0 + 130: 0620 lsls r0, r4, #24 + 132: 0e00 lsrs r0, r0, #24 + 134: f7ff fffe bl 0 + 138: 2000 movs r0, #0 + 13a: bc70 pop {r4, r5, r6} + 13c: bc02 pop {r1} + 13e: 4708 bx r1 + +00000140 : + 140: b501 push {r0, lr} + 142: 4900 ldr r1, [pc, #0] (180 ) + 144: 6809 ldr r1, [r1, #0] + 146: 227e movs r2, #126 + 148: 5c8a ldrb r2, [r1, r2] + 14a: 4290 cmp r0, r2 + 14c: d010 beq.n 170 + 14e: 2801 cmp r0, #1 + 150: d10c bne.n 16c + 152: 4a09 ldr r2, [pc, #36] (178 ) + 154: 7812 ldrb r2, [r2, #0] + 156: 2a1a cmp r2, #26 + 158: d006 beq.n 168 + 15a: 2201 movs r2, #1 + 15c: 4bff ldr r3, [pc, #1020] (580 ) + 15e: 781b ldrb r3, [r3, #0] + 160: 409a lsls r2, r3 + 162: 4b00 ldr r3, [pc, #0] (188 ) + 164: 421a tst r2, r3 + 166: d101 bne.n 16c + 168: 20e2 movs r0, #226 + 16a: e002 b.n 172 + 16c: 317e adds r1, #126 + 16e: 7008 strb r0, [r1, #0] + 170: 2000 movs r0, #0 + 172: bc08 pop {r3} + 174: bc02 pop {r1} + 176: 4708 bx r1 + ... + 184: 000010ff .word 0x000010ff + +MacRamLib.o: file format elf32-littlearm + + +Disassembly of section .text: + +00000000 : + 0: b510 push {r4, lr} + 2: 4840 ldr r0, [pc, #256] (104 ) + 4: 4940 ldr r1, [pc, #256] (108 ) + 6: 6001 str r1, [r0, #0] + 8: 4840 ldr r0, [pc, #256] (10c ) + a: 4941 ldr r1, [pc, #260] (110 ) + c: 6001 str r1, [r0, #0] + e: 4841 ldr r0, [pc, #260] (114 ) + 10: 4941 ldr r1, [pc, #260] (118 ) + 12: 6001 str r1, [r0, #0] + 14: 4841 ldr r0, [pc, #260] (11c ) + 16: 4942 ldr r1, [pc, #264] (120 ) + 18: 6001 str r1, [r0, #0] + 1a: 4842 ldr r0, [pc, #264] (124 ) + 1c: 4942 ldr r1, [pc, #264] (128 ) + 1e: 8809 ldrh r1, [r1, #0] + 20: 8001 strh r1, [r0, #0] + 22: 4842 ldr r0, [pc, #264] (12c ) + 24: 4942 ldr r1, [pc, #264] (130 ) + 26: 8809 ldrh r1, [r1, #0] + 28: 8001 strh r1, [r0, #0] + 2a: 4842 ldr r0, [pc, #264] (134 ) + 2c: 4942 ldr r1, [pc, #264] (138 ) + 2e: 8809 ldrh r1, [r1, #0] + 30: 8001 strh r1, [r0, #0] + 32: 4842 ldr r0, [pc, #264] (13c ) + 34: 4942 ldr r1, [pc, #264] (140 ) + 36: 8809 ldrh r1, [r1, #0] + 38: 8001 strh r1, [r0, #0] + 3a: 4842 ldr r0, [pc, #264] (144 ) + 3c: 4942 ldr r1, [pc, #264] (148 ) + 3e: 6001 str r1, [r0, #0] + 40: 4842 ldr r0, [pc, #264] (14c ) + 42: 4943 ldr r1, [pc, #268] (150 ) + 44: 6001 str r1, [r0, #0] + 46: 4843 ldr r0, [pc, #268] (154 ) + 48: 4943 ldr r1, [pc, #268] (158 ) + 4a: 6001 str r1, [r0, #0] + 4c: 4843 ldr r0, [pc, #268] (15c ) + 4e: 4944 ldr r1, [pc, #272] (160 ) + 50: 6001 str r1, [r0, #0] + 52: 4844 ldr r0, [pc, #272] (164 ) + 54: 4944 ldr r1, [pc, #272] (168 ) + 56: 6001 str r1, [r0, #0] + 58: 4844 ldr r0, [pc, #272] (16c ) + 5a: 4945 ldr r1, [pc, #276] (170 ) + 5c: 7809 ldrb r1, [r1, #0] + 5e: 7001 strb r1, [r0, #0] + 60: 4844 ldr r0, [pc, #272] (174 ) + 62: 4945 ldr r1, [pc, #276] (178 ) + 64: 6001 str r1, [r0, #0] + 66: 4845 ldr r0, [pc, #276] (17c ) + 68: 4945 ldr r1, [pc, #276] (180 ) + 6a: 6001 str r1, [r0, #0] + 6c: 4845 ldr r0, [pc, #276] (184 ) + 6e: 4946 ldr r1, [pc, #280] (188 ) + 70: 6001 str r1, [r0, #0] + 72: 4846 ldr r0, [pc, #280] (18c ) + 74: 4946 ldr r1, [pc, #280] (190 ) + 76: 6001 str r1, [r0, #0] + 78: 4846 ldr r0, [pc, #280] (194 ) + 7a: 4947 ldr r1, [pc, #284] (198 ) + 7c: 6001 str r1, [r0, #0] + 7e: 4847 ldr r0, [pc, #284] (19c ) + 80: 4947 ldr r1, [pc, #284] (1a0 ) + 82: 7809 ldrb r1, [r1, #0] + 84: 7001 strb r1, [r0, #0] + 86: 4847 ldr r0, [pc, #284] (1a4 ) + 88: 4947 ldr r1, [pc, #284] (1a8 ) + 8a: 6001 str r1, [r0, #0] + 8c: 4847 ldr r0, [pc, #284] (1ac ) + 8e: 4948 ldr r1, [pc, #288] (1b0 ) + 90: 6001 str r1, [r0, #0] + 92: 4848 ldr r0, [pc, #288] (1b4 ) + 94: 4948 ldr r1, [pc, #288] (1b8 ) + 96: 6001 str r1, [r0, #0] + 98: 4848 ldr r0, [pc, #288] (1bc ) + 9a: 4949 ldr r1, [pc, #292] (1c0 ) + 9c: 6001 str r1, [r0, #0] + 9e: 4849 ldr r0, [pc, #292] (1c4 ) + a0: 4949 ldr r1, [pc, #292] (1c8 ) + a2: 6001 str r1, [r0, #0] + a4: 4849 ldr r0, [pc, #292] (1cc ) + a6: 494a ldr r1, [pc, #296] (1d0 ) + a8: 6001 str r1, [r0, #0] + aa: 484a ldr r0, [pc, #296] (1d4 ) + ac: 494a ldr r1, [pc, #296] (1d8 ) + ae: 6001 str r1, [r0, #0] + b0: 484a ldr r0, [pc, #296] (1dc ) + b2: 494b ldr r1, [pc, #300] (1e0 ) + b4: 6001 str r1, [r0, #0] + b6: 484b ldr r0, [pc, #300] (1e4 ) + b8: 494b ldr r1, [pc, #300] (1e8 ) + ba: 6001 str r1, [r0, #0] + bc: 484b ldr r0, [pc, #300] (1ec ) + be: 494c ldr r1, [pc, #304] (1f0 ) + c0: 6001 str r1, [r0, #0] + c2: 484c ldr r0, [pc, #304] (1f4 ) + c4: 494c ldr r1, [pc, #304] (1f8 ) + c6: 6809 ldr r1, [r1, #0] + c8: 6001 str r1, [r0, #0] + ca: 484c ldr r0, [pc, #304] (1fc ) + cc: 494c ldr r1, [pc, #304] (200 ) + ce: 6809 ldr r1, [r1, #0] + d0: 6001 str r1, [r0, #0] + d2: 4c4c ldr r4, [pc, #304] (204 ) + d4: 207c movs r0, #124 + d6: 5c20 ldrb r0, [r4, r0] + d8: 494b ldr r1, [pc, #300] (208 ) + da: 7008 strb r0, [r1, #0] + dc: f7ff fffe bl 0 + e0: 2001 movs r0, #1 + e2: f7ff fffe bl 0 + e6: f7ff fffe bl 0 + ea: 347c adds r4, #124 + ec: 7820 ldrb r0, [r4, #0] + ee: f7ff fffe bl 0 + f2: 4846 ldr r0, [pc, #280] (20c ) + f4: 2104 movs r1, #4 + f6: 7001 strb r1, [r0, #0] + f8: 2000 movs r0, #0 + fa: f7ff fffe bl 0 + fe: bc10 pop {r4} + 100: bc01 pop {r0} + 102: 4700 bx r0 + ... + +MemScan_patched.o: file format elf32-littlearm + + +Disassembly of section .text: + +00000000 : + 0: b501 push {r0, lr} + 2: 4815 ldr r0, [pc, #84] (58 ) + 4: 2101 movs r1, #1 + 6: 7001 strb r1, [r0, #0] + 8: f7ff fffe bl 0 + c: 4668 mov r0, sp + e: f7ff fffe bl 0 + 12: 4668 mov r0, sp + 14: f7ff fffe bl 0 + 18: 4810 ldr r0, [pc, #64] (5c ) + 1a: 4911 ldr r1, [pc, #68] (60 ) + 1c: 7809 ldrb r1, [r1, #0] + 1e: 7001 strb r1, [r0, #0] + 20: 4810 ldr r0, [pc, #64] (64 ) + 22: 6800 ldr r0, [r0, #0] + 24: 4910 ldr r1, [pc, #64] (68 ) + 26: 7809 ldrb r1, [r1, #0] + 28: 2900 cmp r1, #0 + 2a: d106 bne.n 3a + 2c: 21f0 movs r1, #240 + 2e: 0089 lsls r1, r1, #2 + 30: 7882 ldrb r2, [r0, #2] + 32: 000b lsls r3, r1, #0 + 34: 4093 lsls r3, r2 + 36: 1859 adds r1, r3, r1 + 38: e000 b.n 3c + 3a: 213c movs r1, #60 + 3c: 4a0b ldr r2, [pc, #44] (6c ) + 3e: 6011 str r1, [r2, #0] + 40: 490b ldr r1, [pc, #44] (70 ) + 42: 2200 movs r2, #0 + 44: 700a strb r2, [r1, #0] + 46: 7840 ldrb r0, [r0, #1] + 48: f7ff fffe bl 0 + 4c: f7ff fffe bl 0 + 50: bc08 pop {r3} + 52: bc01 pop {r0} + 54: 4700 bx r0 + 56: 46c0 nop (mov r8, r8) + ... + +MlmeMain_patched.o: file format elf32-littlearm + + +Disassembly of section .text: + +00000000 : + 0: b531 push {r0, r4, r5, lr} + 2: 0004 lsls r4, r0, #0 + 4: d014 beq.n 30 + 6: 7820 ldrb r0, [r4, #0] + 8: 2809 cmp r0, #9 + a: d111 bne.n 30 + c: 1c60 adds r0, r4, #1 + e: 7801 ldrb r1, [r0, #0] + 10: 2921 cmp r1, #33 + 12: d10d bne.n 30 + 14: 1c40 adds r0, r0, #1 + 16: f7ff fffe bl 0 <__aeabi_uread4> + 1a: 7800 ldrb r0, [r0, #0] + 1c: 281a cmp r0, #26 + 1e: d107 bne.n 30 + 20: 4821 ldr r0, [pc, #132] (a8 ) + 22: 6800 ldr r0, [r0, #0] + 24: 307e adds r0, #126 + 26: 7800 ldrb r0, [r0, #0] + 28: 2801 cmp r0, #1 + 2a: d101 bne.n 30 + 2c: 25e2 movs r5, #226 + 2e: e004 b.n 3a + 30: 0020 lsls r0, r4, #0 + 32: f7ff fffe bl 0 + 36: 0005 lsls r5, r0, #0 + 38: d008 beq.n 4c + 3a: 002a lsls r2, r5, #0 + 3c: 0021 lsls r1, r4, #0 + 3e: 2002 movs r0, #2 + 40: 4b1a ldr r3, [pc, #104] (ac ) + 42: 681b ldr r3, [r3, #0] + 44: f7ff fffe bl 0 + 48: 0028 lsls r0, r5, #0 + 4a: e029 b.n a0 + 4c: 7820 ldrb r0, [r4, #0] + 4e: 1ec0 subs r0, r0, #3 + 50: d004 beq.n 5c + 52: 1ec0 subs r0, r0, #3 + 54: d007 beq.n 66 + 56: 1ec0 subs r0, r0, #3 + 58: d009 beq.n 6e + 5a: e00a b.n 72 + 5c: 2103 movs r1, #3 + 5e: 0020 lsls r0, r4, #0 + 60: f7ff fffe bl 0 + 64: e014 b.n 90 + 66: 7860 ldrb r0, [r4, #1] + 68: f7ff fffe bl 0 + 6c: e010 b.n 90 + 6e: 2109 movs r1, #9 + 70: e7f5 b.n 5e + 72: 0021 lsls r1, r4, #0 + 74: 480e ldr r0, [pc, #56] (b0 ) + 76: f7ff fffe bl 0 + 7a: 480e ldr r0, [pc, #56] (b4 ) + 7c: 7800 ldrb r0, [r0, #0] + 7e: 2800 cmp r0, #0 + 80: d006 beq.n 90 + 82: 2101 movs r1, #1 + 84: 480c ldr r0, [pc, #48] (b8 ) + 86: 7800 ldrb r0, [r0, #0] + 88: 4a0c ldr r2, [pc, #48] (bc ) + 8a: 6812 ldr r2, [r2, #0] + 8c: f7ff fffe bl 0 + 90: 2200 movs r2, #0 + 92: 0021 lsls r1, r4, #0 + 94: 2002 movs r0, #2 + 96: 4b05 ldr r3, [pc, #20] (ac ) + 98: 681b ldr r3, [r3, #0] + 9a: f7ff fffe bl 0 + 9e: 2000 movs r0, #0 + a0: bc38 pop {r3, r4, r5} + a2: bc02 pop {r1} + a4: 4708 bx r1 + a6: 46c0 nop (mov r8, r8) + ... + +Disassembly of section .text: + +00000000 <__iar_via_R3>: + 0: 4718 bx r3 + +Disassembly of section .text: + +00000000 <__iar_via_R2>: + 0: 4710 bx r2 + +MlmeScan_patched.o: file format elf32-littlearm + + +Disassembly of section .text: + +00000000 : + 0: b5f1 push {r0, r4, r5, r6, r7, lr} + 2: 4c43 ldr r4, [pc, #268] (110 ) + 4: 200a movs r0, #10 + 6: 7020 strb r0, [r4, #0] + 8: 2700 movs r7, #0 + a: 4d00 ldr r5, [pc, #0] (1fc ) + c: 702f strb r7, [r5, #0] + e: 4800 ldr r0, [pc, #0] (200 ) + 10: 2104 movs r1, #4 + 12: 7001 strb r1, [r0, #0] + 14: 483f ldr r0, [pc, #252] (114 ) + 16: 7007 strb r7, [r0, #0] + 18: 48ff ldr r0, [pc, #1020] (60c ) + 1a: 7007 strb r7, [r0, #0] + 1c: 483e ldr r0, [pc, #248] (118 ) + 1e: 6801 ldr r1, [r0, #0] + 20: 7988 ldrb r0, [r1, #6] + 22: 4a3e ldr r2, [pc, #248] (11c ) + 24: 7010 strb r0, [r2, #0] + 26: 7848 ldrb r0, [r1, #1] + 28: 4aff ldr r2, [pc, #1020] (610 ) + 2a: 7010 strb r0, [r2, #0] + 2c: 4eff ldr r6, [pc, #1020] (618 ) + 2e: 2203 movs r2, #3 + 30: 1cc9 adds r1, r1, #3 + 32: 0030 lsls r0, r6, #0 + 34: f7ff fffe bl 0 + 38: 48ff ldr r0, [pc, #1020] (610 ) + 3a: 7800 ldrb r0, [r0, #0] + 3c: 2801 cmp r0, #1 + 3e: d001 beq.n 44 + 40: 2802 cmp r0, #2 + 42: d11e bne.n 82 + 44: 48ff ldr r0, [pc, #1020] (604 ) + 46: 4900 ldr r1, [pc, #0] (20c ) + 48: 7802 ldrb r2, [r0, #0] + 4a: 700a strb r2, [r1, #0] + 4c: 7840 ldrb r0, [r0, #1] + 4e: 7048 strb r0, [r1, #1] + 50: 4833 ldr r0, [pc, #204] (120 ) + 52: 7007 strb r7, [r0, #0] + 54: 2073 movs r0, #115 + 56: f7ff fffe bl 0 + 5a: 4932 ldr r1, [pc, #200] (124 ) + 5c: 6008 str r0, [r1, #0] + 5e: 4900 ldr r1, [pc, #0] (218 ) + 60: 6008 str r0, [r1, #0] + 62: 2800 cmp r0, #0 + 64: d016 beq.n 94 + 66: 306e adds r0, #110 + 68: 7007 strb r7, [r0, #0] + 6a: 6809 ldr r1, [r1, #0] + 6c: 316f adds r1, #111 + 6e: 2000 movs r0, #0 + 70: f7ff fffe bl 0 <__aeabi_uwrite4> + 74: 482c ldr r0, [pc, #176] (b4 ) + 76: f7ff fffe bl 0 + 7a: 4800 ldr r0, [pc, #0] (204 ) + 7c: 2101 movs r1, #1 + 7e: 7001 strb r1, [r0, #0] + 80: e03f b.n 102 + 82: 2800 cmp r0, #0 + 84: d10b bne.n 9e + 86: 4f27 ldr r7, [pc, #156] (124 ) + 88: 2010 movs r0, #16 + 8a: f7ff fffe bl 0 + 8e: 6038 str r0, [r7, #0] + 90: 2800 cmp r0, #0 + 92: d136 bne.n 102 + 94: 2000 movs r0, #0 + 96: f7ff fffe bl 0 + 9a: 2000 movs r0, #0 + 9c: e035 b.n 10a + 9e: 2804 cmp r0, #4 + a0: d12f bne.n 102 + a2: 4f20 ldr r7, [pc, #128] (124 ) + a4: 481d ldr r0, [pc, #116] (11c ) + a6: 7800 ldrb r0, [r0, #0] + a8: f7ff fffe bl 0 + ac: 6038 str r0, [r7, #0] + ae: 2800 cmp r0, #0 + b0: d0f0 beq.n 94 + b2: 2001 movs r0, #1 + b4: 4917 ldr r1, [pc, #92] (114 ) + b6: 7008 strb r0, [r1, #0] + b8: 7821 ldrb r1, [r4, #0] + ba: 291a cmp r1, #26 + bc: d218 bcs.n f0 + be: 491b ldr r1, [pc, #108] (12c ) + c0: 7822 ldrb r2, [r4, #0] + c2: 1c52 adds r2, r2, #1 + c4: 7022 strb r2, [r4, #0] + c6: 4b00 ldr r3, [pc, #0] (200 ) + c8: 781b ldrb r3, [r3, #0] + ca: 2b80 cmp r3, #128 + cc: d104 bne.n d8 + ce: 782b ldrb r3, [r5, #0] + d0: 1c5b adds r3, r3, #1 + d2: 702b strb r3, [r5, #0] + d4: 2301 movs r3, #1 + d6: e000 b.n da + d8: 005b lsls r3, r3, #1 + da: 4f00 ldr r7, [pc, #0] (200 ) + dc: 703b strb r3, [r7, #0] + de: 782f ldrb r7, [r5, #0] + e0: 5df7 ldrb r7, [r6, r7] + e2: 421f tst r7, r3 + e4: d000 beq.n e8 + e6: 700a strb r2, [r1, #0] + e8: 0612 lsls r2, r2, #24 + ea: 0e12 lsrs r2, r2, #24 + ec: 2a1a cmp r2, #26 + ee: d3e7 bcc.n c0 + f0: 20ff movs r0, #255 + f2: 7030 strb r0, [r6, #0] + f4: 7070 strb r0, [r6, #1] + f6: 70b0 strb r0, [r6, #2] + f8: 201a movs r0, #26 + fa: 4908 ldr r1, [pc, #32] (11c ) + fc: 7809 ldrb r1, [r1, #0] + fe: 1a40 subs r0, r0, r1 + 100: 7020 strb r0, [r4, #0] + 102: 2001 movs r0, #1 + 104: f7ff fffe bl 0 + 108: 2001 movs r0, #1 + 10a: bcf8 pop {r3, r4, r5, r6, r7} + 10c: bc02 pop {r1} + 10e: 4708 bx r1 + ... + 128: 0000ffff .word 0x0000ffff + 12c: 00000000 .word 0x00000000 + +00000130 : + 130: b531 push {r0, r4, r5, lr} + 132: 2881 cmp r0, #129 + 134: d14d bne.n 1d2 + 136: 482b ldr r0, [pc, #172] (1e4 ) + 138: 6800 ldr r0, [r0, #0] + 13a: 7840 ldrb r0, [r0, #1] + 13c: 2800 cmp r0, #0 + 13e: d008 beq.n 152 + 140: 48ff ldr r0, [pc, #1020] (5f8 ) + 142: 7800 ldrb r0, [r0, #0] + 144: 49ff ldr r1, [pc, #1020] (618 ) + 146: 1808 adds r0, r1, r0 + 148: 7801 ldrb r1, [r0, #0] + 14a: 4a00 ldr r2, [pc, #0] (200 ) + 14c: 7812 ldrb r2, [r2, #0] + 14e: 4391 bics r1, r2 + 150: 7001 strb r1, [r0, #0] + 152: f7ff fffe bl 0 + 156: 2800 cmp r0, #0 + 158: d13e bne.n 1d8 + 15a: 4923 ldr r1, [pc, #140] (1e8 ) + 15c: 4823 ldr r0, [pc, #140] (1ec ) + 15e: f7ff fffe bl 0 <__aeabi_uwrite4> + 162: f7ff fffe bl 0 + 166: 2400 movs r4, #0 + 168: 48ff ldr r0, [pc, #1020] (600 ) + 16a: 7004 strb r4, [r0, #0] + 16c: 48ff ldr r0, [pc, #1020] (604 ) + 16e: 4900 ldr r1, [pc, #0] (20c ) + 170: 780a ldrb r2, [r1, #0] + 172: 7002 strb r2, [r0, #0] + 174: 784a ldrb r2, [r1, #1] + 176: 7042 strb r2, [r0, #1] + 178: 9400 str r4, [sp, #0] + 17a: 2202 movs r2, #2 + 17c: 4668 mov r0, sp + 17e: f7ff fffe bl 0 + 182: 9800 ldr r0, [sp, #0] + 184: f7ff fffe bl 0 + 188: 200b movs r0, #11 + 18a: f7ff fffe bl 0 + 18e: 4d18 ldr r5, [pc, #96] (1f0 ) + 190: 6829 ldr r1, [r5, #0] + 192: 2900 cmp r1, #0 + 194: d020 beq.n 1d8 + 196: 4800 ldr r0, [pc, #0] (210 ) + 198: 7802 ldrb r2, [r0, #0] + 19a: 2a00 cmp r2, #0 + 19c: d001 beq.n 1a2 + 19e: 2200 movs r2, #0 + 1a0: e000 b.n 1a4 + 1a2: 22ea movs r2, #234 + 1a4: 704a strb r2, [r1, #1] + 1a6: 6829 ldr r1, [r5, #0] + 1a8: 4aff ldr r2, [pc, #1020] (610 ) + 1aa: 7812 ldrb r2, [r2, #0] + 1ac: 708a strb r2, [r1, #2] + 1ae: 6829 ldr r1, [r5, #0] + 1b0: 7800 ldrb r0, [r0, #0] + 1b2: 70c8 strb r0, [r1, #3] + 1b4: 6829 ldr r1, [r5, #0] + 1b6: 3108 adds r1, #8 + 1b8: 48ff ldr r0, [pc, #1020] (614 ) + 1ba: 6800 ldr r0, [r0, #0] + 1bc: f7ff fffe bl 0 <__aeabi_uwrite4> + 1c0: 6828 ldr r0, [r5, #0] + 1c2: 7104 strb r4, [r0, #4] + 1c4: 2203 movs r2, #3 + 1c6: 4900 ldr r1, [pc, #0] (21c ) + 1c8: 6828 ldr r0, [r5, #0] + 1ca: 1d40 adds r0, r0, #5 + 1cc: f7ff fffe bl 0 + 1d0: e002 b.n 1d8 + 1d2: 4808 ldr r0, [pc, #32] (1f4 ) + 1d4: 2100 movs r1, #0 + 1d6: 7001 strb r1, [r0, #0] + 1d8: f7ff fffe bl 0 + 1dc: bc38 pop {r3, r4, r5} + 1de: bc01 pop {r0} + 1e0: 4700 bx r0 + 1e2: 46c0 nop (mov r8, r8) + ... + 1f4: 00000004 .word 0x00000004 + ... + 204: 0000004e .word 0x0000004e + ... + +PhyIsr_Patched.o: file format elf32-littlearm + + +Disassembly of section .text: + +00000000 : + 0: b513 push {r0, r1, r4, lr} + 2: 4877 ldr r0, [pc, #476] (1e0 ) // r0 gets 0x8000400c + 4: 6bc0 ldr r0, [r0, #60] // r0 gets 0x8000406c + 6: 0880 lsrs r0, r0, #2 // r0 >> 2 + 8: 9000 str r0, [sp, #0] // store r0 where the stack points + a: 4668 mov r0, sp // put r0 on the stack pointer + c: f7ff fffe bl 0 // call setcurclock + + // *MACA_CLR = *MACA_IRQ + 10: 4874 ldr r0, [pc, #464] (1e4 ) // r0 getx 0x80004094 + 12: 6ac4 ldr r4, [r0, #44] // r4 gets 0x800040c0 (maca_irq) + 14: 6304 str r4, [r0, #48] // 0x800040c4 gets r4 (maca_clr) + + // if((*MACA_IRQ & 0xffff) != 0) { + 16: 0420 lsls r0, r4, #16 // r0 = r4 << 16 ; ro = (*MACA_IRQ) << 16 + 18: d501 bpl.n 1e + + if( *MACA_TXLEN == 0 ) { + 1a: 4871 ldr r0, [pc, #452] (1e0 ) // r0 = 0x8000400c + 1c: 6d00 ldr r0, [r0, #80] // r0 = *0x8000408c *(MACA_TXLEN) + 1e: 07e0 lsls r0, r4, #31 // r4 = *(MACA_TXLEN << 31) + 20: d574 bpl.n 10c + + *(0x80004010) swithc (*MACA_STATUS & 0xf) { + 22: 486f ldr r0, [pc, #444] (1e0 ) + 24: 6840 ldr r0, [r0, #4] + 26: 0700 lsls r0, r0, #28 + 28: 0f00 lsrs r0, r0, #28 +// case (ext_timeout): + 2a: 2808 cmp r0, #8 + 2c: d248 bcs.n c0 + if ( 7 <= code) { + 2e: 2807 cmp r0, #7 + 30: d844 bhi.n bc +// + 32: a102 add r1, pc, #8 (adr r1, 3c ) + 34: 5c09 ldrb r1, [r1, r0] // r1 = *(0x3c + code) + 36: 0049 lsls r1, r1, #1 // (lookup *2) + 38: 448f add pc, r1 // jumptable + 3a: 46c0 nop + 3c: 2b29c904 .word 0x2b29c904 + 40: 3c3a362f .word 0x3c3a362f + +// 0: goto 0x92 1: goto 0x8E 2: goto 0x1CE 3: goto 0x44 +// 4: goto 0xb4 5: goto 0xb0 6: goto 0xA8 7: goto 0x9A + +// case (code == 3) { // crc failed +// does this test a rom verison? or if we are simulating? (b/c in r.l. *0x50 = 0xbc80ffe7) + 44: 4868 ldr r0, [pc, #416] (1e8 ) // r0 = 0x50 + 46: 7800 ldrb r0, [r0, #0] // r0 = *(0x50) + 48: 2800 cmp r0, #0 // if (*(0x50) == 0) { + 4a: d106 bne.n 5a + 4c: 4867 ldr r0, [pc, #412] (1ec ) // don't know 0x1ec + 4e: 2104 movs r1, #4 + 50: 7001 strb r1, [r0, #0] + +// seqinjectevent(11) and return + 52: 200b movs r0, #11 + 54: f7ff fffe bl 0 + 58: e0bf b.n 1da // return + } else { // from *0x50 == 0 + 5a: 4865 ldr r0, [pc, #404] (1f0 ) + 5c: 6800 ldr r0, [r0, #0] + 5e: f7ff fffe bl 0 + 62: 2800 cmp r0, #0 + 64: d003 beq.n 6e //might be an if rel clock + 66: 2001 movs r0, #1 + 68: f7ff fffe bl 0 + 6c: e0b5 b.n 1da + + 6e: 485c ldr r0, [pc, #368] (1e0 ) + 70: 2103 movs r1, #3 + 72: 6341 str r1, [r0, #52] // *(0x80004040) = 3 ; *maca_tmren = allclocks + 74: 6d00 ldr r0, [r0, #80] // r0 = *(0x80005C) ; *maca_relclk + 76: 3032 adds r0, #50 // r0 += 50 + 78: 4959 ldr r1, [pc, #356] (1e0 ) + 7a: 6408 str r0, [r1, #64] // r0 = *(0x8000404c) (maca_startclk) + 7c: 6d08 ldr r0, [r1, #80] // *maca_relclk = *(maca_startclk) + 7e: 21fa movs r1, #250 // r1 = 250 + 80: 0089 lsls r1, r1, #2 // r1 = 500 + 82: 1840 adds r0, r0, r1 // r0 = 500 + relclk_value + 84: 4956 ldr r1, [pc, #344] (1e0 ) + 86: 6448 str r0, [r1, #68] // *(0x8004050) = 500 + reclk_value; *maca_cplclk = 500 + relclk_value + 88: 0008 lsls r0, r1, #0 // r0 = r1 + 8a: 2102 movs r1, #2 // r1 = 2 + 8c: e0a4 b.n 1d8 //return; + +// if (code == 1 ) // time-out + 8e: 200c movs r0, #12 // seqinjectevent(12) and return; + 90: e7e0 b.n 54 + +// if( code == 0) { //success + 92: 2014 movs r0, #20 // seqinjectevent(20) + 94: f7ff fffe bl 0 + 98: e09f b.n 1da goto exit. + +// if (code == 7) { // late start + 9a: 4853 ldr r0, [pc, #332] (1e8 ) + 9c: 7800 ldrb r0, [r0, #0] + 9e: 2800 cmp r0, #0 + a0: d000 beq.n a4 + a2: e09a b.n 1da + a4: 2016 movs r0, #22 + a6: e7d5 b.n 54 + +// if (code == 6, no data) { + a8: f7ff fffe bl 0 +// inject (15) and return + ac: 200f movs r0, #15 + ae: e7f1 b.n 94 + +// if(code = 5, no ack) { +// inject 16 and return + b0: 2010 movs r0, #16 + b2: e7cf b.n 54 + +//if (code == 4, aborted) +// seqinjectevent(19) and return + b4: 2013 movs r0, #19 + b6: f7ff fffe bl 0 + ba: e08e b.n 1da + +// } else { // (from code <= 7 ) + bc: 2016 movs r0, #22 + be: e7c9 b.n 54 + c0: 3808 subs r0, #8 + c2: 2807 cmp r0, #7 + c4: d820 bhi.n 108 + c6: a101 add r1, pc, #4 (adr r1, cc ) + c8: 5c09 ldrb r1, [r1, r0] + ca: 448f add pc, r1 + cc: 1e1e0e06 .word 0x1e1e0e06 + d0: 322a2622 .word 0x322a2622 + d4: f7ff fffe bl 0 + d8: 2011 movs r0, #17 + da: e7db b.n 94 + dc: f7ff fffe bl 0 + e0: 20c0 movs r0, #192 + e2: 0140 lsls r0, r0, #5 + e4: 4204 tst r4, r0 + e6: d172 bne.n 1ce + e8: 2012 movs r0, #18 + ea: e7b3 b.n 54 + ec: 2016 movs r0, #22 + ee: e7e2 b.n b6 + f0: 2019 movs r0, #25 + f2: e7af b.n 54 + f4: 2016 movs r0, #22 + f6: e7cd b.n 94 + f8: f7ff fffe bl 0 + fc: 2016 movs r0, #22 + fe: e7a9 b.n 54 + 100: 201a movs r0, #26 + 102: f7ff fffe bl 0 + 106: e068 b.n 1da + 108: 2016 movs r0, #22 + 10a: e7a3 b.n 54 + + } else { // from *MACA_TXLEN == 0 + + 10c: 4839 ldr r0, [pc, #228] (1f4 ) + 10e: 4020 ands r0, r4 + 110: 2180 movs r1, #128 + 112: 0149 lsls r1, r1, #5 + 114: 4288 cmp r0, r1 + 116: d101 bne.n 11c + 118: 2018 movs r0, #24 + 11a: e7bb b.n 94 + 11c: 2102 movs r1, #2 + 11e: 420c tst r4, r1 + 120: d017 beq.n 152 + 122: 4831 ldr r0, [pc, #196] (1e8 ) + 124: 7800 ldrb r0, [r0, #0] + 126: 2800 cmp r0, #0 + 128: d109 bne.n 13e + 12a: 4833 ldr r0, [pc, #204] (1f8 ) + 12c: f7ff fffe bl 0 <__aeabi_uread4> + 130: 2800 cmp r0, #0 + 132: d000 beq.n 136 + 134: 2001 movs r0, #1 + 136: 492a ldr r1, [pc, #168] (1e0 ) + 138: 6088 str r0, [r1, #8] + 13a: 2017 movs r0, #23 + 13c: e78a b.n 54 + 13e: 200e movs r0, #14 + 140: f7ff fffe bl 0 + 144: 482a ldr r0, [pc, #168] (1f0 ) + 146: 6800 ldr r0, [r0, #0] + 148: f7ff fffe bl 0 + 14c: 2800 cmp r0, #0 + 14e: d044 beq.n 1da + 150: e789 b.n 66 + 152: 2104 movs r1, #4 + 154: 420c tst r4, r1 + 156: d001 beq.n 15c + 158: 200e movs r0, #14 + 15a: e77b b.n 54 + 15c: 0520 lsls r0, r4, #20 + 15e: d436 bmi.n 1ce + 160: 0460 lsls r0, r4, #17 + 162: d506 bpl.n 172 + 164: 4820 ldr r0, [pc, #128] (1e8 ) + 166: 7800 ldrb r0, [r0, #0] + 168: 2800 cmp r0, #0 + 16a: d136 bne.n 1da + 16c: 481d ldr r0, [pc, #116] (1e4 ) + 16e: 2108 movs r1, #8 + 170: e032 b.n 1d8 + 172: 01c9 lsls r1, r1, #7 + 174: 420c tst r4, r1 + 176: d030 beq.n 1da + 178: 4819 ldr r0, [pc, #100] (1e0 ) + 17a: 6f40 ldr r0, [r0, #116] + 17c: 4a19 ldr r2, [pc, #100] (1e4 ) + 17e: 6852 ldr r2, [r2, #4] + 180: 2a08 cmp r2, #8 + 182: d128 bne.n 1d6 + 184: 4a18 ldr r2, [pc, #96] (1e8 ) + 186: 7812 ldrb r2, [r2, #0] + 188: 2a00 cmp r2, #0 + 18a: d124 bne.n 1d6 + 18c: 7941 ldrb r1, [r0, #5] + 18e: 020a lsls r2, r1, #8 + 190: 7901 ldrb r1, [r0, #4] + 192: 4311 orrs r1, r2 + 194: 79c2 ldrb r2, [r0, #7] + 196: 0213 lsls r3, r2, #8 + 198: 7982 ldrb r2, [r0, #6] + 19a: 431a orrs r2, r3 + 19c: 7883 ldrb r3, [r0, #2] + 19e: 021b lsls r3, r3, #8 + 1a0: 7840 ldrb r0, [r0, #1] + 1a2: 4318 orrs r0, r3 + 1a4: 23c4 movs r3, #196 + 1a6: 011b lsls r3, r3, #4 + 1a8: 4003 ands r3, r0 + 1aa: 2084 movs r0, #132 + 1ac: 0100 lsls r0, r0, #4 + 1ae: 4283 cmp r3, r0 + 1b0: d113 bne.n 1da + 1b2: 4b0c ldr r3, [pc, #48] (1e4 ) + 1b4: 6f1b ldr r3, [r3, #112] + 1b6: 429a cmp r2, r3 + 1b8: d002 beq.n 1c0 + 1ba: 4810 ldr r0, [pc, #64] (1fc ) + 1bc: 4282 cmp r2, r0 + 1be: d10c bne.n 1da + 1c0: 4a08 ldr r2, [pc, #32] (1e4 ) + 1c2: 6ed2 ldr r2, [r2, #108] + 1c4: 4291 cmp r1, r2 + 1c6: d008 beq.n 1da + 1c8: 480c ldr r0, [pc, #48] (1fc ) + 1ca: 4281 cmp r1, r0 + 1cc: d005 beq.n 1da + +// if(code = 2, channel_busy) { + 1ce: f7ff fffe bl 0 +// inject (20) and return + 1d2: 2014 movs r0, #20 + 1d4: e73e b.n 54 + + 1d6: 4803 ldr r0, [pc, #12] (1e4 ) + 1d8: 6001 str r1, [r0, #0] + 1da: bc1c pop {r2, r3, r4} + 1dc: bc01 pop {r0} + 1de: 4700 bx r0 + 1e0: 8000400c .word 0x8000400c + 1e4: 80004094 .word 0x80004094 + 1e8: 00000050 .word 0x00000050 + ... + 1f4: 00001001 .word 0x00001001 + 1f8: 00000000 .word 0x00000000 + 1fc: 0000ffff .word 0x0000ffff + +PhySettingsRam.o: file format elf32-littlearm + + +Phy_Patched.o: file format elf32-littlearm + + +Disassembly of section .text: + +00000000 : + 0: b5f1 push {r0, r4, r5, r6, r7, lr} + 2: 4c00 ldr r4, [pc, #0] (224 ) + 4: 6820 ldr r0, [r4, #0] + 6: 0001 lsls r1, r0, #0 + 8: 3123 adds r1, #35 + a: 4d43 ldr r5, [pc, #268] (118 ) + c: 780a ldrb r2, [r1, #0] + e: 2a00 cmp r2, #0 + 10: d135 bne.n 7e + 12: 682a ldr r2, [r5, #0] + 14: 4e41 ldr r6, [pc, #260] (11c ) + 16: 6296 str r6, [r2, #40] + 18: 4b41 ldr r3, [pc, #260] (120 ) + 1a: 62d3 str r3, [r2, #44] + 1c: 4b41 ldr r3, [pc, #260] (124 ) + 1e: 6313 str r3, [r2, #48] + 20: 78c9 ldrb r1, [r1, #3] + 22: 6351 str r1, [r2, #52] + 24: 4940 ldr r1, [pc, #256] (128 ) + 26: 6391 str r1, [r2, #56] + 28: 302a adds r0, #42 + 2a: f7ff fffe bl 0 <__aeabi_uread4> + 2e: 6829 ldr r1, [r5, #0] + 30: 000b lsls r3, r1, #0 + 32: 333c adds r3, #60 + 34: 6822 ldr r2, [r4, #0] + 36: 2727 movs r7, #39 + 38: 5dd7 ldrb r7, [r2, r7] + 3a: 067f lsls r7, r7, #25 + 3c: 4338 orrs r0, r7 + 3e: 6018 str r0, [r3, #0] + 40: 483a ldr r0, [pc, #232] (12c ) + 42: 6058 str r0, [r3, #4] + 44: 200c movs r0, #12 + 46: 6098 str r0, [r3, #8] + 48: 4839 ldr r0, [pc, #228] (130 ) + 4a: 60d8 str r0, [r3, #12] + 4c: 20ff movs r0, #255 + 4e: 1c80 adds r0, r0, #2 + 50: 6118 str r0, [r3, #16] + 52: 615e str r6, [r3, #20] + 54: 48ff ldr r0, [pc, #1020] (624 ) + 56: 6198 str r0, [r3, #24] + 58: 675e str r6, [r3, #116] + 5a: 4f31 ldr r7, [pc, #196] (120 ) + 5c: 679f str r7, [r3, #120] + 5e: 31d8 adds r1, #216 + 60: 4b34 ldr r3, [pc, #208] (134 ) + 62: 600b str r3, [r1, #0] + 64: 4b34 ldr r3, [pc, #208] (138 ) + 66: 604b str r3, [r1, #4] + 68: 608e str r6, [r1, #8] + 6a: 60c8 str r0, [r1, #12] + 6c: 3228 adds r2, #40 + 6e: 7810 ldrb r0, [r2, #0] + 70: 7851 ldrb r1, [r2, #1] + 72: 0609 lsls r1, r1, #24 + 74: 0c09 lsrs r1, r1, #16 + 76: 4308 orrs r0, r1 + 78: 4930 ldr r1, [pc, #192] (13c ) + 7a: 6809 ldr r1, [r1, #0] + 7c: 6048 str r0, [r1, #4] + 7e: 4e30 ldr r6, [pc, #192] (140 ) + 80: 2700 movs r7, #0 + 82: 7037 strb r7, [r6, #0] + 84: 482f ldr r0, [pc, #188] (144 ) + 86: 8801 ldrh r1, [r0, #0] + 88: 6828 ldr r0, [r5, #0] + 8a: f7ff fffe bl 0 + 8e: 482e ldr r0, [pc, #184] (148 ) + 90: 8801 ldrh r1, [r0, #0] + 92: 482e ldr r0, [pc, #184] (14c ) + 94: 6800 ldr r0, [r0, #0] + 96: f7ff fffe bl 0 + 9a: 482d ldr r0, [pc, #180] (150 ) + 9c: 8801 ldrh r1, [r0, #0] + 9e: 482d ldr r0, [pc, #180] (154 ) + a0: 6800 ldr r0, [r0, #0] + a2: f7ff fffe bl 0 + a6: 482c ldr r0, [pc, #176] (158 ) + a8: 8801 ldrh r1, [r0, #0] + aa: 4824 ldr r0, [pc, #144] (13c ) + ac: 6800 ldr r0, [r0, #0] + ae: f7ff fffe bl 0 + b2: 4668 mov r0, sp + b4: f7ff fffe bl 0 + b8: 2101 movs r1, #1 + ba: 7031 strb r1, [r6, #0] + bc: 4669 mov r1, sp + be: 780a ldrb r2, [r1, #0] + c0: 0001 lsls r1, r0, #0 + c2: 20f8 movs r0, #248 + c4: 0240 lsls r0, r0, #9 + c6: f7ff fffe bl 0 + ca: 7037 strb r7, [r6, #0] + cc: 4823 ldr r0, [pc, #140] (15c ) + ce: 6801 ldr r1, [r0, #0] + d0: 2210 movs r2, #16 + d2: 4391 bics r1, r2 + d4: 6001 str r1, [r0, #0] + d6: 6882 ldr r2, [r0, #8] + d8: 4921 ldr r1, [pc, #132] (160 ) + da: 4311 orrs r1, r2 + dc: 6802 ldr r2, [r0, #0] + de: 2310 movs r3, #16 + e0: 4313 orrs r3, r2 + e2: 6003 str r3, [r0, #0] + e4: 6081 str r1, [r0, #8] + e6: 491f ldr r1, [pc, #124] (164 ) + e8: 60c1 str r1, [r0, #12] + ea: 0a09 lsrs r1, r1, #8 + ec: 6101 str r1, [r0, #16] + ee: 4811 ldr r0, [pc, #68] (134 ) + f0: 3987 subs r1, #135 + f2: 6001 str r1, [r0, #0] + f4: 6820 ldr r0, [r4, #0] + f6: 3023 adds r0, #35 + f8: 7800 ldrb r0, [r0, #0] + fa: 2800 cmp r0, #0 + fc: d102 bne.n 104 + fe: 4807 ldr r0, [pc, #28] (11c ) + 100: 49ff ldr r1, [pc, #1020] (624 ) + 102: 6001 str r1, [r0, #0] + 104: 200f movs r0, #15 + 106: f7ff fffe bl 0 + 10a: f7ff fffe bl 0 + 10e: f7ff fffe bl 0 + 112: bcf8 pop {r3, r4, r5, r6, r7} + 114: bc01 pop {r0} + 116: 4700 bx r0 + 118: 00000000 .word 0x00000000 + 11c: 80009000 .word 0x80009000 + 120: 80050300 .word 0x80050300 + 124: 80009008 .word 0x80009008 + 128: 8000900c .word 0x8000900c + 12c: 80009020 .word 0x80009020 + 130: 80009004 .word 0x80009004 + 134: 80003048 .word 0x80003048 + 138: 00000f7c .word 0x00000f7c + ... + 15c: 80009a00 .word 0x80009a00 + 160: 0000f7df .word 0x0000f7df + 164: 000fffff .word 0x000fffff + +00000168 : + 168: b573 push {r0, r1, r4, r5, r6, lr} + 16a: 380b subs r0, #11 + 16c: 0704 lsls r4, r0, #28 + 16e: 0f24 lsrs r4, r4, #28 + 170: 4824 ldr r0, [pc, #144] (204 ) + 172: 7004 strb r4, [r0, #0] + 174: 4dff ldr r5, [pc, #1020] (620 ) + 176: 6828 ldr r0, [r5, #0] + 178: 1901 adds r1, r0, r4 + 17a: 4e23 ldr r6, [pc, #140] (208 ) + 17c: 7830 ldrb r0, [r6, #0] + 17e: 7c4a ldrb r2, [r1, #17] + 180: 4290 cmp r0, r2 + 182: d202 bcs.n 18a + 184: f7ff fffe bl 0 + 188: e007 b.n 19a + 18a: 466a mov r2, sp + 18c: 7010 strb r0, [r2, #0] + 18e: 7c48 ldrb r0, [r1, #17] + 190: f7ff fffe bl 0 + 194: 4668 mov r0, sp + 196: 7800 ldrb r0, [r0, #0] + 198: 7030 strb r0, [r6, #0] + 19a: 4e1c ldr r6, [pc, #112] (20c ) + 19c: 6830 ldr r0, [r6, #0] + 19e: 491c ldr r1, [pc, #112] (210 ) + 1a0: 4001 ands r1, r0 + 1a2: 6031 str r1, [r6, #0] + 1a4: 6828 ldr r0, [r5, #0] + 1a6: 1901 adds r1, r0, r4 + 1a8: 312e adds r1, #46 + 1aa: 7809 ldrb r1, [r1, #0] + 1ac: 60f1 str r1, [r6, #12] + 1ae: 00a1 lsls r1, r4, #2 + 1b0: 1840 adds r0, r0, r1 + 1b2: 303e adds r0, #62 + 1b4: f7ff fffe bl 0 <__aeabi_uread4> + 1b8: 6130 str r0, [r6, #16] + 1ba: 2106 movs r1, #6 + 1bc: 6331 str r1, [r6, #48] + 1be: 4815 ldr r0, [pc, #84] (214 ) + 1c0: 4344 muls r4, r0 + 1c2: 4815 ldr r0, [pc, #84] (218 ) + 1c4: 6800 ldr r0, [r0, #0] + 1c6: 0600 lsls r0, r0, #24 + 1c8: 1820 adds r0, r4, r0 + 1ca: 4914 ldr r1, [pc, #80] (21c ) + 1cc: 1840 adds r0, r0, r1 + 1ce: 21f8 movs r1, #248 + 1d0: 0609 lsls r1, r1, #24 + 1d2: 0142 lsls r2, r0, #5 + 1d4: d504 bpl.n 1e0 + 1d6: 4001 ands r1, r0 + 1d8: 2080 movs r0, #128 + 1da: 0500 lsls r0, r0, #20 + 1dc: 1809 adds r1, r1, r0 + 1de: e000 b.n 1e2 + 1e0: 4001 ands r1, r0 + 1e2: 0ec8 lsrs r0, r1, #27 + 1e4: 0200 lsls r0, r0, #8 + 1e6: 1d80 adds r0, r0, #6 + 1e8: 6330 str r0, [r6, #48] + 1ea: 6830 ldr r0, [r6, #0] + 1ec: 2180 movs r1, #128 + 1ee: 05c9 lsls r1, r1, #23 + 1f0: 4301 orrs r1, r0 + 1f2: 6031 str r1, [r6, #0] + 1f4: 48ff ldr r0, [pc, #1020] (624 ) + 1f6: 6030 str r0, [r6, #0] + 1f8: f7ff fffe bl 0 + 1fc: bc7c pop {r2, r3, r4, r5, r6} + 1fe: bc01 pop {r0} + 200: 4700 bx r0 + 202: 46c0 nop (mov r8, r8) + ... + 20c: 80009800 .word 0x80009800 + 210: bfffffff .word 0xbfffffff + 214: 037ef9db .word 0x037ef9db + 218: 00000000 .word 0x00000000 + 21c: 04c49ba6 .word 0x04c49ba6 + 220: 00000000 .word 0x00000000 + 224: c0050300 .word 0xc0050300 + +SeqSM_patched.o: file format elf32-littlearm + + +Disassembly of section .text: + +00000000 : + 0: b570 push {r4, r5, r6, lr} + 2: 380b subs r0, #11 + 4: 280f cmp r0, #15 + 6: d80b bhi.n 20 + 8: a101 add r1, pc, #4 (adr r1, 10 ) + a: 5c09 ldrb r1, [r1, r0] + c: 448f add pc, r1 + e: 46c0 nop (mov r8, r8) + 10: d61092dc .word 0xd61092dc + 14: 5e5e5eb4 .word 0x5e5e5eb4 + 18: 92105e5e .word 0x92105e5e + 1c: 5e5e165e .word 0x5e5e165e + 20: 48ff ldr r0, [pc, #1020] (644 ) + 22: 2100 movs r1, #0 + 24: 7001 strb r1, [r0, #0] + 26: f7ff fffe bl 0 + 2a: bc70 pop {r4, r5, r6} + 2c: bc01 pop {r0} + 2e: 4700 bx r0 + 30: 700d strb r5, [r1, #0] + 32: 2800 cmp r0, #0 + 34: d014 beq.n 60 + 36: 3094 adds r0, #148 + 38: 493e ldr r1, [pc, #248] (134 ) + 3a: 6809 ldr r1, [r1, #0] + 3c: 0889 lsrs r1, r1, #2 + 3e: 6001 str r1, [r0, #0] + 40: f7ff fffe bl 0 + 44: 6831 ldr r1, [r6, #0] + 46: 7048 strb r0, [r1, #1] + 48: f7ff fffe bl 0 + 4c: 6831 ldr r1, [r6, #0] + 4e: 7088 strb r0, [r1, #2] + 50: 4838 ldr r0, [pc, #224] (134 ) + 52: 6b00 ldr r0, [r0, #48] + 54: 6831 ldr r1, [r6, #0] + 56: 7008 strb r0, [r1, #0] + 58: 6830 ldr r0, [r6, #0] + 5a: f7ff fffe bl 0 + 5e: 6035 str r5, [r6, #0] + 60: 6820 ldr r0, [r4, #0] + 62: 2181 movs r1, #129 + 64: 7041 strb r1, [r0, #1] + 66: 4834 ldr r0, [pc, #208] (138 ) + 68: 2101 movs r1, #1 + 6a: 7001 strb r1, [r0, #0] + 6c: e05e b.n 12c + 6e: 4900 ldr r1, [pc, #0] (238 ) + 70: 48ff ldr r0, [pc, #1020] (638 ) + 72: f7ff fffe bl 0 <__aeabi_uwrite4> + 76: 4e00 ldr r6, [pc, #0] (234 ) + 78: 6830 ldr r0, [r6, #0] + 7a: f7ff fffe bl 0 + 7e: 2000 movs r0, #0 + 80: 6030 str r0, [r6, #0] + 82: 4c00 ldr r4, [pc, #0] (244 ) + 84: 6820 ldr r0, [r4, #0] + 86: 300c adds r0, #12 + 88: f7ff fffe bl 0 <__aeabi_uread4> + 8c: f7ff fffe bl 0 + 90: 6821 ldr r1, [r4, #0] + 92: 310c adds r1, #12 + 94: 2000 movs r0, #0 + 96: f7ff fffe bl 0 <__aeabi_uwrite4> + 9a: 6820 ldr r0, [r4, #0] + 9c: f7ff fffe bl 0 + a0: e7c1 b.n 1ba + a2: 4900 ldr r1, [pc, #0] (238 ) + a4: 48ff ldr r0, [pc, #1020] (638 ) + a6: f7ff fffe bl 0 <__aeabi_uwrite4> + aa: 4e00 ldr r6, [pc, #0] (234 ) + ac: 6830 ldr r0, [r6, #0] + ae: f7ff fffe bl 0 + b2: 2000 movs r0, #0 + b4: 6030 str r0, [r6, #0] + b6: 4800 ldr r0, [pc, #0] (244 ) + b8: 6800 ldr r0, [r0, #0] + ba: 2185 movs r1, #133 + bc: 7041 strb r1, [r0, #1] + be: 4800 ldr r0, [pc, #0] (240 ) + c0: 2101 movs r1, #1 + c2: e7af b.n 24 + c4: 49ff ldr r1, [pc, #1020] (634 ) + c6: 4800 ldr r0, [pc, #0] (23c ) + c8: f7ff fffe bl 0 <__aeabi_uwrite4> + cc: 4eff ldr r6, [pc, #1020] (630 ) + ce: 6830 ldr r0, [r6, #0] + d0: f7ff fffe bl 0 + d4: 2000 movs r0, #0 + d6: 6030 str r0, [r6, #0] + d8: 48ff ldr r0, [pc, #1020] (640 ) + da: 6800 ldr r0, [r0, #0] + dc: 2186 movs r1, #134 + de: 7041 strb r1, [r0, #1] + e0: 48ff ldr r0, [pc, #1020] (63c ) + e2: 2101 movs r1, #1 + e4: e79e b.n 24 + e6: 4815 ldr r0, [pc, #84] (13c ) + e8: 2101 movs r1, #1 + ea: e79b b.n 24 + ec: 49ff ldr r1, [pc, #1020] (634 ) + ee: 4800 ldr r0, [pc, #0] (23c ) + f0: f7ff fffe bl 0 <__aeabi_uwrite4> + f4: 4cff ldr r4, [pc, #1020] (640 ) + f6: 6820 ldr r0, [r4, #0] + f8: 300c adds r0, #12 + fa: f7ff fffe bl 0 <__aeabi_uread4> + fe: f7ff fffe bl 0 + 102: 6821 ldr r1, [r4, #0] + 104: 310c adds r1, #12 + 106: 2000 movs r0, #0 + 108: f7ff fffe bl 0 <__aeabi_uwrite4> + 10c: 4eff ldr r6, [pc, #1020] (630 ) + 10e: 6830 ldr r0, [r6, #0] + 110: 490a ldr r1, [pc, #40] (13c ) + 112: 2500 movs r5, #0 + 114: 780a ldrb r2, [r1, #0] + 116: 2a00 cmp r2, #0 + 118: d18a bne.n 30 + 11a: f7ff fffe bl 0 + 11e: 6035 str r5, [r6, #0] + 120: 4805 ldr r0, [pc, #20] (138 ) + 122: 2101 movs r1, #1 + 124: 7001 strb r1, [r0, #0] + 126: 6820 ldr r0, [r4, #0] + 128: 2184 movs r1, #132 + 12a: 7041 strb r1, [r0, #1] + 12c: 48ff ldr r0, [pc, #1020] (63c ) + 12e: 2101 movs r1, #1 + 130: e778 b.n 24 + 132: 46c0 nop (mov r8, r8) + 134: 80004068 .word 0x80004068 + ... + +00000140 : + 140: b570 push {r4, r5, r6, lr} + 142: 4936 ldr r1, [pc, #216] (21c ) + 144: 7809 ldrb r1, [r1, #0] + 146: 2902 cmp r1, #2 + 148: d102 bne.n 150 + 14a: 2180 movs r1, #128 + 14c: 0189 lsls r1, r1, #6 + 14e: e000 b.n 152 + 150: 2100 movs r1, #0 + 152: 24c0 movs r4, #192 + 154: 00e4 lsls r4, r4, #3 + 156: 430c orrs r4, r1 + 158: 380b subs r0, #11 + 15a: 280f cmp r0, #15 + 15c: d855 bhi.n 20a + 15e: a101 add r1, pc, #4 (adr r1, 164 ) + 160: 5c09 ldrb r1, [r1, r0] + 162: 448f add pc, r1 + 164: 72a4840e .word 0x72a4840e + 168: 72727272 .word 0x72727272 + 16c: 84a49a72 .word 0x84a49a72 + 170: 72727272 .word 0x72727272 + 174: 4eff ldr r6, [pc, #1020] (630 ) + 176: 4d00 ldr r5, [pc, #0] (244 ) + 178: 6828 ldr r0, [r5, #0] + 17a: 300c adds r0, #12 + 17c: f7ff fffe bl 0 <__aeabi_uread4> + 180: 6030 str r0, [r6, #0] + 182: f7ff fffe bl 0 + 186: 2000 movs r0, #0 + 188: 6030 str r0, [r6, #0] + 18a: 6828 ldr r0, [r5, #0] + 18c: f7ff fffe bl 0 + 190: 2800 cmp r0, #0 + 192: d018 beq.n 1c6 + 194: 49ff ldr r1, [pc, #1020] (634 ) + 196: 4822 ldr r0, [pc, #136] (220 ) + 198: f7ff fffe bl 0 <__aeabi_uwrite4> + 19c: 6828 ldr r0, [r5, #0] + 19e: 2108 movs r1, #8 + 1a0: 7001 strb r1, [r0, #0] + 1a2: 4820 ldr r0, [pc, #128] (224 ) + 1a4: 21fe movs r1, #254 + 1a6: 03c9 lsls r1, r1, #15 + 1a8: 6001 str r1, [r0, #0] + 1aa: 481f ldr r0, [pc, #124] (228 ) + 1ac: 2102 movs r1, #2 + 1ae: 6341 str r1, [r0, #52] + 1b0: 6828 ldr r0, [r5, #0] + 1b2: 1d80 adds r0, r0, #6 + 1b4: f7ff fffe bl 0 <__aeabi_uread4> + 1b8: 0080 lsls r0, r0, #2 + 1ba: 491b ldr r1, [pc, #108] (228 ) + 1bc: 6448 str r0, [r1, #68] + 1be: 2004 movs r0, #4 + 1c0: 4320 orrs r0, r4 + 1c2: 6008 str r0, [r1, #0] + 1c4: e024 b.n 210 + 1c6: f7ff fffe bl 0 + 1ca: 2800 cmp r0, #0 + 1cc: d01d beq.n 20a + 1ce: 4900 ldr r1, [pc, #0] (238 ) + 1d0: 4816 ldr r0, [pc, #88] (22c ) + 1d2: f7ff fffe bl 0 <__aeabi_uwrite4> + 1d6: e01b b.n 26e + 1d8: 49ff ldr r1, [pc, #1020] (634 ) + 1da: 4800 ldr r0, [pc, #0] (23c ) + 1dc: f7ff fffe bl 0 <__aeabi_uwrite4> + 1e0: 48ff ldr r0, [pc, #1020] (640 ) + 1e2: 6800 ldr r0, [r0, #0] + 1e4: f7ff fffe bl 0 + 1e8: e012 b.n 25c + 1ea: 4900 ldr r1, [pc, #0] (238 ) + 1ec: 48ff ldr r0, [pc, #1020] (638 ) + 1ee: f7ff fffe bl 0 <__aeabi_uwrite4> + 1f2: 4800 ldr r0, [pc, #0] (244 ) + 1f4: 6800 ldr r0, [r0, #0] + 1f6: 2185 movs r1, #133 + 1f8: 7041 strb r1, [r0, #1] + 1fa: 4800 ldr r0, [pc, #0] (240 ) + 1fc: 2101 movs r1, #1 + 1fe: e006 b.n 20e + 200: 48ff ldr r0, [pc, #1020] (640 ) + 202: 6800 ldr r0, [r0, #0] + 204: f7ff fffe bl 0 + 208: e7b4 b.n 1b0 + 20a: 4800 ldr r0, [pc, #0] (248 ) + 20c: 2100 movs r1, #0 + 20e: 7001 strb r1, [r0, #0] + 210: f7ff fffe bl 0 + 214: bc70 pop {r4, r5, r6} + 216: bc01 pop {r0} + 218: 4700 bx r0 + 21a: 46c0 nop (mov r8, r8) + 21c: 0000007b .word 0x0000007b + 220: 00000000 .word 0x00000000 + 224: 8000408c .word 0x8000408c + 228: 8000400c .word 0x8000400c + ... + 244: 00000004 .word 0x00000004 From 78f182e658be09122052f4bc962fcb4fc59ee3d8 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 1 Apr 2010 18:33:09 -0400 Subject: [PATCH 338/471] finished reversing interrupt. Found a very interesting magic sequence. There is a lot here to try. --- doc/rf4ce-macphy.dis | 176 +++++++++++++++++++++++++++---------------- 1 file changed, 109 insertions(+), 67 deletions(-) diff --git a/doc/rf4ce-macphy.dis b/doc/rf4ce-macphy.dis index 47d1c61e7..499518936 100644 --- a/doc/rf4ce-macphy.dis +++ b/doc/rf4ce-macphy.dis @@ -713,7 +713,7 @@ Disassembly of section .text: 14: 6304 str r4, [r0, #48] // 0x800040c4 gets r4 (maca_clr) // if((*MACA_IRQ & 0xffff) != 0) { - 16: 0420 lsls r0, r4, #16 // r0 = r4 << 16 ; ro = (*MACA_IRQ) << 16 + 16: 0420 lsls r0, r4, #16 // r0 = r4 << 16 ; r0 = (*MACA_IRQ) << 16 18: d501 bpl.n 1e if( *MACA_TXLEN == 0 ) { @@ -722,7 +722,7 @@ Disassembly of section .text: 1e: 07e0 lsls r0, r4, #31 // r4 = *(MACA_TXLEN << 31) 20: d574 bpl.n 10c - *(0x80004010) swithc (*MACA_STATUS & 0xf) { + *(0x80004010) switch (*MACA_STATUS & 0xf) { 22: 486f ldr r0, [pc, #444] (1e0 ) 24: 6840 ldr r0, [r0, #4] 26: 0700 lsls r0, r0, #28 @@ -859,30 +859,47 @@ Disassembly of section .text: } else { // from *MACA_TXLEN == 0 - 10c: 4839 ldr r0, [pc, #228] (1f4 ) - 10e: 4020 ands r0, r4 - 110: 2180 movs r1, #128 - 112: 0149 lsls r1, r1, #5 - 114: 4288 cmp r0, r1 + 10c: 4839 ldr r0, [pc, #228] (1f4 ) // r0 = 0x1001 + 10e: 4020 ands r0, r4 // r4 is the irq state, mask action complete and timeout + 110: 2180 movs r1, #128 // r1 = 128 + 112: 0149 lsls r1, r1, #5 // r1 = 0x1000 + + 114: 4288 cmp r0, r1 116: d101 bne.n 11c + +// if (timeout) { +// inject(24) and return 118: 2018 movs r0, #24 11a: e7bb b.n 94 - 11c: 2102 movs r1, #2 - 11e: 420c tst r4, r1 +//} + + 11c: 2102 movs r1, #2 // r1 = 2 + 11e: 420c tst r4, r1 + +// if(poll) { 120: d017 beq.n 152 +} + +// do the *0x50 == 0 test 122: 4831 ldr r0, [pc, #196] (1e8 ) 124: 7800 ldrb r0, [r0, #0] 126: 2800 cmp r0, #0 128: d109 bne.n 13e + 12a: 4833 ldr r0, [pc, #204] (1f8 ) 12c: f7ff fffe bl 0 <__aeabi_uread4> 130: 2800 cmp r0, #0 132: d000 beq.n 136 - 134: 2001 movs r0, #1 - 136: 492a ldr r1, [pc, #168] (1e0 ) - 138: 6088 str r0, [r1, #8] + + 134: 2001 movs r0, #1 // r0 = 1 + 136: 492a ldr r1, [pc, #168] (1e0 ) r1 = *(0x800040b4) reserved + 138: 6088 str r0, [r1, #8] *(0x800040b4) + 8 = 1; +// inject(23) and return 13a: 2017 movs r0, #23 13c: e78a b.n 54 + +// rom != 0 +// inject(14) 13e: 200e movs r0, #14 140: f7ff fffe bl 0 144: 482a ldr r0, [pc, #168] (1f0 ) @@ -890,69 +907,92 @@ Disassembly of section .text: 148: f7ff fffe bl 0 14c: 2800 cmp r0, #0 14e: d044 beq.n 1da +// return + 150: e789 b.n 66 - 152: 2104 movs r1, #4 - 154: 420c tst r4, r1 + +// when poll == 1 + 152: 2104 movs r1, #4 + 154: 420c tst r4, r1 // if (data_indication) { 156: d001 beq.n 15c +} else { + // inject(14) and return 158: 200e movs r0, #14 15a: e77b b.n 54 - 15c: 0520 lsls r0, r4, #20 - 15e: d436 bmi.n 1ce - 160: 0460 lsls r0, r4, #17 - 162: d506 bpl.n 172 +} +// data_indication == 1 + 15c: 0520 lsls r0, r4, #20 // r0 = saved irq status << 20 + 15e: d436 bmi.n 1ce // branch if negative (so if irq bit 11 is set, failed filter + + 160: 0460 lsls r0, r4, #17 + 162: d506 bpl.n 172 // branch if !bit 14, sync detect + 164: 4820 ldr r0, [pc, #128] (1e8 ) - 166: 7800 ldrb r0, [r0, #0] - 168: 2800 cmp r0, #0 + 166: 7800 ldrb r0, [r0, #0] // check if txlen is 0 + 168: 2800 cmp r0, #0 // if not zero, return (maybe this is an ack to transmit?) 16a: d136 bne.n 1da - 16c: 481d ldr r0, [pc, #116] (1e4 ) - 16e: 2108 movs r1, #8 - 170: e032 b.n 1d8 - 172: 01c9 lsls r1, r1, #7 - 174: 420c tst r4, r1 - 176: d030 beq.n 1da - 178: 4819 ldr r0, [pc, #100] (1e0 ) - 17a: 6f40 ldr r0, [r0, #116] - 17c: 4a19 ldr r2, [pc, #100] (1e4 ) - 17e: 6852 ldr r2, [r2, #4] - 180: 2a08 cmp r2, #8 - 182: d128 bne.n 1d6 - 184: 4a18 ldr r2, [pc, #96] (1e8 ) + + 16c: 481d ldr r0, [pc, #116] (1e4 ) // r0 = *0x80004108 + 16e: 2108 movs r1, #8 // r1 = 8 + 170: e032 b.n 1d8 // return + +// sync not detectd + +// return if bit 7 + 172: 01c9 lsls r1, r1, #7 // r1 had 4, now r1 = 4 << 7 + 174: 420c tst r4, r1 + 176: d030 beq.n 1da // return if fifo level + + 178: 4819 ldr r0, [pc, #100] (1e0 ) r0 = *0x80004070, reserved + 17a: 6f40 ldr r0, [r0, #116] r0 = *(*0x80004070 + 116) + 17c: 4a19 ldr r2, [pc, #100] (1e4 ) + 17e: 6852 ldr r2, [r2, #4] r2 = *(*0x800040F8 + 4) + 180: 2a08 cmp r2, #8 + 182: d128 bne.n 1d6 // branch if r2 != 8 // *0x80004094 = r1 (r1 = 0x200 here), and return + +// *0x50 test + 184: 4a18 ldr r2, [pc, #96] (1e8 ) 186: 7812 ldrb r2, [r2, #0] 188: 2a00 cmp r2, #0 - 18a: d124 bne.n 1d6 - 18c: 7941 ldrb r1, [r0, #5] - 18e: 020a lsls r2, r1, #8 - 190: 7901 ldrb r1, [r0, #4] - 192: 4311 orrs r1, r2 - 194: 79c2 ldrb r2, [r0, #7] - 196: 0213 lsls r3, r2, #8 - 198: 7982 ldrb r2, [r0, #6] - 19a: 431a orrs r2, r3 - 19c: 7883 ldrb r3, [r0, #2] - 19e: 021b lsls r3, r3, #8 - 1a0: 7840 ldrb r0, [r0, #1] - 1a2: 4318 orrs r0, r3 - 1a4: 23c4 movs r3, #196 - 1a6: 011b lsls r3, r3, #4 - 1a8: 4003 ands r3, r0 - 1aa: 2084 movs r0, #132 - 1ac: 0100 lsls r0, r0, #4 - 1ae: 4283 cmp r3, r0 - 1b0: d113 bne.n 1da - 1b2: 4b0c ldr r3, [pc, #48] (1e4 ) - 1b4: 6f1b ldr r3, [r3, #112] - 1b6: 429a cmp r2, r3 - 1b8: d002 beq.n 1c0 - 1ba: 4810 ldr r0, [pc, #64] (1fc ) - 1bc: 4282 cmp r2, r0 - 1be: d10c bne.n 1da - 1c0: 4a08 ldr r2, [pc, #32] (1e4 ) - 1c2: 6ed2 ldr r2, [r2, #108] - 1c4: 4291 cmp r1, r2 - 1c6: d008 beq.n 1da - 1c8: 480c ldr r0, [pc, #48] (1fc ) + 18a: d124 bne.n 1d6 //if rom == 0 return + + 18c: 7941 ldrb r1, [r0, #5] // r1 = *(uint8_t * )0x80004075 + 18e: 020a lsls r2, r1, #8 // r2 = r1 << 8 + 190: 7901 ldrb r1, [r0, #4] // r1 = *(uint8_t * )0x80004074 + 192: 4311 orrs r1, r2 // temp = *(uint8_t *)0x80004075 | *(uint8_t *)0x80004074 + 194: 79c2 ldrb r2, [r0, #7] // *(uint8_t * )0x80004077 = temp + 196: 0213 lsls r3, r2, #8 // r3 = temp << 8 + 198: 7982 ldrb r2, [r0, #6] // temp = *(uint8_t * )0x80004076 + 19a: 431a orrs r2, r3 + 19c: 7883 ldrb r3, [r0, #2] // *(uint8_t * )0x80004072 = r3 | temp + 19e: 021b lsls r3, r3, #8 // r3 = r3 << 8 + 1a0: 7840 ldrb r0, [r0, #1] // r0 = *(uint8_t * )0x80004071 + 1a2: 4318 orrs r0, r3 // r0 = r0 | r3 + 1a4: 23c4 movs r3, #196 // r3 = 0xc4 + 1a6: 011b lsls r3, r3, #4 // r3 = 0xc40 + 1a8: 4003 ands r3, r0 // r3 = 0xc40 & r0 + 1aa: 2084 movs r0, #132 // r0 = 0x84 + 1ac: 0100 lsls r0, r0, #4 // r0 = 0x840 + 1ae: 4283 cmp r3, r0 // is r3 == 0x840? + 1b0: d113 bne.n 1da // branch if r3 != 0x840 + 1b2: 4b0c ldr r3, [pc, #48] (1e4 ) // r3 = *(0x80040c4) *maca_clrirq + 1b4: 6f1b ldr r3, [r3, #112] // r3 = *maca_irq + 112 + 1b6: 429a cmp r2, r3 + 1b8: d002 beq.n 1c0 // branch if r2 == r3 + + 1ba: 4810 ldr r0, [pc, #64] (1fc ) // r0 = 0xffff + 64 + 1bc: 4282 cmp r2, r0 + + 1be: d10c bne.n 1da // return if some rom location == r0 + + 1c0: 4a08 ldr r2, [pc, #32] (1e4 ) r2 = *(0x800040b4) + 1c2: 6ed2 ldr r2, [r2, #108] r2 = *(0x800040b4) + 108 + 1c4: 4291 cmp r1, r2 + 1c6: d008 beq.n 1da // return if r1 == r2 + + 1c8: 480c ldr r0, [pc, #48] (1fc ) r0 = *(0xffff + 48) 1ca: 4281 cmp r1, r0 - 1cc: d005 beq.n 1da + 1cc: d005 beq.n 1da // return if r1 == r0 or resumemacasync, inject(20), and return. // if(code = 2, channel_busy) { 1ce: f7ff fffe bl 0 @@ -960,8 +1000,10 @@ Disassembly of section .text: 1d2: 2014 movs r0, #20 1d4: e73e b.n 54 - 1d6: 4803 ldr r0, [pc, #12] (1e4 ) +// *0x80004094 = r1, and return + 1d6: 4803 ldr r0, [pc, #12] (1e4 ) 1d8: 6001 str r1, [r0, #0] + 1da: bc1c pop {r2, r3, r4} 1dc: bc01 pop {r0} 1de: 4700 bx r0 From a3f4bd2378fb6f4bb4cadfb27956b9bec48f8bd0 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 1 Apr 2010 19:25:05 -0400 Subject: [PATCH 339/471] finish decode status --- doc/rf4ce-macphy.dis | 50 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/doc/rf4ce-macphy.dis b/doc/rf4ce-macphy.dis index 499518936..9790aadde 100644 --- a/doc/rf4ce-macphy.dis +++ b/doc/rf4ce-macphy.dis @@ -712,15 +712,15 @@ Disassembly of section .text: 12: 6ac4 ldr r4, [r0, #44] // r4 gets 0x800040c0 (maca_irq) 14: 6304 str r4, [r0, #48] // 0x800040c4 gets r4 (maca_clr) - // if((*MACA_IRQ & 0xffff) != 0) { + 16: 0420 lsls r0, r4, #16 // r0 = r4 << 16 ; r0 = (*MACA_IRQ) << 16 - 18: d501 bpl.n 1e + 18: d501 bpl.n 1e //branch if !strt irq (the non transmitting section) if( *MACA_TXLEN == 0 ) { 1a: 4871 ldr r0, [pc, #452] (1e0 ) // r0 = 0x8000400c 1c: 6d00 ldr r0, [r0, #80] // r0 = *0x8000408c *(MACA_TXLEN) - 1e: 07e0 lsls r0, r4, #31 // r4 = *(MACA_TXLEN << 31) - 20: d574 bpl.n 10c + 1e: 07e0 lsls r0, r4, #31 + 20: d574 bpl.n 10c // branch if action complete *(0x80004010) switch (*MACA_STATUS & 0xf) { 22: 486f ldr r0, [pc, #444] (1e0 ) @@ -822,38 +822,72 @@ Disassembly of section .text: ba: e08e b.n 1da // } else { // (from code <= 7 ) +// if code > 8, inject(22) and return; bc: 2016 movs r0, #22 be: e7c9 b.n 54 +// from bcs with 8; r0 = code c0: 3808 subs r0, #8 c2: 2807 cmp r0, #7 - c4: d820 bhi.n 108 + c4: d820 bhi.n 108 // branch if ((code - 8 > 7) default: c6: a101 add r1, pc, #4 (adr r1, cc ) c8: 5c09 ldrb r1, [r1, r0] ca: 448f add pc, r1 cc: 1e1e0e06 .word 0x1e1e0e06 d0: 322a2622 .word 0x322a2622 + +// 0: goto 0xec 1: goto 0xec 2: goto 0xdc 3: goto 0xd4 +// 4: goto 0x100 5: goto 0xf8 6: goto 0xf4 7: goto 0xf0 + +code == 11, not used +// resumemacasync and inject 17 d4: f7ff fffe bl 0 d8: 2011 movs r0, #17 da: e7db b.n 94 + + // code == 10 not used + // resume maca sync dc: f7ff fffe bl 0 e0: 20c0 movs r0, #192 - e2: 0140 lsls r0, r0, #5 - e4: 4204 tst r4, r0 - e6: d172 bne.n 1ce + e2: 0140 lsls r0, r0, #5 r0 = 0x1800 + e4: 4204 tst r4, r0 + e6: d172 bne.n 1ce // branch if not 0x1800 +// branch resumes macasync and injects 20 + +// inject 18 and return e8: 2012 movs r0, #18 ea: e7b3 b.n 54 + + //code == 8, exttimeout code == 9 pnd timeout + // inject 22, return ec: 2016 movs r0, #22 ee: e7e2 b.n b6 + +// code = 15, dma bus error +// inject 25, return + f0: 2019 movs r0, #25 f2: e7af b.n 54 + +// code = 14, not complete +// inject 22 and return + f4: 2016 movs r0, #22 f6: e7cd b.n 94 + +// code = 13, external abort +// resume maca synce +// inject 22 and return f8: f7ff fffe bl 0 fc: 2016 movs r0, #22 fe: e7a9 b.n 54 + +// code == 12 pll unlock +// inject 26 and return 100: 201a movs r0, #26 102: f7ff fffe bl 0 106: e068 b.n 1da + +// default: inject(22) and return; 108: 2016 movs r0, #22 10a: e7a3 b.n 54 From 4f8fc7bdfd573a89d3702bcc74a688e8f00c84ee Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 6 Apr 2010 12:52:08 -0400 Subject: [PATCH 340/471] add packet bound checks as an option --- lib/maca.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 9feddff9c..a9a4cbf35 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -10,6 +10,15 @@ #define PRINTF(...) printf(__VA_ARGS__) #endif +#ifndef MACA_BOUND_CHECK +#define MACA_BOUND_CHECK 0 +#endif +#if (MACA_BOUND_CHECK == 0) +#define BOUND_CHECK(x) +#else +#define BOUND_CHECK(x) bound_check(x) +#endif + #ifndef NUM_PACKETS #define NUM_PACKETS 8 #endif @@ -101,6 +110,20 @@ void Print_Packets(char *s) { printf("found %d packets\n\r",i); } +inline void bad_packet_bounds(void) { + while(1) { continue; } +} + +void bound_check(volatile packet_t *p) { + volatile int i; + if((p == 0) || + (p == &dummy_ack)) { return; } + for(i=0; i < NUM_PACKETS; i++) { + if(p == &packet_pool[i]) { return; } + } + bad_packet_bounds(); +} + /* public packet routines */ /* heads are to the right */ @@ -108,13 +131,19 @@ void Print_Packets(char *s) { void free_packet(volatile packet_t *p) { safe_irq_disable(MACA); + BOUND_CHECK(p); + if(!p) { PRINTF("free_packet passed packet 0\n\r"); return; } if(p == &dummy_ack) { return; } + BOUND_CHECK(free_head); + p->length = 0; p->offset = 0; p->left = free_head; p->right = 0; free_head = p; + BOUND_CHECK(free_head); + irq_restore(); return; } @@ -124,12 +153,16 @@ volatile packet_t* get_free_packet(void) { safe_irq_disable(MACA); + BOUND_CHECK(free_head); + p = free_head; - if( p != 0 ) { + if( p != 0 ) { free_head = p->left; free_head->right = 0; } + BOUND_CHECK(free_head); + // print_packets("get_free_packet"); irq_restore(); return p; @@ -154,6 +187,8 @@ void post_receive(void) { return; } } + BOUND_CHECK(dma_rx); + BOUND_CHECK(dma_tx); *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); /* with timeout */ *MACA_SFTCLK = *MACA_CLK + RECV_SOFTIMEOUT; /* soft timeout */ @@ -176,6 +211,8 @@ volatile packet_t* rx_packet(void) { volatile packet_t *p; safe_irq_disable(MACA); + BOUND_CHECK(rx_head); + p = rx_head; if( p != 0 ) { rx_head = p->left; @@ -202,7 +239,9 @@ void post_tx(void) { PRINTF("trying to fill MACA_DMARX on post_tx but out of packet buffers\n\r"); } - } + } + BOUND_CHECK(dma_rx); + BOUND_CHECK(dma_tx); *MACA_DMARX = (uint32_t)&(dma_rx->data[0]); /* disable soft timeout clock */ /* disable start clock */ @@ -227,6 +266,8 @@ void post_tx(void) { void tx_packet(volatile packet_t *p) { safe_irq_disable(MACA); + BOUND_CHECK(p); + if(!p) { PRINTF("tx_packet passed packet 0\n\r"); return; } if(tx_head == 0) { /* start a new queue if empty */ @@ -266,6 +307,8 @@ void free_tx_head(void) { volatile packet_t *p; safe_irq_disable(MACA); + BOUND_CHECK(tx_head); + p = tx_head; tx_head = tx_head->left; if(tx_head == 0) { tx_end = 0; } @@ -278,6 +321,8 @@ void free_tx_head(void) { void add_to_rx(volatile packet_t *p) { safe_irq_disable(MACA); + + BOUND_CHECK(p); if(!p) { PRINTF("add_to_rx passed packet 0\n\r"); return; } p->offset = 1; /* first byte is the length */ From e6a92481a18ca5288a6a50dca8d078159c937d39 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 6 Apr 2010 12:53:57 -0400 Subject: [PATCH 341/471] initialize packet pointers properly. --- lib/maca.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index a9a4cbf35..535a59ae1 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -36,7 +36,7 @@ #define reg(x) (*(volatile uint32_t *)(x)) static volatile packet_t packet_pool[NUM_PACKETS]; -static volatile packet_t *free_head, *rx_end, *tx_end, *dma_tx, *dma_rx = 0; +static volatile packet_t *free_head, *rx_end, *tx_end, *dma_tx, *dma_rx; /* rx_head and tx_head are visible to the outside */ /* so you can peek at it and see if there is data */ @@ -65,6 +65,7 @@ void maca_init(void) { radio_init(); flyback_init(); init_phy(); + free_head = 0; rx_end = 0; tx_end = 0; dma_tx = 0; dma_rx = 0; free_all_packets(); /* initial radio command */ From 74643bbdaccfd6b500ad0bae2117a5fec1a5ef47 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 6 Apr 2010 12:55:56 -0400 Subject: [PATCH 342/471] don't need to disable irqs in post anymore --- lib/maca.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 535a59ae1..1293b14b1 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -170,7 +170,6 @@ volatile packet_t* get_free_packet(void) { } void post_receive(void) { - disable_irq(MACA); last_post = RX_POST; /* this sets the rxlen field */ /* this is undocumented but very important */ @@ -195,7 +194,6 @@ void post_receive(void) { *MACA_SFTCLK = *MACA_CLK + RECV_SOFTIMEOUT; /* soft timeout */ *MACA_TMREN = (1 << maca_tmren_sft); /* start the receive sequence */ - enable_irq(MACA); *MACA_CONTROL = ( (1 << maca_ctrl_asap) | ( 4 << PRECOUNT) | ( fcs_mode << NOFC ) | From 14c4faf977f76c8885338b742678c9516e5fc87b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 6 Apr 2010 15:09:26 -0400 Subject: [PATCH 343/471] add check_maca and count_packets --- lib/include/maca.h | 4 ++ lib/maca.c | 91 ++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 91 insertions(+), 4 deletions(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index 5f3cdb788..6afd14103 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -10,6 +10,9 @@ void maca_init(void); void maca_off(void); void maca_on(void); +/* run periodically to make sure the maca is still doing right */ +void check_maca(void); + /* maca configuration interface */ void set_power(uint8_t power); void set_channel(uint8_t chan); @@ -30,6 +33,7 @@ void free_packet(volatile packet_t *p); void free_all_packets(void); extern volatile packet_t *rx_head, *tx_head; +extern volatile uint32_t maca_entry; extern void maca_rx_callback(volatile packet_t *p) __attribute__((weak)); extern void maca_tx_callback(volatile packet_t *p) __attribute__((weak)); diff --git a/lib/maca.c b/lib/maca.c index 1293b14b1..4151ed061 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -33,6 +33,10 @@ #define RECV_SOFTIMEOUT (32*128*CLK_PER_BYTE) #endif +#ifndef CPL_TIMEOUT +#define CPL_TIMEOUT (32*128*CLK_PER_BYTE) +#endif + #define reg(x) (*(volatile uint32_t *)(x)) static volatile packet_t packet_pool[NUM_PACKETS]; @@ -47,6 +51,10 @@ volatile packet_t *rx_head, *tx_head; /* doesn't go back into the pool when freed */ static volatile packet_t dummy_ack; +/* incremented on every maca entry */ +/* you can use this to detect that the receive loop is still running */ +volatile uint32_t maca_entry = 0; + enum posts { NO_POST = 0, TX_POST, @@ -60,12 +68,55 @@ static volatile uint8_t last_post = NO_POST; volatile uint8_t fcs_mode = USE_FCS; +/* call periodically to */ +/* check that maca_entry is changing */ +/* if it is not, it will do a manual call to maca_isr which should */ +/* get the ball rolling again */ +/* also checks that the clock is running --- if it isn't then */ +/* it calls redoes the maca intialization but _DOES NOT_ free all packets */ + +void check_maca(void) { + static volatile uint32_t last_time; + static volatile uint32_t last_entry; + volatile uint32_t i; + + /* if *MACA_CLK == last_time */ + /* try waiting for one clock period */ + /* since maybe check_maca is getting called quickly */ + for(i=0; (i < 1024) && (*MACA_CLK == last_time); i++) { continue; } + + if(*MACA_CLK == last_time) { + /* clock isn't running */ + /* reinit maca */ + reset_maca(); + radio_init(); + flyback_init(); + init_phy(); + *MACA_CONTROL = (1 << PRM) | (NO_CCA << MODE); + enable_irq(MACA); + maca_isr(); + } else { + if((last_time > (*MACA_SFTCLK + RECV_SOFTIMEOUT)) && + (last_time > (*MACA_CPLCLK + CPL_TIMEOUT))) { + /* all complete clocks have expired */ + /* check that maca entry is changing */ + /* if not, do call the isr to restart the cycle */ + if(last_entry == maca_entry) { + maca_isr(); + } + } + } + + last_entry = maca_entry; + last_time = *MACA_CLK; +} + void maca_init(void) { reset_maca(); radio_init(); flyback_init(); init_phy(); - free_head = 0; rx_end = 0; tx_end = 0; dma_tx = 0; dma_rx = 0; + free_head = 0; tx_head = 0; rx_head = 0; rx_end = 0; tx_end = 0; dma_tx = 0; dma_rx = 0; free_all_packets(); /* initial radio command */ @@ -115,13 +166,42 @@ inline void bad_packet_bounds(void) { while(1) { continue; } } +int count_packets(void) { + volatile packet_t *pk; + volatile uint8_t tx, rx, free, total; + + pk = tx_head; tx = 0; + while( pk != 0 ) { + tx++; + pk = pk->left; + } + pk = rx_head; rx = 0; + while( pk != 0 ) { + rx++; + pk = pk->left; + } + pk = free_head; free = 0; + while( pk != 0 ) { + free++; + pk = pk->left; + } + + total = free + rx + tx; + if(dma_rx) { total++; } + if(dma_tx) { total++; } + + return total; +} + void bound_check(volatile packet_t *p) { volatile int i; + if((p == 0) || (p == &dummy_ack)) { return; } for(i=0; i < NUM_PACKETS; i++) { if(p == &packet_pool[i]) { return; } } + bad_packet_bounds(); } @@ -228,7 +308,7 @@ void post_tx(void) { /* and set the tx len */ disable_irq(MACA); last_post = TX_POST; - dma_tx = tx_head; + dma_tx = tx_head; *MACA_TXLEN = (uint32_t)((dma_tx->length) + 2); *MACA_DMATX = (uint32_t)&(dma_tx->data[ 0 + dma_tx->offset]); if(dma_rx == 0) { @@ -248,7 +328,7 @@ void post_tx(void) { /* set complete clock to long value */ /* acts like a watchdog in case the MACA locks up */ - *MACA_CPLCLK = *MACA_CLK + (CLK_PER_BYTE * 256); + *MACA_CPLCLK = *MACA_CLK + CPL_TIMEOUT; /* enable complete clock */ *MACA_TMREN = (1 << maca_tmren_cpl); @@ -312,7 +392,7 @@ void free_tx_head(void) { tx_head = tx_head->left; if(tx_head == 0) { tx_end = 0; } free_packet(p); - + // print_packets("free tx head"); irq_restore(); return; @@ -409,6 +489,8 @@ void maca_isr(void) { // print_packets("maca_isr"); + maca_entry++; + if (bit_is_set(*MACA_STATUS, maca_status_ovr)) { PRINTF("maca overrun\n\r"); } if (bit_is_set(*MACA_STATUS, maca_status_busy)) @@ -446,6 +528,7 @@ void maca_isr(void) { /* PRINTF("maca action complete %d\n\r", get_field(*MACA_CONTROL,SEQUENCE)); */ if(last_post == TX_POST) { if(maca_tx_callback != 0) { maca_tx_callback(tx_head); } + dma_tx = 0; free_tx_head(); last_post = NO_POST; } From e21e8f1a4505a1a605a353bebae2c9129266b5f3 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 6 Apr 2010 17:10:28 -0400 Subject: [PATCH 344/471] use check_maca in rftests --- doc/rf4ce-macphy.dis | 1529 ------------------------------------------ tests/rftest-rx.c | 5 + tests/rftest-tx.c | 4 + 3 files changed, 9 insertions(+), 1529 deletions(-) delete mode 100644 doc/rf4ce-macphy.dis diff --git a/doc/rf4ce-macphy.dis b/doc/rf4ce-macphy.dis deleted file mode 100644 index 9790aadde..000000000 --- a/doc/rf4ce-macphy.dis +++ /dev/null @@ -1,1529 +0,0 @@ -In archive MACPHY.a: - -rom-symbols-MAC.o: file format elf32-littlearm - - -ASPMain_patched.o: file format elf32-littlearm - - -Disassembly of section .text: - -00000000 : - 0: b501 push {r0, lr} - 2: 2813 cmp r0, #19 - 4: d301 bcc.n a - 6: 20e8 movs r0, #232 - 8: e030 b.n 6c - a: 4900 ldr r1, [pc, #0] (180 ) - c: 6809 ldr r1, [r1, #0] - e: 227e movs r2, #126 - 10: 5c8a ldrb r2, [r1, r2] - 12: 2a01 cmp r2, #1 - 14: d105 bne.n 22 - 16: 4082 lsls r2, r0 - 18: 4bff ldr r3, [pc, #1020] (584 ) - 1a: 421a tst r2, r3 - 1c: d101 bne.n 22 - 1e: 20e2 movs r0, #226 - 20: e024 b.n 6c - 22: 4a00 ldr r2, [pc, #0] (184 ) - 24: 7010 strb r0, [r2, #0] - 26: 4a13 ldr r2, [pc, #76] (74 ) - 28: 6812 ldr r2, [r2, #0] - 2a: 2a00 cmp r2, #0 - 2c: d00d beq.n 4a - 2e: 0043 lsls r3, r0, #1 - 30: 18d2 adds r2, r2, r3 - 32: 3122 adds r1, #34 - 34: 7809 ldrb r1, [r1, #0] - 36: 2900 cmp r1, #0 - 38: d102 bne.n 40 - 3a: 490f ldr r1, [pc, #60] (78 ) - 3c: 8812 ldrh r2, [r2, #0] - 3e: e003 b.n 48 - 40: 8811 ldrh r1, [r2, #0] - 42: 4a0e ldr r2, [pc, #56] (7c ) - 44: 400a ands r2, r1 - 46: 490c ldr r1, [pc, #48] (78 ) - 48: 60ca str r2, [r1, #12] - 4a: 490d ldr r1, [pc, #52] (80 ) - 4c: 6809 ldr r1, [r1, #0] - 4e: 2900 cmp r1, #0 - 50: d003 beq.n 5a - 52: 0042 lsls r2, r0, #1 - 54: 5a89 ldrh r1, [r1, r2] - 56: 4a08 ldr r2, [pc, #32] (78 ) - 58: 6011 str r1, [r2, #0] - 5a: 490a ldr r1, [pc, #40] (84 ) - 5c: 6809 ldr r1, [r1, #0] - 5e: 2900 cmp r1, #0 - 60: d003 beq.n 6a - 62: 0080 lsls r0, r0, #2 - 64: 5808 ldr r0, [r1, r0] - 66: 4904 ldr r1, [pc, #16] (78 ) - 68: 6408 str r0, [r1, #64] - 6a: 2000 movs r0, #0 - 6c: bc08 pop {r3} - 6e: bc02 pop {r1} - 70: 4708 bx r1 - 72: 46c0 nop (mov r8, r8) - 74: 00000000 .word 0x00000000 - 78: 8000a014 .word 0x8000a014 - 7c: ffffdfff .word 0xffffdfff - ... - -00000088 : - 88: b501 push {r0, lr} - 8a: 4907 ldr r1, [pc, #28] (a8 ) - 8c: 2800 cmp r0, #0 - 8e: 6808 ldr r0, [r1, #0] - 90: d003 beq.n 9a - 92: 2201 movs r2, #1 - 94: 4302 orrs r2, r0 - 96: 600a str r2, [r1, #0] - 98: e002 b.n a0 - 9a: 2201 movs r2, #1 - 9c: 4390 bics r0, r2 - 9e: 6008 str r0, [r1, #0] - a0: bc08 pop {r3} - a2: bc01 pop {r0} - a4: 4700 bx r0 - a6: 46c0 nop (mov r8, r8) - a8: 80009400 .word 0x80009400 - -000000ac : - ac: b501 push {r0, lr} - ae: 4900 ldr r1, [pc, #0] (180 ) - b0: 6809 ldr r1, [r1, #0] - b2: 2222 movs r2, #34 - b4: 5c8a ldrb r2, [r1, r2] - b6: 4290 cmp r0, r2 - b8: d005 beq.n c6 - ba: 3122 adds r1, #34 - bc: 7008 strb r0, [r1, #0] - be: 4800 ldr r0, [pc, #0] (184 ) - c0: 7800 ldrb r0, [r0, #0] - c2: f7ff fffe bl 0 - c6: bc08 pop {r3} - c8: bc01 pop {r0} - ca: 4700 bx r0 - -000000cc : - cc: b570 push {r4, r5, r6, lr} - ce: 0004 lsls r4, r0, #0 - d0: 0015 lsls r5, r2, #0 - d2: 001e lsls r6, r3, #0 - d4: 2c04 cmp r4, #4 - d6: d201 bcs.n dc - d8: 2903 cmp r1, #3 - da: d301 bcc.n e0 - dc: 20e8 movs r0, #232 - de: e02c b.n 13a - e0: 2c02 cmp r4, #2 - e2: d201 bcs.n e8 - e4: 2902 cmp r1, #2 - e6: d2f9 bcs.n dc - e8: 342a adds r4, #42 - ea: 2900 cmp r1, #0 - ec: d004 beq.n f8 - ee: 0620 lsls r0, r4, #24 - f0: 0e00 lsrs r0, r0, #24 - f2: f7ff fffe bl 0 - f6: e01f b.n 138 - f8: 0620 lsls r0, r4, #24 - fa: 0e00 lsrs r0, r0, #24 - fc: f7ff fffe bl 0 - 100: 2d01 cmp r5, #1 - 102: d10f bne.n 124 - 104: 2101 movs r1, #1 - 106: 0620 lsls r0, r4, #24 - 108: 0e00 lsrs r0, r0, #24 - 10a: f7ff fffe bl 0 - 10e: 2101 movs r1, #1 - 110: 0620 lsls r0, r4, #24 - 112: 0e00 lsrs r0, r0, #24 - 114: f7ff fffe bl 0 - 118: 0031 lsls r1, r6, #0 - 11a: 0620 lsls r0, r4, #24 - 11c: 0e00 lsrs r0, r0, #24 - 11e: f7ff fffe bl 0 - 122: e009 b.n 138 - 124: 2100 movs r1, #0 - 126: 0620 lsls r0, r4, #24 - 128: 0e00 lsrs r0, r0, #24 - 12a: f7ff fffe bl 0 - 12e: 2100 movs r1, #0 - 130: 0620 lsls r0, r4, #24 - 132: 0e00 lsrs r0, r0, #24 - 134: f7ff fffe bl 0 - 138: 2000 movs r0, #0 - 13a: bc70 pop {r4, r5, r6} - 13c: bc02 pop {r1} - 13e: 4708 bx r1 - -00000140 : - 140: b501 push {r0, lr} - 142: 4900 ldr r1, [pc, #0] (180 ) - 144: 6809 ldr r1, [r1, #0] - 146: 227e movs r2, #126 - 148: 5c8a ldrb r2, [r1, r2] - 14a: 4290 cmp r0, r2 - 14c: d010 beq.n 170 - 14e: 2801 cmp r0, #1 - 150: d10c bne.n 16c - 152: 4a09 ldr r2, [pc, #36] (178 ) - 154: 7812 ldrb r2, [r2, #0] - 156: 2a1a cmp r2, #26 - 158: d006 beq.n 168 - 15a: 2201 movs r2, #1 - 15c: 4bff ldr r3, [pc, #1020] (580 ) - 15e: 781b ldrb r3, [r3, #0] - 160: 409a lsls r2, r3 - 162: 4b00 ldr r3, [pc, #0] (188 ) - 164: 421a tst r2, r3 - 166: d101 bne.n 16c - 168: 20e2 movs r0, #226 - 16a: e002 b.n 172 - 16c: 317e adds r1, #126 - 16e: 7008 strb r0, [r1, #0] - 170: 2000 movs r0, #0 - 172: bc08 pop {r3} - 174: bc02 pop {r1} - 176: 4708 bx r1 - ... - 184: 000010ff .word 0x000010ff - -MacRamLib.o: file format elf32-littlearm - - -Disassembly of section .text: - -00000000 : - 0: b510 push {r4, lr} - 2: 4840 ldr r0, [pc, #256] (104 ) - 4: 4940 ldr r1, [pc, #256] (108 ) - 6: 6001 str r1, [r0, #0] - 8: 4840 ldr r0, [pc, #256] (10c ) - a: 4941 ldr r1, [pc, #260] (110 ) - c: 6001 str r1, [r0, #0] - e: 4841 ldr r0, [pc, #260] (114 ) - 10: 4941 ldr r1, [pc, #260] (118 ) - 12: 6001 str r1, [r0, #0] - 14: 4841 ldr r0, [pc, #260] (11c ) - 16: 4942 ldr r1, [pc, #264] (120 ) - 18: 6001 str r1, [r0, #0] - 1a: 4842 ldr r0, [pc, #264] (124 ) - 1c: 4942 ldr r1, [pc, #264] (128 ) - 1e: 8809 ldrh r1, [r1, #0] - 20: 8001 strh r1, [r0, #0] - 22: 4842 ldr r0, [pc, #264] (12c ) - 24: 4942 ldr r1, [pc, #264] (130 ) - 26: 8809 ldrh r1, [r1, #0] - 28: 8001 strh r1, [r0, #0] - 2a: 4842 ldr r0, [pc, #264] (134 ) - 2c: 4942 ldr r1, [pc, #264] (138 ) - 2e: 8809 ldrh r1, [r1, #0] - 30: 8001 strh r1, [r0, #0] - 32: 4842 ldr r0, [pc, #264] (13c ) - 34: 4942 ldr r1, [pc, #264] (140 ) - 36: 8809 ldrh r1, [r1, #0] - 38: 8001 strh r1, [r0, #0] - 3a: 4842 ldr r0, [pc, #264] (144 ) - 3c: 4942 ldr r1, [pc, #264] (148 ) - 3e: 6001 str r1, [r0, #0] - 40: 4842 ldr r0, [pc, #264] (14c ) - 42: 4943 ldr r1, [pc, #268] (150 ) - 44: 6001 str r1, [r0, #0] - 46: 4843 ldr r0, [pc, #268] (154 ) - 48: 4943 ldr r1, [pc, #268] (158 ) - 4a: 6001 str r1, [r0, #0] - 4c: 4843 ldr r0, [pc, #268] (15c ) - 4e: 4944 ldr r1, [pc, #272] (160 ) - 50: 6001 str r1, [r0, #0] - 52: 4844 ldr r0, [pc, #272] (164 ) - 54: 4944 ldr r1, [pc, #272] (168 ) - 56: 6001 str r1, [r0, #0] - 58: 4844 ldr r0, [pc, #272] (16c ) - 5a: 4945 ldr r1, [pc, #276] (170 ) - 5c: 7809 ldrb r1, [r1, #0] - 5e: 7001 strb r1, [r0, #0] - 60: 4844 ldr r0, [pc, #272] (174 ) - 62: 4945 ldr r1, [pc, #276] (178 ) - 64: 6001 str r1, [r0, #0] - 66: 4845 ldr r0, [pc, #276] (17c ) - 68: 4945 ldr r1, [pc, #276] (180 ) - 6a: 6001 str r1, [r0, #0] - 6c: 4845 ldr r0, [pc, #276] (184 ) - 6e: 4946 ldr r1, [pc, #280] (188 ) - 70: 6001 str r1, [r0, #0] - 72: 4846 ldr r0, [pc, #280] (18c ) - 74: 4946 ldr r1, [pc, #280] (190 ) - 76: 6001 str r1, [r0, #0] - 78: 4846 ldr r0, [pc, #280] (194 ) - 7a: 4947 ldr r1, [pc, #284] (198 ) - 7c: 6001 str r1, [r0, #0] - 7e: 4847 ldr r0, [pc, #284] (19c ) - 80: 4947 ldr r1, [pc, #284] (1a0 ) - 82: 7809 ldrb r1, [r1, #0] - 84: 7001 strb r1, [r0, #0] - 86: 4847 ldr r0, [pc, #284] (1a4 ) - 88: 4947 ldr r1, [pc, #284] (1a8 ) - 8a: 6001 str r1, [r0, #0] - 8c: 4847 ldr r0, [pc, #284] (1ac ) - 8e: 4948 ldr r1, [pc, #288] (1b0 ) - 90: 6001 str r1, [r0, #0] - 92: 4848 ldr r0, [pc, #288] (1b4 ) - 94: 4948 ldr r1, [pc, #288] (1b8 ) - 96: 6001 str r1, [r0, #0] - 98: 4848 ldr r0, [pc, #288] (1bc ) - 9a: 4949 ldr r1, [pc, #292] (1c0 ) - 9c: 6001 str r1, [r0, #0] - 9e: 4849 ldr r0, [pc, #292] (1c4 ) - a0: 4949 ldr r1, [pc, #292] (1c8 ) - a2: 6001 str r1, [r0, #0] - a4: 4849 ldr r0, [pc, #292] (1cc ) - a6: 494a ldr r1, [pc, #296] (1d0 ) - a8: 6001 str r1, [r0, #0] - aa: 484a ldr r0, [pc, #296] (1d4 ) - ac: 494a ldr r1, [pc, #296] (1d8 ) - ae: 6001 str r1, [r0, #0] - b0: 484a ldr r0, [pc, #296] (1dc ) - b2: 494b ldr r1, [pc, #300] (1e0 ) - b4: 6001 str r1, [r0, #0] - b6: 484b ldr r0, [pc, #300] (1e4 ) - b8: 494b ldr r1, [pc, #300] (1e8 ) - ba: 6001 str r1, [r0, #0] - bc: 484b ldr r0, [pc, #300] (1ec ) - be: 494c ldr r1, [pc, #304] (1f0 ) - c0: 6001 str r1, [r0, #0] - c2: 484c ldr r0, [pc, #304] (1f4 ) - c4: 494c ldr r1, [pc, #304] (1f8 ) - c6: 6809 ldr r1, [r1, #0] - c8: 6001 str r1, [r0, #0] - ca: 484c ldr r0, [pc, #304] (1fc ) - cc: 494c ldr r1, [pc, #304] (200 ) - ce: 6809 ldr r1, [r1, #0] - d0: 6001 str r1, [r0, #0] - d2: 4c4c ldr r4, [pc, #304] (204 ) - d4: 207c movs r0, #124 - d6: 5c20 ldrb r0, [r4, r0] - d8: 494b ldr r1, [pc, #300] (208 ) - da: 7008 strb r0, [r1, #0] - dc: f7ff fffe bl 0 - e0: 2001 movs r0, #1 - e2: f7ff fffe bl 0 - e6: f7ff fffe bl 0 - ea: 347c adds r4, #124 - ec: 7820 ldrb r0, [r4, #0] - ee: f7ff fffe bl 0 - f2: 4846 ldr r0, [pc, #280] (20c ) - f4: 2104 movs r1, #4 - f6: 7001 strb r1, [r0, #0] - f8: 2000 movs r0, #0 - fa: f7ff fffe bl 0 - fe: bc10 pop {r4} - 100: bc01 pop {r0} - 102: 4700 bx r0 - ... - -MemScan_patched.o: file format elf32-littlearm - - -Disassembly of section .text: - -00000000 : - 0: b501 push {r0, lr} - 2: 4815 ldr r0, [pc, #84] (58 ) - 4: 2101 movs r1, #1 - 6: 7001 strb r1, [r0, #0] - 8: f7ff fffe bl 0 - c: 4668 mov r0, sp - e: f7ff fffe bl 0 - 12: 4668 mov r0, sp - 14: f7ff fffe bl 0 - 18: 4810 ldr r0, [pc, #64] (5c ) - 1a: 4911 ldr r1, [pc, #68] (60 ) - 1c: 7809 ldrb r1, [r1, #0] - 1e: 7001 strb r1, [r0, #0] - 20: 4810 ldr r0, [pc, #64] (64 ) - 22: 6800 ldr r0, [r0, #0] - 24: 4910 ldr r1, [pc, #64] (68 ) - 26: 7809 ldrb r1, [r1, #0] - 28: 2900 cmp r1, #0 - 2a: d106 bne.n 3a - 2c: 21f0 movs r1, #240 - 2e: 0089 lsls r1, r1, #2 - 30: 7882 ldrb r2, [r0, #2] - 32: 000b lsls r3, r1, #0 - 34: 4093 lsls r3, r2 - 36: 1859 adds r1, r3, r1 - 38: e000 b.n 3c - 3a: 213c movs r1, #60 - 3c: 4a0b ldr r2, [pc, #44] (6c ) - 3e: 6011 str r1, [r2, #0] - 40: 490b ldr r1, [pc, #44] (70 ) - 42: 2200 movs r2, #0 - 44: 700a strb r2, [r1, #0] - 46: 7840 ldrb r0, [r0, #1] - 48: f7ff fffe bl 0 - 4c: f7ff fffe bl 0 - 50: bc08 pop {r3} - 52: bc01 pop {r0} - 54: 4700 bx r0 - 56: 46c0 nop (mov r8, r8) - ... - -MlmeMain_patched.o: file format elf32-littlearm - - -Disassembly of section .text: - -00000000 : - 0: b531 push {r0, r4, r5, lr} - 2: 0004 lsls r4, r0, #0 - 4: d014 beq.n 30 - 6: 7820 ldrb r0, [r4, #0] - 8: 2809 cmp r0, #9 - a: d111 bne.n 30 - c: 1c60 adds r0, r4, #1 - e: 7801 ldrb r1, [r0, #0] - 10: 2921 cmp r1, #33 - 12: d10d bne.n 30 - 14: 1c40 adds r0, r0, #1 - 16: f7ff fffe bl 0 <__aeabi_uread4> - 1a: 7800 ldrb r0, [r0, #0] - 1c: 281a cmp r0, #26 - 1e: d107 bne.n 30 - 20: 4821 ldr r0, [pc, #132] (a8 ) - 22: 6800 ldr r0, [r0, #0] - 24: 307e adds r0, #126 - 26: 7800 ldrb r0, [r0, #0] - 28: 2801 cmp r0, #1 - 2a: d101 bne.n 30 - 2c: 25e2 movs r5, #226 - 2e: e004 b.n 3a - 30: 0020 lsls r0, r4, #0 - 32: f7ff fffe bl 0 - 36: 0005 lsls r5, r0, #0 - 38: d008 beq.n 4c - 3a: 002a lsls r2, r5, #0 - 3c: 0021 lsls r1, r4, #0 - 3e: 2002 movs r0, #2 - 40: 4b1a ldr r3, [pc, #104] (ac ) - 42: 681b ldr r3, [r3, #0] - 44: f7ff fffe bl 0 - 48: 0028 lsls r0, r5, #0 - 4a: e029 b.n a0 - 4c: 7820 ldrb r0, [r4, #0] - 4e: 1ec0 subs r0, r0, #3 - 50: d004 beq.n 5c - 52: 1ec0 subs r0, r0, #3 - 54: d007 beq.n 66 - 56: 1ec0 subs r0, r0, #3 - 58: d009 beq.n 6e - 5a: e00a b.n 72 - 5c: 2103 movs r1, #3 - 5e: 0020 lsls r0, r4, #0 - 60: f7ff fffe bl 0 - 64: e014 b.n 90 - 66: 7860 ldrb r0, [r4, #1] - 68: f7ff fffe bl 0 - 6c: e010 b.n 90 - 6e: 2109 movs r1, #9 - 70: e7f5 b.n 5e - 72: 0021 lsls r1, r4, #0 - 74: 480e ldr r0, [pc, #56] (b0 ) - 76: f7ff fffe bl 0 - 7a: 480e ldr r0, [pc, #56] (b4 ) - 7c: 7800 ldrb r0, [r0, #0] - 7e: 2800 cmp r0, #0 - 80: d006 beq.n 90 - 82: 2101 movs r1, #1 - 84: 480c ldr r0, [pc, #48] (b8 ) - 86: 7800 ldrb r0, [r0, #0] - 88: 4a0c ldr r2, [pc, #48] (bc ) - 8a: 6812 ldr r2, [r2, #0] - 8c: f7ff fffe bl 0 - 90: 2200 movs r2, #0 - 92: 0021 lsls r1, r4, #0 - 94: 2002 movs r0, #2 - 96: 4b05 ldr r3, [pc, #20] (ac ) - 98: 681b ldr r3, [r3, #0] - 9a: f7ff fffe bl 0 - 9e: 2000 movs r0, #0 - a0: bc38 pop {r3, r4, r5} - a2: bc02 pop {r1} - a4: 4708 bx r1 - a6: 46c0 nop (mov r8, r8) - ... - -Disassembly of section .text: - -00000000 <__iar_via_R3>: - 0: 4718 bx r3 - -Disassembly of section .text: - -00000000 <__iar_via_R2>: - 0: 4710 bx r2 - -MlmeScan_patched.o: file format elf32-littlearm - - -Disassembly of section .text: - -00000000 : - 0: b5f1 push {r0, r4, r5, r6, r7, lr} - 2: 4c43 ldr r4, [pc, #268] (110 ) - 4: 200a movs r0, #10 - 6: 7020 strb r0, [r4, #0] - 8: 2700 movs r7, #0 - a: 4d00 ldr r5, [pc, #0] (1fc ) - c: 702f strb r7, [r5, #0] - e: 4800 ldr r0, [pc, #0] (200 ) - 10: 2104 movs r1, #4 - 12: 7001 strb r1, [r0, #0] - 14: 483f ldr r0, [pc, #252] (114 ) - 16: 7007 strb r7, [r0, #0] - 18: 48ff ldr r0, [pc, #1020] (60c ) - 1a: 7007 strb r7, [r0, #0] - 1c: 483e ldr r0, [pc, #248] (118 ) - 1e: 6801 ldr r1, [r0, #0] - 20: 7988 ldrb r0, [r1, #6] - 22: 4a3e ldr r2, [pc, #248] (11c ) - 24: 7010 strb r0, [r2, #0] - 26: 7848 ldrb r0, [r1, #1] - 28: 4aff ldr r2, [pc, #1020] (610 ) - 2a: 7010 strb r0, [r2, #0] - 2c: 4eff ldr r6, [pc, #1020] (618 ) - 2e: 2203 movs r2, #3 - 30: 1cc9 adds r1, r1, #3 - 32: 0030 lsls r0, r6, #0 - 34: f7ff fffe bl 0 - 38: 48ff ldr r0, [pc, #1020] (610 ) - 3a: 7800 ldrb r0, [r0, #0] - 3c: 2801 cmp r0, #1 - 3e: d001 beq.n 44 - 40: 2802 cmp r0, #2 - 42: d11e bne.n 82 - 44: 48ff ldr r0, [pc, #1020] (604 ) - 46: 4900 ldr r1, [pc, #0] (20c ) - 48: 7802 ldrb r2, [r0, #0] - 4a: 700a strb r2, [r1, #0] - 4c: 7840 ldrb r0, [r0, #1] - 4e: 7048 strb r0, [r1, #1] - 50: 4833 ldr r0, [pc, #204] (120 ) - 52: 7007 strb r7, [r0, #0] - 54: 2073 movs r0, #115 - 56: f7ff fffe bl 0 - 5a: 4932 ldr r1, [pc, #200] (124 ) - 5c: 6008 str r0, [r1, #0] - 5e: 4900 ldr r1, [pc, #0] (218 ) - 60: 6008 str r0, [r1, #0] - 62: 2800 cmp r0, #0 - 64: d016 beq.n 94 - 66: 306e adds r0, #110 - 68: 7007 strb r7, [r0, #0] - 6a: 6809 ldr r1, [r1, #0] - 6c: 316f adds r1, #111 - 6e: 2000 movs r0, #0 - 70: f7ff fffe bl 0 <__aeabi_uwrite4> - 74: 482c ldr r0, [pc, #176] (b4 ) - 76: f7ff fffe bl 0 - 7a: 4800 ldr r0, [pc, #0] (204 ) - 7c: 2101 movs r1, #1 - 7e: 7001 strb r1, [r0, #0] - 80: e03f b.n 102 - 82: 2800 cmp r0, #0 - 84: d10b bne.n 9e - 86: 4f27 ldr r7, [pc, #156] (124 ) - 88: 2010 movs r0, #16 - 8a: f7ff fffe bl 0 - 8e: 6038 str r0, [r7, #0] - 90: 2800 cmp r0, #0 - 92: d136 bne.n 102 - 94: 2000 movs r0, #0 - 96: f7ff fffe bl 0 - 9a: 2000 movs r0, #0 - 9c: e035 b.n 10a - 9e: 2804 cmp r0, #4 - a0: d12f bne.n 102 - a2: 4f20 ldr r7, [pc, #128] (124 ) - a4: 481d ldr r0, [pc, #116] (11c ) - a6: 7800 ldrb r0, [r0, #0] - a8: f7ff fffe bl 0 - ac: 6038 str r0, [r7, #0] - ae: 2800 cmp r0, #0 - b0: d0f0 beq.n 94 - b2: 2001 movs r0, #1 - b4: 4917 ldr r1, [pc, #92] (114 ) - b6: 7008 strb r0, [r1, #0] - b8: 7821 ldrb r1, [r4, #0] - ba: 291a cmp r1, #26 - bc: d218 bcs.n f0 - be: 491b ldr r1, [pc, #108] (12c ) - c0: 7822 ldrb r2, [r4, #0] - c2: 1c52 adds r2, r2, #1 - c4: 7022 strb r2, [r4, #0] - c6: 4b00 ldr r3, [pc, #0] (200 ) - c8: 781b ldrb r3, [r3, #0] - ca: 2b80 cmp r3, #128 - cc: d104 bne.n d8 - ce: 782b ldrb r3, [r5, #0] - d0: 1c5b adds r3, r3, #1 - d2: 702b strb r3, [r5, #0] - d4: 2301 movs r3, #1 - d6: e000 b.n da - d8: 005b lsls r3, r3, #1 - da: 4f00 ldr r7, [pc, #0] (200 ) - dc: 703b strb r3, [r7, #0] - de: 782f ldrb r7, [r5, #0] - e0: 5df7 ldrb r7, [r6, r7] - e2: 421f tst r7, r3 - e4: d000 beq.n e8 - e6: 700a strb r2, [r1, #0] - e8: 0612 lsls r2, r2, #24 - ea: 0e12 lsrs r2, r2, #24 - ec: 2a1a cmp r2, #26 - ee: d3e7 bcc.n c0 - f0: 20ff movs r0, #255 - f2: 7030 strb r0, [r6, #0] - f4: 7070 strb r0, [r6, #1] - f6: 70b0 strb r0, [r6, #2] - f8: 201a movs r0, #26 - fa: 4908 ldr r1, [pc, #32] (11c ) - fc: 7809 ldrb r1, [r1, #0] - fe: 1a40 subs r0, r0, r1 - 100: 7020 strb r0, [r4, #0] - 102: 2001 movs r0, #1 - 104: f7ff fffe bl 0 - 108: 2001 movs r0, #1 - 10a: bcf8 pop {r3, r4, r5, r6, r7} - 10c: bc02 pop {r1} - 10e: 4708 bx r1 - ... - 128: 0000ffff .word 0x0000ffff - 12c: 00000000 .word 0x00000000 - -00000130 : - 130: b531 push {r0, r4, r5, lr} - 132: 2881 cmp r0, #129 - 134: d14d bne.n 1d2 - 136: 482b ldr r0, [pc, #172] (1e4 ) - 138: 6800 ldr r0, [r0, #0] - 13a: 7840 ldrb r0, [r0, #1] - 13c: 2800 cmp r0, #0 - 13e: d008 beq.n 152 - 140: 48ff ldr r0, [pc, #1020] (5f8 ) - 142: 7800 ldrb r0, [r0, #0] - 144: 49ff ldr r1, [pc, #1020] (618 ) - 146: 1808 adds r0, r1, r0 - 148: 7801 ldrb r1, [r0, #0] - 14a: 4a00 ldr r2, [pc, #0] (200 ) - 14c: 7812 ldrb r2, [r2, #0] - 14e: 4391 bics r1, r2 - 150: 7001 strb r1, [r0, #0] - 152: f7ff fffe bl 0 - 156: 2800 cmp r0, #0 - 158: d13e bne.n 1d8 - 15a: 4923 ldr r1, [pc, #140] (1e8 ) - 15c: 4823 ldr r0, [pc, #140] (1ec ) - 15e: f7ff fffe bl 0 <__aeabi_uwrite4> - 162: f7ff fffe bl 0 - 166: 2400 movs r4, #0 - 168: 48ff ldr r0, [pc, #1020] (600 ) - 16a: 7004 strb r4, [r0, #0] - 16c: 48ff ldr r0, [pc, #1020] (604 ) - 16e: 4900 ldr r1, [pc, #0] (20c ) - 170: 780a ldrb r2, [r1, #0] - 172: 7002 strb r2, [r0, #0] - 174: 784a ldrb r2, [r1, #1] - 176: 7042 strb r2, [r0, #1] - 178: 9400 str r4, [sp, #0] - 17a: 2202 movs r2, #2 - 17c: 4668 mov r0, sp - 17e: f7ff fffe bl 0 - 182: 9800 ldr r0, [sp, #0] - 184: f7ff fffe bl 0 - 188: 200b movs r0, #11 - 18a: f7ff fffe bl 0 - 18e: 4d18 ldr r5, [pc, #96] (1f0 ) - 190: 6829 ldr r1, [r5, #0] - 192: 2900 cmp r1, #0 - 194: d020 beq.n 1d8 - 196: 4800 ldr r0, [pc, #0] (210 ) - 198: 7802 ldrb r2, [r0, #0] - 19a: 2a00 cmp r2, #0 - 19c: d001 beq.n 1a2 - 19e: 2200 movs r2, #0 - 1a0: e000 b.n 1a4 - 1a2: 22ea movs r2, #234 - 1a4: 704a strb r2, [r1, #1] - 1a6: 6829 ldr r1, [r5, #0] - 1a8: 4aff ldr r2, [pc, #1020] (610 ) - 1aa: 7812 ldrb r2, [r2, #0] - 1ac: 708a strb r2, [r1, #2] - 1ae: 6829 ldr r1, [r5, #0] - 1b0: 7800 ldrb r0, [r0, #0] - 1b2: 70c8 strb r0, [r1, #3] - 1b4: 6829 ldr r1, [r5, #0] - 1b6: 3108 adds r1, #8 - 1b8: 48ff ldr r0, [pc, #1020] (614 ) - 1ba: 6800 ldr r0, [r0, #0] - 1bc: f7ff fffe bl 0 <__aeabi_uwrite4> - 1c0: 6828 ldr r0, [r5, #0] - 1c2: 7104 strb r4, [r0, #4] - 1c4: 2203 movs r2, #3 - 1c6: 4900 ldr r1, [pc, #0] (21c ) - 1c8: 6828 ldr r0, [r5, #0] - 1ca: 1d40 adds r0, r0, #5 - 1cc: f7ff fffe bl 0 - 1d0: e002 b.n 1d8 - 1d2: 4808 ldr r0, [pc, #32] (1f4 ) - 1d4: 2100 movs r1, #0 - 1d6: 7001 strb r1, [r0, #0] - 1d8: f7ff fffe bl 0 - 1dc: bc38 pop {r3, r4, r5} - 1de: bc01 pop {r0} - 1e0: 4700 bx r0 - 1e2: 46c0 nop (mov r8, r8) - ... - 1f4: 00000004 .word 0x00000004 - ... - 204: 0000004e .word 0x0000004e - ... - -PhyIsr_Patched.o: file format elf32-littlearm - - -Disassembly of section .text: - -00000000 : - 0: b513 push {r0, r1, r4, lr} - 2: 4877 ldr r0, [pc, #476] (1e0 ) // r0 gets 0x8000400c - 4: 6bc0 ldr r0, [r0, #60] // r0 gets 0x8000406c - 6: 0880 lsrs r0, r0, #2 // r0 >> 2 - 8: 9000 str r0, [sp, #0] // store r0 where the stack points - a: 4668 mov r0, sp // put r0 on the stack pointer - c: f7ff fffe bl 0 // call setcurclock - - // *MACA_CLR = *MACA_IRQ - 10: 4874 ldr r0, [pc, #464] (1e4 ) // r0 getx 0x80004094 - 12: 6ac4 ldr r4, [r0, #44] // r4 gets 0x800040c0 (maca_irq) - 14: 6304 str r4, [r0, #48] // 0x800040c4 gets r4 (maca_clr) - - - 16: 0420 lsls r0, r4, #16 // r0 = r4 << 16 ; r0 = (*MACA_IRQ) << 16 - 18: d501 bpl.n 1e //branch if !strt irq (the non transmitting section) - - if( *MACA_TXLEN == 0 ) { - 1a: 4871 ldr r0, [pc, #452] (1e0 ) // r0 = 0x8000400c - 1c: 6d00 ldr r0, [r0, #80] // r0 = *0x8000408c *(MACA_TXLEN) - 1e: 07e0 lsls r0, r4, #31 - 20: d574 bpl.n 10c // branch if action complete - - *(0x80004010) switch (*MACA_STATUS & 0xf) { - 22: 486f ldr r0, [pc, #444] (1e0 ) - 24: 6840 ldr r0, [r0, #4] - 26: 0700 lsls r0, r0, #28 - 28: 0f00 lsrs r0, r0, #28 -// case (ext_timeout): - 2a: 2808 cmp r0, #8 - 2c: d248 bcs.n c0 - if ( 7 <= code) { - 2e: 2807 cmp r0, #7 - 30: d844 bhi.n bc -// - 32: a102 add r1, pc, #8 (adr r1, 3c ) - 34: 5c09 ldrb r1, [r1, r0] // r1 = *(0x3c + code) - 36: 0049 lsls r1, r1, #1 // (lookup *2) - 38: 448f add pc, r1 // jumptable - 3a: 46c0 nop - 3c: 2b29c904 .word 0x2b29c904 - 40: 3c3a362f .word 0x3c3a362f - -// 0: goto 0x92 1: goto 0x8E 2: goto 0x1CE 3: goto 0x44 -// 4: goto 0xb4 5: goto 0xb0 6: goto 0xA8 7: goto 0x9A - -// case (code == 3) { // crc failed -// does this test a rom verison? or if we are simulating? (b/c in r.l. *0x50 = 0xbc80ffe7) - 44: 4868 ldr r0, [pc, #416] (1e8 ) // r0 = 0x50 - 46: 7800 ldrb r0, [r0, #0] // r0 = *(0x50) - 48: 2800 cmp r0, #0 // if (*(0x50) == 0) { - 4a: d106 bne.n 5a - 4c: 4867 ldr r0, [pc, #412] (1ec ) // don't know 0x1ec - 4e: 2104 movs r1, #4 - 50: 7001 strb r1, [r0, #0] - -// seqinjectevent(11) and return - 52: 200b movs r0, #11 - 54: f7ff fffe bl 0 - 58: e0bf b.n 1da // return - } else { // from *0x50 == 0 - 5a: 4865 ldr r0, [pc, #404] (1f0 ) - 5c: 6800 ldr r0, [r0, #0] - 5e: f7ff fffe bl 0 - 62: 2800 cmp r0, #0 - 64: d003 beq.n 6e //might be an if rel clock - 66: 2001 movs r0, #1 - 68: f7ff fffe bl 0 - 6c: e0b5 b.n 1da - - 6e: 485c ldr r0, [pc, #368] (1e0 ) - 70: 2103 movs r1, #3 - 72: 6341 str r1, [r0, #52] // *(0x80004040) = 3 ; *maca_tmren = allclocks - 74: 6d00 ldr r0, [r0, #80] // r0 = *(0x80005C) ; *maca_relclk - 76: 3032 adds r0, #50 // r0 += 50 - 78: 4959 ldr r1, [pc, #356] (1e0 ) - 7a: 6408 str r0, [r1, #64] // r0 = *(0x8000404c) (maca_startclk) - 7c: 6d08 ldr r0, [r1, #80] // *maca_relclk = *(maca_startclk) - 7e: 21fa movs r1, #250 // r1 = 250 - 80: 0089 lsls r1, r1, #2 // r1 = 500 - 82: 1840 adds r0, r0, r1 // r0 = 500 + relclk_value - 84: 4956 ldr r1, [pc, #344] (1e0 ) - 86: 6448 str r0, [r1, #68] // *(0x8004050) = 500 + reclk_value; *maca_cplclk = 500 + relclk_value - 88: 0008 lsls r0, r1, #0 // r0 = r1 - 8a: 2102 movs r1, #2 // r1 = 2 - 8c: e0a4 b.n 1d8 //return; - -// if (code == 1 ) // time-out - 8e: 200c movs r0, #12 // seqinjectevent(12) and return; - 90: e7e0 b.n 54 - -// if( code == 0) { //success - 92: 2014 movs r0, #20 // seqinjectevent(20) - 94: f7ff fffe bl 0 - 98: e09f b.n 1da goto exit. - -// if (code == 7) { // late start - 9a: 4853 ldr r0, [pc, #332] (1e8 ) - 9c: 7800 ldrb r0, [r0, #0] - 9e: 2800 cmp r0, #0 - a0: d000 beq.n a4 - a2: e09a b.n 1da - a4: 2016 movs r0, #22 - a6: e7d5 b.n 54 - -// if (code == 6, no data) { - a8: f7ff fffe bl 0 -// inject (15) and return - ac: 200f movs r0, #15 - ae: e7f1 b.n 94 - -// if(code = 5, no ack) { -// inject 16 and return - b0: 2010 movs r0, #16 - b2: e7cf b.n 54 - -//if (code == 4, aborted) -// seqinjectevent(19) and return - b4: 2013 movs r0, #19 - b6: f7ff fffe bl 0 - ba: e08e b.n 1da - -// } else { // (from code <= 7 ) -// if code > 8, inject(22) and return; - bc: 2016 movs r0, #22 - be: e7c9 b.n 54 -// from bcs with 8; r0 = code - c0: 3808 subs r0, #8 - c2: 2807 cmp r0, #7 - c4: d820 bhi.n 108 // branch if ((code - 8 > 7) default: - c6: a101 add r1, pc, #4 (adr r1, cc ) - c8: 5c09 ldrb r1, [r1, r0] - ca: 448f add pc, r1 - cc: 1e1e0e06 .word 0x1e1e0e06 - d0: 322a2622 .word 0x322a2622 - -// 0: goto 0xec 1: goto 0xec 2: goto 0xdc 3: goto 0xd4 -// 4: goto 0x100 5: goto 0xf8 6: goto 0xf4 7: goto 0xf0 - -code == 11, not used -// resumemacasync and inject 17 - d4: f7ff fffe bl 0 - d8: 2011 movs r0, #17 - da: e7db b.n 94 - - // code == 10 not used - // resume maca sync - dc: f7ff fffe bl 0 - e0: 20c0 movs r0, #192 - e2: 0140 lsls r0, r0, #5 r0 = 0x1800 - e4: 4204 tst r4, r0 - e6: d172 bne.n 1ce // branch if not 0x1800 -// branch resumes macasync and injects 20 - -// inject 18 and return - e8: 2012 movs r0, #18 - ea: e7b3 b.n 54 - - //code == 8, exttimeout code == 9 pnd timeout - // inject 22, return - ec: 2016 movs r0, #22 - ee: e7e2 b.n b6 - -// code = 15, dma bus error -// inject 25, return - - f0: 2019 movs r0, #25 - f2: e7af b.n 54 - -// code = 14, not complete -// inject 22 and return - - f4: 2016 movs r0, #22 - f6: e7cd b.n 94 - -// code = 13, external abort -// resume maca synce -// inject 22 and return - f8: f7ff fffe bl 0 - fc: 2016 movs r0, #22 - fe: e7a9 b.n 54 - -// code == 12 pll unlock -// inject 26 and return - 100: 201a movs r0, #26 - 102: f7ff fffe bl 0 - 106: e068 b.n 1da - -// default: inject(22) and return; - 108: 2016 movs r0, #22 - 10a: e7a3 b.n 54 - - } else { // from *MACA_TXLEN == 0 - - 10c: 4839 ldr r0, [pc, #228] (1f4 ) // r0 = 0x1001 - 10e: 4020 ands r0, r4 // r4 is the irq state, mask action complete and timeout - 110: 2180 movs r1, #128 // r1 = 128 - 112: 0149 lsls r1, r1, #5 // r1 = 0x1000 - - 114: 4288 cmp r0, r1 - 116: d101 bne.n 11c - -// if (timeout) { -// inject(24) and return - 118: 2018 movs r0, #24 - 11a: e7bb b.n 94 -//} - - 11c: 2102 movs r1, #2 // r1 = 2 - 11e: 420c tst r4, r1 - -// if(poll) { - 120: d017 beq.n 152 -} - -// do the *0x50 == 0 test - 122: 4831 ldr r0, [pc, #196] (1e8 ) - 124: 7800 ldrb r0, [r0, #0] - 126: 2800 cmp r0, #0 - 128: d109 bne.n 13e - - 12a: 4833 ldr r0, [pc, #204] (1f8 ) - 12c: f7ff fffe bl 0 <__aeabi_uread4> - 130: 2800 cmp r0, #0 - 132: d000 beq.n 136 - - 134: 2001 movs r0, #1 // r0 = 1 - 136: 492a ldr r1, [pc, #168] (1e0 ) r1 = *(0x800040b4) reserved - 138: 6088 str r0, [r1, #8] *(0x800040b4) + 8 = 1; -// inject(23) and return - 13a: 2017 movs r0, #23 - 13c: e78a b.n 54 - -// rom != 0 -// inject(14) - 13e: 200e movs r0, #14 - 140: f7ff fffe bl 0 - 144: 482a ldr r0, [pc, #168] (1f0 ) - 146: 6800 ldr r0, [r0, #0] - 148: f7ff fffe bl 0 - 14c: 2800 cmp r0, #0 - 14e: d044 beq.n 1da -// return - - 150: e789 b.n 66 - -// when poll == 1 - 152: 2104 movs r1, #4 - 154: 420c tst r4, r1 // if (data_indication) { - 156: d001 beq.n 15c -} else { - // inject(14) and return - 158: 200e movs r0, #14 - 15a: e77b b.n 54 -} -// data_indication == 1 - 15c: 0520 lsls r0, r4, #20 // r0 = saved irq status << 20 - 15e: d436 bmi.n 1ce // branch if negative (so if irq bit 11 is set, failed filter - - 160: 0460 lsls r0, r4, #17 - 162: d506 bpl.n 172 // branch if !bit 14, sync detect - - 164: 4820 ldr r0, [pc, #128] (1e8 ) - 166: 7800 ldrb r0, [r0, #0] // check if txlen is 0 - 168: 2800 cmp r0, #0 // if not zero, return (maybe this is an ack to transmit?) - 16a: d136 bne.n 1da - - 16c: 481d ldr r0, [pc, #116] (1e4 ) // r0 = *0x80004108 - 16e: 2108 movs r1, #8 // r1 = 8 - 170: e032 b.n 1d8 // return - -// sync not detectd - -// return if bit 7 - 172: 01c9 lsls r1, r1, #7 // r1 had 4, now r1 = 4 << 7 - 174: 420c tst r4, r1 - 176: d030 beq.n 1da // return if fifo level - - 178: 4819 ldr r0, [pc, #100] (1e0 ) r0 = *0x80004070, reserved - 17a: 6f40 ldr r0, [r0, #116] r0 = *(*0x80004070 + 116) - 17c: 4a19 ldr r2, [pc, #100] (1e4 ) - 17e: 6852 ldr r2, [r2, #4] r2 = *(*0x800040F8 + 4) - 180: 2a08 cmp r2, #8 - 182: d128 bne.n 1d6 // branch if r2 != 8 // *0x80004094 = r1 (r1 = 0x200 here), and return - -// *0x50 test - 184: 4a18 ldr r2, [pc, #96] (1e8 ) - 186: 7812 ldrb r2, [r2, #0] - 188: 2a00 cmp r2, #0 - 18a: d124 bne.n 1d6 //if rom == 0 return - - 18c: 7941 ldrb r1, [r0, #5] // r1 = *(uint8_t * )0x80004075 - 18e: 020a lsls r2, r1, #8 // r2 = r1 << 8 - 190: 7901 ldrb r1, [r0, #4] // r1 = *(uint8_t * )0x80004074 - 192: 4311 orrs r1, r2 // temp = *(uint8_t *)0x80004075 | *(uint8_t *)0x80004074 - 194: 79c2 ldrb r2, [r0, #7] // *(uint8_t * )0x80004077 = temp - 196: 0213 lsls r3, r2, #8 // r3 = temp << 8 - 198: 7982 ldrb r2, [r0, #6] // temp = *(uint8_t * )0x80004076 - 19a: 431a orrs r2, r3 - 19c: 7883 ldrb r3, [r0, #2] // *(uint8_t * )0x80004072 = r3 | temp - 19e: 021b lsls r3, r3, #8 // r3 = r3 << 8 - 1a0: 7840 ldrb r0, [r0, #1] // r0 = *(uint8_t * )0x80004071 - 1a2: 4318 orrs r0, r3 // r0 = r0 | r3 - 1a4: 23c4 movs r3, #196 // r3 = 0xc4 - 1a6: 011b lsls r3, r3, #4 // r3 = 0xc40 - 1a8: 4003 ands r3, r0 // r3 = 0xc40 & r0 - 1aa: 2084 movs r0, #132 // r0 = 0x84 - 1ac: 0100 lsls r0, r0, #4 // r0 = 0x840 - 1ae: 4283 cmp r3, r0 // is r3 == 0x840? - 1b0: d113 bne.n 1da // branch if r3 != 0x840 - 1b2: 4b0c ldr r3, [pc, #48] (1e4 ) // r3 = *(0x80040c4) *maca_clrirq - 1b4: 6f1b ldr r3, [r3, #112] // r3 = *maca_irq + 112 - 1b6: 429a cmp r2, r3 - 1b8: d002 beq.n 1c0 // branch if r2 == r3 - - 1ba: 4810 ldr r0, [pc, #64] (1fc ) // r0 = 0xffff + 64 - 1bc: 4282 cmp r2, r0 - - 1be: d10c bne.n 1da // return if some rom location == r0 - - 1c0: 4a08 ldr r2, [pc, #32] (1e4 ) r2 = *(0x800040b4) - 1c2: 6ed2 ldr r2, [r2, #108] r2 = *(0x800040b4) + 108 - 1c4: 4291 cmp r1, r2 - 1c6: d008 beq.n 1da // return if r1 == r2 - - 1c8: 480c ldr r0, [pc, #48] (1fc ) r0 = *(0xffff + 48) - 1ca: 4281 cmp r1, r0 - 1cc: d005 beq.n 1da // return if r1 == r0 or resumemacasync, inject(20), and return. - -// if(code = 2, channel_busy) { - 1ce: f7ff fffe bl 0 -// inject (20) and return - 1d2: 2014 movs r0, #20 - 1d4: e73e b.n 54 - -// *0x80004094 = r1, and return - 1d6: 4803 ldr r0, [pc, #12] (1e4 ) - 1d8: 6001 str r1, [r0, #0] - - 1da: bc1c pop {r2, r3, r4} - 1dc: bc01 pop {r0} - 1de: 4700 bx r0 - 1e0: 8000400c .word 0x8000400c - 1e4: 80004094 .word 0x80004094 - 1e8: 00000050 .word 0x00000050 - ... - 1f4: 00001001 .word 0x00001001 - 1f8: 00000000 .word 0x00000000 - 1fc: 0000ffff .word 0x0000ffff - -PhySettingsRam.o: file format elf32-littlearm - - -Phy_Patched.o: file format elf32-littlearm - - -Disassembly of section .text: - -00000000 : - 0: b5f1 push {r0, r4, r5, r6, r7, lr} - 2: 4c00 ldr r4, [pc, #0] (224 ) - 4: 6820 ldr r0, [r4, #0] - 6: 0001 lsls r1, r0, #0 - 8: 3123 adds r1, #35 - a: 4d43 ldr r5, [pc, #268] (118 ) - c: 780a ldrb r2, [r1, #0] - e: 2a00 cmp r2, #0 - 10: d135 bne.n 7e - 12: 682a ldr r2, [r5, #0] - 14: 4e41 ldr r6, [pc, #260] (11c ) - 16: 6296 str r6, [r2, #40] - 18: 4b41 ldr r3, [pc, #260] (120 ) - 1a: 62d3 str r3, [r2, #44] - 1c: 4b41 ldr r3, [pc, #260] (124 ) - 1e: 6313 str r3, [r2, #48] - 20: 78c9 ldrb r1, [r1, #3] - 22: 6351 str r1, [r2, #52] - 24: 4940 ldr r1, [pc, #256] (128 ) - 26: 6391 str r1, [r2, #56] - 28: 302a adds r0, #42 - 2a: f7ff fffe bl 0 <__aeabi_uread4> - 2e: 6829 ldr r1, [r5, #0] - 30: 000b lsls r3, r1, #0 - 32: 333c adds r3, #60 - 34: 6822 ldr r2, [r4, #0] - 36: 2727 movs r7, #39 - 38: 5dd7 ldrb r7, [r2, r7] - 3a: 067f lsls r7, r7, #25 - 3c: 4338 orrs r0, r7 - 3e: 6018 str r0, [r3, #0] - 40: 483a ldr r0, [pc, #232] (12c ) - 42: 6058 str r0, [r3, #4] - 44: 200c movs r0, #12 - 46: 6098 str r0, [r3, #8] - 48: 4839 ldr r0, [pc, #228] (130 ) - 4a: 60d8 str r0, [r3, #12] - 4c: 20ff movs r0, #255 - 4e: 1c80 adds r0, r0, #2 - 50: 6118 str r0, [r3, #16] - 52: 615e str r6, [r3, #20] - 54: 48ff ldr r0, [pc, #1020] (624 ) - 56: 6198 str r0, [r3, #24] - 58: 675e str r6, [r3, #116] - 5a: 4f31 ldr r7, [pc, #196] (120 ) - 5c: 679f str r7, [r3, #120] - 5e: 31d8 adds r1, #216 - 60: 4b34 ldr r3, [pc, #208] (134 ) - 62: 600b str r3, [r1, #0] - 64: 4b34 ldr r3, [pc, #208] (138 ) - 66: 604b str r3, [r1, #4] - 68: 608e str r6, [r1, #8] - 6a: 60c8 str r0, [r1, #12] - 6c: 3228 adds r2, #40 - 6e: 7810 ldrb r0, [r2, #0] - 70: 7851 ldrb r1, [r2, #1] - 72: 0609 lsls r1, r1, #24 - 74: 0c09 lsrs r1, r1, #16 - 76: 4308 orrs r0, r1 - 78: 4930 ldr r1, [pc, #192] (13c ) - 7a: 6809 ldr r1, [r1, #0] - 7c: 6048 str r0, [r1, #4] - 7e: 4e30 ldr r6, [pc, #192] (140 ) - 80: 2700 movs r7, #0 - 82: 7037 strb r7, [r6, #0] - 84: 482f ldr r0, [pc, #188] (144 ) - 86: 8801 ldrh r1, [r0, #0] - 88: 6828 ldr r0, [r5, #0] - 8a: f7ff fffe bl 0 - 8e: 482e ldr r0, [pc, #184] (148 ) - 90: 8801 ldrh r1, [r0, #0] - 92: 482e ldr r0, [pc, #184] (14c ) - 94: 6800 ldr r0, [r0, #0] - 96: f7ff fffe bl 0 - 9a: 482d ldr r0, [pc, #180] (150 ) - 9c: 8801 ldrh r1, [r0, #0] - 9e: 482d ldr r0, [pc, #180] (154 ) - a0: 6800 ldr r0, [r0, #0] - a2: f7ff fffe bl 0 - a6: 482c ldr r0, [pc, #176] (158 ) - a8: 8801 ldrh r1, [r0, #0] - aa: 4824 ldr r0, [pc, #144] (13c ) - ac: 6800 ldr r0, [r0, #0] - ae: f7ff fffe bl 0 - b2: 4668 mov r0, sp - b4: f7ff fffe bl 0 - b8: 2101 movs r1, #1 - ba: 7031 strb r1, [r6, #0] - bc: 4669 mov r1, sp - be: 780a ldrb r2, [r1, #0] - c0: 0001 lsls r1, r0, #0 - c2: 20f8 movs r0, #248 - c4: 0240 lsls r0, r0, #9 - c6: f7ff fffe bl 0 - ca: 7037 strb r7, [r6, #0] - cc: 4823 ldr r0, [pc, #140] (15c ) - ce: 6801 ldr r1, [r0, #0] - d0: 2210 movs r2, #16 - d2: 4391 bics r1, r2 - d4: 6001 str r1, [r0, #0] - d6: 6882 ldr r2, [r0, #8] - d8: 4921 ldr r1, [pc, #132] (160 ) - da: 4311 orrs r1, r2 - dc: 6802 ldr r2, [r0, #0] - de: 2310 movs r3, #16 - e0: 4313 orrs r3, r2 - e2: 6003 str r3, [r0, #0] - e4: 6081 str r1, [r0, #8] - e6: 491f ldr r1, [pc, #124] (164 ) - e8: 60c1 str r1, [r0, #12] - ea: 0a09 lsrs r1, r1, #8 - ec: 6101 str r1, [r0, #16] - ee: 4811 ldr r0, [pc, #68] (134 ) - f0: 3987 subs r1, #135 - f2: 6001 str r1, [r0, #0] - f4: 6820 ldr r0, [r4, #0] - f6: 3023 adds r0, #35 - f8: 7800 ldrb r0, [r0, #0] - fa: 2800 cmp r0, #0 - fc: d102 bne.n 104 - fe: 4807 ldr r0, [pc, #28] (11c ) - 100: 49ff ldr r1, [pc, #1020] (624 ) - 102: 6001 str r1, [r0, #0] - 104: 200f movs r0, #15 - 106: f7ff fffe bl 0 - 10a: f7ff fffe bl 0 - 10e: f7ff fffe bl 0 - 112: bcf8 pop {r3, r4, r5, r6, r7} - 114: bc01 pop {r0} - 116: 4700 bx r0 - 118: 00000000 .word 0x00000000 - 11c: 80009000 .word 0x80009000 - 120: 80050300 .word 0x80050300 - 124: 80009008 .word 0x80009008 - 128: 8000900c .word 0x8000900c - 12c: 80009020 .word 0x80009020 - 130: 80009004 .word 0x80009004 - 134: 80003048 .word 0x80003048 - 138: 00000f7c .word 0x00000f7c - ... - 15c: 80009a00 .word 0x80009a00 - 160: 0000f7df .word 0x0000f7df - 164: 000fffff .word 0x000fffff - -00000168 : - 168: b573 push {r0, r1, r4, r5, r6, lr} - 16a: 380b subs r0, #11 - 16c: 0704 lsls r4, r0, #28 - 16e: 0f24 lsrs r4, r4, #28 - 170: 4824 ldr r0, [pc, #144] (204 ) - 172: 7004 strb r4, [r0, #0] - 174: 4dff ldr r5, [pc, #1020] (620 ) - 176: 6828 ldr r0, [r5, #0] - 178: 1901 adds r1, r0, r4 - 17a: 4e23 ldr r6, [pc, #140] (208 ) - 17c: 7830 ldrb r0, [r6, #0] - 17e: 7c4a ldrb r2, [r1, #17] - 180: 4290 cmp r0, r2 - 182: d202 bcs.n 18a - 184: f7ff fffe bl 0 - 188: e007 b.n 19a - 18a: 466a mov r2, sp - 18c: 7010 strb r0, [r2, #0] - 18e: 7c48 ldrb r0, [r1, #17] - 190: f7ff fffe bl 0 - 194: 4668 mov r0, sp - 196: 7800 ldrb r0, [r0, #0] - 198: 7030 strb r0, [r6, #0] - 19a: 4e1c ldr r6, [pc, #112] (20c ) - 19c: 6830 ldr r0, [r6, #0] - 19e: 491c ldr r1, [pc, #112] (210 ) - 1a0: 4001 ands r1, r0 - 1a2: 6031 str r1, [r6, #0] - 1a4: 6828 ldr r0, [r5, #0] - 1a6: 1901 adds r1, r0, r4 - 1a8: 312e adds r1, #46 - 1aa: 7809 ldrb r1, [r1, #0] - 1ac: 60f1 str r1, [r6, #12] - 1ae: 00a1 lsls r1, r4, #2 - 1b0: 1840 adds r0, r0, r1 - 1b2: 303e adds r0, #62 - 1b4: f7ff fffe bl 0 <__aeabi_uread4> - 1b8: 6130 str r0, [r6, #16] - 1ba: 2106 movs r1, #6 - 1bc: 6331 str r1, [r6, #48] - 1be: 4815 ldr r0, [pc, #84] (214 ) - 1c0: 4344 muls r4, r0 - 1c2: 4815 ldr r0, [pc, #84] (218 ) - 1c4: 6800 ldr r0, [r0, #0] - 1c6: 0600 lsls r0, r0, #24 - 1c8: 1820 adds r0, r4, r0 - 1ca: 4914 ldr r1, [pc, #80] (21c ) - 1cc: 1840 adds r0, r0, r1 - 1ce: 21f8 movs r1, #248 - 1d0: 0609 lsls r1, r1, #24 - 1d2: 0142 lsls r2, r0, #5 - 1d4: d504 bpl.n 1e0 - 1d6: 4001 ands r1, r0 - 1d8: 2080 movs r0, #128 - 1da: 0500 lsls r0, r0, #20 - 1dc: 1809 adds r1, r1, r0 - 1de: e000 b.n 1e2 - 1e0: 4001 ands r1, r0 - 1e2: 0ec8 lsrs r0, r1, #27 - 1e4: 0200 lsls r0, r0, #8 - 1e6: 1d80 adds r0, r0, #6 - 1e8: 6330 str r0, [r6, #48] - 1ea: 6830 ldr r0, [r6, #0] - 1ec: 2180 movs r1, #128 - 1ee: 05c9 lsls r1, r1, #23 - 1f0: 4301 orrs r1, r0 - 1f2: 6031 str r1, [r6, #0] - 1f4: 48ff ldr r0, [pc, #1020] (624 ) - 1f6: 6030 str r0, [r6, #0] - 1f8: f7ff fffe bl 0 - 1fc: bc7c pop {r2, r3, r4, r5, r6} - 1fe: bc01 pop {r0} - 200: 4700 bx r0 - 202: 46c0 nop (mov r8, r8) - ... - 20c: 80009800 .word 0x80009800 - 210: bfffffff .word 0xbfffffff - 214: 037ef9db .word 0x037ef9db - 218: 00000000 .word 0x00000000 - 21c: 04c49ba6 .word 0x04c49ba6 - 220: 00000000 .word 0x00000000 - 224: c0050300 .word 0xc0050300 - -SeqSM_patched.o: file format elf32-littlearm - - -Disassembly of section .text: - -00000000 : - 0: b570 push {r4, r5, r6, lr} - 2: 380b subs r0, #11 - 4: 280f cmp r0, #15 - 6: d80b bhi.n 20 - 8: a101 add r1, pc, #4 (adr r1, 10 ) - a: 5c09 ldrb r1, [r1, r0] - c: 448f add pc, r1 - e: 46c0 nop (mov r8, r8) - 10: d61092dc .word 0xd61092dc - 14: 5e5e5eb4 .word 0x5e5e5eb4 - 18: 92105e5e .word 0x92105e5e - 1c: 5e5e165e .word 0x5e5e165e - 20: 48ff ldr r0, [pc, #1020] (644 ) - 22: 2100 movs r1, #0 - 24: 7001 strb r1, [r0, #0] - 26: f7ff fffe bl 0 - 2a: bc70 pop {r4, r5, r6} - 2c: bc01 pop {r0} - 2e: 4700 bx r0 - 30: 700d strb r5, [r1, #0] - 32: 2800 cmp r0, #0 - 34: d014 beq.n 60 - 36: 3094 adds r0, #148 - 38: 493e ldr r1, [pc, #248] (134 ) - 3a: 6809 ldr r1, [r1, #0] - 3c: 0889 lsrs r1, r1, #2 - 3e: 6001 str r1, [r0, #0] - 40: f7ff fffe bl 0 - 44: 6831 ldr r1, [r6, #0] - 46: 7048 strb r0, [r1, #1] - 48: f7ff fffe bl 0 - 4c: 6831 ldr r1, [r6, #0] - 4e: 7088 strb r0, [r1, #2] - 50: 4838 ldr r0, [pc, #224] (134 ) - 52: 6b00 ldr r0, [r0, #48] - 54: 6831 ldr r1, [r6, #0] - 56: 7008 strb r0, [r1, #0] - 58: 6830 ldr r0, [r6, #0] - 5a: f7ff fffe bl 0 - 5e: 6035 str r5, [r6, #0] - 60: 6820 ldr r0, [r4, #0] - 62: 2181 movs r1, #129 - 64: 7041 strb r1, [r0, #1] - 66: 4834 ldr r0, [pc, #208] (138 ) - 68: 2101 movs r1, #1 - 6a: 7001 strb r1, [r0, #0] - 6c: e05e b.n 12c - 6e: 4900 ldr r1, [pc, #0] (238 ) - 70: 48ff ldr r0, [pc, #1020] (638 ) - 72: f7ff fffe bl 0 <__aeabi_uwrite4> - 76: 4e00 ldr r6, [pc, #0] (234 ) - 78: 6830 ldr r0, [r6, #0] - 7a: f7ff fffe bl 0 - 7e: 2000 movs r0, #0 - 80: 6030 str r0, [r6, #0] - 82: 4c00 ldr r4, [pc, #0] (244 ) - 84: 6820 ldr r0, [r4, #0] - 86: 300c adds r0, #12 - 88: f7ff fffe bl 0 <__aeabi_uread4> - 8c: f7ff fffe bl 0 - 90: 6821 ldr r1, [r4, #0] - 92: 310c adds r1, #12 - 94: 2000 movs r0, #0 - 96: f7ff fffe bl 0 <__aeabi_uwrite4> - 9a: 6820 ldr r0, [r4, #0] - 9c: f7ff fffe bl 0 - a0: e7c1 b.n 1ba - a2: 4900 ldr r1, [pc, #0] (238 ) - a4: 48ff ldr r0, [pc, #1020] (638 ) - a6: f7ff fffe bl 0 <__aeabi_uwrite4> - aa: 4e00 ldr r6, [pc, #0] (234 ) - ac: 6830 ldr r0, [r6, #0] - ae: f7ff fffe bl 0 - b2: 2000 movs r0, #0 - b4: 6030 str r0, [r6, #0] - b6: 4800 ldr r0, [pc, #0] (244 ) - b8: 6800 ldr r0, [r0, #0] - ba: 2185 movs r1, #133 - bc: 7041 strb r1, [r0, #1] - be: 4800 ldr r0, [pc, #0] (240 ) - c0: 2101 movs r1, #1 - c2: e7af b.n 24 - c4: 49ff ldr r1, [pc, #1020] (634 ) - c6: 4800 ldr r0, [pc, #0] (23c ) - c8: f7ff fffe bl 0 <__aeabi_uwrite4> - cc: 4eff ldr r6, [pc, #1020] (630 ) - ce: 6830 ldr r0, [r6, #0] - d0: f7ff fffe bl 0 - d4: 2000 movs r0, #0 - d6: 6030 str r0, [r6, #0] - d8: 48ff ldr r0, [pc, #1020] (640 ) - da: 6800 ldr r0, [r0, #0] - dc: 2186 movs r1, #134 - de: 7041 strb r1, [r0, #1] - e0: 48ff ldr r0, [pc, #1020] (63c ) - e2: 2101 movs r1, #1 - e4: e79e b.n 24 - e6: 4815 ldr r0, [pc, #84] (13c ) - e8: 2101 movs r1, #1 - ea: e79b b.n 24 - ec: 49ff ldr r1, [pc, #1020] (634 ) - ee: 4800 ldr r0, [pc, #0] (23c ) - f0: f7ff fffe bl 0 <__aeabi_uwrite4> - f4: 4cff ldr r4, [pc, #1020] (640 ) - f6: 6820 ldr r0, [r4, #0] - f8: 300c adds r0, #12 - fa: f7ff fffe bl 0 <__aeabi_uread4> - fe: f7ff fffe bl 0 - 102: 6821 ldr r1, [r4, #0] - 104: 310c adds r1, #12 - 106: 2000 movs r0, #0 - 108: f7ff fffe bl 0 <__aeabi_uwrite4> - 10c: 4eff ldr r6, [pc, #1020] (630 ) - 10e: 6830 ldr r0, [r6, #0] - 110: 490a ldr r1, [pc, #40] (13c ) - 112: 2500 movs r5, #0 - 114: 780a ldrb r2, [r1, #0] - 116: 2a00 cmp r2, #0 - 118: d18a bne.n 30 - 11a: f7ff fffe bl 0 - 11e: 6035 str r5, [r6, #0] - 120: 4805 ldr r0, [pc, #20] (138 ) - 122: 2101 movs r1, #1 - 124: 7001 strb r1, [r0, #0] - 126: 6820 ldr r0, [r4, #0] - 128: 2184 movs r1, #132 - 12a: 7041 strb r1, [r0, #1] - 12c: 48ff ldr r0, [pc, #1020] (63c ) - 12e: 2101 movs r1, #1 - 130: e778 b.n 24 - 132: 46c0 nop (mov r8, r8) - 134: 80004068 .word 0x80004068 - ... - -00000140 : - 140: b570 push {r4, r5, r6, lr} - 142: 4936 ldr r1, [pc, #216] (21c ) - 144: 7809 ldrb r1, [r1, #0] - 146: 2902 cmp r1, #2 - 148: d102 bne.n 150 - 14a: 2180 movs r1, #128 - 14c: 0189 lsls r1, r1, #6 - 14e: e000 b.n 152 - 150: 2100 movs r1, #0 - 152: 24c0 movs r4, #192 - 154: 00e4 lsls r4, r4, #3 - 156: 430c orrs r4, r1 - 158: 380b subs r0, #11 - 15a: 280f cmp r0, #15 - 15c: d855 bhi.n 20a - 15e: a101 add r1, pc, #4 (adr r1, 164 ) - 160: 5c09 ldrb r1, [r1, r0] - 162: 448f add pc, r1 - 164: 72a4840e .word 0x72a4840e - 168: 72727272 .word 0x72727272 - 16c: 84a49a72 .word 0x84a49a72 - 170: 72727272 .word 0x72727272 - 174: 4eff ldr r6, [pc, #1020] (630 ) - 176: 4d00 ldr r5, [pc, #0] (244 ) - 178: 6828 ldr r0, [r5, #0] - 17a: 300c adds r0, #12 - 17c: f7ff fffe bl 0 <__aeabi_uread4> - 180: 6030 str r0, [r6, #0] - 182: f7ff fffe bl 0 - 186: 2000 movs r0, #0 - 188: 6030 str r0, [r6, #0] - 18a: 6828 ldr r0, [r5, #0] - 18c: f7ff fffe bl 0 - 190: 2800 cmp r0, #0 - 192: d018 beq.n 1c6 - 194: 49ff ldr r1, [pc, #1020] (634 ) - 196: 4822 ldr r0, [pc, #136] (220 ) - 198: f7ff fffe bl 0 <__aeabi_uwrite4> - 19c: 6828 ldr r0, [r5, #0] - 19e: 2108 movs r1, #8 - 1a0: 7001 strb r1, [r0, #0] - 1a2: 4820 ldr r0, [pc, #128] (224 ) - 1a4: 21fe movs r1, #254 - 1a6: 03c9 lsls r1, r1, #15 - 1a8: 6001 str r1, [r0, #0] - 1aa: 481f ldr r0, [pc, #124] (228 ) - 1ac: 2102 movs r1, #2 - 1ae: 6341 str r1, [r0, #52] - 1b0: 6828 ldr r0, [r5, #0] - 1b2: 1d80 adds r0, r0, #6 - 1b4: f7ff fffe bl 0 <__aeabi_uread4> - 1b8: 0080 lsls r0, r0, #2 - 1ba: 491b ldr r1, [pc, #108] (228 ) - 1bc: 6448 str r0, [r1, #68] - 1be: 2004 movs r0, #4 - 1c0: 4320 orrs r0, r4 - 1c2: 6008 str r0, [r1, #0] - 1c4: e024 b.n 210 - 1c6: f7ff fffe bl 0 - 1ca: 2800 cmp r0, #0 - 1cc: d01d beq.n 20a - 1ce: 4900 ldr r1, [pc, #0] (238 ) - 1d0: 4816 ldr r0, [pc, #88] (22c ) - 1d2: f7ff fffe bl 0 <__aeabi_uwrite4> - 1d6: e01b b.n 26e - 1d8: 49ff ldr r1, [pc, #1020] (634 ) - 1da: 4800 ldr r0, [pc, #0] (23c ) - 1dc: f7ff fffe bl 0 <__aeabi_uwrite4> - 1e0: 48ff ldr r0, [pc, #1020] (640 ) - 1e2: 6800 ldr r0, [r0, #0] - 1e4: f7ff fffe bl 0 - 1e8: e012 b.n 25c - 1ea: 4900 ldr r1, [pc, #0] (238 ) - 1ec: 48ff ldr r0, [pc, #1020] (638 ) - 1ee: f7ff fffe bl 0 <__aeabi_uwrite4> - 1f2: 4800 ldr r0, [pc, #0] (244 ) - 1f4: 6800 ldr r0, [r0, #0] - 1f6: 2185 movs r1, #133 - 1f8: 7041 strb r1, [r0, #1] - 1fa: 4800 ldr r0, [pc, #0] (240 ) - 1fc: 2101 movs r1, #1 - 1fe: e006 b.n 20e - 200: 48ff ldr r0, [pc, #1020] (640 ) - 202: 6800 ldr r0, [r0, #0] - 204: f7ff fffe bl 0 - 208: e7b4 b.n 1b0 - 20a: 4800 ldr r0, [pc, #0] (248 ) - 20c: 2100 movs r1, #0 - 20e: 7001 strb r1, [r0, #0] - 210: f7ff fffe bl 0 - 214: bc70 pop {r4, r5, r6} - 216: bc01 pop {r0} - 218: 4700 bx r0 - 21a: 46c0 nop (mov r8, r8) - 21c: 0000007b .word 0x0000007b - 220: 00000000 .word 0x00000000 - 224: 8000408c .word 0x8000408c - 228: 8000400c .word 0x8000400c - ... - 244: 00000004 .word 0x00000004 diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index fec69ea54..cde7addbe 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -41,6 +41,11 @@ void main(void) { print_welcome("rftest-rx"); while(1) { + + /* call check_maca() periodically --- this works around */ + /* a few lockup conditions */ + check_maca(); + if((p = rx_packet())) { /* print and free the packet */ printf("rftest-rx --- "); diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index 9680997fc..f07ae97aa 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -54,6 +54,10 @@ void main(void) { while(1) { + /* call check_maca() periodically --- this works around */ + /* a few lockup conditions */ + check_maca(); + p = get_free_packet(); if(p) { fill_packet(p); From 18d898d96731a94b21035862e4dbdc3688a55133 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 8 Apr 2010 12:17:21 -0400 Subject: [PATCH 345/471] fix typo in the usage --- Makefile.include | 2 +- tests/printf.c | 21 ++++++++++++++++++++- tools/ftditools/bbmc.c | 2 +- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Makefile.include b/Makefile.include index 885e4a2d2..fc0ac6240 100644 --- a/Makefile.include +++ b/Makefile.include @@ -76,7 +76,7 @@ $(MC1322X)/src/src.a: $(MC1322X)/src/src.a($(SRCOBJS)) %_$(BOARD).elf: $(OBJDIR)/%.o $(START) $(ISR) $(SRCOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/board.a $(MC1322X)/src/src.a $(CC) $(LDFLAGS) \ - -L $(LIBMC1322X) -L $(MC1322X)/src -L $(OBJDIR) $< -o $@ $(START) $(MC1322X)/src/src.a --start-group $(OBJDIR)/board.a $(LIBMC1322X)/libmc1322x.a --end-group + -L $(LIBMC1322X) -L $(MC1322X)/src -L $(OBJDIR) $< -o $@ $(START) $(MC1322X)/src/src.a --start-group $(OBJDIR)/board.a $(LIBMC1322X)/libmc1322x.a -lm --end-group %.srec: %.elf $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ diff --git a/tests/printf.c b/tests/printf.c index 0d43f061f..d09af1d41 100644 --- a/tests/printf.c +++ b/tests/printf.c @@ -2,6 +2,7 @@ #include #include +#include #include "tests.h" #include "config.h" @@ -11,7 +12,22 @@ printf(#x); \ printf("): %d\n", sizeof(x)); \ } while(0) - + +FILE *stderr; + +void __assert_fail(void) { + return; +} + +int fputs(const char *s, FILE *stream) { + return 0; +} + +size_t fwrite(const void *ptr, size_t size, size_t nmemb, + FILE *stream) { + return 0; +} + int main(void) { char *ptr = "Hello world!"; @@ -45,6 +61,9 @@ int main(void) printf("%d %s(s)", 0, "message"); printf("\n"); printf("%d %s(s) with %%\n", 0, "message"); + + printf("sqrt(5) * 100 = %d\n", (int) (sqrt(5)*100)); + // sprintf(buf, "justif: \"%-10s\"\n", "left"); printf("%s", buf); // sprintf(buf, "justif: \"%10s\"\n", "right"); printf("%s", buf); // sprintf(buf, " 3: %04d zero padded\n", 3); printf("%s", buf); diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c index baa871280..6d2ad0d49 100644 --- a/tools/ftditools/bbmc.c +++ b/tools/ftditools/bbmc.c @@ -326,7 +326,7 @@ void usage(void) printf( "Options:\n"); printf( " -i|--index specifiy which device to use (default 0)\n"); printf( " -v|--vendor set vendor id (default 0x0403)\n"); - printf( " -p|--prodcut set vendor id (default 0x6010)\n"); + printf( " -p|--product set vendor id (default 0x6010)\n"); } int print_and_prompt( struct ftdi_device_list *devlist ) From 444d79e55f44c2ca92df547d122733860adeb75b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 4 May 2010 12:55:07 -0400 Subject: [PATCH 346/471] more complete quahogcon board header --- board/quahogcon.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/board/quahogcon.h b/board/quahogcon.h index fb095faf1..d3b8100c5 100644 --- a/board/quahogcon.h +++ b/board/quahogcon.h @@ -1,5 +1,24 @@ -#ifndef BOARD_REDBEE_DEV_H -#define BOARD_REDBEE_DEV_H +#ifndef BOARD_QUAHOG10_H +#define BOARD_QUAHOG10_H + +#define LED_REDBANK_0 (0x1ULL << 2) +#define LED_REDBANK_1 (0x1ULL << 0) +#define LED_REDBANK_2 (0x1ULL << 28) +#define LED_REDBANK_3 (0x1ULL << 25) +#define LED_REDBANK_4 (0x1ULL << 43) + +#define LED_CENTERRED (0x1ULL << 12) +#define LED_CENTERGREEN (0x1ULL << 13) + +#define LED_SIDERED (0x1ULL << 12) +#define LED_SIDEGREEN (0x1ULL << 21) +#define LED_SIDEYELLOW (0x1ULL << 35) + +// Buttons in GPIO mode +#define BUTTON1_OUT (0x1ULL << 23) +#define BUTTON1_IN (0x1ULL << 27) +#define BUTTON2_OUT (0x1ULL << 22) +#define BUTTON2_IN (0x1ULL << 26) #define LED_RED 12 #define LED_GREEN 21 From 7b3a8b9f7761f81957460c859cdf1e0266109300 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 4 May 2010 12:55:29 -0400 Subject: [PATCH 347/471] pulled in gpio_data_get from the quahogcon guys. --- lib/gpio.c | 9 +++++++++ lib/include/gpio.h | 1 + 2 files changed, 10 insertions(+) diff --git a/lib/gpio.c b/lib/gpio.c index 878a9f795..de253aae2 100644 --- a/lib/gpio.c +++ b/lib/gpio.c @@ -13,6 +13,15 @@ inline void gpio_data(volatile uint64_t data) *GPIO_DATA1 = (data >> 32); } +inline uint64_t gpio_data_get(volatile uint64_t bits) { + uint64_t rdata = 0; + + rdata = *GPIO_DATA0 & (bits & 0xffffffff); + rdata |= (*GPIO_DATA1 & (bits >> 32)) << 32; + + return rdata; +} + inline void gpio_pad_pu_en(volatile uint64_t data) { *GPIO_PAD_PU_EN0 = (data & 0xffffffff); diff --git a/lib/include/gpio.h b/lib/include/gpio.h index 80dce7a62..bc473d04e 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -27,6 +27,7 @@ inline void gpio_pad_dir(volatile uint64_t data); inline void gpio_data(volatile uint64_t data); +inline uint64_t gpio_data_get(volatile uint64_t bits); inline void gpio_pad_pu_en(volatile uint64_t data); inline void gpio_data_sel(volatile uint64_t data); inline void gpio_data_pu_sel(volatile uint64_t data); From 2ae64e0802cbf9f4d95de89c4f67d71b18d93059 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 4 May 2010 17:14:31 -0400 Subject: [PATCH 348/471] added freescale-ncb board. --- board/Makefile.board | 2 +- board/freescale-ncb.h | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 board/freescale-ncb.h diff --git a/board/Makefile.board b/board/Makefile.board index fa5a45140..a5b2cb800 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -1,6 +1,6 @@ # -*- makefile -*- -BOARDS := redbee-dev redbee-r1 redbee-usb redbee-econotag quahogcon +BOARDS := redbee-dev redbee-r1 redbee-usb redbee-econotag quahogcon freescale-ncb OBJDIR := obj_$(BOARD)_board CFLAGS += -I$(OBJDIR) -I$(MC1322X)/board -DBOARD=$(BOARD) diff --git a/board/freescale-ncb.h b/board/freescale-ncb.h new file mode 100644 index 000000000..efa163b63 --- /dev/null +++ b/board/freescale-ncb.h @@ -0,0 +1,21 @@ +#ifndef BOARD_FREESCALE_NCB_H +#define BOARD_FREESCALE_NCB_H + +#define LED_RED 23 +#define LED_GREEN 24 +#define LED_BLUE 25 + +/* XTAL TUNE parameters */ +/* see http://devl.org/pipermail/mc1322x/2009-December/000162.html */ +/* for details about how to make this measurment */ + +/* Coarse tune: add 4pf */ +#define CTUNE_4PF 1 +/* Coarse tune: add 0-15 pf */ +#define CTUNE 8 +/* Fine tune: add FTUNE * 156fF (FTUNE is 4bits) */ +#define FTUNE 15 + +#include + +#endif From 39d2037487e4761817d98b2b7420ac79c5077748 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 6 May 2010 17:27:54 -0400 Subject: [PATCH 349/471] changed erase delay to 2 sec --- 1 sec isn't long enough to erase the entire flash. --- tools/ftditools/bbmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c index 6d2ad0d49..516eaed7f 100644 --- a/tools/ftditools/bbmc.c +++ b/tools/ftditools/bbmc.c @@ -408,7 +408,7 @@ void erase(struct ftdi_context *ftdic, const struct layout * l) printf("waiting for erase\n"); - sleep(1); + sleep(2); printf("setting VREF2 normal\n"); From 07d65a55c999edcb9514b265f88be3b9270fcb2a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 8 May 2010 12:55:32 -0400 Subject: [PATCH 350/471] now BSD license. --- COPYING | 314 ++++++-------------------------------------------------- CREDITS | 3 +- 2 files changed, 36 insertions(+), 281 deletions(-) diff --git a/COPYING b/COPYING index 5a965fbc5..bfa15e9ec 100644 --- a/COPYING +++ b/COPYING @@ -1,280 +1,34 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ diff --git a/CREDITS b/CREDITS index 18c817a93..24ededbbd 100644 --- a/CREDITS +++ b/CREDITS @@ -4,5 +4,6 @@ http://mc1322x.devl.org Mariano Alvira mar@devl.org Parts of the build system came from U-boot and Darrel Harmon's -"darrell's loader" for the AT91RM9200. +"darrell's loader" for the AT91RM9200. Other parts from the Contiki +OS. From 6195931bd471e6ace4bb467e67e777c87f80f7bc Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 8 May 2010 13:03:36 -0400 Subject: [PATCH 351/471] add attribution and license headers to source files. TODO item about start.S and printf.c --- COPYING | 1 + TODO | 8 ++++---- board/freescale-ncb.h | 35 +++++++++++++++++++++++++++++++++++ board/quahogcon.h | 35 +++++++++++++++++++++++++++++++++++ board/redbee-dev.h | 35 +++++++++++++++++++++++++++++++++++ board/redbee-econotag.h | 35 +++++++++++++++++++++++++++++++++++ board/redbee-r1.h | 35 +++++++++++++++++++++++++++++++++++ board/redbee-usb.h | 35 +++++++++++++++++++++++++++++++++++ board/std_conf.h | 35 +++++++++++++++++++++++++++++++++++ lib/gpio.c | 35 +++++++++++++++++++++++++++++++++++ lib/include/crm.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/gpio.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/isr.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/kbi.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/maca.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/mc1322x.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/nvm.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/packet.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/tmr.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/types.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/uart1.h | 35 +++++++++++++++++++++++++++++++++++ lib/include/utils.h | 35 +++++++++++++++++++++++++++++++++++ lib/maca.c | 35 +++++++++++++++++++++++++++++++++++ lib/nvm.c | 35 +++++++++++++++++++++++++++++++++++ lib/printf.c | 35 +++++++++++++++++++++++++++++++++++ lib/uart1.c | 35 +++++++++++++++++++++++++++++++++++ src/default_lowlevel.c | 35 +++++++++++++++++++++++++++++++++++ src/default_lowlevel.h | 35 +++++++++++++++++++++++++++++++++++ src/isr.c | 35 +++++++++++++++++++++++++++++++++++ tests/blink-allio.c | 35 +++++++++++++++++++++++++++++++++++ tests/blink-blue.c | 35 +++++++++++++++++++++++++++++++++++ tests/blink-green.c | 35 +++++++++++++++++++++++++++++++++++ tests/blink-red.c | 35 +++++++++++++++++++++++++++++++++++ tests/blink-white.c | 35 +++++++++++++++++++++++++++++++++++ tests/config.h | 35 +++++++++++++++++++++++++++++++++++ tests/flasher.c | 35 +++++++++++++++++++++++++++++++++++ tests/led.h | 35 +++++++++++++++++++++++++++++++++++ tests/nvm-read.c | 35 +++++++++++++++++++++++++++++++++++ tests/nvm-write.c | 35 +++++++++++++++++++++++++++++++++++ tests/per.c | 35 +++++++++++++++++++++++++++++++++++ tests/printf.c | 35 +++++++++++++++++++++++++++++++++++ tests/put.c | 35 +++++++++++++++++++++++++++++++++++ tests/put.h | 35 +++++++++++++++++++++++++++++++++++ tests/rftest-rx.c | 35 +++++++++++++++++++++++++++++++++++ tests/rftest-tx.c | 35 +++++++++++++++++++++++++++++++++++ tests/romimg.c | 35 +++++++++++++++++++++++++++++++++++ tests/sleep.c | 35 +++++++++++++++++++++++++++++++++++ tests/tests.c | 35 +++++++++++++++++++++++++++++++++++ tests/tests.h | 35 +++++++++++++++++++++++++++++++++++ tests/tmr-ints.c | 35 +++++++++++++++++++++++++++++++++++ tests/tmr.c | 35 +++++++++++++++++++++++++++++++++++ tests/uart1-loopback.c | 35 +++++++++++++++++++++++++++++++++++ tools/ftditools/bbmc.c | 35 +++++++++++++++++++++++++++++++++++ 53 files changed, 1790 insertions(+), 4 deletions(-) diff --git a/COPYING b/COPYING index bfa15e9ec..42a7c50d4 100644 --- a/COPYING +++ b/COPYING @@ -32,3 +32,4 @@ * * $Id$ */ + diff --git a/TODO b/TODO index 86e8aba4f..1512c2e19 100644 --- a/TODO +++ b/TODO @@ -1,16 +1,16 @@ +- fix license for printf.c (take from newlib instead of glibc) + +- fix license for start.S (find a BSD version) + - openocd flashing use run_algorithm to hook ROM NVM functions see flash/stm32x.c - add timestamp to received packets -- transmit callback in the isr - - add a way to set modes: tx_only, rx_only, txrx. (so you can be lazy and have blocks of code that don't need to handle rx packets) -- callback for each packet the gets transmitted - - beacon sync - CCA and ED. diff --git a/board/freescale-ncb.h b/board/freescale-ncb.h index efa163b63..f81f5e041 100644 --- a/board/freescale-ncb.h +++ b/board/freescale-ncb.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef BOARD_FREESCALE_NCB_H #define BOARD_FREESCALE_NCB_H diff --git a/board/quahogcon.h b/board/quahogcon.h index d3b8100c5..b3606ae62 100644 --- a/board/quahogcon.h +++ b/board/quahogcon.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef BOARD_QUAHOG10_H #define BOARD_QUAHOG10_H diff --git a/board/redbee-dev.h b/board/redbee-dev.h index 4dd761c0d..92d6b0ae5 100644 --- a/board/redbee-dev.h +++ b/board/redbee-dev.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef BOARD_REDBEE_DEV_H #define BOARD_REDBEE_DEV_H diff --git a/board/redbee-econotag.h b/board/redbee-econotag.h index 824eaade2..ff1340fc7 100644 --- a/board/redbee-econotag.h +++ b/board/redbee-econotag.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef BOARD_REDBEE_DEV_H #define BOARD_REDBEE_DEV_H diff --git a/board/redbee-r1.h b/board/redbee-r1.h index 698a02549..734d41d58 100644 --- a/board/redbee-r1.h +++ b/board/redbee-r1.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef BOARD_REDBEE_R1_H #define BOARD_REDBEE_R1_H diff --git a/board/redbee-usb.h b/board/redbee-usb.h index 74448333f..5ce21d43b 100644 --- a/board/redbee-usb.h +++ b/board/redbee-usb.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef BOARD_REDBEE_DEV_H #define BOARD_REDBEE_DEV_H diff --git a/board/std_conf.h b/board/std_conf.h index 2559a6063..089986cf8 100644 --- a/board/std_conf.h +++ b/board/std_conf.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef STDCONF_H #define STDCONF_H diff --git a/lib/gpio.c b/lib/gpio.c index de253aae2..03849c0ee 100644 --- a/lib/gpio.c +++ b/lib/gpio.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/lib/include/crm.h b/lib/include/crm.h index f9ae86396..5891fd99e 100644 --- a/lib/include/crm.h +++ b/lib/include/crm.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef CRM_H #define CRM_H diff --git a/lib/include/gpio.h b/lib/include/gpio.h index bc473d04e..91df35126 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef GPIO_H #define GPIO_H diff --git a/lib/include/isr.h b/lib/include/isr.h index 554410b96..8617f7537 100644 --- a/lib/include/isr.h +++ b/lib/include/isr.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef ISR_H #define ISR_H diff --git a/lib/include/kbi.h b/lib/include/kbi.h index 85b35c724..f84e40722 100644 --- a/lib/include/kbi.h +++ b/lib/include/kbi.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef KBI_H #define KBI_H diff --git a/lib/include/maca.h b/lib/include/maca.h index 6afd14103..f3a45c9c5 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef _MACA_H_ #define _MACA_H_ diff --git a/lib/include/mc1322x.h b/lib/include/mc1322x.h index 61ed3c71a..bf61e52d5 100644 --- a/lib/include/mc1322x.h +++ b/lib/include/mc1322x.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef MC1322X_H #define MC1322X_H diff --git a/lib/include/nvm.h b/lib/include/nvm.h index 15133a2f3..05ad7a670 100644 --- a/lib/include/nvm.h +++ b/lib/include/nvm.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef NVM_H #define NVM_H diff --git a/lib/include/packet.h b/lib/include/packet.h index 15f966c12..9fca2a379 100644 --- a/lib/include/packet.h +++ b/lib/include/packet.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef PACKET_H #define PACKET_H diff --git a/lib/include/tmr.h b/lib/include/tmr.h index 69cbb44b4..4b0824686 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include "utils.h" /* Timer registers are all 16-bit wide with 16-bit access only */ diff --git a/lib/include/types.h b/lib/include/types.h index 9c4eb33d5..7e66a045b 100644 --- a/lib/include/types.h +++ b/lib/include/types.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef _TYPES_H #define _TYPES_H diff --git a/lib/include/uart1.h b/lib/include/uart1.h index b45866a71..0b0ef08e8 100644 --- a/lib/include/uart1.h +++ b/lib/include/uart1.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef UART1_H #define UART1_H diff --git a/lib/include/utils.h b/lib/include/utils.h index ca7787023..10e03eba7 100644 --- a/lib/include/utils.h +++ b/lib/include/utils.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef UTILS_H #define UTILS_H diff --git a/lib/maca.c b/lib/maca.c index 4151ed061..bd4c65cd3 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/lib/nvm.c b/lib/nvm.c index 6a9d14211..00d6e0d47 100644 --- a/lib/nvm.c +++ b/lib/nvm.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include "nvm.h" nvmErr_t (*nvm_detect) diff --git a/lib/printf.c b/lib/printf.c index 46cae36f2..21431355f 100644 --- a/lib/printf.c +++ b/lib/printf.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + /** * \file printf-stdarg.c * diff --git a/lib/uart1.c b/lib/uart1.c index 8d650784c..33e511883 100644 --- a/lib/uart1.c +++ b/lib/uart1.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/src/default_lowlevel.c b/src/default_lowlevel.c index 7c1ef4dc7..5cabde2d7 100644 --- a/src/default_lowlevel.c +++ b/src/default_lowlevel.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/src/default_lowlevel.h b/src/default_lowlevel.h index fcab1cfcb..7b497f334 100644 --- a/src/default_lowlevel.h +++ b/src/default_lowlevel.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef LOWLEVEL_H #define LOWLEVEL_H diff --git a/src/isr.c b/src/isr.c index 283eb985f..b69cdf6cf 100644 --- a/src/isr.c +++ b/src/isr.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/blink-allio.c b/tests/blink-allio.c index cb1df9a1b..ce2c1c0b3 100644 --- a/tests/blink-allio.c +++ b/tests/blink-allio.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/blink-blue.c b/tests/blink-blue.c index 7bb490cf1..ea12eb208 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/blink-green.c b/tests/blink-green.c index 974234977..489f68417 100644 --- a/tests/blink-green.c +++ b/tests/blink-green.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/blink-red.c b/tests/blink-red.c index a6c355826..330de174c 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/blink-white.c b/tests/blink-white.c index 2f6db5595..36fb5cdc6 100644 --- a/tests/blink-white.c +++ b/tests/blink-white.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/config.h b/tests/config.h index 5898d12eb..be278d478 100644 --- a/tests/config.h +++ b/tests/config.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef CONFIG_H #define CONFIG_H diff --git a/tests/flasher.c b/tests/flasher.c index 7deabafb1..1f6c1dfca 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/led.h b/tests/led.h index e6e93ed89..c08e0b57c 100644 --- a/tests/led.h +++ b/tests/led.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef LED_H #define LED_H diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 40939aac4..9e90a7d3b 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/nvm-write.c b/tests/nvm-write.c index 260580417..c868ff0bf 100644 --- a/tests/nvm-write.c +++ b/tests/nvm-write.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/per.c b/tests/per.c index b5ff66e88..a298d220a 100644 --- a/tests/per.c +++ b/tests/per.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include #include diff --git a/tests/printf.c b/tests/printf.c index d09af1d41..9a914daf6 100644 --- a/tests/printf.c +++ b/tests/printf.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/put.c b/tests/put.c index 15dfec507..4b1b36e49 100644 --- a/tests/put.c +++ b/tests/put.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/put.h b/tests/put.h index f8826f622..776daaaa0 100644 --- a/tests/put.h +++ b/tests/put.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef PUT_H #define PUT_H diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index cde7addbe..86d42c0f1 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include #include diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index f07ae97aa..d4d77a258 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include #include diff --git a/tests/romimg.c b/tests/romimg.c index 8e651ed34..ab9e7d21f 100644 --- a/tests/romimg.c +++ b/tests/romimg.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/sleep.c b/tests/sleep.c index 03444e2c7..546c993d9 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/tests.c b/tests/tests.c index ba6765693..259ece723 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/tests.h b/tests/tests.h index ad64b4578..2cb905b65 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #ifndef TESTS_H #define TESTS_H diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index cfe78b767..4b6a4bdd6 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/tmr.c b/tests/tmr.c index b8ce6aca4..08888d191 100644 --- a/tests/tmr.c +++ b/tests/tmr.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index e8d63b0ef..697b2e79f 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + #include #include diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c index 516eaed7f..af58bcd46 100644 --- a/tools/ftditools/bbmc.c +++ b/tools/ftditools/bbmc.c @@ -1,3 +1,38 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + /* control reset and VREF2 lines */ #include From 081c8ce098328f56019776b2c81ae9bde50d4b01 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 11 May 2010 15:53:14 -0400 Subject: [PATCH 352/471] decreased recv and tx timeouts. --- lib/maca.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index bd4c65cd3..80cedeca8 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -65,11 +65,11 @@ #define CLK_PER_BYTE 8 #ifndef RECV_SOFTIMEOUT -#define RECV_SOFTIMEOUT (32*128*CLK_PER_BYTE) +#define RECV_SOFTIMEOUT (2*128*CLK_PER_BYTE) #endif #ifndef CPL_TIMEOUT -#define CPL_TIMEOUT (32*128*CLK_PER_BYTE) +#define CPL_TIMEOUT (2*128*CLK_PER_BYTE) #endif #define reg(x) (*(volatile uint32_t *)(x)) From e0da07ae952cb28d1a4b6a1be32a07711a8f8dd7 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 11 May 2010 17:59:51 -0400 Subject: [PATCH 353/471] don't need to reinit maca when the clock stops, just call resume sync instead. --- lib/maca.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 80cedeca8..a7f68bb51 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -122,13 +122,7 @@ void check_maca(void) { if(*MACA_CLK == last_time) { /* clock isn't running */ - /* reinit maca */ - reset_maca(); - radio_init(); - flyback_init(); - init_phy(); - *MACA_CONTROL = (1 << PRM) | (NO_CCA << MODE); - enable_irq(MACA); + ResumeMACASync(); maca_isr(); } else { if((last_time > (*MACA_SFTCLK + RECV_SOFTIMEOUT)) && From 1460eac9cdcf5af570a8e50e259cdb509d8d3769 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 12 May 2010 16:40:44 -0400 Subject: [PATCH 354/471] move safe_irq_disable and irq_restore to isr.h --- lib/include/isr.h | 2 ++ lib/maca.c | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/include/isr.h b/lib/include/isr.h index 8617f7537..06825cc7b 100644 --- a/lib/include/isr.h +++ b/lib/include/isr.h @@ -71,6 +71,8 @@ enum interrupt_nums { #define enable_irq(irq) (*INTENNUM = INT_NUM_##irq) #define disable_irq(irq) (*INTDISNUM = INT_NUM_##irq) +#define safe_irq_disable(x) volatile uint32_t saved_irq; saved_irq = *INTENABLE; disable_irq(x) +#define irq_restore() *INTENABLE = saved_irq extern void tmr0_isr(void) __attribute__((weak)); extern void tmr1_isr(void) __attribute__((weak)); diff --git a/lib/maca.c b/lib/maca.c index a7f68bb51..5a67b2476 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -98,9 +98,6 @@ enum posts { }; static volatile uint8_t last_post = NO_POST; -#define safe_irq_disable(x) volatile uint32_t saved_irq; saved_irq = *INTENABLE; disable_irq(x) -#define irq_restore() *INTENABLE = saved_irq - volatile uint8_t fcs_mode = USE_FCS; /* call periodically to */ From e278ec024277039ed6566ba4932283edeec4c823 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 12 May 2010 16:41:24 -0400 Subject: [PATCH 355/471] fixup the uart tx isr. --- lib/uart1.c | 27 ++++++++++++++++----------- src/default_lowlevel.c | 10 +++++++--- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/uart1.c b/lib/uart1.c index 33e511883..672c795e4 100644 --- a/lib/uart1.c +++ b/lib/uart1.c @@ -36,7 +36,7 @@ #include #include -volatile char u1_tx_buf[1024]; +volatile char u1_tx_buf[64]; volatile uint32_t u1_head, u1_tail; void uart1_isr(void) { @@ -50,20 +50,25 @@ void uart1_isr(void) { if (u1_tail >= sizeof(u1_tx_buf)) u1_tail = 0; } - enable_irq(UART1); } void uart1_putc(char c) { - uint32_t h = u1_head; - h = u1_head + 1; - if (h >= sizeof(u1_tx_buf)) - h = 0; - if (h == u1_tail) /* drop chars when no room */ - return; - u1_tx_buf[u1_head] = c; - u1_head = h; + /* disable UART1 since */ + /* UART1 isr modifies u1_head and u1_tail */ + disable_irq(UART1); - uart1_isr(); + if( (u1_head == u1_tail) && + (*UART1_UTXCON != 0)) { + *UART1_UDATA = c; + } else { + u1_tx_buf[u1_head] = c; + u1_head += 1; + if (u1_head >= sizeof(u1_tx_buf)) + u1_head = 0; + if (u1_head == u1_tail) /* drop chars when no room */ + return; + enable_irq(UART1); + } } uint8_t uart1_getc(void) { diff --git a/src/default_lowlevel.c b/src/default_lowlevel.c index 5cabde2d7..dcf0d8b64 100644 --- a/src/default_lowlevel.c +++ b/src/default_lowlevel.c @@ -59,10 +59,14 @@ void uart1_init(uint16_t inc, uint16_t mod, uint8_t samp) { if(samp == UCON_SAMP_16X) set_bit(*UART1_UCON,UCON_SAMP); *GPIO_FUNC_SEL0 = ( (0x01 << (14*2)) | (0x01 << (15*2)) ); /* set GPIO15-14 to UART (UART1 TX and RX)*/ - - /* interrupt when 28 bytes are free */ - *UART1_UTXCON = 28; + + /* interrupt when there are this number or more bytes free in the TX buffer*/ + *UART1_UTXCON = 16; u1_head = 0; u1_tail = 0; + + /* tx and rx interrupts are enabled in the UART by default */ + /* see status register bits 13 and 14 */ + /* enable UART1 interrupts in the interrupt controller */ enable_irq(UART1); } From 7a462268c89399eadcf6c449667ccc8990729fdd Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 13 May 2010 10:52:26 -0400 Subject: [PATCH 356/471] increased the receive length --- this reduces the chance of missing a packet which managing the radio. --- lib/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index 5a67b2476..1aa4f663c 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -65,7 +65,7 @@ #define CLK_PER_BYTE 8 #ifndef RECV_SOFTIMEOUT -#define RECV_SOFTIMEOUT (2*128*CLK_PER_BYTE) +#define RECV_SOFTIMEOUT (32*128*CLK_PER_BYTE) #endif #ifndef CPL_TIMEOUT From 2fcfe11096931b504204f2c70bdef377ad33638c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 21 May 2010 12:00:08 -0400 Subject: [PATCH 357/471] add debug messages to check_maca --- lib/maca.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/maca.c b/lib/maca.c index 1aa4f663c..acb8d9409 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -118,12 +118,14 @@ void check_maca(void) { for(i=0; (i < 1024) && (*MACA_CLK == last_time); i++) { continue; } if(*MACA_CLK == last_time) { + PRINTF("check maca: maca_clk stopped, restarting\n"); /* clock isn't running */ ResumeMACASync(); maca_isr(); } else { if((last_time > (*MACA_SFTCLK + RECV_SOFTIMEOUT)) && (last_time > (*MACA_CPLCLK + CPL_TIMEOUT))) { + PRINTF("check maca: complete clocks expired --- forcing isr\n"); /* all complete clocks have expired */ /* check that maca entry is changing */ /* if not, do call the isr to restart the cycle */ @@ -135,6 +137,13 @@ void check_maca(void) { last_entry = maca_entry; last_time = *MACA_CLK; + +#if DEBUG_MACA + if(count_packets() != NUM_PACKETS) { + PRINTF("check maca: count_packets %d\n", count_packets()); + } +#endif /* DEBUG_MACA */ + } void maca_init(void) { @@ -189,6 +198,7 @@ void Print_Packets(char *s) { } inline void bad_packet_bounds(void) { + PRINTF("bad packet bounds! Halting.\n"); while(1) { continue; } } From 64081c2fb8c839b5ade7f5f6d776ff1bc8731a46 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 21 May 2010 12:38:19 -0400 Subject: [PATCH 358/471] small improvment to count_packets --- lib/maca.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index acb8d9409..05eb21bd8 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -74,6 +74,8 @@ #define reg(x) (*(volatile uint32_t *)(x)) +int count_packets(void); + static volatile packet_t packet_pool[NUM_PACKETS]; static volatile packet_t *free_head, *rx_end, *tx_end, *dma_tx, *dma_rx; @@ -223,8 +225,8 @@ int count_packets(void) { } total = free + rx + tx; - if(dma_rx) { total++; } - if(dma_tx) { total++; } + if(dma_rx && (dma_rx != rx_head)) { total++; } + if(dma_tx && (dma_tx != tx_head)) { total++; } return total; } From d73467dc594dab3efa2036f2c934b217b14b962d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 22 May 2010 15:44:38 -0400 Subject: [PATCH 359/471] add INTFRC --- lib/include/isr.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/include/isr.h b/lib/include/isr.h index 06825cc7b..daee2d38e 100644 --- a/lib/include/isr.h +++ b/lib/include/isr.h @@ -42,6 +42,7 @@ #define INTDISNUM_OFF (0xC) #define INTENABLE_OFF (0x10) #define INTSRC_OFF (0x30) +#define INTFRC_OFF (0x34) #define NIPEND_OFF (0x38) #define INTCNTL ((volatile uint32_t *) (INTBASE + INTCNTL_OFF)) @@ -49,6 +50,7 @@ #define INTDISNUM ((volatile uint32_t *) (INTBASE + INTDISNUM_OFF)) #define INTENABLE ((volatile uint32_t *) (INTBASE + INTENABLE_OFF)) #define INTSRC ((volatile uint32_t *) (INTBASE + INTSRC_OFF)) +#define INTFRC ((volatile uint32_t *) (INTBASE + INTFRC_OFF)) #define NIPEND ((volatile uint32_t *) (INTBASE + NIPEND_OFF)) enum interrupt_nums { From 50102c251666a5b2024aca266a479dbb7eb21445 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 22 May 2010 15:45:00 -0400 Subject: [PATCH 360/471] clear forced interrupts after the have been serviced. --- src/isr.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/isr.c b/src/isr.c index b69cdf6cf..a4bf6658f 100644 --- a/src/isr.c +++ b/src/isr.c @@ -67,5 +67,8 @@ void irq(void) if(kbi_evnt(6) && (kbi6_isr != 0)) { kbi6_isr(); } if(kbi_evnt(7) && (kbi7_isr != 0)) { kbi7_isr(); } } + + *INTFRC = 0; /* stop forcing interrupts */ + } } From 71cd2c2ead316583658f04c8ef5aef8ad3248d38 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 22 May 2010 15:45:52 -0400 Subject: [PATCH 361/471] add PACKET_STATS: extra flags to packets for debugging. --- lib/include/packet.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/include/packet.h b/lib/include/packet.h index 9fca2a379..21d23953e 100644 --- a/lib/include/packet.h +++ b/lib/include/packet.h @@ -41,6 +41,8 @@ #define MAX_PAYLOAD_SIZE 125 #endif +#define PACKET_STATS 0 + struct packet { uint8_t length; /* does not include FCS checksum */ volatile struct packet * left; @@ -49,6 +51,12 @@ struct packet { /* On TX this should be 0 */ /* On RX this should be 1 since the maca puts the length as the first byte*/ uint8_t offset; + #if PACKET_STATS + uint8_t seen; + uint8_t post_tx; + uint8_t get_free; + uint8_t rxd; + #endif uint8_t data[MAX_PAYLOAD_SIZE+2+1]; /* +2 for FCS; + 1 since maca returns the length as the first byte */ }; typedef struct packet packet_t; From 60f079c1683113dbb90eb5bcc7a786cb161e9a0a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 23 May 2010 12:51:03 -0400 Subject: [PATCH 362/471] add additional debugging to check_maca --- lib/maca.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 05eb21bd8..37daf406c 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -75,6 +75,7 @@ #define reg(x) (*(volatile uint32_t *)(x)) int count_packets(void); +void Print_Packets(char *s); static volatile packet_t packet_pool[NUM_PACKETS]; static volatile packet_t *free_head, *rx_end, *tx_end, *dma_tx, *dma_rx; @@ -113,6 +114,10 @@ void check_maca(void) { static volatile uint32_t last_time; static volatile uint32_t last_entry; volatile uint32_t i; +#if DEBUG_MACA + volatile uint32_t count; +#endif + /* if *MACA_CLK == last_time */ /* try waiting for one clock period */ @@ -141,11 +146,11 @@ void check_maca(void) { last_time = *MACA_CLK; #if DEBUG_MACA - if(count_packets() != NUM_PACKETS) { - PRINTF("check maca: count_packets %d\n", count_packets()); + if((count = count_packets()) != NUM_PACKETS) { + PRINTF("check maca: count_packets %d\n", count); + Print_Packets("check_maca"); } #endif /* DEBUG_MACA */ - } void maca_init(void) { @@ -155,6 +160,10 @@ void maca_init(void) { init_phy(); free_head = 0; tx_head = 0; rx_head = 0; rx_end = 0; tx_end = 0; dma_tx = 0; dma_rx = 0; free_all_packets(); + + #if DEBUG_MACA + Print_Packets("maca_init"); + #endif /* initial radio command */ /* nop, promiscuous, no cca */ @@ -168,12 +177,11 @@ void maca_init(void) { #define print_packets(x) Print_Packets(x) void Print_Packets(char *s) { volatile packet_t *p; - int i = 0; + printf("packet pool after %s:\n\r",s); p = free_head; printf("free_head: 0x%lx ", (uint32_t) free_head); while(p != 0) { - i++; p = p->left; printf("->0x%lx", (uint32_t) p); } @@ -182,7 +190,6 @@ void Print_Packets(char *s) { p = tx_head; printf("tx_head: 0x%lx ", (uint32_t) tx_head); while(p != 0) { - i++; p = p->left; printf("->0x%lx", (uint32_t) p); } @@ -191,12 +198,14 @@ void Print_Packets(char *s) { p = rx_head; printf("rx_head: 0x%lx ", (uint32_t) rx_head); while(p != 0) { - i++; p = p->left; printf("->0x%lx", (uint32_t) p); } printf("\n\r"); - printf("found %d packets\n\r",i); + + printf("dma_rx: 0x%lx\n", (uint32_t) dma_rx); + printf("dma_tx: 0x%lx\n", (uint32_t) dma_tx); + } inline void bad_packet_bounds(void) { From 4a9f086cebf7c78397cdab222e0ba181d101846e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 23 May 2010 12:57:40 -0400 Subject: [PATCH 363/471] force interrupts instead of calling maca_isr --- lib/maca.c | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 37daf406c..871e6d4a7 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -111,6 +111,7 @@ volatile uint8_t fcs_mode = USE_FCS; /* it calls redoes the maca intialization but _DOES NOT_ free all packets */ void check_maca(void) { + safe_irq_disable(MACA); static volatile uint32_t last_time; static volatile uint32_t last_entry; volatile uint32_t i; @@ -128,7 +129,7 @@ void check_maca(void) { PRINTF("check maca: maca_clk stopped, restarting\n"); /* clock isn't running */ ResumeMACASync(); - maca_isr(); + *INTFRC = (1< (*MACA_SFTCLK + RECV_SOFTIMEOUT)) && (last_time > (*MACA_CPLCLK + CPL_TIMEOUT))) { @@ -137,7 +138,7 @@ void check_maca(void) { /* check that maca entry is changing */ /* if not, do call the isr to restart the cycle */ if(last_entry == maca_entry) { - maca_isr(); + *INTFRC = (1< Date: Sun, 23 May 2010 13:00:21 -0400 Subject: [PATCH 364/471] use PACKET_STATS for additional debugging --- lib/maca.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 871e6d4a7..e19ae81f7 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -150,6 +150,16 @@ void check_maca(void) { if((count = count_packets()) != NUM_PACKETS) { PRINTF("check maca: count_packets %d\n", count); Print_Packets("check_maca"); +#if PACKET_STATS + for(i=0; iseen == 0) { tx++; } + pk->seen++; pk = pk->left; } pk = rx_head; rx = 0; while( pk != 0 ) { - rx++; + if(pk->seen == 0) { rx++; } + pk->seen++; pk = pk->left; } pk = free_head; free = 0; while( pk != 0 ) { - free++; + if(pk->seen == 0) { free++; } + pk->seen++; pk = pk->left; } total = free + rx + tx; - if(dma_rx && (dma_rx != rx_head)) { total++; } - if(dma_tx && (dma_tx != tx_head)) { total++; } + if(dma_rx && (dma_rx->seen == 0)) { dma_rx->seen++; total++; } + if(dma_tx && (dma_tx->seen == 0)) { dma_tx->seen++; total++; } +#endif /* PACKET_STATS */ return total; } @@ -270,6 +292,13 @@ void free_packet(volatile packet_t *p) { p->length = 0; p->offset = 0; p->left = free_head; p->right = 0; +#if PACKET_STATS + p->seen = 0; + p->post_tx = 0; + p->get_free = 0; + p->rxd = 0; +#endif + free_head = p; BOUND_CHECK(free_head); @@ -295,6 +324,10 @@ volatile packet_t* get_free_packet(void) { BOUND_CHECK(free_head); +#if PACKET_STATS + p->get_free++; +#endif + // print_packets("get_free_packet"); irq_restore(); if(bit_is_set(*NIPEND, INT_NUM_MACA)) { *INTFRC = (1 << INT_NUM_MACA); } @@ -351,6 +384,10 @@ volatile packet_t* rx_packet(void) { rx_head->right = 0; } +#if PACKET_STATS + p->rxd++; +#endif + // print_packets("rx_packet"); irq_restore(); if(bit_is_set(*NIPEND, INT_NUM_MACA)) { *INTFRC = (1 << INT_NUM_MACA); } @@ -364,6 +401,9 @@ void post_tx(void) { disable_irq(MACA); last_post = TX_POST; dma_tx = tx_head; +#if PACKET_STATS + dma_tx->post_tx++; +#endif *MACA_TXLEN = (uint32_t)((dma_tx->length) + 2); *MACA_DMATX = (uint32_t)&(dma_tx->data[ 0 + dma_tx->offset]); if(dma_rx == 0) { From 6aab3625a288799d81342db6c4943212bd58aafe Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 1 Jun 2010 15:06:55 -0400 Subject: [PATCH 365/471] convert to UNIX line endings. --- lib/printf.c | 792 +++++++++++++++++++++++++-------------------------- 1 file changed, 396 insertions(+), 396 deletions(-) diff --git a/lib/printf.c b/lib/printf.c index 21431355f..84eedb396 100644 --- a/lib/printf.c +++ b/lib/printf.c @@ -33,399 +33,399 @@ * $Id$ */ -/** - * \file printf-stdarg.c - * - * \brief sprintf functions to replace newlib for AVR32 UC3. - * - * \author $Author: umanzoli $ - * - * Created on : 17-mar-2009 - * - * $Id$ - */ - -/* - * Copyright 2001, 2002 Georges Menie (www.menie.org) - * stdarg version contributed by Christian Ettinger - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -#include -#include -#include - -#include -#include - -#define __putc(x) uart1_putc(x) - -/** - * Structure to hold data to be passed to print function with format. - * Aka print context. - */ -struct __print_ctx_t -{ - //! pointer to next char to be filled. - char* _ptr; - //! maximum length of the buffer. - size_t _max_len; -}; -typedef struct __print_ctx_t _print_ctx_t; - -/** - * Pad string to right - */ -#define _PRINTFMT_PAD_RIGHT 1 - -/** - * Pad the number with zeroes - */ -#define _PRINTFMT_PAD_ZERO 2 - -/** - * The following should be enough for 32 bit int - */ -#define _PRINTFMT_INT_BUF_LEN 12 - -/** - * Print a character to stdout (if string is null) - * otherwise, put the character at the end of the provided string. - */ -static void __print_char( _print_ctx_t* ctx, char c ) -{ - if( ctx ) { - if( c == '\r' || c == '\n' ) { - if( ctx->_max_len > 1 ) { - *(ctx->_ptr)='\r'; - ctx->_max_len--; - ctx->_ptr++; - *(ctx->_ptr)='\n'; - ctx->_max_len--; - ctx->_ptr++; - } else { - *(ctx->_ptr)='\n'; - ctx->_max_len--; - ctx->_ptr++; - } - } else { - if( ctx->_max_len ) { - *(ctx->_ptr)=c; - ctx->_max_len--; - ctx->_ptr++; - } - } - } else { - __putc( (uint8_t)c ); - } -} - -/** - * Print a string to a given string. - */ -static int __print_str( _print_ctx_t* ctx, - const char *string, - int width, - int pad, - int print_limit, - bool is_number ) -{ - int pc = 0; - int padchar = ' '; - int i, len; - - if( width > 0 ) { - register int len = 0; - register const char *ptr; - for( ptr = string; *ptr; ++ptr ) - ++len; - if( len >= width ) - width = 0; - else - width -= len; - if( pad & _PRINTFMT_PAD_ZERO ) - padchar = '0'; - } - if( !( pad & _PRINTFMT_PAD_RIGHT ) ) { - for( ; width > 0; --width ) { - __print_char( ctx, padchar ); - ++pc; - } - } - - // The string to print is not the result of a number conversion to ascii. - if( false == is_number ) { - // For a string, printlimit is the max number of characters to display. - for( ; print_limit && *string; ++string, --print_limit ) { - __print_char( ctx, *string ); - ++pc; - } - } - - // The string to print represents an integer number. - if( true == is_number ) { - // In this case, printlimit is the min number of digits to print. - - // If the length of the number to print is less than the min nb of i - // digits to display, we add 0 before printing the number. - len = strlen( string ); - if( len < print_limit ) { - i = print_limit - len; - for( ; i; i-- ) { - __print_char( ctx, '0' ); - ++pc; - } - } - } - - /* - * Else: The string to print is not the result of a number conversion to ascii. - * For a string, printlimit is the max number of characters to display. - */ - for( ; print_limit && *string; ++string, --print_limit ) { - __print_char( ctx, *string ); - ++pc; - } - - for( ; width > 0; --width ) { - __print_char( ctx, padchar ); - ++pc; - } - - return pc; -} - -/** - * Print a number to the given string, with the given base. - */ -static int __print_int( _print_ctx_t* ctx, - int i, - int b, - int sg, - int width, - int pad, - int letbase, - int print_limit ) -{ - char print_buf[_PRINTFMT_INT_BUF_LEN]; - register char *s; - register int t, neg = 0, pc = 0; - register unsigned int u = i; - - if( i == 0 ) { - print_buf[0] = '0'; - print_buf[1] = '\0'; - return __print_str( ctx, print_buf, width, pad, print_limit, true ); - } - - if( sg && b == 10 && i < 0 ) { - neg = 1; - u = -i; - } - - s = print_buf + _PRINTFMT_INT_BUF_LEN - 1; - *s = '\0'; - - while( u ) { - t = u % b; - if( t >= 10 ) - t += letbase - '0' - 10; - *--s = t + '0'; - u /= b; - } - - if( neg ) { - if( width && ( pad & _PRINTFMT_PAD_ZERO ) ) { - __print_char( ctx, '-' ); - ++pc; - --width; - } else { - *--s = '-'; - } - } - - return pc + __print_str( ctx, s, width, pad, print_limit, true ); -} -/* -#if __GNUC__ -int fprintf( __FILE *stream, const char *format, ... ) -{ - return 0; -} -#endif -*/ - -/** - * Print the given arguments, with given format onto string out. - */ -static int __print_fmt( _print_ctx_t* ctx, const char *format, va_list args ) -{ - int width; - int pad; - int print_limit; - int pc = 0; - char scr[2]; - - for( ; *format != 0; ++format ) { - if( *format == '%' ) { - ++format; - width = pad = print_limit = 0; - - if( *format == '\0' ) { - break; - } - - if( *format == '%' ) { - goto out; - } - - if( *format == '-' ) { - ++format; - pad = _PRINTFMT_PAD_RIGHT; - } - - while( *format == '0' ) { - ++format; - pad |= _PRINTFMT_PAD_ZERO; - } - - for( ; *format >= '0' && *format <= '9'; ++format ) { - width *= 10; - width += *format - '0'; - } - - if( *format == '.' ) { - ++format; - for( ; *format >= '0' && *format <= '9'; ++format ) { - print_limit *= 10; - print_limit += *format - '0'; - } - } - - if( 0 == print_limit ) { - print_limit--; - } - - if( *format == 'l' ) { - ++format; - } - - if( *format == 's' ) { - register char *s = (char *) va_arg( args, int ); - pc += __print_str( ctx, - s ? s : "(null)", - width, - pad, - print_limit, - false ); - continue; - } - - if( *format == 'd' ) { - pc += __print_int( ctx, va_arg( args, int ), 10, 1, width, pad, 'a', print_limit ); - continue; - } - - if( ( *format == 'x' ) || ( *format == 'p' ) ) { - pc += __print_int( ctx, va_arg( args, int ), 16, 0, width, pad, 'a', print_limit ); - continue; - } - - if( *format == 'X' ) { - pc += __print_int( ctx, va_arg( args, int ), 16, 0, width, pad, 'A', print_limit ); - continue; - } - - if( *format == 'u' ) { - pc += __print_int( ctx, va_arg( args, int ), 10, 0, width, pad, 'a', print_limit ); - continue; - } - - if( *format == 'c' ) { - // char are converted to int then pushed on the stack - scr[0] = (char) va_arg( args, int ); - scr[1] = '\0'; - pc += __print_str( ctx, scr, width, pad, print_limit, false ); - continue; - } - } else { -out: - __print_char( ctx, *format ); - ++pc; - } - } - - if( ctx && ctx->_max_len ) { - *(ctx->_ptr) = '\0'; - } - - return pc; -} - -/* -int sprintf( char *out, const char *format, ... ) -{ - int retval = 0; - _print_ctx_t ctx; - va_list args; - - ctx._ptr = out; - ctx._max_len = BLOCK_MEM_SIZE; - - va_start( args, format ); - retval = __print_fmt( &ctx, format, args ); - va_end( args ); - - return retval; -} -*/ - -int printf( const char *format, ... ) -{ - int retval = 0; -// memory_t* buf; - va_list args; - - /* - buf = memory_alloc( 10 ); - - if( buf ) { - _print_ctx_t ctx; - ctx._ptr = (char*)buf->_data; - ctx._max_len = BLOCK_MEM_SIZE; - - va_start( args, format ); - retval = __print_fmt( &ctx, format, args ); - va_end( args ); - - buf->_len = strlen( (const char*)buf->_data ); - -// LCD_WriteString( ll, buf ); - ll++; - ll &= 0x03; - if( uart_task_send( buf ) == false ) { - memory_free( buf ); - } - } - */ - - va_start( args, format ); - retval = __print_fmt( NULL, format, args ); - va_end( args ); - - return retval; -} +/** + * \file printf-stdarg.c + * + * \brief sprintf functions to replace newlib for AVR32 UC3. + * + * \author $Author: umanzoli $ + * + * Created on : 17-mar-2009 + * + * $Id$ + */ + +/* + * Copyright 2001, 2002 Georges Menie (www.menie.org) + * stdarg version contributed by Christian Ettinger + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#include +#include +#include + +#include +#include + +#define __putc(x) uart1_putc(x) + +/** + * Structure to hold data to be passed to print function with format. + * Aka print context. + */ +struct __print_ctx_t +{ + //! pointer to next char to be filled. + char* _ptr; + //! maximum length of the buffer. + size_t _max_len; +}; +typedef struct __print_ctx_t _print_ctx_t; + +/** + * Pad string to right + */ +#define _PRINTFMT_PAD_RIGHT 1 + +/** + * Pad the number with zeroes + */ +#define _PRINTFMT_PAD_ZERO 2 + +/** + * The following should be enough for 32 bit int + */ +#define _PRINTFMT_INT_BUF_LEN 12 + +/** + * Print a character to stdout (if string is null) + * otherwise, put the character at the end of the provided string. + */ +static void __print_char( _print_ctx_t* ctx, char c ) +{ + if( ctx ) { + if( c == '\r' || c == '\n' ) { + if( ctx->_max_len > 1 ) { + *(ctx->_ptr)='\r'; + ctx->_max_len--; + ctx->_ptr++; + *(ctx->_ptr)='\n'; + ctx->_max_len--; + ctx->_ptr++; + } else { + *(ctx->_ptr)='\n'; + ctx->_max_len--; + ctx->_ptr++; + } + } else { + if( ctx->_max_len ) { + *(ctx->_ptr)=c; + ctx->_max_len--; + ctx->_ptr++; + } + } + } else { + __putc( (uint8_t)c ); + } +} + +/** + * Print a string to a given string. + */ +static int __print_str( _print_ctx_t* ctx, + const char *string, + int width, + int pad, + int print_limit, + bool is_number ) +{ + int pc = 0; + int padchar = ' '; + int i, len; + + if( width > 0 ) { + register int len = 0; + register const char *ptr; + for( ptr = string; *ptr; ++ptr ) + ++len; + if( len >= width ) + width = 0; + else + width -= len; + if( pad & _PRINTFMT_PAD_ZERO ) + padchar = '0'; + } + if( !( pad & _PRINTFMT_PAD_RIGHT ) ) { + for( ; width > 0; --width ) { + __print_char( ctx, padchar ); + ++pc; + } + } + + // The string to print is not the result of a number conversion to ascii. + if( false == is_number ) { + // For a string, printlimit is the max number of characters to display. + for( ; print_limit && *string; ++string, --print_limit ) { + __print_char( ctx, *string ); + ++pc; + } + } + + // The string to print represents an integer number. + if( true == is_number ) { + // In this case, printlimit is the min number of digits to print. + + // If the length of the number to print is less than the min nb of i + // digits to display, we add 0 before printing the number. + len = strlen( string ); + if( len < print_limit ) { + i = print_limit - len; + for( ; i; i-- ) { + __print_char( ctx, '0' ); + ++pc; + } + } + } + + /* + * Else: The string to print is not the result of a number conversion to ascii. + * For a string, printlimit is the max number of characters to display. + */ + for( ; print_limit && *string; ++string, --print_limit ) { + __print_char( ctx, *string ); + ++pc; + } + + for( ; width > 0; --width ) { + __print_char( ctx, padchar ); + ++pc; + } + + return pc; +} + +/** + * Print a number to the given string, with the given base. + */ +static int __print_int( _print_ctx_t* ctx, + int i, + int b, + int sg, + int width, + int pad, + int letbase, + int print_limit ) +{ + char print_buf[_PRINTFMT_INT_BUF_LEN]; + register char *s; + register int t, neg = 0, pc = 0; + register unsigned int u = i; + + if( i == 0 ) { + print_buf[0] = '0'; + print_buf[1] = '\0'; + return __print_str( ctx, print_buf, width, pad, print_limit, true ); + } + + if( sg && b == 10 && i < 0 ) { + neg = 1; + u = -i; + } + + s = print_buf + _PRINTFMT_INT_BUF_LEN - 1; + *s = '\0'; + + while( u ) { + t = u % b; + if( t >= 10 ) + t += letbase - '0' - 10; + *--s = t + '0'; + u /= b; + } + + if( neg ) { + if( width && ( pad & _PRINTFMT_PAD_ZERO ) ) { + __print_char( ctx, '-' ); + ++pc; + --width; + } else { + *--s = '-'; + } + } + + return pc + __print_str( ctx, s, width, pad, print_limit, true ); +} +/* +#if __GNUC__ +int fprintf( __FILE *stream, const char *format, ... ) +{ + return 0; +} +#endif +*/ + +/** + * Print the given arguments, with given format onto string out. + */ +static int __print_fmt( _print_ctx_t* ctx, const char *format, va_list args ) +{ + int width; + int pad; + int print_limit; + int pc = 0; + char scr[2]; + + for( ; *format != 0; ++format ) { + if( *format == '%' ) { + ++format; + width = pad = print_limit = 0; + + if( *format == '\0' ) { + break; + } + + if( *format == '%' ) { + goto out; + } + + if( *format == '-' ) { + ++format; + pad = _PRINTFMT_PAD_RIGHT; + } + + while( *format == '0' ) { + ++format; + pad |= _PRINTFMT_PAD_ZERO; + } + + for( ; *format >= '0' && *format <= '9'; ++format ) { + width *= 10; + width += *format - '0'; + } + + if( *format == '.' ) { + ++format; + for( ; *format >= '0' && *format <= '9'; ++format ) { + print_limit *= 10; + print_limit += *format - '0'; + } + } + + if( 0 == print_limit ) { + print_limit--; + } + + if( *format == 'l' ) { + ++format; + } + + if( *format == 's' ) { + register char *s = (char *) va_arg( args, int ); + pc += __print_str( ctx, + s ? s : "(null)", + width, + pad, + print_limit, + false ); + continue; + } + + if( *format == 'd' ) { + pc += __print_int( ctx, va_arg( args, int ), 10, 1, width, pad, 'a', print_limit ); + continue; + } + + if( ( *format == 'x' ) || ( *format == 'p' ) ) { + pc += __print_int( ctx, va_arg( args, int ), 16, 0, width, pad, 'a', print_limit ); + continue; + } + + if( *format == 'X' ) { + pc += __print_int( ctx, va_arg( args, int ), 16, 0, width, pad, 'A', print_limit ); + continue; + } + + if( *format == 'u' ) { + pc += __print_int( ctx, va_arg( args, int ), 10, 0, width, pad, 'a', print_limit ); + continue; + } + + if( *format == 'c' ) { + // char are converted to int then pushed on the stack + scr[0] = (char) va_arg( args, int ); + scr[1] = '\0'; + pc += __print_str( ctx, scr, width, pad, print_limit, false ); + continue; + } + } else { +out: + __print_char( ctx, *format ); + ++pc; + } + } + + if( ctx && ctx->_max_len ) { + *(ctx->_ptr) = '\0'; + } + + return pc; +} + +/* +int sprintf( char *out, const char *format, ... ) +{ + int retval = 0; + _print_ctx_t ctx; + va_list args; + + ctx._ptr = out; + ctx._max_len = BLOCK_MEM_SIZE; + + va_start( args, format ); + retval = __print_fmt( &ctx, format, args ); + va_end( args ); + + return retval; +} +*/ + +int printf( const char *format, ... ) +{ + int retval = 0; +// memory_t* buf; + va_list args; + + /* + buf = memory_alloc( 10 ); + + if( buf ) { + _print_ctx_t ctx; + ctx._ptr = (char*)buf->_data; + ctx._max_len = BLOCK_MEM_SIZE; + + va_start( args, format ); + retval = __print_fmt( &ctx, format, args ); + va_end( args ); + + buf->_len = strlen( (const char*)buf->_data ); + +// LCD_WriteString( ll, buf ); + ll++; + ll &= 0x03; + if( uart_task_send( buf ) == false ) { + memory_free( buf ); + } + } + */ + + va_start( args, format ); + retval = __print_fmt( NULL, format, args ); + va_end( args ); + + return retval; +} From 4035dc44f3db1b90cdb0cf51e6ce3d90204294d9 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 1 Jun 2010 15:12:34 -0400 Subject: [PATCH 366/471] enable sprintf --- lib/printf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/printf.c b/lib/printf.c index 84eedb396..64da212a8 100644 --- a/lib/printf.c +++ b/lib/printf.c @@ -376,7 +376,8 @@ out: return pc; } -/* +#define BLOCK_MEM_SIZE 1024 + int sprintf( char *out, const char *format, ... ) { int retval = 0; @@ -392,7 +393,6 @@ int sprintf( char *out, const char *format, ... ) return retval; } -*/ int printf( const char *format, ... ) { From 36361e1eb0eba99c8ab7807fa2f977c80a3be05c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 7 Jun 2010 11:58:16 -0400 Subject: [PATCH 367/471] use a more standard syntax to call _rom_init_data works around assembler bug in some versions of as. --- src/start.S | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/start.S b/src/start.S index f89ae0f21..d60c90221 100644 --- a/src/start.S +++ b/src/start.S @@ -121,7 +121,9 @@ _begin: ldr sp, =__sys_stack_top__ /* set the SYS stack pointer */ #ifdef USE_ROM_VARS - bl _rom_data_init+.-base + ldr r12,=_rom_data_init + mov lr,pc + bx r12 #endif msr CPSR_c, #(SYS_MODE) From beb75cd3559f22c35141408c3cc01b936d6b18a4 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 8 Jun 2010 16:07:06 -0400 Subject: [PATCH 368/471] fix long standing bug where the last pages of NVM were not erased properly. --- tests/config.h | 4 ++-- tests/flasher.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/config.h b/tests/config.h index be278d478..b5117bdac 100644 --- a/tests/config.h +++ b/tests/config.h @@ -50,8 +50,8 @@ #define uart_init uart1_init /* nvm-read */ -#define READ_ADDR 0x1E000 -#define READ_NBYTES 8 +#define READ_ADDR 0x1f000 +#define READ_NBYTES 1024 /* nvm-write */ #define WRITE_NBYTES 8 diff --git a/tests/flasher.c b/tests/flasher.c index 1f6c1dfca..694e9aa14 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -101,7 +101,7 @@ void main(void) { dbg_putstr("\n\r"); /* erase the flash */ - err = nvm_erase(gNvmInternalInterface_c, type, 0x4fffffff); + err = nvm_erase(gNvmInternalInterface_c, type, 0x7fffffff); dbg_putstr("nvm_erase returned: 0x"); dbg_put_hex(err); From 7e5ebe88f7e69264ea25bc04aca5a41c7ff6fd88 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 6 Jul 2010 09:34:23 -0400 Subject: [PATCH 369/471] properly drop characters when buffer is full fix by David Kopf --- lib/uart1.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/uart1.c b/lib/uart1.c index 672c795e4..b5bd78011 100644 --- a/lib/uart1.c +++ b/lib/uart1.c @@ -65,8 +65,9 @@ void uart1_putc(char c) { u1_head += 1; if (u1_head >= sizeof(u1_tx_buf)) u1_head = 0; - if (u1_head == u1_tail) /* drop chars when no room */ - return; + if (u1_head == u1_tail) { /* drop chars when no room */ + if (u1_head) { u1_head -=1; } else { u1_head = sizeof(u1_tx_buf); } + } enable_irq(UART1); } } From d75d193762cb3148d0dae4a4d21a35329354fc77 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 14 Jul 2010 13:55:55 -0400 Subject: [PATCH 370/471] use 32 packets in the pool by default --- lib/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index e19ae81f7..fba0a1acd 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -55,7 +55,7 @@ #endif #ifndef NUM_PACKETS -#define NUM_PACKETS 8 +#define NUM_PACKETS 32 #endif /* for 250kHz clock */ From 6db3b903d2ec58e23730b5393f6e34e074e7c9ec Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 14 Jul 2010 13:58:47 -0400 Subject: [PATCH 371/471] make the debug prints in check_maca more specific --- lib/maca.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index fba0a1acd..ec44cf580 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -133,11 +133,12 @@ void check_maca(void) { } else { if((last_time > (*MACA_SFTCLK + RECV_SOFTIMEOUT)) && (last_time > (*MACA_CPLCLK + CPL_TIMEOUT))) { - PRINTF("check maca: complete clocks expired --- forcing isr\n"); + PRINTF("check maca: complete clocks expired\n"); /* all complete clocks have expired */ /* check that maca entry is changing */ /* if not, do call the isr to restart the cycle */ if(last_entry == maca_entry) { + PRINTF("check maca: forcing isr\n"); *INTFRC = (1< Date: Wed, 14 Jul 2010 13:59:28 -0400 Subject: [PATCH 372/471] in tx_packet, force an interrupt if the maca isn't doing anything so that the transmit starts. Or if the maca is in a reception cycle, advance the softclock timeout to now so that transmission starts as soon as possible (immediately if a packet isn't being received or right after reception finishes). --- lib/maca.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index ec44cf580..9740b3778 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -459,7 +459,9 @@ void tx_packet(volatile packet_t *p) { // print_packets("tx packet"); irq_restore(); if(bit_is_set(*NIPEND, INT_NUM_MACA)) { *INTFRC = (1 << INT_NUM_MACA); } - + if(last_post == NO_POST) { *INTFRC = (1< Date: Wed, 14 Jul 2010 14:45:14 -0400 Subject: [PATCH 373/471] increase the reception time now that tx_packet will advance the timer as necessary. --- lib/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index 9740b3778..c2050f6e2 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -65,7 +65,7 @@ #define CLK_PER_BYTE 8 #ifndef RECV_SOFTIMEOUT -#define RECV_SOFTIMEOUT (32*128*CLK_PER_BYTE) +#define RECV_SOFTIMEOUT (1024*128*CLK_PER_BYTE) #endif #ifndef CPL_TIMEOUT From de64b18acad6ce42c4910fbc233637f2b498763c Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 16 Aug 2010 10:30:15 -0400 Subject: [PATCH 374/471] Fix the CNTR defines. Thanks to Ruslan for finding this. --- lib/include/tmr.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/include/tmr.h b/lib/include/tmr.h index 4b0824686..edf7dce91 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -67,7 +67,7 @@ #define TMR0_CAPT ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CAPT)) #define TMR0_LOAD ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_LOAD)) #define TMR0_HOLD ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_HOLD)) -#define TMR0_CNTR ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CTRL)) +#define TMR0_CNTR ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CNTR)) #define TMR0_CTRL ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CTRL)) #define TMR0_SCTRL ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_SCTRL)) #define TMR0_CMPLD1 ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CMPLD1)) @@ -82,7 +82,7 @@ #define TMR1_CAPT ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CAPT)) #define TMR1_LOAD ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_LOAD)) #define TMR1_HOLD ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_HOLD)) -#define TMR1_CNTR ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CTRL)) +#define TMR1_CNTR ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CNTR)) #define TMR1_CTRL ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CTRL)) #define TMR1_SCTRL ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_SCTRL)) #define TMR1_CMPLD1 ((volatile uint16_t *) (TMR1_BASE + TMR_REGOFF_CMPLD1)) @@ -97,7 +97,7 @@ #define TMR2_CAPT ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CAPT)) #define TMR2_LOAD ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_LOAD)) #define TMR2_HOLD ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_HOLD)) -#define TMR2_CNTR ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CTRL)) +#define TMR2_CNTR ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CNTR)) #define TMR2_CTRL ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CTRL)) #define TMR2_SCTRL ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_SCTRL)) #define TMR2_CMPLD1 ((volatile uint16_t *) (TMR2_BASE + TMR_REGOFF_CMPLD1)) @@ -112,7 +112,7 @@ #define TMR3_CAPT ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CAPT)) #define TMR3_LOAD ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_LOAD)) #define TMR3_HOLD ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_HOLD)) -#define TMR3_CNTR ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CTRL)) +#define TMR3_CNTR ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CNTR)) #define TMR3_CTRL ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CTRL)) #define TMR3_SCTRL ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_SCTRL)) #define TMR3_CMPLD1 ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CMPLD1)) From 36d0b2708d606edda233d6551570c9ff1a309a22 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 18 Aug 2010 14:55:50 -0400 Subject: [PATCH 375/471] get LQI of received packets --- lib/include/maca.h | 2 ++ lib/include/packet.h | 1 + lib/maca.c | 3 +++ tests/tests.c | 2 +- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/include/maca.h b/lib/include/maca.h index f3a45c9c5..4d2e14472 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -52,6 +52,8 @@ void check_maca(void); void set_power(uint8_t power); void set_channel(uint8_t chan); +extern uint8_t (*get_lqi)(void); + #define DEMOD_DCD 1 /* -96dBm, 22.2mA */ #define DEMOD_NCD 0 /* -100dBm, 24.2mA */ void set_demodulator_type(uint8_t demod); diff --git a/lib/include/packet.h b/lib/include/packet.h index 21d23953e..295257421 100644 --- a/lib/include/packet.h +++ b/lib/include/packet.h @@ -51,6 +51,7 @@ struct packet { /* On TX this should be 0 */ /* On RX this should be 1 since the maca puts the length as the first byte*/ uint8_t offset; + uint8_t lqi; #if PACKET_STATS uint8_t seen; uint8_t post_tx; diff --git a/lib/maca.c b/lib/maca.c index c2050f6e2..43fc4a264 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -609,6 +609,7 @@ void maca_isr(void) { if (data_indication_irq()) { *MACA_CLRIRQ = (1 << maca_irq_di); dma_rx->length = *MACA_GETRXLVL - 2; /* packet length does not include FCS */ + dma_rx->lqi = get_lqi(); // PRINTF("maca data ind %x %d\n\r", dma_rx, dma_rx->length); if(maca_rx_callback != 0) { maca_rx_callback(dma_rx); } add_to_rx(dma_rx); @@ -1078,6 +1079,8 @@ void set_channel(uint8_t chan) { if(bit_is_set(*NIPEND, INT_NUM_MACA)) { *INTFRC = (1 << INT_NUM_MACA); } } +uint8_t (*get_lqi)(void) = (void *) 0x0000e04d; + #define ROM_END 0x0013ffff #define ENTRY_EOF 0x00000e0f /* processes up to 4 words of initialization entries */ diff --git a/tests/tests.c b/tests/tests.c index 259ece723..83ee458cf 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -48,7 +48,7 @@ void print_packet(volatile packet_t *p) { volatile uint8_t i,j,k; #define PER_ROW 16 if(p) { - printf("len 0x%02x",p->length); + printf("len 0x%02x lqi 0x%02x", p->length, p->lqi); for(j=0, k=0; j <= ((p->length)%PER_ROW); j++) { printf("\n\r"); for(i=0; i < PER_ROW; i++, k++) { From aeaa67bb1a51284cd5cdb14d4bf19b97c6c8003b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 18 Aug 2010 16:14:13 -0400 Subject: [PATCH 376/471] fix bug in print_packet Thanks dean and jim. --- tests/tests.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tests.c b/tests/tests.c index 83ee458cf..8bcb906d1 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -49,7 +49,7 @@ void print_packet(volatile packet_t *p) { #define PER_ROW 16 if(p) { printf("len 0x%02x lqi 0x%02x", p->length, p->lqi); - for(j=0, k=0; j <= ((p->length)%PER_ROW); j++) { + for(j=0, k=0; j <= ( (p->length) / PER_ROW ); j++) { printf("\n\r"); for(i=0; i < PER_ROW; i++, k++) { if(k >= p->length ) { From a6813372bfc38c83e61a90952f9b9301852f1c17 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 20 Aug 2010 12:01:44 -0400 Subject: [PATCH 377/471] ignore generated files --- .gitignore | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..213a0dd10 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.o +*.d +*.s +*.a +*.elf +*.bin +*.map +tests/obj_* + From 6d437591fc6f77e344438bb9fa8de3a19f08e5c5 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 6 Sep 2010 11:06:52 -0400 Subject: [PATCH 378/471] add autoreset command and do_exit option --- tools/mc1322x-load.pl | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/tools/mc1322x-load.pl b/tools/mc1322x-load.pl index c56aef892..cfe5cfcb9 100755 --- a/tools/mc1322x-load.pl +++ b/tools/mc1322x-load.pl @@ -13,6 +13,8 @@ my $term = '/dev/ttyUSB0'; my $baud = '115200'; my $verbose; my $rts = 'rts'; +my $command = ''; +my $do_exit; GetOptions ('file=s' => \$filename, 'secondfile=s' => \$second, @@ -20,6 +22,8 @@ GetOptions ('file=s' => \$filename, 'verbose' => \$verbose, 'baud=s' => \$baud, 'rts=s' => \$rts, + 'command=s' => \$command, + 'exit' => \$do_exit, ) or die 'bad options'; $| = 1; @@ -29,11 +33,15 @@ if($filename eq '') { print " or : mc1322x-load.pl -f flasher.bin -s flashme.bin 0x1e000,0x11223344,0x55667788\n"; print " -f required: binary file to load\n"; print " -s optional: secondary binary file to send\n"; - print " -t default: /dev/ttyUSB0\n"; - print " -b default: 115200\n"; + print " -t terminal default: /dev/ttyUSB0\n"; + print " -b baud rate default: 115200\n"; print " -r [none|rts] flow control default: rts\n"; - print " anything on the command line is sent\n"; - print " after all of the files.\n"; + print " -c command to run for autoreset: \n"; + print " e.g. -c 'bbmc -l redbee-econotag -i 0 reset'\n"; + print " -e exit instead of dropping to terminal display\n"; + print "\n"; + print "anything on the command line is sent\n"; + print "after all of the files.\n\n"; exit; } @@ -56,6 +64,7 @@ $ob->read_const_time(1000); # 1 second per unfulfilled "read" call $ob->rts_active(1); my $s = 0; +my $reset = 0; while(1) { @@ -64,7 +73,13 @@ while(1) { if($s == 1) { print "secondary send...\n"; } $ob->write(pack('C','0')); - + + if(($command ne '') && + ($reset eq 0)) { + $reset++; + system($command); + } + if($s == 1) { $test = 'ready'; } else { @@ -121,6 +136,10 @@ if(scalar(@ARGV)!=0) { $ob->write(','); } +if(defined($do_exit)) { + exit; +} + my $c; my $count; while(1) { ($count, $c) = $ob->read(1); From 5242883aa7e0abeafa518d8d2a8ff6d7031322c2 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 6 Sep 2010 11:08:36 -0400 Subject: [PATCH 379/471] add simple install rule --- tools/ftditools/Makefile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/ftditools/Makefile b/tools/ftditools/Makefile index 0e07771ae..951e0d0f6 100644 --- a/tools/ftditools/Makefile +++ b/tools/ftditools/Makefile @@ -1,3 +1,7 @@ +INSTALL= /usr/local/bin + +################ + LDFLAGS = -lftdi TARGETS = bbmc @@ -8,3 +12,6 @@ all: $(TARGETS) clean: -rm $(TARGETS) + +install: all + cp bbmc $(INSTALL) \ No newline at end of file From 053f73dce45cd5d4d6fd53282bf425e2ae1e3830 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 6 Sep 2010 11:26:26 -0400 Subject: [PATCH 380/471] discard received packets --- this lets you run multiple rftest-tx's at the same time. --- tests/rftest-tx.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index d4d77a258..ae7bf89c6 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -93,6 +93,10 @@ void main(void) { /* a few lockup conditions */ check_maca(); + while((p = rx_packet())) { + if(p) free_packet(p); + } + p = get_free_packet(); if(p) { fill_packet(p); From 5981fb5397fae424a3b04ca28c8e849abb294ce8 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 6 Sep 2010 11:32:08 -0400 Subject: [PATCH 381/471] add scripts to help load a bunch of econotags --- tools/test-grid/erase-all.pl | 17 ++++++++++++ tools/test-grid/load-all.pl | 18 +++++++++++++ tools/test-grid/open-terms.pl | 49 +++++++++++++++++++++++++++++++++++ tools/test-grid/reset-all.pl | 17 ++++++++++++ 4 files changed, 101 insertions(+) create mode 100755 tools/test-grid/erase-all.pl create mode 100755 tools/test-grid/load-all.pl create mode 100755 tools/test-grid/open-terms.pl create mode 100755 tools/test-grid/reset-all.pl diff --git a/tools/test-grid/erase-all.pl b/tools/test-grid/erase-all.pl new file mode 100755 index 000000000..634c94b1a --- /dev/null +++ b/tools/test-grid/erase-all.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl +use strict; + +my $terms = shift; + +if (! $terms) { + print "Usage: num-devices\n"; + die; +} + +for (my $t=0; $t<$terms; $t++) { + my $dev_num = 2 * $t + 1; + my $ftdi_num = $terms - $t - 1; + my $cmd = "bbmc -l redbee-econotag -i $ftdi_num erase &"; + print "$cmd\n"; + system($cmd); +} diff --git a/tools/test-grid/load-all.pl b/tools/test-grid/load-all.pl new file mode 100755 index 000000000..d01ed1c08 --- /dev/null +++ b/tools/test-grid/load-all.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl +use strict; + +my $bin = shift; +my $terms = shift; + +if (! $terms) { + print "Usage: $0 file.bin num-devices\n"; + die; +} + +for (my $t=0; $t<$terms; $t++) { + my $dev_num = 2 * $t + 1; + my $ftdi_num = $terms - $t - 1; + my $cmd = "mc1322x-load.pl -e -f $bin -t /dev/ttyUSB$dev_num -c 'bbmc -l redbee-econotag -i $ftdi_num reset' &"; + print "$cmd\n"; + system($cmd); +} diff --git a/tools/test-grid/open-terms.pl b/tools/test-grid/open-terms.pl new file mode 100755 index 000000000..28718f22d --- /dev/null +++ b/tools/test-grid/open-terms.pl @@ -0,0 +1,49 @@ +#!/usr/bin/perl + +use strict; +use integer; + +my $start = shift; +my $end = shift; + +if (! $end) { + print "Usage: $0 first-term-num last-term-num\n"; + die; +} + +my $COLS = 4; + +my $index = 0; + +for (my $n=$start; $n <= $end; $n += 2) { + #print "$n\n"; + + open(OUT, ">/tmp/USB$n.ini"); + my $dev = "/dev/ttyUSB$n"; +print OUT < Date: Mon, 6 Sep 2010 12:05:34 -0400 Subject: [PATCH 382/471] modify flasher.c to not create a vaild boot magic number if the length of the file is zero modify mc1322x-load.pl to optionally send a zero length file with -z; extra data on the command line is still written. This allows you to burn the mac adress without flashing a vaild image. --- tests/flasher.c | 10 ++++++++-- tools/mc1322x-load.pl | 36 ++++++++++++++++++++++++------------ 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/tests/flasher.c b/tests/flasher.c index 694e9aa14..f2cb29a76 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -141,6 +141,14 @@ void main(void) { dbg_put_hex32(type); dbg_putstr("\n\r"); + /* don't make a valid boot image if the received length is zero */ + if(len == 0) { + ((uint8_t *)buf)[0] = 'N'; + ((uint8_t *)buf)[1] = 'O'; + ((uint8_t *)buf)[2] = 'N'; + ((uint8_t *)buf)[3] = 'O'; + } + err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)buf, 0, 4); dbg_putstr("nvm_write returned: 0x"); @@ -151,8 +159,6 @@ void main(void) { err = nvm_write(gNvmInternalInterface_c, type, (uint8_t *)&len, 4, 4); /* read a byte, write a byte */ - /* byte at a time will make this work as a contiki process better */ - /* for OTAP */ for(i=0; i \$filename, 'secondfile=s' => \$second, + 'zerolen' => \$zerolen, 'terminal=s' => \$term, 'verbose' => \$verbose, 'baud=s' => \$baud, @@ -31,8 +33,10 @@ $| = 1; if($filename eq '') { print "Example usage: mc1322x-load.pl -f foo.bin -t /dev/ttyS0 -b 9600\n"; print " or : mc1322x-load.pl -f flasher.bin -s flashme.bin 0x1e000,0x11223344,0x55667788\n"; + print " or : mc1322x-load.pl -f flasher.bin -z 0x1e000,0x11223344,0x55667788\n"; print " -f required: binary file to load\n"; print " -s optional: secondary binary file to send\n"; + print " -z optional: send a zero length file as secondary\n"; print " -t terminal default: /dev/ttyUSB0\n"; print " -b baud rate default: 115200\n"; print " -r [none|rts] flow control default: rts\n"; @@ -65,6 +69,7 @@ $ob->rts_active(1); my $s = 0; my $reset = 0; +my $size = 0; while(1) { @@ -97,27 +102,34 @@ while(1) { } print $ret . "\n"; - if (-e $filename) { + if (-e $filename || (defined($zerolen) && ($s == 1))) { - my $size = -s $filename; + if(defined($zerolen) && ($s == 1)) { + $size = 0; + } else { + $size = -s $filename; + } print ("Size: $size bytes\n"); $ob->write(pack('V',$size)); - open(FILE, $filename) or die($!); - print "Sending $filename\n"; - - my $i = 1; - while(read(FILE, $c, 1)) { - $i++; - usleep(50); # this is as fast is it can go... - usleep(50) if ($s==1); - $ob->write($c); + if(($s == 0) || + ((!defined($zerolen)) && ($s == 1))) { + open(FILE, $filename) or die($!); + print "Sending $filename\n"; + + my $i = 1; + while(read(FILE, $c, 1)) { + $i++; + usleep(50); # this is as fast is it can go... + usleep(50) if ($s==1); + $ob->write($c); + } } } last if ($s==1); - if((-e $second)) { + if((-e $second) || defined($zerolen)) { $s=1; $filename = $second; } else { last; From b3df60972d823518b907b9db8c382710dcc4bf6a Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 6 Sep 2010 12:48:11 -0400 Subject: [PATCH 383/471] add script that burns the mac address only --- mac address is Redwire IAB + tty number. --- tools/test-grid/burn-macs.pl | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 tools/test-grid/burn-macs.pl diff --git a/tools/test-grid/burn-macs.pl b/tools/test-grid/burn-macs.pl new file mode 100755 index 000000000..8fafe29cf --- /dev/null +++ b/tools/test-grid/burn-macs.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl +use strict; + +my $bin = shift; +my $terms = shift; + +my $addr = "0x1e000"; +my $company_id; +my $iab = 0xabc; # Redwire, LLC's IAB + +if(defined($iab)) { + $company_id = (0x0050C2 << 12) | $iab; +} + +if (! $terms) { + print "Usage: $0 flasher.bin num-devices\n"; + die; +} + +for (my $t=0; $t<$terms; $t++) { + my $dev_num = 2 * $t + 1; + my $mac; + if(defined($iab)) { + $mac = ($company_id << 28) | $dev_num; + } else { + $mac = ($company_id << 40) | $dev_num; + } + my $ftdi_num = $terms - $t - 1; + my $cmd = "mc1322x-load.pl -e -f $bin -z -t /dev/ttyUSB$dev_num -c 'bbmc -l redbee-econotag -i $ftdi_num reset' $addr," . sprintf("0x%08X,0x%08X\n", ($mac >> 32), ($mac & 0xffffffff)); + print "$cmd\n"; + system($cmd); +} From 0acf62f4f18eafded3b3806b9fdd9f0007a769d9 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 8 Sep 2010 17:00:36 -0400 Subject: [PATCH 384/471] fix byte ordering in burn-macs --- tools/test-grid/burn-macs.pl | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tools/test-grid/burn-macs.pl b/tools/test-grid/burn-macs.pl index 8fafe29cf..8434f2fb4 100755 --- a/tools/test-grid/burn-macs.pl +++ b/tools/test-grid/burn-macs.pl @@ -25,8 +25,21 @@ for (my $t=0; $t<$terms; $t++) { } else { $mac = ($company_id << 40) | $dev_num; } + my @words; + for(my $i=0; $i<8; $i++) { + push @words, ($mac >> ($i * 8)) & 0xff; + } + reverse @words; + foreach my $byte (@words) { + printf("%02X",$byte); + } + print "\n"; + + my $word1 = sprintf("%02X%02X%02X%02X",$words[4],$words[5],$words[6],$words[7]); + my $word2 = sprintf("%02X%02X%02X%02X",$words[0],$words[1],$words[2],$words[3]); + my $ftdi_num = $terms - $t - 1; - my $cmd = "mc1322x-load.pl -e -f $bin -z -t /dev/ttyUSB$dev_num -c 'bbmc -l redbee-econotag -i $ftdi_num reset' $addr," . sprintf("0x%08X,0x%08X\n", ($mac >> 32), ($mac & 0xffffffff)); + my $cmd = "mc1322x-load.pl -e -f $bin -z -t /dev/ttyUSB$dev_num -c 'bbmc -l redbee-econotag -i $ftdi_num reset' $addr,0x$word1,0x$word2 &"; print "$cmd\n"; system($cmd); } From e50db7f1c0c96deb65fcdcf3e4fcd58854a976e1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 8 Sep 2010 17:01:04 -0400 Subject: [PATCH 385/471] use kermit in open-terms --- tools/test-grid/open-terms.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/test-grid/open-terms.pl b/tools/test-grid/open-terms.pl index 28718f22d..3498cf2be 100755 --- a/tools/test-grid/open-terms.pl +++ b/tools/test-grid/open-terms.pl @@ -39,8 +39,8 @@ end my ($offx, $offy); $offx = $col * 300; $offy = $row * 300; - #my $cmd = "xterm -geometry 40x20+$offx+$offy -e 'kermit /tmp/USB$n.ini'&"; - my $cmd = "xterm -geometry 40x20+$offx+$offy -e 'stty -F /dev/ttyUSB$n 115200 && cat /dev/ttyUSB$n'&"; + my $cmd = "xterm -e 'kermit /tmp/USB$n.ini'&"; + #my $cmd = "xterm -geometry 40x20+$offx+$offy -e 'stty -F /dev/ttyUSB$n 115200 && cat /dev/ttyUSB$n'&"; # my $cmd = "xterm -e 'stty -F /dev/ttyUSB$n 115200 && cat /dev/ttyUSB$n'&"; print "$cmd\n"; system($cmd); From 772fcb43c25d572cfb003bf9ae9752ad24697f54 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 18 Sep 2010 15:56:31 -0400 Subject: [PATCH 386/471] Allow parent makefile to override these variables --- Makefile.include | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.include b/Makefile.include index fc0ac6240..1d577bafa 100644 --- a/Makefile.include +++ b/Makefile.include @@ -7,10 +7,10 @@ default: all endif .PHONY: default -CROSS_COMPILE := arm-linux- +CROSS_COMPILE ?= arm-linux- -LINKERSCRIPT := $(MC1322X)/mc1322x.lds -LIBMC1322X := $(MC1322X)/lib +LINKERSCRIPT ?= $(MC1322X)/mc1322x.lds +LIBMC1322X ?= $(MC1322X)/lib include $(MC1322X)/config.mk From 59aa0c93e1c4fce771f4c26fa6be979739cc8aa8 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 18 Sep 2010 16:06:11 -0400 Subject: [PATCH 387/471] Use "rm -f" in clean rules to ignore errors --- tools/ftditools/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ftditools/Makefile b/tools/ftditools/Makefile index 951e0d0f6..20e8a64e7 100644 --- a/tools/ftditools/Makefile +++ b/tools/ftditools/Makefile @@ -11,7 +11,7 @@ CFLAGS = -Wall -Wextra #-Werror all: $(TARGETS) clean: - -rm $(TARGETS) + -rm -f $(TARGETS) install: all cp bbmc $(INSTALL) \ No newline at end of file From 97ae5e0ba8ef313e51ff6df21b86618645919e8b Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 18 Sep 2010 16:44:57 -0400 Subject: [PATCH 388/471] Add script to invoke kermit with a particular port and speed --- tools/run-kermit | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100755 tools/run-kermit diff --git a/tools/run-kermit b/tools/run-kermit new file mode 100755 index 000000000..c14a05d59 --- /dev/null +++ b/tools/run-kermit @@ -0,0 +1,13 @@ +#!/usr/bin/kermit + + +echo "Opening \%1 at \%2 baud..." + +set line \%1 +if failure { echo "Couldn't open \%1" , exit } +set carrier-watch off +set flow-control none +set speed \%2 +set serial 8n1 +set key \127 \8 +connect +quit From be25b73b8e146a16e5ad24de4e54a63e91fa6d29 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 18 Sep 2010 17:36:29 -0400 Subject: [PATCH 389/471] Add missing type for TMR0_COMP2 --- lib/include/tmr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/include/tmr.h b/lib/include/tmr.h index edf7dce91..be3b88ae1 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -62,7 +62,7 @@ /* Timer 0 registers */ #define TMR0_COMP1 ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_COMP1)) #define TMR0_COMP_UP TMR0_COMP1 -#define TMR0_COMP2 (TMR0_BASE + TMR_REGOFF_COMP2) +#define TMR0_COMP2 ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_COMP2)) #define TMR0_COMP_DOWN TMR0_COMP2 #define TMR0_CAPT ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_CAPT)) #define TMR0_LOAD ((volatile uint16_t *) (TMR0_BASE + TMR_REGOFF_LOAD)) From 0a4193940729bf0e00bee3cd45e0be649f60b323 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Mon, 20 Sep 2010 16:28:22 -0400 Subject: [PATCH 390/471] Makefile cleanup. This is an attempt to fix and cleanup all of the rules, and get rid of some of the recursion. We still need to invoke make several times when we're building for more than one board, and some things can get a bit weird when that happens, but it should generally work. A single BOARD=foo build should be fully correct, now. I attempted to keep things compatible, so existing Makefiles that include libmc1322x/Makefile.include should still work correctly. --- Makefile.include | 226 +++++++++++++++++++---------------------- board/Makefile.board | 37 ++++--- lib/Makefile.lib | 17 +++- src/Makefile.src | 33 ++++++ src/default_lowlevel.c | 1 - src/isr.c | 1 - 6 files changed, 173 insertions(+), 142 deletions(-) create mode 100644 src/Makefile.src diff --git a/Makefile.include b/Makefile.include index 1d577bafa..f50bc07c4 100644 --- a/Makefile.include +++ b/Makefile.include @@ -1,141 +1,123 @@ -# -*- makefile -*- +# Hey Emacs, this is a -*- makefile -*- -ifndef BOARD -default: allboards -else -default: all -endif -.PHONY: default - -CROSS_COMPILE ?= arm-linux- - -LINKERSCRIPT ?= $(MC1322X)/mc1322x.lds -LIBMC1322X ?= $(MC1322X)/lib - -include $(MC1322X)/config.mk - -include $(MC1322X)/board/Makefile.board - -include $(LIBMC1322X)/Makefile.lib - -CFLAGS += -I$(MC1322X)/src -I. - -ifdef TARGET_ROM_VARS - START = $(MC1322X)/src/start-romvars.o -endif - -# default start and isr -ifndef START - START = $(MC1322X)/src/start.o -endif -ifndef ISR - ISR = $(MC1322X)/src/isr.o -endif -SRCOBJS += $(MC1322X)/src/default_lowlevel.o $(ISR) $(START) -BOARDOBJS := $(addprefix $(OBJDIR)/,$(COBJS)) - -ARCH = arm -CPU = arm7tdmi-s -export ARCH CPU VENDOR +# Set up a default target in case the user didn't already have one. +# "all" means to build .bin for all defined targets for the currently-defined board +all: $(addsuffix _$(BOARD).bin, $(TARGETS) $(TARGETS_ROMVARS)) +.PHONY: all +# Don't delete intermediate targets .SECONDARY: -### See http://make.paulandlesley.org/autodep.html#advanced -ifdef BOARD --include ${addprefix $(OBJDIR)/,$(addsuffix .d,$(TARGETS))} -endif +##### +# Tools and flags -define FINALIZE_DEPENDENCY -cp $(@:.o=.d) $(@:.o=.$$$$); \ -sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ - -e '/^$$/ d' -e 's/$$/ :/' < $(@:.o=.$$$$) >> $(@:.o=.d); \ -rm -f $(@:.o=.$$$$) +# Set up cross compiler and toolchain definitions. +CROSS_COMPILE ?= arm-linux- +AS = $(CROSS_COMPILE)as +LD = $(CROSS_COMPILE)ld +CC = $(CROSS_COMPILE)gcc +CPP = $(CC) -E +AR = $(CROSS_COMPILE)ar +NM = $(CROSS_COMPILE)nm +STRIP = $(CROSS_COMPILE)strip +OBJCOPY = $(CROSS_COMPILE)objcopy +OBJDUMP = $(CROSS_COMPILE)objdump +RANLIB = $(CROSS_COMPILE)ranlib + +# Build CFLAGS and prepend it to user-supplied CFLAGS +CFLAGS_PLAT ?= -march=armv4t -mtune=arm7tdmi-s -mlong-calls -msoft-float \ + -mthumb-interwork -fno-strict-aliasing -fno-common -ffixed-r8 \ + -ffunction-sections -ffreestanding -fno-builtin +CFLAGS_WARN ?= -Wcast-align -Wall -Wstrict-prototypes -Wextra +CFLAGS_OPT ?= -Os +CFLAGS_DEBUG ?= -g -DDEBUG -Werror +CFLAGS_MISC ?= -pipe +CFLAGS := $(CFLAGS_PLAT) $(CFLAGS_WARN) $(CFLAGS_OPT) $(CFLAGS_DEBUG) $(CFLAGS_MISC) $(CFLAGS) + +# Thumb flags, used for building most objects +CFLAGS_THUMB ?= -mthumb -mcallee-super-interworking + +# Linker flags +LINKERSCRIPT ?= $(MC1322X)/mc1322x.lds +LDFLAGS ?= -T $(LINKERSCRIPT) -nostartfiles -static -export-dynamic -Wl,-Map=$(@:.elf=.map) + +# Assembler flags +AFLAGS ?= -Wa,-gstabs $(CFLAGS) + +# Misc tool options +OBJCOPYFLAGS ?= --gap-fill=0xff + +##### + +include $(MC1322X)/board/Makefile.board +include $(MC1322X)/lib/Makefile.lib +include $(MC1322X)/src/Makefile.src + +##### +# Rule for building ELF files. We generate both a wildcard rule +# that links $(SRCLIB) as well as target-specific rules that link $(SRCLIB_ROMVARS) +define build_elf_rule +$(1)_$$(BOARD).elf: $$(OBJDIR)/$(1).o $$(OBJDIR)/board.a $$(MC1322X)/lib/libmc1322x.a $(2) + $$(CC) $$(LDFLAGS) -o $$@ -Wl,--start-group $$^ -lm -Wl,--end-group endef +# Targets that need space for rom variables: +$(foreach t, $(TARGETS_ROMVARS), $(eval $(call build_elf_rule,$(t),$(SRCLIB_ROMVARS)))) +# All other targets (wildcard rule): +$(eval $(call build_elf_rule,%,$(SRCLIB_ROMVARS))) -$(START): $(START:.o=.s) - $(CC) $(AFLAGS) -c -o $@ $< -$(MC1322X)/src/start-romvars.s: $(MC1322X)/src/start.S - $(CPP) $(AFLAGS) -DUSE_INTS -DUSE_ROM_VECTS -DUSE_ROM_VARS -o $@ $< -$(MC1322X)/src/start-romvects.s: $(MC1322X)/src/start.S - $(CPP) $(AFLAGS) -DUSE_INTS -DUSE_ROM_VECTS -o $@ $< +# Generic rules +%.srec: %.elf + $(OBJCOPY) $(OBJCOPYFLAGS) -O srec $< $@ -$(ISR): $(ISR:.o=.c) - $(CC) $(CFLAGS) $(ARM_FLAGS) -MMD $< -c -o $@ +%.ihex: %.elf + $(OBJCOPY) $(OBJCOPYFLAGS) -O ihex $< $@ + +%.bin: %.elf + $(OBJCOPY) $(OBJCOPYFLAGS) -O binary $< $@ + +%.dis: %.elf + $(OBJDUMP) -Sd $< > $@ || rm -f $@ + +%.o: %.c + $(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) - -ifdef COBJS -BOARDARCS := $(OBJDIR)/board.a(${filter $(OBJDIR)/%.o,$(BOARDOBJS)}) -endif -empty-board-a: - $(AR) $(ARFLAGS) $(OBJDIR)/board.a -.PHONY: empty-board-a - -$(OBJDIR)/board.a: empty-board-a $(BOARDARCS) $(BOARDOBJS) -$(MC1322X)/src/src.a: $(MC1322X)/src/src.a($(SRCOBJS)) - -%_$(BOARD).elf: $(OBJDIR)/%.o $(START) $(ISR) $(SRCOBJS) $(LINKERSCRIPT) $(LIBMC1322X)/libmc1322x.a $(OBJDIR)/board.a $(MC1322X)/src/src.a - $(CC) $(LDFLAGS) \ - -L $(LIBMC1322X) -L $(MC1322X)/src -L $(OBJDIR) $< -o $@ $(START) $(MC1322X)/src/src.a --start-group $(OBJDIR)/board.a $(LIBMC1322X)/libmc1322x.a -lm --end-group - -%.srec: %.elf - $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ - -%.ihex: %.elf - $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ - -%.bin: %.elf - $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ - -%.dis: %.elf - $(OBJDUMP) -SD $< > $@ - -%.s: %.S - $(CPP) $(AFLAGS) -o $@ $< %.o: %.S $(CC) $(AFLAGS) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) -%.o: %.c - $(CC) $(CFLAGS) $(THUMB_FLAGS) -MMD -c -o $@ $< - @$(FINALIZE_DEPENDENCY) -$(OBJDIR)/%.s: %.S - $(CPP) $(AFLAGS) -o $@ $< -$(OBJDIR)/%.o: %.S - $(CC) $(AFLAGS) -MMD -c -o $@ $< - @$(FINALIZE_DEPENDENCY) -$(OBJDIR)/%.o: %.c - $(CC) $(CFLAGS) $(THUMB_FLAGS) -MMD -c -o $@ $< - @$(FINALIZE_DEPENDENCY) +# Fix the dependencies generated for a particular target .o +# See http://make.paulandlesley.org/autodep.html#advanced +define FINALIZE_DEPENDENCY + cp $(@:.o=.d) $(@:.o=.$$$$); \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(@:.o=.$$$$) >> $(@:.o=.d); \ + rm -f $(@:.o=.$$$$) +endef -clean: - find $(MC1322X) \ - \( -name 'core' -o -name '*.bak' -o -name '*~' \ - -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \ - -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' -o -name '*.d' -o -name '*.srec' \) -print \ - | xargs rm -rf - rm -fr *.*~ - find \ - \( -name 'core' -o -name '*.bak' -o -name '*~' \ - -o -name '*.o' -o -name '*.a' -o -name '*.obj' -o -name '*.elf' -o -name '*.s' -o -name '*.map' \ - -o -name 'obj_*_board' -o -name '.depend' -o -name '*.bin' -o -name '*.dis' -o -name '*.d' -o -name '*.srec' \) -print \ - | xargs rm -rf - rm -fr *.*~ - make -C $(MC1322X)/tools/ftditools/ clean -clobber \ -mrproper \ -distclean: clean +clean:: + rm -f *.{o,d,a,bin,elf,ihex,srec,dis,map,bak} *~ + rm -rf obj_* -.PHONY: clean clobber mrproper distclean +.PHONY: clean -all: $(OBJDIR)/board.h - -git submodule update - for target in $(TARGETS); do make $$target\_$(BOARD).bin; done - for target in $(TARGETS_WITH_ROM_VARS); do make TARGET_ROM_VARS=1 $$target\_$(BOARD).bin; done - -allboards: - for board in $(BOARDS); do make BOARD=$$board all; done - -.PHONY: all allboards +############################## +# If no single board was specified, invoke make recursively for each +# board in $(BOARDS), or $(ALL_BOARDS) if that wasn't specified either. +# This is at the end so that it can override all other targets. +ifndef BOARD +ifneq ($(MAKECMDGOALS),clean) +.DEFAULT_GOAL=mc1322x-default +BOARDS ?= $(ALL_BOARDS) +define build_board + @echo "Building for board: $(1)" + @$(MAKE) --no-print-directory BOARD=$(1) $(2) +endef +$(MAKECMDGOALS): + $(foreach b, $(BOARDS), $(call build_board,$(b),$@)) +mc1322x-default: + $(foreach b, $(BOARDS), $(call build_board,$(b),)) +endif +endif diff --git a/board/Makefile.board b/board/Makefile.board index a5b2cb800..7e1740c5f 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -1,20 +1,31 @@ # -*- makefile -*- -BOARDS := redbee-dev redbee-r1 redbee-usb redbee-econotag quahogcon freescale-ncb +ALL_BOARDS = redbee-dev redbee-r1 redbee-usb redbee-econotag quahogcon freescale-ncb -OBJDIR := obj_$(BOARD)_board +OBJDIR = obj_$(BOARD) CFLAGS += -I$(OBJDIR) -I$(MC1322X)/board -DBOARD=$(BOARD) -$(OBJDIR): -ifndef BOARD - ${warning BOARD not defined} - ${warning echo "make BOARD=foo"} - ${warning "boards: $(BOARDS)"} - ${error you must define BOARD} +# Create directory and board.h include +$(OBJDIR)/board.h: + mkdir -p $(OBJDIR) + echo '/* This file was automatically generated */' > $(OBJDIR)/board.h + echo '#include "$(BOARD).h"' >> $(OBJDIR)/board.h + +# $(OBJDIR)/board.a contains all the objects defined in COBJS +$(OBJDIR)/board.a: $(OBJDIR)/board.h $(OBJDIR)/board.a($(addprefix $(OBJDIR)/, $(COBJS))) + +# And is built from files in the parent directory +$(OBJDIR)/%.o: %.c $(OBJDIR)/board.h + $(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $< + @$(FINALIZE_DEPENDENCY) + +$(OBJDIR)/%.o: %.S $(OBJDIR)/board.h + $(CC) $(AFLAGS) -MMD -c -o $@ $< + @$(FINALIZE_DEPENDENCY) + +ifneq ($(MAKECMDGOALS),clean) +-include $(wildcard $(OBJDIR)/*.d) endif - @echo "setup object directory for dev board" - mkdir $(OBJDIR) - -$(OBJDIR)/board.h: $(OBJDIR) - ln -sf ../$(MC1322X)/board/$(BOARD).h $(OBJDIR)/board.h +clean:: + rm -rf obj_* diff --git a/lib/Makefile.lib b/lib/Makefile.lib index 51ce030c0..b5fb27bff 100644 --- a/lib/Makefile.lib +++ b/lib/Makefile.lib @@ -1,8 +1,15 @@ -# -*- makefile -*- +# Hey Emacs, this is a -*- makefile -*- -CFLAGS += -I$(LIBMC1322X)/include +CFLAGS += -I$(MC1322X)/lib/include -LIBOBJS = $(patsubst %.c,%.o,$(wildcard $(LIBMC1322X)/*.c)) +# By default, link all objects +LIBOBJS ?= $(patsubst %.c,%.o,$(wildcard $(MC1322X)/lib/*.c)) -$(LIBMC1322X)/libmc1322x.a: $(LIBOBJS) - $(AR) rcs $(LIBMC1322X)/libmc1322x.a $(LIBOBJS) +$(MC1322X)/lib/libmc1322x.a: $(MC1322X)/lib/libmc1322x.a($(LIBOBJS)) + +ifneq ($(MAKECMDGOALS),clean) +-include $(wildcard $(MC1322X)/lib/*.d) +endif + +clean:: + rm -f $(MC1322X)/lib/*.{o,d,a} diff --git a/src/Makefile.src b/src/Makefile.src new file mode 100644 index 000000000..7fca364b2 --- /dev/null +++ b/src/Makefile.src @@ -0,0 +1,33 @@ +# Hey Emacs, this is a -*- makefile -*- + +CFLAGS += -I$(MC1322X)/src + +ISR ?= $(MC1322X)/src/isr.o +SRC_OBJS += $(MC1322X)/src/default_lowlevel.o $(ISR) + +# Two libraries, one with ROM variable space reserved, one without +START_ROMVARS ?= $(MC1322X)/src/start-romvars.o +SRCLIB_ROMVARS = $(MC1322X)/src/src-romvars.a +$(SRCLIB_ROMVARS): $(SRCLIB_ROMVARS)($(SRC_OBJS) $(START_ROMVARS)) + +START ?= $(MC1322X)/src/start.o +SRCLIB = $(MC1322X)/src/src.a +$(SRCLIB): $(SRCLIB)($(SRC_OBJS) $(START)) + +# ISR is built without thumb +$(ISR): $(ISR:.o=.c) + $(CC) $(CFLAGS) -MMD -c -o $@ $< + @$(FINALIZE_DEPENDENCY) + +# start-romvars.o is built from start.S with the right flags +$(MC1322X)/src/start-romvars.o: $(MC1322X)/src/start.S + $(CC) $(AFLAGS) -MMD -DUSE_ROM_VARS -c -o $@ $< + @$(FINALIZE_DEPENDENCY) + +ifneq ($(MAKECMDGOALS),clean) +-include $(wildcard $(MC1322X)/src/*.d) +endif + +clean:: + rm -f $(MC1322X)/src/*.{o,d,a} + diff --git a/src/default_lowlevel.c b/src/default_lowlevel.c index dcf0d8b64..9ce0b65a6 100644 --- a/src/default_lowlevel.c +++ b/src/default_lowlevel.c @@ -34,7 +34,6 @@ */ #include -#include void default_vreg_init(void) { volatile uint32_t i; diff --git a/src/isr.c b/src/isr.c index a4bf6658f..b041d56e4 100644 --- a/src/isr.c +++ b/src/isr.c @@ -34,7 +34,6 @@ */ #include -#include __attribute__ ((section (".irq"))) __attribute__ ((interrupt("IRQ"))) From 1a014bab1b561a2efb3f12d60239b7192d28cf7c Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Fri, 24 Sep 2010 15:33:55 -0400 Subject: [PATCH 391/471] Add structure-based timer register definitions --- lib/include/tmr.h | 111 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 107 insertions(+), 4 deletions(-) diff --git a/lib/include/tmr.h b/lib/include/tmr.h index be3b88ae1..14213b36e 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -33,6 +33,9 @@ * $Id$ */ +#ifndef TMR_H +#define TMR_H + #include "utils.h" /* Timer registers are all 16-bit wide with 16-bit access only */ @@ -43,6 +46,107 @@ #define TMR2_BASE (TMR_BASE + TMR_OFFSET*2) #define TMR3_BASE (TMR_BASE + TMR_OFFSET*3) +/* Structure-based register definitions */ +/* Example use: + TMR2.CTRL = 0x1234; + TMR2.CTRLbits = (struct TMR_CTRL) { + .DIR = 1, + .OUTPUT_MODE = 2, + }; + TMR2.CTRLbits.PRIMARY_CNT_SOURCE = 3; +*/ + +struct TMR_struct { + uint16_t COMP1; + uint16_t COMP2; + uint16_t CAPT; + uint16_t LOAD; + uint16_t HOLD; + uint16_t CNTR; + union { + uint16_t CTRL; + struct TMR_CTRL { + uint16_t OUTPUT_MODE:3; + uint16_t CO_INIT:1; + uint16_t DIR:1; + uint16_t LENGTH:1; + uint16_t ONCE:1; + uint16_t SECONDARY_CNT_SOURCE:2; + uint16_t PRIMARY_CNT_SOURCE:4; + uint16_t COUNT_MODE:3; + } CTRLbits; + }; + union { + uint16_t SCTRL; + struct TMR_SCTRL { + uint16_t OEN:1; + uint16_t OPS:1; + uint16_t FORCE:1; + uint16_t VAL:1; + uint16_t EEOF:1; + uint16_t MSTR:1; + uint16_t CAPTURE_MODE:2; + uint16_t INPUT:1; + uint16_t IPS:1; + uint16_t IEFIE:1; + uint16_t IEF:1; + uint16_t TOFIE:1; + uint16_t TOF:1; + uint16_t TCFIE:1; + uint16_t TCF:1; + } SCTRLbits; + }; + uint16_t CMPLD1; + uint16_t CMPLD2; + union { + uint16_t CSCTRL; + struct TMR_CSCTRL { + uint16_t CL1:2; + uint16_t CL2:2; + uint16_t TCF1:1; + uint16_t TCF2:1; + uint16_t TCF1EN:1; + uint16_t TCF2EN:1; + uint16_t :5; + uint16_t FILT_EN:1; + uint16_t DBG_EN:2; + } CSCTRLbits; + }; + + uint16_t reserved[4]; + + union { + uint16_t ENBL; + struct TMR_ENBL { + union { + struct { + uint16_t ENBL:4; + }; + struct { + uint16_t ENBL3:1; + uint16_t ENBL2:1; + uint16_t ENBL1:1; + uint16_t ENBL0:1; + }; + }; + uint16_t :12; + } ENBLbits; + }; +}; + +static volatile struct TMR_struct * const _TMR0 = (void *) (TMR0_BASE); +static volatile struct TMR_struct * const _TMR1 = (void *) (TMR1_BASE); +static volatile struct TMR_struct * const _TMR2 = (void *) (TMR2_BASE); +static volatile struct TMR_struct * const _TMR3 = (void *) (TMR3_BASE); +#define TMR0 (*_TMR0) +#define TMR1 (*_TMR1) +#define TMR2 (*_TMR2) +#define TMR3 (*_TMR3) + + +/* Old timer definitions, for compatibility */ +#ifndef REG_NO_COMPAT + #define TMR_REGOFF_COMP1 (0x0) #define TMR_REGOFF_COMP2 (0x2) #define TMR_REGOFF_CAPT (0x4) @@ -119,9 +223,8 @@ #define TMR3_CMPLD2 ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CMPLD2)) #define TMR3_CSCTRL ((volatile uint16_t *) (TMR3_BASE + TMR_REGOFF_CSCTRL)) -#define TCF 15 -#define TCF1 4 -#define TCF2 5 - #define TMR(num, reg) CAT2(TMR,num,_##reg) +#endif /* REG_NO_COMPAT */ + +#endif From 7fb074c060b35910005987ac6bbd2ba73abcbb00 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Fri, 24 Sep 2010 16:27:59 -0400 Subject: [PATCH 392/471] Add structure-based GPIO register definitions --- lib/include/gpio.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/lib/include/gpio.h b/lib/include/gpio.h index 91df35126..e2999c4d9 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -36,6 +36,64 @@ #ifndef GPIO_H #define GPIO_H +/* Structure-based GPIO access + Example usage: + + GPIO.FUNC_SEL0 |= 0x00008000; // set a whole register + + GPIO.FUNC_SEL_08 = 2; // set just one pin + + #define MY_PIN GPIO_08 + GPIO.FUNC_SEL.MY_PIN = 2; // same, to allow #define for pin names + GPIO.DATA.MY_PIN = 1; +*/ + +#define _V(x,n,i) uint32_t x##_##i : n; +#define _REP(x,n) \ + _V(x,n,00) _V(x,n,01) _V(x,n,02) _V(x,n,03) _V(x,n,04) _V(x,n,05) _V(x,n,06) _V(x,n,07) \ + _V(x,n,08) _V(x,n,09) _V(x,n,10) _V(x,n,11) _V(x,n,12) _V(x,n,13) _V(x,n,14) _V(x,n,15) \ + _V(x,n,16) _V(x,n,17) _V(x,n,18) _V(x,n,19) _V(x,n,20) _V(x,n,21) _V(x,n,22) _V(x,n,23) \ + _V(x,n,24) _V(x,n,25) _V(x,n,26) _V(x,n,27) _V(x,n,28) _V(x,n,29) _V(x,n,30) _V(x,n,31) \ + _V(x,n,32) _V(x,n,33) _V(x,n,34) _V(x,n,35) _V(x,n,36) _V(x,n,37) _V(x,n,38) _V(x,n,39) \ + _V(x,n,40) _V(x,n,41) _V(x,n,42) _V(x,n,43) _V(x,n,44) _V(x,n,45) _V(x,n,46) _V(x,n,47) \ + _V(x,n,48) _V(x,n,49) _V(x,n,50) _V(x,n,51) _V(x,n,52) _V(x,n,53) _V(x,n,54) _V(x,n,55) \ + _V(x,n,56) _V(x,n,57) _V(x,n,58) _V(x,n,59) _V(x,n,60) _V(x,n,61) _V(x,n,62) _V(x,n,63) + +struct GPIO_struct { +#define _IO(x) \ + union { struct { uint32_t x##0; uint32_t x##1; }; \ + struct { _REP(x, 1) }; \ + struct { _REP(GPIO, 1) } x; }; +#define _IO_2bit(x) \ + union { struct { uint32_t x##0; uint32_t x##1; uint32_t x##2; uint32_t x##3; }; \ + struct { _REP(x, 2) }; \ + struct { _REP(GPIO, 2) } x; }; + + _IO(PAD_DIR); + _IO(DATA); + _IO(PAD_PU_EN); + _IO_2bit(FUNC_SEL); + _IO(DATA_SEL); + _IO(PAD_PU_SEL); + _IO(PAD_HYST_EN); + _IO(PAD_KEEP); + _IO(DATA_SET); + _IO(DATA_RESET); + _IO(PAD_DIR_SET); + _IO(PAD_DIR_RESET); +}; +#undef _IO +#undef _IO_2bit +#undef _REP +#undef _V + +static volatile struct GPIO_struct * const _GPIO = (void *) (0x80000000); +#define GPIO (*_GPIO) + + +/* Old register definitions, for compatibility */ +#ifndef REG_NO_COMPAT + #define GPIO_PAD_DIR0 ((volatile uint32_t *) 0x80000000) #define GPIO_PAD_DIR1 ((volatile uint32_t *) 0x80000004) #define GPIO_DATA0 ((volatile uint32_t *) 0x80000008) @@ -87,4 +145,6 @@ inline void gpio_pad_dir_reset(volatile uint64_t data); #define gpio_pu1_enable(b) (set_bit(*GPIO_PAD_PU_EN1,b-32)) #define gpio_pu1_disable(b) (clear_bit(*GPIO_PAD_PU_EN1,b-32)) +#endif /* REG_NO_COMPAT */ + #endif From 50306de9c348dfba83ad7a97c19606847d969cd0 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Fri, 24 Sep 2010 18:06:36 -0400 Subject: [PATCH 393/471] Fix typo -- no ROMVARS for normal targets. --- Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index f50bc07c4..4251eb9ed 100644 --- a/Makefile.include +++ b/Makefile.include @@ -63,7 +63,7 @@ endef # Targets that need space for rom variables: $(foreach t, $(TARGETS_ROMVARS), $(eval $(call build_elf_rule,$(t),$(SRCLIB_ROMVARS)))) # All other targets (wildcard rule): -$(eval $(call build_elf_rule,%,$(SRCLIB_ROMVARS))) +$(eval $(call build_elf_rule,%,$(SRCLIB))) # Generic rules %.srec: %.elf From 87e628b89754af66a733e775153080060eb3a2bd Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Fri, 24 Sep 2010 18:07:22 -0400 Subject: [PATCH 394/471] Remove old config.mk --- config.mk | 49 ------------------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 config.mk diff --git a/config.mk b/config.mk deleted file mode 100644 index 52e5a5421..000000000 --- a/config.mk +++ /dev/null @@ -1,49 +0,0 @@ -PLATFORM_LDFLAGS = -PLATFORM_RELFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8 -ffunction-sections -msoft-float -Wcast-align -Wall -PLATFORM_CPPFLAGS = -march=armv4t -mlong-calls -mtune=arm7tdmi-s -DCONFIG_ARM -D__ARM__ -mthumb-interwork -THUMB_FLAGS= -mthumb -mcallee-super-interworking - -######################################################################### - -# -# Include the make variables (CC, etc...) -# -AS = $(CROSS_COMPILE)as -LD = $(CROSS_COMPILE)ld -CC = $(CROSS_COMPILE)gcc -CPP = $(CC) -E -AR = $(CROSS_COMPILE)ar -NM = $(CROSS_COMPILE)nm -STRIP = $(CROSS_COMPILE)strip -OBJCOPY = $(CROSS_COMPILE)objcopy -OBJDUMP = $(CROSS_COMPILE)objdump -RANLIB = $(CROSS_COMPILE)RANLIB - -RELFLAGS= $(PLATFORM_RELFLAGS) -DBGFLAGS= -g -DDEBUG -OPTFLAGS= -Os #-fomit-frame-pointer -LDSCRIPT := boot.lds -OBJCFLAGS += --gap-fill=0xff -ARFLAGS = cru - -gccincdir := $(shell $(CC) -print-file-name=include) - -CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ - -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ - -fno-builtin -ffreestanding -isystem \ - $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) - -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wcast-align -Wextra -Werror - -AFLAGS_DEBUG := -Wa,-gstabs -AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) - -LDFLAGS += -T $(LINKERSCRIPT) -nostartfiles -static -Wl,-Map=$*_$(BOARD).map -export-dynamic - -######################################################################### - -export CROSS_COMPILE AS LD CC CPP AR NM STRIP OBJCOPY OBJDUMP MAKE -export TEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS CPPFLAGS CFLAGS AFLAGS - -######################################################################### - From 0c163122da4d9c2d1af55349fde9a4108075597e Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Fri, 24 Sep 2010 18:21:29 -0400 Subject: [PATCH 395/471] Pretty-print the output by default. This makes it a lot easier to see what's going on, and let me find some problems. Use "make Q=" or set Q= blank in your user Makefile to see the full commands. --- Makefile.include | 32 +++++++++++++++++++++++++------- board/Makefile.board | 11 +++++++---- src/Makefile.src | 6 ++++-- 3 files changed, 36 insertions(+), 13 deletions(-) diff --git a/Makefile.include b/Makefile.include index 4251eb9ed..709714894 100644 --- a/Makefile.include +++ b/Makefile.include @@ -5,6 +5,12 @@ all: $(addsuffix _$(BOARD).bin, $(TARGETS) $(TARGETS_ROMVARS)) .PHONY: all +# Pretty print output. Use "make Q=" to see full commands +Q ?= @ +define pretty + @printf "%8s %s\n" "$1" "$2" +endef + # Don't delete intermediate targets .SECONDARY: @@ -46,6 +52,7 @@ AFLAGS ?= -Wa,-gstabs $(CFLAGS) # Misc tool options OBJCOPYFLAGS ?= --gap-fill=0xff +ARFLAGS = cr ##### @@ -58,7 +65,8 @@ include $(MC1322X)/src/Makefile.src # that links $(SRCLIB) as well as target-specific rules that link $(SRCLIB_ROMVARS) define build_elf_rule $(1)_$$(BOARD).elf: $$(OBJDIR)/$(1).o $$(OBJDIR)/board.a $$(MC1322X)/lib/libmc1322x.a $(2) - $$(CC) $$(LDFLAGS) -o $$@ -Wl,--start-group $$^ -lm -Wl,--end-group + $$(call pretty,LINK,$$@) + $$Q$$(CC) $$(LDFLAGS) -o $$@ -Wl,--start-group $$^ -lm -Wl,--end-group endef # Targets that need space for rom variables: $(foreach t, $(TARGETS_ROMVARS), $(eval $(call build_elf_rule,$(t),$(SRCLIB_ROMVARS)))) @@ -67,25 +75,35 @@ $(eval $(call build_elf_rule,%,$(SRCLIB))) # Generic rules %.srec: %.elf - $(OBJCOPY) $(OBJCOPYFLAGS) -O srec $< $@ + $(call pretty,OBJCOPY,$@) + $Q$(OBJCOPY) $(OBJCOPYFLAGS) -O srec $< $@ %.ihex: %.elf - $(OBJCOPY) $(OBJCOPYFLAGS) -O ihex $< $@ + $(call pretty,OBJCOPY,$@) + $Q$(OBJCOPY) $(OBJCOPYFLAGS) -O ihex $< $@ %.bin: %.elf - $(OBJCOPY) $(OBJCOPYFLAGS) -O binary $< $@ + $(call pretty,OBJCOPY,$@) + $Q$(OBJCOPY) $(OBJCOPYFLAGS) -O binary $< $@ %.dis: %.elf - $(OBJDUMP) -Sd $< > $@ || rm -f $@ + $(call pretty,OBJDUMP,$@) + $Q$(OBJDUMP) -Sd $< > $@ || rm -f $@ %.o: %.c - $(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $< + $(call pretty,CC,$@) + $Q$(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) %.o: %.S - $(CC) $(AFLAGS) -MMD -c -o $@ $< + $(call pretty,AS,$@) + $Q$(CC) $(AFLAGS) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) +(%): % + $(call pretty,AR,$@($<)) + @$(AR) $(ARFLAGS) $@ $< + # Fix the dependencies generated for a particular target .o # See http://make.paulandlesley.org/autodep.html#advanced define FINALIZE_DEPENDENCY diff --git a/board/Makefile.board b/board/Makefile.board index 7e1740c5f..ffd1f0b8c 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -7,19 +7,22 @@ CFLAGS += -I$(OBJDIR) -I$(MC1322X)/board -DBOARD=$(BOARD) # Create directory and board.h include $(OBJDIR)/board.h: - mkdir -p $(OBJDIR) - echo '/* This file was automatically generated */' > $(OBJDIR)/board.h - echo '#include "$(BOARD).h"' >> $(OBJDIR)/board.h + $(call pretty,GEN,$@) + $(Q)mkdir -p $(OBJDIR) + $(Q)echo '/* This file was automatically generated */' > $(OBJDIR)/board.h + $(Q)echo '#include "$(BOARD).h"' >> $(OBJDIR)/board.h # $(OBJDIR)/board.a contains all the objects defined in COBJS $(OBJDIR)/board.a: $(OBJDIR)/board.h $(OBJDIR)/board.a($(addprefix $(OBJDIR)/, $(COBJS))) # And is built from files in the parent directory $(OBJDIR)/%.o: %.c $(OBJDIR)/board.h - $(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $< + $(call pretty,CC,$@) + $Q$(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) $(OBJDIR)/%.o: %.S $(OBJDIR)/board.h + $(call pretty,AS,$@) $(CC) $(AFLAGS) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) diff --git a/src/Makefile.src b/src/Makefile.src index 7fca364b2..573dd0e38 100644 --- a/src/Makefile.src +++ b/src/Makefile.src @@ -16,12 +16,14 @@ $(SRCLIB): $(SRCLIB)($(SRC_OBJS) $(START)) # ISR is built without thumb $(ISR): $(ISR:.o=.c) - $(CC) $(CFLAGS) -MMD -c -o $@ $< + $(call pretty,CC (isr),$@) + $Q$(CC) $(CFLAGS) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) # start-romvars.o is built from start.S with the right flags $(MC1322X)/src/start-romvars.o: $(MC1322X)/src/start.S - $(CC) $(AFLAGS) -MMD -DUSE_ROM_VARS -c -o $@ $< + $(call pretty,CC (romvars),$@) + $Q$(CC) $(AFLAGS) -MMD -DUSE_ROM_VARS -c -o $@ $< @$(FINALIZE_DEPENDENCY) ifneq ($(MAKECMDGOALS),clean) From 744b4f4764297883f0a4b70adab0d8e91bd8b842 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Fri, 24 Sep 2010 18:27:14 -0400 Subject: [PATCH 396/471] Fix typo, used wrong name for TARGETS_WITH_ROM_VARS. Also makes the pretty print output specify whether we're linking against romvars or not. --- Makefile.include | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/Makefile.include b/Makefile.include index 709714894..8419be117 100644 --- a/Makefile.include +++ b/Makefile.include @@ -2,7 +2,7 @@ # Set up a default target in case the user didn't already have one. # "all" means to build .bin for all defined targets for the currently-defined board -all: $(addsuffix _$(BOARD).bin, $(TARGETS) $(TARGETS_ROMVARS)) +all: $(addsuffix _$(BOARD).bin, $(TARGETS) $(TARGETS_WITH_ROM_VARS)) .PHONY: all # Pretty print output. Use "make Q=" to see full commands @@ -61,17 +61,22 @@ include $(MC1322X)/lib/Makefile.lib include $(MC1322X)/src/Makefile.src ##### -# Rule for building ELF files. We generate both a wildcard rule -# that links $(SRCLIB) as well as target-specific rules that link $(SRCLIB_ROMVARS) +# Rule for building ELF files. We use both a wildcard rule that links +# $(SRCLIB) as well as target-specific rules that link $(SRCLIB_ROMVARS) + +# Normal targets (wildcard rule): +%_$(BOARD).elf: $(OBJDIR)/%.o $(OBJDIR)/board.a $(MC1322X)/lib/libmc1322x.a $(SRCLIB) + $(call pretty,LINK,$@) + $Q$(CC) $(LDFLAGS) -o $@ -Wl,--start-group $^ -lm -Wl,--end-group + +# Targets that need space for rom variables: define build_elf_rule -$(1)_$$(BOARD).elf: $$(OBJDIR)/$(1).o $$(OBJDIR)/board.a $$(MC1322X)/lib/libmc1322x.a $(2) - $$(call pretty,LINK,$$@) +$(1)_$$(BOARD).elf: $$(OBJDIR)/$(1).o $$(OBJDIR)/board.a $$(MC1322X)/lib/libmc1322x.a $$(SRCLIB_ROMVARS) + $$(call pretty,LINK (romvars),$$@) $$Q$$(CC) $$(LDFLAGS) -o $$@ -Wl,--start-group $$^ -lm -Wl,--end-group endef -# Targets that need space for rom variables: -$(foreach t, $(TARGETS_ROMVARS), $(eval $(call build_elf_rule,$(t),$(SRCLIB_ROMVARS)))) -# All other targets (wildcard rule): -$(eval $(call build_elf_rule,%,$(SRCLIB))) +$(foreach t, $(TARGETS_WITH_ROM_VARS), $(eval $(call build_elf_rule,$(t)))) + # Generic rules %.srec: %.elf @@ -115,7 +120,6 @@ endef clean:: rm -f *.{o,d,a,bin,elf,ihex,srec,dis,map,bak} *~ - rm -rf obj_* .PHONY: clean From ebac883e2504ce338c81727eca752030fc678bf8 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 15:09:26 -0400 Subject: [PATCH 397/471] Handle empty board.a (no COBJS defined) --- board/Makefile.board | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/board/Makefile.board b/board/Makefile.board index ffd1f0b8c..60eefb62c 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -13,7 +13,13 @@ $(OBJDIR)/board.h: $(Q)echo '#include "$(BOARD).h"' >> $(OBJDIR)/board.h # $(OBJDIR)/board.a contains all the objects defined in COBJS +ifdef COBJS $(OBJDIR)/board.a: $(OBJDIR)/board.h $(OBJDIR)/board.a($(addprefix $(OBJDIR)/, $(COBJS))) +else +$(OBJDIR)/board.a: $(OBJDIR)/board.h + $(call pretty,AR (empty),$@) + $Q$(AR) $(ARFLAGS) $@ +endif # And is built from files in the parent directory $(OBJDIR)/%.o: %.c $(OBJDIR)/board.h From b00708cf781413d602326960fd6bfa98157d45c8 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 15:26:44 -0400 Subject: [PATCH 398/471] Put main dir on include path Now the user can supply their own foo.h that obj_foo/board.h will include --- board/Makefile.board | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/Makefile.board b/board/Makefile.board index 60eefb62c..32d7691fd 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -3,7 +3,7 @@ ALL_BOARDS = redbee-dev redbee-r1 redbee-usb redbee-econotag quahogcon freescale-ncb OBJDIR = obj_$(BOARD) -CFLAGS += -I$(OBJDIR) -I$(MC1322X)/board -DBOARD=$(BOARD) +CFLAGS += -I. -I$(OBJDIR) -I$(MC1322X)/board -DBOARD=$(BOARD) # Create directory and board.h include $(OBJDIR)/board.h: From 4a5508e5b85a39e6ab385ddb53389c24128610d1 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 15:29:10 -0400 Subject: [PATCH 399/471] Fix #ifdefs in board files --- board/redbee-econotag.h | 4 ++-- board/redbee-usb.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/board/redbee-econotag.h b/board/redbee-econotag.h index ff1340fc7..fdbe1f265 100644 --- a/board/redbee-econotag.h +++ b/board/redbee-econotag.h @@ -33,8 +33,8 @@ * $Id$ */ -#ifndef BOARD_REDBEE_DEV_H -#define BOARD_REDBEE_DEV_H +#ifndef BOARD_REDBEE_ECONOTAG_H +#define BOARD_REDBEE_ECONOTAG_H #define LED_RED 44 #define LED_GREEN 45 diff --git a/board/redbee-usb.h b/board/redbee-usb.h index 5ce21d43b..b18e628d9 100644 --- a/board/redbee-usb.h +++ b/board/redbee-usb.h @@ -33,8 +33,8 @@ * $Id$ */ -#ifndef BOARD_REDBEE_DEV_H -#define BOARD_REDBEE_DEV_H +#ifndef BOARD_REDBEE_USB_H +#define BOARD_REDBEE_USB_H #define LED_RED 23 #define LED_GREEN 24 From d6adce955cb4b4c91f574a5d89e8e0045ce75357 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 15:33:53 -0400 Subject: [PATCH 400/471] Add pin definitions for each timer, they're fixed --- lib/include/tmr.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/include/tmr.h b/lib/include/tmr.h index 14213b36e..54e9b27a2 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -143,6 +143,10 @@ static volatile struct TMR_struct * const _TMR3 = (void *) (TMR3_BASE); #define TMR2 (*_TMR2) #define TMR3 (*_TMR3) +#define TMR0_PIN GPIO_08 +#define TMR1_PIN GPIO_09 +#define TMR2_PIN GPIO_10 +#define TMR3_PIN GPIO_11 /* Old timer definitions, for compatibility */ #ifndef REG_NO_COMPAT From b7727f65959b4c3e858bd903b4bbd611f1e9a677 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 16:40:24 -0400 Subject: [PATCH 401/471] Move startup code into its own section so the linker can place it first --- mc1322x.lds | 4 ++-- src/start.S | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mc1322x.lds b/mc1322x.lds index 2b233bf64..d4a93a57f 100644 --- a/mc1322x.lds +++ b/mc1322x.lds @@ -2,7 +2,7 @@ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) -SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); +ENTRY(_start) SECTIONS { @@ -18,7 +18,7 @@ HEAP_SIZE = 1024; PROVIDE (__executable_start = 0x00400000); . = 0x00400000; .text : { - *start*.o (.text) + *(.start) *(.irq) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ diff --git a/src/start.S b/src/start.S index d60c90221..82a0e7651 100644 --- a/src/start.S +++ b/src/start.S @@ -53,6 +53,7 @@ ************************************************************************* */ +.section .start .set base, . .set _rom_data_init, 0x108d0 From 1391f5f8b566d277b08e7ee5999f54345d075fdd Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 16:41:24 -0400 Subject: [PATCH 402/471] Remove unused code --- src/start.S | 39 --------------------------------------- 1 file changed, 39 deletions(-) diff --git a/src/start.S b/src/start.S index 82a0e7651..14782b964 100644 --- a/src/start.S +++ b/src/start.S @@ -169,26 +169,6 @@ _fiq: .word fiq .balignl 16,0xdeadbeef -/* - ************************************************************************* - * - * Startup Code (reset vector) - * - * do important init only if we don't start from memory! - * relocate armboot to ram - * setup stack - * jump to second stage - * - ************************************************************************* - */ - -_TEXT_BASE: - .word TEXT_BASE - -.globl _armboot_start -_armboot_start: - .word _start - /* * These are defined in the board-specific linker script. */ @@ -200,25 +180,10 @@ _bss_start: _bss_end: .word _end -_start_armboot: .word main - _system_stack: . = . + usr_stack_size + irq_stack_size + fiq_stack_size + und_stack_size + abt_stack_size + sup_stack_size -/* - ************************************************************************* - * - * CPU_init_critical registers - * - ************************************************************************* - */ - -cpu_init_crit: - # actually do nothing for now! - mov pc, lr - - /* * exception handlers */ @@ -245,7 +210,3 @@ not_used: fiq: .align 5 - -.globl reset_cpu -reset_cpu: - mov pc, r0 From 9b6f648efbb818d6cc2cc514edc79c0072c65c14 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 17:15:55 -0400 Subject: [PATCH 403/471] Add macro to help compute TMR.ENBL values (useful when using #defined values to represent timers) --- lib/include/tmr.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/include/tmr.h b/lib/include/tmr.h index 54e9b27a2..011c6d18c 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -143,6 +143,12 @@ static volatile struct TMR_struct * const _TMR3 = (void *) (TMR3_BASE); #define TMR2 (*_TMR2) #define TMR3 (*_TMR3) +/* Used to compute which enable bit to set for a particular timer, e.g. + TMR0.ENBL |= TMR_ENABLE_BIT(TMR2); + Helpful when you're using macros to define timers +*/ +#define TMR_ENABLE_BIT(x) ((&(x) == &(TMR0)) ? 1 : (&(x) == &(TMR1)) ? 2 : (&(x) == &(TMR2)) ? 4 : (&(x) == &(TMR3)) ? 8 : 0) + #define TMR0_PIN GPIO_08 #define TMR1_PIN GPIO_09 #define TMR2_PIN GPIO_10 From ba2792a70b6062b15342b58b81392f74fa7c539c Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 17:48:28 -0400 Subject: [PATCH 404/471] Force linker to treat "_start" as undefined, so it pulls it in from src.a. --- Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index 8419be117..bf45651b9 100644 --- a/Makefile.include +++ b/Makefile.include @@ -45,7 +45,7 @@ CFLAGS_THUMB ?= -mthumb -mcallee-super-interworking # Linker flags LINKERSCRIPT ?= $(MC1322X)/mc1322x.lds -LDFLAGS ?= -T $(LINKERSCRIPT) -nostartfiles -static -export-dynamic -Wl,-Map=$(@:.elf=.map) +LDFLAGS ?= -T $(LINKERSCRIPT) -nostartfiles -static -export-dynamic -u_start -Wl,-Map=$(@:.elf=.map) # Assembler flags AFLAGS ?= -Wa,-gstabs $(CFLAGS) From 6c93b8fb0b72d2e0061b87f2138caeddad18aa2c Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 22:40:40 -0400 Subject: [PATCH 405/471] Add structure-based CRM definitions --- lib/include/crm.h | 258 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 223 insertions(+), 35 deletions(-) diff --git a/lib/include/crm.h b/lib/include/crm.h index 5891fd99e..a4b81d421 100644 --- a/lib/include/crm.h +++ b/lib/include/crm.h @@ -39,47 +39,233 @@ #include #define CRM_BASE (0x80003000) -#define CRM_SYS_CNTL ((volatile uint32_t *) (CRM_BASE+0x00)) -#define CRM_WU_CNTL ((volatile uint32_t *) (CRM_BASE+0x04)) -#define CRM_SLEEP_CNTL ((volatile uint32_t *) (CRM_BASE+0x08)) -#define CRM_BS_CNTL ((volatile uint32_t *) (CRM_BASE+0x0c)) -#define CRM_COP_CNTL ((volatile uint32_t *) (CRM_BASE+0x10)) -#define CRM_COP_SERVICE ((volatile uint32_t *) (CRM_BASE+0x14)) -#define CRM_STATUS ((volatile uint32_t *) (CRM_BASE+0x18)) -#define CRM_MOD_STATUS ((volatile uint32_t *) (CRM_BASE+0x1c)) -#define CRM_WU_COUNT ((volatile uint32_t *) (CRM_BASE+0x20)) -#define CRM_WU_TIMEOUT ((volatile uint32_t *) (CRM_BASE+0x24)) -#define CRM_RTC_COUNT ((volatile uint32_t *) (CRM_BASE+0x28)) -#define CRM_RTC_TIMEOUT ((volatile uint32_t *) (CRM_BASE+0x2c)) -#define CRM_CAL_CNTL ((volatile uint32_t *) (CRM_BASE+0x34)) -#define CRM_CAL_COUNT ((volatile uint32_t *) (CRM_BASE+0x38)) -#define CRM_RINGOSC_CNTL ((volatile uint32_t *) (CRM_BASE+0x3c)) -#define CRM_XTAL_CNTL ((volatile uint32_t *) (CRM_BASE+0x40)) -#define CRM_XTAL32_CNTL ((volatile uint32_t *) (CRM_BASE+0x44)) -#define CRM_VREG_CNTL ((volatile uint32_t *) (CRM_BASE+0x48)) -#define CRM_SW_RST ((volatile uint32_t *) (CRM_BASE+0x50)) + +/* Structure-based CRM access */ +struct CRM_struct { + union { + uint32_t SYS_CNTL; + struct CRM_SYS_CNTL { + uint32_t PWR_SOURCE:2; + uint32_t PADS_1P8V_SEL:1; + uint32_t :1; + uint32_t JTAG_SECU_OFF:1; + uint32_t XTAL32_EXISTS:1; + uint32_t :2; + uint32_t XTAL_CLKDIV:6; + uint32_t :18; + } SYS_CNTLbits; + }; + union { + uint32_t WU_CNTL; + struct CRM_WU_CNTL { + uint32_t TIMER_WU_EN:1; + uint32_t RTC_WU_EN:1; + uint32_t HOST_WAKE:1; + uint32_t AUTO_ADC:1; + uint32_t EXT_WU_EN:4; + uint32_t EXT_WU_EDGE:4; + uint32_t EXT_WU_POL:4; + uint32_t TIMER_WU_IEN:1; + uint32_t RTC_WU_IEN:1; + uint32_t :2; + uint32_t EXT_WU_IEN:4; + uint32_t :4; + uint32_t EXT_OUT_POL:4; + } WU_CNTLbits; + }; + union { + uint32_t SLEEP_CNTL; + struct CRM_SLEEP_CNTL { + uint32_t HIB:1; + uint32_t DOZE:1; + uint32_t :2; + uint32_t RAM_RET:2; + uint32_t MCU_RET:1; + uint32_t DIG_PAD_EN:1; + uint32_t :24; + } SLEEP_CNTLbits; + }; + union { + uint32_t BS_CNTL; + struct CRM_BS_CNTL { + uint32_t BS_EN:1; + uint32_t WAIT4IRQ:1; + uint32_t BS_MAN_EN:1; + uint32_t :2; + uint32_t ARM_OFF_TIME:6; + uint32_t :18; + } BS_CNTLbits; + }; + union { + uint32_t COP_CNTL; + struct CRM_COP_CNTL { + uint32_t COP_EN:1; + uint32_t COP_OUT:1; + uint32_t COP_WP:1; + uint32_t :5; + uint32_t COP_TIMEOUT:7; + uint32_t :1; + uint32_t COP_COUNT:7; + uint32_t :9; + } COP_CNTLbits; + }; + uint32_t COP_SERVICE; + union { + uint32_t STATUS; + struct CRM_STATUS { + uint32_t SLEEP_SYNC:1; + uint32_t HIB_WU_EVT:1; + uint32_t DOZE_WU_EVT:1; + uint32_t RTC_WU_EVT:1; + uint32_t EXT_WU_EVT:4; + uint32_t :1; + uint32_t CAL_DONE:1; + uint32_t COP_EVT:1; + uint32_t :6; + uint32_t VREG_BUCK_RDY:1; + uint32_t VREG_1P8V_RDY:1; + uint32_t VREG_1P5V_RDY:1; + uint32_t :12; + } STATUSbits; + }; + union { + uint32_t MOD_STATUS; + struct CRM_MOD_STATUS { + uint32_t ARM_EN:1; + uint32_t MACA_EN:1; + uint32_t ASM_EN:1; + uint32_t SPI_EN:1; + uint32_t GPIO_EN:1; + uint32_t UART1_EN:1; + uint32_t UART2_EN:1; + uint32_t TMR_EN:1; + uint32_t RIF_EN:1; + uint32_t I2C_EN:1; + uint32_t SSI_EN:1; + uint32_t SPIF_EN:1; + uint32_t ADC_EN:1; + uint32_t :1; + uint32_t JTA_EN:1; + uint32_t NEX_EN:1; + uint32_t :1; + uint32_t AIM_EN:1; + uint32_t :14; + } MOD_STATUSbits; + }; + uint32_t WU_COUNT; + uint32_t WU_TIMEOUT; + uint32_t RTC_COUNT; + uint32_t RTC_TIMEOUT; + uint32_t reserved1; + union { + uint32_t CAL_CNTL; + struct CRM_CAL_CNTL { + uint32_t CAL_TIMEOUT:16; + uint32_t CAL_EN:1; + uint32_t CAL_IEN:1; + uint32_t :14; + } CAL_CNTLbits; + }; + uint32_t CAL_COUNT; + union { + uint32_t RINGOSC_CNTL; + struct CRM_RINGOSC_CNTL { + uint32_t ROSC_EN:1; + uint32_t :3; + uint32_t ROSC_FTUNE:5; + uint32_t ROSC_CTUNE:4; + uint32_t :19; + } RINGOSC_CNTLbits; + }; + union { + uint32_t XTAL_CNTL; + struct CRM_XTAL_CNTL { + uint32_t :8; + uint32_t XTAL_IBIAS_SEL:4; + uint32_t :4; + uint32_t XTAL_FTUNE:5; + uint32_t XTAL_CTUNE:5; + uint32_t :6; + } XTAL_CNTLbits; + }; + union { + uint32_t XTAL32_CNTL; + struct CRM_XTAL32_CNTL { + uint32_t XTAL32_EN:1; + uint32_t :3; + uint32_t XTAL32_GAIN:2; + uint32_t :26; + } XTAL32_CNTLbits; + }; + union { + uint32_t VREG_CNTL; + struct CRM_VREG_CNTL { + uint32_t BUCK_EN:1; + uint32_t BUCK_SYNC_REC_EN:1; + uint32_t BUCK_BYPASS_EN:1; + uint32_t VREG_1P5V_EN:2; + uint32_t VREG_1P5V_SEL:2; + uint32_t VREG_1P8V_EN:1; + uint32_t BUCK_CLKDIV:4; + uint32_t :20; + } VREG_CNTLbits; + }; + uint32_t reserved2; + uint32_t SW_RST; + uint32_t reserved3; + uint32_t reserved4; + uint32_t reserved5; + uint32_t reserved6; +}; + +static volatile struct CRM_struct * const _CRM = (void *) (CRM_BASE); +#define CRM (*_CRM) + + +/* Old register definitions, for compatibility */ +#ifndef REG_NO_COMPAT + +static volatile uint32_t * const CRM_SYS_CNTL = ((volatile uint32_t *) (CRM_BASE+0x00)); +static volatile uint32_t * const CRM_WU_CNTL = ((volatile uint32_t *) (CRM_BASE+0x04)); +static volatile uint32_t * const CRM_SLEEP_CNTL = ((volatile uint32_t *) (CRM_BASE+0x08)); +static volatile uint32_t * const CRM_BS_CNTL = ((volatile uint32_t *) (CRM_BASE+0x0c)); +static volatile uint32_t * const CRM_COP_CNTL = ((volatile uint32_t *) (CRM_BASE+0x10)); +static volatile uint32_t * const CRM_COP_SERVICE= ((volatile uint32_t *) (CRM_BASE+0x14)); +static volatile uint32_t * const CRM_STATUS = ((volatile uint32_t *) (CRM_BASE+0x18)); +static volatile uint32_t * const CRM_MOD_STATUS = ((volatile uint32_t *) (CRM_BASE+0x1c)); +static volatile uint32_t * const CRM_WU_COUNT = ((volatile uint32_t *) (CRM_BASE+0x20)); +static volatile uint32_t * const CRM_WU_TIMEOUT = ((volatile uint32_t *) (CRM_BASE+0x24)); +static volatile uint32_t * const CRM_RTC_COUNT = ((volatile uint32_t *) (CRM_BASE+0x28)); +static volatile uint32_t * const CRM_RTC_TIMEOUT= ((volatile uint32_t *) (CRM_BASE+0x2c)); +static volatile uint32_t * const CRM_CAL_CNTL = ((volatile uint32_t *) (CRM_BASE+0x34)); +static volatile uint32_t * const CRM_CAL_COUNT = ((volatile uint32_t *) (CRM_BASE+0x38)); +static volatile uint32_t * const CRM_RINGOSC_CNT= ((volatile uint32_t *) (CRM_BASE+0x3c)); +static volatile uint32_t * const CRM_XTAL_CNTL = ((volatile uint32_t *) (CRM_BASE+0x40)); +static volatile uint32_t * const CRM_XTAL32_CNTL= ((volatile uint32_t *) (CRM_BASE+0x44)); +static volatile uint32_t * const CRM_VREG_CNTL = ((volatile uint32_t *) (CRM_BASE+0x48)); +static volatile uint32_t * const CRM_SW_RST = ((volatile uint32_t *) (CRM_BASE+0x50)); /* CRM_SYS_CNTL bit locations */ -#define XTAL32_EXISTS 5 +static const int XTAL32_EXISTS = 5; /* CRM_WU_CNTL bit locations */ -#define EXT_WU_IEN 20 /* 4 bits */ -#define EXT_WU_EN 4 /* 4 bits */ -#define EXT_WU_EDGE 8 /* 4 bits */ -#define EXT_WU_POL 12 /* 4 bits */ -#define TIMER_WU_EN 0 -#define RTC_WU_EN 1 -#define TIMER_WU_IEN 16 -#define RTC_WU_IEN 17 +static const int EXT_WU_IEN = 20; /* 4 bits */ +static const int EXT_WU_EN = 4; /* 4 bits */ +static const int EXT_WU_EDGE = 8; /* 4 bits */ +static const int EXT_WU_POL = 12; /* 4 bits */ +static const int TIMER_WU_EN = 0; +static const int RTC_WU_EN = 1; +static const int TIMER_WU_IEN = 16; +static const int RTC_WU_IEN = 17; /* CRM_STATUS bit locations */ -#define EXT_WU_EVT 4 /* 4 bits, rw1c */ -#define RTC_WU_EVT 3 /* rw1c */ +static const int EXT_WU_EVT = 4; /* 4 bits, rw1c */ +static const int RTC_WU_EVT = 3; /* rw1c */ /* RINGOSC_CNTL bit locations */ -#define ROSC_CTUNE 9 /* 4 bits */ -#define ROSC_FTUNE 4 /* 4 bits */ -#define ROSC_EN 0 +static const int ROSC_CTUNE = 9; /* 4 bits */ +static const int ROSC_FTUNE = 4; /* 4 bits */ +static const int ROSC_EN = 0; #define ring_osc_on() (set_bit(*CRM_RINGOSC_CNTL,ROSC_EN)) #define ring_osc_off() (clear_bit(*CRM_RINGOSC_CNTL,ROSC_EN)) @@ -89,8 +275,8 @@ //extern uint32_t cal_rtc_secs; /* calibrated 2khz rtc seconds */ /* XTAL32_CNTL bit locations */ -#define XTAL32_GAIN 4 /* 2 bits */ -#define XTAL32_EN 0 +static const int XTAL32_GAIN = 4; /* 2 bits */ +static const int XTAL32_EN = 0; #define xtal32_on() (set_bit(*CRM_XTAL32_CNTL,XTAL32_EN)) #define xtal32_off() (clear_bit(*CRM_XTAL32_CNTL,XTAL32_EN)) @@ -135,4 +321,6 @@ #define pack_XTAL_CNTL(ctune4pf, ctune, ftune, ibias) \ (*CRM_XTAL_CNTL = ((ctune4pf << 25) | (ctune << 21) | ( ftune << 16) | (ibias << 8) | 0x52)) +#endif /* REG_NO_COMPAT */ + #endif From 2f52fdd156998270d8e4d5cefa6c29e1f8ed7a12 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 22:51:19 -0400 Subject: [PATCH 406/471] Add cal_isr() support --- lib/include/isr.h | 2 ++ src/isr.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/lib/include/isr.h b/lib/include/isr.h index daee2d38e..6ea685770 100644 --- a/lib/include/isr.h +++ b/lib/include/isr.h @@ -87,6 +87,8 @@ extern void kbi5_isr(void) __attribute__((weak)); extern void kbi6_isr(void) __attribute__((weak)); extern void kbi7_isr(void) __attribute__((weak)); +extern void cal_isr(void) __attribute__((weak)); + extern void uart1_isr(void) __attribute__((weak)); extern void maca_isr(void) __attribute__((weak)); diff --git a/src/isr.c b/src/isr.c index b041d56e4..93477b1be 100644 --- a/src/isr.c +++ b/src/isr.c @@ -65,6 +65,12 @@ void irq(void) if(kbi_evnt(5) && (kbi5_isr != 0)) { kbi5_isr(); } if(kbi_evnt(6) && (kbi6_isr != 0)) { kbi6_isr(); } if(kbi_evnt(7) && (kbi7_isr != 0)) { kbi7_isr(); } + + if (CRM.STATUSbits.CAL_DONE && CRM.CAL_CNTLbits.CAL_IEN && cal_isr) + { + CRM.STATUSbits.CAL_DONE = 0; + cal_isr(); + } } *INTFRC = 0; /* stop forcing interrupts */ From 920954f398ff253bbb4852169bef4c6950cafdc4 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 25 Sep 2010 23:16:59 -0400 Subject: [PATCH 407/471] REF_OSC is a 32-bit number, not 64-bit number --- lib/include/crm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/include/crm.h b/lib/include/crm.h index a4b81d421..0442fd9db 100644 --- a/lib/include/crm.h +++ b/lib/include/crm.h @@ -270,7 +270,7 @@ static const int ROSC_EN = 0; #define ring_osc_on() (set_bit(*CRM_RINGOSC_CNTL,ROSC_EN)) #define ring_osc_off() (clear_bit(*CRM_RINGOSC_CNTL,ROSC_EN)) -#define REF_OSC 24000000ULL /* reference osc. frequency */ +#define REF_OSC 24000000UL /* reference osc. frequency */ #define NOMINAL_RING_OSC_SEC 2000 /* nominal ring osc. frequency */ //extern uint32_t cal_rtc_secs; /* calibrated 2khz rtc seconds */ From bf94b6d3bdc4acf415068429e0257fd7de57ee02 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sun, 26 Sep 2010 15:59:11 -0400 Subject: [PATCH 408/471] Add structure-based ITC access --- lib/include/isr.h | 70 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 62 insertions(+), 8 deletions(-) diff --git a/lib/include/isr.h b/lib/include/isr.h index 6ea685770..799f2b56e 100644 --- a/lib/include/isr.h +++ b/lib/include/isr.h @@ -37,6 +37,59 @@ #define ISR_H #define INTBASE (0x80020000) + +/* Structure-based ITC access */ +#define __INTERRUPT_union(x) \ + union { \ + uint32_t x; \ + struct ITC_##x { \ + uint32_t ASM:1; \ + uint32_t UART1:1; \ + uint32_t UART2:1; \ + uint32_t CRM:1; \ + uint32_t I2C:1; \ + uint32_t TMR:1; \ + uint32_t SPIF:1; \ + uint32_t MACA:1; \ + uint32_t SSI:1; \ + uint32_t ADC:1; \ + uint32_t SPI:1; \ + uint32_t :21; \ + } x##bits; \ + }; + +struct ITC_struct { + union { + uint32_t INTCNTL; + struct ITC_INTCNTL { + uint32_t :19; + uint32_t FIAD:1; + uint32_t NIAD:1; + uint32_t :11; + } INTCNTLbits; + }; + uint32_t NIMASK; + uint32_t INTENNUM; + uint32_t INTDISNUM; + __INTERRUPT_union(INTENABLE); + __INTERRUPT_union(INTTYPE); + uint32_t reserved[4]; + uint32_t NIVECTOR; + uint32_t FIVECTOR; + __INTERRUPT_union(INTSRC); + __INTERRUPT_union(INTFRC); + __INTERRUPT_union(NIPEND); + __INTERRUPT_union(FIPEND); +}; +#undef __INTERRUPT_union + +static volatile struct ITC_struct * const _ITC = (void *) (INTBASE); +#define ITC (*_ITC) + + +/* Old register definitions, for compatibility */ +#ifndef REG_NO_COMPAT + #define INTCNTL_OFF (0x0) #define INTENNUM_OFF (0x8) #define INTDISNUM_OFF (0xC) @@ -45,13 +98,13 @@ #define INTFRC_OFF (0x34) #define NIPEND_OFF (0x38) -#define INTCNTL ((volatile uint32_t *) (INTBASE + INTCNTL_OFF)) -#define INTENNUM ((volatile uint32_t *) (INTBASE + INTENNUM_OFF)) -#define INTDISNUM ((volatile uint32_t *) (INTBASE + INTDISNUM_OFF)) -#define INTENABLE ((volatile uint32_t *) (INTBASE + INTENABLE_OFF)) -#define INTSRC ((volatile uint32_t *) (INTBASE + INTSRC_OFF)) -#define INTFRC ((volatile uint32_t *) (INTBASE + INTFRC_OFF)) -#define NIPEND ((volatile uint32_t *) (INTBASE + NIPEND_OFF)) +static volatile uint32_t * const INTCNTL = ((volatile uint32_t *) (INTBASE + INTCNTL_OFF)); +static volatile uint32_t * const INTENNUM = ((volatile uint32_t *) (INTBASE + INTENNUM_OFF)); +static volatile uint32_t * const INTDISNUM = ((volatile uint32_t *) (INTBASE + INTDISNUM_OFF)); +static volatile uint32_t * const INTENABLE = ((volatile uint32_t *) (INTBASE + INTENABLE_OFF)); +static volatile uint32_t * const INTSRC = ((volatile uint32_t *) (INTBASE + INTSRC_OFF)); +static volatile uint32_t * const INTFRC = ((volatile uint32_t *) (INTBASE + INTFRC_OFF)); +static volatile uint32_t * const NIPEND = ((volatile uint32_t *) (INTBASE + NIPEND_OFF)); enum interrupt_nums { INT_NUM_ASM = 0, @@ -76,6 +129,8 @@ enum interrupt_nums { #define safe_irq_disable(x) volatile uint32_t saved_irq; saved_irq = *INTENABLE; disable_irq(x) #define irq_restore() *INTENABLE = saved_irq +#endif /* REG_NO_COMPAT */ + extern void tmr0_isr(void) __attribute__((weak)); extern void tmr1_isr(void) __attribute__((weak)); extern void tmr2_isr(void) __attribute__((weak)); @@ -95,4 +150,3 @@ extern void maca_isr(void) __attribute__((weak)); #endif - From ac2cac1e1d71419a24b409845d04de593da0d470 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sun, 26 Sep 2010 16:05:12 -0400 Subject: [PATCH 409/471] Register definitions: get rid of some macro magic that doesn't help much Instead of e.g. GPIO.DATA.GPIO_08, you now use GPIO->DATA.GPIO_08. --- lib/include/crm.h | 3 +-- lib/include/gpio.h | 11 +++++------ lib/include/isr.h | 3 +-- lib/include/tmr.h | 21 ++++++++------------- src/isr.c | 4 ++-- 5 files changed, 17 insertions(+), 25 deletions(-) diff --git a/lib/include/crm.h b/lib/include/crm.h index 0442fd9db..09da00988 100644 --- a/lib/include/crm.h +++ b/lib/include/crm.h @@ -218,8 +218,7 @@ struct CRM_struct { uint32_t reserved6; }; -static volatile struct CRM_struct * const _CRM = (void *) (CRM_BASE); -#define CRM (*_CRM) +static volatile struct CRM_struct * const CRM = (void *) (CRM_BASE); /* Old register definitions, for compatibility */ diff --git a/lib/include/gpio.h b/lib/include/gpio.h index e2999c4d9..09a3a1373 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -39,13 +39,13 @@ /* Structure-based GPIO access Example usage: - GPIO.FUNC_SEL0 |= 0x00008000; // set a whole register + GPIO->FUNC_SEL0 |= 0x00008000; // set a whole register - GPIO.FUNC_SEL_08 = 2; // set just one pin + GPIO->FUNC_SEL_08 = 2; // set just one pin #define MY_PIN GPIO_08 - GPIO.FUNC_SEL.MY_PIN = 2; // same, to allow #define for pin names - GPIO.DATA.MY_PIN = 1; + GPIO->FUNC_SEL.MY_PIN = 2; // same, to allow #define for pin names + GPIO->DATA.MY_PIN = 1; */ #define _V(x,n,i) uint32_t x##_##i : n; @@ -87,8 +87,7 @@ struct GPIO_struct { #undef _REP #undef _V -static volatile struct GPIO_struct * const _GPIO = (void *) (0x80000000); -#define GPIO (*_GPIO) +static volatile struct GPIO_struct * const GPIO = (void *) (0x80000000); /* Old register definitions, for compatibility */ diff --git a/lib/include/isr.h b/lib/include/isr.h index 799f2b56e..1647e3b8a 100644 --- a/lib/include/isr.h +++ b/lib/include/isr.h @@ -83,8 +83,7 @@ struct ITC_struct { }; #undef __INTERRUPT_union -static volatile struct ITC_struct * const _ITC = (void *) (INTBASE); -#define ITC (*_ITC) +static volatile struct ITC_struct * const ITC = (void *) (INTBASE); /* Old register definitions, for compatibility */ diff --git a/lib/include/tmr.h b/lib/include/tmr.h index 011c6d18c..179be46d2 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -48,12 +48,12 @@ /* Structure-based register definitions */ /* Example use: - TMR2.CTRL = 0x1234; - TMR2.CTRLbits = (struct TMR_CTRL) { + TMR2->CTRL = 0x1234; + TMR2->CTRLbits = (struct TMR_CTRL) { .DIR = 1, .OUTPUT_MODE = 2, }; - TMR2.CTRLbits.PRIMARY_CNT_SOURCE = 3; + TMR2->CTRLbits.PRIMARY_CNT_SOURCE = 3; */ struct TMR_struct { @@ -134,21 +134,16 @@ struct TMR_struct { }; }; -static volatile struct TMR_struct * const _TMR0 = (void *) (TMR0_BASE); -static volatile struct TMR_struct * const _TMR1 = (void *) (TMR1_BASE); -static volatile struct TMR_struct * const _TMR2 = (void *) (TMR2_BASE); -static volatile struct TMR_struct * const _TMR3 = (void *) (TMR3_BASE); -#define TMR0 (*_TMR0) -#define TMR1 (*_TMR1) -#define TMR2 (*_TMR2) -#define TMR3 (*_TMR3) +static volatile struct TMR_struct * const TMR0 = (void *) (TMR0_BASE); +static volatile struct TMR_struct * const TMR1 = (void *) (TMR1_BASE); +static volatile struct TMR_struct * const TMR2 = (void *) (TMR2_BASE); +static volatile struct TMR_struct * const TMR3 = (void *) (TMR3_BASE); /* Used to compute which enable bit to set for a particular timer, e.g. TMR0.ENBL |= TMR_ENABLE_BIT(TMR2); Helpful when you're using macros to define timers */ -#define TMR_ENABLE_BIT(x) ((&(x) == &(TMR0)) ? 1 : (&(x) == &(TMR1)) ? 2 : (&(x) == &(TMR2)) ? 4 : (&(x) == &(TMR3)) ? 8 : 0) - +#define TMR_ENABLE_BIT(x) (((x) == TMR0) ? 1 : ((x) == TMR1) ? 2 : ((x) == TMR2) ? 4 : ((x) == TMR3) ? 8 : 0) #define TMR0_PIN GPIO_08 #define TMR1_PIN GPIO_09 #define TMR2_PIN GPIO_10 diff --git a/src/isr.c b/src/isr.c index 93477b1be..4202726ec 100644 --- a/src/isr.c +++ b/src/isr.c @@ -66,9 +66,9 @@ void irq(void) if(kbi_evnt(6) && (kbi6_isr != 0)) { kbi6_isr(); } if(kbi_evnt(7) && (kbi7_isr != 0)) { kbi7_isr(); } - if (CRM.STATUSbits.CAL_DONE && CRM.CAL_CNTLbits.CAL_IEN && cal_isr) + if (CRM->STATUSbits.CAL_DONE && CRM->CAL_CNTLbits.CAL_IEN && cal_isr) { - CRM.STATUSbits.CAL_DONE = 0; + CRM->STATUSbits.CAL_DONE = 0; cal_isr(); } } From 9cd46dfd4a3a37954e5f55fbc998a9f43d6a3240 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Mon, 27 Sep 2010 17:30:02 -0400 Subject: [PATCH 410/471] Add some useful timer macros --- lib/include/tmr.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/include/tmr.h b/lib/include/tmr.h index 179be46d2..5fb334f15 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -139,11 +139,15 @@ static volatile struct TMR_struct * const TMR1 = (void *) (TMR1_BASE); static volatile struct TMR_struct * const TMR2 = (void *) (TMR2_BASE); static volatile struct TMR_struct * const TMR3 = (void *) (TMR3_BASE); +/* Get timer number from the timer pointer. */ +#define TMR_NUM(x) (((uint32_t)(x) - TMR_BASE) / TMR_OFFSET) + /* Used to compute which enable bit to set for a particular timer, e.g. TMR0.ENBL |= TMR_ENABLE_BIT(TMR2); Helpful when you're using macros to define timers */ -#define TMR_ENABLE_BIT(x) (((x) == TMR0) ? 1 : ((x) == TMR1) ? 2 : ((x) == TMR2) ? 4 : ((x) == TMR3) ? 8 : 0) +#define TMR_ENABLE_BIT(x) (1 << TMR_NUM(x)) + #define TMR0_PIN GPIO_08 #define TMR1_PIN GPIO_09 #define TMR2_PIN GPIO_10 From 00f4a66bb8c087ed9c6fd827e7303c152e7ad350 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Mon, 27 Sep 2010 17:32:59 -0400 Subject: [PATCH 411/471] Add rule to disassemble .o files --- Makefile.include | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile.include b/Makefile.include index bf45651b9..eb5a2bc15 100644 --- a/Makefile.include +++ b/Makefile.include @@ -95,6 +95,10 @@ $(foreach t, $(TARGETS_WITH_ROM_VARS), $(eval $(call build_elf_rule,$(t)))) $(call pretty,OBJDUMP,$@) $Q$(OBJDUMP) -Sd $< > $@ || rm -f $@ +%.dis: %.o + $(call pretty,OBJDUMP,$@) + $Q$(OBJDUMP) -d $< > $@ || rm -f $@ + %.o: %.c $(call pretty,CC,$@) $Q$(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $< From c7c79fc9b4cdb602e2f2d9f2124403eb2645890d Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Mon, 27 Sep 2010 19:32:10 -0400 Subject: [PATCH 412/471] Add TMR_ADDR helper --- lib/include/tmr.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/include/tmr.h b/lib/include/tmr.h index 5fb334f15..bb92fe50c 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -139,6 +139,9 @@ static volatile struct TMR_struct * const TMR1 = (void *) (TMR1_BASE); static volatile struct TMR_struct * const TMR2 = (void *) (TMR2_BASE); static volatile struct TMR_struct * const TMR3 = (void *) (TMR3_BASE); +/* Get timer pointer from timer number */ +#define TMR_ADDR(x) ((volatile struct TMR_struct *)(((uint32_t)(x) * TMR_OFFSET) + TMR_BASE)) + /* Get timer number from the timer pointer. */ #define TMR_NUM(x) (((uint32_t)(x) - TMR_BASE) / TMR_OFFSET) From 0e6d5bc9dce51083bcd341adaeb41e87710831db Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Mon, 27 Sep 2010 20:04:24 -0400 Subject: [PATCH 413/471] Another rule to disassemble board objects --- board/Makefile.board | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/board/Makefile.board b/board/Makefile.board index 32d7691fd..218ecd4b7 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -32,6 +32,10 @@ $(OBJDIR)/%.o: %.S $(OBJDIR)/board.h $(CC) $(AFLAGS) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) +$(OBJDIR)/%.dis: $(OBJDIR)/%.o + $(call pretty,OBJDUMP,$@) + $Q$(OBJDUMP) -d $< > $@ || rm -f $@ + ifneq ($(MAKECMDGOALS),clean) -include $(wildcard $(OBJDIR)/*.d) endif From 036b80e3c188df1f1448cf4891176c402394a9cc Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Tue, 28 Sep 2010 02:15:43 -0400 Subject: [PATCH 414/471] Support hardcoded dependencies, for generated files --- Makefile.include | 2 +- board/Makefile.board | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.include b/Makefile.include index eb5a2bc15..138416591 100644 --- a/Makefile.include +++ b/Makefile.include @@ -99,7 +99,7 @@ $(foreach t, $(TARGETS_WITH_ROM_VARS), $(eval $(call build_elf_rule,$(t)))) $(call pretty,OBJDUMP,$@) $Q$(OBJDUMP) -d $< > $@ || rm -f $@ -%.o: %.c +%.o: %.c $(FORCE_C_DEPENDS) $(call pretty,CC,$@) $Q$(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) diff --git a/board/Makefile.board b/board/Makefile.board index 218ecd4b7..e0aad1882 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -22,7 +22,7 @@ $(OBJDIR)/board.a: $(OBJDIR)/board.h endif # And is built from files in the parent directory -$(OBJDIR)/%.o: %.c $(OBJDIR)/board.h +$(OBJDIR)/%.o: %.c $(OBJDIR)/board.h $(FORCE_C_DEPENDS) $(call pretty,CC,$@) $Q$(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) From 6b4d6a9ade2a7095c9869813a823a2dcce2037bc Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Tue, 28 Sep 2010 02:54:23 -0400 Subject: [PATCH 415/471] Use a variable for all target objects Instead of specifying them individually. This lets included makefiles (like my audio/Makefile.include) append objects. --- Makefile.include | 4 ++-- board/Makefile.board | 2 ++ lib/Makefile.lib | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile.include b/Makefile.include index 138416591..6094e89a4 100644 --- a/Makefile.include +++ b/Makefile.include @@ -65,13 +65,13 @@ include $(MC1322X)/src/Makefile.src # $(SRCLIB) as well as target-specific rules that link $(SRCLIB_ROMVARS) # Normal targets (wildcard rule): -%_$(BOARD).elf: $(OBJDIR)/%.o $(OBJDIR)/board.a $(MC1322X)/lib/libmc1322x.a $(SRCLIB) +%_$(BOARD).elf: $(OBJDIR)/%.o $(TARGET_OBJ) $(SRCLIB) $(call pretty,LINK,$@) $Q$(CC) $(LDFLAGS) -o $@ -Wl,--start-group $^ -lm -Wl,--end-group # Targets that need space for rom variables: define build_elf_rule -$(1)_$$(BOARD).elf: $$(OBJDIR)/$(1).o $$(OBJDIR)/board.a $$(MC1322X)/lib/libmc1322x.a $$(SRCLIB_ROMVARS) +$(1)_$$(BOARD).elf: $$(OBJDIR)/$(1).o $$(TARGET_OBJ) $$(SRCLIB_ROMVARS) $$(call pretty,LINK (romvars),$$@) $$Q$$(CC) $$(LDFLAGS) -o $$@ -Wl,--start-group $$^ -lm -Wl,--end-group endef diff --git a/board/Makefile.board b/board/Makefile.board index e0aad1882..9c747813c 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -21,6 +21,8 @@ $(OBJDIR)/board.a: $(OBJDIR)/board.h $Q$(AR) $(ARFLAGS) $@ endif +TARGET_OBJ += $(OBJDIR)/board.a + # And is built from files in the parent directory $(OBJDIR)/%.o: %.c $(OBJDIR)/board.h $(FORCE_C_DEPENDS) $(call pretty,CC,$@) diff --git a/lib/Makefile.lib b/lib/Makefile.lib index b5fb27bff..bcba895ea 100644 --- a/lib/Makefile.lib +++ b/lib/Makefile.lib @@ -7,6 +7,8 @@ LIBOBJS ?= $(patsubst %.c,%.o,$(wildcard $(MC1322X)/lib/*.c)) $(MC1322X)/lib/libmc1322x.a: $(MC1322X)/lib/libmc1322x.a($(LIBOBJS)) +TARGET_OBJ += $(MC1322X)/lib/libmc1322x.a + ifneq ($(MAKECMDGOALS),clean) -include $(wildcard $(MC1322X)/lib/*.d) endif From 03293b60adcd35ebf270453868fc90ce7f103e01 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Tue, 28 Sep 2010 15:48:57 -0400 Subject: [PATCH 416/471] Fix a makefile dependency with libraries Using the implicit rules for libraries leads to problems if one of the objects fails to build, but the others are still OK. Just make all library rules explicit to avoid this. --- Makefile.include | 4 ---- board/Makefile.board | 8 +++++++- lib/Makefile.lib | 5 ++++- src/Makefile.src | 10 ++++++++-- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Makefile.include b/Makefile.include index 6094e89a4..4767d4a04 100644 --- a/Makefile.include +++ b/Makefile.include @@ -109,10 +109,6 @@ $(foreach t, $(TARGETS_WITH_ROM_VARS), $(eval $(call build_elf_rule,$(t)))) $Q$(CC) $(AFLAGS) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) -(%): % - $(call pretty,AR,$@($<)) - @$(AR) $(ARFLAGS) $@ $< - # Fix the dependencies generated for a particular target .o # See http://make.paulandlesley.org/autodep.html#advanced define FINALIZE_DEPENDENCY diff --git a/board/Makefile.board b/board/Makefile.board index 9c747813c..c5114a678 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -5,6 +5,8 @@ ALL_BOARDS = redbee-dev redbee-r1 redbee-usb redbee-econotag quahogcon freescale OBJDIR = obj_$(BOARD) CFLAGS += -I. -I$(OBJDIR) -I$(MC1322X)/board -DBOARD=$(BOARD) +OBJDIR_COBJS = $(addprefix $(OBJDIR)/, $(COBJS)) + # Create directory and board.h include $(OBJDIR)/board.h: $(call pretty,GEN,$@) @@ -14,10 +16,14 @@ $(OBJDIR)/board.h: # $(OBJDIR)/board.a contains all the objects defined in COBJS ifdef COBJS -$(OBJDIR)/board.a: $(OBJDIR)/board.h $(OBJDIR)/board.a($(addprefix $(OBJDIR)/, $(COBJS))) +$(OBJDIR)/board.a: $(OBJDIR)/board.h $(OBJDIR_COBJS) + $(call pretty,AR,$@) + @rm -f $@ + $Q$(AR) $(ARFLAGS) $@ $(OBJDIR_COBJS) else $(OBJDIR)/board.a: $(OBJDIR)/board.h $(call pretty,AR (empty),$@) + @rm -f $@ $Q$(AR) $(ARFLAGS) $@ endif diff --git a/lib/Makefile.lib b/lib/Makefile.lib index bcba895ea..276ca0c58 100644 --- a/lib/Makefile.lib +++ b/lib/Makefile.lib @@ -5,7 +5,10 @@ CFLAGS += -I$(MC1322X)/lib/include # By default, link all objects LIBOBJS ?= $(patsubst %.c,%.o,$(wildcard $(MC1322X)/lib/*.c)) -$(MC1322X)/lib/libmc1322x.a: $(MC1322X)/lib/libmc1322x.a($(LIBOBJS)) +$(MC1322X)/lib/libmc1322x.a: $(LIBOBJS) + $(call pretty,AR,$@) + @rm -f $@ + $Q$(AR) $(ARFLAGS) $@ $^ TARGET_OBJ += $(MC1322X)/lib/libmc1322x.a diff --git a/src/Makefile.src b/src/Makefile.src index 573dd0e38..258620ac8 100644 --- a/src/Makefile.src +++ b/src/Makefile.src @@ -8,11 +8,17 @@ SRC_OBJS += $(MC1322X)/src/default_lowlevel.o $(ISR) # Two libraries, one with ROM variable space reserved, one without START_ROMVARS ?= $(MC1322X)/src/start-romvars.o SRCLIB_ROMVARS = $(MC1322X)/src/src-romvars.a -$(SRCLIB_ROMVARS): $(SRCLIB_ROMVARS)($(SRC_OBJS) $(START_ROMVARS)) +$(SRCLIB_ROMVARS): $(SRC_OBJS) $(START_ROMVARS) + $(call pretty,AR,$@) + @rm -f $@ + $Q$(AR) $(ARFLAGS) $@ $^ START ?= $(MC1322X)/src/start.o SRCLIB = $(MC1322X)/src/src.a -$(SRCLIB): $(SRCLIB)($(SRC_OBJS) $(START)) +$(SRCLIB): $(SRC_OBJS) $(START) + $(call pretty,AR,$@) + @rm -f $@ + $Q$(AR) $(ARFLAGS) $@ $^ # ISR is built without thumb $(ISR): $(ISR:.o=.c) From ae70d57d7517c39024ddd86f7ca5aad9e0100b71 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Tue, 28 Sep 2010 16:29:36 -0400 Subject: [PATCH 417/471] Clear BSS at startup --- src/start.S | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/start.S b/src/start.S index 14782b964..627657f8c 100644 --- a/src/start.S +++ b/src/start.S @@ -128,6 +128,17 @@ _begin: #endif msr CPSR_c, #(SYS_MODE) + /* Clear BSS */ +clear_bss: + ldr r0, _bss_start /* find start of bss segment */ + ldr r1, _bss_end /* stop here */ + mov r2, #0x00000000 /* clear */ +clbss_l: + str r2, [r0] /* clear loop... */ + add r0, r0, #4 + cmp r0, r1 + blt clbss_l + b main // ldr r1,=_system_stack From 62400bd07faaf7d4d2e3df5e01269f1f210cafae Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Tue, 28 Sep 2010 16:29:52 -0400 Subject: [PATCH 418/471] Move stack near BSS so it doesn't take up space in the .bin --- mc1322x.lds | 62 +++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/mc1322x.lds b/mc1322x.lds index d4a93a57f..0be77e467 100644 --- a/mc1322x.lds +++ b/mc1322x.lds @@ -26,36 +26,6 @@ HEAP_SIZE = 1024; *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 - .stack : { - __stack_start__ = . ; - - . += IRQ_STACK_SIZE; - . = ALIGN (4); - __irq_stack_top__ = . ; - - . += FIQ_STACK_SIZE; - . = ALIGN (4); - __fiq_stack_top__ = . ; - - . += SVC_STACK_SIZE; - . = ALIGN (4); - __svc_stack_top__ = . ; - - . += ABT_STACK_SIZE; - . = ALIGN (4); - __abt_stack_top__ = . ; - - . += UND_STACK_SIZE; - . = ALIGN (4); - __und_stack_top__ = . ; - - . += SYS_STACK_SIZE; - . = ALIGN (4); - __sys_stack_top__ = . ; - - __stack_end__ = .; - } - .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } @@ -189,6 +159,38 @@ HEAP_SIZE = 1024; } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); + + .stack : { + __stack_start__ = . ; + + . += IRQ_STACK_SIZE; + . = ALIGN (4); + __irq_stack_top__ = . ; + + . += FIQ_STACK_SIZE; + . = ALIGN (4); + __fiq_stack_top__ = . ; + + . += SVC_STACK_SIZE; + . = ALIGN (4); + __svc_stack_top__ = . ; + + . += ABT_STACK_SIZE; + . = ALIGN (4); + __abt_stack_top__ = . ; + + . += UND_STACK_SIZE; + . = ALIGN (4); + __und_stack_top__ = . ; + + . += SYS_STACK_SIZE; + . = ALIGN (4); + __sys_stack_top__ = . ; + + __stack_end__ = .; + } + + __bss_start = .; __bss_start__ = .; .bss : From 4eb5ce4c9b39ab131c0ead4f5147e07fec71e394 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 1 Oct 2010 15:22:07 -0400 Subject: [PATCH 419/471] add a memory section for RAM so that the linker will warn when you've made your program too big. --- mc1322x.lds | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mc1322x.lds b/mc1322x.lds index 0be77e467..85cf11df7 100644 --- a/mc1322x.lds +++ b/mc1322x.lds @@ -3,6 +3,12 @@ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) + +MEMORY + { + ram (rwx) : org = 0x00400000, l = 96K + } + SECTIONS { From 76563958fe92175878258f80f1fe43404f1b6e83 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Tue, 28 Sep 2010 17:32:47 -0400 Subject: [PATCH 420/471] Add the disable_int({}) macro This is similar to safe_irq_enable and disable --- lib/include/isr.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/include/isr.h b/lib/include/isr.h index 1647e3b8a..a63215ce8 100644 --- a/lib/include/isr.h +++ b/lib/include/isr.h @@ -130,6 +130,23 @@ enum interrupt_nums { #endif /* REG_NO_COMPAT */ +/* Macro to safely disable all interrupts for a block of code. + Use it like this: + disable_int({ + asdf = 1234; + printf("hi\r\n"); + }); +*/ +#define __int_top() volatile uint32_t saved_intenable +#define __int_disable() saved_intenable = ITC->INTENABLE; ITC->INTENABLE = 0 +#define __int_enable() ITC->INTENABLE = saved_intenable +#define disable_int(x) do { \ + __int_top(); \ + __int_disable(); \ + x; \ + __int_enable(); } while(0) + + extern void tmr0_isr(void) __attribute__((weak)); extern void tmr1_isr(void) __attribute__((weak)); extern void tmr2_isr(void) __attribute__((weak)); From b2c64dc233a5aaa385096caf5ece57eca00d3272 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Tue, 28 Sep 2010 18:10:22 -0400 Subject: [PATCH 421/471] Provide a function to change timer interrrupt handlers Function irq_register_timer_handler(int timer, void (*isr)(void)) lets you change the handler at runtime. This lets us set handlers without necessarily knowing the name at link-time. The old way of having weakly-linked tmr0_isr functions should still work. --- src/default_lowlevel.h | 2 ++ src/isr.c | 26 ++++++++++++++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/default_lowlevel.h b/src/default_lowlevel.h index 7b497f334..cbbab4887 100644 --- a/src/default_lowlevel.h +++ b/src/default_lowlevel.h @@ -40,4 +40,6 @@ void default_vreg_init(void); void uart1_init(uint16_t inc, uint16_t mod, uint8_t samp); +void irq_register_timer_handler(int timer, void (*isr)(void)); + #endif diff --git a/src/isr.c b/src/isr.c index 4202726ec..a0b252339 100644 --- a/src/isr.c +++ b/src/isr.c @@ -35,6 +35,19 @@ #include +static void (*tmr_isr_funcs[4])(void) = { + tmr0_isr, + tmr1_isr, + tmr2_isr, + tmr3_isr +}; + +void irq_register_timer_handler(int timer, void (*isr)(void)) +{ + tmr_isr_funcs[timer] = isr; +} + + __attribute__ ((section (".irq"))) __attribute__ ((interrupt("IRQ"))) void irq(void) @@ -43,16 +56,17 @@ void irq(void) while ((pending = *NIPEND)) { - if(bit_is_set(pending, INT_NUM_TMR)) { + if(bit_is_set(pending, INT_NUM_TMR)) { /* dispatch to individual timer isrs if they exist */ /* timer isrs are responsible for determining if they * caused an interrupt */ /* and clearing their own interrupt flags */ - if(tmr0_isr != 0) { tmr0_isr(); } - if(tmr1_isr != 0) { tmr1_isr(); } - if(tmr2_isr != 0) { tmr2_isr(); } - if(tmr3_isr != 0) { tmr3_isr(); } - } + if (tmr_isr_funcs[0] != 0) { (tmr_isr_funcs[0])(); } + if (tmr_isr_funcs[1] != 0) { (tmr_isr_funcs[1])(); } + if (tmr_isr_funcs[2] != 0) { (tmr_isr_funcs[2])(); } + if (tmr_isr_funcs[3] != 0) { (tmr_isr_funcs[3])(); } + } + if(bit_is_set(pending, INT_NUM_MACA)) { if(maca_isr != 0) { maca_isr(); } } From 0bdcac3457fdef837006c203bdd20806c37c42f1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 1 Oct 2010 15:22:07 -0400 Subject: [PATCH 422/471] add a memory section for RAM so that the linker will warn when you've made your program too big. --- mc1322x.lds | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mc1322x.lds b/mc1322x.lds index 0be77e467..85cf11df7 100644 --- a/mc1322x.lds +++ b/mc1322x.lds @@ -3,6 +3,12 @@ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) + +MEMORY + { + ram (rwx) : org = 0x00400000, l = 96K + } + SECTIONS { From e6bd2a1318e8bee70d8a4190826df84c775a9742 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sat, 2 Oct 2010 16:07:40 -0400 Subject: [PATCH 423/471] Name the GPIO structure so we can set multiple bits at once --- lib/include/gpio.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/include/gpio.h b/lib/include/gpio.h index 09a3a1373..a705c3ad1 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -63,11 +63,11 @@ struct GPIO_struct { #define _IO(x) \ union { struct { uint32_t x##0; uint32_t x##1; }; \ struct { _REP(x, 1) }; \ - struct { _REP(GPIO, 1) } x; }; + struct GPIO_##x { _REP(GPIO, 1) } x; }; #define _IO_2bit(x) \ union { struct { uint32_t x##0; uint32_t x##1; uint32_t x##2; uint32_t x##3; }; \ struct { _REP(x, 2) }; \ - struct { _REP(GPIO, 2) } x; }; + struct GPIO_##x { _REP(GPIO, 2) } x; }; _IO(PAD_DIR); _IO(DATA); From 1b4de5d8e70dbd86208bad478855c97d3719a7c8 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sun, 3 Oct 2010 13:44:19 -0400 Subject: [PATCH 424/471] Add gpio_set and gpio_reset Use them like gpio_set(GPIO_xx) and gpio_reset(GPIO_xx). These macros efficiently set the DATA_SET and DATA_RESET bits without reading the registers first, as a direct GPIO->DATA_SET.GPIO_xx would do --- lib/include/gpio.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/include/gpio.h b/lib/include/gpio.h index a705c3ad1..955fed13b 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -46,6 +46,9 @@ #define MY_PIN GPIO_08 GPIO->FUNC_SEL.MY_PIN = 2; // same, to allow #define for pin names GPIO->DATA.MY_PIN = 1; + + gpio_set(GPIO_08); // efficiently set or clear a single output bit + gpio_reset(GPIO_08); */ #define _V(x,n,i) uint32_t x##_##i : n; @@ -84,6 +87,24 @@ struct GPIO_struct { }; #undef _IO #undef _IO_2bit + +/* Build an enum lookup to map GPIO_08 -> 8 */ +#undef _V +#define _V(x,n,i) __NUM_GPIO_GPIO_##i, +enum { _REP(0,0) }; + +/* Macros to set or reset a data pin in the fastest possible way */ +#define gpio_set(gpio_xx) __gpio_set(gpio_xx) +#define __gpio_set(gpio_xx) \ + ((__NUM_GPIO_##gpio_xx < 32) \ + ? (GPIO->DATA_SET0 = (1 << (__NUM_GPIO_##gpio_xx - 0))) \ + : (GPIO->DATA_SET1 = (1 << (__NUM_GPIO_##gpio_xx - 32)))) +#define gpio_reset(gpio_xx) __gpio_reset(gpio_xx) +#define __gpio_reset(gpio_xx) \ + ((__NUM_GPIO_##gpio_xx < 32) \ + ? (GPIO->DATA_RESET0 = (1 << (__NUM_GPIO_##gpio_xx - 0))) \ + : (GPIO->DATA_RESET1 = (1 << (__NUM_GPIO_##gpio_xx - 32)))) + #undef _REP #undef _V From d5118ba63d694d6240747b904a9fdc6755693569 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Sun, 3 Oct 2010 14:32:59 -0400 Subject: [PATCH 425/471] Always make directories before building files in OBJDIR This lets us put things like fatfs/ff.o in COBJS --- board/Makefile.board | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/board/Makefile.board b/board/Makefile.board index c5114a678..ad2991869 100644 --- a/board/Makefile.board +++ b/board/Makefile.board @@ -10,7 +10,7 @@ OBJDIR_COBJS = $(addprefix $(OBJDIR)/, $(COBJS)) # Create directory and board.h include $(OBJDIR)/board.h: $(call pretty,GEN,$@) - $(Q)mkdir -p $(OBJDIR) + @mkdir -p $(dir $@) $(Q)echo '/* This file was automatically generated */' > $(OBJDIR)/board.h $(Q)echo '#include "$(BOARD).h"' >> $(OBJDIR)/board.h @@ -32,11 +32,13 @@ TARGET_OBJ += $(OBJDIR)/board.a # And is built from files in the parent directory $(OBJDIR)/%.o: %.c $(OBJDIR)/board.h $(FORCE_C_DEPENDS) $(call pretty,CC,$@) + @mkdir -p $(dir $@) $Q$(CC) $(CFLAGS) $(CFLAGS_THUMB) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) $(OBJDIR)/%.o: %.S $(OBJDIR)/board.h $(call pretty,AS,$@) + @mkdir -p $(dir $@) $(CC) $(AFLAGS) -MMD -c -o $@ $< @$(FINALIZE_DEPENDENCY) From 6b93b57029e3998e8b0515248dcea67678a4a4f6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 25 Oct 2010 16:23:54 -0400 Subject: [PATCH 426/471] lqi pdr data for 64 byte payloads --- doc/1000pkt-64len.txt | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 doc/1000pkt-64len.txt diff --git a/doc/1000pkt-64len.txt b/doc/1000pkt-64len.txt new file mode 100644 index 000000000..d9946c08e --- /dev/null +++ b/doc/1000pkt-64len.txt @@ -0,0 +1,51 @@ +1000 packet bursts +64 byte payload +================== + +count 995 avg lqi 19 +count 1000 avg lqi 46 +count 1000 avg lqi 54 +count 162 avg lqi 6 +count 994 avg lqi 15 +count 999 avg lqi 38 +count 45 avg lqi 3 +count 951 avg lqi 9 +count 992 avg lqi 12 +count 991 avg lqi 17 +count 1000 avg lqi 47 +count 1000 avg lqi 40 +count 995 avg lqi 19 +count 1000 avg lqi 34 +count 674 avg lqi 9 +count 976 avg lqi 12 +count 981 avg lqi 13 +count 859 avg lqi 9 +lqi_total = 0 +lqi_total = 0 +count 5 avg lqi 6 +lqi_total = 0 +count 788 avg lqi 8 +lqi_total = 0 +count 743 avg lqi 8 +count 308 avg lqi 6 +count 317 avg lqi 6 +count 30 avg lqi 5 +count 1 avg lqi 6 +count 842 avg lqi 9 +count 898 avg lqi 10 +lqi_total = 0 +count 6 avg lqi 3 +count 5 avg lqi 6 +count 596 avg lqi 7 +count 511 avg lqi 7 +count 602 avg lqi 7 +count 988 avg lqi 30 +count 998 avg lqi 30 +count 978 avg lqi 19 +lqi_total = 0 +count 170 avg lqi 7 +count 5 avg lqi 4 +count 506 avg lqi 8 +count 993 avg lqi 16 +count 993 avg lqi 19 +count 51 avg lqi 9 From 89b00b0fcc9e0619c81450837023861d56d53ecc Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 25 Oct 2010 16:24:31 -0400 Subject: [PATCH 427/471] moved to lqi-pdr directory --- doc/lqi-pdr/1000pkt-64len.txt | 51 +++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 doc/lqi-pdr/1000pkt-64len.txt diff --git a/doc/lqi-pdr/1000pkt-64len.txt b/doc/lqi-pdr/1000pkt-64len.txt new file mode 100644 index 000000000..d9946c08e --- /dev/null +++ b/doc/lqi-pdr/1000pkt-64len.txt @@ -0,0 +1,51 @@ +1000 packet bursts +64 byte payload +================== + +count 995 avg lqi 19 +count 1000 avg lqi 46 +count 1000 avg lqi 54 +count 162 avg lqi 6 +count 994 avg lqi 15 +count 999 avg lqi 38 +count 45 avg lqi 3 +count 951 avg lqi 9 +count 992 avg lqi 12 +count 991 avg lqi 17 +count 1000 avg lqi 47 +count 1000 avg lqi 40 +count 995 avg lqi 19 +count 1000 avg lqi 34 +count 674 avg lqi 9 +count 976 avg lqi 12 +count 981 avg lqi 13 +count 859 avg lqi 9 +lqi_total = 0 +lqi_total = 0 +count 5 avg lqi 6 +lqi_total = 0 +count 788 avg lqi 8 +lqi_total = 0 +count 743 avg lqi 8 +count 308 avg lqi 6 +count 317 avg lqi 6 +count 30 avg lqi 5 +count 1 avg lqi 6 +count 842 avg lqi 9 +count 898 avg lqi 10 +lqi_total = 0 +count 6 avg lqi 3 +count 5 avg lqi 6 +count 596 avg lqi 7 +count 511 avg lqi 7 +count 602 avg lqi 7 +count 988 avg lqi 30 +count 998 avg lqi 30 +count 978 avg lqi 19 +lqi_total = 0 +count 170 avg lqi 7 +count 5 avg lqi 4 +count 506 avg lqi 8 +count 993 avg lqi 16 +count 993 avg lqi 19 +count 51 avg lqi 9 From 8a717ce8d2c2cd893856edc7d551e9e4bea27ae1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 25 Oct 2010 17:05:55 -0400 Subject: [PATCH 428/471] plotting lqi data --- doc/lqi-pdr/1000pkt-64len.csv | 41 +++++++++++++++++++++++++++++++++++ doc/lqi-pdr/README | 7 ++++++ doc/lqi-pdr/plot.asy | 13 +++++++++++ 3 files changed, 61 insertions(+) create mode 100644 doc/lqi-pdr/1000pkt-64len.csv create mode 100644 doc/lqi-pdr/README create mode 100644 doc/lqi-pdr/plot.asy diff --git a/doc/lqi-pdr/1000pkt-64len.csv b/doc/lqi-pdr/1000pkt-64len.csv new file mode 100644 index 000000000..05520e6e2 --- /dev/null +++ b/doc/lqi-pdr/1000pkt-64len.csv @@ -0,0 +1,41 @@ +1,6 +5,4 +5,6 +5,6 +6,3 +30,5 +45,3 +51,9 +162,6 +170,7 +308,6 +317,6 +506,8 +511,7 +596,7 +602,7 +674,9 +743,8 +788,8 +842,9 +859,9 +951,9 +898,10 +976,12 +978,19 +981,13 +988,30 +991,17 +992,12 +993,16 +993,19 +994,15 +995,19 +995,19 +998,30 +999,38 +1000,34 +1000,40 +1000,46 +1000,47 +1000,54 diff --git a/doc/lqi-pdr/README b/doc/lqi-pdr/README new file mode 100644 index 000000000..699c87b2d --- /dev/null +++ b/doc/lqi-pdr/README @@ -0,0 +1,7 @@ +grep count 1000pkt-64len.txt | cut -d ' ' -f 2,5 | sed 's/ /,/g' | +sort -n > 1000pkt-64len.csv + +then: + + asy plot.asy + gv plot.eps diff --git a/doc/lqi-pdr/plot.asy b/doc/lqi-pdr/plot.asy new file mode 100644 index 000000000..7c2bef059 --- /dev/null +++ b/doc/lqi-pdr/plot.asy @@ -0,0 +1,13 @@ +import graph; +size(350,250,IgnoreAspect); + +file fin=input("./1000pkt-64len.csv"); +real[][] A=dimension(csv(fin),0,2); +real[][] pdr=transpose(A); + +draw(graph(pdr[1],pdr[0])); + +ylimits(0,1000); +xlimits(0,100); +xaxis("\rm Output Current (A)",BottomTop,LeftTicks("$%.1f$",10,begin=false,end=false,extend=true,pTick=dotted)); +yaxis("\rm Output Power (W)",LeftRight,RightTicks("$%#.1f$",8,begin=false,end=false,extend=true,pTick=dotted, ptick=dotted)); From 64564003c44da11b39180560232aac306c6742e1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 25 Oct 2010 17:29:25 -0400 Subject: [PATCH 429/471] lqi to pdr map and model --- doc/lqi-pdr/plot.asy | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/doc/lqi-pdr/plot.asy b/doc/lqi-pdr/plot.asy index 7c2bef059..b73626b3a 100644 --- a/doc/lqi-pdr/plot.asy +++ b/doc/lqi-pdr/plot.asy @@ -5,9 +5,27 @@ file fin=input("./1000pkt-64len.csv"); real[][] A=dimension(csv(fin),0,2); real[][] pdr=transpose(A); -draw(graph(pdr[1],pdr[0])); +int[] lqi = sequence(100); -ylimits(0,1000); +int f (int lqi) +{ + if(lqi < 6) { + return 0; + } else if(lqi < 11) { + return (lqi-6)*18; + } else if (lqi < 30) { + return (int)((real)(lqi-11) * 0.5 + 90); + } else { + return 100; + } +} + +int[] f_lqi = map(f,lqi); + +draw(graph(pdr[1],pdr[0]/10)); +draw(graph(lqi,f_lqi), red); + +ylimits(0,100); xlimits(0,100); xaxis("\rm Output Current (A)",BottomTop,LeftTicks("$%.1f$",10,begin=false,end=false,extend=true,pTick=dotted)); yaxis("\rm Output Power (W)",LeftRight,RightTicks("$%#.1f$",8,begin=false,end=false,extend=true,pTick=dotted, ptick=dotted)); From 181cc6f58d9d33ba65bf1b53f6f34c8109c7b663 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 25 Oct 2010 18:04:13 -0400 Subject: [PATCH 430/471] moved to lqi-pdr --- doc/1000pkt-64len.txt | 51 ------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 doc/1000pkt-64len.txt diff --git a/doc/1000pkt-64len.txt b/doc/1000pkt-64len.txt deleted file mode 100644 index d9946c08e..000000000 --- a/doc/1000pkt-64len.txt +++ /dev/null @@ -1,51 +0,0 @@ -1000 packet bursts -64 byte payload -================== - -count 995 avg lqi 19 -count 1000 avg lqi 46 -count 1000 avg lqi 54 -count 162 avg lqi 6 -count 994 avg lqi 15 -count 999 avg lqi 38 -count 45 avg lqi 3 -count 951 avg lqi 9 -count 992 avg lqi 12 -count 991 avg lqi 17 -count 1000 avg lqi 47 -count 1000 avg lqi 40 -count 995 avg lqi 19 -count 1000 avg lqi 34 -count 674 avg lqi 9 -count 976 avg lqi 12 -count 981 avg lqi 13 -count 859 avg lqi 9 -lqi_total = 0 -lqi_total = 0 -count 5 avg lqi 6 -lqi_total = 0 -count 788 avg lqi 8 -lqi_total = 0 -count 743 avg lqi 8 -count 308 avg lqi 6 -count 317 avg lqi 6 -count 30 avg lqi 5 -count 1 avg lqi 6 -count 842 avg lqi 9 -count 898 avg lqi 10 -lqi_total = 0 -count 6 avg lqi 3 -count 5 avg lqi 6 -count 596 avg lqi 7 -count 511 avg lqi 7 -count 602 avg lqi 7 -count 988 avg lqi 30 -count 998 avg lqi 30 -count 978 avg lqi 19 -lqi_total = 0 -count 170 avg lqi 7 -count 5 avg lqi 4 -count 506 avg lqi 8 -count 993 avg lqi 16 -count 993 avg lqi 19 -count 51 avg lqi 9 From 1750388ec049a784b2cc9d7df4e0ded46c420d77 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 27 Oct 2010 11:18:56 -0400 Subject: [PATCH 431/471] fix labels and update model --- doc/lqi-pdr/plot.asy | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/lqi-pdr/plot.asy b/doc/lqi-pdr/plot.asy index b73626b3a..93c97c3b3 100644 --- a/doc/lqi-pdr/plot.asy +++ b/doc/lqi-pdr/plot.asy @@ -9,11 +9,11 @@ int[] lqi = sequence(100); int f (int lqi) { - if(lqi < 6) { - return 0; - } else if(lqi < 11) { + if(lqi <= 6) { + return (int)((real)lqi*.8); + } else if(lqi <= 11) { return (lqi-6)*18; - } else if (lqi < 30) { + } else if (lqi <= 30) { return (int)((real)(lqi-11) * 0.5 + 90); } else { return 100; @@ -27,5 +27,5 @@ draw(graph(lqi,f_lqi), red); ylimits(0,100); xlimits(0,100); -xaxis("\rm Output Current (A)",BottomTop,LeftTicks("$%.1f$",10,begin=false,end=false,extend=true,pTick=dotted)); -yaxis("\rm Output Power (W)",LeftRight,RightTicks("$%#.1f$",8,begin=false,end=false,extend=true,pTick=dotted, ptick=dotted)); +xaxis("\rm LQI",BottomTop,LeftTicks("$%.1f$",10,begin=false,end=false,extend=true,pTick=dotted)); +yaxis("\rm Packet Deliver Ratio (\%)",LeftRight,RightTicks("$%#.1f$",8,begin=false,end=false,extend=true,pTick=dotted, ptick=dotted)); From 43d23d4764bc7029a398c2bc7ba7ddf3a90e2f41 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 6 Nov 2010 22:12:46 -0400 Subject: [PATCH 432/471] update ring_osc_on and _off to the new bit structs --- lib/include/crm.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/include/crm.h b/lib/include/crm.h index 09da00988..93c2b4b31 100644 --- a/lib/include/crm.h +++ b/lib/include/crm.h @@ -266,8 +266,8 @@ static const int ROSC_CTUNE = 9; /* 4 bits */ static const int ROSC_FTUNE = 4; /* 4 bits */ static const int ROSC_EN = 0; -#define ring_osc_on() (set_bit(*CRM_RINGOSC_CNTL,ROSC_EN)) -#define ring_osc_off() (clear_bit(*CRM_RINGOSC_CNTL,ROSC_EN)) +#define ring_osc_on() (CRM->RINGOSC_CNTLbits.ROSC_EN = 1) +#define ring_osc_off() (CRM->RINGOSC_CNTLbits.ROSC_EN = 0) #define REF_OSC 24000000UL /* reference osc. frequency */ #define NOMINAL_RING_OSC_SEC 2000 /* nominal ring osc. frequency */ From 3ec4b267fcd061a2010c31e8446e642790bd8352 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 10 Nov 2010 15:44:38 -0500 Subject: [PATCH 433/471] use stdint.h instead of custom types.h stdint.h is more portable across compilers --- lib/gpio.c | 2 +- lib/include/crm.h | 2 +- lib/include/isr.h | 2 ++ lib/include/maca.h | 2 +- lib/include/mc1322x.h | 1 - lib/include/nvm.h | 2 +- lib/include/types.h | 48 ------------------------------------------- lib/include/uart1.h | 2 +- lib/printf.c | 2 +- lib/uart1.c | 2 +- 10 files changed, 9 insertions(+), 56 deletions(-) delete mode 100644 lib/include/types.h diff --git a/lib/gpio.c b/lib/gpio.c index 03849c0ee..ed1582ce1 100644 --- a/lib/gpio.c +++ b/lib/gpio.c @@ -34,7 +34,7 @@ */ #include -#include +#include inline void gpio_pad_dir(volatile uint64_t data) { diff --git a/lib/include/crm.h b/lib/include/crm.h index 93c2b4b31..f63a72db1 100644 --- a/lib/include/crm.h +++ b/lib/include/crm.h @@ -36,7 +36,7 @@ #ifndef CRM_H #define CRM_H -#include +#include #define CRM_BASE (0x80003000) diff --git a/lib/include/isr.h b/lib/include/isr.h index a63215ce8..6e5102526 100644 --- a/lib/include/isr.h +++ b/lib/include/isr.h @@ -36,6 +36,8 @@ #ifndef ISR_H #define ISR_H +#include + #define INTBASE (0x80020000) /* Structure-based ITC access */ diff --git a/lib/include/maca.h b/lib/include/maca.h index 4d2e14472..24c10ce3d 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -37,7 +37,7 @@ #define _MACA_H_ #include -#include +#include #include /* maca initialization and on off routines */ diff --git a/lib/include/mc1322x.h b/lib/include/mc1322x.h index bf61e52d5..a05a48744 100644 --- a/lib/include/mc1322x.h +++ b/lib/include/mc1322x.h @@ -36,7 +36,6 @@ #ifndef MC1322X_H #define MC1322X_H -#include "types.h" #include "isr.h" #include "gpio.h" #include "crm.h" diff --git a/lib/include/nvm.h b/lib/include/nvm.h index 05ad7a670..5a78be441 100644 --- a/lib/include/nvm.h +++ b/lib/include/nvm.h @@ -36,7 +36,7 @@ #ifndef NVM_H #define NVM_H -#include "types.h" +#include typedef enum { diff --git a/lib/include/types.h b/lib/include/types.h deleted file mode 100644 index 7e66a045b..000000000 --- a/lib/include/types.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2010, Mariano Alvira and other contributors - * to the MC1322x project (http://mc1322x.devl.org) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of libmc1322x: see http://mc1322x.devl.org - * for details. - * - * $Id$ - */ - -#ifndef _TYPES_H -#define _TYPES_H - -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed int int32_t; -typedef unsigned int uint32_t; -typedef signed long long int int64_t; -typedef unsigned long long int uint64_t; - -#endif diff --git a/lib/include/uart1.h b/lib/include/uart1.h index 0b0ef08e8..3feab2279 100644 --- a/lib/include/uart1.h +++ b/lib/include/uart1.h @@ -36,7 +36,7 @@ #ifndef UART1_H #define UART1_H -#include +#include #define UCON (0) /* UCON bits */ diff --git a/lib/printf.c b/lib/printf.c index 64da212a8..d43ea1c28 100644 --- a/lib/printf.c +++ b/lib/printf.c @@ -70,7 +70,7 @@ #include #include -#include +#include #define __putc(x) uart1_putc(x) diff --git a/lib/uart1.c b/lib/uart1.c index b5bd78011..87ac10223 100644 --- a/lib/uart1.c +++ b/lib/uart1.c @@ -34,7 +34,7 @@ */ #include -#include +#include volatile char u1_tx_buf[64]; volatile uint32_t u1_head, u1_tail; From 731b29f30e4e211cb085a1df3959a8530268b429 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 10 Nov 2010 16:14:20 -0500 Subject: [PATCH 434/471] include crm.h --- src/default_lowlevel.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/default_lowlevel.h b/src/default_lowlevel.h index cbbab4887..803f94a17 100644 --- a/src/default_lowlevel.h +++ b/src/default_lowlevel.h @@ -36,6 +36,8 @@ #ifndef LOWLEVEL_H #define LOWLEVEL_H +#include "crm.h" + #define trim_xtal() pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); void default_vreg_init(void); void uart1_init(uint16_t inc, uint16_t mod, uint8_t samp); From 47fe336c5176eea1c2d3510ade351da706a219a4 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 17 Nov 2010 15:02:35 -0500 Subject: [PATCH 435/471] Use the CS toolchain by default: http://www.codesourcery.com/sgpp/lite/arm/portal/release642 --- Makefile.include | 2 +- tests/printf.c | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Makefile.include b/Makefile.include index 4767d4a04..ee7a5e0b6 100644 --- a/Makefile.include +++ b/Makefile.include @@ -18,7 +18,7 @@ endef # Tools and flags # Set up cross compiler and toolchain definitions. -CROSS_COMPILE ?= arm-linux- +CROSS_COMPILE ?= arm-none-eabi- AS = $(CROSS_COMPILE)as LD = $(CROSS_COMPILE)ld CC = $(CROSS_COMPILE)gcc diff --git a/tests/printf.c b/tests/printf.c index 9a914daf6..7e646c738 100644 --- a/tests/printf.c +++ b/tests/printf.c @@ -48,20 +48,20 @@ printf("): %d\n", sizeof(x)); \ } while(0) -FILE *stderr; +/* FILE *stderr; */ -void __assert_fail(void) { - return; -} +/* void __assert_fail(void) { */ +/* return; */ +/* } */ -int fputs(const char *s, FILE *stream) { - return 0; -} +/* int fputs(const char *s, FILE *stream) { */ +/* return 0; */ +/* } */ -size_t fwrite(const void *ptr, size_t size, size_t nmemb, - FILE *stream) { - return 0; -} +/* size_t fwrite(const void *ptr, size_t size, size_t nmemb, */ +/* FILE *stream) { */ +/* return 0; */ +/* } */ int main(void) { From 9de2fc59977fc38d2cc5ce0fd22a52b4fb3254eb Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 20 Nov 2010 11:46:07 -0500 Subject: [PATCH 436/471] need these stubs if you are using a linux toolchain --- tests/printf.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/tests/printf.c b/tests/printf.c index 7e646c738..c39bab08b 100644 --- a/tests/printf.c +++ b/tests/printf.c @@ -48,20 +48,22 @@ printf("): %d\n", sizeof(x)); \ } while(0) -/* FILE *stderr; */ +#if (__linux__) +FILE *stderr; -/* void __assert_fail(void) { */ -/* return; */ -/* } */ +void __assert_fail(void) { + return; +} -/* int fputs(const char *s, FILE *stream) { */ -/* return 0; */ -/* } */ +int fputs(const char *s, FILE *stream) { + return 0; +} -/* size_t fwrite(const void *ptr, size_t size, size_t nmemb, */ -/* FILE *stream) { */ -/* return 0; */ -/* } */ +size_t fwrite(const void *ptr, size_t size, size_t nmemb, + FILE *stream) { + return 0; +} +#endif int main(void) { From b3373d38a41858f53dee9d1c7eb041b7e3b08cf8 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 20 Nov 2010 11:48:29 -0500 Subject: [PATCH 437/471] add cmdline options to set the intercharacter delays. --- tools/mc1322x-load.pl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/mc1322x-load.pl b/tools/mc1322x-load.pl index 41d82af58..df3c2b22e 100755 --- a/tools/mc1322x-load.pl +++ b/tools/mc1322x-load.pl @@ -14,6 +14,8 @@ my $baud = '115200'; my $verbose; my $rts = 'rts'; my $command = ''; +my $first_delay = 50; +my $second_delay = 100; my $do_exit; my $zerolen; @@ -25,6 +27,8 @@ GetOptions ('file=s' => \$filename, 'baud=s' => \$baud, 'rts=s' => \$rts, 'command=s' => \$command, + 'a=s' => \$first_delay, + 'b=s' => \$second_delay, 'exit' => \$do_exit, ) or die 'bad options'; @@ -43,6 +47,8 @@ if($filename eq '') { print " -c command to run for autoreset: \n"; print " e.g. -c 'bbmc -l redbee-econotag -i 0 reset'\n"; print " -e exit instead of dropping to terminal display\n"; + print " -a first intercharacter delay, passed to usleep\n"; + print " -b second intercharacter delay, passed to usleep\n"; print "\n"; print "anything on the command line is sent\n"; print "after all of the files.\n\n"; @@ -121,8 +127,8 @@ while(1) { my $i = 1; while(read(FILE, $c, 1)) { $i++; - usleep(50); # this is as fast is it can go... - usleep(50) if ($s==1); + usleep($first_delay) if ( $s == 0 ); + usleep($second_delay) if ( $s == 1 ); $ob->write($c); } } From 5a899bea08da61e97333cecec5975cb01b186c72 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 20 Nov 2010 13:06:29 -0500 Subject: [PATCH 438/471] add stdint.h --- tools/ftditools/bbmc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c index af58bcd46..ae9b2c3a5 100644 --- a/tools/ftditools/bbmc.c +++ b/tools/ftditools/bbmc.c @@ -37,6 +37,7 @@ #include #include +#include #include #include From a27dde6d1798ad729a9ca9cd1c952341678c8d15 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 21 Nov 2010 17:05:49 -0500 Subject: [PATCH 439/471] add timer setup routines --- lib/include/timer.h | 53 +++++++++++++++++++++++++ lib/timer.c | 97 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 lib/include/timer.h create mode 100644 lib/timer.c diff --git a/lib/include/timer.h b/lib/include/timer.h new file mode 100644 index 000000000..f7b7c38e3 --- /dev/null +++ b/lib/include/timer.h @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + +#ifndef TIMER_H +#define TIMER_H + +/* Initialize timer. This just counts and interrupts, doesn't drive an output. + timer_num = 0, 1, 2, 3 + rate = desired rate in Hz, + enable_int = whether to enable an interrupt on every cycle + Returns actual timer rate. */ +uint32_t timer_setup_ex(int timer_num, uint32_t rate, int enable_int); + +/* Initialize timer. This just counts and interrupts, doesn't drive an output. + timer = TMR0, TMR1, TMR2, TMR3 + rate = desired rate in Hz, + enable_int = whether to enable an interrupt on every cycle + Returns actual timer rate. */ +#define timer_setup(timer,rate,enable_int) timer_setup_ex(TMR_NUM(timer), rate, enable_int) + +#endif diff --git a/lib/timer.c b/lib/timer.c new file mode 100644 index 000000000..1a8f0d14e --- /dev/null +++ b/lib/timer.c @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + +#include +#include +#include "timer.h" + +/* Initialize timer. This just counts and interrupts, doesn't drive an output. + timer_num = 0, 1, 2, 3 + rate = desired rate in Hz, + enable_int = whether to enable an interrupt on every cycle + Returns actual timer rate. */ +uint32_t timer_setup_ex(int timer_num, uint32_t rate, int enable_int) +{ + uint32_t actual_rate; + volatile struct TMR_struct *timer = TMR_ADDR(timer_num); + int log_divisor = 0; + uint32_t period; + + /* Turn timer off */ + TMR0->ENBL &= ~(1 << timer_num); + + /* Calculate optimal rate */ + for (log_divisor = 0; log_divisor < 8; log_divisor++) + { + int denom = (rate * (1 << log_divisor)); + period = (REF_OSC + denom/2) / denom; + if (period <= 65535) + break; + } + if (log_divisor >= 8) + { + period = 65535; + log_divisor = 7; + } + + if (period < 2) period = 2; + + actual_rate = REF_OSC / (period * (1 << log_divisor)); + + /* Set up timer */ + + timer->LOAD = 0; + timer->CMPLD1 = (period - 1); + timer->COMP1 = timer->CMPLD1; + timer->CNTR = timer->LOAD; + timer->SCTRL = 0; + timer->CSCTRLbits = (struct TMR_CSCTRL) { + .CL1 = 0x01, // Reload COMP1 when COMP1 matches + }; + timer->CTRLbits = (struct TMR_CTRL) { + .COUNT_MODE = 1, // Count rising edge of primary source + .PRIMARY_CNT_SOURCE = 8 + log_divisor, // Peripheral clock divided by (divisor) + .LENGTH = 1, // At compare, reset to LOAD + }; + + TMR0->ENBL |= (1 << timer_num); + + if (enable_int) { + enable_irq(TMR); + timer->SCTRLbits.TCFIE = 1; + } + + return actual_rate; +} From 92e5a4f78d29fc82ea8aa80fdb1f5aa71263b97d Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 23 Nov 2010 15:00:45 -0500 Subject: [PATCH 440/471] add -nodefaultlibs pulling in from libc generally causes problems. --- Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.include b/Makefile.include index ee7a5e0b6..9bba19229 100644 --- a/Makefile.include +++ b/Makefile.include @@ -33,7 +33,7 @@ RANLIB = $(CROSS_COMPILE)ranlib # Build CFLAGS and prepend it to user-supplied CFLAGS CFLAGS_PLAT ?= -march=armv4t -mtune=arm7tdmi-s -mlong-calls -msoft-float \ -mthumb-interwork -fno-strict-aliasing -fno-common -ffixed-r8 \ - -ffunction-sections -ffreestanding -fno-builtin + -ffunction-sections -ffreestanding -fno-builtin -nodefaultlibs CFLAGS_WARN ?= -Wcast-align -Wall -Wstrict-prototypes -Wextra CFLAGS_OPT ?= -Os CFLAGS_DEBUG ?= -g -DDEBUG -Werror From d8d8c77a2caab7f5eddcee63b28371fe2fc87f45 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 24 Dec 2010 14:30:06 -0500 Subject: [PATCH 441/471] cycle channel on keypress. --- tests/rftest-rx.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 86d42c0f1..608313835 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -50,6 +50,7 @@ void maca_rx_callback(volatile packet_t *p) { void main(void) { volatile packet_t *p; + volatile uint8_t chan; gpio_data(0); @@ -72,7 +73,8 @@ void main(void) { gpio_pad_dir_set( 1ULL << 44 ); set_power(0x0f); /* 0dbm */ - set_channel(0); /* channel 11 */ + chan = 0; + set_channel(chan); /* channel 11 */ print_welcome("rftest-rx"); while(1) { @@ -87,5 +89,14 @@ void main(void) { print_packet(p); free_packet(p); } + + if(uart1_can_get()) { + uart1_getc(); + chan++; + if(chan >= 16) { chan = 0; } + set_channel(chan); + printf("channel: %d\n\r", chan); + } + } } From 5660024bcd6b48152bd250bcbbe3c5ff4c257c51 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 29 Dec 2010 18:10:45 -0800 Subject: [PATCH 442/471] update rftest parser to new output format --- tools/rftestrx2pcap.pl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/rftestrx2pcap.pl b/tools/rftestrx2pcap.pl index 2bf58a657..b10c19d09 100755 --- a/tools/rftestrx2pcap.pl +++ b/tools/rftestrx2pcap.pl @@ -59,13 +59,13 @@ while(1) { #new packet ($sec, $usec) = gettimeofday; print STDERR "rftestline: $sec $usec $str"; - } elsif($str =~ /^\s*data/) { + } elsif($str =~ /^\w+/) { #packet payload print STDERR "dataline: "; print STDERR $str; - $str =~ /data: 0x\d+ (.+)/; + chomp $str; + $str =~ /(.+)/; my @data = split(' ',$1); - ($len, @data) = @data; #write out pcap entry print pack('LLLL',($sec,$usec,scalar(@data),scalar(@data)+2)); print STDERR "new packet: $sec $usec " . scalar(@data) . " " . (scalar(@data)+2) . "\n\r"; From f4a2efa221f5e58e36392514cbf0723962ac6506 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 7 Jan 2011 11:29:07 -0500 Subject: [PATCH 443/471] fix parsing and pcap generation for packets with multiple output lines (those that are > 16 bytes). --- tools/rftestrx2pcap.pl | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/tools/rftestrx2pcap.pl b/tools/rftestrx2pcap.pl index b10c19d09..89ed290be 100755 --- a/tools/rftestrx2pcap.pl +++ b/tools/rftestrx2pcap.pl @@ -45,6 +45,9 @@ my $sig = 0; my $snaplen = 0xffff; my $network = 195; # 802.15.4 +my $newpacket = 0; +my $len = 0; + print pack('LSSLLLL',($magic,$major,$minor,$zone,$sig,$snaplen,$network)); while(1) { @@ -55,30 +58,33 @@ while(1) { # match if ends in \n or \r and process line if(($str =~ /\n$/) || ($str =~ /\r$/)) { - if($str =~ /^rftest/) { + if($str =~ /^rftest-rx --- len 0x(\w\w)/) { #new packet ($sec, $usec) = gettimeofday; - print STDERR "rftestline: $sec $usec $str"; + $len = hex($1); + print STDERR "rftestline: $sec $usec $len $str"; + $newpacket = 1; } elsif($str =~ /^\w+/) { - #packet payload - print STDERR "dataline: "; - print STDERR $str; - chomp $str; + # dataline, write out pcap entry $str =~ /(.+)/; + chomp $str; my @data = split(' ',$1); - #write out pcap entry - print pack('LLLL',($sec,$usec,scalar(@data),scalar(@data)+2)); - print STDERR "new packet: $sec $usec " . scalar(@data) . " " . (scalar(@data)+2) . "\n\r"; - @frame = @data[0,1]; - print pack ('CC',(hex($frame[0]),hex($frame[1]))); - print STDERR "$frame[0] $frame[1] "; - foreach my $data (@data[2..scalar(@data)-1]) { + + # do header if this is a new packet + if($newpacket == 1) { + $newpacket = 0; + print pack('LLLL',($sec,$usec,$len,$len)); + print STDERR "new packet: $sec $usec $len " . ($len) . "\n\r"; + } + + # packet payload + print STDERR "dataline: "; + print STDERR $str . "\n\r"; + + foreach my $data (@data) { print pack ('C',hex($data)); - print STDERR "$data "; } - print STDERR "\n\r"; } - print STDERR "\n\r"; $str = ''; } } From 8967d8a85ef488337f0e9467a44e996f065a8d5b Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 16 Jan 2011 09:32:57 -0500 Subject: [PATCH 444/471] notes about acking --- TODO | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/TODO b/TODO index 1512c2e19..8a68f8400 100644 --- a/TODO +++ b/TODO @@ -14,3 +14,11 @@ - beacon sync - CCA and ED. + +- auto-acking and ack managment + keep a set of bit fields, one bit per sequence number (DSN), so 32 bytes + total. + Set them all to 1 initially. When a DSN is sent, clear the bit. Set + the bit when the ack is received. + Do anything special with sent but unacked packets? Maybe, so you can + retransmit them. \ No newline at end of file From fc7c0ad3c160986576f4b60cb5371a33ca0df8b6 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 16 Jan 2011 12:01:13 -0500 Subject: [PATCH 445/471] note about how contiki isn't using 802.15.4 acks so there isn't much point to implement them --- TODO | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/TODO b/TODO index 8a68f8400..ccb5adf72 100644 --- a/TODO +++ b/TODO @@ -21,4 +21,10 @@ Set them all to 1 initially. When a DSN is sent, clear the bit. Set the bit when the ack is received. Do anything special with sent but unacked packets? Maybe, so you can - retransmit them. \ No newline at end of file + retransmit them. + + Dosen't look like contiki ever uses 802.15.4 acking: grep ACKFRAME + + not much point to implement it here unless you also plan to use in + in contiki (pretty substantial change to core Contiki). + From 92164e7eff8903cf9d996f02fe100aa61bc3ca34 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 16 Jan 2011 12:38:34 -0500 Subject: [PATCH 446/471] more note about autoack --- requires proper hardware addressing --- TODO | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TODO b/TODO index ccb5adf72..bd074f9ad 100644 --- a/TODO +++ b/TODO @@ -28,3 +28,6 @@ not much point to implement it here unless you also plan to use in in contiki (pretty substantial change to core Contiki). + also you ack the data after checking it's for you. so autoack relies + on setting up the hardware addressing. + From e4f644f7b18b3f2e9a98c752d645a529f5cb9daf Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 17 Jan 2011 07:41:44 -0500 Subject: [PATCH 447/471] fix a race condition regarding advancement of the softclock. Without this, the advancment would fail to trigger a tx cycle occasionally. This would cause the packet to get deferred until the next expiration of the softclock. --- lib/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index 43fc4a264..0936eb3b0 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -461,7 +461,7 @@ void tx_packet(volatile packet_t *p) { if(bit_is_set(*NIPEND, INT_NUM_MACA)) { *INTFRC = (1 << INT_NUM_MACA); } if(last_post == NO_POST) { *INTFRC = (1< Date: Mon, 17 Jan 2011 09:55:37 -0500 Subject: [PATCH 448/471] remove extra semicolon from macro definition --- src/default_lowlevel.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/default_lowlevel.h b/src/default_lowlevel.h index 803f94a17..891ddee57 100644 --- a/src/default_lowlevel.h +++ b/src/default_lowlevel.h @@ -38,7 +38,8 @@ #include "crm.h" -#define trim_xtal() pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS); +#define trim_xtal() pack_XTAL_CNTL(CTUNE_4PF, CTUNE, FTUNE, IBIAS) + void default_vreg_init(void); void uart1_init(uint16_t inc, uint16_t mod, uint8_t samp); From 377f849a025332d9d74e846a2c964480b6bc1588 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 17 Jan 2011 10:08:40 -0500 Subject: [PATCH 449/471] moved timer.c and .h into tmr.c and .h so that these names don't conflict with the timers in Contiki. --- lib/include/timer.h | 53 ------------------------------------------ lib/include/tmr.h | 14 +++++++++++ lib/{timer.c => tmr.c} | 2 +- 3 files changed, 15 insertions(+), 54 deletions(-) delete mode 100644 lib/include/timer.h rename lib/{timer.c => tmr.c} (99%) diff --git a/lib/include/timer.h b/lib/include/timer.h deleted file mode 100644 index f7b7c38e3..000000000 --- a/lib/include/timer.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2010, Mariano Alvira and other contributors - * to the MC1322x project (http://mc1322x.devl.org) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of libmc1322x: see http://mc1322x.devl.org - * for details. - * - * $Id$ - */ - -#ifndef TIMER_H -#define TIMER_H - -/* Initialize timer. This just counts and interrupts, doesn't drive an output. - timer_num = 0, 1, 2, 3 - rate = desired rate in Hz, - enable_int = whether to enable an interrupt on every cycle - Returns actual timer rate. */ -uint32_t timer_setup_ex(int timer_num, uint32_t rate, int enable_int); - -/* Initialize timer. This just counts and interrupts, doesn't drive an output. - timer = TMR0, TMR1, TMR2, TMR3 - rate = desired rate in Hz, - enable_int = whether to enable an interrupt on every cycle - Returns actual timer rate. */ -#define timer_setup(timer,rate,enable_int) timer_setup_ex(TMR_NUM(timer), rate, enable_int) - -#endif diff --git a/lib/include/tmr.h b/lib/include/tmr.h index bb92fe50c..456791328 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -239,4 +239,18 @@ static volatile struct TMR_struct * const TMR3 = (void *) (TMR3_BASE); #endif /* REG_NO_COMPAT */ +/* Initialize timer. This just counts and interrupts, doesn't drive an output. + timer_num = 0, 1, 2, 3 + rate = desired rate in Hz, + enable_int = whether to enable an interrupt on every cycle + Returns actual timer rate. */ +uint32_t timer_setup_ex(int timer_num, uint32_t rate, int enable_int); + +/* Initialize timer. This just counts and interrupts, doesn't drive an output. + timer = TMR0, TMR1, TMR2, TMR3 + rate = desired rate in Hz, + enable_int = whether to enable an interrupt on every cycle + Returns actual timer rate. */ +#define timer_setup(timer,rate,enable_int) timer_setup_ex(TMR_NUM(timer), rate, enable_int) + #endif diff --git a/lib/timer.c b/lib/tmr.c similarity index 99% rename from lib/timer.c rename to lib/tmr.c index 1a8f0d14e..c6136c52c 100644 --- a/lib/timer.c +++ b/lib/tmr.c @@ -35,7 +35,7 @@ #include #include -#include "timer.h" +#include "tmr.h" /* Initialize timer. This just counts and interrupts, doesn't drive an output. timer_num = 0, 1, 2, 3 From 9f82e068610d07f3de37b25f52b5c570e8f1842f Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Tue, 18 Jan 2011 11:40:35 -0500 Subject: [PATCH 450/471] use network 230 --- 802.15.4 no-FCS --- tools/rftestrx2pcap.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/rftestrx2pcap.pl b/tools/rftestrx2pcap.pl index 89ed290be..df568cccb 100755 --- a/tools/rftestrx2pcap.pl +++ b/tools/rftestrx2pcap.pl @@ -43,7 +43,7 @@ my $minor = 4; my $zone = 0; my $sig = 0; my $snaplen = 0xffff; -my $network = 195; # 802.15.4 +my $network = 230; # 802.15.4 no FCS my $newpacket = 0; my $len = 0; From 7c7864eae29e37534cf896849c8815f3d1d3e4e8 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 12 Feb 2011 14:01:54 -0500 Subject: [PATCH 451/471] add autoacking --- doc/autoack | 34 ++++++++ lib/include/maca.h | 9 +++ lib/include/packet.h | 1 + lib/maca.c | 28 +++++-- tests/Makefile | 1 + tests/autoack-rx.c | 109 +++++++++++++++++++++++++ tests/autoack-tx.c | 189 +++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 366 insertions(+), 5 deletions(-) create mode 100644 doc/autoack create mode 100644 tests/autoack-rx.c create mode 100644 tests/autoack-tx.c diff --git a/doc/autoack b/doc/autoack new file mode 100644 index 000000000..3c5b0ea62 --- /dev/null +++ b/doc/autoack @@ -0,0 +1,34 @@ +The known details about autoacking. + +1) Auto-acking is disabled if promiscuous mode in enabled. Auto-acking + is enabled when promiscuous mode is disabled. A more proper name + for this bit would be promiscuous/#autoack. + +2) If promiscuous mode is disabled and a recieved packet 1) matches + the address filters and 2) has the ack request bit set, then an + auto-ack will be sent (provided you do item 3 properly). The + sequence number is stuffed and transmitted automatically. Note: you + must have the address set properly in the maca hardware. That means + the EUI registers for long addressing and the PANID and short + addr. for short addressing. + +3) You must wait 200 maca clocks or so after receiving a packet that + needs an ack. This is necessary for the maca to do it's thing. If + you don't wait enough then it either will not send the ack, or if + you wait a little more (but not enough), the ack DSN will be zero. + +4) The following must be set properly, TXACKDELAY, RXACKDELAY, + RXEND. The best way to set these is to use a scope and the TX_ON + and RX_ON signals. You set TXACKDELAY so that the ack is + transmitted 12 symbols after the received packet (192 us). You set + RXACKDELAY to start before the ack is due to arrive (I'm doing + 100us before). And you set RXEND to be long enough to receive the + ACK (I'm doing a 700us window or so). + +4b) CCA has its own set of timings. + +5) The transmitter must set TXSEQNR before MACA_DMATX. + +6) The status of the next "action complete" on the TX side tells you + if the ack was received or not. Status will be 0 (success) if you + got the ack and 5 (no_ack) if you did not. diff --git a/lib/include/maca.h b/lib/include/maca.h index 24c10ce3d..fa484b5c6 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -62,6 +62,11 @@ void set_demodulator_type(uint8_t demod); extern volatile uint8_t fcs_mode; #define set_fcs_mode(x) fcs_mode = (x) +/* set_prm_mode(PROMISC) to disable address filtering */ +/* set_prm_mode(AUTOACK) to enable address filtering AND autoack */ +extern volatile uint8_t prm_mode; +#define set_prm_mode(x) prm_mode = (x) + /* maca packet interface */ void tx_packet(volatile packet_t *p); volatile packet_t* rx_packet(void); @@ -105,6 +110,10 @@ enum { NO_FCS = 1, }; #define PRM 11 /* set for promiscuous mode */ +enum { + AUTOACK = 0, + PROMISC = 1, +}; #define REL 10 /* 1 for relative, 0 for absolute */ #define ASAP 9 /* 1 start now, 0 timer start */ #define BCN 8 /* 1 beacon only, 0 for a */ diff --git a/lib/include/packet.h b/lib/include/packet.h index 295257421..a792d8a1b 100644 --- a/lib/include/packet.h +++ b/lib/include/packet.h @@ -52,6 +52,7 @@ struct packet { /* On RX this should be 1 since the maca puts the length as the first byte*/ uint8_t offset; uint8_t lqi; + uint8_t status; #if PACKET_STATS uint8_t seen; uint8_t post_tx; diff --git a/lib/maca.c b/lib/maca.c index 0936eb3b0..025625af9 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -102,6 +102,7 @@ enum posts { static volatile uint8_t last_post = NO_POST; volatile uint8_t fcs_mode = USE_FCS; +volatile uint8_t prm_mode = PROMISC; /* call periodically to */ /* check that maca_entry is changing */ @@ -181,7 +182,9 @@ void maca_init(void) { /* initial radio command */ /* nop, promiscuous, no cca */ - *MACA_CONTROL = (1 << PRM) | (NO_CCA << MODE); + *MACA_CONTROL = + (prm_mode << PRM) | + (NO_CCA << MODE); enable_irq(MACA); *INTFRC = (1 << INT_NUM_MACA); @@ -364,8 +367,8 @@ void post_receive(void) { *MACA_CONTROL = ( (1 << maca_ctrl_asap) | ( 4 << PRECOUNT) | ( fcs_mode << NOFC ) | + ( prm_mode << PRM) | (1 << maca_ctrl_auto) | - (1 << maca_ctrl_prm) | (maca_ctrl_seq_rx)); /* status bit 10 is set immediately */ /* then 11, 10, and 9 get set */ @@ -405,7 +408,8 @@ void post_tx(void) { #if PACKET_STATS dma_tx->post_tx++; #endif - *MACA_TXLEN = (uint32_t)((dma_tx->length) + 2); + *MACA_TXSEQNR = dma_tx->data[2]; + *MACA_TXLEN = (uint32_t)((dma_tx->length) + 2) | (3 << 16); /* set rx len to ACK length */ *MACA_DMATX = (uint32_t)&(dma_tx->data[ 0 + dma_tx->offset]); if(dma_rx == 0) { dma_rx = get_free_packet(); @@ -429,7 +433,8 @@ void post_tx(void) { *MACA_TMREN = (1 << maca_tmren_cpl); enable_irq(MACA); - *MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) | + *MACA_CONTROL = ( ( 4 << PRECOUNT) | + ( prm_mode << PRM) | (maca_ctrl_mode_no_cca << maca_ctrl_mode) | (1 << maca_ctrl_asap) | (maca_ctrl_seq_tx)); @@ -610,8 +615,17 @@ void maca_isr(void) { *MACA_CLRIRQ = (1 << maca_irq_di); dma_rx->length = *MACA_GETRXLVL - 2; /* packet length does not include FCS */ dma_rx->lqi = get_lqi(); -// PRINTF("maca data ind %x %d\n\r", dma_rx, dma_rx->length); + + /* check if received packet needs an ack */ + if(dma_rx->data[1] & 0x20) { + /* this wait is necessary to auto-ack */ + volatile uint32_t wait_clk; + wait_clk = *MACA_CLK + 200; + while(*MACA_CLK < wait_clk) { continue; } + } + if(maca_rx_callback != 0) { maca_rx_callback(dma_rx); } + add_to_rx(dma_rx); dma_rx = 0; } @@ -634,6 +648,7 @@ void maca_isr(void) { if(action_complete_irq()) { /* PRINTF("maca action complete %d\n\r", get_field(*MACA_CONTROL,SEQUENCE)); */ if(last_post == TX_POST) { + tx_head->status = get_field(*MACA_STATUS,CODE); if(maca_tx_callback != 0) { maca_tx_callback(tx_head); } dma_tx = 0; free_tx_head(); @@ -669,6 +684,9 @@ void init_phy(void) *MACA_TXCCADELAY = 0x00000025; *MACA_FRAMESYNC0 = 0x000000A7; *MACA_CLK = 0x00000008; + *MACA_RXACKDELAY = 30; + *MACA_RXEND = 180; + *MACA_TXACKDELAY = 68; *MACA_MASKIRQ = ((1 << maca_irq_rst) | (1 << maca_irq_acpl) | (1 << maca_irq_cm) | diff --git a/tests/Makefile b/tests/Makefile index 5e8dff878..b664694da 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -16,6 +16,7 @@ TARGETS := blink-red blink-green blink-blue blink-white blink-allio \ # this space is initialized with a rom call to rom_data_init TARGETS_WITH_ROM_VARS := nvm-read nvm-write romimg flasher \ rftest-rx rftest-tx \ + autoack-rx autoack-tx \ per ################################################## diff --git a/tests/autoack-rx.c b/tests/autoack-rx.c new file mode 100644 index 000000000..88dad71fe --- /dev/null +++ b/tests/autoack-rx.c @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + +#include +#include +#include + +#include "tests.h" +#include "config.h" + +#define LED LED_GREEN + +void maca_rx_callback(volatile packet_t *p) { + (void)p; + gpio_data_set(1ULL<< LED); + gpio_data_reset(1ULL<< LED); +} + +void main(void) { + volatile packet_t *p; + volatile uint8_t t=20; + uint8_t chan; + char c; + + gpio_data(0); + + gpio_pad_dir_set( 1ULL << LED ); + /* read from the data register instead of the pad */ + /* this is needed because the led clamps the voltage low */ + gpio_data_sel( 1ULL << LED); + + /* trim the reference osc. to 24MHz */ + trim_xtal(); + + uart_init(INC, MOD, SAMP); + + vreg_init(); + + maca_init(); + + /* sets up tx_on, should be a board specific item */ + *GPIO_FUNC_SEL2 = (0x01 << ((44-16*2)*2)); + gpio_pad_dir_set( 1ULL << 44 ); + + set_power(0x0f); /* 0dbm */ + chan = 0; + set_channel(chan); /* channel 11 */ + + *MACA_MACPANID = 0xaaaa; + *MACA_MAC16ADDR = 0x1111; + *MACA_TXACKDELAY = 68; /* 68 puts the tx ack at about the correct spot */ + set_prm_mode(AUTOACK); + + print_welcome("rftest-rx"); + while(1) { + + /* call check_maca() periodically --- this works around */ + /* a few lockup conditions */ + check_maca(); + + if((p = rx_packet())) { + /* print and free the packet */ + printf("autoack-rx --- "); + print_packet(p); + free_packet(p); + } + + if(uart1_can_get()) { + c = uart1_getc(); + if(c == 'z') t++; + if(c == 'x') t--; + *MACA_TXACKDELAY = t; + printf("tx ack delay: %d\n\r", t); + } + + } +} diff --git a/tests/autoack-tx.c b/tests/autoack-tx.c new file mode 100644 index 000000000..8621ab8b0 --- /dev/null +++ b/tests/autoack-tx.c @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2010, Mariano Alvira and other contributors + * to the MC1322x project (http://mc1322x.devl.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of libmc1322x: see http://mc1322x.devl.org + * for details. + * + * $Id$ + */ + +#include +#include +#include + +#include "tests.h" +#include "config.h" + +#define LED LED_RED + +/* 802.15.4 PSDU is 127 MAX */ +/* 2 bytes are the FCS */ +/* therefore 125 is the max payload length */ +#define PAYLOAD_LEN 16 +#define DELAY 100000 + +void fill_packet(volatile packet_t *p) { + static volatile uint8_t count=0; + + p->length = 16; + p->offset = 0; + p->data[0] = 0x71; /* 0b 10 01 10 000 1 1 0 0 001 data, ack request, short addr */ + p->data[1] = 0x98; /* 0b 10 01 10 000 1 1 0 0 001 data, ack request, short addr */ + p->data[2] = count++; /* dsn */ + p->data[3] = 0xaa; /* pan */ + p->data[4] = 0xaa; + p->data[5] = 0x11; /* dest. short addr. */ + p->data[6] = 0x11; + p->data[7] = 0x22; /* src. short addr. */ + p->data[8] = 0x22; + + /* payload */ + p->data[9] = 'a'; + p->data[10] = 'c'; + p->data[11] = 'k'; + p->data[12] = 't'; + p->data[13] = 'e'; + p->data[14] = 's'; + p->data[15] = 't'; + +} + +void maca_tx_callback(volatile packet_t *p) { + switch(p->status) { + case 0: + printf("TX OK\n\r"); + break; + case 3: + printf("CRC ERR\n\r"); + break; + case 5: + printf("NO ACK\n\r"); + break; + default: + printf("unknown status: %d\n", (int)p->status); + } +} + +void main(void) { + volatile packet_t *p; + char c; + uint16_t r=30; /* start reception 100us before ack should arrive */ + uint16_t end=180; /* 750 us receive window*/ + + /* trim the reference osc. to 24MHz */ + trim_xtal(); + + uart_init(INC, MOD, SAMP); + + vreg_init(); + + maca_init(); + + set_channel(0); /* channel 11 */ +// set_power(0x0f); /* 0xf = -1dbm, see 3-22 */ +// set_power(0x11); /* 0x11 = 3dbm, see 3-22 */ + set_power(0x12); /* 0x12 is the highest, not documented */ + + /* sets up tx_on, should be a board specific item */ + GPIO->FUNC_SEL_44 = 1; + GPIO->PAD_DIR_SET_44 = 1; + + GPIO->FUNC_SEL_45 = 2; + GPIO->PAD_DIR_SET_45 = 1; + + *MACA_RXACKDELAY = r; + + printf("rx warmup: %d\n\r", (int)(*MACA_WARMUP & 0xfff)); + + *MACA_RXEND = end; + + printf("rx end: %d\n\r", (int)(*MACA_RXEND & 0xfff)); + + set_prm_mode(AUTOACK); + + print_welcome("rftest-tx"); + + while(1) { + + /* call check_maca() periodically --- this works around */ + /* a few lockup conditions */ + check_maca(); + + while((p = rx_packet())) { + if(p) { + printf("RX: "); + print_packet(p); + free_packet(p); + } + } + + if(uart1_can_get()) { + c = uart1_getc(); + + switch(c) { + case 'z': + r++; + if(r > 4095) { r = 0; } + *MACA_RXACKDELAY = r; + printf("rx ack delay: %d\n\r", r); + break; + case 'x': + if(r == 0) { r = 4095; } else { r--; } + *MACA_RXACKDELAY = r; + printf("rx ack delay: %d\n\r", r); + break; + case 'q': + end++; + if(r > 4095) { r = 0; } + *MACA_RXEND = end; + printf("rx end: %d\n\r", end); + break; + case 'w': + end--; + if(r == 0) { r = 4095; } else { r--; } + *MACA_RXEND = end; + printf("rx end: %d\n\r", end); + break; + default: + p = get_free_packet(); + if(p) { + fill_packet(p); + + printf("autoack-tx --- "); + print_packet(p); + + tx_packet(p); + } + break; + } + } + + } + +} From 0058fdc824980d4ef307fe838ed4954cd0c1fee1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 12 Feb 2011 15:33:19 -0500 Subject: [PATCH 452/471] fixes to remove warnings when building with DEBUG_MACA --- lib/maca.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index 025625af9..e4c4039f9 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -589,7 +589,7 @@ void decode_status(void) { } default: { - PRINTF("status: %x", *MACA_STATUS); + PRINTF("status: %x", (unsigned int)*MACA_STATUS); ResumeMACASync(); } @@ -661,7 +661,7 @@ void maca_isr(void) { decode_status(); if (*MACA_IRQ != 0) - { PRINTF("*MACA_IRQ %x\n\r", *MACA_IRQ); } + { PRINTF("*MACA_IRQ %x\n\r", (unsigned int)*MACA_IRQ); } if(tx_head != 0) { post_tx(); @@ -920,7 +920,7 @@ void radio_init(void) { PRINTF("radio_init: ctov parameter 0x%02x\n\r",ram_values[3]); for(i=0; i<16; i++) { ctov[i] = get_ctov(i,ram_values[3]); - PRINTF("radio_init: ctov[%d] = 0x%02x\n\r",i,ctov[i]); + PRINTF("radio_init: ctov[%d] = 0x%02x\n\r",(int)i,ctov[i]); } @@ -1109,18 +1109,20 @@ uint32_t exec_init_entry(volatile uint32_t *entries, uint8_t *valbuf) if(entries[0] <= ROM_END) { if (entries[0] == 0) { /* do delay command*/ - PRINTF("init_entry: delay 0x%08x\n\r", entries[1]); + PRINTF("init_entry: delay 0x%08x\n\r", (unsigned int)entries[1]); for(i=0; i= 16) && (entries[0] < 0xfff1)) { /* store bytes in valbuf */ - PRINTF("init_entry: store in valbuf 0x%02x position %d\n\r", entries[1],(entries[0]>>4)-1); + PRINTF("init_entry: store in valbuf 0x%02x position %d\n\r", + (unsigned int)entries[1], + (unsigned int)(entries[0]>>4)-1); valbuf[(entries[0]>>4)-1] = entries[1]; return 2; } else if (entries[0] == ENTRY_EOF) { @@ -1128,12 +1130,14 @@ uint32_t exec_init_entry(volatile uint32_t *entries, uint8_t *valbuf) return 0; } else { /* invalid command code */ - PRINTF("init_entry: invaild code 0x%08x\n\r",entries[0]); + PRINTF("init_entry: invaild code 0x%08x\n\r",(unsigned int)entries[0]); return 0; } } else { /* address isn't in ROM space */ /* do store value in address command */ - PRINTF("init_entry: address value pair - *0x%08x = 0x%08x\n\r",entries[0],entries[1]); + PRINTF("init_entry: address value pair - *0x%08x = 0x%08x\n\r", + (unsigned int)entries[0], + (unsigned int)entries[1]); reg(entries[0]) = entries[1]; return 2; } @@ -1157,7 +1161,7 @@ uint32_t init_from_flash(uint32_t addr) { PRINTF("nvm_read returned: 0x%02x\n\r",err); for(j=0; j<4; j++) { - PRINTF("0x%08x\n\r",buf[j]); + PRINTF("0x%08x\n\r",(unsigned int)buf[j]); } if(buf[0] == FLASH_INIT_MAGIC) { From e951e350dfc13cbe16f8be59fdf3861103f2e405 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 12 Feb 2011 15:34:21 -0500 Subject: [PATCH 453/471] print status messages with DEBUG_MACA --- lib/maca.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/maca.c b/lib/maca.c index e4c4039f9..513e855eb 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -542,21 +542,21 @@ void decode_status(void) { { case ABORTED: { -// PRINTF("maca: aborted\n\r"); + PRINTF("maca: aborted\n\r"); ResumeMACASync(); break; } case NOT_COMPLETED: { -// PRINTF("maca: not completed\n\r"); + PRINTF("maca: not completed\n\r"); ResumeMACASync(); break; } case CODE_TIMEOUT: { -// PRINTF("maca: timeout\n\r"); + PRINTF("maca: timeout\n\r"); ResumeMACASync(); break; @@ -570,7 +570,7 @@ void decode_status(void) { } case EXT_TIMEOUT: { -// PRINTF("maca: ext timeout\n\r"); + PRINTF("maca: ext timeout\n\r"); ResumeMACASync(); break; From a4ef14f204a7ca7a87fab4225cce1edc6c38a384 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sat, 12 Feb 2011 18:12:45 -0500 Subject: [PATCH 454/471] strip cvs style keywords from everything --- COPYING | 2 +- board/freescale-ncb.h | 2 +- board/quahogcon.h | 2 +- board/redbee-dev.h | 2 +- board/redbee-econotag.h | 2 +- board/redbee-r1.h | 2 +- board/redbee-usb.h | 2 +- board/std_conf.h | 2 +- lib/gpio.c | 2 +- lib/include/crm.h | 2 +- lib/include/gpio.h | 2 +- lib/include/isr.h | 2 +- lib/include/kbi.h | 2 +- lib/include/maca.h | 2 +- lib/include/mc1322x.h | 2 +- lib/include/nvm.h | 2 +- lib/include/packet.h | 2 +- lib/include/tmr.h | 2 +- lib/include/uart1.h | 2 +- lib/include/utils.h | 2 +- lib/maca.c | 2 +- lib/nvm.c | 2 +- lib/printf.c | 4 ++-- lib/tmr.c | 2 +- lib/uart1.c | 2 +- src/default_lowlevel.c | 2 +- src/default_lowlevel.h | 2 +- src/isr.c | 2 +- tests/autoack-rx.c | 2 +- tests/autoack-tx.c | 2 +- tests/blink-allio.c | 2 +- tests/blink-blue.c | 2 +- tests/blink-green.c | 2 +- tests/blink-red.c | 2 +- tests/blink-white.c | 2 +- tests/config.h | 2 +- tests/flasher.c | 2 +- tests/led.h | 2 +- tests/nvm-read.c | 2 +- tests/nvm-write.c | 2 +- tests/per.c | 2 +- tests/printf.c | 2 +- tests/put.c | 2 +- tests/put.h | 2 +- tests/rftest-rx.c | 2 +- tests/rftest-tx.c | 2 +- tests/romimg.c | 2 +- tests/sleep.c | 2 +- tests/tests.c | 2 +- tests/tests.h | 2 +- tests/tmr-ints.c | 2 +- tests/tmr.c | 2 +- tests/uart1-loopback.c | 2 +- tools/ftditools/bbmc.c | 2 +- 54 files changed, 55 insertions(+), 55 deletions(-) diff --git a/COPYING b/COPYING index 42a7c50d4..35f329c4c 100644 --- a/COPYING +++ b/COPYING @@ -30,6 +30,6 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ diff --git a/board/freescale-ncb.h b/board/freescale-ncb.h index f81f5e041..d1b7b2f8d 100644 --- a/board/freescale-ncb.h +++ b/board/freescale-ncb.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef BOARD_FREESCALE_NCB_H diff --git a/board/quahogcon.h b/board/quahogcon.h index b3606ae62..6de1ec76d 100644 --- a/board/quahogcon.h +++ b/board/quahogcon.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef BOARD_QUAHOG10_H diff --git a/board/redbee-dev.h b/board/redbee-dev.h index 92d6b0ae5..c54488a14 100644 --- a/board/redbee-dev.h +++ b/board/redbee-dev.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef BOARD_REDBEE_DEV_H diff --git a/board/redbee-econotag.h b/board/redbee-econotag.h index fdbe1f265..3cfc49d37 100644 --- a/board/redbee-econotag.h +++ b/board/redbee-econotag.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef BOARD_REDBEE_ECONOTAG_H diff --git a/board/redbee-r1.h b/board/redbee-r1.h index 734d41d58..f63e3ea54 100644 --- a/board/redbee-r1.h +++ b/board/redbee-r1.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef BOARD_REDBEE_R1_H diff --git a/board/redbee-usb.h b/board/redbee-usb.h index b18e628d9..6ddb372b8 100644 --- a/board/redbee-usb.h +++ b/board/redbee-usb.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef BOARD_REDBEE_USB_H diff --git a/board/std_conf.h b/board/std_conf.h index 089986cf8..4c1c9b82c 100644 --- a/board/std_conf.h +++ b/board/std_conf.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef STDCONF_H diff --git a/lib/gpio.c b/lib/gpio.c index ed1582ce1..d442a1c08 100644 --- a/lib/gpio.c +++ b/lib/gpio.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/lib/include/crm.h b/lib/include/crm.h index f63a72db1..2590dfb37 100644 --- a/lib/include/crm.h +++ b/lib/include/crm.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef CRM_H diff --git a/lib/include/gpio.h b/lib/include/gpio.h index 955fed13b..58b868946 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef GPIO_H diff --git a/lib/include/isr.h b/lib/include/isr.h index 6e5102526..5fd653e1a 100644 --- a/lib/include/isr.h +++ b/lib/include/isr.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef ISR_H diff --git a/lib/include/kbi.h b/lib/include/kbi.h index f84e40722..a6a1ce7e8 100644 --- a/lib/include/kbi.h +++ b/lib/include/kbi.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef KBI_H diff --git a/lib/include/maca.h b/lib/include/maca.h index fa484b5c6..2f567a9ac 100644 --- a/lib/include/maca.h +++ b/lib/include/maca.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef _MACA_H_ diff --git a/lib/include/mc1322x.h b/lib/include/mc1322x.h index a05a48744..df19b19c2 100644 --- a/lib/include/mc1322x.h +++ b/lib/include/mc1322x.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef MC1322X_H diff --git a/lib/include/nvm.h b/lib/include/nvm.h index 5a78be441..65ba23d11 100644 --- a/lib/include/nvm.h +++ b/lib/include/nvm.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef NVM_H diff --git a/lib/include/packet.h b/lib/include/packet.h index a792d8a1b..58eaa37b9 100644 --- a/lib/include/packet.h +++ b/lib/include/packet.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef PACKET_H diff --git a/lib/include/tmr.h b/lib/include/tmr.h index 456791328..ca71b2708 100644 --- a/lib/include/tmr.h +++ b/lib/include/tmr.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef TMR_H diff --git a/lib/include/uart1.h b/lib/include/uart1.h index 3feab2279..d80eac65d 100644 --- a/lib/include/uart1.h +++ b/lib/include/uart1.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef UART1_H diff --git a/lib/include/utils.h b/lib/include/utils.h index 10e03eba7..5172835f7 100644 --- a/lib/include/utils.h +++ b/lib/include/utils.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef UTILS_H diff --git a/lib/maca.c b/lib/maca.c index 513e855eb..0e6e63e1f 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/lib/nvm.c b/lib/nvm.c index 00d6e0d47..83dd8ecc7 100644 --- a/lib/nvm.c +++ b/lib/nvm.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include "nvm.h" diff --git a/lib/printf.c b/lib/printf.c index d43ea1c28..c716b5893 100644 --- a/lib/printf.c +++ b/lib/printf.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ /** @@ -42,7 +42,7 @@ * * Created on : 17-mar-2009 * - * $Id$ + * */ /* diff --git a/lib/tmr.c b/lib/tmr.c index c6136c52c..1d1792590 100644 --- a/lib/tmr.c +++ b/lib/tmr.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/lib/uart1.c b/lib/uart1.c index 87ac10223..2dc0a9c51 100644 --- a/lib/uart1.c +++ b/lib/uart1.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/src/default_lowlevel.c b/src/default_lowlevel.c index 9ce0b65a6..918567bbe 100644 --- a/src/default_lowlevel.c +++ b/src/default_lowlevel.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/src/default_lowlevel.h b/src/default_lowlevel.h index 891ddee57..e91ec949b 100644 --- a/src/default_lowlevel.h +++ b/src/default_lowlevel.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef LOWLEVEL_H diff --git a/src/isr.c b/src/isr.c index a0b252339..3799bae34 100644 --- a/src/isr.c +++ b/src/isr.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/autoack-rx.c b/tests/autoack-rx.c index 88dad71fe..878aacd57 100644 --- a/tests/autoack-rx.c +++ b/tests/autoack-rx.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/autoack-tx.c b/tests/autoack-tx.c index 8621ab8b0..698881a57 100644 --- a/tests/autoack-tx.c +++ b/tests/autoack-tx.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/blink-allio.c b/tests/blink-allio.c index ce2c1c0b3..568b542d7 100644 --- a/tests/blink-allio.c +++ b/tests/blink-allio.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/blink-blue.c b/tests/blink-blue.c index ea12eb208..50231cddd 100644 --- a/tests/blink-blue.c +++ b/tests/blink-blue.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/blink-green.c b/tests/blink-green.c index 489f68417..426f5918d 100644 --- a/tests/blink-green.c +++ b/tests/blink-green.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/blink-red.c b/tests/blink-red.c index 330de174c..648ebc0d4 100644 --- a/tests/blink-red.c +++ b/tests/blink-red.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/blink-white.c b/tests/blink-white.c index 36fb5cdc6..eba64f680 100644 --- a/tests/blink-white.c +++ b/tests/blink-white.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/config.h b/tests/config.h index b5117bdac..4d776b629 100644 --- a/tests/config.h +++ b/tests/config.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef CONFIG_H diff --git a/tests/flasher.c b/tests/flasher.c index f2cb29a76..4049c1bed 100644 --- a/tests/flasher.c +++ b/tests/flasher.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/led.h b/tests/led.h index c08e0b57c..e490493ec 100644 --- a/tests/led.h +++ b/tests/led.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef LED_H diff --git a/tests/nvm-read.c b/tests/nvm-read.c index 9e90a7d3b..6d8760ee8 100644 --- a/tests/nvm-read.c +++ b/tests/nvm-read.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/nvm-write.c b/tests/nvm-write.c index c868ff0bf..76ca12695 100644 --- a/tests/nvm-write.c +++ b/tests/nvm-write.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/per.c b/tests/per.c index a298d220a..303505e05 100644 --- a/tests/per.c +++ b/tests/per.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/printf.c b/tests/printf.c index c39bab08b..66a235f06 100644 --- a/tests/printf.c +++ b/tests/printf.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/put.c b/tests/put.c index 4b1b36e49..aa0b0eeb1 100644 --- a/tests/put.c +++ b/tests/put.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/put.h b/tests/put.h index 776daaaa0..d8f0601c2 100644 --- a/tests/put.h +++ b/tests/put.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef PUT_H diff --git a/tests/rftest-rx.c b/tests/rftest-rx.c index 608313835..bb4a04143 100644 --- a/tests/rftest-rx.c +++ b/tests/rftest-rx.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/rftest-tx.c b/tests/rftest-tx.c index ae7bf89c6..b6038d7d3 100644 --- a/tests/rftest-tx.c +++ b/tests/rftest-tx.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/romimg.c b/tests/romimg.c index ab9e7d21f..dcf6d4637 100644 --- a/tests/romimg.c +++ b/tests/romimg.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/sleep.c b/tests/sleep.c index 546c993d9..d45723640 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/tests.c b/tests/tests.c index 8bcb906d1..75850492f 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/tests.h b/tests/tests.h index 2cb905b65..dd1266be1 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #ifndef TESTS_H diff --git a/tests/tmr-ints.c b/tests/tmr-ints.c index 4b6a4bdd6..41fbb4102 100644 --- a/tests/tmr-ints.c +++ b/tests/tmr-ints.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/tmr.c b/tests/tmr.c index 08888d191..3424b763c 100644 --- a/tests/tmr.c +++ b/tests/tmr.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tests/uart1-loopback.c b/tests/uart1-loopback.c index 697b2e79f..dc51d246e 100644 --- a/tests/uart1-loopback.c +++ b/tests/uart1-loopback.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ #include diff --git a/tools/ftditools/bbmc.c b/tools/ftditools/bbmc.c index ae9b2c3a5..62a177f54 100644 --- a/tools/ftditools/bbmc.c +++ b/tools/ftditools/bbmc.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id$ + * */ /* control reset and VREF2 lines */ From 7cdfbb094713b02365f8298ce40760d00b47fae1 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Sun, 13 Feb 2011 17:12:33 -0500 Subject: [PATCH 455/471] remove cvs keywords from cpu/mc1322x --- cpu/mc1322x/COPYING | 2 +- cpu/mc1322x/board/freescale-ncb.h | 2 +- cpu/mc1322x/board/quahogcon.h | 2 +- cpu/mc1322x/board/redbee-dev.h | 2 +- cpu/mc1322x/board/redbee-econotag.h | 2 +- cpu/mc1322x/board/redbee-r1.h | 2 +- cpu/mc1322x/board/redbee-usb.h | 2 +- cpu/mc1322x/board/std_conf.h | 2 +- cpu/mc1322x/clock.c | 2 +- cpu/mc1322x/contiki-crm.c | 2 +- cpu/mc1322x/contiki-maca.c | 2 +- cpu/mc1322x/contiki-maca.h | 2 +- cpu/mc1322x/contiki-mc1322x-conf.h | 2 +- cpu/mc1322x/contiki-misc.c | 2 +- cpu/mc1322x/contiki-uart.c | 2 +- cpu/mc1322x/contiki-uart.h | 2 +- cpu/mc1322x/dbg-io.c | 2 +- cpu/mc1322x/dev/uart1.h | 2 +- cpu/mc1322x/leds-arch.c | 2 +- cpu/mc1322x/lib/gpio.c | 2 +- cpu/mc1322x/lib/include/crm.h | 2 +- cpu/mc1322x/lib/include/gpio.h | 2 +- cpu/mc1322x/lib/include/isr.h | 2 +- cpu/mc1322x/lib/include/kbi.h | 2 +- cpu/mc1322x/lib/include/maca.h | 2 +- cpu/mc1322x/lib/include/mc1322x.h | 2 +- cpu/mc1322x/lib/include/nvm.h | 2 +- cpu/mc1322x/lib/include/packet.h | 2 +- cpu/mc1322x/lib/include/tmr.h | 2 +- cpu/mc1322x/lib/include/uart1.h | 2 +- cpu/mc1322x/lib/include/utils.h | 2 +- cpu/mc1322x/lib/maca.c | 2 +- cpu/mc1322x/lib/nvm.c | 2 +- cpu/mc1322x/lib/tmr.c | 2 +- cpu/mc1322x/lib/uart1.c | 2 +- cpu/mc1322x/mtarch.h | 2 +- cpu/mc1322x/rtimer-arch.c | 2 +- cpu/mc1322x/rtimer-arch.h | 2 +- cpu/mc1322x/slip-uart1.c | 2 +- cpu/mc1322x/src/default_lowlevel.c | 2 +- cpu/mc1322x/src/default_lowlevel.h | 2 +- cpu/mc1322x/src/isr.c | 2 +- cpu/mc1322x/src/start.S | 2 +- cpu/mc1322x/tests/blink-allio.c | 2 +- cpu/mc1322x/tests/blink-blue.c | 2 +- cpu/mc1322x/tests/blink-green.c | 2 +- cpu/mc1322x/tests/blink-red.c | 2 +- cpu/mc1322x/tests/blink-white.c | 2 +- cpu/mc1322x/tests/config.h | 2 +- cpu/mc1322x/tests/flasher.c | 2 +- cpu/mc1322x/tests/led.h | 2 +- cpu/mc1322x/tests/nvm-read.c | 2 +- cpu/mc1322x/tests/nvm-write.c | 2 +- cpu/mc1322x/tests/per.c | 2 +- cpu/mc1322x/tests/printf.c | 2 +- cpu/mc1322x/tests/put.c | 2 +- cpu/mc1322x/tests/put.h | 2 +- cpu/mc1322x/tests/rftest-rx.c | 2 +- cpu/mc1322x/tests/rftest-tx.c | 2 +- cpu/mc1322x/tests/romimg.c | 2 +- cpu/mc1322x/tests/sleep.c | 2 +- cpu/mc1322x/tests/tests.c | 2 +- cpu/mc1322x/tests/tests.h | 2 +- cpu/mc1322x/tests/tmr-ints.c | 2 +- cpu/mc1322x/tests/tmr.c | 2 +- cpu/mc1322x/tests/uart1-loopback.c | 2 +- cpu/mc1322x/tools/ftditools/bbmc.c | 2 +- cpu/mc1322x/watchdog.c | 2 +- 68 files changed, 68 insertions(+), 68 deletions(-) diff --git a/cpu/mc1322x/COPYING b/cpu/mc1322x/COPYING index 84939c28e..7968b87e7 100644 --- a/cpu/mc1322x/COPYING +++ b/cpu/mc1322x/COPYING @@ -30,6 +30,6 @@ * * This file is part of the Contiki OS. * - * $Id: COPYING,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ diff --git a/cpu/mc1322x/board/freescale-ncb.h b/cpu/mc1322x/board/freescale-ncb.h index b6dada50a..d1b7b2f8d 100644 --- a/cpu/mc1322x/board/freescale-ncb.h +++ b/cpu/mc1322x/board/freescale-ncb.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: freescale-ncb.h,v 1.1 2010/06/10 14:48:32 maralvira Exp $ + * */ #ifndef BOARD_FREESCALE_NCB_H diff --git a/cpu/mc1322x/board/quahogcon.h b/cpu/mc1322x/board/quahogcon.h index 9a963a965..6de1ec76d 100644 --- a/cpu/mc1322x/board/quahogcon.h +++ b/cpu/mc1322x/board/quahogcon.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: quahogcon.h,v 1.1 2010/06/10 14:48:32 maralvira Exp $ + * */ #ifndef BOARD_QUAHOG10_H diff --git a/cpu/mc1322x/board/redbee-dev.h b/cpu/mc1322x/board/redbee-dev.h index cabfb5f8f..c54488a14 100644 --- a/cpu/mc1322x/board/redbee-dev.h +++ b/cpu/mc1322x/board/redbee-dev.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: redbee-dev.h,v 1.1 2010/06/10 14:48:32 maralvira Exp $ + * */ #ifndef BOARD_REDBEE_DEV_H diff --git a/cpu/mc1322x/board/redbee-econotag.h b/cpu/mc1322x/board/redbee-econotag.h index 14b40dec2..d710578b9 100644 --- a/cpu/mc1322x/board/redbee-econotag.h +++ b/cpu/mc1322x/board/redbee-econotag.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: redbee-econotag.h,v 1.2 2010/11/07 14:18:54 maralvira Exp $ + * */ #ifndef BOARD_REDBEE_ECONOTAG_H diff --git a/cpu/mc1322x/board/redbee-r1.h b/cpu/mc1322x/board/redbee-r1.h index 5c74b2033..f63e3ea54 100644 --- a/cpu/mc1322x/board/redbee-r1.h +++ b/cpu/mc1322x/board/redbee-r1.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: redbee-r1.h,v 1.1 2010/06/10 14:48:32 maralvira Exp $ + * */ #ifndef BOARD_REDBEE_R1_H diff --git a/cpu/mc1322x/board/redbee-usb.h b/cpu/mc1322x/board/redbee-usb.h index 7858553b8..6ddb372b8 100644 --- a/cpu/mc1322x/board/redbee-usb.h +++ b/cpu/mc1322x/board/redbee-usb.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: redbee-usb.h,v 1.2 2010/11/07 14:18:54 maralvira Exp $ + * */ #ifndef BOARD_REDBEE_USB_H diff --git a/cpu/mc1322x/board/std_conf.h b/cpu/mc1322x/board/std_conf.h index f38dcde49..4c1c9b82c 100644 --- a/cpu/mc1322x/board/std_conf.h +++ b/cpu/mc1322x/board/std_conf.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: std_conf.h,v 1.1 2010/06/10 14:48:32 maralvira Exp $ + * */ #ifndef STDCONF_H diff --git a/cpu/mc1322x/clock.c b/cpu/mc1322x/clock.c index 0a9c871bd..2ebdb3a11 100644 --- a/cpu/mc1322x/clock.c +++ b/cpu/mc1322x/clock.c @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: clock.c,v 1.2 2010/11/07 14:42:02 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/contiki-crm.c b/cpu/mc1322x/contiki-crm.c index 7eda30218..41c36d679 100644 --- a/cpu/mc1322x/contiki-crm.c +++ b/cpu/mc1322x/contiki-crm.c @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: contiki-crm.c,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ #include "mc1322x.h" diff --git a/cpu/mc1322x/contiki-maca.c b/cpu/mc1322x/contiki-maca.c index 5b56ac22b..6fc672204 100644 --- a/cpu/mc1322x/contiki-maca.c +++ b/cpu/mc1322x/contiki-maca.c @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: contiki-maca.c,v 1.6 2010/11/07 20:07:42 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/contiki-maca.h b/cpu/mc1322x/contiki-maca.h index 136645b57..54f7dac91 100644 --- a/cpu/mc1322x/contiki-maca.h +++ b/cpu/mc1322x/contiki-maca.h @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: contiki-maca.h,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ #ifndef CONTIKI_MACA_H diff --git a/cpu/mc1322x/contiki-mc1322x-conf.h b/cpu/mc1322x/contiki-mc1322x-conf.h index f664a7574..c5acbb1d6 100644 --- a/cpu/mc1322x/contiki-mc1322x-conf.h +++ b/cpu/mc1322x/contiki-mc1322x-conf.h @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: contiki-mc1322x-conf.h,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ #ifndef __CONTIKI_MC1322X_CONF_H__ diff --git a/cpu/mc1322x/contiki-misc.c b/cpu/mc1322x/contiki-misc.c index 30ab28447..a7399f80f 100644 --- a/cpu/mc1322x/contiki-misc.c +++ b/cpu/mc1322x/contiki-misc.c @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: contiki-misc.c,v 1.2 2010/11/07 13:52:12 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/contiki-uart.c b/cpu/mc1322x/contiki-uart.c index 9f096a9e3..7582d4569 100644 --- a/cpu/mc1322x/contiki-uart.c +++ b/cpu/mc1322x/contiki-uart.c @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: contiki-uart.c,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ int (*uart1_input_handler)(unsigned char c) = 0; diff --git a/cpu/mc1322x/contiki-uart.h b/cpu/mc1322x/contiki-uart.h index b40268ff3..e7ae98acc 100644 --- a/cpu/mc1322x/contiki-uart.h +++ b/cpu/mc1322x/contiki-uart.h @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: contiki-uart.h,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ #ifndef CONTIKI_UART_H diff --git a/cpu/mc1322x/dbg-io.c b/cpu/mc1322x/dbg-io.c index a8cdba188..304ee4f2e 100644 --- a/cpu/mc1322x/dbg-io.c +++ b/cpu/mc1322x/dbg-io.c @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: dbg-io.c,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/dev/uart1.h b/cpu/mc1322x/dev/uart1.h index 3fdf31361..40666fd75 100644 --- a/cpu/mc1322x/dev/uart1.h +++ b/cpu/mc1322x/dev/uart1.h @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: uart1.h,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ /* diff --git a/cpu/mc1322x/leds-arch.c b/cpu/mc1322x/leds-arch.c index 7c416809c..03497f272 100644 --- a/cpu/mc1322x/leds-arch.c +++ b/cpu/mc1322x/leds-arch.c @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: leds-arch.c,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ #include "contiki-conf.h" diff --git a/cpu/mc1322x/lib/gpio.c b/cpu/mc1322x/lib/gpio.c index 1d2700194..d442a1c08 100644 --- a/cpu/mc1322x/lib/gpio.c +++ b/cpu/mc1322x/lib/gpio.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: gpio.c,v 1.2 2010/11/10 22:06:28 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/lib/include/crm.h b/cpu/mc1322x/lib/include/crm.h index 58087cea4..6766bd5a3 100644 --- a/cpu/mc1322x/lib/include/crm.h +++ b/cpu/mc1322x/lib/include/crm.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: crm.h,v 1.6 2010/11/10 22:06:28 maralvira Exp $ + * */ #ifndef CRM_H diff --git a/cpu/mc1322x/lib/include/gpio.h b/cpu/mc1322x/lib/include/gpio.h index 4215dfe78..58b868946 100644 --- a/cpu/mc1322x/lib/include/gpio.h +++ b/cpu/mc1322x/lib/include/gpio.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: gpio.h,v 1.5 2010/11/07 14:29:04 maralvira Exp $ + * */ #ifndef GPIO_H diff --git a/cpu/mc1322x/lib/include/isr.h b/cpu/mc1322x/lib/include/isr.h index e33e58c7d..faa4966cc 100644 --- a/cpu/mc1322x/lib/include/isr.h +++ b/cpu/mc1322x/lib/include/isr.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: isr.h,v 1.6 2010/11/10 22:06:28 maralvira Exp $ + * */ #ifndef ISR_H diff --git a/cpu/mc1322x/lib/include/kbi.h b/cpu/mc1322x/lib/include/kbi.h index cc4cb7d15..a6a1ce7e8 100644 --- a/cpu/mc1322x/lib/include/kbi.h +++ b/cpu/mc1322x/lib/include/kbi.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: kbi.h,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #ifndef KBI_H diff --git a/cpu/mc1322x/lib/include/maca.h b/cpu/mc1322x/lib/include/maca.h index 516b22a00..2a0de4aa1 100644 --- a/cpu/mc1322x/lib/include/maca.h +++ b/cpu/mc1322x/lib/include/maca.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: maca.h,v 1.3 2010/11/10 22:06:28 maralvira Exp $ + * */ #ifndef _MACA_H_ diff --git a/cpu/mc1322x/lib/include/mc1322x.h b/cpu/mc1322x/lib/include/mc1322x.h index fedc173b2..df19b19c2 100644 --- a/cpu/mc1322x/lib/include/mc1322x.h +++ b/cpu/mc1322x/lib/include/mc1322x.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: mc1322x.h,v 1.2 2010/11/10 22:06:28 maralvira Exp $ + * */ #ifndef MC1322X_H diff --git a/cpu/mc1322x/lib/include/nvm.h b/cpu/mc1322x/lib/include/nvm.h index 2b37815b8..65ba23d11 100644 --- a/cpu/mc1322x/lib/include/nvm.h +++ b/cpu/mc1322x/lib/include/nvm.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: nvm.h,v 1.3 2010/11/10 22:12:29 maralvira Exp $ + * */ #ifndef NVM_H diff --git a/cpu/mc1322x/lib/include/packet.h b/cpu/mc1322x/lib/include/packet.h index b5da583bb..0d5d26fb5 100644 --- a/cpu/mc1322x/lib/include/packet.h +++ b/cpu/mc1322x/lib/include/packet.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: packet.h,v 1.2 2010/11/07 14:06:57 maralvira Exp $ + * */ #ifndef PACKET_H diff --git a/cpu/mc1322x/lib/include/tmr.h b/cpu/mc1322x/lib/include/tmr.h index 141608544..ca71b2708 100644 --- a/cpu/mc1322x/lib/include/tmr.h +++ b/cpu/mc1322x/lib/include/tmr.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: tmr.h,v 1.10 2011/01/17 15:51:02 maralvira Exp $ + * */ #ifndef TMR_H diff --git a/cpu/mc1322x/lib/include/uart1.h b/cpu/mc1322x/lib/include/uart1.h index f70311739..d80eac65d 100644 --- a/cpu/mc1322x/lib/include/uart1.h +++ b/cpu/mc1322x/lib/include/uart1.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: uart1.h,v 1.2 2010/11/10 22:06:28 maralvira Exp $ + * */ #ifndef UART1_H diff --git a/cpu/mc1322x/lib/include/utils.h b/cpu/mc1322x/lib/include/utils.h index b8829d611..5172835f7 100644 --- a/cpu/mc1322x/lib/include/utils.h +++ b/cpu/mc1322x/lib/include/utils.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: utils.h,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #ifndef UTILS_H diff --git a/cpu/mc1322x/lib/maca.c b/cpu/mc1322x/lib/maca.c index b3b4ce823..429591d88 100644 --- a/cpu/mc1322x/lib/maca.c +++ b/cpu/mc1322x/lib/maca.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: maca.c,v 1.7 2011/01/17 15:49:17 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/lib/nvm.c b/cpu/mc1322x/lib/nvm.c index 28cb828f4..83dd8ecc7 100644 --- a/cpu/mc1322x/lib/nvm.c +++ b/cpu/mc1322x/lib/nvm.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: nvm.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include "nvm.h" diff --git a/cpu/mc1322x/lib/tmr.c b/cpu/mc1322x/lib/tmr.c index e2cc2afb6..1d1792590 100644 --- a/cpu/mc1322x/lib/tmr.c +++ b/cpu/mc1322x/lib/tmr.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: tmr.c,v 1.1 2011/01/17 15:51:19 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/lib/uart1.c b/cpu/mc1322x/lib/uart1.c index e58cc40cc..0d3fbd807 100644 --- a/cpu/mc1322x/lib/uart1.c +++ b/cpu/mc1322x/lib/uart1.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: uart1.c,v 1.3 2010/11/10 22:06:28 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/mtarch.h b/cpu/mc1322x/mtarch.h index ccea2ac8a..04c6f1944 100644 --- a/cpu/mc1322x/mtarch.h +++ b/cpu/mc1322x/mtarch.h @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: mtarch.h,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ /** diff --git a/cpu/mc1322x/rtimer-arch.c b/cpu/mc1322x/rtimer-arch.c index 15bc930a0..0cbff6b15 100644 --- a/cpu/mc1322x/rtimer-arch.c +++ b/cpu/mc1322x/rtimer-arch.c @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: rtimer-arch.c,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ /** diff --git a/cpu/mc1322x/rtimer-arch.h b/cpu/mc1322x/rtimer-arch.h index e135bb2e9..80065e953 100644 --- a/cpu/mc1322x/rtimer-arch.h +++ b/cpu/mc1322x/rtimer-arch.h @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: rtimer-arch.h,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ /** diff --git a/cpu/mc1322x/slip-uart1.c b/cpu/mc1322x/slip-uart1.c index d3b6b394c..542a690ba 100644 --- a/cpu/mc1322x/slip-uart1.c +++ b/cpu/mc1322x/slip-uart1.c @@ -31,7 +31,7 @@ * * This file is part of the Contiki OS. * - * $Id: slip-uart1.c,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ /* diff --git a/cpu/mc1322x/src/default_lowlevel.c b/cpu/mc1322x/src/default_lowlevel.c index d50f30f41..d369f1fa7 100644 --- a/cpu/mc1322x/src/default_lowlevel.c +++ b/cpu/mc1322x/src/default_lowlevel.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: default_lowlevel.c,v 1.2 2010/11/10 22:09:23 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/src/default_lowlevel.h b/cpu/mc1322x/src/default_lowlevel.h index 8caafd5fe..e91ec949b 100644 --- a/cpu/mc1322x/src/default_lowlevel.h +++ b/cpu/mc1322x/src/default_lowlevel.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: default_lowlevel.h,v 1.4 2011/01/17 15:48:39 maralvira Exp $ + * */ #ifndef LOWLEVEL_H diff --git a/cpu/mc1322x/src/isr.c b/cpu/mc1322x/src/isr.c index 709ee202a..daf998dbd 100644 --- a/cpu/mc1322x/src/isr.c +++ b/cpu/mc1322x/src/isr.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: isr.c,v 1.5 2010/11/10 22:09:23 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/src/start.S b/cpu/mc1322x/src/start.S index cc7e40e46..0d0e6ab95 100644 --- a/cpu/mc1322x/src/start.S +++ b/cpu/mc1322x/src/start.S @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: start.S,v 1.4 2010/11/07 15:19:45 maralvira Exp $ + * */ diff --git a/cpu/mc1322x/tests/blink-allio.c b/cpu/mc1322x/tests/blink-allio.c index 6c5ba5c1b..568b542d7 100644 --- a/cpu/mc1322x/tests/blink-allio.c +++ b/cpu/mc1322x/tests/blink-allio.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: blink-allio.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/blink-blue.c b/cpu/mc1322x/tests/blink-blue.c index f68cc6a5e..50231cddd 100644 --- a/cpu/mc1322x/tests/blink-blue.c +++ b/cpu/mc1322x/tests/blink-blue.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: blink-blue.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/blink-green.c b/cpu/mc1322x/tests/blink-green.c index cbb339c3c..426f5918d 100644 --- a/cpu/mc1322x/tests/blink-green.c +++ b/cpu/mc1322x/tests/blink-green.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: blink-green.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/blink-red.c b/cpu/mc1322x/tests/blink-red.c index a87491686..648ebc0d4 100644 --- a/cpu/mc1322x/tests/blink-red.c +++ b/cpu/mc1322x/tests/blink-red.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: blink-red.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/blink-white.c b/cpu/mc1322x/tests/blink-white.c index 80de644a4..eba64f680 100644 --- a/cpu/mc1322x/tests/blink-white.c +++ b/cpu/mc1322x/tests/blink-white.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: blink-white.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/config.h b/cpu/mc1322x/tests/config.h index 6c0434e7a..4d776b629 100644 --- a/cpu/mc1322x/tests/config.h +++ b/cpu/mc1322x/tests/config.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: config.h,v 1.2 2010/07/28 18:43:04 maralvira Exp $ + * */ #ifndef CONFIG_H diff --git a/cpu/mc1322x/tests/flasher.c b/cpu/mc1322x/tests/flasher.c index cdc9dcb57..4049c1bed 100644 --- a/cpu/mc1322x/tests/flasher.c +++ b/cpu/mc1322x/tests/flasher.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: flasher.c,v 1.3 2010/11/07 14:11:50 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/led.h b/cpu/mc1322x/tests/led.h index 8785900ec..e490493ec 100644 --- a/cpu/mc1322x/tests/led.h +++ b/cpu/mc1322x/tests/led.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: led.h,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #ifndef LED_H diff --git a/cpu/mc1322x/tests/nvm-read.c b/cpu/mc1322x/tests/nvm-read.c index c7011f70e..6d8760ee8 100644 --- a/cpu/mc1322x/tests/nvm-read.c +++ b/cpu/mc1322x/tests/nvm-read.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: nvm-read.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/nvm-write.c b/cpu/mc1322x/tests/nvm-write.c index 60c77f3c5..76ca12695 100644 --- a/cpu/mc1322x/tests/nvm-write.c +++ b/cpu/mc1322x/tests/nvm-write.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: nvm-write.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/per.c b/cpu/mc1322x/tests/per.c index 1cd4eded2..303505e05 100644 --- a/cpu/mc1322x/tests/per.c +++ b/cpu/mc1322x/tests/per.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: per.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/printf.c b/cpu/mc1322x/tests/printf.c index 4b2ff340c..66a235f06 100644 --- a/cpu/mc1322x/tests/printf.c +++ b/cpu/mc1322x/tests/printf.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: printf.c,v 1.2 2011/01/17 15:42:24 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/put.c b/cpu/mc1322x/tests/put.c index 74eeecc09..aa0b0eeb1 100644 --- a/cpu/mc1322x/tests/put.c +++ b/cpu/mc1322x/tests/put.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: put.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/put.h b/cpu/mc1322x/tests/put.h index 03f0ffe5d..d8f0601c2 100644 --- a/cpu/mc1322x/tests/put.h +++ b/cpu/mc1322x/tests/put.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: put.h,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #ifndef PUT_H diff --git a/cpu/mc1322x/tests/rftest-rx.c b/cpu/mc1322x/tests/rftest-rx.c index 7f6a507e6..bb4a04143 100644 --- a/cpu/mc1322x/tests/rftest-rx.c +++ b/cpu/mc1322x/tests/rftest-rx.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: rftest-rx.c,v 1.2 2011/01/17 15:46:27 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/rftest-tx.c b/cpu/mc1322x/tests/rftest-tx.c index 13b1e367d..b6038d7d3 100644 --- a/cpu/mc1322x/tests/rftest-tx.c +++ b/cpu/mc1322x/tests/rftest-tx.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: rftest-tx.c,v 1.2 2010/11/07 14:10:16 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/romimg.c b/cpu/mc1322x/tests/romimg.c index bebd78ab9..dcf6d4637 100644 --- a/cpu/mc1322x/tests/romimg.c +++ b/cpu/mc1322x/tests/romimg.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: romimg.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/sleep.c b/cpu/mc1322x/tests/sleep.c index cbf5abf34..d45723640 100644 --- a/cpu/mc1322x/tests/sleep.c +++ b/cpu/mc1322x/tests/sleep.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: sleep.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/tests.c b/cpu/mc1322x/tests/tests.c index a04962e15..75850492f 100644 --- a/cpu/mc1322x/tests/tests.c +++ b/cpu/mc1322x/tests/tests.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: tests.c,v 1.3 2010/11/07 14:07:33 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/tests.h b/cpu/mc1322x/tests/tests.h index b1f575fdf..dd1266be1 100644 --- a/cpu/mc1322x/tests/tests.h +++ b/cpu/mc1322x/tests/tests.h @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: tests.h,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #ifndef TESTS_H diff --git a/cpu/mc1322x/tests/tmr-ints.c b/cpu/mc1322x/tests/tmr-ints.c index feee95acb..41fbb4102 100644 --- a/cpu/mc1322x/tests/tmr-ints.c +++ b/cpu/mc1322x/tests/tmr-ints.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: tmr-ints.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/tmr.c b/cpu/mc1322x/tests/tmr.c index adf960ed6..3424b763c 100644 --- a/cpu/mc1322x/tests/tmr.c +++ b/cpu/mc1322x/tests/tmr.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: tmr.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tests/uart1-loopback.c b/cpu/mc1322x/tests/uart1-loopback.c index fadafd811..dc51d246e 100644 --- a/cpu/mc1322x/tests/uart1-loopback.c +++ b/cpu/mc1322x/tests/uart1-loopback.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: uart1-loopback.c,v 1.1 2010/06/10 14:55:39 maralvira Exp $ + * */ #include diff --git a/cpu/mc1322x/tools/ftditools/bbmc.c b/cpu/mc1322x/tools/ftditools/bbmc.c index 83ab46481..62a177f54 100644 --- a/cpu/mc1322x/tools/ftditools/bbmc.c +++ b/cpu/mc1322x/tools/ftditools/bbmc.c @@ -30,7 +30,7 @@ * This file is part of libmc1322x: see http://mc1322x.devl.org * for details. * - * $Id: bbmc.c,v 1.2 2011/01/17 15:45:02 maralvira Exp $ + * */ /* control reset and VREF2 lines */ diff --git a/cpu/mc1322x/watchdog.c b/cpu/mc1322x/watchdog.c index ba48c6732..7c25f449b 100644 --- a/cpu/mc1322x/watchdog.c +++ b/cpu/mc1322x/watchdog.c @@ -30,7 +30,7 @@ * * This file is part of the Contiki OS. * - * $Id: watchdog.c,v 1.1 2010/06/09 14:43:22 maralvira Exp $ + * */ #include "dev/watchdog.h" From bb1baffc7963927ae4713259e55031400e091d7e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Thu, 17 Feb 2011 20:54:57 -0500 Subject: [PATCH 456/471] change FIX2ETX -> NEIGHBOR_INFO_FIX2ETX in some debug prints. --- core/net/neighbor-info.c | 4 +++- core/net/rpl/rpl.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/net/neighbor-info.c b/core/net/neighbor-info.c index 45986d471..16312e06d 100644 --- a/core/net/neighbor-info.c +++ b/core/net/neighbor-info.c @@ -72,7 +72,9 @@ update_etx(const rimeaddr_t *dest, int packet_etx) new_etx = ((uint16_t)recorded_etx * ETX_ALPHA + (uint16_t)packet_etx * (ETX_SCALE - ETX_ALPHA)) / ETX_SCALE; PRINTF("neighbor-info: ETX changed from %d to %d (packet ETX = %d) %d\n", - FIX2ETX(recorded_etx), FIX2ETX(new_etx), FIX2ETX(packet_etx), + NEIGHBOR_INFO_FIX2ETX(recorded_etx), + NEIGHBOR_INFO_FIX2ETX(new_etx), + NEIGHBOR_INFO_FIX2ETX(packet_etx), dest->u8[7]); if(neighbor_attr_has_neighbor(dest)) { diff --git a/core/net/rpl/rpl.c b/core/net/rpl/rpl.c index 1ff82bf50..fa7ad7be6 100644 --- a/core/net/rpl/rpl.c +++ b/core/net/rpl/rpl.c @@ -130,7 +130,7 @@ rpl_link_neighbor_callback(const rimeaddr_t *addr, int known, int etx) uip_ds6_set_addr_iid(&ipaddr, (uip_lladdr_t *)addr); PRINTF("RPL: Neighbor "); PRINT6ADDR(&ipaddr); - PRINTF(" is %sknown. ETX = %u\n", known ? "" : "no longer ", FIX2ETX(etx)); + PRINTF(" is %sknown. ETX = %u\n", known ? "" : "no longer ", NEIGHBOR_INFO_FIX2ETX(etx)); dag = rpl_get_dag(RPL_DEFAULT_INSTANCE); if(dag == NULL) { From 777518d65316ab0b4fbeb887003907b4b2dc2469 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Fri, 18 Feb 2011 16:07:23 +0100 Subject: [PATCH 457/471] Fix some typos. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: François Revol Signed-off-by: Mariano Alvira --- core/loader/elfloader.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/loader/elfloader.h b/core/loader/elfloader.h index bbb642104..0c1f7f4ab 100644 --- a/core/loader/elfloader.h +++ b/core/loader/elfloader.h @@ -88,12 +88,12 @@ #define ELFLOADER_BAD_ELF_HEADER 1 /** * Return value from elfloader_load() indicating that no symbol table - * could be find in the ELF file. + * could be found in the ELF file. */ #define ELFLOADER_NO_SYMTAB 2 /** * Return value from elfloader_load() indicating that no string table - * could be find in the ELF file. + * could be found in the ELF file. */ #define ELFLOADER_NO_STRTAB 3 /** @@ -123,7 +123,7 @@ /** * elfloader initialization function. * - * This function should be called at boot up to initilize the elfloader. + * This function should be called at boot up to initialize the elfloader. */ void elfloader_init(void); From c0b21702ed603e3d4f9d7884c8bd73715b52ad89 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 18 Feb 2011 11:11:31 -0500 Subject: [PATCH 458/471] add a cast to a debug message to remove a warning. --- lib/maca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maca.c b/lib/maca.c index 0e6e63e1f..c9cc4f6f2 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -150,7 +150,7 @@ void check_maca(void) { #if DEBUG_MACA if((count = count_packets()) != NUM_PACKETS) { - PRINTF("check maca: count_packets %d\n", count); + PRINTF("check maca: count_packets %d\n", (int)count); Print_Packets("check_maca"); #if PACKET_STATS for(i=0; i Date: Fri, 18 Feb 2011 12:35:20 -0500 Subject: [PATCH 459/471] add rx_time parameter and fill with *MACA_TIMESTAMP --- lib/include/packet.h | 1 + lib/maca.c | 1 + tests/tests.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/include/packet.h b/lib/include/packet.h index 58eaa37b9..44f7805b8 100644 --- a/lib/include/packet.h +++ b/lib/include/packet.h @@ -53,6 +53,7 @@ struct packet { uint8_t offset; uint8_t lqi; uint8_t status; + uint32_t rx_time; #if PACKET_STATS uint8_t seen; uint8_t post_tx; diff --git a/lib/maca.c b/lib/maca.c index c9cc4f6f2..e039062c3 100644 --- a/lib/maca.c +++ b/lib/maca.c @@ -615,6 +615,7 @@ void maca_isr(void) { *MACA_CLRIRQ = (1 << maca_irq_di); dma_rx->length = *MACA_GETRXLVL - 2; /* packet length does not include FCS */ dma_rx->lqi = get_lqi(); + dma_rx->rx_time = *MACA_TIMESTAMP; /* check if received packet needs an ack */ if(dma_rx->data[1] & 0x20) { diff --git a/tests/tests.c b/tests/tests.c index 75850492f..55a0e02c7 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -48,7 +48,7 @@ void print_packet(volatile packet_t *p) { volatile uint8_t i,j,k; #define PER_ROW 16 if(p) { - printf("len 0x%02x lqi 0x%02x", p->length, p->lqi); + printf("len 0x%02x lqi 0x%02x rx_time 0x%08x", p->length, p->lqi, (int)p->rx_time); for(j=0, k=0; j <= ( (p->length) / PER_ROW ); j++) { printf("\n\r"); for(i=0; i < PER_ROW; i++, k++) { From a86a0fbe0e4936147e15f571643f612b6fc3c173 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 18 Feb 2011 12:46:10 -0500 Subject: [PATCH 460/471] set lqi packet attribute --- cpu/mc1322x/contiki-maca.c | 1 + 1 file changed, 1 insertion(+) diff --git a/cpu/mc1322x/contiki-maca.c b/cpu/mc1322x/contiki-maca.c index 6fc672204..4f10e5797 100644 --- a/cpu/mc1322x/contiki-maca.c +++ b/cpu/mc1322x/contiki-maca.c @@ -155,6 +155,7 @@ int contiki_maca_read(void *buf, unsigned short bufsize) { PRINTF(": p->length 0x%0x bufsize 0x%0x \n\r", p->length, bufsize); if((p->length) < bufsize) bufsize = (p->length); memcpy(buf, (uint8_t *)(p->data + p->offset), bufsize); + packetbuf_set_attr(PACKETBUF_ATTR_LINK_QUALITY,p->lqi); #if CONTIKI_MACA_DEBUG for( i = p->offset ; i < (bufsize + p->offset) ; i++) { PRINTF(" %02x",p->data[i]); From 8f9cf50e55f0b4118b8414f67bd14776d7a6a68e Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Fri, 18 Feb 2011 12:46:34 -0500 Subject: [PATCH 461/471] set timestamp packet attribute --- cpu/mc1322x/contiki-maca.c | 1 + 1 file changed, 1 insertion(+) diff --git a/cpu/mc1322x/contiki-maca.c b/cpu/mc1322x/contiki-maca.c index 4f10e5797..d90598673 100644 --- a/cpu/mc1322x/contiki-maca.c +++ b/cpu/mc1322x/contiki-maca.c @@ -156,6 +156,7 @@ int contiki_maca_read(void *buf, unsigned short bufsize) { if((p->length) < bufsize) bufsize = (p->length); memcpy(buf, (uint8_t *)(p->data + p->offset), bufsize); packetbuf_set_attr(PACKETBUF_ATTR_LINK_QUALITY,p->lqi); + packetbuf_set_attr(PACKETBUF_ATTR_TIMESTAMP,p->rx_time); #if CONTIKI_MACA_DEBUG for( i = p->offset ; i < (bufsize + p->offset) ; i++) { PRINTF(" %02x",p->data[i]); From 263f7e6ebd4fb126fa8aa7be57493be61c03c57b Mon Sep 17 00:00:00 2001 From: dak664 Date: Sat, 19 Feb 2011 15:43:43 -0500 Subject: [PATCH 462/471] Insidious minimal-net segmentation fault if initialized ptr not declared static. --- apps/webserver/httpd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/webserver/httpd.c b/apps/webserver/httpd.c index fc80b5b05..59533b095 100644 --- a/apps/webserver/httpd.c +++ b/apps/webserver/httpd.c @@ -185,7 +185,10 @@ PT_THREAD(handle_script(struct httpd_state *s)) static PT_THREAD(send_headers(struct httpd_state *s, const char *statushdr)) { - const char *ptr = NULL; //gcc warning if not initialized +/* gcc warning if not initialized. + * If initialized, minimal-net platform segmentation fault if not static... + */ + static const char *ptr = NULL; PSOCK_BEGIN(&s->sout); From 01b7a4f7f201bf849cbd798469bae3a99c116cf6 Mon Sep 17 00:00:00 2001 From: nvt Date: Sun, 20 Feb 2011 20:15:40 +0100 Subject: [PATCH 463/471] Replaced ROOT_RANK with a macro that allows for other min_hoprankinc parameters than the default. Also made some minor style improvements. --- core/net/rpl/rpl-dag.c | 13 +++++++++---- core/net/rpl/rpl-of-etx.c | 19 +++---------------- core/net/rpl/rpl-private.h | 8 ++++---- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/core/net/rpl/rpl-dag.c b/core/net/rpl/rpl-dag.c index 0a11bff62..330d79b21 100644 --- a/core/net/rpl/rpl-dag.c +++ b/core/net/rpl/rpl-dag.c @@ -179,7 +179,6 @@ rpl_set_root(uip_ipaddr_t *dag_id) dag->version = version + 1; dag->grounded = RPL_GROUNDED; dag->mop = RPL_MOP_DEFAULT; - dag->rank = ROOT_RANK; dag->of = &RPL_OF; dag->preferred_parent = NULL; dag->dtsn_out = 1; /* Trigger DAOs from the beginning. */ @@ -195,6 +194,8 @@ rpl_set_root(uip_ipaddr_t *dag_id) dag->default_lifetime = DEFAULT_RPL_DEF_LIFETIME; dag->lifetime_unit = DEFAULT_RPL_LIFETIME_UNIT; + dag->rank = ROOT_RANK(dag); + dag->of->update_metric_container(dag); PRINTF("RPL: Node set to be a DAG root with DAG ID "); @@ -555,7 +556,7 @@ global_repair(uip_ipaddr_t *from, rpl_dag_t *dag, rpl_dio_t *dio) int rpl_repair_dag(rpl_dag_t *dag) { - if(dag->rank == ROOT_RANK) { + if(dag->rank == ROOT_RANK(dag)) { dag->version++; dag->dtsn_out = 1; rpl_reset_dio_timer(dag, 1); @@ -673,7 +674,7 @@ rpl_process_dio(uip_ipaddr_t *from, rpl_dio_t *dio) } if(dio->version > dag->version) { - if(dag->rank == ROOT_RANK) { + if(dag->rank == ROOT_RANK(dag)) { PRINTF("RPL: Root received inconsistent DIO version number\n"); dag->version = dio->version + 1; rpl_reset_dio_timer(dag, 1); @@ -690,9 +691,13 @@ rpl_process_dio(uip_ipaddr_t *from, rpl_dio_t *dio) if(dio->rank == INFINITE_RANK) { rpl_reset_dio_timer(dag, 1); + } else if(dio->rank < ROOT_RANK(dag)) { + PRINTF("RPL: Ignoring DIO with too low rank: %u\n", + (unsigned)dio->rank); + return; } - if(dag->rank == ROOT_RANK) { + if(dag->rank == ROOT_RANK(dag)) { if(dio->rank != INFINITE_RANK) { dag->dio_counter++; } diff --git a/core/net/rpl/rpl-of-etx.c b/core/net/rpl/rpl-of-etx.c index d7e66b6af..e301968c0 100644 --- a/core/net/rpl/rpl-of-etx.c +++ b/core/net/rpl/rpl-of-etx.c @@ -87,8 +87,6 @@ rpl_of_t rpl_of_etx = { typedef uint16_t rpl_etx_t; #define MAX_ETX 65535 -static rpl_etx_t min_path_cost = MAX_ETX; - static uint16_t calculate_etx(rpl_parent_t *p) { @@ -98,18 +96,11 @@ calculate_etx(rpl_parent_t *p) static void reset(rpl_dag_t *dag) { - min_path_cost = MAX_ETX; } static void parent_state_callback(rpl_parent_t *parent, int known, int etx) { - if(!known) { - if(RPL_PARENT_COUNT(parent->dag) == 1) { - /* Our last parent has disappeared, set the path ETX to INFINITE_RANK. */ - min_path_cost = INFINITE_RANK; - } - } } static rpl_rank_t @@ -156,7 +147,7 @@ best_parent(rpl_parent_t *p1, rpl_parent_t *p2) dag = p1->dag; /* Both parents must be in the same DAG. */ min_diff = RPL_DAG_MC_ETX_DIVISOR / - PARENT_SWITCH_THRESHOLD_DIV; + PARENT_SWITCH_THRESHOLD_DIV; p1_etx = calculate_etx(p1); p2_etx = calculate_etx(p2); @@ -171,11 +162,7 @@ best_parent(rpl_parent_t *p1, rpl_parent_t *p2) return dag->preferred_parent; } - if(p1_etx < p2_etx) { - return p1; - } - - return p2; + return p1_etx < p2_etx ? p1 : p2; } static void @@ -186,7 +173,7 @@ update_metric_container(rpl_dag_t *dag) dag->mc.aggr = RPL_DAG_MC_AGGR_ADDITIVE; dag->mc.prec = 0; dag->mc.length = sizeof(dag->mc.etx.etx); - if(dag->rank == ROOT_RANK) { + if(dag->rank == ROOT_RANK(dag)) { dag->mc.etx.etx = 0; } else { dag->mc.etx.etx = calculate_etx(dag->preferred_parent); diff --git a/core/net/rpl/rpl-private.h b/core/net/rpl/rpl-private.h index 159beb12d..1770ffb64 100644 --- a/core/net/rpl/rpl-private.h +++ b/core/net/rpl/rpl-private.h @@ -119,17 +119,17 @@ #define DAG_RANK(fixpt_rank, dag) ((fixpt_rank) / (dag)->min_hoprankinc) -/* Rank of a node outside the LLN. */ +/* Rank of a virtual root node that coordinates DAG root nodes. */ #define BASE_RANK 0 /* Rank of a root node. */ -#define ROOT_RANK DEFAULT_MIN_HOPRANKINC +#define ROOT_RANK(dag) (dag)->min_hoprankinc #define INFINITE_RANK 0xffff /* Represents 2^n ms. */ -/* Default alue according to the specification is 3 which - means 8 milliseconds - this is not a reasonable value if +/* Default value according to the specification is 3 which + means 8 milliseconds, but that is an unreasonable value if using power-saving / duty-cycling */ #define DEFAULT_DIO_INTERVAL_MIN 12 From 5cb49e8b07342a0e0cfc48b54ff15accae16ce6e Mon Sep 17 00:00:00 2001 From: Lionel Debroux Date: Sat, 19 Feb 2011 08:25:29 +0000 Subject: [PATCH 464/471] Several compiler warning fixes: * msp430: fix "implicit declaration of function" warnings in clock.c, by including watchdog.h; * sky: fix a couple pointer target signedness warnings; * core: fix several signed/unsigned comparison warnings; * framer-802154: "const static" -> "static const" to fix compiler warnings; * core: comment or remove unused variables and function definitions. Signed-off-by: Lionel Debroux Signed-off-by: Mariano Alvira --- core/dev/cc2420.c | 2 +- core/net/mac/cxmac.c | 2 +- core/net/mac/framer-802154.c | 4 ++-- core/net/mac/xmac.c | 8 ++++++-- core/net/rime/collect-link-estimate.c | 3 --- core/net/rpl/rpl-dag.c | 2 +- core/net/uip-debug.c | 5 +++-- core/net/uiplib.c | 3 ++- core/sys/timetable-aggregate.c | 5 +++-- core/sys/timetable.c | 2 +- platform/sky/dev/xmem.c | 2 +- 11 files changed, 21 insertions(+), 17 deletions(-) diff --git a/core/dev/cc2420.c b/core/dev/cc2420.c index 7a5d35a93..8e8a1b657 100644 --- a/core/dev/cc2420.c +++ b/core/dev/cc2420.c @@ -139,7 +139,7 @@ static int cc2420_send(const void *data, unsigned short len); static int cc2420_receiving_packet(void); static int pending_packet(void); static int cc2420_cca(void); -static int detected_energy(void); +/*static int detected_energy(void);*/ signed char cc2420_last_rssi; uint8_t cc2420_last_correlation; diff --git a/core/net/mac/cxmac.c b/core/net/mac/cxmac.c index d01750156..84e945ead 100644 --- a/core/net/mac/cxmac.c +++ b/core/net/mac/cxmac.c @@ -454,7 +454,7 @@ send_packet(void) packetbuf_attr(PACKETBUF_ATTR_ERELIABLE); len = NETSTACK_FRAMER.create(); strobe_len = len + sizeof(struct cxmac_hdr); - if(len == 0 || strobe_len > sizeof(strobe)) { + if(len == 0 || strobe_len > (int)sizeof(strobe)) { /* Failed to send */ PRINTF("cxmac: send failed, too large header\n"); return MAC_TX_ERR_FATAL; diff --git a/core/net/mac/framer-802154.c b/core/net/mac/framer-802154.c index 02ea4bfe1..ba566de78 100644 --- a/core/net/mac/framer-802154.c +++ b/core/net/mac/framer-802154.c @@ -56,8 +56,8 @@ static uint8_t mac_dsn; static uint8_t initialized = 0; -const static uint16_t mac_dst_pan_id = IEEE802154_PANID; -const static uint16_t mac_src_pan_id = IEEE802154_PANID; +static const uint16_t mac_dst_pan_id = IEEE802154_PANID; +static const uint16_t mac_src_pan_id = IEEE802154_PANID; /*---------------------------------------------------------------------------*/ static int diff --git a/core/net/mac/xmac.c b/core/net/mac/xmac.c index fcdb88924..547e93b8f 100644 --- a/core/net/mac/xmac.c +++ b/core/net/mac/xmac.c @@ -455,7 +455,9 @@ send_packet(void) rtimer_clock_t t; rtimer_clock_t encounter_time = 0; int strobes; +#if 0 struct xmac_hdr *hdr; +#endif uint8_t got_strobe_ack = 0; uint8_t got_ack = 0; uint8_t strobe[MAX_STROBE_SIZE]; @@ -495,7 +497,7 @@ send_packet(void) packetbuf_set_attr(PACKETBUF_ATTR_MAC_ACK, 1); len = NETSTACK_FRAMER.create(); strobe_len = len + sizeof(struct xmac_hdr); - if(len == 0 || strobe_len > sizeof(strobe)) { + if(len == 0 || strobe_len > (int)sizeof(strobe)) { /* Failed to send */ PRINTF("xmac: send failed, too large header\n"); return MAC_TX_ERR_FATAL; @@ -602,9 +604,9 @@ send_packet(void) while(got_strobe_ack == 0 && RTIMER_CLOCK_LT(RTIMER_NOW(), t + xmac_config.strobe_wait_time)) { +#if 0 rtimer_clock_t now = RTIMER_NOW(); -#if 0 /* See if we got an ACK */ packetbuf_clear(); len = NETSTACK_RADIO.read(packetbuf_dataptr(), PACKETBUF_SIZE); @@ -647,7 +649,9 @@ send_packet(void) #endif off(); } else { +#if 0 rtimer_clock_t wt; +#endif on(); NETSTACK_RADIO.send(strobe, strobe_len); #if 0 diff --git a/core/net/rime/collect-link-estimate.c b/core/net/rime/collect-link-estimate.c index ff93cdbbb..50b0ac40e 100644 --- a/core/net/rime/collect-link-estimate.c +++ b/core/net/rime/collect-link-estimate.c @@ -108,9 +108,6 @@ collect_link_estimate_update_rx(struct collect_link_estimate *n) uint16_t collect_link_estimate(struct collect_link_estimate *le) { - int i; - uint16_t etx; - if(le->num_estimates == 0) { return INITIAL_LINK_ESTIMATE * COLLECT_LINK_ESTIMATE_UNIT; } diff --git a/core/net/rpl/rpl-dag.c b/core/net/rpl/rpl-dag.c index 330d79b21..10c57039d 100644 --- a/core/net/rpl/rpl-dag.c +++ b/core/net/rpl/rpl-dag.c @@ -419,7 +419,7 @@ rpl_get_dag(int instance_id) rpl_of_t * rpl_find_of(rpl_ocp_t ocp) { - int i; + unsigned int i; for(i = 0; i < sizeof(objective_functions) / sizeof(objective_functions[0]); diff --git a/core/net/uip-debug.c b/core/net/uip-debug.c index 2695169f5..60ec30f86 100644 --- a/core/net/uip-debug.c +++ b/core/net/uip-debug.c @@ -46,7 +46,8 @@ uip_debug_ipaddr_print(const uip_ipaddr_t *addr) { #if UIP_CONF_IPV6 uint16_t a; - int i, f; + unsigned int i; + int f; for(i = 0, f = 0; i < sizeof(uip_ipaddr_t); i += 2) { a = (addr->u8[i] << 8) + addr->u8[i + 1]; if(a == 0 && f >= 0) { @@ -70,7 +71,7 @@ uip_debug_ipaddr_print(const uip_ipaddr_t *addr) void uip_debug_lladdr_print(const uip_lladdr_t *addr) { - int i; + unsigned int i; for(i = 0; i < sizeof(uip_lladdr_t); i++) { if(i > 0) { printf(":"); diff --git a/core/net/uiplib.c b/core/net/uiplib.c index 3add7dd2c..630385373 100644 --- a/core/net/uiplib.c +++ b/core/net/uiplib.c @@ -47,7 +47,8 @@ uiplib_ipaddrconv(const char *addrstr, uip_ipaddr_t *ipaddr) { #if UIP_CONF_IPV6 uint16_t value; - int tmp, len, zero; + int tmp, zero; + unsigned int len; char c = 0; //gcc warning if not initialized value = 0; diff --git a/core/sys/timetable-aggregate.c b/core/sys/timetable-aggregate.c index 5c35b035d..391f472dd 100644 --- a/core/sys/timetable-aggregate.c +++ b/core/sys/timetable-aggregate.c @@ -147,7 +147,7 @@ void timetable_aggregate_compute_detailed(struct timetable_aggregate *a, struct timetable *timetable) { - int i; + unsigned int i; rtimer_clock_t t; t = timetable->timestamps[0].time; @@ -179,7 +179,8 @@ void timetable_aggregate_compute_categories(struct timetable_aggregate *a, struct timetable *timetable) { - int i,j; + unsigned int i; + int j; rtimer_clock_t t; uint16_t categories[XXX_HACK_MAX_CATEGORIES]; int categories_ptr = 0; diff --git a/core/sys/timetable.c b/core/sys/timetable.c index 5fc1481b1..fe30ac166 100644 --- a/core/sys/timetable.c +++ b/core/sys/timetable.c @@ -118,7 +118,7 @@ timetable_init(void) void timetable_print(struct timetable *t) { - int i; + unsigned int i; int time; time = t->timestamps[0].time; diff --git a/platform/sky/dev/xmem.c b/platform/sky/dev/xmem.c index f7f3dee3a..46315d3fa 100644 --- a/platform/sky/dev/xmem.c +++ b/platform/sky/dev/xmem.c @@ -200,7 +200,7 @@ xmem_pread(void *_p, int size, unsigned long offset) return size; } /*---------------------------------------------------------------------------*/ -static const char * +static const unsigned char * program_page(unsigned long offset, const unsigned char *p, int nbytes) { const unsigned char *end = p + nbytes; From 24af4888bc48bbf94355df05e0382067a79a53fd Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Mon, 21 Feb 2011 14:11:17 +0100 Subject: [PATCH 465/471] Made the number of MAC sequence numbers to remember configurable --- core/net/mac/nullrdc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/net/mac/nullrdc.c b/core/net/mac/nullrdc.c index cb38f1c68..1a7483e4c 100644 --- a/core/net/mac/nullrdc.c +++ b/core/net/mac/nullrdc.c @@ -72,7 +72,12 @@ struct seqno { uint8_t seqno; }; -#define MAX_SEQNOS 8 +#ifdef NETSTACK_CONF_MAC_SEQNO_HISTORY +#define MAX_SEQNOS NETSTACK_CONF_MAC_SEQNO_HISTORY +#else /* NETSTACK_CONF_MAC_SEQNO_HISTORY */ +#define MAX_SEQNOS 16 +#endif /* NETSTACK_CONF_MAC_SEQNO_HISTORY */ + static struct seqno received_seqnos[MAX_SEQNOS]; #endif /* NULLRDC_802154_AUTOACK */ From 733aaa546f6b7ed9d08f79551d0e7a7c509c58c0 Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Mon, 21 Feb 2011 14:11:32 +0100 Subject: [PATCH 466/471] Made the number of MAC sequence numbers to remember configurable; fixed bug with power attribution to the idle state. --- core/net/mac/contikimac.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/core/net/mac/contikimac.c b/core/net/mac/contikimac.c index e2c1395d3..b841e9cd9 100644 --- a/core/net/mac/contikimac.c +++ b/core/net/mac/contikimac.c @@ -255,7 +255,11 @@ struct seqno { uint8_t seqno; }; -#define MAX_SEQNOS 8 +#ifdef NETSTACK_CONF_MAC_SEQNO_HISTORY +#define MAX_SEQNOS NETSTACK_CONF_MAC_SEQNO_HISTORY +#else /* NETSTACK_CONF_MAC_SEQNO_HISTORY */ +#define MAX_SEQNOS 16 +#endif /* NETSTACK_CONF_MAC_SEQNO_HISTORY */ static struct seqno received_seqnos[MAX_SEQNOS]; #if CONTIKIMAC_CONF_BROADCAST_RATE_LIMIT @@ -397,6 +401,10 @@ powercycle(struct rtimer *t, void *ptr) break; } powercycle_turn_radio_off(); +#if CONTIKIMAC_CONF_COMPOWER + compower_accumulate(&compower_idle_activity); +#endif /* CONTIKIMAC_CONF_COMPOWER */ + } // schedule_powercycle_fixed(t, t0 + CCA_CHECK_TIME + CCA_SLEEP_TIME); schedule_powercycle_fixed(t, RTIMER_NOW() + CCA_SLEEP_TIME); @@ -466,10 +474,6 @@ powercycle(struct rtimer *t, void *ptr) #endif /* CONTIKIMAC_CONF_COMPOWER */ } } - } else { -#if CONTIKIMAC_CONF_COMPOWER - compower_accumulate(&compower_idle_activity); -#endif /* CONTIKIMAC_CONF_COMPOWER */ } } while((is_snooping || is_streaming) && RTIMER_CLOCK_LT(RTIMER_NOW() - cycle_start, CYCLE_TIME - CHECK_TIME * 8)); From c857e57d2f713a3f755bcda663865f7f4210e883 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Mon, 21 Feb 2011 09:23:52 -0800 Subject: [PATCH 467/471] msp430: fix "implicit declaration of function" warnings in clock.c, by including watchdog.h --- cpu/msp430/clock.c | 1 + 1 file changed, 1 insertion(+) diff --git a/cpu/msp430/clock.c b/cpu/msp430/clock.c index 696cce1ef..5965e1e92 100644 --- a/cpu/msp430/clock.c +++ b/cpu/msp430/clock.c @@ -41,6 +41,7 @@ #include "sys/clock.h" #include "sys/etimer.h" #include "rtimer-arch.h" +#include "watchdog.h" #define INTERVAL (RTIMER_ARCH_SECOND / CLOCK_SECOND) From e9234a8404065e969a49477d8ead8a947e697aca Mon Sep 17 00:00:00 2001 From: nvt Date: Tue, 22 Feb 2011 02:01:15 +0100 Subject: [PATCH 468/471] Error: the value was printed before setting it --- core/net/rpl/rpl-dag.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/net/rpl/rpl-dag.c b/core/net/rpl/rpl-dag.c index 10c57039d..cb01887cb 100644 --- a/core/net/rpl/rpl-dag.c +++ b/core/net/rpl/rpl-dag.c @@ -505,14 +505,14 @@ join_dag(uip_ipaddr_t *from, rpl_dio_t *dio) /* copy prefix information into the dag */ memcpy(&dag->prefix_info, &dio->prefix_info, sizeof(rpl_prefix_t)); + dag->rank = dag->of->calculate_rank(p, dio->rank); + dag->min_rank = dag->rank; /* So far this is the lowest rank we know of. */ + PRINTF("RPL: Joined DAG with instance ID %u, rank %hu, DAG ID ", dio->instance_id, dag->rank); PRINT6ADDR(&dag->dag_id); PRINTF("\n"); - dag->rank = dag->of->calculate_rank(p, dio->rank); - dag->min_rank = dag->rank; /* So far this is the lowest rank we know of. */ - dag->default_lifetime = dio->default_lifetime; dag->lifetime_unit = dio->lifetime_unit; From 68e9fb2a5ccd9095347c02cd9cf270c315425f4a Mon Sep 17 00:00:00 2001 From: Joakim Eriksson Date: Tue, 22 Feb 2011 16:15:16 +0100 Subject: [PATCH 469/471] added annotate when setting root and joining dag --- core/net/rpl/rpl-dag.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/net/rpl/rpl-dag.c b/core/net/rpl/rpl-dag.c index cb01887cb..1aec5be77 100644 --- a/core/net/rpl/rpl-dag.c +++ b/core/net/rpl/rpl-dag.c @@ -202,6 +202,9 @@ rpl_set_root(uip_ipaddr_t *dag_id) PRINT6ADDR(&dag->dag_id); PRINTF("\n"); + ANNOTATE("#A root=%u\n",dag->dag_id.u8[sizeof(dag->dag_id) - 1]); + + rpl_reset_dio_timer(dag, 1); return dag; @@ -513,6 +516,9 @@ join_dag(uip_ipaddr_t *from, rpl_dio_t *dio) PRINT6ADDR(&dag->dag_id); PRINTF("\n"); + ANNOTATE("#A join=%u\n",dag->dag_id.u8[sizeof(dag->dag_id) - 1]); + + dag->default_lifetime = dio->default_lifetime; dag->lifetime_unit = dio->lifetime_unit; From 64e273d3888182b9ea4e999577ef45dd0e1a68d3 Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Tue, 22 Feb 2011 17:35:05 +0100 Subject: [PATCH 470/471] Moved the backyard/ directory to contikiprojects --- backyard/Makefile | 292 ---- backyard/apps/editor/Makefile.editor | 2 - backyard/apps/editor/editor-dsc.c | 73 - backyard/apps/editor/editor-dsc.h | 42 - backyard/apps/editor/editor.c | 338 ----- backyard/apps/webserver/httpd-socket.c | 193 --- backyard/core/ctk/ctk-conio-service.c | 569 -------- backyard/core/ctk/ctk-conio-service.h | 42 - backyard/core/ctk/ctk-draw-service.h | 73 - backyard/core/ctk/ctk-draw.c | 173 --- backyard/core/ctk/ctk-graphic-draw.h | 96 -- backyard/core/ctk/ctk-graphic.c | 809 ----------- backyard/core/ctk/ctk-mouse.c | 323 ----- backyard/core/ctk/ctk-term-ascii.h | 123 -- backyard/core/ctk/ctk-term-in.c | 381 ------ backyard/core/ctk/ctk-term-int.h | 99 -- backyard/core/ctk/ctk-term-out.c | 350 ----- backyard/core/ctk/ctk-term-out.h | 42 - backyard/core/ctk/ctk-term.c | 1028 -------------- backyard/core/ctk/ctk-term.h | 46 - backyard/core/ctk/ctk-termarch.h | 58 - backyard/core/ctk/ctk-termserial.c | 110 -- backyard/core/ctk/ctk-termserial.h | 38 - backyard/core/ctk/ctk-termtelnet.c | 655 --------- backyard/core/ctk/ctk-termtelnet.h | 38 - backyard/core/ctk/ctk-vncserver-service.c | 1146 ---------------- backyard/core/dev/cc2420.c | 668 --------- backyard/core/dev/cc2420.h | 144 -- backyard/core/dev/cs8900a.c | 314 ----- backyard/core/dev/cs8900a.h | 44 - backyard/core/lib/crtk.c | 152 --- backyard/core/lib/crtk.h | 150 --- backyard/core/lib/ctk-textedit.c | 181 --- backyard/core/lib/ctk-textedit.h | 73 - backyard/core/lib/malloc.c | 434 ------ backyard/core/lib/malloc.h | 88 -- backyard/core/lib/malloc_compact.c | 133 -- backyard/core/lib/realloc.c | 159 --- backyard/core/net/adhoc-service.h | 54 - backyard/core/net/hc-service.c | 68 - backyard/core/net/hc-service.h | 45 - backyard/core/net/ppp/ahdlc.c | 381 ------ backyard/core/net/ppp/ahdlc.h | 57 - backyard/core/net/ppp/ipcp.c | 462 ------- backyard/core/net/ppp/ipcp.h | 95 -- backyard/core/net/ppp/lcp.c | 463 ------- backyard/core/net/ppp/lcp.h | 96 -- backyard/core/net/ppp/pap.c | 195 --- backyard/core/net/ppp/pap.h | 83 -- backyard/core/net/ppp/ppp-service.c | 91 -- backyard/core/net/ppp/ppp.c | 440 ------ backyard/core/net/ppp/ppp.h | 132 -- backyard/core/net/ppp/ppp_process.c | 234 ---- backyard/core/net/ppp/ppp_process.h | 3 - backyard/core/net/uipbuf.c | 134 -- backyard/core/net/uipbuf.h | 182 --- backyard/core/sys/service.c | 111 -- backyard/core/sys/service.h | 195 --- backyard/cpu/6502/apps/memstat-dsc.c | 73 - backyard/cpu/6502/apps/memstat-dsc.h | 42 - backyard/cpu/6502/apps/memstat.c | 127 -- backyard/cpu/6502/cc65-make-labels | 6 - backyard/cpu/6502/loader/loader-arch-dsc.c | 57 - backyard/cpu/6502/loader/loader-arch-dsc.h | 46 - .../cpu/6502/loader/loader-arch-module-dsc.S | 1 - backyard/cpu/6502/loader/loader-arch-module.S | 8 - backyard/cpu/6502/loader/loader-arch.c | 117 -- backyard/cpu/6502/loader/loader-arch.h | 47 - backyard/cpu/6502/net/rs232dev.c | 272 ---- backyard/cpu/6502/net/rs232dev.h | 48 - backyard/cpu/6502/net/slip-drv.c | 81 -- backyard/cpu/6502/net/slip-dsc.c | 71 - backyard/cpu/6502/net/slip-dump-drv.c | 120 -- backyard/cpu/avr/dev/rtl8019as-drv.c | 160 --- backyard/platform/apple2enh/lib/log-asm.S | 51 - backyard/platform/apple2enh/lib/log.c | 60 - backyard/platform/c64/Makefile | 77 -- backyard/platform/c64/apps/blueround-dsc.c | 73 - backyard/platform/c64/apps/cgterm-dsc.c | 73 - backyard/platform/c64/apps/cgterm.c | 242 ---- backyard/platform/c64/apps/config.c | 241 ---- backyard/platform/c64/apps/configedit-dsc.c | 73 - backyard/platform/c64/apps/configedit-dsc.h | 42 - backyard/platform/c64/apps/configedit.c | 418 ------ backyard/platform/c64/apps/default-dsc.c | 71 - backyard/platform/c64/apps/enabler-dsc.c | 73 - .../c64/apps/http-user-agent-string.c | 37 - .../c64/apps/http-user-agent-string.h | 35 - backyard/platform/c64/apps/memstat-dsc.c | 73 - backyard/platform/c64/apps/mtest.c | 54 - backyard/platform/c64/apps/plasma-dsc.c | 73 - backyard/platform/c64/apps/plasma.c | 224 ---- backyard/platform/c64/apps/ravenpine-dsc.c | 73 - backyard/platform/c64/apps/springlight-dsc.c | 73 - backyard/platform/c64/apps/ssfire-dsc.c | 73 - backyard/platform/c64/apps/ssfire.c | 163 --- backyard/platform/c64/apps/themeloader.c | 52 - backyard/platform/c64/apps/vnc-draw-asm.S | 16 - backyard/platform/c64/apps/vnc-draw-asm.h | 42 - backyard/platform/c64/apps/vnc-draw.c | 689 ---------- backyard/platform/c64/apps/warmboot.c | 54 - backyard/platform/c64/apps/welcome.c | 88 -- backyard/platform/c64/apps/wget-dsc.c | 73 - backyard/platform/c64/apps/wget-dsc.h | 42 - backyard/platform/c64/apps/wget.c | 528 -------- backyard/platform/c64/c64.cfg | 30 - backyard/platform/c64/contiki-conf.h | 611 --------- backyard/platform/c64/ctk/ctk-80col-asm.S | 986 -------------- backyard/platform/c64/ctk/ctk-80col-asm.h | 73 - backyard/platform/c64/ctk/ctk-80col-theme.h | 83 -- backyard/platform/c64/ctk/ctk-80col.c | 1190 ----------------- backyard/platform/c64/ctk/ctk-arch.h | 55 - backyard/platform/c64/ctk/ctk-hires-asm.S | 934 ------------- backyard/platform/c64/ctk/ctk-hires-asm.h | 70 - backyard/platform/c64/ctk/ctk-hires-service.c | 925 ------------- .../c64/ctk/ctk-hires-theme-blueround.c | 313 ----- .../c64/ctk/ctk-hires-theme-default.c | 303 ----- .../c64/ctk/ctk-hires-theme-enabler.c | 303 ----- .../c64/ctk/ctk-hires-theme-ravenpine.c | 288 ---- .../c64/ctk/ctk-hires-theme-springlight.c | 284 ---- backyard/platform/c64/ctk/ctk-hires-theme.h | 105 -- backyard/platform/c64/ctk/ctk-hires.c | 871 ------------ backyard/platform/c64/ctk/ctk-hires.h | 48 - backyard/platform/c64/ctk/ctk-mouse-1351.S | 149 --- backyard/platform/c64/ctk/ctk-mouse-arch.c | 122 -- backyard/platform/c64/ctk/ctk-mouse-asm.S | 48 - backyard/platform/c64/ctk/ctk-mouse-joy.S | 135 -- backyard/platform/c64/ctk/ctk-mouse.c | 122 -- backyard/platform/c64/lib/iconfield.c | 119 -- backyard/platform/c64/lib/mtarch-asm.S | 245 ---- backyard/platform/c64/lib/mtarch.c | 98 -- backyard/platform/c64/lib/mtarch.h | 51 - backyard/platform/c64/lib/save-driveunit.S | 7 - backyard/platform/c64/loader/c64-dio-asm.S | 505 ------- backyard/platform/c64/loader/c64-dio-asm.h | 47 - backyard/platform/c64/loader/c64-dio.c | 119 -- backyard/platform/c64/loader/c64-dio.h | 50 - backyard/platform/c64/loader/c64-fs-raw.c | 205 --- backyard/platform/c64/loader/c64-fs-raw.h | 46 - backyard/platform/c64/loader/c64-fs-write.c | 121 -- backyard/platform/c64/loader/c64-fs.c | 411 ------ backyard/platform/c64/loader/c64-fs.h | 97 -- backyard/platform/c64/loader/cfs-1541-asm.S | 571 -------- backyard/platform/c64/loader/cfs-1541.c | 67 - backyard/platform/c64/loader/cfs-cbm-posix.c | 146 -- backyard/platform/c64/loader/cfs-cbm.c | 123 -- backyard/platform/c64/loader/cfs-cbm.h | 39 - backyard/platform/c64/loader/cfs-init.c | 93 -- backyard/platform/c64/loader/cfs-init.h | 42 - backyard/platform/c64/loader/loader-arch.c | 140 -- backyard/platform/c64/main.c | 143 -- backyard/platform/c64/net/cs8900a.c | 297 ---- backyard/platform/c64/net/cs8900a.h | 44 - backyard/platform/c64/net/eth64-drv.c | 107 -- backyard/platform/c64/net/eth64-dsc.c | 73 - backyard/platform/c64/net/eth64-dump-drv.c | 146 -- backyard/platform/c64/net/lan91c96.c | 453 ------- backyard/platform/c64/net/lan91c96.h | 45 - backyard/platform/c64/net/rrnet-drv-asm.S | 17 - backyard/platform/c64/net/rrnet-drv.c | 117 -- backyard/platform/c64/net/rrnet-dsc.c | 73 - backyard/platform/c64/net/rrnet-dump-drv.c | 146 -- backyard/platform/c64/net/rs232dev-ss.c | 236 ---- backyard/platform/c64/net/rs232silversurfer.S | 329 ----- backyard/platform/c64/net/rs232silversurfer.h | 143 -- backyard/platform/c64/net/tfe-drv-asm.S | 17 - backyard/platform/c64/net/tfe-drv.c | 107 -- backyard/platform/c64/net/tfe-dsc.c | 73 - backyard/platform/c64/net/tfe-dump-drv.c | 141 -- backyard/platform/esb/Makefile | 21 - backyard/platform/gtk/Makefile | 38 - backyard/platform/gtk/Makefile.gtk | 29 - backyard/platform/gtk/background.png | Bin 95975 -> 0 bytes backyard/platform/gtk/clock.c | 56 - backyard/platform/gtk/contiki-conf.h | 187 --- backyard/platform/gtk/contiki-main.c | 185 --- backyard/platform/gtk/ctk/conio.h | 47 - backyard/platform/gtk/ctk/ctk-arch.h | 45 - backyard/platform/gtk/ctk/ctk-gtksim-conio.c | 359 ----- backyard/platform/gtk/ctk/ctk-gtksim-draw.c | 172 --- backyard/platform/gtk/ctk/ctk-gtksim-draw.h | 37 - .../platform/gtk/ctk/ctk-gtksim-service.c | 869 ------------ .../platform/gtk/ctk/ctk-gtksim-service.h | 8 - backyard/platform/gtk/ctk/ctk-gtksim.c | 371 ----- backyard/platform/gtk/ctk/ctk-gtksim.h | 73 - backyard/platform/gtk/menubar.png | Bin 4391 -> 0 bytes backyard/platform/gtk/vnc-draw.c | 210 --- backyard/platform/gtk/windowborder.png | Bin 24082 -> 0 bytes backyard/platform/minimal-ppp/Makefile | 118 -- .../platform/minimal-ppp/Makefile.minimal-ppp | 58 - backyard/platform/minimal-ppp/README | 5 - backyard/platform/minimal-ppp/clock.c | 61 - backyard/platform/minimal-ppp/contiki-conf.h | 223 --- backyard/platform/minimal-ppp/contiki-main.c | 99 -- backyard/platform/minimal-ppp/ctk-arch.h | 41 - backyard/platform/minimal-ppp/leds-arch.c | 61 - backyard/platform/minimal-ppp/ppp-arch.c | 62 - backyard/platform/minimal-ppp/ppp_arch.h | 0 backyard/platform/sky/Makefile | 118 -- backyard/platform/sky/client.c | 203 --- backyard/platform/sky/dhclient.c | 276 ---- backyard/platform/sky/gateway.c | 187 --- backyard/platform/sky/loadable_prg.c | 82 -- backyard/platform/sky/udprecv.c | 91 -- backyard/platform/sky/udpsend.c | 102 -- backyard/tools/chakana/CYGWIN_USERS.txt | 13 - backyard/tools/chakana/__init__.py | 1 - backyard/tools/chakana/build.xml | 30 - backyard/tools/chakana/command.py | 190 --- .../tools/chakana/cooja.chakana.properties | 1 - backyard/tools/chakana/cooja_plugin/README | 3 - backyard/tools/chakana/cooja_plugin/build.xml | 40 - .../tools/chakana/cooja_plugin/cooja.config | 2 - .../java/se/sics/chakana/ChakanaPlugin.java | 279 ---- .../se/sics/chakana/EventpointEvaluator.java | 169 --- .../se/sics/chakana/XMLCommandHandler.java | 1159 ---------------- .../sics/chakana/eventpoints/Eventpoint.java | 56 - .../eventpoints/IntegerWatchpoint.java | 43 - .../eventpoints/RadioMediumEventpoint.java | 90 -- .../chakana/eventpoints/RealTimepoint.java | 77 -- .../eventpoints/SimulationTimepoint.java | 80 -- .../sics/chakana/eventpoints/Timepoint.java | 38 - .../TransmissionRadioMediumEventpoint.java | 66 - .../eventpoints/VariableWatchpoint.java | 69 - .../sics/chakana/eventpoints/Watchpoint.java | 89 -- backyard/tools/chakana/debug.py | 279 ---- backyard/tools/chakana/error.py | 89 -- backyard/tools/chakana/event.py | 175 --- backyard/tools/chakana/harness.py | 126 -- backyard/tools/chakana/linux.py | 268 ---- backyard/tools/chakana/monitor.py | 184 --- backyard/tools/chakana/shepherd.py | 347 ----- .../tools/chakana/test_template/run_test.py | 143 -- .../test_template/simple_simulation.csc | 13 - backyard/tools/chakana/threads.py | 287 ---- backyard/tools/chakana/utils.py | 736 ---------- .../tools/cooja/apps/serial2pipe/build.xml | 36 - .../tools/cooja/apps/serial2pipe/cooja.config | 2 - .../se/sics/cooja/plugins/Serial2Pipe.java | 177 --- .../cooja/examples/project_debug/build.xml | 23 - .../cooja/examples/project_debug/cooja.config | 1 - .../project_debug/java/MoteDebugger.java | 172 --- 242 files changed, 42576 deletions(-) delete mode 100644 backyard/Makefile delete mode 100644 backyard/apps/editor/Makefile.editor delete mode 100644 backyard/apps/editor/editor-dsc.c delete mode 100644 backyard/apps/editor/editor-dsc.h delete mode 100644 backyard/apps/editor/editor.c delete mode 100644 backyard/apps/webserver/httpd-socket.c delete mode 100644 backyard/core/ctk/ctk-conio-service.c delete mode 100644 backyard/core/ctk/ctk-conio-service.h delete mode 100644 backyard/core/ctk/ctk-draw-service.h delete mode 100644 backyard/core/ctk/ctk-draw.c delete mode 100644 backyard/core/ctk/ctk-graphic-draw.h delete mode 100644 backyard/core/ctk/ctk-graphic.c delete mode 100644 backyard/core/ctk/ctk-mouse.c delete mode 100644 backyard/core/ctk/ctk-term-ascii.h delete mode 100644 backyard/core/ctk/ctk-term-in.c delete mode 100644 backyard/core/ctk/ctk-term-int.h delete mode 100644 backyard/core/ctk/ctk-term-out.c delete mode 100644 backyard/core/ctk/ctk-term-out.h delete mode 100644 backyard/core/ctk/ctk-term.c delete mode 100644 backyard/core/ctk/ctk-term.h delete mode 100644 backyard/core/ctk/ctk-termarch.h delete mode 100644 backyard/core/ctk/ctk-termserial.c delete mode 100644 backyard/core/ctk/ctk-termserial.h delete mode 100644 backyard/core/ctk/ctk-termtelnet.c delete mode 100644 backyard/core/ctk/ctk-termtelnet.h delete mode 100644 backyard/core/ctk/ctk-vncserver-service.c delete mode 100644 backyard/core/dev/cc2420.c delete mode 100644 backyard/core/dev/cc2420.h delete mode 100644 backyard/core/dev/cs8900a.c delete mode 100644 backyard/core/dev/cs8900a.h delete mode 100644 backyard/core/lib/crtk.c delete mode 100644 backyard/core/lib/crtk.h delete mode 100644 backyard/core/lib/ctk-textedit.c delete mode 100644 backyard/core/lib/ctk-textedit.h delete mode 100644 backyard/core/lib/malloc.c delete mode 100644 backyard/core/lib/malloc.h delete mode 100644 backyard/core/lib/malloc_compact.c delete mode 100644 backyard/core/lib/realloc.c delete mode 100644 backyard/core/net/adhoc-service.h delete mode 100644 backyard/core/net/hc-service.c delete mode 100644 backyard/core/net/hc-service.h delete mode 100644 backyard/core/net/ppp/ahdlc.c delete mode 100644 backyard/core/net/ppp/ahdlc.h delete mode 100644 backyard/core/net/ppp/ipcp.c delete mode 100644 backyard/core/net/ppp/ipcp.h delete mode 100644 backyard/core/net/ppp/lcp.c delete mode 100644 backyard/core/net/ppp/lcp.h delete mode 100644 backyard/core/net/ppp/pap.c delete mode 100644 backyard/core/net/ppp/pap.h delete mode 100644 backyard/core/net/ppp/ppp-service.c delete mode 100644 backyard/core/net/ppp/ppp.c delete mode 100644 backyard/core/net/ppp/ppp.h delete mode 100644 backyard/core/net/ppp/ppp_process.c delete mode 100644 backyard/core/net/ppp/ppp_process.h delete mode 100644 backyard/core/net/uipbuf.c delete mode 100644 backyard/core/net/uipbuf.h delete mode 100644 backyard/core/sys/service.c delete mode 100644 backyard/core/sys/service.h delete mode 100644 backyard/cpu/6502/apps/memstat-dsc.c delete mode 100644 backyard/cpu/6502/apps/memstat-dsc.h delete mode 100644 backyard/cpu/6502/apps/memstat.c delete mode 100755 backyard/cpu/6502/cc65-make-labels delete mode 100644 backyard/cpu/6502/loader/loader-arch-dsc.c delete mode 100644 backyard/cpu/6502/loader/loader-arch-dsc.h delete mode 100644 backyard/cpu/6502/loader/loader-arch-module-dsc.S delete mode 100644 backyard/cpu/6502/loader/loader-arch-module.S delete mode 100644 backyard/cpu/6502/loader/loader-arch.c delete mode 100644 backyard/cpu/6502/loader/loader-arch.h delete mode 100644 backyard/cpu/6502/net/rs232dev.c delete mode 100644 backyard/cpu/6502/net/rs232dev.h delete mode 100644 backyard/cpu/6502/net/slip-drv.c delete mode 100644 backyard/cpu/6502/net/slip-dsc.c delete mode 100644 backyard/cpu/6502/net/slip-dump-drv.c delete mode 100644 backyard/cpu/avr/dev/rtl8019as-drv.c delete mode 100644 backyard/platform/apple2enh/lib/log-asm.S delete mode 100644 backyard/platform/apple2enh/lib/log.c delete mode 100644 backyard/platform/c64/Makefile delete mode 100644 backyard/platform/c64/apps/blueround-dsc.c delete mode 100644 backyard/platform/c64/apps/cgterm-dsc.c delete mode 100644 backyard/platform/c64/apps/cgterm.c delete mode 100644 backyard/platform/c64/apps/config.c delete mode 100644 backyard/platform/c64/apps/configedit-dsc.c delete mode 100644 backyard/platform/c64/apps/configedit-dsc.h delete mode 100644 backyard/platform/c64/apps/configedit.c delete mode 100644 backyard/platform/c64/apps/default-dsc.c delete mode 100644 backyard/platform/c64/apps/enabler-dsc.c delete mode 100644 backyard/platform/c64/apps/http-user-agent-string.c delete mode 100644 backyard/platform/c64/apps/http-user-agent-string.h delete mode 100644 backyard/platform/c64/apps/memstat-dsc.c delete mode 100644 backyard/platform/c64/apps/mtest.c delete mode 100644 backyard/platform/c64/apps/plasma-dsc.c delete mode 100644 backyard/platform/c64/apps/plasma.c delete mode 100644 backyard/platform/c64/apps/ravenpine-dsc.c delete mode 100644 backyard/platform/c64/apps/springlight-dsc.c delete mode 100644 backyard/platform/c64/apps/ssfire-dsc.c delete mode 100644 backyard/platform/c64/apps/ssfire.c delete mode 100644 backyard/platform/c64/apps/themeloader.c delete mode 100644 backyard/platform/c64/apps/vnc-draw-asm.S delete mode 100644 backyard/platform/c64/apps/vnc-draw-asm.h delete mode 100644 backyard/platform/c64/apps/vnc-draw.c delete mode 100644 backyard/platform/c64/apps/warmboot.c delete mode 100644 backyard/platform/c64/apps/welcome.c delete mode 100644 backyard/platform/c64/apps/wget-dsc.c delete mode 100644 backyard/platform/c64/apps/wget-dsc.h delete mode 100644 backyard/platform/c64/apps/wget.c delete mode 100644 backyard/platform/c64/c64.cfg delete mode 100644 backyard/platform/c64/contiki-conf.h delete mode 100644 backyard/platform/c64/ctk/ctk-80col-asm.S delete mode 100644 backyard/platform/c64/ctk/ctk-80col-asm.h delete mode 100644 backyard/platform/c64/ctk/ctk-80col-theme.h delete mode 100644 backyard/platform/c64/ctk/ctk-80col.c delete mode 100644 backyard/platform/c64/ctk/ctk-arch.h delete mode 100644 backyard/platform/c64/ctk/ctk-hires-asm.S delete mode 100644 backyard/platform/c64/ctk/ctk-hires-asm.h delete mode 100644 backyard/platform/c64/ctk/ctk-hires-service.c delete mode 100644 backyard/platform/c64/ctk/ctk-hires-theme-blueround.c delete mode 100644 backyard/platform/c64/ctk/ctk-hires-theme-default.c delete mode 100644 backyard/platform/c64/ctk/ctk-hires-theme-enabler.c delete mode 100644 backyard/platform/c64/ctk/ctk-hires-theme-ravenpine.c delete mode 100644 backyard/platform/c64/ctk/ctk-hires-theme-springlight.c delete mode 100644 backyard/platform/c64/ctk/ctk-hires-theme.h delete mode 100644 backyard/platform/c64/ctk/ctk-hires.c delete mode 100644 backyard/platform/c64/ctk/ctk-hires.h delete mode 100644 backyard/platform/c64/ctk/ctk-mouse-1351.S delete mode 100644 backyard/platform/c64/ctk/ctk-mouse-arch.c delete mode 100644 backyard/platform/c64/ctk/ctk-mouse-asm.S delete mode 100644 backyard/platform/c64/ctk/ctk-mouse-joy.S delete mode 100644 backyard/platform/c64/ctk/ctk-mouse.c delete mode 100644 backyard/platform/c64/lib/iconfield.c delete mode 100644 backyard/platform/c64/lib/mtarch-asm.S delete mode 100644 backyard/platform/c64/lib/mtarch.c delete mode 100644 backyard/platform/c64/lib/mtarch.h delete mode 100644 backyard/platform/c64/lib/save-driveunit.S delete mode 100644 backyard/platform/c64/loader/c64-dio-asm.S delete mode 100644 backyard/platform/c64/loader/c64-dio-asm.h delete mode 100644 backyard/platform/c64/loader/c64-dio.c delete mode 100644 backyard/platform/c64/loader/c64-dio.h delete mode 100644 backyard/platform/c64/loader/c64-fs-raw.c delete mode 100644 backyard/platform/c64/loader/c64-fs-raw.h delete mode 100644 backyard/platform/c64/loader/c64-fs-write.c delete mode 100644 backyard/platform/c64/loader/c64-fs.c delete mode 100644 backyard/platform/c64/loader/c64-fs.h delete mode 100644 backyard/platform/c64/loader/cfs-1541-asm.S delete mode 100644 backyard/platform/c64/loader/cfs-1541.c delete mode 100644 backyard/platform/c64/loader/cfs-cbm-posix.c delete mode 100644 backyard/platform/c64/loader/cfs-cbm.c delete mode 100644 backyard/platform/c64/loader/cfs-cbm.h delete mode 100644 backyard/platform/c64/loader/cfs-init.c delete mode 100644 backyard/platform/c64/loader/cfs-init.h delete mode 100644 backyard/platform/c64/loader/loader-arch.c delete mode 100644 backyard/platform/c64/main.c delete mode 100644 backyard/platform/c64/net/cs8900a.c delete mode 100644 backyard/platform/c64/net/cs8900a.h delete mode 100644 backyard/platform/c64/net/eth64-drv.c delete mode 100644 backyard/platform/c64/net/eth64-dsc.c delete mode 100644 backyard/platform/c64/net/eth64-dump-drv.c delete mode 100644 backyard/platform/c64/net/lan91c96.c delete mode 100644 backyard/platform/c64/net/lan91c96.h delete mode 100644 backyard/platform/c64/net/rrnet-drv-asm.S delete mode 100644 backyard/platform/c64/net/rrnet-drv.c delete mode 100644 backyard/platform/c64/net/rrnet-dsc.c delete mode 100644 backyard/platform/c64/net/rrnet-dump-drv.c delete mode 100644 backyard/platform/c64/net/rs232dev-ss.c delete mode 100644 backyard/platform/c64/net/rs232silversurfer.S delete mode 100644 backyard/platform/c64/net/rs232silversurfer.h delete mode 100644 backyard/platform/c64/net/tfe-drv-asm.S delete mode 100644 backyard/platform/c64/net/tfe-drv.c delete mode 100644 backyard/platform/c64/net/tfe-dsc.c delete mode 100644 backyard/platform/c64/net/tfe-dump-drv.c delete mode 100644 backyard/platform/esb/Makefile delete mode 100644 backyard/platform/gtk/Makefile delete mode 100644 backyard/platform/gtk/Makefile.gtk delete mode 100644 backyard/platform/gtk/background.png delete mode 100644 backyard/platform/gtk/clock.c delete mode 100644 backyard/platform/gtk/contiki-conf.h delete mode 100644 backyard/platform/gtk/contiki-main.c delete mode 100644 backyard/platform/gtk/ctk/conio.h delete mode 100644 backyard/platform/gtk/ctk/ctk-arch.h delete mode 100644 backyard/platform/gtk/ctk/ctk-gtksim-conio.c delete mode 100644 backyard/platform/gtk/ctk/ctk-gtksim-draw.c delete mode 100644 backyard/platform/gtk/ctk/ctk-gtksim-draw.h delete mode 100644 backyard/platform/gtk/ctk/ctk-gtksim-service.c delete mode 100644 backyard/platform/gtk/ctk/ctk-gtksim-service.h delete mode 100644 backyard/platform/gtk/ctk/ctk-gtksim.c delete mode 100644 backyard/platform/gtk/ctk/ctk-gtksim.h delete mode 100644 backyard/platform/gtk/menubar.png delete mode 100644 backyard/platform/gtk/vnc-draw.c delete mode 100644 backyard/platform/gtk/windowborder.png delete mode 100644 backyard/platform/minimal-ppp/Makefile delete mode 100644 backyard/platform/minimal-ppp/Makefile.minimal-ppp delete mode 100644 backyard/platform/minimal-ppp/README delete mode 100644 backyard/platform/minimal-ppp/clock.c delete mode 100644 backyard/platform/minimal-ppp/contiki-conf.h delete mode 100644 backyard/platform/minimal-ppp/contiki-main.c delete mode 100644 backyard/platform/minimal-ppp/ctk-arch.h delete mode 100644 backyard/platform/minimal-ppp/leds-arch.c delete mode 100644 backyard/platform/minimal-ppp/ppp-arch.c delete mode 100644 backyard/platform/minimal-ppp/ppp_arch.h delete mode 100644 backyard/platform/sky/Makefile delete mode 100644 backyard/platform/sky/client.c delete mode 100644 backyard/platform/sky/dhclient.c delete mode 100644 backyard/platform/sky/gateway.c delete mode 100644 backyard/platform/sky/loadable_prg.c delete mode 100644 backyard/platform/sky/udprecv.c delete mode 100644 backyard/platform/sky/udpsend.c delete mode 100644 backyard/tools/chakana/CYGWIN_USERS.txt delete mode 100644 backyard/tools/chakana/__init__.py delete mode 100644 backyard/tools/chakana/build.xml delete mode 100644 backyard/tools/chakana/command.py delete mode 100644 backyard/tools/chakana/cooja.chakana.properties delete mode 100644 backyard/tools/chakana/cooja_plugin/README delete mode 100644 backyard/tools/chakana/cooja_plugin/build.xml delete mode 100644 backyard/tools/chakana/cooja_plugin/cooja.config delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/ChakanaPlugin.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/EventpointEvaluator.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/XMLCommandHandler.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Eventpoint.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/IntegerWatchpoint.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/RadioMediumEventpoint.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/RealTimepoint.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/SimulationTimepoint.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Timepoint.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/TransmissionRadioMediumEventpoint.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/VariableWatchpoint.java delete mode 100644 backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Watchpoint.java delete mode 100644 backyard/tools/chakana/debug.py delete mode 100644 backyard/tools/chakana/error.py delete mode 100644 backyard/tools/chakana/event.py delete mode 100644 backyard/tools/chakana/harness.py delete mode 100644 backyard/tools/chakana/linux.py delete mode 100644 backyard/tools/chakana/monitor.py delete mode 100644 backyard/tools/chakana/shepherd.py delete mode 100644 backyard/tools/chakana/test_template/run_test.py delete mode 100644 backyard/tools/chakana/test_template/simple_simulation.csc delete mode 100644 backyard/tools/chakana/threads.py delete mode 100644 backyard/tools/chakana/utils.py delete mode 100644 backyard/tools/cooja/apps/serial2pipe/build.xml delete mode 100644 backyard/tools/cooja/apps/serial2pipe/cooja.config delete mode 100644 backyard/tools/cooja/apps/serial2pipe/java/se/sics/cooja/plugins/Serial2Pipe.java delete mode 100644 backyard/tools/cooja/examples/project_debug/build.xml delete mode 100644 backyard/tools/cooja/examples/project_debug/cooja.config delete mode 100644 backyard/tools/cooja/examples/project_debug/java/MoteDebugger.java diff --git a/backyard/Makefile b/backyard/Makefile deleted file mode 100644 index 78851e3c2..000000000 --- a/backyard/Makefile +++ /dev/null @@ -1,292 +0,0 @@ -################################################################### -# toplevel makefile for contiki 2.x -# -# 2006/06/24 gpz - initial creation -# -# todo: -# - add rules for other/more ports -# - add "dist-" rules (for creating tarballs) -# - create checks for required tools and give hints on where -# to get certain missing stuff -# - incase certain targets fail, print a error summary when -# all targets are done -################################################################### - -# uncomment this for less verbose output -#.SILENT: - -MAKE=make -ECHO=echo -en -CD=cd - -################################################################### -# this first rule prints usage info when the make is invoked -# without any arguments -################################################################### - -.PHONY: usage - -usage: - -@$(ECHO) "usage: make \n\n" - -@$(ECHO) "available targets are:\n\n" - -@$(ECHO) "docs build the documentation\n" - -@$(ECHO) "gtk build full featured GTK port\n" - -@$(ECHO) "gtk-examples build examples with GTK port\n" - -@$(ECHO) "esb build full featured ESB port\n" - -@$(ECHO) "esb-examples build examples with ESB port\n" - -@$(ECHO) "minimal-net-examples build examples with minimal-net port\n" - -@$(ECHO) "native-examples build examples with native port\n" - -@$(ECHO) "all build everything\n" - -@$(ECHO) "clean cleanup the sourcetree\n" - -@$(ECHO) "\nfor more targets and other details look at this makefile.\n" - -################################################################### -# the "all" rule can be used to make a clean build from all and -# everything. you will need to have all kinds of support tools -# installed for this to work! -################################################################### - -.PHONY: all dist examples - -all: source-dist docs docs-dist examples c64 esb ethernut1 ethernut2 gtk minimal-net minimal-ppp native netsim - -dist: source-dist docs-dist - -examples: c64-examples esb-examples ethernut1-examples ethernut2-examples gtk-examples minimal-net-examples minimal-ppp-examples native-examples netsim-examples -examples-clean: c64-examples-clean esb-examples-clean ethernut1-examples-clean ethernut2-examples-clean gtk-examples-clean minimal-net-examples-clean minimal-ppp-examples-clean native-examples-clean netsim-examples-clean - -################################################################### -# general cleanup rule -################################################################### - -.PHONY: clean - -clean: docs-clean examples-clean c64-clean esb-clean ethernut1-clean ethernut2-clean gtk-clean minimal-net-clean minimal-ppp-clean native-clean netsim-clean - -@$(ECHO) "sourcetree cleaned up.\n" - -################################################################### -# rules for building the documentation -################################################################### - -.PHONY: docs docs-clean docs-html docs-pdf docs-dist - -docs: docs-html docs-pdf - -docs-doxygen: - -@$(CD) doc; $(MAKE) dox - -docs-html: docs-doxygen - -docs-pdf: docs-doxygen - -@$(CD) doc; $(MAKE) pdf - -docs-clean: - -@$(CD) doc; $(MAKE) clean - -docs-dist: - -################################################################### -# rules for building the source distribution -################################################################### - -source-dist: - -################################################################### -# rules for the C64 port -################################################################### - -.PHONY: c64 c64-clean - -c64: - -@$(CD) platform/c64; $(MAKE) all - -c64-clean: - -@$(CD) platform/c64; $(MAKE) clean - -c64-dist: - -c64-examples: c64-example-webserver c64-example-telnet-server c64-example-test-ipv6 - -c64-example-telnet-server: - -@$(CD) examples/telnet-server; $(MAKE) TARGET=c64 -c64-example-webserver: - -@$(CD) examples/webserver; $(MAKE) TARGET=c64 -c64-example-test-ipv6: - -@$(CD) examples/test-ipv6; $(MAKE) TARGET=c64 - -c64-examples-clean: - -@$(CD) examples/telnet-server; $(MAKE) TARGET=c64 clean - -@$(CD) examples/webserver; $(MAKE) TARGET=c64 clean - -@$(CD) examples/test-ipv6; $(MAKE) TARGET=c64 clean - -################################################################### -# rules for the ESB port -################################################################### - -.PHONY: esb esb-clean - -esb: - -@$(CD) platform/esb; $(MAKE) all - -esb-clean: - -@$(CD) platform/esb; $(MAKE) clean - -esb-dist: - -esb-examples: -esb-examples-clean: - -################################################################### -# rules for the ethernut1 port -################################################################### - -.PHONY: ethernut1 ethernut1-clean - -ethernut1: -# -@$(CD) platform/ethernut1; $(MAKE) all - -ethernut1-clean: -# -@$(CD) platform/ethernut1; $(MAKE) clean - -ethernut1-dist: - -ethernut1-examples: -ethernut1-examples-clean: - -################################################################### -# rules for the ethernut2 port -################################################################### - -.PHONY: ethernut2 ethernut2-clean - -ethernut2: -# -@$(CD) platform/ethernut2; $(MAKE) all - -ethernut2-clean: -# -@$(CD) platform/ethernut2; $(MAKE) clean - -ethernut2-dist: - -ethernut2-examples: -ethernut2-examples-clean: - -################################################################### -# rules for the GTK port -################################################################### - -.PHONY: gtk gtk-clean - -gtk: - -@$(CD) platform/gtk; $(MAKE) all -gtk-clean: - -@$(CD) platform/gtk; $(MAKE) clean - -gtk-examples: gtk-example-webserver gtk-example-telnet-server gtk-example-test-ipv6 - -gtk-example-telnet-server: - -@$(CD) examples/telnet-server; $(MAKE) TARGET=gtk -gtk-example-webserver: - -@$(CD) examples/webserver; $(MAKE) TARGET=gtk -gtk-example-test-ipv6: - -@$(CD) examples/test-ipv6; $(MAKE) TARGET=gtk - -gtk-examples-clean: - -@$(CD) examples/telnet-server; $(MAKE) TARGET=gtk clean - -@$(CD) examples/webserver; $(MAKE) TARGET=gtk clean - -@$(CD) examples/test-ipv6; $(MAKE) TARGET=gtk clean - -gtk-dist: - -################################################################### -# rules for the minimal-net port -################################################################### - -.PHONY: minimal-net minimal-net-clean - -minimal-net: -# -@$(CD) platform/minimal-net; $(MAKE) all - -minimal-net-clean: -# -@$(CD) platform/minimal-net; $(MAKE) clean - -minimal-net-dist: - -minimal-net-examples: minimal-net-example-telnet-server minimal-net-example-webserver minimal-net-example-test-ipv6 - -minimal-net-example-telnet-server: - -@$(CD) examples/telnet-server; $(MAKE) TARGET=minimal-net -minimal-net-example-webserver: - -@$(CD) examples/webserver; $(MAKE) TARGET=minimal-net -minimal-net-example-test-ipv6: - -@$(CD) examples/test-ipv6; $(MAKE) TARGET=minimal-net - -minimal-net-examples-clean: - -@$(CD) examples/telnet-server; $(MAKE) TARGET=minimal-net clean - -@$(CD) examples/webserver; $(MAKE) TARGET=minimal-net clean - -@$(CD) examples/test-ipv6; $(MAKE) TARGET=minimal-net clean - -################################################################### -# rules for the minimal-ppp port -################################################################### - -.PHONY: minimal-ppp minimal-ppp-clean - -minimal-ppp: - -@$(CD) platform/minimal-ppp; $(MAKE) all - -minimal-ppp-clean: - -@$(CD) platform/minimal-ppp; $(MAKE) clean - -minimal-ppp-dist: - -minimal-ppp-examples: -minimal-ppp-examples-clean: - -################################################################### -# rules for the native port -################################################################### - -.PHONY: native native-clean - -native: -# -@$(CD) platform/native; $(MAKE) all - -native-clean: -# -@$(CD) platform/native; $(MAKE) clean - -native-dist: - -native-examples: native-example-telnet-server native-example-webserver native-example-test-ipv6 - -native-example-telnet-server: - -@$(CD) examples/telnet-server; $(MAKE) TARGET=native -native-example-webserver: - -@$(CD) examples/webserver; $(MAKE) TARGET=native -native-example-test-ipv6: - -@$(CD) examples/test-ipv6; $(MAKE) TARGET=native - -native-examples-clean: - -@$(CD) examples/telnet-server; $(MAKE) TARGET=native clean - -@$(CD) examples/webserver; $(MAKE) TARGET=native clean - -@$(CD) examples/test-ipv6; $(MAKE) TARGET=native clean - -################################################################### -# rules for the netsim port -################################################################### - -.PHONY: netsim netsim-clean - -netsim: -# -@$(CD) platform/netsim; $(MAKE) all - -netsim-clean: -# -@$(CD) platform/netsim; $(MAKE) clean - -netsim-dist: - -netsim-examples: - -netsim-examples-clean: - -@$(CD) examples/telnet-server; $(MAKE) TARGET=netsim clean - -@$(CD) examples/webserver; $(MAKE) TARGET=netsim clean - -@$(CD) examples/test-ipv6; $(MAKE) TARGET=netsim clean diff --git a/backyard/apps/editor/Makefile.editor b/backyard/apps/editor/Makefile.editor deleted file mode 100644 index c976cfe1e..000000000 --- a/backyard/apps/editor/Makefile.editor +++ /dev/null @@ -1,2 +0,0 @@ -editor_src = editor.c memb.c ctk-filedialog.c -editor_dsc = editor-dsc.c diff --git a/backyard/apps/editor/editor-dsc.c b/backyard/apps/editor/editor-dsc.c deleted file mode 100644 index e15606e97..000000000 --- a/backyard/apps/editor/editor-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: editor-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char editoricon_bitmap[3*3*8] = { - 0x00, 0x7e, 0x40, 0x73, 0x46, 0x4c, 0x18, 0x13, - 0x00, 0x00, 0xff, 0x81, 0x34, 0xc9, 0x00, 0xb6, - 0x00, 0x7e, 0x02, 0xce, 0x72, 0x32, 0x18, 0x48, - - 0x30, 0x27, 0x24, 0x20, 0x37, 0x24, 0x20, 0x33, - 0x00, 0x7b, 0x42, 0x00, 0x7b, 0x42, 0x00, 0x3b, - 0x0c, 0x24, 0x24, 0x04, 0xa4, 0x24, 0x04, 0x4c, - - 0x12, 0x19, 0x4c, 0x46, 0x63, 0x40, 0x7c, 0x00, - 0x22, 0x91, 0x00, 0xc4, 0x81, 0xff, 0x00, 0x00, - 0x08, 0x18, 0x32, 0x62, 0xc6, 0x02, 0x3e, 0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char editoricon_textmap[9] = { - 't', 'x', 't', - 'e', 'd', 'i', - 't', 'o', 'r' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon editor_icon = - {CTK_ICON("Editor", editoricon_bitmap, editoricon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(editor_dsc, - "A simple text editor", - "editor.prg", - editor_process, - &editor_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/apps/editor/editor-dsc.h b/backyard/apps/editor/editor-dsc.h deleted file mode 100644 index a044e0649..000000000 --- a/backyard/apps/editor/editor-dsc.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: editor-dsc.h,v 1.1 2007/05/23 23:34:33 oliverschmidt Exp $ - * - */ -#ifndef __EDITOR_DSC_H__ -#define __EDITOR_DSC_H__ - -#include "sys/dsc.h" - -DSC_HEADER(editor_dsc); - -#endif /* __EDITOR_DSC_H__ */ diff --git a/backyard/apps/editor/editor.c b/backyard/apps/editor/editor.c deleted file mode 100644 index eac43cd22..000000000 --- a/backyard/apps/editor/editor.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: editor.c,v 1.1 2007/05/23 23:34:33 oliverschmidt Exp $ - */ -#define EDITOR_CONF_WIDTH 32 -#define EDITOR_CONF_HEIGHT 16 -#define EDITOR_CONF_MAX_FILENAME_LEN 16 - -#include "contiki.h" -#include "contiki-lib.h" -#include "ctk/ctk.h" -#include "cfs/cfs.h" - -#include "lib/ctk-filedialog.h" - -#define ISO_nl 0x0a - -PROCESS(editor_process, "Editor"); - -static struct ctk_window window; - -#define LINE_LEN 60 -#define NUM_LINES EDITOR_CONF_HEIGHT - -struct line { - struct line *next, *prev; - char text[LINE_LEN]; -}; -MEMB(linesmem, struct line, NUM_LINES); - -static struct line *lines; - -static struct { - unsigned char x, y; - struct ctk_label labels[NUM_LINES]; - -} editor_state; - -static struct ctk_button openbutton = - {CTK_BUTTON(0, 0, 4, "Open")}; -static char statustext[EDITOR_CONF_WIDTH + 1]; -static struct ctk_label statuslabel = - {CTK_LABEL(0, EDITOR_CONF_HEIGHT + 2, EDITOR_CONF_WIDTH, 1, statustext)}; - -static struct ctk_menu menu; -static unsigned char menuitem_new, menuitem_open, menuitem_save; - -static char filename[EDITOR_CONF_MAX_FILENAME_LEN]; - - -static struct ctk_filedialog_state filedialog; - -enum { - OPEN_EVENT -}; - -/*---------------------------------------------------------------------------*/ -static void -show_statustext(char *text1, char *text2) -{ - int len; - - len = strlen(text1); - if(len < sizeof(statustext)) { - strncpy(statustext, text1, sizeof(statustext)); - strncpy(statustext + len, text2, sizeof(statustext) - len); - CTK_WIDGET_REDRAW(&statuslabel); - } - -} -/*---------------------------------------------------------------------------*/ -static void -editor_start(void) -{ - unsigned char i; - register struct ctk_label *label; - struct line *l, *m; - - m = NULL; - - for(i = 0; i < NUM_LINES; ++i) { - label = &editor_state.labels[i]; - l = (struct line *)memb_alloc(&linesmem); - - if(l != NULL) { - l->next = NULL; - l->prev = m; - if(m == NULL) { - /* First line */ - lines = l; - } else { - m->next = l; - } - CTK_LABEL_NEW(label, 0, i + 1, EDITOR_CONF_WIDTH, 1, l->text); - CTK_WIDGET_SET_FLAG(label, CTK_WIDGET_FLAG_MONOSPACE); - CTK_WIDGET_ADD(&window, label); - } - m = l; - } -} -/*---------------------------------------------------------------------------*/ -static void -editor_eventhandler(process_event_t ev, process_data_t data) -{ - char *textptr, *textptr2; - unsigned char len; - - if(ev == ctk_signal_keypress) { - /* CTK_WIDGET_FOCUS(t->label.window, &t->label);*/ - textptr = &(editor_state.labels[editor_state.y].text[editor_state.x]); - *textptr &= 0x7f; - CTK_WIDGET_REDRAW(&(editor_state.labels[editor_state.y])); - - switch((ctk_arch_key_t)data) { - case CH_CURS_DOWN: - ++editor_state.y; - if(editor_state.y >= EDITOR_CONF_HEIGHT) { - editor_state.y = EDITOR_CONF_HEIGHT - 1; - } - break; - case CH_CURS_UP: - if(editor_state.y > 0) { - --editor_state.y; - } - break; - case CH_CURS_RIGHT: - if(editor_state.x < strlen(editor_state.labels[editor_state.y].text)) { - ++editor_state.x; - } - break; - case CH_CURS_LEFT: - if(editor_state.x > 0) { - --editor_state.x; - } else { - if(editor_state.y > 0) { - --editor_state.y; - editor_state.x = strlen(editor_state.labels[editor_state.y].text); - } - } - break; - case CH_ENTER: - editor_state.x = 0; - ++editor_state.y; - if(editor_state.y >= EDITOR_CONF_HEIGHT) { - editor_state.y = EDITOR_CONF_HEIGHT - 1; - } - break; - case CH_DEL: - /* len = t->label.w - t->xpos; - if(t->xpos > 0 && len > 0) { - strncpy(textptr - 1, textptr, - len); - *(textptr + len - 1) = 0; - --t->xpos; - }*/ - break; - default: - len = EDITOR_CONF_WIDTH - editor_state.x; - if(len > 0) { - textptr2 = textptr + len - 1; - while(textptr2 + 1 > textptr) { - *(textptr2 + 1) = *textptr2; - --textptr2; - } - - *textptr = (char)data; - ++editor_state.x; - if(editor_state.x == EDITOR_CONF_WIDTH) { - editor_state.x = 0; - if(editor_state.y < EDITOR_CONF_HEIGHT - 1) { - ++editor_state.y; - } - } - } - break; - } - textptr = &(editor_state.labels[editor_state.y].text[editor_state.x]); - *textptr |= 0x80; - CTK_WIDGET_REDRAW(&(editor_state.labels[editor_state.y])); - /* } else if(s == ctk_signal_widget_activate && - data == (process_data_t)t) { - textptr = &(t->label.text[t->ypos * t->label.w + t->xpos]); - *textptr &= 0x7f; - t->xpos = 0; - if(t->ypos < t->label.h - 1) { - ++t->ypos; - } - textptr = &(t->label.text[t->ypos * t->label.w + t->xpos]); - *textptr |= 0x80; - CTK_WIDGET_REDRAW(&t->label);*/ - - - } -} -/*---------------------------------------------------------------------------*/ -static void -open_file(char *name) -{ - int fd; - struct line *l; - char line[LINE_LEN]; - char *cptr; - int i, len, clen; - - fd = cfs_open(name, 0); - if(fd < 0) { - show_statustext("Could not open file ", name); - return; - } - - l = lines; - cptr = l->text; - clen = LINE_LEN; - - do { - /* Read a portion of the input file */ - len = cfs_read(fd, line, LINE_LEN); - - /* Split the input into lines. */ - for(i = 0; i < len; ++i) { - if(line[i] == ISO_nl || - clen == 0) { - *cptr = 0; - l = l->next; - if(l != NULL) { - cptr = l->text; - clen = LINE_LEN; - } else { - len = -1; - break; - } - } else { - *cptr++ = line[i]; - --clen; - } - } - } while(len > 0); - - - cfs_close(fd); -} -/*---------------------------------------------------------------------------*/ -static void -quit(void) -{ - ctk_window_close(&window); - process_exit(&editor_process); - LOADER_UNLOAD(); -} -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(editor_process, ev, data) -{ - - PROCESS_BEGIN(); - - memb_init(&linesmem); - - ctk_window_new(&window, - EDITOR_CONF_WIDTH + 2, - EDITOR_CONF_HEIGHT + 3, - "Editor"); - - CTK_WIDGET_ADD(&window, &openbutton); - CTK_WIDGET_ADD(&window, &statuslabel); - - CTK_WIDGET_FOCUS(&window, &openbutton); - - editor_start(); - - ctk_window_open(&window); - - while(1) { - PROCESS_WAIT_EVENT(); - - if(ctk_filedialog_eventhandler(&filedialog, ev, data)) { - - } else { - if(ev == PROCESS_EVENT_EXIT) { - quit(); - } else if(ev == OPEN_EVENT) { - /* printf("Open file '%s'\n", (char *)data);*/ - open_file((char *)data); - ctk_window_redraw(&window); - } else { - - if(ev == ctk_signal_window_close && - data == (process_data_t)&window) { - quit(); - } else if(ev == ctk_signal_widget_activate) { - if(data == (process_data_t)&openbutton) { - ctk_filedialog_open(&filedialog, "Open", OPEN_EVENT); - } - } else { - editor_eventhandler(ev, data); - } - } - } - } - - PROCESS_END(); -} -/*---------------------------------------------------------------------------*/ -/*LOADER_INIT_FUNC(editor_init, arg) -{ - arg_free(arg); - id = ek_start(&p); -}*/ -/*---------------------------------------------------------------------------*/ diff --git a/backyard/apps/webserver/httpd-socket.c b/backyard/apps/webserver/httpd-socket.c deleted file mode 100644 index 199fa9e3a..000000000 --- a/backyard/apps/webserver/httpd-socket.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: httpd-socket.c,v 1.2 2010/10/19 18:29:03 adamdunkels Exp $ - */ - -#include "contiki.h" -#include "cfs.h" -#include "socket.h" - -struct httpd_state { - struct socket sin, sout; - char inputbuf[100]; - char filename[40]; - char state; - int fd; - int ret; - char outputbuf[UIP_TCP_MSS]; -}; - -#define STATE_WAITING 0 -#define STATE_OUTPUT 1 - -#define SEND_STRING(s, str) SOCKET_SEND(s, str, strlen(str)) -MEMB(conns, struct httpd_state, 8); - - -/*---------------------------------------------------------------------------*/ -static unsigned short -generate(void *state) -{ - struct httpd_state *s = (struct httpd_state *)state; - - memcpy(uip_appdata, s->outputbuf, s->ret); - - return s->ret; -} -/*---------------------------------------------------------------------------*/ -static -PT_THREAD(handle_output(struct httpd_state *s)) -{ - char *ptr; - - SOCKET_BEGIN(&s->sout); - - - s->fd = cfs_open(s->filename, CFS_READ); - if(s->fd < 0) { - SEND_STRING(&s->sout, "HTTP/1.0 404 Not found\r\n"); - SOCKET_CLOSE_EXIT(&s->sout); - } else { - SEND_STRING(&s->sout, "HTTP/1.0 200 Found\r\n"); - } - ptr = strrchr(s->filename, '.'); - if(strncmp(".html", ptr, 5) == 0) { - SEND_STRING(&s->sout, "Content-type: text/html\r\n"); - } else if(strncmp(".css", ptr, 4) == 0) { - SEND_STRING(&s->sout, "Content-type: text/css\r\n"); - } else if(strncmp(".png", ptr, 4) == 0) { - SEND_STRING(&s->sout, "Content-type: image/png\r\n"); - } else if(strncmp(".jpg", ptr, 4) == 0) { - SEND_STRING(&s->sout, "Content-type: image/jpeg\r\n"); - } else { - SEND_STRING(&s->sout, "Content-type: text/plain\r\n"); - } - SEND_STRING(&s->sout, "Server: Contiki/1.2-devel0\r\n\r\n"); - - do { - s->ret = cfs_read(s->fd, s->outputbuf, sizeof(s->outputbuf)); - if(s->ret > 0) { - SOCKET_GENERATE_SEND(&s->sout, generate, s); - /* SOCKET_SEND(&s->sout, s->outputbuf, s->ret);*/ - } - } while(s->ret > 0); - - - cfs_close(s->filename); - SOCKET_CLOSE(&s->sout); - - SOCKET_END(&s->sout); -} -/*---------------------------------------------------------------------------*/ -static -PT_THREAD(handle_input(struct httpd_state *s)) -{ - SOCKET_BEGIN(&s->sin); - - SOCKET_READTO(&s->sin, ' '); - - - if(strncmp(s->inputbuf, "GET ", 4) != 0) { - SOCKET_CLOSE_EXIT(&s->sin); - } - SOCKET_READTO(&s->sin, ' '); - - if(s->inputbuf[0] != '/') { - SOCKET_CLOSE_EXIT(&s->sin); - } - - if(s->inputbuf[1] == ' ') { - strncpy(s->filename, "index.html", sizeof(s->filename)); - } else { - s->inputbuf[SOCKET_DATALEN(&s->sin) - 1] = 0; - strncpy(s->filename, &s->inputbuf[1], sizeof(s->filename)); - } - - s->state = STATE_OUTPUT; - - while(1) { - SOCKET_READTO(&s->sin, '\n'); - - if(strncmp(s->inputbuf, "Referer:", 8) == 0) { - s->inputbuf[SOCKET_DATALEN(&s->sin) - 2] = 0; - webserver_log(&s->inputbuf[9]); - } - } - - SOCKET_END(&s->sin); -} -/*---------------------------------------------------------------------------*/ -static void -handle_connection(struct httpd_state *s) -{ - handle_input(s); - if(s->state == STATE_OUTPUT) { - handle_output(s); - } -} -/*---------------------------------------------------------------------------*/ -void -httpd_appcall(void *state) -{ - struct httpd_state *s = (struct httpd_state *)state; - - - if(uip_closed() || uip_aborted() || uip_timedout()) { - if(s != NULL) { - memb_free(&conns, s); - } - } else if(uip_connected()) { - s = (struct httpd_state *)memb_alloc(&conns); - if(s == NULL) { - uip_abort(); - return; - } - tcp_markconn(uip_conn, s); - SOCKET_INIT(&s->sin, s->inputbuf, sizeof(s->inputbuf) - 1); - SOCKET_INIT(&s->sout, s->inputbuf, sizeof(s->inputbuf) - 1); - s->state = STATE_WAITING; - handle_connection(s); - } else if(s != NULL) { - handle_connection(s); - } else { - uip_abort(); - } -} -/*---------------------------------------------------------------------------*/ -void -httpd_init(void) -{ - tcp_listen(UIP_HTONS(80)); - memb_init(&conns); -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/core/ctk/ctk-conio-service.c b/backyard/core/ctk/ctk-conio-service.c deleted file mode 100644 index 860d33585..000000000 --- a/backyard/core/ctk/ctk-conio-service.c +++ /dev/null @@ -1,569 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-conio-service.c,v 1.1 2007/05/23 23:19:10 oliverschmidt Exp $ - * - */ - -#include - -#include "ctk/ctk.h" -#include "ctk/ctk-draw.h" - -#include "ctk/ctk-draw-service.h" - -#include "contiki-conf.h" -#include - -#ifndef NULL -#define NULL (void *)0 -#endif /* NULL */ - -static unsigned char sizex, sizey; - -/*unsigned char ctk_draw_windowborder_height = 1; -unsigned char ctk_draw_windowborder_width = 1; -unsigned char ctk_draw_windowtitle_height = 1;*/ - - -/*-----------------------------------------------------------------------------------*/ -static void -cputsn(char *str, unsigned char len) -{ - char c; - - while(len > 0) { - --len; - c = *str; - if(c == 0) { - break; - } - cputc(c); - ++str; - } -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_init(void) -{ - (void)bgcolor(SCREENCOLOR); - (void)bordercolor(BORDERCOLOR); - screensize(&sizex, &sizey); - ctk_draw_clear(0, sizey); -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_widget(struct ctk_widget *w, - unsigned char x, unsigned char y, - unsigned char clipx, - unsigned char clipy, - unsigned char clipy1, unsigned char clipy2, - unsigned char focus) -{ - unsigned char xpos, ypos, xscroll; - unsigned char i, j; - char c, *text; - unsigned char len, wfocus; - - wfocus = 0; - if(focus & CTK_FOCUS_WINDOW) { - (void)textcolor(WIDGETCOLOR_FWIN); - if(focus & CTK_FOCUS_WIDGET) { - (void)textcolor(WIDGETCOLOR_FOCUS); - wfocus = 1; - } - } else if(focus & CTK_FOCUS_DIALOG) { - (void)textcolor(WIDGETCOLOR_DIALOG); - if(focus & CTK_FOCUS_WIDGET) { - (void)textcolor(WIDGETCOLOR_FOCUS); - wfocus = 1; - } - } else { - (void)textcolor(WIDGETCOLOR); - } - - xpos = x + w->x; - ypos = y + w->y; - - switch(w->type) { - case CTK_WIDGET_SEPARATOR: - if(ypos >= clipy1 && ypos < clipy2) { - chlinexy(xpos, ypos, w->w); - } - break; - case CTK_WIDGET_LABEL: - text = w->widget.label.text; - for(i = 0; i < w->h; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - gotoxy(xpos, ypos); - cputsn(text, w->w); - if(w->w - (wherex() - xpos) > 0) { - cclear(w->w - (wherex() - xpos)); - } - } - ++ypos; - text += w->w; - } - break; - case CTK_WIDGET_BUTTON: - if(ypos >= clipy1 && ypos < clipy2) { - revers(wfocus != 0); - cputcxy(xpos, ypos, '['); - cputsn(w->widget.button.text, w->w); - cputc(']'); - revers(0); - } - break; - case CTK_WIDGET_HYPERLINK: - if(ypos >= clipy1 && ypos < clipy2) { - revers(wfocus == 0); - gotoxy(xpos, ypos); - (void)textcolor(WIDGETCOLOR_HLINK); - cputsn(w->widget.button.text, w->w); - revers(0); - } - break; - case CTK_WIDGET_TEXTENTRY: - text = w->widget.textentry.text; - xscroll = 0; - if(w->widget.textentry.xpos >= w->w - 1) { - xscroll = w->widget.textentry.xpos - w->w + 1; - } - for(j = 0; j < w->h; ++j) { - if(ypos >= clipy1 && ypos < clipy2) { - if(w->widget.textentry.state == CTK_TEXTENTRY_EDIT && - w->widget.textentry.ypos == j) { - revers(0); - cputcxy(xpos, ypos, '>'); - c = 1; - for(i = 0; i < w->w; ++i) { - if(c != 0) { - c = text[i + xscroll]; - } - revers(i == w->widget.textentry.xpos - xscroll); - if(c == 0) { - cputc(' '); - } else { - cputc(c); - } - } - revers(0); - cputc('<'); - } else { - revers(wfocus != 0 && j == w->widget.textentry.ypos); - cvlinexy(xpos, ypos, 1); - gotoxy(xpos + 1, ypos); - cputsn(text, w->w); - i = wherex(); - if(i - xpos - 1 < w->w) { - cclear(w->w - (i - xpos) + 1); - } - cvline(1); - } - } - ++ypos; - text += w->widget.textentry.len + 1; - } - revers(0); - break; - case CTK_WIDGET_ICON: - if(ypos >= clipy1 && ypos < clipy2) { - revers(wfocus != 0); - gotoxy(xpos, ypos); - if(w->widget.icon.textmap != NULL) { - for(i = 0; i < 3; ++i) { - gotoxy(xpos, ypos); - if(ypos >= clipy1 && ypos < clipy2) { - cputc(w->widget.icon.textmap[0 + 3 * i]); - cputc(w->widget.icon.textmap[1 + 3 * i]); - cputc(w->widget.icon.textmap[2 + 3 * i]); - } - ++ypos; - } - } - x = xpos; - - len = (unsigned char)strlen(w->widget.icon.title); - if(x + len >= sizex) { - x = sizex - len; - } - - gotoxy(x, ypos); - if(ypos >= clipy1 && ypos < clipy2) { - cputs(w->widget.icon.title); - } - revers(0); - } - break; - - default: - break; - } -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_widget(struct ctk_widget *w, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - struct ctk_window *win = w->window; - unsigned char posx, posy; - - posx = win->x + 1; - posy = win->y + 2; - - if(w == win->focused) { - focus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, posx, posy, - posx + win->w, - posy + win->h, - clipy1, clipy2, - focus); - -#ifdef CTK_CONIO_CONF_UPDATE - CTK_CONIO_CONF_UPDATE(); -#endif /* CTK_CONIO_CONF_UPDATE */ -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear_window(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - unsigned char i; - unsigned char h; - - if(focus & CTK_FOCUS_WINDOW) { - (void)textcolor(WINDOWCOLOR_FOCUS); - } else { - (void)textcolor(WINDOWCOLOR); - } - - h = window->y + 2 + window->h; - - /* Clear window contents. */ - for(i = window->y + 2; i < h; ++i) { - if(i >= clipy1 && i < clipy2) { - cclearxy(window->x + 1, i, window->w); - } - } -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_window_contents(struct ctk_window *window, unsigned char focus, - unsigned char clipy1, unsigned char clipy2, - unsigned char x1, unsigned char x2, - unsigned char y1, unsigned char y2) -{ - struct ctk_widget *w; - unsigned char wfocus; - - /* Draw inactive widgets. */ - for(w = window->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - focus); - } - - /* Draw active widgets. */ - for(w = window->active; w != NULL; w = w->next) { - wfocus = focus; - if(w == window->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - wfocus); - } - -#ifdef CTK_CONIO_CONF_UPDATE - CTK_CONIO_CONF_UPDATE(); -#endif /* CTK_CONIO_CONF_UPDATE */ -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_window(struct ctk_window *window, unsigned char focus, - unsigned char clipy1, unsigned char clipy2, - unsigned char draw_borders) -{ - unsigned char x, y; - unsigned char h; - unsigned char x1, y1, x2, y2; - - if(window->y + 1 >= clipy2) { - return; - } - - x = window->x; - y = window->y + 1; - x1 = x + 1; - y1 = y + 1; - x2 = x1 + window->w; - y2 = y1 + window->h; - - if(draw_borders) { - - /* Draw window frame. */ - if(focus & CTK_FOCUS_WINDOW) { - (void)textcolor(WINDOWCOLOR_FOCUS); - } else { - (void)textcolor(WINDOWCOLOR); - } - - if(y >= clipy1) { - cputcxy(x, y, CH_ULCORNER); - gotoxy(wherex() + window->titlelen + CTK_CONF_WINDOWMOVE * 2, wherey()); - chline(window->w - (wherex() - x) - 2); - cputcxy(x2, y, CH_URCORNER); - } - - h = window->h; - - if(clipy1 > y1) { - if(clipy1 - y1 < h) { - h = clipy1 - y1; - y1 = clipy1; - } else { - h = 0; - } - } - - if(clipy2 < y1 + h) { - if(y1 >= clipy2) { - h = 0; - } else { - h = clipy2 - y1; - } - } - - cvlinexy(x, y1, h); - cvlinexy(x2, y1, h); - - if(y + window->h >= clipy1 && - y + window->h < clipy2) { - cputcxy(x, y2, CH_LLCORNER); - chlinexy(x1, y2, window->w); - cputcxy(x2, y2, CH_LRCORNER); - } - } - - draw_window_contents(window, focus, clipy1, clipy2, - x1, x2, y + 1, y2); -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_dialog(struct ctk_window *dialog) -{ - unsigned char x, y; - unsigned char i; - unsigned char x1, y1, x2, y2; - - (void)textcolor(DIALOGCOLOR); - - x = dialog->x; - y = dialog->y + 1; - - x1 = x + 1; - y1 = y + 1; - x2 = x1 + dialog->w; - y2 = y1 + dialog->h; - - /* Draw dialog frame. */ - cvlinexy(x, y1, - dialog->h); - cvlinexy(x2, y1, - dialog->h); - - chlinexy(x1, y, - dialog->w); - chlinexy(x1, y2, - dialog->w); - - cputcxy(x, y, CH_ULCORNER); - cputcxy(x, y2, CH_LLCORNER); - cputcxy(x2, y, CH_URCORNER); - cputcxy(x2, y2, CH_LRCORNER); - - /* Clear dialog contents. */ - for(i = y1; i < y2; ++i) { - cclearxy(x1, i, dialog->w); - } - - draw_window_contents(dialog, CTK_FOCUS_DIALOG, 0, sizey, - x1, x2, y1, y2); -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear(unsigned char y1, unsigned char y2) -{ - unsigned char i; - - (void)textcolor(BACKGROUNDCOLOR); - for(i = y1; i < y2; ++i) { - cclearxy(0, i, sizex); - } -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_menu(struct ctk_menu *m, unsigned char open) -{ - unsigned char x, x2, y; - - if(open) { - x = x2 = wherex(); - if(x2 + CTK_CONF_MENUWIDTH > sizex) { - x2 = sizex - CTK_CONF_MENUWIDTH; - } - - for(y = 0; y < m->nitems; ++y) { - if(y == m->active) { - (void)textcolor(ACTIVEMENUITEMCOLOR); - revers(0); - } else { - (void)textcolor(MENUCOLOR); - revers(1); - } - gotoxy(x2, y + 1); - if(m->items[y].title[0] == '-') { - chline(CTK_CONF_MENUWIDTH); - } else { - cputs(m->items[y].title); - } - if(x2 + CTK_CONF_MENUWIDTH > wherex()) { - cclear(x2 + CTK_CONF_MENUWIDTH - wherex()); - } - } - - gotoxy(x, 0); - (void)textcolor(OPENMENUCOLOR); - revers(0); - } - - cputs(m->title); - cputc(' '); - (void)textcolor(MENUCOLOR); - revers(1); -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_menus(struct ctk_menus *menus) -{ - struct ctk_menu *m; - - /* Draw menus */ - (void)textcolor(MENUCOLOR); - gotoxy(0, 0); - revers(1); - cputc(' '); - for(m = menus->menus->next; m != NULL; m = m->next) { - draw_menu(m, m == menus->open); - } - - /* Draw desktopmenu */ - if(wherex() + strlen(menus->desktopmenu->title) + 1 >= sizex) { - gotoxy(sizex - (unsigned char)strlen(menus->desktopmenu->title) - 1, 0); - } else { - cclear(sizex - wherex() - - (unsigned char)strlen(menus->desktopmenu->title) - 1); - } - draw_menu(menus->desktopmenu, menus->desktopmenu == menus->open); - - revers(0); -} -/*-----------------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_height(void) -{ - return sizey; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_width(void) -{ - return sizex; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_xtoc(unsigned short x) -{ - return x / 8; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_ytoc(unsigned short y) -{ - return y / 8; -} -/*-----------------------------------------------------------------------------------*/ - -SERVICE(ctk_conio_service, ctk_draw_service, -{ 1, - 1, - 1, - s_ctk_draw_init, - s_ctk_draw_clear, - s_ctk_draw_clear_window, - s_ctk_draw_window, - s_ctk_draw_dialog, - s_ctk_draw_widget, - s_ctk_draw_menus, - s_ctk_draw_width, - s_ctk_draw_height, - s_ctk_mouse_xtoc, - s_ctk_mouse_ytoc }); - -/*--------------------------------------------------------------------------*/ - -PROCESS(ctk_conio_service_process, "CTK CONIO service"); - -PROCESS_THREAD(ctk_conio_service_process, ev, data) { - PROCESS_BEGIN(); - - s_ctk_draw_init(); - ctk_restore(); - - SERVICE_REGISTER(ctk_conio_service); - - while(ev != PROCESS_EVENT_SERVICE_REMOVED && - ev != PROCESS_EVENT_EXIT) { - PROCESS_WAIT_EVENT(); - } - - SERVICE_REMOVE(ctk_conio_service); - - PROCESS_END(); -} -/*--------------------------------------------------------------------------*/ diff --git a/backyard/core/ctk/ctk-conio-service.h b/backyard/core/ctk/ctk-conio-service.h deleted file mode 100644 index ed29db18b..000000000 --- a/backyard/core/ctk/ctk-conio-service.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Oliver Schmidt - * - * $Id: ctk-conio-service.h,v 1.1 2007/05/23 23:19:13 oliverschmidt Exp $ - */ -#ifndef __CTK_CONIO_SERVICE_H__ -#define __CTK_CONIO_SERVICE_H__ - -#include "contiki.h" - -PROCESS_NAME(ctk_conio_service_process); - -#endif /* __CTK_CONIO_SERVICE_H__ */ diff --git a/backyard/core/ctk/ctk-draw-service.h b/backyard/core/ctk/ctk-draw-service.h deleted file mode 100644 index b323c9a9b..000000000 --- a/backyard/core/ctk/ctk-draw-service.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: ctk-draw-service.h,v 1.1 2007/05/23 23:19:13 oliverschmidt Exp $ - */ -#ifndef __CTK_DRAW_SERVICE_H__ -#define __CTK_DRAW_SERVICE_H__ - - -#include "ctk/ctk.h" -#include "sys/service.h" - -#define ctk_draw_service_name "CTK driver" -SERVICE_INTERFACE(ctk_draw_service, { - unsigned char windowborder_width; - unsigned char windowborder_height; - unsigned char windowtitle_height; - - void (* draw_init)(void); - void (* draw_clear)(unsigned char clipy1, unsigned char clipy2); - void (* draw_clear_window)(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2); - void (* draw_window)(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2, - unsigned char draw_borders); - void (* draw_dialog)(struct ctk_window *dialog); - void (* draw_widget)(struct ctk_widget *widget, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2); - void (* draw_menus)(struct ctk_menus *menus); - - unsigned char (* width)(void); - unsigned char (* height)(void); - - unsigned short (* mouse_xtoc)(unsigned short); - unsigned short (* mouse_ytoc)(unsigned short); -}); - -#endif /* __CTK_DRAW_SERVICE_H__ */ diff --git a/backyard/core/ctk/ctk-draw.c b/backyard/core/ctk/ctk-draw.c deleted file mode 100644 index a5e811178..000000000 --- a/backyard/core/ctk/ctk-draw.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: ctk-draw.c,v 1.1 2007/05/23 23:19:13 oliverschmidt Exp $ - */ - - -#include "ctk/ctk-draw.h" -#include "ctk/ctk.h" - -#include "ctk/ctk-draw-service.h" - - -unsigned char ctk_draw_windowborder_width = 1, - ctk_draw_windowborder_height = 1, - ctk_draw_windowtitle_height = 1; - -/*---------------------------------------------------------------------------*/ -void -ctk_draw_init(void) -{ - const struct ctk_draw_service *i; - struct service *s; - - s = SERVICE_FIND(ctk_draw_service); - - if(s != NULL) { - i = s->interface; - - i->draw_init(); - ctk_draw_windowborder_width = i->windowborder_width; - ctk_draw_windowborder_height = i->windowborder_height; - ctk_draw_windowtitle_height = i->windowtitle_height; - } -} -/*---------------------------------------------------------------------------*/ -void -ctk_draw_clear(unsigned char clipy1, unsigned char clipy2) -{ - SERVICE_CALL(ctk_draw_service, draw_clear(clipy1, clipy2)); -} -/*---------------------------------------------------------------------------*/ -void -ctk_draw_clear_window(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - SERVICE_CALL(ctk_draw_service, draw_clear_window(window, focus, - clipy1, clipy2)); -} -/*---------------------------------------------------------------------------*/ -void -ctk_draw_window(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2, - unsigned char draw_borders) -{ - SERVICE_CALL(ctk_draw_service, draw_window(window, focus, - clipy1, clipy2, draw_borders)); -} -/*---------------------------------------------------------------------------*/ -void -ctk_draw_dialog(struct ctk_window *dialog) -{ - SERVICE_CALL(ctk_draw_service, draw_dialog(dialog)); -} -/*---------------------------------------------------------------------------*/ -void -ctk_draw_widget(struct ctk_widget *widget, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - SERVICE_CALL(ctk_draw_service, draw_widget(widget, focus, - clipy1, clipy2)); -} -/*---------------------------------------------------------------------------*/ -void -ctk_draw_menus(struct ctk_menus *menus) -{ - SERVICE_CALL(ctk_draw_service, draw_menus(menus)); -} -/*---------------------------------------------------------------------------*/ -unsigned char -ctk_draw_width(void) -{ - struct service *s; - - s = SERVICE_FIND(ctk_draw_service); - if(s != NULL) { - return ((struct ctk_draw_service *)s->interface)->width(); - } - - return 40; -} -/*---------------------------------------------------------------------------*/ -unsigned char -ctk_draw_height(void) -{ - struct service *s; - - s = SERVICE_FIND(ctk_draw_service); - if(s != NULL) { - return ((struct ctk_draw_service *)s->interface)->height(); - } - - return 24; -} -/*---------------------------------------------------------------------------*/ -unsigned short -ctk_mouse_xtoc(unsigned short x) -{ - struct service *s; - - s = SERVICE_FIND(ctk_draw_service); - if(s != NULL) { - return ((struct ctk_draw_service *)s->interface)->mouse_xtoc(x); - } - - return 0; -} -/*---------------------------------------------------------------------------*/ -unsigned short -ctk_mouse_ytoc(unsigned short y) -{ - struct service *s; - - s = SERVICE_FIND(ctk_draw_service); - if(s != NULL) { - return ((struct ctk_draw_service *)s->interface)->mouse_ytoc(y); - } - - return 0; -} -/*---------------------------------------------------------------------------*/ -void -ctk_draw_quit(void) -{ - /* process_post(service.id, EK_EVENT_REQUEST_EXIT, NULL);*/ - /* process_service_reset(&service); */ -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/core/ctk/ctk-graphic-draw.h b/backyard/core/ctk/ctk-graphic-draw.h deleted file mode 100644 index 30b18634c..000000000 --- a/backyard/core/ctk/ctk-graphic-draw.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: ctk-graphic-draw.h,v 1.1 2007/05/23 23:19:13 oliverschmidt Exp $ - */ -#ifndef __CTK_GRAPHIC_DRAW_H__ -#define __CTK_GRAPHIC_DRAW_H__ - -enum { - CTK_GRAPHIC_DRAW_FONT_NORMAL, - CTK_GRAPHIC_DRAW_FONT_BOLD, - CTK_GRAPHIC_DRAW_FONT_MENU, - CTK_GRAPHIC_DRAW_FONT_MONOSPACE, - CTK_GRAPHIC_DRAW_FONT_MONOSPACE_BOLD, -}; - -enum { - CTK_GRAPHIC_DRAW_COLOR_WHITE, - CTK_GRAPHIC_DRAW_COLOR_LIGHTGRAY, - CTK_GRAPHIC_DRAW_COLOR_MIDGRAY, - CTK_GRAPHIC_DRAW_COLOR_DARKGRAY, - CTK_GRAPHIC_DRAW_COLOR_BLACK, - CTK_GRAPHIC_DRAW_COLOR_BLUE, -} - -/*struct ctk_graphic_draw_font; - -extern struct ctk_graphic_draw_font ctk_graphic_draw_font_normal, - ctk_graphic_draw_font_bold, - ctk_graphic_draw_font_menu, - ctk_graphic_draw_font_monospace, - ctk_graphic_draw_font_monospace_bold; - -struct ctk_graphic_draw_color; - -extern struct ctk_graphic_draw_color ctk_graphic_draw_color_white, - ctk_graphic_draw_color_lightgray, - ctk_graphic_draw_color_midgray, - ctk_graphic_draw_color_darkgray, - ctk_graphic_draw_color_ddarkgray, - ctk_graphic_draw_color_black, - ctk_graphic_draw_color_blue; -*/ - -void ctk_graphic_draw_init(void); - -int ctk_graphic_draw_string_width(unsigned char font, - char *str, unsigned char monospace); - -void ctk_graphic_draw_string(unsigned char font, - unsigned char color, - unsigned int x, - unsigned int y, - char *str, - unsigned char monospace); - -void ctk_graphic_draw_line(unsigned char color, - unsigned int x1, unsigned int y1, - unsigned int x2, unsigned int y2); - -void ctk_graphic_draw_rect(unsigned char color, - unsigned char filled, - unsigned int x1, unsigned int y1, - unsigned int width, unsigned int height); - - -#endif /* __CTK_GRAPHIC_DRAW_H__ */ diff --git a/backyard/core/ctk/ctk-graphic.c b/backyard/core/ctk/ctk-graphic.c deleted file mode 100644 index b075150d2..000000000 --- a/backyard/core/ctk/ctk-graphic.c +++ /dev/null @@ -1,809 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: ctk-graphic.c,v 1.1 2007/05/23 23:19:13 oliverschmidt Exp $ - * - */ - -#include "ctk-draw-service.h" - -#include "ctk-graphic-draw.h" - -#include "ctk-graphic.h" - -#include - - -#define WINDOWBORDER_WIDTH 1 -#define WINDOWBORDER_HEIGHT 1 -#define WINDOWTITLE_HEIGHT 3 -#define MENU_HEIGHT 1 -#define MENUBAR_HEIGHT 12 - -#define FONT_BASELINE 12 - -#define MENUBAR_FONT_BASELINE 7 - -#define RASTER_X 8 -#define RASTER_Y 14 - -#define BUTTON_HEIGHT 12 -#define BUTTON_X_BORDER 4 -#define BUTTON_Y_BORDER 1 - -#define TEXTENTRY_HEIGHT 12 -#define TEXTENTRY_X_BORDER 4 -#define TEXTENTRY_Y_BORDER 1 - -static GdkGC *white, *lightgray, *midgray, *darkgray, *ddarkgray, *black, - *blue; - -static GdkPixbuf *background, *windowborder, *menubar; - -static void -draw_widget(struct ctk_widget *w, - unsigned char winx, - unsigned char winy, - unsigned char clipx, - unsigned char clipy, - unsigned char clipy1, - unsigned char clipy2, - unsigned char focus); - - -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_init(void) -{ - GtkWidget *image; - - image = gtk_image_new_from_file("background.png"); - background = gtk_image_get_pixbuf(GTK_IMAGE(image)); - - image = gtk_image_new_from_file("windowborder.png"); - windowborder = gtk_image_get_pixbuf(GTK_IMAGE(image)); - - image = gtk_image_new_from_file("menubar.png"); - menubar = gtk_image_get_pixbuf(GTK_IMAGE(image)); - - ctk_graphic_draw_init(); -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear(unsigned char y1, unsigned char y2) -{ - if(background == NULL) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - darkgray, - TRUE, - 0, - y1 * RASTER_Y + MENUBAR_HEIGHT, - CTK_GTKSIM_SCREEN_WIDTH, - (y2 - y1) * RASTER_Y); - } else { - gdk_draw_pixbuf(ctk_gtksim_pixmap, - darkgray, - background, - 0, - y1 * RASTER_Y, - 0, - y1 * RASTER_Y + MENUBAR_HEIGHT, - CTK_GTKSIM_SCREEN_WIDTH, - (y2 - y1) * RASTER_Y, - NULL, 0, 0); - } -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear_window(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - int x, y; - - x = window->x; - y = window->y + MENU_HEIGHT; - - /* Clear window */ - if(focus == CTK_FOCUS_WINDOW) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - x * RASTER_X - 1, - y * RASTER_Y - 1 + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X + 2, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y + 2); - } else { - gdk_draw_rectangle(ctk_gtksim_pixmap, - lightgray, - TRUE, - x * RASTER_X - 1, - y * RASTER_Y - 1 + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X + 2, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y + 2); - } -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_window(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - struct ctk_widget *w; - unsigned char wfocus; - int x, y, x1, y1, x2, y2; - - x = window->x; - y = window->y + MENU_HEIGHT; - - x1 = x + WINDOWBORDER_WIDTH; - y1 = y + WINDOWTITLE_HEIGHT; - x2 = x1 + window->w; - y2 = y1 + window->h; - - /* Draw window border */ - gdk_draw_rectangle(ctk_gtksim_pixmap, - darkgray, - FALSE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y); - - if(ctk_mode_get() == CTK_MODE_WINDOWMOVE) { - if(focus == CTK_FOCUS_WINDOW) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - x * RASTER_X + 1, - y * RASTER_Y + MENUBAR_HEIGHT + 1, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X - 2, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y - 2); - } else { - gdk_draw_rectangle(ctk_gtksim_pixmap, - midgray, - TRUE, - x * RASTER_X + 1, - y * RASTER_Y + MENUBAR_HEIGHT + 1, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X - 2, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y - 2); - } - return; - } - - if(windowborder == NULL) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - midgray, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X, - WINDOWTITLE_HEIGHT * RASTER_Y); - } else { - gdk_draw_pixbuf(ctk_gtksim_pixmap, - midgray, - windowborder, - 0, 0, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X, - WINDOWTITLE_HEIGHT * RASTER_Y, - NULL, 0, 0); - } - - - gdk_draw_line(ctk_gtksim_pixmap, - darkgray, - x * RASTER_X, - (y + WINDOWTITLE_HEIGHT) * RASTER_Y - 1 + MENUBAR_HEIGHT, - (x + window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X, - (y + WINDOWTITLE_HEIGHT) * RASTER_Y - 1 + MENUBAR_HEIGHT); - - - /* Draw inactive widgets. */ - for(w = window->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - focus); - } - - /* Draw active widgets. */ - for(w = window->active; w != NULL; w = w->next) { - wfocus = focus; - if(w == window->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - wfocus); - } - - ctk_gtksim_set_redrawflag(); -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_dialog(struct ctk_window *window) -{ - struct ctk_widget *w; - unsigned char wfocus, focus; - int x, y, x1, y1, x2, y2; - - focus = CTK_FOCUS_DIALOG; - - x = window->x; - y = window->y + MENU_HEIGHT; - - x1 = x + WINDOWBORDER_WIDTH; - y1 = y + WINDOWTITLE_HEIGHT; - x2 = x1 + window->w; - y2 = y1 + window->h; - - /* Draw window border */ - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - FALSE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y); - - - - gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - x * RASTER_X + 1, - y * RASTER_Y + 1 + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X - 2, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y - 2); - - /* Draw inactive widgets. */ - for(w = window->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, x2, y2, - y1, y2, - focus); - } - - /* Draw active widgets. */ - for(w = window->active; w != NULL; w = w->next) { - wfocus = focus; - if(w == window->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, x1, y1, x2, y2, - y1, y2, - wfocus); - } - - ctk_gtksim_set_redrawflag(); - -} -/*--------------------------------------------------------------------------*/ -static void -draw_widget(struct ctk_widget *w, - unsigned char winx, unsigned char winy, - unsigned char clipx, - unsigned char clipy, - unsigned char clipy1, - unsigned char clipy2, - unsigned char focus) -{ - char text[1000]; - unsigned char x, y; - int width, xpos; - int i; - GdkGC *bgcol, *buttoncol; - struct ctk_gtksim_draw_font *buttonfont, *textfont, *textfont_bold; - int monospace; - - x = winx + w->x; - y = winy + w->y; - - if(focus & CTK_FOCUS_WINDOW) { - bgcol = white; - } else { - bgcol = lightgray; - } - - if(focus & CTK_FOCUS_WINDOW) { - buttoncol = lightgray; - } else { - buttoncol = midgray; - } - - monospace = w->flags & CTK_WIDGET_FLAG_MONOSPACE; - if(monospace) { - textfont = &ctk_gtksim_draw_font_monospace; - textfont_bold = &ctk_gtksim_draw_font_monospace_bold; - } else { - textfont = &ctk_gtksim_draw_font_normal; - textfont_bold = &ctk_gtksim_draw_font_bold; - } - - switch(w->type) { - case CTK_WIDGET_SEPARATOR: - gdk_draw_line(ctk_gtksim_pixmap, - darkgray, - x * RASTER_X, - y * RASTER_Y + RASTER_Y / 2 + MENUBAR_HEIGHT, - (x + w->w) * RASTER_X, - y * RASTER_Y + RASTER_Y / 2 + MENUBAR_HEIGHT); - break; - case CTK_WIDGET_LABEL: - gdk_draw_rectangle(ctk_gtksim_pixmap, - bgcol, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - w->w * RASTER_X, - w->h * RASTER_Y); - for(i = 0; i < w->h; ++i) { - strncpy(text, &w->widget.label.text[i * w->w], w->w); - text[w->w] = 0; - ctk_gtksim_draw_string(textfont, - &ctk_gtksim_draw_color_black, - RASTER_X * x, - RASTER_Y * (y + i) + MENUBAR_HEIGHT, - text, monospace); - } - - break; - case CTK_WIDGET_BUTTON: - if(w == (struct ctk_widget *)&w->window->titlebutton) { - buttonfont = &ctk_gtksim_draw_font_bold; - } else { - buttonfont = textfont; - } - - ++x; - - width = ctk_gtksim_draw_string_width(buttonfont, - w->widget.button.text, - monospace); - if(focus == (CTK_FOCUS_WIDGET|CTK_FOCUS_WINDOW)) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - FALSE, - x * RASTER_X - BUTTON_X_BORDER, - y * RASTER_Y - BUTTON_Y_BORDER + MENUBAR_HEIGHT, - w->w * RASTER_X + BUTTON_X_BORDER * 2, - BUTTON_HEIGHT + BUTTON_Y_BORDER); - /* gdk_draw_rectangle(ctk_gtksim_pixmap, - ctk_gtksim_drawing_area->style->black_gc, - FALSE, - x * RASTER_X - BUTTON_X_BORDER - 1, - y * RASTER_Y - BUTTON_Y_BORDER - 1, - w->w * RASTER_X + BUTTON_X_BORDER * 2 + 1, - RASTER_Y + BUTTON_Y_BORDER * 2 + 1);*/ - } else { - gdk_draw_rectangle(ctk_gtksim_pixmap, - darkgray, - FALSE, - x * RASTER_X - BUTTON_X_BORDER, - y * RASTER_Y - BUTTON_Y_BORDER + MENUBAR_HEIGHT, - w->w * RASTER_X + BUTTON_X_BORDER * 2, - BUTTON_HEIGHT + BUTTON_Y_BORDER); - } - gdk_draw_rectangle(ctk_gtksim_pixmap, - buttoncol, - TRUE, - x * RASTER_X - BUTTON_X_BORDER + 1, - y * RASTER_Y + MENUBAR_HEIGHT, - w->w * RASTER_X + BUTTON_X_BORDER * 2 - 2, - BUTTON_HEIGHT); - - gdk_draw_line(ctk_gtksim_pixmap, - ddarkgray, - x * RASTER_X - BUTTON_X_BORDER + 1, - y * RASTER_Y + BUTTON_HEIGHT - 1 + MENUBAR_HEIGHT, - x * RASTER_X + w->w * RASTER_X + BUTTON_X_BORDER - 1, - y * RASTER_Y + BUTTON_HEIGHT - 1 + MENUBAR_HEIGHT); - gdk_draw_line(ctk_gtksim_pixmap, - ddarkgray, - x * RASTER_X + w->w * RASTER_X + BUTTON_X_BORDER - 1, - y * RASTER_Y + BUTTON_HEIGHT - 1 + MENUBAR_HEIGHT, - x * RASTER_X + w->w * RASTER_X + BUTTON_X_BORDER - 1, - y * RASTER_Y + MENUBAR_HEIGHT); - - ctk_gtksim_draw_string(buttonfont, - &ctk_gtksim_draw_color_black, - RASTER_X * x + - (w->w * RASTER_X) / 2 - width / 2, - RASTER_Y * y + MENUBAR_HEIGHT, - w->widget.button.text, - monospace); - break; - case CTK_WIDGET_HYPERLINK: - strncpy(text, w->widget.hyperlink.text, w->w); - text[w->w] = 0; - width = ctk_gtksim_draw_string_width(textfont, text, monospace); - gdk_draw_rectangle(ctk_gtksim_pixmap, - bgcol, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - width, - RASTER_Y); - if(focus & CTK_FOCUS_WIDGET) { - ctk_gtksim_draw_string(textfont_bold, - &ctk_gtksim_draw_color_blue, - RASTER_X * x, - RASTER_Y * y + MENUBAR_HEIGHT, - text, monospace); - } else { - ctk_gtksim_draw_string(textfont, - &ctk_gtksim_draw_color_blue, - RASTER_X * x, - RASTER_Y * y + MENUBAR_HEIGHT, - text, monospace); - } - gdk_draw_line(ctk_gtksim_pixmap, - blue, - x * RASTER_X, - y * RASTER_Y + FONT_BASELINE + 1 + MENUBAR_HEIGHT, - x * RASTER_X + width, - y * RASTER_Y + FONT_BASELINE + 1 + MENUBAR_HEIGHT); - - break; - case CTK_WIDGET_TEXTENTRY: - strncpy(text, w->widget.textentry.text, sizeof(text)); - text[w->widget.textentry.xpos] = 0; - width = ctk_gtksim_draw_string_width(textfont, text, monospace); - gdk_draw_rectangle(ctk_gtksim_pixmap, - darkgray, - FALSE, - x * RASTER_X - TEXTENTRY_X_BORDER + RASTER_X, - y * RASTER_Y - TEXTENTRY_Y_BORDER + MENUBAR_HEIGHT, - w->w * RASTER_X + TEXTENTRY_X_BORDER * 2 - 1, - TEXTENTRY_HEIGHT + TEXTENTRY_Y_BORDER); - gdk_draw_rectangle(ctk_gtksim_pixmap, - bgcol, - TRUE, - x * RASTER_X + RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - w->w * RASTER_X, - TEXTENTRY_HEIGHT); - ctk_gtksim_draw_string(textfont, - &ctk_gtksim_draw_color_black, - RASTER_X * x + RASTER_X, - RASTER_Y * y + MENUBAR_HEIGHT, - w->widget.textentry.text, - monospace); - if(focus == (CTK_FOCUS_WIDGET|CTK_FOCUS_WINDOW)) { - gdk_draw_line(ctk_gtksim_pixmap, - black, - x * RASTER_X + width + RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - x * RASTER_X + width + RASTER_X, - y * RASTER_Y + TEXTENTRY_HEIGHT - 1 + MENUBAR_HEIGHT); - } - break; - case CTK_WIDGET_ICON: - width = ctk_gtksim_draw_string_width(&ctk_gtksim_draw_font_normal, - w->widget.icon.title, monospace); - - if(x * RASTER_X + width >= CTK_GTKSIM_SCREEN_WIDTH - RASTER_X) { - xpos = CTK_GTKSIM_SCREEN_WIDTH - width - RASTER_X; - } else { - xpos = x * RASTER_X; - } - if((focus & CTK_FOCUS_WIDGET) == 0) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - bgcol, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - 24, 24); - } else { - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - 24, 24); - } - - /* gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - xpos, - RASTER_Y * y + 24 + 1 + MENUBAR_HEIGHT, - width, - RASTER_Y);*/ - - ctk_gtksim_draw_string(textfont, - &ctk_gtksim_draw_color_black, - xpos + 1, - RASTER_Y * y + 24 + 1 + MENUBAR_HEIGHT, - w->widget.icon.title, - monospace); - ctk_gtksim_draw_string(textfont, - &ctk_gtksim_draw_color_white, - xpos, - RASTER_Y * y + 24 + MENUBAR_HEIGHT, - w->widget.icon.title, - monospace); - - - break; - default: - break; - } -} - -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_widget(struct ctk_widget *w, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - struct ctk_window *win = w->window; - unsigned char posx, posy; - - posx = win->x + WINDOWBORDER_WIDTH; - posy = win->y + WINDOWTITLE_HEIGHT + MENU_HEIGHT; - - if(w == win->focused) { - focus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, posx, posy, - posx + win->w, - posy + win->h, - clipy1, clipy2, - focus); - - ctk_gtksim_set_redrawflag(); -} -/*--------------------------------------------------------------------------*/ -static void -draw_menu(struct ctk_menu *m, int x, int open) -{ - int i; - int xpos; - - if(x >= CTK_GTKSIM_SCREEN_WIDTH / RASTER_X - 16) { - xpos = CTK_GTKSIM_SCREEN_WIDTH / RASTER_X - 16; - } else { - xpos = x; - } - - if(open) { - - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - TRUE, - RASTER_X * x, 0, - m->titlelen * RASTER_X, - RASTER_Y + MENUBAR_HEIGHT); - - ctk_gtksim_draw_string(&ctk_gtksim_draw_font_menu, - &ctk_gtksim_draw_color_white, - RASTER_X * x + 2, - MENUBAR_FONT_BASELINE, - m->title, 0); - - gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - xpos * RASTER_X, - RASTER_Y * MENU_HEIGHT + MENUBAR_HEIGHT, - (xpos + 16) * RASTER_X, - (m->nitems) * RASTER_Y); - - for(i = 0; i < m->nitems; ++i) { - if(i == m->active) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - TRUE, - RASTER_X * xpos, - (MENU_HEIGHT + i) * RASTER_Y + MENUBAR_HEIGHT, - (xpos + 16) * RASTER_X, - RASTER_Y); - ctk_gtksim_draw_string(&ctk_gtksim_draw_font_normal, - &ctk_gtksim_draw_color_white, - RASTER_X * xpos + 2, - (MENU_HEIGHT + i) * RASTER_Y + - MENUBAR_HEIGHT, - m->items[i].title, 0); - - } else { - ctk_gtksim_draw_string(&ctk_gtksim_draw_font_normal, - &ctk_gtksim_draw_color_black, - RASTER_X * xpos + 2, - (MENU_HEIGHT + i) * RASTER_Y + MENUBAR_HEIGHT, - m->items[i].title, 0); - } - - } - } else { - /* gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - RASTER_X * x, 0, - m->titlelen * RASTER_X, RASTER_Y);*/ - - ctk_gtksim_draw_string(&ctk_gtksim_draw_font_menu, - &ctk_gtksim_draw_color_black, - RASTER_X * x, MENUBAR_FONT_BASELINE, - m->title, 0); - - } -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_menus(struct ctk_menus *menus) -{ - struct ctk_menu *m; - int x; - - if(menubar != NULL) { - gdk_draw_pixbuf(ctk_gtksim_pixmap, - darkgray, - menubar, - 0, 0, - 0, 0, - CTK_GTKSIM_SCREEN_WIDTH, - RASTER_Y + MENUBAR_HEIGHT, - NULL, 0, 0); - } - - x = 1; - for(m = menus->menus->next; m != NULL; m = m->next) { - draw_menu(m, x, m == menus->open); - x += strlen(m->title); - } - - x = CTK_GTKSIM_SCREEN_WIDTH / RASTER_X - strlen(menus->menus->title); - draw_menu(menus->menus, x, menus->menus == menus->open); - - - - /* gdk_draw_line(ctk_gtksim_pixmap, - ctk_gtksim_drawing_area->style->black_gc, - 0, RASTER_Y, - CTK_GTKSIM_SCREEN_WIDTH, - RASTER_Y);*/ - - ctk_gtksim_set_redrawflag(); -} -/*--------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_width(void) -{ - return CTK_GTKSIM_SCREEN_WIDTH / RASTER_X; -} -/*--------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_height(void) -{ - return CTK_GTKSIM_SCREEN_HEIGHT / RASTER_Y; -} -/*--------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_xtoc(unsigned short x) -{ - return x / RASTER_X; -} -/*--------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_ytoc(unsigned short y) -{ - if(y < MENUBAR_HEIGHT) { - return 0; - } else { - return (y - MENUBAR_HEIGHT) / RASTER_Y; - } -} -/*--------------------------------------------------------------------------*/ -static const struct ctk_draw_service_interface interface = - {CTK_DRAW_SERVICE_VERSION, - WINDOWBORDER_WIDTH, - WINDOWBORDER_HEIGHT, - WINDOWTITLE_HEIGHT, - s_ctk_draw_init, - s_ctk_draw_clear, - s_ctk_draw_clear_window, - s_ctk_draw_window, - s_ctk_draw_dialog, - s_ctk_draw_widget, - s_ctk_draw_menus, - s_ctk_draw_width, - s_ctk_draw_height, - s_ctk_mouse_xtoc, - s_ctk_mouse_ytoc, - }; - -EK_EVENTHANDLER(eventhandler, ev, data); -EK_PROCESS(proc, CTK_DRAW_SERVICE_NAME, EK_PRIO_NORMAL, - eventhandler, NULL, (void *)&interface); - -/*--------------------------------------------------------------------------*/ -EK_PROCESS_INIT(ctk_gtksim_service_init, arg) -{ - ek_service_start(CTK_DRAW_SERVICE_NAME, &proc); -} -/*--------------------------------------------------------------------------*/ -static GdkGC * -get_color(unsigned short r, unsigned short g, unsigned short b) -{ - GdkGCValues values; - GdkColor color; - - color.pixel = 0; - color.red = r; - color.green = g; - color.blue = b; - - if(gdk_colormap_alloc_color(gdk_colormap_get_system(), - &color, FALSE, TRUE)) { - } - - values.foreground = color; - - return gdk_gc_new_with_values(ctk_gtksim_drawing_area->window, - &values, - GDK_GC_FOREGROUND); -} -/*--------------------------------------------------------------------------*/ -EK_EVENTHANDLER(eventhandler, ev, data) -{ - EK_EVENTHANDLER_ARGS(ev, data); - - switch(ev) { - case EK_EVENT_INIT: - blue = get_color(0, 0, 0xffff); - white = get_color(0xffff, 0xffff, 0xffff); - lightgray = get_color(0xefff, 0xefff, 0xefff); - midgray = get_color(0xdfff, 0xdfff, 0xdfff); - darkgray = get_color(0xcfff, 0xcfff, 0xcfff); - ddarkgray = get_color(0xafff, 0xafff, 0xafff); - black = get_color(0, 0, 0); - break; - case EK_EVENT_REQUEST_REPLACE: - ek_replace((struct ek_proc *)data, NULL); - LOADER_UNLOAD(); - break; - } -} -/*--------------------------------------------------------------------------*/ diff --git a/backyard/core/ctk/ctk-mouse.c b/backyard/core/ctk/ctk-mouse.c deleted file mode 100644 index 806458bf0..000000000 --- a/backyard/core/ctk/ctk-mouse.c +++ /dev/null @@ -1,323 +0,0 @@ -/* - * Copyright (c) 2002-2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: ctk-mouse.c,v 1.1 2007/05/26 21:38:53 oliverschmidt Exp $ - * - */ - -#include "process.h" -#include "cc.h" - -#include "ctk/ctk.h" -#include "ctk-draw.h" -#include "contiki-conf.h" -#include "ctk-mouse.h" - -unsigned short mouse_x, mouse_y, mouse_button; - -/*-----------------------------------------------------------------------------------*/ -EK_POLLHANDLER(ctk_poll) -{ - static ctk_arch_key_t c; - static unsigned char i; - register struct ctk_window *window; - register struct ctk_widget *widget; - register struct ctk_widget **widgetptr; - - static unsigned char mxc, myc, mouse_button_changed, mouse_moved, - mouse_clicked; - static unsigned char menux; - register struct ctk_menu *menu; - - mouse_button_changed = mouse_moved = mouse_clicked = 0; - - /* See if there is any change in the buttons. */ - if(ctk_mouse_button() != mouse_button) { - mouse_button = ctk_mouse_button(); - mouse_button_changed = 1; - if(mouse_button == 0) { - mouse_clicked = 1; - } - } - - /* Check if the mouse pointer has moved. */ - if(ctk_mouse_x() != mouse_x || - ctk_mouse_y() != mouse_y) { - mouse_x = ctk_mouse_x(); - mouse_y = ctk_mouse_y(); - mouse_moved = 1; - } - - mxc = ctk_mouse_xtoc(mouse_x); - myc = ctk_mouse_ytoc(mouse_y); - - if(mode == CTK_MODE_SCREENSAVER) { - if(mouse_moved || mouse_button_changed) { - ek_post(EK_BROADCAST, ctk_signal_screensaver_stop, NULL); - mode = CTK_MODE_NORMAL; - } - } else { - - /* If there is any change in the mouse conditions, find out in - which window the mouse pointer currently is in order to send - the correct signals, or bring a window to focus. */ - if(mouse_moved || mouse_button_changed) { - ctk_mouse_show(); - screensaver_timer = 0; - - if(myc == 0) { - /* Here we should do whatever needs to be done when the mouse - moves around and clicks in the menubar. */ - if(mouse_clicked) { - static unsigned char titlelen; - - /* Find out which menu that the mouse pointer is in. Start - with the ->next menu after the desktop menu. We assume - that the menus start one character from the left screen - side and that the desktop menu is farthest to the - right. */ - menux = 1; - for(menu = menus.menus->next; - menu != NULL; menu = menu->next) { - titlelen = menu->titlelen; - if(mxc >= menux && mxc <= menux + titlelen) { - break; - } - menux += titlelen; - } - - /* Also check desktop menu. */ - if(mxc >= width - 7 && - mxc <= width - 1) { - menu = &desktopmenu; - } - - menus.open = menu; - redraw |= REDRAW_MENUPART; - } - } else { - --myc; - - if(menus.open != NULL) { - static unsigned char nitems; - - /* Do whatever needs to be done when a menu is open. */ - - /* First check if the mouse pointer is in the currently open - menu. */ - if(menus.open == &desktopmenu) { - menux = width - CTK_CONF_MENUWIDTH; - } else { - menux = 1; - for(menu = menus.menus->next; menu != menus.open; - menu = menu->next) { - menux += menu->titlelen; - } - } - - nitems = menus.open->nitems; - /* Find out which of the menu items the mouse is pointing - to. */ - if(mxc >= menux && mxc <= menux + CTK_CONF_MENUWIDTH) { - if(myc <= nitems) { - menus.open->active = myc; - } else { - menus.open->active = nitems - 1; - } - } - - if(mouse_clicked) { - if(mxc >= menux && mxc <= menux + CTK_CONF_MENUWIDTH && - myc <= nitems) { - redraw |= activate_menu(); - } else { - lastmenu = menus.open; - menus.open = NULL; - redraw |= REDRAW_MENUPART; - } - } else { - redraw |= REDRAW_MENUS; - } - } else { - - /* Walk through the windows from top to bottom to see in - which window the mouse pointer is. */ - if(dialog != NULL) { - window = dialog; - } else { - for(window = windows; window != NULL; - window = window->next) { - - /* Check if the mouse is within the window. */ - if(mxc >= window->x && - mxc <= window->x + window->w + - 2 * ctk_draw_windowborder_width && - myc >= window->y && - myc <= window->y + window->h + - ctk_draw_windowtitle_height + - ctk_draw_windowborder_height) { - break; - } - } - } - - - /* If we didn't find any window, and there are no windows - open, the mouse pointer will definately be within the - background desktop window. */ - if(window == NULL) { - window = &desktop_window; - } - - /* If the mouse pointer moves around outside of the - currently focused window (or dialog), we should not have - any focused widgets in the focused window so we make sure - that there are none. */ - if(windows != NULL && - window != windows && - windows->focused != NULL){ - unfocus_widget(windows->focused); - } - - if(window != NULL) { - /* If the mouse was clicked outside of the current window, - we bring the clicked window to front. */ - if(dialog == NULL && - window != &desktop_window && - window != windows && - mouse_clicked) { - /* Bring window to front. */ - ctk_window_open(window); - redraw |= REDRAW_ALL; - } else { - - /* Find out which widget currently is under the mouse - pointer and give it focus, unless it already has - focus. */ - mxc = mxc - window->x - ctk_draw_windowborder_width; - myc = myc - window->y - ctk_draw_windowtitle_height; - - /* See if the mouse pointer is on a widget. If so, it - should be selected and, if the button is clicked, - activated. */ - for(widget = window->active; widget != NULL; - widget = widget->next) { - - if(mxc >= widget->x && - mxc <= widget->x + widget->w && - (myc == widget->y || - ((widget->type == CTK_WIDGET_BITMAP || - widget->type == CTK_WIDGET_ICON) && - (myc >= widget->y && - myc <= widget->y + - ((struct ctk_bitmap *)widget)->h)))) { - break; - } - } - - - /* if the mouse is moved in the focused window, we emit - a ctk_signal_pointer_move signal to the owner of the - window. */ - if(mouse_moved && - (window != &desktop_window || - windows == NULL)) { - - ek_post(window->owner, ctk_signal_pointer_move, NULL); - - /* If there was a focused widget that is not below the - mouse pointer, we remove focus from the widget and - redraw it. */ - if(window->focused != NULL && - widget != window->focused) { - unfocus_widget(window->focused); - } - redraw |= REDRAW_WIDGETS; - if(widget != NULL) { - select_widget(widget); - } - } - - if(mouse_button_changed) { - ek_post(window->owner, ctk_signal_pointer_button, - (ek_data_t)mouse_button); - if(mouse_clicked && widget != NULL) { - select_widget(widget); - redraw |= activate(widget); - } - } - } - } - } - } - } - - if(ctk_arch_keyavail()) { - ctk_mouse_hide(); - } - -#if CTK_CONF_WINDOWMOVE - } else if(mode == CTK_MODE_WINDOWMOVE) { - - /* If the mouse has moved, we move the window as well. */ - if(mouse_moved) { - - if(window->w + mxc + 2 >= width) { - window->x = width - 2 - window->w; - } else { - window->x = mxc; - } - - if(window->h + myc + ctk_draw_windowtitle_height + - ctk_draw_windowborder_height >= height) { - window->y = height - window->h - - ctk_draw_windowtitle_height - ctk_draw_windowborder_height; - } else { - window->y = myc; - } - if(window->y > 0) { - --window->y; - } - - redraw = REDRAW_ALL; - } - - /* Check if the mouse has been clicked, and stop moving the window - if so. */ - if(mouse_button_changed && - mouse_button == 0) { - mode = CTK_MODE_NORMAL; - redraw = REDRAW_ALL; - } -#endif /* CTK_CONF_WINDOWMOVE */ - } -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/core/ctk/ctk-term-ascii.h b/backyard/core/ctk/ctk-term-ascii.h deleted file mode 100644 index 50f4c932a..000000000 --- a/backyard/core/ctk/ctk-term-ascii.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-term-ascii.h,v 1.1 2007/05/26 21:54:33 oliverschmidt Exp $ - */ -/* ascii_control.h - * - * ASCII CONTROL CHARACTERS - * from American National Standard Code for Information Interchange X3.4-1977 - * - * Abbreviations - * - * CC: communication control - * FE: format effector - * IS: information separator - * Delim: delimiter - * Intro: introducer - */ - -/* ----------------------------------------------------------------------- */ -/* C0 (7-bit) set */ -/* ----------------------------------------------------------------------- */ -/* mnemonic octal decimal C meaning */ -/* ----------------------------------------------------------------------- */ - -#define ASCII_NUL (000) /* 0 '\0' Null */ -#define ASCII_SOH (001) /* 1 Start of Heading (CC) */ -#define ASCII_STX (002) /* 2 Start of Text (CC) */ -#define ASCII_ETX (003) /* 3 End of Text (CC) */ -#define ASCII_EOT (004) /* 4 End of Transmission (CC) */ -#define ASCII_ENQ (005) /* 5 Enquiry (CC) */ -#define ASCII_ACK (006) /* 6 Acknowledge (CC) */ -#define ASCII_BEL (007) /* 7 '\a' Bell / Alert */ -#define ASCII_BS (010) /* 8 '\b' Backspace (FE) */ -#define ASCII_HT (011) /* 9 '\t' Horizontal Tabulation (FE) */ -#define ASCII_LF (012) /* 10 '\n' Line Feed / Newline (FE) */ -#define ASCII_VT (013) /* 11 '\v' Vertical Tabulation (FE) */ -#define ASCII_FF (014) /* 12 '\f' Form Feed (FE) */ -#define ASCII_CR (015) /* 13 '\r' Carriage Return (FE) */ -#define ASCII_SO (016) /* 14 Shift Out */ -#define ASCII_SI (017) /* 15 Shift In */ -#define ASCII_DLE (020) /* 16 Data Link Escape (CC) */ -#define ASCII_DC1 (021) /* 17 Device Control 1 XON */ -#define ASCII_DC2 (022) /* 18 Device Control 2 */ -#define ASCII_DC3 (023) /* 19 Device Control 3 XOFF */ -#define ASCII_DC4 (024) /* 20 Device Control 4 */ -#define ASCII_NAK (025) /* 21 Negative Acknowledge (CC) */ -#define ASCII_SYN (026) /* 22 Synchronous Idle (CC) */ -#define ASCII_ETB (027) /* 23 End of Transmission Block (CC) */ -#define ASCII_CAN (030) /* 24 Cancel */ -#define ASCII_EM (031) /* 25 End of Medium */ -#define ASCII_SUB (032) /* 26 Substitute */ -#define ASCII_ESC (033) /* 27 Escape */ -#define ASCII_FS (034) /* 28 File Separator */ -#define ASCII_GS (035) /* 29 Group Separator */ -#define ASCII_RS (036) /* 30 Record Separator */ -#define ASCII_US (037) /* 31 Unit Separator */ - -#define ASCII_DEL (0177) /* 127 Delete */ - -#define ASCII_NL ASCII_LF /* 10 alias for Newline */ - -/* ----------------------------------------------------------------------- */ -/* C1 (8-bit) set (which have equivalent 7-bit multi-char sequences) */ -/* ----------------------------------------------------------------------- */ -/* mnemonic octal decimal 7-bit meaning */ -/* ----------------------------------------------------------------------- */ - -#define ASCII_IND (0204) /* 132 Esc D Index (FE) */ -#define ASCII_NEL (0205) /* 133 Esc E Next Line (FE) */ -#define ASCII_SSA (0206) /* 134 Esc F Start Selected Area */ -#define ASCII_ESA (0207) /* 135 Esc G End Selected Area */ -#define ASCII_HTS (0210) /* 136 Esc H Horizontal Tab Set (FE) */ -#define ASCII_HTJ (0211) /* 137 Esc I Horizontal Tab w/Justificat(FE)*/ -#define ASCII_VTS (0212) /* 138 Esc J Vertical Tab Set (FE) */ -#define ASCII_PLD (0213) /* 138 Esc K Partial Line Down (FE) */ -#define ASCII_PLU (0214) /* 140 Esc L Partial Line Up (FE) */ -#define ASCII_RI (0215) /* 141 Esc M Reverse Index (FE) */ -#define ASCII_SS2 (0216) /* 142 Esc N Single Shift G2 (Intro) */ -#define ASCII_SS3 (0217) /* 143 Esc O Single Shift G3 (Intro) */ -#define ASCII_DCS (0220) /* 144 Esc P Device Control String (Delim) */ -#define ASCII_PU1 (0221) /* 145 Esc Q Private Use 1 */ -#define ASCII_PU2 (0222) /* 146 Esc R Private Use 2 */ -#define ASCII_STS (0223) /* 147 Esc S Set Transmit State */ -#define ASCII_CCH (0224) /* 148 Esc T Cancel Previous Character */ -#define ASCII_MW (0225) /* 149 Esc U Message Waiting */ -#define ASCII_SPA (0226) /* 150 Esc V Start Protected Area */ -#define ASCII_EPA (0227) /* 151 Esc W End Protected Area */ - -#define ASCII_CSI (0233) /* 155 Esc [ Control Sequence Introducer */ -#define ASCII_ST (0234) /* 156 Esc \ String Terminator (Delim) */ -#define ASCII_OSC (0235) /* 157 Esc ] Operating System Control (Delim*/ -#define ASCII_PM (0236) /* 158 Esc ^ Privacy Message (Delim) */ -#define ASCII_APC (0237) /* 159 Esc _ Application Program Command (De*/ - -/* ------------------------------------------------------------------------- */ diff --git a/backyard/core/ctk/ctk-term-in.c b/backyard/core/ctk/ctk-term-in.c deleted file mode 100644 index c4f6c8aee..000000000 --- a/backyard/core/ctk/ctk-term-in.c +++ /dev/null @@ -1,381 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: ctk-term-in.c,v 1.1 2007/05/26 21:54:33 oliverschmidt Exp $ - */ -#include -#include "ctk/ctk.h" -#include "ctk-term.h" -#include "ctk-term-int.h" -#include "ctk-term-ascii.h" - -#define PRINTF(x) - -/*-----------------------------------------------------------------------------------*/ -/* - * #defines and enums - */ -/*-----------------------------------------------------------------------------------*/ - -/* Size of input key buffer */ -#define NUMKEYS 20 - -/* ANSI character classes */ -enum {ACC_C0, ACC_INTERM, ACC_PARAM, ACC_LOWCASE, ACC_UPCASE,ACC_C1, ACC_G1, ACC_DEL, ACC_SPEC }; - -/*-----------------------------------------------------------------------------------*/ -/* - * Structures - */ -/*-----------------------------------------------------------------------------------*/ - -/* Structure for mapping a character sequence to a key */ -struct seqmap -{ - const char* seq; - const ctk_arch_key_t key; -}; - -/*-----------------------------------------------------------------------------------*/ -/* - * Local variables - */ -/*-----------------------------------------------------------------------------------*/ - -static ctk_arch_key_t keys[NUMKEYS]; -static int firstkey, lastkey; - -/* Sequences starting with ESC [ .... */ -const static struct seqmap ctrlmap[] = -{ - {"A",CH_CURS_UP}, - {"B",CH_CURS_DOWN}, - {"C",CH_CURS_RIGHT}, - {"D",CH_CURS_LEFT}, - - {"11~",CH_F1}, - {"12~",CH_F2}, - {"13~",CH_F3}, - {"14~",CH_F4}, - // linux console - {"[A",CH_F1}, - {"[B",CH_F2}, - {"[C",CH_F3}, - {"[D",CH_F4}, - {0,0} -}; - -/* Sequences starting with ESC O .... */ -const static struct seqmap ss3map[] = -{ - {"A",CH_CURS_UP}, - {"B",CH_CURS_DOWN}, - {"C",CH_CURS_RIGHT}, - {"D",CH_CURS_LEFT}, - {"P",CH_F1}, - {"Q",CH_F2}, - {"R",CH_F3}, - {"S",CH_F4}, - {0,0} -}; - - -/*-----------------------------------------------------------------------------------*/ -/* - * Add a key to the input buffer - */ -/*-----------------------------------------------------------------------------------*/ -static void -enqueue_key(ctk_arch_key_t k) -{ - keys[lastkey] = k; - ++lastkey; - if(lastkey >= NUMKEYS) { - lastkey = 0; - } -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Classify a character - */ -/*-----------------------------------------------------------------------------------*/ -static unsigned char -classify(unsigned char c) -{ - if (0x00 <= c && c <=0x1f) return ACC_C0; - if (0x20 <= c && c <=0x2f) return ACC_INTERM; - if (0x30 <= c && c <=0x3f) return ACC_PARAM; - if (0x40 <= c && c <=0x5f) return ACC_UPCASE; - if (0x60 <= c && c <=0x7e) return ACC_LOWCASE; - if (c == 0x7f) return ACC_DEL; - if (0x90 <= c && c <=0x9f) return ACC_C1; - if (c == 0xa0) return ACC_SPEC; - if (0xA1 <= c && c <=0xfe) return ACC_G1; - if (0x90 <= c && c <=0x9f) return ACC_C1; - if (c == 0xff) return ACC_SPEC; - return ACC_SPEC; -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Lookup a key sequence in a sequencemap and queue the key if sequence found - */ -/*-----------------------------------------------------------------------------------*/ -static void -lookup_seq(const char* str, const struct seqmap* map) -{ - while (map->seq != 0) { - if (strcmp(str,map->seq) == 0) { - enqueue_key(map->key); - return; - } - map++; - } -} - -/*-----------------------------------------------------------------------------------*/ -/* \internal - * Parse a character stream - * Returns -1 if c is consumed by the state machine 1 else. - */ -/*-----------------------------------------------------------------------------------*/ -static int -parse_input(struct ctk_term_state* st, unsigned char c) -{ - unsigned char cl = classify(c); - int ret = -1; - switch(st->inputstate) { - case ANS_IDLE: - switch(cl) { - case ACC_C0: - { - switch(c) { - case ASCII_ESC: st->inputstate = ANS_ESCSEQ; break; - case ASCII_BS: enqueue_key(CH_DEL); break; - case ASCII_HT: enqueue_key(CH_TAB); break; - case ASCII_FF: ctk_term_redraw(st); break; - case ASCII_CR: enqueue_key(CH_ENTER); break; - } - } - break; - - case ACC_INTERM: - case ACC_PARAM: - case ACC_LOWCASE: - case ACC_UPCASE: - case ACC_G1: - ret = 1; - break; - case ACC_C1: - if (c == ASCII_CSI) { - st->inputstate = ANS_CTRLSEQ; - st->ctrlCnt = 0; - } - else if (c == ASCII_SS3) { - st->inputstate = ANS_SS3; - st->ctrlCnt = 0; - } - break; - case ACC_DEL: - enqueue_key(CH_DEL); - break; - case ACC_SPEC: - break; - } - break; - - case ANS_ESCSEQ: - { - switch(cl) { - case ACC_C0: - case ACC_DEL: - break; - case ACC_INTERM: - st->inputstate = ANS_ESCSEQ_1; - break; - case ACC_UPCASE: - /* C1 control character */ - if (c == '[') { - st->inputstate = ANS_CTRLSEQ; - st->ctrlCnt = 0; - } - else if (c == 'O') { - st->inputstate = ANS_SS3; - st->ctrlCnt = 0; - } - else { - st->inputstate = ANS_IDLE; - } - break; - case ACC_PARAM: - /* Private 2-character sequence */ - case ACC_LOWCASE: - /* Standard 2-character sequence */ - default: - st->inputstate = ANS_IDLE; - break; - } - } - break; - - case ANS_ESCSEQ_1: - { - switch(cl) { - case ACC_C0: - case ACC_INTERM: - break; - case ACC_PARAM: - /* Private function*/ - case ACC_LOWCASE: - case ACC_UPCASE: - /* Standard function */ - default: - st->inputstate = ANS_IDLE; - break; - } - } - break; - case ANS_SS3: - { - switch(cl) { - case ACC_PARAM: - if (st->ctrlCnt < CTK_TERM_CTRLBUFLEN) st->ctrlbuf[st->ctrlCnt++]=c; - break; - case ACC_UPCASE: - /* VT100 PF seq */ - if (st->ctrlCnt < CTK_TERM_CTRLBUFLEN) st->ctrlbuf[st->ctrlCnt++]=c; - st->inputstate = ANS_IDLE; - st->ctrlbuf[st->ctrlCnt] = 0; - lookup_seq((const char*)(st->ctrlbuf), ss3map); - break; - default: - st->inputstate = ANS_IDLE; - break; - } - } - break; - case ANS_CTRLSEQ: - { - switch(cl) { - case ACC_C0: - break; - case ACC_INTERM: - case ACC_PARAM: - if (st->ctrlCnt < CTK_TERM_CTRLBUFLEN) st->ctrlbuf[st->ctrlCnt++]=c; - break; - case ACC_LOWCASE: - case ACC_UPCASE: - /* Standard control sequence */ - if (st->ctrlCnt < CTK_TERM_CTRLBUFLEN) st->ctrlbuf[st->ctrlCnt++]=c; - /* Cygwin console sends ESC [ [ A for function keys */ - if (c != '[') { - st->ctrlbuf[st->ctrlCnt] = 0; - lookup_seq((const char*)(st->ctrlbuf), ctrlmap); - st->inputstate = ANS_IDLE; - } - break; - default: - st->inputstate = ANS_IDLE; - break; - } - } - break; - } - return ret; -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Initialize the input buffer - */ -/*-----------------------------------------------------------------------------------*/ -void ctk_term_input_init() -{ - firstkey = lastkey = 0; -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Handles an input character provided by the client - * - * \param ts State information - * \param b Input character - */ -/*-----------------------------------------------------------------------------------*/ -void ctk_term_input(struct ctk_term_state* ts, unsigned char b) -{ - int ret = parse_input(ts, b); - PRINTF(("terminput: 0x%02x\n", b)); - if (ret > 0) { - enqueue_key((ctk_arch_key_t)b); - } -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Checks the key press input queue to see if there are pending - * keys. Called by the CTK module. - * - * \return Zero if no key presses are in buffer, non-zero if there are - * key presses in input buffer. - */ -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_arch_keyavail(void) -{ - return firstkey != lastkey; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Retrieves key presses from the VNC client. Called by the CTK - * module. - * - * \return The next key in the input queue. - */ -/*-----------------------------------------------------------------------------------*/ -ctk_arch_key_t -ctk_arch_getkey(void) -{ - ctk_arch_key_t key; - key = keys[firstkey]; - - if(firstkey != lastkey) { - ++firstkey; - if(firstkey >= NUMKEYS) { - firstkey = 0; - } - } - - return key; -} - diff --git a/backyard/core/ctk/ctk-term-int.h b/backyard/core/ctk/ctk-term-int.h deleted file mode 100644 index 7a6cbba0e..000000000 --- a/backyard/core/ctk/ctk-term-int.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-term-int.h,v 1.1 2007/05/26 21:54:33 oliverschmidt Exp $ - */ -#ifndef __CTK_TERM_INT_H__ -#define __CTK_TERM_INT_H__ - -/* Color definitions */ - -#define TERM_BACKGROUNDCOLOR 0 -#define TERM_WINDOWCOLOR 1 -#define TERM_SEPARATORCOLOR 7 /*(TERM_WINDOWCOLOR + 6)*/ -#define TERM_LABELCOLOR 13 /*(TERM_SEPARATORCOLOR + 6)*/ -#define TERM_BUTTONCOLOR 19 /*(TERM_LABELCOLOR + 6)*/ -#define TERM_HYPERLINKCOLOR 25 /*(TERM_BUTTONCOLOR + 6)*/ -#define TERM_TEXTENTRYCOLOR 31 /*(TERM_HYPERLINKCOLOR + 6)*/ -#define TERM_ICONCOLOR 37 /*(TERM_TEXTENTRYCOLOR + 6)*/ -#define TERM_MENUCOLOR 43 /*(TERM_ICONCOLOR + 6)*/ -#define TERM_OPENMENUCOLOR 44/*(TERM_MENUCOLOR + 1)*/ -#define TERM_ACTIVEMENUCOLOR 45 /*(TERM_OPENMENUCOLOR + 1) */ - -/* Structure describing an updated region */ -struct ctk_term_update { - struct ctk_term_update *next; - -#define UPDATE_NONE 0 -#define UPDATE_PARTS 1 -#define UPDATE_FULL 2 - - unsigned char type; - - unsigned char x, y; - unsigned char w, h; -}; - -/* Character sequence parsing states */ -enum { ANS_IDLE, ANS_ESCSEQ,ANS_ESCSEQ_1,ANS_SS3, ANS_CTRLSEQ}; - -struct ctk_term_state { - unsigned char type; - unsigned char state; - unsigned char height, width; - - /* Variables used when sending screen updates. */ - unsigned char x, y, x1, y1, x2, y2; - unsigned char w, h; - unsigned char c1, c2; - -#define CTK_TERM_MAX_UPDATES 8 - struct ctk_term_update *updates_current; - struct ctk_term_update *updates_pending; - struct ctk_term_update *updates_free; - struct ctk_term_update updates_pool[CTK_TERM_MAX_UPDATES]; - - /* Variables used when parsing input sequences */ - unsigned char inputstate; -#define CTK_TERM_CTRLBUFLEN 5 - unsigned char ctrlbuf[CTK_TERM_CTRLBUFLEN+1]; - unsigned char ctrlCnt; -}; - -struct ctk_term_update * ctk_term_update_alloc(struct ctk_term_state *vs); -void ctk_term_update_free(struct ctk_term_state *ts, struct ctk_term_update *a); -void ctk_term_update_remove(struct ctk_term_state *ts, struct ctk_term_update *a); - -void ctk_term_update_add(struct ctk_term_state *ts, struct ctk_term_update *a); -struct ctk_term_update * ctk_term_update_dequeue(struct ctk_term_state *ts); - -void ctk_term_input_init(); - -#endif /* __CTK_TERM_INT_H__ */ diff --git a/backyard/core/ctk/ctk-term-out.c b/backyard/core/ctk/ctk-term-out.c deleted file mode 100644 index 376c04cce..000000000 --- a/backyard/core/ctk/ctk-term-out.c +++ /dev/null @@ -1,350 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-term-out.c,v 1.1 2007/05/26 21:54:33 oliverschmidt Exp $ - */ -#include "libconio.h" -#include "ctk-term-int.h" -#include -#include // sprintf - -#define PRINTF(x) - -/*-----------------------------------------------------------------------------------*/ -/* - * #defines and enums - */ -/*-----------------------------------------------------------------------------------*/ - -#define CHARS_WIDTH LIBCONIO_CONF_SCREEN_WIDTH -#define CHARS_HEIGHT LIBCONIO_CONF_SCREEN_HEIGHT - -/*-----------------------------------------------------------------------------------*/ -/* - * Local variables - */ -/*-----------------------------------------------------------------------------------*/ - -/* ANSI/VT100 colors - 0 - None - 1 - Bold (inc. inten) - 4 - Underscore - 7 - Reverse - x0 - black - x1 - red - x2 - green - x3 - yellow - x4 - blue - x5 - magenta - x6 - cyan - x7 - white - x = 3 fg x = 4 bg -*/ -#if 0 /* Colorfull theme */ -static const char backgroundcolor[] = "\033[0;37;40m"; - -static const char wincol[] = "\033[0;37;40m"; -static const char wincol_f[] = "\033[0;1;37;40m"; -static const char wincol_d[] = "\033[0;30;47m"; - -static const char sepcol[] = "\033[0;37;40m"; -static const char sepcol_f[] = "\033[0;1;37;40m"; -static const char sepcol_d[] = "\033[0;30;47m"; - -static const char labcol[] = "\033[0;37;40m"; -static const char labcol_f[] = "\033[1;37;40m"; -static const char labcol_d[] = "\033[0;30;47m"; - -static const char butcol[] = "\033[0;37;40m"; -static const char butcol_w[] = "\033[0;30;47m"; -static const char butcol_f[] = "\033[0;1;37;40m"; -static const char butcol_fw[] = "\033[0;1;37;46m"; -static const char butcol_d[] = "\033[0;30;47m"; -static const char butcol_dw[] = "\033[0;37;46m"; - -static const char hlcol[] = "\033[0;4;36;40m"; -static const char hlcol_w[] = "\033[0;4;30;47m"; -static const char hlcol_f[] = "\033[0;1;4;36;40m"; -static const char hlcol_fw[] = "\033[0;1;4;37;46m"; -static const char hlcol_d[] = "\033[0;4;34;47m"; -static const char hlcol_dw[] = "\033[0;4;37;46m"; - -static const char iconcol[] = "\033[0;32;40m"; -static const char iconcol_w[] = "\033[0;30;42m"; - -static const char menucolor[] = "\033[0;37;43m"; -static const char activemenucolor[] = "\033[0;1;37;43m"; -#endif - -#if 1 /* B/W theme */ -static const char backgroundcolor[] = "\033[0m"; - -static const char wincol[] = "\033[0m"; -static const char wincol_f[] = "\033[0;1m"; -static const char wincol_d[] = "\033[0;7m"; - -static const char sepcol[] = "\033[0m"; -static const char sepcol_f[] = "\033[0;1m"; -static const char sepcol_d[] = "\033[0;7m"; - -static const char labcol[] = "\033[0m"; -static const char labcol_f[] = "\033[0;1m"; -static const char labcol_d[] = "\033[0;7m"; - -static const char butcol[] = "\033[0m"; -static const char butcol_w[] = "\033[0m"; -static const char butcol_f[] = "\033[0;1m"; -static const char butcol_fw[] = "\033[0;1;7m"; -static const char butcol_d[] = "\033[0;7m"; -static const char butcol_dw[] = "\033[0m"; - -static const char hlcol[] = "\033[0;4m"; -static const char hlcol_w[] = "\033[0;4;7m"; -static const char hlcol_f[] = "\033[0;1;4m"; -static const char hlcol_fw[] = "\033[0;1;4;7m"; -static const char hlcol_d[] = "\033[0;4;7m"; -static const char hlcol_dw[] = "\033[0;4m"; - -static const char iconcol[] = "\033[0m"; -static const char iconcol_w[] = "\033[0;7m"; - -static const char menucolor[] = "\033[0;7m"; -static const char activemenucolor[] = "\033[0m"; - -#endif - -static const char* const colortheme[] = -{ - backgroundcolor, - - /* Window colors */ - wincol, wincol, wincol_f, wincol_f, wincol_d, wincol_d, - - /* Separator colors. */ - sepcol, sepcol, sepcol_f, sepcol_f, sepcol_d, sepcol_d, - - /* Label colors. */ - labcol, labcol, labcol_f, labcol_f, labcol_d, labcol_d, - - /* Button colors. */ - butcol, butcol_w, butcol_f, butcol_fw, butcol_d, butcol_dw, - - /* Hyperlink colors. */ - hlcol, hlcol_w, hlcol_f, hlcol_fw, hlcol_d, hlcol_dw, - - /* Textentry colors. */ - butcol, butcol_w, butcol_f, butcol_fw, butcol_d, butcol_dw, - - /* Icon colors */ - iconcol, iconcol_w, iconcol, iconcol_w, iconcol, iconcol_w, - - /* Menu colors. */ - menucolor, activemenucolor, activemenucolor - }; - -static unsigned char - screen[CHARS_WIDTH * CHARS_HEIGHT], - colorscreen[CHARS_WIDTH * CHARS_HEIGHT]; - -/*-----------------------------------------------------------------------------------*/ -/* - * Add a character to the screen buffer - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_term_out_update_screen(unsigned char xpos, - unsigned char ypos, - unsigned char c, - unsigned char color) -{ - if (c < 0x20) c = 0x20; - screen[xpos + ypos * CHARS_WIDTH] = c; - colorscreen[xpos + ypos * CHARS_WIDTH] = color; -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Check if there are any updated pending. If so, make the first one current - */ -/*-----------------------------------------------------------------------------------*/ -static void -check_updates(struct ctk_term_state* ts) -{ - if (ts->updates_current != NULL) return; - ts->updates_current = ctk_term_update_dequeue(ts); - if (ts->updates_current != NULL) { - ts->x = ts->updates_current->x; - ts->y = ts->updates_current->y; - ts->w = ts->updates_current->w; - ts->h = ts->updates_current->h; - ts->x1 = ts->x2 = ts->x; - ts->y1 = ts->y2 = ts->y; - } -} - -/*-----------------------------------------------------------------------------------*/ -/** \internal - * Adds a cursor position change to buffer. Returns 0 if string doesn't fit else - * number of bytes actually written is returned. - * - * \param x X coordinate (screen coordinates) - * \param y Y coordinate (screen coordinates) - * \param buf Output buffer - * \param maxlen Maximum number of bytes to store in buffer - */ -/*-----------------------------------------------------------------------------------*/ -static unsigned short -move_to(unsigned char x, unsigned char y, unsigned char* buf, unsigned short maxlen) -{ - if (maxlen < 14) return 0; - return (unsigned short)sprintf((char*)buf, "\033[%d;%dH", y+1, x+1); -} - -/*-----------------------------------------------------------------------------------*/ -/** \internal - * Adds a attribute string to buffer. Returns 0 if string doesn't fit else - * number of bytes actually written is returned. - * - * \param c Color number - * \param buf Output buffer - * \param maxlen Maximum number of bytes to store in buffer - */ -/*-----------------------------------------------------------------------------------*/ -static unsigned short -set_color(unsigned char c, unsigned char* buf, unsigned short maxlen) -{ - int len = strlen((const char*)colortheme[c]); - if (maxlen < len) return 0; - memcpy(buf, colortheme[c], len); - return len; -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Stores terminal data in buffer provided by caller. Returns number of bytes written - * to the output buffer. - * - * \param ts State information - * \param buf Output buffer - * \param maxlen Maximum number of bytes to store in buffer - */ -/*-----------------------------------------------------------------------------------*/ -unsigned short -ctk_term_send(struct ctk_term_state* ts, - unsigned char* buf, - unsigned short maxlen) -{ - unsigned char x, y, x0; - unsigned char col, c; - unsigned short tmp; - unsigned short totlen; - - check_updates(ts); - - if (ts->updates_current == NULL) return 0; - - x0 = ts->x1; - col = ts->c1; - totlen = 0; - /* Loop across the update region starting at (x1,y1) */ - for(y = ts->y1; y < ts->y + ts->h; ++y) { - for(x = x0; x < ts->x + ts->w; ++x) { - /* New line ? */ - if (x == ts->x) { - /* Move cursor to start of line */ - tmp = move_to(x,y,buf,maxlen); - if (tmp == 0) goto loopend; - buf += tmp; - totlen += tmp; - maxlen -= tmp; - } - /* Check color */ - c = colorscreen[x + y * CHARS_WIDTH]; - if (c != col) { - PRINTF(("colorchange at (%d, %d) to %d\n", x,y,c)); - /* Send new color information */ - tmp = set_color(c, buf, maxlen); - if (tmp == 0) goto loopend; - col = c; - buf += tmp; - totlen += tmp; - maxlen -= tmp; - } - /* Check remaining space */ - if (maxlen < 1) goto loopend; - /* Add character */ - *buf = screen[x + y * CHARS_WIDTH]; - buf++; - maxlen--; - totlen++; - } - x0 = ts->x; - } -loopend: - /* Always save current color state */ - ts->c2 = col; - PRINTF(("ending loop at (%d, %d)\n", x,y)); - /* Check if done */ - if (x == ts->x+ts->w && y == ts->y+ts->h) { - /* Signal done with this update */ - ts->x2 = ts->y2 = 0; - } - else { - /* Not done. Save state */ - ts->x2 = x; - ts->y2 = y; - } - return totlen; -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Called by client when the data returned by ctk_term_send() are successfully sent. - * - * \param ts State information - */ -/*-----------------------------------------------------------------------------------*/ -void ctk_term_sent(struct ctk_term_state* ts) -{ - if (ts->updates_current != NULL) { - /* Check if current update done */ - if (ts->x2 == 0 && ts->y2 == 0) { - /* Yes, free it */ - ctk_term_update_free(ts, ts->updates_current); - ts->updates_current = NULL; - } - else { - /* Nop. Update start posititions */ - ts->x1 = ts->x2; - ts->y1 = ts->y2; - } - ts->c1 = ts->c2; - } -} diff --git a/backyard/core/ctk/ctk-term-out.h b/backyard/core/ctk/ctk-term-out.h deleted file mode 100644 index 5a496a820..000000000 --- a/backyard/core/ctk/ctk-term-out.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-term-out.h,v 1.1 2007/05/26 21:54:33 oliverschmidt Exp $ - */ -#ifndef __CTK_TERM_OUT_H__ -#define __CTK_TERM_OUT_H__ - -void -ctk_term_out_update_screen(unsigned char xpos, - unsigned char ypos, - unsigned char c, - unsigned char color); - -#endif /* __CTK_TERM_OUT_H__ */ diff --git a/backyard/core/ctk/ctk-term.c b/backyard/core/ctk/ctk-term.c deleted file mode 100644 index 39f475327..000000000 --- a/backyard/core/ctk/ctk-term.c +++ /dev/null @@ -1,1028 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-term.c,v 1.1 2007/05/26 21:54:33 oliverschmidt Exp $ - */ -#include "ctk/ctk.h" -#include "ctk-draw.h" - -#include "contiki.h" -#include "loader.h" -#include "ctk-term.h" -#include "ctk-term-int.h" -#include "ctk-term-out.h" -#include "contiki-conf.h" -#include "libconio.h" - -#define PRINTF(x) - -#define reverse(x) - -/*-----------------------------------------------------------------------------------*/ -/* - * #defines and enums - */ -/*-----------------------------------------------------------------------------------*/ -#define CH_ULCORNER '+' //0x00 -#define CH_TITLEBAR '-' //0x01 -#define CH_URCORNER '+' //0x02 -#define CH_WINDOWRBORDER '|' //0x03 -#define CH_LRCORNER '+' //0x04 -#define CH_WINDOWLOWERBORDER '-' //0x05 -#define CH_LLCORNER '+' //0x06 -#define CH_WINDOWLBORDER '|' //0x07 - -#define CH_DIALOG_ULCORNER '+' //0x12 -#define CH_DIALOGUPPERBORDER '-' //0x09 -#define CH_DIALOG_URCORNER '+' //0x0a -#define CH_DIALOGRBORDER '|' //0x0b -#define CH_DIALOG_LRCORNER '+' //0x0c -#define CH_DIALOGLOWERBORDER '-' //0x0d -#define CH_DIALOG_LLCORNER '+' //0x0e -#define CH_DIALOGLBORDER '|' //0x0f - -#define CH_BUTTONLEFT '[' //0x10 -#define CH_BUTTONRIGHT ']' //0x11 - -#define CH_SEPARATOR '=' //0x13 - -#ifdef CTK_TERM_CONF_MAX_CLIENTS -#define CTK_TERM_NUMCONNS CTK_TERM_CONF_MAX_CLIENTS -#else -#define CTK_TERM_NUMCONNS 1 -#endif - -unsigned char ctk_draw_windowborder_height = 1; -unsigned char ctk_draw_windowborder_width = 1; -unsigned char ctk_draw_windowtitle_height = 1; - - -/* Term context states */ -enum { - TERM_DEALLOCATED, - TERM_ALLOCATED -}; - -/*-----------------------------------------------------------------------------------*/ -/* - * Local variables - */ -/*-----------------------------------------------------------------------------------*/ - -static unsigned char sizex, sizey; -static struct ctk_term_state conns[CTK_TERM_NUMCONNS]; - -/*-----------------------------------------------------------------------------------*/ -/* - * Unconditionally add an update - */ -/*-----------------------------------------------------------------------------------*/ -void ctk_term_update_add(struct ctk_term_state *ts, struct ctk_term_update *a) -{ - /* XXX: test both head and tail placement!*/ - a->next = ts->updates_pending; - ts->updates_pending = a; -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Allocate an update from the update pool - */ -/*-----------------------------------------------------------------------------------*/ -struct ctk_term_update * -ctk_term_update_alloc(struct ctk_term_state *vs) -{ - struct ctk_term_update *a; - - a = vs->updates_free; - if(a == NULL) { - return NULL; - } - vs->updates_free = a->next; - a->next = NULL; - return a; -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Return an update to the pool - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_term_update_free(struct ctk_term_state *ts, struct ctk_term_update *a) -{ - a->next = ts->updates_free; - ts->updates_free = a; -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Fetch update from the update list - */ -/*-----------------------------------------------------------------------------------*/ -struct ctk_term_update * -ctk_term_update_dequeue(struct ctk_term_state *ts) -{ - struct ctk_term_update *a; - - a = ts->updates_pending; - if(a == NULL) { - return a; - } - ts->updates_pending = a->next; - a->next = NULL; - return a; -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Remove an update from the update list - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_term_update_remove(struct ctk_term_state *ts, struct ctk_term_update *a) -{ - struct ctk_term_update *b, *c; - - if(a == ts->updates_pending) { - ts->updates_pending = a->next; - } else { - b = ts->updates_pending; - for(c = ts->updates_pending; c != a; b = c, c = c->next); - - b->next = a->next; - } -} -/*-----------------------------------------------------------------------------------*/ -/* - * Add an area update for a specific connection. Overlapping updates are merged - */ -/*-----------------------------------------------------------------------------------*/ -static void -update_area_connection(struct ctk_term_state *ts, - unsigned char x, unsigned char y, unsigned char w, unsigned char h) -{ - unsigned char x2, y2, ax2, ay2; - struct ctk_term_update *a; - - PRINTF(("update_area_connection: should update (%d:%d) (%d:%d)\n", - x, y, w, h)); - - /* First check if we already have a full update queued. If so, there - is no need to put this update on the list. If there is a full - update, it is always the first one on the list, so there is no - need to go step the list in search for it. */ - - if(ts->updates_pending != NULL && - ts->updates_pending->type == UPDATE_FULL) { - PRINTF(("Update_area_connecion: full update already queued...\n")); - return; - } - -again: - - /* Check that we don't update the same area twice by going through - the list and search for an update with the same coordinates. */ - for(a = ts->updates_pending; a != NULL; a = a->next) { - if(a->x == x && a->y == y && - a->w == w && a->h == h) { - PRINTF(("Update_area_connecion: found equal area\n")); - return; - } - } - - /* Next we check if this update covers an existing update. If so, we - remove the old update, expand this update so that it covers both - areas to be updated and run through the process again. */ - for(a = ts->updates_pending; a != NULL; a = a->next) { - x2 = x + w; - y2 = y + h; - - ax2 = a->x + a->w; - ay2 = a->y + a->h; - - /* Test if updates overlaps */ - if(((x < ax2) && (a->x < x2)) && - ((y < ay2) && (a->y < y2))) { - - /* Remove the old update from the list. */ - ctk_term_update_remove(ts, a); - - /* Put it on the free list. */ - ctk_term_update_free(ts, a); - - PRINTF(("update_area_connection: inside (%d:%d, %d:%d)\n", - a->x, a->y, ax2, ay2)); - - /* Find the area that covers both updates. */ -#define MIN(a,b) ((a) < (b)? (a): (b)) -#define MAX(a,b) ((a) > (b)? (a): (b)) - x = MIN(a->x, x); - y = MIN(a->y, y); - ax2 = MAX(ax2, x2); - ay2 = MAX(ay2, y2); - w = ax2 - x; - h = ay2 - y; - - /* This should really be done by a recursive call to this - function: update_area_connection(vs, x, y, w, h); but because - some compilers might not be able to optimize away the - recursive call, we do it using a goto instead. */ - PRINTF(("Update_area_connecion: trying larger area (%d:%d) (%d:%d)\n", x, y, w, h)); - goto again; - } - } - - /* Allocate an update object by pulling it off the free list. If - there are no free objects, we go for a full update instead. */ - - a = ctk_term_update_alloc(ts); - if(a == NULL) { - PRINTF(("Update_area_connecion: no free updates, doing full\n")); - /* Put all pending updates, except for one, on the free list. Use - the remaining update as a full update. */ - while(ts->updates_pending != NULL) { - a = ts->updates_pending; - ctk_term_update_remove(ts, a); - ctk_term_update_free(ts, a); - } - - a = ctk_term_update_alloc(ts); - a->type = UPDATE_FULL; - ctk_term_update_add(ts, a); - - - } else { - - PRINTF(("Update_area_connecion: allocated update for (%d:%d) (%d:%d)\n", x, y, w, h)); - /* Else, we put the update object at the end of the pending - list. */ - a->type = UPDATE_PARTS; - a->x = x; - a->y = y; - a->w = w; - a->h = h; - ctk_term_update_add(ts, a); - } -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Update an area for all connections. - */ -/*-----------------------------------------------------------------------------------*/ -static void -update_area(unsigned char x, unsigned char y, unsigned char w, unsigned char h) -{ - unsigned char i; - - if(h == 0 || w == 0) { - return; - } - - if ((x+w) > sizex) { - w = sizex - x; - } - - if ((y+h) > sizey) { - h = sizey - y; - } - - /* Update for all active terminal connections. */ - for(i = 0; i < CTK_TERM_NUMCONNS; ++i) { - if(conns[i].state != TERM_DEALLOCATED) { - update_area_connection(&conns[i],x, y, w, h); - } - } - -} -/*-----------------------------------------------------------------------------------*/ -/** - * Request a full update for a specific connections. Usefull when a new client is - * connected through telnet for example. - * - * \param ts Terminal connection state - */ -/*-----------------------------------------------------------------------------------*/ -void ctk_term_redraw(struct ctk_term_state *ts) -{ - update_area_connection(ts,0,0,ts->width, ts->height); -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Initialize a terminal state structure - */ -/*-----------------------------------------------------------------------------------*/ -static void -init_state(struct ctk_term_state *ts) -{ - unsigned char i; - - ts->width = sizex; - ts->height = sizey; - ts->x = ts->y = ts->x1 = ts->y1 = ts->x2 = ts->y2 = 0; - ts->c1 = ts->c2 = 0; - ts->w = sizex; - ts->h = sizey; - ts->state = TERM_ALLOCATED; - ts->inputstate = ANS_IDLE; - - /* Initialize the linked list of updates. */ - for(i = 0; i < CTK_TERM_MAX_UPDATES - 1; ++i) { - ts->updates_pool[i].next = &(ts->updates_pool[i + 1]); - } - ts->updates_pool[CTK_TERM_MAX_UPDATES-1].next = NULL; - - ts->updates_free = &ts->updates_pool[0]; - ts->updates_pending = ts->updates_current = NULL; -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Allocate a new state structure. Returns NULL if none available - */ -/*-----------------------------------------------------------------------------------*/ -struct ctk_term_state * -ctk_term_alloc_state(void) -{ - unsigned char i; - for(i = 0; i < CTK_TERM_NUMCONNS; ++i) { - if(conns[i].state == TERM_DEALLOCATED) { - init_state(&conns[i]); - return &conns[i]; - } - } - return NULL; -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Free a state structure. - * - * \param ts Terminal connection state - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_term_dealloc_state(struct ctk_term_state *s) -{ - s->state = TERM_DEALLOCATED; -} -/*-----------------------------------------------------------------------------------*/ -static char tmp[40]; -static void -cputsn(char *str, unsigned char len) -{ - strncpy(tmp, str, len); - tmp[len] = 0; - cputs(tmp); -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Initialize the terminal ctk-draw module. Called by the CTK module. - * - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_init(void) -{ - int i; - bgcolor(TERM_BACKGROUNDCOLOR); - screensize(&sizex, &sizey); - ctk_draw_clear(0, sizey); - ctk_term_input_init(); - for(i = 0; i < CTK_TERM_NUMCONNS; ++i) { - conns[i].state = TERM_DEALLOCATED; - } -} - -/*-----------------------------------------------------------------------------------*/ -static void -draw_widget(struct ctk_widget *w, - unsigned char x, unsigned char y, - unsigned char clipx, - unsigned char clipy, - unsigned char clipy1, unsigned char clipy2, - unsigned char focus) -{ - unsigned char xpos, ypos, xscroll; - unsigned char i, j; - char c, *text; - unsigned char len; - - xpos = x + w->x; - ypos = y + w->y; - - switch(w->type) { - case CTK_WIDGET_SEPARATOR: - textcolor((unsigned char)(TERM_SEPARATORCOLOR + focus)); - if(ypos >= clipy1 && ypos < clipy2) { - gotoxy(xpos, ypos); - for(i = 0; i < w->w; ++i) { - cputc(CH_SEPARATOR); - } - } - break; - case CTK_WIDGET_LABEL: - textcolor((unsigned char)(TERM_LABELCOLOR + focus)); - text = w->widget.label.text; - for(i = 0; i < w->h; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - gotoxy(xpos, ypos); - cputsn(text, w->w); - if(w->w - (wherex() - xpos) > 0) { - cclear((unsigned char)(w->w - (wherex() - xpos))); - } - } - ++ypos; - text += w->w; - } - break; - case CTK_WIDGET_BUTTON: - textcolor((unsigned char)(TERM_BUTTONCOLOR + focus)); - if(ypos >= clipy1 && ypos < clipy2) { - if(focus & CTK_FOCUS_WIDGET) { - revers(1); - } else { - revers(0); - } - cputcxy(xpos, ypos, CH_BUTTONLEFT); - cputsn(w->widget.button.text, w->w); - cputc(CH_BUTTONRIGHT); - revers(0); - } - break; - case CTK_WIDGET_HYPERLINK: - textcolor((unsigned char)(TERM_HYPERLINKCOLOR + focus)); - if(ypos >= clipy1 && ypos < clipy2) { - if(focus & CTK_FOCUS_WIDGET) { - revers(0); - } else { - revers(1); - } - gotoxy(xpos, ypos); - cputsn(w->widget.button.text, w->w); - revers(0); - } - break; - case CTK_WIDGET_TEXTENTRY: - textcolor((unsigned char)(TERM_TEXTENTRYCOLOR + focus)); - text = w->widget.textentry.text; - xscroll = 0; - if(w->widget.textentry.xpos >= w->w - 1) { - xscroll = w->widget.textentry.xpos - w->w + 1; - } - for(j = 0; j < w->h; ++j) { - if(ypos >= clipy1 && ypos < clipy2) { - if(w->widget.textentry.state == CTK_TEXTENTRY_EDIT && - w->widget.textentry.ypos == j) { - revers(0); - cputcxy(xpos, ypos, '>'); - c = 1; - for(i = 0; i < w->w; ++i) { - if(c != 0) { - c = text[i + xscroll]; - } - if(i == w->widget.textentry.xpos - xscroll) { - textcolor((unsigned char)(TERM_TEXTENTRYCOLOR + (focus ^ 0x01))); - revers(1); - } else { - revers(0); - } - if(c == 0) { - cputc(' '); - } else { - cputc(c); - } - revers(0); - textcolor((unsigned char)(TERM_TEXTENTRYCOLOR + focus)); - } - cputc('<'); - } else { - if(focus & CTK_FOCUS_WIDGET && j == w->widget.textentry.ypos) { - revers(1); - } else { - revers(0); - } - cvlinexy(xpos, ypos, 1); - gotoxy((unsigned char)(xpos + 1), ypos); - cputsn(text, w->w); - i = wherex(); - if(i - xpos - 1 < w->w) { - cclear((unsigned char)(w->w - (i - xpos) + 1)); - } - cvline(1); - } - } - ++ypos; - text += w->widget.textentry.len + 1; - } - revers(0); - break; - case CTK_WIDGET_ICON: - if(ypos >= clipy1 && ypos < clipy2) { - textcolor((unsigned char)(TERM_ICONCOLOR + focus)); - if(focus & 1) { - revers(1); - } else { - revers(0); - } - - x = xpos; - len = strlen(w->widget.icon.title); - if(x + len >= sizex) { - x = sizex - len; - } - - gotoxy(x, (unsigned char)(ypos + 3)); - if(ypos >= clipy1 && ypos < clipy2) { - cputs(w->widget.icon.title); - } - - gotoxy(xpos, ypos); - - if (w->widget.icon.textmap != NULL) { - for(i = 0; i < 3; ++i) { - - if(ypos >= clipy1 && ypos < clipy2) { - gotoxy(xpos,ypos); - cputc(w->widget.icon.textmap[0 + 3 * i]); - cputc(w->widget.icon.textmap[1 + 3 * i]); - cputc(w->widget.icon.textmap[2 + 3 * i]); - } - ++ypos; - } - } - x = xpos; - revers(0); - } - break; - - default: - break; - } -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Draw a widget on the VNC screen. Called by the CTK module. - * - * \param w The widget to be drawn. - * \param focus The focus of the widget. - * \param clipy1 The lower y coordinate bound. - * \param clipy2 The upper y coordinate bound. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_widget(struct ctk_widget *w, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - struct ctk_window *win = w->window; - struct ctk_icon *icon; - unsigned char posx, posy, x, len; - - posx = win->x + 1; - posy = win->y + 2; - - if(w == win->focused) { - focus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, posx, posy, - (unsigned char)(posx + win->w), - (unsigned char)(posy + win->h), - clipy1, clipy2, - focus); - - if(w->type != CTK_WIDGET_ICON) { - update_area((unsigned char)(posx + w->x), - (unsigned char)(posy + w->y), - (unsigned char)(w->w + 2), - w->h); - } else { - icon = (struct ctk_icon *)w; - - len = strlen(icon->title); - x = posx + w->x; - if(x + len >= sizex) { - x = sizex - len; - } - - update_area(x, - (unsigned char)(posy + w->y), - (unsigned char)(len > 4? len: 4), - w->h); - } - -#ifdef CTK_CONIO_CONF_UPDATE - CTK_CONIO_CONF_UPDATE(); -#endif /* CTK_CONIO_CONF_UPDATE */ -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Clear a window on the terminal screen. Called by the CTK module. - * - * \param window The window to be cleared. - * \param focus The focus of the window. - * \param clipy1 The lower y coordinate bound. - * \param clipy2 The upper y coordinate bound. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_clear_window(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - unsigned char i; - unsigned char h; - - textcolor((unsigned char)(TERM_WINDOWCOLOR + focus)); - - h = window->y + 2 + window->h; - /* Clear window contents. */ - for(i = window->y + 2; i < h; ++i) { - if(i >= clipy1 && i < clipy2) { - cclearxy((unsigned char)(window->x + 1), i, window->w); - } - } - - update_area((unsigned char)(window->x + 1), - (unsigned char)(window->y + 2), - window->w, window->h); -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_window_contents(struct ctk_window *window, unsigned char focus, - unsigned char clipy1, unsigned char clipy2, - unsigned char x1, unsigned char x2, - unsigned char y1, unsigned char y2) -{ - struct ctk_widget *w; - unsigned char wfocus; - - /* Draw inactive widgets. */ - for(w = window->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - focus); - } - - /* Draw active widgets. */ - for(w = window->active; w != NULL; w = w->next) { - wfocus = focus; - if(w == window->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - wfocus); - } - -#ifdef CTK_CONIO_CONF_UPDATE - CTK_CONIO_CONF_UPDATE(); -#endif /* CTK_CONIO_CONF_UPDATE */ - -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Draw a window on the terminal screen. Called by the CTK module. - * - * \param window The window to be drawn. - * \param focus The focus of the window. - * \param clipy1 The lower y coordinate bound. - * \param clipy2 The upper y coordinate bound. - * \param draw_borders The flag for border drawing. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_window(struct ctk_window *window, unsigned char focus, - unsigned char clipy1, unsigned char clipy2, - unsigned char draw_borders) -{ - unsigned char x, y; - unsigned char h; - unsigned char x1, y1, x2, y2; - unsigned char i; - - - if(window->y + 1 >= clipy2) { - return; - } - - x = window->x; - y = window->y + 1; - x1 = x + 1; - y1 = y + 1; - x2 = x1 + window->w; - y2 = y1 + window->h; - - if(draw_borders) { - - /* Draw window frame. */ - textcolor((unsigned char)(TERM_WINDOWCOLOR + focus)); - - if(y >= clipy1) { - cputcxy(x, y, CH_ULCORNER); - for(i = wherex() + window->titlelen + CTK_CONF_WINDOWMOVE * 2; i < x2; ++i) { - cputcxy(i, y, CH_TITLEBAR); - } - cputcxy(x2, y, CH_URCORNER); - } - - h = window->h; - - if(clipy1 > y1) { - if(clipy1 - y1 < h) { - h = clipy1 - y1; - y1 = clipy1; - } else { - h = 0; - } - } - - if(clipy2 < y1 + h) { - if(y1 >= clipy2) { - h = 0; - } else { - h = clipy2 - y1; - } - } - - for(i = y1; i < y1 + h; ++i) { - cputcxy(x, i, CH_WINDOWLBORDER); - cputcxy(x2, i, CH_WINDOWRBORDER); - } - - if(y2 >= clipy1 && - y2 < clipy2) { - cputcxy(x, y2, CH_LLCORNER); - for(i = x1; i < x2; ++i) { - cputcxy(i, y2, CH_WINDOWLOWERBORDER); - } - cputcxy(x2, y2, CH_LRCORNER); - } - } - - draw_window_contents(window, focus, clipy1, clipy2, - x1, x2, (unsigned char)(y + 1), y2); - - update_area(window->x, window->y, - (unsigned char)(window->w + 2), - (unsigned char)(window->h + 2)); -} -/*-----------------------------------------------------------------------------------*/ -/** - * Draw a dialog on the terminal screen. Called by the CTK module. - * - * \param dialog The dialog to be drawn. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_dialog(struct ctk_window *dialog) -{ - unsigned char x, y; - unsigned char i; - unsigned char x1, y1, x2, y2; - - textcolor(TERM_WINDOWCOLOR + CTK_FOCUS_DIALOG); - - x = dialog->x; - y = dialog->y + 1; - - - x1 = x + 1; - y1 = y + 1; - x2 = x1 + dialog->w; - y2 = y1 + dialog->h; - - - /* Draw dialog frame. */ - - for(i = y1; i < y1 + dialog->h; ++i) { - cputcxy(x, i, CH_DIALOGLBORDER); - cputcxy(x2, i, CH_DIALOGRBORDER); - } - - for(i = x1; i < x2; ++i) { - cputcxy(i, y, CH_DIALOGUPPERBORDER); - cputcxy(i, y2, CH_DIALOGLOWERBORDER); - } - - cputcxy(x, y, CH_DIALOG_ULCORNER); - cputcxy(x, y2, CH_DIALOG_LLCORNER); - cputcxy(x2, y, CH_DIALOG_URCORNER); - cputcxy(x2, y2, CH_DIALOG_LRCORNER); - - - /* Clear dialog contents. */ - for(i = y1; i < y2; ++i) { - cclearxy(x1, i, dialog->w); - } - - draw_window_contents(dialog, CTK_FOCUS_DIALOG, 0, sizey, - x1, x2, y1, y2); - - update_area(dialog->x, dialog->y, - (unsigned char)(dialog->w + 4), - (unsigned char)(dialog->h + 4)); -} -/*-----------------------------------------------------------------------------------*/ -/** - * Clear parts of the terminal desktop. Called by the CTK module. - * - * \param y1 The lower y coordinate bound. - * \param y2 The upped y coordinate bound. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_clear(unsigned char y1, unsigned char y2) -{ - unsigned char i; - - textcolor(TERM_BACKGROUNDCOLOR); - for(i = y1; i < y2; ++i) { - cclearxy(0, i, sizex); - } - - update_area(0, y1, sizex, (unsigned char)(y2 - y1)); -} -/*-----------------------------------------------------------------------------------*/ -/** \internal - * Draw one menu on the termainl desktop. - * - * \param m The CTK menu to be drawn. - */ -/*-----------------------------------------------------------------------------------*/ -static void -draw_menu(struct ctk_menu *m) -{ - unsigned char x, x2, y; - - textcolor(TERM_MENUCOLOR); - x = wherex(); - cputs(m->title); - cputc(' '); - x2 = wherex(); - if(x + CTK_CONF_MENUWIDTH > sizex) { - x = sizex - CTK_CONF_MENUWIDTH; - } - - - for(y = 0; y < m->nitems; ++y) { - if(y == m->active) { - textcolor(TERM_ACTIVEMENUCOLOR); - revers(0); - } else { - textcolor(TERM_MENUCOLOR); - } - gotoxy(x, (unsigned char)(y + 1)); - if(m->items[y].title[0] == '-') { - chline(CTK_CONF_MENUWIDTH); - } else { - cputs(m->items[y].title); - } - if(x + CTK_CONF_MENUWIDTH > wherex()) { - cclear((unsigned char)(x + CTK_CONF_MENUWIDTH - wherex())); - } - revers(1); - } - - gotoxy(x2, 0); - textcolor(TERM_MENUCOLOR); - - update_area(x, 0, CTK_CONF_MENUWIDTH, (unsigned char)(m->nitems + 1)); -} -/*-----------------------------------------------------------------------------------*/ -/** - * Draw the menus on the terminal desktop. Called by the CTK module. - * - * \param menus The CTK menubar. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_menus(struct ctk_menus *menus) -{ - struct ctk_menu *m; - - - /* Draw menus */ - textcolor(TERM_MENUCOLOR); - gotoxy(0, 0); - revers(1); - cputc(' '); - for(m = menus->menus->next; m != NULL; m = m->next) { - if(m != menus->open) { - update_area(wherex(), 0, (unsigned char)(strlen(m->title) + 1), 1); - cputs(m->title); - cputc(' '); - } else { - draw_menu(m); - } - } - - - if(wherex() + strlen(menus->desktopmenu->title) + 1>= sizex) { - gotoxy((unsigned char)(sizex - strlen(menus->desktopmenu->title) - 1), 0); - } else { - cclear((unsigned char)(sizex - wherex() - strlen(menus->desktopmenu->title) - 1)); - update_area(wherex(), 0, - (unsigned char)(sizex - wherex() -strlen(menus->desktopmenu->title) - 1), - 1); - } - - /* Draw desktopmenu */ - if(menus->desktopmenu != menus->open) { - update_area(wherex(), 0, (unsigned char)(strlen(menus->desktopmenu->title) + 1), 1); - cputs(menus->desktopmenu->title); - cputc(' '); - } else { - draw_menu(menus->desktopmenu); - } - - revers(0); -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Obtain the height of the terminal desktop. Called by the CTK module. - * - * \return The height of the terminal desktop, in characters. - */ -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_draw_height(void) -{ - return sizey; -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Obtain the height of the terminal desktop. Called by the CTK module. - * - * \return The height of the terminal desktop, in characters. - */ -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_draw_width(void) -{ - return sizex; -} - -/*-----------------------------------------------------------------------------------*/ -/** - * Draws a character on the virtual screen. Called by the libconio module. - * - * \param c The character to be drawn. - * \param xpos The x position of the character. - * \param ypos The y position of the character. - * \param reversedflag Determines if the character should be reversed or not. - * \param color The color of the character. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_arch_draw_char(char c, - unsigned char xpos, - unsigned char ypos, - unsigned char reversedflag, - unsigned char color) -{ - /* Check if out of bounds */ - if (xpos >= sizex || ypos >= sizey) { - return; - } - ctk_term_out_update_screen(xpos,ypos, (unsigned char)(c & 0x7f), color); -} diff --git a/backyard/core/ctk/ctk-term.h b/backyard/core/ctk/ctk-term.h deleted file mode 100644 index bb9dda384..000000000 --- a/backyard/core/ctk/ctk-term.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-term.h,v 1.1 2007/05/26 21:54:33 oliverschmidt Exp $ - */ -#ifndef __CTK_TERM_H__ -#define __CTK_TERM_H__ - -struct ctk_term_state* ctk_term_alloc_state(void); -void ctk_term_dealloc_state(struct ctk_term_state *s); -void ctk_term_redraw(struct ctk_term_state *s); -void ctk_term_sent(struct ctk_term_state* ts); -unsigned short ctk_term_send(struct ctk_term_state* ts, - unsigned char* buf, - unsigned short maxlen); - -void ctk_term_input(struct ctk_term_state* ts, unsigned char b); - -#endif /* __CTK_TERM_H__ */ diff --git a/backyard/core/ctk/ctk-termarch.h b/backyard/core/ctk/ctk-termarch.h deleted file mode 100644 index 9313b394d..000000000 --- a/backyard/core/ctk/ctk-termarch.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-termarch.h,v 1.1 2007/05/26 21:54:33 oliverschmidt Exp $ - */ -#ifndef __CTK_TERMARCH_H__ -#define __CTK_TERMARCH_H__ - - -typedef char ctk_arch_key_t; - -unsigned char ctk_arch_keyavail(void); -ctk_arch_key_t ctk_arch_getkey(void); - -#define CH_ENTER 0x0d -#define CH_DEL 0x08 - -#define CH_TAB 0x09 - -#define CH_CURS_LEFT 0x11 -#define CH_CURS_UP 0x12 -#define CH_CURS_RIGHT 0x13 -#define CH_CURS_DOWN 0x14 - - -#define CH_F1 0x15 -#define CH_F2 0x16 -#define CH_F3 0x17 -#define CH_F4 0x18 - -#endif /* __CTK_TERMARCH_H__ */ diff --git a/backyard/core/ctk/ctk-termserial.c b/backyard/core/ctk/ctk-termserial.c deleted file mode 100644 index 90a55cb59..000000000 --- a/backyard/core/ctk/ctk-termserial.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-termserial.c,v 1.1 2007/05/26 21:46:28 oliverschmidt Exp $ - */ -#include "contiki.h" -#include "loader.h" -#include "ctk-term.h" -#include "serial32.h" - -/*-----------------------------------------------------------------------------------*/ -/* - * #defines and enums - */ -/*-----------------------------------------------------------------------------------*/ -#define SIO_POLL(c) (SerialRead(&c) == 1) -#define SIO_SEND(c) SerialWrite(c) -#define SIO_INIT SerialOpenPort("COM1") - -#ifdef CTK_TERM_CONF_SERIAL_BUFFER_SIZE -#define OUTPUT_BUFFER_SIZE CTK_TERM_CONF_SERIAL_BUFFER_SIZE -#else -#define OUTPUT_BUFFER_SIZE 200 -#endif - -/*-----------------------------------------------------------------------------------*/ -/* - * Local variables - */ -/*-----------------------------------------------------------------------------------*/ -static ek_id_t id = EK_ID_NONE; - -static struct ctk_term_state* termstate; -static unsigned char outbuffer[OUTPUT_BUFFER_SIZE]; - -EK_POLLHANDLER(pollhandler); -EK_EVENTHANDLER(eventhandler, ev, data); -EK_PROCESS(p, "CTK serial server", EK_PRIO_NORMAL, - eventhandler, pollhandler, NULL); - -/*-----------------------------------------------------------------------------------*/ -/* - * Idle function - */ -/*-----------------------------------------------------------------------------------*/ -EK_POLLHANDLER(pollhandler) -{ - unsigned char c; - unsigned short len; - while(SIO_POLL(c)) { - ctk_term_input(termstate, c); - } - - len = ctk_term_send(termstate, outbuffer, OUTPUT_BUFFER_SIZE); - if (len > 0) { - unsigned short i; - for (i=0; i < len; ++i) { - SIO_SEND(outbuffer[i]); - } - ctk_term_sent(termstate); - } -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Init function - */ -/*-----------------------------------------------------------------------------------*/ -LOADER_INIT_FUNC(ctk_termserial_init, arg) -{ - arg_free(arg); - SIO_INIT; - termstate = ctk_term_alloc_state(); - if (termstate == NULL) return; - if(id == EK_ID_NONE) { - id = ek_start(&p); - } -} -/*-----------------------------------------------------------------------------------*/ -EK_EVENTHANDLER(eventhandler, ev, data) -{ - -} diff --git a/backyard/core/ctk/ctk-termserial.h b/backyard/core/ctk/ctk-termserial.h deleted file mode 100644 index 1772d4a63..000000000 --- a/backyard/core/ctk/ctk-termserial.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-termserial.h,v 1.1 2007/05/26 21:46:28 oliverschmidt Exp $ - */ -#ifndef __CTK_TERMSERIAL_H__ -#define __CTK_TERMSERIAL_H__ - -void ctk_termserial_init(char *arg); - -#endif /* __CTK_TERMSERIAL_H__ */ diff --git a/backyard/core/ctk/ctk-termtelnet.c b/backyard/core/ctk/ctk-termtelnet.c deleted file mode 100644 index 924535c8d..000000000 --- a/backyard/core/ctk/ctk-termtelnet.c +++ /dev/null @@ -1,655 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-termtelnet.c,v 1.2 2010/10/19 18:29:03 adamdunkels Exp $ - */ -#include "contiki.h" -#include "loader.h" -#include "memb.h" -#include "ctk-term.h" -#include "contiki-conf.h" - -/*-----------------------------------------------------------------------------------*/ -/* - * #defines and enums - */ -/*-----------------------------------------------------------------------------------*/ -/* Telnet special characters */ -#define TN_NULL 0 -#define TN_BL 7 -#define TN_BS 8 -#define TN_HT 9 -#define TN_LF 10 -#define TN_VT 11 -#define TN_FF 12 -#define TN_CR 13 - -/* Commands preceeded by TN_IAC */ -#define TN_SE 240 -#define TN_NOP 241 -#define TN_DM 242 -#define TN_BRK 243 -#define TN_IP 244 -#define TN_AO 245 -#define TN_AYT 246 -#define TN_EC 247 -#define TN_EL 248 -#define TN_GA 249 -#define TN_SB 250 -#define TN_WILL 251 -#define TN_WONT 252 -#define TN_DO 253 -#define TN_DONT 254 -#define TN_IAC 255 - -#define TNO_BIN 0 -#define TNO_ECHO 1 -#define TNO_SGA 3 -#define TNO_NAWS 31 - -/* Telnet parsing states */ -enum { - TNS_IDLE, - TNS_IAC, - TNS_OPT, - TNS_SB, - TNS_SBIAC -}; - -/* Telnet option negotiation states */ -enum { - TNOS_NO, - TNOS_WANTNO_EMPTY, - TNOS_WANTNO_OPPOSITE, - TNOS_WANTYES_EMPTY, - TNOS_WANTYES_OPPOSITE, - TNOS_YES -}; - -/* Telnet session states */ -enum { - TTS_FREE, /* Not allocated */ - TTS_IDLE, /* No data to send and nothing sent */ - TTS_SEND_TNDATA, /* Sending telnet data */ - TTS_SEND_APPDATA /* Sending data from upper layers */ -}; - -/* Number of options supported (we only need ECHO(1) and SGA(3) options) */ -#define TNSM_MAX_OPTIONS 4 - -/* Max option replies in output queue */ -#define TNQLEN 20 - -/* Number of option buffer */ -#define OPTION_POOL_SIZE 20 - -/* Maximum number of telnet sessions */ -#ifdef CTK_TERM_CONF_MAX_TELNET_CLIENTS -#define NUM_CONNS CTK_TERM_CONF_MAX_TELNET_CLIENTS -#else -#define NUM_CONNS 1 -#endif - -#ifdef CTK_TERM_CONF_TELNET_PORT -#define PORT CTK_TERM_CONF_TELNET_PORT -#else -#define PORT 23 -#endif - -/*-----------------------------------------------------------------------------------*/ -/* - * Structures - */ -/*-----------------------------------------------------------------------------------*/ -/* Telnet option state structure */ -struct TNOption { - unsigned char state; - unsigned char wants; -}; - -/* Telnet handling state structure */ -struct TNSMState -{ - struct TNOption myOpt[TNSM_MAX_OPTIONS]; - struct TNOption hisOpt[TNSM_MAX_OPTIONS]; - unsigned char cmd; - unsigned char state; -}; - -/* Telnet session state */ -struct telnet_state -{ - unsigned char state; - unsigned char* sendq[TNQLEN]; - struct TNSMState tnsm; - struct ctk_term_state* termstate; -}; - -/*-----------------------------------------------------------------------------------*/ -/* - * Local variables - */ -/*-----------------------------------------------------------------------------------*/ -/*static DISPATCHER_UIPCALL(ctk_termtelnet_appcall, state);*/ -static void ctk_termtelnet_appcall(void *state); - -EK_EVENTHANDLER(eventhandler, ev, data); -EK_PROCESS(p, "CTK telnet server", EK_PRIO_NORMAL, - eventhandler, NULL, NULL); -/*static struct dispatcher_proc p = - {DISPATCHER_PROC("CTK telnet server", NULL, NULL, - ctk_termtelnet_appcall)};*/ - -static ek_id_t id = EK_ID_NONE; - -/* Option negotiation buffer pool */ -struct size_3 { - char size[3]; -}; -MEMB(telnetbuf, struct size_3, OPTION_POOL_SIZE); - -static int i,j; -static struct telnet_state states[NUM_CONNS]; - -/*-----------------------------------------------------------------------------------*/ -/* - * Send an option reply on a connection - */ -/*-----------------------------------------------------------------------------------*/ -static void -Reply(struct telnet_state* tns, unsigned char cmd, unsigned char opt) -{ - unsigned char* buf = (unsigned char*)memb_alloc(&telnetbuf); - if (buf != 0) { - buf[0]=TN_IAC; - buf[1]=cmd; - buf[2]=opt; - for (i=0; i < TNQLEN; i++) { - if (tns->sendq[i] == 0) { - tns->sendq[i] = buf; - return; - } - } - /* Queue is full. Drop it */ - memb_free(&telnetbuf, (char*)buf); - } -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Prepare for enabling one of remote side options. - */ -/*-----------------------------------------------------------------------------------*/ -static void -EnableHisOpt(struct telnet_state* tns, unsigned char opt) -{ - switch(tns->tnsm.hisOpt[opt].state) { - case TNOS_NO: - tns->tnsm.hisOpt[opt].wants = 1; - tns->tnsm.hisOpt[opt].state = TNOS_WANTYES_EMPTY; - Reply(tns, TN_DO, opt); - break; - case TNOS_WANTNO_EMPTY: - tns->tnsm.hisOpt[opt].state = TNOS_WANTNO_OPPOSITE; - break; - case TNOS_WANTNO_OPPOSITE: - break; - case TNOS_WANTYES_EMPTY: - tns->tnsm.hisOpt[opt].state = TNOS_YES; - break; - case TNOS_WANTYES_OPPOSITE: - tns->tnsm.hisOpt[opt].state = TNOS_WANTYES_EMPTY; - break; - case TNOS_YES: - break; - } -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Prepare for enabling one of my options - */ -/*-----------------------------------------------------------------------------------*/ -static void -EnableMyOpt(struct telnet_state* tns, unsigned char opt) -{ - if (opt < TNSM_MAX_OPTIONS) { - switch(tns->tnsm.myOpt[opt].state) { - case TNOS_NO: - tns->tnsm.myOpt[opt].wants = 1; - tns->tnsm.myOpt[opt].state = TNOS_WANTYES_EMPTY; - Reply(tns, TN_WILL, opt); - break; - case TNOS_WANTNO_EMPTY: - tns->tnsm.myOpt[opt].state = TNOS_WANTNO_OPPOSITE; - break; - case TNOS_WANTNO_OPPOSITE: - break; - case TNOS_WANTYES_EMPTY: - tns->tnsm.myOpt[opt].state = TNOS_YES; - break; - case TNOS_WANTYES_OPPOSITE: - tns->tnsm.myOpt[opt].state = TNOS_WANTYES_EMPTY; - break; - case TNOS_YES: - break; - } - } -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Implementation of option negotiation using the Q-method - */ -/*-----------------------------------------------------------------------------------*/ -static void -HandleCommand(struct telnet_state* tns, unsigned char cmd, unsigned char opt) -{ - if (opt < TNSM_MAX_OPTIONS) { - /* Handling according to RFC 1143 "Q Method" */ - switch(cmd) { - case TN_WILL: - switch(tns->tnsm.hisOpt[opt].state) { - case TNOS_NO: - if (tns->tnsm.hisOpt[opt].wants) { - tns->tnsm.hisOpt[opt].state = TNOS_YES; - Reply(tns, TN_DO, opt); - } - else { - Reply(tns, TN_DONT, opt); - } - break; - case TNOS_WANTNO_EMPTY: - tns->tnsm.hisOpt[opt].state = TNOS_NO; - break; - case TNOS_WANTNO_OPPOSITE: - tns->tnsm.hisOpt[opt].state = TNOS_YES; - break; - case TNOS_WANTYES_EMPTY: - tns->tnsm.hisOpt[opt].state = TNOS_YES; - break; - case TNOS_WANTYES_OPPOSITE: - tns->tnsm.hisOpt[opt].state = TNOS_WANTNO_EMPTY; - Reply(tns, TN_DONT, opt); - break; - case TNOS_YES: - break; - } - break; - case TN_WONT: - switch(tns->tnsm.hisOpt[opt].state) { - case TNOS_NO: - break; - case TNOS_WANTNO_EMPTY: - case TNOS_WANTYES_EMPTY: - case TNOS_WANTYES_OPPOSITE: - tns->tnsm.hisOpt[opt].state = TNOS_NO; - break; - case TNOS_WANTNO_OPPOSITE: - tns->tnsm.hisOpt[opt].state = TNOS_WANTYES_EMPTY; - Reply(tns, TN_DO, opt); - break; - case TNOS_YES: - tns->tnsm.hisOpt[opt].state = TNOS_NO; - Reply(tns, TN_DONT, opt); - break; - } - break; - case TN_DO: - switch(tns->tnsm.myOpt[opt].state) { - case TNOS_NO: - if (tns->tnsm.myOpt[opt].wants) { - tns->tnsm.myOpt[opt].state = TNOS_YES; - Reply(tns, TN_WILL, opt); - } - else { - Reply(tns, TN_WONT, opt); - } - break; - case TNOS_WANTNO_EMPTY: - tns->tnsm.myOpt[opt].state = TNOS_NO; - break; - case TNOS_WANTNO_OPPOSITE: - tns->tnsm.myOpt[opt].state = TNOS_YES; - break; - case TNOS_WANTYES_EMPTY: - tns->tnsm.myOpt[opt].state = TNOS_YES; - break; - case TNOS_WANTYES_OPPOSITE: - tns->tnsm.myOpt[opt].state = TNOS_WANTNO_EMPTY; - Reply(tns, TN_WONT, opt); - break; - case TNOS_YES: - break; - } - break; - case TN_DONT: - switch(tns->tnsm.myOpt[opt].state) { - case TNOS_NO: - break; - case TNOS_WANTNO_EMPTY: - case TNOS_WANTYES_EMPTY: - case TNOS_WANTYES_OPPOSITE: - tns->tnsm.myOpt[opt].state = TNOS_NO; - break; - case TNOS_WANTNO_OPPOSITE: - tns->tnsm.myOpt[opt].state = TNOS_WANTYES_EMPTY; - Reply(tns, TN_WILL, opt); - break; - case TNOS_YES: - tns->tnsm.myOpt[opt].state = TNOS_NO; - Reply(tns, TN_WONT, opt); - break; - } - break; - } - } - else { - switch(cmd) { - case TN_WILL: - Reply(tns, TN_DONT, opt); - break; - case TN_WONT: - break; - case TN_DO: - Reply(tns, TN_WONT, opt); - break; - case TN_DONT: - break; - } - } -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Telnet data parsing - */ -/*-----------------------------------------------------------------------------------*/ -static unsigned char -parse_input(struct telnet_state* tns, unsigned char b) -{ - unsigned char ret = 0; - switch(tns->tnsm.state) { - case TNS_IDLE: - if (b == TN_IAC) tns->tnsm.state = TNS_IAC; - else ret = 1; - break; - case TNS_IAC: - switch(b) { - case TN_SE: - case TN_NOP: - case TN_DM: - case TN_BRK: - case TN_IP: - case TN_AO: - case TN_AYT: - case TN_EC: - case TN_EL: - case TN_GA: - tns->tnsm.state = TNS_IDLE; - break; - case TN_SB: - tns->tnsm.state = TNS_SB; - break; - case TN_WILL: - case TN_WONT: - case TN_DO: - case TN_DONT: - tns->tnsm.cmd = b; - tns->tnsm.state = TNS_OPT; - break; - case TN_IAC: - tns->tnsm.state = TNS_IDLE; - ret = 1; - break; - default: - /* Drop unknown IACs */ - tns->tnsm.state = TNS_IDLE; - break; - } - break; - case TNS_OPT: - HandleCommand(tns, tns->tnsm.cmd, b); - tns->tnsm.state = TNS_IDLE; - break; - case TNS_SB: - if (b == TN_IAC) { - tns->tnsm.state = TNS_SBIAC; - } - break; - case TNS_SBIAC: - if (b == TN_IAC) { - tns->tnsm.state = TNS_SB; - } - else if (b == TN_SE) { - tns->tnsm.state = TNS_IDLE; - } - else { - tns->tnsm.state = TNS_IDLE; - } - break; - } - return ret; -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Initialize telnet machine - */ -/*-----------------------------------------------------------------------------------*/ -static void -telnet_init(struct telnet_state* tns) -{ - int i; - for (i = 0; i < TNSM_MAX_OPTIONS; i++) { - tns->tnsm.myOpt[i].state = TNOS_NO; - tns->tnsm.myOpt[i].wants = 0; - tns->tnsm.hisOpt[i].state = TNOS_NO; - tns->tnsm.hisOpt[i].wants = 0; - } - tns->tnsm.state = TNS_IDLE; -} - - -/*-----------------------------------------------------------------------------------*/ -/* - * Allocate a telnet session structure (including terminal state) - */ -/*-----------------------------------------------------------------------------------*/ -static struct telnet_state* -alloc_state() -{ - for (i=0; i < NUM_CONNS; i++) { - if (states[i].state == TTS_FREE) { - states[i].termstate = ctk_term_alloc_state(); - if (states[i].termstate != NULL) { - for (j = 0; j < TNQLEN; j++) { - states[i].sendq[j] = 0; - } - telnet_init(&states[i]); - states[i].state = TTS_IDLE; - return &(states[i]); - } - } - } - return NULL; -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Free a telnet session structure (including terminal state) - */ -/*-----------------------------------------------------------------------------------*/ -static void -free_state(struct telnet_state* tns) -{ - if (tns != NULL) { - ctk_term_dealloc_state(tns->termstate); - tns->state = TTS_FREE; - } -} - -/*-----------------------------------------------------------------------------------*/ -/* - * A packet is successfully sent - */ -/*-----------------------------------------------------------------------------------*/ -static void -acked(struct telnet_state* tns) -{ - /* Were we sending a telnet option packet? */ - if (tns->state == TTS_SEND_TNDATA) { - /* Yes, free it and update queue */ - if (tns->sendq[0] != 0) { - memb_free(&telnetbuf, (char*)(tns->sendq[0])); - for (i=1; i < TNQLEN; i++) { - tns->sendq[i-1] = tns->sendq[i]; - } - tns->sendq[TNQLEN-1] = 0; - /* No options left. Go idle */ - if (tns->sendq[0] == 0) { - tns->state = TTS_IDLE; - } - } - } - /* Or were we sending application date ? */ - else if (tns->state == TTS_SEND_APPDATA) { - /* Inform application that data is sent successfully */ - ctk_term_sent(tns->termstate); - tns->state = TTS_IDLE; - } -} - -/*-----------------------------------------------------------------------------------*/ -/* - * Send data on a connections - */ -/*-----------------------------------------------------------------------------------*/ -static void -senddata(struct telnet_state* tns) -{ - /* Check if there are any option packets to send */ - if (tns->state == TTS_IDLE || tns->state == TTS_SEND_TNDATA) { - if (tns->sendq[0] != 0) { - tns->state = TTS_SEND_TNDATA; - uip_send(tns->sendq[0],3); - } - } - /* Check if terminal wants to send any data */ - if (tns->state == TTS_IDLE || tns->state == TTS_SEND_APPDATA) { - u16_t len = ctk_term_send(tns->termstate, (unsigned char*)uip_appdata, (unsigned short)uip_mss()); - if (len > 0) { - tns->state = TTS_SEND_APPDATA; - uip_send(uip_appdata, len); - } - } -} - -/*-----------------------------------------------------------------------------------*/ -/* - * uIP callback - */ -/*-----------------------------------------------------------------------------------*/ -static void -ctk_termtelnet_appcall(void *state) -{ - struct telnet_state *tns; - - tns = (struct telnet_state*)(state); - - if(uip_connected()) { - if(tns == NULL) { - tns = alloc_state(); - if(tns == NULL) { - uip_close(); - return; - } - tcp_markconn(uip_conn, (void *)tns); - } - /* Try to negotiate some options */ - EnableHisOpt(tns, TNO_SGA); - EnableMyOpt(tns,TNO_SGA); - EnableMyOpt(tns,TNO_ECHO); - /* Request update of screen */ - ctk_term_redraw(tns->termstate); - senddata(tns); - } else if(uip_closed() || uip_aborted()) { - free_state(tns); - return; - } - - if (uip_acked()) { - acked(tns); - } - - if (uip_newdata()) { - for(j = 0; j < uip_datalen(); j++) { - if (parse_input(tns, uip_appdata[j])) { - /* Pass it uppwards */ - ctk_term_input(tns->termstate, uip_appdata[j]); - } - } - } - - if(uip_rexmit() || - uip_newdata() || - uip_acked()) { - senddata(tns); - } else if(uip_poll()) { - if (tns->state == TTS_IDLE) { - senddata(tns); - } - } -} -/*-----------------------------------------------------------------------------------*/ -/* - * Init function - */ -/*-----------------------------------------------------------------------------------*/ -LOADER_INIT_FUNC(ctk_termtelnet_init, arg) -{ - arg_free(arg); - if(id == EK_ID_NONE) { - memb_init(&telnetbuf); - for (i=0; i < NUM_CONNS; i++) { - states[i].state = TTS_FREE; - } - id = ek_start(&p); - } -} -/*-----------------------------------------------------------------------------------*/ -EK_EVENTHANDLER(eventhandler, ev, data) -{ - if(ev == EK_EVENT_INIT) { - tcp_listen(UIP_HTONS(PORT)); - } else if(ev == tcpip_event) { - ctk_termtelnet_appcall(data); - } -} diff --git a/backyard/core/ctk/ctk-termtelnet.h b/backyard/core/ctk/ctk-termtelnet.h deleted file mode 100644 index ed2ac3db0..000000000 --- a/backyard/core/ctk/ctk-termtelnet.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ctk-termtelnet.h,v 1.1 2007/05/26 21:46:28 oliverschmidt Exp $ - */ -#ifndef __CTK_TERMTELNET_H__ -#define __CTK_TERMTELNET_H__ - -void ctk_termtelnet_init(char *arg); - -#endif /* __CTK_TERMTELNET_H__ */ diff --git a/backyard/core/ctk/ctk-vncserver-service.c b/backyard/core/ctk/ctk-vncserver-service.c deleted file mode 100644 index f0e6b6279..000000000 --- a/backyard/core/ctk/ctk-vncserver-service.c +++ /dev/null @@ -1,1146 +0,0 @@ -/** - * \file - * The ctk-draw implementation for the CTK VNC server. - * \author Adam Dunkels - * - */ - -/** - * \defgroup CTKVNCServer The CTK VNC server - * @{ - */ - -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-vncserver-service.c,v 1.2 2010/10/19 18:29:03 adamdunkels Exp $ - * - */ - -#include "ctk/ctk.h" -#include "ctk-draw.h" -#include "ctk-draw-service.h" - -#include "contiki.h" - -#include "ek.h" -#include "loader.h" -#include "vnc-server.h" -#include "vnc-out.h" - -#include "ctk-vncfont.h" - -#include "ctk-vncserver.h" -#include "ctk-vncserver-conf.h" - -#include - -static unsigned char sizex, sizey; - -#define _CH_ULCORNER 0x00 -#define _CH_TITLEBAR 0x01 -#define _CH_URCORNER 0x02 -#define _CH_WINDOWRBORDER 0x03 -#define _CH_LRCORNER 0x04 -#define _CH_WINDOWLOWERBORDER 0x05 -#define _CH_LLCORNER 0x06 -#define _CH_WINDOWLBORDER 0x07 - -#define _CH_DIALOG_ULCORNER 0x12 -#define _CH_DIALOGUPPERBORDER 0x09 -#define _CH_DIALOG_URCORNER 0x0a -#define _CH_DIALOGRBORDER 0x0b -#define _CH_DIALOG_LRCORNER 0x0c -#define _CH_DIALOGLOWERBORDER 0x0d -#define _CH_DIALOG_LLCORNER 0x0e -#define _CH_DIALOGLBORDER 0x0f - -#define _CH_BUTTONLEFT 0x10 -#define _CH_BUTTONRIGHT 0x11 - -#define _CH_SEPARATOR 0x13 - -/*#include "libconio.h"*/ - -#define SCREENCOLOR 0 -#define BORDERCOLOR 1 - -#define WIDGETCOLOR 2 -#define WIDGETCOLOR_FWIN 3 -#define WIDGETCOLOR_FOCUS 4 -#define WIDGETCOLOR_DIALOG 5 -#define WIDGETCOLOR_HLINK 6 -#define WIDGETCOLOR_HLINK_FOCUS 7 - -#define WINDOWCOLOR 8 -#define WINDOWCOLOR_FOCUS 9 - -#define WINDOWBORDER 10 -#define WINDOWBORDER_FOCUS 11 - -#define DIALOGCOLOR 12 - -#define OPENMENUCOLOR 13 - -#define ACTIVEMENUITEMCOLOR 14 - -#define MENUCOLOR 15 - -/*static DISPATCHER_UIPCALL(ctk_vncserver_appcall, state); - -static struct dispatcher_proc p = - {DISPATCHER_PROC("CTK VNC server", NULL, NULL, - ctk_vncserver_appcall)}; - static ek_id_t id;*/ -EK_EVENTHANDLER(eventhandler, ev, data); -EK_PROCESS(p, "CTK VNC server", EK_PRIO_NORMAL, - eventhandler, NULL, NULL); -static ek_id_t id = EK_ID_NONE; - -static struct vnc_server_state conns[CTK_VNCSERVER_CONF_NUMCONNS]; - -#define PRINTF(x) - -#define revers(x) - -/*unsigned char ctk_draw_windowborder_height = 1; -unsigned char ctk_draw_windowborder_width = 1; -unsigned char ctk_draw_windowtitle_height = 1;*/ - - -/*-----------------------------------------------------------------------------------*/ -/** - * Add an update request from a client to the list of pending updates - * for the connection. - * - * This function is called from the vnc-out module. - * - * \param vs The VNC connection state. - * \param a The area that is requested to be updated. - */ -/*-----------------------------------------------------------------------------------*/ -void -vnc_server_update_add(struct vnc_server_state *vs, - struct vnc_server_update *a) -{ - /* XXX: test both head and tail placement!*/ - a->next = vs->updates_pending; - vs->updates_pending = a; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Allocate an update request from the VNC connection state. - * - * This function is called from the vnc-out module. - * - * \param vs The VNC connection state. - * - * \return Memory for an update structure, or NULL if no update could - * be allocated. - */ -/*-----------------------------------------------------------------------------------*/ -struct vnc_server_update * -vnc_server_update_alloc(struct vnc_server_state *vs) -{ - struct vnc_server_update *a; - - a = vs->updates_free; - if(a == NULL) { - return NULL; - } - vs->updates_free = a->next; - a->next = NULL; - return a; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Deallocate an update request from the VNC connection state. - * - * This function is called from the vnc-out module. - * - * \param vs The VNC connection state. - * - * \param a The update structure to be deallocated. - */ -/*-----------------------------------------------------------------------------------*/ -void -vnc_server_update_free(struct vnc_server_state *vs, - struct vnc_server_update *a) -{ - a->next = vs->updates_free; - vs->updates_free = a; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Dequeue the first update on the queue of updates. - * - * This function is called from the vnc-out module. - * - * \param vs The VNC connection state. - * - * \return The first update on the queue, or NULL if the queue is empty. - */ -/*-----------------------------------------------------------------------------------*/ -struct vnc_server_update * -vnc_server_update_dequeue(struct vnc_server_state *vs) -{ - struct vnc_server_update *a; - - a = vs->updates_pending; - if(a == NULL) { - return a; - } - vs->updates_pending = a->next; - a->next = NULL; - return a; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Remove a specific update on the queue of updates. - * - * \param vs The VNC connection state. - * \param a The update to be removed. - */ -/*-----------------------------------------------------------------------------------*/ -void -vnc_server_update_remove(struct vnc_server_state *vs, - struct vnc_server_update *a) -{ - struct vnc_server_update *b, *c; - - if(a == vs->updates_pending) { - vs->updates_pending = a->next; - } else { - b = vs->updates_pending; - for(c = vs->updates_pending; c != a; b = c, c = c->next); - - b->next = a->next; - } -} -/*-----------------------------------------------------------------------------------*/ -/** \internal - * Flag an area to be updated for all open VNC server connections. - * - */ -/*-----------------------------------------------------------------------------------*/ -static void -update_area(u8_t x, u8_t y, u8_t w, u8_t h) -{ - u8_t i; - - if(h == 0 || w == 0) { - return; - } - - /* Update for all active VNC connections. */ - for(i = 0; i < CTK_VNCSERVER_CONF_NUMCONNS; ++i) { - if(conns[i].state != VNC_DEALLOCATED) { - vnc_out_update_area(&conns[i], - x, y, w, h); - } - } - -} -/*-----------------------------------------------------------------------------------*/ -/** \internal - * Allocate a VNC server connection state from the array of available - * VNC connection states. - */ -/*-----------------------------------------------------------------------------------*/ -static struct vnc_server_state * -alloc_state(void) -{ - u8_t i; - for(i = 0; i < CTK_VNCSERVER_CONF_NUMCONNS; ++i) { - if(conns[i].state == VNC_DEALLOCATED) { - return &conns[i]; - } - } - - /* We are overloaded! XXX: we'll just kick all other connections! */ - for(i = 0; i < CTK_VNCSERVER_CONF_NUMCONNS; ++i) { - conns[i].state = VNC_DEALLOCATED; - } - - return NULL; -} -/*-----------------------------------------------------------------------------------*/ -/** \internal - * Deallocate a VNC connection state. - */ -/*-----------------------------------------------------------------------------------*/ -static void -dealloc_state(struct vnc_server_state *s) -{ - s->state = VNC_DEALLOCATED; -} -/*-----------------------------------------------------------------------------------*/ -static void -cputsn(char *str, unsigned char len) -{ - char c; - - while(len > 0) { - --len; - c = *str; - if(c == 0) { - break; - } - cputc(c); - ++str; - } -} -/*-----------------------------------------------------------------------------------*/ -/** - * Initialize the VNC ctk-draw module. Called by the CTK module. - * - */ -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_init(void) -{ - bgcolor(SCREENCOLOR); - bordercolor(BORDERCOLOR); - screensize(&sizex, &sizey); - ctk_draw_clear(0, sizey); -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_widget(register struct ctk_widget *w, - unsigned char x, unsigned char y, - unsigned char clipx, - unsigned char clipy, - unsigned char clipy1, unsigned char clipy2, - unsigned char focus) -{ - unsigned char xpos, ypos, xscroll; - unsigned char i, j; - unsigned char iconnum; - char c, *text; - unsigned char len; - - /* - if(focus & CTK_FOCUS_WINDOW) { - textcolor(WIDGETCOLOR_FWIN); - if(focus & CTK_FOCUS_WIDGET) { - textcolor(WIDGETCOLOR_FOCUS); - } - } else if(focus & CTK_FOCUS_DIALOG) { - textcolor(WIDGETCOLOR_DIALOG); - if(focus & CTK_FOCUS_WIDGET) { - textcolor(WIDGETCOLOR_FOCUS); - } - } else { - textcolor(WIDGETCOLOR); - } -*/ - xpos = x + w->x; - ypos = y + w->y; - - switch(w->type) { - case CTK_WIDGET_SEPARATOR: - textcolor(VNC_OUT_SEPARATORCOLOR + focus); - if(ypos >= clipy1 && ypos < clipy2) { - /* chlinexy(xpos, ypos, w->w);*/ - gotoxy(xpos, ypos); - for(i = 0; i < w->w; ++i) { - cputc(_CH_SEPARATOR); - } - } - break; - case CTK_WIDGET_LABEL: - textcolor(VNC_OUT_LABELCOLOR + focus); - text = w->widget.label.text; - for(i = 0; i < w->h; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - gotoxy(xpos, ypos); - cputsn(text, w->w); - if(w->w - (wherex() - xpos) > 0) { - cclear(w->w - (wherex() - xpos)); - } - } - ++ypos; - text += w->w; - } - break; - case CTK_WIDGET_BUTTON: - textcolor(VNC_OUT_BUTTONCOLOR + focus); - if(ypos >= clipy1 && ypos < clipy2) { - if(focus & CTK_FOCUS_WIDGET) { - revers(1); - } else { - revers(0); - } - cputcxy(xpos, ypos, _CH_BUTTONLEFT); - cputsn(w->widget.button.text, w->w); - cputc(_CH_BUTTONRIGHT); - revers(0); - } - break; - case CTK_WIDGET_HYPERLINK: - textcolor(VNC_OUT_HYPERLINKCOLOR + focus); - if(ypos >= clipy1 && ypos < clipy2) { - /* if(focus & CTK_FOCUS_WIDGET) { - textcolor(WIDGETCOLOR_HLINK_FOCUS); - revers(0); - } else { - textcolor(WIDGETCOLOR_HLINK); - revers(1); - }*/ - gotoxy(xpos, ypos); - cputsn(w->widget.button.text, w->w); - revers(0); - } - break; - case CTK_WIDGET_TEXTENTRY: - textcolor(VNC_OUT_TEXTENTRYCOLOR + focus); - text = w->widget.textentry.text; - if(focus & CTK_FOCUS_WIDGET) { - revers(1); - } else { - revers(0); - } - xscroll = 0; - if(w->widget.textentry.xpos >= w->w - 1) { - xscroll = w->widget.textentry.xpos - w->w + 1; - } - for(j = 0; j < w->h; ++j) { - if(ypos >= clipy1 && ypos < clipy2) { - if(w->widget.textentry.state == CTK_TEXTENTRY_EDIT && - w->widget.textentry.ypos == j) { - revers(0); - cputcxy(xpos, ypos, '>'); - c = 1; - for(i = 0; i < w->w; ++i) { - if(c != 0) { - c = text[i + xscroll]; - } - if(i == w->widget.textentry.xpos - xscroll) { - textcolor(VNC_OUT_TEXTENTRYCOLOR + (focus ^ 0x01)); - revers(1); - } else { - revers(0); - } - if(c == 0) { - cputc(' '); - } else { - cputc(c); - } - revers(0); - textcolor(VNC_OUT_TEXTENTRYCOLOR + focus); - } - cputc('<'); - } else { - cvlinexy(xpos, ypos, 1); - gotoxy(xpos + 1, ypos); - cputsn(text, w->w); - i = wherex(); - if(i - xpos - 1 < w->w) { - cclear(w->w - (i - xpos) + 1); - } - cvline(1); - } - } - ++ypos; - text += w->w; - } - revers(0); - break; -#if CTK_CONF_ICONS - case CTK_WIDGET_ICON: - if(ypos >= clipy1 && ypos < clipy2) { - textcolor(VNC_OUT_ICONCOLOR + focus); - if(focus & 1) { - revers(1); - } else { - revers(0); - } - - x = xpos; - len = strlen(w->widget.icon.title); - if(x + len >= sizex) { - x = sizex - len; - } - - gotoxy(x, ypos + 3); - if(ypos >= clipy1 && ypos < clipy2) { - cputs(w->widget.icon.title); - } - -#if CTK_CONF_ICON_BITMAPS - if(w->widget.icon.bitmap != NULL) { - iconnum = vnc_out_add_icon((struct ctk_icon *)w); - textcolor(iconnum | (focus << 6)); - gotoxy(xpos, ypos); - cputc(0x80); - cputc(0x81); - cputc(0x82); - cputc(0x83); - ++ypos; - gotoxy(xpos, ypos); - cputc(0x90); - cputc(0x91); - cputc(0x92); - cputc(0x93); - ++ypos; - gotoxy(xpos, ypos); - cputc(0xa0); - cputc(0xa1); - cputc(0xa2); - cputc(0xa3); - ++ypos; - textcolor(0); - /* for(i = 0; i < 3; ++i) { - - if(ypos >= clipy1 && ypos < clipy2) { - cputc(w->widget.icon.textmap[0 + 3 * i]); - cputc(w->widget.icon.textmap[1 + 3 * i]); - cputc(w->widget.icon.textmap[2 + 3 * i]); - } - ++ypos; - }*/ - } -#endif /* CTK_CONF_ICON_BITMAPS */ - - revers(0); - } - break; -#endif /* CTK_CONF_ICONS */ - - default: - break; - } -} -/*-----------------------------------------------------------------------------------*/ -/** - * Draw a widget on the VNC screen. Called by the CTK module. - * - * \param w The widget to be drawn. - * \param focus The focus of the widget. - * \param clipy1 The lower y coordinate bound. - * \param clipy2 The upper y coordinate bound. - */ -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_widget(register struct ctk_widget *w, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - struct ctk_window *win = w->window; - struct ctk_icon *icon; - unsigned char posx, posy, x, len; - - posx = win->x + 1; - posy = win->y + 2; - - if(w == win->focused) { - focus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, posx, posy, - posx + win->w, - posy + win->h, - clipy1, clipy2, - focus); - - if(w->type != CTK_WIDGET_ICON) { - update_area(posx + w->x, - posy + w->y, w->w + 2, w->h); - } else { - icon = (struct ctk_icon *)w; - - len = strlen(icon->title); - x = posx + w->x; - if(x + len >= sizex) { - x = sizex - len; - } - - update_area(x, posy + w->y, len > 4? len: 4, w->h); - } - -#ifdef CTK_CONIO_CONF_UPDATE - CTK_CONIO_CONF_UPDATE(); -#endif /* CTK_CONIO_CONF_UPDATE */ -} -/*-----------------------------------------------------------------------------------*/ -/** - * Clear a window on the VNC screen. Called by the CTK module. - * - * \param window The window to be cleared. - * \param focus The focus of the window. - * \param clipy1 The lower y coordinate bound. - * \param clipy2 The upper y coordinate bound. - */ -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear_window(register struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - unsigned char i; - unsigned char h; - /* - if(focus & CTK_FOCUS_WINDOW){ - textcolor(WINDOWCOLOR_FOCUS); - } else { - textcolor(WINDOWCOLOR); - }*/ - textcolor(VNC_OUT_WINDOWCOLOR + focus); - - h = window->y + 2 + window->h; - /* Clear window contents. */ - for(i = window->y + 2; i < h; ++i) { - if(i >= clipy1 && i < clipy2) { - cclearxy(window->x + 1, i, window->w); - } - } - - update_area(window->x + 1, window->y + 2, window->w, window->h); -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_window_contents(struct ctk_window *window, unsigned char focus, - unsigned char clipy1, unsigned char clipy2, - unsigned char x1, unsigned char x2, - unsigned char y1, unsigned char y2) -{ - struct ctk_widget *w; - unsigned char wfocus; - - /* Draw inactive widgets. */ - for(w = window->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - focus); - } - - /* Draw active widgets. */ - for(w = window->active; w != NULL; w = w->next) { - wfocus = focus; - if(w == window->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - wfocus); - } - -#ifdef CTK_CONIO_CONF_UPDATE - CTK_CONIO_CONF_UPDATE(); -#endif /* CTK_CONIO_CONF_UPDATE */ - -} -/*-----------------------------------------------------------------------------------*/ -/** - * Draw a window on the VNC screen. Called by the CTK module. - * - * \param window The window to be drawn. - * \param focus The focus of the window. - * \param clipy1 The lower y coordinate bound. - * \param clipy2 The upper y coordinate bound. - */ -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_window(register struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, unsigned char clipy2) -{ - unsigned char x, y; - unsigned char h; - unsigned char x1, y1, x2, y2; - unsigned char i; - - - if(window->y + 1 >= clipy2) { - return; - } - - x = window->x; - y = window->y + 1; - - textcolor(VNC_OUT_WINDOWCOLOR + focus); - /* if(focus & CTK_FOCUS_WINDOW) { - textcolor(WINDOWCOLOR_FOCUS); - } else { - textcolor(WINDOWCOLOR); - }*/ - - x1 = x + 1; - y1 = y + 1; - x2 = x1 + window->w; - y2 = y1 + window->h; - - /* Draw window frame. */ - if(y >= clipy1) { - cputcxy(x, y, _CH_ULCORNER); - for(i = wherex() + window->titlelen + 2; i < x2; ++i) { - cputcxy(i, y, _CH_TITLEBAR); - } - cputcxy(x2, y, _CH_URCORNER); - } - - h = window->h; - - if(clipy1 > y1) { - if(clipy1 - y1 < h) { - h = clipy1 - y1; - y1 = clipy1; - } else { - h = 0; - } - } - - if(clipy2 < y1 + h) { - if(y1 >= clipy2) { - h = 0; - } else { - h = clipy2 - y1; - } - } - - for(i = y1; i < y1 + h; ++i) { - cputcxy(x, i, _CH_WINDOWLBORDER); - cputcxy(x2, i, _CH_WINDOWRBORDER); - } - - /* cvlinexy(x, y1, h); - cvlinexy(x2, y1, h); */ - - if(y + window->h >= clipy1 && - y + window->h < clipy2) { - cputcxy(x, y2, _CH_LLCORNER); - for(i = x1; i < x2; ++i) { - cputcxy(i, y2, _CH_WINDOWLOWERBORDER); - } - /* chlinexy(x1, y2, window->w);*/ - cputcxy(x2, y2, _CH_LRCORNER); - } - - draw_window_contents(window, focus & CTK_FOCUS_WINDOW, clipy1, clipy2, - x1, x2, y + 1, y2); - - update_area(window->x, window->y, window->w + 2, window->h + 2); -} -/*-----------------------------------------------------------------------------------*/ -/** - * Draw a dialog on the VNC screen. Called by the CTK module. - * - * \param dialog The dialog to be drawn. - */ -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_dialog(register struct ctk_window *dialog) -{ - unsigned char x, y; - unsigned char i; - unsigned char x1, y1, x2, y2; - - /* textcolor(DIALOGCOLOR);*/ - textcolor(VNC_OUT_WINDOWCOLOR + CTK_FOCUS_DIALOG); - - x = dialog->x; - y = dialog->y + 1; - - - x1 = x + 1; - y1 = y + 1; - x2 = x1 + dialog->w; - y2 = y1 + dialog->h; - - - /* Draw dialog frame. */ - - for(i = y1; i < y1 + dialog->h; ++i) { - cputcxy(x, i, _CH_DIALOGLBORDER); - cputcxy(x2, i, _CH_DIALOGRBORDER); - } - /* cvlinexy(x, y1, - dialog->h); - cvlinexy(x2, y1, - dialog->h);*/ - - - for(i = x1; i < x2; ++i) { - cputcxy(i, y, _CH_DIALOGUPPERBORDER); - cputcxy(i, y2, _CH_DIALOGLOWERBORDER); - } - /* chlinexy(x1, y, - dialog->w); - chlinexy(x1, y2, - dialog->w);*/ - - cputcxy(x, y, _CH_DIALOG_ULCORNER); - cputcxy(x, y2, _CH_DIALOG_LLCORNER); - cputcxy(x2, y, _CH_DIALOG_URCORNER); - cputcxy(x2, y2, _CH_DIALOG_LRCORNER); - - - /* Clear dialog contents. */ - for(i = y1; i < y2; ++i) { - cclearxy(x1, i, dialog->w); - } - - draw_window_contents(dialog, CTK_FOCUS_DIALOG, 0, sizey, - x1, x2, y1, y2); - - update_area(dialog->x, dialog->y, dialog->w + 4, dialog->h + 4); -} -/*-----------------------------------------------------------------------------------*/ -/** - * Clear parts of the VNC desktop. Called by the CTK module. - * - * \param y1 The lower y coordinate bound. - * \param y2 The upped y coordinate bound. - */ -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear(unsigned char y1, unsigned char y2) -{ - unsigned char i; - - textcolor(VNC_OUT_BACKGROUNDCOLOR); - for(i = y1; i < y2; ++i) { - cclearxy(0, i, sizex); - } - - update_area(0, y1, sizex, y2 - y1); -} -/*-----------------------------------------------------------------------------------*/ -/** \internal - * Draw one menu on the VNC desktop. - * - * \param m The CTK menu to be drawn. - */ -/*-----------------------------------------------------------------------------------*/ -static void -draw_menu(register struct ctk_menu *m) -{ - unsigned char x, x2, y; - - textcolor(VNC_OUT_MENUCOLOR); - x = wherex(); - cputs(m->title); - cputc(' '); - x2 = wherex(); - if(x + CTK_CONF_MENUWIDTH > sizex) { - x = sizex - CTK_CONF_MENUWIDTH; - } - - - for(y = 0; y < m->nitems; ++y) { - if(y == m->active) { - textcolor(VNC_OUT_ACTIVEMENUCOLOR); - revers(0); - } else { - textcolor(VNC_OUT_MENUCOLOR); - } - gotoxy(x, y + 1); - if(m->items[y].title[0] == '-') { - chline(CTK_CONF_MENUWIDTH); - } else { - cputs(m->items[y].title); - } - if(x + CTK_CONF_MENUWIDTH > wherex()) { - cclear(x + CTK_CONF_MENUWIDTH - wherex()); - } - revers(1); - } - - gotoxy(x2, 0); - textcolor(VNC_OUT_MENUCOLOR); - - update_area(x, 0, CTK_CONF_MENUWIDTH, m->nitems + 1); -} -/*-----------------------------------------------------------------------------------*/ -/** - * Draw the menus on the virtual VNC desktop. Called by the CTK module. - * - * \param menus The CTK menubar. - */ -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_menus(register struct ctk_menus *menus) -{ - struct ctk_menu *m; - - - /* Draw menus */ - textcolor(VNC_OUT_MENUCOLOR); - gotoxy(0, 0); - revers(1); - cputc(' '); - for(m = menus->menus->next; m != NULL; m = m->next) { - if(m != menus->open) { - update_area(wherex(), 0, strlen(m->title) + 1, 1); - cputs(m->title); - cputc(' '); - } else { - draw_menu(m); - } - } - - - if(wherex() + strlen(menus->desktopmenu->title) + 1>= sizex) { - gotoxy(sizex - strlen(menus->desktopmenu->title) - 1, 0); - } else { - cclear(sizex - wherex() - - strlen(menus->desktopmenu->title) - 1); - update_area(wherex(), 0, sizex - wherex() - - strlen(menus->desktopmenu->title) - 1, 1); - } - - /* Draw desktopmenu */ - if(menus->desktopmenu != menus->open) { - update_area(wherex(), 0, strlen(menus->desktopmenu->title) + 1, 1); - cputs(menus->desktopmenu->title); - cputc(' '); - } else { - draw_menu(menus->desktopmenu); - } - - revers(0); - - - -} -/*-----------------------------------------------------------------------------------*/ -/** - * Obtain the height of the VNC desktop. Called by the CTK module. - * - * \return The height of the VNC desktop, in characters. - */ -/*-----------------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_height(void) -{ - return sizey; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Obtain the height of the VNC desktop. Called by the CTK module. - * - * \return The height of the VNC desktop, in characters. - */ -/*-----------------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_width(void) -{ - return sizex; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_xtoc(unsigned short x) -{ - return x / CTK_VNCFONT_WIDTH; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_ytoc(unsigned short y) -{ - return y / CTK_VNCFONT_HEIGHT; -} -/*-----------------------------------------------------------------------------------*/ -/** \internal - * Converts between ASCII and the VNC screen character encoding. - */ -/*-----------------------------------------------------------------------------------*/ -static unsigned char -ascii2screen(unsigned char c) -{ - if(c == '|') { - return 0x68; - } - if(c < 0x20) { - return c + 0x60; - } - if(c > 0x20 && c < 0x40) { - return c; - } - if(c >= 0x40 && c < 0x60) { - return c; - } - if(c >= 0x60 && c < 0x80) { - return c - 0x60; - } - if(c >= 0x80) { - return c; - } - - return 32; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Draws a character on the virtual VNC screen. Called by the libconio module. - * - * \param c The character to be drawn. - * \param xpos The x position of the character. - * \param ypos The y position of the character. - * \param reversedflag Determines if the character should be reversed or not. - * \param color The color of the character. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_arch_draw_char(char c, - unsigned char xpos, - unsigned char ypos, - unsigned char reversedflag, - unsigned char color) -{ - - vnc_out_update_screen(xpos, ypos, ascii2screen(c), - color); - /* vnc_out_update_screen(xpos, ypos, c | - (reversedflag? 0x80: 0));*/ -} -/*-----------------------------------------------------------------------------------*/ -/** - * Checks the key press input queue to see if there are pending - * keys. Called by the CTK module. - * - * \return Zero if no key presses are in buffer, non-zero if there are - * key presses in input buffer. - */ -/*-----------------------------------------------------------------------------------*/ -/*unsigned char -ctk_arch_keyavail(void) -{ - return vnc_out_keyavail(); -}*/ -/*-----------------------------------------------------------------------------------*/ -/** - * Retrieves key presses from the VNC client. Called by the CTK - * module. - * - * \return The next key in the input queue. - */ -/*-----------------------------------------------------------------------------------*/ -/*ctk_arch_key_t -ctk_arch_getkey(void) -{ - return vnc_out_getkey() & 0x7f; -}*/ -/*-----------------------------------------------------------------------------------*/ -/** \internal - * The uIP event handler. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_vncserver_appcall(void *state) -{ - static struct vnc_server_state *vs; - - vs = (struct vnc_server_state *)(state); - - if(uip_connected()) { - - /* Since we've just been connected, the state pointer should be - NULL and we need to allocate a new state object. If we have run - out of memory for state objects, we'll have to abort the - connection and return. */ - if(vs == NULL) { - vs = alloc_state(); - if(vs == NULL) { - uip_close(); - return; - } - tcp_markconn(uip_conn, (void *)vs); - } - } else if(uip_closed() || uip_aborted()) { - if(vs != NULL) { - dealloc_state(vs); - } - return; - } - vnc_server_appcall(vs); -} -/*-----------------------------------------------------------------------------------*/ - -static const struct ctk_draw_service_interface interface = - {CTK_DRAW_SERVICE_VERSION, - 1, - 1, - 1, - s_ctk_draw_init, - s_ctk_draw_clear, - s_ctk_draw_clear_window, - s_ctk_draw_window, - s_ctk_draw_dialog, - s_ctk_draw_widget, - s_ctk_draw_menus, - s_ctk_draw_width, - s_ctk_draw_height, - s_ctk_mouse_xtoc, - s_ctk_mouse_ytoc, - }; - -EK_EVENTHANDLER(eventhandler, ev, data); -EK_PROCESS(proc, CTK_DRAW_SERVICE_NAME ": VNC", EK_PRIO_NORMAL, - eventhandler, NULL, (void *)&interface); - -/*--------------------------------------------------------------------------*/ -LOADER_INIT_FUNC(ctk_vncserver_service_init, arg) -{ - arg_free(arg); - ek_service_start(CTK_DRAW_SERVICE_NAME, &proc); -} -/*--------------------------------------------------------------------------*/ -EK_EVENTHANDLER(eventhandler, ev, data) -{ - unsigned char i; - EK_EVENTHANDLER_ARGS(ev, data); - - switch(ev) { - case EK_EVENT_INIT: - case EK_EVENT_REPLACE: - tcp_listen(UIP_HTONS(5900)); - - for(i = 0; i < CTK_VNCSERVER_CONF_NUMCONNS; ++i) { - conns[i].state = VNC_DEALLOCATED; - } - ctk_restore(); - break; - case EK_EVENT_REQUEST_REPLACE: - ek_replace((struct ek_proc *)data, NULL); - LOADER_UNLOAD(); - break; - default: - if(ev == tcpip_event) { - ctk_vncserver_appcall(data); - } - } -} -/*--------------------------------------------------------------------------*/ - -void c80col_init(void) {} -/** @} */ diff --git a/backyard/core/dev/cc2420.c b/backyard/core/dev/cc2420.c deleted file mode 100644 index d5726fe8b..000000000 --- a/backyard/core/dev/cc2420.c +++ /dev/null @@ -1,668 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: cc2420.c,v 1.1 2008/02/24 22:29:08 adamdunkels Exp $ - */ -/* - * This code is almost device independent and should be easy to port. - */ - -#include -#include -#include - -#if defined(__AVR__) -#include -#elif defined(__MSP430__) -#include -#endif - -#include "contiki.h" - -#include "net/uip.h" -#include "net/uip-fw.h" -#define BUF ((struct uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN]) - -#include "dev/leds.h" - -#include "dev/spi.h" -#include "dev/cc2420.h" -#include "dev/cc2420_const.h" - -#define NDEBUG -#include "lib/assert.h" - -#ifdef NDEBUG -#define PRINTF(...) do {} while (0) -#else -#define PRINTF(...) printf(__VA_ARGS__) -#endif - -PROCESS(cc2420_process, "CC2420 driver"); -PROCESS(cc2420_retransmit_process, "CC2420 retransmit process"); - -int cc2420_resend(void); /* Not yet exported. */ - -static void neigbour_update(u16_t mac, int retransmissions); - -signed char cc2420_last_rssi; -u8_t cc2420_last_correlation; -u8_t cc2420_is_input; - -static u8_t receive_on; - -volatile u8_t cc2420_ack_received; /* Naive ACK management. */ -static u8_t last_used_seq; -static u16_t last_dst; - -/* Radio stuff in network byte order. */ -static u16_t pan_id; - -unsigned -cc2420_getreg(enum cc2420_register regname) -{ - unsigned reg; - int s = splhigh(); - FASTSPI_GETREG(regname, reg); - splx(s); - return reg; -} - -void -cc2420_setreg(enum cc2420_register regname, unsigned value) -{ - int s = splhigh(); - FASTSPI_SETREG(regname, value); - splx(s); -} - -void -cc2420_strobe(enum cc2420_register regname) -{ - int s = splhigh(); - FASTSPI_STROBE(regname); - splx(s); -} - -unsigned -cc2420_status(void) -{ - u8_t status; - int s = splhigh(); - FASTSPI_UPD_STATUS(status); - splx(s); - return status; -} - -#define AUTOACK (1 << 4) -#define RXFIFO_PROTECTION (1 << 9) -#define CORR_THR(n) (((n) & 0x1f) << 6) -#define FIFOP_THR(n) ((n) & 0x7f) -#define RXBPF_LOCUR (1 << 13); - -void -cc2420_init(void) -{ - u16_t reg; - { - int s = splhigh(); - __cc2420_arch_init(); /* Initalize ports and SPI. */ - DISABLE_FIFOP_INT(); - FIFOP_INT_INIT(); - splx(s); - } - - /* Turn on voltage regulator and reset. */ - SET_VREG_ACTIVE(); - //clock_delay(250); OK - SET_RESET_ACTIVE(); - clock_delay(127); - SET_RESET_INACTIVE(); - //clock_delay(125); OK - - - /* Turn on the crystal oscillator. */ - cc2420_strobe(CC2420_SXOSCON); - - /* Turn on automatic packet acknowledgment. */ - reg = cc2420_getreg(CC2420_MDMCTRL0); - reg |= AUTOACK; - cc2420_setreg(CC2420_MDMCTRL0, reg); - - /* Change default values as recomended in the data sheet, */ - /* correlation threshold = 20, RX bandpass filter = 1.3uA. */ - cc2420_setreg(CC2420_MDMCTRL1, CORR_THR(20)); - reg = cc2420_getreg(CC2420_RXCTRL1); - reg |= RXBPF_LOCUR; - cc2420_setreg(CC2420_RXCTRL1, reg); - - /* Set the FIFOP threshold to maximum. */ - cc2420_setreg(CC2420_IOCFG0, FIFOP_THR(127)); - - /* Turn off "Security enable" (page 32). */ - reg = cc2420_getreg(CC2420_SECCTRL0); - reg &= ~RXFIFO_PROTECTION; - cc2420_setreg(CC2420_SECCTRL0, reg); - - cc2420_set_chan_pan_addr(11, 0xffff, 0x0000, NULL); -} - -int -cc2420_send_data_ack(u16_t mac) -{ - struct hdr_802_15 h; - - PRINTF("send_data_ack to %u.%u\n", mac & 0xff, mac >> 8); - - h.len = MAC_HDR_LEN + 2; /* Including footer[2]. */ - h.fc0 = FC0_TYPE_DATA | FC0_INTRA_PAN; - h.fc1 = FC1_DST_16 | FC1_SRC_16; - - h.src = uip_hostaddr.u16[1]; - h.dst = mac; - - return cc2420_send(&h, 10, NULL, 0); -} - -int -cc2420_send(struct hdr_802_15 *hdr, u8_t hdr_len, - const u8_t *payload, u8_t payload_len) -{ - u8_t spiStatusByte; - int s; - - /* struct hdr_802_15::len shall *not* be counted, thus the -1. - * 2 == sizeof(footer). - */ - if (((hdr_len - 1) + payload_len + 2) > MAX_PACKET_LEN) - return -1; - - /* This code uses the CC2420 CCA (Clear Channel Assessment) to - * implement Carrier Sense Multiple Access with Collision Avoidance - * (CSMA-CA) and requires the receiver to be enabled and ready. - */ - if (!receive_on) - return -2; - - /* Wait for previous transmission to finish and RSSI. */ - do { - spiStatusByte = cc2420_status(); - if (!(spiStatusByte & BV(CC2420_RSSI_VALID))) /* RSSI needed by CCA */ - continue; - } while (spiStatusByte & BV(CC2420_TX_ACTIVE)); - - hdr->dst_pan = pan_id; /* Not at fixed position! xxx/bg */ - last_dst = hdr->dst; /* Not dst either. */ - last_used_seq++; - hdr->seq = last_used_seq; - cc2420_ack_received = 0; - - /* Write packet to TX FIFO, appending FCS if AUTOCRC is enabled. */ - cc2420_strobe(CC2420_SFLUSHTX); /* Cancel send that never started. */ - s = splhigh(); - FASTSPI_WRITE_FIFO(hdr, hdr_len); - FASTSPI_WRITE_FIFO(payload, payload_len); - splx(s); - - /* Send stuff from FIFO now! */ - process_post_synch(&cc2420_retransmit_process, PROCESS_EVENT_MSG, NULL); - - return UIP_FW_OK; -} - -/* - * Request packet to be sent using CSMA-CA. Requires that RSSI is - * valid. - * - * Return UIP_FW_DROPPED on failure. - */ -int -cc2420_resend(void) -{ - unsigned i; - - if (FIFOP_IS_1 && !FIFO_IS_1) { - process_poll(&cc2420_process); - PRINTF("rxfifo overflow!\n"); - } - - /* The TX FIFO can only hold one packet! Make sure to not overrun - * FIFO by waiting for transmission to start here and synchronizing - * with the CC2420_TX_ACTIVE check in cc2420_send. - * - * Note that we may have to wait up to 320 us (20 symbols) before - * transmission starts. - */ -#ifdef TMOTE_SKY -#define LOOP_20_SYMBOLS 100 /* 326us (msp430 @ 2.4576MHz) */ -#elif __AVR__ -#define LOOP_20_SYMBOLS 500 /* XXX */ -#endif - if (CCA_IS_1) { - cc2420_strobe(CC2420_STXONCCA); - for (i = LOOP_20_SYMBOLS; i > 0; i--) - if (SFD_IS_1) { - if (cc2420_status() & BV(CC2420_TX_ACTIVE)) - return UIP_FW_OK; /* Transmission has started. */ - else - break; /* We must be receiving. */ - } - } - - return UIP_FW_DROPPED; /* Transmission never started! */ -} - -void -cc2420_off(void) -{ - u8_t spiStatusByte; - - if (receive_on == 0) - return; - receive_on = 0; - /* Wait for transmission to end before turning radio off. */ - do { - spiStatusByte = cc2420_status(); - } while (spiStatusByte & BV(CC2420_TX_ACTIVE)); - - cc2420_strobe(CC2420_SRFOFF); - DISABLE_FIFOP_INT(); -} - -void -cc2420_on(void) -{ - if (receive_on) - return; - receive_on = 1; - - cc2420_strobe(CC2420_SRXON); - cc2420_strobe(CC2420_SFLUSHRX); - ENABLE_FIFOP_INT(); -} - -void -cc2420_set_chan_pan_addr(unsigned channel, /* 11 - 26 */ - unsigned pan, - unsigned addr, - const u8_t *ieee_addr) -{ - /* - * Subtract the base channel (11), multiply by 5, which is the - * channel spacing. 357 is 2405-2048 and 0x4000 is LOCK_THR = 1. - */ - u8_t spiStatusByte; - u16_t f = channel; - int s; - - f = 5*(f - 11) + 357 + 0x4000; - /* - * Writing RAM requires crystal oscillator to be stable. - */ - do { - spiStatusByte = cc2420_status(); - } while (!(spiStatusByte & (BV(CC2420_XOSC16M_STABLE)))); - - pan_id = pan; - cc2420_setreg(CC2420_FSCTRL, f); - s = splhigh(); - FASTSPI_WRITE_RAM_LE(&pan, CC2420RAM_PANID, 2, f); - FASTSPI_WRITE_RAM_LE(&addr, CC2420RAM_SHORTADDR, 2, f); - if (ieee_addr != NULL) - FASTSPI_WRITE_RAM_LE(ieee_addr, CC2420RAM_IEEEADDR, 8, f); - splx(s); -} - -static volatile u8_t rx_fifo_remaining_bytes; -static struct hdr_802_15 h; - -/* - * Interrupt either leaves frame intact in FIFO or reads *only* the - * MAC header and sets rx_fifo_remaining_bytes. - * - * In order to quickly empty the FIFO ack processing is done at - * interrupt priority rather than poll priority. - */ -int -__cc2420_intr(void) -{ - u8_t length; - const u8_t *const ack_footer = (u8_t *)&h.dst_pan; - - CLEAR_FIFOP_INT(); - - if (spi_busy || rx_fifo_remaining_bytes > 0) { - /* SPI bus hardware is currently used elsewhere (UART0 or I2C bus) - * or we already have a packet in the works and will have to defer - * interrupt processing of this packet in a fake interrupt. - */ - process_poll(&cc2420_process); - return 1; - } - - FASTSPI_READ_FIFO_BYTE(length); - if (length > MAX_PACKET_LEN) { - /* Oops, we must be out of sync. */ - FASTSPI_STROBE(CC2420_SFLUSHRX); - FASTSPI_STROBE(CC2420_SFLUSHRX); - return 0; - } - - h.len = length; - - if (length < ACK_PACKET_LEN) { - FASTSPI_READ_FIFO_GARBAGE(length); /* Rubbish */ - return 0; - } - - FASTSPI_READ_FIFO_NO_WAIT(&h.fc0, 5); /* fc0, fc1, seq, dst_pan */ - - /* Is this an ACK packet? */ - if (length == ACK_PACKET_LEN && (h.fc0 & FC0_TYPE_MASK) == FC0_TYPE_ACK) { - if (ack_footer[1] & FOOTER1_CRC_OK) { - if (h.seq == last_used_seq) { /* Matching ACK number? */ - cc2420_ack_received = 1; - process_poll(&cc2420_retransmit_process); -#if 0 - cc2420_last_rssi = ack_footer[0]; - cc2420_last_correlation = ack_footer[1] & FOOTER1_CORRELATION; -#endif - } - } - return 1; - } - - if (length < (MAC_HDR_LEN + 2)) { - FASTSPI_READ_FIFO_GARBAGE(length - 5); - return 0; - } - - FASTSPI_READ_FIFO_NO_WAIT(&h.dst, 4); /* dst and src */ - - /* The payload and footer is now left in the RX FIFO and will be - * picked up asynchronously at poll priority in the cc2420_process - * below. - */ - rx_fifo_remaining_bytes = length - MAC_HDR_LEN; - process_poll(&cc2420_process); - return 1; -} - -PROCESS_THREAD(cc2420_process, ev, data) -{ - PROCESS_BEGIN(); - - process_start(&cc2420_retransmit_process, NULL); - - while (1) { - unsigned len; - int s; - - PROCESS_YIELD(); - - len = rx_fifo_remaining_bytes; - if (len > 0) { - /* Read payload and two bytes of footer */ - if ((len - 2) > (UIP_BUFSIZE - UIP_LLH_LEN) || len < 2) { - PRINTF("cc2420_process too big len=%d\n", len); - s = splhigh(); - FASTSPI_READ_FIFO_GARBAGE(len); - rx_fifo_remaining_bytes = 0; /* RX FIFO emptied! */ - splx(s); - len = 0; - } else { - u8_t footer[2]; - uip_len = 0; - s = splhigh(); - if (len > 2) - FASTSPI_READ_FIFO_NO_WAIT(&uip_buf[UIP_LLH_LEN], len - 2); - FASTSPI_READ_FIFO_NO_WAIT(footer, 2); - rx_fifo_remaining_bytes = 0; /* RX FIFO emptied! */ - splx(s); - if (footer[1] & FOOTER1_CRC_OK) { - cc2420_last_rssi = footer[0]; - cc2420_last_correlation = footer[1] & FOOTER1_CORRELATION; - if ((h.fc0 & FC0_TYPE_MASK) == FC0_TYPE_DATA) - uip_len = len - 2; - } - } - } - - if (len == 2) - PRINTF("recv data_ack\n"); - - /* Clean up in case of FIFO overflow! This happens for every full - * length frame and is signaled by FIFOP = 1 and FIFO = 0. - */ - if (FIFOP_IS_1 && !FIFO_IS_1) { - cc2420_strobe(CC2420_SFLUSHRX); - cc2420_strobe(CC2420_SFLUSHRX); - } - - if (FIFOP_IS_1) { - s = splhigh(); - __cc2420_intr(); /* Fake interrupt! */ - splx(s); - } - - if (len == 2) { /* A DATA ACK packet. */ - if (last_dst == h.src) - cc2420_ack_received = 1; - neigbour_update(h.src, 0); - } else if (len > 2 && uip_len > 0 - && uip_len == (((u16_t)(BUF->len[0]) << 8) + BUF->len[1])) { - /* - * If we are the unique receiver send DATA ACK. - */ - if (h.dst == 0xffff - && uip_ipaddr_cmp(&BUF->destipaddr, &uip_hostaddr)) - cc2420_send_data_ack(h.src); - leds_toggle(LEDS_GREEN); - cc2420_is_input = 1; - tcpip_input(); - cc2420_is_input = 0; - leds_toggle(LEDS_GREEN); - } - } - - PROCESS_END(); -} - -unsigned neigbour_find(u16_t mac); - -/* Must be atleast 2 ticks and larger than 4ms. */ -#define RETRANSMIT_TIMEOUT 2 /* 31.25ms @ 64Hz */ -#define MAX_RETRANSMISSIONS 3 - -PROCESS_THREAD(cc2420_retransmit_process, ev, data) -{ - static char n; - static struct etimer etimer; - - switch (ev) { - default: - case PROCESS_EVENT_INIT: - return PT_WAITING; - - case PROCESS_EVENT_EXIT: - return PT_ENDED; - - case PROCESS_EVENT_POLL: /* Cancel future retransmissions. */ - etimer_stop(&etimer); - neigbour_update(last_dst, n); - return PT_WAITING; - - case PROCESS_EVENT_MSG: /* Send new packet. */ - n = -1; - - /* FALLTHROUGH */ - case PROCESS_EVENT_TIMER: - if (last_dst == 0xffff) { - n++; - clock_delay(1 + (rand() & (2048 - 1))); - if (cc2420_resend() == UIP_FW_OK) { - PRINTF("REBCAST %d\n", n); - return PT_WAITING; /* Final transmission attempt. */ - } - } else { - if (cc2420_resend() == UIP_FW_OK) { - n++; - PRINTF("RETRANS %d to %d.%d\n", n, last_dst & 0xff, last_dst >> 8); - } - if (n == MAX_RETRANSMISSIONS) { - neigbour_update(last_dst, n); - return PT_WAITING; /* Final transmission attempt. */ - } - } - /* - * Schedule retransmission. - */ - etimer_set(&etimer, RETRANSMIT_TIMEOUT); - return PT_WAITING; - } - /* NOTREACHED */ -} - -/* - * Retransmissions are negexp(alfa=0.5) weighted and stored as 4-bit - * fixnums with 2 binals (binary decimals). - */ -#define SCALE_RETRANS 4 -#define SCALE_RETRANS_THRESHOLD (3*4) -#define MAX_SCALE_RETRANS 15 - -/* - * Expiration timestamps are 4-bits wide, in units of 2 seconds, and - * relative to cc2420_check_remote::toff. - */ -#define SCALE_DIV_EXPIRE 2 -#define MAX_EXPIRE 15 /* 30 seconds */ -#define AGE_INTERVAL 5 /* 10 seconds */ - -struct cc2420_neigbour neigbours[NNEIGBOURS]; - -/* - * Double hash into 3 different positions using a constand step. If we - * don't find a match, return a pointer to the oldest entry and use - * this position for insertion. - */ -static struct cc2420_neigbour * -lookup(unsigned mac) -{ - unsigned h = (mac + (mac>>8)) % NNEIGBOURS; -#define next(h) (h += step, (h >= NNEIGBOURS) ? (h - NNEIGBOURS) : h) - - if (neigbours[h].mac == mac) /* FOUND1 */ - return &neigbours[h]; - else { - unsigned minexp = h; - const unsigned step = ((mac>>9)&0x3) + 1; - - h = next(h); - if (neigbours[h].mac == mac) /* FOUND2 */ - return &neigbours[h]; - else { - if (neigbours[h].expire < neigbours[minexp].expire) minexp = h; - h = next(h); - if (neigbours[h].mac == mac) /* FOUND3 */ - return &neigbours[h]; - else { - if (neigbours[h].expire < neigbours[minexp].expire) minexp = h; - return &neigbours[minexp]; - } - } - } -} - -static void -neigbour_update(u16_t mac, int nretrans) -{ - struct cc2420_neigbour *t; - - /* Always scale nretrans by constant factor. */ - if (nretrans == MAX_RETRANSMISSIONS) - nretrans = MAX_SCALE_RETRANS; - else - nretrans *= SCALE_RETRANS; /* xxx/bg overflow! */ - - t = lookup(mac); - if (t->mac != mac) { - t->mac = mac; - t->nretrans = nretrans; - } else { - if ((t->nretrans + nretrans)/2 > MAX_SCALE_RETRANS) - t->nretrans = MAX_SCALE_RETRANS; - else - t->nretrans = (t->nretrans + nretrans)/2; - } - t->expire = MAX_EXPIRE; - return; -} - -void -cc2420_recv_ok(uip_ipaddr_t *from) -{ - neigbour_update(from->u16[1], 0); -} - -/* - * +1: remote - * 0: local - * -1: unknown - */ -int -cc2420_check_remote(u16_t mac) -{ - struct cc2420_neigbour *t; - - /* - * Age neigbour table every 5*SCALE_DIV_EXPIRE=10 seconds. - */ - static clock_time_t toff; - unsigned now = ((clock_time() - toff)/CLOCK_SECOND)/SCALE_DIV_EXPIRE; - if (now >= AGE_INTERVAL) { - unsigned i; - - for (i = 0; i < NNEIGBOURS; i++) - if (neigbours[i].expire >= now) - neigbours[i].expire -= now; - else - neigbours[i].mac = 0xffff; /* expired! */ - toff = clock_time(); - } - - t = lookup(mac); - if (t->mac != mac) - return REMOTE_MAYBE; /* unknown */ - else if (t->nretrans >= SCALE_RETRANS_THRESHOLD) - return REMOTE_YES; /* remote */ - else - return REMOTE_NO; /* local */ -} diff --git a/backyard/core/dev/cc2420.h b/backyard/core/dev/cc2420.h deleted file mode 100644 index 143a6063f..000000000 --- a/backyard/core/dev/cc2420.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: cc2420.h,v 1.1 2008/02/24 22:29:08 adamdunkels Exp $ - */ - -#ifndef CC2420_H -#define CC2420_H - -#define MAX_PACKET_LEN 127 -#define ACK_PACKET_LEN 5 - -/* fc0 */ -#define FC0_TYPE_MASK 0x07 /* bit0-2 */ -#define FC0_TYPE_BEACON 0x00 /* bit0-2 */ -#define FC0_TYPE_DATA 0x01 /* bit0-2 */ -#define FC0_TYPE_ACK 0x02 /* bit0-2 */ -#define FC0_TYPE_MAC_CMD 0x03 /* bit0-2 */ -/* reserved 0x04-0x07 */ - -#define FC0_SECURE 0x08 /* bit3 */ -#define FC0_PENDING 0x10 /* bit4 */ -#define FC0_REQ_ACK 0x20 /* bit5 */ -#define FC0_INTRA_PAN 0x40 /* bit6 */ -/* reserved 0x80 bit7 */ - -/* fc1 */ -/* reserved 0x80 bit8-9 */ -#define FC1_DST_MASK 0x0c /* bit10-11 */ -#define FC1_DST_0 0x00 /* bit10-11 */ -#define FC1_DST_16 0x08 /* bit10-11 */ -#define FC1_DST_64 0x0c /* bit10-11 */ - -/* reserved 0x80 bit12-13 */ -#define FC1_SRC_MASK 0xc0 /* bit14-15 */ -#define FC1_SRC_0 0x00 /* bit14-15 */ -#define FC1_SRC_16 0x80 /* bit14-15 */ -#define FC1_SRC_64 0xc0 /* bit14-15 */ - -/* footer[0] == RSSI, footer[1] == ... */ -#define FOOTER1_CRC_OK 0x80 -#define FOOTER1_CORRELATION 0x7f - -/* The hdr_802_15::len byte does not count!!! */ -#define MAC_HDR_LEN (2 + 1 + 2 + 2 + 2) - -struct hdr_802_15 { - u8_t len; /* Not part of MAC header!!! */ - u8_t fc0; - u8_t fc1; - u8_t seq; - u16_t dst_pan; /* also u8_t ack_footer[2] */ - u16_t dst; - /* optional src_pan */ - u16_t src; - /* u8_t payload[uip_len] */ - /* u8_t footer[2] */ - /* no more */ -}; - -struct hdr_802_15_ack { - u8_t len; - u8_t fc0; - u8_t fc1; - u8_t seq; - u8_t footer[2]; - /* no more */ -}; - -struct cc2420_neigbour { - unsigned mac:16, nretrans:4, expire:4; /* expiration time */ -#if 0 - unsigned rssi:6, correlation:6; -#endif -}; - -#define NNEIGBOURS 16 -extern struct cc2420_neigbour neigbours[NNEIGBOURS]; - -PROCESS_NAME(cc2420_process); - -extern struct uip_fw_netif cc2420if; - -extern signed char cc2420_last_rssi; -extern u8_t cc2420_last_correlation; -extern u8_t cc2420_is_input; -extern volatile u8_t cc2420_ack_received; - -void cc2420_init(void); -void cc2420_set_chan_pan_addr(unsigned channel, unsigned pan, - unsigned addr, const u8_t *ieee_addr); -void cc2420_on(void); -void cc2420_off(void); - -u8_t cc2420_send_ip(void); -u8_t cc2420_send_uaodv(void); -int cc2420_send(struct hdr_802_15 *hdr, u8_t hdr_len, - const u8_t *p, u8_t p_len); - -/* Called at poll priority. */ -void cc2420_input(const struct hdr_802_15 *hdr, u8_t hdr_len, - const u8_t *payload, u8_t payload_len); - -/* Is mac far away? remote=1, local=0, don't know=-1. */ -enum { REMOTE_MAYBE = -1, REMOTE_NO = 0, REMOTE_YES = 1 }; -int cc2420_check_remote(u16_t mac); -void cc2420_recv_ok(uip_ipaddr_t *from); - -/* - * Machine dependent initialization function and an interrupt service - * routine must be provided externally. Call cc2420_intr from the - * interrupt service routine. - */ -void __cc2420_arch_init(void); -int __cc2420_intr(void); - -#endif /* CC2420_H */ diff --git a/backyard/core/dev/cs8900a.c b/backyard/core/dev/cs8900a.c deleted file mode 100644 index 749ae566a..000000000 --- a/backyard/core/dev/cs8900a.c +++ /dev/null @@ -1,314 +0,0 @@ -/* UNFINISHED CODE: the code works, but has yet to be converted into - proper C code. It is mostly 6502 assembler for now. */ - -/* - * Copyright (c) 2001, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the C64 RealAudio server demo project. - * - * $Id: cs8900a.c,v 1.1 2007/05/26 22:00:33 oliverschmidt Exp $ - * - */ - -/* cs8900a.c: device driver for the CS8900a chip in 8-bit mode. Mostly - written in 6502 assembler for speed. */ - -#include "cs8900a.h" -#include "uip.h" -#include "uip_arp.h" - -#define UIP_ETHADDR0 0x00 -#define UIP_ETHADDR1 0x00 -#define UIP_ETHADDR2 0x00 -#define UIP_ETHADDR3 0x64 -#define UIP_ETHADDR4 0x64 -#define UIP_ETHADDR5 0x64 - -extern u8_t *cs8900a_rxtxreg, - *cs8900a_txcmd, - *cs8900a_txlen, - *cs8900a_packetpp, - *cs8900a_ppdata; - -static u16_t len; -static u8_t r; - -#define WRITE(P, D) do { PACKETPP = (P); \ - PPDATA = (D); } while(0) - - -/*-----------------------------------------------------------------------------------*/ -void -cs8900a_init(void) -{ - /* Turn on transmission and reception of frames. */ - WRITE(0x0112, 0x00c0); - - /* Accept valid unicast+broadcast frames. */ - WRITE(0x0104, 0x0d05); - - /* Set MAC address. */ - WRITE(0x0158, (ETHADDR1 << 8) | (ETHADDR0)); - WRITE(0x015a, (ETHADDR3 << 8) | (ETHADDR2)); - WRITE(0x015c, (ETHADDR5 << 8) | (ETHADDR4)); - -} -/*-----------------------------------------------------------------------------------*/ -void -cs8900a_send(void) -{ - if(uip_len > UIP_BUFSIZE) { - return; - } - - /* Transmit command. */ - /* *cs8900a_txcmd = 0x00c0 */ - asm("lda #$c0"); - asm("sta %v", cs8900a_txcmd); - asm("lda #$00"); - asm("sta %v+1", cs8900a_txcmd); - - /* *cs8900a_txlen = uip_len */ - - asm("lda _uip_len"); - asm("sta %v", cs8900a_txlen); -#if UIP_BUFSIZE > 255 - asm("lda _uip_len+1"); -#else - asm("lda #0"); -#endif - asm("sta %v+1", cs8900a_txlen); - - asm("ldx #8"); - asm("tryagain:"); - /* Check for avaliable buffer space. */ - asm("lda #$38"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda %v+1", cs8900a_ppdata); - asm("and #1"); - asm("bne send"); - - /* No space avaliable, skip a received frame and try again. */ - asm("lda #$02"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda %v", cs8900a_ppdata); - asm("ora #$40"); - asm("sta %v", cs8900a_ppdata); - - asm("dex"); - asm("bne tryagain"); - - asm("bailout:"); - return; - - /* Send the frame. */ - asm("send:"); - - - /* First, send 40+14=54 bytes of header. */ - - asm("ldx #54"); - asm("ldy #0"); - asm("sendloop1:"); - asm("lda _uip_buf,y"); - asm("sta %v", cs8900a_rxtxreg); - asm("lda _uip_buf+1,y"); - asm("sta %v+1", cs8900a_rxtxreg); - asm("iny"); - asm("iny"); - asm("dex"); - asm("dex"); - asm("bne sendloop1"); - - if(uip_len <= 54) { - return; - } - - /* Next, send rest of the packet. */ - - uip_len -= 54; - - - asm("lda ptr1"); - asm("pha"); - asm("lda ptr1+1"); - asm("pha"); - - asm("lda _uip_appdata"); - asm("sta ptr1"); - asm("lda _uip_appdata+1"); - asm("sta ptr1+1"); - - asm("sendloop2:"); - asm("lda _uip_len"); - asm("tax"); - asm("and #1"); - asm("beq noinc"); - asm("inx"); - asm("noinc:"); -#if UIP_BUFSIZE > 255 - asm("lda _uip_len+1"); -#else - asm("lda #0"); -#endif - asm("beq nozero"); - asm("ldx #0"); - asm("nozero:"); - asm("ldy #0"); - asm("sendloop:"); - asm("lda (ptr1),y"); - asm("sta %v", cs8900a_rxtxreg); - asm("iny"); - asm("lda (ptr1),y"); - asm("sta %v+1", cs8900a_rxtxreg); - asm("iny"); - asm("dex"); - asm("dex"); - asm("bne sendloop"); - asm("inc ptr1+1"); -#if UIP_BUFSIZE > 255 - asm("dec _uip_len+1"); - asm("bpl sendloop2"); -#endif - - asm("pla"); - asm("sta ptr1+1"); - asm("pla"); - asm("sta ptr1"); -} -/*-----------------------------------------------------------------------------------*/ -static void -skip_frame(void) -{ - WRITE(0x0102, PPDATA | 0x0040); -} -/*-----------------------------------------------------------------------------------*/ -u8_t -cs8900a_poll(void) -{ - /* Check receiver event register to see if there are any valid - unicast frames avaliable. */ - /* PACKETPP = 0x0124; - if(PPDATA & 0x000d == 0x0000) { - return 0; - } - */ - asm("lda #$24"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda %v+1", cs8900a_ppdata); - asm("and #$0d"); - asm("cmp #$00"); - asm("bne noreturn"); - /* No frame ready. */ - return 0; - - asm("noreturn:"); - /* Process the incoming frame. */ - - /* Read receiver event and discard it. */ - /* dummy = RXTXREG; */ - - asm("lda %v+1", cs8900a_rxtxreg); - asm("sta _len+1"); - asm("lda %v", cs8900a_rxtxreg); - asm("sta _len"); - - /* Read frame length. */ - /* len = uip_len = RXTXREG; */ - asm("lda %v+1", cs8900a_rxtxreg); - asm("sta _len+1"); - asm("sta _uip_len+1"); - asm("lda %v", cs8900a_rxtxreg); - asm("sta _len"); - asm("sta _uip_len"); - - - if(len > UIP_BUFSIZE) { - skip_frame(); - return 0; - } - - /* Read bytes into uip_buf. */ - asm("lda ptr1"); - asm("pha"); - asm("lda ptr1+1"); - asm("pha"); - - asm("lda #<_uip_buf"); - asm("sta ptr1"); - asm("lda #>_uip_buf"); - asm("sta ptr1+1"); - - asm("lda _len+1"); - asm("beq read256"); - - /* Read first 256*n bytes. */ - asm("ldy #0"); - asm("read256loop:"); - asm("lda %v", cs8900a_rxtxreg); - asm("sta (ptr1),y"); - asm("iny"); - asm("lda %v+1", cs8900a_rxtxreg); - asm("sta (ptr1),y"); - asm("iny"); - asm("bne read256loop"); - asm("inc ptr1+1"); - - asm("dec _len+1"); - asm("bne read256loop"); - - /* Read last 255 or less bytes. */ - asm("read256:"); - asm("lda _len"); - asm("lsr"); - asm("bcc noinc"); - asm("inc _len"); - asm("noinc:"); - asm("ldy #$0"); - asm("readloop:"); - asm("lda %v", cs8900a_rxtxreg); - asm("sta (ptr1),y"); - asm("iny"); - asm("lda %v+1", cs8900a_rxtxreg); - asm("sta (ptr1),y"); - asm("iny"); - asm("cpy _len"); - asm("bne readloop"); - - asm("pla"); - asm("sta ptr1+1"); - asm("pla"); - asm("sta ptr1"); - return len; -} diff --git a/backyard/core/dev/cs8900a.h b/backyard/core/dev/cs8900a.h deleted file mode 100644 index d1f79c00d..000000000 --- a/backyard/core/dev/cs8900a.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: cs8900a.h,v 1.1 2007/05/26 22:00:33 oliverschmidt Exp $ - */ -#ifndef __CS8900A_H__ -#define __CS8900A_H__ - -#include "uip_arch.h" - -void cs8900a_init(void); -void cs8900a_send(void); -u8_t cs8900a_poll(void); - -#endif /* __CS8900A_H__ */ diff --git a/backyard/core/lib/crtk.c b/backyard/core/lib/crtk.c deleted file mode 100644 index b8186e2c0..000000000 --- a/backyard/core/lib/crtk.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)$Id: crtk.c,v 1.1 2007/05/23 23:23:23 oliverschmidt Exp $ - */ - -/* - * RUNES CRTK Implementation - * Version 0.3 - * - * Stefanos Zachariadis, UCL, s.zachariadis@cs.ucl.ac.uk - */ - -#include -#include - -#include "crtk.h" - -static Attribute a = { "Author", "Stefanos Zachariadis", NULL }; -static Entity attributes = { 0, COMPONENT, "crtk", &a, NULL }; -static int entities; - -static void construct(void) { - printf("Instantiating RUNES middleware\n"); -} - -static void destroy(void) { - printf("RUNES Middleware going away...\n"); -} - -static void printregistry(void) { - printf("The Registry Currently Contains:\n"); - Entity *current; - current=&attributes; - while(current!=NULL) { - Attribute *attrs; - attrs=current->attributes; - printf("Entity (%d,%d) \n",current->id, current->type); - while(attrs!=NULL) { - printf(" (%s,%s)\n",attrs->key,(char *)(attrs->value)); - attrs=attrs->next; - } - current=current->next; - } -} - - -static void delent(Entity *e) { - Entity *previous = &attributes; /* Not allowed to delete first! */ - Entity *current = previous->next; - while(current != NULL) { - if(e->id == current->id) { - previous->next = current->next; - current->next = NULL; - return; - } - previous = current; - current = current->next; - } -} - - -static void putattr(Entity *e, Attribute *a) { - Entity *current, *previous = NULL; - current=&attributes; - while(NULL!=current) { - //printf("looping\n"); - if(e->id==current->id) { //the entity already exists in our databas - //we need to see if an attribute with the same key exists - Attribute *tmp; - for(tmp=current->attributes;tmp->next!=NULL;tmp=tmp->next) { - if(strcmp(tmp->key,a->key)==0) { //it does exist - tmp->value=a->value; - return; - } - } - //we need to add this attribute - tmp->next=a; - a->next=NULL; - return; - } - previous=current; - current=current->next; - } - e->next=NULL; - previous->next=e; - e->attributes=a; - a->next=NULL; -} - -static void getattr(Entity e, char *key, Attribute **atr) { - //right, so we're going to go through our registry. - Entity *current; - current=&attributes; - while(current!=NULL) { - if(e.id==current->id) { //we found the element - Attribute *tmp; - for(tmp=current->attributes;tmp!=NULL;tmp=tmp->next) { - if(strcmp(tmp->key,key)==0) { //the key does exist - *atr=tmp; - return; - } - } - } - current=current->next; - } - atr=NULL; -} - -static void connect(Interface i, Receptacle *r) { - *r=i; -} - - - -static void instantiate(Entity *e, Attribute *init) { - e->id=entities++; - putattr(e,init); -} - - -static void getentities(Entity **e) { - *e=&attributes; -} - -IMPLEMENT_COMPONENT(crtk, { printregistry, delent, putattr, getattr, - connect, instantiate, getentities }); diff --git a/backyard/core/lib/crtk.h b/backyard/core/lib/crtk.h deleted file mode 100644 index 00e192ea6..000000000 --- a/backyard/core/lib/crtk.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)$Id: crtk.h,v 1.1 2007/05/23 23:23:23 oliverschmidt Exp $ - */ - -/* - * RUNES CRTK header, version 0.3 - * - * Stefanos Zachariadis, UCL, s.zachariadis@cs.ucl.ac.uk - */ - -#ifndef CRTK_H -#define CRTK_H - -/* For now this file is intimately dependent on sys/service.h. Really - * mysterious error messages are generated if one forgets to include - * sys/service.h, for this reason it is included here! - */ -#include "sys/service.h" - -#define COMPONENT 0 - -#define INTERFACE 1 - -#define RECEPTACLE 2 - -typedef const char *Receptacle; - -typedef const void *Interface; - -#if 0 -typedef struct INTERFACES { - Interface *i; - struct INTERFACES *next; -} Interfaces; -#endif - -#if 0 -typedef struct RECEPTACLES { - Receptacle *r; - struct RECEPTACLES *next; -} Receptacles; -#endif - -typedef struct ATTRIBUTE { - char *key; - void *value; - struct ATTRIBUTE *next; -} Attribute; - -typedef struct ENTITY { - int id; - int type; - char *name; - Attribute *attributes; - struct ENTITY *next; -} Entity; - -#define INVOKE(receptacle, iface, function) \ - { \ - struct service *service_s; \ - service_s = service_find(receptacle); \ - if(service_s != NULL) { \ - ((struct iface *)service_s->interface)->function; \ - } \ - } - -#define DECLARE_COMPONENT(compname,interface) \ -extern struct process compname##_process; \ -struct compname interface; - -#define DECLARE_INTERFACE(intname,interface)\ - struct intname interface; - -#define IMPLEMENT_COMPONENT(compname, ...)\ - static const struct compname compname##_implementation_interface = __VA_ARGS__;\ - static struct service compname##_implementation = { NULL, NULL, #compname, & compname##_implementation_interface }; \ - static Entity compname##_entity;\ - static void construct(void);\ - static void destroy(void);\ - PROCESS(compname##_process, #compname"_process"); \ - PROCESS_THREAD(compname##_process, ev, data) {\ - static Attribute name = { "template", #compname, NULL };\ - PROCESS_EXITHANDLER(goto exit);\ - PROCESS_BEGIN();\ - compname##_entity.type = COMPONENT;\ - compname##_entity.name = #compname;\ - construct();\ - SERVICE_REGISTER(compname##_implementation);\ - INVOKE("crtk", crtk, instantiate(&compname##_entity,&name));\ - PROCESS_YIELD_UNTIL(ev == PROCESS_EVENT_SERVICE_REMOVED);\ - exit:\ - destroy();\ - SERVICE_REMOVE(compname##_implementation);\ - INVOKE("crtk", crtk, delent(&compname##_entity));\ - PROCESS_END(); \ - } - -/* Registry crtk is built upon. */ -DECLARE_COMPONENT(crtk, -{ - /* prints the contents of the registry. */ - void (* printregistry)(void); - - /* delete the given entity. */ - void (* delent)(Entity *e); - - /* adds a new attribute for the given entity. */ - void (* putattr)(Entity *e, Attribute *a); - - /* searches for an attribute with the given key, for the given entity. */ - void (* getattr)(Entity e, char *key, Attribute **a); - - /* connects an interface and a receptacle. */ - void (* connect) (Interface i, Receptacle *r); - - /* instantiates a new component. */ - void (* instantiate) (Entity *e, Attribute *init); - - /* returns on e all the entities (and their attributes) available. */ - void (* getentities) (Entity **e); -}); - -#endif /* CRTK_H */ diff --git a/backyard/core/lib/ctk-textedit.c b/backyard/core/lib/ctk-textedit.c deleted file mode 100644 index c07a74eed..000000000 --- a/backyard/core/lib/ctk-textedit.c +++ /dev/null @@ -1,181 +0,0 @@ -/** - * \file - * An experimental CTK text edit widget. - * \author Adam Dunkels - * - * This module contains an experimental CTK widget which is - * implemented in the application process rather than in the CTK - * process. The widget is instantiated in a similar fashion as other - * CTK widgets, but is different from other widgets in that it - * requires a signal handler function to be called by the process - * signal handler function. - * - */ - -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: ctk-textedit.c,v 1.1 2007/11/20 20:41:54 oliverschmidt Exp $ - * - */ - - -#include "ctk-textedit.h" - -#include - -/*-----------------------------------------------------------------------------------*/ -void -ctk_textedit_init(struct ctk_textedit *t) -{ - t->xpos = t->ypos = 0; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Add a CTK textedit widget to a window. - * - * \param w A pointer to the window to which the entry is to be added. - * \param t A pointer to the CTK textentry structure. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_textedit_add(struct ctk_window *w, - struct ctk_textedit *t) -{ - CTK_WIDGET_SET_FLAG(t, CTK_WIDGET_FLAG_MONOSPACE); - CTK_WIDGET_ADD(w, t); -} -/*-----------------------------------------------------------------------------------*/ -/** - * The CTK textedit signal handler. - * - * This function must be called as part of the normal signal handler - * of the process that contains the CTK textentry structure. - * - * \param t A pointer to the CTK textentry structure. - * \param s The signal number. - * \param data The signal data. - */ -/*-----------------------------------------------------------------------------------*/ -void -ctk_textedit_eventhandler(struct ctk_textedit *t, - process_event_t s, - process_data_t data) -{ - char *textptr, *textptr2; - unsigned char len; - - if(s == ctk_signal_keypress) { - CTK_WIDGET_FOCUS(t->label.window, &t->label); - textptr = &(t->label.text[t->ypos * t->label.w + t->xpos]); - *textptr &= 0x7f; - switch((ctk_arch_key_t)data) { - case CH_CURS_DOWN: - if(t->ypos < t->label.h - 1) { - ++t->ypos; - } - break; - case CH_CURS_UP: - if(t->ypos > 0) { - --t->ypos; - } - break; - case CH_CURS_RIGHT: - len = strlen(&t->label.text[t->ypos * t->label.w]); - if(t->xpos < len) { - /* if(t->xpos < t->label.w) {*/ - ++t->xpos; - } else { - t->xpos = len; - } - break; - case CH_CURS_LEFT: - if(t->xpos > 0) { - --t->xpos; - } else { - if(t->ypos > 0) { - --t->ypos; - t->xpos = t->label.w - 1; - } - } - break; - case CH_ENTER: - t->xpos = 0; - if(t->ypos < t->label.h - 1) { - ++t->ypos; - } - break; - case CH_DEL: - len = t->label.w - t->xpos; - if(t->xpos > 0 && len > 0) { - strncpy(textptr - 1, textptr, - len); - *(textptr + len - 1) = 0; - --t->xpos; - } - break; - default: - len = t->label.w - t->xpos; - if(len > 0) { - textptr2 = textptr + len - 1; - while(textptr2 + 1 > textptr) { - *(textptr2 + 1) = *textptr2; - --textptr2; - } - - *textptr = (char)data; - ++t->xpos; - if(t->xpos == t->label.w) { - t->xpos = 0; - if(t->ypos < t->label.h - 1) { - ++t->ypos; - } - } - } - break; - } - textptr = &(t->label.text[t->ypos * t->label.w + t->xpos]); - *textptr |= 0x80; - CTK_WIDGET_REDRAW(&t->label); - } else if(s == ctk_signal_widget_activate && - data == (process_data_t)t) { - textptr = &(t->label.text[t->ypos * t->label.w + t->xpos]); - *textptr &= 0x7f; - t->xpos = 0; - if(t->ypos < t->label.h - 1) { - ++t->ypos; - } - textptr = &(t->label.text[t->ypos * t->label.w + t->xpos]); - *textptr |= 0x80; - CTK_WIDGET_REDRAW(&t->label); - } -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/core/lib/ctk-textedit.h b/backyard/core/lib/ctk-textedit.h deleted file mode 100644 index e06486295..000000000 --- a/backyard/core/lib/ctk-textedit.h +++ /dev/null @@ -1,73 +0,0 @@ -/** - * \file - * Header file for the experimental application level CTK textedit widget. - * \author Adam Dunkels - * - */ - -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: ctk-textedit.h,v 1.1 2007/11/20 20:41:54 oliverschmidt Exp $ - * - */ -#ifndef __CTK_TEXTEDIT_H__ -#define __CTK_TEXTEDIT_H__ - -#include "ctk/ctk.h" - -/** - * Instantiating macro for the CTK textedit widget. - * - * - * \param tx The x position of the widget. - * \param ty The y position of the widget. - * \param tw The width of the widget. - * \param th The height of the widget. - * \param ttext The text buffer to be edited. - */ -#define CTK_TEXTEDIT(tx, ty, tw, th, ttext) \ - {CTK_LABEL(tx, ty, tw, th, ttext)}, 0, 0 -struct ctk_textedit { - struct ctk_label label; - unsigned char xpos, ypos; -}; - -void ctk_textedit_init(struct ctk_textedit *t); - -void ctk_textedit_add(struct ctk_window *w, - struct ctk_textedit *t); - -void ctk_textedit_eventhandler(struct ctk_textedit *t, - process_event_t s, - process_data_t data); - -#endif /* __CTK_TEXTEDIT_H__ */ diff --git a/backyard/core/lib/malloc.c b/backyard/core/lib/malloc.c deleted file mode 100644 index b4d6c860a..000000000 --- a/backyard/core/lib/malloc.c +++ /dev/null @@ -1,434 +0,0 @@ -/* Copyright (c) 2002, 2004 Joerg Wunsch - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holders nor the names of - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - -/* $Id: malloc.c,v 1.1 2008/08/15 19:05:17 adamdunkels Exp $ */ - -#include - -#ifdef MALLOC_TEST -#include "malloc.h" -char mymem[256]; -#else -#include "contiki.h" -#include "lib/malloc.h" -#endif /* !MALLOC_TEST */ - -/* - * Exported interface: - * - * When extending the data segment, the allocator will not try to go - * beyond the current stack limit, decreased by __malloc_margin bytes. - * Thus, all possible stack frames of interrupt routines that could - * interrupt the current function, plus all further nested function - * calls must not require more stack space, or they'll risk to collide - * with the data segment. - */ - -char *__malloc_heap_end; - -char *__brkval; -struct __freelist *__flp; - -#define handle nx - -void * -malloc(size_t len) -{ - struct __freelist *fp1, *fp2; - char *cp; - size_t s; - - if (len <= 0) - return 0; - - len = (len + MALLOC_ROUNDUP) & ~MALLOC_ROUNDUP; - - /* - * First, walk the free list and try finding a chunk that - * would match exactly. If we found one, we are done. While - * walking, note down the size of the largest chunk we found - * that would still fit the request -- we need it for step 2. - * - */ - for (s = 0, fp1 = __flp, fp2 = 0; - fp1; - fp2 = fp1, fp1 = fp1->nx) { - if (fp1->sz == len) { - /* - * Found it. Disconnect the chunk from the - * freelist, and return it. - */ - if (fp2) - fp2->nx = fp1->nx; - else - __flp = fp1->nx; - fp1->handle = NULL; - return &fp1[1]; - } - if (fp1->sz > len) { - if (s == 0 || fp1->sz < s) - s = fp1->sz; - } - } - /* - * Step 2: If we found a chunk on the freelist that would fit - * (but was too large), look it up again and use it, since it - * is our closest match now. Since the freelist entry needs - * to be split into two entries then, watch out that the - * difference between the requested size and the size of the - * chunk found is large enough for another freelist entry; if - * not, just enlarge the request size to what we have found, - * and use the entire chunk. - */ - if (s) { - if (s - len < sizeof(struct __freelist)) - len = s; - for (fp1 = __flp, fp2 = 0; - fp1; - fp2 = fp1, fp1 = fp1->nx) { - if (fp1->sz == s) { - if (len == s) { - /* - * Use entire chunk; same as - * above. - */ - if (fp2) - fp2->nx = fp1->nx; - else - __flp = fp1->nx; - fp1->handle = NULL; - return &fp1[1]; - } - /* - * Split them up. Note that we leave - * the first part as the new (smaller) - * freelist entry, and return the - * upper portion to the caller. This - * saves us the work to fix up the - * freelist chain; we just need to - * fixup the size of the current - * entry, and note down the size of - * the new chunk before returning it - * to the caller. - */ - cp = (char *)fp1; - s -= len; - cp += s; - fp2 = (struct __freelist *)cp; - fp2->sz = len; - fp1->sz = s - sizeof(struct __freelist); - fp2->handle = NULL; - return &fp2[1]; - } - } - } - /* - * Step 3: If the request could not be satisfied from a - * freelist entry, just prepare a new chunk. This means we - * need to obtain more memory first. The largest address just - * not allocated so far is remembered in the brkval variable. - * Under Unix, the "break value" was the end of the data - * segment as dynamically requested from the operating system. - * Since we don't have an operating system, just make sure - * that we don't collide with the stack. - */ - if (__brkval == 0) - __brkval = sbrk(len + sizeof(struct __freelist)); - else if (sbrk(len + sizeof(struct __freelist)) == (void *)-1) - return 0; /* There's no help, just fail. :-/ */ - - __malloc_heap_end = sbrk(0); - - fp1 = (struct __freelist *)__brkval; - __brkval += len + sizeof(struct __freelist); - fp1->sz = len; - fp1->handle = NULL; - return &fp1[1]; -} - -void -free(void *p) -{ - struct __freelist *fp1, *fp2, *fpnew; - char *cp1, *cp2, *cpnew; - - /* ISO C says free(NULL) must be a no-op */ - if (p == 0) - return; - - cpnew = p; - cpnew -= sizeof(struct __freelist); - fpnew = (struct __freelist *)cpnew; - fpnew->nx = 0; - - /* - * Trivial case first: if there's no freelist yet, our entry - * will be the only one on it. - */ - if (__flp == 0) { - __flp = fpnew; - return; - } - - /* - * Now, find the position where our new entry belongs onto the - * freelist. Try to aggregate the chunk with adjacent chunks - * if possible. - */ - for (fp1 = __flp, fp2 = 0; - fp1; - fp2 = fp1, fp1 = fp1->nx) { - if (fp1 < fpnew) - continue; - cp1 = (char *)fp1; - fpnew->nx = fp1; - if (((char *)&fpnew[1]) + fpnew->sz == cp1) { - /* upper chunk adjacent, assimilate it */ - fpnew->sz += fp1->sz + sizeof(struct __freelist); - fpnew->nx = fp1->nx; - } - if (fp2 == 0) { - /* new head of freelist */ - __flp = fpnew; - return; - } - break; - } - /* - * Note that we get here either if we hit the "break" above, - * or if we fell off the end of the loop. The latter means - * we've got a new topmost chunk. Either way, try aggregating - * with the lower chunk if possible. - */ - fp2->nx = fpnew; - cp2 = (char *)&fp2[1]; - if (cp2 + fp2->sz == cpnew) { - /* lower junk adjacent, merge */ - fp2->sz += fpnew->sz + sizeof(struct __freelist); - fp2->nx = fpnew->nx; - } -} - -#ifdef MALLOC_TEST - -#include -#include -#include -#include - -void *handles[32]; -size_t sizes[32]; - - -void * -alloc(size_t s) -{ - void *p; - - if ((p = malloc(s)) == 0) { - malloc_compact(); - if ((p = malloc(s)) == 0) - return 0; - } - memset(p, 0xd0, s); - return p; -} - -void -printfreelist(void) -{ - struct __freelist *fp1; - int i; - - if (!__flp) { - printf("no free list\n"); - return; - } - - for (i = 0, fp1 = __flp; fp1; i++, fp1 = fp1->nx) { - printf("free %d @ %u: size %u, next ", - i, (char *)fp1 - mymem, fp1->sz); - if (fp1->nx) - printf("%u\n", (char *)fp1->nx - mymem); - else - printf("NULL\n"); - } -} - -int -compare(const void *p1, const void *p2) -{ - return *((size_t *)p1) - *((size_t *)p2); -} - -void -printalloc(void) -{ - int j, k; - size_t i; - size_t sum, sum2; - void *sortedhandles[32]; - struct __freelist *fp; - char *cp; - - for (i = j = k = sum = sum2 = 0; - i < sizeof handles / sizeof (void *); - i++) - if (sizes[i]) { - j++; - sum += sizes[i]; - if (handles[i]) { - k++; - sum2 += sizes[i]; - } - } - printf("brkval: %d, %d request%s => sum %u bytes " - "(actually %d reqs => %u bytes)\n", - (char *)__brkval - mymem, j, j == 1? "": "s", sum, k, sum2); - memcpy(sortedhandles, handles, sizeof sortedhandles); - qsort(sortedhandles, 32, sizeof(void *), compare); - for (i = j = 0; i < sizeof sortedhandles / sizeof (void *); i++) - if ((cp = sortedhandles[i])) { - cp -= sizeof(struct __freelist); - fp = (struct __freelist *)cp; - printf("alloc %d @ %u: %u bytes, handle %p\n", - j, (char *)fp - mymem, fp->sz, fp->handle); - j++; - } - -} - - -void -printblk(void) -{ - struct __freelist *fp = __flp; - struct __freelist *ap = (struct __freelist *)__malloc_heap_start; - struct __freelist *end = (struct __freelist *)__brkval; - int b = 0; - int e = 0; - - if (fp == 0) - fp = end; - - alloclist: - while (ap < fp) { - printf("Alloc %d @ %u: %u bytes, handle %p\n", - b, (char *)ap - mymem, ap->sz, ap->handle); - ap = (void *)(((char *)ap) + sizeof(struct __freelist) + ap->sz); - b++; - } - - if (fp < end) { - printf("Free %d @ %u: size %u, next ", - e, (char *)fp - mymem, fp->sz); - if (fp->nx) - printf("%u\n", (char *)fp->nx - mymem); - else - printf("NULL\n"); - ap = (void *)(((char *)fp) + sizeof(struct __freelist) + fp->sz); - fp = fp->nx; - if (fp == 0) - fp = end; - e++; - } - - if (ap < end) - goto alloclist; -} - -int -main(void) -{ - int i, j, k, l, m, om, p, f; - size_t s; - - srand(time(0) ^ getpid()); - - for (k = 0; k < 100; k++) { - memset(handles, 0, sizeof handles); - memset(sizes, 0, sizeof sizes); - - j = rand() % 16 + 15; - l = rand() % 80 + 7; - - for (i = s = 0; i < j && s < 256; i++) { - sizes[i] = rand() % l + 1; - s += sizes[i]; - } - j = i; - for (m = om = 1, p = 1, f = 0; m < 1000; m++) { - for (i = s = 0; i < j; i++) - if (handles[i]) - s++; - if (s == (unsigned)j) - break; - - if (m / om > 10) { - p <<= 1; - p |= 1; - } - - for (i = 0; i < j; i++) - if (rand() & p) { - if (!handles[i]) { - if ((handles[i] = alloc(sizes[i])) == 0) - f++; - else if (sizes[i] & 1) - malloc_unlock(&handles[i]); - } - } - for (i = 0; i < j; i++) { - if (rand() & 1) { - free(handles[i]); - handles[i] = 0; - } - } - } - if (f) - printf("%d alloc failure%s total\n", - f, f == 1? "": "s"); - printf("After alloc:\n"); - printalloc(); - //printfreelist(); - printblk(); - for (i = 0; i < j; i++) - free(handles[i]); - printf("After cleanup:\n"); - printfreelist(); - //printblk(); - } - - return 0; -} - -#endif /* MALLOC_TEST */ diff --git a/backyard/core/lib/malloc.h b/backyard/core/lib/malloc.h deleted file mode 100644 index 4c8d7151d..000000000 --- a/backyard/core/lib/malloc.h +++ /dev/null @@ -1,88 +0,0 @@ -/* Copyright (c) 2004, Joerg Wunsch - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - * Neither the name of the copyright holders nor the names of - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -/* $Id: malloc.h,v 1.1 2008/08/15 19:05:17 adamdunkels Exp $ */ - -#ifndef MALLOC_H -#define MALLOC_H - -#if !defined(__DOXYGEN__) - -struct __freelist { - size_t sz; - struct __freelist *nx; -}; - -#endif - -/* - * Only unlocked memory can be subject to compaction. - * - * Malloc and realloc return locked memory. - */ -void malloc_unlock(void **h); -void malloc_lock(void **h); -void malloc_compact(void); -void malloc_compact_one(void); - -void *malloc(size_t size); -void *realloc(void *ptr, size_t size); -void free(void *ptr); - -extern char *__brkval; /* first location not yet allocated */ -extern struct __freelist *__flp; /* freelist pointer (head of freelist) */ -extern char *__malloc_heap_end; - -#define MALLOC_ROUNDUP (sizeof(int) - 1) - -#ifdef MALLOC_TEST -/* - * When compiling malloc.c/realloc.c natively on a host machine, it will - * include a main() that performs a regression test. This is meant as - * a debugging aid, where a normal source-level debugger will help to - * verify that the various allocator structures have the desired - * appearance at each stage. - * - */ - -extern void *mymalloc(size_t); -extern void myfree(void *); -extern void *myrealloc(void *, size_t); - -#define malloc mymalloc -#define free myfree -#define realloc myrealloc - -#define __malloc_heap_start &mymem[0] -#define __malloc_heap_end &mymem[256] -extern char mymem[]; - -#endif /* MALLOC_TEST */ - -#endif /* MALLOC_H */ diff --git a/backyard/core/lib/malloc_compact.c b/backyard/core/lib/malloc_compact.c deleted file mode 100644 index b4cd0a946..000000000 --- a/backyard/core/lib/malloc_compact.c +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)$Id: malloc_compact.c,v 1.1 2008/08/15 19:05:17 adamdunkels Exp $ - */ - -#include -#include - -#ifdef MALLOC_TEST -#include "malloc.h" -#else -#include "contiki.h" -#include "lib/malloc.h" -#endif /* !MALLOC_TEST */ - -#define handle nx - -void -malloc_unlock(void **h) -{ - struct __freelist *t = *h; - t = &t[-1]; - t->handle = (void *)h; -} - -void -malloc_lock(void **h) -{ - struct __freelist *t = *h; - t = &t[-1]; - t->handle = NULL; -} - -static int -compact1(struct __freelist **flp) -{ - struct __freelist *fp = *flp, *fp2; - struct __freelist *ap1, *ap2; - struct __freelist *end = (struct __freelist *)__brkval; - - ap1 = (void *)(((char *)fp) + sizeof(struct __freelist) + fp->sz); - if (ap1 >= end) - return 0; - if (ap1->handle == NULL) - return 0; - - ap2 = (void *)(((char *)ap1) + sizeof(struct __freelist) + ap1->sz); - fp2 = fp->nx; - - if (ap2 != fp2) { /* 2 blocks become 2 */ - size_t s = fp->sz; - - fp->sz = ap1->sz; - fp->handle = ap1->handle; - memcpy(&fp[1], &ap1[1], ap1->sz); - *(void **)(fp->handle) = &fp[1]; - - fp = (void *)(((char *)fp) + sizeof(struct __freelist) + fp->sz); - fp->sz = s; - fp->nx = fp2; - *flp = fp; - return 1; - } - - if (ap2 == fp2) { /* 3 blocks become 2 */ - size_t s = fp->sz + fp2->sz + sizeof(struct __freelist); - - fp->sz = ap1->sz; - fp->handle = ap1->handle; - memcpy(&fp[1], &ap1[1], ap1->sz); - *(void **)(fp->handle) = &fp[1]; - - fp = (void *)(((char *)fp) + sizeof(struct __freelist) + fp->sz); - fp->sz = s; - fp->nx = fp2->nx; - *flp = fp; - return 1; - } - - return 0; -} - -void -malloc_compact(void) -{ - struct __freelist **flp; - - flp = &__flp; - while (*flp != NULL) { - while (compact1(flp)) - ; - flp = &((*flp)->nx); - } -} - -void -malloc_compact_one(void) -{ - struct __freelist **flp; - - flp = &__flp; - while (*flp != NULL) { - if (compact1(flp)) - return ; - flp = &((*flp)->nx); - } -} diff --git a/backyard/core/lib/realloc.c b/backyard/core/lib/realloc.c deleted file mode 100644 index 6344bf649..000000000 --- a/backyard/core/lib/realloc.c +++ /dev/null @@ -1,159 +0,0 @@ -/* Copyright (c) 2004 Joerg Wunsch - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holders nor the names of - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -/* $Id: realloc.c,v 1.1 2008/08/15 19:57:13 adamdunkels Exp $ */ - -#include -#include - -#ifdef MALLOC_TEST -#include "malloc.h" -#else -#include "contiki.h" -#include "lib/malloc.h" -#endif /* !MALLOC_TEST */ - -void * -realloc(void *ptr, size_t len) -{ - struct __freelist *fp1, *fp2, *fp3, *ofp3; - char *cp, *cp1; - void *memp; - size_t s, incr; - - /* Trivial case, required by C standard. */ - if (ptr == 0) - return malloc(len); - - if (len < 0) - return 0; - - len = (len + MALLOC_ROUNDUP) & ~MALLOC_ROUNDUP; - - cp1 = (char *)ptr; - cp1 -= sizeof(struct __freelist); - fp1 = (struct __freelist *)cp1; - - cp = (char *)ptr + len; /* new next pointer */ - if (cp < cp1) - /* Pointer wrapped across top of RAM, fail. */ - return 0; - fp2 = (struct __freelist *)cp; - - /* - * See whether we are growing or shrinking. When shrinking, - * we split off a chunk for the released portion, and call - * free() on it. Therefore, we can only shrink if the new - * size is at least sizeof(struct __freelist) smaller than the - * previous size. - */ - if (len <= fp1->sz) { - /* The first test catches a possible unsigned int - * rollover condition. */ - if (fp1->sz <= sizeof(struct __freelist) || - len > fp1->sz - sizeof(struct __freelist)) - return ptr; - fp2->sz = fp1->sz - len - sizeof(struct __freelist); - fp1->sz = len; - free(&fp2[1]); - return ptr; - } - - /* - * If we get here, we are growing. First, see whether there - * is space in the free list on top of our current chunk. - */ - incr = len - fp1->sz - sizeof(struct __freelist); - cp = (char *)ptr + fp1->sz; - fp2 = (struct __freelist *)cp; - for (s = 0, ofp3 = 0, fp3 = __flp; - fp3; - ofp3 = fp3, fp3 = fp3->nx) { - if (fp3 == fp2 && fp3->sz >= incr) { - /* found something that fits */ - if (incr <= fp3->sz && - incr > fp3->sz - sizeof(struct __freelist)) { - /* it just fits, so use it entirely */ - fp1->sz += fp3->sz + sizeof(struct __freelist); - if (ofp3) - ofp3->nx = fp3->nx; - else - __flp = fp3->nx; - return ptr; - } - /* split off a new freelist entry */ - cp = (char *)ptr + len; - fp2 = (struct __freelist *)cp; - fp2->nx = fp3->nx; - fp2->sz = fp3->sz - incr - sizeof(struct __freelist); - if (ofp3) - ofp3->nx = fp2; - else - __flp = fp2; - fp1->sz = len; - return ptr; - } - /* - * Find the largest chunk on the freelist while - * walking it. - */ - if (fp3->sz > s) - s = fp3->sz; - } - /* - * If we are the topmost chunk in memory, and there was no - * large enough chunk on the freelist that could be re-used - * (by a call to malloc() below), quickly extend the - * allocation area if possible, without need to copy the old - * data. - */ - if (__brkval == (char *)ptr + fp1->sz && len > s) { - cp1 = __malloc_heap_end; - cp = (char *)ptr + len; - if (cp < cp1) { - __brkval = cp; - fp1->sz = len; - return ptr; - } - /* If that failed, we are out of luck. */ - return 0; - } - - /* - * Call malloc() for a new chunk, then copy over the data, and - * release the old region. - */ - if ((memp = malloc(len)) == 0) - return 0; - memcpy(memp, ptr, fp1->sz); - free(ptr); - return memp; -} - diff --git a/backyard/core/net/adhoc-service.h b/backyard/core/net/adhoc-service.h deleted file mode 100644 index 84ef75019..000000000 --- a/backyard/core/net/adhoc-service.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: adhoc-service.h,v 1.1 2007/05/23 23:28:19 oliverschmidt Exp $ - */ - -/** - * \file - * Header file for the ad hoc routing service - * \author - * Adam Dunkels - */ - -#ifndef __ADHOC_SERVICE_H__ -#define __ADHOC_SERVICE_H__ - -#include "contiki.h" - -SERVICE_INTERFACE(adhoc_service, -{ - void (* send)(uip_ipaddr_t addr, char *buf, int len); - process_event_t sent; -}); - -#define adhoc_service_name "Ad hoc routing service" - -#endif /* __ADHOC_SERVICE_H__ */ diff --git a/backyard/core/net/hc-service.c b/backyard/core/net/hc-service.c deleted file mode 100644 index e3e2418fb..000000000 --- a/backyard/core/net/hc-service.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: hc-service.c,v 1.1 2007/05/23 23:28:19 oliverschmidt Exp $ - */ - -#include "hc-service.h" - -static void -compress(void) -{ - -} - -static void -decompress(void) -{ - -} - -SERVICE(hc_service, { compress, decompress }); - - -PROCESS(hc_service_process, "Header compression"); - -PROCESS_THREAD(hc_service_process, ev, data) -{ - PROCESS_BEGIN(); - - PROCESS_SET_FLAGS(PROCESS_NO_BROADCAST); - - SERVICE_REGISTER(hc_service); - - while(1) { - PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_EXIT); - } - - SERVICE_REMOVE(hc_service); - - PROCESS_END(); -} diff --git a/backyard/core/net/hc-service.h b/backyard/core/net/hc-service.h deleted file mode 100644 index 809bd16d5..000000000 --- a/backyard/core/net/hc-service.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: hc-service.h,v 1.1 2007/05/23 23:28:19 oliverschmidt Exp $ - */ -#ifndef __HC_SERVICE_H__ -#define __HC_SERVICE_H__ - -#include "service.h" - -SERVICE_INTERFACE(hc_service, { - void (* compress)(void); - void (* decompress)(void); -}); - -#define hc_service_name "Header compression" - -#endif /* __HC_SERVICE_H__ */ diff --git a/backyard/core/net/ppp/ahdlc.c b/backyard/core/net/ppp/ahdlc.c deleted file mode 100644 index fce965c30..000000000 --- a/backyard/core/net/ppp/ahdlc.c +++ /dev/null @@ -1,381 +0,0 @@ -/* www.mycal.com - *--------------------------------------------------------------------------- - * ahdlc.c - Ahdlc receive and transmit processor for PPP engine. - * - *--------------------------------------------------------------------------- - * Version - * 0.1 Original Version Jan 11, 1998 - * - *--------------------------------------------------------------------------- - * - * Copyright (C) 1998, Mycal Labs www.mycal.com - * - *--------------------------------------------------------------------------- - */ -/* - * Copyright (c) 2003, Mike Johnson, Mycal Labs, www.mycal.net - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mike Johnson/Mycal Labs - * www.mycal.net. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Mycal Modified uIP TCP/IP stack. - * - * $Id: ahdlc.c,v 1.1 2007/05/26 07:14:39 oliverschmidt Exp $ - * - */ - -/* */ -/* include files */ -/* */ - -#include "net/uip.h" -#include "ppp.h" - -#if 0 -#define DEBUG1(x) -#else -#include -#define DEBUG1(x) debug_printf x -#endif - -#define PACKET_TX_DEBUG 1 - -/*--------------------------------------------------------------------------- - * ahdlc flags bit defins, for ahdlc_flags variable - ---------------------------------------------------------------------------*/ -/* Escaped mode bit */ -#define AHDLC_ESCAPED 0x1 -/* Frame is ready bit */ -#define AHDLC_RX_READY 0x2 -#define AHDLC_RX_ASYNC_MAP 0x4 -#define AHDLC_TX_ASYNC_MAP 0x8 -#define AHDLC_PFC 0x10 -#define AHDLC_ACFC 0x20 - -/*--------------------------------------------------------------------------- - * Private Local Globals - * 10 bytes - standard - * - with counters - ---------------------------------------------------------------------------*/ -/* running tx CRC */ -u16_t ahdlc_tx_crc; -/* running rx CRC */ -u16_t ahdlc_rx_crc; -/* number of rx bytes processed, cur frame */ -u16_t ahdlc_rx_count; -/* ahdlc state flags, see above */ -u8_t ahdlc_flags; - -u8_t ahdlc_tx_offline; - -/* - * The following can be optimized out - */ -u8_t *ahdlc_rx_buffer; /* What to do here? +++ */ -u16_t ahdlc_max_rx_buffer_size; - -/* - * Optional statistics counters. - */ -#ifdef AHDLC_COUNTERS -u8_t ahdlc_rx_tobig_error; -#endif - -/*---------------------------------------------------------------------------*/ -/* Simple and fast CRC16 routine for embedded processors. - * Just slightly slower than the table lookup method but consumes - * almost no space. Much faster and smaller than the loop and - * shift method that is widely used in the embedded space. - * Can be optimized even more in .ASM - * - * data = (crcvalue ^ inputchar) & 0xff; - * data = (data ^ (data << 4)) & 0xff; - * crc = (crc >> 8) ^ ((data << 8) ^ (data <<3) ^ (data >> 4)) - */ -/*---------------------------------------------------------------------------*/ -static u16_t -crcadd(u16_t crcvalue, u8_t c) -{ - u16_t b; - - b = (crcvalue ^ c) & 0xFF; - b = (b ^ (b << 4)) & 0xFF; - b = (b << 8) ^ (b << 3) ^ (b >> 4); - - return ((crcvalue >> 8) ^ b); -} -/*---------------------------------------------------------------------------*/ -/* ahdlc_init(buffer, buffersize) - this initializes the ahdlc engine to - * allow for rx frames. - */ -/*---------------------------------------------------------------------------*/ -void -ahdlc_init(u8_t *buffer, u16_t maxrxbuffersize) -{ - ahdlc_flags = 0 | AHDLC_RX_ASYNC_MAP; - ahdlc_rx_buffer = buffer; - ahdlc_max_rx_buffer_size = maxrxbuffersize; - /* ahdlc_async_map = 0; */ -#ifdef AHDLC_COUNTERS - ahdlc_rx_tobig_error = 0; - ahdl_tx_offline = 0; -#endif -} -/*---------------------------------------------------------------------------*/ -/* ahdlc_rx_ready() - resets the ahdlc engine to the beginning of frame - * state. - */ -/*---------------------------------------------------------------------------*/ -void -ahdlc_rx_ready(void) -{ - ahdlc_rx_count = 0; - ahdlc_rx_crc = 0xffff; - ahdlc_flags |= AHDLC_RX_READY; -} -/*---------------------------------------------------------------------------*/ -/* ahdlc receive function - This routine processes incoming bytes and tries - * to build a PPP frame. - * - * Two possible reasons that ahdlc_rx will not process characters: - * o Buffer is locked - in this case ahdlc_rx returns 1, char - * sending routing should retry. - */ -/*---------------------------------------------------------------------------*/ -u8_t -ahdlc_rx(u8_t c) -{ - static u16_t protocol; - - /* check to see if PPP packet is useable, we should have hardware - flow control set, but if host ignores it and sends us a char when - the PPP Receive packet is in use, discard the character. +++ */ - - if(ahdlc_flags & AHDLC_RX_READY) { - /* check to see if character is less than 0x20 hex we really - should set AHDLC_RX_ASYNC_MAP on by default and only turn it - off when it is negotiated off to handle some buggy stacks. */ - if((c < 0x20) && - ((ahdlc_flags & AHDLC_RX_ASYNC_MAP) == 0)) { - /* discard character */ - DEBUG1(("Discard because char is < 0x20 hex and asysnc map is 0\n")); - return 0; - } - /* are we in escaped mode? */ - if(ahdlc_flags & AHDLC_ESCAPED) { - /* set escaped to FALSE */ - ahdlc_flags &= ~AHDLC_ESCAPED; - - /* if value is 0x7e then silently discard and reset receive packet */ - if(c == 0x7e) { - ahdlc_rx_ready(); - return 0; - } - /* incomming char = itself xor 20 */ - c = c ^ 0x20; - } else if(c == 0x7e) { - /* handle frame end */ - if(ahdlc_rx_crc == CRC_GOOD_VALUE) { - DEBUG1(("\nReceiving packet with good crc value, len %d\n",ahdlc_rx_count)); - /* we hae a good packet, turn off CTS until we are done with - this packet */ - /*CTS_OFF();*/ - /* remove CRC bytes from packet */ - ahdlc_rx_count -= 2; - - /* lock PPP buffer */ - ahdlc_flags &= ~AHDLC_RX_READY; - /* - * upcall routine must fully process frame before return - * as returning signifies that buffer belongs to AHDLC again. - */ - if((c & 0x1) && (ahdlc_flags & PPP_PFC)) { - /* Send up packet */ - ppp_upcall((u16_t)ahdlc_rx_buffer[0], - (u8_t *)&ahdlc_rx_buffer[1], - (u16_t)(ahdlc_rx_count - 1)); - } else { - /* Send up packet */ - ppp_upcall((u16_t)(ahdlc_rx_buffer[0] << 8 | ahdlc_rx_buffer[1]), - (u8_t *)&ahdlc_rx_buffer[2], (u16_t)(ahdlc_rx_count - 2)); - } - ahdlc_tx_offline = 0; // The remote side is alive - ahdlc_rx_ready(); - return 0; - } else if(ahdlc_rx_count > 3) { - DEBUG1(("\nReceiving packet with bad crc value, was 0x%04x len %d\n",ahdlc_rx_crc, ahdlc_rx_count)); -#ifdef AHDLC_COUNTERS - ++ahdlc_crc_error; -#endif - /* Shouldn't we dump the packet and not pass it up? */ - /*ppp_upcall((u16_t)ahdlc_rx_buffer[0], - (u8_t *)&ahdlc_rx_buffer[0], (u16_t)(ahdlc_rx_count+2)); - dump_ppp_packet(&ahdlc_rx_buffer[0],ahdlc_rx_count);*/ - - } - ahdlc_rx_ready(); - return 0; - } else if(c == 0x7d) { - /* handle escaped chars*/ - ahdlc_flags |= PPP_ESCAPED; - return 0; - } - - /* try to store char if not to big */ - if(ahdlc_rx_count >= ahdlc_max_rx_buffer_size /*PPP_RX_BUFFER_SIZE*/) { -#ifdef AHDLC_COUNTERS - ++ahdlc_rx_tobig_error; -#endif - ahdlc_rx_ready(); - } else { - /* Add CRC in */ - ahdlc_rx_crc = crcadd(ahdlc_rx_crc, c); - /* do auto ACFC, if packet len is zero discard 0xff and 0x03 */ - if(ahdlc_rx_count == 0) { - if((c == 0xff) || (c == 0x03)) - return 0; - } - /* Store char */ - ppp_rx_buffer[ahdlc_rx_count++] = c; - } - } else { - /* we are busy and didn't process the character. */ - DEBUG1(("Busy/not active\n")); - return 1; - } - return 0; -} -/*---------------------------------------------------------------------------*/ -/* ahdlc_tx_char(char) - write a character to the serial device, - * escape if necessary. - * - * Relies on local global vars : ahdlc_tx_crc, ahdlc_flags. - * Modifies local global vars : ahdlc_tx_crc. - */ -/*---------------------------------------------------------------------------*/ -void -ahdlc_tx_char(u16_t protocol, u8_t c) -{ - /* add in crc */ - ahdlc_tx_crc = crcadd(ahdlc_tx_crc, c); - /* - * See if we need to escape char, we always escape 0x7d and 0x7e, in the case - * of char < 0x20 we only support async map of default or none, so escape if - * ASYNC map is not set. We may want to modify this to support a bitmap set - * ASYNC map. - */ - if((c == 0x7d) || (c == 0x7e) || - ((c < 0x20) && ((protocol == LCP) || - (ahdlc_flags & PPP_TX_ASYNC_MAP) == 0))) { - /* send escape char and xor byte by 0x20 */ - ppp_arch_putchar(0x7d); - c ^= 0x20; - } - ppp_arch_putchar(c); -} -/*---------------------------------------------------------------------------*/ -/* ahdlc_tx(protocol,buffer,len) - Transmit a PPP frame. - * Buffer contains protocol data, ahdlc_tx addes address, control and - * protocol data. - * - * Relies on local global vars : ahdlc_tx_crc, ahdlc_flags. - * Modifies local global vars : ahdlc_tx_crc. - */ -/*---------------------------------------------------------------------------*/ -u8_t -ahdlc_tx(u16_t protocol, u8_t *header, u8_t *buffer, - u16_t headerlen, u16_t datalen) -{ - u16_t i; - u8_t c; - - DEBUG1(("\nAHDLC_TX - transmit frame, protocol 0x%04x, length %d offline %d\n",protocol,datalen+headerlen,ahdlc_tx_offline)); - if (AHDLC_TX_OFFLINE && (ahdlc_tx_offline++ > AHDLC_TX_OFFLINE)) { - ahdlc_tx_offline = 0; - DEBUG1(("\nAHDLC_TX to many outstanding TX packets => ppp_reconnect()\n")); - ppp_reconnect(); - return 0; - } - -#if PACKET_TX_DEBUG - DEBUG1(("\n")); - for(i = 0; i < headerlen; ++i) { - DEBUG1(("0x%02x ", header[i])); - } - for(i = 0; i < datalen; ++i) { - DEBUG1(("0x%02x ", buffer[i])); - } - DEBUG1(("\n\n")); -#endif - - /* Check to see that physical layer is up, we can assume is some - cases */ - - /* write leading 0x7e */ - ppp_arch_putchar(0x7e); - - /* set initial CRC value */ - ahdlc_tx_crc = 0xffff; - /* send HDLC control and address if not disabled or of LCP frame type */ - /*if((0==(ahdlc_flags & PPP_ACFC)) || ((0xc0==buffer[0]) && (0x21==buffer[1]))) */ - if((0 == (ahdlc_flags & PPP_ACFC)) || (protocol == LCP)) { - ahdlc_tx_char(protocol, 0xff); - ahdlc_tx_char(protocol, 0x03); - } - - /* Write Protocol */ - ahdlc_tx_char(protocol,(u8_t)(protocol >> 8)); - ahdlc_tx_char(protocol,(u8_t)(protocol & 0xff)); - - /* write header if it exists */ - for(i = 0; i < headerlen; ++i) { - /* Get next byte from buffer */ - c = header[i]; - /* Write it...*/ - ahdlc_tx_char(protocol, c); - } - - /* Write frame bytes */ - for(i = 0; i < datalen; ++i) { - /* Get next byte from buffer */ - c = buffer[i]; - /* Write it...*/ - ahdlc_tx_char(protocol, c); - } - - /* send crc, lsb then msb */ - i = ahdlc_tx_crc ^ 0xffff; - ahdlc_tx_char(protocol, (u8_t)(i & 0xff)); - ahdlc_tx_char(protocol, (u8_t)((i >> 8) & 0xff)); - - /* write trailing 0x7e, probably not needed but it doesn't hurt*/ - ppp_arch_putchar(0x7e); - return 0; -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/core/net/ppp/ahdlc.h b/backyard/core/net/ppp/ahdlc.h deleted file mode 100644 index 4bb8ef644..000000000 --- a/backyard/core/net/ppp/ahdlc.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef __AHDLC_H__ -#define __AHDLC_H__ - -/*--------------------------------------------------------------------------- - ahdlc.h - ahdlc header file ---------------------------------------------------------------------------- - Version - 0.1 Original Version Jan 11, 1998 - (c)1998 Mycal Labs, All Rights Reserved - ---------------------------------------------------------------------------*/ -/* - * Copyright (c) 2003, Mike Johnson, Mycal Labs, www.mycal.net - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mike Johnson/Mycal Labs - * www.mycal.net. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Mycal Modified uIP TCP/IP stack. - * - * $Id: ahdlc.h,v 1.1 2007/05/26 07:14:39 oliverschmidt Exp $ - * - */ - -#include "net/uip.h" - -void ahdlc_init(u8_t *, u16_t); -void ahdlc_rx_ready(void); -u8_t ahdlc_rx(u8_t); -u8_t ahdlc_tx(u16_t protocol, u8_t *header, u8_t *buffer, - u16_t headerlen, u16_t datalen); - -#endif /* __AHDLC_H__ */ diff --git a/backyard/core/net/ppp/ipcp.c b/backyard/core/net/ppp/ipcp.c deleted file mode 100644 index 24e51e75b..000000000 --- a/backyard/core/net/ppp/ipcp.c +++ /dev/null @@ -1,462 +0,0 @@ -/* - *--------------------------------------------------------------------------- - * ipcp.c - PPP IPCP (intrnet protocol) Processor/Handler - * - *--------------------------------------------------------------------------- - * - * Version - * 0.1 Original Version Jun 3, 2000 - * - *--------------------------------------------------------------------------- - * - * Copyright (C) 2000, Mycal Labs www.mycal.com - * - *--------------------------------------------------------------------------- - */ -/* - * Copyright (c) 2003, Mike Johnson, Mycal Labs, www.mycal.net - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mike Johnson/Mycal Labs - * www.mycal.net. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Mycal Modified uIP TCP/IP stack. - * - * $Id: ipcp.c,v 1.2 2010/10/19 18:29:03 adamdunkels Exp $ - * - */ - -/* */ -/* include files */ -/* */ - -#if 0 -#define DEBUG1(x) -#else -#include -#define DEBUG1(x) debug_printf x -#endif - -#include "net/uip.h" -/*#include "time.h"*/ -#include "ipcp.h" -#include "ppp.h" -#include "ahdlc.h" - -#define TIMER_expire() -#define TIMER_set() -#define TIMER_timeout(x) 1 - -#ifdef IPCP_GET_PEER_IP -uip_ipaddr_t peer_ip_addr; -#endif - -#ifdef IPCP_GET_PRI_DNS -uip_ipaddr_t pri_dns_addr; -#endif - -#ifdef IPCP_GET_SEC_DNS -uip_ipaddr_t sec_dns_addr; -#endif - -static unsigned long prev_ipcp_seconds = 0; - -/* - * Local IPCP state - */ -u8_t ipcp_state; - -/* - * in the future add copression protocol and name servers (possibly for servers only) - */ -u8_t ipcplist[] = {0x3, 0}; - -/*---------------------------------------------------------------------------*/ -#if 1 -void -printip(uip_ipaddr_t ip2) -{ - char *ip = (u8_t*)ip2; - DEBUG1((" %d.%d.%d.%d ",ip[0],ip[1],ip[2],ip[3])); -} -#else -#define printip(x) -#endif -/*---------------------------------------------------------------------------*/ -void -ipcp_init(void) -{ - DEBUG1(("ipcp init\n")); - ipcp_state = 0; - ppp_retry = 0; - pppif.ipaddr[0] = pppif.ipaddr[1] = 0; -} -/*---------------------------------------------------------------------------*/ -/* - * IPCP RX protocol Handler - */ -void -ipcp_rx(u8_t *buffer, u16_t count) -{ - u8_t *bptr = buffer; - IPCPPKT *pkt=(IPCPPKT *)buffer; - u16_t len; - - DEBUG1(("IPCP len %d\n",count)); - - switch(*bptr++) { - case CONF_REQ: - /* parce request and see if we can ACK it */ - ++bptr; - len = (*bptr++ << 8); - len |= *bptr++; - /* len-=2; */ - - DEBUG1(("check lcplist\n")); - if(scan_packet(IPCP, ipcplist, buffer, bptr, (u16_t)(len - 4))) { - DEBUG1(("option was bad\n")); - } else { - DEBUG1(("IPCP options are good\n")); - /* - * Parse out the results - */ - /* lets try to implement what peer wants */ - /* Reject any protocol not */ - /* Error? if we we need to send a config Reject ++++ this is - good for a subroutine*/ - /* All we should get is the peer IP address */ - if(IPCP_IPADDRESS == *bptr++) { - /* dump length */ - ++bptr; -#ifdef IPCP_GET_PEER_IP - ((u8_t*)peer_ip_addr)[0] = *bptr++; - ((u8_t*)peer_ip_addr)[1] = *bptr++; - ((u8_t*)peer_ip_addr)[2] = *bptr++; - ((u8_t*)peer_ip_addr)[3] = *bptr++; - DEBUG1(("Peer IP ")); - /* printip(peer_ip_addr);*/ - DEBUG1(("\n")); -#else - bptr += 4; -#endif - } else { - DEBUG1(("HMMMM this shouldn't happen IPCP1\n")); - } - -#if 0 - if(error) { - /* write the config NAK packet we've built above, take on the header */ - bptr = buffer; - *bptr++ = CONF_NAK; /* Write Conf_rej */ - *bptr++; - /*tptr++;*/ /* skip over ID */ - - /* Write new length */ - *bptr++ = 0; - *bptr = tptr - buffer; - - /* write the reject frame */ - DEBUG1(("Writing NAK frame \n")); - ahdlc_tx(IPCP, buffer, (u16_t)(tptr - buffer)); - DEBUG1(("- End NAK Write frame\n")); - - } else { - } -#endif - /* - * If we get here then we are OK, lets send an ACK and tell the rest - * of our modules our negotiated config. - */ - ipcp_state |= IPCP_RX_UP; - DEBUG1(("Send IPCP ACK!\n")); - bptr = buffer; - *bptr++ = CONF_ACK; /* Write Conf_ACK */ - bptr++; /* Skip ID (send same one) */ - /* - * Set stuff - */ - /* ppp_flags |= tflag; */ - DEBUG1(("SET- stuff -- are we up? c=%d dif=%d \n", count, (u16_t)(bptr-buffer))); - - /* write the ACK frame */ - DEBUG1(("Writing ACK frame \n")); - /* Send packet ahdlc_txz(procol,header,data,headerlen,datalen); */ - ahdlc_tx(IPCP, 0, buffer, 0, count /*bptr-buffer*/); - DEBUG1(("- End ACK Write frame\n")); - - /* expire the timer to make things happen after a state change */ - /*timer_expire(); */ - - /* } */ - } - break; - case CONF_ACK: /* config Ack */ - DEBUG1(("CONF ACK\n")); - /* - * Parse out the results - * - * Dump the ID and get the length. - */ - /* dump the ID */ - bptr++; - - /* get the length */ - len = (*bptr++ << 8); - len |= *bptr++; -#if 0 - /* Parse ACK and set data */ - while(bptr < buffer + len) { - switch(*bptr++) { - case IPCP_IPADDRESS: - /* dump length */ - bptr++; - ((u8_t*)ipaddr)[0] = *bptr++; - ((u8_t*)ipaddr)[1] = *bptr++; - ((u8_t*)ipaddr)[2] = *bptr++; - ((u8_t*)ipaddr)[3] = *bptr++; - break; - case IPCP_PRIMARY_DNS: - bptr++; - ((u8_t*)pri_dns_addr)[0] = *bptr++; - ((u8_t*)pri_dns_addr)[1] = *bptr++; - ((u8_t*)pri_dns_addr)[2] = *bptr++; - ((u8_t*)pri_dns_addr)[3] = *bptr++; - break; - case IPCP_SECONDARY_DNS: - bptr++; - ((u8_t*)sec_dns_addr)[0] = *bptr++; - ((u8_t*)sec_dns_addr)[1] = *bptr++; - ((u8_t*)sec_dns_addr)[2] = *bptr++; - ((u8_t*)sec_dns_addr)[3] = *bptr++; - break; - default: - DEBUG1(("IPCP CONFIG_ACK problem1\n")); - } - } -#endif - ipcp_state |= IPCP_TX_UP; - /*ipcp_state &= ~IPCP_RX_UP;*/ - DEBUG1(("were up! \n")); - printip(pppif.ipaddr); -#ifdef IPCP_GET_PRI_DNS - printip(pri_dns_addr); -#endif -#ifdef IPCP_GET_SEC_DNS - printip(sec_dns_addr); -#endif - DEBUG1(("\n")); - - /* expire the timer to make things happen after a state change */ - TIMER_expire(); - break; - case CONF_NAK: /* Config Nack */ - DEBUG1(("CONF NAK\n")); - /* dump the ID */ - bptr++; - /* get the length */ - len = (*bptr++ << 8); - len |= *bptr++; - - /* Parse ACK and set data */ - while(bptr < buffer + len) { - switch(*bptr++) { - case IPCP_IPADDRESS: - /* dump length */ - bptr++; - ((u8_t*)pppif.ipaddr)[0] = *bptr++; - ((u8_t*)pppif.ipaddr)[1] = *bptr++; - ((u8_t*)pppif.ipaddr)[2] = *bptr++; - ((u8_t*)pppif.ipaddr)[3] = *bptr++; - uip_fw_register( &pppif ); - DEBUG1(("My PPP-ipno: (%d.%d.%d.%d)\n", ((u8_t*)pppif.ipaddr)[0], ((u8_t*)pppif.ipaddr)[1], ((u8_t*)pppif.ipaddr)[2], ((u8_t*)pppif.ipaddr)[3])); - break; -#ifdef IPCP_GET_PRI_DNS - case IPCP_PRIMARY_DNS: - bptr++; - ((u8_t*)pri_dns_addr)[0] = *bptr++; - ((u8_t*)pri_dns_addr)[1] = *bptr++; - ((u8_t*)pri_dns_addr)[2] = *bptr++; - ((u8_t*)pri_dns_addr)[3] = *bptr++; - break; -#endif -#ifdef IPCP_GET_SEC_DNS - case IPCP_SECONDARY_DNS: - bptr++; - ((u8_t*)sec_dns_addr)[0] = *bptr++; - ((u8_t*)sec_dns_addr)[1] = *bptr++; - ((u8_t*)sec_dns_addr)[2] = *bptr++; - ((u8_t*)sec_dns_addr)[3] = *bptr++; - break; -#endif - default: - DEBUG1(("IPCP CONFIG_ACK problem 2\n")); - } - } - ppp_id++; - printip(pppif.ipaddr); -#ifdef IPCP_GET_PRI_DNS - printip(pri_dns_addr); -#endif -#ifdef IPCP_GET_PRI_DNS - printip(sec_dns_addr); -#endif - DEBUG1(("\n")); - /* expire the timer to make things happen after a state change */ - TIMER_expire(); - break; - case CONF_REJ: /* Config Reject */ - DEBUG1(("CONF REJ\n")); - /* Remove the offending options*/ - ppp_id++; - /* dump the ID */ - bptr++; - /* get the length */ - len = (*bptr++ << 8); - len |= *bptr++; - - /* Parse ACK and set data */ - while(bptr < buffer + len) { - switch(*bptr++) { - case IPCP_IPADDRESS: - ipcp_state |= IPCP_IP_BIT; - bptr += 5; - break; -#ifdef IPCP_GET_PRI_DNS - case IPCP_PRIMARY_DNS: - ipcp_state |= IPCP_PRI_DNS_BIT; - bptr += 5; - break; -#endif -#ifdef IPCP_GET_PRI_DNS - case IPCP_SECONDARY_DNS: - ipcp_state |= IPCP_SEC_DNS_BIT; - bptr += 5; - break; -#endif - default: - DEBUG1(("IPCP this shoudln't happen 3\n")); - } - } - /* expire the timer to make things happen after a state change */ - /*timer_expire(); */ - break; - default: - DEBUG1(("-Unknown 4\n")); - } -} - -/*---------------------------------------------------------------------------*/ -void -ipcp_task(u8_t *buffer) -{ - u8_t *bptr; - u16_t t; - IPCPPKT *pkt; - - /* IPCP tx not up and hasn't timed out then lets see if we need to - send a request */ - if(!(ipcp_state & IPCP_TX_UP) && !(ipcp_state & IPCP_TX_TIMEOUT)) { - /* Check if we have a request pending */ - /*t=get_seconds()-ipcp_tx_time;*/ -#if 0 - if(TIMER_timeout(IPCP_TIMEOUT)) { -#else - if((clock_seconds() - prev_ipcp_seconds) > IPCP_TIMEOUT) { - prev_ipcp_seconds = clock_seconds(); -#endif - - /* - * No pending request, lets build one - */ - pkt=(IPCPPKT *)buffer; - - /* Configure-Request only here, write id */ - pkt->code = CONF_REQ; - pkt->id = ppp_id; - - bptr = pkt->data; - - /* - * Write options, we want IP address, and DNS addresses if set. - */ - - /* Write zeros for IP address the first time */ - *bptr++ = IPCP_IPADDRESS; - *bptr++ = 0x6; - *bptr++ = ((u8_t*)pppif.ipaddr)[0]; - *bptr++ = ((u8_t*)pppif.ipaddr)[1]; - *bptr++ = ((u8_t*)pppif.ipaddr)[2]; - *bptr++ = ((u8_t*)pppif.ipaddr)[3]; - -#ifdef IPCP_GET_PRI_DNS - if(!(ipcp_state & IPCP_PRI_DNS_BIT)) { - /* Write zeros for IP address the first time */ - *bptr++ = IPCP_PRIMARY_DNS; - *bptr++ = 0x6; - *bptr++ = ((u8_t*)pri_dns_addr)[0]; - *bptr++ = ((u8_t*)pri_dns_addr)[1]; - *bptr++ = ((u8_t*)pri_dns_addr)[2]; - *bptr++ = ((u8_t*)pri_dns_addr)[3]; - } -#endif -#ifdef IPCP_GET_SEC_DNS - if(!(ipcp_state & IPCP_SEC_DNS_BIT)) { - /* Write zeros for IP address the first time */ - *bptr++ = IPCP_SECONDARY_DNS; - *bptr++ = 0x6; - *bptr++ = ((u8_t*)sec_dns_addr)[0]; - *bptr++ = ((u8_t*)sec_dns_addr)[1]; - *bptr++ = ((u8_t*)sec_dns_addr)[2]; - *bptr++ = ((u8_t*)sec_dns_addr)[3]; - } -#endif - /* Write length */ - t = bptr - buffer; - /* length here - code and ID + */ - pkt->len = uip_htons(t); - - DEBUG1(("\n**Sending IPCP Request packet\n")); - - /* Send packet ahdlc_txz(procol,header,data,headerlen,datalen); */ - ahdlc_tx(IPCP, 0, buffer, 0, t); - - /* Set timer */ - /*ipcp_tx_time=get_seconds();*/ - TIMER_set(); - /* Inc retry */ - /*ipcp_retry++;*/ - ppp_retry++; - /* - * Have we timed out? (combide the timers?) - */ - if(ppp_retry > IPCP_RETRY_COUNT) - ipcp_state &= IPCP_TX_TIMEOUT; - } - } -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/core/net/ppp/ipcp.h b/backyard/core/net/ppp/ipcp.h deleted file mode 100644 index 58a89977e..000000000 --- a/backyard/core/net/ppp/ipcp.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef __IPCP_H__ -#define __IPCP_H__ -/* www.mycal.com - --------------------------------------------------------------------------- - IPCP.h - Internet Protocol Control Protocol header file - --------------------------------------------------------------------------- - Version - 0.1 Original Version June 3, 2000 - (c)2000 Mycal Labs, All Rights Reserved - --------------------------------------------------------------------------- -*/ -/* - * Copyright (c) 2003, Mike Johnson, Mycal Labs, www.mycal.net - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mike Johnson/Mycal Labs - * www.mycal.net. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Mycal Modified uIP TCP/IP stack. - * - * $Id: ipcp.h,v 1.1 2007/05/26 07:14:39 oliverschmidt Exp $ - * - */ -#include "net/uip.h" -#include "contiki-conf.h" - -/* Config options (move to pppconfig) - #define IPCP_RETRY_COUNT 5 - #define IPCP_TIMEOUT 5 -*/ - -/* IPCP Option Types */ -#define IPCP_IPADDRESS 0x03 -#define IPCP_PRIMARY_DNS 0x81 -#define IPCP_SECONDARY_DNS 0x83 - -/* IPCP state machine flags */ -#define IPCP_TX_UP 0x01 -#define IPCP_RX_UP 0x02 -#define IPCP_IP_BIT 0x04 -#define IPCP_TX_TIMEOUT 0x08 -#define IPCP_PRI_DNS_BIT 0x08 -#define IPCP_SEC_DNS_BIT 0x10 - -typedef struct _ipcp -{ - u8_t code; - u8_t id; - u16_t len; - u8_t data[0]; -} IPCPPKT; - -/* - * Export IP addresses. - */ -#if 0 /* moved to mip.c */ -extern IPAddr our_ipaddr; -extern IPAddr peer_ip_addr; -extern IPAddr pri_dns_addr; -extern IPAddr sec_dns_addr; -#endif - -extern u8_t ipcp_state; - -void ipcp_init(void); -void ipcp_task(u8_t *buffer); -void ipcp_rx(u8_t *, u16_t); - -#endif /* __IPCP_H__ */ - diff --git a/backyard/core/net/ppp/lcp.c b/backyard/core/net/ppp/lcp.c deleted file mode 100644 index 5b095e86c..000000000 --- a/backyard/core/net/ppp/lcp.c +++ /dev/null @@ -1,463 +0,0 @@ -/* www.mycal.com - *--------------------------------------------------------------------------- - *lcp.c - Link Configuration Protocol Handler. - - - *--------------------------------------------------------------------------- - *Version - 0.1 Original Version June 3, 2000 - - * - *--------------------------------------------------------------------------- - *- Copyright (C) 2000, Mycal Labs www.mycal.com - - - *--------------------------------------------------------------------------- - * - * -*/ -/* - * Copyright (c) 2003, Mike Johnson, Mycal Labs, www.mycal.net - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mike Johnson/Mycal Labs - * www.mycal.net. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Mycal Modified uIP TCP/IP stack. - * - * $Id: lcp.c,v 1.2 2010/10/19 18:29:03 adamdunkels Exp $ - * - */ - -/* */ -/* include files */ -/* */ - -#include "contiki-conf.h" - -/*#include "time.h"*/ -#include "ppp.h" -#include "ahdlc.h" -#include "lcp.h" - -#if 0 -#define DEBUG1(x) -#define DEBUG2(x) -#else -#include -#define DEBUG1(x) debug_printf x -#define DEBUG2(x) debug_printf x -#endif - -#define TIMER_expire() -#define TIMER_set() -#define TIMER_timeout(x) 1 -static unsigned long prev_lcp_seconds = 0; - - -/*u8_t tflag; -u8_t *lcp_buffer; -u16_t lcp_tx_time; -u8_t lcp_retry; -u16_t lcp_timeout=5;*/ - -u8_t lcp_state; -u16_t ppp_tx_mru = 0; - -/* We need this when we neg our direction. - u8_t lcp_tx_options; */ - -/* - * Define the supported paramets for this module here. - */ -u8_t lcplist[] = { - LPC_MAGICNUMBER, - LPC_PFC, - LPC_ACFC, - LPC_AUTH, - LPC_ACCM, - LPC_MRU, - 0}; - - -/*---------------------------------------------------------------------------*/ -/* lcp_init() - Initialize the LCP engine to startup values */ -/*---------------------------------------------------------------------------*/ -void -lcp_init(void) -{ - lcp_state = 0; - ppp_retry = 0; - TIMER_expire(); -} -/*---------------------------------------------------------------------------*/ -/* lcp_rx() - Receive an LCP packet and process it. - * This routine receives a LCP packet in buffer of length count. - * Process it here, support for CONF_REQ, CONF_ACK, CONF_NACK, CONF_REJ or - * TERM_REQ. - */ -/*---------------------------------------------------------------------------*/ -void -lcp_rx(u8_t *buffer, u16_t count) -{ - u8_t *bptr = buffer, *tptr; - u8_t error = 0; - u8_t id; - u16_t len, j; - - switch(*bptr++) { - case CONF_REQ: /* config request */ - /* parce request and see if we can ACK it */ - id = *bptr++; - len = (*bptr++ << 8); - len |= *bptr++; - /*len -= 2;*/ - DEBUG1(("received [LCP Config Request id %u\n",id)); - if(scan_packet((u16_t)LCP, lcplist, buffer, bptr, (u16_t)(len-4))) { - /* must do the -4 here, !scan packet */ - - DEBUG1((" options were rejected\n")); - } else { - /* lets try to implement what peer wants */ - tptr = bptr = buffer; - bptr += 4; /* skip code, id, len */ - error = 0; - /* first scan for unknown values */ - while(bptr < buffer+len) { - switch(*bptr++) { - case LPC_MRU: /* mru */ - j = *bptr++; - j -= 2; - if(j == 2) { - ppp_tx_mru = ((int)*bptr++) << 8; - ppp_tx_mru |= *bptr++; - DEBUG1((" ",ppp_tx_mru)); - } else { - DEBUG1((" ")); - } - break; - case LPC_ACCM: /* */ - bptr++; /* skip length */ - j = *bptr++; - j += *bptr++; - j += *bptr++; - j += *bptr++; - if(j==0) { - // ok - DEBUG1(("",j)); - //ahdlc_flags |= PPP_TX_ASYNC_MAP; - } else if(j!=0) { - // ok - DEBUG1((", assume 0xffffffff",j)); - } else { - /* - * fail we only support default or all zeros - */ - DEBUG1(("We only support default or all zeros for ACCM ")); - error = 1; - *tptr++ = LPC_ACCM; - *tptr++ = 0x6; - *tptr++ = 0; - *tptr++ = 0; - *tptr++ = 0; - *tptr++ = 0; - } - break; - case LPC_AUTH: - bptr++; - if((*bptr++ == 0xc0) && (*bptr++ == 0x23)) { - /* negotiate PAP */ - if (strlen(pap_username) > 0) { - DEBUG1((" ")); - lcp_state |= LCP_RX_AUTH; - } else { - DEBUG1((" ")); - - *tptr++ = CONF_REJ; - *tptr++; // Keep ID - *tptr++ = 0; - *tptr++ = 8; - *tptr++ = LPC_AUTH; - *tptr++ = 0x4; - *tptr++ = 0xc0; - *tptr++ = 0x23; - ahdlc_tx(LCP, 0, buffer, 0, (u16_t)(tptr-buffer)); - return; - } - } else { - /* we only support PAP */ - DEBUG1(("")); - error = 1; - *tptr++ = LPC_AUTH; - *tptr++ = 0x4; - *tptr++ = 0xc0; - *tptr++ = 0x23; - } - break; - case LPC_MAGICNUMBER: - DEBUG1((" ")); - /* - * Compair incoming number to our number (not implemented) - */ - bptr++; /* for now just dump */ - bptr++; - bptr++; - bptr++; - bptr++; - break; - case LPC_PFC: - bptr++; - DEBUG1((" ")); - /*tflag|=PPP_PFC;*/ - break; - case LPC_ACFC: - bptr++; - DEBUG1((" ")); - /*tflag|=PPP_ACFC;*/ - break; - - } - } - /* Error? if we we need to send a config Reject ++++ this is good for a subroutine */ - if(error) { - /* write the config NAK packet we've built above, take on the header */ - bptr = buffer; - *bptr++ = CONF_NAK; /* Write Conf_rej */ - *bptr++;/*tptr++;*/ /* skip over ID */ - - /* Write new length */ - *bptr++ = 0; - *bptr = tptr - buffer; - - /* write the reject frame */ - DEBUG1(("\nWriting NAK frame \n")); - // Send packet ahdlc_txz(procol,header,data,headerlen,datalen); - ahdlc_tx(LCP, 0, buffer, 0, (u16_t)(tptr-buffer)); - DEBUG1(("- end NAK Write frame\n")); - - } else { - /* - * If we get here then we are OK, lets send an ACK and tell the rest - * of our modules our negotiated config. - */ - DEBUG1(("\nSend ACK!\n")); - bptr = buffer; - *bptr++ = CONF_ACK; /* Write Conf_ACK */ - bptr++; /* Skip ID (send same one) */ - /* - * Set stuff - */ - /*ppp_flags|=tflag;*/ - /* DEBUG2("SET- stuff -- are we up? c=%d dif=%d \n", count, (u16_t)(bptr-buffer)); */ - - /* write the ACK frame */ - DEBUG2(("Writing ACK frame \n")); - /* Send packet ahdlc_txz(procol,header,data,headerlen,datalen); */ - ahdlc_tx(LCP, 0, buffer, 0, count /*bptr-buffer*/); - DEBUG2(("- end ACK Write frame\n")); - lcp_state |= LCP_RX_UP; - - /* expire the timer to make things happen after a state change */ - /*timer_expire();*/ - - } - } - break; - case CONF_ACK: /* config Ack Anytime we do an ack reset the timer to force send. */ - DEBUG1(("LCP-ACK - ")); - /* check that ID matches one sent */ - if(*bptr++ == ppp_id) { - /* Change state to PPP up. */ - DEBUG1((">>>>>>>> good ACK id up! %d\n",ppp_id)); - /* copy negotiated values over */ - - lcp_state |= LCP_TX_UP; - - /* expire the timer to make things happen after a state change */ - TIMER_expire(); - } - else - DEBUG1(("*************++++++++++ bad id %d\n",ppp_id)); - break; - case CONF_NAK: /* Config Nack */ - DEBUG1(("LCP-CONF NAK\n")); - ppp_id++; - break; - case CONF_REJ: /* Config Reject */ - DEBUG1(("LCP-CONF REJ\n")); - ppp_id++; - break; - case TERM_REQ: /* Terminate Request */ - DEBUG1(("LCP-TERM-REQ -")); - bptr = buffer; - *bptr++ = TERM_ACK; /* Write TERM_ACK */ - /* write the reject frame */ - DEBUG1(("Writing TERM_ACK frame \n")); - /* Send packet ahdlc_txz(procol,header,data,headerlen,datalen); */ - ahdlc_tx(LCP, 0, buffer, 0, count); - lcp_state &= ~LCP_TX_UP; - lcp_state |= LCP_TERM_PEER; - break; - case TERM_ACK: - DEBUG1(("LCP-TERM ACK\n")); - break; - default: - break; - } -} - - -void lcp_disconnect(u8_t id) { - u8_t buffer[4]; - u8_t *bptr = buffer; - *bptr++ = TERM_REQ; - *bptr++ = id; - *bptr++ = 0; - *bptr++ = 4; - ahdlc_tx(LCP, 0, buffer, 0, bptr - buffer); -} - -/*---------------------------------------------------------------------------*/ -/* lcp_task(buffer) - This routine see if a lcp request needs to be sent - * out. It uses the passed buffer to form the packet. This formed LCP - * request is what we negotiate for sending options on the link. - * - * Currently we negotiate : Magic Number Only, but this will change. - */ -/*---------------------------------------------------------------------------*/ -void -lcp_task(u8_t *buffer) -{ - u8_t *bptr; - u16_t t; - LCPPKT *pkt; - - /* lcp tx not up and hasn't timed out then lets see if we need to send a request */ - if(!(lcp_state & LCP_TX_UP) && !(lcp_state & LCP_TX_TIMEOUT)) { - /* Check if we have a request pending */ - /*t=get_seconds()-lcp_tx_time;*/ -#if 0 - if(1 == TIMER_timeout(LCP_TX_TIMEOUT)) { -#else - if((clock_seconds() - prev_lcp_seconds) > LCP_TIMEOUT) { - prev_lcp_seconds = clock_seconds(); -#endif - DEBUG1(("\nSending LCP request packet - ")); - /* - * No pending request, lets build one - */ - pkt = (LCPPKT *)buffer; - - /* Configure-Request only here, write id */ - pkt->code = CONF_REQ; - pkt->id = ppp_id; - - bptr = pkt->data; - - /* Write options */ - - /* ACCM */ - //if((lcp_tx_options & LCP_OPT_ACCM) & 0) { - *bptr++ = LPC_ACCM; - *bptr++ = 0x6; - *bptr++ = 0xff; - *bptr++ = 0xff; - *bptr++ = 0xff; - *bptr++ = 0xff; - //} - -#if 0 - /* Write magic number */ - DEBUG1(("LPC_MAGICNUMBER -")); - *bptr++ = LPC_MAGICNUMBER; - *bptr++ = 0x6; - /* - *bptr++ = random_rand() & 0xff; - *bptr++ = random_rand() & 0xff; - *bptr++ = random_rand() & 0xff; - *bptr++ = random_rand() & 0xff; - */ - *bptr++ = 0x11; - *bptr++ = 0x11; - *bptr++ = 0x11; - *bptr++ = 0x11; -#endif - -#if 0 - /* - * Authentication protocol - */ - if((lcp_tx_options & LCP_OPT_AUTH) && 0) { - /* - * If turned on, we only negotiate PAP - */ - *bptr++ = LPC_AUTH; - *bptr++ = 0x4; - *bptr++ = 0xc0; - *bptr++ = 0x23; - } - /* - * PFC - */ - if((lcp_tx_options & LCP_OPT_PFC) && 0) { - /* - * If turned on, we only negotiate PAP - */ - *bptr++ = LPC_PFC; - *bptr++ = 0x2; - } - /* - * ACFC - */ - if((lcp_tx_options & LCP_OPT_ACFC) && 0) { - /* - * If turned on, we only negotiate PAP - */ - *bptr++ = LPC_ACFC; - *bptr++ = 0x2; - } -#endif - /* Write length */ - t = bptr - buffer; - pkt->len = uip_htons(t); /* length here - code and ID + */ - - DEBUG1((" len %d\n",t)); - - /* Send packet */ - /* Send packet ahdlc_txz(procol,header,data,headerlen,datalen); */ - ahdlc_tx(LCP, 0, buffer, 0, t); - - /* Set timer */ - TIMER_set(); - /*lcp_tx_time=get_seconds();*/ - /* Inc retry */ - ppp_retry++; - /* - * Have we timed out? - */ - if(ppp_retry > LCP_RETRY_COUNT) { - lcp_state &= LCP_TX_TIMEOUT; - } - } - } -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/core/net/ppp/lcp.h b/backyard/core/net/ppp/lcp.h deleted file mode 100644 index b39e15936..000000000 --- a/backyard/core/net/ppp/lcp.h +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef __LCP_H__ -#define __LCP_H__ -/* www.mycal.com - --------------------------------------------------------------------------- - LCP.h - LCP header file - --------------------------------------------------------------------------- - Version - - 0.1 Original Version June 3, 2000 - (c)2000 Mycal Labs, All Rights Reserved - --------------------------------------------------------------------------- -*/ -/* - * Copyright (c) 2003, Mike Johnson, Mycal Labs, www.mycal.net - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mike Johnson/Mycal Labs - * www.mycal.net. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Mycal Modified uIP TCP/IP stack. - * - * $Id: lcp.h,v 1.1 2007/05/26 07:14:39 oliverschmidt Exp $ - * - */ - -#include "net/uip.h" -#include "contiki-conf.h" - -/* LCP Option Types */ -#define LPC_VENDERX 0x0 -#define LPC_MRU 0x1 -#define LPC_ACCM 0x2 -#define LPC_AUTH 0x3 -#define LPC_QUALITY 0x4 -#define LPC_MAGICNUMBER 0x5 -#define LPC_PFC 0x7 -#define LPC_ACFC 0x8 - -/* LCP Negotiated options flag equates */ -#define LCP_OPT_ACCM 0x1 -#define LCP_OPT_AUTH 0x2 -#define LCP_OPT_PFC 0x4 -#define LCP_OPT_ACFC 0x4 - -/* LCP state machine flags */ -#define LCP_TX_UP 0x1 -#define LCP_RX_UP 0x2 - -#define LCP_RX_AUTH 0x10 -/* LCP request for auth */ -#define LCP_TERM_PEER 0x20 -/* LCP Terminated by peer */ -#define LCP_RX_TIMEOUT 0x40 -#define LCP_TX_TIMEOUT 0x80 - -typedef struct _lcppkt -{ - u8_t code; - u8_t id; - u16_t len; - u8_t data[0]; -} LCPPKT; - -/* Exported Vars */ -extern u8_t lcp_state; - -void lcp_init(void); -void lcp_rx(u8_t *, u16_t); -void lcp_task(u8_t *buffer); -void lcp_disconnect(u8_t id); - -#endif /* __LCP_H__ */ diff --git a/backyard/core/net/ppp/pap.c b/backyard/core/net/ppp/pap.c deleted file mode 100644 index d75fae5f8..000000000 --- a/backyard/core/net/ppp/pap.c +++ /dev/null @@ -1,195 +0,0 @@ -/*www.mycal.net - *--------------------------------------------------------------------------- - *pap.c - PAP processor for the PPP module - - - *--------------------------------------------------------------------------- - *Version - 0.1 Original Version Jun 3, 2000 - - - *--------------------------------------------------------------------------- - *- Copyright (C) 2000, Mycal Labs www.mycal.com - - - *--------------------------------------------------------------------------- -*/ -/* - * Copyright (c) 2003, Mike Johnson, Mycal Labs, www.mycal.net - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mike Johnson/Mycal Labs - * www.mycal.net. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Mycal Modified uIP TCP/IP stack. - * - * $Id: pap.c,v 1.2 2010/10/19 18:29:03 adamdunkels Exp $ - * - */ - -/* */ -/* include files */ -/* */ - -#include -#include "ppp.h" -#include "pap.h" -#include "lcp.h" - -#if 0 -#define DEBUG1(x) -#else -#include -#define DEBUG1(x) debug_printf x -#endif - -/*#include "time.h"*/ -/*#include "utils.h" */ -#define TIMER_expire() -#define TIMER_set() -#define TIMER_timeout(x) 1 - - -u8_t pap_state; - -#ifdef PAP_USERNAME -u8_t pap_username[] = PAP_USERNAME; -#else -u8_t pap_username[PAP_USERNAME_SIZE]; -#endif - -#ifdef PAP_PASSWORD -u8_t pap_password[] = PAP_PASSWORD; -#else -u8_t pap_password[PAP_PASSWORD_SIZE]; -#endif - -/*u16_t pap_tx_time; - u8_t pap_timeout;*/ - -/*---------------------------------------------------------------------------*/ -void -pap_init(void) -{ - ppp_retry = 0; /* We reuse ppp_retry */ - pap_state = 0; -} -/*---------------------------------------------------------------------------*/ -/* pap_rx() - PAP RX protocol Handler */ -/*---------------------------------------------------------------------------*/ -void -pap_rx(u8_t *buffer, u16_t count) -{ - u8_t *bptr=buffer; - u8_t len; - - switch(*bptr++) { - case CONF_REQ: - DEBUG1(("CONF ACK - only for server, no support\n")); - break; - case CONF_ACK: /* config Ack */ - DEBUG1(("CONF ACK - PAP good - ")); - /* Display message if debug */ - len = *bptr++; - *(bptr + len) = 0; - DEBUG1((" %s \n",bptr)); - pap_state |= PAP_TX_UP; - /* expire the timer to make things happen after a state change */ - TIMER_expire(); - break; - case CONF_NAK: - DEBUG1(("CONF NAK - Failed Auth - ")); - pap_state |= PAP_TX_AUTH_FAIL; - /* display message if debug */ - len = *bptr++; - *(bptr + len)=0; - DEBUG1((" %s \n",bptr)); - break; - } -} -/*---------------------------------------------------------------------------*/ -/* pap_task() - This task needs to be called every so often during the PAP - * negotiation phase. This task sends PAP REQ packets. - */ -/*---------------------------------------------------------------------------*/ -void -pap_task(u8_t *buffer) -{ - u8_t *bptr; - u16_t t; - PAPPKT *pkt; - - /* If LCP is up and PAP negotiated, try to bring up PAP */ - if(!(pap_state & PAP_TX_UP) && !(pap_state & PAP_TX_TIMEOUT)) { - /* Do we need to send a PAP auth packet? - Check if we have a request pending*/ - if(1 == TIMER_timeout(PAP_TIMEOUT)) { - /* Check if we have a request pending */ - /* t=get_seconds()-pap_tx_time; - if( t > pap_timeout) - { - */ - /* We need to send a PAP authentication request */ - DEBUG1(("\nSending PAP Request packet - ")); - - /* Build a PAP request packet */ - pkt = (PAPPKT *)buffer; - - /* Configure-Request only here, write id */ - pkt->code = CONF_REQ; - pkt->id = ppp_id; - bptr = pkt->data; - - /* Write options */ - t = strlen(pap_username); - /* Write peer length */ - *bptr++ = (u8_t)t; - bptr = memcpy(bptr, pap_username, t); - - t = strlen(pap_password); - *bptr++ = (u8_t)t; - bptr = memcpy(bptr, pap_password, t); - - /* Write length */ - t = bptr - buffer; - /* length here - code and ID + */ - pkt->len = uip_htons(t); - - DEBUG1((" Len %d\n",t)); - - /* Send packet */ - ahdlc_tx(PAP, buffer, 0, t, 0); - - /* Set timer */ - TIMER_set(); - - ppp_retry++; - - /* Have we failed? */ - if(ppp_retry > 3) { - DEBUG1(("PAP - timout\n")); - pap_state &= PAP_TX_TIMEOUT; - - } - } - } -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/core/net/ppp/pap.h b/backyard/core/net/ppp/pap.h deleted file mode 100644 index 6ed0bdaab..000000000 --- a/backyard/core/net/ppp/pap.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef __PAP_H__ -#define __PAP_H__ -/* - www.mycal.com - --------------------------------------------------------------------------- - pap.h - pap header file - --------------------------------------------------------------------------- - Version - 0.1 Original Version June 3, 2000 - (c)2000 Mycal Labs, All Rights Reserved - --------------------------------------------------------------------------- -*/ -/* - * Copyright (c) 2003, Mike Johnson, Mycal Labs, www.mycal.net - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mike Johnson/Mycal Labs - * www.mycal.net. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Mycal Modified uIP TCP/IP stack. - * - * $Id: pap.h,v 1.1 2007/05/26 07:14:40 oliverschmidt Exp $ - * - */ - -#include "net/uip.h" - -/* PAP state machine flags */ -/* client only */ -#define PAP_TX_UP 0x01 -/* server only */ -#define PAP_RX_UP 0x02 - -#define PAP_RX_AUTH_FAIL 0x10 -#define PAP_TX_AUTH_FAIL 0x20 -#define PAP_RX_TIMEOUT 0x80 -#define PAP_TX_TIMEOUT 0x80 - -typedef struct _pappkt { - u8_t code; - u8_t id; - u16_t len; - u8_t data[0]; -} PAPPKT; - -/* Export pap_state */ -extern u8_t pap_state; - -extern u8_t pap_username[]; -extern u8_t pap_password[]; - -/* Function prototypes */ -void pap_init(void); -void pap_rx(u8_t *, u16_t); -void pap_task(u8_t *buffer); - -#endif /* __PAP_H__ */ - diff --git a/backyard/core/net/ppp/ppp-service.c b/backyard/core/net/ppp/ppp-service.c deleted file mode 100644 index af777d119..000000000 --- a/backyard/core/net/ppp/ppp-service.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ppp-service.c,v 1.1 2007/05/26 07:14:40 oliverschmidt Exp $ - */ - -#if 0 -#include "net/packet-service.h" -#include "ppp.h" - -static void output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen); - -static const struct packet_service_state state = - { - PACKET_SERVICE_VERSION, - output - }; - -EK_EVENTHANDLER(eventhandler, ev, data); -EK_POLLHANDLER(pollhandler); -EK_PROCESS(proc, PACKET_SERVICE_NAME, EK_PRIO_NORMAL, - eventhandler, pollhandler, (void *)&state); - -/*---------------------------------------------------------------------------*/ -EK_PROCESS_INIT(ppp_service_init, arg) -{ - ek_service_start(PACKET_SERVICE_NAME, &proc); -} -/*---------------------------------------------------------------------------*/ -static void -output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen) -{ - ppp_send(); -} -/*---------------------------------------------------------------------------*/ -EK_EVENTHANDLER(eventhandler, ev, data) -{ - switch(ev) { - case EK_EVENT_INIT: - case EK_EVENT_REPLACE: -// ppp_init(); - break; - case EK_EVENT_REQUEST_REPLACE: - ek_replace((struct ek_proc *)data, NULL); - LOADER_UNLOAD(); - break; - case EK_EVENT_REQUEST_EXIT: - ek_exit(); - LOADER_UNLOAD(); - break; - default: - break; - } -} -/*---------------------------------------------------------------------------*/ -EK_POLLHANDLER(pollhandler) -{ - ppp_poll(); - if(uip_len > 0) { - tcpip_input(); - } -} -/*---------------------------------------------------------------------------*/ -#endif diff --git a/backyard/core/net/ppp/ppp.c b/backyard/core/net/ppp/ppp.c deleted file mode 100644 index d0c1aa288..000000000 --- a/backyard/core/net/ppp/ppp.c +++ /dev/null @@ -1,440 +0,0 @@ -/* - *--------------------------------------------------------------------------- - * ppp.c - PPP Processor/Handler - - * - - *--------------------------------------------------------------------------- - * - * Version - - * 0.1 Original Version Jun 3, 2000 - - * - - *--------------------------------------------------------------------------- - */ -/* - * Copyright (c) 2003, Mike Johnson, Mycal Labs, www.mycal.net - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mike Johnson/Mycal Labs - * www.mycal.net. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Mycal Modified uIP TCP/IP stack. - * - * $Id: ppp.c,v 1.2 2010/10/19 18:29:03 adamdunkels Exp $ - * - */ - -/* */ -/* include files */ -/* */ - - -#include "lcp.h" -#include "pap.h" -#include "ipcp.h" -/*#include "time.h"*/ -/*#include "mip.h"*/ - -#if 0 -#define DEBUG1(x) -#else -#include -#define DEBUG1(x) debug_printf x -#endif - -/* - Set the debug message level -*/ -#define PACKET_RX_DEBUG 1 - -/* - Include stuff -*/ -/*#include "mTypes.h"*/ -#include "ppp.h" -#include "ahdlc.h" -#include "ipcp.h" -#include "lcp.h" - -extern int ppp_arch_getchar(u8_t *p); - - -/* - Buffers that this layer needs (this can be optimized out) -*/ -u8_t ppp_rx_buffer[PPP_RX_BUFFER_SIZE]; -/*u8_t ppp_tx_buffer[PPP_TX_BUFFER_SIZE];*/ - -/* - * Other state storage (this can be placed in a struct and this could could - * support multiple PPP connections, would have to embedded the other ppp - * module state also) - */ -u8_t ppp_flags; -u8_t ppp_id; -u8_t ppp_retry; - -#if PACKET_RX_DEBUG -u16_t ppp_rx_frame_count=0; -u16_t ppp_rx_tobig_error; -u8_t done; /* temporary variable */ -#endif - -/*---------------------------------------------------------------------------*/ -static u8_t -check_ppp_errors(void) -{ - u8_t ret = 0; - - /* Check Errors */ - if(lcp_state & LCP_TX_TIMEOUT) { - ret = 1; - } - if(lcp_state & LCP_RX_TIMEOUT) { - ret = 2; - } - - if(pap_state & PAP_TX_AUTH_FAIL) { - ret = 3; - } - if(pap_state & PAP_RX_AUTH_FAIL) { - ret = 4; - } - - if(pap_state & PAP_TX_TIMEOUT) { - ret = 5; - } - if(pap_state & PAP_RX_TIMEOUT) { - ret = 6; - } - - if(ipcp_state & IPCP_TX_TIMEOUT) { - ret = 7; - } - - return ret; -} -/*---------------------------------------------------------------------------*/ -/* - * Unknown Protocol Handler, sends reject - */ -static void -ppp_reject_protocol(u16_t protocol, u8_t *buffer, u16_t count) -{ - u16_t i; - u8_t *dptr, *sptr; - LCPPKT *pkt; - - /* first copy rejected packet back, start from end and work forward, - +++ Pay attention to buffer managment when updated. Assumes fixed - PPP blocks. */ - DEBUG1(("Rejecting Protocol\n")); - if((count + 6) > PPP_RX_BUFFER_SIZE) { - /* This is a fatal error +++ do somthing about it. */ - DEBUG1(("Cannot Reject Protocol, PKT to big\n")); - return; - } - dptr = buffer + count + 6; - sptr = buffer + count; - for(i = 0; i < count; ++i) { - *dptr-- = *sptr--; - } - - pkt = (LCPPKT *)buffer; - pkt->code = PROT_REJ; /* Write Conf_rej */ - /*pkt->id = tid++;*/ /* write tid */ - pkt->len = uip_htons(count + 6); - *((u16_t *)(&pkt->data[0])) = uip_htons(protocol); - - ahdlc_tx(LCP, buffer, 0, (u16_t)(count + 6), 0); -} -/*---------------------------------------------------------------------------*/ -#if PACKET_RX_DEBUG -void -dump_ppp_packet(u8_t *buffer, u16_t len) -{ - int i; - - DEBUG1(("\n")); - for(i = 0;i < len; ++i) { - if((i & 0x1f) == 0x10) { - DEBUG1(("\n")); - } - DEBUG1(("0x%02x ",buffer[i])); - } - DEBUG1(("\n\n")); -} -#endif -/*---------------------------------------------------------------------------*/ -/* Initialize and start PPP engine. This just sets things up to - * starting values. This can stay a private method. - */ -/*---------------------------------------------------------------------------*/ -void -ppp_init() -{ -#if PACKET_RX_DEBUG - ppp_rx_frame_count = 0; - done = 0; -#endif - ppp_flags = 0; - pap_init(); - ipcp_init(); - lcp_init(); - ppp_flags = 0; - - ahdlc_init(ppp_rx_buffer, PPP_RX_BUFFER_SIZE); - ahdlc_rx_ready(); -} -/*---------------------------------------------------------------------------*/ -/* raise_ppp() - This routine will try to bring up a PPP connection, - * It is blocking. In the future we probably want to pass a - * structure with all the options on bringing up a PPP link, like - * server/client, DSN server, username password for PAP... +++ for - * now just use config and bit defines - */ -/*---------------------------------------------------------------------------*/ -#if 0 -u16_t -ppp_raise(u8_t config, u8_t *username, u8_t *password) -{ - u16_t status = 0; - - /* Initialize PPP engine */ - /* init_ppp(); */ - pap_init(); - ipcp_init(); - lcp_init(); - - /* Enable PPP */ - ppp_flags = PPP_RX_READY; - - /* Try to bring up the layers */ - while(status == 0) { -#ifdef SYSTEM_POLLER - /* If the the serial interrupt is not hooked to ahdlc_rx, or the - system needs to handle other stuff while were blocking, call - the system poller.*/ - system_poller(); -#endif - - /* call the lcp task to bring up the LCP layer */ - lcp_task(ppp_tx_buffer); - - /* If LCP is up, neg next layer */ - if(lcp_state & LCP_TX_UP) { - /* If LCP wants PAP, try to authenticate, else bring up IPCP */ - if((lcp_state & LCP_RX_AUTH) && (!(pap_state & PAP_TX_UP))) { - pap_task(ppp_tx_buffer,username,password); - } else { - ipcp_task(ppp_tx_buffer); - } - } - - - /* If IPCP came up then our link should be up. */ - if((ipcp_state & IPCP_TX_UP) && (ipcp_state & IPCP_RX_UP)) { - break; - } - - status = check_ppp_errors(); - } - - return status; -} -#endif -/*---------------------------------------------------------------------------*/ -void -ppp_connect(void) -{ - /* Initialize PPP engine */ - /* init_ppp(); */ - pap_init(); - ipcp_init(); - lcp_init(); - - /* Enable PPP */ - ppp_flags = PPP_RX_READY; -} -/*---------------------------------------------------------------------------*/ -void -ppp_send(void) -{ - /* If IPCP came up then our link should be up. */ - if((ipcp_state & IPCP_TX_UP) && (ipcp_state & IPCP_RX_UP)) { - ahdlc_tx(IPV4, &uip_buf[ UIP_LLH_LEN ], uip_appdata, - UIP_TCPIP_HLEN, uip_len - UIP_TCPIP_HLEN); - } -} -/*---------------------------------------------------------------------------*/ -void -ppp_poll(void) -{ - u8_t c; - - uip_len = 0; - - if(!(ppp_flags & PPP_RX_READY)) { - return; - } - - while(uip_len == 0 && ppp_arch_getchar(&c)) { - ahdlc_rx(c); - } - - /* If IPCP came up then our link should be up. */ - if((ipcp_state & IPCP_TX_UP) && (ipcp_state & IPCP_RX_UP)) { - return; - } - - /* call the lcp task to bring up the LCP layer */ - lcp_task( &uip_buf[ UIP_LLH_LEN ]); - - /* If LCP is up, neg next layer */ - if((lcp_state & LCP_TX_UP) && (lcp_state & LCP_RX_UP)) { - /* If LCP wants PAP, try to authenticate, else bring up IPCP */ - if((lcp_state & LCP_RX_AUTH) && (!(pap_state & PAP_TX_UP))) { - pap_task( &uip_buf[ UIP_LLH_LEN ]); - } else { - ipcp_task( &uip_buf[ UIP_LLH_LEN ]); - } - } -} -/*---------------------------------------------------------------------------*/ -/* ppp_upcall() - this is where valid PPP frames from the ahdlc layer are - * sent to be processed and demuxed. - */ -/*---------------------------------------------------------------------------*/ -void -ppp_upcall(u16_t protocol, u8_t *buffer, u16_t len) -{ -#if PACKET_RX_DEBUG - ++ppp_rx_frame_count; - dump_ppp_packet(buffer, len); - if(ppp_rx_frame_count > 18) { - done = 1; - } -#endif - - /* check to see if we have a packet waiting to be processed */ - if(ppp_flags & PPP_RX_READY) { - /* demux on protocol field */ - switch(protocol) { - case LCP: /* We must support some level of LCP */ - DEBUG1(("LCP Packet - ")); - lcp_rx(buffer, len); - DEBUG1(("\n")); - break; - case PAP: /* PAP should be compile in optional */ - DEBUG1(("PAP Packet - ")); - pap_rx(buffer, len); - DEBUG1(("\n")); - break; - case IPCP: /* IPCP should be compile in optional. */ - DEBUG1(("IPCP Packet - ")); - ipcp_rx(buffer, len); - DEBUG1(("\n")); - break; - case IPV4: /* We must support IPV4 */ - DEBUG1(("IPV4 Packet---\n")); - memcpy( &uip_buf[ UIP_LLH_LEN ], buffer, len); - uip_len = len; - DEBUG1(("\n")); - break; - default: - DEBUG1(("Unknown PPP Packet Type 0x%04x - ",protocol)); - ppp_reject_protocol(protocol, buffer, len); - DEBUG1(("\n")); - break; - } - } -} -/*---------------------------------------------------------------------------*/ -/* scan_packet(list,buffer,len) - * - * list = list of supported ID's - * *buffer pointer to the first code in the packet - * length of the codespace - */ -u16_t -scan_packet(u16_t protocol, u8_t *list, u8_t *buffer, u8_t *options, u16_t len) -{ - u8_t *tlist, *bptr; - u8_t *tptr; - u8_t bad = 0; - u8_t i, j, good; - - bptr = tptr = options; - /* scan through the packet and see if it has any unsupported codes */ - while(bptr < options + len) { - /* get code and see if it matches somwhere in the list, if not - we don't support it */ - i = *bptr++; - - /* DEBUG2("%x - ",i);*/ - tlist = list; - good = 0; - while(*tlist) { - /* DEBUG2("%x ",*tlist);*/ - if(i == *tlist++) { - good = 1; - break; - } - } - if(!good) { - /* we don't understand it, write it back */ - DEBUG1(("We don't understand option 0x%02x\n",i)); - bad = 1; - *tptr++ = i; - j = *tptr++ = *bptr++; - for(i = 0; i < j - 2; ++i) { - *tptr++ = *bptr++; - } - } else { - /* advance over to next option */ - bptr += *bptr - 1; - } - } - - /* Bad? if we we need to send a config Reject */ - if(bad) { - /* write the config Rej packet we've built above, take on the header */ - bptr = buffer; - *bptr++ = CONF_REJ; /* Write Conf_rej */ - bptr++; /* skip over ID */ - *bptr++ = 0; - *bptr = tptr - buffer; - /* length right here? */ - - /* write the reject frame */ - DEBUG1(("Writing Reject frame --\n")); - ahdlc_tx(protocol, buffer, 0, (u16_t)(tptr - buffer), 0); - DEBUG1(("\nEnd writing reject \n")); - - } - return bad; -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/core/net/ppp/ppp.h b/backyard/core/net/ppp/ppp.h deleted file mode 100644 index 4b81d28aa..000000000 --- a/backyard/core/net/ppp/ppp.h +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef __PPP_H__ -#define __PPP_H__ -/* www.mycal.net ---------------------------------------------------------------------------- - ppp.h - ppp header file ---------------------------------------------------------------------------- - Version - 0.1 Original Version June 3, 2000 - (c)2000 Mycal Labs, All Rights Reserved - --------------------------------------------------------------------------- */ -/* - * Copyright (c) 2003, Mike Johnson, Mycal Labs, www.mycal.net - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mike Johnson/Mycal Labs - * www.mycal.net. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Mycal Modified uIP TCP/IP stack. - * - * $Id: ppp.h,v 1.1 2007/05/26 07:14:40 oliverschmidt Exp $ - * - */ -#include "net/uip.h" -#include "net/uip-fw.h" -#include "contiki-conf.h" -#include "ahdlc.h" -#include "lcp.h" -#include "ipcp.h" -#include "pap.h" -#include "ppp_arch.h" -#include "ppp_process.h" -/*#include "mip.h"*/ - -/* moved to pppconfig.h -#define PPP_RX_BUFFER_SIZE 1024 -#define PPP_TX_BUFFER_SIZE 64*/ - -#define CRC_GOOD_VALUE 0xf0b8 - -/* ppp_rx_status values */ -#define PPP_RX_IDLE 0 -#define PPP_READY 1 - -/* ppp flags */ -#define PPP_ESCAPED 0x1 -#define PPP_RX_READY 0x2 -#define PPP_RX_ASYNC_MAP 0x8 -#define PPP_TX_ASYNC_MAP 0x8 -#define PPP_PFC 0x10 -#define PPP_ACFC 0x20 - -/* Supported PPP Protocols */ -#define LCP 0xc021 -#define PAP 0xc023 -#define IPCP 0x8021 -#define IPV4 0x0021 - -/* LCP codes packet types */ -#define CONF_REQ 0x1 -#define CONF_ACK 0x2 -#define CONF_NAK 0x3 -#define CONF_REJ 0x4 -#define TERM_REQ 0x5 -#define TERM_ACK 0x6 -#define PROT_REJ 0x8 - -/* Raise PPP config bits */ -#define USE_PAP 0x1 -#define USE_NOACCMBUG 0x2 -#define USE_GETDNS 0x4 - -#define ppp_setusername(un) strncpy(pap_username, (un), PAP_USERNAME_SIZE) -#define ppp_setpassword(pw) strncpy(pap_password, (pw), PAP_PASSWORD_SIZE) - -/* - * Export Variables - */ -/*extern u8_t ppp_tx_buffer[PPP_TX_BUFFER_SIZE];*/ -extern u8_t ppp_rx_buffer[]; -extern u8_t ppp_rx_count; - -extern struct uip_fw_netif pppif; - -/*extern u16_t ppp_crc_error;*/ - -extern u8_t ppp_flags; -extern u8_t ppp_status; -/*extern u16_t ppp_rx_crc; */ -extern u16_t ppp_rx_tobig_error; -extern u8_t ppp_lcp_state; - -extern u8_t ppp_id; -extern u8_t ppp_retry; - -/* - * Function Prototypes - */ -void ppp_init(void); -void ppp_connect(void); - -void ppp_send(void); -void ppp_poll(void); - -void ppp_upcall(u16_t, u8_t *, u16_t); -u16_t scan_packet(u16_t, u8_t *list, u8_t *buffer, u8_t *options, u16_t len); - -#endif /* __PPP_H__ */ diff --git a/backyard/core/net/ppp/ppp_process.c b/backyard/core/net/ppp/ppp_process.c deleted file mode 100644 index 730d791b7..000000000 --- a/backyard/core/net/ppp/ppp_process.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * $Id: ppp_process.c,v 1.1 2007/05/26 07:14:40 oliverschmidt Exp $ - */ - -#include "contiki.h" -#include "contiki-net.h" -#include "net/ppp/ppp.h" - -PROCESS(ppp_process, "PPP"); - -//----------------------------------------------------------------------------- -// Note, that the UART RX-FIFO must be polled often enough so we don't get an -// overrun at the used baudrate. -//----------------------------------------------------------------------------- -#define PPP_POLL_INTERVAL (CLOCK_SECOND / 256) -#define AT_TIMEOUT (2 * CLOCK_SECOND / PPP_POLL_INTERVAL) -#define AT_RX_BUF 64 - -enum { - AT_CONNECT_DIRECT, - AT_CONNECT_AUTO, - AT_CONNECT_MANUAL -} At_connect; - -enum { - AT_IDLE, - AT_CONNECT, - AT_CONNECT1, - AT_CONNECT2, - AT_CONNECTED, - AT_RESET, - AT_RESET1, - AT_RESET2, - AT_RESET3, - AT_RESET4, - AT_RESET5 -}; - -static struct etimer pppTimer; -static u8_t at_state; -static u8_t at_connect_mode = AT_CONNECT_MODE; -static int at_timeout = -1; -static u8_t at_rxBuf[ AT_RX_BUF ]; - - -static void -at_puts(char *s) { - while(*s) { - ppp_arch_putchar(*s); - s++; - } -} - - -static u8_t -*at_gets() { - static u8_t consumed; - int len; - int i; - - if (consumed) { - consumed = 0; - at_rxBuf[0] = 0; - } - len = strlen(at_rxBuf); - - for (i=len; i reset the buf - at_rxBuf[0] = 0; - return NULL; -} - - -static void -at_poll() { - - static u8_t loopCnt = 0; - u8_t *s; - - if (at_timeout > 0) { - at_timeout--; - } - - if (at_state == AT_CONNECTED) { - ppp_poll(); - if(uip_len > 0) { - tcpip_input(); - } - - if (loopCnt++ > 16) { - int i; - loopCnt = 0; - for (i=0; i 0) { - tcpip_output(); - } - } - } - } else { - - switch (at_state) { - - case AT_IDLE: - switch (at_connect_mode) { - - case AT_CONNECT_DIRECT: - at_state = AT_CONNECTED; - ppp_connect(); - break; - - case AT_CONNECT_AUTO: - at_state = AT_CONNECT; - break; - } - break; - - case AT_CONNECT: - at_gets(); // make the input buffer empty - at_puts("ATE1\r\n"); - at_state = AT_CONNECT1; - at_timeout = AT_TIMEOUT; - break; - - case AT_CONNECT1: - if (at_timeout == 0) { - at_state = AT_RESET; - } else if ((s=at_gets())) { - if (strcmp(s,"OK\r\n") == 0) { - at_puts("AT+CGDCONT=1,\"IP\",\"online.telia.se\",\"\",0,0\r\n"); - at_timeout = AT_TIMEOUT; - at_state = AT_CONNECT2; - } - } - break; - - case AT_CONNECT2: - if (at_timeout == 0) { - at_state = AT_RESET; - } else if ((s=at_gets())) { - if (strcmp(s,"OK\r\n") == 0) { - at_puts("ATD*99***1#\r\n"); - at_state = AT_CONNECTED; - ppp_connect(); - } - } - break; - - case AT_RESET: -//printf("AT_RESET\n"); - at_timeout = AT_TIMEOUT; - at_state = AT_RESET1; - break; - - case AT_RESET1: - if (at_timeout == 0) { - lcp_disconnect(random_rand() & 0xff); - at_timeout = AT_TIMEOUT; - at_state = AT_RESET2; - } - break; - - case AT_RESET2: - if (at_timeout == 0) { - lcp_disconnect(random_rand() & 0xff); - at_timeout = AT_TIMEOUT; - at_state = AT_RESET3; - } - break; - - case AT_RESET3: - if (at_timeout == 0) { - at_puts("+++"); - at_timeout = AT_TIMEOUT; - at_state = AT_RESET4; - } - break; - - case AT_RESET4: - if (at_timeout == 0) { - at_puts("ATZ\r\n"); - at_timeout = AT_TIMEOUT; - at_state = AT_RESET5; - } - break; - - case AT_RESET5: - at_gets(); // make the input buffer empty - if (at_timeout == 0) { - at_state = AT_IDLE; - } - break; - } - } -} - -void ppp_reconnect() { - at_state = AT_RESET; - uip_fw_unregister(&pppif); -} - - -PROCESS_THREAD(ppp_process, ev, data) -{ - PROCESS_BEGIN(); - - at_state = AT_IDLE; - at_rxBuf[0] = 0; - - ppp_init(); - etimer_set(&pppTimer, PPP_POLL_INTERVAL); - - while(1) { - PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_TIMER); - - if(etimer_expired(&pppTimer)) { - etimer_set(&pppTimer, PPP_POLL_INTERVAL); - at_poll(); - } - } - - PROCESS_END(); -} diff --git a/backyard/core/net/ppp/ppp_process.h b/backyard/core/net/ppp/ppp_process.h deleted file mode 100644 index 57d1b45a9..000000000 --- a/backyard/core/net/ppp/ppp_process.h +++ /dev/null @@ -1,3 +0,0 @@ -#include "contiki.h" - -PROCESS_NAME(ppp_process); diff --git a/backyard/core/net/uipbuf.c b/backyard/core/net/uipbuf.c deleted file mode 100644 index d1d0173ab..000000000 --- a/backyard/core/net/uipbuf.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (c) 2004, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: uipbuf.c,v 1.1 2007/11/18 01:18:50 oliverschmidt Exp $ - */ - -#if 0 /* This whole file is #ifdef'd out - the contents are to be removed */ - -#include "net/uipbuf.h" - -#include - -/*---------------------------------------------------------------------------*/ -void -uipbuf_setup(struct uipbuf_buffer *buf, - u8_t *bufptr, u16_t bufsize) -{ - buf->buffer = buf->ptr = bufptr; - buf->bufsize = buf->left = bufsize; -} -/*---------------------------------------------------------------------------*/ -u8_t -uipbuf_bufdata(struct uipbuf_buffer *buf, u16_t len, - u8_t **dataptr, u16_t *datalen) -{ - if(*datalen < buf->left) { - memcpy(buf->ptr, *dataptr, *datalen); - buf->ptr += *datalen; - buf->left -= *datalen; - *dataptr += *datalen; - *datalen = 0; - return UIPBUF_NOT_FULL; - } else if(*datalen == buf->left) { - memcpy(buf->ptr, *dataptr, *datalen); - buf->ptr += *datalen; - buf->left = 0; - *dataptr += *datalen; - *datalen = 0; - return UIPBUF_FULL; - } else { - memcpy(buf->ptr, *dataptr, buf->left); - buf->ptr += buf->left; - *datalen -= buf->left; - *dataptr += buf->left; - buf->left = 0; - return UIPBUF_FULL; - } - -} -/*---------------------------------------------------------------------------*/ -u8_t -uipbuf_bufto(CC_REGISTER_ARG struct uipbuf_buffer *buf, u8_t endmarker, - CC_REGISTER_ARG u8_t **dataptr, CC_REGISTER_ARG u16_t *datalen) -{ - u8_t c; - /* - int len; - - ptr = memchr(*dataptr, endmarker, *datalen); - if(ptr != NULL) { - len = ptr - *dataptr; - } else { - len = *datalen; - } - memcpy(buf->ptr, *dataptr, len); - *dataptr += len; - *datalen -= len; - buf->ptr += len; - */ - while(buf->left > 0 && *datalen > 0) { - c = *buf->ptr = **dataptr; - ++*dataptr; - ++buf->ptr; - --*datalen; - --buf->left; - - if(c == endmarker) { - return UIPBUF_FOUND; - } - } - - if(*datalen == 0) { - return UIPBUF_NOT_FOUND; - } - - while(*datalen > 0) { - c = **dataptr; - --*datalen; - ++*dataptr; - - if(c == endmarker) { - return UIPBUF_FOUND | UIPBUF_FULL; - } - } - - return UIPBUF_FULL; -} -/*----------------------------------------------------------------------------*/ -u16_t -uipbuf_len(struct uipbuf_buffer *buf) -{ - return buf->bufsize - buf->left; -} -/*----------------------------------------------------------------------------*/ -#endif /* 0 */ diff --git a/backyard/core/net/uipbuf.h b/backyard/core/net/uipbuf.h deleted file mode 100644 index d90144c92..000000000 --- a/backyard/core/net/uipbuf.h +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright (c) 2004, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: uipbuf.h,v 1.1 2007/11/18 01:18:50 oliverschmidt Exp $ - */ -/** - * \file - * uIP data buffering helper functions. - * \author - * Adam Dunkels - * - */ - -#if 0 /* This whole file is #ifdef'd out - the contents are to be removed */ - -#ifndef __UIPBUF_H__ -#define __UIPBUF_H__ - -#include "net/uip.h" - -/** - * \defgroup uipbuf uIP data buffering helper library. - * - * The event driven API that uIP uses can be tricky to use when - * dealing with incoming TCP data. The data can be split over any - * number of incoming segments and uIP does not provide any stream - * abstraction by itself. To remedy this, the uIP data buffering - * helper library provides a set of functions that make buffering data - * easier. - * - * The data buffering library provides a structure that holds a - * pointer to a buffer and the state of the buffer, as well as a set - * of functions for manipulating the buffer state. The functions are - * intended to facilitate buffering of both data that is of a known - * size and data that is terminated by a specified byte. - * - * @{ - */ - -/** - * Return value of the buffering functions that indicates that a - * buffer was not filled by incoming data. - * - * \hideinitializer - */ -#define UIPBUF_NOT_FULL 0 -#define UIPBUF_NOT_FOUND 0 - -/** - * Return value of the buffering functions that indicates that a - * buffer was completely filled by incoming data. - * - * \hideinitializer - */ -#define UIPBUF_FULL 1 - -/** - * Return value of the buffering functions that indicates that an - * end-marker byte was found. - * - * \hideinitializer - */ -#define UIPBUF_FOUND 2 - -/** - * The structure that holds the state of a uIP buffer. - * - * This structure holds the state of a uIP buffer. The structure has - * no user-visible elements, but is used through the functions - * provided by the library. - * - * \hideinitializer - */ -struct uipbuf_buffer { - u8_t *ptr, *buffer; - unsigned short left, bufsize; -}; - -/** - * Set up a new uIP buffer structure. - * - * This function is used for setting up a uIP buffer structure with a - * specified size. The function should be called the first time a uIP - * buffer is used. The caller must provide the memory for holding the - * buffered bytes and the size of the buffer memory. - * - * \param buf A pointer to a uipbuf_buffer structure that is to be - * initialized. - * - * \param bufptr A pointer to the memory for holding the buffered - * data. - * - * \param size The size of the buffer memory. - * - */ -void uipbuf_setup(struct uipbuf_buffer *buf, - u8_t *bufptr, u16_t size); - -/** - * Buffer data until the buffer is full. - * - * This function puts data into the buffer, but no more than the - * buffer can hold. - * - * \param buf A pointer to the ::uipbuf_buffer structure that holds - * the state of the buffer. - * - * \param dataptr A pointer to the data that is to be buffered. - * - * \param datalen The length of the data that is to be buffered. - * - * \return If the buffer was not filled, the value UIPBUF_NOT_FULL - * is returned. If the buffer was filled, the number of bytes that - * could not be buffered is returned. If the buffer was exactly filled - * with the data, the value of 0 is returned. - * - */ -u8_t uipbuf_bufdata(struct uipbuf_buffer *buf, u16_t len, - u8_t **dataptr, u16_t *datalen); - -/** - * Buffer data until a specific character is found or the buffer is full. - * - * This function puts data into the buffer until a specific marker - * byte is found. The marker byte is put into the buffer at the end of - * the data. - * - * \param buf A pointer to the ::uipbuf_buffer structure that holds - * the state of the buffer. - * - * \param dataptr A pointer to the data that is to be buffered. - * - * \param datalen The length of the data that is to be buffered. - * - * \param byte The end-marker byte that indicates the end of the data - * that is to be buffered. - * - * \return This function returns the number of protruding bytes after - * the end-marker byte, if the marker was found. If the marker was not - * found and all of the data was buffered, the value of - * UIPBUF_NOT_FOUND is returned. If the marker was not found, but the - * data made the buffer fill up, the value of UIPBUF_FULL is returned. - * - */ -u8_t uipbuf_bufto(struct uipbuf_buffer *buf, u8_t endmarker, - u8_t **dataptr, u16_t *datalen); - -u16_t uipbuf_len(struct uipbuf_buffer *buf); - -/** @} */ - -#endif /* __UIPBUF_H__ */ -#endif /* 0 */ diff --git a/backyard/core/sys/service.c b/backyard/core/sys/service.c deleted file mode 100644 index 7a5447e85..000000000 --- a/backyard/core/sys/service.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: service.c,v 1.1 2007/05/26 23:24:24 oliverschmidt Exp $ - */ - -#include - -#include "contiki.h" - -/** - * \addtogroup service - * @{ - */ - -/** - * \file - * Implementation of the Contiki service mechanism. - * \author - * Adam Dunkels - */ - -static struct service *services_list = NULL; - -/*---------------------------------------------------------------------------*/ -void -service_register(struct service *s) -{ - struct service *existing; - - - s->p = PROCESS_CURRENT(); - - existing = service_find(s->name); - if(existing != NULL) { - service_remove(existing); - } - - s->next = services_list; - services_list = s; -} -/*---------------------------------------------------------------------------*/ -void -service_remove(struct service *s) -{ - struct service *t; - - - /* Check if service is first on the list. */ - if(s == services_list) { - services_list = s->next; - - /* Post a notification to the owner process. */ - process_post(s->p, PROCESS_EVENT_SERVICE_REMOVED, s); - - } else { - for(t = services_list; t != NULL && t->next != s; t = t->next); - if(t != NULL) { - t->next = s->next; - - /* Post a notification to the owner process. */ - process_post(s->p, PROCESS_EVENT_SERVICE_REMOVED, s); - } - } - - s->next = NULL; -} -/*---------------------------------------------------------------------------*/ -struct service * -service_find(const char *name) -{ - struct service *s; - - - for(s = services_list; s != NULL; s = s->next) { - if(strcmp(s->name, name) == 0) { - return s; - } - } - return NULL; -} -/*---------------------------------------------------------------------------*/ - -/** @} */ diff --git a/backyard/core/sys/service.h b/backyard/core/sys/service.h deleted file mode 100644 index 76e16d1a2..000000000 --- a/backyard/core/sys/service.h +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: service.h,v 1.1 2007/05/26 23:24:24 oliverschmidt Exp $ - */ - -/** \addtogroup sys - * @{ - */ - -/** - * \defgroup service The Contiki service mechanism - * - * The Contiki service mechanism enables cross-process functions. A - * service that is registered by one process can be accessed by other - * processes in the system. Services can be transparently replaced at - * run-time. - * - * A service has an interface that callers use to access the service's - * functions. This interface typically is defined in a header file - * that is included by all users of the service. A service interface - * is defined with the SERVICE_INTERFACE() macro. - * - * A service implementation is declared with the SERVICE() macro. The - * SERVICE() statement specifies the actual functions that are used to - * implement the service. - * - * Every service has a controlling process. The controlling process - * registers the service with the system when it starts, and is also - * notified if the service is removed or replaced. A process may - * register any number of services. - * - * Service registration is done with a SERVICE_REGISTER() - * statement. If a service with the same name is already registered, - * this is removed before the new service is registered. - * - * The SERVICE_CALL() macro is used to call a service. If the service - * to be called is not registered, the SERVICE_CALL() statement does - * nothing. The SERVICE_FIND() function can be used to check if a - * particular service exists before calling SERVICE_CALL(). - * - * @{ - */ - -/** - * \file - * Header file for the Contiki service mechanism. - * \author - * Adam Dunkels - */ - -#ifndef __SERVICE_H__ -#define __SERVICE_H__ - -#include "contiki.h" - -struct service { - struct service *next; - struct process *p; - const char *name; - const void *interface; -}; - -/** - * \name Service declaration and defition - * @{ - */ - -/** - * Define the name and interface of a service. - * - * This statement defines the name and interface of a service. - * - * \param name The name of the service. - * - * \param interface A list of function declarations that comprises the - * service interface. This list must be enclosed by curly brackets and - * consist of declarations of function pointers separated by - * semicolons. - * - * \hideinitializer - */ -#define SERVICE_INTERFACE(name, interface) struct name interface; - -#if ! CC_NO_VA_ARGS -/** - * \brief Define an implementation of a service interface. - * \param name The name of this particular instance of the service, for use with SERVICE_REGISTER(). - * \param service_name The name of the service, from the SERVICE_INTERFACE(). - * \param ... A structure containing the functions that implements the service. - * - * This statement defines the name of this implementation - * of the service and defines the functions that actually - * implement the functions offered by the service. - * - * \hideinitializer - */ -#define SERVICE(name, service_name, ...) \ - static struct service_name name##_interface = __VA_ARGS__ ; \ - struct service name = { NULL, NULL, service_name##_name, & name##_interface } -#endif - -/** @} */ - -/** - * \name Calling a service - * @{ - */ - -/** - * Call a function from a specified service, if it is registered. - * - * - * \param service_name The name of the service that is to be called. - * - * \param function The function that is to be called. This is a full - * function call, including parameters. - * - * \hideinitializer - */ -#define SERVICE_CALL(service_name, function) \ - { \ - struct service *service_s; \ - service_s = service_find(service_name##_name); \ - if(service_s != NULL) { \ - ((const struct service_name *)service_s->interface)->function; \ - } \ - } - -/* @} */ - -#define SERVICE_EXISTS(service_name) (service_find(service_name##_name) != NULL) - -/** - * \name Service registration and removal - * @{ - */ - -/** - * Register a service. - * - * \hideinitializer - */ -#define SERVICE_REGISTER(name) service_register(&name) - -/** - * Remove a service. - * - * \hideinitializer - */ -#define SERVICE_REMOVE(service_name) service_remove(&service_name) - -/** @} */ - -/** - * Find service. - * - * \hideinitializer - */ -#define SERVICE_FIND(service_name) service_find(service_name##_name) - -CCIF void service_register(struct service *s); -CCIF void service_remove(struct service *s); -struct service *service_find(const char *name); - -#endif /* __SERVICE_H__ */ -/** @} */ -/** @} */ diff --git a/backyard/cpu/6502/apps/memstat-dsc.c b/backyard/cpu/6502/apps/memstat-dsc.c deleted file mode 100644 index 72af2d9ab..000000000 --- a/backyard/cpu/6502/apps/memstat-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: memstat-dsc.c,v 1.2 2007/09/06 01:36:12 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char memstaticon_bitmap[3*3*8] = { - 0x00, 0x7f, 0x43, 0x4c, 0x58, 0x53, 0x60, 0x6f, - 0x00, 0xff, 0x00, 0x7e, 0x00, 0xff, 0x00, 0xff, - 0x00, 0xfe, 0xc2, 0x32, 0x1a, 0xca, 0x06, 0xf6, - - 0x40, 0x5f, 0x40, 0x5f, 0x40, 0x5f, 0x40, 0x4f, - 0x00, 0xff, 0x00, 0xff, 0x00, 0xfc, 0x01, 0xf3, - 0x02, 0xfa, 0x02, 0x82, 0x3e, 0xfe, 0xfe, 0xfe, - - 0x60, 0x67, 0x50, 0x59, 0x4c, 0x43, 0x7f, 0x00, - 0x07, 0xe7, 0x0f, 0xef, 0x0f, 0x0f, 0xff, 0x00, - 0x8e, 0x06, 0x06, 0x06, 0x8e, 0xfe, 0xfe, 0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char memstaticon_textmap[9] = { - '0', '0', '1', - '0', '1', '0', - '1', '0', '1' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon memstat_icon = - {CTK_ICON("Memory stats", memstaticon_bitmap, memstaticon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(memstat_dsc, - "Memory stats", - "memstat.prg", - memstat_init, - &memstat_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/cpu/6502/apps/memstat-dsc.h b/backyard/cpu/6502/apps/memstat-dsc.h deleted file mode 100644 index 5ca90f173..000000000 --- a/backyard/cpu/6502/apps/memstat-dsc.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: memstat-dsc.h,v 1.1 2007/05/23 23:47:44 oliverschmidt Exp $ - * - */ -#ifndef __MEMSTAT_DSC_H__ -#define __MEMSTAT_DSC_H__ - -#include "sys/dsc.h" - -DSC_HEADER(memstat_dsc); - -#endif /* __MEMSTAT_DSC_H__ */ diff --git a/backyard/cpu/6502/apps/memstat.c b/backyard/cpu/6502/apps/memstat.c deleted file mode 100644 index 4bc622b63..000000000 --- a/backyard/cpu/6502/apps/memstat.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: memstat.c,v 1.1 2007/05/23 23:47:44 oliverschmidt Exp $ - * - */ - -#include - -#include "contiki.h" -#include "ctk/ctk.h" - -static struct ctk_window window; -static struct ctk_label freemsg = - {CTK_LABEL(2, 0, 12, 1, "Free memory:")}; -static char freemem[6]; -static struct ctk_label freenum = - {CTK_LABEL(18, 0, 5, 1, freemem)}; - -static struct ctk_label lblockmsg = - {CTK_LABEL(2, 2, 14, 1, "Largest block:")}; -static char lblock[6]; -static struct ctk_label lblocknum = - {CTK_LABEL(18, 2, 5, 1, lblock)}; - -static struct ctk_button updatebutton = - {CTK_BUTTON(0, 4, 6, "Update")}; -static struct ctk_button closebutton = - {CTK_BUTTON(17, 4, 5, "Close")}; - -PROCESS(memstat_process, "Memory statistics"); - -/*-----------------------------------------------------------------------------------*/ -static void -update(void) -{ - int mem; - - mem = _heapmemavail(); - freemem[0] = (mem/10000) % 10 + '0'; - freemem[1] = (mem/1000) % 10 + '0'; - freemem[2] = (mem/100) % 10 + '0'; - freemem[3] = (mem/10) % 10 + '0'; - freemem[4] = (mem) % 10 + '0'; - - mem = _heapmaxavail(); - lblock[0] = (mem/10000) % 10 + '0'; - lblock[1] = (mem/1000) % 10 + '0'; - lblock[2] = (mem/100) % 10 + '0'; - lblock[3] = (mem/10) % 10 + '0'; - lblock[4] = (mem) % 10 + '0'; - -} -/*-----------------------------------------------------------------------------------*/ -PROCESS_THREAD(memstat_process, ev, data) -{ - PROCESS_BEGIN(); - - ctk_window_new(&window, 24, 5, "Memory stats"); - /* ctk_window_move(&window, 0, 1);*/ - - CTK_WIDGET_ADD(&window, &freemsg); - CTK_WIDGET_ADD(&window, &freenum); - - CTK_WIDGET_ADD(&window, &lblockmsg); - CTK_WIDGET_ADD(&window, &lblocknum); - - CTK_WIDGET_ADD(&window, &updatebutton); - CTK_WIDGET_ADD(&window, &closebutton); - - CTK_WIDGET_FOCUS(&window, &updatebutton); - - update(); - - ctk_window_open(&window); - - while(1) { - - PROCESS_WAIT_EVENT(); - - if(ev == ctk_signal_button_activate) { - if(data == &updatebutton) { - update(); - ctk_window_redraw(&window); - } else if(data == &closebutton) { - ctk_window_close(&window); - break; - } - } else if((ev == ctk_signal_window_close && - data == &window) || - ev == PROCESS_EVENT_EXIT) { - break; - } - } - - PROCESS_END(); - -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/cpu/6502/cc65-make-labels b/backyard/cpu/6502/cc65-make-labels deleted file mode 100755 index 6dd73e680..000000000 --- a/backyard/cpu/6502/cc65-make-labels +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - - -egrep -v 'ZP|BSS' contiki-labels | perl -n -e 'if(/^al 0000(.+) \.([^@]+)\n/){if($l{$2} eq ""){$l{$2}=$1;print ".exportzp $2\n$2=\$$1\n";}} elsif(/^al 00(.+) \.([^@]+)\n/){if($l{$2} eq ""){$l{$2}=$1;print ".export $2\n$2=\$$1\n";}}' > contiki-labels.s - -echo '.segment "EXTZP": zeropage' >> contiki-labels.s \ No newline at end of file diff --git a/backyard/cpu/6502/loader/loader-arch-dsc.c b/backyard/cpu/6502/loader/loader-arch-dsc.c deleted file mode 100644 index 57ddfa3d9..000000000 --- a/backyard/cpu/6502/loader/loader-arch-dsc.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS - * - * $Id: loader-arch-dsc.c,v 1.1 2007/05/23 23:50:02 oliverschmidt Exp $ - * - */ - -#include -#include - -#include "sys/loader.h" - -extern struct mod_ctrl ctrl; - -unsigned char load(const char *name); - -/*-----------------------------------------------------------------------------------*/ -struct dsc * -loader_arch_load_dsc(const char *name) -{ - unsigned char r; - - r = load(name); - if(r == MLOAD_OK) { - return (struct dsc *)ctrl.module; - } - return NULL; -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/cpu/6502/loader/loader-arch-dsc.h b/backyard/cpu/6502/loader/loader-arch-dsc.h deleted file mode 100644 index 704d8c40b..000000000 --- a/backyard/cpu/6502/loader/loader-arch-dsc.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS - * - * $Id: loader-arch-dsc.h,v 1.1 2007/05/23 23:50:02 oliverschmidt Exp $ - * - */ -#ifndef __LOADER_ARCH_DSC_H__ -#define __LOADER_ARCH_DSC_H__ - -#include "sys/dsc.h" -#include - -struct dsc *loader_arch_load_dsc(const char *name); - -#define LOADER_LOAD_DSC(name) loader_arch_load_dsc(name) -#define LOADER_UNLOAD_DSC(dsc) mod_free(dsc) - -#endif /* __LOADER_ARCH_DSC_H__ */ diff --git a/backyard/cpu/6502/loader/loader-arch-module-dsc.S b/backyard/cpu/6502/loader/loader-arch-module-dsc.S deleted file mode 100644 index dd82301c2..000000000 --- a/backyard/cpu/6502/loader/loader-arch-module-dsc.S +++ /dev/null @@ -1 +0,0 @@ -.segment "JUMPTABLE" diff --git a/backyard/cpu/6502/loader/loader-arch-module.S b/backyard/cpu/6502/loader/loader-arch-module.S deleted file mode 100644 index 0746bf750..000000000 --- a/backyard/cpu/6502/loader/loader-arch-module.S +++ /dev/null @@ -1,8 +0,0 @@ -.segment "JUMPTABLE" - .import _loader_appinit - .export _loader_arch_loadaddr -_loader_arch_loadaddr: -arch: .byte 0,0,0,0,0,0,0,0 -version: .byte 0,0,0,0,0,0,0,0 -; jmp _loader_appinit - diff --git a/backyard/cpu/6502/loader/loader-arch.c b/backyard/cpu/6502/loader/loader-arch.c deleted file mode 100644 index bb7417908..000000000 --- a/backyard/cpu/6502/loader/loader-arch.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS - * - * $Id: loader-arch.c,v 1.1 2007/05/23 23:50:02 oliverschmidt Exp $ - * - */ - -#include -#include -#include -#include - -#include "loader.h" - -struct mod_ctrl ctrl = { - read /* Read from disk */ -}; - -struct loader_arch_hdr { - char arch[8]; - char version[8]; - - char initfunc[1]; -}; - -/*-----------------------------------------------------------------------------------*/ -/* load(name) - * - * Loads a program from disk and executes it. Code originally written by - * Ullrich von Bassewitz. - */ -/*-----------------------------------------------------------------------------------*/ -unsigned char -load(const char *name) -{ - unsigned char res; - - /* Now open the file */ - ctrl.callerdata = open(name, O_RDONLY); - if(ctrl.callerdata < 0) { - /* Could not open the file, display an error and return */ - /* ### */ - return LOADER_ERR_OPEN; - } - - /* Load the module */ - res = mod_load(&ctrl); - - /* Close the input file */ - close(ctrl.callerdata); - - /* Check the return code */ - if(res != MLOAD_OK) { - /* Wrong module, out of memory or whatever. Print an error - * message and return. - */ - /* ### */ - return res; - } - - /* We've successfully loaded the module. */ - - return LOADER_OK; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -loader_arch_load(const char *name, char *arg) -{ - unsigned char r; - struct loader_arch_hdr *hdr; - - r = load(name); - if(r != MLOAD_OK) { - return r; - } - hdr = (struct loader_arch_hdr *)ctrl.module; - - /* Check the program header and see that version and architecture - matches. */ - - /* Call the init function. */ - - if(*hdr->initfunc == 0x4c) { - ((void (*)(char *))hdr->initfunc)(arg); - } - - return LOADER_OK; -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/cpu/6502/loader/loader-arch.h b/backyard/cpu/6502/loader/loader-arch.h deleted file mode 100644 index 41b01da5d..000000000 --- a/backyard/cpu/6502/loader/loader-arch.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS - * - * $Id: loader-arch.h,v 1.1 2007/05/23 23:50:02 oliverschmidt Exp $ - * - */ -#ifndef __LOADER_ARCH_H__ -#define __LOADER_ARCH_H__ - -#include - -unsigned char loader_arch_load(const char *name, char *arg); - -extern void *loader_arch_loadaddr; - -#define LOADER_LOAD(name, arg) loader_arch_load(name, arg) -#define LOADER_UNLOAD() mod_free(&loader_arch_loadaddr) - -#endif /* __LOADER_ARCH_H__ */ diff --git a/backyard/cpu/6502/net/rs232dev.c b/backyard/cpu/6502/net/rs232dev.c deleted file mode 100644 index 790fd0d24..000000000 --- a/backyard/cpu/6502/net/rs232dev.c +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Copyright (c) 2001, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the uIP TCP/IP stack. - * - * $Id: rs232dev.c,v 1.1 2007/11/19 23:00:56 oliverschmidt Exp $ - * - */ - -/* - * This is a generic implementation of the SLIP protocol over an RS232 - * (serial) device. While initially intented for the C64, the code can - * easily be ported to other platforms as well. - * - * Huge thanks to Ullrich von Bassewitz of cc65 fame for - * and endless supply of bugfixes, insightsful comments and - * suggestions, and improvements to this code! - */ - -#include -#include -#include - - /* This will include the system specific header files as well */ -#if defined(__CBM__) -# include -#elif defined(__ATARI__) -# include -#endif - -#include "net/uip.h" - -#define SLIP_END 0300 -#define SLIP_ESC 0333 -#define SLIP_ESC_END 0334 -#define SLIP_ESC_ESC 0335 - - -#define SIO_RECV(c) while(ser_get(&c) == SER_ERR_NO_DATA) -#define SIO_POLL(c) (ser_get(&c) != SER_ERR_NO_DATA) -#define SIO_SEND(c) ser_put(c) - -#define MAX_SIZE (UIP_BUFSIZE - UIP_LLH_LEN) - -static u8_t slip_buf[MAX_SIZE + 2]; - -static u16_t len, tmplen; - -static char loaded = 0; - -#if 1 -#define printf(x) -#else -#include -#endif - - -/*-----------------------------------------------------------------------------------*/ -/*static void -rs232_err(char err) -{ - switch(err) { - case RS_ERR_OK: - printf("RS232 OK\n"); - break; - case RS_ERR_NOT_INITIALIZED: - printf("RS232 not initialized\n"); - break; - case RS_ERR_BAUD_TOO_FAST: - printf("RS232 baud too fast\n"); - break; - case RS_ERR_BAUD_NOT_AVAIL: - printf("RS232 baud rate not available\n"); - break; - case RS_ERR_NO_DATA: - printf("RS232 nothing to read\n"); - break; - case RS_ERR_OVERFLOW: - printf("RS232 overflow\n"); - break; - } -}*/ -/*-----------------------------------------------------------------------------------*/ -/* - * rs232dev_send(): - * - * Sends the packet in the uip_buf and uip_appdata buffers. The first - * 40 bytes of the packet (the IP and TCP headers) are read from the - * uip_buf buffer, and the following bytes (the application data) are - * read from the uip_appdata buffer. - * - */ -/*-----------------------------------------------------------------------------------*/ -void -rs232dev_send(void) -{ - u16_t i; - u8_t *ptr; - u8_t c; - - SIO_SEND(SLIP_END); - - ptr = &uip_buf[UIP_LLH_LEN]; - for(i = 0; i < uip_len; ++i) { - if(i == UIP_TCPIP_HLEN) { - ptr = uip_appdata; - } - c = *ptr++; - switch(c) { - case SLIP_END: - SIO_SEND(SLIP_ESC); - SIO_SEND(SLIP_ESC_END); - break; - case SLIP_ESC: - SIO_SEND(SLIP_ESC); - SIO_SEND(SLIP_ESC_ESC); - break; - default: - SIO_SEND(c); - break; - } - } - SIO_SEND(SLIP_END); -} -/*-----------------------------------------------------------------------------------*/ -/* - * rs232dev_poll(): - * - * Read all avaliable bytes from the RS232 interface into the slip_buf - * buffer. If no more bytes are avaliable, it returns with 0 to - * indicate that no packet was immediately ready. When a full packet - * has been read into the buffer, the packet is copied into the - * uip_buf buffer and the length of the packet is returned. - * - */ -/*-----------------------------------------------------------------------------------*/ -u16_t -rs232dev_poll(void) -{ - u8_t c; - static u8_t lastc; - - if(loaded == 0) { - return 0; - } - - while(SIO_POLL(c)) { - - switch(c) { - case SLIP_ESC: - lastc = c; - break; - - case SLIP_END: - lastc = c; - /* End marker found, we copy our input buffer to the uip_buf - buffer and return the size of the packet we copied. */ - memcpy(&uip_buf[UIP_LLH_LEN], slip_buf, len); - tmplen = len; - len = 0; - return tmplen; - - default: - if(lastc == SLIP_ESC) { - lastc = c; - /* Previous read byte was an escape byte, so this byte will be - interpreted differently from others. */ - switch(c) { - case SLIP_ESC_END: - c = SLIP_END; - break; - case SLIP_ESC_ESC: - c = SLIP_ESC; - break; - } - } else { - lastc = c; - } - - slip_buf[len] = c; - ++len; - - if(len > MAX_SIZE) { - len = 0; - } - - break; - } - } - return 0; -} -/*-----------------------------------------------------------------------------------*/ -/* - * rs232dev_init(): - * - * Initializes the RS232 device and sets the parameters of the device. - * - */ -/*-----------------------------------------------------------------------------------*/ -void -rs232dev_init(void) -{ - char err; - struct ser_params p; - - err = ser_load_driver("c64-swlink.ser"); - - if(err != SER_ERR_OK) { - asm("inc $d020"); - return; - } - - p.baudrate = SER_BAUD_9600; - p.databits = SER_BITS_8; - p.stopbits = SER_STOP_1; - p.parity = SER_PAR_NONE; - p.handshake = SER_HS_HW; - - err = ser_open(&p); - - if(err != SER_ERR_OK) { - asm("inc $d020"); - return; - } - - - loaded = 1; - - /* err = rs232_init(0); */ - /* rs232_err(err);*/ - /* err = rs232_params(RS_BAUD_9600 | RS_BITS_8 | RS_STOP_1, RS_PAR_NONE);*/ - /* rs232_err(err);*/ - - len = 0; - - return; -} -/*-----------------------------------------------------------------------------------*/ -void -rs232dev_unload(void) -{ - if(loaded){ - ser_unload(); - } -} -/*-----------------------------------------------------------------------------------*/ - diff --git a/backyard/cpu/6502/net/rs232dev.h b/backyard/cpu/6502/net/rs232dev.h deleted file mode 100644 index b2b9b693a..000000000 --- a/backyard/cpu/6502/net/rs232dev.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2001, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the uIP TCP/IP stack. - * - * $Id: rs232dev.h,v 1.1 2007/11/19 23:00:56 oliverschmidt Exp $ - * - */ - -#ifndef __RS232DEV_H__ -#define __RS232DEV_H__ - -#include "net/uip.h" - -void rs232dev_init(void); -u8_t rs232dev_read(void); -void rs232dev_send(void); - -u16_t rs232dev_poll(void); - -void rs232dev_unload(void); - -#endif /* __RS232DEV_H__ */ diff --git a/backyard/cpu/6502/net/slip-drv.c b/backyard/cpu/6502/net/slip-drv.c deleted file mode 100644 index 524ca1ee4..000000000 --- a/backyard/cpu/6502/net/slip-drv.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki OS - * - * $Id: slip-drv.c,v 1.1 2007/11/19 23:00:56 oliverschmidt Exp $ - * - */ - -#include "contiki-net.h" -#include "rs232dev.h" - -static u8_t output(void); - -SERVICE(slip_drv_service, packet_service, { output };); - -PROCESS(slip_drv_process, "SLIP driver"); - -/*---------------------------------------------------------------------------*/ -static u8_t -output(void) -{ - rs232dev_send(); - return 0; -} -/*---------------------------------------------------------------------------*/ -static void -pollhandler(void) -{ - uip_len = rs232dev_poll(); - if(uip_len > 0) { - tcpip_input(); - } - -} -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(slip_drv_process, ev, data) -{ - PROCESS_POLLHANDLER(pollhandler()); - PROCESS_EXITHANDLER(rs232dev_unload()); - - PROCESS_BEGIN(); - - rs232dev_init(); - - SERVICE_REGISTER(slip_drv_service); - - process_poll(&slip_drv_process); - - while(1) { - PROCESS_YIELD(); - } - - PROCESS_END(); -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/cpu/6502/net/slip-dsc.c b/backyard/cpu/6502/net/slip-dsc.c deleted file mode 100644 index d718413c6..000000000 --- a/backyard/cpu/6502/net/slip-dsc.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: slip-dsc.c,v 1.1 2007/11/19 23:00:56 oliverschmidt Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char slipicon_bitmap[3*3*8] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char slipicon_textmap[9] = { - 'R', 'S', ' ', - '2', '3', '2', - '/', 'I', 'P' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon slip_icon = - {CTK_ICON("SLIP driver", slipicon_bitmap, slipicon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(slip_dsc, - "SLIP driver", - "slip.drv", - slip_init, - &slip_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/cpu/6502/net/slip-dump-drv.c b/backyard/cpu/6502/net/slip-dump-drv.c deleted file mode 100644 index 391ea382c..000000000 --- a/backyard/cpu/6502/net/slip-dump-drv.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki OS - * - * $Id: slip-dump-drv.c,v 1.1 2007/11/19 23:00:56 oliverschmidt Exp $ - * - */ - -#include "contiki.h" -#include "rs232dev.h" - -#include "packet-service.h" - -#include "tcpdump.h" -#include -#include "ctk/ctk.h" - -static void output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen); - -static const struct packet_service_state state = - { - PACKET_SERVICE_VERSION, - output - }; - -EK_EVENTHANDLER(eventhandler, ev, data); -EK_POLLHANDLER(pollhandler); -EK_PROCESS(proc, PACKET_SERVICE_NAME ": SLIP", EK_PRIO_HIGH, - eventhandler, pollhandler, (void *)&state); - -#define DUMP_WIDTH 38 -#define DUMP_HEIGHT 20 -static struct ctk_window window; -static char dump[DUMP_WIDTH * DUMP_HEIGHT]; -static struct ctk_label dumplabel = - {CTK_LABEL(0, 0, DUMP_WIDTH, DUMP_HEIGHT, dump)}; -static void -dump_packet(void) -{ - memcpy(dump, &dump[DUMP_WIDTH], DUMP_WIDTH * (DUMP_HEIGHT - 1)); - tcpdump_print(&dump[DUMP_WIDTH * (DUMP_HEIGHT - 1)], DUMP_WIDTH); - CTK_WIDGET_REDRAW(&dumplabel); -} -/*---------------------------------------------------------------------------*/ -LOADER_INIT_FUNC(slip_service_init, arg) -{ - arg_free(arg); - ek_service_start(PACKET_SERVICE_NAME, &proc); -} -/*---------------------------------------------------------------------------*/ -static void -output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen) -{ - rs232dev_send(); - dump_packet(); -} -/*---------------------------------------------------------------------------*/ -EK_EVENTHANDLER(eventhandler, ev, data) -{ - switch(ev) { - case EK_EVENT_INIT: - case EK_EVENT_REPLACE: - ctk_window_new(&window, DUMP_WIDTH, DUMP_HEIGHT, "SLIP dump"); - CTK_WIDGET_ADD(&window, &dumplabel); - ctk_window_open(&window); - rs232dev_init(); - break; - case EK_EVENT_REQUEST_REPLACE: - ctk_window_close(&window); - ek_replace((struct ek_proc *)data, NULL); - rs232dev_unload(); - LOADER_UNLOAD(); - break; - case EK_EVENT_REQUEST_EXIT: - ctk_window_close(&window); - ek_exit(); - rs232dev_unload(); - LOADER_UNLOAD(); - break; - default: - break; - } -} -/*---------------------------------------------------------------------------*/ -EK_POLLHANDLER(pollhandler) -{ - uip_len = rs232dev_poll(); - if(uip_len > 0) { - dump_packet(); - tcpip_input(); - } - -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/cpu/avr/dev/rtl8019as-drv.c b/backyard/cpu/avr/dev/rtl8019as-drv.c deleted file mode 100644 index 6d9c03389..000000000 --- a/backyard/cpu/avr/dev/rtl8019as-drv.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Adam Dunkels. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the uIP TCP/IP stack. - * - * $Id: rtl8019as-drv.c,v 1.2 2010/10/19 18:29:03 adamdunkels Exp $ - * - */ - - -/* uip_main.c: initialization code and main event loop. */ - -#define NULL (void *)0 - - - -#include "uip.h" -#include "uip_arp.h" -#include "uip-signal.h" -#include "loader.h" -#include "rtl8019dev.h" - -#include "dispatcher.h" -#include "ek.h" - -#include "debug.h" - -#define BUF ((struct uip_eth_hdr *)&uip_buf[0]) - -static u8_t i, arptimer; -static u16_t start, current; - -static void rtl8019_drv_idle(void); -static DISPATCHER_SIGHANDLER(rtl8019_drv_sighandler, s, data); -static struct dispatcher_proc p = - {DISPATCHER_PROC("TCP/IP/RTL8019 driver", rtl8019_drv_idle, - rtl8019_drv_sighandler, NULL)}; -ek_id_t id = EK_ID_NONE; - - -/*-----------------------------------------------------------------------------------*/ -static void -timer(void) -{ - for(i = 0; i < UIP_CONNS; ++i) { - uip_periodic(i); - if(uip_len > 0) { - uip_arp_out(); - rtl8019as_send(); - } - } - - for(i = 0; i < UIP_UDP_CONNS; i++) { - uip_udp_periodic(i); - /* If the above function invocation resulted in data that - should be sent out on the network, the global variable - uip_len is set to a value > 0. */ - if(uip_len > 0) { - uip_arp_out(); - rtl8019as_send(); - } - } -} -/*-----------------------------------------------------------------------------------*/ -static void -rtl8019_drv_idle(void) -{ - /* Poll Ethernet device to see if there is a frame avaliable. */ - uip_len = rtl8019as_poll(); - if(uip_len > 0) { - /* A frame was avaliable (and is now read into the uip_buf), so - we process it. */ - if(BUF->type == uip_htons(UIP_ETHTYPE_IP)) { - /* debug_print16(uip_len);*/ - uip_arp_ipin(); - uip_len -= sizeof(struct uip_eth_hdr); - uip_input(); - /* If the above function invocation resulted in data that - should be sent out on the network, the global variable - uip_len is set to a value > 0. */ - if(uip_len > 0) { - /* debug_print(PSTR("Sending packet\n"));*/ - uip_arp_out(); - rtl8019as_send(); - } - } else if(BUF->type == uip_htons(UIP_ETHTYPE_ARP)) { - uip_arp_arpin(); - /* If the above function invocation resulted in data that - should be sent out on the network, the global variable - uip_len is set to a value > 0. */ - if(uip_len > 0) { - rtl8019as_send(); - } - } - } - /* Check the clock so see if we should call the periodic uIP - processing. */ - current = ek_clock(); - - if((current - start) >= CLK_TCK/2 || - (current - start) < 0) { - timer(); - start = current; - } -} -/*-----------------------------------------------------------------------------------*/ -LOADER_INIT_FUNC(rtl8019_drv_init) -{ - if(id == EK_ID_NONE) { - id = dispatcher_start(&p); - - arptimer = 0; - start = ek_clock(); - - rtl8019as_init(); - - dispatcher_listen(uip_signal_uninstall); - } -} -/*-----------------------------------------------------------------------------------*/ -static -DISPATCHER_SIGHANDLER(rtl8019_drv_sighandler, s, data) -{ - DISPATCHER_SIGHANDLER_ARGS(s, data); - - if(s == uip_signal_uninstall) { - dispatcher_exit(&p); - id = EK_ID_NONE; - LOADER_UNLOAD(); - } -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/apple2enh/lib/log-asm.S b/backyard/platform/apple2enh/lib/log-asm.S deleted file mode 100644 index b5935e3a6..000000000 --- a/backyard/platform/apple2enh/lib/log-asm.S +++ /dev/null @@ -1,51 +0,0 @@ -; -; Copyright (c) 2007, Swedish Institute of Computer Science. -; All rights reserved. -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions -; are met: -; 1. Redistributions of source code must retain the above copyright -; notice, this list of conditions and the following disclaimer. -; 2. Redistributions in binary form must reproduce the above copyright -; notice, this list of conditions and the following disclaimer in the -; documentation and/or other materials provided with the distribution. -; 3. Neither the name of the Institute nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND -; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE -; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -; OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -; SUCH DAMAGE. -; -; This file is part of the Contiki operating system. -; -; Author: Oliver Schmidt -; -; $Id: log-asm.S,v 1.1 2010/02/10 07:43:25 oliverschmidt Exp $ -; -;--------------------------------------------------------------------- - .importzp ptr1 - .import COUT - .export _log_write -;--------------------------------------------------------------------- -_log_write: - sta ptr1 - stx ptr1+1 - ldy #$00 -: lda (ptr1),y - bne :+ - rts -: ora #$80 - jsr COUT - iny - bne :-- -;--------------------------------------------------------------------- diff --git a/backyard/platform/apple2enh/lib/log.c b/backyard/platform/apple2enh/lib/log.c deleted file mode 100644 index 38d14732c..000000000 --- a/backyard/platform/apple2enh/lib/log.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Oliver Schmidt - * - * $Id: log.c,v 1.1 2010/02/10 07:43:25 oliverschmidt Exp $ - */ - -#include "net/uip.h" -#include "sys/log.h" - -void __fastcall__ log_write(const char *message); - -/*-----------------------------------------------------------------------------------*/ -#if UIP_LOGGING -void -uip_log(char *message) -{ - log_write(message); - log_write("\r"); -} -#endif /* UIP_LOGGING */ -/*-----------------------------------------------------------------------------------*/ -#if LOG_CONF_ENABLED -void -log_message(const char *part1, const char *part2) -{ - log_write(part1); - log_write(part2); - log_write("\r"); -} -#endif /* LOG_CONF_ENABLED */ -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/Makefile b/backyard/platform/c64/Makefile deleted file mode 100644 index 5219a814b..000000000 --- a/backyard/platform/c64/Makefile +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (c) 2002, Adam Dunkels. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS -# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# This file is part of the Contiki desktop environment -# -# $Id: Makefile,v 1.1 2007/05/23 23:11:23 oliverschmidt Exp $ -# - -CONTIKI=../.. -CONTIKICC65=../../cpu/6502 - -usage: - @echo "Make sure the Contiki sources is in the directory $(CONTIKI)" - @echo 'To compile Contiki, use "'$(MAKE)' target" where target' - @echo 'is one of the following:' - @echo all - @echo c64 - @echo programs - @echo d64 - @echo programs - @echo '(Also check the Makefile for more targets to try...)' - -all: clean c64 programs - -programs: - $(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.programs -c64: - $(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.c64 - -c64-exo: - $(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.c64 contiki-exo - -wget: - $(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.c64-wget - -installer: clean - $(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.installer - - -CCDEPFLAGS=-D__CBM__ -D__C64__ -DCTK_HIRES -DWITH_UIP -DWITH_LOADER_ARCH -I/usr/local/lib/cc65/include - -include $(CONTIKICC65)/Makefile.cc65 - -d64: - c1541 -format contiki,00 d64 contiki.d64 - c1541 -attach contiki.d64 -write contiki - c1541 -attach contiki.d64 -write config.cfg - c1541 -attach contiki.d64 $(foreach dsc, $(wildcard *.dsc), -write $(dsc)) - c1541 -attach contiki.d64 $(foreach prg, $(wildcard *.prg), -write $(prg)) - c1541 -attach contiki.d64 $(foreach sav, $(wildcard *.sav), -write $(sav)) - c1541 -attach contiki.d64 $(foreach drv, $(wildcard *.drv), -write $(drv)) - c1541 -attach contiki.d64 $(foreach ser, $(wildcard *.ser), -write $(ser)) - c1541 -attach contiki.d64 -list diff --git a/backyard/platform/c64/apps/blueround-dsc.c b/backyard/platform/c64/apps/blueround-dsc.c deleted file mode 100644 index a6afa0526..000000000 --- a/backyard/platform/c64/apps/blueround-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: blueround-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char blueroundicon_bitmap[3*3*8] = { - 0xfe,0xf8,0xe0,0xc0,0xc0,0x80,0x80,0x00, - 0x00,0x55,0xaa,0x00,0xaa,0x00,0x00,0x00, - 0x7f,0x1f,0x07,0x03,0x03,0x01,0x01,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x80,0x80,0xc0,0xc0,0xe0,0xf8,0xfe, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x01,0x01,0x03,0x03,0x07,0x1f,0x7f -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char blueroundicon_textmap[9] = { - '(', '=', ')', - '|', 'o', '|', - '(', '-', ')' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon blueround_icon = - {CTK_ICON("Blueround", blueroundicon_bitmap, blueroundicon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(blueround_dsc, - "Blueround CTK theme", - "blueround.prg", - blueround_init, - &blueround_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/cgterm-dsc.c b/backyard/platform/c64/apps/cgterm-dsc.c deleted file mode 100644 index 12cb65705..000000000 --- a/backyard/platform/c64/apps/cgterm-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: cgterm-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char cgtermicon_bitmap[3*3*8] = { - 0x00, 0x7e, 0x40, 0x73, 0x46, 0x4c, 0x18, 0x13, - 0x00, 0x00, 0xff, 0x81, 0x34, 0xc9, 0x00, 0xb6, - 0x00, 0x7e, 0x02, 0xce, 0x72, 0x32, 0x18, 0x48, - - 0x30, 0x27, 0x24, 0x20, 0x37, 0x24, 0x20, 0x33, - 0x00, 0x7b, 0x42, 0x00, 0x7b, 0x42, 0x00, 0x3b, - 0x0c, 0x24, 0x24, 0x04, 0xa4, 0x24, 0x04, 0x4c, - - 0x12, 0x19, 0x4c, 0x46, 0x63, 0x40, 0x7c, 0x00, - 0x22, 0x91, 0x00, 0xc4, 0x81, 0xff, 0x00, 0x00, - 0x08, 0x18, 0x32, 0x62, 0xc6, 0x02, 0x3e, 0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char cgtermicon_textmap[9] = { - 'T', 'e', 'l', - 'n', 'e', 't', - 'B', 'B', 'S' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon cgterm_icon = - {CTK_ICON("C/G terminal", cgtermicon_bitmap, cgtermicon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(cgterm_dsc, - "Program for connecting to C64 Telnet BBSes", - "cgterm.prg", - cgterm_init, - &cgterm_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/cgterm.c b/backyard/platform/c64/apps/cgterm.c deleted file mode 100644 index 3e4000e30..000000000 --- a/backyard/platform/c64/apps/cgterm.c +++ /dev/null @@ -1,242 +0,0 @@ -#include "contiki-net.h" -#include "ctk/ctk-draw.h" - -#include -#include -#include - -static struct { - struct psock sout, sin; - struct pt inpt, outpt; - char outputbuf[200]; - char inputbuf[200]; - unsigned short len; -} s; - -#define CURSOR_ON() *(char *)0xcc = 0 -#define CURSOR_OFF() *(char *)0xcc = 1 -static void ctkmode(void); -/*---------------------------------------------------------------------------*/ -static -PT_THREAD(send(void)) -{ - PSOCK_BEGIN(&s.sout); - - PSOCK_SEND(&s.sout, s.outputbuf, s.len); - PSOCK_END(&s.sout); -} -/*---------------------------------------------------------------------------*/ -static -PT_THREAD(handle_output(void)) -{ - ctk_arch_key_t c; - char *ptr; - - PT_BEGIN(&s.outpt); - - while(1) { - PT_WAIT_UNTIL(&s.outpt, (ctk_mode_get() == CTK_MODE_EXTERNAL) && - kbhit()); - - - ptr = s.outputbuf; - s.len = 0; - while(kbhit() && s.len < sizeof(s.outputbuf)) { - c = cgetc(); - *ptr = c; - ++ptr; - ++s.len; - } - - PT_WAIT_THREAD(&s.outpt, send()); - } - PT_END(&s.outpt); -} -/*---------------------------------------------------------------------------*/ -static -PT_THREAD(handle_input(void)) -{ - unsigned short i; - char *ptr; - char next; - - next = 1; - PT_BEGIN(&s.inpt); - - while(1) { - /* Wait until data arrives. */ - next = 0; - PT_WAIT_UNTIL(&s.inpt, next && uip_newdata()); - - CURSOR_OFF(); - /* Print it out on the screen. */ - ptr = (char *)uip_appdata; - for(i = 0; i < uip_len; ++i) { - cbm_k_bsout(*ptr); - ++ptr; - } - CURSOR_ON(); - } - PT_END(&s.inpt); -} -/*---------------------------------------------------------------------------*/ -static void -appcall(void *state) -{ - if(uip_closed() || uip_aborted() || uip_timedout()) { - ctkmode(); - } else if(uip_connected()) { - } else { - handle_input(); - handle_output(); - } -} -/*---------------------------------------------------------------------------*/ -static struct uip_conn * -connect(u16_t *host, u16_t port) -{ - PSOCK_INIT(&s.sin, s.inputbuf, sizeof(s.inputbuf)); - PSOCK_INIT(&s.sout, s.inputbuf, sizeof(s.inputbuf)); - PT_INIT(&s.inpt); - PT_INIT(&s.outpt); - return tcp_connect(host, uip_htons(port), NULL); -} -/*---------------------------------------------------------------------------*/ -PROCESS(cgterm_process, "C/G terminal"); - -static struct uip_conn *conn; -static u16_t serveraddr[2]; -static u16_t serverport; -/*---------------------------------------------------------------------------*/ -static struct ctk_window window; -static struct ctk_label hostlabel = - {CTK_LABEL(0, 0, 4, 1, "Host")}; -static char host[32]; -static struct ctk_textentry hostentry = - {CTK_TEXTENTRY(5, 0, 20, 1, host, sizeof(host) - 1)}; -static struct ctk_label portlabel = - {CTK_LABEL(27, 0, 4, 1, "Port")}; -static char port[7]; -static struct ctk_textentry portentry = - {CTK_TEXTENTRY(32, 0, 4, 1, port, sizeof(port) - 1)}; -static struct ctk_button connectbutton = - {CTK_BUTTON(0, 2, 7, "Connect")}; -static struct ctk_button switchbutton = - {CTK_BUTTON(30, 2, 6, "Switch")}; -static struct ctk_label helplabel = - {CTK_LABEL(0, 4, 37, 1, "RUN/STOP to return from terminal view")}; -/*---------------------------------------------------------------------------*/ -static void -ctkmode(void) -{ - ctk_mode_set(CTK_MODE_NORMAL); - ctk_draw_init(); - ctk_desktop_redraw(NULL); -} -/*---------------------------------------------------------------------------*/ -static void -textmode(void) -{ - ctk_mode_set(CTK_MODE_EXTERNAL); - - VIC.ctrl1 = 0x1b; /* $D011 */ - VIC.addr = 0x17; /* $D018 */ - VIC.ctrl2 = 0xc8; /* $D016 */ - CIA2.pra = 0x03; /* $DD00 */ - - VIC.bordercolor = 0x00; /* $D020 */ - VIC.bgcolor0 = 0x00; /* $D021 */ - - CURSOR_ON(); -} -/*---------------------------------------------------------------------------*/ -static void -pollhandler(void) -{ - if(ctk_mode_get() == CTK_MODE_EXTERNAL) { - if(CIA1.prb == 0x7f) { - ctkmode(); - } else if(kbhit() && conn != NULL) { - tcpip_poll_tcp(conn); - } - } -} -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(cgterm_process, ev, data) -{ - u16_t *ipaddr; - char *cptr; - - PROCESS_POLLHANDLER(pollhandler()); - - PROCESS_BEGIN(); - - ctk_window_new(&window, 38, 5, "C/G term"); - CTK_WIDGET_ADD(&window, &hostlabel); - CTK_WIDGET_ADD(&window, &hostentry); - CTK_WIDGET_ADD(&window, &portlabel); - CTK_WIDGET_ADD(&window, &portentry); - CTK_WIDGET_ADD(&window, &connectbutton); - CTK_WIDGET_ADD(&window, &switchbutton); - CTK_WIDGET_ADD(&window, &helplabel); - ctk_window_open(&window); - - while(1) { - PROCESS_WAIT_EVENT(); - - if(ev == tcpip_event) { - appcall(data); - } else if(ev == ctk_signal_widget_activate) { - - if(data == &switchbutton) { - textmode(); - } else if(data == &connectbutton) { - serverport = 0; - for(cptr = port; *cptr != ' ' && *cptr != 0; ++cptr) { - if(*cptr < '0' || *cptr > '9') { - continue; - } - serverport = 10 * serverport + *cptr - '0'; - } - - ipaddr = serveraddr; - if(uiplib_ipaddrconv(host, (u8_t *)serveraddr) == 0) { - ipaddr = resolv_lookup(host); - if(ipaddr == NULL) { - resolv_query(host); - } else { - uip_ipaddr_copy(serveraddr, ipaddr); - } - } - if(ipaddr != NULL) { - conn = connect(serveraddr, serverport); - if(conn != NULL) { - memset((char *)0x0400, 0x20, 40*25); - memset((char *)0xd800, 0x01, 40*25); - textmode(); - } - } - } - } else if(ev == resolv_event_found) { - ipaddr = resolv_lookup(host); - if(ipaddr != NULL) { - uip_ipaddr_copy(serveraddr, ipaddr); - - conn = connect(serveraddr, serverport); - if(conn != NULL) { - memset((char *)0x0400, 0x20, 40*25); - memset((char *)0xd800, 0x01, 40*25); - textmode(); - } - } - } else if(ev == PROCESS_EVENT_EXIT || - ev == ctk_signal_window_close) { - - break; - } - } - ctk_window_close(&window); - - PROCESS_END(); -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/config.c b/backyard/platform/c64/apps/config.c deleted file mode 100644 index 8a268bc23..000000000 --- a/backyard/platform/c64/apps/config.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS. - * - * $Id: config.c,v 1.1 2007/05/23 23:11:24 oliverschmidt Exp $ - * - */ - -#include "program-handler.h" -#include "contiki-net.h" -#include "cfs/cfs.h" - -struct ptentry { - char c; - char * (* pfunc)(char *str); -}; - -/*-----------------------------------------------------------------------------------*/ -static char * -parse(char *str, struct ptentry *t) -{ - struct ptentry *p; - - /* Loop over the parse table entries in t in order to find one that - matches the first character in str. */ - for(p = t; p->c != 0; ++p) { - if(*str == p->c) { - /* Skip rest of the characters up to the first space. */ - while(*str != ' ') { - ++str; - } - - /* Skip all spaces.*/ - while(*str == ' ') { - ++str; - } - - /* Call parse table entry function and return. */ - return p->pfunc(str); - } - } - - /* Did not find matching entry in parse table. We just call the - default handler supplied by the caller and return. */ - return p->pfunc(str); -} -/*-----------------------------------------------------------------------------------*/ -static char * -skipnewline(char *str) -{ - /* Skip all characters until the newline. */ - while(*str != '\n') { - ++str; - } - - /* Return a pointer to the first character after the newline. */ - return str + 1; -} -/*-----------------------------------------------------------------------------------*/ -static char * -nullterminate(char *str) -{ - char *nt; - - /* Nullterminate string. Start with finding newline character. */ - for(nt = str; *nt != '\r' && - *nt != '\n'; ++nt); - - /* Replace newline with a null char. */ - *nt = 0; - - /* Remove trailing spaces. */ - while(nt > str && *(nt - 1) == ' ') { - *(nt - 1) = 0; - --nt; - } - - /* Return pointer to null char. */ - return nt; -} -/*-----------------------------------------------------------------------------------*/ -static char * -loadfile(char *str) -{ - char *nt; - - nt = nullterminate(str); - - /* Call loader function. */ - program_handler_load(str, NULL); - - return nt + 1; -} -/*-----------------------------------------------------------------------------------*/ -static char * -screensaverconf(char *str) -{ - char *nt; - - nt = nullterminate(str); - program_handler_setscreensaver(str); - - return nt + 1; -} -/*-----------------------------------------------------------------------------------*/ -static u16_t addr[2]; -static char * -ipaddrconf(char *str) -{ - char *nt; - - nt = nullterminate(str); - if(uiplib_ipaddrconv(str, (unsigned char *)addr)) { - uip_sethostaddr(addr); - } - - return nt + 1; -} -/*-----------------------------------------------------------------------------------*/ -static char * -netmaskconf(char *str) -{ - char *nt; - - nt = nullterminate(str); - if(uiplib_ipaddrconv(str, (unsigned char *)addr)) { - uip_setnetmask(addr); - } - - return nt + 1; -} -/*-----------------------------------------------------------------------------------*/ -static char * -drconf(char *str) -{ - char *nt; - - nt = nullterminate(str); - if(uiplib_ipaddrconv(str, (unsigned char *)addr)) { - uip_setdraddr(addr); - } - - return nt + 1; -} -/*-----------------------------------------------------------------------------------*/ -static char * -dnsconf(char *str) -{ - char *nt; - - nt = nullterminate(str); - if(uiplib_ipaddrconv(str, (unsigned char *)addr)) { - resolv_conf(addr); - } - - return nt + 1; -} -/*-----------------------------------------------------------------------------------*/ -static struct ptentry configparsetab[] = - {{'n', loadfile}, - {'t', loadfile}, - {'c', loadfile}, - {'s', screensaverconf}, - {'i', ipaddrconf}, - {'m', netmaskconf}, - {'r', drconf}, - {'d', dnsconf}, - {'#', skipnewline}, - - /* Default action */ - {0, skipnewline}}; -static void -configscript(void) -{ - static char line[40], *lineptr; - /* static struct c64_fs_file f;*/ - int f; - - if((f = cfs_open("config.cfg", 0)) == -1) { - return; - } - - line[0] = ' '; - while(line[0] != '.' && - line[0] != 0) { - lineptr = line; - do { - if(cfs_read(f, lineptr, 1) != 1) { - cfs_close(f); - return; - } - ++lineptr; - } while(*(lineptr - 1) != '\n' && - *(lineptr - 1) != '\r'); - - *lineptr = 0; - - if(line[0] != '.' && - line[0] != 0) { - parse(line, configparsetab); - } - - } - cfs_close(f); - return; -} -/*-----------------------------------------------------------------------------------*/ -LOADER_INIT_FUNC(config_init, arg) -{ - arg_free(arg); - program_handler_setscreensaver(NULL); - configscript(); - LOADER_UNLOAD(); -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/configedit-dsc.c b/backyard/platform/c64/apps/configedit-dsc.c deleted file mode 100644 index 589e2d29b..000000000 --- a/backyard/platform/c64/apps/configedit-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: configedit-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char tcpipconficon_bitmap[3*3*8] = { - 0x00, 0x79, 0x43, 0x73, 0x47, 0x77, 0x47, 0x6f, - 0x00, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xf8, 0xfb, - 0x00, 0x16, 0x02, 0x00, 0x02, 0x00, 0x00, 0xc2, - - 0x48, 0x4c, 0x5f, 0x5f, 0x1f, 0x3f, 0x3f, 0x03, - 0x79, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xfe, 0xfc, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x77, 0x47, 0x70, 0x43, 0x79, 0x41, 0x7c, 0x00, - 0xfc, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xf7, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x84, 0xf0, 0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char tcpipconficon_textmap[9] = { - 'C', 'F', 'G', - ' ', ' ', ' ', - 'C', 'F', 'G' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon configedit_icon = - {CTK_ICON("Configuration", tcpipconficon_bitmap, tcpipconficon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(configedit_dsc, - "Edit Contiki configuration", - "configedit.prg", - configedit_init, - &configedit_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/configedit-dsc.h b/backyard/platform/c64/apps/configedit-dsc.h deleted file mode 100644 index 2282b36a6..000000000 --- a/backyard/platform/c64/apps/configedit-dsc.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: configedit-dsc.h,v 1.1 2007/05/23 23:11:24 oliverschmidt Exp $ - * - */ -#ifndef __CONFIGEDIT_DSC_H__ -#define __CONFIGEDIT_DSC_H__ - -#include "sys/dsc.h" - -DSC_HEADER(configedit_dsc); - -#endif /* __CONFIGEDIT_DSC_H__ */ diff --git a/backyard/platform/c64/apps/configedit.c b/backyard/platform/c64/apps/configedit.c deleted file mode 100644 index c42009800..000000000 --- a/backyard/platform/c64/apps/configedit.c +++ /dev/null @@ -1,418 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: configedit.c,v 1.1 2007/05/23 23:11:24 oliverschmidt Exp $ - * - */ - -#include "contiki.h" -#include "contiki-net.h" - -#include "ctk/ctk-draw-service.h" -#include "net/packet-service.h" - -#include "ctk/ctk.h" -#include "ctk/ctk-draw.h" - -#include "program-handler.h" - -#include "cfs/cfs.h" - -#include - -#include - -/* TCP/IP configuration window. */ -static struct ctk_window window; - -#define LABELMAXWIDTH 12 - -static struct ctk_label cfslabel = - {CTK_LABEL(0, 1, LABELMAXWIDTH, 1, "Disk driver")}; -static char cfs[25]; -static struct ctk_textentry cfstextentry = - {CTK_TEXTENTRY(LABELMAXWIDTH + 1, 1, 16, 1, cfs, 24)}; - -static struct ctk_label themelabel = - {CTK_LABEL(0, 3, LABELMAXWIDTH, 1, "CTK theme")}; -static char theme[25]; -static struct ctk_textentry themetextentry = - {CTK_TEXTENTRY(LABELMAXWIDTH + 1, 3, 16, 1, theme, 24)}; - -static struct ctk_label driverlabel = - {CTK_LABEL(0, 5, LABELMAXWIDTH, 1, "Net driver")}; -static char driver[25]; -static struct ctk_textentry drivertextentry = - {CTK_TEXTENTRY(LABELMAXWIDTH + 1, 5, 16, 1, driver, 24)}; - -static struct ctk_label screensaverlabel = - {CTK_LABEL(0, 7, LABELMAXWIDTH, 1, "Screensaver")}; -static char screensaver[25]; -static struct ctk_textentry screensavertextentry = - {CTK_TEXTENTRY(LABELMAXWIDTH + 1, 7, 16, 1, screensaver, 24)}; - - -static struct ctk_label ipaddrlabel = - {CTK_LABEL(0, 9, LABELMAXWIDTH, 1, "IP address")}; -static char ipaddr[25]; -static struct ctk_textentry ipaddrtextentry = - {CTK_TEXTENTRY(LABELMAXWIDTH + 1, 9, 16, 1, ipaddr, 24)}; -static struct ctk_label netmasklabel = - {CTK_LABEL(0, 11, LABELMAXWIDTH, 1, "Netmask")}; -static char netmask[25]; -static struct ctk_textentry netmasktextentry = - {CTK_TEXTENTRY(LABELMAXWIDTH + 1, 11, 16, 1, netmask, 24)}; -static struct ctk_label gatewaylabel = - {CTK_LABEL(0, 13, LABELMAXWIDTH, 1, "Gateway")}; -static char gateway[25]; -static struct ctk_textentry gatewaytextentry = - {CTK_TEXTENTRY(LABELMAXWIDTH + 1, 13, 16, 1, gateway, 24)}; -static struct ctk_label dnsserverlabel = - {CTK_LABEL(0, 15, LABELMAXWIDTH, 1, "DNS server")}; -static char dnsserver[25]; -static struct ctk_textentry dnsservertextentry = - {CTK_TEXTENTRY(LABELMAXWIDTH + 1, 15, 16, 1, dnsserver, 24)}; - -static struct ctk_button savebutton = - {CTK_BUTTON(0, 17, 12, "Save & close")}; -static struct ctk_button cancelbutton = - {CTK_BUTTON(24, 17, 6, "Cancel")}; - -PROCESS(configedit_process, "Configuration editor"); -/*-----------------------------------------------------------------------------------*/ -struct ptentry { - char c; - char * (* pfunc)(char *str); -}; - -/*-----------------------------------------------------------------------------------*/ -static char * -parse(char *str, struct ptentry *t) -{ - struct ptentry *p; - - /* Loop over the parse table entries in t in order to find one that - matches the first character in str. */ - for(p = t; p->c != 0; ++p) { - if(*str == p->c) { - /* Skip rest of the characters up to the first space. */ - while(*str != ' ') { - ++str; - } - - /* Skip all spaces.*/ - while(*str == ' ') { - ++str; - } - - /* Call parse table entry function and return. */ - return p->pfunc(str); - } - } - - /* Did not find matching entry in parse table. We just call the - default handler supplied by the caller and return. */ - return p->pfunc(str); -} -/*-----------------------------------------------------------------------------------*/ -static char * -skipnewline(char *str) -{ - /* Skip all characters until the newline. */ - while(*str != '\n') { - ++str; - } - - /* Return a pointer to the first character after the newline. */ - return str + 1; -} -/*-----------------------------------------------------------------------------------*/ -static char * -nullterminate(char *str) -{ - char *nt; - - /* Nullterminate string. Start with finding newline character. */ - for(nt = str; *nt != '\r' && - *nt != '\n'; ++nt); - - /* Replace newline with a null char. */ - *nt = 0; - - /* Remove trailing spaces. */ - while(nt > str && *(nt - 1) == ' ') { - *(nt - 1) = 0; - --nt; - } - - /* Return pointer to null char. */ - return nt; -} -/*-----------------------------------------------------------------------------------*/ -static char * __fastcall__ -copystr(char *dst, char *src, int len) -{ - char *nt = nullterminate(src); - strncpy(dst, src, len); - return nt + 1; -} -/*-----------------------------------------------------------------------------------*/ -static char * -loaddriver(char *str) -{ - return copystr(driver, str, sizeof(driver)); -} -/*-----------------------------------------------------------------------------------*/ -static char * -loadtheme(char *str) -{ - return copystr(theme, str, sizeof(theme)); -} -/*-----------------------------------------------------------------------------------*/ -static char * -loadcfs(char *str) -{ - return copystr(cfs, str, sizeof(cfs)); -} -/*-----------------------------------------------------------------------------------*/ -static char * -loadscreensaver(char *str) -{ - return copystr(screensaver, str, sizeof(screensaver)); -} -/*-----------------------------------------------------------------------------------*/ -static char * -ipaddrconf(char *str) -{ - return copystr(ipaddr, str, sizeof(ipaddr)); -} -/*-----------------------------------------------------------------------------------*/ -static char * -netmaskconf(char *str) -{ - return copystr(netmask, str, sizeof(netmask)); -} -/*-----------------------------------------------------------------------------------*/ -static char * -drconf(char *str) -{ - return copystr(gateway, str, sizeof(gateway)); -} -/*-----------------------------------------------------------------------------------*/ -static char * -dnsconf(char *str) -{ - return copystr(dnsserver, str, sizeof(dnsserver)); -} -/*-----------------------------------------------------------------------------------*/ -static struct ptentry initparsetab[] = - {{'n', loaddriver}, - {'t', loadtheme}, - {'c', loadcfs}, - {'s', loadscreensaver}, - {'i', ipaddrconf}, - {'m', netmaskconf}, - {'r', drconf}, - {'d', dnsconf}, - {'#', skipnewline}, - - /* Default action */ - {0, skipnewline}}; -static void -initscript(void) -{ - char line[40], *lineptr; - /* struct c64_fs_file f;*/ - int f; - - if((f = cfs_open("config.cfg", 0)) == -1) { - return; - } - line[0] = ' '; - while(line[0] != '.' && - line[0] != 0) { - lineptr = line; - do { - if(cfs_read(f, lineptr, 1) != 1) { - cfs_close(f); - return; - } - ++lineptr; - } while(*(lineptr - 1) != '\n' && - *(lineptr - 1) != '\r'); - - *lineptr = 0; - - if(line[0] != '.' && - line[0] != 0) { - parse(line, initparsetab); - } - - } - cfs_close(f); - return; -} -/*-----------------------------------------------------------------------------------*/ -static int -makeline(char *line, char c, char *str) -{ - int len; - - len = strlen(str); - - line[0] = c; - line[1] = ' '; - strcpy(&line[2], str); - line[2 + len] = '\n'; - line[3 + len] = 0; - return len + 3; -} -/*-----------------------------------------------------------------------------------*/ -static void -savescript(void) -{ - char line[40]; - /* struct c64_fs_file f;*/ - int f; - - f = cfs_open("@:config.cfg", CFS_WRITE); - if(f == -1) { - log_message("Could not open config.cfg", ""); - return; - } - if(cfs[0] != 0) { - cfs_write(f, line, makeline(line, 'c', cfs)); - } - if(theme[0] != 0) { - cfs_write(f, line, makeline(line, 't', theme)); - } - if(driver[0] != 0) { - cfs_write(f, line, makeline(line, 'n', driver)); - } - if(ipaddr[0] != 0) { - cfs_write(f, line, makeline(line, 'i', ipaddr)); - } - if(netmask[0] != 0) { - cfs_write(f, line, makeline(line, 'm', netmask)); - } - if(gateway[0] != 0) { - cfs_write(f, line, makeline(line, 'r', gateway)); - } - if(dnsserver[0] != 0) { - cfs_write(f, line, makeline(line, 'd', dnsserver)); - } - - if(screensaver[0] != 0) { - cfs_write(f, line, makeline(line, 's', screensaver)); - } - - strcpy(line, ".\n\0\n\n\n"); - cfs_write(f, line, strlen(line)); - - cfs_close(f); - -} -/*-----------------------------------------------------------------------------------*/ -static void -quit_services(void) -{ - /* cfs_init_init(NULL); - ctk_draw_quit(); - - if(ek_service_find(&packetservice) == EK_ERR_OK) { - ek_post(packetservice.id, EK_EVENT_REQUEST_EXIT, NULL); - ek_service_reset(&packetservice); - }*/ -} -/*-----------------------------------------------------------------------------------*/ -PROCESS_THREAD(configedit_process, ev, data) -{ - PROCESS_BEGIN(); - - /* Create window. */ - ctk_window_new(&window, 32, 18, "Config editor"); - - CTK_WIDGET_ADD(&window, &cfslabel); - CTK_WIDGET_ADD(&window, &cfstextentry); - - CTK_WIDGET_ADD(&window, &themelabel); - CTK_WIDGET_ADD(&window, &themetextentry); - - CTK_WIDGET_ADD(&window, &driverlabel); - CTK_WIDGET_ADD(&window, &drivertextentry); - - CTK_WIDGET_ADD(&window, &screensaverlabel); - CTK_WIDGET_ADD(&window, &screensavertextentry); - - CTK_WIDGET_ADD(&window, &ipaddrlabel); - CTK_WIDGET_ADD(&window, &ipaddrtextentry); - CTK_WIDGET_ADD(&window, &netmasklabel); - CTK_WIDGET_ADD(&window, &netmasktextentry); - CTK_WIDGET_ADD(&window, &gatewaylabel); - CTK_WIDGET_ADD(&window, &gatewaytextentry); - CTK_WIDGET_ADD(&window, &dnsserverlabel); - CTK_WIDGET_ADD(&window, &dnsservertextentry); - - CTK_WIDGET_ADD(&window, &savebutton); - CTK_WIDGET_ADD(&window, &cancelbutton); - - CTK_WIDGET_FOCUS(&window, &cfstextentry); - - /* Fill the configuration strings with values from the current - configuration */ - initscript(); - - ctk_window_open(&window); - - while(1) { - PROCESS_WAIT_EVENT(); - - if(ev == ctk_signal_button_activate) { - if(data == &savebutton) { - savescript(); - quit_services(); - ctk_window_close(&window); - program_handler_load("config.prg", NULL); - break; - } else if(data == &cancelbutton) { - ctk_window_close(&window); - break; - } - } else if(ev == ctk_signal_window_close || - ev == PROCESS_EVENT_EXIT) { - ctk_window_close(&window); - break; - } - } - - PROCESS_END(); -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/default-dsc.c b/backyard/platform/c64/apps/default-dsc.c deleted file mode 100644 index 35e39247c..000000000 --- a/backyard/platform/c64/apps/default-dsc.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: default-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char defaulticon_bitmap[3*3*8] = { - 0xff,0xff,0xc0,0xcf,0xc0,0xc3,0xc0,0xc0, - 0xff,0xff,0x00,0xff,0x00,0xff,0x00,0x00, - 0xff,0xfc,0x00,0xf0,0x00,0xc0,0x00,0x00, - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x80,0x00, - 0x00,0x00,0x00,0x00,0xff,0x00,0xff,0xff, - 0x0b,0x0b,0x0b,0x0b,0xfb,0x03,0xff,0xff -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char defaulticon_textmap[9] = { - '+', '=', '+', - '|', 'D', '|', - '+', '-', '+' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon default_icon = - {CTK_ICON("Default", defaulticon_bitmap, defaulticon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(default_dsc, - "Default CTK theme", - "default.prg", - default_init, - &default_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/enabler-dsc.c b/backyard/platform/c64/apps/enabler-dsc.c deleted file mode 100644 index a8ed02ce6..000000000 --- a/backyard/platform/c64/apps/enabler-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: enabler-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char enablericon_bitmap[3*3*8] = { - 0xff,0xff,0xff,0xfc,0xf0,0xf0,0xe0,0xe0, - 0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00, - 0xff,0xff,0xff,0x3f,0x0f,0x0f,0x07,0x07, - - 0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - - 0xe0,0xe0,0xf0,0xf0,0xfc,0xff,0xff,0xff, - 0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, - 0x07,0x07,0x0f,0x0f,0x3f,0xff,0xff,0xff -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char enablericon_textmap[9] = { - '(', '=', ')', - '|', 'o', '|', - '(', '-', ')' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon enabler_icon = - {CTK_ICON("Enabler", enablericon_bitmap, enablericon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(enabler_dsc, - "Colorless grayish CTK theme", - "enabler.prg", - enabler_init, - &enabler_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/http-user-agent-string.c b/backyard/platform/c64/apps/http-user-agent-string.c deleted file mode 100644 index 1e1f8fe84..000000000 --- a/backyard/platform/c64/apps/http-user-agent-string.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: http-user-agent-string.c,v 1.1 2007/05/23 23:11:24 oliverschmidt Exp $ - */ -char http_user_agent_fields[100] = -/* "Connection: close\r\nUser-Agent: Contiki/1.1-rc0 (Commodore 64; http://dunkels.com/adam/contiki/)\r\n\r\n" */ -{0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0xd, 0xa, 0x55, 0x73, 0x65, 0x72, 0x2d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2f, 0x31, 0x2e, 0x31, 0x2d, 0x72, 0x63, 0x30, 0x20, 0x28, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x64, 0x6f, 0x72, 0x65, 0x20, 0x36, 0x34, 0x3b, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2f, 0x29, 0xd, 0xa, 0xd, 0xa, }; diff --git a/backyard/platform/c64/apps/http-user-agent-string.h b/backyard/platform/c64/apps/http-user-agent-string.h deleted file mode 100644 index 484f82e8c..000000000 --- a/backyard/platform/c64/apps/http-user-agent-string.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: http-user-agent-string.h,v 1.1 2007/05/23 23:11:24 oliverschmidt Exp $ - */ -extern char http_user_agent_fields[100]; diff --git a/backyard/platform/c64/apps/memstat-dsc.c b/backyard/platform/c64/apps/memstat-dsc.c deleted file mode 100644 index e588dbf83..000000000 --- a/backyard/platform/c64/apps/memstat-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: memstat-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char memstaticon_bitmap[3*3*8] = { - 0x00, 0x7f, 0x43, 0x4c, 0x58, 0x53, 0x60, 0x6f, - 0x00, 0xff, 0x00, 0x7e, 0x00, 0xff, 0x00, 0xff, - 0x00, 0xfe, 0xc2, 0x32, 0x1a, 0xca, 0x06, 0xf6, - - 0x40, 0x5f, 0x40, 0x5f, 0x40, 0x5f, 0x40, 0x4f, - 0x00, 0xff, 0x00, 0xff, 0x00, 0xfc, 0x01, 0xf3, - 0x02, 0xfa, 0x02, 0x82, 0x3e, 0xfe, 0xfe, 0xfe, - - 0x60, 0x67, 0x50, 0x59, 0x4c, 0x43, 0x7f, 0x00, - 0x07, 0xe7, 0x0f, 0xef, 0x0f, 0x0f, 0xff, 0x00, - 0x8e, 0x06, 0x06, 0x06, 0x8e, 0xfe, 0xfe, 0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char memstaticon_textmap[9] = { - '0', '0', '1', - '0', '1', '0', - '1', '0', '1' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon memstat_icon = - {CTK_ICON("Memory stats", memstaticon_bitmap, memstaticon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(memstat_dsc, - "Memory statistics", - "memstat.prg", - memstat_init, - &memstat_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/mtest.c b/backyard/platform/c64/apps/mtest.c deleted file mode 100644 index 9908a5068..000000000 --- a/backyard/platform/c64/apps/mtest.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: mtest.c,v 1.1 2007/05/23 23:11:24 oliverschmidt Exp $ - */ -#include "mt.h" - -MTP(t, p, "Test thread"); -/*--------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -test(void *data) -{ - while(1) { - asm("inc $d020"); - } -} -#pragma optimize(pop) -/*--------------------------------------------------------------------------*/ -LOADER_INIT_FUNC(mtest_init, arg) -{ - arg_free(arg); - mtp_start(&t, test, NULL); -} -/*--------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/plasma-dsc.c b/backyard/platform/c64/apps/plasma-dsc.c deleted file mode 100644 index ec27e2859..000000000 --- a/backyard/platform/c64/apps/plasma-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: plasma-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char plasmaicon_bitmap[3*3*8] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char plasmaicon_textmap[9] = { - '.', ' ', '.', - ' ', 'O', ' ', - '.', ' ', '.' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon plasma_icon = - {CTK_ICON("Plasma", plasmaicon_bitmap, plasmaicon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(plasma_dsc, - "Screensaver with a plasma", - "plasma.sav", - plasma_init, - &plasma_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/plasma.c b/backyard/platform/c64/apps/plasma.c deleted file mode 100644 index befc58e6b..000000000 --- a/backyard/platform/c64/apps/plasma.c +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Copyright (c) 2002-2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: plasma.c,v 1.1 2007/05/23 23:11:24 oliverschmidt Exp $ - * - */ - -#include - -#include "ctk/ctk.h" -#include "ctk/ctk-draw.h" -#include "ctk/ctk-mouse.h" -#include "contiki.h" - -static unsigned char sinetab1[256] = { - 128, 131, 134, 137, 140, 143, 146, 149, - 152, 156, 159, 162, 165, 168, 171, 174, - 176, 179, 182, 185, 188, 191, 193, 196, - 199, 201, 204, 206, 209, 211, 213, 216, - 218, 220, 222, 224, 226, 228, 230, 232, - 234, 236, 237, 239, 240, 242, 243, 245, - 246, 247, 248, 249, 250, 251, 252, 252, - 253, 254, 254, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 254, 254, - 253, 252, 252, 251, 250, 249, 248, 247, - 246, 245, 243, 242, 240, 239, 237, 236, - 234, 232, 230, 228, 226, 224, 222, 220, - 218, 216, 213, 211, 209, 206, 204, 201, - 199, 196, 193, 191, 188, 185, 182, 179, - 176, 174, 171, 168, 165, 162, 159, 156, - 152, 149, 146, 143, 140, 137, 134, 131, - 128, 124, 121, 118, 115, 112, 109, 106, - 103, 99, 96, 93, 90, 87, 84, 81, - 79, 76, 73, 70, 67, 64, 62, 59, - 56, 54, 51, 49, 46, 44, 42, 39, - 37, 35, 33, 31, 29, 27, 25, 23, - 21, 19, 18, 16, 15, 13, 12, 10, - 9, 8, 7, 6, 5, 4, 3, 3, - 2, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, - 2, 3, 3, 4, 5, 6, 7, 8, - 9, 10, 12, 13, 15, 16, 18, 19, - 21, 23, 25, 27, 29, 31, 33, 35, - 37, 39, 42, 44, 46, 49, 51, 54, - 56, 59, 62, 64, 67, 70, 73, 76, - 78, 81, 84, 87, 90, 93, 96, 99, - 103, 106, 109, 112, 115, 118, 121, 124, -}; - -static unsigned char sinetab2[256]; -static unsigned char sinetab3[256]; - -static unsigned char colortab[256]; - -static unsigned char colors[16] = - { - 0x00, 0x06, 0x0b, 0x04, - 0x0a, 0x0f, 0x07, 0x01, - 0x07, 0x0f, 0x0a, 0x08, - 0x02, 0x09, 0x00, 0x00, - }; - -#define XSIZE 25 -#define YSIZE 25 - -#define XADD01 0xfe -#define YADD01 0x05 - -#define XADD1 0x04 -#define YADD1 0x02 -#define XADD2 0xfc -#define YADD2 0xf9 - -#define XADD 0x03 -#define YADD 0xfe - -#define MOVADD 0xfb - -static unsigned char xplasma[XSIZE], yplasma[YSIZE]; -static unsigned char xcnt, ycnt; -static unsigned char xcnt01, xcnt02, xcnt1, xcnt2; -static unsigned char ycnt01, ycnt02, ycnt1, ycnt2; - -static unsigned char xadd02 = 0x01; -static unsigned char yadd02 = 0xfb; - -static unsigned char movcnt; - -PROCESS(plasma_process, "Plasma screensaver"); -/*---------------------------------------------------------------------------*/ -static void -scrninit(void) -{ - unsigned char *ptr, *cptr; - static int i; - - /* Make sine tables */ - for(i = 0; i < 256; ++i) { - sinetab2[(unsigned char)i] = sinetab1[(unsigned char)i] / 2; - sinetab3[(unsigned char)i] = sinetab1[(unsigned char)i] / 4; - } - - /* Make color table */ - for(i = 0; i < 256; ++i) { - colortab[(unsigned char)i] = colors[(unsigned char)i / 16]; - } - - - /* Fill screen with inverted spaces. */ - cptr = COLOR_RAM; - for(ptr = (unsigned char *)0x0400; - ptr != (unsigned char *)0x07e8; - ++ptr) { - *ptr = 0xa0; - *cptr++ = 0x00; - } - - VIC.ctrl1 = 0x1b; /* $D011 */ - VIC.addr = 0x17; /* $D018 */ - VIC.ctrl2 = 0xc8; /* $D016 */ - VIC.bordercolor = 0x00; /* $D020 */ - VIC.bgcolor0 = 0x00; /* $D021 */ - CIA2.pra = 0x03; /* $DD00 */ - -} -/*---------------------------------------------------------------------------*/ -static void -pollhandler(void) -{ - static unsigned char i, x, y; - register unsigned char *cptr; - - if(ctk_mode_get() == CTK_MODE_SCREENSAVER) { - - - xcnt1 = xcnt01; - xcnt2 = xcnt02; - - for(i = 0; i < XSIZE; ++i) { - xplasma[i] = sinetab1[xcnt1] + sinetab2[xcnt2]; - xcnt1 += XADD1; - xcnt2 += XADD2; - } - - ycnt1 = ycnt01; - ycnt2 = ycnt02; - - for(i = 0; i < YSIZE; ++i) { - yplasma[i] = sinetab1[ycnt1] + sinetab3[ycnt2]; - ycnt1 += YADD1; - ycnt2 += YADD2; - } - - xcnt01 += XADD01; - xcnt02 += xadd02; - ycnt01 += YADD01; - ycnt02 += yadd02; - - - yadd02 = sinetab3[ycnt] / 4; - xadd02 = sinetab3[xcnt] / 4; - - ycnt += YADD; - xcnt += XADD; - - movcnt += MOVADD; - cptr = (unsigned char *)(COLOR_RAM + sinetab1[movcnt]/16); - for(y = 0; y < YSIZE; ++y) { - for(x = 0; x < XSIZE; ++x) { - *cptr = colortab[(xplasma[x] + yplasma[y]) & 0xff]; - ++cptr; - } - cptr += 40 - XSIZE; - } - } -} -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(plasma_process, ev, data) -{ - PROCESS_POLLHANDLER(pollhandler()); - - PROCESS_BEGIN(); - - ctk_mode_set(CTK_MODE_SCREENSAVER); - ctk_mouse_hide(); - - scrninit(); - - PROCESS_WAIT_EVENT_UNTIL(ev == ctk_signal_screensaver_stop || - ev == PROCESS_EVENT_EXIT); - ctk_draw_init(); - ctk_desktop_redraw(NULL); - - PROCESS_END(); -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/ravenpine-dsc.c b/backyard/platform/c64/apps/ravenpine-dsc.c deleted file mode 100644 index c6873648d..000000000 --- a/backyard/platform/c64/apps/ravenpine-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: ravenpine-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char ravenpineicon_bitmap[3*3*8] = { - 0x00,0x3f,0x6a,0x40,0x60,0x40,0x60,0x40, - 0x00,0xff,0xaa,0x00,0x00,0x00,0x00,0x00, - 0x00,0xf0,0x20,0x00,0x00,0x00,0x00,0x00, - - 0x60,0x40,0x60,0x40,0x60,0x40,0x60,0x40, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - - 0x60,0x40,0x40,0x40,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00, - 0x02,0x02,0x02,0x02,0x02,0x06,0xfc,0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char ravenpineicon_textmap[9] = { - '(', '=', ')', - '|', 'o', '|', - '(', '-', ')' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon ravenpine_icon = - {CTK_ICON("Ravenpine", ravenpineicon_bitmap, ravenpineicon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(ravenpine_dsc, - "Terminal green CTK theme", - "ravenpine.prg", - ravenpine_init, - &ravenpine_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/springlight-dsc.c b/backyard/platform/c64/apps/springlight-dsc.c deleted file mode 100644 index 175d3acbf..000000000 --- a/backyard/platform/c64/apps/springlight-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: springlight-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char springlighticon_bitmap[3*3*8] = { - 0x00,0x3f,0x6a,0x40,0x60,0x40,0x60,0x40, - 0x00,0xff,0xaa,0x00,0x00,0x00,0x00,0x00, - 0x00,0xf0,0x20,0x00,0x00,0x00,0x00,0x00, - - 0x60,0x40,0x60,0x40,0x60,0x40,0x60,0x40, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - - 0x60,0x40,0x40,0x40,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00, - 0x02,0x02,0x02,0x02,0x02,0x06,0xfc,0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char springlighticon_textmap[9] = { - '(', '=', ')', - '|', 'o', '|', - '(', '-', ')' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon springlight_icon = - {CTK_ICON("Springlight", springlighticon_bitmap, springlighticon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(springlight_dsc, - "Spring green CTK theme", - "springlight.prg", - springlight_init, - &springlight_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/ssfire-dsc.c b/backyard/platform/c64/apps/ssfire-dsc.c deleted file mode 100644 index 0eb5f4de3..000000000 --- a/backyard/platform/c64/apps/ssfire-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: ssfire-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char ssfireicon_bitmap[3*3*8] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char ssfireicon_textmap[9] = { - '.', ' ', '.', - 'o', ' ', 'o', - 'O', ' ', 'O' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon ssfire_icon = - {CTK_ICON("Fire", ssfireicon_bitmap, ssfireicon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(ssfire_dsc, - "Screensaver with two fires", - "ssfire.sav", - ssfire_init, - &ssfire_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/ssfire.c b/backyard/platform/c64/apps/ssfire.c deleted file mode 100644 index b77a4e716..000000000 --- a/backyard/platform/c64/apps/ssfire.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright (c) 2002-2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: ssfire.c,v 1.1 2007/05/23 23:11:24 oliverschmidt Exp $ - * - */ - -#include - -#include "ctk/ctk.h" -#include "ctk/ctk-draw.h" -#include "ctk/ctk-mouse.h" -#include "contiki.h" -#include "sys/loader.h" - -PROCESS(ssfire_process, "Fire screensaver"); - -static unsigned char flames[8*17]; - - -static const unsigned char flamecolors[16] = - {COLOR_BLACK, COLOR_BLACK, COLOR_BLACK, COLOR_RED, - COLOR_LIGHTRED, COLOR_YELLOW, COLOR_WHITE, COLOR_WHITE, - COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, - COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE}; - - -/*---------------------------------------------------------------------------*/ -static void -fire_init(void) -{ - unsigned char *ptr, *cptr; - - /* Fill screen with inverted spaces. */ - cptr = COLOR_RAM; - for(ptr = (unsigned char *)0x0400; - ptr != (unsigned char *)0x07e8; - ++ptr) { - *ptr = 0xa0; - *cptr++ = 0x00; - } - - SID.v3.freq = 0xffff; - SID.v3.ctrl = 0x80; - SID.amp = 0; - - VIC.ctrl1 = 0x1b; /* $D011 */ - VIC.addr = 0x17; /* $D018 */ - VIC.ctrl2 = 0xc8; /* $D016 */ - VIC.bordercolor = 0x00; /* $D020 */ - VIC.bgcolor0 = 0x00; /* $D021 */ - CIA2.pra = 0x03; /* $DD00 */ -} -/*---------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -fire_burn(void) -{ - /* Calculate new flames. */ - asm("ldy #$00"); -loop1: - asm("lda %v+7,y", flames); - asm("clc"); - asm("adc %v+8,y", flames); - asm("adc %v+9,y", flames); - asm("adc %v+16,y", flames); - asm("lsr"); - asm("lsr"); - asm("sta %v,y", flames); - asm("iny"); - asm("cpy #(8*15)"); - asm("bne %g", loop1); - - /* Fill last line with pseudo-random data from noise generator on - voice 3. */ - asm("ldy #$05"); -loop2: - asm("ldx #$20"); -delay: - asm("dex"); - asm("bne %g", delay); - asm("lda $D41B"); - asm("and #$0F"); - asm("sta %v+8*15+1,y", flames); - asm("dey"); - asm("bpl %g", loop2); -} -#pragma optimize(pop) -/*---------------------------------------------------------------------------*/ -static unsigned char *flameptr, *colorptr1, *colorptr2; -static unsigned char x, y; - -static void -pollhandler(void) -{ - - if(ctk_mode_get() == CTK_MODE_SCREENSAVER) { - - fire_burn(); - - /* Display flames on screen. */ - flameptr = flames; - colorptr1 = COLOR_RAM + 40*10; - colorptr2 = colorptr1 + 0x20; - for(y = 0; y < 15; ++y) { - for(x = 0; x < 8; ++x) { - colorptr1[x] = colorptr2[x] = flamecolors[flameptr[x]]; - } - colorptr1 += 0x28; - colorptr2 += 0x28; - flameptr += 8; - } - } -} -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(ssfire_process, ev, data) -{ - PROCESS_POLLHANDLER(pollhandler()); - - PROCESS_BEGIN(); - - ctk_mode_set(CTK_MODE_SCREENSAVER); - ctk_mouse_hide(); - fire_init(); - - - PROCESS_WAIT_EVENT_UNTIL(ev == ctk_signal_screensaver_stop || - ev == PROCESS_EVENT_EXIT); - - ctk_draw_init(); - ctk_desktop_redraw(NULL); - - PROCESS_END(); -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/themeloader.c b/backyard/platform/c64/apps/themeloader.c deleted file mode 100644 index 68d60ea42..000000000 --- a/backyard/platform/c64/apps/themeloader.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: themeloader.c,v 1.1 2007/05/23 23:11:25 oliverschmidt Exp $ - * - */ - -#include - -#include "loader.h" -#include "ctk-draw.h" -#include "ctk-hires-theme.h" - -/*-----------------------------------------------------------------------------------*/ -LOADER_INIT_FUNC(themeloader_init, arg) -{ - arg_free(arg); - - memcpy(ctk_hires_theme_ptr, &ctk_hires_theme, - sizeof(struct ctk_hires_theme)); - ctk_draw_init(); - LOADER_UNLOAD(); -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/vnc-draw-asm.S b/backyard/platform/c64/apps/vnc-draw-asm.S deleted file mode 100644 index 7522a4335..000000000 --- a/backyard/platform/c64/apps/vnc-draw-asm.S +++ /dev/null @@ -1,16 +0,0 @@ - -;--------------------------------------------------------------------- - .importzp ptr1, ptr2, ptr3, ptr4, sreg - .importzp sp - - .import _vnc_draw_datalen - .import _vnc_draw_dataptr - .import _vnc_draw_bitmapptr - .import _vnc_draw_x - .import _vnc_draw_y -;--------------------------------------------------------------------- -.bss -;--------------------------------------------------------------------- -.data -;--------------------------------------------------------------------- -.code diff --git a/backyard/platform/c64/apps/vnc-draw-asm.h b/backyard/platform/c64/apps/vnc-draw-asm.h deleted file mode 100644 index 4c4d5a28b..000000000 --- a/backyard/platform/c64/apps/vnc-draw-asm.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki VNC client - * - * $Id: vnc-draw-asm.h,v 1.1 2007/05/23 23:11:26 oliverschmidt Exp $ - * - */ -#ifndef __VNC_DRAW_ASM_H__ -#define __VNC_DRAW_ASM_H__ - -#include "vnc-draw.h" - -void vnc_draw_asm_pixelline(void); - -#endif /* __VNC_DRAW_ASM_H__ */ diff --git a/backyard/platform/c64/apps/vnc-draw.c b/backyard/platform/c64/apps/vnc-draw.c deleted file mode 100644 index a7af00730..000000000 --- a/backyard/platform/c64/apps/vnc-draw.c +++ /dev/null @@ -1,689 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki VNC client - * - * $Id: vnc-draw.c,v 1.1 2007/05/23 23:11:26 oliverschmidt Exp $ - * - */ - - - -#include "vnc-draw.h" -#include "vnc-draw-asm.h" - -#include "vnc-conf.h" - - -static unsigned char conv[256]; - -static unsigned char oratab[8] = - { 0x80, 0x40, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x01 }; -static unsigned char andtab[8] = - { 0x7f, 0xbf, 0xdf, 0xef, - 0xf7, 0xfb, 0xfd, 0xfe }; - -static u8_t *bitmapptrtab[VNC_CONF_VIEWPORT_HEIGHT]; - -static unsigned short viewport_x, - viewport_y, viewport_w, viewport_h; - -u8_t vnc_draw_bitmap[(VNC_CONF_VIEWPORT_WIDTH / 8) * - VNC_CONF_VIEWPORT_HEIGHT]; - - - -u16_t vnc_draw_x; -u16_t vnc_draw_y; -u8_t *vnc_draw_dataptr; -u8_t *vnc_draw_bitmapptr; -u16_t vnc_draw_datalen; - -/*-----------------------------------------------------------------------------------*/ -void -vnc_draw_pixel(u16_t x, u8_t y, u8_t c) -{ - u8_t o, a; - - vnc_draw_bitmapptr = bitmapptrtab[y] + (x & 0x1f8); - - if(c) { - o = oratab[x & 7]; - *vnc_draw_bitmapptr = *vnc_draw_bitmapptr | o; - } else { - a = andtab[x & 7]; - *vnc_draw_bitmapptr = *vnc_draw_bitmapptr & a; - } -} -/*-----------------------------------------------------------------------------------*/ -void -vnc_draw_pixelline(u16_t x, u16_t y, u8_t *data, u16_t datalen) -{ - u8_t o, a; - register u8_t *bitmapptr; - - vnc_draw_x = x - viewport_x; - vnc_draw_y = y - viewport_y; - - /* if(vnc_draw_y & 1) { - return; - } else { - vnc_draw_y /= 2; - }*/ - - - - if(vnc_draw_y >= VNC_CONF_VIEWPORT_HEIGHT || - vnc_draw_x >= VNC_CONF_VIEWPORT_WIDTH) { - return; - } - - vnc_draw_datalen = datalen; - - if(vnc_draw_datalen + vnc_draw_x >= VNC_CONF_VIEWPORT_WIDTH) { - vnc_draw_datalen = VNC_CONF_VIEWPORT_WIDTH - vnc_draw_x; - if(vnc_draw_datalen == 0) { - return; - } - } - - vnc_draw_dataptr = data; - - /* vnc_draw_bitmapptr = bitmaptab[vnc_draw_y] + - (vnc_draw_x & 0x1f8);*/ - - for(; vnc_draw_datalen > 0; --vnc_draw_datalen) { - /* vnc_draw_pixel(vnc_draw_x, vnc_draw_y, - conv[*vnc_draw_dataptr]);*/ - - bitmapptr = bitmapptrtab[vnc_draw_y] + (vnc_draw_x & 0x1f8); - - if(conv[*vnc_draw_dataptr]) { - o = oratab[vnc_draw_x & 7]; - *bitmapptr = *bitmapptr | o; - } else { - a = andtab[vnc_draw_x & 7]; - *bitmapptr = *bitmapptr & a; - } - ++vnc_draw_dataptr; - ++vnc_draw_x; - } -} -/*-----------------------------------------------------------------------------------*/ -void -vnc_draw_init(void) -{ - unsigned int tmp; - unsigned int i; - unsigned short ptr; - - - /* Create color conversion table. */ - for(i = 0; i < 256; ++i) { - if(((i & 0xc0) > 0xc0) || - ((i & 0x38) > 0x18) || - ((i & 0x07) > 0x03)) { - conv[i] = 0; - } else { - conv[i] = 1; - } - } - - memset(vnc_draw_bitmap, 0, sizeof(vnc_draw_bitmap)); - - for(i = 0; i < VNC_CONF_VIEWPORT_HEIGHT; ++i) { - bitmapptrtab[i] = (u8_t *)((u16_t)vnc_draw_bitmap + - ((i & 0xfff8)/8) * VNC_CONF_VIEWPORT_WIDTH + - (i & 7)); - } - - viewport_x = 0; - viewport_y = 0; - - viewport_w = VNC_CONF_VIEWPORT_WIDTH; - viewport_h = VNC_CONF_VIEWPORT_HEIGHT; - - return; -} -/*-----------------------------------------------------------------------------------*/ -u16_t -vnc_draw_viewport_x(void) -{ - return viewport_x; -} -/*-----------------------------------------------------------------------------------*/ -u16_t -vnc_draw_viewport_y(void) -{ - return viewport_y; -} -/*-----------------------------------------------------------------------------------*/ -u16_t -vnc_draw_viewport_w(void) -{ - return viewport_w; -} -/*-----------------------------------------------------------------------------------*/ -u16_t -vnc_draw_viewport_h(void) -{ - return viewport_h; -} -/*-----------------------------------------------------------------------------------*/ -#if 0 -signed short -c64_mouse_x(void) -{ - return 0; -} -/*-----------------------------------------------------------------------------------*/ -signed short -c64_mouse_y(void) -{ - return 0; -} -/*-----------------------------------------------------------------------------------*/ -u8_t -c64_mouse_buttons(void) -{ - return firebutton; -} -/*-----------------------------------------------------------------------------------*/ -void -c64_set_mouse_x(unsigned short x) -{ - joyx = x; -} -/*-----------------------------------------------------------------------------------*/ -void -c64_set_mouse_y(unsigned short y) -{ - joyy = y; -} -/*-----------------------------------------------------------------------------------*/ -void -c64_set_viewport_x(unsigned short x) -{ - viewport_x = x; -} -/*-----------------------------------------------------------------------------------*/ -void -c64_set_viewport_y(unsigned short y) -{ - viewport_y = y; -} -/*-----------------------------------------------------------------------------------*/ - -#endif /* 0 */ -#if 0 -#pragma optimize(push, off) -void -c64_scroll_up(unsigned char c) -{ - asm("lda $f7"); - asm("pha"); - asm("lda $f8"); - asm("pha"); - asm("lda $f9"); - asm("pha"); - asm("lda $fa"); - asm("pha"); - asm("lda $fb"); - asm("pha"); - asm("lda $fc"); - asm("pha"); - asm("lda $fd"); - asm("pha"); - asm("lda $fe"); - asm("pha"); - - asm("lda $01"); - asm("pha"); - asm("lda #$35"); - asm("sta $01"); - - asm("lda #$80"); - asm("sta $f7"); - asm("lda #$a2"); - asm("sta $f8"); - asm("lda #$00"); - asm("sta $f9"); - asm("lda #$a0"); - asm("sta $fa"); - - asm("lda #$80"); - asm("sta $fb"); - asm("lda #$e2"); - asm("sta $fc"); - asm("lda #$00"); - asm("sta $fd"); - asm("lda #$e0"); - asm("sta $fe"); - - asm("ldy #0"); - asm("loop:"); - asm("lda ($f7),y"); - asm("sta ($f9),y"); - asm("lda ($fb),y"); - asm("sta ($fd),y"); - asm("iny"); - asm("bne loop"); - - asm("inc $f8"); - asm("inc $fa"); - asm("inc $fc"); - asm("inc $fe"); - - asm("lda $fc"); - asm("cmp #$00"); - asm("bne loop"); - - asm("ldy #0"); - asm("lda #0"); - asm("sta $fe00,y"); - asm("sta $be00,y"); - asm("sta $fcc0,y"); - asm("sta $bcc0,y"); - asm("iny"); - asm("bne *-13"); - asm("sta $ff00,y"); - asm("sta $bf00,y"); - asm("sta $fdc0,y"); - asm("sta $bdc0,y"); - asm("iny"); - asm("cpy #$40"); - asm("bne *-15"); - - - asm("pla"); - asm("sta $01"); - asm("pla"); - asm("sta $fe"); - asm("pla"); - asm("sta $fd"); - asm("pla"); - asm("sta $fc"); - asm("pla"); - asm("sta $fb"); - asm("pla"); - asm("sta $fa"); - asm("pla"); - asm("sta $f9"); - asm("pla"); - asm("sta $f8"); - asm("pla"); - asm("sta $f7"); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -c64_scroll_down(unsigned char c) -{ - asm("lda $f7"); - asm("pha"); - asm("lda $f8"); - asm("pha"); - asm("lda $f9"); - asm("pha"); - asm("lda $fa"); - asm("pha"); - asm("lda $fb"); - asm("pha"); - asm("lda $fc"); - asm("pha"); - asm("lda $fd"); - asm("pha"); - asm("lda $fe"); - asm("pha"); - - - asm("lda $01"); - asm("pha"); - asm("lda #$35"); - asm("sta $01"); - - asm("lda #$c0"); - asm("sta $fb"); - asm("lda #$fb"); - asm("sta $fc"); - asm("lda #$40"); - asm("sta $fd"); - asm("lda #$fe"); - asm("sta $fe"); - - asm("lda #$c0"); - asm("sta $f7"); - asm("lda #$bb"); - asm("sta $f8"); - asm("lda #$40"); - asm("sta $f9"); - asm("lda #$be"); - asm("sta $fa"); - - - asm("ldy #0"); - asm("loop:"); - asm("lda ($fb),y"); - asm("sta ($fd),y"); - asm("lda ($f7),y"); - asm("sta ($f9),y"); - asm("iny"); - asm("bne loop"); - - asm("dec $f8"); - asm("dec $fa"); - asm("dec $fc"); - asm("dec $fe"); - - - asm("lda $fe"); - asm("cmp #$df"); - asm("bne loop"); - - asm("ldy #0"); - asm("lda #0"); - asm("sta $e000,y"); - asm("sta $a000,y"); - asm("sta $e140,y"); - asm("sta $a140,y"); - asm("iny"); - asm("bne *-13"); - asm("sta $e100,y"); - asm("sta $a100,y"); - asm("sta $e240,y"); - asm("sta $a240,y"); - asm("iny"); - asm("cpy #$40"); - asm("bne *-15"); - - asm("pla"); - asm("sta $01"); - asm("pla"); - asm("sta $fe"); - asm("pla"); - asm("sta $fd"); - asm("pla"); - asm("sta $fc"); - asm("pla"); - asm("sta $fb"); - asm("pla"); - asm("sta $fa"); - asm("pla"); - asm("sta $f9"); - asm("pla"); - asm("sta $f8"); - asm("pla"); - asm("sta $f7"); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -c64_scroll_right(unsigned char c) -{ - asm("lda $f7"); - asm("pha"); - asm("lda $f8"); - asm("pha"); - asm("lda $f9"); - asm("pha"); - asm("lda $fa"); - asm("pha"); - asm("lda $fb"); - asm("pha"); - asm("lda $fc"); - asm("pha"); - asm("lda $fd"); - asm("pha"); - asm("lda $fe"); - asm("pha"); - - - asm("lda $01"); - asm("pha"); - asm("lda #$35"); - asm("sta $01"); - - asm("lda #$00"); - asm("sta $f7"); - asm("lda #$a0"); - asm("sta $f8"); - asm("lda #$10"); - asm("sta $f9"); - asm("lda #$a0"); - asm("sta $fa"); - - asm("lda #$00"); - asm("sta $fb"); - asm("lda #$e0"); - asm("sta $fc"); - asm("lda #$10"); - asm("sta $fd"); - asm("lda #$e0"); - asm("sta $fe"); - - asm("ldx #0"); - - asm("loop3:"); - - asm("ldy #$ff"); - asm("loop:"); - asm("lda ($f7),y"); - asm("sta ($f9),y"); - asm("lda ($fb),y"); - asm("sta ($fd),y"); - asm("dey"); - asm("cpy #$ff"); - asm("bne loop"); - - asm("inc $f8"); - asm("inc $fa"); - asm("inc $fc"); - asm("inc $fe"); - - asm("ldy #$30"); - asm("loop2:"); - asm("lda ($f7),y"); - asm("sta ($f9),y"); - asm("lda ($fb),y"); - asm("sta ($fd),y"); - asm("dey"); - asm("cpy #$ff"); - asm("bne loop2"); - - asm("lda $f7"); - asm("clc"); - asm("adc #$40"); - asm("sta $f7"); - asm("sta $fb"); - asm("bcc :+"); - asm("inc $f8"); - asm("inc $fc"); - asm(":"); - - asm("lda $f9"); - asm("clc"); - asm("adc #$40"); - asm("sta $f9"); - asm("sta $fd"); - asm("bcc :+"); - asm("inc $fa"); - asm("inc $fe"); - asm(":"); - - - - asm("inx"); - asm("cpx #24"); - asm("bne loop3"); - - asm("pla"); - asm("sta $01"); - asm("pla"); - asm("sta $fe"); - asm("pla"); - asm("sta $fd"); - asm("pla"); - asm("sta $fc"); - asm("pla"); - asm("sta $fb"); - asm("pla"); - asm("sta $fa"); - asm("pla"); - asm("sta $f9"); - asm("pla"); - asm("sta $f8"); - asm("pla"); - asm("sta $f7"); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -c64_scroll_left(unsigned char c) -{ - asm("lda $f7"); - asm("pha"); - asm("lda $f8"); - asm("pha"); - asm("lda $f9"); - asm("pha"); - asm("lda $fa"); - asm("pha"); - asm("lda $fb"); - asm("pha"); - asm("lda $fc"); - asm("pha"); - asm("lda $fd"); - asm("pha"); - asm("lda $fe"); - asm("pha"); - - - asm("lda $01"); - asm("pha"); - asm("lda #$35"); - asm("sta $01"); - - asm("lda #$10"); - asm("sta $f7"); - asm("lda #$a0"); - asm("sta $f8"); - asm("lda #$00"); - asm("sta $f9"); - asm("lda #$a0"); - asm("sta $fa"); - - asm("lda #$10"); - asm("sta $fb"); - asm("lda #$e0"); - asm("sta $fc"); - asm("lda #$00"); - asm("sta $fd"); - asm("lda #$e0"); - asm("sta $fe"); - - asm("ldx #0"); - asm("loop3:"); - asm("ldy #0"); - asm("loop:"); - asm("lda ($f7),y"); - asm("sta ($f9),y"); - asm("lda ($fb),y"); - asm("sta ($fd),y"); - asm("iny"); - asm("bne loop"); - - asm("inc $f8"); - asm("inc $fa"); - asm("inc $fc"); - asm("inc $fe"); - - asm("ldy #0"); - asm("loop2:"); - asm("lda ($f7),y"); - asm("sta ($f9),y"); - asm("lda ($fb),y"); - asm("sta ($fd),y"); - asm("iny"); - asm("cpy #$30"); - asm("bne loop2"); - - asm("lda $f7"); - asm("clc"); - asm("adc #$40"); - asm("sta $f7"); - asm("sta $fb"); - asm("bcc :+"); - asm("inc $f8"); - asm("inc $fc"); - asm(":"); - - asm("lda $f9"); - asm("clc"); - asm("adc #$40"); - asm("sta $f9"); - asm("sta $fd"); - asm("bcc :+"); - asm("inc $fa"); - asm("inc $fe"); - asm(":"); - - - asm("inx"); - asm("cpx #24"); - asm("bne loop3"); - - asm("pla"); - asm("sta $01"); - asm("pla"); - asm("sta $fe"); - asm("pla"); - asm("sta $fd"); - asm("pla"); - asm("sta $fc"); - asm("pla"); - asm("sta $fb"); - asm("pla"); - asm("sta $fa"); - asm("pla"); - asm("sta $f9"); - asm("pla"); - asm("sta $f8"); - asm("pla"); - asm("sta $f7"); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ - - - -#endif /* 0 */ diff --git a/backyard/platform/c64/apps/warmboot.c b/backyard/platform/c64/apps/warmboot.c deleted file mode 100644 index 10845b087..000000000 --- a/backyard/platform/c64/apps/warmboot.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: warmboot.c,v 1.1 2007/05/23 23:11:26 oliverschmidt Exp $ - */ - -#include "contiki.h" - -#pragma optimize(push, off) - -LOADER_INIT_FUNC(warmboot_init, arg) -{ - - arg_free(arg); - - asm("jsr $fda3"); - asm("jsr $fd15"); - asm("jsr $ff5b"); - asm("ldx #$f8"); - asm("txs"); - asm("cli"); - asm("jmp 2061"); - -} -#pragma optimize(push, on) diff --git a/backyard/platform/c64/apps/welcome.c b/backyard/platform/c64/apps/welcome.c deleted file mode 100644 index 5c097f4dd..000000000 --- a/backyard/platform/c64/apps/welcome.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: welcome.c,v 1.1 2007/05/23 23:11:26 oliverschmidt Exp $ - * - */ - -#include "contiki.h" -#include "ctk/ctk.h" -#include - - -static struct ctk_window welcomedialog; -static struct ctk_label welcomelabel1 = - {CTK_LABEL(1, 1, 30, 1, "Welcome to " CONTIKI_VERSION_STRING "!")}; -static struct ctk_label welcomelabel2 = - {CTK_LABEL(2, 4, 28, 1, "F1 - open menus")}; -static struct ctk_label welcomelabel3 = - {CTK_LABEL(2, 6, 28, 1, "F3 - cycle windows")}; -static struct ctk_label welcomelabel4 = - {CTK_LABEL(2, 8, 28, 1, "F5 - select up")}; -static struct ctk_label welcomelabel5 = - {CTK_LABEL(2, 10, 28, 1, "F7 - select down")}; -static struct ctk_label welcomelabel6 = - {CTK_LABEL(2, 12, 28, 1, "Return - activate selected")}; -static struct ctk_label welcomelabel7 = - {CTK_LABEL(3, 15, 25, 1, "Press any key to continue")}; - - -PROCESS(welcome_process, "Welcome"); -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(welcome_process, ev, data) -{ - unsigned char width; - - PROCESS_BEGIN(); - - width = ctk_desktop_width(NULL); - - if(width > 34) { - ctk_dialog_new(&welcomedialog, 32, 17); - } else { - ctk_dialog_new(&welcomedialog, width - 2, 17); - } - CTK_WIDGET_ADD(&welcomedialog, &welcomelabel1); - CTK_WIDGET_ADD(&welcomedialog, &welcomelabel2); - CTK_WIDGET_ADD(&welcomedialog, &welcomelabel3); - CTK_WIDGET_ADD(&welcomedialog, &welcomelabel4); - CTK_WIDGET_ADD(&welcomedialog, &welcomelabel5); - CTK_WIDGET_ADD(&welcomedialog, &welcomelabel6); - CTK_WIDGET_ADD(&welcomedialog, &welcomelabel7); - - ctk_dialog_open(&welcomedialog); - - PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_EXIT || - ev == ctk_signal_keypress); - ctk_dialog_close(); - PROCESS_END(); -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/wget-dsc.c b/backyard/platform/c64/apps/wget-dsc.c deleted file mode 100644 index 31af4d0d2..000000000 --- a/backyard/platform/c64/apps/wget-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: wget-dsc.c,v 1.2 2007/09/06 01:36:11 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char wgeticon_bitmap[3*3*8] = { - 0x00, 0x7e, 0x40, 0x73, 0x46, 0x4c, 0x18, 0x13, - 0x00, 0x00, 0xff, 0x81, 0x34, 0xc9, 0x00, 0xb6, - 0x00, 0x7e, 0x02, 0xce, 0x72, 0x32, 0x18, 0x48, - - 0x30, 0x27, 0x24, 0x20, 0x37, 0x24, 0x20, 0x33, - 0x00, 0x7b, 0x42, 0x00, 0x7b, 0x42, 0x00, 0x3b, - 0x0c, 0x24, 0x24, 0x04, 0xa4, 0x24, 0x04, 0x4c, - - 0x12, 0x19, 0x4c, 0x46, 0x63, 0x40, 0x7c, 0x00, - 0x22, 0x91, 0x00, 0xc4, 0x81, 0xff, 0x00, 0x00, - 0x08, 0x18, 0x32, 0x62, 0xc6, 0x02, 0x3e, 0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char wgeticon_textmap[9] = { - 'w', 'e', 'b', - 'p', 'r', 'g', - 'd', '6', '4' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon wget_icon = - {CTK_ICON("Web downloader", wgeticon_bitmap, wgeticon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(wget_dsc, - "Downloads files or D64 disks from the web", - "wget.prg", - wget_init, - &wget_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/apps/wget-dsc.h b/backyard/platform/c64/apps/wget-dsc.h deleted file mode 100644 index 23f1a2c3d..000000000 --- a/backyard/platform/c64/apps/wget-dsc.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: wget-dsc.h,v 1.1 2007/05/23 23:11:26 oliverschmidt Exp $ - * - */ -#ifndef __WGET_DSC_H__ -#define __WGET_DSC_H__ - -#include "sys/dsc.h" - -DSC_HEADER(wget_dsc); - -#endif /* __WGET_DSC_H__ */ diff --git a/backyard/platform/c64/apps/wget.c b/backyard/platform/c64/apps/wget.c deleted file mode 100644 index c915b7873..000000000 --- a/backyard/platform/c64/apps/wget.c +++ /dev/null @@ -1,528 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: wget.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - - -#include "ctk/ctk.h" -#include "contiki-net.h" -#include "webclient.h" -#include "lib/petsciiconv.h" - -#include "program-handler.h" - -#include -#include -#include -#include -#include - -#include "c64-dio.h" - -#define USE_KERNAL 0 - -static struct ctk_window window; - -static struct ctk_label urllabel = - {CTK_LABEL(0, 1, 4, 1, "URL:")}; -static char url[80]; -static char urledit[80]; -struct ctk_textentry urltextentry = - {CTK_TEXTENTRY(5, 1, 29, 1, urledit, 78)}; - - -static struct ctk_label savefilenamelabel = - {CTK_LABEL(0, 3, 14, 1, "Save filename:")}; -static char savefilename[40]; -static struct ctk_textentry savefilenametextentry = - {CTK_TEXTENTRY(15, 3, 19, 1, savefilename, 38)}; - -static struct ctk_button filebutton = - {CTK_BUTTON(0, 5, 13, "Download file")}; - -static struct ctk_button d64button = - {CTK_BUTTON(17, 5, 18, "Download D64 disk")}; - -static struct ctk_label statustext = - {CTK_LABEL(0, 7, 36, 1, "")}; -static char statusmsg[40]; - -static struct ctk_window d64dialog; -static struct ctk_label overwritelabel = - {CTK_LABEL(0, 1, 36, 1, "This will overwrite the entire disk!")}; -static struct ctk_label makesurelabel1 = - {CTK_LABEL(7, 3, 22, 1, "Make sure you have the")}; -static struct ctk_label makesurelabel2 = - {CTK_LABEL(6, 4, 24, 1, "right disk in the drive!")}; -static struct ctk_button overwritebutton = - {CTK_BUTTON(2, 6, 14, "Overwrite disk")}; -static struct ctk_button cancelbutton = - {CTK_BUTTON(26, 6, 6, "Cancel")}; - -PROCESS(wget_process, "Web downloader"); -/* State */ - -#define DLOAD_NONE 0 -#define DLOAD_FILE 1 -#define DLOAD_D64 2 -static u8_t dload_state; -static unsigned long dload_bytes; - - - -struct drv_state { - u8_t track; - u8_t sect; -}; - -static struct drv_state ds; - -static char buffer[256]; -static u16_t bufferptr; - -/*-----------------------------------------------------------------------------------*/ -static void -show_statustext(char *text) -{ - ctk_label_set_text(&statustext, text); - CTK_WIDGET_REDRAW(&statustext); -} -/*-----------------------------------------------------------------------------------*/ -/* open_url(): - * - * Called when the URL present in the global "url" variable should be - * opened. It will call the hostname resolver as well as the HTTP - * client requester. - */ -static void -start_get(void) -{ - u16_t addr[2]; - unsigned char i; - static char host[32]; - char *file; - register char *urlptr; - unsigned short port; - - /* Trim off any spaces in the end of the url. */ - urlptr = url + strlen(url) - 1; - while(*urlptr == ' ' && urlptr > url) { - *urlptr = 0; - --urlptr; - } - - /* Don't even try to go further if the URL is empty. */ - if(urlptr == url) { - return; - } - - /* See if the URL starts with http://, otherwise prepend it. */ - if(strncmp(url, http_http, 7) != 0) { - while(urlptr >= url) { - *(urlptr + 7) = *urlptr; - --urlptr; - } - strncpy(url, http_http, 7); - } - - /* Find host part of the URL. */ - urlptr = &url[7]; - for(i = 0; i < sizeof(host); ++i) { - if(*urlptr == 0 || - *urlptr == '/' || - *urlptr == ' ' || - *urlptr == ':') { - host[i] = 0; - break; - } - host[i] = *urlptr; - ++urlptr; - } - - /* XXX: Here we should find the port part of the URL, but this isn't - currently done because of laziness from the programmer's side - :-) */ - - /* Find file part of the URL. */ - while(*urlptr != '/' && *urlptr != 0) { - ++urlptr; - } - if(*urlptr == '/') { - file = urlptr; - } else { - file = "/"; - } - - - /* First check if the host is an IP address. */ - if(uiplib_ipaddrconv(host, (unsigned char *)addr) == 0) { - - /* Try to lookup the hostname. If it fails, we initiate a hostname - lookup and print out an informative message on the - statusbar. */ - if(resolv_lookup(host) == NULL) { - resolv_query(host); - show_statustext("Resolving host..."); - return; - } - } - - /* The hostname we present in the hostname table, so we send out the - initial GET request. */ - if(webclient_get(host, 80, file) == 0) { - show_statustext("Out of memory error."); - } else { - show_statustext("Connecting..."); - } -} -/*-----------------------------------------------------------------------------------*/ -PROCESS_THREAD(wget_process, ev, data) -{ - int ret; - static unsigned char i; - - - - - PROCESS_BEGIN(); - - if(data != NULL) { - strncpy(url, data, sizeof(url)); - strncpy(urledit, data, sizeof(urledit)); - petsciiconv_topetscii(urledit, sizeof(urledit)); - arg_free(data); - } else { -#ifdef WGET_CONF_URL - strncpy(url, WGET_CONF_URL, sizeof(url)); - strncpy(urledit, WGET_CONF_URL, sizeof(urledit)); -#endif /* WGET_CONF_URL */ - } - - - /* Create the main window. */ - ctk_window_new(&window, 36, 8, "Web downloader"); - - - CTK_WIDGET_ADD(&window, &urllabel); - CTK_WIDGET_ADD(&window, &urltextentry); - - CTK_WIDGET_ADD(&window, &savefilenamelabel); - CTK_WIDGET_ADD(&window, &savefilenametextentry); - - /* CTK_WIDGET_ADD(&window, &filebutton);*/ - - CTK_WIDGET_ADD(&window, &d64button); - - CTK_WIDGET_ADD(&window, &statustext); - - dload_state = DLOAD_NONE; - - memset(savefilename, 0, sizeof(savefilename)); - memset(url, 0, sizeof(url)); - - ctk_dialog_new(&d64dialog, 36, 8); - CTK_WIDGET_ADD(&d64dialog, &overwritelabel); - CTK_WIDGET_ADD(&d64dialog, &makesurelabel1); - CTK_WIDGET_ADD(&d64dialog, &makesurelabel2); - CTK_WIDGET_ADD(&d64dialog, &overwritebutton); - CTK_WIDGET_ADD(&d64dialog, &cancelbutton); - - - ctk_window_open(&window); - - while(1) { - - PROCESS_WAIT_EVENT(); - - if(ev == tcpip_event) { - webclient_appcall(data); - } else if(ev == ctk_signal_button_activate) { - if(data == (void *)&filebutton) { - /* ret = cbm_open(2, 8, 2, savefilename); - if(ret == -1) {*/ - sprintf(statusmsg, "Open error with '%s'", savefilename); - show_statustext(statusmsg); - /* } else { - strncpy(url, urledit, sizeof(url)); - petsciiconv_toascii(url, sizeof(url)); - start_get(); - dload_bytes = 0; - dload_state = DLOAD_FILE; - }*/ - } else if(data == (void *)&d64button) { - ctk_dialog_open(&d64dialog); - } else if(data == (void *)&cancelbutton) { - ctk_dialog_close(); - } else if(data == (void *)&overwritebutton) { - ctk_dialog_close(); - - /* Turn of screensaver. */ - program_handler_setscreensaver(NULL); - - strncpy(url, urledit, sizeof(url)); - petsciiconv_toascii(url, sizeof(url)); - start_get(); - dload_bytes = 0; - dload_state = DLOAD_D64; - ds.track = 1; - ds.sect = 0; - bufferptr = 0; -#if USE_KERNAL -#else - c64_dio_init(_curunit); -#endif - - /* c64_dio_init(8);*/ - } - } else if(ev == ctk_signal_hyperlink_activate) { - if(dload_state == DLOAD_NONE) { - /* open_link(w->widget.hyperlink.url);*/ - strncpy(urledit, - ((struct ctk_widget *)data)->widget.hyperlink.url, sizeof(urledit)); - petsciiconv_topetscii(urledit, sizeof(urledit)); - CTK_WIDGET_REDRAW(&urltextentry); - CTK_WIDGET_FOCUS(&window, &urltextentry); - } - } else if(ev == resolv_event_found) { - /* Either found a hostname, or not. */ - if((char *)data != NULL && - resolv_lookup((char *)data) != NULL) { - start_get(); - } else { - show_statustext("Host not found."); - } - } else if(ev == ctk_signal_window_close) { - break; - } - } - - PROCESS_END(); -} -/*-----------------------------------------------------------------------------------*/ -/* webclient_aborted(): - * - * Callback function. Called from the webclient when the HTTP - * connection was abruptly aborted. - */ -void -webclient_aborted(void) -{ - show_statustext("Connection reset by peer"); -} -/*-----------------------------------------------------------------------------------*/ -/* webclient_timedout(): - * - * Callback function. Called from the webclient when the HTTP - * connection timed out. - */ -void -webclient_timedout(void) -{ - show_statustext("Connection timed out"); - if(dload_state == DLOAD_FILE) { - cbm_close(2); - } - -} -/*-----------------------------------------------------------------------------------*/ -/* webclient_closed(): - * - * Callback function. Called from the webclient when the HTTP - * connection was closed after a request from the "webclient_close()" - * function. . - */ -void -webclient_closed(void) -{ - show_statustext("Done."); -} -/*-----------------------------------------------------------------------------------*/ -/* webclient_closed(): - * - * Callback function. Called from the webclient when the HTTP - * connection is connected. - */ -void -webclient_connected(void) -{ - show_statustext("Request sent..."); -} -/*-----------------------------------------------------------------------------------*/ -static u8_t -next_sector(void) -{ - ++ds.sect; - if(ds.track < 18) { - if(ds.sect == 21) { - ++ds.track; - ds.sect = 0; - } - } else if(ds.track < 25) { - if(ds.sect == 19) { - ++ds.track; - ds.sect = 0; - } - } else if(ds.track < 31) { - if(ds.sect == 18) { - ++ds.track; - ds.sect = 0; - } - } else if(ds.track < 36) { - if(ds.sect == 17) { - ++ds.track; - ds.sect = 0; - } - } - - if(ds.track == 36) { - return 1; - } - return 0; -} -/*-----------------------------------------------------------------------------------*/ -static void -x_open(u8_t f, u8_t d, u8_t cmd, u8_t *fname) -{ - u8_t ret; - - ret = cbm_open(f, d, cmd, fname); - if(ret != 0) { - /* printf("open: error %d\n", ret);*/ - /* ctk_label_set_text(&statuslabel, "Open err"); - CTK_WIDGET_REDRAW(&statuslabel);*/ - show_statustext("Open error"); - } - -} -static void -write_sector(u8_t device, u8_t track, u8_t sect, void *mem) -{ - u16_t ret; - static u8_t cmd[32]; - - x_open(15, device, 15, NULL); - x_open(2, device, 2, "#"); - - ret = cbm_write(2, mem, 256); - - sprintf(cmd, "u2: 2 0 %d %d", track, sect); - cbm_write(15, cmd, strlen(cmd)); - /* printf("%s\n", cmd);*/ - - - /* ret = 0;*/ - if(ret == -1) { - sprintf(statusmsg, "Write error at %d:%d", track, sect); - show_statustext(statusmsg); - } else { - sprintf(statusmsg, "Wrote %d bytes to %d:%d", ret, track, sect); - show_statustext(statusmsg); - } - /* printf("write: wrote %d bytes\n", ret);*/ - - cbm_close(2); - cbm_close(15); -} - -static void -write_buffer(void) -{ -#if USE_KERNAL - write_sector(8, ds.track, ds.sect, buffer); -#else - c64_dio_write_block(ds.track, ds.sect, buffer); -#endif - if(next_sector() != 0) { - dload_state = DLOAD_NONE; - } -} -static void -handle_d64_data(char *data, u16_t len) -{ - u16_t bufferlen; - - while(dload_state == DLOAD_D64 && - len > 0) { - bufferlen = sizeof(buffer) - bufferptr; - if(len < bufferlen) { - bufferlen = len; - } - - memcpy(&buffer[bufferptr], data, bufferlen); - - data += bufferlen; - bufferptr += bufferlen; - len -= bufferlen; - - if(bufferptr == sizeof(buffer)) { - write_buffer(); - bufferptr = 0; - } - } -} -/*-----------------------------------------------------------------------------------*/ -/* webclient_datahandler(): - * - * Callback function. Called from the webclient module when HTTP data - * has arrived. - */ -void -webclient_datahandler(char *data, u16_t len) -{ - int ret; - - if(len > 0) { - dload_bytes += len; - sprintf(statusmsg, "Downloading (%lu bytes)", dload_bytes); - show_statustext(statusmsg); - if(dload_state == DLOAD_D64) { - handle_d64_data(data, len); - } else if(dload_state == DLOAD_FILE) { - ret = cbm_write(2, data, len); - if(ret != len) { - sprintf(statusmsg, "Wrote only %d bytes", ret); - show_statustext(statusmsg); - } - } - } - - if(data == NULL) { - if(dload_state == DLOAD_FILE) { - cbm_close(2); - } - dload_state = DLOAD_NONE; - sprintf(statusmsg, "Finished downloading %lu bytes", dload_bytes); - show_statustext(statusmsg); - } -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/c64.cfg b/backyard/platform/c64/c64.cfg deleted file mode 100644 index 76efb178a..000000000 --- a/backyard/platform/c64/c64.cfg +++ /dev/null @@ -1,30 +0,0 @@ -MEMORY { - ZP: start = $02, size = $1A, type = rw, define = yes; - RAM: start = $7FF, size = $c801, define = yes, file = %O; -} -SEGMENTS { - STARTUP: load = RAM, type = ro; - INIT: load = RAM, type = ro; - CODE: load = RAM, type = ro; - RODATA: load = RAM, type = ro; - DATA: load = RAM, type = rw; - BSS: load = RAM, type = bss, define = yes; - ZEROPAGE: load = ZP, type = zp; -} -FEATURES { - CONDES: segment = RODATA, - type = constructor, - label = __CONSTRUCTOR_TABLE__, - count = __CONSTRUCTOR_COUNT__; - CONDES: segment = RODATA, - type = destructor, - label = __DESTRUCTOR_TABLE__, - count = __DESTRUCTOR_COUNT__; - CONDES: segment = RODATA, - type = interruptor, - label = __INTERRUPTOR_TABLE__, - count = __INTERRUPTOR_COUNT__; -} -SYMBOLS { - __STACKSIZE__ = $100; -} diff --git a/backyard/platform/c64/contiki-conf.h b/backyard/platform/c64/contiki-conf.h deleted file mode 100644 index 2f485d889..000000000 --- a/backyard/platform/c64/contiki-conf.h +++ /dev/null @@ -1,611 +0,0 @@ -#ifndef __CONTIKI_CONF_H__ -#define __CONTIKI_CONF_H__ - -#define LC_CONF_INCLUDE "lib/lc-cc65.h" - -/*#pragma charmap(0, 0); -#pragma charmap(1, 1); -#pragma charmap(2, 2); -#pragma charmap(3, 3); -#pragma charmap(4, 4); -#pragma charmap(5, 5); -#pragma charmap(6, 6); -#pragma charmap(7, 7); -#pragma charmap(8, 8); -#pragma charmap(9, 9); -#pragma charmap(10, 10); -#pragma charmap(11, 11); -#pragma charmap(12, 12); -#pragma charmap(13, 13); -#pragma charmap(14, 14); -#pragma charmap(15, 15); -#pragma charmap(16, 16); -#pragma charmap(17, 17); -#pragma charmap(18, 18); -#pragma charmap(19, 19); -#pragma charmap(20, 20); -#pragma charmap(21, 21); -#pragma charmap(22, 22); -#pragma charmap(23, 23); -#pragma charmap(24, 24); -#pragma charmap(25, 25); -#pragma charmap(26, 26); -#pragma charmap(27, 27); -#pragma charmap(28, 28); -#pragma charmap(29, 29); -#pragma charmap(30, 30); -#pragma charmap(31, 31); -#pragma charmap(32, 32); -#pragma charmap(33, 33); -#pragma charmap(34, 34); -#pragma charmap(35, 35); -#pragma charmap(36, 36); -#pragma charmap(37, 37); -#pragma charmap(38, 38); -#pragma charmap(39, 39); -#pragma charmap(40, 40); -#pragma charmap(41, 41); -#pragma charmap(42, 42); -#pragma charmap(43, 43); -#pragma charmap(44, 44); -#pragma charmap(45, 45); -#pragma charmap(46, 46); -#pragma charmap(47, 47); -#pragma charmap(48, 48); -#pragma charmap(49, 49); -#pragma charmap(50, 50); -#pragma charmap(51, 51); -#pragma charmap(52, 52); -#pragma charmap(53, 53); -#pragma charmap(54, 54); -#pragma charmap(55, 55); -#pragma charmap(56, 56); -#pragma charmap(57, 57); -#pragma charmap(58, 58); -#pragma charmap(59, 59); -#pragma charmap(60, 60); -#pragma charmap(61, 61); -#pragma charmap(62, 62); -#pragma charmap(63, 63); -#pragma charmap(64, 64); -#pragma charmap(65, 65); -#pragma charmap(66, 66); -#pragma charmap(67, 67); -#pragma charmap(68, 68); -#pragma charmap(69, 69); -#pragma charmap(70, 70); -#pragma charmap(71, 71); -#pragma charmap(72, 72); -#pragma charmap(73, 73); -#pragma charmap(74, 74); -#pragma charmap(75, 75); -#pragma charmap(76, 76); -#pragma charmap(77, 77); -#pragma charmap(78, 78); -#pragma charmap(79, 79); -#pragma charmap(80, 80); -#pragma charmap(81, 81); -#pragma charmap(82, 82); -#pragma charmap(83, 83); -#pragma charmap(84, 84); -#pragma charmap(85, 85); -#pragma charmap(86, 86); -#pragma charmap(87, 87); -#pragma charmap(88, 88); -#pragma charmap(89, 89); -#pragma charmap(90, 90); -#pragma charmap(91, 91); -#pragma charmap(92, 92); -#pragma charmap(93, 93); -#pragma charmap(94, 94); -#pragma charmap(95, 95); -#pragma charmap(96, 96); -#pragma charmap(97, 97); -#pragma charmap(98, 98); -#pragma charmap(99, 99); -#pragma charmap(100, 100); -#pragma charmap(101, 101); -#pragma charmap(102, 102); -#pragma charmap(103, 103); -#pragma charmap(104, 104); -#pragma charmap(105, 105); -#pragma charmap(106, 106); -#pragma charmap(107, 107); -#pragma charmap(108, 108); -#pragma charmap(109, 109); -#pragma charmap(110, 110); -#pragma charmap(111, 111); -#pragma charmap(112, 112); -#pragma charmap(113, 113); -#pragma charmap(114, 114); -#pragma charmap(115, 115); -#pragma charmap(116, 116); -#pragma charmap(117, 117); -#pragma charmap(118, 118); -#pragma charmap(119, 119); -#pragma charmap(120, 120); -#pragma charmap(121, 121); -#pragma charmap(122, 122); -#pragma charmap(123, 123); -#pragma charmap(124, 124); -#pragma charmap(125, 125); -#pragma charmap(126, 126); -#pragma charmap(127, 127); -#pragma charmap(128, 128); -#pragma charmap(129, 129); -#pragma charmap(130, 130); -#pragma charmap(131, 131); -#pragma charmap(132, 132); -#pragma charmap(133, 133); -#pragma charmap(134, 134); -#pragma charmap(135, 135); -#pragma charmap(136, 136); -#pragma charmap(137, 137); -#pragma charmap(138, 138); -#pragma charmap(139, 139); -#pragma charmap(140, 140); -#pragma charmap(141, 141); -#pragma charmap(142, 142); -#pragma charmap(143, 143); -#pragma charmap(144, 144); -#pragma charmap(145, 145); -#pragma charmap(146, 146); -#pragma charmap(147, 147); -#pragma charmap(148, 148); -#pragma charmap(149, 149); -#pragma charmap(150, 150); -#pragma charmap(151, 151); -#pragma charmap(152, 152); -#pragma charmap(153, 153); -#pragma charmap(154, 154); -#pragma charmap(155, 155); -#pragma charmap(156, 156); -#pragma charmap(157, 157); -#pragma charmap(158, 158); -#pragma charmap(159, 159); -#pragma charmap(160, 160); -#pragma charmap(161, 161); -#pragma charmap(162, 162); -#pragma charmap(163, 163); -#pragma charmap(164, 164); -#pragma charmap(165, 165); -#pragma charmap(166, 166); -#pragma charmap(167, 167); -#pragma charmap(168, 168); -#pragma charmap(169, 169); -#pragma charmap(170, 170); -#pragma charmap(171, 171); -#pragma charmap(172, 172); -#pragma charmap(173, 173); -#pragma charmap(174, 174); -#pragma charmap(175, 175); -#pragma charmap(176, 176); -#pragma charmap(177, 177); -#pragma charmap(178, 178); -#pragma charmap(179, 179); -#pragma charmap(180, 180); -#pragma charmap(181, 181); -#pragma charmap(182, 182); -#pragma charmap(183, 183); -#pragma charmap(184, 184); -#pragma charmap(185, 185); -#pragma charmap(186, 186); -#pragma charmap(187, 187); -#pragma charmap(188, 188); -#pragma charmap(189, 189); -#pragma charmap(190, 190); -#pragma charmap(191, 191); -#pragma charmap(192, 192); -#pragma charmap(193, 193); -#pragma charmap(194, 194); -#pragma charmap(195, 195); -#pragma charmap(196, 196); -#pragma charmap(197, 197); -#pragma charmap(198, 198); -#pragma charmap(199, 199); -#pragma charmap(200, 200); -#pragma charmap(201, 201); -#pragma charmap(202, 202); -#pragma charmap(203, 203); -#pragma charmap(204, 204); -#pragma charmap(205, 205); -#pragma charmap(206, 206); -#pragma charmap(207, 207); -#pragma charmap(208, 208); -#pragma charmap(209, 209); -#pragma charmap(210, 210); -#pragma charmap(211, 211); -#pragma charmap(212, 212); -#pragma charmap(213, 213); -#pragma charmap(214, 214); -#pragma charmap(215, 215); -#pragma charmap(216, 216); -#pragma charmap(217, 217); -#pragma charmap(218, 218); -#pragma charmap(219, 219); -#pragma charmap(220, 220); -#pragma charmap(221, 221); -#pragma charmap(222, 222); -#pragma charmap(223, 223); -#pragma charmap(224, 224); -#pragma charmap(225, 225); -#pragma charmap(226, 226); -#pragma charmap(227, 227); -#pragma charmap(228, 228); -#pragma charmap(229, 229); -#pragma charmap(230, 230); -#pragma charmap(231, 231); -#pragma charmap(232, 232); -#pragma charmap(233, 233); -#pragma charmap(234, 234); -#pragma charmap(235, 235); -#pragma charmap(236, 236); -#pragma charmap(237, 237); -#pragma charmap(238, 238); -#pragma charmap(239, 239); -#pragma charmap(240, 240); -#pragma charmap(241, 241); -#pragma charmap(242, 242); -#pragma charmap(243, 243); -#pragma charmap(244, 244); -#pragma charmap(245, 245); -#pragma charmap(246, 246); -#pragma charmap(247, 247); -#pragma charmap(248, 248); -#pragma charmap(249, 249); -#pragma charmap(250, 250); -#pragma charmap(251, 251); -#pragma charmap(252, 252); -#pragma charmap(253, 253); -#pragma charmap(254, 254); -#pragma charmap(255, 255);*/ - -/* C compiler configuration. */ - -#define CC_CONF_REGISTER_ARGS 1 -#define CC_CONF_FUNCTION_POINTER_ARGS 1 - -#define CC_CONF_FASTCALL fastcall - -/* Interface configuration. */ - -#define CCIF -#define CLIF - -/* Clock configuration. */ - -#include - -typedef unsigned short clock_time_t; - -#define CLOCK_CONF_SECOND CLK_TCK - - -/* - * CTK GUI toolkit configuration. - */ - -#include "ctk-arch.h" - -/* Defines which key that is to be used for activating the menus */ -#define CTK_CONF_MENU_KEY CH_F1 - -/* Defines which key that is to be used for switching the frontmost - window. */ -#define CTK_CONF_WINDOWSWITCH_KEY CH_F3 - -/* Defines which key that is to be used for switching to the prevoius - widget. */ -#define CTK_CONF_WIDGETUP_KEY CH_F5 - -/* Defines which key that is to be used for switching to the next - widget. */ -#define CTK_CONF_WIDGETDOWN_KEY CH_F7 - -/* Toggles mouse support (must have support functions in the -architecture specific files to work). */ -#define CTK_CONF_MOUSE_SUPPORT 0 - -/* Toggles support for icons. */ -#define CTK_CONF_ICONS 1 - -/* Toggles support for icon bitmaps. */ -#define CTK_CONF_ICON_BITMAPS 1 - -/* Toggles support for icon textmaps. */ -#define CTK_CONF_ICON_TEXTMAPS 1 - -/* Toggles support for movable windows. */ -#define CTK_CONF_WINDOWMOVE 1 - -/* Toggles support for closable windows. */ -#define CTK_CONF_WINDOWCLOSE 1 - -/* Toggles support for menus. */ -#define CTK_CONF_MENUS 1 - -/* Defines the default width of a menu. */ -#define CTK_CONF_MENUWIDTH 16 -/* The maximum number of menu items in each menu. */ -#define CTK_CONF_MAXMENUITEMS 10 - -/* Toggles support for screen savers. */ -#define CTK_CONF_SCREENSAVER 1 - -/* - * CTK conio configuration. - */ - -#if 0 -/* Light gray inverted color scheme: */ -#define BORDERCOLOR COLOR_WHITE -#define SCREENCOLOR COLOR_WHITE -#define BACKGROUNDCOLOR COLOR_WHITE - -#define WINDOWCOLOR_FOCUS COLOR_BLACK -#define WINDOWCOLOR COLOR_GRAY2 - -#define DIALOGCOLOR COLOR_RED - -#define WIDGETCOLOR_HLINK COLOR_BLUE -#define WIDGETCOLOR_FWIN COLOR_BLACK -#define WIDGETCOLOR COLOR_GRAY1 -#define WIDGETCOLOR_DIALOG COLOR_RED -#define WIDGETCOLOR_FOCUS COLOR_BLACK - -#define MENUCOLOR COLOR_BLACK -#define OPENMENUCOLOR COLOR_BLACK -#define ACTIVEMENUITEMCOLOR COLOR_BLACK -#endif /* 0 */ - -#if 0 -/* Blue color scheme: */ -#define BORDERCOLOR COLOR_LIGHTBLUE -#define SCREENCOLOR COLOR_BLUE -#define BACKGROUNDCOLOR COLOR_BLUE - -#define WINDOWCOLOR_FOCUS COLOR_LIGHTBLUE -#define WINDOWCOLOR COLOR_GRAY1 - -#define DIALOGCOLOR COLOR_WHITE - -#define WIDGETCOLOR_HLINK COLOR_CYAN -#define WIDGETCOLOR_FWIN COLOR_LIGHTBLUE -#define WIDGETCOLOR COLOR_GRAY1 -#define WIDGETCOLOR_DIALOG COLOR_WHITE -#define WIDGETCOLOR_FOCUS COLOR_YELLOW - -#define MENUCOLOR COLOR_WHITE -#define OPENMENUCOLOR COLOR_LIGHTBLUE -#define ACTIVEMENUITEMCOLOR COLOR_YELLOW -#endif /* 0 */ - -#if 0 -/* Black and white monocrome color scheme: */ -#define BORDERCOLOR COLOR_BLACK -#define SCREENCOLOR COLOR_BLACK -#define BACKGROUNDCOLOR COLOR_BLACK - -#define WINDOWCOLOR_FOCUS COLOR_WHITE -#define WINDOWCOLOR COLOR_WHITE - -#define DIALOGCOLOR COLOR_WHITE - -#define WIDGETCOLOR_HLINK COLOR_WHITE -#define WIDGETCOLOR_FWIN COLOR_WHITE -#define WIDGETCOLOR COLOR_WHITE -#define WIDGETCOLOR_DIALOG COLOR_WHITE -#define WIDGETCOLOR_FOCUS COLOR_WHITE - -#define MENUCOLOR COLOR_WHITE -#define OPENMENUCOLOR COLOR_WHITE -#define ACTIVEMENUITEMCOLOR COLOR_WHITE -#endif /* 0 */ - -#if 0 -/* Blue monocrome color scheme: */ -#define BORDERCOLOR COLOR_BLUE -#define SCREENCOLOR COLOR_BLUE -#define BACKGROUNDCOLOR COLOR_BLUE - -#define WINDOWCOLOR_FOCUS COLOR_LIGHTBLUE -#define WINDOWCOLOR COLOR_LIGHTBLUE - -#define DIALOGCOLOR COLOR_LIGHTBLUE - -#define WIDGETCOLOR_HLINK COLOR_LIGHTBLUE -#define WIDGETCOLOR_FWIN COLOR_LIGHTBLUE -#define WIDGETCOLOR COLOR_LIGHTBLUE -#define WIDGETCOLOR_DIALOG COLOR_LIGHTBLUE -#define WIDGETCOLOR_FOCUS COLOR_LIGHTBLUE - -#define MENUCOLOR COLOR_LIGHTBLUE -#define OPENMENUCOLOR COLOR_LIGHTBLUE -#define ACTIVEMENUITEMCOLOR COLOR_LIGHTBLUE -#endif /* 0 */ - -#if 1 -/* Gray color scheme: */ -#define BORDERCOLOR COLOR_GRAY1 -#define SCREENCOLOR COLOR_GRAY1 -#define BACKGROUNDCOLOR COLOR_GRAY1 - -#define WINDOWCOLOR_FOCUS COLOR_GRAY3 -#define WINDOWCOLOR COLOR_GRAY2 - -#define DIALOGCOLOR COLOR_WHITE - -#define WIDGETCOLOR_HLINK COLOR_LIGHTBLUE -#define WIDGETCOLOR_FWIN COLOR_GRAY3 -#define WIDGETCOLOR COLOR_GRAY2 -#define WIDGETCOLOR_DIALOG COLOR_WHITE -#define WIDGETCOLOR_FOCUS COLOR_YELLOW - -#define MENUCOLOR COLOR_GRAY3 -#define OPENMENUCOLOR COLOR_WHITE -#define ACTIVEMENUITEMCOLOR COLOR_YELLOW -#endif /* 0 */ - -#if 0 -/* Red color scheme: */ -#define BORDERCOLOR COLOR_BLACK -#define SCREENCOLOR COLOR_BLACK -#define BACKGROUNDCOLOR COLOR_BLACK - -#define WINDOWCOLOR_FOCUS COLOR_LIGHTRED -#define WINDOWCOLOR COLOR_RED - -#define DIALOGCOLOR COLOR_WHITE - -#define WIDGETCOLOR_HLINK COLOR_LIGHTBLUE -#define WIDGETCOLOR_FWIN COLOR_YELLOW -#define WIDGETCOLOR COLOR_LIGHTRED -#define WIDGETCOLOR_DIALOG COLOR_WHITE -#define WIDGETCOLOR_FOCUS COLOR_YELLOW - -#define MENUCOLOR COLOR_LIGHTRED -#define OPENMENUCOLOR COLOR_WHITE -#define ACTIVEMENUITEMCOLOR COLOR_YELLOW -#endif /* 0 */ - -/* CTK VNC server configuration. */ - -#define CTK_VNCSERVER_CONF_NUMCONNS 1 - -#define CTK_VNCSERVER_CONF_MAX_ICONS 4 - -#define CTK_VNCSERVER_CONF_SCREEN (u8_t *)0x0400 - -/* Email program configuration. */ - -#define EMAIL_CONF_WIDTH 36 -#define EMAIL_CONF_HEIGHT 17 - -/* IRC program configuration. */ - -#define IRC_CONF_WIDTH 78 -#define IRC_CONF_HEIGHT 21 - -#define IRC_CONF_SYSTEM_STRING "c64" - -/* Libconio configuration. */ - -#define LIBCONIO_CONF_SCREEN_WIDTH 80 -#define LIBCONIO_CONF_SCREEN_HEIGHT 25 - -/* Logging configuration. */ - -#define LOG_CONF_ENABLED 1 - -/* Program handler configuration. */ - -#define PROGRAM_HANDLER_CONF_MAX_NUMDSCS 10 - -/* Shell GUI configuration. */ - -#define SHELL_GUI_CONF_XSIZE 26 -#define SHELL_GUI_CONF_YSIZE 12 - -/* Telnet daemon configuration. */ - -#define TELNETD_CONF_LINELEN 32 -#define TELNETD_CONF_NUMLINES 12 - -#define TELNETD_CONF_GUI 1 - -/* uIP configuration. */ - -#define UIP_CONF_MAX_CONNECTIONS 10 -#define UIP_CONF_MAX_LISTENPORTS 10 -#define UIP_CONF_BUFFER_SIZE 400 -#define UIP_CONF_RECEIVE_WINDOW 320 - -#define UIP_CONF_BYTE_ORDER UIP_LITTLE_ENDIAN - -#define UIP_CONF_ARBTAB_SIZE 4 - -#define UIP_CONF_RESOLV_ENTRIES 4 -#define UIP_CONF_PINGADDRCONF 0 - -#define UIP_CONF_LOGGING 0 -#define UIP_CONF_UDP_CONNS 6 -#define UIP_CONF_BROADCAST 0 - -#define UIP_CONF_UDP_CHECKSUMS 0 - -#define UIP_ARCH_ADD32 1 -#define UIP_ARCH_CHKSUM 1 - -/** - * The 8-bit unsigned data type. - * - * This may have to be tweaked for your particular compiler. "unsigned - * char" works for most compilers. - */ -typedef unsigned char u8_t; - -/** - * The 16-bit unsigned data type. - * - * This may have to be tweaked for your particular compiler. "unsigned - * short" works for most compilers. - */ -typedef unsigned short u16_t; - -/** - * The 32-bit unsigned data type. - * - * This may have to be tweaked for your particular compiler. "unsigned - * long" works for most compilers. - */ -typedef unsigned long u32_t; - -/** - * The statistics data type. - * - * This datatype determines how high the statistics counters are able - * to count. - */ -typedef unsigned short uip_stats_t; - - -/* VNC viewer configuration. */ - -#define VNC_CONF_VIEWPORT_WIDTH (32*8) -#define VNC_CONF_VIEWPORT_HEIGHT (16*8) - -#define VNC_CONF_REFRESH_ROWS 8 - -/* Web browser configuration. */ - -#define WWW_CONF_HOMEPAGE "http://contiki.c64.org/" - -/* The size of the HTML viewing area. */ -#define WWW_CONF_WEBPAGE_WIDTH 36 -#define WWW_CONF_WEBPAGE_HEIGHT 17 - -/* The size of the "Back" history. */ -#define WWW_CONF_HISTORY_SIZE 2 - -/* Defines the maximum length of an URL */ -#define WWW_CONF_MAX_URLLEN 55 - -/* The maxiumum number of widgets (i.e., hyperlinks, form elements) on - a page. */ -#define WWW_CONF_MAX_NUMPAGEWIDGETS 8 - -/* Turns
support on or off; must be on for forms to work. */ -#define WWW_CONF_RENDERSTATE 0 - -/* Toggles support for HTML forms. */ -#define WWW_CONF_FORMS 0 - -/* Maximum lengths for various HTML form parameters. */ -#define WWW_CONF_MAX_FORMACTIONLEN 30 -#define WWW_CONF_MAX_FORMNAMELEN 20 -#define WWW_CONF_MAX_INPUTNAMELEN 20 - -#define WWW_CONF_MAX_INPUTVALUELEN (WWW_CONF_WEBPAGE_WIDTH - 1) - - -#endif /* __CONTIKI_CONF_H__ */ diff --git a/backyard/platform/c64/ctk/ctk-80col-asm.S b/backyard/platform/c64/ctk/ctk-80col-asm.S deleted file mode 100644 index 4df6cad6b..000000000 --- a/backyard/platform/c64/ctk/ctk-80col-asm.S +++ /dev/null @@ -1,986 +0,0 @@ - -;--------------------------------------------------------------------- - .importzp ptr1, ptr2, ptr3, ptr4, sreg - .importzp sp - - .import pushax - .import incsp2 - - .import _ctk_80col_screencolors - .import _ctk_80col_screenpattern - - .import _ctk_80col_lefttab - .import _ctk_80col_righttab - - .import _ctk_80col_cursx - .import _ctk_80col_cursy - .import _ctk_80col_color - .import _ctk_80col_underline - .import _ctk_80col_reversed - - .import _ctk_80col_yscreenaddr - .import _ctk_80col_yhiresaddr - - .import _ctk_80col_windowparams - - .import _ctk_80col_bitmapptr - - .import _ctk_80col_versionstring - .import _ctk_80col_versionstring_len - - .import _ctk_80col_theme - - .export _ctk_80col_cclear - .export _ctk_80col_chline - .export _ctk_80col_cputc - .export _ctk_80col_cputsn - - .export _ctk_80col_clear_line - .export _ctk_80col_draw_bitmapline - - .export _ctk_80col_draw_windowborders - -;--------------------------------------------------------------------- - -ptr5 = sreg - - ;; Offsets in the theme struct - - ulcornerpattern = 8 - titlebarpattern = ulcornerpattern+8 - urcornerpattern = titlebarpattern+8 - rborderpattern = urcornerpattern+8 - lrcornerpattern = rborderpattern+8 - lowerborderpattern = lrcornerpattern+8 - llcornerpattern = lowerborderpattern+8 - lborderpattern = llcornerpattern+8 - - - buttonleftpattern = lborderpattern+8 - buttonrightpattern = buttonleftpattern+8 - - -.bss -tmp01: .res 1 -tmpl: .res 1 -tmpf: .res 1 -tmpc: .res 1 -tmpw: .res 1 -tmpptr: .res 2 - -tmpy: .res 1 -tmph: .res 1 - - ;; Window border parameters -w: .res 1 -wpw = 0 -h: .res 1 -wph = 1 -clipy1: .res 1 -wpclipy1 = 2 -clipy2: .res 1 -wpclipy2 = 3 -color1: .res 1 -wpcolor1 = 4 -color2: .res 1 -wpcolor2 = 5 -titlecolor: .res 1 -wptitlecolor = 6 -titlelen: .res 1 -wptitlelen = 7 -title: .res 2 -wptitle = 8 - -;--------------------------------------------------------------------- -.data -;--------------------------------------------------------------------- -.code -setupptrs: - ;; Find hires address. - lda _ctk_80col_cursy - asl - tax - lda _ctk_80col_yhiresaddr,x - sta ptr2 - lda _ctk_80col_yhiresaddr+1,x - sta ptr2+1 - - ;; Add X coordinate to the hires address. - lda #0 - sta ptr1+1 - lda _ctk_80col_cursx - asl - rol ptr1+1 -; asl -; rol ptr1+1 - asl - rol ptr1+1 - clc - adc ptr2 - and #$f8 - sta ptr2 - lda ptr2+1 - adc ptr1+1 - sta ptr2+1 - - ;; Find screen address. - lda _ctk_80col_cursy - asl - tax - lda _ctk_80col_cursx - lsr - clc - adc _ctk_80col_yscreenaddr,x - sta ptr1 - lda _ctk_80col_yscreenaddr+1,x - adc #0 - sta ptr1+1 - - ;; Turn off interrupts, prepare $01 to store color data in RAM - ;; under I/O area. - sei - lda $01 - sta tmp01 - and #$f8 - sta $01 - rts -;--------------------------------------------------------------------- -restore01: - lda tmp01 - sta $01 - cli - rts -;--------------------------------------------------------------------- -_ctk_80col_cclear: - sta tmpl - cmp #0 - bne @norts - rts -@norts: - - jsr setupptrs - - ldy tmpl - lda _ctk_80col_color -: - sta (ptr1),y - dey - bpl :- - - ;; Store either $00 or $ff in hires memory, depending on the - ;; reversed flag - - ldx tmpl - lda _ctk_80col_reversed - beq @noff - lda #$ff -@noff: - sta tmpf - - -@loop1: - ldy #7 - lda tmpf -@loop2: - sta (ptr2),y - dey - bpl @loop2 - - lda ptr2 - clc - adc #8 - sta ptr2 - bcc @noinc - inc ptr2+1 -@noinc: - - inc _ctk_80col_cursx - - dex - bpl @loop1 - - jmp restore01 -;--------------------------------------------------------------------- -_ctk_80col_chline: - sta tmpl - cmp #0 - bne @norts - rts -@norts: - - jsr setupptrs - - ;; Store horizontal line pattern in hires memory - ldx tmpl -@loop1: - ldy #0 - lda #$00 - sta (ptr2),y - iny - lda #$00 - sta (ptr2),y - iny - lda #$00 - sta (ptr2),y - iny - lda #$ff - sta (ptr2),y - iny - lda #$ff - sta (ptr2),y - iny - lda #$00 - sta (ptr2),y - iny - lda #$00 - sta (ptr2),y - iny - lda #$00 - sta (ptr2),y - - - lda ptr2 - clc - adc #8 - sta ptr2 - bcc @noinc - inc ptr2+1 -@noinc: - - inc _ctk_80col_cursx - - dex - bne @loop1 - - jmp restore01 -;--------------------------------------------------------------------- -_ctk_80col_cputc: - sta tmpc - - jsr setupptrs - - ;; Turn on font ROM - lda tmp01 - and #$f8 - ora #$01 - sta $01 - - lda #0 - sta ptr1+1 - - ;; Convert from PETSCII to screen encoding - lda tmpc - eor #$e0 - clc - adc #$20 - bpl @cont - adc #$40 - bpl @cont - eor #$a0 -@cont: - ldx _ctk_80col_reversed - beq :+ - eor #$80 -: - - ;; Convert to address in character ROM - asl - rol ptr1+1 - asl - rol ptr1+1 - asl - rol ptr1+1 - sta ptr1 - lda #$d8 - adc ptr1+1 - sta ptr1+1 - - lda _ctk_80col_cursx - and #1 - beq @left - - ;; Print on hires screen, bottom-up. If we should underline, - ;; we do this by eor:ing the bottom line with #$ff - ldy #7 - lda (ptr1),y - ldx _ctk_80col_underline - beq @rightnounderline - eor #$ff -@rightnounderline: - tax - lda (ptr2),y - and #$f0 - ora _ctk_80col_righttab,x - sta (ptr2),y - dey -@rightloop: - lda (ptr1),y - tax - lda (ptr2),y - and #$f0 - ora _ctk_80col_righttab,x - sta (ptr2),y - dey - bpl @rightloop - - inc _ctk_80col_cursx - - jmp restore01 - -@left: - ;; Print on hires screen, bottom-up. If we should underline, - ;; we do this by eor:ing the bottom line with #$ff - ldy #7 - lda (ptr1),y - ldx _ctk_80col_underline - beq @nounderline - eor #$ff -@nounderline: - tax - lda (ptr2),y - and #$0f - ora _ctk_80col_lefttab,x - sta (ptr2),y - dey -@loop: - lda (ptr1),y - tax - lda (ptr2),y - and #$0f - ora _ctk_80col_lefttab,x - sta (ptr2),y - dey - bpl @loop - - - - inc _ctk_80col_cursx - - jmp restore01 -;--------------------------------------------------------------------- -_ctk_80col_cputsn: - sta tmpl - cmp #0 - bne :+ - jmp incsp2 -: - - jsr setupptrs - - ;; Turn on font ROM - lda tmp01 - and #$f8 - ora #$01 - sta $01 - - ;; Output each character from the string - lda #0 - sta tmpc - ldy #0 - lda (sp),y - sta ptr3 - iny - lda (sp),y - sta ptr3+1 - -@loop1: - - - lda #0 - sta ptr1+1 - - ldy tmpc - lda (ptr3),y - bne :+ - jmp @end -: - - ;; Convert from PETSCII to screen encoding - eor #$e0 - clc - adc #$20 - bpl @cont - adc #$40 - bpl @cont - eor #$a0 -@cont: - ldx _ctk_80col_reversed - beq :+ - eor #$80 -: - - ;; Convert to address in character ROM - asl - rol ptr1+1 - asl - rol ptr1+1 - asl - rol ptr1+1 - sta ptr1 - lda #$d8 - adc ptr1+1 - sta ptr1+1 - - lda _ctk_80col_cursx - and #1 - beq @left - - ;; Print on hires screen, bottom-up. If we should underline, - ;; we do this by eor:ing the bottom line with #$ff - ldy #7 - lda (ptr1),y - ldx _ctk_80col_underline - beq @rightnounderline - eor #$ff -@rightnounderline: - tax - lda (ptr2),y - and #$f0 - ora _ctk_80col_righttab,x - sta (ptr2),y - dey -@rightloop: - lda (ptr1),y - tax - lda (ptr2),y - and #$f0 - ora _ctk_80col_righttab,x - sta (ptr2),y - dey - bpl @rightloop - - - lda ptr2 - clc - adc #8 - sta ptr2 - bcc :+ - inc ptr2+1 -: - - inc _ctk_80col_cursx - - jmp @loopend - -@left: - ;; Print on hires screen, bottom-up. If we should underline, - ;; we do this by eor:ing the bottom line with #$ff - ldy #7 - lda (ptr1),y - ldx _ctk_80col_underline - beq @nounderline - eor #$ff -@nounderline: - tax - lda (ptr2),y - and #$0f - ora _ctk_80col_lefttab,x - sta (ptr2),y - dey -@loop: - lda (ptr1),y - tax - lda (ptr2),y - and #$0f - ora _ctk_80col_lefttab,x - sta (ptr2),y - dey - bpl @loop - - inc _ctk_80col_cursx -@loopend: - inc tmpc - lda tmpc - cmp tmpl - beq :+ - jmp @loop1 -: - -@end: - jsr restore01 - - jmp incsp2 -;--------------------------------------------------------------------- -_ctk_80col_clear_line: - sta tmpl - asl - tax - lda _ctk_80col_yscreenaddr,x - sta ptr1 - lda _ctk_80col_yscreenaddr+1,x - sta ptr1+1 - lda _ctk_80col_yhiresaddr,x - sta ptr2 - lda _ctk_80col_yhiresaddr+1,x - sta ptr2+1 - - sei - lda $01 - sta tmp01 - and #$f8 - sta $01 - - ldy #39 - ldx tmpl - lda _ctk_80col_screencolors,x -: - sta (ptr1),y - dey - bpl :- - - lda tmpl - asl - asl - asl - tax - ldy #0 -: - lda _ctk_80col_screenpattern,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+1,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+2,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+3,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+4,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+5,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+6,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+7,x - sta (ptr2),y - iny - bne :- - - inc ptr2+1 - -: - lda _ctk_80col_screenpattern,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+1,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+2,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+3,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+4,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+5,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+6,x - sta (ptr2),y - iny - lda _ctk_80col_screenpattern+7,x - sta (ptr2),y - iny - cpy #$40 - bne :- - - lda tmpl - cmp #24 - bne :+ - - sta _ctk_80col_cursy - lda #2 - sta _ctk_80col_cursx - - jsr restore01 - - lda #<_ctk_80col_versionstring - ldx #>_ctk_80col_versionstring - jsr pushax - lda _ctk_80col_versionstring_len - jmp _ctk_80col_cputsn -: - jmp restore01 -;--------------------------------------------------------------------- -_ctk_80col_draw_bitmapline: - sta tmpl - cmp #0 - bne :+ - rts -: - - jsr setupptrs - - ldy #0 - lda _ctk_80col_color -: - sta (ptr1),y - iny - cpy tmpl - bne :- - - lda _ctk_80col_bitmapptr - sta ptr1 - lda _ctk_80col_bitmapptr+1 - sta ptr1+1 - - ldy #0 - ldx #0 -: - lda (ptr1),y - sta (ptr2),y - iny - inx - cpx #8 - bne :- - - ldx #0 - - dec tmpl - bne :- - - jmp restore01 -;--------------------------------------------------------------------- -_ctk_80col_draw_windowborders: - - jsr setupptrs - - lda _ctk_80col_windowparams + wpclipy1 - beq :+ - jmp @nofirstline -: - - ;; Draw first line of the border, including the window title - - ;; Start with filling color memory - lda _ctk_80col_windowparams + wpw - sta tmpw - - - ldy #0 - lda _ctk_80col_windowparams + wptitlecolor -: - sta (ptr1),y - iny - cpy tmpw - bcc :- - - dec tmpw - - ;; Set color for upper right corner - sta (ptr1),y - iny - sta (ptr1),y - - - ;; Turn on font ROM for drawing the title - lda tmp01 - and #$f8 - ora #$01 - sta $01 - - ;; Use a temporary pointer (ptr3) rather than ptr2 so we can - ;; reuse it later. - lda ptr2 - sta ptr3 - lda ptr2+1 - sta ptr3+1 - - ;; Draw upper left corner - ldy #7 -: - lda _ctk_80col_theme+ulcornerpattern,y - sta (ptr3),y - dey - bpl :- - - lda ptr3 - clc - adc #$8 - sta ptr3 - bcc :+ - inc ptr3+1 -: - - - ;; Draw window title bar pattern -@titlebarloop: - ldy #7 -: - lda _ctk_80col_theme+titlebarpattern,y - sta (ptr3),y - dey - bpl :- - - lda ptr3 - clc - adc #$8 - sta ptr3 - bcc :+ - inc ptr3+1 -: - ;; Loop until we are three characters away from right border - ;; to avoid flickering since we would be overwriting the close - ;; button. - dec tmpw - bpl @titlebarloop - - ;; Draw upper right corner piece - ldy #7 -: - lda _ctk_80col_theme+urcornerpattern,y - sta (ptr3),y - dey - bpl :- - - -@nofirstline: - - - ldx _ctk_80col_windowparams + wph - inx - stx tmph - - ;; Draw left and right borders - - ;; Fill color memory (pointer in ptr1, setup by setupptrs) - - ;; First check how much we actually should draw by inspecting - ;; the clipy1 and clipy2 fields in the _ctk_80col_windowparams - ;; structure - - lda #1 - sta tmpy - - ldx _ctk_80col_windowparams + wpclipy1 -@clipy1loop: - cpx #0 - beq @clipy1loopend - lda ptr1 - clc - adc #$28 - sta ptr1 - bcc :+ - inc ptr1+1 -: - lda ptr3 - clc - adc #$40 - sta ptr3 - lda ptr3+1 - adc #1 - sta ptr3+1 - - inc tmpy - - dex - jmp @clipy1loop -@clipy1loopend: - - lda ptr1 - clc - adc #$28 - sta ptr1 - bcc :+ - inc ptr1+1 -: - - ldx tmpy - ldy _ctk_80col_windowparams + wpw - iny - sty tmpw -@bordercloop: - cpx _ctk_80col_windowparams + wpclipy2 - beq @bordercloopend - - ldy tmpw - lda _ctk_80col_windowparams + wpcolor2 - sta (ptr1),y - ldy #0 - lda _ctk_80col_windowparams + wpcolor1 - sta (ptr1),y - - lda ptr1 - clc - adc #$28 - sta ptr1 - bcc :+ - inc ptr1+1 -: - - inx - cpx tmph - bcc @bordercloop - beq @bordercloop -@bordercloopend: - - - ;; Fill color memory for lower border, if clipy2 allows - cpx _ctk_80col_windowparams + wpclipy2 - beq @noclowerborder - - lda ptr1 - sec - sbc #$28 - sta ptr1 - bcs :+ - dec ptr1+1 -: - - ldy _ctk_80col_windowparams + wpw - lda _ctk_80col_windowparams + wpcolor2 -@lbordercloop: - sta (ptr1),y - dey - bne @lbordercloop - -@noclowerborder: - - ;; Draw right border - ldx tmpy -@rborderloop: - cpx _ctk_80col_windowparams + wpclipy2 - beq @rborderloopend - - lda ptr3 - clc - adc #$40 - sta ptr3 - lda ptr3+1 - adc #1 - sta ptr3+1 - - ldy #7 -: - lda _ctk_80col_theme+rborderpattern,y - sta (ptr3),y - dey - bpl :- - - inx - cpx tmph - bne @rborderloop -@rborderloopend: - - cpx _ctk_80col_windowparams + wpclipy2 - beq @norbordercorner - - lda ptr3 - clc - adc #$40 - sta ptr3 - lda ptr3+1 - adc #1 - sta ptr3+1 - - ;; Draw lower right corner, if clipy2 allows it - ldy #7 -: - lda _ctk_80col_theme+lrcornerpattern,y - sta (ptr3),y - dey - bpl :- - -@norbordercorner: - - stx tmpy - - ;; Draw lower border - ldx _ctk_80col_windowparams + wpw - -@lowerborderloop: - lda ptr3 - sec - sbc #$8 - sta ptr3 - bcs :+ - dec ptr3+1 -: - - lda tmpy - cmp _ctk_80col_windowparams + wpclipy2 - beq @nolowerborder - - ldy #7 -: - lda _ctk_80col_theme+lowerborderpattern,y - sta (ptr3),y - dey - bpl :- -@nolowerborder: - - dex - bne @lowerborderloop - - lda ptr3 - sec - sbc #$8 - sta ptr3 - bcs :+ - dec ptr3+1 -: - - - ldx tmpy - cpx tmph - bne @nolbordercorner - - ;; Draw lower left corner, if clipy2 allows it - ldy #7 -: - lda _ctk_80col_theme+llcornerpattern,y - sta (ptr3),y - dey - bpl :- - - lda ptr3 - sec - sbc #$40 - sta ptr3 - lda ptr3+1 - sbc #1 - sta ptr3+1 - -@nolbordercorner: - - ;; Draw left border - - - -@lborderloop: - cpx #1 - beq @lborderloopend - cpx _ctk_80col_windowparams + wpclipy1 - bcc @lborderloopend - - ldy #7 -: - lda _ctk_80col_theme+lborderpattern,y - sta (ptr3),y - dey - bpl :- - - lda ptr3 - sec - sbc #$40 - sta ptr3 - lda ptr3+1 - sbc #1 - sta ptr3+1 - - dex - jmp @lborderloop - -@lborderloopend: - - - jmp restore01 -;--------------------------------------------------------------------- - \ No newline at end of file diff --git a/backyard/platform/c64/ctk/ctk-80col-asm.h b/backyard/platform/c64/ctk/ctk-80col-asm.h deleted file mode 100644 index 04a939657..000000000 --- a/backyard/platform/c64/ctk/ctk-80col-asm.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-80col-asm.h,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#ifndef __CTK_80COL_ASM_H__ -#define __CTK_80COL_ASM_H__ - -void __fastcall__ ctk_80col_cclear(unsigned char len); -void __fastcall__ ctk_80col_chline(unsigned char len); -void __fastcall__ ctk_80col_cputc(unsigned char c); -void __fastcall__ ctk_80col_cputsn(unsigned char *str, - unsigned char len); - -void ctk_80col_draw_buttonleft(void); -void ctk_80col_draw_buttonright(void); - -struct ctk_80col_windowparams { - unsigned char w; - unsigned char h; - unsigned char clipy1; - unsigned char clipy2; - unsigned char color1; - unsigned char color2; - unsigned char titlecolor; - unsigned char titlelen; - char *title; -}; -extern struct ctk_80col_windowparams ctk_80col_windowparams; -void ctk_80col_draw_windowborders(void); - -extern unsigned char ctk_80col_cursx, - ctk_80col_cursy, - ctk_80col_color, - ctk_80col_reversed, - ctk_80col_underline; - - -void __fastcall__ ctk_80col_draw_bitmapline(unsigned char len); - -void __fastcall__ ctk_80col_clear_line(unsigned char len); - -#endif /* __CTK_80COL_ASM_H__ */ diff --git a/backyard/platform/c64/ctk/ctk-80col-theme.h b/backyard/platform/c64/ctk/ctk-80col-theme.h deleted file mode 100644 index 861deebdb..000000000 --- a/backyard/platform/c64/ctk/ctk-80col-theme.h +++ /dev/null @@ -1,83 +0,0 @@ - /* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS for the C64 - * - * $Id: ctk-80col-theme.h,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ -#ifndef __CTK_80COL_THEME_H__ -#define __CTK_80COL_THEME_H__ - -struct ctk_80col_theme { - /* Version string. */ - char version[8]; - - /* Window borders patterns. */ - unsigned char ulcorner[8], /* Upper left corner. */ - titlebar[8], /* Title bar pattern. */ - urcorner[8], /* Upper right corner. */ - rightborder[8], /* Right border. */ - lrcorner[8], /* Lower right corner. */ - lowerborder[8], /* Lower border. */ - llcorner[8], /* Lower left corner. */ - leftborder[8]; /* Left border. */ - - /* Button corner patterns. */ - unsigned char buttonleftpattern[8], - buttonrightpattern[8]; - - /* Menu border patterns. */ - unsigned char menuleftpattern[8], - menurightpattern[8]; - - - - /* Window and widget colors. */ - unsigned char windowcolors[6], - separatorcolors[6], - labelcolors[6], - buttoncolors[6], - hyperlinkcolors[6], - textentrycolors[6], - bitmapcolors[6], - textmapcolors[6], - iconcolors[6]; - - /* Menu colors. */ - unsigned char menucolor, - openmenucolor, - activemenucolor; - -}; - -extern struct ctk_80col_theme ctk_80col_theme; -extern struct ctk_80col_theme *ctk_80col_theme_ptr; - -#endif /* __CTK_80COL_THEME_H__ */ diff --git a/backyard/platform/c64/ctk/ctk-80col.c b/backyard/platform/c64/ctk/ctk-80col.c deleted file mode 100644 index b38a13700..000000000 --- a/backyard/platform/c64/ctk/ctk-80col.c +++ /dev/null @@ -1,1190 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: ctk-80col.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - */ - -#include "contiki.h" - -#include "ctk/ctk.h" -#include "ctk/ctk-draw.h" -#include "ctk/ctk-draw-service.h" - -#include "ctk-80col-asm.h" -#include "ctk-80col-theme.h" - -#include - -unsigned char ctk_80col_cursx, ctk_80col_cursy; -unsigned char ctk_80col_reversed; -unsigned char ctk_80col_color; -unsigned char *ctk_80col_bitmapptr; -unsigned char ctk_80col_underline = 0; - -#define SCREEN_HEIGHT 25 -#define SCREEN_WIDTH 80 - -#define SCREENADDR 0xdc00 -#define HIRESADDR 0xe000 - -unsigned char ctk_80col_lefttab[256]; -unsigned char ctk_80col_righttab[256]; - -#define COLOR(bg, fg) ((fg << 4) | (bg)) - -#define COLOR_DIALOG 0x01 -#define COLOR_FOCUS_WINDOW 0xbf -#define COLOR_BACKGROUND_WINDOW 0x0c - -#define color(c) ctk_80col_color = c - -#define BGCOLOR1 7 -#define BGCOLOR2 10 -#define BGCOLOR3 4 -#define BGCOLOR4 6 - -unsigned char ctk_80col_screencolors[25] = - {COLOR(BGCOLOR4,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3), - COLOR(BGCOLOR4,1)}; - -unsigned char ctk_80col_screenpattern[25*8] = - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xdd,0xff,0x77,0xff,0xdd,0xff,0x77, - 0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55, - 0xee,0x55,0xbb,0x55,0xee,0x55,0xbb,0x55, - 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, - 0xaa,0x44,0xaa,0x11,0xaa,0x44,0xaa,0x11, - 0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00, - 0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xdd,0xff,0x77,0xff,0xdd,0xff,0x77, - 0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55, - 0xee,0x55,0xbb,0x55,0xee,0x55,0xbb,0x55, - 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, - 0xaa,0x44,0xaa,0x11,0xaa,0x44,0xaa,0x11, - 0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00, - 0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xdd,0xff,0x77,0xff,0xdd,0xff,0x77, - 0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55, - 0xee,0x55,0xbb,0x55,0xee,0x55,0xbb,0x55, - 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, - 0xaa,0x44,0xaa,0x11,0xaa,0x44,0xaa,0x11, - 0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00, - 0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; - -unsigned short ctk_80col_yscreenaddr[25] = - {0 * 40 + SCREENADDR, 1 * 40 + SCREENADDR, - 2 * 40 + SCREENADDR, 3 * 40 + SCREENADDR, - 4 * 40 + SCREENADDR, 5 * 40 + SCREENADDR, - 6 * 40 + SCREENADDR, 7 * 40 + SCREENADDR, - 8 * 40 + SCREENADDR, 9 * 40 + SCREENADDR, - 10 * 40 + SCREENADDR, 11 * 40 + SCREENADDR, - 12 * 40 + SCREENADDR, 13 * 40 + SCREENADDR, - 14 * 40 + SCREENADDR, 15 * 40 + SCREENADDR, - 16 * 40 + SCREENADDR, 17 * 40 + SCREENADDR, - 18 * 40 + SCREENADDR, 19 * 40 + SCREENADDR, - 20 * 40 + SCREENADDR, 21 * 40 + SCREENADDR, - 22 * 40 + SCREENADDR, 23 * 40 + SCREENADDR, - 24 * 40 + SCREENADDR}; - -unsigned short ctk_80col_yhiresaddr[25] = - {0 * 320 + HIRESADDR, 1 * 320 + HIRESADDR, - 2 * 320 + HIRESADDR, 3 * 320 + HIRESADDR, - 4 * 320 + HIRESADDR, 5 * 320 + HIRESADDR, - 6 * 320 + HIRESADDR, 7 * 320 + HIRESADDR, - 8 * 320 + HIRESADDR, 9 * 320 + HIRESADDR, - 10 * 320 + HIRESADDR, 11 * 320 + HIRESADDR, - 12 * 320 + HIRESADDR, 13 * 320 + HIRESADDR, - 14 * 320 + HIRESADDR, 15 * 320 + HIRESADDR, - 16 * 320 + HIRESADDR, 17 * 320 + HIRESADDR, - 18 * 320 + HIRESADDR, 19 * 320 + HIRESADDR, - 20 * 320 + HIRESADDR, 21 * 320 + HIRESADDR, - 22 * 320 + HIRESADDR, 23 * 320 + HIRESADDR, - 24 * 320 + HIRESADDR}; - - -struct ctk_80col_theme ctk_80col_theme = - { - /* Version string. */ - /* char version[8]; */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, - - /* Window borders patterns. */ - /* unsigned char ulcorner[8], */ /* Upper left corner. */ - {0xff,0xc0,0x80,0xbf,0x80,0xbf,0x80,0x80}, - - /* titlebar[8], */ /* Title bar pattern. */ - {0xff,0x00,0x00,0xff,0x00,0xff,0x00,0x00}, - - /* urcorner[8], */ /* Upper right corner. */ - {0xff,0x03,0x01,0xfd,0x01,0xfd,0x01,0x01}, - - /* rightborder[8], */ /* Right border. */ - {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}, - - /* lrcorner[8], */ /* Lower right corner. */ - {0x01,0x01,0x01,0x01,0x01,0x01,0x03,0xff}, - - /* lowerborder[8], */ /* Lower border. */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff}, - - /* llcorner[8], */ /* Lower left corner. */ - {0x80,0x80,0x80,0x80,0x80,0x80,0xc0,0xff}, - - /* leftborder[8]; */ /* Left border. */ - {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, - - /* Button corner patterns. */ - /* unsigned char buttonleft[8], */ - {0xc5,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf}, - - /* buttonright[8]; */ - {0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xa3}, - - /* Menu border patterns. */ - /* unsigned char menuleftpattern[8], */ - {0x0f,0x3f,0x3f,0x7f,0x7f,0xff,0xff,0xff}, - - /* menurightpatterns[8]; */ - {0xf0,0xfc,0xfc,0xfe,0xfe,0xff,0xff,0xff}, - - /* Window and widget colors. */ - /* unsigned char windowcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_BLACK), - COLOR(COLOR_GRAY2, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* separatorcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY3, COLOR_GRAY2), - COLOR(COLOR_GRAY3, COLOR_GRAY2), - COLOR(COLOR_WHITE, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_GRAY1)}, - - /* labelcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* buttoncolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY3), - COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY3)}, - - /* hyperlinkcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_LIGHTBLUE), - COLOR(COLOR_GRAY2, COLOR_LIGHTBLUE), - COLOR(COLOR_WHITE, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_WHITE), - COLOR(COLOR_WHITE, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_WHITE)}, - - /* textentrycolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK)}, - - /* bitmapcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_GRAY1), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK)}, - - /* textmapcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* iconcolors[6]; */ - {COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_BLUE, COLOR_WHITE), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_BLACK, COLOR_YELLOW)}, - - /* Menu colors. */ - /* unsigned char menucolor,*/ - COLOR(COLOR_YELLOW, COLOR_BLACK), - - /* openmenucolor, */ - COLOR(COLOR_WHITE, COLOR_BLACK), - - /* activemenucolor; */ - COLOR(COLOR_BLACK, COLOR_WHITE), - - }; -char ctk_80col_versionstring[] = CONTIKI_VERSION_STRING; -char ctk_80col_versionstring_len = sizeof(CONTIKI_VERSION_STRING) - 1; - -struct ctk_80col_windowparams ctk_80col_windowparams; - -/*---------------------------------------------------------------------------*/ -/*void -ctk_arch_draw_char(char c, - unsigned char xpos, - unsigned char ypos, - unsigned char reversedflag, - unsigned char color) -{ - ctk_80col_cursx = xpos; - ctk_80col_cursy = ypos; - ctk_80col_reversed = reversedflag; - ctk_80col_color = color; - - ctk_80col_cputc(c); -}*/ -/*---------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -nmi2(void) -{ - asm("pla"); - asm("sta $01"); - asm("pla"); - asm("rti"); -} -#pragma optimize(pop) -/*---------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -nmi(void) -{ - asm("sei"); - asm("pha"); - asm("inc $d020"); - asm("lda $01"); - asm("pha"); - asm("lda #$36"); - asm("sta $01"); - asm("lda #>_nmi2"); - asm("pha"); - asm("lda #<_nmi2"); - asm("pha"); - asm("php"); - asm("jmp ($0318)"); - - nmi2(); -} -#pragma optimize(pop) -/*---------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -setup_nmi(void) -{ - asm("lda #<_nmi"); - asm("sta $fffa"); - asm("lda #>_nmi"); - asm("sta $fffb"); - return; - nmi(); -} -#pragma optimize(pop) -/*---------------------------------------------------------------------------*/ -void reset(void); -void -quit(void) -{ - VIC.ctrl1 = 0x1b; /* $D011 */ - VIC.addr = 0x17; /* $D018 */ - VIC.ctrl2 = 0xc8; /* $D016 */ - CIA2.pra = 0x03; /* $DD00 */ - - VIC.bordercolor = 0x0e; /* $D020 */ - VIC.bgcolor0 = 0x06; /* $D021 */ - - memset((char *)0xd800, 0x0e, 40*25); - -} -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -ctk_80col_init(void) -{ - int i; - - setup_nmi(); - - /* Turn on hires mode, bank 0 ($c000 - $ffff) and $e000/$c000 for - hires/colors. */ - VIC.ctrl1 = 0x3b; /* $D011 */ - VIC.addr = 0x78; /* $D018 */ - VIC.ctrl2 = 0xc8; /* $D016 */ - CIA2.pra = 0x00; /* $DD00 */ - - VIC.bordercolor = 0x06; /* $D020 */ - VIC.bgcolor0 = 0x0b; /* $D021 */ - - /* Fill color memory. */ - asm("sei"); - asm("lda $01"); - asm("pha"); - asm("lda #$30"); - asm("sta $01"); - asm("ldx #0"); - asm("lda #$0"); - asm("fillcolorloop:"); - asm("sta $dc00,x"); - asm("sta $dd00,x"); - asm("sta $de00,x"); - asm("sta $df00,x"); - asm("inx"); - asm("bne fillcolorloop"); - - /* Setup sprite pointers */ - asm("ldx #$fd"); - asm("stx $dff8"); - asm("inx"); - asm("stx $dff9"); - asm("pla"); - asm("sta $01"); - asm("cli"); - - /* Fill hires memory with 0. */ - - memset((char *)0xe000, 0, 8000); - - for(i = 0; i < 256; ++i) { -#if 0 - ctk_80col_lefttab[i] = - ((i & 0x40) << 1) | - ((i & 0x20) << 1) | - ((i & 0x08) << 2) | - ((i & 0x02) << 3); - ctk_80col_righttab[i] = - ((i & 0x40) >> 3) | - ((i & 0x20) >> 3) | - ((i & 0x08) >> 2) | - ((i & 0x02) >> 1); -#else - ctk_80col_lefttab[i] = - ((i & 0x40) << 1) | - ((i & 0x10) << 2) | - ((i & 0x04) << 3) | - ((i & 0x01) << 4); - ctk_80col_righttab[i] = - ((i & 0x40) >> 3) | - ((i & 0x10) >> 2) | - ((i & 0x04) >> 1) | - ((i & 0x01)); -#endif - } - -#if 0 - /* Setup mouse pointer sprite. */ - asm("lda %v+%w", ctk_80col_theme, - offsetof(struct ctk_80col_theme, pointermaskcolor)); - asm("sta $d027"); - asm("lda %v+%w", ctk_80col_theme, - offsetof(struct ctk_80col_theme, pointercolor)); - asm("sta $d028"); - - ptr1 = ctk_80col_theme.pointer; - ptr2 = (unsigned char *)0xff40; - - for(i = 0; i < 0x80; ++i) { - *ptr2++ = *ptr1++; - } -#endif - return; -} -#pragma optimize(pop) -/*---------------------------------------------------------------------------*/ -/*static unsigned char cursx, cursy; - static unsigned char reversed;*/ - -/*-----------------------------------------------------------------------------------*/ -static void CC_FASTCALL -cputc(char c) -{ - /* ctk_arch_draw_char(c, cursx, cursy, reversed, 0);*/ - ctk_80col_cputc(c); - /* ++cursx;*/ -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -wherex(void) -{ - return ctk_80col_cursx; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -wherey(void) -{ - return ctk_80col_cursy; -} -/*-----------------------------------------------------------------------------------*/ -/*void -clrscr(void) -{ - unsigned char x, y; - - for(x = 0; x < SCREEN_WIDTH; ++x) { - for(y = 0; y < SCREEN_HEIGHT; ++y) { - gotoxy(x, y); - cputc(' '); - } - } -}*/ -/*-----------------------------------------------------------------------------------*/ -#define revers(c) ctk_80col_reversed = c -/*-----------------------------------------------------------------------------------*/ -static void CC_FASTCALL -_cputs(char *str) -{ - char *ptr = str; - - while(*ptr != 0) { - cputc(*ptr++); - } - - /* int i; - for(i = 0; i < strlen(str); ++i) { - cputc(str[i]); - }*/ -} -/*-----------------------------------------------------------------------------------*/ -static void CC_FASTCALL -cclear(unsigned char length) -{ - int i; - for(i = 0; i < length; ++i) { - cputc(' '); - } -} -/*-----------------------------------------------------------------------------------*/ -void CC_FASTCALL -chline(unsigned char length) -{ - int i; - for(i = 0; i < length; ++i) { - cputc('-'); - } -} -/*-----------------------------------------------------------------------------------*/ -void CC_FASTCALL -cvline(unsigned char length) -{ - int i; - for(i = 0; i < length; ++i) { - cputc('|'); - --ctk_80col_cursx; - ++ctk_80col_cursy; - } -} -/*-----------------------------------------------------------------------------------*/ -void CC_FASTCALL -gotoxy(unsigned char x, unsigned char y) -{ - ctk_80col_cursx = x; - ctk_80col_cursy = y; -} -/*-----------------------------------------------------------------------------------*/ -void CC_FASTCALL -cclearxy(unsigned char x, unsigned char y, unsigned char length) -{ - gotoxy(x, y); - cclear(length); -} -/*-----------------------------------------------------------------------------------*/ -void CC_FASTCALL -chlinexy(unsigned char x, unsigned char y, unsigned char length) -{ - gotoxy(x, y); - chline(length); -} -/*-----------------------------------------------------------------------------------*/ -void CC_FASTCALL -cvlinexy(unsigned char x, unsigned char y, unsigned char length) -{ - gotoxy(x, y); - cvline(length); -} -/*-----------------------------------------------------------------------------------*/ -void CC_FASTCALL -_cputsxy(unsigned char x, unsigned char y, char *str) -{ - gotoxy(x, y); - _cputs(str); -} -/*-----------------------------------------------------------------------------------*/ -void CC_FASTCALL -cputcxy(unsigned char x, unsigned char y, char c) -{ - gotoxy(x, y); - cputc(c); -} -/*-----------------------------------------------------------------------------------*/ -/*void CC_FASTCALL -screensize(unsigned char *x, unsigned char *y) -{ - *x = SCREEN_WIDTH; - *y = SCREEN_HEIGHT; -}*/ -/*-----------------------------------------------------------------------------------*/ -/*static unsigned char sizex, sizey;*/ -/*-----------------------------------------------------------------------------------*/ -static void -_cputsn(char *str, unsigned char len) -{ - /* char c; - - while(len > 0) { - --len; - c = *str; - if(c == 0) { - break; - } - cputc(c); - ++str; - }*/ - ctk_80col_cputsn(str, len); -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_init(void) -{ - ctk_80col_init(); - - /* screensize(&sizex, &sizey);*/ - - ctk_draw_clear(0, SCREEN_HEIGHT); -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_widget(struct ctk_widget *w, - unsigned char x, unsigned char y, - unsigned char clipx, - unsigned char clipy, - unsigned char clipy1, unsigned char clipy2, - unsigned char focus) -{ - unsigned char xpos, ypos, xscroll; - unsigned char i, j; - char c, *text; - unsigned char len, wfocus; - - wfocus = 0; - if(focus & CTK_FOCUS_WINDOW) { - if(focus & CTK_FOCUS_WIDGET) { - wfocus = 1; - } - } else if(focus & CTK_FOCUS_DIALOG) { - if(focus & CTK_FOCUS_WIDGET) { - wfocus = 1; - } - } else { - } - - xpos = x + w->x; - ypos = y + w->y; - - switch(w->type) { - case CTK_WIDGET_SEPARATOR: - if(ypos >= clipy1 && ypos < clipy2) { - chlinexy(xpos, ypos, w->w); - } - break; - case CTK_WIDGET_LABEL: - text = w->widget.label.text; - for(i = 0; i < w->h; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - gotoxy(xpos, ypos); - _cputsn(text, w->w); - if(w->w - (wherex() - xpos) > 0) { - cclear(w->w - (wherex() - xpos)); - } - } - ++ypos; - text += w->w; - } - break; - case CTK_WIDGET_BUTTON: - if(ypos >= clipy1 && ypos < clipy2) { - if(wfocus != 0) { - revers(1); - } else { - revers(0); - } - cputcxy(xpos, ypos, '['); - _cputsn(w->widget.button.text, w->w); - cputc(']'); - revers(0); - } - break; - case CTK_WIDGET_HYPERLINK: - if(ypos >= clipy1 && ypos < clipy2) { - if(wfocus != 0) { - revers(0); - } else { - revers(1); - } - gotoxy(xpos, ypos); - _cputsn(w->widget.button.text, w->w); - revers(0); - } - break; - case CTK_WIDGET_TEXTENTRY: - text = w->widget.textentry.text; - xscroll = 0; - if(w->widget.textentry.xpos >= w->w - 1) { - xscroll = w->widget.textentry.xpos - w->w + 1; - } - for(j = 0; j < w->h; ++j) { - if(ypos >= clipy1 && ypos < clipy2) { - if(w->widget.textentry.state == CTK_TEXTENTRY_EDIT && - w->widget.textentry.ypos == j) { - revers(0); - cputcxy(xpos, ypos, '>'); - c = 1; - for(i = 0; i < w->w; ++i) { - if(c != 0) { - c = text[i + xscroll]; - } - if(i == w->widget.textentry.xpos - xscroll) { - revers(1); - } else { - revers(0); - } - if(c == 0) { - cputc(' '); - } else { - cputc(c); - } - revers(0); - } - cputc('<'); - } else { - if(wfocus != 0 && j == w->widget.textentry.ypos) { - revers(1); - } else { - revers(0); - } - cvlinexy(xpos, ypos, 1); - gotoxy(xpos + 1, ypos); - _cputsn(text, w->w); - i = wherex(); - if(i - xpos - 1 < w->w) { - cclear(w->w - (i - xpos) + 1); - } - cvline(1); - } - } - ++ypos; - text += w->widget.textentry.len + 1; - } - revers(0); - break; - case CTK_WIDGET_ICON: - if(ypos >= clipy1 && ypos < clipy2) { - color(ctk_80col_theme.iconcolors[focus]); - - /* if(focus & 1) { - - revers(1); - } else { - revers(0); - }*/ - /* gotoxy(xpos, ypos);*/ - if(xpos >= 73) { - xpos = 73; - } - if(xpos <= 2) { - xpos = 2; - } - if(w->widget.icon.textmap != NULL) { - ctk_80col_bitmapptr = w->widget.icon.bitmap; - for(i = 0; i < 3; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - gotoxy(xpos, ypos); - ctk_80col_draw_bitmapline(3); - } - ctk_80col_bitmapptr += 3 * 8; - ++ypos; - } - } - x = xpos; - - len = strlen(w->widget.icon.title); - if(x + len >= SCREEN_WIDTH) { - x = SCREEN_WIDTH - len; - } - - if(ypos >= clipy1 && ypos < clipy2) { - len = strlen(w->widget.icon.title); - gotoxy((x & 0xfe) + 1, ypos); - ctk_80col_cclear((len - 1)/ 2); - gotoxy(x, ypos); - ctk_80col_cputsn(w->widget.icon.title, len); - } - revers(0); - } - break; - - default: - break; - } -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_widget(struct ctk_widget *w, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - struct ctk_window *win = w->window; - unsigned char posx, posy; - - posx = (win->x & 0xfe) + 1; - posy = win->y + 2; - - if(w == win->focused) { - focus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, posx, posy, - posx + win->w, - posy + win->h, - clipy1, clipy2, - focus); - -#ifdef CTK_CONIO_CONF_UPDATE - CTK_CONIO_CONF_UPDATE(); -#endif /* CTK_CONIO_CONF_UPDATE */ -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear_window(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - unsigned char i; - unsigned char h; - - if(focus & CTK_FOCUS_WINDOW) { - color(COLOR_FOCUS_WINDOW); - } else { - color(COLOR_BACKGROUND_WINDOW); - } - - h = window->y + 2 + window->h; - /* Clear window contents. */ - for(i = window->y + 2; i < h; ++i) { - if(i >= clipy1 && i < clipy2) { - gotoxy((window->x & 0xfe) + 1, i); - ctk_80col_cclear((window->w + 1)/2); - } - } -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_window_contents(struct ctk_window *window, unsigned char focus, - unsigned char clipy1, unsigned char clipy2, - unsigned char x1, unsigned char x2, - unsigned char y1, unsigned char y2) -{ - struct ctk_widget *w; - unsigned char wfocus; - - /* Draw inactive widgets. */ - for(w = window->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - focus); - } - - /* Draw active widgets. */ - for(w = window->active; w != NULL; w = w->next) { - wfocus = focus; - if(w == window->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - wfocus); - } - -#ifdef CTK_CONIO_CONF_UPDATE - CTK_CONIO_CONF_UPDATE(); -#endif /* CTK_CONIO_CONF_UPDATE */ - -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_window(struct ctk_window *window, unsigned char focus, - unsigned char clipy1, unsigned char clipy2, - unsigned char draw_borders) -{ - unsigned char x, y; - unsigned char h; - unsigned char x1, y1, x2, y2; - - - if(window->y + 1 >= clipy2) { - return; - } - - x = window->x & 0xfe; - y = window->y + 1; - -/* if(focus & CTK_FOCUS_WINDOW) { - } else { - }*/ - - x1 = x + 1; - y1 = y + 1; - x2 = x1 + window->w; - y2 = y1 + window->h; - - /* Draw window frame. */ - gotoxy(x, y); - ctk_80col_windowparams.w = (window->w-1)/2; - ctk_80col_windowparams.h = window->h; - if(clipy1 < y) { - ctk_80col_windowparams.clipy1 = 0; - } else { - ctk_80col_windowparams.clipy1 = clipy1 - y; - } - ctk_80col_windowparams.clipy2 = clipy2 - y + 1; - ctk_80col_windowparams.color1 = ctk_80col_theme.windowcolors[focus]; - ctk_80col_windowparams.color2 = ctk_80col_theme.windowcolors[focus]; - ctk_80col_windowparams.titlecolor = ctk_80col_theme.windowcolors[focus+1]; - ctk_80col_windowparams.title = window->title; - ctk_80col_windowparams.titlelen = window->titlelen/2; - - if(ctk_80col_windowparams.clipy1 < ctk_80col_windowparams.clipy2 && - ctk_80col_windowparams.clipy2 > 0) { - ctk_80col_draw_windowborders(); - } - /* - if(y >= clipy1) { - cputcxy(x, y, CH_ULCORNER); - gotoxy(wherex() + window->titlelen + CTK_CONF_WINDOWMOVE * 2, wherey()); - chline(window->w - (wherex() - x) - 2); - cputcxy(x2, y, CH_URCORNER); - } - - h = window->h; - - if(clipy1 > y1) { - if(clipy1 - y1 < h) { - h = clipy1 - y1; - y1 = clipy1; - } else { - h = 0; - } - } - - if(clipy2 < y1 + h) { - if(y1 >= clipy2) { - h = 0; - } else { - h = clipy2 - y1; - } - } - - cvlinexy(x, y1, h); - cvlinexy(x2, y1, h); - - if(y + window->h >= clipy1 && - y + window->h < clipy2) { - cputcxy(x, y2, CH_LLCORNER); - chlinexy(x1, y2, window->w); - cputcxy(x2, y2, CH_LRCORNER); - } - */ - if(ctk_mode_get() != CTK_MODE_WINDOWMOVE) { - draw_window_contents(window, focus, clipy1, clipy2, - x1, x2, y + 1, y2); - } -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_dialog(struct ctk_window *dialog) -{ - unsigned char x, y; - unsigned char i; - unsigned char x1, y1, x2, y2; - - - x = dialog->x & 0xfe; - y = dialog->y + 1; - - - x1 = x + 1; - y1 = y + 1; - x2 = x1 + dialog->w; - y2 = y1 + dialog->h; - - - /* Draw dialog frame. */ - - /* cvlinexy(x, y1, - dialog->h); - cvlinexy(x2, y1, - dialog->h); - - chlinexy(x1, y, - dialog->w); - chlinexy(x1, y2, - dialog->w); - - cputcxy(x, y, CH_ULCORNER); - cputcxy(x, y2, CH_LLCORNER); - cputcxy(x2, y, CH_URCORNER); - cputcxy(x2, y2, CH_LRCORNER); - */ - gotoxy(x, y); - ctk_80col_windowparams.w = (dialog->w-1)/2; - ctk_80col_windowparams.h = dialog->h; - ctk_80col_windowparams.clipy1 = 0; - ctk_80col_windowparams.clipy2 = SCREEN_HEIGHT; - ctk_80col_windowparams.color1 = ctk_80col_theme.windowcolors[4]; - ctk_80col_windowparams.color2 = ctk_80col_theme.windowcolors[4]; - ctk_80col_windowparams.titlecolor = ctk_80col_theme.windowcolors[5]; - - ctk_80col_draw_windowborders(); - - /* Clear dialog contents. */ - color(COLOR_DIALOG); - for(i = y1; i < y2; ++i) { - gotoxy((x1 & 0xfe) + 2, i); - ctk_80col_cclear((dialog->w + 1)/2 - 2); - /* cclearxy(x1, i, dialog->w);*/ - } - - draw_window_contents(dialog, CTK_FOCUS_DIALOG, 0, SCREEN_HEIGHT, - x1, x2, y1, y2); -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear(unsigned char y1, unsigned char y2) -{ - unsigned char i; - - - for(i = y1; i < y2; ++i) { - - ctk_80col_clear_line(i); - } -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_menu(struct ctk_menu *m) -{ - unsigned char x, x2, y; - - color(ctk_80col_theme.openmenucolor); - - revers(0); - x = wherex(); - _cputs(m->title); - cputc(' '); - x2 = wherex(); - if(x + CTK_CONF_MENUWIDTH > SCREEN_WIDTH) { - x = SCREEN_WIDTH - CTK_CONF_MENUWIDTH - 2; - } - - for(y = 0; y < m->nitems; ++y) { - if(y == m->active) { - color(ctk_80col_theme.activemenucolor); - } else { - color(ctk_80col_theme.openmenucolor); - } - gotoxy(x, y + 1); - ctk_80col_cclear(CTK_CONF_MENUWIDTH/2); - - gotoxy(x, y + 1); - if(m->items[y].title[0] == '-') { - chline(CTK_CONF_MENUWIDTH); - } else { - /* _cputs(m->items[y].title);*/ - ctk_80col_cputsn(m->items[y].title, m->items[y].titlelen); - } - /* if(x + CTK_CONF_MENUWIDTH > wherex()) { - cclear(x + CTK_CONF_MENUWIDTH - wherex()); - }*/ - - } - gotoxy(x2, 0); - revers(1); - -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_menus(struct ctk_menus *menus) -{ - struct ctk_menu *m; - - memcpy((char *)0xe000, ctk_80col_theme.menuleftpattern, 8); - /* Draw menus */ - gotoxy(2, 0); - - revers(1); - for(m = menus->menus->next; m != NULL; m = m->next) { - color(ctk_80col_theme.menucolor); - if(m != menus->open) { - /* _cputs(m->title);*/ - ctk_80col_cputsn(m->title, m->titlelen); - cputc(' '); - } else { - draw_menu(m); - } - } - - color(ctk_80col_theme.menucolor); - - if(wherex() + strlen(menus->desktopmenu->title) + 2 >= SCREEN_WIDTH) { - gotoxy(SCREEN_WIDTH - strlen(menus->desktopmenu->title) - 2, 0); - } else { - cclear(SCREEN_WIDTH - wherex() - - strlen(menus->desktopmenu->title) - 2); - } - - /* Draw desktopmenu */ - if(menus->desktopmenu != menus->open) { - ctk_80col_cputsn(menus->desktopmenu->title, menus->desktopmenu->titlelen); - } else { - draw_menu(menus->desktopmenu); - } - - /* gotoxy(78, 0); - color(ctk_80col_screencolors[0]); - cputc(' '); - cputc(' '); */ - - revers(0); - memcpy((char *)0xe138, ctk_80col_theme.menurightpattern, 8); -} -/*-----------------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_height(void) -{ - return SCREEN_HEIGHT; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_width(void) -{ - return SCREEN_WIDTH; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_xtoc(unsigned short x) -{ - return x / 4; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_ytoc(unsigned short y) -{ - return y / 8; -} -/*-----------------------------------------------------------------------------------*/ - -SERVICE(ctk_hires_service, ctk_draw_service, -{ 1, - 1, - 1, - s_ctk_draw_init, - s_ctk_draw_clear, - s_ctk_draw_clear_window, - s_ctk_draw_window, - s_ctk_draw_dialog, - s_ctk_draw_widget, - s_ctk_draw_menus, - s_ctk_draw_width, - s_ctk_draw_height, - s_ctk_mouse_xtoc, - s_ctk_mouse_ytoc }); - -/*--------------------------------------------------------------------------*/ - -PROCESS(ctk_hires_service_process, "CTK hires service"); - -PROCESS_THREAD(ctk_hires_service_process, ev, data) { - PROCESS_BEGIN(); - - s_ctk_draw_init(); - ctk_restore(); - - SERVICE_REGISTER(ctk_hires_service); - - while(ev != PROCESS_EVENT_SERVICE_REMOVED && - ev != PROCESS_EVENT_EXIT) { - PROCESS_WAIT_EVENT(); - } - - SERVICE_REMOVE(ctk_hires_service); - - VIC.ctrl1 = 0x1b; /* $D011 */ - VIC.addr = 0x17; /* $D018 */ - VIC.ctrl2 = 0xc8; /* $D016 */ - CIA2.pra = 0x03; /* $DD00 */ - - PROCESS_END(); -} -/*--------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/ctk/ctk-arch.h b/backyard/platform/c64/ctk/ctk-arch.h deleted file mode 100644 index a7b48760e..000000000 --- a/backyard/platform/c64/ctk/ctk-arch.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-arch.h,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#ifndef __CTK_ARCH_H__ -#define __CTK_ARCH_H__ - -#if CTK_HIRES -#include "ctk-hires.h" -#endif - -#if CTK_CONIO -#include "ctk-conio.h" -#endif - -#if CTK_VNCSERVER -#include "ctk-vncarch.h" -#endif - -#include - -#define ctk_arch_isprint(c) isprint(c) - -#endif /* __CTK_ARCH_H__ */ diff --git a/backyard/platform/c64/ctk/ctk-hires-asm.S b/backyard/platform/c64/ctk/ctk-hires-asm.S deleted file mode 100644 index 8d5251044..000000000 --- a/backyard/platform/c64/ctk/ctk-hires-asm.S +++ /dev/null @@ -1,934 +0,0 @@ - -;--------------------------------------------------------------------- - .importzp ptr1, ptr2, ptr3, ptr4, sreg - .importzp sp - - .import incsp2 - - - .import _ctk_hires_cursx - .import _ctk_hires_cursy - .import _ctk_hires_color - .import _ctk_hires_underline - .import _ctk_hires_reversed - - .import _ctk_hires_yscreenaddr - .import _ctk_hires_yhiresaddr - - .import _ctk_hires_windowparams - - .import _ctk_hires_bitmapptr - - .import _ctk_hires_theme - - .export _ctk_hires_cclear - .export _ctk_hires_chline - .export _ctk_hires_cputc - .export _ctk_hires_cputsn - - .export _ctk_hires_draw_buttonleft - .export _ctk_hires_draw_buttonright - - .export _ctk_hires_draw_windowborders - - .export _ctk_hires_draw_bitmapline -;--------------------------------------------------------------------- - -ptr5 = sreg - - ;; Offsets in the theme struct - - ulcornerpattern = 8 - titlebarpattern = ulcornerpattern+8 - urcornerpattern = titlebarpattern+8 - rborderpattern = urcornerpattern+8 - lrcornerpattern = rborderpattern+8 - lowerborderpattern = lrcornerpattern+8 - llcornerpattern = lowerborderpattern+8 - lborderpattern = llcornerpattern+8 - - - buttonleftpattern = lborderpattern+8 - buttonrightpattern = buttonleftpattern+8 - - -.bss -tmp01: .res 1 -tmpl: .res 1 -tmpf: .res 1 -tmpc: .res 1 -tmpw: .res 1 -tmpptr: .res 2 - -tmpy: .res 1 -tmph: .res 1 - - ;; Window border parameters -w: .res 1 -wpw = 0 -h: .res 1 -wph = 1 -clipy1: .res 1 -wpclipy1 = 2 -clipy2: .res 1 -wpclipy2 = 3 -color1: .res 1 -wpcolor1 = 4 -color2: .res 1 -wpcolor2 = 5 -titlelen: .res 1 -wptitlelen = 6 -title: .res 2 -wptitle = 7 - -;--------------------------------------------------------------------- -.data -;--------------------------------------------------------------------- -.code -setupptrs: - ;; Find hires address. - lda _ctk_hires_cursy - asl - tax - lda _ctk_hires_yhiresaddr,x - sta ptr2 - lda _ctk_hires_yhiresaddr+1,x - sta ptr2+1 - - ;; Add X coordinate to the hires address. - lda #0 - sta ptr1+1 - lda _ctk_hires_cursx - asl - rol ptr1+1 - asl - rol ptr1+1 - asl - rol ptr1+1 - clc - adc ptr2 - sta ptr2 - lda ptr2+1 - adc ptr1+1 - sta ptr2+1 - - - ;; Find screen address. - lda _ctk_hires_cursy - asl - tax - lda _ctk_hires_yscreenaddr,x - clc - adc _ctk_hires_cursx - sta ptr1 - lda _ctk_hires_yscreenaddr+1,x - adc #0 - sta ptr1+1 - - ;; Turn off interrupts, prepare $01 to store color data in RAM - ;; under I/O area. - sei - lda $01 - sta tmp01 - and #$f8 - sta $01 - rts -;--------------------------------------------------------------------- -restore01: - lda tmp01 - sta $01 - cli - rts -;--------------------------------------------------------------------- -_ctk_hires_cclear: - sta tmpl - cmp #0 - bne @norts - rts -@norts: - - jsr setupptrs - - ;; Store color value in color memory - - ldy tmpl - dey - lda _ctk_hires_color -@loop0: - sta (ptr1),y - dey - bpl @loop0 - - ;; Store either $00 or $ff in hires memory, depending on the - ;; reversed flag - - ldx tmpl - lda _ctk_hires_reversed - beq @noff - lda #$ff -@noff: - sta tmpf -@loop1: - ldy #7 - lda tmpf -@loop2: - sta (ptr2),y - dey - bpl @loop2 - - lda ptr2 - clc - adc #8 - sta ptr2 - bcc @noinc - inc ptr2+1 -@noinc: - - inc _ctk_hires_cursx - - dex - bne @loop1 - - jmp restore01 -;--------------------------------------------------------------------- -_ctk_hires_chline: - sta tmpl - cmp #0 - bne @norts - rts -@norts: - - jsr setupptrs - - ;; Store color value in color memory - - ldy tmpl - dey - lda _ctk_hires_color -@loop0: - sta (ptr1),y - dey - bpl @loop0 - - ;; Store horizontal line pattern in hires memory - ldx tmpl -@loop1: - ldy #0 - lda #$00 - sta (ptr2),y - iny - lda #$00 - sta (ptr2),y - iny - lda #$00 - sta (ptr2),y - iny - lda #$ff - sta (ptr2),y - iny - lda #$ff - sta (ptr2),y - iny - lda #$00 - sta (ptr2),y - iny - lda #$00 - sta (ptr2),y - iny - lda #$00 - sta (ptr2),y - - - lda ptr2 - clc - adc #8 - sta ptr2 - bcc @noinc - inc ptr2+1 -@noinc: - - inc _ctk_hires_cursx - - dex - bne @loop1 - - jmp restore01 -;--------------------------------------------------------------------- -_ctk_hires_cputc: - sta tmpc - - jsr setupptrs - - ldy #0 - lda _ctk_hires_color - sta (ptr1),y - - ;; Turn on font ROM - lda tmp01 - and #$f8 - ora #$01 - sta $01 - - lda #0 - sta ptr1+1 - - ;; Convert from PETSCII to screen encoding - lda tmpc - eor #$e0 - clc - adc #$20 - bpl @cont - adc #$40 - bpl @cont - eor #$a0 -@cont: - ldx _ctk_hires_reversed - beq :+ - eor #$80 -: - - ;; Convert to address in character ROM - asl - rol ptr1+1 - asl - rol ptr1+1 - asl - rol ptr1+1 - sta ptr1 - lda #$d8 - adc ptr1+1 - sta ptr1+1 - - ;; Print on hires screen, bottom-up. If we should underline, - ;; we do this by eor:ing the bottom line with #$ff - ldy #7 - lda (ptr1),y - ldx _ctk_hires_underline - beq @nounderline - eor #$ff -@nounderline: - sta (ptr2),y - dey -@loop: - lda (ptr1),y - sta (ptr2),y - dey - bpl @loop - - inc _ctk_hires_cursx - - jmp restore01 -;--------------------------------------------------------------------- -_ctk_hires_cputsn: - sta tmpl - cmp #0 - bne :+ - rts -: - - jsr setupptrs - - ldy tmpl - dey - lda _ctk_hires_color -@loop0: - sta (ptr1),y - dey - bpl @loop0 - - ;; Turn on font ROM - lda tmp01 - and #$f8 - ora #$01 - sta $01 - - - ;; Output each character from the string - lda #0 - sta tmpc - ldy #0 - lda (sp),y - sta ptr3 - iny - lda (sp),y - sta ptr3+1 - -@loop1: - - lda #0 - sta ptr1+1 - - ldy tmpc - lda (ptr3),y - beq @end - - ;; Convert from PETSCII to screen encoding - eor #$e0 - clc - adc #$20 - bpl @cont - adc #$40 - bpl @cont - eor #$a0 -@cont: - ldx _ctk_hires_reversed - beq :+ - eor #$80 -: - - ;; Convert to address in character ROM - asl - rol ptr1+1 - asl - rol ptr1+1 - asl - rol ptr1+1 - sta ptr1 - lda #$d8 - adc ptr1+1 - sta ptr1+1 - - ;; Print on hires screen, bottom-up. If we should underline, - ;; we do this by eor:ing the bottom line with #$ff - ldy #7 - lda (ptr1),y - ldx _ctk_hires_underline - beq @nounderline - eor #$ff -@nounderline: - sta (ptr2),y - dey -@loop: - lda (ptr1),y - sta (ptr2),y - dey - bpl @loop - - inc _ctk_hires_cursx - - lda ptr2 - clc - adc #8 - sta ptr2 - bcc :+ - inc ptr2+1 -: - inc tmpc - lda tmpc - cmp tmpl - bne @loop1 - -@end: - jsr restore01 - - jmp incsp2 - -;--------------------------------------------------------------------- -_ctk_hires_draw_windowborders: - - jsr setupptrs - - lda _ctk_hires_windowparams + wpclipy1 - beq :+ - jmp @nofirstline -: - - ;; Draw first line of the border, including the window title - - ;; Start with filling color memory - ldy _ctk_hires_windowparams + wpw - iny - lda _ctk_hires_windowparams + wpcolor1 - sta (ptr1),y - dey - dey - dey - sty tmpw - - ldy _ctk_hires_windowparams + wptitlelen - iny - iny - iny -: - sta (ptr1),y - iny - cpy tmpw - bcc :- - - inc tmpw - - ;; Set color for upper left corner - ldy #0 - lda _ctk_hires_windowparams + wpcolor1 - sta (ptr1),y - - - ;; Turn on font ROM for drawing the title - lda tmp01 - and #$f8 - ora #$01 - sta $01 - - ;; Use a temporary pointer (ptr3) rather than ptr2 so we can - ;; reuse it later. - lda ptr2 - sta ptr3 - lda ptr2+1 - sta ptr3+1 - - ;; Draw upper left corner - ldy #7 -: - lda _ctk_hires_theme+ulcornerpattern,y - sta (ptr3),y - dey - bpl :- - - ;; Draw first empty char left of the title - ldy #8 - lda #0 -: -; sta (ptr3),y - iny - cpy #$10 - bne :- - - lda ptr3 - clc - adc #$10 - sta ptr3 - bcc :+ - inc ptr3+1 -: - dec tmpw - - ;; Draw the title - lda _ctk_hires_windowparams + wptitle - sta ptr4 - lda _ctk_hires_windowparams + wptitle+1 - sta ptr4+1 - - - lda #0 - sta tmpc -@titleloop: - lda #0 - sta ptr5+1 - - ldy tmpc - lda (ptr4),y - - - ;; Convert from PETSCII to screen encoding - eor #$e0 - clc - adc #$20 - bpl @cont - adc #$40 - bpl @cont - eor #$a0 -@cont: - ;; Convert to address in character ROM - asl - rol ptr5+1 - asl - rol ptr5+1 - asl - rol ptr5+1 - sta ptr5 - lda #$d8 - adc ptr5+1 - sta ptr5+1 - - ;; Print on hires screen, character by character, bottom-up. - ldy #7 -: - lda (ptr5),y -; sta (ptr3),y - dey - bpl :- - - lda ptr3 - clc - adc #8 - sta ptr3 - bcc :+ - inc ptr3+1 -: - dec tmpw - - inc tmpc - lda tmpc - cmp _ctk_hires_windowparams + wptitlelen - bne @titleloop - - ;; Draw empty char after the title - ldy #7 - lda #0 -: -; sta (ptr3),y - dey - bpl :- - - lda ptr3 - clc - adc #$8 - sta ptr3 - bcc :+ - inc ptr3+1 -: - dec tmpw - - ;; Draw window title bar pattern -@titlebarloop: - ldy #7 -: - lda _ctk_hires_theme+titlebarpattern,y - sta (ptr3),y - dey - bpl :- - - lda ptr3 - clc - adc #$8 - sta ptr3 - bcc :+ - inc ptr3+1 -: - ;; Loop until we are three characters away from right border - ;; to avoid flickering since we would be overwriting the close - ;; button. - dec tmpw - lda tmpw - cmp #3 - bcs @titlebarloop - - lda ptr3 - clc - adc #$18 - sta ptr3 - bcc :+ - inc ptr3+1 -: - ;; Draw upper right corner piece - ldy #7 -: - lda _ctk_hires_theme+urcornerpattern,y - sta (ptr3),y - dey - bpl :- - - -@nofirstline: - - - ldx _ctk_hires_windowparams + wph - inx - stx tmph - - ;; Draw left and right borders - - ;; Fill color memory (pointer in ptr1, setup by setupptrs) - - ;; First check how much we actually should draw by inspecting - ;; the clipy1 and clipy2 fields in the _ctk_hires_windowparams - ;; structure - - lda #1 - sta tmpy - - ldx _ctk_hires_windowparams + wpclipy1 -@clipy1loop: - cpx #0 - beq @clipy1loopend - lda ptr1 - clc - adc #$28 - sta ptr1 - bcc :+ - inc ptr1+1 -: - lda ptr3 - clc - adc #$40 - sta ptr3 - lda ptr3+1 - adc #1 - sta ptr3+1 - - inc tmpy - - dex - jmp @clipy1loop -@clipy1loopend: - - lda ptr1 - clc - adc #$28 - sta ptr1 - bcc :+ - inc ptr1+1 -: - - ldx tmpy - ldy _ctk_hires_windowparams + wpw - iny - sty tmpw -@bordercloop: - cpx _ctk_hires_windowparams + wpclipy2 - beq @bordercloopend - - ldy tmpw - lda _ctk_hires_windowparams + wpcolor2 - sta (ptr1),y - ldy #0 - lda _ctk_hires_windowparams + wpcolor1 - sta (ptr1),y - - lda ptr1 - clc - adc #$28 - sta ptr1 - bcc :+ - inc ptr1+1 -: - - inx - cpx tmph - bcc @bordercloop - beq @bordercloop -@bordercloopend: - - - ;; Fill color memory for lower border, if clipy2 allows - cpx _ctk_hires_windowparams + wpclipy2 - beq @noclowerborder - - lda ptr1 - sec - sbc #$28 - sta ptr1 - bcs :+ - dec ptr1+1 -: - - ldy _ctk_hires_windowparams + wpw - lda _ctk_hires_windowparams + wpcolor2 -@lbordercloop: - sta (ptr1),y - dey - bne @lbordercloop - -@noclowerborder: - - ;; Draw right border - ldx tmpy -@rborderloop: - cpx _ctk_hires_windowparams + wpclipy2 - beq @rborderloopend - - lda ptr3 - clc - adc #$40 - sta ptr3 - lda ptr3+1 - adc #1 - sta ptr3+1 - - ldy #7 -: - lda _ctk_hires_theme+rborderpattern,y - sta (ptr3),y - dey - bpl :- - - inx - cpx tmph - bne @rborderloop -@rborderloopend: - - cpx _ctk_hires_windowparams + wpclipy2 - beq @norbordercorner - - lda ptr3 - clc - adc #$40 - sta ptr3 - lda ptr3+1 - adc #1 - sta ptr3+1 - - ;; Draw lower right corner, if clipy2 allows it - ldy #7 -: - lda _ctk_hires_theme+lrcornerpattern,y - sta (ptr3),y - dey - bpl :- - -@norbordercorner: - - stx tmpy - - ;; Draw lower border - ldx _ctk_hires_windowparams + wpw - -@lowerborderloop: - lda ptr3 - sec - sbc #$8 - sta ptr3 - bcs :+ - dec ptr3+1 -: - - lda tmpy - cmp _ctk_hires_windowparams + wpclipy2 - beq @nolowerborder - - ldy #7 -: - lda _ctk_hires_theme+lowerborderpattern,y - sta (ptr3),y - dey - bpl :- -@nolowerborder: - - dex - bne @lowerborderloop - - lda ptr3 - sec - sbc #$8 - sta ptr3 - bcs :+ - dec ptr3+1 -: - - - ldx tmpy - cpx tmph - bne @nolbordercorner - - ;; Draw lower left corner, if clipy2 allows it - ldy #7 -: - lda _ctk_hires_theme+llcornerpattern,y - sta (ptr3),y - dey - bpl :- - - lda ptr3 - sec - sbc #$40 - sta ptr3 - lda ptr3+1 - sbc #1 - sta ptr3+1 - -@nolbordercorner: - - ;; Draw left border - - - -@lborderloop: - cpx #1 - beq @lborderloopend - cpx _ctk_hires_windowparams + wpclipy1 - bcc @lborderloopend - - ldy #7 -: - lda _ctk_hires_theme+lborderpattern,y - sta (ptr3),y - dey - bpl :- - - lda ptr3 - sec - sbc #$40 - sta ptr3 - lda ptr3+1 - sbc #1 - sta ptr3+1 - - dex - jmp @lborderloop - -@lborderloopend: - - - jmp restore01 -;--------------------------------------------------------------------- -_ctk_hires_draw_buttonleft: - jsr setupptrs - - ldy #0 - lda _ctk_hires_color - sta (ptr1),y - -: - lda _ctk_hires_theme+buttonleftpattern,y - sta (ptr2),y - iny - cpy #8 - bne :- - - jmp restore01 -;--------------------------------------------------------------------- -_ctk_hires_draw_buttonright: - jsr setupptrs - ldy #0 - lda _ctk_hires_color - sta (ptr1),y - -: - lda _ctk_hires_theme+buttonrightpattern,y - sta (ptr2),y - iny - cpy #8 - bne :- - - jmp restore01 -;--------------------------------------------------------------------- -_ctk_hires_draw_bitmapline: - sta tmpl - cmp #0 - bne :+ - rts -: - - jsr setupptrs - - ldy #0 - lda _ctk_hires_color -: - sta (ptr1),y - iny - cpy tmpl - bne :- - - lda _ctk_hires_bitmapptr - sta ptr1 - lda _ctk_hires_bitmapptr+1 - sta ptr1+1 - - ldy #0 - ldx #0 -: - lda (ptr1),y - sta (ptr2),y - iny - inx - cpx #8 - bne :- - - ldx #0 - - dec tmpl - bne :- - - jmp restore01 -;--------------------------------------------------------------------- - \ No newline at end of file diff --git a/backyard/platform/c64/ctk/ctk-hires-asm.h b/backyard/platform/c64/ctk/ctk-hires-asm.h deleted file mode 100644 index ec7d9f5be..000000000 --- a/backyard/platform/c64/ctk/ctk-hires-asm.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-hires-asm.h,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#ifndef __CTK_HIRES_ASM_H__ -#define __CTK_HIRES_ASM_H__ - -void __fastcall__ ctk_hires_cclear(unsigned char len); -void __fastcall__ ctk_hires_chline(unsigned char len); -void __fastcall__ ctk_hires_cputc(unsigned char c); -void __fastcall__ ctk_hires_cputsn(unsigned char *str, - unsigned char len); - -void ctk_hires_draw_buttonleft(void); -void ctk_hires_draw_buttonright(void); - -struct ctk_hires_windowparams { - unsigned char w; - unsigned char h; - unsigned char clipy1; - unsigned char clipy2; - unsigned char color1; - unsigned char color2; - unsigned char titlelen; - char *title; -}; -extern struct ctk_hires_windowparams ctk_hires_windowparams; -void ctk_hires_draw_windowborders(void); - -extern unsigned char ctk_hires_cursx, - ctk_hires_cursy, - ctk_hires_color, - ctk_hires_reversed, - ctk_hires_underline; - - -void __fastcall__ ctk_hires_draw_bitmapline(unsigned char len); - -#endif /* __CTK_HIRES_ASM_H__ */ diff --git a/backyard/platform/c64/ctk/ctk-hires-service.c b/backyard/platform/c64/ctk/ctk-hires-service.c deleted file mode 100644 index 67223c5d9..000000000 --- a/backyard/platform/c64/ctk/ctk-hires-service.c +++ /dev/null @@ -1,925 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-hires-service.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#include "contiki-version.h" - -#include "ctk/ctk.h" -#include "ctk/ctk-draw.h" -#include "ctk/ctk-draw-service.h" - -#include "ctk-hires.h" -#include "ctk-hires-asm.h" -#include "ctk-hires-theme.h" - -#include - -#ifndef NULL -#define NULL (void *)0 -#endif /* NULL */ - -#define SCREEN_HEIGHT 25 -#define SCREEN_WIDTH 40 - -#define SCREENADDR 0xdc00 -#define HIRESADDR 0xe000 - -static unsigned char lineptr; - -unsigned char ctk_hires_cursx, ctk_hires_cursy; -unsigned char ctk_hires_reversed; -unsigned char ctk_hires_color; -unsigned char ctk_hires_underline; - -/*static unsigned char cchar; - -static unsigned char tmp01; -static unsigned char tmph, tmpl, tmpborder; -static unsigned char *tmpptr;*/ - - -static unsigned char x, y, i; -/*static unsigned char h;*/ -static unsigned char wfocus; -static unsigned char x1, y1, x2, y2; - -struct ctk_hires_windowparams ctk_hires_windowparams; -unsigned char *ctk_hires_bitmapptr; - -/*unsigned char ctk_draw_windowborder_height = 1; -unsigned char ctk_draw_windowborder_width = 1; -unsigned char ctk_draw_windowtitle_height = 1;*/ - -static void s_ctk_draw_clear(unsigned char y1, unsigned char y2); - - -/*-----------------------------------------------------------------------------------*/ -/* Tables. */ - -unsigned short ctk_hires_yscreenaddr[25] = - {0 * SCREEN_WIDTH + SCREENADDR, 1 * SCREEN_WIDTH + SCREENADDR, - 2 * SCREEN_WIDTH + SCREENADDR, 3 * SCREEN_WIDTH + SCREENADDR, - 4 * SCREEN_WIDTH + SCREENADDR, 5 * SCREEN_WIDTH + SCREENADDR, - 6 * SCREEN_WIDTH + SCREENADDR, 7 * SCREEN_WIDTH + SCREENADDR, - 8 * SCREEN_WIDTH + SCREENADDR, 9 * SCREEN_WIDTH + SCREENADDR, - 10 * SCREEN_WIDTH + SCREENADDR, 11 * SCREEN_WIDTH + SCREENADDR, - 12 * SCREEN_WIDTH + SCREENADDR, 13 * SCREEN_WIDTH + SCREENADDR, - 14 * SCREEN_WIDTH + SCREENADDR, 15 * SCREEN_WIDTH + SCREENADDR, - 16 * SCREEN_WIDTH + SCREENADDR, 17 * SCREEN_WIDTH + SCREENADDR, - 18 * SCREEN_WIDTH + SCREENADDR, 19 * SCREEN_WIDTH + SCREENADDR, - 20 * SCREEN_WIDTH + SCREENADDR, 21 * SCREEN_WIDTH + SCREENADDR, - 22 * SCREEN_WIDTH + SCREENADDR, 23 * SCREEN_WIDTH + SCREENADDR, - 24 * SCREEN_WIDTH + SCREENADDR}; - -unsigned short ctk_hires_yhiresaddr[25] = - {0 * 320 + HIRESADDR, 1 * 320 + HIRESADDR, - 2 * 320 + HIRESADDR, 3 * 320 + HIRESADDR, - 4 * 320 + HIRESADDR, 5 * 320 + HIRESADDR, - 6 * 320 + HIRESADDR, 7 * 320 + HIRESADDR, - 8 * 320 + HIRESADDR, 9 * 320 + HIRESADDR, - 10 * 320 + HIRESADDR, 11 * 320 + HIRESADDR, - 12 * 320 + HIRESADDR, 13 * 320 + HIRESADDR, - 14 * 320 + HIRESADDR, 15 * 320 + HIRESADDR, - 16 * 320 + HIRESADDR, 17 * 320 + HIRESADDR, - 18 * 320 + HIRESADDR, 19 * 320 + HIRESADDR, - 20 * 320 + HIRESADDR, 21 * 320 + HIRESADDR, - 22 * 320 + HIRESADDR, 23 * 320 + HIRESADDR, - 24 * 320 + HIRESADDR}; -extern struct ctk_hires_theme ctk_hires_theme; -struct ctk_hires_theme *ctk_hires_theme_ptr = &ctk_hires_theme; -/*-----------------------------------------------------------------------------------*/ -#define hires_wherex() ctk_hires_cursx -#define hires_revers(c) ctk_hires_reversed = c -#define hires_color(c) ctk_hires_color = c -#define hires_underline(c) ctk_hires_underline = c -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_cvline(unsigned char length) -{ - static unsigned char i; - - for(i = 0; i < length; ++i) { - ctk_hires_cputc('|'); - --ctk_hires_cursx; - ++ctk_hires_cursy; - } -} -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_gotoxy(unsigned char x, unsigned char y) -{ - ctk_hires_cursx = x; - ctk_hires_cursy = y; -} -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_cclearxy(unsigned char x, unsigned char y, unsigned char length) -{ - hires_gotoxy(x, y); - ctk_hires_cclear(length); -} -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_chlinexy(unsigned char x, unsigned char y, unsigned char length) -{ - hires_gotoxy(x, y); - ctk_hires_chline(length); -} -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_cvlinexy(unsigned char x, unsigned char y, unsigned char length) -{ - hires_gotoxy(x, y); - hires_cvline(length); -} -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_cputcxy(unsigned char x, unsigned char y, char c) -{ - hires_gotoxy(x, y); - ctk_hires_cputc(c); -} -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -clear_line(unsigned char line) -{ - lineptr = line; - asm("lda %v", lineptr); - asm("asl"); - asm("tax"); - asm("lda %v,x", ctk_hires_yhiresaddr); - asm("sta ptr2"); - asm("lda %v+1,x", ctk_hires_yhiresaddr); - asm("sta ptr2+1"); - asm("lda %v,x", ctk_hires_yscreenaddr); - asm("sta ptr1"); - asm("lda %v+1,x", ctk_hires_yscreenaddr); - asm("sta ptr1+1"); - - - asm("sei"); - asm("lda $01"); - asm("pha"); - asm("lda #$30"); - asm("sta $01"); - asm("ldy #39"); - asm("ldx %v", lineptr); - asm("lda %v+%w,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpatterncolors)); - asm("clearlineloop1:"); - asm("sta (ptr1),y"); - asm("dey"); - asm("bpl clearlineloop1"); - asm("pla"); - asm("sta $01"); - asm("cli"); - - - asm("lda %v", lineptr); - /* asm("and #7");*/ - asm("asl"); - asm("asl"); - asm("asl"); - asm("tax"); - asm("ldy #0"); - asm("clearlineloop2:"); - asm("lda %v+%w+0,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+1,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+2,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+3,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+4,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+5,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+6,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+7,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("bne clearlineloop2"); - - asm("inc ptr2+1"); - - asm("ldy #0"); - asm("clearlineloop3:"); - asm("lda %v+%w+0,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+1,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+2,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+3,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+4,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+5,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+6,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+7,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("cpy #$40"); - asm("bne clearlineloop3"); - - - if(lineptr == 24) { - hires_color(ctk_hires_theme.backgroundpatterncolors[24]); - hires_gotoxy(0, 24); - ctk_hires_cputsn(CONTIKI_VERSION_STRING, - sizeof(CONTIKI_VERSION_STRING) - 1); - } -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -nmi2(void) -{ - asm("pla"); - asm("sta $01"); - asm("pla"); - asm("rti"); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -nmi(void) -{ - asm("sei"); - asm("pha"); - asm("inc $d020"); - asm("lda $01"); - asm("pha"); - asm("lda #$36"); - asm("sta $01"); - asm("lda #>_nmi2"); - asm("pha"); - asm("lda #<_nmi2"); - asm("pha"); - asm("php"); - asm("jmp ($0318)"); - - nmi2(); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -setup_nmi(void) -{ - asm("lda #<_nmi"); - asm("sta $fffa"); - asm("lda #>_nmi"); - asm("sta $fffb"); - return; - nmi(); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -s_ctk_draw_init(void) -{ - unsigned char i, *ptr1, *ptr2; - - - setup_nmi(); - - /* Turn on hires mode, bank 0 ($c000 - $ffff) and $e000/$c000 for - hires/colors. */ - VIC.ctrl1 = 0x3b; /* $D011 */ - VIC.addr = 0x78; /* $D018 */ - VIC.ctrl2 = 0xc8; /* $D016 */ - CIA2.pra = 0x00; /* $DD00 */ - - VIC.bordercolor = ctk_hires_theme.bordercolor; /* $D020 */ - VIC.bgcolor0 = ctk_hires_theme.screencolor; /* $D021 */ - - /* Fill color memory. */ - asm("sei"); - asm("lda $01"); - asm("pha"); - asm("lda #$30"); - asm("sta $01"); - asm("ldx #0"); - asm("lda #$c0"); - asm("fillcolorloop:"); - asm("sta $dc00,x"); - asm("sta $dd00,x"); - asm("sta $de00,x"); - asm("sta $df00,x"); - asm("inx"); - asm("bne fillcolorloop"); - - /* Setup sprite pointers */ - asm("ldx #$fd"); - asm("stx $dff8"); - asm("inx"); - asm("stx $dff9"); - asm("pla"); - asm("sta $01"); - asm("cli"); - - /* Fill hires memory with 0. */ - - asm("lda $fd"); - asm("pha"); - asm("lda $fe"); - asm("pha"); - asm("lda #0"); - asm("sta $fd"); - asm("lda #$e0"); - asm("sta $fe"); - asm("ldy #0"); - asm("lda #0"); - asm("clrscrnloop:"); - asm("lda #$55"); - asm("sta ($fd),y"); - asm("iny"); - asm("lda #$aa"); - asm("sta ($fd),y"); - asm("iny"); - asm("bne clrscrnloop"); - asm("inc $fe"); - asm("lda $fe"); - asm("cmp #$ff"); - asm("bne clrscrnloop"); - - asm("ldy #$00"); - asm("clrscrnloop2:"); - asm("lda #$55"); - asm("sta $ff00,y"); - asm("iny"); - asm("lda #$aa"); - asm("sta $ff00,y"); - asm("iny"); - asm("cpy #$40"); - asm("bne clrscrnloop2"); - - - asm("pla"); - asm("sta $fe"); - asm("pla"); - asm("sta $fd"); - - - s_ctk_draw_clear(0, SCREEN_HEIGHT); - - /* Setup mouse pointer sprite. */ - asm("lda %v+%w", ctk_hires_theme, - offsetof(struct ctk_hires_theme, pointermaskcolor)); - asm("sta $d027"); - asm("lda %v+%w", ctk_hires_theme, - offsetof(struct ctk_hires_theme, pointercolor)); - asm("sta $d028"); - - ptr1 = ctk_hires_theme.pointer; - ptr2 = (unsigned char *)0xff40; - - for(i = 0; i < 0x80; ++i) { - *ptr2++ = *ptr1++; - } - - return; -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -draw_widget(register struct ctk_widget *w, - unsigned char x, unsigned char y, - unsigned char clipy1, unsigned char clipy2, - unsigned char afocus) -{ - static unsigned char xpos, ypos, xscroll; - static unsigned char i; - static char c; - static unsigned char len; - static unsigned char tmp; - static unsigned char yclipped; - static unsigned char focus; - char *text; - - xpos = x + w->x; - ypos = y + w->y; - - yclipped = 0; - if(ypos >= clipy1 && ypos < clipy2) { - yclipped = 1; - } - focus = afocus; - - - switch(w->type) { - case CTK_WIDGET_SEPARATOR: - hires_color(ctk_hires_theme.separatorcolors[focus]); - if(yclipped) { - hires_chlinexy(xpos, ypos, w->w); - } - break; - case CTK_WIDGET_LABEL: - hires_color(ctk_hires_theme.labelcolors[focus]); - text = w->widget.label.text; - for(i = 0; i < w->h; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - hires_gotoxy(xpos, ypos); - ctk_hires_cputsn(text, w->w); - tmp = w->w - (hires_wherex() - xpos); - if(tmp > 0) { - ctk_hires_cclear(tmp); - } - } - ++ypos; - text += w->w; - } - break; - case CTK_WIDGET_BUTTON: - if(yclipped) { - hires_color(ctk_hires_theme.buttonleftcolors[focus]); - hires_gotoxy(xpos, ypos); - ctk_hires_draw_buttonleft(); - hires_color(ctk_hires_theme.buttoncolors[focus]); - hires_gotoxy(xpos + 1, ypos); - ctk_hires_cputsn(w->widget.button.text, w->w); - hires_color(ctk_hires_theme.buttonrightcolors[focus]); - ctk_hires_draw_buttonright(); - } - break; - case CTK_WIDGET_HYPERLINK: - if(yclipped) { - hires_color(ctk_hires_theme.hyperlinkcolors[focus]); - hires_underline(1); - hires_gotoxy(xpos, ypos); - ctk_hires_cputsn(w->widget.button.text, w->w); - hires_underline(0); - } - break; - case CTK_WIDGET_TEXTENTRY: - if(yclipped) { - hires_color(ctk_hires_theme.textentrycolors[focus]); - - if((focus & CTK_FOCUS_WIDGET) && - w->widget.textentry.state != CTK_TEXTENTRY_EDIT) { - hires_revers(1); - } else { - hires_revers(0); - } - xscroll = 0; - tmp = w->w - 1; - if(w->widget.textentry.xpos >= tmp) { - xscroll = w->widget.textentry.xpos - tmp; - } - text = w->widget.textentry.text; - if(w->widget.textentry.state == CTK_TEXTENTRY_EDIT) { - hires_revers(0); - hires_cputcxy(xpos, ypos, '>'); - text += xscroll; - for(i = 0; i < w->w; ++i) { - c = *text; - if(i == w->widget.textentry.xpos - xscroll) { - hires_revers(1); - } else { - hires_revers(0); - } - if(c == 0) { - ctk_hires_cputc(' '); - } else { - ctk_hires_cputc(c); - } - hires_revers(0); - ++text; - } - ctk_hires_cputc('<'); - } else { - hires_cputcxy(xpos, ypos, '|'); - /* hires_gotoxy(xpos + 1, ypos); */ - ctk_hires_cputsn(text, w->w); - i = hires_wherex(); - tmp = i - xpos - 1; - if(tmp < w->w) { - ctk_hires_cclear(w->w - tmp); - } - ctk_hires_cputc('|'); - } - } - hires_revers(0); - break; - case CTK_WIDGET_ICON: - if(yclipped) { - hires_color(ctk_hires_theme.iconcolors[focus]); - - x = xpos; - len = strlen(w->widget.icon.title); - if(x + len >= SCREEN_WIDTH) { - x = SCREEN_WIDTH - len; - } - - tmp = ypos + 3; - - if(tmp < clipy2) { - hires_gotoxy(x, tmp); - ctk_hires_cputsn(w->widget.icon.title, len); - } - - hires_gotoxy(xpos, ypos); - if(w->widget.icon.bitmap != NULL) { - ctk_hires_bitmapptr = w->widget.icon.bitmap; - for(i = 0; i < 3; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - hires_gotoxy(xpos, ypos); - ctk_hires_draw_bitmapline(3); - } - ctk_hires_bitmapptr += 3 * 8; - ++ypos; - } - - /* draw_bitmap_icon(w->widget.icon.bitmap);*/ - } - - } - break; - case CTK_WIDGET_BITMAP: - hires_color(ctk_hires_theme.bitmapcolors[focus]); - ctk_hires_bitmapptr = w->widget.bitmap.bitmap; - for(i = 0; i < w->h; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - hires_gotoxy(xpos, ypos); - ctk_hires_draw_bitmapline(w->w); - } - ctk_hires_bitmapptr += w->w * 8; - ++ypos; - } - break; - - default: - break; - } -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_widget(struct ctk_widget *w, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - struct ctk_window *win = w->window; - unsigned char posx, posy; - - posx = win->x + 1; - posy = win->y + 2; - - if(w == win->focused) { - focus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, posx, posy, - clipy1, clipy2, - focus); -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear_window(register struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - static unsigned char h; - - hires_color(ctk_hires_theme.windowcolors[focus]); - - h = window->y + 2 + window->h; - /* Clear window contents. */ - for(i = window->y + 2; i < h; ++i) { - if(i >= clipy1 && i <= clipy2) { - hires_cclearxy(window->x + 1, i, window->w); - } - } -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_window(register struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, unsigned char clipy2, - unsigned char draw_borders) -{ - register struct ctk_widget *w; - - x = window->x; - y = window->y + 1; - - ++clipy2; - - if(clipy2 <= y) { - return; - } - - /* hires_color(ctk_hires_theme.windowcolors[focus+1]);*/ - - x1 = x + 1; - y1 = y + 1; - /* x2 = x1 + window->w; - y2 = y1 + window->h;*/ - - hires_gotoxy(x, y); - ctk_hires_windowparams.w = window->w; - ctk_hires_windowparams.h = window->h; - if(clipy1 < y) { - ctk_hires_windowparams.clipy1 = 0; - } else { - ctk_hires_windowparams.clipy1 = clipy1 - y; - } - ctk_hires_windowparams.clipy2 = clipy2 - y; - ctk_hires_windowparams.color1 = ctk_hires_theme.windowcolors[focus+1]; - ctk_hires_windowparams.color2 = ctk_hires_theme.windowcolors[focus]; - ctk_hires_windowparams.title = window->title; - ctk_hires_windowparams.titlelen = window->titlelen; - - if(ctk_hires_windowparams.clipy1 < ctk_hires_windowparams.clipy2 && - ctk_hires_windowparams.clipy2 > 0) { - ctk_hires_draw_windowborders(); - } - - /* Draw inactive widgets. */ - for(w = window->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, - clipy1, clipy2, - focus); - } - - /* Draw active widgets. */ - for(w = window->active; w != NULL; w = w->next) { - wfocus = focus; - if(w == window->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - draw_widget(w, x1, y1, - clipy1, clipy2, - wfocus); - } -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_dialog(register struct ctk_window *dialog) -{ - register struct ctk_widget *w; - - hires_color(ctk_hires_theme.windowcolors[CTK_FOCUS_DIALOG]); - - /* x = (SCREEN_WIDTH - dialog->w) / 2; - y = (SCREEN_HEIGHT - 1 - dialog->h) / 2; */ - x = dialog->x; - y = dialog->y + 1; - - - x1 = x + 1; - y1 = y + 1; - x2 = x1 + dialog->w; - y2 = y1 + dialog->h; - - - /* Draw dialog frame. */ - - hires_cvlinexy(x, y1, dialog->h); - hires_cvlinexy(x2, y1, dialog->h); - - hires_chlinexy(x1, y, dialog->w); - hires_chlinexy(x1, y2, dialog->w); - - hires_cputcxy(x, y, CH_ULCORNER); - hires_cputcxy(x, y2, CH_LLCORNER); - hires_cputcxy(x2, y, CH_URCORNER); - hires_cputcxy(x2, y2, CH_LRCORNER); - - - /* Clear window contents. */ - for(i = y1; i < y2; ++i) { - hires_cclearxy(x1, i, dialog->w); - } - - /* Draw inactive widgets. */ - for(w = dialog->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, - 0, SCREEN_HEIGHT, CTK_FOCUS_DIALOG); - } - - - /* Draw active widgets. */ - for(w = dialog->active; w != NULL; w = w->next) { - wfocus = CTK_FOCUS_DIALOG; - if(w == dialog->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - draw_widget(w, x1, y1, - 0, SCREEN_HEIGHT, wfocus); - } - -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear(unsigned char y1, unsigned char y2) -{ - for(i = y1; i < y2; ++i) { - clear_line(i); - } -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_menu(register struct ctk_menu *m) -{ - static unsigned char x, x2, y; - - hires_color(ctk_hires_theme.openmenucolor); - x = hires_wherex(); - ctk_hires_cputsn(m->title, m->titlelen); - ctk_hires_cputc(' '); - x2 = hires_wherex(); - if(x + CTK_CONF_MENUWIDTH > SCREEN_WIDTH) { - x = SCREEN_WIDTH - CTK_CONF_MENUWIDTH; - } - for(y = 0; y < m->nitems; ++y) { - if(y == m->active) { - hires_color(ctk_hires_theme.activemenucolor); - } else { - hires_color(ctk_hires_theme.menucolor); - } - hires_gotoxy(x, y + 1); - if(m->items[y].title[0] == '-') { - ctk_hires_chline(CTK_CONF_MENUWIDTH); - } else { - ctk_hires_cputsn(m->items[y].title, - strlen(m->items[y].title)); - } - ctk_hires_cclear(x + CTK_CONF_MENUWIDTH - hires_wherex()); - hires_revers(0); - } - hires_gotoxy(x2, 0); - hires_color(ctk_hires_theme.menucolor); -} -/*-----------------------------------------------------------------------------------*/ -static void -s_ctk_draw_menus(struct ctk_menus *menus) -{ - struct ctk_menu *m; - - /* Draw menus */ - hires_color(ctk_hires_theme.menucolor); - hires_gotoxy(0, 0); - hires_revers(0); - ctk_hires_cputc(' '); - for(m = menus->menus->next; m != NULL; m = m->next) { - if(m != menus->open) { - ctk_hires_cputsn(m->title, m->titlelen); - ctk_hires_cputc(' '); - } else { - draw_menu(m); - } - } - ctk_hires_cclear(SCREEN_WIDTH - hires_wherex() - - strlen(menus->desktopmenu->title) - 1); - - /* Draw desktopmenu */ - if(menus->desktopmenu != menus->open) { - ctk_hires_cputsn(menus->desktopmenu->title, - menus->desktopmenu->titlelen); - ctk_hires_cputc(' '); - } else { - draw_menu(menus->desktopmenu); - } - -} -/*-----------------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_height(void) -{ - return SCREEN_HEIGHT; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_width(void) -{ - return SCREEN_WIDTH; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_xtoc(unsigned short x) -{ - return x / 8; -} -/*-----------------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_ytoc(unsigned short y) -{ - return y / 8; -} -/*-----------------------------------------------------------------------------------*/ - -SERVICE(ctk_hires_service, ctk_draw_service, -{ 1, - 1, - 1, - s_ctk_draw_init, - s_ctk_draw_clear, - s_ctk_draw_clear_window, - s_ctk_draw_window, - s_ctk_draw_dialog, - s_ctk_draw_widget, - s_ctk_draw_menus, - s_ctk_draw_width, - s_ctk_draw_height, - s_ctk_mouse_xtoc, - s_ctk_mouse_ytoc }); - -/*--------------------------------------------------------------------------*/ - -PROCESS(ctk_hires_service_process, "CTK hires service"); - -PROCESS_THREAD(ctk_hires_service_process, ev, data) { - PROCESS_BEGIN(); - - s_ctk_draw_init(); - ctk_restore(); - - SERVICE_REGISTER(ctk_hires_service); - - while(ev != PROCESS_EVENT_SERVICE_REMOVED && - ev != PROCESS_EVENT_EXIT) { - PROCESS_WAIT_EVENT(); - } - - SERVICE_REMOVE(ctk_hires_service); - - VIC.ctrl1 = 0x1b; /* $D011 */ - VIC.addr = 0x17; /* $D018 */ - VIC.ctrl2 = 0xc8; /* $D016 */ - CIA2.pra = 0x03; /* $DD00 */ - - PROCESS_END(); -} -/*--------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/ctk/ctk-hires-theme-blueround.c b/backyard/platform/c64/ctk/ctk-hires-theme-blueround.c deleted file mode 100644 index 22ec1ab51..000000000 --- a/backyard/platform/c64/ctk/ctk-hires-theme-blueround.c +++ /dev/null @@ -1,313 +0,0 @@ - /* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS for the C64 - * - * $Id: ctk-hires-theme-blueround.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#include -#include "ctk-hires-theme.h" - -#define COLOR(bg, fg) ((fg << 4) | (bg)) - -#define BGCOLOR1 0x06 -#define BGCOLOR2 0x00 -#define BGCOLOR3 0x06 -#define BGCOLOR4 0x00 - -struct ctk_hires_theme ctk_hires_theme = - { - /* Version string. */ - /* char version[8]; */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, - - /* Window borders patterns. */ - /* unsigned char ulcorner[8], */ /* Upper left corner. */ - {0xfe,0xf8,0xe0,0xc0,0xc0,0x80,0x80,0x00}, - - /* titlebar[8], */ /* Title bar pattern. */ - {0x00,0x55,0xaa,0x00,0xaa,0x00,0x00,0x00}, - - /* urcorner[8], */ /* Upper right corner. */ - {0x7f,0x1f,0x07,0x03,0x03,0x01,0x01,0x00}, - - /* rightborder[8], */ /* Right border. */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, - - /* lrcorner[8], */ /* Lower right corner. */ - {0x00,0x01,0x01,0x03,0x03,0x07,0x1f,0x7f}, - - /* lowerborder[8], */ /* Lower border. */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, - - /* llcorner[8], */ /* Lower left corner. */ - {0x00,0x80,0x80,0xc0,0xc0,0xe0,0xf8,0xfe}, - - /* leftborder[8]; */ /* Left border. */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, - - /* Button corner patterns. */ - /* unsigned char buttonleft[8], */ - {0x03,0x0f,0x1f,0x1f,0x1f,0x1f,0x0f,0x03}, - - /* buttonright[8]; */ - {0xc0,0xf0,0xf8,0xf8,0xf8,0xf8,0xf0,0xc0}, - - /* Menu border patterns. */ - /* unsigned char menuleftpattern[8], */ - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, - - /* menurightpatterns[8]; */ - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, - - /* Window and widget colors. */ - /* unsigned char windowcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_BLACK), - COLOR(COLOR_BLACK, COLOR_BLACK), - COLOR(COLOR_BLUE, COLOR_BLACK), - COLOR(COLOR_BLUE, COLOR_BLACK), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE)}, - - /* separatorcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_BLACK), - COLOR(COLOR_BLUE, COLOR_BLACK), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE)}, - - /* labelcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE)}, - - /* buttoncolors[6], */ - {COLOR(COLOR_BLUE, COLOR_BLACK), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLACK), - COLOR(COLOR_LIGHTBLUE, COLOR_CYAN), - COLOR(COLOR_BLUE, COLOR_BLACK), - COLOR(COLOR_BLUE, COLOR_CYAN)}, - - /* hyperlinkcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_CYAN), - COLOR(COLOR_BLUE, COLOR_WHITE), - COLOR(COLOR_LIGHTBLUE, COLOR_CYAN), - COLOR(COLOR_LIGHTBLUE, COLOR_WHITE)}, - - /* textentrycolors[6], */ - {COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLACK, COLOR_LIGHTBLUE), - COLOR(COLOR_BLACK, COLOR_LIGHTBLUE), - COLOR(COLOR_BLACK, COLOR_CYAN), - COLOR(COLOR_WHITE, COLOR_BLUE), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* bitmapcolors[6], */ - {COLOR(COLOR_BLUE, COLOR_BLACK), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLACK), - COLOR(COLOR_LIGHTBLUE, COLOR_CYAN), - COLOR(COLOR_LIGHTBLUE, COLOR_BLACK), - COLOR(COLOR_LIGHTBLUE, COLOR_CYAN)}, - - /* textmapcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE)}, - - /* iconcolors[6]; */ - {COLOR(COLOR_BLUE, COLOR_BLACK), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_LIGHTBLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLACK), - COLOR(COLOR_LIGHTBLUE, COLOR_CYAN)}, - - - /* Button corner colors. */ - /* unsigned char buttonleftcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE)}, - - /* buttonrightcolors[6]; */ - {COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE), - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE)}, - - - /* Menu colors. */ - /* unsigned char menucolor,*/ - COLOR(COLOR_BLUE, COLOR_LIGHTBLUE), - - /* openmenucolor, */ - COLOR(COLOR_LIGHTBLUE, COLOR_BLUE), - - /* activemenucolor; */ - COLOR(COLOR_CYAN, COLOR_BLUE), - - /* Border and screen colors. */ - /* unsigned char bordercolor,*/ - 0, - - /* screencolor; */ - 0, - - /* Pointer sprite 0 color */ - /*unsigned char pointermaskcolor,*/ - 3, - - /* Pointer sprite 1 color */ - /* pointercolor; */ - 6, - - - /* Pointer sprite. */ - /* unsigned char pointer[128]; */ - {0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, - 0x60, 0x00, 0x00, - 0x70, 0x00, 0x00, - 0x78, 0x00, 0x00, - 0x7c, 0x00, 0x00, - 0x70, 0x00, 0x00, - 0x58, 0x00, 0x00, - 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, - - 0xc0, 0x00, 0x00, - 0xe0, 0x00, 0x00, - 0xf0, 0x00, 0x00, - 0xf8, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0xfe, 0x00, 0x00, - 0xfe, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00 }, - - - - /* Background pattern fill. */ - /* unsigned char backgroundpattern[8*25]; */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, - 0x00,0x00,0x10,0x38,0x10,0x00,0x00,0x00, - 0x00,0x00,0x18,0x3c,0x3c,0x18,0x00,0x00, - 0x00,0x18,0x3c,0x7e,0x7e,0x3c,0x18,0x00, - 0x00,0x3c,0x7e,0x7e,0x7e,0x7e,0x3c,0x00, - 0x3c,0x7e,0xff,0xff,0xff,0xff,0x7e,0x3c, - 0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0x7e, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, - 0x00,0x00,0x10,0x38,0x10,0x00,0x00,0x00, - 0x00,0x00,0x18,0x3c,0x3c,0x18,0x00,0x00, - 0x00,0x18,0x3c,0x7e,0x7e,0x3c,0x18,0x00, - 0x00,0x3c,0x7e,0x7e,0x7e,0x7e,0x3c,0x00, - 0x3c,0x7e,0xff,0xff,0xff,0xff,0x7e,0x3c, - 0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0x7e, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, - 0x00,0x00,0x10,0x38,0x10,0x00,0x00,0x00, - 0x00,0x00,0x18,0x3c,0x3c,0x18,0x00,0x00, - 0x00,0x18,0x3c,0x7e,0x7e,0x3c,0x18,0x00, - 0x00,0x3c,0x7e,0x7e,0x7e,0x7e,0x3c,0x00, - 0x3c,0x7e,0xff,0xff,0xff,0xff,0x7e,0x3c, - 0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0x7e, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - }, - - /* Background colors. */ - /* unsigned char backgroundpatterncolors[25]; */ - { - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - - COLOR(BGCOLOR2,BGCOLOR3),COLOR(BGCOLOR2,BGCOLOR3), - COLOR(BGCOLOR2,BGCOLOR3),COLOR(BGCOLOR2,BGCOLOR3), - COLOR(BGCOLOR2,BGCOLOR3),COLOR(BGCOLOR2,BGCOLOR3), - COLOR(BGCOLOR2,BGCOLOR3),COLOR(BGCOLOR2,BGCOLOR3), - - COLOR(BGCOLOR3,BGCOLOR4),COLOR(BGCOLOR3,BGCOLOR4), - COLOR(BGCOLOR3,BGCOLOR4),COLOR(BGCOLOR3,BGCOLOR4), - COLOR(BGCOLOR3,BGCOLOR4),COLOR(BGCOLOR3,BGCOLOR4), - COLOR(BGCOLOR3,BGCOLOR4),COLOR(BGCOLOR3,BGCOLOR4), - - COLOR(BGCOLOR4,BGCOLOR4)}, - - - - }; diff --git a/backyard/platform/c64/ctk/ctk-hires-theme-default.c b/backyard/platform/c64/ctk/ctk-hires-theme-default.c deleted file mode 100644 index 51c17ed19..000000000 --- a/backyard/platform/c64/ctk/ctk-hires-theme-default.c +++ /dev/null @@ -1,303 +0,0 @@ - /* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS for the C64 - * - * $Id: ctk-hires-theme-default.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#include -#include "ctk-hires-theme.h" - -#define COLOR(bg, fg) ((fg << 4) | (bg)) - -#define BGCOLOR1 7 -#define BGCOLOR2 10 -#define BGCOLOR3 4 -#define BGCOLOR4 6 - -struct ctk_hires_theme ctk_hires_theme = - { - /* Version string. */ - /* char version[8]; */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, - - /* Window borders patterns. */ - /* unsigned char ulcorner[8], */ /* Upper left corner. */ - {0xff,0xff,0xc0,0xcf,0xc0,0xc3,0xc0,0xc0}, - - /* titlebar[8], */ /* Title bar pattern. */ - {0xff,0xff,0x00,0xff,0x00,0xff,0x00,0x00}, - - /* urcorner[8], */ /* Upper right corner. */ - {0xff,0xfc,0x00,0xf0,0x00,0xc0,0x00,0x00}, - - /* rightborder[8], */ /* Right border. */ - {0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b}, - - /* lrcorner[8], */ /* Lower right corner. */ - {0x0b,0x0b,0x0b,0x0b,0xfb,0x03,0xff,0xff}, - - /* lowerborder[8], */ /* Lower border. */ - {0x00,0x00,0x00,0x00,0xff,0x00,0xff,0xff}, - - /* llcorner[8], */ /* Lower left corner. */ - {0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x80,0x00}, - - /* leftborder[8]; */ /* Left border. */ - {0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0}, - - /* Button corner patterns. */ - /* unsigned char buttonleft[8], */ - {0xc5,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf}, - - /* buttonright[8]; */ - {0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xa3}, - - /* Menu border patterns. */ - /* unsigned char menuleftpattern[8], */ - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, - - /* menurightpatterns[8]; */ - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, - - /* Window and widget colors. */ - /* unsigned char windowcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY3), - COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY3, COLOR_WHITE), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* separatorcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY3, COLOR_GRAY2), - COLOR(COLOR_GRAY3, COLOR_GRAY2), - COLOR(COLOR_WHITE, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_GRAY1)}, - - /* labelcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* buttoncolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY3), - COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY3)}, - - /* hyperlinkcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_LIGHTBLUE), - COLOR(COLOR_GRAY2, COLOR_LIGHTBLUE), - COLOR(COLOR_WHITE, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_WHITE), - COLOR(COLOR_WHITE, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_WHITE)}, - - /* textentrycolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK)}, - - /* bitmapcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_GRAY1), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK)}, - - /* textmapcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* iconcolors[6]; */ - {COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_BLACK, COLOR_YELLOW), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_BLACK, COLOR_YELLOW)}, - - - /* Button corner colors. */ - /* unsigned char buttonleftcolors[6], */ - {COLOR(COLOR_GRAY3, COLOR_GRAY2), - COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_WHITE, COLOR_GRAY3), - COLOR(COLOR_GRAY1, COLOR_GRAY3), - COLOR(COLOR_WHITE, COLOR_GRAY3), - COLOR(COLOR_GRAY1, COLOR_GRAY3)}, - - /* buttonrightcolors[6]; */ - {COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY3, COLOR_GRAY2), - COLOR(COLOR_GRAY1, COLOR_GRAY3), - COLOR(COLOR_WHITE, COLOR_GRAY3), - COLOR(COLOR_GRAY1, COLOR_GRAY3), - COLOR(COLOR_WHITE, COLOR_GRAY3)}, - - - /* Menu colors. */ - /* unsigned char menucolor,*/ - COLOR(COLOR_YELLOW, COLOR_BLACK), - - /* openmenucolor, */ - COLOR(COLOR_BLACK, COLOR_YELLOW), - - /* activemenucolor; */ - COLOR(COLOR_WHITE, COLOR_BLACK), - - /* Border and screen colors. */ - /* unsigned char bordercolor,*/ - 6, - - /* screencolor; */ - 0, - - /* Pointer sprite 0 color */ - 0, - - /* Pointer sprite 1 color */ - 1, - - - /* Pointer sprite. */ - /* unsigned char pointer[128]; */ - {0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, - 0x60, 0x00, 0x00, - 0x70, 0x00, 0x00, - 0x78, 0x00, 0x00, - 0x7c, 0x00, 0x00, - 0x70, 0x00, 0x00, - 0x58, 0x00, 0x00, - 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, - - 0xc0, 0x00, 0x00, - 0xe0, 0x00, 0x00, - 0xf0, 0x00, 0x00, - 0xf8, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0xfe, 0x00, 0x00, - 0xfe, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00 }, - - - - /* Background pattern fill. */ - /* unsigned char backgroundpattern[8*25]; */ - {0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xdd,0xff,0x77,0xff,0xdd,0xff,0x77, - 0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55, - 0xee,0x55,0xbb,0x55,0xee,0x55,0xbb,0x55, - 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, - 0xaa,0x44,0xaa,0x11,0xaa,0x44,0xaa,0x11, - 0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00, - 0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xdd,0xff,0x77,0xff,0xdd,0xff,0x77, - 0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55, - 0xee,0x55,0xbb,0x55,0xee,0x55,0xbb,0x55, - 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, - 0xaa,0x44,0xaa,0x11,0xaa,0x44,0xaa,0x11, - 0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00, - 0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xdd,0xff,0x77,0xff,0xdd,0xff,0x77, - 0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55, - 0xee,0x55,0xbb,0x55,0xee,0x55,0xbb,0x55, - 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, - 0xaa,0x44,0xaa,0x11,0xaa,0x44,0xaa,0x11, - 0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00, - 0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00}, - - /* Background colors. */ - /* unsigned char backgroundpatterncolors[25]; */ - {COLOR(BGCOLOR1,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3)}, - - - - }; diff --git a/backyard/platform/c64/ctk/ctk-hires-theme-enabler.c b/backyard/platform/c64/ctk/ctk-hires-theme-enabler.c deleted file mode 100644 index c0574b226..000000000 --- a/backyard/platform/c64/ctk/ctk-hires-theme-enabler.c +++ /dev/null @@ -1,303 +0,0 @@ - /* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS for the C64 - * - * $Id: ctk-hires-theme-enabler.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#include -#include "ctk-hires-theme.h" - -#define COLOR(bg, fg) ((fg << 4) | (bg)) - -#define BGCOLOR1 0x0f -#define BGCOLOR2 0x0c -#define BGCOLOR3 0x0b -#define BGCOLOR4 0x00 - -struct ctk_hires_theme ctk_hires_theme = - { - /* Version string. */ - /* char version[8]; */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, - - /* Window borders patterns. */ - /* unsigned char ulcorner[8], */ /* Upper left corner. */ - {0xff,0xfc,0xf0,0xf0,0xe0,0xe0,0xe0,0xe0}, - - /* titlebar[8], */ /* Title bar pattern. */ - {0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00}, - - /* urcorner[8], */ /* Upper right corner. */ - {0xff,0x3f,0x0f,0x0f,0x07,0x07,0x07,0x07}, - - /* rightborder[8], */ /* Right border. */ - {0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07}, - - /* lrcorner[8], */ /* Lower right corner. */ - {0x07,0x07,0x0f,0x0f,0x3f,0xff,0xff,0xff}, - - /* lowerborder[8], */ /* Lower border. */ - {0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff}, - - /* llcorner[8], */ /* Lower left corner. */ - {0xe0,0xe0,0xf0,0xf0,0xfc,0xff,0xff,0xff}, - - /* leftborder[8]; */ /* Left border. */ - {0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0}, - - /* Button corner patterns. */ - /* unsigned char buttonleft[8], */ - {0x03,0x0f,0x1f,0x1f,0x1f,0x1f,0x0f,0x03}, - - /* buttonright[8]; */ - {0xc0,0xf0,0xf8,0xf8,0xf8,0xf8,0xf0,0xc0}, - - /* Menu border patterns. */ - /* unsigned char menuleftpattern[8], */ - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, - - /* menurightpatterns[8]; */ - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, - - /* Window and widget colors. */ - /* unsigned char windowcolors[6], */ - {COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* separatorcolors[6], */ - {COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY2, COLOR_GRAY3), - COLOR(COLOR_GRAY2, COLOR_GRAY3), - COLOR(COLOR_WHITE, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_GRAY1)}, - - /* labelcolors[6], */ - {COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* buttoncolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY3), - COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY3)}, - - /* hyperlinkcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_LIGHTBLUE), - COLOR(COLOR_GRAY2, COLOR_LIGHTBLUE), - COLOR(COLOR_GRAY2, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_GRAY2), - COLOR(COLOR_WHITE, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_WHITE)}, - - /* textentrycolors[6], */ - {COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK)}, - - /* bitmapcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_GRAY1), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK)}, - - /* textmapcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* iconcolors[6]; */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY3, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GRAY3), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_BLACK, COLOR_YELLOW)}, - - - /* Button corner colors. */ - /* unsigned char buttonleftcolors[6], */ - {COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY1, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY3), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_GRAY3), - COLOR(COLOR_WHITE, COLOR_GRAY1)}, - - /* buttonrightcolors[6]; */ - {COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY1, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY3), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_GRAY3), - COLOR(COLOR_WHITE, COLOR_GRAY1)}, - - - /* Menu colors. */ - /* unsigned char menucolor,*/ - COLOR(COLOR_GRAY3, COLOR_BLACK), - - /* openmenucolor, */ - COLOR(COLOR_GRAY1, COLOR_GRAY3), - - /* activemenucolor; */ - COLOR(COLOR_WHITE, COLOR_BLACK), - - /* Border and screen colors. */ - /* unsigned char bordercolor,*/ - 0, - - /* screencolor; */ - 0, - - /* Pointer sprite 0 color */ - 0, - - /* Pointer sprite 1 color */ - 1, - - - /* Pointer sprite. */ - /* unsigned char pointer[128]; */ - {0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, - 0x60, 0x00, 0x00, - 0x70, 0x00, 0x00, - 0x78, 0x00, 0x00, - 0x7c, 0x00, 0x00, - 0x70, 0x00, 0x00, - 0x58, 0x00, 0x00, - 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, - - 0xc0, 0x00, 0x00, - 0xe0, 0x00, 0x00, - 0xf0, 0x00, 0x00, - 0xf8, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0xfe, 0x00, 0x00, - 0xfe, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00 }, - - - - /* Background pattern fill. */ - /* unsigned char backgroundpattern[8*25]; */ - {0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xdd,0xff,0x77,0xff,0xdd,0xff,0x77, - 0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55, - 0xee,0x55,0xbb,0x55,0xee,0x55,0xbb,0x55, - 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, - 0xaa,0x44,0xaa,0x11,0xaa,0x44,0xaa,0x11, - 0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00, - 0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xdd,0xff,0x77,0xff,0xdd,0xff,0x77, - 0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55, - 0xee,0x55,0xbb,0x55,0xee,0x55,0xbb,0x55, - 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, - 0xaa,0x44,0xaa,0x11,0xaa,0x44,0xaa,0x11, - 0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00, - 0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xdd,0xff,0x77,0xff,0xdd,0xff,0x77, - 0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55, - 0xee,0x55,0xbb,0x55,0xee,0x55,0xbb,0x55, - 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, - 0xaa,0x44,0xaa,0x11,0xaa,0x44,0xaa,0x11, - 0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00, - 0x88,0x00,0x22,0x00,0x88,0x00,0x22,0x00}, - - /* Background colors. */ - /* unsigned char backgroundpatterncolors[25]; */ - {COLOR(BGCOLOR1,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR2,BGCOLOR1),COLOR(BGCOLOR2,BGCOLOR1), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR3,BGCOLOR2),COLOR(BGCOLOR3,BGCOLOR2), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3), - COLOR(BGCOLOR4,BGCOLOR3),COLOR(BGCOLOR4,BGCOLOR3)}, - - - - }; diff --git a/backyard/platform/c64/ctk/ctk-hires-theme-ravenpine.c b/backyard/platform/c64/ctk/ctk-hires-theme-ravenpine.c deleted file mode 100644 index 233504649..000000000 --- a/backyard/platform/c64/ctk/ctk-hires-theme-ravenpine.c +++ /dev/null @@ -1,288 +0,0 @@ - /* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS for the C64 - * - * $Id: ctk-hires-theme-ravenpine.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#include -#include "ctk-hires-theme.h" - -#define COLOR(bg, fg) ((fg << 4) | (bg)) - -#define BGCOLOR1 0x00 -#define BGCOLOR2 0x05 - - -struct ctk_hires_theme ctk_hires_theme = - { - /* Version string. */ - /* char version[8]; */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, - - /* Window borders patterns. */ - /* unsigned char ulcorner[8], */ /* Upper left corner. */ - {0x00,0x3f,0x3f,0x30,0x30,0x30,0x30,0x30}, - - /* titlebar[8], */ /* Title bar pattern. */ - {0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00}, - - /* urcorner[8], */ /* Upper right corner. */ - {0x00,0xfc,0xfc,0x0c,0x0c,0x0c,0x0c,0x0c}, - - /* rightborder[8], */ /* Right border. */ - {0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c}, - - /* lrcorner[8], */ /* Lower right corner. */ - {0x0c,0x0c,0x0c,0x0c,0x0c,0xfc,0xfc,0x00}, - - /* lowerborder[8], */ /* Lower border. */ - {0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00}, - - /* llcorner[8], */ /* Lower left corner. */ - {0x30,0x30,0x30,0x30,0x30,0x3f,0x3f,0x00}, - - /* leftborder[8]; */ /* Left border. */ - {0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30}, - - /* Button corner patterns. */ - /* unsigned char buttonleft[8], */ - {0x3e,0x30,0x30,0x30,0x30,0x30,0x30,0x3c}, - - /* buttonright[8]; */ - {0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3c}, - - /* Menu border patterns. */ - /* unsigned char menuleftpattern[8], */ - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, - - /* menurightpatterns[8]; */ - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, - - /* Window and widget colors. */ - /* unsigned char windowcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK)}, - - /* separatorcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK)}, - - /* labelcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK)}, - - /* buttoncolors[6], */ - {COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_WHITE)}, - - /* hyperlinkcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_BLACK, COLOR_BLUE), - COLOR(COLOR_GREEN, COLOR_LIGHTBLUE), - COLOR(COLOR_LIGHTGREEN, COLOR_BLUE), - COLOR(COLOR_LIGHTGREEN, COLOR_LIGHTBLUE)}, - - /* textentrycolors[6], */ - {COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_BLACK, COLOR_LIGHTGREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_WHITE)}, - - - /* bitmapcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_GREEN, COLOR_WHITE)}, - - - /* textmapcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_GREEN, COLOR_WHITE)}, - - /* iconcolors[6]; */ - {COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_GREEN, COLOR_WHITE)}, - - - /* Button corner colors. */ - /* unsigned char buttonleftcolors[6], */ - {COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_WHITE)}, - - /* buttonrightcolors[6]; */ - {COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GRAY1), - COLOR(COLOR_BLACK, COLOR_GREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_WHITE)}, - - - /* Menu colors. */ - /* unsigned char menucolor,*/ - COLOR(COLOR_GREEN, COLOR_BLACK), - - /* openmenucolor, */ - COLOR(COLOR_BLACK, COLOR_GREEN), - - /* activemenucolor; */ - COLOR(COLOR_LIGHTGREEN, COLOR_GREEN), - - /* Border and screen colors. */ - /* unsigned char bordercolor,*/ - 0, - - /* screencolor; */ - 0, - - /* Pointer sprite 0 color */ - COLOR_LIGHTGREEN, - - /* Pointer sprite 1 color */ - COLOR_GREEN, - - - /* Pointer sprite. */ - /* unsigned char pointer[128]; */ - {0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, - 0x60, 0x00, 0x00, - 0x70, 0x00, 0x00, - 0x78, 0x00, 0x00, - 0x7c, 0x00, 0x00, - 0x70, 0x00, 0x00, - 0x58, 0x00, 0x00, - 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, - - 0xc0, 0x00, 0x00, - 0xe0, 0x00, 0x00, - 0xf0, 0x00, 0x00, - 0xf8, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0xfe, 0x00, 0x00, - 0xfe, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00 }, - - - - /* Background pattern fill. */ - /* unsigned char backgroundpattern[8*25]; */ - { - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0, - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0, - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0, - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0, - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0, - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0, - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0, - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0, - }, - /* Background colors. */ - /* unsigned char backgroundpatterncolors[25]; */ - {COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2)}, - - - - }; diff --git a/backyard/platform/c64/ctk/ctk-hires-theme-springlight.c b/backyard/platform/c64/ctk/ctk-hires-theme-springlight.c deleted file mode 100644 index 75fe45f44..000000000 --- a/backyard/platform/c64/ctk/ctk-hires-theme-springlight.c +++ /dev/null @@ -1,284 +0,0 @@ - /* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS for the C64 - * - * $Id: ctk-hires-theme-springlight.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#include -#include "ctk-hires-theme.h" - -#define COLOR(bg, fg) ((fg << 4) | (bg)) - -#define BGCOLOR1 0x05 -#define BGCOLOR2 0x0d - - -struct ctk_hires_theme ctk_hires_theme = - { - /* Version string. */ - /* char version[8]; */ - {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, - - /* Window borders patterns. */ - /* unsigned char ulcorner[8], */ /* Upper left corner. */ - {0x00,0x3f,0x6a,0x40,0x60,0x40,0x60,0x40}, - - /* titlebar[8], */ /* Title bar pattern. */ - {0x00,0xff,0xaa,0x00,0x00,0x00,0x00,0x00}, - - /* urcorner[8], */ /* Upper right corner. */ - {0x00,0xf0,0x20,0x00,0x00,0x00,0x00,0x00}, - - /* rightborder[8], */ /* Right border. */ - {0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02}, - - /* lrcorner[8], */ /* Lower right corner. */ - {0x02,0x02,0x02,0x02,0x02,0x06,0xfc,0x00}, - - /* lowerborder[8], */ /* Lower border. */ - {0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00}, - - /* llcorner[8], */ /* Lower left corner. */ - {0x60,0x40,0x40,0x40,0x00,0x00,0x00,0x00}, - - /* leftborder[8]; */ /* Left border. */ - {0x60,0x40,0x60,0x40,0x60,0x40,0x60,0x40}, - - /* Button corner patterns. */ - /* unsigned char buttonleft[8], */ - {0x0f,0x18,0x10,0x10,0x10,0x10,0x10,0x00}, - - /* buttonright[8]; */ - {0x00,0x08,0x08,0x08,0x08,0x08,0x18,0xf0}, - - /* Menu border patterns. */ - /* unsigned char menuleftpattern[8], */ - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, - - /* menurightpatterns[8]; */ - {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, - - /* Window and widget colors. */ - /* unsigned char windowcolors[6], */ - {COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GRAY1, COLOR_GREEN), - COLOR(COLOR_GREEN, COLOR_GRAY1), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK)}, - - /* separatorcolors[6], */ - {COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GRAY1, COLOR_GRAY2), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_GRAY1), - COLOR(COLOR_LIGHTGREEN, COLOR_GRAY1)}, - - /* labelcolors[6], */ - {COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK)}, - - /* buttoncolors[6], */ - {COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GRAY1, COLOR_GREEN), - COLOR(COLOR_GREEN, COLOR_GRAY1), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_GRAY2), - COLOR(COLOR_LIGHTGREEN, COLOR_WHITE)}, - - /* hyperlinkcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_LIGHTBLUE), - COLOR(COLOR_GRAY2, COLOR_LIGHTBLUE), - COLOR(COLOR_GREEN, COLOR_CYAN), - COLOR(COLOR_GREEN, COLOR_BLUE), - COLOR(COLOR_LIGHTGREEN, COLOR_BLUE), - COLOR(COLOR_BLUE, COLOR_LIGHTGREEN)}, - - /* textentrycolors[6], */ - {COLOR(COLOR_GREEN, COLOR_GRAY1), - COLOR(COLOR_GREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_LIGHTGREEN, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK)}, - - /* bitmapcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_GRAY1), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK), - COLOR(COLOR_GRAY3, COLOR_BLACK)}, - - /* textmapcolors[6], */ - {COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_GRAY2, COLOR_GRAY1), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_WHITE, COLOR_BLACK)}, - - /* iconcolors[6]; */ - {COLOR(COLOR_GREEN, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_GREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_GRAY1), - COLOR(COLOR_GRAY1, COLOR_LIGHTGREEN), - COLOR(COLOR_WHITE, COLOR_BLACK), - COLOR(COLOR_BLACK, COLOR_YELLOW)}, - - - /* Button corner colors. */ - /* unsigned char buttonleftcolors[6], */ - {COLOR(COLOR_GRAY1, COLOR_GREEN), - COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_GREEN, COLOR_GRAY1), - COLOR(COLOR_LIGHTGREEN, COLOR_WHITE), - COLOR(COLOR_LIGHTGREEN, COLOR_GRAY2)}, - - /* buttonrightcolors[6]; */ - {COLOR(COLOR_GRAY1, COLOR_BLACK), - COLOR(COLOR_GRAY1, COLOR_GREEN), - COLOR(COLOR_GREEN, COLOR_GRAY1), - COLOR(COLOR_GREEN, COLOR_LIGHTGREEN), - COLOR(COLOR_LIGHTGREEN, COLOR_GRAY2), - COLOR(COLOR_LIGHTGREEN, COLOR_WHITE)}, - - - /* Menu colors. */ - /* unsigned char menucolor,*/ - COLOR(COLOR_LIGHTGREEN, COLOR_GRAY1), - - /* openmenucolor, */ - COLOR(COLOR_BLACK, COLOR_GREEN), - - /* activemenucolor; */ - COLOR(COLOR_BLACK, COLOR_LIGHTGREEN), - - /* Border and screen colors. */ - /* unsigned char bordercolor,*/ - 5, - - /* screencolor; */ - 0, - - /* Pointer sprite 0 color */ - COLOR_WHITE, - - /* Pointer sprite 1 color */ - COLOR_GREEN, - - - /* Pointer sprite. */ - /* unsigned char pointer[128]; */ - {0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, - 0x60, 0x00, 0x00, - 0x70, 0x00, 0x00, - 0x78, 0x00, 0x00, - 0x7c, 0x00, 0x00, - 0x70, 0x00, 0x00, - 0x58, 0x00, 0x00, - 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, - - 0xc0, 0x00, 0x00, - 0xe0, 0x00, 0x00, - 0xf0, 0x00, 0x00, - 0xf8, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0xfe, 0x00, 0x00, - 0xfe, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0xfc, 0x00, 0x00, - 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00 }, - - - - /* Background pattern fill. */ - /* unsigned char backgroundpattern[8*25]; */ - {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, -255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, -255, 255, 223, 255, 255, 247, 255, 255, 191, 247, 255, 255, 219, 255, 255, 187, -255, 239, 251, 191, 239, 253, 223, 251, 223, 253, 183, 255, 213, 127, 237, 191, -245, 95, 245, 223, 181, 255, 85, 255, 85, 219, 118, 219, 109, 219, 182, 109, 219, 182, 109, 219, 170, 109, 219, 170, 181, 173, 85, 218, 85, 173, 170, 85, 170, 85, 170, 85, 170, 85, 170, 85, 170, 146, 85, 146, 170, 82, 138, 50, 74, 164, 73, -146, 84, 137, 82, 4, 169, 18, 164, 2, 168, 18, 68, 18, 160, 10, 32, 74, 0, 42, 128, 18, 64, 20, 0, 82, 0, 4, 80, 4, 0, 72, 2, 0, 16, 132, 0, 0, 72, 0, 0, 4, 64, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - - /* Background colors. */ - /* unsigned char backgroundpatterncolors[25]; */ - {COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2), - COLOR(BGCOLOR1,BGCOLOR2),COLOR(BGCOLOR1,BGCOLOR2)}, - - - - }; diff --git a/backyard/platform/c64/ctk/ctk-hires-theme.h b/backyard/platform/c64/ctk/ctk-hires-theme.h deleted file mode 100644 index f522bed1e..000000000 --- a/backyard/platform/c64/ctk/ctk-hires-theme.h +++ /dev/null @@ -1,105 +0,0 @@ - /* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS for the C64 - * - * $Id: ctk-hires-theme.h,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ -#ifndef __CTK_HIRES_THEME_H__ -#define __CTK_HIRES_THEME_H__ - -struct ctk_hires_theme { - /* Version string. */ - char version[8]; - - /* Window borders patterns. */ - unsigned char ulcorner[8], /* Upper left corner. */ - titlebar[8], /* Title bar pattern. */ - urcorner[8], /* Upper right corner. */ - rightborder[8], /* Right border. */ - lrcorner[8], /* Lower right corner. */ - lowerborder[8], /* Lower border. */ - llcorner[8], /* Lower left corner. */ - leftborder[8]; /* Left border. */ - - /* Button corner patterns. */ - unsigned char buttonleftpattern[8], - buttonrightpattern[8]; - - /* Menu border patterns. */ - unsigned char menuleftpattern[8], - menurightpatterns[8]; - - - - /* Window and widget colors. */ - unsigned char windowcolors[6], - separatorcolors[6], - labelcolors[6], - buttoncolors[6], - hyperlinkcolors[6], - textentrycolors[6], - bitmapcolors[6], - textmapcolors[6], - iconcolors[6]; - - - /* Button corner colors. */ - unsigned char buttonleftcolors[6], - buttonrightcolors[6]; - - /* Menu colors. */ - unsigned char menucolor, - openmenucolor, - activemenucolor; - - /* Border and screen colors. */ - unsigned char bordercolor, - screencolor; - - /* Pointer sprite colors. */ - unsigned char pointermaskcolor, - pointercolor; - - /* Pointer sprite. */ - unsigned char pointer[128]; - - /* Background pattern fill. */ - unsigned char backgroundpattern[8*25]; - - /* Background colors. */ - unsigned char backgroundpatterncolors[25]; - -}; - -extern struct ctk_hires_theme ctk_hires_theme; -extern struct ctk_hires_theme *ctk_hires_theme_ptr; - -#endif /* __CTK_HIRES_THEME_H__ */ diff --git a/backyard/platform/c64/ctk/ctk-hires.c b/backyard/platform/c64/ctk/ctk-hires.c deleted file mode 100644 index eb4435ed6..000000000 --- a/backyard/platform/c64/ctk/ctk-hires.c +++ /dev/null @@ -1,871 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-hires.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#include "contiki-version.h" - -#include "ctk/ctk.h" -#include "ctk-draw.h" -#include "ctk-hires.h" -#include "ctk-hires-asm.h" - -#include "ctk-hires-theme.h" - -#include -#include - -#ifndef NULL -#define NULL (void *)0 -#endif /* NULL */ - -#define SCREEN_HEIGHT 25 -#define SCREEN_WIDTH 40 - -#define SCREENADDR 0xdc00 -#define HIRESADDR 0xe000 - -static unsigned char lineptr; - -unsigned char ctk_hires_cursx, ctk_hires_cursy; -unsigned char ctk_hires_reversed; -unsigned char ctk_hires_color; -unsigned char ctk_hires_underline; - -/*static unsigned char cchar; - -static unsigned char tmp01; -static unsigned char tmph, tmpl, tmpborder; -static unsigned char *tmpptr;*/ - - -static unsigned char x, y, i; -/*static unsigned char h;*/ -static unsigned char wfocus; -static unsigned char x1, y1, x2, y2; - -struct ctk_hires_windowparams ctk_hires_windowparams; -unsigned char *ctk_hires_bitmapptr; - -unsigned char ctk_draw_windowborder_height = 1; -unsigned char ctk_draw_windowborder_width = 1; -unsigned char ctk_draw_windowtitle_height = 1; - -/*-----------------------------------------------------------------------------------*/ -/* Tables. */ - -unsigned short ctk_hires_yscreenaddr[25] = - {0 * SCREEN_WIDTH + SCREENADDR, 1 * SCREEN_WIDTH + SCREENADDR, - 2 * SCREEN_WIDTH + SCREENADDR, 3 * SCREEN_WIDTH + SCREENADDR, - 4 * SCREEN_WIDTH + SCREENADDR, 5 * SCREEN_WIDTH + SCREENADDR, - 6 * SCREEN_WIDTH + SCREENADDR, 7 * SCREEN_WIDTH + SCREENADDR, - 8 * SCREEN_WIDTH + SCREENADDR, 9 * SCREEN_WIDTH + SCREENADDR, - 10 * SCREEN_WIDTH + SCREENADDR, 11 * SCREEN_WIDTH + SCREENADDR, - 12 * SCREEN_WIDTH + SCREENADDR, 13 * SCREEN_WIDTH + SCREENADDR, - 14 * SCREEN_WIDTH + SCREENADDR, 15 * SCREEN_WIDTH + SCREENADDR, - 16 * SCREEN_WIDTH + SCREENADDR, 17 * SCREEN_WIDTH + SCREENADDR, - 18 * SCREEN_WIDTH + SCREENADDR, 19 * SCREEN_WIDTH + SCREENADDR, - 20 * SCREEN_WIDTH + SCREENADDR, 21 * SCREEN_WIDTH + SCREENADDR, - 22 * SCREEN_WIDTH + SCREENADDR, 23 * SCREEN_WIDTH + SCREENADDR, - 24 * SCREEN_WIDTH + SCREENADDR}; - -unsigned short ctk_hires_yhiresaddr[25] = - {0 * 320 + HIRESADDR, 1 * 320 + HIRESADDR, - 2 * 320 + HIRESADDR, 3 * 320 + HIRESADDR, - 4 * 320 + HIRESADDR, 5 * 320 + HIRESADDR, - 6 * 320 + HIRESADDR, 7 * 320 + HIRESADDR, - 8 * 320 + HIRESADDR, 9 * 320 + HIRESADDR, - 10 * 320 + HIRESADDR, 11 * 320 + HIRESADDR, - 12 * 320 + HIRESADDR, 13 * 320 + HIRESADDR, - 14 * 320 + HIRESADDR, 15 * 320 + HIRESADDR, - 16 * 320 + HIRESADDR, 17 * 320 + HIRESADDR, - 18 * 320 + HIRESADDR, 19 * 320 + HIRESADDR, - 20 * 320 + HIRESADDR, 21 * 320 + HIRESADDR, - 22 * 320 + HIRESADDR, 23 * 320 + HIRESADDR, - 24 * 320 + HIRESADDR}; -extern struct ctk_hires_theme ctk_hires_theme; -struct ctk_hires_theme *ctk_hires_theme_ptr = &ctk_hires_theme; -/*-----------------------------------------------------------------------------------*/ -#define hires_wherex() ctk_hires_cursx -#define hires_revers(c) ctk_hires_reversed = c -#define hires_color(c) ctk_hires_color = c -#define hires_underline(c) ctk_hires_underline = c -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_cvline(unsigned char length) -{ - static unsigned char i; - - for(i = 0; i < length; ++i) { - ctk_hires_cputc('|'); - --ctk_hires_cursx; - ++ctk_hires_cursy; - } -} -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_gotoxy(unsigned char x, unsigned char y) -{ - ctk_hires_cursx = x; - ctk_hires_cursy = y; -} -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_cclearxy(unsigned char x, unsigned char y, unsigned char length) -{ - hires_gotoxy(x, y); - ctk_hires_cclear(length); -} -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_chlinexy(unsigned char x, unsigned char y, unsigned char length) -{ - hires_gotoxy(x, y); - ctk_hires_chline(length); -} -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_cvlinexy(unsigned char x, unsigned char y, unsigned char length) -{ - hires_gotoxy(x, y); - hires_cvline(length); -} -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -hires_cputcxy(unsigned char x, unsigned char y, char c) -{ - hires_gotoxy(x, y); - ctk_hires_cputc(c); -} -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -clear_line(unsigned char line) -{ - lineptr = line; - asm("lda %v", lineptr); - asm("asl"); - asm("tax"); - asm("lda %v,x", ctk_hires_yhiresaddr); - asm("sta ptr2"); - asm("lda %v+1,x", ctk_hires_yhiresaddr); - asm("sta ptr2+1"); - asm("lda %v,x", ctk_hires_yscreenaddr); - asm("sta ptr1"); - asm("lda %v+1,x", ctk_hires_yscreenaddr); - asm("sta ptr1+1"); - - - asm("sei"); - asm("lda $01"); - asm("pha"); - asm("lda #$30"); - asm("sta $01"); - asm("ldy #39"); - asm("ldx %v", lineptr); - asm("lda %v+%w,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpatterncolors)); - asm("clearlineloop1:"); - asm("sta (ptr1),y"); - asm("dey"); - asm("bpl clearlineloop1"); - asm("pla"); - asm("sta $01"); - asm("cli"); - - - asm("lda %v", lineptr); - /* asm("and #7");*/ - asm("asl"); - asm("asl"); - asm("asl"); - asm("tax"); - asm("ldy #0"); - asm("clearlineloop2:"); - asm("lda %v+%w+0,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+1,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+2,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+3,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+4,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+5,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+6,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+7,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("bne clearlineloop2"); - - asm("inc ptr2+1"); - - asm("ldy #0"); - asm("clearlineloop3:"); - asm("lda %v+%w+0,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+1,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+2,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+3,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+4,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+5,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+6,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("lda %v+%w+7,x", ctk_hires_theme, - offsetof(struct ctk_hires_theme, backgroundpattern)); - asm("sta (ptr2),y"); - asm("iny"); - asm("cpy #$40"); - asm("bne clearlineloop3"); - - - if(lineptr == 24) { - hires_color(ctk_hires_theme.backgroundpatterncolors[24]); - hires_gotoxy(0, 24); - ctk_hires_cputsn(CONTIKI_VERSION_STRING, - sizeof(CONTIKI_VERSION_STRING) - 1); - } -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -nmi2(void) -{ - asm("pla"); - asm("sta $01"); - asm("pla"); - asm("rti"); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -nmi(void) -{ - asm("sei"); - asm("pha"); - asm("inc $d020"); - asm("lda $01"); - asm("pha"); - asm("lda #$36"); - asm("sta $01"); - asm("lda #>_nmi2"); - asm("pha"); - asm("lda #<_nmi2"); - asm("pha"); - asm("php"); - asm("jmp ($0318)"); - - nmi2(); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -setup_nmi(void) -{ - asm("lda #<_nmi"); - asm("sta $fffa"); - asm("lda #>_nmi"); - asm("sta $fffb"); - return; - nmi(); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -ctk_draw_init(void) -{ - unsigned char i, *ptr1, *ptr2; - - - setup_nmi(); - - /* Turn on hires mode, bank 0 ($c000 - $ffff) and $e000/$c000 for - hires/colors. */ - VIC.ctrl1 = 0x3b; /* $D011 */ - VIC.addr = 0x78; /* $D018 */ - VIC.ctrl2 = 0xc8; /* $D016 */ - CIA2.pra = 0x00; /* $DD00 */ - - VIC.bordercolor = ctk_hires_theme.bordercolor; /* $D020 */ - VIC.bgcolor0 = ctk_hires_theme.screencolor; /* $D021 */ - - /* Fill color memory. */ - asm("sei"); - asm("lda $01"); - asm("pha"); - asm("lda #$30"); - asm("sta $01"); - asm("ldx #0"); - asm("lda #$c0"); - asm("fillcolorloop:"); - asm("sta $dc00,x"); - asm("sta $dd00,x"); - asm("sta $de00,x"); - asm("sta $df00,x"); - asm("inx"); - asm("bne fillcolorloop"); - - /* Setup sprite pointers */ - asm("ldx #$fd"); - asm("stx $dff8"); - asm("inx"); - asm("stx $dff9"); - asm("pla"); - asm("sta $01"); - asm("cli"); - - /* Fill hires memory with 0. */ - - asm("lda $fd"); - asm("pha"); - asm("lda $fe"); - asm("pha"); - asm("lda #0"); - asm("sta $fd"); - asm("lda #$e0"); - asm("sta $fe"); - asm("ldy #0"); - asm("lda #0"); - asm("clrscrnloop:"); - asm("lda #$55"); - asm("sta ($fd),y"); - asm("iny"); - asm("lda #$aa"); - asm("sta ($fd),y"); - asm("iny"); - asm("bne clrscrnloop"); - asm("inc $fe"); - asm("lda $fe"); - asm("cmp #$ff"); - asm("bne clrscrnloop"); - - asm("ldy #$00"); - asm("clrscrnloop2:"); - asm("lda #$55"); - asm("sta $ff00,y"); - asm("iny"); - asm("lda #$aa"); - asm("sta $ff00,y"); - asm("iny"); - asm("cpy #$40"); - asm("bne clrscrnloop2"); - - - asm("pla"); - asm("sta $fe"); - asm("pla"); - asm("sta $fd"); - - - ctk_draw_clear(0, SCREEN_HEIGHT); - - /* Setup mouse pointer sprite. */ - asm("lda %v+%w", ctk_hires_theme, - offsetof(struct ctk_hires_theme, pointermaskcolor)); - asm("sta $d027"); - asm("lda %v+%w", ctk_hires_theme, - offsetof(struct ctk_hires_theme, pointercolor)); - asm("sta $d028"); - - ptr1 = ctk_hires_theme.pointer; - ptr2 = (unsigned char *)0xff40; - - for(i = 0; i < 0x80; ++i) { - *ptr2++ = *ptr1++; - } - - return; -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -static void __fastcall__ -draw_widget(register struct ctk_widget *w, - unsigned char x, unsigned char y, - unsigned char clipy1, unsigned char clipy2, - unsigned char afocus) -{ - static unsigned char xpos, ypos, xscroll; - static unsigned char i; - static char c; - static unsigned char len; - static unsigned char tmp; - static unsigned char yclipped; - static unsigned char focus; - char *text; - - xpos = x + w->x; - ypos = y + w->y; - - yclipped = 0; - if(ypos >= clipy1 && ypos < clipy2) { - yclipped = 1; - } - focus = afocus; - - - switch(w->type) { - case CTK_WIDGET_SEPARATOR: - hires_color(ctk_hires_theme.separatorcolors[focus]); - if(yclipped) { - hires_chlinexy(xpos, ypos, w->w); - } - break; - case CTK_WIDGET_LABEL: - hires_color(ctk_hires_theme.labelcolors[focus]); - text = w->widget.label.text; - for(i = 0; i < w->h; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - hires_gotoxy(xpos, ypos); - ctk_hires_cputsn(text, w->w); - tmp = w->w - (hires_wherex() - xpos); - if(tmp > 0) { - ctk_hires_cclear(tmp); - } - } - ++ypos; - text += w->w; - } - break; - case CTK_WIDGET_BUTTON: - if(yclipped) { - hires_color(ctk_hires_theme.buttonleftcolors[focus]); - hires_gotoxy(xpos, ypos); - ctk_hires_draw_buttonleft(); - hires_color(ctk_hires_theme.buttoncolors[focus]); - hires_gotoxy(xpos + 1, ypos); - ctk_hires_cputsn(w->widget.button.text, w->w); - hires_color(ctk_hires_theme.buttonrightcolors[focus]); - ctk_hires_draw_buttonright(); - } - break; - case CTK_WIDGET_HYPERLINK: - if(yclipped) { - hires_color(ctk_hires_theme.hyperlinkcolors[focus]); - hires_underline(1); - hires_gotoxy(xpos, ypos); - ctk_hires_cputsn(w->widget.button.text, w->w); - hires_underline(0); - } - break; - case CTK_WIDGET_TEXTENTRY: - if(yclipped) { - hires_color(ctk_hires_theme.textentrycolors[focus]); - - if((focus & CTK_FOCUS_WIDGET) && - w->widget.textentry.state != CTK_TEXTENTRY_EDIT) { - hires_revers(1); - } else { - hires_revers(0); - } - xscroll = 0; - tmp = w->w - 1; - if(w->widget.textentry.xpos >= tmp) { - xscroll = w->widget.textentry.xpos - tmp; - } - text = w->widget.textentry.text; - if(w->widget.textentry.state == CTK_TEXTENTRY_EDIT) { - hires_revers(0); - hires_cputcxy(xpos, ypos, '>'); - text += xscroll; - for(i = 0; i < w->w; ++i) { - c = *text; - if(i == w->widget.textentry.xpos - xscroll) { - hires_revers(1); - } else { - hires_revers(0); - } - if(c == 0) { - ctk_hires_cputc(' '); - } else { - ctk_hires_cputc(c); - } - hires_revers(0); - ++text; - } - ctk_hires_cputc('<'); - } else { - hires_cputcxy(xpos, ypos, '|'); - /* hires_gotoxy(xpos + 1, ypos); */ - ctk_hires_cputsn(text, w->w); - i = hires_wherex(); - tmp = i - xpos - 1; - if(tmp < w->w) { - ctk_hires_cclear(w->w - tmp); - } - ctk_hires_cputc('|'); - } - } - hires_revers(0); - break; - case CTK_WIDGET_ICON: - if(yclipped) { - hires_color(ctk_hires_theme.iconcolors[focus]); - - x = xpos; - len = strlen(w->widget.icon.title); - if(x + len >= SCREEN_WIDTH) { - x = SCREEN_WIDTH - len; - } - - tmp = ypos + 3; - - if(tmp < clipy2) { - hires_gotoxy(x, tmp); - ctk_hires_cputsn(w->widget.icon.title, len); - } - - hires_gotoxy(xpos, ypos); - if(w->widget.icon.bitmap != NULL) { - ctk_hires_bitmapptr = w->widget.icon.bitmap; - for(i = 0; i < 3; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - hires_gotoxy(xpos, ypos); - ctk_hires_draw_bitmapline(3); - } - ctk_hires_bitmapptr += 3 * 8; - ++ypos; - } - - /* draw_bitmap_icon(w->widget.icon.bitmap);*/ - } - - } - break; - case CTK_WIDGET_BITMAP: - hires_color(ctk_hires_theme.bitmapcolors[focus]); - ctk_hires_bitmapptr = w->widget.bitmap.bitmap; - for(i = 0; i < w->h; ++i) { - if(ypos >= clipy1 && ypos < clipy2) { - hires_gotoxy(xpos, ypos); - ctk_hires_draw_bitmapline(w->w); - } - ctk_hires_bitmapptr += w->w * 8; - ++ypos; - } - break; - - default: - break; - } -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_widget(struct ctk_widget *w, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - struct ctk_window *win = w->window; - unsigned char posx, posy; - - posx = win->x + 1; - posy = win->y + 2; - - if(w == win->focused) { - focus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, posx, posy, - clipy1, clipy2, - focus); -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_clear_window(register struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - static unsigned char h; - - hires_color(ctk_hires_theme.windowcolors[focus]); - - h = window->y + 2 + window->h; - /* Clear window contents. */ - for(i = window->y + 2; i < h; ++i) { - if(i >= clipy1 && i <= clipy2) { - hires_cclearxy(window->x + 1, i, window->w); - } - } -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_window(register struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, unsigned char clipy2, - unsigned char draw_borders) -{ - register struct ctk_widget *w; - - x = window->x; - y = window->y + 1; - - ++clipy2; - - if(clipy2 <= y) { - return; - } - - /* hires_color(ctk_hires_theme.windowcolors[focus+1]);*/ - - x1 = x + 1; - y1 = y + 1; - /* x2 = x1 + window->w; - y2 = y1 + window->h;*/ - - hires_gotoxy(x, y); - ctk_hires_windowparams.w = window->w; - ctk_hires_windowparams.h = window->h; - if(clipy1 < y) { - ctk_hires_windowparams.clipy1 = 0; - } else { - ctk_hires_windowparams.clipy1 = clipy1 - y; - } - ctk_hires_windowparams.clipy2 = clipy2 - y; - ctk_hires_windowparams.color1 = ctk_hires_theme.windowcolors[focus+1]; - ctk_hires_windowparams.color2 = ctk_hires_theme.windowcolors[focus]; - ctk_hires_windowparams.title = window->title; - ctk_hires_windowparams.titlelen = window->titlelen; - - if(ctk_hires_windowparams.clipy1 < ctk_hires_windowparams.clipy2 && - ctk_hires_windowparams.clipy2 > 0) { - ctk_hires_draw_windowborders(); - } - - /* Draw inactive widgets. */ - for(w = window->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, - clipy1, clipy2, - focus); - } - - /* Draw active widgets. */ - for(w = window->active; w != NULL; w = w->next) { - wfocus = focus; - if(w == window->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - draw_widget(w, x1, y1, - clipy1, clipy2, - wfocus); - } -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_dialog(register struct ctk_window *dialog) -{ - register struct ctk_widget *w; - - hires_color(ctk_hires_theme.windowcolors[CTK_FOCUS_DIALOG]); - - /* x = (SCREEN_WIDTH - dialog->w) / 2; - y = (SCREEN_HEIGHT - 1 - dialog->h) / 2; */ - x = dialog->x; - y = dialog->y + 1; - - - x1 = x + 1; - y1 = y + 1; - x2 = x1 + dialog->w; - y2 = y1 + dialog->h; - - - /* Draw dialog frame. */ - - hires_cvlinexy(x, y1, dialog->h); - hires_cvlinexy(x2, y1, dialog->h); - - hires_chlinexy(x1, y, dialog->w); - hires_chlinexy(x1, y2, dialog->w); - - hires_cputcxy(x, y, CH_ULCORNER); - hires_cputcxy(x, y2, CH_LLCORNER); - hires_cputcxy(x2, y, CH_URCORNER); - hires_cputcxy(x2, y2, CH_LRCORNER); - - - /* Clear window contents. */ - for(i = y1; i < y2; ++i) { - hires_cclearxy(x1, i, dialog->w); - } - - /* Draw inactive widgets. */ - for(w = dialog->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, - 0, SCREEN_HEIGHT, CTK_FOCUS_DIALOG); - } - - - /* Draw active widgets. */ - for(w = dialog->active; w != NULL; w = w->next) { - wfocus = CTK_FOCUS_DIALOG; - if(w == dialog->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - draw_widget(w, x1, y1, - 0, SCREEN_HEIGHT, wfocus); - } - -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_clear(unsigned char y1, unsigned char y2) -{ - for(i = y1; i < y2; ++i) { - clear_line(i); - } -} -/*-----------------------------------------------------------------------------------*/ -static void -draw_menu(register struct ctk_menu *m) -{ - static unsigned char x, x2, y; - - hires_color(ctk_hires_theme.openmenucolor); - x = hires_wherex(); - ctk_hires_cputsn(m->title, m->titlelen); - ctk_hires_cputc(' '); - x2 = hires_wherex(); - if(x + CTK_CONF_MENUWIDTH > SCREEN_WIDTH) { - x = SCREEN_WIDTH - CTK_CONF_MENUWIDTH; - } - for(y = 0; y < m->nitems; ++y) { - if(y == m->active) { - hires_color(ctk_hires_theme.activemenucolor); - } else { - hires_color(ctk_hires_theme.menucolor); - } - hires_gotoxy(x, y + 1); - if(m->items[y].title[0] == '-') { - ctk_hires_chline(CTK_CONF_MENUWIDTH); - } else { - ctk_hires_cputsn(m->items[y].title, - strlen(m->items[y].title)); - } - ctk_hires_cclear(x + CTK_CONF_MENUWIDTH - hires_wherex()); - hires_revers(0); - } - hires_gotoxy(x2, 0); - hires_color(ctk_hires_theme.menucolor); -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_draw_menus(struct ctk_menus *menus) -{ - struct ctk_menu *m; - - /* Draw menus */ - hires_color(ctk_hires_theme.menucolor); - hires_gotoxy(0, 0); - hires_revers(0); - ctk_hires_cputc(' '); - for(m = menus->menus->next; m != NULL; m = m->next) { - if(m != menus->open) { - ctk_hires_cputsn(m->title, m->titlelen); - ctk_hires_cputc(' '); - } else { - draw_menu(m); - } - } - ctk_hires_cclear(SCREEN_WIDTH - hires_wherex() - - strlen(menus->desktopmenu->title) - 1); - - /* Draw desktopmenu */ - if(menus->desktopmenu != menus->open) { - ctk_hires_cputsn(menus->desktopmenu->title, - menus->desktopmenu->titlelen); - ctk_hires_cputc(' '); - } else { - draw_menu(menus->desktopmenu); - } - -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_draw_height(void) -{ - return SCREEN_HEIGHT; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_draw_width(void) -{ - return SCREEN_WIDTH; -} -/*-----------------------------------------------------------------------------------*/ -/*unsigned char -ctk_arch_isprint(char c) -{ - return isprint(c); -}*/ diff --git a/backyard/platform/c64/ctk/ctk-hires.h b/backyard/platform/c64/ctk/ctk-hires.h deleted file mode 100644 index 00587599a..000000000 --- a/backyard/platform/c64/ctk/ctk-hires.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-hires.h,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#ifndef __CTK_HIRES_H__ -#define __CTK_HIRES_H__ - -#include - -#define CTK_ARCH_KEY_T char - -#define ctk_arch_keyavail kbhit -#define ctk_arch_getkey cgetc - -#define CH_ENTER '\n' - -#endif /* __CTK_HIRES_H__ */ diff --git a/backyard/platform/c64/ctk/ctk-mouse-1351.S b/backyard/platform/c64/ctk/ctk-mouse-1351.S deleted file mode 100644 index eeef7b595..000000000 --- a/backyard/platform/c64/ctk/ctk-mouse-1351.S +++ /dev/null @@ -1,149 +0,0 @@ - -;--------------------------------------------------------------------- - ;; The 1351 mouse code was taken from the CC65 libraries, - ;; written by Ullrich von Bassewitz -;--------------------------------------------------------------------- - - .macpack generic - - .import _ctk_mouse_joyx, _ctk_mouse_joyy - .import _ctk_mouse_firebutton - .export _ctk_mouse_1351 -;--------------------------------------------------------------------- -.bss -OldValue: .res 1 ; Temp for MoveCheck routine -NewValue: .res 1 ; Temp for MoveCheck routine -YCorr: .res 1 ; Correction for Y coordinate - -OldPotX: .res 1 ; Old hw counter values -OldPotY: .res 1 - -SID_ADConv1 = $D419 -SID_ADConv2 = $D41A -CIA1_PRA = $DC00 -CIA1_PRB = $DC01 -CIA1_DDRB = $DC03 - - -;--------------------------------------------------------------------- -.data -XMin: .word 0 ; X1 value of bounding box -YMin: .word 0 ; Y1 value of bounding box -XMax: .word 319 ; X2 value of bounding box -YMax: .word 199 ; Y2 value of bounding box - -;--------------------------------------------------------------------- -.code - -;--------------------------------------------------------------------- -;--------------------------------------------------------------------- - ;; Most of the mouse code is taken from the CC65 libraries written by - ;; Ullrich von Bassewitz -MoveCheck: - sty OldValue - sta NewValue - ldx #$00 - - sub OldValue ; a = mod64 (new - old) - and #%01111111 - cmp #%01000000 ; if (a > 0) - bcs @L1 ; - lsr a ; a /= 2; - beq @L2 ; if (a != 0) - ldy NewValue ; y = NewValue - rts ; return - -@L1: ora #%11000000 ; else or in high order bits - cmp #$FF ; if (a != -1) - beq @L2 - sec - ror a ; a /= 2 - dex ; high byte = -1 (X = $FF) - ldy NewValue - rts - -@L2: txa ; A = $00 - rts - -;--------------------------------------------------------------------- -_ctk_mouse_1351: - lda SID_ADConv1 ; Get mouse X movement - ldy OldPotX - jsr MoveCheck ; Calculate movement vector - sty OldPotX - -; Calculate the new X coordinate (--> a/y) - - add _ctk_mouse_joyx - tay ; Remember low byte - txa - adc _ctk_mouse_joyx+1 - tax - -; Limit the X coordinate to the bounding box - - cpy XMin - sbc XMin+1 - bpl @L1 - ldy XMin - ldx XMin+1 - jmp @L2 -@L1: txa - - cpy XMax - sbc XMax+1 - bmi @L2 - ldy XMax - ldx XMax+1 -@L2: sty _ctk_mouse_joyx - stx _ctk_mouse_joyx+1 -; Calculate the Y movement vector - - lda SID_ADConv2 ; Get mouse Y movement - ldy OldPotY - jsr MoveCheck ; Calculate movement - sty OldPotY - -; Calculate the new Y coordinate (--> a/y) - - sta OldValue - lda _ctk_mouse_joyy - sub OldValue - tay - stx OldValue - lda _ctk_mouse_joyy+1 - sbc OldValue - tax - - cpy YMin - sbc YMin+1 - bpl @L3 - ldy YMin - ldx YMin+1 - jmp @L4 -@L3: txa - - cpy YMax - sbc YMax+1 - bmi @L4 - ldy YMax - ldx YMax+1 -@L4: sty _ctk_mouse_joyy - stx _ctk_mouse_joyy+1 - - ;; Get mouse button - lda #$7F - sta CIA1_PRA - lda CIA1_PRB ; Read joystick #0 - ldx #0 - and #$1F - eor #$1F - - ora _ctk_mouse_firebutton - sta _ctk_mouse_firebutton - - lda #0 - sta CIA1_PRA - sta CIA1_DDRB - rts -;--------------------------------------------------------------------- diff --git a/backyard/platform/c64/ctk/ctk-mouse-arch.c b/backyard/platform/c64/ctk/ctk-mouse-arch.c deleted file mode 100644 index 66f7775e5..000000000 --- a/backyard/platform/c64/ctk/ctk-mouse-arch.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-mouse-arch.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#include "ctk/ctk.h" -#include "ctk-mouse.h" -#include "ctk-conf.h" - -#if CTK_CONF_MOUSE_SUPPORT - -unsigned short ctk_mouse_joyy, ctk_mouse_joyx; -unsigned char ctk_mouse_firebutton; - -extern void ctk_mouse_asm_irq(void); - -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -ctk_mouse_init(void) -{ - /* Place mouse pointer at the middle of the screen. */ - ctk_mouse_joyx = 160; - ctk_mouse_joyy = 100; - - /* Setup and start IRQ */ - asm("sei"); - asm("lda #<%v", ctk_mouse_asm_irq); - asm("sta $0314"); - asm("lda #>%v", ctk_mouse_asm_irq); - asm("sta $0315"); - asm("cli"); - -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -unsigned short -ctk_mouse_x(void) -{ - if(ctk_mouse_joyx >= 342) { - ctk_mouse_joyx = 0; - } else if(ctk_mouse_joyx >= 320) { - ctk_mouse_joyx = 319; - } - return ctk_mouse_joyx; -} -/*-----------------------------------------------------------------------------------*/ -unsigned short -ctk_mouse_y(void) -{ - return ctk_mouse_joyy; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_mouse_button(void) -{ - return ctk_mouse_firebutton; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_mouse_xtoc(unsigned short x) -{ - return x / 8; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_mouse_ytoc(unsigned short y) -{ - return y / 8; -} -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -ctk_mouse_hide(void) -{ - /* Turn off sprites 0 and 1 */ - asm("lda #0"); - asm("sta $d015"); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -ctk_mouse_show(void) -{ - /* Turn on sprites 0 and 1 */ - asm("lda #3"); - asm("sta $d015"); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#endif /* CTK_CONF_MOUSE_SUPPORT */ diff --git a/backyard/platform/c64/ctk/ctk-mouse-asm.S b/backyard/platform/c64/ctk/ctk-mouse-asm.S deleted file mode 100644 index 6aa53b425..000000000 --- a/backyard/platform/c64/ctk/ctk-mouse-asm.S +++ /dev/null @@ -1,48 +0,0 @@ - -;--------------------------------------------------------------------- - ;; The 1351 mouse code was taken from the CC65 libraries, - ;; written by Ullrich von Bassewitz -;--------------------------------------------------------------------- - - .macpack generic - - .import _ctk_mouse_joyx, _ctk_mouse_joyy - .import _ctk_mouse_firebutton - .export _ctk_mouse_asm_irq - .import _ctk_mouse_joy, _ctk_mouse_1351 -;--------------------------------------------------------------------- - -;--------------------------------------------------------------------- -.code - -;--------------------------------------------------------------------- -_ctk_mouse_asm_irq: - lda #0 - sta _ctk_mouse_firebutton - - jsr _ctk_mouse_joy - ;; jsr_ctk_mouse_1351 - - ; lda _ctk_mouse_joybutton - ; ora _ctk_mouse_1351button - ; sta _ctk_mouse_firebutton - - lda _ctk_mouse_joyy - clc - adc #$32 - sta $d001 - sta $d003 - - lda _ctk_mouse_joyx - clc - adc #$18 - sta $d000 - sta $d002 - lda #0 - adc _ctk_mouse_joyx+1 - and #1 - beq :+ - lda #3 -: - sta $d010 - jmp $ea31 diff --git a/backyard/platform/c64/ctk/ctk-mouse-joy.S b/backyard/platform/c64/ctk/ctk-mouse-joy.S deleted file mode 100644 index 963ca3607..000000000 --- a/backyard/platform/c64/ctk/ctk-mouse-joy.S +++ /dev/null @@ -1,135 +0,0 @@ - -;--------------------------------------------------------------------- - - .macpack generic - - .import _ctk_mouse_joyx, _ctk_mouse_joyy - .import _ctk_mouse_firebutton - .export _ctk_mouse_joy -;--------------------------------------------------------------------- -.bss -lastjoydy: .res 1 -lastjoydx: .res 1 -joydycnt: .res 1 -joydxcnt: .res 1 - -;--------------------------------------------------------------------- -.code - -;--------------------------------------------------------------------- -_ctk_mouse_joy: - ldy $dc02 - lda #0 - sta $dc02 - lda $dc00 - sty $dc02 - ldy #0 - ldx #0 - lsr - bcs nodey - dey -nodey: - lsr - bcs noiny - iny -noiny: - lsr - bcs nodex - dex -nodex: - lsr - bcs noinx - inx -noinx: - and #1 - eor #1 - ora _ctk_mouse_firebutton - sta _ctk_mouse_firebutton - - cpy lastjoydy - sty lastjoydy - bne noydy - tya - pha - inc joydycnt - lda joydycnt - cmp #$1f - bmi nostajoydycnt - lda #$20 - sta joydycnt -nostajoydycnt: - lsr - lsr - lsr - lsr - tay - pla -asldeyloop: - asl - dey - bpl asldeyloop - tay - jmp ydy -noydy: - lda #0 - sta joydycnt -ydy: - - tya - clc - adc _ctk_mouse_joyy - - cmp #240 - bcc :+ - lda #0 -: - - cmp #200 - bcc :+ - lda #199 -: - sta _ctk_mouse_joyy - - cpx lastjoydx - stx lastjoydx - bne noxdx - txa - pha - inc joydxcnt - lda joydxcnt - cmp #$1f - bmi nostajoydxcnt - lda #$20 - sta joydxcnt -nostajoydxcnt: - lsr - lsr - lsr - lsr - tax - pla -asldexloop: - asl - dex - bpl asldexloop - tax - jmp xdx -noxdx: - lda #0 - sta joydxcnt -xdx: - - txa - clc - adc _ctk_mouse_joyx - sta _ctk_mouse_joyx - php - lda #$ff - cpx #0 - bmi nolda02 - lda #0 -nolda02: - plp - adc _ctk_mouse_joyx+1 - sta _ctk_mouse_joyx+1 - rts diff --git a/backyard/platform/c64/ctk/ctk-mouse.c b/backyard/platform/c64/ctk/ctk-mouse.c deleted file mode 100644 index 7d60deab0..000000000 --- a/backyard/platform/c64/ctk/ctk-mouse.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-mouse.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -#include "ctk/ctk.h" -#include "ctk-mouse.h" -#include "ctk-conf.h" - -#if CTK_CONF_MOUSE_SUPPORT - -unsigned short ctk_mouse_joyy, ctk_mouse_joyx; -unsigned char ctk_mouse_firebutton; - -extern void ctk_mouse_asm_irq(void); - -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -ctk_mouse_init(void) -{ - /* Place mouse pointer at the middle of the screen. */ - ctk_mouse_joyx = 160; - ctk_mouse_joyy = 100; - - /* Setup and start IRQ */ - asm("sei"); - asm("lda #<%v", ctk_mouse_asm_irq); - asm("sta $0314"); - asm("lda #>%v", ctk_mouse_asm_irq); - asm("sta $0315"); - asm("cli"); - -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -unsigned short -ctk_mouse_x(void) -{ - if(ctk_mouse_joyx >= 342) { - ctk_mouse_joyx = 0; - } else if(ctk_mouse_joyx >= 320) { - ctk_mouse_joyx = 319; - } - return ctk_mouse_joyx; -} -/*-----------------------------------------------------------------------------------*/ -unsigned short -ctk_mouse_y(void) -{ - return ctk_mouse_joyy; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_mouse_button(void) -{ - return ctk_mouse_firebutton; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_mouse_xtoc(unsigned short x) -{ - return x / 8; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_mouse_ytoc(unsigned short y) -{ - return y / 8; -} -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -ctk_mouse_hide(void) -{ - /* Turn off sprites 0 and 1 */ - asm("lda #0"); - asm("sta $d015"); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -ctk_mouse_show(void) -{ - /* Turn on sprites 0 and 1 */ - asm("lda #3"); - asm("sta $d015"); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#endif /* CTK_CONF_MOUSE_SUPPORT */ diff --git a/backyard/platform/c64/lib/iconfield.c b/backyard/platform/c64/lib/iconfield.c deleted file mode 100644 index 8cfbe90ac..000000000 --- a/backyard/platform/c64/lib/iconfield.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: iconfield.c,v 1.1 2007/05/23 23:11:27 oliverschmidt Exp $ - * - */ - -/*-----------------------------------------------------------------------------------*/ -#define LFN 9 -static void -loaddirectory(char *ext) -{ - unsigned char i, j; - unsigned char extlen; - - extlen = strlen(ext); - - if(cbm_opendir(LFN, 8) != 0) { - show_statustext("Cannot open directory"); - } else { - i = 0; - while(cbm_readdir(LFN, &dirent) == 0) { - if(strcmp(&dirent.name[strlen(dirent.name) - extlen], - ext) == 0) { - strncpy(filenames[i], dirent.name, 16); - ++i; - if(i == MAX_NUMFILES) { - break; - } - } - cbm_closedir(LFN); - - numfiles = i; - - j = 0; - for(i = 0; i < numfiles; ++i) { - dscs[j] = LOADER_LOAD_DSC(filenames[i]); - if(dscs[j] != NULL) { - ++j; - } - } - } - } -} -/*-----------------------------------------------------------------------------------*/ -static void -makewindow(struct ctk_window *window) -{ - unsigned char x, y; - - ctk_window_clear(&window); - CTK_WIDGET_SET_YPOS(&description, height - 3); - CTK_WIDGET_SET_WIDTH(&description, width); - CTK_WIDGET_ADD(&window, &description); - - morestart = i; - - x = 0; y = 1; - for(; dscs[i] != NULL; ++i) { - - if(x + strlen(dscs[i]->icon->title) >= width) { - y += 5; - x = 0; - if(y >= height - 2 - 4) { - morestart = i; - break; - } - } - CTK_WIDGET_SET_XPOS(dscs[i]->icon, x); - CTK_WIDGET_SET_YPOS(dscs[i]->icon, y); - CTK_WIDGET_ADD(&window, dscs[i]->icon); - - x += strlen(dscs[i]->icon->title) + 1; - } - CTK_WIDGET_SET_YPOS(&autoexitbutton, height - 2); - CTK_WIDGET_ADD(&window, &autoexitbutton); - CTK_WIDGET_SET_YPOS(&autoexitlabel, height - 2); - CTK_WIDGET_ADD(&window, &autoexitlabel); - - if(i != morestart) { - CTK_WIDGET_SET_YPOS(&backbutton, height - 1); - CTK_WIDGET_ADD(&window, &backbutton); - } else { - CTK_WIDGET_SET_YPOS(&morebutton, height - 1); - CTK_WIDGET_ADD(&window, &morebutton); - } - CTK_WIDGET_SET_XPOS(&reloadbutton, width - 8); - CTK_WIDGET_SET_YPOS(&reloadbutton, height - 1); - CTK_WIDGET_ADD(&window, &reloadbutton); -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/lib/mtarch-asm.S b/backyard/platform/c64/lib/mtarch-asm.S deleted file mode 100644 index 22ab6095e..000000000 --- a/backyard/platform/c64/lib/mtarch-asm.S +++ /dev/null @@ -1,245 +0,0 @@ -;--------------------------------------------------------------------- - .importzp ptr1 - .importzp sp - .import __ZP_START__ - - - .import _mtarch_asm_threadstack - .import _mtarch_asm_threadsp - .import _mtarch_asm_threadspreg - .import _mtarch_asm_threadzp - - .export _mtarch_asm_exec - .export _mtarch_yield - .export _mtarch_asm_start - .export _mtarch_pstart, _mtarch_pstop - -;--------------------------------------------------------------------- -.bss -kernelsp: .res 2 -kernelspreg: .res 1 - -oldirq: .res 2 - - zpsize = 32 -.code -;--------------------------------------------------------------------- - ;; Switch to thread defined by threadsp, threadstack and threadspreg. - ;; The kernel stack is swapped onto the threadstack, and the - ;; sp and spreg are saved to the local variables "kernelsp" and - ;; "kernelspreg". Also, the zeropage variables are saved. - -_mtarch_asm_exec: - sei - ;; Save current stack pointer - lda sp - sta kernelsp - lda sp+1 - sta kernelsp+1 - - tsx - stx kernelspreg - - lda _mtarch_asm_threadzp - sta ptr1 - lda _mtarch_asm_threadzp+1 - sta ptr1+1 - - ldy #0 -: - lda <__ZP_START__,y - tax - lda (ptr1),y - sta <__ZP_START__,y - txa - sta (ptr1),y - iny - cpy #zpsize - bne :- - - lda _mtarch_asm_threadstack - sta ptr1 - lda _mtarch_asm_threadstack+1 - sta ptr1+1 - - ldy kernelspreg ; determine the smallest of the two stack pointers, - cpy _mtarch_asm_threadspreg ; as we only need to swap the used part of the stack - bcc :+ - ldy _mtarch_asm_threadspreg - -: - lda $0100,y - tax - lda (ptr1),y - sta $0100,y - txa - sta (ptr1),y - iny - bne :- - - lda _mtarch_asm_threadsp - sta sp - lda _mtarch_asm_threadsp+1 - sta sp+1 - - ldx _mtarch_asm_threadspreg - txs - -; jsr _mtarch_pstart - - lda $0314 - sta oldirq - lda $0315 - sta oldirq+1 - - lda #irq - sta $0315 - - - pla - tay - pla - tax - pla - - rti - - ;; Switch from thread defined by threadsp, threadstack and threadspreg. - ;; The kernel stack is swapped back from the threadstack, and the - ;; sp and spreg are restored from the local variables "kernelsp" and - ;; "kernelspreg". -yield: - sei - lda sp - sta _mtarch_asm_threadsp - lda sp+1 - sta _mtarch_asm_threadsp+1 - - tsx - stx _mtarch_asm_threadspreg - - lda _mtarch_asm_threadzp - sta ptr1 - lda _mtarch_asm_threadzp+1 - sta ptr1+1 - - ldy kernelspreg ; determine the smallest of the two stack pointers, - cpy _mtarch_asm_threadspreg ; as we only need to swap the used part of the stack - bcc :+ - ldy _mtarch_asm_threadspreg - -: - lda <__ZP_START__,y - tax - lda (ptr1),y - sta <__ZP_START__,y - txa - sta (ptr1),y - iny - cpy #zpsize - bne :- - - lda _mtarch_asm_threadstack - sta ptr1 - lda _mtarch_asm_threadstack+1 - sta ptr1+1 - - ldy #0 -: - lda $0100,y - tax - lda (ptr1),y - sta $0100,y - txa - sta (ptr1),y - iny - bne :- - - lda kernelsp - sta sp - lda kernelsp+1 - sta sp+1 - - ldx kernelspreg - txs - - cli - - rts -;--------------------------------------------------------------------- - ;; Simulate an IRQ by pushing CPU status and CPu registers - ;; onto the stack. Then call the yield function to yield the - ;; process. -_mtarch_yield: - php - pha - txa - pha - tya - pha - - tsx - - ; the rts adds 1 to the PC - ; saved on the stack. We want - lda $0105,x ; the stack to look like is would - clc ; do inside of an interrupt. - adc #1 ; (this is what the 'rts' does, - sta $0105,x ; but not the 'rti') - lda $0106,x - adc #0 - sta $0106,x - - - jmp yield -;--------------------------------------------------------------------- -_mtarch_asm_start: - lda _mtarch_asm_threadzp - sta ptr1 - lda _mtarch_asm_threadzp+1 - sta ptr1+1 - - ldy #0 -: - lda <__ZP_START__,y - sta (ptr1),y - iny - cpy #zpsize - bne :- - rts - -;--------------------------------------------------------------------- -irq: - lda oldirq - sta $0314 - lda oldirq+1 - sta $0315 - jmp yield -;--------------------------------------------------------------------- - ;; Setup preemption IRQ -_mtarch_pstart: - sei - lda $0314 - sta oldirq - lda $0315 - sta oldirq+1 - - lda #irq - sta $0315 - cli - rts -;--------------------------------------------------------------------- -_mtarch_pstop: - sei - lda oldirq - sta $0314 - lda oldirq+1 - sta $0315 - cli - rts -;--------------------------------------------------------------------- - diff --git a/backyard/platform/c64/lib/mtarch.c b/backyard/platform/c64/lib/mtarch.c deleted file mode 100644 index 19245bb82..000000000 --- a/backyard/platform/c64/lib/mtarch.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: mtarch.c,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - */ -#include "mtarch.h" -#include - -unsigned char mtarch_asm_threadspreg; -unsigned char *mtarch_asm_threadsp; -unsigned char *mtarch_asm_threadzp; -unsigned char *mtarch_asm_threadstack; - -void mtarch_asm_start(void); -void mtarch_asm_exec(void); - - -/*--------------------------------------------------------------------------*/ -void -mtarch_start(struct mtarch_thread *thread, - void (* function)(void *data), - void *data) -{ - memset(thread->cpustack, 0, sizeof(thread->cpustack)); - memset(thread->cstack, 0, sizeof(thread->cstack)); - - /* Create a CPU stack frame with the appropriate values... */ - thread->cpustack[MTARCH_CPUSTACKSIZE - 2] = ((unsigned short)function) >> 8; /* high byte of return address. */ - thread->cpustack[MTARCH_CPUSTACKSIZE - 3] = ((unsigned short)function) & 0xff; /* low byte of return address. */ - thread->cpustack[MTARCH_CPUSTACKSIZE - 4] = 0x21; /* processor flags. */ - thread->cpustack[MTARCH_CPUSTACKSIZE - 5] = /* a register */ - thread->cpustack[MTARCH_CPUSTACKSIZE - 6] = /* x register */ - thread->cpustack[MTARCH_CPUSTACKSIZE - 7] = 0; /* y register */ - thread->spreg = MTARCH_CPUSTACKSIZE - 8; - - /* Setup the C stack with the data pointer. */ - thread->sp = &thread->cstack[MTARCH_CSTACKSIZE - 1]; - - mtarch_asm_threadzp = &(thread->zp); - mtarch_asm_start(); -} -/*--------------------------------------------------------------------------*/ -void -mtarch_exec(struct mtarch_thread *thread) -{ - /* Switch processor stack. The call to mtarch_asm_switch() will not - return until the process that we switch to calls yield(). */ - mtarch_asm_threadspreg = thread->spreg; - mtarch_asm_threadsp = thread->sp; - - mtarch_asm_threadstack = &(thread->cpustack[0]); - mtarch_asm_threadzp = &(thread->zp[0]); - - mtarch_asm_exec(); - - thread->sp = mtarch_asm_threadsp; - thread->spreg = mtarch_asm_threadspreg; -} -/*--------------------------------------------------------------------------*/ -void -mtarch_init(void) { - -} -/*--------------------------------------------------------------------------*/ -void -mtarch_remove(void) -{ - -} diff --git a/backyard/platform/c64/lib/mtarch.h b/backyard/platform/c64/lib/mtarch.h deleted file mode 100644 index 5fe7570a8..000000000 --- a/backyard/platform/c64/lib/mtarch.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: mtarch.h,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - */ -#ifndef __MTARCH_H__ -#define __MTARCH_H__ - -#define MTARCH_CPUSTACKSIZE 256 -#define MTARCH_CSTACKSIZE 256 -#define MTARCH_ZPSIZE 32 - -struct mtarch_thread { - unsigned char spreg; - unsigned char *sp; - unsigned char cpustack[MTARCH_CPUSTACKSIZE]; - unsigned char cstack[MTARCH_CSTACKSIZE]; - unsigned char zp[MTARCH_ZPSIZE]; -}; - -#endif /* __MTARCH_H__ */ - diff --git a/backyard/platform/c64/lib/save-driveunit.S b/backyard/platform/c64/lib/save-driveunit.S deleted file mode 100644 index b9a8f1629..000000000 --- a/backyard/platform/c64/lib/save-driveunit.S +++ /dev/null @@ -1,7 +0,0 @@ - .import __curunit - .constructor saveunit, 32 -.code -saveunit: - lda $ba - sta __curunit - rts diff --git a/backyard/platform/c64/loader/c64-dio-asm.S b/backyard/platform/c64/loader/c64-dio-asm.S deleted file mode 100644 index d00dbf25e..000000000 --- a/backyard/platform/c64/loader/c64-dio-asm.S +++ /dev/null @@ -1,505 +0,0 @@ - - - .export _c64_dio_asm_init - .export _c64_dio_asm_read_block - .export _c64_dio_asm_write_block - - .export _c64_dio_asm_track, _c64_dio_asm_sector - - .export _c64_dio_asm_ptr - - .importzp ptr1, ptr2 - - ;; job code $80 read, $90 write - - -ciout = $ffa8 -listen = $ffb1 -second = $ff93 -unlsn = $ffae - -nbytes = 34 -esc = $42 - -blockread = 1 -blockwrite = 2 - -errok = 0 -errerr = 1 - -.data -_c64_dio_asm_track: .byte 0 -_c64_dio_asm_sector: .byte 0 -_c64_dio_asm_ptr: .byte 0,0 - -.code -;--------------------------------------- -_c64_dio_asm_read_block: - - lda #blockread - jsr send - - lda _c64_dio_asm_track - jsr send - lda _c64_dio_asm_sector - jsr send - - - jsr recv - cmp #errok - bne readerr - - lda _c64_dio_asm_ptr - sta ptr1 - lda _c64_dio_asm_ptr+1 - sta ptr1+1 - ldy #0 -readl: - jsr recv - sta (ptr1),y - iny - bne readl - clc - lda #0 - tax - rts -readerr: - ; sta $07c0 - jsr recv - ; sta $07c1 - ldx #0 - rts -;--------------------------------------- -_c64_dio_asm_write_block: - - lda #blockwrite - jsr send - - lda _c64_dio_asm_track - jsr send - lda _c64_dio_asm_sector - jsr send - - - lda _c64_dio_asm_ptr - sta ptr1 - lda _c64_dio_asm_ptr+1 - sta ptr1+1 - ldy #0 -writel: - lda (ptr1),y - jsr send - iny - bne writel - - jsr recv - cmp #errok - bne writeerr - lda #0 - tax - rts - -writeerr: - ; sta $07c0 - jsr recv - ; sta $07c1 - ldx #0 - rts -;--------------------------------------- -_c64_dio_asm_init: - sta devnr - lda #$00 - sta drvmem - lda #$05 - sta drvmem+1 - - lda #drive - sta ptr1+1 - - ; lda devnr - ; ldx #icmd - ; jsr drvcmd - ; jsr unlsn - -mwl: - lda devnr - ldx #mwcmd - jsr drvcmd - - ldy #0 - lda (ptr1),y - jsr ciout - iny - cpy #nbytes - bne *-8 - - jsr unlsn - - lda drvmem - clc - adc #nbytes - sta drvmem - lda drvmem+1 - adc #0 - sta drvmem+1 - - lda ptr1 - clc - adc #nbytes - sta ptr1 - tax - lda ptr1+1 - adc #0 - sta ptr1+1 - cpx #driveend - bcc mwl - - lda devnr - ldx #mecmd - jsr drvcmd - jsr unlsn - - rts -;--------------------------------------- -drvcmd: - stx ptr2 - sty ptr2+1 - jsr listen - lda #$6f - jsr second - - ldy #0 - lda (ptr2),y - sta drvcmdcmp+1 - inc ptr2 - bne *+4 - inc ptr2+1 - - ldy #0 - lda (ptr2),y - jsr ciout - iny -drvcmdcmp: cpy #0 - bne *-8 - rts -;--------------------------------------- -devnr: .byte 8 -mwcmd: .byte 6 - .byte $4d, $2d, $57 -drvmem: .word $0500 - .byte nbytes - .byte 0 -mecmd: .byte 2 - .byte $55, $33 - .byte 0 -;--------------------------------------- -send: - - sta ptr2 - ldx #7 -sendl: - lsr ptr2 - - - lda $dd00 - and #$df - ora #$10 - bcc *+4 - eor #$30 - sta $dd00 - - lda #$c0 - bit $dd00 - bne *-3 - - lda $dd00 - and #$cf - sta $dd00 - - lda $dd00 - and #$c0 - eor #$c0 - bne *-7 - - dex - bpl sendl - - ldx $d020 - lda #1 - sta $d020 - stx $d020 - - rts -;--------------------------------------- -recv: - ldx $d020 - lda #0 - sta $d020 - stx $d020 - - ldx #7 -recvl: - lda $dd00 - and #$c0 - eor #$c0 - beq *-7 - asl a - - lda $dd00 - and #$df - ora #$10 - bcs *+4 - eor #$30 - sta $dd00 - ror ptr2 - - lda #$c0 - bit $dd00 - beq *-3 - - lda $dd00 - and #$cf - sta $dd00 - - dex - bpl recvl - lda ptr2 - rts -;--------------------------------------- - -;--------------------------------------- -;the code residing in the drive: -;--------------------------------------- -dtmp = $46 -dtmp2 = $97 -dbuf = $0300 -dbufcmd = $00 -dbuftrack = $06 -dbufsect = $07 - -retries = 4 -bretries = 2 -;--------------------------------------- -drive : - .org $0500 - - - - cld - tsx - stx dstack - sei - jsr ledoff - -drivel: - jsr dload - jsr ledoff - cli - jmp drivel -;--------------------------------------- -ledon: - lda $1c00 - ora #$08 - sta $1c00 - rts -ledoff: - lda $1c00 - and #$f7 - sta $1c00 - rts -;--------------------------------------- -drecv: - ldx #7 -drecvl: - lda $1800 - bmi atn - and #5 - beq *-7 - lsr a - lda #2 - bcc *+4 - lda #8 - sta $1800 - ror dtmp - lda $1800 - bmi atn - and #5 - eor #5 - beq *-9 - lda #0 - sta $1800 - dex - bpl drecvl - lda dtmp - rts -;--------------------------------------- -atn: - ldx dstack - txs - cli - rts -;--------------------------------------- -dsend: - sta dtmp - ldx #7 -dsendl: - lsr dtmp - lda #2 - bcs *+4 - lda #8 - sta $1800 - - lda $1800 - bmi atn - and #5 - eor #5 - bne *-9 - - sta $1800 - - lda #5 - bit $1800 - bne *-3 - dex - bpl dsendl - rts -;--------------------------------------- -dload: - ldy #0 - - jsr drecv - sta dcmd - - jsr ledon - - jsr drecv - sta dbuftrack - - jsr drecv - sta dbufsect - - lda dcmd - cmp #blockwrite - bne dblockread -dblockwrite: - ldy #0 -drecvpl: - jsr drecv - sta dbuf,y - iny - bne drecvpl - - jmp dputsect - -dblockread: - jsr dgetsect - -dsendpage: - ldy #0 -dsendpl: - lda dbuf,y - jsr dsend - iny - bne dsendpl - rts -;--------------------------------------- -dgetsect: - ; stx dbuftrack - ; sty dbufsect - ldx #retries -dgetsectl: - lda #$80 - sta dbufcmd - - cli -: - lda dbufcmd - bmi :- - sei - cmp #1 - beq dgsnoerr - - cpx #0 - beq dgsserr - dex - cpx #bretries - bcs dgetsectl - pha - lda #$c0 - sta dbufcmd - cli -: - lda dbufcmd - bmi :- - pla - cpx #0 - bne dgetsectl - -dgsserr: - pha - lda #errerr - jsr dsend - pla - jsr dsend - rts -dgsnoerr: - lda #errok - jsr dsend - rts -;--------------------------------------- -dputsect: - ; stx dbuftrack - ; sty dbufsect - ldx #retries -dputsectl: - lda #$90 - sta dbufcmd - - cli -: - lda dbufcmd - bmi :- - sei - cmp #1 - beq dpsnoerr - - cpx #0 - beq dpsserr - dex - cpx #bretries - bcs dputsectl - pha - lda #$c0 - sta dbufcmd - cli -: - lda dbufcmd - bmi :- - pla - cpx #0 - bne dputsectl - -dpsserr: - pha - lda #errerr - jsr dsend - pla - jsr dsend - rts -dpsnoerr: - lda #errok - jsr dsend - rts -;--------------------------------------- -led: .byte 0,0 -dstack: .byte 0 -dcmd: .byte 0 -.RELOC -driveend: - diff --git a/backyard/platform/c64/loader/c64-dio-asm.h b/backyard/platform/c64/loader/c64-dio-asm.h deleted file mode 100644 index b04bb60fe..000000000 --- a/backyard/platform/c64/loader/c64-dio-asm.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS - * - * $Id: c64-dio-asm.h,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - * - */ -#ifndef __C64_DIO_ASM_H__ -#define __C64_DIO_ASM_H__ - -extern unsigned char c64_dio_asm_track, - c64_dio_asm_sector; - -extern unsigned char *c64_dio_asm_ptr; - -void __fastcall__ c64_dio_asm_init(unsigned char drive); -unsigned char c64_dio_asm_read_block(void); -unsigned char c64_dio_asm_write_block(void); - -#endif /* __C64_DIO_H__ */ diff --git a/backyard/platform/c64/loader/c64-dio.c b/backyard/platform/c64/loader/c64-dio.c deleted file mode 100644 index b4b24e743..000000000 --- a/backyard/platform/c64/loader/c64-dio.c +++ /dev/null @@ -1,119 +0,0 @@ -/** - * \addtogroup c64fs - * @{ - * - */ - -/** - * \file - * C64 direct disk I/O. - * \author Adam Dunkels - * - */ - -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS - * - * $Id: c64-dio.c,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - * - */ - -#include "c64-dio.h" -#include "c64-dio-asm.h" - -/*-----------------------------------------------------------------------------------*/ -/** - * Read a block of data (256 bytes) from the disk. - * - * \param track The track of the disk block to be read. - * - * \param sector The sector of the disk block to be read. - * - * \param ptr A pointer to a buffer than must be able to accomodate - * 256 bytes of data. - * - * \return An error code or C64_DIO_OK if the data was successfully - * read. - */ -/*-----------------------------------------------------------------------------------*/ -unsigned char -c64_dio_read_block(unsigned char track, - unsigned char sector, - unsigned char *ptr) -{ - c64_dio_asm_track = track; - c64_dio_asm_sector = sector; - c64_dio_asm_ptr = ptr; - return c64_dio_asm_read_block(); -} -/*-----------------------------------------------------------------------------------*/ -/** - * Write a block of data (256 bytes) to the disk. - * - * \param track The track of the disk block to be written. - * - * \param sector The sector of the disk block to be written. - * - * \param ptr A pointer to a buffer containing the 256 bytes of data - * to be written. - * - * \return An error code or C64_DIO_OK if the data was successfully - * written. - */ -/*-----------------------------------------------------------------------------------*/ -unsigned char -c64_dio_write_block(unsigned char track, - unsigned char sector, - unsigned char *ptr) -{ - c64_dio_asm_track = track; - c64_dio_asm_sector = sector; - c64_dio_asm_ptr = ptr; - return c64_dio_asm_write_block(); -} -/*-----------------------------------------------------------------------------------*/ -/** - * Initialize the direct disk I/O routines for a particular disk drive. - * - * This function must be called before any of the other direct disk - * I/O functions can be used. - * - * \param drive The drive number of the disk drive for which the - * direct disk I/O should be enabled. - */ -/*-----------------------------------------------------------------------------------*/ -void -c64_dio_init(unsigned char drive) -{ - c64_dio_asm_init(drive); -} -/*-----------------------------------------------------------------------------------*/ -/** @} */ diff --git a/backyard/platform/c64/loader/c64-dio.h b/backyard/platform/c64/loader/c64-dio.h deleted file mode 100644 index da8c6ea97..000000000 --- a/backyard/platform/c64/loader/c64-dio.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS - * - * $Id: c64-dio.h,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - * - */ -#ifndef __C64_DIO_H__ -#define __C64_DIO_H__ - -void c64_dio_init(unsigned char drive); - -unsigned char c64_dio_read_block(unsigned char track, - unsigned char sector, - unsigned char *buf); - -unsigned char c64_dio_write_block(unsigned char track, - unsigned char sector, - unsigned char *buf); - -#define C64_DIO_OK 0 - -#endif /* __C64_DIO_H__ */ diff --git a/backyard/platform/c64/loader/c64-fs-raw.c b/backyard/platform/c64/loader/c64-fs-raw.c deleted file mode 100644 index 172f25163..000000000 --- a/backyard/platform/c64/loader/c64-fs-raw.c +++ /dev/null @@ -1,205 +0,0 @@ -/** - * \addtogroup c64fs - * @{ - */ - -/** - * \file - * "Raw" C64 file system access. - * \author Adam Dunkels - * - * This file provides functions that allow reading data from files - * without updating the file descriptor pointer. The functions are not - * automatically included in the core Contiki code and therefore - * application programs that use tham must manually link with this - * file. - * - */ - - -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: c64-fs-raw.c,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - * - */ - -#include "c64-fs-raw.h" - -#include - -struct directory_entry { - unsigned char type; - unsigned char track, sect; - unsigned char name[16]; - unsigned char reltrack, relsect, relreclen; - unsigned char unused1, unused2, unused3, unused4; - unsigned char tmptrack, tmpsect; - unsigned char blockslo, blockshi; -}; - - -extern unsigned char _c64_fs_dirbuf[256]; -extern unsigned char _c64_fs_dirbuftrack, _c64_fs_dirbufsect; - -extern unsigned char _c64_fs_filebuf[256]; -extern unsigned char _c64_fs_filebuftrack, _c64_fs_filebufsect; - -void _c64_fs_readdirbuf(unsigned char track, unsigned char sect); - - -/*-----------------------------------------------------------------------------------*/ -/** - * Read data from a file without updating the file descriptor pointer. - * - * This function reads data from an open file into a buffer than must - * be allocated by the caller, but does not update the file - * description pointer like the c64_fs_read() function does. - * - * \param f A pointer to a file descriptor structure that must have - * been opened with c64_fs_open(). - * - * \param buf A pointer to the buffer in which the data should be placed. - * - * \param len The maxiumum amount of bytes to read. - * - * \return The number of bytes that actually was read, or 0 if an end - * of file was encountered. - * - */ -/*-----------------------------------------------------------------------------------*/ -int __fastcall__ -c64_fs_read_raw(register struct c64_fs_file *f, char *buf, int len) -{ - int i; - unsigned char fptr, ftrack, fsect; - - /* Check if current block is already in buffer, and if not read it - from disk. */ - if(_c64_fs_filebuftrack != f->track || - _c64_fs_filebufsect != f->sect) { - _c64_fs_filebuftrack = f->track; - _c64_fs_filebufsect = f->sect; - c64_dio_read_block(_c64_fs_filebuftrack, - _c64_fs_filebufsect, _c64_fs_filebuf); - } - - if(_c64_fs_filebuf[0] == 0 && - f->ptr == _c64_fs_filebuf[1]) { - return 0; /* EOF */ - } - - fptr = f->ptr; - ftrack = f->track; - fsect = f->sect; - - for(i = 0; i < len; ++i) { - *buf = _c64_fs_filebuf[fptr]; - - ++fptr; - if(_c64_fs_filebuf[0] == 0) { - if(fptr == _c64_fs_filebuf[1]) { - /* End of file reached, we return the amount of bytes read so - far. */ - return i + 1; - } - } else if(fptr == 0) { - - /* Read new block into buffer and set buffer state - accordingly. */ - _c64_fs_filebuftrack = ftrack = _c64_fs_filebuf[0]; - _c64_fs_filebufsect = fsect = _c64_fs_filebuf[1]; - fptr = 2; - c64_dio_read_block(_c64_fs_filebuftrack, - _c64_fs_filebufsect, _c64_fs_filebuf); - } - - ++buf; - } - return i; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Move the file descriptior pointer forward in the file. - * - * - * \param f A pointer to a file descriptor structure that must have - * been opened with c64_fs_open(). - * - * \param len The number of bytes the pointer should be moved forward. - * - * \return The number of bytes that the pointer actually was moved, or - * 0 if an end of file was encountered. - */ -/*-----------------------------------------------------------------------------------*/ -int -c64_fs_read_next(register struct c64_fs_file *f, int len) -{ - int i; - - /* Check if current block is already in buffer, and if not read it - from disk. */ - if(_c64_fs_filebuftrack != f->track || - _c64_fs_filebufsect != f->sect) { - _c64_fs_filebuftrack = f->track; - _c64_fs_filebufsect = f->sect; - c64_dio_read_block(_c64_fs_filebuftrack, - _c64_fs_filebufsect, _c64_fs_filebuf); - } - - if(_c64_fs_filebuf[0] == 0 && - f->ptr == _c64_fs_filebuf[1]) { - return 0; /* EOF */ - } - - for(i = 0; i < len; ++i) { - - ++f->ptr; - if(_c64_fs_filebuf[0] == 0) { - if(f->ptr == _c64_fs_filebuf[1]) { - /* End of file reached, we return the amount of bytes read so - far. */ - return i + 1; - } - } else if(f->ptr == 0) { - /* Read new block into buffer and set buffer state - accordingly. */ - _c64_fs_filebuftrack = f->track = _c64_fs_filebuf[0]; - _c64_fs_filebufsect = f->sect = _c64_fs_filebuf[1]; - f->ptr = 2; - c64_dio_read_block(_c64_fs_filebuftrack, - _c64_fs_filebufsect, _c64_fs_filebuf); - } - } - return i; -} -/*-----------------------------------------------------------------------------------*/ -/** @} */ diff --git a/backyard/platform/c64/loader/c64-fs-raw.h b/backyard/platform/c64/loader/c64-fs-raw.h deleted file mode 100644 index 2330936de..000000000 --- a/backyard/platform/c64/loader/c64-fs-raw.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: c64-fs-raw.h,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - * - */ -#ifndef __C64_FS_RAW_H__ -#define __C64_FS_RAW_H__ - -#include "c64-fs.h" - -int __fastcall__ c64_fs_read_raw(struct c64_fs_file *f, - char *buf, int len); - -int c64_fs_read_next(struct c64_fs_file *f, int len); - - -#endif /* __C64_FS_H__ */ diff --git a/backyard/platform/c64/loader/c64-fs-write.c b/backyard/platform/c64/loader/c64-fs-write.c deleted file mode 100644 index 4a9f129b0..000000000 --- a/backyard/platform/c64/loader/c64-fs-write.c +++ /dev/null @@ -1,121 +0,0 @@ -/** - * \addtogroup c64fs - * @{ - */ - -/** - * \file - * Implementation of C64 file writes. - * \author Adam Dunkels - * - * The functions in this file are not included in the core Contiki - * code, but must be explicitly linked by an application that that - * wishes to be able to write to files. - */ - - -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: c64-fs-write.c,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - * - */ - -#include "c64-dio.h" -#include "c64-fs.h" -#include - -/* An *UGLY* implementation of c64_fs_write that only can be used to - overwrite a single block file. */ - -extern unsigned char _c64_fs_filebuf[256]; -extern unsigned char _c64_fs_filebuftrack, - _c64_fs_filebufsect; - - -/*-----------------------------------------------------------------------------------*/ -/** - * Write data to an open file. - * - * \note This function currently does not support writing to other than a single block file (cannot be more than 254 bytes long). - * - * \param f A pointer to a file descriptor previously opened with c64_fs_open(). - * - * \param buf A pointer to a buffer with data that should be written - * to the file. - * - * \param len The length of the data that should be written. - * - * \return The number of bytes actually written. - * - */ -/*-----------------------------------------------------------------------------------*/ -int __fastcall__ -c64_fs_write(register struct c64_fs_file *f, char *buf, int len) -{ - int i; - - if(len <= 0) { - return 0; - } - - /* Check if current block is already in buffer, and if not read it - from disk. */ - if(_c64_fs_filebuftrack != f->track || - _c64_fs_filebufsect != f->sect) { - _c64_fs_filebuftrack = f->track; - _c64_fs_filebufsect = f->sect; - c64_dio_read_block(_c64_fs_filebuftrack, - _c64_fs_filebufsect, - _c64_fs_filebuf); - } - - i = 256 - f->ptr; - if(len < i) { - i = len; - } - - memcpy(&_c64_fs_filebuf[f->ptr], buf, i); - - f->ptr += i; - if(_c64_fs_filebuf[0] == 0 && - f->ptr > _c64_fs_filebuf[1]) { - _c64_fs_filebuf[1] = f->ptr; - } - - c64_dio_write_block(_c64_fs_filebuftrack, - _c64_fs_filebufsect, - _c64_fs_filebuf); - - return i; -} -/*-----------------------------------------------------------------------------------*/ -/** @} */ diff --git a/backyard/platform/c64/loader/c64-fs.c b/backyard/platform/c64/loader/c64-fs.c deleted file mode 100644 index d1bccc716..000000000 --- a/backyard/platform/c64/loader/c64-fs.c +++ /dev/null @@ -1,411 +0,0 @@ -/** - * \defgroup c64fs C64 file system and disk functions. - * @{ - * - * The C64 file system functions are divided into two categories: - * those that deal with C64 files and the C64 disk directory, and - * those that allow direct block access to the disk. The former - * functions can be used for accessing regular files, whereas the - * latter functions are used e.g. to download D64 files onto 1541 - * disks. - * - * \note The C64 filesystem functions currently only work with the - * 1541/1541-II/1571 and compatible drives, and not with the IDE64 - * hard disks or the 1581/FD2000 3.5" drives. - * - * - */ - -/** - * \file - * C64 file system operations interface for Contiki. - * \author Adam Dunkels - * - */ - -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: c64-fs.c,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - * - */ - -#include "c64-dio.h" -#include "c64-dio-asm.h" -#include "c64-fs.h" - -#include -#include - -struct directory_entry { - unsigned char type; - unsigned char track, sect; - unsigned char name[16]; - unsigned char reltrack, relsect, relreclen; - unsigned char unused1, unused2, unused3, unused4; - unsigned char tmptrack, tmpsect; - unsigned char blockslo, blockshi; -}; - -unsigned char _c64_fs_dirbuf[256]; -unsigned char _c64_fs_dirbuftrack = 0, _c64_fs_dirbufsect = 0; - -unsigned char _c64_fs_filebuf[256]; -unsigned char _c64_fs_filebuftrack = 0, _c64_fs_filebufsect = 0; - -static struct c64_fs_dirent lastdirent; - -static struct c64_fs_dir opendir; -static struct c64_fs_dirent opendirent; - -/*-----------------------------------------------------------------------------------*/ -/** - * Open a file. - * - * The file description must be allocated by the caller and a pointer - * to it is passed to this function. - * - * \param name A pointer to the name of the file to be opened. - * \param f A pointer to the file descriptor struct. - * - * \retval 0 If the file was successfully opened. - * \retval -1 If the file does not exist. - */ -/*-----------------------------------------------------------------------------------*/ -int -c64_fs_open(const char *name, register struct c64_fs_file *f) -{ - /* First check if we already have the file cached. If so, we don't - need to do an expensive directory lookup. */ - if(strncmp(lastdirent.name, name, 16) == 0) { - f->track = lastdirent.track; - f->sect = lastdirent.sect; - f->ptr = 2; - return 0; - } - - /* Not in cache, so we walk through directory instead. */ - c64_fs_opendir(&opendir); - - do { - c64_fs_readdir_dirent(&opendir, &opendirent); - if(strncmp(opendirent.name, name, 16) == 0) { - f->track = opendirent.track; - f->sect = opendirent.sect; - f->ptr = 2; - return 0; - } - } while(c64_fs_readdir_next(&opendir) == 0); - - /* The file was not found in the directory. We flush the directory - buffer cache now in order to prevent a nasty problem from - happening: If the first directory block of an empty disk was - cached, *all* subsequent file opens would return "file not - found". */ - _c64_fs_dirbuftrack = 0; /* There are no disk blocks on track 0. */ - return -1; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Read data from an open file. - * - * This function reads data from an open file into a buffer than must - * be allocated by the caller. - * - * \param f A pointer to a file descriptor structure that must have - * been opened with c64_fs_open(). - * - * \param buf A pointer to the buffer in which the data should be placed. - * - * \param len The maxiumum amount of bytes to read. - * - * \return The number of bytes that actually was read, or 0 if an end - * of file was encountered. - */ -/*-----------------------------------------------------------------------------------*/ -#if !NOASM -#pragma optimize(push, off) -#endif /* !NOASM */ -int __fastcall__ -c64_fs_read(register struct c64_fs_file *f, char *buf, int len) -{ - static int i; - - /* Check if current block is already in buffer, and if not read it - from disk. */ - -#if NOASM - if(f->track != _c64_fs_filebuftrack || - _c64_fs_filebufsect != f->sect) { - _c64_fs_filebuftrack = f->track; - _c64_fs_filebufsect = f->sect; - c64_dio_read_block(_c64_fs_filebuftrack, _c64_fs_filebufsect, - _c64_fs_filebuf); - } -#else /* NOASM */ - asm("ldy #%b", offsetof(struct c64_fs_file, track)); - asm("lda (regbank+%b),y", 4); - asm("cmp %v", _c64_fs_filebuftrack); - asm("bne doblock"); - - asm("ldy #%b", offsetof(struct c64_fs_file, sect)); - asm("lda (regbank+%b),y", 4); - asm("cmp %v", _c64_fs_filebufsect); - asm("bne doblock"); - - asm("jmp noblock"); - - asm("doblock:"); - - asm("ldy #%b", offsetof(struct c64_fs_file, track)); - asm("lda (regbank+%b),y", 4); - asm("sta %v", _c64_fs_filebuftrack); - asm("sta %v", c64_dio_asm_track); - - asm("ldy #%b", offsetof(struct c64_fs_file, sect)); - asm("lda (regbank+%b),y", 4); - asm("sta %v", _c64_fs_filebufsect); - asm("sta %v", c64_dio_asm_sector); - - asm("lda #<(%v)", _c64_fs_filebuf); - asm("sta %v", c64_dio_asm_ptr); - asm("lda #>(%v)", _c64_fs_filebuf); - asm("sta %v+1", c64_dio_asm_ptr); - - asm("jsr %v", c64_dio_asm_read_block); - - asm("noblock:"); - -#endif /* NOASM */ - - if(_c64_fs_filebuf[0] == 0 && - f->ptr == _c64_fs_filebuf[1]) { - return 0; /* EOF */ - } - - for(i = 0; i < len; ++i) { -#if NOASM - *buf = _c64_fs_filebuf[f->ptr]; - ++f->ptr; -#else /* NOASM */ - asm("ldy #%o+1", buf); - asm("jsr ldaxysp"); - asm("sta ptr2"); - asm("stx ptr2+1"); - - asm("ldy #%b", offsetof(struct c64_fs_file, ptr)); - asm("lda (regbank+%b),y", 4); - asm("tax"); - - asm("ldy #0"); - asm("lda %v,x", _c64_fs_filebuf); - asm("sta (ptr2),y"); - - asm("inx"); - asm("txa"); - asm("ldy #%b", offsetof(struct c64_fs_file, ptr)); - asm("sta (regbank+%b),y", 4); -#endif /* NOASM */ - - - if(_c64_fs_filebuf[0] == 0) { - if(f->ptr == _c64_fs_filebuf[1]) { - /* End of file reached, we return the amount of bytes read so - far. */ - return i + 1; - } - } else if(f->ptr == 0) { - - /* Read new block into buffer and set buffer state - accordingly. */ - _c64_fs_filebuftrack = f->track = _c64_fs_filebuf[0]; - _c64_fs_filebufsect = f->sect = _c64_fs_filebuf[1]; - f->ptr = 2; - c64_dio_read_block(_c64_fs_filebuftrack, - _c64_fs_filebufsect, _c64_fs_filebuf); - } - - ++buf; - } - return i; -} -#if !NOASM -#pragma optimize(pop) -#endif /* !NOASM */ -/*-----------------------------------------------------------------------------------*/ -/** - * Close an open file. - * - * \param f A pointer to a file descriptor struct that previously has - * been opened with c64_fs_open(). - */ -/*-----------------------------------------------------------------------------------*/ -void -c64_fs_close(struct c64_fs_file *f) -{ - -} -/*-----------------------------------------------------------------------------------*/ -/** - * \internal - * Read a directory buffer into the _c64_fs_dirbuf buffer. - * - * This function is shared between this and the c64-fs-raw module. - * - * \param track The track of the directory block. - * \param sect The sector of the directory block. - */ -/*-----------------------------------------------------------------------------------*/ -void -_c64_fs_readdirbuf(unsigned char track, unsigned char sect) -{ - if(_c64_fs_dirbuftrack == track && - _c64_fs_dirbufsect == sect) { - /* Buffer already contains requested block, return. */ - return; - } - c64_dio_read_block(track, sect, _c64_fs_dirbuf); - _c64_fs_dirbuftrack = track; - _c64_fs_dirbufsect = sect; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Open the disk directory for reading. - * - * The caller must supply a pointer to a directory descriptor. - * - * \param d A pointer to a directory description that must be - * allocated by the caller. - */ -/*-----------------------------------------------------------------------------------*/ -unsigned char -c64_fs_opendir(register struct c64_fs_dir *d) -{ - d->track = 18; - d->sect = 1; - d->ptr = 2; - - return 0; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Read the current directory entry. - * - * This function reads the directory entry to which the directory - * descriptor currently points into a struct c64_fs_dirent supplied by - * the caller. - * - * The function c64_fs_readdir_next() is used to move the directory - * entry pointer forward in the directory. - * - * \param d A pointer to a directory descriptor previously opened with c64_fs_opendir(). - * - * \param f A pointer to a directory entry that must have been - * previously allocated by the caller. - */ -/*-----------------------------------------------------------------------------------*/ -void -c64_fs_readdir_dirent(register struct c64_fs_dir *d, - register struct c64_fs_dirent *f) -{ - struct directory_entry *de; - int i; - register char *nameptr; - - _c64_fs_readdirbuf(d->track, d->sect); - de = (struct directory_entry *)&_c64_fs_dirbuf[d->ptr]; - nameptr = de->name; - for(i = 0; i < 16; ++i) { - if(*nameptr == 0xa0) { - *nameptr = 0; - break; - } - ++nameptr; - } - strncpy(f->name, de->name, 16); - f->track = de->track; - f->sect = de->sect; - f->size = de->blockslo + (de->blockshi >> 8); - memcpy(&lastdirent, f, sizeof(struct c64_fs_dirent)); -} -/*-----------------------------------------------------------------------------------*/ -/** - * Move the directory pointer forward. - * - * This function moves the directory entry pointer in the directory - * descriptor forward so that it points to the next file. - * - * \param d A pointer to a directory descriptor previously opened with - * c64_fs_opendir(). - * - * \retval 1 If there are no more directory entried in the directory. - * \retval 0 There were more directory entries and the pointer has - * been moved to point to the next one. - */ -/*-----------------------------------------------------------------------------------*/ -unsigned char -c64_fs_readdir_next(struct c64_fs_dir *d) -{ - struct directory_entry *de; - again: - _c64_fs_readdirbuf(d->track, d->sect); - if(d->ptr == 226) { - if(_c64_fs_dirbuf[0] == 0) { - return 1; - } - d->track = _c64_fs_dirbuf[0]; - d->sect = _c64_fs_dirbuf[1]; - d->ptr = 2; - } else { - d->ptr += 32; - } - - de = (struct directory_entry *)&_c64_fs_dirbuf[d->ptr]; - if(de->type == 0) { - goto again; - } - return 0; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Close a directory descriptor previously opened by c64_fs_opendir(). - * - * \param d A poitner to a directory descriptor previously opened with - * c64_fs_opendir(). - */ -/*-----------------------------------------------------------------------------------*/ -void -c64_fs_closedir(struct c64_fs_dir *d) -{ - -} -/*-----------------------------------------------------------------------------------*/ -/** @} */ diff --git a/backyard/platform/c64/loader/c64-fs.h b/backyard/platform/c64/loader/c64-fs.h deleted file mode 100644 index 214c3f7b9..000000000 --- a/backyard/platform/c64/loader/c64-fs.h +++ /dev/null @@ -1,97 +0,0 @@ -/** - * \addtogroup c64fs - * @{ - */ - -/** - * \file - * Header file for the C64 filesystem functions. - * \author Adam Dunkels - * - */ - -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: c64-fs.h,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - * - */ -#ifndef __C64_FS_H__ -#define __C64_FS_H__ - -#include "c64-dio.h" - -/** - * An opaque structure with no user visible elements that represents - * an open file. - */ -struct c64_fs_file { - unsigned char track, sect, ptr; -}; - -int c64_fs_open(const char *name, struct c64_fs_file *f); -void c64_fs_close(struct c64_fs_file *f); -int __fastcall__ c64_fs_read(struct c64_fs_file *f, - char *buf, int len); - -int __fastcall__ c64_fs_write(struct c64_fs_file *f, - char *buf, int len); - -/** - * An opaque structure with no user visible elements that represents a - * directory descriptor. - */ -struct c64_fs_dir { - unsigned char track, sect, ptr; -}; - -/** - * A C64 directory entry. - */ -struct c64_fs_dirent { - char name[17]; /**< The name of the directory entry. */ - unsigned short size; /**< The size of the directory entry in 256 byte blocks. */ - unsigned char track, - sect; -}; - - -unsigned char c64_fs_opendir(struct c64_fs_dir *d); - -void c64_fs_readdir_dirent(struct c64_fs_dir *d, - struct c64_fs_dirent *f); -unsigned char c64_fs_readdir_next(struct c64_fs_dir *d); - -void c64_fs_closedir(struct c64_fs_dir *d); - -/** @} */ - -#endif /* __C64_FS_H__ */ diff --git a/backyard/platform/c64/loader/cfs-1541-asm.S b/backyard/platform/c64/loader/cfs-1541-asm.S deleted file mode 100644 index 3d48e04d1..000000000 --- a/backyard/platform/c64/loader/cfs-1541-asm.S +++ /dev/null @@ -1,571 +0,0 @@ - ;; - ;; - ;; 1541 CFS implementation - ;; - ;; Architecture: - ;; - ;; Functionality split between C64 and 1541: 1541 performs - ;; directory lookup and finding files. 1541 communicates track/sector - ;; address of file, C64 requests data to be read from track/sector. - ;; - ;; Example: reading directory - ;; - ;; C64: DIR - ;; 1541: directory entries in CFS format - ;; - ;; Example: opening file - ;; - ;; C64: FILE filename - ;; 1541: track/sector - ;; - ;; Example: reading file - ;; - ;; C64: track/sector, length - ;; 1541: length, data, track/sector - - - .export _c64_dio_asm_init - .export _c64_dio_asm_read_block - .export _c64_dio_asm_write_block - - .export _c64_dio_asm_track, _c64_dio_asm_sector - - .export _c64_dio_asm_ptr - - .importzp ptr1, ptr2 - - ;; job code $80 read, $90 write - - -ciout = $ffa8 -listen = $ffb1 -second = $ff93 -unlsn = $ffae - -nbytes = 34 -esc = $42 - -blockread = 1 -blockwrite = 2 - -errok = 0 -errerr = 1 - -.data -_c64_dio_asm_track: .byte 0 -_c64_dio_asm_sector: .byte 0 -_c64_dio_asm_ptr: .byte 0,0 - -.code -;--------------------------------------- -_cfs_1541_read: - ;; First send READ command to drive - - lda #READ_CMD - jsr send - - ;; If drive do not respond we must download drive code - cmp #ERR_NOT_RESPONDING - bne notload - - jsr download - lda #read - jsr send -notload: - ;; Send file descriptor and number of bytes to read - lda _cfs_1541_fd - jsr send - lda _cfs_1541_bytes - jsr send - - lda _cfs_1541_ptr - sta ptr1 - lda _cfs_1541_ptr + 1 - sta ptr1 + 1 - - ;; Read bytes from drive - - ldy #0 -: - jsr recv - sta (ptr1),y - iny - cpy _cfs_1541_bytes - bne - - - ;; Read the number of bytes that were actually read from the file - jsr recv - - ;; Return the number of bytes read - - rts -;--------------------------------------- -_c64_dio_asm_read_block: - - lda #BLOCKREAD_CMD - jsr send - - lda _c64_dio_asm_track - jsr send - lda _c64_dio_asm_sector - jsr send - - - jsr recv - cmp #errok - bne readerr - - lda _c64_dio_asm_ptr - sta ptr1 - lda _c64_dio_asm_ptr+1 - sta ptr1+1 - ldy #0 -readl: - jsr recv - sta (ptr1),y - iny - bne readl - clc - lda #0 - tax - rts -readerr: - ; sta $07c0 - jsr recv - ; sta $07c1 - ldx #0 - rts -;--------------------------------------- -_c64_dio_asm_write_block: - - lda #blockwrite - jsr send - - lda _c64_dio_asm_track - jsr send - lda _c64_dio_asm_sector - jsr send - - - lda _c64_dio_asm_ptr - sta ptr1 - lda _c64_dio_asm_ptr+1 - sta ptr1+1 - ldy #0 -writel: - lda (ptr1),y - jsr send - iny - bne writel - - jsr recv - cmp #errok - bne writeerr - lda #0 - tax - rts - -writeerr: - ; sta $07c0 - jsr recv - ; sta $07c1 - ldx #0 - rts -;--------------------------------------- -_c64_dio_asm_init: - sta devnr - lda #$00 - sta drvmem - lda #$05 - sta drvmem+1 - - lda #drive - sta ptr1+1 - - ; lda devnr - ; ldx #icmd - ; jsr drvcmd - ; jsr unlsn - -mwl: - lda devnr - ldx #mwcmd - jsr drvcmd - - ldy #0 - lda (ptr1),y - jsr ciout - iny - cpy #nbytes - bne *-8 - - jsr unlsn - - lda drvmem - clc - adc #nbytes - sta drvmem - lda drvmem+1 - adc #0 - sta drvmem+1 - - lda ptr1 - clc - adc #nbytes - sta ptr1 - tax - lda ptr1+1 - adc #0 - sta ptr1+1 - cpx #driveend - bcc mwl - - lda devnr - ldx #mecmd - jsr drvcmd - jsr unlsn - - rts -;--------------------------------------- -drvcmd: - stx ptr2 - sty ptr2+1 - jsr listen - lda #$6f - jsr second - - ldy #0 - lda (ptr2),y - sta drvcmdcmp+1 - inc ptr2 - bne *+4 - inc ptr2+1 - - ldy #0 - lda (ptr2),y - jsr ciout - iny -drvcmdcmp: cpy #0 - bne *-8 - rts -;--------------------------------------- -devnr: .byte 8 -mwcmd: .byte 6 - .byte $4d, $2d, $57 -drvmem: .word $0500 - .byte nbytes - .byte 0 -mecmd: .byte 2 - .byte $55, $33 - .byte 0 -;--------------------------------------- -send: - - sta ptr2 - ldx #7 -sendl: - lsr ptr2 - - - lda $dd00 - and #$df - ora #$10 - bcc *+4 - eor #$30 - sta $dd00 - - lda #$c0 - bit $dd00 - bne *-3 - - lda $dd00 - and #$cf - sta $dd00 - - lda $dd00 - and #$c0 - eor #$c0 - bne *-7 - - dex - bpl sendl - - ldx $d020 - lda #1 - sta $d020 - stx $d020 - - rts -;--------------------------------------- -recv: - ldx $d020 - lda #0 - sta $d020 - stx $d020 - - ldx #7 -recvl: - lda $dd00 - and #$c0 - eor #$c0 - beq *-7 - asl a - - lda $dd00 - and #$df - ora #$10 - bcs *+4 - eor #$30 - sta $dd00 - ror ptr2 - - lda #$c0 - bit $dd00 - beq *-3 - - lda $dd00 - and #$cf - sta $dd00 - - dex - bpl recvl - lda ptr2 - rts -;--------------------------------------- - -;--------------------------------------- -;the code residing in the drive: -;--------------------------------------- -dtmp = $46 -dtmp2 = $97 -dbuf = $0300 -dbufcmd = $00 -dbuftrack = $06 -dbufsect = $07 - -retries = 10 -bretries = 2 -;--------------------------------------- -drive : - .org $0500 - - - - cld - tsx - stx dstack - sei - jsr ledoff - -drivel: - jsr dload - jsr ledoff - cli - jmp drivel -;--------------------------------------- -ledon: - lda $1c00 - ora #$08 - sta $1c00 - rts -ledoff: - lda $1c00 - and #$f7 - sta $1c00 - rts -;--------------------------------------- -drecv: - ldx #7 -drecvl: - lda $1800 - bmi atn - and #5 - beq *-7 - lsr a - lda #2 - bcc *+4 - lda #8 - sta $1800 - ror dtmp - lda $1800 - bmi atn - and #5 - eor #5 - beq *-9 - lda #0 - sta $1800 - dex - bpl drecvl - lda dtmp - rts -;--------------------------------------- -atn: - ldx dstack - txs - cli - rts -;--------------------------------------- -dsend: - sta dtmp - ldx #7 -dsendl: - lsr dtmp - lda #2 - bcs *+4 - lda #8 - sta $1800 - - lda $1800 - bmi atn - and #5 - eor #5 - bne *-9 - - sta $1800 - - lda #5 - bit $1800 - bne *-3 - dex - bpl dsendl - rts -;--------------------------------------- -dload: - ldy #0 - - jsr drecv - sta dcmd - - jsr ledon - - jsr drecv - sta dbuftrack - - jsr drecv - sta dbufsect - - lda dcmd - cmp #blockwrite - bne dblockread -dblockwrite: - ldy #0 -drecvpl: - jsr drecv - sta dbuf,y - iny - bne drecvpl - - jmp dputsect - -dblockread: - jsr dgetsect - -dsendpage: - ldy #0 -dsendpl: - lda dbuf,y - jsr dsend - iny - bne dsendpl - rts -;--------------------------------------- -dgetsect: - ; stx dbuftrack - ; sty dbufsect - ldx #retries -dgetsectl: - lda #$80 - sta dbufcmd - - cli -: - lda dbufcmd - bmi :- - sei - cmp #1 - beq dgsnoerr - - cpx #0 - beq dgsserr - dex - cpx #bretries - bcs dgetsectl - pha - lda #$c0 - sta dbufcmd - cli -: - lda dbufcmd - bmi :- - pla - cpx #0 - bne dgetsectl - -dgsserr: - pha - lda #errerr - jsr dsend - pla - jsr dsend - rts -dgsnoerr: - lda #errok - jsr dsend - rts -;--------------------------------------- -dputsect: - ; stx dbuftrack - ; sty dbufsect - ldx #retries -dputsectl: - lda #$90 - sta dbufcmd - - cli -: - lda dbufcmd - bmi :- - sei - cmp #1 - beq dpsnoerr - - cpx #0 - beq dpsserr - dex - cpx #bretries - bcs dputsectl - pha - lda #$c0 - sta dbufcmd - cli -: - lda dbufcmd - bmi :- - pla - cpx #0 - bne dputsectl - -dpsserr: - pha - lda #errerr - jsr dsend - pla - jsr dsend - rts -dpsnoerr: - lda #errok - jsr dsend - rts -;--------------------------------------- -led: .byte 0,0 -dstack: .byte 0 -dcmd: .byte 0 -.RELOC -driveend: - diff --git a/backyard/platform/c64/loader/cfs-1541.c b/backyard/platform/c64/loader/cfs-1541.c deleted file mode 100644 index 1746b8d27..000000000 --- a/backyard/platform/c64/loader/cfs-1541.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: cfs-1541.c,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - */ -#include "contiki.h" - -#include "cfs.h" -#include "cfs-service.h" - - -static int s_open(char *n, int f); -static void s_close(int f); -static int s_read(int f, char *b, int l); -static int s_write(int f, char *b, int l); -static int s_opendir(struct cfs_dir *p, const char *n); -static int s_readdir(struct cfs_dir *p, struct cfs_dirent *e); -static int s_closedir(struct cfs_dir *p); - -static const struct cfs_service_interface interface = - { - CFS_SERVICE_VERSION, - s_open, - s_close, - s_read, - s_write, - s_opendir, - s_readdir, - s_closedir - }; - -EK_EVENTHANDLER(eventhandler, ev, data); -EK_POLLHANDLER(pollhandler); -EK_PROCESS(proc, CFS_SERVICE_NAME, EK_PRIO_NORMAL, - eventhandler, pollhandler, (void *)&state); - -/*---------------------------------------------------------------------------*/ - diff --git a/backyard/platform/c64/loader/cfs-cbm-posix.c b/backyard/platform/c64/loader/cfs-cbm-posix.c deleted file mode 100644 index d0003a6cf..000000000 --- a/backyard/platform/c64/loader/cfs-cbm-posix.c +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: cfs-cbm-posix.c,v 1.1 2007/05/23 23:11:28 oliverschmidt Exp $ - */ -#include "contiki.h" - -#include "log.h" -#include "cfs.h" -#include "cfs-service.h" - -#include -#include -#include -#include - - - -static int s_open(const char *n, int f); -static void s_close(int f); -static int s_read(int f, char *b, unsigned int l); -static int s_write(int f, char *b, unsigned int l); -static int s_opendir(struct cfs_dir *p, const char *n); -static int s_readdir(struct cfs_dir *p, struct cfs_dirent *e); -static int s_closedir(struct cfs_dir *p); - -static const struct cfs_service_interface interface = - { - CFS_SERVICE_VERSION, - s_open, - s_close, - s_read, - s_write, - s_opendir, - s_readdir, - s_closedir - }; - -EK_EVENTHANDLER(eventhandler, ev, data); -EK_PROCESS(proc, CFS_SERVICE_NAME ": KERNAL", EK_PRIO_NORMAL, - eventhandler, NULL, (void *)&interface); - -/*---------------------------------------------------------------------------*/ -LOADER_INIT_FUNC(cfs_cbm_init, arg) -{ - arg_free(arg); - ek_service_start(CFS_SERVICE_NAME, &proc); -} -/*---------------------------------------------------------------------------*/ -EK_EVENTHANDLER(eventhandler, ev, data) -{ - switch(ev) { - case EK_EVENT_INIT: - case EK_EVENT_REPLACE: - log_message("Starting KERNAL CFS", ""); - break; - case EK_EVENT_REQUEST_REPLACE: - ek_replace((struct ek_proc *)data, &interface); - break; - case EK_EVENT_REQUEST_EXIT: - ek_exit(); - break; - } -} -/*---------------------------------------------------------------------------*/ -static int -s_open(const char *n, int f) -{ - if(f == CFS_READ) { - return open(n, O_RDONLY); - } else { - return open(n, O_CREAT|O_RDWR); - } -} -/*---------------------------------------------------------------------------*/ -static void -s_close(int f) -{ - close(f); -} -/*---------------------------------------------------------------------------*/ -static int -s_read(int f, char *b, unsigned int l) -{ - return read(f, b, l); -} -/*---------------------------------------------------------------------------*/ -static int -s_write(int f, char *b, unsigned int l) -{ - return write(f, b, l); -} -/*---------------------------------------------------------------------------*/ -static int -s_opendir(struct cfs_dir *p, const char *n) -{ - return cbm_opendir(4, 8); -} -/*---------------------------------------------------------------------------*/ -static int -s_readdir(struct cfs_dir *p, struct cfs_dirent *e) -{ - struct cbm_dirent ce; - int ret; - ret = cbm_readdir(4, &ce); - strncpy(e->name, ce.name, sizeof(ce.name)); - e->size = ce.size; - return ret; -} -/*---------------------------------------------------------------------------*/ -static int -s_closedir(struct cfs_dir *p) -{ - cbm_closedir(4); - return 1; -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/loader/cfs-cbm.c b/backyard/platform/c64/loader/cfs-cbm.c deleted file mode 100644 index 8b43da4e2..000000000 --- a/backyard/platform/c64/loader/cfs-cbm.c +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: cfs-cbm.c,v 1.1 2007/05/23 23:11:29 oliverschmidt Exp $ - */ -#include "contiki.h" - -#include "cfs/cfs.h" -#include "cfs/cfs-service.h" - -#include -#include - -static int s_open(const char *n, int f); -static void s_close(int f); -static int s_read(int f, char *b, unsigned int l); -static int s_write(int f, char *b, unsigned int l); -static int s_opendir(struct cfs_dir *p, const char *n); -static int s_readdir(struct cfs_dir *p, struct cfs_dirent *e); -static int s_closedir(struct cfs_dir *p); - -SERVICE(cfs_cbm_service, cfs_service, -{ s_open, s_close, s_read, s_write, s_opendir, s_readdir, s_closedir }); - - -PROCESS(cfs_cbm_process, "CFS KERNAL service"); -PROCESS_THREAD(cfs_cbm_process, ev, data) { - PROCESS_BEGIN(); - - log_message("Starting KERNAL CFS", ""); - SERVICE_REGISTER(cfs_cbm_service); - - while(ev != PROCESS_EVENT_SERVICE_REMOVED && - ev != PROCESS_EVENT_EXIT) { - PROCESS_WAIT_EVENT(); - } - - SERVICE_REMOVE(cfs_cbm_service); - - PROCESS_END(); -} - -/*---------------------------------------------------------------------------*/ -static int -s_open(const char *n, int f) -{ - if(cbm_open(2, _curunit, f, n) == 0) { - return 2; - } - return -1; -} -/*---------------------------------------------------------------------------*/ -static void -s_close(int f) -{ - cbm_close(f); -} -/*---------------------------------------------------------------------------*/ -static int -s_read(int f, char *b, unsigned int l) -{ - return cbm_read(f, b, l); -} -/*---------------------------------------------------------------------------*/ -static int -s_write(int f, char *b, unsigned int l) -{ - return cbm_write(f, b, l); -} -/*---------------------------------------------------------------------------*/ -static int -s_opendir(struct cfs_dir *p, const char *n) -{ - return cbm_opendir(4, _curunit); -} -/*---------------------------------------------------------------------------*/ -static int -s_readdir(struct cfs_dir *p, struct cfs_dirent *e) -{ - struct cbm_dirent ce; - int ret; - ret = cbm_readdir(4, &ce); - strncpy(e->name, ce.name, sizeof(ce.name)); - e->size = ce.size; - return ret; -} -/*---------------------------------------------------------------------------*/ -static int -s_closedir(struct cfs_dir *p) -{ - cbm_closedir(4); - return 1; -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/loader/cfs-cbm.h b/backyard/platform/c64/loader/cfs-cbm.h deleted file mode 100644 index 670e83988..000000000 --- a/backyard/platform/c64/loader/cfs-cbm.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: cfs-cbm.h,v 1.1 2007/05/23 23:11:29 oliverschmidt Exp $ - */ -#ifndef __CFS_CBM_H__ -#define __CFS_CBM_H__ - - -#endif /* __CFS_CBM_H__ */ diff --git a/backyard/platform/c64/loader/cfs-init.c b/backyard/platform/c64/loader/cfs-init.c deleted file mode 100644 index d124e2133..000000000 --- a/backyard/platform/c64/loader/cfs-init.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: cfs-init.c,v 1.1 2007/05/23 23:11:29 oliverschmidt Exp $ - */ -#include "contiki.h" - -#include "cfs/cfs.h" -#include "cfs/cfs-service.h" - -#include -#include - -static int s_open(const char *n, int f); -static void s_close(int f); -static int s_read(int f, char *b, unsigned int l); -static int s_write(int f, char *b, unsigned int l) {return -1;} -static int s_opendir(struct cfs_dir *p, const char *n) {return -1;} -static int s_readdir(struct cfs_dir *p, struct cfs_dirent *e) {return -1;} -static int s_closedir(struct cfs_dir *p) {return -1;} - -SERVICE(cfs_posix_service, cfs_service, -{ s_open, s_close, s_read, s_write, s_opendir, s_readdir, s_closedir }); - -PROCESS(cfs_posix_process, "CFS POSIX service"); -PROCESS_THREAD(cfs_posix_process, ev, data) { - PROCESS_BEGIN(); - - SERVICE_REGISTER(cfs_posix_service); - - while(ev != PROCESS_EVENT_SERVICE_REMOVED && - ev != PROCESS_EVENT_EXIT) { - PROCESS_WAIT_EVENT(); - } - - SERVICE_REMOVE(cfs_posix_service); - - PROCESS_END(); -} - -/*---------------------------------------------------------------------------*/ -#include -static int -s_open(const char *n, int f) -{ - if(cbm_open(2, _curunit, CBM_READ, n) == 0) { - /* printf("Opening with _curunit %d\n", _curunit);*/ - return 2; - } - return -1; -} -/*---------------------------------------------------------------------------*/ -static void -s_close(int f) -{ - cbm_close(f); -} -/*---------------------------------------------------------------------------*/ -static int -s_read(int f, char *b, unsigned int l) -{ - return cbm_read(f, b, l); -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/loader/cfs-init.h b/backyard/platform/c64/loader/cfs-init.h deleted file mode 100644 index b5dcb6eab..000000000 --- a/backyard/platform/c64/loader/cfs-init.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: cfs-init.h,v 1.1 2007/05/23 23:11:29 oliverschmidt Exp $ - */ -#ifndef __CFS_INIT_H__ -#define __CFS_INIT_H__ - -#include "contiki.h" - -PROCESS_NAME(cfs_init_process); - -#endif /* __CFS_INIT_H__ */ diff --git a/backyard/platform/c64/loader/loader-arch.c b/backyard/platform/c64/loader/loader-arch.c deleted file mode 100644 index f1d562242..000000000 --- a/backyard/platform/c64/loader/loader-arch.c +++ /dev/null @@ -1,140 +0,0 @@ -/** - * \file - * File loader implementation. - * \author Adam Dunkels - * - * This file implements dynamically loadable files for Contiki using - * the cc65 module loading system. The actual file operations are - * implemented in other files. - */ - -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop OS - * - * $Id: loader-arch.c,v 1.1 2007/05/23 23:11:29 oliverschmidt Exp $ - * - */ - -#include -#include - -#include "cfs/cfs.h" - -#include "sys/loader.h" - -#include "loader-arch.h" - -static int __fastcall__ -do_read(int f, char *buf, unsigned int len) -{ - return cfs_read(f, buf, len); -} - -struct mod_ctrl ctrl = { - (void *)do_read /* Read from disk */ -}; - - -struct loader_arch_hdr { - char arch[8]; - char version[8]; - - char initfunc[1]; -}; - -/*-----------------------------------------------------------------------------------*/ -/** - * Load a program from disk and execute it. - * - * Code originally written by Ullrich von Bassewitz. - */ -/*-----------------------------------------------------------------------------------*/ -unsigned char -load(const char *name) -{ - unsigned char res; - - /* Now open the file */ - ctrl.callerdata = cfs_open(name, 0); - if(ctrl.callerdata < 0) { - /* Could not open the file, display an error and return */ - /* ### */ - return LOADER_ERR_OPEN; - } - - /* Load the module */ - res = mod_load(&ctrl); - - /* Close the input file */ - cfs_close(ctrl.callerdata); - - /* Check the return code */ - if(res != MLOAD_OK) { - /* Wrong module, out of memory or whatever. Print an error - * message and return. - */ - /* ### */ - return res; - } - - /* We've successfully loaded the module. */ - - return LOADER_OK; -} -/*-----------------------------------------------------------------------------------*/ -/** - * Load and start a program. - * - * \param name The name of the program file. - * \param arg A pointer that will be passed to the new process. - */ -/*-----------------------------------------------------------------------------------*/ -unsigned char -loader_arch_load(const char *name, char *arg) -{ - unsigned char r; - struct loader_arch_hdr *hdr; - - r = load(name); - if(r != MLOAD_OK) { - return r; - } - hdr = (struct loader_arch_hdr *)ctrl.module; - - /* Check the program header and see that version and architecture - matches. */ - - /* Call the init function. */ - ((void (*)(char *))hdr->initfunc)(arg); - - return LOADER_OK; -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/main.c b/backyard/platform/c64/main.c deleted file mode 100644 index 18f6f3764..000000000 --- a/backyard/platform/c64/main.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (c) 2002-2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki operating system - * - * $Id: main.c,v 1.1 2007/05/23 23:11:23 oliverschmidt Exp $ - * - */ - -#include "contiki.h" - -#include "ctk/ctk.h" -#include "ctk/ctk-draw.h" - -#include "program-handler.h" - - -#include "contiki-net.h" - -#include "configedit-dsc.h" -#include "directory-dsc.h" -#include "processes-dsc.h" - -#include "cfs-cbm.h" -#include "cfs-init.h" - - -#include - -PROCINIT(&tcpip_process, &resolv_process, /*&cfs_init_process,*/ - &ctk_process, &etimer_process, &program_handler_process); - -unsigned char -uip_fw_forward(void) -{ - return 0; -} -void -uip_fw_periodic(void) -{ - return; -} -/*---------------------------------------------------------------------------*/ -void -log_message(char *part1, char *part2) -{ - while(*part1 != 0) { - cbm_k_bsout(*part1++); - } - - while(*part2 != 0) { - cbm_k_bsout(*part2++); - } - - - cbm_k_bsout('\n'); -} -/*---------------------------------------------------------------------------*/ -clock_time_t -clock_time(void) -{ - return clock(); -} -/*---------------------------------------------------------------------------*/ -void -main(void) -{ - - log_message("Starting ", CONTIKI_VERSION_STRING); - - process_init(); - - log_message(": TCP/IP", ""); - - procinit_init(); - - /* tcpip_init(NULL); - - resolv_init(NULL); */ - - log_message(": CTK GUI", ""); - /* ctk_init();*/ - - log_message(": Initial filesystem", ""); - /* cfs_init_init(NULL);*/ - - /* program_handler_init();*/ - - /* - program_handler_add(&directory_dsc, "Directory", 1); - program_handler_add(&configedit_dsc, "Configuration", 1); - program_handler_add(&processes_dsc, "Processes", 1); */ - - - log_message("Starting process scheduling", ""); - - while(1) { - if(process_run() == 0) { - program_handler_load("welcome.prg", NULL); - break; - } - } - - - while(1) { - process_run(); - } -} -/*---------------------------------------------------------------------------*/ -void -reset(void) -{ - asm("lda #$36"); - asm("sta $01"); - asm("jmp $fce2"); -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/net/cs8900a.c b/backyard/platform/c64/net/cs8900a.c deleted file mode 100644 index dea1c6d36..000000000 --- a/backyard/platform/c64/net/cs8900a.c +++ /dev/null @@ -1,297 +0,0 @@ -/* - * Copyright (c) 2001, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the C64 RealAudio server demo project. - * - * $Id: cs8900a.c,v 1.1 2007/05/23 23:11:29 oliverschmidt Exp $ - * - */ - -/* cs8900a.c: device driver for the CS8900a chip in 8-bit mode. Mostly - written in 6502 assembler for speed. */ - -#include "cs8900a.h" -#include "contiki-net.h" - -extern u8_t *cs8900a_rxtxreg, - *cs8900a_txcmd, - *cs8900a_txlen, - *cs8900a_packetpp, - *cs8900a_ppdata; - -static u16_t len; -static u16_t cnt; - - -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -cs8900a_init(void) -{ - /* Turn on transmission and reception of frames. */ - /* PACKETPP = 0x0112; - PPDATA = 0x00c0; */ - asm("lda #$12"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda #$c0"); - asm("sta %v", cs8900a_ppdata); - asm("lda #$00"); - asm("sta %v+1", cs8900a_ppdata); - - /* Accept valid unicast+broadcast frames. */ - /* PACKETPP = 0x0104; - PPDATA = 0x0d05; */ - asm("lda #$04"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda #$05"); - asm("sta %v", cs8900a_ppdata); - asm("lda #$0d"); - asm("sta %v+1", cs8900a_ppdata); - - /* Set MAC address. */ - /* PACKETPP = 0x0158; - PPDATA = (ETHADDR1 << 8) | (ETHADDR0); */ - asm("lda #$58"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda %v", uip_ethaddr); - asm("sta %v", cs8900a_ppdata); - asm("lda %v+1", uip_ethaddr); - asm("sta %v+1", cs8900a_ppdata); - - /* PACKETPP = 0x015a; - PPDATA = (ETHADDR3 << 8) | (ETHADDR2); */ - asm("lda #$5a"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda %v+2", uip_ethaddr); - asm("sta %v", cs8900a_ppdata); - asm("lda %v+3", uip_ethaddr); - asm("sta %v+1", cs8900a_ppdata); - - /* PACKETPP = 0x015c; - PPDATA = (ETHADDR5 << 8) | (ETHADDR4); */ - asm("lda #$5c"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda %v+4", uip_ethaddr); - asm("sta %v", cs8900a_ppdata); - asm("lda %v+5", uip_ethaddr); - asm("sta %v+1", cs8900a_ppdata); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void -cs8900a_send(void) -{ - /* Transmit command. */ - asm("lda #$c0"); - asm("sta %v", cs8900a_txcmd); - asm("lda #$00"); - asm("sta %v+1", cs8900a_txcmd); - asm("lda %v", uip_len); - asm("sta %v", cs8900a_txlen); - asm("lda %v+1", uip_len); - asm("sta %v+1", cs8900a_txlen); - - asm("ldy #8"); -tryagain: - /* Check for avaliable buffer space. */ - asm("lda #$38"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda %v+1", cs8900a_ppdata); - asm("and #1"); - asm("bne %g", send); - - /* No space avaliable, skip a received frame and try again. */ - asm("lda #$02"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda %v", cs8900a_ppdata); - asm("ora #$40"); - asm("sta %v", cs8900a_ppdata); - - asm("dey"); - asm("bne %g", tryagain); - return; - - /* Send the frame. */ -send: - - /* First, send 14+40=54 bytes of header. */ - asm("ldy #0"); -sendloop1: - asm("lda %v,y", uip_buf); - asm("sta %v", cs8900a_rxtxreg); - asm("iny"); - asm("lda %v,y", uip_buf); - asm("sta %v+1", cs8900a_rxtxreg); - asm("iny"); - asm("cpy #%b", UIP_LLH_LEN + UIP_TCPIP_HLEN); - asm("bne %g", sendloop1); - - if(uip_len <= UIP_LLH_LEN + UIP_TCPIP_HLEN) { - return; - } - - /* Next, send rest of the packet. */ - cnt = uip_len - (UIP_LLH_LEN + UIP_TCPIP_HLEN); - - asm("lda %v", cnt); - asm("lsr"); - asm("bcc %g", noinc); - asm("inc %v", cnt); - asm("bne %g", noinc); - asm("inc %v+1", cnt); -noinc: - - asm("lda %v", uip_appdata); - asm("sta ptr1"); - asm("lda %v+1", uip_appdata); - asm("sta ptr1+1"); - - asm("ldy #0"); -sendloop2: - asm("lda (ptr1),y"); - asm("sta %v", cs8900a_rxtxreg); - asm("iny"); - asm("lda (ptr1),y"); - asm("sta %v+1", cs8900a_rxtxreg); - asm("iny"); - asm("bne %g", check); - asm("inc ptr1+1"); -check: - asm("cpy %v", cnt); - asm("bne %g", sendloop2); - asm("dec %v+1", cnt); - asm("bpl %g", sendloop2); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -skip_frame(void) -{ - /* PACKETPP = 0x0102; - PPDATA = PPDATA | 0x0040; */ - asm("lda #$02"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda %v", cs8900a_ppdata); - asm("ora #$40"); - asm("sta %v", cs8900a_ppdata); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -u16_t -cs8900a_poll(void) -{ - /* Check receiver event register to see if there are any valid - unicast frames avaliable. */ - /* PACKETPP = 0x0124; - if(PPDATA & 0x000d == 0x0000) { - return 0; - } - */ - asm("lda #$24"); - asm("sta %v", cs8900a_packetpp); - asm("lda #$01"); - asm("sta %v+1", cs8900a_packetpp); - asm("lda %v+1", cs8900a_ppdata); - asm("and #$0d"); - asm("cmp #$00"); - asm("bne %g", noreturn); - /* No frame ready. */ - return 0; - -noreturn: - /* Process the incoming frame. */ - - /* Read receiver event and discard it. */ - /* RXTXREG; */ - asm("lda %v+1", cs8900a_rxtxreg); - asm("lda %v", cs8900a_rxtxreg); - - /* Read frame length. */ - /* cnt = len = RXTXREG; */ - asm("lda %v+1", cs8900a_rxtxreg); - asm("sta %v+1", len); - asm("sta %v+1", cnt); - asm("lda %v", cs8900a_rxtxreg); - asm("sta %v", len); - asm("sta %v", cnt); - - asm("lsr"); - asm("bcc %g", noinc); - asm("inc %v", cnt); - asm("bne %g", noinc); - asm("inc %v+1", cnt); -noinc: - - if(cnt > UIP_BUFSIZE) { - skip_frame(); - return 0; - } - - /* Read bytes into uip_buf. */ - asm("lda #<%v", uip_buf); - asm("sta ptr1"); - asm("lda #>%v", uip_buf); - asm("sta ptr1+1"); - - asm("ldy #0"); -readloop: - asm("lda %v", cs8900a_rxtxreg); - asm("sta (ptr1),y"); - asm("iny"); - asm("lda %v+1", cs8900a_rxtxreg); - asm("sta (ptr1),y"); - asm("iny"); - asm("bne %g", check); - asm("inc ptr1+1"); -check: - asm("cpy %v", cnt); - asm("bne %g", readloop); - asm("dec %v+1", cnt); - asm("bpl %g", readloop); - return len; -} -#pragma optimize(pop) diff --git a/backyard/platform/c64/net/cs8900a.h b/backyard/platform/c64/net/cs8900a.h deleted file mode 100644 index 6fda296ff..000000000 --- a/backyard/platform/c64/net/cs8900a.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: cs8900a.h,v 1.1 2007/05/23 23:11:29 oliverschmidt Exp $ - */ -#ifndef __CS8900A_H__ -#define __CS8900A_H__ - -#include "uip_arch.h" - -void cs8900a_init(void); -void cs8900a_send(void); -u16_t cs8900a_poll(void); - -#endif /* __CS8900A_H__ */ diff --git a/backyard/platform/c64/net/eth64-drv.c b/backyard/platform/c64/net/eth64-drv.c deleted file mode 100644 index dea171167..000000000 --- a/backyard/platform/c64/net/eth64-drv.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2001-2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the uIP TCP/IP stack. - * - * $Id: eth64-drv.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - * - */ - -#include "contiki-net.h" -#include "lan91c96.h" - -static u8_t output(void); - -static const struct uip_eth_addr addr = - {{0x00,0x00,0x00,0x64,0x64,0x64}}; - -SERVICE(eth64_drv_service, packet_service, { output };); - -PROCESS(eth64_drv_process, "ETH64 driver"); - -/*---------------------------------------------------------------------------*/ -static u8_t -output(void) -{ - uip_arp_out(); - lan91c96_send(); - - return 0; -} -/*---------------------------------------------------------------------------*/ -static void -pollhandler(void) -{ -#define BUF ((struct uip_eth_hdr *)&uip_buf[0]) - - /* Poll Ethernet device to see if there is a frame avaliable. */ - uip_len = lan91c96_poll(); - if(uip_len > 0) { - /* A frame was avaliable (and is now read into the uip_buf), so - we process it. */ - if(BUF->type == UIP_HTONS(UIP_ETHTYPE_IP)) { - uip_arp_ipin(); - uip_len -= sizeof(struct uip_eth_hdr); - tcpip_input(); - } else if(BUF->type == UIP_HTONS(UIP_ETHTYPE_ARP)) { - uip_arp_arpin(); - /* If the above function invocation resulted in data that - should be sent out on the network, the global variable - uip_len is set to a value > 0. */ - if(uip_len > 0) { - lan91c96_send(); - } - } - } - -} -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(eth64_drv_process, ev, data) -{ - PROCESS_POLLHANDLER(pollhandler()); - - PROCESS_BEGIN(); - - - uip_setethaddr(addr); - - lan91c96_init(); - - SERVICE_REGISTER(eth64_drv_service); - - process_poll(ð64_drv_process); - - while(1) { - PROCESS_YIELD(); - } - - PROCESS_END(); -} - - -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/net/eth64-dsc.c b/backyard/platform/c64/net/eth64-dsc.c deleted file mode 100644 index 3adc5f29f..000000000 --- a/backyard/platform/c64/net/eth64-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: eth64-dsc.c,v 1.2 2007/09/06 01:36:12 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char lan91c96icon_bitmap[3*3*8] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char lan91c96icon_textmap[9] = { - 'I', 'D', 'E', - ' ', '6', '4', - 'E', 'T', 'H' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon lan91c96_icon = - {CTK_ICON("ETH64 driver", lan91c96icon_bitmap, lan91c96icon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(lan91c96_dsc, - "IDE64/ETH64 driver", - "lan91c96.drv", - lan91c96_init, - &lan91c96_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/net/eth64-dump-drv.c b/backyard/platform/c64/net/eth64-dump-drv.c deleted file mode 100644 index ad9cf82ee..000000000 --- a/backyard/platform/c64/net/eth64-dump-drv.c +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (c) 2001-2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the uIP TCP/IP stack. - * - * $Id: eth64-dump-drv.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - * - */ - -#include "contiki-net.h" -#include "ctk/ctk.h" - -#include "lan91c96.h" - -static u8_t output(void); - -static const struct uip_eth_addr addr = - {{0x00,0x00,0x00,0x64,0x64,0x64}}; - -SERVICE(eth64_drv_service, packet_service, { output };); - -PROCESS(eth64_drv_process, "Eth64 driver"); - -#define DUMP_WIDTH 38 -#define DUMP_HEIGHT 20 -static struct ctk_window window; -static char dump[DUMP_WIDTH * DUMP_HEIGHT]; -static struct ctk_label dumplabel = - {CTK_LABEL(0, 0, DUMP_WIDTH, DUMP_HEIGHT, dump)}; -static void -dump_packet(void) -{ - memcpy(dump, &dump[DUMP_WIDTH], DUMP_WIDTH * (DUMP_HEIGHT - 1)); - tcpdump_print(&dump[DUMP_WIDTH * (DUMP_HEIGHT - 1)], DUMP_WIDTH); - CTK_WIDGET_REDRAW(&dumplabel); -} - -/*---------------------------------------------------------------------------*/ -static u8_t -output(void) -{ - - uip_arp_out(); - lan91c96_send(); - - dump_packet(); - - return 0; -} -/*---------------------------------------------------------------------------*/ -static void -pollhandler(void) -{ -#define BUF ((struct uip_eth_hdr *)&uip_buf[0]) - - /* Poll Ethernet device to see if there is a frame avaliable. */ - uip_len = lan91c96_poll(); - if(uip_len > 0) { - - dump_packet(); - - /* A frame was avaliable (and is now read into the uip_buf), so - we process it. */ - if(BUF->type == UIP_HTONS(UIP_ETHTYPE_IP)) { - uip_arp_ipin(); - uip_len -= sizeof(struct uip_eth_hdr); - tcpip_input(); - } else if(BUF->type == UIP_HTONS(UIP_ETHTYPE_ARP)) { - uip_arp_arpin(); - /* If the above function invocation resulted in data that - should be sent out on the network, the global variable - uip_len is set to a value > 0. */ - if(uip_len > 0) { - lan91c96_send(); - } - } - } - -} -/*---------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -init_eth64(void) -{ - asm("lda #1"); - asm("ora $de01"); - asm("sta $de01"); -} -#pragma optimize(pop) -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(eth64_drv_process, ev, data) -{ - PROCESS_POLLHANDLER(pollhandler()); - - PROCESS_BEGIN(); - - - uip_setethaddr(addr); - init_eth64(); - lan91c96_init(); - - ctk_window_new(&window, DUMP_WIDTH, DUMP_HEIGHT, "RR-Net dump"); - CTK_WIDGET_ADD(&window, &dumplabel); - ctk_window_open(&window); - - - SERVICE_REGISTER(eth64_drv_service); - - process_poll(ð64_drv_process); - - while(1) { - PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_EXIT); - } - - ctk_window_close(&window); - - PROCESS_END(); -} - - -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/net/lan91c96.c b/backyard/platform/c64/net/lan91c96.c deleted file mode 100644 index 3ac60ccb2..000000000 --- a/backyard/platform/c64/net/lan91c96.c +++ /dev/null @@ -1,453 +0,0 @@ -/* - * uIP lan91c96 (smc9194) driver - * Based on cs8900a driver, copyrighted (c) 2001, by Adam Dunkels - * Copyright (c) 2003, Josef Soucek - * All rights reserved. - * - * Ethernet card for Commodore 64, based on lan91c96 chip - * is a device created by IDE64 Project team. - * More information: http://ide64.come.to - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: lan91c96.c,v 1.1 2007/05/23 23:11:29 oliverschmidt Exp $ - * - */ - -#include "lan91c96.h" -#include "contiki-net.h" - -#include - -// #define DEBUG - -#define ETHBASE 0xde10 - -#define ETHBSR ETHBASE+0x0e /* Bank select register R/W (2B) */ - -/* Register bank 0 */ - -#define ETHTCR ETHBASE /* Transmition control register R/W (2B) */ -#define ETHEPHSR ETHBASE+2 /* EPH status register R/O (2B) */ -#define ETHRCR ETHBASE+4 /* Receive control register R/W (2B) */ -#define ETHECR ETHBASE+6 /* Counter register R/O (2B) */ -#define ETHMIR ETHBASE+8 /* Memory information register R/O (2B) */ -#define ETHMCR ETHBASE+0x0a /* Memory Config. reg. +0 R/W +1 R/O (2B) */ - -/* Register bank 1 */ - -#define ETHCR ETHBASE /* Configuration register R/W (2B) */ -#define ETHBAR ETHBASE+2 /* Base address register R/W (2B) */ -#define ETHIAR ETHBASE+4 /* Individual address register R/W (6B) */ -#define ETHGPR ETHBASE+0x0a /* General address register R/W (2B) */ -#define ETHCTR ETHBASE+0x0c /* Control register R/W (2B) */ - -/* Register bank 2 */ - -#define ETHMMUCR ETHBASE /* MMU command register W/O (1B) */ -#define ETHAUTOTX ETHBASE+1 /* AUTO TX start register R/W (1B) */ -#define ETHPNR ETHBASE+2 /* Packet number register R/W (1B) */ -#define ETHARR ETHBASE+3 /* Allocation result register R/O (1B) */ -#define ETHFIFO ETHBASE+4 /* FIFO ports register R/O (2B) */ -#define ETHPTR ETHBASE+6 /* Pointer register R/W (2B) */ -#define ETHDATA ETHBASE+8 /* Data register R/W (4B) */ -#define ETHIST ETHBASE+0x0c /* Interrupt status register R/O (1B) */ -#define ETHACK ETHBASE+0x0c /* Interrupt acknowledge register W/O (1B) */ -#define ETHMSK ETHBASE+0x0d /* Interrupt mask register R/W (1B) */ - -/* Register bank 3 */ - -#define ETHMT ETHBASE /* Multicast table R/W (8B) */ -#define ETHMGMT ETHBASE+8 /* Management interface R/W (2B) */ -#define ETHREV ETHBASE+0x0a /* Revision register R/W (2B) */ -#define ETHERCV ETHBASE+0x0c /* Early RCV register R/W (2B) */ - -#define BANK(num) asm("lda #%b", num); asm("sta %w", ETHBSR); - -#ifdef DEBUG -static void print_packet(u8_t *, u16_t); -#endif - -static u8_t packet_status; -static u16_t packet_length; - - -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void lan91c96_init(void) -{ - /* Check if high byte is 0x33 */ - asm("lda %w", ETHBSR+1); - asm("cmp #$33"); - asm("beq %g", L1); - - asm("inc $d021"); /* Error */ - -L1: - /* Reset ETH card */ - BANK(0); - asm("lda #%%10000000"); /* Software reset */ - asm("sta %w", ETHRCR+1); - - asm("lda #0"); - asm("sta %w", ETHRCR); - asm("sta %w", ETHRCR+1); - - /* delay */ - asm("ldy #0"); -L2: - asm("cmp ($ff,x)"); /* 6 cycles */ - asm("cmp ($ff,x)"); /* 6 cycles */ - asm("dey"); /* 2 cycles */ - asm("bne %g", L2); /* 3 cycles */ - /* 17*256=4352 => 4,4 ms */ - - /* Enable transmit and receive */ - asm("lda #%%10000001"); /* Enable transmit TXENA, PAD_EN */ - asm("sta %w", ETHTCR); - asm("lda #%%00000011"); /* Enable receive, strip CRC ??? */ - asm("sta %w", ETHRCR+1); - - BANK(1); - asm("lda %w", ETHCR+1); - asm("ora #%%00010000"); /* No wait (IOCHRDY) */ - asm("sta %w", ETHCR+1); - - asm("lda #%%00001001"); /* Auto release */ - asm("sta %w", ETHCTR+1); - - /* Set MAC address */ - asm("lda %v", uip_ethaddr); - asm("sta %w", ETHIAR); - asm("lda %v+1", uip_ethaddr); - asm("sta %w", ETHIAR+1); - asm("lda %v+2", uip_ethaddr); - asm("sta %w", ETHIAR+2); - asm("lda %v+3", uip_ethaddr); - asm("sta %w", ETHIAR+3); - asm("lda %v+4", uip_ethaddr); - asm("sta %w", ETHIAR+4); - asm("lda %v+5", uip_ethaddr); - asm("sta %w", ETHIAR+5); - - BANK(2); - asm("lda #%%00001111"); /* RCV INT, ALLOC INT, TX INT, TX EMPTY */ - asm("sta %w", ETHMSK); -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -u16_t lan91c96_poll(void) -{ -#ifdef DEBUG - BANK(0); - printf("RAM: %d ", ((*(unsigned int *)(ETHMIR)) & 0xff00)); - BANK(2); -#endif - - asm("lda %w", ETHIST); - asm("and #%%00000001"); /* RCV INT */ - asm("bne %g", L1); - - /* No packet available */ - return 0; - -L1: - -#ifdef DEBUG - printf("RCV: IRQ\n"); -#endif - - asm("lda #0"); - asm("sta %w", ETHPTR); - asm("lda #%%11100000"); /* RCV,AUTO INCR.,READ */ - asm("sta %w", ETHPTR+1); - - asm("lda %w", ETHDATA); /* Status word */ - asm("lda %w", ETHDATA); - asm("sta %v", packet_status); /* High byte only */ - - asm("lda %w", ETHDATA); /* Total number of bytes */ - asm("sta %v", packet_length); - asm("lda %w", ETHDATA); - asm("sta %v+1", packet_length); - - /* Last word contain 'last data byte' and 0x60 */ - /* or 'fill byte' and 0x40 */ - - packet_length -= 6; /* The packet contains 3 extra words */ - - asm("lda %v", packet_status); - asm("and #$10"); - asm("beq %g", L2); - - packet_length++; - -#ifdef DEBUG - printf("RCV: odd number of bytes\n"); -#endif - -L2: - -#ifdef DEBUG - printf("RCV: L:%d ST-HIGH:0x%02x ", packet_length, packet_status); -#endif - - if(packet_length > UIP_BUFSIZE) { - - /* Remove and release RX packet from FIFO */ - asm("lda #%%10000000"); - asm("sta %w", ETHMMUCR); - -#ifdef DEBUG - printf("RCV: UIP_BUFSIZE exceeded - packet dropped!\n"); -#endif - - return 0; - } - - asm("lda #<%v", uip_buf); - asm("sta ptr1"); - asm("lda #>%v", uip_buf); - asm("sta ptr1+1"); - - asm("lda %v+1", packet_length); - asm("sta tmp1"); - - asm("ldy #0"); -L3: - asm("lda %w", ETHDATA); - asm("sta (ptr1),y"); - asm("iny"); - asm("bne %g", L4); - asm("inc ptr1+1"); -L4: - asm("cpy %v", packet_length); - asm("bne %g", L3); - asm("dec tmp1"); - asm("bpl %g", L3); - - /* Remove and release RX packet from FIFO */ - asm("lda #%%10000000"); - asm("sta %w", ETHMMUCR); - -#ifdef DEBUG - print_packet(uip_buf, packet_length); -#endif - - return packet_length; -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#pragma optimize(push, off) -void lan91c96_send(void) -{ - /* First 14+40 (IP and TCP header) is send from uip_buf */ - /* than data from uip_appdata */ - -#ifdef DEBUG - printf("SND: send packet\n"); -#endif - - asm("lda %v+1", uip_len); - asm("ora #%%00100000"); /* Allocate memory for TX */ - asm("sta %w", ETHMMUCR); - - asm("ldy #8"); /* Wait... */ -L1: /* Wait for allocation ready */ - asm("lda %w", ETHIST); - asm("and #%%00001000"); /* ALLOC INT */ - asm("bne %g", L2); - asm("dey"); - asm("bne %g", L1); - -#ifdef DEBUG - printf("SND: ERR: memory alloc timeout\n"); -#endif - - return; - -L2: - -#ifdef DEBUG - printf("SND: packet memory allocated\n"); -#endif - - asm("lda #%%00001000"); /* Acknowledge int, is it necessary ??? */ - asm("sta %w", ETHACK); - - asm("lda %w", ETHARR); - asm("sta %w", ETHPNR); /* Set packet address */ - - asm("lda #0"); - asm("sta %w", ETHPTR); - asm("lda #%%01000000"); /* AUTO INCR. */ - asm("sta %w", ETHPTR+1); - -#ifdef DEBUG - printf("SND: L:%d ", uip_len); -#endif - - asm("lda #0"); /* Status written by CSMA */ - asm("sta %w", ETHDATA); - asm("sta %w", ETHDATA); - - asm("lda %v", uip_len); - asm("and #$01"); - asm("beq %g", L3); - - packet_length = uip_len + 5; - asm("jmp %g", L4); - -L3: - packet_length = uip_len + 6; /* +6 for status word, length and ctl byte */ - -L4: - -#ifdef DEBUG - printf("SND: L:%d ", packet_length); -#endif - - asm("lda %v", packet_length); - asm("sta %w", ETHDATA); - asm("lda %v+1", packet_length); - asm("sta %w", ETHDATA); - -#ifdef DEBUG - print_packet(uip_buf, uip_len); -#endif - - /* Send 14+40=54 bytes of header */ - - if(uip_len <= UIP_LLH_LEN + UIP_TCPIP_HLEN) { - -#ifdef DEBUG - printf("SND: short packet sent.\n"); -#endif - - asm("ldy #0"); -L5: - asm("lda %v,y", uip_buf); - asm("sta %w", ETHDATA); - asm("iny"); - asm("cpy %v", uip_len); - asm("bne %g", L5); - - } else { - - asm("ldy #0"); -L6: - asm("lda %v,y", uip_buf); - asm("sta %w", ETHDATA); - asm("iny"); - asm("cpy #%b", UIP_LLH_LEN + UIP_TCPIP_HLEN); - asm("bne %g", L6); - - packet_length = uip_len - (UIP_LLH_LEN + UIP_TCPIP_HLEN); - - asm("lda %v", uip_appdata); /* uip_appdata is pointer */ - asm("sta ptr1"); - asm("lda %v+1", uip_appdata); - asm("sta ptr1+1"); - - asm("ldy #0"); -L7: - asm("lda (ptr1),y"); - asm("sta %w", ETHDATA); - asm("iny"); - asm("bne %g", L8); - asm("inc ptr1+1"); -L8: - asm("cpy %v", packet_length); - asm("bne %g", L7); - asm("dec %v+1", packet_length); - asm("bpl %g", L7); - } - - asm("lda %v", packet_length); - asm("and #$01"); - asm("beq %g", L9); - - asm("lda #%%00100000"); - asm("sta %w", ETHDATA); /* Control byte */ - - asm("lda #%%11000000"); /* ENQUEUE PACKET - transmit packet */ - asm("sta %w", ETHMMUCR); - -#ifdef DEBUG - printf("\n## %02x", *(unsigned char *)(ETHIST)); -#endif - - return; - -L9: - asm("lda #0"); - asm("sta %w", ETHDATA); /* Fill byte */ - asm("sta %w", ETHDATA); /* Control byte */ - - asm("lda #%%11000000"); /* ENQUEUE PACKET - transmit packet */ - asm("sta %w", ETHMMUCR); - -#ifdef DEBUG - printf("\n## %02x\n", *(unsigned char *)(ETHIST)); -#endif - -} -#pragma optimize(pop) -/*-----------------------------------------------------------------------------------*/ -#ifdef DEBUG -static void print_packet(u8_t *buf, u16_t length) -{ - int i; - int remainder; - int lines; - u8_t a; - int cur; - int address=0; - - printf("\nPacket of length %d \n", length); - - lines = length / 8; - remainder = length % 8; - - for(i = 0; i < lines; i++) { - printf(":%04x ", address=i*8); - - for(cur = 0; cur < 8; cur++) { - a = *(buf++); - printf("%02x ", a); - } - printf("\n"); - } - - printf(":%04x ", address+8); - - for (i = 0; i < remainder; i++) { - a = *(buf++); - printf("%02x ", a); - } - printf("\n"); -} -#endif /* DEBUG */ diff --git a/backyard/platform/c64/net/lan91c96.h b/backyard/platform/c64/net/lan91c96.h deleted file mode 100644 index 5651aa53b..000000000 --- a/backyard/platform/c64/net/lan91c96.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: lan91c96.h,v 1.1 2007/05/23 23:11:30 oliverschmidt Exp $ - */ - -#ifndef __LAN91C96_H__ -#define __LAN91C96_H__ - -#include "uip_arch.h" - -void lan91c96_init(void); -void lan91c96_send(void); -u16_t lan91c96_poll(void); - -#endif /* __LAN91C96_H__ */ diff --git a/backyard/platform/c64/net/rrnet-drv-asm.S b/backyard/platform/c64/net/rrnet-drv-asm.S deleted file mode 100644 index 595c00ccf..000000000 --- a/backyard/platform/c64/net/rrnet-drv-asm.S +++ /dev/null @@ -1,17 +0,0 @@ - -;--------------------------------------------------------------------- - .export _cs8900a_rxtxreg - .export _cs8900a_txcmd - .export _cs8900a_txlen - .export _cs8900a_packetpp - .export _cs8900a_ppdata - - -;--------------------------------------------------------------------- - - _cs8900a_rxtxreg = $de08 - _cs8900a_txcmd = $de0c - _cs8900a_txlen = $de0e - _cs8900a_packetpp = $de02 - _cs8900a_ppdata = $de04 - diff --git a/backyard/platform/c64/net/rrnet-drv.c b/backyard/platform/c64/net/rrnet-drv.c deleted file mode 100644 index cc04d894e..000000000 --- a/backyard/platform/c64/net/rrnet-drv.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2001-2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the uIP TCP/IP stack. - * - * $Id: rrnet-drv.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - * - */ - -#include "contiki-net.h" -#include "cs8900a.h" - - -static u8_t output(void); - -static const struct uip_eth_addr addr = - {{0x00,0x00,0x00,0x64,0x64,0x64}}; - -SERVICE(rrnet_drv_service, packet_service, { output };); - -PROCESS(rrnet_drv_process, "RRNet driver"); - -/*---------------------------------------------------------------------------*/ -static u8_t -output(void) -{ - uip_arp_out(); - cs8900a_send(); - - return 0; -} -/*---------------------------------------------------------------------------*/ -static void -pollhandler(void) -{ -#define BUF ((struct uip_eth_hdr *)&uip_buf[0]) - - /* Poll Ethernet device to see if there is a frame avaliable. */ - uip_len = cs8900a_poll(); - if(uip_len > 0) { - /* A frame was avaliable (and is now read into the uip_buf), so - we process it. */ - if(BUF->type == UIP_HTONS(UIP_ETHTYPE_IP)) { - uip_arp_ipin(); - uip_len -= sizeof(struct uip_eth_hdr); - tcpip_input(); - } else if(BUF->type == UIP_HTONS(UIP_ETHTYPE_ARP)) { - uip_arp_arpin(); - /* If the above function invocation resulted in data that - should be sent out on the network, the global variable - uip_len is set to a value > 0. */ - if(uip_len > 0) { - cs8900a_send(); - } - } - } - -} -/*---------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -init_rrnet(void) -{ - asm("lda #1"); - asm("ora $de01"); - asm("sta $de01"); -} -#pragma optimize(pop) -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(rrnet_drv_process, ev, data) -{ - PROCESS_POLLHANDLER(pollhandler()); - - PROCESS_BEGIN(); - - uip_setethaddr(addr); - init_rrnet(); - cs8900a_init(); - - SERVICE_REGISTER(rrnet_drv_service); - - process_poll(&rrnet_drv_process); - - while(1) { - PROCESS_YIELD(); - } - - PROCESS_END(); -} - - -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/net/rrnet-dsc.c b/backyard/platform/c64/net/rrnet-dsc.c deleted file mode 100644 index 84262ee79..000000000 --- a/backyard/platform/c64/net/rrnet-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: rrnet-dsc.c,v 1.2 2007/09/06 01:36:12 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char rrneticon_bitmap[3*3*8] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char rrneticon_textmap[9] = { - 'R', 'R', '-', - 'N', 'e', 't', - 'D', 'R', 'V' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon rrnet_icon = - {CTK_ICON("RR-Net driver", rrneticon_bitmap, rrneticon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(rrnet_dsc, - "RR-Net driver", - "rrnet.drv", - rrnet_init, - &rrnet_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/net/rrnet-dump-drv.c b/backyard/platform/c64/net/rrnet-dump-drv.c deleted file mode 100644 index b15694504..000000000 --- a/backyard/platform/c64/net/rrnet-dump-drv.c +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (c) 2001-2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the uIP TCP/IP stack. - * - * $Id: rrnet-dump-drv.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - * - */ - -#include "contiki-net.h" -#include "cs8900a.h" - -#include "ctk/ctk.h" - -static u8_t output(void); - -static const struct uip_eth_addr addr = - {{0x00,0x00,0x00,0x64,0x64,0x64}}; - -SERVICE(rrnet_drv_service, packet_service, { output };); - -PROCESS(rrnet_drv_process, "RRNet driver"); - -#define DUMP_WIDTH 38 -#define DUMP_HEIGHT 20 -static struct ctk_window window; -static char dump[DUMP_WIDTH * DUMP_HEIGHT]; -static struct ctk_label dumplabel = - {CTK_LABEL(0, 0, DUMP_WIDTH, DUMP_HEIGHT, dump)}; -static void -dump_packet(void) -{ - memcpy(dump, &dump[DUMP_WIDTH], DUMP_WIDTH * (DUMP_HEIGHT - 1)); - tcpdump_print(&dump[DUMP_WIDTH * (DUMP_HEIGHT - 1)], DUMP_WIDTH); - CTK_WIDGET_REDRAW(&dumplabel); -} - -/*---------------------------------------------------------------------------*/ -static u8_t -output(void) -{ - - uip_arp_out(); - cs8900a_send(); - - dump_packet(); - - return 0; -} -/*---------------------------------------------------------------------------*/ -static void -pollhandler(void) -{ -#define BUF ((struct uip_eth_hdr *)&uip_buf[0]) - - /* Poll Ethernet device to see if there is a frame avaliable. */ - uip_len = cs8900a_poll(); - if(uip_len > 0) { - - dump_packet(); - - /* A frame was avaliable (and is now read into the uip_buf), so - we process it. */ - if(BUF->type == UIP_HTONS(UIP_ETHTYPE_IP)) { - uip_arp_ipin(); - uip_len -= sizeof(struct uip_eth_hdr); - tcpip_input(); - } else if(BUF->type == UIP_HTONS(UIP_ETHTYPE_ARP)) { - uip_arp_arpin(); - /* If the above function invocation resulted in data that - should be sent out on the network, the global variable - uip_len is set to a value > 0. */ - if(uip_len > 0) { - cs8900a_send(); - } - } - } - -} -/*---------------------------------------------------------------------------*/ -#pragma optimize(push, off) -static void -init_rrnet(void) -{ - asm("lda #1"); - asm("ora $de01"); - asm("sta $de01"); -} -#pragma optimize(pop) -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(rrnet_drv_process, ev, data) -{ - PROCESS_POLLHANDLER(pollhandler()); - - PROCESS_BEGIN(); - - - uip_setethaddr(addr); - init_rrnet(); - cs8900a_init(); - - ctk_window_new(&window, DUMP_WIDTH, DUMP_HEIGHT, "RR-Net dump"); - CTK_WIDGET_ADD(&window, &dumplabel); - ctk_window_open(&window); - - - SERVICE_REGISTER(rrnet_drv_service); - - process_poll(&rrnet_drv_process); - - while(1) { - PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_EXIT); - } - - ctk_window_close(&window); - - PROCESS_END(); -} - - -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/net/rs232dev-ss.c b/backyard/platform/c64/net/rs232dev-ss.c deleted file mode 100644 index 122b53a79..000000000 --- a/backyard/platform/c64/net/rs232dev-ss.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright (c) 2001, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the uIP TCP/IP stack. - * - * $Id: rs232dev-ss.c,v 1.1 2007/05/23 23:11:30 oliverschmidt Exp $ - * - */ - -/* - * This is a generic implementation of the SLIP protocol over an RS232 - * (serial) device. While initially intented for the C64, the code can - * easily be ported to other platforms as well. - * - * Huge thanks to Ullrich von Bassewitz of cc65 fame for - * and endless supply of bugfixes, insightsful comments and - * suggestions, and improvements to this code! - */ - -#include "rs232silversurfer.h" -#include -#include - - /* This will include the system specific header files as well */ -#if defined(__CBM__) -# include -#elif defined(__ATARI__) -# include -#endif - -#include "uip.h" - -#define SLIP_END 0300 -#define SLIP_ESC 0333 -#define SLIP_ESC_END 0334 -#define SLIP_ESC_ESC 0335 - - -#define SIO_RECV(c) while(rs232_get(&c) == RS_ERR_NO_DATA) -#define SIO_POLL(c) (rs232_get(&c) != RS_ERR_NO_DATA) -#define SIO_SEND(c) while(rs232_put(c) == RS_ERR_OVERFLOW) - -#define MAX_SIZE (UIP_BUFSIZE - UIP_LLH_LEN) - -static u8_t slip_buf[MAX_SIZE + 2]; - -static u16_t len, tmplen; - -#if 1 -#define printf(x) -#else -#include -#endif - - -/*-----------------------------------------------------------------------------------*/ -static void -rs232_err(char err) -{ - switch(err) { - case RS_ERR_OK: - printf("RS232 OK\n"); - break; - case RS_ERR_NOT_INITIALIZED: - printf("RS232 not initialized\n"); - break; - case RS_ERR_BAUD_TOO_FAST: - printf("RS232 baud too fast\n"); - break; - case RS_ERR_BAUD_NOT_AVAIL: - printf("RS232 baud rate not available\n"); - break; - case RS_ERR_NO_DATA: - printf("RS232 nothing to read\n"); - break; - case RS_ERR_OVERFLOW: - printf("RS232 overflow\n"); - break; - } - -} -/*-----------------------------------------------------------------------------------*/ -/* - * rs232dev_send(): - * - * Sends the packet in the uip_buf and uip_appdata buffers. The first - * 40 bytes of the packet (the IP and TCP headers) are read from the - * uip_buf buffer, and the following bytes (the application data) are - * read from the uip_appdata buffer. - * - */ -/*-----------------------------------------------------------------------------------*/ -void -rs232dev_send(void) -{ - u16_t i; - u8_t *ptr; - u8_t c; - - SIO_SEND(SLIP_END); - - ptr = &uip_buf[UIP_LLH_LEN]; - for(i = 0; i < uip_len; ++i) { - if(i == UIP_TCPIP_HLEN) { - ptr = uip_appdata; - } - c = *ptr++; - switch(c) { - case SLIP_END: - SIO_SEND(SLIP_ESC); - SIO_SEND(SLIP_ESC_END); - break; - case SLIP_ESC: - SIO_SEND(SLIP_ESC); - SIO_SEND(SLIP_ESC_ESC); - break; - default: - SIO_SEND(c); - break; - } - } - SIO_SEND(SLIP_END); -} -/*-----------------------------------------------------------------------------------*/ -/* - * rs232dev_poll(): - * - * Read all avaliable bytes from the RS232 interface into the slip_buf - * buffer. If no more bytes are avaliable, it returns with 0 to - * indicate that no packet was immediately ready. When a full packet - * has been read into the buffer, the packet is copied into the - * uip_buf buffer and the length of the packet is returned. - * - */ -/*-----------------------------------------------------------------------------------*/ -u16_t -rs232dev_poll(void) -{ - u8_t c; - static u8_t lastc; - - while(SIO_POLL(c)) { - /* printf("c %x\n", c);*/ - switch(c) { - case SLIP_ESC: - lastc = c; - break; - - case SLIP_END: - lastc = c; - /* End marker found, we copy our input buffer to the uip_buf - buffer and return the size of the packet we copied. */ - memcpy(&uip_buf[UIP_LLH_LEN], slip_buf, len); - tmplen = len; - len = 0; - return tmplen; - - default: - if(lastc == SLIP_ESC) { - lastc = c; - /* Previous read byte was an escape byte, so this byte will be - interpreted differently from others. */ - switch(c) { - case SLIP_ESC_END: - c = SLIP_END; - break; - case SLIP_ESC_ESC: - c = SLIP_ESC; - break; - } - } else { - lastc = c; - } - - - slip_buf[len] = c; - ++len; - - if(len > MAX_SIZE) { - len = 0; - } - - break; - } - } - return 0; -} -/*-----------------------------------------------------------------------------------*/ -/* - * rs232dev_init(): - * - * Initializes the RS232 device and sets the parameters of the device. - * - */ -/*-----------------------------------------------------------------------------------*/ -void -rs232dev_init(void) -{ - char err; - - err = rs232_init(0); - rs232_err(err); - err = rs232_params(RS_BAUD_9600 | RS_BITS_8 | RS_STOP_1, RS_PAR_NONE); - rs232_err(err); - - len = 0; - - return; -} -/*-----------------------------------------------------------------------------------*/ - diff --git a/backyard/platform/c64/net/rs232silversurfer.S b/backyard/platform/c64/net/rs232silversurfer.S deleted file mode 100644 index 89bbf9db9..000000000 --- a/backyard/platform/c64/net/rs232silversurfer.S +++ /dev/null @@ -1,329 +0,0 @@ - ;; The following code is written and is copyrighted by - ;; Groepaz/Hitmen - - ;; Small changes by Adam Dunkels (renamed ss232 -> rs232) - -;---------------------------------------------------------------------------------------------- -; silver surfer polling mode driver for cc65 -; - work from here to create a full featured driver with interupts. -; gpz fixed 20020828: fatal bug fixed in _rs232_params -;---------------------------------------------------------------------------------------------- - -rs16550base = $de08 - -fifo_rxd = rs16550base+$00 ;8 (r) -fifo_txd = rs16550base+$00 ;8 (w) - -fifo_dll = rs16550base+$00 ;8 (r/w) -fifo_dlm = rs16550base+$01 ;9 (r/w) - -fifo_ier = rs16550base+$01 ;9 - -fifo_fcr = rs16550base+$02 ;a (w) -fifo_iir = rs16550base+$02 ;a (r) -fifo_lcr = rs16550base+$03 ;b -fifo_mcr = rs16550base+$04 ;c -fifo_lsr = rs16550base+$05 ;d -fifo_msr = rs16550base+$06 ;e (r) -fifo_scratch = rs16550base+$07 ;f (r/w) - - - - .export _rs232_init - .export _rs232_done - .export _rs232_params - .export _rs232_put - .export _rs232_get - - .importzp ptr1, ptr2 - .import popa, popax - -;---------------------------------------------------------------------------------------------- -; Error codes. Beware: The codes must match the codes in the C header file - -ErrNotInitialized = $01 -ErrBaudTooFast = $02 -ErrBaudNotAvail = $03 -ErrNoData = $04 -ErrOverflow = $05 - -;---------------------------------------------------------------------------------------------- -;unsigned char __fastcall__ rs232_init (char hacked); -;/* Initialize the serial port, install the interrupt handler. The parameter -; * has no effect for now and should be set to 0. -; */ -;---------------------------------------------------------------------------------------------- - - .code - -_rs232_init: - ; enable ssurfer-port - lda $de01 - ora #$01 - sta $de01 - - ; disable nmi's from ssurfer - lda #%00000000 - sta fifo_ier - - ; activate dtr - lda #%00000001 - sta fifo_mcr - - lda #$00 ; ok - tax - rts - -;---------------------------------------------------------------------------------------------- -;unsigned char __fastcall__ rs232_done (void); -;/* Close the port, deinstall the interrupt hander. You MUST call this function -; * before terminating the program, otherwise the machine may crash later. If -; * in doubt, install an exit handler using atexit(). The function will do -; * nothing, if it was already called. -; */ -;---------------------------------------------------------------------------------------------- - -_rs232_done: - ; disable nmi's from ssurfer - lda #%00000000 - sta fifo_ier - - ; deactivate dtr - sta fifo_mcr - - ; disable ssurfer-port - lda $de01 - and #$fe - sta $de01 - - lda #$00 ; ok - tax - rts - -;---------------------------------------------------------------------------------------------- -;unsigned char __fastcall__ rs232_params (unsigned char params, unsigned char parity); -;/* Set the port parameters. Use a combination of the #defined values above. */ -;---------------------------------------------------------------------------------------------- - - .data - -_rs232_baudrates: - - .word (7372800 / ( 50 * 16)) - .word (7372800 / ( 110 * 16)) - .word (7372800 / ( 269 * 8)) - .word (7372800 / ( 300 * 16)) - .word (7372800 / ( 600 * 16)) - .word (7372800 / ( 1200 * 16)) - .word (7372800 / ( 2400 * 16)) - .word (7372800 / ( 4800 * 16)) - .word (7372800 / ( 9600 * 16)) - .word (7372800 / ( 19200 * 16)) - .word (7372800 / ( 38400 * 16)) - .word (7372800 / ( 57600 * 16)) - .word (7372800 / ( 115200 * 16)) - .word (7372800 / ( 230400 * 16)) - - .bss - -_rs232_tmp1: - .res 1 - - .code - -_rs232_params: - - sta _rs232_tmp1 ; save parity - - ; reset fifo - lda #%10000111 - sta fifo_fcr - - ; that delay thing really needed ?! - ; (original datasheet mentions a delay here) - ; ldy #$00 - ; dey - ; bny *-1 - - ; set dlab - lda #%10000011 ; we assmume 8n1 - sta fifo_lcr - - jsr popa - tay ; save param - - ; set baudrate - clc - lsr a - lsr a - lsr a - lsr a - asl a - tax - lda _rs232_baudrates,x - sta fifo_dll - lda _rs232_baudrates+1,x - sta fifo_dlm - - tya ; param - and #$0f - ora _rs232_tmp1 ; parity - - ; reset dlab - sta fifo_lcr - - lda #$00 ; ok - tax - rts - -;---------------------------------------------------------------------------------------------- -; check if byte available, returns AKKU=0 if none - -ss_getlsr: - lda fifo_lsr - and #$01 - rts - -;---------------------------------------------------------------------------------------------- -;unsigned char __fastcall__ rs232_get (char* b); -;/* Get a character from the serial port. If no characters are available, the -; * function will return RS_ERR_NO_DATA, so this is not a fatal error. -; */ -;---------------------------------------------------------------------------------------------- -; get byte (non blocking, returns byte in A or CARRY=1 - error) - -_rs232_get: - sta ptr1 - stx ptr1+1 - - jsr ss_getlsr ; check if byte available -; bne sk32 ; yes - bne sk33 ; yes - - ; activate rts - lda #%00000011 - sta fifo_mcr -sk32: - - ; deactivate rts -; lda #%00000001 -; sta fifo_mcr - - jsr ss_getlsr ; check if byte available - bne sk33 ; yes - - ; deactivate rts - lda #%00000001 - sta fifo_mcr - - lda #ErrNoData ; no data - ldx #0 - rts -sk33: - ; deactivate rts - lda #%00000001 - sta fifo_mcr - - ; get byte - ldy #$00 - lda fifo_rxd - sta (ptr1),y - - lda #0 ; ok - tax - rts - -;---------------------------------------------------------------------------------------------- -;unsigned char __fastcall__ rs232_put (char b); -;/* Send a character via the serial port. There is a transmit buffer, but -; * transmitting is not done via interrupt. The function returns -; * RS_ERR_OVERFLOW if there is no space left in the transmit buffer. -; */ -;---------------------------------------------------------------------------------------------- - -_rs232_put: - tax - ; transmit buf ready? - lda fifo_lsr - and #%00100000 - bne @sk1 -@sk2: - lda #ErrOverflow ; overflow - ldx #$00 - rts -@sk1: - ; reciever ready? - lda fifo_msr - and #%00010000 - beq @sk2 - - stx fifo_txd - - lda #$00 ; ok - tax - rts - -;---------------------------------------------------------------------------------------------- -;unsigned char __fastcall__ rs232_pause (void); -;/* Assert flow control and disable interrupts. */ -;---------------------------------------------------------------------------------------------- - -_rs232_pause: - ; activate rts - lda #%00000011 - sta fifo_mcr - - lda #$00 ; ok - tax - rts - -;---------------------------------------------------------------------------------------------- -;unsigned char __fastcall__ rs232_unpause (void); -;/* Re-enable interrupts and release flow control */ -;---------------------------------------------------------------------------------------------- - -_rs232_unpause: - ; deactivate rts - lda #%00000001 - sta fifo_mcr - - lda #$00 ; ok - tax - rts - -;---------------------------------------------------------------------------------------------- -;unsigned char __fastcall__ rs232_status (unsigned char* status, -; unsigned char* errors); -;/* Return the serial port status. */ -;---------------------------------------------------------------------------------------------- - -_rs232_status: - sta ptr2 - stx ptr2+1 - jsr popax - sta ptr1 - stx ptr1+1 - - ldy #$00 - - ; Get status - lda fifo_iir - and #%00000001 - sta _rs232_tmp1 - lda fifo_msr - lsr a - and #%01010000 - ora _rs232_tmp1 - sta _rs232_tmp1 - lda fifo_lsr - and #%00101110 - ora _rs232_tmp1 - sta (ptr1),y - - ; Get errors - lda #$00 ; ok - sta (ptr2),y - - lda #$00 ; ok - tax - rts diff --git a/backyard/platform/c64/net/rs232silversurfer.h b/backyard/platform/c64/net/rs232silversurfer.h deleted file mode 100644 index 9e9a49ffe..000000000 --- a/backyard/platform/c64/net/rs232silversurfer.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (c) 2003, Groepaz/Hitmen. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * rs232silversurfer.h - * - * Groepaz/Hitmen, 16.12.2001 - * - * This defines for the SilverSurver (16c550 UART) what Ullrichs rs232 module - * defines for the Swithlink/Turbo232 - * - * this driver operates in polling mode only atm ! - * - */ - -#ifndef _RS232silversurfer_H -#define _RS232silversurfer_H - -/*****************************************************************************/ -/* Data */ -/*****************************************************************************/ - -/* Baudrate settings */ -#define RS_BAUD_50 0x00 -#define RS_BAUD_110 0x10 -#define RS_BAUD_134_5 0x20 -#define RS_BAUD_300 0x30 -#define RS_BAUD_600 0x40 -#define RS_BAUD_1200 0x50 -#define RS_BAUD_2400 0x60 -#define RS_BAUD_4800 0x70 -#define RS_BAUD_9600 0x80 -#define RS_BAUD_19200 0x90 -#define RS_BAUD_38400 0xa0 -#define RS_BAUD_57600 0xb0 -#define RS_BAUD_115200 0xc0 -#define RS_BAUD_230400 0xd0 - -/* Stop bit settings */ -#define RS_STOP_1 0x00 -#define RS_STOP_2 0x04 - -/* Data bit settings */ -#define RS_BITS_5 0x00 -#define RS_BITS_6 0x01 -#define RS_BITS_7 0x02 -#define RS_BITS_8 0x03 - -/* Parity settings */ -#define RS_PAR_NONE 0x00 -#define RS_PAR_ODD 0x28 -#define RS_PAR_EVEN 0x38 -#define RS_PAR_MARK 0x48 -#define RS_PAR_SPACE 0x48 - -/* Bit masks to mask out things from the status returned by rs232_status */ -#define RS_STATUS_IRQ 0x01 /* (iir) IRQ condition */ -#define RS_STATUS_OVERRUN 0x02 /* (lsr) Overrun error */ -#define RS_STATUS_PE 0x04 /* (lsr) Parity error */ -#define RS_STATUS_FE 0x08 /* (lsr) Framing error */ -#define RS_STATUS_DSR 0x10 /* (msr>>1) NOT data set ready */ -#define RS_STATUS_THRE 0x20 /* (lsr) Transmit holding reg. empty */ -#define RS_STATUS_DCD 0x40 /* (msr>>1) NOT data carrier detect */ -#define RS_STATUS_RDRF 0x80 /* Receiver data register full */ - -/* Error codes returned by all functions */ -#define RS_ERR_OK 0x00 /* Not an error - relax */ -#define RS_ERR_NOT_INITIALIZED 0x01 /* Module not initialized */ -#define RS_ERR_BAUD_TOO_FAST 0x02 /* Cannot handle baud rate */ -#define RS_ERR_BAUD_NOT_AVAIL 0x03 /* Baud rate not available */ -#define RS_ERR_NO_DATA 0x04 /* Nothing to read */ -#define RS_ERR_OVERFLOW 0x05 /* No room in send buffer */ - -/*****************************************************************************/ -/* Code */ -/*****************************************************************************/ - -unsigned char __fastcall__ rs232_init (char hacked); -/* Initialize the serial port, install the interrupt handler. The parameter - * has no effect for now and should be set to 0. - */ - -unsigned char __fastcall__ rs232_params (unsigned char params, unsigned char parity); -/* Set the port parameters. Use a combination of the #defined values above. */ - -unsigned char __fastcall__ rs232_done (void); -/* Close the port, deinstall the interrupt hander. You MUST call this function - * before terminating the program, otherwise the machine may crash later. If - * in doubt, install an exit handler using atexit(). The function will do - * nothing, if it was already called. - */ - -unsigned char __fastcall__ rs232_get (char* b); -/* Get a character from the serial port. If no characters are available, the - * function will return RS_ERR_NO_DATA, so this is not a fatal error. - */ - -unsigned char __fastcall__ rs232_put (char b); -/* Send a character via the serial port. There is a transmit buffer, but - * transmitting is not done via interrupt. The function returns - * RS_ERR_OVERFLOW if there is no space left in the transmit buffer. - */ - -unsigned char __fastcall__ rs232_pause (void); -/* Assert flow control and disable interrupts. */ - -unsigned char __fastcall__ rs232_unpause (void); -/* Re-enable interrupts and release flow control */ - -unsigned char __fastcall__ rs232_status (unsigned char* status, - unsigned char* errors); -/* Return the serial port status. */ - -/* End of rs232silversurfer.h */ -#endif - - - diff --git a/backyard/platform/c64/net/tfe-drv-asm.S b/backyard/platform/c64/net/tfe-drv-asm.S deleted file mode 100644 index d31c32010..000000000 --- a/backyard/platform/c64/net/tfe-drv-asm.S +++ /dev/null @@ -1,17 +0,0 @@ - -;--------------------------------------------------------------------- - .export _cs8900a_rxtxreg - .export _cs8900a_txcmd - .export _cs8900a_txlen - .export _cs8900a_packetpp - .export _cs8900a_ppdata - - -;--------------------------------------------------------------------- - - _cs8900a_rxtxreg = $de00 - _cs8900a_txcmd = $de04 - _cs8900a_txlen = $de06 - _cs8900a_packetpp = $de0a - _cs8900a_ppdata = $de0c - diff --git a/backyard/platform/c64/net/tfe-drv.c b/backyard/platform/c64/net/tfe-drv.c deleted file mode 100644 index bc7a9832d..000000000 --- a/backyard/platform/c64/net/tfe-drv.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2001-2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the uIP TCP/IP stack. - * - * $Id: tfe-drv.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - * - */ - -#include "contiki-net.h" -#include "cs8900a.h" - -static u8_t output(void); - -static const struct uip_eth_addr addr = - {{0x00,0x00,0x00,0x64,0x64,0x64}}; - -SERVICE(tfe_drv_service, packet_service, { output };); - -PROCESS(tfe_drv_process, "TFE driver"); - -/*---------------------------------------------------------------------------*/ -static u8_t -output(void) -{ - uip_arp_out(); - cs8900a_send(); - - return 0; -} -/*---------------------------------------------------------------------------*/ -static void -pollhandler(void) -{ -#define BUF ((struct uip_eth_hdr *)&uip_buf[0]) - - /* Poll Ethernet device to see if there is a frame avaliable. */ - uip_len = cs8900a_poll(); - if(uip_len > 0) { - /* A frame was avaliable (and is now read into the uip_buf), so - we process it. */ - if(BUF->type == UIP_HTONS(UIP_ETHTYPE_IP)) { - uip_arp_ipin(); - uip_len -= sizeof(struct uip_eth_hdr); - tcpip_input(); - } else if(BUF->type == UIP_HTONS(UIP_ETHTYPE_ARP)) { - uip_arp_arpin(); - /* If the above function invocation resulted in data that - should be sent out on the network, the global variable - uip_len is set to a value > 0. */ - if(uip_len > 0) { - cs8900a_send(); - } - } - } - -} -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(tfe_drv_process, ev, data) -{ - PROCESS_POLLHANDLER(pollhandler()); - - PROCESS_BEGIN(); - - - uip_setethaddr(addr); - - cs8900a_init(); - - SERVICE_REGISTER(tfe_drv_service); - - process_poll(&tfe_drv_process); - - while(1) { - PROCESS_YIELD(); - } - - PROCESS_END(); -} - - -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/net/tfe-dsc.c b/backyard/platform/c64/net/tfe-dsc.c deleted file mode 100644 index c4e9b36b6..000000000 --- a/backyard/platform/c64/net/tfe-dsc.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: tfe-dsc.c,v 1.2 2007/09/06 01:36:12 matsutsuka Exp $ - * - */ - -#include "sys/dsc.h" - -/*-----------------------------------------------------------------------------------*/ -#if CTK_CONF_ICON_BITMAPS -static unsigned char tfeicon_bitmap[3*3*8] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -}; -#endif /* CTK_CONF_ICON_BITMAPS */ - -#if CTK_CONF_ICON_TEXTMAPS -static char tfeicon_textmap[9] = { - 'T', 'C', 'P', - '/', 'I', 'P', - 'T', 'F', 'E' -}; -#endif /* CTK_CONF_ICON_TEXTMAPS */ - -#if CTK_CONF_ICONS -static struct ctk_icon tfe_icon = - {CTK_ICON("TFE driver", tfeicon_bitmap, tfeicon_textmap)}; -#endif /* CTK_CONF_ICONS */ -/*-----------------------------------------------------------------------------------*/ -DSC(tfe_dsc, - "The Final Ethernet driver", - "tfe.drv", - tfe_init, - &tfe_icon); -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/c64/net/tfe-dump-drv.c b/backyard/platform/c64/net/tfe-dump-drv.c deleted file mode 100644 index 9710a8b6c..000000000 --- a/backyard/platform/c64/net/tfe-dump-drv.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2001-2004, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the uIP TCP/IP stack. - * - * $Id: tfe-dump-drv.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - * - */ - -#include "contiki-net.h" -#include "cs8900a.h" - -static void output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen); - -/* 00:0E:3A is the OUI of Cirrus Logic, 64:64:64 just means C64 */ -static const struct uip_eth_addr addr = - {{0x00,0x0e,0x3a,0x64,0x64,0x64}}; - -static const struct packet_service_state state = - { - PACKET_SERVICE_VERSION, - output - }; - -EK_EVENTHANDLER(eventhandler, ev, data); -EK_POLLHANDLER(pollhandler); -EK_PROCESS(proc, PACKET_SERVICE_NAME ": TFE", EK_PRIO_NORMAL, - eventhandler, pollhandler, (void *)&state); - -#include "tcpdump.h" -#include -#include "ctk/ctk.h" - -#define DUMP_WIDTH 38 -#define DUMP_HEIGHT 20 -static struct ctk_window window; -static char dump[DUMP_WIDTH * DUMP_HEIGHT]; -static struct ctk_label dumplabel = - {CTK_LABEL(0, 0, DUMP_WIDTH, DUMP_HEIGHT, dump)}; -static void -dump_packet(void) -{ - memcpy(dump, &dump[DUMP_WIDTH], DUMP_WIDTH * (DUMP_HEIGHT - 1)); - tcpdump_print(&dump[DUMP_WIDTH * (DUMP_HEIGHT - 1)], DUMP_WIDTH); - CTK_WIDGET_REDRAW(&dumplabel); -} -/*---------------------------------------------------------------------------*/ -LOADER_INIT_FUNC(tfe_dump_drv_init, arg) -{ - arg_free(arg); - ek_service_start(PACKET_SERVICE_NAME, &proc); -} -/*---------------------------------------------------------------------------*/ -static void -output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen) -{ - uip_arp_out(); - cs8900a_send(); - dump_packet(); -} -/*---------------------------------------------------------------------------*/ - -EK_EVENTHANDLER(eventhandler, ev, data) -{ - switch(ev) { - case EK_EVENT_INIT: - case EK_EVENT_REPLACE: - ctk_window_new(&window, DUMP_WIDTH, DUMP_HEIGHT, "TFE dump"); - CTK_WIDGET_ADD(&window, &dumplabel); - ctk_window_open(&window); - uip_setethaddr(addr); - cs8900a_init(); - break; - case EK_EVENT_REQUEST_REPLACE: - ctk_window_close(&window); - ek_replace((struct ek_proc *)data, NULL); - LOADER_UNLOAD(); - break; - case EK_EVENT_REQUEST_EXIT: - ctk_window_close(&window); - ek_exit(); - LOADER_UNLOAD(); - break; - default: - break; - } -} - -/*---------------------------------------------------------------------------*/ -EK_POLLHANDLER(pollhandler) -{ -#define BUF ((struct uip_eth_hdr *)&uip_buf[0]) - - /* Poll Ethernet device to see if there is a frame avaliable. */ - uip_len = cs8900a_poll(); - if(uip_len > 0) { - dump_packet(); - /* A frame was avaliable (and is now read into the uip_buf), so - we process it. */ - if(BUF->type == UIP_HTONS(UIP_ETHTYPE_IP)) { - uip_arp_ipin(); - uip_len -= sizeof(struct uip_eth_hdr); - tcpip_input(); - } else if(BUF->type == UIP_HTONS(UIP_ETHTYPE_ARP)) { - uip_arp_arpin(); - /* If the above function invocation resulted in data that - should be sent out on the network, the global variable - uip_len is set to a value > 0. */ - if(uip_len > 0) { - cs8900a_send(); - } - } - } - -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/esb/Makefile b/backyard/platform/esb/Makefile deleted file mode 100644 index d1944cc1a..000000000 --- a/backyard/platform/esb/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# $Id: Makefile,v 1.1 2008/07/08 11:21:53 nifi Exp $ - -all: core -upload: core core.u - -core: - $(MAKE) core.firmware && \ - $(MAKE) core.firmware && \ - $(MAKE) core.firmware - -CONTIKI=../.. -TARGET=esb - -blinker.cm: blinker.co blinker2.co - -ifdef ENABLE_BACNET -APPS += bacnet -APPDIRS += apps/bacnet -endif - -include $(CONTIKI)/Makefile.include diff --git a/backyard/platform/gtk/Makefile b/backyard/platform/gtk/Makefile deleted file mode 100644 index fb7f40a89..000000000 --- a/backyard/platform/gtk/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (c) 2002-2004, Adam Dunkels. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS -# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# This file is part of the Contiki desktop environment -# -# $Id: Makefile,v 1.1 2008/01/05 21:08:26 oliverschmidt Exp $ -# - -all: contiki-main - -CONTIKI=../.. -APPS=program-handler calc dhcp webbrowser editor ftp process-list shell irc netconf about cmdd -TARGET=gtk --include $(CONTIKI)/Makefile.include diff --git a/backyard/platform/gtk/Makefile.gtk b/backyard/platform/gtk/Makefile.gtk deleted file mode 100644 index 7f678477a..000000000 --- a/backyard/platform/gtk/Makefile.gtk +++ /dev/null @@ -1,29 +0,0 @@ -ifndef CONTIKI - $(error CONTIKI not defined! You must specify where CONTIKI resides!) -endif - -APPS+=process-list webserver program-handler irc calc webbrowser email \ - shell netconf dhcp ftp - -CONTIKI_TARGET_DIRS = . ctk net -CONTIKI_TARGET_MAIN = ${addprefix $(OBJECTDIR)/,contiki-main.o} - -CTKGTK = $(CTK) ctk-gtksim.c ctk-draw.c ctk-gtksim-service.c libconio.c \ - ctk-gtksim-draw.c - -CONTIKI_TARGET_SOURCEFILES = tapdev-drv.c tapdev.c contiki-main.c \ - dlloader.c clock.c $(CTK) $(CTKGTK) \ - cfs-posix.c cfs-posix-dir.c - -CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES) - -.SUFFIXES: - -### Define the CPU directory -CONTIKI_CPU=$(CONTIKI)/cpu/native -include $(CONTIKI_CPU)/Makefile.native - -### Compiler definitions -CFLAGS += -DCTK_GTKSIM_SERVICE_PNGDIR=\"$(CONTIKI)/platform/gtk\" \ - `pkg-config --cflags gtk+-2.0` -TARGET_LIBFILES = `pkg-config --libs gtk+-2.0` diff --git a/backyard/platform/gtk/background.png b/backyard/platform/gtk/background.png deleted file mode 100644 index bd53886ba2dcf61d2f72c8e73ebc0a8af9bdb016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95975 zcmeAS@N?(olHy`uVBq!ia0y~yU}0cjU}oT8Vqjn}z0nlKz`(#+;1OBOz`!j8!i<;h z*8O2%V2CVnjVK99ELSKf%1_J8NmVGREJ#&w3qnmHLD5` z3UzPx{Kr+@lMSgaVxutqb|D&^Qr-ak2+vFJ@{K*L;nxQ%o8 zX=r0~{0cb{fq<{C>rIdUkExsT^lqFY`_gI?J}dF0?|<$rwFAZThsYZ?pJcyYnDyWP z<0b#A>6;lothM;Xd}rz5J9}foPxpiJ+dJ0T?o99E_}Bj2UtJkpD9!jFqw{UB(8H@L z7x#X;-?h8m9h5?A*!PvnW$IqP`#N#`C%In#tIu;;8WtzI?B@?Z{r~ExWKe>tKKN{6 z!|vtJ-_ew45$q?!Z~t3`>Hnh z9x$4>@xUn=k;CElmtK`(YQJA$AIEbzp!Xri4Ydb$F}iSLp+4Tm8R7Pv%OS|OV@F}; z%j>W1g4_hk9X~i`u{J!OvFjwFsJi$02f1OkX~_>WyBuO z_v*WuV7Zd*@VgsNSUo&%YTj-Cs+PdD_#en*Py#%B@y0>kjQNcHFMosL2xMv7XTvS~ z8ag_y>=)?&yfgd4a_u7^VUUg=X*T9^Q}1})T>RJnqw71n8*UHtkH_-80h?rc@U8cs zDXTta?Rl#AXH|bhoP7A||EK4&>|a#bK6?d0(YpO~2>!A=?E~Bp!Ze zV3laVv15+70-xGONmu~gF5JOjz;ik>dEy%GyeeU*{NHW-O`IV`wp)@;Te6jOo~i!- zQp-?+C%$QS&u8|PukxSU{(14fbo#dq;(EUq>Nnk9!yv&E-=8nr%FA}xJ;Ax_V8Vj~ zTnuWKl051MtY(2-);78Dw`fEBV}JMQ--Ewamivar@BJI~+Ejuk{ZW~jL7URP(tG=* z>ekBT=`%?1l)KnnxD(4_1PLbb84L+KSn6_%FXf9}PB56$8GkvWjw|eZoAshf{su$Q z=EV4j`B1fLdHb0@tey1z;Nn6Ti-l^+GuKfcmy zd4K&`EnoQWxbl_ee22ej@U*=@aFtCQ5+!ZQ7c?0zZ1%Q~Wob?{kEk{SJN?7gjC;%i zxzja6jhfRA`xf?jMrYT7s#vQV*)f|wo=w=nS7pYiUh;od?5|lnjS7COVaOC(0}8Nn zjUOi$C$O(LdE+eig;=w{5XOn7UD zpFhbk|I~T^gB>eD3F95d(#*m+=O*QPFTcq1*tpHOaI-DLHCu2Z*kSa}H2CE5_zNR+tS5^Nmx#)lP|J~Q^hhteAc3)Y4@B)kRRwD_X zHts{;WTf`-oZqW5`&u!>w=VVXk9P~oi|CqE>o)l*eT?1{7`V{$`-`lfYySU!yYl_g zzzf^!*FAl2?fUiSRXaUnlHG{j|6GCu_Rt=!&+)8}nXF`{fz8q+96A%d6*l ze~P?&bT$2SUDUhS+BuaTSJe`DUmTQ7U$>xe_mB4;)?aS+iSG6`%#Vs~<5tS|E}tL8 z!*=-UhwQ~(GU1cgp1hwm>(kd4KLqYPzjx^Vw>vB{p9FWjT+Z?I?(OZ%UQLqv$0zw< z^D=#T{eR|(?ia6s%I)fdK0fOkbYD9~r!>U$-0@}TIN5Gu_h@l(_x*Km)g+@o)$Ch* zb?>FWQucq{qGvBCT%A5O)8Na)tXXSTKYf1v6Tkg4wpxA1)b*m19{XHOd35lj$o{;G#^}W@M^~!)9+~_ zyp6LyWHW!ddMh;kTbbcMO|A*M-!gu&Hl zpkUIM?bE(zh`38`_+=u&^ZVhWBkwvsz1zg@(DDDWtBuNhckKncKTo!ve^q6Qc)D`z z&HKC=TLS)f@ZW8&_&M|E^!=$**1ss&P^<7`$EIuF7;1QZn!wTfNYCZ}?$f_ps~Nh| z?62FqFJ2iVBLBp^WIAii*3SEUYRnQmY|et>bJ**7?>x%NRyq1R{CA)Fj{4lL|Ix4C z3NR*AZ`jwA`>^0wG25)3b!Piir<0^B=uXE$Z*nDZM^hZRg%wxv$mkW(du9QM!`8bRr`0hY zd21W~Rlf2(&|da$caM&{xbaP%d(ZR2DoSp>yDk570bBFK*9YH*{w~?a!`85F*^MWC zfAoC+2LJpMvTHdP!|{hrXJ0o(YNhpCCkg!Ud~G4gV3sZTZc|9Qfkd5{_BiWy2(e4y zW$Jgtw;wfUJe**VbMSb&#^FqhzUMVIw_?I84$V8S6f39}|FmYW?d?xO_b)CJj&ZvB z>*iVB7sqDpa(yDpS(~!@onYoxvo*4pe|gNk5qOQQIkEhY2m5|+!}pWU?>%)i^Ig<; zEtlwTwR;6$b#I%l{^f1lmF{(x=b!MquFg;Wdqb{a_SEnjDPcBTe(Nv#$6c?O)4SaE zg(8p1bNTih0|_4W2f@#;O1x{m%qMbNuK7~hj~z;H-c4Gvoe3-m@ap>byY@iZ4hQ)pMhHse*4p*)>WZQeF@OYNt zu1!aCA5Z?BHs{14Nr|nuCcKpPl3%>EE~0yP=&Gk&5^aj%)1L3k?|x?Pr1@o8#i>W? zW|ddVKbIssPI6P`SnqmR@!;>AuQ5%pn}sLaZT+<1Vv5FjjvTM=detiL>Na#I#=m*G zK6aAfPu~4B^(@!6TD|JsTdk0X2{-4w zRneDQdo3jIQ%F_*`H8c?6nOIQlD79ET5{P%hLs_I>n`xl-m z2u#$`cd4ln5R^K+_V`5IRC5WQ??(#i!8oqja?4O4YXRkfVXkBS{OW0@UtUdQjrmu5ecI)Wr6OIpF z+0XC^x2--^wm-^zf!F5wi*3!`ZE}phd4GyGqjlK>zV}w{C!&7k6+F!Y_bwI}nm($V z_~&%+=HNLqe%|~eAFk+r+la$PE9Sxyf9pdU=a2P$GMq9Iq}%FS4!!NR___O2 z8)x2SpGQHHe+$XJU3rxu^SRcw(5N*UmfrJUd2HMHdGm(%NuX?J6u5B8;|tA;EUxCS z{yeo=D}DN;q8jIGF3&GrpZZ+ttQ^CP-pVh1aa-~nqRlmL%QZyQ>~fX;v2@PvH;gOH zq@T-Pdz*}-oM1k zr_fA|UDdE*_xhfP3ubu=X_+l3mNBWVwKf4&>JM4&ME!YiV`Uw`gZbPaSL9sRaTv*8 zzJA`A^VX?OYd-U9&O7zPW*Y8Q^&j4+>>Ivn>lzKmGEQV);z=R$fuB zXThbjuIx>+_I!KfUPAns=-#*0OVE+N3*=$-E!&fAFEFv zj*9t$^5u)e?`oDgFRsd-WVSDtl{KXZQjqu|<~*Y~}T zi(B%pZ`JgjvmYs$JUGQEdNt+LxB4xt*N<L)|=mb=wAo96d7oADN(TBZHN;OypwYg+CH{;6MmcGtmzV3}8{&$2FGzWV9%l+fP7 z%J?VGXG_m{^X{oz^nQ~g&-N|&!z);Rn|Z_ZmR-NQX4Gv?+sNT7weoylUWwp?meA8- zyY@d$Q?Q&Dw)Ee$H5ZglMb&9L1tUtA`FU-#eg zmgoMt$M$w_dJw$Z;JerMufOH~#_rgxW?G|sKK)~gggNuGgY&H&!&am32N9e(pkwDz^XAPuqR%pKpIzuwU)G`~32aw*QpgzmI3k&^;g+u#Vx2toU`= z2;(VFc33Q2*=4fUC9>n^oU`WQ>p$oowM_ioelXz&)1A~QJ08UCRy(mdab4JLSH}&H z?HYGmEZJtHj=!1)VCwe?v!QZzD~WEf@Ri4mD|PB?|bmLJHO=hys`S`PWA^cnD_5m z`*+)EhPB<&mG@rtB{H z(cMoJy)J~o(bA1PSorR2jk(B{aS8_^3Ch%Oo zYReF#@@rwtX4TUiUrZD4pH48S;qr2=*mT6#efgtb2T~(@bD8$3MXjA%Y-o`YQf|$$ z#*}Rxq!OKr=RdnW2~CZXZ4(_ZXbrLk|f;s2{u8Aqpnzaeq%_{F!cUVIjA zsVtuUqo2)u|MQ>veJif&b|}vKvqap_`{>fsjq~Ibo*3Wj|J>*HUEf3ej>K$Xp1)~H zdATlfuYVnTe%j08XiZ+cX4cn}2ba#CogyBu6Ey2p%$@!03D!H4;^yXu79x8WURZuK`^JUHa~2$HUg$2D+M#i?psKvKj)hbI{^`@2U+q1v{&6Uu{RHf#Cz_X+H0NXb?=h$uNX^7o;GWz#XHZ$W|u6^%9@{j|LeWR zjL2;j*$V}=zUPU_n^tCQN&J>!^7en&F4vRmg#~wg-E6j-@$KpkzMuQDR_rZ&Uvn|S zb?4Ki>ko(9f0%mF{J_?EDia<*ey8($i>B|{YHzb|tG4%vPLiEkw(VEqi^IKb7v?*a z+IT+uzW8ppv#&(PRvizOX<_;Hw|z5qZ5J%pUTbyfS7gXcmF0^?!WbO>l+`kQ_N-csGzwQ6De*N1GrxNR{8WhmSlmQ_jB=TxFXju`_ZOqhA-RZo$9+Da_Mb! z<+=+Zx%>?W6D~MNe6*N)U+-igi`Dig6HQCzq!!(`x%%s!x3JKS$y+y3nNvK@imW;Mco2BpStI1=mfizd`hu=3o@ zcVSoU>WFW;AGfGo3FL3xjlpLW4d=b~jgYhQfJK7Cc?`_yRJM`h2|4WHiHVLk8k`Ntm@Jk^R?lj(IU z>fVz*ty@5tHyZ1dG8{*&8lUq7@i`2MNRE8zZVm(P#4{fOCFw(;Wfz?0F* zJAXYnq#Z6X$z#&bZ~^8bJB7(JRhYfAy{4e1oqB+F#lAvExs{HH(;r z*n+L^i^^lx-k0QwF8Kbf=F^XBv9Z;;QqR66y^UM6k8_K)ae01w__i4Z>=tW(UHN`1 zlEEVWeBoC9g71ChEPSgbPu?zGTzNrf+r0WSXH(5vrFq)=A9H=4vL{QcfAXE(wNm$M zV`sj6Uw%Y6Zt<6i!ABdPGiZoEwU3+ne8JY_m|lfCE&Hn_ ztLK&VZEL%-LUq+^(O;kLiR=%%xBG#6+x^pzqF?{_$v2zDyY)OT9XBL~6%U$U$KhDZodr|TH#b*xg)l**< zGqYP|K55z!wR=;M>scD} zA8%j#YRXIH8=D?&QC+KiNPZu?!%czR{I0tmFl^^uXSSgHiTXswvhAsB-dXQYxNY#C zNBVU2!Tc-(mzdl;c2@tTIlZRp&Iz0Eew(4(g4;`CqA$0J(?*_m6wUC+%s4%w6*k!uKhqVt)f^y<%Q2EPOO z?-*}vGOl(nSoGj|IKz}1+2a4-{q!tQ?)|;C(52E}TEJT9*VgyhJJi<5N@;w{;&(rO zxb@~omqXT%&S&XO}^_M@lPxeh0=G|J55gWh7tK$9By0tR$J3MZPHe4&a zc51_Uk>$H??*Fsy()!bT4~V{s=A3-b{=DUbw#VM7pWFXJoELk3`qe{|m`d^N_DB0?Jv=Ac@anQL z|B{ST>8nrrZoR^uDPniE@w4-ZoeUQ&44^`2)G!n~X83|I=^Xiepr( zkT`e5bx+wGHx~16;x|osYocOjJa>$o;GgL)-b$@ zSUAO~?DERuX?|9dCZBxw{sYg`YjaKu)uvu7n`2?Q`Sdjo^II8pV&&@Z(z23nH0i$m zFP7_;CU;k?=l8o@>vduMeYwX!K7aJi)Slb#@y^Ba%OBM~owong{Ix={`^6W$x;Ixh zo8z~W^WWK@E*s9e)5>si*>l4)nX?o8Zd3>S>2v=v)6Vf@zDGhe!#?Tw{Y+&6$EJMU zmbyGfs6lAu`Ez;SZ!v$6y;rJtd%xMU{|i1Fu2PIPo%)8$A=~vtU2!h|f&K@xPu*Lx z*y_0M%D0RL5_K~2FQ2V_#~1ybVaFxTkJgX4k{^q9eNO#aAQffWAbyj1!TFPU+6?70 zFRoQLQGChpQJdX7?)pd9&o}p~MsK>SGV9pS9if*CK2{k>@GxzA6MDNNdWX&ZNzT1L z3R|UiILWPRTYdFpX588-Y^H0=%+FRc>}Y(M68&M-f^VAT$tSryza9?xJl|!-%JZ>e zKf30BW#N`g?Y{qg_vxd8Wgp9O%EaFspHn=izBcOfr*%mSPlg`t+?$nC-Ew^E7P}g+ z3%h1LDE|`lBMvl~xpzbOUlCbGb@S~OEKiOtU9|sCfqkFNQRDhmOS#`admLS~AmGz3 zgY#T`S{B@_Qk(1QCSFheoM7^4&z>sbKI3v7k;nTNXxw)tP+ zyM3|37U74xHD=n1+l!w+?#J{msbV5^!LYtDx*o9yLS|R?s#G$(p$MM#$NjL?O%^vzrCrondd)s_3nQ= zg)_~YlK*ddadlVe4yk4Z`xfhVZievei1caY(^F6FyZcLixo^0%hNlfymJqWpccgIObKC#tHUsbt0p8dq+ zPTsySF_*}7%07oyd5TCk$6eNMxnjTT4%dOJY`^%QZQc>RKmXyUKUF{Y%ojM-YSn6* z=>83_F1=&FJm&Dy!(N39uddb0B;Gn0*rom6!hYBE*v(g}VtOyc@OrT}K9=2{e@8jQ zbdRQy)~?0VwW9*rEY{X-TR+ESrV6L2PRQeFvwrI6%}9JYr^3&cqa=R)v-RJqYFqAn zo%fvKj?{8p%UqxBQn!yv9%l7rW#Nm86}zE2Kl()Z)SIXK?ar;WbX={~pjl`tUF9rq zw=`pi-^A~xOf7ncN?0Gu`~DRXm5=5~dTr%!`E~TG;`MtC=ijm}3HTGb?QCayZTtrP z`JC(;RyT4c#j>uPR9&)Dv>_}eSINIDIj4W^`CT77nAhsH%I@EN#&q)XIZ>}OzAsq! z#BTkH_Q%JJj_-cd$NlTquRGi4-U<9(&sP>1c}p2fe*2I=kB=_}8C!w12My#+Imo2}Cls$Td?+dbr*Wi>o!*^vzesyoGy>RDJ z)Hm5p>o3&Jv1Brm;CNzd<7=q$B2M#edFSuPUl;e(f4^auwBcUhCI7WQ-bQmNrUV9W ztDg2LPB~}o#VPATFQ0dpc7Aj(2l?jQB|;hzhqcdiX{61`fsx+lh7UiD#eLjd!yidp;e3!|>wcyXGEc{=0H z`xnpL@nKjY_I1n8e@}dMw;vY#x@Y=_!$r#)5$bOEIj(<-V-%<&(8d! zCck@)=$q_SyK1X$$|6A`Gll;^U(tzo-4}i56fIs`%C%RY{mW>oyCv7Ga>McK;iHjj-S)n$Uu`2c?_M0k z0~7Y>j`atYC%#u)5Y7B**PXDk$1IB;OVod}eikqP|J`#=j*s)zuErRAI)7`%tatYd z`0QL|%#Aj``^+Book3)Kh}`n;Z;vf^>nT3wY1?VzD_=6 zcoIXwEusH$*~R8TFJmkD4_utx&>c6)WMga!KZE)Hyf4l%bLX3J9g9CdHJAUu-VfHZ zMb01j{+98^3zw}Y7U^9&mc#GhZZ^p>eEoy_7q_iid2aSM28Z77`qd2EMAFuGU2rHn zK24hM-PQ&1Z~U$&I^DJ0$$jzW-EZ%#?(>ygi5GU(W0MIvcK7ye(S1jk&T4tMe8cs7 zGd_n)@TJzxntbuRX1>#mDShs{H%>qFMW*w$&$so48J7F^RIgPj$m>|>swMF5!Z)Aw z<+oYR96g+wWx6ZNcgEhFZJ$J1L&}zL|JI9qvT^ILjsHZFj6>x%D{N_BRJnK4o5{UB7QP_r?21 zXN2ARQP|?JN!6#lxciCKpQ`t>-(;Emja|HO`E&j)Qr}cwm;T%&8XmFZqFlpnADi-n zv0)5-dhf5E6V5PwsueWNptm&t?(X$&cjgvN`%wG(_y=E$BtIXI!^h{|yOVV9e)r%1 zMtrN<-!^&87u~mDrO3MyeI|}2@zdD#bQ%5>-Tz_QR44dkZ~1iP$;D3R@1EcKY}OCv zNjG;%bly7~IcdAy?jXlWmK|>Mb(m{ja~;s{-y3})v3cD~@!i@1^-q4AiGKcLWvO_y z)|Y41#d*mS_EhtnGI}+&a2BhuUQLni?WN|N{FM*-Wm&#y#^~D5*Lr{TPD9-)xh~1m zzt6aBUsby%#LVWZ_?~>vy%sH*IY^{mpgt*^-T^-y$pWQ|g|txsrSGq2R{aGN<=y*V3oG<9aQ+ zeCuSssQcH2S(W8|zwNkgD$VeqNzLJ^FVC+EyVxn-$@;>J!iS9eMfcQov;^PebN-ZH5=xuXk@0 zcQiLqyzW1L4?9ED39FR1D%0mrjc(j2T;KJmW#60l{p=5-Kh9qKuB^a#<6FiThcjor z@4q2+r|Iu@t>yNUPWEyg*G;oIx?HL-R(Rj8qyS#c_?jI4h9Kd}>4mS-3&kBxOvvkA1Vwtq`=ay76Hx>)p%8CY-)@ zN$}18IZ?L7f8MA4KlSw2GOL`ZgSU4u9;TrU&N^3u zOxNzoC{YnSBKlCIN%!l7=gZG;PRvj|`CU})-(H``>(Y`gmMa|*^%4oz=j)8#H~qq{ zS#NT8oOyA6?up`~U$ZUGy^W7N*0+i)wJwU2Aw2)nmnF-qo_}e2S9Py;smDLPpAYV9 zRh)3ybGRn_r`J8dNmD;R$rRcb{n7vN$@JScLV63I$Ho6L*|{P4-@b0Mj~oTN7FAa= zTKOG4qMIIHJ2=ez}mfA6o;n%E_7+OMWfP6hGoSHB@|cl-BVv+uLQyZTLR_L+vCoV!RO zKqR57@u^67HAC0t#|tml@c9{Ozq+@I`S>^0or|X*_||mqRO9MYZ7mx894rnl467c)R|~%FmA1uk7@j zdq>kvm7n9&+;pS0VL!{Ye|2n46I-db$zeb<_i!9H-yZ)og6OlvndJ;!-EKt=N3t_E-MN+~d(}w>@@${_2HjLtjy5+QG{ro-%x~ysy{E z1bpFER9t?$XGi`&{ca zc(Cd0I)*3uFDzN6Gv@^_j&on681(DVf2kDP>|mRKEdHV&GPUzkzIf)VxZUQx_bIj^ zlz;Xqtz6yw*Xr3_@yc&S9b& zKUJ@PzwlGTE3cO2Z}aExCq3U=Fk0MZz95w7 zuv+`e^Pm8!_P;~3Wch!Bn zg|`~-KdraBipTX!<^}r~$_q<+yBxM9;brmbklNK>Rl4$;lzg6SnrC;d&7kAS)+P3V zj(UB|?6wQMcwEx^@Z95%8K?S>t>5{quE)J{0@L=MWs>z7(hrnu7R`Tkyf|@h>uG!O zeaiV#+B^7yFC|U(e)KZ$-p0FJUCd|ati3Mss(a@3;?-s*{5!*cpE)o7Dp_O-e~csl ziuLDXi)Q#}++{PazUm*$%|6deWOq-|KV7y5zZRtZd3j;|cCCMpUEl4Ge^-8|Qu*W` zjehTfL!Jk!7kawfo^&d+I-36|r|IPHjmCd7=j2>c`2EyESAF-Cr!7G>F^+XnVc(PF zs(o+lt~L%1da~Ge>N>LnmwIY9tc>3l<#()?ZB8s#^qy(?^Cr*Nec1Z@_IA0#@+s>J zq^c6t`;YawYZ?^1X1Myb@zvkw7h4`I*j5oE{9eLqof(&W)briONB3EL7U%!VwX@ZK z(QeyW2i}I}FMp^M{7G-t+Q&85cbv^z@Fb+{eC2(%gSFScn_oLQ^JMHQojY3B`aIvn zO?&n4&Fb0!2~GIQ^dI>)Eob#}MHCuGkpUlo{{;+Od7_V#&S zi`MUpub)=Q96Uef!M?N7x0h~JzLkD4#(k&B!pyYF%V*_7XHO1F2-vq`=gcR2BsNL) z?@0>S8yTy!Y6s(9g}&hY?S6B7g>P`Sx^>+y(~s3pbx$7H_qAr9RCPB)S;j8T zSsm|1r!jRs6}|QLTUFVf@5|qEa(>-^{m~5Jy&)G@Zco-+Ff~3d*UqYvHE3PewOg+r zC!RXP5^}s<%k<)s>J^FyIMmCJk0wt)NS`wRC zV#cqXpSUVlhb?%^sBxrbYwC+WB^mLz{qGqqs$Smw#_(od@7wj^oOyhzvKMbVeMznR z?r*^3ti+uCX??tuZI#a6TM@NskzKu&yF*Xvy)f{!trA?o|J#p!epmYXCwgBi7Wx|SGjn^y9rv~~@cRct^__CCgy88=OKm8?>p0`)8D#@3P-+5oI zA?f2bofWJi=Or7&7RkRW__xYZ#`l81n8d29bw`*EP5TkuS@&;R!qJC6e7&Vl-`*RZ zzus1>_Vk^iIn{e_H^xX#K9jQc=fiW_7p9jaJ5Kqy{g>eR)l1j2pZt09;MM2p&ovz{ zM(9kp+g`0X<5N}kDd*CPm)aN04l2uY{(kj5cx&QIkqPVX7YUxyW)2P3&Jtp9am} z_9;s(cenc9Kml7ng~ zsTZsGCaE}syO~?B3d+5_oVAwy-PgnBjKvl!_RFqqu-84jdxr756I5| z_xAZI92WooG`_uY+WzmmnI|V_6y;W~{4?K-LF@Rm)oUH%o@_2le>|r%b9W~n@15&@ zb{4GfXM8CXKKQLDx6{kmXQg=fx>AgqVNjGUTwlslo81Ja0eK0{xvm zi~qiq3pw*HVf*DB+Mny26c&EZywT_{JEMvz@b=Pm>#p&wpElokqwD?)x9;g#>u5ip z>wi}N_T=DM5ho1iJd4Ort}LH#UVcQ((RIC3nA=fZhHo=Je%X6z%Crmqv%kD6YN?v6 zm|(HDAo$$=nzMVWulpWge;Rf_V*MLdkINkIRutMZ$$kx1*_5ZQt{$^1elz<6rEm6! z9z@(>Idk;$!RG&bYuOcRHm2q6N~$SZ_b!!V$;ETu=1N}-^rF#uoROohf>H!rx{0GKezg3o^V|e0x1Zf%B@jj61~h)ID}2e`C1QYLR!) zHHD!zZ}-?X6oj)G0{Uvte+`sMGRxhKQO1(^(*Q&D@ zmrpT~$~t1DKV{FV1DyO#;)`EBVwj%fUb*_~pWJGOI+^2FU+D{6)>eM`uzdZuJjsOh zV(V@)7r0A*-~BjvSza59_{tT`^1Jitau@dni>p`4m^;dqZ+a$rX)0&?J>78a!khp0p6gr~ z^?$eY*5ZqDUX0yG-$d8nxRN`7mrB5$fGkN!Xse8Psj&`O}#kHR;>|;-D zo^LMJ-ktvabNUm}d0Ct9pLW@1Jx@3%=UbHYl;;ywdOkUaRHieni`Ph=aQ9pJl^K)v zhgsGd{S%q`PU`Zq>Sw*&-Gg~qzbm?Z;&$rntScA4 zJvBCkq4r;K%$yIJsSSG+!i&YTId;qqpOa;GetTlEb?$}zM*G%SL|+IIt^K-f?%(H2 z;w|&OKi!{v&_(TqRMM)G#jCUIe{Mdtd1tuAq}Z+5UU_c5doEpZ?~7NC&n#M+fAxGo zL&c=x*T2_V&}vA%f!~I-Q7LoDA&WO%PeNO zL|^B6@*&3HXI<#&bF8bYzD~5nx@I;y9+%}s7<`PcH_#JyIj7#3BjTXW>Op{1%r%q<@YQ#=Y2Hknb}LOXI8#C z`*(dh@HC8LePn!;Ps5a1xAuNn7A}2m-TcFMxhr10-qd~O9Z!tnq-DP>f1Zfz-LrSM zeEC_2V$_eGXeJm2(L5B59U&idiC!y;UsE?CR9IbY>Icg4NVd;a{e`u}Uc-qecF%X5(LXTQr;^SyJ=)o)Wi zi_ZNWeRWB7o%uE4YsR+4&&AZ%9^RN{>7%!P->w~I3j24g|Ns8&a|4;&J?cmHJk~i~ z`+AA}DR+U8{-YYt_E`KYs=IdnrTcBs8!`WWA2YZ8GWplO2X6DO)qK0^e3ij}e#~~^ z*4op%#n1U~U;lo~v*N`|n}eEfXUQn3FOQU59d!FiUt4*m$%~8o>r9qw9-A+my_82` zbMD>)4`NRE*RFO2m7o6~tFYzvoQ<;P z`g6YR%)h?QEbT|fr?9s>zrJ14`S-bD`HDHFt}FD!pCq~Yz39H1e%jSAc4@3YC2Q-9 z%^w_RtURIh+C3OZBe<$90{vfzz*^S1}TrWRI1)ILT5#;@A z<=GJH% zLhU&*AytVBtQ@y|`uFHB-!s|&cNQ(Y?!h$cD5IXucdyr8uCLV}*uB?b*uW8Qy>H(d zh66TEJHPHcHA^O5K>q%x(&=4RyJi@PzP`Ledui*kAek*n9}6$fjn@9Ra4FMjsZF{+ zrW`o1^YY#B3Ag3=+xfNZx;|e&nOFIF_VL_22eDRyy)~tAt z;q~Q=D1)BsyTG_z5)PX7Ay0Yr*i^5t4f>g7$3B-)Xs7X8!wLJDY8O|OXX)_GVRqQW z6mX`n&g#Z-Q~$dbl}9EX|9juXE-Kdj@w}A9rThmnk0dDvzFueh)Ti>6T!Yp^Pm`3Z zzE=;06t>#!zV3DUYR3c46XM(b8yrf?ZZa>B*R_whr=6VK)*q30;X+~R|En5Vll>Ie zGkjUOVl_9@(K8~-g~my?FW#251fAw)jR`S&pD!e_seH2d^wT=$K3rYEX?UoFRUw~! z;jY7aIlB}XW=1`IbfeJl-5hY@$z&=1+V+;wVwb{&4BM@SJFDL^S}2`acyzlhgS6uH z19v-r92ef}8kwgqe$vhEZZ(5Re(rYGNyhr|9M4Rovd*0px+BZ#n11glW7=Wqth!(> zeuI^t|NfcsS(ask(yw{dQGfD|?%uf6g8jiYZH76w=g;|jxb}eQ{pzWY_O00Tq&cOb zfA*ainftN!M^%ebD|Vic7yn>(is8NsSAJB@_s-26>jFM#KbDDJGub$xciUkmuY3`e z>UZh?RrmFHFdPdF|9-*IX=`u9`%tYsO0Uc6?`2)g3F`u-WK$}@N0 z^v9ojYdL%KYUaOv?2F!7Pgeb?y?XWUEiJ2NC4aBGlE}R;b*WRaT*t9Lnll^A;%DAm z9bfR=b<4AKWsB`kcQ3F0;`QG2bFoZq_^n6b#Y@G1J`vN)-myCW<@~aYFP}d>yH-AD ze%-kx%TMk3-BE35vo~18ph!-1v#rgv>YZ`+>(3`jF#M_6@8~);LBi?n)crX%)@`0V z?bAdVQa_d7=PWSINlz1ZnY^cPlR@UJ4YeN&dw=+zekvi({rvW}z(tGWW&ei!tLHU~ z`}$D1saJUWle{xC*7#oMKC>wy_{s58Hc#q{Hoi1{&2@Em%G<-P5u(zcUcXXmo^gB0 zHiJ81*K$SmKEIBadVYEP3JC>HhK+v;?GNnz#triJol<+tCTesop|y2*2cLfzCCrC zyGrW8f{=5XQQJ@L)VgHybje}2{U_)A)tmJoOsYI;msicIdG(1$PioHT2;Y8dw%rQO z@YO3;KYhNL_2rD_U(43EIG&1jvAU$ocKPzzJ4c+)HGj%XiaLB$p@UJ@Gvu)N<)?K! zefXNW&Hi?J&;M%4c2VFyZ?m`0|EC|P{SW$j{dvxsYmCn(Na$^;W|&i)X!<~pWre6Z ze}`1vHK~USe;ZAe+_&aw=blZKb6#GV>g%=b1Vgy?^;j1E@?KkpyIL#!pYC70Xa2cE z{?Gr<`Sfmur*G1QIl@l)-`+B=kh=P2_auE4_0ylFymal?axrXLwtrRUb2G{C&y!UY zxfz~(U3qI!RZXot)5E@cKXE+{PS40`AF6bu{zq=<*mz;$44ohP=7nq=ObqG^`yStz z66oC5%=X>6Gbdhd+x3(B87WgObGYgwJ>NXqF)Lwn^~Dr(_vyL++p-@8^FHHv#joUg zEoE`119vq8i)p1p=)C|jul&!G|E%1pzxsLVW!ZPjbnKrbPSNHG6<*MCYW=<9c{Z^f zl_CEpub+0B^T6GS8$Z3?zlGiX-HJz*tDMe${lvQY!PSB-ou}h|TAqk`Ql|SV>;7u} z|J8GaYf9|C-l*+A;`s5fDa+SAF;#&df_~ad-H+Y%`tg}x?~P~QoHS>deCTzVFRhoR zY}b^YRk3QN$y%WjfvVbsh&v^G=MsO!?%(vsubhp?-eL#iL1r6c6^9bO?ur@E8E-JbM4oYKQ-HvewR=2 zzExGR@Zaxu)giAgx_o%?P2u?b?>G0J`mGr}XYZ%_b2|!|_6Dfc%3kh1|L8^8>A9~z zt^6bZcdy^+{0ADc&@Ya%^Vr_2Ir9f*3)PFWiWlzz{ାVz8?ZT2^YH&f5=UjLy+`<+t49o6~!8(wStHYxvh^+oypl}0~e0x~b% z2@m~rl;QN*uITfPYSX#33{&RSKWC7!;)$y|6#Zfj^K-?uOEu3ip1jBW$=aeIuXOn> zf$Q>&C*QBCV^Kf%`RgmCe{7WsCm0ScUH*MvFhjwUl!nu%7|aCfZ7s5=E%R7+v&!Fj z>;HF4PyYT`W%h^T+pO}Of2$U)?DG4e=iBuytTZ$Kh`b@89;Z@bDHsfvf)?{#O)Gd@6CGV6`jrU+>RfSMpw%&|&go`Jaon z34OjyQsGXzsi_Sl>hQ+W^t|*@Yor}@E}f*rNKl? z?d~0JfxY&d|5xxHHW03MI>p{_kk`{AV&k_jek=JFwk6yPo+h)ZjCZpF%Zo;dKNhQg z&;NgT=3nKd{}>-zn7wCgn3-?+Tu5?(>AbxK-y44iKm9dj*{iJCo$vi#><+e{c{6_P zJo~S*y!$)jv(?k5g{$5F{cMS6gP@Uf=iJ~5!CWobt)-b&d$WEr+w7dKSr`9j=gYok zc84u9${l(68Jta~9t_>JIY!`5so%O^u_15T-6yp0zp;N-8QYT5f9%xrw4YYLc{pAi zNHkP>eyv#8Z_$aQefvd(8*cpZX%|%Zd!F?iKg0X)hyEQ7I`I3i-0_W(3=8fXonlDv z{*!*NBg8P%ui>ACU8>OHi0(a)rgeUPov6HTACrF5Zh;rO*I2|JxBIt)!!%PikYDQ4 z-M2iCm8uz{SR1lzHocqA!EmYT$SMKaA&2s@*Ffxu3n{;5l}N1Jw(*{ZqV^@WsCGu|?nd>#x67edS=_ zd~Niow6Lbo_J&-;+ZXqkFVq!1^uNCOp?g9#gWut+-xwUYALiL^og93%Sj|6FSYc_^ zJmrtkIlp%P&OZB>VWt5CLxYda;YE(|x)KcMUj2V5=&#C>C@MEwsv zyTzx~G2}p^)~?whe;Z%)yWHou;AA*yc0c2T@Rom!5B=ZQewJ%E@-@9E(cpwZ(~b7k zoMz?k-(Tb7b${^g@1qw*Z?C>zb);&&FRS$D!*_Ll?Fd@=3w|@Pam*cbj_wFs* zp8MAxU;O)Y+`oU(AJ?|LkN&t;>euJbn@{gpXkHt5@A{9g%ioKYPG^!n{Iuozl+#+> z_BYq8{~Wnh>eT6}{eMinKfPph`j|3A4=&#+Fm?fl$(-}PR6IC@#Gz|iH>=Q4Je z1BEy5{{GhRLhSean-9<5zkXjLG300e;~)0_KieM-ySSM%V&DFYD$XD<~Ycl-@op7&*ac^sX0PrxTgJ}CXqX5WiR$trd4 zer!C&=&?ESDs$n>X2&QFo%(NYAD>{Y;t#z0{z0RGoAdwgzyDV4wW*(1@L%l#OaJla zUlL9C-s#@n^|tjI>-6=E%jI5l9~amdxZ&oH*t%`D<&X7ve*`a!NpngQxUhET{~v0Z ziVMSTOH>8E)nB{J;*jZHW#j6lv*P<4HP**5c-$$`Q?q^4<@N7{<<6Hp{?FstFJ7om ze9p)Cz|dv(?~|+-_OKb$>x-9(`pl~=I$N_(>OqI>|A6f6Gvq#U2mbY+`@MZ?#~wjN ztB9RnOY-{}EczPL`0rKQAF}9Eu5u~i2>d9|(vZOYrNU;xlmmH84qrI7%smzI{!P=} z&y{?;d^M-6yT6)w`z4d^!&f_wF86b}_ji@5JCM?;CTJ{?7XF#c%bqdE65=|6e5{@?U4}hTWT(PMQ4rD%voW za{}|LWyUwY3Y7lQ@#Arv-EVxoKdD(+$mzlA&A;v|HYlq(N?e|wG(U{_m06mix8~RR zvfs{M-*|S(rDU7K+|L&8E4cYUI^?h3j62FzEQ-~WAmAOF7g&NJ!QZ^b|F_%blK z+Q00`U7xU|DERE_@&HC&$32T5{eRsV`zh8;==;0%f4+XL3BKccG2w^Kxu0>juNKRy znY&+cHkF>UkxTabm*bj6AD<`w%4u0;6Q>bwSWueSc*^EbkzZFe4jlNGR;n?&rR<3SD&mXHE%B4^w<+7ohJV_R9

Qfe_P^$ zZ4SF7nBI2mk$!K@5Gxs-!jQ*fRb~9*ZaB}B${Rmow{3r(Z~O6jf(4WN>z(V&-o+ZX zy?uG=&aBG|%BOGazaRdYCqUud(Lbk|8tRTJ*jJhxer??PDem5z+37k@|9*ad=-71G z1D|ELf2iK{)ZBu@sbNV2!)j&LXWgM2C$3{)I8d{sL99}}Pn+3ugU7GE^L2g;3SOv` zKl}INTle?11z$KBIxJ@X+M_;o|93g}`SbPEdDM2VWq4BdKe}zh;=f&Wy^r=UevnYj zz<1!=RE-;H6TZ!UyHmP6^T0Ot0|ky-wDu^!+r-|mdDe+|`;y=5*W7A14Suxc$FJ_N z%L)%&BP#Z2tErq;+4yU2^ht)pMZPL6r9KP~(tLkESmEF_dG;&)(`I&JnhGyItUPsJ z_g=#sc9|Rf{U856^{!<1nDTc+*f;&--}_E4+`CvlEp@-V;PH#W^8eT0yilL?zk~m~ zk5+Klk@uPm7yPx~Sm*VAQ24`b|(({}c=dkGeN_f3xF zb*9{}3fNSi%5%pp!uLtltMxyHjoM@^W zr{1C9u$KWt#5V?(xfTMi!df0_8=|L^zv@BRL6!S-#w z#_!4eifb9(xXuuAdOWAvZa%|@s=Zyl3$F%GIJW=2Sh2{{-B*35ZF=_DBDnXic`%pY zyNu22&Y$mFDWm>JCS73Z%5>kH7{28HRvi=NYl}Wi<-9C=x^()lEj90EPk8qAZQ9;n z5-tBO9a&|$FHmKZ!@2*SaSu64N@dnXT|cq@bX@tDRe$f4xSvyb=Ffb2_UnA3^)uyl ztW0~7cg}@bd3f2|g#8f~Wap4pd~r5l(FDt?`-*Jp|MI>VFj?>` z9};L`!?Wex8TxL-_|93!NwIEZjfy6$3`HgdK z3gyl}RGqx;OZkqy-B)v%{nw-#I-HX(f0X~x&v3HqdH&| zlQ+Y&K0=S-1HY2lgQQoF*_84ogfcF9bARUxPj=5J?N57m9XoXPD%+!}YcJj^X-k-K z?thfdgeL#<8yppGDERLB|6sfNpL5-uiME;d9!SenF|j1Qx%=h@dvhiKqR(>8Tm1`O zey-Z9^jqA{cFX4#wtE>w1?MuUPTcZq>h;-iUwAdHiuUw+ij@AB54n*c)#Y}}@)pYq z)5%U#pT&Pz;KOxxcbE2z4w*p9=Nv89kDHnvXXBe6w4+9A;aj)Pq6d4+Y&BUq_cr=| zfBmWZklNj4XTrr9yL#f!|F)d{?-p0Xhu3qZpNao5;9;;U$k@)(yd(4quYvWune}%c zeJGyD$i@)S(i~b5ahLO9nxK+qT|`dD!bjR`jBc$}cAukv?cfQ{eU~pkI4E4`;KKhP zG3kFtw|Kpa%=F&I^4lV9hRuJ&wAc#v?5}S9$g*9u`XocN zSCvW8r*c0#b0HUB<_xVU_m%#_27L!E-v9e9&+UC2|NXAjwfDQHY>!snk#E*Ap;|XJ z=i%SHx98_^ukm!^yR68}Q7`r;_K5YYJsY*zJ}}HUx3cuXBGofbCKOwRm+yS6c1}*W zUM=@;a^Vq4W{VlQMG8?@c69#Y4}KGzcBkQ>OUIfkXRg>UnJZTKYmKwQFOJ09>!a7M z*I~cz#`8HXX_97C=4%syKbsO664JggT;3N~)S+Kd@M13ehdQOdQ{FN296bKtqVKWv z@yhb|_pk2{`22)fy6xa$R)!g_(;^<+J?#*0Us88hFKx%{H;g;%>ffrZ@iJUB3D2EviNKrT0EDp zS;Kbc^CLY;wkrJ=`~MwubKlMMV9~PsXU+aTEbkC=e4UYWj#0*{z<8>=_|@;{*jFYL zGDxko(Ys>5-i)E+H`lWLY%~7;P1v`xYM$njpG{gn)b0Q7xZ|$GaOC&L{TG!Rq-_

CI2-SuYODF|=#Ty>I)e zuweairUv={Y|;O}|F)HX+TBrCG2zV%8Dq1Bkqj@?vgUk>zR6s!ztisdfeyyCA8S(h z4;}&ri&5O;w9Vh|MN5vx)EArXPwWfYq8IsP zErUjH#}sqRZ~86e4`Pn}JNQ#)l?Fdc?7uJ4bD4OVS!Vwey;$C`+5TT8Yr~#1(eQIMQU*yjZ>SA`2m(}Ze8!#WTe0K6n_mZbwyv!Ljt1s^^D0|%eBDUaBKgSDa z@8WyP4a!Um3*-e3JMOjE{kgpEnEn6H=2E{VhtAqCXVa}m5_ex6ImRRXVG8?>nvW~E z@_cpOepJ{nD9FV*Twk(iX~4XhDZGaMelwq|@QCMTuWYRncyzJC;Z`}%+G*h)w&r;^ zCu-)+%&?BqyrQ)&KhNm->_E!8cyVu^4GJ99P`ugR_-irNMOjC{+Y`9l_ z>X1Vouj$`IOWyZSnLF#t1kr|Bu`ho8_1{nTe*gdH zv;Vb}Q=7BiF_`>(C-YMGk%q9sy4Xt$mbE>917;kZ?U8QyVS5qNVa^{{Sn5-IA1@8# z(VIH+_aU~E@yC9~|L53Q%e^pv*UCg|rxP`W3$D&sF10`-A>j0U7YC(@K51VB85ka< zU;58+eY08}Cy!$k$Mg4XQyT?dKYA~(u;R<|C4X|R%L~tqD>=yeyyivzm3QYYdv5lv zJpAQd!)ECVUn0!&x@P!aFET#QceDQ!1B>~b7mODZPt0ULa`H|4t{-3I4yDEO=gFvl zlNY&@-}JFpe$Iw(HXLjAv>fsN@NjC&(5i1NNDlo`EdH$y_28!_ealeKf3>Lk{4QPbwXTUpmFM5bEPgwU{>kPUeqHo6?&Z7Ex}$dszqBO2IDGMI z&AD=spoufTe0vi*v)S&s>?DV;Q&+9!6YmdVxWFzpqxR#zJw^`U3}M>L4K9n{uh11Z zAh2?q^a}p@owfQOS$_Xhy_hPSp!P1WkC$op{Joq#ljHyU4GkVCI+6w2We0tpZpup~3 zx!G??_0)QU@9ghC+WzwR&Ky_&-|bSg(S(!bak9IguS#Nak#4t9DV(%IW?uKU6JIS) z%j>lpsqf$@yvgnE|0iJ8NxpyO*1dJXJNqto#BY<++xjT6=wF<{qW_UK+x~qOGg>>l z;k%Z8dQpsQBkN?AzjOOMrZ73Yn?KLns&ZDwFX1}<75{}ND(u;Q zZ!Wg|PvPZ)Gfp;V%Wo<=go!q_2(DvqH@-jjJCBbvGgqnizb`4Z3O1jGPnTQhN*sB- zYf;nuiZAW1!nV=M4^!UtTg?1kVZZYK{mFCtk3V>-@yD|1dmYOh+ls2^au?U8TU^Qx z`nlfp*6!b5^N;3LGdNtd-LX9*_DP#Vj8kZF{lhe-UURv_rC0VAsm(t0zHY)bP_~;B z_F=KD28qze-HMZ=e6<@{woOhr*Kue(c(y!*HlE=8tbgVforw z_WygM{wwZ!SpJ}3#&-suK!X`8{}`|rZ6{J9Y_?m@F(j8%`{Eb}!aw$1omyg_rnsO#TGq4M=_SGE0qWON{o<;A1aJw@Mm>^t@zJ88@+!5ex1 z^sZx_?;Kiw37Wii;t6eLtvu?ym`!w&uwE2vTZR2Z#!pvLJrySWSn;nvX1>s`gtx}h z-&p4VIrxoDJZiq|OH+jkbJ+(^+dL~eDr*=Ht*I-$yeyVoz)z%an}c^4`*acAZS21e zDE?aX(I@49po+uu1I_Fu5B{wAdffAS|K!v45^2iwU;5lv;AvogFX$$7(VbD@1jGM7 zzw;v)JKFwD&e(2N-v8Zl`)T*ZN(@i5Mdrx=Jz`(7)md$8z!j4aerpGpJblLNu}^zh zoNNpFr)V$Svj5_pZCPF>{-%nnnX|v@-rWC6^c?#QA^Y~n=TvW)&yW68@51MQZBNmx z)4fY~@b$%U{xr>5Deqfd7V*51V3UB9v z`049sfB9?RZT<9s#qam?ZEvhOzbw{%)|>Z_H^vx5KmIVYkiVnsr|`n~Ie&OApS%0i zWL;v_EA>fY{S40id~5{|Jsv2qF&s$ta*)*mjO@1Gy^`Gp(H^8<@NCtF-D|M0nS z-}~?T7k;gJ-+b!-*D77>j|ny7(UzGJ?Vd8 zj);;7OT&i6<=^f~-l=8#W}kH7IKN_q!mo~odp|7;K74#{%d%$iOUKSkBwe4dkiVOO&Ls-oi6x{s4|LW}sLYQoL-pOdr~-_%umopH{)m{t}y7Un*K zyE}_^RX@DWGHJK|rn^h$eLvK@?|SCz^H*K0?`8ESuD?^%zwO2E*&VxOeDZ6ztY>i0 zTg6lNw`$o-eYUyEnJzu2w$ zcj^_xyN*6FU$vu^m5!A*d3+aKq$qH1Pd%T_-4ce5dx~pT+MiqYU-;#GtD+5WIp5gN z_^a^9B5A?Di>K@Z{=c|++48t2)7m}nUVPl}j%|u@fABhnj4dLSt~`eYvtrA3l`iADA?`BZYy#x;8z1UU&5Q!h0+>oBw1m zZF%wUc&2GW$Medg$+e5?&n2*$++M(P^#7x~_1~WLAG~9~>d(sH|NHp9Y94j}EZ6Xg z^~J93dv+>vFzmDly`!X~vZed_f}{}ZQw(cA-eC%lKKLVy>91x)?Y!oES^0gOYrXW| z-PK*W-Aet!>+9cFN&cO?Y=Tkh`Y4SpZFgcBPJ}b4)Yf}4Xv}6?%hF)_cHYVFH5u3c zynb{rI`3W_51&HbXH`R&-g*(9G+BGazj=i>H}By--R0=Bcj48uZ|6vTJ7ZV*jN!D> zfkXdn7kz%Q{Om!ybv!;->W$vDzj$_E(J%d%8*BZRpPkwa_t^7Y4S1Z-_|F%;u>8lR zWyK6Fb_edR)q2FMZIq&W+&=P1e!_g zlaQZs!KCT<)o%IIG5 z_nsyjocfo3w@!_J$I;Yhdu$Kv6nM*EIFJ264by=)d)W{2_NA2`Q1v_YcID&~mhV62 z+s{{+qqOk%L#Z^j7vlO>c}d^8H~;s1{oeN127ZZVR(plMhGuq#l5PfrCU%#S_nuGR zGf(Y*^Z)(*{fV3Nw|Fkpnc|@wbXct5sP6&4FF!9|@t$pRe`8VeFZ*AfOXYSmyz1^e z8dSsOYrQb>bHl%{JG|MAYsAX0FZds|d++t{yEuOD&kQS1|G#_BCHI^uU4eOy4VOQ1 zGcM!yDVl18rNF58!vKHnd|p7=uF=$O}}h2pDc z$=ncJ_kwj^(A$|!yE8ak{_}h(nDh6>`FS;m(&Aa>w6s5X&VIOaKgZ+hP2W1dJ%9Yd zcHjTM-|s8%1aKN_{43u7ukSu{fvE?R!?}OmZkddmQr3Te$Sj%4fBpRPVxixM;&|+~ zUCHnAx1bVD;4}SI?R6 zh}!wh>Gh9-t-oxf$~E(k&napxiOvlZ_N|w*n7=>8(4ju=;F_6oT^mnEOQwGF?^qu^ zFI=El?nQ!O#KjWzEX%vUL_%h<|FT}7Uf)#A|6I(rcFFIM`|sOMMm~4Cb2sO&{eEkE zu7AI$dn6QzimY2c;quRY0$>0BR64Us-dyuvh@1GIa=rU}(>L!@dMwXW+!g4%?cc-w zM}PA7T)C@m)o@T*$wp8>w&K0oUHd~8Nd<3&=l)@7dvDvfxPEV3{r`W`Ie(wmT$`=* zeAlyC0c#mfxTQ@v>o#lY$vhTG?RR@M*cS9p(Pk*0=@GRteCNA3`|B}*J5PL?@~~`2 zb-hWA*sPBmX8(PCf9<_BtG+#r2{rw4Lgs|%O#e?)zTb~OSs(gz{`8P%u{)RDZ=AjI z|0ikXd3B3D&o?~Ox&P8m<%)cIqJqZtLfP|KrVVn>rgBDI-oGg`Y|(Z0h9jl{HrLAe zgztA*R|ys-eVc3}(9(GE=wrq|7OaPVPKkfdcyV$0=Yw&N@9&?yv%ch&e2)JE@4)X& zF8Vvf=CiE3$8uEc-Xbf@JNMam8YD@~&Bx zdsZ#X?-eMqiK}$?3sk#&^!L@J%~|VMv_gCDPn_I5xuiXj;kj~Zx%T^io89E+%-;L+ z%rd*nK@2`pe@{M8KjOTHnfI_xNPs32!~E>a|9`x$-6+JcWA47m(eqP-^`|-<)@NHi z_vH*mm+dlNxHsQCf7`!&(Omx@mz7I-UhOGASXVD|{J}Z-z17JEUmf57wg10o&-eG= zwR3*<-hUMRT=}ZngCn=tH?{S3>`d7s*r_!CS46LQ@q34(uAPf^y6y`os7Srf=$?J5 zzSkn_RQ0nTo5KIbubub(Q0%eB+nl@1k6sN6IBz1EHHl@C{Z8BbXp>*QNe;&s^PR0V z4G%qP|AEQjx!u4*r@cpaSN$%5 zO=3I=5RA&z~Iczdv4Bv%f}wUugfo`&Rd_vNH7jRgazf`s7;SsmFZN&-i@VH)a3q z$#s4_FMe++S3h;X>sr^*X7GK;+P8Y+#rxhu z8N9)Jm(40w?6E67aU(F$aF)uHf?q%FM0oRG_%b}7qs}8Y=kU)%tZ%D2E}T8~nt3ae zQlZ@<1_p-i(+fhrzgN3F=cHc8lPkNYh%s^N#JEjfy)xwSqNDx$C-1xNy6F9d=JJ;l zTu3!2ey(J+fZI9R6Fc%`Rqx zZN2KbD?8@Tl=uC8(`m=l&alZDmws{I%)a#QaFn*byGMIrPX{`-tSX71C!V*f{=*KXsF^39iJ%%7(lX?xxHza>e)*hu`4vl^FG_%y~7KVuk9 zN+z(}n{4no$iYDTQ{jI7(ueZ@KO0QS=4W_t!McC3e0!nHUibIMr}z8)J+8r4@qTW# zO8k?!*;UaO3-}y1E)+j}qI^oGsP^6$GgiEi+hSU`{a(rcqx1jlE;Q|3pmw-CCue?? zrJ=;S9)HfX-{0K-p4s`1n4HtS=)YqI0 z44=nvc#E2V^5M=4=gXh5&j|ea@}lw|YoBcH#$US?G<^*H*YhM^H`w^RaPswwAGWhU zh!shD^~W<=dcLyX`t_dnXR2!$Wtc)gJm%mNyl6dxwau`LrOxcveBGu!#|w{qujUc^ z|Nq}_`-|)UzbUo5qIT}JbYNKK=iL?hA$u4cPySHnJUo-(WV2JL!=iy6*PH&$ z%N3dOGpl?uV|)CbAJq))4`P3mo?~X}Irxm7;o#3gzUBty1+!QD-=p@x=Fn?Xw#V~V zysZCuvHE}2-=%eb4`*&>Flaa(`Y-+r4>yy;k29StGN=F7*d^A6g@5w8F++O&=YI+z zOQYo%IF#}z9$IuXkV8`D-Ld}Z-b|ep3vBcjTy97dUE>E!zN5?8rtHpm_x)6Q_G&w;yNfqYUwQB1*UMdteZ`_5-<%p(G?BqOLu( z&ftjcnr)J6&b?`EZEh@n*m`49xID*o@q>BC&+hsYk>B{jU#_ko>DxnD{s(tL?%r!= z{va23`C_cadQOWE4;bb6CEPil{|M4#61@N7{^Q?&>;C`!Z9ePQnfv9d80NgHGm`XD znZGpn&Yeg0?v<)jH z#s7E|8_nqnWAt3?aqCjp>XzzcM~kL?)0f3ps0c9l@vM-#C$jkL)zHvbJHxv(zdXy7 zh%xz_oi_iC$&3-JK`083h)?werGT8+li6Wi2_!%W;~S z&8hjILf0CTzfL|66fL)88{J`#sHorbzHpyqBx7rEg?i-!UcH>3yvHk!{@qu9e1FOE z{Erehs%7j2)P!JO0_cf^a~#7n!q@p~loKP}z9s3&gC zuU87H-b_2MFdj+ih?*+$_`k1KfU29cHK+N$aQ=qhA+|Hj=fxJ3T)n&W-aDh?cb?ib z3UmC*{CR&9(}h#}qaROsxjQcGGxWMv7G$n9{r+az+_KQ+%m@iF!-?mQJ&YoR>zk7#No ztCgPn2~Gyr{r|jHss%QPJ(h24-}K;f_l&=inJ*5VOMG^%KeBV*qhEY!^KFVf+7G{( zkUoi#t>Qq*s_Qaoaf}BvC%w4eR&yc6wsD=4&$fR{GAf%FsK!fqZg?VJ*jcsgpYcU^ z77jC;yf|S8mjgHdo|`T6W~;@omIv4CKQW0+`FpQfK2gSS)~_CAw*T|){oXFGDehab zpz$vAgfA1azKi92vbaC@=nab~|Ly<9QX5zfws1ZVW=h!08L|Gi{<2ah=3iG>)-3-g z%^k#BV|UdenC-^uzkj3-+Rj?>wl)8+UinN5`>E%3qyFf=FI#^{i*xUuu5+q)tK8-5 z){8dSeEl1)tx`6zw#YZxS*4&3BQdW5fT% zD()3628HvM7=?@LX?v{vr`UPiSMR@|hxHuu-)^t$U;g9#{r$zF?(-+}{T2S+Yn<=@ zVQy`e-|g1>+V=JWHNRQf=RGu7ufX84c0Yf$bcfZa7T(TXT_V3p zPSxVo$;GD}k2|{OG;VwIXUEFC3h|tm>bt*eoXo1YHzi{SYtDk{iC={;Se^TFb@sep z<)15_cApZ77X7^Yh;j#uY)jm}2Ta9G40o?sSAYF@Cz{~{LkTm3-t+hC`ahlRyCutz zaP8*umbxm5ForqNN17FXi5G1)_cgcN+LKqo5My$Ad7E>jt%KmnzbCmb{E_ZzlJHZQ zefQhty9ey<%>PsEHoMM6rum6M^j8Lkz6XDkehRt5ol*oON5GVKU>FGj?e|mallY?@j#4 zwf@T<9DP#v*7<$M>db5F(@qtM$E>}#&MZAYWDB=pj<~K>(uz%Gy$u)L|ITJA&;GS@ z_MDRf()`mtdzPMgA}S-p5O~{p+3$8!!E(ODqQlM||3r>iE^%V$WKZ}O@G_0xiea)N z?*!|8dtNWt!gQc!!PBav{~GW4=PxYpu)Fc6qU2-3dcg~e-QTAbFSz;UxUYNFS--lp zsr3=mmyl>d;D(> zO40&Xk?pOX$9wq3@d&ON7)>*Yo31y|iZ8?3z7xOVl6b?r}d>$@y0I?^*) z{padk@hf=q*lotSTXT7<<>Ulx71*3O>SFr7#+v=8GVfdb{XwFHyZoGA`{ULZ&Z+s` z^O!?G+(FAtsa*1o-+?Vm0V0*k{PWIvNVg?Q$o0EBH961F2t2wx&~L#T`^F7+0cX~o z*)w&|9u4tl>=O>wra2zgSD0_Ke?e_rug3eWhdyL)sLIyO-}G&V_;2=!W#Nb4r(T-8 z`~8%~m!zMcII3wRsW@pvxWP%!z#lWi8PXUNzP(~*V3;@OP4~e^@=Y)K*3J2Uz-Mmq z*BxJ5Pp{Hl!#v@{OJjMKiIK+&BugVVN5sa*Gr_`^6`C z?BuHBin|u1&t0Dw_+PoArSOYlO3MF(o&Wc*pZc`_dtH%C){8@%Z>cA*=4zS87kzU6 zmoy$3y@b0TyR81zIQU2@O?~ zx?;!GD8GsEbMOADuuo};o0)g$^yB<1FSvIu{mv;^eyU~C`HA&&ug*O>rQS%8TR*=04B=P@@l4fGX!E}u5o z&mH`2+4>DC?Go>vKgu|Hl)wK&;>F{<4Cj~+)oi#v``6d`XR8(F+}rv`lDF=|Upe=Z zi|74sJh1M2y#N0m!9tmrnfu!6mQ*uz-TJlUyPNXNjAO!YnLm|7OOcJ&S(1Bq@b6cfp*nYUwAJ3Iy^+8F^To_8h*zxh75Zg! z!ex)A(1rbrJgdC<6qTQTStR9LsOl)$V<&n^$zO5KX6fU}3@qaBj~tY2m$-Lv?|#i~ z-ky_}mUrpd?G$AQ|I9mUy=ca!6yH+?8o$DLKBbyOSKbg07oMJ3X){D8 zy_=x%WmbhE=ijq`1j{$+tFCcnW=Zg<{G{%F=cz%bYqLO|;oX^^MYlZvyhG~mp9B%1 zwD!N7L;rnYObFV<{(N5MTm}alPK#aAv-sH+%GFl?{kcZhg(s{0Ih%t7LwAULv#Rhh zr8DBIiy1Q38SHj0W4%zkd)Y6RFAWR_->BdFXt4Xs!IKy4H~e4lOkVJC*u4$@#WEl7 z@2_86JwLNw-)A}Nk+)nN91qJ^Z7%g~lH~BLa8fHM7Alys%OY_0H`O_^AKICBCY-e~ zxyA99%ORA_7h~iAWZI>BBNN5&Fv2sr-Ga|obcJhon|?6CI89nLqS6R ze_lo}6=hg>NZ850|L-K%l}+YHZC(qcGVHhbaXfLx4f~`UKVGLR9z0)Nb6i9B$IEh= zgVi<4J&XCb{X4k%`F+q*e%I{zckUl-rK%?QfR3;PiBrahmpjp9a0MoCF&$&>TPaSN59@(%O+8ou+&Zdn(^YG z-1}3a54O1N_*`Mr!eF#qTq{gK&SKsEI<5(V-?x6{^G!8cR(@`$;;&=rUM4EqyH=~T z>AY+dt}9r&y*K_F<7Xvi0XuoVd$X=S%`3Vp-zPHTF2lo32N@~^n&oGdeNj?Mx-rE% z_vhD+4rL36=g(am4*dJep{$_v<6m{eRWjdw+$`&pUW~W$_Z_ z#|&+8BIg)S{ALzqXxhpjE6h>;B2D%L%j*K;osYe&8H)}wY)b6A_g?P8=aR{}s>lBE zUUxK_e3P&A@X`d|z)rrWd({fspT(_T!ai?exN`Wk@c9{q3mrI=)u%tTtT^@k@Pwe^ zMK8WHGg*CSc+M#Qz~)CgbIDuy+NB(9K|!=Ym0v%_P@zS-xw4pelQ2-;@W9r|1F&QYk+UE8MW(VZ1Dr>QQ|Wr{GI z->$bmCuG~#M(YBXIK$Hu*VkzsE)VyMw<&KIyxFk2*Sq@Za%;J#-B%OtitN{~%d^mx zi&^Ta5&nvCalgLXp`Y)c>wWqYt~bF#nX%~p(!5j8b#%Vpt=W*bN8zEfLJb4Mj>Lk- zN&JVOY)NNmKes!fzMnxZ{qyV%8VxJ&`l2!oX>u=kV8g^v(IVJhxaf!C zyo0}AiaaWu<5T-b!sa-`qW{+W_I_V4dD_tTp8r#ySrg9BmOS^=?^E`Q$20X?ShZxP zJt?SFx%T@npN{3GhXVh8*080`S+l@Zh3oVKQ;qxACGwuhTBj@iJTd7s^IZ=Q`!($g z7sV?#FYJg{o}%UschkTwCiBVjvwA!KE+Z}Obybu=Oj7$Y6S${Ybsg{`Q_@r3J+@%Wt=;gm)9RDMoyoC>0#!QV zO=bx_{oT2myLA(fz}mJazKTDeG0wWJa%;lv0M5?yEB))YGAFX+#mB6*%U@pUd*JHr zE3`f5GIeuKLGT4yHbn|N5`~>HG2P5A8LaFQ!XnIB^O2%cp+7 zzN>!5l-CcL=5*`*Ni2JAADGV2@uq(7s)m3SU7x(Xt4glV$*Z${`J`~ZUeAt6yd8Ua zO4)WLWk0R>lQsQw$p-ObzZhL)F6x%lzx`so>Hl@@AKx2Ko__x3`v3ZW|D-#Tl0GCq zzF}GM=+@$TgNvNjNsHgvU%V!Mv$&#F>Q9S(^X&jFb(f8ebuaIH?|aj$zL9m&_sl0T zJWX%Cj3%gBZv6XjG^3NR&=N@lj5}5M0WAfhbKaPF>E&JyeJL3b}eZsrr zvnmrUq|Pr&yK8CQmpp;x(Q%11A9vF;-t3K+*(WPbS8Q2cuH?A9x;ycn#Jxt9F;5|HuEe?rQx7HV;9hs_-1~itK4sqs%0GE#lj=X` za0U}6C+)}2@16agamqL^QGmD{sZ{8Itbta?N|2=NLY>aRG z!v4svPdP=+w$r!XN5jyni^uxF)S9YO+@TY;KARC%YIEs`=XE{1zbARvnjhZVF`c3K zAD2V>FL{waI~K>x;j`mBy!y%MgHL93?}=YGc`8@^M*Rhfit1lZx=x#a^>U?nUf}fk z8*cnGoObxLfCwUAA4Hrm42N0;-B-3j3>hXdBiu?2L&sg z;K|JRq2l1Qb#hG5LV@e^oImUC+__cgtec(($0F9P9*b}D?Ay^hOY=neY1d?( zm*<<9CVZ|+=iM8<^YNJ+#yQt(J4%nOI6iOgHwG7lSk{QS(tAEFh|fEBuqWLr;fA79 z$v%m>)p~F4TYq^V=+>~}asM*A`v3oUXM2b{|KH#+aieDN|M{IyRUWK(FkjAQe&9n{ zb4GUG`WSYO`IGm(PAi|k(|y5;XUoeRzi7tRFYsu(7(ZP$Xj}4S&z^sW^Y5%Ww6okq zqE6Dyfj9lpnQzO?H{Ue8Ez4=THv9!M_nsI5{wbV=v+61n8+V?JJM#Lg^1`BP;@QG; z_XJo4`u@8tdU*RKspnyH>Vo2bJy<*?=Yj8MY3_3j3=IsPE{-8TC(X9y_O0%4XZUbh zF8;lu#9!s49r885dz35q&f?em&6;hSHUr{6lQa@}Wg+8GYMbBr#lrH{M3R$A{U(RArvKZgN>gT-xb1~>VN z{omydvBkeX?EC-w`}_Or|L?p1zOcss;-d!)hxT=}m^MBvu3!t6kKnI7csHHLrSxHl zzx>ML7~uuCITxfn4BmR8|C-$l%NDPc<2xn^B=^04*6d+;SGQN6L$0KLL)xkx`jZrY zoNCqe6LNdO>;7O?>;tPCr(50xS3Z+Smv7E|^!@4#(@zfB5>K_*uiY`tGkokRC%Sl% zuzt?U`skJhst&1-qF$Gxb^LFJLNg;T{QfkQ9*_&;%4ec8;ojs5*x z_KN*~_9zI*964<9tMEwuzkMs>|65ufcKyin-{ox8lXr#l_15_R?oO`=)U}=}max~z z!2KqW<1j z$=CKDT{`=C%#)`wk=LIDRG4$mj63qW^v`OC(~Cv1j)tB)24 z+6W(>w_=j~@r^r}9C{0sVxDF1zY(js(wFH%|%ed-Ss&O@6Y2(e_@r9&161 z#my_1Y^RE?{J-?sv+Pq0cb@;Avh3Q2yE|^3io35ibJd|An{Jq|t~HruclC|wB@dCG z59Xh@`1ObTY1X6;6PNkILQ$I!a!W5X2u>+-%y@{CJY!nfJZ z_m9Uzb?}gn%AHF3u8O zkA$~QDie5HfA%#!F)`c~+bBHibIz7q{|`iIEHY}#5xLUxXwi}76S#Ba&j*P{8{PEU z;B#PyxRuG%_GACo?ufF@__SF4MP)+ogawtW)Q=Piohtowt)l3XzV{?4$py0}PwKPZ zd%perbzT{U9g|cK&H9nC+T*~!xe048tZ7+N&(=Qg$j|zK|N2Z0PyTM+?EL(q;-MdG z?;rL~PCs9Gr2hZka+%}%*H7H_z3`l3U(BmE?xZ4Ssjt5-ZkuV0+?h+p6BisQ= z8-*QApK{i+8!b5U`{JdxqIZjK)+T)pPR;4u!mwZ}l0SG}=<<>W z@$qqo-9KnHRl8JAV?PsrpseZMtO@s)u$Sc6?OdF4&zDsv^J%bQ!rR#6p^u--spjlU znJ_sn<@;$h=g;#`w5(ZiZ%1V)hh)D>8J}6%rd4^`&qEZ8KifS}EoZnqG0x!izsHvQ zI?nw*F1`3vec9`u$M(M$|9WAEkjI?(rvmNSQrr>@4{{DXd`)}Rh z3AY*)7kz)9DA7=`e1QPl?E3Xx>SyZg@804L_`u@jTi7)7!u|dAbBpW${ozcvZMhCw znDhVd{{Q7UsuNynY3T9=``x+X&Cd7y&hNi`{?5~yT7xPKZ)Wi@Jd|mWNEhJ|`u~N~ z@qGDfu2uT(HIt4d{9M-LvRHU=?;??}VMi3re`L;``kArneqVU++N(~>z8+o1W$EW# z74zeBVV~*si_3!7eiRYsFYo!EvE`Zi_uqQ^Z^)iM_Q)jjNb7`O@15MgsyHbcujN{n zW%pV1bkZv$$9&(|j)0kZ*X4G6PE5!>=%kmXHOsE+{zcGXBE`-z+s-R-s{dZ+eJW=1 z{@Q}3P8Yccv(E2X%wR0;+~XOsvP!7Ade-`r|K?Sy{(oj+!6I?E`-!<*>jQy<$`(9d zP30e(nr>ixwwX6=y4}I^{vSTt|C7D{{(E)VD|@zerZxV78wXADim~ zPtLQC{zp~tsk+44neuX-`FDQ4ec^V84QCd*S6}$rXwVXvTJJEy{E?}E*W0w~{}ekX zlz3=x@J!roeUZyJ{rtKo92)$SZA8;1hH(p5eUQAXsF3c^Z)1Ob`8>A6t_3&GZJK_d z@~JJ)Rl|V&_jYXDRkmfa=esA&Myq6RzMbLByH?+A#hm4{!gQk^ak9BKdbCs;8zjj) zO%87{ZF%#|z;$Klc1!!?>)-n3cJZt1&kW>xxR*KWyz{-X%h%!<9G(j@$}llm$!qb; zoIC!PP0e2RsWqFuy+PlzgO7g7L7&PzvKF-<3cZ?)>WO9tG`J`Eecq7*=TgtiT;+AEmHd8#*_pY0F z<@S+PrcO<96JEr9(RemF>zB9X$ETMppViHh33>lr_itun?)u=|pIWo7+7}C^$=i8v zSQEYW&%_0vxkDLT+U+9#9JWZZI9o1ryzt1$YxOe!=jQ$u4om*QXQM2?baq(dgnte% z7MBJDoVR|?w7B&gCDxTVqQs94$F=OdT`88His?}Owyr0iMdi7KC4e|L#b5{vnkk7A} zZ<>3lc>T5aEB>sJUFN>&WuMwhKHl1|cdt!loUo(9U&ZO>?3Vd&ns%Pw+x>A_!2d6^ zN<|}1nDO}PS+j0Xb9;3$!$_=1ar5!j%hz;)n})}Z#)0|@nnaV1Z}ai z-y2Ql&M5dehfzVy$Y8yCOLmoj#2WVrF;Nn2ibv*4ygq)#^w+0F2?sQPOfH}MLT&0Z z%bU^(v8NL(*k!N0Eic&eXhCy?xofDb2kWz2DaRMpFa6M4n;U ziDaS1%k5|ParXD$s-1M|3)j}){hUWzS>1h_ixQbnI7JlZDsoP{-+xiexyhpM$*g~i zz9>CeC9&XFNxa$TNZ*AAH|YNoIVOKT-Q|1U@7|YkvB&b%)}ApF2TfJl6|E89zU}#P z35WRJ+pG(Fwod1_czl1+{|ibCQ+`xzOW07iWX8U2C9HLIIo&4VVQhY82M&E|-1T|B z(?~Ob7JN-$fvJQ{Ivb<`BeQc-Y8lH5!8PEQZ zE+hZ{&rjpcZ#y6DzUe4%V2f(&grbJXiSO^Il(#Wlc`P7m@S?zt{b_=ci@Bfbv@e`T z`}bQ0pZ~t;h|A}+*emZ&m#^|>F{#-yX;EhBhAh4LZWnmjB=;N4to3TRKO^t*@|!|C zq8r!l2^KASV&EmWzGu&jX+b)fQBtecT2^=zH+AkluUN~icCJt5kU`;esgPOwyx((s z?JeTzb$C}>#@g^PY8#)y?JtYn9n5z=TKH!EAIXPKZTC1DU++&>cx3tm>yG;XV`3 ziLX_2yIaJ!Q~vqK0&6yod0#JI;&skbbD7K$tj;bVZSrj zr~B=4;m%n;KN)2n2!y%sVSmq1JL{dq-7kx0oBytIsoDR>;@AHA|7_p-B{=TY)HHo| zuxL}}3qP~qf%eBMEM9DLZ%EC0a4r3j+estGi>_%(ggHr#vSt zd+q!PH;q!8gE^gxR=!bhxV{=%Kcj-IqLYNp>V^uR=t?uAH-W#}< zdC93yH8%yXyEh!Hk~mw=7oc6Uid(#B-ioE&&Ea{cRYJmpOdR)ke&WpD>RagUXv*xl zR&DC}t4j_h{7{>t$z0>r@oMqES>@65oifd5sd-<`*!kg3YZ`y_ao@jPTsvp{JA3Fy z(bE>^eGRL(hkTDeeg0K!>Q^T{W|LoE`6rjvsr#Lt5YT5+^_<~A|LNBkcgQE$*-NJH z|F`4KmN_^7|M+En?p^J%4SWqdetZ>wqs9}@@5!(r#(t+|e8%L3@0L8XJ`sDQ#bTY# zgdZ_E9u=GSsJJsff5^IwZ>C=R;+IDYZ>I9~{g{=b{K7SJZN`!*>7~iLoNTUg8A{~! zYM)u@%k$|;lYIKGrO!9bvRJ*%_ULTO-_NH!tzBk%Rfn_9`L1c$6vHQ(+R6Wq{!UuA z;RlCM*xf6$qHfDgWsF*`IV(r0 zdb=Z>i#|^E-Dl4i#_)ixwP1FPPd`ij_Kp89bhD^NTYW2u%ac`zkLjLxf&0Nyz6k!T zre8}eHi<7~T~{@Aw!jP4Nt16iOgGe+bk+9Y6pmd5TMjI6ygcbd-^)DB{Or2EZ41q7 z#Nt25Zr6BVt#qB`#kn9;v${H+HAUj;Mkki>@8$HZ3y$ELP<*Ls`K|>MSsT8x_I3%% z-O2JjpxC=-!I${f6>B&bDDgPB*{9XFUHu-kX6~%?GwQc38|pq4PONjDn{E&xxRz`7TzlS?zFQy8UT~Lr!fS(syYf5s zO^m+SYJG0!B8h;f_nR2`)AIhAYBK}~nXQ`UbanBq$x1JL^NLn0{uG^ACH7Q!-JSxQ z9Xl^1>|om0&>?=h=+m=jcKh~u|FFBXe#_p>M~}YDD*k_A)}lF#kvtbT3}$6L6q~@> zHeoG8$NCE{8$W~@YT3>byIpMPz!9^9KX?7&Wf4gWF>rakdwNfV^+k%QLLScy<;aZk!f-KzX1{e8 zmruMfPiKwR1&hg|%u?wNCHFlSKl<|PlN>|F%zGJtiOrCtA zAz;HE_N>3_#hJIQ^;^G4EAFzr`lq7UU5Sjrc*-FHdlXGpPKvff_DcFvlnqp3QM=JTJcKU_0$&GDn_moA)~ zuxXK#!PkdHQ+KepUfL4qbMfVwcRO#aU{K)E5PWR$jQjFcuXBYhp6A6b%QhceaD>&g zX7~5+c8|s0O+2*XuBP)VZ{6${zpur8`}<{WwsOF-mmbaBN2LTVG;-UUezU*aT&20K z;McNKF3-~@%dzt@-hHzFe&rXwIqWh5ZU-1;{9NwrtQ1r@^T|aHfE-OV92@r~jsK z@Ks-Ilx8TrxA?K`F2?zJOU292`IhB>+_US&1uh1eo`yU-MT^^dkDZG7%ftTJ7IwUD zk-HzfPon+rN!Lg1cC*aR%Ib)^7Wvk5$n&3Du<>Bkf!?bUTfZ8*Y9+L+dokxUKWp>W zxfwkwobq9RyO>VSx34cczpC&4y$Qbqmwug)+P zt)D%y>);LpPIiHP$@}c~&l6wq_TMMzI9``;5AW32>ie>1y?+*<{ZK*UpWwx_evKX_ zomoN`E}CCfYN_9PD^JUB&6Xe9)13C_yxh#T>D@H*$Ax9HW>vgiDg_xm7z0_{@;7i>Ri4N zW0b1R0|OqhPu7>OHI2a zPVF=}yGrRuV$afexmM0uaxWy6Tn-$pmaqA9*yWe)QYFU82habO&H1~SZNpkG-nK;y z8!o$I6MFmaw_M)$EKb`s+&P=I zh}kv%{9C@0smY5YlwRN6&Y`t-eg4Vf;IviQd{@J>w*AOa+iL#ZAV^%onn7gG{T-j8 z6BqR@`+2%nezUK<;yU@GAMPo48vN_~92no-sc+iEF@vWrZvBEE`b9I|nx_3wEAV}E zGII77rH+No-n?mTshd5mg3f%gEnB6!*w}Na;!7t-AxXi+5JF57&LoO`+`?ARvbKjlZBVY3Wbl$NaCLjLE1bq5Z+roFffP2fV61#3izEoF3 z*+(2JCfuDf<#Kl45%HUwwJpW9COz2mp#QkC;_ITPF1|HOo;^HYU_agYlWF6U@6TGB za)i3H)j#@4h|DQ2S#I9!eXgEZx=C`htF$tByv-YtlmCn5MvXTrZy zsg9M?7fQ%aWPBte8^#kBSlM5kV1D~Mv%`k}kv_GLN^jhfp7YCnr9$9;P0g-@0v}su z9X3*J5d){A^VvaBwt>iv3|=b*R|Z6JYP<@ z-y9kv|KO91ea1yG50BQ{EO)H#=gT+$ib{TM{wwTq-|hr!)-_ov`q9(;kM2~x+dJ!7 zR#dH-jdc3DWh=hut~FilWGmA7FHWjF@>XIPL)Xi&&l9RXKWr*ZUSHT?_)k;K$nf9K znX{RdtJ<@D<3E}k{^)#Tuf)ah(L>){`JdE3LelIMN%q7Yx~-kXM>)EHNq8m~QOAE5N2vq|rc zH*<^e-U+?)yZ7*(_!_(}E9>Lhcp3Gp`%lYHoV$DC{quPa;^uZCJrNuK-@KCE^Tyt& z&V{F|-pc#Z4ZV!Z**ipbRKB_?66LpG2Rnnu`tYpd-Aiizrdz6LXxNGG+cAkjb?&umS^nS zt#~o^(>;cDdOJlKjx_Zc?z|JD`SotjrOlVV9Nr}wSX=+YSm5u0-^~a8--W4cY5efQ z{{K&Zq5TIJ9G~npdB-*hahd-G@U z>7SPE7GmP>c3rk|dcSqL=cS94E4W@&uk4!rY4gT6iI+6h=JtonYN~y_T-a&-T*Z82 z#;Q44wa;Fv$!?3j@aUC${`1ZI9;}*Tcj)K2KVfB?^mS$bE}O~y(aJ@8?w5ZC9CPOR z`5&G$-;!Zn+>tk~RZIt>JPM}VWR8?+_}Or-;H_ z^A6L#dGh7+KNhdtq`7@+F~f!}!rMFw9m*hl##3{_q`|MtMTJn*yd`-E~H~Wdz+xJLk z+Nylk;WK!xD*U+amtN?9_ha_I%qP9wAO9zl$J%K|L~2~rHztvQq%)Vf95&<^PYG+2 zP^)#YJh|iY^gFYvLQ5r{^VUsU?wL0^=t=9T>|W!3&3l^H)*Ne5I~l#@UZ=n8X8-W! zCu@&b3&cM3Gzv2j&YGL_w2ArhnU>}4eGS{vsv_?cKC_;`E4RPV_<#1)%YH9*hAy5G ztM%kU(cHtQcVE|@WYF|$f6ABnEgYZwwuw~t9+5Ep9&DEM=c#D^_6h%foM1e2&O5CC zko*^h^#u+58;^c>{J3A@ZAH!DS?}824~AIW`sHq$VDe+3@E2KjXVs|X53a4ck=^xQ zBvjzk>Wg9Ft6y`v=r4M=`l*;@xt!+P7&Zr&Yvti#Gh#yHL!MmbDpGx1w~^y%XTVO8 z1%XSRmdHH2yX)d7_4#j2m>mmuO*&iAwN0stbed=k4*6;ka`zMG0 z={RIJH?qY((NtBp{+v0x(7ddVwL(U7er~<=E8Xue^NO|gHpk8P&A1YA=STVv(~#ra zlMY||y!{G`$268X%zAc*)-E+v5)@kYr?q*XDEq%cqXSmVD;Z+fNJU&en{|{^Tk}+9 z$Lre*KOc{O9`okI&pFp$Ei*nLn(ck$Q(mKr+_`UCW@sxO%JMiHd|15Ual!m^*ZH2V zx_47$lb{$YH`a=&8pkCQ7lURb(o zYGOIZucymCT(DrWe;U}V$9KYO%F2z?Oy12%Et^;pE5&@}Pf=l-{VCCgB*6)m4hrit zj^~@MyH;v=E`w>x`$g~m?UFewbY@Z4%7SNBvR${cYKvSgG9Fl4{oC_^ZO37`hGLT= z&)pZvn457KAD3hjozAs-bAny^SHZKfYYd;R*rB++|8M@1e@m?c_8fk{JN4Qn>sK3D zS${LxRh!r>{Ce2R!Q}nN2YcM-tew4xVS>~zWw&>Bk9>Zu4F11^N#On@^_Uy}4!f+^ z$T596yxXS1rd7h&li|*rpXpT|I)DD?FdQ&4nPU3Ub+V%iOZy=uhV+LmPcnry{ZrVi z5}r;Jc`tIE#e{dtJ_)l=yKlbbKclDlB5T1W7f-fBthVMZ(~OF<{MIMi$l7km2%2iM z)OgE=po<}*o)yy8c`c{CINYEAY`MzJRr$2I`%(RO{TV!mR+KqzWR2PBC!n&cd&9=4 zqQ~=Z$u&Hg*}shGb-s$`k8jd*PRF-LA6z!CQb4w$+eD6mfn7;ahlye7Zw6(C1?4;E z@-zG>bcuOWvxs5B6BffPvv!-wUTca1w>-H-Y2 zln*?RIk&s+dTC1}j|WS0sjZh(hMsqo_v}RmZ#SJ~UK6v?JW|A`>P3bVZ(~b^g^Dt_ zZqA=6cOGbTFcvl{tv7T$s+1yXTt3J1RcBVpdjABY1Ir)q-DCbBYti(#{PjQnQ;G7w z!WceXkDh*O_eNExM63Ik;!U)LtT-KOdJZo+T`X7N@PSY6fz6V8dkgV_+?+u#xQ5jH>D#}8wEuD@^WKh-?V6uJHp>$dcRiK>)(@E8A_^Zp<1(hPl{gM)!+L%?{^(Xqh7J7>Xl}< z%+JsDJ{@%y7lfbnvY)eEQS0*Ujlr<6@CA!qyl(mYLr-c zczmogW%&Nwfv+x9LyfKK%RIM%7j50uy;v z3Vki3ne{iSw%7&UD1H+!%&Gi3yWDxvjzsfg!qfRaC%8sVkTYFmBGfP`V@eA1rn=TY zX`Jg~_8+LTGgZytFgZS_u5m`v$!$;mG=&G}%Xa>J9rBl-!SS+u?N9Y>|0?-bFOzLk zE2xdxX8J&3^?6p-$WXZet!Ltl2SQmIzO4M*w$`T-I9$s2;Eu`D=!^U$u@ZjahG-#FH15jAacHXk~Z*r>D>IzJJaXTmG>V$u6{RJs^IAM z6}=9hk|rvi*mY>m{ovz&j*2p@dVKum6?OjlLhpIE7oI;7BIo_G_8^<}a=lYCT4%1# z^0e4t_IyI#3YQsori3vxlyqJ?5qE`U$JPTIye8f2(a!%YV7&Lmv=hQhjU3iWXWMng z1ns=0vDtr<`(wdr+_SDN@7k%A_2}i_5Z)puNChL*e3pPny_eBy~Y=oU(HR7>Z=R<{ZI7RO;%5N^KMz^ z(pB87jjv=G)~W>fY$r=INH6ovQjmx^g54`6u0i| z{I2Jbmec2%Jey&=_2+KO+9l$?RSO=4Ok5rpaxdUpe2=@o=9E?C0@Cj5S~|`KE|8id zF~QzTuVv1OUF-OKPcBuvwYTF|rd064$VazW`0N6=_uXXPAl{fA8#$@-S>KLjkM_^- zk9@i@?Bl1ebBW%&pRc*gVD;=fcS4@<&-?N7 zWGX}7ui$U~<=hP?zRmJDakTJ@&DDu{6Mas9j;%Y`$u-9y;EoOF(tO>1&K#S4pQ@_r z*V{5UDodv?PL!C#{5;0uX4OB5%)J-Z?)})@8fpEr;LEvH*9Gl&yuKH4Vo8vhfSrH# zd=ZbzbuXvuMm(80Z*uyMib-dVyk0Q#gtTht|LkY8ZRT5=FN$@I2-Mtm_fN~?$y3+w z?@40bF{MVdute@t*x!jk;hZJe>-rwZR5aQ$oca_ut?1z`txuP4CVqCyQ!_eXClyn- zZ#4(QQSnqs1wn?QUH;B$%j{0hpQ0@KIe+tweHWx}XM{dedf)%xTTa1|xy<78&K?Np zo5tJUzl?RlFD`~NXY5{n+c|5(p4}4PD&99gk{8?)Uv>J9VbDqG>&9F^b2r>-m#X!A zGi5{C>goJ4UcobCGbR`9Y!LpzBy_j_O7w}>!LycpKGFSEVEyB|)KhZz-f!1A_`LJk z)jGjRs}6E5(~&M#N+|!UH+^H)|64&^3o|TNXZ(!|S1x8>7#(oa`}1+%Gfhm7Of=e+ zk2Kw1+uf7=>;3NVZ97kzJFYW0_56j>OMkth=>JdZ4*giX(qCw;_Qz>irIJwxzka{t zvV6s6|92`txS{KE!+{{9vh zY)_mad+e~mj^oV#_Qf4$mg{#f5s=C{{M*ytzR&L2@4t2S^Zgar><#4~@=awwwAegZ zs%1w}jBvK%PlLiUqQ4Ri8Lm!wE-ITp=})!B#XA`$u6xxJPo7unb#GhKKgD(Wqo$B^ zzgMa$o3Z_hO$eKI#J;(GMWIZlgjJi`&Ds0jzY(9g@6q0RyZLw2wYk_%I`Awxe8PFd zhuT(#tFC{#GpxQdEx*}yRxNMWq}lNt69$Ldx;$+8<85^YFgc zR6EbJsuRyYyq)uXrMXSj#2LSiEZ@2Ne1YsUag}HPOltVv)orz{mnr(KUlq zb<$oPyDy}7v+P~9^Lg5qq#sG{+Hv9HGF?7Br_-m_6+C6__&Pt}a+2zU;u8}t>h==0!m)|Zqe81{^#;mKY>6b<3Q7z4)c-uFvuLTzLPLS4`yLq3`$#fBu zyqJcXk7hd`ymLPGOi}qu<%TCspT7m0eEr$vrpYD!PRvo9q56B%`^vp~0xlZ&m;P-JKJ#3}vOlq0bjsuJyHz~HTU+MzUA9s0 zv8j3FlIY{Pb50eH{A=TxMwVueIU2S+e6;tySZMhi1<4z)U^8U%!#b0V<+w4X!-e-sX^q&9w%N+0TxDqQ%RC~>IqaPjmAA%~V7 z3J!TiM>NiItvkDIm4Hm-{TdfnsCuWfR4 zKWClyOm^pqHFYl+gVUkPPifBQ;{WS>OsDOfn?L{XSP{Q2c+Rg-r=U}3m- z#I=i;t7S(dgT_7owAES*_1#q4uWzpTH?e%(qhlsJ>&{*K)BX2+$}M~G*;?g-9}Rg* ztn(^fbo`fp#c?9_T>Z2;RXWc)UuW%{WqC^Ls9{sG@fQVyUy9vzH80K2MRxb7q#XKp zw{?13>mJeBb%G_D)B0FytQ`5tuST*^n!zsO{PjOajyr0u2;ZvXnRBN$&q-_F z>iKV5GIlCycSc>jwz*$fEZgUQiT8tjYYs8qeK`AsWcYz)UcuKs7dADf`7Y@Eb=iLP ztU5=A1yS`{3?lD~r@W579X&rm|Hb2lN5qQWDu$o;nmljSwfJY>f3hy0wy4-WaKpsa z+JOyP#{AuG_VIrs>|}S!uh@P5kb_bEvG95Ken(ud4EJ0yyI9k?Uy=FysiO1ex?7~$ z?6pM$=RRN+wcFd7efjnu=c11)Yo=WOm2G04r+zzrozpI66<2Me%}dmuoC=vUJ)pZ* zztVR7nMVQh`jtKBwp$-IP_dr+l{H*RUjLoz$8O(^KVEG4BXU`{t2M^|x!WbXv)S{! z+C!8VXeOWXJIfj9Yq}vnS%P&_yyw2uX=REVx((-wAY@*CUN8g@VmmqOq{~l?vgA1=i^;#1 z=-6NL`IotfVP?v)seHFQf=*V4Ut;*S)U-0>`z6k&HLlNg?>=91)X`x6{?Bz<#VZ#v z#4ouODw=8Der?N^MPD}U<$S7Cb-(>}o%#Ecn3nIa^kpo*UVfJ)J8RCJjD;cR*Gm26 zJJ@r1tLT4`Wg+htRm}hV$~j-G({7z_ZP(6SzZKRu1_@=@N{aswocChl+zCqR3=U>T z#q}puu)NY|fBb5pmLO-Vki>tP1rv;dyS^lyTfUgb%C7gVIp=>KneJczJFkDtZuNgA z!^6DiqwRwSUMbyN43$X_6({Powfyz(zsB1q@aw7nttFG@N$#JVa7j3L$$ra=J+t0C zV%PTKGdb*ec8+mV&cc6129BvgGI}dtc*HN4J*jK$8L@dqN~P9My_2ULLjPE=I~T2f z>-?%I2GPGKsXmNd5I*yS<#O?#Ry>QRCUo!Dk4j|-kLI!2HCH71ec{)|XU_lpy20@9 z?)3ci?>B|lX1THTsvNL=w4*NYGXKplb8UoJ8jh?@UtRrZx3m8g<{iHtnmjUEd;J8% z91+FM^>fYU>T-0~4% zjf3{Kx$F)R`s&P2=HC|#p6Mc@r)AK^wK;6A?@C#ni(KA&D<>~t?VKuU@3mzY=Uc^= zPHpdv&mJFNbXLbj=-e!iOQlbAT2+jHo??h?)cm&h&z-hKD;(yl%~cYaFRatL>fVp5 zd|k_Lt($W4qMsxCsg%6F=Qb+(ZT|e($DE%Ydy;0f{`m5pzrzz(F0}9wzt2=SZB{NmSV`K>#N!It-Gxy;YIuQFz4znkr~cA?0Gty>zy(fHg)LnDF0j><2d=a+io*;QI*6`A0~b|{<`MQG|ueOI-f6UGRi#9pNLHM{^WDq zaN)ek6-BJ6g$sl^w2#mG%;(fuUAUv{oMNA6h-cg7AF>9L%nTg2-h|p%FvQEO6FKx( zC_UYNvn$lAIsg+d}et@;PckH;))CU zoAzv)HB~l}x8n`3AoFT&ll+MKsO|Tj%{EtifB7o=b0+1M4|E^qcNp^Jr1sP2_q zv})al92cXNJC04QO`T{uRbhJe`VVV=dJ1_(m6{qG-f}tYewcd-(-nEC=$v1>_sw&XXMqkU9o^|c? zS~^46>(S=~SIGr0PS4*|e09Q< zY)!AuzP+$yD$mD|d7j&*6qqhkxpp%AvNp%$8nOLN6RIX9?p?5T;;y@_mH#hoFK}F; zcTMhZO^JGE^!h`b#Y^nGy_lkM_qxXB%iT-8mL0R}sG<9XN_iFLH@8=Pof#tZ=v`3p zm4z1Z9Fh|@ukBP3=WboUN7nUZ@XBt+eUCYg%-yYjX7izZrl-s9^_o6&xzBkrLv4k9 zimZDdlcL=gyQpkXhh=to7xizjgeFAKYo^E)4qMuK=Fl6mgkWwNtHMj>BF;r<=I-Up73(-oK()vV}j zIaPFreW_^NRF-e6roFQYKc%(yr;U|O`?aOBUzLkX&9HfTq{)~H;NR{SjYFm3DHk`ubK6jQxdu0Ex+;;U3; z%W_5`?F&DmV>nyhq}+exTGw#>o7Ku|5qk2+mT%cy?5Fcdd@{%6eA(Q*$?h^6?|Cz5 zsHq&8FXHvF zDgT?9V~#$ZW^VW->D!C>$AV-SUYt#oIKjm*`?D)U$G4jwZ{Atymi0)!WY^Mz*UxG* zSZ?>TxBsOgeEP6wl!N#${YP27`ah3ZuHxDw5gqt+n#;T#;}fO%eUWGV-<|knsb{b} zd*bCL=76iYE!?}<6|O~y9AL3j*UvX(So`_M3X2WTwjS4gT+pRAYtAOWPrt98*w1js z$vu1b)3)Dx#5shD=DFPaopN=VoYX@ZheuggWw^AQ*PWQtx3e=&yIbGpt`b|0pv1Or ztC+o+uY#2&Lgp7WDSfEzUH$V~)ARZwA@1w7s}?5}O}xLJi=lIp-u`pTGZ)Ud9XR(O zb5yEXpJXtj!hV5{tv)X_f3FwH*3(riS{UQ?YJS{<0H3DX@&h;3>>{U~+%L#<;K7}o zU5}Lt&vVwQJm2j3=M(qR`z&svVD_eYdXdiIKmW>UeismYR*9-wE+(j9DTJ-@fMTvETG_o~3iCS0TU(f(h7JBqdnozk5jk+Hfd z&3D1S%6Q=pyJ=wzlRj9U){nbjlVLT5A(egow#JMgMfE_{cQFs{*rrZ(Q@?o1Gq}4g zhV8*CFTSv;GDos9Z!$mFQ!KGk({&qr!mqYM@22SZ7PW0%nL8cKC8a#)S9pmhEInN= zR}gWeXKBYlF||B3hK8w~g6=PxHw2&ZwEQu-CE`Z?rh6v;ckXeklI3v@xOe=6_ty!n zjZ94*4{9Hr&25hT^Xd-6lns?uZUJ@v!d#{f?n_oVI8j+rH$Ke(2soZ=4B zQIlcd{kgz$xij;bLkxQ-i>vhaUfyz%`RJox4Z^wKyMO9*O_AyibYfj4yuskyjeRq&c(Pj;a3kf^_*PU4Av2K;AYOd&t zPe12g7Jh2Eup}&OW_an_5Z&lK^Or~HDSPt(EEmp3IQ%-wrtt>w#8!6y_uXKs3t zaIwGPqC!R#BZm|7udlCIe7IF+Je?doU5~x-;VqRknZ4iZWR5@o{IkZcJ&~jQpUt$i z-pPk`@1Fc zonEAJF6OOZH$QN5cTxV?`sR-hr^#GW*%qwPm#4M)c&F!84trI%B3J2%tCwHhRlE2) z=M?Xuk~`&TS_)YCRoeD|CM>Z*^Ta{kR;KAW4(W5S=AHda!#OwNUKG(SB% zQY|-uGlYX*p|Gm)IJ5DmCx7B9T!Z;HO$g|)oZR}P$zsV$5#tU2ir1MjyuZ_Yy6acZoqsg6&*?YxRP%qyz zf7kw`&?jdt?^GU}b5B6Mw*g2OCdR%dmZ~uyFbD`}*<9iN9X*i;91;?UV4A?%1pP@e|)? zL6#6{*(Z`-0>!x{a#ufFo^( z56hoTeH83>exmqIOYxi1Ygy*p*|Us&@6oCSMiOVd{S!A^oSEdXXW9L^c}^U0EMN)$zi_|$ zUy*CVy36@qL}*-Szh0u}Yjd=1mu->n&D4*buOokLF=@>Fm@1nhr@LJAn#jy$5jn=2 z9!0J=thR8AR73aKt70n??piz9pR%l4_w(HQ=XYc`tvf#VL39k`fj39)uc}z~{`#jI z=k`h;mlU|IvV8OUSJxk3S-IqEr^3VlS>I_ptna)&I$@^WysI7OuLmwm-Sbhz>?IQe zPlw9XFPZ<;O=mlPVc>YcIN@?K%lE(9V(%_hJWE%c?|;JV?lkMz6F*PA)zr=BacW-9 zE#35B?(vn9Z>RYl=u`M3X<1^Sb=va#_xB|NH!S>?H(P#Bmw50~M#%R=kZi}}9X_uP zKANv$;`=I)W9D{QeP))_S3ge%7;ZnRT%B24m|QjS=HaR*r&vEesnan^pDkxAdgPbq zom90;^+}ymwl2N9MM2uKMaIGMtJS8-GwND3L^M6!{Q6@uturT;$Q@WK>s;8pIAF!2 z#deo|Mi!*@{M~y)u&dSgmF4u(mv7{b%lKXDP!ygUsZ^}?bA8zFIHpVQ4s>Up>eplH z%HE^5c}`9*S2lNp@7CU%TET^a4r0uoK3Hy>5S1A4h~@O7*I$%&E@P?@s{ClK`0MB2 zMIwQ@(nYdGrYi-fS@4=4?|<2(7Y-MB>3NFFSonYa7@|F2>ssuEBkMbVPdWeSI;(l)8j+IERSOPi929e>1#Tbf;m~eRYEhyZMekrTADlj6c5q`tN*kMEP&ea~`K`w(~R0+2NES z`FKZ5&lT~BLXXnV9}_xv$@0Z!{M#h%+`DAO?ovy=HF+FyH$^myItG5 zm+$-0xXO-GKav(d%_uio&s_g0HKwomO}B`5;2V8klaDevE9++($<0dldw6%&YTfzH z57syRv)*~~sSW>xFL#s{K0j1^Rq6S*-9je*tC<%o*d%OYILgV)RCs=+eXXh>!vd4| zh9n#IWsDlk9G6$L?JJh5diwh6?4v)5lP+)MP~c$j5==eEU-0q3n#kqf;IJLtTBrgY3F3@3p@OHR z*>TG&N1jFZo_td;+q2=a!nz;9O>*xqw8@!IU%uE1Jv$DKihrvw^Kt((XA6A-LqyWE$82Vu*6+MvsQKfgcsjW9X*s~`$Tea z|Ce3$e_3k8IZAYA>U7I$Z7PW3jFDbu>>Jpl&&5#rz{a@9F{7oaeC6WT!RI2j#|2C7 zmkG7AC}`PXx+?1)%UZ8<0j&~KzMf3=-#7pHzD5=_#&Hc4&X z&bmwbK|NXfUb3?%u73CCUi-gYSJ@)jKW8y4{j_e%38$kIWqMSD|37hk`j@G2{<>C| zN5<2SH7>kp^(%eTHN*dWPemDGTtok+hBG8gV`(~i&VVJ~Uhl~@OL3VNwrJV+f9Kox zKe=1*v0_KzobZ(eS3mFlo+w=KpgwV8V_3|RTY+gF9j;T4Jn!x2o5K0fL#5?|#{C?x zaJEk>J0_Z(@M!W=-O2y@;OZ5puUrUt%A&mg((&wW8NHQmzq()RUMUgPSlBQ__v?iO z-$|1K{@f4>Fj1YP9@TgyYv1X257Gi6-%nNEDB7nud9Hy&*ntdIwa;OnI8L6DHlJAh zb%?#C)kod}ns(@>sYUHs8z1 z&96<~mp0{DRhZqoi|(8Y+e`KR;*M`sm;W`*X#2*rRZUjvo5W@ZPd#i7jn$$Y?|j%Gpi-mJZj3PCX46kpWbZ#<*Fn2%WDejhH8dA^31V(Z4MmaE2g1E1(R`F?l1l=F9Q9Ic)CVtSeI{2(WT&)X|{FM3|A|Nr~`4|Q|ZBW04g z9$jaW=Q4U8?dvEhR_y)%wMw*GXGLGe&ZMr;sXc95pR9kaDEu@l$El%a-r}a&M(n<#P`HYNN7ouOW-6I*V{t9 zE*$ckr+ZjSz0z+NDJ#C_1}?eSfuGBzz~zh%`$Vk-1M2h)jx*Y@13;k zsU7pVh5v4!y#G^)>s|prgL+-D<@Cdk<*FHGl~}F)zH|AVAIj&ge+Iu}(3eu2+byil z_;LE}!)jBUu5DIH=*V2<;?Gelr%?B?CGNCV@xx5Rc{UQcnL8N{wE9PQIh|}-lf}ZI zcIK0}z@0vCx;7*FB z%Qjw}$yFcjcD{I7#B#>v=llEnKdMb-T;!&>apS@}wvvxDb-j(|Y^ZekbH4tcbG}=i zl*z1#n-^7><<{Ii`!26b*k_{B((#J6nnM2V*Y0)me-ukTz(t>Ugqljt8rcDn4GV5 z(MRu#vpvfnRJlKrG>a?VTe1HARVn|8Rdr!(518Hr-K+IpwQ_IDkq1F8b+a4O8nSe+ zAKR-Ddha~zWdA2;;}5eb?Q8a)tN$$eGDhJ{=$i=_lg`d}O-&M- z(Y<_El0)g-%C^-;4B`1t&Oe$ZyH|99$0v@ZHu7n$1sz>NmHx^o+a-TxS(hdS9Rx>j@GR& z>x1sJgkAf-q{Sj@W%I9knU5cTJf2g%|E~eh`RDa>nzw&nxU=`-t5+W#j$H5XR-V)M z<7;BmcVz~b{|gs>YqzieXWe&s+M^dyU%poTwf}$q|HryT4Hmcmu-shivFY&c4Q6(H zm$-#Q?cNG0o;&{dV}(uJ`s)^b|6kYtUBAEn|1qzQuRkhm?!7O6prPn}@$w&wzPz{7 z>{O)eosAUQo=!R9YWp?MWxJjFJ-^K7{$}!*^TR`4Ju$oa$+UcP{;%c!U)Ri%W19M+ zEjeV1+>5_AJSG_mK6jN+dCq2WY?Hm9pyuo+UbD9QSRE|by5#-3-QC5mi|$O!Gh*p~ z{G-CgDZ6I>{e`yL}P_pNkHo=pb z+nMn=_s(BB=eFKy7w||Ap8Vq9zM~UN19WPCWlR!{N#oB!BW3zUlMb# z$zS;qyjPLo$3fdU&g^*-YF;uXdoO>xI>D@|*jP}`Lo3^pS@|#814SGvQT94R=3dpiLVmV z*1DwfM3kRCaiaUag5b5!pW7yVQj65`OZb@}`+vXehc#HX7-kx~40yzc$e&CvrT_ECtZ!*raCi5I&KL02}`1$V#GCY%O&mH;NS^e*1u5ZaT`Mtkg`hRyW*{Jk! z^|mK1zgxqeFQ}ORahB`3_e;+=Z~lF0S+u>kvs3l_;QNy^--!CRGZ-jlPVYP-rrLP( zMEcZxuaAv2J;xslmi`Z6a7c1uSgLt2)sFp>aWiw#<~kRi<$Oo~UidQcbf3iH!y39A z>%=vL9yz_e)&23p?>SK$fBkHAwEr2b@Z!`;55C1c)9MZ;scceE>~=dUHi_kdR@Uxg zCJKTfpZ=)WF4FwOccf+8hF3{#ixd1=@9wxXm4m_4HdwIlT*TFHF=v?f`tu8GOjCL( zc+#xo)^Wwl>Ee+)+SZ<$Z~cCWlf*){9Z^<{JH;GM?#!&XwR`6$t>Pe`ZsEfwr?~ez zxt!Z1MfgzIiF%;`eBHaflq4{i{G*v?*&(Mf}MVim&&3CO9rW?;6d!Qc&oL z$Y-uX7kkOsikzD_=ASusbY3It9-Gi1(9z?_cinvQ=iRH4IevYzxL{@XUNwF-3qzue z|31k_S~H^Op4+hEA!C?Ji{9@2_mw*fBJ~&l`{ncmvt}G zIdbO6+dc2UTdxVZa7p!W#uTv(!(WU`bIrDU;O~mE7GHX9ivvczM zDSld2W6q>Xy?4sX&3Eox-Yk52JqPQ}8Ske3$?@N4qM+k4bKCPdJ`68YLl(|R*I)j? zL|4m3z0px-;^(x<>Qc-qd7O8uv?s<@`pgeInKZQ_OnmyJ54SI>YK9uiM0Gzs5c# zZU$GU_|&(XoMN57te#zX**;s+BaiR$#htC;GxjX?Y>j^}IETHW;WHmwLEuNjCz1@W z-q$~>DE{-3oz=EtmR>98TA^#ztOCwkD`e)r;<;NeKPAG_^!!|{V{@us99KOmy_P}Y z;=$KOBLAY>Iu#`Pln%~CpJ=^`)BdpIRNWX{@d)#WY|_zb@Y7&Qi>o{~iOpS~Gl5wFXO16TrxFr!>9^29 zyL#0${g)SaGMk)r*XdGq4LW`FSf<-|Bi^jm1u9;XCQoPDQMF*cW~9uE6T0eRSz-CV z7Q9?8wdnlOn4Ik~%Maw3$J*Jd?w_-g|N6h3wt;uf&RL+%+K{ADdE!y$o}aHP(;DQ< zQWhq0G4t!iF4N(7|HzO?V;L|j=ZjP zt0UK!eqSmSTgSSwWZ z%#GYxK0Bmj!dZu_Ta*f)>`?f7r?R*!H(|YI{EP>zPK!f~OO`~}W^>mIDe+t@nXq=o z(^}(i%O2gCR?;p}pR`#2it{Dw4DW*MzqYlp--0G}Kjo}n8GQlpnHMa-&Hp1Ne3gUY=yIl``fXE+w|22;CtiBZ*qv$k^ULP5wY9k{3M|4cn!bC#pRy@xDq1?h3B5(yt)1@AEy zmp}Y}+T`-nuh};2_~0p~^z55_y|d8S$Dc1|+-5ci|MKfhBEyj%2W529A{IKm+^wm| z=H~0?zEp)jB*fv~Z3h*xm@OqNXZE`Y6>ku9DiV@ZvYYR}z3jDTrmAk*I?aVj>}QR2 zlY16gtUMviY+nCFr8(K})RP?sr!u~NeDydy}g_9-F2xPYf_V6#k-OR{NCq z8J{*=7g;X1IP=O?*7s(sf$z%viM>;6_EyAyHr@H5bAQ(>*LS|_JU)Ic@>rz$WXBFS zh6@+6`!;c_IUN0P)FRWYWx^_%q{{b>hD9@28a$YnS*bN9)*9N#OtNM0)bH-KiQ_rE zB}ss_VXE8wGL8biw01p}i$Bbjou>OO(dzmhEZ?HYDX+&Q`iR5U^rs_#=ivaAr=J;K zPi?%KpD5YL!`#8$xcvI+gdJ6TxBf0qUeBQ_tZNn5lSwJXW!ZV%lN#1UPdwTX#(HqtLqqjnKQI3=x6>^X+x4E$_=#W< z%k*oae?|Yi7Vos{on!at)y&OnuV=seT>g2&o%t~>s!{QL0rQs6>F=s^^iwb|oFTgD z==)84HhY<}iz_24mlqaG95`v!{w#QFobQU7R7tLa0%t?M5Bp|Z+aNPz>$gk7wUhn6 zD;LJE4>`l88R9H|_5VV5m0P(|`vUS~az(V=C78cUrAK}AVQWp`k}vmZ`#EFInW-is z1$lvQ#nnT!BrdYelKyak>ACZa0}Mh_6;2UAl+M&r1IFpE&Qp8fzrRfzsn`s z?Cbv>F>*^*QPF08D6=|I!in|RFP3)T%2z;V8qFZ!6ZBELX0) zyKB-$;o8>4zke=IQT_3iW9dYVS@Xh*XH2o>iYi>TWWL=s|DKtz6H3miyG^Q2fAoZF zmb}$wwcZJrnN=rVHt5W_W#ym}x2T(C?~l9IcJXrl_bxwnim~x*=DIrZ&ryRf9*nnU z#Fn|Z?dW4abCJir&{lGK%(Bz^X7BgNKXsn4DQeP$onA_sBHt}DUL8FUv-8V+y_1P? zSC4*Ec*1yuZH_~+LD)o|7iD;q{r3HkM2xfY5q&D zC{=R_ci$R=g1@POlh=#>ESb=G@LEnT=N=Z1tiGZXH`W?QFHk8mckO@LXWaL4uBW-} zl*j5fBf5GzKJLyq{vkCxf6_)LJ6VQbMO$*R-Z(5gCEK}7=DhLzhZ?~X@1Ngy(jl~8NFBg`CQ6P z*fo3A#-y$CQ(`8SY<#n2UgA6boonmwZOG)gbE<#C%Iy;UMxT!|NWb0?Vei@)>=2iH z^2XF7m#?fh<=MS{!)}+^)5G~IW1c=+#`h||cB4gdk&FC{uvnE}C+EAGPEgPg`;_~rE?_kU9z6k^wN z)NW#uTpwPUbnDd;j^!@$mlGzeIJ4QBRY|*4?>rx0wqq;TmYhF#&TjLIUA?+Dqj!Vp zA7QUt!OlYwmdu53ygtgQzw)70`SWFG zuD!H8srB9T@!UUu*tIUdJ8?;3VuZF%Vd?BI$`Ri+x8E$AZ>%W55fJ?6R7HmOx%2l9 zRd)NmaqQgv(dPV4U*qY!Y??UdudJBg$LtYSVa4`tj=4+u0ZYv%uPpbU?{p~A*4qYqE zz)xReD#LsBR2;O`ZF}M~N#LS&Q z^XDWLeF$DN=ZQ_rqrZD!X-!vY?9rcd+^0s*VNTN z7oTH~P5W>-HD`Cl1@**dm5(E4ed^|3|K;Tgey8nO3iW?Ggr2^dwCtzdL*X}TmWwgG zV7+eE68~=MDz?2VPUx@N*!tmsaE9Kkq(w)|KXW&}2rvCs#kjc4e#RG;|Ig0(=KVgr z?QWCA{M%p7Uq7wCck{Z+TkFEgAFTXe#u0bKIJ6hkN&;Ql6X-Od^)H3=V4k7t91xTwKn~@+k)bc;xK#OLOtr&+|LDj%F<}ESQvM zC$i|B!0K1eJ-isLM4o=iN$vhZv3?Ca@Wm8WyxeU{TYa`-`Kq+hRD86xv~$`@(sY>&QvmgAwRi%sS9>WTNx z=bz%{a|$W4xvDbhz@eRtM}PawsWZCL*!g1D&9_UMJ>B26P2KHz{L32`|E(>a-wv%? zKlxfGpTI%q%3DoO-m1>$<8CuqYCrMb`TqB%Pxfi+>vXL2kbJgl|GN3dto?kJwv>Ek zJS7spy=h}elmBMvg}1pzidvpM0Pa#e|&lOCRg@O;?|t z_xQU|mg&X&))z%06m}flbRvmi`l1iJge*%hKiR2Vx6W&)`_3~wDcker-Hwrac4Tct zY|-yGt1l(h=B@Nu7pn4g!F&DNn;nJUD!eFaSk<@3v{U(-`IjWOt-;L3O{Sa-KlT3_ zOK$DjI`{R<;-waQo3n+tR?I)w&!EM2KDBKbH^Z!oC)`pNeEMEzYn2!rIxU}Mo~=K2 z|KQGqz0IE|?s|A%gI&SlhK5byTgOG}TNID3{`9wJfigqFhg*}(RLs}9>io`2e3ZB& zN@qdgx<|(|o&<~V6s+sL@|{nkD&W(Ksf%8$+&^L0gcZTY5j4c z_RTfzFD74)ZVx=WSnK1|%U)BWrI>&-p&E7FSI24kt&~KnVJ!aR=I}titH?8ZMqOra{)p6B*RzBnT z8p~!+*V9y+>nohTFDBXHShpoZfb_2?-6FROR~jUF~sa=Yg?`+-uXVWw@?0Bjg_Fvq|7Og ze;xg?`bvE_gTi%ZQ^jXfHx>GIFwc0T-k92Qes+Dz^trFBg@ z(;8LA>G$SWr^-d_Ib4$d+_3n2@Va&PL>m})GWd8ks}(gZ{?4$aHGU`KQXg}_6+c_v zO8jQeTcX{URQq`Aq`%M0yG}m6yf$cY^JmS3DT#+??PH0bZ&>qa`@X0TE(aPenH^X8 zT46s^calwmMX~bYSJ#9Wuex*fMqCQO< zDx%YQRzAKpF~@I@j3K+$FP>h(V{;FF^x2pw5w|{E$-rgWWEZ)6y$@f8pE%m{L*3S0 zr%JDC|9wa1Sv6}cq8&0hj(yF_uW)_b9-Z;`(~+3D@uo}cl&a$)V)`?>h zF)trjF2A9$P_nH-hlR8BwpXFWz8N7F<_ki;dzdWL$h?qi@Nfr@3(xZ03!)7d@;;xv zqiFnbPVbDpdlE0VP2^YG@J@M4UDp}q_eV{%&ehwe9TQ^wDYvlTW7S@{e)l&=zZ`hH z#OU+K3Ca_hb|fnP?~{$6-yJsZhv`qjIRAGqcJrUp_Ba_Ze@~puj!z$c{t4ol*%MVc zBjtRAONOFR>@$vy4rf#M#qo&!bdY1HxGXiXpm~n4pn0HK_;dHXf=?-hWe$B+$p}k8ZyuLKs>C0ry zUZ))R!_7&)tYW&+$=2sA%rG7hbtogXhW31=Wf| zO>%v}Jzpgqd3kHhaun z{V< z`1n5Ze|f;jusr_A%md1M3Tx~2Bs(`;y79!FLs{X#m*|sap)T!T7hLiBGs(JExqrdZ zpkr#^zyI-DZGI@M;AbV*LgmLx=JpDOMeXe5TXSO0qhO87<$llhq&SqA?w<0BL!14v z)@rM*>WLYp7ZYtIA0)l@DPt&3PO6!*ehbTy)Hz9M8GaeZ4}3kxn9$}_l~ok{_T|Ef za!(mtXRdv@+xg{X@#wqX?&PhJ_dO%szK0=C=&pByhFQ^xoD0c|&z?WkdS*#uT}j_Q z5o^J9zMU_2&uPBsGC}X0xu-qr(GEf5`R)F@3X1Bv%kTSL-uZrZcluh-E!+Hm#_p9; z`l(bY!TX#2AIsB}6hD>5q)N@hep9?Ut>&w#bF;}ZF{DhMB9s0v@1NL|Wpch13ZIid z*4tB;l5vSjeKr*kJa{McQ3_Zf2~CaITWpk>5>Ko=L+MI{DJYj~X++1gu^q;Wk4-c$r_fPvDi9XDxO!6}z@}?UCEE)v z)M)2xCqHYg6;eLyFwI0=wLeo;zIvhl_E~?}O9aj;u}ogxBG$g_^xKxs@4{B1oK^Gk z?5YA7l@odLa_{?3yj+;~p)qHR=PS#4k??N`d+!9kc`wVvV9q1gyZ6$oFrOFybA%Wy zc$viaf2d+O-d}l0>m&oyf3XyX6(8T*NTf3@nc|aR+bFhJDDO~}Qo(EH(-}e^??|X^ z&(xm9yhcuOnff`sLkxTzas?dk><*hY9Zy)`+>`$7?UJvPPoJDya3sssa;;$b&dzCKJ08#H!cyf?=_Q?W%!(MT-S>ILhn%%23t$h^Ug{MJI1KD0J!@C`e+4bKkKdVvAfBwb1{Cc#@mK~>m zXYSyu7RvBd`@2Hp|MODOGaoE|+H~5-J>TT6=cf|8Z|gk%UkfUgZPIUDJ`+6a^%K8P zi3iJO$C$LPkz_cZms%FLNB{pNaaJY0&7ZUCKDo;XUOy7^=1^0{!kshUOl%fQ%b8m1gT`>9hoHe5w7V_U7Wu+U(ysb5A_Il`YEP zAY=Pt#`(-gFN1$+|5&bHlqxmPZqeqQGM#QWPUxpBith>53oM%0eZk4b=b!W63%^gZ zUZ3+^KO(YH`MbP{mdlL42cGOdQTpo1>b1-chBos*&#PO=qw{2P_rg<;tvl@YE)Gl* zdwlc6`)JmN#mD{i{-wuo`A-ly`zS|ynf%=cZov}|Wohflpx$g92bzDh)4 zT;|_hC%;6BtPr{yTjOH>JLvD;IgLl$g(vwohFp_sYvf|s88KD-;l~PrMHl*cR#g0lV$+#B{%qbEJ*II3yc9Gw7 zXR6?u(c26;Z1?R&ZWN{8Njuhi;_pM3_e z!aVC=2S@RrTo$T2ap}Y4TCP2NB=$e6lT*BM!%RHgwC1B-dGJnih1XT5^Itmai|=9B z;NohR*JHWu?S;h4Te=L_-*!8ce#h!=jPP~mh}E@@!kq%e?A2mL5h4C19BgZs#0Xn1 zPg_-W-g?$Y?TrvYs0s;p19~P?M|O2c6~>uXj;wd-2m`n#sm6 zuVc4$dvm*W0)5LLpSiBi@Zu6MjJ_Z3$&?6BC$;QC2@$!Wzf_0Z4EYjVD)Zkq9>@5yhqYR;tlH8x?zR_2qRy;(G) zOU>T3;Ny$O>#z05*qh64|8{(lz0kvRVoTeW#Z(<#v5#;2g3!hvGHr@yS|3~3%|HMB z_uMmXoqN3sbpKb_2z?jn?0)y5YQ$irk~apA%oA!zK_pr@oH66>u>iqKOe0Z z`(*1Ze>0P`#?#*fS3W-A`y}yl&4xYl#|`tG7uj(>3Y5O$o%YBcbV*NQNB5-4jyqxmT-}YUwYTecf2sPbY9vk{zSE za@?n@J2-c*SKP{_c!wpvbn!{gA4lb;^YF#&?D}h>{>Amt?2_o2ea_dObgeHoUubgc z^qDvV+pI44X)IrUp1;jdENJgrC1^kEj>jhJov+mI6n2>G;okXS$#SKn9r0dDS+*8u zzX#N?D%y%Sz0Nqrq-JjVm!l#hMJqMuB*&UFp~1Nt^Mkfjz0dUBKJ~)(Wxrb{eOvt^ z*7{_C%2wA$(&tqdGFNT=ptsq~^T%X2xz-%LoUBS$B@KUrwf9%vIQU6$^0l?f>Bi#1 zT(kUCX5~k5esa}wbj+N0`u&qE{+$o*xWD-wL7_MDy;(A5-wMq2g7hI_^buG(A| zd3rG@ukNZ?P)On>k;$tT$lmX)llt{(aZR_h`HnvYE{+Ocj;;_|A5i&U_nPh%34`PB zS?|TCoOFG+T2S%J%V(@2KXwVYt!T;mtFc;;>v8UtFU4;+_-RxN~XtjG1q& zH>K;z7eAg`;j0@lDMl7aNvpn#!-=WzsiiJA;eFg89lnms%Z_ z@K3rq=gQ7aF_yet^F0$jSMh0G-)wX)%juV(yQPq7h=X&$j!&1C2*+=Q<6uQkME)}d>K^G-Lky*ZU<$jUTV_}8OaJtvXxY$1vv?Xzm@8UC@&vg{@L>TTUlzu)GU01q4nqflm(#lnw z>(3t$lk?BdlbjwkRd%<-%z*5jJ3jb(2`}Du+frQY{>v#dH69yU|LL~#dJ{JJW|J4| zP6h|%!tC4km&`GmuKO=??skLC%2~e**1Bx-cp&si@V$Gl^|UV&L*@!+>t`ty*T%)^ zUOl58AE{|pF!93s8&(@$**D50ES8uM>^c4B+Gn}}%Nl%zJpAGW5H zut^y?fmKFEzk3YONl8IlDaiUBTf6%Q)7StS;5b;#xMR zmEWnnXsy1Trv8!0&C)!-gryD^zSEF?lF|{i@p-U<`9{@X5hHGqqm8>Q)^GRP_(e^; zKCn~6<#em3(#cBu56sKcfn0&hQbW&Da>`o!68TwQ8mtU}+vR>t@|L?$g&tv)< zvX2xqKViEZ7|SG>-xW4NsQatKUHd0*Yt~QJ`5d=kV#ky0U+UY90^W+BboZZ;w{E%r zzbD@qo;0R9t>^T=|L73+chg<}5#Pbb?r_;o(XdY<+2f+)kfL#eE}rt@l)3RR^)DtTXcE`05< z@1-!-huc=n&hh%b`9O|z(52UpX9U|EG;dpIqtDXa#S_)*nwuB*_GsOyQnz1K_ilU= zn^%*uFkW1KD;Gnci)NY0!}CjCMP1GnwfJn39m$lplwhZ^p{5@ojGS|KTFr+F70Gd}j-lS~B*{D%dVWXiM#ye|}Hpw^fm=ruDH+ zsI31w@sqUX@o!lnXR8?)0u9YCezMmf>vm_{ zUGXek-}QDJlY{oW#vSaxW(3%t(ea&pv*X-c#d%NW_{He=?cU1#=Ft`DyA8(-4(@l~ zq~y4H$sAcrPb>E2z0E<*9&C3e_}8{SKlOA*X!o7$fHm76yb$mbS)y_8$$abnu#P1! z{ofV8kk5S+=({rfs69jHX0EsD_m;S5rGKc@_Lb4IOk16?wZWZVW9@?-`8kI@+ZHz| zNU9duzvwi+leBARfwZ{F-c`&vV|kU6s0ZkF?bLu7`fL{9qHexbXQRA)!f+ug8R3_RS0X zs(H$N&Vm^;R%vmhPM(zEP$4X=;9C7Tx0)fNZpWX~r86>QR!!BsU$`f<;3MDkykymq zPwjuw?$<1z(#KLV!{wdE_7{dbZ}v&M9gZ;Qd;I(FzxVb3rEOmCjng+@zyJUD{r`Kl z*$N$8j{N`keZPV6>>W}9apkWUH%$&c)?jky`|rQ=|Nm+KwV6NkXVu;fOP)06q;#&G zU!~D?JR$MfPNRL^#ZFt>eino+X_#Ykxb{}ekyUkdk�Cy_FPIB)vPl<20&12>fOF zxSF+1#6Cbz;>fS(YKO9x<_a=Q(Q0|O{7{3C_|_NCO7omfnHQ>sPBeM5XYTRet}pv` zAKv=^L*&=wfY%vIX{68Do)g9pEY$|6cFsETJzZRl|4&zNe!#f zhO`e4^%ajkdf}TV#;PuLj9WMUvhdWe>(^`vV_fg7u*U8xOUBlP&z0^Jz7L+f=2BFC z%#-sTm6H!|`}gN3^O4!557>`h&U*1@`j5Fjd}|gePCmPDg6Y|mvQ8FNrSF9^eGIRHc+JIA>yWvI-{C{-_w-gCm+BLp&7{G%pJhVO*BWVY^dfR-Vq{w4@6Q{2wpsZx2?zB)lf`L4{C(QsuMgey0u3 zKhNymVYuP3`74#kQ+NB_65aB?#k^l2D=F#fCdYH_G5__QG20g2NuTBYG~tGzk3!ki zgO2x;QrY;G*5_XB2#@!9_Iu7d@zyTgm#6xttSs2dGE+!bJV5z!K%Mo>cjdtc)NZXh zA9|lBu6OzDl(YbINDpm*=d>P@3T~X@bG3_x;}&I~@^}_Iu*L z?VD+EdzSl&|5G@_w$6R>m0{2Qs&~ttvBdmZ{pH){zzHXQmS@|&{JUz4!jox>e_QUD zrqll1sf?SUsNvnurKbPF4xPOlD0Dw-Yx(tW%Q?31`}k(|JI5a(yUtsDzrfkh_v747 zho`cUv-%fIPTKd1_p_8$`Mumnmk(QtPh0gl^Xu0t)t6$YmA|(ynrAAgGD(kX>B`e* zz5n#xtbgex_UF(hhwc9qW?p$2Gf!maitGNX^sY;}si@CBcGEC?_oJ#xMg5|W=leFD zzQEs6z0jlZN#n7P%l;fauYP5Qj!MCN=ddRwSAtd_IG`GMb(6Y?C8zvxJ&ms!CpwD$ z^tLs5@~;h3PGiAK&a(@d>irdByQKOz@r5byFj4s#%WS^P-SbX%9-y$xZpZ;DVL~NAUiF zbZ*C-S!ZVpUApd{?YC_WL&mD73Wx40p84{$c>Ra)!^V<#CNEz0@6S)?)aFD94M+Zi zkGLA5qwNp>-@n&5x<@ATn(3y^*Y7?58^3M$>KH5WoXtwfN=z3focq6f#iXeno_hag1Gg-a0 z3s0F>Sf5`cBhdW5<|XfrH%qQ8(_wY^=OxOcc3&h}WU_41){FVSXV_R-9^`S3m)Y;K zx+L_-`&XPss@Ct%*L=~6e8~9u|4e2*QO}#pwp$mnUN~av8ya)9FSNc$E>kS@zSaes z`L4g)+V;5b6VTD0F6Xx_z( zh6j4>cPbCs2Cb`73;n-F%Iw1Yo)bF+Pu~2sHM?Tgn*Vnzu4v4)V!yEd*uP(2Uq61l znC<_Y``S0M?(}WBu)VWIZ@cb!Bi^~CW`adtleccIz4A}xXz))CBkud(c(tcrZI|1u zq_pDw`LZr{hi$QZcmA2=g!+hui$`v-DEx1YT=>AzV=z}u!+r~N)> z?p3X9x8Q%MR35H)&n%EuoLyYF|&y zFH8I~ap%Qm4~>bX0)Y&hu1DEE(_m2jBX&Cd%&ya4_88y)`F++utF#?6=lk!rxrWb<%|ke|)(` z7Jg2h9rZ%I=61=YDJ)xGeZBQ8Jt1swnL@n8O05-__s?1Qx{%i}>GGbK)d`XbI*Jiu zdymE}`sbN_VCr+-las>wIa#jk@KCo=;|h6V_j=ltgw8!5&8BrGUf(|DjPi4{Z!)VU z%~=!Sy)0`_j#YY-{@I1r0uhs**4WEjIh?iM^hsWF&YVPBx9OrAKbx#tYgzWn;(}5B z%iFh_!<1ybZ%5x$QjA=oDBKf~dTX-6(TrdBEWi6*ZOwT0hHZxQ42iT(4cJN>E62bHrP|JPJ)Vvl%g{*Y(mH_??Z|Ns3S zzsp>E>LMkJ((do~4tQHENbXTQ9n<+^)y6XJZH+UgcbkG4&QiUtZ?;K691t{$1o5KD^YikyrYn0*qc+st zRo{K;-Tu12t4^*mp8HPCarxU<(G@mwUq7WC$kyu!Guis&Was{K6VFCo)LS`qy`!)7 z%?&~8co+P9f1lA~>zZ3F-_&K7mo(|kleX0d){|LIib`nJkP zJoIw(IYv|s7rannD|zr3_h?eXiApFUTf$#uOSCiW;o zS^DMtr?)>|b(^&8^)~YoWqJL4_3yR+zu&KaSrO{JzJ6Q(>MeB{$syL4?{%bUCzkJ& z^DewUQ{ko9-ja-@TJPHZZ-1Y9bL{Q;*9*J%emf93IUr}}!U^foqM^H$Ht`(&xU|gM zVfjyk(;=(u`V`*HSfLb<&6NG@-=1LIYW*kDZ}-Psa~AbEnRR+nsk39#;U70<{#buA zD)sea{vL0s70Y5KbvBpQUrn8VZm~xDK|{em83%2x>m!T2uL-0r4Zptc-J{9-dfER@ zv3;AJC39<@b3@d!w~vi{voeqUHru=M_OaaC-_G0r581kqH~s3p_|WcYYaZ5Ebe>w1 zQ;_2PGw()H`R!xRN=)9)@2$!6+50y~{_iK7gDadn|EyeH<}O#RdH*uATGok_O`<;Y zH@2CD=A@S1-r~wVu{?S07kQl%^BGPRtMp%0WG-DC6|g~9cjni(+fGc63mJ&SQ96x$5xc)i>s5)!zHd zz*~KP>4QAm%&_*=*Q5AV&IZWVU&*cUe$VW)rn|=QmSL3pk-Yd9-_KjOMwxcTh_0!; zxJ-Ix!`Z@+#_8J?_PyUX|JWpj<|e=GFHR_(`=KB&{#ThPW66$p+!8vq%dXyiH0Sfm ztmRq(8*S>s?4~&$+?cZT-1&@-eH(&T{zI$iJ4_}sJNAgu_9hRoJZ54@H zvDCn#T+c{pMg1z#1l`gn`K#~G+T$APICEZ`i~Fz5Q{^(Fw%0fP6-#j|SYChX_@zw( z8&az6G*%p%w>@l*FoWCbjXS%irq0#1T(H_B<>%ku0L!w$Hx0XB`*!0e!u;!is|XriOXB}b!Ju1&F-%Fkj1O(cz;#D>W_854&{X< zZm9cudTR*x{(pCm_#M8P{6HnxS8Lz0=K_*8o0IR}xM2~t-J{c(%VCL2==IRcJlYIL z>mL94x5X{?xWU3O&7`T)+2X7HQ+8>-7L#1B^n2IY@9Ea}MQ3XKGFuS3D%qKT>XTcl zrkh&rLeJ*=bx*vV{qOw$Km5_^;i3%RSkHcvaaNKJK0G-~c8S5>$sb~#@h-?LJKXxJ zBxbdcsC9~6$)C{I@9pnL-ZY=IUqmug(Rr%Q(l7a(GFj(VZAuKC=eet{+}BScIrGX9 z&$*1d7#PZAJY5_^R-L$gRlWJ}9A!Q>-@I2_4z7Bh^7OpbChfMZTi-O?u={b8ZT_>R zI`=+IZ}oMzW@=u3oU-9-Gx}WvBPfIhofZ zzA);HY7Aq>%FF;e*=;Y{_huC2dfyjgGq~7(RseK4cd$gp9~0^QGdgGas?_PfIj`vX zszvwqy;HjHTGUUkI&Si0`nIE!xVt4b%`9#AJ)Bj$D|xcdfn80d6@r`lraFuE&*Hj% zjp4-ar#2mhYZZPkFW$tnw=S7E_504PdFH3xs~A$e%G|EGpX$E*>_^hxTQ%;NdPU~$ zH7)%pWE!$v;D4-+UEtPhO2;&!PENDm&8;J{VS-||dL6?q{}sQsTwZ-@v&#y;M>_wL zc&6@tmKm7p@_KLb<4M05P0Jp5KM|a~bG>3j{jsCv-VW*0UATgx!{1Dg)xGsfwQ`~H z6wA$?e{yFDcC3xxoOEZ#H=*lkk4wE^4{|#ZUFK{?oR8SwCq* z@ZaL1yH{?pg&uMDR%w0k>5stXxyx5>Tzl;LwD*~tCNNZKUKdk3v1wx8OP)9Cw^Y)6 zCWWbrO*$f#%DF7)&!%1LcX~yI)y%ER z_gByQcEdL5<@Wr`b=9x`|M~eDG_b+P^!5HWTtH@-n9jN4^1vx zO1@n2h_CQk$kKZkeiq)V=V@AB86d;?&EcZlOOLfz^nxx&Y_1P);EPLoyGlgx!sD;{ z@BVh(>GrVuIB&lH<=poUk;Zp|89SzbS}^UO(=qo~@0W>R;q0mXxV`3mk@L-MYu~N9 zxbAMp%*pSjT~2CzvFz5<$fp7EGydMpjasR?t>|T|Zn4;dD{UcCt5i~%ZmwO^{o>74 zDeqW;a|(XdE5Ep%`ElT2*W{VMl}oSJ+>mSjTPbMZd+gVd^=oS;&-Afe#(MPkS@%<| zVQoP{DYlPSFMI2oShT!UTQcWCnbi@Yo6~tdPK&s_w*K2blZU%)b8>_qhH2R5MT=f< z^?CZUH)CqJxZf7VR!!y*`LyFX0?AgLRo9=~PAL_sR^^T?HD1hcL2a{K+M%lN4q6OL z)pOZh{|kv-xN39y^M$wR+Vi9D3kbZK|6}ihTWhW)?&?1-5qa>Um;4&H@{sMnbc0Uy zFvzZ)UH|@7F{Q4-Yf>`T>1Xvde<)H-p>}zT6k49{(tU9 zjoiC(p}K2kZ=4*OSES0^%C);>(b9N@Ww|+lC!SUYEL(NxUUzx8`_BgzDypAOSS(!? zVZs>8l9^lSshxi{-YzG0a>PlV1rxI$zu9(lZtA%_?cL&^-|x3Ch~7RgR(rll=#8!C zN>(qAyW~=^{9oZL$3{t`SL=?1nB+UpEalGNyZ!ka+tcW+H(EMt)vcdKZ&s@oda+qi zl;QQd7;rGoP{-osP3!?BMpS zX)){HoEL%H&rQ}}Hg&)8>D4wXyu8@st&%TxZkXWzC&+O7$+K79eSLj>y_KPO;-{3R zx|uwV0#r8a| zR-SKh?n?Ikb$_!yIsRVhDmCT#gB5dKI5yP=0)!eTa~xa?S7%!i_>A3&rjO$ZPne~_W4&9U+b0o@%z5GqQG@_ zeWjG>M?2#6&bmy!xHe^t`IXxBGx?OWUx&=l%-QrWOZ~*3rD4lXbvSyi*7p4s+@O`V zRORlD1o8UC!AwaTE+p9Q<~m$p`#9Xvd7aF5WiKY%ZDP~YKc6&foFw`}`P2bHucJK4 zT$A=FC%^5T{;xpqHgEOSyxSW!f}ZIetNrV|&n@RHyLI9H%f@d_SFq>S?_Dc;)jZ|=lDPeUEe{>6SD0h`%D<>; zfwRiqYf@`>Exk~!sC}$x^QVpfLb6|faV~3kVdn1j`P^1P)5YHmx;3}+_=P;|3I8W^ zB{4mRVQoOZ^lQD)AA0M4M7!4idT7%ndO3dH{nl^GS2axCDZcH-`l+S+v~#@`<3x{l zD>{@v&G{Psf6p3~>Uqkawg=0vHsT9=`AN*;d-&C#Yio24nwZX8{rsxrwUhTP*Pjy? zWIK|&wchJN>!;U}Gu=1wa9sZP<%rr%kLu&wPR|kfD}GM@aHQ)z_IAmm%Aua$8f0xv z?RC17rR8sKcs-}wXKhw{&};F#Yc5N5W-Pz3>Be;Z@A=M}xBFL|d;0&+Xa1?DU%qy^ zEA{ku?n<$+NXcJpL5Yi^PJDa*);*K&O#`RWCXUMNKkOcItC_Y`d2VFa4BdL8<@BP1 zc8ixu9eASbxOwWft9h#456%|uYF!rj_0aK9zFVAGnzuJ!?Tk>sDTV{_l5cpg<5clO|^$ax{3m!Dj+^z!r{FDItiDX@nUHOrh z{cx$AK$&{*FD{2A^S+#4yM38b=VZ1k|m)vG}+8%Ih{@%pal-yqrd78a`JNyq{ zqyKVU?({7=a&K2wY!F{|HX>*88{h7L^lRle%cXC=ZU1{jso+-QFR9JHraTv)+NL7< zDeuj!{|k?D8?LsWx-O%pKy*oz3V*ha?F6%D)9SUa?E1LH`|8A9)^jZuPkm$PE>_6q z@@;~_%z0g5v!CgFdM%&GFOj2jS2H3be9oz3YfjJlA$EVq(=&lfGs+DUw_6vo-QN1@ zu=cgPC(p^`T%GXCQ@~1L%LSKfLEoN^O~W>8vsym*GcOn7h8 zU!C0=(R&mA{Zqa6?fx~3H|^(smCp7zt31izt}!!xThjGE_tZ=7)-!)eT{(^6Id_?l zMc8eHr`6LuYb3G^FPx2WH(q%E)1B{okFf?OuIT(~GHuqjb#0NC1OD~*_wQ1Q+_vkG z-TavE9!qckiA>(Ezs-$JA>OuwA`_?+k0#`jXsBA*A(ZjBH9Z?^LJ*fygv}KV?8FWHKkFBwv7_a{HL{9#R<+ee$Ll>9)sf;jfUcc&R z&!IAx+Fho3wG0ad6FnO>JL)EQ*-#+v4~0o73~Z>B-u)&a%f?I&${&E;c)u z8Gilq276~#&0Ra@>wQ>i8-M-frT&{2zikq)ydD$uMZIilmdVB#F&*=*w`F&4OhIuPh2edL&wQV2Y5UJ?Ucb`qUed~_3-kLvFqE9; zje9-6bBgqP`TFNpuRm2b{*Y;XRl}MPDy#H&rq)vy&boPLdEb7kgVzwsdc3An76QgYxdQ=qBXSJeydV2L+I+RlkXs|W zY1IlAR zzN`6XCfwnRict!7)nPq$^TFw?tumSBy3=B({?>JjpL#_(?EjC-`-c^Rf9-1d8n-(3 zimktOO-{`Qp3r~Q&wEzC3N2*3-qgFguJCB>`yj4K=Y3ACd$ceuFE?n>w(RZ60nJ}! zCImN|XKeEB4^U5g*3tZI?$e;sQ)?cC=e$1ZB6INYuSQSl=zLy=+kXm$4}LWIuXfO& zde5Bmr#^4+E^W5jyeW3?>ZA*Qe!P90`eimlX|cnuJ?qcjS)1w0nDH_@cmKY9D@-@e zTP`1T!}H6;t%|au7q28bU1hv+cVg@+yP&XtcX#U-C+GFX{wNDkUE;VsG~jyQP0DA_ebdmGc;nHeS2AC(@qgd2bdA{Cxk<90 zuE*DJT)ys*Sm^e1iPd?h>NE3he_mw!y7${unXf9he|T_x$*KQ)N%%82TYx_LU_%GW-SS^3OT|K5v- zJ2$TiG`OM_?Q%FsqK!50>LtVbOPOb#y!B=BO*fXOhD)!U|DX3cLF_WKLTF-U^P6o8 zIlA+$Cp3Q25q5u(X!_^ZucZ6Zdgr?nZp6*;O<69lyX?Mv#>@Tt_RVTv$n{s(H`{ya z@713d>hUMYd*A#1_w(n?xyl(Q<)2mt<;b%o>DPSC$vMw>%5_ap_~-P$&%Upk6@77@ zcchrBBdbZ$GEeKh^@18Xz;y(@+Jo$uzht(x-b zV}k2;0gJGV%O25oZ)FqXzh#scs~djFihlArGc)7gfwij+POO`Dc*v% zU$)Q2{^~^b2HV&#OZF=o-G1sUTJP7!O__?mDS2i^@B?PSN70=cD zu$skXwOW|n#LAR4YB#I;=AIW4{IdC}*T&oS_QB^X{{Ee^`qk$T`jamSbw3Q#pZLf+ zRI%*vC#lRCSxY(ooyxk=C+)LidZm$M_}S&M!H&JZ7-u}tYmMFd`j(`mknr|9JbPLW zP7IuPr>Ef3+?-`0Juh#bY`>emKUVN%K$Q7kO+{;lrMoUVw)t&LpOh83%3yEjR+B96 z%xyk;fv?}6uwrJaeWGRBs2n%_`N#Iyt8po>ZBM;wpVs!W$Is_|C~In&ozjD};7!d5 z=VA};iVpa2Yti23yNM~+b8i3Zcz9?134_-H7sZs!x)aV#lyZwZaF?&+)V0fp>gyk~ zTrFL_ATjyEB=v<)TF*Vm%gJ8)U)t!}|9`=Ib@x{H{VVO{ubkzI%(L<{3eAHhnG^WS&y$zQiqS>uQe9%QHFWq=#yKTf-Om+e$ilvsJ^a9EXD& zRxL5}3gw@3YV+-jqJMAxUbl>&YuPoQ>wC*icI=9o7+0Me#(2U=Kd3)6lY32K!prGb zaw9HVESe&0u}kgdpQ{&_-B@4ml4!ko?`j*xW$XtwJ-8&1m)*B8c%GGUbrp?(u%|2iEP`su1_0RtQ|4tWaxO|x8AQ=g zTi)2D_$I&lqFF!n*NkA3z57?b6_gb{T{Jan>dZU;_gOF4;5q%T=2F#HR?D+5&s^bh zd4sLq)%Gsi$v);~vo?6uoXm=eZ9Thkt%#U%R@Mib+Go-0SADYG8?W2D^|jxHd+(pW zpEEIXsZn~wt){Bb@Qt0-a&wL=B&{tdDlqw+;~SK&v*~eASw*_-o1V`%XR)s?4^X=~ zi@!tFn0Jq}`Ms{@s4e!tcRbqmY_}#`Ea3XJ=IOuo$$w5NFJg;0yz#%& zv9}JJ0(Wz`-TxkYw`SSW^hsj2dD+YD@59N&c0B| zvijNUE}5U}cZs`e3tcp2C}h6KX;qtWAj1{ozSjqCxo(-@-tl#RRPTagqHnGy*afZ0SBibTYuB$m6V%;*^<}jA zMutAEUd{JLH~T01Qq}!?4_e#(U%mKVgl}Hw?rxpXa^BshpW;vR9g1mvTf^ybO!M~s zV!K7mETRnRjNZ?tYwx~WzgfwD?v>1!PlRfEY7e_?JlgSQ#vIxDT`z<6pPh-WESlxK z^nbC-tMCwpKCuY?Q}<`_?ON9m9=`6^Zib&LnB%2iKkd2wPQF($t*g#8q{5|sy`lOiNIOD$5 z|E9f<_Jm&%g-aP(vLXwRkiFFWNn z?S%CEnW|35Hq6pGf5PrfpYbQLDbFAF{X0F4N7VP*Qm%#&#f<#RtGg6)SO45>e016s z<(bj5n&&qc2c3b~Ck8&97`o!|5Mm;TD+QdvBATH`3~e?XpI!HHR@s6Wp0(c|x|to;by~G~*Tt%&x%RvN9$WWScV%7VN9(vF zkDqWmgq^*5ZRMw`0{gm`EF4@fg6@CjZ+iaNs_ioK$6vqI>Z@`h9j<&Y7cY~a7FXLP zbF*aOuGQZXZT?ptJ@D$M$JWh%C#=1FU~6RenTU(A&3@Z@ul-1y7;5p?*GTM|{S3R) zf=Zb0`J1axM!zaWMATn>W*h3%>^(>`qnM zZ+@q*{{O$bV)2{$k`}tVN>2(&mM|6#p13Zw^#4DlBF^(N(-fX^d^wt0-&el=YIaut z8uh*6zxUb8{eQkBX=Vf$f9#gG+qZN~kEvxk{ds}R#+IM0r#5N4`YzLTqjY)fJ*S2x zbrD;(FVKzCKYy?7+tZwHe|`v0dL!xH5SBe-?twMwMxSIZF@G~Fb+yV~wq57fv>Dk8 z>rQq{Y05-f{|=Ws5w@MVbYfv=@1-rTZ+$n9NWGD*efn!?;cL_I|6A_)x(lYVmcHK? z%6RiI^DKuW41yO!xBeW*fhWRWm(Gqie%8Nzb<5ox z+i*?4o4;RA(SFMsd(z-uSEcJ+_1}NWuQ8mtzMgkMh_HsCZ^*5NmwO`Sxu;*<8^C0K zKC`3v?T6l*`^^u1FHVkke>W|!)BV~JvGbJ+HXaqbqT|~4&+9L9(1P!|eyep@R*UiS z+t?SqE8oI*`cZbRV#Rf*yEk+btQzj0zcx81^Sb8b=nt7a>6dEH&Xrzu>gH1QkEc^! z`M;_(E&duFYFMBbSRb@nx1MXB{&_Al>0N7U@9!2%b^oHjk=@N#_@`5`%KwMokG?Xu z|M=-+`qZ9zRc9an)JdP}AgSZQx7pRk{?j|_xdj*gMx9$#Svhr)kk0j4dUNlr5zOgX z)0B1c>M|w+cF>Kuf)6xuNIdU zu>6|-e^pV+_iw4OyY7D8x8!z}gO;nP-QYz;E`8}u!XtN;E_)v9y>HHZiICg%h0Eh^PTM$7^K#eO4ZLYn zIZnS?KkLIw&*ROCM{BP=yu$qW`tkQGI(|)j`(JlwhW@1bBirsemCU$wF6Tp^XuR5K zsb{+0|2J44%FHipFL8gUX_#p8`!Db7lbw6q1yfBUVxFWdx$|!3y1VI@j?`^(sG0Sp ze#@cas9Lq96SJ@Cp44LfI;UiBJ!R0Ko7wNpNb7>BD_1tRtS&o4_b7|VzFzZIM_;>vxD~}!c zvsO)d^Z%n8-~3&*$1gZ4-Yq!4@t4UqzU7PKTnhN3{8Nwanl?2r-&!hg$^WJAH%e^U z5wl18azsl$>PM<2QVEa&Mo(IuOvy$`*g-)Um-=uiCBb-Oir%2%XckBZ9S{PyD8 zI<2QF{0)1yon;qvwljYCzR{Gy*N3O;YmwS#*4J;iJ;nEi-e_AsZT+2>wzrr~wj2nO zyOMoXNlc63ZqSUYH%}fh^mflOnozVX{n)8ZEor5XCjOdq=3v*}#CwWaU(=6gEp&8l zQ2k$OeO#)hnQ5A<`K+UxuC3lUb(-^n8@vBnH0@X=`r{t6_s0!VuaCbiSz39T>+u~y z?|0vyPh;A#xMipz5%U&+)7q8vITG*z1YL-lR{#7y4|7Ux}U(MTp>e0N^ zsS4Gh_9w&*@+RzMZm(w8)h22ACHUvm-r2JSr9zI}d3O8s?yqm|?PomAICuH%9bx|O z&i~%D`mXoo%ahk0Um0jXG)8Z~) zt1VuJGEXX<{=GI|ep~Uc`&r>j-p=lD`|P?``Bxa%4!;9EsyD6cS2g{JDCk?vvqFwD zlJVN56FbBMc_Ni$zsd7>G(Tlr3u6eZT`Q?0lVGDMv=b<9!4#qYFT`giW3U#~L6Y%eo&1;t! z_NCt+t(e2f>E31@Ge95vqD)z|R-?pIclPz=Mt~UOe4z&p~k@t5MuF{Y(H(0r> zrK3W2O?r5N{>*fX=#A?>OgF7rlC^J|_4LxHyH}2T+Qq(^`EuVmW48&$kyp>(tSl>v zyXQW=ElqSo=>7BpsYUbrs~I-2{@DM^Il9In#P)%f;PxLIHoOSP->_AA->i9a^Y<~C zJ-li^_wW1JC!C(1SmS!+{x<)4{ZH24i#O}OT({uR#;tobv(rvr_&y=x#Gl8%&;C}I zZ9E)Q)%^EPERVwc)t~fWw*6_d`kAAC3ctJf)YvlWSPst(pqSDDS7BEIpGj;3<3lb-brLt{xant#p{8RoS|HLmrF4I1*&{A0SGhk(T+M`0XHzygrYonHE z-ZK9h=+AUnTjp{361BUt_*Wbh^p0CHFI%_i@Z-R3c5ha`HYuL^L4h>+~0cP zbh3J}x_o62U#g&Ez4*t;cTZh-R5Lkcqz7_XHOG zs130G7<=`DFBc1BC}jA(LN>axF*tO`3Swr40ihyT@Zdm(sQF=*YC_cJ{f zK8vhko>dd96jZm-o$dH#(}K{KycT!Eb$;uy>+ZX|DAcxW_P;}~KTO$m%4vVsV%>UBx2HX< z>%QODd}~tbPW6S4B=%obkavH#ea(-9Gv+6l_+7Xfkfb~*INjT@AcptjZ&i2x|3&tP zJAT=wy_B~$zAz_Yzh&vZPWA^{jw=5gmp;Db+WT(x6M<{fLcdMCy~#HJ_@%jRL0;z^ zp2wuFh}AwmFMj@E(T16)0>erteErMVy;>~&#P?N)#5%W`{QJ&swlS;h%+Zz4)-3bP z{Bv~fgGhCYXZ6!^%D-=k?V^U&n|>lv1? z6rL`V<9x|^>i*qC-Pep8Y$ODk8Ep@%EO~hR#w4CO{Ee2D>F&$(TH7!4Ki}Zx99Q(S zP;y-m!=}gn-&>_7|9<@Sbctp7l!z z&Utie=1hIY<@csDHd+T=E69l7V0ZW_n`Kqp>1Xpp88+n{3tAM~)xLh;vCo#b9&8HR zaBoZM*_%aIt2e&-DVcq}@Tr{dE#?iY8a&)(Y!g`3)u$cUK4I>+r}kT`wuH}3^$~1s z|0gZKe2r4mUiFP-!mrF+)B=Qq8Iz(nvLysHbo^1#l{bD=5%yI|J7bfGsqNnKl5*MS z_d6yz2=ll+V@a-V+8Ov_{qN!zey`gXusgi<|C*Y}Uc}XZ`&POLL%d>Vwa}bbuCHe1 zPM@6S!y94Bw?66Kd&6nxwH&ji9*dtyy|R)BE*1u~$!g zSbt41k>7sjxad@mypJZvKfU|Dc|?ERGVkzW-j16e>#wrUxK(cBrQ>trQ})*PH&)2* z?$qax>M9SrvhCK?*ye|)!@q3(s;czgnv;8LBd(_w@u33yVZBgk#*Y@ul6SIEB$)rZrt^gemkQ7U2}fqePG{$^Z&N)dvKb|tMx^M zQ_Tg2_5V_4zPfqY!hqkEsoKl`!h5a@g1m|mlPg%2p7KfP@3K4Wp>|MceV40UQcZ%` z>yVx7tyVhuX-i_a=mu@bdpxO%vp96)pQn>|uDb6RAd-IOTlGKTInPa=T=lGGhznPd z%KorwQ=i`TTlZ~m^Ly(Y@jDV|mR75il5x-U{b|+7e?K#SvJ|nht*NQWxi6BKwEa=R zCM#z}|7E`>i!vQi`;qsiF5L6QDh7Ji<)#5OHx!#exG{>Car>*UBU%FokpZS^{MV@v-! zH=mY+65BR@%X6L|Vr~55#f$GxpV~5nbDFsKmrQ29e3H5FRF~R+o;HTwt*fmIdMw%b zlCHLtm^(W5Ch8tqu;|#1;1>_FUoz~wU@y!qGV%1v6EC{oPZL%U`t0oeacNoTm2+$- zkMO?r^HSfm!umeD=%)phc6M=*n#Y+wDA~^3RWoC?NWLAnOxi>WW-1^x( zjHk9~OJqk>1#f+v7_fQQ?Uvf@zgYBNc3po{bA3_#p-+2LPlul`xysC~eLj)D;p)t+ zo(amoHZyxq{J{EU-C~7mJJFMquQEP5wD*tZqm43~U##bScw*AlA8wyIt253&JXCq1 z=+xHFtCAjQFl@@d>2R^O`C8Ycr!hVh0$!n!|XswvA=270JJEyA|`u62cW}Eku zTm5(9y=9?y1QfP*i`|>D=G)U21J<>j**j;q=I?A*)L0O`&~)OAI(w@VntN@sIaZ0- zWnS4H^lPiuy90~3ZthdO-!E8n$z@Id(Ft#qUpaaSclq3}-)~Qq+R$dp^SSni7SrF05w{Ds zP4;0dP$|9Yam=Y%=Ow6}#XQY_BWvx~o>j3C*EhBO&aSTUt~XzLCUR@dCTeKTUeiGuE@tw`W`J&n*04>Z|f@UB+YnyR06v zaZx+7SzpZj=fip7;Dp(d=R>FER9xi=mu%9_d(OC{Yb*0LPSM$WY^*m%>hH|z>Zo8_ z>Ur2}+9ZY=@mGJZ-u-=j!=oMBWG~u_GF=hsX=Sq%)!X>}?sv{5Hf+5f8ho|SbQdn< zeCIeZ_FdehP(`hC-{v0tRpP%)?`50MkE;bbrvw>O;|$KeyEjdBx3rH9OKMN(<(sz7 zYj?dWT)emc4eOePF47DCMcOiF?|q&9Tjiai=f~*Y5I{ z{w!U#t^R)Lxfi#7>+WreRZ``#+FI`W@6E>a|5oprs{j3+ApQ04r}!;94qdq9zT|e< zvfqscWp>#L9eebRwpO;Ud8@2P8GH9WtF*{zA@}dhv-SU6&hl%WVtnte&LiKB)PI%b&RYBJy?(iu zWrW?0!sy+~fB9XW^~^k`>%G5t+3eguyuJHPBhTOa+4MN#pJ3y&4y$<4suGjcuPUcb z+`*@y`(ydZ#sB|&_LrXWitqH-2wv5!=gPc$mN)F)V9&1C$r8U;On*OHf@pT^WMkn; z?*n$xuW7v$pvyU5kFROnEj>vj({+QLvCjGD z3nuE`&VN%Et0(<8q;lEbskcA>TCslpdNG|Vb{j7R87b8+oj2v%?@;q!8Q%3~^Oaxi zd38&CcB&0?ztb@o zJ82x>E*~(Pdv{X?)3o}+s|@n?aUN?uH;QsD_g?xXo=Iq%{NcrFddI3aKEKWoag*=( zw<-6mSNA0+GyOUcU1NUm@2WrHQ-23LH*bp3IIz-qyM}D60Uh>7Vbn#QW53I@7?cKU| zxs2GOg{HB(hb(7)VorJec#h2>W&!^{c3ch@J`@&J@17XGywIF6TlAoSg?riZ|Jy1S z#^&5QwrNuT%=+&2RqX|Ghao-M<*zpu0y zu51$tWH@$>;Ye`bO2&zG8i`@8oM#K7x&Jzf?!JACGl273`W>hHHB3H?3%J>?2$uTT zSz49VhuR5FJMAI<$w;nY_GT}(Sh>Shp8O@V3uZ0-zo7EVzw+bach;Wx{YZ;#+SC(P z@iDGWzV;WawA&x7f3qO!*VAl|{Vz0^)>m>0zuvv9Tzkrj9lsh%JEK}A&;Fn8wUK|> zclA$?+0KL;t|@tK8ToL&){FI<1nx`Ta!-Sg8Q!S6FU(Pv zeC_k)SnWe~zkd7(NZpiogwNZ}p5tl9%eM*=MVDU%tMjPeYL}e6>!Z_B^;4Ty>&$IY zO)jdu?xW}X!_TMhk7?4X^qEIYTP{`4^S-fJ@jdr$Er~9HbcHD%N278KCa3SY6=vG@ zd1ruP;USMlH`i?vkiUD+`u_TmyVFV*$Z+01=Olmsiv3mA5anBy62~YE;&3k-m?#FHO#XO3m{;rLm?(yIK%M8;=m*P)vUgFI@ zF~O%^@KNdY8|OcT8y9M2ZawtA{ei#W%l&0)cQ@E)l;}$~+GS^ipMRh9^l!?}!|#t4 zsQAYu%;FU5+Ws_y|G-_HM~8iXBu?|&zj4xP8`ryBb9{c!b0}>LI<@)uf`31Mf6tGs zPn){IOIUlauVcj*bbv_!T>Sgh;ZY3Gbhg?m@O+ON7_-C%Ojnt!kMygq&Q zY2|mh*ENP$7&N#3W^^(UUd9k%y4^2|P0n4lW677^>6bp~J}%ZVU7+1Dy@w%p>Gn_k z)1@`FXDq8uOUo&-;m=z5sj~Rf%WWkVH~ZbAtd1X9AI_<|E9OG~mE$w_^o1on(T*(6 zn-}*=X~Q9TuNFH}$ zU;W&-<*mi~tJ1Rkj)AGQ&m*O@uWMcL-}%A!W!&yl&jrrZZ_-`OvS#;5lS`K+KFXf` zem?Z?1}`~_b^o$OH{|36DXw9^q!>_Xv%}+M$NOo~vrk$wn_bAWUz2pTcE8ueic0@t?4P(cQKWlI7%i(SRtsAlK%Pz6-W#5yF)_gHqxarS5-GSo_-TrU83mybZVg(zW~agLBjS z>T6sD=FAszoxRvPDtvY8R}PAwx;}cTfHUe_EfXR7bNWxc$=qF1$wf-Le%Y8fI>NJ4?JH^m?|m z>;Iq6=ZgutFt^Bj-hcJRPrnMq2aG#3)z8T9dto0iGgR!0M_Bnc1`)%KHC)UQ5`GVE zKUk`Iuk$Kr)T767OwU&(RDHdEHjX(VHe%lU1tJ}5UH9&*(ft24`ERZ5oywK9=}xQ7 zf*Dd6+`Rn#Dpju3h}k`7E?u17#(HYDPl5T$V-Bs?+ZL?x+TXRCbNZR=@{@mF$G@0e z_v$(8w)e8ex8I!%5q@zjm+k!h#+>?lz87mNL0O9Hrq%h|x6<|O^P2WY|J~hmwC9Wc zgY_v~a+_aA*Im67%+sZ7wV5X}?3$9dx^`vI*_*#S->z6E-_ZFc$S%#^^6&ar3|r;@ z9FTTTOvrrV-^UXFSK{rCXE~K-ZKAgxG(2u+i!3{sAUh}JG_Qcp!HWwm)=Rv4Z2sij zqwD9N@u?Nm+f3Q)5X&4;ztnB!@y8c!m_sEsR7x&$RZe>TUhLB6SMQIW)?jFlnpM8( z^pPbDQk4pSeng2q5%_+3`MEREM`~+pcQ79>dVR_&Z2ozTgiB0szqBRq)ZgYHzkRpy z+{UZ!y)VNzOIbf&A^&EN>FSL;RWh2xpSu2>tRKHkeW#yC*2S>hFY=sJKgewQk~O(o z?D3Lm*;5w@UEi^0qWit4>(UQfNzSp@UA477zG<$&N(Y1a;o=r`S=H0qRU$uXxnHSY zFgg6|?ER<1zOT*S@}4b6DpXs;Md#%`{W1ZQ1l{-B-_-7(t(XwWabcDCn=O1+hc3uf z7EBLG4*J!9rQXNZ{1^}(6Du9a8a`OD{E&i-FZoBj3j zbx8-_F->jIJ-H)$-u6jvQ}TDe^IXlLUTnHF)LDCr=D(2R%O84Fg}Mj5WnKCG+)hVh z8Qb_ZQrqK?2L0%g`|5oo+4_=(=)!7mXbrOI5H z)1R_8Gv&oBIL~$JX5H+KVSTETo!!DMxW%5h-@e@3!M@-~)4#u`*M3>5{>#0D;kD0p zBR-Q?v2*1jwlAN;_&Q2^Y5bz9&^yuxCas*;E>xk=AI$LQ()RbYU4LYnX5P>GBd_s& zRm79UtkdVO3Xm<7e>tbZ-0}0g^RumHU7cLIvmjd0;W}qPtwNI0&f@)d-~O$#=5NqH zaMENY&*tmLHuo;)O*D<$F)p>Z;RyS<9;l_P8n^$NztQBD3u6&*A z@cn9Z?z{Bbm3azBmVRkb3H!fb>Hm!Lo@Tz~CG)-{SS&PMrFJ1ysB5iRiD48Txv?(wHXec zG0(le>_oM=o^Qje1dKezUA8h&(Q7g>_P`e%aN zGM*{V8`o?95?6f6uH1CRt88*)>5G3iZSRY|-tG2lTQVeUWv>rLtFU!CuuKYq*xk@ywz9{v!K>m~^woRo_~*|3 z=*;ox$L}AfZ2H4mQg;7QKcX3Xc2!-cL7e>acfS`}_!yOyy$}36@#pWPy=UUz_P#s$ z;OV*6X$xZJn`D2Vw5XqI5fd;;+-ch32bn-gkLs)wzOM zOowCMo%t&Dvfa$UOm;!*p;e2OxR0;3jJQ{QwIz`0{KH#(A+pL@O`dW0mZq*6fY<(?7acQ)=Rl8mkK>Yd;133h&E*wdbGDyjac;X(^W;hT+==#< zjfQs%6x26PR$H3CdR|LMX2K08`)AFsw4Cl%cEry3yC7ow-pM@MU$ZAz8a(bh`@3KZ z>#s8_KZyRWU(g#Kt{CP2YICkO%d1-q+j162uyL5ayB;L_SoyQ|I(ds4!4D_(Ulq*C z(fM(*wkT%pF&SBJtvy=4ou1WN)84#(e_Vg<@346j6Xa%{xfQD(@fK9$1y6KkdV8oN z^j?&U^)p6|Hk0?=&jec&jmz#$>8@HEH0PD&%g5MZHr|N zKl|B8uHi~c;HTJ`bNQafF8z2sb>V_LYlF&8L@zzlWBco7-RoONLmlr-zx#TBj^Ogt zAK#OI?S52YGv&V59((=OTvgsHK2MpO*m*TWe&(j%yLgxDAB&J*)BnCl?!&F0nQ1a@ z-bE5+rF~ZwXI$m>{Nugr(5KCF<+JNbR-9b*%i^VY*{#2O{oSjh-nogsTY4q@`Tbwn zSGiW%efarvCEu-Uj~GMKJ9JWJT@iiGYn80?nL+05D(hQ|_IO=CpT!qD{rknQoY!7; z6#4I1o~0ve8z%mB+Pr{wEeso(y(ezi)a!HLTvp>c_5)t|oGYif?vZ{S&-2hI@8bLt zDV`;r8a!`&jws1l_Vvua`6Zb%=p>)-|E{b98|K<&{Mdi0sOIWki52^oTJuhqt9<|G zluo9&#{KL?Ph=NnbG}$#|MzQn#B<$eVIc=dC~tqWf{PYCTUEm*h7gzc7)|mG)gfyVGD^u8pwz#~ugao!>-Te|T@`Ijb(c zFr0JE^!wjyU46D~k-zK9SY67RzhK_EmbmDP`_!(TyRu`!`Sa(uWkjsw&9GeZZmSIc zb6bY=d)@M16*pK{Foaz#{x?b0QhpVO?iQw1Cqn{n3*JoisSo!_cl^W5)i7&qz0ArP z#coqCDmPW%IS|hjRB>vK{Fm9KtzSEw51h1|ly2j@fvL`Xll^AJj^wYM{?k^oEDN8x zJg%1az^a;e2@mI8WYn?$6Uy{m_Sa{=6I&}^{ki(aJ@@kk`}%)>etv%b`0?U*!Wy=p zi(c&hEY%SD{wx1Ywvy2P7>&R4g<*`H?%voOVUuz~ zUHa1Hznyb4nUyBL3@v~DPeyxZ{rVk~CdI2Pa{H?(6eYZILHgrXrL9}LCj8C3y1!-q z=b0&!<94hGUZi8RzO1w5-aTH9vh7Kq9BrRlvKOwX@o!Hpby}|Zz4rg#-{s!l_W%FA z|ETH4sT<54Ze0(1`N}Wsv`E962X$XMa^6bUwwtmUA6@#X-`+VST6Xq{=IK8ar*fNy zuRIlf@|OP%`h@2`1XdG1|(zM!XkXXw=Y$x>%7htA*B)hp_%TOGZ% zk+;I^&zJJU;SI{Vd!>!VE_nQBxy&wq<-r9jpKV`Ozx%g(kG^Q>n;_u`P0+r<-WuOG zpFeN5c`f?(Q{MSA9nN;qIlc)?GPL);WZZG8v?5)sZOxDADNFxPs^@C=?Nsk^+4sVK z_X++B<$N;Md#i$MAMX~KlU44Y_O+dB?w==*V&i!|WJPX&vQ_(ayuMe4ee+j;x2k-_ z=@ty9zw;cQwX)A+b&fpqwO;cldAaqvj2mUr_QbC)(Ch!P%X9ZT|GR1#>Q^}T=E~iw zTdU2rgfS!cyv*Ny(LeY9FuSJ@GdbX;7LsXNtCh-uKnVDz3hoAH?v--unS_(7E}MiMD!Q`scn3yJuP4;%YzX zp49YRS^GsloRU)AescDg?8}J{I~?y|iAbB68l+#joqlSu>X@nqOpG^J?Yu z^{Z}cbz98UxIJ&-(kaIuZ_JG@=GgG1PR6Ch`cCkvhl&p6*#*9|IGf`C+Q6z z_1A3v9~}1Z<+X*`hr-YI$EJ!#y>Vr&%Y9n;I^{{k+vjRu*jfL6(m7OixJAcz!4ub4 zYu?^pxiCKCgOANjpMt50i=6GLimPyT(U$mkzfzw9a$*8l^6;dCL6w_NhAe!eg5!s{SgsWnQ0}xqJ4jB0rsK z!OI6f{b_z%rP$vRb<*~y;^y+t7Hba~RlfQC@9WpE&(F_a##~cZ7sTlBbz}cj@13z6 z7qonz<}oKt%dt4SDq&$xWGtg?(D{dK=d?XUv{~+R-r|h<)vf#Y_fK(W)fZ-puNgn= zz9@J(|4h zRsU4jbQxIdy=hr2x^oLtf%&^fSyuPxT zocH18TJ$pb>;A*GOZW6J6)0w(z1?&6UZ7#<%*lt-r%zY1|DfoawUS{<&kOy_A`35X zjQ3GrzidsDkz)(Pv^7Ly(sRMsQInjkJtSBQtkZhOwUq-IIluh zrmC3x0-;mBgkPJMzR^14jeG&?g{o7#j&5|R53MXvDt>a8$v2;0SQ+%;dh0nucJIRPZnIdFgPG+CE#AAMb4S|}UIUYlEaXwt4nA1&WZTIagI`n}Fpmt`BJgg6&U za@^+dT2W}I8rNRjROa{X0q^#Ap*yk`*)EKIH6dy4{@I*0Yts|zobDX{Ev~C?7484^ z&)s+L{g+B!f3?4K^Mc&lFK#jHa+y(QFy(1+iEZ%9`Vfu)t!d9%tnMh@4pnsi=)qw5 z@j`O_bUAm%gqN9`g{BU2{OvDz+`oqCbX#wIc_ws4o;@MiZ^F!3MN``ewQ=h((>Au+TcJq;z zW=2c9)Hgl5HLu?IE41xGx$>u{jG{40w;Q5*EaX|DlS`>zQVsyLBL=RqEPS#`yU7{^N^}vgRJUZn-{h&LRH~ z3}>p}@~`zVTWYVgrigXTDKjBP|LgBh9r>peYkFHrgl#3~2Il*RM9iNrKlA6PSWWZo zyi4)Ti3VA-@(%cz9Xoc(f6bq@lZ{X1#w^u*$Ud+4?%Riw7g*XX?=u(7QT?RVs5ZO) z`hN41f_JMY@NF=d+<4~^->VMg@*R`@{VvM5c#}K$<$d1;^3CV6r-e_j(<~` z+q@$D9Lit+-@=}7HEBxor+5jiVi|9iS*>fkQ&!vU^V?9@>G|Jvk6+z|zAAxmm9p=@ zV^*3n9Q^l%_vgOSn5qA6hVEPR;FzrX+WrU$vV|9zhSU*xP(<(5O!YW?b(*d22J zgz~?0)PLo4(LOJ!a8^R(ufOxX9DKHmFstuXefN9r`|f{*-u2xaZ%(~4PPEVYQ6R$k zY`4zd?}xtIScETiY71H_UcDov_v1N9(|<*3Y$p@b&LqB#mFt=ud$?fg(pR4ftG(Zy zmPuJ_x>w>_?;_7j#$V@{MDt1idu%%Ydq_;iEZcLR+1e%sU;6f^HOA((T2s+1>5hy=jOj{J>&I1d6QlB z&!;9Y+rN~&{rmR7t+-1vBzJ4X@{i$%4z!rDE zqWO}K?jHMDHl2UfjZm>W59>NY>}EWinQOCoe!fJOsHWc3e|hJhhn_HH*sA`rocYC^ zXwimU78P!XZEh+5I8)eYTC9skSM)Xm%EB4*zzZXD_ARc)z(> zAjZGq1zEkpU3@O6E~i#GMlq=LEzK& z_3QO_`Cd4F{P^RK0j}#;``FuSvAhuS+a@79>+QEad(#A&_U5;h>*?6uUGQ2`xUj|ZzfOPuD63C@B5bnv{OQ*#PtEUquT^P&fj@ao*UR}& zwr$itEjp=r*3R$y>&-hOS0#W)c&{O zh`i*9w%2n~b=psUd>+7kbBV9{>@)n^d5f;v6p2o6pRYT|K{M)He_e*W~}`CI=c zr`uN?B(qjth!|rZ+mt4R7d&#n;5zG%v7_%8t zE;`ySS;c7T7|OQo{d=}0QMQLquV>sL{r%&F73VayFSV`vn45mX@!}Mg|Ni!?g(Uu6 zSyfiQ>DTd%f7x}v)OGZUibUiz#)V33N~=@1wNBm{mhSVr@Z$Z#8Dg_l-(N{lTYc~K z^-VSIPxcfiO>un6a=Kjn&hFxdrdrXP6~daF0nYoR*4^Y=dQ;s4=Vc++zgzIn{^Kyizu>##^4M4Fv;J+8eyV!&@5{BnHb`GNd!Ordl;|c4 zvmoAy7_0f;=gGO6H09@)hz!Pg*9$#=jXmS(Wt-Y-b*R=)8Ehh`2GF; zDoz`@{$F<+)}8D*X>&88Gxc`Ex<`4}T0_4|o>sT$2|9Rd;>DS3WDJ+O_k4Fu-ao5; zN$D#|&287}Htahg&9kuZ(hp^C^Z$7l3#;q@s6X$y|L0Qmw=|ZI3yjUD{?}@|?J9pl zb=hv=JxULb8>{UplTXODIe9E)->!Y%)nvq9eb#z&tWGi3SM5`F<+MlNYXATGwdxSh zUxw^x`-H2B3z$G%vM1_WweQPB%}+?-^G!SY&Y0Ii^rW%y!^139?v{b)w{LISC->!m z_>QN!pWeO;^SUqRe?GdaEA*tti*qy79#k{v)Ofp@?@i69bk#|pexI4)&dk~j_Nk{! z8zwt1%(Jdp`)SI)x4+uoG02%`^4{tGcDLd9ebKTRysfDxWgp;emN4 zK2Hnf*>tT+{dws6tDnBytl4#F!h1%EymND(dl;Ob`~JP$jaPwQMS_VQ%l5C5XFJv# z@^tgh`)?~>MD2V0^8{O2`orCYvmASm8Rgu+&lkMdY*pcAOMy*)r+s6XvqqEe`g6Xe zr+1uu_^W(zhR)1;_m?jJvZX0+j{k+fS9D`-g|8e6U0q)(c5cn*f8AP}zuL1L%M#7u z=zb{O9ne)itJvsAw!qh)^3wA0(;L~&X(TYX6wK51J`l=2ZR3pXmApTl94(iAmWe$t z{A6S8%Wt#F%VvutM!rAw{nh$^Tm3F>Qmg;>=jOJxZzZF|*&>RrA6Q#C)0826ug6W9 zFi$hV&o!JJzueh>9TzwLxv2h6@1}DuE>G4y-8Xwvb>fDwkH1P5cb-}yRj`7u-~vO@ zmmO1N({Hsb+^2B(QvG%20&{1c9qP>IJzWl*<#L-C^zIt}T^@ce?WpMUp<9!@9-Ohb zvvs#_&ijU>lhdxQ+F5FPgVEojR{6&5@RikVVX_DI+uY-iVBWBA$CQIt>lu{)`O0ltG*qO+JBAfMd8;4v)4!*?hSr8^T&MS>kNMkR&U#?75kQv zvJf$a8k%d`!$t%VPQRlBh#VQhMMkXRL-rsp^ z7hX`?-?_68UrH`de$DMz)OpTz^0}GYPrRSm`^I&v;2iH&c3!g| zh#wDOy;ZaIyUxK|LT4j=v}|8Q-Hbd}Xt|GNO3Q-Ed$*SVU-0+$=Dw8=c_e-EwuvmX z2-g(4mb-P{p9ROB?tU+}O+4oGU8h^mUO&6-l3IJrN&J~Ehv5CvJ^#Ws6(3ug^W>^e z^>HcFWd>)`U+BbpPCfA~*xRP#`h73`=K3pQfB*gc{rK_XwY(Yeg8%;hHW$AAXV#xH z0t1IXa-7Ay($j zlkEwP({-8R-c?o{ojGIXpP66eJ9lxqy^7BC@-Kd|FL~mZX+hF~3{U>{a=h3#PeC+0 zKJ>*i9nV&YrRSFX+oNuLN|fP2=}vo!XD8^3~!t`zI_o_UYBei{+m~7z)z;s_*j)O<60@x4NXE zT%vx{qd4;t?ml}z z`IH&zF+8x_)8%yTRn3aOAD@(p7jZs1bnWive|$RCbK}`I?0IJFdi{&ZgXgbbuby&g z8q1a3rd^i$(JXJmzwGGSVLWYVyxzxY;=ihzLKt4mmjB3bWVXS#rpWjwTlvi1GDl4N z5}#C5pz_6D;>P8v7pJ%X68RqcqKe_zl*XUg%_sQk13UlA>f|!4d9><#s`H)`^X%>`kdua)w#RZ7-Xi`n`Uo&-#Rtu)vAVHtFMM{k7hRb=@hq5<-nx7 zGno?JUQ(7edg<`t`ad_TRn_jhlC1ugZ{A#EsbvqyW zZ#>?y@q)tZ>q2rpFPbM^-H_VRCt47{C4Ia0V)vBP)1N0?TJqOy8Os-sc^|p|hAm;6 z&OM!R!=s@0?^j3Mxqt95=K-y_r+dG>)@ROmzs>sQ>M!XVdhJ(QYHoXfUNv-8NaWg+ zSNQ`(8^GhJx2@xfZk99XsKtidJv~?4`R~fis8y>S-`zVb_P*@#kMd3L?bfz!t>3@Z zTHtiMS=iobxd-Csm7aR^ihotY+u7&;a>!rXyYE5XPq8QKC$cN#ef@qu;`f(m^{da% zuH3eD{eK^h3qHRj)ec{}GAmxS!1)4ug4}6gy_NYg()_pYxbOGAyrGSwewIgW&qP`F zW5;;w)AyhFsdL(SN3CIU=vO7vz}rST4s4Tu{=KHMMNKgBvvu_Q+a`?HPVTS!`|IoL zaLuRx|L*_qp6vhay{?OXG)s-Mj%>rRbw3vVId{$KWa=y`SW5jml9XePJdwrhIa=J6}}JkIc=}Jtlo00MFr4<+Cr~H1}`eymFeG}DF+x!F%PFZ#Rj8*2`ms~HZ z69U(l#%b}qTDx(Z@Y{Ql&(9nBE|6Y2S*k~kecA24YzBr2u2S!JJFYq%E__%0$`d=& zoyP3GP2M@VcNOB&K9%z-5+uIJ8GggTzZG11iP$KR3#;d!oH8nmk z-25f~-8I`wA@ZK_M*K@tzm^wuPZv6Q+3V)n%21a72NE`>EQ*@M#=!8dS?h<@q75QT z`c@nWjSb98I1ztiqxYxI{H#q&>`pHa{MvbzORMf5Xndi&`F48q_S|Y~eun^$O-D*H z--JK?y{>iMTFD9FycG;rwzAxnne(r3$&Gco_Um|lXmjoQt|!s_B>w4gf6vd3z6#a} zrOrF+W~9_VH|1eyn4H*@U;g&~lZFT0$zi{YtCQCpdCK&?HsT-85pFBR+Y6ksRaYoF z*YErJ=g*p~0}rzq@_sC^@bI>Yo#Rs45UX=fciqPLbybCWC4GNyor>2@;hCA=nckG< zvadho_St~6RN3Vs4VR?vw2Lx7U+&R)^E+!c0|P_8Q}~D8<2&4L9GZVnGUG%fI)!^}m z-`D<3q1Azi{68U_b&BN?%mSSo3WO{kwTL7r^}9@6oUtuF9yEfp^Nsg`a_77If_vwz zRA2i=kn!%xX=;;?|2rviP3hLPmJXBme=O(Bi+!E_?c;=n53Jg+%zU&;_}|RcPUUqQ zxFr}qsKqEvzwh{OpR??#T^;@5GyDBI^j~>>I}*Vg`;Yc1sSe)3s$X@jzQ=7X}!oEZ-AL^fWM z&sSEqnf)vE(Z+?I(+>IZu`9FIhpxV>d!)}^b=&DDhBJ2- zFW>gO_gVLE0lptQLLR>T>eLXlcI%T;?HTU21w{*fT(r0pc%e5nmsw!M7S)Zl4XX6%05eDzD1MqoJO2B#;xFaD{^ z%i`0~)-GEiEo)M6$=+E0(&nA`{#8Brap&%W zq)mB;E#ocr_smq7KE+gLzRvSh5r)$npUyZIYP^4Ig}KIpa?yr7jru#&#pP?g-e-o@ zdOA*3P`coKc)zI86yBpVzbMKq@td;Qt?P2b0)B=cH-8jfz5C^3EBkWZ<+0pf4t>4g zcV1>y0?X^-t52)*FIHYNiHzBpuB*S2;fLA3MXo=83+-1fi{^6J&UenxHd)hPnv;;o zvYD#0IUn8LW~pfVaYxPbC0`euzwxsFvxG&YZ``J?#kyZ^-Z(Y8!hn%M;T-3pR~ruI ztx4L)V3jPiZ8+F`TnN2(ZOaM{O&dhYwSpZR}u!p?5(9m_=; zgzEO~*5(RI+9kuJWLEuE;gR`^ecuZC9lraVlBmBU)$mR=HtyqI>qW8UGeG&!H9)6t zH}^Wz#^2ctX(bIEfjWzr@09T#_+zuLfcHRQP~+6k-IWX(-#s_RNqt=^74T6xw}y4W z4J{VuzgwkaUaWr>$XfC<;bcnIo_&+&iH0XFst-@JP;zlEdo#(Df%&Q2@rytIhk%m6 zrfdeCi}rSW>tm<>4!+J1^Fs1~RKq7HE{9a}eG`uA{9XE7GGY4ko)r7!m*?+YS-0Y> z2t!%WvXJaWdZI5@u}te$xX}_i%RyyzW6iOydC$+S3u0jS;TiGx?eXKsy>GbGaBm4o z&RfA8bI7UD`UUe&_35n)Ki3Ip?-jkI+*%hlH`m$KJvsmFk7cx$(&_gM zTmJ06_De|M`2KzSuCUy!(K(uMdEXW3K&?5u_ZS4(YwSKg|J#*h%lZB`hnpiz`Sx5h zVPL3W|6}U+>3WF8?pJl^*RAUMb1T>H`}M~>KFP)%q3gcRZND=9}C48SF0Zn zyK^l0%j5J%Ppx=;j=s(pmcMt(Dm49`NzYdXh7ad9Jh-uX^=Bp>@e9Y5>Ze_=zxuQ< zrX*wTdLG6g>6LB2JU;J{KkvNp(&k0F{0*Y#r|&hqTQFBh`1sl*bsqjPYs$42KfBOt zDLvsq`lXWOmrWDB*Prvx6=z_OIeS;<)cUyd#Zj`Jm7mU71l*Y<#b&(olQqLC5kK+M ztNa+I?K@R7jp;%B>kv;{W1TO?pSNj6^GiHdPW*l2la|I+9IyKv z%=+T{90LZ11kR#m(h@fBw^_QB#YKev&#^ORs#SS71vzmDzeK3%WcJbz97+9^8G?v*c=mGApuT~_x`{cFm0`{^wIS@c;L z7#Jj`G0U(`@vhiu%D^mbvUV-o<0RGvUk-sr=}cCzH~jSy<*YKea60*;eeB1*wgMB6 z?mHMDuYNGXT95WqWbHD^X=<1E-yLu-uuQ||DEgC?wRl`Ky*e~P~49C z#m_RQ3fag{|2?-Xa>dN`Q72ZvGM@Cbswp(!_52@NpVx&x?xE^R%!mRhQDeR8! z6TKA7Bij(CH~FN`mGXwJ@|)j#kDe`$KRu~NNxAUP?|s+VkM?sHJ$V)yXmwc8_TaN} zeM#-77Hn)yAuP8h&Dg)Oiiv@t!gFruU(RK>Rl3Z-yz{zN-P*?oCWgM+ z^}mm~$ew{=k8z>(m8XyYH=KMkC*$kGXFs;i{lc?m)zq)qWw{R94rQ`7uaN?YYf`0U6ohHrDmR6SGApO?=O=!n@So&TdZW-XPuyx2vqQ z8(K6f@~;+GG2Ak& zU6S#KKU6|TY2&|Zp*kfly{|q_e-g!>)poZ!o+tER)YSN@^DbGu4xXp}-o3=G^(I~@ z=S?kJ%(aJiO1_J|>0MYO&Y%&(+t}iRu139(CyS zHK8r`*>;=w-uP#0GHD;pnrO1ZdZJ}rP5pHz`Es+!Z00rD-MW!{JGSUJ-WUA4a@(=G zQX5fCCH^mGq6)s*=p5&do$O*0%fP_!uHW>*>Gy|!ygdDxP=lY@gpW=HN;hUkSYs+V@*ZTFF-A{kT&z{OPA&quI z|ATqH9E?CrpaE{vj@d52P@jfvNkL|S;e5#-M03cD;L)@ z0~w<$YaJHuSn7CFOMrP zOqi$k;`)6Z)&&xm>J_;des5< zG!0D;bUoOfbo9o_vdSYx?^}MX-fOv-p{J68&F7P-U?>p&BiVj)+vCfZZv>ruc&p60d#QGU&N6$6-ziVazWn*8l`XV`DWJoA z!Pb~r|GVF^XtW9BXEMF<4{g7FWYYbzWvdxjN*P|)Tu+`L`uFklCFg!LRTmuH5Ny7m z&yO{aFNuYbfng5kY(3?VHu`(n4j4TvQE2()~DYwG0eQQ(@Zrn{qeuusinGq54s*cnDe(yr24n_ zo^=ci3!28IVhPhw9P=E!{U zgXY!27cbA?=VfAGV2G35sb(S6ATU#Va}bNo|LdP7G}-;WJn4O8RkmRI2e#Fxvz|VR zReQJn%Q>n0kGOUhdhdU4_+sA4S3Gy$ZkaPV(%yk{&vy6y2h?4ZKn*knz020q*RNvR z(Zw!$XSbrQE61<98S_0d+V%hbPW(HKeSwN7!)fUS@A$4v-N1e%GXBE(DxOnT7whM# zW{avdE|q6sV90p0@vY-kg|`W(t|v{E`K0yt!-S@NU)Sf{s8N=Ey-)vdv>d~<;*Go? z_PvD zG6MsH!=R8$SNB2)8u%UTg20Ik&#lz<`l~p(4GFwR~EF#S`lp{?nSB%A4+9 zQb`YWSbE&3<=*s!aMz6Jm-0Eg{p(lDKUYs*Uv7WS{oBNP&xh6f6M6C(7)yZ-Iw)e!#s_rwOFIPpgjzq+;GZLU}T{c&@` zjCZr{Ce-Zzf7xNfZ^5EJPyK}s-?IFX_Z8ISV~FscyePErmrvx0Nl)h6FdW_b_q6@X zkJqn@XHVU{!|V~`hD9Y^y6eluKb0BtESt_F@n&34_Dx6((uo}`)j{79Qt?aipswlrSvZK+fFpC5HIqgBq`)3V*|zkmPgerJPP zv)iGkTjw5iX5J?VGN|G6#+GTGtS7lVGSk-u9gv&mdf(_zbatX{qyN;e-3$3ed^^(f zrWh$+V86^>>^(O|iI+d7XlEM#LQtAvV1Fo~6#Q~?=A#vg7p8l=^T%H(KjQAbX}iv^ zj~(@|@Bd(Y`|cgn{f<_<(z?(O{(mOzetYBc*Et}28U7e3)ioP0tzW(7xY+G;ohOf5 zFXZsNYq;gK$wZHNYi91h@yhZ0o~el&qIc^pnOwRr`}^y?F$Y;extjUg*ZT8q|G!%^ zJgt;u*!*Jq+n=fLS6r&G?x-o zyKZLlG&L`!__o;DZzImsW*wK)%ue0EX3pP#L1BKz<%~h*|E4!>t*WbEX5;;H)u9LT zOJdlKmK^V27A3k{-m+f1$uaH14^Wn4Sod_5tdsng(-SeC@fw9(jA_)cx` zUitg)S1=wl{+P1fDd1iI7iO@BEgDyw`P83y@NW_4O`mJ|)7Jzsc=;GkDAo3Cu5}5p zb27Jh_%1CrHhG;PSowx7?|oB#)n_v-={W!Gaeg*~4C?}kbwQsamRE|W=dJ^^Tk}hcC+o>QN7P|&Orf% zFyqq-Yvm%i8m?Xm-~P^h!oS4}PW;>D3+it${4fkS`8MO@n}a#uVvYAtdHHnx7oJd_ zQ(Q0aznngE^0k?vzrW83KOI^c+DW`WwwftILe9V95-q7TikH5-Pmk8Vd1!05r2Ad+scN;7fzOA`sws-2e zGk>m`Es&R&54n_gecdE)QGSNAep+m6>Iy+CAGe=NKU_CQdc&VjzY9LU0>@Z`Lg*v= zLouhXGl)2Ud4KH7>PF`+OV*_y_|EV{tTxiiJk{oG#3Ro~+v@i}-0%@(Bf}q_w(B)U zJJ=WWXfgbAG?@85Js|Z_!iqD0Cf)aFJN_}bMg;7m1>MR2`t!eKtYqi+J~e%!{l|Fk z0~7L9wYP1I53N#C`~Ni2o_%NXqp9p*)!`enavhe4n4Uj*zJ2L+h96uGFEg3$Ze_go zbl*DR|1Y;*W8e`fziPe|?B)YSFZyQre3Y2>>x?PG)5ufuam){nv!-4??p)hs`>80K zL8o`JR#V4su+bH<-=5E{f5G0|y^T#ld+{qd26y%k-@k4@$G)^)eQ)TTs!+}qT%XO| zZ0py4uzkr7F2@+QC#mf?9K-zK>(|i!H45{;W!o;e&z`_;oL&F4b){a1He1+!mnySQ zt=rZ-wdh`2dEPtl(Pg|kAyTA3<5$48C zd-Gp1uip1ycIwq{J|ImD3^E4~Z~Ddm=H6npb6RYw$uaMjS^E9@ezdCP5m>&V_=MDg z#as?AHQAEu8Xi=7nhU&mVag!5K@pU785km3_y5g^`SgUVL3zh=k>*J}zdufA+>qOU zO^?}vqvIdgj0Zk5v={tW+;Hi)!204hYj_Jb6XIX+4;%`Pj_zrUYf z>HPp4FANOj5B~3CiCOq)-&Vm)@Ao;vA~!F!Pm6Y0apsTsxiHR0#?NXv{(|jte{i~e zvfGWHwJ{M3v)WE4yFJpa-Qcw%$=3LT`0YjUZAr38FImp_+X z^P}Pc*o<=zwYYz+{v4oO|6*gYn$n%)&Q(|LHiD%XJTCsNyW+cJRUW_nq~o6$?iBML zxKWh2pCjT6*lTg!k~2TZ{&;V;;LU+Zeg)yxk?!A^UR~N7kX3Q*pR18A*pMG9uk0;< zw*AY`N}G_E`!h~4h^~KpY5!9t3#BX1`OGCYW`I>apJ4PREcL-Ft@c;-KlB_X*8WWu zoxMW$>5m0x=b7Hq@rx0>0M_zw{hZ zJzj*LkIuBSv%4}S%l=-$MK-W86}o*B)cY?mKGGIA*7ePf<=GSK4LA4SPc3|YSS3IO ztmK|>+Hd(XR)dBApS-_uZnexaDTdDVoGGgx)u`Xl2UoTX4UA&%a*N+eHF(M{*v~zo z*iPEW<>#+olWt4Q6>x8@{RIyHdvoTi{NQalWxwmKe8j`w z373>=*neI&TyU8~_UoO@qh9{_2TED?4vj1rKMPJ+e0L^4)T`%%4XPP zWbVEHlvDj7_a?9l87eZBtQhXIO(|M!%E10o6r%W#N>Mh07WZ|Q>7^S3-ZbYzL>rPk z{`6@-P}HB`^v&nT*@gFcA>s+5ud;5n-ZToEI_Yl7bLYFE!i?V`GJibe-sIODgEVv+ z5<2h>0fV|WnyBR^rU{(a|P-~x}~0sDpj0unCu5S?{A5#Y?hz;Hmiajz-Vt;##t z7t|U(cv0&K5!j(#!v6R1lACY7Gj96*H@bkI;Rz(EFi1sy{Pl0f?FLA}$iUS(apxW> z?@vG1GZnOlK{OXQpS!}iX`y4Joa)cB>lbT7QsM#G1gCn@=K6*UzZJj#{lmBxVnV{a z+}ksL{$|(VJRk*eA%jicJ~oAD^BRcr85+zVon#jHm~qGPH^lr08M}VJyB}k)Z52B- zMj7&tB-=p(gW~J(fx0tm?KZgw7m5U7CQCCyY-V5(Pp)KMV>0oJ z7~EY+XLMxSAc4kk;I-izW(5`wumug`3%vdqAG8;(0CO1_DkPunmu3Jp1VL@V@TNMa z3I+|R+#b2ZRt%6TnStRR2V7V%0IHxu86J3U4+ ifuIqKAr*#?{xb(MulaD}&W>}SMC0k|=d#Wzp$P!7V6UYB diff --git a/backyard/platform/gtk/clock.c b/backyard/platform/gtk/clock.c deleted file mode 100644 index dfb6bc366..000000000 --- a/backyard/platform/gtk/clock.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: clock.c,v 1.1 2008/01/05 21:08:26 oliverschmidt Exp $ - */ - -/** - * \file - * A brief description of what this file is. - * \author - * Adam Dunkels - */ - -#include "sys/clock.h" -/*---------------------------------------------------------------------------*/ -#include - -clock_time_t -clock_time(void) -{ - struct timeval tv; - struct timezone tz; - - gettimeofday(&tv, &tz); - - return tv.tv_sec * 1000 + tv.tv_usec / 1000; -} - -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/gtk/contiki-conf.h b/backyard/platform/gtk/contiki-conf.h deleted file mode 100644 index 32ee24fd0..000000000 --- a/backyard/platform/gtk/contiki-conf.h +++ /dev/null @@ -1,187 +0,0 @@ -#ifndef __CONTIKI_CONF_H__ -#define __CONTIKI_CONF_H__ - -#define CC_CONF_REGISTER_ARGS 1 -#define CC_CONF_FUNCTION_POINTER_ARGS 1 -#define CC_CONF_FASTCALL - - - -#define CCIF -#define CLIF - - - -typedef unsigned long clock_time_t; -#define CLOCK_CONF_SECOND 1000 - -#include - -#include "ctk/ctk-arch.h" - -#define CTK_CONF_MOUSE_SUPPORT 1 - -#define CTK_CONF_MENU_KEY CH_F1 - -#define CTK_CONF_WINDOWSWITCH_KEY CH_F3 - -#define CTK_CONF_WIDGETDOWN_KEY CH_TAB - -#define CTK_CONF_WIDGETUP_KEY CH_F5 - -#define CTK_CONF_ICONS 1 - -#define CTK_CONF_ICON_BITMAPS 1 - -#define CTK_CONF_ICON_TEXTMAPS 1 - -#define CTK_CONF_WINDOWS 1 - -#define CTK_CONF_WINDOWMOVE 1 - -#define CTK_CONF_WINDOWCLOSE 1 - -#define CTK_CONF_MENUS 1 - -#define CTK_CONF_MENUWIDTH 16 -#define CTK_CONF_MAXMENUITEMS 10 - -#define CTK_CONF_WIDGET_FLAGS 1 - - - -#define COLOR_BLACK 0 -#define COLOR_WHITE 1 - -#define BORDERCOLOR COLOR_BLACK -#define SCREENCOLOR COLOR_BLACK -#define BACKGROUNDCOLOR COLOR_BLACK - -#define WINDOWCOLOR_FOCUS COLOR_WHITE -#define WINDOWCOLOR COLOR_WHITE - -#define DIALOGCOLOR COLOR_WHITE - -#define WIDGETCOLOR_HLINK COLOR_WHITE -#define WIDGETCOLOR_FWIN COLOR_WHITE -#define WIDGETCOLOR COLOR_WHITE -#define WIDGETCOLOR_DIALOG COLOR_WHITE -#define WIDGETCOLOR_FOCUS COLOR_WHITE - -#define MENUCOLOR COLOR_WHITE -#define OPENMENUCOLOR COLOR_WHITE -#define ACTIVEMENUITEMCOLOR COLOR_WHITE - - -#define CTK_VNCSERVER_CONF_NUMCONNS 10 - -#define CTK_VNCSERVER_CONF_MAX_ICONS 16 - - - - -#define EMAIL_CONF_WIDTH 76 -#define EMAIL_CONF_HEIGHT 25 - - -#define IRC_CONF_WIDTH 78 -#define IRC_CONF_HEIGHT 21 - -#define IRC_CONF_SYSTEM_STRING "GTK simulation" - - -#define LIBCONIO_CONF_SCREEN_WIDTH 80 -#define LIBCONIO_CONF_SCREEN_HEIGHT 45 - - - -#define LOG_CONF_ENABLED 0 - - -#define PROGRAM_HANDLER_CONF_MAX_NUMDSCS 10 - - - -#define SHELL_CONF_WITH_PROGRAM_HANDLER 1 - - - -#define SHELL_GUI_CONF_XSIZE 46 -#define SHELL_GUI_CONF_YSIZE 22 - - - -#define TELNETD_CONF_LINELEN 36 -#define TELNETD_CONF_NUMLINES 16 - - -/** - * The 8-bit unsigned data type. - * - * This may have to be tweaked for your particular compiler. "unsigned - * char" works for most compilers. - */ -typedef unsigned char u8_t; - -/** - * The 16-bit unsigned data type. - * - * This may have to be tweaked for your particular compiler. "unsigned - * short" works for most compilers. - */ -typedef unsigned short u16_t; - -typedef unsigned long u32_t; -typedef long s32_t; - -/** - * The statistics data type. - * - * This datatype determines how high the statistics counters are able - * to count. - */ -typedef unsigned short uip_stats_t; - - - -#define UIP_CONF_MAX_CONNECTIONS 40 -#define UIP_CONF_MAX_LISTENPORTS 40 -#define UIP_CONF_BUFFER_SIZE 420 - -#define UIP_CONF_BYTE_ORDER UIP_LITTLE_ENDIAN - -#define UIP_CONF_TCP_SPLIT 1 - -#define UIP_CONF_LOGGING 1 - -#define UIP_CONF_UDP_CHECKSUMS 1 - - - - - -#define VNC_CONF_REFRESH_ROWS 8 - - -#define WWW_CONF_WEBPAGE_WIDTH 76 -#define WWW_CONF_WEBPAGE_HEIGHT 30 - -#define WWW_CONF_HISTORY_SIZE 40 - -#define WWW_CONF_MAX_URLLEN 200 - -#define WWW_CONF_MAX_NUMPAGEWIDGETS 80 - -#define WWW_CONF_RENDERSTATE 1 - -#define WWW_CONF_FORMS 1 - -#define WWW_CONF_MAX_FORMACTIONLEN 200 -#define WWW_CONF_MAX_FORMNAMELEN 200 -#define WWW_CONF_MAX_INPUTNAMELEN 200 -#define WWW_CONF_MAX_INPUTVALUELEN 240 - -#define WWW_CONF_PAGEVIEW 1 - - -#endif /* __CONTIKI_CONF_H__ */ diff --git a/backyard/platform/gtk/contiki-main.c b/backyard/platform/gtk/contiki-main.c deleted file mode 100644 index 2c4c3f196..000000000 --- a/backyard/platform/gtk/contiki-main.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: contiki-main.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - * - */ - -#include -#include -#include - -#include "contiki.h" -#include "contiki-net.h" - -#include "ctk/ctk.h" - -#include "ctk/ctk-vncserver.h" - -#include "net/tapdev-drv.h" -#include "program-handler.h" -#include "webserver.h" -#include "ctk/ctk-gtksim-service.h" - -#include "about-dsc.h" -#include "calc-dsc.h" -#include "dhcp-dsc.h" -#include "email-dsc.h" -#include "ftp-dsc.h" -#include "irc-dsc.h" -#include "netconf-dsc.h" -#include "process-list-dsc.h" -#include "shell-dsc.h" -#include "www-dsc.h" - -#include "cmdd.h" - -static struct uip_fw_netif tapif = - {UIP_FW_NETIF(0,0,0,0, 0,0,0,0, tapdev_output)}; - -PROCESS(init_process, "Init"); - -PROCESS_THREAD(init_process, ev, data) -{ - uip_ipaddr_t addr; - - PROCESS_BEGIN(); - - uip_ipaddr(&addr, 192,168,2,2); - uip_sethostaddr(&addr); - - uip_ipaddr(&addr, 192,168,2,1); - uip_setdraddr(&addr); - - uip_ipaddr(&addr, 255,255,255,0); - uip_setnetmask(&addr); - - printf("init\n"); - - program_handler_add(&netconf_dsc, "Network setup", 1); - program_handler_add(&ftp_dsc, "FTP client", 1); - program_handler_add(&www_dsc, "Web browser", 1); - program_handler_add(&processes_dsc, "Processes", 1); - program_handler_add(&shell_dsc, "Command shell", 1); - program_handler_add(&calc_dsc, "Calculator", 1); - /* program_handler_add(&email_dsc, "E-mail", 1);*/ - - program_handler_add(&irc_dsc, "IRC", 1); - /* program_handler_add(&vnc_dsc, "VNC client", 1);*/ - - program_handler_add(&dhcp_dsc, "DHCP client", 1); - - uip_fw_default(&tapif); - - while(1) { - PROCESS_WAIT_EVENT(); - } - - PROCESS_END(); -} - -PROCINIT(&tcpip_process, &ctk_process, &tapdev_process, - &ctk_gtksim_service_process, &resolv_process, - &program_handler_process, - &uip_fw_process, - &init_process); - -static gint -idle_callback(gpointer data) -{ - process_run(); - return TRUE; -} -/*-----------------------------------------------------------------------------------*/ -int -main(int argc, char **argv) -{ - uip_ipaddr_t addr; - - gtk_init(&argc, &argv); - - process_init(); - - procinit_init(); - - uip_ipaddr(&addr, 192,168,2,2); - uip_sethostaddr(&addr); - - uip_ipaddr(&addr, 192,168,2,1); - uip_setdraddr(&addr); - - uip_ipaddr(&addr, 255,255,255,0); - uip_setnetmask(&addr); - - /* program_handler_add(&netconf_dsc, "Network setup", 1); - program_handler_add(&ftp_dsc, "FTP client", 1); - program_handler_add(&editor_dsc, "Editor", 1); - program_handler_add(&www_dsc, "Web browser", 1); - program_handler_add(&processes_dsc, "Processes", 1); - program_handler_add(&shell_dsc, "Command shell", 1); - program_handler_add(&calc_dsc, "Calculator", 1);*/ - /* program_handler_add(&email_dsc, "E-mail", 1);*/ - - /* program_handler_add(&irc_dsc, "IRC", 1);*/ - /* program_handler_add(&vnc_dsc, "VNC client", 1);*/ - - /* program_handler_add(&dhcp_dsc, "DHCP client", 1);*/ - - uip_fw_default(&tapif); - - gtk_timeout_add(20, idle_callback, NULL); - gtk_main(); - - return 0; - - argv = argv; - argc = argc; -} -/*-----------------------------------------------------------------------------------*/ -#undef LITTLE_ENDIAN -#undef BIG_ENDIAN -#undef BYTE_ORDER -#undef UIP_HTONS - -/*-----------------------------------------------------------------------------------*/ - -void nntpc_done(int i) {} - -void log_message(char *m1, char *m2) -{ - printf("%s%s\n", m1, m2); -} - -void -uip_log(char *m) -{ - printf("%s\n", m); -} diff --git a/backyard/platform/gtk/ctk/conio.h b/backyard/platform/gtk/ctk/conio.h deleted file mode 100644 index cb30dbc64..000000000 --- a/backyard/platform/gtk/ctk/conio.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki desktop environment - * - * $Id: conio.h,v 1.1 2008/01/05 21:08:26 oliverschmidt Exp $ - * - */ -#ifndef __CONIO_H__ -#define __CONIO_H__ - - -#define CH_ULCORNER '+' -#define CH_URCORNER '+' -#define CH_LLCORNER '+' -#define CH_LRCORNER '+' - -#include "libconio.h" - -#endif /* __CONIO_H__ */ - diff --git a/backyard/platform/gtk/ctk/ctk-arch.h b/backyard/platform/gtk/ctk/ctk-arch.h deleted file mode 100644 index 225b5d692..000000000 --- a/backyard/platform/gtk/ctk/ctk-arch.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: ctk-arch.h,v 1.1 2008/01/05 21:08:26 oliverschmidt Exp $ - * - */ - -#ifndef __CTK_ARCH_H__ -#define __CTK_ARCH_H__ - -#if WITH_CTKVNC -#include "ctk-vncarch.h" -#else -#include "ctk-gtksim.h" -#endif - -#define ctk_arch_isprint(x) isprint(x) - -#endif /* __CTK_ARCH_H__ */ diff --git a/backyard/platform/gtk/ctk/ctk-gtksim-conio.c b/backyard/platform/gtk/ctk/ctk-gtksim-conio.c deleted file mode 100644 index 05570a0fa..000000000 --- a/backyard/platform/gtk/ctk/ctk-gtksim-conio.c +++ /dev/null @@ -1,359 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgement: - * This product includes software developed by Adam Dunkels. - * 4. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-gtksim-conio.c,v 1.1 2008/01/05 21:08:26 oliverschmidt Exp $ - * - */ - -/* This file provides a very simple implementation of CTK using the - GTK (Gimp toolkit) under FreeBSD/Linux. */ - -#include - -#include "libconio.h" - -#include "ctk/ctk.h" -#include "ctk-draw.h" - -#include -#include -#include - -#define FONT_HEIGHT 14 -#define FONT_WIDTH 8 -#define FONT_HEIGHT_BASELINE 11 - -#define SCREEN_WIDTH LIBCONIO_CONF_SCREEN_WIDTH -#define SCREEN_HEIGHT LIBCONIO_CONF_SCREEN_HEIGHT - -static GdkPixmap *pixmap = NULL; -static GtkWidget *drawing_area; -static GdkFont *font; - -static int mouse_x, mouse_y, mouse_button; - -/*-----------------------------------------------------------------------------------*/ -void -ctk_arch_draw_char(char c, - unsigned char x, unsigned char y, - unsigned char reversed, - unsigned char color) -{ - char str[2]; - - str[0] = c; - str[1] = 0; - - if(reversed) { - gdk_draw_rectangle(pixmap, - drawing_area->style->black_gc, - TRUE, - x * FONT_WIDTH, - y * FONT_HEIGHT, - FONT_WIDTH, FONT_HEIGHT); - - gdk_draw_string(pixmap, - font, - drawing_area->style->white_gc, - x * FONT_WIDTH, FONT_HEIGHT_BASELINE + y * FONT_HEIGHT, - str); - } else { - gdk_draw_rectangle(pixmap, - drawing_area->style->white_gc, - TRUE, - x * FONT_WIDTH, - y * FONT_HEIGHT, - FONT_WIDTH, FONT_HEIGHT); - - gdk_draw_string(pixmap, - font, - drawing_area->style->black_gc, - x * FONT_WIDTH, FONT_HEIGHT_BASELINE + y * FONT_HEIGHT, - str); - } - - gdk_draw_pixmap(drawing_area->window, - drawing_area->style->fg_gc[GTK_WIDGET_STATE (drawing_area)], - pixmap, - x * FONT_WIDTH, - y * FONT_HEIGHT, - x * FONT_WIDTH, - y * FONT_HEIGHT, - FONT_WIDTH, FONT_HEIGHT); - -} -/*-----------------------------------------------------------------------------------*/ -#define NUMKEYS 100 -static ctk_arch_key_t keys[NUMKEYS]; -static int firstkey, lastkey; - -unsigned char -ctk_arch_keyavail(void) -{ - return firstkey != lastkey; -} -/*-----------------------------------------------------------------------------------*/ -ctk_arch_key_t -ctk_arch_getkey(void) -{ - ctk_arch_key_t key; - key = keys[firstkey]; - - if(firstkey != lastkey) { - ++firstkey; - if(firstkey >= NUMKEYS) { - firstkey = 0; - } - } - - return key; -} -/*-----------------------------------------------------------------------------------*/ -static gint -configure_event(GtkWidget *widget, GdkEventConfigure *event) -{ - if(pixmap != NULL) { - gdk_pixmap_unref(pixmap); - } - - pixmap = gdk_pixmap_new(widget->window, - widget->allocation.width, - widget->allocation.height, - -1); - - if(pixmap == NULL) { - printf("gdk_pixmap_new == NULL\n"); - exit(1); - } - gdk_draw_rectangle(pixmap, - widget->style->white_gc, - TRUE, - 0, 0, - widget->allocation.width, - widget->allocation.height); - - return TRUE; -} - -/* Redraw the screen from the backing pixmap */ -static gint -expose_event (GtkWidget * widget, GdkEventExpose * event) -{ - /* draw_screen();*/ - gdk_draw_pixmap(widget->window, - widget->style->fg_gc[GTK_WIDGET_STATE (widget)], - pixmap, - event->area.x, event->area.y, - event->area.x, event->area.y, - event->area.width, event->area.height); - return FALSE; -} - -static gint -key_press_event (GtkWidget * widget, GdkEventKey * event) -{ - if(event->keyval == GDK_Shift_L || - event->keyval == GDK_Shift_R) { - return TRUE; - } - keys[lastkey] = event->keyval; - ++lastkey; - if(lastkey >= NUMKEYS) { - lastkey = 0; - } - - return TRUE; -} - -static gint -key_release_event (GtkWidget * widget, GdkEventKey * event) -{ - return TRUE; -} - -static gint -motion_notify_event (GtkWidget * widget, GdkEventMotion * event) -{ - mouse_x = event->x; - mouse_y = event->y; - return TRUE; -} - -static gint -button_press_event (GtkWidget * widget, GdkEventButton * event) -{ - mouse_button = event->button; - return TRUE; -} - -static gint -button_release_event (GtkWidget * widget, GdkEventButton * event) -{ - mouse_button = 0; - return TRUE; -} - -static void -quit(void) -{ - gtk_exit(0); -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_gtksim_init(int *argc, char **argv[]) -{ - GtkWidget *window; -#if 0 - GtkWidget *vbox; -#endif - - gtk_init(argc, argv); - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_title(window, "Contiki GTKsim"); - -#if 0 - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER (window), vbox); - gtk_widget_show(vbox); -#endif - gtk_signal_connect(GTK_OBJECT (window), "destroy", - GTK_SIGNAL_FUNC (quit), NULL); - - /* Create the drawing area */ - - drawing_area = gtk_drawing_area_new(); - gtk_drawing_area_size(GTK_DRAWING_AREA (drawing_area), - SCREEN_WIDTH * FONT_WIDTH, - SCREEN_HEIGHT * FONT_HEIGHT); -#if 0 - gtk_box_pack_start(GTK_BOX(vbox), drawing_area, TRUE, TRUE, 0); -#else - gtk_container_add(GTK_CONTAINER(window), drawing_area); -#endif - - gtk_widget_show(drawing_area); - - /* Load a fixed width font. */ - /* font = gdk_font_load("-*-gamow-medium-r-*-*-*-90-*-*-*-*-*-*");*/ - /* font = gdk_font_load("-*-courier-*-r-normal-*-14-*-*-*-m-*-iso8859-1");*/ - font = gdk_font_load("-*-courier-medium-r-*-*-12-*-*-*-*-*-iso8859-1"); - if(font != NULL) { - printf("Font loaded OK\n"); - } else { - printf("Font loading failed\n"); - exit(1); - } - - - /* Signals used to handle backing pixmap */ - - gtk_signal_connect(GTK_OBJECT (drawing_area), "expose_event", - (GtkSignalFunc) expose_event, NULL); - gtk_signal_connect(GTK_OBJECT (drawing_area), "configure_event", - (GtkSignalFunc) configure_event, NULL); - - /* Event signals */ - - gtk_signal_connect(GTK_OBJECT (window), "key_press_event", - (GtkSignalFunc) key_press_event, NULL); - gtk_signal_connect(GTK_OBJECT (window), "key_release_event", - (GtkSignalFunc) key_release_event, NULL); - - gtk_signal_connect(GTK_OBJECT (drawing_area), "motion_notify_event", - (GtkSignalFunc) motion_notify_event, NULL); - - gtk_signal_connect(GTK_OBJECT (drawing_area), "button_press_event", - (GtkSignalFunc) button_press_event, NULL); - - gtk_signal_connect(GTK_OBJECT (drawing_area), "button_release_event", - (GtkSignalFunc) button_release_event, NULL); - - gtk_widget_set_events(drawing_area, gtk_widget_get_events (drawing_area) - | GDK_KEY_PRESS_MASK - | GDK_KEY_RELEASE_MASK - | GDK_POINTER_MOTION_MASK - | GDK_BUTTON_PRESS_MASK - | GDK_BUTTON_RELEASE_MASK); - - gtk_widget_show(window); - -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_mouse_init(void) -{ - -} -/*-----------------------------------------------------------------------------------*/ -unsigned short -ctk_mouse_x(void) -{ - return mouse_x; -} -/*-----------------------------------------------------------------------------------*/ -unsigned short -ctk_mouse_y(void) -{ - return mouse_y; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_mouse_xtoc(unsigned short x) -{ - return x / FONT_WIDTH; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_mouse_ytoc(unsigned short y) -{ - return y / FONT_HEIGHT; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_mouse_button(void) -{ - return mouse_button; -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_mouse_hide(void) -{ -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_mouse_show(void) -{ -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/gtk/ctk/ctk-gtksim-draw.c b/backyard/platform/gtk/ctk/ctk-gtksim-draw.c deleted file mode 100644 index 868ff1878..000000000 --- a/backyard/platform/gtk/ctk/ctk-gtksim-draw.c +++ /dev/null @@ -1,172 +0,0 @@ - -#include "ctk-gtksim.h" - -#include "ctk-gtksim-draw.h" - -#define RASTER_X 8 - -#define FONT_BASELINE 8 - -struct ctk_gtksim_draw_font { - /* GdkFont *font;*/ - PangoFontDescription *font; -}; - -struct ctk_gtksim_draw_color { - GdkGC *color; -}; - -struct ctk_gtksim_draw_font ctk_gtksim_draw_font_normal, - ctk_gtksim_draw_font_bold, - ctk_gtksim_draw_font_menu, - ctk_gtksim_draw_font_monospace, - ctk_gtksim_draw_font_monospace_bold; - -struct ctk_gtksim_draw_color ctk_gtksim_draw_color_white, - ctk_gtksim_draw_color_lightgray, - ctk_gtksim_draw_color_midgray, - ctk_gtksim_draw_color_darkgray, - ctk_gtksim_draw_color_ddarkgray, - ctk_gtksim_draw_color_black, - ctk_gtksim_draw_color_blue; - -/*static GdkFont *font, *ctk_gtksim_draw_font_bold, *menufont, *ctk_gtksim_draw_font_monospace;*/ - -static PangoLayout *layout; - -/*--------------------------------------------------------------------------*/ -int -ctk_gtksim_draw_string_width(struct ctk_gtksim_draw_font *font, - char *str, int monospace) -{ - int width; - if(monospace) { - return strlen(str) * RASTER_X; - } else { - pango_layout_set_text(layout, str, -1); - pango_layout_set_font_description(layout, font->font); - pango_layout_get_size(layout, &width, NULL); - return width / PANGO_SCALE; - /* return gdk_string_width(font->font, str);*/ - } -} -/*--------------------------------------------------------------------------*/ -void -ctk_gtksim_draw_string(struct ctk_gtksim_draw_font *font, - struct ctk_gtksim_draw_color *color, - int x, int y, char *str, - int monospace) -{ - int i; - char text[2]; - - pango_layout_set_font_description(layout, font->font); - - if(monospace) { - text[1] = 0; - for(i = 0; i < strlen(str); ++i) { - text[0] = str[i]; - pango_layout_set_text(layout, text, 1); - - gdk_draw_layout(ctk_gtksim_pixmap, color->color, - x, y, layout); - /* gdk_draw_string(ctk_gtksim_pixmap, font->font, color->color, - x, y + FONT_BASELINE, text);*/ - x += RASTER_X; - } - } else { - pango_layout_set_text(layout, str, -1); - - gdk_draw_layout(ctk_gtksim_pixmap, color->color, - x, y, layout); - /* gdk_draw_string(ctk_gtksim_pixmap, font->font, color->color, - x, y + FONT_BASELINE, str);*/ - } -} -/*--------------------------------------------------------------------------*/ -static GdkGC * -get_color(unsigned short r, unsigned short g, unsigned short b) -{ - GdkGCValues values; - GdkColor color; - - color.pixel = 0; - color.red = r; - color.green = g; - color.blue = b; - - if(gdk_colormap_alloc_color(gdk_colormap_get_system(), - &color, FALSE, TRUE)) { - } - - values.foreground = color; - - return gdk_gc_new_with_values(ctk_gtksim_drawing_area->window, - &values, - GDK_GC_FOREGROUND); -} -/*--------------------------------------------------------------------------*/ -void -ctk_gtksim_draw_init(void) -{ - /* - ctk_gtksim_draw_font_normal.font = - gdk_font_load("-*-helvetica-medium-r-*-*-10-*-*-*-*-*-*-*"); - if(ctk_gtksim_draw_font_normal.font != NULL) { - printf("ctk-gtksim-service: Font loaded OK\n"); - } else { - printf("ctk-gtksim-service: Font loading failed\n"); - exit(1); - } - - ctk_gtksim_draw_font_bold.font = - gdk_font_load("-*-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*"); - if(ctk_gtksim_draw_font_bold.font != NULL) { - printf("ctk-gtksim-service: Font loaded OK\n"); - } else { - printf("ctk-gtksim-service: Font loading failed\n"); - exit(1); - } - - ctk_gtksim_draw_font_menu.font = - gdk_font_load("-*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*"); - if(ctk_gtksim_draw_font_menu.font != NULL) { - printf("ctk-gtksim-service: Font loaded OK\n"); - } else { - printf("ctk-gtksim-service: Font loading failed\n"); - exit(1); - } - - ctk_gtksim_draw_font_monospace.font = - gdk_font_load("-*-courier-medium-r-*-*-*-120-*-*-*-*-*-*"); - if(ctk_gtksim_draw_font_monospace.font != NULL) { - printf("ctk-gtksim-service: Font loaded OK\n"); - } else { - printf("ctk-gtksim-service: Font loading failed\n"); - exit(1); - } - */ - ctk_gtksim_draw_color_blue.color = get_color(0, 0, 0xffff); - ctk_gtksim_draw_color_white.color = get_color(0xffff, 0xffff, 0xffff); - ctk_gtksim_draw_color_lightgray.color = get_color(0xefff, 0xefff, 0xefff); - ctk_gtksim_draw_color_midgray.color = get_color(0xdfff, 0xdfff, 0xdfff); - ctk_gtksim_draw_color_darkgray.color = get_color(0xcfff, 0xcfff, 0xcfff); - ctk_gtksim_draw_color_ddarkgray.color = get_color(0xafff, 0xafff, 0xafff); - ctk_gtksim_draw_color_black.color = get_color(0, 0, 0); - - layout = pango_layout_new(gtk_widget_get_pango_context(ctk_gtksim_drawing_area)); - - ctk_gtksim_draw_font_normal.font = - pango_font_description_from_string("Arial 8"); - ctk_gtksim_draw_font_bold.font = - pango_font_description_from_string("Arial bold 8"); - ctk_gtksim_draw_font_menu.font = - pango_font_description_from_string("Arial bold 9"); - ctk_gtksim_draw_font_monospace.font = - pango_font_description_from_string("Monospace 8"); - ctk_gtksim_draw_font_monospace_bold.font = - pango_font_description_from_string("Monospace bold 8"); - - -} -/*--------------------------------------------------------------------------*/ diff --git a/backyard/platform/gtk/ctk/ctk-gtksim-draw.h b/backyard/platform/gtk/ctk/ctk-gtksim-draw.h deleted file mode 100644 index ffb783cbb..000000000 --- a/backyard/platform/gtk/ctk/ctk-gtksim-draw.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef __CTK_GTKSIM_DRAW_H__ -#define __CTK_GTKSIM_DRAW_H__ - -struct ctk_gtksim_draw_font; - -extern struct ctk_gtksim_draw_font ctk_gtksim_draw_font_normal, - ctk_gtksim_draw_font_bold, - ctk_gtksim_draw_font_menu, - ctk_gtksim_draw_font_monospace, - ctk_gtksim_draw_font_monospace_bold; - -struct ctk_gtksim_draw_color; - -extern struct ctk_gtksim_draw_color ctk_gtksim_draw_color_white, - ctk_gtksim_draw_color_lightgray, - ctk_gtksim_draw_color_midgray, - ctk_gtksim_draw_color_darkgray, - ctk_gtksim_draw_color_ddarkgray, - ctk_gtksim_draw_color_black, - ctk_gtksim_draw_color_blue; - -void ctk_gtksim_draw_init(void); - -int ctk_gtksim_draw_string_width(struct ctk_gtksim_draw_font *font, - char *str, int monospace); - -void ctk_gtksim_draw_string(struct ctk_gtksim_draw_font *font, - struct ctk_gtksim_draw_color *color, - int x, int y, char *str, - int monospace); - -void ctk_gtksim_draw_line(struct ctk_gtksim_draw_color *color, - int x1, int y1, - int x2, int y2); - - -#endif /* __CTK_GTKSIM_DRAW_H__ */ diff --git a/backyard/platform/gtk/ctk/ctk-gtksim-service.c b/backyard/platform/gtk/ctk/ctk-gtksim-service.c deleted file mode 100644 index 63a300903..000000000 --- a/backyard/platform/gtk/ctk/ctk-gtksim-service.c +++ /dev/null @@ -1,869 +0,0 @@ - -/*#include "ctk/ctk-draw-service.h"*/ - -#include "ctk-gtksim-draw.h" -#include "ctk-gtksim.h" - -#include - - -#define WINDOWBORDER_WIDTH 1 -#define WINDOWBORDER_HEIGHT 1 -#define WINDOWTITLE_HEIGHT 3 -#define MENU_HEIGHT 1 -#define MENUBAR_HEIGHT 12 - -#define FONT_BASELINE 12 - -#define MENUBAR_FONT_BASELINE 7 - -#define RASTER_X 8 -#define RASTER_Y 14 - -#define BUTTON_HEIGHT 12 -#define BUTTON_X_BORDER 4 -#define BUTTON_Y_BORDER 1 - -#define TEXTENTRY_HEIGHT 12 -#define TEXTENTRY_X_BORDER 4 -#define TEXTENTRY_Y_BORDER 1 - -static GdkGC *white, *lightgray, *midgray, *darkgray, *ddarkgray, *black, - *blue; - -static GdkPixbuf *background, *windowborder, *menubar; - -static void -draw_widget(struct ctk_widget *w, - unsigned char winx, - unsigned char winy, - unsigned char clipx, - unsigned char clipy, - unsigned char clipy1, - unsigned char clipy2, - unsigned char focus); - -/*--------------------------------------------------------------------------*/ -static GdkGC * -get_color(unsigned short r, unsigned short g, unsigned short b) -{ - GdkGCValues values; - GdkColor color; - - color.pixel = 0; - color.red = r; - color.green = g; - color.blue = b; - - if(gdk_colormap_alloc_color(gdk_colormap_get_system(), - &color, FALSE, TRUE)) { - } - - values.foreground = color; - - return gdk_gc_new_with_values(ctk_gtksim_drawing_area->window, - &values, - GDK_GC_FOREGROUND); -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_init(void) -{ - GtkWidget *image; - - image = gtk_image_new_from_file(CTK_GTKSIM_SERVICE_PNGDIR "/background.png"); - background = gtk_image_get_pixbuf(GTK_IMAGE(image)); - - image = gtk_image_new_from_file(CTK_GTKSIM_SERVICE_PNGDIR "/windowborder.png"); - windowborder = gtk_image_get_pixbuf(GTK_IMAGE(image)); - - image = gtk_image_new_from_file(CTK_GTKSIM_SERVICE_PNGDIR "/menubar.png"); - menubar = gtk_image_get_pixbuf(GTK_IMAGE(image)); - - ctk_gtksim_init(); - ctk_gtksim_draw_init(); - - - blue = get_color(0, 0, 0xffff); - white = get_color(0xffff, 0xffff, 0xffff); - lightgray = get_color(0xefff, 0xefff, 0xefff); - midgray = get_color(0xdfff, 0xdfff, 0xdfff); - darkgray = get_color(0xcfff, 0xcfff, 0xcfff); - ddarkgray = get_color(0xafff, 0xafff, 0xafff); - black = get_color(0, 0, 0); - - -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear(unsigned char y1, unsigned char y2) -{ - if(background == NULL) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - darkgray, - TRUE, - 0, - y1 * RASTER_Y + MENUBAR_HEIGHT, - CTK_GTKSIM_SCREEN_WIDTH, - (y2 - y1) * RASTER_Y); - } else { - gdk_draw_pixbuf(ctk_gtksim_pixmap, - darkgray, - background, - 0, - y1 * RASTER_Y, - 0, - y1 * RASTER_Y + MENUBAR_HEIGHT, - CTK_GTKSIM_SCREEN_WIDTH, - (y2 - y1) * RASTER_Y, - GDK_RGB_DITHER_NONE, 0, 0); - } -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_clear_window(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - int x, y; - - x = window->x; - y = window->y + MENU_HEIGHT; - - /* Clear window */ - if(focus & CTK_FOCUS_WINDOW) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - x * RASTER_X - 1, - y * RASTER_Y - 1 + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X + 2, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y + 2); - } else { - gdk_draw_rectangle(ctk_gtksim_pixmap, - lightgray, - TRUE, - x * RASTER_X - 1, - y * RASTER_Y - 1 + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X + 2, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y + 2); - } -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_window(struct ctk_window *window, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - struct ctk_widget *w; - unsigned char wfocus; - int x, y, x1, y1, x2, y2; - - x = window->x; - y = window->y + MENU_HEIGHT; - - x1 = x + WINDOWBORDER_WIDTH; - y1 = y + WINDOWTITLE_HEIGHT; - x2 = x1 + window->w; - y2 = y1 + window->h; - - /* Draw window border */ - gdk_draw_rectangle(ctk_gtksim_pixmap, - darkgray, - FALSE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y); - - if(ctk_mode_get() == CTK_MODE_WINDOWMOVE) { - if(focus & CTK_FOCUS_WINDOW) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - x * RASTER_X + 1, - y * RASTER_Y + MENUBAR_HEIGHT + 1, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X - 2, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y - 2); - } else { - gdk_draw_rectangle(ctk_gtksim_pixmap, - midgray, - TRUE, - x * RASTER_X + 1, - y * RASTER_Y + MENUBAR_HEIGHT + 1, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X - 2, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y - 2); - } - return; - } - - if(windowborder == NULL) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - midgray, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X, - WINDOWTITLE_HEIGHT * RASTER_Y); - } else { - gdk_draw_pixbuf(ctk_gtksim_pixmap, - midgray, - windowborder, - 0, 0, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X, - WINDOWTITLE_HEIGHT * RASTER_Y, - GDK_RGB_DITHER_NONE, 0, 0); - } - - - gdk_draw_line(ctk_gtksim_pixmap, - darkgray, - x * RASTER_X, - (y + WINDOWTITLE_HEIGHT) * RASTER_Y - 1 + MENUBAR_HEIGHT, - (x + window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X, - (y + WINDOWTITLE_HEIGHT) * RASTER_Y - 1 + MENUBAR_HEIGHT); - - - /* Draw inactive widgets. */ - for(w = window->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - focus); - } - - /* Draw active widgets. */ - for(w = window->active; w != NULL; w = w->next) { - wfocus = focus; - if(w == window->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, x1, y1, x2, y2, - clipy1, clipy2, - wfocus); - } - - ctk_gtksim_set_redrawflag(); -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_dialog(struct ctk_window *window) -{ - struct ctk_widget *w; - unsigned char wfocus, focus; - int x, y, x1, y1, x2, y2; - - focus = CTK_FOCUS_DIALOG; - - x = window->x; - y = window->y + MENU_HEIGHT; - - x1 = x + WINDOWBORDER_WIDTH; - y1 = y + WINDOWTITLE_HEIGHT; - x2 = x1 + window->w; - y2 = y1 + window->h; - - /* Draw window border */ - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - FALSE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y); - - - - gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - x * RASTER_X + 1, - y * RASTER_Y + 1 + MENUBAR_HEIGHT, - (window->w + 2 * WINDOWBORDER_WIDTH) * RASTER_X - 2, - (window->h + WINDOWTITLE_HEIGHT + - WINDOWBORDER_HEIGHT) * RASTER_Y - 2); - - /* Draw inactive widgets. */ - for(w = window->inactive; w != NULL; w = w->next) { - draw_widget(w, x1, y1, x2, y2, - y1, y2, - focus); - } - - /* Draw active widgets. */ - for(w = window->active; w != NULL; w = w->next) { - wfocus = focus; - if(w == window->focused) { - wfocus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, x1, y1, x2, y2, - y1, y2, - wfocus); - } - - ctk_gtksim_set_redrawflag(); - -} -/*--------------------------------------------------------------------------*/ -static void -draw_widget(struct ctk_widget *w, - unsigned char winx, unsigned char winy, - unsigned char clipx, - unsigned char clipy, - unsigned char clipy1, - unsigned char clipy2, - unsigned char focus) -{ - unsigned char text[1000]; - unsigned char x, y; - int width, xpos; - int i, j; - GdkGC *bgcol, *buttoncol, *color, *inv_color; - struct ctk_gtksim_draw_font *buttonfont, *textfont, *textfont_bold; - int monospace; - unsigned char *bitmap; - - x = winx + w->x; - y = winy + w->y; - - if(focus & CTK_FOCUS_WINDOW) { - bgcol = white; - } else { - bgcol = lightgray; - } - - if(focus & CTK_FOCUS_WINDOW) { - buttoncol = lightgray; - } else { - buttoncol = midgray; - } - - monospace = w->flags & CTK_WIDGET_FLAG_MONOSPACE; - if(monospace) { - textfont = &ctk_gtksim_draw_font_monospace; - textfont_bold = &ctk_gtksim_draw_font_monospace_bold; - } else { - textfont = &ctk_gtksim_draw_font_normal; - textfont_bold = &ctk_gtksim_draw_font_bold; - } - - switch(w->type) { - case CTK_WIDGET_SEPARATOR: - gdk_draw_line(ctk_gtksim_pixmap, - darkgray, - x * RASTER_X, - y * RASTER_Y + RASTER_Y / 2 + MENUBAR_HEIGHT, - (x + w->w) * RASTER_X, - y * RASTER_Y + RASTER_Y / 2 + MENUBAR_HEIGHT); - break; - case CTK_WIDGET_LABEL: - gdk_draw_rectangle(ctk_gtksim_pixmap, - bgcol, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - w->w * RASTER_X, - w->h * RASTER_Y); - for(i = 0; i < w->h; ++i) { - strncpy(text, &w->widget.label.text[i * w->w], w->w); - for(j = 0; j < w->w; ++j) { - if(text[j] >= 0x80) { - text[j] = text[j] & 0x7f; - } - if(text[j] == 0) { - text[j] = ' '; - } - } - text[w->w] = 0; - ctk_gtksim_draw_string(textfont, - &ctk_gtksim_draw_color_black, - RASTER_X * x, - RASTER_Y * (y + i) + MENUBAR_HEIGHT, - text, monospace); - - strncpy(text, &w->widget.label.text[i * w->w], w->w); - for(j = 0; j < w->w; ++j) { - if(text[j] >= 0x80) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - FALSE, - (x + j) * RASTER_X - 2, - y * RASTER_Y + MENUBAR_HEIGHT, - RASTER_X + 2, - BUTTON_HEIGHT + 1); - } - } - } - - break; - case CTK_WIDGET_BUTTON: - if(w == (struct ctk_widget *)&w->window->titlebutton) { - buttonfont = &ctk_gtksim_draw_font_bold; - } else { - buttonfont = textfont; - } - - ++x; - - width = ctk_gtksim_draw_string_width(buttonfont, - w->widget.button.text, - monospace); - if(focus == (CTK_FOCUS_WIDGET|CTK_FOCUS_WINDOW) || - focus == (CTK_FOCUS_WIDGET|CTK_FOCUS_DIALOG)) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - FALSE, - x * RASTER_X - BUTTON_X_BORDER, - y * RASTER_Y - BUTTON_Y_BORDER + MENUBAR_HEIGHT, - w->w * RASTER_X + BUTTON_X_BORDER * 2, - BUTTON_HEIGHT + BUTTON_Y_BORDER); - /* gdk_draw_rectangle(ctk_gtksim_pixmap, - ctk_gtksim_drawing_area->style->black_gc, - FALSE, - x * RASTER_X - BUTTON_X_BORDER - 1, - y * RASTER_Y - BUTTON_Y_BORDER - 1, - w->w * RASTER_X + BUTTON_X_BORDER * 2 + 1, - RASTER_Y + BUTTON_Y_BORDER * 2 + 1);*/ - } else { - gdk_draw_rectangle(ctk_gtksim_pixmap, - darkgray, - FALSE, - x * RASTER_X - BUTTON_X_BORDER, - y * RASTER_Y - BUTTON_Y_BORDER + MENUBAR_HEIGHT, - w->w * RASTER_X + BUTTON_X_BORDER * 2, - BUTTON_HEIGHT + BUTTON_Y_BORDER); - } - gdk_draw_rectangle(ctk_gtksim_pixmap, - buttoncol, - TRUE, - x * RASTER_X - BUTTON_X_BORDER + 1, - y * RASTER_Y + MENUBAR_HEIGHT, - w->w * RASTER_X + BUTTON_X_BORDER * 2 - 2, - BUTTON_HEIGHT); - - gdk_draw_line(ctk_gtksim_pixmap, - ddarkgray, - x * RASTER_X - BUTTON_X_BORDER + 1, - y * RASTER_Y + BUTTON_HEIGHT - 1 + MENUBAR_HEIGHT, - x * RASTER_X + w->w * RASTER_X + BUTTON_X_BORDER - 1, - y * RASTER_Y + BUTTON_HEIGHT - 1 + MENUBAR_HEIGHT); - gdk_draw_line(ctk_gtksim_pixmap, - ddarkgray, - x * RASTER_X + w->w * RASTER_X + BUTTON_X_BORDER - 1, - y * RASTER_Y + BUTTON_HEIGHT - 1 + MENUBAR_HEIGHT, - x * RASTER_X + w->w * RASTER_X + BUTTON_X_BORDER - 1, - y * RASTER_Y + MENUBAR_HEIGHT); - - if(w != &w->window->closebutton) { - ctk_gtksim_draw_string(buttonfont, - &ctk_gtksim_draw_color_black, - RASTER_X * x + - (w->w * RASTER_X) / 2 - width / 2, - RASTER_Y * y + MENUBAR_HEIGHT, - w->widget.button.text, - monospace); - } - break; - case CTK_WIDGET_HYPERLINK: - strncpy(text, w->widget.hyperlink.text, w->w); - text[w->w] = 0; - width = ctk_gtksim_draw_string_width(textfont, text, monospace); - gdk_draw_rectangle(ctk_gtksim_pixmap, - bgcol, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - width, - RASTER_Y); - if(focus & CTK_FOCUS_WIDGET) { - ctk_gtksim_draw_string(textfont_bold, - &ctk_gtksim_draw_color_blue, - RASTER_X * x, - RASTER_Y * y + MENUBAR_HEIGHT, - text, monospace); - } else { - ctk_gtksim_draw_string(textfont, - &ctk_gtksim_draw_color_blue, - RASTER_X * x, - RASTER_Y * y + MENUBAR_HEIGHT, - text, monospace); - } - gdk_draw_line(ctk_gtksim_pixmap, - blue, - x * RASTER_X, - y * RASTER_Y + FONT_BASELINE + 1 + MENUBAR_HEIGHT, - x * RASTER_X + width, - y * RASTER_Y + FONT_BASELINE + 1 + MENUBAR_HEIGHT); - - break; - case CTK_WIDGET_TEXTENTRY: - strncpy(text, w->widget.textentry.text, sizeof(text)); - text[w->widget.textentry.xpos] = 0; - width = ctk_gtksim_draw_string_width(textfont, text, monospace); - gdk_draw_rectangle(ctk_gtksim_pixmap, - darkgray, - FALSE, - x * RASTER_X - TEXTENTRY_X_BORDER + RASTER_X, - y * RASTER_Y - TEXTENTRY_Y_BORDER + MENUBAR_HEIGHT, - w->w * RASTER_X + TEXTENTRY_X_BORDER * 2 - 1, - TEXTENTRY_HEIGHT + TEXTENTRY_Y_BORDER); - gdk_draw_rectangle(ctk_gtksim_pixmap, - bgcol, - TRUE, - x * RASTER_X + RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - w->w * RASTER_X, - TEXTENTRY_HEIGHT); - ctk_gtksim_draw_string(textfont, - &ctk_gtksim_draw_color_black, - RASTER_X * x + RASTER_X, - RASTER_Y * y + MENUBAR_HEIGHT, - w->widget.textentry.text, - monospace); - if(focus == (CTK_FOCUS_WIDGET|CTK_FOCUS_WINDOW) || - focus == (CTK_FOCUS_WIDGET|CTK_FOCUS_DIALOG)) { - gdk_draw_line(ctk_gtksim_pixmap, - black, - x * RASTER_X + width + RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - x * RASTER_X + width + RASTER_X, - y * RASTER_Y + TEXTENTRY_HEIGHT - 1 + MENUBAR_HEIGHT); - } - break; - case CTK_WIDGET_ICON: - width = ctk_gtksim_draw_string_width(&ctk_gtksim_draw_font_normal, - w->widget.icon.title, monospace); - - if(x * RASTER_X + width >= CTK_GTKSIM_SCREEN_WIDTH - RASTER_X) { - xpos = CTK_GTKSIM_SCREEN_WIDTH - width - RASTER_X; - } else { - xpos = x * RASTER_X; - } - - if((focus & CTK_FOCUS_WIDGET) == 0) { - color = black; - inv_color = bgcol; - } else { - color = bgcol; - inv_color = black; - } - - bitmap = w->widget.icon.bitmap; - if (bitmap != NULL) { - int k, c; - - for (c = 0; c < 9; ++c) { - for (i = 0; i < 8; ++i) { - unsigned char b = bitmap[i + c * 8]; - for (k = 0; k < 8; k++) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - ((b >> k) & 1) > 0 ? color : inv_color, - TRUE, - x * RASTER_X + 8 * (c % 3) + (8 - k), - y * RASTER_Y + MENUBAR_HEIGHT + - 8 * (c / 3) + i, - 1, 1); - } - } - } - } else { - gdk_draw_rectangle(ctk_gtksim_pixmap, - color, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - 24, 24); - } - - /* if((focus & CTK_FOCUS_WIDGET) == 0) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - bgcol, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - 24, 24); - } else { - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - TRUE, - x * RASTER_X, - y * RASTER_Y + MENUBAR_HEIGHT, - 24, 24); - }*/ - - /* gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - xpos, - RASTER_Y * y + 24 + 1 + MENUBAR_HEIGHT, - width, - RASTER_Y);*/ - - ctk_gtksim_draw_string(textfont, - &ctk_gtksim_draw_color_black, - xpos + 1, - RASTER_Y * y + 24 + 1 + MENUBAR_HEIGHT, - w->widget.icon.title, - monospace); - ctk_gtksim_draw_string(textfont, - &ctk_gtksim_draw_color_white, - xpos, - RASTER_Y * y + 24 + MENUBAR_HEIGHT, - w->widget.icon.title, - monospace); - - - break; - case CTK_WIDGET_BITMAP: - bitmap = w->widget.bitmap.bitmap; - if(bitmap != NULL) { - int bx, by; - int k; - int xtmp; - - color = black; - inv_color = bgcol; - - for(by = 0; by < w->h; ++by) { - for(bx = 0; bx < w->w; ++bx) { - for (i = 0; i < 8; ++i) { - unsigned char b = bitmap[i + (by * w->w + bx) * 8]; - for (k = 0; k < 8; k++) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - ((b >> k) & 1) > 0 ? color : inv_color, - TRUE, - x * RASTER_X + 8 * bx + (8 - k), - y * RASTER_Y + MENUBAR_HEIGHT + - 8 * by + i, - 1, 1); - } - } - } - } - } - break; - default: - break; - } -} - -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_widget(struct ctk_widget *w, - unsigned char focus, - unsigned char clipy1, - unsigned char clipy2) -{ - struct ctk_window *win = w->window; - unsigned char posx, posy; - - posx = win->x + WINDOWBORDER_WIDTH; - posy = win->y + WINDOWTITLE_HEIGHT + MENU_HEIGHT; - - if(w == win->focused) { - focus |= CTK_FOCUS_WIDGET; - } - - draw_widget(w, posx, posy, - posx + win->w, - posy + win->h, - clipy1, clipy2, - focus); - - ctk_gtksim_set_redrawflag(); -} -/*--------------------------------------------------------------------------*/ -static void -draw_menu(struct ctk_menu *m, int x, int open) -{ - int i; - int xpos; - - if(x >= CTK_GTKSIM_SCREEN_WIDTH / RASTER_X - 16) { - xpos = CTK_GTKSIM_SCREEN_WIDTH / RASTER_X - 16; - } else { - xpos = x; - } - - if(open) { - - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - TRUE, - RASTER_X * x, 0, - m->titlelen * RASTER_X, - RASTER_Y + MENUBAR_HEIGHT); - - ctk_gtksim_draw_string(&ctk_gtksim_draw_font_menu, - &ctk_gtksim_draw_color_white, - RASTER_X * x + 2, - MENUBAR_FONT_BASELINE, - m->title, 0); - - gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - xpos * RASTER_X, - RASTER_Y * MENU_HEIGHT + MENUBAR_HEIGHT, - (xpos + 16) * RASTER_X, - (m->nitems) * RASTER_Y); - - for(i = 0; i < m->nitems; ++i) { - if(i == m->active) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - black, - TRUE, - RASTER_X * xpos, - (MENU_HEIGHT + i) * RASTER_Y + MENUBAR_HEIGHT, - (xpos + 16) * RASTER_X, - RASTER_Y); - ctk_gtksim_draw_string(&ctk_gtksim_draw_font_normal, - &ctk_gtksim_draw_color_white, - RASTER_X * xpos + 2, - (MENU_HEIGHT + i) * RASTER_Y + - MENUBAR_HEIGHT, - m->items[i].title, 0); - - } else { - ctk_gtksim_draw_string(&ctk_gtksim_draw_font_normal, - &ctk_gtksim_draw_color_black, - RASTER_X * xpos + 2, - (MENU_HEIGHT + i) * RASTER_Y + MENUBAR_HEIGHT, - m->items[i].title, 0); - } - - } - } else { - /* gdk_draw_rectangle(ctk_gtksim_pixmap, - white, - TRUE, - RASTER_X * x, 0, - m->titlelen * RASTER_X, RASTER_Y);*/ - - ctk_gtksim_draw_string(&ctk_gtksim_draw_font_menu, - &ctk_gtksim_draw_color_black, - RASTER_X * x, MENUBAR_FONT_BASELINE, - m->title, 0); - - } -} -/*--------------------------------------------------------------------------*/ -static void -s_ctk_draw_menus(struct ctk_menus *menus) -{ - struct ctk_menu *m; - int x; - - if(menubar != NULL) { - gdk_draw_pixbuf(ctk_gtksim_pixmap, - darkgray, - menubar, - 0, 0, - 0, 0, - CTK_GTKSIM_SCREEN_WIDTH, - RASTER_Y + MENUBAR_HEIGHT, - GDK_RGB_DITHER_NONE, 0, 0); - } - - x = 1; - for(m = menus->menus->next; m != NULL; m = m->next) { - draw_menu(m, x, m == menus->open); - x += strlen(m->title); - } - - x = CTK_GTKSIM_SCREEN_WIDTH / RASTER_X - strlen(menus->menus->title); - draw_menu(menus->menus, x, menus->menus == menus->open); - - - - /* gdk_draw_line(ctk_gtksim_pixmap, - ctk_gtksim_drawing_area->style->black_gc, - 0, RASTER_Y, - CTK_GTKSIM_SCREEN_WIDTH, - RASTER_Y);*/ - - ctk_gtksim_set_redrawflag(); -} -/*--------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_width(void) -{ - return CTK_GTKSIM_SCREEN_WIDTH / RASTER_X; -} -/*--------------------------------------------------------------------------*/ -static unsigned char -s_ctk_draw_height(void) -{ - return CTK_GTKSIM_SCREEN_HEIGHT / RASTER_Y; -} -/*--------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_xtoc(unsigned short x) -{ - return x / RASTER_X; -} -/*--------------------------------------------------------------------------*/ -static unsigned short -s_ctk_mouse_ytoc(unsigned short y) -{ - if(y < MENUBAR_HEIGHT) { - return 0; - } else { - return (y - MENUBAR_HEIGHT) / RASTER_Y; - } -} -/*--------------------------------------------------------------------------*/ -SERVICE(ctk_gtksim_service, ctk_draw_service, -{ - WINDOWBORDER_WIDTH, - WINDOWBORDER_HEIGHT, - WINDOWTITLE_HEIGHT, - s_ctk_draw_init, - s_ctk_draw_clear, - s_ctk_draw_clear_window, - s_ctk_draw_window, - s_ctk_draw_dialog, - s_ctk_draw_widget, - s_ctk_draw_menus, - s_ctk_draw_width, - s_ctk_draw_height, - s_ctk_mouse_xtoc, - s_ctk_mouse_ytoc, -}); - -PROCESS(ctk_gtksim_service_process, "CTK GTK driver"); - -PROCESS_THREAD(ctk_gtksim_service_process, ev, data) { - - PROCESS_BEGIN(); - - SERVICE_REGISTER(ctk_gtksim_service); - - ctk_draw_init(); - - ctk_desktop_redraw(NULL); - - while(ev != PROCESS_EVENT_SERVICE_REMOVED && - ev != PROCESS_EVENT_EXIT) { - process_poll(&ctk_gtksim_service_process); - PROCESS_WAIT_EVENT(); - ctk_gtksim_redraw(); - - } - - SERVICE_REMOVE(ctk_gtksim_service); - - PROCESS_END(); -} -/*--------------------------------------------------------------------------*/ diff --git a/backyard/platform/gtk/ctk/ctk-gtksim-service.h b/backyard/platform/gtk/ctk/ctk-gtksim-service.h deleted file mode 100644 index eaa059639..000000000 --- a/backyard/platform/gtk/ctk/ctk-gtksim-service.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __CTK_GTKSIM_SERVICE_H__ -#define __CTK_GTKSIM_SERVICE_H__ - -#include "contiki.h" - -PROCESS_NAME(ctk_gtksim_service_process); - -#endif /* __CTK_GTKSIM_SERVICE_H__ */ diff --git a/backyard/platform/gtk/ctk/ctk-gtksim.c b/backyard/platform/gtk/ctk/ctk-gtksim.c deleted file mode 100644 index d57040ae8..000000000 --- a/backyard/platform/gtk/ctk/ctk-gtksim.c +++ /dev/null @@ -1,371 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-gtksim.c,v 1.1 2008/01/05 21:08:26 oliverschmidt Exp $ - * - */ - -/* This file provides a very simple implementation of CTK using the - GTK (Gimp toolkit) under FreeBSD/Linux. */ - - -#include "lib/libconio.h" - -#include "ctk/ctk.h" -#include "ctk/ctk-draw.h" -#include "ctk/ctk-mouse.h" - -#include -#include -#include - -#define FONT_HEIGHT 14 -#define FONT_WIDTH 8 -#define FONT_HEIGHT_BASELINE 11 - -GdkPixmap *ctk_gtksim_pixmap = NULL; -GtkWidget *ctk_gtksim_drawing_area; -static GdkFont *font; - -static int mouse_x, mouse_y, mouse_button; - -static int redrawflag; - -void -ctk_gtksim_redraw(void) -{ - if(redrawflag) { - gdk_draw_pixmap(ctk_gtksim_drawing_area->window, - ctk_gtksim_drawing_area->style->fg_gc[GTK_WIDGET_STATE (ctk_gtksim_drawing_area)], - ctk_gtksim_pixmap, - 0,0,0,0, - CTK_GTKSIM_SCREEN_WIDTH, CTK_GTKSIM_SCREEN_HEIGHT); - redrawflag = 0; - } - -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_gtksim_set_redrawflag(void) -{ - redrawflag = 1; -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_arch_draw_char(char c, - unsigned char x, unsigned char y, - unsigned char reversed, - unsigned char color) -{ - char str[2]; - - str[0] = c; - str[1] = 0; - - if(reversed) { - gdk_draw_rectangle(ctk_gtksim_pixmap, - ctk_gtksim_drawing_area->style->black_gc, - TRUE, - x * FONT_WIDTH, - y * FONT_HEIGHT, - FONT_WIDTH, FONT_HEIGHT); - - gdk_draw_string(ctk_gtksim_pixmap, - font, - ctk_gtksim_drawing_area->style->white_gc, - x * FONT_WIDTH, FONT_HEIGHT_BASELINE + y * FONT_HEIGHT, - str); - } else { - gdk_draw_rectangle(ctk_gtksim_pixmap, - ctk_gtksim_drawing_area->style->white_gc, - TRUE, - x * FONT_WIDTH, - y * FONT_HEIGHT, - FONT_WIDTH, FONT_HEIGHT); - - gdk_draw_string(ctk_gtksim_pixmap, - font, - ctk_gtksim_drawing_area->style->black_gc, - x * FONT_WIDTH, FONT_HEIGHT_BASELINE + y * FONT_HEIGHT, - str); - } - - gdk_draw_pixmap(ctk_gtksim_drawing_area->window, - ctk_gtksim_drawing_area->style->fg_gc[GTK_WIDGET_STATE (ctk_gtksim_drawing_area)], - ctk_gtksim_pixmap, - x * FONT_WIDTH, - y * FONT_HEIGHT, - x * FONT_WIDTH, - y * FONT_HEIGHT, - FONT_WIDTH, FONT_HEIGHT); - -} -/*-----------------------------------------------------------------------------------*/ -#define NUMKEYS 100 -static ctk_arch_key_t keys[NUMKEYS]; -static int firstkey, lastkey; - -unsigned char -ctk_arch_keyavail(void) -{ - return firstkey != lastkey; -} -/*-----------------------------------------------------------------------------------*/ -ctk_arch_key_t -ctk_arch_getkey(void) -{ - ctk_arch_key_t key; - key = keys[firstkey]; - - if(firstkey != lastkey) { - ++firstkey; - if(firstkey >= NUMKEYS) { - firstkey = 0; - } - } - - return key; -} -/*-----------------------------------------------------------------------------------*/ -static gint -configure_event(GtkWidget *widget, GdkEventConfigure *event) -{ - if(ctk_gtksim_pixmap != NULL) { - gdk_pixmap_unref(ctk_gtksim_pixmap); - } - - ctk_gtksim_pixmap = gdk_pixmap_new(widget->window, - widget->allocation.width, - widget->allocation.height, - -1); - - if(ctk_gtksim_pixmap == NULL) { - printf("gdk_pixmap_new == NULL\n"); - exit(1); - } - gdk_draw_rectangle(ctk_gtksim_pixmap, - widget->style->white_gc, - TRUE, - 0, 0, - widget->allocation.width, - widget->allocation.height); - - return TRUE; -} - -/* Redraw the screen from the backing pixmap */ -static gint -expose_event (GtkWidget * widget, GdkEventExpose * event) -{ - /* draw_screen();*/ - gdk_draw_pixmap(widget->window, - widget->style->fg_gc[GTK_WIDGET_STATE (widget)], - ctk_gtksim_pixmap, - event->area.x, event->area.y, - event->area.x, event->area.y, - event->area.width, event->area.height); - return FALSE; -} - -static gint -key_press_event (GtkWidget * widget, GdkEventKey * event) -{ - if(event->keyval == GDK_Shift_L || - event->keyval == GDK_Shift_R) { - return TRUE; - } - keys[lastkey] = event->keyval; - ++lastkey; - if(lastkey >= NUMKEYS) { - lastkey = 0; - } - - return TRUE; -} - -static gint -key_release_event (GtkWidget * widget, GdkEventKey * event) -{ - return TRUE; -} - -static gint -motion_notify_event (GtkWidget * widget, GdkEventMotion * event) -{ - int x, y; - GdkModifierType state; - - if (event->is_hint) { - gdk_window_get_pointer (event->window, &x, &y, &state); - } else { - x = event->x; - y = event->y; - } - - mouse_x = x; - mouse_y = y; - return TRUE; -} - -static gint -button_press_event (GtkWidget * widget, GdkEventButton * event) -{ - mouse_button = event->button; - return TRUE; -} - -static gint -button_release_event (GtkWidget * widget, GdkEventButton * event) -{ - mouse_button = 0; - return TRUE; -} - -static void -quit(void) -{ - gtk_exit(0); -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_gtksim_init(void) -{ - GtkWidget *window; -#if 0 - GtkWidget *vbox; -#endif - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_title(window, "Contiki GTKsim"); - -#if 0 - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER (window), vbox); - gtk_widget_show(vbox); -#endif - gtk_signal_connect(GTK_OBJECT (window), "destroy", - GTK_SIGNAL_FUNC (quit), NULL); - - /* Create the drawing area */ - - ctk_gtksim_drawing_area = gtk_drawing_area_new(); - gtk_drawing_area_size(GTK_DRAWING_AREA (ctk_gtksim_drawing_area), - CTK_GTKSIM_SCREEN_WIDTH, - CTK_GTKSIM_SCREEN_HEIGHT); -#if 0 - gtk_box_pack_start(GTK_BOX(vbox), ctk_gtksim_drawing_area, TRUE, TRUE, 0); -#else - gtk_container_add(GTK_CONTAINER(window), ctk_gtksim_drawing_area); -#endif - - gtk_widget_show(ctk_gtksim_drawing_area); - - /* Load a fixed width font. */ - /* font = gdk_font_load("-*-gamow-medium-r-*-*-*-90-*-*-*-*-*-*");*/ - /* font = gdk_font_load("-*-courier-*-r-normal-*-14-*-*-*-m-*-iso8859-1");*/ - font = gdk_font_load("-*-courier-medium-r-*-*-12-*-*-*-*-*-iso8859-1"); - if(font != NULL) { - printf("Font loaded OK\n"); - } else { - printf("Font loading failed\n"); - exit(1); - } - - - /* Signals used to handle backing pixmap */ - - gtk_signal_connect(GTK_OBJECT (ctk_gtksim_drawing_area), "expose_event", - (GtkSignalFunc) expose_event, NULL); - gtk_signal_connect(GTK_OBJECT (ctk_gtksim_drawing_area), "configure_event", - (GtkSignalFunc) configure_event, NULL); - - /* Event signals */ - - gtk_signal_connect(GTK_OBJECT (window), "key_press_event", - (GtkSignalFunc) key_press_event, NULL); - gtk_signal_connect(GTK_OBJECT (window), "key_release_event", - (GtkSignalFunc) key_release_event, NULL); - - gtk_signal_connect(GTK_OBJECT (ctk_gtksim_drawing_area), "motion_notify_event", - (GtkSignalFunc) motion_notify_event, NULL); - - gtk_signal_connect(GTK_OBJECT (ctk_gtksim_drawing_area), "button_press_event", - (GtkSignalFunc) button_press_event, NULL); - - gtk_signal_connect(GTK_OBJECT (ctk_gtksim_drawing_area), "button_release_event", - (GtkSignalFunc) button_release_event, NULL); - - gtk_widget_set_events(ctk_gtksim_drawing_area, gtk_widget_get_events (ctk_gtksim_drawing_area) - | GDK_KEY_PRESS_MASK - | GDK_KEY_RELEASE_MASK - | GDK_POINTER_MOTION_MASK - | GDK_POINTER_MOTION_HINT_MASK - | GDK_BUTTON_PRESS_MASK - | GDK_BUTTON_RELEASE_MASK); - - gtk_widget_show(window); - -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_mouse_init(void) -{ - -} -/*-----------------------------------------------------------------------------------*/ -unsigned short -ctk_mouse_x(void) -{ - return mouse_x; -} -/*-----------------------------------------------------------------------------------*/ -unsigned short -ctk_mouse_y(void) -{ - return mouse_y; -} -/*-----------------------------------------------------------------------------------*/ -unsigned char -ctk_mouse_button(void) -{ - return mouse_button; -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_mouse_hide(void) -{ -} -/*-----------------------------------------------------------------------------------*/ -void -ctk_mouse_show(void) -{ -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/gtk/ctk/ctk-gtksim.h b/backyard/platform/gtk/ctk/ctk-gtksim.h deleted file mode 100644 index 2666caa70..000000000 --- a/backyard/platform/gtk/ctk/ctk-gtksim.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the "ctk" console GUI toolkit for cc65 - * - * $Id: ctk-gtksim.h,v 1.1 2008/01/05 21:08:26 oliverschmidt Exp $ - * - */ - -#ifndef __CTK_GTKSIM_H__ -#define __CTK_GTKSIM_H__ - -#include -#include -#include -#include - -#define CTK_ARCH_KEY_T guint - -unsigned char ctk_arch_keyavail(void); -guint ctk_arch_getkey(void); - -#define CH_CURS_RIGHT GDK_Right -#define CH_CURS_DOWN GDK_Down -#define CH_CURS_LEFT GDK_Left -#define CH_CURS_UP GDK_Up -#define CH_ENTER GDK_Return -#define CH_TAB GDK_Tab -#define CH_F1 GDK_F1 -#define CH_F2 GDK_F2 -#define CH_F3 GDK_F3 -#define CH_F4 GDK_F4 -#define CH_F5 GDK_F5 -#define CH_DEL GDK_BackSpace -#define CH_ESC GDK_Escape - -void ctk_gtksim_init(void); - -void ctk_gtksim_redraw(void); - -extern GdkPixmap *ctk_gtksim_pixmap; -extern GtkWidget *ctk_gtksim_drawing_area; - -#define CTK_GTKSIM_SCREEN_WIDTH 1024 -#define CTK_GTKSIM_SCREEN_HEIGHT 768 - -#endif /* __CTK_GTKSIM_H__ */ diff --git a/backyard/platform/gtk/menubar.png b/backyard/platform/gtk/menubar.png deleted file mode 100644 index dfc02e389ff5427a3d8c8e278f89143830f26676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4391 zcmeAS@N?(olHy`uVBq!ia0y~yU}0cjU{K%ykt?T$RxvOza29w(7Bet#3xhBt!>l{r-?h1ukNm--1YFfhoLxJHyX=jZ08=9Mrw7o{eaq^2m8XO?6rgk+>D zxO@5ryiZZhV_*=N>*?YcQgQ2Ttl?@sPeI$#oqOaH)E*g6;Pv5|W*Ts#K#+&U@lJ`b zvvV&`uZf9?p_rqAKuWPI3$w6tbEwOOR9DxF;t_1dmrMOZzn-bNzx#Ua`R}}MZdboI zzh6>XUiy9Is$kQ$9d>_b`qw^E_D|qDaHr-kdtSqA=7xhC|J47UymRMH#(n=da_;xs z-hTgU_i0|XHTN6!?@P@8QFZv2zzqJ#-v4|4Y_U!H`RdoxP$`$m5mI;TTsc@6_IVoY z<1c1jr0i{dTmD+%qvPwCH*)Mdl{v3!!@Uh=619zA%4Bb3MAYB96=Es=vxcYijQUx2 zg|)|)z9Q$m?P ztJX)(CgkSU(4cQ7Y#z>yGh{EZ1j$rfZ(jJqWSf?6Nm*`Eta7I3kqeVQ6rR4|{_@CX z{(HaA>eu@+_0He->F9EmGczP2Ym;3)kAGhOT4CL(mkFWjrAx2Q`(R^b{uQ~k705pO8Kf9sgG&@A^Gc>#1>1)c4OZioO4>+hUUbvV!_Q_jYe$ta?O1K*SKy|IH2Jj(AeW98#b}phxby3$7N^cnDZ7vs~PrtEKo5xn6~!UuV&_+ zjHDBD46iaQF#K)MCh5?|lU1%L`#+&~joPD(%@J;#OxTxQ#bmvapm$w(* zs^9;)rd>DRZ`#2NXB$PXU){cLYi?9hWJBn^wy5M8OH=;mX?N@7OTQA&t<+)Tp6D{G zX7*&Y{Hncg4cv@!w=0OWf0GuP^zZESH}-sc(?wNhshpMVUUFi;?skdJ3b}29Yy#Cx zy7!dk2d2B;lMq?GJ&p6ko4Y0n60Tp`FDOr&zS~MgR(Hj*j|wMT7^`|FXnnG<%wPTK z>6POq^>?H%`OlQv#l1=BP=@KWd2HN2SEdBHXe(B%FxZ`wGI2?ytkNW{PnVNfcklfB z=k@t*ybpHIpWPt#W3i*+&7Eqy?^IqXDR{gt{bf|owHXQS+qMuZO`wG?Vp3n&Q~mq-K@X1`DTsQZRYN(M}?oG``*r3&G_ekdtB{` zQ=i+n7xb6UyT|sV?C!ef3_1F5zkZqfUb^m=XG^!BOr>(3;OAzAFJ`LIQ+CMM7}0^b zDz3nA;lv#m_AZ*ZrvKPNKc%Bu%X=*S1-9uOb=@;5#dRm+pKqVP=kHmT@kZ#((H<8$ zxnEBIPs}@fWowXU!OGH|tity*nx~iFSSEEUH&FZYNs~?WiYd8Gic3xB^cb3)-C}a` zZ{x9dJ6^4(v0169io^T|c{p)BJv^;%jRz1#$UBw|}j*yYbFo|Lk9KvgLj{ zVY!Zn{@3)VPEikh=9&2s)kcWZpV21GZ-7XMMYmd@Q(pVCz;}9ixoJLjCc-XSoF|PZUgD zb}Thb$~E%@i?#8Tt0^xxZoNF$QhImXz9kZQ-rM8voeR%fw^>@wejov@cCp`_$*-bKpVTQfJG8J!M6kZZ10`nA>(R zUs9>j@M+Ihy~rh73fRP#tYJB581OFrT*-__Q#0>*&n{S~V6J^rqQJ}H(wjMIjZ2=G zzMV7Aw9q*%(0Ag=OurZVzSurrK4XdU)WGo1lY@h1sIEA2=S<4km&|smD>K%=E&YA; zcaq_%GHm%RmHm%QJtt{q zb-8mbD_=@{p_s&5i)nl;O72Ey!`EIsQRelay`n%sZAS4ndCC7STe>3^**i8o-Ljm8 zp@oN2Lta3KubNFGRde$R-9#&;Jfo{KgF^x~9hh{EW7}yS%fd*Dbb+H?T(gu)`C2mP zZZJ@{+xRZnO1>?b$;3Esp2F74>nB=!vGei1mH4}{t7)I)WUt3Buax_BW=%-4n10OZ z-`>67RX(fEtrp$$xy4_?&giN6;mv$}mXoGreoa}I9MxN>Vw^nlEQ23+#se9NX=1w! zUrOzMuwylg`rL?>Eg90nE}o~g{7nl^X}p^_QSkSYuN6Ym-gcc)xTfndZKn_adN$dQ zNwPh;+Ycqmt;>3>x>fPYDal0}%QCL(rfI21nf%ymXx+G}b@RRE(kW@ZW)8LsZv=Wx z6F(mj7JF^SN={ksjrOfwVyU_ee`fw&X>P51o2RmO(Tv39XBOSlnEy*|)mpwA`{vFt z6R}@%>b&$_!=+4%UwqOsE8N~c^VZ#2`U|#YIa;+%`fFe;oT;h0ttLCrJW}rJqzJ%i7{p z&h~q(zm2mt_FN0h+q#WCdHbe^d3*;pJa;Wj*lH6g2wJeRAHV4JIu!&Th(* z`P~vZ*=Sos&fe00MVGlaCja}szi5^8@_*aa$~~jkPvw4a)9&2KD$N5?YyCfq_}${> z^w5g&JM7j%!?Vytb3Y>tOyK)wRWEW=ZKsSv}0iTD{)O`SxG& zSNjhKHa%LS*;-FV5j&&6_NU-3Tx~pgv+Ko^Ge8e z?pPM#Z#!#BANRpEXVMlliSuySy7u=d-mD793I;XgN~;cq+ln(Dn42)!{L*zF7jz zbG4o%EC`aXIr71ZZ(c(&r{1N@{AxFz7%VevwKX%2(q0kX6XRol;?nGzJ1tdw4|f0R zJU8h;mY&Hbf5qDmF1K4I6fd|{zg?=}@{UAihKn=43E#|-E4uACW5v8BcC&OkZ%yua z*(aT;wp+aA-tS;PjosfTU$*R6p7y?EtBITczg%^JiiC}EQ|518qy5|4`{|Ab-N1Kw z8XV7d{<=J6-vmu{<4G3{zb`xT?24rgZ;GVM^ew@Q8-=+9_594&RcsKu)BIj|j+g7! zzfIM}g#|om#jVydp<=hQPycyxK>pG+9sjkyuiD;b*LG%>wFT=L&S+k?(*J4t;Yhd0 zbRCn%?_QgNp8i{XEv_JV_K6#>U$1=Cw~;+$S+RP*$1z0FzIN1)pKvNX40XWXTQ9c z%u!R0lUeb|<@qYlX*KmH8O(JBS2LQqM5>uZo1D^a<@9~r7NWzYxno9>dzVE-ftFfx zO2a1In>#1Y__Y1p-oJ0Rco#paf0G=$^~I@;+@*&mTbJJ#4S!rPcfpNq;Zt?YAD0I5 zN?3mhSDkP(vsu4=w>)wuQTVFOIb(+MQ+D}T8`4^;Kb+9J=y90c z_Q7SbptRtBWr^}~&km~ToY;D-`kqYG@vUNYes}ifariYnk38j)eNc7Q1HS8dc_v>t zc3o-D;u3G-UT0~-HC6J{^0Q4Tn?kEJte<{gIgRz{<4ao^>ie2P+?UPCa?AQD|HksN z@4Pv49toF!T5J@iVs3c+`c?AT^XH4EnX&`N8j3fo+Ydw5PLVkX~Hyn z_4_;ATn}6gntG=rvWAdNwc`PG7JCXlNXZGj&zmF))SsV0t`fR33#B=7b+Wx0OyWToyq;RdE#h=~lRe#BFjxE5Ki$Ae z&97@RQp4J3*u0y3>xN$F?befvm(FeED!Ifv?UnXqjnwx~vcA9C@4sS#;>I5}%$Kx& zx9q)g%2B+EKXps#%PVgVgs6N`f$R1Bc=-E3HJwz}BK2`^>y6js!(I z|Iqv+ZGBCYr#o=+oG-t+6kj(zisF>(oHjKslcDmf^xmllx1?=X*}2eL=#zv@p~5p8 zMl1cP(gN>yPrfkuw4wX8waZR(Ea7CYHtaBUsLAzoO93zbQ}R0`m8)PH*)1cg{@1dKT9Txqw?C!eoAHVedRL= VNC_CONF_VIEWPORT_HEIGHT || - vnc_draw_x >= VNC_CONF_VIEWPORT_WIDTH) { - return; - } - - vnc_draw_datalen = datalen; - - if(vnc_draw_datalen + vnc_draw_x >= VNC_CONF_VIEWPORT_WIDTH) { - vnc_draw_datalen = VNC_CONF_VIEWPORT_WIDTH - vnc_draw_x; - if(vnc_draw_datalen == 0) { - return; - } - } - - vnc_draw_dataptr = data; - - /* vnc_draw_bitmapptr = bitmaptab[vnc_draw_y] + - (vnc_draw_x & 0x1f8);*/ - - for(; vnc_draw_datalen > 0; --vnc_draw_datalen) { - /* vnc_draw_pixel(vnc_draw_x, vnc_draw_y, - conv[*vnc_draw_dataptr]);*/ - - bitmapptr = bitmapptrtab[vnc_draw_y] + (vnc_draw_x & 0x1f8); - - if(conv[*vnc_draw_dataptr]) { - o = oratab[vnc_draw_x & 7]; - *bitmapptr = *bitmapptr | o; - } else { - a = andtab[vnc_draw_x & 7]; - *bitmapptr = *bitmapptr & a; - } - ++vnc_draw_dataptr; - ++vnc_draw_x; - } -} -/*-----------------------------------------------------------------------------------*/ -void -vnc_draw_init(void) -{ - unsigned int tmp; - unsigned int i; - unsigned short ptr; - - - /* Create color conversion table. */ - for(i = 0; i < 256; ++i) { - if(((i & 0xc0) > 0xc0) || - ((i & 0x38) > 0x18) || - ((i & 0x07) > 0x03)) { - conv[i] = 0; - } else { - conv[i] = 1; - } - } - - memset(vnc_draw_bitmap, 0, sizeof(vnc_draw_bitmap)); - - for(i = 0; i < VNC_CONF_VIEWPORT_HEIGHT; ++i) { - bitmapptrtab[i] = (u8_t *)((u8_t *)vnc_draw_bitmap + - ((i & 0xfff8)/8) * VNC_CONF_VIEWPORT_WIDTH + - (i & 7)); - } - - viewport_x = 0; - viewport_y = 0; - - viewport_w = VNC_CONF_VIEWPORT_WIDTH; - viewport_h = VNC_CONF_VIEWPORT_HEIGHT; - - return; -} -/*-----------------------------------------------------------------------------------*/ -u16_t -vnc_draw_viewport_x(void) -{ - return viewport_x; -} -/*-----------------------------------------------------------------------------------*/ -u16_t -vnc_draw_viewport_y(void) -{ - return viewport_y; -} -/*-----------------------------------------------------------------------------------*/ -u16_t -vnc_draw_viewport_w(void) -{ - return viewport_w; -} -/*-----------------------------------------------------------------------------------*/ -u16_t -vnc_draw_viewport_h(void) -{ - return viewport_h; -} -/*-----------------------------------------------------------------------------------*/ diff --git a/backyard/platform/gtk/windowborder.png b/backyard/platform/gtk/windowborder.png deleted file mode 100644 index 9618b9ababd4d81c0c5a443b2ab68368d8de9a60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24082 zcmeAS@N?(olHy`uVBq!ia0y~yU}0cjU~u4IVqjq4&X}~Cfq{Xuz$3Dlfq`2Xgc%uT z&5>YWU|=ut^mS#w!Y0DQWpbQRWfcPhgKUXwM2T~LZfp5)EbFt>d zx+|MiQbXUqvwL336Dn-@!**}={ar@EQBmUmFUJ3Iov|}=#@@g2|MGtxth(`0UM?*y z@ts&=UfQ#VX@XD9@7VmXDPQ+;;`RN1zfF>_Y51q3bLP(d|L1QSx81&NK4HG)8C#_@ z_v=5ub;3chC#D^r`|$YTvpP!Gd=vkD<5PO`H&Ulh zy!1GG^>4GgI(_RE?XUk@{;F%CmsVKQll*s2{o?#`hjkN5#dkk_D^$Disruyd=JKiMzyA|h-+k`vKy#Vv;6gkFPi$|&u%ss{NBQTv~YWzjdPv(@9FX0H#Qjb?@xRnHdR_9+;gAD8u=T) zrhh*_LEGZb+y4)JpJul|kKHFHCU!4upX~Ps8~;ALmzx)}aO1xf*<1J2PO8}d{NB71 z8%-0AcigeMcV9rf@Az${p2xAje@9zwoBw@kSxxDC|I?{udk$Ne-A&$j^{H@n<{taY z8}GWFIQzFwWvzYKx}7$s?%iMZ@a~#?|7&48Z}yk||EH98eBZXbo|r{Ddu;qYp38}T zwfFaTtz|L4zhkRQyp8+%>v?N>x2?bU_{0pc+aJzs-1qHQ_s+JDlS|7Jp6<(^mwk54 z_its^mGivboBxfvn4SE+boVQEt=+yd{a^mRD|UbU{3q)D`yV35 z_Z7%=96uf@o&L_^`1hJWl83I}PpoBj*A?C4ykYB$XUo3-e|F?^(9UV4TkC{UON)*^ z>s~9mFE;9OV%2`Be_ysnU--9J{_l$?vUjW7@4qR|>3{pnf5np5YAx;ira#>o-ZFbi zr=IjRE9TGYK@T4Byn3(4|2JmY*Q1-%PE2Y(->LSn_O_A8x1R?}7ewp%$Cp0S`g?s{ zh0OosjdS~LR{h>SODZ>R&;9o`r6T)pq&=>9__a;9ob4ZHQt1BGnU&R--$(zs1vO5GyUQJCJo!p#$NCMw&+huPckh|s61fa= zDefl^=UxoZS+nfOCann5kb8UF|JQGsc|82(!E?X%D#YKudeK6^go*X%sz)iyPvoj` zPn&RlZ`|*_xt=TB@}}q4eC{ z)!%O%3_o5k<958c-;e3){#;i`R&Kyv%ra-a?1V z!8i5x-??{8d->br8(yB5S$(;SH7@2{$k9oMZFiq-nb_y`{;nzHR;QU5j#bSUUQGZSI_Me9rvq{^==49`sLL=ir)a&J`rkS6nN5mfQby>y#Ov zHqN!EY7F(4*WDvq(HO$7v9j`lXZYrVDWQMUe{OE$;!U@#`d@k~TB&@eI(ro7@%vs{ z682Vq9<$o)U)vXP^5<*Ly?P1r-5nQM9s6Z`%FRITpxTUIXSqXfwjYa;zv-Ii`1-L} zP{6Cldh_N51e%<8mD*aVcUVC(apB8#6$@Vq%W11J$UN_7b<&>C7Rt(1Tp8$m|LyCx z12ejq+anIE-U;35(wAi(EwOLncQb{?SEU^C+xMK=>~ze7`-z=GMfcapqK6Vy5k4n4 zrtlWuT{DU0ShTvm!jTp3Itdnz>tow`_{LJOA2i_f2Lm*O$h9Wx5Ycd&=Aet@f3ga9JLZ zv3LGxIW8}om|5m?-{~*2BKIGet9*RLJNtj9 z_kXEe?r{A~;mwx!jc1#JM5nIz{Oj8D&f%ml|L4Zg#jII>gM^d3zT{24ZOL|>*Yx>= zX`-d~b{+Q<`Pm-5AYQ5Bc)R=0mrV)D%Mbl~VzKJ}d5h`67oDC3&M4kl5LWVT=QOMG z8BCLO>-ye!8?Ck0ik$bbQk!Wz!*^}3^J^HTi~Ap=K@X60L2Q+fLo=mH&U>b?m9>E=-flo$st|3_MjExmRP>AJdS2m7Nv^ z%qGW=?~UJ?KJU)H(9bCc=M~uf$mX*BJSQX}@2x|tW$?L|%$xjKE-t;%S-_~K9^$`> zd!^#GmT6}%{7bs4s#jTGJ1?A3x$13rOps!A#>@rUuG5$HYQJJ}U=~-Kl0WNx9OG6u zyR)-1uI9u&sK3^*t6V4S<*OT;1=Vu%*2XBVkzn{G^XHb~;%%&PvVU&2a&XwQnJ;@} z&;8tl?|MqnYd)8Z+{lGn_@+z#_$b0vo1o(E@G9cPgH*G&7g}3bWur}`7=BKjzUu<_ zO!aC>k%kK*7Yn9O{A_#W*6yS~Tbl37&zR4)|J|i4J36GaVi#&pTbh18qTCQrJyX~CBux!Kz#)u(GzL^f5+Pspm{n$~rE$*Di<|Gm;TKg#yIV}-j$M?SYQ z^PyEbX+{Tc@3^<5hkfcaqvo%SuMLEj+HTnOb$iV0K&A<4oy-*l^LnnO%Dz0lY{P}l zn7~bjYd(?K-WpBiMH_tfm+3ex!ITB^N^uF9Y=dse` zm&5*6!r&k1OunRqz)*#DDzP!H#!(+0MoNR7iOKaQilK5v`>z zN82__b#I7kN>bbU?B21sHd|ZE&z=p@ISLzYZ26zbYRT~-)%K~uhaWQz~q zbohY5nzJ2CXP>OPzjU2vi~Xk0&#v^{o~S$Jv~s4-$*Sa1v0uxlI!}IoFgc<9blFmu z8L|&b9Fr{*=hgeARsMf2zJG6c!Ja)gtp9B}C$oP}#QBth(``of6Xtbr*PTiZ?zhpO zb@IW_iL-<)zn|ffp7wp+ijz856*%qJyUr|LvvkK9S%$d}O^82Bbt}^fl1|2BHgTb>^;#I9TvUl$xWt-wm(#wdg_u9`P%n|P+) z?5P=FB2MgMFZ1C@d;ZI9)h3(xAF3bzZ1(y3GQ@sn{>)9W-%Kv_+Vp&pXnOi1>A2k@ zzTeE<2ez(Q`KEMwzob{=MnTh<=O?xHCG$3Nq_TE&EmGwdHpubabL}lpX4w)aEzP-+ zuV!~dSbkG{E}~GmD3E(o)S2*WXI3|w?|i#PkEd@6SKPb{k)OVG);@e3WjoQ*wk)_p zPCMpW)!UNYa}T{-xYD-hZ_e`9udQFX=-UcuoxfZ@_w$xb`7>7fuuM}ra^-5wtg6Q1 z;?|IPQOfrk9vr;9mhU-_is_0S%AGUTy!-TG;hjsnxOvLz&CaAv+kf#v`+}E@udPm; z+9S@eV>;ifoBnm5gcDCsc`q~9#;s%;v-4vwm+ReA(=tvAzfqD;-S~rnDLOK_@9QE_ zof(d+7Ea$kY1UyCxu&2;85M1%n$dob9yV|3X_y!Mcpu;F5C2{+n`pW6{JICvIJ=)N z2`m5kX^r5&eZS_|TTaWj+h%xn37hT*nTctxYfcN+2JAYv+|0DtXtGlMED52F@hK)j z^H^4JY+WfJQ~1^ZuecAoTVM<^7E+c~)he7`qO_*5aKF;VMX5~FA-zrl1f)f=|v-)1si*!ZDM zZS%~T{J*>}et$QA``2TqyT8k+nR8hAMP@9S8Rv89dw%wdC5Gok#o6Y}@;ml(L)ytb zpJuAYuUP);xi!n97scGXqEgE4$9-1{r5A*<%u1Lt^*+Z|+mprT4cfgpR&(5xwcU}I znNmGXZKH$xl-kLb@(0bF+LR!`6hQhk`zs458BU`%i$O9E3F>1 zjcHHLx>svA7QJD=I_Hkk#8W3Dm+ejQ*gS2|_oCH1`LZ|Ul-4e~vzhO%S7}^(nV`vS zuW#G(Zk_WFs8DA;EzEK+L*s>|=V^W=R;IrbuVk~V681X&>h6|^g>J#BiVX$()Yyw7 z3ifP?Dt15Uw`Khf%b))Lo~fU1cVc+eap`7qqvpFfkJ=fgV*lL&*lb-SraZN+>StBG z@TH6EUeTl9w@Q53w+Q}qh$wb@FeP)VVTH%pBW6#fJa20F{z)s3m{ujO7F7On{l|s2 zk5W3m&AhAbvtiB7pzDX%^X=X!KV{i{wM37Xve#raQfo!};@(wxZ$3GD-vcf^M7Qy5q2@t!F?U7Ao*uxa1&NArAMt1N!sJ!$`k zdpu6Xe;GLhn{Lh2IF-Tc$s};{|zusM_p1sK@bIY_m9|8V`!oyMOx$_+U z9rHdD%$Kta}H)A)BuCw~@CUB@G|-CeMw z1FT;(?1<$t4p$9WC^Huw`SiPu;v#$2z5V`xd7+ z|I~aVRO|U9X;OmzrxQ&gM>?lDZ2fTQ-?RLGVmxKhmk*Yhsa@W4e)$?67Ge7j8i#k^ zQkt@8$tstNoDr*{Qv321*UMWU>+IisIV5g-{Q8Dnk(2N4_nG&1n_16XcBA50ZM6k_ zu69kVmp7Xk9&?dvtT^r4d%3&IHS1TA{o(5|T#+msDj#pH{vG}F?5uz0M{gG71?KMh zCwVd3N{Rc-GDg##a(;zcFQZt^44b}9Jd$S+GQI4!y~{X zU&XnsR#mB|q-F1gD~zhm$xU)wrfu|6U+TJZ)4opQ$oa>g>jmw3rO|s_aAuSE+ud`t zHWc07ea2+#5`%{;ZeGpUA+vP*+-cj2-k%lrfBIvo?5FhE?^aK|+7RI15Y;nhYw@eB z`Da2Gu8I(=+?@6DcK1{@-3xZx8h2V596DyvUASb1%1vf9zqki`Snoewsb{`stL=ny zJc&x$(Q50ag<2l4%8D~Q`j|21xBt>Nlb0=4lzX?VD>rbVL3-n_f}5No7u7yqe$m3T zFGq62%XLh#FCt$YpV~U<|CjvwRdrdmoQmpM+Vy;`Vnru=D$&*H=zDPdXvu zB>ZI-w`Ypchs;GMjAMEaJDFMaOL#ntn4fTXWo(eK^Rb}mxeK~1)y|tr?iRoQ!nZ%* zz^}w3W;`dA;xvxhXD+>^Gx^-~IlL2VUnT6=9CBOcBWLqn#iJjel@uyZ6H(!HG?I`s zZcsk*n}>JDuUTnN`(DnP@{Ch=_Vu4t$K*Y4^eZo9aoG4nk$c0uya0o!g%jp(d)>gY z>A}$*F+7~c+Z943s@_$;n6WOZD}QL8t~=`|Z8b4>#)*3=59g&{I-;AT0x-i`T7Lr&C{0)8gwV5>7QPfBqd@^C0VS)XI&sC)NAA+}E_)dq9w5#lo^! znd8c;@-Fv|wx4;C6IWE+HTCm>*SdMy=X?U4v-JN-G%hogRXN0ZmrtKBR?1}0t(kZJ zK2TxTSU=~8O1&*w_-(1W zSpl0%cWigDJ$&8laAWHu##`13I#(Vz-_zK*w3xl5?SIhRESK*APdj;L1>SJTJnU)6 zw;*a=;{3{wI}=<_PKz|$DjiXy%6I1V7jNw!lYXLe!H%bo$qpXO?T1u2a5zW!j!;c^3k2Ow&HMMM6qy6)UHF+#`_- zJgy9O4lgHN6DZo$_e|vKj$XWB?>v9xPCw6Ysm}Ld z+Ow|Td*ZgrG*42aa+zUV&*R+L&U?1>yn7RteP)}{()Ti-DqnNAs+n-YCK_j+8O#nqOzi~TUOUjC*x>V1EeJ*+3MQk3w@ zxUlNSE#9>Y%BNb!y)P8}9kMxFuP#~4`EzCtPi3&W+UBGQaXiua9@eqOQSWnP*RR{d zAM)yUB=a*+BU3{=cqBrTA`4+wbw! ztFO^)m)w)aDBVx2wfa#(*YEP#Ts}K7^|#!%i5b4OSJxG+nb&>muG+qZlRqxMxpZ;k ztz~oig=_-2-|I%k{{HiCsqaR2+mIa}{Fs)do4GAG5wCKE@95cM0Ur${uRdhBqM|YV z;O|oiBO#zP#Bg*A*aFAsc*7qblO(8UvXxPG9_QCr&OAeZn`3lP}C7`Rqic z=#Pt@UDID$p`gTJs<DQNI?M-@hiWw5X(i z*MO>5Y?w?@{py>$AKr`aB3a_*7t}!gY?$x@Bns zdW;7`uW!7dUMqhzL+9eIR};4FNH+EK@3WX?tGma+Hm>QNY5RGmGdfQyA3inUtCRV# zTewf$nsw2;i%DEtMAltfliRSln7{LHO?xcHa$ zuU3=RKIoQK5iloWrbkd=*iPdub&KNntZkh8%W|DVKzVP9f$-#QGa9BGYSjJ8%J#}5 zddZJnbx)S{Of!yf(RJRCzA;^(=*+RNQ+EFftG~P9B-gc@OE7db*S@Ek_WCoo zmX~LL;W}|~=I5NJ?|gNmoPyNE)`-S4*2&JTT>LU@clQ~6fgb0u&6yJStqRV1vs6Bt zY4SWY++U4Lr%QixrM%j-lsMD)kZIj%V%@y$y#L%ECCu5m;?d@H^U~N<@=w}dc_zQ) zhez4#15v)!SF}`C@^0BN*E08A)ZE%>7w@VEJ{R8jcE_pqO-gnui5pDrNX&Fvv&tiir<475$EI52KX>N@zS*?k&z8dv1sX5^kInn{(R@9}Cf7=%lGE% zof`TfU*j93_arbFn;iQ3W`2i}kn%bq)2+dJA*LtfMP?oDSjGQ=drCx}{bf&yGXAG? zyjgY}QQjg_Hp_06iOu191wUyar5o?r7dytjy7?t+d*Ad_&ow({{5ThCtDf8Nknf<5 zLFJ>Q4|9H0g|O{By~Xc@-7dx%r=D8ulUm#3EqEhHmP>uXwkx4L<_UH4?H=q8Zh0Vi zrA$yNq9j=B?4!!4_G`0P^*&bW)mrBMQLUA`n)!H-+jk-D&`zV>L6;kEIDW{uHv4_t z$BPvjOsBa-Mbe&~Wcq&OW1s6JO^rKZ1wpH2E@n=boNU@raVXep>$N%0<&G{2gZTseED8>HSsrSbD_4l;K ze~jNhox3taMDbni23d#n+T?po8{IB6o@rT;)x7W41Cu!?W8)kXAI^We=zHv&BEIEE zE&I%t{^Pg*-(Dyd-!q46n#HdDPP;D&ai^wtze)@}$;i1>S@h1C8`dIOy(@y}aB@6i zcs;{X-egY?>(aj(sU-%!<+_Y(v^O4@9a-2jV{Y_Th3`pg^a^ID+Xnoo%G?Hz!Z;tgR2qTXwCVuAzL{BW2tDN{whRq&9Kq^VWV z2kR+YS{GYAlsR)Hdq%BqT2=H(pY)cAZL1focjeT7w^pfO(gc;27p>2ye0{dEQoGA< zvHjS2$Onv((99<;}})pG*~7a$5eJNQ7zs zf;r2i3a=Mub#pEfd)LXhUCe$FpUa&twWT`@{pKrP@mW|cZ24F6r%+tZ6Lw*#MD8`N z&zmMTG9B(Yi2&PI>&Za zRLdae+M1ic)St3{w5!&(UAj1rz3EsfyYQk5j_=!MhcEFB`<3ig_Ugzti~E1%|9zA% z{GK|Rzr=s$tBd)6Ze{G_(_0T1gj+Aa%)5JHPxN+^vJ+d|YmV$&So(MeV_d-Z9Xh$Q zPqQYLT#WFj;ASY%baj}LKXdji{$3ml2+e~nB^b-_1=XI*Jk8Oc4fz(iJ#lJ z#V>4jZ)pD2JNKvap5FJp#A?|r&$+oL6LhNd+~3aAX48MmxMa4fT)~3YZ(395ojAn9 zxY~@Rc$H0nvGN4nWqzBySbcP4Bur}r4=35~Jb34e!O6Ik2b`O)9qJAA$?R-4pRHQ6 z&A|1OkZz|+a)8j|#Tnh_!WT|a_|+f0;zCZsuPR}F@pQMUk9o7iPu$_Wue>q#;LH14 zisUygyWDEQrGI{T+O-npXy?xcTfJVqt~b!xXqzVX)h%$D+VgOwqC+CuUJBc^)XruY z$DQH)`tImv|tm1lSkX2c7gtzKel=+4NpL-4We6r%jPlaFopq8?3y=`2RXicA^^rPM0 z7ar~_S$ps$(~qr(_ZwYnEisn#?|J|6ap;%G+JBz=zr?QI`?Yqb^&RW8>hJh>bHvW% zUATtpjCN_Xr2eU!a^*q^Ph}LtRpc)CsvgK}+QHEJ^2erI@BV~$CmqVr{9e@8Yoah+ zaenqw_gQ`240C*RL-Re4d8!AkJgTKp`{$OxUcZFC#|Ii;D&^{aYkHu3x6G}F`E1Ry z?(1HUM05V!TK?nq6(;j(=TZ)cR9A;;uHP+Da^TmR+m?P?e%R?6ul?+M`tzjQs!P1J z*A-r3FOcE$+Md=S#veBC&BbB3*z8W*QCOlF4 zmh>sU?^k!%R-fHVEYAI3dDgJO$ZMah-+8IxJ1excUKCB-u)VSLwDCQk)u$iVeyI@_ zt34fdi|L2l@}$8Foq^z(^9E}wy^L4o>HuHb#%ze;v*l~J1VY}19dvkvTMvrq2$ zy=}k7mdQfB4c~4{`)#j_e___9w_8;{^p?MriRcH9Rs+VmVyy$>(pNmQAHNG*^Ei0- zR0kWr&*#=_+32k}>3f+WaEkbpopa{RvHPw6@1^*bLIs)qZO`iTQteCew9GMM(Pu39Z3Ql-o^lbtv0{ElY}?wEYqV9}8^Icimx!1JK*leR9) zu{xEyYj;rxgU@FFF5jNS6=yb=Fs8+$?}5=Qos&x@wFcx(ds(4Z=HC}7&i;8)x7m{o^QXOKZhzi= z?XlXP=#|RNM{fqmoO${ylie;te0$f-vczCc#f$OU5#E|BLf*yWZ z|5Z)@@b={*^8n5Lyt!vrD!&pBvCvskI5WU^?flQm@pXL+tofI_`tx$#X6#gdZEA8{ z{Klk?6_*!F&upG4G$Z9l(t^`lnq1AiStXoUTMx4TS$jtEkic2*Ji!y+CPgc~bUJE( z>4a;rFjuCm&&z^S3JYtM*#FGv@%*{^HtX#s&2n+>-}C?doIiOISFVG-?dtejD|wb! z*lGT_HreA?Lr`hogKwF)ZMHRr*nMRZfBx4~=x6v9mg@|6cQSU*jDI6j)+{pp&ZWk* zU2CnG_*QXyzgD@P*Oa&DznSIMiQlf4s{7vXax|+7&Ft1ZeJxjblWD_mkqgi3kEAqY zOo^%fC8)@L&`0fAlomJ7ibS_%kMboILvN=sy9&IXWv_R9^@Wxvw=-&eW=5@;JE^zx zzIf~=qsONw&AXBPT=!$C=>L^df1P?+Z)RYA+j{HFmdai4JqxBY?+}K6IS%*(bM&BO8PEnaRjaX!=B?}rT=WFKl8O64cko;JKnueU76$YHS>c6ds14` zjGd|bV{XdaKdtg_-`3x1av9$0Up09o)!~ zRXKVl>J&#))Paeft2h_dxX8}>rf+?^OB?U5y1sDtydOJDA|74Pw<)>m_EpgS-T#!vtjl}3s<{uI z@o-(3wnasb{masw2d^^Lq%eB!oaO1a#5ih4r^laao|Zmy^Nr zRIj#;i;|=@*D*X`oV?v@nnD-`|Sm?{weeQ(4Qn z)jE5fYT^Oy{ZFRcNOF?eZfR%1|KpX&#Yn5OD>ej#+;TfmdOc#@GU0zJ6$c7uY&A6J zo*cAnX^XnwyauspW@|hM&^2lUEqq1 zt(}UQCsLx`XMLS!xjyO?|B;=xovz+J(mP$xIO!Va>OVd#9s1W?`=n~;0!fW~R;J58 z#YDbV+?3II?{i|~tvBnJRUW;#_P>|Jwhd`a>%6nuydN&QDI&e{#LSt;o;xJ6F|C-C zxya(5I@j}6&W48yp1K^D&|RBU%*0qBmdJb5{Gb}oOv5FQ)Ww@!v~}mK(C>JZ`)bWI z@3z1IIq$xDYv%6MCXvO>x}RM3S|-0+XtRY3=6n9TPMve@lFQ@-b|ulA|JN;~+|_2zx@(|pe#q2A zj8!f$P1t?0RDZ^XUoLJvQtPYsRaOWCm)-p?S@g#xslU($=5A7g8z z>}bPMtxVTXGd*g!Wj{LIjFs5+Z36GP3I7yQuj=)kR21UhW!sVJYjmYe$Rt$don_^U zUWUF42Sb-#_`~fHTA7@6N#T7fL!Gy^u>H=nGhThZ{DkxH|4GeX{L(INDd@VdA)*{P z=Uv+kp+EzrFNbexi3S_`Z3!}PKJZfSFXNr7J)%puZit`7&vx>`qm3Qu>ASg0zcC*D z>@Rk91^!^36BQMv-G$fRFLsl;x-ewf@{3z-rW7?*$g2n)K6=QjB{L$>jcMs* zNiGSyU)m?6WIwKIyrmhb@wehO!?BrGHH{kY!)|e}T&P~zGGDLwz1+&gXaDs7f6~|A zb8+Xp|5dAx={@?C_c`|2X*-P!pWlBMcBi+zz4vPE&-K?^4E5$&y6l*7O?9QI?X?#f zIYKViUN9Xx;#qQYX4AU9dyMWOD%>-F9F@LuD}kYfBVO#%(@E`2|2uD{uHAXB^wxBr zeW#wauhrNt%9+&H^r(H~uI)+c!5(H)@3ZZb-7eBCy;v(-?9A6a>#D+xPj=5b^~tY! z|HfB#`%L0jpY$*GwUS+XLmZQ!rqz><3 z)eBeZxvHSF;fm^B7oqm#$&3ukY!u3SJLazL{43@8>yTt{$^JcV3x8#9{kQkAr+(V8 z-6u<#kNBCj_R2;rp7HI1V5eyDKR2Fz_t_4mb*eVb5}xO|!QbO)QrSbt^95~!iZ8mI zvis(y#HosEHyCdSP3i1b&^?h?UfSw?*m-%;9u5WP%=qTH+d3b27EaOSYrL>W+F#9b zwzl#V_R0y(VY@PVd5u0Ebr83F!m!Nw+_HZmo2rj!7FSQUt*B1ix50CdgXG+|hiI}zA4fgG;v+kpWr;T z66pmOecNv7P7ZyuRY(2EjxyiXEM5Mhz8Va9r8;Nl6a~d+UTkT6crf#9OE9M+`_bZ3 z$FA#+sd4QwSCX>Zd`{Z*U)&tBJh^u7d9^jU+DffC>%(W>3JofMJZYtsyIe{7sg3Rb z4>{LsY*-%jGsl*9V|+9dPy9mhtK$0#n-{FL{eDR!T9faJRHV}pw)&YIE~SyOd6JWv ze(hZSs_eQzkoo&{lN7Clb+XtDmV9-5DDXfdJ>^nDR)WuKhR*WB5~)n7YaK3wc~_lQTp-#Ej2 zsk|#0PfJ?o&U@*%|LW?tCsr&oMZeT;+<4`NaM7V7ALF(EA3QwMWz&K!K{2Nn7%p!Y zo_j6EfWfVL;b#426>n>U<(=M7Ro!2$?Df7RaZ&eU^SYW}&x|s1B2o=r&JyKwoZTru zc_(*D{U23r(X~=t>$l0Q^jNs=eehfxjxE85v)0b?U)+_Kw`1W^pV#k{v)^a2e7jV9 ztTMDVt1;rB&g=Gj2`Nb-)4r6fbxSUOE%m3ntfBL&mk}rT_xj)4>!sB{l^xrleR}u4 z^c}O$ecI*_X%%5QTd)3`(SiBb)^=!K+4Wv^M?ule13Q=O5S=6)9&>2c!>1CxD(`d{ zd3ro-T#h; z9(lD)W~P|fy5Fguw&@lVmx%By{EKPL@6cj4e;;%IQ*6Ob@q}+XCT17h3NBw!ea0@g z)%D7mgDbwZ*a*~U{HkO(_KGlYxO}4ML|y=vKx zz!J90sq5m|_zc1$SeLUHHklecs9XJG*5y0LoN6Ps@?ThBnDlfBtvd zZP`V9HP272F_C5qs41LU7dz=aM^e_)$g@H^A72;p*#2B`hIz}01OA;`^A@+(Q=YPa5h!j=S^V zEXRommYG7+BvfvMte#y56CH={u%8d2~T=?fJf`v(pTluFW>vzAz`T z`uh~w<0VISZvSR-m&euGl#?uiFPcNCqmcc|BKUzH}jSmVOq z*bgS&>#vGw&AchV7N*$nH*w`{4eqsUTUi*s-@f=nM|bw&+MO@FXJ4NFA>p0av(I;4 z-b-#@wD4GS?1Il~7novA1?PEBSiAD7)|YVeqg|Y0LY=F&I_dt5{qnptTgFW1)ES=R zD#x$*c*kB)VLHyJGRtDW_l4+&yL|3$t9D*oXS{Iw)#?|2JZGO2x;kmv6|cqYIeKD6 zS;x#+*YKX1ai)-uS3-Z8;5O?G+}7!jPR*#TIr&pf=aIHoGk4Q3)zy0=bZ$I(mei~o zWboi$$};(@uS52P=q|Y#Jh_>n=UJ*i?4phboJ+s?us^h(Ds-~5<+F2PzUj>9(^lt8 z5}IBJ#l2c}@|5xURhKO`hXr_8&seRu?dv4o6oW$X&j)kFq<*Lz>JND3!kyW3-M3o4%XeUZ`unKa#H)D)zV<5~c748FZ0xm4jMMYS zt~zhq9*M^)28VWS)$HGxDRG_S)vMh>Z`eO`uoar_PQG;5@@Chp05ew4b@!R#RX%Ug zeJgBh^Cx`&uh4@M4!!0bHW4*V2B)Q?FT7_EZb_GFWMkAmQ?a8fxbj$U`X0}Jo6}7$ z-%>Pqt1(kgDLGM1W!Z!76z8zs#5}j(g_CQ7^E1yal@Um`Rw`L0*?FVKS)-^o&i<)n zC_|A%o%ZLud778ct%+8v`71r;xxCfu^Kwy=c|8-&JU`y#zx(<3m)wcm!dwqGx;*us zoXNXsd%wtnqmJu!w|SVnJ#@*f!SbYTDhn0A71GE-2bOq>Gy&P-3m^Pf`i$!^_W99yuNPYdvW!lqblCD`b%eJ zrq6v-w(w%nQnmS6+xPR#s`k8A>r^Ayf1pxNPAmV#jXNv;Z_vEaBKE{DTsho2h9UH% z4S(;a30Vx?f!Q@neoWZWR3Mb99 zpW|r6z4Jr17*{xl@wDR7wQYO*eg>PJTUiv6wc>E#>K)6?XPdTOK9kkb$agN~!1q-q zDgV!>+g!eW(oo(1_fAvWwF@R2e{gXKI=8*{q5UnjLv2^~tm|ccwd1P8mI)j3b}iVr zH|)CDdFwg}b(ellQ@xdwYA#2ZuyO93aQ>`|@9HFP)$1!#cm6m1;bX9JbMHgxR++xE z6XGJ@3q5Q(4AK@XD7>orD|mCmUY8ly<_JV>6OrhX4pg45Abb9Wz2cV8lI1(Dt~`98 zJJn`+^wjn=JNeJid-km0(oggdzIwrhS3IWae2kX#tP3+4gP7S%{k|Wm<$fx5Bc)(^ zWJMH{M9{9C=MMShr*DjPGG{PCTktR{xCWvi20jvCC=pLy)Sw5I*c7xH=AGyYAu zC|4vFb*tm@6v3@7ruL<`xK(zjbX{PYbJ5f=;)2|1#%TuH!6$FFDj($hmhK(TW?gdX z+yX=O)Yvtd%QocQWSh44szgoG=B;H97TGMEkapxyv}rt#nEH{^1}8s@^$Jx#-{L*( z_xHq!VjDF4K3g8ESTOmhl8RF?%z1FR;Zt7+@sCY}o ze7?lF;9}$dU)R^my7@@!%o2LIz_?IFuBdfJOQ&~!!zr;^Znau7@1Uq13!f;5r)t`6 zI&nvPb|e4G?Ats67Ke_{sW&T*^S0bjoF~WsAv*db``;D&xLofSY|OJM?sw2E*fR6d z{_eQh2N%rx^f;Q?z4hmvzgO-#eOb^dxZGp!*CPj#&P)+&d;M0t?AoHQ2QSWH^FBI3 z*Z+dZk`%qfLaUULN3*u4f9h;hZx=tLb0OqPW(U)?nYMn7hb9On&6>Jnql7UVci}dv zUy+Az^ZqfJ-T6#;<=+3F6V9%iyf=9Em(x?Le>R*wnDe_}zZ&1%hhL(W=D!WNuC&>B z!?~?|7QP$ z16fzIXUyaB+{F7e!mu&(ir2Lh2if;7Nx8quDmHk_TE&*5)GjqEzwgziI=Oylj&^j3Sk3z{KGoU%X8h;0-*y>y z%L+?xew8(;Tf-Ekaxuo~!x8?EcUI?anDY4OAKifVSKnv4&*^hoD(|pKfXQdgtJ8Z7 z-#CZ&2excl6|dM6T03io2;-&rgs`$LH|xX>%?>K{u4xZfxRlM!e8@@j;m){~VO!VD zDsud8{bBF>l)YAx=Z|S>=1)FxjPuPW*{wD2mPoHY+CE{SRrGFy{-2H$%3>#^^BJZ) z9*$nt!>zo??ChLIPSr(6q(lO%4cZhY^UO%wGee1!t$jz)W)AnTWko+PeHA@!#?$Sx zJk5yBn8Q1RDbefvR+X>P3%*OlE;y_xCi zWWNLL_0r4za{6-Lxc}#w`5hUhUEW&!Odezags_N(%X zSWTt;?J2hIa`lL*mk*EE7x=!TAgUP?&ad}TXxNYzg~zVG4DxbqjcuUk2FQXF?`=EB{RlHX~TWoGZuZP=d?d|`*>vKLcV zXRdl!QxLdn=GMx6m($cb-WE#r%Jiwe@R2qVuvmL6bb3$LJJt3Qz11x|omz&sj~>2w zbeF5FKw(^Gm5y5W6jk%&EK3`$pyOFSYHj6rCukWQW9LuQNjsdObH7?~x-au9Zt-vW zZ}#d}E`F|_yW7-S>Z$JI@?AYzjk4#gkXaWp|0k=+I`{ehfnCxZmpI+PdP~9^}ep8gap|4%~&Up)8Eq{1Ww4S|K zROf2iJRM23R+jbtl1x@_?aNr-f49s&xnS|C?qaR$SI<5$5Wbz+tPpaj;$gX{UwxXz z-HYjsQDSoaN#~cJwDYn$Y+)2+*EOY#(QvEKHo2KoY%A~Uo~T{^ceRCAsQ3>*ht*A= zoY=1SY&~1NW9!TK8*X2D13$i)nzxNz?z{S*72$i;Cfw%Tbjnq@X49FiYg-kfye_9r z;F^44X4$fZN?j*R=V>bD=O%uv+PiB4r+C*Sr%*@dTn&!32_0%T*DeZ6KB9H(yJ;}b zd7V{V0)I{(ynTF2b>V3a+w|$@CsgfJXZH)c#=|Gq8@|tr@$K#t9@86yS8^!+4a;#z zPk3RlZ01kzZHL8Iy$$dBpnv?F{=yGt5p|Z*9K^%rGZtwk|5D+3FvVQd@(1fgLBUkMhi1nwtFBnGsUV~C6iaT$wjH_!QV9zK zZyw@u^jUDYl64thkVg7#%Qbhu1gn+qo1q{1)p)hdvZ&Hq2bdWjGcrCm4Beu&t!p+@ zf2`g|gV}jJ+p3TLv-Mwgx_Gi6-~PY-_a~X~oO;9-Ie*44`44qJl|=kI@@8e(d@Zf%+6HM#n<3 zshw-ewrgMfC*O&Ylh2-eVa{$Gl4QO1+<}mF54M_JP@1xQJ1<}A7hA56_8VuFbiG-p zA()yyxj;+pO8LZ@%NhPEG{4R}oYHN*{KK@q=UFPd-8gEJC*4rFcu$XcpUI;Bj+>!7 zJQB4`b0v;OpVpc4Z~bMyb5rx`56atakI1$?n(lY$bM?PxS?}DJm3ZsU%ShSO61|z> zy-JDa!!>PwS|7hK8m*7I;F%kxpjjBtI@|TxvKiAVd>N-F{bQKwR4KHHnVr|8$92b? zn9^Ho^ftIjC!ag*dE(Umsn1*HShMR!E_tWn$vcZ_=2M0R}>X47G0QRdHBZjdB0ct-OR0f=KG}5Tkob_@BeSx_y1kz zdhqF&KPgS;e)KDb=(5FcpLaB^J1ofDi*0Yk?SNbRnDm{_t?I~F`{+i-%}G1?S6&f2 zSsIjbYTKkZUABYbryh%*2;!Nt$bF9D(G}M|Y$(-ZdLyzgZH3aa(usx5B7fuO zw1W}OO-YyPuI&8f!v0?SvTIB%L&mjxajGkVE>5r98jxjCE3}U@zq{JkQ&h!F^Wl@ z=^TvPx;`DqJ{lnJ@r-4ef7jBLFQYH8^}SnVP+xFfTKoPazjb;M^JfPbu2hxMu{gK% z+@-F1jjpJjybU+?dk)c=GoJxMe&^Y6z$+3 zUZE~2>2uobNNKb0tE70hzvWd`>#fyRzRsO9{aN?b{;RQ9gbuS!<;>#JfF8F-Edk}S?VjQp>XK;tI2yVzSywckjE|Te2fkM|EN!s%#MDGeDs`Q zPyO;g8>h>yDe1W!w3F?(pL6cYNq=Ro`yIMo|L=MIJ*mU}9zQ+%FUic*tJPYgvY~MI z2?5!&)=J<%_`{sRjHan^J#>eO*Py5$` zhkffNtrxiIR20}VpPhHPUm=&9`bu3hm&wnP_@41x{BqE_@mbh|C6j#3-4_X4YI3V= zJABgeRD`v5`3?J5OL+cGRN1$|ME`Zm9dXsHP1fR`yS4WFR*HG~nrpk18YWENu=MrL zp9wD)U9*tRzP{ef{{Ndvy|EcL=6<|(A@4nlOl!_EJ^!Y^rvz?>><#RXER4F*#JEB2 z@*NQlSM>>g9D0Z2qf{?VyXIfgB;Ka<^5yG{v+r&t)GC=Jz45KMc8ak_f5Vy5n3HQP z8f8|i?O~mh6*GHfo=aO(l8UCUe}ky~#2BakSB`ezpR_kjsgx{6EhpLu;vG*4H)IH=guPeN%+%RiONTP})xt3CMl zUHSgqdw0J4+@ezFv+Px8e=u9y^G|)d^KIt8W|?%5UrBzcde2fzqojzKzcMc0cyB}+ zU1mP0I%zXkZP?azadR7-Q@PH0J@MdK{B(=ScZK(^-t4}q#fM&{&X9F>a8N(W`hClx zUAaC#l+3NWRbDmB74`F(^l+Jag`wG%ba(aN^F$A3&N=wZe9M(<7ekE}+rBt?^ytRo zR_UJEr5EPiiQG0j<#Ol6m7aN(AB&tOa=kzDNR2aR?z0asSLkGzeEJp?s+G6s+zpY5 zxwB3ze<>|}rBQA2S&5iwZD-f*(+spxNVuTZq+#YgEky3aTc?~mM}rP7T{dxwurm8O zAKlwG7Jr?$Q*!Frl&hy!?6m7?-C%v-<5jO`=O(;XzI17I(t#_sJ#veWVwEUD9adP#DJuCmtU09^~Y zX!GZ07CTgO`NS3{&38C|z+vg*q=ewRRf26PNz-TD-MsoZ_gikwQs!)zQ7j%~2k zsDIL+!`QN6-KnxmZcp#XO`Eyh>^A$eD<=glcRNJZw3YpHmf2LSp648`d#>u5Xq-&3 zF;m^EmUr+n$P zg}a5gnMIjb`L8~iVELO>edWT)Y}TYOi;BxpHcop~T~^0E-v5~I?2+5MCahTQSM+{i zhxD>vHv~$a?W#1MxJG84_3X3RrH-F1cg+ooN`Lcp{}f-gFS0Vd$ND!46+b$<@8$#c z5QqOgyL|Fh_&%ntaJA^4BEI@r=|%sU8cK$fpPZktIAFz3g+)u&iB9=5VZy}(569GO zZP6ow?Jra&7)IYP3XAxo9CA%FSj4DS*XMFOi^7LVi?&1*dNSp`x%}w)vNLjp-li94 z+?q2h?dr|cIpw{|U)74O*FIm(_vUxNWv+tKLzTSqPrcz=Dy}b<|NoX!Q{@YOo)9U6 zuh)t`@8byKJgvijkoA@5RH0Levo>@;Um?EAcjht4TFC>pCk>}XsY<)uZ!Yaxb(Ck( z!KVw`5=tI<%B+m$WY`)|&9cMBLY+rr{mn?_va^ytPI>bg?~1=LkU4jH`N6tV*_)s3 z&e~>dJv03D*_)eg&&m3euoGpCNo*QK(5Um?@}lK#i+yYUIb9V?xjw-`J+eXJL$`2i=90L=rZfBYY53``T>A23TG~R% z{=2Vcd~6TeYw~kOXYQPXK9dgY5W292;Y;&u7xQ@&4P9R^Rd+uweLBzl&94suf7^V! zn=WqOuxpy0(VUN_kv?bIzcX#*`VxKg=<_;-{+jP=eYOTXd-!I$?!H?x*DH5Q-xc)D zm1K~+w87Hhan!%`tL$@r?1((+W8(UJhTe-KqP&U96QWkWJJls?Fu8fp6Oq-Ki#J?Y z^CpV*OkTEPQ=H+=D8v!tC)&*WpA8F@q@=htM$sHDuehE2y_T5zb9bh`eSZJc&eB~?Uy=Kt&O z>-)D9+qC|v?Yg}-&CheAFH_I!gK>*y|D2m9%cHkPGFNuy zvRlWVO1W)$f7O)LNp^|Wm3uEX-fc)qo*j3q>77yK`YZqQYHn1AT<4C8)IQ2R-E7y% z=2>0S_B=3T$_($^;Msn=Kqyh;wL!1=nws5GVYAqCJQa#};BP<2qvQ=7$d$!jw29D5%A&HGiuB9@%_ug_#9 z1@iJrK4#`-v-m9;zx|MFPnNo6^Zhg#d&f^lif44f)1ZGLL;2i#FyJ3OUW05*W2)%YsdN zVk?bjuUH-XvxQU8VEL9bB}ECoP1(w8S|_+ZzJKs&qu(yJEnn1gCLQCJ?|3A9K>fx>TI+g@hee{iNOK7>N(Os}&)#3%8EU!m# z&&dxi`djoaZRtD3Mv>CBolnj*vaopld9vgR1M^o6w$jNmB~CAsHorTe#N)buv&pK{ z>AbrZAIZ|XeWk0=_2?Db3+g{ke!2BbuPR~sRhw;o_IEdh=zrpio99@++N;*(iuWUj zP&2NHuX=tQGRh9?>vVQyKrUdWG_B4m1TUex8-8Kg?Croe)H_qleu_|;Sd-TRU z=f$)9C#>ObYg)$Gw9Pi~RUC7fo4JUAr}vab_vHBrdU_@1+$Y7t_>07!^+n9EE@$a- z=yfpbI(F>uoVL5OnIk?F*4~i+_n}?R+0Ak8RTi-p*WE_-iGLS(#=l+=c*oHtcoFN~ z+b#4O7Q$E3&vu>p(St9G@4lbq9+4+hd3=u63}K;9JEeNe8LQ_mHaorl=#+?^2Cm-}4|ECa zn#3h$^-oATd1Zz{$l05lSyUW#+M6#~XDNKzERe;ksN3mos-=_lCe75sHU9m~P?4@x zlMD6i(q70I^73$dH12ucr@Uw7jhilOr%h(h(c3Wn>mOg))U(WwZYFqcUBoJ?(HFSB zAAx4dlu}?Cl$*i9vIFqxsyJzb{)#t`h zOB9S&$Lq+=koI57jqc6&1=QKSXZaL*ni%bA_u4oA;!gSMJv$n9?R=Q@ z_}|C=`X!U~T4shFePOnAO3$scU7j2_B<@Vv?zVRFwyp0x}PG< ztNX%FY?-0I^3pXHj=%JtlutQ<St9g66#PjR*DXGPdj$*zJGaCbs?dulpC{*nU|} z*!XJWiQ^OBzROy&Ekyd~D!p^*N8e=R+)cKhwYurWlLIXrYsGGb8yJ>vohU+w zOHMtzBYCDkHA|{-&&ku8uF*%go=LrYsb$jR3Fn0NJ%~T*7u2|2|fO8=jwx^*Sy{* zJ1^to;W)~8fjy{CwX&_u<%`_J8+on!mc1}CX;hpnQGT`QIiHZjP2Y^HSr;;&c(JQa zj4D0hwemuxQ*lwohJ!0+rY*SVnA-fx;mu01&7nCrU)>TgZ};1s#;LV?!KAZRb97Cn zxRps?_GV-Ik^T3Bo9RENn8Mma_WwTi+fJ`|aIcqZb2Q)i`}Jq)j=A6e^8I3rSomom!M@=VXNlG0!3EAUX(=X-J029c;0=i9==;x9{m3ZJWR^{>|lj#BqS>s-G@ zFEMaSpRv-USnAoVg(l{cjf_@0@nlYvnv+yNvrO@zcQJ2?Q$*~HWA`de#f3U#1ZHeF zvN4MF@1@=z!V4nH#Qi7@T?#(J}f&DKJX0LE@nXp-7`YlGQfQ7|Ywssx;4$eM%F`N+b0zuiBDrAe?ifxGpSI?@f}W@nZijX4#%dAI*6Q zHP@ycbJ}!9^3K;z)o;!V<9}a$@&E7r|FxTMRvb)tcC=U3FSBIx?uVUwe}yH+-PB8c zYizhC$~)Ka>lzy9MLJp64NhVG}y6W8V4)umqYumxR*W^ zf3=-eKicxcO@^jQ=^Iy%WGYTwp{AI%jEzq-^89(xvkOkH3BHuIcs*lQC{vJb*z&yX zo+VoU^A7Cf&QBK1HKTV?Q;?_fEnzqxwEaS^DpR#71 z8!^-B|UGn?4_%r9DRmMzz-t8~HA6hDtoo#*Q|Ci(w3Om!=q|CkeuvGwt-FcM?Qy73L9m+MwKJBl z)lZwv4OCt0+PS-}LgniQhlWWmO@ZOrWq_dmfoMk_@OxYZLIBL=wq5Rwv557v6O7!QwQeC>^w@cd0`CA(+7>y)) z&4u^4M*p4tzVXU@miIo3ZRgHgo0a`!QfzSBvCByl>vpp>O-?@@IXhf*uBhgZgp7TL z!2w0H8^twP;xb*=RlR!cb3pj(Yw`6b6}1=m%sIa#>5wvaY`4+f4|Wd@wQSw8z18dT z8vnUDVoUNF*YiI-rg8hus`Zao?Ou3WggN}y;)CfYRzA?$Q+b`|=q~@6Ul&&LMmkIC zS4{N`<^8?f#P9N+EsDkNVsqxqHoffqE{v`9dQOwptq+1q^QEFY8CLz4RM=v5=N9L| z^#@lMue#Y?xAOi4x7_T;l8Gu7EZ_Sg4>fOXp1DRO$Z@T~IjN#twI}{_!qv`YSQedI z^r`;ebN@+-22!f8X1{j}>^c6~s?=N~^ySjMdAduOr}-G@C+=-bIJfDmh@AJt$mcs( zeT;oMpSQZ}2wTi1;j>qb7OE+AXj?o!y}6(<{Lw7~Ez1zeqL((zPiOVLQL6eAqo(up z*~-P{GHW#7nRy18^4*D2X`VOz@`f{e7s*bp_dcfb)Zj)}%sI1$1Fn}GAI_~_U;FLK z7XBR5qj^uC_NuvkzBDUSL^|&K6o-V?m`%>ypY{0Ns@Ljj&R+f^F7;Jr!#_)(!~8v# z8GHWv+*{7_IjeWFdsSF-;Gt(+>Ec2bi+Mk9GBSI0@zbAhEy0qR9a)CL->*1mYE`zJ zZasTsiAD9JJ>Pr3$elZ~=3_Y1g4lJDZWCtloNv7z=k={KJ?-q=-Yy5#ooAmI&A#NR z_u_^8tA2C&C#O&7pG_*snsK}TjfnI7@LHam)oEEBA@j^1+WcDLyRYA*p=oda(&Lgd zbmDv;26PAidUHm#f0mKFO3|Zt55$tP&+PT8Q{S-cQ{L2 z(UhNycuOay30!Gj#}@xfMJKlTn9)pZKAR%Z$Miq1Wjbo+6hw@&c=AKg=JYGIjxvvVY0vAoJjGTjuW=8$XB@Z!|Ds^3{|0*kioz4$C>_KLD9*BsAYPpdrX zW+5G$N#{bn(&Wty63!Pt5j=m-s(;F|B|ntduRiDOK3sdYB{)y5)b8yu-^#^1xAcmw z?YL9cwlUHrHN{%PuJr_CkcEG4;O@wW*S#)TNr{KfRTOTNSd>tGwEddKO4Fw&_4vJ) ztx`I3DU0dU2Hu~3>PCv`-;MZQPp_O+@M3q|quWMt_J@*|?>zPIWr>}6?;CA3@x`m> zcwcBZ68w9E;tJiD6AIFr{dez+sA#R+b1uS3sK9dj^*QI8(k?DNxG*3(yX%UT#T0IV zIh>1{;yv>M@^cROT}&`?V{dXvS*Iqyp_qg`w6dYJW(%`-`VX{`D4SWIbYAe>CRIIgd>a z$K;p2oOVz^>{Rb+qx=mvzKfij#5lHa#ivW}yJv7#Uq@!fktIjmVkE52YOXDcU8Wk; z6WrcgSo|%{^uSv~ah}V6ef}(cx?9rt{j`+LF1t6gei7UD!F}q}N<(q!#67cE&Mgtr z+}Zttn{Q$F@i(rwW|q%6-8p9^i%C!c&jy>^saMTC&za~Xv(0`K-D$5MdZ^g;`fJsL z{}_!AZuPr7v10eqWz+X2nXGu>T+*etW|>gLFTTu0o*$#cKU&6ITh+UHmP4c6Q6=}Irk7gBZVtlc#?~}Ch zkM;2vmvL{Y)+yBt@4fi$;ek+Rt#vV-voF6pp%C(^bFvx#saB!j2X;Iecg#&1znGLC z-MlI|P?nrPcTt531h-&5?JIpej{Q=NyI4D(*^ocDU? zzw2gKs#ji{_onL8`m{2QM+yF!%r%&W<}U4r+xUl<-Fm?SEZ{{C+!n2|Jpd=pKv3W zW)&mj%#UjWGmRL9ym}2h_nJ$`EYX;CHFEp)Ir|ovx*RiV6?n8&(Ej<3twO(C*#2!| zKlSdr-s`W^+0S0(NL=uVKlc+~jQs5@8_Uz~M}OJ<`E#q(uP-)S~ zrSsS$r=omNLXF}4*BCg`-+q2+%)Y$&-6cih@?{^_XtJ1pxWeYOyZeR} zcagH7WY@F6#aXKagy%1wWpm~Yqj9sYqxaWkYCT2gQ`XFA?rPPPoYk{f?3{$LTcY&c zvoDmiiasuV%B8VRrjZCF!-ufIyWi%P}#DA&c$67h8fEiOlRBG#^&a-HQ|85 zog5S2s`@9F8Emc>+ajUA`n&#}|163oYRh{7MHNWLP!_`Qw(a%*>#zT3Zn-#{EBu~w Q1?b3kPgg&ebxsLQ0DN6?_y7O^ diff --git a/backyard/platform/minimal-ppp/Makefile b/backyard/platform/minimal-ppp/Makefile deleted file mode 100644 index de09afd9d..000000000 --- a/backyard/platform/minimal-ppp/Makefile +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (c) 2002-2004, Adam Dunkels. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS -# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# This file is part of the Contiki desktop environment -# -# $Id: Makefile,v 1.1 2007/05/26 07:21:01 oliverschmidt Exp $ -# - -all: contiki - -CONTIKI=../.. -SDIRS = . net -APPDIRS = ${wildcard ${addprefix $(CONTIKI)/,apps apps/*}} -CSDIRS = ${addprefix $(CONTIKI)/core/,. dev lib net sys cfs lib/ctk ctk loader net/ppp } - -CC=gcc -STRIP=strip -CFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes -g \ - -I$(CONTIKI) \ - ${addprefix -I,$(CONTIKI)/core} \ - ${addprefix -I,$(SDIRS)} \ - ${addprefix -I,$(APPDIRS)} -LDFLAGS=-Wl,-Map=contiki-main.map,-export-dynamic,-lutil - - -vpath %.c ${SDIRS} $(CSDIRS) $(APPDIRS) - --include $(CONTIKI)/arch/Makefile.common - -SYSTEM=process.o procinit.o service.o arg.o -UIP=uip.o uiplib.o tcpip.o \ - uip-fw.o uip-fw-service.o tcpdump.o \ - psock.o uipbuf.o uip_arp.o resolv.o \ - ppp/ahdlc.o ppp/ipcp.o ppp/lcp.o ppp/pap.o ppp/ppp.o ppp/ppp_process.o -LIBS=memb.o timer.o list.o etimer.o - -CFS=cfs.o - -WWW=www.o webclient.o http-strings.o htmlparser.o html-strings.o www-dsc.o http-user-agent-string.o -EMAIL=email.o smtp-socket.o smtp-strings.o ctk-textedit.o -WEBSERVER=webserver.o webserver-dsc.o httpd.o httpd-fs.o http-strings.o httpd-cgi.o webserver-nogui.o -TELNET=simpletelnet.o telnet.o -VNCVIEWER=vnc.o vnc-viewer.o vnc-draw.o vnc-dsc.o - -CTK=ctk.o -CTKGTK=ctk-gtksim.o ctk-draw.o ctk-gtksim-service.o libconio.o ctk-gtksim-draw.o -CTKVNC=ctk-vncserver.o libconio.o vnc-server.o vnc-out.o ctk-vncfont.o -CTKTERM=libconio.o ctk-term.o ctk-term-in.o ctk-term-out.o ctk-termtelnet.o - -POP=pop.o popc.o popc-strings.o - -TELNETD=telnetd.o shell.o - -APPS=$(WWW) $(EMAIL) $(WEBSERVER) $(TELNET) $(TELNETD) program-handler.o - -contiki.a: $(SYSTEM) $(UIP) uip-split.o $(LIBS) $(CFS) \ - ppp-arch.o $(APPS) \ - $(CTK) $(CTKVNC) \ - dlloader.o process.o clock.o - $(AR) rcf $@ $^ - -webserver.co: webserver-nogui.co httpd.o httpd-fs.o http-strings.o httpd-cgi.o psock.o uipbuf.o - $(LD) -i -o $@ $^ - -%.co: %.o - $(LD) -i -o $@ $^ - -%.ce: %.co - $(LD) -shared -o $@ $^ - -%.co: %.c - $(CC) $(CFLAGS) -DPROCESS_LOADABLE -c $< -o $@ - $(STRIP) --strip-unneeded -g -x $@ - - -contiki: contiki-main.o contiki.a - gcc $(LDFLAGS) -o $@ $^ - -test: test-main.o contiki.a - gcc $(LDFLAGS) -o $@ $^ - -clean: - rm -f *.o *~ *core contiki *.s *.ce *.co *.a *.map Makefile.depend ppp/*.o - -Makefile.depend depend: - gcc -MM \ - ${addprefix -I,$(CSDIRS)} \ - ${addprefix -I,$(SDIRS)} \ - ${addsuffix /*.c,$(CSDIRS)} \ - ${addsuffix /*.c,$(SDIRS)} \ - > Makefile.depend 2> /dev/null || true - -include Makefile.depend - diff --git a/backyard/platform/minimal-ppp/Makefile.minimal-ppp b/backyard/platform/minimal-ppp/Makefile.minimal-ppp deleted file mode 100644 index b7cf9458c..000000000 --- a/backyard/platform/minimal-ppp/Makefile.minimal-ppp +++ /dev/null @@ -1,58 +0,0 @@ -ifndef CONTIKI - $(error CONTIKI not defined! You must specify where CONTIKI resides!) -endif - -#contiki: contiki-$(TARGET).a - -CONTIKI_TARGET_DIRS = . -CONTIKI_TARGET_MAIN = ${addprefix $(OBJECTDIR)/,contiki-main.o} - -UIPDRIVERS = ppp/ahdlc.c ppp/ipcp.c ppp/lcp.c ppp/pap.c ppp/ppp.c ppp/ppp_process.c -CONTIKI_TARGET_SOURCEFILES = ppp-arch.c contiki-main.c dlloader.c clock.c leds.c leds-arch.c $(UIPDRIVERS) - -CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES) - -.SUFFIXES: - -### Define the CPU directory -CONTIKI_CPU=$(CONTIKI)/cpu/x86 - -### Compiler definitions -CC = gcc -LD = ld -AS = as -OBJCOPY = objcopy -STRIP = strip -CFLAGSNO = -I. -I$(CONTIKI)/core -I$(CONTIKI_CPU) \ - -I$(CONTIKI)/platform/$(TARGET) \ - ${addprefix -I,$(APPDIRS)} $(APP_INCLUDES) \ - -DWITH_UIP -DWITH_ASCII \ - -Wall -g -I. -I/usr/local/include -CFLAGS += $(CFLAGSNO) -LDFLAGS = -Wl,-Map=contiki.map,-export-dynamic - -### Setup directory search path for source files - -CONTIKI_TARGET_DIRS_CONCAT = ${addprefix $(CONTIKI)/platform/$(TARGET)/, \ - $(CONTIKI_TARGET_DIRS)} -vpath %.c $(PROJECTDIRS) \ - $(CONTIKIDIRS) $(APPDIRS) $(CONTIKI_TARGET_DIRS_CONCAT) \ - $(CONTIKI_CPU) $(APP_DIRS) - -### Compilation rules - -# $(OBJECTDIR)/%.o: %.c -# $(CC) $(CFLAGS) -c $< -o $@ - -%.so: $(OBJECTDIR)/%.o - $(LD) -shared -o $@ $^ - -# %.ce: %.co -# $(LD) -shared -o $@ $^ - -# %.co: %.c -# $(CC) $(CFLAGS) -DPROCESS_LOADABLE -c $< -o $@ -# $(STRIP) --strip-unneeded -g -x $@ - -# %: %.co $(CONTIKI_TARGET_MAIN) $(PROJECT_OBJECTFILES) contiki-$(TARGET).a -# $(CC) $(CFLAGS) -o $@.$(TARGET) $^ $(LDFLAGS) diff --git a/backyard/platform/minimal-ppp/README b/backyard/platform/minimal-ppp/README deleted file mode 100644 index 4d31474d8..000000000 --- a/backyard/platform/minimal-ppp/README +++ /dev/null @@ -1,5 +0,0 @@ -When ./contiki is started, it will open a pty and connect its internal pppd -daemon to it. -The host side of the pppd process will assign an IP number to the contiki -interface, that means that it is not necessary to "ping" the contiki interface -to give it a number. diff --git a/backyard/platform/minimal-ppp/clock.c b/backyard/platform/minimal-ppp/clock.c deleted file mode 100644 index 511301498..000000000 --- a/backyard/platform/minimal-ppp/clock.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: clock.c,v 1.1 2007/05/26 07:21:01 oliverschmidt Exp $ - */ - -/** - * \file - * Clock implementation for Unix. - * \author - * Adam Dunkels - */ - -#include "sys/clock.h" -#include - -/*---------------------------------------------------------------------------*/ -clock_time_t -clock_time(void) -{ - struct timeval tv; - struct timezone tz; - - gettimeofday(&tv, &tz); - - return tv.tv_sec * 1000 + tv.tv_usec / 1000; -} -/*---------------------------------------------------------------------------*/ -void -clock_delay(unsigned int d) -{ - /* Does not do anything. */ -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/minimal-ppp/contiki-conf.h b/backyard/platform/minimal-ppp/contiki-conf.h deleted file mode 100644 index 18aeb0188..000000000 --- a/backyard/platform/minimal-ppp/contiki-conf.h +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: contiki-conf.h,v 1.1 2007/05/26 07:21:01 oliverschmidt Exp $ - */ - -#ifndef __CONTIKI_CONF_H__ -#define __CONTIKI_CONF_H__ - -#include - -#include "ctk/ctk-vncarch.h" -#define TELNETD_CONF_LINELEN 80 -#define TELNETD_CONF_NUMLINES 16 - -#define CC_CONF_REGISTER_ARGS 1 -#define CC_CONF_FUNCTION_POINTER_ARGS 1 -#define CC_CONF_FASTCALL -#define CC_CONF_VA_ARGS 1 - -#define CCIF -#define CLIF - -typedef uint8_t u8_t; -typedef uint16_t u16_t; -typedef uint32_t u32_t; -typedef unsigned short uip_stats_t; - -#define UIP_CONF_MAX_CONNECTIONS 40 -#define UIP_CONF_MAX_LISTENPORTS 40 -#define UIP_CONF_BUFFER_SIZE 420 -#define UIP_CONF_BYTE_ORDER UIP_LITTLE_ENDIAN -#define UIP_CONF_TCP_SPLIT 1 -#define UIP_CONF_LOGGING 1 -#define UIP_CONF_UDP_CHECKSUMS 1 - -typedef unsigned long clock_time_t; -#define CLOCK_CONF_SECOND 1000 - -#define LOG_CONF_ENABLED 1 - -#define CTK_CONF_MAXMENUITEMS 10 - -/* The size of the HTML viewing area. */ -#define WWW_CONF_WEBPAGE_WIDTH 76 -#define WWW_CONF_WEBPAGE_HEIGHT 30 - -/* The size of the "Back" history. */ -#define WWW_CONF_HISTORY_SIZE 40 - -/* Defines the maximum length of an URL */ -#define WWW_CONF_MAX_URLLEN 200 - -/* The maxiumum number of widgets (i.e., hyperlinks, form elements) on - a page. */ -#define WWW_CONF_MAX_NUMPAGEWIDGETS 80 - -/* Turns

support on or off; must be on for forms to work. */ -#define WWW_CONF_RENDERSTATE 1 - -/* Toggles support for HTML forms. */ -#define WWW_CONF_FORMS 1 - -/* Maximum lengths for various HTML form parameters. */ -#define WWW_CONF_MAX_FORMACTIONLEN 200 -#define WWW_CONF_MAX_FORMNAMELEN 200 -#define WWW_CONF_MAX_INPUTNAMELEN 200 -#define WWW_CONF_MAX_INPUTVALUELEN 240 - -#define WWW_CONF_PAGEVIEW 1 - - -/*------------------------------------------------------------------------------*/ - -#define LIBCONIO_CONF_SCREEN_WIDTH 80 -#define LIBCONIO_CONF_SCREEN_HEIGHT 45 -/*------------------------------------------------------------------------------*/ - -#include "ctk-arch.h" - -/* - * This file is used for setting various compile time settings for the - * CTK GUI toolkit. -*/ - -/* Toggles mouse support (must have support functions in the -architecture specific files to work). */ -#define CTK_CONF_MOUSE_SUPPORT 1 - -/* Defines which key that is to be used for activating the menus */ -#define CTK_CONF_MENU_KEY CH_F1 - -/* Defines which key that is to be used for switching the frontmost - window. */ -#define CTK_CONF_WINDOWSWITCH_KEY CH_F3 - -/* Defines which key that is to be used for switching to the next - widget. */ -#define CTK_CONF_WIDGETDOWN_KEY CH_TAB - -/* Defines which key that is to be used for switching to the prevoius - widget. */ -#define CTK_CONF_WIDGETUP_KEY CH_F5 - -/* Toggles support for icons. */ -#define CTK_CONF_ICONS 1 /* 107 bytes */ - -/* Toggles support for icon bitmaps. */ -#define CTK_CONF_ICON_BITMAPS 1 - -/* Toggles support for icon textmaps. */ -#define CTK_CONF_ICON_TEXTMAPS 1 - -/* Toggles support for movable windows. */ -#define CTK_CONF_WINDOWMOVE 1 /* 333 bytes */ - -/* Toggles support for closable windows. */ -#define CTK_CONF_WINDOWCLOSE 1 /* 14 bytes */ - -/* Toggles support for menus. */ -#define CTK_CONF_MENUS 1 /* 1384 bytes */ - -/* Defines the default width of a menu. */ -#define CTK_CONF_MENUWIDTH 16 -/* The maximum number of menu items in each menu. */ -#define CTK_CONF_MAXMENUITEMS 10 - -#define CTK_CONF_WIDGET_FLAGS 1 - - -/*------------------------------------------------------------------------------*/ - -#define COLOR_BLACK 0 -#define COLOR_WHITE 1 - -#define BORDERCOLOR COLOR_BLACK -#define SCREENCOLOR COLOR_BLACK - -#define WINDOWCOLOR_FOCUS COLOR_WHITE -#define WINDOWCOLOR COLOR_WHITE - -#define DIALOGCOLOR COLOR_WHITE - -#define WIDGETCOLOR_HLINK COLOR_WHITE -#define WIDGETCOLOR_FWIN COLOR_WHITE -#define WIDGETCOLOR COLOR_WHITE -#define WIDGETCOLOR_DIALOG COLOR_WHITE -#define WIDGETCOLOR_FOCUS COLOR_WHITE - -#define MENUCOLOR COLOR_WHITE -#define OPENMENUCOLOR COLOR_WHITE -#define ACTIVEMENUITEMCOLOR COLOR_WHITE - - -/*------------------------------------------------------------------------------*/ - -/* Maximum number of clients to the telnet server */ -#define CTK_TERM_CONF_MAX_TELNET_CLIENTS 3 - -/* Telnet server port */ -#define CTK_TERM_CONF_TELNET_PORT 23 - -/* Serial server output buffer size */ -#define CTK_TERM_CONF_SERIAL_BUFFER_SIZE 300 - -/* Maximum number of clients to the terminal module. - Should be set to CTK_TERM_CONF_MAX_TELNET_CLIENTS or - CTK_TERM_CONF_MAX_TELNET_CLIENTS+1 if the serial server is used too -*/ -#define CTK_TERM_CONF_MAX_CLIENTS (CTK_TERM_CONF_MAX_TELNET_CLIENTS+1) - - -/*------------------------------------------------------------------------------*/ - -#define CTK_VNCSERVER_CONF_NUMCONNS 10 - -#define CTK_VNCSERVER_CONF_MAX_ICONS 16 -/** - * Some PPP definitions - */ - -#define clock_seconds() time(NULL) - -#define UIP_CONF_LLH_LEN 0 - -#define IPCP_RETRY_COUNT 5 -#define IPCP_TIMEOUT 5 -#define xxdebug_printf printf -#define debug_printf -#define LCP_RETRY_COUNT 10 -#define PAP_USERNAME_SIZE 16 -#define PAP_PASSWORD_SIZE 16 -#define PPP_RX_BUFFER_SIZE 1024 - - -#endif /* __CONTIKI_CONF_H__ */ diff --git a/backyard/platform/minimal-ppp/contiki-main.c b/backyard/platform/minimal-ppp/contiki-main.c deleted file mode 100644 index b63d36d8d..000000000 --- a/backyard/platform/minimal-ppp/contiki-main.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This file is part of the Contiki OS - * - * $Id: contiki-main.c,v 1.1 2007/05/26 07:21:01 oliverschmidt Exp $ - * - */ - -#include "contiki.h" - -#include "net/uip.h" -#include "net/ppp/ppp.h" -#include "webserver.h" -#include "telnetd.h" - - -PROCINIT(&etimer_process, &tcpip_process, - &webserver_process, - &telnetd_process, - &ppp_process); - -/*---------------------------------------------------------------------------*/ -int -main(void) -{ - u16_t addr[2]; - - process_init(); - - procinit_init(); - - //autostart_start(autostart_processes); - - //uip_ipaddr(addr, 192,168,2,2); - //uip_sethostaddr(addr); - - //uip_ipaddr(addr, 192,168,2,1); - //uip_setdraddr(addr); - - //uip_ipaddr(addr, 255,255,255,0); - //uip_setnetmask(addr); - - while(1) { - int n; - n = process_run(); - /* if(n > 0) { - printf("%d processes in queue\n"); - }*/ - usleep(1); - etimer_request_poll(); - } - - return 0; -} -/*---------------------------------------------------------------------------*/ -void log_message(char *m1, char *m2) -{ - printf("%s%s\n", m1, m2); -} - -void -uip_log(char *m) -{ - printf("%s\n", m); -} - -unsigned short -sensors_light1(void) -{ - static unsigned short count; - return count++; -} diff --git a/backyard/platform/minimal-ppp/ctk-arch.h b/backyard/platform/minimal-ppp/ctk-arch.h deleted file mode 100644 index c35162631..000000000 --- a/backyard/platform/minimal-ppp/ctk-arch.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2002, Adam Dunkels. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: ctk-arch.h,v 1.1 2007/05/26 07:21:01 oliverschmidt Exp $ - * - */ - -#ifndef __CTK_ARCH_H__ -#define __CTK_ARCH_H__ - -#include "ctk/ctk-vncarch.h" - -#define ctk_arch_isprint(x) isprint(x) - -#endif /* __CTK_ARCH_H__ */ diff --git a/backyard/platform/minimal-ppp/leds-arch.c b/backyard/platform/minimal-ppp/leds-arch.c deleted file mode 100644 index 523c40742..000000000 --- a/backyard/platform/minimal-ppp/leds-arch.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: leds-arch.c,v 1.1 2007/05/26 07:21:01 oliverschmidt Exp $ - */ - -/** - * \file - * A brief description of what this file is. - * \author - * Adam Dunkels - */ - -#include "dev/leds.h" -static unsigned char leds; -/*---------------------------------------------------------------------------*/ -void -leds_arch_init(void) -{ - leds = 0; -} -/*---------------------------------------------------------------------------*/ -unsigned char -leds_arch_get(void) -{ - return leds; -} -/*---------------------------------------------------------------------------*/ -void -leds_arch_set(unsigned char l) -{ - leds = l; -} -/*---------------------------------------------------------------------------*/ diff --git a/backyard/platform/minimal-ppp/ppp-arch.c b/backyard/platform/minimal-ppp/ppp-arch.c deleted file mode 100644 index 479c53f63..000000000 --- a/backyard/platform/minimal-ppp/ppp-arch.c +++ /dev/null @@ -1,62 +0,0 @@ -#include "contiki.h" -#include -#include -#include - -static int ppp_master_fd = -1; -static int ppp_slave_fd = -1; -static char ppp_slave_name[80]; - -void init_pty() { - char cmd[256]; - - if (ppp_master_fd == -1) { - if (openpty( &ppp_master_fd, &ppp_slave_fd, ppp_slave_name, NULL, NULL)==0) - { - sprintf( cmd, "stty raw -echo -echoe < %s", ppp_slave_name); - system(cmd); - printf("pty opened, slave name = %s\n", ppp_slave_name); - printf("Now start pppd, for example with:\n"); - printf("/usr/sbin/pppd %s 115200 local noauth nocrtscts nodetach persist asyncmap 0xffffffff 192.168.1.1:192.168.1.2\n", - ppp_slave_name); - close(ppp_slave_fd); - } else { - printf("pty open failed\n"); - exit(1); - } - } -} - -void ppp_arch_putchar(u8_t c) { - init_pty(); - if (write( ppp_master_fd, &c, 1 ) > 0) { - //printf("wr=0x%02x '%c'\n", c, c>=' '?c<0x7f?c:' ':' '); - } else { - //printf("wr=0x%02x '%c' FAILED\n", c, c>=' '?c<0x7f?c:' ':' '); - } -} - -int ppp_arch_getchar(u8_t *p) { - fd_set read_fds; - struct timeval timeout; - - init_pty(); - FD_ZERO( &read_fds ); - FD_SET( ppp_master_fd, &read_fds ); - timeout.tv_sec = 0; - timeout.tv_usec = 10000; - if (select( ppp_master_fd+1, &read_fds, NULL, NULL, &timeout) != 0) { - if (FD_ISSET( ppp_master_fd, &read_fds )) { - if ( read( ppp_master_fd, p, 1) > 0 ) { - //printf("rd=0x%02x\n", *p); - return 1; - } - return 0; - } - printf("closing pty: %s\n", ppp_slave_name); - close( ppp_master_fd ); - ppp_master_fd == -1; - } else { - return 0; - } -} diff --git a/backyard/platform/minimal-ppp/ppp_arch.h b/backyard/platform/minimal-ppp/ppp_arch.h deleted file mode 100644 index e69de29bb..000000000 diff --git a/backyard/platform/sky/Makefile b/backyard/platform/sky/Makefile deleted file mode 100644 index b91eb6d7e..000000000 --- a/backyard/platform/sky/Makefile +++ /dev/null @@ -1,118 +0,0 @@ -# $Id: Makefile,v 1.1 2008/02/24 22:22:17 adamdunkels Exp $ -# -# This makefile requires GNU make! - -LIB = libcontiki.a -KERNELS = gateway.ihex client.ihex dhclient.ihex -PROGS = loadable_prg.ko udpsend.ko udprecv.ko -TOOLS = tunslip scat codeprop - -all: $(LIB) $(KERNELS) $(PROGS) $(TOOLS) - -loadable_prg.ko: loadable_prg.o -udpsend.ko: udpsend.o -udprecv.ko: udprecv.o - -gateway.out: gateway.o $(LIB) -client.out: client.o $(LIB) -dhclient.out: dhclient.o $(LIB) - -TOP=../.. -INCDIRS = -I. -I$(TOP)/cpu/msp430 -I$(TOP)/core -I$(TOP)/apps -SRCDIRS = dev $(TOP)/cpu/msp430 ${addprefix $(TOP)/core/,sys dev net lib loader} $(TOP)/apps/codeprop - -MCU=msp430x1611 - -ARCH=msp430.o minileds.o watchdog.o light.o button.o spi.o ds2411.o rom.o xmem.o i2c.o cle_msp430.o -SYSTEM=process.o procinit.o clock.o etimer.o timer.o \ - cmod.o cle.o sym.o -UIP=uip.o uiplib.o tcpip.o uip-fw.o uip-fw-drv.o uipbuf.o \ - tcpdump.o psock.o dhcpc.o uaodv.o uaodv-rt.o uip-udp-packet.o \ - uip-ipchksum.o -UIPDRIVERS=slip.o slip_uart1.o \ - cc2420.o cc2420_uart0.o cc2420_send_ip.o cc2420_send_uaodv.o -LIBS=memb.o list.o malloc.o realloc.o malloc_compact.o rand.o assert.o -SYSAPPS=tcp_loader2.o -LIBFILES=$(SYSTEM) $(ARCH) $(UIP) $(UIPDRIVERS) $(LIBS) $(SYSAPPS) - -MKNMLIST=awk -f $(TOP)/tools/mknmlist-ansi -CP=cp -LIBC=-lgcc -lc -lgcc -CC=msp430-gcc -LD=msp430-ld -AS=msp430-as -NM=msp430-nm -OBJCOPY=msp430-objcopy -STRIP=msp430-strip -AR=msp430-ar -RANLIB=msp430-ranlib -BSL=msp430-bsl -CFLAGS=-mmcu=$(MCU) $(INCDIRS) -Wall -Os -LDFLAGS=-mmcu=$(MCU) - -# Setup directory search path for source files -vpath %.c $(SRCDIRS) ${filter-out CVS,${wildcard labs/*}} - -# Set COM port if not already set. -# DOS: 1 => COM2, 2 => COM3, etc. -# Linux: /dev/ttyUSB0, /dev/ttyUSB1, etc. -# FreeBSD 6.2: /dev/cuaU0, /dev/cuaU1, etc. -ifndef COMPORT - COMPORT := /dev/ttyUSB0 -endif - - -%.o: %.c - $(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o)) - -# Combine several .o:s to one .ko and put COMMONs into the BSS segment -%.ko: - $(LD) -r -dc --strip-all --unresolved-symbols=ignore-in-object-files $^ -o $@ - -%.ihex: %.out - $(OBJCOPY) $^ -O ihex $@ - -#%.out: -# $(if $^,$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^,$(error "NO TARGET $@")) - -# Add a namelist to the kernel -%.out: $^ - : | $(MKNMLIST) > $@_tmp.c && mv $@_tmp.c $@_nm.c - $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ $(LIBC) $@_nm.c - $(NM) $@ | $(MKNMLIST) > $@_tmp.c && mv $@_tmp.c $@_nm.c - $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ $(LIBC) $@_nm.c - -%.u: %.ihex - $(BSL) --telosb -D -c $(COMPORT) -r -e -I -p $< - -$(LIB): $(LIBFILES) - $(AR) rcf $@ $^ - $(RANLIB) $@ - -codeprop: $(TOP)/tools/codeprop.c - cc -g -Wall $< -o $@ - -tunslip: $(TOP)/tools/tunslip.c - cc -g -Wall $< -o $@ - -scat: $(TOP)/tools/scat.c - cc -g -Wall $< -o $@ - -### TEST ### - -test.out: test.o $(LIB) - $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ - -depend: $(LIBFILES:.o=.c) - -$(CC) $(CCDEPFLAGS) -MM $(CFLAGS) $(INCDIRS) $^ >Makefile.depend - -tags: $(LIBFILES:.o=.c) - etags $^ - -clean: - rm -f *.o *.ko *~ *.core *.out *.ihex *_nm.c - rm -f $(LIB) $(KERNELS) $(TOOLS) - -.PHONY: all - --include Makefile.depend diff --git a/backyard/platform/sky/client.c b/backyard/platform/sky/client.c deleted file mode 100644 index 5b524385a..000000000 --- a/backyard/platform/sky/client.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)$Id: client.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - */ - -/* - * Example configuration with one statically configured IP interface. - * - * The IP address is hardcoded to 172.16.0.9 and the 172.16/16 network - * is on the radio interface. - * - * The default route and gateway is at 172.16.0.1. - * - * On the SLIP gateway run a standard SLIP implementation or the - * tunslip program that can also view debug printfs, example: - * - * sliphost# ./tunslip 172.16.0.1 255.255.0.0 - * - * - * This kernel has no application code but new modules can be uploaded - * using the codeprop program, example: - * - * datan$ ./codeprop 172.16.0.9 loadable_prg.ko - * File successfully sent (1116 bytes) - * Reply: ok - * - */ - -#include -#include -#include - -#include - -#include "contiki.h" - -/* Also IP output. */ -#include "net/uip-fw-drv.h" -#include "net/uaodv.h" -#include "dev/slip.h" -#include "dev/cc2420.h" - -#include "dev/ds2411.h" -#include "dev/leds.h" -#include "dev/light.h" -#include "dev/xmem.h" - -#include "dev/button.h" - -#include "codeprop/codeprop.h" - -/* This is how we force inclusion of the psock library. */ -#include "net/psock.h" -void *force_psock_inclusion = &psock_init; -void *force_udp_inclusion = &uip_udp_packet_send; - -struct uip_fw_netif cc2420if = -{UIP_FW_NETIF(172,16,0,9, 255,255,0,0, cc2420_send_uaodv)}; - -PROCESS(button_process, "Button process"); - -/* Radio stuff in network byte order. */ -static u16_t panId = UIP_HTONS(0x2024); - -#ifndef RF_CHANNEL -#define RF_CHANNEL 15 -#endif - -int -main(int argc, char **argv) -{ - /* - * Initalize hardware. - */ - msp430_cpu_init(); - clock_init(); - leds_init(); - leds_toggle(LEDS_ALL); - slip_arch_init(BAUD2UBR(115200)); /* Must come before first printf */ - printf("Starting %s " - "($Id: client.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $)\n", __FILE__); - ds2411_init(); - sensors_light_init(); - cc2420_init(); - xmem_init(); - button_init(&button_process); - leds_toggle(LEDS_ALL); - /* - * Hardware initialization done! - */ - - printf("MAC %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x CHANNEL %d\n", - ds2411_id[0], ds2411_id[1], ds2411_id[2], ds2411_id[3], - ds2411_id[4], ds2411_id[5], ds2411_id[6], ds2411_id[7], - RF_CHANNEL); - - uip_ipaddr_copy(&uip_hostaddr, &cc2420if.ipaddr); - uip_ipaddr_copy(&uip_netmask, &cc2420if.netmask); - uip_ipaddr(&uip_draddr, 172,16,0,1); - printf("IP %d.%d.%d.%d netmask %d.%d.%d.%d default router %d.%d.%d.%d\n", - uip_ipaddr_to_quad(&uip_hostaddr), - uip_ipaddr_to_quad(&uip_netmask), - uip_ipaddr_to_quad(&uip_draddr)); - cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id); - - /* - * Initialize Contiki and our processes. - */ - process_init(); - process_start(&etimer_process, NULL); - - /* Configure IP stack. */ - uip_init(); - uip_fw_default(&cc2420if); - tcpip_set_forwarding(1); - - /* Start IP stack. */ - process_start(&tcpip_process, NULL); - process_start(&uip_fw_process, NULL); /* Start IP output */ - process_start(&cc2420_process, NULL); - cc2420_on(); - process_start(&uaodv_process, NULL); - - process_start(&button_process, NULL); - process_start(&tcp_loader_process, NULL); - - /* - * This is the scheduler loop. - */ - printf("process_run()...\n"); - while (1) { - do { - /* Reset watchdog. */ - } while(process_run() > 0); - - /* - * Idle processing. - */ - int s = splhigh(); /* Disable interrupts. */ - if(process_nevents() != 0) { - splx(s); /* Re-enable interrupts. */ - } else { - /* Re-enable interrupts and go to sleep atomically. */ - _BIS_SR(GIE | SCG0 | CPUOFF); /* LPM1 sleep. */ - } - } - - return 0; -} - -PROCESS_THREAD(button_process, ev, data) -{ - static struct etimer etimer; - - PROCESS_EXITHANDLER(goto exit); - PROCESS_BEGIN(); - - printf("button_process starting\n"); - - while(1) { - PROCESS_WAIT_EVENT(); - - if(ev == PROCESS_EVENT_MSG && data != NULL - && ((struct button_msg *)data)->type == BUTTON_MSG_TYPE) { - printf("button press\n"); - - leds_toggle(LEDS_ALL); - etimer_set(&etimer, CLOCK_SECOND); - PROCESS_WAIT_UNTIL(etimer_expired(&etimer)); - leds_toggle(LEDS_ALL); - } - } - - exit: - printf("button_process exiting\n"); - PROCESS_END(); -} diff --git a/backyard/platform/sky/dhclient.c b/backyard/platform/sky/dhclient.c deleted file mode 100644 index 05e2142da..000000000 --- a/backyard/platform/sky/dhclient.c +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)$Id: dhclient.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - */ - -/* - * Example mote configuration with one radio interface that uses DHCP - * to configure its IP stack. - * - * The gateway systems must be configured to find what DHCP server to - * use, this can be done with an extra argument to tunslip, example: - * - * sliphost# ./tunslip 172.16.0.1 255.255.0.0 193.10.66.195 - * - * - * This kernel has no application code but new modules can be uploaded - * using the codeprop program, example: - * - * datan$ ./codeprop 172.16.0.1 loadable_prg.ko - * File successfully sent (1116 bytes) - * Reply: ok - * - */ - -#include -#include -#include - -#include - -#include "contiki.h" - -/* Also IP output. */ -#include "net/uip-fw-drv.h" -#include "net/uaodv.h" -#include "net/dhcpc.h" -#include "dev/slip.h" -#include "dev/cc2420.h" - -#include "dev/ds2411.h" -#include "dev/leds.h" -#include "dev/light.h" -#include "dev/xmem.h" - -#include "dev/button.h" - -#include "codeprop/codeprop.h" - -/* This is how we force inclusion of the psock library. */ -#include "net/psock.h" -void *force_psock_inclusion = &psock_init; -void *force_udp_inclusion = &uip_udp_packet_send; - -struct uip_fw_netif cc2420if = -{UIP_FW_NETIF(0,0,0,0, 255,255,255,255, cc2420_send_uaodv)}; - -PROCESS(button_process, "Button process"); -PROCESS(dhclient_process, "Dhclient process"); - -/* Radio stuff in network byte order. */ -static u16_t panId = UIP_HTONS(0x2024); - -#ifndef RF_CHANNEL -#define RF_CHANNEL 15 -#endif - -int -main(int argc, char **argv) -{ - /* - * Initalize hardware. - */ - msp430_cpu_init(); - clock_init(); - leds_init(); - leds_toggle(LEDS_ALL); - slip_arch_init(BAUD2UBR(115200)); /* Must come before first printf */ - printf("Starting %s " - "($Id: dhclient.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $)\n", __FILE__); - ds2411_init(); - sensors_light_init(); - cc2420_init(); - xmem_init(); - button_init(&button_process); - leds_toggle(LEDS_ALL); - /* - * Hardware initialization done! - */ - - printf("MAC %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x CHANNEL %d\n", - ds2411_id[0], ds2411_id[1], ds2411_id[2], ds2411_id[3], - ds2411_id[4], ds2411_id[5], ds2411_id[6], ds2411_id[7], - RF_CHANNEL); - - srand(rand() + - (ds2411_id[3]<<8) + (ds2411_id[4]<<6) + (ds2411_id[5]<<4) + - (ds2411_id[6]<<2) + ds2411_id[7]); - - /* - * Initialize Contiki and our processes. - */ - process_init(); - process_start(&etimer_process, NULL); - - /* Configure IP stack. */ - uip_init(); - - /* Start IP stack. */ - process_start(&tcpip_process, NULL); - process_start(&uip_fw_process, NULL); /* Start IP output */ - process_start(&cc2420_process, NULL); - cc2420_on(); - process_start(&dhclient_process, NULL); - - process_start(&button_process, NULL); - process_start(&tcp_loader_process, NULL); - - /* - * This is the scheduler loop. - */ - printf("process_run()...\n"); - while (1) { - do { - /* Reset watchdog. */ - } while(process_run() > 0); - - /* - * Idle processing. - */ - int s = splhigh(); /* Disable interrupts. */ - if(process_nevents() != 0) { - splx(s); /* Re-enable interrupts. */ - } else { - /* Re-enable interrupts and go to sleep atomically. */ - _BIS_SR(GIE | SCG0 | CPUOFF); /* LPM1 sleep. */ - } - } - - return 0; -} - -PROCESS_THREAD(button_process, ev, data) -{ - static struct etimer etimer; - - PROCESS_EXITHANDLER(goto exit); - PROCESS_BEGIN(); - - printf("button_process starting\n"); - - while(1) { - PROCESS_WAIT_EVENT(); - - if(ev == PROCESS_EVENT_MSG && data != NULL - && ((struct button_msg *)data)->type == BUTTON_MSG_TYPE) { - printf("button press\n"); - - leds_toggle(LEDS_ALL); - etimer_set(&etimer, CLOCK_SECOND); - PROCESS_WAIT_UNTIL(etimer_expired(&etimer)); - leds_toggle(LEDS_ALL); - } - } - - exit: - printf("button_process exiting\n"); - PROCESS_END(); -} - -PROCESS_THREAD(dhclient_process, ev, data) -{ - PROCESS_EXITHANDLER(goto exit); - PROCESS_BEGIN(); - - printf("dhclient_process starting\n"); - - leds_toggle(LEDS_GREEN); - - uip_setipid(rand()); - - /* For now use 0.0.0.0 as our IP address. */ - uip_ipaddr(&uip_hostaddr, 0,0,0,0); - cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id); - - /* Use only radio interface and enable forwarding. */ - uip_fw_default(&cc2420if); - tcpip_set_forwarding(1); - /* No default router yet. */ - - dhcpc_init(ds2411_id, sizeof(ds2411_id)); - dhcpc_request(); - - while(1) { - PROCESS_WAIT_EVENT(); - dhcpc_appcall(ev, data); - } - - exit: - printf("dhclient_process exiting\n"); - PROCESS_END(); -} - -static char is_configured; - -void -dhcpc_configured(const struct dhcpc_state *s) -{ - if(is_configured) - printf("dhcp reconfigure %d.%d.%d.%d\n", uip_ipaddr_to_quad(&s->ipaddr)); - else { - printf("dhcpc_configured %d.%d.%d.%d\n", uip_ipaddr_to_quad(&s->ipaddr)); - leds_toggle(LEDS_GREEN); - is_configured = 1; - process_start(&uaodv_process, NULL); - } - - uip_sethostaddr(&s->ipaddr); - uip_setnetmask(&s->netmask); - uip_setdraddr(&s->default_router); - - uip_ipaddr_copy(&cc2420if.ipaddr, &s->ipaddr); - uip_ipaddr_copy(&cc2420if.netmask, &s->netmask); - /* resolv_conf(s->dnsaddr); */ - - /* - * Now we also have a new short MAC address! - */ - cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id); - - /* Use only radio interface and enable forwarding. */ - uip_fw_init(); - tcpip_set_forwarding(1); - uip_fw_default(&cc2420if); -} - -void -dhcpc_unconfigured(const struct dhcpc_state *s) -{ - printf("dhcpc_unconfigured\n"); - leds_toggle(LEDS_GREEN); - is_configured = 0; - process_exit(&uaodv_process); - - uip_ipaddr(&uip_hostaddr, 0,0,0,0); - uip_ipaddr(&uip_netmask, 0,0,0,0); - uip_ipaddr(&uip_draddr, 0,0,0,0); - - /* New short MAC address. */ - cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id); -} diff --git a/backyard/platform/sky/gateway.c b/backyard/platform/sky/gateway.c deleted file mode 100644 index 04ae2ee46..000000000 --- a/backyard/platform/sky/gateway.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)$Id: gateway.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - */ - -/* - * Example gateway configuration with two IP interfaces, one SLIP over - * USB and one over 802.11.4 radio. - * - * The IP address is hardcoded to 172.16.0.1 and the 172.16/16 network - * is on the radio interface. - * - * The default route is over the SLIP interface. - * - * On the SLIP host run a standard SLIP implementation or the tunslip - * program that can also view debug printfs, example: - * - * sliphost# ./tunslip 172.16.0.1 255.255.0.0 - * - * - * This kernel has no application code but new modules can be uploaded - * using the codeprop program, example: - * - * datan$ ./codeprop 172.16.0.1 loadable_prg.ko - * File successfully sent (1116 bytes) - * Reply: ok - * - */ - -#include -#include - -#include - -#include "contiki.h" - -/* Also IP output. */ -#include "net/uip-fw-drv.h" -#include "net/uaodv.h" -#include "dev/slip.h" -#include "dev/cc2420.h" - -#include "dev/ds2411.h" -#include "dev/leds.h" -#include "dev/light.h" -#include "dev/xmem.h" -#include "lib/rand.h" - -#include "dev/button.h" - -#include "codeprop/codeprop.h" - -/* - * This is how we force inclusion of the psock library and the button - * device driver. - */ -#include "net/psock.h" -void *force_inclusion[] = { - &psock_init, - &button_init, - &uip_udp_packet_send, -}; -#if 0 -int -force_float_inclusion() -{ - extern int __fixsfsi; - extern int __floatsisf; - extern int __mulsf3; - extern int __subsf3; - - return __fixsfsi + __floatsisf + __mulsf3 + __subsf3; -} -#endif - -/* We have two IP interfaces. */ -struct uip_fw_netif cc2420if = -{UIP_FW_NETIF(172,16,0,1, 255,255,0,0, cc2420_send_uaodv)}; - -static struct uip_fw_netif slipif = -{UIP_FW_NETIF(0,0,0,0, 255,255,255,255, slip_send)}; - -/* Radio stuff in network byte order. */ -static u16_t panId = UIP_HTONS(0x2024); - -#ifndef RF_CHANNEL -#define RF_CHANNEL 15 -#endif - -int -main(int argc, char **argv) -{ - /* - * Initalize hardware. - */ - msp430_cpu_init(); - clock_init(); - leds_init(); - leds_toggle(LEDS_ALL); - slip_arch_init(BAUD2UBR(115200)); /* Must come before first printf */ - printf("Starting %s " - "($Id: gateway.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $)\n", __FILE__); - ds2411_init(); - sensors_light_init(); - cc2420_init(); - xmem_init(); - leds_toggle(LEDS_ALL); - /* - * Hardware initialization done! - */ - - printf("MAC %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x CHANNEL %d\n", - ds2411_id[0], ds2411_id[1], ds2411_id[2], ds2411_id[3], - ds2411_id[4], ds2411_id[5], ds2411_id[6], ds2411_id[7], - RF_CHANNEL); - - uip_ipaddr_copy(&uip_hostaddr, &cc2420if.ipaddr); - uip_ipaddr_copy(&uip_netmask, &cc2420if.netmask); - printf("IP %d.%d.%d.%d netmask %d.%d.%d.%d\n", - uip_ipaddr_to_quad(&uip_hostaddr), uip_ipaddr_to_quad(&uip_netmask)); - cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id); - - srand(rand() + - (ds2411_id[3]<<8) + (ds2411_id[4]<<6) + (ds2411_id[5]<<4) + - (ds2411_id[6]<<2) + ds2411_id[7]); - - /* - * Initialize Contiki and our processes. - */ - process_init(); - process_start(&etimer_process, NULL); - - /* Configure IP stack. */ - uip_init(); - uip_fw_default(&slipif); /* Point2point, no default router. */ - uip_fw_register(&cc2420if); - tcpip_set_forwarding(1); - - /* Start IP stack. */ - process_start(&tcpip_process, NULL); - process_start(&uip_fw_process, NULL); /* Start IP output */ - process_start(&slip_process, NULL); - process_start(&cc2420_process, NULL); - cc2420_on(); - process_start(&uaodv_process, NULL); - - process_start(&tcp_loader_process, NULL); - - /* - * This is the scheduler loop. - */ - printf("process_run()...\n"); - while (1) { - do { - /* Reset watchdog. */ - } while(process_run() > 0); - /* Idle! */ - } - - return 0; -} diff --git a/backyard/platform/sky/loadable_prg.c b/backyard/platform/sky/loadable_prg.c deleted file mode 100644 index 09b2ec146..000000000 --- a/backyard/platform/sky/loadable_prg.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: loadable_prg.c,v 1.1 2008/05/27 13:16:34 adamdunkels Exp $ - */ - -#include - -#include "contiki.h" - -#include "dev/leds.h" - -PROCESS(test_process, "Test process"); - -PROCESS_THREAD(test_process, ev, data) -{ - static struct etimer etimer; - - PROCESS_EXITHANDLER(goto exit); - PROCESS_BEGIN(); - - printf("test_process starting\n"); - - while(1) { - leds_on(LEDS_RED); - etimer_set(&etimer, CLOCK_SECOND); - PROCESS_WAIT_UNTIL(etimer_expired(&etimer)); - leds_off(LEDS_RED); - etimer_set(&etimer, CLOCK_SECOND); - PROCESS_WAIT_UNTIL(etimer_expired(&etimer)); - } - - exit: - printf("test_process exiting\n"); - leds_off(LEDS_RED); - PROCESS_END(); -} - -/* - * Initialize this kernel module. - */ -void -_init(void) -{ - process_start(&test_process, NULL); -} - -/* - * When this module is unloaded we must clean up! - */ -void -_fini(void) -{ - process_exit(&test_process); -} diff --git a/backyard/platform/sky/udprecv.c b/backyard/platform/sky/udprecv.c deleted file mode 100644 index 58807dd4f..000000000 --- a/backyard/platform/sky/udprecv.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: udprecv.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - */ - -#include -#include - -#include "contiki.h" -#include "net/uip.h" - -PROCESS(udprecv_process, "UDP recv process"); - -PROCESS_THREAD(udprecv_process, ev, data) -{ - static struct uip_udp_conn *c; - - PROCESS_EXITHANDLER(goto exit); - PROCESS_BEGIN(); - - printf("udprecv_process starting\n"); - - { - uip_ipaddr_t any; - uip_ipaddr(&any, 0,0,0,0); - c = udp_new(&any, UIP_HTONS(0), NULL); - uip_udp_bind(c, UIP_HTONS(4321)); - } - - while(1) { - PROCESS_YIELD(); - - if(ev == tcpip_event && uip_newdata()) { - u8_t *src = ((struct uip_udpip_hdr *)&uip_buf[UIP_LLH_LEN])->srcipaddr.u8; - printf("%d.%d.%d.%d: %s\n", - src[0], src[1], src[2], src[3], (char *)uip_appdata); - } - } - - exit: - /* Contiki does automatic garbage collection of uIP state and we - * need not worry about that. */ - printf("udprecv_process exiting\n"); - PROCESS_END(); -} - -/* - * Initialize this kernel module. - */ -void -_init(void) -{ - process_start(&udprecv_process, NULL); -} - -/* - * When this module is unloaded we must clean up! - */ -void -_fini(void) -{ - process_exit(&udprecv_process); -} diff --git a/backyard/platform/sky/udpsend.c b/backyard/platform/sky/udpsend.c deleted file mode 100644 index c95b2ae13..000000000 --- a/backyard/platform/sky/udpsend.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: udpsend.c,v 1.2 2010/10/19 18:29:04 adamdunkels Exp $ - */ - -/* Set the IP destination address to something different from the - * broadcast address. Use commas (",") rather than the normal dots - * (".") in addresses. - */ - -#include -#include - -#include "contiki.h" -#include "net/uip.h" - -#include "dev/leds.h" -#include "dev/light.h" - -PROCESS(udpsend_process, "UDP send process"); - -PROCESS_THREAD(udpsend_process, ev, data) -{ - static struct etimer etimer; - static struct uip_udp_conn *c; - - PROCESS_EXITHANDLER(goto exit); - PROCESS_BEGIN(); - - printf("udpsend_process starting\n"); - - { - uip_ipaddr_t addr; - uip_ipaddr(&addr, 255,255,255,255); /* Change address here! */ - c = udp_new(&addr, UIP_HTONS(4321), NULL); - c->ttl = 1; /* One hop only. */ - } - - while(1) { - etimer_set(&etimer, CLOCK_SECOND); - PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&etimer)); - - tcpip_poll_udp(c); - PROCESS_WAIT_EVENT_UNTIL(ev == tcpip_event); - - char buf[64]; - sprintf(buf, "light sensors %d %d", sensors_light1(), sensors_light2()); - uip_send(buf, strlen(buf) + 1); - } - - exit: - /* Contiki does automatic garbage collection of uIP state and we - * need not worry about that. */ - printf("udpsend_process exiting\n"); - PROCESS_END(); -} - -/* - * Initialize this kernel module. - */ -void -_init(void) -{ - process_start(&udpsend_process, NULL); -} - -/* - * When this module is unloaded we must clean up! - */ -void -_fini(void) -{ - process_exit(&udpsend_process); -} diff --git a/backyard/tools/chakana/CYGWIN_USERS.txt b/backyard/tools/chakana/CYGWIN_USERS.txt deleted file mode 100644 index 62801a929..000000000 --- a/backyard/tools/chakana/CYGWIN_USERS.txt +++ /dev/null @@ -1,13 +0,0 @@ -If you're on Cygwin and run into the 'sem_init: Resource temporarily unavailable' problem: - -Current Cygwin python versions have problems with running out of PIDs, it is a known problem and there has been several discussions and bugreports related to it. -As of today, the best solution seems to be to rebase the Cygwin libraries: - 0> Make sure you have the rebaseall program, it can be downloaded using Cygwin's setup.exe - - 1> Shut down all Cygwin processes and services (including shells) - 2> Start a regular Win command prompt ('cmd') - 3> Start 'ash' - 4> Start '/bin/rebaseall', expect this step to take some time.. - 5> All done! This worked for me. - - -- Fredrik , 2007 \ No newline at end of file diff --git a/backyard/tools/chakana/__init__.py b/backyard/tools/chakana/__init__.py deleted file mode 100644 index 51f3cfdfc..000000000 --- a/backyard/tools/chakana/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Chakana, an automated test harness for networked embedded systems.""" diff --git a/backyard/tools/chakana/build.xml b/backyard/tools/chakana/build.xml deleted file mode 100644 index e024611aa..000000000 --- a/backyard/tools/chakana/build.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/backyard/tools/chakana/command.py b/backyard/tools/chakana/command.py deleted file mode 100644 index 494067496..000000000 --- a/backyard/tools/chakana/command.py +++ /dev/null @@ -1,190 +0,0 @@ -# -# Copyright 2005-2007 Swedish Institute of Computer Science. -# -# Please refer to the file named LICENSE in the same directory as this file -# for licensing information. -# -# Written and maintained by Lars Albertsson . -# - -# $Id: command.py,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - -"""Utility routines for running external commands.""" - -import errno -import os -import popen2 -import re -import signal -import threading - -import chakana.error -import chakana.linux -import chakana.threads - -def quote(argument, useTick = 1): - """Quote an argument, or a list of arguments, in order to pass it - through a shell.""" - if type(argument) in (type([]), type(())): - return " ".join(map(quote, argument)) - if useTick and not "'" in argument: - return "'" + argument + "'" - return '"' + argument.replace('\\', '\\\\').replace('"', '\\"').replace( - '`', '\\`').replace('$', '\\$') + '"' - -def softQuote(argument): - """Quote an argument, or a list of arguments, in order to pass it through - a shell if it is necessary. Always quotes with quotation mark, never - with tick.""" - if type(argument) in (type([]), type(())): - return " ".join(map(softQuote, argument)) - if re.match(r'^[\w,./=-]*$', argument): - return argument - else: - return quote(argument, useTick = 0) - -def deQuote(argument): - """Remove quoting in the same manner as the shell (bash) does.""" - if argument == "": - return "" - if argument[0] == "'": - nextQuote = argument.find("'", 1) - if nextQuote == -1: - raise ValueError("Unmatched quote \"'\"") - return argument[1 : nextQuote] + deQuote(argument[nextQuote + 1 :]) - if len(argument) > 1 and argument[-1] == "'": - return argument[1:-1] - elif argument[0] == '"': - ret = [] - index = 1 - try: - while True: - if argument[index] == '"': - return "".join(ret) + deQuote(argument[index + 1 :]) - if argument[index] == '\\': - index += 1 - if argument[index] != '\n': - ret.append(argument[index]) - else: - ret.append(argument[index]) - index += 1 - except IndexError: - raise ValueError("Unmatched quote '\"'") - elif argument[0] == '\\': - if len(argument) == 1: - return argument[0] - if argument[1] != '\n': - return argument[1] + deQuote(argument[2:]) - else: - return argument[2:] - return argument[0] + deQuote(argument[1:]) - - -def runString(argv, environmentVars = ("PYTHONPATH", )): - """Return a quoted string that can be pasted into a shell in order - to rerun a command.""" - - envPrefix = "" - for envVar in environmentVars: - envPrefix += envVar + "=" + os.environ.get(envVar, "") + " " - return "( cd " + os.getcwd() + " && " + envPrefix + quote(argv) + " )" - -class Reader: - def __call__(self, fileObj): - self._data = [] - while 1: - newData = fileObj.read() - if newData == "": - return - self._data.append(newData) - - def result(self): - return "".join(self._data) - -class Writer: - def __init__(self, fileObj, data): - self._fileObj = fileObj - self._data = data - if self._data == "": - self._fileObj.close() - self._threads = [] - else: - self._threads = [threading.Thread(target = self.write)] - self._threads[0].start() - - def write(self): - self._fileObj.write(self._data) - self._fileObj.close() - - def activeThreads(self): - return self._threads - -class Runner: - def __init__(self, child, timeout): - self._child = child - self._timeout = timeout - self._threads = [] - self._output = [] - if self._timeout is None: - self.read() - self.wait() - else: - self._threads.append(threading.Thread(target = self.read)) - self._threads[-1].start() - self._threads.append(threading.Thread(target = self.wait)) - self._threads[-1].start() - - def activeThreads(self): - return self._threads - - def read(self): - while 1: - newData = self._child.fromchild.read() - if newData == "": - return - self._output.append(newData) - - def wait(self): - self._status = self._child.wait() - - def output(self): - return "".join(self._output) - - def status(self): - return self._status - -def output(command, inputData = "", timeout = None): - """Run command in a separate subprocess. Send inputData to stdin. - Kill subprocess and raise error.Timeout after timeout seconds, - unless timeout is None.""" - - # Due to python bug 1183780 (Popen4.wait not thread-safe), avoid - # threads if we don't need them. - - child = popen2.Popen4(command) - writer = Writer(child.tochild, inputData) - runner = Runner(child, timeout) - - try: - chakana.threads.waitForAll(writer.activeThreads() + runner.activeThreads(), - timeout) - except chakana.error.Timeout, timeoutErr: - try: - childProc = chakana.linux.Process(child.pid) - childProc.killAllBelow() - childProc.reallyKill() - except OSError, err: - if not err.errno in (errno.ESRCH, errno.ECHILD): - raise - raise chakana.error.CommandFailed(command, timeoutErr, runner.output()) - - if runner.status() != 0: - raise chakana.error.CommandFailed( - command, runner.status(), runner.output()) - if re.search(r"\blibefence", os.environ.get("LD_PRELOAD", "")): - lines = runner.output().splitlines() - if (len(lines) >= 2) and (lines[0] == "") and \ - lines[1].strip().startswith("Electric Fence "): - return "\n".join(lines[2:] + [""]) - return runner.output() - diff --git a/backyard/tools/chakana/cooja.chakana.properties b/backyard/tools/chakana/cooja.chakana.properties deleted file mode 100644 index 22a543d7f..000000000 --- a/backyard/tools/chakana/cooja.chakana.properties +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_PROJECTDIRS=../cooja_plugin diff --git a/backyard/tools/chakana/cooja_plugin/README b/backyard/tools/chakana/cooja_plugin/README deleted file mode 100644 index 546b92f3b..000000000 --- a/backyard/tools/chakana/cooja_plugin/README +++ /dev/null @@ -1,3 +0,0 @@ -Main Chakana COOJA plugin. - -Communicates with Chakana, and should automatically be started with the simulator. diff --git a/backyard/tools/chakana/cooja_plugin/build.xml b/backyard/tools/chakana/cooja_plugin/build.xml deleted file mode 100644 index f3cdb2394..000000000 --- a/backyard/tools/chakana/cooja_plugin/build.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/backyard/tools/chakana/cooja_plugin/cooja.config b/backyard/tools/chakana/cooja_plugin/cooja.config deleted file mode 100644 index 882383efc..000000000 --- a/backyard/tools/chakana/cooja_plugin/cooja.config +++ /dev/null @@ -1,2 +0,0 @@ -se.sics.cooja.GUI.PLUGINS = + se.sics.chakana.ChakanaPlugin -se.sics.cooja.GUI.JARFILES = + chakana.jar diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/ChakanaPlugin.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/ChakanaPlugin.java deleted file mode 100644 index 9b51cde26..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/ChakanaPlugin.java +++ /dev/null @@ -1,279 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. 2. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. 3. Neither the name of the - * Institute nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: ChakanaPlugin.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.net.ServerSocket; -import java.net.Socket; -import java.util.Collection; -import javax.swing.SwingUtilities; -import org.apache.log4j.Logger; -import org.jdom.Element; - -import se.sics.cooja.*; - -/** - * Main Chakana plugin. - * - * Provides remote control functionality to COOJA via socket connections. - * - * @see #SERVER_PORT - * @author Fredrik Osterlind - */ -@ClassDescription("Chakana COOJA Server") -@PluginType(PluginType.COOJA_STANDARD_PLUGIN) -public class ChakanaPlugin implements Plugin { - public static final String VERSION = "0.1"; - - /** - * COOJA's Chakana-plugin server port - */ - public static final int SERVER_PORT = 1234; - - private static final long serialVersionUID = 1L; - - private static Logger logger = Logger.getLogger(ChakanaPlugin.class); - - private GUI myGUI; - - // Chakana communication - private Thread serverThread = null; - - private ServerSocket serverSocket = null; - - private Thread clientThread = null; - - private Socket clientSocket = null; - - private EventpointEvaluator myEvaluator = null; - - private XMLCommandHandler myCommandHandler = null; - - private boolean shutdown = false; - - private Object tag = null; - - /** - * Creates new Chakana remote control plugin. - * - * @param gui COOJA Simulator - */ - public ChakanaPlugin(GUI gui) { - myGUI = gui; - - // Create eventpoint evaluator - myEvaluator = new EventpointEvaluator(myGUI); - - // Create remote command handler - myCommandHandler = new XMLCommandHandler(myGUI, this, myEvaluator); - - // Open server socket - serverThread = new Thread(new Runnable() { - public void run() { - try { - serverSocket = new ServerSocket(SERVER_PORT); - logger.info("Chakana server listening on port " + SERVER_PORT + "."); - } catch (Exception e) { - logger.fatal("Could not start server thread: " + e.getMessage()); - return; - } - - // Handle incoming connections - while (serverSocket != null) { - try { - Socket skt = serverSocket.accept(); - handleNewConnection(skt); - } catch (Exception e) { - if (!shutdown) - logger.fatal("Server thread exception: " + e.getMessage()); - if (serverThread != null && serverThread.isInterrupted()) { - serverThread = null; - } - serverSocket = null; - } - } - logger.info("Chakana server thread terminating"); - } - }, "chakana listen thread"); - serverThread.start(); - } - - public void performCOOJAShutdown() { - shutdown = true; - } - - /** - * Handles incoming connection. - * - * @param socket Socket - */ - private void handleNewConnection(Socket socket) { - logger.info("Received request from " + socket.getInetAddress() + ":" - + socket.getPort()); - - if (clientThread != null) { - // Refuse connection - logger.warn("A client is already connected, refusing new connection"); - try { - socket.close(); - } catch (IOException e) { - } - return; - } - - // Start thread handling connection - clientSocket = socket; - clientThread = new Thread(new Runnable() { - public void run() { - try { - // Open stream - PrintWriter writer = new PrintWriter(clientSocket.getOutputStream()); - BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket - .getInputStream())); - - // Send welcome message - writer.print(XMLCommandHandler.createInfoMessage("Chakana COOJA plugin, version " + VERSION) + "\n"); - writer.flush(); - - // Handle incoming data (blocks until connection terminated) - String line; - String command = ""; - while ((!shutdown) && ((line = reader.readLine()) != null)) { - logger.debug("<-- " + line); - command += line; - - if (myCommandHandler.containsEntireCommand(command)) { - String reply = myCommandHandler.handleCommand(command); - logger.debug("--> " + reply); - writer.print(reply + "\n"); - writer.flush(); - command = ""; - } - } - - logger.debug("Terminating Chakana connection"); - - // Clean up connection - if (writer != null) { - writer.flush(); - writer.close(); - } - if (clientSocket != null && !clientSocket.isClosed()) - clientSocket.close(); - - } catch (IOException e) { - logger.fatal("Client connection exception: " + e); - } - - clientThread = null; - clientSocket = null; - SwingUtilities.invokeLater(new Runnable() { - public void run() { - myGUI.doQuit(false); - } - }); - logger.debug("Chakana client thread terminating"); - } - }, "chakana client thread"); - clientThread.start(); - - } - - /** - * Shut down any open server socket, and kill server thread. - */ - protected void closeServer() { - // Shut down server - if (serverSocket != null && !serverSocket.isClosed()) { - logger.info("Closing server socket"); - try { - serverSocket.close(); - } catch (IOException e) { - logger.fatal("Error when closing server socket: " + e); - } - serverSocket = null; - } - - if (serverThread != null && serverThread.isAlive()) { - logger.info("Interrupting server thread"); - serverThread.interrupt(); - serverThread = null; - } - } - - /** - * Disconnect all connected clients. Currently only one client can be - * connected at the same time. - */ - protected void disconnectClients() { - // Disconnect any current accepted client - if (clientSocket != null && !clientSocket.isClosed()) { - logger.info("Closing client socket"); - try { - clientSocket.close(); - } catch (IOException e) { - logger.fatal("Error when closing client socket: " + e); - } - clientSocket = null; - } - - if (clientThread != null && clientThread.isAlive()) { - logger.info("Interrupting client thread"); - clientThread.interrupt(); - clientThread = null; - } - } - - public void closePlugin() { - closeServer(); - disconnectClients(); - } - - public void tagWithObject(Object tag) { - this.tag = tag; - } - - public Object getTag() { - return tag; - } - - public Collection getConfigXML() { - return null; - } - - public boolean setConfigXML(Collection configXML, - boolean visAvailable) { - return false; - } - -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/EventpointEvaluator.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/EventpointEvaluator.java deleted file mode 100644 index 1bcb7e386..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/EventpointEvaluator.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id: EventpointEvaluator.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana; - -import java.util.Observable; -import java.util.Observer; -import java.util.Vector; -import org.apache.log4j.Logger; - -import se.sics.cooja.GUI; -import se.sics.cooja.Simulation; -import se.sics.chakana.eventpoints.*; - -/** - * Keeps track of all active eventpoints. The control method blocks until any of - * the active eventpoints trigger. - * - * @author Fredrik Osterlind - */ -public class EventpointEvaluator { - private static Logger logger = Logger.getLogger(EventpointEvaluator.class); - - private GUI myGUI; - private Vector allEventpoints; - private Eventpoint lastTriggeredEventpoint; - private Simulation sim = null; - - private int counterEventpointID = 0; - - private Observer tickObserver = new Observer() { - public void update(Observable obs, Object obj) { - // Evaluate active eventpoints - for (Eventpoint eventpoint: allEventpoints) { - if (eventpoint.evaluate()) { - lastTriggeredEventpoint = eventpoint; - sim.stopSimulation(); - logger.info("Eventpoint triggered: " + eventpoint); - } - } - } - }; - - /** - * Creates a new eventpoint evaluator. - * - * @param gui GUI with simulation - */ - public EventpointEvaluator(GUI gui) { - myGUI = gui; - allEventpoints = new Vector(); - } - - - /** - * Blocks until an active eventpoint triggers. - * - * @return Triggered eventpoint - * @throws EventpointException At evenpoint setup errors - */ - public Eventpoint resumeSimulation() throws EventpointException { - if (myGUI.getSimulation() == null) - throw new EventpointException("No simulation to observe"); - if (allEventpoints == null || allEventpoints.isEmpty()) - throw new EventpointException("No eventpoints exist"); - - // Make sure tick observer is observing the current simulation - myGUI.getSimulation().deleteTickObserver(tickObserver); - myGUI.getSimulation().addTickObserver(tickObserver); - - // Evaluate active eventpoints before starting simulation - for (Eventpoint eventpoint: allEventpoints) { - if (eventpoint.evaluate()) { - lastTriggeredEventpoint = eventpoint; - logger.info("Eventpoint triggered (EARLY): " + eventpoint); - return lastTriggeredEventpoint; - } - } - - // Reset last triggered eventpoint and start simulation - lastTriggeredEventpoint = null; - sim = myGUI.getSimulation(); - sim.startSimulation(); - - // Block until tickobserver stops simulation - while (lastTriggeredEventpoint == null || myGUI.getSimulation().isRunning()) { - Thread.yield(); - } - - if (lastTriggeredEventpoint == null) - throw new EventpointException("Simulation was stopped without eventpoint triggering"); - - return lastTriggeredEventpoint; - } - - public Eventpoint getTriggeredEventpoint() { - return lastTriggeredEventpoint; - } - - public int getLastTriggeredEventpointID() { - return lastTriggeredEventpoint.getID(); - } - - public Eventpoint getEventpoint(int id) { - for (Eventpoint eventpoint: allEventpoints) { - if (eventpoint.getID() == id) { - return eventpoint; - } - } - return null; - } - - public void addEventpoint(Eventpoint eventpoint) { - eventpoint.setID(counterEventpointID++); - allEventpoints.add(eventpoint); - } - - public void clearAllEventpoints() { - allEventpoints.clear(); - } - - public void deleteEventpoint(int id) { - Eventpoint eventpointToDelete = null; - for (Eventpoint eventpoint: allEventpoints) { - if (eventpoint.getID() == id) { - eventpointToDelete = eventpoint; - break; - } - } - - if (eventpointToDelete != null) - allEventpoints.remove(eventpointToDelete); - } - - class EventpointException extends Exception { - public EventpointException(String message) { - super(message); - } - } - -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/XMLCommandHandler.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/XMLCommandHandler.java deleted file mode 100644 index 031a35cdd..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/XMLCommandHandler.java +++ /dev/null @@ -1,1159 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id: XMLCommandHandler.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana; - -import java.io.File; -import java.io.IOException; -import java.io.StringReader; -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; -import java.util.Collection; -import javax.swing.JFrame; -import javax.swing.JInternalFrame; - -import org.apache.log4j.Logger; -import org.jdom.Document; -import org.jdom.Element; -import org.jdom.JDOMException; -import org.jdom.input.SAXBuilder; - -import se.sics.chakana.EventpointEvaluator.EventpointException; -import se.sics.chakana.eventpoints.*; -import se.sics.cooja.AddressMemory; -import se.sics.cooja.CoreComm; -import se.sics.cooja.GUI; -import se.sics.cooja.Mote; -import se.sics.cooja.MoteMemory; -import se.sics.cooja.RadioMedium; -import se.sics.cooja.Simulation; -import se.sics.cooja.Mote.State; -import se.sics.cooja.MoteType.MoteTypeCreationException; -import se.sics.cooja.dialogs.MessageList; -import se.sics.cooja.plugins.VisState; -import se.sics.cooja.plugins.Visualizer2D; -import se.sics.cooja.radiomediums.UDGM; - -/** - * Handles incoming XML commands. - * Each command handling call blocks during handling and returns a reply to the client. - * - * A command must always be of the form: - * ... - * - * @author Fredrik Osterlind - */ -public class XMLCommandHandler { - public static final boolean DEBUG_OUTPUT = true; - - private static Logger logger = Logger.getLogger(XMLCommandHandler.class); - - public static final String XML_OK = ""; - public static final String XML_OK_START = ""; - public static final String XML_OK_END = ""; - - public static final String XML_INFO_START = ""; - public static final String XML_INFO_END = ""; - public static final String XML_ERROR_START = ""; - public static final String XML_ERROR_END = ""; - - public static final String XML_COMMAND_NAME = "command"; - public static final String XML_COMMAND_END = ""; - - public static final String XML_EVENTPOINT_START = ""; - public static final String XML_EVENTPOINT_END = ""; - - public static final String XML_ID_NAME = "id"; - public static final String XML_TYPE_NAME = "type"; - public static final String XML_MOTE_NAME = "mote"; - public static final String XML_VARIABLE_NAME = "variable"; - public static final String XML_MOTECOUNT_NAME = "motecount"; - public static final String XML_VALUE_NAME = "value"; - public static final String XML_TIME_NAME = "time"; - public static final String XML_SIZE_NAME = "size"; - public static final String XML_ADDRESS_NAME = "address"; - public static final String XML_VISIBLE_NAME = "visible"; - public static final String XML_TRIGGERON_NAME = "triggeron"; - public static final String XML_WATCHPOINT_INT = "int"; - public static final String XML_WATCHPOINT_VARIABLE = "variable"; - public static final String XML_WATCHPOINT_ADDRESS = "address"; - public static final String XML_TIMEPOINT_SIMULATION = "time"; - public static final String XML_TIMEPOINT_REAL = "realtime"; - public static final String XML_EVENTPOINT_RADIOMEDIUM = "radiomedium"; - - private GUI myGUI; - private EventpointEvaluator myEvaluator; - private ChakanaPlugin myParent; - - public enum Command { - CREATE_SIM, - CONF_SIM, - CONF_PLUGINS, - CONTROL_SIM, - SET_GUI, - ADD_EVENTPOINT, - READ_MEMORY, - WRITE_MEMORY, - CLEAR_EVENTPOINTS, - DELETE_EVENTPOINT, - KILL_NODES, - GET_INFO, - CUSTOM_COMMAND, - EXIT_COOJA; - } - - public enum ControlSimulationCommand { - RESUME; - } - - /** - * TODO Document - * - * @param gui - * @param parent - * @param evaluator - */ - public XMLCommandHandler(GUI gui, ChakanaPlugin parent, EventpointEvaluator evaluator) { - myGUI = gui; - myEvaluator = evaluator; - myParent = parent; - } - - /** - * @param command - * @return - */ - public boolean containsEntireCommand(String command) { - return command.contains(XMLCommandHandler.XML_COMMAND_END); // TODO Ugly trick - } - - /** - * Handle given command (XML format). - * Method blocks until given command has been handled. - * - * @param command - * Command to handle - * @return Reply to client in XML format - */ - public String handleCommand(String command) { - try { - SAXBuilder builder = new SAXBuilder(); - Document doc = builder.build(new StringReader(command)); - Element root = doc.getRootElement(); - - if (!root.getName().equals(XML_COMMAND_NAME)) { - return createErrorMessage("Malformed command: " + root.getName()); - } - - String cmdTypeString = root.getAttributeValue("value"); - Command cmdType; - try { - cmdType = Command.valueOf(cmdTypeString); - } catch (IllegalArgumentException e) { - return createErrorMessage("Unknown command: " + cmdTypeString); - } - - Collection cmdInfo = root.getChildren(); - - logger.debug("Command type: " + cmdType); - switch (cmdType) { - case CREATE_SIM: - return createSimulation(cmdInfo); - case CONF_SIM: - return configureSimulation(cmdInfo); - case CONF_PLUGINS: - return configurePlugins(cmdInfo); - case CONTROL_SIM: - return controlSimulation(cmdInfo); - case ADD_EVENTPOINT: - return addEventpoint(cmdInfo); - case SET_GUI: - return configureGUI(cmdInfo); - case READ_MEMORY: - return readMemory(cmdInfo); - case WRITE_MEMORY: - return writeMemory(cmdInfo); - case CLEAR_EVENTPOINTS: - return clearEventpoints(); - case DELETE_EVENTPOINT: - return deleteEventpoint(cmdInfo); - case KILL_NODES: - return killNodes(cmdInfo); - case GET_INFO: - return getInfo(cmdInfo); - case CUSTOM_COMMAND: - return handleCustomCommand(cmdInfo); - case EXIT_COOJA: - return shutdownCOOJA(cmdInfo); - default: - return createErrorMessage("Unknown command: " + cmdType); - } - } catch (JDOMException e) { - logger.fatal("Command parsing exception: " + e); - return createErrorMessage("Invalid command syntax: " + e.getMessage()); - } catch (IOException e) { - logger.fatal("Command parsing exception: " + e); - return createErrorMessage("Invalid command syntax: " + e.getMessage()); - } - } - - /** - * Handle create new simulation command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String createSimulation(Collection arguments) { - Simulation simulation = new Simulation(myGUI); - simulation.setTitle("[chakana - no title]"); - simulation.setDelayTime(0); - simulation.setSimulationTime(0); - simulation.setTickTime(1); - - try { - RadioMedium radioMedium = RadioMedium.generateRadioMedium(UDGM.class, - simulation); - simulation.setRadioMedium(radioMedium); - } catch (Exception e) { - return createErrorMessage("Create simulation: Could not create radio medium: " + e.getMessage()); - } - - // Let simulation parse command arguments - myGUI.setSimulation(simulation); - try { - boolean success = simulation.setConfigXML(arguments, false); - } catch (Exception e) { - logger.fatal("Error when configuring simulation: " + e); - if (DEBUG_OUTPUT) { - if (e instanceof MoteTypeCreationException) { - MessageList compilationOutput = ((MoteTypeCreationException) e).getCompilationOutput(); - if (compilationOutput != null) { - logger.info("Compilation output:"); - for(int i = 0; i < compilationOutput.getModel().getSize(); i++) { - logger.info(compilationOutput.getModel().getElementAt(i)); - } - } - StackTraceElement[] stackTrace = e.getStackTrace(); - if (stackTrace != null) { - logger.info("Stack trace:"); - for(StackTraceElement element: stackTrace) { - logger.info(element); - } - } - GUI.showErrorDialog(new JFrame(""), "Set DEBUG_OUTPUT to false to disable this frame", e, false); // XXX Graphical component - } - } - return createErrorMessage("Create simulation: Could not configure simulation: " + e.getMessage()); - } - - return XML_OK; - } - - /** - * Handle configure simulation command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String configureSimulation(Collection arguments) { - Simulation simulation = myGUI.getSimulation(); - - // Let simulation parse command arguments - try { - simulation.setConfigXML(arguments, false); - } catch (Exception e) { - logger.fatal("Error when configuring simulation: " + e); - e.printStackTrace(); - return createErrorMessage("Could not configure simulation: " + e.getMessage()); - } - return XML_OK; - } - - /** - * Handle configure plugins command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String configurePlugins(Collection arguments) { - Simulation simulation = myGUI.getSimulation(); - - // Let GUI parse command arguments - try { - myGUI.setPluginsConfigXML(arguments, simulation, false); - } catch (Exception e) { - logger.fatal("Error when configuring plugins: " + e); - return createErrorMessage("Could not configure plugins: " + e.getMessage()); - } - - return XML_OK; - } - - /** - * Handle control simulation command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String controlSimulation(Collection arguments) { - String reply = ""; - - for (Element element : arguments) { - ControlSimulationCommand cmdType; - try { - cmdType = ControlSimulationCommand.valueOf(element.getName()); - } catch (IllegalArgumentException e) { - return createErrorMessage("Unknown simulation control command: " + element.getName()); - } - - switch (cmdType) { - case RESUME: - // TODO Check performance degradation using try-blocks - try { - myEvaluator.resumeSimulation(); - reply += createEventpointMessage(myEvaluator); - } catch (EventpointException e) { - return createErrorMessage("Exception during simulation: " + e); - } - break; - default: - return createErrorMessage("Unknown simulation control command"); - } - } - return reply; - } - - /** - * Handle exit COOJA command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String shutdownCOOJA(Collection arguments) { - myParent.performCOOJAShutdown(); - logger.info("Shutdown requested"); - return XML_OK; - } - - /** - * Fetch mote variable value as specified by arguments. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String readMemory(Collection arguments) { - Simulation simulation = myGUI.getSimulation(); - - String type = null; - String mote = null; - String variable = null; - String size = null; - String address = null; - - for (Element element : arguments) { - if (element.getName().equals(XML_TYPE_NAME)) { - type = element.getText(); - } else if (element.getName().equals(XML_MOTE_NAME)) { - mote = element.getText(); - } else if (element.getName().equals(XML_VARIABLE_NAME)) { - variable = element.getText(); - } else if (element.getName().equals(XML_SIZE_NAME)) { - size = element.getText(); - } else if (element.getName().equals(XML_ADDRESS_NAME)) { - address = element.getText(); - } else { - return createErrorMessage("Unknown read memory parameter: " + element.getName()); - } - } - - if (type == null) - return createErrorMessage("No read memory type specified"); - if (mote == null) - return createErrorMessage("No mote specified"); - - if (mote == null) - return createErrorMessage("No mote ID specified"); - int moteNr = Integer.parseInt(mote); - if (moteNr < 0 || simulation.getMotesCount() <= moteNr) { - return createErrorMessage("Bad mote ID specified: " + moteNr); - } - MoteMemory memory = simulation.getMote(moteNr).getMemory(); - - // Read integer variable - if (type.equals("int")) { - if (variable == null) - return createErrorMessage("No variable name specified"); - if (variable.contains(" ")) - return createErrorMessage("Variable name must not contain spaces: " + variable); - - if (!(memory instanceof AddressMemory)) - return createErrorMessage("Can't read mote memory variables (not address memory)"); - - if (!((AddressMemory) memory).variableExists(variable)) { - return createErrorMessage("Variable does not exist: " + variable); - } - - int val = ((AddressMemory) memory).getIntValueOf(variable); - return XML_OK_START + val + XML_OK_END; - } else if (type.equals("variable")) { - if (variable == null) - return createErrorMessage("No variable name specified"); - if (variable.contains(" ")) - return createErrorMessage("Variable name must not contain spaces: " + variable); - - if (!(memory instanceof AddressMemory)) - return createErrorMessage("Can't read mote memory variables (not address memory)"); - - if (!((AddressMemory) memory).variableExists(variable)) { - return createErrorMessage("Variable does not exist: " + variable); - } - - if (size == null) - return createErrorMessage("No size specified"); - int sizeParsed = Integer.parseInt(size); - if (sizeParsed < 0) { - return createErrorMessage("Bad size specified: " + sizeParsed); - } - - byte[] val = ((AddressMemory) memory).getByteArray(variable, sizeParsed); - String ret = ""; - for (byte b: val) - ret += (int) (0xff&b) + " "; - ret = ret.trim(); - return XML_OK_START + ret + XML_OK_END; - } else if (type.equals("address")) { - - if (size == null) - return createErrorMessage("No size specified"); - int sizeParsed = Integer.parseInt(size); - if (sizeParsed < 0) { - return createErrorMessage("Bad size specified: " + sizeParsed); - } - - int addressParsed = Integer.parseInt(address); - if (addressParsed < 0) { - return createErrorMessage("Bad start address specified: " + addressParsed); - } - - byte[] val = memory.getMemorySegment(addressParsed, sizeParsed); - String ret = ""; - for (byte b: val) - ret += (int) (0xff&b) + " "; - ret = ret.trim(); - return XML_OK_START + ret + XML_OK_END; - } - - return createErrorMessage("Bad read memory type specified: " + type); - } - - /** - * Write mote variable value as specified by arguments. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String writeMemory(Collection arguments) { - Simulation simulation = myGUI.getSimulation(); - - String type = null; - String mote = null; - String variable = null; - String size = null; - String address = null; - String value = null; - - for (Element element : arguments) { - if (element.getName().equals(XML_TYPE_NAME)) { - type = element.getText(); - } else if (element.getName().equals(XML_MOTE_NAME)) { - mote = element.getText(); - } else if (element.getName().equals(XML_VARIABLE_NAME)) { - variable = element.getText(); - } else if (element.getName().equals(XML_SIZE_NAME)) { - size = element.getText(); - } else if (element.getName().equals(XML_ADDRESS_NAME)) { - address = element.getText(); - } else if (element.getName().equals(XML_VALUE_NAME)) { - value = element.getText(); - } else { - return createErrorMessage("Unknown write memory parameter: " + element.getName()); - } - } - - if (type == null) - return createErrorMessage("No write memory type specified"); - if (mote == null) - return createErrorMessage("No mote specified"); - - if (mote == null) - return createErrorMessage("No mote ID specified"); - int moteNr = Integer.parseInt(mote); - if (moteNr < 0 || simulation.getMotesCount() <= moteNr) { - return createErrorMessage("Bad mote ID specified: " + moteNr); - } - MoteMemory memory = simulation.getMote(moteNr).getMemory(); - - // Write integer variable - if (type.equals("int")) { - if (variable == null) - return createErrorMessage("No variable name specified"); - if (variable.contains(" ")) - return createErrorMessage("Variable name must not contain spaces: " + variable); - - if (!(memory instanceof AddressMemory)) - return createErrorMessage("Can't read mote memory variables (not address memory)"); - - if (!((AddressMemory) memory).variableExists(variable)) { - return createErrorMessage("Variable does not exist: " + variable); - } - - if (value == null) - return createErrorMessage("No value specified"); - if (value.contains(" ")) - return createErrorMessage("Integer value must not contain spaces: " + value); - - int val; - try { - val = Integer.parseInt(value); - } catch (NumberFormatException e) { - return createErrorMessage("Bad integer value specified: " + e); - } - - ((AddressMemory) memory).setIntValueOf(variable, val); - return XML_OK; - } else if (type.equals("variable")) { - if (variable == null) - return createErrorMessage("No variable name specified"); - if (variable.contains(" ")) - return createErrorMessage("Variable name must not contain spaces: " + variable); - - if (!(memory instanceof AddressMemory)) - return createErrorMessage("Can't read mote memory variables (not address memory)"); - - if (!((AddressMemory) memory).variableExists(variable)) { - return createErrorMessage("Variable does not exist: " + variable); - } - - if (size == null) - return createErrorMessage("No size specified"); - int sizeParsed = Integer.parseInt(size); - if (sizeParsed < 0) { - return createErrorMessage("Bad size specified: " + sizeParsed); - } - - if (value == null) - return createErrorMessage("No value specified"); - String[] bytesParsed = value.split(" "); - if (bytesParsed.length != sizeParsed) - return createErrorMessage("Number of bytes and specified size does not match: " + bytesParsed.length + "!=" + sizeParsed); - - byte[] val = new byte[bytesParsed.length]; - for (int i=0; i < sizeParsed; i++) { - val[i] = Byte.parseByte(bytesParsed[i]); - } - - ((AddressMemory) memory).setByteArray(variable, val); - return XML_OK; - } else if (type.equals("address")) { - - if (size == null) - return createErrorMessage("No size specified"); - int sizeParsed = Integer.parseInt(size); - if (sizeParsed < 0) { - return createErrorMessage("Bad size specified: " + sizeParsed); - } - - int addressParsed = Integer.parseInt(address); - if (addressParsed < 0) { - return createErrorMessage("Bad start address specified: " + addressParsed); - } - - if (value == null) - return createErrorMessage("No value specified"); - String[] bytesParsed = value.split(" "); - if (bytesParsed.length != sizeParsed) - return createErrorMessage("Number of bytes and specified size does not match: " + bytesParsed.length + "!=" + sizeParsed); - - byte[] val = new byte[bytesParsed.length]; - for (int i=0; i < sizeParsed; i++) { - val[i] = Byte.parseByte(bytesParsed[i]); - } - - memory.setMemorySegment(addressParsed, val); - return XML_OK; - } - - return createErrorMessage("Bad write memory type specified: " + type); - } - - /** - * Handle add new eventpoint command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String addEventpoint(Collection arguments) { - Simulation simulation = myGUI.getSimulation(); - - String type = null; - String mote = null; - String variable = null; - String time = null; - String size = null; - String triggeron = null; - String address = null; - String count = null; - - for (Element element : arguments) { - if (element.getName().equals(XML_TYPE_NAME)) { - type = element.getText(); - } else if (element.getName().equals(XML_MOTE_NAME)) { - mote = element.getText(); - } else if (element.getName().equals(XML_VARIABLE_NAME)) { - variable = element.getText(); - } else if (element.getName().equals(XML_TIME_NAME)) { - time = element.getText(); - } else if (element.getName().equals(XML_SIZE_NAME)) { - size = element.getText(); - } else if (element.getName().equals(XML_ADDRESS_NAME)) { - address = element.getText(); - } else if (element.getName().equals(XML_TRIGGERON_NAME)) { - triggeron = element.getText(); - } else if (element.getName().equals("count")) { - count = element.getText(); - } else { - return createErrorMessage("Unknown eventpoint parameter: " + element.getName()); - } - } - - logger.debug("Eventpoint type: " + type); - if (type == null) - return createErrorMessage("No eventpoint type specified"); - - // Integer variable watchpoint - if (type.equals(XML_WATCHPOINT_INT)) { - if (variable == null) - return createErrorMessage("No variable name specified"); - if (variable.contains(" ")) - return createErrorMessage("Variable name must not contain spaces: " + variable); - if (mote == null) - return createErrorMessage("No mote ID specified"); - int moteNr = Integer.parseInt(mote); - if (moteNr < 0 || simulation.getMotesCount() <= moteNr) { - return createErrorMessage("Bad mote ID specified: " + moteNr); - } - Mote moteObject = simulation.getMote(moteNr); - - MoteMemory memory = simulation.getMote(moteNr).getMemory(); - - if (!(memory instanceof AddressMemory)) - return createErrorMessage("Can't write mote memory variables (not address memory)"); - - if (!((AddressMemory) memory).variableExists(variable)) { - return createErrorMessage("Variable does not exist: " + variable); - } - - Eventpoint newEventpoint = new IntegerWatchpoint(moteObject, variable); - myEvaluator.addEventpoint(newEventpoint); - return createOkMessage(newEventpoint, simulation.getSimulationTime()); - } - - // Variable watchpoint - if (type.equals(XML_WATCHPOINT_VARIABLE)) { - if (variable == null) - return createErrorMessage("No variable name specified"); - if (variable.contains(" ")) - return createErrorMessage("Variable name must not contain spaces: " + variable); - if (mote == null) - return createErrorMessage("No mote ID specified"); - if (size == null) - return createErrorMessage("No size specified"); - int sizeParsed = Integer.parseInt(size); - if (sizeParsed < 0) { - return createErrorMessage("Bad size specified: " + sizeParsed); - } - int moteNr = Integer.parseInt(mote); - if (moteNr < 0 || simulation.getMotesCount() <= moteNr) { - return createErrorMessage("Bad mote ID specified: " + moteNr); - } - Mote moteObject = simulation.getMote(moteNr); - - MoteMemory memory = simulation.getMote(moteNr).getMemory(); - - if (!(memory instanceof AddressMemory)) - return createErrorMessage("Can't write mote memory variables (not address memory)"); - - if (!((AddressMemory) memory).variableExists(variable)) { - return createErrorMessage("Variable does not exist: " + variable); - } - - Eventpoint newEventpoint = new VariableWatchpoint(moteObject, variable, sizeParsed); - myEvaluator.addEventpoint(newEventpoint); - return createOkMessage(newEventpoint, simulation.getSimulationTime()); - } - - - // Memory area watchpoint - if (type.equals(XML_WATCHPOINT_ADDRESS)) { - if (mote == null) - return createErrorMessage("No mote ID specified"); - if (size == null) - return createErrorMessage("No size specified"); - int sizeParsed = Integer.parseInt(size); - if (sizeParsed < 0) { - return createErrorMessage("Bad size specified: " + sizeParsed); - } - int addressParsed = Integer.parseInt(address); - if (addressParsed < 0) { - return createErrorMessage("Bad start address specified: " + addressParsed); - } - int moteNr = Integer.parseInt(mote); - if (moteNr < 0 || simulation.getMotesCount() <= moteNr) { - return createErrorMessage("Bad mote ID specified: " + moteNr); - } - Mote moteObject = simulation.getMote(moteNr); - MoteMemory memory = simulation.getMote(moteNr).getMemory(); - - Eventpoint newEventpoint = new Watchpoint(moteObject, addressParsed, sizeParsed); - myEvaluator.addEventpoint(newEventpoint); - return createOkMessage(newEventpoint, simulation.getSimulationTime()); - } - - // Simulation timepoint - if (type.equals(XML_TIMEPOINT_SIMULATION)) { - if (time == null) - return createErrorMessage("No time specified"); - int timeParsed = Integer.parseInt(time); - if (timeParsed < 0) { - return createErrorMessage("Bad time specified: " + timeParsed); - } - - Eventpoint newEventpoint = new SimulationTimepoint(simulation, timeParsed); - myEvaluator.addEventpoint(newEventpoint); - return createOkMessage(newEventpoint, simulation.getSimulationTime()); - } - - // Real timepoint - if (type.equals(XML_TIMEPOINT_REAL)) { - if (time == null) - return createErrorMessage("No time specified"); - long timeParsed = Long.parseLong(time); - if (timeParsed < 0) { - return createErrorMessage("Bad time specified: " + timeParsed); - } - - Eventpoint newEventpoint = new RealTimepoint(timeParsed); - myEvaluator.addEventpoint(newEventpoint); - return createOkMessage(newEventpoint, simulation.getSimulationTime()); - } - - // Radio medium event point - if (type.equals(XML_EVENTPOINT_RADIOMEDIUM)) { - int countInt; - try { - countInt = Integer.parseInt(count); - } catch (NumberFormatException e) { - return createErrorMessage("Bad count specified: " + e); - } - - if (triggeron == null || triggeron.equals("all")) { - Eventpoint newEventpoint = new RadioMediumEventpoint(simulation.getRadioMedium(), countInt); - myEvaluator.addEventpoint(newEventpoint); - return createOkMessage(newEventpoint, simulation.getSimulationTime()); - } else if (triggeron.equals("completed")) { - Eventpoint newEventpoint = new TransmissionRadioMediumEventpoint(simulation.getRadioMedium(), countInt); - myEvaluator.addEventpoint(newEventpoint); - return createOkMessage(newEventpoint, simulation.getSimulationTime()); - } else { - return createErrorMessage("Bad trigger on parameter: " + triggeron); - } - } - - return createErrorMessage("Bad eventpoint type specified: " + type); - } - - /** - * Handle configure GUI command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String configureGUI(Collection arguments) { - String visible = null; - - for (Element element : arguments) { - if (element.getName().equals(XML_VISIBLE_NAME)) { - visible = element.getText(); - } else { - return createErrorMessage("Unknown GUI configure parameter: " + element.getName()); - } - } - - boolean shouldBeVisible = Boolean.parseBoolean(visible); - if (myGUI.isVisualized() != shouldBeVisible) { - myGUI.setVisualized(shouldBeVisible); - } - return XML_OK; - } - - /** - * Handle delete eventpoint command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String deleteEventpoint(Collection arguments) { - String id = null; - - for (Element element : arguments) { - if (element.getName().equals(XML_ID_NAME)) { - id = element.getText(); - } else { - return createErrorMessage("Unknown eventpoint parameter: " + element.getName()); - } - } - - int idInt; - try { - idInt = Integer.parseInt(id); - } catch (NumberFormatException e) { - return createErrorMessage("Bad eventpoint ID specified: " + e); - } - - Eventpoint eventpoint = myEvaluator.getEventpoint(idInt); - if (eventpoint == null) - return createErrorMessage("No eventpoint with ID " + idInt + " exists"); - - myEvaluator.deleteEventpoint(idInt); - return XML_OK; - } - - /** - * Handle kill nodes command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String killNodes(Collection arguments) { - String lowId = null; - String highId = null; - - for (Element element : arguments) { - if (element.getName().equals("lowmote")) { - lowId = element.getText(); - } else if (element.getName().equals("highmote")) { - highId = element.getText(); - } else { - return createErrorMessage("Unknown eventpoint parameter: " + element.getName()); - } - } - - int lowIdInt; - int highIdInt; - try { - lowIdInt = Integer.parseInt(lowId); - highIdInt = Integer.parseInt(highId); - } catch (NumberFormatException e) { - return createErrorMessage("Bad mote interval specified: " + e); - } - - if (lowIdInt > highIdInt) - return createErrorMessage("Bad mote interval specified: Low ID must be <= than high ID"); - - if (lowIdInt < 0) - return createErrorMessage("Bad mote interval specified: Low ID >= 0"); - - if (myGUI.getSimulation() == null) - return createErrorMessage("No simulation exists"); - - if (myGUI.getSimulation().getMotesCount() < highIdInt) - return createErrorMessage("Bad mote interval specified: Only " + myGUI.getSimulation().getMotesCount() + " motes exist"); - - for (int pos=lowIdInt; pos <= highIdInt; pos++) { - Mote mote = myGUI.getSimulation().getMote(pos); - mote.setState(State.DEAD); - } - return XML_OK; - } - - /** - * Handle get info command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String getInfo(Collection arguments) { - Simulation simulation = myGUI.getSimulation(); - String type = null; - String mote = null; - String variable = null; - - for (Element element : arguments) { - if (element.getName().equals(XML_TYPE_NAME)) { - type = element.getText(); - } else if (element.getName().equals(XML_MOTE_NAME)) { - mote = element.getText(); - } else if (element.getName().equals(XML_VARIABLE_NAME)) { - variable = element.getText(); - } else { - return createErrorMessage("Unknown info parameter: " + element.getName()); - } - } - - if (type.equals("motestate")) { - if (mote == null) - return createErrorMessage("No mote ID specified"); - int moteNr = Integer.parseInt(mote); - if (moteNr < 0 || simulation.getMotesCount() <= moteNr) { - return createErrorMessage("Bad mote ID specified: " + moteNr); - } - - State state = simulation.getMote(moteNr).getState(); - if (state == State.DEAD) - return XML_OK_START + 0 + XML_OK_END; - return XML_OK_START + 1 + XML_OK_END; - - } else if (type.equals("time")) { - return XML_OK_START + myGUI.getSimulation().getSimulationTime() + XML_OK_END; - } else if (type.equals(XML_MOTECOUNT_NAME)) { - return XML_OK_START + myGUI.getSimulation().getMotesCount() + XML_OK_END; - } else if (type.equals("var_address")) { - if (variable == null) - return createErrorMessage("No variable name specified"); - if (variable.contains(" ")) - return createErrorMessage("Variable name must not contain spaces: " + variable); - if (mote == null) - return createErrorMessage("No mote ID specified"); - int moteNr = Integer.parseInt(mote); - if (moteNr < 0 || simulation.getMotesCount() <= moteNr) { - return createErrorMessage("Bad mote ID specified: " + moteNr); - } - Mote moteObject = simulation.getMote(moteNr); - MoteMemory memory = simulation.getMote(moteNr).getMemory(); - - if (!(memory instanceof AddressMemory)) - return createErrorMessage("Can't read mote memory variable address (not address memory)"); - - if (!((AddressMemory) memory).variableExists(variable)) { - return createErrorMessage("Variable does not exist: " + variable); - } - - int address = ((AddressMemory) memory).getVariableAddress(variable); - return XML_OK_START + address + XML_OK_END; - } - - return createErrorMessage("Unknown type: " + type); - } - - - /** - * Handle custom command. - * - * @param arguments Command arguments - * @return Reply to client (XML format) - */ - private String handleCustomCommand(Collection arguments) { - Simulation simulation = myGUI.getSimulation(); - String action = null; - int id = -1; - int visible = -1; - int hide = -1; - - for (Element element : arguments) { - if (element.getName().equals("action")) { - action = element.getText(); - } else if (element.getName().equals("id")) { - String idString = element.getText(); - id = Integer.parseInt(idString); - } else if (element.getName().equals("hide")) { - String hideString = element.getText(); - hide = Integer.parseInt(hideString); - } else if (element.getName().equals("visible")) { - String visibleString = element.getText(); - visible = Integer.parseInt(visibleString); - } else { - return createErrorMessage("Unknown info parameter: " + element.getName()); - } - } - - if (action.equals("CLICK_SINK")) { - simulation.getMote(0).getInterfaces().getButton().clickButton(); - return XML_OK; - } - - if (action.equals("SHOW_FIRE")) { - if (!simulation.getGUI().isVisualized()) - return XML_OK; - - JInternalFrame[] allPlugins = simulation.getGUI().getDesktopPane().getAllFrames(); - - try { - Class pluginClass = (Class) simulation.getGUI().tryLoadClass(this, Visualizer2D.class, "se.sics.runes.RunesVis"); - Class[] parameterTypes = new Class[1]; - parameterTypes[0] = Boolean.TYPE; - Method method = pluginClass.getMethod("showFire", parameterTypes); - Object[] parameterArguments = new Object[1]; - parameterArguments[0] = new Boolean(visible==1?true:false); - - for (JInternalFrame plugin: allPlugins) { - if (plugin.getClass() == pluginClass) { - method.invoke(plugin, parameterArguments); - } - } - - } catch (Exception e) { - return createErrorMessage("Exception: " + e.getMessage()); - } - return XML_OK; - } - - if (action.equals("RESET_COLORS")) { - if (!simulation.getGUI().isVisualized()) - return XML_OK; - - JInternalFrame[] allPlugins = simulation.getGUI().getDesktopPane().getAllFrames(); - - try { - Class pluginClass = (Class) simulation.getGUI().tryLoadClass(this, Visualizer2D.class, "se.sics.runes.RunesVis"); - Class[] parameterTypes = new Class[0]; - Method method = pluginClass.getMethod("resetColors", parameterTypes); - Object[] parameterArguments = new Object[0]; - - for (JInternalFrame plugin: allPlugins) { - if (plugin.getClass() == pluginClass) { - method.invoke(plugin, parameterArguments); - } - } - - } catch (Exception e) { - return createErrorMessage("Exception: " + e.getMessage()); - } - return XML_OK; - } - - if (action.equals("SHOW_TRUCK")) { - if (!simulation.getGUI().isVisualized()) - return XML_OK; - - JInternalFrame[] allPlugins = simulation.getGUI().getDesktopPane().getAllFrames(); - - try { - Class pluginClass = (Class) simulation.getGUI().tryLoadClass(this, Visualizer2D.class, "se.sics.runes.RunesVis"); - - if (hide == 0) { - Class[] parameterTypes = new Class[0]; - Method method = pluginClass.getMethod("showTruck", parameterTypes); - Object[] parameterArguments = new Object[0]; - - for (JInternalFrame plugin: allPlugins) { - if (plugin.getClass() == pluginClass) { - method.invoke(plugin, parameterArguments); - } - } - } else { - Class[] parameterTypes = new Class[0]; - Method method = pluginClass.getMethod("hideTruck", parameterTypes); - Object[] parameterArguments = new Object[0]; - - for (JInternalFrame plugin: allPlugins) { - if (plugin.getClass() == pluginClass) { - method.invoke(plugin, parameterArguments); - } - } - } - - } catch (Exception e) { - return createErrorMessage("Exception: " + e.getMessage()); - } - return XML_OK; - } - - if (action.equals("INDICATE_MOTE")) { - if (!simulation.getGUI().isVisualized()) - return XML_OK; - - JInternalFrame[] allPlugins = simulation.getGUI().getDesktopPane().getAllFrames(); - - try { - Class pluginClass = (Class) simulation.getGUI().tryLoadClass(this, Visualizer2D.class, "se.sics.runes.RunesVis"); - Class[] parameterTypes = new Class[1]; - parameterTypes[0] = Integer.TYPE; - Method method = pluginClass.getMethod("indicateMote", parameterTypes); - Object[] parameterArguments = new Object[1]; - parameterArguments[0] = new Integer(id); - - for (JInternalFrame plugin: allPlugins) { - if (plugin.getClass() == pluginClass) { - method.invoke(plugin, parameterArguments); - } - } - - } catch (Exception e) { - return createErrorMessage("Exception: " + e.getMessage()); - } - return XML_OK; - } - - - return createErrorMessage("Unknown action: " + action); - } - - /** - * Handle clear eventpoints command. - * - * @return Reply to client (XML format) - */ - private String clearEventpoints() { - myEvaluator.clearAllEventpoints(); - return XML_OK; - } - - public static String createErrorMessage(String message) { - return XML_ERROR_START + message + XML_ERROR_END; - } - - public static String createInfoMessage(String message) { - return XML_INFO_START + message + XML_INFO_END; - } - - public static String createOkMessage(Eventpoint eventpoint, int time) { - return XML_OK_START + eventpoint.getID() + XML_OK_END; - } - - public static String createEventpointMessage(EventpointEvaluator evaluator) { - return XML_EVENTPOINT_START + - evaluator.getLastTriggeredEventpointID() + - XML_INFO_START + - evaluator.getTriggeredEventpoint().getMessage() + - XML_INFO_END + - XML_EVENTPOINT_END; - } -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Eventpoint.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Eventpoint.java deleted file mode 100644 index bbca9d7db..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Eventpoint.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. 2. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. 3. Neither the name of the - * Institute nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: Eventpoint.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana.eventpoints; - -public interface Eventpoint { - - /** - * Evaluates eventpoint. - * - * @return True if eventpoint triggered, false otherwise - */ - public boolean evaluate(); - - /** - * @return Optional information of triggered eventpoint - */ - public String getMessage(); - - /** - * @param id Eventpoint ID - */ - public void setID(int id); - - /** - * @return Unique eventpoint ID - */ - public int getID(); - -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/IntegerWatchpoint.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/IntegerWatchpoint.java deleted file mode 100644 index a615ce2d1..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/IntegerWatchpoint.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. 2. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. 3. Neither the name of the - * Institute nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: IntegerWatchpoint.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana.eventpoints; - -import se.sics.cooja.Mote; - -/** - * TODO Document - * - * @author Fredrik Osterlind - */ -public class IntegerWatchpoint extends VariableWatchpoint { - public IntegerWatchpoint(Mote mote, String varName) { - super(mote, varName, 4); - } -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/RadioMediumEventpoint.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/RadioMediumEventpoint.java deleted file mode 100644 index 2053c8cae..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/RadioMediumEventpoint.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. 2. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. 3. Neither the name of the - * Institute nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: RadioMediumEventpoint.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana.eventpoints; - -import java.util.Observable; -import java.util.Observer; - -import se.sics.cooja.RadioMedium; - -/** - * Triggers if radio medium changes - * - * @author Fredrik Osterlind - */ -public class RadioMediumEventpoint implements Eventpoint { - protected boolean shouldBreak = false; - private int myID = 0; - protected RadioMedium radioMedium; - private int count = 1; - - public RadioMediumEventpoint(RadioMedium radioMedium) { - if (radioMedium == null) { - // TODO Throw exception - return; - } - - this.radioMedium = radioMedium; - - // Register as radio medium observer - radioMedium.addRadioMediumObserver(new Observer() { - public void update(Observable obs, Object obj) { - handleRadioMediumChange(); - } - }); - } - - public RadioMediumEventpoint(RadioMedium radioMedium, int count) { - this(radioMedium); - this.count = count; - } - - protected void handleRadioMediumChange() { - count--; - if (count < 1) - shouldBreak = true; - } - - public String getMessage() { - return "Radio medium changed"; - } - - public boolean evaluate() { - return shouldBreak; - } - - public void setID(int id) { - myID = id; - } - - public int getID() { - return myID; - } -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/RealTimepoint.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/RealTimepoint.java deleted file mode 100644 index 501ea193c..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/RealTimepoint.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. 2. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. 3. Neither the name of the - * Institute nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: RealTimepoint.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana.eventpoints; - -/** - * TODO Document - * - * @author Fredrik Osterlind - */ -public class RealTimepoint implements Timepoint { - private int myID = 0; - private long endTime; - - private String message; - - /** - * TODO Document - * - * TODO Use timer instead, much faster! - * - * @param time Duration in milliseconds - */ - public RealTimepoint(long time) { - this.endTime = System.currentTimeMillis() + time; - } - - public boolean evaluate() { - if (System.currentTimeMillis() >= endTime) { - message = "Real time = " + System.currentTimeMillis() + " >= " + endTime; - return true; - } - return false; - } - - public String getMessage() { - return message; - } - - public String toString() { - return "Real timepoint: " + endTime; - } - - public void setID(int id) { - myID = id; - } - - public int getID() { - return myID; - } -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/SimulationTimepoint.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/SimulationTimepoint.java deleted file mode 100644 index 0fb4f520a..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/SimulationTimepoint.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. 2. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. 3. Neither the name of the - * Institute nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: SimulationTimepoint.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana.eventpoints; - -import se.sics.cooja.Simulation; - -/** - * TODO Document - * - * @author Fredrik Osterlind - */ -public class SimulationTimepoint implements Timepoint { - private int myID = 0; - private Simulation simulation; - private int time; - - private String message; - - /** - * TODO Document - * - * @param simulation - * @param time - */ - public SimulationTimepoint(Simulation simulation, int time) { - this.simulation = simulation; - this.time = time; - } - - public boolean evaluate() { - if (simulation.getSimulationTime() >= time) { - message = "Simulation time = " + simulation.getSimulationTime() + " >= " + time; - return true; - } - return false; - } - - public String getMessage() { - return message; - } - - public String toString() { - return "Simulation timepoint: " + time; - } - - public void setID(int id) { - myID = id; - } - - public int getID() { - return myID; - } -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Timepoint.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Timepoint.java deleted file mode 100644 index da1740c6d..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Timepoint.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. 2. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. 3. Neither the name of the - * Institute nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: Timepoint.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana.eventpoints; - -/** - * A timepoint triggers at and after a given time. - * - * @author Fredrik Osterlind - */ -public interface Timepoint extends Eventpoint { -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/TransmissionRadioMediumEventpoint.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/TransmissionRadioMediumEventpoint.java deleted file mode 100644 index b45f5132f..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/TransmissionRadioMediumEventpoint.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. 2. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. 3. Neither the name of the - * Institute nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: TransmissionRadioMediumEventpoint.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana.eventpoints; - -import se.sics.cooja.RadioMedium; - -/** - * Triggers when a radio medium transmission has been completed - * - * @author Fredrik Osterlind - */ -public class TransmissionRadioMediumEventpoint extends RadioMediumEventpoint { - private String message = ""; - private int count = 1; - - public TransmissionRadioMediumEventpoint(RadioMedium radioMedium) { - super(radioMedium); - } - - public TransmissionRadioMediumEventpoint(RadioMedium radioMedium, int count) { - this(radioMedium); - this.count = count; - } - - protected void handleRadioMediumChange() { - if (radioMedium.getLastTickConnections() != null) { - count -= radioMedium.getLastTickConnections().length; - if (count < 1) { - shouldBreak = true; - message = radioMedium.getLastTickConnections().length + " transmissions were completed"; - } - } - } - - public String getMessage() { - return message; - } - -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/VariableWatchpoint.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/VariableWatchpoint.java deleted file mode 100644 index 5bd081cdb..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/VariableWatchpoint.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. 2. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. 3. Neither the name of the - * Institute nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: VariableWatchpoint.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana.eventpoints; - -import se.sics.cooja.Mote; -import se.sics.cooja.SectionMoteMemory; - -/** - * TODO Document - * - * @author Fredrik Osterlind - */ -public class VariableWatchpoint extends Watchpoint { - private Mote mote; - private String name; - - private String reason; - - public VariableWatchpoint(Mote mote, String variableName, int size) { - super(mote, ((SectionMoteMemory) mote.getMemory()) - .getVariableAddress(variableName), size); - this.mote = mote; - this.name = variableName; - } - - public boolean evaluate() { - boolean shouldBreak = super.evaluate(); - - if (shouldBreak) { - reason = "Variable '" + name + "' changed"; - } - return shouldBreak; - } - - public String getMessage() { - return reason; - } - - public String toString() { - return "Variable watchpoint: " + name + " @ " + mote; - } -} diff --git a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Watchpoint.java b/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Watchpoint.java deleted file mode 100644 index a9893abf7..000000000 --- a/backyard/tools/chakana/cooja_plugin/java/se/sics/chakana/eventpoints/Watchpoint.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. 2. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. 3. Neither the name of the - * Institute nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id: Watchpoint.java,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - */ - -package se.sics.chakana.eventpoints; - -import java.util.Arrays; -import org.apache.log4j.Logger; - -import se.sics.cooja.Mote; - -/** - * A watchpoint watches a memory area, such as a variable, and triggers at changes. - * - * @author Fredrik Osterlind - */ -public class Watchpoint implements Eventpoint { - private static Logger logger = Logger.getLogger(Watchpoint.class); - private int myID = 0; - - private Mote mote; - private int address; - private int size; - byte[] initialMemory; - - private String reason; - - public Watchpoint(Mote mote, int address, int size) { - this.mote = mote; - this.address = address; - this.size = size; - - logger.debug("Fetching initial memory"); - initialMemory = mote.getMemory().getMemorySegment(address, size); - - // TODO Throw exception if memory area not valid - } - - public boolean evaluate() { - byte[] currentMemory = mote.getMemory().getMemorySegment(address, size); - boolean shouldBreak = !Arrays.equals(initialMemory, currentMemory); - - if (shouldBreak) { - reason = "Memory interval " + "0x" + Integer.toHexString(address) + ":" + size + " changed"; - } - return shouldBreak; - } - - public String getMessage() { - return reason; - } - - public String toString() { - return "Memory change breakpoint: " + "0x" + Integer.toHexString(address) + ":" + size + " @ " + mote; - } - - public void setID(int id) { - myID = id; - } - - public int getID() { - return myID; - } -} diff --git a/backyard/tools/chakana/debug.py b/backyard/tools/chakana/debug.py deleted file mode 100644 index 69f476ee1..000000000 --- a/backyard/tools/chakana/debug.py +++ /dev/null @@ -1,279 +0,0 @@ -# -# Copyright (C) 2003-2007 Swedish Institute of Computer Science. -# -# Please refer to the file named LICENSE in the same directory as this -# file for licensing information. -# - -# $Id: debug.py,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - -import inspect -import os -import sys -import threading -import StringIO - -DebugMin = 0 -Always = 0 -Fatal = 1 -Critical = 2 -Error = 3 -Warning = 4 -Check = 5 -Information = 6 -MajorEvent = 7 -Event = 8 -MinorEvent = 9 -Debug = 10 -Debug2 = 11 -Debug3 = 12 -Debug4 = 13 -Disabled = 14 -DebugMax = 15 - -DefaultDebugLevel = Information - -def levelName(level): - for (varName, value) in globals().items(): - if not varName in ("DebugMin", "DebugMax"): - if value == level: - return varName - return "Unknown" - -class DebugSingleton: - def __init__(self, output = sys.stderr, defaultLevel = DefaultDebugLevel, - logLevel = Debug4): - self.maxBufferLen = 1024 * 1024 - self.__level = defaultLevel - self.__output = output - self.__logBuffer = [] - self.__logBufferSize = 0 - self.__logLevel = Debug4 - self.__logFile = None - self.__logFileName = None - self.__lock = threading.RLock() - self._transformers = [] - - def level(self): - return self.__level - - def setLog(self, fileName): - assert(not self.__logBuffer is None) - if not fileName is None: - self.__logFileName = fileName - self.__logFile = open(fileName, "w") - self.__logFile.write("".join(self.__logBuffer)) - self.write(MajorEvent, "Saving debug log in " + fileName + "\n") - self.__logBuffer = None - - def logFileName(self): - return self.__logFileName - - def logLevel(self): - return self.__logLevel - - def cleanLog(self): - self.setLog(None) - - def setLogLevel(self, level): - self.__logLevel = level - self.write(MinorEvent, "Changed debug log verbosity to " + - levelName(self.__logLevel) + " (" + - str(self.__logLevel) + ")\n") - - def setLevel(self, level): - self.__level = level - if self.__level < Always: - self.__level = Always - if self.__level >= Disabled: - self.__level = Disabled - 1 - self.write(MinorEvent, "Changed debug verbosity to " + - levelName(self.__level) + " (" + str(self.__level) + ")\n") - - def increaseLevel(self, amount = 1): - self.setLevel(self.level() + amount) - - def decreaseLevel(self, amount = 1): - self.increaseLevel(- amount) - - def write(self, level, * messages): - """Write messages if current verbosity level >= level. Messages should - either be callable functors taking a writer function parameter, or they - should be strings or convertible to strings.""" - - writers = [] - if self.level() >= level: - writers.append(self.__output.write) - if self.logLevel() >= level: - writers.append(self.logWrite) - if writers != []: - self.__lock.acquire() - try: - for writer in writers: - writer(self.transform(level = level, - message = self.format(messages))) - finally: - self.__lock.release() - - def format(self, messages): - buf = StringIO.StringIO() - for msg in messages: - if callable(msg): - msg(buf.write) - else: - buf.write(msg) - return buf.getvalue() - - def transform(self, level, message): - for transform in self._transformers: - message = transform(level = level, message = message) - return message - - def writer(self, level): - return lambda what: self.write(level, what) - - def logWrite(self, what): - if self.__logFile is None: - if not self.__logBuffer is None: - self.__logBuffer.append(what) - self.__logBufferSize += len(what) - if self.__logBufferSize > self.maxBufferLen: - self.__logBuffer = None - self.write(Warning, "Cleaned log buffer since it overflowed " + - str(self.maxBufferLen) + " bytes\n") - else: - self.__logFile.write(what) - self.__logFile.flush() - - def pushTransformer(self, transformer): - assert(callable(transformer)) - if not transformer in self._transformers: - self._transformers.append(transformer) - -debugStream = DebugSingleton() - -def debug(level, message): - debugStream.write(level, message, "\n") - - -class DebugDumper: - def __init__(self): - pass - - def __call__(self, writer): - raise NotImplementedError() - - def __add__(self, other): - return DebugCombiner(self, other) - - def __radd__(self, other): - return DebugCombiner(other, self) - - -class DebugCombiner: - def __init__(self, first, second): - self.__first = first - self.__second = second - - def __call__(self, writer): - for elem in [self.__first, self.__second]: - if callable(elem): - elem(writer) - else: - writer(str(elem)) - -class DebugFile: - def __init__(self): - self.__str = "" - - def write(self, msg): - self.__str += msg - - def __str__(self): - return self.__str - -DebugStderr = DebugFile - -def exceptionDump((type, value, traceback)): - """Print an exception stack trace to DebugStderr(). Pass - sys.exc_info() as parameter.""" - if type is None: - return "" - oldStderr = sys.stderr - debugStderr = DebugStderr() - sys.stderr = debugStderr - sys.__excepthook__(type, value, traceback) - sys.stderr = oldStderr - return str(debugStderr) - -def exceptionMessage((type, value, traceback)): - import urllib2 - if isinstance(value, urllib2.HTTPError): - return str(value) + ": " + value.filename - else: - return str(value) - -class CallTracer: - def __init__(self, level, prefix = lambda f, e, a: "", traceSystem = 0, - traceDebug = 0): - self._level = level - self._prefix = prefix - self._traceSystem = traceSystem - self._traceDebug = traceDebug - - def indent(self, frame): - stack = inspect.stack() - depth = len(stack) - 4 - assert(depth >= 0) - while len(stack) > 0: - del stack[0] - del stack - return " " * depth - - def prefix(self, frame, event, arg): - return self._prefix(frame, event, arg) + self.indent(frame) - - def inDebugCode(self, frame): - if frame is None: - return 0 - if os.path.basename(frame.f_code.co_filename) == "debug.py": - ret = 1 - else: - ret = self.inDebugCode(frame.f_back) - del frame - return ret - - def __call__(self, frame, event, arg): - if frame.f_back is None: - callerDir = "" - else: - callerDir = os.path.dirname(frame.f_back.f_code.co_filename) - sourceFile = os.path.basename(frame.f_code.co_filename) - funcName = sourceFile + ":" + frame.f_code.co_name + "()" - if (not self._traceDebug) and self.inDebugCode(frame): - return None - if self._traceSystem or \ - not (callerDir.startswith(sys.prefix + "/lib/python")): - if event == "call": - debug(self._level, self.prefix( - frame = frame, event = event, arg = arg) + "-> " + funcName) - elif event == "return": - debug(self._level, self.prefix( - frame = frame, event = event, arg = arg) + "<- " + funcName) - elif event == "exception": - debug(self._level, self.prefix( - frame = frame, event = event, arg = arg) + "X " + funcName) - return self - -def pidPrefix(message = "", ** kwArgs): - return str(os.getpid()) + ": " + message - -def threadPrefix(message = "", ** kwArgs): - return threading.currentThread().getName() + ": " + message - -def objectAsString(obj): - names = [(name, value) for name,value in vars(obj).iteritems()] - names.insert(0,("Instace of", obj.__class__.__name__)) - max_length = len(max([name for (name, value) in names])) - return "\n".join([name.rjust(max_length) + ": " + str(value) for (name,value) in names]) - diff --git a/backyard/tools/chakana/error.py b/backyard/tools/chakana/error.py deleted file mode 100644 index 10879419f..000000000 --- a/backyard/tools/chakana/error.py +++ /dev/null @@ -1,89 +0,0 @@ -# -# Copyright (C) 2003-2007 Swedish Institute of Computer Science. -# -# Please refer to the file named LICENSE in the same directory as this -# file for licensing information. -# - -# $Id: error.py,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - -import errno -import os - -import chakana.debug - -class Error(Exception): - def __init__(self, message): - Exception.__init__(self, message) - -class CommandFailed(Error): - """Exception thrown when a system command fails. The command string, - environment, working directory, output, and exit status are recorded. - The exit status is typically the value returned by os.system, but may - also be an exception, for example an error.Timeout object.""" - - def __init__(self, command, status, output): - Error.__init__(self, "Command failed with exit code " + str(status) + - ": " + command + "\n" + "Output:\n" + output + "\ncwd: " + - os.getcwd() + "\n") - self._command = command - self._status = status - self._output = output - self._environ = os.environ.copy() - self._cwd = os.getcwd() - - def command(self): - return self._command - - def status(self): - return self._status - - def output(self): - return self._output - - def environ(self): - return self._environ - - def cwd(self): - return self._cwd - -class SanityCheckFailed(Error): - def __init__(self, message): - Error.__init__(self, "Sanity check failed: " + message) - -class NoSuchProcess(OSError): - def __init__(self): - OSError.__init__(self, errno.ESRCH, "No such process") - -class Timeout(Error): - def __init__(self, child, timeout): - Error.__init__(self, "Timeout (" + str(timeout) + " s) executing " + - child.getName()) - self.child = child - self.timeout = timeout - -class Discarded(Error): - def __init__(self): - Error.__init__(self, "Monitor was discarded") - -class ChildException(Error): - def __init__(self, error, exc_info): - Error.__init__(self, "Exception in child thread: " + str(error) + - ":\n" + chakana.debug.exceptionDump(exc_info)) - self.error = error - self.exc_info = exc_info - -class CoojaError(Error): - def __init__(self, response): - Error.__init__(self, "COOJA error: " + - response.documentElement.childNodes[0].nodeValue) - -class CoojaExit(Error): - def __init__(self): - Error.__init__(self, "COOJA has exited") - -def errnoError(errNum, fileName = None): - if isinstance(errNum, str): - return errnoError(getattr(errno, errNum), fileName) - return OSError(errNum, os.strerror(errNum), fileName) - diff --git a/backyard/tools/chakana/event.py b/backyard/tools/chakana/event.py deleted file mode 100644 index 8e0c92631..000000000 --- a/backyard/tools/chakana/event.py +++ /dev/null @@ -1,175 +0,0 @@ -import time -import thread - -from debug import * -import threads - -class Eventpoint(threads.ManagedThread): - - """ The Eventpoint class and its subclasses represent important events - happening in the debugged system, and are the primitives that Chakana - debugging scripts are based around. When the user calls waitFor with an - Eventpoint list argument, each Eventpoint thread is started. The - Eventpoint inserts appropriate eventpoints into COOJA or creates child - Eventpoints. An Eventpoint that is hit posts itself on a trigger queue - (Queue.Queue), where it is picked up by waitFor. The Eventpoints that - have not been triggered are then discarded by the waitFor routine.""" - - def __init__(self, shepherd): - threads.ManagedThread.__init__(self, shepherd.threadManager()) - self._shepherd = shepherd - self._activated = 0 - self._discarded = 0 - self._triggerQueue = None - - resourceAllocated = 0 - while resourceAllocated == 0: - try: - self._isWaitingEvent = threading.Event() - resourceAllocated = 1 - except thread.error: - resourceAllocated = 0 - shepherd.threadManager().registerPIDerror() - - def await(self, triggerQueue): - assert not self._activated, "Eventpoints can only be used once" - self._triggerQueue = triggerQueue - self._activated = 1 - self.activatedHook() - self.start() - - def doRun(self): - debug(Debug, "Waiting for event: " + repr(self)) - if not self._discarded: - self.doWait() - debug(MinorEvent, "Event was triggered: " + repr(self)) - if not self._discarded: - self._triggerQueue.put(self) - else: - debug(Debug, "Event is no longer waited for: " + repr(self)) - - def activatedHook(self): - pass - - def doWait(self): - raise NotImplementedError() - - def discard(self): - debug(Debug, "Discarding eventpoint:\n" + repr(self)) - self._discarded = 1 - if (not self._activated): - self.start() - for (waitingEv, event) in self.shepherd()._waitMap.values(): - if waitingEv == self: - event.set() - self.join() - - def isDiscarded(self): - return self._discarded - - def shepherd(self): - return self._shepherd - - def __repr__(self): - return "\n ".join([ - "event.Eventpoint:", - "Id: %#x" % ((id(self) + (long(1) << 32)) % (long(1) << 32)), - ]) - -class BasicEventpoint(Eventpoint): - """Eventpoint corresponding to a single COOJA Eventpoint.""" - - def __init__(self, shepherd, ** kwArgs): - Eventpoint.__init__(self, shepherd, ** kwArgs) - - def activatedHook(self): - self.shepherd().registerBasicEventpoint(self) - - def doWait(self): - self.shepherd().waitForCoojaEventpoint(self) - self.shepherd().unregisterBasicEventpoint(self) - -class Watchpoint(BasicEventpoint): - def __init__(self, shepherd, type, mote, variable, ** kwArgs): - self._type = type - self._mote = mote - self._variable = variable - BasicEventpoint.__init__(self, shepherd, ** kwArgs) - - def coojaArguments(self): - return { "type" : self._type, - "mote" : self._mote, - "variable" : self._variable } - - def __repr__(self): - return "\n ".join([ - BasicEventpoint.__repr__(self), - "event.Watchpoint:", - "Type: " + repr(self._type), - "Mote: " + repr(self._mote), - "Variable: " + repr(self._variable) - ]) - -class TimeEventpoint(BasicEventpoint): - def __init__(self, shepherd, time, ** kwArgs): - self._time = time - BasicEventpoint.__init__(self, shepherd, ** kwArgs) - - def coojaArguments(self): - return { "type" : "time", - "time" : self._time } - - def __repr__(self): - return "\n ".join([ - BasicEventpoint.__repr__(self), - "event.TimeEventpoint:", - "Time: " + repr(self._time) - ]) - - -class RadioMessageCompletedEventpoint(BasicEventpoint): - def __init__(self, shepherd, count = 1, ** kwArgs): - self._count = count - BasicEventpoint.__init__(self, shepherd, ** kwArgs) - - def coojaArguments(self): - return { "type" : "radiomedium", - "triggeron" : "completed", - "count" : str(self._count) } - - def __repr__(self): - return "\n ".join([ - BasicEventpoint.__repr__(self), - "event.RadioMessageCompletedEventpoint", - ]) - -class MonitorEventpoint(Eventpoint): - """Eventpoint that triggers after a monitor has finished.""" - - def __init__(self, monitor): - self._monitor = monitor - Eventpoint.__init__(self, monitor.shepherd()) - - def doWait(self): - debug(Debug, "MonitorEventpoint starting " + repr(self)) - self._monitor.startMonitor() - self._monitor.waitMonitor(self) - - def discard(self): - self._discarded = 1 - self._monitor.discard() - if (not self._activated): - self.start() - self._monitor.startMonitor() - self._monitor.waitMonitor(self) - else: - self._monitor.waitMonitor(self) - self.join() - - def __repr__(self): - return "\n ".join([ - Eventpoint.__repr__(self), - "event.MonitorEventpoint:", - "Monitor: " + repr(self._monitor) - ]) - diff --git a/backyard/tools/chakana/harness.py b/backyard/tools/chakana/harness.py deleted file mode 100644 index ec06ffb45..000000000 --- a/backyard/tools/chakana/harness.py +++ /dev/null @@ -1,126 +0,0 @@ -import errno -import os -import re -import time - -import chakana.command -import chakana.error -import chakana.shepherd -import chakana.threads -import chakana.utils - -from chakana.debug import * - -class Harness: - def __init__(self, chakanaRoot, coojaTimeout, doCompile="True", withGUI="False"): - self._chakanaRoot = os.path.abspath(chakanaRoot) - self._coojaTimeout = coojaTimeout - self._threadManager = chakana.threads.ThreadManager() - self._doCompile = doCompile - self._withGUI = withGUI - debug(MajorEvent, "Chakana harness created") - - def start(self): - port = self.startCooja() - self._shepherd = chakana.shepherd.Shepherd(self._threadManager, port) - - def startCooja(self): - # COMPILE COOJA AND PLUGIN - if self._doCompile == "True": - for target in ("cooja", "plugin"): - buildCommand = 'cd ' + chakana.command.quote(self._chakanaRoot) + ' && ant compile_' + target - debug(MajorEvent, "Building " + target) - debug(Event, buildCommand) - output = chakana.command.output(buildCommand) - debug(MinorEvent, output) - - coojaOutputFile = os.path.join(self._chakanaRoot, "build/cooja.out") - # START COOJA - - if os.path.isfile(coojaOutputFile): - os.remove(coojaOutputFile) - coojaThread = CoojaThread(self._threadManager, self._chakanaRoot, - coojaOutputFile, self._coojaTimeout, withGUI=self._withGUI) - coojaThread.start() - return coojaThread.port() - - def shepherd(self): - return self._shepherd - - def quit(self): - self._shepherd.quit() - - def killAllProcesses(self): - self._threadManager.killAll() - - def waitForAllThreads(self, timeout): - self._threadManager.waitAll(timeout) - -class CoojaThread(chakana.threads.ManagedThread): - def __init__(self, threadManager, chakanaRoot, outputFile, - timeout = 3600, name = "COOJA", withGUI="False", ** kwArgs): - chakana.threads.ManagedThread.__init__( - self, threadManager, name = name, **kwArgs) - self._chakanaRoot = chakanaRoot - self._outputFile = outputFile - self._timeout = timeout - self._port = None - self._withGUI = withGUI - - def doRun(self): - debug(MajorEvent, "Starting COOJA") - buildDir = os.path.dirname(self._outputFile) - chakana.utils.makeDirsSafe(buildDir) - contikiRoot = os.path.join(self._chakanaRoot, '../..') - contikiRoot = contikiRoot.replace('/cygdrive/c', 'c:') - if self._withGUI == "True": - coojaCommand = '( cd ' + chakana.command.quote(buildDir) + ' && java -jar ' + \ - chakana.command.quote(os.path.join(contikiRoot, 'tools/cooja/dist/cooja.jar')) + ' ' + \ - '-external_tools_config=../cooja.chakana.properties ' + \ - '-contiki=' + chakana.command.quote(contikiRoot) + ' < /dev/null > ' + \ - os.path.basename(self._outputFile) + ' 2>&1 )' - else: - coojaCommand = '( cd ' + chakana.command.quote(buildDir) + ' && java -jar ' + \ - chakana.command.quote(os.path.join(contikiRoot, 'tools/cooja/dist/cooja.jar')) + ' ' + \ - '-nogui ' + \ - '-external_tools_config=../cooja.chakana.properties ' + \ - '-contiki=' + chakana.command.quote(contikiRoot) + ' < /dev/null > ' + \ - os.path.basename(self._outputFile) + ' 2>&1 )' - - debug(Event, coojaCommand) - os.system(coojaCommand) - debug(MajorEvent, "COOJA has finished") - - def port(self): - if self._port is None: - laps = 0 - debug(Event, "Waiting for COOJA to open server socket") - debug(Debug, "Reading: " + self._outputFile) - while 1: - if self._timeout > 0 and laps > self._timeout: - raise chakana.error.Timeout(self, self._timeout) - logContents = "" - try: - logContents = chakana.utils.readFile(self._outputFile) - except IOError, err: - if err.errno != errno.ENOENT: - raise - match = re.search(r"Chakana server listening on port (\d+).", - logContents) - debug(Debug, "Log contents: " + logContents) - if match: - self._port = int(match.group(1)) - debug(Event, "COOJA is now listening on port " + str(self._port)) - break - else: - debug(Debug, "Waiting for COOJA to start") - time.sleep(1) - laps += 1 - - match = re.search(r"Unable to access jarfile", - logContents) - if match: - raise RuntimeError("Could not locate COOJA JAR: " + logContents) - - return self._port - diff --git a/backyard/tools/chakana/linux.py b/backyard/tools/chakana/linux.py deleted file mode 100644 index 7190ec9bf..000000000 --- a/backyard/tools/chakana/linux.py +++ /dev/null @@ -1,268 +0,0 @@ -# -# Copyright (C) 2004-2007 Swedish Institute of Computer Science. -# -# Please refer to the file named LICENSE in the same directory as this -# file for licensing information. -# - - -# $Id: linux.py,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - -import errno -import glob -import os -import re -import signal -import string -import time - -import chakana.command -import chakana.error -import chakana.utils - -from debug import * - -def numProcessors(physical = 0, cpuInfo = None): - return Host().CpuInfo(cpuInfo).count(physical = physical) - -class CpuInfo: - "Parser for /proc/cpuinfo." - def __init__(self, cpuInfo = None): - if cpuInfo is None: - cpuInfo = chakana.utils.readFile("/proc/cpuinfo") - self.__values = [map(string.strip, l.split(":")) - for l in cpuInfo.splitlines()] - - def values(self): - return self.__values - - def find(self, name): - debug(Debug3, "Looking for " + name + " in cpuinfo:") - ret = [val[1] for val in self.values() if val[0] == name] - debug(Debug3, repr(ret)) - return ret - -class IfconfigInfo: - "Parser for ifconfig output." - def __init__(self, ifconfigOutput = None): - if ifconfigOutput is None: - self._ifconfigOutput = chakana.command.output("/sbin/ifconfig") - else: - self._ifconfigOutput = ifconfigOutput - - def interfaces(self): - return map(InterfaceInfo, - re.compile("^\\w+", re.M).findall(self._ifconfigOutput)) - -class InterfaceInfo: - "Parser for ifconfig output for a single interface." - def __init__(self, interface = None, ifconfigOutput = None): - if interface is None: - self._interface = chakana.command.output("/sbin/ifconfig").split()[0] - else: - self._interface = interface - if ifconfigOutput is None: - self._ifconfigOutput = chakana.command.output("/sbin/ifconfig " + - self._interface) - else: - self._ifconfigOutput = ifconfigOutput - - def name(self): - return self._ifconfigOutput.split()[0] - - def address(self): - match = re.search("inet addr:((\d{1,3}\.){3}\d{1,3})", - self._ifconfigOutput) - if match: - return match.group(1) - else: - return None - - __str__ = name - -class MemInfo(dict): - "Parser for /proc/meminfo" - def __init__(self, memInfo = None): - if memInfo is None: - memInfo = chakana.utils.readFile("/proc/meminfo") - for line in memInfo.splitlines(): - if len(line.split(":")) == 2: - key, value = line.split(":") - if len(value.strip().split()) <= 2: - if len(value.strip().split()) == 2: - unit = {"KB" : 1024, "MB" : 1024 * 1024, - "GB" : 1024 * 1024 * 1024 }[value.split()[-1].upper()] - else: - unit = 1 - self[key] = long(value.strip().split()[0]) * unit - -class UnameInfo: - "Parser for output from uname -a" - def __init__(self, unameInfo = None): - if unameInfo is None: - unameInfo = chakana.command.output("uname -a") - self._unameInfo = unameInfo.split() - - def __getitem__(self, i): - return self._unameInfo[i] - - def __len__(self): - return len(self._unameInfo) - - def __getattr__(self, attr): - ret = self[self.indexMap()[attr]] - if (attr == "architecture") and \ - (re.match(r"(.*intel|i[0-9]86)", ret, re.I)): - # Work around bogus uname output from e.g. Gentoo - return "i386" - else: - return ret - - def smp(self): - return "SMP" in self._unameInfo - - def indexMap(self): - return { - "os" : 0, - "host" : 1, - "version" : 2, - "architecture" : -2, - } - - def __str__(self): - return repr(dict([(attr, getattr(self, attr)) - for attr in self.indexMap()])) - - def __repr__(self): - return repr(self._unameInfo) - -class X86: - class CpuInfo(CpuInfo): - def count(self, physical = 0): - logical = len(self.find("processor")) - if physical: - siblings = self.find("siblings") - if len(siblings) > 0: - return logical / int(siblings[0]) - return logical - - def type(self, num = 0): - return re.match(r"Intel(\(R\))? (.*) processor [\d]+MHz", - self.find("model name")[num]).group(2) - -class X86_64(X86): - pass - -class Sparc: - class CpuInfo(CpuInfo): - def count(self): - return int(self.find("ncpus active")[0]) - - def type(self, num = 0): - return " ".join(self.find("cpu")[num].split()[1:3]) - - class UnameInfo(UnameInfo): - pass - -def freeSpace(path): - "Return available disk space on device corresponding to path." - # If the device name is long, df may split the relevant line, so - # count lines and words from end. - return long( - chakana.command.output("df -k " + path).splitlines()[-1].split()[-3]) * 1024 - -def macAddresses(): - "Return list of mac addresses for all network interfaces." - return re.findall('..:..:..:..:..:..', os.popen( - '/sbin/ifconfig -a | grep HWaddr', 'r').read().lower()) - -class Process: - """Representation of a running process.""" - - def __init__(self, pid): - self._pid = pid - - def pid(self): - return self._pid - - def attribute(self, name): - try: - lines = chakana.utils.readFile("/proc/" + str(self._pid) + - "/status").splitlines() - for line in lines: - (key, value) = line.split(":", 1) - if key.strip().lower() == name.lower(): - return value.strip() - except EnvironmentError, err: - if err.errno == errno.ENOENT: - raise chakana.error.errnoError(errno.ESRCH) - raise - - def name(self): - return self.attribute("name") - - def parent(self): - return Process(int(self.attribute("ppid"))) - - def children(self): - ret = [] - for proc in self.all(): - try: - if proc.parent().pid() == self.pid(): - ret.append(proc) - except EnvironmentError, err: - if err.errno != errno.ESRCH: - raise - return ret - - def reallyKill(self, graceTime = 1, sigKillTime = 3, debugLevel = Event): - """Really kill process after waiting for graceTime. Send SIGKILL after - sigKillTime.""" - try: - debug(debugLevel, "Killing process " + str(self.pid()) + - " (" + str(self.name()) + ")") - os.kill(self.pid(), 0) - time.sleep(graceTime) - debug(debugLevel + 1, "kill -TERM " + str(self.pid())) - os.kill(self.pid(), signal.SIGTERM) - for tick in range(sigKillTime): - os.kill(self.pid(), 0) - debug(debugLevel + 1, "kill -KILL " + str(self.pid())) - os.kill(self.pid(), signal.SIGKILL) - time.sleep(graceTime) - if self.attribute("state")[0] != "Z": - debug(debugLevel, "Process refused to die: " + str(self.pid()) + - " (" + self.name() + ")") - except EnvironmentError, err: - if err.errno != errno.ESRCH: - raise - debug(debugLevel + 2, "Pid " + str(self.pid()) + " no longer exists") - - def killAllBelow(self, debugLevel = Event, ** kwArgs): - """Kill all processes below (but not including) a process. Start from - bottom of tree.""" - debug(debugLevel, "Killing all processes below " + str(self.pid()) + - " (" + self.name() + ")") - children = self.children() - debug(debugLevel + 2, "Pid " + str(self.pid()) + " has " + - str(len(children)) + " children") - for child in children: - child.killAllBelow(debugLevel = debugLevel, ** kwArgs) - child.reallyKill(debugLevel = debugLevel, ** kwArgs) - - def all(cls): - ret = [] - for statusFile in glob.glob("/proc/*/status"): - try: - ret.append(cls(int(os.path.basename(os.path.dirname(statusFile))))) - except ValueError: - continue - return ret - all = classmethod(all) - -def Host(): - architecture = chakana.command.output("uname -m").strip() - if re.match("i[0-9]86", architecture): - return X86 - elif architecture == "x86_64": - return X86_64 diff --git a/backyard/tools/chakana/monitor.py b/backyard/tools/chakana/monitor.py deleted file mode 100644 index 24675bfeb..000000000 --- a/backyard/tools/chakana/monitor.py +++ /dev/null @@ -1,184 +0,0 @@ -import Queue -import thread - -import chakana.event -import chakana.threads -from chakana.debug import * - -class Monitor(chakana.threads.ManagedThread): - """Base class for causal path monitors. Pass the threadManager to the - constructor. Override the doRun method or pass a routine argument. In - the latter case, the routine will be called with the Monitor object as - argument plus any extra arguments and keyword arguments specified.""" - - def __init__(self, shepherd, routine = None, * args, ** kwArgs): - chakana.threads.ManagedThread.__init__(self, shepherd.threadManager()) - self._shepherd = shepherd - self._routine = routine - self._args = args - self._kwArgs = kwArgs - self._ready = 0 - self._discarded = 0 - resourceAllocated = 0 - while resourceAllocated == 0: - try: - self._isWaitingMonitor = threading.Event() - resourceAllocated = 1 - except thread.error: - resourceAllocated = 0 - shepherd.threadManager().registerPIDerror() - debug(Debug, "Monitor created") - self._shepherd.registerMonitor(self) - - def startMonitor(self): - self.start() - debug(Debug, "New monitor thread started: " + repr(self)) - - def discard(self): - self._discarded = 1 - self._ready = 0 - debug(Debug, "Discarding monitor:\n" + repr(self)) - - # Wake up thread with empty results - if hasattr(self, "_resultQueue"): - self._resultQueue.put(None) - - def waitMonitor(self, parentEventpoint = None): - debug(Debug, "Waiting for monitor to finish: " + repr(self)) - - # While monitor is registered, check for continuations - while self in self.shepherd()._monitors: - resourceAllocated = 0 - while resourceAllocated == 0: - try: - self._isWaitingMonitor.wait() - resourceAllocated = 1 - except thread.error: - resourceAllocated = 0 - self.shepherd().threadManager().registerPIDerror() - - self._isWaitingMonitor.clear() - self._ready = 1 - - # If all monitors ready, poll continuation - allMonitorsReady = 1 - for monitor in self.shepherd()._monitors: - if not monitor._ready: - allMonitorsReady = 0 - if allMonitorsReady: - if self in self.shepherd()._monitors: - self.shepherd().pollContinuation() - else: - # A monitor may be waiting for us, tell parent we are ready - if parentEventpoint is not None: - parentEventpoint._isWaitingEvent.set() - self.join() - - def doRun(self): - debug(Debug, "Running monitor") - try: - if (not self._discarded): - self.runMonitor() - except chakana.error.Discarded: - pass - self.shepherd().unregisterMonitor(self) - self._isWaitingMonitor.set() - debug(Debug, "Monitor exiting") - - def runMonitor(self): - self._routine(self, * self._args, ** self._kwArgs) - - def waitFor(self, eventList): - """Waits until one of the Events given in 'eventList' have triggered and - returns that Event.""" - if isinstance(eventList, chakana.event.Eventpoint): - eventList = [eventList] - debug(MinorEvent, "Waiting for events to trigger. Event list: " + - str(eventList)) - assert eventList != [] - - # Clean up eventpoints and abort monitor if discarded - if self._discarded: - for ev in eventList: - ev.discard() - raise chakana.error.Discarded() - - self.shepherd().registerWaitingMonitor(self) - - resourceAllocated = 0 - while resourceAllocated == 0: - try: - self._resultQueue = Queue.Queue() - resourceAllocated = 1 - except thread.error: - resourceAllocated = 0 - self.shepherd().threadManager().registerPIDerror() - - for ev in eventList: - # Start thread and wait until eventpoint is waiting - ev.await(self._resultQueue) - - resourceAllocated = 0 - while resourceAllocated == 0: - try: - ev._isWaitingEvent.wait() - resourceAllocated = 1 - except thread.error: - resourceAllocated = 0 - self.shepherd().threadManager().registerPIDerror() - - ev._isWaitingEvent.clear() - - debug(Event, "Waiting for events: " + repr(eventList)) - - assert(not self._discarded) - - self._isWaitingMonitor.set() - resourceAllocated = 0 - while resourceAllocated == 0: - try: - triggeredEvent = self._resultQueue.get() - resourceAllocated = 1 - except thread.error: - resourceAllocated = 0 - self.shepherd().threadManager().registerPIDerror() - - self._ready = 0 - self.shepherd().unregisterWaitingMonitor(self) - debug(Event, "Eventpoint was triggered: " + repr(eventList)) - for ev in eventList: - if not (ev is triggeredEvent): - ev.discard() - - return triggeredEvent - - def shepherd(self): - return self._shepherd - - def readVariable(self, ** kwArgs): - return self.shepherd().readVariable(** kwArgs) - - def readInt(self, ** kwArgs): - return self.shepherd().readInt(** kwArgs) - - def readMemory(self, ** kwArgs): - return self.shepherd().readMemory(** kwArgs) - -class TimeoutWrapperMonitor(Monitor): - def __init__(self, shepherd, routine, eventpoint = None, timeout = 1000): - chakana.monitor.Monitor.__init__(self, shepherd) - self._eventpoint = eventpoint - self._timeout = timeout - self._triggeredEventpoint = None - - def runMonitor(self): - timeEventpoint = chakana.event.TimeEventpoint(self.shepherd(), self._timeout) - self._triggeredEventpoint = self.waitFor([timeEventpoint, self._eventpoint]) - - def getTriggeredEventpoint(self): - return self._triggeredEventpoint - - def timedOut(self): - return self.getTriggeredEventpoint() != self._eventpoint - - \ No newline at end of file diff --git a/backyard/tools/chakana/shepherd.py b/backyard/tools/chakana/shepherd.py deleted file mode 100644 index 3103c9dc7..000000000 --- a/backyard/tools/chakana/shepherd.py +++ /dev/null @@ -1,347 +0,0 @@ -import re -import socket -import threads -import xml.dom.minidom -import thread - -import chakana.error -import chakana.event -import chakana.monitor -import chakana.threads -import chakana.utils -from chakana.debug import * - -class Shepherd: - """The shepherd is a singleton class that manages the connection to COOJA - and keeps track of user monitor threads. The user initialises a - debugging scenario by creating a Shepherd object, and then calls the - newMonitor method to create Monitor objects, one for each causal - path through the system that he wishes to monitor. - - The monitor threads automatically register with the shepherd. The user - can use the debugger instances to probe variables or create eventpoints. - When the monitor thread routine decides that is ready for simulation to - proceed, it calls the waitFor method to block until one of the - eventpoints occur. - - When a Monitor object enters waitFor, it informs shepherd about the - eventpoints that the user is waiting for, and waits for the eventpoints - to happen. When all threads enter waiting state, the shepherd asks COOJA - to resume simulation. When an eventpoint is hit, the shepherd wakes the - Monitor that is waiting for that eventpoint. - - """ - - def __init__(self, threadManager, port, coojaHost = "localhost"): - debug(MajorEvent, "Creating shepherd") - self._pollConnLock = threading.Lock() - self._threadManager = threadManager - self._port = port - self._monitors = [] - self._waitingMonitors = [] - # Only basic eventpoints in these lists - self._eventpoints = [] - self._waitingEventpoints = [] - self._coojaContinueEvent = threading.Event() - self._waitMap = {} - self._coojaHost = coojaHost - self._coojaConnection = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - debug(MajorEvent, "Connecting to COOJA at " + coojaHost + ":" + - str(self._port)) - self._connectionLock = threading.Lock() - self._coojaConnection.connect((self._coojaHost, self._port)) - self._coojaStream = self._coojaConnection.makefile() - self._coojaConnection.close() - del self._coojaConnection - self._connectionLock.acquire() - hello = self.readFromCooja() - debug(Debug, hello.toprettyxml()) - self._connectionLock.release() - self._shepherdThread = threads.ManagedThread( - self._threadManager, target = self._shepherdMainLoop) - self._shepherdThread.start() - debug(Debug, "Shepherd created:\n" + repr(self)) - - def _shepherdMainLoop(self): - debug(Event, "Starting shepherd main loop") - while 1: - debug(Debug, "Waiting for eventpoints to enter wait state") - debug(Debug2, repr(self)) - self._coojaContinueEvent.wait() - self._coojaContinueEvent.clear() - if self._coojaStream.closed: - debug(Event, "Terminating shepherd main loop") - return - debug(Debug, "Resuming COOJA") - assert(len(self._eventpoints) == len(self._waitingEventpoints)) - response = self.runCommand("CONTROL_SIM", { "RESUME" : None }) - id = int(response.documentElement.childNodes[0].nodeValue) - debug(MinorEvent, "Eventpoint " + str(id) + " was triggered") - - # Wake up triggered eventpoint - self._waitMap[id][1].set() - - # Allow new main loop startups - self._pollConnLock.release() - - - def quit(self): - """Send a termination request to the debugger broker, and discard all - debuggers.""" - - debug(Information, "Terminating the shepherd session") - self.runCommand("EXIT_COOJA") - self._connectionLock.acquire() - self._coojaStream.close() - self._connectionLock.release() - self._coojaContinueEvent.set() - debug(Information, "Number of PID errors reported: " + str(self.threadManager().nrPIDerrors())) - - for (eventpoint, event) in self._waitMap.values(): - debug(Debug2, "Awakening eventpoint at exit: " + repr(eventpoint)) - event.set() - - def loadConfiguration(self, fileName): - return self.runCommand( - "CREATE_SIM", xmlContent = chakana.utils.readFile(fileName)) - - def loadConfigurationXML(self, xmlContent): - return self.runCommand( - "CREATE_SIM", xmlContent = xmlContent) - - def setConfigurationXML(self, xmlContent): - return self.runCommand( - "CONF_SIM", xmlContent = xmlContent) - - def setPluginsXML(self, xmlContent): - return self.runCommand( - "CONF_PLUGINS", xmlContent = xmlContent) - - def newMonitor(self, routine, * args, ** kwArgs): - return self.newCustomMonitor( - chakana.monitor.Monitor, routine, * args, ** kwArgs) - - def newCustomMonitor(self, Type, routine = None, * args, ** kwArgs): - """Start a new monitor thread running routine, with * args and ** kwArgs - as arguments.""" - debug(Debug, "Creating new monitor of type " + Type.__name__) - debug(Debug3, "Routine: " + repr(routine) + ", arguments: " + repr(args) + - ", keyword arguments: " + repr(kwArgs)) - thread = Type(self, routine, * args, ** kwArgs) - debug(MinorEvent, "New monitor thread created: " + repr(thread)) - return thread - - def newTimeoutMonitor(self, eventpoint, timeout, routine = None): - return self.newCustomMonitor( - chakana.monitor.TimeoutWrapperMonitor, routine, eventpoint = eventpoint, timeout = timeout) - - def threadManager(self): - return self._threadManager - - def registerMonitor(self, monitor): - debug(Debug, "Registering monitor: " + repr(monitor)) - assert(isinstance(monitor, chakana.monitor.Monitor)) - assert(not (monitor in self._monitors)) - assert(not (monitor in self._waitingMonitors)) - self._monitors.append(monitor) - self._monitors.sort() - debug(Debug2, repr(self)) - - def unregisterMonitor(self, monitor): - debug(Debug, "Unregistering monitor: " + repr(monitor)) - assert(isinstance(monitor, chakana.monitor.Monitor)) - assert(monitor in self._monitors) - assert(not (monitor in self._waitingMonitors)) - self._monitors.remove(monitor) - - def registerWaitingMonitor(self, monitor): - debug(Debug, "Registering waiting monitor: " + repr(monitor)) - assert(isinstance(monitor, chakana.monitor.Monitor)) - assert(monitor in self._monitors) - assert(not (monitor in self._waitingMonitors)) - self._waitingMonitors.append(monitor) - self._waitingMonitors.sort() - debug(Debug2, repr(self)) - - def unregisterWaitingMonitor(self, monitor): - debug(Debug, "Unregistering waiting monitor: " + repr(monitor)) - assert(isinstance(monitor, chakana.monitor.Monitor)) - assert(monitor in self._monitors) - assert(monitor in self._waitingMonitors) - self._waitingMonitors.remove(monitor) - debug(Debug2, repr(self)) - - def registerBasicEventpoint(self, eventpoint): - debug(Debug2, "Registering basic eventpoint: " + repr(eventpoint)) - assert(isinstance(eventpoint, chakana.event.BasicEventpoint)) - assert(not (eventpoint in self._eventpoints)) - self._eventpoints.append(eventpoint) - self._eventpoints.sort() - debug(Debug2, repr(self)) - - def unregisterBasicEventpoint(self, eventpoint): - debug(Debug2, "Unregistering basic eventpoint: " + repr(eventpoint)) - assert(not (eventpoint in self._waitingEventpoints)) - assert(eventpoint in self._eventpoints) - self._eventpoints.remove(eventpoint) - debug(Debug2, repr(self)) - - def _registerWaitingEventpoint(self, eventpoint): - debug(Debug2, "Registering waiting eventpoint: " + repr(eventpoint)) - assert(not (eventpoint in self._waitingEventpoints)) - assert(eventpoint in self._eventpoints) - self._waitingEventpoints.append(eventpoint) - self._waitingEventpoints.sort() - - def _unregisterWaitingEventpoint(self, eventpoint): - debug(Debug2, "Unregistering waiting eventpoint: " + repr(eventpoint)) - assert(eventpoint in self._waitingEventpoints) - assert(eventpoint in self._eventpoints) - self._waitingEventpoints.remove(eventpoint) - debug(Debug2, repr(self)) - - def pollContinuation(self): - self._pollConnLock.acquire() - if len(self._waitingMonitors) != len(self._monitors): - self._pollConnLock.release() - return - for monitor in self._monitors: - if not monitor._ready: - self._pollConnLock.release() - return - - for monitor in self._monitors: - assert(not monitor._discarded) - - for eventpoint in self._eventpoints: - assert(not eventpoint._discarded) - - assert(self._waitingMonitors == self._monitors) - assert(self._waitingEventpoints == self._eventpoints) - debug(MinorEvent, "All monitors are waiting, activating COOJA") - assert(not self._coojaContinueEvent.isSet()) - self._coojaContinueEvent.set() - - def waitForCoojaEventpoint(self, eventpoint): - response = self.runCommand("ADD_EVENTPOINT", eventpoint.coojaArguments()) - id = int(response.documentElement.childNodes[0].nodeValue) - debug(Debug, "Waiting for COOJA eventpoint " + str(id)) - - resourceAllocated = 0 - while resourceAllocated == 0: - try: - self._waitMap[id] = (eventpoint, threading.Event()) - resourceAllocated = 1 - except thread.error: - resourceAllocated = 0 - self.threadManager().registerPIDerror() - - self._registerWaitingEventpoint(eventpoint) - eventpoint._isWaitingEvent.set() - - resourceAllocated = 0 - while resourceAllocated == 0: - try: - self._waitMap[id][1].wait() - resourceAllocated = 1 - except thread.error: - resourceAllocated = 0 - self.threadManager().registerPIDerror() - - del self._waitMap[id] - self._unregisterWaitingEventpoint(eventpoint) - try: - self.runCommand("DELETE_EVENTPOINT", { "id" : id }) - debug(Debug, "COOJA event " + str(id) + " has occurred") - except chakana.error.CoojaExit: - pass - except socket.error: - pass - - def runCommand(self, name, args = None, xmlContent = ""): - debug(Debug3, "Running cooja command " + name + ", args: " + repr(args) + - " xml content: " + repr(xmlContent)) - if args is None: - args = {} - self._connectionLock.acquire() - try: - if self._coojaStream.closed: - raise chakana.error.CoojaExit() - command = [''] - for (key, value) in args.items(): - if value is None: - command.append('<' + key + '/>') - else: - command.append('<' + key + '>' + str(value) + '') - command.append(xmlContent + '') - commandStr = "\n".join(command + ['\n']) - debug(MinorEvent, '--> ' + commandStr) - self._coojaStream.write(commandStr) - self._coojaStream.flush() - response = self.readFromCooja() - debug(Debug, response.toprettyxml()) - if response.documentElement.tagName == 'error': - raise chakana.error.CoojaError(response) - self._connectionLock.release() - return response - except socket.error: - debug(MajorEvent, 'Socket error catched') - except AttributeError: - debug(MajorEvent, 'Attribute error catched') - - def readFromCooja(self): - # XXX: Assume message ends with a newline - debug(Debug, "Reading message from COOJA") - responseLines = [self._coojaStream.readline()] - debug(Debug2, "First line: " + repr(responseLines[0])) - (rootElement, slash) = re.match(r"^\s*<(\w+)(/?)>", - responseLines[0]).groups() - debug(Debug3, "Root element: " + rootElement) - if slash != "/": - while 1: - if re.search("$", responseLines[-1], - re.M): - break - responseLines.append(self._coojaStream.readline()) - debug(Debug3, "Read line: " + repr(responseLines[-1])) - result = "".join(responseLines) - debug(MinorEvent, '<-- ' + result) - return xml.dom.minidom.parseString(result) - - def readVariable(self, variable, ** kwArgs): - response = self.readMemory( - type = "variable", variable = variable, ** kwArgs) - arrayString = response.documentElement.childNodes[0].nodeValue.split() - bytes = map(eval, arrayString) - debug(Debug, "Read variable " + variable + " as byte array: " + - repr(bytes)) - return bytes - - def readInt(self, ** kwArgs): - response = self.readMemory(type = "int", ** kwArgs) - return eval(response.documentElement.childNodes[0].nodeValue) - - def readMemory(self, ** kwArgs): - return self.runCommand("READ_MEMORY", kwArgs) - - def killNodesInInterval(self, ** kwArgs): - return self.runCommand("KILL_NODES", kwArgs) - - def sendCustomCommand(self, ** kwArgs): - return self.runCommand("CUSTOM_COMMAND", kwArgs) - - def getSimulationInfo(self, ** kwArgs): - response = self.runCommand("GET_INFO", kwArgs) - return eval(response.documentElement.childNodes[0].nodeValue) - - def __repr__(self): - return "\n ".join([ - "Shepherd:", - "Port: " + repr(self._port), - "Monitors: " + repr(self._monitors), - "Waiting monitors: " + repr(self._waitingMonitors), - "Basic eventpoints: [" + "\n".join(map(repr, self._eventpoints)) + "]", - "Waiting eventpoints: [" + "\n".join( - map(repr, self._waitingEventpoints)) + "]", - "Wait map: " + repr(self._waitMap), - ]) diff --git a/backyard/tools/chakana/test_template/run_test.py b/backyard/tools/chakana/test_template/run_test.py deleted file mode 100644 index 7517b8d88..000000000 --- a/backyard/tools/chakana/test_template/run_test.py +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/bin/python - -import errno -import optparse -import os -import re -import socket -import sys -import time - -sys.path[:0] = [(os.path.join(os.path.dirname(sys.argv[0]), "../.."))] - -import chakana.threads -import chakana.event -import chakana.harness -import chakana.utils - -from chakana.debug import * - -def main(argv): - sys.stdout = chakana.utils.UnbufferedFile(sys.stdout) - make_option = optparse.make_option - parser = optparse.OptionParser( - usage = os.path.basename(argv[0]) + - """ [options]""", - option_list = [ - make_option("-c", "--cooja-timeout", action = "store", type = "int", - default = 300, - help = "Timeout waiting for COOJA to start"), - make_option("-q", "--quiet", action = "count", default = 0, - help = "Decrease verbosity"), - make_option("-t", "--timeout", action = "store", type = "int", - default = 3600, - help = "Timeout before aborting the whole test"), - make_option("-v", "--verbose", action = "count", default = 0, - help = "Increase verbosity"), - make_option("-s", "--showCOOJA", action = "store", type = "str", - default = "False", - help = "Show COOJA GUI"), - make_option("-x", "--compileCOOJA", action = "store", type = "str", - default = "True", - help = "Compile COOJA before test"), - ]) - (options, args) = parser.parse_args(argv) - debugStream.increaseLevel(options.verbose - options.quiet) - debugStream.cleanLog() - debugStream.pushTransformer(threadPrefix) - - testDir = os.path.dirname(argv[0]) - chakanaRoot = os.path.join(testDir, "..") - harness = chakana.harness.Harness(chakanaRoot, options.cooja_timeout, doCompile=options.compileCOOJA, withGUI=options.showCOOJA) - - - ## TEST START ## - # Start test examples: - # > ./run_test.py - # > ./run_test.py -v 1 - # > ./run_test.py -v 1 --compileCOOJA=False --showCOOJA=True - - - - # Test configuration (read from file?) - totalSimulationRuns = 5 - randomSeed = 12345 # Initial random seed - logFilename = "test.log" - logFile = open(logFilename, 'w') - debug(MajorEvent, "Configuration read") - - # Create log file - title = 'TEST STARTED AT: ' + time.asctime(time.localtime(time.time())) - logFile.write(title + '\n') - logFile.write(''.zfill(len(title)).replace("0", "-") + '\n\n') - logFile.write('Log file: ' + logFilename + '\n') - logFile.write('Simulation runs: ' + str(totalSimulationRuns) + '\n') - logFile.write('Initial random seed: ' + str(randomSeed) + '\n') - logFile.write('\n') - logFile.close() - debug(MajorEvent, "Log file created") - - try: - try: - nrSimulationRuns = 0 - while nrSimulationRuns < totalSimulationRuns: - - ## TEST RUN START ## - - # If not the first test run, shut down COOJA - if nrSimulationRuns > 0: - harness.quit() - harness.waitForAllThreads(options.timeout) - randomSeed = randomSeed + 1 - debug(MajorEvent, "Simulation removed and COOJA shut down") - - # Log current test run - nrSimulationRuns = nrSimulationRuns + 1 - logFile = open(logFilename, 'a') - logFile.write('\nTest run: ' + str(nrSimulationRuns) + '\n') - logFile.write('Random seed: ' + str(randomSeed) + '\n') - logFile.close() - - # Start COOJA - # This may include compiling COOJA - harness.start() - shepherd = harness.shepherd() - - # Create new simulation from stripped COOJA simulation config - # The XML contents are generated by creating a simulation in COOJA, - # saving it to file (.csc), and finally extracting the simulation specifics. - xmlContent = chakana.utils.readFile(os.path.join(testDir, "simple_simulation.csc")) - xmlContent = xmlContent.replace("[RANDOMSEED]", str(randomSeed)) - shepherd.loadConfigurationXML(xmlContent) - debug(MajorEvent, "COOJA started, and simulation created") - - # Create and wait for a simple time monitor (100 sec) - def waitTime(monitor, delay=1000): - startTime = shepherd.getSimulationInfo(type = "time") - debug(MajorEvent, "Waiting " + str(delay) + " ms, starting at " + str(startTime)) - monitor.waitFor(chakana.event.TimeEventpoint(shepherd, startTime + delay)) - debug(MajorEvent, "Waiting finished at " + str(startTime + delay)) - - waitMon = shepherd.newMonitor(waitTime, 100000) - waitMon.startMonitor() - waitMon.waitMonitor() - - logFile = open(logFilename, 'a') - logFile.write('Test run ended\n') - logFile.close() - - ## TEST RUN END ## - - except: - debug(Debug, "Exception detected:\n" + exceptionDump(sys.exc_info())) - harness.killAllProcesses() - raise - - finally: - harness.quit() - harness.waitForAllThreads(options.timeout) - debug(MajorEvent, "Simulation removed and COOJA shut down") - harness.waitForAllThreads(options.timeout) - -if __name__ == "__main__": - sys.exit(main(sys.argv)) diff --git a/backyard/tools/chakana/test_template/simple_simulation.csc b/backyard/tools/chakana/test_template/simple_simulation.csc deleted file mode 100644 index bcb716bfc..000000000 --- a/backyard/tools/chakana/test_template/simple_simulation.csc +++ /dev/null @@ -1,13 +0,0 @@ - A very simple simulation - 0 - 1 - [RANDOMSEED] - 1 - 0 - - se.sics.cooja.radiomediums.UDGM - 50.0 - 100.0 - false - - \ No newline at end of file diff --git a/backyard/tools/chakana/threads.py b/backyard/tools/chakana/threads.py deleted file mode 100644 index 428cc52ff..000000000 --- a/backyard/tools/chakana/threads.py +++ /dev/null @@ -1,287 +0,0 @@ -# -# Copyright (C) 2005-2007 Swedish Institute of Computer Science. -# -# Please refer to the file named LICENSE in the same directory as this file -# for licensing information. -# -# Written and maintained by Lars Albertsson . -# - -# $Id: threads.py,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - -import signal -import sys -import threading -import time -import Queue -import thread - -import chakana.error -import chakana.linux -from chakana.debug import * - -class ManagedThread(threading.Thread): - def __init__(self, threadManager, ** kwArgs): - self._threadManager = threadManager - self._exceptionInfo = None - resourceAllocated = 0 - while resourceAllocated == 0: - try: - threading.Thread.__init__(self, ** kwArgs) - resourceAllocated = 1 - except thread.error: - resourceAllocated = 0 - self.threadManager().registerPIDerror() - - debug(Event, "Initialising thread " + self.getName()) - self._threadManager._registerThread(self) - - def threadManager(self): - return self._threadManager - - def start(self): - try: - self._threadManager - except: - raise RuntimeError("ManagedThread started, but not initialised properly") - return threading.Thread.start(self) - - def run(self): - debug(Event, self.getName() + " thread is now running") - self.threadManager()._registerThreadStart(self) - try: - self.doRun() - except Exception, err: - debug(MajorEvent, "Caught exception in " + self.getName() + " thread" + - ":\n" + exceptionDump(sys.exc_info())) - self._exceptionInfo = sys.exc_info() - except: - debug(MajorEvent, "Uncaught exception in " + self.getName() + " thread") - self._exceptionInfo = sys.exc_info() - - if not self._exceptionInfo is None: - debug(Event, "Exception caught:\n" + exceptionDump(self._exceptionInfo)) - - debug(Event, self.getName() + " thread is terminating") - if not self.getName() == 'COOJA' and self._exceptionInfo is None: - debug(MinorEvent, self.getName() + " terminated quietly") - self.threadManager()._listLock.acquire() - del self.threadManager()._startedThreads[self.getName()] - del self.threadManager()._activeThreads[self.getName()] - self.threadManager()._listLock.release() - else: - debug(MinorEvent, self.getName() + " terminated normally (slow)") - self.threadManager()._registerResult(self, self._exceptionInfo) - - debug(Debug, "End of " + self.getName() + " thread") - - def doRun(self): - threading.Thread.run(self) - - -class ThreadManager(object): - """Singleton class for managing active python threads.""" - def __init__(self): - self._activeThreads = {} - self._startedThreads = {} - self._threadTerminations = [] - self._pidErrors = 0 - # Protects the three lists above - self._listLock = threading.RLock() - self._threadTerminationQueue = Queue.Queue() - debug(Debug, self.summary()) - - def _registerThread(self, thread): - "Called by thread classes when a thread is created." - assert(isinstance(thread, ManagedThread)) - self._listLock.acquire() - try: - assert(not thread.getName() in self._activeThreads) - debug(Debug, "Registering " + thread.getName() + " thread") - self._activeThreads[thread.getName()] = thread - debug(Debug, self.summary()) - finally: - self._listLock.release() - - def _registerThreadStart(self, thread): - "Called by the thread classes' run method." - assert(isinstance(thread, ManagedThread)) - self._listLock.acquire() - try: - assert(thread.getName() in self._activeThreads) - assert(not thread.getName() in self._startedThreads) - debug(Debug, "Registering " + thread.getName() + " thread start") - self._startedThreads[thread.getName()] = thread - debug(Debug, self.summary()) - finally: - self._listLock.release() - - def _registerResult(self, thread, exceptionInfo): - self._threadTerminationQueue.put((thread.getName(), exceptionInfo)) - - def runningThreads(self): - self._listLock.acquire() - try: - ret = [] - for thread in self._startedThreads.values(): - if not thread.getName() in [ - te[0].getName() for te in self._threadTerminations]: - ret.append(thread) - return ret - finally: - self._listLock.release() - - def unstartedThreads(self): - self._listLock.acquire() - try: - ret = [] - for thread in self._activeThreads.values(): - if not thread.getName() in self._startedThreads: - ret.append(thread) - return ret - finally: - self._listLock.release() - - def numThreadsLeft(self): - return len(self.unfinishedThreads()) - - def unfinishedThreads(self): - "Return created threads that have not terminated." - self._listLock.acquire() - try: - return self._activeThreads.values() - finally: - self._listLock.release() - - def waitAll(self, timeout = 3600, mourningTime = 5): - "Wait for all threads to terminate." - debug(MajorEvent, "Waiting for all test threads to terminate") - debug(MinorEvent, self.summary()) - limit = time.time() + timeout - while self.numThreadsLeft() > 0: - try: - nextTimeout = limit - time.time() - if nextTimeout <= 0: - raise chakana.error.Timeout(self.unfinishedThreads()[0], timeout) - else: - self.waitOne(nextTimeout) - except chakana.error.Timeout, err: - debug(Error, "Timeout waiting for " + err.child.getName() + - " thread, killing subprocesses.") - self.killAll() - while self.numThreadsLeft() > 0: - try: - self.waitOne(mourningTime) - except chakana.error.Timeout: - debug(Error, "Timeout while mourning threads, aborting") - signal.signal(signal.SIGABRT, signal.SIG_DFL) - os.abort() - raise - debug(MinorEvent, "Done waiting for " + str(len(self._startedThreads)) + - " threads") - debug(Debug, self.summary()) - for (thread, excInfo) in self._threadTerminations: - if not excInfo is None: - debug(MinorEvent, "Rethrowing exception from " + thread.getName() + - " thread") - raise chakana.error.ChildException(excInfo[1], excInfo) - - def waitOne(self, timeout): - "Wait for any one thread." - debug(Event, "Waiting for some thread to finish, timeout = " + - str(timeout)) - debug(MinorEvent, self.summary()) - debug(Debug, "Threads left: " + - str(map(ManagedThread.getName, self.unfinishedThreads()))) - assert(self.numThreadsLeft() > 0) - try: - (threadName, exception) = self._threadTerminationQueue.get( - timeout = timeout) - except Queue.Empty: - raise chakana.error.Timeout(self.unfinishedThreads()[0], timeout) - debug(MinorEvent, "Received termination signal from thread " + threadName) - self._listLock.acquire() - try: - assert(threadName in self._activeThreads) - terminatedThread = self._activeThreads[threadName] - assert(terminatedThread.getName() == threadName) - if exception is None: - debug(Debug, "Thread " + threadName + " completed successfully") - else: - debug(Debug, "Thread " + threadName + " raised an exception") - self._threadTerminations.append((terminatedThread, exception)) - self.killAll() - terminatedThread.join() - debug(Debug, "Deleting " + threadName + " thread from active threads") - del self._activeThreads[threadName] - del self._startedThreads[threadName] - finally: - self._listLock.release() - - def killAll(self, reason = "Error detected, killing remaining processes"): - debug(MajorEvent, reason) - chakana.linux.Process(os.getpid()).killAllBelow() - - def registerPIDerror(self): - self._pidErrors = self._pidErrors + 1 - if self._pidErrors > 100000: - self.killAll(reason = "PID allocation errors > 100000") - - def nrPIDerrors(self): - return self._pidErrors - - def summary(self): - return "ThreadManager: " + str(self.numThreadsLeft()) + \ - " threads left, " + \ - str(len(self.unstartedThreads())) + " unstarted threads,\n" + \ - str(len(self.runningThreads())) + " running threads" - -class TimeoutHelperThread(threading.Thread): - def __init__(self, func, funcArgs, funcKwArgs, ** kwArgs): - threading.Thread.__init__(self, ** kwArgs) - self._func = func - self._args = funcArgs - self._kwArgs = funcKwArgs - self.result = None - self.error = None - - def run(self): - try: - self.result = self._func(* self._args, ** self._kwArgs) - except Exception, err: - debug(Debug, "Caught exception in timeout function: " + str(err) + - ":\n" + exceptionDump(sys.exc_info())) - self.error = err - self.exc_info = sys.exc_info() - -class RunWithTimeout: - """Run func in a separate thread. If timeout seconds elapse, give - up, raise Timeout(thread, timeout)""" - - def __init__(self, timeout, func, name = None): - self._timeout = timeout - self._func = func - if name is None: - self._name = "thread running " + str(func) - else: - self._name = name - - def __call__(self, * args, ** kwArgs): - thread = TimeoutHelperThread(self._func, args, kwArgs, name = self._name) - thread.start() - thread.join(self._timeout) - if thread.isAlive(): - raise chakana.error.Timeout(thread, self._timeout) - if thread.error is None: - return thread.result - raise chakana.error.ChildException(thread.error, thread.exc_info) - -def waitForAll(threads, timeout): - startTime = time.time() - for t in threads: - if timeout is None: - t.join() - else: - t.join(startTime + timeout - time.time()) - if t.isAlive(): - raise chakana.error.Timeout(t, timeout) diff --git a/backyard/tools/chakana/utils.py b/backyard/tools/chakana/utils.py deleted file mode 100644 index 668685af6..000000000 --- a/backyard/tools/chakana/utils.py +++ /dev/null @@ -1,736 +0,0 @@ - -# Copyright (C) 2003-2007 Swedish Institute of Computer Science. -# -# Please refer to the file named LICENSE in the same directory as this -# file for licensing information. -# - - -# $Id: utils.py,v 1.1 2009/02/26 13:47:38 fros4943 Exp $ - -import errno -import math -import operator -import os -import popen2 -import re -import string -import shutil -import sys -import tempfile -import threading -import traceback -import types - -import chakana.command -import chakana.error -from chakana.debug import * - -try: - global False - global True - _ = False -except NameError: - False = 0 - True = 1 - -class DefaultDict(dict): - def __init__(self, defaultCreator, initialiser = (), inject = 0): - dict.__init__(self, initialiser) - if callable(defaultCreator): - self._defaultCreator = defaultCreator - else: - self._defaultCreator = lambda k: defaultCreator - self._inject = inject - - def __getitem__(self, key): - try: - return dict.__getitem__(self, key) - except KeyError, err: - value = self._defaultCreator(key) - if self._inject: - self[key] = value - return self[key] - else: - return value - -class UnbufferedFile: - def __init__(self, fileObj): - self._fileObj = fileObj - - def __getattr__(self, attribute): - return getattr(self._fileObj, attribute) - - def write(self, what): - self._fileObj.write(what) - self._fileObj.flush() - -def copyFile(src, dest): - debug(Event, "cp " + src + " " + dest) - srcFile = file(src) - destFile = file(dest, "w") - destFile.write(srcFile.read()) - srcFile.close() - destFile.close() - -def unique(list): - ret = [] - inList = {} - for elem in list: - if not elem in inList: - ret.append(elem) - inList[elem] = 1 - return ret - -def unorderedEqual(listOne, listTwo, predicate = lambda x, y: x == y): - if len(listOne) != len(listTwo): - return 0 - list1 = list(listOne) - list2 = list(listTwo) - while list1 != []: - found = 0 - for index in range(len(list2)): - if predicate(list1[0], list2[index]): - del list1[0] - del list2[index] - found = 1 - break - if not found: - return 0 - return 1 - -def reduceSequences(tupleSeq, oper = operator.add): - """Return a list, where the item at position i is the reduced value - of all items at position i.""" - - if len(tupleSeq) == 0: - return [] - return [reduce(oper, [s[i] for s in tupleSeq]) - for i in range(len(tupleSeq[0]))] - -def listRemove(theList, predicate): - """Remove all items that match predicate in theList.""" - if not callable(predicate): - return listRemove(theList, lambda x: x == predicate) - else: - index = 0 - while index < len(theList): - if predicate(theList[index]): - del theList[index] - else: - index += 1 - return theList - -def logn(n, x): - return math.log(x) / math.log(n) - -def longRange(* args): - """As range, but works with long integers.""" - if len(args) == 1: - start = 0L - stop = args[0] - step = 1L - elif len(args) == 2: - (start, stop) = args - step = 1L - else: - (start, stop, step) = args - if step == 0: - raise ValueError("longRange() arg 3 must not be zero") - ret = [] - while cmp(start, stop) == cmp(0, step): - ret.append(start) - start += step - return ret - -integerSuffixes = ("", "K", "M", "G", "T") - -def abbreviateInteger(i, factor = 1024, minimise = 0): - suf = 0 - while suf < len(integerSuffixes) - 1 and \ - ((i > 9999) or (minimise and (i != 0) and (i % factor == 0))): - suf += 1 - i /= factor - return str(i) + integerSuffixes[suf] - -def readSuffixedInt(intString, factor = 1024): - if intString[-1].isalpha(): - return int(intString[: -1]) * ( - factor ** list(integerSuffixes).index(intString[-1].upper())) - else: - return int(intString) - -def normaliseIndex(index, seq): - """Return a non-negative index relating to a sequence, or negative if - index < - len(seq).""" - - if index < 0: - return len(seq) + index - else: - return index - -def truncateIndex(index, seq): - """Return a non-negative index relating to a sequence, less than or equal - to the length of the sequence.""" - ret = normaliseIndex(index, seq) - if ret < 0: - return 0 - length = len(seq) - if ret > length: - return length - return ret - -class LazySlice: - """Representation of slice into other sequence.""" - def __init__(self, seq, start = None, stop = None, step = None): - self._sequence = seq - if step is None: - self._step = 1 - else: - self._step = step - if self._step == 0: - # Provoke ValueError - [][0:1:0] - - if self._step > 0: - startDefault = 0 - stopDefault = len(seq) - indexShift = 0 - else: - startDefault = len(seq) - 1 - stopDefault = -1 - indexShift = 1 - - if start is None: - self._start = startDefault - else: - self._start = truncateIndex(start + indexShift, seq) - indexShift - if stop is None: - self._stop = stopDefault - else: - self._stop = truncateIndex(stop + indexShift, seq) - indexShift - - if (self._step > 0) != (self._start < self._stop): - self._stop = self._start - - def __getitem__(self, key): - # debug(Debug2, "LS getitem " + str(key) + ": " + repr(self)) - if type(key) == types.SliceType: - ret = LazySlice(self, key.start, key.stop, key.step) - #debug(Debug2, "LS getitem " + str(key) + " = " + - # repr(ret) + ", LS: " + repr(self)) - return ret - index = normaliseIndex(key, self) - if index < 0: - # Provoke IndexError - [][1] - seqIndex = self._start + index * self._step - if self._step > 0: - if seqIndex >= self._stop: - [][1] - elif seqIndex <= self._stop: - [][1] - ret = self._sequence[seqIndex] - #debug(Debug2, "LS getitem " + str(key) + " (" + str(seqIndex) + ") = " + - # str(ret) + ", LS: " + repr(self)) - return ret - - def __len__(self): - return (abs(self._stop - self._start) + abs(self._step) - 1) / \ - abs(self._step) - - def __str__(self): - return str(list(self)) - - def __repr__(self): - return "LazySlice(start = " + str(self._start) + ", stop = " + \ - str(self._stop) + ", step = " + str(self._step) + ",\n " + \ - repr(self._sequence) + ")" - -def getItem(sequence, key): - """Obtain key in sequence. Key may be an integer or a slice object.""" - if type(key) == types.SliceType: - if key.step is None: - return sequence[key.start : key.stop] - return sequence[key.start : key.stop : key.step] - return sequence[key] - -def binarySearch(list, value, start = 0, end = None): - "Return the position where value should be inserted in a sorted list." - if end is None: - end = len(list) - if start == end: - return end - middle = start + (end - start) / 2 - if list[middle] < value: - return binarySearch(list, value, middle + 1, end) - else: - return binarySearch(list, value, start, middle) - -def binaryFind(list, value, *args, ** kwArgs): - "Return position of value in sorted list, or None if not found." - position = binarySearch(list, value, *args, ** kwArgs) - if (position == len(list)) or (list[position] != value): - return None - else: - return position - -def compactIntListRepr(input, sort = 0): - if sort: - list = input[:] - list.sort() - else: - list = input - if __debug__: - tmp = list[:] - tmp.sort() - assert(tmp == list) - index = 0 - ret = "[" - sep = "" - compact = lambda l, i: (i + 1 < len(l)) and (l[i] + 1 == l[i + 1]) - while index < len(list): - ret += sep + str(list[index]) - if compact(list, index): - ret += "-" - while compact(list, index): - index += 1 - ret += str(list[index]) - index += 1 - sep = "," - return ret + "]" - -def predicatedIndex(sequence, predicate): - for i in range(len(sequence)): - if predicate(sequence[i]): - return i - raise ValueError() - -class ArgumentBinder: - def __init__(self, function, argument, position = 0): - self.__function = function - self.__argument = argument - self.__position = position - - def __call__(self, *args, **keywords): - newArgs = list(args) - newArgs[self.__position : self.__position] = [self.__argument] - return self.__function(*newArgs, **keywords) - -class ArgumentTupleBinder: - def __init__(self, function, arguments): - self._function = function - self._arguments = arguments - - def __call__(self, * args, ** kwArgs): - return self._function(* (self._arguments + args), ** kwArgs) - -class KeywordArgumentBinder: - def __init__(self, function, ** keywords): - self._function = function - self._keywords = keywords - - def __call__(self, * args, ** kwArgs): - kw = self._keywords - kw.update(kwArgs) - return self._function(* args, ** kw) - -cppKeywords = ["asm", "do", "inline", "short", "typeid", "auto", - "double", "int", "signed", "typename", "bool", - "dynamic_cast", "long", "sizeof", "union", "break", - "else", "mutable", "static", "unsigned", "case", - "enum", "namespace", "static_cast", "using", "catch", - "explicit", "new", "struct", "virtual", "char", - "extern", "operator", "switch", "void", "class", - "false", "private", "template", "volatile", "const", - "float", "protected", "this", "wchar_t", "const_cast", - "for", "public", "throw", "while", "continue", - "friend", "register", "true", "default", "goto", - "reinterpret_cast", "try", "delete", "if", "return", - "typedef"] - -def isCWord(str): - return not re.match("^[a-zA-Z_][a-zA-Z0-9_]*$", str) is None - -def isCppIdentifier(str): - return isCWord(str) and (str not in cppKeywords) - -def find(seq, predicate = lambda x: x): - for item in seq: - if predicate(item): - return item - return None - -def allBest(seq, comparator = cmp): - if len(seq) < 2: - return seq - seq = seq[:] - ret = [seq.pop()] - for item in seq: - c = comparator(item, ret[0]) - if c < 0: - ret = [item] - elif c == 0: - ret.append(item) - return ret - -def readFile(fileName): - f = open(fileName) - try: - ret = f.read() - return ret - finally: - f.close() - -def writeFile(fileName, contents): - f = open(fileName, "w") - try: - f.write(contents) - finally: - f.close() - -def writeFileAtomic(fileName, contents, suffix = ".tmp"): - tmpFile = fileName + suffix - writeFile(tmpFile, contents) - try: - os.rename(tmpFile, fileName) - except: - if os.path.exists(fileName) and os.path.exists(tmpFile): - os.remove(tmpFile) - raise - - -class LineIndexed: - """Read-only file object indexed by line number. The file object must - support seeking.""" - - def __init__(self, fileName, offset = 0): - if type(fileName) == type(""): - self._file = file(fileName) - else: - self._file = fileName - self._offset = offset - self._length = None - self._lineOffsets = [0] - - def close(self): - self._file.close() - - def __del__(self): - self.close() - - def _seekForward(self, index): - if self._length == 0: - raise IndexError() - for index in range(len(self._lineOffsets), index + 1): - if self._lineOffsets[-1] == self._length: - raise IndexError() - self._file.seek(self._lineOffsets[-1] + self._offset) - line = self._file.readline() - if line == "": - self._length = self._lineOffsets[-1] - else: - self._lineOffsets.append(self._lineOffsets[-1] + len(line)) - - def __getitem__(self, key): - if type(key) == types.SliceType: - ret = LazySlice(self, key.start, key.stop, key.step) - return ret - if key < 0: - positiveLength = len(self) + key - if positiveLength < 0: - raise IndexError() - return self[positiveLength] - self._seekForward(key) - offset = self._lineOffsets[key] - if offset == self._length: - raise IndexError() - self._file.seek(offset + self._offset) - return self._file.readline() - - def __len__(self): - if self._length == 0: - return 0 - while self._lineOffsets[-1] != self._length: - self._seekForward(len(self._lineOffsets)) - return len(self._lineOffsets) - 1 - - def lineOffset(self, index): - self._seekForward(index) - return self._lineOffsets[index] - - def __str__(self): - return str(list(self)) - - def __repr__(self): - return "LineIndexed(offset = " + str(self._offset) + ", length = " + \ - str(self._length) + ", lineOffsets: " + \ - str(self._lineOffsets) + ")" - -def getLine(fileName, count): - fileObj = file(fileName) - if count < 0: - return fileObj.readlines()[count] - for i in range(count + 1): - ret = fileObj.readline() - if ret == "": - raise IndexError() - return ret - -def conditionalJoin(list, separator = " ", predicate = lambda e: e != ""): - if len(list) == 0: - return "" - rest = conditionalJoin(list[1:], separator, predicate) - if not predicate(rest): - return list[0] - if not predicate(list[0]): - return rest - else: - return list[0] + separator + rest - -def pathComponents(path): - (head, tail) = os.path.split(path) - if tail == "": - if head == "": - return [] - if head == "/": - return ["/"] - else: - return pathComponents(head) - else: - return pathComponents(head) + [tail] - -def commonFirstElements(listOfLists): - if len(listOfLists) == 0: - return [] - if len(listOfLists) == 1: - return listOfLists[0] - if (len(listOfLists[0]) == 0) or (len(listOfLists[1]) == 0) or \ - (listOfLists[0][0] != listOfLists[1][0]): - return [] - else: - return commonFirstElements([ - [listOfLists[0][0]] + - commonFirstElements([listOfLists[0][1:], listOfLists[1][1:]])] - + listOfLists[2:]) - -def commonPrefix(pathList): - """Similar to os.path.commonprefix, but works on path components instead - of individual characters.""" - - assert(not isinstance(pathList, str)) - components = commonFirstElements(map(pathComponents, pathList)) - if components == []: - return "" - else: - return os.path.join(* components) - -def pathIsBelow(path, directory): - """Check if path lies below directory.""" - return commonPrefix([path, directory]) == directory - -def realPath(path): - """Similar to os.path.realpath, but handles amd gracefully.""" - ret = os.path.realpath(path) - for binDir in os.environ["PATH"].split(":") + ["/usr/sbin", "/sbin"]: - amq = os.path.join(binDir, "amq") - if os.path.isfile(amq): - try: - output = chakana.command.output(amq) - except chakana.error.CommandFailed, err: - debug(Debug, str(err)) - # Assume amd is not running - return ret - for line in output.splitlines(): - amdDir = line.split()[0] - mountDir = line.split()[-1] - if mountDir[0] == "/": - match = re.match('^(' + re.escape(line) + ')(/$)', ret) - if match: - return amdDir + ret[len(line) :] - return ret - return ret - -def removeTree(path, ignoreErrors = False): - debug(Debug, "rm -rf " + path) - if os.path.isdir(path): - shutil.rmtree(path, ignore_errors = ignoreErrors) - -def makeSymlink(value, dest, force = True, debugLevel = MinorEvent, - dryRun = False): - if os.path.islink(dest): - if os.readlink(dest) == value: - debug(Debug, "Link " + dest + " already points to " + value) - return - elif force: - debug(debugLevel, "Removing " + dest) - if not dryRun: - os.remove(dest) - else: - raise OSError((errno.EEXIST, "Link already exists", dest)) - absValue = os.path.join(os.path.dirname(dest), value) - if (not dryRun) and (not force) and (not os.path.isfile(absValue)): - raise OSError((errno.ENOENT, "Link destination does not exist", absDest)) - debug(debugLevel, "Linking " + dest + " to " + value) - if not dryRun: - os.symlink(value, dest) - -def copyTree(src, dst, symlinks = False, predicate = lambda path: 1, - preserveTimes = False): - """Similar to shutil.copytree, but allows existing destination and - passes exceptions.""" - names = filter(predicate, os.listdir(src)) - if not os.path.isdir(dst): - os.mkdir(dst) - for name in names: - srcname = os.path.join(src, name) - dstname = os.path.join(dst, name) - try: - if symlinks and os.path.islink(srcname): - linkto = os.readlink(srcname) - os.symlink(linkto, dstname) - elif os.path.isdir(srcname): - copyTree(srcname, dstname, symlinks, predicate, preserveTimes) - else: - if preserveTimes: - shutil.copy2(srcname, dstname) - else: - shutil.copy(srcname, dstname) - # XXX What about devices, sockets etc.? - except (IOError, os.error), why: - debug(Error, "Can't copy %s to %s: %s" % - (`srcname`, `dstname`, str(why))) - raise - -def makeDirsSafe(dir, mode = 0777): - """Similar to os.makedirs, but does not fail if another process is making - the directory simultaneously.""" - while not os.path.isdir(dir): - try: - os.makedirs(dir, mode) - except OSError, err: - if err.errno != errno.EEXIST: - raise - -def typeAssert(variable, type): - assert(isinstance(variable, type)) - -def intervalsOverlap(range1, range2): - if range1 > range2: - return intervalsOverlap(range2, range1) - if (range1[0] == range1[1]) or (range2[0] == range2[1]): - return 0 - return range2[0] < range1[1] - -class LexicalDistance: - def __init__(self, caseChange = 1, whiteSpaceChange = 2, - whiteSpaceRemoval = 3, ampersand = 5, other = 10, - whiteSpace = " _-'\""): - self.__caseChange = caseChange - self.__whiteSpaceChange = whiteSpaceChange - self.__whiteSpaceRemoval = whiteSpaceRemoval - self.__ampersand = ampersand - self.__other = other - self.__whiteSpace = whiteSpace - - def removeWhiteSpace(self, str1, str2, limit): - if str1[0] in self.__whiteSpace: - if limit > self.__whiteSpaceRemoval: - return self(str1[1:], str2, limit - self.__whiteSpaceRemoval) + \ - self.__whiteSpaceRemoval - return limit - - def changeWhiteSpace(self, str1, str2, limit): - if (str1[0] in self.__whiteSpace) and (str2[0] in self.__whiteSpace): - if limit > self.__whiteSpaceChange: - return self(str1[1:], str2[1:], limit - self.__whiteSpaceChange) + \ - self.__whiteSpaceChange - return limit - - def changeCase(self, str1, str2, limit): - if str1[0].upper() == str2[0].upper(): - if limit > self.__caseChange: - return self(str1[1:], str2[1:], limit - self.__caseChange) + \ - self.__caseChange - return limit - - def changeAmpersand(self, str1, str2, limit): - if (str1[0] == "&") and (str2[:3].lower() == "and"): - if limit > self.__ampersand: - return self(str1[1:], str2[3:], limit - self.__ampersand) + \ - self.__ampersand - return limit - - def removeOther(self, str1, str2, limit): - if limit > self.__other: - return self(str1[1:], str2, limit - self.__other) + self.__other - return limit - - def changeOther(self, str1, str2, limit): - if limit > self.__other: - return self(str1[1:], str2[1:], limit - self.__other) + self.__other - return limit - - def __call__(self, str1, str2, limit = 50): - ret = limit - if str1 == "": - if str2 == "": - return 0 - ret = self.removeWhiteSpace(str2, str1, ret) - ret = self.removeOther(str2, str1, ret) - elif str2 == "": - ret = self(str2, str1, ret) - else: - if str1[0] == str2[0]: - ret = self(str1[1:], str2[1:], ret) - else: - ret = self.removeWhiteSpace(str1, str2, ret) - ret = self.removeWhiteSpace(str2, str1, ret) - ret = self.changeWhiteSpace(str1, str2, ret) - ret = self.changeCase(str1, str2, ret) - ret = self.changeAmpersand(str1, str2, ret) - ret = self.changeAmpersand(str2, str1, ret) - ret = self.changeOther(str1, str2, ret) - ret = self.removeOther(str1, str2, ret) - ret = self.removeOther(str2, str1, ret) - assert(ret <= limit) - return ret - -class TryOperation: - def __init__(self, operation, description = None): - self.__operation = operation - if description is None: - self.__description = str(operation) - else: - self.__description = description - - def __call__(self, * args, ** kwargs): - try: - self.__operation(* args, ** kwargs) - except KeyboardInterrupt: - raise - except: - import debug as d - d.debug(d.Error, self.__description + " failed\n" + - d.exceptionDump(sys.exc_info())) - -def lineDirective(): - fileInfo = traceback.extract_stack(None, 2)[0] - return "#line " + repr(fileInfo[1] + 1) + " \"" + fileInfo[0] + "\"" - -try: - mkstemp = tempfile.mkstemp -except AttributeError: - def mkstemp(suffix = "", prefix = None, dir = None, text = 0): - if prefix is None: - prefix = tempfile.gettempprefix() - fileName = tempfile.mktemp(suffix) - if dir is None: - dir = os.path.dirname(fileName) - newFileName = os.path.join(dir, prefix + os.path.basename(fileName)) - if text: - flags = "w" - else: - flags = "wb" - return (file(newFileName, flags), newFileName) - diff --git a/backyard/tools/cooja/apps/serial2pipe/build.xml b/backyard/tools/cooja/apps/serial2pipe/build.xml deleted file mode 100644 index c3c3b3a5a..000000000 --- a/backyard/tools/cooja/apps/serial2pipe/build.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/backyard/tools/cooja/apps/serial2pipe/cooja.config b/backyard/tools/cooja/apps/serial2pipe/cooja.config deleted file mode 100644 index cb9f805fe..000000000 --- a/backyard/tools/cooja/apps/serial2pipe/cooja.config +++ /dev/null @@ -1,2 +0,0 @@ -se.sics.cooja.GUI.PLUGINS = + se.sics.cooja.plugins.Serial2Pipe -se.sics.cooja.GUI.JARFILES = + serial2pipe.jar diff --git a/backyard/tools/cooja/apps/serial2pipe/java/se/sics/cooja/plugins/Serial2Pipe.java b/backyard/tools/cooja/apps/serial2pipe/java/se/sics/cooja/plugins/Serial2Pipe.java deleted file mode 100644 index 5f3faeccc..000000000 --- a/backyard/tools/cooja/apps/serial2pipe/java/se/sics/cooja/plugins/Serial2Pipe.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id: Serial2Pipe.java,v 1.1 2009/05/18 14:48:10 fros4943 Exp $ - */ - -package se.sics.cooja.plugins; - -import java.awt.GridLayout; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.Observable; -import java.util.Observer; -import javax.swing.*; -import org.apache.log4j.Logger; - -import se.sics.cooja.*; -import se.sics.cooja.contikimote.interfaces.ContikiRS232; - -@ClassDescription("Serial 2 Pipe") -@PluginType(PluginType.MOTE_PLUGIN) -public class Serial2Pipe extends VisPlugin { - private static Logger logger = Logger.getLogger(Serial2Pipe.class); - - private static final long serialVersionUID = 1L; - - private static int pipeNrCounter = 1; - - private Mote mote; - - private ContikiRS232 serialInterface; - - private String inPipeName; - - private String outPipeName; - - private int pipeNr = pipeNrCounter++; // Increase pipe number - - private Thread pipeListener; - - private Observer serialObserver; - - public Serial2Pipe(Mote moteToView, Simulation simulation, GUI gui) { - super("Serial 2 Pipe (" + moteToView + ")", gui); - mote = moteToView; - - // Determine pipe names - inPipeName = "s2p" + pipeNr + "in"; - outPipeName = "s2p" + pipeNr + "out"; - - // Create pipes - try { - Process subProcess = Runtime.getRuntime().exec( - new String[] { "mkfifo", inPipeName }); - subProcess.waitFor(); -// logger.debug("Creating in pipe returned: " + subProcess.exitValue()); - subProcess = Runtime.getRuntime().exec( - new String[] { "mkfifo", outPipeName }); - subProcess.waitFor(); -// logger.debug("Creating out pipe returned: " + subProcess.exitValue()); - } catch (Exception e) { - logger.fatal("Error when creating pipes: " + e); - } - - // Forward serial interface to out pipe - serialInterface = mote.getInterfaces().getInterfaceOfType( - ContikiRS232.class); - serialInterface.addObserver(serialObserver = new Observer() { - public void update(Observable obs, Object obj) { - // Start shell process which forwards the data - try { - Runtime.getRuntime().exec( - new String[] { - "sh", - "-c", - "echo " + serialInterface.getSerialMessages() + " > " - + outPipeName }); -// logger.debug("Forwarding from serial " -// + serialInterface.getSerialMessages()); - } catch (Exception ex) { - logger.fatal("Error when writing to out pipe: " + ex); - } - } - }); - - // Forward incoming data from in pipe (separate thread) - pipeListener = new Thread(new Runnable() { - public void run() { - try { - while (true) { - // Start shell process which reads the data - Process subProcess = Runtime.getRuntime().exec( - new String[] { "sh", "-c", "cat " + inPipeName }); - BufferedReader in = new BufferedReader(new InputStreamReader( - subProcess.getInputStream())); - char[] buffer = new char[512]; - int bytes_read; - bytes_read = in.read(buffer); - if (bytes_read > 0) { - String msg = String.copyValueOf(buffer, 0, bytes_read); -// logger.debug("Forwarding to serial: " + msg); - serialInterface.sendSerialMessage(msg); - } - in.close(); - subProcess.waitFor(); - } - } catch (Exception e) { - logger.fatal("Error while reading from in pipe: " + e); - } - } - }); - pipeListener.start(); - - // Add GUI labels - setLayout(new GridLayout(2, 2)); - - add(new JLabel("In pipe:")); - add(new JLabel(inPipeName)); - - add(new JLabel("Out pipe:")); - add(new JLabel(outPipeName)); - - setSize(300, 70); - - try { - setSelected(true); - } catch (java.beans.PropertyVetoException e) { - // Could not select - } - } - - public void closePlugin() { - // Stop listening to serial port - if (serialInterface != null && serialObserver != null) { - serialInterface.deleteObserver(serialObserver); - serialObserver = null; - } - - // Stop listening to in pipe - if (pipeListener != null) - pipeListener.interrupt(); - - // Remove earlier created pipes - try { - Runtime.getRuntime().exec(new String[] { "rm", inPipeName }); - Runtime.getRuntime().exec(new String[] { "rm", outPipeName }); - } catch (Exception e) { - logger.fatal("Error when deleting pipes"); - } - } - -} diff --git a/backyard/tools/cooja/examples/project_debug/build.xml b/backyard/tools/cooja/examples/project_debug/build.xml deleted file mode 100644 index cd1b65564..000000000 --- a/backyard/tools/cooja/examples/project_debug/build.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/backyard/tools/cooja/examples/project_debug/cooja.config b/backyard/tools/cooja/examples/project_debug/cooja.config deleted file mode 100644 index d59479393..000000000 --- a/backyard/tools/cooja/examples/project_debug/cooja.config +++ /dev/null @@ -1 +0,0 @@ -se.sics.cooja.GUI.PLUGINS = + MoteDebugger diff --git a/backyard/tools/cooja/examples/project_debug/java/MoteDebugger.java b/backyard/tools/cooja/examples/project_debug/java/MoteDebugger.java deleted file mode 100644 index 8fc573605..000000000 --- a/backyard/tools/cooja/examples/project_debug/java/MoteDebugger.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id: MoteDebugger.java,v 1.1 2009/05/18 14:48:10 fros4943 Exp $ - */ - -import java.awt.event.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import javax.swing.*; -import org.apache.log4j.Logger; -import java.io.*; -import java.lang.management.*; - -import se.sics.cooja.*; -import se.sics.cooja.contikimote.ContikiMote; -import se.sics.cooja.contikimote.ContikiMoteType; - -/** - * Mote debugger lets a user debug a mote using an external debugger. - * - * It executes the external program 'gdb' and sets up breakpoints - * at the entry of the tick function. - * - * The selected mote is then set to state active and ticked. - * - * OBSERVE! Experimental code. Not fully tested yet! - * - * @author Fredrik Osterlind - */ -@ClassDescription("Debug using GDB") -@PluginType(PluginType.MOTE_PLUGIN) -public class MoteDebugger extends VisPlugin {; - - private static final long serialVersionUID = 1L; - private static Logger logger = Logger.getLogger(MoteDebugger.class); - private ContikiMote moteToDebug; - private Simulation mySimulation; - - /** - * Creates a new VisDebug. - * @param mote Contiki mote to debug next tick - */ - public MoteDebugger(Mote mote, Simulation simulation, GUI gui) { - super("VisDebug (" + mote + ")", gui); - this.moteToDebug = (ContikiMote) mote; - this.mySimulation = simulation; - - JButton debugButton = new JButton("Debug now"); - debugButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - logger.warn("OBSERVE! This is experimental code"); - - logger.info("Getting JVM pid"); - RuntimeMXBean rt = ManagementFactory.getRuntimeMXBean(); - String runtimeName = rt.getName(); - int pid = 1; - - String pidExtraction = "^([0-9]*)[^$]*$"; - Pattern pattern = Pattern.compile(pidExtraction); - Matcher matcher = pattern.matcher(runtimeName); - if (!matcher.find()) { - logger.fatal("Could not determine pid, aborting"); - return; - } - - pid = Integer.parseInt(matcher.group(1)); - if (pid <= 0) { - logger.fatal("Pid seems to be strange, aborting. pid=" + pid); - return; - } - - logger.info("Extracted PID=" + pid); - - logger.info("Checking that source code file exists.."); - File sourceFile = new File(ContikiMoteType.tempOutputDirectory, moteToDebug.getType().getIdentifier() + ".c"); - if (!sourceFile.exists()) { - logger.fatal("Can't find source file: " + sourceFile); - return; - } - - logger.info("Source file ok: " + sourceFile); - - - logger.info("Determining function name to break at (entry of tick)"); - String libName = ((ContikiMoteType) moteToDebug.getType()).getLibraryClassName(); - - String functionName = "Java." + CoreComm.class.getPackage().getName() + ".corecomm." + libName + ".tick"; - functionName = functionName.replaceAll("\\.", "_"); - - logger.info("Function name is: " + functionName); - - logger.info("Creating temporary file .tmp with initial commands"); - File tmpFile = new File(ContikiMoteType.tempOutputDirectory, ".tmp"); - if (tmpFile.exists()) { - tmpFile.delete(); - } - try { - BufferedWriter tmpStream = new BufferedWriter( - new OutputStreamWriter( - new FileOutputStream( - tmpFile))); - tmpStream.write("break " + functionName + "\n"); - tmpStream.write("cont\n"); - tmpStream.close(); - } catch (Exception ex) { - logger.fatal("Could not create temporary command file: " + tmpFile); - return; - } - - logger.info("Command file created ok: " + tmpFile.getName()); - - logger.info("Starting external GDB"); - logger.info("> GDB must be exited before control is returned to COOJA"); - logger.info("> Use command 'quit' followed by y to exit GDB"); - - Process gdbProcess = null; - try { - gdbProcess = Runtime.getRuntime().exec("xterm -e gdb" - + " -nw -quiet " - + " --pid=" + pid - + " -x " + ContikiMoteType.tempOutputDirectory.getName() + "/" + tmpFile.getName() - ); - - logger.info("Sleeping 2500 ms while starting up GDB"); - Thread.sleep(2500); - logger.info("Ticking chosen mote now! (setting state to active)"); - moteToDebug.setState(Mote.State.ACTIVE); - moteToDebug.tick(mySimulation.getSimulationTime()); - - gdbProcess.waitFor(); - } catch (Exception ex) { - logger.fatal("Exception while starting gdb, aborting"); - } - - logger.debug("GDB terminated with exit code: " + gdbProcess.exitValue()); - } - }); - - add(debugButton); - setSize(250, 80); - } - - public void closePlugin() { - } - -} From 3cd7835f5c49ebf34af033123d57449d33061234 Mon Sep 17 00:00:00 2001 From: Joakim Eriksson Date: Tue, 22 Feb 2011 18:24:05 +0100 Subject: [PATCH 471/471] made DIO parameters configurable --- core/net/rpl/rpl-private.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/core/net/rpl/rpl-private.h b/core/net/rpl/rpl-private.h index 1770ffb64..2f5643058 100644 --- a/core/net/rpl/rpl-private.h +++ b/core/net/rpl/rpl-private.h @@ -131,13 +131,25 @@ /* Default value according to the specification is 3 which means 8 milliseconds, but that is an unreasonable value if using power-saving / duty-cycling */ +#ifdef RPL_CONF_DIO_INTERVAL_MIN +#define DEFAULT_DIO_INTERVAL_MIN RPL_CONF_DIO_INTERVAL_MIN +#else #define DEFAULT_DIO_INTERVAL_MIN 12 +#endif /* Maximum amount of timer doublings. */ +#ifdef RPL_CONF_DIO_INTERVAL_DOUBLINGS +#define DEFAULT_DIO_INTERVAL_DOUBLINGS RPL_CONF_DIO_INTERVAL_DOUBLINGS +#else #define DEFAULT_DIO_INTERVAL_DOUBLINGS 8 +#endif /* Default DIO redundancy. */ +#ifdef RPL_CONF_DIO_REDUNDANCY +#define DEFAULT_DIO_REDUNDANCY RPL_CONF_DIO_REDUNDANCY +#else #define DEFAULT_DIO_REDUNDANCY 10 +#endif /* Expire DAOs from neighbors that do not respond in this time. (seconds) */ #define DAO_EXPIRATION_TIMEOUT 60